From 8e05a44e7c6b4aa3ad75f79c3b65174f6d4c0fd1 Mon Sep 17 00:00:00 2001 From: Trevor Martin Date: Mon, 23 Sep 2019 00:51:50 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=8F=82v2.8.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 - app/assets/css/index.css | 89 +- app/assets/images/btn_donate_LG.gif | Bin 0 -> 1597 bytes app/assets/js/build-tweaks.js | 209 +- app/assets/js/events.js | 28 +- app/assets/js/index.js | 81 +- app/assets/vendor/showdown.min.js | 64 +- app/controllers/home.js | 57 +- app/files/img/11-11.jpg | Bin 0 -> 14072 bytes app/files/img/11-11_fixed.jpg | Bin 0 -> 14370 bytes app/files/img/cmu-back.jpg | Bin 0 -> 52156 bytes app/files/img/cmu-rx-tx.jpg | Bin 0 -> 88663 bytes app/files/img/ls-l_output.png | Bin 0 -> 2523444 bytes app/files/img/thebolt.jpg | Bin 0 -> 948173 bytes app/files/tweaks/00_59patch.txt | 2 +- app/files/tweaks/00___fullRestore.sh | 2 +- app/files/tweaks/00__casdkapps-i.txt | 2 +- app/files/tweaks/00_background.txt | 10 +- app/files/tweaks/00_end.txt | 1 + app/files/tweaks/00_factory-reset-end.txt | 6 +- app/files/tweaks/00_intro.txt | 15 +- app/files/tweaks/00_offbackground-i.txt | 11 +- app/files/tweaks/00_start.txt | 11 +- app/files/tweaks/02_disclaimer-i.txt | 17 +- app/files/tweaks/05_mainloop-i.txt | 2 +- app/files/tweaks/06_listloop-i.txt | 4 +- app/files/tweaks/09_audioorder-i.txt | 15 +- app/files/tweaks/17_videoplayer-i.txt | 3 +- app/files/tweaks/17_videoplayer-u.txt | 38 +- app/files/tweaks/19_speedo-i1.txt | 33 +- app/files/tweaks/19_speedo-u.txt | 62 +- app/files/tweaks/20_date-iv3.3.txt | 18 +- app/files/tweaks/24_castscreen-i.txt | 10 +- app/files/tweaks/25_androidauto-i.txt | 3 +- app/files/tweaks/25_androidautocargps.txt | 2 +- app/files/tweaks/27_aioapp-i.txt | 3 +- .../tweaks/cmu-autorun/installer/autorun | 37 + .../tweaks/cmu-autorun/installer/autorun.temp | 33 + .../installer/cmu_dataretrieval.up | Bin 0 -> 32405 bytes .../installer/dataRetrieval_config.txt | 20 + .../cmu-autorun/installer/jci-autoupdate | 1 + .../tweaks/cmu-autorun/installer/tweaks.sh | 80 + .../tweaks/cmu-autorun/installer/utils.sh | 123 + app/files/tweaks/cmu-autorun/sdcard/README.md | 11 + .../cmu-autorun/sdcard/WifiAP-toggle/run.sh | 16 + .../tweaks/cmu-autorun/sdcard/adb/README.md | 17 + app/files/tweaks/cmu-autorun/sdcard/adb/adb | Bin 0 -> 220516 bytes .../tweaks/cmu-autorun/sdcard/adb/adb.sh | 42 + .../tweaks/cmu-autorun/sdcard/adb/run.sh | 10 + .../tweaks/cmu-autorun/sdcard/autorun.conf | 36 + .../tweaks/cmu-autorun/sdcard/dryrun/run.sh | 6 + .../cmu-autorun/sdcard/headunit/README.md | 51 + .../sdcard/headunit}/check-usb.sh | 13 +- .../sdcard/headunit}/headunit | Bin 5884495 -> 5884495 bytes .../sdcard/headunit/headunit-wrapper.start | 113 + .../sdcard/headunit}/headunit.json | 0 .../headunit/headunit_libs/libgsth264parse.so | Bin 0 -> 85998 bytes .../headunit_libs/libmfw_gst_isink.so | Bin 0 -> 75592 bytes .../headunit/headunit_libs/libunwind.so | Bin 0 -> 379138 bytes .../headunit/headunit_libs/libunwind.so.8 | Bin 0 -> 379138 bytes .../headunit/headunit_libs/libunwind.so.8.0.1 | Bin 0 -> 379138 bytes .../tweaks/cmu-autorun/sdcard/headunit/run.sh | 56 + .../sdcard/headunit/usb-allow.list | 2 + .../cmu-autorun/sdcard/memory-log/README.md | 7 + .../sdcard/memory-log/memLog/monitor.sh | 16 + .../cmu-autorun/sdcard/memory-log/run.sh | 10 + .../02-start-adb/ssh-over-adb.sh | 23 + .../02-start-adb/start-adb-ssh.autorun | 6 + .../02-start-wifiAP/jci-wifiap.sh | 215 + .../02-start-wifiAP/start-WiFi-AP.autorun | 11 + .../cmu-autorun/sdcard/recovery-extra/adb | Bin 0 -> 220516 bytes .../99-run-tweaks.rules | 1 + .../recovery/02-run-tweaks-from-usb/README.md | 24 + .../02-run-tweaks-from-usb/_readme.txt | 23 + ...tall-udev-handler-if-not-installed.autorun | 41 + .../run-tweak-from-usb.sh | 24 + .../udev_add_action_handler.sh | 2 + .../watch-if-something-need-to-be-executed.sh | 7 + .../02-start-sshd-and-open-firewall/README.md | 16 + .../_readme.txt | 14 + .../02-start-sshd-and-open-firewall/jci-fw.sh | 170 + .../sshd_config | 120 + .../start-sshd-and-open-firewall.autorun | 3 + .../start_fw_in_background | 20 + .../config-update.sh | 221 + .../02-update-etc-passwd-if-needed/passwd | 6 + .../passwd_update.autorun | 29 + .../sshd_config | 73 + .../update-sshd-config-if-needed.autorun | 29 + .../sdcard/recovery/44-recovery-recovery/adb | Bin 0 -> 220516 bytes .../anti-neutralizeid7.autorun | 5 + .../recovery/44-recovery-recovery/autorun | 37 + .../44-recovery-recovery/recover-autorun.sh | 29 + .../watch-for-missing-recovery.sh | 46 + .../cmu-autorun/sdcard/recovery/README.md | 11 + .../tweaks/cmu-autorun/sdcard/recovery/run.sh | 39 + app/files/tweaks/cmu-autorun/sdcard/run.sh | 52 + .../cmu-autorun/sdcard/screenshots/README.md | 8 + .../cmu-autorun/sdcard/screenshots/run.sh | 10 + .../sdcard/screenshots/ss/.gitignore | 1 + .../sdcard/screenshots/ss/screenshots.conf | 29 + .../sdcard/screenshots/ss/screenshots.sh | 68 + .../sdcard/temporary-ssh-access/README.md | 22 + .../sdcard/temporary-ssh-access/README.txt | 29 + .../sdcard/temporary-ssh-access/mazda-ssh | 27 + .../sdcard/temporary-ssh-access/mazda-ssh.pub | 1 + .../sdcard/temporary-ssh-access/run.sh | 40 + .../sdcard/temporary-ssh-access/ssh.png | Bin 0 -> 104930 bytes .../js/FuelConsumptionCtrl.MPG.js | 2454 --- .../dev/system_restore/restore.sh | 2 +- .../jci/gui/apps/_aiotweaks/js/AIO-startup.js | 9 + .../gui/apps/_aiotweaks/js/_aiotweaksApp.js | 5 +- .../aio-app/jci/gui/apps/_aiotweaks/js/mzd.js | 9 +- .../templates/AIOTweaks/js/AIOTweaksTmplt.js | 2 +- .../androidauto/data_persist/dev/bin/headunit | Bin 5900015 -> 5905055 bytes .../data_persist/dev/bin/headunit-wrapper | 14 +- .../data_persist/dev/bin/headunit.json | 1 + .../dev/bin/headunit_libs/libgstapetag.so | Bin 12488 -> 0 bytes .../dev/bin/headunit_libs/libgstracemtpsrc.so | Bin 55831 -> 0 bytes .../data_persist/dev/bin/headunit | Bin 5822115 -> 0 bytes app/files/tweaks/config/androidautob/headunit | Bin 5895911 -> 0 bytes .../tweaks/config/androidautob/headunit-1.10 | Bin 5822115 -> 0 bytes .../data_persist/dev/bin/headunit | Bin 5789415 -> 0 bytes app/files/tweaks/config/androidautoc/headunit | Bin 5793383 -> 0 bytes .../tweaks/config/androidautohud/headunit | Bin 5896839 -> 0 bytes .../config/androidautohud/headunit-wrapper | 82 - .../config/androidautohud/usb-allow.list | 37 - .../config/androidautowifi/headunit-wrapper | 59 +- .../config/androidautowifi/headunit.json | 6 - .../NowPlaying4/css/NowPlaying4Ctrl.css | 816 - app/files/tweaks/config/bin/busybox-armv7l | Bin 1109057 -> 0 bytes .../config/castscreen-receiver/mirroring.sh | 5 +- .../Sbn/css/SbnCtrl.v2.2.59.00.326A-ADR.css | 304 - .../common/controls/Sbn/css/SbnCtrl.v2.2.css | 254 - .../StatusBar/css/StatusBarCtrl.v1.css | 200 - .../StatusBar/css/StatusBarCtrl.v2.1.css | 206 - .../css/StatusBarCtrl.v2.2.59.00.326A-ADR.css | 224 - .../StatusBar/css/StatusBarCtrl.v2.2.css | 206 - .../opera/opera_dir/userjs/additionalApps.js | 1 + .../config/jci/opera/opera_dir/userjs/aio.js | 11 +- .../config/jci/scripts/resource_swap.sh | 49 - .../jci/gui/common/js/Common.js.56.00.230A-EU | 2366 --- .../jci/gui/common/js/Common.js.56.00.511A-EU | 2380 --- .../jci/gui/common/js/Common.js.58.00.250A-NA | 2634 --- .../config/speedometer/fonts/CHN/Crysta.ttf | Bin 14492 -> 0 bytes .../config/speedometer/fonts/Crysta.ttf | Bin 14492 -> 0 bytes .../config/speedometer/fonts/JP/Crysta.ttf | Bin 14492 -> 0 bytes .../speedometer/jci/fonts/CHN/Crysta.ttf | Bin 11092 -> 10944 bytes .../config/speedometer/jci/fonts/Crysta.ttf | Bin 11092 -> 10944 bytes .../speedometer/jci/fonts/JP/Crysta.ttf | Bin 11092 -> 10944 bytes .../apps/_speedometer/js/_speedometerApp.js | 1 + .../_speedometer/js/speedometer-startup.js | 8 +- .../gui/apps/_speedometer/js/speedometer.js | 67 +- .../apps/_speedometer/js/speedometerUpdate.js | 5 +- .../gui/apps/_speedometer/sh/speedometer.sh | 154 +- .../apps/_speedometer/start/js/StartTmplt.js | 1 + .../templates/SpeedBar/css/SpeedBarTmplt.css | 4 +- .../templates/SpeedBar/js/SpeedBarTmplt.js | 1 + .../SpeedoMeter/js/SpeedoMeterTmplt.js | 3 +- .../MiniView-transparent/BackCtr_1_sm.png | Bin 7478 -> 0 bytes .../MiniView-transparent/BackCtr_2_sm.png | Bin 6939 -> 0 bytes .../MiniView-transparent/BackCtr_3_sm.png | Bin 5780 -> 0 bytes .../MiniView-transparent/BackCtr_4_sm.png | Bin 4669 -> 0 bytes .../MiniView-transparent/BackLt_1_sm.png | Bin 2328 -> 0 bytes .../MiniView-transparent/BackLt_2_sm.png | Bin 1807 -> 0 bytes .../MiniView-transparent/BackLt_3_sm.png | Bin 1202 -> 0 bytes .../MiniView-transparent/BackRt_1_sm.png | Bin 2327 -> 0 bytes .../MiniView-transparent/BackRt_2_sm.png | Bin 1798 -> 0 bytes .../MiniView-transparent/BackRt_3_sm.png | Bin 2570 -> 0 bytes .../MiniView-transparent/Background_sm.png | Bin 4863 -> 0 bytes .../MiniView-transparent/Background_sm_4s.png | Bin 7380 -> 0 bytes .../images/MiniView-transparent/Car_Ds_sm.png | Bin 12035 -> 0 bytes .../images/MiniView-transparent/Car_sm.png | Bin 14518 -> 0 bytes .../MiniView-transparent/FrontCtr_1_sm.png | Bin 5523 -> 0 bytes .../MiniView-transparent/FrontCtr_2_sm.png | Bin 4540 -> 0 bytes .../MiniView-transparent/FrontCtr_3_sm.png | Bin 3524 -> 0 bytes .../MiniView-transparent/FrontCtr_4_sm.png | Bin 2422 -> 0 bytes .../MiniView-transparent/FrontLt_1_sm.png | Bin 2888 -> 0 bytes .../MiniView-transparent/FrontLt_2_sm.png | Bin 2313 -> 0 bytes .../MiniView-transparent/FrontLt_3_sm.png | Bin 1542 -> 0 bytes .../MiniView-transparent/FrontRt_1_sm.png | Bin 2963 -> 0 bytes .../MiniView-transparent/FrontRt_2_sm.png | Bin 2318 -> 0 bytes .../MiniView-transparent/FrontRt_3_sm.png | Bin 1536 -> 0 bytes .../apps/_videoplayer/js/_videoplayerApp.js | 1 + .../apps/_videoplayer/js/videoplayer-v3.js | 1 + .../VideoPlayer/js/VideoPlayerTmplt.js | 6 +- .../css/FuelConsumptionCtrl.css | 869 - .../FuelConsumption/js/FuelConsumptionCtrl.js | 2433 --- .../usr/lib/gstreamer-0.10/libgstalsa.so | Bin 40428 -> 0 bytes .../common/controls/List2/js/List2Ctrl.58.js | 13702 --------------- .../controls/List2/js/List2Ctrl.59.330.js | 13874 --------------- .../common/controls/List2/js/List2Ctrl.59.js | 13890 ---------------- .../gui/common/controls/List2/js/List2Ctrl.js | 13613 --------------- .../controls/MainMenu/js/MainMenuCtrl.js | 617 - .../configurations/blm_msg-system.xml | 1235 -- .../jci/gui/common/js/Common.js.56.00.230A-EU | 2364 --- .../jci/gui/common/js/Common.js.56.00.511A-EU | 2378 --- .../jci/gui/common/js/Common.js.58.00.250A-NA | 2631 --- .../jci/nativegui/images/desktop.ini | 2 - .../config_org/speedometer/stage_wifi.sh | 2 - .../images/HorizontalSensors/BackCtr_1_sm.png | Bin 5111 -> 0 bytes .../images/HorizontalSensors/BackCtr_2_sm.png | Bin 4858 -> 0 bytes .../images/HorizontalSensors/BackCtr_3_sm.png | Bin 4089 -> 0 bytes .../images/HorizontalSensors/BackCtr_4_sm.png | Bin 3208 -> 0 bytes .../images/HorizontalSensors/BackLt_1_sm.png | Bin 2037 -> 0 bytes .../images/HorizontalSensors/BackLt_2_sm.png | Bin 1666 -> 0 bytes .../images/HorizontalSensors/BackLt_3_sm.png | Bin 1209 -> 0 bytes .../images/HorizontalSensors/BackRt_1_sm.png | Bin 2023 -> 0 bytes .../images/HorizontalSensors/BackRt_2_sm.png | Bin 1651 -> 0 bytes .../images/HorizontalSensors/BackRt_3_sm.png | Bin 1176 -> 0 bytes .../HorizontalSensors/Background_sm.png | Bin 5045 -> 0 bytes .../images/HorizontalSensors/Car_Ds_sm.png | Bin 9392 -> 0 bytes .../images/HorizontalSensors/Car_sm.png | Bin 10949 -> 0 bytes .../HorizontalSensors/FrontCtr_1_sm.png | Bin 4049 -> 0 bytes .../HorizontalSensors/FrontCtr_2_sm.png | Bin 3371 -> 0 bytes .../HorizontalSensors/FrontCtr_3_sm.png | Bin 2541 -> 0 bytes .../HorizontalSensors/FrontCtr_4_sm.png | Bin 1770 -> 0 bytes .../images/HorizontalSensors/FrontLt_1_sm.png | Bin 2396 -> 0 bytes .../images/HorizontalSensors/FrontLt_2_sm.png | Bin 1920 -> 0 bytes .../images/HorizontalSensors/FrontLt_3_sm.png | Bin 1353 -> 0 bytes .../images/HorizontalSensors/FrontRt_1_sm.png | Bin 2383 -> 0 bytes .../images/HorizontalSensors/FrontRt_2_sm.png | Bin 1999 -> 0 bytes .../images/HorizontalSensors/FrontRt_3_sm.png | Bin 1441 -> 0 bytes .../images/VerticalSensors/BackCtr_1_sm.png | Bin 6492 -> 0 bytes .../images/VerticalSensors/BackCtr_2_sm.png | Bin 6201 -> 0 bytes .../images/VerticalSensors/BackCtr_3_sm.png | Bin 5375 -> 0 bytes .../images/VerticalSensors/BackCtr_4_sm.png | Bin 4326 -> 0 bytes .../images/VerticalSensors/BackLt_1_sm.png | Bin 3006 -> 0 bytes .../images/VerticalSensors/BackLt_2_sm.png | Bin 2618 -> 0 bytes .../images/VerticalSensors/BackLt_3_sm.png | Bin 2181 -> 0 bytes .../images/VerticalSensors/BackRt_1_sm.png | Bin 2992 -> 0 bytes .../images/VerticalSensors/BackRt_2_sm.png | Bin 2656 -> 0 bytes .../images/VerticalSensors/BackRt_3_sm.png | Bin 2206 -> 0 bytes .../images/VerticalSensors/Background_sm.png | Bin 15477 -> 0 bytes .../images/VerticalSensors/Car_Ds_sm.png | Bin 11722 -> 0 bytes .../images/VerticalSensors/Car_sm.png | Bin 13509 -> 0 bytes .../images/VerticalSensors/FrontCtr_1_sm.png | Bin 5440 -> 0 bytes .../images/VerticalSensors/FrontCtr_2_sm.png | Bin 4678 -> 0 bytes .../images/VerticalSensors/FrontCtr_3_sm.png | Bin 3785 -> 0 bytes .../images/VerticalSensors/FrontCtr_4_sm.png | Bin 2940 -> 0 bytes .../images/VerticalSensors/FrontLt_1_sm.png | Bin 3342 -> 0 bytes .../images/VerticalSensors/FrontLt_2_sm.png | Bin 2996 -> 0 bytes .../images/VerticalSensors/FrontLt_3_sm.png | Bin 2442 -> 0 bytes .../images/VerticalSensors/FrontRt_1_sm.png | Bin 3384 -> 0 bytes .../images/VerticalSensors/FrontRt_2_sm.png | Bin 3036 -> 0 bytes .../images/VerticalSensors/FrontRt_3_sm.png | Bin 2524 -> 0 bytes app/files/tweaks/config_org/v70/profile.org | 24 + app/index.html | 173 +- app/lang/english.aio.json | 26 +- app/lang/english.min.json | 1 - app/lang/magyar.min.json | 1087 -- app/main.js | 215 +- app/menus/context-menu.js | 12 +- app/menus/menu.js | 313 +- app/opts/25options.htm | 14 +- app/opts/mainmenuoptions.htm | 4 +- app/package-lock.json | 850 +- app/package.json | 27 +- app/preload.js | 2 +- app/views/PhotoJoiner/PhotoJoiner.html | 1 + app/views/PhotoJoiner_files/PhotoJoin.js | 24 +- .../PhotoJoiner_files/jquery-1.8.3.min.js | 2 - app/views/casdk.htm | 8 +- app/views/contact.html | 6 +- app/views/fullRestore.htm | 18 +- app/views/main.htm | 16 +- app/views/serial.html | 55 + app/views/update.htm | 44 +- package-lock.json | 5590 +++---- package.json | 69 +- 270 files changed, 6407 insertions(+), 85403 deletions(-) create mode 100644 app/assets/images/btn_donate_LG.gif create mode 100644 app/files/img/11-11.jpg create mode 100644 app/files/img/11-11_fixed.jpg create mode 100644 app/files/img/cmu-back.jpg create mode 100644 app/files/img/cmu-rx-tx.jpg create mode 100644 app/files/img/ls-l_output.png create mode 100644 app/files/img/thebolt.jpg create mode 100644 app/files/tweaks/cmu-autorun/installer/autorun create mode 100644 app/files/tweaks/cmu-autorun/installer/autorun.temp create mode 100644 app/files/tweaks/cmu-autorun/installer/cmu_dataretrieval.up create mode 100644 app/files/tweaks/cmu-autorun/installer/dataRetrieval_config.txt create mode 100644 app/files/tweaks/cmu-autorun/installer/jci-autoupdate create mode 100644 app/files/tweaks/cmu-autorun/installer/tweaks.sh create mode 100644 app/files/tweaks/cmu-autorun/installer/utils.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/README.md create mode 100644 app/files/tweaks/cmu-autorun/sdcard/WifiAP-toggle/run.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/adb/README.md create mode 100644 app/files/tweaks/cmu-autorun/sdcard/adb/adb create mode 100644 app/files/tweaks/cmu-autorun/sdcard/adb/adb.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/adb/run.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/autorun.conf create mode 100644 app/files/tweaks/cmu-autorun/sdcard/dryrun/run.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/headunit/README.md rename app/files/tweaks/{config/androidautohud => cmu-autorun/sdcard/headunit}/check-usb.sh (64%) rename app/files/tweaks/{config/androidautowifi => cmu-autorun/sdcard/headunit}/headunit (99%) create mode 100644 app/files/tweaks/cmu-autorun/sdcard/headunit/headunit-wrapper.start rename app/files/tweaks/{config/androidautohud => cmu-autorun/sdcard/headunit}/headunit.json (100%) create mode 100644 app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libgsth264parse.so create mode 100644 app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libmfw_gst_isink.so create mode 100644 app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libunwind.so create mode 100644 app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libunwind.so.8 create mode 100644 app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libunwind.so.8.0.1 create mode 100644 app/files/tweaks/cmu-autorun/sdcard/headunit/run.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/headunit/usb-allow.list create mode 100644 app/files/tweaks/cmu-autorun/sdcard/memory-log/README.md create mode 100644 app/files/tweaks/cmu-autorun/sdcard/memory-log/memLog/monitor.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/memory-log/run.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-adb/ssh-over-adb.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-adb/start-adb-ssh.autorun create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-wifiAP/jci-wifiap.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-wifiAP/start-WiFi-AP.autorun create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery-extra/adb create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/99-run-tweaks.rules create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/README.md create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/_readme.txt create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/install-udev-handler-if-not-installed.autorun create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/run-tweak-from-usb.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/udev_add_action_handler.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/watch-if-something-need-to-be-executed.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/README.md create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/_readme.txt create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/jci-fw.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/sshd_config create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/start-sshd-and-open-firewall.autorun create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/start_fw_in_background create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/config-update.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/passwd create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/passwd_update.autorun create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-sshd-config-if-needed/sshd_config create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-sshd-config-if-needed/update-sshd-config-if-needed.autorun create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/adb create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/anti-neutralizeid7.autorun create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/autorun create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/recover-autorun.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/watch-for-missing-recovery.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/README.md create mode 100644 app/files/tweaks/cmu-autorun/sdcard/recovery/run.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/run.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/screenshots/README.md create mode 100644 app/files/tweaks/cmu-autorun/sdcard/screenshots/run.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/.gitignore create mode 100644 app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/screenshots.conf create mode 100644 app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/screenshots.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/README.md create mode 100644 app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/README.txt create mode 100644 app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/mazda-ssh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/mazda-ssh.pub create mode 100644 app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/run.sh create mode 100644 app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/ssh.png delete mode 100644 app/files/tweaks/config/FuelConsumptionTweak/jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.MPG.js delete mode 100644 app/files/tweaks/config/androidauto/data_persist/dev/bin/headunit_libs/libgstapetag.so delete mode 100644 app/files/tweaks/config/androidauto/data_persist/dev/bin/headunit_libs/libgstracemtpsrc.so delete mode 100644 app/files/tweaks/config/androidautob/data_persist/dev/bin/headunit delete mode 100644 app/files/tweaks/config/androidautob/headunit delete mode 100644 app/files/tweaks/config/androidautob/headunit-1.10 delete mode 100644 app/files/tweaks/config/androidautoc/data_persist/dev/bin/headunit delete mode 100644 app/files/tweaks/config/androidautoc/headunit delete mode 100644 app/files/tweaks/config/androidautohud/headunit delete mode 100644 app/files/tweaks/config/androidautohud/headunit-wrapper delete mode 100644 app/files/tweaks/config/androidautohud/usb-allow.list delete mode 100644 app/files/tweaks/config/androidautowifi/headunit.json delete mode 100644 app/files/tweaks/config/bigger-album-art/jci/gui/common/controls/NowPlaying4/css/NowPlaying4Ctrl.css delete mode 100644 app/files/tweaks/config/bin/busybox-armv7l delete mode 100644 app/files/tweaks/config/date-to-statusbar_mod/jci/gui/common/controls/Sbn/css/SbnCtrl.v2.2.59.00.326A-ADR.css delete mode 100644 app/files/tweaks/config/date-to-statusbar_mod/jci/gui/common/controls/Sbn/css/SbnCtrl.v2.2.css delete mode 100644 app/files/tweaks/config/date-to-statusbar_mod/jci/gui/common/controls/StatusBar/css/StatusBarCtrl.v1.css delete mode 100644 app/files/tweaks/config/date-to-statusbar_mod/jci/gui/common/controls/StatusBar/css/StatusBarCtrl.v2.1.css delete mode 100644 app/files/tweaks/config/date-to-statusbar_mod/jci/gui/common/controls/StatusBar/css/StatusBarCtrl.v2.2.59.00.326A-ADR.css delete mode 100644 app/files/tweaks/config/date-to-statusbar_mod/jci/gui/common/controls/StatusBar/css/StatusBarCtrl.v2.2.css delete mode 100644 app/files/tweaks/config/jci/scripts/resource_swap.sh delete mode 100644 app/files/tweaks/config/pause-on-mute/jci/gui/common/js/Common.js.56.00.230A-EU delete mode 100644 app/files/tweaks/config/pause-on-mute/jci/gui/common/js/Common.js.56.00.511A-EU delete mode 100644 app/files/tweaks/config/pause-on-mute/jci/gui/common/js/Common.js.58.00.250A-NA delete mode 100644 app/files/tweaks/config/speedometer/fonts/CHN/Crysta.ttf delete mode 100644 app/files/tweaks/config/speedometer/fonts/Crysta.ttf delete mode 100644 app/files/tweaks/config/speedometer/fonts/JP/Crysta.ttf delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_1_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_2_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_3_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_4_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackLt_1_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackLt_2_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackLt_3_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackRt_1_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackRt_2_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackRt_3_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/Background_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/Background_sm_4s.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/Car_Ds_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/Car_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontCtr_1_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontCtr_2_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontCtr_3_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontCtr_4_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontLt_1_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontLt_2_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontLt_3_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontRt_1_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontRt_2_sm.png delete mode 100644 app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontRt_3_sm.png delete mode 100644 app/files/tweaks/config_org/FuelConsumptionTweak/jci/gui/apps/ecoenergy/controls/FuelConsumption/css/FuelConsumptionCtrl.css delete mode 100644 app/files/tweaks/config_org/FuelConsumptionTweak/jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.js delete mode 100644 app/files/tweaks/config_org/androidauto/usr/lib/gstreamer-0.10/libgstalsa.so delete mode 100644 app/files/tweaks/config_org/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.58.js delete mode 100644 app/files/tweaks/config_org/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.59.330.js delete mode 100644 app/files/tweaks/config_org/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.59.js delete mode 100644 app/files/tweaks/config_org/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.js delete mode 100644 app/files/tweaks/config_org/main-menu-loop/jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js delete mode 100644 app/files/tweaks/config_org/message_replies/jci/settings/configurations/blm_msg-system.xml delete mode 100644 app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.56.00.230A-EU delete mode 100644 app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.56.00.511A-EU delete mode 100644 app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.58.00.250A-NA delete mode 100644 app/files/tweaks/config_org/safety-warning-reverse-camera/jci/nativegui/images/desktop.ini delete mode 100644 app/files/tweaks/config_org/speedometer/stage_wifi.sh delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackCtr_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackCtr_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackCtr_3_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackCtr_4_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackLt_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackLt_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackLt_3_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackRt_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackRt_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackRt_3_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/Background_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/Car_Ds_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/Car_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontCtr_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontCtr_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontCtr_3_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontCtr_4_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontLt_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontLt_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontLt_3_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontRt_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontRt_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontRt_3_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackCtr_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackCtr_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackCtr_3_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackCtr_4_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackLt_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackLt_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackLt_3_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackRt_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackRt_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackRt_3_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/Background_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/Car_Ds_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/Car_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontCtr_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontCtr_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontCtr_3_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontCtr_4_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontLt_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontLt_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontLt_3_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontRt_1_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontRt_2_sm.png delete mode 100644 app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontRt_3_sm.png create mode 100644 app/files/tweaks/config_org/v70/profile.org delete mode 100644 app/lang/english.min.json delete mode 100644 app/lang/magyar.min.json delete mode 100644 app/views/PhotoJoiner_files/jquery-1.8.3.min.js create mode 100644 app/views/serial.html diff --git a/.gitignore b/.gitignore index 26c5e80..14ca1ba 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,3 @@ sign.sh AIO\.sh -app/files/tweaks/cmu-autorun/ diff --git a/app/assets/css/index.css b/app/assets/css/index.css index c32bb36..062edab 100644 --- a/app/assets/css/index.css +++ b/app/assets/css/index.css @@ -315,7 +315,7 @@ input[type=checkbox]#bgrotator, .accordion-content input[type=checkbox] { visibility: visible; } tr.bgrotator-button { - height: 100%; + height: 100%; } img.loader {} #bg-img { @@ -348,11 +348,25 @@ span.test-panel-toggle, .footer-donate { left: 10px; z-index: 99999; } +.footer-donate { + opacity: 0; + bottom: 40px; + transition: .4s ease .2s; +} +.footer-donate:hover { + opacity: 1; + transition: .2s ease-in 0s; +} +.footer-secret:hover+.footer-donate { + opacity: 1; + transition: .2s linear 0s; +} .copyright { position: fixed; right: 0; left: 0; margin: auto; + max-width: 200px; } .copyleft { font-weight: 500 @@ -370,6 +384,11 @@ footer .contact-form { footer a { cursor: pointer; } +footer .footer-secret { + width: 120px; + position: fixed; + left: 10px; +} footer .footer-secret a { color: transparent; left: 100px; @@ -1013,9 +1032,9 @@ body.w3-black { font-weight: 900; } .bootbox-body .w3-center h3 a, .bootbox-body .w3-center h3 button { - letter-spacing: 2.4px; + letter-spacing: 1.4px; font-weight: 600; - min-width: 350px; + width: 350px; text-overflow: ellipsis; } .compFinishBox .bootbox-body { @@ -1943,7 +1962,7 @@ select#spdOp-barThemeStart { bottom: 10%; } ::-webkit-scrollbar-button:single-button:start { - height: 0px!important; + height: 0px !important; } } @media only screen and (max-height: 580px) { @@ -2521,7 +2540,7 @@ input:disabled { cursor: not-allowed; } .slide-pop { - bottom: 20%; + bottom: 40%; right: 10px; position: absolute; border: 3px groove #524a8a; @@ -2568,16 +2587,64 @@ input:disabled { display: initial; } .isink input[type=checkbox].w3-check { - height: 15px; - width: 15px; + height: 15px; + width: 15px; } .isink { - text-align: center; + text-align: center; } div#goog-gt-tt { - display: none!important; + display: none !important; } .goog-text-highlight { - box-shadow:none!important; - background: transparent!important; + box-shadow: none !important; + background: transparent !important; +} +.ppdonate { + opacity: 0.5; +} +.ppdonate:hover { + opacity: 1; +} +div#serial-window { + background: #fff; + padding-top: 100px; + padding-bottom: 100px; +} +.serial-img { + width: 46.6%; + max-width: 46.6%; + width: 600px; + height: auto; +} +.copied-msg { + color: #ff0000; + font-size: 10px; + font-style: oblique; + display: inline; + font-weight: 600; +} +span.one-liner code input, span.one-liner code { + width: 65px; + color: #000; + text-align: center; +} +pre code input, pre code { + width: 100%; +} +#serial-window pre button { + background: #32aeff; +} +pre button.w3-btn { + background: #fff; + color: #000; + display: block; + transition: 1s ease-in-out .5s; +} +#serial-window pre button.w3-btn:hover { + background: #0000ff; + color: #00ff00; +} +.gritter-item-wrapper img { + max-width: 100%; } diff --git a/app/assets/images/btn_donate_LG.gif b/app/assets/images/btn_donate_LG.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7d2bf835b38d9a5515fb7487512c1321651b4a2 GIT binary patch literal 1597 zcmchW>sOKo0LEXgDmM{O5kaxM;H}^VUa_*kP!y%S)kLlIq?8KX0v2`@kbPTV%BN zCJ{WG4qNxZkBb*N!shOTeZRwJ$7YW|oA{%3JRc8-eVNSny$Nt{MBx_C6DsdTa~#|! zh5Mr37zKDoB-|gr_>nN6m^Vr0?@8>P;j_0OPa1YfRt^1UY-!0~z> z7LE9;ML69iT$oKQFZu95{9LCTez^NZBlzAF_SztL*(7+;$p5D|jY32( z-4kWWUE$w$E@L>rw!=aWepLuzX()ZHjyHQZdc|_w*mZDgjO(^oSH)_Vs~W%3uh^Cg zD~h&xy1QUFUXEjR+~)5%7rtKpcPnHp;Y{lJeoV)|jKbM=;lxcaFTve*6^sifuk^(& z^lugf;M-3I&fblhyA3_72ibIor}exKJ(5U}6uJ!e${>8!0J@UVqgS{S4ZP|0HFk5H zW;=7^8kbiFs6p$$a5pT($LaQ|K+qrWMn;ca0~ZI={%#ejlIeloPM>Xb-;>U;_bdLn z4ZSmOdeb5-FJRBKuc4CA(L(3Bj313}k6>4?K zmoJ%e+Ld}o!m%LM*YVZ5OX~|6mQO#GLNS=*1=GlQ+j*7Jz%m=F|2U{38-6nTuTQ_I zqO2M)UmkjXToqsK=9-jT9klIil5V=DRsXCjpjcNy%TiW%ph_BoG;K{U23c`KPLM7E zIhdqK8;q8JVGOJ+nx)vN4o&Ar40HXvIm3rlj|?7r%R_PHTb{_H`mvKrW8G0IoAPoB zHTkCnzdzyEFmo9a~%Gkw)&)*Gq6qCG=ep5hkMwJi2%4n47 z6q0XPyL|6qi_Lk-vCxKdWkfetVwu9d{`95$%DlXt8eCx};uG1@!lP2IHD#uoDoRcC z@QhWJM<*Sfd7g~@f|*G{CG9O$1Z_|Y&S+`*wP-psp*a#dsg|MWR%xKU7B;^}YF+^@{NTsL`EWt^I318Qk}w<^c}UQ!hAoL`4^c9jomOud!8o=}Xz;iqttr%6P$mJJDbszP`--#`7-PYV zGN)$OMH$3Dr|HHba+9S{oBm-`Qq343mK9~c#UH8JO^bvYQeOhDr~OPl9L~9GL{`Ku zb__&UtD_+=n!Z+M-| f)A;_^4SSvzb`e|04=fTz;|2T&k;1)LG_d+#fb4kn literal 0 HcmV?d00001 diff --git a/app/assets/js/build-tweaks.js b/app/assets/js/build-tweaks.js index 3d79af1..f0ef0e7 100644 --- a/app/assets/js/build-tweaks.js +++ b/app/assets/js/build-tweaks.js @@ -80,7 +80,7 @@ function buildTweaksConfig (user, apps) { try { mkdirp.sync(`${tmpdir}/config/`) } catch (e) { - m = `${e} - Error occured while creating '_copy_to_usb' folder. Try closing all other running programs and folders before compiling.` + var m = `${e} - Error occured while creating '_copy_to_usb' folder. Try closing all other running programs and folders before compiling.` aioLog(e.message, m) return } @@ -591,7 +591,7 @@ function buildTweak (user) { var offBG = user.mainOps.includes(10) ? `${varDir}/OffScreenBackground.png` : path.resolve(approot, '../background-images/default/OffScreenBackground.png') var inStrOff = fs.createReadStream(offBG) inStrOff.on('error', (err) => { - aioLog('ERROR: No Off Screen Background Chosen... Skipping') + aioLog('ERROR: No Off-Screen Background Chosen... ', err) }) inStrOff.on('open', () => { addTweak(`00_offbackground-${user.mainOps.includes(10) ? 'i' : 'u'}.txt`) @@ -600,7 +600,7 @@ function buildTweak (user) { aioLog('Off Screen Background Copy Successful!') }) outOff.on('error', (err) => { - aioLog(err, 'ERROR: Copy Off Screen Background Failed!') + aioLog('ERROR: Copy Off Screen Background Failed!', err) }) inStrOff.pipe(outOff) }) @@ -609,31 +609,31 @@ function buildTweak (user) { if (user.mainOps.includes(2)) { var inStrbg = fs.createReadStream(`${getBackground}`) inStrbg.on('error', (err) => { - aioLog('ERROR: No Background Chosen... Skipping') + aioLog('ERROR: No Background Chosen...', err) }) inStrbg.on('open', () => { - if (user.mainOps.includes(6)) { - addTweak('00_bgrotator-i.txt') - } var out = fs.createWriteStream(`${tmpdir}/config/background.png`, { flags: 'w' }) out.on('close', () => { aioLog('Background Copy Successful!') }) out.on('error', (err) => { - aioLog(err, 'Background Copy Failed!') + aioLog('Background Copy Failed!', err) }) inStrbg.pipe(out) - addTweak('00_background.txt') }) + if (user.mainOps.includes(6)) { + addTweak('00_bgrotator-i.txt') + } + addTweak('00_background.txt') } if (user.mainOps.includes(5)) { addTweak('00_sd-cid.txt') addTweakDir('get_sd_cid', true) } - /*if (user.multictrlbtns) { + /* if (user.multictrlbtns) { addTweak('00_multicontroller-i.txt') addTweakDir('multicontroller', true) - }*/ + } */ if (user.options.includes(19) || user.options.includes(17) || user.options.includes(25) || user.options.includes(27) || user.options.includes(28) || user.options.includes(119) || user.options.includes(117) || user.options.includes(125) || user.options.includes(127) || user.options.includes(128)) { addTweakDir('bin', true) if (user.options.includes(19) || user.options.includes(17) || user.options.includes(25) || user.options.includes(27) || user.options.includes(28)) { @@ -665,10 +665,8 @@ function buildTweak (user) { if (user.destruct || copySwapfile) { addTweak('99_self-destruct.txt') } - // Add root files to tmp and write tweaks.sh addRootFiles(user.dataDump) - setTimeout(() => { // Finish with the end script addTweak(user.options.includes(11) ? '00_factory-reset-end.txt' : '00_end.txt') @@ -753,7 +751,6 @@ function writeSpeedoConfigFile (user) { speedoConfig.push(`${builddir}/config/speedometer_config/config-start.js`) speedoConfig.push(`${varDir}/spdConf.txt`) speedoConfig.push(`${builddir}/config/speedometer_config/config-end.js`) - var config = fs.createWriteStream(`${tmpdir}/config/speedometer/speedometer-config.js`) new appender(speedoConfig).pipe(config) config.on('close', () => { @@ -1050,7 +1047,8 @@ function aioLog (logMsg, err) { userView.innerHTML = logMsg } if (err) { - AIO_LOG_HTML += `
  • ${err}: ${logMsg}
  • \n` + AIO_LOG_HTML += `
  • ${err}
  • ${logMsg}
  • \n` + $('#sidePanel').append(`

    ${logMsg}

    ${err}
    `) errFlag = true printAIOlog() // dialog.showErrorBox(err) @@ -1098,94 +1096,92 @@ function appendAIOlog (logMsg) { } } // Returns the available usb drives -function usbDrives () { +async function usbDrives () { + var dsklst = await drivelist.list() var disks = [] var usbDriveLst = [] try { - drivelist.list((error, dsklst) => { - if (error) { throw error } - dsklst.forEach((drive) => { - if (!drive.isSystem) { - disks.push({ 'desc': drive.description.replace(' USB Device', ''), 'mp': `${drive.mountpoints[0].path}` }) - usbDriveLst.push({ 'text': ` ${drive.mountpoints[0].path.replace(/\\/g, '/')} ${drive.description.replace(' USB Device', '')}`, 'value': drive.mountpoints[0].path }) - } - }) - introJs().hideHints() - var usb = disks - var lst = '' - if (usb.length < 1) { - appendAIOlog(`
  • No USB Drives Found
  • `) - unzipSwapfile(null) - } else if (usb.length > 1) { - lst += `

    ${usb.length} ${langObj.popupMsgs[6].msg}:

    ` - var usbuttons = '' - for (var j = 0; j < usb.length; j++) { - var mpLoc = (process.platform === 'win32') ? `${usb[j].mp.replace(/\\/g, '')}` : `${usb[j].mp}` - lst += `

    ${mpLoc} ${usb[j].desc} ` - lst += `

    ` - appendAIOlog(`
  • Found USB Drive #${j + 1} - ${mpLoc} ${usb[j].desc}
  • `) - } - lst += `
    ${langObj.popupMsgs[8].msg}:
    ${langObj.popupMsgs[2].msg}` - lst += usbuttons - lst += `` - bootbox.prompt({ - title: lst, - inputType: 'select', - inputOptions: usbDriveLst, - className: 'copytoUSBMulti', - buttons: { - confirm: { - label: ` ${langObj.popupMsgs[3].msg}` - }, - cancel: { - label: ` ${langObj.popupMsgs[4].msg}` - } + dsklst.forEach((drive) => { + if (!drive.isSystem && drive.mountpoints && drive.mountpoints[0] && drive.mountpoints[0].path) { + disks.push({ 'desc': drive.description.replace(' USB Device', ''), 'mp': `${drive.mountpoints[0].path}` }) + usbDriveLst.push({ 'text': ` ${drive.mountpoints[0].path.replace(/\\/g, '/')} ${drive.description.replace(' USB Device', '')}`, 'value': drive.mountpoints[0].path }) + } + }) + introJs().hideHints() + var usb = disks + var lst = '' + if (usb.length < 1) { + appendAIOlog(`
  • No USB Drives Found
  • `) + unzipSwapfile(null) + } else if (usb.length > 1) { + lst += `

    ${usb.length} ${langObj.popupMsgs[6].msg}:

    ` + var usbuttons = '' + for (var j = 0; j < usb.length; j++) { + var mpLoc = (process.platform === 'win32') ? `${usb[j].mp.replace(/\\/g, '')}` : `${usb[j].mp}` + lst += `

    ${mpLoc} ${usb[j].desc} ` + lst += `

    ` + appendAIOlog(`
  • Found USB Drive #${j + 1} - ${mpLoc} ${usb[j].desc}
  • `) + } + lst += `
    ${langObj.popupMsgs[8].msg}:
    ${langObj.popupMsgs[2].msg}` + lst += usbuttons + lst += `` + bootbox.prompt({ + title: lst, + inputType: 'select', + inputOptions: usbDriveLst, + className: 'copytoUSBMulti', + buttons: { + confirm: { + label: ` ${langObj.popupMsgs[3].msg}` }, - callback: function (result) { - if (!result) { - unzipSwapfile(null) - } else { - settings.set('delCopyFolder', $('#rmCpDirCheck').prop('checked')) - copyToUSB(result) - } + cancel: { + label: ` ${langObj.popupMsgs[4].msg}` + } + }, + callback: function (result) { + if (!result) { + unzipSwapfile(null) + } else { + settings.set('delCopyFolder', $('#rmCpDirCheck').prop('checked')) + copyToUSB(result) } - }) - $('#rmCpDirCheck').prop('checked', settings.get('delCopyFolder', false)) - } else if (usb.length === 1) { - lst = `

    ${langObj.popupMsgs[6].msg}:

    ` - for (var k = 0; k < usb.length; k++) { - lst += `

    ${usb[k].mp.replace(/\\/g, '/')} ${usb[k].desc}

    ` - appendAIOlog(`
  • USB Drive - ${usb[k].mp.replace(/\\/g, '/')} ${usb[k].desc}
  • `) } - var mpLocation = (process.platform === 'win32') ? `${usb[0].mp.replace(/\\/g, '/')}` : `${usb[0].mp}` - lst += `${langObj.popupMsgs[7].msg} ${mpLocation.replace(/[\/:]/g, '')}?
    ${langObj.popupMsgs[2].msg}` - lst += `` - lst += `` - bootbox.confirm({ - title: `Copy files to USB drive?`, - message: lst, - className: 'copytoUSB1', - buttons: { - confirm: { - label: ` ${langObj.popupMsgs[3].msg}` - }, - cancel: { - label: ` ${langObj.popupMsgs[4].msg}` - } + }) + $('#rmCpDirCheck').prop('checked', settings.get('delCopyFolder', false)) + } else if (usb.length === 1) { + lst = `

    ${langObj.popupMsgs[6].msg}:

    ` + for (var k = 0; k < usb.length; k++) { + lst += `

    ${usb[k].mp.replace(/\\/g, '/')} ${usb[k].desc}

    ` + appendAIOlog(`
  • USB Drive - ${usb[k].mp.replace(/\\/g, '/')} ${usb[k].desc}
  • `) + } + var mpLocation = (process.platform === 'win32') ? `${usb[0].mp.replace(/\\/g, '/')}` : `${usb[0].mp}` + lst += `${langObj.popupMsgs[7].msg} ${mpLocation.replace(/[\/:]/g, '')}?
    ${langObj.popupMsgs[2].msg}` + lst += `` + lst += `` + bootbox.confirm({ + title: `Copy files to USB drive?`, + message: lst, + className: 'copytoUSB1', + buttons: { + confirm: { + label: ` ${langObj.popupMsgs[3].msg}` }, - callback: function (result) { - if (!result) { - unzipSwapfile(null) - } else { - settings.set('delCopyFolder', $('#rmCpDirCheck').prop('checked')) - copyToUSB(mpLocation) - } + cancel: { + label: ` ${langObj.popupMsgs[4].msg}` } - }) - $('#rmCpDirCheck').prop('checked', settings.get('delCopyFolder', false)) - return usb - } - }) + }, + callback: function (result) { + if (!result) { + unzipSwapfile(null) + } else { + settings.set('delCopyFolder', $('#rmCpDirCheck').prop('checked')) + copyToUSB(mpLocation) + } + } + }) + $('#rmCpDirCheck').prop('checked', settings.get('delCopyFolder', false)) + return usb + } } catch (e) { bootbox.alert({ title: '
    Error Locating Available USB Drives
    ', @@ -1216,7 +1212,7 @@ function copyToUSB (mp) { className: 'copyingtoUSB', closeButton: false }) - if (!keeplog) { + if (userOps.autorun.installer && userOps.autorun.serial) { mp = `${mp}/XX` mkdirp.sync(mp) } @@ -1279,7 +1275,7 @@ function unzipSwapfile (dest) { fs.unlinkSync(`${swapdest}/swapfile`) appendAIOlog(`
  • Swapfile Error: ${err}
  • `) console.error(err.toString(), err) - dialog.showErrorBox('Swapfile Error',`CANNOT UNZIP SWAPFILE - ${err.toString()}`) + dialog.showErrorBox('Swapfile Error', `CANNOT UNZIP SWAPFILE - ${err.toString()}`) } else { appendAIOlog(`
  • Swapfile Unzipped.
  • `) } @@ -1317,7 +1313,7 @@ function finishedMessage (mp) { bootbox.hideAll() if (errFlag) { bootbox.dialog({ - message: `
    ×

    An Error Has Occured. Please Try Again.


    ${strtOver}

    ${saveBtn}

    ${viewLog}

    `, + message: `
    ×

    An Error Has Occured.

    ${$('#AIO-ERR').html()}

    ${strtOver}

    ${saveBtn}

    ${viewLog}

    Please Try Again.

    `, className: 'finishedMessage', closeButton: false }) @@ -1496,9 +1492,14 @@ function buildAutorunInstaller (user) { aioLog('ERROR COPYING ID7RECOVERY FILES', err) } else { rimraf.sync(`${tmpdir}/**/*.md`) - rimraf.sync(`${tmpdir}/00-*/*.txt`) - if (!user.autorun.serial) { + rimraf.sync(`${tmpdir}/02-*/*.txt`) + if (user.autorun.serial) { + fs.unlinkSync(`${tmpdir}/tweaks.sh`) + } else { fs.unlinkSync(`${tmpdir}/run.sh`) + if (!user.backups.skipconfirm) { + replaceInFile(`${tmpdir}/tweaks.sh`, '# confirmation ', '') + } } aioLog('ID7_recovery Pack Copied Successfully!') addWifiAP(user) @@ -1522,11 +1523,11 @@ function addWifiAP (user) { aioLog('ERROR COPYING AUTORUN FILES', err) } if (!user.autorun.autoADB) { - rimraf.sync(`${tmpdir}/00-start-adb/`) + rimraf.sync(`${tmpdir}/*-start-adb/`) rimraf.sync(`${tmpdir}/adb`) } if (!user.autorun.autoWIFI) { - rimraf.sync(`${tmpdir}/00-start-wifiAP/`) + rimraf.sync(`${tmpdir}/*-start-wifiAP/`) } }) } @@ -1550,12 +1551,12 @@ function addWifiAP (user) { title: 'Values Were Not Changed', message: 'WiFi AP Will not be installed', callback: () => { - rimraf.sync(`${tmpdir}/00-start-wifiAP/`) + rimraf.sync(`${tmpdir}/*-start-wifiAP/`) serialCheck(user) } }) } else { - fs.writeFileSync(`${tmpdir}/00-start-wifiAP/wifiAP.config`, result + '\n') + fs.writeFileSync(`${tmpdir}/*-start-wifiAP/wifiAP.config`, result + '\n') serialCheck(user) } } diff --git a/app/assets/js/events.js b/app/assets/js/events.js index 2e70ebe..0348daf 100644 --- a/app/assets/js/events.js +++ b/app/assets/js/events.js @@ -77,15 +77,18 @@ ipc.on('already-downloaded', function (event, filename) { }) }) ipc.on('selected-joined-bg', function (event, filepath) { - var outFile = `${getBackground}` - clipboard.writeImage(filepath[0]) - joinedPhoto(filepath[0]) - let bgNotification = new Notification('Background', { - body: `Your Infotainment Background Will Be Changed To: ${filepath}`, - icon: 'favicon.ico', - silent: true - }) - bgNotification.onclick = () => {} + if(filepath && filepath[0]) { + var outFile = `${getBackground}` + clipboard.writeImage(filepath[0]) + joinedPhoto(filepath[0]) + let bgNotification = new Notification('Background', { + body: `Your Infotainment Background Will Be Changed To: ${filepath[0]}`, + icon: 'favicon.ico', + silent: true + }) + bgNotification.onclick = () => {} + //snackbar(`Your Infotainment Background Will Be Changed To: ${filepath[0]}`) + } }) ipc.on('selected-bg', function (event, filepath) { var outFile = `${getBackground}` @@ -97,6 +100,7 @@ ipc.on('selected-bg', function (event, filepath) { icon: 'favicon.ico', silent: true }) + snackbar(`Your Infotainment Background: ${filepath}`) bgNotification.onclick = () => { $('#imgframe').click() } @@ -111,6 +115,7 @@ ipc.on('selected-offscreen-bg', function (event, filepath) { silent: true }) bgNotification.onclick = () => {} + snackbar(`Your Infotainment Off-Screen Background: ${filepath}`) }) ipc.on('set-bg', (prev) => { var bgNoCache = `${getBackground}?` + new Date().getTime() @@ -127,8 +132,9 @@ ipc.on('selected-album-art', function (event, filepath) { settings.set('blank-album-art', `${filepath}`) fs.writeFileSync(`${outFile}`, nativeImage.createFromPath(`${filepath}`).resize({ 'width': 146, 'height': 146 }).toPNG()) setTimeout(function () { - var bgNoCache = `${varDir}/no_artwork_icon.png?` + new Date().getTime() - $('#blnk-albm-img').html(``) + var bgNoCache = `` + $('#blnk-albm-img').html(`${bgNoCache}`) + snackbar(`Blank Album Art: ${bgNoCache}`) }, 2000) }) ipc.on('aio-info', function (event) { diff --git a/app/assets/js/index.js b/app/assets/js/index.js index 5be9c96..ed4e2de 100644 --- a/app/assets/js/index.js +++ b/app/assets/js/index.js @@ -10,7 +10,7 @@ ** ** ** ************************************************************************** ** \* ************************************************************************** */ -/* jshint esversion:6, -W033, -W117, -W097, -W116 */ +/* jshint esversion:8, -W033, -W117, -W097, -W116 */ const { electron, nativeImage, remote, clipboard, shell } = require('electron') const { app, BrowserWindow, dialog } = remote const _ = require('lodash') @@ -37,7 +37,7 @@ const mkdirp = require('mkdirp') // Equiv of Unix command mkdir -p const rimraf = require('rimraf') // Equiv of Unix command rm -rf var copyFolderLocation = persistantData.get('copyFolderLocation', app.getPath('desktop')) var visits = persistantData.get('visits', 0) -var hasSpeedCamFiles = fs.existsSync(`${app.getPath('userData')}/speedcam-patch/`) +var hasSpeedCamFiles = false // fs.existsSync(`${app.getPath('userData')}/speedcam-patch/`) var translateSchema, langPath, lang, langDefault var colordir = `${app.getPath('userData')}/color-schemes/` // Location of downloaded color theme files (userData) var hasColorFiles = fs.existsSync(`${colordir}`) @@ -47,9 +47,11 @@ var logFileName = 'MZD_LOG' // Name of log file (without extension) var varDir = `${app.getPath('userData')}/background/` // Location of files with saved variables var getBackground = `${varDir}/background.png` var date = function () { return new Date() } +var dataURL = '' +var aioURL = '' process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = true var helpClick = false -var updateVer = 284 +var updateVer = 285 // require('./lib/log')('MZD-AIO-LOG') // var output = process.stdout // var errorOutput = process.stderr @@ -95,7 +97,6 @@ fs.readdir(testFolder, (err, files) => { }) */ - function saveMenuLock () { persistantData.set('menuLock', !persistantData.get('menuLock')) $('body, .hideNav, .w3-overlay').toggleClass('showNav') @@ -110,7 +111,7 @@ function helpMessageFreeze (item) { } function runAAPatcher (apk) { - //require('./assets/js/aapatcher.js')(apk) + // require('./assets/js/aapatcher.js')(apk) } function runInstallCSApp () { @@ -171,12 +172,20 @@ function myStance () { } function announcement () { + if (persistantData.get('visits', 0) % 20 === 0) { + showAnnouncement() + } +} -// announcement +function dataCheck () { + persistantData.delete('updateAvailable') + localStorage.setItem(`dat${updateVer}`, true) } -function showAnnouncement() { -//announcement +function showAnnouncement () { + if (persistantData.get('anon', false)) { + $.featherlight(aioURL, { closeSpeed: 1000, variant: 'announcementWindow' }) + } } function hideAnnouncement (anonNum) { @@ -190,6 +199,7 @@ function anonData (anonNum) { } function updateNotes () { + bootbox.hideAll() $.get('views/update.htm', function (data) { $('#changelog').html(data) }) bootbox.dialog({ title: `
    Welcome To MZD-AIO-TI v${app.getVersion()} | MZD All In One Tweaks Installer
    `, @@ -201,6 +211,7 @@ function updateNotes () { setTimeout(() => { $('.modal-dialog').animate({ 'margin-top': '40px', 'margin-bottom': '60px' }, 3000) $('#upVerBtn').fadeIn(5000) + persistantData.set('updated', true) }, 2000) } @@ -209,6 +220,9 @@ function firstTimeVisit () { myStance() settings.set('reset', true) lastView.clear() + if(persistantData.has('updateVer')) { + updateNotes() + } persistantData.set('updateVer', updateVer) persistantData.set('updated', false) persistantData.delete('ver270') @@ -232,7 +246,6 @@ function updateNotesCallback () { if (visits > 0) { if (!persistantData.get('updated', false)) { updateNotes() - persistantData.set('updated', true) } } else { persistantData.set('visits', 1) @@ -243,7 +256,7 @@ function updateNotesCallback () { closeButton: false, className: 'first-time-dialog' }) - setTimeout(() => { $('#super-overlay').remove() }, 3000) + setTimeout(() => { $('#super-overlay').remove() }, 9000) setTimeout(() => { $('#first-time-msg-btn').html(`
    `) $('#newVerBtn').fadeIn(10000) @@ -278,11 +291,12 @@ function helpDropdown () { } function closeHelpDrop () { - var x, y - if (x = document.getElementById('helpDrop')) { + var x = document.getElementById('helpDrop'), + y = document.getElementById('helpDropBtn') + if (x) { x.className = x.className.replace(' w3-show', '') } - if (y = document.getElementById('helpDropBtn')) { + if (y) { y.innerHTML = "" } } @@ -340,25 +354,19 @@ function cleanArray (actual) { return newArray } +function copyCode (x) { + $(x).select() + var copyText = document.execCommand('Copy') + if (copyText) snackbar('Copied "' + $(x).val() + '" to clipboard') +} + function donate () { shell.openExternal('http://trevelopment.win/donate') - /*let donatewin = new remote.BrowserWindow({ - width: 500, - height: 600, - resizable: false, - movable: false, - parent: remote.BrowserWindow.fromId(1), - icon: './app/favicon.ico', - autoHideMenuBar: true - }) - donatewin.loadURL('http://trevelopment.win/donate') - donatewin.on('closed', () => { - remote.BrowserWindow.fromId(1).focus() - })*/ } // Returns list of USB Drives -function getUSBDrives () { +async function getUSBDrives () { var disks = [] + var dsklst = await drivelist.list() drivelist.list(function (error, dsklst) { if (error) { console.error('Error finding USB drives') @@ -377,8 +385,8 @@ function getParameterByName (name, url) { if (!url) url = window.location.href url = url.toLowerCase() // This is just to avoid case sensitiveness name = name.replace(/[[\]]/g, '\\$&').toLowerCase() // This is just to avoid case sensitiveness for query parameter name - var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), - results = regex.exec(url) + var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)') + var results = regex.exec(url) if (!results) return '' // url.substr(url.lastIndexOf('/') + 1) if (!results[2]) return '' return decodeURIComponent(results[2].replace(/\+/g, ' ')) @@ -469,8 +477,9 @@ function showCompatibility () {
    -

    **AIO IS COMPATIBLE WITH ALL FW V55, V56, V58, V59 AND UP TO V70.00.100**

    +

    **AIO IS COMPATIBLE WITH ALL FW V55, V56, V58, V59 AND UP TO V70.00.352**

    NOTE: FW v59.00.502+ Requires Additional Steps To Install Tweaks. If updating to v59.00.502+ install Autorun & Recovery Scripts to allow Tweaks to be installed after updating.

    +

    WARNING: FW v70.00.335+ Requires Making A Serial Connection Before Updating.

    `).insertAfter($('#mzd-title')) } $(function () { @@ -501,21 +510,21 @@ function numberReplacer (key, value) { } function replaceInFile (someFile, toReplace, replacement, callback) { - fs.readFile(someFile, 'utf8', function (err,data) { + fs.readFile(someFile, 'utf8', function (err, data) { if (err) { err = err.toString() + dialog.showErrorBox('ERROR', err) return console.error(err) - dialog.showErrorBox("ERROR",err) } - var re = new RegExp(toReplace,"g"); + var re = new RegExp(toReplace, 'g') var result = data.replace(re, replacement) fs.writeFile(someFile, result, 'utf8', function (err) { - if (err){ + if (err) { err = err.toString() + dialog.showErrorBox('ERROR', err) return console.error(err) - dialog.showErrorBox("ERROR",err) } - if(typeof callback === "function") callback() + if (typeof callback === 'function') callback() }) }) } diff --git a/app/assets/vendor/showdown.min.js b/app/assets/vendor/showdown.min.js index 65ee602..91121d0 100644 --- a/app/assets/vendor/showdown.min.js +++ b/app/assets/vendor/showdown.min.js @@ -1,62 +1,2 @@ -// -// showdown.js -- A javascript port of Markdown. -// -// Copyright (c) 2007 John Fraser. -// -// Original Markdown Copyright (c) 2004-2005 John Gruber -// -// -// Redistributable under a BSD-style open source license. -// See license.txt for more information. -// -// The full source distribution is at: -// -// A A L -// T C A -// T K B -// -// -// -// -// Wherever possible, Showdown is a straight, line-by-line port -// of the Perl version of Markdown. -// -// This is not a normal parser design; it's basically just a -// series of string substitutions. It's hard to read and -// maintain this way, but keeping Showdown close to the original -// design makes it easier to port new features. -// -// More importantly, Showdown behaves like markdown.pl in most -// edge cases. So web applications can do client-side preview -// in Javascript, and then build identical HTML on the server. -// -// This port needs the new RegExp functionality of ECMA 262, -// 3rd Edition (i.e. Javascript 1.5). Most modern web browsers -// should do fine. Even with the new regular expression features, -// We do a lot of work to emulate Perl's regex functionality. -// The tricky changes in this file mostly have the "attacklab:" -// label. Major or self-explanatory changes don't. -// -// Smart diff tools like Araxis Merge will be able to match up -// this file with markdown.pl in a useful way. A little tweaking -// helps: in a copy of markdown.pl, replace "#" with "//" and -// replace "$text" with "text". Be sure to ignore whitespace -// and line endings. -// -// -// Showdown usage: -// -// var text = "Markdown *rocks*."; -// -// var converter = new Showdown.converter(); -// var html = converter.makeHtml(text); -// -// alert(html); -// -// Note: move the sample code to the bottom of this -// file before uncommenting it. -// -// -// Showdown namespace -// -var Showdown={extensions:{}},forEach=Showdown.forEach=function(a,b){if(typeof a.forEach=="function")a.forEach(b);else{var c,d=a.length;for(c=0;c?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm,function(a,d,e,f,g){return d=d.toLowerCase(),b[d]=G(e),f?f+g:(g&&(c[d]=g.replace(/"/g,""")),"")}),a=a.replace(/~0/,""),a},m=function(a){a=a.replace(/\n/g,"\n\n");var b="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del|style|section|header|footer|nav|article|aside",c="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside";return a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,n),a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside)\b[^\r]*?<\/\2>[ \t]*(?=\n+)\n)/gm,n),a=a.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,n),a=a.replace(/(\n\n[ ]{0,3}[ \t]*(?=\n{2,}))/g,n),a=a.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,n),a=a.replace(/\n\n/g,"\n"),a},n=function(a,b){var c=b;return c=c.replace(/\n\n/g,"\n"),c=c.replace(/^\n/,""),c=c.replace(/\n+$/g,""),c="\n\n~K"+(d.push(c)-1)+"K\n\n",c},o=function(a){a=v(a);var b=A("
    ");return a=a.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,b),a=x(a),a=y(a),a=E(a),a=m(a),a=F(a),a},p=function(a){return a=B(a),a=q(a),a=H(a),a=t(a),a=r(a),a=I(a),a=G(a),a=D(a),a=a.replace(/ +\n/g,"
    \n"),a},q=function(a){var b=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|)/gi;return a=a.replace(b,function(a){var b=a.replace(/(.)<\/?code>(?=.)/g,"$1`");return b=N(b,"\\`*_"),b}),a},r=function(a){return a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,s),a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,s),a=a.replace(/(\[([^\[\]]+)\])()()()()()/g,s),a},s=function(a,d,e,f,g,h,i,j){j==undefined&&(j="");var k=d,l=e,m=f.toLowerCase(),n=g,o=j;if(n==""){m==""&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m;if(b[m]!=undefined)n=b[m],c[m]!=undefined&&(o=c[m]);else{if(!(k.search(/\(\s*\)$/m)>-1))return k;n=""}}n=N(n,"*_");var p='",p},t=function(a){return a=a.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,u),a=a.replace(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,u),a},u=function(a,d,e,f,g,h,i,j){var k=d,l=e,m=f.toLowerCase(),n=g,o=j;o||(o="");if(n==""){m==""&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m;if(b[m]==undefined)return k;n=b[m],c[m]!=undefined&&(o=c[m])}l=l.replace(/"/g,"""),n=N(n,"*_");var p=''+l+''+p(c)+"")}),a=a.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(a,c){return A('

    '+p(c)+"

    ")}),a=a.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(a,c,d){var e=c.length;return A("'+p(d)+"")}),a},w,x=function(a){a+="~0";var b=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;return e?a=a.replace(b,function(a,b,c){var d=b,e=c.search(/[*+-]/g)>-1?"ul":"ol";d=d.replace(/\n{2,}/g,"\n\n\n");var f=w(d);return f=f.replace(/\s+$/,""),f="<"+e+">"+f+"\n",f}):(b=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g,a=a.replace(b,function(a,b,c,d){var e=b,f=c,g=d.search(/[*+-]/g)>-1?"ul":"ol",f=f.replace(/\n{2,}/g,"\n\n\n"),h=w(f);return h=e+"<"+g+">\n"+h+"\n",h})),a=a.replace(/~0/,""),a};w=function(a){return e++,a=a.replace(/\n{2,}$/,"\n"),a+="~0",a=a.replace(/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,function(a,b,c,d,e){var f=e,g=b,h=c;return g||f.search(/\n{2,}/)>-1?f=o(L(f)):(f=x(L(f)),f=f.replace(/\n$/,""),f=p(f)),"
  • "+f+"
  • \n"}),a=a.replace(/~0/g,""),e--,a};var y=function(a){return a+="~0",a=a.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(a,b,c){var d=b,e=c;return d=C(L(d)),d=M(d),d=d.replace(/^\n+/g,""),d=d.replace(/\n+$/g,""),d="
    "+d+"\n
    ",A(d)+e}),a=a.replace(/~0/,""),a},z=function(a){return a+="~0",a=a.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,function(a,b,c){var d=b,e=c;return e=C(e),e=M(e),e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,""),e="
    "+e+"\n
    ",A(e)}),a=a.replace(/~0/,""),a},A=function(a){return a=a.replace(/(^\n+|\n+$)/g,""),"\n\n~K"+(d.push(a)-1)+"K\n\n"},B=function(a){return a=a.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(a,b,c,d,e){var f=d;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=C(f),b+""+f+""}),a},C=function(a){return a=a.replace(/&/g,"&"),a=a.replace(//g,">"),a=N(a,"*_{}[]\\",!1),a},D=function(a){return a=a.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"$2"),a=a.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"$2"),a},E=function(a){return a=a.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(a,b){var c=b;return c=c.replace(/^[ \t]*>[ \t]?/gm,"~0"),c=c.replace(/~0/g,""),c=c.replace(/^[ \t]+$/gm,""),c=o(c),c=c.replace(/(^|\n)/g,"$1 "),c=c.replace(/(\s*
    [^\r]+?<\/pre>)/gm,function(a,b){var c=b;return c=c.replace(/^  /mg,"~0"),c=c.replace(/~0/g,""),c}),A("
    \n"+c+"\n
    ")}),a},F=function(a){a=a.replace(/^\n+/g,""),a=a.replace(/\n+$/g,"");var b=a.split(/\n{2,}/g),c=[],e=b.length;for(var f=0;f=0?c.push(g):g.search(/\S/)>=0&&(g=p(g),g=g.replace(/^([ \t]*)/g,"

    "),g+="

    ",c.push(g))}e=c.length;for(var f=0;f=0){var h=d[RegExp.$1];h=h.replace(/\$/g,"$$$$"),c[f]=c[f].replace(/~K\d+K/,h)}return c.join("\n\n")},G=function(a){return a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),a=a.replace(/<(?![a-z\/?\$!])/gi,"<"),a},H=function(a){return a=a.replace(/\\(\\)/g,O),a=a.replace(/\\([`*_{}\[\]()>#+-.!])/g,O),a},I=function(a){return a=a.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'
    $1'),a=a.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(a,b){return J(K(b))}),a},J=function(a){var b=[function(a){return"&#"+a.charCodeAt(0)+";"},function(a){return"&#x"+a.charCodeAt(0).toString(16)+";"},function(a){return a}];return a="mailto:"+a,a=a.replace(/./g,function(a){if(a=="@")a=b[Math.floor(Math.random()*2)](a);else if(a!=":"){var c=Math.random();a=c>.9?b[2](a):c>.45?b[1](a):b[0](a)}return a}),a=''+a+"",a=a.replace(/">.+:/g,'">'),a},K=function(a){return a=a.replace(/~E(\d+)E/g,function(a,b){var c=parseInt(b);return String.fromCharCode(c)}),a},L=function(a){return a=a.replace(/^(\t|[ ]{1,4})/gm,"~0"),a=a.replace(/~0/g,""),a},M=function(a){return a=a.replace(/\t(?=\t)/g," "),a=a.replace(/\t/g,"~A~B"),a=a.replace(/~B(.+?)~A/g,function(a,b,c){var d=b,e=4-d.length%4;for(var f=0;fc;c++)b(a[c],c,a)}},stdExtName=function(a){return a.replace(/[_-]||\s/g,"").toLowerCase()};Showdown.converter=function(a){var b,c,d,e=0,f=[],g=[];if("undefined"!=typeof module&&"undefined"!=typeof exports&&"undefined"!=typeof require){var h=require("fs");if(h){var i=h.readdirSync((__dirname||".")+"/extensions").filter(function(a){return~a.indexOf(".js")}).map(function(a){return a.replace(/\.js$/,"")});Showdown.forEach(i,function(a){var b=stdExtName(a);Showdown.extensions[b]=require("./extensions/"+a)})}}if(this.makeHtml=function(a){return b={},c={},d=[],a=a.replace(/~/g,"~T"),a=a.replace(/\$/g,"~D"),a=a.replace(/\r\n/g,"\n"),a=a.replace(/\r/g,"\n"),a="\n\n"+a+"\n\n",a=M(a),a=a.replace(/^[ \t]+$/gm,""),Showdown.forEach(f,function(b){a=l(b,a)}),a=z(a),a=n(a),a=m(a),a=p(a),a=K(a),a=a.replace(/~D/g,"$$"),a=a.replace(/~T/g,"~"),Showdown.forEach(g,function(b){a=l(b,a)}),a},a&&a.extensions){var j=this;Showdown.forEach(a.extensions,function(a){var b=a;if("string"==typeof a&&(a=Showdown.extensions[stdExtName(a)]),"function"!=typeof a)throw"Extension '"+b+"' could not be loaded. It was either not found or is not a valid extension.";Showdown.forEach(a(j),function(a){a.type?"language"===a.type||"lang"===a.type?f.push(a):("output"===a.type||"html"===a.type)&&g.push(a):g.push(a)})})}var k,l=function(a,b){if(a.regex){var c=new RegExp(a.regex,"g");return b.replace(c,a.replace)}return a.filter?a.filter(b):void 0},m=function(a){return a+="~0",a=a.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm,function(a,d,e,f,g){return d=d.toLowerCase(),b[d]=G(e),f?f+g:(g&&(c[d]=g.replace(/"/g,""")),"")}),a=a.replace(/~0/,"")},n=function(a){a=a.replace(/\n/g,"\n\n");return a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,o),a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside)\b[^\r]*?<\/\2>[ \t]*(?=\n+)\n)/gm,o),a=a.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,o),a=a.replace(/(\n\n[ ]{0,3}[ \t]*(?=\n{2,}))/g,o),a=a.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,o),a=a.replace(/\n\n/g,"\n")},o=function(a,b){var c=b;return c=c.replace(/\n\n/g,"\n"),c=c.replace(/^\n/,""),c=c.replace(/\n+$/g,""),c="\n\n~K"+(d.push(c)-1)+"K\n\n"},p=function(a){a=w(a);var b=A("
    ");return a=a.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,b),a=x(a),a=y(a),a=E(a),a=n(a),a=F(a)},q=function(a){return a=B(a),a=r(a),a=H(a),a=u(a),a=s(a),a=I(a),a=G(a),a=D(a),a=a.replace(/ +\n/g,"
    \n")},r=function(a){var b=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|)/gi;return a=a.replace(b,function(a){var b=a.replace(/(.)<\/?code>(?=.)/g,"$1`");return b=N(b,"\\`*_")})},s=function(a){return a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,t),a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,t),a=a.replace(/(\[([^\[\]]+)\])()()()()()/g,t)},t=function(a,d,e,f,g,h,i,j){void 0===j&&(j="");var k=d,l=e,m=f.toLowerCase(),n=g,o=j;if(""===n)if(""===m&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m,void 0!==b[m])n=b[m],void 0!==c[m]&&(o=c[m]);else{if(!(k.search(/\(\s*\)$/m)>-1))return k;n=""}n=N(n,"*_");var p='"},u=function(a){return a=a.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,v),a=a.replace(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,v)},v=function(a,d,e,f,g,h,i,j){var k=d,l=e,m=f.toLowerCase(),n=g,o=j;if(o||(o=""),""===n){if(""===m&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m,void 0===b[m])return k;n=b[m],void 0!==c[m]&&(o=c[m])}l=l.replace(/"/g,"""),n=N(n,"*_");var p=''+l+''+q(c)+"")}),a=a.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(a,c){return A('

    '+q(c)+"

    ")}),a=a.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(a,c,d){var e=c.length;return A("'+q(d)+"")})},x=function(a){a+="~0";var b=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;return e?a=a.replace(b,function(a,b,c){var d=b,e=c.search(/[*+-]/g)>-1?"ul":"ol";d=d.replace(/\n{2,}/g,"\n\n\n");var f=k(d);return f=f.replace(/\s+$/,""),f="<"+e+">"+f+"\n"}):(b=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g,a=a.replace(b,function(a,b,c,d){var e=b,f=c,g=d.search(/[*+-]/g)>-1?"ul":"ol";f=f.replace(/\n{2,}/g,"\n\n\n");var h=k(f);return h=e+"<"+g+">\n"+h+"\n"})),a=a.replace(/~0/,"")};k=function(a){return e++,a=a.replace(/\n{2,}$/,"\n"),a+="~0",a=a.replace(/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,function(a,b,c,d,e){var f=e,g=b;return g||f.search(/\n{2,}/)>-1?f=p(L(f)):(f=x(L(f)),f=f.replace(/\n$/,""),f=q(f)),"
  • "+f+"
  • \n"}),a=a.replace(/~0/g,""),e--,a};var y=function(a){return a+="~0",a=a.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(a,b,c){var d=b,e=c;return d=C(L(d)),d=M(d),d=d.replace(/^\n+/g,""),d=d.replace(/\n+$/g,""),d="
    "+d+"\n
    ",A(d)+e}),a=a.replace(/~0/,"")},z=function(a){return a+="~0",a=a.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,function(a,b,c){var d=b,e=c;return e=C(e),e=M(e),e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,""),e="
    "+e+"\n
    ",A(e)}),a=a.replace(/~0/,"")},A=function(a){return a=a.replace(/(^\n+|\n+$)/g,""),"\n\n~K"+(d.push(a)-1)+"K\n\n"},B=function(a){return a=a.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(a,b,c,d,e){var f=d;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=C(f),b+""+f+""})},C=function(a){return a=a.replace(/&/g,"&"),a=a.replace(//g,">"),a=N(a,"*_{}[]\\",!1)},D=function(a){return a=a.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"$2"),a=a.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"$2")},E=function(a){return a=a.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(a,b){var c=b;return c=c.replace(/^[ \t]*>[ \t]?/gm,"~0"),c=c.replace(/~0/g,""),c=c.replace(/^[ \t]+$/gm,""),c=p(c),c=c.replace(/(^|\n)/g,"$1 "),c=c.replace(/(\s*
    [^\r]+?<\/pre>)/gm,function(a,b){var c=b;return c=c.replace(/^  /gm,"~0"),c=c.replace(/~0/g,"")}),A("
    \n"+c+"\n
    ")})},F=function(a){a=a.replace(/^\n+/g,""),a=a.replace(/\n+$/g,"");for(var b=a.split(/\n{2,}/g),c=[],e=b.length,f=0;e>f;f++){var g=b[f];g.search(/~K(\d+)K/g)>=0?c.push(g):g.search(/\S/)>=0&&(g=q(g),g=g.replace(/^([ \t]*)/g,"

    "),g+="

    ",c.push(g))}for(e=c.length,f=0;e>f;f++)for(;c[f].search(/~K(\d+)K/)>=0;){var h=d[RegExp.$1];h=h.replace(/\$/g,"$$$$"),c[f]=c[f].replace(/~K\d+K/,h)}return c.join("\n\n")},G=function(a){return a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),a=a.replace(/<(?![a-z\/?\$!])/gi,"<")},H=function(a){return a=a.replace(/\\(\\)/g,O),a=a.replace(/\\([`*_{}\[\]()>#+-.!])/g,O)},I=function(a){return a=a.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'
    $1'),a=a.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(a,b){return J(K(b))})},J=function(a){var b=[function(a){return"&#"+a.charCodeAt(0)+";"},function(a){return"&#x"+a.charCodeAt(0).toString(16)+";"},function(a){return a}];return a="mailto:"+a,a=a.replace(/./g,function(a){if("@"==a)a=b[Math.floor(2*Math.random())](a);else if(":"!=a){var c=Math.random();a=c>.9?b[2](a):c>.45?b[1](a):b[0](a)}return a}),a=''+a+"",a=a.replace(/">.+:/g,'">')},K=function(a){return a=a.replace(/~E(\d+)E/g,function(a,b){var c=parseInt(b);return String.fromCharCode(c)})},L=function(a){return a=a.replace(/^(\t|[ ]{1,4})/gm,"~0"),a=a.replace(/~0/g,"")},M=function(a){return a=a.replace(/\t(?=\t)/g," "),a=a.replace(/\t/g,"~A~B"),a=a.replace(/~B(.+?)~A/g,function(a,b,c){for(var d=b,e=4-d.length%4,f=0;e>f;f++)d+=" ";return d}),a=a.replace(/~A/g," "),a=a.replace(/~B/g,"")},N=function(a,b,c){var d="(["+b.replace(/([\[\]\\])/g,"\\$1")+"])";c&&(d="\\\\"+d);var e=new RegExp(d,"g");return a=a.replace(e,O)},O=function(a,b){var c=b.charCodeAt(0);return"~E"+c+"E"}},"undefined"!=typeof module&&(module.exports=Showdown),"function"==typeof define&&define.amd&&define("showdown",function(){return Showdown}),"undefined"!=typeof angular&&"undefined"!=typeof Showdown&&!function(a,b){function c(){function a(){var a=new b.converter(c);this.makeHtml=function(b){return a.makeHtml(b)},this.stripHtml=function(a){return String(a).replace(/<[^>]+>/gm,"")}}var c={extensions:[],stripHtml:!0};this.setOption=function(a,b){return c.key=b,this},this.getOption=function(a){return c.hasOwnProperty(a)?c.key:null},this.loadExtension=function(a){return c.extensions.push(a),this},this.$get=function(){return new a}}function d(a,b){var c=function(c,d){c.$watch("model",function(c){var e;e="string"==typeof c?b(a.makeHtml(c)):typeof c,d.html(e)})};return{restrict:"A",link:c,scope:{model:"=sdModelToHtml"}}}function e(){return function(a){return String(a).replace(/<[^>]+>/gm,"")}}a.provider("$Showdown",c).directive("sdModelToHtml",["$Showdown","$sanitize",d]).filter("sdStripHtml",e)}(angular.module("Showdown",["ngSanitize"]),Showdown); diff --git a/app/controllers/home.js b/app/controllers/home.js index dc9c55b..2e3c45d 100644 --- a/app/controllers/home.js +++ b/app/controllers/home.js @@ -64,7 +64,7 @@ advancedOps: false, dataDump: false, aaBetaVer: false, - aaWifi: true, + aaWifi: false, aaHUD: false, autosort: true, barautosort: true, @@ -176,7 +176,7 @@ $scope.user.vpOps = { shuffle: true, repeat: 2, - fullscreen: 1, + fullscreen: 2, v4lsink: true } $scope.vpOpsRepeat = { @@ -193,14 +193,14 @@ On: true, Off: false } - $scope.user.rmvallbg = function () { + /* $scope.user.rmvallbg = function () { $scope.user.uistyle.nobtnbg = true $scope.user.uistyle.nonpbg = true $scope.user.uistyle.nolistbg = true $scope.user.uistyle.nocallbg = true $scope.user.uistyle.notextbg = true $scope.$apply() - } + } */ if ($scope.loc.toLowerCase().includes('en-us')) { // console.log('ENGLISH') $scope.user.speedoOps.lang.id = 0 @@ -571,6 +571,12 @@ $scope.user.copydir = loc snackbar(`Save _copy_to_usb folder to ${persistantData.get('copyFolderLocation')}`, 3) }) + $scope.autorestore = function (win) { + $scope.user.restore.full = win === 'restore' + $scope.user.autorun.serial = win === 'serial' + $scope.user.autorun.installer = (win === 'autorun' || win === 'serial') + } + $scope.instAll = function () { $scope.user.mainOps = [0, 2, 3, 4, 5, 7, 8, 9] $scope.user.options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 22, 26] @@ -705,7 +711,7 @@ var armsg = '
    CMU-Autorun Scripts
    Installer/Uninstaller For Autorun Scripts.
    ' armsg += '
    ' armsg += '' - bootbox.prompt({ + var autoPrompt = bootbox.prompt({ title: armsg, className: 'confirmAutorunCompile', inputType: 'checkbox', @@ -733,26 +739,16 @@ ], callback: function (results) { if (results === null) { return } - if (results.includes('autow')) { - $scope.user.autorun.autoWIFI = true - } - if (results.includes('autoa')) { - $scope.user.autorun.autoADB = true - } - if (results.includes('id7')) { - $scope.user.autorun.id7recovery = true - } - if (results.includes('dryrun')) { - $scope.user.autorun.dryrun = true - } - if (results.includes('serial')) { - $scope.user.autorun.serial = true - $scope.user.autorun.id7recovery = true - } + $scope.user.autorun.autoWIFI = results.includes('autow') + $scope.user.autorun.autoADB = results.includes('autoa') + $scope.user.autorun.dryrun = results.includes('dryrun') + $scope.user.autorun.serial = results.includes('serial') + $scope.user.autorun.id7recovery = (results.includes('id7') || results.includes('serial')) $('#confirmAutorunCompile').hide() $scope.compileTweaks() } }) + autoPrompt.on('shown.bs.modal', function () { $('.bootbox-input[value=serial]').prop('checked', $scope.user.autorun.serial) }) } $scope.startCompile = function () { bootbox.hideAll() @@ -842,7 +838,14 @@ setTimeout(function () { introJs().hideHints() }, 4000) - $scope.compileTweaks() + rimraf(`${tmpdir}`, (err) => { + if (err) { + let m = `Error occured while deleting old '_copy_to_usb' folder: ${err}\n Try closing all other running programs and folders before compiling.` + aioLog(m, m) + return + } + $scope.compileTweaks() + }) } } }) @@ -957,14 +960,14 @@ } $scope.visibleApps = { simpledashboard: true, - clock: true, - multidash: true, vdd: true, + clock: true, tetris: true, snake: true, + breakout: true, simplespeedo: true, - breakout: casdkApps.get('breakout', false), - gpsspeed: casdkApps.get('gpsspeed', false), + gpsspeed: true, + multidash: true, background: casdkApps.get('background', false), terminal: casdkApps.get('terminal', false), devtools: casdkApps.get('devtools', false), @@ -1031,9 +1034,7 @@ break case 'reset': casdkApps.set('terminal', false) - casdkApps.set('gpsspeed', false) casdkApps.set('aio', false) - casdkApps.set('breakout', false) casdkApps.set('background', false) casdkApps.set('multicontroller', false) casdkApps.set('devtools', false) diff --git a/app/files/img/11-11.jpg b/app/files/img/11-11.jpg new file mode 100644 index 0000000000000000000000000000000000000000..525302cf7ac42e17af8eeffe960043ff28825f0e GIT binary patch literal 14072 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 EKMc@qz5oCK literal 0 HcmV?d00001 diff --git a/app/files/img/11-11_fixed.jpg b/app/files/img/11-11_fixed.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc36757ab5d1b7a5b5bfe33d6c902907bbff3dbc GIT binary patch literal 14370 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
  • h*HW;w=(SFF#O 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 literal 0 HcmV?d00001 diff --git a/app/files/img/cmu-rx-tx.jpg b/app/files/img/cmu-rx-tx.jpg new file mode 100644 index 0000000000000000000000000000000000000000..78ae3793a487e42558a4bff0f19f84a3009fa9b7 GIT binary patch literal 88663 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

    suC$_GBhd%@BiAFCsxn5yO3SEjSS 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%0D49_X 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�{Hx}OJt88kMV0O*#BNx*fo{F~L^5 ziZz`-dqMy6kN#La-BGDk)voOa6fV{DmRl#)KUULU{O>P0)81xVGjp>Rxh@=bgO!do zM{$yKNEQlfab;2e_|-G2H(N?ZiCBhn$%vVB63J|C@syI;mR>x3Mi$+NR!ob(KnXYRNUQaI~#c&xRjM|%ZMavHqeFV_TwW*VH}s7MpV8K1r_C1_kytXRx<$Ku)AhINd*3{)6USfG zda0(C8XBIwMx{FT(h0>wZB2}g>g?(XJCP`?ZJ2MWN`77O>b$mOc4}>IM$u+n3$rT< zr+TGWQv3E_s^PvK9e(*`bDSCN*{8wz>zEx{W^J=Y6Xl-d( zMCDmnu4_C#riGQfrWZ@Pyp+(c%&=YyomZhoP=Tmkd+w;t96zSzVn?yeh+5Tz+Lb*1 z<)0@mF6}r(D;8T|-)rHuUw! zo>sUXQnnM9m zS2Q~_qhxH5Tvujb|!%?V(**-_tEzplP|i{5?P9^H7y%}Pci zLM@apHC4pt$y&*-z7~rs8sC;xHMFL$-u=%y^U|zhp{TZw?a<%-_1E<5>2cKxMa{pM zRHT#9m%s5PP5kmt>Y}X&v}e~|z4Gd;wv12ciXD5ja_p3T@Qv?j<=m{gyV6=G!cVAe zi#8J($}SQM8qr;l8hUdX6{`g))}{Q~y4sbpLhE@=j*co4ni8ihjV2L^!e((ugdzMq zk%+{>f^G{qK2Vx1bNqk%+i%m4|HMzLx!hKFGNGj?r(r3r78?px@>&Yl_4v2$)A188 z>AgSu)9Oi&YIvigR8LIxwX!17gj%%~HPUVU!@quCCmw&uIpF3&tXxq4@D?@JS54Wq?<#!S9n>HF*6-*) z|Jvt-S@y?2`f>H_pU@Y-a=)Iw=YEau?$fSI2K1iyyi=V}ue#E^G_~}7&CH(EfBV9p zYtLQ7I`rl{b=gIS6bl#C?9{Zjwrqa2?!WIr6AI-Wn=3$7EX9VsG%=O(3ZuW#m@_+Jm(vWz>Jk)q3~SvKWFJlds|C7dz4%@9F5aJb!-jcD}BZ8~zIr61gPL{n2sT3jrsYq_MG zKJ#Jixn#H6(WnOdhBY^P!P?LGV8Qo1ZtJfpTb%Gj`~7B#HbMhv0S)-=gd=zQN_)u* zJWpdR>cU|s6jPQ2eaL45c(5_!Iq!kVKm7z8;PV~75GI%e$`+3kiUHq8eA+k-1U}{i zQ@G(FIB-@D?ra21DH14?0x`#xWiuNJ!es|agxBjb?44i?E}kCL%fH8;cJbS{h2P|- zZW7O-H+gvH6Fdk0yeB{JJw5pj9q?-hKO@xAKC6Q(9l@rGh;8IWi0AZ?_nyxFySGkq z^*g8f)aUcj4mSTplB108OEybB@tpS928dJc0AHSyd^_krpIm+JiUN`$dFdZEI=*f` z$@hAloA?8TDdpHmP}VGe%reLcso=o#&HVs8@O-0gw`up|o%htmdmIyCU4^p3ou~$z zKrDEjy3gRdyslNi@%8eA`g!kh;2Cw$kL2Y$?;O2dKK~5*@|>NIS60FuD45vz@Q(!| z{fZ)vPwJw5lmkAAXW#+cc+@F`H$MXxlJ6rvDerJ{yb6xMBd>$yc$Mc4mg^_V_`1mN zHxRD9ZtgU`39Kq8ixL6cuw-CeqrAs~=lu4G{QQ%64qP^`T~pSiIF&ykOR zHc^Zh@_HBs&nvkC__TwzK})lMv&gGXNkBR9BN8(Lh3`M|f-hzHPQAb;FVCr;J~IUY zKxiBDT+lwxzw|Y2!=D)&TKX0d064&;J`az&3>PeK>;{NaIP#2t67|v-z~rB@es1w? z;dAqQ57z($SCEZ{O2+9B({CH2I9u5l2!Bt1zn@<`xg~28gJfRaxE??g9 zj#Gs7_x3tJNr6Jj=eKz;7|+y2{j`C;^<#nWJZDV@Hgg^Q2@IZtC*PqfdHr+GGr;wH z0PnC7g)4*|)Ja+L`+rwHP~LA+PVyc)pqK+66xn?G z@eM5U*k&Dm4|p4#*~8Hu=56vY<|ym?n05fi_apS@J23g~emg}J_@Z&gdWiD8Gdh`- ziQ_NILMQwgQ6I2((cemwKveSUD^8NbPIZ8C@PE?O<`35W(? zvy7uWCqIW297v%U1%KLyQirw9X&{{fo@s#hw1a&M_>z1ZXe0l2g)WmZ+IV`9kNWNK zFOVTv7s=0o5Wb#>7K>pH2Yy_$>oV6wPKLw>o7LvsL-OvW*D)ScOns?CF z*H3-m?bdL&7PY*+Bs0w)Zz)%t6^dq;aPAJ@pDIAR{m5eAE>Cu~Rxmh2&^A7b4F@vW@Ac1T@3Fg?<&Bbha#_t?IHmaZNz?2dJ+Y#Tw{F$)?25)GQ!19$)syK`I!#CS zsD=+A8yq+)3z)^?@v-S{s!<}O=b)Z^?5vuNx-luIBsf;>PIhZGzpk$Cj9xvqp`AOo z>*(W0b?oKS*yX7^)}=%`scc_X`LzvI>t)T)EtxWglLw35fMa?DfL6mc^Dq~8lZmji zQ9=V9Q6kl&S|_5lYDtA?MJE^MEQ;dB`hrU9D=I~$`T1F;B1iS6_{GXKv%2xJoAgBO z6-A>RrL!@0Wm<|R>e|pbb){NrMwn%mPGs+HzwRd7t!-@0Sv3F8?FWRA=R8HAgOqXAlR0#*j2$|I>-SYNZb@x4wYrUG( z%Ib=S`g*l*BCS{E&S4UJ*kaqOwC%su2Ia+FKD1Qr{Re{{p4rgtG?)ikSzrR62{jST9o zH(#T8xvHHzc51nSfZkM?D}n=QHQF^zPhT+S+bJq zAUCMbed132>Hq$sc3zxTD3#E+|Lrm5SDI?n+sap#6pKgfM1x5Q3m_&LHi0O)%x3~Z zYJ})iH6_AzjZUQ1Y*!WQgjLF~A{N?dTsoCd313|-Xcj5aojfv`k(jJFeMk~`q9ZLX zFRIxWQm!wp(PUD&XidpTTqyT5i7}n;MD*(81FAh=QMNaw%P!fii(2>&!g2x!s+u$ zD3cx4L~llSUVn$i`Vt!H%Bg!Ou3N9aP7{M&`nCV`lTx{;7*}@MHN}%HEo_vPuSL}r zO(~y@YuCjG^!^WhST|mIP)TI^P)M(xURDf$y_JH7(j)r#M?R_6MpJXIp3?X4c~q6z zx+=B2*5`^EPan~xxAm*FQB{HsRxG9qb5)f}8_Et%>!N=Am8_}1yGN_h4Xv*%X>?>* zwz!b zr`FoM-v7R9b>&B{kn%MhedVxTeBrQLgv=TMVc1z1v8iIwWW8d+#)5;yLdHJ}6AKQ> z_d5$2ixvM~AR-_0CGSiq3^om%B=S#Q;J{0MA*2KS$r1A|0ssfz8}*I~<%s%IeVUn_ z*F-X>aIvDnUA?Mq#57;7Yp|fqfsr8{ARR_luo?B2i;{_ouSj4>`3T}QQ1|8r(+Q4&93qJjKc+$!Q zi#6YAKlJ32e26(-nDFp`4XJ$|@{@cy|DFD#uYkiRr-kI99)x-XdXEoz=^Iz4RcpST z5OArCGW3gGX#-D`T0x&9sG$@^Amyr(Iiw9>o1kTmTM=(u#2>p#V03WT11OKsWv7;2 zffn!*ZGpZ%(NFkEF}%&=gcE4Ja1KqN6A7Hb5dq(XPK3;014FauDg+gCC6Mos| z&iARcIZzP5uU?R(Yj_7;NzfIXsFP3XCD~Z9_Tk^d^{vAxV&jDO{Pull{S@?(o4?%n z;k$$F`klIcot|g>Z|VgHetUd)Mn1br32lO_Pp+)%ccW=AW<3nUKcFXdl7LG&Pjid9 zWv`r%AI7TB!>9lLf1?+31+b`__x=;SDMw;1XTt*Rp#$`y|H#94Pe01@4EOX9whji$CF=Khp_n9rqfgY$Z}^3FFjhUU@f#eOD}iA= zXJeg>!W+CpoA?JTGA8A0Oa%RBGz{v5Ui=20+xa;jqkj6zak5% z#QbRDet>-7<;NSapoJy)D7f-US!j*LuhBYC9Dozo$XKV~ZO^a303Y51pXc6!0;>Xh z7HqD`NBj7s4qrcWlAE<0I?xb!_!eDTTeHm>^rS5C_$NUVpO&k0|-9WWrM$O#A~D+_Lo41< zA9#@;SR_v`QAwIvt} ze782&T*TN~o$H4v+nm2O+6c~+_w6D-I8fFn@)5iu)*?D=#H@sRda{NKKGHy)12nEG z<7$G#Ov+TMWuuYJhwP~$4kk3E4dkJ263=`;dift5SUbo=esHA>bTOGD2yTT_exrS* zYF1aYfqrOLTmXi8wXSS;x8a7x7yX7G)Mni&`^ZoGsn75UEUkSXfFE^2Z}8;1?*n^h zhnisvE&v`Vq`2ludw>^_v*@J`@a7X`Dwd_>fj@oT`X-B2^0C&CSijsnP&3(%U>`OI z+YJDxG{p)HtEqG%X%WoF#>O-?GyOW983T~p42();x2^_r9EvB}M1(H-pSF{%pDdbj zTkY2mX&DDj7Dma5QVm~a*tBubh`(X#C|4Y<9Spa307u{Fv>AHQeh%88Tdm>NQ{;t8 z5V(-?(Sujtq(irF(M>n((4otAsa|WT&?J&zTHVdIrk;CL-KlO(O`laH95|MnHc)^>L#h|uiDhqJ%1kYrrMAk6mdZrGt2Pwt%4lJ6LELvP zon}zDaLPC?|M*XRM*FvqtE+iR(e9>x=CdEwpM2qOY~qf@xd-q35U^1o;-Wb&Gls?) z9a>0tU$j=Pnc3s?g(>y-4XaYBs4KppNIa%mv#eOOqqC>ZDw9kr(hOO&huNtM8s9Rm zGba``$o0YH6*r01xUPs}(Xyg3cVD^5RhUTB-g6DGP~1@8(4Z6#Ypqexd*AmlHESVF zWF~dXp@iDWAwBWnBYO0{vzlL7*7(qXUOxSj9(jIJKRS4kZn$c{4&Ah0Wlkj$QlYt` z_2RTj+R%fKJ*aJaM|8)v8C7?0(M#EuRtr%zLs5kqWfco?RcgJOo2sZ#Sk;azuh7`R zD>ZysTFEx1&mCnacIxUo-lak!Bu(U0Ja$I;**OjG8db59(t+&*y5Yuabo|VD?YeYG zmtB34lEcG#=8-3~y4KLHix29?cfL#WQ)Pvlc~v7Zb@dMFnrm)UJ{i$7r(RWQv7#rA zKBrH#KB!9%UaebiE$H;Qbwzq|8r~YxHT$DV#82s!`De6Jm{$MtloFM7RYE0&2I9(} zS=CTiQ8VT{DW~pCza}TfwQq7nk#sY!;vxOWq1&|o@&kJO zi6dG#KBGhXuFS)`_C-~QbXl!+%bvU|He@#)WLI5Vi{4jkYm1!a2SDeM7o#-z}PZIj^;KDc67KmTiG2FEpZZb45y_MATP!MEvM@3=vk{*JnPbNbu!5MGPO%_XO$mxaU3@R%q>z)1hH8p;#g$Hl)i;pU z-29rEo95CPa{|cZ!^V+`hKavaD4HeP>f(aZnXHZ-KB3?L+;6EqFUOS_7BB8JT_dnFbTeqore%3`=Sy|J>#8zFna9;ge$Mw{cPitvmN~pos zSFvswH#AstXu7NShYe+ zCr_QxMa?VqcmMKbg=W^2ZpIZ3HPt^H(c;Ry7B;e4TzE~F9lS!H{KcQr%tBG$y6;p*T;jg5kx&@G%_)S=5JHCI2SV`mR5+vwNK+yz~l>SQ>a=|yU|wIu4}}#yt=N9W?P9+x6T|ns>4q{qgFVo z#q(1toWG#{p|+aElDZQaZ66!gdU8XL-v3=yHr5qxR`tZgFY2wA9@1zAXZ3Ye>rL}t zgW_I9Ev%Mou|g0*k>Nj?Pgtz2uLEJ3#RmZZLBb~%TJj()lKAfby|n^Y;QYeHr~l_v zmW?QaRlUxY4o)wt%A`_eSyZZ(6;8BNZxpp&TGwED#C);MEiY)Tl~gg@r^eEPS(J2j zXH~VJ0bXEenF)ALCTC{yneLbx;ig(~`gYkC&rCX{lS|X8q*|(U_e;Hdl*pHal_mU5 z@`4kBjPra1)LLin~oX+EujOX+brf_O|2zXGd2u+)28g*3+(?{u`ZDC@x&H(P z??`+?Kj8RwS$!tRMr=GFWRiGKS^v5DnTHJ>%wi;np2%~`0H5!C`ZloPaMogueh%&% zc$q?iU57>KeM1?>Z|bo+jThYJ$ZrJL)WSa;h4{8I#!RRVEJA<*E+p{qwBpk?N`b%L37GsQQ9u3WY36a^6CC;Hs*ummCKre3;DkbuPxA85claE-@kyc&QPg;=6F*;D zee`vpNC7_AVNq0)hu;KaLKZ=}#X5&$eXfc5>+sZrv+K<`P|lAP)FuY zMMo=?yzVAZ3O|{f_ygQY^o93pM}$}uwZLPKEUpj-^EdeTGG_JE)2&vZgr-j4Ka6`| z5D9U!Pf|}$>l1&aHmIL>w2gI{@4$oJTqiXL`az%LXNfk3*~6NjrKSp{qVaJN7ZJhU z8W^lwrpyc!C(wiE)L*MRWwY-qp79-8kO##ybOsOl$`mm8ufwsrxF#C61A#`PX4e+M zov}oMZuAR@aStsk&6Y)5MA-_RfK8ozM`mRr~-rZEMt!~(?~^znJ2 z3Gn#Mzrki6+!Pt~b-D)dILrYamR^iKKc`b3HyFTxW^OKWeB~8@Hb0|ulB|D>*Etla zR<*de`1;%j9eiKlkIMot1d4sy$hroltgnK8htI%)vb2%w(4q|1%nZ zL#<{CYQ{72WRvlU|1ZXWpyUG{aC3cqT3J~!85#VIcVh{&IzvALE{@lmik>-fSX;MM zwXkJKrFABduz7)5U2Lm28q-3)qSbs|*<7z?PM%U(KF-scg?bFIqNyU0q^@XBRsif+mj`F3V*48()Q7CF7pEv(8 zFba2}*%na(S#2Gg(Pw_pDDrMt}Ajf1Fyn!+Q_w+UpML>Ps(D z2u0?^xVGPTNIhdo_4Xxo{ndMQ>E(O%_+1ZbW@=II{Ls6#Wk;_X)uulD@ptK}i}&lH zC!W?_wMTTvt(WO%fAOaj>B^{6ZEIzEU5j(CsjxV&?>_V$on2hf1K)m8m+acELpNQe zYj3>PCWPY3hEAS4qv5@2z3}t{suoY{Qe%x1fG)*CJM`En^wgsskFk;vyY=^hqtvEGU0rT?a)s6tL5bxJ^kWiW|34WxYH>nbWCqYUZmUV$KZl!8JZMs-A34nSn87dU`ZIGN3|dLydG=qr3L&(v^-*%`U3Qg46ER z`tph`5KMYFzitF((?s^cgp`SYV|7_Oa+6w}nN_u3QE#?KgjDVy$Z2kFM&U?Ot0&GV z9dVY1jY>_`IWiK^fJx*k&VyfSWLfv?vf(SJwjpgNP~} z5sth&mC?dNQRUULPM@1stXkJbv0~AXW~WwEs!OLA3rc2(v^aNO&!0N3LyOCrNN4rj z$s;;{4YY zqeukbWpy>HMU765YS+%as?Idk-;-1*6;U*uRTy)2tSSflRi8PlbazITYEcVotLhma zRC^w)s-#AS235!;?EZPZ-c%;judcx@3Qx~#c5z*abiz*lGTkYq(jg7@VoBL0MKj8# z`&8aws~pkV`no2!0Aa&CyuSbdAOJ~3K~%vlP%J7ea&DnR z2y=_DU%+@yqK}ym{X%4me=t8Tq@KZ~+GmSeu5YLkYAM+WYdoG)Cfrb|zN#=L@ZDMSFF_PZ=55TIu}&(K3z`@o zSFN?Ebfcr*cvDyJo7C}_Q+7hUZE#endRWy2fm(W0*dRI(o-^E{3Z86Cz3Dr&w2gPL zVPT9RU_cWR?WP?hlq9zJZxV<-eR=QK6~4R3T&^6OQ(!=A%CndQmwKQnpZqpjaq5YG zuD}`qSO`I!46``_fAS*O@!jzBn-Y}90nP{u29up!V7cV`gF1OfN3q7btAXw+4t_Dg z5nRf}((4u`D5-$M=G0q(8V-TEJn-Nh6il=S{CUPdIPwhIlK2iTteb4I_|89xx)Jnf z8_$5_d71By#!e}LMMzhdvjE^Z@4=gLzyStjNv;n1(rr|&{Xu<{@#PE;3+Uiz0s2Ad(CVPa*@{5M^<+Dr?^_2&NO z9f>}sJotha;}lx*%;)Dj|2&6w;AeAHa1DxlJR=!@5=AbUqbLV`I~`|nWSN3~qaDUP(+7CuwQGZHX2T)#lhtAj<70<*FrWA}-y-e0D6Eua zlg^o-`zm?RhoIB^Ko)7@iNS(zW<0H{D$ze&nbw;TU%?IY4C z{*XEyTz^=UgMfeBH9qDpUpHm__+&2Nx$$9u8^8GnAHyM_rROoqlV}Gxq2ys4GizfF zg(3!cxIq903cE%4K4jY!6Ra4&>k;U_eju7@u&BFPTu&EdCgWZ^&@)w@ex9e7gC*<U~{Q@nh2R~|D=LRR_SNh9aW&;C0b97+8(XG|hRSgdITmSlgcL6;DKe4QrfqYAO zlglCz^=7lCJT%20dj(rdZNXN#!eOFwFJb&*NHfR#l|pfwm|)dXIZuovmDV?O>f9L>Yh^QwjYYUe zUeWydbNb6a|08vEBAQyhpmwuv1Q_V)Q>Ld&8|IID_KM+s5hD1FdK|1n@wq9 zVcL{stf4RuRxE`Q)*)&2q_ZlP@~UuGJ<2JD6Pgf`u;@y4cbOlv&grmz=fD4vT?Mod zxm_hCyE{5@^rRkp_^3AW4Gr{VEh^p8%Cbd>`HR2$A4%$&QmL)s zOrMIOnzG$JnwzkUOiZKc!QinOX)YZg^#)%5B!&uX}*UsF?ank_t_ zaI313WKQkwlwz5-=FfKYjlX|Vv!^z6a`2=cdhAi{zxX26Vi7HzJFg!;c(+RHGs?tZ zUYX^|skJ3-@7bsM>3L;hU1~<+I`Yi3dhW<8I&kG)P4rzXZX9k@3yQYGdf}Ou^uh}- zYwPv_?btn}YN@JBBBfNON9X4j^bcS98y!A&QoAnNt8d=(HI;9_Q6HGRL+K>J1M=$X zNoen-Bf96FdvwnO-&D2L)X5XabYwiC12?@*yLawUB;KvkdR0Gs>1Ew`(^g$|)0K)Q zFX$WJc}O4K-lOha5hW{J*BjQAyT?s<&KFw>=P&5dho8~H(vs? ze7cqDT3^WP*vXUHcjYeK-o8U;o_|s2Upu1T{?(t?=YRF*bnPYkb?CNni&|1HHFWm1 z6+QIq6Z+e~{-PGjbqSwtTXt%>P}8^XeM)zJ;0Dz@>-vMg{u{05@plkYB8FhzWlo~g zJzaL{#v}$WqZDGYVbaTQtZ8&&T%Y-w|Ew!-xI)=PUEQ6Knw6q%zG9nh{7_U&wTk}s z>)+Ma|LV)a33VpfWx_J2iU zQ)??6kEmEKs@1C53FUHV$)aj(oL^UOHfNS@IPh(>8{*D3{ti}FRuv61nRANZPbfJ> zM?h{WmQ3s8pZqax-!Y`E6G>&a?$nJp+^DsUvfgs_)f(9{rort)y8PT3oj7|!$Bw+H z%FL=R9~;)zH(#Ua0})l~VdaZUTB*&c{M5YS?TYG=qN1&ma!P5aC#>ra?bW`WL)x}| zSY0DwsSr{*zOL^)^l#dKSxPtD@*}$QN8he9&!4abcX%SB+uwVWMGEa6IHtrv~pvkdU^J&o|&1|W&8H%&DXzOPk#G;jqlIs{U5$jdv3T~<*8ZK+L#X`JcZ4f zXSp0;f2MOg^f?YNbr!_2Ac8VJ0r5uYB zb+8D+mwX34&we5+o0DyCFArewOM$*Xp$uqLJRb%pYC3bz`{=CX=} z+q(6pJsRD+L(}<^esKS@>gnrMq~6im@}h>f3~HcfQUlqXnpbVp-~Urdil&qp%xP_{ zrVfD+!g;k3^c&7X3K}3}vAF?naJA@zI2sLvT-wKX@TMIkPdiSbz0!*J{vEJruZO{R z6V5hSaJahMMxXq==b6zn5S}Q{JL=_=t9g9#+@1wjEqod1OI`d%aInoSf=HmKp$s^4 z+6}%QHt-Z#oADwa)?@#Ntv7*|H96`#|5bHsU+?~J93wpp~QKz8cYIq*+0Z$rR}W$KWI0A*0D>vq)6a6{7@jnBc7D9i- z1HXYoJ)_RNN4dwiz~yZ+vF#_M1r}*AUh+HIB;W=uzVf;EC16r!v^8b&orx31Cin;b zCU4XkJfpq%9v67UMcLu0$g^lSV33YjUpzCKnE?-)x(vlThl{kpC%w0w)0;dz12-#k z#o*%bXtOYoz?b}X-1u&Na%G_b7}PPgo3|dXjSD=;1Hag$Jb6pOi{NLpN!vtu4-DcC(eCIWlu0^hU<+=^ z*hMR}>t?Jc z4_DO7`aY+&rUj4HHm9AzJ7AE93tUJad7uMu;0^BlCM_R3EixH#;ZtDR^INhIeqyJF zw}lzglhKE=jlVGd0?TxllWo@21^K~6nZ(Wne~w^5&ag`b`9nK$G5&)C`FO@Bc!2Nd zw%`wbj3>l~qK;f9cPw6@$I7A}JR=`ztlY%Yz`y_uY_6!UJx?Jg$Zv};c=;B5F~{%; z8e(il$FT)z*H!R3!{A46!vKmt;Rkcj2flK9veknv->L6IAFv5r@X(@VqrXr#b)XDr zhH;c<)G_2Y@w+B-Up%007`-Wn^u!QjoP^H|&lSTy{K5r%jDQ5E=VD$*40ep77{9=k zKF;ohZo6%UE{x&UmS&UT2nUx(q-AFkkmyU92kyClStfYiVySv_-8_0Ww>EUJzh~S1 z^7*Xx_x8-KkjYP}$jTQTqor~cMSr22d)JLf6OOnq)ij+BtwPh$R6D1(lq*z>Nd|)> zbvr}#I(-#OYZ{NHDiq7=54x(>8kUD+LzkJX$}rVnU`DlPo_o$bWRBY%i}f=Zja4XO zBR&bJ$fV=oVBeS+kCaNeW=u=`A&5{Be~k6^jo=?5XqTZnM+z zjt&mBzO`k6zbmDx_IGdC33=T%hJ&&0x$ABfDkTj^6LCUBzFsjm&Ar`SojSXt$Deva zOpBj+{%LJ)Y_c&%r*1oIf&TNEif$b3YO~eUjT_h1>mTXpxUCBpuc%aNYWvhFTNy3o zvli9^V!CdeAFMp)@GN+4|&Y6+o)J9X6&u;6W-PR&s z*1=&<h%%y3aGRkYct>D<}VI(_+y<`{HFOFjAc(>m(j)R#W@ zd0!!4ThrMK_o$vN>#c8mvmUr@roHT!^ke_@UE13n+Q}x9@kq6L-HcG|lOGQJa0Lbu z1eXPzwk<&wA)gFn^p{HNa)hg2Z+ z_Vx};&@u>_uuIAitMJ4FV^w%C9;rm!h_nT$TB)fs=&0Fjs^9aIInZS-9>xIzt*=t0 zq#16wc(8DSmGA`3YB=Z{KeA#$pk20mIJmNV^An`d|L1e<)6gdfWH^H~Oa6zEN9S(5$RMXQEGh@=2XJ*VKi}8~Ux^ ze4pO)uHRF;drfcn&TrOtfBSdZcFTIXspF%r{^IxlKremc%QSD)^`$4jtPj8UPxM1? zd#i?=A~vlnpQ~s&#rv$SX*H|A*zM_0{{3(1EwB4}?QEacOa;~Q(x*T4A?;p!Mi1YA zpH7{>Q`4OE`NyBo&;QcTYg(A-@4W48dclSJ)j4ddJ3iFm@w2*g=7QFa5A+*<`dj*c zfA%-*Ife7AU@Qs0;fr#Is=rBNX@jjk&CvWgU{_4nFZXsk-Hsqg%r zx9UY#uj>3}ML+Yi?^1id)DQlTZ_}02+j{>eKCB=6C;wc%!+l$HaD^Y`&pi)NB%u#H zNgqI2rLH#FPlhE{=7KKJ1S1!8VDiTRAGEVCN%@TQK`*B@#)OzKhJxS|o`B8zY$46_wAl)Nws*hKea z6`Oj(Gblr@?s;HUo`o?DxYP;Sf+P4bNeG^S*1QK5qjx%uigZyY23X((e{x5O<8E|H z6UC@AN)t*f?}MI!2kpw`UVQVUj`>94*7iCJuoF7OJxEoRe7y}=h)k@gnc)Yib^f?rqDL7&);L0~bIihfI9MlR4l zjQ8y%Ob<9re$seapLo+hSD(A_%ljHQ@s7Sp=cH`-k%@{uPy9xGpfh)j4#qRdV9uCJ z+%Na=1YfTQ^(H+=KJL*b;0$aoo&zgr9`9&t+JyIbZy0h3SLgx0!GFL4cEF^Kp$}ff zJj2t8Jm@>*;aSv$J7sglcYcEhSHR{sGLdp(avVlX(nD`>wer$9##S_&c%|}4M;W9E zxIBaA1mj0%qL0T#nWU%8fDNt83j_Qx&?j1w7LO>C`{}ey@FXqpxr~-8@W{gl99+b^ zQ2-+#MpF8Rg@>{6gZA=8Dbf?8k-FXT)=Bam9wHn9cmNxEgEKs7JTrr5osR-P(lg0M zegfNR>EjPuo}z8dTN62v45!eBEo5<#&&o`^3M@WRN9qqO@Swu{<{kZrwzP?KGIH=P z($iLyMV-jcoG}b<f?0L0?3+fEO2d)3s@b;Md?OqhIQOwq?u=dhQ`b|6vTgxs zB4t5m#toBKD|#U9NgL8mabftt*uljq>47u!0(P{KcchO%w=s)rf+75;TYiHm=7w_Y4hzc0S*U13r@WdS!(j!q@= zKYN5xM8?yRFm#NjZYjhS5Z6(dlk!^Y4V%Q%cx=&up~Dgjkyv@5aVxc&j*br1@3d`opS|heh8F_+x$Cut!GGqN=gdovcdXFh zSp$<%m(9&h>oDu<>*^dGYJGjfj(EOt^M-kYU_FMR@v6bwt6HmSV{6k_3JN8wQ?t3Q zp zfBMr_$0D6_$Vr+r^QyxTixIfdtgBk7XnmupUi;AERS^6WTEIVaUbf)ESFP5D4Il^m zN9O8}P$VsePA(=e1VCiv=G?h6+T7UC(@%d{c&**5`(J#E~gZlSB_lqWg zQJz>$pwDrEJABLlU;|Q$Pk?~p+S=Mtvq_&~^@Ej#xj5pOZD2QU?&@IwSmTKslVV^* zaKq0Ccm$^nkaqkxW%{H6*rdZKjgY6m!ZQdzXbE1S0H6eMutZD}n2drm@R1iB%WVT0 zD^FH0R}>j^NyFh7moHw>crvosc$w1|RXu%9Pyh8_D>E2sIT+}nM_;VLe5AdnpV8ip zn;I_{YT$LbnCR@;Gpd#F>B->>WEf8~9;v3pa^YSUuKa2z{rM0>=57JP$zFy(q>QWtF+gBW?CKY961 z+mfHQg)exHd`3R;j!%?B+Z!BHO3C921Z6PhY;SDpU;f|!L>I4|*7nXNDOb{$pW4;0 z{?dE&+rRm%YWI%qq`j@pb#2${`n!McyLA8SUZb_*rhfC+|46^}v%jq8zw`x*>$s+p zZaaTo-}9E&>*X(cP>rpN%B^qd@h^Q*?d!YxPw#%W-v6Nw*y)}PR+-Y|!Fd^+)7Fs5 zG>sn%ccWja6N5Q*4;onCFr!H_;3N-&pp(%kO{$=Y(-x(T{)3`H|8WCkONVDxf*W+VM4_Zw%m<%@(H8Ik7im{7U;^LDO{e=%Pueb?b7#vF{XAd*1x1v! zz~JMP7N4M!?iR14a{0~2VhSd23Fj|hIFE!;j{Lv`FL2>Ic~|kLUdWv&E7FjMPh3GC za1KKPv7G{z;STLFbtaFucot>Sf+%M}6W;T2eZt3o^a?M_R4#i54m=CJfjqRo=XLo_ zJ-nW7EFo>w+smU|JO;cCz$u>d-EnYbm*>C^yn(~-aoT1Vba6Zg?BwaekvzNyM#v1( z8O&si{OWf>W7^2|k(n9MR=u69E_k1%(>#gA%8E5(qsa&if617L!X0J88#H6kFK`40 zc+tvBUTqfF$M}}V>xojeL%L50wCfgp#7{vsPi}r{-7{~dJ;RhJt zV)aWr>S>wS=IlgRQ|K`|m`Q;?0d8(E01hAcCdVncDTpt)a@piE(S4OB@Cz5^Q+B)y zmN%X-ePChyyju5FzJPwFXD9l&@yC@Iv()m#}E@wywEx3Shc0|0qm~)KMDPhTT zgEXY);|bls2L8aM&gdl(<0tA!n@*;F>L)l-9v|{VJ49aYT%_ZQbY7;*p)klte$w%t ztw>QOHGV*Kv7Azz#w=PA zhmFO)fWsY}X>;@g%4T5#JKi^0Phm3?#e`*_mm&{Ex##;GSGh+lX=F) z{g$yf@293xCLeTd<{-!+@S^U}2iVlzco5l-% zcN=rKuXsCxEA^vn$_oAo9KeV2Sj4b)r~Pp(LFcf#y6hqieT#DWP$ytPvw+FnytWb# zLl@}F1?1V@f59ENlm}es1OMUu#zh|V9r_G0 zwOI_$ao_?AD_=ze(gP2j0wW=H111+Zaqa=_jB%4PD2sBj5wzQFOGkO+gVy9Veopg5 zU>m=r{tDjI1K8LzfCrCaF9_J&qprYWK1O>OPp3s3jQ7kH*|N)G31xtTwK3k;oQ|C2 z6Zr9*GLcolXFR10`ZM%rP90+yb$}m?&6nN>s0SZ#uoz^?un!)<=0o|!uLBNgqpm?q z?vzD)8sDWb8SpMUf~W(ZauFjPj#fqCZ_1cQ{Al1&j={CLq#N1;YS?WZ+dmMiAXb8vIt zyh-+tI%Z(nSZ``~Z`W6NF_3I->gMjQ>cn?Cd)|yQ(4P8ZsKm9|T{1aRwqP!Y{a#n6 z&z{r4aa(KooCf_KV~6^Ej35m)8a0bEMW^a_h8m4oZY-#b(%WvUkYiPe4l%QR)YPqz zUDHOZVLWmD`gJqf2?dY2gF2Izi#}Z__@qAiVw3}J$PD)RV<6@^6KLAX_#XMdcD}_-jcQ9w$+KutO*sRZcU?n!%D)3s>T%rnJM; ztwuxr?y)ek9<@8lv4wg((9MHunv7@4W6U3nbo%TmmCFTH@@373OXZdYRa;G|IMWwD z_XR&$biJu^Rc0(73?`NzflW-QwNg&Uy}s64Tgog(Dypb_rmRY%p{FU& z3OaNCf}Z%|6Dkv6vrKQbw`r~0(eHimefk&w<`=Yg zc%TA-HuLZZuH0_qr@qjh$&4%at_0JDT*x8b)9wst@r?H2InQWE+K05{V=#j+_>J7< z;(fGnz+eT5eg|JcYt+w5xvB>qyi0fAf19qn;0|qWU(!=g?CSU5`-l4cr$1@N5ER&A zVa>MOzu`OnE8X|zH>i{=>kA+HsDAlh{*2~h46zKPoW8iGhaS31Z+Xji>cZ`JX)wzw zGn2mbna}ARZ-2Xrm6CbkvIsP{V~pWl_?UV-k1`6OSlQ$>ZTX`P&@2XA6pWw=^)`N8 zSz&e>`#2JGf_6qPJS1$UakARJN;BS(pMC@H2fZl+7?exj0~T@~#V^`}e0=9(5rxSK z>1|OZdD)OJrgo$=1vMG2@n%CYG;hllqX#h2A6PU3KWJmhf8rT~lO}Vvog+;+17Gs< z0Y7kuzo56%!6$%$H%0(tdc5Nvw08Qr@~$BsYAd6PrmapUFMe2DGVw; zv5dOHlkjiwC$LeZX!F1&;6o2+&$arUNsKGNjyJdl{(+CJQm2*cfJeQ62Q1P@dqiCf zmz9YO^DyDe+6QBx8#j<=$kwO_ci0VF85^Mk`m1gA zw)SMg@9j+eT+hv!PQ|!~xfOcwp+7M(Ku6}cjfY8&TYZRwT5#Ps`U2%qwof#Of8>34 zm3H75?PF-dMW=`|Fe-9^1Nmu7K0(L8f0h5OK1n|Dokc7JceJPR zO`0$Rn>4@#1`|2TM0OdCk^uvwDCI{R1TNsoMDmtlH5oUePXUuOT%d&9;T<^eF5dGy z@CG*R?tRYtIrRre?zAN|H5v0&o`ivy6_{kiY8jM0PA6WP2S}P^!yAmN%q^HxktcWt z-sL@4(24Kh0?y2xa0D<~Coh%pn1u@Zh8wLgSkm)ExQjGd2Uhfp;3bSt=(xZFhp4Z8 zXRB7ob$B+lUF79%?K2wQ3i3@G(l)ooFYsp39{Chw7<|042t#{C*}#mtGpVOvgA?t= zycK$~D2?YB;~?@297sp~=ttCres#hJKK@ZWatNDqCUA_E=slE=yr3-bq#k?+Uvyt^0w3pZKRFV~7-``F^eoa*4)DPpIQ-@gEH2)W z4;saXcSgTCUOsL_3fSNeewaNB!(ee_H4C_(=V`=B`X~S zW0jlLOe$iCW-*Z9Zs!#OA%eXU$ZWHPS5MnKg75-^ARuW2@nmA}npKV(?JASYi-6X) zQo2~Gis#nMkEJ#voCVhP&J%)&$vuo}Opuf*_GF_dVWni7V?71&!wU(wz))OZFx)8- z%&ZX50fB46Eg8Dla>;LShH;@2`>1Io1QNoB%M{;?yX_Y9Yswdj>U6qpWD(wSJ#B1k zSjWPnjnyNb?VLKLPPcEKZ3vHC+KRQlxo$M67HZ}tg(nSd0L>9t%PE_fGPZq@lPk`g zJ1g5B$q8!Xfo;ufA0L`P#DyA$E>}wCDbz9#p|m|IO{g$Fu5Yx=0#2sFTG5P?rQ({_ zvP(bl0Kq#)xUypHCrr?8v^A$xVyVLOE1S*RstE#swuGPHjqaf5%F%eN?X7Lwf>^27 zHRyK5$!A#H@%+N@#$;kT8`*KI^WjA6n>*Sc^wiqiRQKRe8}+gqG}hP6sEC2^`ZIni zA8ytA`}^i)#VIVL;SSp#97N;WRIVyQDw9aV8s4=nNm}vQ_A~*MT zjgRmGgx}hDLaxCxtYUeboAz->n;To=7+nMa{SsG9w%lPbf&ZJ$mT#$Lt7+n?0!HJ^ z(v3)+uGOD`cXM-FyEk@~FS18FXNpXv=-BAdLEkpl)wD84 zo){eH2PO}!NBBU*SIVZ}$0~3bspzxAfy)FG1b%aw;41j!eL*a*41LcP6t*n75a#3& zl!tN}C^M!=;NI=B$OB?FstxlFMe*$P`)bwe7W<2sfAl*>0s1%YzO_cvR(?@Npbz~B zZ#-xLZ?oD9@1NS)w$qjHa4VLn*V4RuIB=lb8=9e*K7;~|!I_gwYL$i>#hQ939BT`e zG1B%I>W_Nr&jzYho7&mhvXvVKuY==5A1n%GW%D_sL9JX>``}Ph`e(jiTbpSM+Iwev zOE+)2!4$*ugO9#MKmHT%)P)P%TFkmyW~SOd80bAe_uKlVU%|+AQ^OwdTJWCAnx|eU zMxlt%u6QMcA_3iFFruB}J8jMfIz<}fB^PaPX)!eL1*LAqvkMrOhW=tk9!?uNStUXa zY;4djMf28EZm!;-uVTKea;aiU#?irn$>K(%YFnAJDMa9zb)fg!oUG2Vke-{E0!fJYfaffZ?idD4E#c$3T8qMaF2 zQe7#};DJMuSJaI@$e02yTmhH#lpA!5{M<>y1s_EJ3LLlx9Pa!kPvi#&F7i?)u(zE z52FoffCXHxXdB9>ozdUm9Zr~I@zT1a#kzE!BoDNM$H;@16NYk%#w;^L)7A z6<}~DKNs~P9r@Y1104c4(lHT*kD1&etEdCd$wyh-118^r!w2~mo;#$2PVg*cad9A5 zAsJ^3_cWI9F6zMZz?FNH9d{1}ankR3j{HTR0vGgI^kMij@C^Rq?&)(zTcA*G7*+xY zj5%C9=b6`82vWz1#a*mLBM&>4)#ts%}(MvEMthPb4U%&6 zcvhbbr}26Epb2oX8<24(O#~{Nt2-)8%a+;q#uzca1NSNW`>1x!Z>i0Q^Enf$xFFWHuR;g zw0HE&NPi2j8QU5?UL5_2t*P)Y>4y`qKXt|KVaB)F%*GjOJIY+q6Uom9oPkeSe5ZWA zgClcJ>?YjJK>%IEjJfXAWA#Y#&~QzLwZNBW$R3|F_HNY+uQ-#}w%Fw3e(>Eg$ue*w zKlBM&Av?fvFh~ap*^arH?H)TgJhb)>f@s?l+-=TRw4K$$a|_FGTPf*1&)>_bRa zJcA)%bcB4n+cBd8iZ+q```w-g9UJs*fX7f#$`{N4Wl9?A33SS% zvM?wE8eU~IFk8)F93~1dR9Igj6a>Q{hN3lQ+u+oXVFy?0fXkz;8ZYo-b2mu_avB~l zbrcipKnye~s2w<9QN@UbL9N!PtKVnhyRhG*5htrKcuaKe+&R{mY&C$BAB)9GQbO{! ztqr3Kx({2&IBqq&%$jgV0pe6Eyf1*mDI2A7MF;I;O=fcum>(g@U=Ph$9b{V}CSoS@ zC?}k@hJ?pc4+dQ>=jI({)@9<8VG+*c)oJ%FhSvVUt}2zh9T&|wUo0|U6V#K=<*O|i zhicWTI_-`L24bQ0x?Q952wIfOW@)cgiKoUP2LtomLeNjg6K%FOwOC|SE?2En;_<}x zT2>)36o5Yl54M-#g@_j*1N?F4*e1vrw3rv+g+@K#Z45bBt1&3Tizo)>$Dw>H=+^3o;`-fMAl=5#w(lIWkDL;{W|;;r?T@Ur9Z3Hk!U3}qEQ57&0Q zpfG9J+AiwOd&UHq9m zNvj7K|F}W`(y#F_MJb(3JjgE3Fwn29aiDNk8IIFMK4hUGry-8j>vYT*hPNL4j29zg zC9()_N(OK{aDuIp#1UI7nUXVKZA}M$5?MFJ zPU&~MIyyX1`>?G+uWKjA_J=)Fo|IkcsMFS`KK)sJ_VZ8Z&p+@Hz5l=bx&HDmKdKM^ z<;V2Ym!C2ZT`Hf&%NBXz7r*%)?awp#foBYi5Seyn z{D61(&Si@RDII;6?OG@$@XB;Dx3(A!C+f6&)|TZ$MdJa7oD8+MyXSpmF*DC$ys?Nm z*}b`^!TuhkP$pm0@zJ3&xc-+oQo5k$pS>n!a(eE|PYYW1x*c@;J;61;s4yi6E6+8$3824gK;SPx(e9+R zKA$E8K_AK_9e41sI@>9#ZYT(z3OF{#Cz|mNxe@i{H!uu#I$?>r1`VSO((s)t;PRWY z!DW?Zk&Zj?Z?#2=t;KW8WBtVq5WoZ$xKftEGhX+}Fu&vCJL!P|{J`fc%1Z4>8ZKZ) zx?AP1Oo&Ot`@o&_rnjV13gH3XBlnF8pkp78bHsCgn?Wxr?yI;_H}Xflz{~rA^Aa=) zJo#>QOmd&HgC;=-$ImAyz=Gd+hs-vfV(hSRQ7$Lof8a!0(BBM3qAPkS;|H05L)E-J zP7JeACgmA#CU1!`CtX>4c>jTyS7~e&OA{z29!#!ykGDDtq}E0$?pe@)_wXrqKCl9H z;5+HTarHZRW8i0u=Q%hT+*BX(23>j2cXkgjk;5>E@r3%Kf3dJg+gUxoYBC8g4x%007rcIeQ+WaTQfujz< z0VdZfj`U^A3BTJm(-Rp*I?4=>9$FJ>ef4lRA8i?IQuqwc^1 zH{eqrlOuWJj}f5V(~Z*N2y@Y(Nzjoze4>urfer2^W9j?o>*h(~yg(m=Hz_yLf-iMi z#Rphnc%l6aPwP+UQ6~!_0SAL4hVL+NQiuL9?onU*Fm&=czxOBJk%wJ5)DKxnI|f~%EgUY3-|0{c46`hB zI;yw&4Dcd<+`)~D-$BQ~iQkM)j3dyLD;7jC06_}s8MYbl!Uj-p5I5ZMG{>COU#SDI zxu7ZOc?SNgxNU5#TY1dAh#3wZyr+Hmm~)NsxVJ~NJ#eWH{e=4P;hnYHSB+()<2^Ez z@pzHi3%&s#XiFQR=VN1n4y2<#^BY{S-QexXMfuQxXSrIn z^iG(U#-4CeAxE=T%jPCWBAzp;rK3Oulyihhy=>U_`*b%l_dlkTh}-Nk% zXy$57BNHT1=0!srV1U}#+ETyYv$!YLxM`rp0!(oEi#yH+#e4(vLPiM1LgBcywS3Kqm=vlCiZw$T2sFW{Ro6-)=M%`R) z>A(nL1|$N$qY%*ktP-FE;Q__At#+qvhR)5M9qsMiw2qA721cDNmgcR2krCJgIE4on z7~;wWad-jVKEPu#3SF$j(jm1_v&!KJWAol3))c%>yem9>;1BqUwjlNn#thm5UIr#! z9(b?d4MH8@B@AShM%}hg9UUKQb8E{y)`)+G(WG8$n!yf%G=%@VJ&S+F*12-2pru*x ziz-*xnm0C2uHk5^!Dwtk9RnKt$RP??-06E5Q{V}Dw3sF_h8I%zYfs4vP_#SBcZ)G6ie@<6c|yB|#kvHUQS@ z4GX5qmRjTwTOnD|#7NzMpDh?VN9_`yp`@eZLz7FR@z4%7fL~bMBse@V-r&*c1jR9L zgCYZ&P4q+XvuZdRSnRxRudmZ*wsmlHQ`Jhz_=mP;Kq+!!4#xjR!`co5RwheKmW=XQ zw&{*l$dzz5(y6U2b^FIAQ%`SgtKS})EMMkwYBU>WWM=E@CqMZ&`m2xrwGMX=^u*`B zXs3$eu}1$kxxAM3*erM`nevB%=5o%x3Qjz0n8?sxG5JDXxGeOEFzrWMS^KUig)wL{ z$nl;5JuYj122c=6lNP*;O^%uIEN8T!O)x4dGq=9R7Evr$b$E3;wr%UVHDBe$7zuw8 z!;m&-AtAHOsa~yWx?o|0(_I+bhN_nGnvOZ7!Igc+1X~r#cs!E8(Oc zA3SX1nYmaePowk>dXR=YX(D~lg0Yw9yywGjXv;I7&%2UGK0cJ`nitxaE9}m*Oj_I% zB+4|{taK%u@kr$zFrr+>929mYp0opoENhRXkmBuP69|4MMVOMwPd{{glO~99GsRaj zxJ<5cKE~K2*d{LomBj$ZG}r3`&oPM#`cO|UZeH(`$q>(-Hsp`@9*cx}1r2ESPyQdQ>LxLQ71ENtvV9aO>!Aup>LuyInY_)Rd4&W^(yfWWg^!ZZ^?sA!q0dl!3hFd!&J;M%Uy)1rA0(cn&zp*c|*~NWwRaVWdq94#sCpDpN3H zn;az`i@G4MD3`RzfB1^J^P7u1@8Js!0#PsCnaoQ3P8wiRhRa*;2c)BJz;T}T31iTL zXV8)SlpAI8Jl=5!cC-WO$sg&t^P4gPE^x@lZ|5cNQ&vEdq2NUt^bU9$9sw5Vc}JOi zOioiTa7wg_vVb4B2d#j?cVNI{fnVSldCAB3C^PEi`l8DO-jNO&M%$tX0*CL6S+s$T zS3X!6EO?4MK{vxE8M8=>Zp`39e#*qNvykK|yahdi*3=(3zzh7G&*2YWT%k{5L`KhE zW_4?a5O9!fl+PRq7+l=J5!lcO`R2yrlW~DOC$#m&LOlDT4fxJnkBk4nM23aoi@d-F z4tcmJFJvur=Q+P|2;t(H(Gwovpty8mCG{p9Fyo54@GRO3SsrPC6|@Un$O}F(UV_&MnWHg>qV35;8{maR ze}xv5Pn+@GaA(oWPTThMz~Xt(HE01G=mX4XH(h128}nq&-ek$2=p z7Ga2jH-JmsfM;{pl|INb$_HmYz^6U1%>Bh_jR13*xA3N4an1C*EMiuGitkLa-OBDA1)~=pMuh@_ z^#>-jo%z^yw{A?0(Fa@zct4q70P+q&BjV-ah8A4#Jl=vaZt`SfQUHS?Oxbo-DilSW zvSz(*su$Y~Ikl0=a;xR11hOUO!G~UCjcvz-<~d<*V4g(n?y)f=Mnt?XCLGDlY9fl) zaHIwS{mY!XIJAz>-rwR+ zA}BJMg>q{%t*_TD2zb5L((z#@9cS7zh9=;9lej|!UN<*l3o71mU#)O2I_nrii$ z?Ln@UE9xB|8=Y@nzo8NaI1C}2T!sN~F;l(SK%|+%$-p)lGlAz=>aNigA!SC(i5oG` zo<6PP_K|gT;(RsN8_MSJQ1J;d#xRUXxS(?4DBHR)4B>f3$EsFqu1MoO)9Y9#CjJ|2SE()E|wXcK6_rc zY2pqF%m9}_Xun3i=5Et?Cgq56H!{yLj4v2p*EcuJa|fQrunFG|In|;+F#cqF-PBej z$L57On_)2X?SKd$44MoO=*t*VXkUgZ`YQ$nj0FVyZFiv4!eVh@5QMkDyNn?`>!&7K zj6DpeS(LfC$qJNJ_#ffKcLsj=doslX%{@dI;7P;E1!Lcx57Qp~a{_GVdWyL}U_&0hKL#3@A4a_iWNqB8CR1 z-*FhnY^v#aq@(tMmYJO4vYd@I9rmp*$43Y1_K{gxWr%T?R`ECl1fw5q~=@+zyoBV3Qu6kSJ_yox_WD0!`V9=*Jr` z<{0iV`lH;t5{D9HMwuLa$2}y7OUcD^tD9{}I+@f3ZICIU2+-%D1$RD?1{(1jn)2S^ z`r!Z7X(1AHj^_c-GOZ{D0SBG~E_A0nQvy=i@G**$!Lo_I8xh>-?DZp0z@m?baf3-U zd~XIRoAjm0blRq7HiI0Whyj5pYV(9Bks#1JUJU{HHc9cX{0I3)9iZrwb{0Bb3 z0q?l4Dn+J$;8B8ia9S}Anp)pC+3oTJ{GlndpbYdNykm?X%mC#^4CDy-vrt1>luJ2Q zr$l`42|S>)r3+b~6j5a93EtF$%wC?$9p^dv5BY&lIrI&iw5K{l1KvXuo8+fS9M6M3 zK*nHU3uYK&Y|904RI@f#cnf>HwV)$<3dS9iuZd5=m-=%z?7+eP{26%gj)j<$x}EU1 z(IF|qlmmWT1~1VJdT}wv(8lqe^j^=Xm%piU@u7~~ z!G*Hq=72!0JY!`Mx^T;$<9dH5bMnaBhVR>L&eMOKiW2|8(^51)V+V}(t=(?s1G zCDDm=fotRi5A(Q5o;AP@`p~ERz2gjy$P6>|rSZ?}ip)OY2c7{Z>K!m}4j?}t=wS6V zIq7-9iF#8`(1T}Oq@^w~4)cRF;VoqRnec;t)((kJqm6(=9xk3mS)`3}tPrCK3zp8m z)PwTjKVMX*yiKR1pZo)d=j0(T zI3j1zNyx){+h%Xui%*P~yffZG2gUIs8QY+jZ9Pq=AMzXc)D2?-j7EES{*(SsIlSWu z?L;2ZfDd^Yx1%k124|DUbkoGk{DzLk8wo!vE5)TFA8FVO7ZQg?fg zv1(;IWWc4LgBvykY!J+et*nr{=}vhN7&(cNjsY6HDc_8LslQ=kU~WeJX#;TO&P7`A z10OTSCjR8N(fz9yb`5^&tGo}qLO-S*O>e+pmEt;*hYts+L0j_hn=+^;xES1Iq+%`r z8rU>=hy0+wKbxvz>_hFwu&^+6{2q3yTaY&2C^&ZO*`I=z7!wTi)IYu1^w+ZrwAY7`nO)N8tY@w{3aH4Csg znQ_E!)nbCx>J_aitMP1T!S5Hdsckje-aczV5x2JMQl_Z!jIBil4SRiK)aiWUMj%{y zIX$jeRFS>$2qPCfkwNvIY|n)U{TwsZ_12-Xzd8 z+)=TB*3ET1%rdIfs@lJ{=P``1@G2)xWW03YyozgVX{#C?X3L4z@>#W-8@joFLzBru zmoHydW4)ypT)ArTdpg}CHP<%{2e#o2%WmSq*J39TSb7TSxoQcJ^mM@tX9}_q{EOGPQ z+dI@+wy09MpggB7P8V9{^5#W{N10E$X2PS1;MKO8ohEh|uNLVr30zifO9lJQ%f8x7 z5J>8U5Tni*#xdGb2j4p9f^bUw2evkv400D#gdIlHrHG+XR5phoW(5kRqhj;LMaEa7 zF=ozY3k}B}ShiBdu#9Jqd#acRV6SIJS&Wz{ws@+dyq-F}BaB`c%3Y|URJuX1TCLc2 zR|ZaK?ZQ;b=Gk)DH%~D$ekrS2W}!+h?^|69c$&E@uM6;;@FZh!L9u0$J;R7r;e;e6 z=}h`@UR`QTe2)~+8RKFxms7n`vr|u*Bja&I=VbuLU^kgCC_zr{8H=e#+m;IK(eIkk zoI%>~F+Gug zbCCu;+T`_fe{hBp*IQ;lYHzREZU4whG#x7(+9}|Eg6WZgUM|szG=k`KF2^{ zdp=F|px!7Qu7m__xCdQ~5NXxaU?wA2e22IA&d2k+BFl3~>w`W@gBwgjfdH;4nMPXz z{<=bpLV}viB#-xYymyLGXod?`0@H~-;BED>Z4>qY!OMx%}mrB;^Vg zuob>VDML1_8ck4+s1Mto@sKpbQ^Ym06?yl9iu#$NV(o>ZbTVNM9-=4|6mXFHDA4($ZzU)aGi=3B742eWGqEzI&hN-- z+uB1N!JjS5W_)p)fuqZH=*PqWUh@e#vJj6?TcJ;@m-InotK;vJIQoI-#Z$@Sgi&vJ z)7p0}XKmGQB1hJ{d_WKV^^Bsz)O@LlO1rUzjAl^ z;afvVvsy3eLmtLG+LDX9bCJ&L7JKuI23n_DZp zSEkEs$DN%N^c^_a7R6Foh64)^$*@KllP1u#8RIGagz>@#YzxBg<4cqg@C{$<13o#V3?`o#MBoMEHMXRh ztajSMKga=ajSq4bxdNq-Gj1q05_+Ai*E@Zn0kFZv%THsAEePOA=LFi_Bolp3R+((~APhz}`i!p7IPKM+e zb?^(CdOxK;%yZB&IarJIoZ1d=fIIL^7R*oj3!ar`NTJVJ*~xHhTd@$V-UsjwgDS)q zqn^|$=wm_oFO^GQef%uD$&cfCcoGzOCfS&1a}k{n0)ah6VerOr`i(ADm# ztto@|%xh^cLbVv*f=r6N#vOwexN*mD0p7F^-@}2y=taA6$~wDGl3W1?V8h4s(P(>Q z18v4)I`k$TxLMy~rx1LD*IhE4p?lJ|(Rt~&<{brYjAzKYH1{$c0eNR*CSIie@hUl= z8h<4(N9qfH)Q9r<4KDoVJ81*A;B)F4+++=xnQ!WD@zQGqf{WrEQy(0}YM# zNzde2#I*!I@g$)OWs(lN0U={37nr_a4Ntj|h;)<@7j)&K9?$@o7|X1kX!m49rd{~h z_?$8auW|=2{SF10K1I8L7x;n~b4OSZJY4T#TyaAxZE18}a#)4$(g1JtQ)CbDtuLA} zIImo@-gqYyK_l+-mQ*a{)IB;@u~gC6PBP3{ zER|BRu2Lzluc{*V%@qqpqHL<~bE>HI)h#4f<_u zuD8tN?A{0N(Tg8^P%nGvg?iDW59*HFchu<<>uX_#qS0)qbLY;g+wq{;oR+mjU?Btu zoSB*1pi(PUb?(vyHCv~3@$!AT>&l&~X9ha%9%(vfOPmL;J6dnuuCIOY z)oSMOw%D_i{|0RJGZ)IDxsaPh+LQoJxfojmcz|5C()DbTFwe}jvAv_&gvs?84aYfE zil=np>|Lr?*LBYwXEYk^+evPm^p}~>wAtELp;XZ3xii{nZRp%aQ_t)_tNv)9L2qDQ zDu;&$TFaMp`4X@bz%~=wVY?n zUsZ-i)?dam|x0^>vqf%CN zy{TuPdzRtY>DX$iwcgNHv#ETwq|t1oy~9IIGjnb2Z0XKB?oyK+IixrZ;+sZ(Eg0LBsw~`9fA0VwUrQ z*6ZsQ?`bj{n?i^83)|{AQM6E~Xnm)la;0wGoCF`A%qChaF|PPZHj3VOJkyW^1F{*l z%A1-_2NtBCLD%Aj*-AMAjjc^6?mieJkoZ1k%U&*L!4zjBKPlkp>|@ z9`;=q$z<*1Lh#ILVcu1YA_!py3_Mf8A3;s*K#W-vPP$D&^ihuRPDRnMK{>gBqu1n# zUuGvs)y+`PV2lBW`mptGb93DW13Vy!GsZS_25P+4Fv{VT$Hf5y#N%T?;RF6CGPXLO zCQg*cV8n+q8I(zjf(9)Z#Chj~mn)H>c*Jw^agoRGc%VW{pO`^Q24Tv!kro-v#KDva zA808PIc3|}vpL_cXFIT*&F-mySM~#L~XJ2)L9>4+KS6`%yc8PaUZv5s> zI$&7)Slz#JvPT{Uevp8#NsIDTp7(C`PGhkyNW}7c#7|I8@8(edZFXEr5$%x~$ z-Pp#26i;dtP+RFIwh~6rg|CRR_!1KhgPA6athzBN1`g7K_IBfndu`5;eZ&IfFVTiO zc*CDjXP(9LNJpo%2~$!c@g#+@$OjKm9~5C2#qwkw2JsDZ8IO5M{6}EWegrYktravi zPoJzUSWsVZ0T0@o%i7VtFduRGi4w;|kMe*A9?oZO=%jq|t-=6A^gGIrci``I^X((> z2Jn%GEC$ehFdUHvz6L+iP$m;L|EztImjQTT zfTK=fpr?9EK-y9lZB04x9oYdrz{}$N*>+8zoI(rUlh&1Z-}2<$eRyfhgl8TsKC#%Sp6UM#6kU~EfUm;-0vnx9DG-FS|H!}?~LbORSWp$*UJ zTRu*>SAZdC?eA?KZA?Bc?xg2=j_+2jJ(pnIfo9!bW4BrgIM>5aFnM^LaEPk0Zn zfNRj2X91h<)RB*+NfS}h0?%pgeHb~5jB%qj9n!Z`fmgr*MtnDVC&M-J5tvM3;eYDS zGs@+Pe2|BQF)nZf2XqSZ01p@#%0h>sZU%#RKgj^=FrBVO$FyC_%1re3vHirrYP<;F z;K{@yelnl}i@r~KqgfgUkpbWw_|qqmA<%+y_<$RCE_jx{#s#d^$vbt5wnfL|J+R3O zUR=EA9lsqXe-3Yxp9{R>9qEi-Y5a^bXgi(<9HVs_E2tmkuzLbHk;fLtEsrk%l5RZl zP!*)3J?NO`MF`&{gEqA_S?o11*xt@g2jn$!hcb~Xln1%cXTT52!EeYZF2)&X!$lr0 z((y5#OuWoceveN5&{<8vM>XKKv$))i?D|t6TEAxnlaB4K z<8kt0b(+yfVp&GXO~m?r=q*g+G%)Aqn+Cm1`wfKS`O3($n$)QPm9O&Qc8@L*8~V{aH? z!IS*tA&udb^gZH6Qx@S|fQ=CtocIpj;K?{c+cBO{CeLXv;PD9>kcSU)fs1jQw5}(z z*vcHWV7NeQXlCP8+D1)Y`bOw9^bhio7CeAO9`Iu~*BYCL5fHcCafj}{_g;PDD_*J> zJaDhp%6aAHGd*_i743idNln{*tyL;oE7x^y`=Va<;0yKY*FCH|FI`cud!*jox9Q=# zFY1SW^k1pAbyi1*hc;N&BOYspM1AI{DF_EHy!GkXP;3iS5)iNj&gbT3Rw&$$`*4vxVfiRv!?ZC zL*M+SH|xQN9@WK57j?RnSMQm>()a!FKh$JV)4~2t?QHI7I?Cu(uX=-SzxzSG`jxNM z<$6ne)1#wXTR_tG@R5m8;{lNax|^)O@(Q(EaGiq48iFbWsVPBnhW7!yQ7=C zH_TX+DU|giKlJ^2`O6+P3+AaaOgcpOX35qH}&`b@&Beqy{@fkU&l9}*H8c4e^Bf0 zuhVN^_j29Q$f!CWsW;r$C!YMU#+mba%ZaaG#!jJ?;ohGYx=W4`mKX$>8zgp;vebYpr=23{}X!EBd^lc2Od$jvaMoCnhiTztV!MB zp`QNK$MnS~pVd*Xt4AJrRGayls;AFN`HH$2WCnZsi%)+<*Y|o_9&{||{;A6smEE|g zoh!Gi)V;34hyGNDJ>R06%hmLvs}JgQb4yQkuImdopHgPjQ@vHw+FDUp?z&rB<#jdd z4b?BV^x+SESp9=z6^q3BnOLl^t)27QES}NX#)fVje@=S`d(w<}STh^Y^7)bpW4!;S z7*Q*EUATBzRVEF&g>D|U&CBKJsH1GYpdp?$8RAZDYi&_hHQ!gh)zWZ8kXeKZ0;*!3 zK(k(3mD;*q^w2{Zb=&6k_T=-=X={DUJc#i8nRe#dT;EWqeWveVd(mA#FyP9Q7I_e!LS12oA zYAL%w$y+lox~U0JW{T zxr`b3>6S`Z001BWNklk@peTCj|nI=fF=w^46qEMv^zY& zK+F~2ZIDV@0ZK6gl)F)z8etRTF{cgLYPlO?IM9ME^?0%}@G=m>zqBV+^1Jp5eALhJH@(kIZYRwF~&TJVm0C@kO$J^Af@#|QRMMtBz&m^yyvOg#f78Zn+wUA6`sq_BP2jrBYR(q*bfh`uv0VY9 z7F$)u7|t+;;CW};aoyXQQzx@#ahdp`61ltv=AE%L=LRggw!JucsDhK(H?z{I)2EHz zN5@CLB|SsT4yOzB#+#8VCh=C^q=3hFj2E0zMN;SvjX5j?I&#@*ZRsRAn}}ib0U{Hb zIqg?41)LRlp0Rq2ftaz}%O_^j*o?3?*~9zFc-a-~Fr-mFbVfObcjuF_!;mXsv@z}H z#)*^3A9N1>;PgMMxADKnmqY1X;91KmDu!aV%);Adtl}^PU%e*IBi_W|2F2{)8uP;N zm1}50`6#&YBVjBOhJ`@Hq8|dXkRsz~{q7JK1x7xIl4QC!>eqm=jXhqE9CF4XgEaf@%J9!2{NAhrS$EblE ztv0I`OWN8idC-9);2J4 zdwYAg=nqZcN$L#Fz@)dJAG6gn;Mjr`p3U>QjyW_d^$*@tE_wMF{_};}?Y7~_7S=gD zg>EyO8E%n|c_2G>pdWZ6r>Q3wzpV{zq23QMAcPg|#*QO5pq*^nHoi?VAaonktJ2s( zY-?W!p#6LcCi*;{fb>&vfVP~nxrTR5b~)G9#XI#)-}SxP)L8HO#a~lznb$Hm(<|=3 zUvGQc-_Zv@@ln0|cRs8|Zmw5<^PBXNtG8)N{pWV{lW+g;^pijP zOS(25s#>jUYv;74qrNWQdyj_2j9&QABl^@|{+0F)4pd@diV{%C>f8R-_v*0+A5{O^ zv-GCp|Yj@gFTJs(vQCV?`xw`QGc?~@BZ;$s9Ij? z;Mu=XdpXwb?ls@1InHW(`;^vebye3J>QCBwcFwyzl)wI6T(Z zJ@%;b^&QO)Z>n5ymv;h^vn36M@gpDom=2Do5Ke0ky-XX!u}(MZI=Z>5O0A_%a!q9= zkF8HI?_|NMt_y)x1}6Y~ywm) z)7H(sBNd7{Wy^WJ<{Mt42kw7B>&2YZnCp&9>$YXIQg3RfDc$qZuUF&Z9ojjwrHp#o zX%39H?m)-G17n7Z7cc6WXP&VRf}ze9<+DrGn? zx^neST`bHrdU`_-U42BgJMYoU@4Q=gU1(}L8L7KC(0qNMkAHk$k3RAu?*yeaWfn7a z4%>R_29wOJu3dXh-~76-(L?v&qvc|xVr`-B;)cHX)RFG%7xcgjAJi*f_EN3otF}yi z`L1(XFXZ%1-||`&ig+C5Rb1wk$&aM9>zX{4*Ari8>(hVpZawzcqk6-)zEVXF6krm9 z;K37NKGd-NQvLA9c3`l2^Q3Z~dXar-r8Ledcp|Pky0a{EzR^+4E=h%GZC3zUK{Z)YUuA>G?ui|LPC^ zSU>-c|5N$lOdA)@>h1sNALz0BuBuvF)3~{&-~QeA={-O5OZwEuKdyRXQ*Zs=|5kV0 z`(izO`vbabqowQ5e^~$e-~Nn#>relJ1N#v7=J|)k9q+N`#+L4R=svyUe|U=;`KkKT zJ^k~a{*U)EHDv8}1!{k{La?!Ed#-F5kP?UZ{O9zCwV`-4BG=O!KD(Ktltt*zSlMKpZf8Cp(mgHl6Fp=(#A$kuY3I?`u-pI7L`XA z)ou^<^p`)SANz@)vf%pD*^pV2c@wcskb#T=4MB-uTyM41K4|NOFMd#i?pWXdjvrC4 z+0f}qMc1A@(&PUhQ||#U*Hzv7f2a38w|D8PSId%Z+zSR{T(Bvo6Ckt%LVzUXB_ZLF zyg-1ImyrA+S|Ow=B%l!F>8Tk@S(b8!lKB^jhQr!zDV6HNrW=%@loBy}sd_>I z+J&lVv_T;Ghj%^RR<9QGPnLKQuT(CcSD5K&jP~p^ZZMgj6#3Xy+}G zLL`Aj#tjJzM(F4$vKng}wb&`Wt>5Lr>L{1mxI4nHga#>~ZJFB8S#%K{MPr@YIbUPb zcsjr99DUXyVMX*34fVZ_4t@2v+AzY{tGs6NkZO)eI8?h*Xe(8#ID}}Ua`&1O1~y*D zQVOa?%;u)>aG&2o7D{0eMNK|5D-2rWlN{V=wG9b0@wz-lL9^GLh8`86Ya}NLrPo$K zr6lY5%ZQ=pt?%7l531s;e2+5l>se{oS}%!&imRl}UecLo>WjwHS%Z3)ApUB4>37je z^Fg%Hq3;Zh+g@^`Bq#@s4At^{D_?+96*OgNw^30(O@&iSux=<^t7bwms_pzQ62vq= z6zU-5Q2j7;eibT0W7TuhyY6k~McW&!?{vOVu7!wgD;64uK8r7yFd?%(EN{KG1xxmn z!K*>jR6~|BV};i!gxDxa3W<`jP|A?qMl2FDg<4u|1giQZg-J4+ghv%)=PA`|! zqMeyz*pcHvUhY(S)zDE&v1r?|zgqpa^2L~EAP!~eCT84b?#ciygNiZEi6dGHtcI+4 zELwC9&D+kr*Sp%(bL>2CwWsgY2mP+GXfA0DYAtr=iD{#a&QRMO`bzi~kJmjr_Ytl2 zS@$+drwM1ajHObTWhBz|y07*F-BUbKeUTAK-)XIP=AGVk=p41H-!%_)Um-F&{n2^q zhuYTl8mB&+?+ilE@|0`tbmo_?HFR#%P1o4%LM8l`2Z{f6+ST0DA!WfZMqS_LV+L_% zBn^ue%E=_Ogp^tx;$1pkeLwM(j?+jE3qx}gvS{%r%{h%(*QgJok&X_1OutNl3mIT6 z1y$qIH9A*@R6SeKShVl$?_+Lm&d@~)pUxFsby#D!?xpiP_Yz%of6>f5Hz_@BTI)B9 zFI&iAg(d4yyP}(UKJC1oGLD;e+j(IORoc1T)P_R*I&EqGX}{Fpx~4NHI%6?T2cd|S z0NVcB{m``0M&gJz9h8RYl(BbMb6U@$rMR{B^U%A_*Gu=)xU^R*m#;n>zNc}hBDYhy zl}ZKyD!OPbTIXmVs8TFjC~MtA4hc2HW={)hJ&K%OcJNMUbdd{6Wrte>E@DRV#cT&jpEOfpO z-BW){AXI;Ky?zs2L_b6Owt}xngpM3*%_*%98QMiBYyKD+0o!j9);lDe+N{tv@pMIZ zSdkbF6S<+W$SG*%QyWRIwPR>y44)QV%s6GjYFZ(->a+T$G(R$~+S<9tl!`^?YSJ26 zsVysX_B)MPzpH({i$|&t3MX_LS-@HwYG2prUF*xtlUE_;L?g)!3UO0A`djDfvuGe$ zLUUbo()T*_JTwo~FWpPDm(xe%m0a7*TYFq59M4K4Bm}i(xbE<*&NDX8yFJ%+4>Kmo z!R?B)W_)eAsM9YQZggKWwpzs?ER~m8`=(@YB`~j6ErgiHtV707gJ?2q%4u@&iihZB zMUA+{42|JP259v|?TfDJS0EHN#mv-}`Yyw*eiO|)V-a2S*~n(?{Ymp*bkw2qML&(X zGwxV$H(`Cq3^-BUW5`mE1-*GuCO&rv&yp3$MU z)n`3lIoEWa=&HG^!flet^m}Jb>0RS8GI#r2wW05Hjrwc$(N`Hm)d#hqxov17XPDB? zv=L%@*BUhRYv-iZHM*B%aECFdX^*jtj@rWo;?NwE1J>Nr7>!#v!tuoCqtQ5Pue^q} zJ9kh#yU3w~$9U!NIhN;^@jAS$-<%|nbo1B)FEF%r1H0dF3n5#8m5WRK>?ikeggo zr)SBe%8Yk!qQBe4b4OpI)R3U;wY-ZoNhBhioj6TCU7)*X1A%6qu6{SacpI z_jBUJgb5K;&TANnI;fLlVsgRq{MhWI)2n9EDLl;hN>t^nA!Vk9v*loF zdVze)$@=Zv=}+|W%8_$Cy7vU9o<4znd6Bg{*6{tOUgrD%^9axHJ;rm-9VA_-QOl`n zU4*J9O0iJl*oi}&I(LCHr%zEWL#!)8rjg>i|MLT$c;+w%_Md>7o!s&gYuAkP_%ko^ zf4=f19(v?q_P+2er%#_|?&1u?o&?Jm4)XYuKjQv}p5zpo8*N<$5`7PV$04!e*Vw{%q-S9cH$({v-9}lT^v7lp2Pe0@!$gwaqka* zL2f05-y5WutC5Jt**Fj+?5*R8Cpd9t$}FVoUULoWMtg|F9NhQN{Tz5^KNEWo&=X4% zjQ6l*=T-DL9V{-K;`w8Tc=%V3a^Tq)Of^L1MY}jTMZQop)!%x8KI+-iTwFNG)N+Az zP6ZsSa1zaxcwaZ&qXWGEcRxriSESqH#OW#V(BlUX(fMANt5g8S3gK(bY#qimBg+GpdT2Llmb9WHNK$YMCmS`Fx5u z-F*|@P#;4BLquJ5?)%lRC@W`LRXOIw@G1r=BIQq;o`h-{T@2HyHHn40h=zT<^Ifm! zs@?0kYHc4|$JY>!Zenpc&BuQC?c99DIIr2ho~@VcVC&XP_|bR2XP8x2S2sOf{e+V- z6Gp6J0@?s1luI!Y1C=p)cytVx!)Z{DLcr;Jg(Ue^{nM$$i5|L=-7;&CHI*x^O0P8H)jHbC>Z;%vuarhm-?-Hp=m%AR#&C^NjO&Gd`;f)QMVK#*XgJbc-VWr$KZvNj%{*JA{7wPB2M z$^|BQ$7baWQ-KAOtll9nnYD4W>UCnKum{|J`(13^xS7%3K4umd+DHJQO)Q~Z<2HGB zl+Womp?6Y7rBGO#yGcOV-lRGkv*@RdNPp`k1zG(QO?60E=$xy~N;H)*T0*6ad-_d( zo3L^T33luG${=A~+b~{DIUUqTkH=|p{z%BuSYaEsVK%e#7s}Hp)I;vf@rS}ef^)7>_*=PJJ z+)*$nxQ_5HnkfI2ggzC7aoOC2{b5=5u)Bl;Qt=5Pk*x7){~8?Vr;y8=g#VUeA)}Qw z?_?a%yz~ddj1P~K7NXMQF!v3a%C|K`C-qsvSt1cPs6JImjzvPIc!rQPGFmGswoy7; zEu$D{%o=}ZZgq^GqLaQ?Uo>{nLNw~oRln=?YPyRqI*c($LDO1y#y}#6NE5#+K$kyB zs|ty(B$<4cP(-;tDwgp^s0|rkg$`*OY1E$Rspn_BkZpsN?yK)~Psso}I>;8yDJj)z zM88WG5Wli6wfywfm@K2M1X1xQugh&vSW=p;wW+mc%?r^&V=;6w0;-e{FUpmwLkJw> z#Z|>Zg+faBRK>n(g-|eP)}iL35Fi?d(FkSakx{2qHs7gF)rytN%*vY~s;TD|4Mcy_ zuMUE$-HHs#dTwf0G|{ut+EYbaV_a$*N7TONoYu^%=eu~N4*f2)iw=#`%n6fc&ydm@ zzt)kA4N}OAG0bYy>YEk*p>djf*(@Fx463+}6kaKOT8oxIt$Ro@Hu_{+*;YHEi5!_4 zkJ{0g^sZ;1_l`lPGyimre$%@YdyPSJ+$h~b@3f5yYR8OIe6)?w>Rj8ok1kUG)Sk{) zzhxY)Ly1TP68bouhxi^70os6J37y-F@>rb z1CSM_r@db7bjBdwD8sYHCVpz>W4o^!OJ^JwszZ5yv@co)2=z-BYAia$ucQR&I@8Zr zDcbr@FO5U@&}SX$qv)b%pm)((_td;LG?G#($AuI^kENul|GKxv+j-Y_9Ug1?(oW2- z{G;}En6tv4bYIC{8iU$Yegdo^ zbkw@mp=+g(cJ8BhvtHWO^$coBn^ZeYN#ilRRCz76pPRxi3T1AXxhq7go|i7L#%iHW zbsw{iZJ4krgD`C=tV(mn;wL)Ca;mj+`)EyR-)^q~{jMCR9cPiAi^il^XM8d$XfCO5 z8mH*0>&)DjHLz`zvgU=gPg*n*@3+Dzwa;t)itc*e`dwquyRO%@x~G2Ap>?3XnESN* zqI31P)~5E#&bn2bX1_7f{MMe`krz5n1W`kD&^<)&4sX%C);+a04N6tUT!)2t>$I=F zsjn8lwfd_4Oy8?ddcLBk+R<~ec!FizG~X%gzm0r0=bOA}%JFCMM)g5s(j3rQRR0Vu z>~=GcbRWIcR)-#)`KxQ?=+XGJZ)seTeYGCdf3>Ucbm+TR)70vl#S=PnqSL3&`c!{A z>r3xCv?kO)@go_Twdd)4-A~U_MY1#wwJ*AM5aqf?=ZHS-jrBL~fPP7qS)CbKa6GhNQYl#->r`DCp&D-XgiY(Axsy0Le=?mh6>c3u!8W3Ie{KN~? zcBN`LX@w#atqr|oa1!djozt!}R*grWb-k{&_OZ_Vv!0oLm)tBKWR1l-zZ2%DJzah4 zv>`fZJeptnPW{uNbM)%aLEo7?T^_7bZNYh%*+nvYgH7Eh24pl5G6S$-==o4F*} zJQyAMe68uHd;3oI+;ky)6{^Vhj-J?WzY@#nd#{Ng1 zL&1j1Kj&^U`f>+cL&j%*Ck#k8xpQ!Q@;L zVj&ccvgz9E=vupx7ax0;<>`xN@XGZx)YHrMYu9ozH_yRC^VF*Wwr{?aEo=Mn1?-$S zbCHqJH4G0&sMO|I%@kN!U7;>Wt=kfa*01a5ZST01;gNn~-F+;aT;%kz6I2T&6OvJ_ z6-jg_iTR@>`vwgnroX4b*`;$FICzw7u1qGACtobKVahflp&q)|Y-dexm}pmxAK&*d z3u&Q23MRx)i%Ge74AW{_UJFe|Jv2Q)d8(IJR_N;KqkmwWo3Fo_Yp&hF_wIj`(@SM) zrLr-=xZFXOmluh|ltjJCz}hX`{g$`!wwqte)4zI*C!ctZJsa2H@VPm1@I2EqDSY7& zeWPpGy>%DG*%^)=o@1uuBSVSZ+jp`i;^o4{GdzFf7%R)GMj$W~wWwy`Y?^~QPn z=_h&m@x2CJFh84OAzj5E-^!-paRTl#KmFyedEkjjDs?~Qa)V@7FWtSDkn|4Vt~Gez zk(Ve{d@RhB>5T+gyRM&!$+JASZ-P{&!nws|MlX8}&O(TNk37wN4?aXCTf|{&ndhy2 zW-Qjlx`YqAt4zh`2i&+!C{8GUA%PW5D)+Q2;M*to6rb$7fu?C z>|V!?>$h>q`f+@=1hcQ4VtnHWPd#^(Y+k4gtK#SU!ko#8HZ`}(aAJV5WRL@|JWs0X zWO8cSpb{nIyy31pxa>98ar(q0|Mai_%7ZVy!U{32-m#mF{sf0k?B~MlB(xl)mNP6a zXE=Ojg-f<>$6wE~|KK5JmNL|uRqS{SazkM-I)rdA8;+DX1M9b&^9q#$Zd;4)Iz(GJ z{_Y?Di3eXi!i$Fv^6VoIlb<|ks*xU_D)F~p{yNq4imAF84#y0lvUhX{yRB|=n8l(= zB2lfOWfNjI(68SdxNUa&5^=mf7m;|>6eN(47)c7zP$FLt%F@Z$*tikcB=~kE6Gpj_ z!9t8t$S@h1oJk;mO13>oxG zU+$N3BA z+X_JaH;Rrn4ha()tJ!SYkb8ZW0%3%zwsB5*5G53kj*kAu)3a&QCMG8*&9&M@)s6~c zXk%7rjB*wVnWcB#OV>+b_Xr6mczmvaKM+P$Sxw$26P9Q<3WJmae?VhW0#Q53cmjp) zMk7&E96{}=f8xEJ&2+<_-F)_oU*wugFDJ7&$Mo#9so3a{G0dRSnkK|p&}YUi001BW zNkl$&TDy^C*J=i7~8TJ+JJGQx4&h@p9-L%(U>s0|4k z)+THTL!z}1g%X1FSudS0#l-w;E7Q7PhyEI)+E!Z~AwVY%8rYzN$?rT)}oVG@UPcX>Q0wBYOD^O2v++;U!X!5X4I| z88ygBTT47nXk>+)sFJglLq_z~*!3=+8VXy5CDdQ_Mg1@Ww2W;nAyHMV!ZKXx`F5Va z#7!we5*nrSXp(Qs z=g!|!!dga=wG4o|ukNMubm+Ngjq3SIS?U-zG=3SuqW-*o7?i@#ZiwO`2LBARFnGCEqyy%jEJO5Pg-ij;iI zDAwUGYG0pqt=`oit!0fx%9oru;&tL-5nWVq_39IX+lDir_Y+ddRJdHH#OJvo0-QlCaIdQ(`EXiIn=q2*XK2JOfIZ|&>EnBGu1PBoC)FjuO)w)(cw0G*h`c3mr{8P`cGd{JW0&IFF;#oRZjt#TV zwNYptRJzu#&H!vclfTzI)}isMpSs5S-f}KzEoe;o&dPIctt%s&wVfooM*T^4bs1x= z?k~E?aBIyKYuDtasXKE=sZ1ZwW-g#x9+KV-MOD+6!lSUYtE_vde%yDDHobJ z$K6D`dnsm0Gy^TVdK4yBA((VBxXDlH$3<#oF|AeR=e(%0o`K!ji)^}lgqNPbNG=P4 zU)F4HR*H4paV@4MnRJ?TD#Pxv8(E%E%%z{6!HxKQX9*H!?dW=Z0S7%jEAumVfZMZ1fSM%jL&zDvLqb7b3H=#Km*xDMZS| zy2hwFJ=E>8e5%r5g53EO(L{n~p@iS*qfo1{w7AImi<8(k?!aZY(bMNAgM-DHB{POv zt4<^wvnGqF3}EFOvQ;!;f~508P`PM{@!1?C;sZD;Hs1RBYY2_3Bk6XNE|$6f7kfE< zdV=YxbM*H1as3^nlYqo29y60!aUzGjx*c!b%76%IfDEKf$d_`P?% zgY{cBF;}fn^;fYkRru9|&+_!4(~4~{;av(RkTNX4k`&MRxmo&pdsr>XQXL^0ORzjQ z&q}UHrDo^Zrw+5e*Tb$2YnYm>F_F%2rMpBR0<-heM4AmI&QEaFo35cAa`Ez07mPt- z>`j|V4EkwRb3FgjVYgA;hx4Hbd96m}dyDRW!oEH}__lXaI5owA#}3geWKA8(TiM`JME1MM>>nrQWbJ*x${Ci5Z&S&6G+$+)5Ikh|#oJhOibjlRr!Xju=$I z#Qj^9-9q7z$uFgBaK_r8zv+M91=q%VL!88G3Rb5mzI^uh|?{Kj{Qgrc~-Zf>~ac5Zq7>sXfza`Bbt znU^3K^RZ@Ngmk&i{v&63;;DW7?t9-we_+rc2A!=8;iS+cRaRCOIeL7C{VyG2V&XXY zeAa|xi+O4j6GIgf6@yhy3<=5lPK;RsqVi-V;&B3DKkK)Svh9jpMp&LoPjUX@1tTC{ zx??Llw_L{j;tJJbnpm=jVzr6G3ojl#$oW$fWLMMBtP)AYSi5~EBO?m$EitfZjN-}? zg=eo|Ff_ne-zbgYAcbXWsm?8%oN*(4BRE2egDZ80sBhDYeMZ@Bs63i>zC>iIb;} zn6QO_(?cW~;A8*$6RcK}Jp6-)DNLRvoyk&fNZ>5s^1x7cpK9;&&fmM0WbY9F@s&rg z*TXcMRmS>bEN4?D8LaXtxm|vS`ulM@o799J-msNTJGOJ=>@kY@Dw+H$L2uCHLQ8~W zEUYXO4@b-sGt zQnkdAQM0E?2q+0zQ?HsFA9E|KMtN2cSFr6xme=1XzwMAfRWy_kp>!R})uy5-F0U%D zN+5RPbvCiP6}nr)t9)Vx+0(=q2+*vS4Khx~TZhesJK!@$VucZxD>ZtONnXEa4}bdC ze}gR$Fh-b4p~2CmMgHyU-{Sd4e@Y{tp{KW>+wZ)C-CK9Cb$lx;b5k5V{Q_V9+Bb~X zQi@_%cdrR|x#5Oux%~30+1NKuJwMM=ho9zuzIPv)Y}qK`fXmqn1O_88J2Zu-D$l^08>bZkVvJX1>3i`>eyUf3fY`d zDDo;4A=HcHIy>Ba%MHBdirv_pULL&nm%M!N6})bb;lnbP+HD?V7={viuDpuN*Iq`% zSwz*QN>n3{R2{MaW)^EO&)#(xhZ5&FU;=;KL1U#xZ zT_>H*(cKkesH=-u&|?zsPtVQJ*O%nXf{pxg#pE#UF}XaQxMX~E#~9z1AXTq1v3S9x zRFIP;a2Gw&DaWl$pZAY}#K5f-hhw3{t>3m zoWq#82FM zu3lVj2Zd?@yRAjJQa7@J=+davD3q*_lSb20Tutbz4C>wh%|_MAF(^f?QN!L8J*8kP zT(n6z>ZMw?;}!td0|8YdDoaUHQ3@F_rL^ghTS}VNvevPb8SSTX2*}Xm74py&LDgEe zQLoeu>e?u<9xvfYkg5!n%I7BV&x+kb(>kRb2~|-yX-Za>SFkyn_#7UZ^(yX`jbt=t zu2t1>Rm@hdETMrl2Cv;lC=wx;E)xlQSWKr0y5lseDeP{c6XbmIP;KgY$f+Upnu*3H z6i^jCr7^LYb*c)s9vN!tO+q0z;aHqfu8yZ&4P7Dh;^!iZoK8|0C3Cw}ExMsXAS#xn ze1I~{R}6Ya@<%ur!4%19CtsE!&=?ll@xekys)$I_-k?=05(*}8gc4M06)L3+KCL%Z zwU2~Nel97Neq+oOY7jg^qPH59@;NOK2!m^N!Q81$K9WkTI+&y}-K<^`ePv}Ofr5P#G&OQlOVRe4wQ&!bRJm)ZaF zMHv~bqA23~qL~z4%^8Jdx@-=Uch~2QP%1U3wX%5SJTg5{IFyyEs!@~TDkLSYr< zcBUz4g=Iw0JXF3`Dep1{80ES>H&xI`dx*#5#~-i~bVqzK99}seY}Cs+MY$UkY`s=B z&Sixa3i(qv=>clyS(?y(yYi^jP}Ohod=++5^>3;8PP2~6CS*&>zpWt`fa#&(b27+k z&B{1tH%5BPz~FaFw-!RrNkj1C7L*lT(WZg;Ua@H9JypJ7husRh*P3wRHayemvQsR# z@H^ecAmelgnO{}Tt}>-^${=o~`-?9X3T2ayLxpB!+_XESt7{%Q5O36eYLIXaRdlqB ziQ+rbF~v7kS<2%JQmU44sM2H=8upfv8&$MM`=y+6lEpOy_1~xbwW^x!^%IHonCBs9 zi*%A&t4gt=YUMusKJja?w`|5)sA6l{OJvM17YkHsWqf`wU9lwd=@lynu=10t5Lz^8 zP~^)08}j=EUBgzX~ z!qJ$CaFL^83Ce-dM*JIH zLx!F9-!h)c2qYQ3!%sD@q>CsASE*1iXno1=3Y9g6e<7yDdu*0rQU*3>JB@)1xw=*c zC9O9ZzEv#1=9JOsw@64CxlMW)8Pr85;{dXZzGdk|?GzE6KB?qDjNp*FQ9=8lG?*+^@7l0kKqN`1$49KoLpK{@!a z!W?b_al#IbdY-|q5MF1UuAwgOdH=20Gd29d3gLK#x8HUR-}u3^Of6QZ7V}5}U7DO^ zxmIMpT*DEx6BSaU)nI918ILQ3%~mqVGi|66PPI@JIx;&yLns)->2WeQH$ztFyim z&TFsc`IB>8xR~e6#RA9A%yZ9`H!`|)7xTF&;b5HMb=^F4{~=~3Gc<~V&gaM$78u{W znQnK{2q!KU zkx%95=^La~&KhO6#}#31PcQpV9wZv=!s&1muz4)TB`-iF&&tuWyyKSFacX&n@h$!A zJ@zz18@AwxBv~%Jj6WHnraVm&6r9TKVI$CT;I%u9hjL+QK{5?Xiwh>ns8N_3W#duz z%k$mLQOc!JE|o&QLbdK=>sBzyDkMO|L zd##EjHMG@fvR+nf-lGI(@)Mr-l^n{7TeN>t?akBdFkZ?2K{Gq4A98uX?p5Z zYh7&HyoswWnc&xZe?>49<@mAV+B6KB#_^Tmy)e}5?@8b-2 z4YGM)3$5NP>GV1J){YuMtXwUybzq69(c1B&-+n7qgULDds9+>($;BZ4C14 z2)bS+8i4-9Vz@$J6wXF4cJE#RHsu>3OmX6ZFQzyyu?ViI4R%GP;w(o&5yEK4zz8 zm|B?S(Pti|RG2j=8WkJavu=pQP=Z5`@8zE#d4z?@BgR0{EJ;8MuzBrT#s-E72Lha# zondrz7+14KrM%4X$%~vnpCOx06HNvvDsNQC$LMg3gg;2FD*sX*zXUFKgvp7EW^ZiT z-E?=waoTDmJW!P+)^xDAT*luWXD+>jtL325Xc{3$;ifVscD&e9hGM?35z=H~aJp5U zwMM|<#^(wU4Mp&`O3dX}sk&Ww{T@{9rCiJyMY~v6(UT}af6yT0W~Zi%@lE--B%F37 zBfRCUZ{@_1no8&FeNXe`=Vsr;ac)JHtya9U$oP(i7}wDAG-Cc+jAH zC6sEvTV7fu91IyjQ^hmtE(e3dJzU}1&VPRE$GALBBjEZ3!I$^Y@8!xHu4Ubp&3F=n zB-U&p7P8@AoT2Zf6}tPnnVy_BN~VN0@e_F}r5I~I>Qys2shkwDSzdeNmBe}m*|+Z* z(yLm7eI`U`ab}K)Kf>?+&WG5reKU<(kg>=bzOwoig9JQz`UH_!l=Mm#yS>H0U?0E# zN1x)7_1g#qn?b&}B#rFz5gvhH|@OfF;iuGirp z7EJIv@A&}le)~O)ZCFDQJ6;v>s8o4q|0{g`E1&1|!565NYP|h--_QGg=N*iX_Mw!8 zUC|!$sgempe}4Kf|M=yva{BOLYAdVsB>MTn-~J7+**;1jWGCnkvATSoyzLxMpF75% z{@!=EWcyk^`{$n{ndmhL_-e_9`kXCiIX^$eUw!TiEKE-^H@#qTAjSPrgGOuEYK9If znBork402VtHKz(mloUGbq`SA5)l|kLww0Wu{G;WfLLqI&NL4P>`QV2>#RuMg7xwx^ zzVLT{&#zxRYC;BMp#+Uei9#-mD-a;yw{nzv{Q;Jh`!uX-!dA{ZuUE)RtBTjZ{Oi9n z5(x0v6A$o@|Nb3=K5+@9SGSxsS{tpZ6|&~=2vHrPR%zf=(o%aGm#B4QYePEAw;G@u(?<_KEk^{a5LpdfPeeqcktC+T%5VsHeh+oUaF30 z@6_7Wo~h4Lgp^OSSg8?-d%5jxujjHoufgpM5R3YF=DGd+_ka9=H{X31yRN*HzMf%L zGFc|hoaOZXmwEj0CyWeKs3<*#@?EZAcQlP5GT;q!=N-4Oer$}9p*1}4=;J)O?+K$g z3z;EYfO5^b-9eUCS8z1#s(H=p?|3KUy_+eNX1V|2pBVYcX{+N2_-HzWG-%PP)hJZT zM(za7NA$HsZ>bv%TrGpn@rL|n zU9_4tV~A93FnKkkZuyhbS=-hJ0?Y}v5` z|KNHS=a;Eemq`bzJn)OBx$yLJI7?;YfLczaF;(yEEwU?%Mv;^PEi~6sYS~mp7do(5 zSvKoBwXmoJ5x9f^E0$>0YZSAq#$dfvDAL!{XV$&s2B$-Yz5rE&3Ug5?S~)UR07weC z=HQ+0zK6AYUc=<VDeX6&pch{#z*Seg zk&&UTv^;5k{m27MPhT*4nhJ>69YO(>aUj%+%s(!C?ts}xgc>jBD%e~ulVDytkLII} zLMJ3kd8gc7V^}Tc3tV^2wd~$?CAMTY(O8IunNvJ;|F1|d3&?T7pyy?vT1lsHJDkMg z31cXb15`$wa=AdIuByEr@&y%0kqqvmP!uxUWsD07k(W`aT$ho}DxPAZH&qbK>oxgQ zeL}G)q?wxeTVd$|RjkijVb|5BmAXM|%E0h`xNvm)S!g;2IjE^*Wu z-89bN$mO_$Bh*XFq!y0w;{Ls+;<^mjN)2L)6IGfNQJAsQ6o~RE)s5Xnp;`kK@~|~< zxMg@&1$P-(xj~eu#kbjB?R{*=MO#fIPj!1-_HBqw;o@A^)E>vy5VlyX9$ zpt@c%l?sT7#%68h^Trsa&nu~vk!v~#Q#}hy-l`ciol@fHdR?pE6doxY>?G^xd)XMwZ!#vktuoi;Q>J*m7~>z%bXm_9o7L_pDLoWl)I5;`ArUQ~&@V07*naRP1~9 z6pnBLUo=2(|1dM>X7PGlMxdHsSs)fkm?X~*dxdz&j=R-j$Iu8~UZ%IJk8FCyB!O>M zTa5MgnFRaIdX|9CMcC@0$Z{b%@{sjT|Fy}AM^I&~1@BRIE zap!AqBX#k9wvKNm*&pJ}>Ny_T`zRaMuc2HhQY@#jH41o&860*c;;j$~wpcqn$i!rd zpx;X-tq`$>K@dLo%O`pI`IlM9rHDsEbd7K4b+^Bs`0yyTMwUkvE>}^m5(h1(or1l@ z$&2Sm1S90j9+LgrSV|RHS;~RDWzHpLql82g6*PI>G(}XX(HGDi(`TGWjN{ zl~rS*H-;>EPihTXl_n8yh>NwHLC9sYIpYNsEi3gRt_D<#bxP?B5odt@-hL(*7OB)4 zY}~w_Et}TU74;Hy+IjDL-bL%3E!?&Oc5jP!-F6)=n~k47_8jR<#Rz#_JqeS?MTr+H z`2v-6p8RT#SUgOjTp*E5l1*oro|(d4Z?SdDW(JcHv-v*w_yfFj=oQKe=cviO*TfYH zP^vb`7PEx>9-5gNHF?&waoRmpOI5RR8s;c?s-V;DkQnh{RpAJ_{VdGP5f2BLU0tT+ z_TlRv$JX%Sz|E>X!1(5?ai^SYP&mxulnGPIX470ad)|0aYK}aqe2V_$C|fpdq#n?a(AN$Bh`O7c- zUvAoZ38C;H|NiwKGBrKJt*^U@JtM>X`5%3d#}DkKTD6laTe-Q!SoPAOHKJGNJ8cf~ z2r9H8o{Y*}O+0F2u62sN$M#aprYU4gWLI zZr@$};}<^5;@lMXyyYEy_?>sryJam^Uzp4%KERK^^MCo$SHF%us${iQ{`k*7!F5+$ zgU#utsARql7fGRcDhmcR^e3PEdyXDIO0JeQUZ?kb`AeU{OEYO}^2}o|aPi0~&YV1I zLLWA*AL0EU{RsY{VWt{xe)hHhV(Q>t>b0T?pKdBt)EgnQoZ^Q+xR>LnPVu(eZ{h9l zc{h88*D@84Gi`TLcegnB;)@(PbcEUmy}WMQHiCY)$yYDrn-CI~=d{RAfAmxCz4tNx z@FSn(w#!HGR&Ds59&++VJ6r@jP8xPQBjcld?2{kE=k)RGeTVq=fBp?#ubsn(o}*T- z8iZ>s93q>yypfioXXWFPKqnO4Vya9$5@y}l7;m`sGG2fCJ^aTv!W6SB%r57coK2C- zr72}HeEQRW#HarFkJ&u>8s?T}3HJrCm#YkQ#h70$5DbP5T4iA&%OCvyXIMYBhHcw6 z@;i6jg}t%BeGfm##Mv{XvK1=xLb?}OGqN6^!^vzWPkf|{?1fpz`p1}@Um@i4k=8ArT0$XV<0t#sB#-|L@yB;TJ#n0TG2r zW#?%MiP(e(pL~pk)dhB3ww;Yv-^_{UC&{c%bMVAr&Kx^#_D6*kKJ>uD40a``T)LU? z;0C^b@1uC^F6^}&{hNCE?597*7yj2@%B{!8KK;M2d%Ah)=nUn$7pEtK%dtq`T9;8~ zT5dZhrsjC$#UosOT^DCB%#)f~ChYSP5QN9)<=Sg*Z)kiePC7z0x>5+<8l z!Rr)S%}!OJL~fz4>?G`VqVWjDLZ0qqgl5%7FdXF6g;VtR4jJQry-}t&5#`k37n#_# z9hWah)$TSa0c12*0g#cNK0a0d)h zLLqJnwMxWe1pEoYzA)z|&(hnUB%MvOu((J(5hk^iWo&eW4VUbs8VGXZ^|L(j^Iw|% zu%;xqHigMLP_pR`N>~br_7N#VO2-k8#n`cPJ@0$ZyBO#m!R`uBZWTxs99p2BJtwuJJ!`X7Nnk&%V zn_wwhFvi|YI?vcxAC*##)qEA7BSNKEVfUWheDo7{<4-1WyVlUP(9djUm4&Hk7G|cY z3XS3OnUMRXM#|)=Q+3$ho<35mtE5&}@VKmM#xej{x~ydw6oNsjtqkj`+AP$9j3uG2 z9&Wz-ZM^k;ZzmX)a_gtGHq3H0#yM{T+o4mGYBrpnfXo#1$O)rLZsocuc#}*dSQ5(E z=_C?W$Zd;ivCPPtwbaUT@F|yJi>1X`le4(40yWhVu}G4d!pv+|>IR33YS>$*`kz5> z`E4Z14Kjrc#eBs81mb}(pLp-P$%UNwmWMfh@DRasVd~WarGgb^Z_;11!~2vAPfi7) zniL}Cb~=pn>=U2<17gvBjvm?113&)}tE($kuFsajSN-%44U=9;QLohS_&sC_GEO+j zt2m9@VU%H^StRFZPD=5X(^8*B;C#MFqgCMg>#yJgA9*V`-+T+jmXl1j!Mim z>aTWOVH>g05h9^s@-uT(3I!(5O&DYE_=a`-#pgc5Wv{u3iF0+H-uoQ)-}?&j-T_t@ z)8sPC)S6{n4woq$<9E3UM-v8VZcsTk7pqHiW?uUJAyd&k988)$RkRg9wzEa~^RQBPK7Ny(E+&!D+3!>*8C3a2b(tt9-?Ve~S#fOZ(GsopA7gbAZ;n%@RmUOZpl>u;gKWEU|qZaef<1}`BeWek>1;b@4vSw?5| z(ZKs!R`DW(Oj8ODfh!6HvsSG=q-2oG;-T8NOgfBqE;)05o|SS^b!mO*tT;!@rak1^2EYbNMVi-97k&L2kI=N?!lQYiQZB?B8GI{{P;G68mIJdHQ1AjCs>AHBEQi z$L8HTC>~y>>h-Ys%AHioIlOfng_RuTikq2p7wFnBOe8VRV&>N<#e>tOGMjmtK07HE ziTB0Gl~Y!t)v%vE*X+dE7o<1o<)QDKVdJ_n&Q6^rn_8hS7DvL5FB!ub4p1@SNj`AI z=t&GRU$-H~-Yh9;qKnmRo@lfizoSW|P^aRL;tF-KVLZTUAuc#aE;(*}y2OlVVf83EGTT-`FHQZMGQJDU`%C2IKsy`oi5 zH%o^O^8DcmF1h?BuDRw0TJB|ry5t=wF*H2J*xE5Jy>=TOzn$OTxXywc*OdsePFHXZ zW1ITOECvJ=qEX1R_wg6#PWrg#%~y~V!taF_cya&J1Vdg@D;WcI^tikP{V@Yw70kPq z&oR)`MX7j%zM)=Lm88A9hoa)BRsE*Ypk{-Ki6UOVll0sqh2CjKA~n{H4f34bjictE zHJ2jR+rwbr06o1uc)~$0f8&R_`kLElE}rD@(~naq<%vh(#g`BBpFh42f5^rB!WmZQ za)j$q0*)cN5<~dyg7OwjQrq;Zs)aRKo?D_P(aoW=X;SHwi6sw2LpTLNRfvSEMWt4x zUUuNBC{J3(gkXddVWwv$+5gDB?AqFoD;LF9v^Fk(z)2z+U^!RD;j`eX`E1_6d>7{y z2}cJh<(CcQHstV;j73-$PtYb*G41Hu)l8Q2b2AWh z66lW@gwN#ZC5EnA!}Zs_fu6-lrdOA6+Uu-cGs3ku-pIB+J9*PB*WvQk4FtMW^WiVG zn7MF@rt*@=tL5|3Dr70I=2@7SWFj-cU;o3u8AGbw8RD5opCKan^1v81kC%f7&$2po zo}d2g38v=f=}L}~C>E)Nmk5V_OiiZS34<*deP?6QyBM`LoDMTLQSYtgNQMlO){?aO~*33fOUC-&v+sGDJLn)?C*`w4P_n_!wtrvMi;t z+_HA73Bh%R;w&w%;%c<;N5a?}vjkmE&K{rU(eMA9q2GzHW%oJ`rc3NQJ=h)%HjBnY_mp=E``07=>POnM0uaFFFkb+w;EiIeRZjYO^o(LjKe_HA@6+0 zyZF!ldWdg)?{QqtstEx~hTL3v;~qZx7k|i~ef*0&^wbgVd-R?Be%FzD+mr!*70vkgLVQ$~hw-z4XG%T)1$W z&099`y`TM%6UPs+Y0s7H*nJg!0lPua4fhP0a_V#QOMK;@zRs!JS9s$aZlmmM@w4ZS z5GYsJ+!JHn$N+cW^)^ze6erHC^1+YaLt^`-{CM9y!F-N@2a<6&34e&Cbe%(|7swVH z?6_nXcfIk=%v~&!tK?}&$+tUjIs8OI9-^aB!tpSYCAvM$>!!U*}c4|G6$-wqM8~?hW*49zN zlcy0l{Nz-GyB@rUYE9C5JWBbr`R#wOV%1s#z6NEVk)OHIYEiZs*$m>T6b)`4xq3GLu@9aq!!*|R&j{f6u5o72g+ANvmm zPETXk8#p>JsJu_2K$OX`qzqST(omjZImmZLWa(m)%a@9@x3;l**($z#|L5ph(1EXE z7LPpgFRIBLPZt=UE^&DGN4)aFbDSQWB%RDt%;s3MsF$1Wc^sSGOe`E^cr?bp|J(OD za{L%>w~xuOlei5fMtp9P1tT84l@GS}Go45fniyyPqF%oK*kg2cb|_1GTw_vdmnMy# zcqYxpH{RjxH{PJ8&8dRrU%&EIR-JzynYvCX-8a9xkrO8lsQW)0i_zh4;r`Fu&io6{ z!{xMd^9?s}-4&N&5#_a}%(mSh@%^9tL={cDw(lTONYHcj7Z@HNW!IYP^6I(u>V-Icy-ZFHaQx&+`uk5RJEPm_Arj9qcXlIJUV9-6*PKse zGD%;fQyr?K(@BmVJI2l(dns3SG&DGv?KiUi;&q%kzK0`|(;V2hPc?bkz;WRl*naT09oH#N{d&^w(H#^x=% z84IQP$HuprDC&6R+dt#u&+jeu?1D~g- zv4blvJ&*BIhZr1~pi+!WTPf!1Jo3=jdE~42aLp}u@zm2VugVr7qzrFItY)Rr4SwCl?@x% zvuhKVU4K3I-|{F9qX})PL^>g=c8}uT%G#Puq_8?X%wN8ObTWswti$ck1~@Z(1W87hX0+G{MeQ$*c&pt&pt%*dw-GrzB;!+P zEKYTwi?Um+Uk<$mpC^FM?8MvD$V4PaI-4ewicv_#NKK~@YgJ)qKl$Y!$&`## zl4GjjCpFg$woik@E|xYkT5l79KpPdU1-sQkJeR=iFf%niM0ohDQX5IpEQ3oan&nI< zf0l-T)oM{ztKIt#viE^USuk%2-}>5jm_KhGhMJB{GE2QIHoO_=y~ANer!!O22S^sI z7@W=YbgiIN&oVu5n8?J4Qj2^v!vq=|KvU*hKYEa! z^RHs-rg4sJJ4kq98l$_9a&DBV=mfw1>F@dc=Y$9BXJT*^le3GG&5Ekp9qUEJ`fn_6A57ilj5slnV)3U3P+F z!!wOqu>+SR#0Z645S5ZNc4TdkI#dj)dv@=qQpgYur&+zUhDenY)8Uz*9g7U%tE^qS zh8sU|Db}K%z1#MwhDSA7L7O!yUiA1#iIJfYt&LL{EOz46EZa71Cg8WzeVN>o5rPvD zQd1F@E$LILeZALA@6z)LojJj}D=)*@>|=1M!gR92@Ua2r^!o61&0-=PqMogwua(FY zs~E&aZt`F-*$8;OXv!L_^(trk53!(GOTb=7r-@Um<~eox1nG2KynJ-DwIVg6SbYU8 zAP+f{D|YS2DU9+lxjv5!8m$sT5h#P&!w;NRwCA z6#2WX%ksG*R*?TEin3~1?8GzwF3MY}d*r^*e5@2xujONonJ76`Gy3BI4|$GruS>xE z!sC*Ghn(lm-D~1rkoD}`=gRZTL!E(zy{C-0Qfn9}SBt84mDec0q`4=JGf@o6YnSy@ zxPQu8InyUo-wU~(=ZS?(l*Xt(!pcjxrcNyN3mMK9q_4S#YS%f zqroZ0P9J9f&K71}F_$ZDxQK}Yjf-ZSyWxO^Sl9LfK}dbJYqKj11CbuCVJs0^^i{dd14D`RnjI z{rD|jrPk2(G}E_uHMUTUX<39UMkwkT89t*Vtc&~Fx%cxoP||COX7c>%Uw_4sZF|U8 zs<_<^q~lXO{rGSAr?213?5=jMzrxB}AMB>1%Sp4pOwKS!|HyVGlVMyXs{(&ptS$-- zE?RwNg5g2>H1o*DG2PO2UQrkWXZB}=BJp`tf1I6AF< zMsg9##V!|}Tr@KtT>&%JkSS#{6~|PqGb@`X9gY(rOS+mQbSA;m&-{Zg-+v7{i?Bw{ zpee^OTHCSe%JdH$zA=}<8e|_z-z3$`r>mu^w3=_ zS=>rJt>yKN2gy(6vFNQtBN0qiJ@e+RBp9w?Yw<81$=@ZG6O)k=9S#@e;!KA)7|UX|y2 zBC`f(C8rjtM5IDTxrfO_mB0S&A4;-qwAS#o`l!|I*vu}B#u{UBS%9_5uPrH)lIZPn zxYR~%v6-nvt11OhLJP`Oz2X@Z5*0Fu6lL=aSk`4XQ`S1DYHP&AN;@6p7ytEBJYF}t zDwr%bmUPeNOJBT&a3ap1{`wL=XA{MOSZON+n%WS~i6{q6V(CDG-`B+Gv^3D_XzE#9 zE+@^M^SI>N+i7v@_~5-ac>bduT(J6L%DE(yi8!fLor2Mb)8$ZB%6zdbz9Y)gVHY)| z%}ODYMpy`PdQpjvrLtOd1V|_gj7+)gb{pwjme%H0Qi%*kodGHt)~#89H}B?+O*@Gi z&a!slER2>M`k}Z2u~&;)?)=QHOc`uE`}Q6V9@&ewR8xTxUtD(y+Cq*tUxVTeg+f7e z8Y2cwm~sZZ=4LWk4K|ZcO+bu#BS~>xWU|CdRRR_d!=ZiTN)?=5Kf$Re^tGx+iB)e! zqm5IkNn=eW&oj*}S%hUVmPPj5W+RKaY|66GJFPBsCKIWgo&p|9#%8j06Io#im0Q)LQ*#SBt${XQ6WU6Vx~@uR zgA-jjOC_5nAD`y64S!+os&8}21?xDp@gp2&6Rop5+25b!^%q~mX^?66B#i+-#e5oB zo(#2$`X!SyNwSd;0|C6xsAptDn(?0gwcL5jjaV!u9=Z1pB}10!r9&n? zxj0E}kw`R0>%#Q}_rH%-QzV`YlX6}}bi&BU(P51GI%kd?!eTXIHaV$i3>-NgW92Ol zD()tZOc~K1|A0g)L@paqb|Fo*#`wq>PPd73X;;X2Y5~K%5*s*Uvq3$N;fBGi612z&E*+m-t;D;9`>$E6r`1&AOgXQVm&JSrO|Fg%&x9)?>ZS&VmWLm>3#Ylt zfBo`%967v4HMT1`QB}BzXL1OCMJLRTve-HcSUo<8gL~P%^N?!(%l+Td z)P_dmV%tYY&{HPhw_>Q4x#98)Ddcm6rec`%8YJEH@Zmu+1xcza5l&_lC)4kBaq{#a zCkDpo>0LyvI<8nxC0!%AM4AO%Eu1&EgR_Tx#Is?F*)oZAo}kz%J6e^h^88huJpYWO zV9ACk%0?sZ1~<*K+R)og$`Yn^+k`fb&8o#a=BK;6lgWv3a@5FHi=;{gyv=sfsVOFd z5p~Y7yIcyQi%ElUK8%#nX;M%Sg>#*O!Erv=ypJ#4co%EWznot_^_o(WRP$*9J_py` zx`GCWnQ$t?um1CS4j(*@!|J20y^EqG`RdbXa}o5F0`)?XXeL7>8pY{xVXPUb<@4Nh z`}N#-<8`=OJILn1;?6NRe25b{KVvU`h&7QzSJ$!Tyi2(Lj;rytNdm5!TW_c_J~hm^ zrojIFLrjg1aL?WMan)r@@iwlen$|HjG)!tL$D7;VCSS_X+|3#A~{Q0SkOsDE(r{c&k%B^!!DH>_>x8Y8hv5_G|f_Ndv4}bn+I(wI4D(M(M5oGm} zIT$rX#St0_P4L&}-eUWUGwvqOK;$dm)u0W zT*R!?aOi`N_}@Q0$-x5$S-x~3cijIVmww_hoJJ!#v7Fb_9NT}8umAIZkS*jG4F;)d zjJ);y7Vf;uM(@%tX7zQGidTrmlN5!OqnRmMWv>+Liz?7W^)1#JT^)l~K>8IGZWK!9 zInUr^{o<7z`)D5pTZ#FL=d!eC5s8759C`f}s?$l9EuF{bAAFb<^Dn?5cmXX$3mJAD zJj~C2^nKzJlN1VNtPVeBqn5ira}5B2Kz_du|I^LNmYJ+p`C!8vJoWo0sOhXMSlGqC zKlWXgtyqQDVnUb7u;twk`LAF9n#p(+i^I-jI7p(H<#P`_$TuH(K&ddr8f&&_m`GPS zoi%WH^8udu-H)l3HH5->rgMU4v0+MusHQ47tscVBpyDiwy64V&ZsVSZzKYA~QXD&J zzK=&n_~X-0^UAXuWX=(O2F^Ym%TVVgeJ^bN`zjAEHe%x*+*MIsm z+;{gq7)=H=wJIr%Sk$9D`^3}y?b#P7}=!*|NUK>W-Y*}vj~NT!QDHQg}#uJ;g3Vv3hUL18i-r;A`+Ns?#X*U zSJ=vRbJIKv8q{G!@uxY_+a#47Oxy06OyV&>ctEvhAjjw-|i$AfR_RhJ~Fi?sYNl|3y=r9Kk z9V9m$A~7ieQ!^=rCW~;bOlUJ2!r^J9#%yYG@}r;p3$uHq$>?Lwb=}miy<81MCSy4U zjvr&whNl>t7^h}-QqQNj<<^zl-FOu`v!8TI?)Tknd;cAtfBGqUy1IGb-p?>s1TbDd zc26@WBU#Rz9Oi?+{gvR*9=`g>UG(X|{-RQ6tx8u|O!7XZxNas}`Pzt(s>#pP-V@k`Xm|O`7IKR$a85 z-UTa�xyX@griR<6L*qd8}Bzl!o>ej)YG0&cXf6nX?Lg-pT8`wxBhYn0x*r%5^tG zp%m|K*orL{;=CnuF*&U0eHLP+EElX=LQiiCC9{qXkBo5oqaBQH*~ZcZPCUH}cwx%` z;nR5{1G~8WmP=XKx&nv6!DO<=iK7XX;Jo{In86b%g2$t@*sLr%Zy_g+oFJb~LQR|# z6(%PonO%Y(EJ#YR@FZ28VKmJ&n8dsO@me4ar*mp0xpw83G_8cKbxz?WVJ*_QmB&#fU~>yaNzhMo_q0C zDwqiPo0yKpanveUO?LA6I;E-xi@TAL;1qhj6@$ru)v6&nah7s6&90>Z)_-CZpPV&M zZTP_>{k(r_ls`PXfoLX2Q?s8^KEv6;Gd%J56Wo5|O?>u?^Dq{w6n#bh-z!hEXXhcx z2?2Q)Fc@r5HIgkkK^?f)!2HZ_nX3uHi;M@D@ zKR(QwwTo%#>Of;~vSP_{7P@d((II5vpUp{Kw9I3D*Zymli8jvgVKE8}#FnkCGF z-bKt^yq>#PT!>#1TXY5NzD8DEaut0mS2J*ACogQ+OHWr9-Lso$_UozWnpv~{QdX{$ z0zyYFU7)?1q-2M^lOeAAu?Y!KjX9!dtRW{)an(z%TC zM$3)f(lr~We>P1`ec17%)i}wUZCKhDbMYk!Mw3(QK6V0qMy4hes^v6Rql22sNJB%r zVy4uJSv0i-9kbnp#szJwqi5kf)yZD6XfDxgh@9U;+oA=uq)!m5wvtF>X=w1UY{@b% zz2*+a#wK|4qYtU%;&ivp=AnBYrnlM7spt@&{ldfKiX}>uAxtI~YTjSYBxMpD@b8k3o7Ii*x&4NgBEn;DDU zNH!x}vza6u;boj#*yVTGROCI%LMrdKR4OP=lr$_2H3wF00FR?Xv71UdiMkfnMw)Co zM^|$%(L@9pbvC%IbhWjjw-~TCHsN;pa2SfLT)vbA>o4Q)?;PjVcMdQ(JkE+<7vKEa zLu4`nLw4e6Y-C_~5RF;G@%_W}bT{z%&t8G6L5tPl;zVSCk9O{bR95jOj9N3k4xfTA zTdiJn0v6Tiu-hCs>{;Tem|}I+3jcp{mDek_nuOYzRAKUQ!j?>1Bhd(d{@V)#lcK)K zsDqwZfR^=kbIF=jgpy_6+4up62gg~E5A)IHy%aMBiis$Fb7oP@m&h13oK0lN29IGg z)d@~cQ4#(`)j~2=V|;8Fy{3dglJ8Vw#)wH*B_B^SF&4);uShsu$CJyGo{pfkm&wYe zYqsLCyOj-2U)Q4>vfy=U(WIua*J}z;JRMGuNKPxD>8jPMk;ZB!IK|$LZ!jhNK9i_D zqxfBR{7whHij{d*KQ*_Fciwpu?!{ImnS(sJW3*&RMWhIB$ipVG&ThYN5;q( zlVo#AmByDU&A{O$IV+WwgkdYG_W zL&rI={X=S%JX$jhjtr^52HD#xl^k`E^=pl6et##!#}D$QFW*OBlbgAn9?Yg1@kCsu zHFtLO;P0M|Rj*Opwt&}1siT8JI*!4h<D#LH~;xNESb|KZFrS{nl07P>&%K>`0K}?V#UxfU;g3u zc>e8ej2%DB&_F+sCOSDrHj~3@5`|m_PlFk!T}L7|tqzQ`rkN~yOlUEhEM(JJ>UA9! zx095)Ore@0mab42MMgMDtysa)(nNR9Lca6;@AKtHA7SO?=d;qa1dlB-j`=ZPX~*ZwDbNu`=}JEeB+@zS##^9JoWhB*?J&C zz2>H|%fy0}ZCrcrBb<(C8UJ7xU;E0pSl_pp{=GZ-=$BiFq*Bc7S;E!VtS7BEqj5Ci z^4Q(Yj2p~;XO*R zBmm>lu~Q5P6IQ2H=Zd@T`zF_1`$=y5)Xn$`Qpn1EU`62NTD=~tLB}tC_j58OC*S?S zAE;?-IBgD`Hdwj-LT-KNoBa6S{*&+i+t2v)XCL9>i&nA!=zd;0v6*r?!IkSSp>J*< zS6`juSATe(zQ)yr5*fnbnZoscB%pU7tkUVJ7*?yB zKmGA37Oxt>;?!fTMW~tlTyXiV+;j6?)Wb>A`DuRr$DeZkbxT;j_7M(mKTUihLb@zW z#xnc2Z6`Dp$Ky8h<%d7T>0Fv0{qN)0swEtL4~6MbdfR*W_K$wT_a6H$)$viZH4Ott zw^1)GLsRc%R_g*jjPJzZwo^_>F0&Z6#DOgb)LOq}$ud@U_Hb(DDuU4j{fAHT%isK(8$NXd9nAq+ zbOti1h%yLDQnO$!{C+q8{Jr~WZC}Da-gpUPSx+>T$LhA?U(iRrX+E)Z7AksTX*o+6 zI5V0cma5P|l}LD+$*HJ1o7t>JTDv+}fAh8c&l@jcE$b;4Bru_b+gj%Qi&m0LR(R)? zmq{iiv`Q3xC1r6li6uu0I2l4~W|9^|!3o}ebp!Q6NwK7U{>#VId2KoyXUE9wW868a%iTZ;q^5rA%KJth^=}$ zmsTN4M!i+>zGk(ztNkNWC@IxmrIe(eEl{l#h(?oaescr;M-Jni)kr}fqr0~QM}zR2 za%4kCaq4YoG8vq%26`4RWKL&0fyMwXgGDt-L!nW!DLu*QDzoRTqP@kbLM)mayaJA* zqAz1GJ4oflxgesIJSL43lgUBVC@zA6Quv9xMH&Nb6Hi-Cv$0PS`EwAUQDUdz=6F7(d!$iWriUaWp0m&A-xO32^%J(?B`x$Q#n;< z-~O3vFxjo_I&zk0pMQnq=@6H7c_~N6DflY{G&&6V3TsxKkEy1kM1{Jf_}QD$8cb?W zuAs;2Xrfq-kcgHU4^A_$Lyyts!r+~S)z+vSViqlQcQw=GYN0vMPO&N+PXnip9b)k8 z8Fl^2S$t+%SyQ%JY1ha)Dc7X>o_zdw`B+JUNA1lND?`!I`c$^+p=gAOLUXPrm&OPM$-H-n+ANROiYTeMwLY~P^sTWo>mU!*Ww-|{GF~8HRCPdY$l|5Sy zFdCj#Y>Zs0LL!<#3Z3u&uF?i7(D&-8>REE*B zLkbi_Z-M$i;yK)J1LEhMuEj-EV8%~U264)X5CU6_nc zB2!^x@*f-xlK*g%N)j3Od%&bu(^IF>LM|Mqq)ih&n_%GVDAkIV58im4MO|H(j1oVp zS2wFLuCj5NBqxc-V&w7#8XA1+2X}Tj#LnGA_ z$D5lufB6b5mH@H6Qy8^n&K}M1?pwR?>3!&IBFVL?PHQTYBr-XUsg`A4S1UsUBa|~n zCSnO{nlja5g1tL7GOHCX@-0SJtYgq6uo!ae-Lsb`o_I+~L#x#pYf?)~Gx1nlU4$~7 zmy11_%P5cZbZnX)%FJ%DN_uS^_BB66)ZHln`!nsvHHdC z8K=A3OVDE{B*|V*ElsU1jFlS8d-}+G3%uR-A^pb(7&|k_(Ag2rTegBoZi6>Y<3D|4F$c1xPCd^ zk_u)uQ@0zrebzi$8k;d}+{C(-OS$a2Pg2r>uh~n>!uvQIjxaPht}K1od`^WqXiXBY zu2)SiiE5Wfa7jeD>8dOF^qqInVAi9nmZ%B;%)E#>Yu6B|McBA=7ytFpkBAGrT~c%0 z4P1TGO?>*6Tj=&UsT8KT*sh~t{t|A#@vF@3SmundPMw&}@zWSxF5J@H(nK;I#EgunRX`+2rI}6$zxI9Hz?qbOm z%Sn%hSiYc@g06tZ?q+^ZClk}t6eIynTUVQbOcrDjmkmcI45D_F-(~6|i>%x)0!z$U ztqdiSwBo{G^x&{s$qFdb?ZWA{Va&!U<AVAu}$h^6;XkY1sCJV3p;UA1n1nHSKpGv7lIxERaFv~p~ zm#u|lK7+;Wp;*k}cYE2fb1#=)a6MS$&}_wED5yj->D^i!dNr}NdYVbd!K1E6?{Z^} zyA<=vVK*xaL{(IcRtF7@&FD;8`bUQO!hK)CW_Hlf>{X1(>n~lyjn^)rX1#;o{pj!5 zbausc5J;!DwE?5sNo+cexvnQGX_KWIlfkG0$?HmSY^4;XY=TrWu7(k^mLC4_Lma}j z$>b47vRq#R)Rsi44>xYb+R{iWn?su`D&9&}S5el6sp)CH@$GNn&{^4YXg5P=PIG!_ zOkK00$d-ald`C$sK*~k@P7n1$1)EKvpJF*EQ5D;SG^MID@^^LMDM`wajZ7|1U6S!M zMmn0kB+?0Txdbks8=KQZu3%*IJG%*;nV{xL^40(TPg=L{BOaT=S*p zW?U{iAAWdRLM*n;oy!fo4indsQkX zJE3ffpfN>UE6tG*sbmC~%Sf$U!Q=K4kA|?C1wvb)SgvDtI2Dw-t*M34&{?FBZ_=7E z+kBX7W;Asj5YQlCateeC6xk;-YIWro)=TXE3p5=|a}7 zY^UnHgdhB93)!p|z1>bpV`Js{7jX3j>(JJ+6v(sv=uTe#+Xnhd(CvU|aGZaHDv$*AOJ~3K~zr?Os0vaN_??~;fWaGFfaa|dW&->cG8jm}1*6H)q>b+Y2TRoE>ioMvg2 z8YLr30mZd-J;7jxv*StV4AZtY!H7*Y4dSa5Ckf1*jm>9asHDN$(T2}tXK3&=@#zujwFJ7llMeqJ+)fvvsiHayxa~HT>?nJu z6iQNzsN$zwR!SR5VvWTT3c^1*bcR&Am%6>3zJ+~|*D*_YZnYv?_Z^{7t+Qgq3e~Wh z+v%gLt&2h`O{3We)iiCh{Y=FZDrl-yGoaTypj;;$it+M`Z)01mozOTA8)-;cv= zB%{@GVBaCe#=`vIo8QCL)PPApLa~^U5H^|u4OH@B7Ib?sx!oLmFU!I0he_x1)C@Il z|6%}N+0NkMJ(P=ie7*)snGAE<0%!&KK}Lm3EL*meBZu}=GZ?u3nrpE;eXN+j3TMH9 zGcQhFU^iM2;Zrda$M4b;H(2ns zcCdcQV&(*VY&~{@-EZ$8A5Bu#+vxbpy$HjtR7%hkaB=czlDaaw)s)IoQu1;cX>8A^ zyJm)_D7EvJo%`rNJxQ1EJi1z1(U$c%EhfSmfn!Usjj%JNghmBwC!kYcVyCPOOy&{1x|?QFx> z(9G7|M|kD$FSBx0H@B=^LvO&#nIRpeT#h3LkKpq;=xLikZ?s}-Zf5S1wKz?4I8f2D z@wN9je)=Rn-+Y$LTgY1I0k%?5+|-kobc$?xj_6$%QGAx&GUMJ01Yu6t?dijq!jhq5l8<7-JhC;T;O zE=z+-?kD+r@=y&c`S*_p{c`P{tAXTeNh-bko4f}(vq_?)K=$QlE6*bhI{CWlx#T^G zqd{X-&mm1L8D`4xS9%k2o|HRTK1Zw5Bd=c?Skjo2uT}r}&vHhT*C4M=ewT-QZaR}z zwVB>(GE1Bv60o@0_>)e zF%^F;F}aemAu`=~Jj(HYvD<_=+<%Jkk+b+3+?*a9B9qIh#*Qc}1Og{r%~UGS?|=Op z{5~Jq#58S9envtOrsZb!wNk8P7!SsI?#1W$%TrI#)aanCtBI2XXVK!o?F^8X)D)Sv zRm#Mtr7jT6WFS+QyfvG_QeT!|wG&r;S|*?Xj)$kY%g zhEJ1A)#*Pb;R8jCjvDoz!|rTg@5Fw#A33BTvC_DTOoTaj_ym$@ldso#?H?Q2 z_{JMJYz7rJkV^_D$w1ktC!CD)i=Y3HJ$o*uo=Rf1ThUvM)G7rfqaFzkGc+7y;P|_o zIen5v^X4g)jZP-vc~Jtk5E>puQ`fS2+g7C%yZcLD=C<4JAXh0UHbIj=K;39ivfo0X zL||?wN8kT|S&cqi4PG=ZnJ(1n-@lh|FvOw52iSkCAB)>Tv0fxsNwWE^t!M=-ZF5kh zMqX5r`LyDYxhxuVt&NNhj;clD`6nMIHZew5M<(T2S$+ioKHRE}h1vx0ITJh+3cA9V8R z=Ie17eGDEQX7c1|lCdaGr;T|%b9n6Ezl+x4MiP`9ZY>^58!OLS$&yPhB&nU`cfb8T zqlZTo3$d|L7>5NVUCs&=+$wA?JtmzAy+MaYZ$W2{;ceAn&bQL#xQue9gdFQ#9tY)W z38St;VS0+QnG`Ywy>QMPdOlTSXpRAovw?wuG3tgiZ*Sd0OzZ%Kyh{CwMPO;Cj!QqW zh+JQtw$4_TufK+($;Ix2r#Q23D>nK5oAos4i>z7VCZ(CjycGe~+_ZqW&qBKFWcwf9 zqFgV~zIZWqy^eG`$F!k@&FshRY^UU^k~%v`G@hi--lP&GB~?-EO;f^DtG9>)oiaJv z8r>W`bC|A>ne(`m>n~Wyq39%bm!0!3yMV>lUc}iGhm_JVRZesH6_@k%uRY4}kpbR% z<#i74*u!Z5 zk|CHR7tRWJaC+@DxvYx&wKsB_jy5k^Yn_0-h0sKlCOPBO^*Ed^+8Xo}G7*BoaW22~ zI-DjO0-u$pd);8A>S|!+(xuoMx^RekR_jDxs?gEgJ`;dr)?v__(Had1zem_biOGnX z>Pujb(`-<-Qz<}&dnbc|dKq+LJE)1BkQt_n-pE8GgwNA}kVwR4t1DD#F~dMAO(qdn z%4b{-Qc?ulTzEYWH2_E^6Vz&D8k+oM&W5=A?l17!&p$xu#A$xV*2s>`I(!H?Ia8`A2Hv99 zRk-zbP7EDoG#XV0X_=*D06v6tOTB zi=o#USg>#*F1?;~XhJ1SyF3A$bvtLbpW(cV=98}!$(BmY?rGYOtsT>CnUkCAX2VUPrPjiUbdX1O4>&baC?N2?E{*THD%iH+YGYWNBXu z`RP2fI@-wRLzFB9GLa-siPBa`lag4L!#avK@#j|^Ho0{>v9gGzx>7N+Hq|;#y`01I~tr&~> zOa)ihY--sg23rs5YDqQ4V(|n?T_fXR3tD}G*EhV+iDN+)_O&r`e2VtIMnd7BY7U^C zMynA(zKul1L{?{|D5DpnaGi`)GiAI611&Zm`zKS1O&gm|P|T)~NzHfu<$G8i7EIbY ziO4kWfKw@OWJp+$=P){P`@QTtv>zdswYSY;w$n|E%Z=OJLMfJ0>Xbwwj>XbMM3ZGQ z6{J{}Bt1PPH9$0y&E-^)D2dRbhLAluUn(I(>WRr9+dtaEu3h_yCDP29wV3s*y1DDV zE6MAc>6^cjcs_yE*TvzT$Jo2+kgCm$1~aEl3{WoEXx8YM+uli6N2B6Ibv9ZtV8EsV zgUiaw8)Ax7bb!T+dueWTkhke@&S|7t)FYh6qRT>FA0d_qt06~=x06()!2aEb2oH^t ziY3vSZS)`9&&sP;Vwy-Qr$0*OyhNS9OTTX5^yf^O)Tcph@RZ zsy+#Bt4aE!9>(hhs<|xTiDC91+{Mz~xqNc!G)9a`trZ|0afIVYD8k;?2M@qc# z(qCBjhdJx+w8xU^twX=S7&DVHU+rzrP?)NXo{I+qGx>HlNu zJ)q^h%5(qU^xn?QnbVJYFP4kkEgKgM222To&~HV=KJQb+%nrt5IERKvcC2*$ zA>6?*?sAxHW`R&hGW(1PS1Dw=JUcbX3y01ahStGnPjTD$Hk@u7&r@1H$gOMFVzXIDr59*7 zY9?Ve+7~m;Rgpd9Qz~h*sQa29WMUrjcvbEi_Ore1F>+*uIT*E(Y%&~ng6;q=hnIzN zlR~{iIN+pN7F)da*=D+UXE{kh{?G1ewAzgRvmnhR4WMn#`TQNWkMY5?bvKOjv@RcX^{ao#xq> zosjlF0(VqvNUGdwNvd)quvY z(WG$pO!Or&G`2SusA;`cXqi87>HE6aFImL+yqA2(BxTfCu-pIdF)4sb5=`MD`gi$3 z>lz8L)A{R{JQnSesZ}baUh&fIusAzUFc{`yHgCLyq}gmVDtLS{RKyfJ?S>HZUNmJY zoi-=hyFfMc_mDqmHaJ42m15Cpw+K3H965ZDl`B^my0SWqg`(sRy_5@`q;7C3l`_V^ z@%}iuoD%H9=E9Xqz1UP;xK6W8E}f%Vu2U}6$mNTyvP;KWr7s$$RJKy7S4;;)i|5kf zGX3#>E>27^JUna+(d6i_o1}$ARA3>;I`6zpMr9i8c2P_$k(gVc)v3`R?W2$>5)DVp z#@@2Dz`#Ji`Oby83f8Wb`T0dE)uu_E5W`Ellw3B=umxV+vzs+**7pkjd+93`=LTh=KCVGtaVG zbliy&xm*UD%V|Q-+RR>@!P4%M%*dC_Z#E6XLqojy z!fum7Q7ac|u2{*`{DSGO4G)j%yH7m92+-X#^hX*dq4J91pDHYOL;~ISCdL)i9|h|K68pr zS0;Z>BYBJW53p(bcGg{cD?z^pS68W5%f=X99qN*znzbnr)m%oY0wFF}k8L@Q66Id9CD>x~L0&z$7rfAk49ZP`kC zNoKko3e`HfOr9OvH#0La&2l2iLbAmdKlPW)H@w8#P6{*2ti5UlxuqHA7nhj4I7K?O zz+Zgf(~Pg*K+Yed<_nVC_ac?KNq)9*HJ4p?wb|q!c;+`8Jb1_e%9`V|*}R#+Me!9q zSc``yZB49-wpF5nCUr6QG!IT4n_%ksL#zu%xooS4-OpB;o?PGu-~TVJziKCr{wU6V z*!}3QNlnaicYPxlY8A597=@`M=PxWWyEsSxpx=aL_(J_GCyO*&Rrc-Q$GTf@CQ)yg zB0(ni@=>(ett4_O&Yqehp0_eJpD-Jlt|GP_Ar>-)%6oWfd8x zgSN}Y=9_nLcHbGw)iRZum%Wxz_V`Z43En5i& zB3P_qoYeWvQ@i=;-~ThtLXED^&iB9h6W;x;CcOjZ`z0svsNptJ#&+*Uy z@B>~s{0jAEnZ?-xYt~Hgho5*8Zrhz?DlPV(U*gvf-%lkmhppQ-3*F@YecZZb9slcN zyJ$3SGNC0W7SHg+!$(LSSmu`NZ{Qt&d^hViY{hSJV(GfDG#%_(aR*nv^={5u;lBHy zWF1}JdGk#sqJCuEWkrHY&XLBcJBSKYft@{Q1*VgX?(r8(+sq z-|!}5dVIFH%%KYxaMa3V(hI~RUWodcvb9li-Fx5l7I@cN=m`4m+BkJGLw3fF-Rh;* z$eC`qys_%F0{;F{1_LW-5kTo^`R)?Q@-k2F{ta(EayQ#Yhv|FsF5YzeCTvbGU2A|w z%Z|q%Va1wt96NE8c;67EQj$=-g>Nv(hWIEW1FI>Vn=zhO-D;Kb@zuQRUGFA6J%cAc zLf|@|NhH2%`wrIhS1C8nQaV$>Y3tHIxSm^YeJxQ(kXo}%xoPF5>vl0(E3@bDAw2F9 z9;cOfd=)qBcs+KDmqOJ>tKsI(JKo4E=T30s{Av6hI|mOP;X6P0KL2|8KeKD+m2^wb zG1#|)(JNOGu~azx%5RvTy1>ejQ6?rQO~XY#9fk#4t{ADO3J-M~CEUs9OXO<~Gsmop z#hCK@xb2Rcx#RcVNF%b6KmU_Ir*!r(mFxwo1A~+br^JK6?X=*mXQ@}yGzz&MNKX^L z%|hd1o^?Zhy5$U3PnD<>PMiGQ@nl$LzDlE)Q5ww-5TPh}m#2<7TP-o4W9oPvGa=94@d${uV-p)0*-$LJ( zwfyvZ_i_I5$0(=giAQ44u%PvBelblb9wXOnFjsLR^(uRF$vAOYe z>ulVymb#_E-1GwBaDXp<>uc;kc#!8FIYesiJl%BKnCdPs7Fn1Ef5(ACDQ7PA#tTd* zXE^cLaZ=M$Mk&4}vqia?;LRVt zm9?QhUVi!s&R^)@9~?Azoq(Ry=BmFiX0Y{t7<58Y^Y=&|vNB>BS zAx{&Jtwko0W~6_Nwd=MqV69>sax&N#q-FC_Dzxc~t{_tL&`xDoIXcWh*u{_+miwF> zZq-;3jWM5`B0S>76}IE@I!IJf1T7It?Hub?4B@nRn4Fqr)s?Ts6|qxI$c)&+jn`en z)jN0a)JyyM_iz7#>B%LA)^6ofAAC36M%y(07UpN^^Ez1<8e^dArQc@5(`m4I^Dtgl zi(B5bi<1)zoIQVmLj77M=2ATO*!@hLzKEsOq)^Jx_OvL_<>KKfHgC9$Mzzkm)o!9b zI{}y2t&-0Bu`YMaHlW?r-d<~n%M?T^mbB+pvq)AMN&!pskvEWOY+RGA7{^=6Ug~2yF5p=EkkdMVT4wd@V8=wu~2|$ zTXLuX<14q)DplCNYLuYYLZewHn@kY#`SG|M#?XG<+F{&|rU~E)c>_d)9>!yFqHRAO zON0TBgQ2LO&a#K4V%e;2N?)>3Fz7`OtNuXltQw^kMDbk`E$$EXO))Lp;$RgJ!~Vjm}1jFjB@pj9Gg7N zv%61n_{AxT`KBRElv)=E_c@6B$6)!)1Io5ppiQKeB!;R!kM zMcn-5pM8mjB}CUX%;p`NxpVUXx4(85Y4;J1?0KGAqhuKBs&}-9mlvxk(j5-Nq?4~| zz~#m6@)C-8=#PX6x-EE}7CPk`u1?kL`Nf&+G!lk|`_NPS*#Gody15E%ON(49N#AIg z=U>`SJm4oBb@R}ZkMqPc&r#`k8NGZPJJ$yIom+O{8y{nGewyV#gG{c%CqMsZL}RNc zcU+8a7~u_9Z{w|Rz60w^$EeIr@$hdR#p$q^HBw+jrQY+n(wwE4^$ znXgtUR_hd-HTp(IXf!%_9H6Alkk>=Y5;RQq`ME_lT)l&cFG9IhrJS#_X~Q^w_BWqn zcCpMq|KNV6&QBO0vYofQg?3p!b1e#`66=Ro;PLt)Xfa-3%L_@??AU}4n+e^j*UDzk zZ+AJ#mx{)iNq~;#1>FlByHYCyKCiAU?T!tF;@EsnoZcXHHTD})nz*pFTl7a__-!sW z4D{0-%2F8_;Y4Z*XDC3&W;3=5opK#Ve~9H&g{k>dJb!FIj`}k1c+cDM4u|nXqgVr8 zoc#gnb{ES{8^4f;ZaBozg=u{8HvUal(YDwrHcG}bP3n)S99LYJuj+VJpBLwAOJ~3K~%6wb%)qjcDtUBo?n&T+x#tNm%LpyhE<1%BqEUPw;5Ra z9QibBK9LmAfMO1Zx$Y)CyH+>%L3O|G$E%>5fGoXNV@tpE@A_Sz*PF|GAefp%!c|^< zpBaY^hXL-y(3AvG_uA=Da75dXg=7(+^OkH=41B$0RIks~>s8QB3@_nH`feSYen#J; z^k$u}IUafj{2rIf9EUKKPOFVQo6aygI&2t5E|1@!sWtg(G@3|erJ^Pn3{jB;K!{nr zfmc$NdYxQ8XHK+GD3}vb|HkJJP%0`?xl1sh&c4JA!Yr~x`@&33O;akCOnR5yA|pC^ zl*oWt9rvO+VEIFt#jjE}7ej-8Y;26hrA6~l2)q*7UoMvnRaKpY<0p=TrAx*}GXdlmQR_DMKU#KOqSd2ZZ9FgX!}d1-CQW<4fqiX1d&m;-m|p0XuMd2T!*85WYtM< zISsg{o2u@*ipdKT=S^`Q42KDYLq?x2#8Rvgfi{Xkwn}%dbd#dYKHDU+X_}21Zm+0| zRf3@)(=(GMZn|GUR#j3ozvWkT-(`tKEjAECMcSl^Sl3%Um0uVx}7{ z8qF4|RE9(0OqP;7VGuv?tW%+Il$Tp}3o z6Y>YlCL)2=oLi@%@zFMb%5pMcAY3?e7T?ybOioAw8#NDrKNv9G4bdkvxtsy-in*LIgs%664SP_} zg1lcuea;oLru)9MFiWY~K#{s)vMBad=}{{DMW?=a@uHD=B^DO2yR61%ARLRD2`M#s zl6EUgh8V%o5mrWB_=86fGtw9Kn{=^LCsjb%nD0)T?p&o_H1X2q>9U#3H2L{t%xJf= zyu56Hz!hUFC{%RcY{;BhV3x(I4!BIBD`p%hp1NMD;B@yorMsVh!65FnVui)IIU_@C zHk>3AMcS=8hZc{Sh4JX=1v5d8kBs3j)p7eYu~fPK`m1=~Cq96y3AytHe3MZ^;V_E} zDRX_rvM`gVtN=xUz0@I)98TxZZkG*O-=S?7j2F+I<O;Oi#`+JG)?_&7Jlj-~aaq zdGO&qTz%8!_^lR7W%+QmIJW-~3)9mEM3ryS)Zugd^t(Uem6!Gz_ChQ&%3?0VzUN;d zb@ntogq}$~6}U51b&jW(VG87q3-7uF%jlgB~lFtys$=XP&2!$dXxHWYFs} z>(Aiu0Hr`$znJmwYIW^oURq%G!km%+Rys{u@|~)*Ormk0)ke_LFcQ@XYZr^%f-j&& zzr#QO!#DWm|Nd)sUUxJ0aG0)3%nvvFUp~u!|JQ%8=b6Wl6@fbvpnoK8qQKpb5}}TZ z@qsXzfe0=~%>W7a-19zeyZJi0jVtlkJv6IL>>i6@h8E{08CiD~)k6=n^NP#)t8aau za5RKlesrR-x7ytB?zeHFSt0uP3mpE>?{n>SSMk9Q{Q+azD>NFoJq|jR1~=aGE;8jT zKmNtfc=Emnn3F) z$NV&$Hr9+^&lg-C++8Qzc5J{NiL!d+O1}M_zvZ94@pV4-;m@!(cAb$0%V$!|?mzg{ zhq%|`;N=q+*!|pLZolL8?AR0{vrysf?|CaDd&BtbA=d0zOSLi2jjy@JQ0ilYK#SRaW@f>lE+2;?ff z_?t)AzAeh@-||l49Urms0oIN67Xy(HckH?zJUe;)+posa=j7@WRUSBbKPz{v zV#DA%V(z#pR-03joy6I7?M~A5GS8nn!GFE@OWyvaH?Y&QUyij7=+j?7AgH&0XR95BwLyLsq`< z4}Z#*@@0nQm0!ph5dSqFxgDRogY`_4m20AGxpE_PD9gd(`7Y@ZFalWB>#<%MJc)pJp1C4EG#V=l6`4kCeJ;sohnj{ z#6hJux;0J-q(LD|xZeWFQ{oid(Ma zhBw|!AU@8EPhZAAedTk+*Z5gKzLjXOO~g@T{=yvBTt3RF*;5odA(kpN=1W#OWe4xs zbv>?`JSWbl4S4VGR*40jEO)#VYE4qfq`6imvD6q&JFv?~%C3;D0ISDW;@Gm1H-7d* zbQaT0Ji4D(o;!ro=4RujA==G4`}e%W>7yrDdC!~Z1g-44Z9R=vf^Id5y^&^g-5Bnm zlc)CYW&fFDY`tL}J7Xc<`=(v|;^)66+4W$vbtuhQ>D25rJ06ZNBr4^CRkpYGfjLE5>!uC>kYF%*4WgZPa!RR zeK9hrB|Lp@+AbJe5vSD5QCv#Ww3LXi9irCfrJ77}YQDxTRU6l?TSsT1&e4NMS+3?O zQz3DBf&M^{VrGUP-v4(DgvNMf?(pLSk}WqDyUhSVCVkK0q}gtXNIq*PnIWgvaRb+9wG+(cVd{a+$~LvrKco)k`a^ z)~n{d+SjXAGw&5EtKK$}LVc%>L16&;Y}GybY?EkcK&b!sZ>p#DezCdKkW{^=W76M$ z`#8nU5>Te|5XklFI^eW9saC{S6iUPRT9jD%- z^V9Xw_sZu>$ErW8>4K$$Wwd{^D|)deL>;8OX9S4Un{6sG60=Ht)WzEFm@hLaO_v<^ zMT^u$6#ye+YSHK#wJKg2H!A|u?KTCI`Gl_Ys?J_fZf;Q1(9P7bQ1VcvRx>wT2doRE z&(&v2&f<2u4Z|oH3Y)G_F`uI$UyxRtpcqdjF`B{#Trd~B(KBk(rdT&p7e&A80vVdB zsBH$7tl^b!MZL-J$e8(@aLdj4$P16$wX8 zAtFO=eUHbdf_LeX!JIrOL;(EiB>-$cM#Gp^!5ga>-W)2V!JX@*W8w&!#rQZjTbBvR5Ze%R`{>xaEa%f|C>U>$(ZM0ZP?I*;?s1!LeYIRN zg`XY@`JRL?#jRScc7{aj&7@67M64u%kePgzxH`*X-+8?hl4--hvwP&L(lTIzKqQS{ z0Xa%15lExwRi6a{Fq=S-(@eo73cCIbUQ6y$^D_8M;;Z2|=fhx#H0 z=o%RwV#y%=>OA(kpJG=^o9*)l$z-${QxWJjJ_dTYMSs;j)1(m&1&oP!G#(?FN*iCD zYN3qATL+mC)>*%59ZSiCS=1_}it&{j7#c7@pqOj&HHt*SXxkAR8e-)YJF(PS40&rj z^V~C>J2y=z5XJ!AE?ciVo2ayQJN`h3L@H^_mo)}7fvel52~!$!fqJ@*iEKeyMVd0Wbh_~SL&iHt ziEm~iwPFBRd3KblWdo#%Chf2~4D+E}tzvQ7OgGQ#c2U(Bbo8{}nnMJ}i(0SEw&tl< z<8=EXAp=$`t<-(VC@~W8@wY$x3hsD-hrhdhWf`S zD}ly1%e2U5(+mx-FtQKHbIMA0a=R%Nvt};nA08#Sw20FpR|~5d<5n!xD^(hurjcUV zyB6A7oNAKLSP6&wXf^8e$NNlVeJC8IPl=<=rin+ECx*;c?aeN!e33}3m&l?7CNXD= z`7&-LaE5)R!Qc>pYIhI~he@QfVAc9yCG1ytM2fy}h}oqDszyH3HBvXtzy19~%!#5u z*iSN@G;>-yk;mh;8N=K8g#}{K0qjpR5;ekQJ3SCU*n4e41t;&C77OU08==eCTMv>vweXQ9!#B3@{A!%p! z%taA?jAufzQsk-|uH}l2SJDvsSsTe}667&=ae+C>(2boyjZN3y%-G76gse*Bb>jEA zDdw{jY4YnAk5W8)jCQ-qJ3sLIjP=E7*{oPyZkmNE1MxUZsdpYb^;cg;WYs9PT8aI;57A03aqVj^ z$348onBC4UT;x-q{0QIr*MDI}cso|VB5Uk8>=taDHo2uGUOsk+-|T&XkACP6S-Ey2 z1+4@50w?zFWh6Gl9k08Sd?`bvkmT`)AEa0>@yXA8luTYiC?#RG!O_L-Nl|l5^XLQa*#jTHtfv{x&OO zYlwH;#0H{Nt z^+E}^Jb)S{a@8_l`^rDEZ_jRm!wx=i?_Y4owL6ert78q3YUkPe{A1kr-JjucUBN$m z`O}OI_;FdiOf46AY5z-XU+reY<}J8g0cPiBc=9*T@#Vk$Ccpc;@8a_xc`rU+7=K@g zbfLiX;R}5GJ74F>)Oliq4L?Bv+ zb_Msm=RMrGa@6NbSfr{YVS*@`1EJLj6W1%VKK>_*WbY3f8z@rOXm32*T2iu z$y3ZsT`@9MD>iJwQj>&e zk$uk}VCz+vv31K@I`s_M)GQA?{VcD!{T2p>!dTj2-0lcUBGvxBWlb|zS?0$-e2hK6 z`VH~nAwK_!KVrk0wRl5fEkMiaFm@o%@7~W#2VUZiH*Dm#x4i~?dnG}86o+aNNinQQkp(#H5nZKh`tnu*=f0Q@fb&E;(^m^jd+iALm1dHhu-~9Lg;n}C2F?%bm(JDrD z-Be$=>@GSMfrKr5(GXkSej^|M$`|mZ8?15%==VoZhKQ$Ab7B8!uGzSOcrbv?(qO4p;Qq(=^T1F3hpCgtShI0}_kHkfyl&TR4EK*2YZI%z zOSzn3VkyNxeDz;BdHg6lwy)=dANU|!)@>sg8>C~kVd=Ih=N37z|1f{_=|3kFh0pxu zA8`H7*VE@2!fLHiZdN#Y>@>IBbSu-177x6%p9jD84btaMQB!ly?ld0I0u;18M%dZ}|tThuzO?{>P}y!maHbMF`KA=I~(ZaYZS z?#I=&k!xh>x*NPQk>QD7KEb&I``C5E)!cRS%_e9d5E-P>Y*TF&SzgTYo4qe_|Ifa~ zw|?+Ryxkb?_DUjytBpL{Zf`L?agKc_&+*rP@kQSM&Mmy>-h1d2wvSrd4sMux_P9F$Zx>dyi`%?O>Ymt$uya&F=*~iH z80Y~O)hc$2)B$0RpPr{vSYYjlpW(rk5FF&du}NCFS+)&386AjH^9DIGG0&j`FZ2A< zkC0hjCYQ@ot*No!V;E_#E#;Qbx!1h$PHwy74XhX%VNHJwr`5?~RUtTarn3po9X-LG zCmv?~>J_~E9d9@5e$5hP)%X~mR-F?QC;9r<|DH`7)^N{z-p_D&1({5Z^OXu0CXW+u z&+~@6Zs+WLopROArhXTmxQpEvb1W@1nLGF^)(>^qdE2#gMla{Z!#NhGCa@-s@|i!m zhx3b7j-M-$FSs~+_!Q~$2bef>h)}k_UH18d^O0+?U59NiWs8|-S+St{lj9vn0@SLu(7m5M2#(@OXYg$*rS z=<4kYatfKhTT)7APT!;q3f^0d;~wnbr0*qnf0&;nDjg84=y7w~xlG&^1DtvZ7PQ5F_v85kTi54o5@8e|$!p-|9V zBbUz0?JosRCVWlX688 zC&|&AreKyFL_q;6_H}MTR&{NZgrgZ#1IAE9y*~3`=^h9vZPv;RL}JuRbwiD9TRPb6 z9V#WsKO@E?Ky>wJte;##lUT*vO95A6^$DqW*zDwU1+x%oqU%_+>FFh&ND`GiNB*9ZSbVS+8EV#u(Gl**s zN%_J-a~%XwYSFHjtE6*jvk?=}H8eQP?A(G$^3wCEXIb6?N}&;`tKT&l=$Uia9OSY& z0}#u1%jI+%7NoTNdIo(SpD{I*SF9#2dD@g~B?D#!ye|B)e%uxt6H^z_4pheFPP@}| z*7Ypt_(PKa<^>{XlGT{jB&C?#UUxyA-D;(5o*%cnbUWo^?@UG}+Nk7Q-r%Ka3?`+(E1!n_=uVC4JSi)0Eef zABW3pq|&2<1I*0LngES%qk$t3>H+PNe9Nz+Z8hNMKs1ixhwJSo*<6zTXq-}|Xr2L$ ze;HHf%9ohKE;rR?g>WclBu8T_Rv9^q7Ww(bc>~bKqY4zM69`7Qc>XMXp+0WD>kj^( z99VS#03ZNKL_t*S@BfMw{wUp+g`Cxfy;kAx{_2Z7{Lo{R>vi(E99QnRnnXH<)7~@o z%;b7e<}yN;++LD-NzXN;H*DO<#f#^RDYR(L;h@&jUUax5G`dfr{xI2cjlt-!VZoL% zDbxLI+b~R5$yy{W3iO33W{QlCjvF?bFW@r%Wa?ULN1z6dHc1*&0X1p50z>Uo^CkS@ z5V>N-q)h2KGo3vvW~~!*ck_mgoSmFvpg+vg+#=nM)qLLZvu9YlegkfY(=;g5sF5v# zo?)?IwT`Iqpm{~Io|0J2eNn6f>u9GIaCKWW+Euc-vWiCkRV?I9GN~kJW5WZa^Leu|8eX}Qd^&GZzI?RkALyfE z@l!4+G^D}cV3c$^gRSmhe03auD8}^kgz>8L?jvZ519tU=FMA~OUx08^pUGIsTAsD=a;eATf|lk z5fg<=fPANkrS72XuyK0&0*M&~@U)CM@0y((Ni8MWv2KU)Fp;lR)!AZkdWl*lL$%pp z{g!ofJPw@Eb(C6F8Z9eM`lDoG?N!Da`3sQ%swI(kK!EJ%J7bx33ba1Q=(~a^5XL^QcWg}G->DEzk@9@fHU1C z5?zJOvV}GyhyJ;J1wr->|xSl|CfNpMq+{F{T`0E!bHJsck zKfdjojAZD<$x}?7zrdE&18mr`#RMWO&CT=TOD~!r3^i2Vd(ZFS^7qlU*=g!IEtGit z!ADqJp5uzk-F*3*|3)nv=gCJOB-A&+P=5@Uv&>U_pXH_JU!j~)&_W%z)4?Bo_OsM{ zL-<^79Nj9X4nN1%%eI;4;pmyu9DeyM*KFIyhP5k*MB*e931()Ouv(PlcMT8S|4WV@ zI!U^iWpH4G8*aRfEn7F6hEk_lWj3+E6Hh$L)cHx%sOz@t?7HzLwr$(Q=;{@wF{6~) z^!zjvlXL8T@g)<8&~0|ux-@Zp)-e!$5){Z14#%JDmzQ|`!`w`U# z+NaBiT6+WS-}QGB@?y2JdFwWAzW!<~)e3v}9cF5A#uV+%TAfILlz1q}ZFk(ks?8hl z`6Jk^9%|(j7fu}^lggTBWaGB0S+QoLY3iourkOc+j-j=y8Ctc8h{wj{xkJ2o;3Y1< z{03I9-GIxbU=Xl~-5@I!OVRxL&fkBVMmA5g)#Yt(c`G}%?7$xiV|Td7l?yB_&GW+E zJ)Ayuf-A1Qg6rP+2Ame9?&TSZL?{+2^bZ9nlor_g?8`j#z{7YfRtCpcarKo~aOJgE zVd=Px1&K`FpL=;9k371^Sd&OqqW!D(B1%P9gHoQq^37Ec+`w1U$Iyt9uM*HkH4Qat2UF)wuuk)Q*G6-cSVe_aPq zO}zU9cjFI^Qm@(wnP7!F7N3PyH^(cl%<`k}-3Qe&Yge!0p7*@NB+a)hPCB(V-FAbM z$1n2ZU;M(@3EcbncQ6tg#8US#FgQZD>mpb0aQyHIe)Pj1k(poOHMg$e%^$cMdpkrt zy23~&Yn`sybN%Qi_i^O8{kWPfBk{`>i>6U)0E|mTzwvaEt%gU5?E;UTyyrb{=1uQ- zE&hPZ7=x#(ZhraDlbk$ogtxrq4t8F#9Y?T_Zq36BdtSlO%5du)mtzyjq-JB^zJuKN zlOOV_d*9FIZL4Wo9n^7gaWX~FWhF8;&Wn2v;j9-+M{Orf~F?Zn{^D|R~r4%UU4C_<#g4rK-Ed;{>{?|W#h3%JZV&y=bPPK{8 zA4U*Ix7pyimyh#r-}(;6UU`W~(92(c?a$eD>+QI05z1{F2VObLkALuEE}nRqdq4d# z-gwvT1bktm0y(mj;s-zc3AM>r_{V?wDmKr6q6_fYYR30D(Ql!?vRaDx3 zcJDh)d+{uHzv)V>&LHAtJh}h4@#8)4+-?&tWXKMZWO}{-S8}MjO?xn17uDpF6bh>l zxMUPY?RKwDzr?!Ieo0u1{{K~g$^b!^-Y1+v5^@m)1UP9v76v1dg@{QSNBS<+HQKWa zThV9frGGO3)Nds%{x$%w?-5XJz_&}`UA>=|S7iH=_jixAr+cjLbY7B83VYG_>St?p zd9OLJ(32~^~@fCX)Yg&OJt3Eq1~S-pJ3U6qx|~|ZuC%H^s8^sB z3q(SF20TROTCJG-S(AQUDGgn9TLZ zK)RGSEIa|Kf*Ca)r7IVxq?e>TjaJLZd1a0)q{Zo0`kIT>a+a~N5i?fBTGQB-P}88+ z%{pN*7u3bDS`C}Yuo9Kj4O@%rzIH-fGpU3Yc>`jnr92lX@=1v~=rwshBq12+0?%2DmU9bNS%Na8Z+) z0|U%ygX=ONtPECb=9%j2j~X-HR$ZPM`o2!jJFieQn-Jmn0<2tapJDL?{UP$jf&ma@ zUg{7-O4rxryfkhF>ex*{Lf0bjs|Ui>lmudY78+(u$RIP5&Y+Hij=xea8a2fwU9j6#vzOa{6Dq&c8 zlEIYnIm7s(r7`5eX6f|2OS&Dxkr0(ilX5A8+u_CO@tWsD&#+giodQzJJ$a~@g~G%& zXPSl4(d&3_x*yIvu8|dnKq>LY898qN4ry{)$G!0D%Hhp)&eyatX9cZ+k_%v zGd~pbH3N+23TfkIrF+(>2{7xL#l9q;L4meTH_=GMuwLCxJN34_y((s*cFNV<)$1PV zJ`D}V$(2m(kuk6>l=Hpkq^2TWl2a=|kKce|T5L=C5*C-sn8vD@%x8;cBha-f_@r*w zo05UZBvt2V5v$4GWyjUmAfVRj=_AoyL1E!M?&1WeB%wD+ay3Q=R~e6rdbMDlMF9s| z%Je^?O3J1dPz3r1?V> zc@?UbHes=AtTrmOB7Nbo34oFHKv^cQgJWciIb%bhCW_5s$L@3+#*wAfA*nRYaF{9i zQ+eEGt;XS?R;{sObd+>HZG0PjfuOM!P;!u%i8>c;`pl+FO|E9kfV5(Ow>x^S-FRJA z+I0&~mxYcbFLn$0T#-osfJso4X}%gv9+%CeoQVx?wRXwKcduh(XndSbwPqNWlBkaj z4jGeqNvxxNapSX6Drx+?Nhg;mH|xZr{U(80(sx~Vm)maGz%ottd)$;N0^zFo#KJ5! z819dgt>n$|$NEAnXY(f6G@V^EAr~I4XYDrSM%kDH2VC-Ji%=+MNhFfS&qRJ#p1uf< zZrenpR~57F^5C-ADb(uZ3l-|dklT;9M`6X{=n@SD4Ew8AEz@X8x~t|u&-^=|Pn)$< zjMSyXJa+8`>gv{7Xmp!2>uol#-^}^x3#{LC1rz5d=z3j*95$AxC(W88|5mR*j6)ks z`7_xqW(|~Kf3;S^;}yu=B)ObG?CG(Qk=~qavr|*bZ`(`2+QMe98K6_P7cDxBj;*HJ z(x$g&WG-&66KlPW$I_-;tC3GEVsTio2+a3|Oj@qr;lS1?8L&E?78BHGisovgL!hsp zcHV=<>BH`kS$;1dC6`MY7Nyl`r&$xDz{SvtQ5F&^b^V;SJ~ zv`8$@;BvT48k@#^G~Q1>nJ}K2)n*N+-A7Q~omMw}As?yqvT42)3nf;q8s|%2`WPeQ z>+rM($mOQUH_CkTU%toO)HGg)r^l8v4cRWCNU-P4VpS+a8?U5Qp&lklg4P98xerK%S)jExSlxUhiJVmBd4kx<0!XGh0Ynf1$r17)&iFC$}r`QK=- z<*=$T>N0b!*XK7Z^h&8}#z-=iV0?6d^*3zcqhJ0KiIeB}>G%JW*|QhOrSfD-1;ch% zQmUS1NuJf{QsJa|P~$>tto9N%n?US}@r#v=N9?Y?SQx+0M>bug*(p=4Namc>EI?KPHu*8NU@^U5Km&pFDn7La3k;Dzlst3FwW48CD@4H&@X)O^sn^9! z5hJ`|nEK^Hjz+PG#cd&5$P)>MDdpAd4P$ew0CZ9>mJMrBiMzT^lF{k_O% zRijjHm^Dd^c_r*xymm&$22Hb3K#D9aYQ-Y0dV^A<%pZR4oov{C9jn*e%+l-}o#qlx z?>ow~5A4R(Z8A4ILqqd|%R#N&VCDD zqS)1JtVu!BHVpy0Q)-a30qcTpkCFLytulEJ&~8~sWtF(>A=V!^b`nbV?N(}r39Oy9 z8W~!v9g^BQyoRu#g4b$kGdS3f-Q8!x03^TCc<^|g#`C#ZYhp8Au`OfU;`Pa5q-L5= z0=1NaJ2gFLo@cFzTK}}S_RI9V+ck5OLM&ttlSyZ>+O2rKcA}9ePP-pp*g-|WEOz6q zdFu2jywM;fd2-cjrtvHlipycgqPf(e%F1DCom#6-+ukusAUzXKo5Qefs$Hm-8aQlL zrluy%o~5k^EVm|QLbl+56PF;X6zWGbg9%zxYa}ns+Nk;sx)ZSvoxADJnj&oScqJzL}GCX zpU+01Pd?c;BOz^C?R4uU0+D`7nWCvbf&mYaK0m(D0JC#T$b2sxbkN0tHxebixJ)jU zrdqF1$`^Zy^u|lM$IDTjCJ@E|-@w?aL1M8e9#;^z)oH->u;0nW`6U*Y=W#kMB$Z6< zu(4s&7NUI-(~y#_O0`gAdTx@wz9`$bZNTgF)3J6)mx@fBo<<&!V`IZ6fUef482P=W zZKvU|a_0DHa?8tXT0O-0s$sBuDK;D&J$j6>6+;ZhhE3pzhyo%8%}l46ot&guPokvR z{?Sp>z;xL?96EA}QZ~ifwQ<(0-(+Ok$IhN)a#Gee4T^=FQKkr-(LEGiAdp-4Qsf`i zA!-zg@KMMK+pwCkDf~lRDgCaRN_!>!S$jlbG^z#FB-HzbgBTF%lEhJSiGVIcs<8G* zCi;IfhPvIJ?{Y_<-ZP)qn9@tfqVF+3F9p%1WJnQH%;)R-<%&@Q&W9>(>CjFqmCxJ^%LpM|Ow!AVdhMA?y9S(;~ z(JR)FMGtSaVvsx))TWR$zCArkoGCz+sMl_qjjv8n2Q1J^g|ik_feUtrlVYiCZl-4Y z-i@?~oPp2lG97}|33E7;a zc5M^IErhlE|1#nQ>76}RW!Xiw`f?(r;!3&Iq?O@CDAWN;GrS4XBS9i^4p69!s{hflG zwOZ<~I_LcV|9$)0!@J+Tw=shtxmvS{A|d)%dB=(+QyPx@ipHXfMv@xS z+Y_V)HQz`*)gx1JV@i;DXr)}M{Wqh#kPwZzFxrn8D?a{|m-$Y+d=LRm#96tR*W zW8)#P9;R*V*#O}|e{AE>0f+#(V6*^qP@+fwHdt94)?T}B6VPa6PUZ%qT|kL>05D_5 ztO0OBA%{Xf5e(2jC>jch0BbZD8^GfWGC?O`y{2H;MVSu48UWh(2@YqC_iPj^Lj(Y@ z9Pr8^g<*!#g@(x_C=4PX4a^&w!n1fVQDFMPx&x3Q&}U*2rLZuVVu^?YfGK|)QQS!P z3hr?z6eY|%fMO0X;2G;ce>Y=4*{E6QtTd{pzg@(@uvW8aXCxR58?e#pIF=;+=B%&U zpl@t997?8=Hk)0`X27zd-;Fg(CR^AgP-=j$sN2KA;NJb}j|SE}u#nHITs~Afk+h(^ z+iF;OE`~P}jcBe|vNa=E!=RwM2zbX6N}nAI3-%ET5)h4moqGb@WDTv0A50z^?1%lv zrh?JfZno7z&R}JYps`asK2|K_dPNlrIRl*tnAyX2uWPbN)(wyi_LohAWF&5gGFaL5 z65)uL00}Szc&^D*nRLb+4EnQ~Yr_7{8qagzmTjSocrdg*js`=P92k*J@OljdM!$4= zZIiEhy>8`IFh2VOhB?FxC?g3#V^y3!dh89y6EjAgR>Lw77TGaVnFc5pYj) zv7*wEh#r3I9^HJ~tt!lKC{iP{@-Z-TbH{7JT)ioVoKc&UBb)DI`N#FR|H>}k9 z@Nm!c4p|h~H0XA+K?DHo0l+_ODs(%=mep#-_7bL)m8S*+2Ds7Jsn_jbNiExhU9w(y zT?V3z44}ig#!zB+ut{WgNHV}uBl8Ud5S`HLwCz1pn2P~Fp0k4fsFg0#KM|*3&>bog zOSl0m1Ysf9M+Wc`)Ju(8bp-soSXP$_ro9pth~e*IzS0 z3$T|Gy>6%DSaY-H%%)eE)<>w!J@)#RbfDB#5*qENEP?c3)KoGN)_CI8Xn>PS3H=e9cwlAe+#f?j*mnYS%Nlx}-sKr~ z_x2TMLajA7C5RhZj|J`#y~<~>(~fcN*r~_|=K|0lUCJbA9HvICZo1h4Vq`(xcxeJf z`Z=`$QD#gM9A}uXl%Y4<4GXO3iBYSR?R>*BJ}mERe}CT^qyiq}J78Z}_ubuX8y-VI z20M++IgB>|a(cSa_?!R>XR|*ZseFjcd$oDxs_pw^IyRs$LGouhF=sSE%ZN@#wQAKs zY)XJ(c=9>ZEzOqo#M(PJuyYPelff|bI3eK?BzW(&RjpJk`Ne);etpx<3x16alpsME z2xxm}+x#WisE3t9vn{X?vAYCD$RR<}we4%xTk-O1uP7Yysl2mgQ@SZ@#XjWnbC%2` z8A^FMjAv{XK9|$s-ZgoB440UizT^7S(OC6LMTxLq z&C0$!{iZsVeNBg58`@JoI79^OdDtgd!C~)M{Z>X* zuz>*hH_m9mM)z9ZO%4J{&t|QvfM=*=z@r#t@7T{+)WFhubytDl#IpXBNR#Zr#>A5` zlP^FG5@AcrE2`G(<{JYB2mD^`T-!ET&gF6{mFD&C@A-h@;k@bPcqVNi(2M6^(2Fm; zY?H9i@i^&WO8Wyr^G$oLhD`#*XKXZ@#vG-86M!&a4jF8c%azKZF}m>|SStcyT7bZ! zCwc11fBlLWK(?bqDq-dK0jAE4=&={HWEc7Yp9WAMMoW%^z1doMY-*p+Ki2zy;3=KD zA*mO?^)3C~Up%dY{j$j?J`ODfsQ6%w@M*F8d>;V|K@m2C|MQ%jE%YqU%9-G-a`Pl} zV4~wg@^6}K)8}?H8CkZz)oQ3*-nH^b>@TcQbQBl6J0Nv&0!X1mB47!~ew2!;+^}2Yw6w1ZUmvcS%Q^ zaL)wy;aKTJN>?^FP4~g*qYVkq^5Z}9lR9 ziF%(U(E;E04&5a1YI$EhrsmQscQ`Oz4NwRm$upo=4i643p^6Rajs_-!Jy>6{ggi_w zq<^h3d;^y7M>o(;g(++Md&pGJY(5jmY;0y~M1z|?tw4_Nb*6V@9o8?;rcyK=8u zqh{}`Rcht~RBILUsp`$TG2S6rwDBXSG_H0nD;!~h=H4?O#OJfX9v=!@gzd&JCkDkQ z1SsHqk#xO&b=z9muqW&h?OlR_kc!1Qv%e(8sFq+|Y87I;j_Tcx#m_X-2Q+LqyQwojD!3As3^;NR`Tg>1A)g4P>DYDt>~2fCTo$O{`PI zv4YsA0ZD0?(B6Pj@tlEHgBDc`w8^Nr%9%h&lio<(CQbkA*5{guc(CdLqp-oqc`B9B zWXQS=OiyoJ-c&lCQe}T%9VXxQNt`DvVY#(=MYY325vO>727N(Y+uT&I-Ld39NpJeG zVa(01#xL;&%;sbFsZ=12rAK(bJ66ye)~HKqY|C0bln)OKSc`2rSkGlNLY+4 zrlDmJXTaz2D$O|{d2nS*ySw|A(4prOIK}nryGq6r>UVlJ=x%R&$66I=M6a@vMxLCtBmNSm>uxCeY+bi)z53#@=R-2CJjSY`U!Do^-+ z=R3Oi8gO=E-)|rnrHNiQxC=#%KE`Jz4kNbacYH5rf>@OX_BLS>iYMsJ#5JfVhDCVL ziCmj~rY4X3B0k5qkm$GAF`p_-F~p_$qA68+=s@4+|70phFjEBh3V;gL=)UcS`O603ZNKL_t(~ zQH8u=YpBfwV?>V-(|@{7&v%~5OMRdmvH)(hCyn@NNzV-aeO2p|E z7S!QEUCB(`98^mvs?r){qQ1KKlWHW~_>vox2_+o;@ntFDceR` zzUXXjN*re~<{BhcD>YkV3%Y=aY?p2C$1q$zG1-3o-$t24D~2o9*RC<7%Ox=0WSe&elDwayKm)E0K#N4aB%z{ zpDEcMOePqYY&_-9Q>oAO#Q52mIfkq^28I7qdg<26WexZlYwj2(6LWsp+eAFBR;zFK z4N#9<5bOYW(?gGd*3LoG1%JpC`;0!rctAa8eOXt4ZN47|$42DN*nj8?0K^X2`Buwh zm;WHkBq9h@P2o>C&M5b(=^lc1#x5I(JnAdt$ElzOUY1St29RBku}V^joEr6t7MAi_ zSYB2tw_paDGT=eCt755WB?oI8s|M)gvL$`%+3#2hHgPyk9Y&0`$C+on2$R_6}G(H^$t0K-pOwTeh4)pKFp)19ap$xdzRg z5gqJSxq4_iKN5)>n1WNm{b08U$haRq)9=$$1-6W1bOLNgDP6|K!44f;y2kFEL;{AM zeql7;U_b_pTAbu5nY>w9H;xN3M_^}iGXV_tnoVV0aMrnJ))^gz(_jFs$MuEeJ=`DP z0k91)23Tl%WrVYa!$@C1n2oOCD8NF{J2sYCA{A55*cdU>Y5ieWxqL=2K5$%doB+y5 zT*XrNrNw+1fF%KHDxEaFz%$Zrfj$@P6K4iSD(eX7#a?4yEJ$uOZCDCA2^|a221~+~ zQl|}=;kvHpCoGkbB}dpBbTrvY{2=rp>&wf&C*anXGs$|BwM5SluyE%2InNIuh@Iv$ z$P?f=Is>_4Kn354Zn5(5K-hlH5)Fn2;zeppBLj^1kk z$}n{C8)z?pPQ?Er2|$o)Nk`6Yz?Iyyb_AK|X7&dMmbMo-_vjNqk>PAgG~fz}M!>ISly&i4{D;)MIHxihT-cyUdt0bqK(er40-lgZrl zr`_M*a{x%IZTD`ahA_s50JrXZWm0hiDJ@tSjqLjL5KJdCv!q?!f_D#W!-I-ywT6|Y zp|7#c_$=5u&IfDCzgc?{!RQr!#{IbpiGgF*PwAB4#;g~a;$3eV=$Of7t(pMv8D9ye z0Ey*JXJA3IO(2}mcs^>$$4EG)N)^x}X4e6Tgb_^7Ao`_-lU@~9bK2fKkcJMNruj9p zj6HHz+LqCRD`eqF_W&%=_Jp!AWEuc?K!?A*h!03ootM3rB%qy9CYZ(zup>!CkT*ZS zU~voU%D^d-?bmm9jDdr!5=UIUa@7VsStUmxV7ih7E5V}e^;9-(nISy@wk_)!8xaW+ zefCkHv*$0X&4`QPo;4?QCCHEXcruko6`uhB57FED?vlMBwc=)*$f) z!j0V~@sGYkYG9!b?eDJqoxL>M>hqY+=KSIh0Z8$JkbzHx&EtK<9DsA!FWB0ZO2up; z`-KOO-;Z5mzs&bw{YUs~4oKy!Tc2O5lf2I7FdG^4o9!lMVGl{ZVn5htbTs?K&oZf$ zwzsa?dr89551N1-xkShEJe)iBn79DF&wY~=Kz9QEbDr@9V8Ju2$y$2MlJkIcygw05 zIM4zXPrq+^4&UDrImQHxng2j*1I`y`4x2+fjc*Ca5vEG3-?z2mIY^cgGjlfSL&cX?5B?rIH!Jq{erJJxmX1`hX6)^mmeaGuF}2d?AmWGXSYlzF>QU zZ;Za&KiD^4X)a$dxucB)-!)$<38p&9CiFYZZ-@mXm>DKVEY%;vcJkXZqTj#*sC;Tx zt26(5Y&wP#WBf523N@2mY$1M8tyZ-j%sdB2S;faC-o#JAHw5fPzr*gtf59eT zujy;fUg5tWFUS?LWF!K=V?((ZhQ!RoV#_189I|$F=D04OR>DWf$7V`X?o>u?VX`cm! zA;qRZ+v6a!d2BKdWNeZ_-x?KjqxK-O;6ok4X=f)Ls7!ePsDVMuYxSn|H6Z*jWzEA(`-4E-} zKJ%A~$J4sD%k;#UO+usp6pfR+Od0^3>$S~sfg0YdRgBfdq4NcNcAyA4P=Yu)Aon~w z6AznYjbi1GiYSCFa|*%nYV~#Cozo}H&Fga%&&2OqT|O-=&`rIM?dv}59z6= z9@MkXeO;T^wr$N3giJ1N_m_puHA8dBI$&6$(Ucv^dbMVX4{!-Ug^`1l=^@wvkljH? z*<41We$SlBv79qM=sAa$@>dioju&hM+cU3>IRcv~5Tu_A^cs>s#M= zMxH5a9kPbQ1pZ`wkQIL@B1X!tmgYsaGnLGm{874eeS62KxPUv9E8-loR%F_dOO!F0 zpl~c~3^{%mBLE#wtyc|(#2hIauJ^hozhn*oPLP{OB<37MIR+8{7{Cy6gM6ZhdEtoj zoGuvm$sZ25Cb!mC!7nB~2E%ZdU3sg!M+}#13dnaL-<$)624J)aP65z3{D7KA$_t}_ z6UX!6#1qs2`k=JQjG5C!vpz3bQ`kT>#)s|3Ic-}o0-#Oi5_XU&4!{GSPxV&I#^&Gsa!oD&qa1<{T%V!!i2`E{%j6eWtC7dn9;i$Ij;oD9dtG^EEH zLly|w(Q&~L#?PxVbH8V0yBG@?2An61FM5D-C$7bQ@;i(O*+2jXb1Mk; z$?o?0mYFbyA*HRIjs?@apPF{cbO<5|gcvoAg9ca>BBMSWSbs7Yhfty^E3LO%j!jFi zJFi#Oc2(g-Si`RM^H-g$GB+?784K>>#Y>iqc=_d*ZPi~o|BA^+I-RgmI7(sxQqZLU z$jA*K7dnnJ1!BY6@|C;?hl@WTj{u+OG@g;5m2wCJ#R$?2D5Ufq0~@qbA=c|ikF#%l z4|2@wNVgvuM~ocTqeYwcuyyRL%gO2~kEyHgDun59T(5VVFGZbxslM3{!~&9n2r}9{`1cwe*Sf zx(Pm9mn=Q!1Lv2$A^XO2aAPJX=-QdH!oG9A{N8*A`YiJIA;AXE8!&bRI*1G+a>zZQ zM>xx@0gM*YbM3aXQ8V|Q023V#vw$Fke}mW(#PR(+H>KR1O9EeXIG`7$YmQ0SwICS4 zm-RIuec<|JAe*cmftdkfA%KgvF*RT>yk3e$tIswQLfLkgR?VkAzc9Y>dBo6^k*=L@QHV&LY z=MRL;{t_^;Ht22uB(BZ-@6HP?H3A0Ou%5^Rd&!!) zAj5$@rblK&M@TGELdSCec5WO$ZoV!yj8I~nykUc}z5LDKl7yoCi(P#YO@0?}+Zs*1rQk)gX>gU=d|M1=M z1$ZvX%!nV5ZvtXKD`N`*k`EnV%vooB03)LDm@zE@>e!P+GGS~r?hXIS%4Ip<4E`AQ zt@jPrS#Kft(lU@xg=S^IUs3`oyV5&Z(hhVJ_+k% zzA974NCJ(9=Hqc+Bnn_B@XUZkJU2isvI3yVxxf#_=Y^q1n~P*Du9GJ=TtGjb>acuh zvCP`qn%d2d1=I9!wM6e!YSk&9Oj<8v^br&23z>|qH~%L2O|on>>?)tj+BzZU48mbs z=?{kQPT5tp#`NuhF@e})n9qO)=rzD3m%MS65@v%VA?uBW4wxs zd>GCKOi27S)&K>APll|*86kmU?Qv=~M^Ny2tuHC}3u%G9_&c`{Nm899{`m|x00q`&(?VQKWC*qtC=Wwr_d(J#M z936!3feaGgVmASi_+I|b`T@!k>%*`?wy=jJ;gM(TC{;lCH|znj%NYf5VXcpRBi6LE11aXGvh0(~lr(Fx> z{d}GZA;2Jj6_yN{11N&6)u`8O&9UwH&YUBX^9*vMCu}T6seQ+iB<0GX4ZjOe3FKuh zd^XvUSRH2k)cj2tpFK;kqDL9@1ehC-1ue$H-@x`(DrNJJVbB6@L2iLL%~{XVih$DC zncYXPa1HhiUzqb?`iXdw_D{XO-6P30>@d%XUg3rQ1mGgx=kvTDzn(RO0Y*G$cnxhK z3`BJxAZzb@BR3?3-vMYMFI=1R#eS1`!$&;&8SxxGJ3r$@qPsaSY$Dg>`WBb`sK)GhOIg@O}3{meI&&K1IGd7Ghc<;ICgd7$gf{n2UqyC)0ARe=u zvm2f{Y4$$Gl*VFatnYvLP5QwPevjV%j=S{T-*vy%=YsNe4|M+Gmc~As@WHBZjbm}b zP#A0m3wN}6d_Mw$(%_(y4Q3G&siYljrXW7{_#HaAQPAZpFY60m{+bTPU!W^myPv?6Hd7xWmMGO;@~<( zN=c2+4m1o2ChdWoGE%)!Z<{mK?@yFX&MB2%(Hr0LCf#($qK3Yj{`_;FRlrA9f~Ib+ znH+0PZx%qFMy+Z6sxoPi`I=LHfHoYRsm!rO(T=*V1d7Z9Wf;(QZ4!cyX4X;7%`K`@ zZD<4wr$3U%A2Ql9ndU+vZ$>X)C|Fi`u29tc@tgIAM<3V2?|49K^AUaKGoMqhgJayc z{suIP4*6Z+P*`8moe$olrBG1&lPv?e?+hqI#UXS(jwpjA8$>n_`9pqC z5I7q+g_H}R>@Xkz9^Ez|iz_{&WHOeBtJfWvp~Hd13FE*5rqYCw??etc2PkZu7aSan z67py-7)X?a(HPwt?6u7)0{us!;QZ4Qg^U9r7t_iJ%+^*{6bgB)U&35IXWz->G@LC! zr{es)2BWbio|wGDsRG`iDR<-mhlmm!j2=pvpe&WiC=w4FSb&o=rs*L_KP-%Cz$P7b zJ1zCvEz4dNizN%N;_-+X0u&(12&aWCB(!{jF3QC2df=SC_x(Sl+wVQA%U51itKPPr z8|=$?K<_dd#1G{UMwH3tZPHo53*t|Mc&_KbZ1x3^g*62P1OhR7EGbh1j+|jX0yNl9 zv$%AS12mkKS7Hp20S*Ow!+j9Ut*xEVTxwaz=1bZyU$-FyIQh#f$Bnr|*~t7nj#Szl ze#$5K8nP)EG88oT0kB;vmW*l19$S`%?8q!o1`uIyxjy&go%wjk2KU8%qq|_oq2I7F z1S=T-L4T@Zs-SqpZ_U^fk%X-=Oo&dqrPCX$8V`F~URkofR9t6(JdXoPM8mqiw`J24 z535z1%!x~W)L*VqZ<&ts_&ip2KoAR{iVo#_j*JbZ8n(6sX!K>9jW>1~zOl)y0kdY9 zXxKg!y~)r+uzh)vwWf64i$SMEjtn`^%DT)PBNtRTpanV(P8oX-TZVNqnSmVxqsr$q zz1XmU0zoT<;^&EE(u^(V*?pGjFaVD(Ge&@jqs;kZ56SeCv4x35MvuV7Ls@0tF*pFw zFy6=*&J|!O_W~fsnKgjMCf*)pr(F90_MWpbH1-P3$K&R_knEszz=?w!360YMAaMkc z;Fxj^>>TpXKA0Yw+1sN)5{HwQ*+WJ!(^rs*Iu15P$7k$9fL!E~>^3YY+jrB)ZukxN!XHZ_&E(py6%1Jb z&a-k(_#EqwjG*K3AStyW;N~8lJCBnFIY8Q_orAS-2PUK7j@Igq_6Z;-7I2VCvCdknc4=YUX%y&-|V}#(^i0 z<3&jmGLORw$d3)@8pix3quXg|XJ^OmoBlpzv;jxi4-!epHNKn44W+6x`ElPtuTIws zjMflMcK$vI1S77b&Rq+YY2|O!)HU0ws=FD2})>+1%0FLA%X9Zu9J%GWG$>uCrG&!(< zV4#uN(4egwfE8>88ibQ%uo4gtpe+3|$Bt!3|D!f71{wykvDV0`d%@~;x{h-S_YlG@f7>I!#bG>LrFeY0qJMX6Z7!E~0S%y+!?*_E-aHY$v zeVc%nY6fIA6f{OAdx5>8$1luwKs)4sC*ip)aGaF@5x8SNG4uF+tUYh!{F_an+|NK4 z7`V<(;dkLTIEG?CuV1;MIt|K=-GT2Lw8{7Qg4g$Uw6$~H00a8`(!UZw1|}NUrpysw z3nmRoT+Zg)Twe4mgt^Q;p##vh=pGm)T$@A_Egbk6{x%ISNkmpDCHIivhgClo`h~$U zfTX;TY03$izRXjjyRilMSonk{BLSYB=XN^(NHzc~VdJ6?&{^0P^zwkl+BV20_K&e1 z%$P#1D0;l{UKrun2&xgrTSG!mi zJp^ci9zrhx`f_%UKnSWmxLY z$j|#&L;NSI!H^4N9L6yE%H&`MfbbpY97;*O9@k0+un%7afDBzgl9%V;n%p~#E!MKv z>6tEuh0bS)CFqUK!9z#1n)K5Qm~YIr17Z3-VJEv9k2)ImTk5o`){}EE>rfUm_m@pImfkBqM3=WZ|% z?{gp**Z9Y{cvb<#&p6M-x~w^|F2VsYhCW1}A-g2!x$e>V;@OW9X8av_h3&?@yYn=$ zgc!0&LV)+!dd>VDu8X{3Z?NYE1foMTvGhl4m5L#*eve<_K*+!Z8kEOEDTV7h+Pe0N zuI|*eyH_)?1f_!VB}0o6TirOLa5S&d;xQGnd0U`-A!CAicvvxqiCR!@0E5M-SbziT z(KB&1`xZLPZk&=4%VdN>6mfptm`SpOtyWX{LQadvj%#gYL8mv?Bu4308#*2t>94=| zZN=smwZDHTDs?#EI76VFEGRD)gGFQG*g&#Fd@lz9sw?+cm@8@H%-uSB`-bkj=d^z1 z|Nc#N+F^x)F*90c?tFtDd;dF?p36vsfHf0@S(J`PZTd*AP*5tHu}q!O6^%0OoL8vw zOuIR@P&CF%Z!psO`YF-04zMPb%V_PyDW&3Z>pub2h^B)$D;#`4JaZ-|BOPBpqg3{0 zJ@C+3EuIeRBOm>Dx_W6>L4U+DS2RUmSy@vo5LRKXXuVWUow(8JhoM1cvyRb)kq8DN z*7SX0alsULK3!0d9wPKkK$!$0I<~y3fzPAm8*kFoOXJ(9GUVq*4i+@^oVT26;RY zn^-d%qsT^PAfQk}j~Wrcx2RykWoiu{O1jln}%;gpa) zaHxCVfKUP`0w0`g9I$>5ux6@8vuc6xXymbHAn?P$b3gPJh{eNJZhQYd_vv5!%>1hKdq0vf~Y#PzLi11}FDqK*Fq%V6# z^AogwM<`Q{B0v%oN$KgfaqOhdp1n^`y!-oRiGt_Zkpq-J<;j2mzxc}^(@%cjLwfW5cj?bQ^*=S74wYMo zDH!hS@Sv&D$g4)39x5$kNZ{lEUK+STPZtJ#&yL~5 zeX!TOkSFXo#+&Q&Z;UiA45175DdP?sW0l@Q%g0wNgNY+dFodm%M`I=%oKuV}nL~mW zo&~!>87c-ECy+B7^!rTC>9qks!u1Je=wZly@LtP&jiJU-)`v5M14+Qd zGXTW%a?kI6&e`U?keuOq*a>Vt-^(Q3KFzSbVdcUx?Kdk{4jeO}Y+{U0WEnt&^M%f% z!96Tt2n-|*2E)Du<78jSpc6v3Sg;~j?i<>fEyfW=ZINw z3y^By_SE#8JsAHn#tuU{23B53mX^KY3=s&MKAH{1A$Y>JaPE0_SN`c(CzRdbu+wwY z%31>f>%l?5fzC!=a8{4x4#3$M6te`0$>l7-#bM;0>Bq?bxgOs`;12tn-*fIQkTPxW zWCXcJH?SATBr-rEg+vxV=X0DD_8A!fpux|94aIfPaeS7ugM-ZrIb^*1QAsf8l{0O7 zAEV_0eg6g~2b2inU;=^?7=t5)qY?A5(eXS7d(SnDxx~34X*LTW`5Axb4>HEN#CGw1 zo*%#&Rsr{b%yE7Qq&a)|DEMZ`wb{s784ADSJYif}4}c&_%ji3W{dJ5IS4K!cg#O1d z#~WmS*%w|sBWq|3JDT8|K5^v}_@1m803?74--A!!oNd3AhTuOoV9L(QXt_rMHvl5~ zD01$wH30AgWR$i?!Y=Uxhy{Sded7o4f|YhyshLe8X~6Yhiy(WH4q{t-l%g6FuVZV6 zjmB;uhwQuccC@w-FnMPHHcUiVg|HK-9_TR?BxNPPlzB zIKFReJravF0%xd=16^ESQ2Ljlk4%<)^aOQ`YO@uyWE1Poz8|eW&&=Q1PZ9%wtehX` zFE~~WdJFwQf`=dq{YV)ReiHzrwJZP>4>O6~Z$L3R7TH`{TC#pYfCTI{AS{Vy*39NP_2C~drGa%z6_jw_|=sd2& z%dwV8?mCtZeGM@qIkPwg?lI!MUL?XsIOlQ-kqYYTZ=FBQ307~dx91OsU zg5~cBBf+3o$#_%~lB4*F?XH`8J_Oid@^{3@0|1(UjYddkUQz(N%zn7C)j^N`VBUWO zlmMpCNyH`WAF_3{p2U8DX2>ys5d%C}Q~WpdDtpX}WCt$*F<$OFz&gBkk6<8H&T9!L z$L7TkVlBBAa*X_f<& z0MxX@bI=3q5Ap*GnzN0);F&lNN4A2W9sRMyHzl2>8%U1R>+hccRBRV(WO&akxx%^f z&871njYfi2LrK$Ok48HG!t;9mO4EH znHrgV0&)5XVDMom@EMp0C@&rmA*S~E#n-m<>^Cnezj&(>fFFZ>eg2tOb?Mr5qb#z> z93~7J3t~>tER*C8G2?3~bL=aXqK{C^j1SF1DZzZ(``)XK(`)iioBG|~{eA6kw*`yg z-2Hd!_WN(vnX{*L$Jv|Y>5a6peoEOwO37$n9UA_6{aReh>%_*IVv&?i-FSnF^K<4L z+;YpUqSP;)iL0`=tHSE4;!7)9I(?Huv6Mogs2T4w>uZ{W8tn~Q(_W@h?eFgz69=Fp z8V+gd_vlCegJgHD5qi`~3jId&6ULHmow;ZLDHJb)Py8YaJ`tT=yNsCJ-RNbXy z!mAtaxLe66hBTmZwQSCJrAkkOmN{to#S{Ae5B{VUlTB4ym-OHN%OA@(^jaC30Si8W zxHYBn%i2Dy>tO$yLf)>jNsnGX+}0QW=4mfU`;Sc;wmR_bL#HC|j7*@zqt6cN7JE z9t?n)F;#HbP@p(B*3g~$cNkOQurbS!U9v4^3<5#RJkA$OTAVLffY1G`uC5ww|Jc%! zIXjfPGE{z|MlM~ zo=h8u2W5$(AGd$$T;Evkntukpe%+Ukf0id2y7vO7K}cQ z9>AATd#$e+_c*nT7g0I%Vwhk!xO@kWzSuHU$GT?*wG5+vKNMEa94QVsHui2ScM`=Sl_r{6~IK-~E=S^oHBc>f7J`mTHZ< z(UIvtVrvr&n!`arb5tsd^Fp?s`@zujoEEfG7D49JGu4UJb-n+6-=oEo^Qv}R`qnqT zsb+VimBlsv^t*pV-~XNu>h4G0Y$Mg%l|8#IM$8CrWaR(?m|jGADT7C1Q7hx7spg1) zW=IBbWS|hf4Th0&7K{syCPs;KK?y0w(*>$z3>^&`J&a5f*x4Bf`t3RRc`6>%$(5{b zK3!6&kWoAm()PCNBSa>P`{ackKrYcQ+yTykWff=CcY+}A)B%JTP=Z^i<@9SheddgQ z_xFBBPrdW4#ss}~{hAqe-bX($oHjre_8lOF^U2SljAOSPIO5JN zhC#<{34x%oOg(PO3==Oow*>qKq~qZGVMO+z6;ON8k1ioBnhC`ZdQQ z^8%XrO}Deg=oHowfQ9cs_ppY58b@WMtQAfXP89Fw_t-fcDjXxuHGc@$=;?&RLJ1B4 z1lJ&btW+yj#>aON00biu-F?S>dg`%9wB6WOtwv8unx?z*TdqTyJbk5*6V46ijft-4 zPWBCl3P+xwb5DGp7wdvUipPx%0m9I0guNlDKrqHV@I1T^@XYShda}6h=6CekVQol$ zV7JJ4^Dva5u{Jb-W?v}LMDAH5rV8Vu0QeB>Sir;D&RDpt6PbSGf>J3QdVa=!^1?X; zga)j&Y-Ou$fDqqFz>K_e9@6Q|46vcBMApWjMzd*{!myX76UWT*`Ay~sLX62ZOMn0n z5j3!tR@U8f>q?N~vhGaPb^TkAUB1uyP|f;(aj&-Kl(P+C2)KS7>^TfKoNo4k@>v+Y z_-U*=tSdWbQ;#*Xrq31u5Fid9FU)xtB;vP4O&%?X8}Q62(H;Rg<;A_DZWA)Q(x5>SFY;9i(EX%0MW z=v>a)J#fYf*_?*`q4g%S;Kf6^Y~R2J)`;^0I|%*d_6gg=#3>SbZhU(b0HHhU;|7=n z5IW1CBWIMU95K)m@t6fB0A+kPYs~ckwg6C)@uc}KG>iri0hFM*ua(sMNL+Rdh=={n zd106lXNSF`EC`SUx#gaDc=V$Ik+X)voIwI3&IW(b+x(0*;>F)N+je#gtaQ2^po^+$iF&1Ox)2cF&S1A^6RKfB;iK_f1X-Lhw^u%6kaExb#6T06Moey}ZOWi; z{fdc2&;_go=M>w-3&uM8S}2z6EYS`HFdiL=PQw4fKfz}KBtzF=59f+Si=hDj(2eLs zSZ85>$a1R&aE56U;8mqo)yO-QC&)y@uqDHJHXlvc0c#>5D6u-exMXK^fc>Xe+YA^4 zSfR%v_dy>()&Om1OfSmK3{;}jvt!8#nxOaE4Cd%qpI7#oxQ^#R7BfsUG^VOsGXPeq z07&kbPhyN+1{*mLi}hmf(SHE7EHw8|41xY}=fL%zLkDxFI1_+e4kQR$BFX@h0N|w0 z^tr`01mmy=X+smHpP@_0u$O=fRN5H(7Rr&ajsU3{oP*vB8TiWg!JvX67fZxU?uZR| zZaxEmf;}L1JDR#koXU%9v(5zn{0v}>sv^!9*9RcSmqM={v3V#h#;%cEry7O(!(U__ z0022Vv{#^w0`?yHKpv4l03&3P@1!J`=VZ;PHrd|YHNO&;73+Xcz!~D)a{t6J=u`uU z?K_-aN6#PwtReD^uI1U0L6ei=&}I6()%8guLBl0e}oAh*x_ePoq;KxZK%+zV}D4h|2@N5}r*4-f-HqOMW}pMPPY zq;{iWF(L6dHWIx$A_p<19RdtU*FJ(Fb6zh#UCitTYgDFZCBw+jDGLiGr|2ID6h?dq z0L}%Bna954Ga=XL0@xJG zOM3EN7t7#77>JAiXFAN0f7oxn4}S=~%=aDXS-^af4<@VFk{SEi0NVdezw?+Nh(wPw66{tvL@#4{%286CH(Nv!*@TgV z6{U*U1#C9HHL}P-81)!SPczDDMjb;NhYD()Wpt#VDcp zVdoG;@bKYi)Jj*9>4HsoJGQcF(-oP9SgY5Rohyh5ARLSypxa=qgIZHnUsB2Tp;p#6 zR2vR;>f}ki^5O+0G8wBwC-_JC;GmiTYfumFvhN58)X09nW0OIk{KgYeWeW>By}qn` zF|Ch(>|ZM!pq{p=bTX}n?|Xxude7tPOasz*pa*~YM^&x&)SEQbKDer#*AMl@XTGB! z`04j5PPtq!q);4(eymHEUew`kQxCrRA!Em!|K`{AwM(0N>VrR~(A1~hi`xnZ20DFe zRpWL`v1UVCukYv&|Kxw_*_U6j=}_0VuPc?#${#D}^c&9VwzFx?C8qlCpZaTgM}8~4 z`@tXmUOoBfyNtfw=%M63sM@fuXP^F>&YgQuZHiB(BYomyzoqa0mp`PFrA5V)5mkF_ z<>o1I>u6H#X}90fANdCh~qWkZESm97gTi15<^{@Y>KL3T!$>$HL zFkjNi`|i`D=k8Lx?=nUxu&+Mz5Blme&*|{cfpsW3ve z+wL)dDOEVG{Yp;>^>yye_vm=3sLNL_=+&36=$p@7P#bwprY$3L>c-Q`=ZczNSQXRR z_x88-!ueOUdG(5dp_qccp;k|wQ7oI$t*4J`_m$^Wo=dAU8e22g<<(VP+pDTo?`U`L zno`MvCVr2W7uPijE+`Pos$M_Pw0=f0}T zR`ZKX)+3w6?mga;2hdg7pgP>(72&zwzt;K@Z+?mwGEF)%2f`FL0>1SC$p6R`<0~ zEb8E}=^TL4oc8wUiPcl1)zPpqQK>j*pjTiTRHFr}&aX@~X8YLbG~|oD1d1P7awG&vd9#KCOv=tl~mZ?M~gw%4wENsRCdQ zqq7Olah3=+m`aObp(K;W(f~#{cQ6>};a0K9Ze)Ha1(;}|v}lYr90CHVcRcyHe&$2( z*O{|7s^1Byyxr38{mGx`;~)R`l85o)^xbi#U>HWr`WnUCm7#NON@*!svWY?TpR@j0 zu%||vj68bRlaDKy_Un)T?6Z3H@>S*^C>BjB81bn+X-Po>M~{tKCz!)Y!ZtEFh{`iDc9!ZZZK3=L2V{P|9id`k^r%nhkpS#H?3@$Lo6UV7!4|$NjOw zzL18Z*G^2g-h7MhdiW7t*sdsBI&WZbf6$iK??4EqxrMy+8H-zg!ax`hV4|=`sx%4C zD3hnuh~Ph{#Viw?dNvV^HDsM(rV%jSxN(DCdi5oF##8O=?!&1wCygO1fI~RGne3cR zrd6{Hf_KJzza-X22hY? zWehxQQ@{h9wRX4hj}BP?r3zv<>obPUXKXzTcBWS~YGoU)!-Qfh(V)zKJWw{3GDn<2 z0!zmhRXNv-gXdiDY*lk9Gz zc4(y%IB{M|BVcw--FfB#aQ5TrjOw+rGP#txjjmdqx}C-FlycUo()oI#sG%|`}99aMa;LNzaVVQ8iQC8u0*n4s~E!?C%o2fnPV#X zb?>j7FLxGohF=nUwl{SoN+^cdOr4G#C*RrmF{K z*td zof{k4*}bSQKKp_Vd&tK#y0W!x;2ZVdIKTS`JH`ZvW^>v0xfoJ@UcRco3n%~^l|D#J4X!UKL&-V77&fj6GhiTR@H z^{W2#&%daFJSxzPo{afustDjjG%0^N=a^Q5wgrWA3q`9?II*^_^8UVt{;=lqt`wfa z{6VMZ05T7y-(hP!&D3FlYXCfg0IorR6^{~Jx$<_(tRud-+M}u#O7p5zTh=Fl?3 z?j0S&6fq`QrveeB10l84vN!pwyDeQddEPY?hdXLF+B!DBq@{&p+O3o=G1lsKjSUn}mo#50s=B)`1pt)Xbi&D`uTn0ndbOo) zb0BZnuSgFjFgZ+q->#}ShS;9i0XruGO?uQ5(}2t+1@@d1|7QlIK!&0T~iU?WH41G zx2WN$r$j8MgWX*Wv!|KJC&O&Su=g?+JdsyC<1u@QEaPNj>(h~# zV^DiT3I!9U_Y!gRJ^kbQibX?`cP!t;Yxj!nUs_qxE0n(MC^eye%)NBB3nAw0SBxA#oxcXh1vuCwi-c!&=DK;Pc<6=;pj%Lu?daSXEuYc3-=deNn{&YuRfP+&#K{>9W$fybjA1rD9oy!wCgr zFw?09!1lr_r^s$-i38$vtffZ8I};lafSsoI?}VOJQKHl4O&uqk_8#Z$Du>1pbTYCHu5 zoLJIPu7>OigA{|TE0EcFma%=|%KJ1_)$aa*e8s-%{eXrsDI4@Cte*A`aW*502Sb{U zdwSC&Z&fay(B_5L^xS8@Xr(68Zc8_uOslk>)rIq~DjcA8wrwaX4_Pgj9SyqgYJvxy zp<2_n=5kqO=H`?s9aA`xQZ}Aaqu11=*Hxq2Rw^1a!{Q(GG#W6TGNA3tSJdcwb#1q! z^%#?%2GX=|(+pr9usEQoWKG#LP`>V{>uR}Yy^lb?Q!rLMUaJL7#nT#igL>#~Z`IVs z?sjzX(zafDWmEn@SfN%}pa06!@-F(6S=!L@{G!f(;Y%7+4mD)sebSeo{<{ADE9Z6g z;d^!KiM%4gIeqQvuP9fHYJR~djiP$~xo=xGEevgWcU!N2;~%uKye?0#s=eBQJidy2 zOs3ecSb+ET_kOpo{-@v9_TipZj&JB-XIGxgyy7R`qz2`0{*FHPnWq)@7xdDF*R{D_ zQ@vSLG9A+H&PCO>d)hc&&@HC}3h7m~2O%9Rlyr7sUN60HQMpiD^M#Ox{;t}!s~Qf1 zN>BYdnN8@yGspDD7rvxMZLG_$U)G7+R}F#n_dCi*Ba)vn&QqK2SSl5)Tq_lgyV~kN zK*g043a8Ra#yi^SZR>yh{wEa=g1`Xl001BWNklHCr`;WdW_|x+E_iN-gu}?>PFRiUZui)z4WaY)oN8$D&}?n zxjS^`)RN}&MTI9(d4dsh-fq3QsMCuBRSz!e@4osi%Z%NA=bgIuo;$RjpV!1YR)*eD z>6F$=x9H=){&D3pZXzW?AHg~%0mK`$nT!UkIFvm=)xD42s`tF}{qm@&Z$E!QCsP3( zTVI!N!r+CnzVhs|`hP$9c|HHkcT~A{pvT|xHl2I(Ilbd8Z)2LR0-mwz<*Leu9sT$( z{H&G0`TAYG@!UiDv7h;nO38rsU;VmX*?d{c>&seOKck)UP%pk-)h9mu5$zrv$Qz96 zSAO*ub?(kPG^UxR->2GsL$N_uFAW>|55Mt;dj2zirH3ARv;L1CewR+&a*OH%uRN8m z{{Abs>qkEHFD%1D9~&lu^rusu*x1nj`LjQ(QYouxGB5dK+P`wBNw}lGKitw^{Pw5x z@X1xZmWwDf@$1(<_Ny9>dte(6^~Yy%A#xeSY=m@di}3+t}8 zo>gb*sy_EuU)KxY__9I+pOT4;%6ofy_Hm z=aoq3wXt+kZ+XiDy6vXZ@_OUywW-hV>2T1~|MOeFtKg`k?|tlDy8Gq_EU5CRrh`|X z({nFg)yCRst!@7O`$ep^-+te$UcePV} zPNhszpZ??pt=@i0x8?5E$z$tEKQX67(yvLktXC>Mz4-EZU3=v@RjP-&>DHT-il%k% zTOQJLSNHVa{`Ajv@rz%wDMy__OX)P(U!NADITcrqs~w7J9O|oEKhP6zdb^sw7Q`m z_|c!%jg-p-VMW9=2}N{`Y!jvA7@c@hnPlAhiadXDQ;}G}7+#BuIhCsi@_K^uS?SP7 z{-{s%&%>Z$BuSdUd>|mjDY4Aa7^iAr!vdI|L#c%^Aba%pgEmi@Tu}e(e|^V-@wdJE zttw^Ll=bEmjHVS%#H?g{GIZrG7)y*Wjv~Q4NmdLx86)zeWbG-V^?7Lu?fMgiqA{I& z>*GovU(hhz)mOg!1?}!_%i{|w?3b2K2K2`FeV?BD;%j>T3s-HQ_R9yFdV^YAC@7SS zDBzjOLsrk9SEoBPdV9aqRxz2;q}$cacigS#UpTMR8)tN3^Hl=?i1^FO`(?#259`VwhzizgAo=%cD;p4i?9}N&!4w{J zwe_0|>Y%=F0Kbps{oS_m=;AJYHF{Pild^KIfdSOV7gls-Ys(y|cAE)XK?`UYU_z61 zN)C~i?w}_oHUaikD-|(4s7GH8k552EFtuV~dWeh-49gXAsvVRKoFSoceW#;bI&J+t ze1Wh?eFUZ>mD??KCj*TvlSofE8b-UIn1DVYrY;8!eDM0E#(-wwaSOmeB;>AcRSUotCu^xW2usd@7?iKXy)!KlZ4G<*GjU`OoXyFI-l@&+r_k*ftc4XARVW zNdc%yzeEBurt%I4Z3A&f)1I*e+M~7&P$5Ij`Ge5~@Ia`}L^v|+lvmm~bG}0!J^9o- zb>FQw>gwfJHU0FbZIn7^JQNLU>Khwq6AKOW^S|%`O=BMY*1_oZNpy@)y^@{h+*Wpc_3)qw%n&-Jt>g zi^o!W@Atn;w=UkOE1T!_+@&4edH*rZ$BVjjsiNmzcwU`e*%*pU@tO`MHYqC|4=Y4J z9Qw<^3@c@I_QZ`Ew(7d_+9fNWL*8KOP$mP=GWB~!0|8hubR>Wcz$7n#0vH(pkU($0 z2H2F-o-t6$bI7*K6W^20GBhJ&$zn!$M7`oEzQ7mm?K zk0#B4t6}wPP1UM(omn}lQfXDmg|IF>|Dt@JvNjK{8xU46mlX}ut0|(XC!m{_H?)?> zS<-rIy`$I5Rb6`ZWea2pfzZXd?3^|?uNYf`fShC?lh^U7#?^sxnK{!VOxxaVl=a&9 z6=Oo|AM7a^3#-=d8&k5|oa&8_zs-_tok~SJ2U`|1WOG^d215f1>HUkmP*P|NEm(mz z>XBkh27PpFLL0#q3=HpRqSg6zZLA-+gxf2X1M|T$Fhn{%-Tmkz8q|i0g;ScQ1KJ&o zbm^7X6zaEBf>~MbC=}1>jcHtOW(Nq`M!uUA@7!u3g*HtFP~C?ey)M%gt*o z-&8-?*VeGCVfjFn&5L4f&fau~Jif4EYx5d}#(MRc@5np!DYJG)lXgI7iV5{oSzUbX zf_(Ku6^g6M#4{QXTMA6QN+y`#_`2HNx-Px8skua2rQ%7Ak4Ln$d`#Q>TMGCZs`h(U zO)~A(rB+|JoIb0lzo<|=rYnmz1&R?}Ke(j+{n= zD4>=3HQjJ#U5B*qNTs!X@q+3*SFP7vJiDmVCvKKM=usrc;IW1-UO2D)olBZdDd`I; zlZY#mUeRbc(XnGK?e1Q5jo*nWXsADG_>fHL&Z z5IwGy;%y2QqT1`ctj^%jC46XdPk+;DM{}8?)>m&+$hWA8B3il`-FT?2SH7dl{*Ho) zxDFbJ3Y6xxe)GMGg!1aQ_I363Z>eQX`o|7$Lj*`(@J zHm$*+qT{8!hSRZqQtC~*3Z>%mC9dlFibe7YC(x0Hn!+lYxM4i7&LIDg41o*-pazgd@(iF3 zlFl(Ek+uN)0dVOJ>Pn;m+LD=+LVe=Hw!-Wi6I10=p_tQPFcBrJ0DrLAx`T;2!?B8` zIqUD1%a^Qg9)Vya7*;$UvVlY-0sEbS!oG-O+(i;L@fE-r#uR>05He7?VoWFetuO;C zIyEb=gsHi=zw0KQ`{)qqF_4i-qm!`5u#rIzJSL<*tqDS2W4KW+3w8pi1PI6TQ5FqL z83<0v^#8go+Ty#Bu{c9K*}CAi<~MMGQ?sj8-l#DdDy9dvvIq zhRpzvuGupHMfz)j@g(S}?deaRGWQWNzkwJ~8lPcv_EF1BWU-~%>`gIGG z6X~QzgN7R8x&pDVDkG2n>~}t?KmYyDDjCabWo=cvWHYRZu1B#zT#LoDYJ<3{m4;Ex zbJ?ug9kPUu%|&l83?qLK!oi>;FB1s{Q-wb~I|w6a zomr2n`+a@!)8EkjkHnRaZ|KvXdS1guTicbgya}K7wzsr;{H*@qw?3=P4?eC(-g>M4 z>e|!V+d9zF!^d^&O(*nkKk>V|_tAH0Id@v8{(q+4JId~|Uf;fU?{)Uf>^;3CGwGT1 zUI`&|q!>UDP!z?ZD1zeAbFjCg0xHFZfC>tPDkQW(dapCd^xpRD-h272=gB$mdb1V_ z7W@HB_WpjK=kvMm>vB)?(o=uoXOBOQwb8=JxRU3dd-m#(wpqseU6oj7xUFSujPi-^B9|& z#hXV5c>RqxiKHgkdCPTVyc+)g&%biM>l78$4!kon%uJ4n!hqZ?3!`RxTN6f`o||{B zBNZKFa(Iy7Oo~i0M?xhoxK%7}TgK+K>v{IAx9RU5XUZRBuG`92{$nS4yNarUi)iXy zO8G3kJ-xi~+PfUDcFRLnKAUAp`wA{!xPqE*J;>L-{Sf>29;CDLJU8BP1E0QmCm()z zfCGm*QI$m9ARrPqiKkINxezMREeR}hm@J5Vm7$`x>14E*SizvTPh`6=PPQC@iQ zMZEDCH*ea+!d5G_HPysJUjA|HIGKWj!I>l)y`Ggz)^NwY4`5L1_~3*07|156a#)z2 zF0j0%1!qSK(*x6T(*NSi|3IV2vUSG@vzuq555=)*@;L1Vxn&S_22oqvux=|?ZM%+a zILT;Trp9HU^XwV)K_B%EZfe^qS-ZG{lgBT}x{KAQLtE0}^-Yi! z+l>4rhLceHMnh57ZQq7kU7~=G4?j6TIFg_gOX04prn$a_+poTfbWVfaRf$p<$;uk) zs^^mQG)l4E4CXh>U*)3P|{#zenGS#ta`Ff06 zBSuq^U_&F0icU&}9ILmkq?FN8QbdTT#_3r3J{L|*p;0KP_cYS#u4O^Jg})tsi>H43 z5*kH@P$SGmk!rUL&5N8JQFkY?n--#Mq>lXd(l)N-_%R zPbHNQ?6m^HXjDF1=FV;6KfiMq4o^KMhl^Y`PAXU=p7nEdVw~Up|zk$B&TzYd3^GAS&o z4hpRbYkMW?w)u1qC&@-Lq#_xNW-E)@tGVfxB`n^08Eb0O9ICj8-QuC!8>IKbX+qO| zR5iO;y=o!j=Z7dOjiibN!toib(-t-_UrjVLNmoxFZ7uaQ%<|xAZ(?M4h9@ZPxjgyS!@I^!NP|;lHqQ26| z_a6HR!^3`l{^Q56m^EAs2Qg~&wA3|FP>R}eOddoj3Skh2f|Fc#H-IeONC(sMRf;Jb&_Z-fI+-pm0Fn`n(+oGi)53CMu5a<+D)%9|F9}GlM6qUpx zVOjkwDixPZr!oN|cu-0Vrc2K?abOZZYlS!fX$2=mT#)p{V_~tx#$m6LiDohIF_?5v z6dV{~l};hjb0Xz;Nj#9j=be=7zF;hb5U+@BvDP3i#&K4xTFKdyCn;qV5-{#=@W{=5 zq>#Z};UE}}%AuRPvPSa51UFJF7Q|*-9Nl#qCCPFYmBxtE?Ut?aWGI9|Wnjma8%RtA z`RMRTEEYdTk&22&(4ZD2Ky-RFW}O8xTB6A;WqnTC+Cq^eHoGvPiiDwol^ZuP(K}6a z%11gYl4)g%xw5?A2;g%f5h9n<$oHK1PStptS-)%r3Zs_4zV>g_A_=JxHcyKjRBE&q zbY?AUmUy`9_N&PlY*Z~>$b+B%DM?>iR=)-FO$?7y$uLG?m{n;Rn;e&Q#H>j#hjRv# z36(JVi8QEEk3lD_sRi=c4Am8t@-ihr)`@5mht-bFCYE^hY+AdJk*N&7`1`9AwQBz7 ziC?0@&OlF)7oU5P{fFL0t=CdvbI?EBM~%B))(=xM9jc|Zp^k6-_P<#@tAo)CeLQ&o z1M*U1F&YU3!l(@(E<8InJmh!K6 zKH~X5zfLk=A`%JF(pbx5&pg5MjwRR)W|V~tedo^dwQoE^I38tMByv(EI+o7oiC_N@ z4UO%TRcey42uI%C%@6NFYbYvnBr_5A_w@6`kA6dHEW!`I^#!iG z^E&jxZd@u8QNu_&$6Np0%?scEE=Cd*vi)70MrcwpYp6ce=U;Kob znM1U+G%+zgEfWVKH6&ss;zBE0EQv%EPkk+`uDh0pzy1iVS{unojFwx*C~0Yvzu3b^?NM&B6r++J$K#r1@cM_5w!+? zF3pQiKaZ&5fBn(#P-irtr_5kU&#r%;=dz`3ENw93RF&j?PTUOhf(e$2@WK8Q?0NSf zU-|4#RxX`SQEYG(Vu>VbkP3z-rg`h_fAh{;Z}7mkzsHU(YZ1aHS>HrUFrQ`5p#%K+ zXa9rA6y>(h-^soAenAQo-ak3YE{Box``$raEc4Je9^r;-Hj*`H`JjJ{KmPpZOb+#- z)R_6tUp&T!<@2a=TZm*8eDLmG9{Hx&is}R zR9PiQI}h>8$9|4K?8D^{Das)87cStJKmQp^I+mf)8YyX1OvQ8T-rvbfPd_OWzVT#) zJHK!TU--sdILxhRl17dn?_}4mzw_~XZ%E{dz=eqAl9=v@`>*7AiJ^)_dWgeJLZ+&= zU$L2o9)5_%=2k3@TA2hhsl`wrk3W^+;L&63ee-3!;}e9!VVSrR4JYyZ5p`1e&KGzd zm6||2hTdXi@uG#?@#*cX-MAEILpvpnm0Y>ZXfVy`BsO6^#%N0N{eO037t-$CoQ)yE1&<`IbV{B%0 zGRNr;U*+)L578>rxa&Q5$Nh*!RKBF5C?r|Z?x>Q9&rCW`rPC=>t!9&5{->!_B_d+@ zVHItym^{~_RY|k1;EgK9B1teTMSCME`YHia$wIc zy3U+Hp%4PQ^#3=A62TaeSQ5`N@pCO}g`7v=l|)rv@Jh=P6Ot@s5F0AViq+@{M8z}L zgu!l=%ZZW@X$jI+Mo}G{c`RQjVBNZx!eXQ5&s``b(J*FnMY0Qe90?} z`(`+I_)3L_@W>PmZIzIXqEUEAhZ2Y_jBiqG+LY);3|FOPxbHM) zomyN~m!UR-MO>VeQ0uaCzW*rU48%fVv?>K&uU96i99El*G>deV1k$S%jEzOGYTPVa zx>!yRn;I&xNl>GLT*81ut45(IV^*qZ@wiyFY!$~&o+Z)SOLNOC6v;`HV*4B|V$xdZ zpAH}<+1YfGlI9W{K=j{5>PB?0#eqrGMZ~2{KF{?Abh4YBq@;GSV#x|r*?^4Be)z$= zvZ5fi1cF(S%w@>>C!~ELkqV-)J4lx;_@Xg<(JYE+3|EbZ$>0?8X15WGDDQl72EDEZSL0HeXS;}&68!70@6p!UjyGzM5m%MQfNv&3COt!+zmLwOiM|U{ zG-{QMpY(FR=wfNYg2`wj;EkYZRT0maIkD#yN8dk2aH`BjeSi}OdRS2nM)f7Vv_)&D z=j;HPO=*nc_c9$v3?$>>0MS5DUaYJY74plZP^eL9OgP+b8fI5=;=L2R@X`TUn-IJl zamnadcOy&Yt%SrRXHOl$JFb|I)}_z zxs*RgMVT!T9Gs!AE`VKK#Nak@u6vMo_w|qsDI`}yR6u(BdKl>J zp>_Lu9J3do3`HeJAm&J5wkXL=o z_^wKBrw<)D#I3j8jis`hSVB#F+Dk5<#3BY8B2|}$dYg&qsWEoH`Y&2m*J7Jv18ueGqWWjPxb zui{iJzzfg5Oz*``Dr!yKdeb#*UAC4kvyHMwPleUZ+O@0c*sz5^{cRU%{}g(KfW2mM zcr4s||5s4i7V_d#&oMC+;(;%H8MPwL?)N_7Z!f)u*{sAzi8TvXGn${`AOCoTGbcu{ z>1>oTMQkn)J3n(jx#<|ePA`U{UcMLwaCLZeLT-&kx?sV|rR;kB4LNL`Ra=3xwS~3U zTt|iG2R!xtUo$;3$Tz+X5 z^+%n^x|HQ%sa!0|t)QrT#`0=hCM#A)6(yD75`#?eM1=UDBvK5Q0P(^iBx)k!?+F8$ z;D`vug=F~Htb0U zYd2m;x>zQJ7Vm`__Pz5att+%#aoI8o!4xH(6?CGCILbgzoE_^oQZ7d6I(>!Vh z;aXHiH~SBCv2CFpy*4P>mV#$^^86%EJo74tcE3matTudtfhD%PxgvMmv5ts6!P76i z$yk3kjV=#g|N3&aZrw;SXeU#wkVBJ1DnkF!qjX%hoMK+fiPI5YeEwy=|E*hb)LMv4 zO@q3Gxl$Ni%ajUfUST_gu>b%d07*naRD5n9uYYiYL@LYYKYcm3+_avoyAFf3j+fv1 zCkkbXiKL3b^P{}<%0 zId$0VMl4nn!+jU=1%jNu&?A$7m6aA0`3x(T&!&0SdZ`&V7&VMcOmXK z36?LIN4?WSU}}PFCP71$8%?7Vd%c6x=f{X;6+|K_Eb2U4*DRt~j^J`S={Y|`p`;~R zXP|Q=C=c9^cRrX183b#TSxzYAR5vYDi{G zWbu(f_yebU5%afS1snw?|qj~b{*vOo{#YRFHmFGa{RzB(VRF}=Hz?4R4$M& z37CI`M}PiJbXq05Km3SrFwFGmI9ZYM$R??+uSI9JQ(-euPL1=#&mLjcl2J ziDHao$WOLdpryVIOeAzm&~qEgtCqe1@s%ir+6!^2Sb&?Qz-LNJ+h7{&11>7vP9$9P{aHFa)$ zUaw3*i3FFZ0*aKfNGOQvj(9$aOU<0w?c8+z&G?2#ICtzA$+W1cn5b`d@!#KmkXoaX zw_bjgiOB>N1|zHI&E^LWKFDvM{{w|71@48deCf+~kcvfk@^?=Y&naoFuVc2Oitj%3 zAYb_2w`FzMWHph_r_dRUGHqVvsV5W(NmH6itCZ~u0dN1tw;!dpww_&k-ePznfUCZN zIo3+FVuaXn2yTzDb%4Zq%Z>m{0Mq4-as9a7?|sB_;$^EDi_(hU zJH@2AfXICSJJJtt36RplU+En`tBNO?mX z>^?{5sF(M4y@p;Zt7quoQFIP7`dmiVG3Q!hncTE z@D-E_3m<)OkXXix(P^iB!7A#VHC(psIzHYVKsjCF?8)=I|Is1ZJW-l7ZgP>7Tudqo zVyPlHLn7U)ltV7@-zk2HpoKWAhyj48+6m^+sgvh;`|WpWpR<4pXDxN^8ghvY;kb`L zD#FXJzRj7B4^U@sBU)6Tx0@)Il;o9V%qAPLxR-n;L|L1YpJR8G2Td_YQ^Rax89gIs zC-5iI6dhK&ho?FI@7+YaLCoUWm(P$Zh~b6u^ldmGtD$Z8Q zoI(!rg_uMv8U@_HC<>55E|e42T@4!-tzgBhR)%9nj*p&VVswCNkCT$HBkIiB))ONmKEr9&<*-1Uw4rhGUn ztx|>+3x}y|u#n8hQHvmt!bmxlW$v7I>{h3|Gk$RLIQ_ld2oav$EFkNGdn!a-m-v>s zT!y;3I{f~iY$u4SrfBtuS%BSUrI^#9w^-3B^)jRrPF_mGSu6$uAwM>2HBP%7k+c^H zvs6AwHX#ytIXP5!TD4GNp<~na6bc5Wg*0k<3{h!TYO<(`dW>cxzStCVH!VSDX(Bn3 zq8ONAa&lbaDO3oPD5P?E>O9q4e&e;=e)}Cn;%eS{@gEF!DVUB&aoR*xQ;o$@1wsI! zM4GZSc>{`)ibOs_WlfE2M~Hg0IKK%jgTPlb&sj)O+}RW=!hsMjr&@j_MdC6eS7d2|ZFQOn9?oaEFQ#Pd}X4Q1kBQItV2=KF>jU|e>N^7ZX(*;*jmMO zJiya`eu-dAg{#JiQk~*6TbHnY&1QC7J;NK%zCluSPz5|$*v=A{BJ!6mLt+r3K~>D+ z4G(eZLKg2IhEWOQqf!9(gbTAwv7D1z{|h4{geRh;)0fnr^XDy<6~>Tnn7Xx#Az5VZ zoMpr{qYQ~yJsNqD5-Ea0AujdIV!$T0LE;4@0Knp{C^lDuso`+AG3aedNHo2K22q3Ynmc@d>t=r9wk( zs~Nv9g~jN^CN3ZfExwr;OKKZ1B@m1- z;~T|TZIuyHL*9fUmd2M3Gk4(vKJ%$t@%N9>**(sgvm>NZIXU!D2zEf+M=lW};ma^G z)XnImRYI&CCOs4W0Ie|->8b>_rUsg;H0=D+&BXFy_8y6&Dk@2rl=w0kKD~H0!C;iO z<`xFW(s)NFFjt8*LIGbQ$;9-ud`Jt;b2{axZeA_%P=W2&UcBb^s zJrks(QIcpWm?|h|YA8;tskc^gqLd`3jiFH_<Yc7lD)YI|kgXH3IbV?CVPoXy`==BDuH@R@=O>}p4@%O(z#r+T5 z$-;G8Fn!pC+nnT6*Kg;1=LjF{Kgx%D&SEl%jb#~?LCc0U%VbS^-|jPqxe zOf(U~>1<#s7NOf8pzGKK=T1$@L2-C;isU&j=2@F)G|glAqNTjIe_UuJICW|YtbP`^ z6i{XIwAQ)t213+&+>{k6y8B1*#ZZi=Q>T79t)KXS!86Fv9Q}b-X$sjs|l^MYW z5b@*`GIi#(R^zF1(;Ym=iNl`|$rTa5S4$d~W7X+to!!9DxQ#?q0=*YG^okull1gV^6*1H;pV$nbHiuu=G>uPKKS=OG&OB>_64cQCm88Ff%QlZV{nG6 zK79*Mz4i{Nkecf@wlH^o9Y6Wqui3m}9WJGV{=Ok5pZg1!U-cQPTuxruvri7AiWxC5 zNZ?r3#=K8|mdQYoQ1^a}dJ`J8lC4)u>f@Uw0X{np%#Y zi=s2);HaI=zLP^N(`~@!uAqM^fMOtvu3V@@LE5s#&sL0hFvM>Vw1WzM>_IJJ2w zs_|!YG}${y4aX%5(qJ~R?V9b(>R3)rr(xCl6_UY`Eo8|Q6eLmb!qd;t+u6ycP20HQ z%Bz^wF<*eu5af}-bQn`*GtWHsI7XdGUVN1Xl{8@rex27lC851yk1htXQ=g%`d+QqCz8>y-{Q&uN=;+KEp#ecnv(xGDK zHCuW3f&0)o6%^4D?iB#yGCsARZ~o_RICiLuAN}M}Hm_MpO-lm?gPM_37kTjeKPPZ1 zCO4*{Vm&%NO|7evKmGQHv@dU>tgR!LF+;Ynr)0m%iMd% z?c}y!iPfG)k&1Hua5q1E?635XO;FB@ZEFcfrHhVcBTMF2apd?Z4jw#!e`1mfyOm^G z$@&cox%dA2Xlh=HTAil0!pQzT|H5u>LNhslAy-0eP;tvWpXc%$@5H3g(_C*Pnus!$ z%<{|=f8)fVBi!~M4|2tdCA8LwK#7vx5g+G|b+UMYo0d7VNTdsl6!JXxkC*9u_Yl!g z5W(12V9Ma#JPnycA%^*VAzC7EE7p7ZDV<6oY;R6|T9x#QmZSh@WQDzrNMGeO$twIb-m zVi4GKVSqnB{S4!iqvS-5H4&4%CyheQj%`;kZ}wbv@A)@>s+B#LyLV0fGheFGdgbOB8!g1%HF z8S~2JxI(L^``iF#OC!fmo?)oFk8~o!eUCgyjXi}k6F^hC#7Pqi3pv0Lc3Z)!vD*m* z{PJQcJ|{Chy&T>9AuE<`p=TsQbw#cG?DZbGK%l0X@+KwYkr-#rbP@DVlSr3Xc;DR& zO(*ENFiC5bhaDT25)4lf9QX3#^Ka7BJ_m={#B^6LrFfQxY7f5C!x$GWW2`jA8^8Sx z^+Mn^u5-{t%U_is3#lHOUC(YLRRVqAIB{>MgSV zcCPC@6Jt|sU$h;Ki1HRP=rjt(#>Zq8%vRwb9*r`=C?}4c<><*HEL^&X$_ft^c@0&% z1k)qKl7-cEVu0SkC-~`4e#ZP}4|=t@7b;~EKkFA2bb(V4LX1m72=Unv=@kJam!Nx% zUK$YN(FA|`!wb0Un)&88AEn-IWMXWReaAlL#HsxR0yAv6Y6}~eU(KA34l>HD954tQ zuu5lQ$`_=!>l}OEdxMFIK^81&;g-vHuz1x{f~f-2{gYHVE%YaI=(Hwks~kj(T58>m ztXQ`KXMH>F+IG@~B9oC2=Z+s`{M;!K5X8B|3$Xcr=MG7eR1tCwm5ItT0g5P>IV^i=)CrMxi8GEYg3W z7i%&`AuvIOOUuA=p*ou*I6Oi=G)^cug-KV&U8(2v*)vQ|JWUQO9+>$tkVy zN+CBeXes0p^7Gqw;TQ&037tldKkCQbI2VP%ETv`nf)YhKic(`oXHPQLdq{FI#b?** zXhLVMCz~q~izd;TizrP2Mtjdv5NGiJm5~URu$Wzl1+?Iu&iH2Jb5gGpjO!9Mdj%Dh z%@h>|)Fur$swfuJ#DhNCO$L148AO_|wyhbR2%7}bhRZHnO*9Z8 z5$}~rRcBQd$()h2u*ci9S_CXf*!yy&GL4IuVXB#rn2;$nVq+c?`D|8fT1#B3;n+kc zp`jSF=Crfrsw-$}ZD;z#0H5qVD^p(iVutXzmt>WSye~*P5tl|9vtBEs>7wT=EXp*_}=3~%WQD7mT zS1=U_QeB~!UEHRIS`3yFL2sPi?u&98mq=dHON)z;WOb!eaw;1Ngoy+LG}L=22#Baj zPfe?d%uJl8AN#v}u!~r`=!%+5TKQrY6~|~W#Q69KdR3lz%^nJoX)4;AS^nuQG&Y%e z>WM!S?aNS730q8>NWhPO8se!s3JM)LGsHw(Rh6ccOHt#jCY{XTsjTD1ouB6MKm47_ zx(ZAd7yeo^rFsn)dczzW8pPgEK}~B7n-+_~$|$2BpJa)rjo!WitR@5F!7z$^Ob!T2 zB^_>kE7tq~!GscDJVixwJ;{SX@@b*{E=#n5c;NW+D(nsmWmN{N(@ytzkfhE)sHCQ* zv5i9J0Hv})Rx`RH0cLq-k;+;zS?js!<|}DkQ9;U4;+5aMN$B{fOu@`*t);!Sl2a$n zGBF&WvZ{t?Btf(&wDe_6B`-67f?Iuh@|qU3_9kwEFc^oBp)u)Vy&i8R2@r3c5GgR ztD(SHJjj86ouE>orOhHtLzNtS{SzX?6KD)J7A{?hqrFik6kRSm;bfk0Jc&-L$7VGX z4o3)wLsU2`WI|CK)WjB7FizsJ0D4W9hGqx-RSHVRG8GmNMWYd`wMebUL?WwWWO|%& z?-&(E5C8c4t4vHJAylT;UXS0~i(j1}7AR0x*(eYF!SJ+%raNtVY#Jxpf&%aG2u_=m zSS(L5uOK%QV$s^oytr#O&p!JKHlvQ#x$Rh7Chpj}fO~GgkN&|V&mZ1Jv8X^HHaIpr zDgjqT54I{a76-;eN^U+TCSwRASgqZ~?;d-GwzlO=2d41MUr0^0m0Ooq^U&8Gpr`vg z3{0QJ>8X$`B5TP+rKN?QXfLTu3YATP-f>9-K6P++7#vr9h1Q*r@Lkd`#L29&8Wz-|M(I-Rjq8@u$d}lf|&t7-Q7JL*>hAT=+cD@ z8C8iDYnRj9R!2A+<4|u8limdvZ0wm z*-AKHWJyOGZ|zP{ve_6O7@~1iigYGVrA~k{!>EPjFcFn(vXFn8R3VQ+ZKmhwF}xT1 z$mJ3Y_KlI6J&Ch2h*lviH40n~o3wmYxja-_otz%(W7psQicM@-Vlm34EW#8e2Kuf_ zr>x7(YHdJS%3&)SXsl}{mhB}R4dJfyV96=?!w-MKZ~pu^mtTJsHk*?~qKHzXX3t0O z@znEwCp9o7c{8bUNrE`V#!slB#R5T82nC2)#FRH|SdU&`Pbc6kG(yqD%!tbo+gjMiiuLL>@cGh5kXzh9;KPEXL(% z<=nY9*>=tKc)cnnXY!mpdW`7!3?*%v&#iuh8c!3oo_hR!3JOV4F|ad#-eNR{1q`1a zCDT1F|9?aAINfK09N2Y$TOVG8HyLF7=y_a9n73&T|M}#rEMI1)&Y+^fQ_VkK+eJm& zQrfIlgp+!9{dpIftdF1l{JXea7M66(;`GIfyz%b?9PIpnZ~o?o_{R&p_QzKU1!st7 z%H%U8G|H5evIIk6$xSF_QnIen);@=ksWHwT-;JuAk)Udk!n<+JM&>kZ;N1gm}> z85tU9%en=8?^}0auW6v1e?tzhL(@^7`1LdNPe(`whAF2@)X$p5JvV#>+r3}FAMIyk zVvO(o;8!eKy_lU3JjCOVzfCbU%<$kzX`%Xf&j;9bdh8;darP9?{w0sGs#-D|%?b@G zR<2{oiYo2*`*Gax4%zZj}t`SLIQLBx`N$UwlRwk#XaaXzs_4i|yOp*whWSXXyMsE7dji_}hPWD`2czlvnJVMT< zAuSBJi8OVyoeYnRP)ZvyDf0xwNg8IgbLXA+^UvpAVq|oRqFN*0@fvM~tmJyEHVI-D zRcT>|OUBZa^D63U-4qpSLV59MDpO@N;gu;?ZE11LV@72_`H6a>#AA2r~-GT7MGz4?Qx~V2%J7VNWOe&`5}1Mu~-6|#g0ZP*ntTw zI(SNoK>z?C07*naR4eIJ9<^R68Ekz6T|D)N5z1O6_kZhKm~&?4w6svrMd=?LAS$ZO z1!3#b$wi8&Yzg4K7%VAdDn?X@M2%k5*KN#dTu8Om#_-f6ZOsi>7Z|v1;}UkgyPv6K zLMGM=Sv6{HLe`?zFKK7hg1M+N3ewRCuf4eoY5L77c;ltFdHHXzU^3a{d(G{xB|noQ zoC(r5*dx>Iq6#S9M?wHn5X>Kqu1uvAz`#F*1ZO{CDO4VYbZ%#F__OxcZUG=&`bc!^S0C1oc@y^Uxj&37LD9xit!W?MDkPy(&8 zi^ztxC<{8yoH$M*5)%PJ$*Ih$iqyMnL{SSNEEyjgkpecsmAhmoykssHtZKn{lE?+6 zLK<9^%1g#uv)M*6m6ppomtBQJD@1JuLYW-VWKmk9#f5(JhGiJV_or0E>atPHXQfOd z6D>>jpv`Wlv2`u?f9*?DnQW-d;@+ZTnahJoQKT^kFTDOPfyq9a>l}RPi=SiBk`DBC z7deHJU?xHAYy!R8jb_A!Qllf6N=Y-T5SfSzyx>*|UZ!YCiKUSUvj~vB80rZD%F1=C zsav^{^D_lTrs7QX_po{OYQFf{oiw&BBbh8>aGKDXG~@~bq@UxBH}~VTRT4B?x&QND zV9WNUc$(%>G*yx)l;|G_^M3LiZLLfA@)s{>?!p$Fwi;9hCnHl+O!m)aMMoVfy`G}B zf~jPj_YR+>GP98FtL9;O(>K` z$|^mPSc={6?dRkDhe!>iI4ZZhR-+74Yyp)Jzso~s)l+p6zCrq zqsCxFW%h7kbdrllKH$v0ce($IpJCR*RVa-fRH%vg69h|n_MJJ*p|@V+Sm&8nVb^$=S1sn#JFmy?tioikCQ&R9Nr|C*k?wQT?A!H6tjQ<~ z7rMCnp<7VatY$J~;ljaAK6>E~kc&!D)4BdB>g#6n)?2ShQQXb9-bjt$o|kgS;$%Tl zMsLz1pw}HO9`63u=Mhj#l2Iy6Wh{moJ~#VevWhfYQvLk;(cdvP6d*tzlOlnq)yX$k z?v&7Y@qq|>$NBJscL zQV<}(P?&r%jUrz}Z?~h!7Mb*WX=!R<<(k>ta`Uw)igpr36?PHLw&=Ozb2n1Z6bNNT zc<`$~MVLecTvq^+#acyN!oNPwp0$XT1?e^YH5a<;50=| z2M)WBwXGSfh7kHDJ3DUK%2>&WU6;i*uZm^cXA#{OWaE-e=yh?-O-(fDqg=JNgI5on zp%^P;(As6(^tP+E<4b2yIwCYXmBi{q-N;5lTS;A03r#f*R2x-zhsN3e&d20RC4`|t z7~Mpw&p$KDfeQy&yuE`JYgbU|@*u>9N{5EpCI{|H6HdF5JFZxazb}CyqQ&7bF>iJq zmYkkuhndbcfZEG!6U%Uw_tGIZ45Qo;ss%1HBbxEH5&EFUr8DxB9 zjJEmnc;K$D@zfulCsY*M!8A?wN+w6AF{$*7MZ%;q5f-mmKrTN+B!1%M~l=AJ3u5 zCg?hKlBSwE1_%0?JH7x#u^OYXnq)!Ak}I$0w*R<-QpE%xymgHIkME_@Sw*$m!>slu zBJoiUfAkTGOddrki`ik86_sej&&k7|u;?>8XqvZ(hW3Tz;z?sIvrX|BdsSprz1%qRLj-Be`wks=GxvGX@ zQcFB!p(qBB!()<*qtuybtoN{X%_5erS-{YUkM8~>L=s-i&I(lV44G7%R62z|qsEyo zvcRd~Vx^I;={T*et!T}9jO7`0RySp(O+M@epRlM>lTGF%fVAWb(AdyS|4f8j?Wtq0Gz4y0!FK3_LOHO)1NJxW7Xu$wt zK`f&q*apj35Orq6`JEZZ8E3}9-W^m%QIOCALK-BbpVX7nd)a6A-uu7aH;!w$SSX7G z&feemzRz>t*G1i6C7mzI>Wf~du)Mq|W6l+$ny>!Tw`A;k)v8UXv_>|r?qyAXGvD~< zukrDRA0r$~NYJ}T4%DmHjb&n^Ee2eI+aMBT$B(}$!Jg@IlJ2#w7;6n!El!fTEH;f1 zRXvBs>g1JIk1{tqCs`BmWEhh$Q>LIrm~+GyQLDye7PaQ8j6{n=h=gOx0kc-JFU0>= z5>R6Cq}K?Ay}0D2vD(di_#+QVCQ2|h!@}~cz%HRPs+kRjsFiD^BT?K|Jta+zST#wd zrlypPp;sk{MWCm96^gow$7IH0DKoxwmd<29wp0W9at^V9v+iod>#)(FEo01v&}yp` zQyON6#+W&Gh7OONaLg|URXex#W7)HX*^37#>1wPQT+3i%7hT>Kp7_>x$&SrZqk!A( zltTh|9fZggsR z_ro7%|A!yKq|;E$715b3L??4Z1TW3x!l(QeI!ParWGK$&?BN{4&WtI&Np< znpJGR;U;#tc9YIWiKXhy_+t|6>gtw2nb|Mp(nHvibToDGk3guw7Qxq0qgw3mj#jN7ieYf+DckRc8_-jNy`({A5*#BfVU90aRIfW15W2e5nFnRsnXGI1NdMmFBiLzWChM4e4faB*2g z)7ZYDA8(_PKaO2Pw|oJUZ9To+o!qqjMy8BQ%ubGQ^3Y-KzxN&3TAReHSk}DPt?y^( z=m}1~_7+R?E98qw#QjF4)}u1o(1^ijV4l2QVL2L*?`koSE#=en^?GUOXrrnUmN$*8 zq6vw^)i*B?@n=LcQPxsh8qJcUQ_d#kU?-hlA(77EQXDd&+|}--UdXUC>X+h!d+*ze z$L3&i{uHZMucefZqt(<1g?!{QNm{M_xJ^zB^%}8c7@a{+E?JRhL4!y@y4)y6Vc~S+ zc6g}Q3g{HQWD`2fHuMGyog3D3&pY?yFseufeRQ~+=0aHzLtptcW_=@Gj3gJP$!AkojV3vm6X!cItP=+>!S)vSYVrA33oE0L0+kD_+R#C^ zS>epY0>MmNioy;YoT5@v_|)Gt(c9C?Aa4Bi8KZ+dugQ zZ(Z9!Yj>x_AhmR^<>nptFt}zTlu~@@@o(|a2kvC=`ppDNI*!i;c&^Y#Fy=;m)l$p=xTNqN?KUaj^g42YLR?6-uYB z%6~WIN}VR7mY#tdXk53A*<^$t{rs2g+P?)y`(B1GC9f|pv^9ii=;*B%3?X(&cf^97r99kZJ@4MKu_hvHb5TWzS6x3BITeB)A z{1HD_uMBbS_;KF#w%xe(X8C&#`@(2zD(n`~^0HIbYw*Y7n5`Dd#SE2fQ3C8mbKh&P-|xXcF)2S}wNiyyzfVrH%f+gEsEMS4u$0X$En~Ro#Kz+N zYYb?OX69E$>F6+FZ+2lZYZxdv_|^}8#??12;83&}O)7T2Z5u)V1hJ(RGMO~KKnkbb zMKl?qqk9!9B}wamu!LFZav5mouyORQNpuY^wl>{JSLY)6dW`nfopkiK%S(;fZjq*n z&Gijfyk&VA+IGtT#cGXymxlKn^c*=qN;sb5!k>@QwqIfIo$Ii}KRwR_AN(tB*|7zS zsDdhR?c|%XBG&Kq@P&^(z^5PkcaEIA!u{>-Jo4VRQOQ-%tJI9oEwi|s;HEvh(5Y&i zzIvH!latgJN?g8hja{3zuyfBgisB-WoaX$<>m0i>PiTIQ@rD^rU7Tjyowst!=Qg6w z7D#1_Tv`edE7aMxZ7UCb_=EiC6Tc7`0P^Jm-Mu|5EiB8yt(fvRdOZ?$SS*y}A4LL6 zQ#0dRj>`(&qo4c;&M#_7#4a))9O2nlUnHfe%0tuBe|(ip+01+HyPLlF|I2}A%6$CZoB7Zq?}b_`rm~)zy2j(Xcabe?m>geZ=)@^rJn#$}Ll!dQ z2m^L!pM|g9_95~)!BOQ2@F(bOaZxN8`SDM` z&vGI{DYVEl-+PL3Fn}r_mf-Z>{zlep>g7S3mPFJC*$9b90+-cHBovUH^l%_XdBM-! zn|j#!#Nz}+eXyD)8>&+YT{p(X)EPeX!F{yoH2C5McfA9Ht&#I@jPa8n{Xx3L#EMG9Y;(n`tb^DZ z3_SB+PZC~UK`5{zp&0%BgJ`raT3TJ`>m~X;UfT9LFzb^Hk9JAe^_HDmXuYAE3v*R| z_WbL#v^m(YwVhElG-^(_>Y4!y2SDkD_I24tru#Fjv zIy{P-o>d)expyl|89mF(VVT4g5`=0!FX7_i3L;Wp^5U*H&}4DRq@z|_XU8quaJBVv z`QkX~a76MPO2rzh2RBd}s-d-bFxuM@LqcH?thDN}nY^f~H8h%vth0+}oXyfeK2xCG z)6S}vK~xoCjMPynD;Tm>KJxB&v8uO^dEXRc6PNKcIvJZ7ry>pvZc(=YvsJ;?=VIyV z7|7V3U_hv)(LIKnwmQ1~U5+FQEYuqdFeFdHJIuulCdCeUAMO} zA6ucL(?(!rjB>>y4a_2Op~@GqST(4X3gvozO`)~X#jPDT zV^l-L7r|j^Af1R4o)3@-CQ<4oA&zB9K=11+s+BM%gN?TKW;e}TaJ4A&UsVNt1vC-LSPF=mi>Mc7lI$N+h8!4F*m{k^zj$XuW zHM1}?2kI)ZM1~C;Y^dsr{Oss;Vu4qp!QqnWs@Zge*Z%w~Zrj~MQ&%5~&W*;XNCVdL z#j|J@uM+hwNZv-FT%};tkWi^9R8^w6LnRj{SQ1 zC8b<}Ox4ED9k*aJJ2-mmBGIKdcB`Faaz%ay11lv$;Vh?y{5<*dUyw{BNF>7ym!^3C zBVVA=W?@ZlCuc8TKx5J|HZ_AUuHnW;4{D=DCIe#20coBr6*Kq?3Jd-^^KTyF*X`HjYuER3`|USVG^ly{PtTG|C1p~mSSr%g)P}>|K%#6S zBybVJjGW0)GTSJr9K;J*!Xg!`D8v*C^J&4`Yn3R43K}w1vmERQ_EavDp%@c(&H@30 zmCyd;6RbJlA(+fFIhiLJ$w*FLxoTi}wumoKreH7;h{_Zd*FCO8+PkxB?d+wzB)HP-&ugPW7a;nZ(|Lza0T6>6W#Kyv0 zMA}*flc+|Xnp!00g-2B<1ri0djS(A6o2 zVt@MmOI$pA5sSXUy$^qwfg3l-)bQxiJb&}pzq0YEXIb%u=Ex4GqeK)jtw`68)OTE3^m zdoGzyOSpDCSYUp>NUYYt6HgxEbANL?TW%gC7&u(>R)H z*evZV2L&3yL4W6fJnv|YdQM**;ek&-LSv!CO*d>{Q%5%jO3Wn_T$!DvDi%)`v$VwO zv=-9YIyt98)uf?N&QU3r@Om4Vm>6g0{cbK?36Ohpn&U%9SqTK#xN9wU+1hCG+H0LNuB!Oh#f7u07DYM#8xTgQu=8@z&K7Y}~VxhQ>xlW=A+Z ze;!+5x3t?YE(Iw5CGk`!8}Y|gI9e=3%A!G$lqn@)Z?l*UqzXCm$qcocmV{VTSxwS7 zuNBF@V2ny8&26jS2i8Vfd)xTfsvc@}6`C5Pt0mrjpONv4*ND&h$&25sv4M2fK`C#h zVsenF*D%_$GnoF*w{2qw~~G6nYTdw^T-x{YE!#&>@D1E$9&*V2EKH$NTF1rpfz#&%nTQ1gIpPzppXu8^tCs6+xj)+Q*mh|tydMa1s&?7 zu=Zw%<q+QH()De7+%UTH6P*X@VIQI1e0NIS@BUS8p!8VLhvWk zTy?Ec{{KR7B;HHOWJ)psZC0zSHWo4^5p1Nlr=89gJy}hhrCNqmDkk}_X0wefT9WZ1 zM_#?k+4J*^UK>Ug%Fw5?QOu>$sw(({OYGjcl`nqjZ*exZN={(5qC%&)k;v4jY4uq2 z3eWxS06V|dLs$RJ9GR}r-Pa{6ovD(Y*-(}@UKwHf;y7B3kynq6aO>{-F;p3W8dv}T zAOJ~3K~#09D@9VtkgUCnWtLH^V77<~be@7>?1^)2PT-6jG7XMekFYpNE2-_ndHLgByS!$&Xxuh18r8C+qvk+s_|z3;tr z*_${U4d75`xqHWY>dqGad~AZDBj+Rp|FKVe0Cj^K-{cqzr%zFh`e<|Cj7F`n?2D1D z2x&uPBn(mRb@ zn;fQ|F45#}3XaCn7!?K+H6XS5KFMWrTKY~RJhUv&Q!jkv~M zXQ}7}XkMj~2T}3GFBbE1N-QSCT8+3cW#uH>Y%)pk^3u{W3yUkPgd@E7!4J{V(M2|$ zp{KJ4VH_5w1)pz*Od&!jBD&FPBH@VK_Venr zW#R}e??@s0>rsT9XRS*L&E&V-B_!s6md;S7O+x3Um|NQKi9BDs9dwVmkh6ZAh01IF`K1fMlE{Fu0~SP47v=QK75|(rFl%&G9Htfu?asveeyYC!IZpgh?o4I zo_+yC9R>$m$fe`BZFVNFUd7SjW%SBC@pzCo-zu@~wwuWp;+V`%nMNp8)YNNw%GEMj zqlS1YA}{HeE|1gKTO_hlpuf^bt(He!H&QI>8M-{eE6=`8LxWe=t+vLO(AHCE^A#4C zqUfwTxk2-qokR^83H2@bLM(^lQ1iRj4|DLXD^$}n?7M9XU;V~cs8r18wQf?m8Wy*SuRi`Ij1Cubkr*%i>?t0& z>o%GOdgWozabqW@%HtR+byjsdF|;@^I`w?v@xSM%KlnB6otB+FVkFtm6z)N2MF|ChgGL91aQ5N7zrmx%a=P}RgU z)6CXwYuIt?X3P#9p*cUkV1~F-Cgq=zKksy^1b?x}6a{=)n6Kn!TP!S9@=%u$(Qk_t zzvMk>W!zuZ95o6Cvk`wFDtQ)Wi;?ZSJGgoGdi1Im^opncL|c0gjq{<=O+AfTJC@7eKfAxz*4NnH$U?Tb&C~sS&uoTCKQg4$!BOb znb8VPg{DSDsmZ~ur~%tdX7=2^hIakOdGVQ-Selwd(U$0FZN%&}@%1l0i9xZ_V>hs4 z;~?QehG+lx_Y?{#^0_?i?VZFEaU4zqkwgIh_&g28I2mW1XgY#9W}>r22h|{<#U-+_ z0;{_Es3fi*DzmXPTJ+c~T9SbkRy1miQp8e}74?Pr2u&s(E{lpKcb%G}jrV-|pD7MB z^47=-&;QFWQ2Qs@cGFfG`&V;vEXeCG9s0{9rYLJe!YFp&`2%d&vJuZ(CwuPP%9Znr zj9(jO#@{J1XD@5XoWuT)KRkpk@1;x^+ity)-MhDQ*WR~tZ7PUw zVxFvGAXPU|69;jPR(^MiE;Qy=&X0^>lt9-!yLYVTeGk5!;M^#O4nIesESQod z(&;=lt6Qc>Rlb+r=EO1prbt)(M4R29^<3OdRn0xH=~f=`(! z6|p$XG&nty^%Mz5v1qM0Z4IQ7QM3jv-R<4z>k3ZAf?lm9m5Sg|)YM`*%4xxdQsXdL zD5R5o^&h^7!|vtE*`r)I`G!ofi=}F@S|t*U&{rzauF2qB*Uq^=S1>zl#EVhtidrUN ziir^ViW;jp-!^&ibUQKYjbJg6*5#-hYE;ru^2rDq9C(`=$rgk-$HVZj7Qv&7_)kz3 z9<5?UE}?oFn`sumU#Ej+mz{DUBtA9|fjm#5L; zke3;g(ark7&BVe!naUTH(W=(T%#<0eu$NVYx!r)^`P6GVN`;c#=-ZtQm^C%5`YNe- z0i8+w9rZG8-PzkCYx@?hPJT~=lS^FA)=A9$nt%Mvqd0q;XldzWQ9q5^rX{b-%1g}Z zb!%igEEX5-h-PA;m`s?oHaAi%mGDPmym{g@Z@hVlg{wnsy`hEfK@Y2zI+#A=mczbE zT7}=2q>`(%Fdo7bH>16)3zf4f5gQ_zEDW@td+gI}xp5~a-Z;;}1INfG!E5zUx0bIn zFbi4yp@3Yn*eo`*IxUL+dg93Aamt~$%HzeRv(c$DGoHvXcIE<0cdw$~sm0aZKqVK2 zT8eafh5O(2F*a`-#G=3*o7bZeQV3yqLro%E;-!N}WI`~RN^tSmakh1JvUl@(ye-{a zxiH4rbrMVM>jQ3SBUWVXmkx7}{SV>PnM>t!w*C6m%p z%3C@3;u&nMUEHwFgWYVQqpyc+OV=Bghi;n5o@lryqQtJWyezE`Erf!{sF;^ZX1cMA!NLWj45t*ZvmG&}gw@BhGx zZwZgL9j&vKd_|Am;Ki!gC{!R>Dbdj6p*ikFr#DbhvJA90@|n+m4sm;Z_POT?Ev}%= z<=EJ}hUG|*Laitz5w&tf%CTGq9mZOnd@4n7Wtn75oPBIW<3b7{unQV_CKG8tamN+1 z3Xw|lHh76eL$c-MvfJe|L>R@biVAfmj;)-dE+FZOg3WA^si_v5muXcPRjo`hTf|UT zVH0hEdYMQnj8>~hRj%N%DNrw=RqIg1@ZM^rTF7A08)$SX)XFKMk+^J$sC9~jhO5hp zlz<2$CsI(tDl5)lA}uXLBw~0c{#_XAG`n+Pu`$-}-a}7wJ2g=ZtQ47_4)Dg%2y;^lWKvl<*tW>UbrH2l zYoWp>s>78c4vUdJJ2unYVP`0iW;$CXmegTTHSzrKE^_eTHS}r|nMj#hDu>h9#pB;O zhxWi#$(AEiL7OgMH7fW-7)jCMZE3~jZe;7mb#(U+a^l)32M-@6U$3HAt!9i?3$b8K zZk6f<6~mV<(9zb(nR934pvhviP!)-)P#s%YN1{}ca4?V4Nj4gxZZS(9Ofay7!K6c_ zm}I3(*crr^I}uOFFR&N{>4cKBE^OpN6ED6n*DEOErBoOFUNHbmB&E$u48yJuzXUM1 zh}mkVqoZ98&O(t88#Zo49EwFHF`dh?GQA|ZCxwz=O1QCDvXt^M+zuCkU_ic<1s_aI z)&;y$d{Jv^VVTfMAe%v>=3l<>75M?F7sbWjhtuhlbr@lE5gTezQ*t<5QXeg%?UkbF ziAQN|Z6c!qgW5_W5|`0lVbqwuFh{Y1gwcsZ{k(65>4jOTWG)x8I2|@7#%B4#qhDrV zuosiQMArj*$=tb-$ypyC|J0*I4KcwyrM07tfM3+qmihU2zC&PQi7S`KFj`$0%{rDB z7O_~J@&&Iq7`bwB7DW+;JQePS4o0qC#btIeIzCA~Tf}U#a`?4lG&Q==sEt(XRWhZl zWFZI%K_Z=GVcy5sR3i;!>*3GIDu=R4OcE{HjWgbUugEWMXz^SOSNen_3W2ePR5u8jaM%c1ToEayigy ziG?DRGa6EgfaTS>dg&r#W21PQn~6svGJdNPx>TKx?+#xila7H_!DcbbIKEKRw=}h} zI6p6|MFPSo`sxBqfA{`^_c0PxqGN7*;DCffR5-tWh zxpb1>{^oZmI^^(03gT4|jAyVIEE0w|I~V86UwT4r1g&-(;gEQk>QJk6OifHuDr97} z34fiR{Nxo3dMzG@7o$ayR;+48MKqfwovPqza40FAtA|1*fkDwS8(1M%sG_Qu5Qk0i-4OMPr+@z^UNmSy zRhFq8u`R8O3R3X;&&}@C(6`aS^r2}k3|+*iHxL(p#b2HgxpYR_G#XtE3}3jy{L;U1 z@}!5i(mdnw6(HiT?x*gfZ0z>O;Vyp zFc6Rf+}4h6$|Wstp1H)MU;Gkwr&dYyP6A!{IF z10>QzR;w_+==tIIpJIA6fyL26aCVIIr-C%J_mdOPp?aP37tRu0j-V-}dF9P3*nWOM zcK?lPHTAj{gUf~60S(*ji<{l71g;?iSCVSn4g>Bx8MCfdR2vZDkqa2Iz^2} zr%*2yC4W&I;KZ}_|AtWFJ1)K-0`w^&;YO1|9snEM4WwfcY$gMZElreaS?;)d5BJ^o zPU`t4EanEvqLQT_WY=A{QmR#0wfZHVdG=*qfBp6A2P;Li?}ciz1G54KKL=tc8y|jsZn%|eEXZ$;q?l2**Mg^=bs$ zL-61BzGpx8Jn&vLIxP=w_3&0%PuChrK54tEctixrpU{nKaOiFF`6q-c4JI{j-@6ID*-T3lxXoFzZ6-`s1Nm|uk)qM5 zwTMfE5X97LRr$`b+FdeDXf_#9v^g3YENr}?nOuB}G*GKo50EYtaO(^NmQ(!cwb$wD za`A{-!#&%#ayXu5K3zdoE^<>(521RB;ecP-lB-sQZZQx@hlr}hvc`$q-oW-fdkKeD zh%7Eiv*UvwyqEQx_cCV!4*i#i&LKB*Ouci5y$EZKhs^o7S(RQVcU6 zi*v)eRcI_l99^r(hKk(2&BWv1`wr9R6TJA;VMfP&_{T0#A6P|fAMGn$6 zDi!YL27dh1&-wm$|Czzvn;4p2pqxvfF;;lTXZK?CK>Fkg6;+bc7fn`bicS&>s__K`53Z3|JVr4T=EyI9$j3f&AD!*(_+|^de&{vIg*Z;9usnxo zYG~k&TW=z(E%Do5{DNdk)J*eO1oKrTo8$smp<8#=X{&Vf~2oLS+;0|(_mO-NSa;Rw~bTBaf5zF9_39A(?OcDmbL zOf8J_t}ot)b3-Q!lQRsTzCt!pC2;jPYwao=`kYK8IXf+U_-`L1oSNs<#f#YW4r%CI zn4e>C{W>1|*1vK?_W-qGg&#ffQx3m*h+-*CJQnBD&>4n~9;LsfhbFh4g@q`)@4lP% z!9m7`=9s!Ng)gweQ&0bjhi#w0+PW2QV+&1>MFO}ISmxfQ#+bixsdD6)^%fSd$k<4w~z`VbPv#eo07Nt|?CX!Xq znA*uM&Jn(N2CXKAVfWi5hbSO8P_+swMUThRgvVjUS}mX{s>meLlI5dUbQo+3`9elk z3_~mPbl?9jlBp;Ob(T~vNv@nhV=_`mrcqZ@j9xs;P$^3~o#WnH?_uxO4J2y?Rzg8) zg%lxQ7`?_xx~OLV{!PTQJ}k91{NX6miz{dZpgfnuXjb$754}sCwI?Q~s1;$&z*;`K zZ;xa){ps*)96o)5Oe#aAUSnWj0ChD_J}DAa6^vqOEI4hYB4&%gaaJECmRK0#wu@uThuGX`97BG#-%>tV}vZD!ziv zq9YoL5sT-ToLeGUOp~(bDcf!Ml68`C!GNtWJvWU8asH`uIUQh=PK~8=6<)s<%k(UT zOp>0#4vC*A)iN?oCKf)T0VNtN!k#Ta`XaUef2auY&mx9j4!eU`C@jxyN?lDRq9MCd zrX=t-idwb{>@Kf(yb>;#@kOGtWw3pHKP7dQWVuEll%Tn}0ZWUM6Xy$@eQSp3(lxej z?`H3oUaU%qbScN>xoN7o9OuRs>FxEgX_cKO=Ne*hEu+%`hE5)$mJi{u8PTAZ6;!R( zMqMj-g^Q#zb&_Q@=u8rbE{3mSSxQZXPHoGRHfb3 zKr#w?!JJGNXl!m~%}s3*T~L^hGIR9=9gTh1RZUo{3G8|emcC9reS$5UBe}Fdbm}rf zVNP4l~ ziUI{ztCxx7telIOZ5Gs8oxJ~vbBW2OXUP}i?;raXb)yxlr;VG|w6p*AUEI2THR*hT z$jBM8z6H{`C<8mYu{HOjGdFVW+*KAYU&F2{VKW=hR#cP9VdhA~!a?AWqb zwhb(`TIiW&lo%k&SdqF7R~5)8}OYc4Oeup%WO%zHXw zvB-7!u}a0<+$xfqrvI15le(*GED#+Uw--^PMe*Y zx{fe)C|ZY1sfn$5rJTc{wKH;Ug1TCZ#q4Co7m!1s@yjFBvjt3c3yEx8GLZzhHWCU- z7n15a>-P69loJOnp>KQ$1^lFxTu$NfM)Rw@cUffkF! zOl&2F64P@0cSk8^%4Ca0nc5JQqGTc^6MW+EAvzAy*O_ z-ZHCJua;e7l}01EF=n$75oO-F?Ivty9oll1olToa=wiHdw3`=R{WE5RfI_-uoK@6< zXXeJST5S^0?P%~&Naf@vMi@S{1{0ZdTB=(`y3jv9LCBZ=-l+fpAOJ~3K~!v)>9KlE zMN&kP>(JWLOfa02btAQc1e^==kWO!6b|EBxCI*v9exH-^ENX2QgULv)R7aaBl1%uS zo}ZHsNC77_2t|jgO1&aeP8T2$5CgvH*9g=8LkWj2+b~#Nte-@ z3@BQW9E}qdaap|>+*f$H)*u!)nyd@g#50HVR2opA{Gmv(bO?w;g3(fK(SWD zY!IeP8^vM)v5mA@?1Uq6((xo`0zNKZ7$%X9qEnlt`Ajj|_~s9vBNRzUgQ3A_maIWT zr9^X!owKJ-GBq|vBos!g7wUFl7!{u5|n(Q6(q=WsO20pCvtZ z4W(A6T(0pCpZ_>%z*G){(vV3llm7z)O2D4-p z)+$x`?;w*;Q7x4*ShSc87JmBUpD{LkfzIw;Ds_c;swP3zlNZh~zPd)TxD{QomF1~C zkxY>*N{WGN3(SW@j7~3dZQv3{w}+_zBJWwXity4RbD$q7>mYGO2}=gNZ?!Rzq2B z;H@Kvm^%0ZUFrm$<_30d*+FF5$Hb{4BvVT=Q6%e;r6O9RiBL4c_{=0n*7o!8Lmxq> zI5C`#wl4 z943|uvwUS5_0&A?*tH#lW)10ThWXG8um0v)tc!D839v$|WnO*lG|xQwKX~j_0*iBe<4d3CoB!{t{OzM3lj-47B_|gTzCxPcJ@q2P zZ@kI?on&5+c2wE@-&$)N+W%rJEJ4GNhw^;(5oxyTp3_9$Mvkx3P2M#0Ti=+esno zL^0Q>=rXLkxtk5QK7^uk^2B$4PT%To{y$Z30&UrSm3MyUo;%OOo8PPVN;Rm;k~Pbk zELoCe%eLB%U|Yx-OO|A7w1(1H zRjRq_)tld)=lPyqzkOb%>AO~`O7Go!?m7Qq|M&j(x4-@1dlr;(gPNVcSJ{P_D#f>S z{kvxr4`y_5{wn>;&;Npc?~lKt&wTcGRo-^AdT~o{zI{fuosv2TUVEOBiMVwGKXv?N zUAXpY9a-+{GoSmoKKH9XqhfEO`lzPwKlY63TV(|TQN8lqw{^!g`xVa)^+$j7d3BwD zlG(mazP_uIZ*FOOvtrs$lwc3LeIKH=PEjBDzSs#x5zvMw4f&1OQ% zCg}FoRZ0mZ-Ix;Lq@tmy`s2PfH_qs(=cIdo=xzXRK#{+>vA7=k#Cw#A-KzdzS0^rP z>D80xtkF!hSkdaKw-t|$^sB%5&ndK2U=-9=si{*ho>70Rt=_1td)|A!Vz5yIj(+B6 zf86wg^O2MWFil)XGx>r>p`g}QS2Y=Vrb`)egI1nDm4{jGsneh66QBCDj$U(}=5mgH z@)I}c_L~Fx+BY84*^?)A(~%WT0*lsu27Tp2|6V8FI;sEopT4FC?s{17xots-kfU4kM|JlP-zFOJ$n7f` zpXlN?ozsu$XFv6R-E-fqisbUDM5SN(!p9WUP(5d&VJM@1b)b7b@?I_PODPx&=`%n3 zb9(;!ujtKJ|5iW!$sg9r(d*TANBS2(ai?CIn&|6)_Sf23UsECi+heR@%TqL%u=oOh zd1q%s2M_Pl?|tESG&eIXFBDcbluc`)>My_gsNQ(-Rh>O^T*s&&$Mipc z=4bTM@iY3`|MjQ($j7eHO*bEu*PGJ=_uZ%ABq%q~(^a9M$#rDXX_MUP_u3Z2k}Qh_ z1LkkFhdl%10E8?NHyWAL34qXWNRzjTCEjWD02>8%S|||ICw}tB^w5J3DxS(~VSY|- z-_v~`xI-WM=)3gx>Z(q>`I>SGM{@~Rk*TzD(vP zY+cX|hi}l~#jBMmtmx_m>8c0k^>Yv3q0O!Hdg+xnR3GfBK8dQ^*wy|*Qt$fAFKM8j zrmo5>5-(hjr|!f6$|kd|MyB_no@^-S=p$89njL1)Vza zx^|1F)NJf%>By39z2j~z=H@k%iz^zXf^DM1*WIA#@`9?nmv#1)XH~v@!9W$TgNYZn zwKy7&O!6o&@|2i%^vR!nzaqgUoqN5b<7Z0-^d+MiRf=`h%SE*-b#17pes!d~Zn$2f z&X#Jkef63(by|r0XH`x0)hu0BJULNh7*q-^^k7eSzyEICf6vvLxpqq5{NBrY;jf++ zQYEu92NY^`HQg%8n+fQHAN;7Uy7911?o{-hzy7-V^|usF1vN8$#F7TZ=9YGPCAE|D z+N?GeU!GGwGE%v=qt4h-!wG5A3WufIi+w0(A9U` ztT!$-l$nm}>;LC}R4U)l@BjYKYVP2*>PK(V^G~ko)KlNpGfzBXvKF`Bb&HnvAJm0n zRgvjw?N5jG;rHFBTdzK>6PGV3I0*(sr3bnu6dL!bQSJ2%xCwx$QY2!G zEdmr6Tx9+Mq-a@MtJRGCP%M^|&E%BHq_wrRY2w7`R6;vDo5lhICEwa?2`19c_PWs` zC*z=@&(O&czDFn-A=+##fyfNLTRM)0=4%OM;3^~E!V@lr2mdND_<0jb%Wq&0ce$@O0R^_aTb> z$fJ+w<(C%~4!J@z1R&w{*IzY3H`@N9g;J|GRmjb%R^KveeiLE;R^7m_;%-^J-cadG z*lMO5^}1y=5ufZ2`>NIGa1>M`6jCoVQiBEoqmBZI>(CWrb=NdY;}bky_oh<`?&=R;g%eX4bMDlhMSw9)u#U32%C%vD{!tbE%xMXU?5FZNOx& z>tC}s=qea;B+oT)CY6ZWobPOJDHsVUk%+5AU>6K4KQpJTjdd-rENOjX-9S>8y7)%Z zYN=yx+(6iVZ_9*8(?P%U;SgcdR9d-AR^5J2#adORa!sSrMB{-cFVGdtso{96L13u$ z?KKskzLzVCAdnjgt5z(k+iYuY-->m?x$3~Y5(!swU}g-=iOFWt)+#j?jVqT8sUPj? zCw}P@x^ek>O)4dwxwtB);Am^JqFgGgPQRgcx2E2>qgZ%GAvdmAi1z0rJJ>ZEsMGK1 z^7@)G$&|>}0L*%>Yh6t#{Y|H`rfsl^JJMEmp0YPQ6*)qiIJqami*Sb@JKE2AD(d zZ?(JD6)*;qj8dg)#k#1)5)npHv#Fd;pMG2EcvrzfN{M8~GM?S$ z#7YDH=KuMI{^UP=$-v-P%x_nXGldN;tr1NF9-BBWy(B{Ppil)=rSX)yPa5fC7 ze4=PTR$>OYbn)z2EiEi)V{J>#USGRAJDQ)HQ84J~%-Iv7tYF+98>kK~mmrH5&JT7R zM~*)@cG&pQWNaWZ_O{jb%f^Dykd+#3RVh!$mQqSK&Axb8h+hUk;>1N5-}6i0U00=zEj|ClKj`A|i+bxg?97gwaZu^}lm@-F zC1e0tT_FvJ@)uh%I6a5jl$N7d3UF%?aLc#*V=mZ*_Sn4m{F(KSEJL_{>6iO2n78jl?_O!VXvPwV~%@77z#PpaD)X)lcQ^zE;IMWrZs*{HiXVI;V4QAJ=-n ztoNS!h@wMS;4|9TE^2EWRz4BevtRq~YF5@Y3b=agJ1^+X*Nf_GmUYc_H`rcF<}xO< z`kik*ruy!NUVZfytsF&jCM6^xLZPTcP=&C5EUecroY(G7Q@gRa{_?BeQFk0vE*4Tc zk&>b*OTavR><8ApE*c7H9Cmd2>}5Uu^z-W98Pe+~&uU>Rsk0}J>$zuspw+kDu*N&d z*`Rviu}YWL_2#i-5*giiLgS&YzZVSzwRLe#U;3jj>*JsNgbrMt)mEUVY&NGCkCjyG z?kJgaub$Lb{_k(8*%~RDa&+?iX`Q}&QV+c2 zE-ftY*H~j!s=IpijW_i8lTX^Umogc%wFvzNdwm7GhPtDcc5A1tWF#1lnRZyERn;@c zp3xn5-lSWvyGfmKT~lLM&pr2&{_ZyU( z991G6u@b_5pr_J!q}@tQ6UQ^Zh>|Dl42g9bh~P_Sa(OMy&*}Z|x>1LgrG42GeyAwUy^sGO;h z1_PSEgiOn6x6{_jQc}U_K;b}8`<<{Z7b2?9?$`42VdcWEQeH?qH3f6Bk!N9nPIlK#_1j zOS6kwUMeW8n3dB`=uA$6Y#dZ^tE#h?&#Ts`TYQQJ+D$jyXytjWL0{X|l7@q>`RA0d zy6DmkhYCfbwomzYgjlRMP=DAGV&zvISk!|be4mcK^N7VufuMsVrBZ={F_+G7!F~(q z0}p*b2M#Q2;6~Jly4pG4(+5BN9?h=IXfk%SFFd0k9IxslAAUgl_bn;r<}~mEy5pvU zA}Jpj)YW{hs0-&V>bd7%)Xr*MzyF2L>)?BqU1z8m(d>xT5!T2;?H`Lx#FdP!7mWs*t54!{Wl3TQCy3qN(x?`hcMd4n2xp5A@$ zO?vpF1?%M8>JN16`&dJL?mT8*MI-gi~9a+r}We#-_RHT-7o688?QI{pe5Wy}$G$@}e=7 zYg=ks= zNYlZgy6#AQMbxYhHJ46HqqfS$kzRcEP2F*GRzLp1>ooYtEfPA8jgE@7uGY?9(xsEf z6j56@U!BuJvZl0CQ`0G`KPaiz+|gjz(7W%xPM`YpgPNbeR>M(Ljw@w?edX0vx6;<- zoeeoZ^6`hfr(bx@T8a;;TTMl60W(-QG}Us&%1yGljLOBLrt(u(Cypq4G#<5Jj{{qy zkp}&)78aJ&wJu%_ORUk>7R{6h3Jy9^eA?r8viw<%~vj+DKYi677R$rw|(M8f%4e#bLXl z?81V2?Y6=ZR};roFyLC(G}s!0PT#}311{s))NEl|-Tp{}N!U6#;0d0J#i~|Tt}-@SG@7)HzOYzOsn%4#*Eeic4TE&r|Gz9@}%6mrLo^qMAnuDG-IG|=c z5{OuL$1z7<__)Ajn%pZXEqaNSjM zhHdpnu2RXA2~N|_n)>uuJfXp$sByflKlsBh>hCenl|g%R7|^|-cZ6bF$G2wMMGhuBqw4qZSHOh9lBtc;CZA(oQ@-| z8a0|QWHeI19BbO_hSAXL)D4J=MHA`|+eY~XI3M&`BWX2SEn{jXqU>3O=DP|w6Jy@F zPSorHzzCFVz&OfGse|wL2a3?)rCwGz9Jgm7fbI>4c5jn0-4nxBKFNNd!w2kAK&oUc zuF7UfGjj{tt?nA=Ve2a3TDQ#N?v}MbhNev8i(0j$LZKkUssTcHHV~CmJfcJ@ZCyep z-q=`v=-^?ShJ%6P+|K~#I-v2uu@Z-3xnj(%UZ=06rD-7u>Ud+j=D-`tQP4^Y6Un&9 zfFX#TOlRc`#^(4`+I3~nm#Z}tj>Hs>ClnZtjcqwIozXBDRjb}sP!mm1dD{~g` z9&1NEajYaA?K{^E+qr=#c%5uiJZ`1ol*t(*7JWwtfV^j)w`+{Yromui;Kt0Mj3)v3 zM~X+2a=9zV(XijOQuE;$z$~a#Dq>=p(O^>Hc+iA5W5JjKu1F`tsM;=WYp$@UQf)`f zStJ-!I+d}GdWUpU&x{AODy>_0K=8bRwsS7q=jByFJqH{QCc@H=g~j zf}UrL-_D?`LME?VKC2Ta(5dUo33`fgzBL=_%h6n>pt-pzV{VRy6Vr_Bw0jzk{WUl@ zKcmgH%gPk8COk?<*k~-IaL`es-7!EO5HlQ&S?OnR?5R6MhYDSZo^|(h0u!ZDSzWbs zl}?>~TWDBNZkkR-O{92cWl5(_o>iw@HRd--7zB)QZgISsbM_-F(K(VjgOP&qkW#Uf z4^Yx^Xm-hfrdDSlM+4KYp%grs&1*bt>hkKAQt7lt1OO3Nl`0)QNgkza?Rj)NZunYn z7uPl{IHpq<0rJB9qH4{WrsTI#8ul?DdXi(bJ>V=CM47-Yk zDBA#-4QXy+(X=}Gir%oNe0E9~FI`fbZpw>u8V$$FCQ=%BeP!}VJfL&u*41iN)NOT? z0c7jc?413{-}|55izWk_Oc;O}OY;IdZ1>dk(-L-O15>}Ky86(4qXr_=;3|4n# z*F@LXFI_M;EdXjVl2R~0$F8>KmhuL|7q_<5=ysG&XVmX-zM>rKX)2qOr?7U4>zZGj z*Vg*BjUf!(#<;Doy!f<=7svYMm;PAiPrRxN7cVFhLSx34#F(0%(|Fj{p=*yAQyNiL z$_CL^?eyzvHd=}X@c}7W>1ld?QJs3%I_)|x{?{pElkb*boV65;gtfeXNsa2z%2^t% ziYR&AKXsLyMnom;YJKOt-uv)J^!eZWBW=8KT>tuae@pFVMeSZ!t~XYxS~XzWnUF7Y zO^=pj>h15k-o%e-2mAVob4n!HM@`dv;-Db;k@)cRy8Q+wU1g?YI(2GO?PlNnl~$Dm+eE=o#JVg}9+b%^wR&b<&2HCxj8?m03~pGx z6K|+kBxH=h#n~BcZ|qD*0;$ta|a)waBGz$y&T*rjA? zc4k`n?3{|F9pwrcRmwFjEG1Ma*0i=!7fE0e55ZVep|EslKXFD-#Y%@NFb%!2!U0z` zx`<6Cip2s3_z@$-6Dcbb_xi&<(PKx+cv7Vb)e>VZ>|0W0ccQBn=jEhIDsI;V`!|Zl zls8thUNKhs;iCt|mq#X^RyQ^kjU+{Kw$ZLAH#<$|F6&xJG885b;Kl0YHJdj|g!&DobIC+f@etkY!x}mxYXH`6)7g;D#a%7T zE@*ak$vWqz(vEda9(qI7ihX&Lq0kdrSWH^en@TgJg_RXmN>yERXhrAFyse=V(SXG^ z>S}%=q3z9vvbnrM0Z*;oNc)#pv|VhdxLZ{&6OuwbW#Va78f{f8ZPB$dk)4PIJ8?sr zTAtI|nRSH&F*VyAefFRIrXITIL+Xzjdg6_j^vbc9Rlab^x+iW`HkFF|N$p62J>J#T zhYxFQeNFAo*t$K2B0;sfJ{ z(8u(F8{ebJ*wL51@l}2Q+kYb}RVedCgVtD3d&xQ01^&=vLKB0q$?uT3#^28s3P!S+ zpDUOSV!n`8wb8I{(~uq}<_Mpn^?qp9hrHSqBiRU|*BH(z^G-QB8OZz2yJN4hCua}e#1 z$NZSO*EOFGUvD~}*X8xg8aj>=Zb<*~vp=DS?z>OxwUnNE{hYr2$X8S`R zaqLB9B2l?9sn)6M-aGD8FcR0!c1!0kownqEv(wUD58k4ymX<9sA9LdB4F_iT6;5cQ z+Saj`UQ)BTrRiM8h&4SbdT1?5BZCN)BNI`EIUKij&j)VR%o+&Clg@{jE0`31hA>r$MWya<8SWa$Qe;_bH7hJ(KXc=Ewovc=OGgnV*va zVNtF1@>_4}m8YN4s7KQkN3lduAAInA+IL_{ZXlv@Afe-DPwT|%C$+tHN%uc+lde5_ zMB!*g)47~#wW{Ljl=<$(Zd|^iL2Y>uN^^@1=_06On{qwKL*;v=0S=L5z zTkpQ(CVk|g_vzYOuGJ(OQP7E~QJ0>1`HY@<{JYw?cuJjmMazrQZ+_uNHGA-gD!nDW z@XRH>@b{1D%~xO5d+)tPKmCh8tm&nz6n1k)pka-V2R*HCZR^-Gugbaeu3NlXy{!x9 z*9_^zzbD}3Z)&jl2OE^qBm#QN){lo8ny_BTK7-?nXdQtFNGNP5V^DdXeHP(v^pR-W z3PXz^g#czeM$5&q@~=n)Q9Juu3!=!1P@+MnMZ}EJ*&2Jkz3S%r1CdjE-St5&-EC7oeQ8yfH0$A=TV5l`sM;$Xv z7$>8idY+)J(!G(AI?5V3_+Tr90s-|WV`Wl)Cm7EO7^nst0WBh)n;?qJ1qKgx!ovK# zjS=ODT)$jxYHE5~#o~_D7Dr%*H~~K!Fc^vduU2a2*yHSn!y#kQQAQaG4(*1kMEViS!q!!9XDsl z%0D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%0D3PO_4WH3J^69Vt z2T+0luvb2>Uzaa0YBcDodiF(Y`am{0CB^|Cyp1wypnALc(-JZG&-#GxV;acxjAu0( zjfn~>hlW1ore<@q28I<%1+DC?>-@Qw^oo7AS}JI%uw^Bf4S!jcPFL&eJw5U0Wv!iA zmeXo$=!MnVZd=bn3~M+$=>Q%=rWQ>Secv0 z7tq*AsM76eb-k!jf2f6-IeEMRHz@@`E*aA}o73v)B@hC6JwY8keq8zayn4<^Lx+xv zBco^XQXq!B_qka|;2vNc_$Ao4B>P08VJnFn?A#A6vi~>aKgPQF`iH1#;Ku$3J*n!%9{4R!Ot@jMCwNlF^t7Vd)~qL)foCd_v8t zR9!8ov%RgL->Y_uTz!_r&r0@@_mm8h*u&odd-!X6`tjue7k}^hTmVjc;2+}z=mZ{v zeqpb% zfX`*z*Usjq!qKP#k)TM0C;HiFwk++B8&?+|kC5FgAXO%v*80Y}MeU14>fk-9H-}o^ z`iXTq+uklJ6pkq7(9MGK$DtAR4Vj%?0#F9q+AMdwuAveFo%LD=H?D=_g+mPS8zq=b zAkPHf7KRPr6@$fk=+lpsduY^cu&i5xk?&Je>o)_3XJ>L4aMJz^Y;yvJVAg7Nx)eZ{)$VsRk(<)$g%`AZ{>w6%P4TD{Sbo2fm?+{ERSa7`Og_2yD~l z5sso>f2cvHFHfwkb7!B^%5q_s2dHhoY4c1eZL?C-nbS|}%9(&tu?Zs&?sckG9qUmo*&w)j7Q;@2I6wYoNf` zuQMlKFrw~OcPL5+hP{El^!YEEQRa8NTHPqPf)L?a-qyW;_ceKYBO~fh#v|IgvSp<7 zK_{w1`;Ta2ZCU^O^Iz0dHlm$+QIk{qwR~kmiBwYMokb1QR*(#{c29-vMeS@C^)FAH z)KqR(@ zrS&_%_c`rbm{y@!mqX;XxNTtV-+%FG1rh)i%W5@iip0|j2Be1`c~DQay~>Zgniy4- zibVC1H@;DWL0Jb6?bE3Xmo3YKRDNU)kq)@+5KQbX6Ziu+5=EIaB)7%whVK8DGy37> z-#6mq^(P)vvszWJ>1K^kIzlFin`z+!-X?r^GcF+Hg*Y3>q*$)%)YDF!IcmOz9T;9<8KJjn#+E?GMOgyLQ z=}CR-Ti@2Dr8T?%=bk$)zay0^RekOc|5!iz@hg?hPwDW{qk8_ypXl+Yej@LnY5Ze! zysFkJ`s*+LjcO~e)V`~ZsoIZeIPmD9hrgrktqnzqgjKc`2`6;&>8F+Xs!zvnJg&a~ zv`Sk|Z5P&b<-!Y6->VCkuP7dJ^w`N$y7wy&>iTPD6$&mY9L(ssQ&)Q@q6{e^cOzgU!5c@}&$tO$FGfq(lo_3Cz&8ovY;10raR#tSco6wARK_B?!2js17 zY2R(P$`guczmwEQeA9a9sps`4fA%GP>{qAs*7v?m@jy$1L0uQlUeKs4g}gy40Y7s5 znBM;Bk7;7!h$7CEaWD?YJsmo6i*6fMw5gh$(Vy$-`yY`nlGG1Qp3!wDHuTZY{Jgws zsnTfZ{CZR0|Jv8oS$RUo4&?RXvyW@@#MQd>wRh;1Z@f#@=0Io9pHr_@)f?`9jV3cm z{o1d6R$uym{zf1Cxwq;)zxJD!JrMRwPd;|P%FRt3IXtWX_|12A z6<~OO#@&U%gHA*@S~Qe2^JdHTcyo(j5{+z#(smUML-gCVEGpzAGT_bkyip(dg-`0n z8*WrIkkX}oPxoIuumAZM|ET51|3#kShUz1aKJfAP=;uFht%2+#|BN=;aXs?zk`|x+ zp`Q5hx7DxL4E&y+oKgV((O_8RQC$93To)H>MuI!Pa9FGB>pJ=Tvi|Dchji`rC-i~O zd{FQDl}|~YunHSRo%-?sK|Uk6%WUsf_1Q?t>P z&j|1$zpC!0XB>>W7odV{_KkQdW>WZ0Ky;p3vEhxY^ zyT;t@x8JGvzWMFC>bgU6dUd_-bvNmj8|LJ9d}@m>cVCKKOn) zFlOnF`v*ce&%fo_2Me$Qo7Rjt56@Qx>?X~ z{O0R)%Z*oQTuW(YCZ%jBq2sXw`lGu)rF!41uip2ho_}Ubm0C-soed3Y%X-ZnSLv?n zjw(JktsOvbZ&=}(SruPAt#GI&e=4C9w_T;lbnerPg3liF`tyVM8DK;LZBdpPtkAPd=mf-}6?z?v?v>^Rb*-rKUX2 zyS1~vrWY<;(m(&`5f!!zuHj8J2r}%a{5e1C1jSnBz^LYL92UwrFrp#9WleA}FU-dt z@QE&S=gKA8&1SP|wY%n!e(D#0L6wbj8n!Yzcyv~&^pvj2XB6s`b?VG9o&N5_)-|r( z? z2)RqP79?)Rt_td&*WIqU>n0UQd34p0gF1iuw3gP_&DQK$FnDAj7x&Me8sJITE#=XTvmq?W)A@pi1GYk zDwK_C=(M%IQ_}iML1Cw>_kZHe%4BYkFLF@XNxypKmfrnyuh-36*XXY0JM>Rq`KGqF zik2nPYLv8ZE~t-x@D1`t`br<0Q7f9$`LLsEx2m7}=&N+>z_p5b=arufYt(7##+$F# z^ubxJ)mysne}6^KURc&rv9ED3q>q2FJU2 zKi+Zs4RZVg+gGXisD_ca?t10zy86bp@~Nb%ovN0Wm-W5-9#pBaq4)p%J9Oguo0Z8- z>drTv(4*gfQ0KSKDHZVREpNF=x4mk=f+0sy1vNPnR<+#M)bWG*?)evVZS%Fd_UMGB zK6tkQY@xBE?8Kxx@wQSKuR7gzbt~uOXsnq9zkd1CAGH9|?DT|&t*(N}i1r=Wr(`m! zyIy;T=2QEX+jmIyjlMqm@eioc^J{f!N#A|oelqVU=sKBTpBKz+Cr9kQ+h`o?!2 z&?kTOUD|gbt#K=*Gm9HKd-lBXEOv`sjT+>?dsHfwOoth`?W5#M#+S^V*grL^x4rRA zMv6W^b4Z~`LK-&pz7M}crOs=0`oaZ0^qmLP+$d-;4w!sz)|&=)0XktL#nW-iT3@AfTh)}n@$OZ*dIRg`|tSglm$1nHz1 zv9e`2^{AF=HroccKpS!Owb$st!ld#OLF3-M^X?lJkJohlE2b5l3Mv`M>eg4?s*SCH zoN++MauE&oXLbF|gvNcUvAWtRZK+h*QDw(bu;bNWb5(N@k5acD(sU-Idu}zav-l9`mk!CB4kKcE{qB9 z?kG7ut+#yeqgs0DIjx*q(jB*4tEf}gFdESG%yI1$mozgyVGSjQ;gC}4eOj%&pzf%r z9IO_}fFf5d=$?CCp{uSrq@AsXXh4F0&D@gJ#c%Yt@tTb(HEk&piy5E=Xw&O?U1It% zva4hAp8tUvVDErC^m-k2dt~Xk(I_e#$f{zlc^`X-DmnMJW9Q+sP!$lw1(Sd><)QC= zUpE~&p=f+kz34!PZ@*f<^vUVwNwIj$(ro)E(OOHjR$V?@7H+nc z<8eDTGB`XeXd;4$h2^0c+F+J2jYdh^<)R6=>ehzRnJInmpTDb6G$@ZV z()`qZ<2-}FzF4ZNT&rn#mX42fFYxJXVbdkvgCsc|k}u>}tKLwx-mr{{P&uacwKW4L zor+^1=jx>^8ji=7T}8&4FI2Y-kmlk*)QZz8H@>qR59bwVEbhF&>dk4oK|Vv)SUPFO2TOG?Lb zs)ygOOMH^t9S#K$o5}6KNw1hJY8|1?Rv4RZH7iTV2&ueoE== zgv#ZjhD7_r(?-@?YwRc#3#;C%t6v|2zL8ODmd4B~>VFXwXkvCSY;rMN`DtMpje#X++ltajvszO)kk$FqTaq)jawWghR*8~e1(XQ&tpw@pg$ouH z?w2-f?QU1Y%BH8Zyu2*m*ikB;R&i}zfpAE-9i7&{{rz85$`@18YT!MpwrcwA-~Lm5 z`}!%8Jg;1%t!8_uR%6Td z?2tP65nV}%gu$Nx&)?5Vi;)YY5+nTB^A5!kq~MOm@^?LY^hZyqCuw!%2a3mB9v3oG zC`kao=?y&c21i<1DymU=Rzn}96m=^LTD`Jn1e9E_)9NY^>S$%Xq5JN=Pw{L<{a(v} z>V6l3__Btco;5S@`;%()9DVgW4=Ut!l!|86?F=>Y2JC!fo+pxNg`z~F{CeTVC2c(P zn4%F!V>-bOhl(cQRV-`lgBNiupA*%CkG?4XGfNte!`diqTDh`=VWPf`r**j+4E5!& zd|$zT{=S?*Ozj2=3_8=Gk#>iCV->5=r=$8>q<<|tI+T2n#oD|1|w}0Ruzeath|!U&D=y*ooYjW z^ap>Wsn0KHVroY1h8sb@aQ>{7J5k2->!1Ez%RoJJ?e$vQENEEWQK!1C$e(33F@I2% zb1Q0WZ>SyYYwYvszy860&_g$#&`heMcDJOPPP|ih9DS4IZCmG?Z+!0wJ=^$0<1zF% zNMQG99E~YNOL1>Sqnuw)eC>Oh4CE9I2lT*qzN5`6tD2kIr&K;|C8;~*x-OnSZ)G6G zjUAnS@oDwj1?9hz)5Pq8mR8nOs}!_Aq%RQH=`)Kuf99fAuUuATtEMk}{_8q;Xj08; zSyz@flTPpZ7Vq0`Tv)SF*@y<(}X)Qwm+6?|ap<+5s}rs#?X>2#~x zG$X@Dqln$8ACbR3PQoRy-2aPPL(L{>vk( z_@b)#15%LEwWziWb>08SlX~{)Q)*P}){F-`2sz_|U2fT$hqY;C4ldvYL2IRg!3Q)* zpqwo7q1`v%g`)+Kgx?rv02;_7Y@opyqFR^plPD@HD2Opf$EMvD_1GN%QCyR~24`a| zn^k%uF9kemj)qz|e!%3H@sV(j#nA4N8kI0FR5|zarqhzO-@eh@C|R1uRo;( zrHbCMW^#8ap7g5GYU`P&Iy!s)QT2;et-bJ~Ja2lnUUT<7>UJCjqCWlj!ee^+uf8nL z=@&H_59pB}{GD#S>Q{B$UH9k)ucLBdQ-#$HEzBL!&3CmUD7@kCl5e(&2A zOgQR|BC2hbwRrlp_FZ$6-gMV3T04DS_kI3bni%@^b02-TuAiINxHFJdS-r*Wq@4FD|{t%)@2^Cg`xi7J=Q%SCv!)Z4&ULk zxCYpQeE!(6BYMX>->vJfyH@_|4=Er=!(Bcvbz54$bVt?HYJhW;b>^k0k6$?epP0lD`Heg%bPEqw{)hI*A79g{~*Y9fK&;fn+KmA8t ze{8>EzO?beyyuQZ6dwbLmS&fWqSjw%N~QrZu|&)@^ymKCP{;D3*+> zy0a~>d@5{iTDeubU9+_gw@ts_Haok~=qMncdabU8P}o>ccaMhSfx?ln`2&m(V-1Mt z@iOi>K(cO;`;JZM*MAMp)k(#jsG>&#R#hTzR97x7s<^qWjl!C~_uU^T6qwR)fA+J= z=5I22-S#@#tS#zq{@3UA=s!NJsK29BVk9Tj((B)Gw_=fmHNYA9#(MFEQ~J{1eoYsyGNh-SD%pIKck^1uF%LY4U&?dN{POne{oS~p1-K)Do?7t(@^WBOM3fjPbhlh ztVTmeOWPOpw_pA{{p7n3>)8Goedt3U)PdYl>yYjDK$SA7Bc7vb4?4QEwV|gU{gJMm zS=8r#>o@erpZm``ddsWj55^@=SH1qK?!E7Red+)HhJNXnKCL&r;U*nih{=24ghH{P zW~VZ`;l{&SI4~tCthY?hYZUd$=M3dlLbuKB(_pos#pSbl?>pY2P>8IRmgaH?RlRav z-~9Wp>X-l3hjsLp>*R!e)}4AZ^y`UdPU{Q*^YeQ4iKmsxXY}m1zomD){are7%@GMc zN3)#@dh)?1b??3Zpxn5n)l)xE;;w^Qxb~2IPE4KlNarq`)z!xq^s3vhRlC>FdSOfN zd(S&W06XZ7D1A6@;Ay!t&<`K{p`QH7(|YvLm-OV1PU@o{f4}a$=Q{Jr$~$#kUR=`t zg^cEJ%xL4{oGx69>7V}c3p(reeD6=|DCU?u)d~D zGHIE_r+#=w?|+ddUA6!KAOJ~3K~(>nv|bwPAMd+Y^=r0az zNF4i7x1&TXqIbXRo%+OwKcv}1`{YETRx%9j$hF;rTCdbp?qOfYwB5PvmLc!*eYILN zZRwfsi~el2UGNKi+Qm28Dah;biEfXL9_74YRU0)W6EP)%A?;9=013TUYBV6~MkfzV z#)Lvq<9+IPDaE5(vg8Dr=bkc|oO~Xi!ikXn?SJ@nz4|pbE1ry~*^FuQtfQmZTlJQA z+$tyJQ?k^RCmYpY{@KI&&!7E${ox<|p+51cHyZaJK6AI(S8=1L?>+Pbefi4|Xl->} zx8ME>y(*niM?+PLbzND$pd(jbt9Eco0UgxW@B0hIy#syn1MgQb0;icztA(Oy?vb0$ z>&-JU|Y{XaMS}*V^(?248XcwgI24GQkJD z3CDLwsdUElw*fj}B+QioT9Mr3bM8fz!1;}o1jA@ zm4cQ{=J>4~oQg22AvmykSJpT6+=b`#;rF~%pL_o&DU8)-p<@Bj^A|2@Yw?1*^@fdI zBsr-{m1ar!<}EeK+lrG>Jn*UBm!5v+IlcXDcj=SA@;U`$6B>Fwdj8qV`r(t$>cFKaseXp zdGsOQN2v2RuQ9#`GWy+2YSRH88CNrZqks7g#=^mV#2z9mj&t!{-gn2&1sM4^_p!Hk zJ$JnJ&avO?NJEdFe(D(`Rpmq6D3ij;Az{Oq;)m{N{T?V9KvGbkfS`WdEWB2+Kv1=A z%`(J@Y^LLJ6)W2c_#ETuA_JgOB|_|ybV5AM%>qh6B!+WCc2%zf@qJR|LeaWhz~u!w zHQlOc!P)D$i>%WD0qw~N_|4HRmn%OVU{la9%jnuOP8m2-Q5m4UNn=v@H-pc@#en7e zfL5`1+|uR%*~|%b(PAZbV18~8uhzswW>;_VutdEg8?nCZrOb#V_5?R zX&nkb34kDFYY=nORT6NE)X`SGW?(@u>?q)aaC&59u&g!s&iaFvydoWQpmw(Uqw)57TbS+G&w7sQ#I&F#uzyYIggi+S-D-%ly((^85qFA}(p_0Lj zO6970-7;N-6^e(I&rVwlT!<;V7;`jG==BUBtTyV#b+l8dS|(9;BBxfPr$(n?QJeY1 zgqEv2ibP`;J#98iy877Fs+4!s?GmMLE1Ha|(;a9$>}p~Eyf(IW6z~Sr+^%R8kkW~i z%GHLI5=Fx?OP}qKp6>}-1dc8)fGqw{&@wLIT8RZiD%Go2QWNo!5#u!iSO^3Yk(8R9 zrg6h`It_W8h=J1k4oqs{6(=;6ol`ClRcU9eQDmrp`udmEDRRF(QOG9V!@&%j5H?MO)vo$H>shF4^nc#J+T$4%hJ}dj#Ww z)d9#wY#cqUr8trUcWO<|@7u3Jab4!99gh#`c26P-j z#snOT+6VkW%X-^Czo7DVQHgX?onc4yYE8jN&`PmcU__Pz{gK+kp5jRt3?&V|QEMoc zil|bl8&JJ4KO^L1Jestwe00tv9iL~1Ym0^(bOh`)+B&rFfVK)-N@X(YcRDIHn-;C# zE^mQNXk_X5GNTRIxf|>;xrlrua~GZ`c(r&F2dYWCU{aO)14Sug@As`_duM0I)&O+_ zIGTLFjg0mYJ)%SeAVtb$vle-SP@Ih1dber&n+#m|6huRlP*jVnR}>9}Rd2NwkH$1J zJEJW!#C&6o+fp#%Ge;cbAU`!@Kn(qhfc?gUfsJP<8neCPmrpCJYx4OqRzmuBzxP?a z`mQ?^4FGIyYS2sR{4*W>-F<(lZ$9*()blDknO7navyM2^GqYM>FUWx`GZIv>R8oDD zOi*+wJSXtS&B+4^^w?vO<6fs>`>?cGklzWbr-5;_gu_t-c*j1E8qKDTA3CI^)hlA$ zE-fx=dM2-NyQgp@u27Ufm1BVgjH^H}pmKd%gXT#7kk9xVa`A*V3tP%hP8t6NAhUNg zwlZ>z33z#!Bj&`N;N28zcGE6r!ya)r|9<&_k%aEH-^kwXzzuR4zX|)!qeL=hK^eyz zFgeiawJqu!^n`>A^aTR)1-!a+;j-Gzw%VP#rgAxrM!?e;I~el;&Cbtjr&JJ4Tq>oC z!buF-s=|I3y!JaGWvB9*o}E^uxUHS7vLZ3RwzeuJUkOI!Qqvlb`btk^OqWqkOJf1% zqSFLCXsbbH=&t_9mO#z`Vz@Ggw%G8OVW5!_)Hj=n=R_Z3pfP%s=aS(Tg!74Vt$|x^ z&G_*?1h>&})Y{F{*$F*{xi@bq$0*;!v3x|D)M7njXau6 zPiXPNS(O@PC9+8az%uzM)0v%iOW~L!Z%`U^q-MQjoF=2bSMfwp;aEa9+7{2j zlvzkg40+r9nukcvPKXSFgJDc9UUYpQF>~&Y4W2TNi<` zJzWtF{*2(3HOoA6@O#hT=ifLjsCmA}-XL3*zbQM#A!04?dE_4fRCG+w2#+bt^H?kQ zJMVmzg3eIkKtk(V>pFb&po)cUZ5B4Py1J?2R>^{q;Xp_uk57}c#}xE*RV{Ct16!_; z^+DN(SG{gu)6;Xx)r4m!( zJmvDXn$3!p%aWlqk)lMTUS!_fj1xm z7mNo%!vtkt@Q8Uv1}?QBAa-0?&p9Yhfw&l7_-D+FmspWd)}_ia1Fl z|DMjLl#eA;ZZ@=Ct!a62%L19cfJfKfJgceHv@WhzbnVd-TDy2z6Vqvp#sfY5{AsPO zZduT)-mYtEGN-F<%&M}Ejp0#jGNk46o954yOGTw;BRViQqw-c;C$7IqXV0J4d_J#r z$iaJUZLF?agPwFYBS`M)4q9urG(SI~-grlaE$PzPf{kZ78PUSQ<0_Pzs@Iw-Z5MRn z#8K-Y7fB_wSuCsX>FMafX|0i|7mMrinGIEIB^^I;O#OaS>HJt5YfW`q5o@F}_V#q` z)dy6rRy996r*gTaE2~@b4n5ZOjtm&TGuFh!q_Pu9#S;+~wsut8E!&Iv11jtk`N^!3(TK49k&$Eyw!J~ibbJ2PDa)`-XCg`` zBD&$08+3V@0Qgw-QcbDUP;>jH^__2@G#eThm(G>@4$dnS9Bb~#l+K+ksN3>rwOF+5 ze{A)eZ@9s9#p`anO;;UV(36+W>#-+Z(!=-PuV$m7Xe?}iTdh$w8OwLr+pKW1B5ltP z2a3kyn#yDpOD8Q^VASg>Kb0}Sc`)#Z&bB0wpfjQt^c$KEfM*oGYAeyjrw(FQ##F7> ztYL>`(KtctqRPI(X9fU6Gf+YYA2mP>Wozg(GDH&zN{8zTN1`TYC}##t=(akF@!FuH zPM6fcp^=%>9As{KLcY*Y>B)UsUT=`&wDLY`}jelhoBG_Nmru8I92LrLw}|v<0ahe@rj__z|@mbxr0{nmsU~a5gLl zu2yecTUS<;KRmBubyJ&{7d1T#pI=-PQwOY~E97_#m?lAH>2gt(jhe1IaX<(59o70~ zQ>$wwRZAt=dpUui`AO&ie0F3O^MbEWLkhC~2z2v(JH}pHHW}=obYV?jz3;2mxTZJgS_3rhbvPoU%}qjL!IN!f!8oX(c>d8)J?Nky*6+Dh89Wc; z;q}laf^2p-;RoBu*6%JrWwy8aD!l=jk!W zl83;!3&!HA)Jo&}FfAdR+}@cb!aI_7IZ*&G>ZST5Uy-`z?>Wux4aV25T z?^NqbCxROJn`(F}`l~N}RgZlAQJs0_B{>1NTms?4Jfsq7wHi$&({WWRHA9#w6~P&S z_XDA8#+@$!^Qbz#ff=&(de>TlH=1?J%-|VuQs?L9RW5BCSOy4Ds#g?pB1XLL8FgHN zEWd(IMCnXctLs-Z9t<@xkymdtu#6;1!Zz273OZz3jSQX7PGl|PB_4{YRNgjHOGq*y zu1uxkmT5#vbi0ZG8Hi3qgMP;{Sq2zX7>>3wWhGgCXQ*y{U|laqWDWpeM7-(_dkT32 z2E_L39kqKc1#y6T9gQ8I5n7HgR>7ydUd7{4%UZ+erMx7XoK~e;62|)gr#T&0y-_l! z(F34~Qyh+1rcJZmRDh^Hz{<#@L^fxgS(=Tye8I4B;8n{NGYUQafPo}~-awsZQ$x>C zzA+#l5$e7&sic)|#nLo6sA)EpSGij=1Dy;->bptRCo_SxPx(AH$FW#anCBA{NmZ&f zb-N=Cx_ym&9-FJlY}U$M;b%v%M`EO=R~7Jkts_jKu;WHqgJizBiZ&dLDCn08YXxQV z8FjnTpw}^H7y?&+q7c_lmMZp z9>+!ODaplr^CWU^GOR)-u|FQ+U3H8vDoQWRc!X$&t?qSY`)u1C9>%H2@m| zFX#`;IAi2D%$gr3J=Ie7ZboiB5Jf0Cfd_OK>-AD54&YMd!Q5>2-yhYzSsE#8IFMf zcor}xoo(*71`Yr={hk{nK|wKu0FdYzlqt_m&|x&j0021f+PylC$4cVqYB)DHXI&qc z*VgPc>c#*WkZ-YQoD-rHj9-KK!x?P004+K~hB!g8)M#z&h-~A^&bIRTyy~5n$Xf>b$`~Q~3#P@9gNrEw9j<-u6yS=4VLNFb<9vo_|SS|LRvvOrDTS0 zI1rJ?kpL_D0FQpZ_Akt6W2<0BiWdhpNY+VHnOsIY$l8HN+1!L0ou)eNzS8LgMR-=m zS#4BYN&xob7|rIf^=+%l=azG^E}2{Q8wL$OKF4+X(Qyc77t&$)eHPe)M?2ibaV@`Cv2A?OO)JTmw92|URq(m&OAzfM{u3R7xv{fvcT*Pj1 zIRM>KHP%0Cn`dXPkq6^30Wg;zaBqB&TgX|;v=~c*PS|^?c*3Ij0}9kAf8#%on|cp* zfq^TGE%yx{g*;||?CmpbCX7uojQA|i5KklxNQ{I-N<;~2RMZ*v)orzuj3pEe26bg^ z)iS>Ut~1%(uDuf#MAnp`WiwM+U0Jq0*J`wsPQ|TzB8DuSq0LTPl}b&qup1ynh7)v1 zCezkX2ZI=gu-l=$CZ)}-O_R59H$ne^Q%7Vt7M`N=QyTZw?o})}vsoxw+o^@w1(PoX zxr)tg4WJAKC~dX1a%IJ2>{VA^&5#?=pGu{5dHJ%91NO@5>awD-v}Hi2=yFEzg1OSj zct1?{4B*u1TBiNpT$!V>8!*{3m|5%m*gUg7$0M^5APeUD607VLPLj$v*23$09>I5sRDLU0hnSz$kZX zlpWmn$lcRstM8UzGCm&K*aLi1LTC*^-0Vhlu;cgcW-eOFf(v?SWC4`!z_rz}6k_CMT z=tibwr`c1QDv52XDZE--x@4Jb;ZW4%4PyqEF8Vwe3TWUNXyeMV$!BNmmlJ~WBxr=< z_%YdhUV~OwvkUWD+1OB_STz02+DoTWre|~6N$b8_t3w!GHah^21HBthO~~hjw6?xs z{7`cX3u=_h$|Pf2+qk0Hxhd-?*MSCtzzO+-j$^<~EEaWxI%B^!HrABNBn(sxja{3A zU?jn9Y$fgseNo)pP$2A6Zer3UtM-rOAyaTLR;650GMY55XY5YsFOuf>wG22#CI^DZ z;j!7J>10-+NYHE|8rt-F4I4`uTJ^h4+as(gd@2v?&POJ`--6HtGYCx5sSaO<3_^L` zmUWrTgk`@H;L1)+xnnx^m^}Q&PkuzNx#Konb^Ub~tQ;w*^D8U*&i&ujfBQc_rvTtY zo4~T$=)OK=_N9vDODJ;q~7`&!nN1RDwe zHe%V4_{J{37k)KWSpYON48x!GdV@N6;DD7tqKrsTAfxEe{sSiW1CGyR*y7Tnb!iO8 zqKe1U8hd>54#%oCsQ#%b;P;qqMfC;q6t|2eH=x>Tcg(KP(5G6hWI^R2l~T^we4JP~ zZkde87v>)uwpiFwBArn%L?)L6en1vA^af;o)=E@GV2}Hhil!`Z+h{igf9uT5g2v8B z<4#NRg>`9pQEz-33V{UuFKTy4N}G!oUI)YRiYdPHCT@)y-^mUQmyOD3lQml#vV zYuKYoWMt!M8N0^I=(qPs_(48%-{=oAx2n~;+1Tt!D2tH&$Re|iNc-@j8~P^42^=Cv z(K+}xtZ_5*;6)F)lq+zBk-;5^g*7`hr>W@)UA}xt~gRIblOjK z-mZ|33oGz z`3~=)BuGf$56+K`#CHjr8=s^#HUyV(GsU<^zRPdV&3D{3Cd-JZ(c_Oj?((6K$zUZ2 z9wVdVLAU{K6eE_*6`Zbiw<9(l;VeIC#vZ>p%ndsS&vm5HaUEw5)hu#`=!pA7}A%TX$sv2r=c ztyyeL2I<-WEpU0&oAup$!8o8^xna(E5@WN2;PNSv#DVZw))tGDC>e-3hB%pPOgvy3 z2W>vr*4L~94F)HzklU0*(!HV6S1guMuS-gH$V%CKj>n7&2ENmAojIa{?OtC~6FD_@ zY9=u6xcfFu@87R#tEWVMURTas*40Oj>AB}$P{h;L#B5w`r>6&h^q8(Ze@?!UOX%Ec zwyYd17Nga4%+fFio{>BQki?!j@r`y%schQrpEjqEATBSjC=d?VJTiZ5II;{d2nUo& zjOi8$GNYyebB^F3 z!f5C75Scb9_ZkgM0eS~y=J@1|I;!lH%s^~(dYYb?746UAyCa<2?zPQf%ECKSt{5o5 zy~CqN1`k{UfEaM+kfG9|WW#Y3w2tQkRce&f_!UV+ElR;28T24Wq)c#ZDc6I+SQuAC zfkFBQgO)rX{!YlasfxvdLJ>gmu0@q_J|VgU?7-+wr_&~&P`;UTPR-pY7C>Xa=O`Ks zsM;b^%x|4q6O`p?tXi{YSvdwCdF1kSQR3-^*9QfGlRLDuVQS?OWGD`P5PV#leMXdp zd&96Jo4|tbyG{%LAgdF{62XYU0BBvUSAQB|W}|Q}WD|zDl``A;-D_|?4wp2P>&pe= zayg6gm>e1om7mC~u(fU3TPVe{f%XY2btFOrXo-Q%ek3hDm(G|H!=d8Zd)cRCFX15K z91`^-TZrdlDFYB#1ZFo~mw88V@$5u3klm%7vhf30#C}()#4r?_Et7xno4Lvk#pEh4 zzRxvSbCfNc((t&z2A|pc9QuK4qL7e>$YBoNXD%=n9Ea|SZdVslyv-Qc?NVdsvWTVI z#g1`j{>WIN-XFz=&fv9PALH9C3$nQffSQ^T8DZQn*J2IANr5BhH~|&l+%v;)U}FL3 z;HH?n1ebt}7#-Y4j4ZK6!%Ao;@_Ac35OQX78P#gsOF)58M2Td|0GUc<$FfjMrLslv z=rBx~D)$CA6B&Q@J-^?wqqzpo1LI988V6&vw{8g_F=qyT(B)@1P%@RaEXp8}T7b*l zrYp=BW6wD;7I32Yo~@f;$mWxCkLbc@To4{J#18D=ul3b+i%O%9+;MYB|19dmp7Bw zcoz10Jf1LThlnWv6NVJmACq-D8d)%jHtBSh!hXT|FP63~vl}ooo=n)dq6WN-tzaZdnL1o)7%9Gr*s&a>kPW0>#BKKsDS z{zqgK*B)7j-NXE_rr9%mpTGHTCX=!C&h?ND=-)lLv$w7pdp=8GjZzx^<~?L0LV&SB z_Aq8-o^q~mFk*6za+Z8Prz=+|S8(TpdBW-Dc>wEqX39t7P)5);+#DmHbp{3muGOn1 zd+2l+jf7PwmRwGfvDeluvK4R+Cz&+@5CrH*Mk)N9=!IsxZ4MiI6AeX{1J^8UZHi1` z{>lan~v!GHZ}!nb-}0?2Q#RAl(X) zZ|ouFfgcNm8t6i^BX^z{Lt6v8d>}7h!~D%TDP?1x_tr2#JplsjM(ibIml^E4QE$#i z)dcd5dn0hm`;^QO7$tiHxeY*Qd#BxU zS;!S2Jni-X03ZNKL_t(!Q^h#9FaMH_dkIrxgq667<>tUtrhC`Pmq_^2(LT zyQPLNE92#UkV_md{|x_TeD}tOzZo~ipU>gQ*tE;Q#tg@E(N^RIDIHZgh<7RV6 zmcWqt$=P?|Pa^vjFgP5FneI=e5@u6SwSvuyt-|^y4$1na)GU|FntjGv1^Qzg$V_M7 zvfo%MwhjTdZBN_dyEYzKa)Yti3PeD7PV_lIMI@du00svz#eOT7>^E|vRIOUTp+yFr z&u_FMR0cF#?!Jk{W7@`^3x-V2dBz?^!mi%J*8xaKB$95!29cT6wM;qYj(wQHhHteE zpxKiltSQzEdx$w=-dUSwAMBPQP2?tQOtFU{GQTm3yk4t*XaWQQoQy|0xNpDizWY_0$Y({MeW%(}acf8a@a202 zH)Xp+$2NCO+MeFEXZH30&&%8(*8nAuMFbBgvRO;0NEu*7aLX|rYIyN*phPs`+D|?} zAG!x(zYGPS#QMN~W1T_2fin*n%p+g}bFICDKp--c{lXsSH)Da0s@7_D9^^nI6gC^4 zbJBc`c|hI++A>e<9eya+gI0q3VQoUcG8*(%tClSwK)?|jsL`UiTG)aa*x<++Y;Tex zuuD;XtZynO2({Ca#!)=|Ji;&9Js zH+YZg4}Z|FL^!7LU}S-A{93Z30po@mSim0rP^^@7=RLRSy&rq4br+Atvg$NFx^Vik z9)I9rT{`oe@zzo`fUIV2t-=Bs)dyggjSJ7h`=-lwffL4^b-;Icoo6N>M-an;PnM}Q zu*_d%hkb^QvSfc_KkasLWDm2pxL*#Qk#R6tfDh?7O2*9{#)DU>kq($UGn<9tTJp{fpOJx$nPPj93nogwk=Qw6e9;?iPonW_85phhctFFvYKWz z5v4?U5dH8wK{ZNc1^w_@LCg+E4#=lt{63VM0gR#eQ8XMV0-}%zH0x?X$qwB|9Gnmg z2S6c6?{FG?Lb0&;D6N~GnKJa3G-E zTRQXHOR5(tw)n|PVPm1((($A^1B|7S;9sh@I&ypgORJ~sXE5qpmKO_;g+>V~BzWme z#yHswt=%=03^g^S6tFqlQ&t%0{q|51QW^bYHQP0F1StdSiV`@FcDAb;(@vMg&%F#s z3WtJ5jt+3x?NH7XvT}@pmvLE%e!XHJH%W&ZZ)XklMT5cv!nUFNP^)EMCW>Ubm$j8HVto`5d)+ z9oO+Iq6h-k5r~WkBBTh_Djn>iG5Lo>H3www#g&f43>>D+l#(?Z0)N0SOV#buRn<*V zZ8kA10Vceb8eMO~D^Ry*M2Jvo+U>YPea@N~Q1aS00f$k7b4L@2o$Z1d)x4L8B`uf_ zA!GWkQ@b+ur@|V6hmd2Rb8iUUy}$Qf zH{oq*w!4BFQ)4_7*?2gLypOWsT-+jdtuN3mZVZiyC-BV z&x)ap(m@GhsPh_KxiIosqwz?@N~16)FsLXk>yP1YK|Z9+z~Fj3Gjb3yiT0^ZU= z2*;W0ppcm#WD`B%P#@U`>h*7oC?3mMRX|9aP~WZ0&{AHbgyUk@AdIH z7m(zBu@Ts(WIi*8X2|R+eXbviAeTJ0egG4R(h@mGm!jm+UCc9M$^3Cb91em3%moIH zYnW2@;Fz3q*C(yC8>VjqLAT=^YZXui-H)teU;GSc-p!oEaoPn5kTWtL8&%(dW0JKQ0`)}Sid&=*=$7dKDo`dIMT#zxy8{RW#`DF$v@7vhDOir@c)#o-pQj z!AzpVwuX1JlaM#;L(F+fe>orX&3<6^nIrTJ-@zV6w(%PGiY(##>+rF0MUo&t>K7Za`#j5AglH zHOqN;orBkHoL{E1d2R3DvwROK0mg>W#@Qyg&b3(YywAb2k|B+Kz4snpa_5`iv+Kk* zYBd`VuF|YSFx|6x0l?cSyu*j%j6$}O<=6m zY3_3DLN(y>g~7c`CKTCTBjy3%Z0s=yoN_nD+Q1I;@8B#Z%d2f5X*kHUA^%(E@34L< z+dJxY@d=v-y2c|hv)jq6!6r$iQkG!}9ms%6n?T6QPLZw55i*E5+`s>T%4NE|`%Qkb zW{|V4eE|V?Q;kN=C_uPpbf(z`0s!QB(0F7!r>z7!lTBF`5e;$3VkY)CF_E!xf(sa# zjNZmK+%6U^_=8Ttz99=~Wo_M>{5i>C>I1X+cByW#L-4=CRB#~218ze!GEb_ts+GIJ3uwVE3jhUnyY9JU z;H*t-W^^8Q5H{tWj6ufoH}|o(msnTqYvdQeCqN4C^BU`vvVO9qOlHxw4p|TiC_u*e zaA3d*fEHs7I7+es&kL}?waMOPzRB7mV-4SyIb;7#<|hUD{ir`Od!A|m=8F9W*v9Te zZ!?yBXHRx>aB)hrYY8qh3o`buU zuDN8!K_5c7D06_0g_HS-AD`5zN1xSG4?m&j9{-7+dh}7Ptt^Q|1)iUEx+hB*Zw~&? zxH8szHa&8YJ%os2Eg{EvkFhpEyUR0E5TMF>h#dN{E43Rc21^#~H!BaPLdl5Q|i zp-`~T@SI$;3s*Wpvt8SrXXgB@0p2$mO*SPJ9X<3Cyt;sM?ikp!%GG&%kNdOzyDQ7l zFFX@LQ`RQm=f1Ho*#mr^gV#A2Pu4QG&9#{y&dYuAFp&N89@jDbV>C%UTl?s9)7QH; zmdP3Xi@AOCzsJRh7}cs(Hv&Y;+K6lp_!2V4`Gli3nV%BT6fVqcbMr)-xe0&)YJvA3 zIHXpmrK86V3sPIST`(d6h3G!W0H7S0Tr#Ercz7@(-WWv~Oe|g^894St*5_vDt$QIr z8H&yXrV)@2)Top8ol~t^(nx*PTTRXFo3|3TbSkQNGHIoPTmwbonkz(#TqT0yF=2q> z=laG&#s&|_@v_+5lAla2YoHu;!iG5eyar-0c__?yXGL&p@-F#VLm@w^yvBXxRx?UYIuK_#;(L1|8{rffQ+jjc_~YU94x z5RE2Lrah83#FtyXigIM3k(mT2fe@I{a8r!qE2JN1hCKAcjY(y@$fM6&i0 zL=OS6;!)L_bsKj!B<*;+q^fuOI&ff486&fo-3Ru}#KeT1gK{D^adswW4o|0tbKka& zGx9)YPRT^X3_j|+!|;4f#MN$8%-AC;7Yg|`v`8JormJ47ZILpFelf=TqrS4atSZ|j zi)_*56L5)^)17wRQnJbP!^sAzrXd2U>XeBAijmRKY$4djO2t#EH7FS)I|$_&S7p1b zSS+GW9brVbPsjLYilrTkhLi2acLANK;dlH#yD!Gw=f~l6jmKCFClG@LzL&7=Nuo67 zknNVqSPHF&Y=o9YjN<8(3(oD5_@jt07Es8T6bLXgCLs<_L`?BpWuy-wJF>DijR$Hr z+7_Lpw2a3UaC*X(_S6$Tujb~ckWg^EFrVLCfMXV-(9f%No%FKFeql)#dr zO&T`Fm*0pAiGI1!eo6t6K^W>BJTHQeJ!XP=HyXgcx5!lo+2I-tuIzCE6~JGd4V)qq z^t+A=_rE9Pxef*d=VEMZf9$5y@)|#s>X-)HUZr zYhd}UJd_9%>jh=RxM7eOX8>hc*6|IpU^fef_v{(X@OGb@dtm&K*BI^0IR|6SoMTj( zlj31~T}O@gaOeQRnKyI-_sjTmzxEvCu|-VHp+X7nI%mA^0(34Ii9xO1@3^Vaj2E&Dx#l`{1PTDi6SigZHz z8l-~LjDtOdf!H%1GB;BhryRq8A0p@&bbyP@8)Jtt%siWcH*one89O4cmI<=!=#%M! z0|U^B!pBHsfAIHS#z3p#mgJGqM23;q!SL;y47G9gcx_$cWHI(!^QY_F9LbQCq~k2R z_v{)Z7!Z30bGEfGRi zFgN_>{x~-dI`_fa=Dgekdx7upAD`hp=I;M5^B7OtUqd=-yVQv6*KJWVLj43^>s#9VA``=;h6~6T?2gQW}&6>cOf})9zhD@=(4|&Vz z4-O^1LkV%J5aUpUKPr)knJmHBWPP?;b^9&FkJi^J)qxow#tR26DXr)?1TNWAtZn3c zKA$%^1PYS12Wo-ety+o^vX`^Z8BgYs{t`Gs&1Q`<&Wu0TT_11W?Zq6!a_obba!*$D= zjvBvI(*i;^&VHXcg9&1h$-?}$+vpz7`N|#uDTTg{?4fVY+)%{DF`$tTocZhH&G&G) z&W{%tlA#nSI5$@nDa`-H6@G8V1dVGm^Q-vCTDUlYh3RL2`kT9Xba% zqfLhzIu&i~hG-$aZ)XF6JCDn3KWK{RPdpkiJCW<7qm$lE;A13{wedt|5u9Mp(GRFu zuv2&+rykd#Z;;-n2)MUFiaA`~j?>xMfAkf;Fs{Se|?Shq-U|vZIGl z=mPoZQX&>L=U1ib(2Q{31EVfj53(ZH9S0EYfY8hn)OF$H4jYnrerB^snG6SFT3yPk zw1xxMsqBqBM2BLmkge-y@VdN0W}18%e#Sksju=aR+wfI=rldN;D%l@-wh@`h;;T zuBS3$hnU0FaS}TF!3hkoX1HJ0H?O&-?QuFn&|_%7;8bP&*3T=RIghRHWStn5mJN>+ zoOTm1xisU#@+Ofclyot|6aXjtJ`NE6eeM&9jp4OF8Vncr{uyBN?!y31R*(#ln4QW11o{Nd$%v3ofluEXP-HsY&xqzIARly zLY2*=EkB(~7x}f4lDRSCe3_bhY|~bMT;W}FFyu6>5VHZ ztI990nllhXf+)kF<j~4+N(9Fyx!Q+G%-Jb{=f(o*49>CWTIOfeCZcJOu#u?#M-wTHmN@quv zjioh}&6$FMz?hz#wQ3rq#7&P)YkG1{Zg0qFauSiaCZ^^May{s^l^)H&DQRf8Tsoy{ zLCR$}YRC31#z{lPK#m7C^4R3OT<)L|O(v703W5sjG!<~iR4KHzapPtMJRyyyrv#gR zt5eg6<+K+Rj7AlWzy%PIFBn&|MI<2ypB`2|gmOhZ-a7b7C zeJ8R6PXUfLNb8C8iR(pxLaa_DRMJ;LL4o>++W}5LX=62? zw@z2Lu}~0I8v8D{nvkd`lgf^aIYQ7SkqUs5-7#RCv|ogn9rOc=SdgCBG=+(M zj4_L#<-wuB!9rj74FZ#WXinx~WSO^^2ah$L0w{_!z-;*X_X;7AWh+uY8dCfj197q1C2SP9qy0!A>8CT zw8Mueay-@#61bW8jQ;T%X9Wf%RaH@TnFB{5a|}d`U=ChT#H6LL-Z;pJ_AqmxsgOU+ zInFVZR@z75!Web>;H*XKCk7>voDR{sfL)Wt%$(T0y}4VGj?*fT$hFl>h+}=McxR!g!?*@JZq{L&&O)B(!-X5HWB_w)vbhjIrl694f36=A84D z{ljbK6h)V7@vt=uwBM97z6r>l1qE&At;@! z4V?ZsX-pBrNonaUj$)1h!q~9pIJ4M?IB3yD__3v2A{&OtG(JQA*!&M=2G?iIabTiw zGDgfJW3WCJ{Jp;Rc#rf$`bxyraaiF661LZw6U?o#u~AEH!{Nn)HH>is zA{(w#9IeQA0wSyMzDB65q|qffL<=W8@D zqKQ&dEvjcue#RV`h*5z2FoWM5!VZ!bF^wz(k#6e)?hYUF!9o8qmfSyWSS3Uz&IO;E z<8)$tm^;SHDlxP`Oi9aP%w_{HQC*C#)5YE9GOHvkZ0U4@6jI+d^k(_ z&ARbIAGkJu6WB(tW1l*lVNP(1wTFzuXkz2qUKtuF{1zF&cep=Z(+~cp&$Q2j_Zj!~ z_jrH(HGN(Go7a4oXCA!I-#pVMedl+U!ZmE)k*ChskO_c{K~7*Sf>;3k=8P|niggs< zFo*!kyhZiGj;$w*EOY@7FUTp{z{uh~?hD;B5eE^CvkX~@)0ONMkI4(>h%=PCX8!Db zs_KG(?>IID!B7f1f#m1Dm|w01x{|)2UU1LY1O!abk?fvqZ94nc250DKVZJGDgB^v8 zTR)5Hbx>V!ss%;LFTrQ}PY|559u7OwDUrkUoBnY>=nVviiY2OC2Mv4xa*F*6x)Pbl z`=tLNYjA9HPC5oI$ohz7WDw*bYlM424?r%k-Z{gOt-J@4nZ3yRqHnQi#GEYLlgUPm z@uAb1)Mls>m`lcnGZ|zjnKU@ekoB~+lFwU!+0O57&x+a*xV1F9RLZ~y@YNCEV;?fV ztP4`=$P8kUBll>NHB0+W(HlpvV(hsWoE_|E9>{%ywk9L{PN0J}vE#UZ)+~B2{bt>8 zmVnSfv%+DCT&E45u{&80q*}5r=?_5{9;^e#nepfT$%^1R*ycDwxECB1e8!o)z89Ha z?gxh!-=m*67pQl1U+5?M z8@WmU*dO$Xv7r5liE&#ad>5OE?{PMvpVANZ3irgo;RIuiv*-Dnvx~LN{UcLZOMFJV z&YE%bqV+S2&lpSkgI>uPAg{PKdIK_%pdR0cKbie!*OqMjSzGu+xTcfo;iNg!9uL~$ z%w*h=zc$~)y+@yTkKb|zG8eW-hx!}+MgH?0=9jfbJ6y-?vR|{8A{L}|0#e))YmzZo zzfT(z#%L(tP2O7o){!xcmG#5Uh4nES-q#TA&ULLX!#>kjY%A`S_Sj#&Hr#sv03ZNK zL_t)ZO~GCDS<`3+li-E}Y3YhQD#c5a{0r5Dc0TQBL<>GPr@ z)#AdkDL&z7OgFvqw{+`G*Xgn=_GstsE!r`k)57U9>btyZx4VWUg1wT9V^lH`@Cg}e zB^b7pLk0~GD|zo!{JHwtYjy4QS7`4=TeWq|m~v^478aI7g&iDGt7{;+h`M`}N+h*^ z|JAzj=9@GzKdY<2d6mh| zYwyL^YtyD(!m&6#KPk_cPbW{Dl&j}NX5lF_#nKE2ry|7qrUyyF=I{p6+Iis(+CH^M zlgv(o=uxH zKfggQo<1p;+ozz{Zw@P$H>|Pfl)7pwGnX-RV~NtXE=P#;yBBZGX+(b%qCQ+mlO)Y^-fp4N>SC-yarSS zq}m^dn4vI6kQ1e1?V#uwjCrU~AhgSkim31?UsP2NSy#xaFs`kY)oHp^WdFN8##ORf z$lIX<;u4}!lwF*O*=){a778DzDTFf081e;SjN-yS1RjDA1&hBqzz~jj+zjGtl~5dq z21*6SFAf&c(-7o#SlKbg|NhI!jR|ppin|oehR8l1!fO)+;Jyi zxFW>uAoV$^N3;nkdArjZjwc7BlQM<#i0cvUuy)qd_u7zhC(T*2u8eVy7?ZSb=7-Cv zqJ_c>e-82(nVm>d=zvs%h^36-h~vTU=nLb;c-wpC0OZ^@kAr>2`}{@ZmhY|`jl7Q> zp&#qc5R_dG9dl6Nv@^q#F?EPlQFbu^nJd1BLCt~9cw+Q`gd!c8gOd5>Jw98%XU;Ij z$Klw32sI^~jyOedDly)+M+O5^T!EH52AhLEz)?Vo1#37B@{ocmpwKW{L0twy_Dnz~ zl}y`pF*rcpv9?e^K&qtEDdT4Z2|&s*eZnDv;=(PH@=+|7Oj%ktPPu3938kCyA;@E> ztRc6CRW%!?jM5&n#BT^paE>x2>_1XeP!6!5m>13#GsKMWloVjcS;)0o9mn~~ywMM$ zd=ZpI;}XQ6!fEaB3b7xUY5K)JV_xkXA4Vm4&6;74h67=%vdme*n4@%B^2vJC&QhKn z2Lqf9~43tV;Sf@d($zBm=D_FvHr|! z&Upu|<8XNmzhc+rGuAN=eoy~+=D|HOrsxg4&v^38gZ9~<>y9o{NQe8B-y`#o>pbJg z!f3@2fFa3RWv-b|90PCzf-oqo6`T~dA=-;nLiz_H3w?z(Od$@&gFS1GEF8Bz5S`As zvp&Z3o5j99OgD`ejKNvv2mWsh|G4wFx_?)q09obys7)LI#Kg_`taAcU92(zQBuFosa_HU@e zBJ<3dK$O`KCC=P4KeWd+kZEi{0vi0*S#yre#9@HktyY~(2aHA53G>Q&V_!PN#vYM^ z%J?JeFrY!VlLcW2(;-TLwvk2bc~B{g|N7d3>k#>4$nhrJx>N&i*jS)5aGvlveP)a? zfax#&;hB9#`^+oj$7}k>^RKVuYuWeP=y8&OF{*mm}-n`>!!_oK&nA#tHd@ zvl4VB5q;J*1|W09I$)h(H_#XU<4nc4=5GQ*hE(cyl}%?H!;yld{a% z+x!iyG-K?-eTvhUdnPT7IYO_2BgPOCL;fy;JIp70m%h>#bQy4$@|rb>oMG+p9rR(4 zQlM&_!TK);2Rd9fn>F+l_k(fI1C$v3V+;uH&>pf5XF7X}HH8z+ahN$MY@7`Am$XA` zD-bkPEOWp;(KqB0>jVxU_5^)JWqpI{nt8)pk+2s(?s7B%pLgVbU? zkq^wfUAta4#|U%ExeTu_`<%0v2XhJE5mo3|kIXx3-i&DwE;!O%j;x`NRz$|@1mx%o z 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%0AhIk&LL2-B^AK;!NKuBo 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

    eCHSkPaL7A_Y_j{9_{n9Rv+ia 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 D8BIj>Qb_Znf?)gVBmL^dx? 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

    Xo!ic7g);W3Ae-CGjbz$+`XOMhxW3N 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

    tLDi-%IMSJ%Gz^X?qmxaw_hNfOcU0=b|&;A9K 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 z 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

    7D}ne(BcH^k=S9AVIveZq5; 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%0DwncqhNbz;j0RTp>g3^3 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

    Uo4goOU6YB#`TPcf^xAW#i~rBrQtMCL079) z`S~o&X>aGI$~}~JPag6Z?as+}quG!K9QRH>3$*1}w5CzDM5Tb!DatXvZXV8f04o#= zq5z<(jH(f){@9pQC;TW&nxGP?%|l>_p9KqcO_VNPpGSsTe6|R*X7iX#CnuN!*p@(r za=8kBFenEes@Z67<613E8pVQ*4Ia}JbrBU_Y+gkeGfmL6#`i(n-oS>+zr$<6rp4f% z8`yZbckw=Aox#tB&p59U4`2Lu{^s*7z+?1fZIdP#*;wX46~^~Kbpj#K{Ce5}`Fd83 zje!7TeqMAtQe8ltiQVPLstvm_J6DI-ABLmLM6N1wv#%hX;9;51i3i(uZbK+Eghr)- zwQJU6W?>m8P8>%|U6Hg!+HSeYm}1L{;`VpEO=v>D`Rz+E4G(;T;8$vc#wEEsf`1rH zYq>tN!N&;sZ5u}MzV}>@w&FxEGmLzxhD>q7`Iw z9+*7n*(~_nz>7y;!9D->9ax%6rqs2%j-USgXYhy8uzRBNc{l5es0U4a^&h^5{<%CV zNwc@hzwgO`cy*FeC}8 zij!dBI+~3VBJn7?x=mp7hFw9eFi5>((|yZD+YxfQVJQaw;|JfB2KoTH-bb9aQ`u=AgvFWKCsEqgAGD9*vf?p-Z*>)uD)LsrBlmuC~GR*9tE4n(g;UV zXxV*i^UG&dE#y(*aG1!vwkAp+TK0R2iDI*X@!**7f0%HY2&Ui*Tf%cnr_ylR3F_`h z&Fgj3!Wc%IVGJA;1cTC4>C+nL^`M6a-v8k%apQa6jqiQ;F&ue53q@fXZxbqk;T>HZ zI1UwVG<1oXaX3(KtD-3VQ*(>^9qTU+KuVROyauMa{>wMM z0vDoq^#0#K>sAmLio@;;;FjBNMSZ1>P$YuM$<>&jJBi6S?@2pqmJ7v33+YT!6tH2R zAKi8XnW5pqImb@5UKmT|hQR3iWR3aV@CRIo_`PC{&7?-q?Kq_V@r8m|Ddf@7noumB zU382Or{GyLE@`k-(9Bo5k_Kv43&>{k@J2jH4f(NW*H*w(VD#P4+fB6L#POLrM%S;y zMf+A^#|_&M8QqSx6YDYi@@sH=nQ(7l_V{V|nB?6lV%v^Q7+=3$hDnOki$bG^xpT9q zs5Q8(!QOVsB^P4trp?&3`$80Ib!6w?z|_(#ibx9|j$uJn-fvx|719Q1z|uRyhN243 z=`it)Z~P4|+`R!-FpZ64+wi_y-y;c$rD6@g_{lGD@ZgJ>nOR1;PzH<|-gn1d-2SfZ za!x&d@*Mupx4wt`{FLlYTXvm?zx~`t5e_hDDvXZd#&fTp#dq)d5$f4F^cz(eeO-cg z2;?8E!-MoqG7FpK3Tn&qIB(M=zWIOt9vjc!0-Gxetz$!@Rl`iHiywUdhbSL@9^1BU z#NT}WZxBn2$uQKkoH%%78b7@6cR2mVtJplg7XSV8pTxHH+mKye!E|vCCRQZ`E27pE z?A&u1Hf$clhM^(A6~#)YkL?>*Ve5Dl6R8B?OJJ(jfjyCgx4k3-?pQbjy^}HZlnlyZ3BC-X2865r)g= zhu!DEd6!-aTXF(V8Y2 zBfqWgK7a`OOQeFCut(fOiuW{ zl+d!1&*)MX$($S+!o*?G%>yN;&n))&?}lLxWah#W$w;I#C9^tNExw>k0+-4;w3`M- zMjgVDC^P<;00)KgT24~CFwKU<$uiBNRBobDZNCM@3`h!5)bB_AEvP9|TX^_Sc!Fph zJt}senT2`bQMl|DbWX<&PL~vT++oZv7sW!5i6%vY%n1`OzRTs8818s_7I-P5}$)K_F06%L1FI&$>naj11#jW}gubg+jxUI<6MsFiZ)IwEMR z1Gq60WT;4S^qr{pTA<|A>*z^THu*kNv-1NhDY-CaU#x!dNMx`W8yzX2=|A_|yeO_@ zr4#INDe$@cfT9U!&8D_NX>zevf-@Wg8(>t*=(fS;s96dqbJz5y$k#2c2fJZNfIzFH zOTow{6;)H*=(x~=wh+rexmFVxAXAW-uDNC-*-$IO`QZd88jGS!B>=4^CJT8U`kayo z5eS52V(bp|z=l{$SK(wL)Z8MHLn)kFIESHVLYgaqfE)hcu%w64qB=Dm zX22Ij(CcVJc%!ZzJEVBOZ<+-zdW6uu#*Rve9>X8Yr#LE$6U# z^H$7E%_0=_VktL|W=q4^*a%AbvRrT4+K39}hHO`i!GXNg1Uzo!3uT!)1za}qa+_KY z9-Ey)U8IspX^?U{>$dlhjKok`$>NEbc~Q;yJt36UDmvXRBH<_&7PF!bq{@K@JelB0 z(g`8-UGQ^TSX>ax0soAUL60veOb2fGOh{omnnnIihw@k#?2N_kQX$bpdMJrn-HS$5 zgQ`}MN+qDSZLkF$!lhfzEg~8Tqs_)l*a@w{Lp_tEyeO7bi7`)&jX`sE(Crf^Yhk5S zl;~ipKip0?+!41NjOkD3l$C%_!dZEsXVE%%U$j}-McFZEz+1v!Qk0%3O`7c{;>n~; z@T4){(vVCi!~#l-iPskp^$!p0ETHKDZ>tvai#1qGX*IfXKgp!DH`wTlp$(Br4Mq@iB1|~E%Q>*mrjr@5%4)Q4 zxm+?`Bxj8_HO4BtTwVm@ab&Yg@Oi^vsv%iA9&bP(z{LV#^(869c%8Zaa@}D=g^Y(< zm3$K)>SRj3#i{5rg+(CMx;!6zGTA7zI|kBxKka<&HYzN``w;F3d23YOP$@)371>B^ zSh3?mz%UyY{BQ0vY+CW>@xG+$nF=2=SE#;7N;6EAzfZLRmBqFClCVr1gby=u#_Ean zjcPlwRnf9SRUcUeeM{_;{7h-L;r&1*Xr;W?LRHQN6Jl#Jy54cf_J6NlOan**!Qt150POrpdL* zWQIgRH#a{o4MX0)R8Vzv2xfo{FTNKtba+3o=_-s3*IZcH@_kWEsxU$x7&wG-Ncvw;hXsV zLl2-@%K~r!cR+~02nd)7pm*N&E`072ccQ145s3xx%b&j?idi-q^{ys+Bkhb-x6%43 zg9w2>J8{bm*JIz6Z-YBJDpt&{O@qtf$JS~GtJh58hw3!kS_m65W4LV1Dj8a}2(@SG zSkFLH*?`+WayK6Q&b_cllepvVPa~5Vg{$90EY_2P+QsDFZNtcHJ0FGF{jk}~QUh=} z#XX$&G~>+4P@#IY)~sWpUBddlf#SKt=(g)<^4?ZL*tvBh%I^2#?_T)~yl&vJ$9{u| zuZ+m>77Pb6m`Em|F=b4^@e1nA1|so@q?c96LGs5Ch$hgtx+s*3$PA~kyv#(kkUU3} z-^JnyQP$L|B~kxS5yt=}-a~vY)~(xuwUfj{*s)k%ktR6zOD1jQR~8Xs8eGqgZM&{O zN9&_+=!kEf#Hm+ahFi1HwG`a+&JWm!#fV0z{d&fm5P`!0DKsudGCvy9i@cn(^liAyitgVhr|@y!0? zsAp&J>=VBR6|FwETdZh=TPNaaTz=I~oVR%tCK>QH7nUm;R@5+NPM*Nru>+#``O821 zsHl=d0Xy2222K~2@%o`dD6CX)=GoU!8{3T3CFf!9u5EZcIfP+P7`raK05)F$r%tx; z@Bj8+0>*#G&DUbnmThpw84O`!ZmEOko_iUKQ`2I<(5Wp+c!T2XK<~GZ zEtK%XAKnM5jq9~0cJ4S2`>wrG6gwfO2TfhaOumj^-uD2^dI4IyCTh(Oe&{3ExoavhhM2FB8srP9m3_>`~MsteDAwa zEH1+1bHPh)j@Cib((%}%PvQQ5{XV=wC%*mtf5Z6t2$F#zeC1O+fltNIQVp!+O8Ci7 z?!i+J{T^;w6<2b2=IN(#)qCHKUDsWXbEi+k(SzVdh_0dPj!Iq*Avk2A%7~#L96T}< zqi5N1)t(*Ll1SjpLJLRFox!P7ZxV4PoV&T>$FP3Gb}THrKK#)S;I2DwLo74| zQ}LqK@8B1Y{2u@QFF(c3i+131AA3JmrN>cRsUtZSfu)#e>IzD7dUw~ydkV=N|Phb2SY~H#KRL2qT(bksGc8BrYs|~#Q^pp7XUtR%k%7?x!g}1%) zQn=pn0kljLM^0q%)FXeuW54@3c3->`H{O0DF4}Vig5I!j_ZSBD#?do){LwUCc;vTu z*EN^ml4~!+(Ao?U^dc z6H|-We(41WMto?uEU^)DZ}a*bxbCLwWyt1nFagksNHU4(^0e6AHjGVR`|5T0#791k z2kyHEcFzhfyzMGHeCRNuz7V4RgxCW!tA}y-r~e91|L#$oc>W3KYJ&y2SQZJp=YWm( zgV|I??RWmx&G_Pf{{&i94L|?U!%+MQ&=!Bi-t|a$E$rES9_sNn_T6+1zW30x@HwJL zhNFnNEljSS#0Nh7e*Es&UYt8{0N?uBH}U@4Zo+lfU5k;C?Kt@It9bg!*AVr@MLqY# zum20i1zV9>y$Mgfxrn*!ITU94xO~Sh)NOSfIC%#7>=Mqs{0xp9*pGKzdo9+DZim@W zkxT}Via8OqN3m&70(ZRcdK`V-!VjMK0~)0q{JuWkao3IT1{;X=s@QnRHpC`Ju~aiK zySyX~UYDXEGdh7p+Kw$3@5G_UR#44VBn*!MB&-)bA+Mx0J8fZP(mrfilYt|c!jTiq zdxmWQ03ZNKL_t(tJp0^X%w-=yEbhenKk;WscoNvS>1r(1HDoIulxM0qvrxjBvxm_r zXxK2h8kI^G9=8qgXjp8L1hF&dL-!d{z zMj)8Mp=Zxx>hxJm9eo9zwhC7)jFE5vak?Fv3>m7!sgRkhVB=&GwvY|yY7G>18>Ua? z;dGk#%Hbc1;&C`+!&R4U61#9b#Rk6zc5)OQ7D@)Ws~T)%Wr{n&iD)o}X1xUlx}=jS z)XFts!7VS>Ft%z0^_GU;Kk+;c9XW=pFWZS5uX!6%X_r{ky#a4x@nPv zL76yNICj}UI5A_hLyC8SB6{R&&@)Bu%_#y4dM=8|cvO@`ie$=Jr_M|x9*qp9?zD~3 ztJ^U|-mfk+B_^9`W^7vaS)e-|sH-)BMRuBP0opN<1Db(? z$bEg10;BcVu!8uxdGkT(;M}=Iv7rV0evzT_@Jb~GBgi>f#G1h7*my1Xw<1&#Q-!O^gTpsWQ(C%B%Ix5^9{Dw+KmR?S|aOadQP!Q zIky|3R22Dk6Md(GVx@>!ii(dKnB+hnM}d|UWLushUKuy zw2M@AuPcZKd0=+N%64Va$U|DAQ3n?^vatMKKTNHQa)}eCzNmzldO?K-V~`_}Bs$$J z>g5_-4wuM8sk8`lVTifuLqfGiE00}(vTSCMe?l=puT#h9P!cK|3AEyQdr&FcRNUxT z+JK2*@j&c^TB$*E>!>wq@I}2?SjZ02M@&opS+6!k1;l5x-BzV>!xYrf(P7!JsCppd zgZ2&&ZJw=`G)vn3Hnq%%4vmQQ#b~!-QqkabVrg*zELUuOVXv88o7l&AA2>X;r3@0s zT51i+(N$3EJ#1JrCLsmgY7di>BdAo0qV(f*nQ~OxitpG)668wL)a6MDNV&25ta$z&9!KCtwehD}&mPPZQ}zZV(5A4ac-a&{Sh zX8-}e7p9{FM$H#iIKj(GI^@FQ65^?}tgSq7vpM5b08Q;965@o@g=oY*Na6DkuIm=o z%*gNvYNZya8l-}Yji4TFk{Z)=OsrZxfl`5hTo)?&6?834n#jpiQj$_?tp?_1XAq8M z;B|NezDib&jdAOG2bG2~`|L=>W1@_7+gsAGBfPg&X@Y-`tQA@a33pZ-Rk++fTn_s9I$bY!emPk zZIIPvNE1wNYqFQHCg6P{4JsQk34?(ft))E7x?_{5cYE+~$kI|}&9=*ur#wEKf_}Dww>zZ5UzOpjrhoCzJUEtJ&LX4RIfWgn|?`)=i|r!avx5fSrT>Yhd*;SKKAz8kyabH?}4YW@3Jcq=r-~52Y!XqXO@s2 z9>N7X*JEhd1*2906hl&vnI2`q538q10#w%+M7_gwV0!i(e*5h6ShZmbs<{Tfd+$$> zYa6(3*G2fyd)|f(BN?pQybh;ceho*a&fwY4{t;jO_Ae19UZ<^L?YcF{t>j@T9(?I5 zU&r37HlsGPj30md9vFck-0|@*V(q3FT4!Iy*S_#2c-*8JS3KZWg=??EJ)fYsO0 zEZ6Xx#~#Il5BwKm?f_1nIfgx#?7=bU#j?Uc|{Wr!X=U#jCSt zL^+dm1<*~}aQ9!{h4+2%L+JXb(CNT#*>K|IN&NHw{70NR{H8Q6|KET7Jyz4EoUh@9 z!;d4jW(+&FtVOY<;NO4zC~kY(<=8qgi~wt6y@#V`W>L!?$4xh137gZ6>1H0U&0U0h zzkClq|F@sO`4?P>j?*Xmd^!j`{P2UQ*2}Q9Y9P${x_8}#58iPTwr%3`%4f)n`C0=N z=Q!^F-ovoh=WzKodvWzO7h~52+YktNB+#Iy>bUnOzs2*<9fY!=!LOO9FHIqt9>*mY z?n2+NBZMvrjU`llA*h`J+T@B$cHyGS_9D6}A|WIt)rE--dvV|Qe}--|i(9U`0GDn* z4}D`8#YPF~RpaRBrX+0!Z7w`@-~f&tJByK#G3?s03#&J6fJgB_?HO28Zb2>d@%*z7 z!Rs(_-SvBL_4Sux_2^m*r_<=FEv(LrAw86U%^+IBi^5_V@4Eec$ZVKEBp3sFRE#^2 z2nJyNc?3WD{*RGxxP`+wmWm@C56Xerur;w}G=o;0Zh44YPzLDK5mpS0uO5OcdND?~ZpO);6VHF|2S`~aJdr2@`}SZgoRIaIuy;0G zXv@tcyigLW(672ARqwK^u13~$AY?kxZ>s3q6-*=|xay|cP-xqrc4>*#uwm_(e3k{K zthpQ*8cyJ<-Mg{!=5d@p{U%<2@nwvU-2jcOvqcqFPer?0hvIc(obP!kCBxjYL==Z! zehk-t^eTi$!th7a(26yfx+=H?GMvP+Xwfoi2UFxJZs0J7dq-+Cg|}UNHQL!KYV8tc z&K(s+1?zl<~FCj8;)7f`O| zvEzc(Sd+-$jvKE=wN`+`TEY81dLtfw=`qxsKs=g((syEV{W{!w*KMeERh)Xgh5z;4 zuSv@NPwsynP6==T#?KqZ<~>)!>FU54jN>!^_;vjCmp%&9=E4h4AA&8f!r>+hlRQQZ zK~E2Vao4+%Gfe#Qp=V(;YzT+kaC-aLx_KLRT(TFXr7Yfi^V?yMMezIQj$r!ie<2k1 z;V<6351G*@oJ|u6R{*E!jN%}(*5x)XgEtO#S=YvrX}OP|ee_lMB2HZW?%VOw!71bx z>yna9><2m;a?^9zxOoijuAMRq6lw;ZeEd~hvObS1*R94Xw*wQ&2zFnx5gXP`pxU9l zkfIC)PD?}3ryv>iV{&2~%~j)=HCr%SEfKR2(9dByxnX2bc2!_uX$5o3%ee8j8?f=B zOJKr-j@85Aldt0NIS%`~*t>HF&fmHdo3>p8yN$#54hWI3Ih^P$H44Y3P*^UY zTj^r{$SJ&D$f9F&VR4~|-#qsa?0qMK9s@32#hqKXqi0vJJeR|re{~0R1n|@oFXG&( zBdDw_iks z(NGkLu!)a;_&RJ^vkBWQ;xvdtAxqOl+tA_VPpXoLRy2*%h2Td>Cs}T(>4++D+kuageOq zTsZXfi)hv?v4k^)l_4NDhhG@py^f0cVh+<&XW&yjxbouj5ecO*yHG>3UPQIHEFmUr z9<5rHg3@cj(DUdSH3WPPW_XFf9cshlvHVhS7irm?*se`EeRZJD7`B?<~ZV^-ziWM0yaBxnps?oC{kqY3}ckIQs^Up`E z>cpYfkHWM%NUWMb-GmJCd|o$7l|^XvA{?T25VingElq^{186H7UMxh}Vdig68~L^T z&8{vF7EHcqae}T68X9cS1iU_3Alcz$^NSWXJ|H}>5@<)J3jd$VzYn(**DPYWnUL$l zijU0|UPzq{4;KNmgJc_lXLkpO)t*76&VUWZKliZ{-XTcODQO9u7E=wv_rW9`xmjTs z+XbuV4tj`20%&VJIPGNBm}oR>pzV)d(Q-uv+;-_A5=Q6`1w|yGsZ~&3%nq;O@(9y` z2i#symu3Q+Jb_RM1S8V+!QY)OyOaiWIm|{-;SI*=y_+gJP9&Lt6_B(UPUy)<;#6~Z zXh^1YTDL2yNj%u9?G{E?jfrQK8xSoR1S|78B$El@m9TN+CAhH9>AYX8HH2d_`n26q z;et<8J55?if`bEXpIjZrc8C426qmr4X~Sa5RJ}{-vk7gbgq4M4pJ6JY zgqx!%qJrR*(&;3hq$SUX<#0&jt8I0W_6O0b6%q6VC4!b#-*$%);e*(9zCR|Ua4itK zRo_IvM>{dskuIWStCh+aA05H+%95x9GwC#ng_7{rm;l#Ob!b$9ppTBFL+|$C4Tiu2 zE}Q3EbIk6*Mk@_20;AqiajZp}Dm&dy8n9p9_oslZEkXr0h{4VFOWy+}oql6t6Yj z(+f|~1G8_S)+{5O3`_b6qk5@kOT-hf^>hT>c9eA$YF!gZwZmbd)9T1{#dO((VZ z>oWeD4KQ7ld0d0aVj1>gIhz;$4X3W{dIdwNAuKK}BNTFr^_6@Ko7VwXzmHfTAxbqq z8@)Q$r#75!pIB#^$P!Paky~bRp#!F+VSHj#EPkG#UqG~$Zb{TO*Ln_Xgz?ieBxOZ` zB?>IH)rQ_@>R1B-57&1MPQOQN$N|3(qvK-|liljm>K8z_tV8j7(CoJGgU27kSUiR0 z6DRN&AGi}_Ch3i)Tqid5JGu&QfZUOwuq^sEHg4*0o#8~p4wv^rfRLLu1?`|PCjyU4A~ArOi{>va%L z1ku&oC^s5V)vl<9R;^!6Y8&!31HtvXp;szEH81Kcm`u1;#1`LEI7G3qTwFnVbPQH- z7!IWawAF#as}JO}6|7#p4vv6=vD7*&WUFv!2G$P^A(xv)!A5&2n}s1sw92er2bVL9 z+)5SypQiVYv%4(w_pj4?opYwQWRgkmJ%NN&dXc6mpkPB(Kv#DyU)ObISJxH0$bu+E z0VxJT5fUJf-utA^Os1bRb9(RR{9gAn{`@B|fmbq_Ip=(y=f2vEzaHa7TAo&~gZ zwbIqu!DwJYRX7?u8t^!5xXn)9+WL-K49K%sHq~m7R*@Q`4DKg~VFE#~R`uBJM)iDL zbNzLA7Oy9n*U+HRGLQ`5a<|g^_6~Nx_q@U|IBj08|Mcx_yzNesB?C|X^hE}ay+t86 zsuBUhVALc+R1zV!zI%w?fLUFh!{L64ad}?}0Nx3LS}^K48_4k3Ge@wdi&(8m1_J|V zDWfw;?aIWpH(bx%U->#`cAw?=kv_WH)~JMAsZvl(L0K+H+Ebo)0>+(OEJ`)AhF-XN zTH$?}iB*i~i&ci?^TIw^C(_xR4D^qaj8qsKiZf;2RLoe&mbIL_Fi0qz;nKMwrtLV& zn#~)y<(l=p@VBiv%z0(Uowr~u?zT8%`7j@zJHyz{zZ1R?Czpt#HRzQUO?X9;T9pKc z@UP^8E7N$h)ufDAVxPcq!wr>soTxSR>)`=P;WfziuB zqM;xbyLFOjI5vVgKc5-y4z{dX%ho+d$o5~v*E$!k!N&R}s~H*?=-1Q`yd=-+hElYd3M- zRa;oKVkM_9_3+%&&r_~BXfas${v!|YFAqMz+?H03oj=EW`_C}iCjj6o3ujMd*S-&U z<^7#1G5*B|9^kf{Z|0Ue@1j=86PxHG8Vw?RRAH;loIiulJ^TQDhYqvz-8aZ)!_;&& z7H_$p#>MUUnw>bUMee%idJY`B#I8L%F=?`xbs8L2KUZJ1nZ7`b^7&C*^>+HgV@w3{ ztX_Ww1)Gz@fs^Pv9Gs6su2v?N%<|MLuX8#)Ld}rFpo7ltHB6tjn5#Em&EtRgAO7QK zzv9s!{(!}EI_SG_iDzEju4;U@ZduL7tCsWPE6=B`=E z`v(qDNSs&Id~GpBXLmdEHgBYH|1nCv7x$87^BCJ z^LQ%E!(Y9h&W2{TzP6hecOK#Hd)MP1GGZ*~dG)oeSSnhUE?vx#!8rYcK_Wnr0#lqC zHm{w_sj+e1edA4*FIj-GGL2Y4$8&#si()3mL!Z5aMysAV-RJ zAGa$0sl%h;dyma#YF!JRQ|1$j8wd_o$e1ehk5t+I&f9$UW(^w_Ok=9uf?a1JFp(jZ z&~pArAK_4fk9HrVFc!qWY9W5R0l&w=!tPe)&6>r`>C4dQTq-!At5lRkYpj%G`O>+x zSqnJpY@EEDW++}`=*$Un$t0CG3(Q=8mX^k8ght1?cxHrfwn{J)Ct1*P`Q$kUdoN(r zmq{l=+`4H6Q#)Ik(>9G8?9CWTlUDE?awe)U8Y#2k%5^wR4$k!S6BryM6;JX0+uNzr z<@x->cTpB`n?VxWRZ7CE)aI4Zu2Pmuut2h^6l*1wu(9clw0Cq;HCqt;MLa#uxdXc? z=CexVk&K2}yKyVQgTKwA(<%X(v29h%OhxV`##r(P4E@p;VADmxuvG zP^80YtkK%i$OVU8@iiqyB*r{>9mv95ni;YP?(S|ToeuNfM?2BmY)qdq$)NH#cv!t$ zhEaB&eEM1DwJaqSp5S25S*ivn(xj>+g)OULJfFi|Gt$xEC8d=+ha0!nO)5Of&Z7qz zI)7T#?nM$MEV6^AdsrVF#7mMbS1!cv^t0#aWwkhqj|~wUA5hiWy80Hv*&21N&7^aE z3VkBaQ{f`ZqE`w^(w-U9l!+w6%9`BV(nQVRzmbiwkTqTS_yL{L9G;_VrU{I;)p^~*=EJWDrcZVzNB6klANo^0k2pk8X8AN zCw_MhpFKrWLzPu)x>>Y*Hu-{>Y7@k>WmUQLIP2*-d5lY!j!?{?62UUm4~0g^#}e2y zHID7u&$YL1qGR4-PMwQ!{8S&8dwb|PxtqE=1D)MDYH7$^L#rtu2!#4N16@=6tXg?9(iqF;42*8l2$hprxgQ6 zCpErW5xdu^4#N#~4TwcX>PQWZUe(zsirq=N(zPMPwK3SQO3YTm~j5@QL%uWQymHOCM?<1AYC~&eGK%`UX^cls;kc3#J zB!3^_k4WXws909QA(G3j)JP>|r!H)INyP}bwyG+Gk|dGZk?>p6a-qxX5JrX!zY@t9 zQ>RTMFg~F~0HH)g{R{-~F7g4X8_CZ-nGq#2vw1l?qIZkJHfH_RoruRt=tn z)04_2aap}M+nUvDx2Cl!#+uYry08 zs;Iqe;N*fRLnld<$?H-sEb^-)P^yyNtWI8dMX78xyD95xlxt;tW+$4o4CS;W@)U8!#EPN_8w)Bn9Km3z%N&vnjQ;7BN6BS3;60 z^*$fTa7-m`j25%{T5AOzB^e|eWso*G@DkRLq_AZ8BNZQq&7o490uGk2=&$p1wze=B z4ARutL@X9oO5}V#j?3nu(eI*E=TxjHe?y&00z_gFm84OxcVT4|^U8W46DQ8$aXWE4 z^i1t`v2ogbT3mHpIDM8~$IcRomC2VX)KWDyc=30(FgzN=>26faLbuO@)o3R;Hm*Ro zdXs2-v(mi7iVo8(Xv(&<511)thv;2HT37)N>GZa-(i$_@i03ZNKL_t)V z%3$)VsFsbI{Zzt!E+=NT4kX&!)goI)Kw@ms`HN z+>5nJm^%4X28*GrG}e;#k)ds&qGxb4kC-^y+U%q=QNp1NqCFO%Y%#AvQZ-GD4wZ8C zdfaMIF9Y3dEUQw4ZjT*(wyHkw#F!_;hu({4)lk`PwJ;vZA=clTaA@j%y#CyiG<#a; zIdPOakB7j7Y_RfZ6s2F1h)&8?18obIk|}6O3=UJ$N6>0aRKx@*iB6*yjnzowj0Kq7 zZgf&@z1Ty1Y#4*a%(Qkpix)3qG?-=DqD3?}J2`yf5GGeUUA_h~8Yf5h97IzbWZKeM zOlz_+wWSSTV+#p=k=|36+5OHATAJHb(({&k?`7?VtJuAB7c-WxAzFgET8+9=neTu9 zd-V7BV6t18H-8Rac;HKPch923*TDJc1eZp`9C`H>-hTZrs+#9B8EI>s&XZ3*h1FNZ zrZsc2Z&V$2m({nB2v6|n?|)10$Piz7@S9w*Y5|sdFl$`&MpL}|!N>gR7r&wyir}sH z@cgSU(kyZQW5*dthH0D9K=+h(Gooa1YS26}9#XGCRe_f$vViF|6=h!& zli*Ev+``(88}PSw;xOpRCSqI`TUWz8hL2rRtfad7Ix?v!>z1^!xZ6d<;KkkCiKW*^ zE+0gP9#5T50hToeC-;BlL9(@aO1Xjp?f&T(KcjE3kAXlxpSWQa8f%gD8`rXQ-EB;_ zco~abh@cxBs0AA+77hZ5;mIyvq4fn!a&xmL6)$2WKeI> z>eO>bhFy|OmuI@kWKgw6N#8DBK7;k^reHAMhe_w8px5)lYp-yur&kT7q`NE}7|~J4 z`zbIM#$vQ_;ao3kuUtY?YZaFr9{Td4M0ShHm{u7-L-nJkgf0bY9RSzbN1Ri(kD z`YDM=8O#>NIw|6ef-DfyYEf6hPGe^~v0Rv0bDCJ;wGz+7RLWr}?c>!K4`Vc2Fj=jt zJ|79iiRUWBN*W93Q-OzhmyaHFQ~8NQP4chk`uzpN}#7mygooF%k_W z>1dzAf)%UioHK{gg&|yK3wd&A^m%+ObA4x=J!j~P_w(_|9`@`#s&wiCm=;;V?|%0*kNxmbX3t&8FCYIK3%c7` zxoQ*J-+Yt3J1;SCC`KxhC05Dv##;xt`kK3N8#Sb(6KW_bhExhw*3NIj>qzn9=|k*# z`ye^7k(sr;y!`}QZtJCg-zjciw~RSc8tI<3Qq{r@+A@ZJp1EZ~ch%s0_Vfo7U$#^V zarjanUwHT%MD!)z*!2;&EWQKBgoQ#j#*}s+cYfxReB#a<(Hcu=ss;*J$qwhaXg1Q> z+(x=!C0_KgZ%-cwkM;1<)}2h7HjCA*9r)S|v^KU7PH5S3?PhMj<$9(~nW`%Ff~VFM zwe$@paMp}0Zka)=#m9iw%=?E)Ozl0xeg~5 zg@F*RZ`owxU@A<38 z(J~SRkFmz(-d>I#JV`}g;8I_JRr9A2kBsB7Xvri~g!6I5%sLje;-#)dAFO{W+S4q10^vOQnAF~Ti6zdFFHNTJFJ2zPU^H>!*h$XzevHVqj4JY_C0(8b>UT6a zRYF=)W7TY)P(av1RtlL39C}F##z@A(>O3+bka)XGF~;QFE){ICOvIwyknu=@ zhAf1`a!1q9+-}9>@o{l1LF#0NlGa3`EZ?UpiEx2|zRQ@G%|LH9sb@-}SR<`-kSOWd z@$ttDUk+muUaL+}07b?_!V@f!i3KQ2Yf1Qdg4j?gwu&+}OL99fIKq#9{!Qu|rnBSi z-MqSO7cQTdHA|**!?kNE6%#C)KaFIzKr)(^z%XyUx1EVV7*h#K#W4iLqW5MqX@ID8$P6adJh6hTPy;yi4nF+a28Txv!HcINAF8 zD}*MpwD}sC(OO3;oM0jnS7DfJuE^!y0m37r6TyHkCSOoF0_#~Bz6 z6Uda&SZmB*&_;W^gR)VJ%V%f2s$)DG#bQsgc-a-W?M~ce(e`TDxOo-Rm(B!#8(s4< zT)2FJKwy|`I)gC%1c@LVy?n8tp8tZb`C#`RR&AKi>=|x0ZTK?zvWD1rP%Y#;np^qA zMhDOQ`9)6b*~gZvmhrXwuSQd|Q!N@vCaau0bB@2g{1O*}6I9I_Mn;1w!EY9XaK21D zI8LCqkJXF2_||u?X3DfK^tyKRntCN+n0w_C!j&9*4jpIb)(?5%nSb!mgY{gsWGw0=pT#o(a|0*_6F4NAA0>9pS}Aw7S8O#W_MC3X^3R9T<9C1l!;Kw6-Y$J$!Bw_ zrXCk=v|2LgNT}A2o|j(Up_qABUg=d53$wwaL?~zZb8iPP01&S>C zZdGagr}|W0ToRkDnk5Y;wk?bLngq%#mtZkr3Dvw@oa{U2iozDFptlG&CPg`y#$hvI zG8+(9ifl5o$&^xt7E5{R{9cs`Dw(aShdw?wt}gIJm7cLEpmRxa!;GqiBEviZlS;x% zOj&N9gIFR?MPE^1)e#cgF_pCG2D~P5|BC(nhPGPm^3^?>QRdtEx z3nC6w+iAsF%A}A)hZrVHRT=c;l-W!s*D8^dh*9saQ*Szn8R~^ilSm`AMuWzr1`owj zN!3#wQb*H3UXp%UN%5c#{sNP5IxR%TC-A!M3fd~X78$ro+QQ@T5KCmpW=g8=k;|r( zNv))vOy3AFIwlrFshw4;>S82AFPF=sfTluesVc!jMKL?dQoYhnzL}dE8mUw!*&o4B zP;shaWvR$$Nd0rjD{=+5)1mawk!VWUiR5RbE+w)_$>(TtxfCBu4jD$RiI(C+i#PNhkA!;}eQCrEG&WoqCO=lOh8!DM+lm7UZHWrZoXi%X?iCT`reZ9bQCD zuh)RUAv5_B`kD+EG>|Le7vo~4NV-s>rZXuBx!qw`jH!H5{w|YAE{nrLzL-~%gYoe( z_1-L|WJ(nCv9QC|eNuoRD~KEEHCQQsLLc z<5BhbBL^%=e9F)zmk~&&R1x!7tX5?ZlmV@n?1X5@Dh7=j#AUx znX_arbLULu(uE#ge&sz?mu{ajmHz(A%GQ+4rjYGPI-3+zhf1D0y>&{{zINj*9{Sw< z6tq>I|Hs?B@$7b_s@B@pqS8NdF${;sXcItj8HxqrFU2t$ooWCSiO0|x%(%U70)a71 z7K4g#XA^1a{B?Z$r~kp?Wh)sgl-d5rzw+V}KPQ_@D2rq+RaV@+vR9H=dH(f*2ibDX zYFejt;x?M;-S-BuWP%U(UQpi?u}2AqFBD2qt(nzEOa`fyydIfh>UC!7e0BxVPevzG zVX>@e=uHd^2Nh^j41R@*46j{`jgEk}tf1y%rj3Q-icJ$79al^}pW8|*Eh%2D8gQ$> zo2E!v6T{u0BNQ3MX0wov=P?PaT})0oEmnt}=7xIWxe{$N=5e{_By(3Rr2p~=+Jwk4 z^vX&*Yw;BXLs_gAQHE!zWiF8#4pHAMO5qwNpNHu)7qevcETThaIdSR;UELjY&zVKM zZ08?;-@&!lUWu=*9=)bQxmuv_@_Ch*+PHQNR;>(8OY{aKJofXKxbrjjaLxKTq>EZS zwpLmid>r1phq<$6Fg`XxRaYiB9^}^BZsxuRzlOW54M|&hbR~{O&tS1H;I$wBlK0+x ziTR6W@qle_~K2sSY`%78YtSnP+XyDCv-(p7BOja#h!^-Y? zH0zzjiX~QdILV~OvDaMOeC>6-^lCz}W?GwD(dDz~%Tc0%7{X+5YbtEM>MFAFAjeM~ zrmNArD`ClaAgC5= z!mkt1wmjFgMuVyy8)TVQsIY9oEbhAd7A_te;+bFl53xv$=6VO4Z=Flql=(Ee#o%Qi zQ_A6RI&r(aICXkrr8pfO8cql}*%{@-4ydRr56tdQ*6F{6{C*_ zsju^K_{ecqE?bJzmcynSC0f*B)aSYB+BNLjwNq6P7OdNZzokqBsFvxrnsoHc)_G69*R@3ned8AUT24d8?Dwy&zbRmCa!B7IW)++ z1!Lt99Z92?+l-vMlf0)?Q|p7RuSX(i1_B}*9W4uY{D&26nJ zF`Nk|`S86xR1Idv#xGOO=T-W#Z>Y-lL;JYqx-Hyv^9E*i`qgr2_ldK7wCe~N;U1Q2 z3OcSaT9nL0XVc@ZtH-4{R0i~xDmqcP*EC${?Nb)XOg>9EnpcvSy*mz54UW^R36jr6 zd27c>E}goJ-(sLvtRV^T=2jmc?>vgv?E!;ES=Zir_g%*0!gehYOk6@&$l%uLF;n1M zk9>~B8?NL1_jYpjP-;{RN&0k5QRJO|nG;-%C)Q}@{Y&?lehT=vCCW{NbEZr+v z%9$w1&>)vDp5`y_?4%GX;KD>GFs_gn8BLY52aYhMxgH}n9Ayi(k_U6Sm2_CEmcnwL zkfm$Bl2^$PVOz;ULu4ItXOVN9yf-TfM3rJ%qZ@ZVO3_f}#Qt6`pZzt$>zzNng$wy8 z`nVap#lyLtQI(+Ts?&1I#)ZsmY-Dt3jPu7&Qb|P#js($`D!lN@i<~(Tp`0zz;MJ2Z zM5t)j&5~ma8kukERf5W73VHC8pBp?r(Wa2RH~u3Sy-`g zJR7qjC)2YG$dY#z1%agp;e||p6nLU+C zBeI8NCd2#3_OWpDV*H)0OzmnX6bvKvr~B`{gDJCSaK3Md!OKIW%_8&2C^lFqK7qTT z8PC*d7@8Xy4MsRSc8TS)rw}ft$<@Tpoo8%pfJ!CBMAAwuD@y=jXoXc3Yb+cjl`k>#bGqn5>{P>N;yv|JkIP{P1N!RmbSEV zrryedOF?XIc<9@Y&^7Z44jnqjpMLu@ij_3AQU#M#(+UaZt)0)m-~45~?d|;bv8UW2Oh?!E(#FAdAYBg#ZSxAcPMMqIrquJj^b3w~YkBRZBk)@k%qI>xYcAXkz z|F*Yj^_lVcbxfq?-e_Q6TLT`amW-i9#cZW&Z>E1VL)Y{Yo94GMSm#s*+-f#KI2>i7 zmgmUfBh*q!5-~C3x>Vv^>YoxOQA19Xky0*;*^|OuU*R)%Uq`v5CoFexvz{}(qg)=G zARGu07)jICK84O{U3{hUCM?1fjAn?3B5Zx*Ej}8%$hZFW>#SI{43DlJtHDP5)vLLy zV&devF`jz-cbq%$5seNjiCBo;2lp|5Sr?v;F2=@&F_Put$wTBbG5+-I&zRah9eq^* z@?P{>3*Bp{b0@d((cu$3_sie&$}4;6Xq?WfRkK-h<%3e%B%jl;=hy&y_U@*Z&#`OA zLA;vPT(y1~*RESmv1%ZduP_nG@bT`W?0EZaE}lN6o@)~UX>SPfsH%*rwyFaiB74j8 zgC9P|cfR)>)~{HIRnlEX3j^^OZ@;sP-s5Mv@rng>bakOId6?yLP|mNT&8x%F)5|!)%`OZ^7l}kxA&D9reO$Ouqo}QM=+rsvuWo1R^ch4W z1%}TZq*h39Y~KjaJ#J?4iUdwq6ph}2PH!S#tdiGMN#;^GjW&8iS$^}Ir|F*6jkCTP zr`?Oz=q4Ob6TEnmzS9S>>fzD<>}TfOxpZ}PtA&!*Xd)a7(R1n)fstVnQNaaCObDiI`; zdx_u4^jJY%RR66qNix=~h)RzQ?DqH(Pu0qW% z<~C8R%SW$7KMhEgQGQ?HWXa`TV3h(>m7$P|;+rjKgg#*x1$u!xmlKQGhgij|dV~7f zBq1U^BpLYSOL@E=FB*-3nn5ZBa_N?er3S5B{=7aFiTwF+!JrZcR*OY_ zjWsbzN;p&oCi45~wFHAf%oc;H8RpYj3gxOg5D15>zP=8J@O_FVRr4&@jFc+|63HwM z7n4=aLS9v8866$Qp);{&(OkSuPP9fNL%|sK)>$0rIl}1CAa0X`@o)m8*~pEbx{e|_+T}tw zG{jp6E~vDX)XFM`e^!nQQoFG#6P>(U1lTX8BDu(9QfXDUnX`Hw>#tqHRdal*7Gltu z(3C~0U?h{z@QWv3#B#}?xIE!#lqP>2;b>e9Z<_1?p+H{04eAghX-)x$r<6@fI_)}i z#u{7S_%lszAGulue|tJFSZikz;4h|EG95JOr*jo#aq(r%_LJ}C z`1Nn!;pCCCY`pGTzVq#SshJ{5zh16c*s=Qvzy8rvP!Nk-nHjSe^2j3(vtjuHYVvvM zax)$n0hf{Iw{2(JV}C}I9^>Bo?&hIyd=-lv05y72g)EuW7~lMlpKxUVB`T>D_uutt z?*9CzX|gyOIdy`u(3MP`+kwI6XC$OWE}FOBcr$((?v!(6D>?Qbabvd`Sul4YrjjH# zQ|PSY6cW$V?DEs#YM?`w097lcws!UWIn{HTj`lWUu?%;A{tH}p-7UmN0%RirWqi66 z9KxAK|muV>d_gtvCQ!|j{z;)W|`^Wj@s-hB2YRYBaQ*@4yXp|4!v?v1zciEC~m zHj$z4{7L@z-~Su`fB%&B`a0hKU^|yDoua+9kvleT;NI(2@ZtNfA#kDIZ1W_$VTtEbrZ(%&fOYpl6yJq^|wXo&FUjt`kW zy@SrW3RRzz1#@m^B76z2&5glqAScy#V~$uYM>VS9?91C&@xA3}6ERMl-@^;9eaxPH z=kV4yGB_-zSsRg1MAdp_*;D7PM{2zy6c8LjMN`A!a&pxTYbbj2yzq~0oIKix$)sm2 zILfKMV_05&i=mT)#3LaZnws&r96bEUkC-=S9+6^-k=|j7(I6Vd^|LEx=AWKgmXY$vlY6>!YEE(r}|Na>DRv*<|igsNc%dTi*!*}mt&hokR z?(1h_G{{&uLRBu!CLN_r7K_(UG#pb2rM?Rnn3xEl66I0}s+QIHMb1_RgHA0XRGMCZ z{gOE-c{zPF#2fEz!|k>+kqhyor{?3(y3v-))cKo8rUmNaAXzeD@_2~FE>l-$#cFTl z!le;X!l<+7xqNn*v7sov=fr?lp|#7xDo;HIpOsWLgWq3Icszj9Ri`+k!re%VG(#4S z6-j#4Fodf^L1+!65;UC(~OLcGchqK`LSEwWQsNFye*_Al2qb(Dmf#OU>tXoM+r-Yvm$F~ z<_q^c%>obF*}w>;Xi7cfBgHsI zgN-G#7E-cV84H)u)HSp1^^ehL!*nhZV}(VDc}#T{gb*p3001BWNkl? zoFQ=jJS!H?W#ifg(2X#hn`|4Gqv2 z7$=&@aqe<}Ee;4c#fWWb?jRG2bN4mZaO*uc zb1InR@kbx0m>4HCF~;kW$!zka~fNN9DB0u$ZWCm~Q8q7I2E|?u z96U-sqhlfvVk|VKQk*usS)o5BGUG&xVpMk1(Ev7MhDueI-xh_#@YsFmV`ki`9J4!p zG`p{*eNhJ;(`M2%Zv*j>Fv&9~Fcd4et#yjmnMhn@Z0wSFfyrhHDh(*LYIVJ;p@ISu z0FXP3+_m&tv8tCjbo`Wpb$2#5aMN{bSukq`bxyZ}<_{8bcw(%yvIlEuN3tZYHm9z<0#JS3kdrWy^f{Tz)dO0-K^USiXKW z4L)J3HZdG)qw6!DWX-18XkA9?bxq8eHJ5ik+RLIP%js(L(f-MeSWL2HoO}&_y!Qxi zyt$pDJ>$In<`Fipy^?P}@)>Fm->%O6{i8WfAMZhDs{7Fvr^s-{ba!P?Pzj@+s-1qtWx&MwEc<`Q25*G%e7A_7B^6Ote&e0=#_}QPI z=f3;z;)jp^3#EdNXd%X#p8c#}vx=K;?5KBj?2=}=p=2DYdbW2OYC=DoK zH)<>Fes34E+S<7PQ|qW|%}UPm*Eim0cp}2J>sGRH^-^p$KV3_W*jzQdtD9N9eg;;n z17EO4!tCSiH($VBDsl6zS2J_k6y#i5EoP7!-p42U)j(qS)Jb)3kk`OuV@L!}HZ|x> zrIT3gCNxzOwUQVip}ww;*7in9#VUtS^%I%Ma_-c5QiZ5$g57-ktu*^uu;`8GT}H(K zzWUlt)cI``GF2vmIpW3)CbO`@Yh-gtY(_1gxbY_3ngV@2$FMkU^b8KOeb-6s?h(@Y z3dylPs<{lKBT@eJ?5oULxPbQN1sF^&G}2fRo2^vcie;``zmXkp{DYtT@=vThJe{ds z)A6|)(HI?sQ#G>507rL!$i(<4#d)2gZ{i7MeBx?M7K z$*GW!+^@z)MpPKY@AZ;NqQV)mLL+9OfsojDzem<+o_xtv}N!Lx}uPySkf{)oZ-pG|Bln`Q>p5) z;UWBfkugQcBy&nAP%KvIJ$;FTA0JnD+?w8`IM(u<5tNkR3Sz>~wOV=g)z?&IyV2jQ zf=I$>GumzJJ21$x(-Vr%D@!@~^Gl_g3iJfRLE_O2K984FUc-1aj?QFNK_3ZQ2u}=6 zS>X&)1(`2ZIDGgp2M!&OoReBEh~!RYKXTp^w2N79P^t31{(hR98r3~p4Ckdvjz(V{ zHk+G~!JxvM9NvE%YC4s)(`c$xY9jfoqm&j!kR+*0!edCQ{-<0j<((=@ce%VudPjy} za?z9zIhp9n2fqxO$x;piZlGMmVHHgk&QjpzzA*Ti}bqzjc zl=3(w#+e};9261~#gc%T(=^nJYF2C?2Ab-sDXAs?MbH!fYs$$|MxTn3{=>j!p&!`e|tCRA#PHAf1*FIOkU@eeMj`IG8dpUh^LUpf2ExvB~3~s*tI+|Nr$Yc{(tvNE8F-it4 z|Mr6?NC)Hrtz&#VNPGKK9(m}CES~8?=ZTOC4DtL^J2`kZMPL6YS6;QA1vBTf=Bl|Y znq#8x&<>t>Z7(0~4WPxMz~~aCoYpmso36frl?#?Jy~9WJ(k_1b`2VuwOqi-pqYRFz zWDKjps0Lg%r4lY%Xi+z9oMbK(&oeI_YsTa z(0EGx@zv*eerzkXbP<=y%<3yv@!;3LPD@)orqBRGhj#Jdv5O>XRb|Ywm|SY0B?CCA zAIrl^25mAJlA*MGNXz%a-`K>gSuWC$ZP?67{0}C=C`heE!^l2Z@lsz`(N5cZ=XmmTpT`m2D>-PO*hz>H(ZcC1~#KVErd=p>ujCj-m;hCPOV3qoI8|QyP7oKfObx zEgt&jr&)64^#uAdn4EsfCLPJlIF0S?{P_3(#UFq2EDd%a>sD`|!&%SCqemHxM2QJ7 zT~lP;rd2dFHDa>bn9<~C%XJ%g{14AiE2glD(4(5b<~H!f|M&k$Kl&HW?Apzn?`-3A z?*%@$={h#8TaCZFk@r4&izA26(ojDWr^Cj#|Lr?`;l2l$H>ZOW!3dB4aVP2MFyH1p<{Hir zu}gRxJ2-dd9O;~iM9Ig+b3+_Ec8qfu&N46*VNLfUeDyU-H6sn~7FKUu%T2dmOM9Ce zrNuDXNfk`Q(;201_Eilm>1e}fF>?Cy2z{Zff{vazbDlNRXXBevB_2!RaKC-;nU;=~Yoy@`STe#LYOB|?hf zsoux(N!!v$Rt%6L{wRoTNTUXxIgv2X$i<-~`Idfz*grZok%G=r_bYJ+5BaUo)0lNFod>RW6sPO6v{PeK{KtZfy-wi z-1^ne5gVOg=%dRQs|6wt}Ckgzf{+2|1>~%v~@Bu5k+Jp^Jh#U zl1eds&I(p7T|vp*%=v>om|Rt5)v6V&*xfoNiZN2!3RmB_nBKu52F6nui&7g7Q*$*? zb$VF6X)T-9uVdww`JC8)5QE#V(h?_6_ONi)0&c(aQ|#S;2LFsM#)tbTr}PX<#id%} z<4fmRoX>If%~vyR-fSpFXqs-JbDD?1(LUno2)hQ3(jN=Z(%Q&Zzx_=jS{o5G&KX6X_}wq?wEJWu;5E!{Yv8Hh{7hA+!;u8>N{;c~^IX1gT3xjM_Luj#dE@o`;9njR0wkJz zm0TvqP^6b5`*(8BXYRr4Z^BgU#NV}8SbzQv z#)3gc&h*fv*JE|sXlQHVZp#Li8%>zYT9TPEJNEDA{ny_l8A|ZTL*L@N-})*`*Dk?obCa& zXr0zXb8DMwzIbdNE+zXpdUzM-diE<8=Lg$9LYu76+TMl7SC54zB9~5b>c~F&&YqXs zBjx;)Y`khMt!-1(XSytC1RHbJn$_fDVLsk@g0b;98`ocr+u5K7tFf4sXaDvAF25Id zMZ=l}3;FB5eHe6N7Dr)H45~FHivTCtd{I@%_wGAFJe#9y#s_q^&BWnv#ZWbo8XDz^ zci&*!%T3IkJ_~n!2U@d(3%w`!aMwH3H@D(&b&$x_Xl!WWZ*P9YhX+nFZE6#3Z5@jJ zY;)Qe3`}4*3xdVSL?DCNW>KLLxkJdJ$?J7fE)^yNxfFuJE!5VZ&aZR2{@Fh zHHJrqh{wZ(BSDT9${g5p0-vuLNz!_KjS6lapBPr$X>lBi?q7v1ZEhdJC z1{Ekjo(!vGs?}&AlPvR>zrL=9FH#TIRdrOWWu{D>&fXn8oIgH+$90loO-C-1QYOG` zvC4Qbs=({TTp5qg$Ns&896c~ZE+aty1U91!XNd!2~r^d@P-WYOwmCXrEta0$mq5-*lYAZ;MQDV^@Qpq9!7B|@qaj>M3;hx~ms zIz8i~1C(+i0o393I@RZmNUttjyrk;sBEXQ>L^7VnU@$ADtyyOykx5`S>L%ND*#fcg z1c_Jqggvo7Dymc9bWs4;Wxg1`PN7=b$kSqcp;s53S zKdRmX+Rm%G_WzyU>+QN%y<4^uV=yF{ zCrLwi+)hJ+a#%d%((_tsc8Ssopb$eMBFCwM1mIl;#1iPGRwqqf0Y(D8^vm*=u(jHk zg#L-~6OBg5<+G+DE1e06l8bRA7a<*6^k@mfcL%&!Y!23~T~0^XMQ5mO6!xXB@$%j= zQ?;5^A}FSY&B`@5Y+=nR*-MTZw${lLlRWprQ6}?g77nbSQpg((BefsudL?A-@VX7y zAtxNMxg1W5xi|IIU%BaG&cEa=O6f5=LUmqxgQ)|vSSkn+^+n9W{MP+nXK}Y5Tckm@ zm@>5F&wcW%42`9jokQ*`imT=RJw{YS5b8rU2h5=a2Ownx*;_QlGsXk!XOl=2P%NEwHKaW+b z&mm+h7=~24KERPfQ)G))1JcH3rg5KlA*qU=%&Z5WrJI4C9;(F&O63&Mu+M0~*ey2V z@i?PXbNDTF?1?!R1mu)g!0CyQO3l$N0ne=FA)I~QYQFrX&$IWHtqk;(xO~$Re*MrJ zriWe*cCvPF6_cd1HXeF@8&OXOBd7MW_taqu$qWMv`b~?N66Pl!dYqntrQC7B8axg+ z!GM=|u8rN8~lQSC7Twca)g2n9n1f!8`M7V@0lx0~+`jhL3V3of{VYcDyA zGb4xj{!f2Ja%P5Ft7e!fmtMSzbJv~4)YLe^aFjsjfT8WqO-=L1C;!6!Lx)T?!QprF zg^zumi`FbOz_8WkQ*LQM>W-kBz11=^@j1G>qAXh4$KQSaGXx_6Tz)4myOk5E3BLU4 zFHuX|D9x4)D^r5Im2%B!b$NYaj9Cl_tNT*5%4!iC)oNVpIwN70F7|T$trs)0Ym(DP zCW(ea{dpoW!n3Cj@v9&FnArn)y8IS4z2gdQxcgqt z9XK1C&q3T#;iYG7RD&H<2bwr~7jWRnao%yqUEF!gEqDVS?EVO`Tnn%Gs#ZpHF&zcBl24{>3#`yRQxoCjf z-uF&sPmYs1m86odkV&SDL!6~7(Sri%**RmwTd!0}&&~4lpZtIi-2Fk*jzN*z;=!Lkg0JP{iVM!C=??J3)7#lEp;tMn zSgXAMOP^t2-9{pPyQ$1hnIuk{h!Xl=5s8wt+Ubslm^gNt!!K{cnoe@pyEk$1#>GxXFBe3a9#8DZv1 zqt5?4^Z;M`=I2>))_FJ`&#-ing>%kd$I<;K*t+8&l?qhq3W@?0a&1bjFqN9sv_A{% z4Tgip{K6XuVT%Tsa<}-yn{Uu(_mC@Q$)&6OHA3f^Y429`qgd~PgD^RJ#89sfKh257@OcrsJ8pyyQ6b_T0I>XiHuj6n3?Vpf= zfGUA%BP&wnvP*8oZJpPsGJ>cLwZi#vX^rHPq|y?s4q|C|usP($I7Uh<4Wi2iqf#=C>BywN&z6u z%*ZVJcD}*3o%^si74TL`6yhW^aXJD$q-r^wl_L4f6g7NCK)=~?8`^uZoFw3K;IgYA zR;7QSpA9$N$c^v6n`loz-}vPHWKSMpY~+M#K|gtPko)pBe(<%g@|AymfKsuCawfrN zKJjU8`M~Y$dSe$q{J}Svnw-UBsq>xx?}J>liz z`)fw`%<$B(xzG9o z#Af5X>yA5E(Jj_ijf<{a%Q-imO$0YhM}b;uin-JjvCJGd+L`sa*S&)TY|sC&$@NXdH+p!;%J75CzH4>Nwz)n986~!A62`k9AU(~ z7u(!PHD58VmNK|lzG^v}&fm;^_uRqaMV&;hTg9F4xy~@&vDFxxoM8W(ukrHEzwp7o zx`7XT=sw)-0i#W-_U^Tpt>6RhTNzJG^UGiSiJe>b@x+tA=kuTYA|LqV`}lwZ<7|BL zQOI=6Bx4rYkPSYPC>J7b#?BdF9X{?!W(AJo)FNIHHg9 zSD*a{ZgN_%G%_4Kb&A+*fu_}KT7lB#JYT;5oBZt;{(&2>y9iHr7xikHW;?-;fBGX{ z`qQg8+jY`$AE9WJHLLqrF|g3+F%@%Jj_lvflMnsLjL*wEhbh}0<$rzRqg-@$2y4@Z zt?pp)z(!WD?qPg(jyzvv_s; zE(XMMYPUFk;DFiZ0zn_09ep%fb9n7-oK{R?Rd6+s%c|SoVD-wS3=H%Vn@#f1U;jJ4 z`uCq^#o7hN{oHF080XA`JGSxSbAK|eX}@{&_jLDku&gk^!v0RGWdYG~Jk}bmYMRlB z10*xkGWZu(SF>`5?lA|qS1Dy-=FowotX#9) z?48xj1Up}Rf>!k+e3Al)k28Gg2yX;D42|{~$ML~4YENtO;7@+UWtVTJqf_%8jt>oz zD_7aH={%!HCC0<6JCBho|B8+0AH%J9v})&^zQwr10b}Trn4Kb(%JR^!e#_q7d${=A z3ygcIMU4M!n$f9AO6ekxJ@7m|!8NpMF62aRYeB_oqwaPvvU@M7c-*w1Y8_au_IZs* z6~dL=OA8nawPJ+_fBp-`jvS!7XMn2RO|w;|lr14g@Qk!$X)`x@ibf?%0conG_|jLu z#k$q!ke2REb_Sc%jV};1pwgqi`yHc0W1O{S4K9l`cwLl=StI)Y=9~N2|H5;;aM6Wy zM0+U|DvVD}^Voy?xaPXc35UB);c#+xihA3|%dhU@DbAp z%6#h^-zWIfU$K7uI+pb;pxUr7ok%e?HqC@2A;JOv{vZB@&V^lU*l;dRkDp4*MkSS@ zU99j=-}olKeP}TQtCkY!=%Z9@aQwiVJpAaBMEe#Jj6}(1;*_#k!`SHP>ZfIQkcdt4 z!Yh9^uEl)|`$#8K#3m<5B~yI$tKVYHS*r<0drdr_%cjVrK5rN_*-X-y%{0no{BAjSiz%co z92EkZ*jz4V5;3|ux{2D=VbbLEv0>(>=XkaHrg4{3FfZNG?v5yP;|U%=@Pq;Gs?~VFrq?2#r_XQar9bxIBUhEz(W5W|9#-@0^wcG3y`LdXdk|mM5xy5KN3;d8tiHvvD zts_YvNfud~s?b=BR`HR8M{&ANkB1A-001BWNkl+Tt&M=JNFZo1g4tNYu;o*U-55R9g1{q-DPTA24d!+Eo3vXVd>-$-kxrpV zHlLF7>6|)Wh3vS z*wX1x%YK=9yGOA%o(j>xk0KsP;o~f7S7SuONL zI$5@CF(3KBbu3-hhu64o)fnBkpV;)zNHl8n^>q^M9AIHbm^-i9#ENyj_@XzPjjT8k zCs25Rou|fV$|cR?F#>J=uv}5BguGtrZB2qEMOni)nntj@VX<-Hd1rCe1#9SEGl1Q; z5NkWjlCC}+8F=CF5J@ovTP-?zd)R!*d2HUegw9}_z~UaX*NU!_nlm*Y{Dk1(?lc*nHj^{^4UE;rqY*6=&uuELpOGd++@Oeg00K{QZjr zBM~gED$65YzWvot^Zf^(;-$T#bPp`$WA}cD{$Q9FU){yvT$|+75aD2nTd&XobaQ?9kRe)G9}^!=Z}ANxL!Bz71P;EiWrLUMMJ zAAajU@!ES>+~wis>(?7?rl@-<6-SF~CS%x5*+P|i$w@Lf%l?sl{PE>o6f8kX^(>Wg zfo8kGZ=U=eoyTVR>uav%oW8DkDrLZhFBpZoSW#7mM@}(2J;H$#<9zrXw{lTu1h?OB zw6oHwG=6V{WU@wQq=(CI-@@G=c^8MyjB)JPIK81BT+TKN7DTDmUB;d@nMqQpcG4&% z_|=0yp*PS2xfCOb96kk!V5<5PK1sH0F)l=Z`=!5S%Z4?a zvt}j9iPMI`XmKr|(kx)fr%8@YFgG{N_)Ll`uf3W}uiVV4ju6dOjOEMw2z%>9BAuLw zPw>m3G3;#{8_rt7UH9Ef%PN}cBIdGl#9Mie$0zvg_ddtZzWod8W$mzf@7m@aCmS`h zzQrJwPM2Yk+N{PVU4pBna*?i{C_SBFN>(_PYOwcY!n77=GC9K}5}WGW4NEDH#(Cg> z9w!x>rD?CQ;l_*jw|~B$|NVvUFc5a~wZHoWPrrJG?T_p-;_CLWgHM0>P8{|I)~Q1{ zXtUw6%lXs?-VfOvuN>LS$Yg?0$j8P7Q5G&*LFa;g>g}p=*{e4&;FQ(j#O8Fccup@s2KG{$#AKFov4yKzBhYT+bA-6|%B$%O zhxx?4AEM6{rB*AMK&4zr;r7?LeR?zPWS+jd4R@}}Z+`hOu6&V1y2>9Of01>as~Pas za8%k{wPF)}H6Jq#D?9cb!cs303VX?9s|=49SiHWM4J$YD#>xFW`^>}iuk2#Ol5=ro zO9cFGN`(YLUyGiFQT(0#qQ_tj#eYeGHVJwqk*N(kpa!CWmH_D1S zB*mC#Zf+8*#l!H>7#^1cnF6${3P9uRcx@-wUB8rDZd^})pPvqIi#K;X%kllY$)*Yv ziz?jonQB-xU?=FekZQCMneP)6=_#qr2ZQnr?oVi_0#*3`?LF zF=ghmDdviGPK+ctwdWW^2T$V(`k5LUBvZ*?^;qb(cxYdTqmsipyM0 zww$+?Ht!@HuyWD*Wt_c!EwRII(i!rSOXZoEZm?v@YA#w=p=Vha9*cssDl_px;+Zrr zKX;G~n|pZweK+FI_u^T-luI1%VEHZgFp_R?=(X3``OI(dIn*8@9Y!ya1w9OOcTy== z>FQrb{J=iCdb$lO^3>6zyzu+qbHfeq;D`VIMJl!?y$%PJ*&KUcdxe*`KFi49u+jSK z3Wf+dWRQ}jDw7rI?&Pw@RkGc-@aN}V!BKVb;di~C`~T$&LgbkqOE5Mx%8$PDQ^rPP zM7qL!`|rNO=Rf%|K7P+#_&TB{@EaW*;enq#$jHfYBql6v73p={aLe_4^wWRC>ad@B zCBy2ble_P3@tfa1!ii(2@VecGovNy(_F*|u>vt6&8y) zteqS`ImAPcJjv;?3EtD~q8@0FnH#1%5H*2ys#u^{N%6D){3)~X84eySao*_zl*Z>c zGabX{@Kb5l$mG-PcwrYOPmG!Ow$ouZ1x86gq>^c@GA*&U@jEQTCnN*IN0$~Tt#^M}3GtJQhd$8H0)$<4*YY=Org~J-4SSw(4srA3j?(KUxb^5ds z*!{*g?q~IyRrK}t8m9iqW5-$C*KcCcgNKeVJT}Qse(`JmwDkq9yy8-Z2hY$E>||u* z1T%#aF1wR>F3rP_{h2x2VjQI`ePQVA>gUo`t7tmirox^nlsI;3gpYspqpV-Q9$CUi zI>IEgNsb*qj{?dFHkGPY$Abr=HuBSgCm2y{?c=%H8JE07%j&}vua|+lc&a!-lt9a2(*oi!V^#Y zg;!qKW?a_f+NZW0Np;9XtIZ0jjCAG#rfnmY$dPrq_~O^T zNndZ&u&WcvJn4MN=#93GgJ7FfGRZgpr#NtU~7Nz40Xc0IOpR>|DHE0aGlxb=;&U=0@-aSi!sN+TtAk3RFhB2V75rWwdWL%D(({_voURzx zU60#iOoBugw@S0rEmo&6Bvm0Tv>GiVmR=M?$YL=B2Wioc3?=C7>@uS0(&UwnksMf? z&1u65lhK>xe5O=%(fJE`qw8k1)Qr(kwW=2Nuwm#3%+mWu3?#41OQMwgzt3Cq(jgGR z=`#0Yh!t+PnQKzomN}d-gHoYv@>qeO()km9Aej-(8|iLKGN@WDo6aw<+iIBE+EbN_ z=-Jk-GDT`LJ~3hRwbiktV+m-jtIfRDAd#CR>u?%&zSgu;?Zgg@o4Vu)G@r7$dAXB( zHg8N_n(g`PbGs#T0->CI*qNMf0*yD$=B3#!7nsfr^+eKxZCcNcs{6%c;22~@F-?F%k{&`mCuv*Pp(H^EaBtAE5@<5sM zNrFHik)E+SV?th^VY|26b(PnVIhMvKlS&c@1WXL0XCVD_#U*W{=ddWV5Kz5m6x^c4Z`8DAw{VxN74uZ+hV6sb2d%6shOB>MX z)1%btP26@HZAXZkZ@GmImyOr9?je(JP-~Rf*x$w9fBHTi{L>%UzJHP>Yd7-Fci+lD zhmYs}vY*4FX)__;y=f!&-f42It5Iwq*O)EWTuM4Sj-#Dn@BYISYCgJp zJ1LdwEL^^f8*jRvt~xyR@Cyu1Wl_W8UDsW}ZP#t0;41N#?GrdXLBmG6>yE1kJE}}f z&hf~ven+C(FcZh?3g9*3;#NH2AQo$l58ieYo?ZuWSDfGd;8DV%P7=u+ElbNV{hHEH+38&CMMbQ+CEMUmuN@4oVVcu zI-=cdT)T{+xf29>x>>Su4F_I)oudav8K2#0g0YXi=Vs2kqz8YGo$me!eXGx<;_Tt{ z@#AcN?m144NzgLL!ht5A`up2B6rW&p=m`0oUIJkwj4FyDbzPVGa%~I^4;hBa>0<|R zFFl`h-bK*krCCcbmyt`R3$=8#D%$jYOifhTxOySYoEx9JO|}+iDrG00sv)-0#Zv{Y z+q8j-GtWdNOQq2!($&f4i!Wewv_dQ!=iC4B-?W@gT2>ncS)SM11_aHQYs}@^^n3jH zY;9z{Y;yt^DkRxrHZ$ird_TR@pa<0S#erw6iV~1JgQuDMk18*X;SGjZCePe zc>_xNd?6C~IORf%g?%g7u=ygczUE3C4iCS2_D^)DvJ_)#8L~1nHqOA3^@!SPmkyo9 zMabjh$zS}8dLe^_BD+Ut`Te7RB)2_lSO~S2gwiWaOwCbf*pLLG01BViV|w{z0wDtk zfzM)uNKloxn3%F1FP4htr7Q1d}S*yJ^38bfY_)hx|gn{Z`C?(yzxD(9`KWoC)vIICH8Hbq&vEZrURaFKF3YB zpGP#Z%m~ZJV}m^U>mTzEU->e3oqs!4o69(ZdFwTP^6Ovl# zT@=$*~R#~)g0S5+W=;)1-ip|kzSBO>GMCvVUE)QkxVTqH5PF%xfUL-zCl#$6K zc}tPUpMIF)U>TduZ}ynF#9>>r?Ao&rOIohHH9TP_u0W9T>0<=lb=;m_viS-FAsaTA zgHkq0DVv}W?4#vyFg-qr%Qavs_|8_EkY$!ueHx3Sz?uykICb<5o`2>^&YYNK(`8q2 z`Nox8a@k_~+*Rzh2E!9+s%1N|i3twxA7pAWKcBefW@rT443Eah%_JzK9rP?*#zZ<# zDBQ_lNv&keUQIgd?9B}jkDel zmtMAkwHvmu|K*o>=;7Z`oSx(SfdRa2JFCt*hxo`8H(z!Y2TvcSRGejbw}(|{FCknD z@vcj+#5bIwSh28b$wDqYZwsNBy zefMC&$^ZK3J@hT|(0krZd}7sV;`cgzvf0B#0T+Y9L z^IBY12l3n-Cnm;Nvup*ofB3yr%5C->f0o3zzRS11{!QL{_r=&O4o;jn!N|$ebouP2 z8Xbsq^5y%#!Mz{&2zT6Z6&EhO2wTH#;)8N!9WT7HgO@D_*|hO8&Ohfms76dX&GK~@ z&{t{Em9Jun#~9kvYv}V9tJ5SswrY*+_^hGZds{gaw9d}X5Df*W6pQ@NLk|;)bl~sq zCe-EPxb$ptEuMRECogS%+33n85;3DKxb>w2oLz1*HdSPNc${oOQVbr$J~%lP;}4Y= zspOL^ToyEXhE`iA`;JdBlStt91!y#^Mx?fuEVFvaB5ZEGtC|dsj4?Pej@~CqD4h-~ z7K@!HfAvdd&zzzo8YB?(8aK4v`}Z3I9=*Gg@q}?U7HdSnmeDG;*-XNr7W1F}@)u0c z#*IE%u9&AL*#uJfIKr-{ zCK%uK?=;JGyiT7fR0?FNR!gSs-{B4rRI-{*8Z8ec;y%CK0D+}S!Q79_<>B=37(bhO z&;*jvu$-;sqAFI3hdJqHs8DKmb9m1<fU}4_^8f{3; zBsh~eV*>f3hmQ~p1WgPqRPd<(^@gK}+_YHbX= zWgaBe|Bc7R1g)5k34hQ>y=CRdi3uEzxN(GYxRhWu$>y@A=qM(3sZyq8^)NP*B3P1> zd4nc)1jvL!y^KueaXOmJC1zN>w4cebNsb<#p?|>u)01&ibsw9UH0(>Uxnz7IT@`8a zWwKeUcBf%ESlenbaT(xxBo;RU_wpc_n4B>tPcDZ8r;1heI<bWOx3Cy0i;M%T{ka1+ZVI5j=azT?N4oQ|2fp#-yB7ocb{&f{X?O1D?( zkU*PKr9>zgWXHCbSiO2J!>2|JAlKCqWjrBPsp26UZJacv&E*Lg4I*q%Zf2=gvWUSb zxf8J!^5p{gGbhOB5=28mDh;{NhskG?MnXb{M`GZL(ICKKW@^eXQalc)$!EgB5Mn_X zfW;)7B{Nr5AQr1i0?abB(VieSjy{Sd1U!^06$2Y4aP=JVU?r300r}P12Y(aQpu_kV|Dr{M-(`uWL3(1%SVzn zI=}K+yVd&t0|q4kZ?jn_w;H_Nsww^2wq0#!a*Zz;W|z#l=JVg0IhMv-*DnoYGd?*L zXFOyxSp!Py`RIKht)Nn=$Xr4aD;^`Qq1aV>j^uVEKcn$!)>|f?RSqp+$LH~wmNbC| znj1Q|a&ZAodZrrNiHQjWV$5s)X}_MA5-J*!fz_~wWZsfbr;HqtLtvU|LjZX|hQF;N z2Ac{`#Q&)w7%H`lD(U-u~RK%^G^UEkHU>fbBX`ED=G4I@({gDdHK zhr?#>>bi9g`Y29UaaQsv^E$ip-)%Nk;ISfXK{36)r@SOzESYDh^XZp9`oFq=eKan* zF3layHL5 z)pvD$x_3E?3Rrv_l+}9B+%n^%w}DL8WZoyaq`Wk@oaUbNb6uDFt&Ta}V^43d0bs?L zl%|+~L&-i#x1iKdV&a25T_}WjeO@5ouGWq~9%2+aC&3Z6pois1pn1(npS4`skvB z*lCjJCL~I#8_)$PAkxKa;;4O5dKh-6%eWlrhO`mR%+44TQO9yeBJ{3YP3Q7eoZ9y~ zZ*Duu(V-cF(E#o(4sN(sHY-1pvh(6`u&ok{-Y)Bni9lcLyW2?aZ_IlP1iR&jdk4n~eoa&k0j zHoczkARoMEF=sVb^4y*Y9KHbOZ#bXss2^1qckeq&Psc*anKCDe8Dhsruv<03mBRsb4FLZSeP$^(uexZ(td7*35^o6{5)K~2g z?LJ~EKY?E?~Rw)Z8{u{gzQjhO>sC}D7y4Yixp+v>9x!_G#nS;21ekeEvw8}M4G zfY)X>0i)mFX99z~##k<7tp?>%134#3)5U__ywK&EapJ@JHJuP3ykWeqfJh10=>+O)iUi& zl0dY_1a6w&#Y|=%G|M$Pb@UX;lqj+xZohE>2Y2jY-&8vwB1BnPCC3c zqJ9VEw%1gjLtYQ0(=;k>Vn@d)rE+FtRe&Ck6=*MVuyElDO1TvFx^JGkTQB0PXNl*k zWK&CMG`s|ZO?tch%pN<*zB46$_{;B6cXi?Rbm9znxqkghKK}lDn98(yVRYI6S`vHA z6)T1vpqHT%6}{NB2a~C9!~g&w07*naRHxzz`un<&KxE0~ywE3#^~r_!({clJ2;V<#*dYy zXK&!(u{T+?ri=40UdNh?FC;y4igeq~*5RXUv0O;Bzn`0Lyo7y+l0>3Day2L6l_6rb zadsTq#*#iapZ(mOG}=LS?>U2~dz1yMmr-g~C}hht(>dm*k2C0PGBrESrVGx-;|WuB zMiJwo+ty?xKh7gh{)GiWKWn$F&n-goLMQ^B+3m5gU<&Ha< zt~&YeAODV*fAeep=ix_iv@E>i&RaPDipyy?TR4gZCX=%~^~|67)31JGXx#ts+0XL7 zzxyxTc;Q-t(Vzhs)K@N=y!qGBG+ytC=H_%iyx)IkI~@#r$f%+hEFc;M$xGJJZD?nuZ4R^zc5W@2-6hdUXXiZgX)oN_5itdQfoKlmnI zhk`v9g{Gf7uDutFD}*Z)WHL5QzFOh2ryt|wsa;g4&@9P>rEP>thel#lDlMLQavQI| zu@8$yVETMTR0(p~YGrnEf@EygI9K|EUOYB8PyN?}y!!YvCh&?)O;gBeUWZJZg&3)+ zYKbrZC8~+v6jhOq%nk^(hvcF%@FTI<#ADQ>1%4)>1Mq7g_~=&%F3NOO`G* ziLj+DLG8M!xVP$ca>$%kD^_W>>)1m+%Bd_Jkq)w@`9M3^Ge9|;p>D4ktq;2+NKa>kiP;&W zsiDMTdN^i)4ZF)lITttgCbN=YKyM~1Es5-xipXq80dPE)G~iB0G;ET9v55)OvTp)% zw+f{bL?a#ZtYfwBSgi#7YQt-g&lin@w9^y9?W&vVez{iT`Dgw}DLu!^1-+W0D1={ZmFgF)7$(dqUkJnE*mp9j@)FhEin54N>o@ZpJtx(C1-Y-g^ zL@yRQq1|Y3>hy_uJtM1Hc)XOd6|4>$7OTe7bkUoHRpvt0wp^>5)LJdW($aOPprORU zZnv5i6WwR4ZAEj>W{Og(P0j1l$=ymCB=hgNEV+W@2;@X3M>e}j0jxd^y8DG z=Ko~V8RW7pK%-?5xGE82naV6M=aAWwG<3_wA~UlwQ{h*vA#kxSjY8!DE{{oi#6sza zM$J4(CK5*8M6q>8G{o^^$FQ_4R4p|+yF2*azkHW9Yggm2IgH+`#%L~;Fgc4|`iB-3 z@XAJ_LeHvZpJ!W$4W*by$+w=L5<5waj1CVH35ID)S1XsNRITvUFMpV`F5ZmA>Zew7 znl;nm43Mwnv3Gc=HA^I14Sw>&pHe$|!W0+_r8HJ)5KDWo4YP7oc6)FJ15D3OneH-R8UC89c( zi3#iGxY4NCrizKw!H_j(NNSK)?}@q%S~z+Bxr2myC#lsM)XI5d$f30=HkZC>m=Z#5 z!Q^{7mSV`a6aKll^i}7<4<(kmFI`8iUd8YCn*Bxhse9A!x+ldrLi7bl=%Ztby`uRm z12m=4$}N@Tzs-7*6J|+5*`|YL9$-^jmY${8?W9&I6Y%?tew3I_at1W(tX?zES>TUa zuGA_hX&cQ8-G}m8eU#j5PgWi)5|vo2VvY%h=~^@%0!H)CX+}mdd||n6}X`1r01t=P`s_@t-V6mrOqj}Agp29QQdVK zU(KiPt}X-AD83K?sI{SwivAiOtu-;y1a1{e`L{5f`MId+t(mL#OP#0HY#Vl&=43b; zH6XDHRRWE)k0jF>7A#mWFK_b}px6-Tq~e>v@3+>Rfw}B6z(S>K&?a(Y+}z)!#LUnh%PL=AXI6Xw_*> zh`}WjKEKaz=9b=t^Ycw+WdfK>bVWPNzG~M5lvukavMLT{)AG2@1|>&9iHSJOhE+1` z6FC{`qO@3qXzPYlkrLQdu2#&X)Wp`s3R%>#)5(N!Y{2R;tO`Owk`)`Zij8*7frkjW zVhelN&C-o4vA#4*q28q05Z@(0yV9bP%h7gvnVw1F3a!JxpqH7sS^5J@X*+C0qG9sI z0zGygEmxJ!WgeUpO;cTx16keXAa8Th(bG#ipU2y_VYi1sxSrER*T6zt9tV8`i&?ed z0;pTrxO^Qq+;|Hv1xMK&FYMUIpP${y{=IuyxoR;74i1wlRH)iq)T{x@?IkQY>pTv= z@f;S5+nn33{=#~Nu5gdm6j`|>;v|!=P<;!@S0zl0G;7#L%o=9pMeEog>Yuw!rnjGy z$6h7xPqFp+ePok$vgsUM13frBE_#9s%;F3?oklR+?X)sIp1|pt8UzRf}D=mnQ1wwcXiNqT1ZXjv08&Ps~)OZ4^8IjwDtG|6UUEJ zTYVGPU4J*1UEU^MY0wi8-CHb`rH08>$YpUkWy!3{RKp|+svvfRqJ{xh$mLkl*TJb1 z+p*rWiR5&WiP;3zV6PGPZ`UfUT(+6puk-U#=@pWNs`+bcaJs&z8;D~P07(Fq=$_-0+@RwWZ?dzo`x@RrV*#k{J{=UnZN*`wH6LW@v;I>HD$z@v5^644F z;IccFmZ=@iZ)}n!hAsM~&(X%|vC?Rk@K~EHhzcC^({7e%q$-rK6AlLG>a^lk>yR8c zjBs>|xkP&2Q6t(xTXgA;Zo2(0K62Y4YPl@Vc9L4d&hph(W~QGuVwQu$r}>+&evPiq zg%qTnmvnLUy0h7QMU+ij&ZD!hgM7L{$giNQO<8Sg0>qlKB=%A&s&b^tR*k@0Rd-cc z^wDOkb*UGWHVzXI*Q>@tSk(ZVT4?G89Hx5Ez~;2Da9|-Zi^G^EC>Sdjn?x)wO4D(s zW@B_VTgJ}5JL<)2x8U#{oSbO#wZ1pyMem}R~as{vLevb6i7+bErmZi%h*rRn0KYy4| z)yV}LmUHtJH#4^9rxepecsn|{;m(_INMk8JiO(*V#}0n;+n;jy&AmMJ+%7Wp3awg` z3pztASmZ@*ge|*X(lw*u&4ha(u_(P!V_ z?4*^?{`LC^b=*tC+9uwtb8u{s|N7ofC@0dKC?;_FqXgW&+;!)Ly!QiPn(Z2`T!vR( zc$MwjhX{8sVE@76{OHF&<4d3YIM-ZzG44QwQZ-94ImLpqlYIxeIq>T1eE#YWv1Y(Q zzyj&QEK57ZU@KB~wW*e7X_QLjQYp$=i~#KLnWJp~!}C;|7Lvoq@%z=zmN)J0@!=%< zp5H}HY&oX~Yr|rgw=L?NoJcS=GGnyu;>9dG-`L5alSk?3>NPgz<$Q&y#4Lx895R|S z)8lgt^!4!N`~Q(>(8I#TavE+iGCam?I&1U>_U@^(XxVngPsW&<%hS=(#{<9ptya_G=QUEZv>G9NN2`L@dRkfu$rfsd+Z- z;XOtNPVRQaY=NG|12n27o_*$d60uprkq+vT3M*HPt8P4%pjwdL<-E)6eINZSJ<%v0 zwRKhNBxYKC<`bVHm8#%%1&OCi%p`JH+LO#>lGrWMz=3=zZD{4iVvTgxj&0gWZ}))F zrWE@~)x2b`jMr4ab*>!M0+fm+Q|%l)dD6T`TFr_%w}M&49Xj~Lqykbar_RW2R)rBS ziB!_K{0N*frWM#w9OLmgIC_z+OUu1 z{Hj*RW?PJaGLC4J*+i1I)lRWgHx+C7Q2QkoFDKig+!ifV#kR?&O+u4N=1uF4f_RDP zD-qIOtSC>dA?D92E;a-t&R0!qb7@`uTm3QWaj$fvW& zB19oQ>rF#EcWoo!;f+Bu^kKzrm-oSZacpcqpD zuG=OT<%|jR(;0z3EmFtg)KW>diESb#MXO~TZk5Eybim=3PK=lW^T~qPE4q$yCX2`6 zF#EH`2KiLVI6W0|1)~ol?VEDBYK)E4-l5}F%V4vJ5nDF~OLC(&ZooEqJBcygHkvI? zo7=EW{7$!FOSP1E>UrBO6e>BBVC(w^`e`fOwi@uD(V7Q2noU){=UHGzZ^WvO3n4n1 zKS~xG_`CrFV3gH1)2ta+Yk?$6hV@>Qeu*dsN=VewVU_-qL&;DcIfGZLZCq}lQnW>mzqeuotb6v(*5G@puvqG2Hj)RwMKy(w^|#n{+{0e?=NIBoQEO>2vo zY-$k`NT3*BS~E_UIffEPtt%xy`k4w#Dgw)KTCK&(VFaG2B`ser8zf4 zTTlz9ErLu~qFxAAOVn%?0~j=Hb}l~u98S#6GI-*Ik!>l}1=!mR=wf%cjVra*oYihM z07FHL`u1A|x!QazW9Euj3UbJ{+6)s&*QH%6hKm;s)2jV2e=vndq~7^358-HLrA zmPy^BJi}uWZGl|UF`SR@S_Vkc>QEs`m0Qi@YO`v7u5+8hfMLif&b7=l%9KQl;bGV~ z4XifjJeXy%m~&`e=p%NGzT-08O7kQRCH^Wj_&oFDAV5R+Bv3=TR|1EWFKc}C-M86U z2B3M%6;BDh0GUiCixPUVy7X_wV%|J!CG@Ltn$JX4{GZpBjF;Y=mYh7zc-_xAX_{@)m&9Ia-*F4%6+fbI6 zy~ktX0cmt;-syL(f8i9;pVWS#^BWMfrJ}(6ejqGE?E3l58T6U=lAe{?3R_Jh+oN&T_=$NaFkhgh?oH!sz$e38tD8Ma;HiM3uyJ~y z2USHLs@3cBYxu1>q4CkY)_L`3jiEp$jkVUix{P#vx*pw6G&F*lh*D)b3ovn z&L4g`G01H0tg*WyZI%p#&ShQJM$Qm{=W(t`Y2`+>rwlr;xgA; zQd_!jU86n*Fw-9SmQ;mZFGVfXo~|zQg3uS$`!D*fsIhu*8Zf;;^a9ia(nklCLx3KJ z{*MM$|CUzpE>t=kG}Vgk&IM$;i%2(0ee$!(IVP3#Nl;LNYz4U*&Q~l{;l$^r?R79$ zuTpc{s5@%H$EdX$hHB|l&%M2Y%WWap6(*l7VQE-Q)p;n9r8e%SV$0y~SwSQ)&EVuX z3kLd`OUEcQtGI1#_7ithderkB@gjgW|!dFiq31X+ol&*R6Qj>jaHSLufLR&uk2tbmg4YKo@rd%d)G~zf7Vh`xnXAZ zPZO}Ky3nL2Y+>zyo5E}pr@xzGMU>YP9ex*qfIMGY>^XRdmc_?=Z@rqHPA3Z-Z3d6+ zqB>V*xa6d2gkNh+PmR*q-HigaTD@&tAX+r%X_L(c*+hbs7mAVAVCMKNFK<7@Xt9OW z=EfTd(tXc0^z;qT6S32@TaB<_wO!JrGc69)x)X;lOjS1LwCL?#M5Om9dya2qaC9-H zoQ+_(pGW}Om-eyoy0ch$&MNlrtP`rc$mTOfOf!{?5$+DtYguNTGh8+oscar!z|F+S z2t9p^=;(q{HG`vVW6eM>HEGbvhBYMtK2?MrxPl(+mK@eb#`O6|yby3!XnI0S&1PxI z0ppEb96R_1Hp{$Q>42|;TP|3PvoFnm{q*Pb^!1xfHf(pX>C!dKPEBxRB!#uzgA(dM z?-~PCy2Xwwmd&Qw)z?8PpQGh)Q@1#btB8WPxnz=Xr~_$)snVeR;s22JCg7GON1fmQ z?)&!kS5>dJuHH8!q}J9#3qsN$A&d}WM#y6r_zV)O4W1dy%%HIujOAe%VZa|?VaaSQ zkObP$+O1Zj?pE(zRb5M0b#>LNdi#Cv?)&QR7kRSk37_wK@7{aP$;`;e$jFGuh{z$k z#KBJBXvi)IJ3=Y-T5Uzs?2v>NWjCx{R=3mCa%oBFTta)>S4)!SKDDbmx*Y(@*Yl1@JVl!~d8(cBAH zPV0lSZ`J!=f3Locn{IAa{d82hLRd?gpqjZ)(0u=|oEZ%kTb%2K}}s%S$?S@tR&Uf0JH)?5J+~ z)t}RU`mNtlB~?&*`BweZ2k%t=&{2W{l@Imx&|?p4=WO) zpt(2)Y}~8)owDtw|NDRcpY#*|{ZHwh+wgK?$FHLBpsg34JFjyW&xsRmcDC#K&X@i{ z>F8LoWLRgPSyial*PSbGuyAMc3g9&G*ta&72&eRCwTkBEmKYXYxq4OQ%AQ{Q@>$({ z;)M1>DgEj%{+^B=J+6McuShbb`T0d%e)+OmwWiKLe@?AlU!loBXU@K$U-+e8)2(;h zX-3pYShlvTZd_Bl-nWA?KKkpwtHnc0W@uQR;qa2G$bZ=FH&xkgD-=s9lP?(ElS`-Z z$YXl;iIYlY^D6IdNz=X-=a)6f#q{J8&*=Q=i{?#`&y!=RZ%T1AJk=J)oG8ga**$OT z*)!x+NhldZP>-t7>DcZi`(TqHe1BxQs;1qkwm0^)Q|oJMdrOP6bLw?4Zgf;$8|uP^ z3o6YPv|Vm%IKs0rqETzC!Jwvgw`odcWxb}E{Ji4nkR{C>vD+OBX>TwxPinj}I<1b{ zorW^SoX)>|PREZNR<+i!0}ztzoDKR)Ws=(3*dmLnDwT#-4js~qFP%3fB9qKmSYNGC z)xyl2rX&pMNniQ&13GwYLE%YS8+#3%IlHc%`ljlQj#7!C(#e?i_IAX15PQ2A*;dSZ zu9Poncboetxz6}i-rllPhRF@o?{zI?tRG=#8L=p->BJH*SaN9ue}v0+e`EqK3Vv94 z2Zt4&ptwg(*hTolyVQcPreQnz35AG+C++q~{f@bOXlrvv(RfrF+iOZEk{Sqw1Kx>&^f{7_I;KZWpZds&L z=(h1D3af#UB20d#ltR&n!q@~AHIIg9Kjy+}k|{+ZQ@fW=r}WR>@ix8X&EGG?)XaFQ z*f?ay7(DbjdA1wsYA4aro8R+p)lZdGP*kT*ov|J z48b^DaEdMI9QL+%b@1?Ewdy@#yd3m9=KTk*V`w_$9AhmcSt4E>y}l-)sfCX7$-Q15 z#UZQ6R7P*CnF#g30SqWEu@I-y5u!2?o&w!LNTW&D<}7I_rh};xQFg1R9A2fypk;X_ z`-7o{qjAy}(4Z7>5EQ%rX7rd&G{VCV1<1T9Vn*ML74*qmJ@8blt|% zcoH^`3G%HlTG?#T%5H3J8m%YdNy`~yJSH$;K)cKj3?$$Yy7r1Wu$u=%I&O0c4|C=) z29)7|)6GeDmM}VH%utM$78VS4P7d#NT4vb6Fdv>0&5%@oGBA7+^2RtZUbM&j#iItV z9_SNe+emDhA=`D#NX;QutC!dH+rRUNT3RaUz%pUs9dSB536o9v4}~q9wzxd2ix<`u zYGF|BE1HU0*gN&LphY~L2+!d(dUG{HbdB45hE};p3I;+Gc?bP!JQJWnI({ zV-by!KPYYE!aEo%xZuIG18p*17{2HSMv37N1w5`W21ATIOlsy+vtfPa9# zVN~D{2j~TyV=&FOW(bWuVgjM3vMT!$-;$Gj385q~`I07CFOu1Y^ zY@$#fZEz9V#Yu1I%W-lGO`QSK=(gKax6dI;5!>LHA!&G>IZOT`j1DfOlKL=a(Fg9s zqnPvHo;ES&@f%|W?{bmm1tSjzYuX+R`evl*_Tfb#%TEbDFpS`JMk*5!I5RV=YIVc?*ITG07*naRFNEW_8HhNm>0l7-!N2S#3Tfj`rsGzi@MA^$qdKnrV;I$cdw&W z@Xy-Kya+{zdK=mX4Y=SSJ7^x`AnQXW;78CBaMLbr5dz7ztKxyyKiL;4NOvAH?xBb!9GR-@LMYiWA9uosb z!cm(r_Ru7(NoS;FKCDS-ph#+}LQy(Yl2-FcHG3_MCqq@%tIA{x>am-I5o|D2zL2mZ zi=RDzK}TdpSX!{- zLx+m%*s-HZC0$azWIC&vd{%Sav8sDjnvUOeKP!sTt+CeD zR+Z1iR6h5DYORX?@u9y}vAC>ZGNaetxvbaD-lN&btfu3L!jYK8`9^Hvo7%w!(NI+3 zX-L!XMA>x0P9aG*Ix01%S_~zW8VuB2t4cF7O3W86u05AXYH9J1%Ke_!%Nsg;g4p4t zj^BDj+iOiNEvA&3n`)52q~DQSpd|qoR7stD>SV zZ*6KJdq9)^M5%m9QH(*O4NVg{OTJsmCpBo+m7ky0%8|o%x+uxwcdA#_URW@izWvs` zPOn!L&xMs36_hOGHI8N!R@_c48ysFxele-LUNNU{omtm7)={Oiq4jUC+DS=RosJzn zp<~DA)GJpMU6JyOaa|?XMs=wF@{xb5<2Nm7XLDVD^p{`M+}zE&@0E9Ic79fkeoxii zrVh>>wB3JPe_jZc+`Pi#jKk1CjDI5Jhol;jyp776p>l*K{;7w)#57HJ+K zA?aUz=tFwL>t16DK_ZvdAe_}le)Cr?hX1LnoBH~<&g%p3{V~nX4V5@_Q13nT<4S(+ z5xwRWuhXkv`#nmATY6J5F3sMeuRMB2zww*DrQEQqQemk1*hqi%7w=XvnbYRlWqtbZ zKC91u{vTDF9@Z!R{1bZ5kGw-4{?N~$wyPg_`v*AELVH^^UAVHPuYKW*mWPGxdH?ZuKdKLX_-B=zJ)le^riO;< z)h=kaz9o{5$Gbf(&oAoy`Adp6Vp6TGP=fHNs#b?>edTLU>iNgcS`tnM1fM~21K_S~ z!frI7%Ou~-=aiaF>+27FUE9@lTa4CDp40j5P1Wi>O$S45Z13qiPnSq7dXk^wPd@(tDm0C0b|$AwFJDkLzo}V1v z*(q+u8B5~-xxfBN$VTy zwtLKx$-Ctp3(GC#a+c)z>a`8wF3t&d)5$=k+>9xe!|p&^(0VqncB`z*t7R=6IAXaS zE7d*gD~Vof&6=X&q$zHM`XPi8`kl^XZN0!?flK%(9J7Kbcm0&}z0 z(nuuiji_FA_c=A~_y71)3MWFAs2Qb{lgtQzB3xoHWk=ZUyl-uiV3yofmz?0#j9C~r zd~e*I*v>8jO0yGFK3z~`8WFznD13Ok;88FlL33}Y={T)&7yO3ogdd!pFvgR(7OxrB zOhN=X{ub{Ez7ihATEihRj2U4ooM_6aL!1R4MY$L|p|sT-*~z&W&Pe)e#(q2P356(W zVZ|8Y@Jc85)(GK!L>?{E7c3kM4-uYYtijNQ(nkVUa(G}UU{e7DL{t$IQk|g=0h0C{ zPe7*P;u8Vf6gUKI@?Rjcm_j~Qk|1K*=H$Tvfp$*8B9BZYCgoB&RhuM}4r@T@XlSfx zCZa?rrTWd|Mqlt|>dW;keqJfz9V+CShS}6WqkH!Ydql<~JsyWHzNyf8b%~DY3f_ze5Q$0X*#Jf+WrunlQlFsaJ&YGOifnCU{&&E!9JmZE~|9 zL^K$g+0l$qtR29HjE;v5$_2tbIoE_&6FUJI%h=T?(eq$z1|rL~VtIk^EyJswgxY;u zpYr*F@n{qh@~M&(dpw?MFpa3!9hxDX-$T~1kkrQ5*zMbVvrw#P#FRb8hq(zYgJ(j| z&@nJtpzzQgPE$8STbmH$u_@f>3tW@H<1Rc2Igd=niQK5MsH&A+3;V)AM~Dv|N*Kc! z4l~FbZ8^^b+Crh_4+YAMTyh>>DARZZ4Ad7nNilj2qhph88Ovs^sf~3EK`C8&d0nk` z*HS=`|Fqq0D|RNLR(qsDkC3{g+8BbuM6Zy~2St_f4VlppUWDNT&kRP;!8K5lO}idS zAmPg{jLPE-Iw!d`{DxB_@myeDfGcp0K86w=H;)&WkI0Y*wS*(W!w{N4iLcb@M?%9k z2A#N4nSy%VriJVdiAEU@m594Tirn}RAwY&R45= zK}9CyN;!#x{?60BthIG4h~5d-?+o<}e0V=InqI z1k=vbjCBKEkH-t;Y0KKQa8H>*27^Av9g@$(UomcwZw*gM;J{EpIe3p5F#=-^3L z6g&&zhsFb4$|7K3j2#|^W~_i`fGZ5{T+kSDIBjBJwKW<~8;q`@ka-_Ns~EhAN{SXjZ5>{(&m(YUA#-ChvK0zNXA?0mEa&OSIMHG11EbIi@)OGs_2tObMms@nGH;OMFb0!v$Y&LV zZ|2e&lb%fMy8%S(Gq$i&m>-Q$P(b!%O3C-M@xZ6+z2l_LjRk# z9)WA<94|;H+I0pe1vA9-&{8DjGjUL)IlCF+QJA+cp}mdMyhxMgIM528gt=? z&Vc3c3yq=o(I>`^9B5qdO6r5Rm^WQ6Yy2IW;y!;-79iZN7v@RA*t3)StfS+pvMG|g zVa<*?<(6`$(P+mEQe z+tf5RR$?NpwOZ=7r0h&iciwYcuYJpX+DlgSr7v#i^5#{wwi`D2dd(eeUA&@u=d-%y z&ISG5=XcamNw?ndS`E8#JCeHH+E%w8(zQ#Mb!_&ij?OPAKFp}Ry{?&TTKV`?g@d#D z^tG3j$wf72PZSx3^y)iq*U$XiJJpI@)I&#y`ioDVGV3OZSP!fmBKNM=t6e49bv5g4 zO^YdI!wJQ!=M@(lc(`T;f7k~06l*-L3m#Ans zY-zS|L|50Z*>SV4JdxLb_o4S{607PDKlUko@iXg6DkO4Z;d1`?xi!6UX;I&M|2?|$ z;KN!x5>Y6&tMZ_rNG`2RDy;hMhCcPDpV0f>e6N;oUDjLPbxe`a&HA2KENeO*>V@9yI1Q<=X1L2_C@vTSG2HF(lteO>s#Nf_1!&Pdj7OJ)v6_YXXk*$f`u`boT%C? ztH{nst*%fsuGu3uX(f}=!mz1OL3;ChUZoS;eeLCPn)JH5es6@zpG3vt!N>s!pcNfUR=|uldJmC_uj61mXE4;=TM8OqD~yWMXgpvOSyYg7Q z>E|Lt{q`S!QV;&+Gm7@(N=FKc=d$|Ozy5D^=fML?a&qI0^gsR2x9I0T{3}{sT-K+) z@}O?J=T`mrkN&X!>#N_P0Sol7p^FzU>$m^cKh|g%Rx*>)aC4-XLP|vt`cmo-GrHxr zd-dpZUr;vhydYp=ENUd}vpi{*ESR`@tdL5P1m_ES)0@6ex7>1EvFTWuI35ut ztwc^}XY-m`FRZDkiEdt4*4*I*ahhmsNSfTIRGOPnjeHPO-0bo0>guK=H;EIK#@Vzs zR_jXVGHN#J8V`4L?aC!R{^Uz$82ppyj`W(VO?FUm{Ej8vRBsE_3+<*S>3fQ z)p0#Xxv_ANi7{XV69hySI4t`tmORHpZP;y!FpFgVpdNqdjP6@m(D7H@t*gKPNgY@? zqTl?@|6NPV%i7x6)S=lqeeu!LCMaN>;Z!IVBaO#);#$2>(|`QmKB@x;SFFy6Z3r|q zQ%dWl3oi*p4*C2~SO1G8PbBP>Q-(XO3ZCNH+pB0{eo>oSJC+|{CZAKaQnrH;1_O?Z zk7#9OMg8H#@}Zr4@JXG1;yFzsBQwf9{P+9D{5GEW1x8H7$WV|F&jwu?BYH@x+>o1)%-c3FZl0mb0n7eU#$GPI$ zBGk75p7i)CWNq%A#4m%eR0Al{HNDK`Ey4SBg|QNLo}}4y&V&jI)lCmod`jQ5qq4F z6%MIUBayR9e2akB3psBDPT#SedOSiVV}*#xLC#5qh0&@#7+MGs;m-L?-V|2CFUZAF ztq^{j5P5%45+a3yF0NnI{KA52)uwqsk$ihFAVg~3k_Jn0OVDf!^<-qbJB&?JHl`4>r7fRH<~W3Q)5CkZn{!3Zgl zPMaas1m`G1KD&@3J6VXZ3UbGAaUUZFyP$Zd(O2d*IPlk)P5mjhF(+VRA+Ve*(}6oF z2zvvbQqV)c7bpz~ZYHB?ic*5|G)5UE3;<;Xen@l&IY@zn5Uzn@mPduK#i7`ZSQS=wq-*ldS32#tuvpdEMk z3}eR*HL%({L7(9%T+k?nAoz;mAjsJ>!jODv>;UTsoADpg*9L#h04xiwg^#?DL z$#85&XYNC*)!LptGkKYOIhH1XW#vX$jzI?u$b-#*>BMj5s zJS$Ls*tw=%gn#A^g9Yt!j|MQnqI4O|fdYu-9{4$-n9v@)D^Om&GCj0)V_=7sU^F$l zBzqoSA*4Y-xf(bx4`d0#V5cLz;qXjwd3*f$(k{3oe^qbbyq7pU1}_cxEb9VzoMOyI z(Th5x4!oB6V?4%;&I331#?I3V_z4F@7627ypfDvGrT0ci7x!(f!lYHmnh}ICG=-Vd zxtOD9m7}TP;HE%f7--a08&|A-5`OmvLyK-PAemVhe-d#^md$*n4};;rcr)t_NcRo$SNhKr!|GqHpvET$1+- ze8W4K{gtXuVlGW%Aq$P`b<5`1(3!Ms48j=)wW1-_2L)`B4GvB}~YYYZF z46}?6>q6Z&PY4f8+59jMD7=!)AQMrcL@s1J=bh2dj}J8BjbF|X>T+mNj!;|V7TR)L z%Z18Ohlj`YJ!ENNa4G=57}(rFR6E9_hJELul;;o;PGDs7pxwJ}ctie0-oU5?jZ!y# zbYl@V_{hDO2)VFC__+&lbut7p8M09-o3r&AS^<9QVC>`Byzw8rMuC^UV<6@`f6%0@ zo#BWoH8xru{h9|g>)r&~ju{Oa|3SYDa(VGdfB9>-T1q6zZPqg5rlU_6I*i~2%;1`I zJIohJBTUSHK0{_4*)x&M`V z!@YOvO>ewOok2^t9Ls2Seo>Eq=NaX5OPYqRnip5E+EuAk(3@X(x2}z^sM~$L{;!8F zDw9mB-)Sk@Z0fTg|D-ZM_Cvbm_)-1ruYN$2$v`LOW;BSV_3bB4E1zFbv(nU`{Newp z==5h)ddret^ZNVs`nQBtZ*VkhNIR8PoxONk$w^ANRM8mR6xZ3}5v50A-FonX(&3Y8 zPGTk~zVz}%{q!&WieCBpHz=8q=K3wQBO$%-r+!`^P(v4{P5tt}`vWCXvwG&ts%}5J zq$9_V>OcS9uPYVLt6y$wqrRb&7hlv;=AbE+BwvijLh7^skGkrWADnn zp4@(5-hvr3YQus4;;UcM!=L+t zI?cXn-JUjU#4{h%@%!#lHj&m~vZQ8vTi^WV!}{xw|DERYhh!m?@wA0=L^+n1-LBqL z(XrHSwCvQJ((IgWzvnIuLlHGcA$8cjAS`z;uVg%@^~y;*RqD#sRlRD|QFUiqFE(nL z5>q_tD;b?ryIs-am!8z#g@KxTEge31NE|tR`|Wq=)TtM=xxS_7c&PR5ZJj*zv@+2- zOA;L#Ur~1cp#JL94=NVQ+roYTctD50?eZz@Zf&cvRoCJ9Wwom<#ZwuD3NiJ=gsqkp zZZyq12MhXMt*t^nr`__FO>&o0z#TFHvt*%R$DHsGcHa&kKcY|mKOeURWwwx4XgX4N zG}89gwnl@#&b)j{i9%Dwi8N zedekq?!V>OQPmpmSm*V%Yi6`!afgqTN;5it_9fN#KBZcvV$7`CsH-qHYdf&KM{-XN zTu3AkB;9ToMlSjRQ)J;~(S>=A2!BbYP0+9H?CG-){Jj=_`u)1)t*_O4fBawQ;jcZc z3+K*h{mK=gVO)9PoQ0pj#|ZN@VI~$+d3VQlw29|OX?yC4$4y9v;gVyaULhn3SNoK% zt*vRV?2JX3Y)UJRM?L4EhH8+>^4;G z4%AOhl#fNUyIEEv?sAEs5LCxi6H-_(NTQ1ye7Rf}$5^xIuWwvcDwEdQ+BNg4Wii8$ z0Df3-;N`fsV`wJ756OuU(plhhxvb$3C6+LC@QQGO0S@mYawQ?8u`7P;=uus|cuD{2 zCx2Qihn=SthMDJ{eO~$ej48D&K+ZUpG9{|Ax2yU21u@rX4`U<=GQE(33p|E9ghl>J z#TiTZ3h%Imu1_dP%#IUhS03eaX=&NQm=GRFyo*A#hk!|5LzEYDu?J?Cv=pJ0wF|mO z&_Sq(unQe1C|(H%CKhZ2XXp+k9XjO#k0_Yt=wV8_!&9|hGcN-qM)1y#EsJ&(Wd

    3kNRl~26nO3tK7&$%0)Y{deulZn4q~ro1{s7?=!bss zo$=&daEU;K5RI1wJP}VGAQwz8?2_~{mcW2w!)aIS zGSeo1)^Fh32Rm@^zVE;P4ZfgZo}o-|foJYR{}_d-kKZU{eA0jT8Z-r6JDPIiimbsq z&_FWja1U);Qe7hrACYh)I)V03pn$<>IcVR*3r;*ffuBEMFg_8`(*FDO!3;uy;!IL_ zF8_}I?#9)AnXJrj1b)0PBDn2gfY~?pmUHU5SA(M;>g1vi9wzI5a2gr?0d}5I7YZS? z!gqKT{YF`V5Axl^NS`s9Fux7=!Th8gv^*SP2*gWiVDf`&XJ8>ZD0S?kxiK9onN3=< zcc$VN{wAXc>aI^`Y z7-PPp3 z173iQ{&=29eZa;&F8TxR=m$9A;*&q_Q!f{Fu_*%{9S&U-3gw+4)76J8g(nh*UyOUk zrvfixk0b6;4{d@g@CB4G?hUHmNP|GKOnTiN&itFb;wP+M%v+-_=F`sFxLm z@uMwdU*JSH@E()QUqWSh7v{h-<6S|2={IGmgMNZ{E_**XY=ZHoUw+Q>F3*wW>~Mo* zkRrhH1G-#qj2H0JUm^;~^#`pQuZ-h})iqB`E#wOeB1&xq0`Tu z(ybx`I&kp& z^`7^Wa?R4%O=rxB7{rC!m;{_Dr|L+^i|-uAkCb&DdFBWq`~rpHcQ&^I1@M3HG; z)9{WGQI715s5+1yJNuFbYU|OnRaHA9#b7$@vbEc~{NgD+k_sudlvH;*Rz5z|pjOqB zXU^%lv#T0SBbszbwp!Kc=g(@`ZR^nC14<6!s#Ui1jmJ)EyWCQWP4LiECr_VO17$m# zl&T%IMm@{Dv$eizI~jyC;W+`}6GO}n1o8hUw-bcr$wZl4R=c}9`rVKHA3A^bj9OzU zn@<^YH6jf~)aaD;#M4h}d45^{@b{n56AymFthyvDM#%0oYuf8~EYWU#3jrXhuRr{Z z9zOY!60wZNt&wu6jO_~d2W`Fl@)aGNyV=}Sv&Edc-JwYQG;D2a5?fKfHPFBNH~)j4 ze)a`@_NxzSaki+3zy1$;-@>nI&<>0;RcuT&=kcI0eY-#X-4%{ zOJDfx=Pg-&x9dDP`rWGKyGbVVmcxMXkYqlmxBuYx>1TfF!^#iBsyw%*_}PScTPmDz z491wpRK)CCLPyK@(lrKIZ}c=fJ7XRIPd@d8Rt~OcIt`mQ4!QW)Y2gT3PU)J>&1ik~ znktE16IfPvHpEFXtJkh-f#Y#^cFkiU3^T>ELlIqmiIAy`R#ypKBiU?Qy>8oF*0;9S zEa70IRo3k6oHjStY_>HY6} zllmQYC8z36BN|1!nqQo^Ik!@p)7e^I7uPEK%l+3%=}fj$~ht=X_e1=nnL z5#hJ&T(EPN&cJW+swFJd33Mzj%%xhjYHsv+pcINFbNT1=Ab1hE9WWp^abpjXS2|BQ zj?6B)9qEx1@YsE0aU{0{i(5RA(z8#W)cnG{u3TQz?A(GGH8C}kuybd-Y{n1-wtS&r z!URGDYX)A1?5wj!AmrnHhj2hXBNkusS0SL{{?A%O9SF+^t_U(DW5!sQ%e&*#$=`$$ z;038vlAS*CxutB;#*l|=KZY6>RMs=wDZ>z8yW<1HC&CVS?C7Tnm7}56!&=CDCfuPI z;B6GR=Cfe4h$6_do0bR^N{m_z2xEY-Ge5UrUX^}*#p8g)=@_k0it*YQ^*GF47LtPu zQNzW1W>%BIz(TZugMOOTl901N@Ie{DD+wir3taIoCs&cz3HU4oz?2#w#TksSHVh94 zASga4T~Xul=J^ys=$Hz_Ewsd1&Y18CI<~eq4Idb|NJ7h4;!Hwb5Dag4b|5n#gjg91 zcXDzCMi+z?;Dnc&tPvP9z_Gs=d)9U*z&atw2}Ag~fL?cxu_nBaXN22;W9q~(K;JRs z!+#tNIf0AzdB^GwlnY?-FYZ%@dbtqdXa{A+U%+T|92iV| zd;U3}{vMzF`L@6#-+_fs|C}=Zx8W=>u=xG}kCowMs6g>BPXVV_2RrO2#tv@gD5o9c zJxZt_o;%D>FO&}Qkzm4Bna$z4@^2H@No~W!*Ts`<^a%?&cD>VcY^Qs=(0TXaOUhQ*Nlky%!icn3on`;_o}f9?t~w z^#LPu*SF6nznQ%7Q7*=czVeJY>1l<&aq*jW87FU8qFycs&kc_b`hqdh*4`k=FLh(E zpbY&nPXoMPIjjLM-~bN)oOXcU!lVfM4QLg>J+8qm@Ioj2SwDl{gc0IZOCG)fN@ZX? zVx3}BD#O7TL1JpkIfWmZLiz6)tE5fFl3Zl0L4NF5)41NnMWZVev z<^tc;#rsxopy)Htfy0jn&m4Wb%>LpzziG?A>z={SFut?|gTZZ-00V77N1U7uEkRfGh5Nt+jPP=D{rUT@3GmY z+*3aW05(<#vjt4XoRCw-3r|M+gi(+(+~YUsqDuwB|Py@JgY zHUPmNjy)Lp$Ihdb=k$ZRoWacTMBt@7{o#8e;S6H@Ch z!$fa=`w!~Su~{8GdPqH7)jA_R`prjm_QH!wWHNRl5~tZ6x%r4*^Qu>9G;AsypK91@ zYipCl?Uyu-#nou_G#%on)6+foeUA>_^9t>D>l*ED>e^GMw7Jt1b`4Ge8WO&dOzVe# zIUO&QBr05e@=eVY&1>e)JMYq&Q_t(@%5h8Ti1tUA z5+TFYPE&D`Bu67^51Yy+ljhcIi_vtbEOF%QHpOF_o1Iak)v%MRhGQ1Sgq?V{yR&7< zEftEYR4i(DZ_B(~N;9)&$>#XZm77lJXMgP{6)$DfE7!I6(u;cN8&BwkvlrFwIt7{> zF9^vf(%>702V;P_5^}+Oo^q;cG-fX1`CQJF=`0Djai!%L4){NhHm|>Pq;JLBu01u*Hw%~;(n%Zs{yFf0?8V|G0@}`!TmX$yWZ?`lU zV}L2D-fTOi2u~N@C)CZnnh1SyITWayd=fp5@$UC*vB8LeV1|*7g~2=@SUfoWt5UOF zwPX?{aiY8KzFGg~Km1F*>HgPg+?$#^dUp_0BFpZYJ4Glo9qKB1L3a1_=fD3+ee28L zR|t?833b&Z)SZl!6k)B8K6Q-3xNTfE$dHc-z9@xd-elBq*fWLdh1bL9b&A zE#a)@4s8dAl+#}L8_`IS%# zfQg(B&>vn$)CoN3z|_a0kKvl}1>Xp7z|Z9bbMM~ngg7r`vQ~NC!nyMj=BF-44|UQOef0H%V-|dHf}n~A z9zq&(%IXe;KQm$l0ucQp1PEAohd*Z&a{>YIF~$gk?it=KHw+xW%YFI_{UKDE;)3#T zMgf#2T6BgI-a$sDUOW-OgImw1HuvZg7dS9n1p+){58W~6D9azuS(|8&`OQ2-z(gpg zO>l$YhcL(Z8eD;bOIbj0b=@%5@D6?Q{o<2*;21dlCw=Df@B8njSiq%?hqy6??U(|& z&*)->1Et=>#XaEJ|C{d~KfVnQldr?y_jmy|%I&YqeRoDA?*--G_vL-NzO1jG_qeDR zIzeFb_<`QQ2^a72oAS^i7vC96-r>{3=F9kUd~%O^eL3pmx7`m6EXL!4dU;O$9zWFW zVdc|*_xJfteZcQw^6l}=^K;tgKIQo24;ZX`pbS7?rfY{By#ojDQ!jlt!QK>h6iarp zoe_mP;LX%Y8Q+et+d3Zz)!^FE=?$9TJ<9n%+Os2)jCvE$Swop)c2k!*mCqnK}#DJc9fZdFDoX!;(;J8mYJ~8IA!NonWv)!{ymhoRW*%X*3O0bK zANWwnpet{bqD^~d;WrK+w8aH(=pRyze~jmS@ zIK$Uj$NhME7z5^Ra5I8V`E~|jHn&J~K)uK@9%jl?4}Ad^F8XacDT%k^grfOPjT_#$ zzHRWtcgE6Wj9{aOw!t;{#3P(}$9jb_?Tw=zzw`+lA?M&-15DtTdwx8Tg`rE}<{r#~{L-;-X&uC}ZQwQ7b`I6!(EUnRIdzbVWIy4~G~nkk{Qh?fVE^c)jGZ zMN0!@V{UZg!ho$&8$TyMQ4TzKnFSnp&p7G=-}Hrkz?<;+;yxGm@eIN+!Fcb-hqDzp zBLZc42cs6eoDD{FPGF;b@Z?rv7Zz+Adx0EfsYZqlhxDB?;0418pBOZ(&w;Fip&PjZ zTi1Cb|Iw6wwew=wO@zCf+kXvrlGWjbN;Z^h5Um ze&2q?Hi;cA`g_3bVTV@eCvZ4E;N~JU%5NLlfG>JHg7x;*peji4eyYO=c8NV;~u8 zCRbG2PG8woyID0QWH=cp5@z8HDOSWve!v}5Ki4af)ua%8E=V)>jF z36X2o)N9wxfHLU1W5ACcJ*HN(r%-gN42kNNm(BC3YGEKDwK_c$Fi6Hq7$hM`$#h1E zd_h@~pSJs|x5x)HR;Slcu~byM*;6W+5gVf9PO8-#8h1J>&6l)W-B!OX+s!z%azGKn zMv^flqbZBQ=VY6Hhg=9d$2g@>C|!?%@k%V*}dg2 zMydA}r<7CBX-Uej)^VKM*NL`sNe;ps>mTRtP^`ZUkaO~!R#`GCrsFDu1qVw)SbGmIgEU72(ytp-O+r`_pC&;<;rTCG^# zmhNC|vCbr*g`S*Ji=gHfemgdJ!fx?M2M-+3we>5?m-3ddcoGe3h*2XNGdFkm#5C~S zBYdpcY}=0KWayG6BiOMEY>Vc2Bn)f7hUXC%!V|}gLmz`aLIz=3?qnAh0mjucE*4PU zhmpc(_)T7bZVUdDQN7btk6ocuPNDHgy}e5=iiy%@-_R28q{kUx(k3 zsJGs%*}O4jIXI>qLzicy?AF0-p$Qg#7WxuN7DrB?=M)t}?T+4bNN;${D|KysQ!}}e zorW}4!cNU2oUhp%DvU?ZWT^Gk%i7u8WXo9XTEh&o>@d+LhAV_~*MF&0uZ^`e+fC#2d4vM!8XOb4gy6zL2QT+{M~T7s zi6x1{4Cr$qUo>Haq?+*rySOgDgoPmnNm=0d4^$&#nl8o!tdN#|V(#ETQFW*EQJ#8O1MS^#$il98fjW6cf2{sM81(lk>xE=r5A;V} zC>$nSBZRZFADrj~EWl{(1x67Jln7sVK@jxFo~tREbcqm|pp320fkNinHUSgmH^2q; z(k}P;&Yx+Z^vfsp4Z;tdA;Kvx)W`gwtjFJeSouy}9+&<*zrhi7&gIMaI{1X9{6!lc zXFTJ5;|Hclx;DU%#}V)Ni#GjO`LZ4!-tlA4I9j`5r|9@P{5|T~|J}FcK3#Ygc}RGN zKM&)6TB1Gb@fYv#cZ0re^qD$%moer!f3)TKAazidzA^WB#&2Ja@BZ>QaIkn7@Djv0 zF|{yY>Y**>=0Ck?)A!favCmT@Xoq)bXFm-A3+1@D@A*2vfseI-V&pm$m4$b>}d~)&J&j;YzU%&tEalOB+Gs-);o%U@` z7*BQzBlWU|fG=yy(@)45Gg$Xc$>NkdJOWN8BdgW+T%BMfOCutwC~5; zk1u0H|KP>sH1hQ`7Ir`2zpUfn#UDO_p$okEI{D=CuzMT;D+aAMM#mqnxOSms2`(eT-yvLaNIe~#}Zg$S--((qbLk4^UBQD=DXi?7d7RJOI^=ZrVdFppG==dpc zBIiT%yoXT*y_`)I$^bw0QXhY`Hwf~(@r<^qkN)$VWc%E6eL^13n^B41#uI`$NB@x3 zsN3U$a?}BSsIxb4Mjz_tH~I|EnVY;zSw1Z%u7#Pp2n{wX>QxSCE0}k$8Q;ckt%Jt6 zSko|!P%jsBV6thDP@g%(csL#rx*iIQyuwB{dINA{7)7SW+aKIyGZ=3jJgAGq$qkcXe?lHzVUf_(Z&ZCRI5Wi%uj0rHK7l9jK z={6zZzwnTr(KzG81_t%=F7SXG z`UbD24D*XWcqjLPm%~OlP20-<-RkrPd^RHCla}w4x#bMLw2z^a`2)PX z<7nH_FggQXnTEfFbEbiAxjd}2$5;Uq-^ocAdClv;?;}*sMWr0mi=x1;Hj0#=WHide zqB15H6%jJAx9cpCC|87Zz@RXA84`kB6_Ubo>O(vdH-lKGGt_9%)8_iB#)M{&02(0= zg|tUv-LZvg%`GmOL5PK}+a74#A1RyT=;^A<2@;xGP8t|5r$E4%yX~4rou=9-e{xCf zyhRn!f`o-BER*fFdgNsaVzy2ByNU-^T;z}fBY2*0Y;3t)wdBJQP9DJHgIqvSPJyW# zzHn0|q_0}8TG&=1#PPc$3k{;8WZET{O+_M>q#GmN057!3SUXitMzLXc&v}t|lS! z5{yLnR;$splNdsZ+A+ngjyo!u1+0#DS+8eabr`9VxQVCYYIWP14#o;c<0AJMURs2! zaO8QvN4^FUJ0gr=MMn^r+6g|;7sJb`oOpf}^CWA=sNxbq&yys+(=)FF1c!7yrg=OC z#{)ZE1>@^{alv+Z@Fs|b!iIbB9*dGohF!prXfeyhsX}y^(}Kt^ zvAeaYX04~y^)(JlGDActmQaUd>^m)$GC3Ou5(Hv+Vn=Lur);}^>68nHVG*y?8+O`9 zWv`6?x$P!!QWvh6AwoDgE*tBI?JAE%0z!`HW?@dH5elMqA|msKQ?xj8J~|EA5#Qjk zRB)#uL8pX;?(J6WL>DG8IZ1Nal(yG5)u`?{MuK37k&N6zoODUTmAAAOJ~3K~x!%_XV$| zp3%A&<`^gH#W)PFGhx_-e+1&OogzY#S=xi&kL)B#3i5RL>SKJnRtKp>qTQ=A{V% z%-KLO=UwOl!!zEYEKUf_cxr+Nj8-JkOr@QhJoqzDEu@A(V8=WGAHdKBt~dqF5?=-h zwt0_59sz~50|ArYz``?xYWnQzaIWXP$Jo;^-bFa%H}q^YjuNoXYrrcB{+TQ5=!f-< z-+a<1KrnCo&ICVP%9s-{eTxp*+ zm`n5xMW1{05ZGylv7{_`VlMD!^Cl2nDaW`WkXRcezvpy9OG@no;p?!&lx?@%)x&-B zs4&6thW97^w||%U0S@@hfZk@Wqcoa#&`eQ*GFC4UN42Z_;=7n|FcP zo&{l-wBy^N4c}Kv`u_OmzJ5ME{2sTwW32^sa32_N%wuO{;Xd9e00KPlVden!@&5IB z9(X}9f4rvv?|2w|Tdq%z*0|^K10DOh;@>d?TRz z9#_1}O2l*M+?O%L+h`D)>kNJF-5bVp>Z5MTP#?GffBWxKuP?{DJoon~11!)C-wB_w zP2zw?k)yn46JFK418<`p-zIfaA9T%{z(pH8M+rjd^f0nES>N{=&f#c0r|;BxhvR2!g8q8e}v#%Q^8AApWj&%k2K?Ja&|A9v$ zVKDZ=eoaOS#)$Jo7Z;J$0Z52{`zyG?jUN6r%vn1Po+>N5G+=ERN7H15+Ea7vr#1Ke{u0tTfU`1XBr#x<8#g7!Rp z0uOch_K?A7lll;iIenPt)I+^~+=xhEE`S{BLjEMe!;ls53Hoh(ATT!Zo4TMU?vp;r zhf&jSBFlKrMLUcsyv*Azct*$~G!=^_T%J>tkGz+i!vpZpM~7=?@TPwleoVFqXr20@ zE#Bjk`h8jCbJ}q*gKzS7xeaMNt$fM=@C0rs2Yv8K{}>ngK)rnTMknfEEQsEqJ@7yq zyl3+_=sS9i8L6(z$~V?O_#61AJZ0b?T(l1#=b}DOAIPh$OX!`*rqs7~-5#W;h;DY)bo?OT^@6rx< z1ZUQlh_hQoj^1?ZM*x~X7b7iOyr>YuFa;dO&&gb5@n@0bSk8LgfWe5vJvx`hEiX6` z2*kl~5boK5C6O|xl%>)ndSj7^XlZHDlzo!&BHVZS4fEK+lLKRCG!}LqA>)vSLrx9B zql3`9i7lqRZr?ltU{Y9s+Z`8v1MDb=?3!(Fmn}hdu8=q7mD5gewL{4Qd7Q4oV02m} z2aK9gq}FQMDIs_z+0oD_JrPbGs41Dkm6n_=T{}GtV-9%2a!*dGL@Mr%#b)t}kT@D) zYNBG%Dd*(3X>~i6AEMDDybEKEOCrnQ+Bk5^<)E)tw`;~mlu$xMISmOT6!7CR$V92_ zRm@eJ94p|QapGc^2f=_u-3 zXa|>5Xr2gB@_#_{nDSWku~;~THDP(47$*b)a`j*ofY}#{oESmIHx`MWdC7444)nda zv;STOSmIOX#bQP`;KO?)=3Gu8 ze8!J{GpB)zovoP}cUlYh;bd1BI=lsy0e4r+33NTj!3{;01qq`N^BR5xTF{@0l@kH0q1_&IwC+zwU1Dn31j5ZX54l9+}ZC5d1l9(ddF*(je@G5Xw|CZM4q( z1BV!?Q1r+V zm+h`vf^@gTWs5%T1PO-0y)90r#F2#82~LbXyN~wV!dsj|01sw-5mNaCR{F$yzy)t% zJZKxfjv(aqM;3Q3+B3Rkkqu7aGyL$-SY2Sy3A{=SzCif^N7nv6BL*-TFJ@8%hAjA* z!vg{x{Lbx~A;gk@0+)T@r9Okngmo8=L^*cH0G#L4%^$z%r+p9l;f-Ou?_j{Yja}!y ztyj<}bd2BzoDL?0yTAYxv`bl@@jikBYcBlCJaqukz6S=XKndFq2XMmAfY0V1ij%o3 z$~J?b8)(M&hp_=!;DGmi`vxCvA$ac-UMR;i-s6woejNO7p6~zj1Ao2leM%(n(KeUW z>8v$w{H-l}bRAzdM*9qHzK`4o7W*`^0gu3EB}@Uc&RnNE*9Y3(-~Ns72)`)Tj!u2u z)CQc^&OXDBwG!ZkI_TH_F#t~R&iv*%^TP8;Gnf)dZTO@;D9sHaOK~>0qYH%I{xGh zaSj&X1%JT9clyRB^x*sK+vg_tQ0{4svE><;E8~ta(5ua{TJ2%!( z__xOa&){j4gXdER_khnfP2l?z$1hp8XwUO$D{Jx{#-$q`BL?@r`Al8k)hCRecyRQ( zCI|RUEw|a`);I9ZnA4sw@5ht*=I{AWVBw;i&6gmY+K)eYr#_O8qc53*K;SV+8RjzY zQXd!Za}Q;e`rNwi<_YzHC)QT@KVs(4QUs7KVr*-n$uQuzo z$HT@Tgn`fMX;8DN8caAV<0CXX96SMAiU3*axy$JB^UY< z`U$!%?@<=`o#DsLVGkpCqr89a$D8rzk3LbCpJ$9ST?Ss(V&FqY_IRKkpZk!xf-w*n z(Z_&=_o$Qcv`7bZ=xEIHSaF~BAsKi+b@S(GiMshs9h}ezp9Drv)4s3Zhw{jD)D2H{ za5}k=`N!rr4LKtV4hz9X1vv?WkYnE-Gz7ljqvT2jPUbRvlD?Aez!qpT;39JdsSi4Y z0TPwtfq)CBfd*}0DaRJ>ZSkux$ka_ zaYUf+^c&caccDYSdB8K1(Zk=(n_xOVJra5~L{1%C&?;j9{-6WX+k>?inV#W6x3O{J zlq8@wUBb~OIbIoiH@;4`G}ze~HksDR6pR6MMLoQW?(4>{>pVjvAw_P#`xPH?gzXqR zjnPq8x!WD50zb$MBuAlRSb|9C0Kzj!mq}Ll-f@Q3I*k%Y9!|jK~3FSMMWCsEFyP;VlaVsQ=vDF)dcQ8PB zSD>J_aD9Y9SZ*&D^Gbp_6mf*3;nbZ*My?nPSa=<9TrCC|JWdGLK@o$&Q!fiY14hUY zIATKKq6b4mX=I?yvy2>E#Mnk-+S@Ig*H^^6pPV5KqYsl7?+}QakSp8>A$;nkZ6*aq z8I-^zmeC+y96E;>Ft}im=Y6~%%;*v*9uTx+LNGcew-e}?1eLvNAQP80s>^NVa*eQnK>uDCP9?nyr(;G2 zTaYvs{5J!4PtV*KOBjJ?3c$j`<%L9qCk!VTahS7|gIPn<&=FycByPm(sk~b@x<)kS zT^JwqKz%T0TxY?H=O-*K@E34lOv?muH)aNxDMilsg0X^nXd8OLyAfQV`~W|H+=srY z(*%cLaiwkOjCL7o;}HQ}FbDkN4!xu^&N~KP2Jq0B+hKFNq}0!Qz+tciMk5wW`al~V zw>*cA!J+4)p&hO*E#@X<%=1%5m=nTtGkeP*$D zg7E(LoB)7A#5msY9OJiBrJT0|^-zwsX@fata0G%Gd=yySc)J}m`T;Do4-JEFe^D3r z!I4{g7$bN37Vmht_kZ`}W9x2KW7ScBaM+_`{QilHRzxeHO;qSY8D0ic7k5iucHut~Jeg3GA=d|Tv^f={x zU-r9b5PO6P&Ir#QCm4ZPC*7Lw>i|~f6XEJy{N|ajoBH|l@E{*?d06bmH$GiJ+?AI~hS6@G$%r7o~k9PgV z9Q5$R7kqi{0Rym6&cjVPp7G~!2hCHrqkEpiW1t)4X4-Pfzx(a$=RFV4{_nm$%DJ+R z?vSgw_P0$hpl{zt50meov5A5~xztBvPY> zKPn|v)GCBON~@x(p-Ean8m5{dfB|F7dp7sIJDhvw-%iLMt+=Xdg7YSmW5g134kzvL*XN9z7U zo#2ya=g+N^wpaGy>UnP1Z67Nrq8<~xctD2@*t-pZNA74f=Fr5*I{oAP@CF-ReYbkm z(>x?Mu;B&g^go@6I=2OWPmOe)5n106B2l*R0af`<{wOtVozP6XV9xLY1ka8Gye3m*~F$nbJ$M(jm zS3H#0AO7e=z_aR(uZ-7tj|X@rPwGyth^rN8o*U<*S?~)Dx%eZ`=i1CN;E<<$_*!yg zuS;Llfp=iAlx52%xq}OQ^7H2~eq%*-fN4C-zxKs-XWn^MGH}dO`9Xxmnx$1d2ChvLg z`*Z7JcLH7@gc4{F2ClBlaT+sSRxn@=rP1QX>JW+q$tJ?GIKi9M&CPh@jW_eqcn2JE zzAtl0;ko0k;_BMhw|wr?61pd`zF8;uYgD$wIN!<2BxmGk2#Cr?B+_f;%Bs(W8k|-` z6s6av9y~e7fLujFYefH@G?KZGPgH9F=2I&dYKs`-gt?V!`rsP&J z9i1Gf00>zFLNnocpUy#lO(n)bo6~77wG>4I zPXL5q3E#Owf?zrU&)^PkNh3h3XW6L7*CTQ{VK#hUwx|KB2C1L^N!Ai6#cXub^iR z;tvmV&@SjxhD3nkIG%atndBY0(G_LXDe$24#S3*Y$lwTiSvi!m72_~K`QdER(CWE>ln8k#sr-LQr8+&Qi9sDFll2K6Bdkqo}Xos_Hn{<&OU_j_f%6QIcSJrbKXC9DwS)X3U zD|!9mGyPzo$j~9@f=I42uwAP6)DY&tcOgRH7y@7jI0%rrMi0KiQ~h8!eP}K_RGk(a zHn+F39nvjE4{gd8zsfPeGqj^ar$Fu;(p6uIJ)h;*myDqtJnxq=*Vg2Rk6)d%PKoZP zEOmgb!=pZR(h+>8N9r~3&%g%$FVxpsI^cya=e~hgdgP1{TUG08S_Gav@yT(vMX;Cw z9|8Lersv8$TZ}LAi+FGV7tCDAG}=GgNS5e8d)}q{>q=Mgv%q{P4j8 z3EuM3QMQY{_MQ$FtQsu3hD+1Lu7D{o`oROopL@FMojmlSbgS}_~77UUw3}b`_Hq+#dYBaPr6Vt zBFla^U#`pcGyHEF@wd}_Tl2pADdpHZdXlS3mui(NXV(2Z{Q2vg97y(|kItjD_^NEt zQx2&*T29R)?>&QK(~fWGl)s;8ub#;(HBEi*8JLwi$mXv4!gMmn7E8`|;SKS!8I5zP zPz^M}?)sar32|=Lx$Eq_)z*q8W%1Xurq{3M^Y9wCfqeeZm9DFPOBdM;b-_3JlN8jT zHT!~W-!*XVwyZpxhG+9S2#@|_+x>YDu0#&a=gyaP&e=@#D5IZZPqcaMyaS~Tqw|5= zcqoTAekElk&+ttjL|<$0PCv-FJ{sX2*xom6^`=Az{``M%j*gFVFxoWWpE{L8kKeXq z-brwrr`2|;}{+X5=;&Az?;fx$DlB%f^~9b+>` zS~M@Rt98oMomiyu))iOW?s7etg9YGLC)`tze*q zEWxR9`|S}i%{%<=q<(n|r~2hj_Sv|~Wc#v6XJaGf;hs+}FsH2Z)6mm$qj&g{Tgks9 z2q+I+!D@W`%HK92CjdvE0Z%-jQ`&>R7GKDTZn#E+#8#O!cYY#!@pPx(7~`qC+mvfE zgNs#|{FPey=}fTtO0YJn9&%HcBUtb_ea_*N8$SzzN_M${11B^oOJ?d(tbF8!n0)BN zU;Rl)cO&b}2Jfv15LHkT^%ljmdPpKHLJ)Q5WC_Haol=a5&CQCO-%J?B^Ozl<<*EkT zg?s{3+4a@sT-_jgY4z9s-d3EP9hPJ7)57D6EwzO0IuE{o_}D5Wo%8tY@bYrbTre)@ zK1ZKh7jK>_4n>5sv%=IV$VKr4H?DnEa2$%5LAzA;>L>+Ox>4jRDTa5&fpk^?Rm73< zm^EQAIN>=6wT&+grl@Z%Q51~APk$PVV4f)d*0wLtnIX4IU^Vft0Fwq+ffzV2$^=MB zvN3LMW>Ab^@fLjV1#T!w8#;1xEgzu^&e@`dR-NO?*m~u>0=xm6Vf8BzM&UIqMgtxK zToec$f&|@Qx(+;0KcgT|H(smI@G$Wh2CVdFIt)?&mh+^3JS@Xe#uhyF>Jh7?>|E*NiR?zDnkJTfQBOKw?2D9ysclbqb*&z8mQywqjR~=3TER^$} z4#U+!|GgrFY`j+vEoKS%Qb|_^%Zp#ifdQXR^5D5=V89(N{>*sO6+tRC2A$|Tf*=Kp-g`Z%9*LeCxr)S;?_-GdbqMoT=eL7Kjn@;p4 zZ9|`*@@zQeaBG>MQQgn`sK~G_WD1@-T1M_&E0=g>z=~WsIn@?hC%gv(4uU}(yLs5~ z1Pe{gCv|b8mG$RdV99UtB?ER9F!a9h_f9?FsKdQ?%?r=SfO01OgWq6u>N0EsSe@jT z8b|LuW4rQqz<{GVy>EQd*31ne!Qlw8qg7vhF-)1}sj11fy`D+)zsjjgn%9fQx!WS# z=JCq{!_Q!AID7M{>qwrAl{9M4cE_$@!`#;>)tAnG>ca>|jg`+}!LxY=kNM=idi6pU~2L<-b%ad(kkIYd(19-e2N3>{9cr>j9_h>il%1ugOhb$*(_ncn_98b#+1~ zcnx3O@)nMTkN#diBx%3iw;bo|^1R_RjIIY+E^tr)03ZNKL_t(PI?dDnrTJPHbSiN5 zzIo6*DtapL45s&JK#Ow9uw{)4m`%5`&GUZVc)9mpIr;s$_S~-owtK&QZzWKd^StZz z9?nf~DPqZ`f?d@f)T102U}wsHz9t|t=rX5w4HLbt8z1%hW3#|&8z!H7$@?zn`YB&V z5M7(m&h<@Q=)z^Z(8*tut5`IY)w9=LS5#9Sw-_=OkWCiyUYCKFKICX;C6GKXL5 zZ>II-WzUUE3_{_69%B^~-TE|mqs_b41;6SySZ-U72fcF#4CSQ8kL*%@!>9Eg-V)ek ziB5I-Q%)Xb&-izeXH7f$-Jg$LGsZZcrJfAmJo~iqp(B1q>Z&h;I#TBJH2I)R z>x%lMo^aJ~sgJxQc;f?KUm0|}Z~n-O7Wq@|sVlzTS^asvtK$;%%Vf8-T)r}YN_jy9 z<0s|O-mnsZVLQ}^UyXxzd_6u`pVO7R!{wCc+-koLu-RspAOE_{Kt%48G6v9BUS4Gz z6FimR)#EjFvQye%`WPw2dPWmD^vAUTT&N#;Hf>#(*Dqm zYOBgL&y`hA2Jwc!?D!bR7tsfB{eiWz!jEOgE1-&>@<`sdA7E0KE_#O+6XNO+oHNGu z4oos`S<4G2Fticn1P<8|@8D@GXit=+ya(^;9-83LZJ>46FZrsUU1)mfe~r5<7|aJR z8P(WczQ&*b4o~9@II2&QzwhN$H#{ZJ!Fc%SK`unH;{^=Q@c^#cyE2J;+HrkP^?7y^ z;e%L)K41IozF%E*SPVlQcm>Afo$q;HuIQ4%pCp5UCL%NfOt*EgmB4#Q0Y)(qV1$cvQ$A08ooCrNIMGbY zvaLppNN#DfM7bKD?UQhMa#+CyorZxy52`T_p>Tye2grcLwN8NnH)u@8=Hbm1sB$im z_Y_Nh4VO_wn?~q-E?-7KKiUo6;h|BM;L8YRAi$CMW2;mylia9?B_*?U$>G>KBuYv- z2v@{X8C$hlIXw5?>L889VbF{vTC#x+!`3oHH)T-Ha$R@}Lb)ds9gzQO1q#`ga-su2 z;KLBS`NkVhadUrkB#>5zy}^aSMT;_4>mtM=6z}XGF9(yX64p&MEYCZ*g-3V>Z_8w}QHoFx=c9uoaAOD> zr!@Lw)&lR;;jgy`;kOwi@SUTkZ5Y^VKRGMl;|6PMdB{DOcqXXHkdP1h8C?2G)zGU$ z&%ltCNoW#S80RGjY#VNUgdNh?=D{b#Xq<4#=~yYK0PKKqm-p4*|iGvV9Hb5f9YiUGbx6r(fzx zJsttFrUQ)T1>DHx&il6_#-&$ zmma0<%GtEi4?4x3(B~RZ)b<82oA%acFa)Ht)69Tdt&ma{?rfjIlze#6Nk`W_@mwD5 zC}oOwbd)oCdYX2nWzc~vde!BuVpAV`P5V#bC-KuRr%$ehl=JzeC6RJsAGzmZW^%&pF3<+q#zZ4+O!N7w)ak z@~OwWwh0Cu=ro9u-&Ym79|Nl3OtOxlrisU>Cd(vEqwj-b*WEnPF8i7K)hEGMooRz| zLcrNCoX2w3@F&Y9Z*K?v$~Uck{gq6sZueT0`Wwc4e&avy4GiVU@!){d@Zblxyq6Q7 z#lrwK2{zr3njX*P>w59kwLj0jC(DLePT1`V zwyvY$lee-`KT~!-U%%_RyZ-s#t`9z*yZ1L=);-+h>F1rtZ`bLaYckfyD+5R6@T2p> zr*ZaN8GoLUY1h;AWumZ#+hKY2|YRl6w}>*v{SzD4UiSUE{FH>uI}%hPzk)3rbF z{nBrL`X5O-{UCnx0r<-~Ng&8&+u-hQkvxz4W^>a)f~H{VAeX6(VH z_83JS{-lQC+SsG%<%<-JR+^O0MqX$#vEoRT)ino0TkW$P&h5n?ypU?}S}TLV?03pj zFu0(f?9l+9MD=}RP(L^M)pBUQ;;FjPo_O#> z9N0f>n6ru0C6PGX>5cL!?>s}g&O_$M@x$>3EWhBYvw7>9&t;5iEPyvs^F_S^Q4$&O zZ`A1z9#8-163)-9m{VW#oKAzq_rYZUCGI{pHWnrDQ~5CR;X(7E>uwsrwD7>0Nb1iZ z6Mb}^m9Oos*D)t(Q%AP}^5PTX7k?2i`DS#Gyt-a6(W>m$_I9q^0;72cAJ-X79QeD( ze|#hv_vi-`Pta0&N8gI)WDPD}x6bK{`PFb`f9O}*hM~J~0@L&6pYmX-Us($v1c01@ zYoU(1&(11bQUZjiP%@a+9|@yYAWSJbhE`v++|O zIl!5m{DKL0{c6*YK7aDHeB729SQer*-DD%ct)H+1Nj`i^ed5>gZ-)I*u7hUEw@ly! zkJc~0?!n513PZQy4HkJauddMxmUiV{nbfOs1PVTR?#uVRD963kly80OTayRf9@VLB zi{sEY_xM(AtoY6S7q-K=LS)kyJzo4QZh6C6s z7ej_;lXHN^&D8ZkTis~I++5DPRA16?kMHQxs0DXh zcfj?GZX57JqI6;mhQ}9Z3=FQXYoED>1_%1N?BK|a^~CeUp@q)S;`B_bGv#DSa05fR z)ZhHVNOe*gI6d);$NqeDKquMn$lNu2>ATf~WF~3frDrv3h5y+mp03a-ofTa0TzRa1f^$i=&QgeC%R@aCV3tec*@glvTHgUKkwnCPIV;D$BI&p z6h2vnhfcI)n;j0c4+MbiEIe{DgPQWn08)K*2n`arbOa1_s*7P2um{6?vXBQp%DMLZ z^wbL1GP0Hs^TpU70~0|2H0k^Vvdo}KwcPwTzfj1*o#q~RL8UtTh%u*&6I&j~R)OX@ zS^6tn@V-`T!i%nIb7;UDdT#Onp4vGbtMa9X>{9Uno&vdRPaRwNz)(-iA!RiJPk03< zbo%v9Uhw)I7@m_4{3NT{78V_ff1c;{u_ts~-U`AMzVsa|u)+1dbpSr_1)GkMjie6w z=^-5aDUQVBMhAQK zQD`Ewo`sfIS>^oURpDFbEHsW}k$I{J30(zBdfM$kPc@s|AhTS-E8-Mak zO}DF&M!}Q`9;s7;lhksZ*NN;XhP~-L@=0KHN}h}x*WUS+x8F4%Wpgc$zlP^|+F0TjYGrlvhz4J9^Uzrx9e5sE&p$E2e<3--nCzFrT(4222(!{z9c`n$=h|( zQO|lsY?Z&|DLJYO&B}Lbdcbk5uKD-#*V>@3!_w)e!Paq3Tj>c~a2w=o*p25r-Rdtr zMR&`*_-OElUa$lbuE*EGC)aVkGiFrTlpko`V9lsUHpW7s8pP^W|@@Y7c5tH*i3 z-htb7G#!mo)8e^je(?xC^LfDO`oNO-`3|Btfa-Vf0Hg93Kfr-|Kg)|jPrpNxI-T#T z59o;rxTBGe$k(J74M!RHtF!WyygY-W=at7n<9&8o^;Ov?+c_gxH9pKx_PFe`K39+= z`JEF;HQs;^n0yFzy7t@GXh*AGbl_zNEt{wE>W{%1t)dWL^*p@GR-zAE~?n@sS# z7A&~u%O`!q_O|@>i|R_6O>B>R?f-b6lVHQQ!spfzdHEvl;nj8;uGu#7+^4OlzLfgm ze(n6V%UT5lXa4r}_&^(4!NDK&x@Jo*uPWG#j~VE(qAY#)8XKpb%WaJ0Sb;Y>>mzFT zi7yho*h2v_{)u<+;zOwq?yax<0{KgJ)po$H#SzuM!K|G@RW9ip{ux;QBs_Bc;NgSt zQ6{P7=pA~EvC+D{@6x}KlA`R_>q_Tl>^JKJYeFR`_>aO z(-&pmG1@5n@xz4j{{DV0G9e>>a5Bz@r#f4%e%S>&=$-O@$wj^FcH;uaH{W=eJQlDs z&e__uZPlv9rTCLSxu0!LyHgih)a9PuWxK^9i20VwpajjXIFO6Sv*u<+Fajo+|5Evo_*oPPa*_DO{8l;5k9l;d(3Fp*+Mrt zTTppxHGzSy83tXHC>`b-gi|_^yY2POnB3T3TKkLN`qB&W*Z#(j#t(nuJL7x4^`r59 z-}~|S#;^NueB!&lDZcyTAB-=5`@Q)2fBr9HWos{9dFfs8BR~A@@dMxgE%8r&=I3H- zb3YwqgKR+>4a}G7Hu96J75&pm5exzPZ2_alEM4yL9LCWsh)>dDZaNkVb>Ozf41Y=% zIe@PYmcY>Nxq*;@q=1gx6d2>ZSDpYe2$5T~&hl_MibL3a$Q(oX_|c=-+uKiGgD;N; zW^mNXm=W{2W!97^x7g(@NI9C6z+cne4j<+B%t4!EU9jKNiJh# zb_jv;!KWKQHMpuXdA(RG#B{3oxw=w;g8U+;sA|sIoo8p*vz6V5(R1(Kz0|vI9BFkp zHdoha!~|0%&Y%GoUgIT$&0)|nHvJk$8X>b?BJDXytFyU0mpEV?JqD;7AUZTMw9@OX zO$Q8CP|Pnwr?VnsTj=n!8fH0*a7zAP*S5Kp@qqv`)p3~R;IySvC0KiUyVPAon<2?r zo8#k(RFmm&0CVPM48RKirF1Cpj&64p8~@;d2D*>m`pp-}?}Twx%xStWIO2;AY0dwY+Q&C+>1=XYBm+L_PyZw6@cVM(s&?^y{Sk zssmpBB)@P5$F=wJ2{vlG96rBzDo;6KSu}N*t!#LS|FBE!t8&WFLvobhowGSZHgvai zcv_Ccn5|UKY^T*|^bbGU?x;_DZhF+~kKE{|l&i{y-qREMpqx~CRWQ|4ysjV*UdUTo zQ1XT!yen_%yL)id=Xu(b4)zQOSzDFVn=7?blr<>yj9sDX92R^4C+QdtPV*0bDccdK zYuPs)$&WAULuxkK`^NKWBO86IcX{Y?_q*;n#casn5nQCiDdk!#RN>=U!dBqFLl|z?`K_q!|HtQT{ms6yB_lE_h?b~e7$g1cf)kwaMjyo3Wvh2Y3lb4zw6h& z!127E6<@&e%-=j7>eJ3Uf0qSc@*W)$UoP_{jKZ~oQMYt~ErF^2uJcRbdfrJLQsr?~ zwzBeghrg-#Px&mb_N_mbz>wdsKkwO@zE7xgb>h1`tq;mtNzi=c@72JgzH*lBXZQ~C zB%Q>T%Gvky}C_?^TX74i%+#P@6o1gjwf2r(LZb)o|B!t^LmON&(YAZTlU`Z ztH98XT{r#mcYmZ_c*3`2RRJD&$|L#h$$;e1;3+s#@?ppudz-HfqjB!q=ofp6llmm*M9puaZ9opXGnRuV}f213!PWJRJM>yiTxsP+a^g9;u%% z;#uRWe9N(A>zRJA13qXHw5T#2oUOi8UGUO(fosCgHJR)G$tNccQdep)%{Hoo-Nma` zS#UhhiQwh>VxD&5{~VL{Hve3un;%njQn}Dm1ab|ON%KXIP1Lms!q2qjJaOn@6;6@j^ zUa*~qm40oWCtE(3v9&xs)=*ZP$}!RK8I%5;3>-m@Q73;L57F;P5nJZKF(Gc;+_)rv za@AaYqzpXuSgoUt*Z5u#xsD%^U&2F|_?eTLd2|Om+4i_>Gg#zr9DjOhN0yJ&If}?m zu$njp4_rPTcotL$pejqo^h`2d;=`FxH5PpI=uzCcb2s(Qq82brI(u(h+rh!(tXm+( zSk{gsvf!WM1sR;pY6TdZf?oCW1GOi7O1<)>$J|v_c=FM}qf@;qr!+2y&h#pCPc!N!UyyttM z$>g}01p5gd9af)Rb!dURcAvOrcUG&l?%unb;~A*nmEX39N$>E})dg<#5q$2NkVm8Z zj=91=_(>&)(Z3A)3s3LqL#47ez68p)oX*a3MXP)kJdp#OrODTQ!#8~r@|Xh%!dI48 zGZ>VCspZvNb)XT|EWA#CF~4B3x4#?rGlI98jm%f;w0Nr$G^X9XoeWSg@`q23Qlaj? z^@Z4ab|XIU@ejq$-m}4fzqnqBL#qZi_G9h(BK8(<;-CJDUyhT-)!5m4CO-JySL5Y( zy*=LjuIJ(x|KDGU(=#2l!A5+)z=RQvxU=&f`Jm@>1fv0G4DDV zBWOla6oPVQ*<5B=M!GF=!We>w1G(d220^Z`b6IFL2wyiFk?IVVloG&;;jnx(qsyF! z99P-`YH4UK_txksASFph-0HHiN{g)0P%n$p%5O_2qh)ZVq3PJGajDPjBtv1#6r%v& z+1Yu1^$#wo_+!hG&J<73nTod%dG^|qgD0`OQ(N=s2_vPfKaB$3!5tu zj$XnS{dm?(cj4z*Jue<=fEo-O&?_k`z~veK$m3Ui3L2(%PFc=$6FOSM)MW;Nc6NX&Vf+&Y7R?t8l(72qs>cZ6Oc& za$ABA8=!B@jHsUu!3)leJ0~#pAkDc!V=dFBQ((5d(WbmQz-Dj2!Xr3(FE2W?b9g#1 z@(~Jqmu?3e^u(vEjeP}#wWH>n^5AG+QqfT;zr`n*PAw94H zx6TyHEsx_24=~iriE)i4b!t!BTO0YMM>1?&;2;m3qOaPm_DMgyL$8!BP#U-n43$nc z4_ZF*gT==AEuNOHlDB7oIZqILd~AnQUgdS9ie zfmnP(zkWiC#go=4by(?)$KbOiaFSnAPtjFhTy4k0Gku}3+hSGv>hM)Aa1-n5muqNeahOXaPBCs^{~wL1K@Q%crS z2mSEhK)UJ|hyyE^a+P&S=bZCcI+na1j8G=iQ@c_46#N>f(jWLWjeSjF;RFVLdrp>} zteUPFe^07>zRT4-?B5vR4qXLbnup<8;oFkC^@)!NCsmPb+Em$=$ za8~23Y)U89F;73(m8bA1e&Ivua?`C0I_iDV*Ja_-&;8CP_$k{?zq%?9dPX3VA8qB@ z2#R1z!XCIP(|=$$zZ(|bxK;*i{Ucn}?OAmqk*l8NZMzRIfnci#dLX8}zqD<1d<0v% zj(I$;uEu23Xz$Z$*)MfhvgM5I@wf!maQv#LX@HAA&!yId{*_P4^22IrK@(n z*}d{)38%&j{q?SbIr9PPh6hIBq0U?13XIH?eN)v3w+eieK2`vrWP+x&@fWjjObS0k z`EIMX{a*z^+Agq}CgyAPX$6#~&gnEjH;Fy^F>oZdkN+h9P1GbS{el~uQ=Y??c&0CE z-NYl$=qR5-ABZA0S+ItWAm}BZGM=k%#R7zJvSRl6LIKUjRQS*-{RY0@IOjHHG7d>66F7k1 zJkhUfYdI-6R{7y)>e1LqvN6t{=8MSxwEaoblzY0?LCeG zzk&+21Bd+az_WYLJd^mK3$N4nT^$E?=WdOXb)Ks>CT7WlFKL0oc}|=T=6D#kVa z155w6yXzRB!&qKgOWrLlPjVc{r|Pi~eC!^gWB7oN>c>m8T3|!pj!zC_b-fPSzjNr6VS8#LTL5N-f1T} zc5=3rugcryHMUTq+2k>M10EP{Q?(D}(WD-2W^ZpNeNncA9mN;p1pJjR?Urq-%XL0G zT={|}Z=+M3ZXD9;}GMHd|EeftcNLA>6k zO>vC%*=2I8I7)5l1b_0D7vJ$oh6_=Y)E2As{}wAKV`;UF6*#GV*v^NcRgiG_Jcco5 zDuopK7{;fA3&zT!bJrKKY#_C88E^lpSK{PqIezNz{*Up0|3AMPzxM0DA1iCSac}Q# z{PAlC@r%FuyKx;GasT0)vA*@TxV!&+yyvB@_?6%Iow&YQjgzwr-d-A9hheAkjzPCZ zPpE|3%85|~17}O#QUGJ?K)R~{03ZNKL_t&rNU%Tyl2W1afHn<&DH(=7D;-2PF^BLO zNrLM-z-|FkOl7>IggPR|pYy;lP-yS*6%2nGE}_F$9h5*&L8I|Z9>1-y21mz7PjZ!* zMyBzJj4LY-#gfY5uZ|vV24$-yay@YT)ev!lCO@MxE}nvk*WTjv~GahN!>sf?JpMt8Tc-3omWMz*!v< z9Pq}<7=f;9&hp%GsExCrug;orw~~gV(L9Eqz&R$M zyJ-Zo8bq1518?h48YzH-Sp~FXKXtQRdzdTF2DB!qpZL2EF9@a4K%@r zgZyOF?aVcPlRtP8o}0;3F^4a;DF+>8pWxDX`UQg=)s4@ctU#k1@E3^C{?w%m`Z{T2 z%EJ#1Vixqvl62=%>}>Botxq2Oc8F&MUGSz>y*XG^0I*@Pee(Bx@@sD88a&`Ed8d8J zi#P4ek_{UzuXpJ2OrDmfYvs{L7Ial!f695Ed>pXV$05&v68uI0*uV+S^did)c=)Sc zxT+`hc<7;P&sx43=eE zI7s~t55SUA76ykI7%H8h7xkW8OI}sa7YAGtz*sTieZz0Ke!(HPa$Y?^Z3V&bTN$`Z ze#s9#%E7bW$=7Kf|IU*#U2tGNoQtl`&p5L8WRL^gIXQJb_}Mzt<(j9BgZJ{orSO51 z`bq|^w{ViWoOT62Wt5lj%k?}w?>(QV&-;JVGqC0J&Y!Y$GWqaD_l0xUTX^3F+ZtET z`&}YvNI%+8bcV;KI)EZ_puc(~|x6usi$-?VtZH zzc!!agt-qMHNVuWEZDBWO`AH}1w5syC(T8|;)_W5A`crRPwNWY=xk01DlsN{l#yS) zg$4d|U4v84ZuL;!e%A28Q%~0=PsyQdN%K%YHqRq{JDupfU0x8SdF~xP(Qg48ejfhA z!EeeUCv57_c;#Bp^lj)ur)Q(-r%gvAe8AU7@~gmv1G+m%VeFzm5ajYK>&r833P<`} ze7)6Kb%GXSuUuoad(wbv7^IgeQ3F+Pld@1p)Xp;Mvi>ngL+rka8*Bf3Mj&>b-yN$imw(fkQBK{%(Su? zugqvDDGPO&m=i1k*SNA)BXwXIkJ!0tJIx>ZAaLM5do%r1l#iDFxHGv%`)J+^_>n)^ z(1G-0E}bjQ9+%6LzY-K*1tF}_Olm%XvT$2n#Wt(WAVy!wH! z_$1-4Z*1g}KN0yv(l(*hm8Sz|N|%Oh%81oqLS?zXSrFjrGWK@&vJ7F~*fx`fWGRi! z<=HHwwjz#8*NgGSYxm<<|Jkp`!`J>KR;O#RGg*$0yyxw)b@yKUt-t?|J!URF_F`sf^8b-s(GryD% zE%IV6I-CQg6Tv+9k`79ztvqH5SjexlPeV9_PvIo_y73SSJ}Q@DHoLJn$rU()gX#eT zj*_}1Wz+!Bg|052E< zosnyF8kk#^MOn?j8AM7eRymE}7RS-DPY3^*tznFt2dRkm)Q-U%{K59zAAHr_MiOjg zn;+ick7xdr#fQEJ!`D0V3yj&3>(uK&QSaal7FmPizRUV0d%Ts`d#M|yYwwiDOM_*} zH9aRA_{byCD{_|KbF{gx8Js#_fx`zry43Ag2bIpzh=eOgKf&m{@(CIxzsBC<#c3Vf zn8s!9v$e{=LmBxS7adM^AdJc|?B3Oq=v&^R18tq?n1NjeXGd@>JFk&JJ$Oeh_{b=( zt!*Tq8OOuJC;43GoPm^K@aO^=^lCZa=&5HCI$BnEtcz6_o~nngp7~_3^9C5XbSkS{ z1`c~=>iEzExk<`{%Q@^0$UXek3I80l=jUo`D*&gq<&3wSGwlYiT5rzBC%*-`z{%O$ zp+g4U;CKFN-{pXN#(^`_#UVgj>e#ReV4=JDf(FK)3^R>@6FmIM>#ubi-s%9ypClg~ z)CF!jn{3W-K1=tm(kUojfLTr#eVb2UH}Aj^9I~nmpS!NMyIrp6DO}j6(wk}<>=zXf z9BaIl)AxjfOttGV=%hmuy3|eI;Ub|C?QCG#)fyzRdz>^YBjKT}`zllAJfp815Xm*3 z<5`zcw`*p@b2EcxT+yw32YTSc@sU@)ggt`M-r=<}-nWjav!A6b#wvn@G1`SZS_*gq zAt&NMkjRzd{>E$04&hzgDY0_Z%y`d-8@YVT@^g;QC?^oHj z73zRD-Im}lzxL5}ume)_%JYT;chAw|xdbM=sl9{K{K=Q&AAPZRy#hf=aQd%d`Sq;p zQLk${^JN;+3OL^Y% zmbcV6Bm3mSQGNcJH{j>W<>a~}AZBT$O;+ezjSKV%#p?=?@UQ4i%cStV4Wcw(ZhvXO zZE&yJM+G|6@2_pNK1>2rdHken%D68)N^ah{hX-EbclsnF_(BHBKL^L>?u=QUz+;teeKj$08*;9R$HK=#h1tdYwyBaM`qYCi zfhP-`xNf9Aa?lb|eo$$-vSMTD2+(|^g& z#c5n#(CONJfPS{*Xe@@n6ZZnW%KLLJ?qsqYr?ay-K0S=7Eq9maFV%uVldosHpl5t@V_f~7_Hp>6J`7e?uxx4j zQ1E0=l78@RDq!~T@uO_h`g%b$!AZMloM*d%78ZG1SFxB!E3oOgktOvU9|Sw#eR6!7Hss`-j?~IHaRd77sE^H! z`uG*ve7Mf|;M@+Q)#Z46a2C58`*AtDjGgVxxb)xRP0Y@W$;x&)A5T5X(;vL{my_=i zxxEoxVhY;6g%nv=exciLnVJMeqw;v;*BBWO=`L+~V9IY>s`~N+AOed5mW$OtOkR55`#|r*Zb^ zI3B50@#?$Y8y|kpi?O(J9sl#s{(KxCJIm=NW>;6Sy|EgbyQ}e$ulbr- zJh_VB|MX|$^*0}9CoO=(-?BB5P?M=vk=Xu~+uX|WX+^;-%#;X^&`?n`AGHcZy~^Lc zb2kM<_>_w>6B41J6O+BO^2$2{0uDd8>X8T_Bi&;g9^+CSTn&um?VyzW%G*2K0UGep zq`q^5`?2g<;{jU-$C-c&Sx^`XjUsqT6x{k)7d8v$JD`mnMPIT))@_L;2rr}BQb!VCiJyw9U!SJpVI?&#ZMmJC};I971 zMC5Qa3#C9gZB< zhV7k%ChgI-<<>W_TLuQfI$MUDZZl@!!~d3_we+<3T*eLWv;EI~oeE6tK*HnZee=&V z@?@+e__)s{&$Bw$Drd^*=isrjS+7A)I^m_umtz@!J3Q#*(BprW9nLAfm`3x33 z&LwR6lzs)g8wZ20wp8RIxW)c9Uf`EK zDjVY(yG1R1NV4I>2aLwgbI$~N)P+9q^tq{1!;W!I!J>N^yc})CGZPbZ zPgz>Z_T+W;Yo!(Re+GoQG*fhz3Y5_)zyIz0^szNQY8D5F1Y(+FTnx>z1ofeUv5>_ZrIA9%LQc6 zE?~hi%a1ygolTyMHrqJS8`qL+37xLt>e~B%6TRMbl3$*t({uPk+R(sz?FsGjxc7&* z;FF=`8r(0fyYre&rzuK7>uz2!x<-NqR_ zfAIBJvzkIx=0iOL1FZpDSU#O!d$Wgg!dfHgm-2;9B2KB-N ze7_A(UiJ8$*MsJh=km+Lp6M6qgl7`oocyN*Sqx*9*Kpz;# z)3UlxD7~rRUh-wg+wdEF6pt-+Be6cINnovE#&wlU#9E=TaHm>C4j3NPmDmte`^Ejy83uS6d(h?UL;D zp@K|;A$X+!m25Th#XmfPvvO&Ro!>jYqE0q=WMu_f_-w`t@Zn#u^XgSk%4+c@2h!jR z=z+_BY#RWlc|BA{0LzMHwuWDNb)oO{p_HWzdcjM*{Gptvy}EijhJY72Nb1rq(IB{{ z9?2NWS+n{hfhmj!v&+oRPGVzwBZD{&{NBHFC)PGLG9Y(zbs77++i_{)?ffi*L(YrR zP0;~$8e1B(8F%ZCme|mUIC%0Tj!uqix6t_FBpN1*#*~FCy2w!3_4Up4Ve;sfsPnu8 zS0r}jnP;BKd~~fQz)DZiPX>GtdIVnbOFw>d9mgjnW8(s=#@Y_+Z|%_p3w>DFbR^y0A7+dFxoXNDt zJ_6cyO-!aa$t{?+vc49_IfmJY?d_d7IQipPySo%8ljT@g+K!7OJ5bJ3_sGpOqx)HKv)qxDfoyi!*ly?gxXH_}y!uH8$sZk`qyPXk zNJWq@6hip$*df7_SXt#9a5n9o_VpzP8<%sGj^P;mfgu8mS(qx_y?ZbI=nwxe7JMDz z!nT8jxc|l*v9`69M*8F5{vC1eg}wO9=YB8#Z8r!>D5gVKF;g5ba zCPyc6aeN%V_S>J192?m0nGSy`E21^X4qBjt;_4_FS&FA|VKk=05A)!PS!O778oN6? z$>cJ$0(Ujw>v9+>Sb>?~*ej3msYFkn3?ou2d{Q9Jco|9qC(4Sq%Bq)DpvZ!C0&U^oTwN(!*JHJwAb~uP zQ!jeu_sk5Vd)IX~#n^^0oEUic;}Grc?Ilj?;ka5UXB#!+t-O42DmzsJ9CUeJ^`|N% zj(7nM+>~)muRWJHx1S9i#sm0D^hEx?2V3&1E(txZ@e(}v;0w5T;~CsttJi&%t#+fl zvUIa?7Zh{upOswXF9}3>-yJwu%Bqij)M=)pl@4+R_tqHv|tj4~5PE&28<_I+{ z^6TgH31+0x5C2*jQ-cI~;6OKeDZ4!GyFGZ%X~7FHz(<4C&^e1})^ga)<`dg9m4OG6d#lo|i@wXDdjNu5%4&F8|T4%wRhtmwG!3;Z% zr;>VGFO~7GRab}k1&iDj`e*;{C%oR%7g#7hk3*{SD)9%-^zHfT_-Y;DJH4W;Q z(#8(Q&wB}yF5l=)SsEhKb^mE z@>m^BXJvy`1qxEHax05IuWT+DQu7O5jk9N62YGqkb&;98@ND@to$@Nze<{adf4qaE zvYyN1zVoV+f7f^rDqL+x^^7j|A9|{M+119Ih~)838SvHR&%Ni8U-+~Ps{CzPaO9U7 zcGKdyXa2x}w|DLvCc9Vfo7O5LFaUN9Aj%IbU$x|ipAE|Zm~WuH3P6C}9|8iSZCtg7 z(pPmhkJ&GOjTfBUYcJ~YT;ur*~jBK43Rr3VV1TZE;{gE1vTR)&u8U3>L1Wmbkr^hJ}DZ&LM!=a&@Ae_AGE*^ zEy*)J>FP>6e&hi53cj24imRL0+S`ulimjLzvAVVt7uOdtyRkEBJ1h)YanQOINEtY= zZOyjI%~-ry%plrq#?Q2Ez1lkcqhEX%a;D4r@TKL|3@-Y}5WcfxXmU;xSqhG6N6PXQ z(Pi9_ZTGq+PRaCU!OE)Tc=YITY;4t{jXWQ6tm@1*&0psauh!O7{1PngcmTWvgU+1; zJ*|~y0&rwbhCAEaIc|L8{{6Hq&cC+$GOaWKy#rSXj+aHa8 z|F8bL@s;2F-SOE6XZCr<>EWZN0ViJwTG(U#yUp~-t?{OKD7?dTO)#!mW+>ND6JyVK~j3Gwpd z*dSwaiU+^?XhE&=?$u}NW}}oafrlor;o<`U+8$iQ6SPs|IQZi&o#&69pPt1;F!4+f zwmuX$On%akF^^#j+rEoYOZtF(aX%Zv!O2P7y|b4Q+}ZhMHqdYW_*ci<-uHa` z%J@JkudrkvBG<~d!$7jl3Dc#{0^Vu(0N29k6OZvMy-4)nnQ)-0iX z%Auom$@TdNr1q@%>S}GlwF-+7RImCu8L5b4+nIL^l^_&&y@d)t$Pli54QJOn8M0R{ zXXdn@u~N|>9M0au%bzlqNv9qSeMEzMbd|)1^LD=B9URqDo+3-11&?OZ^OiUFx4x+cak!R_ZR@S4mGb*UZdSA z>$$SZHLS){hm~|`-#r_Ycv@vuvO$~jXlhv60~^&B>Dko2$pJ zZ2hR2I?o$7btIqgBbTJ#wtMf?2`+xjC%0zEtZ?$4o~XO|2XA!tU*DsPZh_Y@{VK-> zLtb9@_#-urPxFnyu89shU1h2+!8&!|a|RSSIpa%F;K0W~rtDWaPVB4MO?seiypiw& zFHI&jzTP+9urv6hv#C256%eP#J>#CM$F%*le~URWqfZ34S7pI#ox5V1 zNRFKnm$40=pKP7N001BWNklPHaBiZ@$XUnXEus$(Nph!GTN_vKlc5EnwXSJNO3jp;>=K{@RRRIMXq($w_^; zsrp{_l-!Fa)laxLuog&{@J$`yy7nG?c&o!R3H+wX^YmHr4Hy+D#S3Q@;-Lf<9Hqo> ze7%lyi$~DKfzb)90;xd<2Rrg>$bOcV`*hAHa2S_dNI$oU5urPw%X_9lwQEeWCEpPBeka- z^bea_v{euXzU;JAx>MU`@P_?F13f^K!TzAw-7WrYu0w&LD!brXH@G%S|C0qD9l3@HsHwld|PLKI)Y%hBc zANbO*)p4Hc*3Nd8F*fl5A%jOYnJnRqU%A@E3f}a4t-A1aJ7)y@B4Djt=ga1Yea6lZ zvNUecP6aQ>^2y`JvA?$$Z@l?N`X2&#vnzen0Wix$G$AS|A)RkKKik*iEsRdZ;r3|+KChaE9mo=c2Te@YQ?4C zR<*(FSWWw6;f4=>YKrkg(Uai$`c$jof7GrydT|JHUO$#Wj7pY?wjDa!j;d)rRBA_zPiXS-t*%G zR|UD&H#cHue=jCW>#5_~L4G-LWjUT49>n&}Ry=xq5OHbO4opU{HQTws{q+Z5EKgGEcNs#1qP{joZ{YaM2n;NcIAo|~Y+ zr?gplbWr(2aF(=HeG9(gp)xr}9&xCY)#!Kh2V}%HHoUyxtMRqR`P-hsE8{pXz4yyL z$>5wE9p~Q0jrGkuQ;R{|_GKte&a8q+jHJHE-CWXXLKYJ?wkk*`P$l4`)3%q|iU~~ANn%XWcTorI z>I@<#FfG!?#7Mqc^jP>5D-LYEY~$eH6oId8K5qieChu1M{(Jp&8xEMu^p^ z*V1iH_37z(Y;A5;Tp)uZ%Na3EeB(MhdBT!XxklsST%eCZqD+Dbtw^?(GGaPd4ijZI zy8@0sv@j$F$G#LtA<=F{M+R23G4&+Pl!*gf^3>qLqiA?gi6gTUXJ@kvoM=$;`H!K} zQRAvrVT%r7y{hw>G8Q}>dS@-=z&oS7*Ewr&d1aecHIC%Lm~{tRl$4y%=rDIM8E=8W z39|j7iMN$wU?|TZwS$ZIOTEp;iUZW@*hSf$CvaM4Q}y6PIgSVz zjD$`H&)PwwA6<`UXf2~&hQ{^sas|!g!%MKymV@Lmo6SIi+eX{3?~dwpIDD32b3ni| zGiLRlwrG}%46NAEMzjOY47{~hoeWz+7uBgAPS?3D3BwrD5BWHWIe=QWkG^I(7_+Bo zeBxF)xN__mM?79%tr<;qxd#u=l!u%8&6wgP=PW1rAInz``~{sy4hI($8or`ql`^@EFLC( zpYuGwusiX^#p-yh22=OSikWnBavoQGVTaz*3xBBtBLGz$y@5ytLfK6)QeQ{VTC;Jl zB8gpL6ou**3Mc z!$1d5^@C-z1tIXYoH`Wcif5m<=CtL?EUTULeYU(igNtntgl9))KAqX|ZC=p|kSvnDiD)D<(J0s0s`_KgCz7w1?vD!u19Aj)C@4I(xpbT=KY%Y1UWU za##^O z9Lw&>4sHA)+s>}(ZcdOGR91i)F|%Q_$8I9Q9*v|eg10i|VP{cF` zJawkj5;^2Zk%A}O`f?(N0uB7Az;cDX%B0Au{hm|rL|{c zWp_6&X4<7~E2lBL67;`_n`=R^I)`#KxAqRbnXD!}?PFziJ*G=0_V|H7Oyg>Hk%3%7 zSX{h`wT->lx$}G+KY5b=k8^F{!H2Pmfse!=abC~+-t%Ido-W4u#WWTsmo*?*T*{RO z)6u4H=!B0DEv?4p&L&qgZNUD{UM#OwKbfnloNc-gvAw<#t6R&l`}|fM9zBW0t2(52 zae5OQ&#uJDL47=jFJ~Z@K2`>#ZdZu6Ens`tKmCDOjMb%;c;~xbis{y!YU8u>xckhV zc=kdW;Ux`2XgWrqGnU$p` zeDqC%@0Y1RY-jp&H#f1fw;kKNcjIH<{N3^LpZ>G)(km~;E8qChxVTu1Fgg?m#z3c<)r517ytbF()Jol5%~Hm+3u`32y|ImTl+p<#7S@RTJUovA4M$C#U5LtSqhP${KcZVX@Ap zdhqaJ{DtrT*7)%s|10q$Kl1OzcYfC=;v;|dWAT=Ee^q?sYrZ*Rb{UsvPtv#7zAkPq zlh;<#q%X3#6qgI^=XJbr=h-;BJWoIT+P1!&cw=v`?}(+f_4xlj z^~DKC`)Ok6*n@+|IoZFu zJdF*(XaSDtQtmV|(622}Mj(?|7q}24TAaqKA9yL=@#XK0$qt*d97m5&Vt0Q(`{m^Y z0k)O+z^iYIAN(YX__J|xcAh~(fvA{V$NBM59G;v;TtzIcuf#>_)MC8z zoiD~8edZ5hQ4rFE%GBO`PxZAIQ~uaZOzmQtnKWLB z>FRQ<2{di4#@5D0EKb(r@$qq-ogK&W(j=y4>+arGeE37}k9WT9#dyz4@6KI7 zyDvN!mp7ZSv3eHY^NA0~w}1Dy#og!L7GLpY?~VPpzazHa_P&@-HskoggSeiZ#ao`+ zjz9m2KOLX=!S9H#|8pOWcYNrpV)w1D#^*l&AhuWeTo>{FS6__(;y?S#@t1z+6Y&@S z;`hYj&2l_Bo5q8yNqp*4pN^x?{C<4lbDz!rs(f3=GF)ZQke#q)HiOyM^r8IA9JgN7 z!R!1Ce%bNKQ3jBWh53POY}(oERBHTbd*(%ctjlh=%^W9+A+Ti?m@$r1PdpuO*lELu z^j^?Oea^bAauu}d@lg9b;uPg;*G`c${=SKT?b|aFjd`?3F%iKkI2%9UL5^*CvUU@U zBS5B8SVcU1_$Y&Ge3!M=m5dAU*{rbQ^RhMkaD!uh0KC(`9;+?+U+R$X$5>Q+AjigI zti%WANAfZBQDyhbKi3bW?J~w6V*;?$VN5KhqYgnfeqK%tjI)qYV7$e55Cn%G|90wN z!AlOy=0--nPtH#A3o!sf0-}VBLC)LaSlvt(%h7Naj-|CCcFyq{+co6nkRZ??7h@2W z3^8~UtrOr_UXDNh-0Si2kN^2tTHKDK*B-^>_$X#4XEEJa4|8ajF$w3+zx~g3D-sZ-tX#vIoUZl^4miY}d;!T-gq4l%E#{G|YB z#vM$~FL#WffO~@lTe&Q)+}Pa9RZb2~GvvVw0#>gjkZ(SCGp|!fBiiacC53|stpqz~i z`8mH7pH)6TKYhAf7#}$9jDmq1T-2@6lAT7UVICbli8pOSUGGC?YfzfyFN&9faPTlt zk<_29-AX{))zm)%DC&Zb!4k#AGj+uRCzoDUuukAaGJr|=V+M z;Rhe}3WB4tafPqzd^f&ONS_#dotzFtpv~%JePFo?4`h- zi=5yYv+@-n!~^oIa~<^w%4U$l>O<|^EE(oc%qI)@&SH7RO763mE-z%@;Otx=)EQuA z+t0%hyaE<{hO5gu42I*fJhiI8vUs-bGNw0+u{NE=g|i~rfJwyFh4#1}i>tmIycLJX zhbhPN*=1}x`|ju@_+LxDq&RW->1xDft%z%#Lwo8eS~y-;H#xvf-ehoe5|?>4{xqg* zOF4P5x4s=GXNT!vadtJE-EE&a*C#Ke6MS;+Of;VYj|>FRH3vOUZ)RD~bj?cPl{h^< zjVpeHm4Je}%i11Yw3>;(PSmB_Z-h>(0TG3*HcxI5ZvX%$wn#{Pk@FAOp zxLCM~1zVjss~3|DBADQFM$6%0Z6DAX5ZmH(C048wnw`gWT*PE)G2Zspx5dTPG?u6P zvAsQs^*dYf@N=J!SUQbIhi}Hslgl{2K8oGFJ8^jMI8M(_;`-t$&pXMWiZd6jOkCE+ zW;qD90(5bCDHc|i;{5O^b~d-;@yS8?Hrahn!`77r=W$IVwpP~S@aVXDF1j#XiPH;b zWi97K$(5}^2jb-DDmLytAFsduT0FP98B5y{zw)`? zji3F8|0p)kPU7Li`?0vR5X)B!vA4G!58gP)b6C#Kk7HwNJ#H=+StczG$TuB-KTi^DL@#Fv1e;lu0ekOkQfB*UT2S4$@ z#`fY;{Eh$eN8&wS`<3ydKlI7?!XG@&vrB44X8AJgL~obVp6O}!L%BjX(yssD5Bxy< z_5b{D#z`#2#lcbhlb`$~J+1iW~D+qRW z@(iQ@`X_!Oo_*_H{NCZ?_z!;QKaJn`_20^sSl828y!X|Y;4)MSFFhZZhp)%L#5n@pZ$`#+vt#Kq}V zteQaET91iUR+Htp^UPlQ!PBd0eBu7*(^t^ftgdWikaKOi7MuI)acQE-r1HvAym@dC zR=m$_54C$D2ZXiCi7#TSp7Wf(?+3p>zT)dX8Y^3GiM#vvBJQlkWPL3*o_%*LT&>3R zBI5I}|6x3Q<8yI+aUBzr>vo~URouICCl+od@#fK^JXiD0!=t!fTnUSJFHK@|y{|7~ zXLXvZsBV^4(uN$LUdP7rTDKA@HKJ|g$jIaBez4+zd`?dI;&p(Wd z)1&xPU-5E$^#7;oJ-{t3tMl*Q?!BDe%kAjqp)6dzx_x)Y>^PUs)?YZ`~&+PKPPk+|BpL^YF=^~1kozJgx zvp6#W-u>>YD7aeKw|5`oCns?Q?1ZB}Qe#Q{9xKb_`>uNj8`dtTq*bHlrBtgi-l%fx z&ws~cCQe&dgfD;Y6D%7ZqP45X%&k-TI8*s1yPiM5WB1%e&{N|}pZ^$VpL-@vZ-`{W z%id#0`Tg(iV*JoCzWDL?vi1C}OsC?6TSK@49&8OK$4BG*=dbQ(_iL~7l`nsYbI;yF zI+4X42;gmLF~HmLkrcPxaX$xNd(P~wXPmQ%&wcS98SY<-}%pd-E7b8aw z5v$#Y}$m);T0{KQ?oPV>VCF8@&*z6IM-i$E-rtF{$-s68a4{`CS$QG z+n?XfHj!ddhq>sI4V-zwCi;dKQ@4d!Tyn8+FiohlkH6l34{KL-bM@8d(h=z(9O|Ok z@Nn+>)2TV@ycEmQ$QQ`w3beMiF*`H;zicew6`I4c5%j7(y4kcOSY)H>A^WaYv)H$? zxx_w|9hlCf{?|vA53T4a%TtwK7qsl>xx;LIUr%ME*WRH+R;|&cqGhYfa?^UPd&)| zh*F#X-+MciF4Y*pbt_(4SvEWl2kB&b&bW8tG)R6Comk`*N@g?-Ec&M$M>%N9d?6a9 z3Zc%Cu`j1kH`M98oCq~|LQZ+Hj4xn0j{cyVM4`Zm=`yEI9Uv1+o0EY`p-eCkrrNL* z^f_77-;FI-VPAJ4GF?&0m8??`xp9 zceI%k?($rwI}JE}Pv6lgj@RQbG0<{ET^=zaoCZV?_*Jbotyt{23?jOZ2E87tXF4qk zxCVw5=dSXoGt{{{RabVANHlC>gmphrFuOus=KgX})P^druB*Q_P}G(hG-jYGgM>>? z>EAk4CrD~@GYHD_*%$sMaA{7(?bfNim=I=Q&QZUWt;OYa8GR5jvy@FiAdv>H41cxR z{Djk6^X1V%mGiCpDhy5logNw&Y6pE!yOP>LZQzu{JvUDDnKHmwlc_;In>E+b`*KvB zPM?YK)^#*#6q7AyO5YcVp!c-+s6BK-V}J#$uuRoW4-Iy~)|xc)<6(aB(C2EadC)-R z6BsAIQSZws)pvCbJ@tEyf%!2cM^ON&>MRz7+vzczlxX2HW;6*UCa;h>SyDpP#d7!`o-b`8N7CzCy9X2bAi&#s#zHx3%h>@-(JvmFrTYaS8isdEHPn2UVnCcsi zX^lJ8O;0^k54EYrlRj5_>e`~n>NEYV`s-DTvzQEipZcI+`lwd(n2kehC!KOiOF`|V zYbm5d{h~ItiP=?en7OHYsoms^3%HUeuj{Marax6jtwC-Xg?7U(74Rt#LFj0pEHG4MRGaC3Du?c8jR&_msZc-5S=M{%D=ULc#b~_=w9`ZFGygli>YDQ>I1NLm zhJfE^))>`8ry8cs4B*_r@3l^nTqZW%(t=Z;+Qlx?Trwb{btO>Ls}Mw_)^QmHSEn5o6?P`j9uZWD^3 zF)dTrY7^B{V_?3o^<6#G4!Vc_FOWv}(0Zf)Yi>#4RBN8KR$1&l^}oO$op9@#0-NRm zLvtE5$MTaAp|a~c8V}klbX{{#Wp@%KTVkmuWXj}?Gw&G&uTJI^VmBAsuC`D)%)JcM zU@=Bj7G2*0!z`mj>xaH;h^G#W?ua&Nu}H+kDHH_=T0o%6qPEvHthGhppw@KhV2HhE zU_QfoX*O#V3poS!3((QM)pn+R=E4d!#svJySW%zpGjm$0k*+#b1d^&@>I89(!^zqxs%zE|IBU(ku9z_&_G`)CcfO(%mz!xYh4DW^kgzxGHC&6(H? z{(z5aS>Urmo~ney0VCzmG(e8kZ}~#jFl>!Yq&ZhsSbCC&POw8Ev4?VW_4P45K4DneL;VAkYZbDU z0%9jk6szQ=Y3WwDLER)6(mvENJj|h82XHh!R2mMt+IyLv8mFl#UYA|y!xQjPEY}$v zSitd-6NXtc*gwEvUoY2QbrtJYucKKh;`Vz<=JE!_tGO!lXV){4$Z_Psd+F-!A(bj3 ze=0GP#pkyeQ_WhOh(E+^EJ+}sLn#Nn;pK##)0CYByulEP8t}Lsq;m|cWvJvG4U0oOQt! zeBeDd@Wb!_%*=c3GaCCklrejW><`0Sw&sP_6FqdOBL>s92Os6aw_S}d5N7K5adz$8 z$(~nU<}){3N%#6iJoo%_boKUe^!Q1<-ZpH`AhQWO!R|$5%7^h$Gk!rT4@*|AA(pOC z)wt;GWO{NMx2;H^yNgE6W`IRs&;si{_8>M-E4}@T_{u+jpMU+r^*H<5h;&DA#5+mO zOcD)6iAH-_yedqiSYfDZkXSQMY+?+b&B202>si>pgv;M@5%p4zpZ(-NhFos&%XJyL}uxc8d1SMRa#{k*icVdg3H5X$==jEFK)f8}zVj*-9o)O;dF` z*|T>K*<8vvQM0irI)-~VbInFVHnG1QZ){=tBh_*ZTfNTdXKW$dzl_KJ`U<~z^Ov-D zbdYIOx&Grfn{`|aKfm9_hArzDUa*kU&fY?yl;+gvLEe1rAV>C$v0}wqKJbAX$tweT zcZ6oSKucdgRbPldKll(Y-uoa6R<7jA8{W^^XP?92eFs?B*Go%Vm|`}^ks~Mh?>m0S z?DQzvWD!p=z}Ij2E}a9z_*@|zjT*1++{JhP{d=@DqNHLm>^>jg`0iKPvTO-$k&pqs z3?dZ@zYzAOGxj1FSk4O+Nmy8@T43Z=5+88&9zJ@FcxGP;}H-vS65xeCEU4`qTg7g&ikY+#h3j;V_4%Qye^Tl+DWr zS=!dYhp&APx94lz_dgG@xT}*zOINVt@DWaI-^H3`i&)w^$W8CKgga6rEL-5@gCBb@ z_ig(#L0>0bp$I{{lkUOA-1N~Kx$`%_B@=7#k6-^JqbDoeddFYzxFWPfeVlc{CKICC z(ci^O&%Vy=uOHy58?WV&7k5w@&CwokQ7Tj@XDWn4Vb-l)#g@x9ap>qIuO2u_-4-C^ zkFdCJh_!1MF>+`P7p(1M(c(3{^x}Sw-G4vTLX}G{T)~;=uP5LR;&ON?H)>2yO&L%} z_Ofh+dEZ0!oFbrPPYMi6r&5NHAT2eQ!;&nL4Ix`Xzmpx=;)|MO4YJW>7YfkMXLH8h zk~EIMbNT+}0L_p>EZlg%a0HB!op0P`J1>+_YEd8rmo1H|bjQ*n(_C9SrN(P1lnR)Y95!d^p+C z`fVg48_v=*RvE+spVz-L{z=o)`BEe5`t5CP2FK9;G;ezgSCKC#|4+8E?yqahr;;5j zKVEI4@5_%;S@pTDFMm??lnI;fB&0!Y+xFv9E^H08%~l6p&-k&^a9xHK4wy0ig~TjIr~<4shnF0j808WS>V>Z30xD1`n*t(zJ#?P zX)O>iM10SWmTw>MEv&HWq!Z z`|C5k>buHvBS1%+PPHy^PRnR7l`Zjb0XQ0;>UaI#F!iKEWJ3L#cpO&dR4v|mXnm9h zg8ENwF%JTp`zqX3^KdTHnBtb(+ggoQirP_|kV30kX?WpVPZ`DipR2j9NY3{lq%ZW~J+>9W*z^097Vmfn#DhX>RE=g^VcFUGv}ctv1lP zvZzc7gVbK5a;S~9R!`5&7$98bHSIblV5;$bXxngMW>bL(jh6Kd={3gs;AeCujhl9?pE+!`?tZ;cOotILjXc$JFZLN5Fdhmq$ znLPCd$=H-(&xldn*40U8XON}KHsEtb4I8YpvxQp0WJw8HjsFh1L4zl6G zv#GnIjN4|2L`uw#)w%1x9;cqS;kLW*xaxf2iytD|)`z2Yn0TW^Y-E&Q{p80?jf~-R zSh{Lvkj;Um`de+HzBg^7^?N?uyfSi`y<1?J9fh|^5+PU28J4>GLAIts5eJ7B8pf4C zL9K^cCuCHqO?_^^aZ;8oTgHJyM@%?WNFg~+hXLy>VA+k$8OCAD8~da!)JC?dOr{Nj zekalx5i=?gFX0a_Wcj)+tXEO*^WC9rYTmD*H1QA=I!sjn&pd^Gd;4KN-;yIHAwvA zVfxNnPP5BL_o6=Rxja3~7x9rFeTUzF^G8hWK4rpes+BZt_9(NlX}q$XJT6N12FuUd z#F71b@VI=0+S@3l(}1J`K{l>Ai{tyJXd7%NDlzDqi`i_N=O4X?M10B|SoL&ua{jsJvApLDY@R&j zP=SY^dWC&&9K_>ja@U;?5L~d7E3RB(PUt`S_c!Bk)NzFKyz=7nJbC{!6tWp?t|s6A z@z1#9*MH!a@7~7Z-aY~XHOfU3rc`fAC$niXcHi=^U&rot;t6;e&yJB8KfxV8z0+g? zE0weOJEGkDq0h5r(>Y}F$LI>dUtf3;_tIXR?m@CMMcUnNwmq_!^WRlw^SS4<`Hek1 z_sCP&OJa>mvca;SH2<}B&Ofx~Y46o~Dcd+#ZjvoY->}GwFTcc*lZRNfZ~^&=Ny3|! zbMWX%X5t0jcjHHR%cYmIdhI%#wkET-I?uhdhr53IBQmq2eEh>V^Uil&L8z^b#LNUk zi@FF%zoy>g&rd$aSHJQtq8%N0JvH8S-COza-+h9%$N;5!limAvlZhW8*w;ZvODj41 zaR!Hn`1y~2#DXP@X?lIQs!cMn8K&J%KKX^O(3l+OM?boah24WF0?pxZvUEv5tt};v zrN;T`e?G~Z_dmx^Zv8rEY*~Y^>0rn19h93jPTz7CIlG6a|N08Ied|XQ(@FmB10Ue> zYu-UuXAgyBiCnGBV^2QGcYgF^5>s*3uU*bX*I&g4uDy}4Jwzz#rk+dj+-nE$LWC^0^ysWZk-Tq((;Bym|qH>sNEprI*v$ z-AY62el5w4JqNkx&L@da#aOs#m^0U`B{4IJ-EXJqc2M{E7;3+fwyK>sU*E|UM8kSi9|zqBO!*PtxO#s;g9$IiPrX3KKl7j;s}TEDU^*OPMecut5@*ZuY7?& z-1?t*10im_>3u|6+L)Nh;BrQ&7s}+_O&on)v~D;9*YR=o9zVkRj!l$m4&t!{8E2e^ z(}TY?%<46pnK*iYmtNVys=;1Di+WkS%+El38|PnqAtRH=C`@K~@S!IeShkF-h87cX zMS1kuy*Qi=&R(^gjT_c+A{OKL=n=m3FP~=p>F09KQ+o{Scc?YWs%66l^xL`fuwkSw zS-O-XhYuQ?K{i!;RDiAn`+ysFtwJW2QPd^b@hZRg=IuQGr)_-c^B?E)AG?7I&%cmg z-}Mlqdye7BXK?0f*z*N!rGgR2PG^$XBYsHb3AI*eaoBnGnOE4iZ#Vz%1D|4P$3lW` z7h5)LCOtFD*wiQ;oguEc>@7rt0gjJNkvo;c=?u}|)+ROrRLg8wwV3lS-AZaA%hRtN zV|;8ot*vgBuU*7Y!%k|TZkhj{VLX^u=c$&{v;jMX`OFu}2XlU#B3W*qqn z!#x7QhFH9?mo+OtO1%-FA`r-FquPXH@hpSGz4WYg;qukldEz9~u`(x*9wRzA=Q=%H{Z$Lx5Kks~K4rb|#5<;?TfG8>EIZrX8+2`N9oZX=aSn@~ml zEjw3!oNQ#-iJ5H1*msJ?k{w~;17dYqhsXM!{7KoT^3`M)%GS_2YwT=?un0@5SpKGb z5Y2skSBD>3uXT89^v=9qa+$30=VYVlq3g*O)2r-nv8TkSw)|FQ4z&(0^_f6)z3Tg_ zha#_ZNUUog^Imq5#W2_JWxwnC+E-M+d7VYs z-FjaSb8i}ysuo*K(OGH_wTphIeMrC6LrDs}e%Z$st4!t8zNPQahc2o=)GqSVR7UwX zDzDm51QE#;sZA@jit!utx2~c4$j4F{b#Fa%Up?g~IYkQWyUYlft1}hiV6%}*YqBWghE8WK zrjI($W<)A2mW&wya~XYfiY{$1fg9>TJ@Tcz=}6Og4aLrifo8?Kify7n8IQ#b@FJ(X zP%jwN)l4K4no~1QqyZ!itIcnKG~G+>EQfk}dfJp%W!1pcZ{<`f)Gg>2P1$muHEB#p zrX0CBT^WG{iW62H1%`;8X~I)Yh@s_FsC^TOgasTZe6uXE`-%~zRQ+{dv1>HB)vhwS zEa1~}f{n1`9BV}AsA84n7|UVTZ*>j*MvF^dU%wgb>RU6=MNO2pg$Zx6fDBCrO&UFQ zPr2JIk*FD?3JFyot6ijNqQ7-*wTs4v#<4OwC|$6|jKBanr)DhABjPTnX+wcws*e@| zX;7IlP|c(8ky_b8;OF~)-r!W9%PE(!oUe(}`8RMy_fQ#BH*-HB-eUF5q4(-zg{KM( zP}*X_TpCM)!psC0qtYKR3_N9jQJ<-eR9A%?Ys{&>y7v6*{CgG zcU@cKS(IUo6Sb4dqA{nkt4#X8#;RV`|0;vt*9NPy>NlDrY71RM<5KbHT7%X1>I;D@ zdP-+NOffRyIW%xu9h77cULjM1`T z1Szwb)<&)6m5K#utB)H^o1xMRxDt?}@E4sbYOR@HyUf^>?iZGJj{&X~>Nm&GGXP!P z3Vqa?B7;C>6jM?2Uh9U&k(gROr66~EDCR6my1+869~$G8xv^;0I&36kF#}lYIy!Js zyLWYWa>ILX;_a87$Fdb0I5A%4nHT=TuWrAc(Gy4UxEy%h0lxjyf2Oy09UZQ)(G$_0 zoXwOtc=RB(;t2OVP-7Ksy!W)T*!aF{na;Ur_!W*=Wbd(29{STObal3}_t0TJc>UkA zY;Xr9e3F5s z3vs*bbau3I?ARzSUk5`=m(tY{re1Au^zZ=^vpLrG_cOG775NgRoJscVd>Kz7%ekkW zL14j3?%#F~#}032$D0QUIDJ$bHIvaRmo1Sk7WmA+d>*H#g`m5gdNV^TTOd;j^3)%H z%jAiD)Tr^@uYMn~e|_yuO36BJ9y`Ww?)(+0!i3R7jka_lX3gYSksti~Z>YHnY*-rN z>b4-koP%0+mLLD%YXsUC(Hdywvmg5?t>J!Z9zVI0hq>*R@A1_0FA$Ej@DKm=MHZ}F z!OHb($);vVC9=G{^B{M8@B378DK?#R9$)^~&(YiOC6y2Iiyxkk39c+w*tz{RzW3d) zF*-5Exm*;bk*#?6cW;Tu9^b~;)C6z6>{70K z*JZ3)u?}aTL9W?k!`3VKr!Rkx!uSX-X>m!%sF7jm@(5?0eg+}2Eu9J0uNtCObMVxo zFW`5&X>08uF*{8p>>=pP(~zcDSvFhLtcTLW`qnMqr{VFkY{?Rur6NO~0Sd!|L;?f+ z;CuhU!a$Vwec~Dhmvqq@u`$@alz^>F%b<^su`qVlZd>e4)V0NMM+NP&3>r8UWc68sKsEdHRKB^E29ps z>YTQIJ%L(-!t@Dh*_e?k5nxiOPP%$Jan&1y+B{rx z&T10JF5;!9p622Uws0zLQ>HrPd5!;jbOyXPk!<%zW&2@+`Vo5 z<>@!bj*XCvjndlQLQQSe5@aS8=dOnz=g>@&k6hP6#2!NWVhu+VZzw>nY~#>)ftOyH zpgq#bWWvVw*PkafKFehQgFt-0Th=hx*Td4`LDuwl(zJ(}EJiu7{V*qw-p@_fT*BM7 zY$jW@@uxrE%O!8Ukgt8`D<<+nd%GC_d9g(74c<6D&h6j14Q8g86hqJ%Aa%0H$N%mh zx$fN;^8Sy0jIVv;-?-!UKeO+N2XOhL*n?rJHA`Po`eq9k57E&Qp;E}=Y?Ns4XlHzK zg4s--PDhf&%oKHniZ-hB_Vkm@r?~T;d-?V^|COz)&!Skd85Zxz$QTbi@f^nw9cO*N zmw}EJUVe2C2S-jYGd9V=y%}D8`9&IbCj(t=ynpLy_^U8}VhUT?&gjum#%3qja_QM5 zCiB#EfaG95i+`wH7bMYYL3lnKeL-;*0g3vE5C!Vaq?%HT4jQLbj{OE|xzcxdaO&vitnzo&xFgn75O~%F;t^A|F#` zvdW|T$sSev=vsPDuez6PYZLWV$QfH)EOGe(@?9*=$(*s-EZ^M4b<~Fy8>Czt#An!x_yk3(1oxVKN!V z>G$Ap%lQ{*CSf;eV@O-W&QsfWaPY)I(P#+z70xKRRZB-iAztc41!|TGHHuhHzHt`j zoLF^$%AxX`imM~Uu+rxq%emC|1q69LK73w@Mq18*9PgwY7KQvNocRB1uxo$`a1a|p z4y+N;o9kG0xb9)~iNxG3XH3qL-dEl9(5b#aP0MdoJ39zV^g;tSSFl8fu|N_zqAI%v zxY|SvH94>fQBf#|$L}|7AuvV2j4x~nm}+9_A&^jjo$9ECKm%SOF=}f$iE0nEXGMS^ z(${D)gK}PT%ouBP0FlO&07tc-+C=RuCpc{4rY**k+FH(?#-zrXgg;iM5C8xm07*na zRNxJB!Q~{Iw?eK&O*NTr3`4_m%2gJH+>M?*W!hb3m3X}RQe~ZQ+mZ=4REUqjO=aRs znhC7Bs;rv4YFL#+kNI(;-v^ZK%4FoQQopMnnvmLXi_%4#13w(fxMafcEFewS(d0M4 zfd-lp$FCYtNo|l$CTNL94R|LF7nN6irr)Uik(Q_dTXaop!TekJ-~9ho4wccg@mzSG z2{)E`8VZ{6W55y!x~Xw%UAaXIZqd!|&h8K8lN z)fXCaw?dIsAB__& zuo@=<^VKi9hRUqEn*McLn~N4(qot#8DY5M4SUhS=T|i$OMN&$N5ls6nhdEH14+7WV%ds$ zr0-}v%!3_*7zN^}?^QwL5HRy!vFvrF!LDd67qi7{M4(j$-B;_4)(Q2){P=8Z zYcnjLsGPVtT{I(ZX%Ye0&A8P4%;qarsX$HxKnsMk!l@KyroST*iEfw7DWK7hYBmj+ zuX$qbZx~=!N^mXE(q2@5>9>Z??6#5-2;f$KC=6O`965IaZlw34kTJEn>aX_&+Gs}I_yS#RP$wWa>{_9635M?Q|3Na`GRv`sm0=y?ue*Fa<;VJX*{d0x>u=KHlm

    e72w&gTdAaCFx$- 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

    a`NqtsKCO*Q`Z_ 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

    e16zr7v=QlT!{_%fH?hR< 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

  • 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:@#YdZIq;-`S77+oSOMBghov2su^! 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

    ZaX$6detzcx_Hon-co$$L?0A)zyg) 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%0AM+e% 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� zG*M%L#!l9x6jQi{IV2ZmJ04BScwvm8oJWlRB#-d?q$ni}FXj|vZnJQ0>OAuI#1UTbatdglr@su9*6kY)kZdUED^QEFYp6%y-Hqz+%9|mf=nhdXrAF zL20}5x||}1VfXmW^Jd+~3ekfkNJR4xVXHCUqBdEt4MU1>oHJ&u=h!e$VqV5ML3S6x z6wYA>wXgOKe+VvdEciQW*h(SDX%~s2933L*CL}hFOs0ycKqwxE-nj<`Qfo$VWhp^Ox=SZkJn#IBW|g$XR9w3-wVI%E>4K$`M#2 zVTmsSUd+EA0%IIU77Lk&^O&5!9GCI2QDjmXWV0Fc4fM;o5i_E^0>u-_j8xifA)ye+ zlcF8RhWRmbR?%Cl3b4gon%~Ro2}3Efjz=p3|VDm<&xS{d}x@w@=ue>xPYAA#@1dI$4?$W&uYgG1?}ld<8&aCOQY4M z{b)x50MiQokDCjx&n>;b+gl5;e{K@ZUKhnu9WIvg*`89Uz@a#B`P3<#d1Mq_L&erY z6w}ia0>G5>6%jxE@S{0wZ52@|eb7l;hYQ_EKT}+IG@Z3|M!jIql7=r_caCqVr4vem&Z+H^3le4H4(pX;KM9*S} z+o57;s2{^a6Hu+|NF=k!RmQQGFCm^UV|TZJ-CPazW*5zdfm&6QfJJwtt!M)AbQclZ zAe2rIeg1xQbvtVHirgPkCr@2EgM()eAviID59Z#4#bHOePMdAIHndT$H*o9zilE2o zOaW`r6uMXEv9X<&V7a=qj)32R;gL~%aAyfiD+SbRJ<-pqg(EmRIEJ%lW^wPqJf3{w z6lQ0q#Fo}(aUh$_!kKGgEHZ?ptr)7MD(RSGqLQz=?)+q4C2`< z=W+Vv41RU>77X1YBK9Xv9FxV=9q_~AbD`d~Lvi%57hOY7Pr~c5dQ<*SWMzKE@js4$^e0cqANxO(+H z531E{3#(vxeG9Q7TbQ`9?@IgS{H>eN$^~hyOT?2%X7cd*f>NR6+8+vdu(z`*t%!#X z&tfl{5TX0%<|cvx50=&!g&E80%uQ7B;K8DpaIh8r=B=xMVv0i6MFXKN$r+t?Nk3*% zO(qPPFXCLbzm_wgQRuVPG}%BDb1&ucQn+YKpjRZoao!SqB3mF4kDCk>>iTG`7Lg9m z>L1$=6nK41eA-Bt%fAkeq?WUY!ob+jY7)%zsU)^*>*D^#*k)7hlJK+Y#WmkBbgZqd zNM(;zaJF+1#9N{Ha3SnvN!Of#b=T%<3Ll2^=f8({!d|I|KWs znb$C}vO0VCs+$9+!$={qiO* zTzmu<9+}18{P-8RGZ%wRae)RjuYT!SeEzv7aC2b||N3A5K$2_bKg^H#;)af!1Es6L z8+7AaUwZ*BedQHYwI)8gdK;;94qtuoS-71REat0-6*YYN_&9QnI^O)~7Jl#_{!TPe zzWI$8@xtexK~8VMJ#q}u^*E+yu86UU(rvP!k6ejPxL%xoLWJW|4Xy9Cmdd zI5jsE+@!Et|65=GHoVR-HdkY)ceg=Brm@K|?4b}MgCj_n;~1YA#c#a&MVvl!7)Gm# zTDyzC|C^sddZ*B;)gqoImt^gyShwcTAu%+selX&#PBWNl;v@A9>;F4A#o85|f z*FcqtaJ`DIV#Bw-`3*Ge3a`526?f zPoOV+3fFI~LGQJ3YNQ{RPCkmoW9!)1jN+%Sy@9VC_&Qpe4NEsS(X6y!aa!@<{sXA6 z;>;tbaOT`uSY3XoJ-aYs=-gaw)lt;ixc19UBobM)nhqoiIugl>h)LUYVD^9yLxV%e z<~4{%yAw|EcA;ygUi@W|y8*jOlHacK?bj!$D^wu_JMe2j9L>yTZ<@I8JT z5{WpnC7O0LU?-EQTY_}9Dxg0p21sx`xD%r+r-851NihOABAGoMT4$C> zF0Ep1bzS15X4s*&-C_jNR)At%N4{mn*7hnkAIw3q7;yCmuvgN+rKeocQ7ksFmn@3z zn$=-Lso25C?_I~x;245^{b)AG&ZuE?ErxQw4x^>u{kK2HiL+g#b5$`{h{w|icxa&0 z#oB}WI50km~d*! zbXlVdxg6?R3!~!`qQj(VC6o&p>_+!c@t098*JQJ1GFaIr>_MqmkhPLda>-;I!9WPv zFGCwm^o0LGx8&m(yo0V&2p?!l;k#Nvg=>k{S% zjTFkI64;x?7(sA`F^0^HzP^4TG!WdNmQW_Wi*Tq9wT31JEV8E)T|>qRapw@dAv&T_ z3Y*7b(Tf{gk}0U$XBaH1FgGv-u$>MoM#snD^RnnfNBBO8U0$zGq(B&>Xi7oTsz_f* zBmgKcL>(}0u-QH+tY#r8klAClWpi_G?m0~$i(na9KPD@MwEUi_t?Zz7FT03LaEF^{ zc54uP8PedA^DQ!=>%y4gxiHr7 z`w4pS4`Vlv!F7`4jat1bISh^A$lxPT#QXM;mBc+WfstS!Ajcs%#Cy%_SIKhOXG9a= zBiO@yg<4$PTQe_VZo&M6UQoznKlV-g52Rq6tG7>x$pZZGOOHRm*u(Bb^9 z=>+bWNm!tEsN3ZRjRjP);kt%^v}A1CE!2H-iJ2J3fN`ApC&!d|D~nDh`ALEfX^3{=QHS2p&L59fiN~V z*5UMpq?4&q)#RE?pj8n@YfIDMw6hzD6m+uJ6?7={-fGIT%(==J$Gu!BOZy-5H$Er4 zFMN(Tc04!c(*%L|cY=_d@0?o}#k?L~JAXz1ip)223{2xc5*(RZa!$Eqy=sbt1Ia`r zDDnGw?L3~`|6dnw&DKvIn=gKzzb7GubAg~58F9>6*_KJrF`Y`vyqEl(39974rqK{d zNzAiIpyK%Rxco!FlJ|rYp3lic+=%m**TX#*i;^U5FtOxy3e#2yCz80DniDn(Bz7R1 zdLq}fiKM#%A7*|LQ8}`sh~)8Lya7y5c_9R$_+W9Oy9YcdfXO}wpXe?p z6p=fZ%??e(SX*+Ud>^YJJZauABI&%LL@Oy=&py^Bk<@($D-Jk8FMhw3v_Wan;5qQ- zGQsAiz#^!)v}#!Ca$}-^1kqR--`P#$e#D7qR1FPB3$bDbo5=)5j~vHdy#|NhD=t~A zR5$dx>8jH*b+)*npso-d06R_UA31Pq`vD$1IEuZBhD^SMV}%MziUsLf18=Ky0_``nu-D_{7kgLdKpT2McpLzKU_~Bpw99lAu=*}LFO!uK>rG6HbUlg1>HI3c9 zRnVffT*>4A`QeWcKYbi8f8snGRtJ_ASFpCaEB4N+!w1!{!Q*hj;|}5E%n1ZSUX&<6 z=Z;_`o`v5Z!N=DZaBLhDK1x{mGm2%dTF zJRS+qlDmg`E-U&$M!AE4F9Mt4z+e5~XC!lq20^2&@co8dIABb1Fc#O@4kHv zFxV%|1c6Rlb=0c~vaCusWTXI5>`@$EHz8 z>Zq5SGWK)=Eo74D7-VF!ZP$a5;XWjbEmVqSxTQK&mkNWOty*nU47ge?Nnlni0kqmK zpC`~>u|X} z7#Tu+n$D2&myrG6W2s8_ykcJ)e2JaJxNeVop0(5(Y|8aus;w%v#DWyZ57q| zd8x9Jna9doF`E%~D_KOhu3dx2=ZDA3b(@YUrb`hwpVe{&4{9~IJRT{2FpY%;mZt z4u^!f#8|^*nP3A8C8X1{^28XxpEI^l1CM|R9aSkBPQZlmgJPa6+A#1jIBInb;-=Wr zr7FrKD3eWzxG0Y!6~J~Ig-QXejoajTaLILh0=momZ8A_{?|YHXRy1wP+dNJ zFt?8X^lyKF=U;vrU-^w^F%bzt)4Fi6^4-*sce}8#lE8y^Z{hPVy#R-|i}8U`96Izq zW~L@^XmSAFp&!Azm zV{NB|kFGBuvzdh2_Tu>A8JrvoquuS{SGSi?(>2_y=#IeR389xtBE&rE@9!`2JSB|n6%)=o}@#=QY6CdUq-FXF}Epa)$w zfL5iBQzyWwxM`I4|bIFA?S@1l`Qqi1g;l}w?S&qL{s!45Z)u@W*l4Q%lu0~26Jym;*58R&K=KAw9ZMmJ%<6PGVt zL8Tf;gU@BV0h^t|}G z^=d6Ib`oSYCsD8KxNz|bPM>}p(X9+(yEz=08O5c?&f)IuyNK?TQI3^S-Ya2Zd=!Q< zfUa)C&d#c6A+nP5tGC{P11{*tj*ILGfhz(?l|m7zcoM`&-hKNHBB4HP?v&y1_=T;o zw~@f|{RgN~9;MwBqmnxx&7qR1!l61)tQ3&VB~dTr5#LMT^`E_ivGId&Iy{n3(&@U= z(6DlU9_0*M+N{IHbPR-pG`gxGzOjU2a$8z~xk=;tP4*JquDhLv z6tk$i!sZVUSQgiKQtZ41;n>Y`0**wB@MwWG}E$h0pN&_hCbjPa-;Khy` zAM-ylJ;=f^SST>{m>6fd0q1(m{E&qUo|{}-yCZF)xjZ#@0+LHovWCU2a9ZxVF(LRvrVV9y$Z}ymB!Ce$6;%=)O!g1+V2;^C zu!|rEa{z~fnS@0c`i#>&Z@!NJ72EPyux5;B%;!EK& zHG+YD^jd8(Y|58Pu-m=ps?0N36thFM5fJS{ad?odX>j-h`>mk_wDw!?+d76_HdxD1 zxNU~8#b`Xz>9nLBoh(D+5NJQo!#p%gJv*twhi1z_t=5FIYl`7p13t-p zSWnYyWPef8!88G4Zuk($;eF!y6RhKZ4Wlg>3Fj#9kL18ydzf!`P0T=Vl7&ZBmnQR_ zc?_?a*bW8c37}FYh#hInpJg4OJjDK(FjwZY#uvwlI1h7Q&be?XgxWr{j9AUX`N;Dl zkm%`jVn+0y8wLK1fRVLL2LU35 z9YHv`$#CsIP_h8-Q{lM4aKR@k84S=;ci;WN=m-MN1uoLxCps$DP(&U?_M))7ZshiyNI2^WLSG+msTo5=x&4-Q&ego5o4oSbc&cPzZl6n%HxNME!>@~`8X+I|#TuX!bNrkGarkw$K-$fM5&NLK^NF) zcG0Xfq3zbNHJCzVcn~wkXApK+@y-W#5lyFHb@aj0>Egfn-EU%aEC|2Dj#0N0!^Z}2 z`q|TH8a@2+pZ+z{+gZ#lZex6G1i$~?@4!Fg20V6bW_Gc@wS~>CD0cT!h-b`d-YYMB z7Cl47!tyS1xiSt6hw=2YSCB~k9JlW+qia8e^CupG&C-Km?THghBCEp{iAWp6$oK*% z{em9tY7J?nM+KNQ%XlgETKWqYiJaTu-m*C=(i%K#bIGfkZMDSaj68eMVjoHnpVcp;0XNw5O^;Or79Asl(^!xnl%g$M&R*>u)Vc~ z*!Ct^>0KNifZbx?+Kn5~IvrH2yHc4el=2v$8;$Cc_MJjHffgBtWWpFl5!G*ZRU}g- z#1aWOYz}FgX2p#Z-f%c5j#V2gD+q^uNTd@;#L{9PeKU~|LFP6!4k>&tZELK4)g`DD z(mN=Sfu-1xNhZxh?oU4(c}70@RfR3)H7l5%jXGnxc1li|6i|(?`6OgfJZUK*cs^m zb3lSIfY-?)2Y<(Sp*75L70oNIcipbEV$e=G5~k^gS+HT7H*1Fcx6Q^RQp#PZRLzPY zDd0>XJG>YB?S+h$+$^wuO?DQOC5O1uwS^wfwUFo6X`1>8WOjywrh^Q}fX^g@IKPwE z$JfIol;6N=kW=YbM3o@xJ-uT%ENG6NW+Xjp-$IS+#*FfKp4}bC}{}jlj@kjsuXLzt2 zlkxKfJ(w9E!$1D+w=gvxLeSg8!o3yz_^pre?v4Axj_b7>_~cWMon9=i zMWI`5c=Pr5AxXCYXVkBv@e74#%hD>sV%gBZ7%D{_GsB~(=}ipy2QWQ03#IEsJ=cY2 zd8!MY*;Ila=g`;hgN`=JVhGYhbUOt-oy6STYhvGV-Na{2^1O>Q<_u-kf=o}56}XTyslA^dOu{a@h5d>s8FGf*s5MAy>Tji-U5 z<2W}N!cgB3x<{=zIXZ>aXaei2+t^-92;-oZP%wJ zB3f*JvFIo_icp%MchW)aOImpuT*Z9!A3Vd36geE!Pgu-ZLP z+#S?(wl4Uj?Y`YnQ6!6}QN@FsAERFHqIGxzm0}&CkROJ{hH|5gdaDCCG?Xig@Yw3O z^4wDxnR*HT*Y|#cbghLZ+j_b>67g*$O9f%HX!Q=tTs!nC4opso19HvDB9AUitS6to z0FPTifB!HB28KZf?ZiX`fyW22m!`oJ*@;a&_UJ4Y7pD+@{0PpU8ONY64AmJzw${Se zzVaNVheN39ZG67uDorUhZr4ruz#V?WA z+`-uJsIWc@g)DY9*QLGf{deES(W6Hte{`sH7%$1swR#h!as@`ah1Gj^5nWwH&=Z7H zrC53aE$YJz3}KtCch;`B@MSV(lq&^k`=%H*UEc*rveFs8jg93++4oTAhwE-r)3C9& zBupp9CxY<)@V2yU7g9UWYfZE?I*KxkI|*D}VnQn@JX3A($L zixh|MikTO4S+4)o{ZSMG2V|MBW!=>CVS$Mnw`>bD<7HR&Mr8Z4t(YKCC=!u<9M{y4 zCxlcwDb9b4d2APFixUF^i^hSF$-Fk*M@?aD##Qc@7&8fKa1+aQkoz{qOS_`Vp6kGY zgTiWdd%fb=7wPMlb8@LIsTmSX<~9*zKi*Z&*zc%aHGtz zwDiYV5%?=`cgTm|~6PbHSwt4Bo ze4*Q4T?%*vAqX_EwU{{@2_npkggr)QVY}Hn$@j6fl;^~Jg0CFgT`6C%Zz97nA>;XB zejvG)$O@RiD(@4=hIs<_$NV=*1G0}7If#ycGL_0h2A}DCEY~e_Yi2|vG|N|Jh|7G;-hGB0=15gmd6Lf5k?hOv?610 zhey!tDkvxpxIF=+sV{aa2%QB??lWy3v{e_f^`;bK9WDk;mZs$l~HNZ*vlqqyv*8SQFO}jtBqC zYvS`vkdZH*Hwy)PKLPR4(NRznp2VwiS)U~b_?#H&A48{A5)F`eybL>B z@Vb1+rSniN4&=5CqZH z+!M=DFZ}+Xh-s3xOz}V%Ixb!~j)OBpXibdZ$A9^zw61W04F&@OXi$V-s~KokY456| zYi)uUy3ZdF5%STYVF?VXi)eOB=+y$G*)0fh)7owbfM8fHSWoWaOJ8~!Batxj^*pxn zDg5f)52S~DEtXK>Q($8MTBWd)=Q6%3C|;;~0B;mz0If!puI&4oGi94$?aSXxPNaIo2$EMpPWWt zA`HE&LsPrh-b|yIsK99GxHY$c-FO}gYbn`aRoOCFE@E?_AF#CKA{ zlIhqKM0a-(40uKGaCdsq!69iE9> zooxo1CcqM@`vlUs;B&F(I?dxrQnX*WqRSiaNx&bHL{;yYZ5C!yM13F))vD=G%LSC@ z%>YUUk**uUrscZL;Les;vZ`o{Ot)8R22p;LYrd21KOVAx>0H;7^*9i8nAg1Tm`jUo zk2wCAL5cy1RP1V{Ea%PSk(&;hez4xk^We3xn#Q`0W<1laXhH0M5;b%$)VEbjq(nKz| zO-W`nyKT|N;%1HOXp8w7p;Vg{YS#dB0j?*FMipzT^Z19?6r4EwINWXrYNaI3Up#;( zo_QRv{q#*tOiv>e7)G(Dqo=sgG+N>sUCEVTse0hGPa>Y9hLsJqQW~odRo{>{ z9IlWJ@BH#MLTUh)FP_3k*osP>PTw93j|^b;#1sO~Hcp*6gIo7D(NVidY!-3h@hSW- z|Kbl}M-$1ihG?b(e`px#-A%l6?IWB!a~jV+{{(DKw#n(prgFG7zld6V5SPxKLU1?; zcgTUuPd|t3&K9ixNi@Y}(1-Ea6ZqvvxA58EAQaUPzjqKz+Z!m?w=gjY&qZFSVy%~f???)6Wf8U%SV{4ZYe2#d2J3UQmalU z_M#ieC-zXTRT1z7kl2k2JKE)J;(F#iS%0}Vp{R6OHuQANQ{Zs8ku78~GHgRRpF*+S zk`549RP1hT!tZorFP##p1g?i3ZkVcNuw|WHBGf{v*SP2D!o~EIDn~{K8sj+y<|8V^ zpR?UWxsXG#m=y+ew?)@V11=|B=ewdm$bAmidKTbC;JryRmab?FJNo)eBanS24$YJt z9*3~E$&`@2*FM<6wJy4|E%AKfz=#wjxku}^*`8&#*>RIk!y75&OEH993@*tN9(LW# zgl1*WHaamWEN;dW#uF#w4Rw47+Lwyrto+dQq)CxVV#SJjmQ@*%Ad6Leae@*@y$>4l^UQa6zSVtl z3ZD&L7xOyi8Cty#)n*6zSu7lK9QemDS^^gE@0_dB0^jKf7{R$%uQwz&;=SU1<##ze z9=H@$G^j{M;JI)P*==UK9E+@c@m?{i=4 zm%yOU0#9oT^-=|j$1lJO&(-Jg%6M@s&HHb*{qY((M>u8#=*a%#-wWVu57v_9(nK7eOl4rct(qxRd*Wx(vGh7QzV4nc8>Eg)aaa{NvWD9a$^JmP> zd0hUSbCLh%yyP>;bK>|C;NsjQON^i4F>9J8T^-$a=htflK{7diYKHN<_Fa{^PvU1- zT;^DCZu2|M@i0L#o;$l_*d54XFh9@FSh;Cp<$*zv37Jo?RxnfKj5HuS<1= zn?VjX5o|vfU9rZrnKVtAZ{`BY3+A?(E)k@%`TQPfLnEVrLcew=DT`GRv*w_ZGMh@J z#A$&K1{YYKB>Oz6)4}AQDHiuNWQ_3m{PPe|WVMs}Uc516ZBYcAVtsnse1Q46#=Zq5 zH-W`++0<9DIZ!BN5DxbX<3;NZft~=ma+Qc9Hwz zA0V}(Ar{*c${dkh+U0@V*NEe`XT?hw4xODaeDy0Tiqj7xUJ73441O4dhwb8T~ z_@l>8p;)Tm?#(Uy_$P0nZg=9|ViZq3a|z%1?XPkv!QFcc*viE5E!8gDD72LV{0BU#$7al!><+V8ahMkx``wZUr#oI6p4Mz@5;@Q&?*j;opt6?LR z!M&volqyX$+C8`_5Z>0&ZFiAKXGJrG)hVsf5Qh&sDKJPxw|0<;6%ZL5MaAf$Z)gUa zYj=gxTBA#g%_;XbnarTl>fz*(S$zJ*FCz7yUPrl9mi}-$h7e#?y96azEukBR6LlsQ zq!&Bwl6>=_E7Z#WA5-rEY}s|4Xa47&dv4Azr_POTbOUGr1V97^1O}0ms6bg%ASu;Y zrah)+B$w>clxE5`o~fEDmxIPrwr0vMNp`txQ=$?{1!e*uLO0NjM#tCjy?!~}ob#Rf z)_IRJx9e5EaPJBG?7j9{|N7UzwEE85$|N(k3GC&oTD!L+I>GdsUG1zDboPnI)ftS0 z2>JHrj#2<x=p`Kt61ym;*GoVf?*R| zMi9A;W&_NfQC)AoaYu2o58Bq`*o-dU3n{p~Z6IBxR@3r>Rbw5NOC>GdxUB81bt^yH zCIB}PURN6rQo4Kht^_EXPG}qFv(dE%5y@oK#vSl@Z*Rv+Udr1Ad_CK!F$fqM%C=Zr zyuxnKvM#Xd$ZS@BShP%HzF092$@3aRROQ&`B?mcx|9qV+1@rITQ5E2<;@OuWz*Bf;!b#{YM zD-B?Nz+%M#0-1*`0gG#ED{p!SQJO1|u?t7lXw}tf!*YpQnKvaa#$56cbnKf*u?b>_ zJvHkz;>hfm=S7WP-{}JMlCAJN$YAJkIIvHaJyS=X6I8!VI4dg|B#_1M<4m)kx9Vj5 zWbK(rIaSYkdh&nD@7^yJwB`d?pHr2FG4w9SCLRc|KeZ$fgY@s6p6%5Z-6}#K#FIM za}N`M>*Nb6Il&T6J9duE7&bKJtlSU6vFM@TKygA6=t6smU2TKKQuI4S-gtKwv*de{};g2g2%IM7t*A*JLno7hqlbzB_FT9|4 zF8zTtbhR)ytKR^dKxDuAAAVDv%20!@WbUR$xb*>2bO z6CM?Fl+h~`&(=%bPVg0jj#d@#P4zZJlQVNXtI zq(@#@(EU3X^x&H}%~2oA#r5bTG3CY%>CCZ{#w;U9raRhO?_Rb*f==5Sw6$I6Xyevx zjXgwZ2|#06dppbOwRRN=_0;ILEU-Waw9pSIJ(JSMKXqDRXQb93s`-UkrK3r`@Z=eV z4xdnTBB?Wz$MsyLulL@%qM!TB3p)GEDFtG#e&utY)PMT7e`G-ZPk#JUDp#c4d`F#T zRpIQUo_+bldj0)(_2i>7`t@J?IRhJVUQSUB^~{lRJ^E}%6Z6M)^ZJSw4o_;~(70;d z2|e}9ht1y{MY8IL0?JH{G`}#XTX$~g&DSnyV)}?CC&tunj8v))b^F>~Z7nXVkYCs3 zcdkhNh*Hy4^B?=wn!I6CYfBHbv9h68zyFSkb-GqZboJ`{Ds8PR{ra@R>9~r!n_6C3 zQN2}DDt%c4C#GH?rrS%mH3Xpsx_KAw6ks{9dwMVl&b30 z5sBZ{#?Fp5*6+xnnLuL9%BEVKrUe0X!fPWZAxH0D_<`#6rj=^a;e5H~>kf6%Co7c{ z0nog^sQl`(>7um;T?wsC1yrq+Y@V&J+*hSu^vk+>1UxXrVL^|ZJqHJz+pG@+vDxWFPtXR2pOn_jnN3D8cnry3=(eT0<>uwA9% zz7}E{+g_>I9%+dQz}zp+v^6UwwY3d$2jzyNJDqDp3yilcGk5;zguqWMDwNJsGq z$s#(sBhpR2gDR3S70V^%#%DC>J93Av#;lAArk^jO-02Ujq>l@MO-u(o0vJFN_Pb;n zEzFT}R?ZhtIO1Bui)(H*VYEUT@Pr=f@#7Dfusr)8`ahIU4ZObX?=W=nSpdNm@WsIa zN7xH(U-eu|xVgcY@Tu6Nuo>J7UHZ5NukQ*qR=mEdKpI2#9s-?54S<^iz*>jdJ6|MCG6u8HG$u3r_!ykee{{Kn7m8DOk4 z{94!M7Sa-24{-=S7}vdyFZ<}r+MR!1_eU{}VlZ`he*l?Z#YRJoI$b?EmDHg?LnkM~ ziiPO*n^3hs(yhu+@0Gf`-yEtPMAMtBAM6+hJ$EZ74S0@v!HAsXw2GSzh16Fpo-v<` zPKD)S$#m<8KUwF*j`(t1HwkX$CF9Bej0NKca}S|^VoSz}!~xqh6)X+9A=8|Nb=Gbw z9_{K=pL$-WAAeM_@ncGj0C|IiKk87e(Qd0nRZY96?#T5UfdRV1!VISk->7XI(N>W} zTiI*~U@AU7wmC>?YPqaLI_=N3k-who`FNf+9ibZ}F&Dlt|8oyKL*^eZd>ZB!pJCqd z#o7fwp$jv*aLly>Jy@Sf>Jt|DEZ`<{g=4hQ3EQ9BoP#EEP3AjY;vl5#gL15Ibo2-w z{A2iCG#O{kZ-6d@i+xazvBypjXK>s|j4FqYRj_bRtThIJWBJd7^31s16P-GXdp;=0 zz0h$Spe;xlS&;UqbP%vj!ZDX5AJC|0f8PsV%3aIv6E7B_RBW*)i||U%-zWu2g(R54GCR(rf|S1~IVBz|X|{ zivM=gP~#kEl68$|GbUO`AmIf=B!11vVSvzrA;4#nqs?G6({9DCk$T^4y25#3B~zZr zDtCK;CkXD>Y@nO%hO(Kkb%vvMcx}4?`B%|cP+cBOD57eGaR_M0Mqrt=zCxq0=;Fpk z0pp>(T~TNl)$ZE1MuEN_e)u6dot8?~zW&{R`YTl{BR#lt&DcXvJ$78<6IsPVQI&Su zdjH~Oojx_ITs*9DF|Yf}cQrN{F^7j1zDmZ_@6rCfYh8m@>45T@tDSO7k3R9J>fM%V zwV^J(e^KvUxvXR~p)1$kQIkdly^(e+E!|%(srL0BNs)oB-@2`vcULsMFr}L}mvnoj zsCKoX$=rm7PG1OoR(bVsYXiCFiSAhru&276+=!YzjXaqWT-`H~B z{L5GM{U5%sU@ohrC4@E6EvOj1xL&TQ9gXP0`noROSyU(&Qg;~E{GmCO$`xa>9AwcD zI)`xr(*f&OZ?qJOMD?K;p4Uq+epFMr34QwI7u9GF^wy=D`uf+tDK$EF-@#ExuyWQ* zTiVzzSUX*Wk}<$s^UCIiY4l8t<&=x0b!_~wywE_UKv4BjP~({?tuNiT&WcWdp!09O zWkQ&-ARR?K6X7N(T;JL<15)j^6-$J)viv{~R#t5u;&AoRcW^ufLaw4{sZ}ecr4#Zt ztdRm;ko+<)F3T5++@a<<7}Qp8OJ3B~@`HwTuH)K6VOQv700vIaPHWIXL_V+ig+nG% z2qhiID;#pH6A!>(9`Vy|SYDuOf2&o>wxJYDWpfbP9BXpI%Hsx`E0$fND-DRpu+vvR zgd^3p0E+bvz#R&E2K)iej8A1XLT9hlGFC(;mC@4b1I6Pwm{c^>EgJ~;45u=a9kXmy zeNeWt!BEgq6x{%7ucL7*C9sT<8P<+Awzrg}RdTaqEK6ELUH{x$0K%4ol3{(`2f`2UPq&Wr;+Cx zpbLABl0M2=R@YWFJw0U(Y_HW<$c?Jo9?6TrE_Kz0A%?D#*!a3uN;Vjx6+szXSM_>J z(P+ZJP{bL@W|H9mnDY8PYlHza1*R44;?Xn$n5Q#i>b41Z{LDOo3KSal&UxpQHMX zfAIG;Hxnw^)*Jj|NI~RTHP)s3!b*N3%c~~q9UoG9)IGH!lR+4$Ffqht46h_bTVTJuwVP)=XGQ* zqwCjhn)cM=ht4VHb;Q~qpE|7c#I%ChoVF|P>DJwQ8jhmMj7s|8r%%eAj;qVM#X%Z6 z8lOn%*(Z-E70+s6Vp5q*N{0^38<12h)JziwFwxd*z*RPzu~J(!-Ml@|ST84ze@Y+! z#4Eb}{xyC2BQF?x;^O;PRVkDd9W^wJNx8Wh73w`{r=;}wxS}*UDA!Cov|266?YC9m zEveaab^PH;-QO*#8}Dl@G*YMEva)!BJiuet5q?NK>T6hJCv&Pa>Y7HcG!)j>UP0Gx z-ZNJ3)5qsEb#h+44r{WfW~VG~6xHQx*HtVt&(gZSdQH!ao>3^&RHMDC$xKLtRzovW zQg5`U;hW$`9E><)gwDrl)e8SHEa&}&;dw;4oZd})s&p)acKk*Bih@@4iNtdqP(87_V9zFRH z)v`5pV-ZE%woV@E>gJE$vxW$*Vpp-=NWrG3soXJLxw@`YoN|e{IsNOan<{NGj}b{u z>fW6-z4oKKY9K1?tSc8!YNJ+`=k;}eaYJ{m-PX4Q2`wExu4ZeX_uhR+fxt+OVqRmp zG2LFeqm|7ab$dhIzH&|Hrw%I=L$lLSF~61IHdnTFHR7&3rK zje1M1h2z@W-cWvfTdhV#yDKZI!X9WhtQ##!DVR^)MpNvu_yEgGi`rRVGCPlN4eMq^ zw>xKOQ& z>fvC-XY7tfwuiHp&CeXUYBo3*ENYT{REh*FsDxR55L{A?LbC-D{{-aLKr9%tL=fXc z@J<2;>MlTpMt%bnz$x~6ARb~b3rJ!406vXmU>4%jTmV2%t3?3mch@~&h!9u;+Av{qiZ0Abb^{Nf!Tc0+#nrPfeMfB?#v} znD4O&38R3OX49m|4Mi;J1#67+4F^6mi}^@m2fqQI59SvB3HE>_J7a=$4PYXmO^lAKoAgq#TX-!oPU>k{b*>Z;NnW~M(7+AKZ&}Z< z(jcs$W0pdfuHV(5(^L=0XNahM*ch0^#ymfgn9X)eNvgE4N33h^g;L^r{l`EBehANp z{eIIjSP@Gl)#*BFCgxNb#X;K)q;fiv(-|n!ZRzQZ ztLGL5diHQgbE%l3OyAK!5zp^}nePR(SdZvRairJtBVFBWsO`dl9GWlBqP32hE&6)` zWY<*eG?Yul4Xnq17#qiL?HFKdxWZ^)yKhSDx`6Lg7*7vI<0FEFonLj)jD2s;HK06Cgi1+#H z)W1Kj8!)O`t=QVf{!r<&wY6pQjQi&^%x#j*6i0JB<~zS<4q#gVG-0`u_~e|}jPQP` zF!KeQgH|GX@2oA@p|nckxWu4bn_rIXAD1Ro#2r-O+1fQtHSQ~II1ac2HiGNmo&mWG z42<}V46$?AD)ux$Y_1{52^d5iXfECiD9i?!Q`Q#JN5?rBnm)Jh-m&Zml-y>uYNa8R zqOr)w#<)qpo|7zfJQ3Dt5V4B`p$Ev~0;AU9qOTzj7^C2j9jXaaOr0_hG!luaTB}<& zrPcAy0;c`QjbLyh)YU8!A`prWf%S-+D{m z{^8piAJ5q&g2GO@kN%c&8&`YfivIjBzoYN{;BCt;L=loMm25IujcX{OP_VDg3V|wq+9pCZ%#DXG1DXP!Zs%w?WXQ%OTF{gEST_udE20z zz?z>)g85>?{Ak!X);YtBr#U6AjV%BJT^0~FHX8JRa+I0|-JbG0WqGBh`YSsYd_lF2 zh2v_1)CL?YO@jIN>Raze>!JUs()9HiS??5nY`cpr6^So}~ zxv%VW#+Xa_LS47+uG@wd4N)RXrh?3E$c6JLYS4*mtYYN9BLYtsesvEeG ziYHavD=HfEyUZxe_0!D-TDfO*cQzmvsu=|+-i~X5I|d1K2o??*g?h29Y|b|X0s86= z(3V5I({It->N)ZvXhJmoFhbLbZbyZD*-EdtzBEGA?T&SmV_uI>&X{eWd;ma? z7a4^TptWfm`59asFo171HYYGJ=avjlvtGAM6_{F30qt(@C_Of2z*;&Hx6P0;Op+uR z?L;)8ZMrjMQW_hZu!O+GM8?<{cw4o4RlUy07+VPX!wy9+j!iX@jHpo~n@08iP*Y>m z21ae|Z5hDc8~A!oWLVm*hJlP^Y|)g7CTLCERy4vs#ReKw*O-kRMd*IprLjUx<$A?3 zHFRqW251{SP>9T}0)jml2nDTt6DR5mzxIpD#UlE~x4*4>OY61?O-zm%8x2i7GGina zpu;nkIAkOS*xZIVRzp|Q6Lb2?Km2>jrBeFq@BWRx_ubbOj7C+hHB6glH0;{?#PL+G zt9q}lOf;id2rZ7bLUa`GHS`aE^K-g=^SWO9-jX>04yAY9hB@QtYT(2U`)vh7uEw&y zBT}qZ)EYRNojjyMamRqb$IqNnwNuyqwZ4u|&FILnIW2EiwRrWuTJ5er{mGZ~$&bCD z+4)I%-bmF3BJMG5?G$zW?us>o_{c{;tWSRGWi8AkmCKE^w6mi(zI#!B@wFc)Ou#l8 z>DciFec@L=re_{Mt#mY_POGBjy)8AJwEp1#{;F=@yrqx5{Gxv5XMf7H=K$wgMMT>- zHFJ1g-}}yM3VXh041pu(fL<_QQZu>9Bt1xBig{5N~XEH0ZgicZSMN&1rIB zQpvIJYiF;jY51*XVST1UUp=05`UU>XT-TGKn*RL)s6Uk}R^R&6Kr#mYf zT9|rBUMTLb+gQxXD_0+E>egyO=d!2u@^e3L4Kr?Bxu9{EEMi;ZljCYtedo>D_eaP| z!rmnbfG#Eb+iS1=NT<&n*O?=;`ohnBR=M1?R+qQM@e74LMI$)_GmafSrPZCD=(_s! z6Gydh@`NtDdRdirMd8T6+KXSjeqF^uT=Po}-Q8W(bFUoNU{FyzP&NCGjjdN}N~B`O znxR{#ssXj@Xz>IzkqRg_s^eB`?cPllt5tpS$&;onad>`QAASC;jy`-;PR`YfFFvOC z-oC3++10Q9ozLk+EG_TZ(|YisM>O5{^vj?9tnJ)qK|QmI5kj|avqz>%kOEb9i4>979uzv<*d56Q~2f&p!>uM6)Hh7&>Q z{kx0W+*q|Blzjldu?LVd8fbTOLvMfo+m_IUmC3%beD{WxBjSgUw1HuQtiamJvL%|> z&j3z}yL%Qm;ZNtwC1WbV#xUbKf?@Z-&PDRox|R0O=o_lo85qz_a9*oa%nu-&4KQz| zG$h+<4NLOHDd%^Bwth)Cu!dlMO-;_|{{1DpUiKS&i|OfU6S-%6Onb(0%-3fBBFKP+ z0B8Vfx#KuWMq-u#WS>j~!j=H!+R zh!;@JHls!Ys4^OIV$B^Oo?dm#)chmxGG`iq_ z!t?_palfPt-*iBk+$f-agDRDTu{gPQ3&Pk}15!E}SG7^MZs7sbdX&Wg1c<>XJep%4Sk`2ran4++Ac+UaI!MTwb;KhC7`*96?k3Vhk9lDgn zDzMPeZmz?i2Ym8H&bbyV73}&V+QFgk-?G;o1g*?LSY>qi4Fe_)5mFzRALm+071}>O zkcSTpV+no`^NmC!&&A?I{Gx!X(GY@#)am!E5`j`a08S(Y!ZEzBq%$e1`IAJD{a0$gNG z@ISyT&j3ILFajn|DCD#243z2mT1Uj$tkF)brKb7{Qr2a9sbOn&04p9nRZn%DIx?#d zKK~O+PEDxM3Fy5W_jU8`x*Am~7^3Pr19{PyNNCdltAjSNH5~9vyBZq>$jUWxZTNev zALare1nUddA8Z?ZZDby>h4{RTHAzY@>}qpoTbey7hc1f)N5jTY0i-dy1Dy?z^zuSj zugnJYaE`9@ElcDBM&bh*gE`(hTiRV z48Zlp?72h77{UOnfO*6PwJ!RvQ6rNu*P;<$w+sRj05#7SyTu$}4f8W=pP$XXU{4Un zhx%qfAprNtG`k0GK$GKRKW54L@kGLyTFf=BnQLdvx#mK-WHy7uKEDHJp~QE$kk{<& ztn&F?`wY*Ixd~v+Sf#UQoB50{jsxx#q|TW)@Zw@IT(&`k2$Bb;{RI6P8Z$<3ntJd7 zb^i4qquE>>n|OEM0P*lc;izqV7*V_Mj!#PkZO2$*m_glX(P}hKXl+*O>rXa}5a)vx z14_xDv-tpUVDK@3{0(EqP3;u+OhB6Nd0|}GteLp>zz{p_ftLDpwySIFW_)?5bRuLh zF^)Vqvb2%s!S==Zdm{GPIJVRueXq z|NId-rWC2ysaSvo4Uq9-lc(H^%og28*m&7oF!)_`()P0eWD@{cm>)PLwvccrf*}J0 zm|O8wLhU-;3DcryL3h|Pbh}ip+qDgBf_Cj305!E*Ri&4=`h@@hAOJ~3K~zFT)iT{> zU=W6sjAC%Rh62OPU=zgvSLxtpz-`AU+gs~Ho$p-IotvvF)uDjq)op6-76^S&34s- z8iX=qsg$(?4~+csG}gGk0a8ZRQo`}O{P3*X?Sf@*Yjrw|cuHrImR&cRf4{9(3mrUI ztN>MH;t;(A(5NctI>z)%Ws*wMr7lcIB)a1G^kSS294El_xol2f`O24ccrK}Lf8$&F z#$UgtcqnHM(!$Jyc6atHiO}daEf`LwVarw&aQaqOha*AIL)&S9e00SC3@6elO{8O* znI6;TcHYj7P7?My&3wg)84fKg#(n|q83&ay%%&6a+_=sjKc%&eHRX4QYLp8WR69;s z(^Cm8oJ{M9M;1(QKNLx6Hj`7eUsqwTtv~zo?`djcPOj6|Kl^9DquC>2z4W0+^y|Nt zR+oPB-H3kg_x_zOzJE=QJJ6F)KB}Mp`Jd6*hmR-}=&4aH>ek{N{a^q7PgJZ_G;?@H zU-`-x^u&?FYPTy|+uc+;64%7+tnO|$^{@ZcAF4YD=%tr`R;Nx*Yj&QFu5I=AlIk-* z%bwc(h{BXDMk3aYv>OO&tpm6!;q)br;loKVMgaK-q6l6g3f*he5%uvwyP@Dy4KOL-P_a7wxjp1E~?V+ z==!x41qZIr)UGr%>h`s~ylfp*|I2^<8=X4+xK1CP){&_(edOg2>%x`W>JI~|HUrw& zLxef3R%4*axtuEfqAE4A*07Ke9uDczGbi-+yYHx2S=Gec6I8@0-iLWN)aLevUVY;Y zZSC%wX4=T<>WRlrX>D~!FyhcJaa_k(5$xA=nPR_Z{W8z^BJeHb^IE)dM-Lx8qK8hM z73{}v{nfWs+|Embo(a|0nmt7V5%s%6EwASF)Y*p=PETmPP|?w2(|YQq=M);B)-QeO z^ZMgIdtF!GyP!{g?q$97fz#^89sSln{tf-hfAr6#0`0X!2EOC$=SwBK9(<1vKKYEk z`17CFBd6)cHm|+iJ?-U7dg`g?G@cCW?9{xb(Bzn!P$|&T6HjM#`_j5%VNVO0Iduz^ z+`D@0;d81jZ>!V@sNAM3tEEmGC%LU^HK0^tLaQsgwm+bc)E$zU#Sa*m@HFGnZ8mgs z@vg32T~}$xQKUE0!c0#2y|SvM9sTHsuc_ats8}uQ!ufZ#vAL(yXV0oqttsk7RoL6n z;^GzU?(XPY-}V>WC4GS7@uIQS{ zv&6R|xiswarhz?g02zEH{AGXFVy}(v3m{{^TbfKzN z(1I~u2>|@{`12ZOz`vY$%!r4dk)5d z{}H&h@ejDh9^Y&3`S)X)e*#6A2qD`mqfyTXspBxE=-xhV+5TkGXL19oaxdH;^M`nW zdBHwQ(vKJM5an0s&k{JXXX4`l)KT_H0E}eAL14@=h)eJhuvvVD_u&6rEw$H8$|sN?)@PC1VrIE_%EM1hpr-@fxpkZ2t|T+z4)R?dvO28)bF8b zM&SPcb)@5-jCqFX9}bMY86O4JMs8>bb9h&i6Io48=5+4K=QTS&rupe~J zsE(g|Muk>i%j8ML}7!0tAqd=voP?wl2Y?^xYT17FB zl2^a9&FpP-Uu-^=w5k*4FwN2MLjZ;jY#XJgtgC}(%9`W8f&o97A0g>mt|>Dg(Q_Yv zPN{`6YB))`gNTL$*Y+w?fU1V{ugqP1OozjS#t~Gdfjv zj2)6ARBNE88w{ybC~IsCEoi^gk2Qwx&6=}4CWO{l!%AD3GsF(Cwuqy7FZK%CPK?7E zrqcmca`;+2U*<9KH1D>ba9XT-g-Z(u{1 zn;a9H$oK?J@Gs$S0(86}XyHWeehXG=H+c|bHVwd_F4re~`ObkM{1KlzMnLE}#w=ja znK;Hg8ICMS;)E;&3>1SJfv*WrwQmj(UE^=;8JYbH#Hg~l^I2}_z_=R0uh%m$2v!0E zM*T5D^g#mgj!&D6hA5RokbS7pFkpkk=@=M{BBefb#$vYt)#cuy;GvB|_GK`l)C}jN zuXisks@d#nW2RhI7K{Ng$jZv5{^K8hO@|K88d5!$ z&1s_uV3t&)0V_r}A;Y171;}J{5EiFJDj5k3HRH=dfrd&J4V?xyG-%VMBAG@XnT=Vw zQ_p~IfWojxmzJSr;V669%@;L2Ic-1~P&mLvuZI9)T5F{>p{-LY*X&t>TyqS9cSNx3 z&4w)uKvIHlo{`ag(+M-=JR_bnlMyGDcE7cz-&GS(gUttn-tLSPjr;Z1WCrLWM;4V1 zG&od^YSl6%I1#juhH4Gf+cthsXh6-8-~52*$pWBuy-;YFo9U{v)6WyLt&4Kpr`RV*4(vr$!Ma!!SMLz5Fz2Ken*_i!l1LXe` z#4$zOwrOQEI8no1&GbfsfQvzYEwzIIRcOO)LgWOj=mEtIKy@8D!}<=7IdGnzS*^BO zRsuG6^th@34c&}RpLj%94=q|y^YGE5x^m@~u}M3Fjy~{#Gjb62h8Y(e8YoB*JTsA1 zVY8)67ZCvu=&{p>^s8U`taW#-?v%BVXds^_4b7&trdDoW~Q{gv#IkJ z-&cJvqo4ZBe&)#-ZL*jm?KzOGKaVr7rXv79nf(+YYK!7@(uU7a~q*5zxf zdg#ooiL&n&ihA$Lib~a*H8+_*d|1otH?+F4p>vO()#>9W)IWN}7*7D%%-d?Wqupvv zk3IId9^75k*4ogD0^G^jtUmD*FX_@d?`mc3nu_(J($N=m zc>IuN7N!-Bx>}?YkQdSX++mfA+Aoc<(4MrMnly&dMvUM#(myW%j01(H> z_F^2WeSHvqpA0AU>T9r)&MAK6gmwyfUA?ks>zKqvyEWAIZdHdSC)8=>wRHcswzp5n zi$_#x_jKaKNhvX*tvVVjGkW6DCsfYYlyc&#l>(|1n{u0;<|Yp*-(I%>9iIqMdK^Ud z94F|i+NkNBOP95>wqpVCy`7>q*4OpdZ(Otl#_Ha-03EQ)-eg9*rGj-SOoSc%@Vjp- zn#%~O*~ND+tF*SGbTDHjCY1fR+mxjDw0P}(Ev>Am*{Ldm{#?NCe2cGv05XA^0{9?Z zRf{EEdG)+1g|W6azSC2wP%@@Li;{Y}b|wkh~x+OKLbtNNFZQQBp#>KZRvwOeC z{_1Pl;a8w*va-CU^^Fa)?Pv#5IzAT2m_I>jzA;rBb*;7PmYAVzyIfnh?=|WhLm9lA z@^hTVj-SexL#Y*sP3vmfwUXLYI$>qoBvJt_@KNv)@Gl6+7(;-JTox8IU0M6~J}VPK zyCxh~48~9*Y5pm|3VSIP1<(WHX_6srCDKVt7-V21QY{dPm@X6NN9PcaWhzCW(J+l3 zf_K=(>_zNzbWtO?piGItcJAn5(=J0_gaj(S7k{^;lIz%WoEx99#u|-Q#QZPH2YI%s zeIScK4SS7G!|!qYW8sYX+?3k!_h8sB`v7<&VaXWqUcfJ?%?K^?Kfo7$3@@Y)0N=bo z-#>;2BRN5@2J<_Ob-d5+An4(hN~et>Ly{;Gf+dcIQrkeKC?JyoF@B;IMu43kZ9U3a z0GZL^G#yJ{0GYTUmmRlpz^zB4jsP89SL_AHH!l&Ui-7_@!-oKh_mi+E@I!m7Qmb1q zir-Em%#Q>7z!qN<-`#p%s3h$3*70;OwC4}ooon52K?Z;)<{TOvlc|DeFhP~KM3%c zFFbo*?AZoB(0z{>AP9hf`1yWJg|-f3wO_8rakw93UKmHt&EL2mj?0U`Tl|LXfqWJh z@8P|?&-{Wu35xv^wtc;$gKK3y9t72q2tw%o{N)&Y&vBRwy?RCQc+}P(V}~C~*%*yu zScj}*Du1{x^Qi+g_VIOGxi01)=V9LfDdt%s3_j}nN!LMZS08)jF&#Z|MiY~ds@)^0 z6}I4?vVZJhYtYy7UQvnJir)Ug4>j<7IU5eh7{c5-7?*?p{jp-4(DaiL3*h}wzR1h= zwRY2hyn3Jb)~|@+-Z=)W7uFiz^E`NevsJhIZZtdANx0FbSwlpJ$I?17m(!_pC#?b6 z)a0a6*{o8zNoCX1a+FY;LfBA9V*%HyWsV#=rrA^H6nSVvH(&dn2E=KDuCe|}CJ^&8 zA6p&&S{ZZ3kp;vYMT*5SAiN<;iyeoqp)wK#pdZ%^IEL*75TR;gnY}&`x02{Yr?1BY zEq(csl+NXPN{0dedLq$;s`FGr=A{Kh{_qt6X{sp_t}B_x^mnXwg=)1U=XE@BzOP*lH+@@`#n)qNznPz)$u;?uaE5KgL3!&)}Ode^@)LH-G*3Hi7kq zbQITquqUu~t)a!fh&$`7T&|ei0nFm>yeuhhC7C2$(W~|CIk7$RB~vrgHb)`NU~5J~eqxgx*?7m0`>8z2`C@Wg@AsiY9i zhV@}VoJWBXb)9|*6E_TOMLCG+q|haz(=`VG5QD$-#j$W?eIU#SLbxcLNR0Wg?{B1B zAOpdR&+x^@7^7T@j1}V2`$BnMG^j!$Z=a_&m<@yM2_eG;ySI($<%@a6Q%OUlTWyTDPg8EAjWZlthSxNZOsqPhNW|Yb z3nhdIL+W>WMo~tus$NI4Ct++mgh%PV!Wfd7bE9D!vwWG>rBLc4+Q=7;Da4qNrD9C; zdw$2nnVDJb?(P{tWmMgL8ad@8LZ6`H>mSwIEh{-C7-MnJsST|&980n$p6i-!8W{}0 z5^G>!wdWWP+7QQ7E>?A9VP2J5S#&c)Um)NB@_6bX`W*1&g;~@!ji4cGBE3#Z^o64o8T4ZCOS^$ zV8x>LtbXbfAJJ?orgSu>cr2k*BBF_GK)r57t~a!9sp-@}4Y&2PME zP6js8b{Jts$O{U z!}{WvenM`$s78ID)Z~PAHt#7KNhlQ^Q+=bU%FcgNq0!R^pMFLsjyW=G(=h#>d9A zv{KRS+Z`R7IH6lhOWG;!DLod`(R4&lo;{`Wm#^x=rOR@YUA_GIpU~Z{x*lA!R#Yq3^}_Q{=*+_pSwIRCjjs z-7PI|m9@EB*4?|eH0(9BvUyii@kzDob1GDKb?N#gRrfk7l?n7Is|oANfB(x0LH>zxILb+5zUSz0ReNPwP`jL9=hA|Qw)pH7`a;g}!?U)+fz7}ua)5`j` zjV(b&tJk$e#oE116}O8Dc~OmmUH#7g{3RVeoY8mw`l`PE=dW35sEHLjw7ehb=|@j% z``#53bL~eb_3>vusHww`DAWn+tN-PznwpxF7YOQ8AN`~dY8^Jlbob(#WlPafd*s|< zz4Xbab?(t)21qB86Us!!)aZA0XJyUWi*IbLSlJOeJ74-h1*>INg)EYCg#}!Y-&7L1xm@^3i_Wj8*MA)ku#ynkk{i?3N{+3+Il!pG^L@7$x3s{oF z#GCsvZBLaQZLSTJ8_QZ?PND_0qEh!;ruWQYbu2MMu(rCiV$Nfy(IQ_cT-QOnsh;C! zk%!%mb^aqcfqw?G$r=?T(Cw2YCSc*CS4iTfW8Jg;pmlF|*Y+{iFnbJsGRcxU8n0o> zmony;`3w|*5&SZroe!G`8G?8s?rW*h^rcN1O4v&2A;4Y0AI{P4wrr0AB;@zT0^+_%zJ}vgPKcisPbMTc zXn`55D9Vg$dwDCda$P@QK$8pGO%MS?5ZMI8dGT=p0SN2}JVKPAz*sfr26RE$yr2mK z!4)sS3D{6vBN^Fnl2RGRd`kihlF1y4vj0>nZDQ}Rp161Xb^t!cmh0fWfPKst^yUEb z@y{xyvH?7t7k`p#$LHaG0jD??K@5P7fhGf=9mMq!w@{M9eQ?cI1rne^Rn#g*80$zB zz|Jpe^0GPeQ;tn1V>;^=+gCxjdhxu$LfEL&T%pb0UJ&!~$f9HFSh5yXYTnpDo zi64Js4&VdQWD6jSHH8hK)1xs=7>`cZz5w^o0;D>EYX{&Qpap1b3cm{=zAp2SQfinu z_<;PKvEqfVz{?+d&-QLAYq&O^A7jT_;CWDq!;AYu&Vc8Lz&L#SMA&D+@P7WzxNuCq z=Xr7-&Ux^~@%&UtVQ|5|+}h$Ym*o>K9M=}Z~(iaj2d z9iZZVIUr0e6663_e4dWONJ#)LF(#;GQ7Ov2X3UXAFhG1XQYsnIFfi1^4agBLVO;68jYvr!ozNetE zN!jO!C2MMR+e#>53`_0{JHqpAHvBl5X9;l3oMQeNh+%WAZ_H!X622;N*zBpJ+LR-2 z(AS3&J$>;=M2}_$nu-ziv`s6GGEBfO7-}Pzy8}-EQ3#5diO6Rp$QvUihe4f<2lc6A zAuV0)E8h>AUlR@l6b!(2LMJw%K%X_(5OEp0tHg#}Cu}LI%W9RX?FZ}|bXo)$=?;e4 z&F8Jc$ZW9T0@x#eu2<>}+8GFtHj)bJ$k|8L^d?nlc?!ERwVSZ0Lh5;8)jAz@(KZ}8 zst;UC_%K(!VMk*zPveo8I-`;5m5O)9R}=sMAOJ~3K~$Qhy!tIP(T65(-)_|nC$T0q zBg^erd`yXDo90dX322*m0DvAihu>U~{e<}fGs=H9z9>8M2V1~>GN-_2u&F#lzW5!s z0R|lLI>{UC5YM0EU;~&3Hcl{MVYuxlV>k}>-PQz>Mf(64@jT!m06xcnm5Dvz`dO!Z zZ*i=*Z>vIdcK2D#*bD$KY%ljjg3XTay4u><)L1TS*N^RIzlOQWc{t|G{Jb?d#AXDo zq^eoBvY~^8#+wF+h}qzI7L)*YK#0H7_7;&c>M~OaK!TxdCJZuco_4oqpa6j*$H7n= z9o#6aKJw2^axp~k>3_S}T0|J#V7R?x&iG>K&utQG+ z2O(g;-6$C{cz$kOkmVPMXF{U=Nog0*6?Y{8ms9MG~uP~b+2ctPc|DODO34M#x} zM=w+g%4Np2xl>XkLDzt$(CP7o{9!0Hd_bVyP%4`=W6owk(h*IBQaP{O#H3n?6elxE z=Eha7H>})^Hm=1I>=?3W(#F=F#>O&AMbRICV(Y5jtZEbrt6qWTI zwA(dSgd6b}5lj#$sL`maYNetCdJChTx`BX7H8yHbjh!7$jHOg*BPN4QgRFrVl^=l+r1TO+fElT-2>4GSER2kfeR_2hJVQi_blx zL&uJ)*{f?~YgfPbfBuo0jew>n=dE1rg{L3YFZ}eUH8~rT7iwu`WnKT~kN!mKn*kHc z4h)0(r7wI=FMjlt((S6=dh@dWpRfImR=1lbZV96x3Sev{zI_WyF@{CTB4d7bkcEBr z(Z}`dhhEXbY*J^2XB8UK1+J_{x~nHUDZPJdLyi2N!eJT{jMS_l`W;fYQB`$Nk|R3% zQMQN3>Of~t9n#ZJoK&yV(B(__ErZr>^mKdCXRQoI6{S0+r zNL`2$aY_d<+Sw4XJb#hTYJjpGWyty zFX)vIKCI~pM~%@y=P%t*DZi)Bed;BJLqX*mJ?)en(<6z5T%A9ERlooHf2hO9PUxdA zzN`;Caae7KY+zRtDOZv3P-`0-8qbdF15ch&+4L!r`pJ*IqDEn)SI=Ly5^XjVUaTYL z8`_7I7&e~oj9hz56|0Xna;4* zTSm91l!AZ@jV|ml05&gvMv(r}rOQesGs1tMEho`N373;F!4(s0Dl1}wDRnbtF?_3h?m=~{I^#clYJCaGo(!ibazh09FsBIe13Go= zxKM?l(N{73OMaC3Mq}6Y<)b1kKI?{!=-qkaYeMnQ2)4s-Fv!ms;ZN2g8 z1(mjoatDr9?=Rak-=tjI39D3ZYp2rG?82PxKiJUj)|&3$yDb7~<{-@lUe_3aC9SuVfU0b}Sdv|VV<<>35BXL!`lwl*9W19aa7z}uTF97g`FF+|f zEDLn!-h1z|y3K)BSC(xrH0DmTu0g-4zx=bmR01J=x*U}&I)DBh>i~S`)-6pY$93Vt zn+jihSB+}J93i@tGViWke$ToMbw_mtqir2K6ERIh9B{hR;viCH7D!`fdV24|yDF9U z)NZt`Y_VJ^o6Zl(Al4|XklS}|82}tbcPJ=zn>Ag1_ktxy=qy|;(i|eJ%I(|c#-k^N za4tYsEELkGUjB%_{NH~;PAp^r44_M+hAtZnr>J(Sc~zXQTHT~x`?K$;QYvbIwvK@; zZPft-B4N`+A+dy$P2!9Iq+DrOcVN~p>jxGIwvd0k&-DmG0vdGbcO5W6Z%S+cPhpJP zdLz(v0vel3nw}cRnVFqYp;FRBHfN={v(sbhAyLukX?|wL80xS~upLwsP=emUU!h?} zEN0nbnpTj-AIpqc=UqDW;&+h18Vq5dqxDMiW@vhz_#ya!qY)iB{r2XREtHBSWi!4G z3w{DNix&Ys{@L82L)LMNW-N60O(m0-D6H0MmLXQ4Z6$T_c-laz&CM+XFz|QqIRGNi z*g=OVo6Xtr2^1K|MzgJCGA$2=Hw>5kGCX`4QuYKP27)lk+-ojp>@fZg+uz!;@3&gV zA7*^;tv%L(Xc`qZKaJnf-~|=}0Whgn5<>Wi_`UentU*Xh%o|GZ0BpG)02Vsq;SV1K z9Y~e%Iqm`Gv#mc8-UjZ#c7t8qH6VdNgzF_3;u>Iokr3lOfndn?S!6GqV8Hx%O6EZ` zxgQIxoPY&Ku*Jv6#x2O=8FLSe3HMBJ!}|%O$o_Lqo)7lM%I{&gw_Eo6E=j}v^1Fj` zF#j0?uG1<-DTjfr(?mBoZlIF^Pv#?ZEzsxu#5^{3K`I4EvQbtzGB%)tE!bx_aaxGtV2U=Uw4^WkS+Fq5n-De1>Z zB%%-IH2wkc6=TM^8C!nlvy35YhtgQ~ar|%2!~O7eKyEnr9M{P@!S`Uyc@M`s2wWLs z?uXYwfXZixH9C&ZN@Co2aZKb=r~+YK@Zy^IJ^$D1=p*m5mP|_-&@p7yG_eTG7+QEa z=2HWPTA>wm7sm(k?0_`-@_fxPl7q}`d-gCy3sz++7EapsbgK}i0?W+pdT2~xGF4n$QtRJP7{e$d^v~; ztSd`k?3ajQ=UD5^A?5?mkbC6X_@22!=`mk`j)M_jUB&mCTFejI`p{%s&(5Zm2qJrf zJsw(;*cnlxMl3&)7a(p7sylK_*NVCUO2Iv&RrKXKBgFze9m#qcOF7DyMshm?4LZcG zZAC|P^{y)cxWC^>0}=)mA~p{aanqwFh5@*NLC5?gKEMxQZv`L)Fy}rPcYBb4CRT&q zm%>9m^|2S_j4h}>N~y3{)$DZI~B3E(FJrG^jellf*r#^FaVis z+AhdPOMT;tF>+y6{Qv5~S@!=gQ|}ohNq(OBJyluWcU4#W?&+TCaXag09o7H~fB*py zq(IOe@5qZdU63bz(TP-u(tS|ehl}7T6n7^|;z>ANh;cHY2L+NikOT;i#oC#j-Py4_ zroAt3vMQ^xO7VNM8)9vAY)@BJX8!$ap7(ix{&Bc6VaRNr41nJZkOLfsWKd`rh^?L% zNVMXtvej{*xJ(!}>*2rS*BhEWi>1IT8tJ1W~>} zQst;(hZKRVPN!!EW+ve%5eYVU$B8Q*Oa$smNA9hVMZvnM^5_NEd{Acr^#z=>>+}ps z20G5*p79uUS9Vy_pFUZ#blMId7C};Ws zmN!IY@6Z&__T8!}fMm!9x{!xPjZ~bh+IZ|~VJ@T42v}!dZP!;kMF68~W5sx3z>p=x zu?B$?9uHM2#B_RPQu$(Bt#(JCCPymGvvX{BxQr#r5v>BmK+& z@yj+|rI}fM_R}BHD;H->9(-;0P+$7@f213?x0Foe^xWkq_59_>_2j7;$#M0q*M6X{ zeC-GFVp&s0$!21jo1V~r`VYULQ>XHZryX^MzGjyf)cfP_>%qf{d_{Hc>;--Cr$4T< z^EtWWsM4W~i9Gz`FMU>D`P1*3^E5j-sh|DHk85#eQu`2ax(RI^H1)}kKdNtj^SXBS zT&1#8+C6OOgWFX-K9SMN{DLNOag8Dqsx}8g!H}RQ{fH56Dj7g;=jJTRUfT~uruK)1mzp{h)nP)ERCqD5}ojR4( z>`YEAudcmTMd`_m{_KyxBR|AGK;|~sTn84I30XFV&6|CK3Lp#{+Z4lNoxQlM+;Ul8 zd+n+^!vK+2tNPkINEydib5zsqdkuw0aqaB+%BADlJQ(WQ2kUzFg-aS{q;GxayZZbW zKBIwr-Cnz*#nr5iI!WF8@JNrWruEFzXLRMS-qxclj-GzxwC+7T5W;@Tshl1?dsgq< zysv{wkfA;?1R)JgWHP2My0g8h&D|YUn~&=5{XN~hyRB-=F{13pW=lia%z4x}xt}H8*%PC&W7z))PvrfPoV*XCk5)cn>-PWD;ZS~G9 z=p_(u-I^sb{NY$@YrFE@vBq6j4%Ri+HPd}^w`nP`D0-F1kx+yx|zkf#q zuca>HC8>xBS8Uy1v!KZ+1UVZs7xn4;72Q_{BJ8#QLB=qX5FX$5= zc|=Y!t(Ap&{i}cRUnBjXn{U5*o7b-mYly>)zboSh`&aJMh)*a|zvns#e(Z^nX zUe|8kF#eNU?{8~vGOz#q*Zwob9ncH|RbA=E`k}7f-mwJFJJ&W0fpYosiyC=t^;<)= z`aQMhhninHrGXm+^;^BRc8>b;hZE`zQ-Zb>q03sMs@vCZ=&h**onAeoRwu7a($QhH ztD{!i#_+?tH?_aBu6QD+hg)0v!8`9866BpX-_fwwRVa+(716b~Z>wGRR9Oq_)cH$_ zh8$H|J9_ZormkJR9%TKf;0cFy<*nCEy>Mw^#S%(4Z(h@fx2~D-)$APU>bq~siO02f zw5`rypnJD&Y5l{y@|qp>Lj(03Pj~O%7D(l;=j;Bx`#L(<*3sdC5yN^z*Rr`7mB8Us z$+QtR12vg{W8Vy57Jfug)eraOqdZy-=@)+Gr}PWI@{@96A%p2-EW^%AQB))pQ9C5v z+B(#4-TfCv0Wj$Lmgpm+T0J^6N1wffj6eQhF_$;O=qC13C}t|k^;TV8gmMs2-wES2 zF}}c7L-CMfNi?`lwzd!T`rG$3NRdRz8~4X>Fc#dVuS_V;ThcA_vP7bIg+ zruu2bz?NC3L@fwxfLs` z`3B0**q>zQ$?jw08OjOrWHQX&KwTG7Xarlra{K%_+i2anPvP%&KJ zXc>-6nV=8g6$HHq@&syZ1O`AC`6C2KeB)oi{xup85_02_@|lbwqXOPY-xS^m9AWqq zL}h&1?S>#%$KEE1$aM*Hbv@StenC(JF3A8bM&b_o5wi5W;7S^i!4CzfCv0Zcd9cS1 zjnV+L8TK844ccf99!McWX9X1&I2gP*7f3wvZ~EV=2qKOm1jNQ;v(X6@_(a&5T$ebGcU&4uFvixq zPY|MGHU({@IsvpK!41zN(2K}W+$aqAF181VA6^7JnU_2-b~JMX)I1_Tj5iJ@ZO67H zXvOszTbx*4jH?A#j%{+D$LyKoY8d*2AI68a^DNv0+k$&?ef%L_CypmR1_78LIe4sy zW_}_8*MQp#AB5}ij0CTF4*pI5pOjLvviTdIJ$YW{8_&SL&F|ck`_p!F&h4CvT9Cd^ za5f6TH-TIDuGm+DG3LH}_hjDjJAp3#&Wryur|8FQA*%)y2?&VwT$Ph)#iJQPWAD0S zwJNSwSF+l#47628CDYLg^s#-!v~c`=V4S*%}k#*cv^tc8;o&qcQeA_60| zYYjsP^F@5kAsl|7;&AeIkE{uy6Tp9GqjzqI3I-s4|R%}kjvNk5j>e$&;hjrUc) zv!nURlIA8$T3TLKl(J5_Y7e?_>J6YX30ZQ2`AFi2y$J*;AQ8rmGtP$}vqA+z(b`Qv zuz%A(v=PL#A|oYdCZ(x)9gWi(S6Yf2Qgc8a$*wydIqGjYG$7R8sQDc%61i=S#k4uU>1OS~tAc4|O<|%8IYp{n0 zYXI7ao&{xDR>^<`Vk=*Wvrz2b3#ii_EPP zbT0`=l8bzYcG~>4U~#aIux5h&gbFMMo&&+i+sTad40g@LK3TAoi&5If2E>gMu>eiN zzsdMkqBbQjFO{j#gI@;5RP~rf(Pe7VPmiZ%S90(kffxM94bVQK`=oq&H=*V z?R4!HIy$Oa28RQR#uL24@lM20ui!Iq1OVNkFXD z=@{~-({CG36m6#td1rsuYV&7GWgQ(hMGkA&b(Nh;so!a7=(WsPTb!TQ+WNj7YGb69 z`@V`31=T%I1a64pswdU!lmI*>KL;h%&L1`fcEh zJvG}6B~uu8kka+!#rhUC2JRX0rBpU+YC7;=P_7oW%tpilQ@}ZwCNqjgd{shy%Q&O5 zNLCTfs&IUy#~wSUcqkzJkCAEXx(fALdiVVgluZ=WYIm(%v;dz7>LwVzVGgUXA=iNL zvN4}Jy`pogWu2RuQ0rhMsTa;#U41y2(9+7X9yvd$Prv$@3Yoa6!wtu-){eII zum8=TD3&NfiKYQ6J;|7+W+(NjSDw`8Ub(F6H{RF3{GYz8a42u+G0GE05ezL&6=>7jzZm@IlUXL zk#0ZSQY_)=?AcSADdprWENkt4MQ0Y5wQ%a3!p=zl_ILk8nfRn$dj4_E&rK_mN@@_Q zYjyR4>ea5oR`NEZ%qXY*{UdE0xbi~@Iq|4vWZ@MeGo95dI#V9%iKPYoC9vJGtPeTp zKJl}k(QJM~hqbP5yz@|pM8CsTeevgC)$jbzUsgJt)#b~VHCZgE-t+YRcWn8r zr%!$6CB1$1wraa0&CSkhGC!fp{*JzLZB4ZS+*cd=*WX{WvLy(EOH;FoH!AvtFMeF@K}g?x?YdT0mQ-(4<-|Sx(l7meJy`4O z`jz_{A$NOhkezI(7{w6u4|*TseY?t9BjAl-jfrW z*XmPCy8G}@3*~7Q$}`&AujzX~x~^`gr%JV~iN#Bro1fD^_euU}Cr>{%J^ z-L*SBh8D9^3fDYUcH8Pj(mK6d)L=w_yQityDRXkzutCmE6msTd;oMA= z%4(xV8&8^naO1|NDz%Oh{ux~;&56>`T6JHY%7F&nvZ?SD@;Rl3NgeJ!)X-08(5E!m zQ=vGa{mPyN_g{JPQKgFs^*U8G>jxSbha%ao-^W~JHgSO5sPHJy+LzkvfT0T`&w;9%d@{^y^ z@BPVNX|a4p-7QBew}FAT{?f>(4jYOZD?X@O0RtKGs-!A#lybb zZbi56tgE@%P&^mWKmNzRq}jrp*w2!sMV-6&vW{vk<6fI86_hCC^zuhPrkUwUxudu| zC#Os?4dI05=R>-a|q3%E2(AvWf)gN@!?GLoPa$b8!brI}uR@>?g`})z3zNbd3Yl)n2Jfco} ztQ+^*`e3}Nd+*%Q;bF_@0vKpw_w20u?%#gL%EJf@M${f;75@)w|+wzfBoSLejh z!B{l|1|_zUtn3X7mOuz+WhxOflmw`8jBeHf-lp4WT4^W-6G&m~3rglm#O)vK{TOM8 z`fQX^IFQKwfkH93p{jOfSpXR%!eC%!dyz;;3k&lKM+&-mvu8xa@=-5ZJVhATf>}&Mb~(rT_|qBp<4~HO(*1+B0BavnLe? z1#270HUeghbKC73n)v32Ys#Uj*xNC*G}7ZBT0nhSNx9dOTJS@~)owL)YI*tC@d}cP zhB6rq%w95-ilOXNhI%iQ3TCr`9-^EbP9^#hbt7tkm;;@5OHnTfD1e**Av1y=VB`zV zC)&%n#A8WKo|-arQ;hN%3-)?Sk^zs#gXAUlhSxW`2Ao4|G&8z!jv%LoXgMA;4o&Pt zEPRrohW5u6bVx=X-|sje0G|xc&>Qvy;R%j8$v$k^VsXOC;y?(4G-S?OXov(F&QI43 z6#H=Wp&K|l{INtjwj?i-tDu%~OhG@8T;;{TG3e?Ze4F^IMzvaY%!dZ7gA%f^R=H21> z_`%U5K!tC@+~LJDP`TiG0}FViD4{a`8j$n8AzHd^SE+Q`98da-b&3ze*-ZIAC31i( z2*3~xMseA=TpSe0K~dyw&4X}bPE&5o2U5Ab{7%PE@!?ofPGqF$ai9@C+IA1c_LLBx zpv0CR#sy>wLGf-c;B^WRX&LJSf(rB}bC9`0yLnL(jC05jZD228Em846>DBm{Z61HQI25L zkQ_H$%qC6su~P3S91p9JtEq9YrOIJJnS4_5%!GVDEZ29{ z8zLSCB6^@$BCTE%Uf-yRJ6SNiA5)vaBW*C0Rai;*l|vyzebT?SkD0hzfM#TVFmG%v z62N6L5bR@*rZhVqRsEo@WICtJL`f;XsZT8Bbb28sANr4BOk2&6?j7`W&374S-c38U{jgZun2n2U+`<|^sMj%)Z{Knij^tA0S zj;)ha8eXh``!6`RkIUF?{RfCtY%$g?>lB{RL?#f1BZ$U#>8z9qqXYqKl4uSD{Kujd zwhx%VATb{hfFONQwkKi~psGoJk#IrujyZo4^e0g_H8p9r9I+z=DL6;^?B(&eRpMd0 zMUpW)5Bt5Q(G9UyuqOZqvFF3zn9i`jClq07q7uj;b0G4d1S_~OFBWc43KnD=%&-(N z+q|~7k?AbjK}LttDJ%>-G>;*#)UmU8*o63Du>gPMv$jzRMMwBG^7bAZdMuZ<&zkYl zb8TYM8I&nusL)8>BO4P$AcLqP1l$1(7r9+B4nVk>=wU;DQ9o*H*s=i;gIcGeaTSV1 zi=;vlpUQ_d^y*g5HyFgU+i*=9lmoFaHKD?MT+?%tnx9Om-l;1Y$?474-`7OGplsSV zd2ODJ0pw7!4Q<#pB}WeLM0jLb(#55se)40Nb>Ym68S@{m-O&$UyRP@{Z7bww6b(gH zEaVj(`})ksU)Gb4o!0DpK|SBq#%@Lb`|tgQaJUW+YRVK!+C1E`a#P}{7#1jddHsxX zxq>EVr}gAx=k?UtMV(nF=+=!}`qKaPbq&G^xkHq}e0}j(e_9{Cd`SgArlb?MXfZ{h z)rU8g2oLn_cehOqL*tmKV8ENj>tr!Bx)5kmTIE>D#p=?E9+@sHFr>b@jvV zT-C>4c}iwWwK`c)G#Aldz5bRy^U05>J?!aw-+NOpzx1qX?m+KexuZqJb$WVP zmmhyp&pdfky=F(3&MXLSg9Cr0AHI2AA6>4hbQQW5>=t#=d}CAGD_qkH!^^vcsKnoRks?6y>^d%E|{Hw_(@ETuL7 zXhM%Y^^$h)w={?~jB}99kNt=B3GAPP!v1Ys9}z=WL?dxCY?<4cOhMHMhLx{d_ih@G zM}8u%!hS)Y`Q$66pvhR>{%}+4>+434c=2dam92`Nz4W+7ZQl?k%PZ$J822r3bhQ0} zqTyM^#vL7Q-&SaDMWdeNwWXdj*1!uXgh3dR+*a3|G0Kc638K!Ol3@fA*aM5nh;rkO z`n6q!x(Ak>i-zZwOh+^s&1kBSQn6eR9G@#Qc_n=)8={(+Dky<0bXa=gm5=C$YuEIT z{=w(8RG!jQtf0wEOqt?XFTC=kDy_bL`@jFUYSvI0OPE1`fy|lEN0GMMwd4R!>*>`c z{l(q0PYcLpVvoY3B5R{rMC><~B$x%}E`cO|i`lNh6FFzd9 z%=B5EJ$+wYH>CXy0!nSg=hAXJL-p#e?%dhX?!$-1gY?$xS2Z!Wq@CTCW{WwstA`2? z>sr5mH$d{nGWy{gH&jU16%_`yui@C&_Wq8lEw~;+8g@In`t~(FC{8Mh0T{;d>?j`| zYVG<}?d=`PuQc`gcYmmIsjNscrTv|K+rudv*+1CThqrHO(CO&IJNLA`xvvT(VWD76 z)>}>8yL(%$Mn&cyYFf3 z#%sg|iwXWqs|T9zH;%04|4kwSA_SDH zM^!VtFy3%FF>MSPpoI4J_U-KFUR;;;XCf;g5OA=_u0|u44K`5^7(C#(IVLt{?Gk8- z9hWmwDg{D@ga@j}pwf)AJ{NE~nA)Bp2OLdLPn$!9&BBXkpda%S6Na=H``8o%UB7-) z;Ydy$7u1(8r08)-hMsR_4apRIJ=-QLKT|H7;Wkk~2^SPaP=a)DaG;4|*8W|bESLj` z6N8hvys~JH5yqrz3RMwhGRSztxfC}9IF761!D;I0+Ld=ynk?f{T4os(7KY6B1J4}W zNNA*C-?ejRadE){J=jt7Eg4O0w&*xw$OeK(aNy7{JTFKR_C+|vc;N)#aKecJ!lVx+ z1J4o()a&>TYaJVp@#AdZ#or;5XPyvjA;5zzX!e02+X6%gWfMFXFA(_{=op{e!)Px| z4!v*BgLB387<0yqdB^X3pZDOAWej;yria7EJqdnrJ<4zRKSnfXD=OS1Ud>1j6Lboa zuVje%41I8NAF}GSiTg7r=p&4G`jrw-s25HGL%e70X5CnDE+|X0b;9?K5i9)Po-3WU zeg+Zii~}?rNleQYhl!blgM_Y?2!aAcPChQjAJ`fTk6YS zCsSr8Q`(+Mq~(FuN3j^h(U0c^Wq&;zX9%TFP$Pj|9*EC?jG+%2^}3>oK+TGBP^v6w z3-9s6cj$N4DA&Zngouu@;eB42Xu=4bX-98>`c_ZlUP~*5oFYS4*+fLsF)0ytG)QOd z`lED4dv05u@lac>wtUoYQy|`5LtwCHVN)|_BTmx#7Qcl6GkySL!ZYw}1YAgZ6A)ug z5`5-8Djy(nVytKf{bT$+k*KX5`sKvNr5)UhJ*Qf&DO)U9pBk@_1tD=B!}7x5{ic@)j=Ew!L13oMg@WkJGQow zSoCnrkIRy1k3CxgLiIq!kmqL31_5JA9~rZVCd*}8!w@=iPBDM^F4v+|pM5u&#-SfO zq3rLxSbJ3Q@L9fR98||>ij%(P?6Q`_JQVeJ(VwI6i=kIap38_jj$$On6a}Y6Co@>3C={?7VKeh4JetU+;=pz zvnrO3n?i9Zmr=P?vbogS-B)%psp4`@hu1cZ)2rRuQYadeKSn*0{ySDorF`v}qYB$? z|6YwAI6@)<6qN$0$cnv8%=97J|H|=1Y$w+REHx? zXr!!H*J@^7A3!707LqxvagrlEKf43Z%e-QJos1QV(B;WVyA}aig38zzj43e@+RvKhI+nz; z)J?W{DF-L50F4;U59rCX{2%J#)9P+_^?da-b4$A|uGA0}PqTLFYwS z-9*$eb~wO~;qe%!I6pwR$riJDVNd|kCJ;vE32wSf z)bkh=UfhGuvX{M)D?dI^ zyx;k7gq zS=K_rmoup8pf|8hFE$Dp$$F#b>o5QOo0?2dX)x&Ov2#q@+uzoi;);rev?`#cESo=40YkOb zP%N1-lo^K(2i;JP-oAcUnQ~c4C$FWYGy3Xxu4|@%Qqst3haWzu=;7L~GG`rKSURU} z-`7Wa@0Qud8xcQ>#1F%BcnY(_i})+rZO6a)&sM3C+#T>&}BUojtoE zC!5oM^&9_0iFitD+YfA`P2@@%Acam=tJG(lUD;bvykZ}-(lob^xX63efs?;0mhsdsXb?3tkZSGW%(9)ok zH6q@L$&v>z(EX4SKfU` zu}Da6r=?GP`UQ2n4Q*`h>9yCd>i&m!6-_z1_h3hnSXQrGe$vV~Z|zm}+%u~p-*ok@ z@9EN+Qz}iBl!|8c)1UmL{90S%NLXjjpVww}WIRMKzw&~rZd+gZ+PAFai7W=ZI|C$z z2^@q%%4D?K&aJ58b#-TbUmyR}tD0Y+46v=|>ph)$@;S>$T|WPW_SULu zjI&DSqMDv;tLcX|S6y%ps zs89CXaydYqv45}lOI8jDY(7aKJS5e-Eum5hYPQo0>B>9T3(5sKFtSc?Yf*SDkuW4-ljXN$dA+ zXmjn3k)cm(K?hrP?RYgq6I3d7H9H;cAMNRIcS8fWrBrr8SKhv&($uu6j8*DYWgyJ% zG(~wRbGbA*soOW+)mA!hd~)4xD^QI^c*1ygdWwaSMz5K;#gA*8)hu;LYhk zRW%mZ!v`N~XJ=FKWK@-dLsLltc5WF|(1rcLNWSs@2kLh_@C&Hp4^+;jEYOlj4ApEl zjE5{VE*dXmrwNBuP})EAQD!QbT2H-OQMHQdv14eX15_jj1gLQU!Ybr)Mu3hphT{N? z9m@h^2`UBlcFuOrSqui|9_KjwD?Eys3{F)?$yCP9WSk^WRXFh&BNG$wHGm`t2Yg8g zPPjcSEiIb!8IQy7M_Eq*S0|f~kwcIy5uddC;J9Ib;EWO+p>)F%Zipd(q&1<2sI74` zX5sfiamekOy~6i~!@!x%X3`emrX7$u9~~Vkmk-LCAn9cvqeS@aH@|OAt2tfah$wj` z;DC42Y}A!bMHTV`PAP8?lzm}ml!_&_T6Ljd9R!hZ6oP$}XDgSAW`OcH9B=j>`hfS~ zbVA=fiV9bl;6{KLNGBp{Rrbsl!)7t$6Wp2DM3BnD$JK>TCoRfSIvpVXlmUR0pu{a> z#vtR0twi^MXf@PKuWLpj!E`e=QN8pAhVG-iIG6MvFUFrh2f;dQFaAz2gucf1Vw`bQ znd>Ak2?#KsaIA2O_?`XN94!#Q7I?xiM-5GCyKryh0R z>ZgCPE17Hb3v(3vj%Q)cm{Z*9D09s73Lhzn0_OL zxQCeU1n{Ubpl=Ov!kVwK&~H$5 zBomZC_5^ULHymgfhTF^67^GDsCQ86Nlog>2ok(ktK}pXEzDqDkA=?k~@SXHW78skH znpUe`HRl7H94CdoJ2}T0M}BxV`j_WNC@Px{xP}nDL0ynG@fq65^Yc081pl`7gO!7u z%cZEaLgB=>PN33`CA3Tp`R zp*PSd&i*{qUf+{Hx2XL-<%$VAOGt3#;whE9uKfC;29&lT_QQVIMR_`AXr3;PpYi4f z$$sW44j<2k1IRkzhdIW0G2SFJNXpde4TTdC3vSXr_7QvkcuvwMe3!Y%e8+L6Kj@c} zzC4-Z%pL9-td*dQko)mD`kNQ;ova1^&HE?+=e|564lFPJ%~)Y$vOW=xGW!f)$BEdu zvYz3=>-G1{Uo=(D<5DzyN1p8@0K=YuBh7jTMF^CVbCCo+RXy40fi9kL)T+OxV)23w zTaMhiquJtVMKg;!=s|9773-?(J=EjpO1gOZ8ExJ#=*C;Gsa(t`dAwHYjiv>i@LLVJ z78)y_2zaasJfQW_YIZHS7$Q+a>9!>?hL*6S?X=CaGSMJ#Yn9SYEBCST?4ZgTG9Pbp#nhB7g?+z)u6!#(J^LGYK4m zG6b4;|LCv>MHxiu+#I8dt5Qmj{(yp|$i%3Fi7M3gP!5zvdl{9ul7#?b~u!=Oq4 z@k}B5Hy!_feAQaH!z26o!U6CM+WCPpCwkqp2M|I z_7tk}u;EIRQ+91WXL|;*s4;U7`>pb0RH&8E_MxHz8CtVBO*`nb2=$%FZ8BMzlx+G& zCN~Hs_Q@nSZmo3M&;*qHU_8+&EDoNS&y9{ZRw8V`+GrR?4F|pP8XVV%Q(A^GjL`+} z6^$Rjp+gDYv2h0?3OFYXV)KP321AL?#DJsG{5=@3;8}Sl9IgP>)mN+4w8jFVZM9ow zH1W)Q5BPO1pEbB>CKuC%vr8&v;<|VHzP|JAO`V#XHG}xq|NhVD55E3Q9qo^FsywM@ z9yx6r!N2>`pQ%vF>&#R}FPvX7a{SldThsP_O-u7Lnp;h3<*6z4qC;J|@j!2V{hp@! zDWyyE8ah!u{?t?Q+>!qHPyf_Pr%umK>xIU()Ch=wwJ8&s8=W(ba1o zC_EVGsktdF=AwG+(KFh4f7f`1_BZzRmw)irs_!&)^U5uyLU9%HalP{F=e51RtLtlf zO5`A5@2Z&3Tc#utC9~48$U90|)Gf1FdV{|4we?3~ZR|Gm^!$XG6;fz);Jgpgf>B{RjG!;$h(MxBvyf~}zz}Lk~ z%c|C!dgtAn^8A?E%VWj!X@P+0xh;*OzGkM2iub!39(6R4qQteXkS28VgPU4C_n1nv zQ5{yQx^aI^&n%vi=XRA&#Z+m#R{h-RcnXaZCcQpH!6Z}C!Qp`gka1$VJy%UigK$cs zF_X<6xgmAo&+t6mTVL0^b2(jDJ*}U3=_gd})U{XLlG`RT!~rwb#?H20zv9RrpVP{z zIfJ*aZ?CDiGNoiZX(aAsfWQCd59AJ>*7@jZb=rGsG&?#SD+sybuoG7(5@hEiW1O3j zoHQs&4hszTARrCYc`!tLATT`GOer5`owNR}W*<5CSV((E8>+ecawk*js;y|aqIT6+ zqA+LtBW`nFtwBwPTX%(eV0<{K#%jh;kukrc8uj*>xN?QOhQqFs(S#NjQp!0o4H`*Z zxqYaE=1|psN>g)-dg{?-EzZuV>UK4;Fsq>p$ANDpwvYw0x9#umn_v&nOCv-cDY zA%jY&Ob!?V$>vd4&p&cW_g}lI{t%D+6rbuc=dq+|_x2UFD(N=q?UMMPe+(PkwvV*3dQPvu*H^WV2A(wf^>IFr`Bhqo2#1x_xV-S1Sj zx3{Twb;st^pzoSs0?&=n-f6V-&98k`<*7-zy`g1KDYYV4Xvilgrf%QW&gPn$wZIW% zzV8xL><_JE!OAac6^;6?D$b$2Ar2lT+HtY(HLF!2)WCT(^v1e%>%ao3An-s7ajsG# z-Wvm9@0laa9@T1BjEtW9)oLAch(e*EhW)-KtbDAeTp}QTo++iRBzK{hRv4O4R9Pcs zb4W6Zdxv2F03ZNKL_t)Uh?4PnWm71X4z#empw0cN@|mQf@u-ryjKZk?XsASXLidk+ z{l_o=jpk<0szpDiVk#7Z^+2C-p3**yAv@oXRd_JQIg2@CH#T>yj5e7F44m27X)7mz z7#cJNp-xh?^!$+!jEk}(WTZXFN~!+S-Nkp2tqh3cShYnVU` zM%qb0#`dOxuX1_P?u#)*S82?!@*d|WseToe0;QsXXJ*=PWWKzF~?`iH#? z?hI^9>?-UZ<|8jFPdP#7AD3R?e1pCtnP|=l4$a>|+;bo7HV?G-abTTmVK9R9Vz0-r zWehM-xjzXtI~R_PToeci8q&vPVgXo;NO-t`6OOF_c{zMT%p1mov0;y1US2lm8Y7wZ za9?b;6PwdY{*IHUyvH-pUY?1wh)P z*vBH`h*B&W@S{Z|mIx;x$(UoOvTrlK%+-^* z%XqMUST~G;B_AwEN|GW#cnt638+TGibi6V5RF8G zF{eNH9{=Y$tPSQlbL8*#9eu!O%*Ha1IoG)r_ zF{Z)!u_mIp3<49kz zR@jH}z1jZhLy|%G1!2TLOqgM)kG%4nPMv#12eqEAzHvpHM-7c{-&3d7)c7E*otmR) zf2deKW#Tbok`_dp9E8Av5>Cc99HZRavvOgPJUUjGB?(6r5|vgUod{N+%nSA^#*Lqo zeVAwG&|z+poU{4JKJNv4CTCxzTGc35QYAW}BQK<4KC4tZq|3__$`?kO%#HQNdRyI2 zU(c5ueeCRnvZ=8mamq~{Rfc2TI2!5N?S@vTGJ0-0t<}YZa%o46@kobqR2_ze+G4MH zq*3=!<59=NWm2)R36_9}I+>TOZ;>`lJ_~bMBp!6GigmVOxDMavz zm?ASJ6`p%pJMn3?{G58A=0_c^OigN(Drvu;wDlflj~op};4Vg7!)<9MI@Uz0U}uX! zVGjmsHeHSStw4P~>dOZ?+p1fl9@H?w9QJ9}F>8!=(9g!-X6IADSI0PUzVSIe!w;Wl z|Kq$Ij)M3OYnnO0+G8zF76TuHbDHn)d8!H+XYK>prqSc_ zd~6s#%lX3Ii5=tFy?x~~h_n$r!;T@~7zDbx4|9tj&RK%5?Aw4R-~uNA*KRh=rsn)) zPN8^=hzN?wJU?~@dox^*#FXfQh!3zE&K z*=h$$41H>c$sq-Y$%&!|oyiT^bZ7uUCZdmYFl&PcGZ?YKJsqJIAcLU?Xe>IM1D6dH z2agSoP7L_AJnIOa37KiGPt=d7WdKhOi1FC$X%Cqkj0q+IydQK3oy&wE0GA8_4;^Xt z!lO#fpVe#M`>t+$uxsz=Vu=;e=H)H5$#)ZhHgEuqLZf9kCM{A)kZo$ZFahllc4 zr}Z-*JF81iF6q1P-!ip=xFh9aBYpPOr=)yX)3asmT&*h7grMD3bT)_No;GgYQ{R&z z+uY7r?QTPtKKi)yClIaXw7RmalssKLKdTE*pH?Pa)Yitn{`f23(C+4emBGal2{jv4 z6|+Un&rN7FYHR+~tPZO!?H^VRWkU9j62?&|rM4SZW+p3NLnE?<*Q+p`)W8kvjc>o9 zTs)~r)={3=XM0}>D54x<3JTPoz#bcj-qESNAJg%ko| zABrgg;b=CiYTZ?-G;NU7I}Z=^{@s>VmW%522TCR3gi7d_f9})z;9viHQ^1^=o7L*+ zQz{hZ_0r{M73w$S4qE!c&wO6BKm4BV-`cXn(+*ZLg=9b=esqXJ134b+VEe$*G7q+P zwED=hKJ~H7+FaYv^mJLbcJJ!$+5=6`uIR{ZDV|SgcDk&s?TR`PX<=$nnL$^zyGORT z`U4>7Azi(9LteV1C4WlyHn-Krn7{yXqS7d)5SeXx7GxPvLJMzQJf=pYrd&Q_gsDTe zlel9<%`AKf(d(_M>K-!dW6k7?+T2{%cSm)-bM+maJ$+F%x1%$wvr1(9V#98A>*|kP z_1~*$Z|9*VCks~3yt*>4cqyaZ-F=fZXT9z1t?SKqy1I7jiqg5FmRDCb*-7c&zPEP-p$2Zfb@K$~VoHe(~o%ua{rE ztWqYb$+)jCE`CZs@$93zdv8zw{NMeBe)i{oK~G=0sQ9R%+{~Q1UwvJl`{-r8_|Y>O zdKLZJua5OcfBmLj{KO~pv1cx7rW7}&!+-Xh|E;2aPrG;Ss`H26(q7He4_^O3E6Y>* z%tt@2Q!BHo_d2S2W4&?pmTta%UA;<0xhyCJ&khZqmwm|g0UQociKBrLl)@%RHg%z>uKJw&a`r6mOC51s=#&u9V(As)ZSKf&!Q_AW4KX_B!R>J~7-A2dwQ3#xT z<8Rt}|He%<8m?}?SJ3+Io*vx0r={sBjo)-4p~d!(owZEUx7dvn_i;iZXLCE~tb zd+Um7t*VJRu%AYqsAcNsW@fdywW+}%uPayIP<3I~4(luLy=#H(wA0tb+=6c2xMQ-- z%L7-ny_&YyH!Zo>xcWn(TG?#0Oj(Xh-}dGMWx`!mkLtEh!x4r|JcksVKky#-{iY^M z8AX%Rip0XI)tZI|nwy_Acs~34ty>?O0arV!*?Onk1-?ZNBqW*h*`jedt#5Cc@WZ%= zQ`*&?n>WnS3xQhfjT9S8`$vbGom>A0Suyx7th<;$B^f2!I&^31oh2s+kz+{ZZJ4-ZZOs`hG`FpF@l8Li~oaa zohX754~R#3pR@V&=`%(u%Q?KG^|KTwE5R@;=fP~8n2&(Sz0RHwpn zl+5Ifmy~`*a-Hi#6rRiHEC6F;?gyei{7%*tr_i1U6poFoEE7vv3^tGjJSHaW|0e;8 z0C5ItBQSm$AM0Zb_>*=RDS8lyVhv%RfofpfnGa;gp`-w1hTRzQL&~NDDRcVEiA5EU zB(02x>oXqAJ+iS}gJ;I>qs#||MH|=Sa!fwYi@xV~+Df1i!#qw>s@pX?F>U0zlzq1Y zXNE+s@l#QK;Nw-=`e$4~`kwR;$Sjad80R?tBwlGh&Na^&oFhSk_oUBp9Bj>)y&O2- ze2)9kANKv@OghL9o*Sh{N-zm0qTPQ5U5s5@cwl@%X0L68}8N>DY;mjq#&HPLBUCntzotvB0 z^OHF(WMXDtB!(o`Xs@F|2m2~&oSGW+l>+qx>GOD?ayq6`GOV);W&L2Qq4##HI>3%6 zNHb)vpp2L{+mrF(IeA`NprODh}e9fod}=MCnxjI<}GDqpo}c=A1oL?1JaJ` zmX~Ms;-_CxV)ZdW1`Y{-R8i$crvw@pT65gVZcKhU(#W_Cq)>K{I7D zaQ+4;U0Y-00LjN*!MQ?-H238>`!1pj^qZ@>Y)>z}G@-MPhn1b)BVDGMNjUK``r!}O zRI6rm?$VN`%0)#W&vtrBrN`=y2+Cud56uo7k9)RvvUUss7Xl3pxL|C2*6drPNIVq( z6g4%&k&iO$*v`Qb;#ouA+Q;}Yjs%Nr{~>8Z8J#oIQaP+oef&kOoIk5%c}DIysnAYa zD~+zk{kB%m%&J_g>-K{^t*`Cr{9GU)6hYvL%@Gg^q8btQ(vYd`!naEhnZPheU;`?c zzwH^SKbZ{56gl@9WA;w=Wya=YUGY0V^gZRTyw6->--PU+fCp_MsYR4>l*#L1H>9KX zNaqUDVrs0ZR7B^C5k0?B(8C7@I+YyjYys3Q0UG$;#yUi_V$|0QFC=xUoK!KvIXadX z4r#X+*1f%fj{1&jp08A7tU<4$e!s4KJZxq6`C{IZZunOOUsxkHmySy@hvSjiC!B*m zf=eXBVsTZEj^x7^&R(yOQi+s0j&$j{=hQlVL8IinsZ__g?+7lasD_yWRNO+g24oz( zo`|ExLLr?|M02^M%GtD{;i1MMl6tbT(pKeA#dK76YlmvPZL{^6zXWwylPB{$m?M2d zdSW{=U$D_B(Z`~*tZ>xU8wf1+I{Y4DCMRdss2?PtScja0+?Vyw zzX3Kewj{_8AgC><^SFvey#`#qp%vn(t#1z~N330$Y%IgQJcZ0DkPr z-o-uD z9FQ8CAp&&!*r>>4(`KxNBWxHPtTa53UWRxR6c-2B$%cIL;A9rz1E4{4j=|1>Ngfj( z+H>3Dg_|KTFfpv?5IUAkmWecuNs)L=-B4I=7{fB6c$CPXbXaMrRL*I3Fs0t$ic*jV zk5Y=q7v=Uhl+8gH+m;jcbb58c+SzWAJ0EC!r>EL(NCiKoa-^*D^QUy=*Q~6d6q}PD z_RR@t*4i3|B;qm8o`oRN(ezYV{R2mS-&*+^>2nmS;6+HLaY}vjbP!Ie4f{AudPM+b6WU2V{F_B&m3+ zJ<3G~11pQ0Elw&K3TbY7(hycWN7HZV%m3laiX{rl=L&LSzKXfAe&vgw*6D>gz5iiN z*WY_j17t|g0bY|t0wl;>^IH>FLxx7?{pI)nR;B2S#%gO}wV=qrRk|p(+QXnEBN5eZtD=rGp-dsCeuv=HP?1p8@4Ty8wXSf|(dy!9UAlNq)lN@|=_$!c z>E2q^_^ZNE4p(1KKe?*UfA&?&G|?ScATO2%Bd?SXc-_H`|pvEX90L+PidiF`sk_czpXM~cLgy8iwhRkrt3IjHM{ zwOtLvVeMC2+TE*YXMG*vmcUpW2N_v|mX9D0riR{8F3lzm`T-{+tWK?}!?j&)rV`3O zlGRhsJg0ZwyK6>n9ir4^N*mjo##uImY<#Dpu*oSy3K`bk?z+aIj;P36-`>i+u72?{($B|DL+NmLk!y4iC5Gb_RwXgl`8vqG8`t zv)0ha=@_wN$m{FfHc(^%DMt##C|GMf z&y^F8=zsm)|5Mxd_S9+AjOT-MBFSON(LWxkezUb*Vk`|GOL0+29Y1s3XNo7r3Wx)NjfpQm#8yrBm#ym$#$KobhUqhJ7XYd@NzAKiO1P2BoKDjdH~DbBcBE zXntW{jb__2a5#7tl*tB82!>3v-Bu_RNI7F<@f_)F&d9qlXaj}YoE*os^?@^u4L}x- zvCriKX?M;6zE6M$yMi+uY6Db-F`Oz#H7k`H`(xv50CfW4DUK2^0v`K&`-T!HfRWFF zSmK&PD;Ys70EdG-2V)%>1*&!!P7wNXe-Ja+3OpAtj6H0aXc&^?g!~wY0i?O1P(T`; zYmALZm27X{bA!a1LZ}2@K+_JvoIO8#wO3(a$6QW;&1#g9<-SN1oy>hW*#!`791tu5DE<66V5NjhwJlquF0_TO#B_k zi~t?;n6~g4+D;#HF9?#y$Bxd)+#`{Su}>R0!>p~AQ3mZB1h+^8qmG3EPf(Dt$HqOm zKHoWU-uWB-K@g3yEP_8L0ZaOW_ZS-tefl6|B`RSn*&hu?8oO=Hr74wlwVw*cA zW%jyGORtu*as~ta`3LtEDovWt5hOSr#VFBh)PI}|XO0qdr|pM_heB}XB*<<3Z~jVv zT(UjtSl#Z#AsZN~F={+XJ&#huj3y>0t(-kwUeG8$DTSjZgj5WTRgU%Q-wYh`BbckO+;r)S4-K#%~zMU+TMmS{?pMB9=qITU`8!{Jv)_|;*)JHiou z@{2+iMLR@Udsq@Fk{}3R0FcBsm<=;Mz2Cn3QhQZqRc1PV=c^*=nz+;VR#j$x>-o;| zKmT(cw)NpW)x|8dERJf+)8kRCju)w2FSYPJo#wt)aiB>oonstEdy2O|ud~OW;R#l! z3n~B5u=NQkknA;_zc_~fOgb!UkoL2eSa-|~^T&R&^(}NBm+=5n1YSnQfoqsU)-B&- zZL&5%rQ)nX_TemHA7Rk)InUxbj33B9lPl|W&okjdWDnC;?v43M5P-i~V?5Jc>p%%k zrhveAdxOt$)M1pv&&3Z0H17kwY;=KBT3X!H`~?QZ@sD)M?GC#JyJP`Qlh11udUq>n<&)Dvn$Q692X)y zBp^vKv_W3MNk!lT0(|r)#*=n>6m42onoZ}X>&(XsLtoF!9GsRpgV-~SF$G5G=ibh) zp*nY((l7mm&*>+>@TQvA?n&)!`B6vRtwL|#x}~&1Wk^{8s@Dz&x;QykSe)zi*KSKu zM`7r6Timd9P#bcKlvv78kYR&6};gvpAuec$+3Csf&9V=72Hwa<{k8qv;Q_nD^PQ@b_+XFed|Y>+9h1+?47jx7L5 zImBsVo;x-U3M2PK zzoJ3>PUM#X!&O>o7_y*N2eCwsmrRuAAGpEmBM0Qsc&etZ=EI^mTP`Xpm&8 z5glKitM(ElQPU0$94#mL)FQ0S{cSbVraX@l_dQJ)6aAxq^c6ig{8TqzzNtnTTXcD6 zXHVU*QaoSiwQD!@{Iz@f!IOuUM-9rO9;GI8koPRnv%@3(lYjhA)!L0TUxXS=;PHZ^ELYlWC~Z@&dj!v= zy$@Wqod&v?I09Z^z88aYLl*euNLjb3q37$X-}$~gpVHkEi{khCJ+<4B{>rcZs_xwH z>9gl&`Zxd2*K~XLj#U#%qD(`gDFqrX#T?v?Q1jYXtJ_f{Y3Z;2 zjbGBw{=yfvzn!YNoT#5<`n&r#tUvQS(D#1uz#Ke3{>~Tm_SI_YX?p?VDW*cN$BZxve4JR_8mQY_|%@em``4k8L9J#}x_hUmtW&9s;RZp{R~8XTvX=77!NuVl z!$A%5fvO)w7fpF73mqIi*Vo>CS08@VGctD!ytA__^^;f+KKoSpVx{-K^Bv=^i{ey2 zeE)qFlZ8Hg66#{w)5(h?J$mrS$k&e!E;JnEY7tSWYF(0pANcz0lMjq%W|3bRf@eA! zYvxr-j!sR<^=nTr9zRyN8r#7Y_$aCkgAy|z$RJ8b^BWvuq;6eZV0dOm`u*b3Q#Bf) zB9LxJ7pAzxpz?5(%S=1#P#m;(uC@w{GWczLN}wvrE-=47Tv4<9=; zMx5x$)2E6fNZm3{yU|6PlGWX=Hs5g79qXNSh~g)`X;WyIDX9ixa!bu+8#(r#r6>V+;|JXbTt*qBMv ziOIZ^@k((sHF;macamkge(g>GR>z`y>|ParG73}h4w)bR6xRIC_*CKSsW@Rsy)lqfkz;k+i$28H31zKFzzPlE_1d^Mm;Eq!Wf zsnk>8?;+`4nIX~|JBjhiQHd4w1E^1{Tm+X<*f2x~q@-B$9Q3JAWZdy!Qg+%S+HcM@ z44BILMrE2tRJ-K!(;dbifkjuhff!1KqlP+Z1jb zB|!O6zEMs%t1%b|W+8KN)IqRJu#Boe>>m^kBH1_~7c0m4gQ0AxQAQ9-q;I}9q%m&M zKR}haid~E`r1`uL+6;pUeT3)p0v%P>R9M6j4Vc;C;aE04vbpB)ZsD|vK`pv8G*C*Ut3jp>5jT-hBDEC=;qlZIe%fVg0z_e& znj;iGv&q;w0a@EEtF{PQtgJF=n?;&fM50HIuvSHA}qlZokdT6!sO{Zn7c#k%-#%VJ*;Xdd< zywEo{&aTZm;61JdsausxOPRlU?V2XfKG8eZ_toq6^rYX`#ofWxtPncbWExnKTe4PL*cAH4Tnefw*Fto(d#oGt7} zjGCRTEz`+q8@f2_2nRFH1ojN+Uv7Pp((KYr06wFJlSi)>m)9F|n4HZ6B^9qGj^$ew=oT!+CI11#CW@;rP z{p9T(o$022cs^5Jqs#ZqX2Hhbg`vdn%nkd3{xaTX5H%W>-pD$Hix`6)vS~i&dl-E< zFfhEZGnjV@R#EW|TPXD+B_Rm!jzn>uRjAWJtz|ybt#+;5s!+YWRJY^nDou41H1up* z>vf%_PRG_e2!CXi*?I7YuH_itbIyPG-CQ~}_d=wT=6-o`X>yc8VcZ|tFrVOf zP3`PL2IBZ2U`<3Do*`r?-(^gA@eKM%AOW7EYpq0Y{@gnXTV3_G?kdhYnirMvcOG1Q zsQA-?UV3X^K}4{qp(h8GPS01W12SY*I(Yn4Vb+${h_rp&#RaR=lYvH;$5uRnj0XZ2 zI2S;1vERp&sTx$W2L)ujR=G+qu(O1KA>4_@VyejWQJfc~n>nXFa*4Bze&DPxjHfKt z^__hs&3)zSsTfJyeP7qxEoHkq=3J{m1Fqnzoa$+uXuI=@?q1u|tROXRr8pphW71Dl zW@gL@kX3o11&ACiEhB0^aVgkaUC`(Rfn3%OGJ&~fEwWZD&3}z*rO%eMZ;n@IQ=5(j z+HeKWCc&&glR8$sO0>*&_1@uFUplRI|8}e_s1#I%Qh%u|acD6w#36~S=FF@WvpGGA z%rL*wvi4L2k)8~sA3Uk_Viaq-l)}YaTW}c`Q>)CnU>~RKjfSCR;d4XgvYt0G!E~y% z?ZWSz)$m;MJL??;I;iKEbx8W+s?^1UM-~9odp}UnXj=96d!PF;-AV%8p&DY4E9^Ek zTh&&W3uzhFExpo-)uCD@0lJ84v4wI1PLrw8pv(@BtbGK9v0?GWwAQJkqz7;B?OO22 z9F&Iirn0BooA_wZZM zuxqGb3f|yTU>pm_!M-j&;{qnG&Bk%b!dN>Rsjf@qZfh%ReC<#}9-tdQT|)afYsnC+ zZQjXnNHv*JM5Zu3g)u?ap)10diVond^#taV=do`9KY<40Jm*$_^ihhcRY|K#oaU1oFICSTt*UYuglmP%5Tq6}c$|z+QnuVg%1;x$&e#>nZ?r zlELpJT~nT^K!TD=gpv-qiAlB9gJ5@voLv*gyQqV~L?QRHDojoYv-v=Y;gsVLLeO)_ zQMt*+8?+jwK{v4L8j{<@%2J*lW2{y>yS&nmg{cknotyi5^5kO;XIE+_effjj_?jSY zy&6uW*C9GdOKGqj+-qU_3RW}K=(~R`W8*l3HV5~vsjo zWfd*eX~j}hsPJcMB))=Gp!@f4>Brx`ssHNl|AJ=WRR8>6{()6=YsZv}9+?wu_j*t5 z6rE_Qq`j*z|J2)xIv?xl*;4Plcc>`Ilo0J-6#D#YFRKk4vaWTEg56CNH8Pd(qopXp zk-qSS&+C=fcXjiPQor}r2Re9oY-E9Z``7hzf9Wsj?blz?-F~VYEfkbWzxHeYqn-~2 z`t{%Vx0cHE^!b_Yz4EHQ{NkB2%rq0-DXMi0x#i-+%Xq`u2wpO+g(mN2B%x_*_FXrdImHcVCzz2E_%0(R<%JmLJ7Zfw4L>=gsQ*%+Qwe$xPk; zmX65xpHXKVf_X=RKbwxVv)j_?;WJAQLfOLkJsn+`uuIx4BUNm+GK)|^;*MNH$-s$@ z<92XyW(RwcWu}afy7&0Wb4?e84xT;N)#;@=&6XjP@?xrFN|hYX)@K}4>NFFb96nW+ zHk8+;@~d-uCh+R5UPl)boV5@)Qso4LRL0|hgt|I8RIAt5qNp_Y=9-O`dgqOw)@Pp_ zC?{o`ST57$|%`!7_m%#GCB6lPKhNy}cAmR5*UXEL2D1O0%5C#Y2}AnHsNB$XPTi{R$oO3W#K z4V<8m=+c^y^6{XetC=0(LG3GTZW-A&N?lIXPqX_`;q8^JXOThi<*_DdrTXH9~04SdBNKbdooJ_P!B zHt8HF%ch)L+MDCU!Kh@MY1amwM1MDiIJyn}L3ZNYCVi6cL()HA8zAgq2>a;|XnM#6 z`3}zmoep}q(I!O-TQ#t?K=2X$Xpzq~!ue9H)as>LjmJtVnX_wAI|mYxUJM)3n?Xc^ zeBFf$V@~=)qM{-tb6^f#kcj>MwpAg-n8N`@d}K2RD6lBj3=j@pj9=^TWNN8Ukis*j zAkiTCHY6qce?5-qg&=)ckBlpSqeHR&f*8VnR{@bZpp5wh$7CyWI-j9Xa(gD@PM>(O zKH+4;v4;Ubn->T=kZbGIJ#_R+ycih?O>kJD-8*=Mhaw2#|4Meg!k<_ z(quN-1#9FBh9v87vCLI3b3zfidhty6(_CM^4k>m^hkLhl+S}4HA8A%U(bmpwJuh-y zM7w%_6w0Goh_xGdou_hI>tNvPFpcDOd|mIvdinlM^_p{Kty;hRufL(yK$bF%QO6!) zE*Km7Ng*7_|1JG@jf7*o2oj?up!@f?wrs6(9dqpF*QLA>kYNsOj6e_(zyN(V8)*BT zH?_BDDLh|k2}cW+gsJYn%(ZCvDm%L>8(n#=RLxtrEd8sPUMZiQ%Uck1PgQ$`!d0rB zPEXxNq}iQ)J^kH}HCgq{K}V4gocb6*W`|hz;dbti&A?x!c+}SEqWQZ&D0rd%icGBFC2UJLfo3UOytynuY?rW5Vt?6}t zF<_ZXK4)Kn9N%!OSr&~sVO^C|)+XzhAI6O97%zvK!olF#KI47%2>-G#n0uVV7{jDY zqYFS!;~YE=70GxpuH2jJcoyy9U;cLMr!>$5$QyzhHBK0i!WgQIw^cE$6;;j=$$5*z zl{O*^HZShUs{o#An`@8uha3C=JQaL!|Yw#(ti7z690~lE}v?7cB0w5 z*24#&G@+4rp!uAjjxR5~Gz0zgFt#-if}mNARW2#yKuV<}Y&RrmSs4n=+DFyOlFT4D z{sN80S5}1Nc<{{RbxkmSS-LX}DwrrViiauuw^VGL&kfCn{Ts(k6@H@Qi?JqGBZc=W zb$i>I%t(Lpi40hgusCa|*UyyC=DM0Lw3s{U6wpZHr^ z%qq=;LcL|8?>ruBtDC6Zr$AI`>77A9O5#dIMVO2=L{)6YI8<5t##34O4ULrOlPh0e z`DCSUJu3Bd7HCG=ZC=@!t_l!$=ol+2?$YVBEI7S!a&Kha<_u=dY}O^`1KeoHivk2U z9KLf3dVu82Og6%E7{()o@j|N4H99!ZI)|)DYY-sA{?Hk(J?b*2sZ9#%2 zpS$X_bDXw?r{#2|+3AsDGjjR?`T}ib?|`^O*8y2f zu@!VQ+DqXtc7_F=thj{Zx?`T$kDPm4M+P4IuuBC)n?>gs!^y>d!l#2w?6h1E2(B{b z9Hb@V#F~dPss|V68ljD|4V`O15ZeS*%m=ehJ7g}9S7>(h4IP01 z33?ux6QJe+0&or?r_g_pN62e@O7w$yMHgcXkPijCcN82!p9(|3E`f0e5v4-e;zJa+ zW;?To;b|U^CkBs0Depl@8Q}SwTGS7L!*wWS2sa+m?!%Qp>R4taVj*SeA#&%}!f`oKC|(}+#ji$cv3qPjIoU!)uoxA$o@_jAlEA3y~ z*Y34#{k^~U*Y(=H8wzF#-mzK zo*$^w+A;K+8-MBiVyKJDg^mtpy7f{=eznr8FTJLxqtA?s>-hLgZxEGfHPzhP*5!Px zu#je}jud*j{?a{t=i5Kjzx%DP>vCS|FaF|B=<;f&xDjeFul3Duf1q!C=L6Mgs=@i0 zT3Mub-+fn&xYWsyy(}-UHKv--+_RJp*5Ot^Q!@-STVUw;ra10y6VZcsHj!UCc;(}# z&-9;u>vy%k-PdeM`b1@%KtWvV@slU|&ENcO?QQq<(Py8DvNu2Y-h2A`yYK47(<60z zZT*XXy|Q#Zl($ERhlWJ@;Dbkc@$^)kZeNF|r@B0YO3#s{=DwI{RRE{ zzxa>(o!|Ygd8$XBeWFD^HKg5YxlkIVI(_y+X&mbG^vaBbC~WA_!vizGudW8>{4##L zv>`~fiTEdVtYjzc9)BHkC4 zKYwz3s0-gIM;!KS{uc+2G@IvwD`GOa(A8w1td&?)qsmdVasD(FRG>+x8l7Bde|J~Q zQEAbf;bkSN*X^{sdU159TeoiO{PbAeRzri6Cu+8QEtV@=^ArRqi?J?;m2TYF)y37B zE>Dk?WRZp!M`}cr&EC<~>|FD}RTV;5M)5>PC#QPl-b-qNh8#arJ6b5+Pt?pB+VUEz z%Z~2swG4%t#n;TCO}cfGyl!*tg}(M6c*Hos`3~ZeY9>^9%Tjad!8d~v$Ds;$(`sEg z3bc_C&609p4#c_1L!1m81RQS6CC-H~TWS?DY{!uBl3HeY5K7j( z2D8P?D%S>nA?A*=!p4|$FkG6$jL1+uUn$C(=JfMGH#90!-OW2Aox_S@;`Claa+~}#u-G$JO%P`xNT4X zP+owquSi*g$QrMVUF2ID0SYmX;~ce*YB}X-a%#v-g;arETI7p;PxFy%$?^bip~)OpO)i;;TrbEMo~ja;n{!o2crk{ z9XblnDKNrF>0I+F(Iyld+QE5F+t5Kc1Nc6Q5dT_xjaLXbKDtHI+Ddbp2Oah6`%qsJx=v4u=8B1kpttEUr^SKc; z_xc@O9UdyK3N@<8&WdSJ%TKrEm98RNmIhiv0T9P}^7Ns}=S2>ui?1%kuSCc_Uz6d) z$c@nz-MBlY+XfCNGZAM{8FHLX7!B+f`bGbE8RBGJM1XNKBRi~IDnhGm2np`Z9J_IK z2DIst$XU-JQ}_<3B>03FM_!}^p>J;H1ZA81P%Hu`EHa69a4kwU-=j+G-u|9Nqj5UY zKCXjLOO>lU%-Y!WfzMpuU4(k`Z03`>!ALPe-!On%~qCxr8A^`|!(62(o(mXgtxdS!!!PvC3gy z)mHVzS9E$d(1%}tq+;S6)5sBPIJ{US#x~Gc+*ezF8$zr`bU2;G&bXa z+`|??pST)K)oXV(S`8GvlIq!wO0Oqdihp>bUKz`q`5G;96_Kab-Mgx8ysTw!#q!=M!i5>b$Z`=p*UD||g1 z)_S&#)mYU!U&2w8sH_`m%@%5PBVCRvO_qVple}0DhfBQ_Nn2T^b`t6NvXW1gzg%|C zfK;Fm1UtiI7u2tC{w$`(hYE)sYll8==EfGf?IXvvjBIdo=A81#-%Y9$>)YfRvZB+m zIm2FqvyJ&>f5NN7Sbcy#PdDjN)wMMf>;;=LpY7_Oe!Z zHtk2RLGJV3C|{TZlFyj8G>QzcK);zAD|TgjIxy!L{bmob4rv?zf}osFb469GY87fY zN%hsozW(SrmCRFZl~eusw;Bd67%c;xoo70`=xaKbE>0NynMT80aY~iznY5VOe6K3s z93IG3(rDQ?j1wGaPA=mlC=6VIQ#7O+xcLd4qa5esCx;&!Qi*dJBYvybQ$Ow*;&xU# zdH`&1L!v@wuv%)T@2U=ScrWL<1xaVqg&JwC$zq|4%b}L}l|J{zU8A>vk8(IEEQ@Et z*%z?}e61#>hNE2PXH%VDTxmSI(D3Yqo;`d|t9)dIRiXeIoT2(S*6XFRCg7KWjXiy2 zjG0^J6upsuH!_a&Ok_bpRq2rQY|>np+S=RI`O!>+Wvryx*VJq1M+@oqp3ih=r&KSA z)F*w;!_m(fOOY$Wl(s!BwbPs`KG`sy&Z|%#UikXjCzZbWaHW$f)^G_An8gPz_)HXT zxg>xAn1!l+*c?uNA)D;%F`vfR3RbZ8XgmLIfH?Hat=EyZc6KeOv{}#0k(U=%wrT*3Y_9($dMp1AX@3ksiMHM>>1@ znemX3dE?<=V*jkEoml6**hlQu%^9>u=b?dRcKp~v1+-o#-Rhg|3lJSb7J5%t3dsrq3MTfW_&a|Z~@&SsA^A3j= z<7(%|`us*;twL9%hdz-~PMb{MG!O#8Y*Lh6SB1RVhTcua?Ew1OVmP5mx3LOH)_r<FH$gQJon~WCY&ES?FPj`L}?%G zM)@C~ooTDTWd=>saM1}COkJ%^IMPR)cnl7UVxE_l#|!QoBl@df`HF7;{a@9u{K{Wb zE3P#>ywtnj{Y2mU__^hqLM-^?vqySxYfC@*)*ZEW`y$8ok3W2-uYUVO9bJKJk%F|N z_dh+*y&rp3y=P|{<}<78cF|qx`0P+8r&qdr^RB-C;U|jYd)oJ}8@lC3&(8Gkf9G3T ztpdxnErU>BefN8M{`^3{@}K<$^*c>NpuKo{uK)P&zoLAcOIr;+djWq*rT_akzM}ox zcXW6#Rpd3qN%`5Q4|Q;Oq;@AWPxpSmZ!kn)AgW001BWNklE+cjkzrFn2V zQP%1!B;7K?NTz~XpznU~V}1JRQ!N)n)JOpewYz`Ks;rfHB|r9+HC##!P(_R=%2cyH zvUXw{GV?PX9G&RJvjZhr$Dq885TQnCSznhIV_~OF$AzT?U7lU&{NmCGUFVBjCnpz{ zA~5>&iOOoJ8t#{Qp|j<?I{y=ExVIEqvo9`s~p|{fFNV_3D04WeS?Y<-Pk!scw>J zczL3Wt5P-9wiKuZYNl9eYpZV@XGHOVUXD&r4S7(sHd|oIKN3 zw`UPA9A{Y)Xf(RA2n&@9k567`baiY-3WqQYu3E~JxA|gV4!7aB(04z0Ac|2$D-aB0 zD`)K03&EKM6uQ&z8BzUYFjSnS<}F{Y=9-Kb>i1dzZa|U08jVMqOmpFAoL(&yuDL$a zc0<()!+fc%5vm87;&Q3e!9ch6w+w|xD)8M~*R?2@Mvni+>$fx*PUKg$In2+8TiVK6 zTKcz@WQk(`6>&hf6BD;K&$Q7g@1?f4w=J3#$~PEtoMmPhV3d$LNL5!zJBdVt%9<|W z8BAO?W{cb}4gSi(jciJ2^E_8G$m~$f;R|Y|mSRi`B8<{iArE99QK7(BW=?!iR+X}( zVSRzi3#GYO5^B5&W zu;VB*E-vN;1PR=ImY-S2T2;9!FR^ne2tn3yCU_=`FjyMR$hZbUL6sZ?R2YPx3fQt4 zrKuqoE08rP<0~9HB!&YN_ly*{t^-5rm{Pf1sl<4!LBqh$Qyb!y)Kn7YDH~7343c}2 z?{KWFVNRytu9i5iTi8DZN|xlh}VI<;)Xoxknsyt39#K{I?3sk4S=2>FY&C!8lZ$7m%8re&PkEkKe1kQQd#*4ON zgdQCo+uta6!{JDN=A0$;kG^xw=KN=Gb9S?4*u$mg&?r2Iy}>=XhHJTobxl8UK+!f7 zb&v=c!w%|Cpv@`lD7IYBwcN|;LYZbD4A!YJyw7W+__xw^8EdN+>5z!@Zu4yJZE0~t zE7$i%k>vMH+dzUbmb`B|SV=J#hZf>qe0QUp8ET9*fdkSEdCGFTb|b@RDO{41;Yc-= zK8vNvtGm6K?%zz5bsFlmQ>z-bm<;sF^<9lH#z~oNg!=l^6CEBM>hi%veh@3c;km3; zF9WsU9;#9W9?m{rwbwFwgZZkVtFxKONus<hUR7J4JU zvpzA%P_hd{v4SjedZbOTWR4M1HE9DC{CF<+AbMUvwXx=V<30L_GF_|POcmAMB(yKb+A%34>dh+>H2g_Unmm2 zXhix}wWVdZX$6}!gWbCp8MDVlL(fh|%5N?d_Dfygk2Ub6om;6CtkmypiF9*IiLcx~ zvo@{K(5yL}R*V&nf76!@l?Q?N%+Ai;-CZ+KFp5C2Fh|a5>=4wpX6u#e>w(gr-O-bq zfgUz9y*b{};Nyw9Wvm5Nm4E8XTI}A{QFc=ghFy*GRDPYSU#;}H-CDOh+lo4+>cuBg zaW2KV{GCuqP^&ds=+&1qz5kA)j=eOt(Fevg+5tQ@SvgY^SSOd+UhL3x{2+v z-`2FKG?*_{X6Oo>sg<5jazo_gOR1zlLLvEMauprlFg91ROqEZ^hW1?*j-LmI6vjHQ zO`G|h^~wICUyK2J2qPFdg8_+irQLB^FTA(eTik=cd2tPU1{;ePG85T~ZO3!jFB{&T z%^K%fe22fe7h@0JgWoqYe3R0R{f2%;w1w+<-|bUht=^Wk9e~4p0&oIb1XMJEE2?Kx zO?{o&v)+r`gSOLW?t>%U5Jg3ytrV)3Sf35s`tB8}rh$ICo$2g^3U`H40=52@%6O*B z*}0A{KUEe@l{A{BcVRq3(E+bn4Dzr9opNq^73q7(B^!T&AysXBp3voh+$7Kh!ih84 z#xIGDqM=+yhK3?Q$T^5Jfbj-ELJB$P82ZdlK#DAm)kdNuPIdEI%j`cZT4Opztifom z>F7%PI~^n3$LTs6PHi0W8VaCFr_YZy98Yw4exb?vh05tr`D~~nA6u#|=vD&-J+aIhqCLkoChlqQ9)E%{n%Ruklkk&Pm3C zH4J)~lx8?gabljH9BF%JPbbGO4E!@04Xwc5lh2+RD*ThiGp&|0b0Bqk+X@<~j!usB z^wB3;E~rrMGECra20@CR1BYHQMNcDpqqgdgw2!po&E8`^m`>YZyn>yna2+@8RY+F%y}OBi~Yd4!F9+E>@MUD=QeAQej|fsImI$u zg>bH2;EW@!k<>+kFObttGQ-V7l{B~_?!R!Kk1u4*inD~Hoehsmg~uj1GVrX zFJ?M8I8qok^dElf+xph`KN1d#;R&8}yrjMzIK$~kzxVF9^}`>%r*?1G5!|j(NjL<7 z{{h>ZT#ogmTIqlLKmM^fjxNpz>bJXAiG{QoKlF5dHPwR`u|EA5f2=tEK;3pvoo3e# z`X^7HD{FQ1jo<$xk(#x?)6;lx0Rz99Es#xA6T!hUwunAe_oym$d~&JttC4ng`trO| ztyZeVd}(>lS+->`*Nf9DogbfD>K_$CAkE==4AsSKq7UEyfws4I^>lEht-ZdXZTu1f zxmfV{WlevOy`< zHKK?!U9)kaR=TB7Gv%aHg|+6x6WzXbUA?Tfsb=$hU9O>5Wn~I`D zj}D&c?YG|4lY?Vj@AuWoRw@>ruJv}cthaT3+0kqF?rV0*0qU!ZbGIBBr&!u+xfHb) zj)cm_0S68TJ<7^2Okm|Bbp7yJtUWbG_O`hI!)Po zkI%~5oF=R3LVlKLhEqO-*N?O_P#LjRUvi=pCCMpYc%BnKunKj9*;D~lLg5sETsVa} z&QlnN>Sd`G(UhlFyKCf&7(^K5leI&J2p%XKco&e5Kx(7P(+K4` zjFkBf6?2^`K_-vZd==G7jjpFg>8tQ?xVtm~VC~2v^3YR^eoC^V^gt#`PJHBBWheNl zBK8PitkMxa#(qQiYs^W6aZer6$Z=VbPMA=90=_tkKcJ7o1*Oy!+G0*5cgrCAe$X(q z9z0q^Z%{DH8ijUgjx&%-bOt_^pmZsf@NLyKPB;)zj z>16y06lS7iE~O7nBF;3B7CfI91`n#T{okBIj`SD)C3?eu#_Qu%=A1N#jVadzQfQAu zIpNI02@V>7LJ?G&Ly_g|vPxU{x-DwyoDwJk+~0Hp3`3qrw1kvS(xsSSd}PLb6Pgp& zA;;F|>6(8M1=|)FTZzCB0Ub!g*HL1RbzoCYf1Cr22t1rkmxHl6FhO}@U=^U;aN5Fo zvX0bo#$xbsmSYeVVg4sd6KAkflt5j%^3~`Eyw85-#~A>QN5RhSG&SxUI)_5Tm~sAd zPV+hEJ-GLzZ!Wlyl|+WeI(Pewgz( z-=KpWl8ozVGtcJV!iIjscX7hZCXU{Lw(wo9W30FaX9?e@ zeZ0@hjBtp~QR3FTsI-?giJm~TmEaF+hii~6tlKLT=~l}*6D=*WHf40aT4{@-0#^fN zRKQ&oy15(1IptsW7oW4{*%w^L_xP+wu@4-)>uY$Q&*?v( zGk?g7&6v!m3!R;vYA1^H=B+I?tD&MsSIJgO`D$bVNTseCZL_@6{ppqJGSs}+)x(RG z4$Hf$qgtZ49$x;O2zIDPR~I_FUg%o0P?Q$xb!u((Jtdj1Aa@8*#uekQfX5Xl+^RHL z&+4=y81#WOlr`#yeM8ioAmZ?9psim2|A+WwZdo6oM+wpdAh!2gI=kD})m}s4veeGK zYwDgKDLh-K@#;$&+U;YBprdDbM|l-1FBZxco({{YemO~Wvp?4A@=S4xGI6dt zLI$&zR@&-Oys4q-oT3g+e$|Du576})_su+_M&OL(MO#UkGRqeDCl?}C9)wQEG!`M&UenLm4axh$KRLA8z1jBef_oh$m zCHA8gN+}jXwa73+E7t2%`TD%bgOuJD6eKl9doZTCZsrX!7K5RRwvtEob7 zX-2mNz-kJN;1mQ%;aRou@x&R~w8PqKa@olRWDIkO!-uRp)=+<@Y7@`Eu^4bcc$;Tn# zSqk7ZFZJ}`SVu1oRZWjoOb1%dr>a*V?Ko2%`Ub}p>jeE03I*H8>vUBDRqPMe0jX>_ zKu8Z|Z8#(>P6Zd3L9ep)gXU={A6MP6zk5>$MPPhR>R`(@~+Hd84PD z7QBtFPuMr4JfaJqOr&R5r9L^4zV)!ui+P|!(mpMHzf_%hs^+!)g|wQCmHF#bhH)mb-e@~x z!P$fUilcQgnV8)M^_z8qst~TKhl|L8irLwQ9{{6-2%ftM3MaX|G=_(54*IrF*+?fa zHv@vBjD^GI2d>5e&ovvRmqyVEemHbUU2;w?mm|ss<2yzsMozyGBNAmO4VuS>z^TG> zNK+(2g(uVuIJgGZiq>Q_GNb}TvfRVG>1)z8BK9DS#`#j$_xJSZ$qSvGy0V$AIMXy= z7>WE~GF4qJb^G>BT@DJJ{^&^c$H#_F=u=g1vd{t|Iilgqx$@D(Dters4Xh6cKMV){ zV>v~E<2F0En5i*6HHa(<7fv{$outGd%usY20X!U@PM@C};_kE09?Dylx_RS%tB-@~@KB?{g?6_0bUBdP@RbEP`&!l)B39GkNY`)OR8h>VB195rhHfK055wm4 zov_uVY`GJ z+YwTah9e`pU#!NeBI$zS1glD|%tdigsJ#d{<=hcPvtHnH@FSg^oy+rn%%_d9K|XxAfq%Lo>$wm9N3z&3-*?!D8Y3>NJ`P(w5}{CrMXFrzg61cS{T9x^v6d zn|Cu^4NLX+GPRPaZtetn{l*Oi%~00|GkyMzS2P-2$@lN8+uzZ%^JDEcx@tDJH47^B zFvcsX4SE7Dn36*<(HE!vykN6e7p;VCx?z zD#}9)*n$h3>nr5&MP8q7`%lMeIlTJm1?)TW;~I`NX)nq6qY7Nsp8mo z(I%j{d>^N+S2#z%3UjrYAZG%d9^qSV93qAwrhJN7Ag%(H#Zv90 zrE*cqi=A@_l~GgJt#cd3(pAs$MI(= zXP%S(0q85vHpazPx^o0^9edss7dtbFRXSxBCmH>w5~_LFnInrqIRbFjBW^m2zLkYh z39tkVZ3g!V2r!=_F}^vT85bglDA}Ch1gS8>N#|l8G7hL)K-5uy34GBP=BF+k_X-ig zt$zPcjDFS+XEp|nDTHhC(aqdpD4RkPJ47Y@H2x-{#cKx$N)ZMUiWhnWNLSj9;(`u= zBF8g8o|~h{&_G)EVU6NmJCwN|l5Wm>9D4k1O5SK>&M)rk6f9>ja$g)%{L7f2>=BJ* zJa9gt*wZe!nwS_2V-!E$4XV_o zocnGJX)g{f&`TiDm>*uG58M927_l{0m}8zj!M$;mQrtmRp_}1YU%Gc&{lwR-S()S2 zue<8>cSP|eGI=#0Xm86?CtT^;=WeSQR0>)htArQU7|p41=CMC2I8Bm3HG6csql=)W z-}4Uj*!$6q~3mnsGm3(94qzi#@(H5fyz7v_+*@t)n6G}j=oqDQPj)-KnvH||`&rPkGnZfK&HdJUy% zVDt+OpQ^{X>Z#*i^Mgw5Xr}AQQZFUBZbiP1FDq58P}Q^+hq!0N%oC;IROM`jI!G&7r?jB!qvx|H=qumhUk)kI9~c+>j?<7a zg=ieUAyBCVfT#dAOLn!`>glSJYPw96DbioRzoXmBbM4)|ugB4z-kaRiHztwJ)i9pH zWtGZXg&O428#}RXT)Uwly{5VzsJ0?h1lh4$Vx?`*D#{U9p$)W;ac8YCZ=1hCK||`! ze6Yqg@`bgvnS0)6-8M7lv}G>Yn0z;BwUsuT8qa2G?QF?wq?R4hh&{c%6KcAsb(Kmn z#NcWvY-SqvsVEQAy|2Bdbea>Ck~vmRvp`o1Y1}|7b7v(Z45}6%?_@mFR=cA#^DK>s zez0atuUhX9`ng$S^vn9YPL19e?3{D-51GoD#$58f%^K&Pta%)r^q=2(7T0XnC=LO1 zMcWHFoz~Cd?-86uYlj=(cei%Vd&ZKr&oe1r!3%^GU*Z{VuREt1?Pr|fscomJ8Q07q ziw>K_ZCSXpT#CDUmfM%ypFjf$9vqNLUpK5y*YlgEjCjjs3?#;J!S%qqQ zoMSkKK*qXib~st>9EHr9f;H@617x`13*R%uk#VKsxN?CR&RV_;s*AG;N*<0;xF-h(q=0e5{Wjou~*q>hDSY-nIpH;Z9B(o?d_D zj`GEpT3M>|(by_1(}vn7TZuKk&~kREeDGYw71g&#=Cng`z%C$jz+`YpMwJb%!Np5C#I9IZ1Vxt?lwn=6pBZQN#^y!aSxfZAt>=+_@7lF%c9vp4@O}0J-{ogA zn%MWzD?r7MM-z>QBQ@JCSFIV!j>*jQa(F%AAcg1l;{4JDQz>{y5G9H=9S>X<9lA|H zwPk{J6re#rbq-zAHP?lR7)QpMer)6w?O;FId6lIWD4?CpDOn=yD}obflYEE$y1lcl z=g*)231W}ykqZC>ruEF$ysPGz+FID0g@1CsnRC6+WIC~ID4s_k8p%Sta6aMaW!!L5 z(O>p4ZQ+F;iLS!=!T0Ht1zVO*Mw#u0EVtC;!03Kl`#`nztRJjXlRcc*=$5t9|F}=h znVlpe^%^}aWFjztSja{~xP~&LgpY>NA6*+iN zkEvL8es*b}(J?wm{>*IfdGMn@)&nqMJE<%8OkQ!CZ*BT<#=YOsS(Cb z5-BJPgOR2Q`J`8CVqJ*D1C4OXj8=voVhl+6z@6XjrslL`6Pa@`P839x00o&=m@?sq zrID#-85^n8$#9@fw{4Y34i1l%wo}13dNrAvAs0uKpuJGH(-)-F<3(;H*OW&OJxbUT z6$j1L)cN^PQJN@ip?FM;vjaHo9P)3ksp**1orR*5vfBgoTE6^zrqz5UuUzWd_LfB& zldx|N#IxaIUasxkj#VXT_E$=JzIOb+{Gir=TTLz8y;xbVrDZ->vwQG zD6AG^y?Ot2y|_Bp)o`l)J9qSa_*B=sEp;1-CTEwr_wqd*UffYTY|Af0jjAshVhJ9e ztJO$*ojo%etCA{qu^A{-IwPmuD`whhW}-%DBO;|sSO5SZ07*naRD*-1GXAfGNg@j;FZAPRy954TB@71jsIl67;C%T z)9Lt9y{N4q0Wr1IR+gwhxm+#PW?iio<}iqpmIkCZwmN3a;#5k#Ky%XAsIHNa5;s?? zL$xYj1xU9v(L84zR?0ZM@`Vz3f&$>vGf`fd64#5-RP9dRQj*)C7gSrCN4L4H)vTec z+fi$$qxlR6)lUmK)41W6Z=?u9}NnlV+>Y$!~fu=F5K7K%3sWyl#6 zl}d9QRltsYs^mC?&T5s*^D{MqbrrWTA)&zxkF=R;>A4g_r<9fQSdT%X1(kKEX$QGD zN@Q6mq^eo%D-PlOSy;M^Cr1R2K}sqnijDbEN`pR`(`uH_)lM8QlqqEpvaVC(e9!R; zfb6j}I@DoE&p}5mc{0PWwDH3mh3q0l4rinJ!%&#lP86Jri~~p_AB0qiLjuGQ1~zo> zkh(`Ia~zBgv4pXV5(xJV#yW={2uXSk6&HxI`4X2a_pObu2WJAc4RGvG@L*Ha1e6ws zE|pz51KL!3n~W92E*gj;Q~@=Q;Io=34dBNj+Ri!XA~fdmu{UsVIb#K=a%2v@brgIB zg0Wh+5wsf$0Hw51{z#{+49SN=%(;Q#OZ2CLI}uq!L>K_DlCY@4)zMk>$FLC!JVTkC+6_5)6%>vuo!S|N zln=0Uz;#6>VD7zM-^jt8qUQ_~_D|Aq$`9u*XBlIO@lIMLs79C0?%vKZWpij884e|4Xn3krt_^J} zbI}(o=mRogjY{WvD5^YzvEx3xxHtL&`Vr6OJ6yv$$AN%zf$yWm(^fVWI?bj{6p%r> zfhtFzNCRItqm}wurZB11>vdF3QZjoDDO8{+BImtOQPNfvdkT||+5{MaNG<&8E4PLT zwh$m*kuun9QT|F^mWm9ZbX#g~!`pgj?Y3a$IyDcallEbZGXAz^O&&RvBj*Hj(BC4R z$IYGXwKcC5Iv`F$oWRTlbH*6h{H)U#jDrPb8OQ&+!X|5$h_s<4)`mMMK-MhR(hmM@ za5hr?ZymIyEqq2>c`+A!#yqmd`8>@M%V6L$eymR(6}vJ+;ceCoZDrlqYmMY$Jh&Iv znX$5%TMF=ky@>n;oO?7R%R1%Nml~)RaMBOyj&URPlM+1`$$Q%k<&=y{swMLtHk2S~|qd)x4 z=e%e)d`m&lwDq_7K4%lvN}&fSsiu}jT0sfGev48)jWYeta-rV!hQ4%>XzQiB`s5){RvzBCVF5R$isYE0F26PT=$kK_p3a$Ja?LUHYZ`Ldua>2tTrXY>i{e zLPp(^roP!iw7Zp(k>cbM{ra9)-Icii>gK8peWk z%fI|h-#6n!e?9gX(Ja1;BWIm<#Pb)(EfON)z=Aez&(ubB!rJG4>_ghX*|>QI-`hBs zcXqZl9E@xaVf2zt$~nii+=IR4UJl{RUz_*&jP`Eiw*}nX(9d3*FDH?a^SY1bUh^$c4?uS~R)7 zK5y}TG}eJDd>X7Rz7Md2zA}$)&Hp z>%9#42fc$dLV{fAmwneWs-8 z&S8+x@D&rFA$XK!?wfX&#rxzzqmVKV5tY)m%fZkFg@r@91cNxcSlHoe(E_~oMqUZmLS=kPNz~9B zP9tEZHR(>2-p+6uRU=kqVIE<4zz&X%%@G6w z4Xz#*z<79N)g6rl7M`HBQiZcTYXXzJv;{>e@m8y&m-cqGf3K&kLvE9_nB>}uGmC0X zX42l?zNY!9;%KS8tvwx|o@%F&DQGwX&RaWsIviiA5oM}7ZB46Ey+Vr82n$c0PE&*M zZ8iN=t+cDF;i>wKw#oo>$y}YS>$*HYQ!|LQOkxenTsOjo8K0oIwkYXc7Ur;v0-}9* zhFb~}U&`l7!j7sS)_k0++3o0Lc&eKy*io&D!@7}afb&P(v!O|OrTw;pd9NTur35hq z2+L4jkXmK4jC887(!5@1x3eucp-}c9ZCqBlq9yQI&>us!lde`_sH@RfX}hK2e5ReC zp}3P7Z`bwR>zc7XMiV1%r_?;cH|b=WjYitu+OyA5t~(t^6mIEyNkhZ&Q2RT32Aigm zAwlT4y{`_uNsWg3^3@DdLkOa{-~3Y`eDNa_B*84|VM zloG1Xc~&KllrK)%d5*)gCl#?4erbrb`D*P1BC&FT;hv~oL698U{Xqm7wkG7@U0G$< z?Pe+rF!qyGzl~wosuial&Ea5CpnQ=VKT=s)ZnP1+<9MmTrxvv;b9AFQNdtQ5oz6?i7B z;@Zmio+?raIgHl^9Zr56OjK&bnd5_`p)$+2ApMBo$?Y>5mWm}SEyRc*&Rbjir zu7D~cDi{y}6M|q=1Navh@K-Qr#E^&@5(Na9a#7{L-~hRi^+}fWHE(nK>@!bK{MK_) z)|IdC_uiX%@|>sH&)#dVy*6EoV34sON==70(H&*xS&jsVdYCRn&^2HWjApq`lwF!Z z3*EePMiI6brK9MT06bc^gp55btCWm6_drYM#vM8Vg3M+jIO1kuP9Z*S&lTvRx8Oat zmP3;3omeAecnv&7&UiC=WXh;2j#5;y5DE^NL7o?9kVBaaSjk-D5O*+SbHxNMfKZf3 za9;pJ!=VUeoeqr#v1n!7w`QuLh3Eppf$70v4`T)A7Df+C92-nIDX<_cKYr(XfGIGX zYs?Af=Q)FEW+A}G(2We?dD8W;5;^ziI!vp2I(KsBG*#zrjSi4a-b2V5r;SGnjwl_J z*fVrDYib-gf)rjrx8&CMZBc$YsbWe2Dgi0Tj040m|0xavj21GRJC8NAd723@ZJd)Z ztq@1e2m%gAZT5{`UN5vSk6Le@ea0~U*B2utwEw1jD$Vq~Ik-F;1|a3CbhM@Xay+Ib z{LVoHC3SQ^HRK#ey1uy5^A_EZR*b>08o_J>b0}KUz20lRu#?X2sBW=|em%s5I9ADn=^$S3N z)Bp?*m>%nm%NdxLG)lb(xh70S>=0v0a836j)-M4$HtslN^Z8r?9zf#FK6FLiaF}^;mKVT*K-_UK37Mmv z%`s~lc+`0DhQ_&Z~+{KfSiCL=-$DS0Ptav;KTF0fX{TnecCSv3I{#9M+#kW7!cQ2+IM=x~u-0Q$05s?faX@#ANG-^97(@rVO zwqm5by-?G>cf*~8uDC~J77jY?*DlvWmyrbD!_%|%gl)$tZ>0<#Mv}YJhIwJ{Fh2); z34_qV2Al!Cx9{G0zYze#$O*4ceI8&$nl7jh%eB4=weEFGMx@9&Bm1M1@;KwiMh4|!wZ|j_yfYC z!^OSujeTbwyECi-zQ8gZk8a#OHccb3_cj19gPtKj2{<{MNd)kd^N*mEfE6|q8f_F> zvWH{3G2^*8X^@%S&3jn;=WFiJIHCiuL2Q7u#=-pY7#fQmwlH6UlnqQSDtpk=n&mWE z31x~@w-AeAAYpV*2z&={51T>fRnD4Iwbj)Esf$W?Pw(}2Kl%%GqfeBVxyqU(SRxv3 z?0G(Xhr>$0^PQPS^Y3d@epmnQPyR%!cVDPHl>Qt(!+Z7&dWhW&0I!JGq_gXBM zy1cw_$?(mqkF~gb;eVHHtu?RP9`*kHtv2gt-QT^_x>Ui9!NrUtf!F+>mAsrywRQuf)H(j&YQe+^_ zAbSnLJX5c<7n*^MVby5RN8mp) zSoQM73$x$xXYiTt9v^&9*tE?P51lRq}}0YwA1?_%k=VcX=Vlv{qKMKM*s1D z`iDwJBR$uEjFGMg1mjFq9S5Kw+FQ4*t78lMUXLfLqFNE-&3$u!$wZF_y2FiC99pH* zT;nWOTOL%VpJ<%TwC1_L{;95J7pA4=d93~Jr196@xZ~QkJ6fRsBAKfuE~QkgEA3RJ zBZ7pJKAL?^#b~ZmcT#Sa2$`Zn+#4B-#pO)b#nd9Z)$xG8uFE{uZVNb&Yp!cujK(%3 z-31PCt1;}D17O5hI}30p>eF5~qs#%dqJyS%(#tX(%DsW6IG1MWjhYf?7Mkm|2!xZO z(iEmZ*6Gcwu|bd-;`b5Abgp88cyDYV5DhY%0p>GJF!q`Ci*TCaJlDlyq^3=kWs5Kd z?j$<0Zko$C9axa50ga|yF;krq5ae!09*eF(Lm5>vQiBLNwdS*_wtEB;C)P)z7N2#` z;WVC7S_~*chKfuD0^TQ8Z6wMFp=nd@c7k$kr#!Z?qO%+SCYOs}26K$;PYf*-FahDn zE>Kj_a{=hJ_%=jY1n)UeocRmsN`43EwQ$Fsqk#jMXD&%I6Qk8+H1WYqIVKe9!nF3l z>;$mE81uY1;VK9u0W4StfzgGbL+6TM7lCg(Ny2f2c@@OF$r9n2nRy1I&qxt0h}87? zQv(=ClY&6MZtGHY7ql9%8#or11gnZ@W9vpMB&J_P~z@x(kJciT4 zdB)r#?#)lp{c#YDXN(-V$uLAQ=V(kHhv33BA@*@0= zBnm(%FJfL<05Gz-f5r-1LD?(yZIqsmd-M^H%E`LVF1^p2!=q||nh~8EJFT8*OpvO6 z`qKM%Jk3>}B3)l+YU@N77jtQms4RN@{4c)Lx4!;ev-j#f!uXLhoQLDe&rxKs69~Ek zE5^?`=zp2bIDl82srVM0?KoxzKL80S!5Www-V;#(O4z%M2`oL<9AFvqOi2xyM!tA< z0%HPuPtyW1IOI^jB8pUM#=kOsc{WT)JBx&t5q?ZD9&I;)S~%QLKQjw&;F>V z^~y}(R)8kr56B@93wv&eJM&C9YNX`&Z5 z*Fg*S1VEPR{^?$6`88$AR3@34IMv@4NB!9>)pzPrFK;Hg{vy$rr(Rciq!W->*Xw20 z>br&X={!>w)vEiwkXekILQ#8EKbvWD_o(d=@!!;7LUro2UIF%ax(!61_b~g0ax3pS zYpHu-3E3hlNV2mZ_f zYn%IX5@rCTShwx~7>BqDCL8Mz<^%)7>sfazG}f+Z+?Belo5~mVAA1jLa$f)Zn{VF7 zx;3yro9XuU*5Dcd_Vae=UN-(2xl)&2scz9L zt4xSUNR(qcSWHNsC#}A^Kj`jrnC!$aU)Uzk7a=LaXSlh}U^C8al(S7>O|f3MA15%J z5JB33WLTIR*ipm+#1Ux`SSJ7vJdhvvhNQE$R4q^hhcIPm)o|HY=((jHoCmNaU9D%Bc5-jr_lbKC~Gra z%u;PX{I$lbwfbhN%XFc(JZVwDST3}uaR@+7%XtS-Rw-T1RBzXU1Td~j)o&v$ZHt1m z0@}*_EoUz4y(S})gwGb&e+}q%I%$8PiCJOE1(;GXaS3eHY^>Aa=q6^i321HZOE(px zQBj-$Hd6Uj>EdeP1Pxt#U%b3lRh^VwO)O>9G}ykaC5Nb%N!jxxwDVMXmuPhWOr$(C zcg4!`@=D+p5Ohd((G+TSd8y~B)wa*HtrF2^c1NP;<*&P9hWG~pMv;tE=e=HB=i1(V zsjL2=)%wnju&TPW_O@Fq;ip&wk8<0{zBhjR(=&}YLL!HR&3O&8W*Gz49rKM>&EMI( z>^c4h)&XXL4dL~yv4%ll8uW4c)kh#ZIo>l+M?1ifb11@q@aH{*9evehY!@<2jDieUjrigVSYV{cieWsR zYbS6;AirUO1x<_HVQ++(d*K-?XEW{Ec@Z&rrc8r|Qo=Px)U?sw4FH(9P^yA~Gd(MlfbFjiv`v zgtMYjU#*o!3#p$32OK@5=Gg+s9AsJAEA7Y1;#^UjIU`=5wr~H9;RoumG*9#PF6eC{!prifij->@Z$Zjl3)$c39mwz0R4a= zi_78W_N~-SQv!D4^8k}V&{mO!L2Nu7=~$!sMJ6VoHk6nY35K2wAEh}X2mX`{u%yx~ zv~EY|h~Sm=N4B6s{M_P;u)PWcdEwxjdY?m!N0-c6MQBNx#?Baas(L!lj6iejP}u23 zWW7RokjxwbNhr|*3c^$9p?CA21Qf&Gfl6=kiP;okPs8eAPvQjeU%}`)Y76=Sd14@i zV3fT_rZFBNXAL$k4<$|n z3@h8xT3BRp093dq_9SoyX<$C+TL1tc07*naRAiV(7VISu20#OdNn<<8Db5(M#~`Fl zsT>BK3L+%inNLSZmn5E>7$)qMwBA0T?0#$6>T? zl*`g!Mb)CY2%XPJE8=JYD&=O9)Ec920BFvE0IOx7_U0Tuh~ZQE$MHxewW?H+2?qg# zVP&!GQVr({rEp}6eTBg(9&}v*C0POl50p%@=&`rlM+<|3*(UnsHSYKW4Z3m`Gcc3D ze}b4RZ{~A2bXm{b3)v&eA_4muUjkH0*~vCCH-K~eo->Gh7^MWZEJSb30ABg8WYSJv zTeii+?+E1he7i-w%@lW-ZQ(h%pBCEM0Icx&fU)dF9D}}W+^rJ3Miw0W6sH4*Qx|mQ zt$l>hs+nwwEF@c)ag(S%@L8z=G`c++Yl`T0nHdm(0S6FO5CtyO~P8kOPTzn(; z7SBl_4zL1P#oxJC#uOV(5(7v33|3*g8CU*&UI*CQh6Xg0H9dy08CiBO014t4C^2KNHH=f1wpQTEDHlyRV zQgS_4L#96_!I7#dJEdLhMjNj$uJr!c>eo(dy)0VIzkaPYKI*GaKh?kdi+d%{m2Or) z)VFVbuHSqy*EHWLY7Ww&QdW=E?`y>kWg{c&%8*=P4Z$kpz8F*de&&Jo#WOR$_B&aJ z$O+`IGYNtZK3@P<{d^X)$1myB`n;m6Z=;usD}BCMt9&zcA}_8x?Z<`wyp;Yyz0vo^ zNB!QnuJrtur31coTj_F=>9@y;zBj6M5k0Cq0GvOl>z_q}f`E)X)vk%O+DCd`vzJ(l zFl7Re4_lVFgE8iLIN$kcdq_Dr$sJe@2&i}AS(z{P5wBza^ZYja$Oe#*ZyMdada3Dz z5`92}AhI4sm6E1a(U!KszzEY~VmAC&wX~=rdGhU$R<7PqNCYU1Z=Qd@b|INd=dOHXWTpMiuvN%`J%HZk^uaTM}c9<*B-_wno&Cd znA|o6z>3%TOiY6=5q5^|nt)o^S%3q-t}gZFqt|{t*SNmEwBN=Wg0;!o;acpK^=4zn zEB2f{iH;A!x9u>mJCSS+I#@*-0DKsQ2E;hu5w{*}Huf4{fxlxrcwX*5*r>!!dfvRe z&}_L>l-?L+lP|nT&wjaG;qmjP7oT^U<+WhaUR>ATBC`% zNgcm;Aa_lw<8CE&J0+VtjVjKVO!HBu>ha`wh2%UoleICPPFxO4dE*2hJBhU4KD)u$ z^TU&-)3KK55YK1Y?>0^}xdB2O;<92gwg%z}9m(m$o$1%l_Zk%w3#8L^6o3jHZ2ZDCEc7{&D~pB64yPv8u|oKA zq-Zg52XvV9SF^dEn^N((w3g)6<&BQS5~Ezx*_FESOiHI3j~9AnJ<&`>7CN>sW~qvp z4(^HewVl*X9cf6pAYP7{+$RWrT6dO`_SAU_I5NdVlb{SEDYYOmoK$lJ!@4}x`3TT zUGR9MckkW>M6ZEe5cFW;xNxQnBob$W_v1Y9#lOj%R?fJB;^ua0aQs1Z$-d*@te&2I z@Zp$IN`bLzPINB1aK`K5{?X123xdO(ObCYzpi2c)Xb`f)*t$a!r3j~!&@*ec8@K9w zc)as-bucrWfe3*i!3T#fWFy@#J4spIu zU1_~0bfq?@gW4XDC)PNhDo>%E9^Bd#v4HxBK1iYr5U!>hRHkFO(r9ww0H^N~quOy+ z8W$8R1t35#K*dgN9p?egSrO0D<)dSFqi}7$kknM)9 zOj7~wrBMzW3HC%yi*&kg9s~WJGPs(qP9ggQP16F)uti#`02A#g4?vm;tw%+6B2o=g!YDlksx$+P4v-v(01+;;f>DGxU`gpiZBPQ> z$U#QHT6~W zJK77&2G3)P2zyQ!j;)sHVDWr7m(=~@&<{=twgwg!pTU96+@2a(8o_BH6O;oub5CZ@ zG)hK=a#(FcxioB`mNge+cQS*d9hwa;g+jlr)FP$T{K(JCc4wZUjk7E*PmXN>OlK}I z@U-5wFfQO(trRu|9Tf-m2o6-l=W{VY8Zy^e0O+wXT~}LY&!tf?9uOHG1&0Tl!x(eG z<*?w)@Ttu_1c*0aY}$PQoM`yr&qa)ND8(~_45!qcok~SC4WQu$x-Mi~hOT=6XCw|- zS0o<*)H$SBH+*h+3T0i4t&v0w;h=%wg$2zU?GZp8jy2v#@WM~qq1XopLV+cs3FQyr0kHzFB9?H+C4n%fW+_6$876-mj>nnDB!<)n%597-p!rbjX zXi~KL=)2$7)$~{Ny+8U?>G+-U*@gc5|M5@Nrc>w|D-%AL2HoA0&^A7Jb^XAO%F{CTwQ}b z&?z99F)`l89udA=AI z03*hNF#xf^kL3C7e+>X2V*|5|_hCnm``TSF&pzIH?wMO&gXLsj(I9~_!cQfMa`t6; zJ@-SP&OI>3=P?B+;9j^6-`pQSFYo2^SQj|s{N%mdFaF+q00+*$qZ9}qjk#k!&cElg zC}rT^IO4$%3_3R{dM$?o75}0UBuR=2fSC1ym^NBR>UBkla$jn)JnA@lr^D<LYqa9b$dEd#B&I+3EEK0rj(@`k?-FRJTdhJVfd!%R(E>#zkNDKwr2IR$_Sd=g6RZ40sgPC5bf1Oa!Rg>UBSycSqXJTKo=TCm5xzA(AN zyt59bl{Z~r`p!inj^WAu3<+aF+kZk_!$~^oLL1Ims%uc z*1aajdtKEZ)SXu96SRR&qS+N}8sZqvC+-_?k^qi&FT(PF@f8lfX zp%dzPzL{g@^1QyoUK-B7u5-}JK0NOuJ|ABT26ss6BcdM4;Rtd8QMopiK%ai{sr75w zXIytOrzzFedxziA2m*hU>?7mLJ-{lW{JH5aL&FCcnC{FA8=9m6|HM%a%q+&@{4A$K zrPZ!ha!+!)HKQ&{D>qo#m1qbab$|EP+S33eH#ZAS=a>4~&)*s}s!tEcnZD0)llCpT#5M{lgOW~1#zL%3B*mllv{9M)_{w8~i z^Q?o8bJIAx{E=WI@5_om^7Rd{aPxEhkdh@5YAUp7N5T&PTEigT(PDkmI~c3>_hRJrtxmNzp! zw6*U0soLVT`fRTLS0-Awk!GL1P?FM}9Z+g1s;Vw?>H5W$=aFiR`SQ}q^*YY9r%N_E zxg?+RNXs?h`#eZd!CKfop3GFhiEtXO;a8mu?w85@94K-C0(Fq&%y*=%=i+5zzZfD{%r*a_DlKENSBE`|68Fbq4u zdgt#Xu^!4C_%3kE6>!_#keC2R|Pg+#myU_u+%HZJ&MinQs~g zhXEeV7d{X$mN*tn0^k(cT99INcsQua)w3Vo??DfT(y9UgCmhU7I0lSs@Ocah6UlRN z|2RMV4q74^5r76W63DtN=DNRs7>qM)fLOFx$1$yTm0rAl0HH)R$b%>Z-=V-ni4Jl8%2x&C6flM`=p|y) zt$_>}gK?5uzhIt^p(Qy8MbDGNhEh8uuTQ7F=0iJP0Jx^5+=753_u&GCb6$)!86$v8 zeR`u}Ixnsy@Ov$(-2)OHKPL{>vYv3A9(=tu?3s4bTr7*#Sa#M+R&F5db*-`2Y?vU?f2mx(@_$)R;q=!?8~d z4q+4#5HHZepj*o+FiHU8F`_UTFvc*FaAa}1BCm#peTTw=)ZYy+$b#pbcd!XrY*mo0&~Xn{Td%78mzR=+0OfWaYgi zM;r_ez+6jf`@m4+nF1i#>1ZHj;wBw}ZNM7jj6s9L0D{as9#Pio3{xnx;93E2jr4r1 z^~1mZq5kv#?4Rk&yDxRISgL8Rm5mnq;^*(R-`rcri!x(C4xB3*2k>m{dG<5+!#-ut z@H_S@!9R29xgSaxu?y%Uah`B?lKrgey%Qarq34XeD<9*?z|&&3(5b2Q>u(bMSO4O_ z&|;BmUo5r$yOj>(*IHK#{SW{8C;BwLSAE#npJ4By|1z44w6Bi#C$8gGzyI&OQQT$v z&NqKc|MkE4r)tZ$sx#^B{CD-Q|K*=*xm#(sd2&}}?&sn0!DlV^>mbV=?an$`0f^*z z`R4q`iFXhl{5=1T0Fd$noUXI4f)GBLNA@(%9IwIY!jB<%WNgmP7XUx@fwe}7bukKO zKKfg}FOnC-IES$(sK-Wzu4C*AbTj~i&g0JOV2JQHdxqNXy+y~F&Gx*%% zI|-dK0lv5%wt>Gh=RrFvm=}T=81jHN*9GG0Bo4SP%^70b8a~eqMwexgHi#7Gq01@f z13)?cY1C2rim9x;hxshlIsrF&f&^VKK^eR4cJI%kT#0?p_~P5)bmK>H&%Yd~^6We- z&*^a)z!hu|=MB%v9_9>W4AEmHxMFO~6dBkFoUwdyeX_mi%JLe|&A`goxm=2|58X6z z==ogMjvZq_e;P&*hyrkXTti1F9C5Dgz#k@xnIR#u%4fWL|IQ-fyodF~Gjk38+t(&A zhyys!Yxq71A0byZ9ckNFT5V5yd3E8x!7$N;XT~7*y6#$yc5hWhiPoo9Uu;_4?g0N6 z`uHi=c(c>@uU7h_-&|-E-z!F6W*ezmRXVO3z5T4#`XSb7M_FfTHoF6ap_3i^jrE@) zDhvyC7(2$FdEtvdgnxUFrT8h8Z9NutQv~ z-Cd`rJ4&}h!gqr{D}XeKt^t@Mjtgrn`1qu6m=D$^z5=ld$!6>UW5E97EZ{wW8hA(~ zggAT9#yReKefi~9F)WE_to;$u@kXZ#Ie^F-a8XohTX#CdkycTr6XoeUs!Ooc0QsE3 zKn;;~Yjv!YJs$L`{X1R9Z?$Xbp4ywah26uh<13MP1iZp#u>Q6F0Y&#NWjmcA^<(3&2i)MLy}6& z3)ki+6%w}HWu$-eXFt-%pQft24+iX7y7UWfg?n(Cmc?DSQUD;*bR5izE7 zg6zqKOTmK>b{LBjF)|uN!}-Ek@wto}W5#EDjLcjiKFPdR&`IrkfK&8g!+kb`CL`~! zX(mLHg!t6)Pw2u+GH*7WY2UO?&R$$x*{<^$R8~;UVbGxNRBmamGS>6q-k>7jY>g%$ z0C_`FGceK|ADu#H;Bc;OJ!f5Y^5>IOih5$?#tCWW(4-D@km{2gEg_>rN#goQ*&wVx zQyR_6+2e=fClGVs1NVs&BjhZfR|h58R7Z3~#}iB9pbfcWTq^W<(ZPdw+9;b%w9S_+ z0gdz6OlYW&8O^(tswRmtzHn(UzEFHM(rCHVmUv_~Q!%+zkp*qcqKh;wXw)^;@h3mf zRsTV&w?9=E!JuPaPRbK($+N!k$Ny0O_@Dom+K+!-D6ys)b`0h>do{>-aBhx9_^xy- zW*1Y1f{nmejnyU69`+z|ap+XDIMj#WvjS6>QDm4I^C$aYPCC(B$t7t zxURKMN|Ej+#t1`XH@Yo^mUh>8~{@~Bh^%&`4- z=XmMr`r3)#Ex;Fk3j_kri;9MMW1l71Cwx5KxE-TMhMY;}fJbi!fpiQX zj^p#wvmGUZ1xmHZY;s80C}x?+a;;WtmlSe+x;dd6We2Hggt$7J-o^v)Dw}BoN{O?8 zrjdhcHdX*SuF&Edj106{4(9PBICDlMTiWo33?bJAR7w-NLh#^#D}il>(}JNQ_@!nU z;dpD9QeyN{-@s+Cm!A2D0eKH!~t1wDU>0EFuafldvvKlUii1Sva6P0}I0k5G}n4ra5rO1#y+3b*fYllBR3K z_IS`7{Q;#a57eeq-eARetjS!~Way)l0TzPf{i!n0lqL&hNu?8F*D0dX)J>xklzF}i z7;hVd_S|~OI$CT|2hV-1v;gorcpS$ZF3geH1USjD8D%A|0pX& zAec@gP;Hye_307WU?`82{}hGx<;K)t?sv0aD>70Yf~w^b@N})NBA6UGSSA~7jZ7>G z1`Lrx7%wTzFMtPh8Cq)vQA$Fl9MFbL4w)Y^eUz*LtoS~e`xZa|0ewIibe`xy(mL=q zQ^!@1fIt|)UP&`Bc$!{yUUL&>y5MAxF_;vE0USu21UG;SSU{-BxE&U$Gy>kKCxz3? zYc6(YLtL@&@1!s^=0lA-YxKR+ICEwOXUpQ}90=$l0nE5eIIv(SpE=cyW@h?8Q^(x_ zTIfS}6$TNiE&_&L^NoXL=9h8u`v?&1&;(IxqAY@(37v(|cmj;&b8#clMvJi*2ZOS9 zjD~JEfUsE_y4xAZ8M+b$)>A9iB#ayzV25jfYiNUXZqxw#EM&PtX&CxcG3F zz{eqs-QXERmV!W*WDnU;((mX;g#Ztyf$}csJ=j~`hkfN4379!drieP4je#B#z#$Aw znpMQ^;0UNg76@BpRuQZ{wD7Ez7|LiF9bQ8e0AR?t5%^+1Tp~?otcR^=&Z8PibN~@x zM{$7gS%6cN8c@o{VMk{}FaE$LBIxEp0r$+h!$vioXtH4tb6~WLU{95S&d+`{V3h&n z!GxkKQtkH>aN*#?3w0SNlYz~qhLW-qg!^d^Zd<~=8o~>I2V^zdB{O>tXXN0LQS5U7 z!Vo;g9@Dj!b&U4Xp$Q2SrhxVTi?skYZ00hjN^s!0k0xz&M87H-dyf&6Q{wHh8wBbN zVo(ZzosJ_}YL)RNlZ(i=I$ai-;y15VZ4l13=+-+zVP$ErP(XmSAcDV6e!gyhxm=DYr*mytvZ$ zzICHN{wM#5zT8DxW|t~gKTu!XXjfe5N2`-&@m58<(@)<$=;f;y+N_?mdPGkUT{*;B zOP#(|3*pv>Qu?3%w;$>%+vs=y=npmjwNJDk-)d3*jq2{nnt`1C>|@SP&Ov4a=L{ze zU*ZfV;Xs`O@$fpNKLb;UGk$+KIGA-=;n1CoeZuw6=j(Z{IHx&>`5b=7_%NT`17|P> z4u^|i8n&v1kzKJ*8595jAOJ~3K~&F+oh11dfDG=HYcV$l%GpO0#|+>I*MdQcDMUBY z!N+c^`FP>XCijgE;C1|s_wnD{2jDyR&Nuh!QZzHp$H9*xsDhD#P91=bg}wnqIRjb5 zxw~0)eWAF9T^N8loK=?vD^-PFinFz`_NSAwF4Y78D5gx2wG#l=GhmEO^LiTR+U(H& z41q8{411WW09XqEO^gdR4!gqN>~Igy%5(F)Bqgy;F0m##N_q1rw^I-MVCn`7anO=- zDMfDC0rrH)ic+#)>RkEo{A53hF@w=hS2o6y`{vtV_`vEq2hcd;W`_-Bi(HrYR#oUg z$l76kxnEvO+w-&UNhhga&PL;?pVu)uoy;vZ8{nj`NL#Ox0nNICo-#j$>_dl8Iw_oq{(VQ~oz4~3H^0`!h zO7+zjd%gWU*Zl)Ry)f51|Gb=EXtN3WcC00@uk-r%>D6m8h0PzpT%Ol^3dZ3$%pK+* ze;@D>-NYurkLfMOoL7-9e{$09+Z$EWRP8Ku@r&b1n?m|)t@YF6UuhiOO8ZWib*^9E zz0+^MIO$gw&l)FB>a|gq&@?Dkd#tp6O!csx=|_LF*YiWIG38HH=(5Y0<72bdgDnfm zXy%>39UsC8_36~oCA^mX%xk^wh6Fk`kYqG|Jzce{6HQ<;9kx6D><53Vi|9tjX{jo| z&}w@yyC0jMcKA9Z=^M4!C9GCFQc>5s=@V_YrKLFxCQ+JtIx3$ON*SlkSGsuqbM?FT z%979sV7h=!wfEX)%>Z%$itvR!AUI@hIHQ=Cz-A791?!W);R6gkG(5ko)$`c+8iSp} z-r4RAbIo`V7ZT$H^1#825cV%I3D;-dO;(top##u`%UYSGK|;kgv?yG{ji*2y>9s_% z3ZH^zKttzYuvG5nVm3EO2D`~?tE3a^P)0jc6tNDuHqVSdhQ?x=PxbcwMo+sRtC$4s zMH++9uz)Vx)*^{YC&gi0a~^FEkM`9_V8fomFD1TA0I>#g0{6?_2khcAiP@M7e$PGg z-(f!R_Ike;wpw*6?Po#Q;C=Y3oLihBW`nZ_Ew>P)9Spid{J>|&=BBCrcYp$z(P*(c zNzsu2=HQSLq(#~QJX1Y&DxVFCTRRkTfUB-}tPtNG4<|Qxq4W$tD#{|4Ic|0|yBcYG z+B=y(n--c*ZuIc@K{uBRm;NO=GCU+AVFpHS9yPjH>iwbAmJ)`tR~=<4n^bu^QJ%_i zUmfQf&tEDb-oodAEP)Ogdys}GBw5l-udiRI9gUTfkV>SRY3`~R%M8$%BO95pabAI6v)gI}*`__IOgo*nTPUE)ch5@d zy~@K{eO3fQPz5^*y{cNH@ze=pWNgp{H$ZkmE-EAdmy1jLPJlyz`nc-HXS>EWmnCQawC88a$&jEg&|p!JZK(;A?Rm z?wzmmS(S3&fh=Rx*o?dZkckI@LJBwo)gG05Haqlm1em!Y9B+bVGKMy?90nZXgAoS& zAe_a}aU4B8+hcsKQY2x0f$pn&o6c;BG)R0no@&B&jCLkwG&UUE3`*^qB>? zorR@y9*8L{t}HR*gu$O*U3+r5CRv7uhX)&bo|7yDSw_%AXa8+TdVTfwy*D2jDv)im zRvZ94Kh7D90?M!eq@V&~=N3>laWE0N9m<$O9XU?y$N_jo1_^c!o#kMoU?>@(CTO{& zX&%I*ds)=)3Q<}d2f#z;S}`0UYexCVd^$1hlMXmI%op>qR!~#>TFd#|U{V*+nFqax z$oe{`5(f}UBZh3OvfDX`B9oF8Q|(W+!4DP>-5Oei?4#T)xTF}neQgoL65*M0mEGQ@ zei1?+Y-8f0Kxp%I%?GnCi4^bSBGB9I9|42L7@ZJrhehHz*OfQK$GOI+#-aAqB_ zG}B}@_FBYoa5p@%a}B|WoV7~mhyij*faJ&N&5)boD7a?MVU4x9SkTnnW6;Rl6||Ej zzydHFG?tPmHH!yLj*{s@*9H(^95j(!vKAqZn7F3hrHlkWJ*BTubn5`LIKb�tRIO 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 &wC3#-co3l_rN_Q4+vR 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

    X{%xs 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�gd*lq7}L$`rVN4Ni`+3^w}o`^NuZ~d zLc%;<+1FvQe8=V^E=`-)o-@OrcDoKVEAy=KHNJ{#CaZT~MXhrpT5vYe(ZtA`b?N~o zyBMUBhGmCJ{R2+hCXZZ|c%!C3^+AQ1MO{aQBPY+1V`~ZQo(Lxd%ivr>3kXi|%>;p9?W-W`sI3W-M=UOMDsvCR(FBgrzfR z$Fplk?=v{bH$Di@O)KE~_+hs*;=^3FXFO7s&yDp~iOPk;)m-klN|~&I$zd4XfY1%w zsqiYN)lg;%G89oA(7k7WhgZu-sj5nfH*EZE?;f>Mt$Cn2K-Y;%sW>ZxuJUWDg{y3n zt4RYLd2(?0U&lFSh_Y4F(3&EH$gkt1Yv6)yF~GkCp|`u`o&v<${>2Cf#C@oZ z+B|!luG*vkTnZ743L*^?XwEV!^CPiB$i5OQDde%F9Vfe!e-NLZZp2j&^UV%JZ@B~N)93G zkYJ+!2%{Gl9ns=Ps0?MK$*67PaamZL86{D2HCi(^gEL4<{=b3yKgPsjvjP@TYMv$8 z9hk7xXA{*g(;K?-%WH&IYT0OKiOikzqasDAFxxRfUe8Dx5!~SW)U+f8NZt__T3_8y z9l*&>HguOLT4T74dV7z70clhqg^Z7_wxJ-#`?jm)#5ccujH{Ost_I(%g-sOMv&6Wp zHHMe_;KDSB!D=w2G!}Ul9r6UbHmZ{PsHC1YCSS{|F`HmGSP$awgx|e8*c=L2>Vk0u zgbG~XP)pX#%Pf3BD$iaEcCh21bVe!}oZbJ)-2m|6xGJb5x{Ht+8-^=@LvTS(FwROq z>u4sRC~f12M_7b@v;IGw%MV@0lFw&JbsXkqO`3Ux_AkWFbboA{-GOnvF!=;aV&lx zG{!k$>EPEW-Ac-qapFcqyy+}mtDtZ-vr!lRN+s=;xh34c{3Q*8VVfj=37Nayy|=Tz zK@J%#)&I|kli;~x!l|E;O2KN}eEqxeWkG46$ON`C3<7qfzn>)Oas(=T8+XQntI&$w zlg%ycHZ<0xSfc`8CVQS2zl~{MPK)FiEhY(0VAfu?2Mho8g-=qJmWW z{Rmx|XSx0qp0g;2-ib-h^}x(8GL{kljd8X7m(Hl5$0`4Fov|9;58`Dhs;>#+v@wI8 zJ5D0wSNWcOWCT8&UR(`C-3-S`b+ybI11KUVUOvhMX7i6ozf%N)6NQy2Z|_(Ny|RbY z$S6{U`y3D^lc(JO!m_EElMiX7f7(QQzlP66eYMgnk@VjJp5n@iU*txpKtu2u6TrUa ze;+d*i?#9RntSek?iNc*-U#QLA>yGSj} zb^-_j|+->gn{UEQg)?I8!#ke)EYTw_Z z6J8b#Q;04VU|~y-rm^@p0LM8e@J{93f7r=K0X$Xn1|u5Bsh7xZMvX~|X;6Iv-wOtTd1LBDb(W9)z5sHR~FtMdB)|MXT z9@|kgb%^@yuiN#sL&K63Q|s{BTZX8O?coXDwVMgv{+l++`a_`iaU@j=G#?t!}HeUizzpP+(%_P|T zg1LnK=+GezmR*;px^@MVVs|86#4pRP3j`<1P81w9f9g7|#-;w;QCUV=m6AJ|hQkYF z0**iRWACuy;g}|2hBsC)=Az!X@6x1A$e2r!S;+*Yj$KIzGYTsP1CQ4NjqVVNUpfxs z%z^-{NIpRXq&b5;O%hFdSfEsM@bYiI{v?@4l@jgMLt<6X9r(p3dH*Zqy@d?qd)C)# zNozn$+?Zq|4|=pn9HwbTVV327(0(jjZBuqM-!tnqH}#XBk~h2Aa6O1x4Y5)Bv7Mx2 z!klAi1edft=E@0CX;9>~osutp(BqtMEga&BR5R+Lq10%v=d7cl1A;ML2ieD$F%<_+UjFaV^?G`Gs`n z?xoUiEAe1+jPbzV;(54@;|RK#Y^*qxpdh+TJGYB}2#@=l?+_^7)Q;s=*T7+G$a2EV zF8Z- zUm|J4&KU-vUh}gUb}xeD7l82?*jw7Cw&jyQwKkrwDuLVewCfXck&FS1# zG%XFa4m!eNt#MyczU14)*Hbtm3B`p`ZQtax%9zbi3BQN^?ZO?hD(8e8hqg%;E59v0 z?XE0FUw7=zl5sOgOE`_{UW8oZUp!`-<1?v}n)PAtpyA9~$zCCzYHJVEpFf_XhH@@C z@vY~KAFNfC_>JX`E+b5%qYqVBMsh_$iNJO<%YE@1OWvm#AYL|Q!yHg;#oYRW9W}1t z)~QdwYI4MQ)KzG)P_fdVWe&N~R)MSjsQ$n{a1^waQrr_!RSw2PI@htPpSHwLZhhM8 zLO6vN8Gp^CU=R;ztCH$$cZnT}pDa*h!Sv*Yy``GGh7 zAHdlt%167B%vkT(y?!C|o>{7LVO`>8HD#F5u4ew#J^z!RzTO#oYcZwk1-9A5s7zt~ z?SLR=$#GR}mf&FTnldGRE~Ikl=IG!>GDi z8OjsB3u&THzspEBq*aCpMbTU7#4{CT*YJ7Q^xx~;F5woC68`EKswuRy6O$io8YXpb zMy3V9WLLR!!2TASP#F9k(Qq*3gfLZ;0KcL9;FH_p`Z+5^aB)a;fJ8#N)P& z@~<u%>)n1sx2q=+^iS+8k<$y0Ct^o%@W)5SBNEs z?nCwO?mZZ9%2mHkynEiC?X0cxS^wOPz{YH0BM`1tw|LNA^n0K`xtp$Wtmj1gX11XA zYfAhXE0A+ox8gaPDb!f#NA@h7F5l%yy(guR+IO?0OzXL^KM!bf13|z^-2X2n^u}&9 z=!JESH90e6cQ}LYJ@nz@ErDPqmFIsBLBDQhp_aJ&uYceA)oCx1|H+ZQd{xOrdgDkf zvLkch_=vf#TuZ26&N4Z;&rX-8eI)LqI8MBvtgY*2Nej%x=xwCAS+IIDTBT>UAxmXU z;JzC8ZBjUa5m}SXa$O{yZ0Njeqrvk_NX?U;i3r~RqMU#>SP7mYwAztxv&Lm9zw2pn zmTZYX8EEv)w8jD&{cnh&q!1NmSd%jaH3_ccLOjg!f^aFid%LYxS+^-XucoxWUuVpa z^oX4x%JIThy07?maEq^wVT0e#jo}pr+WwJm2Vk3lP})n2N&pdxq>O@9XkbTIp9tg0 z^k90k>tKx|sqZc_i-rk85e*&m>D|!)`)ToC!l2F$_AAs7=GJZh(H&8ftO5 zCPj0LkqX7SQ7cCbqR7WJa@Wta$7HNOw<%@pV+T4pu103F>7!OtJ8cqKFYcw3P<2Zb zeSP^ioE@;scP8GV5jlHv^iaR|p@ew-J%*SHgPOnA^aENx(bt8&CMnd{o(p^Do`0Gv ziS085Um6+G_Z8+&$}4t%NgrrrI%=7}*>iT)>u|?V6D%xlSGGd?e0xP+%gYsx1%toN z3zZ#xj{BPnSRU0}tC6fJVZW?^OR<)Mj08c}CC+G0Q32r}!iW3#!WF;0>~%l(D1Dkt z<-u@0BJ-2INoaEDvL2%jh4Ao1Ds#PuQ%$G{ODT}3-Q+*Ry4l6*;=1lj=V-_u%BLbqX1C!&KRrY);#)u`nC zwY{7uv=>kKT-A!CcwZFwHg5Sm{mqdzHbCk>lg7VgY63-OPX_(_L{bNG*JYdqH7&nc z)J8ijY}}Po*OaK^-C<>N-=4k*{<++|*Q!8Pw>IPm!Cc%3F<=;DRrIBOe%=nR8@xmrGs*$;A2M#~Q zBlpOI=Y)_gDFDZMAL_G09W?O(WG+6Pg?uA5&&heKXQU^Y3%> z&}_>;!P+gtwaFl)V1vSvE1j8Q)(b(y5p6A-iEzLsq^F8@Q`EFT39QUuMXYP)1@ZrV~n|jK| ziEz(#k((;^ql@#5R=C;;bNz}z%;cD)Sdm|II1seTY@(QB6;q_Q$hy?> zDcZC1{%=@c`n#s?mAnpkxlcS~S1nJP!vyp&5qm=|19?@4>(!AKO~(&N7;nd`*;%VK zoVmKR^RXJdEt-5$2|X00h+}-% zByMeQMidQsUxd#t`{bA)5tPi)DEM;z*}d{ysuq_W`p*%KR4oz8{{#4OPNk;At~Y0? zZ&@Z9Gd2Mu?P?YX`Eu20UK3*!`j_<}aG(;N1DcVEQ_hdu=MlxQo=&CUU@#RL5` znM|uXx~^v`ESp2Ao_2u56dCgK;j0y*Ha*CSgR5$_oSQ|ScPvp>CXy`U1#9*;3J-`I zO{yD%4Q;oKSRdZcX8rsaxVF$i<+fwnd+7&&eU){ZsBG=L7RHo|A>M$E#|L0@Qkr$RQ^_Ql zh5X17FcV;)Gc=9Mh6mk3S#%$Ix_iGOUS`*vUkwqc4Qj#Z1*@H@V3v72T@`}O!nk2s z0#45t&DVT4OUw}r(z`oW$r_Sy-^NE3-7@Ej3>i#qscIrvAfn_P{9XwAP%}S1Z08f- zj57@c#0?RVlG=#jw_PGM77BN9kdHy))wcgWA=;J5JMveXMp}jC2@-}M6&`HpEssz5 z3dsyvuSps1eEvuU2IJu;tcPljd*W2y00#rQZYP$sBtQ8|(Bm6XDC9Dm$}fy~1x_&z!tDDZ|ClcWLQABO`a+a6RlN9kgI11AXi3go1kC6M`D=G^KfZK~Fb#Zh2D@sI%vLgNPqQ8_u<+RSdB!L*IKvd`?GFbJ ziXKVMAi?E+;ISjX(T%qVF7HYqrTfCeNSzGC8q6AmQpgf(lvy%mWEk(A0JF-OV3=tK3sw(pem5bra=P|e3%Xs7tQyl%Gi3n?by?M&Xs)o82k z#Xk{YaG&hGcaqCrv!o(6$J2+8Zr9sUvlEeGtOhyZu2YW|A6iE$3m$A)@&8HlW2LD< zOSs(aF}I-ZZueXS;DWxqEMPEC=4f> zuwbMrK9=I}ZI5B$m;1_sqtPwVRBwy_OkYh;K^53g&aLO%-Hf$6->yZLIrWppUm$up zzeY0_QLK;!l(m0jz&<=@*xOD{)jV*aN*}RCapn^Lao*I45Buq$5hRz(Q)p#~`7JK1 zpHHYRP|8J9gJ{*FLi0JJMuxI`c80&WS@~c4zwzXFbD`rnNIhkXeJtB42pg}|NSxs8 zxZ1FfN5u5Jl_%}k=aqt6RN>3Z@zI8CwV590IG##mTe3B<;-Bu#5YdbXBZVeh%2`rB z(kX9LvAjFO@_W4MfLB? zwMTUHSzZ$Lqxys+!1y?VY%I%Ok!HThc`V$?G0K8uKjc`8gDg|^98ygFLm?MRlvC3s zQ8f}jndVWxva}NxX*6$uS5<6{gQOc`I>X<>L6*{j3cOqr2Uv*w^@5lBaVe{>Ea7rJuzy4(~eBn3AoDe{k&F zJmH(J{orlj8EQ#CoFeQk>4vo>1DptUvcBEy#=LGqd$SKs+vbm#NIwS3++KN#{T^@` zbl5JT5APl5ACr7%Gn)E!m)Ea!rU(B8wjM)_ei%K+Cb?aLxJ^9O$of&4Vv%RX8XQJv35k5xJfehRmTvpzGhO*q!d z+{7tel z^Q6bqt7*XV1S0+zkYwZd#@k`P8`KuV+k1~!1kWS&p?yph-NqW3OJ`V zf2R^o1uz5@B{;6kJ0o`-$O>wZvRzpxlcwDb79ePu=)+;V~HnHB{1wsUkN13lM`i z>?pL$wGG2|gFS@50ClF|^+biGs3E8s$7#=gj<$CwhWk5pWj$i~u^8sLoEQVOdpC6@ zY~2G3ByQ-#(5hKu?BqaU0M(<6RpccBoIl~Nj?R#ynv)PARMv9-Gt@wBjkycSTEXi9 z?h*2{)2xb)>M0+n#QO~?!fjOQ)2w!7><^ZE(sqiU&W+E|r|f=cnnV-(QV$b}6!|PaO#zdbfb- z8u+k~n>jECIXpeheBZ4aZqTyTN1Ff$)2jx3%JHqSWWy=MjNj$N=Q8}xjLHa2$=$MU7P}S6Bgu#_ zNeAZ|Ysol8hNg>;kL+FWe8cmo9*QENM!IlRn8ru7^l1U(R#9I2OZ3+9F+-=1SRV!e zrfmm3^wVQ~M3kq$ZheDJ@BkiEO)w_beK&Y*$xIkCg7!PI0thbmxsyLtRod*Xzb ztwFA!3G$H!jqW?1d*4}fub!COM*A^WQ;VSi)2wvV?Ru%DARo0n=cS_QnvhX`yyDWa zWU+oLMe1|E+}P)8jn6Xv2zQ)y5e=B3<^(;@6*ub2pT^z#5UmX9Y1st0Cgo#*_g41Lu=OTYYOW53o*w`K*GWhR zkdWwS$GgS<-dq%y;Hjb3UVkx~(i)o+WFjy=KR9?F9zdcLl*Tr_=r6*^me;OR1oFkA zzn`ASKTk|mo(CLZ9mZkyR9}EF?{frKHm9Tx@i&U*F1}c4Qp zpt}nD-Xf+C!T7q>+v`z1(;p)Qpgk;WzDsoUfZP}9UjKTq%V_TDx}C=Q*rya}J81Do z^y@gRbR=HkPVp$Y{A6g@U~Hl-n-w7Ony#Ng64o|Ok>Wc%JIK5szxML~M83wyK55D@ zvJgrXfGL$%A2f<$o4HeA)&;KGQPQbJ3lEI$4!!hpqBtoLHI#!8*~Qxlv|?z6>8JY) zvtDPkAgS~R)Fy$%SnaeMY8FMiTND~o1gqA(P?-y-Ex~!AKkr$>V>L{!d8q!a6T`#E zAr^!R0$f#I`w8$wd3n726`8qRadDAoQsXHIo#SyHg{IF4fKP6HmZpk150BX7+txSW z;lwwrb{)yTjQgBm*xU15_bI^0f+fx}vprPe;XA9EN?yg(@E7SvVzrmZr*?LHj4AMO;BKH=vEqIn%edK@n)=L*g%KC@xaUsN6F>iPyG9DrO?f~! zv{Ht?WmlXo9x1#i z`e$)3f)eH)wmsgWfrKmz(}4u*D??S47Jz(M#@1#a_2K}M^+_YMy;Vavr=mLrOHmWS z^%N%e)tCp1PQ$u3-iWGallBm2=x)k?tHR8>?qv{#iB0xx(a)?~qiI_u|2ouow^A{G8{MM9fZY>%FSEfalT1NU2 zgVWKwP-~@u8Q_e1YbauNn8n>?AwK`gnXB8V+44o_EqO^32HJVHM3bJ;bahvsg>+Ds z_x}L4VUk3q7Xwm)FMw_QF(u9yt=-C@PD_=2nnXPZze$_&p#Ay2$s@I2|LVkp)dh7G z&t4^mSIle8ubEfWMe(=`+ABXuxVwa_DBT=8Xxn;NxZVsT#cj9T^QEgW9C{7fo_cuM zHOWGJ^mih*M}uEKkhC|L)$3Wp9?3lzXp0n{Oh?Q(1Ln2Dl?Dx;(Ka^3Gsrg^bMp@a zqwmD;-7&X0P14!>r^A0;VZKKP)L}V6j8QT08)&aOs`y zzp8hl9i^5^vx@+jNV;|3w0iH#hA1;9JWJA|%Km}mE#$qQoVX7`dw{>=Bu?7eNjE4j z=VY`bi|>*Mb~QAug}{|+TRlc_mjOo8__NjUacNPh9Z|8-&ez_OX3iA;5V`Q{KDf;4 zqeYlWTJMuFe^n8JNMOw=?y`XA8s#lyuqjs`897e-HHRr8HC@Etz8!G(>~&+fa;SMTAFr0 zy;^7(ygl*ep@ONIPnAur#{U3+Cbr3J%LKvt)zJKZmIq80w@aC+!ZkJFX+YtL$yb&) zWi4SAp_7?;J^os>vzhSc9Tg7t*g8Rf--1#%MC{KJ zAUEcR>Eo{sXN1xFtmT8cLhD^JISJ&KRY?~w>r7+lnSk&K*b zJbBps>5jn^_55xgX*4{}w!f^IKu=8)U$pTV6+Bk^oHgtGH9xInr{!il$={{L=7pYX z!u^;d+RFAM>Ljlx`40y6WTa|par0unXR_$}vlSDtoEb9Y1ar^O5eq`T+%d`zBHNzhsI zON-`w*>F2nUo!leCw-O@anz9%a0(k`x`?VYS|h1FjFRFz(WLydPP%_?+$51YQ@8tM zE~|~KcuxJXV_G#*3saT_cHG1F9%PJ)+F%KbUPcv- z1tuK-N6~r5Q~myb_$+(x&B-`8MvlE5d+$UcCo_A`jB`RAdqv0IdnJ3MqmEF=riAdJ zju0h8r0?(i{yl%4$KyWl^S)o>d0mO(vMo1;{jO*>o4Cuo!}sID3_n|nOnnpssw9eo z%eT72ko$2RwTU0fR)^Tl8JX+|om}>M?>PmIVWVYI96EKsg^+m|gI}JrHGQA+6E#Xc zgls-3*HWf^;Qlar&kQ)gwsNfLaQZ)hP(2CO_qd}Z=scWI*yz*ZDy4CYh5WO#-Bau} zd<;3k5IXYr^UZzu-|v0PP$l{~{hDoDMfhk7t2Anna_m=vtuuLFA@~+QM15*nn#dn= zaQpqt6>7378%I~y<5bT=d}HW%Wuj%?plVdy9T3b<{l@SY{Hi?tDWP&(&Uq?}-_68( z+*NP1JZfY6CIGC(R1^eo2<>XwlyYM z(LUVGpZD@gn)inaTyLrh#gY%mtbd6|TUOU=@&1$&@!R6Ej6OkKYMAOzAus5gNsW@$ z>&KciF9mGgP=+&rjDk;(T-mF3FY?p19ob54oSGNk{VS-LAq|aT)!Y^-`K`3vO!OXg zf3l6;_o$J|xOiqa@qYi(N7d^p-pYROouK%l|E1Te|9M4XM{4QCGkZbv2ah$L9CJi~ z(uEJsD{?MF7#JTuxz^q=(tL+IF>Y`cjh;+v-pdMdQy@c)%>B5T{adz$PBY^;T*h)Z zBKWRe5hfM^GJ_XvAO8oioDo*W+#S2Z3ErHOd3zvWCf=Y_D0;fM=n5WIsMeC~kX4Kc z+{^ms7OKVFx;Ilwce``sQbtEN`Vf4Y(RvZepCRaB5p%frmRb|9r3%}vN>I4*o%)q| z6qS6o!JLb`;~p9zI~2c?t$6G@skUT8c19#fYp?3`h?sm*s`whwbEg-$&9PkFz})Kk z_tu%>>3EPW@~2rpRdv+ zti+R>hMoFIFQhXn9WOc?ehX>w{JI=+JNm*OKQrR;N3;ZEDX4wYC9(HNbIZ*>O)pp^ zm~yZj%lQX9*l?TjKm=UL2HxJMxb!mYqAF?92QUV6!g=j2Zj(k8(iUs}tsRg;b5OJF zY6`Wc=Rl9s{2XW9QsC&h#)o1?1X4AM7@yXIcF;oO#!C;7V?^tH|7LXhpaMXFl68(eV#g0hW$#tWy|*9 zSEP8543MlfvZ0Yz2zx&s4PZ%_zNPJP7Rmf&Qb7Ae{>Uwgim+;aBwG1AtBJRxbsNIO z!7tO!Zy=s*pJ2|KdVi^$16J=%-sS{SBr_PVRiIW)lz4^v_}4>^6ll2yEMAog5$WF< z;+qFkqSSDSbL{nsE||371xecwF~cki_GE&FNkHY2S?X~ylq(gydpeYMLq>; z2&#Rt&L{nvvcg&Z?TCS4+q-ln+6*TCsi(q`%)mi%y^nvqppimHQgREY)`N7=w{#fz zL1?pE%pIBALZCdXosGRWOY=d`QS{qX79Tv00GS>?_{t_l6{n4Pqk#a(v>4vWx;?mU?l8Nrh;atR3bro(0uX*rN&AH#?9pn+n@{9B{kiG5r%di! zq-|Yxnigq#e@K{UKK;OSQE{{7GzOYnyqP1e?Gkxx-N2q}6f;_v9LPOX@v7}Ku)(rD zjig-wy5oRlYZ$nL>5pp#DQ91$@G4V2RAH7w1&3jd`6AiOKowUh?s~fu7zT0&`}4=_ znj@+B`F;6Bm#sWFZz>&r;a$9;y%!qNb!jCz;=Mj)UnU;dvq5Pd?K0OLaRiVZV zp!&*Avn?UGI{O2ZGT%$aDI(}X2R?gxU~T(?yYl`1;-dpOO)umrjR7q4{1-UoH)HZX z7IHUmnBz$@0zo=OmFpN(S&VB3FL90=kpuGtz`VdCkta9MK+_IF6@`2CQ`)vqPkV$h zlX*(<^em_(-0$k_;4d^_zP*6(w9Xo8zzMUg?hC+AFW|-?Up(?nzUogCTofVkUO3np z=mQ?;3;-?X$kmP{@6Oz?_xulg0^>iLg8n(-NBk*wDO^|HgqU`Fck|^_`81`RLYeD6 zwFm~weer#w^R(g$``&^YHu;^%pJ$=Eh4g-ZXa`ezo=4;h`0Do-)?S6SCIIRRU%*Kc z#HR@3(ya63K%ZP|<{I?(ZjV`_vbhaZg3~x@1pXis72zHgkR6I;w~t2wG%}`CDiJYX zhhB|99sy?zx54>HkGg=LhK4PR%Ac;zL2DqOI0*ox8r{+vdJ%Arla4f~6qd=4yM~FT zD)xu)^X@93dJT{ES&`FaC2~|>1JEAyxw_RPRA>(>whc!i39Z}!szfwa3K-Fr(#ROs zceu;$#<5dr-+*&_mU)9JCpVK2y1iAw_@=K8x6qXFClrsYOIp#4aeUn=HQHgUx z+Y~(q5ea>!Jb4Sl(cPbyLf=?FS=3-`6);$B@oP5|BG` zbTAtNiWHV~@tx*lp0|YFw5QQF3+JSg#_4q}s~MV?<(zI!?DzA?%E-?)WglFhBP4c1 zs|o5T{tGN@E093>oA%m6D+6P);z)$>^C|dZa*F#_uZK&mo{8dzd_OPoX7nu4eqnQc ztNa$5N~u`mEsSRKrv)(9oqit?#?WPmzHR{?%j!r#O!rIg{vePQ?=rvLn_yEUVJS}H zplc0Ca`kLI;Wpg_3Ck5#{a|0=Xi84FIypRAru!4&HbBv5>GuLY?RTz4r1EyvO2}PX zqa%pTmXk2@=2b(ZZtdYc&s7Z6;kRcpRO6zY;?7g1P5HQhs>33GT9fHx;fB`1Z;3WZ zxHT0P@mHTRV{;mhCbv2C{^PvTG+{8mKPg`yz~<%)yg$tdwQI{a3X<9nV};%X#q zwG$$&MW9(40g5+Nv6>Wd>lurKKq`Yz1tAsH=Su@Nb$7bgODP;SKdEADodIANyyHWS z8a6ZND^jCh5XGDvxnBBc!atNxdI^RylAXmtX!(ryy%ZNd#epn=_ubmMwa4_uo9u_1 zC+IebySxuEOF^=dVrBFs?fO(&9ep6X=lldr&h_7qRrn3nXLybHaO#SZpe68mQTUk* z62C7Z=aRFbJ}OPmNL2v+dPc3=QbPp_e<0)MBOG-grPG^)c+WG_+O7ExzSj%>{JI__I6n}e?aN=WNwlQ9zy9RLiRdH8|&1&)}f=2>WKC=Zcvn#Zdi(S%6TJK_hzmlH8|>mWy%yi8^2^c2;MYSuu9r=vqAQ1_v>7vmt^;mdY4Th|{^ zkZ!*g-$Pak%C^b{0XxNr_H1|Gyob2ywzcaCa1%N%VLHIlWp6=wg}t_TwjsdLX5TLW z$WY5Ovn5^gg~@J3M-@D1vXM&hF%X{L3#hy^8LPvFd$EMOgS)o99L3O zX)&K`d3d`;9^AJwm*L}p(HUu_U*1CE_;Rpx9I6TmWi1~G1<$RlyqM0oKU<7+$RxN%_96Xkd->o+euR9H}_vb#QKW;thdl`47U zf=$n4N&m|in!W!4{>1*c(tb1Fw ze;Y`FBc*EFav4)#ETTKbtbEt`sbo<#aWrv;-?ST)gh<6J#BBUss8xmqD*6 zoUdl>)=dNr7yITO>pxEpO7|dmDK~Rv4{$^lnX*rtVQaQ7<{e;?o#>^}lCCR54vy3r zp4PwW(>MP+lTP?=_PTVtfPOvC*O8lKR3m}G5kli%OGpejWutBkKGBBlG|}WIzjt>> z%o4e<#yojW>CDXG+&;`4=yH6R&LQIWYpSqn|7zY;Z|1r)+!({_I=gMuz#)qMHP`NyLo!k=*I3NqfT-FyKb%ib#W%ZW5M?hGo;ugzFA z3-50~bGuCWDBw1A~fpkxDuJ#JbG5KIU!raOjE(MO$#cr z{mgT!KHyw&bDOsA-htAURoD9hQg6`p+i&N5p;f^wN}cq{9sXLOWN09)HekBSYK|CtDsfU$pc3PVD zTEBoj2B(Li=PPQs(RIlIr8y@FiqM3ySD_l{tC{fD>Gn>ZeaVNSVi*#|r~YJv`TTX7 z-SwLV9B0{Eoc}!a!A+*Zf0u->);L4p0(KAN(XmI!m*-SVVE*|oQ2nFytrMbg5+p~B zWVw#eXcF{n$9*v7AyM>$jG@;gSG}qX)PoP9P*X6V>|Lsl8uuUcI2yn(j_oqWwy6k= z$30s(C1gvb3yPavN*$<_;ZNL5_5($C+l&^CKG>pmC<$j=^T6BUdY5qre@IquHS13U z`@Zj_8Jw2$T_tN#Ezqtf^VpO?9Nu=QJ$}3y6c8EO*Yp>k1L5&r3|V2J#CVIPVwX+1 zTOQuU{wQ8Z8=zb_1>=SiaV_Ze7`A$LU$j3J$&i9kYQtnlIO>6K{`;YpjzBGj(}U9e z-Rj!CDX<^C#erq*-bV6$*3`tI1re!u{v{@*>!f5T%0z_UO2Eyc#{^KxwsCeB zAOm0e^$){n6|O|~BuBnfe*|<%Xp}oWeEtaFfhRretf9Rg$mQjMWRxtnPPy_ipqRbv z=QZ;Eo(=6kq}w~4d^vCouSA02*b{=E$K>K)t>5`3l6ZlM{{i&7nt;1J%?I$kfidtQ z!G{dP^*H1m_~mT$=x9on#kirCeEr|DwtgV4GxElodr)zIOR)HfcxASjVh@-(AeE|k z@swxa)rQ>ZQLs2jaYD8s`$2xZX@5N>j-OFH#K_H8aI>dt-VA8ca?Cq$;%I%}#r0>9 z+&ri033-pn6-`4a)Ii8!X;4dAe1t%Y)F`h`9IC&?XeBO8?J@4lsTvjeHAXkiYbB@6 z*Y9;UZ`SX zc!}oXI5NFXk*T4rhf`@Kn}I$Pc@p_jUWeq|u`3nlzmsogiQwnYi5m0b>*dUfO!M}#QjZi{ZqRs$bQgc~I1Gs%0=(Y2YWCBs>7rE8h(DIX%0 z=Y{0mz7_Yjn+maYS}*!Z+8Hk0XtMq6a>6*h6hs)9la=gJf2mW$7bdH_tDG%Omp9HF z;?tKPDB&LauW{iI6@UEeooOGs=@LQ*&Ijs{@HJ_H^WWx1^rf|lgiBuyZyY`HCpolU z)aFoGe6SZ6qE+Y4U~TLefgt%f3QEP@4XV9nafrFH){O`YNGwRWnHCYkfSBSGx5^#A z)jvN%-m;os6+tdkPctnzz4&}<)0!WDn=qNwq)G_Uw@P@$yfO9*<+y4j8gMjYFMK!Md!BcJIq@xB~m?8y<%{B zIrO$g!`Bu$+}6VB7r#JQqy8nTrj@lm0q=Mq9j*SC8u8{|8E?nvjU>y%Nr+W0wcNf} zSdxjLeOw6dzO%W-BMS4w?gAbog9i;IfodS-zLLHQz(AcUr)p_zq;O_!j=g~(r8uku zqd!1%5U|BUtmw#E=@1n}8hKN8uUE}!Iv#9C=2+?WcDtIv5BI6$=GryCKFPFfY*2Ha zu&*uvrQCAEGBrrg6e{8wMGGy{@y~3FCBEDLTPG`uiHzdzLLT5tgSA1EJhz(%r%7_c z9r4j^^OtvtK#t#)2^ZP88(p5(*?-MVm%1E!Vbc-fR?<$#PJ79RRvIubj{%=iVLu8U zdeiT>yqr0ceCMCoJ?CxV{zPg8?aVEPFdDiKP^DA!~lAC~Xvbv%O&|^qa zY+KG;xUi|XS)Jj^M$=7X=N}JU@LZI~$EP9n+xS{|dRFse}gxPe%)EI8>sn#K+@wY!rJ_%l>`T zel>R>+mY*6t1#7Z)5%Nr3-(*Id_j*78`yZK`I$klG>?HtpKLQviNf_Emzhm*IPUGiUtm_;6VhS)8j`00@AH@M7DHqLsn#yRNpEjOfrS>3X zv8TgsP}cVXKBsAjx*|(?o8Du&jTiY|nK0B4#@Uou~c)_x)Jd( zBO*3uC>3jCr&ku5ChFliS5B+5rn3H3`$Lz+TF`Vj9303+0Ar*a^tX|A`za7XCd3ov zu2guC8fIqIGm}?-)m-l?>(B!iQp?PN7f0~l{c8q{VhW9T^ldQSay*z+hg{);%y)%c*`helNsh3UB2Y>`_!aA^1d{UI_!^B8+0pAjO?RTu z_Y=8|l3;^H=WRnG;g*t4tTaV%ZbL~4xC%dwA^%u|1oy2Ep1`25JTeFlqup+Gj;OuL zVvh0t^-$%pn5Xv*NDSKH5}Q_pC1A7t(5NuGXqqJL>!ExRg{Dl~JW1ni$dlb>FFc-@ zbM7*fOKI`QBFvm-HbWe0zVA>FA&TWtVty5~=FP$Fi3fTBad>wYA|zHB@?L(!T@C|t z8LyVQEh}>mCI2O%oueYKi8-*zdcT6@$!8w)tZOLTEv991fyILkbe#=;NwKx4@F%#6 z6JE8RR(JOgem%IxQQ8(L(*_ja}wN#0bH#GWF_c5arlUZJr`fxryJKXIZIu*2^by*c=b!iI z_x!*N^i|X&>YX>Cz}?mhmVkR>26;O;y&t#zTS%o?o;-B-M@n##Nht(eN>b`81pl!L z3$kdMqT(+(VqPnJkg5W9o6_9&x4D_G&fHWbov)E9zp;Moa%|7_;uddEH^+LxXMQky zR)=Bs5XQ^vRa9J)Zy2)rm~Hh=7%+6)NMzL?21a3ACaNe32-Fh%Tik5{tW+*YQN9-v znPZ;m+@sho2DU%h8sGuHF(_{p3SsMP(pKOhAFJ%2otB+2<>&un$=2oLfX5H@!QMj+ ztkN9N`Maur&2SR>%);; zR=|$|Qz_3CH05IKBo3ro{kxk-_JwY777mDPh5duVzJ)l63Y$zUILp}Nfmv3=l zEHO$Yu;(!7BM_cpO3NZZ%<0v!(#q(Oy9A1k1W43<%h?vKBv94)%bUW=T3}pt0z44{ z6lM08EM7QerKZetX;%{xJ`v7GS6S7V^bVxjBq zOFe3t4{!iJrvf-_`%NMdaU##xJvG{hTKbBjcLyiI`P=}m3gYCzy<-Tvt^(DCQ&WXy52XC3&r(33dHf=XO21)=W2)?| ztk`GirMALSzGRDLL8ggg92Mv_1d> zxWZo(kBWCyRK-QOJM56@KbiQ_YcUEPg#6a_7e^Vpl)Fn(_s*ClG&%{wzclp*+*d7f0_qu-a#|sOI)UhDyY=(4%zN_x$0hnSv6rai+^x}SpJM-Fessn(3NeCBA zj`FdNsr*y_qHPd1r=^KKD#Jb<|~=_ z%5Rdg$WB=At7Tt=jV{C`mDJxmW1>W3*!7H+K0Uq5Ju+<=`YAu`&hO^Q)JUe-`UA55 zD`MqbKA#iQT5_3dzL!fGn}I}Jl&1hH6^ik;mu8{~Z_!VD@~Am*+gRmL+0+H9efpij zWwf@%4ljCiPOEk>VPnn1QHND{)2- zTN?{{=DZw*)FSAfCwl*bR+YpaV|f5n+fKHyx}FyXHCqKs;FRvz0*dsawqneNwGxTh zYKPWcZ!i5zu_aWXU&R$Ul(fECTD>iyad%jr>UYgwV(ZY#zXIiDD4WlKkbT!JRc2Z= z_b%4t+b{PASv6BHJk)CZm^0<2-PxLIv;7*iYrCG)Cx||m=4StVC>j=<=e0350CIFt zwyBXd*D2LuR>#maFo%CC+o*2uYo5SO1rk@&rCzN<*eUo72K{WPu|pASYom~HjIuFn zy6bW%%(5s<8v>^xs2A#TVe(Po{MigReBeEI1oYUEoCL?8M}zi>oi`JVH-clqhQp2t&4FKY~)18JXG+Vn77SKV2XAZ#zuJFAU0 z+V3Oy4GqA^J;9cwGj(~hyT;M~B3+uu)6xO|UEG2FY!<$C` zT4{xYC1pPjv;J2I09XZT!PW*=j%;}CW0>JbR;Je?zK;wmcHy9Dax?HjSx{T{4c+UJ z?QmAp36@^omC_e+DKbnrU8>fUX0?5R8u0>)uP&gQ10U@?E1vwjuLpdAQhpnN(I=83)=%X%XC^-U4#ejntMFh849@H-=9z5E zAZI*M@34E*Moo_o|CHCe`m#Evd9*4>?Wrwmx3`+R1f%!e73ulxS|Y|tV6Y;(4S8$* zbY%k``)`1yE^*=YE2)1yt4bWYjotcWHau(oPDhztC`J_0 zMUr%5A=C@WDT@@MF_Ga;DI(0bq6n_9pC>u(`vds`sW}=hdkHTsnWf}-l$QbXWXODC zd&a(1NqM%8Vu-ZKwG(3}V*cSxy&r$|2bj`;?HTEp$2uB*Q7-$b>y*%!92rCSv;Dr@~efa1*qH`9O3>{q>zg3GT_zcv57oY^;5TMbbVpaW2T z|C9DVK#6$%%ktoR0L6{H-TwhP)U%G3rc?nlKI?>1DpofWSBysJ--~1Kliu}&kQ#G4 z>`-FcHPTf07vxJIUzK0SzvFbRAkbxVN0)|UBRRs$Nr5bzZgTwy+#r?Gbhq-cY4nXePA8qe^+m$x=*kJ(8cp6uEDgK15 zsJO`KCa{*(V(p+4xPZ8O`mROSUazIGh9fEn3~-&g8*@3tQBH`hRdxMFJ{g6DGYfXU z>O}Fh_U2*oHNUy_*)Y-d)cC|s7sK!IgLgULqhmB&asbXLdbpbnWi$~LSkSqfEuB3+ z?&$i-gQV;JF*@gi@Jl66LMs%5{QDaFCAp_EP1if@?#7dgblxYzu3ECKl43Mh6=X{4 ze|Ha$B&6C*eY2tXtPc$Fz#QSgRg!4N6WKES+i|KS{d?Y_bzKIfe4+)SdG!P&|ZQG$kzpC`G@& zyk{0?;A}IJ(aD;z_cV92{?-{&qn&heNKzwYxmaJnfx7f1uXJ*UI0YcmIBBZN}i-PSNK1G3AYc#v~_u#$za(#_2gI}fo5uz5l-$MB`kKEBU!a-Sz2>$&R@#lfo9^J zwcnz?hMovnn~1ntEu(;h@u8*cq=v!@102u|%vQg|kKxf$6-K7xE(#YH^(#nHr{jj~ zmKn?~%Bd&9mxcj?V&_V?oJSNH8C*f3Mj;1r^6h>}raubD|KueoDf`~7KLFYcp|1VE9!hYFnC8^J*cp}@c22A$X{@nek02lCe)R>g#@+y>R= z_l_Gxs)V(abCat}>XY{m53t0lGu(bom@9`^D#|a5vusAq!$HcSS>G z1AksptZhSW)1si$X(<^j)2?IHUf%HavvjgtV8f`0Blz1*?7Pws2FK z1^xj=$Z-&DVhfBBrzpB=$=bSF2q6Cbz5i^WtAyp(O%X4jJrbAdTL4VYEC<%|3nq#R zS;jDD+xebczGqMpCQz9qM_#^lT!nYoC zIjPp65kuvD;@VZCjPWtgJkn-J^0ly%gYotavy;g2wY>Wn%L!FekpSRo6_d_l}3r9E=I82^sZd&d;8#@6So*20`T?^?i$u{KHXyf0> zEdA7BJWJPm5n^2YLqv)~jW{u3iu}CZlI%#=Qc`XEKfnu1KjrKLwdUx+_sKV2d<@YE zm2?`dYgb$Oq!2nAQh3frVg({M*Ke>6D~ip_(IZ=>GpkKh5|GAr#xTRj7JH%`fAWN< z-_r|AtmRSHCJWtPixQXWVwerdE;oEGg}wAlC7VxMgIewCwfZkjTbX4H+bVl%mKha9 znv=`)8!eX9|6u0(jjO&VcetoT?@~a^pC=|{1vJ};Z3^Ot+&=w@e6`L42lnlc1I`cd zXy3w4R*cc=36PS~;Ozl9F?AuJm#oown#)1?>wbvG&E0|3WM#4fa3>voLafO^{Fd?D zJp@S+BUQI4d9qtC6SiP~|01co2aG-)O%d#90`NFgr@M2)F43*gyM?)&8X~)M%&k|` zK$jG&sGc!y5K*XWuWhW13P;Nh6hBkNU_M8yoHKgO=iW2P>N1&-PX`Wj-dNBrr8Io) z3*87(Aro-3YrU9Q9?0bqxQ`T|#1@z-`GyC2@U~@`a&6ya1!XXXdG{7jK`;0e^o;zj)pp3JIq zrH38IaDa&XK1;};Tn^UP1GeCgAtCVqCR}MS>lo;|Mzz)hWRw^2%>Zur9v#WVZ-JMX zUT?T}>m(C2}n+&do+4h9-X%C@*%bFIin_KB^6hX_Uga7Ald-7NX^fI3<(OR_4;kIBWK!Z=BUhBsiioL zuVLc%G|L7<;$K%AQEY~aNU6d`>Hv+P)AWG&T$X<>S)%9e?I&HmLvsHh;^+io>^ z1J6W>I;F84_-RUZ*5ONPcX1BNj{$OOUy^C-Z*SA^v&Lj14~pfSx{i@n9quwyR7xa2 zC<=Ve1`kpMjvh3P={4782jF?WyZF~0UXK{GZy-D3iM%UHwk_!I@FsL9;dYOo)(P+1 zl24tPNC$tJqoB+I<*o6OR@G)~r;ePfm?ICfd?k@FG)%Iew+(Ziri;t(GYsd6l)OV- z@_kMzL}m9SK08IZg`xek?WpjEzfKR?44H8Z_WW|fW4TQS;Uh8OZm;O>XyF4fHtR`< zeuwiIv=CZzk~5oYDCKV%BfY5W_6l`Jv~TJvkRSgcb_7Q_>Ohlq_URWXo@IJK`geL| z3IB~U%zr-ta!(v%!4F%;uEiJ$cLHm+6#{E0D!GKC|4wf!r3pAjT_&ZZjzi4tvhK_cx?6z3II2pVvJtFjUX&K@`mql5&o zoWA=km||I%&Iz>vY9$M2Z0zhzpNQmth+(Vx8kMtQ`gT$Y6>F}`FUnu-4m`*@!3`O^O7eb=}onjBS}3a?mnLqz4iRKgq!ky zq4XFbP3l>LujsW)i-@EPSh?-4E+il0DuQaP{baaAXL) zMn&$+U(0E<%?O+C+ipAB@B;pw_%;E0SD2X_?}?V${IlH<+k9{@;cYl#<@Mk*3dM-y z3fag6jfQ{=wo20rp^@*4BC_j@qP4<>OY8ojPi#^lxe6>i8P9a;94RI_&U3@>B-j{H z6|Zs!?f_6TQT3u2sXB0nCDL{IJgfg9lg>6RC*fa#6f<2kxLU7iRqaT&YG$KK5BVqg z?xPiP5^!z6=5LLFJePO}Y!StLrXzVTn!V)BVw0^zDxVD|3*z7P7^+kl+ZV4`-~XulATq&Nsx9^#R6s6`ps^ z4qu30f=4xJxcs`Oo<>MfKr%}TqQLx<&FhIGydW~CnGp#fA3~ZM5xCO<6d+#**cV?H z#FUk^UH<4#y?Wnmvoe^@b$=EH`p)~%@jUg61`?tUvgxewjPwry5Aaz$ipji0lYyuG zep?mZQn~b0#-e8Y9=LS9^kI-K<@R0V0g^Q)r$*uvr&Zzt67)&OcY!nagJ!WLCB}ct z(D8qO5SwZ~4rcmFx%Sr9xWX&l=J?z0IsZPL(A<52lBYQeN>-@Cz(frPZYQ! zXc9O6p+H|Z{+eak$WhR+^w=f)bi>(MTndO33CIx|S4zz;Vs^DHrV_!j&hU0j(}=M= z(BIGg(sVED@Q9y4o1`M`AvtZL!3{NIE5{4xR0wM~(@Kyy1lQE$@f83tW#c)~)L;D25o7cgYvA z`njvEEuugViyS@8PL@di zFDw8w&{$r#D1G{u-$C!uh|0uQP=y6h)Shz zX`7czmqG`M;cayl^nW_7HvY>qn05Id!0}n-mG=9e6RYelms%j@FS7-Ib!_GYH7fP1 zTR@L2ekG2`4*mRc+8;SVT*F??=yXUmXTK`mJ^pBQ)ZL6_te?4g#*;nt@?82qtC?wS zuhL&Lfv~~3m|EO8R&BD-iOZVZqZht}LjckQdKS_@64wkrk7MYNyhIs2lM+=0`^WVi zxfBLoTredmE_fT0l0uBr(pO2)8DMdi(nZ}xY>r00l>e(lC`&5c_MNk(Er*#vWAVXJ z%|P#!8YTXjLXl+6+2-D`fc4G&*BRo7_rH3|j@N(m6pOT0_|U~wHoq~v?Ag&F794j4 ze>+XA>M*#y1d5$*J|f-tpsdz8vi{d!rF8z1ygKH1!hV@@qS+ThDEs%z>pP2z4(G#{ zx6jOU1`M?8{iS7N1O2L!LleD6Xg=?$w40GEF2}#k0Mt?>N{;n=BP;JVYT>n_Rm%#$ zAZ164GtvX&g!YruxyX`|#m?2(A?ctv-atPo+=2M`(wP;_0rAUHfSY}{tuDvX&c`uO zm&!PQ)*%%pQM9l#rzgQf4?DnY!(HNIjN(b&3)(#`qI~PetdYDgw1)?p4E?)t=_f}i z_S-EM-ON>r5o(ZlJ%mDKdr?FaQA~1a37W?^y->GUn_kp8HGo{ONpFUv);bWI0KBEO zAQT<`pGZ2FTN^&Fcu-{w-8u13yx<~LUT(xu;o}mX_$wg}?9$&aw7iO z4UA22{=TG?p*e#(9D1FvEpDvhwp6RP&;C%^h>7@R-MREcA~OUDqw3wWd}IoUsVMex zg?~BUj@ig$r84*>UdNI}M>1QACI2h=m>f>&D7;md8Ojd*RB75?#qDKirE@B_vE;F3 zRG%ZjUeMF79G+m-k)a9!yL?RBzxki%zSOeqbD!GUi^Q+&$rT2^IaKC9&rv4i+Q`xR zXU*Gn{z&ak^SLS;>Kd_$Mh8)V&Yg;BtDB{BfBBU`OFtI=LLo0}c3(7AW2*dIC9~40 z2qjC~Cp}4YcWwK16z1KKO|_9sXfZS_gZ2+=s+5|@RB>-xw#VL6e!#yQ8rO(Ku_VKAC-3G-Tk6rd5?1}ES25FOu*YZk zEX3HUIRNl%@$|o>zG&I>c96u|wf!oRUbrr zF?Yo3InD6Y{;g&&kP>3Nu^|M|Jb&7@W&}69HN+n(*2>IFZTY?f_dW4>A@noy-m!4s zY?SI#TD{NI=?o`QK0b2dn1U>ElA*92|_&^XO^B7he9!*7ws8Le^BzusX$9D|) z`JUP_$u$G02rYB0!N?7`#L`=o%dQA(KrR()e;dB zbyOAs8Z%40c;(SdPxwPz9C|*a3G$Tp}HBGQN$`Cb=c)C7h;(YYe+oS7DG#VMXuVRYIWMTa4!J z2r{(vQH(ba(ty`7%8rWOO?D~`XLK(B_6PA`4au)Tl^+ttBwOWs`_)~y!e#%14;QSy zq^54FPHPVF4fE_PoMJwj-~whbhq9xgLz+lSZU`oG8b!M=M&cW^9hj8ktj1BP74J0} z(YKa-5fpjeRkbh#YjT;5IyV(80ed)NHz zyF-d4yiMj*(xUCy)D+6I{T`?_@EchBqm1+|eXw_Ql||X9K1&;>5l7~WTm(a*#0P(; zI(tXbjGVVcd_NK3>08?&mxrwH{JPb1IXXuYT(!Pg6PQx}dMtn&h`?SgnqTS%r&GOE zVVbk##x>jN->vydri;cpbt@EAu=R7F+RbIl+)UTubija~~-Iv4xBlN;lJl7Z7_Vg(ifg$OH9H z`R__u|7&+bf+|-bbYXt?eXz^3+$pq8hKe64WvlpJnIfMA%f~ffnPEa}BxKgxEQgs? zx4jcFjYi#_cGoa&OG>iVo~UD-BO9(@^$ta0;}S{^C6e-(F`Cr0?yQUq=voyWYyl< zBF~%3-p;SyBbbYM4n-AGW(Zo#d?)+p8Oa-R!kF9b({$Mrv#)4sGAa^;PS^_bXJ(5Y z)~Q38zUM*2pYtQcvFz?tr5F=w8a4)HaX^8B?7AzD;w_HaT;bH;1!=^$S>fTG#-N-- zb{S^b`#oun&zaKrfzYbgb0uxbw35R6&U@%S12{v23OK#gMzX!8*3a%7X3~bYfuBe= z?D(=q2({@NfMQc41NF-C-49n&Y~-oz@xry_!N7gRrlq$hoMcodfh#trf#P-7;x-u> z8rk`t_-$RDNz3#j2Kq)sSi7QOtwR*Y%w&I)HRBnjMfp36Vl@I`9pkq8YzZxVQO^6U z-HU>Vr8vv9wZvM@+J`qE(4S)uS;*_c0{HN#PdZ z?7W7qalP%O51z>!>|X!s=T45PN#eeQntjeT;@+|R-WR>{)yJk-bGgy_Gxh{c`lZUR zP;PDqx`8$H2^iiq{_nZ1CN+m%PngHvi@qub3^YWOr)R(81l)M5hE+{oRf%BizPn|# z)&ri#H#xM9)t;Il>ziTPq!od4n&kv!CN$}SHst$th}DyV04HS zq4^=ljb{Ie5b-7?yJ#XV5fUwg=y{r2V%?EoZB5wvc#6Rg&Xp;t*edPKKBjp|$M-j# z#{3V^^D`m1rZog8@~1LzKO$konvLw+2~|J-^7VbjPA~PkLl&?ERE2+sRv;b4jlP-> z8zUojH6weU`;jdl2eJd7k{=@1CNdtOKZrn=gm7rJJ8d0}K7=OJ+uk_H7MRa~q0Mw# z0yfq8)-_NME8wGs^xz81WvBFW-VP)m1$gDWL;34)9Lk3nias{l?Fe zo+wb-eaSOXr2}Y$(I{&!oBHiDD4mCeRYgN0uaU1iyp+~&GrZ>*9;b2b;SwP=-sUl6 z#%~^n-w|#8;_a^cdOj_{66iC6AAf%PfW!_B6j?VWFYLI?Us=eFn{HhcQE50@jlELa zhQc>~+j>0m);z0B>r~45V2kMrO+9+!T?M;1=KRJInSh4?^E?aItNDYt$nRCh(r%AG zDQkD~n+pMMf2SS(2iU}Bnvw9M1n4BS@E;t;)A0n@K2j04FZ=x$RKs-+W%3rvZ=?43 zfD)s|{Mny13gMcj$Un>mK4UH+vJA$uWEZRt8bA&^HU>w z3C$R?Aej9#t}iqX_}EyVAWC7QrnAlP@npStJmw@G=}m#0W}CtW(Bo!IEkLG^GB5+n zF|5D<_Jy?=RiTm5;#FP3?h$$Cf}PcV z6DQX^;fC%NzHB)?yY9{j&8bjEkXolE90nN+nWG6p0Ws8|N4t(JPT)Ym#S#6 zGR9Kqio@8*JLb$m2ZAWFqneMI?dF|opfjFJz-AefrqOP8fpJv?VgCnUR+}nZggaM= zDzWFq<|U;|c9^FVt=}1Q?0}-ir;s_N*KoEuByMK4i zcF)~C=iYn1-{<*!rq|5cSM2mTAHj^j^rNH~b>7_lk@3=niw*Nk1yBF7uf^2Ck5KAL z@uOoF)?YWJIeMFEK_WV&q_ALs|hoEB6CX$Il7aUda-R}}U3kTYdK9-pue`o8ZG{4XQ-eSjq%@_s9fU@OT zCY{{Wv4mh6>Rr{JjG|jKYt+2mzjJxka6_-c$UMDfm>{^rG9LJCXp zGb&;uz&}r_ouhoXPo3{c*rzBf2x$Htk8?g?Ao$kDnpfo|gu9amGusBh-yh1J+FN`I zRTuJJ4#^BR)o% zX)_CW`>}}YFjwu%T`jhUeKr_wTb6W}r}muQ)6J9)K1jGJQk+qzv9t=5{2w4Dn>Ra* zen@oNdkhEf?{8pnH)8(aSEOM7QTsIxt0;vVe?bo-p&V#ym&E$DWfr5M7=;Sj zDdAq`Hrqi`JUoP{`%?r+bd_QHAd+KX)a(mGznwtamj9lGWTejelrevO`&s!#PkpMU zynYq9^SKS&pYcy-8?JWwrF~EPuW12*a~L|kCL!LH?4Ci&r|isJ@!uJrD<0@dOzfq&RB{Y`8{*Q8AzcPwpRCMp`;P`s>sz&axfFLq_pdX=_}aa@_L8F zk@^|JvJDF{=6RmAavVKz{Ez#jJ0E>g3>6)6StJ~$NSNdIs z{h<}|o7k^k0dzV@gF$_3cd{9tOb!KM7jte??tMvuTPp}=NcChB|bRDmamtldX-;hM`pDQ=9|PWZO$d@MxyT(=*q28(Qo(C)ai9mdN| z{tr+RC*>Ej!c(LiNUyx0@k8NBkmr8@*Eq>Rw>$Jayn!f)pKvs$x5D3&7|r6y^S7R2 zq)Jj#PuEF@FpJ^7KCq?OMK-1MVlj6jRZ6nhgNRh5?06YXTy{czfKjc!ACEjIVupbS zvq1}3z4UxK;E?c-1#jnAoWM-4YDTTUE>pF&) zwbwS@m3C+mcsCGpl^IX?Y8YI`&h>Z%<9I2=E4l<-}Z@Bzs9Z~x$O-3yzcp5x+~g4PA|&8M`W z$GSfs6UEtGO;wJ?Ylk9`exHO^i9fZ06f#Y3Hsq{H|%BuZ=GcrzoNQkC~i;At4G zmsL4dbbBH#yAE?faI(q@5`CA%UA12iikOnOtr`pbmqE|}S{J*wUdfok&0hI&G+VhG z(Kk)5nl~0W|II#d&yD8^U-+D?Bt&qa-y0M4?oR zjqb{QpaH?LEJFbkBK#w3b+XL1AtEBZ)ZfprwcOnp!2nFGST6|{)izP-J0M*L_Mq;52pXR2U9s|O7 zsdb1s`SM&-6dSsV=aIO%fUlw&{#t~)BOP}d=f-4}bf!F8Q#VJO1Z-WJmwM+GoooMZ zv!;?_W@gDHR*ln#)?Wz^-yv@nXu1Nq@7=aF8uTjPSKuDVt9>#6pZvlWVr*l_nL${) zOTlIX_NEn}TlQF~p52T`T(`WRqdj_V(dwPT90(zfEdW35IpYqX)EJ7(|ARg1l+8qf zhMn%Y0E}~#wfO7~Qu?2T*hzXINJr^Zy7r$%a;t?I6H$h0b!2;pTTH!PPYISEP{qT9 zu3QoE2ovjEy6x=Ohpt}nhtnPyK$@%s~ill zkfy!77h!Nw*Pjo>pNA;-|yaA^`;S&`zF^()Bk4plRK3^lmLGZ?)CN%Fc2H{=PUSd-yU6c-pK{RT_)0|G!Sb~3BbzzSks^?ugTwki5DkafJCaJOFf+PlJh#Pu2f=fZ>aB$hvhHCtSA4+gR~Fq2bVAV zLZk+`WE&J@v((ntpFwx=ZTZYf09~ZB#q?oqg2mq!->7Hgw=uOa_A z>%KI9kXDNAZ8XWEmQhvsCF_0Z=G@Y|E7}z@-7hHihk_4K(o^7VE&)m(L{IQ6>KZqk|16GaEx=Q1~c zKV5YU5pH3QS`vAz{*=EgY+WKb+1koBHD?_|oeO+L04l=s2qFS5=>3Za){(c~6!gYX zj$#jF=f7L`8wH=*w4o}DE4o-J_|}=e^;{{J)@!%FHKd_Nn%^%P%&LqsW5r5$-f>wF zW=)mMWrlK(6(;$&8hj&^3)+qr4I*_)vvdb#rhp>C49cF0qVb5p zRFNerUlKcKuFt$PyK!)rI%@j~C$pE6XM!rM1A`;J7;=ky7~2tu`Y zp=tPpD#`^Vp1kDP_jVjLm}Zev4TF%f4-jjzm?`V|gI7PH5%LoGu7D$%hm^eI6GB;| z^)VorvT!5pMyh#gac5Xh36mf|lvF=!-&ds+t1Si97Xq+}mMN&FE#EN-3Mf@vHWTef zi`B|cXUiPa{EVQG8x`novul?8{!VBlavh5<_+rDq-uG~=cz`?kGd-H|y&#et5$Nx# zUi$R;%*Cjc^?~3*#py_~*cyr@rZVzCM=m8|?DQ(H43d}eAx}#Fj)#!5-EH(-3`+4q z)FT_y-mNxYRcGDs3^^Fv^F=G!BS#%!X3$%<=+F zh^y)Zdp_F^UohV1UO#C8^JGn*Y6TuiYZpK#PCZ1ZZmT3h_Lj@o6vo@fF2&HM8g>+K zqq89{aGoYqh3WxG<{3BK5i-+6j*L*Rp9UQ%H-lPZyNR|kX?dHfpZ!!~^!$O3e?(JS z^lx{v)3JgCT>W4!lgrRKig|f5=xE(0m=!TFE|ngX?82`?2)b3H50(rcc{=H+tZG|2zNYIA4dt6_cCZdGI)kcyn=uJ{rHUvd1SHtXB|)IF4Ct57?M+D9<*;MTdSAW>vMW>tuWdWDsoq&aE3)7WzAL&WN)*r%+w#`pd=; zfE3UAR!I!cqjiH%mG`TT@4R;NcSHy)T%X{Y>F;OpJSIt$i4Dy>iGsuA`#u6Z^n?{} zy;Wi-up}qFCDFriG(Piu@rGSEpZ3Lgge}G*B zeX6Yjlq8M#X{hSbx_w`~+H{(^zOq= zjq*Q(VeK_b`X}Ee_`TbZOT_i3W5r9$wgAb4@Q0u>r(E%XEf7<%XC%$05?hpw0ub^? zA#XOoc7K`g37!^ZwtJS1N~u)n%KrelP`I&dr^YOAW0!8NES^@2*WbDIvdqFQb&UQ|Ti4{dh+Yg>ruh%g|33E1ASgx#SB(blE5 z^Ke)lZIzhR)SIb*K`53Io+@0_j*%xq^%rtUvYSj}Z);!`yli3`6-WSf{}hRQ_v-l3 zw8DRY2r0I%SQ12Z{D}789X)_o$h#M};n|;cs)meIF1z!3(IlGyQz2wdMnmaS*iFu$d+C7q@-5rzwiBuRsr!O8m_e@ySp7E6GCbzI%nDpIgZ>3OU>`D} zO%_laY|n@eTqBJA{kz$2?->q-iD%Q&IV!Ka)tnV;O#Kjd+KLniqu+lI-go0ucyqwv zp$rHNCi{ZhH^JAb-$qMMb{}ah7Lr{vup>x#PC*2Ylb$6a=Zt#_^K~elaRD~F&;FM5 zA0UI9tDJW&i25cWx!quoGO;RCjbZKn&Z(i`6)c2@z=NJ?Z?OghP<*<0hFVUtmP90w zlUgBdJpzMGwh70{s-z2=@z@weS^LTMa(fY?h+@|B((`cBO(G-u+4}NgE_^Yoe#jv# zJ3I`O*JKeS{OtPgf^r~tmfl#7vvEHftwI@vMtGMjJ~bkxKIVH{`5v^Kt4JLcPeE@< zBI$78uyrnNPC6xQyL^J8&=BABnBI~?1z^SY+F2^@Uq-|YRyR{T~8*ZUhm zmeMj3hFDd&<-YW7uZjb2+vWFO1)$cVsNE}-Rk8N4nF7rbMz^8%P2*)} z+ivgmz3A2AS0z(_{OMpTiHpF1sR*?l87;DiedNtXZ%$hT+fXNHP@D z{|%TNn?xc63dNS=ks(dY@bhf_L*^Z-yemgA#(W`N12TlNw5tLPg5;6`-v~DINF5>+ z&5_a0%HqnaKsxMJjCUCj82f~BTYrF;Y#PPCNM3*Qj+IU{$9NM^gM4#DV#N>`nM%@M zRnQ#sIX#yoNcOE)$xy4B8bv4yM_jx%MjVr1*6@lyX!IvTf*NNTiY5Ea9biV&kH$1- zJyx#AVbreRQKhGuS?D;j-{}2AEalsWS-Fj@us4DG{0p{>$VvGcQ7~bl*P42|9?(I4P!|}@#Z;!A_o{(i#t(Mv%vt3GdB|kH z+9+sX!^+xv%vB7=W7P>x)wD`=-pDZfmoL?emh_k3asdNiLodB)bIN&1sm}Md$K01Q zjPCUf9awT<959T#r0VQ+fxC=|4rG0|gHkfE1Sq`%|(rF%=snB^W9_l|eROD4YZq(QeQMltPqjRfUK{j1r{!187sCN1{wQ$J`xA;yO z=-4y-r<)jZTWSEMIuL+1W&5BV!RM&3pbM3S-Ia$>n{}eOiYr7qKV!_ta2!t1WlwiH z0i#dp(=7YIPwQPbAfGd$bj;HMQYDT{G?-T$^y+^ZP=h#JsP{Jx=YN&~Ws+S|8h6%3 ze$yp)_2#Yl=&_9njA{C743-q;tVc4q43xkP8oI?j);Mi7$PW&Aq_KBEjtKLP_MS$l zr)WZ&-h*{dMFm^A zmxx;cLGAs?KOoBPj<=z&`NvXun~Xn_lz~yoqB$Naz%ji2GG_pgK;uy8r4w<@xZoTA zU>2^{mJA93*iEP3CMz>{%P95oCE@DAL@2d0`nE&;2%O$AS6PYN>UqXUP6*omO=c1D zm2uZSab}ID^s%YEB;VKT&%UB9=hag-Vo3M!51UZ~0tC*-O!CvT;(eAG{U?Z=-kI?!(ZG%5!njlwoEWb5!Hz+bvnVzAkPkga>Lx4fWg7>I z60W~r^#x%o`$Qq1wzMs37%2O+mzRTu#=x{J_PGG03~z3>i1k=(nUx!oB)>A3jmZJIE+8aTQ3+&@TF8IPKxeOSdAH`f^8(;B&B=o{v zzHQR4+YouLjAP-0fj*n``OQfkz`xUczv+uq@6)(!r{x^J3qR7`f?goQmDJ>w;+}5B z?yD^>t+2L7yQiePq6AOC8J62e>8U|rA|dZ3|Xi?($HLU0E7<( z?v(88+j7O?zrw9HnY}x`h>X|1lT6)A50H)(MMbVJEQ4-Xt+p!@_q!ATcavfPUo@*G z)=zrh&;9Zf+xuZ}@o((#L@)EeUw%@Rj+F4=f1AT9C#nCAqEYxiomvSz?FrmK-ia*P z6L-N-yOhMR0!_!qmdCnoKYvW{AXb%`sm^+IVE0lo=BLaNVw*la#ElGQC=~i!+6^HzY z3}AGIx2|{1b36Z{bxqC@65Mp<_AQY`Sc^Vkblk4^0lQ{a!S#pqWaE+v<{dPOp)~he zBtUfKe_=gO24!$2R7`)ufkQOwUVT+_LPqbGlP9j87s}{kv9d z6q*4{yLj?a_}vEB9RUoV{=K`Bk@cSypZ1yd?v{WqwU)X9jNt-RqS-}S><_^BV9=*_kR5TaENEuGx=bm1JPm(a7=!-ljj)43mk9)uDzPFt ztRa$-4#Q-4wF)$qq~RFiSnIIMD&&It!lxr z$F=z^Km1^M%)Z5upS}E+u}#8Ip;gHf*9#GI2WsA04gLhX(A zKt>dDR_V z*PW&p2#{u;iOH=Ph5Kp92t2`*{mI4C+|TT3lijB7~n8<%zJND1bL7!7WDlDh2UXMm1IIfPhAzCI1wmd3r;j(B}( zoKPk)OY8ob(|d!y99hz(o}0}gx^2)`w-yzkT8;DS9 zVTk-o9Gw3KQ_<_3so&@oy5_1R1vKog=pyKH?!s5-;A*>M`SJ7)!(S`IWH^b-c#b2X zP>k&i#g$1JG~a)k`$-Q2?_rD16ZOO@0*baV^w^H`yq-s6H+jb~wr;-SMQ9gP;3v~u z{3hUEw_Id)e6GMcNpO1f!(euY>c_My z*?zkiTIz$skaQKhwyAIG+4`fHCc;Y#x=|fUCHO|-PiEkevPuM56z8dVdC!`b2)Jwh z%|sT7h`2K$^3>#Af`BoA>+CLz?R66zNZSK%=WKLD02Eodyr$FGCDoejY`K*FNY=mr zw`}<@Sy%z<0u>WRD0l0UtD#~jmd(!~y1x@tH1y6DOk?9iuP7U1=|h?d@lzl) z6Vy-8%B?Wlh=egiX()Bzrp4v{iQqB5if((kS7zLl% zzZY_?{DlKiL!t5W53X@ZpIbk3hgW*n$5AT(#*)WHnX4=tt-?L|nR3NqrEv5hd7v+q zw{=nz*BFgbE7Cd&d;k%c&8;Kez?ye+G|4y{hfN{@35I#;_Ux9G?3qk=@JW~xz@Gv> zxcPycP6lGS8&bU@;^1&dLl_cZK;2K~e1jYL$i)*7ps=&ssBA=b1k3`IsutbB(hp~4 z)k@?f+kA=3;%wn``wL^t(;6?nnwUe<)$tDR}AmAlMLvk#?0~c>c`(OPYWDsEMBfaEfFT47c;TJH>~=4 zT^kAT_^=Xc?p$jhbBS>8!eaMKwk#K=^v*LnpFTI<@}0j68OYU7lmJeWQI0VZbLc-h=I*`{Rqc8%O1`K` zD8e&zy6cD~Vdft^s9ce(uP2LsD`A31GId|wQ`xG=q99(w3GkOw$_u)~4~;<#MmCQ0 z-C7X@A5|?l_lS?nN}lqpUb<*M^ti(F;Ocrk^&#J%?8dh3+CJ(jA3#x3%df4Y1UWfP zX1Ur(J^uH0ZY|7pv(Jm;B+TR0IY7V~?FW}$@C9{BGAieO_Vp{D!Un&AMqDy(u_Thq zL5vIkr~co4%f!e_Qb3|Q_E28F|NMEK^+GlOwql@aO!51BJE^~};Us8PE?zeRim+H`8 z*|T+#j0mYL8$IP7Qb{5ho^KA_CBcqj^Y}I{t|dxl!qo>v&U4GI$weH0KCfu~Z2RcV ze}JZdE;KSSpNf8!fEvGe(Y|DlCrf8HKVSEpj8@inzs@m(#Xx#cw(m6-7# zpk=Qb-R}`m>3lRN+x7XZlI5zUo1ISP)jM>8!GTJA#)7D(=kJ7+{{Xho*S*v2r`%-$ zN`+zTf3%gassEj%&s+HE^Obp_b@{699bEZvDyAHMX;Z%&FaTI!j6=S;|F6fyN^g%N zgobV9+TGukr`DOQDUOGOr1*-IBg6`#zLL7}JZ6VMFLv*WU)a#mPA6JQUZK4CL}g{2 z@*3naT;X@KnmDXr{z4C-KhC4!RU0V)xXE?Rr}e!2&F!W+zNAy(?l7rd zoFG!K(G9|uQodqx?cn@KX2>8bbJ}d=0u6;d04X21v{AupOIZU1d!R_&8is9)7YcAE z(LL|^Cu>+c0%OadjA~wzFZ4t3`se=a7IX2%^1&7xUi8vta9BV*L;9R zF>$4jZ}dIPY!1eAUjzRU9HyrL={yE&{WY_;3FERvCjL4Z@;_!<#0{a|)^i?T@98Jk zo{Z^|!lVT=#&Av-oW^gOWX=B38Y-({*4|!yl)|&j>$R+0Dzm~W%c;d2kLEHiJWliF z_O^IiZ01tj{#7)zKe>3del=YACVk?vVR3Ki`tN0%(i5KOho<-oIOJL&$-qt>$;*KMYGk}jc`Xo?=U&&2$CJ>`2CB=Hk8T-QPXKRQI%cYbH zGEB;USR-jlrf0uQ%eKaolN;p&8N00BIl9@f?>aC2`S%OU zbEo>bS*G)>S;N-QCek!+FwddEZE2)JXjiC<^t|#_%L@;_T%kEL=U7GttXrF5l$je=)XC&=;?`x~8QxQWpYt+UrePd3k3=P4i zXW3aX5Cjjvs^@JzglgYWz?m{apsnMmV`W!VZoN0G`!r(x+bV$FKP~Y+Y9o^p3P*s5 z0Taj6%(V!J*%9Qum$W**P46~(9_SGItdkJML$K{o0(lKCrrlu7Flm}ZhCja6C05LM z!#G%b6Kb;d5#<<6;)zmc-%h?kr=+C&Q~YMWJPo7%5Jx9l(9BmXcP#pK6aHAHCeYUh zQ06vZA*Djgh(BiUunK3ikIG`@asj6B+9^7EI7+~vu3SJ)29mm%3WV}3Lc1tb9Ya15 zyp9#Xcxozl(-5evi9fv?UnX5ANpOIGd{Xcib`66xwRI~p;o@s_ABwP*ym+XMx4nrU zQV=zaiU2l^cn+rUKPl-yWD|V+1!0j{!)vF8?*-{8q_BQ6AOnPy#GVSms3bMq106{G zzh^a*SG<~T|0y<^c!ZbjN6hEdCjJUabsrgz0^b{UL2GdJwW(IO|K`k%w1?+$0)5l`aP_geSDKt#N zQVN;(uW=#y>_=OEUb;c@6ya;VyQ>^T8-|KBy#ow;7J3e|_XsQIC z7oq1KNKt{2*dr8*S-v+F#_w5|4)oEhfh*0&RTUko=D+mU7@HV{%YGNF)HX5!h@r8c8WAtw;7U6K0VoS>GL`a=X<&o^* zt#^E?W1G=}sBHQoB%<@i*kdvXj69|_mW$1C?Kjz`5q=fPod}ib4P*KM(y*0IA#lnzn#(Sv{+O#mv`G};a_0<4pqH;W7=7>haQMk| zzVp2L(;KiM93Ms%!(}2`8RB`UhEEK{({o+B5h0ehqAq@&9qIcQ^%thmKRZGdAWo}K zBdk64My@~+%C9XX7A(?y1qG<2KoR3)trxq|N$lcW&BZ1>pdMR}f7X6y94;^1UdjV$ z@M&)RE-6oldm;8?3A=9-<@O#|=f5dCNSJxQF4JL>D3x|zSqJ5~1D}2R=RxbqTn#Q7 zoZCMz%m2&RgRj!&{6oXb;b$Q;m74oM)L`r1<@uR0JR%q7~UJPE(HI$Y5H@UCPcn?Mi+Y ztIF`uk5c}fva{!o^1({&*zg z4e(gtnHqY)hKdxiu*JaZ9dlXw2V#x+rTzX~lSlKhIgLgwwiQ3s(M0xd zKg9*P-{#gFt_ETlLNu_9bnIrGe7wM82$ru+?7jj$bp(Ig3+45_V7aUEfa{RlL@5>` zLmv5FYvT*;cY9_GiJs!UPAjQZ3D`zqrRaVVH1`EMA!7qOI~$d~VqQS^{g%$g+x`5; zerfPPFkLHbwaDEf$gstdG1O1Ni61kDK9Fzk0fok7;m*sOqFOyzyA{8(Bl+87#T528 zLfADkLvrTZO>6qIh7N42O3cS=G=~*5bH|6P2Z|F^mLL-)^OlHH<-sO(Do(p_?~bKU zc-wlYcu{;T5B=JMgv1UQJG@!J+Ezs6WC?p!{WD9Fw0bQEN#rNkg4|QsuB1~xt zGz8u7@=90@rA*Y3YV!97q0iTVo!2u`dSOzMew?pd|4{s(-+B_&w@$xY~l{)!$2y$WTVBUGz zwf0$|roQR+C)NN~bNWz`djSBAtdq>-MD1BF=9t0UL8BL|AUJQ@$YBs z;@ns+tl9*kFBWu8oBJD9a=C^#cB)b1KtHSW&l&74I?Yt22tmdZUx8J8KZ#hgFG!JS55XagH4<@)DC*2=Q;#&PQ zx?n#~w{a@hGU(ajQa(7+3(s2EjA5a`1hp_OLVjhf=kxhzJOGX?6%{?r=VkkDD>TOy$lWU_{SQJBiUzh6{E}FshpVQV{Xr#>d2Fc4Ul9{b1K!2=(N_75)vvHaNTj?kFH;u2lyt_I2Q#K5wKkN0V;;esg;i)zX<`tx; zwq}aXglq)pG0DJ*OROR%6Q$5#)E%YX&Q=^`U;q0TOG#5Ml3M)c(H-LQ;YM~CEmat^ zF}q$mWO~l^m^;fwAnHNC%>az_q{8#l?KBuqcW6zIl7R0qaJUKv>i_d(J%}YTI|~Ow zGSvc?H(;RU3@W+PQ0_A%vq*5i)CrynfEW;iU|F}*#68u%@Y;HId`z)jLq~hCGt$XT zuo2$~$8Z(`w3C#*awgeEv!FUT5Xm$;o;>2BQ#ey#2^PA5wM*9UDZ^c5@=${Yd`? zoK6oa$dtl2oeZ-v-XFS@dVeLLy4c?H=K;)y=rCu~{7=RB-B<1TN1sR+R35)qKC>N; zuE~I4Qt6-N)Ca47+vu?+BP~@cb|IZ?m$g99UZC|M91X%ZNh6^$%A)m{+o+p|V%s1q zLtn>WeZ#Qwzp!oB7n&tY(~Z|Y5xJIY0ivB50y&0v@7bH7{nZEb*CwW=hH{yDqj>=V z!Br7Zh9tICP)}^8KOY+O?XIF|W-`QvBR* zaTI<1v0TT#Q#eY7wMfI7Vt6Sy?T`knPv=4?&!Oly#d(|1RaW{^GS8U=ZCP>Y(_6gR zw!G-sCh)sr;=Pvv%vc6 z^z*Uahy`5z3hX&3GI+uf7$6PPi_q9|w+l7#9$&(ZjKNy)^nn;2R}ZV}+OUgi)QAM! zy!c06{mK-{#`QI`_erEaGQ{C-VT$vkaoo$gh!?{af11$4x4Q~FQ|I|3?M+0V(Y{<~ zIOr*0PzGj9w4OgJZ4h0sU+|r(!~V^URT{z4gU1L*m%{A^N(sB?&xrpF&Da@0@z1ZX zX|X-lHuZx6IHvvsEZ_3~Tl*j2)G=H+PsmFqDla-zcKeR7?M;CNuKxhs7T8tx;Pbvx z)WpD%V8B`Y0p+I^6YB%cD|M3u-Z!u77e1JB@Rx~*&F$41c@c?7e0SBgMefwq_zxiH zHoQfkgko$n*BYey_wR4~zFoTS>~&iH}BRgXMGlw7uD-PdUfX zkCS2h@~tDq(|{WrHpxp@H3(0&GLE>s12B%Vjgg98d)aP3r59t<3hNz`Onjtwjkqx{ z$}$!C$x+hScY10~J5sygg7u%N6=TN~f#rOpa9N#dVczX1A)>NzLA@{uA1VDGpkMz; zNO?xMzMZtD&(z<2tWkM1EVmlwaGY}ftRKLmvZ^!9;*Oi9lbos`H;^k#_nFQ~9P!Tu zg~Ycm(xQs`Jrko6tm_lVc>tq}tEz#ZnCG?Hd5g|RM5f>FZ5#(EiA^cT+(kLSh0s;&1_ao5JG{=F?w9a?Bxxt?U3 zf=GcTBx0ALLtHH^CDdnf93~>Sg5eeF*^gVVT2Dc^8@e%R!zS%eZkv8?_UOSo(UJUEF{Oea&14gCbS6Ec*oV@Y{FpH+xQErF;jmDyrH zPiG@Wy2~V1D@P>x|N0*WZRaV`jPei+U7Oo#Xu>awp4!8dM!#OOl5={ue60ON+^$Pj zsmu^)x~s&0LNRDI#_NZq5h^pZo~`SabfTmx7xvdzu5nsNF!X*)YKyaPuQ-aRF+2k2 zOf9U%fbGz2G)YPsEwA6O8ezJN_Mfy;CwDY|^No&6azw4xT-X#Zooay2KP$ccs={Tt z#fzWI3H)&@iCqf@ioAdE4^22x_^f%#-RnLw~@f5=}~YUj2{3e39EhSMBG6Ngc_@%fy5_8_JTe z>|%8B{{1v2zix7DlIvUd{;i{v6PoSY43}MTmC5&SGE~0WUB2o)$$Chqoac7&7S;$& zQqBzzxa;x3dh~zy>lLbFJTl_Em)?snW*z(oXh!^OGXA$9<#r@|I*1*?F)R*@2sW%- zI@g^0RWA_(Rdg$tuDI#1>l}bEKt|tWJC`DhyjpE8^S%gn z1|9;eVVGkKcyz@V&y=VL_$(9vz`7}eD62DH$UtH67)R(6%~^TM#h^L0XjnH+!IMuV zh=q)#;J@P`anISl3Wf%-w9&+zSKJmfP(xh%wlSafo_Oz$&|Czs<`ywc_W|ByWqR&R z@uW5n{9Wxrse1hImzZHvBaKGYQJ5R?QQ}fk{k^G2<5!s0qA;wmbo?b{Rc1ss#0@=^H=1&aT(G+&!OLJoZgreO=^xG zYTmZUGn@K;#N+U;KHV(8)4iI>Emrg^b^>yFv7(Z|{T)XlZWuM!pZQ}hqHd2-k zk?l+;!Y*EYmlzeOBvWgc^7W;pI{VYYb%h8^)ID40CSP7kh`I_gDU$HpDuZL7_ z!2bY_U-{`XS;PkPtED}3H0VKYZXcjFMo$l0pr_O#mPMq<>=B{s{>vRp-ccnVT%9e!St}-5EpH23`J><=% zR7x<@W!c!`c(4H7X%NQr=eS*4lslsU<)sX5C6 ziUMI$9Vxt?>@qE$0oN3oA-qM)CJ^rY&Jo|PHzmpWUTJOrV`mr=pJmdVCWr&=2mSQe z(?_|vB~plo#P`%e2y5l7O%_MbyOQ$rngJs8%4K$qL)Cpdi>?qU**sfp%a~0Z>yB zocamDpJGVY@eoI@V;P=LY*shE=!0{&;Vb>eoQ1JD-n+QI7zOSNOr}S=MY-eLy)YAy ziKVO1&9j~LU9USEZ%z#70B&Ln~x8H~)p z=P|T_ZbSgS*35GCgDJEYuM&Ez&G!RXZXvyf&Sy56D&J{+#g^&?fm0^NzJ6r=!|ej< zGjoU?E2(0m17^gM8mm(81JqvN3oO^vvZbwx#7#A~snN8lqs)P{ z><|c>Q9we1&)>ow{0^vpjt_3P2}4Peaqa^Vjn+V#jj;dggL!=-DQ9X}h! znmNqH;?(5*9UND|ji;ys(E_~B572%lnx2?3U_qVQexXSOWKLOKJ3VG9YPjV$2 ze95cVEpV%bCp^sJ>p1shkJ3?1k-L$>h@df|L}eflYl8}_0&JdYb1^Chp66D(Daw*@ zIY_>Y2VeIWcj-}>6*pPvL!>sZv>N2cVhy$24t=a_8GS4_0^%H|YFpIB{TJCEtTOX-6^W=Y($l6#R* zT|$kCO~8w8dZ`vtSk!-_-1GN=foA1#HsxGYWYc0mCzzU=Wm>KVbSEU^#Lc8p1(6gp z3<*uelnj2di5nLs?gulelKaG&(gCPs7-cc4L)FTt+-~Ic5DsH#>TMf964ljgDdG)A z+_*Cq2a`||qk}SNBLxK2)K)h~%m+{l?rq|-GbyBN8Jf>RBd{X|Wp8LOCQu2Fgs5KOjz*MK!_5pS$%^$^42?d6H z7$5PpD~1B4oGN#ZeZ4{<>Mp0ON1=3Q%eUg_$1Xp4%c=Of0(R;GZn>NB)V$;BH9cq1 z)gJC)KDBlOzS?|q{xpG^ONPgNPCxx$YZhHnK>3%(#r+?1tF9RC++_a%)*_oNb>@6q z{{T=H{{H~Y#N^ccWr(4Bk9WkrDwp(q?x*5NYTqAu&#miJWH6rwe;m|O+s!JFDz5HL z{{R}*bs(G__MbJfKLK)KjNB*zUUqe$$6g1Ign&L#CuS7kh>=1EW`2 zh#ZkpPW#0W4dh=@%I#8Hipi32MffKe>H$>)^%YeKcU22_pFKuGwgqv(xHfKT7|a9# zLhcJ@vzW}=REx5DClglB?oz>OfrRP%1@{3FNnOC2``n?bHgV^%2AXWb@qS=+vF#U| zfrz|OQ3@B?&~Jemj_?TLsuS#bCh7qs;*FmqTwLxYjc)yB3(k9j!yUBTcz`{~)~a^h zWb-J)7h~-e*r>7BH!w}>O>_VlfLW~8KS@Ez=Es~#Hqh2L5z(rO+Pg4+Db1M&V94Oj zbOuR2A+f=_u3%t5q5RIwFu`Cbn!LiKfnE1zZaf@$<^i0Xax3Nl0F#mh@DFje-k~hm zJwOK4Ak~mRNYu@yFY|E$w2tFsA8Eu5?rY2%F1z;8#tHeDFfCp=g$=|Kz4(}MUOR=T z9|Nf~l1-XCKw=fB9y~$^(@Po8?JzV4pAZvYl;Q&l+8Afz=DtrK@dn^3fQrBz=HUnP zF}^x6N!oFMf0#ikpbG9E&6Avd&@$Po=Cd;&ZrjhqBvG(PHJcGwu|N|S&B&nJjUEEb z7;ZQ`XXapRS?l6#7RMfLR2(tg-^^2|ceoHw1VeUcbsy?5Hb+>6CQfhon}JoCs)Z1F zjIFp`9&w2fw08{5LGS!R04Ej&!$6af0e2hYFbp}b+A$SJpR~t;RRI?D1%O6+hYOmq z0@!L82a$4wRttN4R0*+T@?fao0!ggERFYc&Ul10LikPXZ2Qi4ER31BnJo(A4p1(?j(TsmS@}d%lBI>FuVlGc(F;YmI%Mr#sY9z!8uC0Bpww zdA^s|BI#2w4f12R;yOwNFh8u}j=LV7uApB|$GOZk7Qwuk=D*^aOlsu+0N3f!w$IvJ zO??KFsTeS8>MEQW;pzS^fYELTi8uUJSd7??tJ*!Es2E22fv669o+^GLrq)S|{{X2d zB<{!Bs$Qwt?wvuziPb~~%=zzC_}!8!U!Xfo3V1^Up zoAGBCM35qX>Y9f(W1@F`-k+({B7=!H^{5CK{pZCm;*5>EAoZSMZ^T0#+sP(6FL&6t zuG1u&kktHFML-+BY4Ppr*oz0AiSA7L;zjm49m_Z;ch%~CFQycQ;xGQNp*gCbC;p{~ zBZK#d`r`6Ty&-u%t5flPHBw7vNxvQsMNO>vZ>eU9xC5dMps+W|m!xO2>PO>CyORt4 zI2UMoIekuzGH~`}@6Y-!mO782q^KI%23q5}^PNr@; z9iLn2zZNa139v7j>?h)hv99yn{QFPV{WY)dyk=Mb094c#4g{Bh+4mp%j*w~($1%_1 zx^>9J_&@zeRD)Ibg!=7fJ8rMJIxlD2f9mVgV0^@X#nkuw&xt;{(Cyx9ftaJ$>Sl?T zq1pEd_>x_h{$)S)RsR60d>H&kQAJnkVIPU>5&5g;PKRgPpTw1(%ZiTw0E%giKXWg^ zx$vL*mZ3Gc5;+`2KZ$B>3V88+M?gbprAH z%Q!^r`!@V&k_h~x5u5SAa83mHqQ#oQIK~VoQS`<`S@SPgc72Mw3uA>id z74yvbCG|~N1WYyC0C$pOq&q&l{{ULpEH~>We;>)W{IliPS^og)BoKO&-ptIUu^nOB zzMcO7s2H|SJzQV?d4iU@A9?dchCG`Qca;^-nClMDraz98bmt3v$+zQ;w+(^+0K1v< zwhh_jRBhlbbOmu8VcG4sM`R3_?_X7vG-tG)!HR&J3wVaR%vCIkU^%xWNEP1)W4P;H#RtLpOn(TjH zs(92jd5GS#R5snlyiP(uYRIhJKv|h{&vgT!`li%svNrP-{X;RLNEOGK06`RU_KYYU z$B_xAZFUQSLZ7RcvU-F71`U1X5Fx?;02L0?*a4b;-LI73s_m%fj zt5uF_DHPj4KPII_?V6Zi2waw8O?|341ezn-II%>`5LLjNDWP0URCkO^1@_S#aRVg_ z&+Q6MSC4N-=3%%u>C|-t^AKox;%2u!SHuZX2Ngq@;QVBc}~Q&%8?_mFn!>TGP1#P>VBKdd|hJcV*VG(~YLnt%n{cP2I2^qO9*>JBcx zWxl115mUtUey9Qe0K339Q_|Db4%NUuW^t|8W{0WR_@VPXuSNKfpe~H?Swm^wF~`h- z*E(Z;lUxBaV^R7RhpQTjD9fW;&zJl&)>^N-k-?uw=`{wS#N*00E7Z}i%-N|za6shu zBA}17rr-q(nTJNlAG{m#YaSyO*`z?_r#p&M0J~WEl5N{?W2hc6F<>ZgE>sOYBE&}3 zS|DAS)uXjjah%Vpt*HU@hXjy5@{Ou0m-n2^;hW-9Oc#Fw12YmRU`pvIVP}c82&z$t zwm}E`M^X;2q`PkdbL(n_8xx-}sBK2~8Xh5i6$cjp=?fgi)G7@LwA9(^pk*U4IrVqD z;&kX}-EOG6lqn?UKA*UY;uX?qMJ@z~)%Q^5Gutl}Inz#>?gw%W!!WWH&rx)&5rbb7 zq=B@P(BcQn{{T{M{{Ts;XO*9d>tobvc-=p1{-a{vo$ zV!Lmc5tW!6*HAr80l9E9I(BWr{pTKzztd4mQ^&MA$E_!G1H0L=?(x)d>D5Ij7(K_O_VD!2s8Rsbaxb~;`YlaRnPNfmWk!aZ8zPD0 z6543GV}Vdjc4&qvZ5?in^*KhlUJXJ$NH>vkV(YI4vD8)okZyAyRBN2XKBRI;0u6N< z2El-k!lx(K8P9%Z8shnc*HJ#ho&-~r+$TBKUT(*6SJf#(p#G7Dx~vdBBDG#8DfMa? z+g%Q({{U9FQgUMuHMHy<-C{)OuHX(tqicc&XcPO$YWk46WSW{5+ol+81MNCii*BLz zo(lTH!+AI+yi~9H=F)4vI*N~=FXRujM%GnZGv{?b71S(pe!@@x08%VH*F@b(hQ5pI zubxgI{{T>zp6AWK;<69;lNZ~{<03HE)O}<*-I>4CAn%FtKl+}jEN;9H6A#2)$oC%+ zhiBJ+sY?TJyXH;3NGBQ3@jhcu*J>Zkc^ywv@V#gC8rymp;^P)_dnjFn)ejL_*mXVc zN9arFuH@^Qhtz%)HlJy~6BfEoFP%EH;ZHrm^(c~Pnbqq501tH@(_f_J(e!$!a5)Eq zF0+Oj*d|TAM&VR0b&tb!cJb7Mei^Go5#8c88C>5|zyw8N+*IxV0Mm6aP5H1UABSo% zBQ#@7d9KW(AlJlSr>&?4&_Mf7Z%6Q=F-E}T&r?J2uv8Wwv|dkt}ocfkv`mh7@$}ffc_ezH79lG_~rE8qzv)Q=ub}Kjacq|NB)=x_K55FdaBu4j^{_t zrkNtT9&rKDw>|t%Yt(vG7C^-1T?=As0yR3g7e{I0QBakw6$Zfart^su6*_bqH)`5I0C9)_IFy3aI*u zK$D{=I(o%kx`$o22p3N|j&$n~Ac%2Mn;0UcmrRbRMb=UUz(oW{3y2p7nCB2Os3y#x zs8Luli;#Rt>VwBnAc9kjkJ@Eg=5BhG7`62Zfwv|pSil;EDaR0=IfFZ;1yq3sB^9>B ztl}Jlm<+_UN~3Z4%-c;^fglNN$D#Vo%Ssgie87u z5g49$mE1Ah1$S^c#FbkE-03=Dg^b8D(^%pH(H)so7Ztd^=Fws>-1RL7R_u5X56W&) zh&VAyUlM3V@iyNRFxq4OW!yQGPP{{8QJ74_u>f6|gjW&H4MjZS11QIL7;zK=BUKDQ z!MVgE-Nc<8-s70yn-Dfpjfg`>bOc%AC{mT!fC}z6D2fP(MN#YKEtPIyQ&Dz<+~yBY zM~Py@tz46)?hP0f+!k;jLd4R96*lCJVZKH2)dmW2GhHUL=gxTD7G;jwD~oe zE22K|EDf2PNE^gOITN4@UTzh}6JgA#b5wH+r@NSd1B=Ln6RAS3E%$L8bYP-5fzY*q zD#~`<;&UM)r$aHnFgb}gLx{xE@M9F@)XdZ<$RH3BNI#@?U91ThCzAq?b|cYZ1T!?1(T5}HJ-(Hx9G!E6v}#0b>Xd5pu{K6!}AT9OWhqtsnpGDY$_gGIq&rv_6{ zg&RrY2Pe|3)Sz9oFPOo_QHsn19Kfn*?^EP>oa~!gbb5V#nC?$ls~Zpwl7Pd(l{Bq@ zDoKARn#*9o$K9x5Wgub@r<#P_LXj*uVaS~>+t+t;D0Y}x@9hG~Z>RSX4Td?F^!k;5 zGJ3Q%EO*of(*mLDs8rKIOWQy-Mz z!>P9N4%pvg;C~SOH+nED&w-io-oMf|hNj}Yaf+X<`p-hGy0W~3K4T(^2QCKT&HV6kZtBxI8P!aAR zb8?E;RA_(9n^pqd0Ua9AZmxhZvCxDlCnWXyM>>u`Kj2AkDhnE;#Y&|LH)G?e6=A9F z?;>>RYj6Rn=Y(Q+3Spk*(}Cm64`WBvcsQNfdb|;t;ppmxZM`1np`oen%VWh%Sh3vx z^L6`9eN-e=qG|)dxYc)vSDCG&NxJVnPDj%s>g&Z%W%QJc&OL214e|s^mE`U`HP>RG zut`t_0rt%6eGphFy~i>Rg%6B)=4l-soAEtF0ad-KDung@C*!8VyHWl>dGgE~e&sYP zBBQBbq~g3sSi1ci)BY^3fS1YYdKx~gHw~HjmXEH~O#o`iZ#_>}(Ed0Py~L4R@iBOR z#^)#KBh(5E4oRaOHGyt(K08P8)n?0&6T8y>EV`Pvd|;n5o#NEw`rYWuW4Nj^NS${7#?sfF+8rGdR|}RrWRx4^aM5xc*tdeNyeRa%EH1DNqYsm}{+2F!&spLWPpi z)=~jF4*G)2Ywh*0?upmh%W66owQc{7k|DR3pz zRajB|;7eCom55vu-09F}+hpA1)o>fgmDBYh2GJNh2?W^B-bIPv$v3D67nn|_@rcFJ zJ029u=@!{@mD^+8z&%h~_h0EQCc3q?2HrC{w3rq*{K;y1jo_OZ?jjHchPh-l-=^(& zs*Xqk$;{yY08$fzBwyDP*p8{$-@cAb8AGfOc&X$ktxewN6&q94=>kfyAbiJDv(oyc zpKlS)pkYRMt@w}v?;m)7^;9D!I@7z>s>}|-R8J+p7D7Kb5?Y^$r4MwyX?aJe-lm8H zGQU)89U0)i;#y$dC`jslG7pS(a`d&H?`@os&BCUWcIuu2{yC<~ZK`s5kH)>HV@o(x z?D})5V#^4J)F}Sx@$LBA8ut)0)Qf&JNB;nf8S{x}=68Lo`i(HB-$n)Xnjm|gd>ei; z#QU6_^Tdv~;;*!_we1r4lgS@?{0@>$z_;U0N`rS$AH}tHmLi7$%ReK@ zA9Q~e)5!;)n1A(6FbBM3PtV)&oj};g;&YG1b;hLwLWmc{zBKYa@6>)WRm$=_+~jY@ z*Ceq0=g4aM{bv5-U}eAUCOtvcLGKsdCFv8p>U~e+Bl{TN-g1BI8pto|A3V>U8rxKY z2|i*g7a+4YV2YaS6TN*luj9w^xjbObC;VempR5h_ws|_NqoOfhWd5Gz>H)UXfkMo58O=TQE9UFRR93|Ik0yU7t;i}s=Dfd~eP0Mm1383DW-9QnRs zCYR^QJ;oYj9~IaASHkrHb`XZz#om0yTRM4WvDg@tWU-JyzY_ue+gJ9C^>DE? z6r~uGWD#A=x@DMdG!8OoOQ^Oct3G1ut9=Flf%gyt1-+mg4n$qHe=qYJP$3)CwHnVr zSN-J?1K+suMu#w@a6@kGg>fb{ol6ryfsjY|ohM0IMUDuqxi{gYz3{ z;|I*P-)JNmzMj-Kis0Wch)~BEj)!e3ioSc58hkYlBkfS&xe5;uCdj)=v7lG80ZXRj z_3=*sHz)#4DW;A!EA9_~JR;uzH1aog>?R<@OGaa#;cH_Cz0bFOxkA73G-8|=mNIu?im#WXg1KL zO`rO2F{t7ibU+`;gn$MH=bcQ4bp;18b`?8RRrlruPMbCqgUJKTk<(zCNzG<;{Ur%Y zyK&|zKt&9m45NaN46Ib(4-$cxFco6D;&g1?c1Y-sVhSF^h3p6%`hm+S-+AMJB-}L< zq!qK0TR*hv8evp`EqTu(BLEx_n@Q#eSTXv^kR0<>#I@c>Vs&6m-DBjBH#?7>VcRNSlOUhfwG88vc@esE$k0k>t@IgThM>nAl9%B>99fJQAwYm+e62p@3V4NNTiZ}p9)wMK_GP~LC>gh@y= z!xe*w>V3_|c#C!8&SB)|5Fev~F&lQ!wdYO9YGLME?L&sm-_VCHcI5 z^D!H0^C_yISE*IJ&Hk@ejWajg;&UPvQfmje^amz@=AhHIp<(YfNwEoL0?FWUcO)Lj zunfeD0;@0_>g_+6QN|1_sz{R50>zBHgUU2y{8vV3w6iMIfx_~Ig{+CgAU4b_p3 zga-PXT8*3I6K*%%-ARqtcN|#$(|>3VSb-6)sLAP;EX3K)2gJBg!x=o)^9Vo-i*rh5 zdfCAsHCdSMR4T*~{v%}bzz`CfHcMHUF5)Y`L~?Hc0cXr2fyXeZ6(ra>@iA5-;BzP` zO^68~nlL3ni67=Q5)MbqYF*cL6eub|HhwyRfg_u*69R7hXEBv%b_ChJJP=_D$hwWW zh!xew8k%t+#R;3W<`qTB>+jRw;7iJWBadwVw2%>0&S2pp5oDOw~1#J zMCa`ksXBmz?UW}MUHO15u)Gf8Dnr%#Ov|K6ANPuy3Tlb7)j)>Bw*cRh93fjf zze%m`)Jjx(Q_DEKruAl7B}izcXd4&B^vdx6hH9!>Z2F*isc?q)&r=j76)QKBBBQq0 zc@ctJ91XR6$_+XM^doH*fdUSoEdVd}igfpWS`A&!hEHw=V=kAp69beXTFtk_pi&fV zIX*?oof-hbx^w`}AVX;%ub2YnrQ1nZ*}EJVMvay8eL;u>U}zpXj1&*laA!hjou#U) zkqOf+c(~Eew;2(DV!YSPvT0zFx#--Y=&=>HhcYzeI%RnVHrfZfoxkZx92r6AilD%$ zGWDU}?i1{~X z7=()WhiaGn-r>lO2f(kq&`qob-SaRW!DBtcgJ;BGj7S485GW?=sX(d_VyogYwG=>r zX_NV}QUuy{2m=Ci>FB96e|eKkoC}?r8Y1g$$wwg3?`h`}O`+}fjNJFfrBJ+1FIA#+ zmvXK=$)m<}qI-zI1{8mZ*Qk~5K5;qO7S2ueH3v4L9oPHG)taIV=pnY-5HnF%W=Iro z%%W!0b$$$sji$*riFZUeYUYF{C*a=Au0mLtx)9Djb{} zlmrk>)d|j6Und>LR~g0Jlys{U9QeqdpQhIo7rx0q;(16(utnl@>1yoSp-CqMoK($f zSH7BolDh+&lR9q8xK_}3?n^+n;5LtwbD@K-RAynb`d?G@&eCh`KF{!Nb#w!Dc_w@_ z3pfKFC%gDBsb)3f6Fj3_UvPCxnqE4W)6*YMa~#eePNX0;a?hySXqucc*=BKkh>jWl z1cH)Y`<-Z4O)TWV8hSXkG$fp+_;tNWq7w&+9W^A|W(C_&gdt}*O1|aUYq^yxBwUJ~ zijCRkdK!9O&|4pA9UTkQvL{`I%L^lcZ~)O2XNe~kXmKcY8&RwBj}tP2Y<}=2o38G3 z1uQv`-<_-HnPT7|&Ta)ZDlHR^=RUK2K}xhd$?IzpYR@vdARM$J42Jl?mD4+DRIZ|m zz_|ogB$EoWwThhOfNJJd$O-`F;%VuYY=}kER;UTlzLd%7=m2cWZ7dB)ubupNOzL`l zPqC@^x35B;r(F&1-fE}qzmKt91_Pa@ekb^qpINLhNn&rr^!{HSf6(5E*%@hwUj$vx zr1ajQRdT@5^FB>AHrO?|fyYvsUaj`92LZAF0D02JC4HIotK?Lf^{cm@c%LjiTa^~X z`4aki=TL!=Kmv%9soC!zR+W~jh<$3Q#%GX0yf^53j4TTV{tTG9^;hvMf?xC#YJMWS z`8CY($svKLN)}rUMDrMH(_h3xcN_h3k$ezIg60`n^m5);qH~*j&gcaVY8@rN$c|WK;*$YH|&pWC$Qo zicZ~JoPUTG{{T^_Y+rHyxdMrj_O?eKcuI9+_mDC51mDNZKk5j_^X5c@ckTV-1heo& zDgL=25BQPasu;4IpEAQsz>KO+svE z;KkKnZP6p+pr{GLBV^)qnX= z+5|TB;-MVhP4yU{yRJm;^#1^dYP$Jjj6tBtnxUD11W%>>Ghfmb0O}|sBpewk$*&tn z@J(Pz8ccEj09Gf{e@}V_(A8t8lx$d@mV z>Q!__RY|LkQs(h>5bB9*#vJx0+N#0#J~zveq9SDd;%)qFxdI42X(I!ZVZ2Avsn>gD<%bqeX(&L>k}fiOta z#MM33ItG?3h@epzohy}~CT(g*F4kT+l z$5qZQl*0VqNjFpWFN#B>I5@uHC}KA52iF2_q5* zdjk5AX3YpS9MKXwWRh+mcML>LfPLj|23wj+K!kBI2IFbq=2`Upq=O*l+bXI+lWt=p zFck{SE4)eSQQ%6s#$?*6RH6)wIBwO6CK7^u1O^r%2Z+jZn1d=!@fOceuBHH`ikzB*GYvuxc#Qt+h!M=_(Iiw* zk(Pu5tZsANeZ=S_7PzNM!6S(vmY=z{oS5yWm`0gXj2Kv&xlk1`DuVuZ& z%zltCJVKz_WWnwZ2pmqQ1F1Fwfe?YH#gK&^|ocG~d@X#>dp zp+KM7Op~1br5QjZNfA(hhdJl%D9lWqe8K_T34p^2FEbi$qnu0o$w5RZ&yM7sMF1r?9v?HE+Z7~In+Ajc zG3FgR-JT`Rz&?7K38b5Q!I{0y89*Vth=cQ2nFaJ%=r}cF$C%oh%2b1rdpyR|t_Z~B z)xjr;C(%L!jB_OT9LLjgas(_apA!5W;F1U?LtoPF(_=z|0O{P52X~H3(d>y#D}iGtE^bhBiJf zSQQ6rDL3;JdW))da6!cx)uF6T?ZnvgJgqHIr)b?nsnWXEwkR6|o@Ojpr*;lH=1A!y zS+WnA1=nJ=*z+#BmZt0P1C{j2?E6kBd7RItSbK*V=6YC9b=~!HXGk6a&%_TQ^s!`D zna;_`BOKy;TAC$Pj=RL<)%5pNKjK{;ai+g!)BH@kf#(^b1nGSa!%)7nC0^sZA7LyK z)7LwJrtgtcr9E!0ozqm4E!QMToiYuHN4x3&02^%`4a~%m%jeXOA00{Ki#fkb{{YpOQHvH7 z-{wdE08>?K+&S|;0Y4P=1x>LE2RxV$;`+P2>#p1ld6+55u&wSJ&mpPvuLo~c-F9Lk@@ zob79}25LNO-TE*3pn#}*1a&0-vrlbq$e#eekLxP}2?DH$x}Veys9g>K=P~0uzVLd` zs!j7OJ$|3kzp3uzvQe&*J{# zH(!ar^=Bs!fgUrv?w|1`QG26lekE&U(VqhU0E#dN+({hbH~zLjBeC-yGqdhr@f8>D z1XbL(r}g?JGUIXbXXh{YyJ|HS!SN24;|vbcaoLX<-TDr{;v-BFtUe^a_2nw48rb-s z1FQJHvyi%ZUz0hHt=1;Sp#*rAesJ#l{a?n^*bT(zKa7Cin-k#mJzll$CBEK!%=x=m~b zXB&PvN%u7$0P{XqdolMl*AyyeXBD*aYcpM9c6}3mFn*!`0CI-_Ngu}F+PZL@o`7vi>kzaQoOA3wzY-?pNf+phc3pL_5^i@YW20h7=1u? zIRdK#F&FWDMM0M&Q2Wm|zueqgAXSV(lgFPj;%n1y#WkA!AErY(EAGmB|b zj6q{(fg9Y+!hsdXn8RzOeOvD(bq>}i9Mom?d+=D_nZ^_rrAi~gn5vR1s5ZJA)HdRc zM010gHg+IC_TRPzzpQs4+6U&~$~g{%3WX+JsGF{$eL~xS0=gF*dpgZ?C#InTS3f+; zGanfutdqcf7FMj$xl+c) z;G`aFs2qq{Y?T1e#_O>S4nePhItppKZc;JSN7GXFriktYTsasPVA9^q0a5$TpaWUz zvV6x>PwYRT5F*-OsjJ2@nvJKXbkd33PjivW|JK4cMP_kLTsm2h!= zROnQ-01CzVxOM=i#14O?8MjgQV0Z=vLJzo;iu}Azv7|r(t2QAzYG2yG{;*?|=wmsA zY3)L50(K%2P2=qeKoI149j=E;9hwm(8^-D5`KGhHyX%IIzxbtw(D?pHZ)xz4MfZfk> zLGzv=N)mvhXU$X$p+Ez!NtF7dbru#y@xYSQ)lf5=7zO}Z+D_c{a$1T3uz4L!bq*J)cw zvsIeEGYtECn3NvS!;I!{35DB4laf%QI-A1aTHX8S2oA`iapFa?wK~hOSq(iGt z7nt-30Ns2;u>k}xa35%4WDz#0U7=KxI~6hZefh*tLtrj>fjp75va*|1wCIsQU>F%( zAIpdW1!76D=fnZHgi+#At8%prNt0ZWo&*(SB7h$A}mPynUk#0cY)9Oj?b8&=PVD0Z!04Wup5@l|P8IR_u1M>zC+(4FVAC&m!9l14{ zm0a`sK|^_=aEa}{KYtNOHOD>6?YlMld6|Yl>%=Kk-~c+KacHojKUqz+b&N*}7d3JO zRob~R3D`Zn+^|~$;QB#q`7kD{R@I*4DLZW-GHZ!N0H67XX4cLi zOsN%M-^>GYn;Df0o^#QeR;*)jg-L16lYeMwjzPzW>!hHXH2_+$5A7gR*W5rw;CYn@ z25Sajxu^&~DFk3Z1+NwJ9oK0Yzc4RjtAMyxKF~*tfT&suF)OroDkuYzdw`9lo)myM zxK(y3+(yzrXm*^|VITz|hqeTYn+!2rz!#Ex=1__hawQIfRz1pl5Fk{r_L`_d*rG;d zHr-YT#KbN}RD8fuid)I^1(zE~U(9o-xdz(!%xyIwg*Y;3ny1qRa&MTRZa7o(bF`o& zbU>0ScM=acjYm1ffGk3c+o%t0u|OF7KooBVv2v<0aDdhLg;yhg8;--f+I}3S0K0N#KoZXk0iST`s% zup2fd*G{S(hVHC&m{&g5rlD8Wa~)E^mkC1qj;b#_NF}G~_YrHw&b=>9i~?cO(*%YW zL{CT4>42iEU{WBHMv1Yg1P6Z>3ZL1xjTsQ=^X@!>I&osew8dB) zpNPh)t2g_@!4)-*Y=S&ZY87$~(7vNDwW_EQe|RzH=ZGuaVCUvEF$9~z9&SGS0~rG* zB8vvk98_zeR%9JIBw?7*>`zb8qL2^rXOX8wf@ihp0V%juedMHintCeQXUyaE9-T-a zj89WVK~eUc{;fiS4oK>A*6e)0snS(7SIpsb$GUqSuTIGzQTd);piG56Oz9YMFzn_} zR4E{>gWrjE{Fhn#&UPbp0g0%DQO+`WxEnZ>6izum#4LkM0(mB*M8VmE{*}!2^)xR=s1Gs&KnlOmOzT)}Hlu<60Ey`!47A+N9W6BtxSsi)%S}=E}%QUXTfXg zGch3Ee9u?qJv{#arPmhbCvnCgMzjiftvg zFK5K3*W1D47d+#v;c0uTnRP9`dV%UMtx;Q;<1?p2TxwTj&jqy<6HWTg&rj-t8r@)s zv1NN~tav!62IK(VK4)j)8Uxj$sRfNsUtjukzJrxHtWI~Fmn*l9=Du(?e*Pl>YWZHx z&QDRQeJ;7tZ_K=y{{ZR(CL7)2X@^>=*bWWxP@u-*Hn$bxdFRzI09fOJB;LLEsH zJMr-=t+z=nm_pze(@-geR4wX|04+$bJWm_d`i??1HHpgJw1nKm0uS#iJ0C*+qeV>? z7vkctsYNEppE`YR;4BOK=40yjRbRpJ7YSUDia zf67Y_;(Yi1w$8Won~@p+026&pF}HBMW=yNzJuO$}uQ3zwajt~zvPLd>8h)$PeOqP) zMEZ}zy?&Ev4fnVXV(%20$?~6x`c%k>Q+v~fLn1sE&=N`H1$Bc z2N;oSRs^VHRaeZA)dje~>c5B{?w_mGEEv9a_S5Wtr9Tuesq~%f^UVD1nTY^!IG*qH z)15C=g^%|R49_X)t{2<)4@gF)kTSZc03xR+;VxTDUllzKWGq1w$9}z$!dEyMmQ==Z z9BKQ$W2#vYVFF(;G7l4{Xi=Fb0=a_`pvI#ODT3zulowco3UozTl2y%BPM`@D6_ED< z4wf#Y_F`P%0XEth<`Dvhz91uLz?UnC%cr<`lyWkU5>5a(;&y5!3e1CPS23a$aP2-P zLTKVp=~9C(jsliVh>XTPVEAmG+p_#A>Q_XpO>i?UvL0u|d^L$pKQt#M@>;fy}6& zzcOKJV#IYQS7Uc0WSLsrB8@uY1@x4fmo>zaHo=%5P!c2z#BgNAgBge;<{)rQ6DlYV zkuf8vhm1rfpi~PHSncK%d`W5()C{KE1j{UjnVkwg&?vbXiK+k?lmspak<`Bu4q7{< z(J!ei-JT~_iv#w6t)wbQ>7J)!Fd|KWfzGxKN-I~|0=8z_S1=1u7@0-MmdvQIB?{KD z^#1@XnWEB&FNjcLAoj*OM4mZ=>5y_DOqc+(%%N2@?{p#7yN*zE zBy+^DY*&a9b|A-6D&*W*#HN|0s)32jot1055`|zodxiLbgag2UEklvW#5Z!T2)d38 zT_bI@iF2kZ?n4~9gRv&86@Vgysl!pZEEkm)EWKtjJ}(kwc9Dri&rkyZZ~%+6k_2WV z`NU;3JjfN4)S96OgGN-o=|O}iu_=iv(W`*17`l%~hz6w!FdQr_n6VLcb5e@J>I8|; z5~+JAK*}%XH5C_f4sBKUT}Di?NeWEeVVjZV#R08A=%iO@)?d-@hka$0= zu8H%+2h&yt{6{2@aQ$jB>Mi3v7&tNs>M&!vh>~Cra?Y%|!_0XLBDlx}J11_>Pken-gw zMHHM!3_+2Q{ylsC-)q}z_r2@7uk$(Qyl0L%EopT$B#gW;_>ZA3CO=9TskEHxOJT<9 zry@;lSiz9YVZZea6XSY%UC#fSE={J?$=O=`qN?Z#VlCUSebwQ$X_!sO*|^1iQj;{H z;gjx03VZEktnzu(xd=Lg1(S28{7lXXn5@!2_#c2svp)XID%CfA|j32pGB~tZAkX8_$Q@|_-&TJ=<)z>XV`*3zg0bxm}ofX1E!6?Jb zLD8`Th~3)GgM|w;JY*C6&EZoJiw5b*X#LdbRHiFK!h$xazpA>LuvQ44D+0J0i!%(e zNDh>kZPryT@+S9N>+BehV;?ow<*5BrS!xlVN?j~1eDCk!l=v`ahLguOcRFRi^=TzP z1B5SbQGq(`=%zMV5%+@Hqn45uxGT?qlBt;CoFsQLc>qi%8(K>4 z@x-8K0?{M}-BdKRI@xlJaewPxRMZxD^^YO$`wIQ&RH#UP$jbswXSpOkxh_s?ctVaq;~@_y4G1V(*Pz zZ{;8@BHLEFl396@3xyG41*|gfwl9%SP&4Pp;PUtg*@|gEWCj>wPXr~vZN?3S z){*R&32yZ62pkFp9tCceO+6y+@~TQPPQDHe`DXMe^Fa&Xj%p%HK9PhkGW|EXygRme z`JaDV!lm0S3{GUGilu(`3b1nOPygL#LEz`6QP$Tw-kBHPbaH>=7I`dP^tV1^NT);S zj1nA;Q4I#}YmPcfp~5}qD9poHhn>V@MyvSFZX@HwzOfLj2YfC6F(QPgkCA6@>oQAw zJBvTAj0vW+R)i)ov?lEoCJ4B(p9}6AWxO5MHa@<5@jPs47bi_;r%wa}gSjsZmZ)95e+yd8il@Ke|!e9(rxB#A^T=Q*Kb4?~o>`o`^$ z+@(-d@6AdIr~(~M5-3g8OA-rDjIiUYN_oi04F6PmIXthnWLM(gUClS&586&R24y6g z7c911ze|60Py*Wu7MuE{V%W}XGP<`NsMlurt=U&>OXG-F{=s05 zw0YVmxC_nTzpI&%-^rjw3Vfo1>qfCr11K#`Dj!hgV1R9n|XNxXz#v?yS7@j zE%|4Tlu7JW@yu>3js!*>-Mr9@=MG|cUFlyhE8C~@yP-vI>u5(}%?n%OHAZC76dXC_ z8RDaCjqk3Nf?y3`vA+jpAGR?tbwr$h&i{7wBZxfib+A&d6DHGFt}UkJD5$`u2&F;v*6r({|qb zKLEM98Jw?~)tSEQIWalpi}id|bLCR>+MHNYZ3c(c5;}BA^uyC{y7c(9KYi;ha2XNa z689T^15>kqO^3{_+Z4|0{%}6zyTR7}EW#ZAC?rC8h!x^Mc;1Ez)mT3*$s$$B#R8Dy zXY>TC;}^%E6F|#WY;}VI;4SkLz)BUAEg5Dl#oN-p%D0Ot>5N9MY*!V7QhnKOdBG!r zBwRfCrF+Fe!&~=yE+@xF8-9`lh-`wm1*8fgpGsL#+3v^ZrNw!ZO;AbG)!*S%XMq)c zhYE>+FV7XG*IkMPF%!>2Bws0TVC)Z*4sfl|Oxv+L6;0B~89>BFks zsFVQ_+JXbg%(Y_(Y7DfNa1VC69d1bIxlAvhiCGXA9lgZuzypO7shT$vx5twiEmNd( zp`Hx{8>vxL;(Y}<|Lkv|>3u&_eN}A3a__Gj^cu%(JIQo9vbC=BXgr8O$O%fPeXNKk z|FZCt%*3@$?Ofr^F*o9YfqQW{YQgD}FaYUQ*wcpPk?@_@rRvCE!f7?jl#>T)DT%+7 zs%kQ|$gRkbNS;_?V;%`uK%t`K6ARxQ{GbHxku<^N*_Jq zpa+=pg2<;(PA8mE;M9KTyB~SaP*R|b%{{(JrfJN+@T;EUM#H0;s*gnH@gyZkzOvD% zg3od5vlB1weVN-8!~nYH1Jru8F&+ivFXJY+?wQxSVV)`V#J1SWE4FLRy5$kr0RG4w`3UQ)AOeyTVWm z*GbRC(M748;(o6B#H5e7 z(mwd{%uL`BNQp03Z+Xm*b2KpQ#J9UTAAv+^Bp{GvMqFOI;`uY(;_da<9FbW%!D6Fu z%avSBN|S)W!|@?x15UXRoF@R#q-#P=TYCW7*i@ZUL?C0V5V!nF#X->_}yzBawx6Z9p>S`|uDjyl_b% z0|r$SbER_i0JS#R_$MjjqLu7^m;CgmUlPcs$DVGa?=~+K+McQ^QB)=sReTMy$X|XX z_9H@-Q(8aEOWB6YtIdFUDolmOs?plm>tpmQQIl_xW348#vch8lE6tQ}mbSD?gI1Aj z&V^^IP3x=DDivCn6_Kloy1c;f$h6m^*B(w!8#;PR+c!T9l_FL$NI^@(7`|0?lqA2l z-wxz9NH!#&scq-(WBODAXgH#OM9phpZ{Lz~?{{V)_#t{L7 zl_p^$yTa4ohk(e0749e11fHx()tUYCGVocYc+;|}w%95YRS@Cj)>Pc1$Fje=SkN1u zqqhb`%QpLb!$yO7Upl1gtbFFkkD2xD+XuJF>Lr$@j``bd0Yd&NmZ!`n;T21a*j?;W z@RqNq;KblESLCAW;GCUe8oi7LNy)*JD}k;<8C}V$Kf4U!n{ztFe|vk=4rsL=dyVWt z6CEwY=P7rbb+iBTNu9Jq3B>%JcEkinc|k)UU?||GWOFFv{3O= zxGY}%Pz|=qE{T;eCj8~{DU2pmf<2bJL-?CMAp8ErOfPku0rElV4sB?^Rnp1a#!qn^ zc$tDARVVQfXHCL_x-~PcuOYqHyNqB~_PT=zHsP|4p6bvWd?QfMX?1AoPJ1Avp2K z!3Gz;2*!oH7MXu#Y7r4gk;Clgsm+KYs8zIQvfdoVMIWs!%t>F8f-*|f>zxL;JQzu2 z-TxZ4AjhBRkjh{myKf}1;LKizbrBX)BZ2#2uf^bc&_RDX3S73o7Rarzh&-;oOIwj@HFOQqfZER1=t?B?v?#f z{z_B3Wi4B}vFSZ3@LlB7jvb+3j9>T~LsWrUwj~8c`WD&pzB>8pYM2<6-TC`00c+2; z<49WLqE^JJ($Lx6%c~%@Vm>pq5M}18XL@$c=~vp*Z`F!==;{nBk9X9HvU;H561Re1 zX(nqsta{D7RMFpMiXvRJ>+RK8R34h*Gc|PKIHkn5`)b? zF0`sX%g(vVXaB0vpXIS6L-ccN_%ivI!5`Trgq~(WIL&`7am=+;hjl07MV!vSR~ODL zcYke&5`cbBw@zoV z>vDuXS)WnW7_k2SJprQKlK7D?y=ZkiW&l^2!vM6jRoSFpI2}uz_rIZ4{rxz>)W#hb zamT$E`ZnI8o&PYma_pN}QPQw@U-24xeORr->?G{G%6=^0z@LHCq+$7gfO^O2;AwQ# zJK6FjN3M|K*B1iSM4fzMUK^Z5U;xXezW$cwo8{K6=cn=lb2%YsmkW0CJ~yw_e_lp_ z&bo7C?aJbKZxnS$y2(VqS3~h!9QQ4lm)Uc$%Iy@jN6#TtgVIzfz+X(>Dm{d1ED*%B zKXjT+=H6ei*M4;hX-(qUIO9|NCF2d}Oh<$6C*%4Xmc%~RDnnX*Oi%+v$H(||dhW>` z`O#!}GiS*f;oCAewIv&#A3U-)UU8Q0xPY!0Zc+a(S!lihtTQ7z#=NjO3ix~E zHavpDZaXwvpyXat93jE)H`;D^RSWs(dt1)|QlPgeG>j=4|E_C1mws&V?o7!cjQLB{ z%!%5URUwKP&zR}g+DZdnk;mx$_XlzcYucYUtFw@m3xt&6VRXU93mbJv)VfxJ@B3_v z<)!uE83=K_VK44B;twZ$T`Bxi^Qmj`aq8da%jc?Ug$o@4u6!805r@xh)Ps+hk@BjVvR}o`D3+IO&5H=n`dgd}qo_Hr6$C1ev-I1>j|S zpJ)g2RAThS83Vh39>8_ouzwsCZ-MoOO=fwb#>nbao)=vF3^+Jx!!h+T=6$v_bBzrE zs%zobt>*dFll>Twsl??f0l=9b3%s9)Ay$Qr5=hXUwsy}@6h0VxmH!ye(Exg3P7a`! zC+~x@4D$>8eNH$aSJpO3))tx4>rr4$b(agkxK2<`@Q-`j#*5A-3{HC}N9Kf-mpF+( zxyZZQ``!v79!OHi>eZK5H2OMib074|_?J#KvkLm^t%!nzz`M-}sRB8)HQxuw1+whT zXS%CU6DiS>E}`)vMl7d-B)KzvVIL{%QS3u=U{lEuv9j|{DD#G(G96_X(}+B$wBoN* z53`va5Izl)6MaI{gdG8er1RJj8#sTn(9^qLXTCQP0eandd~IZ#fDfg-m&iiv@*A0s z<^$=tY$z0R%u}VTWr-$0<1n|QL)oKIu8+ATSD$yrZcBX9?3Ih2czIj_pFw= zlq!I+JsCbwpRj#J7xVj%;-xV^SC%_Q@vB{B%^z%wW(&#bn`)@GjdMt(X(9aGJ#1a9 zncOM;Vw8G6>poEsYDcL)WuLATP0qZ~Qj6nlrL7#*^5HmD0A6Z|d5#pRi#UZS= z+`eL2`Mmi^WEM<7E`_4RrQeoXa}GDr!HQ3=xFVLZ!z#N<;xv6xMj6Hhh?l0%v9;8AvJ9i z5cU@6mVtdx*SjgXq*+YSDgRA~0nX!;15OYiePGI3h$ITa`C;m|ro*NsgiCV_C?m7T zES$9On`BYewi6uDt_?1PY6lXMpr(e2K}OO^6m6<<-Bkp&Wy`EmT?D8J9m_$;3Oh9gQ! z{We!xcPvSzhg$6*ZlQ$V6wbv<#O|YQ2luE+AhfZP2U1oR)jX^e3-$30v_k~rSNZnx z2U+GLazrG1r+ef1$=gI7dlG?$C2(#Wv#TV}>qC$Cl)KnIAH}8#E+6`QPYs#>Kq}K% zSaA#W@<4O3e=UFQI;3EgcdX%1No7Xh=Llidp*3KT5=Jg%db+#&(u>LHn`^rgC6p(G z;l#>_u@?oOBP=TB=gb1d^uFeXJlzv(uLL9n@=A_XYd4epe*rfo)e)F}mk|8tv_BMG zvp9U;4uO_RErbskyw2m&Yzl?+0_q zge=)Ys+06&4~weS3cEJ~JN%R#ckF2LAWZc0cxPgmnT`KBgAv=#PT*R%EC6QKgAM#r za3K)&qz%5!5fV~o;KbIJW1^VPxL%D4W6V`->2cK$>yQ(=nZ8=r^6PeJIpInDIKFDs zYc)v}Hz4$SiAWb*2Y%rV_Vyp9HBMUe^N$8N_^Z4pm!~t?q^(Q1Rr|H7RP4 zs7L*1iYu0ZkV@^H&@`}L^f2t1DUA1?k<+L*rm7;hu-+$YdWk>ONXu@ea)101tUIMz zT~FQvUU|w)mxqe(f_u;w)$D)M=A|*G#>I-;98mXp0&=|Rr0k)b?#S>9??h`xFU)CH z@pi^#eymCrZQVkE@zm(UyRvl>=^g{UFaD4L+pKkK#W|g9nY~;WQ<~yBIH5N=0wChA z_77n6ex`#_EKB2+u#D-x>CPpOt$@O=WTDv2#8#{bkwnX{2=e_-85-WMkdA%34HnAh zl1W9&adB?C^!ufP8zLF-QZK*FgN;K!30&q0?dhDvSd30qP~&g%A=QgC(=7jsp;(z$ zu&>s*xO6_HLi$9>I%2*GYIHnDcz7t5?c5);N=pnNl znr}P8qJFgTx`yEA(y`pBh*z736Otu?VmE9rLVl5JAeJhWt*R%2M4J1MuIwDmX$12U zlWwtPx7xeu;1t#I(@iKUir_$OnS@lESgaR%&TdEMYca_+GvmxYQ$NEY!e5E2N3vv? zmuE==;Sj2`l>eSTJrbiA)*~qOh zIVh~1v8~DOO#&5Twf(IUVM^kOt%X}`WZ`Gh$M0%M4nS)*jxiHqD!4(6LCC}iPll!* zlmD#jAqw#&qS9Aq^J&rWMfsOhpwSOL?53qx8t%@6vuO`5ctR$(GB4_tI&(CY3kR%V z9QhOeB{*qd6XumON?+-11gc|xd;>4a(Hu*zzT$U~-$;5x(-f!yNTtL6Or0!uv-;YG z6jpTAE)Uaml>N9c(Bn8E3%S{uVJUC9P8UviB%>czkMN1@-e$lDu? z2suzc8_y9yY>(pGya{)&TqXKt+0V*NpTNcRl-@mN&d2iDKl)r=;Z-$$)-~Rw9f8e@ zn=kN?4W9*6iqz@Qif;;!H?B@^IO&>b*46KdqTw{?g~&DCna1zyZAKuH6S1l!^+7Ibks7rcb@JGi zik@+UKP#*v{I`690bodfuYdF`;n5_t zJt<&Fc?EwWL#T!_6>8v5uGVH@sZ57W90M4o*V}$@MO>LG-SICkr`_~4p>PuC=~*k$ z(?1Zxuki?sX;QnW(_3_|yIYFPf0VKoF~@4@6DuD|e^f~W%o9unQ{u`xh?qDnKS&SF zi29l#Ka4QTko}PK|CResntpJ_Cj0J2RNL2n%pT&(-U0|Ajwg1f-cj&T97XKh_X)_w z0Xe)X$zA|=9waia34Grs2Xncwpmc=$7J0`0pt|Si$O!tL32UN+r*pXQUWz`c{u~QM z`(hL~TGNQul3E90TF5ZSe8SeL$DxIIlr4LWhGeqCNEt{J0VxcxIjnu207JC zs8HA>3z(a(su0x{gJBL~h3QE zJEEVS=RKQ)myFCTTq5%rBu0bzxhmQa;FNY||IHIJI})sBz~8^h35G(Dlre9k{7XHM zT(Mstd;%*@VRXVQFN|JGOVJ|&yKR$#n(UBUPAtEqbD`I5Lc`lm8bqc}lcEx@m20V75S3-OO++yx&`@t+-;qvLnAr7>c z+L|xdr6fi}$P8c^3B{-SEz|29{;;gEkCrBUy9Ba`lpieB6d1sZlNI|&yemb@kx|u8 zsLysQF;56wS5Fa1JF!EK$dy}R(kBu8CGcNp7i=7a0EOo}Gbj7Z0&N_D-TjeD6D$VI$#aRBExkGn6fZf5 zb}8iC6o{Ouri~|FaQ^r+iCREW^cfqKCguok3yLgP5^;^Tch3JM9Q;~Q)fiZ*-lF}F zGID_~lEmcU@1(Is_ZNn;;}&q2|v0de} z$Ih*9KQou$4w?iRH$yho*o(Jukyp6ls&D?%kNsQnk@prsYcl$C5Amc^T!v0OVCq-8 zJvG%0O_Yo_Kx`=;vvsQU9ZNrpivZPshFs@5+g;o@ zYasf!G6`EKzPWeXdS0bn*FTk?<;CUf6nW#g9W$S8JTNnDZXfN@?PZ*`_$~t6oc3u@ zSc>N=R>C>xrV~HDf~`Tfl#+N)X;zs6#x`6nmiIU{VvIvp%A`AV9lUYKT-q}>pe)2~ zFX437UxD^hfNyrt-91M<@t(fDgCVho=4|d6+Y3CEn)S_hCTqs&9}rFnOTB%Cf-rdjf{z>i}!PE{=0x`nRlE zf&H6-*~$Q%QIB3_OLVl?my(}xV$Z(>5P)Vce;jAyi`c4C@By!@E4}6x#q?O*LZhp+ zZ;g8IcrGWZRH*t^z!{ZZ-7!%^u@3t3Z*oJrWQuwedv#XcjD}MlJgfxVy1X>b1CWC0 zN0z)>I#q9s8Cav=JVAUX5wijH|4l9$|1hsHb?yLQDHDzE;+EUpzsj-dip}!sR()LNO-G=itI#<4T%#Ig zOH}zII?-jnj2peeTU+Tq_?9&v-feWu}*y(C|{?PaWhdm>0|J#Op3DShbQ;WUM_?czi!rP-wN~R9`(T1D2%39N$;m80-;Up~k-9P;`v}gj;1_!iP6|hTX zIolQBV;0&xbb3-xA2$y)SBvb#thHIXxu*jvBP$f7&6mT7z~ADQv5Swe4q#8Ri%RRf zj+IdmsiO4q63{Wg#Y;hL_ynI!28oGyT{QTq%N{!^|sd=x=c^Ue;!^ki`D(W^m zQi=08^+7dz+q6#$k@m>8r^}M6g}M8+8y+;BmhWQ9gTvepdsvd?@rK}F%XpNwpA6;^ zYej4vy1zniuUfe4*-)IIV+E*Eu1Ym5%W{`xLWGscpCL>&h7)ZWX>-z9QCW4lR*KF> z6{*r6VGLWw5rDuDHU&Fj?JngoX8M;_-j5QOaiO(o z3iq^(10PYI{6AdOAN0gNBp8{SoJl(m5#7##BFPk1Tvf zk+S~ud8F*vM{1t2eLq>EAZFhd5H-xLK_sP7@9v4K9&JS0E>!VzNT6xkbhKbG3nhF; z)YZI6+kq&TapNEGKcr7JrO>>qZDo*Lu4?&va;6^hFB+hXgb-?69mgXjW}jI+?FcRS zM;5|i^aQw<*3NGyImpt~E5;P?Bq#7Gy(f>)PHHxuMn+J|PjJVdy7Qq|%1j8Rn5V9K zbVk&e_sJ67vzY0dcr+Qlq9I$IPP>COYc~kTOU_K{;cKZ>MF;F*n^p6G1CEBQq@Fd+ zji9Mf7Ib}z?_X_gUA&Mlwx|qx(10b@<6bvoq1Ae7Nh!f9vF5qIT^HzPBH?_$iA!@`o6>t-sWmN)bzzoxRP{Bcj1;Sk#}5bEU%yEoeJ z!@2#~gSeP$BISLuB&lei7-#(nsgmzQSNoYfjoxE%1V@JEROp7px|Y+!u9nLbQYyq` zYkn#vFH~#&@kejW;N-2F?=M2V#Tvg*`en{COp$8C%bX;YC#ehEtkJVU65I?l9K&<{!=RF;%M z54n5cszW%}iJ%faU!YXyn}GxYDKh6d$*xp#KW!0)?J%kyL~&w(>LV$aE+yj{7(@X? zMNH|Pqe2g<-QJY47YO4{@8tU@Rie#0ff-n~1|}bXi}Q3L4fmf0&%Nr6Ilo6`U?r9% zmGtY8_xI*OsqY$e{?)Iu>U0gBTx-}j6S`aPDoPtY(S9nZk)aBkNzrV}zx+#_+V0rl>{m?`0Ih?2P9X_*UJA>=Og-xErRk^~|J0ZNvAw7r1og1h)K2W@ z#No6*9ib0T?}|=8{e^gOwH#vACC8SWRHfReY@6U#Zn&^$9V0C(U$z}xtPpij+3of@ z<4U;gkw(hal#|;~&KdQssV;p0VU*Hupk( z=OdQHKFJeM<6Vz=T5;2KL{4&BDGLqZtbvo8U(rRarawR=YIy|<2}&=`Sez_>Ditdd zjw49hlLztZcf|@UmFjIb3R3-o?XpyqA7Hv0EKUT`u%Bij_W5`Bin5@u3nDgupu6FC zmt%FKGw$RXfxT7TnM%)r@80^tg2w7~%;|qOZT7jBef&IJV$T#yIv6HU`8#o`2kNBO ztfo(ADrwqoprG)yuCxk4MaSQ4mkBLk3dA5z34ebsVLD`BHIBKt_EoMtE``9ok6NhR z)A`BD879A9KEC!SXJt}_LY4vlf>qYDjZ0ACtLx;ntK}e82Fwu-3lD(NFglFB4TE4A z6+=rGk-91@Z9j9YNe4L-ESqIC+S{E}wO8@ChFix zJMX`>MCmtALVD8a(%Ucpxn&9X${w^2ckDc+?R{e#bI3<;9bIX9#-2$ouW4i8P}-I7 z-hFDVMfTU$)_-Cx=|snNCo0)(lSU=651s+&)X4G~@tGdHb=#V4en%L`W@`T+p0 zI9Dq3>TA@olYY`0p6%UnC{w%c{?>xbRYiG@t{uh&{~)qsC_{Gh4CP7zih1l7@D=G* zF1s*sJ*2*;LkbdYfz^ZVNECbQb!@esT=fH8RUJxG>NfZufQvLuU#H=Bf}`H8K~K2Id5V+C z;5QQ5Ql-xW6aa16Pq&SdYqNL4gp0ZSw3Y;esD>K{F(eAKk1dy973lydM3rB>*&Rj? z`m{4V(;wz?B~(muOBtSI@^CJJZ;V5V)p0OK2^sy4(aBH!K-fQv!gBDV0Lgr! z2ZbccFL;~N^7L^RY4tr9YVMo*y}@U?0t<&QTP7LYc>3NW_fyAym zC}##~8s;|5>?1mMEM{^-GXp4tCLdROk(Xtbj$nR7jLXR)l3` zX2EHa$*+RL0me~}Ul6)m!t+F{08a1D?3SKpe0{Wk$KAgAUjv+FUMy7nyZx(ieoqUL z#BwIeHg67W*s9+b>-M3cZ&mRJU5GT_ZJhJ}01vS`v+RL-JVxoOqn;s6n}_%u-5tgV zPJ3`uTK1tfnck3 z+q)xAv%OW~mWoLKIHoOQmjblws1`JjJAYj28LXCGRZ<3k>=+Ig=;cqJwyQ{91a89$Of*IQF1YWPg6lTgvm2Px z^4}9R19_T zhV=uu{$CSy0j zbydu&;Ry95+zcHmcXt9lkVMoJyq;}Jyx3w9@_T#3HOBcC2Vosed0YOtjQ#`%{tW=N z+APB{RAxg(|DGkH(#Jfjmn*e;$6!@*0NBV&wTW6B6@(Ddx!1e|5zL^&J3F&0QHc0Ky5C26q{S%7& zpyc1OzT6T_$j2JD2=bT=_9h2!=dA3M5L;k&G5nK#dpn_dVcqIv16(PTU2G}Ih+}N} zrpKFsF{V~(qDgD+zq>;y_*4@+OTPK?G*4Z_jM3Lq!ip#jMhgp+tQh$80;N+#KrvC^ zB;x!DB4fRxy)5Auq1CX+SaEv0ML&0uc3*>t{u@F`_yr%=uY^?9A-(~OOYYshpx&k9 z7>)XM+q}jNrOd{mmmyI0$;{LK>jdX7`Q%;Uf)`Cht6yXxq(sh#_bYJYdQ^Gn6Ji*A zE{lNLA<(0kmvF8>!@{X)Xw$Z+mC%e}VpDG%6Jw?Q0I_8T8Cg~BzF4a4t) zgl$X_$2NciIP|2paxC34-kY<;nM+GH?6}OOfWwW2>j2^c_X&<~ zrwpG6^N>EByKPvfQ8AF)fq#;{(a%}ABpfg;N~q58#zA$oebj`Y_gC zy0q=aY6N+%aU$Y_;A^z4=Q03sq}s+XLBA3x;3u5~nLS}UP?HX>v80-2Defe`tw&0D z60K1Gkfqhl$LXXcC5D;ru}y%_n&}__m2iG5-y)&}OCr?Fzt6Y^0R1rwB}Ee)vZu%F zEyxQJBT*<4)|GMxAKk+4J20ZzeG=c=Mh@0(#A$(_nLtD4ER~;S5CLtcOEM|F)X~$h zwPL{EAmE5-HJ>Lnqbe2|VgCb$-B^jQB1_`~_I!DGMFOgFy8Hfv$BJK#6 zSjWQUi_?}A#Nj0B@>znO-b^8U77jsvj@qX3T*9i39)`{mA`MEsM+8_VRo|-Ci5XQY zK3YQFkDjAQHI`aZl~eMG#lqX@m^@;pOP-&m0{CV@J zj7zzaxy^L4KRbfRS$a>^9H|GEo;Zv4!sj(6pbw_9OjKS&#l|r!yXhmvM}CedAp+VU zkyTygUBx#^91iuHQbA!yLBU_Vjd1mu+FJ;*hsRRBb}hxSE6==82)B5}7agK0M*!!r;Wnm_fg?)_fY0G{N3A&3*{1qkl-ybd4CJxKZ z>xBM~5+iY~(&q(n$9>Fx$jCI^jtkHJ2@S&f%l-dHz-Q%z-kuV$$Um1zxHSic3rAPo zrauJ;PwxjgTdr{q!FfENjAg+GrlpXdGN)%}#j%oz@*5MAkN*Sc-O4c;UTwa64s=qLB?jCI zJjfkW5kLFmcMXw=3UQO#0|R%1M$4k^S7Y|&(Ftk`X3%_-7Klf^_7wQ zCOa*ikE$YkR?@3X9vWbwS-p@tV~ymH|5fr);}-Embw*-$|eMhd#L@O-70z3P!GFjmvT; zJ^dfRCpXx>G8y}%jQqLX)yF$PTiqu?!PdJfph>5z@`uQS<4vo&j>g~ppsPyt<{ORE z)CXDJUih(*KOW}#8dIJz&Oe-&^_#NxYD|umj;F;OePcH7I>{-MZoR7Tsv6-BY+UEU z6yH2XogUGf>4y#b^GFZ<vg?&z_`8=%axo_Ihf;6UtEM%t zr*<6vW(g{(kD&3JZajhQGvn)eO)ls?AJ*1f$^ewmPY(|tjt_fG)MBPh0$Y6iq`I~7 zA48(k%!2aGi#kdkn74%|K zpI`=udUpZB0)5J)glWtv2Ojg^RgFj}p}>S=FhrotzhH%Eqo|bgb0PEK1ouav*3wI@ zIZNu`3amB#t3RT~emWSchUZTf8SR5>E-LiiwYwrs#ihhZK%rfIGvz-su^P|L<_cL#6Q)v7;UGFJ7sg z$*p%r3s4l8~leo=K0&99_{AnAngko+8138ZyJU*ZKZE8!R(Bwu1TDw}%L@1iAsJE2Gjh zprZ3+Owvvo?phF2sC6}9Vk?E+K#nxUh=sbDBORsLt1`t`>9+6F`kKr0e5t^}P{vTcE(!ES->7XdJIl7tGJ@~~ zwT5GZotJUEB@OxuQ`wpvkOy-GB!J3~**XZE0%KH?uF*qD&PtjD3i_yRS5Db~Ye8X- zzyCbTtu1YrmQpvPxX8EZ$JBMdgW>Rol_n*HMviRFVLG&QCO?UGl=iz=uUUJ?C5R%F zC`8CX8D!O;rqS&uwmI0~ffITI>jeoVuzw&~fuGV32z*yf5Wcd39N-bI#^}(fx$Wg` zQ*U9{^`)NxN6qT63I60~xh#X$!>Mi3&!zl-7DQ!mCD*S6gy-Berk6jiu4-DNX~4Ex zm)Qmg45q49U+GR-{3}?+Zj|iJdobL7P!LpQ)iZl#G*U)j_kLX)WBIjCc<26Jj&4=wZ z-bnybGUHiv7Gv8c0^K>T#ws3t4^bI6+Z*_%P&wafcU;16<*KnYr`7d${SF!LOI~Tx zaw9_|a{69Z`bahuV&vo+jF09ElM&bz^*oLXXuWV_k{RTjR}FYqLH25vBi?H-;ZF|c zZHw6W)(4wFa5jC&X~t=sPptHQv%nOsRtVpqX2awHPwdXXcP&{eS)QoMx<62xz-8Ve zfoq)r63o$uGpeMQJQjN|s_mHGcpT45Wxmqe zyc5#x^W>ZgvYKbOEmOr@cI9c&OLje zn!E*HZ!s2L%f}*q#Tv+vGS0hPz1SQ}PMwg|_xI%pV#hPqXf6~_ZgdQ=kdznO*aY5u zmd-io0oCJrC~C4q$zf0Q?VB4WY$L=z>I)pDAm(|AiiTy`PEtqHWDVKa+ld|8^9J> zQq5>(H0slEa=h>Hv~;Yt>_h37_agG0C{Li{JwZ=ltD7lP;hb7T7rJH37QgrMJoOuMQ7pA zboaO6vC-WfBLoDbJ4c6fqjYyqkPgv}PNiEIAt50p3?1p{5faKX5M&C9bpGDG|H3!V z=bZb#E_|^lj~K=?w0hj_z%hgjYkGb`yS4-WkiQb#r|w#N%ChyBP_yyf!1;%E?{(#pOAC&%li@pbKPbKCsP(WVIoya*RC4}IqRm!anNI-MI6pA z4R~aIP32{C?f{HmOaRujl5>kVXb|#P(^FPlwr3AB=>M&G?r}`>pybO8#Ry0V~i5|}7v7EiQ{Z3o; zLbTkkU>9>>hP0+w6OaGUa4XCLCK>^{+>r+h6Y*zc$45Qj zXWxIGMn1Xtdd%B$P}Ev>v<8Rv8l3`Ey zX11_tQhJkdKZDxT81_T;dZ-l5HMr^O`B5w^T`w9(5Bq|Oa*Qr@d9?wu>WiV0?BBsg zHI$~KsJC3L-xN89H`X}4ef5K(W%0nbw?yw3qNXee%498SFYVjbn_sw-y|1unktB9i zq4Gs=Nx-^^i`0f;ahf9ZrymlD2@>} z(S&?XFI<8G*2)K>2Bu!KGUJ7{Og|noB-3G(X-&{B;q&>F$a~8;bQ5vbE}2=q65=|h z%&gC~7z$-RCN1vS9vuohmQjlUqYd{6+>ZY8l5^0B=vcZf=RaKuT3u-u@= z^WJ;~X!Olo!_`bTF-gH5u=dYv;CQS#b51F|Z*`9Z3#yhym8lDEcn{L)VM!GCZnCh~ zSSI*`h~#_sAi)k>bc{SHAbEL=-x9vm^4H8fGa-VMu~*Rb8AW?RxEoB>{6sj?V&h4o<{WR3GGc;5G7eM@3Wml@CI@-Ei{e|A-N_A z8N%-P-3J{eCGh+EwJ;=^xzIl7Da;r`KWcTwU%XiOb!?R4J)wJ9q5?5t8cjyd7M;nQ z>bScwZ2})4%%1?CL(|*3-@%XUsZTko8$Q_5f%)X@oQ`sJ4KWJW6Lue0YRCD2Oo1-9(-bX=of$9Wmh1$T4`PGhdk;K0c{Jz| zaoNvb7OKDmlZJ0iPO}$|x*XA>L6Ko45I;9jkzO+S7zQSStdsd;GBF4X3S8QLctVQ) zwp{0d){@!zL#hD9Y`#OHO7ZaG5;I3?Fkw^YrhB*o#Xs?Ce-f4td!kQig-d^HQC)G1 zL4+CfVXVo|OnC=nc&0^9`#2&v0=U7FfnRTj*pfF*c0rkA0^($~GWz}Ri7@0)$Ucf? zRCUbq$<>`s!za^qg;`hL?dNGNj5KHg0Mdoe^+Tz`2?)q^7+sPqcZ3Ed@3~!t3=jXK zq-7esh$@~09g-*Ppa74;kvTA{fB$^rAV2>H*m#c9c`YE!w5OcT9R9rcrYx*lL{}Gf z{l?)0>(wn3b`hNhV~#7P-nz;9epQI1bZ%!uyCCNEu@PGx;Z{hmP=Pf99T}4<}mDCOTv~!+PQs|4%yb5 zP(Y)61V~Bk*kCqEAnD98>ryPh0b{G01J^k?IRZF>8S)J!m$OHYC6#JzD|` zviJBVqL$GF8>1**^0n&d6WV%7UrhtrVgm#Q9M z{(@&+Q`^&ARY%0IT?P; zJFZcGakxuiv6%-eX8}MX)7req=l7V5Sj_n>U!lDS**PEIDGowVlt~Yn)t4}*2*$N? zVVU#FoCZbWhUa22rEE1SxoM0(W!0xb+Wxsh9PAJ=K|el z2xr>6&R57&<$0QAq{_Yj0aw|&ym|c5_7lnN?2vuC(wkt!?+=pBE0=xF*^T%AA=5*3 zx7mh#v~vxzS&25Q%K>4Gt1cR?fnX|EdezZdO;^&a&O&Fvz@Del;1u?)HnCNutA&Ic zV5hmVv2pt0a9^c&9yZ3gDmlg5|Dy!HgQ*PLd@}*3F@6N$oYRyYC8q`)D=j~Nat($5 zh^f%rVo?@f?PyCwcMTl*>zNXBVIPPEN@5%)bO@#?4yF zcaTfTe^Pn2Yr$W~NNX1+SILj#^bqP0&}`r*$$mia_qlwWfkuZqQd5JW;SUd=wskDN zz!mCG!rj)Sw~2^)W>7Kw3KLkndy`W#y&iHFWiPB}hZcE3tGSayoAd6p3P#n>@ro&8 zaq&zTJH~eWM0p@R25&b{)NlKoS9ODSel&f}7sWXZo-B`%aHT-wwD;QoNG{P@dtL}^ z1DOvq4@819TZ*O3#QHpr>-!TSC$`U@{ zn&)XC5)3e1eqyRv4()xnOMt0a9LhT{-~@@Y_TUW#x|l$}kI#I9OOLegeVE?^g6;Ip z(?IBfbbrCk2!Y7f6rI5qph;}p^v{Er@57B#OEh~X4wM~&AZd}G{U7@W>DHiqPYijd zv%QtYO_EVH9L~tDt=S5B&O|}rb-cpYQHFQcL@XHL8a)B0lFIgVrKHli&Uepqb?~(c z5vy2_WMRe!>|N|6i%gFA@SAO=&_$b-Kf#i;jvW;>NY?B8|S#KOY_>A_r?G5g0Kn9J*BELN!K%!$bU} zePWj!dS|sK8E(+U{ojGaDQQH9)^LuYskP}H-A6sop49-o^^XRn>@MrIk%AQw*Se?J z8L~~f=lLu3;XTP7CHMiUuOHWMksw4oKs*VzDvbV3ChtwZK9F$4M~KGlM#_nC(h0KA z&bP^c+qRXe8IXb!y<%D5o2rghAdttMwcAfcIHkr zLwAV_eevWB#}Yq3YB&BORiwh)mHpk<&>`47N%-#EK6@Rb91~jw$E?Tda~b#!G!el1 zzc#h>SuT_9waxOG1{>^1&lQ9R*57_%F!at=$z6U>#W}mw5J1SryeM)-7&o2OU;?tt z{GeCoHxD4lk*X@@%t__z6M#EGP^I}cg>uZ<@S~|0w9GHqb?9{`vn!A^-34mpM$%k` zgt?0WXyGHYo>E#NTwYNXsYj3r5us1uBUV5m8Vm}Tmh0^3!m0TH+V-@{PRYPV-lqzW zkZ6;SuryvImiE+5B$nQL$lD@*MJXdAz5i*FEMUfjBeE>EZ6Hg(Pn#GeI?iWfOdUqB zK~jv&k@haD^gM}{e29>MOOMdOWPqF8V8#JCDz0%?lHygZZKlo=tw3)Rd%C~g82@JJ zhsI^4g=|>jx9V=BihWU3BT}U;>3Ob+hFa_a35k*}%`_EA>N=5~Zk-6Sc9Lf~Aq!yCA@6pzmI*AI7-R~v+gKdV)P{5)yOpTv*KPK~3ANb5n5Ht<6jR_yHpz@SDl}ju z(TQ*!eQ~5fsZ2eEvyTK@PGd`Se;Kn7g8INj=5S7`H#k@`c{PM9LL^n#k52|5I1@$+ zj^75L8wN6!vRtzTZ906Bk)NSfify}XIj9&yEk0Cg_~WJ^orMbVq-=l4!IC5Iy*G)f zu_k`|(}k9EL2gqc3=d`EM%7>_d-Zh4Istn`Q`vr(SYZ`vSL=DE$pR(5m*9YX1d@CY zuu-nnteGAz>F=al-R7!0KbaKUv|`U~TtZ<-U}45*VGi=iDW(PZ|A3f-MGulfh|I!c z&A>2|6#etdGQT_5&-|T)3{3esGNIlAtPBr>c1yf4Dt=v7f?Lz3F`tIoSxH{Z7TD?`cK$6Vzv^`Ey`TWjPj&w`EK+GUm z)lfc9A|A$JB6d3-4<>bcR9!u6!U{DV=j-s$`TfWcC%Iu)qDvlg=Nd2h9EC_PODip7 zkgxnEL%gAsBxhgpNKRne`&pJm2+HNHNx(#SvCc)p5ImAu=61|_?OeQ3liZqaw4}#z zAPELDncXr`sc~raDH;FrjF^vV=tK9`7oi4kt#Zl+tGJQhQSuUwF-i7H5znf9xfk4l?zPX7`tQ|>aZzv&cz!Ye1j9(!$_^1QpFErL*T$) z{Q^atlbml&xA+^NT1ul6>k%<;uY;%ST~FuQTBjTo@6kL@X3P z>Jv0G|ED^x$I9X@87Y$Ik#_kucQ>PU7;uS=Y14My_+t*3q}7~mm}kLj~CrO zfqQWhc5!ux&<5;9;$p%x4brTcuKMQJoy#`*9u>FOGJ1DmaC#zr%tGpo{q+lO#{6o9_`nff>U7ISlb!Up|zT zmS@Jbl*17JiPfcZ3)6c4NJN}r`+wJ?YEyr zLF`U;h=-`7;Bd6>Ki1eM_+z+`{{gCNzp}d!hsCsyTB#6_OrSS^u;H#$t2-cbe}o!a zaiG_yGCrO`Kyy=`8Si??p*u`k%|2J zKrHDcD$(Rp5fkxI_>?qzL3wp<_ydN~CW>2zDh;%a?NTp$`j-kkXk*~96{R${olLy^ zK5jK^oh#t8o)}3_8n-`@`!ve0{Ly9QO5^r*(i-J>fBydf3l;Y9CL5}cJEeyj&P$v5 z-@9Iy6=(Z(_;hQKVU|UnReZcP9NC_!)xU}Aa~=Qu?s?#@y%JL~NJ=mZPl>|!<_`j^ zvr2w)`{*~`(&7-$g8Gq&wXUpoHnuL$yk~@ul9K{Z*E;tli*~(QVY_gvOYYoHzD26x z5i;vy|G5Z)xJ=JscAMv`o2Rn3bFNr|Tl%8cS@b(hbnJ@a}$SlSN1SWip>tNI+O z$R-kLHc)Toz*TdPM^t#yVv?eyb7LyVE^S+qoG$FQ%?1-c$!PzER48ktK3Q-U7-^oH z`OBV|tX_L4kamnOHm_X~(ki&Oo~i#2@ISy~-3JiXW3iF6=435YrR`AI-^#M<=du{8 zMou1?rvCvzR*l+btmvBxo=?koE^&+9-yZ8}8)KK1gPokz`CBf=l$NS){6$+#Jb(zT zU59)cuNI){`Cejo%I@p?sJqg(k@WIV;#2mvunX!`b_B0WJ<^Q$X*Hj;=^dHaK;CC4 zaq!Mm0%Z30hsTvp$eoH{p;@f$@8*yVMEz&;UK@7>}M}L z$f!-oIj81P<3RHx<)OV>4Fh30{XPB|wK|RnH7XtQhozI{N1>uk>=XEVDECx5%)$d* zg*Z(#St(>t?$)3UX^>sh!(hZlKW)x+ev*Z+T3T~PSHzslLYS^eSt4-zphLD|p!KeP zPk3AD8=|*z@yb?5^HrHw#_Dwo@mTzucTW&R41Bd1Dr#O!-1 zmlie<+06THdxyV&9iZ;@jPCGQ@@bek`Oh6iI#%HUwD_sW(O~%@V$?Ss-4V%eKM8zn zzjyQ)m!yQ2>sOGw&(Cf*K{Piil{vg?%@(51Z;La^iWqaqAFcQhDn+u`iS~}K{Uu4I z?QR|E_cJySu2twuCe=FKuXrqaW>`xs7>|%>q%>%qX{lxm3$L;-y)YtP!hCjT`hn|l zrN#p6&2+mXzy74)_GqtTS5jrgJP&HP!y09ssi_5tPFg9+$relekp8)=TKWn<3m`~} zwN^Q`gvlHoQRL~YQS4(8e6VxWvl=RTvSYfLhbKVYQ4)INugOzGWJ#NXofQf4_C$m| zpklr1!C}>@vfXe&vBwNH5eGx$%$pxP3pUBAPrfN;^!k;*>BI<-$L#bFmAA99`+ zxJ%LZ8XrcG3;O#!jWc~+QU+L6wyw#|XBE0!9wAfC>5@$5?w`ckXA!33w3^cma^qg9 zV|q+%>mJ<2DrqZ-k1yht;s(TPXIQYnH^rZ*t~07UpDt1VP{S?2L6G{kied>;jFdzQ zGkqj*`fq`5S=Pu;h$!{pNouF60K6iJFm9Dq@5Mc=}DuwV9Ba)cD4d~b*XW~{tz;kpV& zSq~a_o$g>XP}-wb=_4aqH+@d~P_tMqYunZ zjl}UL&@XUXWEx=q?0H`))H#lu|PqwI1b}Lo3C_>wbX5?7z(bip? z;QXwCs=hcHFbt-c1c62h80qr1E~qktw?B~zv=~qWP9)`J$RDzi@W{j~EA1c%G;zth z1&mG9hOVo{UjdKOw=w2q`&_FiN;CNg_O*;!O~p)WNv50=mVjr5>R?Ir^%j;yskXxP z{9 zo)2fuv?M`cozQVFh?{;CKLR4)B2^4joV!foswVg!;Cm9pzd9j|HO@V#H%^bhG(cL+ zznR6|!nh)6u6Tzl0+s&u$sR9(?M@Q`sQg`W4egK8AP6(QajU+;sZ=*0T- z)KiYX5e-d9m2pktxJ)_vPp&2V1=A7kmQ~mMmG3A&e=2du_Ovi3Qr*~9eiK$=DUL(~ zVhy(S1OI8*_tU5GjiE%->5EFzFA@`r>A5#lzdQ5KQ^2}6j*hXCzc{tFzlmLtmF=M{ zr$5Bm^6EI?DWg&!IOgaW@5kjqAmA0DoSHT>e0>x!!8?g>`TC;lG^dk^zN4aM+q~(NfP~jmi zXqqU}hXo^0+CSVm9Bj;`n{>(To}yU3?|cQnubrWT5)Y)O__xp%k;FfZbRZ- zfR}}T0e#krONFqn&%E4IfPsZRPXy|0wccj*Rns`bS%St!AzAeQPr6 zVem*6d)bbQ*ZZCLcaG<&`D>*K*!pnoRIBwa21C*r5iS)FtO8H!se&c{(Wsxu6R+Nf zrccnm%*#x|{8>kCakzE5Sb*WL& z*^fn_|1Gu>|LOl)eU{O=XSB3&I?I@jiwQu;gIvu>mVV9ltf+17yAOOcMSydC;5aC; z@7Idb_0a-2_WE6T{gJth9G@L^&z+^A;A02>lw4BItG?^fo!q`7eJjGHqochNZ97H@ ze3HbcEc+?pN`gR!Efw5cgsOBK|ZXbwa68NA-_VwUwfDrU7*r@aO^)uF8Gi`%4nW_1ePM;I*#=7eB zq)H#<&1YcBzzE{nH9k+wD6SeWAM|9pm4clSZr&sstu_n`eU9N%?`zxNj3Jb05W|Mw zarLP^qDy3GzN@C3I`GSVv1~*wL_G5zIYj1pi=g^p)Yw;&Dp9{7hWm)Y!2Lf;3d1*UtkY*A8;X?!tRb0Phm!VRrC+e?gawIg`Opri*fxQ<*b{3}A9xR*aWu5yjdF#b9OshbM zCFVy6`p+%R-N@J}QQ|X|a-ux)`;bnCk-wJTuZPQm|NCnuZBykka1Xj-{2$;1ehSEy zQl&Zg$6=yjcC20#nY{O0=`LnBEJz^VTUl&rfxANAvPy>t>+=NnFCp0xHe#@Oh^Y?f zS81Z;^TX5_YqhEx5nG|N^i}-w$@1AfXBQ7F7@HJn-FXa-nY#BMn@a~nQt{3xy(5dr zDaFjz2Uf-P*%gfI@71floq{`+&IpLTmM+yRjPjr=%Z4n9r!rRaPk^NG#r{Vo0LES+ z3qCWOmuuYey_LqhLVis+f59F2{;!|An9cAX3|sEB!Gud!ay*_(V$o%Ikiza~7imhu zKq5o~#Sp~(GuoD~x`_I}I@;vvLu(gc?(rrsn7&Y@NDJapltU#sxRF^}wt2A$OpZ(!^ zK}lg!uc`aJM>(>DE1CCw`Rocr|e;4Z}o zmN=A!K5DSoa?m*jUQmkiZoVvH7pUe#AYaZ$!`2}n;<}=6!rIQSB7DP3Y$eZ|9@$=a zpda9M-B9fIovRBv*s_K!S}7mg<$@jb^MYz~91 z7^t*Y=_D9=om8Y#p1hKNI)ioU?i8@vLP2ciz9~$;p!6igNX8@)#(~iVk|cCd-z7Qa z_fSEPZTe(?vR-!+k~O@|=JS`kutN*?&Iin8Cz9 zdKd`?B3L;3k{#5XLwUbvgIl*s^z=pZSaIHeqzpl@QGK;Z0YmTpAV~?SXWpF2!gU0j z+R3OD|2kR&tfr(v%FOL})60@T82PR{+VWFd7hCQsy(yJ7BKvJ#xTlBe1o>lcs~|@N z!~npQSzS(z&DWpgK7m;M$Z+MFbJ!K8~6Da&$Hc{U9OY=&z? z1)C|F^kK8wqN_rwknJIaTE*`O8rrTZQ zKE>`^KJ>aumSbEk=46=6j_)hZKobHmwQXP~j(Bofy24bEEG<|%^>1xtCq)``mQed; zjTkAvw75Y4rxs~8r^u?5!b?YpDuiFqvYkJV<$%2t*t=4P5?0vDwna)!S)n=>N%W&x zK$+|1#w%a0YH?kH)yEGtU;a0y#YXj@e9E8xDTp3sU`a{n&0If~-9{yY8D6mDeOLqN zY!>Px=_@N-UI0gM7(zyw!F-)dcWwfiup{EFo;*fDae}SLXrZQ57gdx{;8Q*-sPCaS z`PwTBd4G%TS=Vp#A$%(ST@=Hv$`!2=FeodvVu9WknwnID);CzC1yS=bi*;JvgiMkN-OrbddDs(4{%(5kTo&z!7 z&BSvI=3bj&7RWj+uaix8ZMkJf-v^|QoVpA0W3ky}=5dCJm)MX>!csDiXhyGvgldi8 zYIeeot2a*k^~lr*s2PqBXB;jDHPmOw? zb?^t(HBYr;Uf(b9zO7Yn^9fFEt2}+=yA`eOBdPTVvT&Kjv~;end&XGp9dH7-CiE9S zo~k23n72JU1H(!Deom^}0j)>66)fz%Cm77N9~-p2rAtMfna3J&2QcL5^~jNLaqApl z1Wslm9`L6+(w`Ga7Eyf+bWPR+%J`szszFX)Qer>;vPYC2{+Swtncb9RAv9H9nZp}9 za$^;x#^18jJ1F;~gSwHGymIcZUrT$w>U{BY@fbuT?`hLLyG^y%CERW5DQnhU#^Xza zSog2DGXRIV4}IG4)3<_8mZEST>Rzeqlt>)W(>$eVtK(~kJ>l*q^ENRd8z@+`kD4P- zD24QxB3K|_N@=tOjI|dbA;!}vUMyz08abGHK%X2R8eIGN1i5q%nw$uPFw&;&HNKMlkKJZz&}`F z*ruL-^L}$SKHk{!6UP$O!2jE7vO)6e;EOm@6Y!|E2Qliju*xE)G?U;MRa6@jdAg%p zh<~%Dq?hPPDUPMg+fcLa_3u(VD<^z0wt!}Yx|vi-f#Dk*U^<2&)dcQJRI+%jH@@5@ zPF=Kox>1tiQKMA+rWe00@fIqN+;5WI>Q8lb)D3!MM`f+P2fee4mwY=GXBtvBD0f(b zX}3RSG+7gG;wc3$Q5&{G$&+TvO|#UjU0m5tMCfRNQp$_TNY=a{=@$&6=mFm%f;S52 z>HagWl1bJP`0T8H_lb%eF+PtR{$g*{e9rehvXm|MSed%Zx8W$8vaw+S(irQRU3;A+ zA4G2Ro-(!K>{S-?zCp?m`wruI9 zDM=T6UHhKm20fou>jZN^50|&SWl)*%%+~XH7&-$jPPtZ&aqBQtoeE%Ra&I0i+MEa= zq!2=2w(LR$2Q&dZ*htZMI%@!5#GQHV^crozbx!j%1WW*IGn7}%Q%1i`Gm7!i7n394 z>vS4lng8QUOOCq{|AWr&pfupq`*~;?rOQzQ^T@;0b@+#QbLn&VMJW9vK{pgQ1q({* zW&{Hfta9e1&OUG3>ly}(^n%0vALKde45#?UJX+%i?YSHfEkgOFfBt&g*d4KF*c0fX zz^*i$MZrh3ID=no#LIKsAu%Q51Pu4^ zH^;bp>Q&)<+LP~uTj39E)mItcW<<%+2Ii7sT}^gaC_IAChxTZ*3KCRabb`pA9)bvl z4nJ07Z<5SoMGSv65f7i|IlH<02JII=?C0}R|4$1|>=E6Xm$ygfC7)bbn?VANV)gzT zfCUm?P<>X_Q`l6o2F}c(Ig%J_|G)qpPsJ#rQRJw-7buF+(cL(tX0yet1cLHW>*b!b zClJtC+-hOgL0eByl7z1)(^5fPAA6pN)K>)=03SOLGN2J6+lQP`VA4WEkxc`49E$tw zJ=yP1if{R<&D%bi4>oi`16_FrLt6gEE#Z1RehapCQ`Kx-#0U3R&fu?wfB9W=2m zn+D1w0~vCOFCv>#dV_lqlW8>{)V@OjTGGy=IsFyL@oz1~tiWJe(Y9eXe!_gSb>Ot= z_dTURe9T%47>SWoq{|JWEl5V9wVti*UFTZ*# zHi%ueKF~r$&ZBK;f}HF1t4%Fk&u|*L4?vpUId3Dqjl5&(&C5PIH0qm(Uh$3Y@~6Og zMcAvgs0gHt%+o{|oh!>YD;dZ9xyFPY*3Z|0Gy;;IS9ajTo{KrgH<8U96MS(toxl- zh59W(^@5T1+pinb5QI97BN8fXu7SXj#QF;<37{`cQ1=CM*Mmw^GE_m>DJ)4i&b}^1 z@ha;~T2l^-pO0*B_jp=dGg6&jR=)GgH#Hm@Q*W}H`xYwS*UFjgo`~2)9=#7kxwRVv zq&~li`vhIq-8>m?cjaL%z^qi8jI*Dqcc^k?omsnIR+?50lPU20I-JwL$aHXiv%=|U zb|&P9k8y4*U##7E-oGz+sc>Gv;+%IDC*8?Io7h64pxyst1R;j0W&{bIpsiXV0$Zf0 z)#h&v+0I1Q*1MX&$1?$P6@D;+c>-i zI`#&?58D&QAjdTIDRozY%t7m(ZidMjEB>^|Qi0^X2ohJVa-Pe=zXUI=UV^n~?6k~6 z3CSgQZidE~oZ+lEI~>S;c&V_6y4onhI6Qee4dN3s1HD zSw=FX^)a5t%CW%7@qoKMb+8VO6|Y-!>z3e=-nWZ>E35CW?OfT|ykS2RrTWLFxxK7K znhM7R2g11ul%PG@5{dQ9O(PLZBn3>4oX$jW^gzn_1u^q^fryA{;CA$hfZp%a&8PS` zv|*BEX0!T_5Wt(GStj8LNXp?3qhZfT<)r1?t|YDVa)y?dQJ7qflmo~4-M(-U1K!L( zDR$_Mv>&re$Uz8p<*8Mf;X=h0)Xa*Pp8aUY4!rpvz@q64v>o3N<`o|k@Dkt@H!iLs zvo9MTW^u&V7+lqM-BV!2x-$G~Ub@PB*k|jWIfw-Q*CkB|vtrA3q5-*;B1fQ3?z3;X z516WDJZB@~XjUTgfi&tuO88&w*azoNvW%zh2fm${;TJ)I61si(MOzZ6vRbf?N=mzg zP=FrwH4`O6Z^i&%UA;_tyJ3SY)D^A#5qU}?otaYo5X0fS=jG<)xWB5xJawb95Wj+& zlv!QA^U;!?7iygiCx{g=0$T}t94$+7NzLdxHHYMT_BdMDC`poGssVDsWYtR2>~7{h zf{JIP9~?hXWV+7DtfoX(?gzxY1BZWl&I6A*l&YNwZGMw^UOud$aO=Q?clRz^m1CnT zNB-I_FM8_|=All{?wqR-w-FZlECuQ<+Vg@VjqmFCVx#!8N^k8j*LJ64srRn_L#9!( z);9T4R)78nXi99H&5hDk`CP;o>=fR`iM}KwCw&9RVe zMgI?Ab{-oY2i%QNz$nqacN}|m7D1)t$k60%vNBj9{wnI5wgZ6kKKF%1M2)O{rfJXv zl^3UX8f<*G#w&Gsr|f8nBFU8O>WRQmHN#Z`q{sd5tNwX2w!d@w zTvvoDb6I7QaZ7l3*^sM|hWmQIWOdbYT)%PI*reqT=Zw&J8}D*c2`??iieIuOp`Q|d-Kn+2DEokbjT)8bW zVLfsL07sMUT%o+Jg$73NAJ)JTnVbavwkD=xT_|%>zDHPw}giROz=(y-V zw$52Tt^ib*_@9z5i0;Kvn^?JU+=N>bN{lTs&f0u$BM+Uu)!^6xtcO1s7GNbakusrc zg~*Yg3FATm*f3mzyG~;Bw=h9u9=P&kpzbTV35rx-lG}?U@?oX>;keQZQ3Bxox9Vqo zE#qz*fP;MTAid5Ao)BWe8cK;i2F7u@SC?VtLV2kyIv7 zQSM9W(zvg?Mn&d^N(HW9heF2kwtiG%E0WH>fW0gSb`E1|z_P#gBy=ou&k28_9ECD& zYV(1}tK>t6zR(vkfF7j;OE=Lc6AVH2ZPcdU={-r19osz{B7O6TcSp1JzUa1B2T z@2@=oIDNQXFROUIGDkSmqdFZP8< zYy$WpUbXR5ce7+0MgPm!wuGunCZk0|)mj57#>Gu#N zUl$%vrM9z+m;fC1gzMTh$}bTtUX~$ ze;)+(m01}VZJ7(yDOP~Yo>l&b+IwuJ2leaW-u?9)QqGI*cbf99PZV>ZVTx>Q* zb;V-@+mN|HQDQq|7a9JFcLv$QnSb4J_x>`VLm)twr(8E)dd5BI#g=Ir$d|=r55FUI z2pIqB zn=eW)7U8b>%~7u8OY8WRVyemPUxQcXUlo%atgA%=x%FWKrHO}Y9sGV2gzn~FmxQ+{ zjTBD_t~2nY2!FcIu9cKO7N5j#rYheVy3~@g9cfNx4wNPDLbTgeb#(s+h+6lteV^LE z3Chb8{&)6ti;Gnn+eW2xkt=TSkc|+In1LSn{b9kHIU(pC9$fH$cgm5@dV5B|=gqpa zw8E?BHC801uWHzv+umI(2M{hTv|4&7{0gv9Gw)|-?6O(hH3AXrc$n;2{ zeyfuI<+|S2g_;KWM^!WMM^40cHLg6c<#hYdM3ha>6P!q$xbMW1_YxPmkwpIkgz%q) zDLre_$Nqt1juMhUd7HZ%Df)uoEMe7!Y{qO#^0HE=$YN>iXkmn3{>v+TtD?oouCs*8 z^J`PG3!Rhx5=qAPEwVSewq%jRfAe2=5bI9=&jbJ9^C~)TU@KQfG+Mbd!<8;osolH9 zE}9=bYbdK>DCyh=-$6t=lBjh00Od0t>iiGTc0%0%+Zed?wNW4xd&SX73{xR5`wNau zWaeurNC}wA^$}ngB-AP$u>h8h=ATg-939aZjgqmy>HdWH(wPhzEW+>k;m_5^?ATNB zh<^rx_miqxGS!SqI3*(aN>oJGhU=Bo*_P9MB#{APxV^7vr=JAM@5?niV?tZ%ugUl+ z40q7nv5U1QwGp+^Z<=Y9Nk<(R$&@)61n`$2iUc_9q^I&wrA?h43^kgZFawIlz6Ioo z@PJD8s5hZy!>mp-PQLOzE?U~Q=5)NF$QAp{FXr7;Q@`(uc%*vo>*0JUbF$y2b~e2> zJ9Sb6i>4cC)SgcvYnxsOnM>&!GOzD>!u#xQy6{AU(kBCx*+f!JA@!uez-%9Bg@rSK zALmx;321O7#zc))3&BLv;G~A^2RP|qR>ILx1CLGYVl1XXwNl?o{clXd`_p#;hj@OX zB^k>?#r42GhWFc7i=2|r-Q;qqV#P(00LMpU^4vc5Hlmo9%?ouU^~&W?Wy>?tO%t-w zS{h6Pva&6MrXESjz1sqqUs6{@@AZ(!FJ`|A;`R~mDJ0OP^-Lcw6E7pilfo;@4+2e0 zz7DIJu^8i|eE^RenidJKGDsS6JvPwM4qa0c4J#WMPrdc3ctrAv3auYqUuuHqC4zQ0 zZHR_ey{u>wbzq|FQ%g8J#x8)^s@&0s;jX=>Q5a0T9@Akv!_q3q5<$Ub8e~FS&3*e= zyxMor-?CD_WaYkEymA5kV@Y_X+}a(G=sQyIfb)9b_l$N)_iRHG_ygDUaOFuH1EvkX zQ`-d>2#gagE&R8_P-h^#5(7teTT*i4|ytb3I86u2_v| zbn4+uMgj#ZQ!9**_dpFTBj?`Yy(Q~`KB$Am`9THEaO27@V)Z5H*W^!RAgtHIb;F?a zOanEf5b(%63%|TIDt!`=2St|erZ#nN#*hCCBjqStmlUw>iI-Er4`rUfh9!@!h(*F6 z;aF_=z@d9J#cS(_X1*vrcPbmB+R}>%(A$rz7IpDjUwYA0{`tue78q2%YWjKdEQs?% zSdofi1-o-0F7d+2;MYTAg*{>ty~=z=w(`<-?vuj`?l+DhfIKYp*8#hjz$T~i6UORt zZN#AMkH`uIz=~(QY3;p*NI!>FfV-W^yLQxmHR=Pp_MNBEmyQlMq0_&f!|nDtjm;8y ze0BGg-!gxn?mRZm@SAJKAXCw)G3jph8NXxH>+Fn<8U-7d-2VB@U6L~jo?w{(8DrB{@>?`mg*SDl#zx^-(}Q$y7G5q)a?BD-;{V=!^0Oy^?)hp0+&f6tMjE!slivJ)1`?K_?`$!}mEiBuKuh&~qtzHGHg zMxj@tcOAIFYZe*6M=u#au@(VNz9tQJ-n*GII=u4TACY0M%kzYRSP5pF_GkkaM)xR) zG+W7%IIogS^7Jm^MvZv_ZVbv!QAp1MG^Kfq1FJe%A=~s@v*q8A%!E#1r(9JCAjlDE zz$^hmp<0<=MUFHYxEi5snIusAr&*rfja@s7Y z{CuJ?v3h4-vxXtskf}G@9UT|<5WY1)}k}@MU0s6qZ5zZM0*=X9cSyiMxCv|K}2Xn|((psnE1t}H| zh>D0cB_M=4X#uw^l%$fBTHOV=C302>Ln3^bZjcd!UdvSs08J7^3xXi%TcZ8VRL}5H zCV7HCQ|cT#t;kisv6lCb5mDtc)Pn&Ow>#uH#88=Cf{(10{8VVkV z16J26T_fs_t*mm$eD| zSY~C@2I4TLvd#p`J>@E7k_yid`%jXaK7L}w6^`KWwzpwVYeDXQTInRCF*L{6`1}1$A=+gBZt;|7fLL3)W z+hK9WCl`IW0;Eg?7>8=@oo@02L6T;F8wTB|mxNO3xKU}lL3PN1YWeD~OgV2WfiH{k zClxpwdXG3LpbjlwVbPL;CYyLaAqc@KM!{+N4~1X`7P!Rlo%Hs`{=t)1xHl>{sxUu5 zK(S0)&K@XoZFJl%?AGG1LK@{uNKqSaJ_t-r48O98U=E zSMNKn#0x%qWj#m!Smej?8c3%klTPJsbR{x|TVkfAG-F!gbHH*}3WJf?@e|FuiZrT`Fv<9qOkq9{ul z5Ul_lS)Hij#1)UO?TPw=OKOt6B(Y>~tw7};jO2sf6Cq`oSN4(#D zVpdaK*L6X`Ud*9Umk|GxHPX%D0!gnlLB%bKF;~TdBZ)iI4u6jU4m+}MNx$u-)3!pA zHRececlf#2dJWEkj*`p?5HlnokxDSld@`@zC4^NiG0nFU!4h{L!V%#f)H%+veM?9P zkVKMOUm1>AK32O{{742U_m}@7IZ$9K!BPW}ML~@7=C$g}xJa;l72#C}5vLfs&n(9R zMt{eKDwpq-HT_YQ$GG4&p`UUYCQ75@oy!n6us z5bQU<-F2|#aee|Ue01{1jZ7kqzexPOO^oW7Mgyn9trLNNfOpd7U5O6AV82BRw1TxT zs^XR8Tc*wlINbv%1IuyY-%U8t*}KY3EGM`Y0Y_dM-thl#`plM)W_s97@k=D3@gC3u z$FLEvxtV>yCKTNf&UkaDi<1U^aC*ipj_ZHeP$(fOqY!~q*Z2ZcV5iN;)NBpk3z z8; zoc6oaUK{Ax^XLUvsaG^yYB*_%zUznW!~T0UB$xWuXFEJ1tmlnqw}$3XgPlabM&t1< zUaI{@KXb;6Me10{eJTa>6(g*HIo-E119Ns0JZrA*orrm+lKJiJ`gbYPH&wvhk#;pp zGyi3lhI#n6NESzHyX8jVg*ug2OEFzc8%)l`AWL411Mjnf(qS2{PXMkCqx`24~ZzOjklH2UYObZgwdc+Eyx8(PGtTZ6R5 z(_p<9Y_y9k4V}J`yLsJ;9DE#sXN{ed`MSHlAqgeLs|H3Utt!MZVEG3BBTy_ z1wL-mEuS$`EX|*LrCAm9c+qiy#kl05X&O=1^mq>yU}=eYPLran;g~iqd+$5U#r%LN zPCl`(VulFs6J{9gcI1q|GF$ohq>~_>t9xZhXkoa12z@j^9c%gzkd1miYlVUSS z$<>1?Qi%mm!yE35{wZKWqExC&>0~Jj@~y%?4UZ(qDb>_4vc03d?j=|{9mHq|K7)#G zbKf#QYc+4Yq&W40Yv$=`Z&{)CZ`y|5F8z3rl&E1<2=#ya)iok&$|&DkFlwWK&-gyi zYOaT3qJ*na{yQYRscpxT*aFCZojq7y$v66B%~)GfL2~WK!{KA{m!PUU13$s?JOXlh z%e)VQ&0R~8?k(a#`IoY5B;ge+9`{|(VXT&2ku3IU&_u&h0x|`3r%i}i?pag5O`r9Q zOon0|H&OQ>rA1-BqV+6zWH`)y^uHpd^YsBpO4dM=W~YgbpSodYEWXPsZ)IfW2X8Av z(bY6usql<@52od1739N@8S{$nzkRO{ppxw=h{|r#rEPRZU#0KS2nUo>veEPz7I53= zw(=YTa%6OoR-11#VB6Y>NSi+%Af(h?2<)6?%LtdroRvb}Ns-P73C(bS4J$USoO|O< ztNiM=m8ba{a+wL^POe}PM3Or^(WCP67DZLqgtj~*_4q5NjQc!{%(Pwue+y$FZg;aO zEOW>G-&mONlagZswhSFv%>OtQrMG_|bxSG)w#1x>6?-9)U4N!r!!2x)gw%sZ%k^h-^fBpjKUbrxWD>C}Ora}Yai^iUnr!-Y zwkK=X4sGREOUxiWV7j}>Rc6@J$HFHg=O(TiSgbzX?QbftvT6)e|58<#sj^(QB-Wpwq! zD%1q<&!{PJ(~|wfIK)!N7>LN}fm6S=*O8|!)~fYD!h+)^uPh_MT+0c-Ju(?V ztdSY9u@})zrcJpsCSSgSa5~Xa;`As%d$I{)X~q^;KWG4$Zrne-2hjN`C0uN_$hmxWD+H2Or8$AH^@s=+O<(nLgq#&C>bgD7S`F0+}Mbs*MK0ek%bHUK`eFEWSO9;+wT5F+&052CK~-DR*#e zpO&xpoX2(wVG>c0yxcPwRL4vskU(fB1!aG*hwx9ad zc_6V8o;&gunfqda8lUsg;tL)uKEBM9e*^=?zNw>=SwfQZeU_M!0S@ZpD&viMU8fzC zeM&A3jk{b44{_wSmMJ{8{vKzAkok~%xV|Hs^8n#T-i+>?$&b5M*L81ZRU^%*{4O)d zxOQN9ZC@H=KR2}S?v$iP<|wFgshb8j9D%nuf1cK+WHA3kslXWlzl5qZq#v*zs--D} zPX{W})9%mN=qW8RLGa?5?`KCxXHQX%M(h6H3Z&twUvM3A{ZcDx!^(oNXhwI2TBcqP zxfMfe^2#5_G{mgCar97JsfH$-U70QzS_Fc2A>v0g1<4Q&BqA&f>~6Z zuV10$bM(xIx(+-U8t@c=r;=QFP}`B%gC7XY*Ve)BN8xwq$<{enq&t^g1oa~P1Jz7I zJkOdXc$%^~qIRlNS`S8ErMKy7r^)=8ia? zM-B46@`--O8T0jkc|ODDxChjw;|G^Uq?;>|^7YmGZL>p~-t3(c{#!^w-7Fbi?4kdU zzy3UGp-^I8eZii?(iYCM)vAXBPpCmN43L2@k1B|=r zS{qJF133P8Dkx-rERTIS_|DI|cXc}qXRa7fzSVTcOW!@Zkd&Px>dk!2*Hs9~n*W2U zLabHz0j_6O@7vKs?d#g|$B`2&>~K@PwN_^?xA+0gN`Ry1sSqE8c}gI&l#o#FB*iZJYg$H2HY4}BT6tjSGHC3!J5#%rYDCnJ-0c=i?CaIFdCbEmNr>7BTvy#|wI*r%5 z0$q)fq`_`U@(!#XO@VM|qwT3-Kgn`dkZ@#fK^1s?R1=;Xr6v zC;dC8V>K-OM-5MF@l+n)DnvBtT~24}0~%3Y5e)-oD<)T_AL9Zw9-7;lgM9W00XVu1 zQa{AFYJk!1bPfa5_9Qu8c)Bg$-wTB-^kc4Tdj&bXci2blUHSXG`7oC@PguCm>0QIn zh>y8VMXh}Tdg*hxFrZTYqCBT+n%tWvX7n*h`ro%M_BD0YT5ESvRUA+#4H(aMdT7XD zK5tL8{egw?pwh7+-EdoI|1Lco4gd0I4?f8^cb)- zf7Ig|i_)pT_ug|xL&K|p`YtW%m`+NXIkFz*nBrPFgAAdrl185l;dSSSW0-i3oxzJM zZ~1&XfBGuq$}Wtw;&{y1ET@TwnU9KZ(jSMIMJnTmIA<}7WXpkTABt?1n&q{x3`jOsxe!PJS@9fm$&C0ao@}-Xf>X`3X;rdya-c6tsMA^ z9}4BkYAyHUucp(^A|uAyDz_$HiRyn3E++#H_U)!E5XznB}Zt;`?%x)&p2_79+;-bpZR-=?b7UQb#3o-i75PA-`c zuBD8xzzlTB>=uNOZegy1t-8}zDj#io8~wd~?b0NGJcWE5j-^t(^3XF>OEvp~+A;mq zTEaCGX7+dRT_XuRPwp?Vq=w^eWUGfShXtZFq*3>*mN0!64mS$Tt8qIC2U5d_A#~^b zoY4YJem5%h0l`?}u;fAdU1zJSg&}r)HUok-a@&9y*|NYXHGIaPZ~qthN6R=EHEY|i zJ=A#5JYz%ZM-q{Aavjttv|+TKA1Z*sG5dB7qX)&Nt_A86&WxYWJ#$IVxi+Ztz8=Xg z@W!Ut+S@h1XX9KG%6ST+M?XFeRew!T`UmiAYT7)KWGE87Y0#TKKBJI78CzIS^8fAW zi17mhz72}2$C}-~(b7r4jRqfq^W^g!3ALUQF6h6BM*(kuh>Jq*{?sQa?tf@MD%V|0 z;PC$dONPRec%D^S-z3|b*&Wqk&@ zsA1hJrzK|}R{X6WPF)B%>&_DGFP^&M0y#2MQ4hOBCpx>vAz9VuL>{|qy-$RzAATzHnc8S&~Ee$Up zkrhS*wyX3)6!Txod46%^mw+z>$%ecu+oGp>NAyds*$+K<&S;aaX*B3{vt5&SOfS~R z3jx_fZntcLke-n%lw5y25B!5v1eh=qBCTMckD+MI**9cH9LIwE ze@Isem-x_oJ2Hewa%(oEfnLHc zTWC7}c+0MgeL8Y0*3ehQCra}|s=&;s;!1;b>!voGo@scY^L_E$;6vc(&@pSDa47m= zm}KH5h$Pa2N{0KoHx5PXvxk5Af$q}>s@K!o30)Al`(1l^`9}Zc7YFbHOU%xs%`k4 zTPC|#+JjRpM<;Z>tm>b*_w}^=lO(FE4CX}StD`#v^_X5z7E<_#w+EAh`zT%fCkTrFKeeykbYs~sKksTZ!;HsP(# z+$x1BJ?l^0eYbv$S-tKu4Km3wSJ+K|N?!9VaTt3ppC~KFmJawXBJ&+jSzp%lcw4)SQN3{VCyMCc|X%c@6XVeBI!6TGgW9FaUiMXi|ZIXGF#WqOBNx}o5KJoP)e zy{jq23qD41GS)w}Cm5UdNuw$Z+rUrRc)`lGg>4X%U(komaG)XG=%-hXz7*M3$N&oi z(qjP68YDd)20nySP36x(f8Hg6)UGS#l7nzn!-9X)YeTr%g*CXZ!E!@g>r2oV8eaMn zPN95pYXD7GcNDvpVKypjTkE@*rl&nkhXzT=o&J?H0eN0(Mlw+D2~UuwCRob9Bq@E1 z7p-Hj0zwDg8>v=40v-;=YuUpVifgQduIW}1V4H$`x@y{jXj19&ahMF3=qb#XZ*kE< z4!%Zam)P%?d?*<$(ZD-3A&eEO0Utl1hQw zS5}WLzP%&PCfGyC806sDhN~4xBoU`~&0OXPvab1lVz7<8Ic89*$_TA!OA|bifrZZF z3!Xn)l^UhsY$kiHSUFDtnmKq3U>6xB`p(|<4!P>fW zKMgf1h=?_|ga^1(qVlVyZq`eTWfX1x3gEi1OQ`)~|Hl|VM1SSh#mN-8hLYmO>|VMc z{{d*e;)|u~f>0S3#Ioyjx}naawf0rzH-OpKA%-iLhZx^1L7e5{58s#^LB(WB*iJCd zVZiH?gt_>-rFmb8aO)z1Vnyp?2j}jI zI^q%jXYV#`?1WP5Gi7qRKOvDjO;6el2|ena zDc6?Kjo32#!NwD5%kCHtjM6nxif!^McUh!>eYS1RZSXr~XbdLQYqk!5Hq*i_tbyz} zab?X2Lhm0};&Arfd*%3+&lai;en*;Bd0q@H$Qxf2UW70tyYOtuXQ2(Nip=#3jq^{z zp)B8b`4uBJA0f&U7KI9xmU0`st8N;JR_@BHX@=Hgss&C`OquEQCZ1NF1aBNI63XY0 z=$8@G;P;cTH&JrHAFiTb`A4wKE$$)a(D^e)iOI#`QY7@+{;f@RnPo@JNR05z*grrE zOYnB>lCatG^}~&%8OuKm2R6=TPU$8z>mFC8Llq60W^X)9=?Xq9We6ezm0a}|pDVCE zqSHAH)JnRZZzk8Tw~#0oJs=`lcCH2U$m0#Fn+QmI0DnwH0}%`8$36#OLeFUBR#YtE z2&$Vuck$*aNB*TN;5gYLYk(QgR~+Hh`w~m&#jAi8*jGucHo#1-xqx=lI0d=n!pJ`! zOKUJOy`>2TV!!3ON|E%5Vgyel6Fnns2(L_>ZaUKH;f)tHKi5$*x!sy;rg3gh`IJEA z;3ui!P5EMJ@+`3i5C+C%m(Ypk^w09Dp0Or97cwGV=EZUYdeK={pAkI!Dd-UZ&em5U zA!;Al|Bw2u?1mI zeQ<)bkO%L%nORi2W4S#)mQE_yRY|2c(tk}NVRiRCTrYAT(W7K}ydu2pa4tFJG@asG z1uD`z5npkwwFZ9Y8h-%iee8>PbsjfBrJ9HkH); zB}wS}>c%y4X<@bQdf8t0=~^5q;8YE8&M&-3Lga9ElR*e8EC%5$BaL8Wq)g2IjE?kh zn!x$86z7&&(f%~atRgSVHvWc6pCkrys$5F8ht@TVx+Hi{ zP&;!|=pSJu#^0yDQ0ysCROe+(dY7p&JVbvE3+yc_4Fn_sHL_1gmN;ePmeC@qJTK1g zz?mS{EvCP5U%Zi96mr-eJ(dL(lq`pYH;k`kTjm^~V&3G;b?!-@e@zkf7F7Ku5F$q8)!N$CmS=nAZLq+k+Oo!UIloMP zn-h6@k@=pGXUzSRY(#ehZ)#=Ar_$^s%JDA%^y_MP$Bhf;(2QJQSqur({^7TxL} ztFLmAUf~`5)x;lc$WEWNgAIpAK6vqgyZa}RYlOxzQ%T50;xtAt3lXWq41JZpfGMg6Bk59A&p)!r`bc6T@1=>ke4gG@t4 zZ;jXW{C3-umn8kl1=TtFXZ^diG=r7G-0Dnd^MG1P+?SrBFm=da`iM~O zo?_=eK~pTwb=|birpCrOX&jv z&z>bsng2qN6+Ut0Nwrg!Z!jePN`W>p02#N*jwBX8w$BKXitzaXC(WD|5WmhlSY#6m#+Ck%+TB`J`4TkFXlYTx8_4C3r7kT7aTf5;$4??_%uwC^!@bS;3XPS zb-2Md@EP(5EjVd`iIcmJVp0DO1803G8v=%v-Ucks3pZOu$pJK6{>3z2bJlmI?)JAziFW z{^+6>_REZ!E+_qa=lufi^T?Ks&FhEtHhpEaT0RNm-soeEcdLMnF7MNSUwB%KmG8c( zk8VEbI?r+|KVrXn_<+dQLlLQ_D{5jnhBq~qD`I%{oxizn)e`?miL`G!SQ`%~%NDhD zmpzdH+A4XAJnM^eBSotC>5gc|Me{z0thKfq%Lz56dl&mJHD zQ9~`s{e%W3;mjN@Jq}4rcxUo4H!br!`3qdcx8cG#T5&_|O}ta%hURI9?s&^n#qvHV z-PTM>!a<muk1NewcpDO%{1eaRxaPXuGJ*w^O0M;KZZNlppgiYnbB z^kJBO4KdG5mhBMxw2^_(UfoIDfm8{ZN704vO*@8Eb#p3`7}xS%z`WUS^2$z>ji1MI zLIB>-<}3@@`UjAUDen+G^kNUAy{Z~&{-~{d!@y*QcWDw?PFC*l7>*Xg2jeFh9Y+_g z3=BzvwM4WQVtx+NEy<}8zXbQs>JbHnEi)l}!nKP@;L{y!1Ou{*<7=xQXy9)}7Vbvj zfWJsVF^}o=A3y-l{eb8MjB?wJNBje1?cY)BhFlI;V7P^H++48n#+$hZDpHYp0^7t^ zKid=bl{!6FJW-!=dDn~QsBaxfT?|)VB^2sUsJ=e0$Zy{+t{+-=H?t+VvUIfgRKQuh zml3OOIeAUwj5o!}6*$^Kr~alVG{>pc0M=bL;ve1&L0?!rt5zS@i0|+~K!rHA{XdVY zcN0p8VxVuzG|9AQH}QyaZ;XpLBXkjpH-jVBH=pu-bnN>L;K~zV`QlPJg!g$WVDc)z zSVZjR-MX72sPtS*mA@*5-Qzn%8*JL zMH(fh5moOI;G+-3g*t==>*Ace59JMb#VY=FeY)+~jpVZXcXzWyK-w@sG&(Y4<>TT_ z75>(^>hm_S39TJM?%?5lh%yTb*dNSNVH?v6&c7Pd@!xd8nL!it8eg0+4RJ4F?qA}r z%s|(svr6R66IxhkJk)A&r)=)U$Jjd~1(ontuflJK_oj7r%*7_%YN> z^k6i7ItJhwJ{&%EJHdv$;au~HjMKl}E6GYpsU_lU5-H#`I?=PDni*%hWyP*D!IEL9 znoY@ZbNkJK=Gu61)gtDuj;vtQ6*>|>T_vodKrkAdTccbI&kiSVY;60Yzuz`|!h!1$ zE|4FFH6WN5X6g{-!}1)XsE12$9j_b1I8N*|#+soQGc?-pe-tlyfdKmmZl z=%%d2O%~o+igGNqHW%q5vm){dEg#A?>C2=eH8Gohk*&%eBo;6b0MAU2A$m(aFY}n% zI+s(&Xk)G1NxlNGw~spX#w5lM;4-ZpA^~rXWGdyEAZtdvW8ESXT8vaSTbUYG4uTg- zb}$XMreBQfS#ZxcR`%!2QO|oul`f6xpN)lL#K-9XMjFEwEjAOsWS3SFlX?g;DpnLe zs04DkCB>*CGNxWeD&Pk+c;p_{Rxfgt$2+Q8zFq~<7&Xyfce+Tj%&KB#Nwk#*)^5am$b-hzhv}LY z$to(CGT2EJqS8s+1ME~@BnD)?PiOs@)dek3G}*bCy+#!0FjxPuPihb3C%|!c8If_- zo_$IL7#*`1jTZ9Oa-rX|pZ6hS@*=fITsi$Or17cVr2hchWZ>WQx9%#=?V(2w4na&M z$?s?OsYdh9l~_x!{|nIrxv(UpgGg*;v3VPeN}h#h0*o6w$+|_WBSPzQIMtWhZLS`N zq7&~te3OYMmI-D-%yH64_DWS+SEN3fX{d-%e?NL9$fyk^5B0wK013n>qw-}PIkkLc zK1~2-|G3h{{&~iDr&z*iR10SQHz}i1Uv(ygT*9uJ9&B+|d{-|jBfu&@cXW8;P(SD{ ztuA+p?}i`f=pSH(N>s#LFINi1EM^29OM1JhBW%x^Si9&4&;in$DILqxSPPfP>1L6p zK*d@YZaUZ->Phqd9^Hx5L$o}E`@va-8J~!CV!_^A?qEl{r%{<2L+c5Q67aR?Bk??6 z@M~5>WSaPC9+s_f(RsXRKm59o0kE zV6MYjq+!OByR+(r)EJUI(y3@TKPJ(JTqzSy`;dD~HS2nnq{b5 z0tmccD^_)am0woKhHy>GEUYbLO~I%mxr=)CGSfp4omd5gM&4IR=38WTO>A5OGCZIa zy(>K5J*s!I#Dug+)3Vn{aEQ6|4WUL)sxwE zL%UA-AAsq;tlx4p3LV^#D}5+f67t!6ASD{GfEB1e*EY$+3e>3{fs`sJ&9a7e1>ZI;`TEqEamS3X=Kr__Wu+N)NMDcwJ0s_yim`$hnj9;mvqGn)b3_l#(QJ-<0*5dy`fj4 zdK_!XYNNQnC;Q*JCR@MBC)8j7P_1ZU=jg{rDe}2L>X3~R{p7=;i`+e1RC_IE{UT_K zKxWiFwMO`8rkf}>tc5kX2Kq?>I{BvC3snQ7>~o8BKYl0|{W|ntmzI=gw-z0B<>3HM zLH0j6KAE`Q+-h^+GILD%-c7ktN9`4{r&wS9V0Hj_50%r=pVK6@6GvyG_39|7p>O{m zfT2gJ;qXMwWp1C0%%;XTc4!tO6!Zy@8Bs>UW>;ankr#4R4Y}bOc>OLWNA`s9U^Qd) ziSQRy&9#!PnJR%a@d74Om4bxN8CP&4-iP(-vL79W-|r!%;mEI<@+-tNY)0*ijo21z8a61S#gCq@fKd&e%i@|6NXY0 zVYDm)a>OM*F>#QvcR7{B`0eq2+_Q%HeQ8$#Ce1e`1yXtCbw52myBMFbwwWdv)^SnN zy;QBxyLoG3HE-YMnO18{JU#R87)RYUwCox6H0kKnV9B1TG5g##RziJ7thd^$pb)MR z@ZTKcsD+o*kdimww0K?f>tGYI{KSGyaM>G8Mp*eB-^h zCJ>MaRB=Kf1eYkuCi5J^@7AXbzLSdv?rM^u#ua zlDglIIN<+BHLvmXQX3q}s3bC@e`jG${4#~L>%JXBN1@jm!{yU+-0jwvCWXT}AIv$< zFaAE~y9dDTcS4s8&}2(BSqP;q^B1plsTV(ttx)dB={R!4>N|Us$jI#) zixyh|;&lI|9s|cOCuma+9P) zv8a@Ph62eQo;v*AE-UH!vw8~a0pmC2KZ5exKfM`MyT199+NFOtmClp9o!q7(_v|oT z5{OKcC_$F{gHF>|`V?T~a4`9g;k$reSYy9Hf1U^V*4yks0oUj~_g)VPaa9McM%0m2681rzSB&u*=VQZ`}0>WV;q`SXuL_BIbJ|Uz(Q3Xn}BzF;$%(C zi)j+^eIBWBnzBGMk#-FgEjsZyz76Kvkx9V$eL&)w*5%HCcGxB@3$F~)N#DlL5 z)dJU~REr4$c)^S3gvwCOr^L?pBUt?Jibs`sA-VN~Dc1&&she6C`Mm@@o4~r#P4#O> zB=H&s7@$hZHH24T21HbXO%SdI6G=mimM{Mv^O?j^;el>A-HT29mUq-O)&=>{BP3hl zGyx~wNrLC6B_(T}>3Ly1vqL52-0#L;p-?TVCYFP( zE`%!nz64yA6!*DV<8SvoJC(kz-nMyRzO~^vcUi!_NCBNjoX-A@??pR4xFIgsftqDt zXDH+J;NVUATKxPBp4;J3`{Es8x3R}Naj6QmzInE0Z8!a36~G^lq)*o zx&E5f&-0HuWpBqA%=*yq*bL4^w_I(eH*5`7{uhyl2q8gUR{WST!o~3~L~*%OhkeY`|8m+~Xi@iZLsT=v+JWzZZ`G4#^obhkK?$*g zorqwP@IwkONO{tm{-n~-a}`X{M~CeMxr#GaK6t_A1!0Pyz1<0{OWblQZy0FGuKrDX zn=0vxt{3s4^@UCiW$t36okL4U%f-Cp9+4y4Q{9tcj-(HvB$B?wP0m3`F}u>q7Z|re z2~QozT=$M+px)GMZcnsIDht-V`#cf18jX(IYRLkL1Uw~9QuJ91!l$iom#|cVLb6vp zkHN%_V#Z>NTHzu@Z@5CJ6itGtO3Y2{U=-u=$r_TE0fdW|Yz_Yy;fOALl4>e8>IP$} z@kEj3(pK*$i&$M(nvSQ!@-wHCvxfO(-rq=*eIp1{yY|Kw5BA6<>$-R)!351sodrv zEw3{H5|aeI>pHWFUSbS%^vSuC`cxQGil&!}cTqNA8Z6US)9*DHeG54e>0Gi;j$xlV z6y@n&k7o*Yh^CW|1jBY;Di>NS?Hx*VmEH#j-KgtZ>L7l0%eAI+`mv-Gk_?YvLGCmh zIxzYdV}dyM>{SLq?`nCVAC+1Xx~;^%+Vv}#JN1>sCSwyD=QP;Oo>%WF=#czpIN-HV z`qMW~quhzWyY{g1PLkea2?PT;G9-{%Kl*uxLVi5hC6wT3;*=8xONm*3!7Md! zx*q@HbBblrXa%go8F(TbXIeBh0rRgh$?Qc22135%J}dRW?58|??i_5DW$@(oXOC9y zF%Ow4_fYBPdGKXFBIn?AAr39X()FaV`B(v@Yer1))ld^Rlyy0F7EVBmJ2m*=U!NsQ zle=Dq(2KrGV4n@-rY9+M8M{Zdif7-sv!YQZ)858 z!=3mKfVg`Mn|zYz0lD(wCBV6{{eCdAs~sYU$Tp3H5>HQ*dyZ6kgR~r0n~nTCuQEzOP`_i3_X19ZHV8s9t}#(-3u; zGu*EJRH~&y|J-$E<}Kl~VYhsuP~HKbKtq=wLr{=<#4mv`PI0E?%xs!WqDn+`la2Js zuGNuzHyIOHyf3bezDhl>T%YBZx0;qF+LX^jt z=la*g+u|WZd4$%xW%}ypN;e;IS&{?T^ugWV-Me|qT|;d1=8mIAem8fjfBGV?aYU@SJ-J{NhjZ7T+E_v$D$YhpIFe-XwhEYJ_{fFV^jA+XE=TUNH^riX(8qZbn~jZ+>qkg~dt=;vu4aapftu(0K(> zR`O&Q&gDiFk3gxs0O4zqX)%PtYx|a|Uf*_Mq!wnQIV!9+FGbTMvQxBiu(Go9$_4%Z zHF0LRcI&RdFfy-jExagvkzx(Kib%7xGFNc=sM4rw?S{lZbhPI=up$Ud#WxG-Mf zfKz5en~Mt@OrZMl18aBx$a6rgC~(q`$Wk;f>UWF&3eU;xWYw4&9VJx%*k;-v+U7oef&P7+{&1qNI#9qc8nLS!vmSI#;+`Fazhw_0$);o_;s4Kr>8B;m565WGC0SBP z#6he@eK-Ne5{2Xxn&3PBdI-71NJ{ET+OPnu8{Ei!>OnMMIL*g`ZWjG{g^st}zY*kH zrt7Q#we*=f^H6->(af%rp-X-qwR=JtvIYfXfJ)_#hnA$SMpC9b`IN47ym3`)H1^o7 zJFH~X{2ol*ufoGQ-Wfz;)C)X-Z?8HmPETc+OslyB3S4XpmK8}xpPh`DbP>0(!j+hb>z0u6!qYL!m_Kb0>>b_ z5N$H~JI`Lxnp5P~TD29=s;KAINH7lw%OT01;g)> z#nHl#e4xCi9-V;+q4U5F!)&Ir#8rt2ET~#`jzZ1U)k_JotbTNSEY9J_R2pib771du zI>Zt3Ej>36oxj)?%9Sfm^==vlfwhX!0|${_OzGDvw{LkPbQ&#W5neO$T`?>+l%lYSA6DG$PeYq?NuC}mCcr=) zq|BK3`33&G5S}E_B9NBOhT87+I50+MHZ^z>cooj~Q3U&rep}wWUOkaYh`e7EJ+R-D567mDiB^`w zzTJ|H>XUR9s^71j@cV|qpg_&4N08xMjv6i<9Q9+h53y!C*Rr%4)oG-7iH0A;Ym*cM zGfLbZlia$?f`hX?S$uMedBsODdvoT)iG;Y?WEl@ze)F#)Nu*43Z@zyMqeXvQ*z&7a#SfQapBWuC2&B0e^Zii`+cA9ch2>z}3~v8@cmD zeB(dce5!^}gEb?Li|5p1osYuTgzVS^Ujgo>tN|9}NC>}OzjnVgY)=#v`Mxk3yU9GE z>*=j5E2AG08j`FGLgm(LV!-*j>z@X?sR$28cE|2gNVs$G^&Vbr!eM1ihR2bNjCz?` z@s%p%<7>}&i{@y#U#-jurHsQ|Q^!%i>~~nQK2IrWp_*9srr*Dr0%ks3+69BUY%2hU`#S)eRI~CWZds^w-;rMC}HSE z1SLY_K0i(rfoB_s$uETf2N$aUrM1JNavkT_;T_SCE(OfjArSa_5!}iWs`;@ zGCyybYT40zI(CUNg%1l(AjO}$@+WKy+3LD8K_TStb47&Kb3Yid1V{h}a*fE-D7cbf z-_){iWhop=*k!qH$<$nTlVcwNRL~S-2Z**+pDgq^GBa3)n$(UAkpxANy!&Y2Y|=MK z%z_N9=n|W>D}ek>ni~q8fRA1=eAuIl{|{N25O^-wI+QtcMI}cAG!h!svn8Ln+2k7| zRC23`B1v?)MW3PG(BHgZ(nkdsxhi+MI~I>2^i-UVun}Di3z9=q$)}` z(;X7mJpm-@Yu+KBl0>m8Un7H*kG$tFA`2uZAsH<38(!|L*~=&5@E@!ABgHxQSfPNWBui9B0bd+F)bv7vQqgN2)9bMve}s_6!Xp8len6O z+T|elg{~j4>kYRVR4jT_9Ic)e()s}1Iv3?3lj4S8dxc|6{@L=+Ga(N5F!_Y8@@-0z zTDA`MwEIGS&|hPM%nvd-O09(0jb@V8fRZILzvcXlrb5#hn=7V3RRXMT!jZ`2Hyb|j zomtSzXpP}YH&5qlLP_YcH#&E#_VC@30dmo(QYIXT4xf>I=-zpraS=D{`G+CBQ`_TtNKQi|ZI7Qv|dka+(NaEyFNa zIRpL!xgOP)ut^sFagh0!j6b(`U0=e`7w~oFKM?YX-V2gk&$m-Q^%X#_=^Rdk|X-Mv; z5WRoj{(5k|#016*@$Ckw?Kb>9IN=3cB37Yh-PSY3t;SJFe>Mr`7EnRZpBMnd5@)Hj z#x*xh@mpBkY1ywVs9&(?!BjXij*CDh;de6L-eR>DoP}mXy6+_4v0GsLxQwcdy-e{8 z10yi1#mCv*0lTJ0z18%Hf2&Ka35r=V=9TcWhuVuSUM=?n$ z$Z{-Qc={=$-HyHBGyXCr$P8yf{zUr7<;5GQwHFa}hCNCk_kKJjKSWdUPKL(5^w{4q zd%Ty^hq+NEvI-L_>d4KNvR??l9Ij32+PH@xUO0$9{v2VW_p`cuw6X}*gM`3}!zcOl z%5ezGbG;VVgm`$#zLHI zWkb>i5jRwDH4;DtfPDSph402Hpp~5IiYOB$1)i z00_UmkC-9s1$q`U+gFs31kLla2bgX-hj1bU=rC78X}Cu5J;mtSJFAQE(%DemzaJ@4 zKaxWzoIjnY^2M6DQF=eGFx8<7ScAYs0LW27SryhEihXId+@+P2@kYXrXxhrpl_t(VfXO*g4{*J(7*dnOXPU?(~~+ z)BJEeB>n->qhW)miA*Q9r}{{_Q-{J`Zn^jaijZu-W!-u|EBwULNdw`;a-@WufgJnA zF3l2JpTCTYnj@Ou;y`dSI(H3kN?BcSCUFUEfcwVEv)bu8te4IpqQApBQ&w)4{*Ehd z$5usSOdPA)Ryz%4{R{AtxJAzpf~?A{18*ZTZLL`MB0Mb(LeWB$h+;ni^bO_7 zbj?5D;JNjAm08Wsee2oB`t-&?9tTiLO%$YvqApTY%wACIEuqo=8%0g?#nQhi&8D8& zX|}!NI66@_|M}CUQ1XdJl-P#>bun)w*JCy2RT_ z%qeIFR%d1~vsaez-XT|kn$3LK`+=1|(haRtZXmFBomj5F+_|Axh)MTo@uU{Rby<8P z*LBG?-7m1OV&Y#*AKtBqaGrAbjujXq)oAgZt<#WwjQR-LkXofC4p_9L?2|amRVg-oOQ8Ta9YlsJs*1sM30?y0B|q)gT2D zttF(WVS6sII;=*`lUz0cYrQUHRFqYXHed0M)zppKOHXZf86a~z*rSLA-)SVgN038M zghL63&zh@LV>N^|@0?1$B8i^>?W94>xiL{I$1ULJ$0y8OL9H9mQqH%p*`U+_h1i@}QTtG-7@5 zP@i4UVTnb45}cnl_*UHx=(L?Kn*jQrpCZoNQx3~*b zL{usV3kaD7aYgFT@$%K5OX8{6px8fTsXvHN=#!P^{Ck>zS0#8nzgI5 zA6@Of(|y7#tgR;@oLqp2r}@5d_}rTSKkz$f=D4>d>oYAeyyhHgYMZP-I5tR5!~KX) z@`~ewE}pLyKDb{hK@aFEfznmHi7~E6C4IEi;@J&UI`e;LXR%B|>w7mn-C@^BPfe+q z6p)^2Ev?(w%dQhGX>nUuHYzCL^}t0EPvETKLft;_3B?o4L!Afsi7Sp`0Zmi_63e7N z;M=bd`Dh_MJ{qb@S>9u>`V%aVR!a71U)T4z*HInI^NCnE1c5U`0jc z7lKOuf9T$^aQwfC_Q4_ZuJxyt{&+81=4nPaFKfKD#OkZ1BQz3_UWFXIjFX$v-a={MC;2`1wPG@MP@G zHnu1#S$Xo$Dq>hEJoiVr18A5(w|R-^0y>k59%))Jt(`B+L*P2lPhV}xTXO9_3{{>w z8ApjS$o2x}TZBy0ILUQ0a4=wM&L0-$ZqZ=PPC9$PiGXH@`OmR=IMEtkmIU4aEL6vs ziKQz0B>r(!#rkGO?jRs*G>e+j=qyVWi7tkR$9;=uxJ2J1&$(W=<(&57$IMU8qp4Z| z8IaX*GCY1t#fM|cHW#-r8!`8LjcD%)2p7a;jv6tc{W3ohkB+za`g_@#WNa{P1XB!K z4rD|0f(=-Z4?PRio~j{+iwz%_oB2#jAmhz3&WXd-e81J0<4rY2S`KbDCD3JWv)hE5 zi>K&joI0wIBad_f=p*ELx0fpm-6`BVXZmiGqYBi?_4$9$s@Zw3>~)tPJPiD6jZDQ% zEmA}|IDFrCGkJ|`zdY};Cu8T-zAHRIK8Wu@szP1dSMP-@OWV%mvI9Qi@&7<}7+Hsw ze|nnFt4`vfaf=2Ip^HNioP<6K>GZ$V&v3n$hxZysW>fzIdG)ivv??O_c z!<#m5zEZ*+0)Wu1kQs58|3J?!qSwv;Ce%%pRxreV9O;0X<*ohu4|L0mcBbfm7cJ*9 zvRB!fskj>7Q7N$&@~@~}9^oz`vvQiB6)vXbv!a%T`M^)18FwIvYe$O24;Wt|BZ*9f z&xJh`7P>!qH?GBwkCaUNMde;^H?vtFRe~jfc=+LZS({eZQRx|DtFM_ZK`3Is%(5%@ z+>&vhMXn4V9zkS*UO4>gb$x%^fyaE|?8V0b{OmrK-u@?^&&Z#Qp7hEMQDL=gCuN09 zW%$>Zy_L%mQFx<-&xc#@{^ra0P0B@dbugscCltA6&OOvkcCOkKxd2w z(FTM6z?*9iZ`BXxDvJwE|_lz`)^dcS%VBjg%_Nu z5=s2vdmJ(9H3-tTAe(%6Iip_>1!X-SJ!rW8iq0}ioi*$H-Iyssw4P*&B~&>%BZFnK zo|xfH+D|`qSx*Hd-fw<(KccIb45BxEIKH0p_<#@XiHP#%X4yPwl>`ZQB??lI#+(}v zx+^XAnSUonn*mlk?pI4pjmHI>NCveKZCT3olrSBZG#DBk=ho+1`%=jZWq2j1Gzm*E zByzoS%OU?v6EaPh?Rd}0_=kEucla*f{fFBOX(TZTx9XB2U1S2kb0ssnY}WL`xsDjw zygL5klMjT8zAy}QL1xG>PES0F<**8T#LmWC66Ihu@^sv33qS0%RwGB>myJ6IzxPhf z;R7-8=OL${|3H_&0qR7Gdx|%!oV@v}T*j+c)$>st7m~&6=xlvV>iF9Kqe!yd^v+oB zLt$DQX^4ZBD}ahClM4I?vR#WOKrFjF`gXyg20?&4*NkH(OMbeqYtu~e8W=n_F?kTR zjWKCWu&+#L)V`xLW$OwpFMRs?*SaNfH+bmB!+F~gh)Y5v_cl#2Cc>eoj%HbR;xp<~ z;u$&NmJ1Pn@Fa8=BYDl3W_DV)P!dN~UmfiS<qPWIqUH9v~KtPs8z z*~TaTlNjWinA05P=O%gY_)v zvu_(g5=-}YaoJ4nP?dS}qhjsTP^MX>xN^f_MoW9rw*4he8b2MpBvI{F%{#UY4F=V; z<7cUNA04$_tMO==HjI~pSX~cO>sMP|(AzR`sHk>=@-$zy+(AQ*73pQxS(?g^-ajaU z`jz7cv4+N6LFx2yAw15*#&$Be6;V5iujS>^w04O3s1;x zp5e7*;zAzxN8# zp8_UXn5C24OaX?n=>!>cHWm9Nz1`>d_(PuRg?ygtl1>*d|};i5t<~m^Sb{9D1On95Kj=-Gh|?7<{#D{%xy~l-?QLNt4{qGB_$! zMMDuEFJ{haHTFMH#Ve;XadRi*24wyhe@%jaL3DNwBpucPcnvAcryt)d$TA^i%RJ4N zby@$-H)^+R@o=^p991?X55ZDgR+Nzh&xr{-zrR|2ztt$tza6Srz6`@Z-|%Vk1V2z5 zyv`aadasTosIurHAdXBsw@h#Z&(D@ij*bL8k4~SdiJ^n@4zG*#P>Bj0MzUo$(6qi* zcY$zWA|&u&qQ(5*U*0DGKjF`D6{aR;%dYxvH0y9h z?2PY6W-0DN2qJb{Vy4J?nNCg8G*zaUE&^K#pHB0oDY|M-v%Hwxh>rGE_iS3*j)dih z=}o^FWAv8n`o>GhE%k%n@d5WcZpb_@oo&}7K7D{%5ktno3@Vqp%Fpv3k_>c>=PjG# z5B^>)7d%}e=7UbK^?rE8Y`a&&(ma}GY|k&PKuW;&MH@e5bLZPl!dSbkB^7U~fXi62 zJ^7eWW?fRCBtG3?KIOd2!oUIMB`5JHjQM;Ij#r)iql3552%e`wFGhBfA4wMyXwa)A z@o#5KDUG1xUV2;Bg8>^LtXA234aa>ykQmZcm8QX)e!-r+W_46qOH+kAfaF#GP=>+{ zt%5)1z=<~J>Eet~2=3#xJdKHed{nar{VK#MxI&>E15)CBa)c0wL*zb0Dq8=B6Tep= zo&CDd1D}!4FW6Lei4NQO(X@j^mA7g}+wzYGzT?)8f{$QrFa*iKodLORpMo_GiiCX>biv&KuOvtt(3-Rn&g+nHxV-pOW49 zqeg}wmHhCg@9IBLYE!JNB6q0bMep(C!{j?^hy31~#?+l#D7`owV_e-sNWQJPl^R?e z)_DP7+K=9df%mN?+IQC6E(I6449@Ud_37&yl`9<8aG4FdhjTdDYnP)oG^3tC>^M)| zZp{4N@kgVKLFcciU!mn(^dar0<=#i>-oxs-O{7CqYdm)Lb1n4s8!4NAc!WJOW?c{(-p_3?(D?0k6nqhC&SkgE4$HR!q={va`t9D7MpR7e;StKD- zWeL%*dm2#>q{JIH{{y}4lZ#t5OZ^GJ_m**a?tv0a6CQZ&wVBLu@X;!c6b(ILB`r>!9T$rwFM$Cj3Zt-eJX8B9H9-fkKj`;914nT94;iJ zu!_J6E>exl$GMN5(_GsSkpab|2Xo2!t~mlukLFfZJu`P>)$bH&qQTgEOn=bAukrO< zxn$oRlPN!=F#+*Y5r!T|5wr(hSE*N}3X|=@11>f69*0Tpi&yKk*dEw;y;M*qf}`UX z6SiC_@Yyc}nx~bVZH3h}W96{2{Ot2i$Ik!)0ZV^@@IuiozOQoT4QWe~4_*RW#LUit z8O-W{KFLSG9Bk~FHE%NItdH~--LxptO0MTGNOWy^E2{<`JvWYh-$_5!NWU) zV%tYM8-}Nms^zHsGs_859dJ?g=81$LIJ z6Rdcx?uxpedU`0XbaARjdA#|;Z@8vxl$$0! zn_U%LyxhH8#|k!fgwf)^kAj*mhv{8cy%pS1tq55AD56GqxtELw<@ag62s%Pf^SlC? zJp2?-i3qmyg)XXHR)D`rwEwIup?&7|SBtBh>QiX;+2VogwHmB{J&vTRK3D5_GKdP} zWJ2}$hCI%@D$xh>)VDI|ff~W8nVwPE_&>;ND#L5N#--xDVHW&H7%-8+n;Y=GuD$3_bKK#?rqqn>vTpubqDc7J&Rawba`igb%2dV zGaL}={*HfRsl%1Vruuu!v3~g7P*98fmLc{T2-$v;V=g#=9t(43@CWE__M%{_@7OT3*>{V>Cq81n_Ox)P5h)|h{2@Uayi#0)Kt zw?g`3#{seFvj-%ufMi-L>W-l3(tiXg&xt&b$-s<KkUh(c@n=jEmM0=h1_%&~fPwF4hBMz$j2x-f-y zj+3R;@$efcT4b&|C!mC~r`r3WMOT*L%+U#^-o+uiAX+*ftM8g2{W|l_)dDIgr8*eygzjQ*edTC~2JCp`xpR4Z~sO=KQem6hoFsN{E9vD>bV*O0} zu!Jm+gvqj$34xywfmB!q$Bwe?q=AZN>g;zVHWsXHo>g&Quw#<((rPvcxp9w$R-d~+ zK{#`Y8Dp)MhhJ7XXNJO zm2cwvuD=nHmGndPEyy}hu%s0^e<~Kq`Xp^h8RC^L?--hS<%^^PlI$^v2WzL+-6@O z0yQAHc#v#eu73%?1(4HUOTK6oPI2pPdJaY;8-$qD6@z08DR|X;WE5!M(rItzyXiU% z_*w{;99N7coCZj}k{RVLoaZp?z)$&|rSn~!540fBm=exH6sG!#Pr?&K>vg4MPf+7# z?b=89cr5|83!8q;tL``JqDb(C5wy9rnhsGC``0%T4is4|OM4gH+8%2QRn~ z=L`_r(x#_r)b5^$nYX9Jzku#q)S*>19px`=t-AmV~@2Vry1apv{uc!>c$; zSW?~B6kc~c)>Dz{f^6{b_}$Xn$JPb)xR!7Qa)%M}69;NJIN?JB{t$9jp;Somh2?`M zSqS?a;{@xjtr|H8^t=2)d%NNjd+6Jdo%R789ngblB0QiG{qpww@+hG6QuIbFq7NH& zI0*@&O}_7`)QQhlq_njtV98d`ccAjUhTHff?OK?2U7c>Tw0GX8#1}`-28{V8mE%EZ zSzpsUQR+hC09Zh}&Qtq2O;r9%*paunhu>&Bt=MR#OSX}@i-e?NCr79d@M|Jyv<^#T z7Y$s*JiTc(df{LF61eY2CLxGSUVdqK^Z7oSIDJ6Q$fdVWP1V^7CH3K64H(CU)PCoc&pSZ`i{c|FC3JG#ux>K;>^ zV&Tlgxmc)WLrmJpNl3zhk?h(lMWD!3obFW=Tm?{CIMh=e(4u8Gm}d>7=K#PwWa^3} zcQ-1g_(@jdkE1HDe38lLKw75$-LB3E-4e@|5K7$KvD!7^Y1qGcdLSK>(jIW*wRq(} zeTS^5{8R$py@JvJO#_!lMWNP*QUJ_(?DHS!qu_52>#pt1Hzn(%cv&}eSo7nQPH5AI zQ59yuzaN+H#St=$<9lZ^|K7oZ@8L{^S%}ef3a<0AIlM*kZu%p-{jGh);s(F@rmO}0-56G?*nS6;n(F~0REwPL`oJr;JCJew-!=`m0HseXN6}-HLlKl8#AP3PS%VL3wBl1vKi2$vVaE zN$#fR-`W8j1xCs%D$z4*&e#bV@F*LI`&zxK%Kg~7GDd}|d^-hOA#*aXr1-Lzz8^Oj z-#o;vxC)AyKmc3Y{m9$)x+=dHvDONk8m7c2YlV4LXiSh6zcu;2!iD*=MBNZcPLQa8 zg`($@?*H)U>$@p$I|&IS_#qE3!l{WLi|dESz4#BbO5B>lG|dDAclng#Pu#CcE@f2UZso5^xEm`!QuF+T}RbNUi$w)eyw@~ z^Zzf$4r@TCwy6g^hW+IajchhPa! zKG`;JN`;Jvr@6!w6lRrVG4G6E~)oP0xEdq3m^?Mw^QW_foiye)sR2GOVpH|>6S8y#W zfHpQXK5gNwUVVpacMy`R@mqDdDd2qf<53ZQhV0cFjM0(P8>b0tu^#;Ec@K3c zg*`+nV+=?!FE?{|IP`B5{BGpuX`C#Vj}b(aB|E8MA-LqD>=T zYq<4hcQd1DeD8GveSwKrB^3TdcyvmwyP1&e)cLby5Fr6w965o7N6><)NqjmKcE0n? zMVi#@eM;+xv~t)vewKPrtFl8A8&0)2unF@j$NR(M$Laza{tsjz;H+UD62S+fYGEF7Vj*hB3O_3sl*#ttJYTI?nDPOAHfh`9zv6rSE>NGV{ChV+zZBdQO`flEdPDdS`wF zOeh&dMub0#Ny2LK?6}>hZfnYxV z4qDDo_%#s?-gD0)XDB6oEzs%qhmYrqfD|NIfHHQf>Vn`0_aq%}7It@WU%5na^91?3_(~St^uWePOzs ze;-I*IyV0msNiPmXP}j*m9|iOrgga>SG1{{s0v)X=PjGm)jv(_=q}x{Ez<(();~mM z^$I25NVCQt5+7MIR0WABaIjUT-El4ZnO#oTs9PD;#(|M&8{SqfS=K&BgT)U^TdUbq z=QCvktNHkC&n#K&HCQn8=iP z1p0$tb0@x>ctb!p6|Sbv_0pT_KM;Kn z?G9HO76QPSW=Njz6}-Oc^1CT0X5%*K+Oq-p!u`upp?YU_v(7QI)^2khkDCg4Jsu#k zExC$`2Y9aPH(A$JZt+x?qXlzzqq(@^1sLZzM`J!}9237-ycvoTiicbx8 zTa_m81rM$e$OTU~=V;`QS;ZArC#>NDI3~D~j~m@1~T4m|BbFT3!;0;QedFWo!Bz zRA`h-5>J5;9Xwv(Fj8S`=*6nWDOUbKKZ)VcNgT4u162UySi}y|8QZ7^$GZ2yLeGaL9x1P$(qNKvIk0k9dc_~9Sg=t5)p+!D1u=tcbp&q%l*?V zPy7Bq2=s~_2TTPC36zmJ-KSUPmU3MbvYU(JjqU9{h2KZ$4*vt8FZuq`#CVoap(P%h z9^;KOi9hifuv@Ay)|@Zg|NIOiE68pCCv=2$*)R6X^p5_=z2O?KEKcHLVU@a*ZY*KC zd@r4n3|6fH{}y~ZpW}q2vZy=}PRj+xv*s{myMQ&5?lZ2C#^WVrtNmEroXU6EwGHsx z$svz*)?(M;w|1y@c-hqIKXeWsV2b>KS7zLORxR-q3bzJSNROkcSa4k{$TCcJp0T4* zE@s3OPQ;IPyoapV_G`UPNi-iY3#cYfMB_@Hohvm7PFCo3tOQa?Y4<%Xqu2;l9$p6U z%gdZ3f0#So@81H$1B*hcf4pN7G(TGh*>AQ>b?YhjR1qpwRG9!_VHh2!ukp{yQBL~$ z;G>TyRXbM>&EcJHuZ^+-`sdI>af?$-@O6C}fAvQ53pXcJx2u*Rx{^-qHi8s%q#kCv zBgr+`mEI1R`t5#T>!)=2;^bIzYGHz7J5aJvI?F)9d%mn3h^Os7K&6?(BRTpU^<6-7 zZMz~TM9Aq`B$mY3;V;ooc%{pFsfKpYjJVyfy0f#%Q~O^!eFN2jU-e-UJ18`zr0s#k za%yXI{FQy#ut$L7LE(n~h~b;Je!*IA=mN|6-8+Iy1J^py&?egeKlNDiBBG$C_U_jS zCS;I>G{zK)GFg)5cvx_#*8DV(%t1bme4H3$;KqKK1mcS?;GtiRhkeKYr{`e|etO1c zk)-KhYw$H=w~zKoO}TNxxSZlkG6c!%e@VF#baU+6IW;`lj;h+VLK_Bl*U3VUB@;0y zPGkqDPxeZ=sMg?I!5eQ>5Kb{D!94JF3X@zSNUxCg-H5FQQ12!g8I#eAu~N=6MZzBR zo|J^$mLB!XNLn%Tc>vKEcSgCV}}#0@w{w^5fUL3FmdP=i+t5y8hBLu(B-ON=&U< ziLA+I9z!QQQy5~2pl37g$!q$h&omuEgWCdZqhBL35`>y3zUOLlY7F1$)1RjY@pemsYWMb4G`MROmH`cO0Wj4mWTKeXER7U9n9CXHzGaCll z@)~9AWj@jcaXpOtL$fxGPbnFs!C!P&y|+K*$B(E6ixDh5BqknPcNs7D&Gzz@c(mwwQ?{$5 z9Xbym#_n8Mo^=5HpH42<#Awu-PbcwM6Q0rW9ZXbYPwdQ@rFYW)wKk1 zG#~SIsSVp0OJ+l&b;wiPUtyv&=46Vj4Le>bSL5`$5^#qBZ|`1-7T6W?JCMP=d_EX# z%b@PT(Btx;(=~va7{6!^8uVy~fCaZJKrtXEbp4`*?hR+Pv+>R(Q~C6MZppwSOI&9< z#x+PbP%2+{QkVO>pDxadD72xF>Z4z!(5NBL7*l2a@(%6c!z8KvxTQF5<#FBUk)BD_ql^!ZxY=SUwl`=iGq5xH+%Ztt3`#s89_JK4$L9!0&4oL%~i^=1PhNJ}=n3pkbQp9w(+FE*B2=ksBWbntPBNr&v+PX9_EL&6}f;um$Mqy+*1}IF-4@&yRWzqsLpe~W| zC*a>{YAYEXKXxTn-|F)(MaNjEnQ4H^Zz|2uMfKlJO#cxZ?sEGS5C!WqvO3$1`KA_eGG47S_&Thl(a;=mMFhR(1gVr}rJS z5||GNkpfxeIPPPYYk6j$qfnI~KBW(e>nrztW#_>|KIMcrgBs}djJ6rcl%WxHbf^f< zaX#G%tv_K?x`Tb*d@jFR%Mok-o#RW&i1r=Riq~;fu*j7fn#x3q8TvUyjRvu#sI2o` zP!9)G{tjt+sybCJpXDxcq0~(J_~QzwuIC$|zin^E;{@A$i)AA6)Y801#6}I(q`NNb zu5k&c%&C}S4Yfh&S0_ZCkL9`wL=X+${{R3ZTO$U5>0I*lm4Q6^v8{QMn)1D#0{g;m z5?CwF-C%M3p_5BSTr=TBmH`*CD|Fyr6|t;VBmdq3;j%Bthh`BdsZ7E?vG~iMi+=WA zo@z0M&j+~z{RmU-tm#AE7QatVLv0X@feJ3i2{t1`N%)sS z1WVn@`Ath@6;y&ln+=`g|98G-Es6R>Qv_9Eua<@SQuE z$awYsd#71SOaD8KF;%zrfI;#~k1eX{KYZRC(-aJ_PdyhfA+ElB4?ga)4CZDlnVu5Fb6*|PJb#Wu9=!(@orj4 z$X}7@5DtCDRSvl+!1SnmN_)t;8*9p*pDF9e!{i~_o$r|hHhoZ~$}3kd>di;f%^+}Y z7Rys_+@U<|K3px(6`bJXs}?0U zEc8^JbqpU=68!DX1G60|-Y}bV1chkq=u%Fu5UuItZ)GUl&bqI7xHFS&&M~ft4ZO+=CIQ0h&SWGZ9m6&dTR2;J*nc2CzQ#|oEg3|Y zB}g*<0==}cP4v2-*({NL*7;zNV%$5SfhjYxz9#N163L|Y6Jgf~Y6|;2sd)Gvz_bJO zdYPqiC$mzO1z0Q3g(4`-MEe)0C!nM?D{X8YJvL8x4%c0|vOmD&#vz;fa!#f=oo$en zdS=5Pd)+J&_5`RWVM(^HY<$k0DFr-vXOxQ!O`Bk2UHn>ro+&0G@o8HW^O=!TQ<&Qs z9%>gFB>W~%fjWU~K{kZq3Va2U`q8FWqS{UhSo~>3z)y|InaAFHg=Qv}VpHD7&uSv9 z`q*c6_QOXr)OnH#Ir0VY-oD;%-;#Uqs!VNz_d(Y%An}m*bk^5T~-wbex@+?N*H{w%`v8Q(>x%pXbwo7TU3%gAxb4YKyXRBj1H%x-P$tcbCK z6BwyNA^zuSZO->ZiTr9(<6Qkcg_IJc7(sb#%{0pt1(Z9=M}~iS(I;d`C&GhFP1 zVK42|^e9+;muL+nVzS=80{StSOqf-6>{k<=?pi4JWM!3}(3xAwOvahVa=m-Zg5+Tc zU;Y`BZeJ-#pqLkJ!-r19dg zdZ4WQTxt4-&hv}FOu__ib!Ud`4j;Q}<*fbNY3w%XgpVLF<64Tup}wQGA4tgL-an4udt($eN-4?}y8!QFv1d2RcT_AFo_@ z{VGv8fIK7M1#!!SYY!@nTjTPDH=DYIhsgfEmngSpYbrhn0b1tELd9@=kKwHb^ry(DsyY7>p zdqMGH-;)6ok@`1}ikkm3DF_ZrrZFHG6P$jndKwy$@J$u<4@P>wL;^4IH_TG2j8S^t z%%atebokeBPvtkU_Fa5iP|x6X`nfJXJLkI+NbFs>z?XA!rNdpkmom)RhyaNMeTt8S zYJ;@$!GO2?3!WFH^F0aS7<-vEJ=^S$&kN(9Qoc?GCB~-X^=FWUi7`%=Y+_c^_EVHK zw*rmy)<&_-yZAjI0?vrUF_-bp7}5Vg@Wv5P=Dxv@jeICr=s{)xB1kEgEFW2zQqQi> zd*P6k9xJgHA!F5+TEf-!AILDO0$1WO;Sw9A;Eoq(j^(xR*R3Mi$|J{v^dLTaN zc@Wu$`ge)?b$m+Cz^}c-l_44zirt^zO%o|%0088b0llWo=g4lsl#$GPxKQjb=x$Sg znEn4O9&e*&cbhbFyr2vt?B9M{IAs>9<$5LEOkjTA#ks$^zoz;+jY(iFF}g|u$eUKpPUmv~T?D7vVMZ2t<~qC&>iaEDZzbD4 z%(-~`ky`M4VOoXQ%5s^a*6QEb`L^ChX6n?&d4#PVDQ6BMQk^U91n)`i^u zt`qQxgjV>4e0w2bAPwB>yPy`KDihXwQrC@JYWDH=38sqqoZYt5RfS044jHvzA#;|T z+kL3EqLxF81~`wV(#7S^)G#Zrf5O+Q zvW^k~7KQ1mDqU@F_~VNwz%hjicnpvJ?kMGs(muz&9^tw~2Dgk1nqi^Gj8{G|waDv% zC~Ww$n}hjH(?#0U$_d_Qzr<0#-v6xz_PJ|GyxWITyc7;>f83jo|AG7)ZxqoY_bopc zE^n0k_(-+)_5ApK_hoN4ynSUIGrm|o*HqP+A8?Xu)WDW?*N*(~9d)3v{9HIR9N=8q z5nPzV#WR_I-Ujh)GV6aEtED^-rhm;SHqpfOJJc|pTn(^w zC}IcY!V`2^5}hghWEF4kt;zB~C^opYzD9nXZHMJcJJ$9@HjSjwC~~;ri+gerVsl!6 zcK~nIeL!$_=;_*Uk~OAkq37g?E>0603Fo6lrsVKQC;=fZx8cEz9Pe%9cMO(T`%G2m!p}!>!-t zSDlB&81D2|9G9291!wm_4Eq@>lN9gM*ro)`mT)6B1@C6q|GJ?8$0E@opa*?3YY2lp z|DhaAxo<39e|i>EMU(m=wFwaj9ZDU`c25v(Y>e4ND-zbv-UpF;NQ4QjUx06Xs=A4k zs%t<6H!P*0CVRc6Y8@s0zt6vb9VH3tnvP9ns0bl+A5E#A`J798rTBIbjH{T>($Pb$AMZ#gGyw`5LUgaCVpwE0b0(ZI zW+T(8vbM{C^X2p1`6Un1h)q!TK!+)0nbTdh_N-O*gg^9NuZ^5nmXle*vM*!TUv77V z|8wZwBRpam@BcuvuTi~ReG*vh4G0LdpGKs*v#ygVA>J{pAgPtHHl7t%$OJavPh3Dj zgj3{vS+t6FOfUEcG~Z|PAF6zAWYaZhm!L1G?TRtzEfQSc3}$&FB*Ufvnf;XQ zx4|4-LIyLG_;;&I=pviycxvCF^I% zS2Si+&`i#2UXq;t;HB@nYdisUZ|64h{R7 zKa&z*fNR(k?l;;rof@|*lHHieJ*sDE^v5SxlCX5-*;hRTu{tOr5|pmYViK@VRk~V%dIH+}JlT>fy`)!9TPAK<8PnmMKCr_(xSf&5<<9A;1~se0yE@ z-}Sw&C|s+CI8;_!ALogdl*vgG`|VJj4fOpVMduyO_S?qc3}WxSQxrw*J!8`vQM;{D zv-YaJ5~^m+4ttl_)E*_;SZz?m9@S8aQi>wR@6G!+IljlqNuKAvKcDNGSi;r=$U-*0 zOXp^?yv$n|9$6!^_9D%2B-bP2hloy_8Wst3qPeyr_X}1JNl+H{(3F)y;uEDfe zMC4NMMH*_i7m}rD0FpW({QOj;xSVasgWmG?WQ+l#es?e<#1!w|B+kk(_D}=WYg+%k znYj|1=g(ftn{PI8Gm+_jjnq9ISz`@pI^&it0cWYi5*xvG7w-)7kF+(bt^{WHcDbyz zO}LLaT?1$o+^7pg-1&(&2@s(F#Xq|BCtb3jOV-^)8G`0CVPe20(i}Z`@k*wTpUn%! zJLTY&V$@K(D2z}lc`z`oGTGLO+W7lb_{45Cc2^JVRAJiw*Re?5sVrgcegKOd{ghx% z3b_09;lT8tchS~?)J^Yi-pt^FKBArk<<2xjg?U9|?X=cu1BfUV(6*pM&_UvfY1Y|w z2zc<-e}DzE%HT7FA2G7R&pvvs7ow=yLFD7l-7I=r_aD^|C}VXa09rj@;VtvniUBHz zkWz^?T9h5$jKu`p-g(ZPuI#E<~`@AeYT2Yy_rCt=c9^+ zfdWM!vu0jpf%B3ozR&7B$P>h05=}zP+X7(qui1XQDi7bgjQhJ*gQ7oe@X9B}73P1Q z&RAqcPflN(mEmv#e$`Z);#C8y%^E~!i`WjLLd}sVt zCXXhxMr%1QqFCRZJjuiXul42uv`)n1gWk2enOn<3gjzCz_1zD0tjT2+?&=Pz zXjoO!_G*#1hEK^~Gki97Et+EJ%^Rc%^ZQ&#jng`}3+aU#xa{x|V;>8{FUQMBPmiT< ziuF`~A*0OtG!tsO_?EYxdqmLP<4oe}GYG1W@sB0ZR;bGIn^uW6eJc=>15jc*wU^Y| zsgLboy{vIPA*e*YE)^IzT8;AiLbpz8v-rMyV5fK@@rTNtiprYz-E}K!W*;*;Zc3)Y zZNVp6{{i+>FUN1*1B7>>d|^uwVe!P(XieRPoVlBXqBp7;tvg`dkDFie!G6!UPXth7c|PZzukY3C~BEvCOvw{|G0ZU^&FOgg=4%Dc7D9^DU3D;fg z?Vi%gvvUq{-``Nxyr)w9u)N5H=4s;f_Es$6PhH3(oTDlm*-gtHd&${?$BAkN$0EV* zl#)X5+jbTip_19Ov;rUVwC;QWwPZM_G_0IsHuTX#B3g%%V?toK*kEUWPi}AmRiki9 zfX>gsV~npbH@BO{W}hAsd3?9(SC;vNb0pIai1mMgay^C8%Q3zob#{&YfPW>qiZwWK zaVftf+78raM?`vJ=nm)ivM*v;p`r^a`Mr;>(6 zC1tUDH|h0z?tkLh{sVk)&<8GIrkeV$2*Z2!+6MAuvo4NW*#Hf;- z^n=*zHxd36yh^e^*lb_vEqtEX;FjfT&H8pjpl0vdKp1{JRagqyF!x!JX6Esf4$iVVT40 zh9kik_n;J(w2~wqK6u=xU$nA92g5Z<6Qa<7CwTEF7c4on1%jBwirdR~uI8L2Jx2h) zp5-T1O0Q-{g}nhUnc3q~ayD+qyXWxmk#M$-D5Y%D1wEM=c6uKlqPLz(T)Xik0XCg6 z4prn_-4}_!AZH>#CDw4MUB+I^tmsb+Z(jop+UqTyKEv~`je%NhVR*NPY^mNrNKzne z!~qeZXWeYMD8$Q(1Rb#pQ4CBo$k=6UsYcxsZSLj4S8@7PA(~4+4M*hC|H(-~4Bq6! zIfMi}y#*bdQJ+xs0QJw-v_^wU$fvu{2caGf0S62kH43%NcefHXJy^^gx%Tp4+H}|R z;74K*xCrl-xXA*!@dGU{D5KhEdnpWvcFjuhPA@Ezd3TH>zV!od}e$00Bg(WeS{G= z_IOK4-WnQ;*>Ug$F7_EgxL&i=aR3Zj?isDjX*DtC(^P>kB~aQ7wu`rILj(#bNfv(* zVbcC#Ld?oug5RKv2cpqdA#QN}Kw9VQ@9#*Wu;fpJ4Z4|hvb99Lw|Wv?vz<64q$CyL zt(m<*QNtE{tum7?A7L_q8Z~Z7j@Qp|G&etAmOXcwJ9}#MLg`+I25l63sa@Uf&qHQV z0NxS!Kp}$z$qO{sJ;pA3pLj|=;CMy(%b5B4J_x;O57Sx@$ho|Crv^N`Y39V zVCiW}{b}~ce!y2;FGSO*(AS$(qfo1o16hwMwEjaH-E&nxnYykT==U}F9(H$4bn^MBL$X4>{Z&$=x}9D8-C85NSz=b@Hk8s{72|w57leq?^U)Xy~K`mZ;iQSTMhXSaA%iBZ*_3&Wu6|b3PWn_G!#&J zX|@M{5`Gq4C86l^r#3#CNUQ*$)uztrk#6T?Eh|InW%c%01I4wNZ?c!oTz_+=U{G^z zo%>z%9U~}UjF%z+AWB4_ZZQM0-zTQ>=!1iEvX~v6Zq^)S_f_xlO6OMkZjflTy=hju z9!uj26%Y`FaY?RVL(*?_CDDEOp-;F9wIFchs}%MF`d8Vc$43-$rNAWn*+gM(y^TV& zlK#hmV^T)7f^jT!G1(qFsN!@z2&`=Gmdx!C0Qh&~O}haiS1|oNKJ>JO!G>cDA%cvf zjZNC~RLj6i_{j+br3@qiYD8rx1u$@*xHy`qAkoXs%;5Quc>THJe7Bu>4UdKnAB|2^G?A*XU4MZ;7pSZ zwY40;dd&P3wB|Uk?Yk!~`o2FT;5NHZ)TG$aIFa|0=(#n@vUh~4r+5k#6ybdAeN*~5Q1+q zRuz=fmGUGbNJ~yGnX>X_n;Tg>2-7dqe4^T*B5%!KqloM6JMZde;V`H-1BQUT2DmnAaOZ% z`!r@Ss$@xw&@wOkLgqJsdj&SQu$^8S(pjq}23VOo0Ph-cjO1Z#oBpM$V<&n=)-PTV z<$_Cwp~Hw*{V|e7;z>U)!^VEYn$3p*QDYxoMhYZxk;OY1b#gUEAmOFi zq<G{1QTC(6j;XSalE4@R9dTrtmm#NP7v>ACT^aNNGzxk8GwdeE(msX(Q$KBJ@e zg^Oerj?xAAg-AK|np4v8y6|XPY0uGN%}{h{8-J9)*|Bl@$Q!X6%LR=~7!s zeq>&Fev#r^zkw&!IcTn`11WAnc}D7F?yup4(YdgHSk4?iFceJvlxCmS90!(COD`z!8&mPU5;tSwo`%k87!&44{ErHb+VlydeScuf_@q*sa-Ew%X_Px81 zY8YbujUoc#h^uQ?BLddQ+TU-hec}1O0&HA2bTtC6=O~17C;4yU0oENT#Z9zRX~V&? z0ZP#a09VBMcaSs28gn;y3`kLQI2pB4cv(FxTU$&`08pbVzT3c3v4Bz%C}(RH&K~Lg zJu2+wO1FYYI?1gMcA=D?@1WSNf2t-O+_j~o8_z{M{E>R3`10#=E5f<=vG|H2Q7gb33`K7FYwzW- zZuw!&JLkJ#AJ^8=9wJ}{wC_|4RDOn)h-;}m3+pP~=1%YXibS$SCKRV>D@r_qu9KUt zo;;I|53tY;x^Z52f}H`XErzsumu)6Y2CL?5cgt7?*-;NOYaE{q$5FT{%y)=UDmnS( z8dV8zbT|d9axUj^) zb&!7KTf`!>mYl?uan;yH|>+ViU)4wyHs(X<+ zkUt4$Z|PmNM{lDQnUzTXMv+h0r+lm8z*0Y~b9Mt4hJ^F`1;2#?7FwhPG#n}6`ZFfS z5Ht-0n&Wcu;th9j(!D>oWYdX(rw7T^f@^-=mXr;ys3(Ae<=*AgU+7EN=*nk=UJ|Q` zP9M*p(RH=WEGdAQ{Kh@MJ~Yx`N3=zh-~KAKQ46&lV^@kod`$Nhiv;Q({qVbx*c;2 z&6X^I?%gTt-3QWUKao*hQu|~m^vWeJK%Nl@*HX(Nznxi|BAiQGvE*C7WrAah-E#VA zz`pT^ma|ENELWE(h{*Ts?|C8b#R#;lt@s+f(b<+Rn*_@K)G;-b3#6U%mg0H5_HAn~ zbjjTzhJqw4KY5&0Ly#jEKt)7CaAQI$J|SXm@%{*BQv5jKSC6*R*z-IJ$O9{r^x8N9 z3i29%EVrel9B;9Rmboj)7!&Vp_ZlSDy?Fy9wd&G6jZ4K@l32(Gi1vkduTvxn8X%N67`h; z{~|2A)M|<_d(N%)-I5Va1`?lB5?1_%*NysKaF&iIC;Nv$_g8H#`~(c=@ax$qB+f(9qD{N5FMP`J;5DO}VD4t)Ax&X;$|l&d*NlyvJXmU}VEioLzO-WBCRiU>SDylK zWZgv|xj2+-k&eH;o(ZnHsVWDgx5NjDM!Q|Q>+ z#*=cKl}$VF@7~cgKDgbv$~3F5s~S^!Z+8$mgrJRtKt3)Z?v!0)IFbPeZ1IjpA9D1P zSw_Orm|48D@Zi?9FkvBZjShe9EooavyQ>v+RSC+~`!-Xs{~sT9?8u5|C2EmfsU={d zz*A_K3&xHJ^|Al`toY_BHCb0}D^mft?oW1kyOAZIo-}P>$$*q-FmQ!UFxLVHNZ_#j zQ0Sh=pKi3cZ|XiMvXwJjLN$}Wt}S0gE8sZl$1`W zzvOu~&av9Vm6_&Sl04}G+hPT%emSFCpa%-s1$^J(EP$uGZ8>d%~(B8)LvUU&P8z^mA9<*aKIVAk6ss7ui&JeX0^I?gYpdJNV)23znuYV&})?t zJw9*m$4xXRGXX+Jn7eI0&{ZngHR8n3Y}PZy$C#EZ>HBq}GVlJw#*L?Q{m(OjfJP-2 z$Zw{7zw;7{>g(H8go5-Ik~38{f|)jI_fYK5F&D*fKa{7IjrF#E=^2ymeyLf|zUC$K zN$F)r)-hc8WWF@oyxNdXn4xa2U*5#?Ah?aj`CpDWT~DrJen}-Eb|*up>P=0#-p`mA zcWokUIEI&vD!tM4aL3_Y+@rtke3`BwjY&_31+$p~LhK<@nw~X(_4R2+%rfHqs zx|8Y1!>gfajk>jcVen>v3R$I-c4L9>0Mkjv32)IWBBgPWab!Be(xlqRyO6kBaClQ< zwhMpDDN(Q7ho@1eahdrK5Tq54v^KCfnL81&eWebKy?jHQ`s(9ODdmRaRT%-K&kUY@ z6g#$8=QFPlDFR7?s?D$X=B43!q}=mNCq5244(2=Z7VuwBHeTfw-9Kl;d;aS$yn9F; zlDZLN{~w@&Fi(=H7wE-84D9Qj`rXS9{n;@&%SMQu`%V1QCg8Amv#GrZ6O)Wm;2y)u zudDg{1g|3p3q*nu?_3Xik>+*6jUbHg(el?j>XXxn#Dz;$t=z0$0N#*bX5XJgE%qt4;cP}A zWq;)PdPM)ZN30ehke$bGEt+lmw7x6C5AoDQ)21ykAPs50u*auS^6loGVbN0DRTf5t zI1?`}F!uQp6N8z%sG$)@{PT#(&s?@m-Dy7J8C+8_;Bz;5E@NUiVpWyc zA+nTkSF;x|4D(_eT!WW z6c4+8IuaN7Q}5VKK2U?t=FnanEP<>VH#3;IA^*OU+f+?ybD1<&Vpg-OE|d=Rr3in{YUdzA_2v-}7BZQH|9%#E;wen5tm8O{mSFOWeb3Ft7BE=5_br<&b8aIe1qZ zdmOCU^ig7qOfNCcczgDy=Ye{@n$cX<$h7b}fwJuv#eqV}k0);|*D_aUlmD7shx|l{ zl%Eqz#gUCY1uWKAS;-MIZP6`Pim)0kK&Ix4UnTqI8Ui+iKXWom31s+V5V5WhfxnYW zeSf;B;?MlycVh%Y6-|)n7o_%!CsAhOT!i@}fZ1i`m6L%5Ve&|bw3Dfr4YgxBMJV|; z4H>nq*bxDHE?}?n2I|yf>R$D~|1?T0pXi*&b7|B)7~EvvvFMBGTZ;Dpkmguak-Ogs z`fEWfhTw(Jr+(3KE{~1|9%4#PO<{k--whXS{Db%zPw*5O45q0QwS6Qsx=cr9=he01 z+ZMRqgN@Y-TuW#RzeWtA{XRU785ul?}S zXQTkH=AK39MBS8M$rF!Je$2wM|4%CN)wV}~YEdBa zReqq-Sa=B|LNV4o!`I^_0}Qdap6nNE690#pu0~|+VK`sx5CVY*+Y;5M2d%fnN^`fO z{ATU%H(rqFIV$V};CtBruQM8A_e$XU-)c!V{C59XYMt5L-HMu+Uh0L_O-d=0*DU>v z58FOXZ{B~h5ep}LG>z7Yi*e!`j&?kYMd3#Dst1OB-!C)Nsr8jO}Ct_+>_+j)E|k0KYk5YpYSoWs^4p4nhZ3s@c`8q1~DuaKoK#n z@;LP;?aU7by*LmNsS3k;j9l@Oqj|nf=P%~<4;x~36V!D8FgHc#eWlOMt{*~aU$o2# zrat`ZqEKQ+)z(1`{330xXO!yh2Yg|?zXGE+$w%VkJMRVtWjaOsossj8f(7cbXhCtl z$62X)_gWzp-j#gQWUyI9S0rk@p0s(%uR^)=8{`jORs_oB)uIo6*uKEAfmb+PqW}#7 zA9x#%HH%NDuWKu|#D3LI33;6nJ35cj^oK6XxPkZi2c@i~o2eR<-V zL}T5{fBTz(N<5>hRI3Ezi~B3ux%NCJ`a*F9f?Qo2HlA@|*zE;$P7ls{hL8Bk(H`5~ z(KM2)x0*cV*4W}N^6x-H9E{B;B|JCVnz*&CpWif)MB|x8Az$L{^CNvvf!26?Zi?{Y zku-OLh4xS8lIkkn9jz`}oW|dX^e^gN!ffpFh-Vj!`Zw=4^YQEO1J}0qQBHidMpf1p zL&pU4plN9>{htmfgL6K;^po72sK@q|HP&ZzWEH>;fK*!dBdE_M?2E04HFPfK=?d%d z6E_jife0uo9%u#4l=2q^erg(&wTs~Y_1LPpP3n^+qufNU`2oi>_Q+=i%GafLpMNHy zM6gndUmgq?a@?ndT}bhne3TOWSf1?Sc^f7n$6k1bxm4^JQ+@5Jzbf(S+?&*ivOLMLZRkUQTh$)b)6s?rNGAOz|hEXBVjbKFGmYrj+KlPeol$ zSzw(mRqbmNpQ46W;FW0mFEHmEqx+B@l{0OAVwS&E6gL&t9i z^8~6h`LON*srAgLJQ`LO-A(NY3j5FU8OhSI)}5qqC3UO~D_0ioRz1?1ykEdmroU7a zEt7_19KTE!lBT4YgMt503V3ELF`+gq%VZ7Q$6?yHh#12{TgSEcA{K|2KZC12ZM>BXGrahCMIwA6l4aEN6_rXXYi1bB43LN2)y zuC^kYVx*uiP4O>NOAwhEfnXQCL#aMb=@V!o+P;Y+)ngjiB>w@_*5cBm4sn#W@+5(% z>)l@miLp)PEgVde-P~$z&cHoReIYKw;4WwQa^Bw|#IRNkYnL^|Den@F)VExqieWYyY`uO5E6luVR3^MIaTIz~!Wx%pMy zOS?c&nP(NhhmbC%Sr!5A8jOb{&V?1!KEHF+8X~TMy+N!$HqD#9eL~$kXu&){HF$O9 zT){W?e=8!`uLFKjP~;%RFwrU_TQozrVtt$wC#xx za17sKCZQ5c`E^eQ;-fy?hg<$-zFjNJ)CVV_mvQ;m4HdHw&k{)x|7@P0eEmN8ql5_U z_8l9bcYN{XTRnbcIjtw)>w2M;zSUCv66=VjbgIZB;D8}*c;DYB?Nm6xT!UoU2-n+t zz2zL~dxTf)*r!;1%1{ zXg?4j31^ZhpmJ6Cs8e&Q+}=~*xD+$T(Ud{o^%NCIbEK_D@!&o~Fs^pDjy5P7&C;nr zbF`_gwFFm)Ov5;U8DsX(0o+>3a$|Qu8kIdhfUnQ)i@SfB|0P#}`BZt&Jc|n>{Q4m&pYkUl@9! znT9rK<-UBT!Uz7phc;TL#WSkH_HY_UkH6Mcnm<0HXmVDGEJX8@M?BkFZz}+FU}d4 zzvce44RGs&ZFf(KVMQM`af#1m%yi%zSrFzI_!3+{ zsL`(7aQm#Q{Pxiz%Dt2EjOWSrO9SD-_XZfW2(?36ERQE7hf+GL9Q&n%I(M=uK!JqH z)v7NWHNv>2u>nSSafKB)GVw_5s8ajqOZS@d+GtHo`>WW{phQRNN7#R6=`Qx--;Vri z;66hcjHT1r-q)2U^D)FAZ_j(3J4-(Px|&u~;xWw#EjCfBM^Ly_^1DD<&vSZ4^c?`F z20lvri=yoq`>W>fd5*<~?c?JxB0;_77#odX$RCQX63{#r$ud9ImcMx^d$;;K8!40R z#sxCn`zSzVf&y=zuD4MhmD?LVA3CR!WwB&bkAqt0TFFstcf;C9VOmaFqeuMOZ=lu^ ziTli`p7k}2=>kJmbewb!vt)a!OPEyqyJLoE11CTnuC$Cu>03CgY7R$`t4|#XV!);W z;x?;x=UKRxNL0-c`P{vb;hh*LC3-`+Z&;g>p5h#eaW-XBFc7i@b4WivF24Pk`w2Cr zxKx>YHw>;8Q-NA{SJNf)eJc2ESOPFx3Uipdn~k%a*LM=J{f!>a$!Hs0PWVQ`&b~=E z#}s-*E=n2<0O}Js_;2}Dn}irO>kf}?B4|mEi5j%6t}R<>>h)&D0)Dp@_UL*i2CoC_ z0e&|UPGL<5h*uNKHpO~N@f#Kw``48-iF>PsEkKk)XhaG11*ZCnX^TrqFkf-y7RUZG zkviT3d_if|=q@oEw=6^A#_IcmgbPWs&#GpxUSs-1o-F8zh`Gml34a+!^wJ^ik zNBs)@=qXw`t&Oy$F7fH|kdd+opic1;hVnHM;Q3TflPQK5jq}ORz$%arsKF%u=>ycY zE&^@8W9`umQ!Ah!Wjcz$`SqYBgT@t2Vtwm9!R=Q+i3XGyrZ6$ zX2e>)9p{6fHLCDGB+W;0Edd{q#0)cv9~Y-l({M?BcqzDMCQD6siB=DeXzZ2IzxY>}qI{8N3$zMiT?!=U4Mzk&hWuN^vwnk6?#FDmP_jv}XtS#cTn>Uw$GP_vJ!+w{ko;E7NO>A##u zAB@-l&6GZLkVFhEW|!&%#rD1eT~E3Jqc6@!YZOZ*z2co?gM{1hUm4NdWASt9#W=F2(4T`xAy-cai~gMuz!Qz_!5 zIy59mlW)aC1VdU(evc_mIFd$Od&4lr@u&6=P19e2i*r>+3CN08m_dV`}n(P_vIr>8yi zg?N5S=jTBK>IanaM+XHdw8Y6-M~X?{xL(!qE4|xEWPdY#f6Ti0-xCx0JNz3BUO9`R z95G)UUJ`0ezTGVHX8BMc6G&>37L&;?Emt{PY}oZRBY+=S*XZ(^>v*j9jr_?cs!Kzv zEFDTe1;K?Hc-aRtD%m@Ct}7kr@ACUCu{0r65JqycSkcNb!O#_|*Baqi?UBIj=Untw12fIXaV5#em=X%5j6-2l;$7GdQK2yiJ=;;(y z=GQgyd!%p$rT1LBBmtT^dl$P$%#mU-Kdin>QI(Merh!M2Kun0pbh=BuxrKlZH&-QU zi7w*xgv8t|J&`O=k*1eFo{HbH2K=GZ#s&a5u(A>ueLziNE7nXEgruDwB?{;{K(ZdI zjM8&LnsCv59->A84Ybp9Ig5j~cCvDvB}8kq$X6C1$88uAt4{CdRHyz5qBL$*z(4c% zWNBD_6?UFWh=q^4+S_3IORDB*HJ5$5$DOZWKWBX^5xp%!_hpt&WYi{poQKxq#-;@w zw23ChkFFp&Lthcv(h=6J`wqp_=;Rem^3x}!jpIUe;Vlv+h=_f4XB0g070@x2epdUqTtXp&&B$gy2(}>;~O5%WDqJ>W?gOOLs=DrRNXL zj0~>J9G?9q&hDKi9`8@f$J}Pqc})Mc66cx3GdUf5(qs&vD7{aY6npXs*mTcO08^Cy z=He3}I&@Yc!8X{T&-qtyQBalH*pcSFnXB9Bxtcq~S(DzC0Q_i2vc-#MzT((N(`c9B z<+~|25@&kFA2D6Wm4<3lpqR4ibKmmS2#wf(U#ovSoG6Q(p5Nh_cypm0!?b6~n6G?j zC=-9EX>+pQR?|3IQcH&p{+54&pQNu|f6`>(uL6y(JP7;#cIO7T#|?OXZ(b-^_@uKz zVZ4nN!NGJgcurOa2WS!UrYf%0ciSn}22GwzNXj1#D4vu|tK=g(${wm)xjo;FHQZ?- zPpe(cBPiYE&kw3pIbX}7hHq*ZL!V@f6Z78;oJRL+CTNaj{sS1_O~olbX3{iq*olL! z*09IkduHFOe93AUNC^Y*0jrO*PeXiQaXRkYAIg#tdAe7>3f zSFAAQX0gCx)#&*=Q%3tT0sbzQgBh;v=2EKgYzL^sqRXxDdUkxsv76_qBEq z6&uOl1`^-GY^KhLPkqgFP4}KA*2H_n=PolSE7nMLMu3RSrfsFUD`|A_hud`OT5(Sy zPR`t5DZ0P-WqNvrCn=Dqxfh2&Eerv-O*9?Sk`&H z#j?tGX_&Dm`ANrT z7L47OZW};dvo^bP4tmK&X8cu9iKV|%HF$L2_xsl&Qy#j(84J~~6+qrf<7S zIJ&xPR9_yxWY6-U!1Mr{wSbty$TT5#Fj_^K5FbEHzH99miORi+z()nep0b%x0e4y! z#f3Ghi7*PeB(CR@00@s_v7;hhnunpBE<21)%U)a z#23H^7=l$b@)ff?ul~O!I3d2`*U57ej~x`B$Mj7uW5Yg4K;8wzP0!UM^JiYbtprn| zdunpnfq0+~rl(#X+o;>jx_pR`XK3f}yp*l^XjT<M7Op>`qwQ2wH#Oe3c8;U7kM6_4z3x!;Oau|8&dx`816qJHYDi&djFmWHNyp~`q&bN2KWRhu2Y>*C!8hSC@5K@06roCB$9wdkTyo?60lf%((v@G$ocP`r`wHByBTDm-{*+tu()M=&&HQTBvS~9 zom`YQA4~pf)QD}--k!W>J#h@>>|obXxFB0#K`5B*s+tcpi`NKmhmrj)z!M6`>wVvj zZIC4g^3<&n*CC!g-)CD>dy~|COLZcW%n-D~nfW-{y>WNUj+edE{g-5aaa{%WCVOFy zE9outgzs>6N+&wry+WO3Q|Ty?e% z)jmb*G@wHK;sS-GV)nA3?t&fPs^xo_>>ca|p@rCJ-+g$J-^+ZDqU%zYjtcOBus9;cCSJ6t}vdpl|_tdFg?0lCv$9 zIX0`@^GOEnqVgogg`~2@nvSW#uEA*B&D4IEB7=1$LfSoEP+sBE_EHP|dZqWvmAiBt zG96vKCBMxt@N$|N2H-WOCC%y-v|7n?vxmu4T}Y|CJ(XujoDvIb_H|W#{+Xw&r%d^# zc9E*fElIc}_xUNnry!hnPZn$!d_vQvs96I&p3)+G6bMx6!1V$LZOg;bNBekU1WxKfU z)SoFd{xtp&=Y`Cz$9!z**t&|YumdZ`E+31GyEfb_Pp?Zt!Bz}}N7Gnxx8))cS&>G2 zjg{17?c=@E3IFu>ag{}lB-1~3qLrr@QH%!1eZ1! zrPujAUm}tl=JPhtYa@#dPT!9Q(|y&+1>Q>e3A_1DFF*b2(^bb)l4&GD5)&dcMMl<2 z3B?Hn{7a{PLc`g_574vUJh)5>wc0*^QMjJU?VQ))F6giZfE=`@_asJB2Qclt5PGAx zIiKeV)Z6^)D6u6d6DOJb6I?|{CZn5;VFiStzMfpX7d&#lLZj_SP_66m{BfdIE(E#= znY`BErxFDMpM84$u!WWQjkNoQ1O+DfF0Cc5wFJ;y9lfrIgG3zAhuXH<46|~=fr5*J z6|AFZXM2-AYNl+pAYdv{$%CWlS`|ISIN|H0&xb6(h6}GKDN@RP3F+KfAF3~0P!D_Y zlrraEiXq7#LDKC_c6M_mC9EJsjzTcg6JS+{+P!7n@)F7^=SiCXtAVp=2>|)BCbq@0 zA_ey0HO%W4H)y^};vAXzMKxFxpDz|xu+yxXl8p$zuBszRnbZvcn|s2g&tB{l)sKp2 zi(l!(6+z{RqGrLQMe_)e(_XCNdbh8fRu1cFbWZ((%-JBbUoymj}CR$&GUMXXwkC$2cDh)u#T^d$fV*8jwo3 z_g&YyOMjC!$&M~BFYr6hd0Msaj9XGU)CW^6a#nl`(wcvf@Qsn0`w2r6M?BfiTvPG4IA7_@(wm-f8bQcZn)JQZ)@6@Hn-JjHsSPPmI2@{`r@ zuFR`*KB5PS(pKt&DgUcM9UC%DdIhv0k;C`m3%MhZg9l6VpjovEBK?my3DgRNUz*&R zOmbKe{ScmBKlC~{you$OaZ1Ch_IWAJGl>=IU~HfWB?A{#Z|kMO<92}P07hO% z(ZY6^CS2CnOTMEiiFTLj4~M)JfF$yjO%{hOFh&pdqL+S^IDzHRx*I2YEK5^K0<~1F z@#E#Ey8EU{5GH5z!KBz3+1}N1BS`GT;lnq&Fg^5xrZby=p{fts=lPAZ4a<yO1;X}@USs&+2Z2ukcfR^qEFLqr08(3U5Iw@n0jz!Rlcaa%xbWWdBvM99`Fi%*QyP)gk-^?;{r=#&+O=% z+GX3!F%ShVKjBb*r@Moi<>xsMmQhwCGv$~#ZLOYJo#JB>T_FG)oaI+LA_4V%Bn zKgNawh_|%rV56`7)zD*u$^%SR?peoT!ppHNS3}KuFWHaf=gHEahSIWmBDHG=a+v@N zLLVEPGyw&-`&CkF^$Tb)+dYW1hqK%zxzs=>(->!etho@@LLXMe}p<6-xoI!tL- zupLVKdx^{XH&B?Kz^hNJ_Cwm89P)T-u}G;AXs`nN6bUuMU`;|{8LL{dyzm2bYoQ(9 z$^>B=17+-dG-AguqH2=XwC2PXpuGIt*OLWC)o;T_KEEw^sQHJRR6?vqXmfwv0B+}F z1PD)H>gvXM2TEgU-oO9~%5ghHK<5`j$gA*kgmv7dH;}pIs_SyN%qk2S2kidM?V`=) zXDz-ZIa4}exH_9OXDi*}j1)FT+iCjIS7eJ&6RR&DM#sP)@K!l@;Wh@ce9BzFe_{7} zJ6_vWW1Y_K)&Dp;?{K!>|BWXxV(-0@qIS(%Z4tFwDq5>l#VBfzqSQ#Jy{p<7wMVE~ zv$R6())u37Q8kL%1o`~V_xG>3bL?J?YCLINmtdT=V#;~ElaiTZ|qa43=w>4A>7Th*BEz3$qvEWFT zT(C`Lur?T-b@@$xspIgh$S{WTOdG)cLHnHZHj)aUC-(x2W? zA3BAe9uZ@n*=x^RF4@U*G4%{axMvo|AVnka!a(5gGXgj8&pQ zX6HVbpI$@;dgN;kljBAoFEi1u9$Fk4X(d?S>R_zPE8)IK}B% z@zomal8IlxXl&v#3%v;+m*~A4*3N~MQ96^4r!1*Zz!A+6dO-c5JcUKgS>0Il=&k+xWxzatfpF*+X-}1ie zg!d;}T&vgBcRlF%6TeThz56KlHs&GKb)!Fm*B;fAW7Qks_5R&U*6c605N}O`Mwnwc zTN2ODB7J|>OU>Sj(ll$^dZ;>^jbVSRiITwir%4kHDM#hWf75j)#c%we>C4{uCid^; z0h|Y&wN6>9ca}jha1B{EtMY|#*SAbGZCJ#qzF|~tT_|hysGNct+2h6jM}!7(3&i9j z%(M6LP;ri-k4>1)l5gkF;G>z!C-yq2pJO#EJcB-?1PQ*bUgb_(iErfEKDG}QfIxlR zkjwAU^QF5h%NGwk3rS{$Q|^X%G=)g}QsKG^s{gF@ezpHnzc{PU+P zl&5CPI;ySYgomn9GAqBh+FnaMfI@goN)>eR&u^<}DAGcx`O;&#pC-YWlnTIJqJv~N zc02gAUK9l?6DT}}oba|Rv%$Om;G25B*B{5xpe7!bx-3V|$Df936c7i#)Ce9**ORFK@NB$I6kXD*XJgS)wh*b)K^)u_+v~+x+X=i@%L9)^0zmM7f9~@^az8KyGVGGAMW}$rSUrTveB2WgM9$5FP2sdS{rJPm^(|SFfET2fL$un`BlfzYdy)wIvEC z^! z95ZapkC?ah|C911)oFO8>V)s!A|o@?E;%!njxi^$a`*Z>{8M6_{rALEUhj{Pvn#kO zn`vIU$y*Af<~FX#_?4ym{D;)P#h|VPjLk)LQrhG6%luvVp)MO`MN;07b4r7GesEtJ zNdDb-712JEchOz`)F^rorA%y!y8$F_YmFkRYHaY~QHP1LB`)wGI8Tu_MyC-Kh}s=2 z;G>^2o~N3_QJ7r}RAkT;&p~|ku)i!>{U1`2v!dc7IUS?;nN*qCM%l!n>jHMfgl0Mf z-xHcqB)#)Ggsok_s3%zv%A2i3Z`%2`oO}Xo>%zFB1fo30DJAT!-Wl-XkVE)TH+Nig zpq4J&oeud2XvD*g(T-6O(sjOx7jJ&z#kwISALDxk<>(60$FYH=M=l01yb1_h0$BYP`E&Gg`NvrF6ThA-9Jzpl3 zRp6+cD2Xfy5RBSlcu*Clowxr^XmMp@>bLgb*RG*AMNPq$@w+}J3;a2Xd(A+vednl`xR`9k;{vE-dLMbjP>d{mO-bkC$tDR#rYQwgvztc z50unAwy3_UwKsC!W82s)w?KMU)z8;IcS|5M=;VVm%M*3)Cx+1ZQ3Fn+IPbuD>Vh?Q;|z zp*2K+P6l-YH<2Ma7%P9-b9%j%P?m5#lHks_#Ir7;b_VC=UUC0gAbkT7{Lf@5rf z`RqO*;T)Y-G3q@U1!|98VaBv9%mB|WBDiX97>5j+>pM^X@}TC;gjv9KeUPty$}y** z(u(94<7(JwRxy}V8WRD;?VeC|Mtsl?R_QfJ9^E=;Cs??X1;yllpEs^L));O7II&%Q zFl!ez0g+Sw4`i1$Qtn{N-ddd)@H*wK*Q1KkzhQM|5tC~q_mGh)uZ=4IU}A#aS@wUR zTI8^dDMb+~F`a+qI3$guvdfzjZ6EV2m_}u7q<)MPW3&9hT=BM=#gRZHF_h@8=gd5_ zbw>8_nP*hMt#{*-pK2lQ|)RqAYWtcC)lZ_ z@`hIkzL6%_Sb0M&gU*3=Q{EB2kVbdP=|b=2SIOlrSMeruM^8zdmYN5A^guPQKxSDz z#fbAiQ0GX(+${^@tMRP}&T+3p`~M9tWEXz+uAsN%PQsPYOQfeqh;Dv7qf8KO9&K)B zZ^l-gNyl#$Hvihwi)@a&-LrAozww#oK_uDwXUq$KNF7p>ALP8v6OMMf^`<=`a0r2) z;F)dBjwzni>v<9=3jIyjI(IL{@HBBs`q|O!NOM?r;wzl-v<15AM8k;h< zc&~BIaOU4J$#_0kbnvGktH=4qJ5)e07KrP)O>JM?h3kJHt>7vIt%ubJGvkqS1v0b( zakl>d-(m4j=4pq*^P(FjHjR8F+HGEAuZf%WCpTm^HB7mR_$&bbKhfa{@lCZfQAE1*GR!bYM<; zcO3Yc&xaG3jhIyV+4daImG@~Ai00Xh25seKdXc(cbVb*j+jdM`r&M6#?@Hv0m$2{URmRc>B0COjfq zYjQ=r9^R4JTr#}rQq$s1_x{M>9519X9)`Wa0;+!fOQ&x34d$9{!cvuwJR_AaoRJADFPe|u7b3Hd7f_+4!;=GTmYa)`-?|aMIoc-=X@d@s;`kLm{c|L36SBtUu>bGNJ$M z*BK*jcvM36l8hj+Uel5HRL!g4fejEE$b2NYXJHJJ`%=Dn;C9AXexNX~N6J3d+%J!~ zV_g2fISGa*A3Wp^TeJy)Ene7+_?0oij`s&iq}@ZKEY#?ciiRCuxS?D9Sg>uwi7m0_ zpCgBwZJFq=T|*$ujl|Fl3|v@gCu0EeE9CIqYcmwJrCvVgR}9=&DM8WRqFO*EV;B>j zr0TUJ3;<27OEH=MK<=%7#ou41An;>EyJk7jJu&?FEcqI2(FYKakA?n?Hha2NH8^Vk zHGufLpLwjx{t7=}DR zhl#ME?yo_jo-(Dj9XFXkFQ#42-cMYzPF#a-R-Q!zGM-ZXXWGrAaDpNIRnWHbEB2Rb zx&MJ)ZVv9jg38Zq%gotJV}`H6qFvBx3AWGAtILjoRMW-1QiH?)Kuf@S|2wiD^9g1s z(*YD0<|OYEV~A=Lif*z;S!4|`T;3bkaC4H_8i3v`$@QC$^;QhuEw-7*+>Z{-6|46RoCP5{KUR!|PL(f>|4k|>9_``1 zyZ;a_z5cBY9P{`C;h*8vlQ$_Y*AvZ;ALvNt_=5if#qMkMUzOm?HR#Dxj`fXz7Gn`o z)up7N$uT5MkyMUZIJd&b=560wLw6*G=p~D$UC@SGk+`T%>+m$r(ly6Rzhd>99RP#7 zXV|?^r{;;TThRU$uVdlJRF}v@8T}y1W8i2BjM}B?_f0RSgcUW2QKe+;N3EI59FQ;< z#hF|elkRIX2L@LTKolpDHvE|R%vjfWp%_3>xUk}!VALI2Ae)>fn>qRGK{wgJzw4U} zlPAE;22KEvbTDA^2cDJFu-LEQMvaw_Si)@tI85D%yji1W&>zTmawgSW8sSA+58r6N zD+5kJ@N357Y@I}~x_?#pO^(nedfOdo?ddiko9nFLrkWezXEQryB59mqCT2sO3TQj) zo&Llx1F1!cW;eL#RPumr<%~IeN{%hxHqrRnlRBlpR9nA@R^7B=VSY$8eq)RB zhOuky2e#Xdp(iK0syVBO)*085Ue#0@$^sBX|8=m?^qlQy=)elS%tQW0G6j$hW9E8e z;wKjH#&DitPX|yxMX>@EsjrT~p>QRd9e1>en7Oxe2cOg{-yfH}tW;8sEzPR#7*Lep zYcI{kA#npib=+5vgq+%!eXf_%(obfs#ocYoc>6o(tc7D@%Axt98FrR%T#3A)9Y~01 zO*635l^mqg5EoA2!VvsTr3cMkD5x%(MS9MqV-$B35r4AKY{)=bfjbBvH$+Zdk7ik$ z!3Ubf@RwWN;tt{12+N=G9jsrCm`7$IO&`S-0~k#bDoQDLdWSb&zcGORb)s#V^APz= z)W+d%(+>so% z2Yt=p&v7@sX*@L_VahC`T;y~0x}AOJL(i5K`Sh1?9#tmF(~n;p1E>IExa|uZ1(k(8 zePquQp1iEnXwUs_AeasGDlzL*#x+Q)^Z@ML!-N?_TCVu*W}}9lodZK5RQ1kx4a1Jo zsrV?r-dpFdL1n5HT(9dwWw}^GPr~40?BT~oF9k8x4kD=(nHyOh`_Q#ExL9}oUV!Vw zD))iYqobKr?i^obA0;ef)VK73#MWoANJ=TsL--I*i_-q*`O1ws)|PmvOUpfvdQ(cH zKw0qHdWvDw%e$Wz=k6RLtNv2NEd&8HH0Ad)jO`lvjr9xJ2+HOAyq+sf%WmX}PXes8 zs~W)e27^|#$<#uX-wPEPPp><@mY_!;C&Opi(rY7ueYjE!`X1(m`Pzi=KZCOsSq@+Q z5$s)+T5ACmA6t!APpmw&(ZII-T0d`A-Lk18l9&BNmNQpgb?=$#{+*Ea#t=J zWW)N9^8TDrZT1?KiZ@2Ho$k7(+ch07u1yZ$Qs1hRFr%M zZ@C!NNpbvLmnDzj*cf`IgUapBhdi&--UoG%r(4WRaJ8%?Iz5?!Q^IT8DaPc$`9s>~ z3f)E1OPz73JU2d*Zn!wDI~6%!#5G;YO>I&4?F!L8Tj{Hq0j|^+R8&JE-6z+JJ{eHqGm4kmsCcpK$sJ1 zTl*Dy=n44%d?7^Zvq`h{;|;{xS^~YP`?1ojNy9Og!Cj7P;i-^!m+Gzrh$~vjt%zZ? z$>4JSo-Fwc89U?=gIM^)A-5GanbFpzN6VXH5s`*)5ZvCwfNnoGV*YWn_W&vY2OAWP zoMWQdI2MS#m*0B5-q_*&DeITK$KyHu$^4u8+gHeW+eWY#3DWZL8LzpKI|wUs)*kz3 z;QB*9tMmq5tAV0OuGuWRZVIV_lvg_QY>beLw>*YZZlJI+CjRxa7A_u-GR~fRXps8f zoaG*;Cl#bIw;`6>uO0L|z(4DG{c&)MOtsz$j0losINRvso7h@lm8r=&FKvOWe+8&I zP`MYDicnApmM!t0i&GS$^8vm6rPcs{`IcfT8;7vJi2=E}{+$kPyEK2aTWm+#-a0;| z;h};06r616a9`XSGlxi~6C-(h(S(USo3r-nfPn3XP|2S1_}Z~+F_{n~9j6M@s}5wF z?)K$ab*Jk3%0f;uO1*E~&B1|*{Zvk*Cbr5{nx&~7szpM{N+lPEdj@6SBAu`WvM5lj ztxVzlsL0vjxb0YqZx}sMtW3p|b5>U-e-ODXxoN;$@ycxSOC~09s6U-Q7>r%ililKY z#daB$pn$E z-Is7js&%_j_{w}-hhz-B(*V>z7Ao?w?UolEbjr?h!@a!G`Xo3UXrcIYn+zM4Zw9W_ zRe25S$WZ0S2n?{Xy-|%a+^Sw!G(tJvt!As(RXvNsy4! zK~-aI)nK`f``p{g%v5f_-*;|_mnb7nkxJ!Ay`?_6q^41MUHZ$R{`u~lM6TUAwS31l zMkZ$6Nx?YLZXWa)Wh5Q?_C?no=es{_uIuo~_|{Z%;N=f7Jwx@|;JzpIAw&&*tA*== zif@{wq0?oi?P917$K2D)R>^o%J{T}|R+rGEWwVekeQowA;WM4%&ca2!N=p4z385HG z7U;JvcRD*1dswXa#^q%!~E8O-+>+PjizL5KS}9IvB> zntC$0;n;i5?$sS-H$9D_6u?=0_aGE$h?nRwC99g&6=tb1Da3`IQpD$TYzBzg2jtN< zpOzza?I!_Wr&d%ys7f1sGbmn1dS!7;c40>e61gjYLg`ot`$+T{bgmv6u$C@mU9QM~ zs+DTi!kXv%1+{l`utkU)n^C)dlJU8NO$0*&1yC$qZmh3PZM0A{H)XoH7Qy+!)vFTG zKDyb13~z%ipek&F%xQ^3tw}(OX!QI$-pmFkqwkcS2in4rmi^&FG7hy2>L3K7I;A zi4B#tNaT#liU}1h6QEt-yK#W&p(-I~(aC72g{Ic^*HDH%z(9voYU*OVml@9Ec4=KD zRVeL376dM88X#5!XS-hC-!japJALuU_gZn9HU7=rO;^mC_y_x~dY$40;pdlSgm<9N zJVb0-NHx~8y25RD7!~?i_;Ce}zHApBj)gq3`>0AOk1l4BvQW6um?4y_kM07YJ1)CL z`iG?l;iPnmc|G=Sa!4iXJEd#Zpd5QAq$2pv8mz&z9@m)l1)&%;uiuhfW!d^x`j-I> zg)d$9?OUnVxfFM0KQ%m1jd~D1$YHz=XHXyrH=5CiPzq1T3?hs7?KuY8Ng`%+*_G&^ z7WzWVEk~Qc_0VR(wfFJXE6sv6{+4`xi^R!HZ_}1pwF(gpcF*Kt9)uE{X<

    3mq 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

    fG38@7r~d;K^_~`ch_7${ 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 J|o!hs+kroP{pqa5c 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

    s|I)eE?WP!? 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

    M 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

    KhyaaHGU! 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 H?L+BaH+ywn(27UfHxm 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 O$Y}H#FU9=t)BgeYS(#7( literal 0 HcmV?d00001 diff --git a/app/files/tweaks/00_59patch.txt b/app/files/tweaks/00_59patch.txt index 6e386e5..aee62f3 100644 --- a/app/files/tweaks/00_59patch.txt +++ b/app/files/tweaks/00_59patch.txt @@ -12,6 +12,6 @@ then cp -a ${MYDIR}/config/jci/gui/apps/system/js/systemApp.70.js /jci/gui/apps/system/js/systemApp.js log_message "=== Patched systemApp.js for AIO + CASDK apps for v70 ===" else - log_message "=== FW > v70.00.100 DETECTED VISIT MAZDATWEAKS.COM FOR MORE DETAILS ===" + log_message "=== FW > v70.00.342 DETECTED VISIT MAZDATWEAKS.COM FOR MORE DETAILS ===" fi fi diff --git a/app/files/tweaks/00___fullRestore.sh b/app/files/tweaks/00___fullRestore.sh index caf9a5b..a41f7f8 100644 --- a/app/files/tweaks/00___fullRestore.sh +++ b/app/files/tweaks/00___fullRestore.sh @@ -62,7 +62,7 @@ fi rm -f /jci/nng/2 if [ -e /mnt/sd_nav/content/speedcam/speedcam.txt ] || [ -e /mnt/sd_nav/content/speedcam/speedcam.spdb ] then - # cp -a /mnt/sd_nav/content/speedcam/speedcam.txt ${MYDIR} + # cp /mnt/sd_nav/content/speedcam/speedcam.txt ${MYDIR} # log_message "=== Copied speedcam.txt to USB ===" # rm -f /mnt/sd_nav/content/speedcam/speedcam.txt # rm -f /mnt/sd_nav/content/speedcam/speedcam.spdb diff --git a/app/files/tweaks/00__casdkapps-i.txt b/app/files/tweaks/00__casdkapps-i.txt index 758eb74..9498554 100644 --- a/app/files/tweaks/00__casdkapps-i.txt +++ b/app/files/tweaks/00__casdkapps-i.txt @@ -108,7 +108,7 @@ then cp -a ${MYDIR}/casdk/patch/systemApp.70.js /jci/gui/apps/system/js/systemApp.js log_message "=== Patched systemApp.js for AIO + CASDK apps for v70 ===" else - log_message "=== FW > v70.00.100 DETECTED VISIT MAZDATWEAKS.COM FOR MORE DETAILS ===" + log_message "=== FW > v70.00.335 DETECTED VISIT MAZDATWEAKS.COM FOR MORE DETAILS ===" fi fi diff --git a/app/files/tweaks/00_background.txt b/app/files/tweaks/00_background.txt index a5d80c8..dce049c 100644 --- a/app/files/tweaks/00_background.txt +++ b/app/files/tweaks/00_background.txt @@ -9,8 +9,14 @@ then log_message "=== Previous Infotainment Background Saved To: === " log_message "=== ${MYDIR}/bakups/background.png ===" fi -cp -a "${MYDIR}/config/background.png" /jci/gui/common/images -log_message "=== Background Image Changed ===" +if [ -s ${MYDIR}/config/background.png ] +then + cp -a "${MYDIR}/config/background.png" /jci/gui/common/images + log_message "=== Background Image Changed ===" +else + show_message "ERROR MISSING BACKGROUND IMAGE FILE!!!" + log_message "=== ERROR: Mising Background Image File ===" +fi log_message "======*********** END INSTALLATION OF BACKGROUND IMAGE ***********=======" log_message " " diff --git a/app/files/tweaks/00_end.txt b/app/files/tweaks/00_end.txt index 86d01d5..e58f6c2 100644 --- a/app/files/tweaks/00_end.txt +++ b/app/files/tweaks/00_end.txt @@ -1,4 +1,5 @@ show_message "========== END OF TWEAKS INSTALLATION ==========" +[ -s /etc/profile ] || restore_org /etc/profile if [ -f "${MYDIR}/AIO_log.txt" ] then END_ROOTFS=$(df -h | (grep 'rootfs' || echo 0) | awk '{ print $5 " " $1 }') diff --git a/app/files/tweaks/00_factory-reset-end.txt b/app/files/tweaks/00_factory-reset-end.txt index 83dc7b7..f3218c3 100644 --- a/app/files/tweaks/00_factory-reset-end.txt +++ b/app/files/tweaks/00_factory-reset-end.txt @@ -8,9 +8,11 @@ if [ -e "${MYDIR}/AIO_log.txt" ] then END_ROOTFS=$(df -h | (grep 'rootfs' || echo 0) | awk '{ print $5 " " $1 }') END_RESOURCES=$(df -h | (grep 'resources' || echo 0) | awk '{ print $5 " " $1 }') + END_ROOTFS="$(echo $END_ROOTFS | awk '{ print $1}' | cut -d'%' -f1)" + END_RESOURCES="$(echo $END_RESOURCES | awk '{ print $1}' | cut -d'%' -f1)" sleep 2 - log_message "======================== rootfs $(echo $END_ROOTFS | awk '{ print $1}' | cut -d'%' -f1)% used ================================" - log_message "====================== resources $(echo $END_RESOURCES | awk '{ print $1}' | cut -d'%' -f1)% used ===============================" + log_message "======================== rootfs $END_ROOTFS% used ================================" + log_message "====================== resources $END_RESOURCES% used ===============================" # a window will appear before the system reboots automatically sleep 3 log_message " " diff --git a/app/files/tweaks/00_intro.txt b/app/files/tweaks/00_intro.txt index dfe5c86..03f7f0a 100644 --- a/app/files/tweaks/00_intro.txt +++ b/app/files/tweaks/00_intro.txt @@ -1,23 +1,24 @@ #!/bin/sh -# tweaks.sh - MZD-AIO-TI Version 2.8.4 +# tweaks.sh - MZD-AIO-TI Version 2.8.5 # Special thanks to Siutsch for collecting all the tweaks and for the original AIO -# Big Thanks to Modfreakz, khantaena, Xep, ID7, Doog, Diginix, oz_paulb, VIC_BAM85, & lmagder +# Big Thanks to Modfreakz, khantaena, Xep, ID7, Doog, Diginix, oz_paulb, +# Albuyeh, VIC_BAM85, lmagder, ameridan, anderml1955 & Tristan-cx5 # For more information visit https://mazdatweaks.com # Enjoy, Trezdog44 - Trevelopment.com -# (C) 2019 Trevor G Martin +# (C) 2020 Trevor G Martin # Time hwclock --hctosys # AIO Variables -AIO_VER=2.8.4 -AIO_DATE=2019.28.02 +AIO_VER=2.8.5 +AIO_DATE=2020.02.02 # Android Auto Headunit App Version -AA_VER=1.11 +AA_VER=1.12 # Video Player Version VP_VER=3.7 # Speedometer Version -SPD_VER=5.8 +SPD_VER=6.1 # AIO Tweaks App Version AIO_TWKS_VER=1.0 # CASDK Version diff --git a/app/files/tweaks/00_offbackground-i.txt b/app/files/tweaks/00_offbackground-i.txt index 9895297..009fbd2 100644 --- a/app/files/tweaks/00_offbackground-i.txt +++ b/app/files/tweaks/00_offbackground-i.txt @@ -2,9 +2,14 @@ backup_org /jci/gui/apps/system/controls/OffScreen/images/OffScreenBackground.pn # change off screen background image show_message "CHANGING OFF SCREEN BACKGROUND IMAGE ..." log_message "=====********** INSTALL OFF SCREEN BACKGROUND IMAGE ... ***********=====" - -cp -a ${MYDIR}/config/OffScreenBackground.png /jci/gui/apps/system/controls/OffScreen/images/ -log_message "=== Replaced Off Screen Background Image ===" +if [ -s ${MYDIR}/config/OffScreenBackground.png ] +then + cp -a ${MYDIR}/config/OffScreenBackground.png /jci/gui/apps/system/controls/OffScreen/images/ + log_message "=== Replaced Off Screen Background Image ===" +else + show_message "ERROR MISSING OFF-SCREEN BACKGROUND FILE!!!" + log_message "=== ERROR: Off Screen Background Image not found ===" +fi log_message "====********* END INSTALLATION OFF SCREEN BACKGROUND IMAGE **********====" log_message " " diff --git a/app/files/tweaks/00_start.txt b/app/files/tweaks/00_start.txt index bb327c4..abe48fc 100644 --- a/app/files/tweaks/00_start.txt +++ b/app/files/tweaks/00_start.txt @@ -71,7 +71,7 @@ remove_casdk_app() fi } # Compatibility check falls into 7 groups: -# 70.00.100+ ($COMPAT_GROUP=7 *Temporary, until tested*) +# 70.00.336+ ($COMPAT_GROUP=7 *Temporary, until tested*) # 70.00.XXX ($COMPAT_GROUP=6) # 59.00.5XX ($COMPAT_GROUP=5) # 59.00.4XX ($COMPAT_GROUP=4) @@ -106,11 +106,11 @@ compatibility_check() fi elif [ $_VER -eq 70 ] then - if [ $_VER_EXT -le 100 ] + if [ $_VER_EXT -le 360 ] then - echo 6 && return # v70.00.100 For Integrity check + echo 6 && return # v70.00.352 For Integrity check else - echo 7 && return # Past v70.00.100 is unknown and cannot be trusted + echo 7 && return # Past v70.00.352 is unknown and cannot be trusted fi else echo 0 @@ -275,6 +275,7 @@ v70_integrity_check() fi [ -e ${NEW_BKUP_DIR} ] || mkdir -p ${NEW_BKUP_DIR} orgs=$(find /jci -type f -name "*.org") + [ -e /etc/profile.org ] && orgs="${orgs} /etc/profile.org" for i in $orgs; do ORG_FILE="$i" FILENAME=$(basename -- $ORG_FILE) @@ -611,7 +612,7 @@ fi if [ $COMPAT_GROUP -gt 6 ] then sleep 2 - show_message_OK "WARNING! VERSION ${CMU_SW_VER} DETECTED\nAIO COMPATIBILITY HAS ONLY BEEN TESTED UP TO V70.00.100\nIF YOU ARE RUNNING A LATER FW VERSION\nUSE EXTREME CAUTION!!" + show_message_OK "WARNING! VERSION ${CMU_SW_VER} DETECTED\nAIO COMPATIBILITY HAS ONLY BEEN TESTED UP TO V70.00.352\nIF YOU ARE RUNNING A LATER FW VERSION\n***** USE EXTREME CAUTION!! *****\n***** CONTINUE AT YOUR OWN RISK *****" elif [ $COMPAT_GROUP -ne 0 ] then if [ $SKIPCONFIRM -eq 1 ] diff --git a/app/files/tweaks/02_disclaimer-i.txt b/app/files/tweaks/02_disclaimer-i.txt index 13be965..569dfa1 100644 --- a/app/files/tweaks/02_disclaimer-i.txt +++ b/app/files/tweaks/02_disclaimer-i.txt @@ -1,6 +1,5 @@ backup_org /jci/gui/apps/system/js/systemApp.js # no-more-disclaimer -show_message "REMOVE DISCLAIMER ..." log_message "========*********** INSTALL NO-MORE-DISCLAIMER ... ***********========" TRACKORDER_DISCLAIMER=2 @@ -18,13 +17,19 @@ then TRACKORDER_DISCLAIMER=1 TRACKORDER_DISCLAIMER_FILE=70 log_message "=== FW ${CMU_SW_VER} detected, copy matching systemApp.js ===" +elif [ $COMPAT_GROUP -gt 6 ] +then + killall -q jci-dialog + /jci/tools/jci-dialog --confirm --title="NO MORE DISCLAIMER TWEAK" --text="YOUR FW VERSION IS ${CMU_SW_VER}\nNO MORE DISCLAIMER TWEAK HAS ONLY\n BEEN TESTED UP TO V70.00.335\n\n***** INSTALL AT YOUR OWN RISK! *****" --ok-label="INSTALL" --cancel-label="SKIP" + TRACKORDER_DISCLAIMER=$(($?+1)) + TRACKORDER_DISCLAIMER_FILE=70 fi +[ $TRACKORDER_DISCLAIMER -le 1 ] && show_message "REMOVE DISCLAIMER ..." # Compatibility check falls into 3 groups: # 70.00.XXX ($COMPAT_GROUP=6) # 58.00.XXX - 59.00.XXX ($COMPAT_GROUP=2-5) # 55.XX.XXX - 56.XX.XXX ($COMPAT_GROUP=1) -# If your firmware version falls out of those ranges email the address below if [ $TRACKORDER_DISCLAIMER -ne 2 ] then cp -a "${MYDIR}/config/audio_order_AND_no_More_Disclaimer/systemApp.js.disclaimer" /jci/gui/apps/system/js/ @@ -53,11 +58,9 @@ then fi fi else - # 2 Means unknown firmware version if your firmware version is unknown email the address below - show_message "=== NO MORE DISCLIMER PATCH HAS NOT BEEN MADE FOR YOUR FW:${CMU_SW_VER}\nPlease Email ${MYDIR}/systemApp.js to aio@mazdatweaks.com ===" - log_message "********** Removed Disclaimer Mod Is Not Compatible With your FW Version *************" - log_message "********** Please Email ${MYDIR}/systemApp.js FW:${CMU_SW_VER} to aio@mazdatweaks.com **********" - cp -a /jci/gui/apps/system/js/systemApp.js "${MYDIR}/" + show_message "=== NO MORE DISCLIMER PATCH INSTALLATION SKIPPED ===" + log_message "********** Remove Disclaimer Mod Skipped *************" + cp /jci/gui/apps/system/js/systemApp.js "${MYDIR}" fi if [ $TESTBKUPS -eq 1 ] then diff --git a/app/files/tweaks/05_mainloop-i.txt b/app/files/tweaks/05_mainloop-i.txt index adf77d8..f45a82a 100644 --- a/app/files/tweaks/05_mainloop-i.txt +++ b/app/files/tweaks/05_mainloop-i.txt @@ -3,7 +3,7 @@ backup_org /jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js show_message "INSTALL MAIN_MENU_LOOP ..." log_message "=====***************** INSTALL MAIN_MENU_LOOP ... *****************=====" -if [ $COMPAT_GROUP -le 6 ] +if [ $COMPAT_GROUP -le 7 ] then # Copy modified MainMenuCtrl.js cp -a "${MYDIR}/config/main-menu-loop/jci/gui/apps/system/controls/MainMenu/js/MainMenuCtrl.js" /jci/gui/apps/system/controls/MainMenu/js/ diff --git a/app/files/tweaks/06_listloop-i.txt b/app/files/tweaks/06_listloop-i.txt index 917c5c3..12cd359 100644 --- a/app/files/tweaks/06_listloop-i.txt +++ b/app/files/tweaks/06_listloop-i.txt @@ -9,8 +9,8 @@ then SHORTER_DELAY_MOD=1 fi -# NO MORE COMPATIBILITY CHECK NEEDED - UNIVERSAL COMPATIBILITY FROM v55 - v70.00.100 -# v70.00.100+ will not install mod/needs verification of compatibility +# NO MORE COMPATIBILITY CHECK NEEDED - UNIVERSAL COMPATIBILITY FROM v55 - v70.00.xxx +# v70.00.335+ will not install mod/needs verification of compatibility if [ $COMPAT_GROUP -le 6 ] then cp -a "${MYDIR}/config/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.js" /jci/gui/common/controls/List2/js/ diff --git a/app/files/tweaks/09_audioorder-i.txt b/app/files/tweaks/09_audioorder-i.txt index 623551c..e2a615e 100644 --- a/app/files/tweaks/09_audioorder-i.txt +++ b/app/files/tweaks/09_audioorder-i.txt @@ -1,6 +1,5 @@ backup_org /jci/gui/apps/system/js/systemApp.js # change order of the audio source list -show_message "CHANGE ORDER OF AUDIO SOURCE LIST ..." log_message "======****** INSTALL CHANGE ORDER OF AUDIO SOURCE LIST ... *******=======" TRACKORDER_AUDIO=2 # Compatibility Check @@ -17,7 +16,14 @@ then TRACKORDER_AUDIO=1 TRACKORDER_AUDIO_FILE=70 log_message "=== FW ${CMU_SW_VER} detected, copy matching systemApp.js ===" +elif [ $COMPAT_GROUP -gt 6 ] +then + killall -q jci-dialog + /jci/tools/jci-dialog --confirm --title="ORDER OF AUDIO SOURCES TWEAK" --text="YOUR FW VERSION IS ${CMU_SW_VER}\nORDER OF AUDIO SOURCES TWEAK HAS ONLY\n BEEN TESTED UP TO V70.00.335\n\n***** INSTALL AT YOUR OWN RISK! *****" --ok-label="INSTALL" --cancel-label="SKIP" + TRACKORDER_AUDIO=$(($?+1)) + TRACKORDER_AUDIO_FILE=70 fi +[ $TRACKORDER_AUDIO -le 1 ] && show_message "CHANGE ORDER OF AUDIO SOURCE LIST ..." # Compatibility check falls into 3 groups: # 70.00.XXX ($COMPAT_GROUP=6) @@ -49,11 +55,8 @@ then fi fi else - # 2 Means unknown firmware version email the address below - show_message "******* AUDIO ORDER PATCH HAS NOT BEEN MADE FOR YOUR FW:${CMU_SW_VER}\nPlease Email ${MYDIR}/systemApp.js to aio@mazdatweaks.com ===" - log_message "******** Audio Source List Order Tweak Is Not Compatible With your FW Version ********" - log_message "******** Please Email ${MYDIR}/systemApp.js FW:${CMU_SW_VER} to aio@mazdatweaks.com ********" - cp -a /jci/gui/apps/system/js/systemApp.js "${MYDIR}/" + show_message "=== ORDER OF AUDIO SOURCES PATCH SKIPPED ===" + log_message "******** Audio Source List Order Tweak Skipped ********" fi if [ $TESTBKUPS -eq 1 ] then diff --git a/app/files/tweaks/17_videoplayer-i.txt b/app/files/tweaks/17_videoplayer-i.txt index 76d4d63..8d28288 100644 --- a/app/files/tweaks/17_videoplayer-i.txt +++ b/app/files/tweaks/17_videoplayer-i.txt @@ -19,6 +19,7 @@ pkill websocketd # Remove previous files rm -fr /jci/gui/apps/_videoplayer rm -fr /tmp/mnt/resources/aio/apps/_videoplayer +rm -fr ${AIO_APP_DIR}/_videoplayer sed -i '/Video/d' ${STAGE_WIFI} sed -i '/--port=9998/d' ${STAGE_WIFI} log_message "=== Removed Old VideoPlayer Files ===" @@ -73,7 +74,7 @@ addon_common # symlink to resources if [ $APPS2RESOURCES -eq 1 ] then - ln -sf /tmp/mnt/resources/aio/apps/_videoplayer /jci/gui/apps/_videoplayer + ln -sf ${AIO_APP_DIR}/_videoplayer /jci/gui/apps/_videoplayer log_message "=== Created Symlink To Resources Partition ===" fi diff --git a/app/files/tweaks/17_videoplayer-u.txt b/app/files/tweaks/17_videoplayer-u.txt index 990026d..24d06f7 100644 --- a/app/files/tweaks/17_videoplayer-u.txt +++ b/app/files/tweaks/17_videoplayer-u.txt @@ -11,30 +11,8 @@ then [ -f ${ADDITIONAL_APPS_JSON} ] && cp ${ADDITIONAL_APPS_JSON} "${MYDIR}/bakups/test/additionalApps_videoplayer-before.json" fi -sed -i '/Speedo-Compass-Video_Tweak/d' ${STAGE_WIFI} -sed -i '/v3.2/d' ${STAGE_WIFI} -sed -i '/Removed requirement/d' ${STAGE_WIFI} -sed -i '/# mount /d' ${STAGE_WIFI} -sed -i '/Added additional/d' ${STAGE_WIFI} -sed -i '/get-vehicle-speed.sh/d' ${STAGE_WIFI} -sed -i '/get-vehicle-data-other.sh/d' ${STAGE_WIFI} -sed -i '/get-gps-data.sh/d' ${STAGE_WIFI} -sed -i '/Need to set defaults/d' ${STAGE_WIFI} -sed -i '/myVideoList /d' ${STAGE_WIFI} -sed -i '/playbackAction /d' ${STAGE_WIFI} -sed -i '/playbackOption /d' ${STAGE_WIFI} -sed -i '/playbackStatus /d' ${STAGE_WIFI} -sed -i '/playback/d' ${STAGE_WIFI} -sed -i '/myVideoList/d' ${STAGE_WIFI} -sed -i '/Video player action watch/d' ${STAGE_WIFI} -sed -i '/playback-action.sh/d' ${STAGE_WIFI} -sed -i '/Log data collection/d' ${STAGE_WIFI} -sed -i '/get-log-data/d' ${STAGE_WIFI} -sed -i '/### Video player/d' ${STAGE_WIFI} -sed -i '/_videoplayer/d' ${STAGE_WIFI} -sed -i '/addon-player.sh &/d' ${STAGE_WIFI} - sed -i '/Video/d' ${STAGE_WIFI} +sed -i '/_videoplayer/d' ${STAGE_WIFI} sed -i '/--port=9998/d' ${STAGE_WIFI} # delete videoplayer entry from additionalApps.json @@ -50,7 +28,7 @@ then || grep -Fq "_speedometer" ${ADDITIONAL_APPS_JSON} \ || grep -Fq "_mzdmeter" ${ADDITIONAL_APPS_JSON} then - log_message "=== Found other apps in additionalApps.json ===" + log_message "=== Found other apps in additionalApps.json ===" ADDIT_APPS=1 fi fi @@ -69,19 +47,9 @@ then log_message "=== Removed addon-common because no more AIO apps ===" fi -rm -fr /jci/gui/addon-player -rm -fr /jci/gui/addon-speedometer -rm -fr /jci/gui/speedometer +rm -fr ${AIO_APP_DIR}/_videoplayer rm -fr /jci/gui/apps/_videoplayer rm -fr /tmp/mnt/resources/aio/apps/_videoplayer -rm -f /jci/opera/opera_dir/userjs/addon-startup.js -rm -f /jci/opera/opera_dir/userjs/mySpeedometer* -rm -f /jci/scripts/get-gps-data* -rm -f /jci/scripts/get-log-data* -rm -f /jci/scripts/get-vehicle-data-other* -rm -f /jci/scripts/get-vehicle-gear* -rm -f /jci/scripts/get-vehicle-speed* -rm -f ${STAGE_WIFI}.bak? log_message "=== Removed Video Player Files ===" if [ $TESTBKUPS -eq 1 ] diff --git a/app/files/tweaks/19_speedo-i1.txt b/app/files/tweaks/19_speedo-i1.txt index da5f4d9..706ea61 100644 --- a/app/files/tweaks/19_speedo-i1.txt +++ b/app/files/tweaks/19_speedo-i1.txt @@ -25,37 +25,8 @@ rm -fr /jci/gui/addon-speedometer rm -fr /jci/gui/speedometer rm -fr /jci/gui/apps/_speedometer rm -fr /tmp/mnt/resources/aio/apps/_speedometer +rm -fr ${AIO_APP_DIR}/_speedometer -sed -i '/Speedo-Compass-Video/d' ${STAGE_WIFI} -sed -i '/v3.2/d' ${STAGE_WIFI} -sed -i '/Removed requirement/d' ${STAGE_WIFI} -sed -i '/# mount /d' ${STAGE_WIFI} -sed -i '/Added additional/d' ${STAGE_WIFI} -sed -i '/get-vehicle-speed/d' ${STAGE_WIFI} -sed -i '/get-vehicle-data-other/d' ${STAGE_WIFI} -sed -i '/get-gps-data/d' ${STAGE_WIFI} -sed -i '/Need to set defaults/d' ${STAGE_WIFI} -sed -i '/myVideoList /d' ${STAGE_WIFI} -sed -i '/playbackAction /d' ${STAGE_WIFI} -sed -i '/playbackOption /d' ${STAGE_WIFI} -sed -i '/playbackStatus /d' ${STAGE_WIFI} -sed -i '/playback/d' ${STAGE_WIFI} -sed -i '/myVideoList/d' ${STAGE_WIFI} -sed -i '/Video player action watch/d' ${STAGE_WIFI} -sed -i '/playback-action.sh/d' ${STAGE_WIFI} -sed -i '/Log data collection/d' ${STAGE_WIFI} -sed -i '/get-log-data.sh/d' ${STAGE_WIFI} -sed -i '/addon-speedometer.sh &/d' ${STAGE_WIFI} -sed -i '/addon-player.sh &/d' ${STAGE_WIFI} -sed -i '/stage_vehSpeed.sh/d' ${STAGE_WIFI} -sed -i '/mount of SD card/d' ${STAGE_WIFI} -sed -i '/sleep 40/d' ${STAGE_WIFI} -sed -i '/sleep 55/d' ${STAGE_WIFI} -sed -i '/sleep 50/d' ${STAGE_WIFI} -sed -i '/umount -l/d' ${STAGE_WIFI} -sed -i '/sleep 25/d' ${STAGE_WIFI} -sed -i '/sleep 4/d' ${STAGE_WIFI} -sed -i '/sleep 6/d' ${STAGE_WIFI} sed -i '/55554/d' ${STAGE_WIFI} sed -i '/9969/d' ${STAGE_WIFI} sed -i '/## Speedometer/d' ${STAGE_WIFI} @@ -76,7 +47,7 @@ log_message "=== Copied Speedometer Files # symlink to resources if [ $APPS2RESOURCES -eq 1 ] then - ln -sf /tmp/mnt/resources/aio/apps/_speedometer /jci/gui/apps/_speedometer + ln -sf ${AIO_APP_DIR}/_speedometer /jci/gui/apps/_speedometer log_message "=== Created Symlink To Resources Partition ===" fi diff --git a/app/files/tweaks/19_speedo-u.txt b/app/files/tweaks/19_speedo-u.txt index 1acbbd1..3053bcc 100644 --- a/app/files/tweaks/19_speedo-u.txt +++ b/app/files/tweaks/19_speedo-u.txt @@ -10,37 +10,7 @@ then [ -f ${ADDITIONAL_APPS_JSON} ] && cp ${ADDITIONAL_APPS_JSON} "${MYDIR}/bakups/test/additionalApps_speedometer-before.json" fi -sed -i '/Speedo-Compass-Video_Tweak/d' ${STAGE_WIFI} -sed -i '/v3.2/d' ${STAGE_WIFI} -sed -i '/Removed requirement/d' ${STAGE_WIFI} -sed -i '/# mount /d' ${STAGE_WIFI} -sed -i '/Added additional/d' ${STAGE_WIFI} -sed -i '/get-vehicle-speed.sh/d' ${STAGE_WIFI} -sed -i '/get-vehicle-data-other.sh/d' ${STAGE_WIFI} -sed -i '/get-gps-data.sh/d' ${STAGE_WIFI} -sed -i '/Need to set defaults/d' ${STAGE_WIFI} -sed -i '/myVideoList /d' ${STAGE_WIFI} -sed -i '/playbackAction /d' ${STAGE_WIFI} -sed -i '/playbackOption /d' ${STAGE_WIFI} -sed -i '/playbackStatus /d' ${STAGE_WIFI} -sed -i '/playback/d' ${STAGE_WIFI} -sed -i '/myVideoList/d' ${STAGE_WIFI} -sed -i '/Video player action watch/d' ${STAGE_WIFI} -sed -i '/playback-action.sh/d' ${STAGE_WIFI} -sed -i '/Log data collection/d' ${STAGE_WIFI} -sed -i '/get-log-data/d' ${STAGE_WIFI} sed -i '/### Speedometer/d' ${STAGE_WIFI} -sed -i '/addon-speedometer.sh &/d' ${STAGE_WIFI} -sed -i '/speedometer.sh &/d' ${STAGE_WIFI} -sed -i '/addon-player.sh &/d' ${STAGE_WIFI} -sed -i '/mount of SD card/d' ${STAGE_WIFI} -sed -i '/umount -l/d' ${STAGE_WIFI} -sed -i '/sleep 40/d' ${STAGE_WIFI} -sed -i '/sleep 55/d' ${STAGE_WIFI} -sed -i '/sleep 50/d' ${STAGE_WIFI} -sed -i '/sleep 25/d' ${STAGE_WIFI} -sed -i '/sleep 4/d' ${STAGE_WIFI} -sed -i '/sleep 6/d' ${STAGE_WIFI} sed -i '/9969/d' ${STAGE_WIFI} sed -i '/55554/d' ${STAGE_WIFI} @@ -51,21 +21,12 @@ then then log_message "=== Found CASDK ===" ADDIT_APPS=1 - elif grep -Fq "_aiotweaks" ${ADDITIONAL_APPS_JSON} + elif grep -Fq "_aiotweaks" ${ADDITIONAL_APPS_JSON} \ + || grep -Fq "_androidauto" ${ADDITIONAL_APPS_JSON} \ + || grep -Fq "_videoplayer" ${ADDITIONAL_APPS_JSON} \ + || grep -Fq "_mzdmeter" ${ADDITIONAL_APPS_JSON} then - log_message "=== Found AIOTweaksApp entry in additionalApps.json ===" - ADDIT_APPS=1 - elif grep -Fq "_androidauto" ${ADDITIONAL_APPS_JSON} - then - log_message "=== Found androidauto entry in additionalApps.json ===" - ADDIT_APPS=1 - elif grep -Fq "_videoplayer" ${ADDITIONAL_APPS_JSON} - then - log_message "=== Found videoplayer entry in additionalApps.json ===" - ADDIT_APPS=1 - elif grep -Fq "_mzdmeter" ${ADDITIONAL_APPS_JSON} - then - log_message "=== Found mzd meter entry in additionalApps.json ===" + log_message "=== Found other apps in additionalApps.json ===" ADDIT_APPS=1 fi fi @@ -84,21 +45,10 @@ then rm -rf /tmp/mnt/resources/aio/addon-common log_message "=== Removed addon-common because no more AIO apps ===" fi -rm -fr /jci/gui/addon-player -rm -fr /jci/gui/addon-speedometer +rm -fr ${AIO_APP_DIR}/_speedometer rm -fr /jci/gui/apps/_speedometer -rm -fr /jci/gui/speedometer rm -fr /tmp/mnt/resources/aio/apps/_speedometer -rm -f /jci/opera/opera_dir/userjs/addon-startup.js rm -f /jci/opera/opera_dir/userjs/speedometer-startup.js -rm -f ${STAGE_WIFI}.bak? -rm -f /jci/scripts/get-vehicle-speed.sh -rm -f /jci/scripts/stage_vehSpeed.sh -rm -f /jci/scripts/get-vehicle-fuel.sh -rm -f /jci/scripts/get-gps-speed.sh -rm -f /jci/scripts/get-engine-speed.sh -rm -f /jci/scripts/get-gear-position.sh -rm -f /jci/scripts/get-temp.sh log_message "=== cleanup old versions ===" if [ $TESTBKUPS -eq 1 ] diff --git a/app/files/tweaks/20_date-iv3.3.txt b/app/files/tweaks/20_date-iv3.3.txt index 53256a4..ef3fe58 100644 --- a/app/files/tweaks/20_date-iv3.3.txt +++ b/app/files/tweaks/20_date-iv3.3.txt @@ -104,15 +104,21 @@ else # if [ $DATE_FORMAT -eq 0 ] fi # StatusBarCtrl.js is the file that needs to be compatability checked because of minor changes in FW v59+ -# Compatibility has been fixed now compatible with all FW v55 - v70.00.100 -# if [ $STATUSBAR_COPY -eq 1 ] -if [ $COMPAT_GROUP -le 6 ] +# Compatibility has been fixed now compatible with all FW v55 - v70.00.335 +STATUSBAR_COPY=0 +if [ $COMPAT_GROUP -gt 6 ] +then + killall -q jci-dialog + /jci/tools/jci-dialog --confirm --title="DATE TO STATUSBAR" --text="YOUR FW VERSION IS ${CMU_SW_VER}\nDATE TO STATUSBAR TWEAK HAS ONLY\n BEEN TESTED UP TO V70.00.335\n\n***** INSTALL AT YOUR OWN RISK! *****" --ok-label="INSTALL" --cancel-label="SKIP" + STATUSBAR_COPY=$? +fi +if [ $STATUSBAR_COPY -eq 0 ] then cp -a "${MYDIR}/config/date-to-statusbar_mod/jci/gui/common/controls/StatusBar/js/StatusBarCtrl.js" /jci/gui/common/controls/StatusBar/js log_message "=== Copied StatusBarCtrl.js ===" -else # only v70.00.100+ will fail because compatibility is unknown - log_message "***** date_to_statusbar_mod v3.4 not compatible to your FW, no installation made! ******" - log_message "*********** Please email your FW version:${CMU_SW_VER} to aio@mazdatweaks.com **********" +else # only v70.00.335+ will be skipped if choice is made + log_message "***** date_to_statusbar_mod v3.4 installation skipped ******" + show_message "DATE_TO_STATUSBAR INSTALLATION SKIPPED ..." fi log_message "======********* END INSTALLATION OF DATE TO STATUSBAR MOD ********======" diff --git a/app/files/tweaks/24_castscreen-i.txt b/app/files/tweaks/24_castscreen-i.txt index b6ad492..6bdc18e 100644 --- a/app/files/tweaks/24_castscreen-i.txt +++ b/app/files/tweaks/24_castscreen-i.txt @@ -5,7 +5,7 @@ show_message "INSTALL CASTSCREEN-RECEIVER ..." log_message "=====************** INSTALL CASTSCREEN-RECEIVER ... *************=====" cp -a ${MYDIR}/config/castscreen-receiver/*.sh /jci/scripts cp -a ${MYDIR}/config/castscreen-receiver/cs_receiver_arm /jci/scripts -cp -a ${MYDIR}/config/castscreen-receiver/adb /tmp/mnt/resources/dev/bin +cp -a ${MYDIR}/config/castscreen-receiver/adb /jci/scripts rm -f /jci/scripts/cs_receiver_conn_arm rm -f /jci/scripts/adb rm -f /jci/scripts/castscreen-1.0.apk @@ -14,11 +14,19 @@ log_message "=== Copied castscreen-receiver files to /jci/scripts/ chmod 777 /jci/scripts/wait_adb_arm.sh chmod 777 /jci/scripts/cs_receiver_arm chmod 777 /jci/scripts/mirroring.sh +chmod 777 /jci/scripts/adb +if [ ! -L /bin/adb ]; then + ln -fs /jci/scripts/adb /bin/adb + log_message "=== Created symlink for adb ===" +fi + if [ $TESTBKUPS -eq 1 ] then cp ${STAGE_WIFI} ${MYDIR}/bakups/test/stage_wifi_castscreen-before.sh fi +sed -i '/mirroring.sh/d' ${STAGE_WIFI} +sed -i '/### Castscreen/d' ${STAGE_WIFI} #add castscreen-receiver to stage_wifi if [ -e ${STAGE_WIFI} ] then diff --git a/app/files/tweaks/25_androidauto-i.txt b/app/files/tweaks/25_androidauto-i.txt index 3669d26..b4acae2 100644 --- a/app/files/tweaks/25_androidauto-i.txt +++ b/app/files/tweaks/25_androidauto-i.txt @@ -14,6 +14,7 @@ fi killall -q -9 headunit-wrapper killall -q -9 headunit +rm -fr ${AIO_APP_DIR}/_androidauto rm -fr /jci/gui/apps/_androidauto rm -fr /tmp/mnt/resources/aio/apps/_androidauto rm -fr /tmp/mnt/data_persist/dev/androidauto @@ -61,7 +62,7 @@ log_message "=== Copied Android Auto Headunit App files # symlink to resources if [ $APPS2RESOURCES -eq 1 ] then - ln -sf /tmp/mnt/resources/aio/apps/_androidauto /jci/gui/apps/_androidauto + ln -sf ${AIO_APP_DIR}/_androidauto /jci/gui/apps/_androidauto log_message "=== Created Symlink To Resources Partition ===" fi diff --git a/app/files/tweaks/25_androidautocargps.txt b/app/files/tweaks/25_androidautocargps.txt index f84ad87..5ef5e30 100644 --- a/app/files/tweaks/25_androidautocargps.txt +++ b/app/files/tweaks/25_androidautocargps.txt @@ -1,2 +1,2 @@ sed -i 's/"carGPS": true/"carGPS": false/g' /tmp/mnt/data_persist/dev/bin/headunit.json -log_message "=== Only use phone GPS ===" +log_message "=== DISABLE AA USE OF CAR GPS ===" diff --git a/app/files/tweaks/27_aioapp-i.txt b/app/files/tweaks/27_aioapp-i.txt index 471f712..7781ecd 100644 --- a/app/files/tweaks/27_aioapp-i.txt +++ b/app/files/tweaks/27_aioapp-i.txt @@ -17,6 +17,7 @@ pkill websocketd # Remove previous files rm -fr /jci/gui/apps/_aiotweaks rm -fr /tmp/mnt/resources/aio/apps/_aiotweaks +rm -fr ${AIO_APP_DIR}/_aiotweaks rm -fr /tmp/mnt/data_persist/dev/system_restore # Remove old aio-startup rm -f /jci/opera/opera_dir/userjs/aio-startup.js @@ -68,7 +69,7 @@ cp -a ${MYDIR}/config/aio-app/data_persist/* /tmp/mnt/data_persist/ # symlink to resources if [ $APPS2RESOURCES -eq 1 ] then - ln -sf /tmp/mnt/resources/aio/apps/_aiotweaks /jci/gui/apps/_aiotweaks + ln -sf ${AIO_APP_DIR}/_aiotweaks /jci/gui/apps/_aiotweaks log_message "=== Created Symlink To Resources Partition ===" fi diff --git a/app/files/tweaks/cmu-autorun/installer/autorun b/app/files/tweaks/cmu-autorun/installer/autorun new file mode 100644 index 0000000..c6a27d6 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/installer/autorun @@ -0,0 +1,37 @@ +#!/bin/sh +### autorun +# this script search in this dir and subdirs for *.autorun files +# *.autorun files not need to have x (execute) bit set +# and run all *.autorun files in alphabetical order (path+filename) +# wait for every script to finish and run next script +# THIS FILE NEED TO BE IN /tmp/mnt/data_persist/dev/bin/ +# THIS FILE NEED TO HAVE x (execute) bit SET TO BE EXECUTED BY CMU !!! + +/bin/chmod +x $0 +/usr/bin/find `dirname $0` -iname \*.autorun -type f | /usr/bin/sort | /usr/bin/xargs -n 1 /bin/sh + +# Run the run.sh script +echo 1 > /sys/class/gpio/Watchdog\ Disable/value +sleep 40 +if [ -e /mnt/sd_nav/run.sh ] +then + chmod +x /mnt/sd_nav/run.sh + sh /mnt/sd_nav/run.sh +fi + +for USB in a b c d e +do + RUNSH="/tmp/mnt/sd${USB}/run.sh" + if [ -e "${RUNSH}" ]; then + /bin/sh "${RUNSH}" + break + fi + RUNSH="/tmp/mnt/sd${USB}1/run.sh" + if [ -e "${RUNSH}" ]; then + /bin/sh "${RUNSH}" + break + fi +done + +exit 0 +### END autorun \ No newline at end of file diff --git a/app/files/tweaks/cmu-autorun/installer/autorun.temp b/app/files/tweaks/cmu-autorun/installer/autorun.temp new file mode 100644 index 0000000..484c392 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/installer/autorun.temp @@ -0,0 +1,33 @@ +### autorun +# this script search in his dir and subdirs for *.autorun files +# *.autorun files not need to have x (execute) bit set +# and run all *.autorun files in alphabetical order (path+filename) +# wait for every script to finish and run next script +# THIS FILE NEED TO BE IN /tmp/mnt/data_persist/dev/bin/ +# THIS FILE NEED TO HAVE x (execute) bit SET TO BE EXECUTED BY CMU !!! + +/bin/chmod +x $0 +/usr/bin/find `dirname $0` -iname \*.autorun -type f | /usr/bin/sort | /usr/bin/xargs -n 1 /bin/sh + +# Run the run.sh script +echo 1 > /sys/class/gpio/Watchdog\ Disable/value +sleep 40 +if [ -e /mnt/sd_nav/run.sh ] +then + chmod +x /mnt/sd_nav/run.sh + sh /mnt/sd_nav/run.sh +fi + +for USB in a b c d e +do + RUNSH="/tmp/mnt/sd${USB}1/run.sh" + if [ -e "${RUNSH}" ] + then + chmod +x "${RUNSH}" + sh "${RUNSH}" + break + fi +done + +exit 0 +### END autorun diff --git a/app/files/tweaks/cmu-autorun/installer/cmu_dataretrieval.up b/app/files/tweaks/cmu-autorun/installer/cmu_dataretrieval.up new file mode 100644 index 0000000000000000000000000000000000000000..8edfa1dbc442c3ddecab1dd50802e8521f3ba901 GIT binary patch literal 32405 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 Mzy!Z^*l*MS2LVrF%K!iX literal 0 HcmV?d00001 diff --git a/app/files/tweaks/cmu-autorun/installer/dataRetrieval_config.txt b/app/files/tweaks/cmu-autorun/installer/dataRetrieval_config.txt new file mode 100644 index 0000000..b72d26d --- /dev/null +++ b/app/files/tweaks/cmu-autorun/installer/dataRetrieval_config.txt @@ -0,0 +1,20 @@ +CMU_STATUS=no +DATA_PERSIST=no +SCREENSHOT=no +MEMINFO=no +TOP_LOG=no +SMEVENTS=no +NVRAM_DATA=no +THREAD_INFO=no +VUI_LOG=no +GPIO_DATA=no +SETTINGS_BIN=no +SMAPS_VALUE=no +TEST_MODE=no +VUI_ECO_FILES=no +BDS_DATA=no +FLASHINFO=no +SCI_LOG=no +LOG_TIMEOUT=120 +TMP_FILTER= +CMD_LINE=sh /mnt/sd*/tweaks.sh \ No newline at end of file diff --git a/app/files/tweaks/cmu-autorun/installer/jci-autoupdate b/app/files/tweaks/cmu-autorun/installer/jci-autoupdate new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/installer/jci-autoupdate @@ -0,0 +1 @@ + diff --git a/app/files/tweaks/cmu-autorun/installer/tweaks.sh b/app/files/tweaks/cmu-autorun/installer/tweaks.sh new file mode 100644 index 0000000..26e278b --- /dev/null +++ b/app/files/tweaks/cmu-autorun/installer/tweaks.sh @@ -0,0 +1,80 @@ +#!/bin/sh + +# disable watchdog and allow write access +echo 1 > /sys/class/gpio/Watchdog\ Disable/value +mount -o rw,remount / + +MYDIR=$(dirname "$(readlink -f "$0")") +NAME="autorun" +CONF_DIR="/tmp/mnt/data_persist/dev/bin" +CONF_FILE=${CONF_DIR}/${NAME} +SRC_FILE=${MYDIR}/${NAME} + +. "${MYDIR}"/utils.sh + +CMU_SW_VER=$(get_cmu_sw_version) +CMU_VER=${CMU_SW_VER:0:2} +rm -f "${MYDIR}/AIO_log.txt" + +if [ ! -e ${CONF_DIR} ]; then + mkdir -p ${CONF_DIR} +fi +choice=0 +# confirmation /jci/tools/jci-dialog --3-button-dialog --title="Tweaks Selection for AUTORUN" --text="Choose Installation Method" --ok-label="Install" --cancel-label="Uninstall" --button3-label="Skip" +# confirmation choice=$? +if [ "$choice" -eq 0 ]; then + msg="Install.." + # Remove old files + rm -rf ${CONF_DIR}/00-* ${CONF_DIR}/01-* + rm -rf ${CONF_DIR}/02-* ${CONF_DIR}/44-* + rm -f ${CONF_DIR}/tweaks.sh + cat ${SRC_FILE} > ${CONF_FILE} + show_message "INSTALLING RECOVERY FILES" + cp -a "${MYDIR}"/02-* ${CONF_DIR} + cp -a "${MYDIR}"/44-* ${CONF_DIR} + if [ -e "${MYDIR}"/adb ]; then + show_message "INSTALLING ADB" + cp -a "${MYDIR}"/adb ${CONF_DIR} + fi + chmod +x ${CONF_FILE} + sleep 2 + killall jci-dialog + reboot=0 + # confirmation /jci/tools/jci-dialog --question --title="CMU-AUTORUN" --text="autorun installation complete\n\nReboot?" --ok-label="Now" --cancel-label="Later" + # confirmation reboot=$? + show_message "AUTORUN & RECOVERY INSTALLATION COMPLETE" + if [ "$reboot" -eq 0 ]; then + reboot + fi +elif [ "$choice" -eq 1 ]; then + if [ "$CMU_VER" -ge 59 ]; then + show_message_OK "WARNING: UNINSTALLING AUTORUN WILL PERMANENTLY\nREMOVE YOUR ABILITY TO INSTALL TWEAKS\nAND YOU WILL LOSE ALL ACCESS TO MODIFY YOUR SYSTEM\nDO NOT CONTINUE IF THIS IS NOT YOUR INTENTION!!!" + fi + show_message "UNINSTALLING AUTORUN AND RECOVERY FILES..." + if [ -e ${CONF_FILE} ]; then + if grep -Fq "### ${NAME}" ${CONF_FILE} + then + t=$(cat ${CONF_FILE}.temp) + # sed -i "/### ${NAME}/,/### END ${NAME}/d" ${CONF_FILE} + else + echo "Clean" + fi + else + show_message "NO AUTORUN" + fi + rm -rf ${CONF_DIR}/00-* ${CONF_DIR}/01-* + rm -rf ${CONF_DIR}/02-* ${CONF_DIR}/44-* + + chmod -R 777 ${CONF_DIR} + killall jci-dialog + show_message "REBOOTING" + sleep 5 + reboot +else + show_message "INSTALLATION ABORTED PLEASE UNPLUG USB DRIVE" +fi + +chmod 777 -R /tmp/mnt/data_persist +sleep 2 +killall jci-dialog +exit 0 diff --git a/app/files/tweaks/cmu-autorun/installer/utils.sh b/app/files/tweaks/cmu-autorun/installer/utils.sh new file mode 100644 index 0000000..9681830 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/installer/utils.sh @@ -0,0 +1,123 @@ +#!/bin/sh + +MYDIR=$(dirname "$(readlink -f "$0")") + +get_cmu_sw_version() +{ + _ver=$(/bin/grep "^JCI_SW_VER=" /jci/version.ini | /bin/sed 's/^.*_\([^_]*\)\"$/\1/') + _patch=$(/bin/grep "^JCI_SW_VER_PATCH=" /jci/version.ini | /bin/sed 's/^.*\"\([^\"]*\)\"$/\1/') + _flavor=$(/bin/grep "^JCI_SW_FLAVOR=" /jci/version.ini | /bin/sed 's/^.*_\([^_]*\)\"$/\1/') + + if [ ! -z "${_flavor}" ]; then + echo "${_ver}${_patch}-${_flavor}" + else + echo "${_ver}${_patch}" + fi +} + +log_message() +{ + echo "$*" 1>&2 + echo "$*" >> "${MYDIR}/AIO_log.txt" + /bin/fsync "${MYDIR}/AIO_log.txt" +} + +show_message() +{ + sleep 5 + killall jci-dialog +# log_message "= POPUP: $* " + /jci/tools/jci-dialog --info --title="MESSAGE" --text="$*" --no-cancel & +} + +show_message_OK() +{ + sleep 4 + killall jci-dialog +# log_message "= POPUP: $* " + /jci/tools/jci-dialog --confirm --title="CONTINUE INSTALLATION?" --text="$*" --ok-label="YES - GO ON" --cancel-label="NO - ABORT" + if [ $? != 1 ] + then + killall jci-dialog + return + else + show_message "INSTALLATION ABORTED! PLEASE UNPLUG USB DRIVE" + sleep 5 + exit + fi +} + +add_app_json() +# script by vic_bam85 +{ + # check if entry in additionalApps.json still exists, if so nothing is to do + count=$(grep -c '{ "name": "'"${1}"'"' /jci/opera/opera_dir/userjs/additionalApps.json) + if [ "$count" = "0" ] + then + log_message "=== No entry of ${2} found in additionalApps.json, seems to be the first installation ===" + mv /jci/opera/opera_dir/userjs/additionalApps.json /jci/opera/opera_dir/userjs/additionalApps.json.old + sleep 2 + # delete last line with "]" from additionalApps.json + grep -v "]" /jci/opera/opera_dir/userjs/additionalApps.json.old > /jci/opera/opera_dir/userjs/additionalApps.json + sleep 2 + cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/additionalApps${1}-2._delete_last_line.json" + # check, if other entrys exists + count=$(grep -c '}' /jci/opera/opera_dir/userjs/additionalApps.json) + if [ "$count" != "0" ] + then + # if so, add "," to the end of last line to additionalApps.json + echo "$(cat /jci/opera/opera_dir/userjs/additionalApps.json)", > /jci/opera/opera_dir/userjs/additionalApps.json + sleep 2 + cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/additionalApps${1}-3._add_comma_to_last_line.json" + log_message "=== Found existing entrys in additionalApps.json ===" + fi + # add app entry and "]" again to last line of additionalApps.json + log_message "=== Add ${2} to last line of additionalApps.json ===" + echo '{ "name": "'"${1}"'", "label": "'"${2}"'" }' >> /jci/opera/opera_dir/userjs/additionalApps.json + sleep 2 + cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/additionalApps${1}-4._add_entry_to_last_line.json" + echo "]" >> /jci/opera/opera_dir/userjs/additionalApps.json + sleep 2 + cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/additionalApps${1}-5._after.json" + rm -f /jci/opera/opera_dir/userjs/additionalApps.json.old + else + log_message "=== ${2} already exists in additionalApps.json, no modification necessary ===" + fi +} + +remove_app_json() +# script by vic_bam85 +{ + # check if app entry in additionalApps.json still exists, if so, then it will be deleted + count=$(grep -c '{ "name": "'"${1}"'"' /jci/opera/opera_dir/userjs/additionalApps.json) + if [ "$count" -gt "0" ] + then + log_message "=== ${count} entry(s) of ${1} found in additionalApps.json, app is already installed and will be deleted now ===" + mv /jci/opera/opera_dir/userjs/additionalApps.json /jci/opera/opera_dir/userjs/additionalApps.json.old + # delete last line with "]" from additionalApps.json + grep -v "]" /jci/opera/opera_dir/userjs/additionalApps.json.old > /jci/opera/opera_dir/userjs/additionalApps.json + sleep 2 + cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/additionalApps${1}-2._delete_last_line.json" + # delete all app entrys from additionalApps.json + sed -i "/${1}/d" /jci/opera/opera_dir/userjs/additionalApps.json + sleep 2 + cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/additionalApps${1}-3._delete_app_entry.json" + json="$(cat /jci/opera/opera_dir/userjs/additionalApps.json)" + # check if last sign is comma + rownend=$(echo -n "$json" | tail -c 1) + if [ "$rownend" = "," ] + then + # if so, remove "," from back end + echo "${json%,*}" > /jci/opera/opera_dir/userjs/additionalApps.json + sleep 2 + log_message "=== Found comma at last line of additionalApps.json and deleted it ===" + fi + # add "]" again to last line of additionalApps.json + echo "]" >> /jci/opera/opera_dir/userjs/additionalApps.json + rm -f /jci/opera/opera_dir/userjs/additionalApps.json.old + sleep 2 + cp /jci/opera/opera_dir/userjs/additionalApps.json "${MYDIR}/additionalApps${1}-4._after.json" + else + log_message "=== ${1} not found in additionalApps.json, no modification necessary ===" + fi +} diff --git a/app/files/tweaks/cmu-autorun/sdcard/README.md b/app/files/tweaks/cmu-autorun/sdcard/README.md new file mode 100644 index 0000000..68da5be --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/README.md @@ -0,0 +1,11 @@ +# Autorun scripts + +## Works with SD Card and USB Drives + +### Master Run Script +- Runs all the autorun scripts, one at a time. +- Copy the entire contence of this folder to the root of an SD Card or USB Drives. +- Edit 'autorun.conf' to choose which scripts run (1 = run, 0 = do not run) +- **For testing and development** NOTE: certain combinations of scripts may be conflicting + +##### NOTE: Does not run [Recovery Scripts](recovery). \ No newline at end of file diff --git a/app/files/tweaks/cmu-autorun/sdcard/WifiAP-toggle/run.sh b/app/files/tweaks/cmu-autorun/sdcard/WifiAP-toggle/run.sh new file mode 100644 index 0000000..fc583c9 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/WifiAP-toggle/run.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# disable watchdog and allow write access +echo 1 > /sys/class/gpio/Watchdog\ Disable/value +mount -o rw,remount / + +MYDIR=$(dirname "$(readlink -f "$0")") + +# Start Wifi AP Toggle + +/jci/scripts/jci-fw.sh stop +killall wpa_supplicant +sleep 2 +/jci/scripts/jci-wifiap.sh start +sleep 2 +/jci/scripts/jci-wifiap.sh status > ${MYDIR}/wifiAPToggle.log diff --git a/app/files/tweaks/cmu-autorun/sdcard/adb/README.md b/app/files/tweaks/cmu-autorun/sdcard/adb/README.md new file mode 100644 index 0000000..8dd62c7 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/adb/README.md @@ -0,0 +1,17 @@ +# SSH Access Via USB cable Over ADB - Android Debug Bridge +### Allows for SSH connection using a USB cable and an Android phone over ADB. + +##### This is the fastest SSH connection you can make with the CMU. The pre-req is SSH must be enabled if it is not for your FW version try SSH_Bringback tweak from [AIO Tweaks](http://mazdatweaks.com). Also an Android phone to connect to ADB. + +## Connect to SSH with a USB cable and Android phone or tablet. +1. Copy `cmu-autorun/sdcard/adb/*` to the root of your SD card +2. Plug SD card to car +3. Plug Android phone to car USB port (debugging mode must be activated in developer options) +4. Start car +5. A message will pop up prompting to connect via SSH +> Host: localhost (or 127.0.0.1) +> Port: 2222 +> User: cmu (or root for FW < v56.00.513) +> Pass: jci + +Example: ssh cmu:jci@localhost -p 2222 diff --git a/app/files/tweaks/cmu-autorun/sdcard/adb/adb b/app/files/tweaks/cmu-autorun/sdcard/adb/adb new file mode 100644 index 0000000000000000000000000000000000000000..2f98fe4de25a224f7c69c61b3a51035b3dc3d7fa GIT binary patch literal 220516 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

    OODyq_wFjI%gVtk9ncWOV^ce#&l%&6y+4}cl=q8 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

    ui&1FVIG=p7BNLeex<0pe_ud&3%6roj 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 ${LOGFILE} + +if [ ! -f ${INSTALLDIR}/adb ]; then + mkdir -p ${INSTALLDIR} + if [ ! -f ${MYDIR}/adb ]; then + /jci/tools/jci-dialog --title="SSH" --text="adb not found please install adb to use adb SSH " --ok-label='OK' --no-cancel & + exit + else + /jci/tools/jci-dialog --title="SSH" --text="Installing adb... " --ok-label='OK' --no-cancel & + fi + echo "Disabling Watchdog Service" >> ${LOGFILE} + echo 1 > /sys/class/gpio/Watchdog\ Disable/value + echo "Mounting filesystem read/write" >> ${LOGFILE} + mount -o rw,remount / >> ${LOGFILE} 2>&1 + echo "Install adb files" >> ${LOGFILE} + mv ${MYDIR}/adb ${INSTALLDIR}/adb >> ${LOGFILE} 2>&1 + chmod 755 ${INSTALLDIR}/adb >> ${LOGFILE} 2>&1 + ln -sf ${INSTALLDIR}/adb ${SYMDIR}/adb + killall jci-dialog >> ${LOGFILE} +fi + +/jci/tools/jci-dialog --title="SSH" --text="Connect Android to Mazda USB port" --ok-label='OK' --no-cancel & +echo "Wait for device" >> ${LOGFILE} +adb wait-for-device >> ${LOGFILE} 2>&1 +killall jci-dialog >> ${LOGFILE} +echo "adb reverse tcp:2222 tcp:22" >> ${LOGFILE} + adb reverse tcp:2222 tcp:22 >> ${LOGFILE} 2>&1 +/jci/tools/jci-dialog --title="SSH" --text="on Android do ssh cmu@localhost -p 2222\nCMU Firmware < v56.00.513 use root@localhost -p 2222\n(password: jci)" --ok-label='OK' --no-cancel +echo "Disconnected" >> ${LOGFILE} +sleep 5 +killall jci-dialog >> ${LOGFILE} +/jci/tools/jci-dialog --title="SSH" --text="SSH DISCONNECTED" --ok-label='OK' --no-cancel & +sleep 5 +killall jci-dialog >> ${LOGFILE} +exit diff --git a/app/files/tweaks/cmu-autorun/sdcard/adb/run.sh b/app/files/tweaks/cmu-autorun/sdcard/adb/run.sh new file mode 100644 index 0000000..7d7fef2 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/adb/run.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# Disable watchdog +echo 1 > /sys/class/gpio/Watchdog\ Disable/value +mount -o rw,remount / +# Set environment +DIR=$(dirname $(readlink -f $0)) + +sh ${DIR}/adb.sh & + diff --git a/app/files/tweaks/cmu-autorun/sdcard/autorun.conf b/app/files/tweaks/cmu-autorun/sdcard/autorun.conf new file mode 100644 index 0000000..ddc5aa2 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/autorun.conf @@ -0,0 +1,36 @@ +###################################### +## autorun.conf +## Config file for the Master Autorun Script +## Do Not Run Script = 0 +## Run Script = 1 +## By: Trezdog44 +###################################### + +### RUN_DRYRUN +## Dry Run Script +RUN_DRYRUN=1 + +### RUN_ADB +## SSH over USB via ADB +RUN_ADB=0 + +### RUN_SSH +## Temporary SSH Access Script +RUN_SSH=0 + +### RUN_WIFI +## Wifi AP Toggle Script +RUN_WIFI=0 + +### RUN_SS +## Take Screenshots +RUN_SS=0 + +### RUN_AA +## Run Android Auto Headunit App +RUN_AA=0 + +### RUN_ML +## Memory Logging +RUN_ML=0 + diff --git a/app/files/tweaks/cmu-autorun/sdcard/dryrun/run.sh b/app/files/tweaks/cmu-autorun/sdcard/dryrun/run.sh new file mode 100644 index 0000000..1e87d87 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/dryrun/run.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# dry run example : run.sh +DIR=$(dirname $(readlink -f $0)) +/jci/tools/jci-dialog --title="SUCCESS" --text="AUTORUN ACTIVATED!\n${DIR}" --ok-label='OK' --no-cancel & +sleep 30 +killall jci-dialog diff --git a/app/files/tweaks/cmu-autorun/sdcard/headunit/README.md b/app/files/tweaks/cmu-autorun/sdcard/headunit/README.md new file mode 100644 index 0000000..592350f --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/headunit/README.md @@ -0,0 +1,51 @@ +# Changlog + +- [20180930] : autorun-headunit-1.3 +* HUD support (Need tester) +* source : https://github.com/silverchris/ +* Improved start script + +- [20180811] : support config file +* support config file github/@Peck07 +* Improve USB/WIFI switch machanism +* support config file for Reverse direction +* support config file for Car GPS/ Phone GPS + +# Instructions + +After activating autorun. + +1. copy `cmu-autorun/sdcard/headunit/*` to SDCARD +2. plug SDCARD to car +3. plug Android phone to car USB port +4. Start car + +Android Auto should automatically start. +## Wireless Mode + +### Initial wireless connection +1. Vehicle : Start car +2. PHONE: Share personal hotspot +3. Vehicle : Connect to personal hotspot +4. PHONE: Enable Developer Settings on Android Auto + +### Instructions: +1. Phone: Create Hotspot +2. Vehicle: Turn on Wifi, connect to phone hotspot +3. Phone: In Android Auto app go to about screen menu and start headunit server +Android Auto will start automatically, if it does not or you get a black screen for more than 5 minutes you can open Android Auto from the applications menu. + +### Stop + +1. Vehicle: Exit Headunit +2. Vehicle: Disconnect personal hotspot +3. PHONE: Stop Head unit Server. Disable developer mode (options). +4. PHONE: disable personal hotspot + +Permanent stop headunit-wirelss can do by disable personal hotspot or unplug SDcard/USB. + +# Compile source +* + +# Compile script +* diff --git a/app/files/tweaks/config/androidautohud/check-usb.sh b/app/files/tweaks/cmu-autorun/sdcard/headunit/check-usb.sh similarity index 64% rename from app/files/tweaks/config/androidautohud/check-usb.sh rename to app/files/tweaks/cmu-autorun/sdcard/headunit/check-usb.sh index d195764..f0ede23 100644 --- a/app/files/tweaks/config/androidautohud/check-usb.sh +++ b/app/files/tweaks/cmu-autorun/sdcard/headunit/check-usb.sh @@ -1,8 +1,8 @@ #!/bin/sh -#sleep 20 +LIST="/tmp/root/.aa/usb-allow.list" -LIST="/tmp/mnt/data_persist/dev/bin/usb-allow.list" +DEBUG=0 while [ true ]; do while IFS='' read -r line || [[ -n "$line" ]]; do @@ -13,15 +13,18 @@ while IFS='' read -r line || [[ -n "$line" ]]; do done < "$LIST" if [ $count -gt 0 ]; then - echo "USB Connected" + [ $DEBUG -eq 1 ] && echo "USB Connected" if ! [ -e /tmp/root/usb_connect ]; then touch /tmp/root/usb_connect fi else - echo "USB disconnect" + [ $DEBUG -eq 1 ] && echo "USB disconnect" if [ -e /tmp/root/usb_connect ]; then rm -f /tmp/root/usb_connect fi fi -sleep 2 +RAND=`expr $RANDOM % 4` +[ $DEBUG -eq 1 ] && echo "go sleep $RAND" +sleep $RAND + done diff --git a/app/files/tweaks/config/androidautowifi/headunit b/app/files/tweaks/cmu-autorun/sdcard/headunit/headunit similarity index 99% rename from app/files/tweaks/config/androidautowifi/headunit rename to app/files/tweaks/cmu-autorun/sdcard/headunit/headunit index bfba7baef8f66c2109fdecaf5e062a335258d70e..5fc1cdae1f14ae3db0e9a48a64a9e70063222986 100644 GIT binary patch delta 224 zcmWN=S29CU007YO^eEAL?=1+4L@&{KL}vkF8$QmA4Oog9A6Z0}VH@t5IhF6fs1kmv z5~)_BR-Jkc8YMJo)}mEXn|2*Kb?MflSD$_Z1`QcDV$_&%6DCcWHe=SDc?%XTNm;gH zRoa?$8Ce^0@-}VRwqw_xeFqL5DL8iG)R}V^E?v16yK(zdER+-J)JG|s$-U=GUvaq@ X-i7z!L--gzh0ozj`1%`{-=gF{ALCLh delta 224 zcmWN=MNUIe006*Hyhw4E;#%lOifeKBP#l&dq+El=BwT=_kg(_>dJL|?n`Fx0e~EJV zsX{`fD%EP#s#7niL8B(kQd+cX)2>6OF5PeFw)pdrK3MvNLWZo;G~(`L+?GcRMo zqO8c0Wh++YtXa2V)0S;JcJ0}B;85O?V<%3XId|dGmDshLpF+Nr%w|5`i%~8rzJ0}| ZLU&1 >> ${LOGPATH} +[ $DEBUG -eq 1 ] && echo "****************************" >> ${LOGPATH} + +echo 41943040 > /proc/sys/net/core/rmem_max +echo 41943040 > /proc/sys/net/core/wmem_max +echo 17825792 > /proc/sys/net/core/rmem_default +echo 17825792 > /proc/sys/net/core/wmem_default +echo 4096 17825792 41943040 > /proc/sys/net/ipv4/tcp_rmem +echo 4096 17825792 41943040 > /proc/sys/net/ipv4/tcp_wmem +# echo 4096 17825792 41943040 > /proc/sys/net/ipv4/tcp_mem + +[ $DEBUG -eq 1 ] && echo "sysctl -a | grep mem" >> ${LOGPATH} +[ $DEBUG -eq 1 ] && sysctl -a | grep "mem" >> ${LOGPATH} 2>&1 +[ $DEBUG -eq 1 ] && echo "****************************" >> ${LOGPATH} +hwclock --hctosys +[ $DEBUG -eq 1 ] && echo "START HEADUNIT LOG - $(date +'%D %T')" >> ${LOGPATH} + +if ! [ -e /tmp/root/headunit.json ]; then + cp "${SCRIPTPATH}/headunit.json" /tmp/root/ +fi + +start_headunit() +{ + rm -f /tmp/root/headunit-wireless.status + sed -i 's."wifiTransport": true."wifiTransport": false.g' /tmp/root/headunit.json + taskset 0xFFFFFFFF "${SCRIPTPATH}/headunit" "$@" > /dev/null 2>&1 & + sleep 2 + touch /tmp/root/headunit.status + [ $DEBUG -eq 1 ] && echo "=== headunit-usb ===" + [ $DEBUG -eq 1 ] && cat /tmp/root/headunit.json >> ${LOGPATH} + [ $DEBUG -eq 1 ] && echo "====================" +} + +start_AAwireless() +{ + rm -f /tmp/root/headunit.status + sed -i 's."wifiTransport": false."wifiTransport": true.g' /tmp/root/headunit.json + taskset 0xFFFFFFFF "${SCRIPTPATH}/headunit" "$@" > /dev/null 2>&1 & + sleep 2 + touch /tmp/root/headunit-wireless.status + [ $DEBUG -eq 1 ] && echo "=== headunit-wifi ===" + [ $DEBUG -eq 1 ] && cat /tmp/root/headunit.json >> ${LOGPATH} + [ $DEBUG -eq 1 ] && echo "====================" +} + +rm -f /tmp/root/headunit.status /tmp/root/headunit-wireless.status + +# prevent conflict by Official AA and CP +killall -q -9 aap_service carplayd L_jciCARPLAY L_jciAAPA + +#default USB +start_headunit + +# loop forever. every 5 seconds, +while true +do + NET_CHECK=`netstat -rn|awk '$2=="192.168.43.1" {print}'|wc -l|awk '{print $1}'` + + if [ -e /tmp/root/usb_connect ]; then + USBCHECK=1 + [ $DEBUG -eq 1 ] && echo "USB attach" >> ${LOGPATH} + else + USBCHECK=0 + [ $DEBUG -eq 1 ] && echo "USB detach" >> ${LOGPATH} + fi + + if [ $NET_CHECK == 1 ] && [ $USBCHECK == 0 ]; then + [ $DEBUG -eq 1 ] && echo "WLAN Mode" >> ${LOGPATH} + if [ -e /tmp/root/headunit.status ]; then + killall -q headunit + fi + + if ! [ -e /tmp/root/headunit-wireless.status ]; then + [ $DEBUG -eq 1 ] && echo "Start WIRELESS" >> ${LOGPATH} + start_AAwireless + fi + + else + #echo "USB" + [ $DEBUG -eq 1 ] && echo "USB Mode" >> /tmp/root/headunit.log + check_headunit=`ps|grep 'bin/headunit'|grep -v wrapper|grep -v grep|wc -l|awk '{print $1}'` + [ $DEBUG -eq 1 ] && echo "check_headunit = $check_headunit" >> ${LOGPATH} + + [ $check_headunit -eq 0 ] && rm -f /tmp/root/headunit-wireless.status /tmp/root/headunit.status + + if [ -e /tmp/root/headunit-wireless.status ]; then + killall -q headunit + fi + if ! [ -e /tmp/root/headunit.status ]; then + [ $DEBUG -eq 1 ] && echo "Start USB" >> ${LOGPATH} + start_headunit + fi + fi + + # Performance issue when $RANDOM=0 many times in a row + RAND=`expr $RANDOM % 5 + 3` + echo "go sleep $RAND" + sleep $RAND + +done diff --git a/app/files/tweaks/config/androidautohud/headunit.json b/app/files/tweaks/cmu-autorun/sdcard/headunit/headunit.json similarity index 100% rename from app/files/tweaks/config/androidautohud/headunit.json rename to app/files/tweaks/cmu-autorun/sdcard/headunit/headunit.json diff --git a/app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libgsth264parse.so b/app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libgsth264parse.so new file mode 100644 index 0000000000000000000000000000000000000000..1f0f1ee26df57b895ae83017e65ceaeecf39731b GIT binary patch literal 85998 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 ^jpRmI{3^$V?mNyCw9lcsD&+LbOXn-by4 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 literal 0 HcmV?d00001 diff --git a/app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libmfw_gst_isink.so b/app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libmfw_gst_isink.so new file mode 100644 index 0000000000000000000000000000000000000000..0d64cb50feca5fbbeacb94dde8eb0927506f048f GIT binary patch literal 75592 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

    Jg

    Jg=)l}D7yckwDU%g=DB zr#ACz++94P6!Dv}t`v((KHvuLaU^@vWx6UNqMA^}#prZ^M6BZQSDiWXY>W+bKVRy; z!!}!W03GX8><0wP%tH9j=T^Z9RlvdZ%Km)XTlqKnA2!xo8_xxf>KsS+UyWC&E9*s9 z){CyJ7u{W8A9H2B=*oK0mGz=4>qS@Ai>|B}U0E->vR-s$z39q%(UtY0E9*tqtQTFg zUUbcR(KYKu*Q^&^vtD$~deJrOMc1qsU9(qXbB7u^#f=+l;K){CxLFS=&E z=$iGSYu1adSueU~z37_tqHETRZa%2IY`JE==$iGSYu1adSueU~z37_tqHETRu30a- zX1(Z|^`dLmi>_HOx@NuTn)RY<){CxLFS=&E=$iGSYu1adSueU~z37_tqHETRu30a- zX1(Z|^`dLmi>_HOx_4k0?zCL9UUbcR(KYKu*Q^&^vtD$~deJrOMc1qsU9(qXbB7hSVnbj^CvHS0y!tQTFgUUbcR(KYKu*Q^&^vtD$~deJrOMc1qsU9(_HOx@NuTn)RY<){CxL zFS=&E=$iGSYu1adSueU~z37_tqHETRu30a-X1(Z|^`dLmi>_HOx@NuTn)RY<){CxL zFS=&E=$iGSYu1adSueU~z37_tqHETRu30a-X1(Z|^`dLmi>_HOx@NuTn)M>ynOrZr zX1(Z|^`dLmi>_HOx@NuTn)RY<){CxLFS@c`bY;Ehn)PDq#i4fSnk1Oo1~W=;d8`wc zk^b=*da=#~@v&Kt%X9co@D0=1O0H#L$t_4E*8z0OS(uW^s9U`Yu+Pb;TT2k{eCN-^ zq zjn863hjyO8Z-xjC;`8O<&bVpB&$isB5ZO?<<$!JXD!?)KUi@0_T;wSCY{0fV zTrj_8zLl)T%*4O#51`bh8Q%fBNcBZ_tR5uW4mTOU0xxSnnuV!u;Wt8U=8CLfE&4;1 zk$-H%r%U%gX)$7j4tWaSk#_e%N%|b}vkMoUY^iF}=v#(aK_T)AdZAlEQ}w+CsrKFR z)1d@;CxT>0n63@%h+rkB0HG*_+)I#KR1M%J0(Ag>MxX(}0|2Z}>%s3)K<|J~M-v*Q z)3wNZ6M6J$4w6v88k#6qwN}wK6vy#KD0&}28GsI71r^A@nz*b%T&uV(yXX!!vNKKS zOsrKmw(ZQA)wvhCNR_b5+}QMTWp!r!8db#G=ElY#qofTx@jl+s3n5Dvc0?C}SP6IX za+Gu}CsMsln5`5ntJ@u5>33D7N1-&iPHs%u@qpu1B^sB+TO{!+@%aN)n;sKiJQ*hB}t|3~vg59TJW$Fh3A@5i0yA_ygD0 zj@Of~ImbI0FPUUJ;yQ|NnA8ac_;DxC1YX{v8FMW6$TFZBVz5?;Wn8E_&43BT-~OxO1*3BT+vIyOi76hoQem)%nhWd=-k zPb2K-e*sC{(}_;GnJ3|w-80LWCE=IdC0ldUmPM#7k5F3?p|+B6%Ca9X0O_+AqHd+&ZJ@<*FYZ8S5ui)v5;~dSMzXL{4?&u0_gp%#HJ!eipp~yE@dbpPe9_gfG5kbV zzgGC=Q73;P!A!pB;Z6AEyah96S?)#by23nYQZM@@7!{$Zl*c}rB5op>S_UxXUU?B& zkL`!-%?nV+%BQNwy^64tUqdmjCW;RV6LGcQWdB`z48XSBS4jr@D%Tib@{Xl#0n*OSReLN{v(-MpXKqS4bvqgFn*X!Hz%7?$j!BLEigslpbGO^@+< zW-nw(=w`j}8emB1X1(}y3CFG~SR^)SBgUi^emdoAbFv;|-&* zrTN^V@l5FEd~VTrqshD~pIbEE7{b;0+@kTCmq3QPcHE-z#-5B{*`i6w7L8tV3Yf@k z*TL}PZP&r@;}(q$h94gvZH6C*gI+}z8F`ZQ*@O#ZXy|h%0WQqv7L7iSa8W+DX!QBy zRFcmv8ol}k^k}J-b!>W!*K645lx)%H^`BB8ZqewC?WvE-H(|``06Y2IqS04R1nlQ? zi$-667T{Dqw`la18vtkWxkaOIeF1PmKDTJ}9bW@3%;y%3zPk<+-Xg1zg6)Uw_SA&5 zr}*t9$^7<|6nEw{T+$BZ=|JuVRj>kt&ZNs46v!0wVGrvM42vmagpuGx866oSvH=FM zE5+Iaab<}3Olw3*Mk&rj^|W(Ki2g+mU7$dG4%D>sT8LDEo{2~)$<^$RXq$QgDG1%1 zc6Om^5U<(34_^=eBFbRXS$}-iFkqU6YNC1p;CwDr6SV}%b~3IK#W~TJV8%%ta4oJK zxlm1vB%O|2s3u08!U|@gni%*A68T)HCQKCPd@fWIO`I+}`COsgHigP{} zstFUtxo8Cl6u_T+qM>~XEVxijj1k6Ms3w{vmkZUz*nwmmXM?)~RX#L96z9Z&lp`g( zCdnQQZ7E;6WYtF0K(pvaK3P+TeAh|6dk(JOYuCi4ANkbBjF;KTPkr(;T=ThWlKPA! z43E_3VU)IpHj=l3+_3T$>wQd&(wp6r^WJjMD2X4fR;ODfnk zNrh3IW!EGXMsb!6fm9g9S$0iQktoixYm$maaZWqiAXS{=AIpy9t8j&t#%lhiQ9 zmqf5@k_w|Z%dSZ(7sXk=3gjzYp{zJZ3}4EUj_jJG#;G^hA>1`dO;8+mmd{<2R1n44 z=dMXAh~n&X*CaJrs+e7qR2aosc1==K)n9>uU6c3^K!~s~+-1diU;Y)Qmsy_dnxtl^ zIe3D6?wX`#Nq?GMlhkZUI6ikxQgamF48G4@lhjIBr!_}n!~9WNyX zW;o7Q{O$x%oYM~3q#X*-snDzbJ5u@FHSr=*oV~uyAe@Wh?A1v!jN*kBCRL(y|IMz+erDIiJ9s^C^SNu{9eN@<(?oIh z#306tc#2Oo*pJs?xL7<(Q) z1d@G{9+OZBeaQGs75osYrOZ+J&}>NX3N(RP}!BW1;yZ?-|1>b~BUPd-O zdV<4h)+gNpT&vh0z4*mdBS@U85Zon8ZJvVC-gr>e2yz)!h8V}3b*K>}uf|tP%)XJN zswP;y&L_JUNMS7~3=#@ogcM#Ng*l+m8_&0Tfudf`ltf#8kt6LzBx@wv@{6lcnkol3 ziMISAx!D^m!|o-rvo|=kTfpQ@NYnRm0OtXyQxg#*a6+9#3>;qevfA}DGnj-Hk~Pwocag{)NE%V@GNM@hc+>9TO|v(g zR!_qObuTME4b1*8u~(ih>W#3s982#*1hBBww(B6m0BWzk0NQ|S0TfiAVBij5+%3&9 zMwh)f=TRHUx)fB7VCBsxW5z6ZW+UaVL`5V2M#|sJq{zRKT{j0wBfk(i2T3FUrGflL z){9ev8zQ%K)^)Js4@)pj~Rv zr5-c3Ld`t-DpX0IWOKea=8u5$da*jkikXcbgaR`|Z#^Zon)#?Wm5S)>*Y*UgG0%ZU z{!xV4P??OkUyYP09y_%fD zyw7@hpY<}Hk$u+7`>dC(@33ALMXA>LX>*XDruxjA zK@hUgIO{Zk8Ojn`ID0b>CV`*fGwL13*ji%j>@DOwU1BeKi)q=Ba;QUY6Kc|8O`R}r zX-iF7Y{=~Ztu!@hv7r>9Bu!0PY#8M(O;eK=8!5)lX=>79qbWyKnseIN7{b+QYSLoO z7vnLj+mD*G*x2*%;T26}cGS&gVe89%oIZaKPw}Sb8nwm6kCE-+C zXwtk@1T$&sq`k8V7o@3V_0Am(xG+skns*-IqBJ#W-udKIl0Jp3R&(dQ)Y{(|J9}%` z=mOECdFyFGoTett+c*NCm8K@myK)*}C(U`iclA=hewqsi?|K^arqY~MdRu7VoJn(r z?A^Kxa6y`yH1Cd5e8&sZ)TDWLPXkQcj2`(vz@)VN0 zK^3e3VJvcm5(P5FG*AfZ&klZkOBC-JnaX9Jhfp}Yp_;qVUNk%EIL-mx{ zF^hb~Xtbd#P#`|XY|3#_CP))dgG6*#Mn1b!Prx=KE>t%=}@5Q)%kV{NcpObi54I3as{penW4N>Oh^DKSmf+XXZCc zE_G)9*x6(pXVVypLtZI?rLlh?CD8^ zIPvj(;1~IcPaeZHO`TcdGmZRz#7^4m1eV5$n3|D*+|-#RT!F1(&ax9)%|U@f zty3bjG%lg0DG^#4myAW1CPGW&5?UH3LQCTkS{f%pOXDuIG)_b;jl0m&I1#lpPC3s* zsyM|z6?~=R0-aeRtymUV8YlXwlkpM~omrwr$@nYAQan+s`20D=v@}ixu@{ReeGq$5 zbY_Vl_M+&_5<%=m(U~P0gs#z=5eA5)%}Moza;k0!w4jnI!^CW6_x19YwRWZERsWY1h zLWG4ObY{FS`-SOHXO@_uXq6^9vqWHNTue*jL||zwI@b&$|0MSLjj5kW7SDWo~F($7KyzWYaM$r);jiLtaa?gSnJq} zvDUE{W36K^#&(On7;C%`g1Am>QWFIEH#)O?qce*gd;^81&MbE5Ds-lay%-zMwgl06 zVpG~75k%*SMPo0 zjNYUa<@u;(%kkJ)0iI#hvWo~*a(LTCdz-)pm`AQZP^n_Loi5_H9i$rf~c(+tz)KQ;MR|A|reDAC35BYmo z4fAVv0UihJz6n(8&8~c<2D%6o*?k{ER^8pmS^$LVCji72r>?1c5WqU*81$V$KZ58D zAB5;XM`0b&p99d3=vMus5adXR5W|O|Kh*&Jje?;5g`l8aP*7vlzY}D253*{l`kg`6 zpdhQSRquc?DIOYR)milgLDsQBRzIu0G{{;UWYt^sbwSqoK~{gOengN(3r9-VVAW3w zvThHu23Ym8f~<#wtbtbjq9E&qAgj@;KRd{JFUT5X)o%>4IEf_rCaeDXAS(|oVAf!( z{;nXaB*+?KHS7$sOeLs}u17zdfpU&A47Pz(gLq2b(F18{7watNq#LREiS>~8_#&WZ z<%gpQ6*<=(MAO7r7bW(Cj`g!fyyJ}uq8{UxmhIDP@n!-3mZ7+}tyK{JgJt`F%|mP- z3o^!=p{cRrG5o6d`)wd-{BXdr_$l~x;!h#RjaLEI@nZaX@niAp$EhWb$6v>90tWu> zgpMTjPmEqGeiH7GivJP6HVB~S+{t9*n7HnJfs%{sejxIL$e#q!vz&`f1(>%U0G1h! ziR)fN0*Bx!a2GB`fn(yjFF~&Btio?3^5@@?47|^s2i>5RGzTfkH}pP7VgGl$&o$tq z7)Ji=g-L0v$e(9`Nf7yy!h;`r!Cg)`jO$J~jO$J~i0e);lN5WGvk8ZB-TML#VQpOXQHkw2FM4kLfw1UQWR z`3m4L^5;JRht6gjF!T}mlY(W5axz#Ki1?CZegP%LojD5^*P%T7le<9`tN@`Ka)lBF zGR0R%>JJW!DPx3@;6xc69U`&;1`+y9t6&erb3?@6wMLX=l;Rvzcbz*z^e=Ph0tMo8 zpt{Z*AyQBDOhiga&Si6=ZK?rMF7juLiPn)nk3m)t*PS34jKtM3aoq_ruKPM%gShUL zI*9x^ixt|)+QJ+7M(7e6OgUfwS4J!0+JupYWWtga+_G zBZ(k#=;sRoI+nw|c7NwlCDM8G3Kdo36 zbvbthW#&ZLpP<->CP?}J=yFb~?A_(uO`wK}a*7QhEX)z4oPyjRro%9n{tU%)MH0r+ zpCw&kf|UESC1HY;`*Rcrvg&#?^xlHC|o%n=(j#*Fn3~Xa|;_F3?ub?4<>cr;``^sEo=`#^p)X!%37Tzqtf60eoBA4ZZ>G_Md=@Vfd!)UcUqMGPE_gN zT1n@MVoqbVs=UBN?ha7k7xNFe?&XUaxE|O}KIV%#7+~&;$pG2^55&qIg9&~3#caY< zzSS3VAnxM6SlPI%1ri0D_cx4ny)Ra_nM!ba6ZXj-v9e>`@G@}kV_f$b{U~}3BY}>` z8{mbV@sbKYsj(q|y>)T?wp)baO?dC}kV*E8hY^TuSTsulCbWJFaf=8egys@8SRgH$Ps zPqS|6xM0eaOe>ZJ=8efdsuEwQEN2zT8X3bD%^Q=oN&=~iQ;1}ss->bi8K`QrG;d4> zs@g1-&dESko27YUvO(w;W@+A-3{?Z=#Sz1Av!o;DjmdH9CUyvCpveh} z!_LZ5`IQV*wON`sCIeM%mgbGg$x_9bHzq?>t(Z3^r>grwjWf`RAVgRgVg}0l@Y#&sw_Cpd+87^!F=^|IDZA<9}ig(z$76r!xPQ;4$GP9em+QRh^( zWqWrDaR3BhAa$C4f8RjrQ<4zcIE5I1&NSwYdOX__m^bPvPazSQH|juDTOM@^Q66;) zQQpcaM8(u%%(3hE{t744YI8p3+m$jque%p--~FnfZH1n+Kl5vl=y7Vbr5ZTc5F@=i zo)?oiltrAy58zX!4(kqo(gO=n=R_2A7gNMWer8rMDUJ-~-FhpMJ(uH?R1MU>qq$Yk zb1ud+eJ%2;)I?QX#fVO`f^6JS_Mhwg3!?QdWR}iu9w}Oa$*9yXESwXlhD+o8bf`DJL zeP%=Z%!V-T_n8gtGaLF2v!T{%22a!sm?w8uajF^IZt4ZhA$bz78n3_q&`G=lNlJA5 zT6Fx{==eorp(m4(Xe_jt5(OFyJx%m?<|H0Lyps8ySPL+Zrc0qIk)An&1gPWJE%rlt z@omWUoICNG)A8F)<(Qv{j^7?~FQ+P^lW220YUmN?Ow4B6a zw$brxV?UIn{g5{HLrHTIZ!mC-j$fZoPDaPCSHFtxp^iUB9lu_~MjIW!USEoNoap%V zMmZ^(G$--qBHQTr_0^p28XdpBek)+3 z^DvPObo@jKb^NmdhB|)chdO@3p^l$8nZj#8&FJ|1gH)j77sf`%FS$m?eM<*I3BPpN_X>AI05T37dTYcq&|ggzN+4JQa54QZ61YN;}hjDCeoLb1P4Uom+V- zlzo7xr^1pwJQaG*Ymh2M@t1?IbleIn9(XEbSx0l`F5X9-iI-4O;Hgl?Unk6-`9~eDV~LaVCmmO9Hsw3p>$tVis_m7b*zN3AF>a=okDX_Y9G3mPg)s0724z3 zmcV|J8_OQ4kka2VSwIfBG~$X?0!FnW_x zlwVK`A=dD%m$M&Q(^6|qORY6afn!x#m^m0fhg=2nB!}AkEJhXAx|G za&#}OZ_mUkQx%b|n$T0uoOL3{>rfW>LnNQ~knBZEgtI{TG%Qrrh@XI9Z(0*g=ncR} zY9WDtBIjHHRv&iiMxdkHEj6k)jevecjNbv+M&LI9o+T<8%)3>63>$C|*>6KVzOdD1 z3V#rVZ_@{hbvdVW5QSIcjpzsQyQn7g5YZ22UFwc!f*isi4#%%qA3t1d*2j;6a0X3& zb~O5S&-L+tVTa8PU8hjbtOM66gwYL8a$`? zUz<6#*yQVB6xP_}>xfOhHgjsR$=4B^eBJyCMwYS3*JGc?LlCjacbB{YCSsHCMr`r} z2jpUt??!C$T{EYqO}@K|Z8bLeu9;JdO}=a9)MAtGMr`uk^U0}1Z1UaJAEIu~Cf{Ad zMjM-acl{A~D#a$>-M9jvvB`I@+zi;*ErbJscvk0S55`inRyg2O(m8YeY##DL#qn35OArMZPIHbb$i# zIZzYM@DS;u91`zrR+0+|i5NkhOMw*3sT0l|CZaa^UiBl$5}SOlmLM72gljOTCfFWx zYM!VOn|$N_TWs>ZQS>Yx*yMWyhvD5QHu;{}=nUg_hT}m>Z1TM^!r08ICD+WUuOnlRP2j>u)&ZHX&rwJFNhZD{aE=*s`x@`y-rJI@GmT*aW z9O3;4m!>BZE+AZ)K8EoAgsalC3AZC$o&F=~WC_=$e@?iNa6>wuIPD1!N}o@-1L2|R zO9^)*JR&k`;sJT7-QVGBB9Z-*1uK`9(g*nw-_lUUGOd6oF& zsl0FUFjDfCBPW)3KVT=XALfj%6&y~u6ZkxwkisG`IGjKdhR1G)6Fx*i%i)9@Q9}oZ z6A0%HC)|d_f9-HW!pVZ2NAc;DQbtg)xWM5AmbDyCxDRh*&BX-{C&)t;98Tbi=(`Um zXf7_o!wH&;i|}xQ=Hdc}6G*pEb8)fz;e^Lg@}E4M!1v<6Ih-ILLh_ZaP&hAzyTQ3ZoRnBtrr)%_2NReUR>zbi;I>WFIimZ-4++R z@%IoUg&i;2_vgvtB2N|ZVti>b5O|LVf; z*a=8h$o5qiK1e@BlC$hmR$^Iqo+v0g2dUp6)#G(goet`AkiMycQP2lf=aYFgB|eD~ z8+Q>4C|=D)#QY(@%+=yz;^d{EYCIM!WUH<6zv5M^&L{jn#Q6wUwK;)j!L<2&wmDgC z8hHWvFj4zs09HTC+Di1x{)ts%-`kLN1j?$y{JMLPvlcmZ+W|ZYpx=`K>fXZj4HVQDf)<(f9|YhhAlHDczM2N{qT2w^xQmcM#|#bj63advhWwL&*9R5u72I(^ zum&tg-bm!VEO`^`(@-g_dJ2sFx1c;nHz-`znl7*&6)fWnxRHx0U9H$VbuowgW{5!II^K_2o#sfz2}O_!6_sdI1t_!KADGft>d2 zVaT|*ZO9m>F|nG-ppJ>s&8TeKUK|4;_BX(>x&m5mKJsyZ@wx#cChxdqX zhW&-oPXV^|mH3V6<@j}=w_1(jRvVWZwcxm*&#|m6Y8WkQ7%gfTEovAo?@cXg7%gfT zEovAoY8WkQ7;V%r^ntL1q`qV0(wj_15g!P_#-%rnJC9;&?ad&Fc?)HI5MUl(hM|(h zn|TQdP|4yg+z5=o@xhzO^_+L{8`-#Il!jpA@-JLx>}BJU!iF1{vw>0>Y+RCgRj_eM zxH{Old>WslaO3h3eDxw5m)?@s!9+GLy=ANeewZ(M%L$vqN!|*=X5-RZNmvdid8-JT zjZ5!r!sc*N;P^l`E(6C0N#po{oXp0hw>rrtgd3OM8aCQ&Tzcyd#{^C`F1?M*IG2-+ zOYh1n0h^6W@9O&jn~h8F`ac0S8<*aeB;LJdD@66u-Ulu?!FRmuyJ`h zsunP?M1hDeNq&_JC@JpD8@PB5<=LOy4XR)T2(kY(6jR0sBf*I> zdMHF>0}SH%q_YR&`ynDjULy}9` z9nm&j0;Jr=B^?H|+PL(qw1?^04dqH^v4Ke zDp~wy$)%FTAA2nsr`WX9f!dzWZqD%mw4><9cjZ5ejWc+dC5{?h}{F#kQI6k0^65$(; z4+y7Z;}W_BCNi>d3Ect{1+sAo-2&;FjZ5ejc;`!G;}VV!9zcoNxP;>a88@nPsVy6q zaC~4gijfgGJ}?=bkP$dOFd0RqHa9Ne_<*m2VB<2;YU8rS@qxVm$yd4p8;}W_BCOXK*C3Fi?MK&(s_+U1x*s^g6#|J#` z1l>Z4_=JTaHZFNz4hhrY#wBzMToK8}C3FkyPjj9Njt`hH=eeL;;5)!*XOj|gXOpJ;-*;zI;dK)1Y(9wI4tF-$mfX(f$w=gOHrd4| z*rI%}k7iPD6>gw?L3e$B#( zxx%-Ze1rTZ@J*O6Hn@;<2NVSd( zS^)GCZ*lplC16&{2FHE^66jl1%HF8;SWwQU*G|cSeZ{e91u^?dSBdKgD|Hai?nI_M zbe*lrq152qOsZA=IS7#2{5vo=eSb6i{#8iDzQ2{+zGOlO-o{G%LmSkGXLOgN_EvVs zQx|5?`1#0Mg0ed1^*aTrpCZ+71%PJ()UO3#Zy4I|a$LVcM*mw;pEKPls9i%q1(VM}ZK>X1%~ISGxsQ)G@KcTKKhcG) z-1b9JCbxY)0p9jY0T}e1K*uNAQXe*j==X={FNf&6a_CQ z8`abX<`~sf%&4Yp23vAoV1a!Je%zXK2^!VZc7VBHOKyJ#mENbC+NYY*oM?S(X%q2L zn~0D4GEC5RS=vN=)F$GiHW457`>3!=>AAR^t+a{wsE& zxkPCb@ll(IkNQ$zUZyln$u3v=T%|c>>KR)B$GLZ`XA-pH46dYSH3M|w46dYSpUb*F zf-C9c?g2^)yFQC>O;Vc2n8BAGUWg2?r0258li*5v9>Wa9zao(nC;+TPF=5d22|IB* zo6#o<@%TvMoJ6LnID;$c1+1C@Co+)WO8VsINm+s`=|v1%WGJ6vC^NW{KGjgB>uG%& zVK@ic5Af+kr`*hw;7a<;p2+fs0W+hQ+>@iWEJAI0gxZP-wUvZ};7a=J(@{6CK(D6` zEg$PQeQ^n)MSw0jkr0C`>5XJzc@kVnpG!M*)9I@TT5&~*FCgs1=^Iq9G5n|^(`$vF zPaFOV31;GAw{L^1@$zKWn_Y58S{`q z?dD^+{)e=iZ;{lV+D!?NJ+D!?N zuNV`L(->PS9{38c(++`8a&!2KvLWs%b>8O zak_Q2N1h9m%D6d}LFQF)b1Z{!b=(}wxE_PIu7GY`?Xg$jCW&^_3*5R61rxb-UND4= zc9Zp;xN+-B*q2AZGed~C)LX^uj64nA*@O$^_If5jQk=&!yz?d@zbJ0Bo8(jyH*Q@| zViVxjRRSb=YuIS-D2$mBZ~ZSQka6q!wse4T>-sOiPTaV4?UbNE#;xlpz^S-#>v|I4 zOx(D2Wu)DLxN+ktzaUpAQ6N*y2R5wFu+>sb86%7YC(5W>h{y&Q#E;NH**y>s3K2K8MwDcfA`hY@ zoW&vf137eo0`WOe6VCM^(q}oOo7oAHyoOM;Oc@wn+DcdMw(rZ(q zFTp%SQMw3Mu|6|Vl*IZhF={p|cw7+{CI-HNL_88jDb9s#qKWfhCmxBS6sMbkAc|6) ziqXVy;$%89h!ey8CK`OqGQ|2UF-90uF`8(WTq;HrV;wS1vR4X$D(%cgQKB3Phhc7t zh+ucc%sts<5h~b)_=Y6Q`0&~Xb^~Z;=8rSCA9K-{?d_*fvv?FMb+iWnwu+}=ft4(> z4@JT$p2Lz(_6Q{W;+L5ymPD%fJksebbuz_ESW+U1g5q9Gbdf}1@ux)VDv2U1^8i!b z?4v-=mV0(vBjoqQqitS~Z^?z9aTb09_jMby=$;?tRb`6i%e;s+7Ff^cE{E5cWC{FTJ}6TXh4 zwiF$D251zqZ(Jw+?yX3CFNLy1pGtqc4EXK+^e3<28mA}S^k*bt+Lr#DZ407LrFY(o zg3c!TR63>>0=bwIj)RlC-B-zrg8A6R)%{sY0jgSiE!7am6KD zk<*nYVbTdn6+2yd5+b8osGw#n8s@98YPc>2^7ldTE$nMQ^J!l={k|oFQN4P1WpyxSS?*I ziA=Gyq`xEzifOEtZVG;8@y?Ct=b}QsPjd+>Iw;(u0Ex zD3rTVp`0EPWI&#Z}19YwRr>=S3gsm4D`8={%S!UT@U&qdK$#e;rDv#h$SbC?T6&iBr&Yp} zFzMNnaEfWHmY$>d+VzWRtd^duIQ&z^G*(N`QEorOzzoOviXZhttDFwP z5)RoU#HC?bH#|2B(hJmA$dX&UFksByU8MLabBa4_hG>aph5N7MhY0vs+Lcq<)g8xue8-ii&Q^0$hRu#PS;+^k7n#6 z)PV7sy;1<9H0Chs&KI7&lHWgc>80rT$|E498X~m@Kr_^x#$rSGKp9sIL-?Hac&CI& z$viFnOkL6YKvkQc0l{9k<948gum$y5uaChMX^w=6NcU!U zAWc4MLZ1wpte#ab09#F{9?8^miZ9tkz^#6gT%MQoHB3Lu^zS77Tcm3ca_IMpU$FO) zLJK`JfY2MYozS@^(9NuYP$Mg(HgCm}r0;st7*B9Y1E!Tw(2i%Xsqy_pJv)(IW7VUd zCv5<5G#b~RH{@1O@i7}vM<0f&4NoC!1Iik90Jwv|ivXSnV9*COLR_N%@az!%ix9mH zNC|ph0M-CfKLY6Eh<>V2rpQA1)DU$oQPIMKfLu$JpV~x0M<86+>o!uG+h8FxP?Xo3 z2yO-bK#9q;=~&=x2K|9(>Lxbz0VEpv=&BzPRUK9@E#FLnZ=h_DbkS90Wp9|?v;cC| zV-c#ZC#7$JFnB7Q?$seNsX&TqE%h^&tw**sWE1e`vp`tV8P%qP-2zS zMb`REYSBg1^(d%03A+HwS1fU;^&ET}e(M0diPE7m26ymbqVe3&2Hxejh}*#AJdPhp zPG;3%>(M>0VQ77gs>7iXKLx)M*6D!j!IUMfa@oOI^hgm2j`(Q_h;@}AUNQtdY9qP% zoGfhn(2-pgdvYGQjFe9As#rqn$?C_t0?>Z;|dJ z4@8B$o9zwbMtu&t)ySvfRP|ARgFK_VLQ?(tSo$Mv$O0yvh7^E*5wHPt8VW5htBmP| zR3lQ&Q&BdYj#7q;^(0%m2<@_lyw4j1X{!&Wq$5O zN(9>qn%sg?qt%*rU`@gL4hy83LV!}8NPtpZ0icQaBGtV}H9z-VQWXNNBc*EMJv~~a zdLA`|ZxO{K-(yq^IKua@Ow& zvNu1DYL!q$Xte{yUU`+gd=ZOp$XvAX39zWH;d@}M5N$UC>4!>?zEIM2Ov@NvC+VY+ zt`QSrlfDsYxko2JING$R_3AE6t%5sbC}ybZ~gcEviMTiRf~Reuz}_Mi9t# z-WhTy*h_T#GaTl=u?^H~S_kt1xeKU#C#XwQMf<(*S_68c$;;kwmaw}C8Ha?mgys8W z`NEzoPv4WJG|xhJQc&3Yl$He+!wtM$#Pb9}^(6cB2Dk{Qxu(Uzklqs`>mDX5(Qf9qB-6%_bCE8Vv4K zM`Hj;Yvz+28LT8g2A2|GYirE`Z(UG3`Pe&vzEG2 z$$(IkN0Wm(GQ2yZNnRaxNQgL|?=SxhOV^avlwZ?ajrzOw*}yaS+wlI9VcQ_n5opmbIkfy`lVcE$4H3b~EEDG_BD-@Lo4-VSFFLsH}&5^Y+RRI;M4pInE+ zHoKUyk;PIX&^1Wnb8satMbup+9R5ze2fXudB-%s7mmd;G`LB_2gb?6-J9`Z>jq=XA z3kZ(&<-zzhTf0uF+1jl{&rHHtA9xs^-#rf%{1?t{?`|Z#6jJ~H=N-8x#!cuQxda0< zVzTQlp+mfV-jOjb_IXE+p%dt?(70ZrhvM(y9l4dsu2)@*S7G35h#)nOF0R43XoB=L zbO^3{`Wh-_h0xc~RY?3_`5Nj20>;7fKj84jh-`z;QVa9GBz3aXAhgj~oY%f6TK7^ffdM z*TB~hNd#uWQ3ts3or6)(;%n$1NQJ(J2B7N{Q%zpw8xkc#h@VqeFk~=T_91{Ph z=Y>D&hS_6rIGIwLZvejvsMLxHAmsMRm~j^KC7{MvLSIyJi)2?GXQ?hf1L!Px&bbCR zfwH*{8|FHc&AJ@(SI0_^!>^gQwJQru@IV9fMtRxrajrmk;X&G)$A;qC3)ypVJ9}mI( z&IIw0(D&7Q03}>+XDh~8vtRNEa$?4kiiIY&cA~l+W=P`4D^W|3691E!#*&I)2Ut># zLXiY)NsJ_43D}YtRm2J=wsvA5jkCp%S0duaD-rSIm5BK9N(>_z6I(kmd^X@rQ3VJv zU`wLmA#&q-H8DmQ8%rw5HI`KD4J*#RqMKJ~XRuyP97s80CzK-lB+`xj7`>HPNOrE1 z?9(TKmqZ%-X_kJ98!@^Zu&u8G9MkvW7uLPVQTlAawjM5+Uo+n-9EiH%&?KGMa*$4S zzZYV3N;wB2CnejcDd!l##RyFdtEbyOM{&V?+(svV1ikR2X&00~iXbb{QEovJYRano zrZ-qjo0I$@Y?qa$t~Y-u2T5Ui72#ooi_&KjmToIa|Bmj#Ug;h* zCleQ5>8hnbg4ndiO4pE?>tx>T11Z0kRg}2!%6x1CzrCONWD2h0!YlI`Nf;iP=$bvV zb07)=tEfy&F|>pPbk4W}8>^^{78kN&6_p8t)`(S9CiD+1R#BNSXpLA!Wx}8}V(^m* zgVu;uR3;L%My#ST(V#Uc=Qzj_r}#WbAcJRxm84ZvCaqW&SVd*}C>l9PeDO?;k_VJl zQJGrBH&jdkh#40M&sIuT_tfDdz|G;7u zm5KNV7OSXCBxsFTMP-J{IaWsnR#BN@itpIKDk>8mvlXkTOfG1Rd{oI-xzi)Ww=z;)@d& zhKMiD`?4iWhw;TTGZfD}N__E55VS_DqB7C=;+Z*$FIE#@JQIyCo|&iGp}vVPo{7d6 z&&*f+Y!_N(w2DeOWRr3z0FT)ofYf&$vuzIt!Vd#Me0&8Cgv(nWvn^*-n-&Mc<&0|6 z;y}2ZQEgfr2$wUeO^XBJ@&Q<)wm1+j-@5~0O2}ijUr^Hj*@1B2*Pslx>jeORuwAzWdG*Na%}v1G*iRfPCHOX1 zPa=&Y*eTn9v`OfEfT}dII)eT1;ux47N!J}E=8DZQ{lHe}6qfZvq7QdRCkye3w%?U3 z`ho>^5e@g=*hPd8xL9_47iOn1a{K|?F$ttM3&#ogSky`bk7q$M==NHR(sMw!9AzX0 z)kUw($YU!TO7sZwq|df zhI@yt%%%N!_CRf6sT-?=iu9RBZtlRSDa%GksH@e2JFz8Fwa$4aU3vo0W@HR20XdHrP>>i zhs`?(I1J;ci=x(PxL8L8@MwMjlW1E(q7*^bu*Vl)0I z5L@vEp%EzDK`JAl27HUp^$6Mg|I=U;;z{M3aOB_6pK61g!9585ewK^m=EZn_jS`L< zq#si#8FdLL0h49RnHD?B4QfKdvi^efXmGnkgeLZAu-vG~ld0j-2baoy7)|*ulU_dT zKp?USCb^MGX`D&_g=x0SBqtq&xk!J>!AK8ddXuF8iS%e`?-i0h z><~P?9I=}rPy=3D>NZu5DeG9m11>?q2f*mHgTnKBf+9Y!XEa##w}KVl1ND`Mng^lJ zAOOMer9A_v(1K$a?$)C+3Ys}gGm!srGI~@^#twhO2goZ%#fCQlEF?fH(`^JE4~w<| zD8l2=uob{K0AopE0PoV-NDbHp;AH|y+>I&Y0b~JOM4%gh`v5d^)Rls_?}7Ir>I=-y z8)#l?PXO>!0Q(cz44?;r4Pnu_0GgPy1i&}|V@YAaFM{j=zX}1Kyqk&g1OJe=thMOp z5_0-_EE#=>tW_j}vs%_=1a<y8y6yO#)-yp?6JCTt)>}c=5UbDQ$XbnxyxpgO zl65fOBPooA2DWRsI)u&@#xgPBKtT0iH{fsp(+JD}a2bGJrKrF!z#!aflH%v>APy-Z zJwCqJ>Q}nh>RSra68s%{13F_nic64CpQ!UVLheT1pFpeO2>^d1z;}Kg?J1gxzZ3Wi zDARlD-VmP$*#w`4!h(N%4u8a7 z1T*@*CKx-?%Ebp~UxbPHcV|g`_p{59BeKGXTSb#nvQR^Q3lB?q^v-AS=*oNP_!|xQyd^JLT|q z!p)$P++h>%@2tQdl(By&+yYw352cK+J5x5{LNuhyO=Jm*QgKU#S+t->3Gdsj4f{}1h5{e-0U+`E$V z{(3SQ$$5V*=lyeG7=Mp^@n))L5X7sVvT{o*k8io~yuY4#KT>kuUoU(M7;@fUFLv?4 z^PD7pbKXq7rlm-VH&bs&8gmUxyqS9DyuXBD^oCJb1Fs z@n)*cdH)~`Bj;ve7)Ejm!!Xvc3Gikr=l%5>HaZN$NVhIQ7)EaX7;mQf%I$!|FpO^k z4#O}q++rApu?BD$hH*OJFbv~4fWt71+X2IyDFx$(Q~_;D3PgNKGQWV5;?6j@cn;;+ zpWF?qUqCdirjrS$k&WRr|5=CN386U|; ziu2R>sE({)EGgpyHh9pKhxP^mJ);VGa6KBoN&O5;Q+hjo^Yk#_=j#zY(S15z390nA$Zw;U18%D? zN9lgL8np^^J>dQIXDDr_w}Wz4pNCq7`VYMzkUkl32Ym`~I_krKU!*@nekYy4Z?WEp z($0E1;1Ycne!FN5%&vMc=ycO3fo7?`5OA5k9KYrIBv7c(kCtOWs6Rv9O8q);y6YoR z+C!g+-=6wZ{8s6Opw>&Dj?&)xEMQja(^0oZpN-#IeGz{9>MQYEr*FV-KfM*d_4=3i z?XMrhZ-agwzXNn0cn#F;@!P1&@H&5M-21(@rVz7ws52eM<42@hm-kOdydZUp8= zrKh9pQl$?ECOnY+6!#q-$lk>T9>|_X89b2fhs%|4ZU%lkl%9apE@jy_u6a~7Ziz)U&y0@bmEg_&z`zAXVrL2kEk2DOM=JDbOgQJ$ z_!%TZpT?};;?tO^7N5o!Al2g2n5h<@#!Qvud>S*=%BQi(Fg}eNz%E7c-@w1T4_BCA ztcaJyvKF7luj0KP`ZSiWP~g*;U*VijW6Bu%G$x$$Y0N~_sX)K?Es83^)5%FnkG9o^WO-74PV@?WMd>Ri2tAlI_#tNUtOdSIIWQs<<(iJd} z<_D3JFiA%Yq~X)}D15R)pT_)}le{(*KnaKGxmMWo7W6u9td>YRKHEgz~h)-A; z!a$n$<%}>L8c4&Z@!RBn$N-GqS&BmEd>S*6^J&bPK+dP}c9i6N8o!VFIiJQX$@w(q zJTvFhm~1?U0(cI;yzP9u^DO9QN*6X*c9$~blrF5Px9qO{1?*dkSw*ve^>vnAI)&h3 zpq9-Sh^Xbu1SDz&`=E3&Q7eB!aKWOJExWr6FZ<9Q7`HwD0oG+bdjdR){9_M+c{#TE z?V~vG%4YyzRt0xU?4vl}DHm4{Q+_RoC(p6$DWq39|C9yT8hsMEXbQcrdk$st95$!y z8*-Q}9J;g(ILrW@yM@DX29X?&YvC|A;J`+fU4{3Ny+Ej*8d6;lQeDtObwLZ& z9~wkb{b38$g#pzKqicH_i;Hp4me6%oeI=8AMV&tA*;)fGWGbd&l0O z>dCpj*l=iyda#o{MY=uE%bp_Pp3=>pBIO>^&%S}VDQo+Rw5t~L)+Xe*e3jhWq#}nZ z?upnb;b3)dWFsmJy9Yvc6*+bl5q1^Aq9-HE+LaM@m4=;&(L)}BUUYi^RUV&#Ui64y z_f*uI8P-(+>u-2hh8orl1wl)P=2#DnupSy=JuJd{ScLTf5!L}LtVcvxk2I{yHsW)I zh*S_Mb__W4)~S=^*2y{YlPI`VmXBMZ&LSM6i$uXXE4abxtlSM&OL!Y9+TlB_mT)-8 z$Tzv=vP&*Y#7aDWY8l6R$JwX-q)(q3$0SqK= zBRAsjAPK9!8fiwE8ARI0%h()u91F&v;OVg7Jt>&Ug8m$dQzs%Q8@c}LTrBt+PDED2 zY5chkKLaku&ndtiuol4802)>R7|05Zw*l%f2Xp*;0W>~>pI%Ho&D1OS8H&_kKH)oX zGwQ%k{ro9z2|a_XhFAIX4Szo2&)fJJ65=&_sC^o0H|_`EG6J0e+(e)!fNcPVvd38A ze28K%PasxLj1;uk#it&K!-2Q>7Y|WI=62nor!D|gB&+3=g%Vk%*D@;5U+79Qpccv z<0b%S5x5?}MFhBWdOHAVBP(3%qm9*jZQ~=rlQzBvU?35tjUOY$zrpOLp3HH@4KtoAqCx9bJC&X{u zALYjjonaLKp9|?++t44$hGG1fj-LUC;b$pnj0JERX@t0q$0O$^p@FA+%S6+npFj>7 z?mcBxZ)5oZzXxXZB`Nf9&iuyo0=kPx#XYojbtA&$Hz7HL~6VFp$WNosj)c zq?#C*y0IUAGV{T?#xAx`h}89)xWE4X1(w8%owB2qOY76oG%h^5Hza zUIO5}u<&*%JPU;bUx8dBnkqT4)MnsZBoymEMfN=*`U8S~2hsg_i2i_}KO*SEp8^Mt zfDch+Bwr8rNfk9=NLXTc+$WV@G?fbQ9;eKH$3W&srPBK>9bOm|mW74CmcnnOkbA4F zIXorLc~L^(AQBrD4I#QZQNy=n3HVu;2|T zI7-NkIot^HWLWr#6h0-jjzFz z8e>pUh+R_|!^cR$EmANY1vO#8a4G1zfHh7-!Pu~1vJ_k)1?y2TGc1@b1(_eB#_*w2 z%wSy}7G~w9t&_q>QCI-1tHQ!MDf}@D58(H#YAS40L0ZMsyM(bx`D`DnZXU`U8BAB_)@6TDEj zhIFpjKstMQp{5ps4qvFH0EUG4@bV7W2!LKrO z_>$WJI_z9^ZI{lVvzM3i^`yg>^ET26@#W?Gtf9jX{0t6BgAR&_E1p*`iBtQ@Z6p*l} zph31EAd3v*hC~^+LB(Yh9bCrUQHQvUGVbHxHg4#sgN}@%=-`Z_-|u&;JMW=H=R4>B zedm1Vd^somez)q@ty{OMtGlb}R>?#9F#QsZSCN?zas+Ye8nq(}W;;f+nnXc-7defB$Sh52y$Bky3L9p*r0socYo!)U$*?0^tFeGGM;8iP0EW3}46 z6%fK!TLn<%C6HD-1tD0;$Jdfwo}dkCI|UuxY{&40*Z;+yTNPHv@txOdeQxb_RbC=7 z;1&^9`{@L{!)0T^($2|fGyo4mTs;nfL5g}Ti&}*@wMWozFzV=F3<7-835lPDPTbs9 z#$Kw75WCH5v#r2Bz=`|#M z$gUTUFw#9HSKwu!;|5*HP`zU0JwVeIC+QzGdW4mHGNSQOXtNf@xJ!fo3m~WQM8QaxVR?ivRqiAV8XKcsJ8QU>)#&#XI zSI~3Dc6}>u(U>{oz}jz+pL+r(Tf3e!4#dnE2R1O=I{}l}Jpq%@I{}l}I{}lbrnx6z z66-nRz!v7@oq(CoB1BKXWTCwiFqfj#?g^MX!~lAa_y>T!6EI%|_D;b39@skpGaoOP z-U*mffxQzj*8qDbU_JnhIb$kzIg+Lvf+l*-SV)GaP*c>*zwr~Ws81K>u33f4Ww-&M zB8dv=XtroC{i9wqb&SbKcw#ep%VT5#G~=%+=SPg(jz%(^cr>Gsu@XN*@_;qaV_(tE zF344%4K-k$iRndtc@UioHGtQ$hLaa&N@!f0mQoV!Gz4~ zMJCYm!GxR-mKoQ1csx0ySO9lE_#aH*%?H!n*qsk1i#H#9BcL}Q%y4f$nAn>SCQo7- z*X-%};8uuo=Yu6Sc~d2~{URCH2^R95?> zko5a1A=}F0zT`OQQU~ZsA#TbNqWU~BM2r%h6k=SjU4`g|f=P;9O~%W3d{Efs}P}#uSw_^`oxU)$(ANDDf-yUZbGDG3`sytx)2#X=A43) zDZ8u9EJqKXKoiUmB0HnB2y8vnYQ*GZ9Hg|KLiEYrLn2d#pDmS;lby+Yvs}7UPPP=j zmrI9pjNaZB})NDnWc7J*PBEpv);zw?0dUa!%<~ zLYY%yh4ouE(8DN*~}G&CBshP{XHRnU1D3pQ)` zc*vUrz@U7Y?5JUXsLz}nbp`azlc|nTl-F10l*YUTUfAbR)J4EzL2}|(r~ zi|h%W>Oxm4t0Gs=e2LV-@vhWnPik{iYI9WT z63s}dOQKSjx>8xIxq9YHq+Z}jUF}I-9hJH|Ds_!!q|`N0spq&-*+BZaQ&A!|K7>gw zHibMzx&6@=@)QLZNMp!Tlw9CWMG^Ox=8&%_dqB)o)WDdjsDbWO6yLiC$ShcaVs1u1 zcPdJ<-t1)^Y0o+mlXWB}>uSL|>*|=S_4Jd@+QsfvR5a^RI_unAw13q@a=sloOAA*$ z_%4uNkLIhRj9f*wfx`9#x&t;3HPAJ=8rW`fHIOOuxFc+#@HNdPd;v+cxFU*>dq)+~ zR)zILAh?)Ku*QUr+`U3s>vwU;d3aWP{Nx&W;kwh zE)pxzZ;X$l2M@6vOe5X8Wt31<3DXT;PA%SMj^6j3+L3`zK$(1co0fbS->*Y3`Sdoe zxnw0q%Wj|!??@wVK^(364&Ox2232}8`Wf{uO@K+XQrUEOKgDAk>r$yXm$J)b9_u|? z+iVRDi)R`C%5={_%&-TThmb??Wjw5~oopfbaXWcA$Z{SCraoX=U+a!_<^N`xTyodC zaxuS<>cn#1Ctlpnb;pUpKcs%2QLaU~Le`#*;R$IaAJKxo*1OgXlN$RQ&9)h_!=x?` z(3H1=toR^^NdtT%=f^|FKQ2tbu-9P(y^OfZ?*RTy&;yYq#x<9D(dwmpEAxG43qF)%sLsD~ zMup{rZ5!FXue==O2y$>ZcM1VF#aKwdO=#B;+zPNAAi^}&&w#oO6#ho+LckZ$WuWMi zq)tWPNN&;a=`0L)F^4W{E#fQdfgh!;Mu3+HmIC~hU?IRi2~Gk?Sc`0!u=*Ta`hapv z_BjOZN092NZlXYzY!afSWb?>3>U}771Z+ph)?HP80lI}O-vV4n&>a@PmLL(}Zh|;~ zX8|knPr$qd!fvP9&yvlzAf5~K@1C*Wv@F74e!J7a_2wnmhwGQBE zfVBjV0;u)KgQBYaxZ{2SsyYeaMu5@X0er2y)>Y>MyvC?O0O=b5h64;B7y~d3V9X?d z>XUH!6@wQ7JVdY*;0=N`0HgNHp&32pMI25FTYSeSCtBy^uj?J%*O|O#8?qj5p zHdlQvG$pUJxxawI&{H$gX93K@5K;AIklc9_z_kE<0BYFE$vc^2PuTS)oVa){sm=>rHp-$ zVS!K^|K5R&=fNy8c+k~2k6+}p@h!lpU?V>OId@T)i_S}i2G=8~ZZ|J4@bWk>_u~>F zPxW7bzC+sTj{y3g2k-?zCBb(9CjpG7auiDCFw}ai(%lX|(X7iBXy!4CW;+qWzY0F; z4K(q+)a_ypFxO=O*5&b1hf8GzE`I`hWXKnV@LKI=kbXR^Dl%pwBd0C zwBhjtwBcd^(T@p!!iF2bC;D9lAkxV!`rU~T{z*HD%*KrkLfw_z1^OMMt-a_;`Wq#A z{37XFktA)l0dfw|koQmRKu+dGu12K*5%P+RaiCmXu7nH(8|v2UI*@TDn59(b0gUtb zMa~Y9Q$G_At1`$K*%k7CgWGZs!mIBGcnzR}Ju+E1-l^uBV5(z>T*uD1jvcXd!e4?_ zI^p<>p(=T$6Yd2H_c&!VK}Hs3oOZ1A$AeMQ&j*N*Ptvaeg+FN*yCFdAe%-ZH;^=l! z$@{96LU?c83NX&&AH#cW4BLjZi#>>wcJYbGmMY!L@*y8}*+&$8j4J((qS<|P-3rkj zznHNAA!u&vXXAaZ8~lycB&&7HI{yT0fUy!3x6z+quC;xwmLI>C)p`*kxfR9=rfXo6 zpFM}4sK_5{vGA<;LD`~x#yF2r+Wd*gSlav|0=D^e1Z?xy0!W)@f}d#fcY{xg^$dVW zZ*TK&BZPk=x1!Xa!a%iQD0qTOgrb$#BJ4j*y9*%k5`d=xdJ{YXP)hJyfN=m3CaiuL z)GSc0z{3zIM~h5Vb3B0;G8F}0OF)6YC7{4R5K!P>03u8%0uO>RjEP5PYtvr~NfXp$ zY!rY>z}^}iRe`T{`#P@%Cg#9GthcvxVr#WgmHyMoF|*R1dY7BJv#$A{$kbe6d#NV9 zj#M*{!k9d}5aTWHKZ3^BxQy^_`C4I|9w_B2vL2x<0DB5QHDU%Vr_ftD{sg}9HZut? zcv+`7S>o5#d_K$XD&>SW}b999w(e=vHBE&-xqVjyT$W#;A<-rE#}ug z@Wh_*ZeG_PAwTljwFb3_oakZiR`CTQC*VLsIqcmUyn`X`F0`C)v3}&UYeju_c>kX{3-AQHxBOk2se&1 zkOAB{{sjtd9A|@q8%I~<05^_o{J@Q4Ab#M+!DAud#_x~3`FlY{5RqUZX9>u z2W}h>;RkLUPvQq|953PrZXE1T;l}YHe*R|ohokHVAR0e#<2VIBaN}sk58OCD4T&2^ zPf&2<_#6q~#=#B>ZX7ou5N;eiDF<#GSD+|xNHwEM7uR>56{)4!>{P1Gl}N*pe-5?G40s0%ud~jl>~tVQZgDn3%A?7lJntr^ptzwsr%SEo^Ol z?03R1@gTLgFsCfp!qz^26N}&-`)yyyLhCJT?QJhoAs+i}Z|6d1y@joPbu!wY-onrM%?ijB%*s0>E@DH1f~*mA!34qi7%5 z+cq?s!)Wf_wxRND^l7rUZHNnOfq6=JNP7?`@Rab7_8?B+DdC}N^60&7L)wElgQIiY z+cs3jePLv8+fc1!%o*cQorH46I82iw`5ksAzim!_huz6Eli#+K%bonT*b5)bE##Vva(iGGR(va>#A{{4k0u#EWI(7M6{#5g_l@#Wz{HK!9ed3$ zN5jXdCCD+S7mqIwSGXm_@#VdEe0jLi4S?@xFCJeWu5tt5JKBrKmxm*60DMO?G5Hd% zR(z7=o4Pr9$CqdE`0{YO@2I>wFkfjj*r=Di=mw8oXT(26OC2u;ZC_^)ZczWAaX6PA zo}}2P7_w<^c(Sz0G@D16hZ}`Rw^x8SJXMlpWNl^JK2cU~WSCjA`+%CMz5_=VHtprz zKrG5&(_U6qC$uP`y-j<=bJR+N$)>$w*N?O(4=WDObE}$1nTHoBK1%eaz2Swb4WdJK zWjP)9vdZUT?yk zQ1cMNWfSg%(S%H}6Tf;B?u3dIm_s(i=VO_UnMup%wtKVYM!i{cm&(e6I;6_gD-UK6%E|-YZMk~o!8(Ct6>rvD zz4G8jhU%3E(%@ZhR%)NeDWsO`cu}AbLOTNp1F|Hb{$q-f2{lH6JFL4>C2dPL`AcX#AID9SZ7@=y`auo&(rIyT^!>+ zsObp3nASTyMQ|vKl2)@o# ziEjp2@>%K<8l~?SOeqTu`ew5zC48fiJ4_9xfs7)qSygW--#JJ~rQgyv#G?a{-y25J z7z!yceRqFWZu) zZvb7|2H6>q{RfnGh^!CzqhcD#yq{Y%9=(~ zYg)~ag(7cAML$617ub^iVzN%20X-0c-;~N9!saG=e~NHzXiXcJf|e%mwlsnMpeyb} zGpj`bTX?Vde53GsR{0XbD&OSgKe$vK;sv}_9|9~OcnV+*K!mBP9n`|rphk27Fk2g{ zd*Sy<1`LpZ#){{YbS6AMK>fk&%uL=vSmnpO#COJpv*?vy;u0ZKbt=MMgNW+h0G|*P z0{n;IIDm}HFk`YO5i|Hu-9nSV3~=R(pex_thgNJ5t>e&4e65eHV{1ao;iOb+tug9e@O=h8*Jw|Iyo=?@^)12c;}48h zDMq8g9z;HsG+2b(Vyx#7bd<5aW#OaXsiqZ8mo|i#yTEA zjAhUJNn@P>J~7ti05u-780%hy@ULt*M9^6Cp;f!FaL@g~R!v~jwi@OJ?s{-gNB%Nxog{D05u-7*med& z_*aI*5XH8SL#wE5TO&WP?IN&g+m0$jGfAvK(tXIi55VV=ln31FL`L~;a1Tcex=CN_ zgKnF~%x`lsEFc3VpMs+d&oZ^+i4xqV=-!6&VS6Fes^#NvI3Itvl45^V!H3Gzpz5S^ ztKf^pcOdI!^96~;g0!*HWmmGt#)7nQ8wNpqgelF|#_`DmJ!;4mn2?n&Qz9Ed9xq#9 z2zi90JdT7s<4Q2|b5u*Zg5>!WT+KI*JtQ}w0GjM_704-Mme@*=$MbnRf{)t;LK$i# zAC{Mq!0WuKSq%MdCUqvtDbz!t`pMP~Tz>>MZkI8-6|nkO6o_|IHHJ^qMw0SGt!+f? zI*=2-p)y<4uG8>2&8}+A0@#`DZu;*s(Cm)UTiH9@MiK#tkXIVWsh}{Q%TAR3)<|rq zD^KY06HT|q#)6(G6kYZ! z-{$38UJmg>N4gr1u{wbIehBF&(*uRWG4-Bg4&6KiA633i&*4#0$SuT0$OAr033`_ zq$VV6W5Q`_SSCu}VGl(nDbwGOR>~B2Jpjv;M!+(a0!S6NK50PCp_0qdy-Kui%@grtSBK5dj%RI>F+%Zq?AMzfyUkR}I&%2KEF z{;7)c7^R{nBfV4xV8SkH87$Lr z)Abm|BJ+@5EW*&Avxvtd7FmUqVv#EdXp!3pXpuhxh((xSf5#Si8+>AsuK*%s6pPrm zXnVL_XFlF8r0I55Nqv5*?Rt#TcJm=b+U{rqw%rp6*mf5Ih}qB%gQzUo9MC+5fpgOutx0+wn50nO3Gv~oW`f`s`@I8qho z{Z#Aq7^U^DM0#nx4E?#*>+y&^E<{SP$E^gk$0G!^$D06R4<=aHu{}NmpV%XC8|* z#X5XOdW=$4O%Nef#n7LtDvw8s)q<2#tQ!eftosRAtXBY}SWNJG$Hn>>d{Qj68^t1{ z6e|Uk{*yavnx|P7)H38F3o^D z7`y{A*mAQ0BIIr4Se4sm*PrRO+0#{Pe+cNX&3cT|W`{tOv{{D!T$}ZHq*2r%r8J5K z1Z)&%6R=TS1t5)r2^yec2e;zw;FALV0U$y~X%w%6(tpxscYB&GQUeQ6unwOF9;2vt z1VTi;u6MfX^(CNswE&_X6D;gly_w(>^_Brd$SCTa2a12vW?zDc^@vetsJT#1+Ux^N z$ENoTK=jS-9j22K9Y!Lt^&Djk_^A?kj8dXQNG~NyxXUe3HUUdi4Im|Af}I_gXbSkG zM2i6;WRw!E2gN`6JjiNxA5(9A5DW!UufX(Pb z0+!19ty?N4c(CJArGZaMRRjH@lWb%H$)_YP@g;k-Q=c9xCelBl}*698cM*rssk_@ z_{sDn(i!+wJGT}6L|sM5BlR>BNu{2c^5^Qw;}J_VBc)hkD*-KWJpnDz1|XJTf;0ql z(EaTLpIG8kfCw4I65oT;e^O7MdzxKeFzBc1$>S64GVgV@t016u4FuHgOaRf235q(_ z?p*MRcE19MkWsX|0~G({vo>W3?kmKo8)ri|si$|CjP-N~AlmuG-G?+%o`pywmfrL2 zPnO5ylk%h?xmbHB0n1ZI!162vkn%9WLIiYR?KR+&@@xl)kWtEW3n>1{z5WP9$SeB( zeZ@b~erh~EX+y6;g0vxq{#+aKc%)Q+M@lJ`bH7`v3<8$wH~=XX6RhvJR1?4_rCI zy!=MlbEm-#2cbiCC>^rOcAbHa6JgUNY?3dSXmKueIj#-9m3P_3s5WpgRaqIHPul^0 zrCDWG7Sm}pelG`1sKMWMW$u`Wd`Oe;D8KZ`y2!BS(@CQf>rBpx_#XhtIgy<*XIlu8ldm_3jPayo zMnKbZK+DHv1B9an47JPTiq0t$NK9chDY=&_SwF^T&c$$#$@OHt!(0YMsy;^8I>@Pd z2jEhIeE`1(sPR~<4Uctb#gWMm6NH!hOqkOEoOFjdE+L78ez@5<+;q_0ghGpS2Li>3XTp21uBw zipaDaW$VAc7zM2LHL{#fA~)7%tt^QeNK@DQxYk5h)mY&&`UlwnQe?G+FK#H3aAqe( zucVOG6DhKKqEHr*bQQkB4`COTYI4oJ(f>~rP%8^b)C367>o01BQ}T~4H>ualO=MZg zSXoLkkX1fTs@yoCwFr`Ci(VNpNTVO*j;oH-t!B0q<6{_qIE!+M6vfxN<;)>mH858e z&GdK>J;6iNXReRyWPGh3%-4!H$x0aAhUQ5QMdX!Jx##=1E(E;uDrmDBWPN34$T;1% zpcKtwKf;~|bJZ&V^$(%jU~KiLpdJNPeFWemfQs*vao`FP-^Ii^=5b6MN`dbX(=f0) z4OH6iU^Jtw35*BOCZ>Q(rW4aN0Y(Cp1B~Wzw*`VT`Pr39uT#7`+N; z8rTv+pkaSOwhIu}=@A4>qL2eCFoZ`{rkj-%Ac@Nu4PCh!X*ZG|A;VhVZPfK1gf$^P z3T{EjMubGjR?VGFcY><7qy6m8*C0MRY9+`Z*jnOiBGy1fJrV-huQ zLo84HRohI7$@#rji|dcLspT}rZSutrL&~!dR)hGeg#ZfyN(ZlUWqZ+^z33eP!#E)c;i9xN=HGSlk{Mk%1$2gW~N_{Q$r)1Xr-k z87*kcOmm{|d#_Mi5h-PE11S9f9IWfFyy%a;=Y< z9>kKsB4ytqf)A4ti9kWtpXo-Gr$AnQSMnox_ewX|HDEI{qXAodzhMb!z|L(fDnKp) z4LAj$Y&%$Kz)K_xxl_t-LRd!zq%j!(AdRug7dj5Y*Z>w%DjUE>0HrA?8;xOl(YJZg zZ2;vth(6jFuS29XfU+&iv@!Z1=~2eG2@y0#l|)R0>#%30X|NTa3v+Z5Uob_U3$9s^ ztZWkuNsf&khden z^8DTI|r&zAvtSBpIIple0XoIhO4yISORc?<$JA(Ab^ zZNhHyX=_rUgOc@}C*FkaIsD!p^tdO|GdcXez|QgLVeVu3T=KR1>X=X(hZij4n9pMt2pWr+mpQ+&+g_A2mQn_A3yZ1cH ze7Pngbqf?TX7W^HUq4xB8bqa}%7waMo!e-z&EUSZ_9t8j!Sy4Or*YD!n6vSfD6SjP zvbny^n88_i`)j6V`$-iaBq=B}G*0Gu& zR*2%hhB}bVCgu;;pMyi~5eu{tdE8 z`nx34NsMNMSjNOtaMd2>dj@L{b2hY{3jH5$g8%nUg{FsjT&#!r(H^03;@;^u;xbjB zn5@0kw=kfMQ(mW`%#OHsIzBWY<;ci^a{{o>S%ItNJO`V_IR(Ierzfrf=M-FRhwA|y z=Pg`=6g6onMTvW-b0(UPa^A+(G~82OnbEOMdA$+g?kTT?s8-%3_X2u5_L`kKA?vy4 zQvi4D^+(-1{mWlLXq?4;Q)5nf#VKLlDX;GW8pk;0mCF9_obviBw0iH9*KKIbF+2A9 z*S?HQ{_mXf%ACAYUKNWFJ>`{!_D*>n=Yv9Y@APk94(Ofox((Pn<@HWr@08cqfxS~+ z6<$NUQ(lXJy;EMN0DGsrZUc5tc|8+JQ@GV~3ac$eNZ!{e)D$(d4?l4h_36UgHLGyB z466|;hpti~9sPAodTyyE(bO>}BjJh7=su5;1<;J=P^}*^zT+|WJDO3*Sc!X(9RAbb z5(Or-vkP+7XG4v%hI&lrwlj%2gluDRV#{uwTm7@tnAop z7ZWlsz9)+RrCmbU)v`w(!mpg*YK#A+?AU9MewqpNj=gqy1P=k(vDcPmg?h(cJLUve zJLUveyP9^;JNDYz|1#}mNaK#ZcG+osfc3|XXxB={^uM(0B$WP_cK!9tIK)z(4c2Z4 zK)L>x_E_p+Th51f9faZJBfWC|jijct9w9#GAz;fHf=)lq5T`}w;4i?RZabg7 zgJ0RP*EvKHddFTT)@ji>{3s&a9eW+0T7^4TcIeV7PIKI=)^cJ%8tEGtkYtg^)a*xQTJ_qBCgf3pnwn>nt(Sq5D}%_I{$`o< zH*;pH5c;bu_uN8a$sGIIQjrXg_RcMI=BQsFO!l>PV$UsfTz|6+`kOfm6x+7m*Vb|U z%`*5M?wqDBKzhBet>gNeY5Ol$>^a?Y3*#(i6K7F@II9k2D7=!e=g~NCU>vIds7YHMLpUNpupIbP5F+x$4 z%VC!|t5h(H(IFh+9dqj#hXD~r`2ND(>*oT->jYjl#Z^b-S|6r<5B z866&w#@p7#4>IG~;%hyi55wn(!|i||@hP%%_<*m-GgtAp9FWBDCdEEyz_SdWr+5qK z6Da3P0S1;skpTzMwVF#Lz$hH>Em`+V_PoO0rT$=9(%zem z!ECjMvU-`}OB{jdQ@RM`>kv@765x_2@UedtfZ5v8{(G0uM%hjByQcJF{QeP)r5gb9 zp2Sx+MU_7S>TFQu+?VtrfaCT79LL>AkNXsta_$}aS29@8@@q0A0vwlt%kZTrpB z;~@G{gjaE&OfSZKUzKhIeK%!Y?14K0_A=x~fVT*)05}X#;Uz487$Kpjp#IYU<$uN{ z6I9h7&|7&tI7zPb70@F5T@QQ*Ai}={C_$Q19_w|qa0lYXB1-;-v-ht>QSkIO%$wDp zP@2*|BkW`*ew)Q5_!i)o1cv}_CHM&7F@Op$ad`ka?L!C*&OT)sgl19bIqD3&Kt&EA zEb=WcJyBH=j)g@0xKwzI<^4eY4FbxC0>nKHFajWr;CO&ifNDA)Gr{L*6qwVC^aUL$ z;bjsorDJdz3%=6f0CNF`k+J+FP%A+3Z}^!YwtFQ$S3LpcO8G&5In$jF@BqOsfaeLW z0eFw#Qh;v&D!jzy_aG#+SA-_P95+FzG_k8y8q8VR3t^dvF6|ExA>g)QClFKtoJKGh zU?V_8yBEQ1_trBI%yut=nW&s?J_Et+ ze=BU>y*voj9djv1|100$tN8(oC4?)Hm%EjpsSirB;!ZsSClTu-kxZqx=hJ5(SzqA; z&Kx`)3EeZ0+=G~`jfn8=V}x}XFM}rV%CQk^@cCpv_Mt~h5#`7BC3aA`*8b_aWBmjustvVhNyo1X0{91AV>>XvCq@M}!e#21$V7Z2;J>%Hn`V z+}w{qSsc)aTY3)RGla{F!5C+i;o3f+;jj1&NI8PYUo{-PzaG%=N0_fZg2-P@W%YoD ze-z8Dk0A1oVde$#+^@=COI#HHd+6-1%L;e{8vgn&sG*nvjkvXi$V3J-;?^+@@}tJ< ziLLm0;tj<52%@-+#Bu~toE%Y?7|;Ex;x;i@A3+qixdd1rK@@i$u|9$*ZVPkL0~&GX z-->V!Xjpw{;0sx3J)jY{?N%zp0gbrreEjJFjkv210_y>dxNAeGeLbKNcheAHJ)jY{ z>ttX(pb@wGVqiU>5qIa^zNXPvk+>s8lcq1LsEyQ!DDZ7&4`fMV*n%EoZAWvdiEd=P1j{VF{k90`JdZa@_ z^+-o5GY+x%p96K{{hex9Ex3{GvDAYj9o)X}zZ&VV{)OJ%Irwj+<48v%(zzoY6yc3@ zECsX-s}Z+|bGQT%(UFeNKzSn_#O)&;UxDyOI+#Ai@XQ&W~avG6SDnv>KHyv`&c|vYl#w`>) zOtDt8dT`?w=Qx#!n4BzbI^bY&w+1O^2K+HvpRsW%VaV#0|iv zLp_^MHJob2?jYaP!$Bie0kRrrW^&UZr$#7@%1Zywe8m*X2=T69_bW8c6N(x5*??eg z;D=4Bec*@o)dw13;D>}h&v?fb{JHKa5H727dU2X&?AuHgOge z$l0ESZr8qQl;cezS61p|k!u>rydto22qqu1!^;pDXCk%G61$#_X8iyDe!@ST?Fsx>$2cy+ z+gd0vbsp?tbGx#@iG64^dr7kqm`O2Gm zssR%NYwvECruY1GMB4foX&YjsZ6ppE=3Z*GiKj1yQv%yQ#BV2bG=WPqh?W6eb{f%H zgxi^g5!eH5iUOM_;I`C8KcCQW6ji!_*mBOr<05dO&X4bMfr}(R8+(ifE+$NLE=F$| z*h+Jy*v)gAjKC$tY4&m>aQUOiC<8^MKITbO@k+v=H3iZWxNU4A=M}MS?0f{oS$5&$ z`28Q+Hui0bl6ghH%q#k1<`wO!%qV8t*d+RYVmJR;Vbq;7hEL)-glJkUCf_4EvuWWq zT;>(+x$-W;*YKmZjjaM>&>Dqn^1mQ)S_<}St9THkJ!dW+Bvo~Iju{S*6LR#nu@1M5 zb*iasj4Q`9iR-VyRbImb3lW-QujMw? zQg!aOu@0-w-8Rn7Z+}+|z+IK>tN#UTIh(1_wcXGa+sJG&rPeKypfwbNrd*v`aOoGN4+QEZvM1d}_j7_|NX!reBO zZPlzmM;9!ck2J6X;KjZ0{B>s=O=<00;}K%=^*wkA^)(Zi~u~Zhf;+Ir6)k0P?`{l=^r4EP&Xk` z()lG5N*5w6eKrMj7a}9Q8`(01$Vz8l80slRPWtN66hQLph3LT7%PHrs!PJx-9)Ars*fd@bu%EPl4h-_L1~D#uUl6jy36=HVzF^c*ihC zr}G*rR+*4CCVef+9U7_%LDZ&iE(TGh@*$uheI*6dDpu*V^m9nm2{AMM7bNP1n4NwR ziLpX7rC&y3oN7Z33)AmsKF5o0i_-66OoJMNe435!jnwDfz@Mpb=yxon^A&oX(8Gj= zID_PrEk2c!W`>3~|#j1>FgQ42)!!~HKP9=1d7n%p&u^=+YYi4KTxzvku zFlJgWz&`Ba%)5sG=GGC8?G30;J=jZzA!O(=I6R660y#_YY8f6wXgCFU!4B6pKy;$> z8@yqJ>xer$wG>uA131Mw83hWDT>_lu{GQ?C)&OTXn~28~XF2Pc_IUE=I8QNr0_Eg8 z5r#Jq_j67po=9BayhENz!~>nD7(SV}$k|EUNL*~hb1OBEu=NPGmnFE*x~40U>Dg}a$NQ7nBl>!`b_^_oSF z43imJ=?fUs!=x&9`fDV53K2>_k9CzPX%f@dGA2uil=J~4dI^!1{yEvQg~%`xA0^e> z{5x{bw8Bfx3z2&k*9(W23rkiiEE8TKSr|R-aI<+Q^&7{+on_947Dl=v`%3dvL|8`R ztE5^)kZB^i(=^_Q=I_vcJ2jOMa&)588I^!N)+h8hgk;X?AQCbO(RM$>Md34AD$d>9 zIw9*VM9SvYiMfmn$dE%)Q4znl52KAG6%+EdNX4%#u1G2&3|mPfXXCfmJlx|+vbdsG zPr}hdnILcy9;9hW<#&Q`)-YTzu5h@yb&_6O;c&i0n`H10L$znUdKs|T9gv~$X%x3r%cYr<78AnWiQrv<^ zh_7h_&T>kLZ(z@sgDe+AMh077oR$3Hbs+xx{iu@;@9Esjmd{7!jP|w z#_T-uQwv$P|R`%x#yF6{_fuOdY})#n72RLKS-kxM(0 z6BOg}y)XRa2K6y@=F*PjNs2XSq`yfH~N(vDm% z?MR-fz5xfm@Z&FlAY#e}`xjyelr>HNY^c9(YK@C!fLUD}b( zr5(u&QpWL1i|*6z&

    uG8=}Ge_TxNXJ8aea(ES$CZ;nQn224PXEYtK)(4sR9bwmd)#JT|&Evu6)l`3X^s9gx8wN$ZK3pbuBeiji0 zqsSvW=@v9a;WN}qcGB&S`%(?zZCN1O#txx4Ip$am5p!bJtCWTx0KPJcEbhd_8p_fK zfpW;Ql7&}BzpK&2)ge(VHwEIT&LL6fN_-fqL$r56Bh@+728ja}L-t|b9L2YxHL0(d zazHan{WW1Rhg#G>X{+L^+u;CONCHa+$i{{LX#)ek2j(&N)1^b>=J~YY29U#Hg#|kx^?AlUNY;gIAp1QJ@&zh*Dp}6} zS+$BO|N0yX5ov%ucm!J|ec06bWO*1YkrssWAjjfOFc7DUB9#@)LVmE-^7mTBlthRg8w zeT}fllVGT6z-;i{D8sX!s^6XiRc9iU#eY|an#&bR>vDeShAjh2i_6z3l@@4lmK!vA zcJEZUp(1K8MD&xWiKbl$2CG%X??&8T5jR@mP*#Mpm@N?5hB#vos^3l5Lcz3A&3-r4 zIXab}S@l*hImhK|4kMPg(M=LN8Q!d@E^P74_!aFkEIb{1Li&TkrE?6qVb8f?%xfB- zqTu^T!X`p9Pm48(DMHM@+!*G)4PneXD@`|qW9QxG%H;0C)XJ6F$*9@q$~@kUfz0Xy zu1vOwW6CpXcHmYy9;%!t$vopef>5@~+g)YYDkrfSp$-P46g;pSS%Qm(cuc1i)4%10 zz2b)9wyF8R4g1&)V{t!4*g~ZJj~hmVCF0iMeUjRZg`0#b@eG!Qn6=;@Br#ATpD_?o zGZ-<{bgIPY`)3kjL{;H}1|z3|OK!zQZWd?%D2q+5pdB%SqIZ7_(jUP6#p2#29J<~Q zyJ1hdVXMIREy7r|*WEA{ErOPHCBptCVcvbqopo6d8YBgEMd_VzpLvDLal^9RF!GhT zVME<8Y8G+B>fJDCQC*8LYT=p?k5%66L5qD>(5jR75)KPwuygNM%eRCPjfnHz10ntK zyfQ}!;zPD%2euu0Y{+f9U zq;4-!x8m;@Ca|Q~!n=j}ny5VQ%teOzx)=tQp`d<~nEe@IiS!I;PSXjgU%<|w=EY;k z)GQg}A?LyYvZ7T&jehKS%?CtGqbEj4Ek;9mOMajY5~%4z1V+DyS(1w+<*&SyLh6(k zMHSc@RY0ItK%g;dA;n}U-@TAAn&!_?w7)U9^DsOglH_~JSP$PfRIJ+3Ifri}cwI|U zd|x|==foI!mr9barSOZOSC&aaHo!8{{LE9GCH_RvL;0oW(pXwry3$Z7lFKSY)}Bme zO^*kFabc9{V^zBLSUhF9aAzw(+ln`W>k8?*ruh z8Q>tmEP^8dYXOe;k+Bml+dxfdfdyNT%jeAHo4@pg$V(B#BxAP#+z2p^kqy^?V!_7m z0(g^YdAn^w+QcrXm@#XZ_5%bZ?E`oNU=+YOMvngs)Jjm}zX7;{z(S+DjUWv0PXP8J z8?d|)J;pB~3EihEV%LH0Wn=>)UPeUCGJtmgUKEbWrk%~lLJ9j?J|r8E1iNs^6`y$D z8zXDaLyu5Q=@ZxsT!i%bP)PkNi{`9DQ0G?wDgnv~N&rqF=nHTGz&NruG=h?{&jPp` z!Q)Q@c#2>-z;^)0uLC�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 literal 0 HcmV?d00001 diff --git a/app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libunwind.so.8 b/app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libunwind.so.8 new file mode 100644 index 0000000000000000000000000000000000000000..53ee4d82eea468015368733d2a3c65984d4e9694 GIT binary patch literal 379138 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

    Jg

    Jg=)l}D7yckwDU%g=DB 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�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 literal 0 HcmV?d00001 diff --git a/app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libunwind.so.8.0.1 b/app/files/tweaks/cmu-autorun/sdcard/headunit/headunit_libs/libunwind.so.8.0.1 new file mode 100644 index 0000000000000000000000000000000000000000..53ee4d82eea468015368733d2a3c65984d4e9694 GIT binary patch literal 379138 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

    Jg

    Jg=)l}D7yckwDU%g=DB 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

    OODyq_wFjI%gVtk9ncWOV^ce#&l%&6y+4}cl=q8 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

    ui&1FVIG=p7BNLeex<0pe_ud&3%6roj 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/dev/null 2>&1 & +fi diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/run-tweak-from-usb.sh b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/run-tweak-from-usb.sh new file mode 100644 index 0000000..16f5101 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/run-tweak-from-usb.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +sleep 3 + +RUN=0 +if [ -f `dirname $0`/usb-serial.config ]; then + ID=`dirname $0`/usb-serial.config + if [ `cat $ID` == `udevadm info -q all -n /dev/$1 | grep "ID_SERIAL=" | awk -F = '{print $2}'` ]; then + RUN=1 + else + echo "/jci/tools/jci-dialog --info --title='NOT ALLOWED $1' --text='Executing of autorun scripts from this drive are not allowed' --no-cancel \& " >/tmp/mnt/data_persist/dev/bin/02-run-tweaks-from-usb/run-this + fi +else + RUN=1 +fi + +if [ $RUN == 1 ]; then + grep CMD_LINE= /tmp/mnt/$1/dataRetrieval_config.txt 2>/dev/null | awk -F = '{print $2}' | dos2unix >/tmp/mnt/data_persist/dev/bin/02-run-tweaks-from-usb/run-this + if [ -s /tmp/mnt/data_persist/dev/bin/02-run-tweaks-from-usb/run-this ]; then + /bin/mount -o rw,remount /tmp/mnt/$1 + udevadm info -q all -n /dev/$1 | grep "ID_SERIAL=" | awk -F = '{print $2}' >/tmp/mnt/$1/usb-serial.config + sync + fi +fi diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/udev_add_action_handler.sh b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/udev_add_action_handler.sh new file mode 100644 index 0000000..d29037b --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/udev_add_action_handler.sh @@ -0,0 +1,2 @@ +#!/bin/sh +/bin/sh `dirname $0`/run-tweak-from-usb.sh $1 & diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/watch-if-something-need-to-be-executed.sh b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/watch-if-something-need-to-be-executed.sh new file mode 100644 index 0000000..1bd0332 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-run-tweaks-from-usb/watch-if-something-need-to-be-executed.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ -f `dirname $0`/run-this ]; then + mv `dirname $0`/run-this `dirname $0`/run-this.sh + /bin/sh `dirname $0`/run-this.sh >/dev/null 2>&1 + rm -f `dirname $0`/run-this.sh +fi diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/README.md b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/README.md new file mode 100644 index 0000000..0d02d33 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/README.md @@ -0,0 +1,16 @@ +# Open firewall & Start sshd + +### this script runs a new sshd server on port 24000 and openup firewall on eth and wifi + +##### start-sshd-and-open-firewall.autorun: +- this script run "start_fw_in_background" in background because we need to openup the firewall two times with 90 sec difference + +##### start_fw_in_background: +- start a new sshd config with our config file with modified settings: accept password auth, port 24000 (original sshd is on 36000 and not acceptd password auth) +- "sshd_config" is a modified copy of /etc/ssh/sshd_config + +##### "jci-fw.sh": +- open up firewall for tcp port 24000,36000 and icmp on eth and wifi +- wait 90sec +- CMUs start his firewall and close opened ports +- run "jci-fw.sh" again to open the firewall diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/_readme.txt b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/_readme.txt new file mode 100644 index 0000000..cf21927 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/_readme.txt @@ -0,0 +1,14 @@ +this script run a new sshd server on port 24000 and openup firewall on eth and wifi + +start-sshd-and-open-firewall.autorun: +this script run "start_fw_in_background" in background because we need to openup the firewall two times with 90 sec difference + +start_fw_in_background: +start a new sshd config with our config file "sshd_config" from this dir with modified settings: accept password auth, port 24000 (original sshd is on 36000 and not acceptd password auth) +"sshd_config" is a modified copy of /etc/ssh/sshd_config + +"jci-fw.sh": +open up firewall for tcp port 24000,36000 and icmp on eth and wifi +wait 90sec +CMUs start his firewall and close opened ports +run "jci-fw.sh" again to open again the firewall diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/jci-fw.sh b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/jci-fw.sh new file mode 100644 index 0000000..d560ad4 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/jci-fw.sh @@ -0,0 +1,170 @@ +#!/bin/sh + +# +# JCI firewall control script. +# +# $Archive$ +# $Author$ +# $Date$ +# $Modtime$ +# $Revision$ +# $Workfile +# +# (C) Johnson Controls, Inc. +# + + +LOG_TAG=FW +IPTABLES=/usr/sbin/iptables + + +log() +{ + local MSG="$1" + logger -s -t FW "$MSG" +} + + +display_usage() +{ + echo "JCI firewall control script." + echo "" + echo "Usage:" + echo -e "\t$1 " + echo -e "\t$1 help" +} + + +display_help() +{ + echo "JCI firewall control script." + echo "" + echo "Usage:" + echo -e "\t$1 " + echo "" + echo "Commands:" + echo -e "\tstatus - display current status and configuration." + echo -e "\tstart - start the firewall" + echo -e "\tstop - stop the firewall" + echo -e "\trestart - restart the firewall" + echo "" + echo -e "\thelp - display this help screen" +} + + +do_status() +{ + $IPTABLES -L -n -v --line-numbers +} + + +do_start() +{ + # load modules explicitly as otherwise it takes about 2 seconds for modprobe to resolve... + insmod /lib/modules/3.0.35/kernel/net/netfilter/x_tables.ko + insmod /lib/modules/3.0.35/kernel/net/ipv4/netfilter/ip_tables.ko + insmod /lib/modules/3.0.35/kernel/net/ipv4/netfilter/iptable_filter.ko + insmod /lib/modules/3.0.35/kernel/net/netfilter/nf_conntrack.ko + insmod /lib/modules/3.0.35/kernel/net/netfilter/xt_state.ko + insmod /lib/modules/3.0.35/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko + insmod /lib/modules/3.0.35/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko + insmod /lib/modules/3.0.35/kernel/net/netfilter/xt_tcpudp.ko + insmod /lib/modules/3.0.35/kernel/net/netfilter/xt_limit.ko + + $IPTABLES -F + $IPTABLES -X + + # Accept anything on the loopback interface + $IPTABLES -A INPUT -i lo -j ACCEPT + $IPTABLES -A OUTPUT -o lo -j ACCEPT + + # Set Default Chain Policies (Reject all incoming and allow all outgoing packets) + $IPTABLES -P INPUT DROP + $IPTABLES -P OUTPUT ACCEPT + $IPTABLES -P FORWARD DROP + + # Drop any invalid packets + $IPTABLES -A INPUT -m state --state INVALID -j DROP + $IPTABLES -A OUTPUT -m state --state INVALID -j DROP + + # Accept incoming packets on already esablished connections + $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT + + # Allow incoming SSH connections on any interface but wlan0 + # Note that iptables with kernel 2.4/2.6 allows for a filter rule based upon + # different connection states (NEW, ESTABLISHED, RELATED, INVALID). + #$IPTABLES -A INPUT -p tcp -i wlan0 --dport 36000 -m state --state NEW,ESTABLISHED -j DROP + $IPTABLES -A INPUT -p tcp -m multiport --destination-ports 22,24000,36000 -m state --state NEW,ESTABLISHED -j ACCEPT + + # Allow incoming DHCP packets on wlan0 interface + $IPTABLES -A INPUT -p udp -i wlan0 --sport 68 --dport 67 -j ACCEPT + $IPTABLES -A INPUT -p tcp -i wlan0 --sport 68 --dport 67 -j ACCEPT + + # Allow incoming DNS packets on the wlan0 interface + $IPTABLES -A INPUT -p udp -i wlan0 --dport 53 -m state --state NEW -j ACCEPT + $IPTABLES -A INPUT -p tcp -i wlan0 --dport 53 -m state --state NEW -j ACCEPT + + # Allow incoming ICMP echo and trace + # To prevent DoS attacks, limit responses to x per second + $IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT + + # Disable ICMP services CI-2952 + #$IPTABLES -A INPUT -p icmp -icmp-type echo-request -j DROP + + # KGT: Reject nicely anything else + #$IPTABLES -A INPUT -p tcp -j REJECT --reject-with tcp-reset + #$IPTABLES -A INPUT -j REJECT --reject-with icmp-port-unreachable +} + + +do_stop() +{ + log 'Stopping firewall...' + + # Accept all incoming and outgoing packets + $IPTABLES -F + $IPTABLES -X + $IPTABLES -P INPUT ACCEPT + $IPTABLES -P OUTPUT ACCEPT + $IPTABLES -P FORWARD ACCEPT +} + + +CMD="$1" +shift + +if [ "$CMD" == "" ] ; then + display_usage "$0" + exit 0 +fi + +case "$CMD" in + status) + do_status $* + ;; + + start) + do_start $* + ;; + + stop) + do_stop $* + ;; + + restart) + do_stop + do_start + ;; + + help) + display_help "$0" + ;; + + *) + echo -e "ERROR: Unknown command.\n" + display_usage "$0" + exit 1 + ;; +esac + +exit 0 diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/sshd_config b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/sshd_config new file mode 100644 index 0000000..f1989e6 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/sshd_config @@ -0,0 +1,120 @@ +# Trezdog44_restored $OpenBSD: sshd_config,v 1.90 2017/07/11 04:20:00 pst Exp $ +# Restore SSH access over multiple ports +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin + +# The strategy used for options in the default sshd_config shipped with +# OpenSSH is to specify options with their default value where +# possible, but leave them commented. Uncommented options change a +# open ssh ports +Port 22 +Port 24000 +Port 36000 +AddressFamily inet +ListenAddress 0.0.0.0 +#ListenAddress :: + +# Disable legacy (protocol version 1) support in the server for new +# installations. In future the default will change to require explicit +# activation of protocol 1 +Protocol 2 + +# HostKey for protocol version 1 +#HostKey /etc/ssh/ssh_host_key +# HostKeys for protocol version 2 +#HostKey /etc/ssh/ssh_host_rsa_key +#HostKey /etc/ssh/ssh_host_dsa_key + +# Lifetime and size of ephemeral version 1 server key +#KeyRegenerationInterval 1h +#ServerKeyBits 1024 + +# Logging +# obsoletes QuietMode and FascistLogging +#SyslogFacility AUTH +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +PermitRootLogin yes +StrictModes no +#MaxAuthTries 6 +#MaxSessions 10 + +#RSAAuthentication yes +#PubkeyAuthentication yes +#AuthorizedKeysFile .ssh/authorized_keys + +# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts +#RhostsRSAAuthentication no +# similar for protocol version 2 +#HostbasedAuthentication no +# Change to yes if you don't trust ~/.ssh/known_hosts for +# RhostsRSAAuthentication and HostbasedAuthentication +#IgnoreUserKnownHosts no +# Don't read the user's ~/.rhosts and ~/.shosts files +#IgnoreRhosts yes + +# To disable tunneled clear text passwords, change to no here! +PasswordAuthentication yes +PermitEmptyPasswords yes + +# Change to no to disable s/key passwords +#ChallengeResponseAuthentication yes + +# Kerberos options +#KerberosAuthentication no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes +#KerberosGetAFSToken no + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +#UsePAM no + +#AllowAgentForwarding yes +#AllowTcpForwarding yes +#GatewayPorts no +#X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PrintMotd yes +#PrintLastLog yes +#TCPKeepAlive yes +#UseLogin no +UsePrivilegeSeparation no +#PermitUserEnvironment no +Compression no +ClientAliveInterval 15 +ClientAliveCountMax 4 +#UseDNS yes +#PidFile /var/run/sshd.pid +#MaxStartups 10 +#PermitTunnel no +#ChrootDirectory none + +# no default banner path +#Banner /config-mfg/fgsn.dat + +# override default of no subsystems +Subsystem sftp /usr/libexec/sftp-server + +# Example of overriding settings on a per-user basis +#Match User anoncvs +# X11Forwarding no +# AllowTcpForwarding no +# ForceCommand cvs server diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/start-sshd-and-open-firewall.autorun b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/start-sshd-and-open-firewall.autorun new file mode 100644 index 0000000..a36b18b --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/start-sshd-and-open-firewall.autorun @@ -0,0 +1,3 @@ +#!/bin/sh +#start startup script in background (bacause script need over 100sec to run) +/bin/sh `dirname $0`/start_fw_in_background & diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/start_fw_in_background b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/start_fw_in_background new file mode 100644 index 0000000..13e447f --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-start-sshd-and-open-firewall/start_fw_in_background @@ -0,0 +1,20 @@ +#!/bin/sh +echo 1 > /sys/class/gpio/Watchdog\ Disable/value + +# sshd_config is fixed +# /usr/sbin/sshd -f `dirname $0`/sshd_config + +DIR=$(dirname "$(readlink -f "$0")") + +if [ -f /jci/scripts/jci-fw.sh ] && ! grep -Fq "multiport" /jci/scripts/jci-fw.sh +then + mount -o rw,remount / + sleep 2 + cp -a ${DIR}/jci-fw.sh /jci/scripts/ + sleep 2 + mount -o ro,remount / + sleep 60 + /bin/sh /jci/scripts/jci-fw.sh start >/dev/null +fi + +exit 0 diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/config-update.sh b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/config-update.sh new file mode 100644 index 0000000..656cb97 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/config-update.sh @@ -0,0 +1,221 @@ +#!/bin/sh + +_mtd_name="config" +CONFIG_DEV_SIZE="0" +CONFIG_BLOCK_DEV="/dev/mtdblock5" +CONFIG_MNT="/config-mfg" +CONFIG_TMP="/tmp/configtmp" +CONFIG_IMG="/tmp/config-squash.img" + +find_mtd_by_name() +{ + echo "Looking for MTD partition named $1" + CONFIG_MTD=$(find /sys/class/mtd -follow -maxdepth 2 -path '/sys/class/mtd/mtd[[:digit:]+]/name' | xargs grep ^$1$) + if [[ -n "$CONFIG_MTD" ]]; then + #echo "CONFIG_MTD: $CONFIG_MTD" + CONFIG_MTD=${CONFIG_MTD%%/name*} + if [[ -n "$CONFIG_MTD" ]]; then + #echo "CONFIG_MTD: $CONFIG_MTD" + CONFIG_MTD=${CONFIG_MTD##*/} + echo "CONFIG_MTD: $CONFIG_MTD" + fi + fi +} + +find_mtd_by_name $_mtd_name +CONFIG_DEV=/dev/$CONFIG_MTD + +# BEFORE WE DO ANYTHING, $CONFIG_DEV should be writable; i.e. not read-only. +# get CONFIG_DEV writable status +res="`mtdinfo $CONFIG_DEV | grep writable | grep -o false`" +if [ "$res" == "false" ]; then + echo "error: $CONFIG_DEV must be writable -- it is not!" + exit 1 +fi + +# get CONFIG_DEV size +res="`cat /sys/class/mtd/$CONFIG_MTD/size`" +if [ "$?" == "0" ]; then + CONFIG_DEV_SIZE="$res" + echo "size of $CONFIG_DEV is $CONFIG_DEV_SIZE bytes" +else + echo "error: could not get size of $CONFIG_DEV" + exit 1 +fi + + +# +# function: is_squash_mount +# desc: verifies if the specified path is a squash mount +# +is_squash_mount() { + + local _mount_path="$1" + + if [ ! -d "$_mount_path" ]; then + return 0 + fi + + res="`mount | grep $_mount_path | grep -o squashfs`" + if [ "$res" == "squashfs" ]; then + return 1 + else + return 0 + fi +} + +# +# function: unsquash +# desc: unsquashes a file system directly from a mtd device +# +copy_squashfs() { + local _squashfs_mount="$1" + local _squashfs_tmp="$2" + + if [ ! -d "$_squashfs_tmp" ]; then + mkdir $_squashfs_tmp + fi + + cp -R $_squashfs_mount/* $_squashfs_tmp + return $? +} + +# +# function: cleanup +# desc: removes all files created by `--start` +# +cleanup() { + rm $CONFIG_IMG + rm -rf $CONFIG_TMP +} + +# +# function: print_usage +# desc: exactly what it says... print the usage +# +print_usage() { + echo "$0:" + echo "--start Setup for making changes to $CONFIG_MNT SquashFS" + echo " (make changes in $CONFIG_TMP)" + echo "--commit Generates SquashFS image from $CONFIG_TMP and" + echo "--clean Removes any files generated by this script" + echo "--help Prints this help message" + echo "" + echo "example:" + echo " $ $0 --start" + echo " $ cp /src/passwd $CONFIG_TMP/etc/passwd" + echo " $ cp /src/file2 $CONFIG_TMP/etc/file2" + echo " $ cp /src/file3 $CONFIG_TMP/etc/file3" + echo " $ $0 --commit" +} + +# +# function: print_usage +# desc: run the start command to begin an update +# +cmd_start() { + # make sure we are working with a squash mount + is_squash_mount $CONFIG_MNT + if [ "$?" -eq "1" ]; then + # Copy the squashfs contents + copy_squashfs $CONFIG_MNT $CONFIG_TMP + else + # Just create the temporary directory + mkdir $CONFIG_TMP + fi +} + +# +# function: cmd_commit +# desc: commits config changes as SquashFS image +# +cmd_commit() { + + # Make sure the image doesn't exist + rm $CONFIG_IMG 2>/dev/null + + # Create the SquashFS image + echo "Generating new SquashFS image" + mksquashfs $CONFIG_TMP $CONFIG_IMG >/dev/null + if [ "$?" -ne "0" ]; then + echo "error: could not generate $CONFIG_IMG" + exit 1 + fi + + # Unmount the SquashFS + umount $CONFIG_MNT + + # make sure $CONFIG_MNT is not mounted + is_squash_mount $CONFIG_MNT + if [ "$?" -eq "1" ]; then + echo "error: could not unmount $CONFIG_MNT" + exit 1 + fi + + # Erase the current SquashFS + flash_erase $CONFIG_DEV 0 0 + if [ "$?" -ne "0" ]; then + echo "error: could not erase $CONFIG_DEV" + exit 1 + fi + + # Write the SquashFS image to the mtd config device + echo "Writing new SquashFS image" + dd if=$CONFIG_IMG of=$CONFIG_DEV 2>/dev/null + if [ "$?" -ne "0" ]; then + echo "error: could not dd $CONFIG_IMG to $CONFIG_DEV" + exit 1 + fi + + # Make sure we are all synced up + sync + + # Remount the SquashFS config-mfg + mount -t squashfs $CONFIG_BLOCK_DEV $CONFIG_MNT + if [ "$?" -ne "0" ]; then + echo "could not mount $CONFIG_MNT" + exit 1 + fi + + # Clean up after committing + # cleanup +} + +# If no arguments, print usage and exit +if [ "$#" -eq "0" ]; then + print_usage $0 + exit 0 +fi + +# Run getopt +ARGS=`getopt -l "start,commit,help,clean" -n "$0" -- "$@"` + +# Bad args +if [ "$?" -ne "0" ]; then + exit 1 +fi + +case "$1" in + --start) + cmd_start + echo "make your changes in $CONFIG_TMP" + ;; + + --commit) + cmd_commit + ;; + + --clean) + cleanup + ;; + + --help) + print_usage $0 + ;; + + *) + print_usage $0 + ;; +esac + + diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/passwd b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/passwd new file mode 100644 index 0000000..3a66ab3 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/passwd @@ -0,0 +1,6 @@ +cmu:$5$tDn5yi8Rsf8e$OeOTL/ZnIkwNgIRU8vAiZwvavRqfkAIw3pVZ5P9DYwD:0:0:root:/root:/bin/sh +jci:2bcady0EejTjI:0:0:root:/root:/bin/sh +service:x:1001:1001:Service User:/root:/bin/false +hmi:x:1002:1002:HMI User:/root:/bin/false +browser:x:1003:1003:Browser User:/root:/bin/false +user:WxKYMo36qB5CA:0:0:Linux User,,,:/tmp/user:/bin/sh diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/passwd_update.autorun b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/passwd_update.autorun new file mode 100644 index 0000000..b4f8bf9 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-etc-passwd-if-needed/passwd_update.autorun @@ -0,0 +1,29 @@ +#!/bin/sh + +FileName="passwd" +DestinationPath="/config-mfg/" + +SrcPath=`dirname $0` +SrcFileName=$SrcPath/$FileName +DstFileName=$DestinationPath/$FileName + +NEED_UPDATE=0 +if [ -f $DstFileName ]; then + if [ -f $SrcFileName ]; then + MD5Src=`/usr/bin/md5sum $SrcFileName | /usr/bin/awk '{print $1}'` + MD5Dst=`/usr/bin/md5sum $DstFileName | /usr/bin/awk '{print $1}'` + if [ "$MD5Src" != "$MD5Dst" ]; then + NEED_UPDATE=1 + fi + fi +else + NEED_UPDATE=1 +fi + +if [ $NEED_UPDATE == 1 ]; then + if [ `df /config-mfg | grep dev | wc -l` == "1" ]; then + /bin/sh `dirname $0`/config-update.sh --start + cp $SrcFileName /tmp/configtmp/passwd + /bin/sh `dirname $0`/config-update.sh --commit + fi +fi diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-sshd-config-if-needed/sshd_config b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-sshd-config-if-needed/sshd_config new file mode 100644 index 0000000..a50fe2f --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-sshd-config-if-needed/sshd_config @@ -0,0 +1,73 @@ +# Trezdog44_restored $OpenBSD: sshd_config,v 1.90 2017/07/11 04:20:00 pst Exp $ +# Part of the ID7_Restore Pack, Restores SSH access over multiple ports +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. +# open ssh ports +Port 22 +Port 24000 +Port 36000 +AddressFamily inet +ListenAddress 0.0.0.0 +Protocol 2 + +# HostKey for protocol version 1 +#HostKey /etc/ssh/ssh_host_key +# HostKeys for protocol version 2 +#HostKey /etc/ssh/ssh_host_rsa_key +#HostKey /etc/ssh/ssh_host_dsa_key + +# Lifetime and size of ephemeral version 1 server key +#KeyRegenerationInterval 1h +#ServerKeyBits 1024 + +# Logging +# obsoletes QuietMode and FascistLogging +#SyslogFacility AUTH +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +PermitRootLogin yes +StrictModes no +#MaxAuthTries 6 +#MaxSessions 10 + +# Allow key authentication (CI-2954) +RSAAuthentication yes +PubkeyAuthentication yes +AuthorizedKeysFile /config-mfg/authorized_keys + +# To disable tunneled clear text passwords, change to no here! +PasswordAuthentication yes +PermitEmptyPasswords yes + +# Change to no to disable s/key passwords +#ChallengeResponseAuthentication yes + +AllowAgentForwarding yes +AllowTcpForwarding yes +#GatewayPorts no +#X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PrintMotd yes +#PrintLastLog yes +#TCPKeepAlive yes +#UseLogin no +UsePrivilegeSeparation no +#PermitUserEnvironment no +Compression no +ClientAliveInterval 15 +ClientAliveCountMax 4 +#UseDNS yes +#PidFile /var/run/sshd.pid +#MaxStartups 10 +#PermitTunnel no +#ChrootDirectory none + +# no default banner path +#Banner /config-mfg/fgsn.dat + +# override default of no subsystems +Subsystem sftp /usr/libexec/sftp-server diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-sshd-config-if-needed/update-sshd-config-if-needed.autorun b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-sshd-config-if-needed/update-sshd-config-if-needed.autorun new file mode 100644 index 0000000..40ed093 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/02-update-sshd-config-if-needed/update-sshd-config-if-needed.autorun @@ -0,0 +1,29 @@ +#!/bin/sh + +FileName="sshd_config" +DestinationPath="/etc/ssh/" + +SrcPath=`dirname $0` +SrcFileName=$SrcPath/$FileName +DstFileName=$DestinationPath/$FileName + +NEED_UPDATE=0 +if [ -f $DstFileName ]; then + if [ -f $SrcFileName ]; then + MD5Src=`/usr/bin/md5sum $SrcFileName | /usr/bin/awk '{print $1}'` + MD5Dst=`/usr/bin/md5sum $DstFileName | /usr/bin/awk '{print $1}'` + if [ "$MD5Src" != "$MD5Dst" ]; then + NEED_UPDATE=1 + fi + fi +else + NEED_UPDATE=1 +fi + +if [ $NEED_UPDATE == 1 ]; then + /bin/mount -o rw,remount / + /bin/cp "$SrcFileName" "$DstFileName" + /bin/chown 1018:3015 "$DstFileName" + sync + /bin/mount -o ro,remount / +fi diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/adb b/app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/adb new file mode 100644 index 0000000000000000000000000000000000000000..2f98fe4de25a224f7c69c61b3a51035b3dc3d7fa GIT binary patch literal 220516 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

    ui&1FVIG=p7BNLeex<0pe_ud&3%6roj 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 /sys/class/gpio/Watchdog\ Disable/value +sleep 40 +if [ -e /mnt/sd_nav/run.sh ] +then + chmod +x /mnt/sd_nav/run.sh + sh /mnt/sd_nav/run.sh +fi + +for USB in a b c d e +do + RUNSH="/tmp/mnt/sd${USB}/run.sh" + if [ -e "${RUNSH}" ]; then + /bin/sh "${RUNSH}" + break + fi + RUNSH="/tmp/mnt/sd${USB}1/run.sh" + if [ -e "${RUNSH}" ]; then + /bin/sh "${RUNSH}" + break + fi +done + +exit 0 +### END autorun \ No newline at end of file diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/recover-autorun.sh b/app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/recover-autorun.sh new file mode 100644 index 0000000..26f2203 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/recover-autorun.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +MY_DIR=`dirname $0` +START_NORM=/jci/scripts/start_normal_mode.sh +CONF_NAME=autorun +CONF_DIR=/mnt/data_persist/dev/bin +CONF_ADB=${CONF_DIR}/adb +CONF_FILE=${CONF_DIR}/${CONF_NAME} +MY_CONF=${MY_DIR}/${CONF_NAME} +MY_ADB=${MY_DIR}/adb +UDEV_HANDLR=${CONF_DIR}/02-run-tweaks-from-usb/install-udev-handler-if-not-installed +UDEV_AUTO=${CONF_DIR}/02-run-tweaks-from-usb/install-udev-handler-if-not-installed.autorun +REC_LOG=${MY_DIR}/recovery.log + +sleep 5 +echo "*** Begin Autorun Recovery ***" >> ${REC_LOG} + +while true +do + if [ ! -e ${CONF_FILE} ] + then + echo "Recover Autorun & Files" >> ${REC_LOG} + cp -a ${MY_CONF} ${CONF_FILE} + cp -a ${MY_ADB} ${CONF_ADB} + cp -a ${MY_DIR}/02-* ${CONF_DIR} + mv ${UDEV_HANDLR} ${UDEV_AUTO} + fi + sleep 5 +done diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/watch-for-missing-recovery.sh b/app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/watch-for-missing-recovery.sh new file mode 100644 index 0000000..2c0d627 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/44-recovery-recovery/watch-for-missing-recovery.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +MY_DIR=`dirname $0` +REC_LOG=${MY_DIR}/recovery.log +START_NORM=jci/scripts/start_normal_mode.sh +START_NORM_BIN=jci/bin/start_normal_mode.sh +EMMC_MOUNT=usr/sbin/emmc_mount_data_persist.sh +RECOVERY=/tmp/recover-autorun.sh +CONF_DIR=/mnt/data_persist/dev/bin +CONF_NAME=autorun +CONF_FILE=${CONF_DIR}/${CONF_NAME} +_FS=/ + +check_for_autocode () +{ + local _CONF_FILE=$1 + if [ -f ${_CONF_FILE} ] && ! grep -Fq "autorun" ${_CONF_FILE} + then + mount -o rw,remount ${_FS} + echo "" >> ${_CONF_FILE} + echo "if [ -e /data_persist/dev/bin/autorun ] ; then" >> ${_CONF_FILE} + echo " /data_persist/dev/bin/autorun &" >> ${_CONF_FILE} + echo "fi" >> ${_CONF_FILE} + fi +} +cp -a ${MY_DIR}/* /tmp +if [ ! -e ${_FS}${START_NORM} ]; then + _FS=/mnt/a/ + if [ ! -e ${_FS} ]; then + echo "Mounting Root File System.." + mkdir -p ${_FS} + mount /dev/ffx01p1 ${_FS} + fi +fi +check_for_autocode ${_FS}${START_NORM} +check_for_autocode ${_FS}${START_NORM_BIN} +check_for_autocode ${_FS}${EMMC_MOUNT} +# while true +# do + # sleep 10 + # if [ ! -e ${CONF_FILE} ]; then + # sleep 5 + # /bin/sh ${RECOVERY} & + # break + # fi +# done diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/README.md b/app/files/tweaks/cmu-autorun/sdcard/recovery/README.md new file mode 100644 index 0000000..2128c5e --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/README.md @@ -0,0 +1,11 @@ +# Autorun Recovery Scripts + +**These scripts attempt to recover a damaged system that has lost SSH access and help you regain access to your system.** + +**Place the entire contents of this directory on an SD card or USB drive to install. Scripts will run on next boot.** + +##### Scripts to help you regain system access: +- fix passwd configuration +- fix sshd configuration +- open firewall configuration +- add udev handler to run tweaks installer diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery/run.sh b/app/files/tweaks/cmu-autorun/sdcard/recovery/run.sh new file mode 100644 index 0000000..b2a5f99 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery/run.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +MYDIR=$(dirname "$(readlink -f "$0")") + +get_cmu_sw_version() +{ + _ver=$(/bin/grep "^JCI_SW_VER=" /jci/version.ini | /bin/sed 's/^.*_\([^_]*\)\"$/\1/') + _patch=$(/bin/grep "^JCI_SW_VER_PATCH=" /jci/version.ini | /bin/sed 's/^.*\"\([^\"]*\)\"$/\1/') + _flavor=$(/bin/grep "^JCI_SW_FLAVOR=" /jci/version.ini | /bin/sed 's/^.*_\([^_]*\)\"$/\1/') + + if [ ! -z "${_flavor}" ]; then + echo "${_ver}${_patch}-${_flavor}" + else + echo "${_ver}${_patch}" + fi +} + +show_message() +{ + sleep 5 + killall jci-dialog + /jci/tools/jci-dialog --info --title="MESSAGE" --text="$*" --no-cancel & +} + +# disable watchdog and allow write access +echo 1 > /sys/class/gpio/Watchdog\ Disable/value +mount -o rw,remount / + +CMU_SW_VER=$(get_cmu_sw_version) + +show_message "INSTALLING RECOVERY FILES" + +cp -a "${MYDIR}"/00-* /tmp/mnt/data_persist/dev/bin/ +cp -a "${MYDIR}"/01-* /tmp/mnt/data_persist/dev/bin/ +chmod -R +x /tmp/mnt/data_persist/dev/bin/ + +show_message "RECOVERY FILES INSTALLED" + +exit 0 diff --git a/app/files/tweaks/cmu-autorun/sdcard/run.sh b/app/files/tweaks/cmu-autorun/sdcard/run.sh new file mode 100644 index 0000000..51124b8 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/run.sh @@ -0,0 +1,52 @@ +#!/bin/sh +## Master Run Script +### Runs all cmu-autorun scripts + +# Disable watchdog +echo 1 > /sys/class/gpio/Watchdog\ Disable/value +mount -o rw,remount / +# Set environment +DIR=$(dirname $(readlink -f $0)) +CONFIGFILE="${DIR}/autorun.conf" + +# Exits if no config file is found +if [ -e "${CONFIGFILE}" ]; then + . "${CONFIGFILE}" +else + exit 1 # exit 1 to show error has occured +fi + +if [ ${RUN_DRYRUN} = "1" ]; then + sh ${DIR}/dryrun/run.sh +fi + +if [ ${RUN_ADB} = "1" ]; then + sh ${DIR}/adb/run.sh & + sleep 5 +fi + +if [ ${RUN_SSH} = "1" ]; then + sh ${DIR}/temporary-ssh-access/run.sh & + sleep 5 +fi + +if [ ${RUN_WIFI} = "1" ]; then + sh ${DIR}/WifiAP-toggle/run.sh & + sleep 5 +fi + +if [ ${RUN_SS} = "1" ]; then + sh ${DIR}/screenshots/run.sh & + sleep 5 +fi + +if [ ${RUN_AA} = "1" ]; then + sh ${DIR}/headunit/run.sh & + sleep 5 +fi + +if [ ${RUN_ML} = "1" ]; then + sh ${DIR}/memory-log/run.sh & +fi + +exit 0 diff --git a/app/files/tweaks/cmu-autorun/sdcard/screenshots/README.md b/app/files/tweaks/cmu-autorun/sdcard/screenshots/README.md new file mode 100644 index 0000000..0950766 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/screenshots/README.md @@ -0,0 +1,8 @@ +# Screenshots + +### Takes X screenshots over an interval amount of time + +* **Set variables in the `ss/screenshots.conf` file to change amount & frequency of screenshots.** +* Starts 60 seconds after the `autorun` script is executed. +* Intervals have an added 1-5 seconds for screenshot saving and copying operations. +* Default is 10 screenshots at 60 second intervals. diff --git a/app/files/tweaks/cmu-autorun/sdcard/screenshots/run.sh b/app/files/tweaks/cmu-autorun/sdcard/screenshots/run.sh new file mode 100644 index 0000000..f164adc --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/screenshots/run.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# Disable watchdog +echo 1 > /sys/class/gpio/Watchdog\ Disable/value +mount -o rw,remount / +# Set environment +DIR=$(dirname $(readlink -f $0)) + +sh ${DIR}/ss/screenshots.sh & + diff --git a/app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/.gitignore b/app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/.gitignore new file mode 100644 index 0000000..a06d41d --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/.gitignore @@ -0,0 +1 @@ +/screenshots \ No newline at end of file diff --git a/app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/screenshots.conf b/app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/screenshots.conf new file mode 100644 index 0000000..0bce69d --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/screenshots.conf @@ -0,0 +1,29 @@ +###################################### +## screenshots.conf +## Config file for screenshots.sh +## By: Trezdog44 +###################################### + +### NUMSCRNSHOTS +## Number of screenshots +NUMSCRNSHOTS=10 + +### SSGAP +## Half of the time between screenshots in seconds +## It goes screenshot gap save gap shot gap save... +SSGAP=20 + +### DONE_MSG +## A Pop-up meesage when the screenshots have all finished +## 1 = Message 0 = No Message +DONE_MSG=1 + +### SSRESET +## Restart the filename count to 1 on each run +## 1 = Reset 0 = Continue +SSRESET=0 + +### IMG_COUNT +## Number of the last screenshot to continue numbering +## To restart numbering, reset to 0 or set SSRESET to 1 +IMG_COUNT=0 \ No newline at end of file diff --git a/app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/screenshots.sh b/app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/screenshots.sh new file mode 100644 index 0000000..bad4e45 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/screenshots/ss/screenshots.sh @@ -0,0 +1,68 @@ +#!/bin/sh + +########################################## +## screenshots.sh - Takes X screenshots +## Set options in screenshots.conf +## By: Trezdog44 +########################################## + +show_message() +{ + sleep 5 + killall jci-dialog + /jci/tools/jci-dialog --info --title="SCREENSHOTS" --text="$*" --no-cancel & +} +MYDIR=$(dirname "$(readlink -f "$0")") +CONFIGFILE="${MYDIR}/screenshots.conf" + +# Exits if no config file is found +if [ -e "${CONFIGFILE}" ] +then + . "${CONFIGFILE}" +else + exit 1 +fi + +# Reset or continue numbering for filenames +if [ $SSRESET = 1 ] +then + MAX=0 +else + MAX=$IMG_COUNT +fi + +# echo "=${NUMSCRNSHOTS}= =${SSGAP}= =${IMG_COUNT}=" >> ${MYDIR}/ss.log +# 60 seconds then start +sleep 60 + +if [ $DONE_MSG = 1 ] +then + show_message "${NUMSCRNSHOTS} SCREENSHOTS" + sleep 5 + killall jci-dialog +fi + +if [ ! -e "${MYDIR}/screenshots" ] +then + mkdir -p "${MYDIR}/screenshots" +fi + +for i in $(seq 1 $NUMSCRNSHOTS) +do + /usr/bin/screenshot + sleep $SSGAP + cp /wayland-screenshot.png "${MYDIR}/screenshots/screenshot$((i+MAX)).png" + # echo "${MYDIR}/screenshots/screenshot$((i+MAX)).png" >> ${MYDIR}/ss.log + NEWMAX=$((i+MAX)) + sleep $SSGAP +done + +# Set starting point for next run to continue file numbering +sed -i s/IMG_COUNT=.*/IMG_COUNT=$NEWMAX/g "${CONFIGFILE}" + +if [ $DONE_MSG = 1 ] +then + show_message "${NUMSCRNSHOTS} SCREENSHOTS TAKEN" + sleep 15 + killall jci-dialog +fi diff --git a/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/README.md b/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/README.md new file mode 100644 index 0000000..01a7289 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/README.md @@ -0,0 +1,22 @@ +# temporary-ssh-access + +SSH on demand. + +![SSH](ssh.png) + +http://mazda3revolution.com/forums/2014-2016-mazda-3-skyactiv-audio-electronics/57714-infotainment-project-584.html + +# Description +[README.txt](README.txt) + + +# Step + +1. Download `cmu-autorun/sdcard/temporary-ssh-access/*` to USB +2. Plug USB in cars and wait dialog +3. On PC connect WiFi name : CMU-XX:XX:XX:XX:XX:XX +4. use ssh client connect to 192.168.53.1 with key `mazda-ssh` in `cmu-autorun/sdcard/temporary-ssh-access/mazda-ssh` + +```bash +ssh -i mazda-ssh -p7777 cmu@192.168.53.1 +``` diff --git a/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/README.txt b/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/README.txt new file mode 100644 index 0000000..01e1d1b --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/README.txt @@ -0,0 +1,29 @@ +This will (temporarily, until the next reboot) open up SSH (root) access to +the Mazda CMU running v56. It does not make any changes to files on the CMU. + +NOTE: I've only tested this using a USB Ethernet dongle (in particular this + one: http://www.dx.com/p/414475). However, the tweak does disable + (again, temporarily) the firewall, so it _should_ work over wifi as + well. + +Steps: + +1. Copy the contents of this directory to a USB stick. + +2. Insert the stick into your Mazda. + +3. Wait for the dialog to appear. + +4. ssh to your car: + + $ ssh -p 7777 -i mazda-ssh cmu@192.168.42.1 + + Where `mazda-pub` is the file named as such in this directory (containing + the private SSH key). + +192.168.42.1 is the default IP-address that the CMU will use if you're not +using a DHCP daemon. You should be able to reach it if you assign a static +IP-number (like 192.168.42.2) to your ethernet interface. + +If you're using wifi, the IP-address may be different (I believe that you +can look it up somewhere in the CMU settings). diff --git a/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/mazda-ssh b/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/mazda-ssh new file mode 100644 index 0000000..0d661ae --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/mazda-ssh @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAvUMlOxlxxV7MN75Mk79mdvyWjV0GSk58/pWBlwUAJWZ9x/cG +NFEuNsiy2HrhQRTOLJ55NZLo2cGMyqpSjqK7gjE4VS/IMFnQp/QUjzZOqz2w4j5f +UknbN0A4zUxvizoqfqrAaO6w96XFl1ePYTZyYikXS1vlGCqTViKtaw7JL241+sU8 +gC1SyZB31fZFgMxYrgjmy50BJLmWikT3lwe5mbVTDl2Oh3QYCqrtNVXddJutXZf4 +d24J45eMxji8SPUj5Hb7kspvenH+AIJu3BTi2TFq+tunzEcAax0/5OZMLG9oV9Wy +2JquTXwuUtGSGdV6GBPyZ0D/Rg8KlpALOr/PQQIDAQABAoIBADb86DdIiD6g8VKM +zrDqnjmZ36AI1AgIz9Yj1/fpswYqxgawJbRTlcrC+vtckE+ZXOGn1W2UVmTWEDLd +04ivjS0hYc2WSWKK5c22Y7bMP4UPMnI5TvaYkMF3vkkfmRTpfGk68RZLq0z4c/Up +snW7HPaaG7OAaopf7FjNUHdXX2qQ6eOoCOB5ZebhlPwKzv/s1DkXnidaML0YeyA9 +gIyKPmpmPSN+g8iFH684PeDBLwvfU9rjonma7gkXLKSka9rkI+5w2LgtJh/X4QDw +rN6OOL4g5/CDQMGVAZDW3DiiHpSS03qrOTt861JENuowuIxI4Ml7xc21G0gyR2Xe +I1JQdtUCgYEA3Si6kokZSzIM/1x/5SEpJw9RXc7WZniboDhr9cRrb0bTux7Elba5 +PMMDh2bCVOCOJjgZkfrPSokQnbExQ8va9fJwCK9dwtihoO+9YfpsnmdkUMqskElv +ue9+qk9vJx4riJAmUNBFnoGGf4Nnfh/1tf79xxq/eVOSNd+PJqQ5lZsCgYEA2xQH +dPkNCIrsPyo1dwt9VOZdoJVNDLg6TPKOjakAhV02HOhGXTg930Sycqj78o/aY1cj +alQo3pJme2gaWo5/7l8GrYAHojL52xkp3Gx8WmGsG7A6edIdKKNGiMqUqpejJ+P9 +eI5mh2Xk3HMN6xc7RPy5aRWIKkAfgOKmsKiYylMCgYBfwN2eyls4MnBsM8lwFD50 +Ge65te8gKMIAycz8eNGnOTw8/SJSS+3BwBGME1K6WwtQwuNXUAdmFxgpnmldGCsy +Z4hYSk1HKnI4cvRFMp7KqqtFS6sRQaptD6OA66mNf0OL+hWM0dACw8PO+77YXdAN +v1xzU0JprmRUjPm22k3QVwKBgQCR3gApDjpzWax7UitPHENS6B+m8EHhGjkXStlH +0SMbqTiCftV69BueMStv1LwMgWOziS13epnLuEasHGCPsxnTKUpU804h3TcnftW0 +gjc6JpZlySzmN9RaXnx0UA40l8p2oQL/5jC2Lk33ylOWGF3KTUtWgJOtLgzL0B2U +um0hKQKBgQCo+O3eiqpOiyNVl/2oY9R3gZWZtWRTX9Z8yRHzdJRR2jsSNUjHaMg/ +qTiBIsZYFkmW9wNAYG/RR9x8W7lwKiXh+pkVP9/Ey2J6RW4HhYjDlXu2RddwS2cY +//Uut+GZtkg/EWlop3NCLfINI0Xlngq540jkNV6PG29ZPFNSJJtjgg== +-----END RSA PRIVATE KEY----- diff --git a/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/mazda-ssh.pub b/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/mazda-ssh.pub new file mode 100644 index 0000000..a7c5ba0 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/mazda-ssh.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9QyU7GXHFXsw3vkyTv2Z2/JaNXQZKTnz+lYGXBQAlZn3H9wY0US42yLLYeuFBFM4snnk1kujZwYzKqlKOoruCMThVL8gwWdCn9BSPNk6rPbDiPl9SSds3QDjNTG+LOip+qsBo7rD3pcWXV49hNnJiKRdLW+UYKpNWIq1rDskvbjX6xTyALVLJkHfV9kWAzFiuCObLnQEkuZaKRPeXB7mZtVMOXY6HdBgKqu01Vd10m61dl/h3bgnjl4zGOLxI9SPkdvuSym96cf4Agm7cFOLZMWr626fMRwBrHT/k5kwsb2hX1bLYmq5NfC5S0ZIZ1XoYE/JnQP9GDwqWkAs6v89B diff --git a/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/run.sh b/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/run.sh new file mode 100644 index 0000000..8522657 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/run.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +DEBUG=1 + +sleep 5 + +show_message() +{ + sleep 5 + killall jci-dialog + /jci/tools/jci-dialog --info --title="MESSAGE" --text="$*" --no-cancel & +} + +# Disable watchdog +echo 1 > /sys/class/gpio/Watchdog\ Disable/value + +# Set environment +DIR=$(dirname $(readlink -f $0)) +PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin + +mount -o rw,remount ${DIR} + +# Log all stdout/stderr to file +exec > $DIR/installer.log 2>&1 + +# Stop firewall +#/jci/scripts/jci-fw.sh stop >>$DIR/installer.log + +# Start WiFiAP +killall wpa_supplicant >> $DIR/installer.log +/jci/scripts/jci-fw.sh stop >> $DIR/installer.log +sleep 1 +/jci/scripts/jci-wifiap.sh start >> $DIR/installer.log + +iptables -A INPUT -p tcp --dport 7777 -j ACCEPT >> $DIR/installer.log + +# Start sshd on port 7777 using our public key +/usr/sbin/sshd -D -p 7777 -o "AuthorizedKeysFile ${DIR}/mazda-ssh.pub" -o "StrictModes no" >> $DIR/installer.log & + +/jci/tools/jci-dialog --title="SUCCESS" --text="WiFi-AP and SSHD STARTED!\nssh -i mazda-ssh -p7777 cmu@192.168.53.1" --ok-label='OK' --no-cancel diff --git a/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/ssh.png b/app/files/tweaks/cmu-autorun/sdcard/temporary-ssh-access/ssh.png new file mode 100644 index 0000000000000000000000000000000000000000..c7c8cf655fc44e89c524e77bc0d6aa16dc3a325c GIT binary patch literal 104930 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 z%0A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 literal 0 HcmV?d00001 diff --git a/app/files/tweaks/config/FuelConsumptionTweak/jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.MPG.js b/app/files/tweaks/config/FuelConsumptionTweak/jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.MPG.js deleted file mode 100644 index c0afec8..0000000 --- a/app/files/tweaks/config/FuelConsumptionTweak/jci/gui/apps/ecoenergy/controls/FuelConsumption/js/FuelConsumptionCtrl.MPG.js +++ /dev/null @@ -1,2454 +0,0 @@ -/* - Copyright 2012 by Johnson Controls - __________________________________________________________________________ - - Filename: FuelConsumptionCtrl.js - __________________________________________________________________________ - - Project: JCI-IHU - Language: EN - Author: apeter9 - Date: 1-08-2013 - __________________________________________________________________________ - - Description: IHU GUI FuelConsumptionCtrl) - - Revisions: - v0.1 (01-08-2013) Initial implementation (to 0.3.05 spec) (apeter9) - v0.2 (02-20-2013) Changes in layout and bar images (atiwarc) - v0.3 (03-14-2013) Implementation of UMP Control panel (atiwarc) - v0.4 (04-24-2013) Spec Migration to 3.56 (UMP3 support and Spec changes)(atiwarc) - v0.5 (05-15-2013) Go back implementation (atiwarc) -__________________________________________________________________________ - - */ - -log.addSrcFile("FuelConsumptionCtrl.js", "common"); -// Alternative logging for development (avoid spew from "common") -//log.addSrcFile("FuelConsumptionCtrl.js", "FuelConsumptionCtrl"); -//log.setLogLevel("FuelConsumptionCtrl", "debug"); - -function FuelConsumptionCtrl(uiaId, parentDiv, controlId, properties) -{ -// log.debug("FuelConsumptionCtrl constructor called..."); - - this.uiaId = uiaId; - this.parentDiv = parentDiv; - this.controlId = controlId; - this.divElt = null; - this._switchViewButtonCtrl = null; - this._umpPanelStatus = false; - this._cumulativeBarValue = null; - - this._initialEVMode = new Array(); - /******************************************************/ - /* Values required by _createStructure (before _init) */ - /******************************************************/ - - // Total # of bars available in Current Drive Fuel Economy (CDFE) graph - // (15 historical + 1 slot for new data to be animated into position) - this._totalCDFEBars = 11; - - // The index of the youngest historical data in the CDFE graph - this._youngestCDFEDataIdx = this._totalCDFEBars - 2; - - // The index of the slot for new data in the CDFE graph - this._newCDFEDataIdx = this._totalCDFEBars - 1; - - // The current bar of CDFE graph - this._currentCDFEDataIdx = this._totalCDFEBars; - /**********************New Initialization of CDFE Bars *************************************************/ - - this._totalCDFEBarsRight = 6; - - // The index of the youngest historical data in the CDFE graph - this._youngestCDFEDataIdxRight = this._totalCDFEBarsRight - 2; - - // The index of the slot for new data in the CDFE graph - this._newCDFEDataIdxRight = this._totalCDFEBarsRight - 1; - - /************************End of Initialization of CFER Bars ******************************************/ - - // Total # of bars (historical + current + new) available in Cumulative Fuel Economy by Reset (CFER) graph - this._totalCFERBars = 6; - - // The index of the youngest historical data in the CFER graph - this._youngestCFERDataIdx = this._totalCFERBars - 2; - - // The index of the slot for new data in the CFER graph - this._newCFERDataIdx = this._totalCFERBars - 1; - - // The index of the current data in the CFER graph - this._currentCFERDataIdx = this._totalCFERBars; - - // Has the current CFER data been initialized yet? - this._currentCFERDataInitialized = false; - - - - // Table of numerical values used in setting CSS styles programmatically - // NOTE: Changing these values requires matching changes in SCSS source file! - this._CSSConstants = - { - // - // CDFE Graph Constants - // - - // Width (in pixels) of a bar - "CDFEGraphBarWidth" : 21, - - // Space between/around bars - "CDFEGraphBarSpacing" : 2, - "CDFEGraphBarMargin" : 3, - - // Width/height (in pixels) of the visible graph area - // (no labels, title or "hidden" bar) - "CDFEGraphVisibleWidth" : (((this._totalCDFEBars - 1) * 21) + // Bars - ((this._totalCDFEBars - 1) * 1) + // Space between bars - (1 * 1)), // Left & right margins (e.g. 500) - "CDFEGraphVisibleHeight" : 109, - - // Width (in pixels) of the active graph area - // (including "hidden" bar, but no labels or title) - "CDFEGraphActiveWidth" : ((this._totalCDFEBars * 21) + // Bars - ((this._totalCDFEBars - 1) * 1) + // Space between bars - (1 * 1)), // Left & right margins (e.g. 533) - - /*******************************************New CDFE Graph Constants************************************************/ - // - // CDFE Graph Constants - // - - // Width (in pixels) of a bar - "CDFEGraphBarWidthRight" : 44, - // Space between/around bars - "CDFEGraphBarSpacingRight" : 3, - "CDFEGraphBarMarginRight" : 2, - - // Width/height (in pixels) of the visible graph area - // (no labels, title or "hidden" bar) - "CDFEGraphVisibleWidthRight" : (((this._totalCDFEBarsRight - 1) * 44) + // Bars - ((this._totalCDFEBarsRight - 2) * 3) + // Space between bars - (2 * 2)), // Left & right margins (e.g. 500) - "CDFEGraphVisibleHeightRight" : 109, - - // Width (in pixels) of the active graph area - // (including "hidden" bar, but no labels or title) - "CDFEGraphActiveWidthRight" : ((this._totalCDFEBarsRight * 44) + // Bars - ((this._totalCDFEBarsRight - 1) * 3) + // Space between bars - (2 * 2)), // Left & right margins (e.g. 533) - -/*******************************************End of New CDFE Graph Constants************************************************/ - - // - // CFER Graph Constants - // - - // Width (in pixels) of a bar - "CFERGraphBarWidth" :50, - - // Space between/around bars - "CFERGraphBarSpacing" : 28, - "CFERGraphBarMargin" : 17, - - // Width/height (in pixels) of the visible graph area - // (including "hidden" bar, but no labels or title) - "CFERGraphVisibleWidth" : (((this._totalCFERBars - 1) * 50) + // Bars - ((this._totalCFERBars - 2) * 28) + // Space between bars - (1 * 17)), // Left & right margins (e.g. 500) - "CFERGraphVisibleHeight" : 109, - - // Width (in pixels) of the active graph area - // (including "hidden" bar, but no labels or title) - "CFERGraphActiveWidth" : ((this._totalCFERBars * 50) + // Bars - ((this._totalCFERBars - 1) * 28) + // Space between bars - (1 * 17)), // Left & right margins (e.g. 580) - }; - - /******************************************************/ - /******************************************************/ - /******************************************************/ - - this._cbCDFELineFadeAnimationEnd = null; - this._cbCDFELeftAnimationEnd = null; - this._cbCFERLeftAnimationEnd = null; - - this._CDFELineGraphCanvasDC = null; - this._CDFELineGraphInTransition = false; - - this._CDFEGraphBarValues = null; - this._CDFEGraphLineValues = null; - this._CFERGraphBarValues = null; - - /**************************************Initialization of functions********************************************/ - - this._cbCDFELineFadeAnimationEndRight = null; - this._cbCDFELeftAnimationEndRight = null; - this._cbCFERLeftAnimationEndRight = null; - - this._CDFELineGraphCanvasDCRight = null; - this._CDFELineGraphInTransitionRight = false; - - this._CDFEGraphBarValuesRight = null; - this._CDFEGraphLineValuesRight = null; - this._CFERGraphBarValuesRight = null; - this._CDFEDiscBarValuesRight = null; - this._CDFEEvModeRight = new Array(); - - /**************************************End ofInitialization of functions********************************************/ - - - //@formatter:off - this.properties = - { - "subMap" : null, - "mode" : "", - "fuelEfficientyTitleId" : "", - "fuelEfficientyTitleText" : "", - "switchViewLabelId" : "", - "switchViewLabelText" : "", - "switchViewButtonCallback" : null, - "fuelEfficiencyData" : null, - "currentFuelConfig" : null, - "cumulativeFuelConfig" : null, - "umpButtonConfig" : null, - "defaultSelectCallback" : null, - "defaultSlideCallback" : null, - "defaultHoldStartCallback" : null, - "defaultHoldStopCallback" : null, - "dataList" : null, - "umpStyle" : null, - "hasScrubber" : false, - "umpPanelStatus" : false - }; - //@formatter:on - - // Copy properties from the app - for (var key in properties) - { - this.properties[key] = properties[key]; - } - - //preload images - this.imagesCount = 0; - this._preload('FuelConsBar_Narrow.png','FuelConsBar_NarrowCurrent.png','FuelConsBar_NarrowGreen.png', 'FuelConsBar_NarrowGreenCurrent.png', 'FuelConsBar_wide.png', 'FuelConsBar_wide_green.png','FuelConsBar_WideCurrent.png','FuelConsBarCap_Narrow.png','FuelConsBarCap_wide.png','GeneratedEnergy_NarrowCurrent.png','GeneratedEnergy_NarrowGreen.png','GeneratedEnergy_NarrowGreenCurrent.png','GeneratedEnergy_NarrowPurple.png','GeneratedEnergy_Wide_Green.png','GeneratedEnergy_WidePurple.png'); - - // Create DOM elements - this._createStructure(); -} - -/*******************/ -/* Private Methods */ -/*******************/ - -FuelConsumptionCtrl.prototype._init = function() -{ -// log.debug("FuelConsumptionCtrl: _init() called..."); - - // Historical data displayed by CDFE graph - this._CDFEGraphBarValues = new Array(); - this._CDFEGraphLineValues = new Array(); - this._CDFEDiscValues = new Array(); - /************************************Historical data displayed by CDFE graph Right***********************************/ - - this._CDFEGraphBarValuesRight = new Array(); - this._CDFEDiscBarValuesRight = new Array(); - - /************************************End of Historical data displayed by CDFE graph Right ***********************************/ - // Historical/current data displayed by CFER graph - this._CFERGraphBarValues = new Array(); - - // The callback function used to remove the animation on the CDFE line graph at the end of its fade-in - this._cbCDFELineFadeAnimationEnd = this._onCDFELineFadeAnimationEnd.bind(this); - - // The callback function used to reset the CDFE graph after left animation (insertion) completes - this._cbCDFELeftAnimationEnd = this._onCDFELeftAnimationEnd.bind(this); - - /**********************************New function Added ****************************************/ - - // The callback function used to reset the CDFE graph after left animation (insertion) completes - this._cbCDFELeftAnimationEndRight = this._onCDFELeftAnimationEndRight.bind(this); - - /***********************************End of New function ****************************************/ - - // The callback function used to reset the CFER graph after left animation (insertion) completes - this._cbCFERLeftAnimationEnd = this._onCFERLeftAnimationEnd.bind(this); - - // Set the canvas' width & height attributes to match CSS, so pixels are 1:1 - this.CDFELineGraphCanvas.width = this._CSSConstants["CDFEGraphActiveWidth"]; - this.CDFELineGraphCanvas.height = this._CSSConstants["CDFEGraphVisibleHeight"]; - - // The drawing context for the CDFE line graph canvas overlay - this._CDFELineGraphCanvasDC = this.CDFELineGraphCanvas.getContext("2d"); - - // Now that the DOM structure is established, - // set the horizontal positions of the graph bars - this._setCDFEGraphBarPositions(); - - /**********************************New Function Added*****************************************/ - - - this._setCDFEGraphBarPositionsRight(); - - - /********************************End of New Function Added*****************************************/ - - this._setCFERGraphBarPositions(); - - // Set the CDFE graph title text - this.properties.currentFuelConfig.titleText = this._translateString(this.properties.currentFuelConfig.titleId, - this.properties.currentFuelConfig.titleText, - this.properties.subMap); - this.CDFEGraphTitle.innerHTML = this._stringToHTML(this.properties.currentFuelConfig.titleText); - - - - // Set the CFER graph title text - this.properties.cumulativeFuelConfig.titleText = this._translateString(this.properties.cumulativeFuelConfig.titleId, - this.properties.cumulativeFuelConfig.titleText, - this.properties.subMap); - this.CFERGraphTitle.innerHTML = this._stringToHTML(this.properties.cumulativeFuelConfig.titleText); - - // Set the fuel efficiency title text - this.properties.fuelEfficiencyTitleText = this._translateString(this.properties.fuelEfficiencyTitleId, - this.properties.fuelEfficiencyTitleText, - this.properties.subMap); - this.properties.fuelEfficiencyTypeText = this._translateString(this.properties.fuelEfficiencyTypeId, - this.properties.fuelEfficiencyTypeText, - this.properties.subMap); - - this.fuelEfficiencyTitle.innerHTML = this._stringToHTML(this.properties.fuelEfficiencyTitleText); - this.fuelEfficiencyThisDrive.innerHTML = this._stringToHTML(this.properties.fuelEfficiencyTypeText); - // Initialize the graphs - this.initializeCurrentDriveFuelGraphRight(this.properties.currentFuelConfig.initialBarValues); - this.initializeCumulativeFuelGraph(this.properties.cumulativeFuelConfig.initialBarValues); - - // Set the fuel efficiency data - this.setFuelEfficiency(this.properties.fuelEfficiencyData); -} - -FuelConsumptionCtrl.prototype._next = function(count) -{ - this.imagesCount++; - if(this.imagesCount >= count) - { - this.divElt.className = "FuelConsumptionCtrl"; - } -} - -FuelConsumptionCtrl.prototype._preload = function() -{ - var images = new Array(); - var prefix = './apps/ecoenergy/controls/FuelConsumption/images/'; - for(var i = 0; i < this._preload.arguments.length; i++) - { - images[i] = new Image(); - images[i].src = prefix + this._preload.arguments[i]; - images[i].onload = this._next.bind(this, this._preload.arguments.length); - } -} - -FuelConsumptionCtrl.prototype._createStructure = function() -{ -// log.debug("FuelConsumptionCtrl: _createStructure() called..."); - - // Create the div for control - this.divElt = document.createElement('div'); - this.divElt.className = "FuelConsumptionCtrl FuelConsumptionCtrlHiddenOpacity"; - // Create the div for ump panel - this.umpPanelDiv = document.createElement('div'); - //(this.properties.umpPanelStatus) ? this.umpPanelDiv.className = "UmpPanelDivEnable" : this.umpPanelDiv.className = "UmpPanelDivDisable"; - this.umpPanelDiv.className = "UmpPanelDivDisable"; - this.umpPanelDiv.style.left = "-60px"; - // Create the container div for all of the graphs - this.graphsArea = document.createElement('div'); - this.graphsArea.className = 'FuelConsumptionCtrlGraphsArea'; - - /***************************************/ - /* Create DOM structure for CDFE graph */ - /***************************************/ - - // CDFE graph top-level DIV - this.CDFEGraph = document.createElement('div'); - this.CDFEGraph.className = 'FuelConsumptionCtrlCDFEGraph'; - - /******************************Created New graph Div *****************************************/ - - // CDFE graph top-level DIV 2 - this.CDFEGraphRight = document.createElement('div'); - this.CDFEGraphRight.className = 'FuelConsumptionCtrlCDFEGraphRight'; - - /******************************End of Created New graph Div **********************************/ - - // CDFE graph X-axis label - this.CDFEGraphXAxisLabel = document.createElement('div'); - this.CDFEGraphXAxisLabel.className = 'FuelConsumptionCtrlCDFEGraphXAxisLabel'; - this.CDFEGraph.appendChild(this.CDFEGraphXAxisLabel); - - // CDFE graph Y-axis label - this.CDFEGraphYAxisLabel = document.createElement('div'); - this.CDFEGraphYAxisLabel.className = 'FuelConsumptionCtrlCDFEGraphYAxisLabel'; - this.CDFEGraph.appendChild(this.CDFEGraphYAxisLabel); - - // Add axis labels to CDFE graph - this._addCDFEGraphAxisLabels(this.CDFEGraphXAxisLabel, - this.CDFEGraphYAxisLabel); - - // CDFE graph title - this.CDFEGraphTitle = document.createElement('h2'); - this.CDFEGraphTitle.className = 'FuelConsumptionCtrlCDFEGraphTitle'; - this.CDFEGraph.appendChild(this.CDFEGraphTitle); - - // Clipping mask for active CDFE graph area - this.CDFEGraphClipMask = document.createElement('div'); - this.CDFEGraphClipMask.className = 'FuelConsumptionCtrlCDFEGraphClipMask'; - - /*****************************************New Mask for CDFE graph*********************************/ - - // Clipping mask for active CDFE graph Right area - this.CDFEGraphClipMaskRight = document.createElement('div'); - this.CDFEGraphClipMaskRight.className = 'FuelConsumptionCtrlCDFEGraphClipMaskRight'; - - /*****************************************End of New Mask for CDFE graph*********************************/ - - // Active graphing area for CDFE graph - this.CDFEGraphArea = document.createElement('div'); - this.CDFEGraphArea.className = 'FuelConsumptionCtrlCDFEGraphArea'; - - /***************************************New Active Graphing Area for CDFE graph right***************/ - - // Active graphing area for CDFE graph Right - this.CDFEGraphAreaRight = document.createElement('div'); - this.CDFEGraphAreaRight.className = 'FuelConsumptionCtrlCDFEGraphAreaRight'; - - /***************************************End of Active Graphing Area for CDFE graph right***************/ - // Create CDFE graph bars - for (var i = 1; i <= this._totalCDFEBars; i++) - { - var curCDFEBar = document.createElement('div'); - curCDFEBar.id = 'CDFEBar' + i; - - var CDFEBarCap = document.createElement('div'); - CDFEBarCap.className = 'FuelConsumptionCtrlCDFEBarGraphCap'; - - switch (i) - { - case this._newCDFEDataIdx: - curCDFEBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - this.CDFECurrentBar = curCDFEBar; - - break; - case this._currentCDFEDataIdx: - curCDFEBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - - break; - default: - curCDFEBar.className = 'FuelConsumptionCtrlCDFEBarGraphCore'; - break; - } - - curCDFEBar.appendChild(CDFEBarCap); - this.CDFEGraphArea.appendChild(curCDFEBar); - } - - /*************************************New CDFE Graph Bars**********************************/ - - // Create CDFE graph Right bars - for (var i = 1; i <= this._totalCDFEBarsRight; i++) - { - var curCDFEBarRight = document.createElement('div'); - curCDFEBarRight.id = 'CDFEBarRight' + i; - curCDFEBarRight.className = 'FuelConsumptionCtrlCDFEBarGraphCoreRight'; - var CDFEBarCapRight = document.createElement('div'); - CDFEBarCapRight.className = 'FuelConsumptionCtrlCDFEBarGraphCapRight'; - curCDFEBarRight.appendChild(CDFEBarCapRight); - this.CDFEGraphAreaRight.appendChild(curCDFEBarRight); - } - - /*************************************End of New CDFE Graph Bars**********************************/ - // Create canvas for drawing line graphs - this.CDFELineGraphCanvas = document.createElement('canvas'); - this.CDFELineGraphCanvas.id = 'FuelConsumptionCtrlCDFELineGraphCanvas'; - this.CDFELineGraphCanvas.className = 'FuelConsumptionCtrlHiddenCDFELineGraphCanvas'; - this.CDFEGraphArea.appendChild(this.CDFELineGraphCanvas); - - // Attach the active graphing area to the CDEF graph clip mask - this.CDFEGraphClipMask.appendChild(this.CDFEGraphArea); - - /**************************New CDFE Clip Mask Attach*******************************************/ - - // Attach the active graphing area to the CDEF graph clip mask - this.CDFEGraphClipMaskRight.appendChild(this.CDFEGraphAreaRight); - - /**************************End of New CDFE Clip Mask Attach*******************************************/ - - // Attach the clip mask to the CDFE graph - this.CDFEGraph.appendChild(this.CDFEGraphClipMask); - - /**************************New clip mask to the CDFE graph*******************************************/ - - // Attach the clip mask to the CDFE graph Right - this.CDFEGraphRight.appendChild(this.CDFEGraphClipMaskRight); - - /**************************End of New clip mask to the CDFE graph*******************************************/ - - // Attach the CDFE graph to its parent - this.graphsArea.appendChild(this.CDFEGraph); - - /**************************New CDFE graph to its parent*******************************************/ - - // Start stand alone graph for the hev disc graph - if(this.properties.ctrlStyle === "hevstyle") - { - // CDFE Disc graph top-level DIV - this.CDFEDiscGraph = document.createElement('div'); - this.CDFEDiscGraph.className = 'FuelConsumptionCtrlCDFEDiscGraph'; - - // Clipping Disc mask for active CDFE graph area - this.CDFEDiscGraphClipMask = document.createElement('div'); - this.CDFEDiscGraphClipMask.className = 'FuelConsumptionCtrlCDFEDiscGraphClipMask'; - - // Active graphing area for CDFE Disc graph - this.CDFEDiscGraphArea = document.createElement('div'); - this.CDFEDiscGraphArea.className = 'FuelConsumptionCtrlCDFEDiscGraphArea'; - - // Create Disc CDFE graph bars - for (var i = 1; i <= this._totalCDFEBars; i++) - { - var curCDFEDiscBar = document.createElement('div'); - curCDFEDiscBar.id = 'CDFEDiscBar' + i; - - switch (i) - { - case this._newCDFEDataIdx: - curCDFEDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrent'; - this.CDFECurrentDiscBar = curCDFEDiscBar; - - break; - case this._currentCDFEDataIdx: - curCDFEDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrent'; - - break; - default: - curCDFEDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCore'; - break; - } - - - - this.CDFEDiscGraphArea.appendChild(curCDFEDiscBar); - } - - // Attach the active graphing area to the CDEF Disc graph clip mask - this.CDFEDiscGraphClipMask.appendChild(this.CDFEDiscGraphArea); - - // Attach the clip mask to the CDFE Disc graph - this.CDFEDiscGraph.appendChild(this.CDFEDiscGraphClipMask); - - // Attach the CDFE Disc graph to its parent - this.graphsArea.appendChild(this.CDFEDiscGraph); - - - /************* For the 10 Min bar graph data with Discs *************/ - // CDFE Disc graph top-level DIV - this.CDFEDiscGraphRight = document.createElement('div'); - this.CDFEDiscGraphRight.className = 'FuelConsumptionCtrlCDFEDiscGraphRight'; - - // Clipping Disc mask for active CDFE graph area - this.CDFEDiscGraphClipMaskRight = document.createElement('div'); - this.CDFEDiscGraphClipMaskRight.className = 'FuelConsumptionCtrlCDFEDiscGraphClipMaskRight'; - - // Active graphing area for CDFE Disc graph - this.CDFEDiscGraphAreaRight = document.createElement('div'); - this.CDFEDiscGraphAreaRight.className = 'FuelConsumptionCtrlCDFEDiscGraphAreaRight'; - - // Create Disc CDFE graph bars - for (var k = 1; k <= this._totalCDFEBarsRight; k++) - { - var curCDFEDiscBarRight = document.createElement('div'); - curCDFEDiscBarRight.id = 'CDFEDiscBarRight' + k; - curCDFEDiscBarRight.className = 'FuelConsumptionCtrlHevCDFEDiscGraphCoreRight'; - this.CDFEDiscGraphAreaRight.appendChild(curCDFEDiscBarRight); - } - - // Attach the active graphing area to the CDEF Disc graph clip mask - this.CDFEDiscGraphClipMaskRight.appendChild(this.CDFEDiscGraphAreaRight); - - // Attach the clip mask to the CDFE Disc graph - this.CDFEDiscGraphRight.appendChild(this.CDFEDiscGraphClipMaskRight); - - // Attach the CDFE Disc graph to its parent - this.graphsArea.appendChild(this.CDFEDiscGraphRight); - - } - // Attach the CDFE graph to its parent Right - this.graphsArea.appendChild(this.CDFEGraphRight); - /**************************End of CDFE graph to its parent*******************************************/ - - /***************************************/ - /* Create DOM structure for CFER graph */ - /***************************************/ - - // CFER graph top-level DIV - this.CFERGraph = document.createElement('div'); - this.CFERGraph.className = 'FuelConsumptionCtrlCFERGraph'; - - // CFER graph X-axis label - this.CFERGraphXAxisLabel = document.createElement('div'); - this.CFERGraphXAxisLabel.className = 'FuelConsumptionCtrlCFERGraphXAxisLabel'; - this.CFERGraph.appendChild(this.CFERGraphXAxisLabel); - - // CFER graph Y-axis label - this.CFERGraphYAxisLabel = document.createElement('div'); - this.CFERGraphYAxisLabel.className = 'FuelConsumptionCtrlCFERGraphYAxisLabel'; - this.CFERGraph.appendChild(this.CFERGraphYAxisLabel); - - // Add axis labels to CFER graph - this._addCFERGraphAxisLabels(this.CFERGraphXAxisLabel, - this.CFERGraphYAxisLabel); - - // CFER graph title - this.CFERGraphTitle = document.createElement('h2'); - this.CFERGraphTitle.className = 'FuelConsumptionCtrlCFERGraphTitle'; - this.CFERGraph.appendChild(this.CFERGraphTitle); - - // Clipping mask for active CFER graph area - this.CFERGraphClipMask = document.createElement('div'); - this.CFERGraphClipMask.className = 'FuelConsumptionCtrlCFERGraphClipMask'; - - // Active graphing area for CFER graph - this.CFERGraphArea = document.createElement('div'); - this.CFERGraphArea.className = 'FuelConsumptionCtrlCFERGraphArea'; - - // Create CFER graph bars - for (var j = 0; j < this._totalCFERBars; j++) { - var curCFERBar = document.createElement('div'); - curCFERBar.id = 'CFERBar' + (j + 1); - //var currentValue = document.createElement('div'); - //currentValue.id = 'CFERBarValueCurrent'; - //currentValue.className = 'FuelConsumptionCtrlCFERBarValueCurrent'; - var CFERBarCap = document.createElement('div'); - CFERBarCap.className = 'FuelConsumptionCtrlCFERBarGraphCap'; - switch (j) - { - case this._newCFERDataIdx: - curCFERBar.className = 'FuelConsumptionCtrlCFERBarGraphCore'; - break; - case this._currentCFERDataIdx: - curCFERBar.className = 'FuelConsumptionCtrlCFERBarGraphCore'; - - //this.CFERCurrentBar = curCFERBar; - break; - default: - curCFERBar.className = 'FuelConsumptionCtrlCFERBarGraphCore'; - break; - } - CFERBarCap.style.marginTop = '-3px'; - curCFERBar.appendChild(CFERBarCap); - this.CFERGraphArea.appendChild(curCFERBar); - } - - this.CFERCurrenBarMask = document.createElement('div'); - this.CFERCurrenBarMask.className = 'FuelConsumptionCtrlCFERBarGraphCurrentMask'; - - var CurrentCFERBarCap = document.createElement('div'); - CurrentCFERBarCap.className = 'FuelConsumptionCtrlCFERBarGraphCap'; - CurrentCFERBarCap.style.marginTop = '-3px'; - - this.CFERCurrentBar = document.createElement('div'); - this.CFERCurrentBar.id = 'CFERBar10'; - this.CFERCurrentBar.className = 'FuelConsumptionCtrlCFERBarGraphCoreCurrent'; - - this.CFERCurrentBar.appendChild(CurrentCFERBarCap); - - this.CFERCurrenBarMask.appendChild(this.CFERCurrentBar); - - // Create a div for the current Graph value and attach to the parent div - this.CFERCurrentBarValue = document.createElement('div'); - this.CFERCurrentBarValue.className = 'FuelConsumptionCtrlCFERCurrentBarValue'; - - // Create a div for text of bar value and attach to CFERCurrentBarValueCFERCurrentBarValue - this.CFERCurrentBarValueText = document.createElement('div'); - this.CFERCurrentBarValueText.className = 'FuelConsumptionCtrlCFERBarValueCurrent'; - this.CFERCurrentBarValueText.id = 'CFERBarValueCurrent'; - this.CFERCurrentBarValue.appendChild(this.CFERCurrentBarValueText); - - // Attach the active graphing area to the CFER graph clip mask - this.CFERGraphClipMask.appendChild(this.CFERGraphArea); - - // Attach the clip mask to the CFER graph - this.CFERGraph.appendChild(this.CFERGraphClipMask); - - // Attach the CFER graph to its parent - this.graphsArea.appendChild(this.CFERGraph); - - /*********************************************************/ - /* Create DOM structure for Avg. Fuel Efficiency display */ - /*********************************************************/ - - // Fuel efficiency top-level DIV - this.fuelEfficiencyArea = document.createElement('div'); - this.fuelEfficiencyArea.className = 'FuelConsumptionCtrlFuelEfficiencyArea'; - - // Fuel efficiency title - this.fuelEfficiencyTitle = document.createElement('h2'); - // Fuel efficiency value display - this.fuelEfficiencyValue = document.createElement('div'); - this.fuelEfficiencyUnit = document.createElement('div'); - this.fuelEfficiencyThisDrive = document.createElement('div'); - - //TODO::Fuel Consumption HEV Style - if(this.properties.ctrlStyle === "hevstyle"){ - this.fuelEfficiencyTitle.className = 'FuelConsumptionCtrlFuelEfficiencyTitleHev'; - this.fuelEfficiencyThisDrive.className = 'FuelConsumptionCtrlFuelEfficiencyThisDriveHev'; - this.fuelEfficiencyValue.className = 'FuelConsumptionCtrlFuelEfficiencyValueHev'; - this.fuelEfficiencyUnit.className = 'FuelConsumptionCtrlFuelEfficiencyUnitHev'; - //Fuel efficiency HR region - this.fuelEfficiencyHevDivider = document.createElement("div"); - this.fuelEfficiencyHevDivider.className = 'FuelConsumptionCtrlFuelEfficiencyHevDivider'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevDivider); - - //Fuel Efficiency OneDrive Title - this.fuelEfficiencyHevOneDriveTitle = document.createElement("div"); - this.fuelEfficiencyHevOneDriveTitle.className = 'FuelConsumptionCtrlHevOneDriveText'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevOneDriveTitle); - this.properties.oneDriveText = - this._translateString(this.properties.oneDriveTextId, - this.properties.oneDriveText, - this.properties.subMap); - this.fuelEfficiencyHevOneDriveTitle.innerHTML = this.properties.oneDriveText; - - //Fuel Efficiency EVDistance Title - this.fuelEfficiencyHevEVDistanceTitle = document.createElement("div"); - this.fuelEfficiencyHevEVDistanceTitle.className = 'FuelConsumptionCtrlHevEVDistanceText'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevEVDistanceTitle); - this.properties.evDistanceText = - this._translateString(this.properties.evDistanceTextId, - this.properties.evDistanceText, - this.properties.subMap); - this.fuelEfficiencyHevEVDistanceTitle.innerHTML = this.properties.evDistanceText; - - //Fuel Efficiency Distance Value - this.fuelEfficiencyHevDistanceValue = document.createElement("div"); - this.fuelEfficiencyHevDistanceValue.className = 'FuelConsumptionCtrlHevDistanceValue'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevDistanceValue); - - //Fuel Efficiency Distance Unit - this.fuelEfficiencyHevDistanceUnit = document.createElement("div"); - this.fuelEfficiencyHevDistanceUnit.className = 'FuelConsumptionCtrlHevDistanceUnit'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevDistanceUnit); - - //Fuel Efficiency Percent Value - this.fuelEfficiencyHevPercentValue = document.createElement("div"); - this.fuelEfficiencyHevPercentValue.className = 'FuelConsumptionCtrlHevPercentValue'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevPercentValue); - - // 20 special case for HEV - - this.halfKmLabel1 = document.createElement('div'); - this.halfKmLabel1.className = 'FuelConsumptionCtrlHalfWayLabel1'; - this.halfKmLabel1.innerHTML = '20'; - - this.halfKmLabel2 = document.createElement('div'); - this.halfKmLabel2.className = 'FuelConsumptionCtrlHalfWayLabel2'; - this.halfKmLabel2.innerHTML = '20'; - - this.divElt.appendChild(this.halfKmLabel1); - this.divElt.appendChild(this.halfKmLabel2); - } - else{ - this.fuelEfficiencyTitle.className = 'FuelConsumptionCtrlFuelEfficiencyTitle'; - this.fuelEfficiencyThisDrive.className = 'FuelConsumptionCtrlFuelEfficiencyThisDrive'; - this.fuelEfficiencyValue.className = 'FuelConsumptionCtrlFuelEfficiencyValue'; - this.fuelEfficiencyUnit.className = 'FuelConsumptionCtrlFuelEfficiencyUnit'; - } - - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyTitle); - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyThisDrive); - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyValue); - - // create container for disc value indicator - if(this.properties.ctrlStyle === 'hevstyle') - { - this.oneDiscValue = document.createElement('div'); - this.oneDiscValue.className = 'FuelConsumptionCtrlOneDiscValue'; - - this.properties.whText = - this._translateString(this.properties.whUnitId, - this.properties.whText, - this.properties.subMap); - this.oneDiscValue.innerHTML = '=30'+this.properties.whText; - this.oneDiscImage = document.createElement('div'); - this.oneDiscImage.className = 'FuelConsumptionCtrlOneDiscIndicator'; - - this.divElt.appendChild(this.oneDiscValue); - this.divElt.appendChild(this.oneDiscImage); - } - - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyUnit); - - // Add graphs area to control's top-level container - this.divElt.appendChild(this.graphsArea); - - // Add fuel efficiency area to control's top-level container - this.divElt.appendChild(this.fuelEfficiencyArea); - this.divElt.appendChild(this.CFERCurrentBarValue); - this.divElt.appendChild(this.CFERCurrenBarMask); - // Attach control to parent - this.parentDiv.appendChild(this.divElt); - this.parentDiv.appendChild(this.umpPanelDiv); - - var umpConfig = { - "buttonConfig" : this.properties['umpButtonConfig'], - "defaultSelectCallback" : this.properties['defaultSelectCallback'], - "defaultLongPressCallback" : this.properties['defaultLongPressCallback'], - "defaultScrubberCallback" : this.properties['defaultScrubberCallback'], - "defaultHoldStartCallback" : this.properties['defaultHoldStartCallback'], - "defaultHoldStopCallback" : this.properties['defaultHoldStopCallback'], - "umpStyle" : this.properties['umpStyle'], - "hasScrubber" : this.properties['hasScrubber'], - "scrubberConfig" : this.properties['scrubberConfig'], - "retracted" : true - }; - //@formatter:on - log.debug("Instantiating umpCtrl..."); - this.umpCtrl = framework.instantiateControl(this.uiaId, this.umpPanelDiv, "Ump3Ctrl", umpConfig); - - // "Switch View" button control - //@formatter:off - var btnInstanceProperties = - { - "selectCallback" : this._switchViewButtonHandler.bind(this), - "enabledClass" : "FuelConsumptionCtrlSwitchView", - "disabledClass" : null, - "focusedClass": null, - "downClass" : "FuelConsumptionCtrlSwitchViewDown", - "heldClass" : null, - "appData" : this.properties.appData, - "label" : this.properties.switchViewLabelText, - "labelId" : this.properties.switchViewLabelId, - "subMap" : this.properties.subMap, - }; - //@formatter:on - if(this.properties.mode !== 'ending' ) - { - this._switchViewButtonCtrl = framework.instantiateControl(this.uiaId, - this.fuelEfficiencyArea, - "ButtonCtrl", - btnInstanceProperties); - } - - - this._init(); -} - - -/****************************************/ -/* Translation & text utility functions */ -/****************************************/ - -/* - * Utility function to look up a translatable string ID and/or accept a default text string. - */ -FuelConsumptionCtrl.prototype._translateString = function(strId, strText, subMap) -{ -// log.debug("_translateString called: strId = " + strId + ", strText = " + strText); - - var translatedText = null; - - if (strId) - { - translatedText = framework.localize.getLocStr(this.uiaId, strId, subMap); - } - else if (strText) - { - translatedText = strText; - } - - return translatedText; -} - -/* - * Utility function to make a text string suitable for HTML block-rendering - */ -FuelConsumptionCtrl.prototype._stringToHTML = function(textStr) -{ -// log.debug("_stringToHTML called: textStr = " + textStr); - - var htmlText; - - if (textStr) - { - htmlText = textStr + "
    "; - } - else - { - htmlText = ""; - } - - return htmlText; -} - - -/*********************************************************/ -/* Utility functions for the CDFE graph & its animations */ -/*********************************************************/ - -/* - * Utility function to add axis labels to the CDFE graph - */ -FuelConsumptionCtrl.prototype._addCDFEGraphAxisLabels = function(xDiv, yDiv) -{ -// log.debug("FuelConsumptionCtrl: _addCDFEGraphAxisLabels() called..."); - - // NOTE: We're assuming 15 labels. Should this change, - // we'd need to revisit this - var barVal = 60; - for (var i = 0; i < 6; i++) - { - var barLabel = document.createElement('span'); - barLabel.innerHTML = barVal; - barLabel.style.position = 'absolute'; - barLabel.style.left = this._CSSConstants["CDFEGraphBarMarginRight"] + - (i * (this._CSSConstants["CDFEGraphBarWidthRight"] + - this._CSSConstants["CDFEGraphBarSpacingRight"]) - 18) + 'px'; - barLabel.style.width = this._CSSConstants["CDFEGraphBarWidthRight"] + 'px'; - xDiv.appendChild(barLabel); - barVal -= 10; - } - - var barLabel = document.createElement('span'); - barLabel.innerHTML = (this._totalCDFEBarsRight - 1); - barLabel.style.position = 'absolute'; - barLabel.style.left = this._CSSConstants["CDFEGraphBarMarginRight"] + - (8 * (this._CSSConstants["CDFEGraphBarWidthRight"] )+ - this._CSSConstants["CDFEGraphBarSpacingRight"] - 19) + 'px'; - barLabel.style.width = this._CSSConstants["CDFEGraphBarWidthRight"] + 'px'; - xDiv.appendChild(barLabel); - - - this.yLimitValueLabelCDFE = document.createElement('span'); - this.yLimitValueLabelCDFE.innerHTML = this.properties.currentFuelConfig.yAxisLimitValue; - yDiv.appendChild(this.yLimitValueLabelCDFE); - - var yUnitLabel = document.createElement('span'); - yUnitLabel.style.position = 'absolute'; - yUnitLabel.style.width = '100px'; - yUnitLabel.style.top = '90px'; - - var yZeroLabel = document.createElement('span'); - this.properties.currentFuelConfig.yAxisLabelText = - this._translateString(this.properties.currentFuelConfig.yAxisLabelId, - this.properties.currentFuelConfig.yAxisLabelText, - this.properties.subMap); - yUnitLabel.innerHTML = this.properties.currentFuelConfig.yAxisLabelText; - var xAxisLabelMinuteText = this._translateString(this.properties.xAxisLabelMinuteId, - this.properties.xAxisLabelMinuteText, this.properties.subMap); - - yZeroLabel.innerHTML = '0'+xAxisLabelMinuteText; - yZeroLabel.style.position = 'absolute'; - yZeroLabel.style.width = '60px'; - yZeroLabel.style.top = '115px'; - yZeroLabel.style.left = '466px'; - this.yZeroLabelCDFE = yUnitLabel; - yDiv.appendChild(yUnitLabel); - yDiv.appendChild(yZeroLabel); -} - -/* - * Utility function to set the horizontal positions of the CDFE graph bars - */ -FuelConsumptionCtrl.prototype._setCDFEGraphBarPositions = function() -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarPositions() called..."); - - var leftInc = this._CSSConstants["CDFEGraphBarWidth"] + - this._CSSConstants["CDFEGraphBarSpacing"]; - var currentLeft = this._CSSConstants["CDFEGraphBarMargin"]; - - for (var i = 1; i <= this._totalCDFEBars; i++) - { - var bar = document.getElementById('CDFEBar' + i); - if (bar) - { - bar.style.left = currentLeft + 'px'; - } - - - // Adding new disc logic for hevstyle - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBar' + i); - if(disc) - { - disc.style.left = currentLeft + 'px'; - } - } - - currentLeft += leftInc; - } -} -/**********************************New Defination of function**********************************/ - -FuelConsumptionCtrl.prototype._setCDFEGraphBarPositionsRight = function() -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarPositions() called..."); - - var leftIncRight = this._CSSConstants["CDFEGraphBarWidthRight"] + - this._CSSConstants["CDFEGraphBarSpacingRight"]; - var currentLeftMarginRight = this._CSSConstants["CDFEGraphBarMarginRight"]; - - for (var i = 1; i <= this._totalCDFEBarsRight; i++) - { - var barRight = document.getElementById('CDFEBarRight' + i); - if (barRight) - { - barRight.style.left = currentLeftMarginRight + 'px'; - } - - // Adding new disc logic for hevstyle - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBarRight' + i); - if(disc) - { - disc.style.left = currentLeftMarginRight + 'px'; - } - } - - currentLeftMarginRight += leftIncRight; - } -} - -/**********************************End of New Defination of function**********************************/ -/* - * Utility function to enable/disable fade transitions for the CDFE line graph - */ -FuelConsumptionCtrl.prototype._setCDFELineGraphFadeTransitions = function(isEnabled) -{ -// log.debug("FuelConsumptionCtrl: _setCDFELineGraphFadeTransitions() called: isEnabled = " + isEnabled); - - var lineGraphCanvas = document.getElementById('FuelConsumptionCtrlCDFELineGraphCanvas'); - if (lineGraphCanvas) - { - var transitionStr; - - if (isEnabled) - { - log.debug (' enabling canvas opacity transition'); - transitionStr = 'opacity 0.6s linear 0s'; - } - else - { - log.debug (' disabling canvas opacity transition'); - transitionStr = 'none'; - } - - lineGraphCanvas.style.OTransition = transitionStr; - } -} - -/* - * Utility function to enable/disable height transitions for the CDFE graph bars - * (except the "hidden" new value bar) - */ -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeightTransitions = function(isEnabled) -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeightTransitions() called: isEnabled = " + isEnabled); - - var transitionStr; - - // TODO: Figure out why this needs to be backwards to work! - if (!isEnabled) - { - transitionStr = 'height 0.6s ease 0s'; - } - else - { - transitionStr = 'none'; - } - - for (var i = 0; i <= this._youngestCDFEDataIdx; i++) - { - var bar = document.getElementById('CDFEBar' + (i + 1)); - if (bar) - { - bar.style.OTransition = transitionStr; - } - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBar' + (i + 1)); - if (disc) - { - disc.style.OTransition = transitionStr; - } - } - } -} - -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeightTransitionsRight = function(isEnabled) -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeightTransitions() called: isEnabled = " + isEnabled); - - var transitionStr; - - // TODO: Figure out why this needs to be backwards to work! - if (!isEnabled) - { - transitionStr = 'height 0.6s ease 0s'; - } - else - { - transitionStr = 'none'; - } - - for (var i = 0; i <= this._youngestCDFEDataIdxRight; i++) - { - var bar = document.getElementById('CDFEBarRight' + (i + 1)); - if (bar) - { - bar.style.OTransition = transitionStr; - } - - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBarRight' + (i + 1)); - if (disc) - { - disc.style.OTransition = transitionStr; - } - } - } -} - - - -/* - * Utility function to set the height of a single CDFE graph bar (e.g. the just-inserted one) - */ -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeight = function(barIdx,HEVMode) -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeight() called: barIdx = " + barIdx); - - var bar = document.getElementById('CDFEBar' + (barIdx + 1)); - if (bar) - { - bar.style.height = this._scaleDataToGraphY(this._CSSConstants["CDFEGraphVisibleHeight"], - this._CDFEGraphBarValues[barIdx], - this.properties.currentFuelConfig.yAxisLimitValue, - false) + 'px'; - - - } - - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBar' + (barIdx + 1)); - if (disc) - { - /*disc.style.height = this._scaleDataToGraphY(this._CSSConstants["CDFEGraphVisibleHeight"], - this._CDFEDiscValues[barIdx], - this.properties.currentFuelConfig.yAxisLimitValue, - false) + 'px';*/ - if(HEVMode) - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrentGreenHighLighted'; - disc.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrentGreenHighLighted'; - } - else - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - disc.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrent'; - } - disc.style.height = this._CDFEDiscValues[barIdx]+'px'; - - } - } -} - - -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeightRight = function(barIdx) -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeight() called: barIdx = " + barIdx); - - var bar = document.getElementById('CDFEBarRight' + (barIdx + 1)); - if (bar) - { - bar.style.height = this._scaleDataToGraphY(this._CSSConstants["CDFEGraphVisibleHeightRight"], - this._CDFEGraphBarValuesRight[barIdx], - this.properties.currentFuelConfig.yAxisLimitValue, - false) + 'px'; - } -} - -/* - * Utility function to set the heights of all of the CDFE graph bars - */ -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeights = function() -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeights() called..."); - - // Cache reused values - var graphHeight = this._CSSConstants["CDFEGraphVisibleHeight"]; - var yLimit = this.properties.currentFuelConfig.yAxisLimitValue; - - for (var i = 0; i < this._totalCDFEBars; i++) - { - var bar = document.getElementById('CDFEBar' + (i + 1)); - if (bar) - { - bar.style.height = this._scaleDataToGraphY(graphHeight, - this._CDFEGraphBarValues[i], - yLimit, - false) + 'px'; - } - - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBar' + (i + 1)); - if (disc) - { - /*disc.style.height = this._scaleDataToGraphY(graphHeight, - this._CDFEDiscValues[i], - yLimit, - false) + 'px'; */ - disc.style.height = this._CDFEDiscValues[i]+'px'; - } - } - } -} - -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeightsRight = function() -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeights() called..."); - - // Cache reused values - var graphHeight = this._CSSConstants["CDFEGraphVisibleHeightRight"]; - var yLimit = this.properties.currentFuelConfig.yAxisLimitValue; - - for (var i = 0; i < this._totalCDFEBarsRight; i++) - { - var bar = document.getElementById('CDFEBarRight' + (i + 1)); - - if (bar) - { - bar.style.height = this._scaleDataToGraphY(graphHeight, - this._CDFEGraphBarValuesRight[i], - yLimit, - false) + 'px'; - } - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBarRight' + (i + 1)); - if (disc) - { - disc.style.height = this._CDFEDiscBarValuesRight[i]+ 'px'; - } - } - } -} - -/* - * Utility function to render an interval of the CDFE line graph, using a canvas overlay - */ -FuelConsumptionCtrl.prototype._drawCDFELineGraphInterval = function(startIdx, endIdx, clearCanvas) -{ -// log.debug("FuelConsumptionCtrl: _drawCDFELineGraphInterval() called..."); - - if ((typeof(startIdx) === 'number') && - (typeof(endIdx) === 'number') && - (startIdx < endIdx) && - (startIdx >= 0) && - (endIdx < this._totalCDFEBars)) - { - // Horizontal distance between bar centers - var barInterval = this._CSSConstants["CDFEGraphBarWidth"] + - this._CSSConstants["CDFEGraphBarSpacing"]; - - // Center of leftmost (oldest) bar in interval - var leftX = (this._CSSConstants["CDFEGraphBarSpacing"] + - (this._CSSConstants["CDFEGraphBarWidth"] / 2)) + - (barInterval * startIdx); - - // Center of next bar - var rightX = leftX + barInterval; - var leftY; - var rightY; - - // Constants - var graphHeight = this._CSSConstants["CDFEGraphVisibleHeight"]; - var yLimit = this.properties.currentFuelConfig.yAxisLimitValue; - - // Reset the canvas (if needed) - if (clearCanvas) - { - this.CDFELineGraphCanvas.width = this.CDFELineGraphCanvas.width; - } - - // Set up for drawing - this._CDFELineGraphCanvasDC.lineWidth = 2; - this._CDFELineGraphCanvasDC.beginPath(); - this._CDFELineGraphCanvasDC.strokeStyle = "#00CC00"; - - // Initialize leftY & rightY - if (this._CDFEGraphLineValues[startIdx]) - { - leftY = this._scaleDataToGraphY(graphHeight, - this._CDFEGraphLineValues[startIdx], - yLimit, - true); - } - else - { - leftY = null; - } - - for (var i = startIdx + 1; i <= endIdx; i++) - { - // Scale value as rightY - if (this._CDFEGraphLineValues[i]) - { - rightY = this._scaleDataToGraphY(graphHeight, - this._CDFEGraphLineValues[i], - yLimit, - true); - } - else - { - rightY = null; - } - - // If we have both endpoints, ... - if (leftY && rightY) - { - // ... draw the line segment between them - this._CDFELineGraphCanvasDC.moveTo(leftX, leftY); - this._CDFELineGraphCanvasDC.lineTo(rightX, rightY); - } - - // Advance to next value - leftY = rightY; - leftX = rightX; - rightX += barInterval; - } - - // Stroke the path - this._CDFELineGraphCanvasDC.stroke(); - } -} - -/* - * Shortcut utility function to render the entire CDFE line graph - */ -FuelConsumptionCtrl.prototype._drawCDFELineGraph = function() -{ -// log.debug("FuelConsumptionCtrl: _drawCDFELineGraph() called..."); - - this._drawCDFELineGraphInterval(0, this._newCDFEDataIdx, true); -} - -/* - * Utility function for resetting the CDFE graph - * (redraw it with the "new" bar hidden on the right-hand side) - */ -// -FuelConsumptionCtrl.prototype._resetCDFEGraph = function(animateBars) -{ -// log.debug("FuelConsumptionCtrl: _resetCDFEGraph() called: animateBars = " + animateBars); - - // Make sure left transitions are OFF for the CDFE graph active area while we redraw it - this.CDFEGraphArea.style.OTransition = 'none'; - if(this.properties.ctrlStyle === 'hevstyle') - { - this.CDFEDiscGraphArea.style.OTransition = 'none'; - } - - // Enable/disable height transitions for the CDFE graph bars - this._setCDFEGraphBarHeightTransitions(animateBars); - if(this.properties.ctrlStyle === 'hevstyle') - { - - for(var i = 0; i <= 10; i++) - { - var bar = document.getElementById('CDFEBar'+(i+1)); - var disc = document.getElementById('CDFEDiscBar' +(i+1)); - if(this._initialEVMode[i] && bar) - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrentGreen'; - disc.className = 'FuelConsumptionCtrlHevCDFEDiscBg_Green'; - if(i == 9) - { - this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrentGreenHighLighted'; - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrentGreenHighLighted'; - break; - } - - } - else - { - if(i == 9 || i == 10) - { - this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrent'; - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - disc.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrent'; - } - else - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCore'; - disc.className = 'FuelConsumptionCtrlHevCDFEBarGraphCore'; - } - } - } - } - else - { - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - } - // Reposition the CDFE graph active area & reconstruct the bar/line graph - // (should be no visible difference afterwards) - this.CDFEGraphArea.style.left = '0px'; - if(this.properties.ctrlStyle === 'hevstyle') - { - this.CDFEDiscGraphArea.style.left = '0px'; - } - this._setCDFEGraphBarHeights(); - - - // Disable/enable height transitions for the CDFE graph bars - this._setCDFEGraphBarHeightTransitions(!animateBars); -} - -FuelConsumptionCtrl.prototype._resetCDFEGraphRight = function(animateBars) -{ -// log.debug("FuelConsumptionCtrl: _resetCDFEGraph() called: animateBars = " + animateBars); - - // Make sure left transitions are OFF for the CDFE graph active area while we redraw it - this.CDFEGraphAreaRight.style.OTransition = 'none'; - - if(this.properties.ctrlStyle === 'hevstyle') - { - this.CDFEDiscGraphAreaRight.style.OTransition = 'none'; - } - - // Enable/disable height transitions for the CDFE graph bars - this._setCDFEGraphBarHeightTransitionsRight(animateBars); - - if(this.properties.ctrlStyle === 'hevstyle') - { - for(var i = 0; i < 5; i++) - { - var bar = document.getElementById('CDFEBarRight'+(i+1)); - var disc = document.getElementById('CDFEDiscBarRight' +(i+1)); - if(this._CDFEEvModeRight[i] && bar) - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreGreenRight'; - disc.className = 'FuelConsumptionCtrlHevCDFEDiscGraphCoreGreenRight'; - } - else - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreRight'; - disc.className = 'FuelConsumptionCtrlHevCDFEDiscGraphCoreRight'; - } - } - } - - - // Reposition the CDFE graph active area & reconstruct the bar/line graph - // (should be no visible difference afterwards) - this.CDFEGraphAreaRight.style.left = '0px'; - if(this.properties.ctrlStyle === 'hevstyle') - { - this.CDFEDiscGraphAreaRight.style.left = '0px'; - } - this._setCDFEGraphBarHeightsRight(); - - // Disable/enable height transitions for the CDFE graph bars - this._setCDFEGraphBarHeightTransitionsRight(!animateBars); -} - -/* - * Callback function for removing the animation on the CDFE line graph at the end of its fade-in - */ -FuelConsumptionCtrl.prototype._onCDFELineFadeAnimationEnd = function(e) -{ -// log.debug("FuelConsumptionCtrl: _onCDFELineFadeAnimationEnd() called"); - - // Remove the event listener that got us here - this.CDFELineGraphCanvas.removeEventListener('oTransitionEnd', this._cbCDFELineFadeAnimationEnd, false); - - // Stop propagating the event - e.stopPropagation(); - - // Disable the line graph fade animation - this._setCDFELineGraphFadeTransitions(false); -} - -/* - * Callback function for resetting the CDFE graph at the end of a slide-left (insertion) animation - */ -FuelConsumptionCtrl.prototype._onCDFELeftAnimationEnd = function(e) -{ -// log.debug("FuelConsumptionCtrl: _onCDFELeftAnimationEnd() called..."); - - // Remove the event listener that got us here - this.CDFEGraphArea.removeEventListener('oTransitionEnd', this._cbCDFELeftAnimationEnd, false); - - // Stop propagating the event - e.stopPropagation(); - - // We're no longer in the transition - this._CDFELineGraphInTransition = false; - - // Reset the CDFE graph without bar animations - this._resetCDFEGraph(false); -} - - -/************************************ New Function Added************************************************/ -FuelConsumptionCtrl.prototype._onCDFELeftAnimationEndRight = function(e) -{ -// log.debug("FuelConsumptionCtrl: _onCDFELeftAnimationEndRight() called..."); - - // Remove the event listener that got us here - this.CDFEGraphAreaRight.removeEventListener('oTransitionEnd', this._cbCDFELeftAnimationEndRight, false); - - // Stop propagating the event - e.stopPropagation(); - - // We're no longer in the transition - this._CDFELineGraphInTransition = false; - - // Reset the CDFE graph without bar animations - this._resetCDFEGraph(false); -} -/************************************End of New Function Added************************************************/ - - -/*********************************************************/ -/* Utility functions for the CFER graph & its animations */ -/*********************************************************/ - -/* - * Utility function to add axis labels to the CFER graphadd - */ -FuelConsumptionCtrl.prototype._addCFERGraphAxisLabels = function(xDiv, yDiv) -{ -// log.debug("FuelConsumptionCtrl: _addCFERGraphAxisLabels() called..."); - - var leftInc = this._CSSConstants["CFERGraphBarWidth"] + - this._CSSConstants["CFERGraphBarSpacing"]; - var currentLeft = this._CSSConstants["CFERGraphBarMargin"]; - - for (var i = 0; i <= this._currentCFERDataIdx; i++) - { - var span = document.createElement('span'); - - span.style.position = 'absolute'; - span.style.left = currentLeft + 'px'; - span.style.width = this._CSSConstants["CFERGraphBarWidth"] + 'px'; - span.style.textAlign = 'center'; - - if (i === (this._currentCFERDataIdx - 1)) - { - this.properties.cumulativeFuelConfig.xAxisLabelText = - this._translateString(this.properties.cumulativeFuelConfig.xAxisLabelId, - this.properties.cumulativeFuelConfig.xAxisLabelText, - this.properties.subMap); - span.innerHTML = this._stringToHTML(this.properties.cumulativeFuelConfig.xAxisLabelText); - span.style.marginLeft = '-8px'; - span.style.width = '71px'; - } - else - { - if(i != this._currentCFERDataIdx) - { - span.innerHTML = (this._currentCFERDataIdx - i) + ''; - } - - } - - - currentLeft += leftInc; - xDiv.appendChild(span); - } - - - this.yLimitValueLabelCFER = document.createElement('span'); - this.yLimitValueLabelCFER.innerHTML = this.properties.cumulativeFuelConfig.yAxisLimitValue; - yDiv.appendChild(this.yLimitValueLabelCFER); - - var yZeroLabel = document.createElement('span'); - this.properties.cumulativeFuelConfig.yAxisLabelText = - this._translateString(this.properties.cumulativeFuelConfig.yAxisLabelId, - this.properties.cumulativeFuelConfig.yAxisLabelText, - this.properties.subMap); - yZeroLabel.innerHTML = this._stringToHTML(this.properties.cumulativeFuelConfig.yAxisLabelText); - yZeroLabel.style.position = 'absolute'; - yZeroLabel.style.width = '60px'; - if(this.properties.ctrlStyle === "hevstyle") - { - yZeroLabel.style.top = '90px'; - } - else - { - yZeroLabel.style.top = (this._CSSConstants["CFERGraphVisibleHeight"] - 47) + 'px'; - } - this.yZeroLabelCFER = yZeroLabel; - yDiv.appendChild(yZeroLabel); -} - -/* - * Utility function to set the horizontal positions of the CFER graph bars - */ -FuelConsumptionCtrl.prototype._setCFERGraphBarPositions = function() -{ -// log.debug("FuelConsumptionCtrl: _setCFERGraphBarPositions() called..."); - - var leftInc = this._CSSConstants["CFERGraphBarWidth"] + - this._CSSConstants["CFERGraphBarSpacing"]; - var currentLeft = this._CSSConstants["CFERGraphBarMargin"]; - - for (var i = 1; i <= this._totalCFERBars; i++) - { - var bar = document.getElementById('CFERBar' + i); - if (bar) - { - bar.style.left = currentLeft + 'px'; - } - - currentLeft += leftInc; - } -} - -/* - * Utility function to enable/disable height transitions for the CFER graph bars - * (except the "hidden" new value bar) - */ -FuelConsumptionCtrl.prototype._setCFERGraphBarHeightTransitions = function(isEnabled) -{ -// log.debug("FuelConsumptionCtrl: _setCFERGraphBarHeightTransitions() called: isEnabled = " + isEnabled); - - var transitionStr; - - // TODO: Figure out why this needs to be backwards to work! - if (!isEnabled) - { - transitionStr = "height 0.6s ease 0s"; - } - else - { - transitionStr = "none"; - } - - for (var i = 0; i <= this._currentCFERDataIdx; i++) - { - var bar = document.getElementById('CFERBar' + (i + 1)); - if (bar) - { - bar.style.OTransition = transitionStr; - if(i==5) - { - bar.style.OTransition = "none"; - } - } - } -} - -/* - * Utility function to set the height of single CFER graph bar (e.g. the just-inserted one) - */ -FuelConsumptionCtrl.prototype._setCFERGraphBarHeight = function(barIdx) -{ -// log.debug("FuelConsumptionCtrl: _setCFERGraphBarHeight() called: barIdx = " + barIdx); - - var bar = document.getElementById('CFERBar' + (barIdx + 1)); - if (bar) - { - - bar.style.height = this._scaleDataToGraphY(this._CSSConstants["CFERGraphVisibleHeight"], - this._CFERGraphBarValues[barIdx], - this.properties.cumulativeFuelConfig.yAxisLimitValue, - false) + 'px'; - - } -} - -FuelConsumptionCtrl.prototype._setCFERGraphBarHeightNew = function(barIdx) -{ -// log.debug("FuelConsumptionCtrl: _setCFERGraphBarHeight() called: barIdx = " + barIdx); - - var bar = document.getElementById('CFERBar' + (barIdx + 1)); - if (bar) - { - - bar.style.height = this._scaleDataToGraphY(this._CSSConstants["CFERGraphVisibleHeight"], - this._CFERGraphBarValues[barIdx + 1], - this.properties.cumulativeFuelConfig.yAxisLimitValue, - false) + 'px'; - - // Set the height of the current bar value to retain its display positioon on top of current bar - this.CFERCurrentBarValue.style.height = this._scaleDataToGraphY(this._CSSConstants["CFERGraphVisibleHeight"], - this._CFERGraphBarValues[barIdx + 1], - this.properties.cumulativeFuelConfig.yAxisLimitValue, - false) + 'px'; - } -} - - - -/* - * Utility function to set the heights of all of the CFER graph bars - */ -FuelConsumptionCtrl.prototype._setCFERGraphBarHeights = function() -{ -// log.debug("FuelConsumptionCtrl: _setCFERGraphBarHeights() called..."); - - // Cache reused values - var graphHeight = this._CSSConstants["CFERGraphVisibleHeight"]; - var yLimit = this.properties.cumulativeFuelConfig.yAxisLimitValue; - - for (var i = 0; i < this._totalCFERBars; i++) - { - var bar = document.getElementById('CFERBar' + (i + 1)); - if (bar) - { - bar.style.height = this._scaleDataToGraphY(graphHeight, - this._CFERGraphBarValues[i], - yLimit, - false) + 'px'; - } - } -} - -/* - * Utility function for resetting the CFER graph - * (redraw it with the "new" bar hidden on the right-hand side) - */ -FuelConsumptionCtrl.prototype._resetCFERGraph = function(animateBars) -{ -// log.debug("FuelConsumptionCtrl: _resetCFERGraph() called: animateBars = " + animateBars); - - // Make sure left transitions are OFF for the CFER graph active area while we redraw it - this.CFERGraphArea.style.OTransition = 'none'; - - // Enable/disable height transitions for the CFER graph bars - this._setCFERGraphBarHeightTransitions(animateBars); - - // Reposition the CFER graph active area & reconstruct the bar graph - // (should be no visible difference afterwards) - this.CFERGraphArea.style.left = '0px'; - this._setCFERGraphBarHeights(); - - // Disable/enable height transitions for the CFER graph bars - this._setCFERGraphBarHeightTransitions(!animateBars); -} - -/* - * Callback function for resetting the CFER graph at the end of a slide-left (insertion) animation - */ -FuelConsumptionCtrl.prototype._onCFERLeftAnimationEnd = function(e) -{ -// log.debug("FuelConsumptionCtrl: _onCFERLeftAnimationEnd() called..."); - - // Remove the event listener that got us here - this.CFERGraphArea.removeEventListener('oTransitionEnd', this._cbCFERLeftAnimationEnd, false); - - // Stop propagating the event - e.stopPropagation(); - - // Reset the CFER graph without bar animations - this._resetCFERGraph(false); -} - - -/***************************/ -/* Other utility functions */ -/***************************/ - -/* - * Utility function to convert a graph's data point to a Y-coordinate - */ -FuelConsumptionCtrl.prototype._scaleDataToGraphY = function(maxY, dataValue, maxDataValue, invertY) -{ -// log.debug("FuelConsumptionCtrl: _scaleDataToGraphY() called: maxY = " + maxY + -// "dataValue = " + dataValue + ", maxDataValue = " + maxDataValue + -// "invertY = " + invertY); - - var yVal = Math.floor(dataValue / maxDataValue * maxY); - - if (invertY) - { - yVal = maxY - yVal; - } - - return yVal; -} - -/* - * Callback for "Switch View" button selections -- when called, trigger the - * configured application callback. - */ -FuelConsumptionCtrl.prototype._switchViewButtonHandler = function(buttonObj, appData, params) -{ -// log.debug("FuelConsumptionCtrl: _onCFERLeftAnimationEnd() called: buttonObj = " + buttonObj + -// ", appData = " + appData + ", params = " + params); - - if (typeof(this.properties.switchViewButtonCallback) === "function") - { - this.properties.switchViewButtonCallback(this, appData, null); - } - else - { - log.warn("FuelConsumptionCtrl: no valid switchViewButtonCallback configured"); - } -} - -/******************/ -/* Public Methods */ -/******************/ - -FuelConsumptionCtrl.prototype.initializeCurrentDriveFuelGraph = function(initialBarValues) -{ - log.debug("FuelConsumptionCtrl: initializeCurrentDriveFuelGraph() called: initialBarValues = " + - initialBarValues); - if (initialBarValues) - { - // Initial bar values are in youngest-first order, while displayed values are - // in left-to-right order (oldest first). Copy the initialBarValues array to - // this._CDFEGraphBarValues, reversing the order & initializing any omitted - // data to zero. - for (var ibvIdx = 0; ibvIdx <= this._youngestCDFEDataIdx; ibvIdx++) - { - if (initialBarValues[ibvIdx]) - { - this._CDFEGraphBarValues[this._youngestCDFEDataIdx - ibvIdx] = initialBarValues[ibvIdx]; - } - else - { - this._CDFEGraphBarValues[this._youngestCDFEDataIdx - ibvIdx] = 0; - } - } - - // Initialize the "hidden" slot for new data - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; - } - - // Initialize the CDFE graph with bar animations - this._resetCDFEGraph(true); - -} - -// to initialise the HEV fuel eco bar graph with the disc -FuelConsumptionCtrl.prototype.initialiseHEVFuelGraph = function(initialBarValues, intialDiscValues, initialEVModes, initialHalfDiscs) -{ - - if (initialBarValues) - { - // Initial bar values are in youngest-first order, while displayed values are - // in left-to-right order (oldest first). Copy the initialBarValues array to - // this._CDFEGraphBarValues, reversing the order & initializing any omitted - // data to zero. - for (var ibvIdx = 0; ibvIdx <= this._youngestCDFEDataIdx; ibvIdx++) - { - if ((initialBarValues[ibvIdx] !== null) && (initialBarValues[ibvIdx] !== undefined)) - { - this._CDFEGraphBarValues[this._youngestCDFEDataIdx - ibvIdx] = initialBarValues[ibvIdx]; - //this._initialHalfDisc[this._youngestCDFEDataIdx - ibvIdx] = initialHalfDiscs[ibvIdx]; - this._initialEVMode[this._youngestCDFEDataIdx - ibvIdx] = initialEVModes[ibvIdx]; - } - else - { - this._CDFEGraphBarValues[this._youngestCDFEDataIdx - ibvIdx] = 0; - //this._initialHalfDisc[this._youngestCDFEDataIdx - ibvIdx] = 0; - this._initialEVMode[this._youngestCDFEDataIdx - ibvIdx] = false; - } - if(intialDiscValues) - { - if(initialHalfDiscs[ibvIdx]) - { - this._CDFEDiscValues[this._youngestCDFEDataIdx - ibvIdx] = intialDiscValues[ibvIdx] * 13 + 7; - } - else - { - this._CDFEDiscValues[this._youngestCDFEDataIdx - ibvIdx] = intialDiscValues[ibvIdx] * 13; - } - } - else - { - this._CDFEDiscValues[this._youngestCDFEDataIdx - ibvIdx] = 0; - } - } - - // Initialize the "hidden" slot for new data - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; - this._CDFEDiscValues[this._newCDFEDataIdx] = 0; - } - - // Initialize the CDFE graph with bar animations - this._resetCDFEGraph(true); - -} - - -FuelConsumptionCtrl.prototype.initializeCurrentDriveFuelGraphRight = function(initialBarValues) -{ - if (initialBarValues) - { - // Initial bar values are in youngest-first order, while displayed values are - // in left-to-right order (oldest first). Copy the initialBarValues array to - // this._CDFEGraphBarValues, reversing the order & initializing any omitted - // data to zero. - for (var ibvIdx = 0; ibvIdx <= this._youngestCDFEDataIdxRight; ibvIdx++) - { - if (initialBarValues[ibvIdx]) - { - this._CDFEGraphBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = initialBarValues[ibvIdx]; - } - else - { - this._CDFEGraphBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = 0; - } - - } - - // Initialize the "hidden" slot for new data - this._CDFEGraphBarValuesRight[this._newCDFEDataIdxRight] = 0; - } - - // Initialize the CDFE graph with bar animations - this._resetCDFEGraphRight(true); - -} - -FuelConsumptionCtrl.prototype.initializeHEVCurrentDriveFuelGraphRight = function(initialBarValues, initialLDiscValues, initialHalfDiscs, evModes) -{ - if (initialBarValues) - { - // Initial bar values are in youngest-first order, while displayed values are - // in left-to-right order (oldest first). Copy the initialBarValues array to - // this._CDFEGraphBarValues, reversing the order & initializing any omitted - // data to zero. - for (var ibvIdx = 0; ibvIdx <= this._youngestCDFEDataIdxRight; ibvIdx++) - { - //if (initialBarValues[ibvIdx]) - if (typeof(initialBarValues[ibvIdx]) === 'number') - { - this._CDFEGraphBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = initialBarValues[ibvIdx]; - //if(initialHalfDiscs[ibvIdx]) - if(initialHalfDiscs[ibvIdx]=== true) - { - this._CDFEDiscBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = initialLDiscValues[ibvIdx] * 13 + 7; - } - else if(initialHalfDiscs[ibvIdx]=== false) - { - this._CDFEDiscBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = initialLDiscValues[ibvIdx] * 13; - } - this._CDFEEvModeRight[this._youngestCDFEDataIdxRight - ibvIdx] = evModes[ibvIdx]; - } - else - { - this._CDFEGraphBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = 0; - this._CDFEDiscBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = 0; - } - - } - - // Initialize the "hidden" slot for new data - this._CDFEGraphBarValuesRight[this._newCDFEDataIdxRight] = 0; - this._CDFEDiscBarValuesRight[this._newCDFEDataIdxRight] = 0; - } - - // Initialize the CDFE graph with bar animations - this._resetCDFEGraphRight(true); -} - - -FuelConsumptionCtrl.prototype.insertCurrentDriveFuelGraph = function(currentBarValue) -{ - log.debug("FuelConsumptionCtrl: insertCurrentDriveFuelGraph() called: currentBarValue = " + - currentBarValue); - - // Add the new bar value to the data set - if (typeof(currentBarValue) === 'number') - { - this._CDFEGraphBarValues[this._newCDFEDataIdx] = currentBarValue; - } - else - { - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; - } - - - // Update the new value's bar in the CDFE graph - this._setCDFEGraphBarHeight(this._newCDFEDataIdx); - - - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCore'; - - // Turn on left transitions for the CDFE graph (for the next animation) - this.CDFEGraphArea.style.OTransition = 'left 0.6s ease 0s'; - - - // Attach an event listener to the CDFE graph area so we can detect when - // the slide animation ends (and reset the graph for the next animation) - this.CDFEGraphArea.addEventListener('oTransitionEnd', this._cbCDFELeftAnimationEnd, false); - - // Set the graph's position, triggering the animation - // ("normal" left - (width of one bar + bar spacing)) - this.CDFEGraphArea.style.left = '-' + (this._CSSConstants["CDFEGraphBarWidth"] + - this._CSSConstants["CDFEGraphBarSpacing"]) + 'px'; - this._CDFELineGraphInTransition = true; - - // Update the data sets to discard the oldest historical data - for (var i = 0; i <= this._youngestCDFEDataIdx; i++) - { - this._CDFEGraphBarValues[i] = this._CDFEGraphBarValues[i + 1]; - } - - // Re-initialize the "hidden" slot for new data - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; -} - -// inser new bar graph for HEV disc bars -FuelConsumptionCtrl.prototype.insertHEVFuelGraph = function(currentBarValue, currentDiscs, currentHEVMode, currentHalfDisc) -{ - // Add the new bar value to the data set - if (typeof(currentBarValue) === 'number') - { - this._CDFEGraphBarValues[this._newCDFEDataIdx] = currentBarValue; - //if(currentHalfDisc) - if(currentHalfDisc===true) - { - this._CDFEDiscValues[this._newCDFEDataIdx] = currentDiscs * 13 + 7; - } - else if(currentHalfDisc===false) - { - this._CDFEDiscValues[this._newCDFEDataIdx] = currentDiscs * 13; - } - this._initialEVMode[this._newCDFEDataIdx] = currentHEVMode; - } - else - { - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; - this._CDFEDiscValues[this._newCDFEDataIdx] = 0; - this._initialEVMode[this._newCDFEDataIdx] = false; - } - - if(currentHEVMode) - { - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrentGreen'; - this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEDiscBg_Green'; - } - else - { - // this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCore'; - // this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCore'; - } - // Update the new value's bar in the CDFE graph - this._setCDFEGraphBarHeight(this._newCDFEDataIdx,currentHEVMode); - - // Turn on left transitions for the CDFE graph (for the next animation) - this.CDFEGraphArea.style.OTransition = 'left 0.6s ease 0s'; - this.CDFEDiscGraphArea.style.OTransition = 'left 0.6s ease 0s'; - - // Attach an event listener to the CDFE graph area so we can detect when - // the slide animation ends (and reset the graph for the next animation) - this.CDFEGraphArea.addEventListener('oTransitionEnd', this._cbCDFELeftAnimationEnd, false); - - // Set the graph's position, triggering the animation - // ("normal" left - (width of one bar + bar spacing)) - this.CDFEGraphArea.style.left = '-' + (this._CSSConstants["CDFEGraphBarWidth"] + - this._CSSConstants["CDFEGraphBarSpacing"]) + 'px'; - - this.CDFEDiscGraphArea.style.left = '-' + (this._CSSConstants["CDFEGraphBarWidth"] + - this._CSSConstants["CDFEGraphBarSpacing"]) + 'px'; - - this._CDFELineGraphInTransition = true; - // Update the data sets to discard the oldest historical data - for (var i = 0; i <= this._youngestCDFEDataIdx; i++) - { - this._CDFEGraphBarValues[i] = this._CDFEGraphBarValues[i + 1]; - this._CDFEDiscValues[i] = this._CDFEDiscValues[i + 1]; - this._initialEVMode[i] = this._initialEVMode[i+1]; - } - - //if(currentHEVMode) - if(this._initialEVMode[8]) - { - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrentGreen'; - this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEDiscBg_Green'; - } - else - { - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCore'; - this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCore'; - } - // Re-initialize the "hidden" slot for new data - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; - this._CDFEDiscValues[this._newCDFEDataIdx] = 0; -} - - -FuelConsumptionCtrl.prototype.insertCurrentDriveFuelGraphRight = function(currentBarValue) -{ - log.debug("FuelConsumptionCtrl: insertCurrentDriveFuelGraph() called: currentBarValue = " + - currentBarValue + ", currentLineValue = "); - - // Add the new bar value to the data set - if (typeof(currentBarValue) === 'number') - { - this._CDFEGraphBarValuesRight[this._newCDFEDataIdxRight] = currentBarValue; - } - else - { - this._CDFEGraphBarValuesRight[this._newCDFEDataIdxRight] = 0; - } - - // Update the new value's bar in the CDFE graph - this._setCDFEGraphBarHeightRight(this._newCDFEDataIdxRight); - - // Turn on left transitions for the CDFE graph (for the next animation) - this.CDFEGraphAreaRight.style.OTransition = 'left 0.6s ease 0s'; - - // Attach an event listener to the CDFE graph area so we can detect when - // the slide animation ends (and reset the graph for the next animation) - this.CDFEGraphAreaRight.addEventListener('oTransitionEnd', this._cbCDFELeftAnimationEndRight, false); - - // Set the graph's position, triggering the animation - // ("normal" left - (width of one bar + bar spacing)) - this.CDFEGraphAreaRight.style.left = '-' + (this._CSSConstants["CDFEGraphBarWidthRight"] + - this._CSSConstants["CDFEGraphBarSpacingRight"]) + 'px'; - - // Update the data sets to discard the oldest historical data - for (var i = 0; i <= this._youngestCDFEDataIdxRight; i++) - { - this._CDFEGraphBarValuesRight[i] = this._CDFEGraphBarValuesRight[i + 1]; - } - - // Re-initialize the "hidden" slot for new data - this._CDFEGraphBarValuesRight[this._newCDFEDataIdx] = 0; -} - -FuelConsumptionCtrl.prototype.initializeCumulativeFuelGraph = function(initialBarValues) -{ - log.debug("FuelConsumptionCtrl: initializeCumulativeFuelGraph() called: initialBarValues = " + - initialBarValues); - - if (initialBarValues) - { - // Initial bar values are in youngest-first order, while displayed values are - // in left-to-right order (oldest first). Copy the initialBarValues array to - // this._CFERGraphBarValues, reversing the order & initializing any omitted - // data to zero. - for (var ibvIdx = 0; ibvIdx <= this._youngestCFERDataIdx; ibvIdx++) - { - if (initialBarValues[ibvIdx]) - { - this._CFERGraphBarValues[this._youngestCFERDataIdx - ibvIdx] = initialBarValues[ibvIdx]; - } - else - { - this._CFERGraphBarValues[this._youngestCFERDataIdx - ibvIdx] = 0; - } - } - - // Initialize the "hidden" slot for new data - this._CFERGraphBarValues[this._newCFERDataIdx] = 0; - } - - // Initialize the CFER graph with bar animations - this._resetCFERGraph(true); -} - -FuelConsumptionCtrl.prototype.insertCurrentCumulativeFuelGraph = function(newResetValue) -{ - var currentBarValue = 0.0; - this._cumulativeBarValue = '0.0'; - this.updateCurrentCumulativeFuelGraph(currentBarValue); - // Add the new bar value to the data set - if (typeof(currentBarValue) === 'number') - { - this._CFERGraphBarValues[this._newCFERDataIdx] = newResetValue; - } - else - { - this._CFERGraphBarValues[this._newCFERDataIdx] = 0.0; - } - - // Update the new value's bar in the CFER graph - this._setCFERGraphBarHeight(this._newCFERDataIdx); - - // Turn on left transitions for the CFER graph (for the next animation) - this.CFERGraphArea.style.OTransition = 'left 0.6s ease 0s'; - - // Attach an event listener to the CFER graph area so we can detect when - // the slide animation ends (and reset the graph for the next animation) - this.CFERGraphArea.addEventListener('oTransitionEnd', this._cbCFERLeftAnimationEnd, false); - - // Set the graph's position, triggering the animation - // ("normal" left - (width of one bar + bar spacing)) - this.CFERGraphArea.style.left = '-' + (this._CSSConstants["CFERGraphBarWidth"] + - this._CSSConstants["CFERGraphBarSpacing"]) + 'px'; - - // Update the data set to discard the oldest historical data - for (var i = 0; i <= this._currentCFERDataIdx; i++) - { - this._CFERGraphBarValues[i] = this._CFERGraphBarValues[i + 1]; - } - - // Re-initialize the "hidden" slot for new data - this._CFERGraphBarValues[this._newCFERDataIdx] = 0; -} - -FuelConsumptionCtrl.prototype.updateCurrentCumulativeFuelGraph = function(currentBarValue, unitRange) -{ - log.debug("FuelConsumptionCtrl: updateCurrentCumulativeFuelGraph() called: currentBarValue = " + - currentBarValue); - - // Save the current bar value - var tempNumber = currentBarValue; - - if(currentBarValue == null) - { - currentBarValue = 0; - tempNumber = '--.-'; - } - else if( currentBarValue == 0) - { - tempNumber = '0.0'; - } - - currentBarValue = parseFloat(currentBarValue); - this._cumulativeBarValue = tempNumber; - - // Check if current bar value exceeds the unit range - if(currentBarValue > unitRange) - { - currentBarValue = unitRange; - } - - if (typeof(currentBarValue) === 'number') - { - this._CFERGraphBarValues[10] = currentBarValue; - } - else - { - this._CFERGraphBarValues[10] = 0.0; - tempNumber = '0.0'; - } - - - - var currentValueDiv = document.getElementById("CFERBarValueCurrent"); - currentValueDiv.className = 'FuelConsumptionCtrlCFERBarValueCurrent'; - - currentValueDiv.innerHTML = this._stringToHTML(tempNumber); - // Update the current bar - var bar = document.getElementById('CFERBar' + 10); - if (bar) - { - // Make sure transitions are enabled for the current bar - bar.style.OTransition = 'height 0.6s ease 0s'; - this.CFERCurrentBarValue.style.OTransition = 'height 0.6s ease 0s'; - // Set the bar's height - this._setCFERGraphBarHeightNew(9); - } -} - -FuelConsumptionCtrl.prototype.setFuelEfficiency = function(fuelEfficiencyData) -{ - log.debug("FuelConsumptionCtrl: setFuelEfficiency() called: fuelEfficiency = " + - fuelEfficiencyData.fuelEfficiency + " " + - fuelEfficiencyData.fuelEfficiencyUnit); - - // Purge any "remembered" data - this.properties.fuelEfficiencyData = new Object(); - - if (fuelEfficiencyData && - (fuelEfficiencyData.fuelEfficiency || fuelEfficiencyData.fuelEfficiency == 0) && - fuelEfficiencyData.fuelEfficiencyUnit) - { - // Remember the passed-in data - this.properties.fuelEfficiencyData.fuelEfficiency = fuelEfficiencyData.fuelEfficiency; - this.properties.fuelEfficiencyData.fuelEfficiencyUnit = fuelEfficiencyData.fuelEfficiencyUnit; - - // Translate the fuel efficiency unit (e.g. "MPG" or "KML") into a readable unit string (e.g. "mpg" or "km/L") - var fuelEfficiencyUnitText = this._translateString(this.properties.fuelEfficiencyData.fuelEfficiencyUnit, - this.properties.fuelEfficiencyData.fuelEfficiencyUnit, - this.properties.subMap); - - // Set the displayed data/unit string - // **** Add the fuel efficiency "km/L" - // calculate km/L if the fuel efficiency unit is "L/100km" - if (fuelEfficiencyUnitText == "L/100km") - { - // Prevent Divide-By-Zero Error - if (parseFloat(this.properties.fuelEfficiencyData.fuelEfficiency) > 0) - { - this.fuelEfficiencyValue.innerHTML = this.properties.fuelEfficiencyData.fuelEfficiency + - "
    " + "
    " + "
    " + ((235.214/parseFloat(this.properties.fuelEfficiencyData.fuelEfficiency)).toFixed(1)).toString(); - } - else - { - this.fuelEfficiencyValue.innerHTML = this.properties.fuelEfficiencyData.fuelEfficiency + "
    " + "
    " + "
    " + "0.0"; - } - } - // calculate km/L if the fuel efficiency unit is "mpg" - else - { - this.fuelEfficiencyValue.innerHTML = this.properties.fuelEfficiencyData.fuelEfficiency + - "
    " + "
    " + "
    " + ((parseFloat(this.properties.fuelEfficiencyData.fuelEfficiency)*0.4251).toFixed(1)).toString(); - } - this.fuelEfficiencyUnit.innerHTML = fuelEfficiencyUnitText + "
    " + "
    " + "
    " + "MPG"; - // **** End of the fuel efficiency "km/L" - } - else - { - log.warn("Invalid fuel efficiency data received -- blanking display"); - - this.fuelEfficiencyValue.innerHTML = "--.-"; - this.fuelEfficiencyUnit.innerHTML = ""; - } -} - -FuelConsumptionCtrl.prototype.setEvDrvDistance = function(evObj) -{ - - var driveDisUnit = this._translateString(evObj.unitId, evObj.unitId, this.properties.subMap); - this.fuelEfficiencyHevDistanceUnit.innerHTML = this._stringToHTML(driveDisUnit); - - if(evObj.driveDistance !== null) - { - this.fuelEfficiencyHevDistanceValue.innerHTML = evObj.driveDistance; - } - else - { - this.fuelEfficiencyHevDistanceValue.innerHTML = "--.-" ; - } - - if(evObj.percentValue !== null) - { - this.fuelEfficiencyHevPercentValue.innerHTML = "("+evObj.percentValue+"%)"; - } - else - { - this.fuelEfficiencyHevPercentValue.innerHTML = "(--)" ; - } -} - -FuelConsumptionCtrl.prototype.setUnitInformation = function(obj) -{ - this.properties.cumulativeFuelConfig.yAxisLimitValue = obj.yAxisLimitValue; - this.properties.currentFuelConfig.yAxisLimitValue = obj.yAxisLimitValue; - this.properties.cumulativeFuelConfig.yAxisLabelId = obj.yAxisLabelId; - this.properties.currentFuelConfig.yAxisLabelId = obj.yAxisLabelId; - - this.properties.cumulativeFuelConfig.yAxisLabelText = - this._translateString(this.properties.cumulativeFuelConfig.yAxisLabelId, - this.properties.cumulativeFuelConfig.yAxisLabelText, - this.properties.subMap); - - this.properties.currentFuelConfig.yAxisLabelText = - this._translateString(this.properties.currentFuelConfig.yAxisLabelId, - this.properties.currentFuelConfig.yAxisLabelText, - this.properties.subMap); - - this.yZeroLabelCDFE.innerHTML = this.properties.currentFuelConfig.yAxisLabelText; - this.yLimitValueLabelCDFE.innerHTML = this.properties.currentFuelConfig.yAxisLimitValue; - this.yZeroLabelCFER.innerHTML = '
    ' + this.properties.cumulativeFuelConfig.yAxisLabelText; - this.yLimitValueLabelCFER.innerHTML = this.properties.cumulativeFuelConfig.yAxisLimitValue; -} -/* - * toggle Ump panel | status == "hidePanel" OR status == "showPanel" - */ -FuelConsumptionCtrl.prototype.toggleUmpPanel = function(status) -{ - if(status == "hidePanel") - { - this.umpPanelDiv.className = "UmpPanelDivDisable"; - this.umpCtrl.setRetracted(true); - this._umpPanelStatus = false; - } - else if(status == "showPanel") - { - this.umpPanelDiv.className = "UmpPanelDivEnable"; - this.umpCtrl.setRetracted(false); - this._umpPanelStatus = true; - } - else - { - log.warn("_triggerUmpPanel called with an unxpected argument: "+status); - } -} - -/** - * Context capture - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ - -FuelConsumptionCtrl.prototype.getContextCapture = function() -{ - log.debug("FuelConsumptionCtrl: getContextCapture() called..."); - var controlContextCapture = this.umpCtrl.getContextCapture(); - return controlContextCapture; -}; - - -FuelConsumptionCtrl.prototype.finishPartialActivity = function() -{ - log.debug("FuelConsumptionCtrl: finishPartialActivity() called..."); - this.umpCtrl.finishPartialActivity(); -} - - -/** - * Context restore - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ - -FuelConsumptionCtrl.prototype.restoreContext = function(controlContextCapture) -{ - log.debug("EcoEffectCtrl: restoreContext() "+ controlContextCapture); - this.umpCtrl.restoreContext(controlContextCapture); -}; - - -/* - * Forward all multicontroller events to our only child control, the "SwitchView" button - */ -FuelConsumptionCtrl.prototype.handleControllerEvent = function(eventId) -{ - log.debug("FuelConsumptionCtrl: handleControllerEvent() called: " + eventId); - - // Pass-through - if(this._umpPanelStatus && this.umpCtrl) - { - response = this.umpCtrl.handleControllerEvent(eventId); - return response; - } - else if(!this._umpPanelStatus && this._switchViewButtonCtrl) - { - response = this._switchViewButtonCtrl.handleControllerEvent(eventId); - return response; - } -} - -FuelConsumptionCtrl.prototype.cleanUp = function() -{ - // Clean up the "Switch View" child button control - if (this._switchViewButtonCtrl) - { - this._switchViewButtonCtrl.cleanUp(); - } - if(this.umpCtrl) - { - this.umpCtrl.cleanUp(); - } -} - -framework.registerCtrlLoaded("FuelConsumptionCtrl"); diff --git a/app/files/tweaks/config/aio-app/data_persist/dev/system_restore/restore.sh b/app/files/tweaks/config/aio-app/data_persist/dev/system_restore/restore.sh index 1f0645b..32b51a5 100644 --- a/app/files/tweaks/config/aio-app/data_persist/dev/system_restore/restore.sh +++ b/app/files/tweaks/config/aio-app/data_persist/dev/system_restore/restore.sh @@ -220,7 +220,7 @@ fi rm -f /jci/nng/2 if [ -e /mnt/sd_nav/content/speedcam ] then - # cp -a /mnt/sd_nav/content/speedcam/speedcam.txt ${MYDIR} + # cp /mnt/sd_nav/content/speedcam/speedcam.txt ${MYDIR} # log_message "=== Copied speedcam.txt to USB ===" # rm -f /mnt/sd_nav/content/speedcam/speedcam.txt # rm -f /mnt/sd_nav/content/speedcam/speedcam.spdb diff --git a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/AIO-startup.js b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/AIO-startup.js index 3106c7e..042c79b 100644 --- a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/AIO-startup.js +++ b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/AIO-startup.js @@ -1,3 +1,12 @@ +/* **************************** +** AIO Tweaks App +** Copyright 2019 Trezdog44 + __________________________________________________________________________ + + Filename: AIO-startup.js + __________________________________________________________________________ +*/ +/* jshint -W117 */ var turnScreenOff = false; var turnWifiOn = false; // this is experimental and may not work yet var AIOlonghold = false; diff --git a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/_aiotweaksApp.js b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/_aiotweaksApp.js index 5731fac..efbe455 100644 --- a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/_aiotweaksApp.js +++ b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/_aiotweaksApp.js @@ -1,5 +1,6 @@ -/* -Copyright 2017 Trez +/* **************************** +** AIO Tweaks App +** Copyright 2019 Trezdog44 __________________________________________________________________________ Filename: _aiotweaksApp.js diff --git a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/mzd.js b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/mzd.js index f5ea342..87fd1da 100644 --- a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/mzd.js +++ b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/js/mzd.js @@ -1,10 +1,14 @@ // ***************************** -// ** AIO Tweaks App v0.9 - mzd.js +// ** AIO Tweaks App v1.0 - mzd.js // ** All the functions for Buttons in AIO Tweaks App // ** By Trezdog44 +// __________________________________________________________________________ +// +// Filename: mzd.js +// __________________________________________________________________________ // ***************************** /* jshint -W117 */ -var aioTweaksVer = 0.9; +var aioTweaksVer = 1.0; var AArunning = false; var appListData = []; var globalAIOerror = null; @@ -48,6 +52,7 @@ function StartAIOApp() { $("#systemTab").on("click", settingsSystemTab); $("#wifiSettings").on("click", wifiSettings); $("#runTweaksBtn").on("click", runTweaks); + $("#runRemountBtn").on("click", runRemount); $("#fullRestoreConfirmBtn").on("click", fullSystemRestoreConfirm); $("#headunitLogBtn").on("click", showHeadunitLog); $("#scrollUpBtn").on("click", scrollUp); diff --git a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/templates/AIOTweaks/js/AIOTweaksTmplt.js b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/templates/AIOTweaks/js/AIOTweaksTmplt.js index 484062a..8f60fca 100644 --- a/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/templates/AIOTweaks/js/AIOTweaksTmplt.js +++ b/app/files/tweaks/config/aio-app/jci/gui/apps/_aiotweaks/templates/AIOTweaks/js/AIOTweaksTmplt.js @@ -149,7 +149,7 @@ function AIOTweaksTmplt(uiaId, parentDiv, templateID, controlProperties) { $("

    OODyq_wFjI%gVtk9ncWOV^ce#&l%&6y+4}cl=q8 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�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 literal 0 HcmV?d00001 diff --git a/app/files/tweaks/cmu-autorun/sdcard/headunit/run.sh b/app/files/tweaks/cmu-autorun/sdcard/headunit/run.sh new file mode 100644 index 0000000..82910cd --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/headunit/run.sh @@ -0,0 +1,56 @@ +#!/bin/sh + +VERSION=1.3 +MYDIR=$(dirname "$(readlink -f "$0")") +SCRIPTPATH=${MYDIR} +ROOT=/tmp/root/.aa + + +conf='{ + "launchOnDevice": true, + "carGPS": true, + "wifiTransport": false, + "reverseGPS": false +}' + +if ! [ -e /tmp/root/headunit.json ]; then + printf "%s" "$conf" > /tmp/root/headunit.json +fi + + +log_message() +{ + mount -o rw,remount ${MYDIR} + echo "$*" 1>&2 + echo "$*" >> "${MYDIR}/AIO_log.txt" + /bin/fsync "${MYDIR}/AIO_log.txt" + mount -o ro,remount ${MYDIR} +} + +show_message() +{ + sleep 5 + killall jci-dialog + /jci/tools/jci-dialog --info --title="MESSAGE" --text="$*" --no-cancel & +} + +mount -o rw,remount ${MYDIR} +mkdir -p ${ROOT} +cp -a ${MYDIR}/* ${ROOT} + +chmod 755 ${ROOT}/headunit +chmod 755 ${ROOT}/headunit_libs/libgsth264parse.so +chmod 755 ${ROOT}/headunit_libs/libmfw_gst_isink.so +mount -o ro,remount ${MYDIR} + +cd ${ROOT} +pkill check-usb.sh +nohup ./check-usb.sh >/dev/null 2>&1 & +sleep 1 + +show_message "CMU-AUTORUN: Start autorun-headunit-${VERSION} USB/WIFI" +sleep 4 +killall jci-dialog + +nohup ./headunit-wrapper.start >/dev/null 2>&1 & + diff --git a/app/files/tweaks/cmu-autorun/sdcard/headunit/usb-allow.list b/app/files/tweaks/cmu-autorun/sdcard/headunit/usb-allow.list new file mode 100644 index 0000000..67f54b8 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/headunit/usb-allow.list @@ -0,0 +1,2 @@ +18d1:2d00 +2717:ff40 diff --git a/app/files/tweaks/cmu-autorun/sdcard/memory-log/README.md b/app/files/tweaks/cmu-autorun/sdcard/memory-log/README.md new file mode 100644 index 0000000..55e3d5b --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/memory-log/README.md @@ -0,0 +1,7 @@ +# Memory Log +### Logs swap details & memory usage + +* Starts 60 seconds after the autorun script is executed +* Log file location 'memLog/memory.log' +* Log entry once every 60 seconds +* Logs swap usage (/proc/swaps) and memory info (/proc/meminfo) \ No newline at end of file diff --git a/app/files/tweaks/cmu-autorun/sdcard/memory-log/memLog/monitor.sh b/app/files/tweaks/cmu-autorun/sdcard/memory-log/memLog/monitor.sh new file mode 100644 index 0000000..ba0679f --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/memory-log/memLog/monitor.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# Momory Monitor Log - 20 entries, 60 seconds apart +MYDIR=$(dirname "$(readlink -f "$0")") +LOGFILE="${MYDIR}/memory.log" +# rm -f "${LOGFILE}" +echo "**** START MEMORY LOG - ${timestamp} ****" >> "${LOGFILE}" +sleep 60 +for i in $(seq 1 20) +do + sleep 60 + timestamp=$(date +%s) + echo "********* LOG - ${timestamp} ********" >> "${LOGFILE}" + cat /proc/swaps >> "${LOGFILE}" + cat /proc/meminfo >> "${LOGFILE}" +done +exit diff --git a/app/files/tweaks/cmu-autorun/sdcard/memory-log/run.sh b/app/files/tweaks/cmu-autorun/sdcard/memory-log/run.sh new file mode 100644 index 0000000..c0aefe1 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/memory-log/run.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# Disable watchdog +echo 1 > /sys/class/gpio/Watchdog\ Disable/value +mount -o rw,remount / +# Set environment +DIR=$(dirname $(readlink -f $0)) + +sh ${DIR}/memLog/monitor.sh & + diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-adb/ssh-over-adb.sh b/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-adb/ssh-over-adb.sh new file mode 100644 index 0000000..36296a5 --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-adb/ssh-over-adb.sh @@ -0,0 +1,23 @@ +#!/bin/sh +if ! which adb > /dev/null; then + echo "adb not found~!" + exit 1 +fi + +adb start-server + +echo "wait adb device" +adb wait-for-device +echo "adb device presents, reverse porting ssh on port 2222" +adb reverse tcp:2222 tcp:22 +while [ true ] +do + if [ "$(adb get-state)" = "device" ]; then + sleep 5 + else + sleep 1 + echo "adb disconnected" + break + fi +done +exit 0 diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-adb/start-adb-ssh.autorun b/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-adb/start-adb-ssh.autorun new file mode 100644 index 0000000..914afde --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-adb/start-adb-ssh.autorun @@ -0,0 +1,6 @@ +#!/bin/sh + +# Run in the background, watch for Android device +if which adb > /dev/null 2>&1; then + watch `dirname $0`/ssh-over-adb.sh & +fi diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-wifiAP/jci-wifiap.sh b/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-wifiAP/jci-wifiap.sh new file mode 100644 index 0000000..aae7e7a --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-wifiAP/jci-wifiap.sh @@ -0,0 +1,215 @@ +#!/bin/sh + +#include variables from config file +. `dirname $0`/wifiAP.config + +#channel: 9 +#mode: only G +#WPA2 Personal + AES (no tkip) + +NETWORK_INTERFACE_NAME=wlan0 +NETWORK_DRIVER_NAME=nl80211 + +HOSTAPD_CONF_FILE=/tmp/current-session-hostapd.conf +UDHCPD_CONF_FILE=/tmp/current-session-udhcpd.conf + +DHCP_DEAMON=udhcpd +WIFI_AP_DEAMON=hostapd + +NETWORK_IP_ADDRESS=192.168.53.1 +NETWORK_MASK=255.255.255.0 +DHCP_START_ADDRESS=192.168.53.20 +DHCP_END_ADDRESS=192.168.53.254 + +#configures interface +configure_interface() +{ + ifconfig $NETWORK_INTERFACE_NAME $NETWORK_IP_ADDRESS netmask $NETWORK_MASK +} + +# create the 'hostapd.conf' +create_wifi_ap_configuration() +{ + # obtain the MAC address + MAC_ADDRESS=`ifconfig | grep "$NETWORK_INTERFACE_NAME" | awk '{print $5}'` + + # create the file + echo 'interface='$NETWORK_INTERFACE_NAME'' > $HOSTAPD_CONF_FILE + echo 'driver='$NETWORK_DRIVER_NAME'' >> $HOSTAPD_CONF_FILE + echo 'channel=9' >> $HOSTAPD_CONF_FILE + echo 'hw_mode=g' >> $HOSTAPD_CONF_FILE + echo 'wpa=2' >> $HOSTAPD_CONF_FILE + echo 'auth_algs=1' >> $HOSTAPD_CONF_FILE + echo 'wpa_key_mgmt=WPA-PSK' >> $HOSTAPD_CONF_FILE + echo 'wpa_passphrase='$NETWORK_WIFI_PASSWORD'' >> $HOSTAPD_CONF_FILE + echo 'rsn_pairwise=CCMP' >> $HOSTAPD_CONF_FILE + echo 'ssid='$NETWORK_WIFI_SSID'' >> $HOSTAPD_CONF_FILE +# echo 'ssid=CMU-'$MAC_ADDRESS'' >> $HOSTAPD_CONF_FILE +} + +#create the 'udhcpd.conf' +create_dhcp_confifuration() +{ + # create the file + echo '# The start and end of the IP lease block' > $UDHCPD_CONF_FILE + echo 'start '$DHCP_START_ADDRESS' #default: 192.168.0.20' >> $UDHCPD_CONF_FILE + echo 'end '$DHCP_END_ADDRESS' #default: 192.168.0.254' >> $UDHCPD_CONF_FILE + echo ''>>$UDHCPD_CONF_FILE + echo '# The interface that udhcpd will use' >> $UDHCPD_CONF_FILE + echo 'interface '$NETWORK_INTERFACE_NAME' #default: eth0' >> $UDHCPD_CONF_FILE + echo '' >> $UDHCPD_CONF_FILE + echo '#JCI configuration' >> $UDHCPD_CONF_FILE + echo 'opt dns 192.168.0.1' >> $UDHCPD_CONF_FILE + echo 'option subnet '$NETWORK_MASK'' >> $UDHCPD_CONF_FILE + echo 'opt router '$NETWORK_IP_ADDRESS'' >> $UDHCPD_CONF_FILE + echo 'option lease 864000 # 10 days of seconds' >> $UDHCPD_CONF_FILE +} + +# Start DHCP deamon +start_dhcp_deamon() +{ + DHCPD_PID=$(pidof $DHCP_DEAMON) + if [ "$DHCPD_PID" == "" ] ; then + create_dhcp_confifuration + $DHCP_DEAMON $UDHCPD_CONF_FILE & + sleep 2 + get_dhcp_status + else + echo "DHCP deamon already started." + fi +} + +# start WiFi AP deamon +start_wifi_ap_deamon() +{ + AP_DEAMON_PID=$(pidof $WIFI_AP_DEAMON) + if [ "$AP_DEAMON_PID" == "" ] ; then + create_wifi_ap_configuration + $WIFI_AP_DEAMON -dd $HOSTAPD_CONF_FILE & # '-dd' provides extra debug information + sleep 2 + get_wifi_ap_status + else + echo "WiFi AP mode already active." + fi + +} + +# stop DHCP +stop_dhcp_deamon() +{ + DHCPD_PID=$(pidof $DHCP_DEAMON) + if [ "$DHCPD_PID" == "" ] ; then + echo "DHCP deamon already stopped" + else + kill $DHCPD_PID + sleep 2 + get_dhcp_status + fi +} + +# stop WiFi AP deamon +stop_wifi_ap_deamon() +{ + AP_DEAMON_PID=$(pidof $WIFI_AP_DEAMON) + if [ "$AP_DEAMON_PID" == "" ] ; then + echo "AP deamon already stopped" + else + kill $AP_DEAMON_PID + sleep 2 + get_wifi_ap_status + fi +} + +#get WiFi status +get_wifi_ap_status() +{ + AP_DEAMON_PID=$(pidof $WIFI_AP_DEAMON) + if [ "$AP_DEAMON_PID" == "" ] ; then + echo "WiFi AP mode : stopped" + else + echo "WiFi AP mode : started" + fi +} + +# get DHCP status +get_dhcp_status() +{ + DHCPD_PID=$(pidof $DHCP_DEAMON) + if [ "$DHCPD_PID" == "" ] ; then + echo "DHCP : stopped" + else + echo "DHCP : started" + fi +} + +display_usage() +{ + echo "JCI WiFi Access Point control script." + echo "" + echo "Usage:" + echo -e "\t$0 [ ...]" + echo -e "\t$0 help" +} + +display_help() +{ + echo "JCI WiFi Access Point control script." + echo "" + echo "Usage:" + echo -e "\t$0 ]" + echo "" + echo "Commands:" + echo -e "\tstatus - display current status." + echo -e "\tstart - start logging daemon" + echo -e "\tstop - stop logging daemon" + echo -e "\trestart - restart logging daemon" + echo -e "\thelp - display this help screen" +} + + +CMD="$1" +#shift + +if [ "$CMD" == "" ] ; then + display_usage + exit 1 +fi + +case "$CMD" in + status) + get_wifi_ap_status + get_dhcp_status + ;; + + start) + configure_interface + start_dhcp_deamon + start_wifi_ap_deamon + ;; + + stop) + stop_dhcp_deamon + stop_wifi_ap_deamon + ;; + + restart) + stop_dhcp_deamon + stop_wifi_ap_deamon + sleep 1 + configure_interface + start_dhcp_deamon + start_wifi_ap_deamon + ;; + + help) + display_help + ;; + + *) + echo -e "ERROR: Unknown command.\n" + display_usage + exit 2 + ;; +esac + +exit 0 diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-wifiAP/start-WiFi-AP.autorun b/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-wifiAP/start-WiFi-AP.autorun new file mode 100644 index 0000000..d08ad5c --- /dev/null +++ b/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/02-start-wifiAP/start-WiFi-AP.autorun @@ -0,0 +1,11 @@ +#!/bin/sh +echo 1 > /sys/class/gpio/Watchdog\ Disable/value +dos2unix `dirname $0`/wifiAP.config +. `dirname $0`/wifiAP.config +if [ $NETWORK_WIFI_PASSWORD == "YourSSIDpassword" ]; then + /jci/tools/jci-dialog --info --title="WiFi AP NOT started!" --text="Modify default password in wifiAP.config" --no-cancel & +else + #/jci/tools/jci-dialog --info --title="WiFi AP" --text="Started" --no-cancel & + /bin/sh /jci/scripts/start_wifi.sh >/dev/null + /bin/sh `dirname $0`/jci-wifiap.sh start >/dev/null +fi diff --git a/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/adb b/app/files/tweaks/cmu-autorun/sdcard/recovery-extra/adb new file mode 100644 index 0000000000000000000000000000000000000000..2f98fe4de25a224f7c69c61b3a51035b3dc3d7fa GIT binary patch literal 220516 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

  • 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%0D_X#~U1`YCICcY$H(5}>=yYQ(W{Aa>Oz4to z7+Ha6|18T!qEt0|S*Sh2;=;V~Migm@rfS*-E}NLW6>1HeSr-+!VVJz~Rjr9Vufbf4 zO(lRyd#CC%)gRgm8(&D7001BWNkl4vY0YQ>U9uU{ph>DHyIE6IH)(%X zou=<~b#<9N`UBiYc#rxred)D&jowegDAi}efU>#P9;AQM@6&tf-?d(;rc~{z->)7| z|E9l<%+e%4X7Q=+qy@z3=T$dqAnNfsurI}vrkEA2J1ZH7cI$vBUCFD(|GDC>88y2$_e%0DtcT_PukA-fZAAZ+|H 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

  • '; - for (speedo in this.classicTemplate) { + for (var speedo in this.classicTemplate) { this.valuetable += '
    ' + '' + this.classicTemplate[speedo].name; if (this.classicTemplate[speedo].unitClass !== null) { diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_1_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_1_sm.png deleted file mode 100644 index 4d309929a18daf0349bd9d28bc50c8e83ad10151..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7478 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 diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_2_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_2_sm.png deleted file mode 100644 index 3f95106f668e35584d8bfe41eb6f14036802ece7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6939 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 diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_3_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_3_sm.png deleted file mode 100644 index 5e52aea61776fc0da7da6f6f05da744f8e136edf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5780 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 B3KjqW diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_4_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackCtr_4_sm.png deleted file mode 100644 index 9e4e0bcb52cda12a94f532352fca38cd928019fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4669 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 diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackLt_1_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackLt_1_sm.png deleted file mode 100644 index bd471642713ce1d839e5d41b9f2d6a38ae562dc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2328 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 Q9{>OV07*qoM6N<$g1>7&qyPW_ diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackRt_1_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackRt_1_sm.png deleted file mode 100644 index ca5aad356ffa0932004ead96b88080d2e86fcd3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2327 zcmV+y3F!8TP)%xKL7v-xk*GpR9HvFnAvX|*A>P`B4_U0SvW%u zDT$&eay+Cck)|k_i%4ssWlLVt)^!&YUh2k6YB_F#LiMKD7UvFS1xbs(wP=E-?W0lj zp(qL@DEv?aeF*x}JQPKn21ObaU0lZq`XBVWLn^S_*pVGC2RN9~h;#2x=X~d!O9`7a z6CUi`K6wksqWBeDEBxMn@+8d^#qpRTuPBmqDG&(k!y~oxnLEIo=OM{27_k=Lbh~2_jqh&P`7@N89L*o zV(k-yA-8E!mIu_JqPTiM^Z<1ZA8Wux|Aj|wua6DydcELW{&61{HdH-{@uig`>TS(ev(ZxFA1oAl}!UG6H?rWBDbI^ zR|-m3dPVUh-g`7q>jPTs{c>{YM$K-&S9aLjlUa5hP(N}KY!y(4`Y9`iRhCp$X3DZl zMbQh0BI^wXpU3N2c#pr(!?4feul!3bb>iRkw0mpHVgIUZao;Ov+1sTY`(-Z0zHcYk z*@VG96H{3Ml{WxAX_C|uA@l%J2&iQ&V|7;hly*Jax8=|E;gh#!ZT8``!#=2I+?#;< zd)a31B2sUb9Cj_6V(ZC%KXnaDWwuV4MJSUc$wfQ3Dg*-af+$Ylx`-vCos}QJUdvgz zzfKQ7_hHj!w*Ygq;jmlWZv%R(=&+xT+3Y)r(o#ZayU+@9hROys#Z`&u0q8K68p8Ey zNs?9pb__qq{SEHdUP*?W8`J5F|Cw>xA8bctx}oQkuP z@eWWvqPPi_wzXhzNzk+yy7^}jtt&{O*VEC}x3K(JXP5i1CI;s_T*!61&0%g-ZQuU} zn0Em4Rw>JV4wzT%B)go5u_F-nTvT(%blM(}<)c_45vTME5k`4^Q3(A#?u+k`s1ZNg5W%h>J+T=6%)htb`L#!i533klA4gUm0+l&2Rh`TQaxvJ1Wd z5Dqnq5i*Mg*#KMvQ7YrU1gHX@XVEm%DqWAG!uTQ2r1Xr+H5C91DiBZ}pjCVLkwdU|iava%RruWxdu2_CE?DZ>g_yd=)ASJx+y}uNn?bkcqTY^F)-82yDx$1T zC}JtANn<5L`??<~I3F=t0NIF80*<4w4;7Mdd_m(R9UbYNo$qdeCUmqjDqrG2w?}3N zdQKO{<>`W;y-HXw2st`~fKfXwUFxuVo z-iA}W(Tu3iAv)d;Y(58&Ia6zK7^KKUxqCH>E=^KeDVl0=GOQk~TG|Rfz)e6)<6KW1 z2>odc5#m4&uEXf)Lz>naK%X)@{RnMplQw5c`{$$D>MWwbfo4%{+mV8Lm@ZXKd9I|2 zg(*a(YSCva5zX(~l}HEVqX@xy(;Nd3KeF)DB`Iz9$?_p=@rkLr!!m*pYg+pG*{J%` zj78U`qU6+8O&ZOIh2e@W?JJw)`C3GIfeX5fjkiTYEx0=wyA!C;jnYU+Yh`qLHKmYa zeVy5M-`0cF9H@ttz2ii%i>6Sl81zdR7pJQhI(b<2(51QiKt2Ruc$&Bux-fY&$WO>bpTQCF8$zE2`l^R&`8}PYgLQ*O>hII3;+(pq5dy2NFhH7jF|FjPN(~E zrhV|U_U$&I3Hgd4pX1|!cjNz!3fIgXk%5mxOZ-%cVS9E|lbZ;O)?MzQm{c?9m#Yz; zu8v;(sBoaJfH~0CC?WzcAWfr&x|Y?+vA8S@-(mxmk;lBkhEEUQ{%xKL7v*s7XXYR9Hvtmfdd@*BQnqW_M=Jnc0uo z*-zW+_0D>-EM{%&mA$ri*VNcx;}8>LZ~_!C5XBW~RRRQvgXf%CAWEAHdJ!c`RaI)M zwn~#+cGhYy0-}jYF6u{mWqWt#oS&cfdC!cr zsZDKaQ=9sKlPt^Iwrtt52fs$WPrh2w7*!U6s=BQB{R{Xz<$e4WsV_`sES+9S5#ojv zh08wQIa!hl&9A>yZFxEsnmriTuT&$HZ4K+Jol+J8m@3N`eLi0e*Qnm54`0gbR%-Tp zR_pS`bj#mk_{B|kFKkUo%-xO{BBRj*dXA=BmD!})|Rn{FMJWiBFMUt$Tsva{C z_Mj|ZLK}BtN#d>iIrM`}wC`rQ=ji{O(8>`((&+?v%3pW+~5CdTsu5 zxb#Z4jh|@`v*{>xiU#2^Md^wY-%v)Ums1*X4aLuORee!yX*r6eskg&}Nq(=;R{mQ# zbMnqe=f%}(w*F}~SN{Yc0tOE8f0i@+qk*jFP`Ay03WvUvP4H*i0(?5AUGLF-)vVuN z><*JNdAOC)G~TLHW@?HXR#m3Av@BwujJMrA#3GU4?|R$DZVsjwKdxjhe+oC&DxM>v zMU4W)$7t2rfEwxA4u>|4OkTPM(vRyWmXG*5VcSM8CZbGGq z#-qB*45DyNmY*X&-ypXB?4#kR6bXJXkXcx(WVvvp0aNXA)&Q~w5aG%{@bj;IIsO3x z{aa+`9l*S9wL2_r@~2Y)cTZH_*Ct8rI}P=4HL5xl0F}%D?+$6))(B4vr*KvYsDPr> z5%$yA`reP5m2K(jzeci4Ya;*}ZaUI*=LgCv3*>kIdxvO^v zEp`Vmw*c~Ifcz04?*Zf&TP-GBxz>?nXWNZy2jcpR70usWkR^L2qMUjhqyHGrq^Y>h z#sE}W#4%ljXi4Cln#`NY_*{_N7NlI{Mf|53IM@@786-^iu; z%gD>~XweC5x;H}R3aXSD4Xd^NG3CrGG9+O3q9y?{juI}F0a*f25Asw95w}yPPD+-y zHn+XMaI9+Y7jw_P-)p)g!*@sb-6GVAqQs@ z^wMlh;ZNWZGJ~2FKmZvRZ3EOW9xH>9AVa_%JYJkmwQ(Ndn0i3nu-f+iEN@-;elFv_ zf^il(Sxg3DB;j#LIDu*972h3myw^6 zp}E~b^+{8b0?n-+OglqTm}lbWFLp#;K85L-Nzju;MY8ge)VeFE>^>OteRDpczHkUF z0*r9R5zct+B8_(KMl~Elenz9ZQ#Q%IY+5y$QpFGmYFdVaA0!sIMW|H9(D+q}~@&PKtl1x&G&p{8(78 z9ZJ#@M^ohN;iSHNIHmD<0N@>ni5Bfg{RalFh}45xhoz@z>h} z2AvcjM^f4~0rON7W)7PP7*SqkJaGsYdmG*!a%_z?B?Z};AtH@-dhQOj6_o`M@!YfJVRasU7T diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackRt_3_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/BackRt_3_sm.png deleted file mode 100644 index c3fca0223d7f6db51c8b7351cd8acb4b2c7c1ae3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2570 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 JD diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/Car_Ds_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/Car_Ds_sm.png deleted file mode 100644 index 51005a941d05e9acb36a9830284a338e3c4878b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12035 zcmV+eFZ|GnP)%xKL7wOrAb6VRCr#^eTi38$M!CSaCwIKBmRi- z8Z=4>A|fIp^U%zL2*@NdgU}!#AoEPs>48B&L_!GH=W=D;fAoFdKIb$oGPFkTeP^w` zPIG9w>)Z3L+EoO7MD0*I&%e{yIK8d!x3t^qF z;ENi7Y?_#!?VetCJJrhipl9Rt^OcRQ=bnx25oN55&n>$q=9aw^%ii@d*Xrh|`{k=) z?S47DpjQXRrWg9h#-@8lhQ?ZYd!Idg+|p7|SXh`=SJ!-VY;5bC^|k-qDnTevP(@b zy42*n#%qtzvgf6cvA(s;_qo?Mw0qtB`<2aC2Jcf-bFPk#E~BZbX%bB6$j;9G#Tw3k z=Bll&y)yV>`ti!j+T^l!84JqLOKz`L-VJSFz~1#O(6;t&n6wVbuWs$i-J~5n-w|N$ zb@MfW9X{LAK#I>>*9!(|RnIAsSI;aMdUASJIh_Np$?17D@nUAIy`{a*;c)zjp#_^G z{0i5Vj4S7y1J8>Acyw=XZ+UlbPrFvuFvhKA0@~W$)7$&|dTVcAZ|{J1P1*qQcU$~< zhxa|bf#37z^=Y2HP<;m$qwY{^gx3;&JU%VI} ze*E}xYEY2lTWh#q?E3bX8#khdhDM&OZoZn|+uwI7rL^I8YxnB9-rCvGy8yj=aA4Bj z0hj>VJ;3h{^bYPjxNqV428eh5ZX3^R&}0A^AsT|uTg5YiHW{$1-DC(gV`EFmfTn=~ zdVYRUdA(l!=FRWM^0J<(t9$(5#~**Wj4^*1EeH<_FLpi~oY>tzSYF-O(8Z;tsn!wjv1We$54A`(VVhb8!Yrra`zmA{R0bEQ*G=UmG zvw%r~DQ;+hf$v{}$>kRoswYpLsJ(q?-uCW7PJaIQ4?p~nh@pp=2tM=r{`<(A&8=PI zuim`zw0C#wU#?$QDXHmtLAmt?2DbxXdjKtD11D%Q;sBuK4xoHZbD(Kh3=qw*wBpb- z@C<-A0Dg6g44_8PXP9O{pFr^R3Di0-Xkuzc$HvC#8#iyLnT0vMu(ae!%g7r0Dg38P z7L3ojE*2J7^e!wZotx{>5fK-348CMyW=^C@dnV}Jw*Ua*ea|K^VGjUdB6!c9Fk)L6 z@zyjANNE?JL37#0Yuhx05%@c52DM>pmwtc@ATy{5rXLVS&=)`hs3Ai`!}>zxMT{{* z*VWaj{(%8kVq#(oF#I1A$|qi#nVE&XeS`C<>6!Yw@Bc@gKOdp{@g<_(GH?Qg$_ts` zZASQOgRK$t1#-u8VFX_L2vQf#fCFinBr?Wke;0Xjh3y^Jhi0Di8htkU5a zW8}q4y86*0m6MmVoRE+l4=A5z|F>?X{`FTxkgYn}}|5QQ2A-b}r2GZWu2XEhs z`ckUlKJ<00L<5>X}lH9*dYV_v_Z5$Oo9xc`dbWO z4gu%43hBEoGe}5C)Dagh>Yx7kv#PADG;ZI%J$(NB`A7>^U{_XF!GpGr-o@mU6yfIO zt5>x$484!RiK=7J`?!-4WB>u1Do-sSBWyCYf+VKFzqQC;JE;Ej6`~cmA8Lc?2WVnu zXrvZ^{4_woOK!2HhlfY?)vM7u>|D4`PEOST@40^cdJ-T7F8%V#s=k`~2IH6Ozbbyv z(D1MTef!Ro45h}OPa|6^$N*}_z8~4ocCEY5XHY9FZP>Fkfs7V&pfdymXb#kXLk2+l z41th7e=aI2gY8G^i%|c2_wIXc-MZCq`Et;A7PM2Z;KaoHaSe}KCW=ZbjGwPuSE=dg zdSiP_zkB}Bk>`Wb8ll`X;|P-_hCgY&J93VcfiZ zS0Qvj;!tr&T~wa7j=K+_1)TTeh#+|XkRg0+GlSY;GXbiOX95}wkmP9(OdxoR0g^dd z+CT=7XzyeQ<3FQ7O?{I-kLZ+_m#C2j@JqTwl%@>2l!5LjMNC+=?q2sRx}XXXUM~y&W{>URaGmJ&(F_y zqx4P#y3;ehMu2bY?CqMES#tIC4}hB+CNK_A1`DY}9jOVQLpC!$V3@@SoBSC?@U{l* zkRdPu(Ez;f0}Vhvz_Bs}QwvyOGWUPw&r`1lr2!3>O+Nlh;i@7_Knz!IM2QIPwZva1y{59gJDcEG1 z0-52j0g$}Kh;`aM5}yr(L2-O2d{FAD*4B1+Sy5R&XPqpV$6pSI`gUx3!Kpnfs2owF z!`Z#H0MqmS9jTv21Z^|mBojFF1-1s@4s9d@=nDv%c2DUW-gS^yk55jjp6(uZRaI3X z;QhlydBR2TQ}e11iGyqN^&7P<;P+*4EJkcbd@b^s0*Qc6V}M^2UNCiaMe}U72gWFbvpRIzP`{|Wemb;cwPcLKae(W4}!0c8}yeZ(E$5?j24)V z(995p0ah+RrzevmRDFP-o}5*~!^5uXy6R$NdS`>5Sf?F2`AY5JLkOO6_3wnZ zze8kzn8QcX$1{<>6$Sx*ecP<`7zPP`e0*H>_xHP=G(0H@4E)@}5FCbQZS%EH@&X>x zKW=ben@;ipW4M}-0|GxjGdHwkcs*+`HzD~Q zkvOZY1AM`8gZodAfF~Vcz+qiLA7Dl#&h9WuDdpCKgU?k*N0;m2!-u86{r21GOJ6Af z|6+1xXl}{vSy_9jcA!T4v?p+qY3^|Y`%jSV1CFXc0ZTOq@Ejk>i!ir=aWmBQJsVU{ zp0v2iOUlm%-`AHCIy5{!G&Q&6S%KtbTKc~X+$P)hkGFqoegVH@re`KO>-y=_URC#~ z&Xt!}8ko)ZJR2MspPY3QJQoGb6!*Umo@6uNIOoSZ-$ReTV3=zPU0qMrgYt(i6gOpO zN}lO$TW5FQ(CCC~WsTssxFT|jF%Cx-9ON;X8^+Ob;IHA>h~6N%o!yU>`@~4 zjjb&`JT{?~v96yyX;V2_d9J&OcPoAi3IP1W+Q#J9<>C2a+^ui&rEoPdNWWCVy4jQ-EgB7eq^Lcth*Ze-*|(YVpEG0^}rU}9=Y zFBz14n}EN0^XAz}4ix{}!s3c&EnU5?%~!7!fx8hew_rzQ6&2w6W#2$dpj6>wz@A0? zTN@OZa4rn5Nuk!AWc~g$A_GD~LPbNUeeLiuUZk}HL&E^?)*T%k>i+%v?q7esQ3P2aGS^gkO1)q93XIivbBLeW(X!Z z3csKLo}upk{WN!6TucGroi&*e^lg4&c~2WsLMAv&73n}?Vq)b>&Y!|N(V+1!WX~5U)4VZPcxuK90g7?C2ULjC@~@& z1@bv0;KM>SSCt8zcK`hOh=e*gyR&C+DfwJTzN@$2#nN!WFd%uazIH8IBy`ly`I>5P znuBQ)HWNMqe+qHn#{v2j67UF%>Dk!;Kcjn`PSo?0DnBRBee>qcv(+B&_%^@fLC;g? zfNLEdo}E^#=^4)@W`6+6W`sZZLk&2j{~UOF{*tmvk$g{ozn-06R(W~(E~K`BfiDDj zXa5k?-UQDYIVm{>g9H$gA21*Ia{wNG$N>NMn9l8Z&^8J9zsUf8Mo>twu0c9YkKf(h zua~t)<>%$QKM8#Qz^H3uYg^CE%}IvGt_Ow@8LS0LR9>X)FZs^|PXJ#6d{B_?cJ}Me z?jGIL+%Dkr^77oj1>)^(@B_o6E|#*L-Q6-5Haan3Iz0~72Mn*z(b)koQri>33&7JE zz|Z}=s!vbP+F*2SN>^3YAUCPi+O?wc3kw62JT8gzh?6en$js`dP+8IQ$Hv9^z?+UP zLYkDq37q7o_9W9JY_h4?KIsDxo_{2L zTLUb>$I&M%`~^sz;0e^90e-4)tN%wD5C)(pFoESRYx!e=9wkfatPI(L z#*U1N${KNg$*GxA>r2o7#+J*yx;d}h?qbeUTCjtH)^>KX{`}XUGk^Z;U!Fhz@4r01 z|M92s5`VCulupmg6kB54p zzyi;-mdyg2@eQ`E=yTA+V+T`X+k{aO00Aa!r2G~qE zbbZ;m$fHib{Lc9(R4i&X$W3m&O-o(t}*viKC z+{(+>ZkNl`r5qW%EO*SJSuus#!@?F$0{n#qtb0H6rg0&g;bK&b&AmbxT{KYss-PSBD* z-!n18iBzYID>yhvCnO~6`9-ZBKB#ux`1RLpVpHniyU9uQ&kyYW@M;Xnb(D0$!MQk# z!}ilK*gO-6sksH2A-Q%fMx4t9cz({za;EhH!TLKu3*4cdgTMe^eSiV`1N6}eQa()s zsF{%$O{YxF6itBS;}etg^z5RltgLe1xe-W73+`kUI=bLBU0mvAL30ig!E@aYwOWD` zj7vz;7cSb<(qw|E{sP?60OkP%COP{lz|4tEo6eaOYE4p7+VFJ?QO|eHEi6Iu>yp*+3ur@)&8?bcZhB^}zIZVTz)ic4I1k5% z@JIEh1fs4+>)7}Noe0j8dGr^ov9pnMI6&-;dbTOi;I zA^9bl%t%J~AlJ#slClb!&tn|Dbona6UYvx&dX$jV3i<@D)~s)lw!}fMqbw$^Zn0ft z8)P;)9Y8bE}cyVdm!Gq&?wCXAKdYN5?5d3{rs8F-^=s8gLjgAvFC;z)=P#L zs;)%U2ZlIfJAn)|QUpct2@o8YsH>`~+_!Jv&IGozC7+RB(#cS_zP^Q6nJVDv^te*u zU0v1PJw4!lr>xxg79Zd3%b?jNE-R>{ed`VY{&d)1%gqU9W06f}3p(3O%swFLw>!Wy z$vW9^2x99gJFj=l-52Rld1^#wXSaBIQ}VERn9Wn9=mdY~&Yi#lqu434Um7LT97oo&os8q(m8~fDdK_aOjSXr>dr=#+{m)%HG@4 z!L#ey`9|KG+F#UjRN5QlDCN@5>pi#&?ugVxn41d{>lT1-YwK`5fAOLi*iK)iC3v@c%{jZc?54MO0DPEb^Zd}vY&beR z=VIW@9Ge2ZE^rdHz-EBy1Sxqu2Y70tvwui77O;cE1Ro;c9R(G-t?j9L{P?kJV0gGR zAn+cKtB)Dp+RIm}2$J@xeVCc(&=;@`WfUQAe}C`T0e@){GXQW~{b}Fmy##Eka$Ftk@*RC!W2{1XsxY^qjUK$v_YcSf3&+T^nCWe0RlR=tv`?`Q?`9yY zw75btvhrJ>J%3>kd<~=<5ov-yhYx1s55J7nTQQ%$I-lg>oNMZvMeWnl?%SOiXXf_bq-PaWKN}ofWY=|L zGZ!i%P4J+Y=om>TnCLLpGu8c?;6>^rA9%CqA$V>euB@sN@Mc8^A=#2gEz;Q3sypED zGBPq;H*VYrXeQ^I^z`f!=fJ=MVx7T~(B>$?N5@3VqyhWykuO8?Uk|*128pd(D$f+x z+-Q8Dm)vfduI4c{t*z}oA+ZSKA}VK|x*&OWV+9O8+u_LRdG>r(dsYl~Gg0lC-O-a? zMGDE#!Wy1aTwbsHi-Y%_5pzR z2kB4#AdiA3*%h4R@+3GqdU{js-y)7Tip?{LjwA*ikYwICGbz+(qIHZ=A3+CoXy99Kn|W zd?h81bi1*s(dX@h;qAFLKQILFkDsWUw{Ef(?G~_|4L&0$!||x$$=vLs%XszrjY>f# z$IOYgbQJu;62soRkEBaU9-W7`iPE&en$qPnn*dl21_1dT5I_g#KVQ$YateydbZvc; zWO$rd3AlXWJy^(xj*37r-YZ$m$Kf zyQ$)bBw#<1=21G7u1R1Te+FR2bXl07celxsxV=V~om(U|JJVaAVgNAENEGS=-o(vo%|B2o$l_T4kLe-E`M_^G)$NSa>S4=@HQ zB;f43WxE3QkmSf0{EZK=C28OJczy=~$?1py?cL(Z2&Uw1@U89b;_#@Q;TUUkYd0LB zTbGxYtHQ!U*PS~7EKzgOBG*yY%YJ+Iv#|4;Gqp@{DS0L~QwvM_9l$fUXR9X%O%mJm zfyCW@MgoX!y zO`>{k5j4HD1zryGf)st~E5s9yOd?nw@*{V7ZGjdh?8{-GN5Qj!f$gPCYt6}wPO0ZP zM(+9RN0{S8YiV(*deYM3LcMbK)-qfnB^3`VMkl8i*v-h}mgv#hZo-9tI7pkmzywc5 zEQljBy)i+XWI89FW@rO7Pch?(hW2TvLOkLT_jLgE5drfgRDd-P{o9k%Pvrp6)h%uC z2v|^VK?yRvM%fBuc41w>7!i?>*K;o|J35MaI4Hp9WMmWr+nL~lA3b^$IrL(Dcye~p z;JF#xRLDkNg6GsV!Bg$of^LJiC2BK4R2lYbO7lbMibO540sB8Qf#bQHcgN$NNR&80 zg8_=*R{;Cz$3|Fdy3uImzoiL!u5%6A+|Xf#I0lVTFao0H5Z{ z$;k=q@BnB3V1Ik3(>*dit+>g6XJi#Y#n_}!gDQ&WPBFAyjlO0|o;FVhcSPdH0k;_< zHZ6cjrX#eaZK}E{aW7RKzzy0vRNa=oTHOHfDpCD8r6lTHL-xsvj(vVSbbxW5ry=L% za4;;_NVwq_6J)jG+mV zKLNN6_yhGO0ibQ)w#02!7l~U=&IAp@eF@+f+#5(?YsBNTFNa{6cd+EH!E^4Tr8yKA z7Xy4=VBjhF-oa6)b6`}|o<}Wl*@|H=9;NNT@Gu6;W81fN6gVy5_f7C8sXA5MCuy4i zh~y?nC(o&V5 zUkvbtfq+-vJ{unI?H?F+4UJ9-P)eGNVEM?rp52usTk4Czr;zDI3;g-cd9+W!`4X)#yUKGqfX7t70ENr=5{i!-Em@rl4mkT$;0klg@pl2 ze#|*AFy;NvclsR@aSfOBVdB3BV*Vy59tQkS(yb|)Y}3_ zK&HeAcnjePK=HF8;Wa(GfQHI1cunw>`W&dLwn?X?!?QyxsrF3(T?q%s)f@H;k^uw{ zaupR71>o?M`nGrA#WU`x92}W69Uf9kN}LR!XQdg?<8uLH6kodg?mfIcqz|&yo}gKJ z+R`-D_XrWVMUuE!M1TSuM6WJ(ZoS9$^khy!Nu^FmPKDGVWk|lMxm6Y}ySsa&jgHT3 z@Sw9p9UWeO|Hxop-*Zpj;0V5N8=ibmxJw2w#HeT3gJedV2rjE_+O$-lK7+t`Ak2gYV}dr!ZvK`x(LQYLNh?D*!) z5>1kEof4<&_shYhJoJyScqvYGQ(?$EWJce>8w8)Wg2G!BCciF$f=7 zTfI2v_c3wl*j(xkwU{Gk=Mac|&I$Wy{7+Ch^7(9*YDFqe$#dSJsi{d!fb$Se2q-Hf zL(`wjL>6St6Z=LbVB7bz%hhPl=4Et%K5ckiAoSH;EM zzE5l>#FMXY3QEdLD{JcKSuTztlo33oO}nQVaHfUc_9K-)O8yMs{g}c3T?z>c6URx( z6FiTt;t4OTMA@=(_wHQFw{=KajuKtEAdQDgKz?K98E0 z#l)Vj^2gC}s!ihWjsX@3aSXYrG-;Bp5M4Ln776>)e&Uq*bT%6$azQ|a%5hxReWwYxB>0c=zn zgQw5Bb4SI;#u@-Vh>DN@{w=U8Kfk2&Vf7=G0twGdOo-ECKJP|$#iQ03;~9270uu) zA1pXxVvXF)Or)z@QpPg7<1`l6>^YVF5wMf!?*O*R{tUmr=L!w|55XG(97PzCn>f@R zcYnE}ZvOhK_v+QF2^OrtuJrVrJB1|`)1~nVuB#D|TA@7T6g6jF839c2pCNe;-XGAX zko_5c&%%%!M90Ppc;@r`e>QA5jzYqefZ9GbCWdF{9lL4x#Ord(UiiLRSJ z{GfP5Bmb!fS763aFhl}8CkxH&E&$uNrRGncs|EO*P=J;s3E3n|YXJ{+XVuB+wJYC! zui~SlHN1T9C)vAo1v^U08*}cZEnfo{!yx5;gb^+obH;WIc|Ln`IAQq7Uf-X{gyWu{ zLS%Rd7$3x)(n-m>xzmYqdqzraZi`_C`Op9PLB++yu;DnMc9f5r0Ahtvnu2q z;sok<{?k7Ga#KBqacoFyRk+zi0n7-6`3k`*OOYyu|}np=6ONh%~Bp)X#D&^hPmFd{PYuZTQy_(Ce9@)INMQo|-MC&R z|I7|R|(lEf6*E2hK7Vfo*dB$$vSP*xH}=S9!WStOd6Oo_`3 z(XQkf1kJs&mk^0AL)B9g5_R39I#mhP=OkugVsg>nlDd5*CRSc3Dy?W?3wMumK-X12 zS}rXvU5^qqaun$NxoXYQ#HP;5bU`+}e}7xkK8%@3OxKf3vs$ zPVaEn^uDnou3@>ey?eQ~w%*9g%X6h9rR0AR;P!=j z_`B@v?2Hn`ew4f3$=P{hc2O(tZE1vR7QxFVLbX$3V|8YFwk&dR`IxgTloY3`OzA-* zKs;m5ydORzaV3{Cwo}L@=+J6v8b$rHlT&m8LRtbcPUh@vH(i*S(M-KrbJWz-dr-O# z-M)SMCXcVRhW$makf^A{E9vRk`LOA!Mc0aVb9c|Z`Q~?nC#5dCJc|EDL5@{#>rmB? z8WfLbO3TPmSy}n2xcq^7SlzJ9d4gut+TG9+ni4k!a$5WW(&@bXVs#I8d;eaB{B1Q< zxdorq*Vm_b1cb}8qSzt!=FdNjx9{J(-RtX~*7mN!q@<+m^XC7h`+OS@@cKt)X30=W|O-ua=irC%1NX=JyW{*I;n13(LA^UKt}x$~~qo4Lpu!qj~u*S(XN$M?eVPQnHP@F17I$^UP5s)zpPzTGs}8(a&EynHa6MfeD%xKL7wYSV=@dRCr#^oeNl0=e74W#PV4Whgy%} zc&MMpT5F8QTFWuU5`v0|#;74m2qGdPAR;0nK}6VVWoGuTEwc{pb5vZu~l@_>WGqCUxr`%^lsRVJ70$u zSJj0URem0PuHZ({>GL1?pE-MR!Tw{XUrOG#eaeaz;m;<#`S#Nvee_X(?a8)<##>d=+E({Ok2MKmR7~<`>^c#<~_V)VFGkb&!TuGS;_g zSPUJ~sxg>bHI?{#S#67^tfom*THUCDLZmALnC!e_O}VLFQ`>w`V{X2$`Qk6%N;Qq`R8`kZ z26HoA`|QsW%hlU=rOOqcOXshBDxJM@TgdrqpGg;P+>tKd{8IV|a^=%M$MO5hY8t7$ zwuPV+d`7FL%G^TdFO_I_?AWV$!_@zo+@h_snXnp3vLo;V|@!%bqHG?Ku}0Iq_PH5i^sK1;yIu7 zrY0(>Zlt2BdMYy3QGvls`DL|~tFNKlk}CS}{KwM4gYRk2UcM%MkaIbF`}T}iR~rd=(+9rn#%{u$It6q+k_J8SQ&~!%>10s9Uh^21A71zgU2b zJ)OKgV|86qOMKeS-Sqq4|3Py1@}a^qBUQmV4Fdc=H3P62kDJ;7-`++|c-{bEPvEog z1}LTu(5wtI-ph(Xa+JM-Lq&K5E232>!6cNx;Q&t%)`tR+AIgLvBuw>WsHvlK`9(GZXw_SPypu` z4maTeNQ~vE1uD_Ra`ReNWhNK5xirXr6#e?Qzn9joBhBm=UkrWv>8A%NSiL)Z{KH@T z(~hI-XU_A6yAP!?iHHK2BAp%YoTG|s`9Yz7XY+3p@RYv!zY zM@PqTKK^lM$I(hOm!0*xh`wxWMvI5%S0r&7+7FiLU(y0&z z=5w2ch}^)hE6TC-4h{`Yo~#fKnFe@Hq^25E>CngY8Gq z@DZbEzWb~3vu4bi@8IC@a|P|ON8dT#%SI(`O^;ZFrB(_4NXrUA_qy z(vAzicTWX}Kr#F`R!Ez27D`aySP`3gFQg?2)X%`^Ma)p)L7;Lt|Srr zeCAw`T~JC66JdQ@TUxp#P?|e?Zmg4&6Sw_69nurQ;nB|TWE@|+aLIDbA7{KO6&9BO zoZ%h_cjd&z0G;3#XUKg;R9IFNKW1gHg6`qm#v&BKNt43>3V_wSC;>6w3{k^DBuC_f zIw)T#0C_;v1yDj|HEIrS1rVdweg@!^6WWAt`-fW^M_22ZT{pULh=ZPrwV8$CnG2$3^pNssg%zDz9~s4p0c- zS%f0mWe-uqq)YN-PhcfLWCd^{`1{?0^+q1{5Ej)VL>LHoZY|go*bCZ4 z3!vr$QA)D{L>}NA00oEw39fHKCkw3r-#jTrceo54ufqqAN^fp_OBWWn`~_tEehOyy zha}}anVDN0P+DHCHPtln%pydUfz?rMf!m2w`z0@--zxi$2wo2 zfd4yO{&CXb1$<_32#0~37~%RN9{^lYfSLnDX9{N)wt6`dA9s^WtJ(4<`tbZk>A=22 zIw?js^_gd$`I&;*{gDUwf-4n)sG78&-Tg+Y2Rwf{$31JCL!i5h|FMJ>z#bsH0N*L{ zflvT@L01LHN|2l0W)wu+!z@R&SBLoLYUApBmm$)a0mof~tUy5P+ziDK-qBs}T2Q7|g`k-)N$X z7cWZhoq1pT#v5-;Lrc~(e8JV5Ar+t1#eeqYH&SD>4Br9`%jNAq4!$D{EIfciPz?dK z77&8#V`WsMe_sRluY>C|{Dlh_C6wm6O`Ep5^a?)z*IvP20Q~ivcj7+< ze7(|z<=a#LEO<)~P~BfHh}hz?`*Rb><#HWdo_l%RO)iJ!-~ZsOw159W?He23nBEKc zw0`IEuZCQ?aXbFjov)+@l(yWwaYFfL!LtZ>7J$nhp!N}D>vwnoJivfrrykc`T3$u( z9X}=Qcz2gpC+Vh#&Io<{&=

    I$sb{aJ53fH#Rnk!lsSk@nzjz*grx#tj}T*|EvTC zXOUZ_`*3$N;=WmA`@@HiODS7Yv@tQ#^clT@KXT?mNKWDP_)k9l0!>{bH6!DT`W|1{ z-G%+5gu&IaSd_ww`>WZX;rV@rY7zBg=_U<_-CFl~ht5?6?bIb<Fw=O(9$67yq7&^&Y1C=p5bE>-VWMv^sM&gr=P>}fHyaGz>6#2q?9uD9iY(gNOE#^p>g9U(&#bcY2>IeG;H`t8aiwQ*$*8~c0=rG&|o`R20{k$ zL-F2W!$$}iIdT*}XB3SYJC;b zj~g1B0G~@m1~YBl`i`_@@lx$eGhd!L<2OB6-XSos-emlqWi9^K&Tc4;7&#i>Ii4JyoG2XLlwVLtEv@K) z;TkzNwV)(k zTar`A(Rqrv0JfZs%|HP;5P+%-8Z_h)8OZO20&Eo-z{;@2|MLF}Xok1xRD!LI{C5kn zRFbt&j14~9j)uXroLyWfJ11ApDUh6;0vR4|zi7ci?F?7f={@%9*zH3iq-7~Pj%)9H zaaXFXYotnpk?QK}C?YZj79N8OgGC{1Q2{sbQP}Sm+1+g+0|!BAszL@1gz#B;&K?8> z46wC*LylcO2G!@zq_4>*OZHb*!YJVI#+o?ckv_a4^TNBHv-@-Uxfcz=2SrfPYBv+T*|< z7U2<4#IO;g=>$SDD;qJ7=5EK1{gRibw{GeSQ>XNJGlSt*gva?Oy?az!hbFEPy(BJi zCrxt3#o%HQa~%M%zJOPSpIgB7Bm%y}^6W`n;aR!^{VtKi!G?63w@}u(JSr?Hr#<_R zN{bdQ(oTNU#*Rl^4#EZF!YzSS4;WZ?1$RJ(d;Sp%6)Yomh0L#MAY;6(m49?O4&SDYw z+)7x$_a+3?M98DcS-FLX`z(6z%vova;sEW8X)}7hd&_TFy5e>J?R!sYt8442xXeff zSbjX(Zfmx@B|Hm17D`}vMF9|7K6gokfK$O)@IM1Ni~!oz`afI&s^vX>g8*NI+T$3V zJ%33IT1=Zf*|}Gi4+@X*-?9IUwg#15F_H$4*i3SAkuBc=qezD$kO&731+=|T&_FI+ zY%Sl*(6RyqysCgl;1%$0;JX916o&6-ZB3z(v2goBI&kD9UH@DE&7}kH- zQ@Xl6gR}K5U0(rL#XT%A&l&?N?%a+27T9baWPRpOn0fhKv{scOC}l5rBo*ceT6_R)*sGqRD#*oQ1(V;2GSa%^x7FuYj|# z)fM=j+&(L>m{QYr;{OKHT<>7gC8g5GH$IgrZkwa7T)W|%C*?g_=-h5-a%pV&>*~hV zd)lV<2V%^d@50P=pC@ia6qc5Wq&ITxL>e%7I1L;!iUtAR2Jp6ac+N>rcz}`sh2>=h zaGZD616`%V15^btq_Do~{)z`!xPEuw{n6JSGIRv$`AUk3l~C+h(=1Pa%0&p={PHhS zWo@&z(sXy-4P(u;t7%s|-T(9Y#y|egU;j6%{oeif``_M=Z*9M)x&7szr6K@(d3i&l z{pr~09BOQ8q4ATZ(11a(vi(TFk0e`$@8bHh)oq~w+4cF%;Jx$!K(hzP3Se*r-opCb z!o%vWvpuP(v>eIK7xCYZW&^&sq>S$Vl7F6)*xJ zFdVNT*+Bs|P>fvVaq?p?P!+%)zzX2jq6a0|;LNZc9-t`UF|NH`1XaCn)cu((nrNH_@HOr}kxh98#WZ%z7*XuFx%-F; zFE&=AUAS=J)RXyFhF-62dgWSGU396T=05~{*TchV@v^nP1*PR0E^md~Tlc5oBS%rW zp^B2XrPGKpD0b{e)1aY>0yy~r-qs#xgaCJN1T+^uobllSA`Bjm`$v=@cYH)4#Nak) z{vezHSi>zRRN)Un((ZO|=a)Z=NR&7%)IIBe{hol$mvo#yU9D;9+CPZYV1N zB`+%h3K)dM$049Ldp1yjsQE>c#}yyHrX)lL6xN0S-cs1gvbAO5`+TYrL=wbf%h+e| zVZ%pJK9XHzWHdfwpn!Lo=|LAix+=xRk?y6Jrace5$9HKNe#!DRi!YW|YI&^N9fggJ zjg4@lLnpJSL|;yhuI^+vVm#Rm8%u+RjfNti08W4+2?8EXp&b95&Fx_&J8|LMCFY(X z-xLvoj*Bb+gYem=Ki{Cl8Ff0}_esgjf)tKwa(600Y<&6-P7TxZg_3C=VOpF0@d#L5u2w5{d4w=7mx*5vLTATs@wDJ~+@3;5X{ z^ugH+fRER?ySqOJhTd3y_2P?HDz!YtLxtxL3xiAX9G%FR1R9RGA2-PrU+PDRo0H)c znN(^pQgux&Ro9xyWUfPNQBS72Ix*r?gC1gSeS;VSsHty8PqC5A=r7bZG*JzU8G`rm zd#lVmk+_Zw_tC6u!B00l#7POh^=+m28sX;Uf{p;;R( zhPSr1rja8@lhIU5yZ0TSox3x{$c;K&B%pcNm}i9hj^Ww*ndkDUsJIk8J%2J9jUDih zlMc^#NIE=(MNB|uPhsWp+}lp?P+ec1hR#Zm*W+;iqW~G6@7CrOm!TT`@-ille9?~#(nLYXH)dxMnKX|gjSQ~g*ZxBUJ zP;iJS7iG&^iMu&m^Ls-nrKS3AFZ{N z-ZwZ3mft09PkmRLot-zWqN3vQqqGcPX8bJR;*|;=!v_b4qQfD>TU+-dU;iK!Bn>ER zlBlq#5Eu3LPcZ69EImM-cgOJjdQ_~2_9?x&QKLpF@Q8U-r2b*CVu*T6QnL2gu`|;v zDjxI%pZDaAiraw~KPuDm%#5(`FkyMVp}`+K&&vn7z>MD0KFZF{7ISdAyWk&NR0W7u z0Px%#^6TMfa!=>TgObCCk5J(Ii~hWSm;}r3mEPR=hVJn3<5Ted$Gbf*Gtu9u@;H0x zn#3_59vKOEuBSPX^h1_+M=MY(!1qA`YN7K}%fs;80&qf%h>oEgv`m>GqoD7Za(WQe1FfOm15DJJxC zyeB3mQXOjd?k@JnmhLRiH36@mha%yr@F;l!U)R(^5mC|NdiEXQJ2-$xA=V#m zZ-tggvpH2vKlStV)6JMRt>-}thWGXlU%3DHhj9CPO5C&={b;V2dD2gRaSxvhpgI&f zK0Zi(RaMv^arIb|E!4H+Whh(C1V#7W|g2~YI%^74ZF|FrN7uEx9Q z0&}S=+`gTR=y*j*2?9PXeRrqjMcfad#4Tx}$lj%hS`7j0Quu7yV<1TH?yxWKMG2`(vwfPwzgJ z7)%tS+a%z(rS9yEd0eZ_Ks(x$oDR$HlDs{=bgr(hjy+o*@E$(PpWl7->{`8{R zV#t~=Xf}FwhM&Ols>KC3M6K&Zyu;$6XNO+hvCJHb(j)=Cnv#=KX^03? zAD~_6)p-Ek#m!|>uPvW`;LO_Ma+BuF+4Bp~YZ?vsbA=`1;- zEG@1kIdOZ7-JM0;+>lpOryn>*ks7#tSv4gkC3nDcF=jVx6s2bzq8*5N5BGVxSyN{{ z%gJ0}{LZ8A%U&Uq-raLD3LmODf9Yds*zn;U@MFdR9(6RkrjwHs;CtVv|1MFJT1R5D zu((Kau(+^1MBLF4@a?n(aW3G?tI^d?>4Zl!H+-}MWgIvmV%~kOJG=eF-oQWM=^HY6 z+n%G*MdekRE7vQe5hF)-T3*1*{dlKIfG_+0mRH@HMO`++mcHL*4Xt8v3vfHk0^kUPXCwzQDos-iK z1Ky~)ar3q`d_*VwC;>0`;~gCxsjL@nFW|Zpc5eX+>40YGv^Ya|xIB^^-^gTeUh1Yn zKRz1SzPQ{-o6)ZyVkg5};aVp+yNRi2@4mA`nmuc7@8LP--%LBOwpd@Kx%ufGY1HV^ zUE%X&cvKDD!ZVmy3u`G1s#vxSX8{Y5tPc1(Se_+DN)+%# zaC>2S1)guZIJ>#ip<}1%oj<(`_*wB&rcB`-Q+nJ#ukS0b`a5n)*%QTgb3Xh0OKF_L z1d%~Gk#Njs=PU4tdA(k~p`p64aAQER8+U95ph62!UJ!uxT0pX>H!A@OKw)i$#aZm2 z0#V(alN{f;tcBHi*OZ7D4aFoN+XFsnGZLPKRY-9ka=Z z-+esc*|Q zF3r{zqF9DAe!CRH|6sZitDu(ApN)fS}C?Ca`mg1#pQ>W>kfByO2x&6zYOXsfJ z@OErri9xJGPu!Fwwp!!6x8ue;bhPs>Zf;Zv%X6HoF|0}#O9GN>@eUDI?G$y}2Nnhv zTgE{d4GfL5*d>i)9Tr!2MdHl@{e!|t2g?@&e#@3^N^Redc)?Tb<}?_ljN;ajG;P{+ zhUbLWL$*g1G|$_A;k)}!Nql>#wxL-}N#o8<-@aDp)lEQoE5q|TxBQ|aasOPzE5pL7 zoxm)-&lMm!VF^Il%3{we2%mWXlGo=8U_jR4%tKMUQJ}mLki01vySltNU@I8`?+eRI zaQ9NcZ`+2Bjr|be@;vWnQ|bZa0wb+`eVr5*8m^r)XHL&U)Li^84vkv6k3 z-f}5pcLs6ihHni`oa9J(#d6!u69LZU7XbEwY&BsmfQSJ_wjRy^Q$>uh0;ay@zK}Xa z1f&qo_633Mzgk17GbYUOGvB{@|a;Nvq5c#nt2(Rag!4TDa6a49sms9baF%daJa zv0AKWWy`zHoCSFK2F4^bb$Q74+)j%jV~A{BKr%dlSxm4tTh_$TY+Z&{q)NcI0~#W% zEdv|zys{1gg_HrD;q|aKLl*IbrtR{gR`ZpSYTlR3lXqvX|yKn+D1ULFnBpbn{meDGU4j7#Y<`cZEB^$ zs%9#L0{p^bDMCWWMsK8JCr%?Yhl?>fo{o}-W{!7DSpoQ%=vb|<@4^{9uBG)jdemxD z>R#{EeW#(lQsMTz%w)nuM`3wizhEjtj0wvl`4yA^9@$;CIL9q4&SwS(a5WUc)~r&k zEnJ+fEXOkg^WWLhs+${x#TmR+SY7OR%vP^$rK0LqDgb-|;Qb>cwC9Pq9s}_T%HbTE zefrQ`Pd~~lDy2#!yp_vWNsAXQ*82GP^k(ybyeGHsJsFt1q*O z&1y(^B#Md}Y6HB(M828X3D3J3v&C72wFS5W%~@N-bXRB*(=3X$#m=S*I9r_Kyp-V? zoUIP%!s;f=Df8tySlJAyE`l{td1BL@YT(f5BNNsL!uKYC?b{$;PyPV z+yMnxUn^@dua8Gt90)n&w0n29gXn7vY+j}G{WcQ&g-I?9 zN2XZJpPaT2&l|)ROyeCKknqX`yqFy&Tpd>D*jBAATwH-xfYoGHu2@=Z;mWZsEH1}* zr^V&WUd-?icKKXmGvyhZC=?|uuckmBgz^h`X^9Js9zB*~r35i2uS8!-t5>a-f&)Ud z%lra*hG)wk%=|E5&(X8mljn*Aq@kvfkon2kbru~snL|}PVGyCfr7q8d<7!M~bcjf7 z9P7fpW$=!8W@rc}H1Ql(X3MK?UWOuuH}e+OR^uGP(1oyifv`HRr3zwfq;Sm^@(zj+ zO>aId?c?n$mc(q{EYH;7!4+=jLxaP#%a--R@(h18D}U*p<7c(UvJ1&n*GT2n^^}=g zBo^!C6zIuV+eFpodK%|2p7KidRF4o)n={p|c~efyxb7lKT#IH5XJK_f3Rj0PxE{rf zusC9!!3$XdRV|cP1(%1_b0HB4+i0Fo5DZ|T0=T^ttD(q}+v4gUgi}1D4@&8LTJ+Lja`4w1{g+ zG2mGWt0A1#g~)9>pYw6fheGo4_q^J6@{3HQDYHH4ToK^Wu5U|DrPvq^?cTjl?2eR& z*H*1q1^93+tlx7}#|bav#0SfF9m$H{|K0_Omzr=UXYFR?l@R*);&&=Ca|>w{lFR6E z4&>nzK#@`+ZAsrp2eJw%3;ChYPzNa4%H{9`j&*Lo+4|*5+_UTJA?*5k&g@W72|R$M z7{btO<-X-#tdJcCv*Ho=sO}oY2Agbg?#FYp!tjSqWYUO{W5lW^p8w8^ ziR^|9CHr9`X~d{;>Wv&;^_4X6<;k*LE$R{L{{K8_$KU|`qNL_~nL}Ytw zB(QMu@C(8J1<*_nUvix3PGcM#MQ6p%ekcvHyXg(4ovcDl9Ieo$0$t zr%9lbr?bUuZN8I(SeJr>LUhZQ2ll)l9v3-(Nw=52#&cfS%S%Dj6;fg)g;+*1SSU*sUWy{GvK&md zw(_bfp6APoRUvuScVBc`#A9Wy0MEG}Y&VqBk7S7(7a6+`&?em`I+v3#W|f>cnJu<^ z4)6=m`TF|yykQ9MmhxuGzNK$%JD^KWJ0iA?;BG2!qn=k>iRPo4OlbS1Ej!76=m@de zp<~4puarO`B=)+2@KjJSouxmXTgwWPpYyq^u(J9o=T5A;~Agwj@&x8C!-d*1z&yR_>Qlb3AVx=WLovKxu5 zTHL5G;=_0jesP&ebW7Pyc_9&7h?jtf1wXK~O@Cf80*k2%uz?3y<3f4)2w(=lTC9`- zfD>m$`ax7UOJRk`t11{;0q4(B;QQfm?B;ag_6OjNX=yvD1YW>9x2C0M(1O<%NUzR+ zO*?n)+@5DYNOeRN4{5Px$%#>;751> zD*@oL66CWr&*9}z5bJ1^b9bUDi_Z+n?^R&M>lSBTViF;37VtbN=@7cM+{~F!h$X=b z=D+f)7^|BzXU=~EuZQ6(NqQo5Rm}8g-COITQ91O6nswON_jR9(5xpQ8c zBe}WGjGsPz`qK*GV~@V>3s?SE#QMaD)$2EE_Ut++?~eswy|I=`A^ZzOysVTV)U6#J zUgRf4$pPI71Ib|lh=+y2SS(-r4tTz8#r1uDak<#9D=)uLZ1-MnFj1JVKfO3@x-@z6 zWG!6&R|?;k61iL<3!3&DH2g}_;b?>_*o zhGKo|egnt})n0bKUIsUr=`{KvGsldhMZbMoa&>e{nBeF*M#1Xc@tS||?}AsyzP{E<)!vpGJ@JFB_BJ1OSSwx*6i%^L2 z9-eRK;N*smmtMrW5m`PWT1S%x4Bej)w$^5gv;ZHqsBW? zCgAy}9db*IG{IpKz3}s&OS8t0Cub+;rQa*wm80+CusDy9mp$XAaC3$xf4v+=UI1ukw1|zbYDQ@8pZOl&FRPJSWdC{H8T%ye;S0pKl?BLDouUv zkJ{&_OmV>bdYq2($l((h`QNMI`twGO(LD3BpGjjzjiqzBc~n|mEkUmnm0bGDP z+c~eTN=;OEC ze}KBbjjGLc=hcQ+QMidHeaJ8swGGlW4@~F*JC{FnGxz)Z~DLGQ>uo$QQi*j6L$mm~jp?(b0wG zdU%n4XoR?1eCYH!v@iy-ewKf>fk%P(XWOz1%4o~B4050AK|==(qLHxr()q7SYnHFl zczAflDiacV9Fzaf%@G>>K~q4ozzMA=;>YTk@IUNX`QX(-`!xgF_-{_YvN2 zvYPnEym;t}hpHP|TB%m-nOl$UC9<%x5}LP{x9BXP$qb|)6__s6xOGCAup1zZxdv5-Z_uI9BfiL~sduix%E7rum z{zg)2LT+J+=EBFHNGDEYQ&Pfaia?fiM-$^e-jM>l{3tX+67$^;oXn%5%35(Zmpeo} z<}NJR+%A55f`7b|Jw_eD<>tp9oOYA(5Nm9ZV3PSB3grqumtOL!O7`em?y=wg0}rcbpLPC~w{Otox3_0R=2v`?P~Ch_ zXKrfK-1+<~>3YR2>B9L-(!ryrq^WPIB`sUEPI`60QfcAh<(VQ)E|TWIx>#Daa*eb;{tf9*@9dHeA3QEy zy!4S&aqE`!<=sC^$TOO6zx`JC$)|VXx25h{{>m$_I6nRK1pZyRA0FeqJbt!pS;SL` zZ)S|oIGyv-*^5_}6qHm%T)TBA&Q#Z|scmf4m>ZilD2X+O>RL@H%Ff)PQaYWTt3j=x z*$d^QY)hlGoxBeJ0Bu8Z+;i|f>ClNR@ty*7Ps@-8jHX(AMuVolsRc3LqCs-iT>Ip9 z+{gM)R^=6z`kcr*@478LV{}N!T892fto^v-2}zQEwrSHTo7JmhhDJqc$ET$4n|$o_ zg}G<*uX-1hRQeZPH>}iG-hTaRW!1WC6}RI`4b__KH>-7e!_5sybcs+*qW+WH34n^% z8>+P>pWKeUhWFxsB8#pW!t#pr0a+J6TCnd#=A4A&H0L#IqJOt;-MS%ZX=y)qa0vW| z13&Jt;@(rl!iWKBX-93-kDUGGnY^q2cD|^{uBhmST}jC&LwIu@Lruef)ZV@OD^+gQ z-u)H7rZ?WP&&PZCz30yt*&R7@X>j_HBfs3ZG0oOv`SO41(?|5oex%=@?$hW00TWL! U?higw>i_@%07*qoM6N<$f+DOV diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontCtr_1_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontCtr_1_sm.png deleted file mode 100644 index ec6f1d3f3879b54439cd98569ee4707879bf35d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5523 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 diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontCtr_3_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontCtr_3_sm.png deleted file mode 100644 index 3abfbda1c3b43870501fdcb573f38ee2c06f6106..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3524 zcmV;#4LkCQP)%xKL7v?W=TXrRA@u(S@~~V)!Dwu%-ntU&Er|_ z%-r#eJ>KFi_SoY%F~)Jckx3)oU`&v)+r1d?1O&he{8z^sfCs$zC&sdD7Fl(P95*bm>^6tZ zwq549yBt>Qy)LVDuZQFIdIVt#*!NFBW2P|YJ{QN`=is~T?IlCa+`@dw=^KkXI8&-g@f zHX!oH1EQ??B}orSQYj=zr6Ag{-9Yg}paZ240dr_B<`o07todZI;N!((e(X`+i#>$B z57=3DpF^?iR%vuf#v#;)E&LX4@sR?2T~WCOEzxd69Tm6=YdBoJsLk zYoC*4w>ml7P8ZAW_lo=sL^)1^z!`HSN~P+Goim6lb|e6(c&>8_dd4XMcD=z4xb1od zXf)CM5kYfkjTK;BTA%hYK>Gp}5s6a_!kQe5K|z`W_Yz#Fc|`UIT>pTBv)=9C*WS!o zxIyII1OxyZKqu#t;lbu=6d&tG}M|?Okeu2|NoKTFw6;T|WI9!pG`2tn9 z9)0x=9+0&LkZyEKNUDrB19k%)NUFnY*Sqjc=*DxmS1JSJ2)Pe{`ns@Yd7Mz5Lu(Q6 zTv@vn<7h8xY5xj{Q`#jKh$Fd@++23Hq*E?o+$?gQ#!1;LTP!!iBspjj z2Fzp1aS6P*0T!Bav-}~C$RC3+q&^*;5?Pz7LoT6;)j2u1Lo%vK6>cREX~0MTC@071 z-F`vOndmdo4-6pb0XL`jquqprHbIC@{tp4h3}6h+G3El5wFvZF*{jkNS2;|0A zlW&>3={|BD5EpqZN{&OmL2?{UjhE+VaGLJ7+iW|aQk0}};nQa)2Ix53#h8pqn4Fa5 zLXs-t5DVm#29PZ~MbO)b1d*vY0_elLeuD9gWRM`iNECfT9$6dm$=V<=3=9Rz7^wj7 zM=I|Cdam@*`{7kE*DBDs6%nydKkW$-4Gt!!99qM%=r>#l?&LhmgDNsd&omG7^$JF7 z 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 diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontLt_1_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontLt_1_sm.png deleted file mode 100644 index 67d9043108afb436f6cbf79fed2f2eed6dc93c87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2888 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 diff --git a/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontRt_1_sm.png b/app/files/tweaks/config/transparent-parking-sensor/jci/nativegui/images/MiniView-transparent/FrontRt_1_sm.png deleted file mode 100644 index 9c4ba36b547144eb4e31a1cfecb0f1caa48c718e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2963 zcmV;E3vBd>P)%xKL7v=HAzH4R9HvlnEh`X^&Q7AvG3t~-@CKV zj_oA2<2dJsBu?VQc}|n2X-Ny4Xv<2=fHD>egO#?Z&u!ZHzLzvAFin~?O?&!bW4}ye zKTO&Wut|FmnkK;yNMn;g6Jls%5-Opv|A4(ecXlb2VC@R5(!SD1XFJZ_>)!YNJbW$v z->rnII$5UdO3U&P-fF?8x9&2!4YsRja<9kGPC1+%$}x7Ag`2?NT7s|KLW@)d?C~;Z zUOB=kRttu{QjBOPdUSm$&B9ao+O45_N|KUgOS`XP^VQy%;g(G%$|e_1go`4;5dx~8 z&g=StTqv{ z^-#N}%{NZ@*{!0X^bJP&6C-hRy_PiGp_oNc_hAVdz!YUWut-yB-yTt;-UG`NITv{( zYEIYBrn$DCG2h>x$!alBdL1)7U5RQB48`=bRU}f&FzzwDQ8cGu|*@Ti3(DfWaL+y;FoNUvyIb22wu6FZ_jRI~G028)$YAnhQRwBxt z5^8amD&-5DFAmxK_=wFssO~F0fa($0gFu5sBv@Z%x&ipv!Ldg-T!PN(`sof;-GOV} zywYQ)HZu{`mZuZkn+Cu*l5RYvpC3b$7>cL|3TP6rOIv}lseuSTPKr}9qU6>4p=RJ| zz&4a7P_hIXk8h7|L>}+6nzo!&l%2Sw8eI9mSOr5$OvluvO$oj}n>6Y(NVb_aqdp1n z36!=`z}F)BiIJ$b-_gR;Xe#-lp>2k`CkAZ3Mu|CKS#^RgURCm%;B+KwG@xM*ZKY8` zS_6U`TdkuJzGW_|pPff7-HfgVa6vI0=YpUo<4lYKW(;5>wtlJ-)xT0?Y%+_PqHHR6 z;{7sp#HK}j=mxM4-2e}gFi6C#uAOO9q!O-wW8HB?lXA1R{L_=ns{Kx1n|oC2kbpLs4S| z739&J$)>WZR28Q(LBJY4`TS9)43H(5r$JrjkdIC1}RIHcj3KoKLRL54Brk zk91mJzAw%frVXWc2x`y9*k0IU8PFHD0e&kK_w8{Fw68Y71DI4MivU_+_E_n&_`Wn_ z87TZ9h9$2t9Qm+*;t?nm_5-gwa04k#JF96LX0DG}{kWU8uH^k9oA6F#>{AbS7zgf7 zs*Cf6)H@uNs&lq>&*qqR4$7~R+MAJZb4}o;(o{Jb&?BhFHL4)+^(*SKpLrLnoYcti;L!mo>rU!%{T`fN@rx$)w%$@z7ll7j;r^NZL zHuqTCKJ!SsdGs!*JZ>r_N0kbb0G~(m*b--}SC=~qvIYT@ElA~2K-0WYrDkHA$5Jdj znUkdvY^zpL&OE;|5Ga6CI3@sWGg-tm%{5h3a78%|HjLBPtl#95sh5TdkNs|-u=dOT zp87MTuKKrg9bzq;5@)iu_gKbS`D&6M+nF%-)-1_!EVVFAWiQ5`gwigWN*&F`4QxRw z2e1U*nCx75*XuFak+`IklT6v!4HYv`v!ekTXR5GOCQQ_0PO!2p)KF**rJ|>Sd1bY{ zHstJhqvkCCrB+;hak$rgzT$|Vm2=|zPF6hK-RYjo#l_)lWNoR_sP9X#gWIjpVn3

    xsm{WqXOf2E#594!rkL2*rkuY$F7K~$sZzDr#1uLmDu+jnqzOy2GDQ((s)*W36#$7R+BM}EO5H$2 zRky~VvacwCHUppp+X%0&3Ru;j7yP8c<0duR zpfUjO$K{inqMTw-RDoxqrU>KM+IUT$`M}{Y`8Ze`<2_@S=Xy@QKj(P=nk~2+lYmCN zJ)ReDjsO~Jzd+D^j&F~3Kp)TAVyT0RFTnykV1=2u@%4UP9(HuO)@$i2Wk4069D!2i zr=Va0iG-{dhN8J#4tYvz>q&;%4E62}LDeQKsoD|>ts*V}^t>d?4*|30!#<1o^WDkJ z(&gFw>IT%kya}*$L|g*&TcdgLS6JjF*n>R%Off5-$_Ky?0(d8Y7og-A%G>~2afZtS zomzONo3o1FfVgM{zTAdwirv@oD#)lBj2Hk9A;_oW z2-@d;2-#d8;Dh(4yYAkY&UsMPgNN(yO?B5VO_GOU2L!46GJt<;8cLv{=a{ z#DNY|+?i0tB!FoN-#R`RPr_Ck2c~X_(Ls)>kNT9w?WtkrLYFJUuw90<# zrKUiW867`<4hC?`KgZ4ZJGJcG##sLGcP4t=OHlM5wUYa{v4Z;wZ1BgbBYq7l{1oNw zyYR0I*hiu6E`ZYRgUS`QIPfR)3w?w!&rsEaIQ>va3f+!JegSHFlsG6;r06m{yCj7| z+wdLw9gdW|vAOqyy;A7UgAx1nT5jRh(bAbe4VNywI9zgnHB@p*)gMxI$fw2WY#fPZ ziaSz4W1zO025cO#H*{8oI1O^L6hjJUb=9A?i~ zYh4}B_2u_J+uQB_pwQ(~!#JI@#Up7`>_Ih{!|sCoN|RLziG(^TG%Z|L;M3+~2jE4h zNZ!mNXy=eaU|73}z1kVx}Wi>px zhT|F@`7u0h+Wk`E+`Nj{yY^yg+m+CVH^=yqYJ{)S4}B<8E*1PJRHROXx=E1hfIJGw z?fADMf|UH!eqXrJ)mp+l+==}aO4K^_dKQvb6-7A*$VX9gzJTuxB9e$(=NEV#1so;n z7(kCAadsoy2k%xKL7v-ut`KgR9HvtnEP*2=NZROVxRl5eSA$E z$2mSeaf0LAoY--kIJf2kNgD{XU0D}aG&Z0>VT{YVkodgEVVck;wbOp6koLngb={@v zep#hz?J71gc40_pKNPJUt)^y_hLAA+g6;d-F)CHHLYDy2`bdw?>yvZN`^oowpXYsT z=Kn65o&4wqnIElXm=Hczl+He&5fhnE&LL`Rii=#T@e~=8#_| zBN*do^?T*{UXL`JQN=^;Dz~LxVVZCYU%K=Dgl)*lKDj9%nPb(8ISSYzs5=7iK|l}s zlzg8XYU5lMcIk2p$J(627a|?heOhD5d2Iw$AsXh8V zia9{Rp?bGZ%4fauk!FCSI#HucW$9`6AjbW|m#3iaR)7M!nB%KCN)xbDacUEq6g&s@ z0Zh6BN)?G^$By2LEUY5{hO<3+PNy zX_2I0k)*1eNVvpD-3;Seo$|AX36EW9(I5Y3Drzot>g26t%=$}PjQl2H%=~dn7*#;o(L#{6qg{gs5i?^GnPc|uX*Ee@tJrwY>( z=p+xLIMJ&qxH$w++C6S5jbjnqEs`#u(@X=p9ncZUHil{G@_zTRI~bHMr?l(@=uxff$~2d!|`0VVX=)K1 zX%Y6)0z}@jhMOlD`~yiqw|bO0O_GwB{_Yo;kt=D9ya%-}0{pdv zL4I6ccYL-sFqIVqE#=_GM|{$WjVMaGgqIhUqRQ0Q)E=+~wM7chZC*zq=HMoPA(Uu7 zCH{@qaj88#dc8L?cN2gsxo92==T`>n&5uGaA*tevMQDRugGJ!){3R&NKwK%Z-gk(V0v!t+{q@06c6k}^O1 zkWZSSDwjJ)$rjYZJb@hu)FrJ@Iqnh*x>NWPP@E;APmhW-8Y8@(4A)#r)ecDJAD1MnY#E$6CDiarPU)wDt0?Tir=BzZY*Sl`uy2ex{|+71stHWW~1p|Dll98qQc zj-nkXY{Kmz8&t)NIbQ}#VAV&=?>!;48xsi2>Sk-tnL3tSKa=VTm%a1)=CaG zf#SD8mx~ewc@=73PBoanZ*4GNjB5p=1-{t9^F}ucu^&6QUUUaqY!s9xR3(N(B)Tk; zI;Ua=WqDrZIQnIPE0Nq~TtHL55Our$&=%}{FC96!4CtF5FG!lJ(96iHD8{!s4e~~d zK~BfQ<12$G%(AzkH0>Z1co9m!3s3*4y}^7rt`RF7n3-1Dwx}TF5^m*q zqf54QfNDr6O1v^p+@eUF9A_$mVDcc1uR>G#voIocgA z0`kwuH(PY_N~2Cr8)0H;Rb+RK)7*$HX_G1*z<#otW!bNaHr5h2s0qkQsA>mj1;z}< zI9hg&o52*-rJ2?+eiBrCXIu3BzirVAuQo-^pF+_W^bk1(&|@Jt*%74s36Zp;ZG}a# z;NZ9h+_nj?`~(H0sum&P+lq>cla+S+9Ms*#*zGA?w?5yze-IXHei#iMdQK0LJYN4Z zAs2ZH8=pylX3)YCSlvSC1YQ7(oDKEMGyv=Xef3cIq|Ih4;PW1w??Tf31l=Rskn0yu z2VI@JLe6LDcfT>8VA7o!Ht0k{kF7#+Ip9%h1F9@8_d~_)49k86<6dMPa{VDc7WS+v z?MPxnLszYcqT~aLV5*XoM`2l1Mfh?SpcK-Jq<}KL4|#t=Q@D7IBpmgNqUAzg74gai z^j3Ri<`8zggR0wbPDj$;Bj{3l?|w|Vi-;m=C#XWM o`wu5;5f7w_pU3BMe}ZBD13L$=%xKL7v)qDe$SR9Hvtm-}y1Wf;c~UE9<4Z0p*t zYtP!Adso<{jCHrVcEcEDK#UPV0?7TQ5M;`R$u8%-rwk20KteQNP)vv<3TQMMFPNY) zBq%~qqlQ3O5OIvH?TY*Z_`Ij5lW628+b(h6hAR|vxVQ&?R7bCWc5 zer^zbR>!OF&f(P~!9f3h&hz}B&%I=w#S(yz&dRPRvPK&HEu#@(_gD*$er=YN%K&|` zu|_%5AgZTk^Lvg;%+P+8?ipmAOL{zxx-NpSz_Q}NpYs#eiFRgFGRmu|RzXQdcr*&& zHzFds)>tE7f;v;jqxVBBdPDLL?c+RseY9i64yU;mmKPp+BI@r<#rT0tTvW%SBEpqy zfyXu;jRXA678YFr_=`=NxaFLU1BKEGqdT06O7$PR!xaLCG&GjJtQc*Zx$ulPK4>&5uqJ zM9JL__Q_0~MH+CYAWwEmxHRxIK;z1RV`!Z58}owbD!Ba}MCH?ZNqH;8CiXF2xi{c? zZeg0k{?wTx~2Gg}M%I|2R)XI3_1T zJbIP)p+Uc^Z%Z}#h~5hSdjYiJdKY22(_AH_Tet;~7N2M;aXe0~`nN zY_@f`?~h3m4(3>dMI#WC3jqEJweHfy9t8Sx6ZG=0`Ob0 zQunQ>za`Zn^kh241a=rAG8L1lZUTo9AIck%Ao?Dh#)t7}kVS(`rLwltwz!=jtopY3 z7tZ)`l>xgz?wA&3r(0o3Pr%Bx-0X4tB*^T@qg z!hE}p4<}>nwp^}r5t+)g?ljIco=HB0gLr_a)tx?j&l)G;)3+*|aPJmcLMt4E-7oP~?! z_-sK@Sa)K**S03_SNMbUL)b&5 zx^%0s8?vk3h93ZUmc9&~;%jZrV9`F7Mw>ll=uwvy)!V5TokS61frWeZ%|>An+;#&P z^gQ(7({&t>Y9nDZ;@P73k-&oQ znW4<)omTwSljJafCJaX7R(PuwiiW~7a&d0Ef0MyrSY= count) - { - this.divElt.className = "FuelConsumptionCtrl"; - } -} - -FuelConsumptionCtrl.prototype._preload = function() -{ - var images = new Array(); - var prefix = './apps/ecoenergy/controls/FuelConsumption/images/'; - for(var i = 0; i < this._preload.arguments.length; i++) - { - images[i] = new Image(); - images[i].src = prefix + this._preload.arguments[i]; - images[i].onload = this._next.bind(this, this._preload.arguments.length); - } -} - -FuelConsumptionCtrl.prototype._createStructure = function() -{ -// log.debug("FuelConsumptionCtrl: _createStructure() called..."); - - // Create the div for control - this.divElt = document.createElement('div'); - this.divElt.className = "FuelConsumptionCtrl FuelConsumptionCtrlHiddenOpacity"; - // Create the div for ump panel - this.umpPanelDiv = document.createElement('div'); - //(this.properties.umpPanelStatus) ? this.umpPanelDiv.className = "UmpPanelDivEnable" : this.umpPanelDiv.className = "UmpPanelDivDisable"; - this.umpPanelDiv.className = "UmpPanelDivDisable"; - this.umpPanelDiv.style.left = "-60px"; - // Create the container div for all of the graphs - this.graphsArea = document.createElement('div'); - this.graphsArea.className = 'FuelConsumptionCtrlGraphsArea'; - - /***************************************/ - /* Create DOM structure for CDFE graph */ - /***************************************/ - - // CDFE graph top-level DIV - this.CDFEGraph = document.createElement('div'); - this.CDFEGraph.className = 'FuelConsumptionCtrlCDFEGraph'; - - /******************************Created New graph Div *****************************************/ - - // CDFE graph top-level DIV 2 - this.CDFEGraphRight = document.createElement('div'); - this.CDFEGraphRight.className = 'FuelConsumptionCtrlCDFEGraphRight'; - - /******************************End of Created New graph Div **********************************/ - - // CDFE graph X-axis label - this.CDFEGraphXAxisLabel = document.createElement('div'); - this.CDFEGraphXAxisLabel.className = 'FuelConsumptionCtrlCDFEGraphXAxisLabel'; - this.CDFEGraph.appendChild(this.CDFEGraphXAxisLabel); - - // CDFE graph Y-axis label - this.CDFEGraphYAxisLabel = document.createElement('div'); - this.CDFEGraphYAxisLabel.className = 'FuelConsumptionCtrlCDFEGraphYAxisLabel'; - this.CDFEGraph.appendChild(this.CDFEGraphYAxisLabel); - - // Add axis labels to CDFE graph - this._addCDFEGraphAxisLabels(this.CDFEGraphXAxisLabel, - this.CDFEGraphYAxisLabel); - - // CDFE graph title - this.CDFEGraphTitle = document.createElement('h2'); - this.CDFEGraphTitle.className = 'FuelConsumptionCtrlCDFEGraphTitle'; - this.CDFEGraph.appendChild(this.CDFEGraphTitle); - - // Clipping mask for active CDFE graph area - this.CDFEGraphClipMask = document.createElement('div'); - this.CDFEGraphClipMask.className = 'FuelConsumptionCtrlCDFEGraphClipMask'; - - /*****************************************New Mask for CDFE graph*********************************/ - - // Clipping mask for active CDFE graph Right area - this.CDFEGraphClipMaskRight = document.createElement('div'); - this.CDFEGraphClipMaskRight.className = 'FuelConsumptionCtrlCDFEGraphClipMaskRight'; - - /*****************************************End of New Mask for CDFE graph*********************************/ - - // Active graphing area for CDFE graph - this.CDFEGraphArea = document.createElement('div'); - this.CDFEGraphArea.className = 'FuelConsumptionCtrlCDFEGraphArea'; - - /***************************************New Active Graphing Area for CDFE graph right***************/ - - // Active graphing area for CDFE graph Right - this.CDFEGraphAreaRight = document.createElement('div'); - this.CDFEGraphAreaRight.className = 'FuelConsumptionCtrlCDFEGraphAreaRight'; - - /***************************************End of Active Graphing Area for CDFE graph right***************/ - // Create CDFE graph bars - for (var i = 1; i <= this._totalCDFEBars; i++) - { - var curCDFEBar = document.createElement('div'); - curCDFEBar.id = 'CDFEBar' + i; - - var CDFEBarCap = document.createElement('div'); - CDFEBarCap.className = 'FuelConsumptionCtrlCDFEBarGraphCap'; - - switch (i) - { - case this._newCDFEDataIdx: - curCDFEBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - this.CDFECurrentBar = curCDFEBar; - - break; - case this._currentCDFEDataIdx: - curCDFEBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - - break; - default: - curCDFEBar.className = 'FuelConsumptionCtrlCDFEBarGraphCore'; - break; - } - - curCDFEBar.appendChild(CDFEBarCap); - this.CDFEGraphArea.appendChild(curCDFEBar); - } - - /*************************************New CDFE Graph Bars**********************************/ - - // Create CDFE graph Right bars - for (var i = 1; i <= this._totalCDFEBarsRight; i++) - { - var curCDFEBarRight = document.createElement('div'); - curCDFEBarRight.id = 'CDFEBarRight' + i; - curCDFEBarRight.className = 'FuelConsumptionCtrlCDFEBarGraphCoreRight'; - var CDFEBarCapRight = document.createElement('div'); - CDFEBarCapRight.className = 'FuelConsumptionCtrlCDFEBarGraphCapRight'; - curCDFEBarRight.appendChild(CDFEBarCapRight); - this.CDFEGraphAreaRight.appendChild(curCDFEBarRight); - } - - /*************************************End of New CDFE Graph Bars**********************************/ - // Create canvas for drawing line graphs - this.CDFELineGraphCanvas = document.createElement('canvas'); - this.CDFELineGraphCanvas.id = 'FuelConsumptionCtrlCDFELineGraphCanvas'; - this.CDFELineGraphCanvas.className = 'FuelConsumptionCtrlHiddenCDFELineGraphCanvas'; - this.CDFEGraphArea.appendChild(this.CDFELineGraphCanvas); - - // Attach the active graphing area to the CDEF graph clip mask - this.CDFEGraphClipMask.appendChild(this.CDFEGraphArea); - - /**************************New CDFE Clip Mask Attach*******************************************/ - - // Attach the active graphing area to the CDEF graph clip mask - this.CDFEGraphClipMaskRight.appendChild(this.CDFEGraphAreaRight); - - /**************************End of New CDFE Clip Mask Attach*******************************************/ - - // Attach the clip mask to the CDFE graph - this.CDFEGraph.appendChild(this.CDFEGraphClipMask); - - /**************************New clip mask to the CDFE graph*******************************************/ - - // Attach the clip mask to the CDFE graph Right - this.CDFEGraphRight.appendChild(this.CDFEGraphClipMaskRight); - - /**************************End of New clip mask to the CDFE graph*******************************************/ - - // Attach the CDFE graph to its parent - this.graphsArea.appendChild(this.CDFEGraph); - - /**************************New CDFE graph to its parent*******************************************/ - - // Start stand alone graph for the hev disc graph - if(this.properties.ctrlStyle === "hevstyle") - { - // CDFE Disc graph top-level DIV - this.CDFEDiscGraph = document.createElement('div'); - this.CDFEDiscGraph.className = 'FuelConsumptionCtrlCDFEDiscGraph'; - - // Clipping Disc mask for active CDFE graph area - this.CDFEDiscGraphClipMask = document.createElement('div'); - this.CDFEDiscGraphClipMask.className = 'FuelConsumptionCtrlCDFEDiscGraphClipMask'; - - // Active graphing area for CDFE Disc graph - this.CDFEDiscGraphArea = document.createElement('div'); - this.CDFEDiscGraphArea.className = 'FuelConsumptionCtrlCDFEDiscGraphArea'; - - // Create Disc CDFE graph bars - for (var i = 1; i <= this._totalCDFEBars; i++) - { - var curCDFEDiscBar = document.createElement('div'); - curCDFEDiscBar.id = 'CDFEDiscBar' + i; - - switch (i) - { - case this._newCDFEDataIdx: - curCDFEDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrent'; - this.CDFECurrentDiscBar = curCDFEDiscBar; - - break; - case this._currentCDFEDataIdx: - curCDFEDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrent'; - - break; - default: - curCDFEDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCore'; - break; - } - - - - this.CDFEDiscGraphArea.appendChild(curCDFEDiscBar); - } - - // Attach the active graphing area to the CDEF Disc graph clip mask - this.CDFEDiscGraphClipMask.appendChild(this.CDFEDiscGraphArea); - - // Attach the clip mask to the CDFE Disc graph - this.CDFEDiscGraph.appendChild(this.CDFEDiscGraphClipMask); - - // Attach the CDFE Disc graph to its parent - this.graphsArea.appendChild(this.CDFEDiscGraph); - - - /************* For the 10 Min bar graph data with Discs *************/ - // CDFE Disc graph top-level DIV - this.CDFEDiscGraphRight = document.createElement('div'); - this.CDFEDiscGraphRight.className = 'FuelConsumptionCtrlCDFEDiscGraphRight'; - - // Clipping Disc mask for active CDFE graph area - this.CDFEDiscGraphClipMaskRight = document.createElement('div'); - this.CDFEDiscGraphClipMaskRight.className = 'FuelConsumptionCtrlCDFEDiscGraphClipMaskRight'; - - // Active graphing area for CDFE Disc graph - this.CDFEDiscGraphAreaRight = document.createElement('div'); - this.CDFEDiscGraphAreaRight.className = 'FuelConsumptionCtrlCDFEDiscGraphAreaRight'; - - // Create Disc CDFE graph bars - for (var k = 1; k <= this._totalCDFEBarsRight; k++) - { - var curCDFEDiscBarRight = document.createElement('div'); - curCDFEDiscBarRight.id = 'CDFEDiscBarRight' + k; - curCDFEDiscBarRight.className = 'FuelConsumptionCtrlHevCDFEDiscGraphCoreRight'; - this.CDFEDiscGraphAreaRight.appendChild(curCDFEDiscBarRight); - } - - // Attach the active graphing area to the CDEF Disc graph clip mask - this.CDFEDiscGraphClipMaskRight.appendChild(this.CDFEDiscGraphAreaRight); - - // Attach the clip mask to the CDFE Disc graph - this.CDFEDiscGraphRight.appendChild(this.CDFEDiscGraphClipMaskRight); - - // Attach the CDFE Disc graph to its parent - this.graphsArea.appendChild(this.CDFEDiscGraphRight); - - } - // Attach the CDFE graph to its parent Right - this.graphsArea.appendChild(this.CDFEGraphRight); - /**************************End of CDFE graph to its parent*******************************************/ - - /***************************************/ - /* Create DOM structure for CFER graph */ - /***************************************/ - - // CFER graph top-level DIV - this.CFERGraph = document.createElement('div'); - this.CFERGraph.className = 'FuelConsumptionCtrlCFERGraph'; - - // CFER graph X-axis label - this.CFERGraphXAxisLabel = document.createElement('div'); - this.CFERGraphXAxisLabel.className = 'FuelConsumptionCtrlCFERGraphXAxisLabel'; - this.CFERGraph.appendChild(this.CFERGraphXAxisLabel); - - // CFER graph Y-axis label - this.CFERGraphYAxisLabel = document.createElement('div'); - this.CFERGraphYAxisLabel.className = 'FuelConsumptionCtrlCFERGraphYAxisLabel'; - this.CFERGraph.appendChild(this.CFERGraphYAxisLabel); - - // Add axis labels to CFER graph - this._addCFERGraphAxisLabels(this.CFERGraphXAxisLabel, - this.CFERGraphYAxisLabel); - - // CFER graph title - this.CFERGraphTitle = document.createElement('h2'); - this.CFERGraphTitle.className = 'FuelConsumptionCtrlCFERGraphTitle'; - this.CFERGraph.appendChild(this.CFERGraphTitle); - - // Clipping mask for active CFER graph area - this.CFERGraphClipMask = document.createElement('div'); - this.CFERGraphClipMask.className = 'FuelConsumptionCtrlCFERGraphClipMask'; - - // Active graphing area for CFER graph - this.CFERGraphArea = document.createElement('div'); - this.CFERGraphArea.className = 'FuelConsumptionCtrlCFERGraphArea'; - - // Create CFER graph bars - for (var j = 0; j < this._totalCFERBars; j++) { - var curCFERBar = document.createElement('div'); - curCFERBar.id = 'CFERBar' + (j + 1); - //var currentValue = document.createElement('div'); - //currentValue.id = 'CFERBarValueCurrent'; - //currentValue.className = 'FuelConsumptionCtrlCFERBarValueCurrent'; - var CFERBarCap = document.createElement('div'); - CFERBarCap.className = 'FuelConsumptionCtrlCFERBarGraphCap'; - switch (j) - { - case this._newCFERDataIdx: - curCFERBar.className = 'FuelConsumptionCtrlCFERBarGraphCore'; - break; - case this._currentCFERDataIdx: - curCFERBar.className = 'FuelConsumptionCtrlCFERBarGraphCore'; - - //this.CFERCurrentBar = curCFERBar; - break; - default: - curCFERBar.className = 'FuelConsumptionCtrlCFERBarGraphCore'; - break; - } - CFERBarCap.style.marginTop = '-3px'; - curCFERBar.appendChild(CFERBarCap); - this.CFERGraphArea.appendChild(curCFERBar); - } - - this.CFERCurrenBarMask = document.createElement('div'); - this.CFERCurrenBarMask.className = 'FuelConsumptionCtrlCFERBarGraphCurrentMask'; - - var CurrentCFERBarCap = document.createElement('div'); - CurrentCFERBarCap.className = 'FuelConsumptionCtrlCFERBarGraphCap'; - CurrentCFERBarCap.style.marginTop = '-3px'; - - this.CFERCurrentBar = document.createElement('div'); - this.CFERCurrentBar.id = 'CFERBar10'; - this.CFERCurrentBar.className = 'FuelConsumptionCtrlCFERBarGraphCoreCurrent'; - - this.CFERCurrentBar.appendChild(CurrentCFERBarCap); - - this.CFERCurrenBarMask.appendChild(this.CFERCurrentBar); - - // Create a div for the current Graph value and attach to the parent div - this.CFERCurrentBarValue = document.createElement('div'); - this.CFERCurrentBarValue.className = 'FuelConsumptionCtrlCFERCurrentBarValue'; - - // Create a div for text of bar value and attach to CFERCurrentBarValueCFERCurrentBarValue - this.CFERCurrentBarValueText = document.createElement('div'); - this.CFERCurrentBarValueText.className = 'FuelConsumptionCtrlCFERBarValueCurrent'; - this.CFERCurrentBarValueText.id = 'CFERBarValueCurrent'; - this.CFERCurrentBarValue.appendChild(this.CFERCurrentBarValueText); - - // Attach the active graphing area to the CFER graph clip mask - this.CFERGraphClipMask.appendChild(this.CFERGraphArea); - - // Attach the clip mask to the CFER graph - this.CFERGraph.appendChild(this.CFERGraphClipMask); - - // Attach the CFER graph to its parent - this.graphsArea.appendChild(this.CFERGraph); - - /*********************************************************/ - /* Create DOM structure for Avg. Fuel Efficiency display */ - /*********************************************************/ - - // Fuel efficiency top-level DIV - this.fuelEfficiencyArea = document.createElement('div'); - this.fuelEfficiencyArea.className = 'FuelConsumptionCtrlFuelEfficiencyArea'; - - // Fuel efficiency title - this.fuelEfficiencyTitle = document.createElement('h2'); - // Fuel efficiency value display - this.fuelEfficiencyValue = document.createElement('div'); - this.fuelEfficiencyUnit = document.createElement('div'); - this.fuelEfficiencyThisDrive = document.createElement('div'); - - //TODO::Fuel Consumption HEV Style - if(this.properties.ctrlStyle === "hevstyle"){ - this.fuelEfficiencyTitle.className = 'FuelConsumptionCtrlFuelEfficiencyTitleHev'; - this.fuelEfficiencyThisDrive.className = 'FuelConsumptionCtrlFuelEfficiencyThisDriveHev'; - this.fuelEfficiencyValue.className = 'FuelConsumptionCtrlFuelEfficiencyValueHev'; - this.fuelEfficiencyUnit.className = 'FuelConsumptionCtrlFuelEfficiencyUnitHev'; - //Fuel efficiency HR region - this.fuelEfficiencyHevDivider = document.createElement("div"); - this.fuelEfficiencyHevDivider.className = 'FuelConsumptionCtrlFuelEfficiencyHevDivider'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevDivider); - - //Fuel Efficiency OneDrive Title - this.fuelEfficiencyHevOneDriveTitle = document.createElement("div"); - this.fuelEfficiencyHevOneDriveTitle.className = 'FuelConsumptionCtrlHevOneDriveText'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevOneDriveTitle); - this.properties.oneDriveText = - this._translateString(this.properties.oneDriveTextId, - this.properties.oneDriveText, - this.properties.subMap); - this.fuelEfficiencyHevOneDriveTitle.innerHTML = this.properties.oneDriveText; - - //Fuel Efficiency EVDistance Title - this.fuelEfficiencyHevEVDistanceTitle = document.createElement("div"); - this.fuelEfficiencyHevEVDistanceTitle.className = 'FuelConsumptionCtrlHevEVDistanceText'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevEVDistanceTitle); - this.properties.evDistanceText = - this._translateString(this.properties.evDistanceTextId, - this.properties.evDistanceText, - this.properties.subMap); - this.fuelEfficiencyHevEVDistanceTitle.innerHTML = this.properties.evDistanceText; - - //Fuel Efficiency Distance Value - this.fuelEfficiencyHevDistanceValue = document.createElement("div"); - this.fuelEfficiencyHevDistanceValue.className = 'FuelConsumptionCtrlHevDistanceValue'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevDistanceValue); - - //Fuel Efficiency Distance Unit - this.fuelEfficiencyHevDistanceUnit = document.createElement("div"); - this.fuelEfficiencyHevDistanceUnit.className = 'FuelConsumptionCtrlHevDistanceUnit'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevDistanceUnit); - - //Fuel Efficiency Percent Value - this.fuelEfficiencyHevPercentValue = document.createElement("div"); - this.fuelEfficiencyHevPercentValue.className = 'FuelConsumptionCtrlHevPercentValue'; - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyHevPercentValue); - - // 20 special case for HEV - - this.halfKmLabel1 = document.createElement('div'); - this.halfKmLabel1.className = 'FuelConsumptionCtrlHalfWayLabel1'; - this.halfKmLabel1.innerHTML = '20'; - - this.halfKmLabel2 = document.createElement('div'); - this.halfKmLabel2.className = 'FuelConsumptionCtrlHalfWayLabel2'; - this.halfKmLabel2.innerHTML = '20'; - - this.divElt.appendChild(this.halfKmLabel1); - this.divElt.appendChild(this.halfKmLabel2); - } - else{ - this.fuelEfficiencyTitle.className = 'FuelConsumptionCtrlFuelEfficiencyTitle'; - this.fuelEfficiencyThisDrive.className = 'FuelConsumptionCtrlFuelEfficiencyThisDrive'; - this.fuelEfficiencyValue.className = 'FuelConsumptionCtrlFuelEfficiencyValue'; - this.fuelEfficiencyUnit.className = 'FuelConsumptionCtrlFuelEfficiencyUnit'; - } - - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyTitle); - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyThisDrive); - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyValue); - - // create container for disc value indicator - if(this.properties.ctrlStyle === 'hevstyle') - { - this.oneDiscValue = document.createElement('div'); - this.oneDiscValue.className = 'FuelConsumptionCtrlOneDiscValue'; - - this.properties.whText = - this._translateString(this.properties.whUnitId, - this.properties.whText, - this.properties.subMap); - this.oneDiscValue.innerHTML = '=30'+this.properties.whText; - this.oneDiscImage = document.createElement('div'); - this.oneDiscImage.className = 'FuelConsumptionCtrlOneDiscIndicator'; - - this.divElt.appendChild(this.oneDiscValue); - this.divElt.appendChild(this.oneDiscImage); - } - - this.fuelEfficiencyArea.appendChild(this.fuelEfficiencyUnit); - - // Add graphs area to control's top-level container - this.divElt.appendChild(this.graphsArea); - - // Add fuel efficiency area to control's top-level container - this.divElt.appendChild(this.fuelEfficiencyArea); - this.divElt.appendChild(this.CFERCurrentBarValue); - this.divElt.appendChild(this.CFERCurrenBarMask); - // Attach control to parent - this.parentDiv.appendChild(this.divElt); - this.parentDiv.appendChild(this.umpPanelDiv); - - var umpConfig = { - "buttonConfig" : this.properties['umpButtonConfig'], - "defaultSelectCallback" : this.properties['defaultSelectCallback'], - "defaultLongPressCallback" : this.properties['defaultLongPressCallback'], - "defaultScrubberCallback" : this.properties['defaultScrubberCallback'], - "defaultHoldStartCallback" : this.properties['defaultHoldStartCallback'], - "defaultHoldStopCallback" : this.properties['defaultHoldStopCallback'], - "umpStyle" : this.properties['umpStyle'], - "hasScrubber" : this.properties['hasScrubber'], - "scrubberConfig" : this.properties['scrubberConfig'], - "retracted" : true - }; - //@formatter:on - log.debug("Instantiating umpCtrl..."); - this.umpCtrl = framework.instantiateControl(this.uiaId, this.umpPanelDiv, "Ump3Ctrl", umpConfig); - - // "Switch View" button control - //@formatter:off - var btnInstanceProperties = - { - "selectCallback" : this._switchViewButtonHandler.bind(this), - "enabledClass" : "FuelConsumptionCtrlSwitchView", - "disabledClass" : null, - "focusedClass": null, - "downClass" : "FuelConsumptionCtrlSwitchViewDown", - "heldClass" : null, - "appData" : this.properties.appData, - "label" : this.properties.switchViewLabelText, - "labelId" : this.properties.switchViewLabelId, - "subMap" : this.properties.subMap, - }; - //@formatter:on - if(this.properties.mode !== 'ending' ) - { - this._switchViewButtonCtrl = framework.instantiateControl(this.uiaId, - this.fuelEfficiencyArea, - "ButtonCtrl", - btnInstanceProperties); - } - - - this._init(); -} - - -/****************************************/ -/* Translation & text utility functions */ -/****************************************/ - -/* - * Utility function to look up a translatable string ID and/or accept a default text string. - */ -FuelConsumptionCtrl.prototype._translateString = function(strId, strText, subMap) -{ -// log.debug("_translateString called: strId = " + strId + ", strText = " + strText); - - var translatedText = null; - - if (strId) - { - translatedText = framework.localize.getLocStr(this.uiaId, strId, subMap); - } - else if (strText) - { - translatedText = strText; - } - - return translatedText; -} - -/* - * Utility function to make a text string suitable for HTML block-rendering - */ -FuelConsumptionCtrl.prototype._stringToHTML = function(textStr) -{ -// log.debug("_stringToHTML called: textStr = " + textStr); - - var htmlText; - - if (textStr) - { - htmlText = textStr + "
    "; - } - else - { - htmlText = ""; - } - - return htmlText; -} - - -/*********************************************************/ -/* Utility functions for the CDFE graph & its animations */ -/*********************************************************/ - -/* - * Utility function to add axis labels to the CDFE graph - */ -FuelConsumptionCtrl.prototype._addCDFEGraphAxisLabels = function(xDiv, yDiv) -{ -// log.debug("FuelConsumptionCtrl: _addCDFEGraphAxisLabels() called..."); - - // NOTE: We're assuming 15 labels. Should this change, - // we'd need to revisit this - var barVal = 60; - for (var i = 0; i < 6; i++) - { - var barLabel = document.createElement('span'); - barLabel.innerHTML = barVal; - barLabel.style.position = 'absolute'; - barLabel.style.left = this._CSSConstants["CDFEGraphBarMarginRight"] + - (i * (this._CSSConstants["CDFEGraphBarWidthRight"] + - this._CSSConstants["CDFEGraphBarSpacingRight"]) - 18) + 'px'; - barLabel.style.width = this._CSSConstants["CDFEGraphBarWidthRight"] + 'px'; - xDiv.appendChild(barLabel); - barVal -= 10; - } - - var barLabel = document.createElement('span'); - barLabel.innerHTML = (this._totalCDFEBarsRight - 1); - barLabel.style.position = 'absolute'; - barLabel.style.left = this._CSSConstants["CDFEGraphBarMarginRight"] + - (8 * (this._CSSConstants["CDFEGraphBarWidthRight"] )+ - this._CSSConstants["CDFEGraphBarSpacingRight"] - 19) + 'px'; - barLabel.style.width = this._CSSConstants["CDFEGraphBarWidthRight"] + 'px'; - xDiv.appendChild(barLabel); - - - this.yLimitValueLabelCDFE = document.createElement('span'); - this.yLimitValueLabelCDFE.innerHTML = this.properties.currentFuelConfig.yAxisLimitValue; - yDiv.appendChild(this.yLimitValueLabelCDFE); - - var yUnitLabel = document.createElement('span'); - yUnitLabel.style.position = 'absolute'; - yUnitLabel.style.width = '100px'; - yUnitLabel.style.top = '90px'; - - var yZeroLabel = document.createElement('span'); - this.properties.currentFuelConfig.yAxisLabelText = - this._translateString(this.properties.currentFuelConfig.yAxisLabelId, - this.properties.currentFuelConfig.yAxisLabelText, - this.properties.subMap); - yUnitLabel.innerHTML = this.properties.currentFuelConfig.yAxisLabelText; - var xAxisLabelMinuteText = this._translateString(this.properties.xAxisLabelMinuteId, - this.properties.xAxisLabelMinuteText, this.properties.subMap); - - yZeroLabel.innerHTML = '0'+xAxisLabelMinuteText; - yZeroLabel.style.position = 'absolute'; - yZeroLabel.style.width = '60px'; - yZeroLabel.style.top = '115px'; - yZeroLabel.style.left = '466px'; - this.yZeroLabelCDFE = yUnitLabel; - yDiv.appendChild(yUnitLabel); - yDiv.appendChild(yZeroLabel); -} - -/* - * Utility function to set the horizontal positions of the CDFE graph bars - */ -FuelConsumptionCtrl.prototype._setCDFEGraphBarPositions = function() -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarPositions() called..."); - - var leftInc = this._CSSConstants["CDFEGraphBarWidth"] + - this._CSSConstants["CDFEGraphBarSpacing"]; - var currentLeft = this._CSSConstants["CDFEGraphBarMargin"]; - - for (var i = 1; i <= this._totalCDFEBars; i++) - { - var bar = document.getElementById('CDFEBar' + i); - if (bar) - { - bar.style.left = currentLeft + 'px'; - } - - - // Adding new disc logic for hevstyle - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBar' + i); - if(disc) - { - disc.style.left = currentLeft + 'px'; - } - } - - currentLeft += leftInc; - } -} -/**********************************New Defination of function**********************************/ - -FuelConsumptionCtrl.prototype._setCDFEGraphBarPositionsRight = function() -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarPositions() called..."); - - var leftIncRight = this._CSSConstants["CDFEGraphBarWidthRight"] + - this._CSSConstants["CDFEGraphBarSpacingRight"]; - var currentLeftMarginRight = this._CSSConstants["CDFEGraphBarMarginRight"]; - - for (var i = 1; i <= this._totalCDFEBarsRight; i++) - { - var barRight = document.getElementById('CDFEBarRight' + i); - if (barRight) - { - barRight.style.left = currentLeftMarginRight + 'px'; - } - - // Adding new disc logic for hevstyle - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBarRight' + i); - if(disc) - { - disc.style.left = currentLeftMarginRight + 'px'; - } - } - - currentLeftMarginRight += leftIncRight; - } -} - -/**********************************End of New Defination of function**********************************/ -/* - * Utility function to enable/disable fade transitions for the CDFE line graph - */ -FuelConsumptionCtrl.prototype._setCDFELineGraphFadeTransitions = function(isEnabled) -{ -// log.debug("FuelConsumptionCtrl: _setCDFELineGraphFadeTransitions() called: isEnabled = " + isEnabled); - - var lineGraphCanvas = document.getElementById('FuelConsumptionCtrlCDFELineGraphCanvas'); - if (lineGraphCanvas) - { - var transitionStr; - - if (isEnabled) - { - log.debug (' enabling canvas opacity transition'); - transitionStr = 'opacity 0.6s linear 0s'; - } - else - { - log.debug (' disabling canvas opacity transition'); - transitionStr = 'none'; - } - - lineGraphCanvas.style.OTransition = transitionStr; - } -} - -/* - * Utility function to enable/disable height transitions for the CDFE graph bars - * (except the "hidden" new value bar) - */ -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeightTransitions = function(isEnabled) -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeightTransitions() called: isEnabled = " + isEnabled); - - var transitionStr; - - // TODO: Figure out why this needs to be backwards to work! - if (!isEnabled) - { - transitionStr = 'height 0.6s ease 0s'; - } - else - { - transitionStr = 'none'; - } - - for (var i = 0; i <= this._youngestCDFEDataIdx; i++) - { - var bar = document.getElementById('CDFEBar' + (i + 1)); - if (bar) - { - bar.style.OTransition = transitionStr; - } - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBar' + (i + 1)); - if (disc) - { - disc.style.OTransition = transitionStr; - } - } - } -} - -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeightTransitionsRight = function(isEnabled) -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeightTransitions() called: isEnabled = " + isEnabled); - - var transitionStr; - - // TODO: Figure out why this needs to be backwards to work! - if (!isEnabled) - { - transitionStr = 'height 0.6s ease 0s'; - } - else - { - transitionStr = 'none'; - } - - for (var i = 0; i <= this._youngestCDFEDataIdxRight; i++) - { - var bar = document.getElementById('CDFEBarRight' + (i + 1)); - if (bar) - { - bar.style.OTransition = transitionStr; - } - - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBarRight' + (i + 1)); - if (disc) - { - disc.style.OTransition = transitionStr; - } - } - } -} - - - -/* - * Utility function to set the height of a single CDFE graph bar (e.g. the just-inserted one) - */ -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeight = function(barIdx,HEVMode) -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeight() called: barIdx = " + barIdx); - - var bar = document.getElementById('CDFEBar' + (barIdx + 1)); - if (bar) - { - bar.style.height = this._scaleDataToGraphY(this._CSSConstants["CDFEGraphVisibleHeight"], - this._CDFEGraphBarValues[barIdx], - this.properties.currentFuelConfig.yAxisLimitValue, - false) + 'px'; - - - } - - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBar' + (barIdx + 1)); - if (disc) - { - /*disc.style.height = this._scaleDataToGraphY(this._CSSConstants["CDFEGraphVisibleHeight"], - this._CDFEDiscValues[barIdx], - this.properties.currentFuelConfig.yAxisLimitValue, - false) + 'px';*/ - if(HEVMode) - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrentGreenHighLighted'; - disc.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrentGreenHighLighted'; - } - else - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - disc.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrent'; - } - disc.style.height = this._CDFEDiscValues[barIdx]+'px'; - - } - } -} - - -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeightRight = function(barIdx) -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeight() called: barIdx = " + barIdx); - - var bar = document.getElementById('CDFEBarRight' + (barIdx + 1)); - if (bar) - { - bar.style.height = this._scaleDataToGraphY(this._CSSConstants["CDFEGraphVisibleHeightRight"], - this._CDFEGraphBarValuesRight[barIdx], - this.properties.currentFuelConfig.yAxisLimitValue, - false) + 'px'; - } -} - -/* - * Utility function to set the heights of all of the CDFE graph bars - */ -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeights = function() -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeights() called..."); - - // Cache reused values - var graphHeight = this._CSSConstants["CDFEGraphVisibleHeight"]; - var yLimit = this.properties.currentFuelConfig.yAxisLimitValue; - - for (var i = 0; i < this._totalCDFEBars; i++) - { - var bar = document.getElementById('CDFEBar' + (i + 1)); - if (bar) - { - bar.style.height = this._scaleDataToGraphY(graphHeight, - this._CDFEGraphBarValues[i], - yLimit, - false) + 'px'; - } - - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBar' + (i + 1)); - if (disc) - { - /*disc.style.height = this._scaleDataToGraphY(graphHeight, - this._CDFEDiscValues[i], - yLimit, - false) + 'px'; */ - disc.style.height = this._CDFEDiscValues[i]+'px'; - } - } - } -} - -FuelConsumptionCtrl.prototype._setCDFEGraphBarHeightsRight = function() -{ -// log.debug("FuelConsumptionCtrl: _setCDFEGraphBarHeights() called..."); - - // Cache reused values - var graphHeight = this._CSSConstants["CDFEGraphVisibleHeightRight"]; - var yLimit = this.properties.currentFuelConfig.yAxisLimitValue; - - for (var i = 0; i < this._totalCDFEBarsRight; i++) - { - var bar = document.getElementById('CDFEBarRight' + (i + 1)); - - if (bar) - { - bar.style.height = this._scaleDataToGraphY(graphHeight, - this._CDFEGraphBarValuesRight[i], - yLimit, - false) + 'px'; - } - if(this.properties.ctrlStyle === 'hevstyle') - { - var disc = document.getElementById('CDFEDiscBarRight' + (i + 1)); - if (disc) - { - disc.style.height = this._CDFEDiscBarValuesRight[i]+ 'px'; - } - } - } -} - -/* - * Utility function to render an interval of the CDFE line graph, using a canvas overlay - */ -FuelConsumptionCtrl.prototype._drawCDFELineGraphInterval = function(startIdx, endIdx, clearCanvas) -{ -// log.debug("FuelConsumptionCtrl: _drawCDFELineGraphInterval() called..."); - - if ((typeof(startIdx) === 'number') && - (typeof(endIdx) === 'number') && - (startIdx < endIdx) && - (startIdx >= 0) && - (endIdx < this._totalCDFEBars)) - { - // Horizontal distance between bar centers - var barInterval = this._CSSConstants["CDFEGraphBarWidth"] + - this._CSSConstants["CDFEGraphBarSpacing"]; - - // Center of leftmost (oldest) bar in interval - var leftX = (this._CSSConstants["CDFEGraphBarSpacing"] + - (this._CSSConstants["CDFEGraphBarWidth"] / 2)) + - (barInterval * startIdx); - - // Center of next bar - var rightX = leftX + barInterval; - var leftY; - var rightY; - - // Constants - var graphHeight = this._CSSConstants["CDFEGraphVisibleHeight"]; - var yLimit = this.properties.currentFuelConfig.yAxisLimitValue; - - // Reset the canvas (if needed) - if (clearCanvas) - { - this.CDFELineGraphCanvas.width = this.CDFELineGraphCanvas.width; - } - - // Set up for drawing - this._CDFELineGraphCanvasDC.lineWidth = 2; - this._CDFELineGraphCanvasDC.beginPath(); - this._CDFELineGraphCanvasDC.strokeStyle = "#00CC00"; - - // Initialize leftY & rightY - if (this._CDFEGraphLineValues[startIdx]) - { - leftY = this._scaleDataToGraphY(graphHeight, - this._CDFEGraphLineValues[startIdx], - yLimit, - true); - } - else - { - leftY = null; - } - - for (var i = startIdx + 1; i <= endIdx; i++) - { - // Scale value as rightY - if (this._CDFEGraphLineValues[i]) - { - rightY = this._scaleDataToGraphY(graphHeight, - this._CDFEGraphLineValues[i], - yLimit, - true); - } - else - { - rightY = null; - } - - // If we have both endpoints, ... - if (leftY && rightY) - { - // ... draw the line segment between them - this._CDFELineGraphCanvasDC.moveTo(leftX, leftY); - this._CDFELineGraphCanvasDC.lineTo(rightX, rightY); - } - - // Advance to next value - leftY = rightY; - leftX = rightX; - rightX += barInterval; - } - - // Stroke the path - this._CDFELineGraphCanvasDC.stroke(); - } -} - -/* - * Shortcut utility function to render the entire CDFE line graph - */ -FuelConsumptionCtrl.prototype._drawCDFELineGraph = function() -{ -// log.debug("FuelConsumptionCtrl: _drawCDFELineGraph() called..."); - - this._drawCDFELineGraphInterval(0, this._newCDFEDataIdx, true); -} - -/* - * Utility function for resetting the CDFE graph - * (redraw it with the "new" bar hidden on the right-hand side) - */ -// -FuelConsumptionCtrl.prototype._resetCDFEGraph = function(animateBars) -{ -// log.debug("FuelConsumptionCtrl: _resetCDFEGraph() called: animateBars = " + animateBars); - - // Make sure left transitions are OFF for the CDFE graph active area while we redraw it - this.CDFEGraphArea.style.OTransition = 'none'; - if(this.properties.ctrlStyle === 'hevstyle') - { - this.CDFEDiscGraphArea.style.OTransition = 'none'; - } - - // Enable/disable height transitions for the CDFE graph bars - this._setCDFEGraphBarHeightTransitions(animateBars); - if(this.properties.ctrlStyle === 'hevstyle') - { - - for(var i = 0; i <= 10; i++) - { - var bar = document.getElementById('CDFEBar'+(i+1)); - var disc = document.getElementById('CDFEDiscBar' +(i+1)); - if(this._initialEVMode[i] && bar) - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrentGreen'; - disc.className = 'FuelConsumptionCtrlHevCDFEDiscBg_Green'; - if(i == 9) - { - this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrentGreenHighLighted'; - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrentGreenHighLighted'; - break; - } - - } - else - { - if(i == 9 || i == 10) - { - this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrent'; - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - disc.className = 'FuelConsumptionCtrlHevCDFEBarGraphCoreCurrent'; - } - else - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCore'; - disc.className = 'FuelConsumptionCtrlHevCDFEBarGraphCore'; - } - } - } - } - else - { - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrent'; - } - // Reposition the CDFE graph active area & reconstruct the bar/line graph - // (should be no visible difference afterwards) - this.CDFEGraphArea.style.left = '0px'; - if(this.properties.ctrlStyle === 'hevstyle') - { - this.CDFEDiscGraphArea.style.left = '0px'; - } - this._setCDFEGraphBarHeights(); - - - // Disable/enable height transitions for the CDFE graph bars - this._setCDFEGraphBarHeightTransitions(!animateBars); -} - -FuelConsumptionCtrl.prototype._resetCDFEGraphRight = function(animateBars) -{ -// log.debug("FuelConsumptionCtrl: _resetCDFEGraph() called: animateBars = " + animateBars); - - // Make sure left transitions are OFF for the CDFE graph active area while we redraw it - this.CDFEGraphAreaRight.style.OTransition = 'none'; - - if(this.properties.ctrlStyle === 'hevstyle') - { - this.CDFEDiscGraphAreaRight.style.OTransition = 'none'; - } - - // Enable/disable height transitions for the CDFE graph bars - this._setCDFEGraphBarHeightTransitionsRight(animateBars); - - if(this.properties.ctrlStyle === 'hevstyle') - { - for(var i = 0; i < 5; i++) - { - var bar = document.getElementById('CDFEBarRight'+(i+1)); - var disc = document.getElementById('CDFEDiscBarRight' +(i+1)); - if(this._CDFEEvModeRight[i] && bar) - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreGreenRight'; - disc.className = 'FuelConsumptionCtrlHevCDFEDiscGraphCoreGreenRight'; - } - else - { - bar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreRight'; - disc.className = 'FuelConsumptionCtrlHevCDFEDiscGraphCoreRight'; - } - } - } - - - // Reposition the CDFE graph active area & reconstruct the bar/line graph - // (should be no visible difference afterwards) - this.CDFEGraphAreaRight.style.left = '0px'; - if(this.properties.ctrlStyle === 'hevstyle') - { - this.CDFEDiscGraphAreaRight.style.left = '0px'; - } - this._setCDFEGraphBarHeightsRight(); - - // Disable/enable height transitions for the CDFE graph bars - this._setCDFEGraphBarHeightTransitionsRight(!animateBars); -} - -/* - * Callback function for removing the animation on the CDFE line graph at the end of its fade-in - */ -FuelConsumptionCtrl.prototype._onCDFELineFadeAnimationEnd = function(e) -{ -// log.debug("FuelConsumptionCtrl: _onCDFELineFadeAnimationEnd() called"); - - // Remove the event listener that got us here - this.CDFELineGraphCanvas.removeEventListener('oTransitionEnd', this._cbCDFELineFadeAnimationEnd, false); - - // Stop propagating the event - e.stopPropagation(); - - // Disable the line graph fade animation - this._setCDFELineGraphFadeTransitions(false); -} - -/* - * Callback function for resetting the CDFE graph at the end of a slide-left (insertion) animation - */ -FuelConsumptionCtrl.prototype._onCDFELeftAnimationEnd = function(e) -{ -// log.debug("FuelConsumptionCtrl: _onCDFELeftAnimationEnd() called..."); - - // Remove the event listener that got us here - this.CDFEGraphArea.removeEventListener('oTransitionEnd', this._cbCDFELeftAnimationEnd, false); - - // Stop propagating the event - e.stopPropagation(); - - // We're no longer in the transition - this._CDFELineGraphInTransition = false; - - // Reset the CDFE graph without bar animations - this._resetCDFEGraph(false); -} - - -/************************************ New Function Added************************************************/ -FuelConsumptionCtrl.prototype._onCDFELeftAnimationEndRight = function(e) -{ -// log.debug("FuelConsumptionCtrl: _onCDFELeftAnimationEndRight() called..."); - - // Remove the event listener that got us here - this.CDFEGraphAreaRight.removeEventListener('oTransitionEnd', this._cbCDFELeftAnimationEndRight, false); - - // Stop propagating the event - e.stopPropagation(); - - // We're no longer in the transition - this._CDFELineGraphInTransition = false; - - // Reset the CDFE graph without bar animations - this._resetCDFEGraph(false); -} -/************************************End of New Function Added************************************************/ - - -/*********************************************************/ -/* Utility functions for the CFER graph & its animations */ -/*********************************************************/ - -/* - * Utility function to add axis labels to the CFER graphadd - */ -FuelConsumptionCtrl.prototype._addCFERGraphAxisLabels = function(xDiv, yDiv) -{ -// log.debug("FuelConsumptionCtrl: _addCFERGraphAxisLabels() called..."); - - var leftInc = this._CSSConstants["CFERGraphBarWidth"] + - this._CSSConstants["CFERGraphBarSpacing"]; - var currentLeft = this._CSSConstants["CFERGraphBarMargin"]; - - for (var i = 0; i <= this._currentCFERDataIdx; i++) - { - var span = document.createElement('span'); - - span.style.position = 'absolute'; - span.style.left = currentLeft + 'px'; - span.style.width = this._CSSConstants["CFERGraphBarWidth"] + 'px'; - span.style.textAlign = 'center'; - - if (i === (this._currentCFERDataIdx - 1)) - { - this.properties.cumulativeFuelConfig.xAxisLabelText = - this._translateString(this.properties.cumulativeFuelConfig.xAxisLabelId, - this.properties.cumulativeFuelConfig.xAxisLabelText, - this.properties.subMap); - span.innerHTML = this._stringToHTML(this.properties.cumulativeFuelConfig.xAxisLabelText); - span.style.marginLeft = '-8px'; - span.style.width = '71px'; - } - else - { - if(i != this._currentCFERDataIdx) - { - span.innerHTML = (this._currentCFERDataIdx - i) + ''; - } - - } - - - currentLeft += leftInc; - xDiv.appendChild(span); - } - - - this.yLimitValueLabelCFER = document.createElement('span'); - this.yLimitValueLabelCFER.innerHTML = this.properties.cumulativeFuelConfig.yAxisLimitValue; - yDiv.appendChild(this.yLimitValueLabelCFER); - - var yZeroLabel = document.createElement('span'); - this.properties.cumulativeFuelConfig.yAxisLabelText = - this._translateString(this.properties.cumulativeFuelConfig.yAxisLabelId, - this.properties.cumulativeFuelConfig.yAxisLabelText, - this.properties.subMap); - yZeroLabel.innerHTML = this._stringToHTML(this.properties.cumulativeFuelConfig.yAxisLabelText); - yZeroLabel.style.position = 'absolute'; - yZeroLabel.style.width = '60px'; - if(this.properties.ctrlStyle === "hevstyle") - { - yZeroLabel.style.top = '90px'; - } - else - { - yZeroLabel.style.top = (this._CSSConstants["CFERGraphVisibleHeight"] - 47) + 'px'; - } - this.yZeroLabelCFER = yZeroLabel; - yDiv.appendChild(yZeroLabel); -} - -/* - * Utility function to set the horizontal positions of the CFER graph bars - */ -FuelConsumptionCtrl.prototype._setCFERGraphBarPositions = function() -{ -// log.debug("FuelConsumptionCtrl: _setCFERGraphBarPositions() called..."); - - var leftInc = this._CSSConstants["CFERGraphBarWidth"] + - this._CSSConstants["CFERGraphBarSpacing"]; - var currentLeft = this._CSSConstants["CFERGraphBarMargin"]; - - for (var i = 1; i <= this._totalCFERBars; i++) - { - var bar = document.getElementById('CFERBar' + i); - if (bar) - { - bar.style.left = currentLeft + 'px'; - } - - currentLeft += leftInc; - } -} - -/* - * Utility function to enable/disable height transitions for the CFER graph bars - * (except the "hidden" new value bar) - */ -FuelConsumptionCtrl.prototype._setCFERGraphBarHeightTransitions = function(isEnabled) -{ -// log.debug("FuelConsumptionCtrl: _setCFERGraphBarHeightTransitions() called: isEnabled = " + isEnabled); - - var transitionStr; - - // TODO: Figure out why this needs to be backwards to work! - if (!isEnabled) - { - transitionStr = "height 0.6s ease 0s"; - } - else - { - transitionStr = "none"; - } - - for (var i = 0; i <= this._currentCFERDataIdx; i++) - { - var bar = document.getElementById('CFERBar' + (i + 1)); - if (bar) - { - bar.style.OTransition = transitionStr; - if(i==5) - { - bar.style.OTransition = "none"; - } - } - } -} - -/* - * Utility function to set the height of single CFER graph bar (e.g. the just-inserted one) - */ -FuelConsumptionCtrl.prototype._setCFERGraphBarHeight = function(barIdx) -{ -// log.debug("FuelConsumptionCtrl: _setCFERGraphBarHeight() called: barIdx = " + barIdx); - - var bar = document.getElementById('CFERBar' + (barIdx + 1)); - if (bar) - { - - bar.style.height = this._scaleDataToGraphY(this._CSSConstants["CFERGraphVisibleHeight"], - this._CFERGraphBarValues[barIdx], - this.properties.cumulativeFuelConfig.yAxisLimitValue, - false) + 'px'; - - } -} - -FuelConsumptionCtrl.prototype._setCFERGraphBarHeightNew = function(barIdx) -{ -// log.debug("FuelConsumptionCtrl: _setCFERGraphBarHeight() called: barIdx = " + barIdx); - - var bar = document.getElementById('CFERBar' + (barIdx + 1)); - if (bar) - { - - bar.style.height = this._scaleDataToGraphY(this._CSSConstants["CFERGraphVisibleHeight"], - this._CFERGraphBarValues[barIdx + 1], - this.properties.cumulativeFuelConfig.yAxisLimitValue, - false) + 'px'; - - // Set the height of the current bar value to retain its display positioon on top of current bar - this.CFERCurrentBarValue.style.height = this._scaleDataToGraphY(this._CSSConstants["CFERGraphVisibleHeight"], - this._CFERGraphBarValues[barIdx + 1], - this.properties.cumulativeFuelConfig.yAxisLimitValue, - false) + 'px'; - } -} - - - -/* - * Utility function to set the heights of all of the CFER graph bars - */ -FuelConsumptionCtrl.prototype._setCFERGraphBarHeights = function() -{ -// log.debug("FuelConsumptionCtrl: _setCFERGraphBarHeights() called..."); - - // Cache reused values - var graphHeight = this._CSSConstants["CFERGraphVisibleHeight"]; - var yLimit = this.properties.cumulativeFuelConfig.yAxisLimitValue; - - for (var i = 0; i < this._totalCFERBars; i++) - { - var bar = document.getElementById('CFERBar' + (i + 1)); - if (bar) - { - bar.style.height = this._scaleDataToGraphY(graphHeight, - this._CFERGraphBarValues[i], - yLimit, - false) + 'px'; - } - } -} - -/* - * Utility function for resetting the CFER graph - * (redraw it with the "new" bar hidden on the right-hand side) - */ -FuelConsumptionCtrl.prototype._resetCFERGraph = function(animateBars) -{ -// log.debug("FuelConsumptionCtrl: _resetCFERGraph() called: animateBars = " + animateBars); - - // Make sure left transitions are OFF for the CFER graph active area while we redraw it - this.CFERGraphArea.style.OTransition = 'none'; - - // Enable/disable height transitions for the CFER graph bars - this._setCFERGraphBarHeightTransitions(animateBars); - - // Reposition the CFER graph active area & reconstruct the bar graph - // (should be no visible difference afterwards) - this.CFERGraphArea.style.left = '0px'; - this._setCFERGraphBarHeights(); - - // Disable/enable height transitions for the CFER graph bars - this._setCFERGraphBarHeightTransitions(!animateBars); -} - -/* - * Callback function for resetting the CFER graph at the end of a slide-left (insertion) animation - */ -FuelConsumptionCtrl.prototype._onCFERLeftAnimationEnd = function(e) -{ -// log.debug("FuelConsumptionCtrl: _onCFERLeftAnimationEnd() called..."); - - // Remove the event listener that got us here - this.CFERGraphArea.removeEventListener('oTransitionEnd', this._cbCFERLeftAnimationEnd, false); - - // Stop propagating the event - e.stopPropagation(); - - // Reset the CFER graph without bar animations - this._resetCFERGraph(false); -} - - -/***************************/ -/* Other utility functions */ -/***************************/ - -/* - * Utility function to convert a graph's data point to a Y-coordinate - */ -FuelConsumptionCtrl.prototype._scaleDataToGraphY = function(maxY, dataValue, maxDataValue, invertY) -{ -// log.debug("FuelConsumptionCtrl: _scaleDataToGraphY() called: maxY = " + maxY + -// "dataValue = " + dataValue + ", maxDataValue = " + maxDataValue + -// "invertY = " + invertY); - - var yVal = Math.floor(dataValue / maxDataValue * maxY); - - if (invertY) - { - yVal = maxY - yVal; - } - - return yVal; -} - -/* - * Callback for "Switch View" button selections -- when called, trigger the - * configured application callback. - */ -FuelConsumptionCtrl.prototype._switchViewButtonHandler = function(buttonObj, appData, params) -{ -// log.debug("FuelConsumptionCtrl: _onCFERLeftAnimationEnd() called: buttonObj = " + buttonObj + -// ", appData = " + appData + ", params = " + params); - - if (typeof(this.properties.switchViewButtonCallback) === "function") - { - this.properties.switchViewButtonCallback(this, appData, null); - } - else - { - log.warn("FuelConsumptionCtrl: no valid switchViewButtonCallback configured"); - } -} - -/******************/ -/* Public Methods */ -/******************/ - -FuelConsumptionCtrl.prototype.initializeCurrentDriveFuelGraph = function(initialBarValues) -{ - log.debug("FuelConsumptionCtrl: initializeCurrentDriveFuelGraph() called: initialBarValues = " + - initialBarValues); - if (initialBarValues) - { - // Initial bar values are in youngest-first order, while displayed values are - // in left-to-right order (oldest first). Copy the initialBarValues array to - // this._CDFEGraphBarValues, reversing the order & initializing any omitted - // data to zero. - for (var ibvIdx = 0; ibvIdx <= this._youngestCDFEDataIdx; ibvIdx++) - { - if (initialBarValues[ibvIdx]) - { - this._CDFEGraphBarValues[this._youngestCDFEDataIdx - ibvIdx] = initialBarValues[ibvIdx]; - } - else - { - this._CDFEGraphBarValues[this._youngestCDFEDataIdx - ibvIdx] = 0; - } - } - - // Initialize the "hidden" slot for new data - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; - } - - // Initialize the CDFE graph with bar animations - this._resetCDFEGraph(true); - -} - -// to initialise the HEV fuel eco bar graph with the disc -FuelConsumptionCtrl.prototype.initialiseHEVFuelGraph = function(initialBarValues, intialDiscValues, initialEVModes, initialHalfDiscs) -{ - - if (initialBarValues) - { - // Initial bar values are in youngest-first order, while displayed values are - // in left-to-right order (oldest first). Copy the initialBarValues array to - // this._CDFEGraphBarValues, reversing the order & initializing any omitted - // data to zero. - for (var ibvIdx = 0; ibvIdx <= this._youngestCDFEDataIdx; ibvIdx++) - { - if ((initialBarValues[ibvIdx] !== null) && (initialBarValues[ibvIdx] !== undefined)) - { - this._CDFEGraphBarValues[this._youngestCDFEDataIdx - ibvIdx] = initialBarValues[ibvIdx]; - //this._initialHalfDisc[this._youngestCDFEDataIdx - ibvIdx] = initialHalfDiscs[ibvIdx]; - this._initialEVMode[this._youngestCDFEDataIdx - ibvIdx] = initialEVModes[ibvIdx]; - } - else - { - this._CDFEGraphBarValues[this._youngestCDFEDataIdx - ibvIdx] = 0; - //this._initialHalfDisc[this._youngestCDFEDataIdx - ibvIdx] = 0; - this._initialEVMode[this._youngestCDFEDataIdx - ibvIdx] = false; - } - if(intialDiscValues) - { - if(initialHalfDiscs[ibvIdx]) - { - this._CDFEDiscValues[this._youngestCDFEDataIdx - ibvIdx] = intialDiscValues[ibvIdx] * 13 + 7; - } - else - { - this._CDFEDiscValues[this._youngestCDFEDataIdx - ibvIdx] = intialDiscValues[ibvIdx] * 13; - } - } - else - { - this._CDFEDiscValues[this._youngestCDFEDataIdx - ibvIdx] = 0; - } - } - - // Initialize the "hidden" slot for new data - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; - this._CDFEDiscValues[this._newCDFEDataIdx] = 0; - } - - // Initialize the CDFE graph with bar animations - this._resetCDFEGraph(true); - -} - - -FuelConsumptionCtrl.prototype.initializeCurrentDriveFuelGraphRight = function(initialBarValues) -{ - if (initialBarValues) - { - // Initial bar values are in youngest-first order, while displayed values are - // in left-to-right order (oldest first). Copy the initialBarValues array to - // this._CDFEGraphBarValues, reversing the order & initializing any omitted - // data to zero. - for (var ibvIdx = 0; ibvIdx <= this._youngestCDFEDataIdxRight; ibvIdx++) - { - if (initialBarValues[ibvIdx]) - { - this._CDFEGraphBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = initialBarValues[ibvIdx]; - } - else - { - this._CDFEGraphBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = 0; - } - - } - - // Initialize the "hidden" slot for new data - this._CDFEGraphBarValuesRight[this._newCDFEDataIdxRight] = 0; - } - - // Initialize the CDFE graph with bar animations - this._resetCDFEGraphRight(true); - -} - -FuelConsumptionCtrl.prototype.initializeHEVCurrentDriveFuelGraphRight = function(initialBarValues, initialLDiscValues, initialHalfDiscs, evModes) -{ - if (initialBarValues) - { - // Initial bar values are in youngest-first order, while displayed values are - // in left-to-right order (oldest first). Copy the initialBarValues array to - // this._CDFEGraphBarValues, reversing the order & initializing any omitted - // data to zero. - for (var ibvIdx = 0; ibvIdx <= this._youngestCDFEDataIdxRight; ibvIdx++) - { - //if (initialBarValues[ibvIdx]) - if (typeof(initialBarValues[ibvIdx]) === 'number') - { - this._CDFEGraphBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = initialBarValues[ibvIdx]; - //if(initialHalfDiscs[ibvIdx]) - if(initialHalfDiscs[ibvIdx]=== true) - { - this._CDFEDiscBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = initialLDiscValues[ibvIdx] * 13 + 7; - } - else if(initialHalfDiscs[ibvIdx]=== false) - { - this._CDFEDiscBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = initialLDiscValues[ibvIdx] * 13; - } - this._CDFEEvModeRight[this._youngestCDFEDataIdxRight - ibvIdx] = evModes[ibvIdx]; - } - else - { - this._CDFEGraphBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = 0; - this._CDFEDiscBarValuesRight[this._youngestCDFEDataIdxRight - ibvIdx] = 0; - } - - } - - // Initialize the "hidden" slot for new data - this._CDFEGraphBarValuesRight[this._newCDFEDataIdxRight] = 0; - this._CDFEDiscBarValuesRight[this._newCDFEDataIdxRight] = 0; - } - - // Initialize the CDFE graph with bar animations - this._resetCDFEGraphRight(true); -} - - -FuelConsumptionCtrl.prototype.insertCurrentDriveFuelGraph = function(currentBarValue) -{ - log.debug("FuelConsumptionCtrl: insertCurrentDriveFuelGraph() called: currentBarValue = " + - currentBarValue); - - // Add the new bar value to the data set - if (typeof(currentBarValue) === 'number') - { - this._CDFEGraphBarValues[this._newCDFEDataIdx] = currentBarValue; - } - else - { - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; - } - - - // Update the new value's bar in the CDFE graph - this._setCDFEGraphBarHeight(this._newCDFEDataIdx); - - - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCore'; - - // Turn on left transitions for the CDFE graph (for the next animation) - this.CDFEGraphArea.style.OTransition = 'left 0.6s ease 0s'; - - - // Attach an event listener to the CDFE graph area so we can detect when - // the slide animation ends (and reset the graph for the next animation) - this.CDFEGraphArea.addEventListener('oTransitionEnd', this._cbCDFELeftAnimationEnd, false); - - // Set the graph's position, triggering the animation - // ("normal" left - (width of one bar + bar spacing)) - this.CDFEGraphArea.style.left = '-' + (this._CSSConstants["CDFEGraphBarWidth"] + - this._CSSConstants["CDFEGraphBarSpacing"]) + 'px'; - this._CDFELineGraphInTransition = true; - - // Update the data sets to discard the oldest historical data - for (var i = 0; i <= this._youngestCDFEDataIdx; i++) - { - this._CDFEGraphBarValues[i] = this._CDFEGraphBarValues[i + 1]; - } - - // Re-initialize the "hidden" slot for new data - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; -} - -// inser new bar graph for HEV disc bars -FuelConsumptionCtrl.prototype.insertHEVFuelGraph = function(currentBarValue, currentDiscs, currentHEVMode, currentHalfDisc) -{ - // Add the new bar value to the data set - if (typeof(currentBarValue) === 'number') - { - this._CDFEGraphBarValues[this._newCDFEDataIdx] = currentBarValue; - //if(currentHalfDisc) - if(currentHalfDisc===true) - { - this._CDFEDiscValues[this._newCDFEDataIdx] = currentDiscs * 13 + 7; - } - else if(currentHalfDisc===false) - { - this._CDFEDiscValues[this._newCDFEDataIdx] = currentDiscs * 13; - } - this._initialEVMode[this._newCDFEDataIdx] = currentHEVMode; - } - else - { - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; - this._CDFEDiscValues[this._newCDFEDataIdx] = 0; - this._initialEVMode[this._newCDFEDataIdx] = false; - } - - if(currentHEVMode) - { - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrentGreen'; - this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEDiscBg_Green'; - } - else - { - // this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCore'; - // this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCore'; - } - // Update the new value's bar in the CDFE graph - this._setCDFEGraphBarHeight(this._newCDFEDataIdx,currentHEVMode); - - // Turn on left transitions for the CDFE graph (for the next animation) - this.CDFEGraphArea.style.OTransition = 'left 0.6s ease 0s'; - this.CDFEDiscGraphArea.style.OTransition = 'left 0.6s ease 0s'; - - // Attach an event listener to the CDFE graph area so we can detect when - // the slide animation ends (and reset the graph for the next animation) - this.CDFEGraphArea.addEventListener('oTransitionEnd', this._cbCDFELeftAnimationEnd, false); - - // Set the graph's position, triggering the animation - // ("normal" left - (width of one bar + bar spacing)) - this.CDFEGraphArea.style.left = '-' + (this._CSSConstants["CDFEGraphBarWidth"] + - this._CSSConstants["CDFEGraphBarSpacing"]) + 'px'; - - this.CDFEDiscGraphArea.style.left = '-' + (this._CSSConstants["CDFEGraphBarWidth"] + - this._CSSConstants["CDFEGraphBarSpacing"]) + 'px'; - - this._CDFELineGraphInTransition = true; - // Update the data sets to discard the oldest historical data - for (var i = 0; i <= this._youngestCDFEDataIdx; i++) - { - this._CDFEGraphBarValues[i] = this._CDFEGraphBarValues[i + 1]; - this._CDFEDiscValues[i] = this._CDFEDiscValues[i + 1]; - this._initialEVMode[i] = this._initialEVMode[i+1]; - } - - //if(currentHEVMode) - if(this._initialEVMode[8]) - { - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCoreCurrentGreen'; - this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEDiscBg_Green'; - } - else - { - this.CDFECurrentBar.className = 'FuelConsumptionCtrlCDFEBarGraphCore'; - this.CDFECurrentDiscBar.className = 'FuelConsumptionCtrlHevCDFEBarGraphCore'; - } - // Re-initialize the "hidden" slot for new data - this._CDFEGraphBarValues[this._newCDFEDataIdx] = 0; - this._CDFEDiscValues[this._newCDFEDataIdx] = 0; -} - - -FuelConsumptionCtrl.prototype.insertCurrentDriveFuelGraphRight = function(currentBarValue) -{ - log.debug("FuelConsumptionCtrl: insertCurrentDriveFuelGraph() called: currentBarValue = " + - currentBarValue + ", currentLineValue = "); - - // Add the new bar value to the data set - if (typeof(currentBarValue) === 'number') - { - this._CDFEGraphBarValuesRight[this._newCDFEDataIdxRight] = currentBarValue; - } - else - { - this._CDFEGraphBarValuesRight[this._newCDFEDataIdxRight] = 0; - } - - // Update the new value's bar in the CDFE graph - this._setCDFEGraphBarHeightRight(this._newCDFEDataIdxRight); - - // Turn on left transitions for the CDFE graph (for the next animation) - this.CDFEGraphAreaRight.style.OTransition = 'left 0.6s ease 0s'; - - // Attach an event listener to the CDFE graph area so we can detect when - // the slide animation ends (and reset the graph for the next animation) - this.CDFEGraphAreaRight.addEventListener('oTransitionEnd', this._cbCDFELeftAnimationEndRight, false); - - // Set the graph's position, triggering the animation - // ("normal" left - (width of one bar + bar spacing)) - this.CDFEGraphAreaRight.style.left = '-' + (this._CSSConstants["CDFEGraphBarWidthRight"] + - this._CSSConstants["CDFEGraphBarSpacingRight"]) + 'px'; - - // Update the data sets to discard the oldest historical data - for (var i = 0; i <= this._youngestCDFEDataIdxRight; i++) - { - this._CDFEGraphBarValuesRight[i] = this._CDFEGraphBarValuesRight[i + 1]; - } - - // Re-initialize the "hidden" slot for new data - this._CDFEGraphBarValuesRight[this._newCDFEDataIdx] = 0; -} - -FuelConsumptionCtrl.prototype.initializeCumulativeFuelGraph = function(initialBarValues) -{ - log.debug("FuelConsumptionCtrl: initializeCumulativeFuelGraph() called: initialBarValues = " + - initialBarValues); - - if (initialBarValues) - { - // Initial bar values are in youngest-first order, while displayed values are - // in left-to-right order (oldest first). Copy the initialBarValues array to - // this._CFERGraphBarValues, reversing the order & initializing any omitted - // data to zero. - for (var ibvIdx = 0; ibvIdx <= this._youngestCFERDataIdx; ibvIdx++) - { - if (initialBarValues[ibvIdx]) - { - this._CFERGraphBarValues[this._youngestCFERDataIdx - ibvIdx] = initialBarValues[ibvIdx]; - } - else - { - this._CFERGraphBarValues[this._youngestCFERDataIdx - ibvIdx] = 0; - } - } - - // Initialize the "hidden" slot for new data - this._CFERGraphBarValues[this._newCFERDataIdx] = 0; - } - - // Initialize the CFER graph with bar animations - this._resetCFERGraph(true); -} - -FuelConsumptionCtrl.prototype.insertCurrentCumulativeFuelGraph = function(newResetValue) -{ - var currentBarValue = 0.0; - // Add the new bar value to the data set - if (typeof(currentBarValue) === 'number') - { - this._CFERGraphBarValues[this._newCFERDataIdx] = newResetValue; - } - else - { - this._CFERGraphBarValues[this._newCFERDataIdx] = 0.0; - } - - // Update the new value's bar in the CFER graph - this._setCFERGraphBarHeight(this._newCFERDataIdx); - - // Turn on left transitions for the CFER graph (for the next animation) - this.CFERGraphArea.style.OTransition = 'left 0.6s ease 0s'; - - // Attach an event listener to the CFER graph area so we can detect when - // the slide animation ends (and reset the graph for the next animation) - this.CFERGraphArea.addEventListener('oTransitionEnd', this._cbCFERLeftAnimationEnd, false); - - // Set the graph's position, triggering the animation - // ("normal" left - (width of one bar + bar spacing)) - this.CFERGraphArea.style.left = '-' + (this._CSSConstants["CFERGraphBarWidth"] + - this._CSSConstants["CFERGraphBarSpacing"]) + 'px'; - - // Update the data set to discard the oldest historical data - for (var i = 0; i <= this._currentCFERDataIdx; i++) - { - this._CFERGraphBarValues[i] = this._CFERGraphBarValues[i + 1]; - } - - // Re-initialize the "hidden" slot for new data - this._CFERGraphBarValues[this._newCFERDataIdx] = 0; -} - -FuelConsumptionCtrl.prototype.updateCurrentCumulativeFuelGraph = function(currentBarValue, unitRange) -{ - log.debug("FuelConsumptionCtrl: updateCurrentCumulativeFuelGraph() called: currentBarValue = " + - currentBarValue); - - // Save the current bar value - var tempNumber = currentBarValue; - - if(currentBarValue == null) - { - currentBarValue = 0; - tempNumber = '--.-'; - } - else if( currentBarValue == 0) - { - tempNumber = '0.0'; - } - - currentBarValue = parseFloat(currentBarValue); - this._cumulativeBarValue = tempNumber; - - // Check if current bar value exceeds the unit range - if(currentBarValue > unitRange) - { - currentBarValue = unitRange; - } - - if (typeof(currentBarValue) === 'number') - { - this._CFERGraphBarValues[10] = currentBarValue; - } - else - { - this._CFERGraphBarValues[10] = 0.0; - tempNumber = '0.0'; - } - - - - var currentValueDiv = document.getElementById("CFERBarValueCurrent"); - currentValueDiv.className = 'FuelConsumptionCtrlCFERBarValueCurrent'; - - currentValueDiv.innerHTML = this._stringToHTML(tempNumber); - // Update the current bar - var bar = document.getElementById('CFERBar' + 10); - if (bar) - { - // Make sure transitions are enabled for the current bar - bar.style.OTransition = 'height 0.6s ease 0s'; - this.CFERCurrentBarValue.style.OTransition = 'height 0.6s ease 0s'; - // Set the bar's height - this._setCFERGraphBarHeightNew(9); - } -} - -FuelConsumptionCtrl.prototype.setFuelEfficiency = function(fuelEfficiencyData) -{ - log.debug("FuelConsumptionCtrl: setFuelEfficiency() called: fuelEfficiency = " + - fuelEfficiencyData.fuelEfficiency + " " + - fuelEfficiencyData.fuelEfficiencyUnit); - - // Purge any "remembered" data - this.properties.fuelEfficiencyData = new Object(); - - if (fuelEfficiencyData && - (fuelEfficiencyData.fuelEfficiency || fuelEfficiencyData.fuelEfficiency == 0) && - fuelEfficiencyData.fuelEfficiencyUnit) - { - // Remember the passed-in data - this.properties.fuelEfficiencyData.fuelEfficiency = fuelEfficiencyData.fuelEfficiency; - this.properties.fuelEfficiencyData.fuelEfficiencyUnit = fuelEfficiencyData.fuelEfficiencyUnit; - - // Translate the fuel efficiency unit (e.g. "MPG" or "KML") into a readable unit string (e.g. "mpg" or "km/L") - var fuelEfficiencyUnitText = this._translateString(this.properties.fuelEfficiencyData.fuelEfficiencyUnit, - this.properties.fuelEfficiencyData.fuelEfficiencyUnit, - this.properties.subMap); - - // Set the displayed data/unit string - this.fuelEfficiencyValue.innerHTML = this.properties.fuelEfficiencyData.fuelEfficiency; - - this.fuelEfficiencyUnit.innerHTML = fuelEfficiencyUnitText; - - } - else - { - log.warn("Invalid fuel efficiency data received -- blanking display"); - - this.fuelEfficiencyValue.innerHTML = "--.-"; - this.fuelEfficiencyUnit.innerHTML = ""; - } -} - -FuelConsumptionCtrl.prototype.setEvDrvDistance = function(evObj) -{ - - var driveDisUnit = this._translateString(evObj.unitId, evObj.unitId, this.properties.subMap); - this.fuelEfficiencyHevDistanceUnit.innerHTML = this._stringToHTML(driveDisUnit); - - if(evObj.driveDistance !== null) - { - this.fuelEfficiencyHevDistanceValue.innerHTML = evObj.driveDistance; - } - else - { - this.fuelEfficiencyHevDistanceValue.innerHTML = "--.-" ; - } - - if(evObj.percentValue !== null) - { - this.fuelEfficiencyHevPercentValue.innerHTML = "("+evObj.percentValue+"%)"; - } - else - { - this.fuelEfficiencyHevPercentValue.innerHTML = "(--)" ; - } -} - -FuelConsumptionCtrl.prototype.setUnitInformation = function(obj) -{ - this.properties.cumulativeFuelConfig.yAxisLimitValue = obj.yAxisLimitValue; - this.properties.currentFuelConfig.yAxisLimitValue = obj.yAxisLimitValue; - this.properties.cumulativeFuelConfig.yAxisLabelId = obj.yAxisLabelId; - this.properties.currentFuelConfig.yAxisLabelId = obj.yAxisLabelId; - - this.properties.cumulativeFuelConfig.yAxisLabelText = - this._translateString(this.properties.cumulativeFuelConfig.yAxisLabelId, - this.properties.cumulativeFuelConfig.yAxisLabelText, - this.properties.subMap); - - this.properties.currentFuelConfig.yAxisLabelText = - this._translateString(this.properties.currentFuelConfig.yAxisLabelId, - this.properties.currentFuelConfig.yAxisLabelText, - this.properties.subMap); - - this.yZeroLabelCDFE.innerHTML = this.properties.currentFuelConfig.yAxisLabelText; - this.yLimitValueLabelCDFE.innerHTML = this.properties.currentFuelConfig.yAxisLimitValue; - this.yZeroLabelCFER.innerHTML = '
    ' + this.properties.cumulativeFuelConfig.yAxisLabelText; - this.yLimitValueLabelCFER.innerHTML = this.properties.cumulativeFuelConfig.yAxisLimitValue; -} -/* - * toggle Ump panel | status == "hidePanel" OR status == "showPanel" - */ -FuelConsumptionCtrl.prototype.toggleUmpPanel = function(status) -{ - if(status == "hidePanel") - { - this.umpPanelDiv.className = "UmpPanelDivDisable"; - this.umpCtrl.setRetracted(true); - this._umpPanelStatus = false; - } - else if(status == "showPanel") - { - this.umpPanelDiv.className = "UmpPanelDivEnable"; - this.umpCtrl.setRetracted(false); - this._umpPanelStatus = true; - } - else - { - log.warn("_triggerUmpPanel called with an unxpected argument: "+status); - } -} - -/** - * Context capture - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ - -FuelConsumptionCtrl.prototype.getContextCapture = function() -{ - log.debug("FuelConsumptionCtrl: getContextCapture() called..."); - var controlContextCapture = this.umpCtrl.getContextCapture(); - return controlContextCapture; -}; - - -FuelConsumptionCtrl.prototype.finishPartialActivity = function() -{ - log.debug("FuelConsumptionCtrl: finishPartialActivity() called..."); - this.umpCtrl.finishPartialActivity(); -} - - -/** - * Context restore - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ - -FuelConsumptionCtrl.prototype.restoreContext = function(controlContextCapture) -{ - log.debug("EcoEffectCtrl: restoreContext() "+ controlContextCapture); - this.umpCtrl.restoreContext(controlContextCapture); -}; - - -/* - * Forward all multicontroller events to our only child control, the "SwitchView" button - */ -FuelConsumptionCtrl.prototype.handleControllerEvent = function(eventId) -{ - log.debug("FuelConsumptionCtrl: handleControllerEvent() called: " + eventId); - - // Pass-through - if(this._umpPanelStatus && this.umpCtrl) - { - response = this.umpCtrl.handleControllerEvent(eventId); - return response; - } - else if(!this._umpPanelStatus && this._switchViewButtonCtrl) - { - response = this._switchViewButtonCtrl.handleControllerEvent(eventId); - return response; - } -} - -FuelConsumptionCtrl.prototype.cleanUp = function() -{ - // Clean up the "Switch View" child button control - if (this._switchViewButtonCtrl) - { - this._switchViewButtonCtrl.cleanUp(); - } - if(this.umpCtrl) - { - this.umpCtrl.cleanUp(); - } -} - -framework.registerCtrlLoaded("FuelConsumptionCtrl"); \ No newline at end of file diff --git a/app/files/tweaks/config_org/androidauto/usr/lib/gstreamer-0.10/libgstalsa.so b/app/files/tweaks/config_org/androidauto/usr/lib/gstreamer-0.10/libgstalsa.so deleted file mode 100644 index 9a220865fd01bcd8020b934841793cf84be439ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40428 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 BTq*zn diff --git a/app/files/tweaks/config_org/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.58.js b/app/files/tweaks/config_org/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.58.js deleted file mode 100644 index 8bf6ddd..0000000 --- a/app/files/tweaks/config_org/list-loop/jci/gui/common/controls/List2/js/List2Ctrl.58.js +++ /dev/null @@ -1,13702 +0,0 @@ -/* - Copyright 2012 by Johnson Controls - __________________________________________________________________________ - - Filename: List2Ctrl.js - __________________________________________________________________________ - - Project: JCI-IHU - Language: EN - Author: avorotp - Date: - __________________________________________________________________________ - - Description: IHU GUI List 2 Control - - Revisions: - v0.1 - Initial revision - __________________________________________________________________________ - -*/ - -log.addSrcFile("List2Ctrl.js", "common"); - -/** - * ========================= - * CONSTRUCTOR - * ========================= - * Standard control constructor - * TAG: framework - * ========================= - * @param {string} - uiaid of the owning app - * @param {html element} - control parent - * @param {string} - control id - * @param {object} - control properties - * @return {List2Ctrl} - */ -function List2Ctrl(uiaId, parentDiv, controlId, properties) -{ - - /* - * --------------------------------------- - * DEFAULT CONTROL CONFIGURATION - * --------------------------------------- - */ - - // set default properties - this.properties = { - - /* CONFIGURATION PROVIDED BY APPS, CONTROLS OR FWK */ - // title config - title : {}, /* {object} If the value of the titleStyle property is “listTitle” this gives the - parameters of the list title – what style it has, what are its elements, etc. */ - titleConfiguration : 'noTitle', /* {string} The style of the top part of the list control. It can be either a textual content, - tabs that can be selected to change the list content, or no title to be shown. */ - - // tabs configuration - tabsButtonConfig : {}, /* {object} If the value of the titleStyle property is “tabsTitle” - this gives the parameters of the tabs control that will appear on the top of the list. */ - - // dataList - dataList : null, /* {object} Preset dataList of the control */ - protectDataList : false, /* {boolean} Wheter the list clones the dataList items array protecting the owning app's private - instance of that array from modifications by the list. */ - - // layout config - inDialog : false, /* {boolean} Indicates whether the list is contained in a dialog. - When set to true, special list control styling is implemented, with 3.5 lines. - The thickItems property must be false if inDialog is true. */ - dialogStyle : null, /* {string} Defines the list style when embedded in a dialog. - Requires inDialog property set to true. */ - numberedList : false, /* {boolean} Whether the numbered chrome arc is shown, with numbers on the left of each list line. */ - - // items config - thickItems : false, /* {boolean} Indicates whether the items in the list will be thin or thick. - Must be set to true if any items in the list are one of the two-line item styles. */ - smallItemText : false, /* {boolean} When True, all B Rank text in single-line item styles will be displayed as C Rank instead */ - listReorder : false, /* {boolean} Indicates whether the items in the list can be reordered by long press and dragging. */ - scrollTo : 0, /* {integer} Set the initial position of the list (where the list is initially scrolled to on display). - It accepts positive integers not exceeding the item count. - When higher number than the item count is provided, it is automatically lowered to the item count. - Requires having a dataList preset in the configuration. - Normally the specified item will be placed at the first visible list position. - However, if the specified item is near the end of the list it may be positioned - farther down to maintain normal “bottom of list” scroll positioning. */ - - focussedItem : 0, /* {integer} Which item has initial focus on list instantiation. - Requires the list to have a dataList preset in the configuration. */ - - hasLetterIndex : false, /* {boolean} Indicates whether the list will have a letter index showing on the right, containing - letters for quick jump to their respective list items (scroll positions) defined in letterIndexData. */ - letterIndexData : [], /* {array} Contains information for the scroll position of each letter as well as the letter label itself. */ - listBackground : null, /* {string} URL for a custom list background */ - - // callbacks - selectCallback : null, /* {function} Called when a list item is selected either by touch or by multicontroller or by voice. */ - longPressCallback : null, /* {function} Called on long press on an item. */ - holdStartCallback : null, /* {function} Called on start of hold (after longPress timeout expires) */ - holdStopCallback : null, /* {function} Called on end of hold (when the finger is lifted) */ - selectDisabledCallback : null, /* {function} Called when a disabled list item is selected. */ - slideCallback : null, /* {function} Called when the slider handle is being dragged on slider items */ - needDataCallback : null, /* {function} Called when the list has reached a point, when being scrolled, - where no more data for rendering the list items is available */ - loadingConfig: { /* {object} gives the app the ability to change the loading text while waiting the fitst items to come */ - loadingText: null, - loadingTextId: "common.Loading", - loadingSubMap: null, - image: null, - }, - - - /* CONFIGURATION USED INTERNALLY BY THE LIST */ - itemHeight : 64, - visibleItems : 6, - itemsBefore : 5, /* {integer} items before the top one */ - itemsAfter : 9, /* {integer} items after and including the top one */ - selectThreshold : 20, - hitTimeout : 0, - letterIndexHeight : 64, - visibleLetterIndexItems : 6, - letterIndexSelectTimeout : 1000, - - eventFilterThreshold : (guiConfig.debugMode) ? 0 : 50, - - longPressTimeout : 1500, - listReorderScrollTimeout : 0, // @SW00155245, needs faster scroll during re-oreder - - // multicontroller hold timeouts and intervals - autoscrollTier1Timeout : 1500, - autoscrollTier2Timeout : 5000, - autoscrollTier1Interval : 500, - autoscrollTier2Interval : 1000, - - hvThreshold : 45 * (Math.PI/180), - - sliderReferencePointRight : 665, - sliderReferencePointLeft : 94, - sliderWidth : 346, // {integer} will be passed to SliderCtrl - sliderHandleWidth : 43, // {integer} will be passed to SliderCtrl - indentOffset : 38, // defined in List2Ctrl_mixins.scss - // open/closed loop handling for sliders - minChangeInterval : 250, // {integer} will be passed to SliderCtrl - settleTime : 1000, // {integer} will be passed to SliderCtrl - rotationIdleDetectTime : 500, // {integer} will be passed to SliderCtrl - - toggleButtonWidth : 120, /* styles CSV-dependent */ - toggleReferencePointRight : 675, /* styles CSV-dependent */ - // open/closed loop handling for toggles - toggleMinChangeInterval : 250, /* {integer} number of ms that must occur between toggle callbacks. This is used for Outgoing Event Filtering */ - toggleSettleTime : 1000, /* {integer} number of ms between when the user last toggles the item, and when the item will - update to its last cached value. This is used for Incoming Event Filtering. */ - checkMinChangeInterval : 250, - checkSettleTime : 1000, - - stepMinChangeInterval : 0, /* {integer} number of ms that must occur between step callbacks. This is used for Outgoing Event Filtering */ - - wrapTextThreshold : 604, /* styles CSV-dependent */ - - poolsize : 15, /* {integer} has to be more than (itemsBefore + itemsAfter), preferably (itemsBefore + itemsAfter + 1) */ - showScrollIndicator : true, - scrollIndicatorMinSize : 20, - scrollIndicatorFadeTimeout : 0, - scrollIndicatorFadeOutDuration : 700, - scrollIndicatorFadeInDuration : 200, - - // flicking - swipeThreshold : 300, - swipeAnimationDuration : 300, - deceleration : 0.0006, - - scrollingDuringLoading : false, - loadingOverlayEnabled : true, - showLoadingOverlayTimeout : 200, /* {integer} the time that needs to pass before showing the loading overlay */ - hideLoadingOverlayTimeout : 0, /* {integer} the min time that needs to have passed before hiding the loading overlay */ - enableSecondaryItemRequest : true, - enableItemRequestOnScroll : false, - secondaryRequestLimit : 5, /* {integer} number of retries to get needed data to fill all the elements in the DOM */ - needDataTimeout : 3000, /* {integer} number of ms to wait before unlocking the list after needDataCallback is fired */ - requestSize : 20, /* has to be more than the poolsize, ideally poolsize + 5 */ - - }; - - // Merge with user configuration - for (var i in properties) - { - this.properties[i] = properties[i]; - } - - - /* - * --------------------------------------- - * INTERNAL CONTROL CONFIGURATION - * The following configuration should not be changed by - * the application or some other place outside this control. - * --------------------------------------- - */ - - /* - * the following list item types have a secondary multicontroller behavior - * i.e. when focussed and the user press select, the focus goes to - * an inner subwidget (slider, button or icon) and any subsequent - * multicontroller interaction is on these subwidget. The user - * exits this mode by pressing select again. At this point the - * respective callback should be fired. - */ - this._secondaryMulticontrollerTypes = [ - 'style12', // slider - 'style13', // slider - deprecated - 'styleStep', - 'styleLock', - ]; - - /* - * The following table contains items, that are okay to be displayed, even if they don't contain text. - */ - this._itemsWithNoText = [ - 'style28', - ]; - - /* - * Normally sliders are positioned to the right part of a listItem, and there is text/image on the left. - * So, clicks in different position of the list item have to be treated differently. - * However, for some slider items, that are positioned to the right an exception has to be made, in order - *for them to behave correctly. This table contains such items, and new ones can be added with ease. - */ - this._rightHittableArea = [ - 'style28', - ]; - - if (true === this.properties.inDialog) - { - this.properties.itemHeight = 64; // set item height regardless of the thickItems property - this.properties.thickItems = false; // update thickItems if set wrong - - // set visible items - switch (this.properties.dialogStyle) - { - case 'DialogStyle01' : - this.properties.visibleItems = 4; - break; - case 'DialogStyle02' : - this.properties.visibleItems = 3; - break; - case 'DialogStyle03' : - this.properties.visibleItems = 2; - break; - case 'DialogStyle04' : - this.properties.visibleItems = 5; - break; - default : - log.error('List2: Unsupported dialogStyle property set: ' + this.properties.dialogStyle); - break; - } - } - else - { - - this.properties.itemHeight = (this.properties.thickItems) ? 82 : 64; // set item height - - // set visible items - switch (this.properties.titleConfiguration) - { - case 'tabsTitle' : - this.properties.visibleItems = (this.properties.thickItems) ? 4 : 5; - this.properties.visibleLetterIndexItems = 5; - break; - case 'listTitle' : - switch (this.properties.title.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - case 'style03a' : - this.properties.visibleItems = (this.properties.thickItems) ? 4 : 5; - break; - case 'style05' : - this.properties.visibleItems = (this.properties.thickItems) ? 3 : 4; - break; - case 'style06' : - case 'style07' : - this.properties.visibleItems = (this.properties.thickItems) ? 2 : 3; - break; - case 'style08' : - this.properties.visibleItems = (this.properties.thickItems) ? 3 : 4; - break; - default : - this.properties.visibleItems = (this.properties.thickItems) ? 4 : 5; - break; - } - this.properties.visibleLetterIndexItems = 5; - break; - case 'noTitle' : - this.properties.visibleItems = (this.properties.thickItems) ? 5 : 6; - this.properties.visibleLetterIndexItems = 6; - break; - default : - log.error('Unknown title configuration set: ' + this.properties.titleConfiguration); - } - - } - - /* - * --------------------------------------- - * CONTROL PUBLIC PROPERTIES - * --------------------------------------- - */ - // set list properties - this.id = controlId; // control's id - this.parentDiv = parentDiv; // control's immediate parent DOM element - this.uiaId = uiaId; // uiaId of the owning app - - // list DOM elements - this.divElt = null; // control's container - this.title = null; // control's title - this.titleCanvas = null; // control's title preview image if supplied in the title config - this.mask = null; // control's mask (hides everything outside) - this.scroller = null; // control's main scrolling element - this.scrollIndicatorWrapper = null; // control's scroll indicator wrapper - this.scrollIndicator = null; // control's scroll indicator - this.loading = null; // control's loading item - //this.arc = null; // control's right most arc - this.activeArea = null; // control's hit-test area - this.letterIndexWrapper = null; // control's letter index area wrapper - this.letterIndex = null; // control's letter index area - this.listBackground = null; // control's custom background image - - // tabs - this.tabsCtrl = null; // reference to tabs control - - // animation callbacks - this.scrollerAnimationEndCallback = null; // fired when the scroller animation finishes - this.scrollIndicatorAnimationEndCallback = null; // fired when scrollIndicator animation finishes - this.letterIndexAnimationEndCallback = null; // fired when letter index animation finishes - this.firstFocusAnimationEndCallback = null; // fired when the first focus animation finishes - - // handlers - this.touchHandler = null; // fired on any mouse/touch event - - // dataList and items - this.pool = null; // {object} pool of list items - this.dataList = null; // {object} holds all the list data - this.items = new Array(); // {array} holds currently displayed list items. Usually these extend the visible range - - // letter index - this.letterIndexData = new Array(); // {array} holds letter index data - - /* - * --------------------------------------- - * CONTROL PRIVATE PROPERTIES - * These change a lot during interactions - * --------------------------------------- - */ - this._inDrag = false; // {boolean} indicates whether the list is currently being dragged - this._inScroll = false; // {boolean} indicates whether the list is currently being scrolled - - this._scrollerH = 0; // {integer} height of the scroller - this._maskPositionY = 0; // {integer} position of the mask - this._maskPositionX = 0; // {integer} position of the mask - this._maskH = 0; // {integer} height of the mask - this._maskW = 0; // {integer} width of the mask - this._startY = 0; // {integer} y position of the drag start - this._startX = 0; // {integer} x position of the drag start - this._startTime = 0; // {integer} when the dragging started - this._y = 0; // {integer} current position of the list - this._startItem = -1; // {integer} index of the item when dragging starts - this._startDOMItem = null; // {HMTL element} reference to the HTML element when dragging starts - - // inline buttons - this._startButton = null; // {integer} index of the toggle button that has first gained hit highlight - this._startLockButton = null; // {integer} index of the lock button that has first gained hit highlight - - this._minScrollY = 0; // {integer} top-most position of the list - this._maxScrollY = 0; // {integer} bottom-most position of the list - this._stopSelect = false; // {boolean} indicates whether to stop select (e.g. when the list is scrolling) - - this._initialScrollMode = null; // {string} Carries information about the nature of the initial scroll and focus restore if any - // possible values: 'init', 'config', 'restore' - - this._currentTitle = null; // {object} holds current title object as set with the setTitle method - this._leftBtnStyle = ''; // {string} left button numbers style based on list configuration - - // letter index - this._scrollerHIndex = 0; // {integer} height of the letter index scroller - this._inDragIndex = false; // {boolean} indicates whether the letter index is currently being dragged - this._startIndexY = 0; // {integer} y position of the letter index drag start - this._startIndexX = 0; // {integer} x position of the letter index drag start - this._startTimeIndex = 0; // {integer} when the letter index dragging started - this._yIndex = 0; // {integer} current position of the letter index - this._minScrollYIndex = 0; // {integer} top-most position of the letter index - this._maxScrollYIndex = 0; // {integer} bottom-most position of the letter index - this._topLetterIndex = 0; // {integer} the letter index that is currently on top - this._prevTopLetterIndex = 0; // {integer} the letter index that has been previously at top - - this._trackedEvents = []; // {array} tracks the events - this._indicatorMin = 0; // {integer} top-most position of the scroll indicator - this._indicatorMax = 0; // {integer} bottom-most position of the scroll indicator - this._topItem = 0; // {integer} the item currently on top (expressed as index in the this.dataList.items array) - this._prevTopItem = 0; // {integer} the item that has been previously on top - this._hasFill = false; // {boolean} whether the control has initially filled any items TODO: Think of how to remove this - this._inLoading = false; // {boolean} whether there's a loading in progress - this._secondaryRequestCount = 0; // {integer} current count of the secondary needDataCallback() calls - this._scrollNature = null; // {string} the nature of the scrolling action - this._lastControllerEvent = null; // {string} keeps the last received controller event - - this._isScrollable = false; // {boolean} indicates whether the list can be scrolled. It is unscrollable when the items are lte than the visible items - this._inputMode = 'controller';// {string} indicates the input mode. 'touch' || 'controller' - this._hasFocus = false; // {boolean} indicates whether the control currently has focus - this._showFocusAnimation = false; // {boolean} wheter the show the focus entry animation - this._focusStolen = false; // {boolean} flag that shows whether the focus placement is a result of a stolen focus - this._lastItemWithFocus = 0; // {integer} stores the last item index with focus when multicontroller lostFocus event comes in - this._inLetterIndexMulticontroller = false; // {boolean} indicates whether the multicontroller events should be directed to the letter index area if present - - // sorted letter index data - this._letterIndexDataSorted = new Array(); // {array} holds sorted letter index data - - // list loading - this._loadingData = { // {object} contains internal data for the loading overlay - timeStarted : 0, - timeShown : 0, - startTimeoutId : null, - endTimeoutId : null, - }; - - // horizontal drag - this._inHorizontalDrag = null; // {boolean|null} whether the drag is horizontal (or vertical). The default value is 'null' (it's has different meaning than 'false') - this._hDragItem = null; // {integer} index of the item currently being draagged horizontally - - // sliders - this._sliders = {}; // {object} hash with slider references - this._activeSlider = null; // {object} contains currently active slider - - // secondary multicontroller - this._currentSecondaryMulticontrollerItem = null; // {integer} - this._inSecondaryMulticontroller = false; // {boolean} indicates whether the multicontroller events should be directed to the subwidgets of the focussed item - - // longpress - this._inLongPress = false; // {boolean} indicates whether the list is in long press - this._longPressIssued = false; // {boolean} indicates whether the longPress/holdStart callback has been issued - - // list reordering - this._inListReorder = false; // {boolean} indicates whether the list is currently in reorder mode - this._reorderItem = null; // {object} copy of the list item that is going to be reordered - this._reorderItemIndex = null; // {integer} copy of the old index of the list item that is going to be reordered - this._reorderCurrentIndex = null; // {integer} current index of the reorder item before committing the change - this._reorderTouchElt = null; // {HTML DOM Element} the actual DOM list item - this._releaseReorderByTouch = false; // {boolean} indicates wheter the user is about to release the list reorder by touch - - // timeouts and intervals - this._makeHitTimeoutId = null; // {timeout} enter into hit state after some time - this._longPressTimeoutId = null; // {timeout} enter into longpress state after some time - this._touchReorderTimeoutId = null; // {timeout} enter into list reorder after some time - this._scrollIndicatorTimeoutId = null; // {timeout} fade out scroll indicator after some time - this._indexSelectTimeoutId = null; // {timeout} scroll the list some time after a letter index is selected by multicontroller - this._tiltHoldTimeoutId = null; // {timeout} - timeout after which next autoscroll tier starts - this._tiltHoldIntervalId = null; // {interval} - repeated autoscroll action for the current autoscroll tier - this._needDataTimeoutId = null; // {timeout} timeout after which the list will no longer wait for items - this._radioSettleTimeoutId = null; // {timeout} settle timeout for radio group items - this is reset on every user input and checked on every API call - this._tickSettleTimeoutId = null; // {timeout} settle timeout for tick group items - this is reset on every user input and checked on every API call - // Note: checkboxes, onOff and toggle items have their own timeouts for every item - - // event filtering - this._lastEventTime = 0; // {integer} timestamp of the last handled move event - - // list event API - this._eventListeners = {}; // {object} has of the registered listeners - - /* - * --------------------------------------- - * SETTERS AND GETTERS - * These control various public and private properties - * --------------------------------------- - */ - // focussedItem - the currently (or most recently) focussed item - this.__defineGetter__('focussedItem', function() { - return this._getFocussedIndex(); - }); - - // focussedItem - set focus on a list item - this.__defineSetter__('focussedItem', function(focussedItem) { - this._manageFocus(focussedItem); - }); - - // topItem - current list position expressed in item index - this.__defineGetter__('topItem', function() { - return this._topItem; - }); - - // topItem - perform scroll to a new list position - this.__defineSetter__('topItem', function(topItem) { - this._scrollTo(topItem, 0); - }); - - /* ====== scrollTo is a topItem alias ====== */ - // scrollTo - current list position expressed in item index - this.__defineGetter__('scrollTo', function() { - return this.topItem; - }); - // scrollTo - perform scroll to a new list position - this.__defineSetter__('scrollTo', function(scrollTo) { - this.topItem = scrollTo; - }); - /* ====== scrollTo is a topItem alias ====== */ - - // inLoading - current loading state of the list - this.__defineGetter__('inLoading', function() { - return this._inLoading; - }); - - - - // initialize - this.init(); -} - - -/** - * ========================= - * LIST EVENTS AND PROTOTYPE PROPERTIES - * ========================= - */ -List2Ctrl.prototype._USER_EVENT_START = 'mousedown'; -List2Ctrl.prototype._USER_EVENT_END = 'mouseup'; -List2Ctrl.prototype._USER_EVENT_MOVE = 'mousemove'; -List2Ctrl.prototype._USER_EVENT_OUT = 'mouseleave'; -List2Ctrl.prototype._VENDOR = ('opera' in window) ? 'O' : 'webkit'; - -List2Ctrl.prototype._EVENT_START = 'start'; -List2Ctrl.prototype._EVENT_MOVE = 'move'; -List2Ctrl.prototype._EVENT_END = 'end'; -List2Ctrl.prototype._EVENT_OUT = 'out'; - -List2Ctrl.prototype._EVENTS = { - ITEM_SELECT : 'itemSelect', - LETTER_SELECT : 'letterSelect', - DATALIST_CHANGE : 'dataListChange', - SCROLL_START : 'scrollStart', - SCROLL_END : 'scrollEnd', - CLEAN_UP : 'cleanUp', -}; - -/** - * ========================= - * INIT ROUTINE - * Any initialization code goes here - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype.init = function() -{ - /* CREATE ELEMENTS */ - - // container - this.divElt = document.createElement('div'); - this.divElt.id = this.id; - this.divElt.className = 'List2Ctrl'; - - // add it to the DOM - this.parentDiv.appendChild(this.divElt); - - // additional container classes - if (this.properties.titleConfiguration) - { - this.divElt.classList.add(this.properties.titleConfiguration); - } - this.divElt.classList.add((this.properties.inDialog) ? 'inDialog' : 'noDialog'); - if (this.properties.inDialog && this.properties.dialogStyle) - { - this.divElt.classList.add(this.properties.dialogStyle); - } - if (this.properties.numberedList) - { - this.divElt.classList.add('numberedList'); - } - if (this.properties.hasLetterIndex) - { - this.divElt.classList.add('letterIndex'); - } - this.divElt.classList.add((this.properties.thickItems) ? 'thickItems' : 'normalItems'); - if (this.properties.smallItemText) - { - this.divElt.classList.add('smallItemText'); - } - - - /* TITLE AREA */ - switch (this.properties.titleConfiguration) - { - case 'listTitle' : - // normal title - this.title = document.createElement('h1'); - this.title.className = 'List2CtrlTitle'; - this.divElt.appendChild(this.title); - this.setTitle(this.properties.title); - if (this.properties.title && this.properties.title.titleStyle == 'style06') - { - // special title style having tabs control - this.tabsCtrl = this._createTabsControl(); - } - break; - - case 'tabsTitle' : - log.debug('List has tabs'); - this.tabsCtrl = this._createTabsControl(); - break; - - case 'noTitle' : - // nothing to do - break; - - default : - log.error('List2: Wrong title configuration: ' + this.properties.titleConfiguration); - break; - } - - // mask - this.mask = document.createElement('div'); - this.mask.className = 'List2CtrlMask'; - this.divElt.appendChild(this.mask); - - // list items container - this.scroller = document.createElement('ul'); - this.scroller.className = 'List2CtrlScroller'; - this.mask.appendChild(this.scroller); - - // arc - // MPP 8/9/2013 Commented out in favor of right chrome global control w/ transitions - //this.arc = document.createElement('div'); - //this.arc.className = 'List2CtrlArc'; - //this.divElt.appendChild(this.arc); - - // active area - this.activeArea = document.createElement('div'); - this.activeArea.className = 'List2CtrlActiveArea'; - this.divElt.appendChild(this.activeArea); - - // letter index - if (this.properties.hasLetterIndex) - { - this.letterIndexWrapper = document.createElement('div'); - this.letterIndexWrapper.className = 'List2CtrlLetterIndexWrapper'; - this.divElt.appendChild(this.letterIndexWrapper); - - this.letterIndex = document.createElement('ol'); - this.letterIndex.className = 'List2CtrlLetterIndex'; - this.letterIndexWrapper.appendChild(this.letterIndex); - } - - // loading - this.loading = document.createElement('div'); - this.loading.className = 'List2CtrlLoading'; - var loadingImage1 = document.createElement('span'); - loadingImage1.className = "loadingImage1"; - loadingImage1.style.backgroundImage = 'url(' + this.properties.loadingConfig.loadingImage1 + ')'; - this.loading.appendChild(loadingImage1); - var loadingText = document.createElement('span'); - loadingText.className = 'loadingText'; - if (null !== this.properties.loadingConfig.loadingTextId && undefined !== this.properties.loadingConfig.loadingTextId && "" !== this.properties.loadingConfig.loadingTextId) - { - this.properties.loadingConfig.loadingText = this._getLocalizedString(this.properties.loadingConfig.loadingTextId, this.properties.loadingConfig.loadingSubMap); - } - loadingText.appendChild(document.createTextNode(this.properties.loadingConfig.loadingText)); - this.loading.appendChild(loadingText); - var loadingImage = document.createElement('span'); - loadingImage.className = 'loadingImage'; - this.loading.appendChild(loadingImage); - - - - /* ATTACH HANDLERS */ - - // Primary event handlers - // keep reference to the handler - this.touchHandler = this._touch.bind(this); - // start - this.divElt.addEventListener(this._USER_EVENT_START, this.touchHandler, false); - - /* CREATE POOL */ - this._createPool(); - - /* SET DATALIST */ - if (this.properties.dataList) - { - // bind dataList - this.setDataList(this.properties.dataList); - - if (true === this.properties.dataList.itemCountKnown) - { - // show items - this.updateItems(0, this.properties.dataList.itemCount-1); - - /* - * Perform initial scroll if it is set in the config properties. - * Focussed item has precedence over the scroll position, i.e. when - * the focussed item contradicts the scroll position, it is considered - * as a primary clue for scrolling the list to that position that the - * focussed item becomes visible on the screen. This logic is followed - * throughout all auto-scroll / auto-focus logic implemented in the list. - */ - - // first check if the focussed item and the scroll position are all on the same screen - // scroll to that position and show the focus according to the config - if ( (this.properties.focussedItem > 0 || this.properties.scrollTo > 0) && - (this.m.abs(this.properties.focussedItem - this.properties.scrollTo) <= (this.properties.visibleItems - 2)) ) - { - log.debug('Lis2: Focus is visible on screen'); - this._scrollTo(this.properties.scrollTo, 0); - this._showFocus(this.properties.focussedItem); - this._initialScrollMode = 'init'; - } - // set initial focus to a particular item if the list is populated - // the list will be scrolled so that this item is visible - else if (this.properties.focussedItem > 0) - { - log.debug('Lis2: Focus is not visible and has priority'); - this._showFocus(this.properties.focussedItem); - this._initialScrollMode = 'init'; - } - // scroll (no animation) to a particular item if the list is populated - // the focus will be placed on the top item - else if (this.properties.scrollTo > 0) - { - log.debug('Lis2: Focus is 0 and scrollTo has priority'); - this._scrollTo(this.properties.scrollTo, 0); - this._showFocus(this._topItem); - this._initialScrollMode = 'init'; - } - - // enter list reorder if the list is reordable - if (true === this.properties.listReorder) - { - this._enterListReorder(true); - } - - } - } - else - { - this._setLoading(true); - } - - - /* SET LETTER INDEX DATA */ - if (this.properties.hasLetterIndex && this.properties.letterIndexData) - { - // bind letter index data - this.setLetterIndexData(this.properties.letterIndexData); - } - - /* SET CUSTOM LIST BACKGROUND */ - if (null != this.properties.listBackground && '' != this.properties.listBackground) - { - this.setListBackground(this.properties.listBackground); - } - -}; - - -/** - * ========================= - * LIST ITEMS - * 1. pool (_createPool) - * 2. default items configuration (_prepareItems, _prepareListItem) for every item style - * 3. items localization (_localizeItems, _getLocalizedString) - * 4. pool operations (_setText, _setImage, _getListItem, _returnListItem, _putToScroller, _emptyScroller) - * 5. dynamic list items (_updateRange, _updateDisplay, _requestMore, _fill) - * 6. set internal properties (_checkScrollable, _setTopListItem, _setLoading) - * 7. default title configuration (_prepareTitle) - * ========================= - */ - -/** 1. POOL **/ - -/** - * Create list items pool - * Add HTML elements to each item in the pool - * depending on its style - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._createPool = function() -{ - this.pool = { - empty : new Array(), // 'empty' is internal style - draggable : new Array(), // 'draggable' is internal style - ghost : new Array(), // 'ghost' is internal style - - style01 : new Array(), - style02 : new Array(), - style03 : new Array(), - style03a : new Array(), - style04 : new Array(), - style05 : new Array(), - style06 : new Array(), - style07 : new Array(), - style09 : new Array(), - style10 : new Array(), - style11 : new Array(), - style12 : new Array(), - style13 : new Array(), // deprecated - style14 : new Array(), - style17 : new Array(), - style18 : new Array(), - style19 : new Array(), - style20 : new Array(), - style21 : new Array(), - style22 : new Array(), - // TODO: style23 - same as style12 - // TODO: style24 - same as style12 - style25 : new Array(), - styleOnOff : new Array(), // not official name - styleStep : new Array(), // TODO: rename this to style26 - styleLock : new Array(), // not official name - style28 : new Array(), - style29 : new Array(), - - }; - - // the pool size (this.properties.poolsize) should be at least 3 times - // the visible items (one for above and two for below the top item) - var line1, line2, - image1, image2, - label1, label2, - button1, button2, button3, - caret; - - for (var i in this.pool) - { - for (var j=0; j no content - break; - - case 'draggable' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - button1 = document.createElement('span'); - button1.className = 'button buttonOk'; - li.appendChild(button1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'ghost' : - // ghost item -> no contet - break; - - case 'style01' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style02' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style03' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style03a' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style04' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style05' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style06' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style07' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style09' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style10' : - var buttonsWrapper = document.createElement('div'); - buttonsWrapper.className = 'buttonsWrapper'; - li.appendChild(buttonsWrapper); - - button1 = document.createElement('span'); - button1.className = 'button button1'; - buttonsWrapper.appendChild(button1); - - button2 = document.createElement('span'); - button2.className = 'button button2'; - buttonsWrapper.appendChild(button2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - break; - - case 'style11' : - var buttonsWrapper = document.createElement('div'); - buttonsWrapper.className = 'buttonsWrapper'; - li.appendChild(buttonsWrapper); - - button1 = document.createElement('span'); - button1.className = 'button button1'; - buttonsWrapper.appendChild(button1); - - button2 = document.createElement('span'); - button2.className = 'button button2'; - buttonsWrapper.appendChild(button2); - - button3 = document.createElement('span'); - button3.className = 'button button3'; - buttonsWrapper.appendChild(button3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style12' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - break; - - case 'style13' : - // style13 is deprecated - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - break; - - case 'style14' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - label1 = document.createElement('span'); - label1.className = 'label1'; - subcontainer.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - break; - - case 'style17' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - // label is inside line1 element to allow natural text flow - label1 = document.createElement('span'); - label1.className = 'label1'; - line1.appendChild(label1); - - break; - - case 'style18' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - label1 = document.createElement('span'); - label1.className = 'label1'; - subcontainer.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - break; - - case 'style19' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - break; - - case 'style20' : - button1 = document.createElement('span'); - button1.className = 'button1'; - li.appendChild(button1); - - break; - - case 'style21' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style22' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style25' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'styleOnOff' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'styleStep' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - var plusSign = document.createElement('span'); - plusSign.className = 'plus'; - li.appendChild(plusSign); - - var minusSign = document.createElement('span'); - minusSign.className = 'minus'; - li.appendChild(minusSign); - - break; - - case 'styleLock' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2 buttonLock'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3 buttonDelete'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style28' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - break; - - case 'style29' : - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - break; - - default : - log.error('List2: unknown list item style in pool: ' + i); - break; - - } - - // add common elements - caret = document.createElement('span'); - caret.className = 'caret'; - li.appendChild(caret); - - - this.pool[i].push(li); - } - } - -}; - -/** 2. DEFAULT ITEMS CONFIGURATION **/ - -/** - * Prepare items - * Extend the whole dataList so that every item - * meet the required structure. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._prepareItems = function(firstItem, lastItem) -{ - if ((firstItem == null) || (firstItem < 0)) - { - firstItem = 0; - } - - if ((lastItem == null) || (lastItem >= this.dataList.items.length)) - { - lastItem = this.dataList.items.length - 1; - } - - for (var i=firstItem, l=lastItem; i<=l; i++) - { - this.dataList.items[i] = this._prepareListItem(this.dataList.items[i]); - } - -}; - -/** - * Prepare list item - * A list item can be defined with minimal set of properties - * that are needed for its proper display. In fact these - * properties extend the default list item structure defined below. - * This function sets default configuration for a valid list item and merge - * it with the custom configuration passed to the item. - * TAG: internal - * ========================= - * @param {object} - the list item that will be set a default set of properties and will be returned - * @return {object} - the complete list item - */ -List2Ctrl.prototype._prepareListItem = function(item) -{ - // The itemStyle property is required - if (!item.hasOwnProperty('itemStyle')) - { - log.error('List2: list item should have itemStyle property: ' + item); - return; - } - - /* - * All types of list items extend this - * default structure by overriding the - * values and adding specific ones. The - * extended structure is then returned to be - * fed in the dataList container. - */ - var completeItem = { - appData : null, // Any kind of data that will be passed in the callbacks - text1Id : null, // String ID of the label - text1SubMap : null, // String Sub Map of the label - text1 : '', // Textual content of the label - hasCaret : true, // Show the caret icon on the right of the item - disabled : false, // Whether the list item is disabled - styleMod : '', // Style modifier, 'hint', 'bold', or ''/omitted - disabledStyleMod: "normal", // Disabled style modifier, 'normal' or 'white' - background : 'normal', // Background modifier, 'normal' or 'grey' - itemStyle : '', // String indicating the list type - itemBehavior : 'shortPressOnly', // String "hold" behavior for the item ('shortPressOnly', 'shortAndHold', or 'shortAndLong') - vuiSelectable: true, // Boolean for some items that cannot be selected by vui even when they are enabled - _data : { // Object containing any item-specific data used ONLY by the control - eventTimeout : null, - lastEvent : null, - settleTimeout : null, - lastUpdated : null, - settleValue : null, - } - }; - - // extend the default structure with default specific properties - var specificItem = {}; - switch (item.itemStyle) - { - case 'empty' : - specificItem = { hasCaret : false }; - break; - case 'draggable' : - specificItem = { image1:'', button1Id:null, button1SubMap:null, button1:'' }; - break; - case 'ghost' : - specificItem = {}; - break; - case 'style01' : - specificItem = { image1:'', indented:false }; - break; - case 'style02' : - specificItem = { image1:'', image2:'' }; - break; - case 'style03' : - specificItem = { image1:'', image2:'', image3:'', checked:false, indented:false }; - break; - case 'style03a' : - specificItem = { image1: '', label1Id: null, label1SubMap: null, label1: '', checked: false, labelWidth: 'wide2', label1Align:'right', styleMod: "hint"}; - break; - case 'style04' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style05' : - specificItem = { image1:'', image2:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style06' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', labelWidth:'normal', label1Align:'right', label1Warning:false }; - break; - case 'style07' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'', labelWidth:'normal', label1Align:'right', label1Warning:false, label2Align:'right', label2Warning:false }; - break; - case 'style09' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'', labelWidth:'normal', label1Align:'right', label1Warning:false, label2Align:'right', label2Warning:false }; - break; - case 'style10' : - specificItem = { button1Id:null, button1SubMap:null, button1:'', button2Id:null, button2SubMap:null, button2:'', value:1, indeterminate:false, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'style11' : - specificItem = { button1Id:null, button1SubMap:null, button1:'', button2Id:null, button2SubMap:null, button2:'', button3Id:null, button3SubMap:null, button3:'', value:1, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'style12' : - specificItem = { image1:'', min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:false, minChangeInterval:this.properties.minChangeInterval, settleTime:this.properties.settleTime, rotationIdleDetectTime:this.properties.rotationIdleDetectTime }; - break; - case 'style13' : - // deprecated - issue a warning - log.warn(this.uiaId + ': List2 style13 has been deprecated. Please use style12 instead. Setting pivot=True. Check SDD for details.'); - specificItem = { min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:true }; - break; - case 'style14' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', text1Align:'left' }; - break; - case 'style17' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'' }; - break; - case 'style18' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'' }; - break; - case 'style19' : - specificItem = { image1:'' }; - break; - case 'style20' : - // nothing specific for this style - break; - case 'style21' : - specificItem = { image1:'', image2:'', label1Id:null, label1SubMap:null, label1:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style22' : - specificItem = { image1:'', image2:'', label1Id:null, label1SubMap:null, label1:'', indented:false }; - case 'style25' : - specificItem = { image1:'', image2:'', image3:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'styleOnOff' : - specificItem = { image1:'', value:2, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'styleStep' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2:'', min:0, max:36, increment:1, value:0, warning:false }; - break; - case 'styleLock' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'', locked:false }; - break; - case 'style28' : - specificItem = { image1:'', min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:false, minChangeInterval:this.properties.minChangeInterval, settleTime:this.properties.settleTime, rotationIdleDetectTime:this.properties.rotationIdleDetectTime, indented : false }; - break; - case 'style29' : - specificItem = { label1Id:null, label1SubMap:null, label1:'',label2Id:null, label2SubMap:null, label2:'', image1:'' }; - default : - log.error('List2: unknown item style: ' + item.itemStyle); - break; - } - - // Extend default structure with the specific one - for (var i in specificItem) - { - completeItem[i] = specificItem[i]; - } - - // Extend default structure with the supplied item - for (var j in item) - { - completeItem[j] = item[j]; - } - - return completeItem; -}; - - -List2Ctrl.prototype._updateModifiedTimestamps = function(firstItem, lastItem) -{ - // update lastModified timestamp - var now = new Date().getTime(); - for (var i=firstItem; i<=lastItem; i++) - { - if (this._hasData(i)) - { - this.dataList.items[i]._data.lastUpdated = now; - } - } -}; - - -/** 3. ITEMS LOCALIZATION **/ - -/** - * Localize items - * Localize text in known list items using localization framework. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._localizeItems = function(firstItem, lastItem) -{ - log.debug('Localizing...'); - - if ((firstItem == null) || (firstItem < 0)) - { - firstItem = 0; - } - - if ((lastItem == null) ||(lastItem >= this.dataList.items.length)) - { - lastItem = this.dataList.items.length - 1; - } - - // iterate through the dataList - for (var i=firstItem, l=lastItem; i<=l; i++) - { - switch (this.dataList.items[i].itemStyle) - { - // no elements - case 'empty' : - // do nothing - break; - - // text1, button1 - case 'draggable' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - break; - - // no elements - case 'ghost' : - // do nothing - break; - - // text1 - case 'style01' : - case 'style02' : - case 'style03' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - case 'style03a' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, text2 - case 'style04' : - case 'style05' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - // text1, label1 - case 'style06' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1, label2 - case 'style07' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1, text2, label1, label2 - case 'style09' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1, button1, button2 - case 'style10' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - if (this.dataList.items[i].button2Id) - { - var button2 = this._getLocalizedString(this.dataList.items[i].button2Id, this.dataList.items[i].button2SubMap); - this.dataList.items[i].button2 = button2; - } - break; - - // text1, button1, button2, button3 - case 'style11' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - if (this.dataList.items[i].button2Id) - { - var button2 = this._getLocalizedString(this.dataList.items[i].button2Id, this.dataList.items[i].button2SubMap); - this.dataList.items[i].button2 = button2; - } - if (this.dataList.items[i].button3Id) - { - var button3 = this._getLocalizedString(this.dataList.items[i].button3Id, this.dataList.items[i].button3SubMap); - this.dataList.items[i].button3 = button3; - } - break; - - // text1, labelLeft, labelRight - case 'style12' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, labelLeft, labelCenter, labelRight - case 'style13' : - // style13 is deprecated - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, label1 - case 'style14' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1 - case 'style17' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1, label2 - case 'style18' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1 - case 'style19' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1 - case 'style20' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, text2, label1 - case 'style21' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1 - case 'style22' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, text2 - case 'style25' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - // text1 - case 'styleOnOff' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, label1, label2 - case 'styleStep' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, {value:this.dataList.items[i].value}); - this.dataList.items[i].label2 = label2; - } - else - { - log.warn(this.uiaId + ' possible issue. Lis2: item ' + i + ' does not specify label2Id'); - } - break; - - // text1, text2 - case 'styleLock' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - case 'style29' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - } - - } -}; - -/** - * Get localization entry for a string id - * TAG: internal - * ========================= - * @return {string} - */ -List2Ctrl.prototype._getLocalizedString = function(labelId, subMap) -{ - return framework.localize.getLocStr(this.uiaId, labelId, subMap); -}; - -/** 4. POOL OPERATIONS **/ - -/** - * Set line 1 content - * This helper function clears any previous content for the supplied - * element class and sets new one. Then the list item is returned. - * TAG: internal - * ========================= - * @param {HTML element} -

  • element as taken from the pool - * @param {string} - className of the taget element - * @param {string} - textual content to be inserted - * @param {boolean} - do not remove child html tags when inserting textual content - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setText = function(li, className, content, preserveHTML) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - if (!content) - { - content = ''; - } - li.querySelector(className).innerText = ''; - li.querySelector(className).appendChild(document.createTextNode(content)); - return li; -}; - -/** - * Set image background - * This helper function clears any previous path for the supplied - * image class and sets new one. Then the list item is returned. - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {string} - path to the image - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setImage = function(li, className, url) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - li.querySelector(className).style.backgroundImage = ''; - if ('' != url) - { - li.querySelector(className).style.backgroundImage = 'url(' + url + ')'; - } - return li; -}; - -/** - * Set slider - * This helper function clears any previous slider in the list item - * and cleans up local references. It then creates a new slider control - * inside the list item and sets its values - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {object} - slider configuration - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setSlider = function(li, className, sliderProperties, itemIndex) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - - // get current item poolid - var poolId = li.getAttribute('data-poolid'); - - // get previous itemIndex for this particular li - var prevItemIndex = li.getAttribute('data-ref'); - - // destruct any previous sliders for this poolid and previous index - if (prevItemIndex != 'undefined') - { - var hashKey = 'slider_'+prevItemIndex+'_'+poolId; - - // remove slider from the hash and the DOM - if (this._sliders.hasOwnProperty(hashKey)) - { - this._sliders[hashKey]['slider'].cleanUp(); - this._sliders[hashKey]['slider'].divElt.parentElement.removeChild(this._sliders[hashKey]['slider'].divElt); - } - } - - // add slider to the hash and the DOM - var sliderCont = li.querySelector(className); - if (sliderProperties && sliderCont) - { - var hashKey = 'slider_'+itemIndex+'_'+poolId; - - // instantiate slider and add it to the _sliders hash - this._sliders[hashKey] = {}; - this._sliders[hashKey]['itemIndex'] = itemIndex; - this._sliders[hashKey]['poolId'] = poolId; - this._sliders[hashKey]['slider'] = framework.instantiateControl(this.uiaId, sliderCont, 'SliderCtrl', sliderProperties); - } - return li; -}; - -/** - * Set toggle - * This helper function clears any previous toggled buttons in - * the supplied list item and sets initial toggle value - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {object} - slider configuration - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setToggle = function(li, className, value) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - var buttons = li.querySelectorAll(className); - for (var i=0; i element wit proper elements inside - */ -List2Ctrl.prototype._getListItem = function(listItem, dataListIndex) -{ - - // get it from the pool - var li = this.pool[listItem.itemStyle].shift(); - - // remove any residual touch classes - li.classList.remove('hit'); - li.classList.remove('focus'); - li.classList.remove('longpress'); - li.classList.remove('secondaryFocus'); - - // add content to it following style definitions - switch (listItem.itemStyle) - { - case 'empty' : - // empty item -> no content - break; - - case 'draggable' : - // listItem : { text1:String, image1:String, button1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - this._setText(li, '.buttonOk', listItem.button1); - break; - - case 'ghost' : - // list item : {} - break; - - case 'style01' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style02' : - // listItem : { text1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - if (listItem.image2 === 'indeterminate') - { - li.classList.add('indeterminate'); - } - else - { - li.classList.remove('indeterminate'); - this._setImage(li, '.image2', listItem.image2); - } - break; - - case 'style03' : - // listItem : { text1:String, image1:String, image2:String, checked:Boolean } - this._setText(li, '.line1', listItem.text1); - if (listItem.image1 === 'checkbox') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('checkbox'); - } - else if (listItem.image1 === 'radio') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('radio'); - } - else if (listItem.image1 === 'tick') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('tick'); - } - else - { - li.classList.remove('checkbox'); - li.classList.remove('radio'); - li.classList.remove('tick'); - this._setImage(li, '.image1', listItem.image1); - } - this._setImage(li, '.image2', listItem.image2); - this._setImage(li, '.image3', listItem.image3); - if (listItem.checked) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style03a' : - // listItem : { text1:String, image1:String, label1: String} - this._setText(li, '.line1', listItem.text1); - if (listItem.image1 === 'checkbox') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('checkbox'); - } - else if (listItem.image1 === 'radio') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('radio'); - } - else if (listItem.image1 === 'tick') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('tick'); - } - else - { - li.classList.remove('checkbox'); - li.classList.remove('radio'); - li.classList.remove('tick'); - this._setImage(li, '.image1', listItem.image1); - } - - if (listItem.checked) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - - this._setText(li, '.label1', listItem.label1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style04' : - // listItem : { text1:String, text2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style05' : - // listItem : { text1:String, text2:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - break; - - case 'style06' : - // listItem : { text1:String, label1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style07' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - li.classList.remove('label2Right'); - li.classList.remove('label2Left'); - li.classList.remove('label2Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - switch (listItem.label2Align) - { - case 'right' : li.classList.add('label2Right'); break; - case 'left' : li.classList.add('label2Left'); break; - case 'center' : li.classList.add('label2Center'); break; - default : li.classList.add('label2Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - if (listItem.label2Warning) - li.classList.add('label2Warning'); - else - li.classList.remove('label2Warning'); - - break; - - case 'style09' : - // listItem : { text1:String, text2:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - li.classList.remove('label2Right'); - li.classList.remove('label2Left'); - li.classList.remove('label2Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - switch (listItem.label2Align) - { - case 'right' : li.classList.add('label2Right'); break; - case 'left' : li.classList.add('label2Left'); break; - case 'center' : li.classList.add('label2Center'); break; - default : li.classList.add('label2Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - if (listItem.label2Warning) - li.classList.add('label2Warning'); - else - li.classList.remove('label2Warning'); - - break; - - case 'style10' : - // listItem : { text1:String, button1:String, button2:String, value:Integer } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.button1', listItem.button1); - this._setText(li, '.button2', listItem.button2); - this._setToggle(li, '.button', this.m.max(this.m.min(listItem.value, 2), 0) ); - if (listItem.indeterminate) - { - li.classList.add('indeterminate'); - } - else - { - li.classList.remove('indeterminate'); - } - break; - - case 'style11' : - // listItem : { text1:String, button1:String, button2:String, button3:String, value:Integer } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.button1', listItem.button1); - this._setText(li, '.button2', listItem.button2); - this._setText(li, '.button3', listItem.button3); - this._setToggle(li, '.button', this.m.max(this.m.min(listItem.value, 3), 0) ); - break; - - case 'style12' : - // listItem : { text1:String, image1:String, labelLeft:String, labelRight:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - - // extend tickmark object - if (listItem.tickMarkObject) - { - listItem.tickMarkObject.tickMarkStyle = "List2CtrlSliderTickMark"; - listItem.tickMarkObject.centerMarkTopStyle = "List2CtrlCenterMarkTop"; - listItem.tickMarkObject.centerMarkBottomStyle = "List2CtrlCenterMarkBottom"; - listItem.tickMarkObject.numberStyle = "List2CtrlTickNumber"; - } - - // extend label object - if (listItem.labelObject) - { - listItem.labelObject.leftLabelStyle = "List2CtrlSliderLeftLabel"; - listItem.labelObject.rightLabelStyle = "List2CtrlSliderRightLabel"; - listItem.labelObject.centerLabelStyle = "List2CtrlSliderCenterLabel"; - } - - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: listItem.minChangeInterval, - settleTime: listItem.settleTime, - rotationIdleDetectTime: listItem.rotationIdleDetectTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - - case 'style13' : - // TODO: style13 has been depricated - // listItem : { text1:String, labelLeft:String, labelCenter:String, labelRight:String } - this._setText(li, '.line1', listItem.text1); - - // extend tickmark object - if (listItem.tickMarkObject) - { - listItem.tickMarkObject.tickMarkStyle = "List2CtrlSliderTickMark"; - listItem.tickMarkObject.centerMarkTopStyle = "List2CtrlCenterMarkTop"; - listItem.tickMarkObject.centerMarkBottomStyle = "List2CtrlCenterMarkBottom"; - listItem.tickMarkObject.numberStyle = "List2CtrlTickNumber"; - } - - // extend label object - if (listItem.labelObject) - { - listItem.labelObject.leftLabelStyle = "List2CtrlSliderLeftLabel"; - listItem.labelObject.rightLabelStyle = "List2CtrlSliderRightLabel"; - listItem.labelObject.centerLabelStyle = "List2CtrlSliderCenterLabel"; - } - - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: this.properties.minChangeInterval, - settleTime: this.properties.settleTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - - case 'style14' : - // listItem : { text1:String, label1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - - if ('right' == listItem.text1Align) - { - li.classList.add('text1AlignRight'); - } - else - { - li.classList.remove('text1AlignRight'); - } - - break; - - case 'style17' : - // listItem : { text1:String, label1:String, image1:String } - li.querySelector('.line1').innerText = ''; - var label1 = document.createElement('span'); - label1.className = 'label1'; - label1.appendChild(document.createTextNode(listItem.label1)); - li.querySelector('.line1').appendChild(label1); - li.querySelector('.line1').appendChild(document.createTextNode(listItem.text1)); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style18' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style19' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style20' : - // listItem : { text1:String } - this._setText(li, '.button1', listItem.text1); - break; - - case 'style21' : - // listItem : { text1:String, text2:String, label1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style22' : - // listItem : { text1:String, label1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style25' : - // listItem : { text1:String, text2:String, image1:String, image2:String, image3:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - this._setImage(li, '.image3', listItem.image3); - break; - - case 'styleOnOff' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - if (listItem.value === 1) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - break; - - case 'styleStep' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - li.classList.remove('maxReached'); - li.classList.remove('minReached'); - if (listItem.value === listItem.max) - { - li.classList.add('maxReached'); - } - else if (listItem.value === listItem.min) - { - li.classList.add('minReached'); - } - - // configure label warning - if (listItem.warning) - li.classList.add('warning'); - else - li.classList.remove('warning'); - - break; - - case 'styleLock' : - // listItem : { text1:String, text2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - if (listItem.locked) - { - li.classList.add('locked'); - } - else - { - li.classList.remove('locked'); - } - break; - - case 'style28' : - // listItem : { text1:String, image1:String, labelLeft:String, labelRight:String } - this._setImage(li, '.image1', listItem.image1); - - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: listItem.minChangeInterval, - settleTime: listItem.settleTime, - rotationIdleDetectTime: listItem.rotationIdleDetectTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - - - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - - case 'style29': - - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - break; - } - - /* ITEM MODIFICATORS */ - // add/remove hasCaret class - if (listItem.hasCaret) - { - li.classList.add('hasCaret'); - } - else - { - li.classList.remove('hasCaret'); - } - - // add/remove disabled class - if (listItem.disabled) - { - li.classList.add('disabled'); - } - else - { - li.classList.remove('disabled'); - } - - // add/remove styleMod class (hint/bold/'') - if ('hint' == listItem.styleMod) - { - li.classList.remove('bold'); - li.classList.add('hint'); - } - else if ('bold' == listItem.styleMod) - { - li.classList.remove('hint'); - li.classList.add('bold'); - } - else if ('both' == listItem.styleMod) - { - li.classList.add('hint'); - li.classList.add('bold'); - } - else - { - li.classList.remove('hint'); - li.classList.remove('bold'); - } - - // add/remove background modifier class (normal/grey) - if ('grey' == listItem.background) - { - li.classList.remove('bgLightGrey'); - li.classList.add('bgGrey'); - } - else if('lightGrey' == listItem.background) - { - li.classList.remove('bgGrey'); - li.classList.add('bgLightGrey'); - } - else - { - li.classList.remove('bgLightGrey'); - li.classList.remove('bgGrey'); - } - - // add disabled style mod - if ('white' === listItem.disabledStyleMod) - { - li.classList.add("disabledWhite"); - } - - // return it - return li; - -}; - -/** - * Return list item to the pool - * This will result in increasing the pool contents - * with one item. The returned item will be removed from the DOM. - * However, its content will not be reset as this is done in the - * process of any subsequent pool extraction (see _getListItem() above) - * TAG: internal - * ========================= - * @param {HTML element} -
  • element from the DOM - * @return {void} - */ -List2Ctrl.prototype._returnListItem = function(li) -{ - // get the style - var itemStyle = li.getAttribute('data-itemStyle'); - // reset it - li.style.top = '0px'; - // remove it - li.parentNode.removeChild(li); - - // put it back to the pool - this.pool[itemStyle].push(li); -}; - -/** - * Put a list item to the scroller - * TAG: internal - * ========================= - * @param {HTML element} -
  • element from the DOM - * @param {integer} - * @param {string} - * @return {void} - */ -List2Ctrl.prototype._putToScroller = function(li, index, operation) -{ - li.style.top = index * this.properties.itemHeight + 'px'; - li.setAttribute('data-ref', index); - - - if (operation == 'prepend') - { - this.items.unshift({ref:index, domElt:li}); - this.scroller.insertBefore(li, this.scroller.firstChild); - - this._wrapInlineElement(li); - } - else if (operation == 'append') - { - this.items.push({ref:index, domElt:li}); - this.scroller.appendChild(li); - - this._wrapInlineElement(li); - } - else if (!isNaN(operation)) - { - this.items.splice(operation, 0, {ref:index, domElt:li}); - - // insertBefore breaks in Opera - use appendChild instead - // this.scroller.insertBefore(li, this.items[operation+1]); - this.scroller.appendChild(li); - - this._wrapInlineElement(li); - } - else - { - log.error('Lis2: unknown _putToScroller() operation: ' + li + ' ' + index + ' ' + operation); - } - -}; - -/** - * Return everything into the pool and empty the scroller - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._emptyScroller = function() -{ - for (var i=0, l=this.items.length; i itemsOnScreen) - { - // return everything into the pool - var itemsLength = this.items.length; - for (var i=0; i < itemsLength; i++) - { - var item = this.items.shift(); - this._returnListItem(item.domElt); - } - - var dataListIndex = 0; - - if (topItem < this.dataList.items.length - Math.round(itemsOnScreen / 2) && - topItem > Math.round((itemsOnScreen / 2)) ) - { - - - // WE ARE IN THE MIDDLE - - for (var i=0; i < itemsLength; i++) - { - dataListIndex = (topItem - itemsBefore) + i; - - // we've reached the end of the dataList. No more items to add -> break - if (dataListIndex >= this.dataList.items.length) - { - break; - } - - // request it if it is empty - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'middle'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - } - - } - else - { - - if (numOfScrolledElements > 0) - { - - // PRESSED END BUTTON - - for (var i=0; i < itemsLength; i++) - { - - dataListIndex = (this.dataList.items.length - itemsLength) + i; - - // request it if it is empty - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'down'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - } - - } - else if (numOfScrolledElements < 0) - { - - // PRESSED HOME BUTTON - - for (var i=0; i < itemsLength; i++) - { - - dataListIndex = i; - - - // request it if it is empty - if (this.dataList.items[dataListIndex].itemStyle === 'empty' || (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex]))) - { - this._requestMore(dataListIndex, 'down'); - log.debug('Requesting items ' + dataListIndex); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - - } - - } - - } - - - } - else - { - - - - if (numOfScrolledElements > 0) - { - - /* SCROLL DOWN BOF */ - - // return to pool - var firstItemRef = this.items[0].ref; - var bottomDifference = topItem - firstItemRef; - var extraEls = bottomDifference - itemsBefore; - - // extraEls cannot be more than the poolsize - NOTE: this breaks the items array - // extraEls = this.m.min(extraEls, this.properties.poolsize-1); - // extraEls cannot be more than the items array - NOTE: introduced not to break the items array - extraEls = this.m.min(extraEls, this.items.length-1); - - log.debug(' Scroll Down - extraEls ' + extraEls); - - if (extraEls > 0) - { - - for (var i=0; i < extraEls; i++) - { - var item = this.items.shift(); - this._returnListItem(item.domElt); - } - - } - - // lastItemRef = this.items[this.items.length-1].ref; - // Note: this is not defined as a separate variable because the - // this.items array is being modified in the below cycle - - // get from pool - var topDifference = this.items[this.items.length-1].ref - ( topItem - 1 ); - var newEls = ( itemsAfter + 1 ) - topDifference; - - // newEls cannot be more than the poolsize - newEls = this.m.min(newEls, this.properties.poolsize-1); - - log.debug(' Scroll Down - newEls ' + newEls); - - if (newEls > 0) - { - - for (var i=0; i break - log.debug('end of list'); - break; - } - - } - - } - - /* SCROLL DOWN EOF */ - - } - else if (numOfScrolledElements < 0) - { - - /* SCROLL UP BOF */ - - // return to pool - var topDifference = this.items[this.items.length-1].ref - topItem + 1; - var extraEls = topDifference - ( itemsAfter + 1 ); - - // extraEls cannot be more than the poolsize - NOTE: this breaks the items array - // extraEls = this.m.min(extraEls, this.properties.poolsize-1); - // extraEls cannot be more than the items array - NOTE: introduced not to break the items array - extraEls = this.m.min(extraEls, this.items.length-1); - - log.debug(' Scroll Up - extraEls ' + extraEls); - - if ( extraEls > 0 ) - { - - for (var i=0; i < extraEls; i++) - { - var item = this.items.pop(); - this._returnListItem(item.domElt); - } - - } - - - // firstItemRef = this.items[0].ref; - // Note: this is not defined as a separate variable because the - // this.items array is being modified in the below cycle - - // get from pool - var bottomDifference = topItem - this.items[0].ref; - var newEls = itemsBefore - bottomDifference; - - // newEls cannot be more than the poolsize - newEls = this.m.min(newEls, this.properties.poolsize-1); - - log.debug(' Scroll Up - newEls ' + newEls); - - if (newEls > 0) - { - - for (var i=0; i= 0) - { - - // if empty item is encountered, request more data - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'up'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'prepend'); - - } - else - { - // we've reached the beginning of the dataList array => break - log.debug('beginning of list'); - break; - } - - } // for - - } - else - { - log.debug('no new elements'); - } - - /* SCROLL UP EOF */ - - } - else - { - // there's no scroll => do nothing - } - - - - } // closes if (this.m.abs(numOfScrolledElements) > itemsOnScreen) - -}; - - -/** - * Redraw updated items that are currently visible - * TAG: internal - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._updateDisplay = function(firstItem, lastItem) -{ - - var firstItemRef = this.items[0].ref; - var lastItemRef = this.items[this.items.length-1].ref; - - // update only when the updated items overlap with the visible items - if ( (firstItem >= firstItemRef && firstItem <= lastItemRef) || - (firstItem <= firstItemRef && lastItem >= firstItemRef) ) - { - - var firstToUpdate = this.m.max(firstItem, firstItemRef); - var lastToUpdate = this.m.min(lastItem, lastItemRef); - var firstToUpdateIndex = firstToUpdate - firstItemRef; - var lastToUpdateIndex = (lastToUpdate - firstToUpdate) + firstToUpdateIndex; - - for (var i=firstToUpdateIndex; i<=lastToUpdateIndex; i++ ) - { - - var returnItem = this.items.splice(i,1); - var dataListIndex = returnItem[0].ref; - - // return to pool - this._returnListItem(returnItem[0].domElt); - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // recover secondary focus - if (this._inSecondaryMulticontroller && this._currentSecondaryMulticontrollerItem === dataListIndex) - { - li.classList.add('focus'); - li.classList.add('secondaryFocus'); - } - - // put it to scroller - this._putToScroller(li, dataListIndex, i); - - } - - } - - // update _isScrollable flag - this._checkScrollable(); - -}; - -/** - * Request more list items - * TAG: internal - * ========================= - * @param {integer} - * @param {string} - * @return {void} - */ -List2Ctrl.prototype._requestMore = function(index, direction) -{ - - // do not request more if a previous request is pending - if (!this._inLoading) - { - // indicate loading is in progress - this._setLoading(true); - - if (direction == 'up') - { - // we add 1 to the requestSize to include the last element in the way up - index = this.m.max(index - this.properties.requestSize + 1, 0); - - } - else if (direction == 'middle') - { - // we request 25 items on each direction from the topItem - index = this.m.max(index, 0); - - } - - // build additional data - var additionalParams = { - topItem : this._topItem, - visibleItems : this.properties.visibleItems, - ranges : this.getEmptyRange(), - }; - - log.debug('Request items from ' + index + ' to ' + index+this.properties.requestSize + ' ' + direction); - - // call needDataCallback if it is defined. The first empty item is - if (typeof this.properties.needDataCallback == 'function') - { - this.properties.needDataCallback(index, additionalParams); - } - - // set timeout for data population - clearTimeout(this._needDataTimeoutId); - this._needDataTimeoutId = setTimeout(this._needDataTimeoutCallback.bind(this, index), this.properties.needDataTimeout); - } - -}; - -List2Ctrl.prototype._needDataTimeoutCallback = function(index) -{ - log.warn('Lis2: control has requested items from index ' + index + ' but has not receieved them yet. Enabling the list.'); - this._setLoading(false); -}; - -/** - * Initial pool operation - * TAG: internal - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._fill = function(firstItem, lastItem) -{ - - log.debug('Start pool operation'); - log.debug('POOL | ITEMS'); - - // get items from the pool - for (var i=firstItem; i<=lastItem; i++) - { - // get it from the pool - var li = this._getListItem(this.dataList.items[i], i); - - // put it to scroller - this._putToScroller(li, i, 'append'); - - log.debug(this.pool[this.dataList.items[i].itemStyle].length + ' -> ' + this.items.length); - } - - this._hasFill = true; - - // update _isScrollable flag - var scrollable = this._checkScrollable(); - - // show/hide scroll indicator - if (!scrollable || (scrollable && this.properties.hasLetterIndex)) - { - this._hideScrollIndicator(); - } - else - { - this._showScrollIndicator(); - } - - log.debug('End pool operation'); - -}; - -/** SET INTERNAL PROPERTIES **/ - -/** - * Update _isScrollable flag - * TAG: internal - * ========================= - * @return {boolean} - returns _isScrollable - */ -List2Ctrl.prototype._checkScrollable = function() -{ - if (this.dataList.items.length > this.properties.visibleItems) - { - this._isScrollable = true; - } - else - { - this._isScrollable = false; - } - - return this._isScrollable; -}; - -/** - * Update _topItem property - * TAG: internal - * ========================= - * @param {integer} - top item index - * @return {integer} - returns _topItem - */ -List2Ctrl.prototype._setTopListItem = function(pos) -{ - // pos should be number for proper topItem calculation - if (!isNaN(pos)) - { - this._prevTopItem = this._topItem; - this._topItem = -(Math.round(pos / this.properties.itemHeight)); - - // throw out of bounds exception - if (this._topItem < 0 || this._topItem > this.dataList.items.length - 1) - { - log.error('Lis2: _topItem is out of bounds'); - } - } - - if (this.properties.enableItemRequestOnScroll) - { - // check for empty items in DOM - var emptyDOMItem = this._getEmptyDOMElement(); - if (null != emptyDOMItem) - { - // fire needDataCallback() if an empty item is found in the DOM - this._requestMore(emptyDOMItem); - } - } - - return this._topItem; - -}; - -/** - * Indicate loading activity in the list - * and update _inLoading property - * TAG: internal - * ========================= - * @param {boolean} - show or hide loading activity - * @return {boolean} - returns _inLoading - */ -List2Ctrl.prototype._setLoading = function(show) -{ - if (show) - { - // check whether loading overlay is enabled - if (this.properties.loadingOverlayEnabled) - { - // update start time - this._loadingData.timeStarted = new Date().getTime(); - - if (this.properties.showLoadingOverlayTimeout > 0) - { - // delayed show overlay - this._loadingData.startTimeoutId = setTimeout(this._setLoadingOverlay.bind(this, true), this.properties.showLoadingOverlayTimeout); - } - else - { - // show overlay immediately - this._setLoadingOverlay(true); - } - } - - // update flag - this._inLoading = true; - } - else - { - // check whether loading overlay is enabled - if (this.properties.loadingOverlayEnabled) - { - if (this.properties.hideLoadingOverlayTimeout > 0) - { - // delayed hide overlay - var now = new Date().getTime(); - if (now - this._loadingData.timeStarted < this.properties.showLoadingOverlayTimeout) - { - // no overlay has been shown -> reset everything - this._setLoadingOverlay(false); - } - else if (now - this._loadingData.timeShown < this.properties.hideLoadingOverlayTimeout) - { - // the overlay has been visible less than the hideLoadingOverlayTimeout -> hide it in hideLoadingOverlayTimeout ms after it has been made visible - this._loadingData.endTimeoutId = setTimeout(this._setLoadingOverlay.bind(this, false), this.properties.hideLoadingOverlayTimeout - (now - this._loadingData.timeShown)); - } - else - { - // the overlay has been visible long enough -> hide it immediately - this._setLoadingOverlay(false); - } - } - else - { - // hide overlay immediately - this._setLoadingOverlay(false); - } - } - - // update flag - this._inLoading = false; - } - - return this._inLoading; -}; - -List2Ctrl.prototype._setLoadingOverlay = function(show) -{ - if (show) - { - // show loading - this.mask.appendChild(this.loading); - - this._loadingData.timeShown = new Date().getTime(); - } - else - { - // hide loading - if (null != this.loading.parentElement) - { - this.loading.parentElement.removeChild(this.loading); - } - - // reset loading data - clearTimeout(this._loadingData.startTimeoutId); - clearTimeout(this._loadingData.endTimeoutId); - this._loadingData.timeStarted = 0; - this._loadingData.timeShown = 0; - this._loadingData.startTimeoutId = null; - this._loadingData.endTimeoutId = null; - } -}; - -/** 7. DEFAULT TITLE CONFIGURATION **/ - -/** - * Prepare title - * A list title can be defined with minimal set of properties - * that are needed for its proper display. This function sets - * default configuration for a valid title and merge it with the - * custom configuration passed to the title. - * TAG: internal - * ========================= - * @param {object} - the title object that will be set a default set of properties and will be returned - * @return {object} - the complete title object - */ -List2Ctrl.prototype._prepareTitle = function(titleObj) -{ - // The itemStyle property is required - if (!titleObj.hasOwnProperty('titleStyle')) - { - log.error('Lis2: title should have titleStyle property: ' + titleObj); - return; - } - - // default properties - var title = {}; - switch (titleObj.titleStyle) - { - case 'style02' : - title = { text1:'', text1Id:null, text1SubMap:null, styleMod:'' }; - break; - case 'style02a' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'', styleMod:'' }; - break; - case 'style03' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'' }; - break; - case 'style05' : - title = { text1:'', text1Id:null, text1SubMap:null, text2:'', text2Id:null, text2SubMap:null, image1:'' }; - break; - case 'style06' : - title = { image1:'' }; - break; - case 'style07' : - title = { text1:'', text1Id:null, text1SubMap:null, text2:'', text2Id:null, text2SubMap:null }; - break; - case 'style08' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'', styleMod:'' }; - break; - default : - log.error('Lis2: unknown title style: ' + titleObj.titleStyle); - break; - } - - // Extend default structure with the supplied item - for (var i in titleObj) - { - title[i] = titleObj[i]; - } - - // Perform localization - switch (title.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - case 'style08' : - if (title.text1Id) - { - title.text1 = this._getLocalizedString(title.text1Id, title.text1SubMap); - } - break; - case 'style05' : - case 'style07' : - if (title.text1Id) - { - title.text1 = this._getLocalizedString(title.text1Id, title.text1SubMap); - } - if (title.text2Id) - { - title.text2 = this._getLocalizedString(title.text2Id, title.text2SubMap); - } - break; - } - - return title; -}; - - -/** - * ========================= - * SCROLL INDICATOR - * - reset - * - create - * - visual update - * ========================= - */ - -/** - * Remove any scroll indicator - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorReset = function() -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // remove any scroll indicator - if (this.scrollIndicatorWrapper) - { - // remove wrapper (and scroll indicator) - this.scrollIndicatorWrapper.parentElement.removeChild(this.scrollIndicatorWrapper); - - // nullify elements - this.scrollIndicatorWrapper = null; - this.scrollIndicator = null; - - // reset scroll indicator boundaries - this._indicatorMin = 0; - this._indicatorMax = 0; - } -}; - -/** - * Create scroll indicator - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorBuild = function(visible) -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // determine scroll indicator size - var indicatorSize = Math.round(this.mask.offsetHeight * (this.mask.offsetHeight / this.scroller.offsetHeight)); - - // add scroll indicator wrapper - this.scrollIndicatorWrapper = document.createElement('div'); - this.scrollIndicatorWrapper.className = 'List2CtrlScrollIndicatorWrapper'; - this.divElt.appendChild(this.scrollIndicatorWrapper); - - // add scroll indicator - this.scrollIndicator = document.createElement('div'); - this.scrollIndicator.className = 'List2CtrlScrollIndicator'; - if(!visible) - { - this.scrollIndicatorWrapper.style.visibility = 'hidden'; - } - else - { - this.scrollIndicatorWrapper.style.visibility = 'visible'; - } - this.scrollIndicator.style.height = this.m.max(indicatorSize, this.properties.scrollIndicatorMinSize) + 'px'; - this.scrollIndicator.style.top = '0px'; - this.scrollIndicatorWrapper.appendChild(this.scrollIndicator); - - // set scroll indicator boundaries - this._indicatorMin = 0; - this._indicatorMax = this.mask.offsetHeight - this.scrollIndicator.offsetHeight; - - if (this.properties.hasLetterIndex) - { - // hide scroll indicator when letterIndex is enabled - this._hideScrollIndicator(); - } - else - { - // fade out scroll indicator - this._fadeOutScrollIndicator(); - } -}; - -/** - * Update scroll indicator position on drag - * This is fired on _USER_EVENT_MOVE when the - * list is being dragged by touch. - * TAG: touch-only, internal - * ========================= - * @return {integer} scroll indicator position - */ -List2Ctrl.prototype._dragUpdateScrollIndicator = function() -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // determine scroll indicator position - var indicatorPos = Math.round(this._indicatorMax * (this.scroller.offsetTop / this._maxScrollY)); - - // constrain position - indicatorPos = this.m.max(indicatorPos, this._indicatorMin); - - // set new position - this.scrollIndicator.style.top = indicatorPos + 'px'; - - // fade in scroll indicator - this._fadeInScrollIndicator(); - - return indicatorPos; -}; - -/** - * Update scroll indicator position on drag - * Called on scroll animation (flick or scroll ad-hoc) - * TAG: internal - * ========================= - * @param {integer} the new position of the scroller - * @param {integer} the time for animation to the new position - * @return {integer} the new scroll indicator position - */ -List2Ctrl.prototype._updateScrollIndicator = function(pos, time) -{ - // check for time - if (time == undefined || time == null) - { - // get default time - time = this.properties.swipeAnimationDuration; - } - - // determine scroll indicator new position - var newRelativePos = pos / this._maxScrollY; - var newPos = Math.round(newRelativePos * (this._indicatorMax - this._indicatorMin)); - - // start animation - this.scrollIndicator.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.scrollIndicatorAnimationEndCallback = this._scrollIndicatorAnimationEnd.bind(this); - this.scrollIndicator.addEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - this.scrollIndicator.style.top = newPos + 'px'; - - // clear any previously scheduled scroll indicator fade out - clearTimeout(this._scrollIndicatorTimeoutId); - this._scrollIndicatorTimeoutId = null; - - // fade in scroll indicator - this._fadeInScrollIndicator(); - - return newPos; - -}; - - -List2Ctrl.prototype._fadeInScrollIndicator = function() -{ - // check whether scroll indicator needs to fade - if (this.properties.scrollIndicatorFadeTimeout <= 0) - { - return; - } - - this.scrollIndicatorWrapper.style[this._VENDOR + 'TransitionDuration'] = this.properties.scrollIndicatorFadeInDuration + 'ms'; - this.scrollIndicatorWrapper.style.opacity = 1; -}; - -List2Ctrl.prototype._fadeOutScrollIndicator = function() -{ - // check whether scroll indicator needs to fade - if (this.properties.scrollIndicatorFadeTimeout <= 0) - { - return; - } - - // clear any previously-scheduled hiding - clearTimeout(this._scrollIndicatorTimeoutId); - - // schedule hide - this._scrollIndicatorTimeoutId = setTimeout(function() { - this.scrollIndicatorWrapper.style[this._VENDOR + 'TransitionDuration'] = this.properties.scrollIndicatorFadeOutDuration + 'ms'; - this.scrollIndicatorWrapper.style.opacity = 0; - this._scrollIndicatorTimeoutId = null; - }.bind(this), this.properties.scrollIndicatorFadeTimeout); -}; - -List2Ctrl.prototype._hideScrollIndicator = function() -{ - this.scrollIndicatorWrapper.style.opacity = 0; -}; - -List2Ctrl.prototype._showScrollIndicator = function() -{ - this.scrollIndicatorWrapper.style.opacity = 1; -}; - -/** - * ========================= - * TOUCH EVENT HANDLERS - * - Event detection and custom event dispatching - * - Start/Move/End/Out event handling - * - Hit state control - * ========================= - */ - -/** - * Handle any touch event and dispatch appropriate - * custom event. Actual event processing is done in the - * respective handlers of the custom events. The original - * event object is attached to the custom event in its - * event property. - * ========================= - * @param {event} - any touch event - * @return {Boolean} - True if event was processed - */ -List2Ctrl.prototype._touch = function(e) -{ - var touchResult = false; - - switch(e.type) - { - case this._USER_EVENT_START : - // route to letter index first, otherwise route to list - touchResult = this._startIndex(e) || this._start(e); - /* - * Attach temporary listeners to document if we have a positive start. - * These listeners will be removed on _USER_EVENT_END - */ - if (touchResult) - { - document.addEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.addEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.addEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - } - break; - - case this._USER_EVENT_MOVE : - // route to letter index first, otherwise route to list - touchResult = this._moveIndex(e) || this._move(e); - break; - - case this._USER_EVENT_END : - /* - * Remove the document event listeners no matter of these have been - * attached or not. This will prevent any non-existent callbacks firing. - */ - document.removeEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - // route to letter index first, otherwise route to list - touchResult = this._endIndex(e) || this._end(e); - break; - - case this._USER_EVENT_OUT : - this._out(e); - break; - } - - return touchResult; -}; - -/** - * Start Touch on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._start = function(e) -{ - // abort any ongoing scroll - this._abortScroll(e); - - // get mask position and dimensions - this._maskPositionY = this.getPosition(this.mask)[1]; - this._maskPositionX = this.getPosition(this.mask)[0]; - this._maskH = this.mask.offsetHeight; - this._maskW = this.mask.offsetWidth; - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - // reset letter index multicontroller - this._focusStolen = false; - if (relativeY >= 0) - { - this._setLetterIndexMulticontroller(false, true); - - // steal focus - var canGainFocus = this._canGainFocus(e); - if (!this._hasFocus && -1 !== canGainFocus) - { - framework.common.stealFocus(); - this._hasFocus = true; - this._focusStolen = true; - } - } - - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by start reorder rather than regular start - this._startReorder(e); - return true; - } - - this._startItem = this._getTargetItem(e); - this._startDOMItem = this._getDOMItem(this._startItem); - - // make hit - if (this.properties.hitTimeout > 0) - { - // after some time - this._makeHitTimeoutId = setTimeout(this._itemMakeHit.bind(this, e), this.properties.hitTimeout); - } - else - { - // immediately - this._itemMakeHit(e); - } - - // Place focus on the reported available item when focus is stolen - if (this._focusStolen) - { - this._showFocus(canGainFocus, true); - } - - // make toggles hit - this._buttonMakeHit(e); - - // make locks hit - this._lockMakeHit(e); - - // if scrolling during loading is not allowed - if (!this.properties.scrollingDuringLoading && this._inLoading) - { - return false; - } - - // check relative mouse position - if (relativeY < 0) - { - return false; - } - - // check for a valid target item - if (this._startItem == -1) - { - return false; - } - - // get current y - this._y = this.scroller.offsetTop; - this._startY = relativeY; - this._startX = relativeX; - this._startTime = new Date().getTime(); - - // start longpress countdown - this._longPressTimeoutId = setTimeout(this._itemLongPress.bind(this, e), this.properties.longPressTimeout); - - // raise _inDrag - this._inDrag = true; - - // Release secondary MC mode - if (this._inSecondaryMulticontroller && null != this._currentSecondaryMulticontrollerItem && this._startItem != this._currentSecondaryMulticontrollerItem) - { - var temp = this._currentSecondaryMulticontrollerItem; - - // if we are in secondary multicontroller mode, touching outside the item will exit it - this._setSecondaryMulticontroller(false, this._currentSecondaryMulticontrollerItem); - - // Commit the value - if (!this._isLock(temp)) // locks do not commit the value - { - this._triggerFocus(temp); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(temp, 'clear'); - } - } - - // dispatch scroll start event - this._listEvent(this._EVENTS.SCROLL_START, {scrollPosition:this._topItem}); - - // user touched the list -> return True - return true; - -}; - -/** - * Touch move on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._move = function(e) -{ - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by move reorder rather than regular move - this._moveReorder(e); - return true; - } - - if (!this._inDrag) - { - return false; - } - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return false; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - if (relativeY < -this._maskPositionY) - { - // we are out of bounds - this._end(e); - return true; - } - - // calculate travelled distance - var deltaY = relativeY - this._startY; - var deltaX = relativeX - this._startX; - - if (this._inLongPress) - { - return false; - } - - /* - * DRAG DETECTION - * determine whether this is a horizontal or vertical drag - * and raise the horizontal flag - */ - if (null == this._inHorizontalDrag) { - - var alpha = Math.atan2(this.m.abs(deltaX), this.m.abs(deltaY)); - if (alpha < this.properties.hvThreshold) - { - // vertical - this._inHorizontalDrag = false; - } - else - { - // horizontal - this._inHorizontalDrag = true; - this._hDragItem = this._getTargetItem(e); - - // set slideStart - this._slideStart(e); - } - } - - // drag slider - if (this._inHorizontalDrag == true) - { - // we have a horizontal drag -> move sliders - this._slideMove(e); - } - // drag list if scrollable - else if (false == this._inHorizontalDrag && this._isScrollable) - { - // we have a vertical drag and the list can be scrolled - // calculate the scroller's new position and constrain it into bounds - var newPos = this.m.max(this._maxScrollY, this.m.min(this._y + deltaY, this._minScrollY)); - - // drag the scroller if in bounds - this.scroller.style.top = newPos + 'px'; - - // update scroll indicator - this._dragUpdateScrollIndicator(); - - // raise _stopClick flag and remove hit and long press - if (this.m.abs(deltaY) > this.properties.selectThreshold) - { - this._stopSelect = true; - - // remove hit and prevent delayed hit - this._itemRemoveHit(e); - clearTimeout(this._makeHitTimeoutId); - - // remove long press and prevent long press - this._itemRemoveLongPress(e); - clearTimeout(this._longPressTimeoutId); - } - } - // control hit state when not scrollable or when no scrolling occurs (e.g. when we are one of the list extremities) - if (!this._isScrollable || this.m.abs(deltaY) > this.properties.selectThreshold) - { - var targetTop = this._startDOMItem.offsetTop; - if (relativeY < targetTop || relativeY > targetTop + this.properties.itemHeight) - { - // remove hit - this._itemRemoveHit(e); - - // prevent select only on non-scrollable lists - // the scrollable lists are handled in the above case - if (!this._isScrollable) - { - this._stopSelect = true; - } - } - else - { - // make hit - if (this._stopSelect && !this._isScrollable) - { - this._itemMakeHit(e); - } - - // enable select only on non-scrollable lists - // the scrollable lists are handled in the above case - if (!this._isScrollable) - { - this._stopSelect = false; - } - } - } - - // user touched the list -> return True - return true; -}; - -/** - * Touch end on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._end = function(e) -{ - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by end reorder rather than regular end - this._endReorder(e); - return true; - } - - - // remove hit - this._itemRemoveHit(e); - clearTimeout(this._makeHitTimeoutId); // clear hit timeout - // remove long press - this._itemRemoveLongPress(e); - clearTimeout(this._longPressTimeoutId); // clear longpress timeout - - this._startItem = null; - this._startDOMItem = null; - - // reset drag flag and hDrag item - this._inHorizontalDrag = null; - this._hDragItem = null; - - if (!this._inDrag) - { - // this is called without having a drag - return false; - } - - // end any drag of sliders - this._slideEnd(e); - - // set scroll nature - this._scrollNature = 'touch'; - - // detect swipe motion - var endTime = e.timeStamp || new Date().getTime(); - var velocity = endTime - this._startTime; - if (this._focusStolen && !this._stopSelect) - { - // slight drag -> scroll to show focus on the available item when stealing focus - // decide whether to allow offscrean - var focussedIndex = this._getFocussedIndex(); - var allowOffScreen = (focussedIndex > this._topItem && focussedIndex < this._topItem + this.properties.visibleItems); - this._showFocus(focussedIndex, allowOffScreen); - this._focusStolen = false; - } - else if (velocity < this.properties.swipeThreshold && velocity > 0) - { - // get relative mouse position and calculate travelled distance - var relativeY = e.pageY - this._maskPositionY; - var deltaY = relativeY - this._startY; - - // swipte detected - this._startSwipe(deltaY, velocity); - } - else - { - // regular drag -> snap to item bounds - this._snap(this.scroller.offsetTop); - } - - // call touch select logic - this._touchSelectItem(e); - - // reset any previously set flags - this._inDrag = false; - this._stopSelect = false; - this._startTime = 0; - - // user touched the list -> return True - return true; -}; - -/** - * Touch leave on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._out = function(e) -{ - return this._end(e); -}; - - -/** - * Start Touch on letter index - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {boolean} - True if letter index is touched - */ -List2Ctrl.prototype._startIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - // get mask position - this._maskPositionY = this.getPosition(this.mask)[1]; - this._maskPositionX = this.getPosition(this.mask)[0]; - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - if (relativeY < 0) - { - return false; - } - - // hit test letter index - if (relativeX <= this.letterIndexWrapper.offsetLeft) - { - return false; - } - - // steal focus - if (!this._hasFocus) - { - framework.common.stealFocus(); - this._hasFocus = true; - } - - // Enter into letter index multicontroller mode if not already - if (!this._inLetterIndexMulticontroller) - { - this._setLetterIndexMulticontroller(true); - } - - // clear any scheduled letter index select - this._scheduleLetterIndexSelect(null, true); - - // make hit - this._indexMakeHit(e); - - // get start coordinates and time - this._yIndex = this.letterIndex.offsetTop; - this._startIndexY = relativeY; - this._startIndexX = relativeX; - this._startTimeIndex = new Date().getTime(); - - this._inDragIndex = true; - - return true; - -}; - - -List2Ctrl.prototype._moveIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - if (!this._inDragIndex) - { - return false; - } - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return false; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - if (relativeY < -this._maskPositionY) - { - // we are out of bounds - this._endIndex(e); - - return false; - } - - // calculate travelled distance - var deltaY = relativeY - this._startIndexY; - var deltaX = relativeX - this._startIndexX; - - // calculate the letter index's new position and constrain it into bounds - var newPos = this.m.max(this._maxScrollYIndex, this.m.min(this._yIndex + deltaY, this._minScrollYIndex)); - - // drag the letter index if in bounds - this.letterIndex.style.top = newPos + 'px'; - - // raise _stopClick flag - if (this.m.abs(deltaY) > this.properties.selectThreshold) - { - this._stopSelect = true; - - // remove hit - this._indexRemoveHit(e); - } - - return true; - -}; - - -List2Ctrl.prototype._endIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - // remove hit - this._indexRemoveHit(e); - - if (!this._inDragIndex) - { - return false; - } - - if (!this._stopSelect) - { - // snap position - this._snapIndex(this.letterIndex.offsetTop); - - // select letter index - var letterIndex = this._getTargetLetterIndex(e); - this._letterIndexSelect(letterIndex, 'Touch'); - } - else - { - // detect swipe motion - var endTime = e.timeStamp || new Date().getTime(); - var velocity = endTime - this._startTimeIndex; - if (velocity < this.properties.swipeThreshold && velocity > 0) - { - // get relative mouse position and calculate travelled distance - var relativeY = e.pageY - this._maskPositionY; - var deltaY = relativeY - this._startIndexY; - - // swipte detected - this._startSwipeIndex(deltaY, velocity); - } - else - { - // snap position - this._snapIndex(this.letterIndex.offsetTop); - - // schedule letter index select if letter is enabled - var letterIndex = this._getTargetLetterIndex(e); - if (!this.letterIndexData[letterIndex].disabled) - { - this._scheduleLetterIndexSelect(letterIndex); - } - } - } - - // reset flags - this._inDragIndex = false; - this._stopSelect = false; - - return true; -}; - - - -/** - * Select item - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {void} - */ -List2Ctrl.prototype._touchSelectItem = function(e) -{ - // clear any hit timeout - clearTimeout(this._makeHitTimeoutId); - - // if we are not allowed to select (when in drag) - if (this._stopSelect) - { - this._stopSelect = false; - return; - } - - // select during loading is not allowed - if (this._inLoading) - { - return; - } - - var itemIndex; - var fireSelect = true; - var additionalModifier = null; - var params = {}; - - // determine target item - itemIndex = this._getTargetItem(e); - - // only valid list items can fire the select callback - if (itemIndex == -1) - { - return; - } - - // ensure that we end up on the same item where we started so that the select is valid - if (itemIndex != this._getFocussedIndex()) - { - return; - } - - // perform any additional touch processing for some items before issuing select callback - if (this._isToggle(itemIndex)) - { - // the target contains toggle buttons -> select toggle buttons - var toggleSelected = this._buttonSelect(e); - if ('cancel' == toggleSelected) - { - fireSelect = false; - } - else if (null != toggleSelected) - { - params = { additionalData:toggleSelected }; - additionalModifier = 'preventSimpleSelect'; - } - - } - - if (this._isSlider(itemIndex)) - { - // the target contains a slider -> disable select only if the slider is adjustable - if (this.dataList.items[itemIndex].allowAdjust) - { - fireSelect = false; - } - } - - if (this._isStep(itemIndex) && this._hasSecondaryMulticontroller(itemIndex) && this._inSecondaryMulticontroller) - { - // if we are in secondary multicontroller and the item is a step item - var stepResult = this._stepAdjust(e); - if ('commit' === stepResult) - { - params = { finalAdjust:true, value:this.dataList.items[itemIndex].value }; - additionalModifier = 'exitSecondaryMulticontroller'; - } - else if (null != stepResult) - { - params = { finalAdjust:false, value:stepResult }; - } - else - { - fireSelect = false; - } - } - else if (this._isStep(itemIndex) && this._hasSecondaryMulticontroller(itemIndex) && !this._inSecondaryMulticontroller) - { - // if we are not in secondary multicontroller and the item is step item - this._setSecondaryMulticontroller(true, itemIndex); - fireSelect = false; - - // produce beep - this._beep('Short', 'Touch'); - } - - if (this._isLock(itemIndex) && this._hasSecondaryMulticontroller(itemIndex)) - { - // the target is a lock item - var lockAction = this._lockSelect(e); - if (null == lockAction) - { - fireSelect = false; - } - else - { - // prepare params - params = { additionalData:lockAction }; - additionalModifier = 'exitSecondaryMulticontroller'; - } - } - - // prevent select on disabled items - if (this.dataList.items[itemIndex].disabled) - { - fireSelect = false; - } - - // everything looks ok -> call internal _itemSelect() method if the item permits it - if (fireSelect) - { - // fire select only if no long press / hold start has been issued - if (!this._longPressIssued) - { - // produce beep - this._beep('Short', 'Touch'); - - this._itemSelect(itemIndex, params, additionalModifier); - } - // otherwise fire holdStop Callback on shortAndHold items - else if ('shortAndHold' === this.dataList.items[itemIndex].itemBehavior) - { - this._itemHoldStop(itemIndex); - } - } - - // lower long-press/hold-start flag - this._longPressIssued = false; - -}; - -/** - * Exit hit state of the currently hit item - * ========================= - * @return {void} - */ -List2Ctrl.prototype._itemRemoveHit = function() -{ - var hitItems = this.scroller.querySelectorAll('.hit'); - - if (hitItems.length) - { - for (var i=0, l=hitItems.length; i= this.dataList.itemCount || this.dataList.items[itemIndex].disabled) - { - return; - } - - var returnValue = null; - - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'styleOnOff' : - // get and update current value - var currentValue = this.dataList.items[itemIndex].value; - var newValue = (1 === currentValue) ? 2 : 1; - this.dataList.items[itemIndex].value = newValue; - - // get and update DOM item - var domItem = this._getDOMItem(itemIndex); - if (domItem) - { - if (1 === newValue) - { - domItem.classList.add('checked'); - } - else - { - domItem.classList.remove('checked'); - } - } - returnValue = newValue; - break; - - case 'style10' : - case 'style11' : - // Note: settle timeout is registered in this._buttonActivate - this._buttonSelectRight(itemIndex); - returnValue = this.dataList.items[itemIndex].value; - break; - - case 'style03' : - case 'style03a' : - var currentValue = this.dataList.items[itemIndex].checked; - switch (this.dataList.items[itemIndex].image1) - { - case 'tick' : - if (!currentValue) - this._setTick(itemIndex, !currentValue); - break; - case 'radio' : - if (!currentValue) - this._setRadio(itemIndex, !currentValue); - break; - case 'checkbox' : - this._setCheckBox(itemIndex, !currentValue); - break; - } - returnValue = this.dataList.items[itemIndex].checked; - break; - - default : - log.warn('Lis2: No simple select behavior for item style ' + this.dataList.items[itemIndex].itemStyle); - break; - } - - return returnValue; - -}; - -/** - * Fire select callback on an item. - * This function is called whenever a select event - * occurs. It is a single call point for all selects - * and should be invoked whether select event is intended. - * TAG: internal - * ========================= - * @param {integet} - item index - * @return {boolean} - true if there's a valid selectCallback - */ -List2Ctrl.prototype._itemSelect = function(itemIndex, paramsModifier, additionalModifier) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - // get paramsModifier - var paramsModifier = paramsModifier || {}; - - // get additionalModifier - var additionalModifier = additionalModifier || null; - - var appData = null; - var additionalData = null; - var params = {}; - - // event filtering - var filterEvent = false; - - if (this._isSlider(itemIndex)) - { - // the item contains a slider - additionalData = this.dataList.items[itemIndex].value; - } - - if (this._isSimpleSelectItem(itemIndex)) - { - // the item is simple select item - if ('preventSimpleSelect' != additionalModifier) - { - // process simple select behavior before firing the select callback - additionalData = this._simpleSelect(itemIndex); - } - - // apply event filter - var filterType = (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) ? 'toggle' : (this._isCheckBox(itemIndex)) ? 'check' : null; - filterEvent = this._applyEventFilter(itemIndex, filterType); - } - else if (this._isStep(itemIndex) && 'exitSecondaryMulticontroller' === additionalModifier) - { - this._setSecondaryMulticontroller(false, itemIndex); - } - else if (this._isLock(itemIndex) && 'exitSecondaryMulticontroller' === additionalModifier) - { - // restore focus and remove any secondary multicontroler - this._showFocus(this._lastItemWithFocus); - this._lockShowFocus(itemIndex, 'clear'); - this._setSecondaryMulticontroller(false, itemIndex); - } - else if (this._isStep(itemIndex)) - { - // apply event filter - var filterType = "step"; - filterEvent = this._applyEventFilter(itemIndex, filterType); - } - - // is this filtered event? - if (filterEvent) - { - return false; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - // merge params with params modifier - for (var i in paramsModifier) - { - params[i] = paramsModifier[i]; - } - - // return value - var result = false; - - // do not fire select on disabled items but instead fire select disabled - if (this.dataList.items[itemIndex].disabled) - { - // fire select disabled callback - if (typeof this.properties.selectDisabledCallback == 'function') - { - /* - * Handles touches on disabled list items - * @param ctrlObj Object Reference to the list control that was selected - * @param btnData Object Data that was attached to the selected item - * @param params Object Object containing extra data - */ - result = this.properties.selectDisabledCallback(this, appData, params); - - // set result to true if nothing is returned from the select callback - if (undefined == result) - { - result = true; - } - } - } - else - { - // fire select callback - if (typeof this.properties.selectCallback == 'function') - { - /* - * Handles select on list items - * @param ctrlObj Object Reference to the list control that was selected - * @param btnData Object Data that was attached to the selected item - * @param params Object Object containing extra data - */ - result = this.properties.selectCallback(this, appData, params); - - // set result to true if nothing is returned from the select callback - if (undefined == result) - { - result = true; - } - } - - // dispatch select event - this._listEvent(this._EVENTS.ITEM_SELECT, params); - } - - if (this._hasData(itemIndex)) - { - // record this event and clear any timeouts - this.dataList.items[itemIndex]._data.lastEvent = new Date().getTime(); - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = null; - } - - return result; -}; - -/** - * Fire long press callback on an item. - * This function is called whenever a select event - * occurs. It is a single call point for all selects - * and should be invoked whether select event is intended. - * TAG: internal - * ========================= - * @param {event|integer} - raw touch/mouse event or directly the index of the item - * @return {boolean} - true if there's a valid longPressCallback - */ -List2Ctrl.prototype._itemLongPress = function(e) -{ - var eventCause = null; - var itemIndex = -1; - - // the parameter is an event - if (typeof e == 'object') - { - // determine target item - itemIndex = this._getTargetItem(e);var itemIndex = this._getTargetItem(e); - eventCause = 'Touch'; - } - // the parameter is an index - else if (!isNaN(e)) - { - itemIndex = e; - eventCause = 'Multicontroller'; - } - - // if the item is short-press-only -> prevent any longpress activity - if ('shortPressOnly' === this.dataList.items[itemIndex].itemBehavior) - { - return; - } - // if the item has itemBehavior other than shortAndLong and shortAndHold -> this is invalid property and prevent any longpress activity - else if ('shortAndLong' != this.dataList.items[itemIndex].itemBehavior && 'shortAndHold' != this.dataList.items[itemIndex].itemBehavior) - { - log.warn('Lis2: Invalid itemBehavior property. Item behavior can be shortPressOnly / shortAndLong / shortAndHold'); - return; - } - - // make it long-pressed - this._itemMakeLongPress(e); - - var appData = null; - var additionalData = null; - var params = {}; - - if (this._isSlider(itemIndex)) - { - // the target has a slider - additionalData = this.dataList.items[itemIndex].value; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - - // return value - var result = false; - - // produce beep - this._beep('Long', eventCause); - - // fire long press callback - if ('shortAndLong' === this.dataList.items[itemIndex].itemBehavior && typeof this.properties.longPressCallback == 'function') - { - /* - * Handles long press on list items - * @param ctrlObj Object Reference to the list control that was long-pressed - * @param btnData Object Data that was attached to the long-pressed item - * @param params Object Object containing extra data - */ - this.properties.longPressCallback(this, appData, params); - - result = true; - } - // fire hold start callback - else if ('shortAndHold' === this.dataList.items[itemIndex].itemBehavior && typeof this.properties.holdStartCallback == 'function') - { - /* - * Handles hold start on list items - * @param ctrlObj Object Reference to the list control that was long-held - * @param btnData Object Data that was attached to the long-held item - * @param params Object Object containing extra data - */ - this.properties.holdStartCallback(this, appData, params); - - result = true; - } - - // raise the flag for long-press/hold-start issued callback - this._longPressIssued = true; - - // enter into list reorder on long press if the list supports it - if (this.properties.listReorder) - { - this._enterListReorder(); - this._startReorder(e); - } - - return result; -}; - - -/** - * Fire hold stop on an item. - * This function is called whenever the user ends touch - * on an item that has itemBehavior = shortAndHold - * TAG: internal, touch-only - * ========================= - * @param {integet} - item index - * @return {boolean} - true if there's a valid holdStopCallback - */ -List2Ctrl.prototype._itemHoldStop = function(itemIndex) -{ - // validate item behavior property - if ('shortAndHold' != this.dataList.items[itemIndex].itemBehavior) - { - return; - } - - var appData = null; - var additionalData = null; - var params = {}; - - if (this._isSlider(itemIndex)) - { - // the target has a slider - additionalData = this.dataList.items[itemIndex].value; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - - // return value - var result = false; - - // fire hold stop callback - if (typeof this.properties.holdStopCallback == 'function') - { - /* - * Handles hold stop on list items - * @param ctrlObj Object Reference to the list control that was long-held - * @param btnData Object Data that was attached to the long-held item - * @param params Object Object containing extra data - */ - this.properties.holdStopCallback(this, appData, params); - - result = true; - } - - return result; -}; - -/** - * Perform outbound event filtering - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - filter type - * @return {boolean} - whethet to filter the event or not - */ -List2Ctrl.prototype._applyEventFilter = function(itemIndex, filterType) -{ - var filter = false; - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return filter; - } - - var now = new Date().getTime(); - - switch (filterType) - { - case 'toggle' : - var difference = now - this.dataList.items[itemIndex]._data.lastEvent; - if (difference < this.dataList.items[itemIndex].minChangeInterval) - { - // too soon -> filter the immediate event and send it later - log.debug('Event filtered'); - filter = true; - - // schedule callback - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = setTimeout(this._filterTimeoutCallback.bind(this, itemIndex, filterType), this.dataList.items[itemIndex].minChangeInterval - difference); - } - else - { - // timing is ok -> pass the event and clear any scheduled selects - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - - // register settle timeout - this._registerSettleTimeout(itemIndex, 'toggle'); - } - break; - - case 'check' : - var difference = now - this.dataList.items[itemIndex]._data.lastEvent; - if (difference < this.properties.checkMinChangeInterval) - { - // too soon -> filter the immediate event and send it later - log.debug('Event filtered'); - filter = true; - - // schedule callback - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = setTimeout(this._filterTimeoutCallback.bind(this, itemIndex, filterType), this.properties.checkMinChangeInterval - difference); - } - else - { - // timing is ok -> pass the event and clear any scheduled selects - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - - // register settle timeout - if ('radio' === this.dataList.items[itemIndex].image1 || - 'tick' === this.dataList.items[itemIndex].image1 || - 'checkbox' === this.dataList.items[itemIndex].image1) - { - var itemType = this.dataList.items[itemIndex].image1; - this._registerSettleTimeout(itemIndex, itemType); - } - } - break; - - case 'step' : - var difference = now - this.dataList.items[itemIndex]._data.lastEvent; - - if (this.properties.stepMinChangeInterval !== 0 && difference < this.properties.stepMinChangeInterval) - { - // too soon -> filter the immediate event and send it later - log.debug('Event filtered'); - filter = true; - - // schedule callback - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = setTimeout(this._filterTimeoutCallback.bind(this, itemIndex, filterType), this.properties.stepMinChangeInterval - difference); - } - else - { - // timing is ok -> pass the event and clear any scheduled selects - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - } - break; - } - - return filter; -}; - -/** - * Timeout callback that is run if a select event - * is scheduled by the outbound filtering mechanism - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - filter type - * @return {void} - */ -List2Ctrl.prototype._filterTimeoutCallback = function(itemIndex, filterType) -{ - switch (filterType) - { - case 'toggle' : - this._itemSelect(itemIndex, { additionalData : this.dataList.items[itemIndex].value }, 'preventSimpleSelect'); - - // register settle timeout - this._registerSettleTimeout(itemIndex, 'toggle'); - break; - - case 'check' : - this._itemSelect(itemIndex, { additionalData : this.dataList.items[itemIndex].checked }, 'preventSimpleSelect'); - - // register settle timeout - if ('radio' === this.dataList.items[itemIndex].image1 || - 'tick' === this.dataList.items[itemIndex].image1 || - 'checkbox' === this.dataList.items[itemIndex].image1) - { - var itemType = this.dataList.items[itemIndex].image1; - this._registerSettleTimeout(itemIndex, itemType); - } - break; - case 'step' : - this._itemSelect(itemIndex, { value : this.dataList.items[itemIndex].value }, 'preventSimpleSelect'); - break; - } -}; - -/** - * Register a settle timeout on any new user input. - * Any previous settle timeout should get cleared - * before setting a new one. The timeout state should - * be checked when public API call is made and depending - * on whether the timeout is running or not, the value - * will be cached or applied to the item. - * The settle time acts as an inbound event filtering mechanism. - * TAG: internal - * ========================= - * @param {integer} - itemIndex - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {void} - */ -List2Ctrl.prototype._registerSettleTimeout = function(itemIndex, itemType) -{ - log.debug('Settle scheduled'); - this._clearSettleTimeout(itemIndex, itemType); - - // schedule settle item - switch (itemType) - { - case 'radio' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - this._radioSettleTimeoutId = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - case 'tick' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - this._tickSettleTimeoutId = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - break; - case 'checkbox' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - this.dataList.items[itemIndex]._data.settleTimeout = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - break; - case 'toggle' : - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - this.dataList.items[itemIndex]._data.settleTimeout = setTimeout(this._settleItem.bind(this, itemIndex), this.dataList.items[itemIndex].settleTime); - } - break; - } -}; - -/** - * Clear any settle timeouts on any user input. - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {void} - */ -List2Ctrl.prototype._clearSettleTimeout = function(itemIndex, itemType) -{ - switch (itemType) - { - case 'radio' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - clearTimeout(this._radioSettleTimeoutId); - this._radioSettleTimeoutId = null; - } - case 'tick' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - clearTimeout(this._tickSettleTimeoutId); - this._tickSettleTimeoutId = null; - } - break; - - case 'checkbox' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - clearTimeout(this.dataList.items[itemIndex]._data.settleTimeout); - this.dataList.items[itemIndex]._data.settleTimeout = null; - } - break; - - case 'toggle' : - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - clearTimeout(this.dataList.items[itemIndex]._data.settleTimeout); - this.dataList.items[itemIndex]._data.settleTimeout = null; - } - break; - } -}; - -/** - * Performs a check whether a settlie timeout - * is running for a particular item, radio group - * or tick group. - * ========================= - * @param {integer} - item index - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {Boolean} - True if a settle timeout is running - */ -List2Ctrl.prototype._hasSettleTimeout = function(itemIndex, itemType) -{ - var timeoutRunning = false; - - switch (itemType) - { - case 'radio' : - if (null !== this._radioSettleTimeoutId && this._radioSettleTimeoutId >= 0) - { - timeoutRunning = true; - } - break; - - case 'tick' : - if (null !== this._tickSettleTimeoutId && this._tickSettleTimeoutId >= 0) - { - timeoutRunning = true; - } - break; - - case 'checkbox' : - case 'toggle' : - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return timeoutRunning; - } - - if (null !== this.dataList.items[itemIndex]._data.settleTimeout && this.dataList.items[itemIndex]._data.settleTimeout >= 0) - { - timeoutRunning = true; - } - break; - } - - return timeoutRunning; -}; - -/** - * Settle an item after the settle time expires. - * The cached value (if any) gets assigned as a - * real value to the item and the item is updated. - * This is the settleTimeout callback. - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {Boolean} - True if the item is successfully settled - */ -List2Ctrl.prototype._settleItem = function(itemIndex) -{ - // exit if we don't have any items (nothing to show the focus) - if (!this.hasDataList()) - { - return false; - } - - // exit if the item index is out of range - if (isNaN(itemIndex) || itemIndex < 0 || itemIndex >= this.dataList.items.length) - { - return false; - } - - var item = this.dataList.items[itemIndex]; - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return false; - } - - // get settle value and set it as real value, and update item - var settleValue = item._data.settleValue; - - - - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - if (null != item._data.settleValue) - { - // set real value - item.value = settleValue; - this.updateItems(itemIndex, itemIndex); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - item._data.settleTimeout = null; - } - else if (this._isCheckBox(itemIndex)) - { - // Note: setting the real value is done in the helpers - switch (item.image1) - { - case 'checkbox' : - if (null != item._data.settleValue) - { - // set real value - this._setCheckBox(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - item._data.settleTimeout = null; - break; - - case 'radio' : - if (null != item._data.settleValue) - { - // set real value - this._setRadio(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - this._radioSettleTimeoutId = null; - break; - - case 'tick' : - if (null != item._data.settleValue) - { - // set real value - this._setTick(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - this._tickSettleTimeoutId = null; - break; - } - } - else - { - // item does not support settlement - return false; - } - - log.debug('Settle item: ' + itemIndex + ', value: ' + settleValue); - - // return success - return true; - -}; - - -/** - * ========================= - * MULTICONTROLLER AND VUI - * ========================= - */ - -/** - * Main multicontroller handler - * TAG: multicontroller-only, public - * ========================= - * @param {string} - multicontroller event - * @return {string} - event consumed - */ -List2Ctrl.prototype.handleControllerEvent = function(eventID) -{ - log.debug("handleController() called, eventID: " + eventID); - - /* - * eventID - * - acceptFocusInit (sent on instantiation) - * - acceptFocusFromLeft - * - acceptFocusFromRight - * - acceptFocusFromTop - * - acceptFocusFromBottom - * - lostFocus - * - touchActive - * ... - */ - - var response; - - // ignore certain MC events when the list is in motion by touch - if (this._inDrag || (this._inScroll && 'touch' === this._scrollNature)) - { - switch (eventID) - { - case "acceptFocusInit" : - case "acceptFocusFromLeft" : - case "acceptFocusFromRight" : - case "acceptFocusFromTop" : - case "acceptFocusFromBottom" : - case "lostFocus" : - case "touchActive" : - case "controllerActive" : - // pass these events - break; - default : - // ignore everything else - return "ignored"; - break; - } - } - - if (!this._inSecondaryMulticontroller) - { - // we are in primary multicontroller mode - switch (eventID) - { - case "acceptFocusInit": - // consume event by default - response = "consumed"; - - // Input mode change to multicontroller - this._inputMode = 'controller'; - /* - * this event is received every time a template is displayed - * if we already have preset a focus item, do not set it again - */ - // Show focus animation - this._showFocusAnimation = true; - if ('restore' != this._initialScrollMode) - { - this._hasFocus = true; - var itemToGainFocus = this._canGainFocus('controllerActive'); - if (-1 !== itemToGainFocus) - { - this._showFocus(itemToGainFocus); - } - else - { - if (this.hasDataList()) - { - // we have data list and there are no enabled items -> give focus to the left - response = 'giveFocusLeft'; - } - else - { - // we probably dont't have a data list -> wait untul we get it - this._showFocus(this.properties.focussedItem); - } - } - } - else - { - this._showFocus(this.properties.focussedItem); - } - break; - - case "acceptFocusFromLeft": - // Show focus animation - this._showFocusAnimation = true; - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromRight": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromTop": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromBottom": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "lostFocus": - this._hideFocus(); - this._hideFocusLetterIndex(); - this._hasFocus = false; - response = "consumed"; - break; - - case "touchActive": - // Input mode change to touch - this._inputMode = 'touch'; - this._hideFocus(); - response = "consumed"; - break; - - case "controllerActive": - response = "consumed"; - break; - - case "cw": - // Rotate Right (CW) - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCCW(); - break; - - case "ccw": - // Rotate Left (CCW) - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCCCW(); - break; - - case "downStart": - // Tilt Down Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCDown(); - - // schedule autoscroll behavior only if not in list reorder - if (!this._inListReorder) - { - clearTimeout(this._tiltHoldTimeoutId); // clear any redundant timeouts - this._tiltHoldTimeoutId = null; - log.debug('Schedule autoscroll tier 1'); - this._tiltHoldTimeoutId = setTimeout(function() { // schedule first autoscroll tier - this._beep('Long', 'Multicontroller'); // produce beep - log.debug('Start autoscroll tier 1'); - this._handleMCDown(); // do the first scroll down - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals - this._tiltHoldIntervalId = null; - log.debug('Schedule autoscroll tier 2'); - this._tiltHoldIntervalId = setInterval(this._handleMCDown.bind(this), this.properties.autoscrollTier1Interval); // schedule auto scroll down for first tier - if (!this._inLetterIndexMulticontroller) - { - this._tiltHoldTimeoutId = setTimeout(function() { // schedule second autoscroll tier only if not in letter index multicontroller - log.debug('Start autoscroll tier 2'); - this._scrollDownPage(); // do the first scroll down - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals from the first tier - this._tiltHoldIntervalId = null; - this._tiltHoldIntervalId = setInterval(this._scrollDownPage.bind(this), this.properties.autoscrollTier2Interval); // schedule auto scroll down for second tier - }.bind(this), this.properties.autoscrollTier2Timeout); - } - }.bind(this), this.properties.autoscrollTier1Timeout); - } - - break; - - case "down" : - // Tilt Down Stop - - if ('downStart' === this._lastControllerEvent) - { - log.debug('Clear any scheduled autoscrolls'); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - this._tiltHoldTimeoutId = null; - this._tiltHoldIntervalId = null; - - // schedule letter index select - if (this._inLetterIndexMulticontroller) - { - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - } - - response = "consumed"; - } - else - { - // ignore any downs without downStarts - response = "ignored"; - } - - break; - - case "upStart": - // Tilt Up Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCUp(); - - // schedule autoscroll behavior only if not in list reorder - if (!this._inListReorder) - { - clearTimeout(this._tiltHoldTimeoutId); // clear any redundant timeouts - this._tiltHoldTimeoutId = null; - log.debug('Schedule autoscroll tier 1'); - this._tiltHoldTimeoutId = setTimeout(function() { // schedule first autoscroll tier - this._beep('Long', 'Multicontroller'); // produce beep - log.debug('Start autoscroll tier 1'); - this._handleMCUp(); // do the first scroll up - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals - this._tiltHoldIntervalId = null; - log.debug('Schedule autoscroll tier 2'); - this._tiltHoldIntervalId = setInterval(this._handleMCUp.bind(this), this.properties.autoscrollTier1Interval); // schedule auto scroll up for first tier - if (!this._inLetterIndexMulticontroller) - { - this._tiltHoldTimeoutId = setTimeout(function() { // schedule second autoscroll tier only if not in letter index multicontroller - log.debug('Start autoscroll tier 2'); - this._scrollUpPage(); // do the first scroll up - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals from the first tier - this._tiltHoldIntervalId = null; - this._tiltHoldIntervalId = setInterval(this._scrollUpPage.bind(this), this.properties.autoscrollTier2Interval); // schedule auto scroll up for second tier - }.bind(this), this.properties.autoscrollTier2Timeout); - } - }.bind(this), this.properties.autoscrollTier1Timeout); - } - - break; - - case "up": - // Tilt Up Stop - - if ('upStart' === this._lastControllerEvent) - { - log.debug('Clear any scheduled autoscrolls'); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - this._tiltHoldTimeoutId = null; - this._tiltHoldIntervalId = null; - - // schedule letter index select - if (this._inLetterIndexMulticontroller) - { - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - } - - response = "consumed"; - } - else - { - // ignore any ups without upStarts - response = "ignored"; - } - - break; - - case "leftStart": - // Tilt Left Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - else if (this.letterIndexData.length && this._inLetterIndexMulticontroller) - { - // Exit letter index multicontroller mode - this._setLetterIndexMulticontroller(false); - } - else - { - // Return - log.debug("No TabsCtrl. Return giveFocusLeft..."); - response = "giveFocusLeft"; - } - break; - - case "left": - // Tilt Left Stop - - if ('leftStart' === this._lastControllerEvent) - { - response = "ignored"; - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - } - else - { - // ignore any lefts without leftStarts - response = "ignored"; - } - break; - - case "rightStart": - // Tilt Right Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - else if (this.letterIndexData.length && !this._inLetterIndexMulticontroller) - { - // Enter into letter index multicontroller mode - this._setLetterIndexMulticontroller(true); - response = "consumed"; - } - else - { - // Return - log.debug("No TabsCtrl. Return giveFocusRight..."); - response = "giveFocusRight"; - } - break; - - - case "right": - // Tilt Right Stop - - if ('rightStart' === this._lastControllerEvent) - { - response = "ignored"; - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - } - else - { - // ignore any rights without rightStarts - response = "ignored"; - } - break; - - - case "selectStart": - // SelectStart (press down) - - if (this._inLetterIndexMulticontroller) - { - // get the focussed letter index - var focussedLetterIndex = this._getFocussedLetterIndex(); - - // make focussed letter index hit - this._indexMakeHit(focussedLetterIndex); - } - else - { - // get the focussed index - var focussedIndex = this._getFocussedIndex(); - - // make focussed index hit - this._itemMakeHit(focussedIndex); - - // start longpress countdown - this._longPressTimeoutId = setTimeout(this._itemLongPress.bind(this, focussedIndex), this.properties.longPressTimeout); - } - - // always consume selectStart - response = "consumed"; - - break; - - case "select": - // Select (press down) - - if ('selectStart' === this._lastControllerEvent) - { - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // remove long press - this._itemRemoveLongPress(); - clearTimeout(this._longPressTimeoutId); // clear longpress timeout - - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // fire letter index select - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._letterIndexSelect(currentFocussedLetterIndex, 'Multicontroller'); - } - else - { - if (this.properties.listReorder) - { - // if we are reordering lists (hence pressing down does not produce select event) - if (!this._inListReorder) - { - - // get focussed index - var focussedIndex = this._getFocussedIndex(); - - // check if focussed index is indeed eligable for list reorder - if ('shortAndLong' === this.dataList.items[focussedIndex].itemBehavior) - { - // we are about to begin list reorder - this._enterListReorder(); - } - - } - else - { - // we finish list reorder - this._releaseListReorder(); - } - - } - else - { - // if we are in normal mode - not reordering list - - // get the focussed index - var focussedIndex = this._getFocussedIndex(); - - // does the element have secondary multicontroller behavior? - if (this._hasSecondaryMulticontroller(focussedIndex) && this._isSlider(focussedIndex)) - { - if (this.dataList.items[focussedIndex].allowAdjust) - { - // this item has secondary select and is adjustable slider -> enter into secondary multicontroller mode - this._setSecondaryMulticontroller(true); - } - else - { - // this item has secondary select but is not adjustable -> trigger focus - this._triggerFocus(); - } - } - else if (this._hasSecondaryMulticontroller(focussedIndex)) - { - // this item has secondary select -> enter into secondary multicontroller mode - this._setSecondaryMulticontroller(true); - } - else - { - // this is a regular item -> trigger focus - this._triggerFocus(); - } - - } - } - - // consume Select only after selectStart is consumed - response = "consumed"; - } - else - { - // ignore any selects without selectStarts - response = "ignored"; - } - - break; - - default: - // No action - response = "ignored"; - break; - } - - } - else - { - // we are in secondary multicontroller mode - response = this._handleControllerEventSecondary(eventID); - } - - // keep track of the last consumed event - if ('consumed' === response) - { - this._lastControllerEvent = eventID; - } - - /* - * returns - * - giveFocusLeft (control retains highlight unless it later gets lostFocus event) - * - giveFocusRight - * - giveFocusUp - * - giveFocusDown - * - consumed (always returned on select event, and if control adjusted highlight) - * - ignored (returned only if control doesn't know about focus) - */ - - log.debug("Event: " + eventID + " -> " + "Response: " + response); - - return response; - -}; - -/** - * Handle multicontroller clockwise rotation event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCCW = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleLetterIndexItems - 2; - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocusLetterIndex('down'); - } - else if (this._topLetterIndex === this.letterIndexData.length - this.properties.vivisibleLetterIndexItemssibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('down'); - } - - // we need to go back to the beginning in order to scroll up - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - - // schedule letter index select - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOneIndex(); - } - } - else - { - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleItems - 2; - - // if we are in list reorder mode - push the draggable item down and set focus on it - if (this._inListReorder) - { - this._reorderItemDown(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - // we are not in list reorder mode -> do regular focus scroll - else - { - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocus('down'); - } - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocus('down'); - } - else if (rfi > bottomFocusThreshold) - { - // the focus is past the bottom focus threshold -> do not move it any more - // this._showFocus('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOne(); - } - - } - - return 'consumed'; -}; - -/** - * Handle multicontroller counter clockwise rotation event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCCCW = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus down - this._showFocusLetterIndex('up'); - } - else if (this._topLetterIndex === 0) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('up'); - } - - // we need to go back to the beginning in order to scroll up - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - - // schedule letter index select - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi < 1) - { - this._scrollUpOneIndex(); - } - - } - else - { - - // if we are in list reorder mode - push the draggable item down and set focus on it - if (this._inListReorder) - { - this._reorderItemUp(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - // we are not in list reorder mode -> do regular focus scroll - else - { - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus up - this._showFocus('up'); - } - else if (this._topItem === 0) - { - // we are at the beginning -> move the focus to the first item - this._showFocus('up'); - } - else if (rfi === 0) - { - // the focus is on the top item -> do not move it any more - // this._showFocus('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus is at the first item - if (rfi < 1) - { - this._scrollUpOne(); - } - - } - - return 'consumed'; -}; - -/** - * Handle multicontroller down tilt event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCDown = function() -{ - - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleLetterIndexItems - 2; - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocusLetterIndex('down'); - } - else if (this._topLetterIndex === this.letterIndexData.length - this.properties.vivisibleLetterIndexItemssibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOneIndex(); - } - - } - else - { - if (this._inListReorder) - { - this._reorderItemDown(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - else - { - var bottomFocusThreshold = this.properties.visibleItems - 2; - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocus('down'); - } - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocus('down'); - } - else if (rfi > bottomFocusThreshold) - { - // the focus is past the bottom focus threshold -> do not move it any more - // this._showFocus('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOne(); - } - - } - - return 'consumed'; -}; - - -/** - * Handle multicontroller up tilt event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCUp = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus down - this._showFocusLetterIndex('up'); - } - else if (this._topLetterIndex === 0) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi < 1) - { - this._scrollUpOneIndex(); - } - - } - else - { - if (this._inListReorder) - { - // if we are in list reorder mode - push the draggable item up and set focus on it - this._reorderItemUp(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - var rfi = this._getRelativeFocussedIndex(); - } - else - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus up - this._showFocus('up'); - } - else if (this._topItem === 0) - { - // we are at the beginning -> move the focus to the first item - this._showFocus('up'); - } - else if (rfi === 0) - { - // the focus is on the top item -> do not move it any more - // this._showFocus('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus is at the first item - if (rfi < 1) - { - this._scrollUpOne(); - } - - } - - return 'consumed'; -}; - - -/** - * handle controller event and apply it on items that are in secondary multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {string} - multicontroller event - * @return {string} - event consumed - */ -List2Ctrl.prototype._handleControllerEventSecondary = function(eventID) -{ - // get the index - var focussedIndex = this._getFocussedIndex(); - - // handle event - switch (eventID) - { - case "up" : - // leave secondary multicontroller mode - this._setSecondaryMulticontroller(false); - if (!this._isLock(focussedIndex)) - { - // trigger focus only on non-lock items - this._triggerFocus(); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(focussedIndex, 'clear'); - } - - // move the focus up - this._showFocus('up'); - - // get relative focussed index after moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // we need to go back to the beginning in order to scroll up - if (rfi < 1) - { - this._scrollUpOne(); - } - break; - - - case "down" : - // leave secondary multicontroller mode - this._setSecondaryMulticontroller(false); - - if (!this._isLock(focussedIndex)) - { - // trigger focus only on non-lock items - this._triggerFocus(); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(focussedIndex, 'clear'); - } - - // move the focus down - this._showFocus('down'); - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleItems - 2; - // get relative focussed index after moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // we need to go to the end in order to scroll down - if (rfi >= bottomFocusThreshold) - { - this._scrollDownOne(); - } - break; - - case "leftStart" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass event to slider - this._activeSlider.slider.handleControllerEvent('leftStart'); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepDown(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusLeft(focussedIndex); - } - - break; - - case "left" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent('left'); - } - break; - - case "ccw" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent(eventID); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepDown(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusLeft(focussedIndex); - } - - break; - - case "rightStart" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass event to slider - this._activeSlider.slider.handleControllerEvent('rightStart'); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepUp(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusRight(focussedIndex); - } - - break; - - case "right" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent('right'); - } - - break; - - case "cw" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent(eventID); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepUp(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusRight(focussedIndex); - } - - break; - - case "select": - // leave secondary multicontroller mode and trigger focus - this._setSecondaryMulticontroller(false); - this._showFocus(this._lastItemWithFocus); - this._triggerFocus(); - break; - } - - // the secondary multicontroller events are always consumed - return "consumed"; -}; - -/** - * Set secondary multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {string} - multicontroller event - * @param {integer} - focussed index - * @return {void} - */ -List2Ctrl.prototype._setSecondaryMulticontroller = function(state, focussedIndex) -{ - // get focussed index - if (isNaN(focussedIndex)) - { - var focussedIndex = this._getFocussedIndex(); - } - - // do not set secondary multicontroller to true if the item is disabled - if (state && this.dataList.items[focussedIndex].disabled) - { - return; - } - - if (state) - { - // flag as we are in secondary multicontroller mode - this._inSecondaryMulticontroller = true; - - // add secondary focus class - var domItem = this._getDOMItem(focussedIndex); - if (domItem) - { - domItem.classList.add('secondaryFocus'); - } - - /** - * Fire select callback to notify apps that we are - * entering into secondary multicontroller mode. - * In most cases apps will ignore this event. - * Transition focus to subcontrols. - */ - if (this._isSlider(focussedIndex)) - { - // the target is a slider and can be adjusted -> set currently active slider - this._activeSlider = { - itemIndex : focussedIndex, // currently active slider index - slider : this._getSlider(focussedIndex) // currently active slider instance - }; - - // transition focus - this._activeSlider.slider.handleControllerEvent('acceptFocusFromTop'); - - // fire select callback for app notification - this._itemSelect(focussedIndex); - } - - /** - * Place focus highlight on the lock inline button - * if the target is a lock item - */ - if (this._isLock(focussedIndex)) - { - this._lockShowFocus(focussedIndex, 1); - } - - this._currentSecondaryMulticontrollerItem = focussedIndex; - } - else - { - this._inSecondaryMulticontroller = false; - - // remove secondary focus class - var domItem = this._getDOMItem(focussedIndex); - if (domItem) - { - domItem.classList.remove('secondaryFocus'); - } - - /** - * Transition focus from subcontrols. - */ - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // transition focus - this._activeSlider.slider.handleControllerEvent('lostFocus'); - } - - this._currentSecondaryMulticontrollerItem = null; - } - -}; - -/** - * Set letter index multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {boolean} - * @return {void} - */ -List2Ctrl.prototype._setLetterIndexMulticontroller = function(state, isTouch) -{ - if (state) - { - // hide focus from the main list and show it in the letter index - this._hideFocus(); - this._showFocusLetterIndex(this._getCurrentLetterIndex()); - this._inLetterIndexMulticontroller = true; - } - else - { - // hide focus from the letter index and show it in the main list - if (!isTouch) - { - this._showFocus(this._lastItemWithFocus); - } - this._inLetterIndexMulticontroller = false; - this._hideFocusLetterIndex(); - - // clear any scheduled letter index select - this._scheduleLetterIndexSelect(null, true); - } - -}; - -/** - * Manage focus highlight - * This is the single point for managing focus when requested from outside List2. - * (focusedItem setter, restoreContext) Manages reorder and focus as required. - * TAG: internal - * ========================= - * @param {number} - item index - * @return {integer} - the new focussed index - */ -List2Ctrl.prototype._manageFocus = function(item) -{ - if (this._inListReorder && !isNaN(item)) - { - this._reorderToIndex(item); - } - return this._showFocus(item); -} - -/** - * Show focus highlight - * This is the single point for showing the - * focus highlight - * TAG: internal - * ========================= - * @param {strig | number} - direction (up|down) or item index - * @param {boolean} - simulation mode: use to perform check on where the focus will end - * @return {integer} - the new focussed index - */ -List2Ctrl.prototype._showFocus = function(item, allowOffscreen, simulationMode, abortMode) -{ - log.debug("List2: _showFocus item, allowOffscreen, simulationMode, abortMode ", item, allowOffscreen, simulationMode, abortMode); - if (!this._hasFocus) - { - return; - } - - if (this._inputMode != 'controller') - { - // do not show the focus if the input mode is other than 'controller' - return; - } - - // exit if we don't have any items (nothing to show the focus) - if (!this.hasDataList()) - { - return; - } - - // do not show focus when in list reorder by touch - if (this._reorderTouchElt) - { - return; - } - - var abortMode = (true === abortMode); - - // do not change focussed index when we are in loading and no scrolling is allowed during that time - if (!this.properties.scrollingDuringLoading && this._inLoading && !abortMode) - { - return; - } - - var simulationMode = (true === simulationMode); - - // get the last focussed index (real and relative) - var lastFocussedIndex = this._getFocussedIndex(); - var lastRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // if we don't have previous focus, select the topmost - if (lastFocussedIndex == null) - { - lastFocussedIndex = this._topItem; - } - - // hide the focus only in real mode - if (!simulationMode) - { - this._hideFocus(); - } - - - var nextFocussedIndex = -1; - var useTransition = true; - var useRelativeIndeces = true; - - // find the next focussed element index - // NOTE: 'down' and 'up' are ued primarily when focussing with multicontroller - switch (item) - { - case 'down' : - // 'down' uses relative positioning - // the next one but not exceeding the visible items - - if (!simulationMode) - { - var nextRealFocussedIndex = this.m.min(lastFocussedIndex+1, this.dataList.itemCount-1); - while(this.dataList.items[nextRealFocussedIndex].disabled) - { - if (nextRealFocussedIndex >= this.dataList.itemCount-1) { - // we have reached the end of the list and nothing is found -> exit with current index - nextRealFocussedIndex = lastFocussedIndex; - break; - } - // hmmm, not enabled -> try the next one - nextRealFocussedIndex++; - } - // convert it to relative index - nextFocussedIndex = this._realToRelativeIndex(nextRealFocussedIndex); - } - else - { - nextFocussedIndex = this.m.min(lastRelativeFocussedIndex+1, this.properties.visibleItems-1); - } - break; - - case 'up' : - // 'up' uses relative positioning - // the previous one but not lower than the first one - if (!simulationMode) - { - var nextRealFocussedIndex = this.m.max(lastFocussedIndex-1, 0); - while(this.dataList.items[nextRealFocussedIndex].disabled) - { - if (nextRealFocussedIndex <= 0) { - // we have reached the beginning of the list and nothing is found -> exit with current index - nextRealFocussedIndex = lastFocussedIndex; - break; - } - // hmmm, not enabled -> try the previous one - nextRealFocussedIndex--; - } - // convert it to relative index - nextFocussedIndex = this._realToRelativeIndex(nextRealFocussedIndex); - } - else - { - nextFocussedIndex = this.m.max(lastRelativeFocussedIndex-1, 0); - } - break; - - default : - // move highlight instantly when jumping to an item - useTransition = false; - // absolute indeces use real positioning - useRelativeIndeces = false; - - if (!isNaN(item)) - { - // specific one -> make sure it is within the list bounds - nextFocussedIndex = this.m.max(this.m.min(item, this.dataList.itemCount-1), 0); - } - else - { - // the top one - nextFocussedIndex = this._topItem; - } - } - - // if we are in simulation -> return the would-be focussed index - if (simulationMode) - { - return nextFocussedIndex; - } - - // From here on, perform actual focus change - // ----------------------------------------- - var pos = 0; - if (useRelativeIndeces) - { - // convert relative nextFocussedIndex to position - pos = nextFocussedIndex * this.properties.itemHeight; - // convert nextFocussedIndex back to real one - nextFocussedIndex = this._relativeToRealIndex(nextFocussedIndex); - } - else - { - // are we allowed to focus off screen? - if (!allowOffscreen) - { - // check if focus is outside the screen and scroll the list so that it is inside - if (this._realToRelativeIndex(nextFocussedIndex) < 0) - { - // scrollt up - this._scrollTo(nextFocussedIndex, 0); - } - else if (this._realToRelativeIndex(nextFocussedIndex) > this.properties.visibleItems - 2) - { - // scroll down - this._scrollTo((nextFocussedIndex + 2) - this.properties.visibleItems, 0); - } - } - - // convert absolute nextFocussedIndex to position - pos = (nextFocussedIndex - this._topItem) * this.properties.itemHeight; - } - - - - - // find the new focussed element - var focussedElement = this._getDOMItem(nextFocussedIndex); - - - // do we have a focussed element? - if (focussedElement) - { - focussedElement.classList.add('focus'); - - // create first focus animation - if (this._showFocusAnimation) - { - this._showFocusAnimation = false; - this.firstFocusAnimationEndCallback = this._firstFocusAnimationEndCallback.bind(this); - focussedElement.addEventListener("animationend", this.firstFocusAnimationEndCallback, false); - focussedElement.classList.add('firstFocus'); - } - } - - // set letter index position - this._setLetterIndexPosition(nextFocussedIndex); - - // store focussed item - this._lastItemWithFocus = nextFocussedIndex; - - return nextFocussedIndex; -}; - -/** - * First focus animation end callback that is fired - * when the first focus animation finishes. - * It removes the firstFocus class from the event's target - * and clears any subsequent animation callbacks - * TAG: internal - * ========================= - * @param {AnimationEvent} - * @return {void} - */ -List2Ctrl.prototype._firstFocusAnimationEndCallback = function(e) -{ - e.target.classList.remove('firstFocus'); - e.target.removeEventListener("animationend", this.firstFocusAnimationEndCallback, false); - this.firstFocusAnimationEndCallback = null; -}; - -/** - * Hide focus highlight - * This is the single point for hiding the - * focus highlight - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._hideFocus = function() -{ - // Preserve focussed element - this._lastItemWithFocus = this._getFocussedIndex(); - - for (var i=0; i disable select only if the slider is adjustable - if (this.dataList.items[focussedIndex].allowAdjust) - { - fireSelect = false; - } - - // reset currently active slider - this._activeSlider = null; - } - - if (this._isStep(focussedIndex)) - { - params = { - value : this.dataList.items[focussedIndex].value, - finalAdjustment : true, - }; - } - - /** - * Trigger the currently selected button - */ - if (this._isLock(focussedIndex)) - { - var focussedButton = this._lockGetFocus(focussedIndex); - var actionResult = this._lockActivate(focussedIndex, focussedButton); - this._lockShowFocus(focussedIndex, 'clear'); - params = { additionalData : actionResult }; - } - - // prevent select on disabled items - if (this.dataList.items[focussedIndex].disabled) - { - fireSelect = false; - } - - // everything looks ok -> call internal _itemSelect() method if the item permits it - if (fireSelect) - { - // fire select only if no long press / hold start has been issued - if (!this._longPressIssued) - { - // produce beep - this._beep('Short', 'Multicontroller'); - - this._itemSelect(focussedIndex, params); - } - // otherwise fire holdStop Callback on shortAndHold items - else if ('shortAndHold' === this.dataList.items[focussedIndex].itemBehavior) - { - this._itemHoldStop(focussedIndex); - } - } - - // lower long-press/hold-start flag - this._longPressIssued = false; - - } -}; - -/** - * Check whether the list can gain focus. In certain cases focus cannot be - * shown (e.g. when there are no items available) or if it can gain it - * it should be restored on the nearest available item if the one that - * previously had focus is disabled. - * TAG: internal - * ========================= - * @param {MouseEvent|Number} - optional argument. If passed a check will be performed whether the target item is disabled - * @return {integer} - the item that will have focus. If no item can have focus, return -1 - */ -List2Ctrl.prototype._canGainFocus = function(e) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return -1; - } - - var itemToGainFocus = -1; - - // check if we are touching the element - if (typeof e === 'object') - { - var targetItem = this._getTargetItem(e); - - // the item is enabled and can gain focus - if (-1 !== targetItem && !this.dataList.items[targetItem].disabled) - { - itemToGainFocus = targetItem; - } - // the item is disabled -> find the closest enabled to it - else - { - var nearestItem = this._getNearestEnabledItem(targetItem); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - } - } - else if (typeof e === 'number') - { - if (-1 !== e && !this.dataList.items[e].disabled) - { - itemToGainFocus = e; - } - // the item is disabled -> find the closest enabled to it - else - { - var nearestItem = this._getNearestEnabledItem(e); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - } - } - // check whether this is called from the controllerActive event handler - else if ('controllerActive' === e && this.properties.focussedItem > 0 && this.dataList.items[this.properties.focussedItem] && !this.dataList.items[this.properties.focussedItem].disabled) - { - itemToGainFocus = this.properties.focussedItem; - } - // check if last item with focus is disabled - else if (this.dataList.items[this._lastItemWithFocus] && !this.dataList.items[this._lastItemWithFocus].disabled) - { - itemToGainFocus = this._lastItemWithFocus; - } - else - { - // show focus on the closest available item to the last with focus - var nearestItem = this._getNearestEnabledItem(this._lastItemWithFocus); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - - // if we have tabs and no enabled items, always show focus on the first line allowing tabs navigation - if (this.tabsCtrl && -1 === itemToGainFocus) - { - itemToGainFocus = this._topItem; - } - } - - return itemToGainFocus; -}; - -/** - * Get focussed index - * TAG: internal, helper - * ========================= - * @return {integer} - */ -List2Ctrl.prototype._getFocussedIndex = function() -{ - var focussedIndex = this._lastItemWithFocus; - - for (var i=0; i - */ -List2Ctrl.prototype._getFocussedElement = function() -{ - var focussedElement = null; - var focussedIndex = this._getFocussedIndex(); - for (var i=0; i= this.dataList.itemCount) - { - currentItem = null; - } - else - { - while (this.dataList.items[currentItem].disabled) - { - if (currentItem >= this.dataList.itemCount-1 || currentItem <= 0) - { - // this is the end/beginning of the array -> nothing is found so return Null - currentItem = null; - break; - } - currentItem = ('down' === direction) ? currentItem+1 : currentItem-1; - } - } - return currentItem; -}; - -/** - * Get nearest enabled item in all directions - * If there are two enabled items in both directions that are - * at equal distances from the reference item, the one below is - * returned. - * TAG: internal, helper - * ========================= - * @param {integer} - from which item to search - * @return {integer} - the next enabled item. - * If nothing is found, return Null - */ -List2Ctrl.prototype._getNearestEnabledItem = function(fromItem) -{ - var nearestEnabledItem = null; - - var nearestDown = this._getNearestEnabledItemByDirection(fromItem, 'down'); - var nearestUp = this._getNearestEnabledItemByDirection(fromItem, 'up'); - - if (null === nearestDown === nearestUp) - { - // no enabled item is found - nearestEnabledItem = null; - } - else if (null === nearestDown) - { - // nothing is found below -> return the one above - nearestEnabledItem = nearestUp; - } - else if (null === nearestUp) - { - // nothing is found above -> return the one below - nearestEnabledItem = nearestDown; - } - else - { - var differenceDown = this.m.abs(fromItem - nearestDown); - var differenceUp = this.m.abs(fromItem - nearestUp); - if (differenceDown === differenceUp) - { - // equally spaced -> return the one below - nearestEnabledItem = nearestDown; - } - else - { - // differently spaced -> return the closer one - nearestEnabledItem = (differenceDown < differenceUp) ? nearestDown : nearestUp; - } - } - - return nearestEnabledItem; -}; - -/** - * Get secondary select status of an item - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {boolean} - whether the item has secondary multicontroller - */ -List2Ctrl.prototype._hasSecondaryMulticontroller = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var hasSecondaryMulticontroller = false; - - var type = this.dataList.items[itemIndex].itemStyle; - for (var i=0; i return current position - newPos = this.scroller.offsetTop; - } - else - { - var bi = this._getNearestEnabledItemByDirection(this._topItem+this.properties.visibleItems-2, 'down'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopItem = bi + 2 - this.properties.visibleItems; - newPos = -newTopItem * this.properties.itemHeight; - newPos = this.m.max(newPos, this._maxScrollY); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - } - else - { - newPos = this.scroller.offsetTop; - } - } - - // set scroll nature - this._scrollNature = 'item'; - - // return the new position - return newPos; -}; - -/** - * Scroll up by one element - * If the element that will be placed at the top - * position is disabled, the list will be scrolled to - * the nearest available enabled item - * TAG: internal - * ========================= - * @return {integer} - new position of the scroller in px - */ -List2Ctrl.prototype._scrollUpOne = function() -{ - var newPos = 0; - - // check whether we are in the top-most position - if (this._topItem === 0) - { - // we can't scroll up any more -> return current position - newPos = this.scroller.offsetTop; - } - else - { - var bi = this._getNearestEnabledItemByDirection(this._topItem+1, 'up'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopItem = bi - 1; - newPos = -newTopItem * this.properties.itemHeight; - newPos = this.m.min(newPos, 0); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - } - else - { - newPos = this.scroller.offsetTop; - } - } - - // set scroll nature - this._scrollNature = 'item'; - - // return the new position - return newPos; -}; - -/** - * Scroll down by one page (screen) - * TAG: internal - * ========================= - * @return {string} - paged | atlimit | onepage - */ -List2Ctrl.prototype._scrollDownPage = function() -{ - // get list position - var listPosition = this._getListPosition(); - - // set return status - var returnStatus = 'onepage'; - - // determine behavior by the list position - switch (listPosition) - { - // we have only one page - case 'onepage' : - returnStatus = 'onePage'; - break; - - // we are ate the bottom - case 'bottom' : - // place focus on the last available item - var nei = this._getNearestEnabledItemByDirection(this._topItem + this.properties.visibleItems, 'up'); - if (null != nei && nei >= this._topItem) - { - this._showFocus(nei); - } - - // set return status - returnStatus = 'atLimit'; - break; - - // we are close to the bottom - case 'bottomclose' : - // search for enabled item in the bottom screen - var nei = this._getNearestEnabledItemByDirection(this.dataList.itemCount - 1, 'up'); - if (null != nei && nei >= this.dataList.itemCount - this.properties.visibleItems) - { - // place focus on the last available item and scroll to the bottom - this._showFocus(nei); - this._scrollTo(this.dataList.itemCount - this.properties.visibleItems); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // set return status - returnStatus = 'atLimit'; - } - break; - - // we are somewhere else - default : - // get current relative focussed index - var currentRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // get future absolute focussed index - var futureAbsoluteFocussedIndex = this.m.min(this._topItem + this.properties.visibleItems + currentRelativeFocussedIndex, this.dataList.itemCount-1); - - // check whether the future absolute focussed index is enabled - if (!this.dataList.items[futureAbsoluteFocussedIndex].disabled) - { - // item is enabled -> we can page down - var newPos = -(this._topItem + this.properties.visibleItems) * this.properties.itemHeight; // calculate new position - newPos = this.m.max(newPos, this._maxScrollY); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - - // place the focus on the future absolute focussed index - this._showFocus(futureAbsoluteFocussedIndex); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // item is disabled -> search for nearest enabled item from the future top item down - var nei = this._getNearestEnabledItemByDirection(this._topItem + this.properties.visibleItems, 'down'); - if (null != nei) - { - // we have found such item -> scroll down so it is in the same relative position - this._scrollTo(nei - currentRelativeFocussedIndex); - - // place the focus on the enabled item - this._showFocus(nei); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // no more enabled items -> set return status and do nothing - returnStatus = 'atLimit'; - } - } - break; - - } - - return returnStatus; -}; - -/** - * Scroll up by one page (screen) - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollUpPage = function() -{ - - // get list position - var listPosition = this._getListPosition(); - - // set return status - var returnStatus = ''; - - // determine behavior by the list position - switch (listPosition) - { - // we have only one page - case 'onepage' : - returnStatus = 'onePage'; - break; - - // we are ate the top - case 'top' : - // place focus on the first available item - var nei = this._getNearestEnabledItemByDirection(-1, 'down'); - if (null != nei && nei <= this.properties.visibleItems-1) - { - this._showFocus(nei); - } - - // set return status - returnStatus = 'atLimit'; - break; - - // we are close to the top - case 'topclose' : - // search for enabled item in the top screen - var nei = this._getNearestEnabledItemByDirection(0, 'down'); - if (null != nei && nei <= this.properties.visibleItems-1) - { - // place focus on the last available item and scroll to the top - this._showFocus(nei); - this._scrollTo(0); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // set return status - returnStatus = 'atLimit'; - } - break; - - // we are somewhere else - default : - // get current relative focussed index - var currentRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // get future absolute focussed index - var futureAbsoluteFocussedIndex = this.m.max(this._topItem - this.properties.visibleItems + currentRelativeFocussedIndex, 0); - - // check whether the future absolute focussed index is enabled - if (!this.dataList.items[futureAbsoluteFocussedIndex].disabled) - { - // item is enabled -> we can page down - var newPos = -(this._topItem - this.properties.visibleItems) * this.properties.itemHeight; // calculate new position - newPos = this.m.min(newPos, 0); // constrain it to the min scroll - this._performScroll(newPos); // do the scroll - - // place the focus on the future absolute focussed index - this._showFocus(futureAbsoluteFocussedIndex); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // item is disabled -> search for nearest enabled item from the future bottom item up - var nei = this._getNearestEnabledItemByDirection(this._topItem - this.properties.visibleItems, 'up'); - if (null != nei) - { - // we have found such item -> scroll down so it is in the same relative position - this._scrollTo(nei - currentRelativeFocussedIndex); - - // place the focus on the enabled item - this._showFocus(nei); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // no more enabled items -> set return status and do nothing - returnStatus = 'atlimit'; - } - } - break; - - } - - return returnStatus; -}; - -/** - * Scroll to the top - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollTop = function() -{ - this._performScroll(0); // do the scroll -}; - -/** - * Scroll to the bottom - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollBottom = function() -{ - this._performScroll(this._maxScrollY); // do the scroll -}; - -/** - * Do the actual scroll - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @param {duration} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._performScroll = function(pos, duration) -{ - - // if scrolling during loading is not allowed - if (!this.properties.scrollingDuringLoading && this._inLoading) - { - return; - } - - // if menu can be scrolled (it has enough list items) - if (this._isScrollable) - { - // make it snappy - var newPos = this._getSnapPosition(pos); - - // start animation - this._animateScroll(pos, duration); - } -}; - -/** - * Animate the scroll - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @param {duration} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._animateScroll = function(pos, time) -{ - if (time == undefined || time == null) - { - time = this.properties.swipeAnimationDuration; - } - - if (null !== this.scrollerAnimationEndCallback) - { - // remove any redundant animationEnd listeners - this.scroller.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - this.scrollerAnimationEndCallback = null; - } - - // animate scroller or directly call the animation end callback if the time is 0 - this.scroller.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.scrollerAnimationEndCallback = this._scrollerAnimationEnd.bind(this); - this.scroller.addEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - this.scroller.style.top = pos + 'px'; - - this._inScroll = false; - if (time > 0) - { - this._inScroll = true; - } - - // set top item and update display - this._updateScrollIndicator(pos, time); - this._setTopListItem(pos); - this._updateRange(); -}; - -/** - * Abort any ongoing scroll and reset any flags - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._abortScroll = function(e) -{ - // aborting scroll is possible only while the list is scrolling - if (false === this._inScroll) - { - return; - } - - // get target item - var targetItem = this._getTargetItem(e); - - // check if target item is enabled - if (this.dataList.items[targetItem] && !this.dataList.items[targetItem].disabled) - { - // show focus there - this._showFocus(targetItem, true, false, true); - } - else - { - // restore focus - this._restoreFocus(); - } - - // get current snapped position - var snapPos = this._getSnapPosition(this.scroller.offsetTop); - this._animateScroll(snapPos, 0); - - // reset any touch flags - this._inDrag = false; - this._inScroll = false; - this._scrollNature = null; - this._inHorizontalDrag = null; - this._hDragItem = null; - this._stopSelect = false; - this._startTime = 0; - this._startItem = null; - this._startDOMItem = null; - this._activeSlider = null; - this._startY = 0; - this._startX = 0; -}; - - -/** 2. LIST SNAPPING **/ - -/** - * Get snap position depending on the new scroller position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {integer} - position snapped to the nearest item edge - */ -List2Ctrl.prototype._getSnapPosition = function(pos) -{ - return this.properties.itemHeight * (Math.round(pos / this.properties.itemHeight)); -}; - -/** - * Get snap (above) position depending on the new scroller position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {integer} - position snapped to the nearest above item edge - */ -List2Ctrl.prototype._getSnapPositionAbove = function(pos) -{ - return this.properties.itemHeight * (Math.floor(pos / this.properties.itemHeight)); -}; - -/** - * Scroll list to an even snap position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {void} - */ -List2Ctrl.prototype._snap = function(pos) -{ - // the snap position is the same as the current - if (pos == this._y) - { - return; - } - - // the user has reached the end of the list and there will be no animation - if (pos == this._maxScrollY) - { - // set top item and bring focus on the screen - this._setTopListItem(pos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex < this._topItem) - { - this._restoreFocus(); - } - return; - } - else if (pos === this._minScrollY) - { - // set top item and bring focus on the screen - this._setTopListItem(pos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex > this._topItem + this.properties.visibleItems - 1) - { - this._restoreFocus(); - } - return; - } - - var snapPos = this._getSnapPosition(pos); - - // start animation - this._animateScroll(snapPos); -}; - -/** 3. LIST SWIPING AND PHYSICS **/ - -/** - * Perform swipe based on physics definition - * TAG: touch-only, internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._startSwipe = function(distance, time) -{ - // physics calculations - var momentumY = this._momentum(distance, time, -this._y, this._maxScrollY < 0 ? this._scrollerH - this._maskH + this._y - this._minScrollY : 0, 0); - - /* ANIMATE THE SCROLLER */ - var newPos = this.m.min(this.m.max(this._y + momentumY.dist, this._maxScrollY), 0); - var swipeDuration = momentumY.time; - - // make it snappy - newPos = this._getSnapPosition(newPos); - - // start animation - if (!isNaN(newPos) && newPos !== this.scroller.offsetTop) // only if newPos is a number and the list is worth scrolling - { - this._animateScroll(newPos, swipeDuration); - } - else - { - // set top item and bring focus on the screen - this._setTopListItem(newPos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex < this._topItem) - { - this._restoreFocus(); - } - } -}; - -/** - * Perform swipe based on physics definition - * TAG: touch-only, internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._startSwipeIndex = function(distance, time) -{ - // physics calculations - var momentumY = this._momentum(distance, time, -this._yIndex, this._maxScrollYIndex < 0 ? this._scrollerHIndex - this._maskH + this._yIndex - this._minScrollYIndex : 0, 0); - - /* ANIMATE THE LETTER INDEX SCROLLER */ - var newPos = this.m.min(this.m.max(this._yIndex + momentumY.dist, this._maxScrollYIndex), 0); - var swipeDuration = momentumY.time; - - // make it snappy - newPos = this._getIndexSnapPosition(newPos); - - // start animation - if (!isNaN(newPos) && newPos !== this.letterIndex.offsetTop) // only if newPos is a number and the letter index is worth scrolling - { - // start animation - this._animateLetterIndex(newPos, swipeDuration); - } - else - { - // set top letter index and bring focus on the screen - this._setTopLetterIndex(newPos); - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (focussedLetterIndex < this._topLetterIndex) - { - this._showFocusLetterIndex(this._topLetterIndex); - } - } -}; - -/** - * @param {integer} - dragged distance - * @param {time} - time dragged - * @param {integer} - this._y - * @param {integer} - this._maxScrollY < 0 ? this._scrollerH - this._maskH + this._y - this._minScrollY : 0 - * @param {integer} - 0 - */ -List2Ctrl.prototype._momentum = function (dist, time, maxDistUpper, maxDistLower, size) -{ - var deceleration = this.properties.deceleration, - speed = this.m.abs(dist) / time, - newDist = (speed * speed) / (2 * deceleration), - newTime = 0, outsideDist = 0; - - // Proportinally reduce speed if we are outside of the boundaries - if (dist > 0 && newDist > maxDistUpper) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistUpper = maxDistUpper + outsideDist; - speed = speed * maxDistUpper / newDist; - newDist = maxDistUpper; - } else if (dist < 0 && newDist > maxDistLower) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistLower = maxDistLower + outsideDist; - speed = speed * maxDistLower / newDist; - newDist = maxDistLower; - } - - newDist = newDist * (dist < 0 ? -1 : 1); - newTime = speed / deceleration; - - return { dist: newDist, time: Math.round(newTime) }; -}; - - -/** - * ========================= - * LETTER INDEX - * ========================= - */ - -/** - * Letter index select - * scrolls list to letter index - * TAG: internal - * ========================= - * @param {integer} - the new position of the scroller in element index. - * @return {void} - */ -List2Ctrl.prototype._letterIndexSelect = function(letterIndex, eventCause) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - - // check if if letterIndex is a valid index - if (letterIndex < 0 || letterIndex >= this.letterIndexData.length) - { - return; - } - - // check for disabled letter index (no valid item index) - if (this.letterIndexData[letterIndex].disabled) - { - return; - } - - // set scroll nature - this._scrollNature = 'letterIndex'; - - // all seems fine -> scroll - this._scrollTo(this.letterIndexData[letterIndex].itemIndex - 1); - - // set letter index active position - this._setLetterIndexPosition(this.letterIndexData[letterIndex].itemIndex); - - // update last item with focus so that focus gets restored in the correct place - this._lastItemWithFocus = this.letterIndexData[letterIndex].itemIndex; - - // set proper event cause - var eventCause = ('Multicontroller' != eventCause && 'Touch' != eventCause) ? null : eventCause; - // produce beep - this._beep('Short', eventCause); - - // dispatch letter select event - var eventData = { - index : letterIndex, - label : this.letterIndexData[letterIndex].label, - itemIndex : this.letterIndexData[letterIndex].itemIndex, - }; - this._listEvent(this._EVENTS.LETTER_SELECT, eventData); -}; - -/** - * Schedule letter index select after some time - * TAG: internal - * ========================= - * @param {integer} - the letter index - * @param {boolean} - clear any timeouts without scheduling a new one - * @return {void} - */ -List2Ctrl.prototype._scheduleLetterIndexSelect = function(letterIndex, clear) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - - // clear previous timeout - clearTimeout(this._indexSelectTimeoutId); - this._indexSelectTimeoutId = null; - - if (!clear) - { - // if no letter index is passed, get the currently focussed one - if (undefined === letterIndex) - { - // check whether we already have focussed letter index - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (null != focussedLetterIndex) - { - // if yes, schedule to that one - letterIndex = focussedLetterIndex; - } - } - - // set scroll timeout - this._indexSelectTimeoutId = setTimeout(function() { - this._letterIndexSelect(letterIndex); - }.bind(this), this.properties.letterIndexSelectTimeout); - } -}; - -/** - * Schedule background letter index select after some time. - * Background select occurs without affecting the letter index - * scroll position. This is intended to be used only programatically. - * TAG: internal - * ========================= - * @param {integer} - the letter index - * @param {boolean} - clear any timeouts without scheduling a new one - * @return {void} - */ -List2Ctrl.prototype._scheduleBackgroundLetterIndexSelect = function(letterIndex, clear) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - // check for a valid letter index item - if (letterIndex < 0 || letterIndex >= this.letterIndexData.length) - { - log.warn('List2: a valid letter index expected. Letter index passed": ' + letterIndex); - return; - } - // check for disabled letter index (no valid item index) - if (this.letterIndexData[letterIndex].disabled) - { - return; - } - // clear previous timeout - clearTimeout(this._indexSelectTimeoutId); - this._indexSelectTimeoutId = null; - if (!clear) - { - // activate the new index - this._setCurrentLetterIndex(letterIndex); - // set scroll timeout - this._indexSelectTimeoutId = setTimeout(function() { - // set scroll nature - this._scrollNature = 'letterIndex'; - // all seems fine -> scroll - this._scrollTo(this.letterIndexData[letterIndex].itemIndex - 1); - }.bind(this), this.properties.letterIndexSelectTimeout); - } -}; -/** - * Animate the letter index - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @param {integer} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._animateLetterIndex = function(pos, time) -{ - if (time == undefined || time == null) - { - time = this.properties.swipeAnimationDuration; - } - - // animate letter index - this.letterIndex.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.letterIndexAnimationEndCallback = this._letterIndexAnimationEnd.bind(this); - this.letterIndex.addEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - this.letterIndex.style.top = pos + 'px'; - - // set top letter index - this._setTopLetterIndex(pos); -}; - -/** - * Set top letter index item depending on the position - * TAG: internal - * ========================= - * @param {integer} - position in px at which the letter should be - * @return {void} - */ -List2Ctrl.prototype._setTopLetterIndex = function(pos) -{ - // pos should be number for proper topLetterIndex calculation - if (!isNaN(pos)) - { - this._prevTopLetterIndex = this._topLetterIndex; - this._topLetterIndex = -(Math.round(pos / this.properties.letterIndexHeight)); - } -}; - -/** - * Get snap position of letter index - * depending on the new letter index position - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @return {integer} - position snapped to the nearest item edge - */ -List2Ctrl.prototype._getIndexSnapPosition = function(pos) -{ - return this.properties.letterIndexHeight * (Math.round(pos / this.properties.letterIndexHeight)); -}; - -/** - * Scroll letter index to an even snap position - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @return {void} - */ -List2Ctrl.prototype._snapIndex = function(pos) -{ - // the snap position is the same as the current - if (pos == this._yIndex) - { - return; - } - - // the user has reached the end of the list and there will be no animation - if (pos == this._maxScrollYIndex) - { - // set top item and bring focus on the screen - this._setTopLetterIndex(pos); - var focussedIndex = this._getFocussedLetterIndex(); - if (focussedIndex < this._topLetterIndex) - { - this._restoreLetterIndexFocus(); - } - return; - } - - var snapPos = this._getIndexSnapPosition(pos); - - // start animation - this._animateLetterIndex(snapPos); -}; - -/** - * Scroll to a specific index item - * TAG: internal - * ========================= - * @param {integer | string} - letter or letter index - * @return {void} - */ -List2Ctrl.prototype._scrollToIndex = function(letter) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - var targetIndex = -1; - - if (!isNaN(letter)) - { - // we are going to a letter index - targetIndex = this.m.max(this.m.min(letter, this.letterIndexData.length-1), 0); // constrain the index - } - else if (typeof letter === 'string'); - { - // we are searching for the letter index of the letter - for (var i=0, l=this.letterIndexData.length; i above or below the visible range - // NOTE: if the letter is within the visible range this should not get called at all - if (-1 != targetIndex && targetIndex >= this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - // look below -> find closest target index so that the focus is visible and apply target index correction - targetIndex = targetIndex - this.properties.visibleLetterIndexItems + 1; - } - else if (-1 != targetIndex && targetIndex <= this._topLetterIndex) - { - // look above -> find closest target index so that the focus is visible - // correction: the taget index is the top item whereas the item in question is the second one - targetIndex--; - } - else - { - // we don't scroll if the target is visible - return; - } - - // do the scroll - var newPos = -(targetIndex) * this.properties.letterIndexHeight; // calculate new position - newPos = this.m.max(this.m.min(newPos, this._minScrollYIndex), this._maxScrollYIndex); // constrain it to scroll bounds - this._animateLetterIndex(newPos); // start animation - - -}; - -/** - * Scroll down by one or more index elements - * TAG: internal - * ========================= - * @return {integer} - new position of the letter index in px - */ -List2Ctrl.prototype._scrollDownOneIndex = function() -{ - var newPos = 0; - - // check whether we are in the bottom-most position - if (this._topLetterIndex === this.letterIndexData.length - this.properties.visibleLetterIndexItems) - { - // we can't scroll down any more -> return current position - newPos = this.letterIndex.offsetTop; - } - else - { - var bi = this._getNearestEnabledLetterByDirection(this._topLetterIndex+this.properties.visibleLetterIndexItems-2, 'down'); - // do not scroll if no enabled letters are found - if (null != bi) - { - var newTopLetter = bi + 2 - this.properties.visibleLetterIndexItems; - newPos = -newTopLetter * this.properties.letterIndexHeight; - newPos = this.m.max(newPos, this._maxScrollYIndex); // constrain it to the max scroll - this._animateLetterIndex(newPos); // do the scroll - } - else - { - newPos = this.letterIndex.offsetTop; - } - } - - // return the new position - return newPos; -}; - -/** - * Scroll up by one or more index elements - * TAG: internal - * ========================= - * @return {integer} - new position of the letter index in px - */ -List2Ctrl.prototype._scrollUpOneIndex = function() -{ - var newPos = 0; - - // check whether we are in the top-most position - if (this._topLetterIndex === 0) - { - // we can't scroll up any more -> return current position - newPos = this.letterIndex.offsetTop; - } - else - { - var bi = this._getNearestEnabledLetterByDirection(this._topLetterIndex+1, 'up'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopLetter = bi - 1; - newPos = -newTopLetter * this.properties.letterIndexHeight; - newPos = this.m.min(newPos, this._minScrollYIndex); // constrain it to the min scroll - this._animateLetterIndex(newPos); // do the scroll - } - else - { - newPos = this.letterIndex.offsetTop; - } - } - - // return the new position - return newPos; -}; - -/** - * Set letter index position relative to the - * focussed item in the scroller - * TAG: internal - * ========================= - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._setLetterIndexPosition = function(index) -{ - // check for letter index - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return false; - } - - // get focussed item - var focussedIndex; - if (!isNaN(index)) - { - focussedIndex = index; - } - else - { - focussedIndex = this._getFocussedIndex(); - } - - // get the new index - var targetIndex = -1; - for (var i=this._letterIndexDataSorted.length-1; i>=0; i--) - { - if (focussedIndex >= this._letterIndexDataSorted[i].itemIndex) - { - targetIndex = this._letterIndexDataSorted[i].publicIndex; - break; - } - } - - // show focus on target index - if (targetIndex > -1) - { - this._setCurrentLetterIndex(targetIndex); - } - - // check if letter index scrolling is needed - if (targetIndex >= this._topLetterIndex && targetIndex < this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - return; - } - - // scroll to target index - if (targetIndex > -1) - { - this._scrollToIndex(targetIndex); - } -}; - -/** - * Set currently active letter index - * TAG: internal - * ========================= - * @param {integer} - letter item index - * @return {integer} - the currently active letter index - */ -List2Ctrl.prototype._setCurrentLetterIndex = function(letter) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return null; - } - - var targetIndex = this.m.max(this.m.min(letter, this.letterIndexData.length-1), 0); // constrain the index - - - // remove any previously active letter index - for (var i=0, l=this.letterIndexData.length; i= this.letterIndexData.length-1) - { - // nothing is found, return the old one - targetIndex = lastFocussedIndex; - break; - } - } - break; - - case 'up' : - // we are searching for the previous - targetIndex = lastFocussedIndex; - while (targetIndex > 0) - { - targetIndex--; - if (-1 != this.letterIndexData[targetIndex].itemIndex) - { - break; - } - else if (targetIndex <= 0) - { - // nothing is found, return the old one - targetIndex = lastFocussedIndex; - break; - } - } - break; - - default : - // we are searching for the index of the letter - for (var i=0, l=this.letterIndexData.length; i= letterIndexCount) - { - currentLetter = null; - } - else - { - while (this.letterIndexData[currentLetter].disabled) - { - if (currentLetter >= letterIndexCount-1 || currentLetter <= 0) - { - // this is the end/beginning of the array -> nothing is found so return Null - currentLetter = null; - break; - } - currentLetter = ('down' === direction) ? currentLetter+1 : currentLetter-1; - } - } - return currentLetter; -}; - -/** - * Exit hit state of the currently hit index item - * ========================= - * @return {void} - */ -List2Ctrl.prototype._indexRemoveHit = function() -{ - for (var i=0, l=this.letterIndexData.length; i bring back reorder item - if (this._inListReorder && this._reorderTouchElt) - { - this._bringReorderItem(); - } - - // Focus adjust after animation ends - - // get list position - var listPosition = null; - if (0 === this._topItem) - listPosition = 'top'; - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - listPosition = 'bottom'; - else - listPosition = 'middle'; - - // get scroll direction - var scrollDirection = null; - if (this._prevTopItem > this._topItem) - scrollDirection = 'up'; - else if (this._prevTopItem < this._topItem) - scrollDirection = 'down'; - else - scrollDirection = 'none'; - - // get scroll size - var scrollSize = this.m.abs(this._prevTopItem - this._topItem); - - if ('page' === this._scrollNature) - { - // do not place focus, it should have been done by the paging function - } - else if ('item' === this._scrollNature) - { - // show focus - this._showFocus(this._lastItemWithFocus, true); - } - else - { - // check if focussed index is outside the screen and we actually have a scroll - if (scrollSize > this.properties.visibleItems-1 && !this._inLetterIndexMulticontroller) - { - // restore focus - this._restoreFocus(); - } - else if (scrollSize > 0 && !this._inLetterIndexMulticontroller) - { - // check if the focus is just slightly outside the visible range - if (this._lastItemWithFocus < this._topItem || this._lastItemWithFocus >= this._topItem + this.properties.visibleItems) - { - // restore focus - this._restoreFocus(); - } - else - { - // else the focus remains on the screen -> only set letter index position - this._setLetterIndexPosition(this._getFocussedIndex()); - } - } - else - { - // we don't have a scroll -> nothing to do here - } - } - - // lower _inScroll flag - this._inScroll = false; - - // reset scroll nature - this._scrollNature = null; - - // dispatch scroll end event - this._listEvent(this._EVENTS.SCROLL_END, {scrollPosition:this._topItem}); -}; - -/** - * Restore focus after it has been left off screen. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._restoreFocus = function() -{ - // check if the top item is enabled - if (!this.dataList.items[this._topItem].disabled) - { - this._showFocus(this._topItem, false, false, true); - } - // top item is disabled, find the nearest enabled item below the top one - else - { - var neiDown = this._getNearestEnabledItem(this._topItem, 'down'); - // check if the item is on screen - if (null != neiDown && neiDown >= this._topItem && neiDown < this._topItem + this.properties.visibleItems) - { - this._showFocus(neiDown, true, false, true); - } - // there's no enabled item or it is off screen - else - { - this._showFocus(this._topItem, false, false, true); - } - } -}; - -/** - * Scroll indicator animation end callback - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorAnimationEnd = function() -{ - this.scrollIndicator.style[this._VENDOR + 'TransitionDuration'] = '0ms'; - this.scrollIndicator.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - this.scrollIndicatorAnimationEndCallback = null; - - // fadeOut scroll indicator - this._fadeOutScrollIndicator(); -}; - -/** - * Letter index animation end callback - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._letterIndexAnimationEnd = function() -{ - // remove animation end callbacks - this.letterIndex.style[this._VENDOR + 'TransitionDuration'] = '0ms'; - this.letterIndex.removeEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - this.letterIndexAnimationEndCallback = null; - - // restore focus - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (null != focussedLetterIndex && (focussedLetterIndex < this._topLetterIndex || focussedLetterIndex > this._topLetterIndex + this.properties.visibleLetterIndexItems - 1)) - { - // focus is off screen - this._restoreLetterIndexFocus(); - } - else if (null != focussedLetterIndex) - { - // schedule letter index select if letter is enabled - if (!this.letterIndexData[focussedLetterIndex].disabled) - { - this._scheduleLetterIndexSelect(focussedLetterIndex); - } - } -}; - -/** - * Restore letter index focus after it has been left off screen. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._restoreLetterIndexFocus = function() -{ - // check if the top letter index is enabled - if (!this.letterIndexData[this._topLetterIndex].disabled) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - - // schedule letter index select - this._scheduleLetterIndexSelect(this._topLetterIndex); - } - else - { - // look for enabled item down and up - var neiDown = this._getNearestEnabledLetterByDirection(this._topLetterIndex, 'down'); - var neiUp = this._getNearestEnabledLetterByDirection(this._topLetterIndex, 'up'); - // determine scroll direction - var scrollDirection = (this._topLetterIndex - this._prevTopLetterIndex < 0) ? 'up' : 'down'; - - // check whether we have an enabled item on screen - if (null != neiDown && neiDown >= this._topLetterIndex && neiDown < this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - // there is an enabled item on screen -> place the focus there - this._showFocusLetterIndex(neiDown); - // schedule letter index select - this._scheduleLetterIndexSelect(neiDown); - } - else if ('down' === scrollDirection) - { - // we are scrolling down -> look for enabled item up - if (null != neiUp) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - - // schedule background letter index select - this._scheduleBackgroundLetterIndexSelect(neiUp); - } - else - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - } - } - else if ('up' === scrollDirection) - { - // we are scrolling up -> look for enabled item down - if (null != neiDown) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - // schedule background letter index select - this._scheduleBackgroundLetterIndexSelect(neiDown); - } - else - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - } - } - } -}; - - -/** - * ========================= - * SLIDERS AND TOGGLE CONTROL - * ========================= - */ - -/** - * Passes START (mousedown) event to the currently - * targeted slider instance and returns it. - * TAG: internal - * ========================= - * @param {MouseEvent} - * @param {Boolean} - * @return {SliderCtrl} - */ -List2Ctrl.prototype._slideStart = function(e, skipActiveSlider) -{ - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return; - } - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - // check if slider can be adjusted - if (!this.dataList.items[itemIndex].allowAdjust) - { - return; - } - - // check if we are in the hittable area - if(!this._hasRightHittableArea(this.dataList.items[itemIndex])) - { - var relativeX = e.pageX - this._maskPositionX; - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight; - var leftBoundary = this.properties.sliderReferencePointRight - this.properties.sliderWidth; - } - else if(this.dataList.items[itemIndex].indented) - { - var relativeX = e.pageX - (Math.ceil(this._maskPositionX / 1.5)); - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight - (Math.ceil(this.properties.sliderWidth / 1.5)) + (this.properties.indentOffset * 2); - var leftBoundary = this.properties.sliderReferencePointLeft; - } else - { - var relativeX = e.pageX - (Math.ceil(this._maskPositionX / 1.5)); - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight - (Math.ceil(this.properties.sliderWidth / 1.5)); - var leftBoundary = this.properties.sliderReferencePointLeft; - } - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // we are outside the hittable area -> exit - return; - } - - var sliderInstance = this._getSlider(itemIndex); - var skipActiveSlider = (true === skipActiveSlider); - if (!skipActiveSlider) - { - // set currently active slider - this._activeSlider = { - itemIndex : itemIndex, // currently active slider index - slider : sliderInstance // currently active slider instance - }; - - // transition focus to slider and hide focus on the item - this._activeSlider.slider.handleControllerEvent('acceptFocusFromTop'); - this._hideFocus(); - - // pass the event to the SliderCtrl - this._activeSlider.slider._onDownHandler(e); - } - - return sliderInstance; -}; - -List2Ctrl.prototype._slideMove = function(e) -{ - // determine if we have an active slider - if (!this._activeSlider) - { - return; - } - - // determine target item - var itemIndex = this._activeSlider.itemIndex; - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - // pass the event to the SliderCtrl - this._activeSlider.slider._onMoveHandler(e); -}; - -List2Ctrl.prototype._slideEnd = function(e) -{ - // determine if we have an active slider - if (!this._activeSlider) - { - var sliderInstance = this._slideStart(e, true); - if (sliderInstance && !this._stopSelect) - { - // pass the event to the SliderCtrl - sliderInstance._onDownHandler(e); - sliderInstance._onUpHandler(e); - } - return; - } - else - { - var itemIndex = this._activeSlider.itemIndex; - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - if (this._inSecondaryMulticontroller && itemIndex == this._currentSecondaryMulticontrollerItem) - { - // if we are in secondary multicontroller mode, touching outside the item will exit it - this._setSecondaryMulticontroller(false, this._currentSecondaryMulticontrollerItem); - this._showFocus(this._lastItemWithFocus, true); - } - else - { - // pass the event to the SliderCtrl - this._activeSlider.slider._onUpHandler(e); - - // transition focus back to item and remove it from the slider - this._activeSlider.slider.handleControllerEvent('lostFocus'); - this._showFocus(this._lastItemWithFocus, true); - } - } - - // reset currently active slider - this._activeSlider = null; -}; - -List2Ctrl.prototype._slideCallback = function() -{ - // get item index from the first argument - var itemIndex = arguments[0]; - - // get value and final adjustment from fourth argument - var value = arguments[3].value; - var finalAdjustment = arguments[3].finalAdjustment; - - // update local value - this.dataList.items[itemIndex].value = value; - - // Fire slide callback passing forward anything in the arguments - if (typeof this.properties.slideCallback == 'function') - { - // fire callback with original slider params - // this.properties.slideCallback.apply(null, Array.prototype.slice.call(arguments, 1)); - - // fire per-design callback - var params = { - itemIndex : itemIndex, - value:value, - finalAdjustment : finalAdjustment - }; - this.properties.slideCallback(this, this.dataList.items[itemIndex].appData, params); - } -}; - - - -/* - * ========================= - * TOGGLE BUTTONS - * When a button is selected it is automatically - * highlighted (activated) and the value is reported to the - * button select callback (if defined) - * ========================= - */ - - -/** - * Remove hit state from the toggle button - * TAG: touch-only, internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {void} - */ -List2Ctrl.prototype._buttonRemoveHit = function(itemIndex) -{ - var targetElt = this._getDOMItem(itemIndex); - if (targetElt) - { - var hitItems = targetElt.querySelectorAll('.hit'); - - if (hitItems.length) - { - for (var i=0, l=hitItems.length; i do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Check if we are in the hittable area - var inHittable = false; - var rightBoundary = this.properties.toggleReferencePointRight; - var leftBoundary = 0; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : // 2 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (2 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'style11' : // 3 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (3 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'draggable' : // 1 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (1 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - } - - if (!inHittable) - { - // we are outside the hittable area -> return false - return false; - } - - // when user hits one of the buttons, the item does not gain hit highlight - this._itemRemoveHit(); - - // Check which button is hit - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - var buttonId = null; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : - buttonId = clickedZone < 0.5 ? 1 : 2; - break; - case 'style11' : - buttonId = clickedZone < 0.33 ? 1 : - clickedZone < 0.66 ? 2 : - 3; - break; - case 'draggable' : - buttonId = 1; - break; - } - - // Make that button hit - if (buttonId) - { - // save the button as _startButton - this._startButton = buttonId; - - var domItem = this._getDOMItem(itemIndex); - var buttons = domItem.querySelectorAll('.button'); - for (var i=0; i do not make active - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // Check if we are in the hittable area - var inHittable = false; - var rightBoundary = this.properties.toggleReferencePointRight; - var leftBoundary = 0; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : // 2 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (2 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'style11' : // 3 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (3 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'draggable' : // 1 toggle button - leftBoundary = this.properties.toggleReferencePointRight - (1 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - } - - if (!inHittable && this._startButton) - { - // we are outside the hittable area and we have started from a button -> return cancel - return 'cancel'; - } - else if (!inHittable) - { - // we are outside the hittable area -> return cancel - return null; - } - - // Check which button is selected - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - var buttonId = null; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : - buttonId = clickedZone < 0.5 ? 1 : 2; - break; - case 'style11' : - buttonId = clickedZone < 0.33 ? 1 : - clickedZone < 0.66 ? 2 : - 3; - break; - case 'draggable' : - buttonId = 1; - break; - } - - // Make that button active - if (buttonId && buttonId === this._startButton) - { - this._startButton = null; - - if (this.dataList.items[itemIndex].value == buttonId) - { - // we ended on already selected button -> cancel - return 'cancel'; - } - // we ended up on the same button we started -> select that button - this._buttonActivate(itemIndex, buttonId); - } - else if (buttonId && null === this._startButton) - { - // we started off the buttons but ended up on a button -> select next button - this._startButton = null; - return null; - } - else - { - // we started from one of the buttons but ended out of them -> cancel - this._startButton = null; - return 'cancel'; - } - - // Return the button id - return buttonId; - -}; - -/** - * Select the nearest left toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonSelectLeft = function(itemIndex) -{ - // get current active button - var current = this.dataList.items[itemIndex].value; - - // set new active button - return this._buttonActivate(itemIndex, current-1); -}; - -/** - * Select the nearest right toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonSelectRight = function(itemIndex) -{ - // get current active button - var current = this.dataList.items[itemIndex].value; - - // set new active button - return this._buttonActivate(itemIndex, current+1); -}; - -/** - * Activate toggle button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonActivate = function(itemIndex, buttonId) -{ - // Ensure that buttonId is valid and wraps in a loop - if ('style10' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = (!isNaN(buttonId)) ? buttonId : 1; - if (buttonId > 2) - buttonId = 1; - else if (buttonId < 1) - buttonId = 2; - } - else if('style11' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = (!isNaN(buttonId)) ? buttonId : 1; - if (buttonId > 3) - buttonId = 1; - else if (buttonId < 1) - buttonId = 3; - } - else if('draggable' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = 1; - } - else - { - log.debug('Unknown item style for itemIndex ' + itemIndex); - return null; - } - - if ('draggable' != this.dataList.items[itemIndex].itemStyle) - { - // Save the new value in the dataList - this.dataList.items[itemIndex].value = buttonId; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - // Remove any residual hit states - this._buttonRemoveHit(itemIndex); - - // Activate the button - if (domItem) - { - var buttons = domItem.querySelectorAll('.button'); - for (var i=0; i do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Check if we are in the hittable area - var inHittable = false; - var domItem = this._getDOMItem(itemIndex); - var lockButton = domItem.querySelector('.buttonLock'); - var deleteButton = domItem.querySelector('.buttonDelete'); - var leftBoundary = lockButton.offsetLeft; - var rightBoundary; - if (this.dataList.items[itemIndex].locked) - { - // the delete button is disabled - rightBoundary = lockButton.offsetLeft + lockButton.clientWidth; - } - else - { - // the delete button is enabled - rightBoundary = deleteButton.offsetLeft + deleteButton.clientWidth; - } - - // hit test - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // we are outside the hittable area -> return false - return false; - } - - // when user hits one of the buttons, the item does not gain hit highlight - this._itemRemoveHit(); - - var buttonId = 1; - // Check which button is hit is the item is not locked - if (!this.dataList.items[itemIndex].locked) - { - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - buttonId = clickedZone < 0.5 ? 1 : 2; - } - - // save the button as _startLockButton - this._startLockButton = buttonId; - - // remove hit - this._lockRemoveHit(itemIndex); - - // make that button hit - if (1 === buttonId) - { - this._lockShowFocus(itemIndex, 1); - domItem.querySelector('.buttonLock').classList.add('hit'); - } - else - { - this._lockShowFocus(itemIndex, 2); - domItem.querySelector('.buttonDelete').classList.add('hit'); - } - - this._hideFocus(); - - return true; - -}; - -/** - * Select lock button - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - * @return {string} - performed action (lock, unlock, delete) - */ -List2Ctrl.prototype._lockSelect = function(e) -{ - // get relative mouse position - var relativeX = e.pageX - this._maskPositionX; - - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return null; - } - - // if the item is disabled -> do not make active - if (this.dataList.items[itemIndex].disabled) - { - return null; - } - - // Check if we are in the hittable area - var inHittable = false; - var domItem = this._getDOMItem(itemIndex); - var lockButton = domItem.querySelector('.buttonLock'); - var deleteButton = domItem.querySelector('.buttonDelete'); - var leftBoundary = lockButton.offsetLeft; - var rightBoundary; - if (this.dataList.items[itemIndex].locked) - { - // the delete button is disabled - rightBoundary = lockButton.offsetLeft + lockButton.clientWidth; - } - else - { - // the delete button is enabled - rightBoundary = deleteButton.offsetLeft + deleteButton.clientWidth; - } - - // hit test - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // set secondary multicontroller leaving highlight from where it started - if (this._startLockButton) - { - this._setSecondaryMulticontroller(true, itemIndex); - this._lockShowFocus(itemIndex, this._startLockButton); - } - - // we are outside the hittable area -> return null - return null; - } - - var action = null; - var buttonId = 1; - // Check which button is hit is the item is not locked - if (!this.dataList.items[itemIndex].locked) - { - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - buttonId = clickedZone < 0.5 ? 1 : 2; - } - - // Make that button active - if (buttonId === this._startLockButton) - { - this._startLockButton = null; - // we ended up on the same button we started -> select that button - action = this._lockActivate(itemIndex, buttonId); - } - else if (null === this._startButton) - { - this._startLockButton = null; - // we started off the buttons but ended up on a button -> select that button - action = this._lockActivate(itemIndex, buttonId); - } - else - { - // we started from one of the buttons but ended out of them -> cancel - this._startLockButton = null; - - return null; - } - - // Return the performed action - return action; - -}; - -/** - * Select the nearest left toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._lockMoveFocusLeft = function(itemIndex) -{ - // get current focussed lock button - var current = this._lockGetFocus(itemIndex); - - // set the new focussed lock button - return this._lockShowFocus(itemIndex, current-1); -}; - -/** - * Select the nearest right toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._lockMoveFocusRight = function(itemIndex) -{ - // get current focussed lock button - var current = this._lockGetFocus(itemIndex); - - // set the new focussed lock button - return this._lockShowFocus(itemIndex, current+1); -}; - -/** - * Activate lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @param {integer} - the button that is going to be activated - * @return {string} - performed action (lock, unlock, delete) - */ -List2Ctrl.prototype._lockActivate = function(itemIndex, buttonId) -{ - var action = null; - - switch (buttonId) - { - case 1 : - if (this.dataList.items[itemIndex].locked) - { - this.dataList.items[itemIndex].locked = false; - action = 'unlock'; - } - else - { - this.dataList.items[itemIndex].locked = true; - action = 'lock'; - } - break; - case 2 : - if (!this.dataList.items[itemIndex].locked) - { - action = 'delete'; - } - break; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - // Update the item - if (domItem) - { - switch (action) - { - case 'lock' : - domItem.classList.add('locked'); - break; - case 'unlock' : - domItem.classList.remove('locked'); - break; - } - } - - return action; -}; - - -/** - * Show focus highlight on a lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @param {integer} - the index of the button that will be focused - * @return {integer} - id of the focussed lock button - */ -List2Ctrl.prototype._lockShowFocus = function(itemIndex, buttonId) -{ - // check if this is a lock item - if (!this._isLock(itemIndex)) - { - return false; - } - - // if the item is disabled -> do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - if ('clear' === buttonId) - { - if (domItem) - { - domItem.querySelector('.buttonLock').classList.remove('focus'); - domItem.querySelector('.buttonDelete').classList.remove('focus'); - } - return null; - } - else - { - // validate button id - var buttonId = this.dataList.items[itemIndex].locked ? 1 : this.m.min(this.m.max(buttonId, 1), 2); - - if (domItem) - { - // add focus on the respective button - switch (buttonId) - { - case 1 : - domItem.querySelector('.buttonDelete').classList.remove('focus'); - domItem.querySelector('.buttonLock').classList.add('focus'); - break; - case 2 : - domItem.querySelector('.buttonLock').classList.remove('focus'); - domItem.querySelector('.buttonDelete').classList.add('focus'); - break; - default : - domItem.querySelector('.buttonDelete').classList.remove('focus'); - domItem.querySelector('.buttonLock').classList.add('focus'); - break; - } - } - return buttonId; - } -}; - - -/** - * Get currently focused lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {integer} - id of the currently focussed lock button - */ -List2Ctrl.prototype._lockGetFocus = function(itemIndex) -{ - // check if this is a lock item - if (!this._isLock(itemIndex)) - { - return false; - } - - // if the item is disabled -> do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - var focussedButton = null; - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - if (domItem) - { - if (domItem.querySelector('.buttonLock').classList.contains('focus')) - focussedButton = 1; - else if (domItem.querySelector('.buttonDelete').classList.contains('focus')) - focussedButton = 2; - } - - return focussedButton; -}; - - -/* - * ========================= - * STEP ITEM - * ========================= - */ - -/** - * Increase the value by one step - * TAG: internal - * ========================= - * @param {MouseEvent} - raw mouse event - * @return {integer} - the new value - */ -List2Ctrl.prototype._stepAdjust = function(e) -{ - // get relative mouse position - var relativeX = e.pageX - this._maskPositionX; - - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return; - } - - // if the item is disabled -> do not make active - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // perform hit test - var itemDOMElement = this._getDOMItem(itemIndex); - if (!itemDOMElement) - { - return; - } - - var p = itemDOMElement.querySelector('.plus'); - var m = itemDOMElement.querySelector('.minus'); - var pLayout = { x1:p.offsetLeft, x2:p.offsetLeft + p.clientWidth }; - var mLayout = { x1:m.offsetLeft, x2:m.offsetLeft + m.clientWidth }; - - var newValue = null; - - if (relativeX >= pLayout.x1 && relativeX <= pLayout.x2) - { - // plus pressed - newValue = this._stepUp(itemIndex); - } - else if (relativeX >= mLayout.x1 && relativeX <= mLayout.x2) - { - // minus pressed - newValue = this._stepDown(itemIndex); - } - else if (relativeX < mLayout.x1) - { - newValue = 'commit'; - } - - - return newValue; -}; - -/** - * Increase the value by one step - * TAG: internal - * ========================= - * @param {integer} - index of the step item - * @return {integer|null} - the new value - */ -List2Ctrl.prototype._stepUp = function(itemIndex) -{ - if (!this._isStep(itemIndex)) - { - return; - } - - var oldValue = this.dataList.items[itemIndex].value; - var newValue = this.m.min(this.dataList.items[itemIndex].value + this.dataList.items[itemIndex].increment, this.dataList.items[itemIndex].max); - - if (newValue != oldValue) - { - // value changed -> store it and update item - this.dataList.items[itemIndex].value = newValue; - this.updateItems(itemIndex, itemIndex); - } - else - { - // value is the same -> return null - newValue = null; - } - - return newValue; -}; - -/** - * Decrease the value by one step - * TAG: internal - * ========================= - * @param {integer} - index of the step item - * @return {integer|null} - the new value - */ -List2Ctrl.prototype._stepDown = function(itemIndex) -{ - if (!this._isStep(itemIndex)) - { - return; - } - - var oldValue = this.dataList.items[itemIndex].value; - var newValue = this.m.max(this.dataList.items[itemIndex].value - this.dataList.items[itemIndex].increment, this.dataList.items[itemIndex].min); - - if (newValue != oldValue) - { - // value changed -> store it and update item - this.dataList.items[itemIndex].value = newValue; - this.updateItems(itemIndex, itemIndex); - } - else - { - // value is the same -> return null - newValue = null; - } - - return newValue; -}; - - -/** - * ========================= - * LIST REORDERING - * ========================= - */ - -/** - * Enter into list reorder mode - * This method stores the original item style of the - * item that is being reordered and substitutes it with - * an internal 'draggable' item style. - * TAG: internal - * ========================= - * @param {Boolean} - * @return {void} - */ -List2Ctrl.prototype._enterListReorder = function(fromInit) -{ - // keep a copy of the item before converting it to a draggable item - - var focussedIndex; - if (fromInit) - { - focussedIndex = this.properties.focussedItem; - } - else - { - focussedIndex = this._getFocussedIndex(); - } - - // check for items in the dataList - if (!this.dataList || !this.dataList.items || !this.dataList.items[focussedIndex]) - { - return; - } - - // do not reorder disabled items - if (this.dataList.items[focussedIndex].disabled) - { - return; - } - - // enter into List Reordering mode - this._inListReorder = true; - - this.dataList.items[focussedIndex].itemBehavior = 'shortAndLong'; // make it accept long press (if not already) - this._reorderItem = this.dataList.items[focussedIndex]; - this._reorderItemIndex = focussedIndex; - this._reorderCurrentIndex = focussedIndex; - - // convert the item to a draggable item - var draggableItem = {}; - draggableItem.itemStyle = 'draggable'; - draggableItem.text1 = this._reorderItem.text1; - draggableItem.image1 = (this._reorderItem.hasOwnProperty('image1')) ? this._reorderItem.image1 : ''; - draggableItem.button1 = this._getLocalizedString('common.Ok'); - draggableItem.hasCaret = false; - this.dataList.items[focussedIndex] = draggableItem; - this.updateItems(focussedIndex, focussedIndex); - -}; - -/** - * Leave list reorder mode - * The item that is being reordered is restored - * to it initial style. The select callback is - * then fired to notify the interested parties of - * the change and the new position of the item. - * TAG: internal - * ========================= - * @param {Boolean} - prevent item selection when releasing the reorder - * @return {void} - */ -List2Ctrl.prototype._releaseListReorder = function(preventSelect) -{ - // exit list reordering mode - this._inListReorder = false; - - // get draggable item index - var draggableItems = this.getItemsByType('draggable'); - if (!draggableItems.length) - { - return; - } - - var draggableItemIndex = draggableItems[0]; - - // convert the draggable item back into the previous item type - this.dataList.items[draggableItemIndex] = this._reorderItem; - this.updateItems(draggableItemIndex, draggableItemIndex); - - // cast preventSelect as Boolean - var preventSelect = Boolean(preventSelect); - - // selection is allowed - if (!preventSelect) - { - // fire item select - var params = { - newIndex : draggableItemIndex, - oldIndex : this._reorderItemIndex - }; - this._itemSelect(draggableItemIndex, params); - } - - // release the copy of the reorder item - this._reorderItem = null; - this._reorderItemIndex = null; - this._reorderTouchElt = null; - -}; - - -/** - * Touch start reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._startReorder = function(e) -{ - // get target item index - var itemIndex = this._getTargetItem(e); - - // get draggable item index - if (itemIndex === this._reorderCurrentIndex) - { - this._startY = e.pageY - this._maskPositionY; - this._startX = e.pageX - this._maskPositionX; - - // do we have hit on the button? - var positiveButtonHit = this._buttonMakeHit(e); - - if (!positiveButtonHit) - { - this._itemMakeLongPress(e); - - // clone draggable item - var tmp = this._getDOMItem(itemIndex); - this._reorderTouchElt = tmp.cloneNode(true); - this.scroller.appendChild(this._reorderTouchElt); - - // convert the draggable item to a ghost item - var ghostItem = {itemStyle:'ghost', hasCaret:false}; - this.dataList.items[itemIndex] = ghostItem; - this.updateItems(itemIndex, itemIndex); - - this._hideFocus(); - - // raise _inDrag - this._inDrag = true; - } - else - { - // flag the behaviour as release intent - this._releaseReorderByTouch = true; - } - - // track event - this._trackEvent(e); - } -}; - -/** - * Touch move reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._moveReorder = function(e) -{ - if (this._reorderTouchElt) - { - // track event - this._trackEvent(e); - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = (e.pageY - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) - (this.properties.itemHeight / 2); - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the item - this._reorderTouchElt.style.top = newPos + 'px'; - - // get last move - var moveDirection = this._getMoveDirection(); - - // reset any scheduled scrolling if the user intends cacnelling the scroll - if (newPos <= (this._topItem * this.properties.itemHeight) + this.properties.itemHeight && - newPos > this._topItem * this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - } - else if (newPos >= (this._topItem + this.properties.visibleItems - 2) * this.properties.itemHeight && - newPos < (this._topItem + this.properties.visibleItems - 1) * this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - } - - // drag down - if (1 === moveDirection) - { - // have we passed the last item's top border? - if ( (this._topItem >= this.dataList.itemCount - this.properties.visibleItems) && (newPos >= ((this._topItem + this.properties.visibleItems) * this.properties.itemHeight) - this.properties.itemHeight) ) - { - this._reorderGhostItemDown(); - } - else if (newPos >= ((this._topItem + this.properties.visibleItems) * this.properties.itemHeight) - this.properties.itemHeight) - { - // do we have a scroll down scheduled? -> if not, schedule one - if (null === this._touchReorderTimeoutId) - { - this._touchReorderTimeoutId = setTimeout(this._scrollDownOne.bind(this), this.properties.listReorderScrollTimeout); - } - } - else if (newPos >= (this._reorderCurrentIndex * this.properties.itemHeight) + this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - this._reorderGhostItemDown(); - } - } - // drag up - else if (-1 === moveDirection) - { - // have we passed the top item's top border? - if (0 != this._topItem && newPos <= this._topItem * this.properties.itemHeight) - { - // do we have a scroll up scheduled? -> if not, schedule one - if (null === this._touchReorderTimeoutId) - { - this._touchReorderTimeoutId = setTimeout(this._scrollUpOne.bind(this), this.properties.listReorderScrollTimeout); - } - } - else if (newPos <= (this._reorderCurrentIndex * this.properties.itemHeight) - this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - this._reorderGhostItemUp(); - } - } - - } // endif (this._reorderTouchElt) -}; - -/** - * Touch end reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._endReorder = function(e) -{ - if (this._reorderTouchElt) - { - // get nearest snap position - var newSnappedIndex = Math.floor( ( (e.pageY - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) ) / this.properties.itemHeight ); - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = newSnappedIndex * this.properties.itemHeight; - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the scroller if in bounds - this._reorderTouchElt.style.top = newPos + 'px'; - - // convert the ghost item back to a draggable ite m - var draggableItem = {}; - draggableItem.itemStyle = 'draggable'; - draggableItem.text1 = this._reorderItem.text1; - draggableItem.image1 = (this._reorderItem.hasOwnProperty('image1')) ? this._reorderItem.image1 : ''; - draggableItem.button1 = this._getLocalizedString('common.Ok'); - draggableItem.hasCaret = false; - this.dataList.items[this._reorderCurrentIndex] = draggableItem; - this.updateItems(this._reorderCurrentIndex, this._reorderCurrentIndex); - - // remove the cloned element - this._reorderTouchElt.parentElement.removeChild(this._reorderTouchElt); - } - - this._itemRemoveLongPress(); - this._reorderTouchElt = null; - - // reset flags - this._inHorizontalDrag = null; - this._hDragItem = null; - this._inDrag = false; - this._stopSelect = false; - - // restore focus - this._showFocus(this._reorderCurrentIndex); - - // clear any scroll timeout - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - - // are we about to release reorder - if (this._releaseReorderByTouch && this._isToggle(this._reorderCurrentIndex)) - { - // remove hit state of button and release list reorder - this._buttonRemoveHit(this._reorderCurrentIndex); - this._releaseListReorder(); - this._releaseReorderByTouch = false; - } - -}; - -/** - * After the list has scrolled due to touch reorder action, - * upon animation end, the touch reorder item is brought under the - * user's finger and if the possition requires it, a new scroll - * is scheduled. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._bringReorderItem = function() -{ - if (this._trackedEvents.length && this._reorderTouchElt) - { - // get last event - var lastEvent = this._trackedEvents[this._trackedEvents.length-1]; - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = (lastEvent.y - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) - (this.properties.itemHeight / 2); - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the item - this._reorderTouchElt.style.top = newPos + 'px'; - - // we are past the top item's top boundary - if (0 != this._topItem && newPos <= this._topItem * this.properties.itemHeight) - { - // update blank spot - this._reorderGhostItemUp(); - - // reschedule list scroll - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = setTimeout(this._scrollUpOne.bind(this), this.properties.listReorderScrollTimeout); - } - else if (0 == this._topItem) - { - // update blank spot - this._reorderGhostItemUp(); - } - else if (this._topItem != this.dataList.itemCount - this.properties.visibleItems && - newPos >= (this._topItem + this.properties.visibleItems - 1) * this.properties.itemHeight) - { - // update blank spot - this._reorderGhostItemDown(); - - // reschedule list scroll - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = setTimeout(this._scrollDownOne.bind(this), this.properties.listReorderScrollTimeout); - } - else if (this._topItem >= this.dataList.itemCount - this.properties.visibleItems) - { - // update blank spot - this._reorderGhostItemDown(); - } - - } -}; -/** - * Reorder the item to the index - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {void} - */ -List2Ctrl.prototype._reorderToIndex = function(itemIndex) -{ - if (!this._inListReorder || isNaN(itemIndex)) - { - log.error("list1 _reorderToIndex : Invalid arguments - inListReorder, itemIndex", this._inListReorder, itemIndex); - return; - } - - if (itemIndex != this._reorderItemIndex) - { - if (itemIndex < this._reorderItemIndex) - { - this._reorderItemUp(this._reorderItemIndex - itemIndex) - } - else - { - this._reorderItemDown(itemIndex - this._reorderItemIndex) - } - } -} - -/** - * Reorder the item down - * TAG: internal - * ========================= - * @param {integer} -number of items - * @return {void} - */ -List2Ctrl.prototype._reorderItemDown = function(reorderCount) -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - //prevent list scrolling while we're loading - if (this._inLoading) - { - return; - } - - if (!reorderCount) - { - reorderCount = 1; - } - - for (var count = 1; count <= reorderCount; count++) - { - // get draggable item index - var draggableItemIndex = this.getItemsByType('draggable')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.min(draggableItemIndex + 1, this.dataList.itemCount - 1); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[draggableItemIndex]; - this.dataList.items[draggableItemIndex] = tempCopy; - - // update display - this.updateItems(draggableItemIndex, targetItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - } - -}; -/** - * Reorder the item up - * TAG: internal - * ========================= - * @param {integer} -number of items - * @return {void} - */ -List2Ctrl.prototype._reorderItemUp = function(reorderCount) -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - //prevent list scrolling while we're loading - if (this._inLoading) - { - return; - } - - if (!reorderCount) - { - reorderCount = 1; - } - - for (var count = 1; count <= reorderCount; count++) - { - // get draggable item index - var draggableItemIndex = this.getItemsByType('draggable')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.max(draggableItemIndex - 1, 0); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[draggableItemIndex]; - this.dataList.items[draggableItemIndex] = tempCopy; - - // update display - this.updateItems(targetItemIndex, draggableItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - } - -}; - -/** - * Reorder ghost item one position down - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._reorderGhostItemDown = function() -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - // get draggable item index - var ghostItemIndex = this.getItemsByType('ghost')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.min(ghostItemIndex + 1, this.dataList.itemCount - 1); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[ghostItemIndex]; - this.dataList.items[ghostItemIndex] = tempCopy; - - // update display - this.updateItems(ghostItemIndex, targetItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - - this._hideFocus(); -}; - -/** - * Reorder ghost item one position up - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._reorderGhostItemUp = function() -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - // get draggable item index - var ghostItemIndex = this.getItemsByType('ghost')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.max(ghostItemIndex - 1, 0); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[ghostItemIndex]; - this.dataList.items[ghostItemIndex] = tempCopy; - - // update display - this.updateItems(targetItemIndex, ghostItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - - this._hideFocus(); -}; - - -/** - * ========================= - * LIST EVENTS API - * ========================= - */ - -/** - * List event - * TAG: internal - * ========================= - * @param {string} - Event name - * @param {*} - Event data - * @return {void} - */ -List2Ctrl.prototype._listEvent = function(type, data) -{ - var data = data || null; - switch (type) - { - case this._EVENTS.ITEM_SELECT : - this._dispatch(this._EVENTS.ITEM_SELECT, data); - break; - case this._EVENTS.LETTER_SELECT : - this._dispatch(this._EVENTS.LETTER_SELECT, data); - break; - case this._EVENTS.DATALIST_CHANGE : - this._dispatch(this._EVENTS.DATALIST_CHANGE, null); - break; - case this._EVENTS.SCROLL_START : - this._dispatch(this._EVENTS.SCROLL_START, data); - break; - case this._EVENTS.SCROLL_END : - this._dispatch(this._EVENTS.SCROLL_END, data); - break; - case this._EVENTS.CLEAN_UP : - this._dispatch(this._EVENTS.CLEAN_UP, data); - break; - default : - // nothing to do - break; - } -}; - -/** - * Get listeners array for an event - * TAG: internal - * ========================= - * @param {string} - Event name - * @return {array} - */ -List2Ctrl.prototype._getListeners = function(type, useCapture) -{ - var captype = (useCapture ? '1' : '0') + type; - if (!(captype in this._eventListeners)) - this._eventListeners[captype] = []; - return this._eventListeners[captype]; -}; - -/** - * Dispatch custom event - * TAG: internal - * ========================= - * @param {string} - Event name - * @return {void} - */ -List2Ctrl.prototype._dispatch = function(type, data) -{ - if (!type || '' == type) - return; - var evt = new CustomEvent( type, { detail : { data : data, bubbles: true, cancelable: true } } ); - this.dispatchEvent(evt); -}; - -/** - * Add event listener to custom list event - * TAG: public - * ========================= - * @param {string} - event name - * @param {function} - event listener - * @param {boolean} - use capture - * @return {void} - */ -List2Ctrl.prototype.addEventListener = function(type, listener, useCapture) -{ - var listeners = this._getListeners(type, useCapture); - var ix = listeners.indexOf(listener); - if (-1 === ix) - listeners.push(listener); -}; - -/** - * Remove event listener to custom list event - * TAG: public - * ========================= - * @param {string} - event name - * @param {function} - event listener - * @param {boolean} - use capture - * @return {void} - */ -List2Ctrl.prototype.removeEventListener = function(type, listener, useCapture) -{ - var listeners = this._getListeners(type, useCapture); - var ix = listeners.indexOf(listener); - if (-1 !== ix) - listeners.splice(ix, 1); -}; - -/** - * Displatch custom list event - * TAG: public - * ========================= - * @param {object} - event object - * @return {boolean} - */ -List2Ctrl.prototype.dispatchEvent = function(evt) -{ - var listeners = this._getListeners(evt.type, false).slice(); - for (var i= 0; i dataList.items.length) - { - for (var i=dataList.items.length; i= 0) - { - // force exit secondary multicontroller - this._inSecondaryMulticontroller = false; - - var additionalSpace = this._getAdditionalSpace(); - - this.scroller.style.height = this.dataList.itemCount * this.properties.itemHeight + additionalSpace + 'px'; - this._scrollerH = this.scroller.offsetHeight; - this._emptyScroller(); - this._scrollIndicatorReset(); - if(0 === this.dataList.itemCount) - { - this._scrollIndicatorBuild(false); - } - else - { - this._scrollIndicatorBuild(true); - } - - // set line numbers - this.setLineNumbers(); - } - -}; - -List2Ctrl.prototype.hasDataList = function() -{ - if (this.dataList == null) - { - return false; - } - - if (!this.dataList.hasOwnProperty('itemCountKnown') && !this.dataList.hasOwnProperty('itemCount') && !this.dataList.hasOwnProperty('items')) - { - return false; - } - - if (this.dataList.itemCountKnown && this.dataList.itemCount == 0) - { - return false; - } - - if (!this.dataList.itemCountKnown && this.dataList.itemCount <= 0) - { - return false; - } - - return true; -}; - -/** - * Update Items - * - * This is intended to be used whenever the bound data is changed programmatically by the app. In other words, - * it informs the control that bound data has changed … and if the range of changed items overlaps with items - * rendered into HTML objects, then the ListMenu must update those elements. There are several use cases for this: - * - * 1. For the case where the dataList is fetched asynchronously in the background after ListMenu is displayed, - * the updateItems() API will be called as new data arrives. I think this use case is described fairly completely - * in section 2.2.4 of the ListMenu SDD. Note that these updates may correspond to the user scrolling, or may simply - * occur in the background as the list is loaded into GUI while the user is still looking at the first N list items. - * Also note that the listCount can change and the ListMenu control must adapt appropriately, including handling - * reduction of the list count. - * - * 2. To allow the application to update menu text dynamically, e.g. to display the name of the connected USB - * Audio device instead of “USB”, or to change the displayed image(s). - * - * 3. To allow the application to enable/disable menu items or to set/clear the “selected” indicator. - * - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype.updateItems = function(firstItem, lastItem) -{ - log.debug("List2 updateItems() firstItem, lastItem",firstItem, lastItem); - // update _maxScrollY - this._maxScrollY = this.mask.offsetHeight - this.scroller.offsetHeight; - - var emptyDOMItem = null; - - // clear _needDataTimeoutId - clearTimeout(this._needDataTimeoutId); - this._needDataTimeoutId = null; - - this._prepareItems(firstItem, lastItem); - this._localizeItems(firstItem, lastItem); - - // trim dataList.items if it is larger than dataList.itemCount - if (this.dataList && - this.dataList.itemCountKnown && - this.dataList.items && - this.dataList.itemCount < this.dataList.items.length) - { - this.dataList.items = this.dataList.items.slice(0, this.dataList.itemCount); - console.assert(this.dataList.itemCount == this.dataList.items.length, 'dataList.itemCount is not equal to dataList.items.length'); - } - - // validate first item - if (this.dataList.itemCountKnown && firstItem < -1) - { - log.warn('List2: firstItem is less than -1: ' + firstItem + ' passed. Setting it to -1.'); - firstItem = -1; - } - - // validate last item - if (this.dataList.itemCountKnown && lastItem >= this.dataList.itemCount) - { - log.warn('List2: lastItem is more than or equals dataList.itemCount(' + (this.dataList.itemCount-1) + '): ' + lastItem + ' passed. Setting it to ' + (this.dataList.itemCount - 1) + '. ' + this.uiaId + ' check your variable validation!?'); - lastItem = this.dataList.itemCount - 1; - } - - - // check for invalid items (e.g. firstItem=0, lastItem=-1) -> set loading - if (firstItem > lastItem) - { - firstItem = lastItem = -1; - } - - if (firstItem == -1 && lastItem == -1) - { - // we have dataList but no list items => show loading - this._setLoading(true); - - } - else if (firstItem >= 0 && lastItem >= 0 && lastItem >= firstItem && !this._hasFill) - { - - - // we have dataList and we have list items but we do not have fill => do initial fill - var lastFillItem = this.m.min(lastItem, this.properties.itemsBefore + this.properties.itemsAfter); - - this._fill(firstItem, lastFillItem); - this._setLoading(false); - - // update modified timestamps - this._updateModifiedTimestamps(firstItem, lastItem); - - if (this.properties.focussedItem < this.dataList.itemCount) - { - this.properties.focussedItem = this._canGainFocus(this.properties.focussedItem); - } - else - { - this.properties.focussedItem = this.dataList.itemCount - 1; - this.properties.focussedItem = this._canGainFocus(this.properties.focussedItem); - } - /* - * Immediately scroll to a preset location and - * show focus on preset item if this is specified - * in the control's config. Focus placement needs to be done - * after the DOM is refreshed. This is done only the - * first time after a fresh setDataList() call. - * Focussed item has precedence over scroll location. - */ - if (null === this._initialScrollMode) - { - // first check if the focussed item and the scroll position are all on the same screen - // scroll to that position and show the focus according to the config - if ( (this.properties.focussedItem >= 0 || this.properties.scrollTo >= 0) && - (this.m.abs(this.properties.focussedItem - this.properties.scrollTo) <= (this.properties.visibleItems - 1)) ) - { - log.debug('Focus is visible on screen'); - this._scrollTo(this.properties.scrollTo, 0); - setTimeout(function() { - this._showFocus(this.properties.focussedItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - // set initial focus to a particular item if this is set in the config - // the list will be scrolled so that this item is visible - else if (this.properties.focussedItem >= 0) - { - log.debug('Focus is not visible and has priority'); - setTimeout(function() { - this._showFocus(this.properties.focussedItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - // scroll (no animation) to a particular item if this is set in the config - // the focus will be placed on the top item - else if (this.properties.scrollTo >= 0) - { - log.debug('Focus is 0 and scrollTo has priority'); - this._scrollTo(this.properties.scrollTo, 0); - setTimeout(function() { - this._topItem = this._canGainFocus(this._topItem); - this._showFocus(this._topItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - } - // sync the top item with focus if not in initial mode any more - // enter in this case usualy when a new data list is set - else - { - var focussedItem = this.focussedItem; - var topInFocusRange = focussedItem >= this.topItem && focussedItem < this.topItem + this.properties.visibleItems - 1; - var prevTopInFocusRange = focussedItem >= this._prevTopItem && focussedItem < this._prevTopItem + this.properties.visibleItems - 1; - if (!topInFocusRange && !prevTopInFocusRange) - { - this.topItem = focussedItem; - } - else if (!topInFocusRange && prevTopInFocusRange) - { - this.topItem = this._prevTopItem; - } - } - - // check for empty items in DOM - emptyDOMItem = this._getEmptyDOMElement(); - - } - else if (firstItem >= 0 && lastItem >= 0 && lastItem >= firstItem) - { - // preserve focussed element - var lastFocussedIndex = this._getFocussedIndex(); - - // we have dataList and we have list items, and we have fill => perform update - this._updateDisplay(firstItem, lastItem); - this._setLoading(false); - - // update modified timestamps - this._updateModifiedTimestamps(firstItem, lastItem); - - // restore focussed element - if (!this._inLetterIndexMulticontroller && !this._inSecondaryMulticontroller) - { - this._showFocus(lastFocussedIndex, true); - } - else if (this._inSecondaryMulticontroller) - { - // treat disabling the secondary multicontroller item as interrupt -> commit value and exit - var smi = this._currentSecondaryMulticontrollerItem; - if (this.dataList.items[smi] && this.dataList.items[smi].disabled) - { - this._setSecondaryMulticontroller(false, smi); - this._showFocus(smi, true); - } - else if (this.dataList.items[smi]) - { - this._setSecondaryMulticontroller(true, smi); - } - } - - // check for empty items in DOM - emptyDOMItem = this._getEmptyDOMElement(); - - } - else - { - log.error(this.uiaId + ' called List2 updateItems() with invalid arguments: firstItem = ' + firstItem + ', lastItem = ' + lastItem); - } - - // suppress secondary item request when the list is in reorder mode - if (this.properties.enableSecondaryItemRequest && !this._inListReorder) - { - // do we have empty DOM items? - if (null == emptyDOMItem) - { - // clear _secondaryRequestCount - this._secondaryRequestCount = 0; - } - else if (this._secondaryRequestCount <= this.properties.secondaryRequestLimit) - { - // fire needDataCallback() if an empty item is found in the DOM - this._requestMore(emptyDOMItem); - // increment _secondaryRequestCount - this._secondaryRequestCount++; - } - else - { - log.warn('Lis2: control has reached the secondary request count limit. Enabling the list'); - // we have reached secondaryRequestLimit -> set loading to False - this._setLoading(false); - } - } - - // restore the focus to the last focussed element - if (!this._inLetterIndexMulticontroller && !this._inSecondaryMulticontroller) - { - this._showFocus(this._lastItemWithFocus, true); - } - -}; - - -/** 2. LETTER INDEX API **/ - -/** - * Set letter index data on demand, filling letters in the letter index area - * and assigning jump indices to them, so that when touched or selected - * by multicontroller, the list jumps to the respective index. - * TAG: public - * ========================= - * @param {data} - letter index data object - * @return {boolean} - True if letter index binding operation is a success - */ -List2Ctrl.prototype.setLetterIndexData = function(data) -{ - // validate input - if (!(data instanceof Array)) - { - log.error('Lis2: letter index data should be a valid array'); - return false; - } - - // validate control support - if (!this.properties.hasLetterIndex) - { - log.error('Lis2: list2 does not support letter index'); - return false; - } - - // reset any previous letter index data - this.letterIndexData = []; - this.letterIndex.innerText = ''; - - var letterIndexItem; - var label; - for (var i=0, l=data.length; i= 0) - { - this._letterIndexDataSorted[this._letterIndexDataSorted.length] = { - publicIndex : this.letterIndexData.length-1, - itemIndex : data[i].itemIndex - }; - } - } - - // sort private and filtered letter index by the itemIndex in ASC order - this._letterIndexDataSorted.sort(function(a,b) { - var compRes = 0; - if (a.itemIndex < b.itemIndex) - compRes = -1; - else if (a.itemIndex > b.itemIndex) - compRes = 1; - else - compRes = 0; - return compRes; - }); - - // set letter index scroller height - var additionalSpace = Math.ceil(this.properties.letterIndexHeight / 2) - 5; // adjusting factor - this.letterIndex.style.height = i * this.properties.letterIndexHeight + additionalSpace + 'px'; - this._scrollerHIndex = this.letterIndex.offsetHeight; - - // update _maxScrollYIndex - this._maxScrollYIndex = this.letterIndexWrapper.offsetHeight - this.letterIndex.offsetHeight; - - // set initial active letter index if there are any available - if (this.hasDataList() && this._letterIndexDataSorted.length) - { - // get current focus index and first letter index - var focussedIndex = this._getFocussedIndex(); - var firstIndex = this._letterIndexDataSorted[0].itemIndex; - - if (firstIndex > 0 && focussedIndex < firstIndex) - { - this._setLetterIndexPosition(firstIndex); - } - else - { - this._setLetterIndexPosition(focussedIndex); - } - - } - else if (this._letterIndexDataSorted.length) - { - this._setLetterIndexPosition(this._letterIndexDataSorted[0].itemIndex); - } -}; - - -/** 3. VOICE API **/ - -/** - * Set left button configuration depending on current list configuration: - * title style, visible items, item count, item thickness - * TAG: public, VUI - * ========================= - * @return {void} - */ -List2Ctrl.prototype.setLineNumbers = function() -{ - // check if we need to show numbers - if (!this.properties.numberedList) - { - return; - } - - // check if we have some items to number - if (!this.dataList.hasOwnProperty('itemCount') || this.dataList.itemCount <= 0) - { - return; - } - - - var style = ''; - var maxItemCount = 0; - - // determine max item count and style - switch (this.properties.titleConfiguration) - { - case 'noTitle' : - maxItemCount = this.properties.thickItems ? 5 : 6; - style = this.properties.thickItems ? 'Style02' : 'Style04'; - break; - case 'tabsTitle' : - maxItemCount = this.properties.thickItems ? 4 : 5; - style = this.properties.thickItems ? 'Style01' : 'Style03'; - break; - case 'listTitle' : - switch (this._currentTitle.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - case 'style03a' : - maxItemCount = this.properties.thickItems ? 4 : 5; - style = this.properties.thickItems ? 'Style01' : 'Style03'; - break; - case 'style05' : - case 'style08' : - maxItemCount = 4; - style = this.properties.thickItems ? 'Style07' : 'Style06'; - break; - case 'style06' : - case 'style07' : - maxItemCount = 3; - style = this.properties.thickItems ? 'Style09' : 'Style08'; - break; - default : - log.warn('Lis2: unknown title style: ' + this._currentTitle.titleStyle); - return; - break; - } - break; - default : - log.warn('Lis2: unknown title configuration: ' + this.properties.titleConfiguration); - return; - break; - } - - // get actual item count - var itemCount = this.m.min(this.dataList.itemCount, maxItemCount); - - // check for common API - if (framework.common.setLineNumbers) - { - // call LeftBtnCtrl to show list numbers - return framework.common.setLineNumbers(itemCount, style); - } - -}; - -/** - * Performs select on the specified line number. When the select callback is fired, - * fromVui parameter is set to true. The function can return several possible - * statuses depending on the output of the operation. - * TAG: public, VUI - * ========================= - * @param {integer} - the line number that needs to be selected - * @return {string} - 'selected', 'outOfRange', 'disabled', 'sendAck', 'noList' - */ -List2Ctrl.prototype.selectLine = function(lineNumber) -{ - // get target item - var targetIndex = this._topItem + (lineNumber - 1); - - // decide what to return depending on what's visible - var status; - - // check if the list supports line numbers - if (!this.hasDataList()) - { - status = 'noList'; - log.debug('Lis2: selectLine() called with no list on the screen'); - } - else if (!this.dataList.vuiSupport) - { - status = 'noList'; - log.debug('Lis2: no VUI support for this list'); - } - else if (targetIndex > this.dataList.itemCount - 1 || targetIndex < 0) - { - status = 'outOfRange'; - log.debug('Lis2: line number out of range'); - } - else if (targetIndex < this._topItem || targetIndex > this._topItem + this.properties.visibleItems) - { - status = 'outOfRange'; - log.debug('Lis2: line number out of range'); - } - else if (!this.dataList.items[targetIndex].vuiSelectable) - { - status = 'notSelectable'; - log.debug('Lis2: list item is not VUI selectable'); - } - else if (this.dataList.items[targetIndex].disabled) - { - status = 'disabled'; - log.debug('Lis2: list item is disabled'); - this._itemSelect(targetIndex, {fromVui:true, vuiStatus:status}); - } - else - { - // default status is 'selected' -> if the item is not selectable, the callback will not be fired - var selectResult = this._itemSelect(targetIndex, {fromVui:true, vuiStatus:'selected'}); - if (true === selectResult) - { - // normal enabled status - status = 'selected'; - } - else if (false === selectResult) - { - // status if no select callback is attached - status = 'sendAck'; - } - else - { - // returned status from the select callback in the app - status = selectResult; - } - } - - return status; -}; - -/** - * Scrolls the list one page down. A page is the number of visible items on the screen. - * Depending on the output of the function, several return values are possible. - * TAG: public, VUI - * ========================= - * @return {string} - 'paged', 'atLimit', 'onePage' - */ -List2Ctrl.prototype.pageDown = function() -{ - var status = this._scrollDownPage(); - return status; -}; - -/** - * Scrolls the list one page up. A page is the number of visible items on the screen. - * Depending on the output of the function, several return values are possible. - * TAG: public, VUI - * ========================= - * @return {string} - 'paged', 'atLimit', 'onePage' - */ -List2Ctrl.prototype.pageUp = function() -{ - var status = this._scrollUpPage(); - return status; -}; - - -/** 4. SLIDER / TOGGLE API **/ - -/** - * Set slider to a specific value - * TAG: public - * ========================= - * @param {integer} - the index of the slider/pivot item - * @param {number} - the new value of the slider/pivot - * @return {void} - */ -List2Ctrl.prototype.setSliderValue = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isSlider(itemIndex)) - { - log.warn(this.uiaId + ': Lis2: only sliders/pivots can be used in the Slider API. Item style ' + item.itemStyle + ' passed'); - return; - } - - var slider = this._getSlider(itemIndex); - if (slider) - { - slider.setValue(value); - } - else - { - log.error(this.uiaId + ': Lis2: could not get slider instance for itemIndex ' + itemIndex); - } -}; - - -/** - * Set toggle to a specific value - * TAG: public - * ========================= - * @param {integer} - the index of the toggle item - * @param {number} - the new value of the toggle - * @return {void} - */ -List2Ctrl.prototype.setToggleValue = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.debug('Item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isToggle(itemIndex) && item.itemStyle != 'styleOnOff') - { - log.warn('Lis2: only toggle items can be used in the Toggle API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // normalize value - if (item.itemStyle == 'style10') - { - var value = this.m.max(this.m.min(value, 2), 1); - } - else if(item.itemStyle == 'style11') - { - var value = this.m.max(this.m.min(value, 3), 1); - } - else if(item.itemStyle == 'styleOnOff') - { - var value = this.m.max(this.m.min(value, 2), 1); - } - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'toggle')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - - -/** - * Set checked state for a checkbox item (style03 and style03a) - * TAG: public - * ========================= - * @param {integer} - the index of the checkbox item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype.setCheckBox = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'checkbox')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - - -/** - * Set checked state for a checkbox item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the checkbox item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setCheckBox = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // cast as boolean - var value = Boolean(value); - - // set value - item.checked = value; - - // update item - this.updateItems(itemIndex, itemIndex); -}; - - -/** - * Set checked state for a radio item (style03 and style03a) - * TAG: public - * ========================= - * @param {integer} - the index of the radio item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype.setRadio = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'radio')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - -/** - * Set checked state for a radio item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the radio item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setRadio = function(itemIndex, value) -{ - // cast as boolean - var value = Boolean(value); - - // remove checked state of all radio items - for (var i=0; i= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'tick')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - -/** - * Set checked state for a tick item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the tick item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setTick = function(itemIndex, value) -{ - // cast as boolean - var value = Boolean(value); - - // remove checked state of all radio items - for (var i=0; i start the range if not already started - if (currentRange.length == 0) - { - // set first index to the range start - currentRange[0] = i; - } - - // if this is the last iteration and we are still in an empty range -> close currentRange - if (i == l-1 && currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - else - { - // filled item encountered -> end the range if started - if (currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i-1; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - } - - return (ranges.length) ? ranges : null; -}; - -/** - * Get filled range - * traverse the dataList.items for filled items and returns - * an array of filled-item ranges - * TAG: public - * ========================= - * @return {array} - Array([firstFilled, lastFilled], [firstFilled, lastFilled]) - */ -List2Ctrl.prototype.getFilledRange = function() -{ - var ranges = []; - var currentRange = []; - - for (var i=0, l=this.dataList.items.length; i start the range if not already started - if (currentRange.length == 0) - { - // set first index to the range start - currentRange[0] = i; - } - - // if this is the last iteration and we are still in an filled range -> close currentRange - if (i == l-1 && currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - else - { - // empty item encountered -> end the range if started - if (currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i-1; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - } - - return (ranges.length) ? ranges : null; -}; - -/** - * Get current focus mode - * TAG: public - * ========================= - * @return {string} - 'mainList' | 'letterIndex' | 'noFocus' - */ -List2Ctrl.prototype.getFocusMode = function() -{ - var currentFocusMode = 'mainList'; - if (!this._hasFocus) - { - currentFocusMode = 'noFocus'; - } - else if (this._inLetterIndexMulticontroller) - { - currentFocusMode = 'letterIndex'; - } - - return currentFocusMode; -}; - - -/** 7. OTHER **/ - -/** - * Set loading state of the list - * TAG: public - * ========================= - * @param {boolean} - enable or disable loading state - * @return {void} - */ -List2Ctrl.prototype.setLoading = function(state) -{ - // cast as boolean - var state = Boolean(state); - this._setLoading(state); -}; - - -/** - * Public API that changes the loading configuration - * ========================= - * @param {Object} - object that will set loading item configuration - * @return {Object} - retuns the loading configuration object - */ -List2Ctrl.prototype.setLoadingConfig = function (config) -{ - for (var i in config) - { - this.properties.loadingConfig[i] = config[i]; - } - - if (null !== this.properties.loadingConfig.loadingTextId && undefined !== this.properties.loadingConfig.loadingTextId && "" !== this.properties.loadingConfig.loadingTextId) - { - this.properties.loadingConfig.loadingText = this._getLocalizedString(this.properties.loadingConfig.loadingTextId, this.properties.loadingConfig.loadingSubMap); - } - this.loading.querySelector(".loadingText").innerText = ""; - this.loading.querySelector(".loadingText").appendChild(document.createTextNode(this.properties.loadingConfig.loadingText)); - this.loading.querySelector(".loadingImage1").style.backgroundImage = 'url(' + this.properties.loadingConfig.loadingImage1 + ')'; - - return this.properties.loadingConfig; -}; - -/** - * Enter or release reorder mode - * TAG: public - * ========================= - * @param {boolean} - enter or release list reorder - * @param {boolean} - prevent item select on releasing reorder - * @return {void} - */ -List2Ctrl.prototype.setReorder = function(state, preventSelect) -{ - // cast as boolean - var state = Boolean(state); - var preventSelect = Boolean(preventSelect); - - if (state && !this._inListReorder) - { - // if user has lost the reorder item - if (null != this._reorderCurrentIndex && (this._reorderCurrentIndex < this._topItem || this._reorderCurrentIndex > this._topItem + this.properties.visibleItems-1)) - { - if (this.dataList.items[this._reorderCurrentIndex] && !this.dataList.items[this._reorderCurrentIndex].disabled) - { - // reorder item is outside screen. Bring it back in and show focus on it - this._showFocus(this._reorderCurrentIndex); - } - } - - // enter into reorder - this._enterListReorder(); - } - else if (!state && this._inListReorder) - { - // release reorder - this._releaseListReorder(preventSelect); - } -}; - -/** - * Set fixed title for the list - * TAG: public - * ========================= - * @param {object} - title properties - * @return {void} - */ -List2Ctrl.prototype.setTitle = function(titleStructure) -{ - - // validate titleStructure - if (!titleStructure || !titleStructure.hasOwnProperty('titleStyle')) - { - return; - } - - /* - * title structure: - * { - * titleStyle : 'style02', - * text1Id : null, - * text1SubMap : null, - * text1 : '', - * image1 : 'path/to/image.png' - * } - */ - - // prepare title - var titleStructure = titleStructure || {}; - titleStructure = this._prepareTitle(titleStructure); - - if (this._currentTitle) - { - // we already have a title -> update it - - // validate new title - switch (titleStructure.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - // thin - if ('style02' != this._currentTitle.titleStyle && - 'style02a' != this._currentTitle.titleStyle && - 'style03' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - - case 'style05' : - case 'style08' : - // medium - if ('style05' != this._currentTitle.titleStyle && - 'style08' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - - case 'style06' : - case 'style07' : - // thick - if ('style06' != this._currentTitle.titleStyle && - 'style07' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - } - } - - // empty title element - this.title.innerText = ''; - // remove old title style class - if (this._currentTitle) - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - this.title.classList.remove(this._currentTitle.titleStyle); - } - // add title style as a class - this.title.classList.add(titleStructure.titleStyle); - - // fill it - var line1, line2, image1; - - switch (titleStructure.titleStyle) - { - case 'style02' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style02a' : - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style03' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style05' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - line2.appendChild(document.createTextNode(titleStructure.text2)); - this.title.appendChild(line2); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - this.divElt.classList.add('listTitleMedium'); - - break; - - case 'style06' : - - if (titleStructure.image1 === 'canvas') - { - // preview image is a canvas - image1 = document.createElement('canvas'); - image1.className = 'image1'; - // store canvas for public API call - this.titleCanvas = image1; - this.title.appendChild(image1); - } - else - { - // preview image is an image - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - } - - this.divElt.classList.add('listTitleThick'); - - break; - - case 'style07' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - line2.appendChild(document.createTextNode(titleStructure.text2)); - this.title.appendChild(line2); - - this.divElt.classList.add('listTitleThick'); - - break; - - case 'style08' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleMedium'); - - break; - - default : - log.error('Lis2: unknown title style: ' + titleStructure.titleStyle); - } - - // save the title structure - this._currentTitle = titleStructure; - -}; - - -/** 8. CONTEXT CAPTURE AND RESTORE **/ - -/** - * Context capture - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ -List2Ctrl.prototype.getContextCapture = function() -{ - var obj = { - hasFocus : this._hasFocus, - topItem : this._topItem, - focussedItem : this._getFocussedIndex(), - itemCount : this.dataList ? this.dataList.itemCount : 0 - }; - - log.debug('Lis2: getContextCapture obj ', obj); - return obj; -}; - -/** - * Context restore - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ -List2Ctrl.prototype.restoreContext = function(restoreData) -{ - log.debug('Lis2: restoreContext restoreData ', restoreData); - // validate input - if (!restoreData.hasOwnProperty('topItem') || !restoreData.hasOwnProperty('focussedItem')) - { - log.info('No data to restore'); - return; - } - - - // restore hasFocus flag - if (restoreData.hasFocus) - { - this._hasFocus = true; - } - - if (this.hasDataList()) - { - // scroll to previous position and show previous focus - // no checks for value conflicts are necessary. These ought to be correct. - this._scrollTo(restoreData.topItem); - - // NOTE: actual focus placement happens in controllerActive event handling - - // mark the list as data-restored preventing any subsequent auto-scrolls - this._initialScrollMode = 'restore'; - - this._manageFocus(restoreData.focussedItem); - } - else - { - log.info('List has no dataList to restore'); - } - - // overwrite control properties - this.properties.scrollTo = restoreData.topItem; - this.properties.focussedItem = restoreData.focussedItem; - this._lastItemWithFocus = restoreData.focussedItem; -}; - - -/** 9. BACKGROUND API **/ - -/** - * Set a custom background on the list control - * TAG: public - * ========================= - * @return {void} - */ -List2Ctrl.prototype.setListBackground = function(img, position) -{ - this.clearListBackground(); - this.listBackground = document.createElement('div'); - this.listBackground.className = 'List2CtrlCustomBackground'; - this.listBackground.style.backgroundImage = 'url('+img+')'; - - // set background position - if (position && typeof position == 'object' && position['left'] != undefined && position['top'] != undefined) - { - var left = (!isNaN(position['left'])) ? position.left + 'px' : position.left.toString(); - var top = (!isNaN(position['top'])) ? position.top + 'px' : position.top.toString(); - this.listBackground.style.backgroundPosition = left + ' ' + top; - } - - this.divElt.appendChild(this.listBackground); -}; - -/** - * Clear any custom background image - * TAG: public - * ========================= - * @return {void} - */ -List2Ctrl.prototype.clearListBackground = function() -{ - if (this.listBackground) - { - this.listBackground.parentElement.removeChild(this.listBackground); - this.listBackground = null; - } -}; - - - -/** - * ========================= - * HELPERS AND UTILITIES - * ========================= - */ - - /** - * Create Tabs control - * ========================= - * @return The TabsCtrl instance. - */ -List2Ctrl.prototype._createTabsControl = function() -{ - log.debug(' Instantiating TabsCtrl'); - if (this.properties.tabsButtonConfig.tiltStartCallback) - { - log.warn("Lis2: the tabsButtonConfig.tiltStartCallback property was defined outside of the list control but should only be used by the list."); - } - this.properties.tabsButtonConfig.tiltStartCallback = this._tabsCtrlTiltStartCallback.bind(this); - return framework.instantiateControl(this.uiaId, this.divElt, "TabsCtrl", this.properties.tabsButtonConfig); -}; - -/** - * Clear the list contents when the user starts tilting to a new tab. - */ -List2Ctrl.prototype._tabsCtrlTiltStartCallback = function(controlRef, appData, params) -{ - if (this.title) - { - this.title.style.opacity = 0; - } - this.setDataList({}); - this._hideScrollIndicator(); -}; - - -/** - * Tracks touch position properties of the last two events. - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - MouseMove event - * @return {void} - */ -List2Ctrl.prototype._trackEvent = function(e) -{ - // use shallow copy - var trackedEvents = this._trackedEvents; - trackedEvents[0] = trackedEvents[1]; - trackedEvents[1] = { y: e.pageY, x: e.pageX }; -}; - -/** - * Get touch direction upon touch move - * TAG: touch-only, internal - * ========================= - * @return {integer} - 1 for 'down', -1 for 'uo' - */ -List2Ctrl.prototype._getMoveDirection = function() -{ - var trackedEvents = this._trackedEvents, - event0 = trackedEvents[0], - event1 = trackedEvents[1]; - - if (!event0) return 1; - - return (event1.y - event0.y < 0) ? -1 : 1; -}; - -/** - * Get current list position (or specific position relative to supplied item index) - * TAG: internal - * ========================= - * @param {integer} - optional, item index from which to calculate position - * @return {string} - onepage | top | bottom | bottomclose | topclose | middle - */ -List2Ctrl.prototype._getListPosition = function(itemIndex) -{ - // get item index - var itemIndex = (undefined === itemIndex) ? this._topItem : itemIndex; - - // get list position - var listPosition = null; - - // determine list position - if (this.dataList.itemCount <= this.properties.visibleItems) - listPosition = 'onepage'; - else if (0 === itemIndex) - listPosition = 'top'; // list is at the top - else if (itemIndex === this.dataList.itemCount - this.properties.visibleItems) - listPosition = 'bottom'; // list is at the bottom - else if (itemIndex > this.dataList.itemCount - (2 * this.properties.visibleItems)) - listPosition = 'bottomclose'; // list is less than a screen to the bottom - else if (itemIndex < 2 * this.properties.visibleItems) - listPosition = 'topclose'; // list is less than a screen to the top - else - listPosition = 'middle'; // list is somewhere in the middle - - // return list position - return listPosition; -}; - - -/** - * Get additional space that needs to be added to the scroller - * height in order to satisfy the 'half-line' requirements. - * Correction is needed because there's a difference between - * visual style guide and actual item heights. The values are - * fixed and depend on the style. - * TAG: helper - * ========================= - * @return {integer} - */ -List2Ctrl.prototype._getAdditionalSpace = function() -{ - // determine additional space - var additionalSpace = 0; - switch (this.properties.titleConfiguration) - { - case 'noTitle' : - additionalSpace = this.properties.thickItems ? 6 : 32; - break; - case 'tabsTitle' : - additionalSpace = this.properties.thickItems ? 19 : 27; - break; - case 'listTitle' : - switch (this._currentTitle.titleStyle) - { - case 'style02' : - case 'style03' : - additionalSpace = this.properties.thickItems ? 19 : 27; - break; - case 'style05' : - case 'style08' : - additionalSpace = this.properties.thickItems ? 52 : 42; - break; - case 'style06' : - case 'style07' : - additionalSpace = this.properties.thickItems ? 60 : 32; - break; - default : - // nothing to do - break; - } - break; - default : - // nothing to do - break; - } - - - - return additionalSpace; -}; - -/** - * Get empty DOM elements - * Return the first element in the DOM that doesn't - * have data associated with it in the dataList - */ -List2Ctrl.prototype._getEmptyDOMElement = function() -{ - var emptyItem = null; - var items = []; - - // get item indeces and sort them in ascending order - for (var i=0; i return -1 - if (relativeY < 0 || e.pageY - this._maskPositionY < 0) - { - return -1; - } - - var itemIndex = Math.floor(relativeY / this.properties.itemHeight); - - // if we are in the active area but below the last item -> return -1 - if (itemIndex > this.dataList.itemCount - 1) - { - return -1; - } - - // constrain itemIndex to the max possible index - itemIndex = this.m.min(itemIndex, this.dataList.itemCount - 1); - - return itemIndex; -}; - -/** - * Get DOM Element by itemIndex - * Returns a DOM element (or null) for a particular - * item after performing a search for its item index - * TAG: internal, helper - * ========================= - * @param {integer} - index of the list item - * @return {HTML Element} -
  • element - */ -List2Ctrl.prototype._getDOMItem = function(itemIndex) -{ - var domItem = null; - - for (var i=0, l=this.items.length; i return -1 - if (relativeY < 0 || e.pageY - this._maskPositionY < 0) - { - return -1; - } - - var letterIndex = Math.floor(relativeY / this.properties.letterIndexHeight); - - // if we are in the active area but below the last letter index item -> return -1 - if (letterIndex > this.letterIndexData.length - 1) - { - return -1; - } - - // constrain letterIndex to the max possible index - letterIndex = this.m.min(letterIndex, this.letterIndexData.length - 1); - - return letterIndex; -}; - -/** - * Get Slider instance by itemIndex - * TAG: internal, helper - * ========================= - * @param {integer} - index of the list item - * @return {SliderCtrl} - slider instance - */ -List2Ctrl.prototype._getSlider = function(itemIndex) -{ - var sliderCtrl = null; - - var index; - if (utility.toType(itemIndex) === 'number') - { - index = itemIndex; - } - else - { - index = this._getFocussedIndex(); - } - - var domElt = this._getDOMItem(index); - if (domElt) - { - var poolId = domElt.getAttribute('data-poolid'); - var hashKey = 'slider_'+index+'_'+poolId; - - // check whether a slider exists - if (this._sliders.hasOwnProperty(hashKey) && this._sliders[hashKey].slider) - { - sliderCtrl = this._sliders[hashKey].slider; - } - } - - return sliderCtrl; -}; - -/** - * Checks whether the supplied itemIndex contains a slider - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item contains a slider - */ -List2Ctrl.prototype._isSlider = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isSlider = false; - - if (!isNaN(itemIndex)) - { - isSlider = ('style12' === this.dataList.items[itemIndex].itemStyle || 'style13' === this.dataList.items[itemIndex].itemStyle || 'style28' == this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isSlider = ('style12' === itemIndex || 'style13' === itemIndex|| 'style28' === itemIndex); - } - - return isSlider; -}; - -/** - * Checks whether the supplied itemIndex is a lock item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a lock item - */ -List2Ctrl.prototype._isLock = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isLock = false; - - if (!isNaN(itemIndex)) - { - isLock = ('styleLock' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isLock = ('styleLock' === itemIndex); - } - - return isLock; -}; - -/** - * Checks whether the supplied itemIndex contains toggle buttons - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item contains toggle buttons - */ -List2Ctrl.prototype._isToggle = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isToggle = false; - - if (!isNaN(itemIndex)) - { - isToggle = ('style10' === this.dataList.items[itemIndex].itemStyle || 'style11' === this.dataList.items[itemIndex].itemStyle || 'draggable' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isToggle = ('style10' === itemIndex || 'style11' === itemIndex || 'draggable' === itemIndex); - } - - return isToggle; -}; - -/** - * Checks whether the supplied itemIndex is On/Off item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is On/Off - */ -List2Ctrl.prototype._isOnOff = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isOnOff = false; - - if (!isNaN(itemIndex)) - { - isOnOff = ('styleOnOff' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isOnOff = ('styleOnOff' === itemIndex); - } - - return isOnOff; -}; - -/** - * Checks whether the supplied itemIndex is a step item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a step item - */ -List2Ctrl.prototype._isStep = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isStep = false; - - if (!isNaN(itemIndex)) - { - isStep = ('styleStep' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isStep = ('styleStep' === itemIndex); - } - - return isStep; -}; - -/** - * Checks whether the supplied itemIndex is a checkbox - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a checkbox/tick/radio item - */ -List2Ctrl.prototype._isCheckBox = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isCheckbox = false; - - if (!isNaN(itemIndex)) - { - isCheckbox = ('style03' === this.dataList.items[itemIndex].itemStyle || 'style03a' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isCheckbox = ('style03' === itemIndex || 'style03a' === itemIndex); - } - - return isCheckbox; -}; - -/** - * Checks whether the supplied itemIndex is a simple select item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is simple select item - */ -List2Ctrl.prototype._isSimpleSelectItem = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isSimpleSelect = false; - - if (!isNaN(itemIndex)) - { - isSimpleSelect = ('style03' === this.dataList.items[itemIndex].itemStyle || 'style03a' === this.dataList.items[itemIndex].itemStyle || 'styleOnOff' === this.dataList.items[itemIndex].itemStyle || 'style10' === this.dataList.items[itemIndex].itemStyle || 'style11' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isSimpleSelect = ('styleOnOff' === itemIndex || 'style10' === itemIndex || 'style11' === itemIndex); - } - - return isSimpleSelect; -}; - -/** - * Checks whether the item contains _data property - * TAG: internal, helper - * ========================= - * @param {integer} - item index - * @return {Boolean} - True if the item contains _data property - */ -List2Ctrl.prototype._hasData = function(itemIndex) -{ - var containsData = false; - if (this.dataList && this.dataList.items && this.dataList.items[itemIndex]) - { - containsData = this.dataList.items[itemIndex].hasOwnProperty('_data'); - } - return containsData; -}; - -/** - * Wraps inline text element if the width exceeds certain - * max width that depends on the item style. - * TAG: internal, helper - * ========================= - * @param {HTML Li Element} - the LI element that will be searched for overflowing text - * @return {HTML Li Element} - the modified LI element - */ -List2Ctrl.prototype._wrapInlineElement = function(li) -{ - var searchClass = null; - var maxWidth = 0; - - if (li.classList.contains('style17')) - { - searchClass = 'line1'; - maxWidth = this.properties.wrapTextThreshold; - } - else - { - return li; - } - - var line1 = li.getElementsByClassName(searchClass); - if (!line1 || 0 === line1.length) - { - return li; - } - else - { - line1 = line1[0]; - } - - if (line1.clientWidth > maxWidth) - { - line1.classList.add("wrap"); - } - else - { - line1.classList.remove("wrap"); - } - - return li; -}; - -/** - * Checks if the item can be displayed, even if it has no text field. - * TAG: internal, helper - * ===================================================== - * @param {Object} - * @return {Boolean} - */ -List2Ctrl.prototype._displayWithoutText = function(item) -{ - var returnValue = true; - for(var i =0; i < this._itemsWithNoText.length; i++) - { - if(item.itemStyle === this._itemsWithNoText[i]) - { - returnValue = false; - break; - } - } - return returnValue; -}; - -/** - * Checks if the item is a slider with full hittable area - * TAG: internal, helper - * =================================================== - * @param {Object} - * @return {Boolean} - */ -List2Ctrl.prototype._hasRightHittableArea = function(item) -{ - var returnValue = false; - - for(var i =0; i < this._rightHittableArea.length; i++) - { - if(item.itemStyle === this._rightHittableArea[i]) - { - returnValue = true; - break; - } - } - return returnValue; -}; - - -/** - * Show bounding boxes of some elements in the list. - * This should be used for debugging purposes only - * TAG: internal, utility - * ========================= - * @param {Boolean} - * @return {void} - */ -List2Ctrl.prototype.showBoundingBoxes = function(state) -{ - if (state) - { - this.divElt.classList.add('showBoundingBoxes'); - } - else - { - this.divElt.classList.remove('showBoundingBoxes'); - } -}; - - -/** - * Searches an array for a value - * TAG: internal, utility - * ========================= - * @param {string|number} - * @param {array} - * @return {object} - copy of the source object - */ -List2Ctrl.prototype.inArray = function(needle, haystack) -{ - if (!needle || !haystack) - { - log.warn('Lis2: 2 arguments expected'); - return; - } - - for (var i=0, l=haystack.length; i b ? a : b // return the higher - : NaN; // else return NaN (just like the Math class) - }, - abs : function(a) - { - return (!isNaN(a)) ? // if the argument is a number - a < 0 ? -a : a // return the abs - : NaN; // else return NaN (just like the Math class) - } -}; - -/** - * Finish partial activity. - * @return {void} - */ -List2Ctrl.prototype.finishPartialActivity = function() -{ - // route finish partial activity to sub controls - - // tabs ctrl - if (this.tabsCtrl) - { - // delete the assigned callback reference so that it's not stored in the App's context table - delete this.properties.tabsButtonConfig.tiltStartCallback; - this.tabsCtrl.finishPartialActivity(); - } - - // slider - if (this._activeSlider && this._activeSlider.slider) - { - this._activeSlider.slider.finishPartialActivity(); - } - - // list -> exit any items in secondary MC mode - if (this._inSecondaryMulticontroller) - { - var smi = this._currentSecondaryMulticontrollerItem; - if (this.dataList.items[smi] && this._isStep(smi)) - { - this._setSecondaryMulticontroller(false); - this._triggerFocus(); - } - } -}; - - -/** - * ========================= - * GARBAGE COLLECTION - * - Clear listeners - * - Clean up subcontrols - * - Clear timeouts - * TAG: framework - * ========================= - * @return {void} - */ -List2Ctrl.prototype.cleanUp = function() -{ - // remove event callbacks - this.divElt.removeEventListener(this._USER_EVENT_START, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - - // remove animation callbacks - this.scroller.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - if (this.scrollIndicator) - { - this.scrollIndicator.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - } - if (this.letterIndex) - { - this.letterIndex.removeEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - } - - // clean up subcontrols - if (this.tabsCtrl) - { - this.tabsCtrl.cleanUp(); - } - for (var i in this._sliders) - { - this._sliders[i]['slider'].cleanUp(); - } - - // clear timeouts - clearTimeout(this._makeHitTimeoutId); - clearTimeout(this._longPressTimeoutId); - clearTimeout(this._touchReorderTimeoutId); - clearTimeout(this._scrollIndicatorTimeoutId); - clearTimeout(this._indexSelectTimeoutId); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - clearTimeout(this._needDataTimeoutId); - clearTimeout(this._loadingData.startTimeoutId); - clearTimeout(this._loadingData.endTimeoutId); - clearTimeout(this._radioSettleTimeoutId); - clearTimeout(this._tickSettleTimeoutId); - if (this.hasDataList()) - { - for (var i=0, l=this.dataList.items.length; i 0 || this.properties.scrollTo > 0) && - (this.m.abs(this.properties.focussedItem - this.properties.scrollTo) <= (this.properties.visibleItems - 2)) ) - { - log.debug('Lis2: Focus is visible on screen'); - this._scrollTo(this.properties.scrollTo, 0); - this._showFocus(this.properties.focussedItem); - this._initialScrollMode = 'init'; - } - // set initial focus to a particular item if the list is populated - // the list will be scrolled so that this item is visible - else if (this.properties.focussedItem > 0) - { - log.debug('Lis2: Focus is not visible and has priority'); - this._showFocus(this.properties.focussedItem); - this._initialScrollMode = 'init'; - } - // scroll (no animation) to a particular item if the list is populated - // the focus will be placed on the top item - else if (this.properties.scrollTo > 0) - { - log.debug('Lis2: Focus is 0 and scrollTo has priority'); - this._scrollTo(this.properties.scrollTo, 0); - this._showFocus(this._topItem); - this._initialScrollMode = 'init'; - } - - // enter list reorder if the list is reordable - if (true === this.properties.listReorder) - { - this._enterListReorder(true); - } - - } - } - else - { - this._setLoading(true); - } - - - /* SET LETTER INDEX DATA */ - if (this.properties.hasLetterIndex && this.properties.letterIndexData) - { - // bind letter index data - this.setLetterIndexData(this.properties.letterIndexData); - } - - /* SET CUSTOM LIST BACKGROUND */ - if (null != this.properties.listBackground && '' != this.properties.listBackground) - { - this.setListBackground(this.properties.listBackground); - } - -}; - - -/** - * ========================= - * LIST ITEMS - * 1. pool (_createPool) - * 2. default items configuration (_prepareItems, _prepareListItem) for every item style - * 3. items localization (_localizeItems, _getLocalizedString) - * 4. pool operations (_setText, _setImage, _getListItem, _returnListItem, _putToScroller, _emptyScroller) - * 5. dynamic list items (_updateRange, _updateDisplay, _requestMore, _fill) - * 6. set internal properties (_checkScrollable, _setTopListItem, _setLoading) - * 7. default title configuration (_prepareTitle) - * ========================= - */ - -/** 1. POOL **/ - -/** - * Create list items pool - * Add HTML elements to each item in the pool - * depending on its style - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._createPool = function() -{ - this.pool = { - empty : new Array(), // 'empty' is internal style - draggable : new Array(), // 'draggable' is internal style - ghost : new Array(), // 'ghost' is internal style - - style01 : new Array(), - style02 : new Array(), - style03 : new Array(), - style03a : new Array(), - style04 : new Array(), - style05 : new Array(), - style06 : new Array(), - style07 : new Array(), - style09 : new Array(), - style10 : new Array(), - style11 : new Array(), - style12 : new Array(), - style13 : new Array(), // deprecated - style14 : new Array(), - style17 : new Array(), - style18 : new Array(), - style19 : new Array(), - style20 : new Array(), - style21 : new Array(), - style22 : new Array(), - // TODO: style23 - same as style12 - // TODO: style24 - same as style12 - style25 : new Array(), - styleOnOff : new Array(), // not official name - styleStep : new Array(), // TODO: rename this to style26 - styleLock : new Array(), // not official name - style28 : new Array(), - style29 : new Array(), - style38 : new Array() - }; - - // the pool size (this.properties.poolsize) should be at least 3 times - // the visible items (one for above and two for below the top item) - var line1, line2, - image1, image2, - label1, label2, - button1, button2, button3, - caret; - - for (var i in this.pool) - { - for (var j=0; j no content - break; - - case 'draggable' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - button1 = document.createElement('span'); - button1.className = 'button buttonOk'; - li.appendChild(button1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - break; - - case 'ghost' : - // ghost item -> no contet - break; - - case 'style01' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style02' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style03' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style03a' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style04' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style05' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style06' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style07' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style09' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style10' : - var buttonsWrapper = document.createElement('div'); - buttonsWrapper.className = 'buttonsWrapper'; - li.appendChild(buttonsWrapper); - - button1 = document.createElement('span'); - button1.className = 'button button1'; - buttonsWrapper.appendChild(button1); - - button2 = document.createElement('span'); - button2.className = 'button button2'; - buttonsWrapper.appendChild(button2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - break; - - case 'style11' : - var buttonsWrapper = document.createElement('div'); - buttonsWrapper.className = 'buttonsWrapper'; - li.appendChild(buttonsWrapper); - - button1 = document.createElement('span'); - button1.className = 'button button1'; - buttonsWrapper.appendChild(button1); - - button2 = document.createElement('span'); - button2.className = 'button button2'; - buttonsWrapper.appendChild(button2); - - button3 = document.createElement('span'); - button3.className = 'button button3'; - buttonsWrapper.appendChild(button3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style12' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - break; - - case 'style13' : - // style13 is deprecated - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - break; - - case 'style14' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - label1 = document.createElement('span'); - label1.className = 'label1'; - subcontainer.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - break; - - case 'style17' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - // label is inside line1 element to allow natural text flow - label1 = document.createElement('span'); - label1.className = 'label1'; - line1.appendChild(label1); - - break; - - case 'style18' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - label1 = document.createElement('span'); - label1.className = 'label1'; - subcontainer.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - break; - - case 'style19' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - break; - - case 'style20' : - button1 = document.createElement('span'); - button1.className = 'button1'; - li.appendChild(button1); - - break; - - case 'style21' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style22' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style25' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'styleOnOff' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'styleStep' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - var plusSign = document.createElement('span'); - plusSign.className = 'plus'; - li.appendChild(plusSign); - - var minusSign = document.createElement('span'); - minusSign.className = 'minus'; - li.appendChild(minusSign); - - break; - - case 'styleLock' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2 buttonLock'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3 buttonDelete'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style28' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - break; - - case 'style29' : - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - break; - - case 'style38' : - - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - break; - - default : - log.error('List2: unknown list item style in pool: ' + i); - break; - - } - - // add common elements - caret = document.createElement('span'); - caret.className = 'caret'; - li.appendChild(caret); - - - this.pool[i].push(li); - } - } - -}; - -/** 2. DEFAULT ITEMS CONFIGURATION **/ - -/** - * Prepare items - * Extend the whole dataList so that every item - * meet the required structure. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._prepareItems = function(firstItem, lastItem) -{ - if ((firstItem == null) || (firstItem < 0)) - { - firstItem = 0; - } - - if ((lastItem == null) || (lastItem >= this.dataList.items.length)) - { - lastItem = this.dataList.items.length - 1; - } - - for (var i=firstItem, l=lastItem; i<=l; i++) - { - this.dataList.items[i] = this._prepareListItem(this.dataList.items[i]); - } - -}; - -/** - * Prepare list item - * A list item can be defined with minimal set of properties - * that are needed for its proper display. In fact these - * properties extend the default list item structure defined below. - * This function sets default configuration for a valid list item and merge - * it with the custom configuration passed to the item. - * TAG: internal - * ========================= - * @param {object} - the list item that will be set a default set of properties and will be returned - * @return {object} - the complete list item - */ -List2Ctrl.prototype._prepareListItem = function(item) -{ - // The itemStyle property is required - if (!item.hasOwnProperty('itemStyle')) - { - log.error('List2: list item should have itemStyle property: ' + item); - return; - } - - /* - * All types of list items extend this - * default structure by overriding the - * values and adding specific ones. The - * extended structure is then returned to be - * fed in the dataList container. - */ - var completeItem = { - appData : null, // Any kind of data that will be passed in the callbacks - text1Id : null, // String ID of the label - text1SubMap : null, // String Sub Map of the label - text1 : '', // Textual content of the label - hasCaret : true, // Show the caret icon on the right of the item - disabled : false, // Whether the list item is disabled - styleMod : '', // Style modifier, 'hint', 'bold', or ''/omitted - disabledStyleMod: "normal", // Disabled style modifier, 'normal' or 'white' - background : 'normal', // Background modifier, 'normal' or 'grey' - itemStyle : '', // String indicating the list type - itemBehavior : 'shortPressOnly', // String "hold" behavior for the item ('shortPressOnly', 'shortAndHold', or 'shortAndLong') - vuiSelectable: true, // Boolean for some items that cannot be selected by vui even when they are enabled - _data : { // Object containing any item-specific data used ONLY by the control - eventTimeout : null, - lastEvent : null, - settleTimeout : null, - lastUpdated : null, - settleValue : null, - } - }; - - // extend the default structure with default specific properties - var specificItem = {}; - switch (item.itemStyle) - { - case 'empty' : - specificItem = { hasCaret : false }; - break; - case 'draggable' : - specificItem = { image1:'', button1Id:null, button1SubMap:null, button1:''}; - break; - case 'ghost' : - specificItem = {}; - break; - case 'style01' : - specificItem = { image1:'', indented:false }; - break; - case 'style02' : - specificItem = { image1:'', image2:'' }; - break; - case 'style03' : - specificItem = { image1:'', image2:'', image3:'', checked:false, indented:false }; - break; - case 'style03a' : - specificItem = { image1: '', label1Id: null, label1SubMap: null, label1: '', checked: false, labelWidth: 'wide2', label1Align:'right', styleMod: "hint"}; - break; - case 'style04' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style05' : - specificItem = { image1:'', image2:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style06' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', labelWidth:'normal', label1Align:'right', label1Warning:false }; - break; - case 'style07' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'', labelWidth:'normal', label1Align:'right', label1Warning:false, label2Align:'right', label2Warning:false }; - break; - case 'style09' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'', labelWidth:'normal', label1Align:'right', label1Warning:false, label2Align:'right', label2Warning:false }; - break; - case 'style10' : - specificItem = { button1Id:null, button1SubMap:null, button1:'', button2Id:null, button2SubMap:null, button2:'', value:1, indeterminate:false, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'style11' : - specificItem = { button1Id:null, button1SubMap:null, button1:'', button2Id:null, button2SubMap:null, button2:'', button3Id:null, button3SubMap:null, button3:'', value:1, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'style12' : - specificItem = { image1:'', min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:false, minChangeInterval:this.properties.minChangeInterval, settleTime:this.properties.settleTime, rotationIdleDetectTime:this.properties.rotationIdleDetectTime }; - break; - case 'style13' : - // deprecated - issue a warning - log.warn(this.uiaId + ': List2 style13 has been deprecated. Please use style12 instead. Setting pivot=True. Check SDD for details.'); - specificItem = { min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:true }; - break; - case 'style14' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', text1Align:'left' }; - break; - case 'style17' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'' }; - break; - case 'style18' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'' }; - break; - case 'style19' : - specificItem = { image1:'' }; - break; - case 'style20' : - // nothing specific for this style - break; - case 'style21' : - specificItem = { image1:'', image2:'', label1Id:null, label1SubMap:null, label1:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style22' : - specificItem = { image1:'', image2:'', label1Id:null, label1SubMap:null, label1:'', indented:false }; - case 'style25' : - specificItem = { image1:'', image2:'', image3:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'styleOnOff' : - specificItem = { image1:'', value:2, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'styleStep' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2:'', min:0, max:36, increment:1, value:0, warning:false }; - break; - case 'styleLock' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'', locked:false }; - break; - case 'style28' : - specificItem = { image1:'', min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:false, minChangeInterval:this.properties.minChangeInterval, settleTime:this.properties.settleTime, rotationIdleDetectTime:this.properties.rotationIdleDetectTime, indented : false }; - break; - case 'style29' : - specificItem = { label1Id:null, label1SubMap:null, label1:'',label2Id:null, label2SubMap:null, label2:'', image1:'' }; - break; - case 'style38' : - specificItem = {image1:'' ,text1Id:null, text1SubMap:null, text1:'',label1SubMap:null, label1:'',label2Id:null, label2SubMap:null, label2:'' ,image2:''}; - break; - default : - log.error('List2: unknown item style: ' + item.itemStyle); - break; - } - - // Extend default structure with the specific one - for (var i in specificItem) - { - completeItem[i] = specificItem[i]; - } - - // Extend default structure with the supplied item - for (var j in item) - { - completeItem[j] = item[j]; - } - - return completeItem; -}; - - -List2Ctrl.prototype._updateModifiedTimestamps = function(firstItem, lastItem) -{ - // update lastModified timestamp - var now = new Date().getTime(); - for (var i=firstItem; i<=lastItem; i++) - { - if (this._hasData(i)) - { - this.dataList.items[i]._data.lastUpdated = now; - } - } -}; - - -/** 3. ITEMS LOCALIZATION **/ - -/** - * Localize items - * Localize text in known list items using localization framework. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._localizeItems = function(firstItem, lastItem) -{ - log.debug('Localizing...'); - - if ((firstItem == null) || (firstItem < 0)) - { - firstItem = 0; - } - - if ((lastItem == null) ||(lastItem >= this.dataList.items.length)) - { - lastItem = this.dataList.items.length - 1; - } - - // iterate through the dataList - for (var i=firstItem, l=lastItem; i<=l; i++) - { - switch (this.dataList.items[i].itemStyle) - { - // no elements - case 'empty' : - // do nothing - break; - - // text1, button1 - case 'draggable' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - //label1 and label2 only supports for style38 for reorderList - if(this._reorderItem.itemStyle === "style38") - { - if (this.dataList.items[i].laebl1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].laebl1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].laebl2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].laebl2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - break; - - // no elements - case 'ghost' : - // do nothing - break; - - // text1 - case 'style01' : - case 'style02' : - case 'style03' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - case 'style03a' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, text2 - case 'style04' : - case 'style05' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - // text1, label1 - case 'style06' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1, label2 - case 'style07' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1, text2, label1, label2 - case 'style09' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1, button1, button2 - case 'style10' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - if (this.dataList.items[i].button2Id) - { - var button2 = this._getLocalizedString(this.dataList.items[i].button2Id, this.dataList.items[i].button2SubMap); - this.dataList.items[i].button2 = button2; - } - break; - - // text1, button1, button2, button3 - case 'style11' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - if (this.dataList.items[i].button2Id) - { - var button2 = this._getLocalizedString(this.dataList.items[i].button2Id, this.dataList.items[i].button2SubMap); - this.dataList.items[i].button2 = button2; - } - if (this.dataList.items[i].button3Id) - { - var button3 = this._getLocalizedString(this.dataList.items[i].button3Id, this.dataList.items[i].button3SubMap); - this.dataList.items[i].button3 = button3; - } - break; - - // text1, labelLeft, labelRight - case 'style12' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, labelLeft, labelCenter, labelRight - case 'style13' : - // style13 is deprecated - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, label1 - case 'style14' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1 - case 'style17' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1, label2 - case 'style18' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1 - case 'style19' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1 - case 'style20' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, text2, label1 - case 'style21' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1 - case 'style22' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, text2 - case 'style25' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - // text1 - case 'styleOnOff' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, label1, label2 - case 'styleStep' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, {value:this.dataList.items[i].value}); - this.dataList.items[i].label2 = label2; - } - else - { - log.warn(this.uiaId + ' possible issue. Lis2: item ' + i + ' does not specify label2Id'); - } - break; - - // text1, text2 - case 'styleLock' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - case 'style29' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - - case 'style38' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, {value:this.dataList.items[i].value}); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, {value:this.dataList.items[i].value}); - this.dataList.items[i].label2 = label2; - } - break; - - } - - } -}; - -/** - * Get localization entry for a string id - * TAG: internal - * ========================= - * @return {string} - */ -List2Ctrl.prototype._getLocalizedString = function(labelId, subMap) -{ - return framework.localize.getLocStr(this.uiaId, labelId, subMap); -}; - -/** 4. POOL OPERATIONS **/ - -/** - * Set line 1 content - * This helper function clears any previous content for the supplied - * element class and sets new one. Then the list item is returned. - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {string} - textual content to be inserted - * @param {boolean} - do not remove child html tags when inserting textual content - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setText = function(li, className, content, preserveHTML) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - if (!content) - { - content = ''; - } - li.querySelector(className).innerText = ''; - li.querySelector(className).appendChild(document.createTextNode(content)); - return li; -}; - -/** - * Set image background - * This helper function clears any previous path for the supplied - * image class and sets new one. Then the list item is returned. - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {string} - path to the image - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setImage = function(li, className, url) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - li.querySelector(className).style.backgroundImage = ''; - if ('' != url) - { - li.querySelector(className).style.backgroundImage = 'url(' + url + ')'; - } - return li; -}; - -/** - * Set slider - * This helper function clears any previous slider in the list item - * and cleans up local references. It then creates a new slider control - * inside the list item and sets its values - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {object} - slider configuration - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setSlider = function(li, className, sliderProperties, itemIndex) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - - // get current item poolid - var poolId = li.getAttribute('data-poolid'); - - // get previous itemIndex for this particular li - var prevItemIndex = li.getAttribute('data-ref'); - - // destruct any previous sliders for this poolid and previous index - if (prevItemIndex != 'undefined') - { - var hashKey = 'slider_'+prevItemIndex+'_'+poolId; - - // remove slider from the hash and the DOM - if (this._sliders.hasOwnProperty(hashKey)) - { - this._sliders[hashKey]['slider'].cleanUp(); - this._sliders[hashKey]['slider'].divElt.parentElement.removeChild(this._sliders[hashKey]['slider'].divElt); - } - } - - // add slider to the hash and the DOM - var sliderCont = li.querySelector(className); - if (sliderProperties && sliderCont) - { - var hashKey = 'slider_'+itemIndex+'_'+poolId; - - // instantiate slider and add it to the _sliders hash - this._sliders[hashKey] = {}; - this._sliders[hashKey]['itemIndex'] = itemIndex; - this._sliders[hashKey]['poolId'] = poolId; - this._sliders[hashKey]['slider'] = framework.instantiateControl(this.uiaId, sliderCont, 'SliderCtrl', sliderProperties); - } - return li; -}; - -/** - * Set toggle - * This helper function clears any previous toggled buttons in - * the supplied list item and sets initial toggle value - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {object} - slider configuration - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setToggle = function(li, className, value) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - var buttons = li.querySelectorAll(className); - for (var i=0; i element wit proper elements inside - */ -List2Ctrl.prototype._getListItem = function(listItem, dataListIndex) -{ - - // get it from the pool - var li = this.pool[listItem.itemStyle].shift(); - - // remove any residual touch classes - li.classList.remove('hit'); - li.classList.remove('focus'); - li.classList.remove('longpress'); - li.classList.remove('secondaryFocus'); - - // add content to it following style definitions - switch (listItem.itemStyle) - { - case 'empty' : - // empty item -> no content - break; - - case 'draggable' : - // listItem : { text1:String, image1:String, button1:String } - this._setText(li, '.line1', listItem.text1); - if(this._reorderItem.itemStyle === "style38" ) - { - //For style 38 line1 width should be shorter as compare the other style. - li.querySelector(".line1").classList.add('shortText') - } - - //label1 and label2 only supports for style38 for reorderList - if(this._reorderItem.itemStyle === "style38" ) - { - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - } - this._setImage(li, '.image1', listItem.image1); - this._setText(li, '.buttonOk', listItem.button1); - break; - - case 'ghost' : - // list item : {} - break; - - case 'style01' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style02' : - // listItem : { text1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - if (listItem.image2 === 'indeterminate') - { - li.classList.add('indeterminate'); - } - else - { - li.classList.remove('indeterminate'); - this._setImage(li, '.image2', listItem.image2); - } - break; - - case 'style03' : - // listItem : { text1:String, image1:String, image2:String, checked:Boolean } - this._setText(li, '.line1', listItem.text1); - if (listItem.image1 === 'checkbox') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('checkbox'); - } - else if (listItem.image1 === 'radio') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('radio'); - } - else if (listItem.image1 === 'tick') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('tick'); - } - else - { - li.classList.remove('checkbox'); - li.classList.remove('radio'); - li.classList.remove('tick'); - this._setImage(li, '.image1', listItem.image1); - } - this._setImage(li, '.image2', listItem.image2); - this._setImage(li, '.image3', listItem.image3); - if (listItem.checked) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style03a' : - // listItem : { text1:String, image1:String, label1: String} - this._setText(li, '.line1', listItem.text1); - if (listItem.image1 === 'checkbox') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('checkbox'); - } - else if (listItem.image1 === 'radio') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('radio'); - } - else if (listItem.image1 === 'tick') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('tick'); - } - else - { - li.classList.remove('checkbox'); - li.classList.remove('radio'); - li.classList.remove('tick'); - this._setImage(li, '.image1', listItem.image1); - } - - if (listItem.checked) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - - this._setText(li, '.label1', listItem.label1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style04' : - // listItem : { text1:String, text2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style05' : - // listItem : { text1:String, text2:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - break; - - case 'style06' : - // listItem : { text1:String, label1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style07' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - li.classList.remove('label2Right'); - li.classList.remove('label2Left'); - li.classList.remove('label2Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - switch (listItem.label2Align) - { - case 'right' : li.classList.add('label2Right'); break; - case 'left' : li.classList.add('label2Left'); break; - case 'center' : li.classList.add('label2Center'); break; - default : li.classList.add('label2Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - if (listItem.label2Warning) - li.classList.add('label2Warning'); - else - li.classList.remove('label2Warning'); - - break; - - case 'style09' : - // listItem : { text1:String, text2:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - li.classList.remove('label2Right'); - li.classList.remove('label2Left'); - li.classList.remove('label2Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - switch (listItem.label2Align) - { - case 'right' : li.classList.add('label2Right'); break; - case 'left' : li.classList.add('label2Left'); break; - case 'center' : li.classList.add('label2Center'); break; - default : li.classList.add('label2Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - if (listItem.label2Warning) - li.classList.add('label2Warning'); - else - li.classList.remove('label2Warning'); - - break; - - case 'style10' : - // listItem : { text1:String, button1:String, button2:String, value:Integer } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.button1', listItem.button1); - this._setText(li, '.button2', listItem.button2); - this._setToggle(li, '.button', this.m.max(this.m.min(listItem.value, 2), 0) ); - if (listItem.indeterminate) - { - li.classList.add('indeterminate'); - } - else - { - li.classList.remove('indeterminate'); - } - break; - - case 'style11' : - // listItem : { text1:String, button1:String, button2:String, button3:String, value:Integer } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.button1', listItem.button1); - this._setText(li, '.button2', listItem.button2); - this._setText(li, '.button3', listItem.button3); - this._setToggle(li, '.button', this.m.max(this.m.min(listItem.value, 3), 0) ); - break; - - case 'style12' : - // listItem : { text1:String, image1:String, labelLeft:String, labelRight:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - - // extend tickmark object - if (listItem.tickMarkObject) - { - listItem.tickMarkObject.tickMarkStyle = "List2CtrlSliderTickMark"; - listItem.tickMarkObject.centerMarkTopStyle = "List2CtrlCenterMarkTop"; - listItem.tickMarkObject.centerMarkBottomStyle = "List2CtrlCenterMarkBottom"; - listItem.tickMarkObject.numberStyle = "List2CtrlTickNumber"; - } - - // extend label object - if (listItem.labelObject) - { - listItem.labelObject.leftLabelStyle = "List2CtrlSliderLeftLabel"; - listItem.labelObject.rightLabelStyle = "List2CtrlSliderRightLabel"; - listItem.labelObject.centerLabelStyle = "List2CtrlSliderCenterLabel"; - } - - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: listItem.minChangeInterval, - settleTime: listItem.settleTime, - rotationIdleDetectTime: listItem.rotationIdleDetectTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - - case 'style13' : - // TODO: style13 has been depricated - // listItem : { text1:String, labelLeft:String, labelCenter:String, labelRight:String } - this._setText(li, '.line1', listItem.text1); - - // extend tickmark object - if (listItem.tickMarkObject) - { - listItem.tickMarkObject.tickMarkStyle = "List2CtrlSliderTickMark"; - listItem.tickMarkObject.centerMarkTopStyle = "List2CtrlCenterMarkTop"; - listItem.tickMarkObject.centerMarkBottomStyle = "List2CtrlCenterMarkBottom"; - listItem.tickMarkObject.numberStyle = "List2CtrlTickNumber"; - } - - // extend label object - if (listItem.labelObject) - { - listItem.labelObject.leftLabelStyle = "List2CtrlSliderLeftLabel"; - listItem.labelObject.rightLabelStyle = "List2CtrlSliderRightLabel"; - listItem.labelObject.centerLabelStyle = "List2CtrlSliderCenterLabel"; - } - - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: this.properties.minChangeInterval, - settleTime: this.properties.settleTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - - case 'style14' : - // listItem : { text1:String, label1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - - if ('right' == listItem.text1Align) - { - li.classList.add('text1AlignRight'); - } - else - { - li.classList.remove('text1AlignRight'); - } - - break; - - case 'style17' : - // listItem : { text1:String, label1:String, image1:String } - li.querySelector('.line1').innerText = ''; - var label1 = document.createElement('span'); - label1.className = 'label1'; - label1.appendChild(document.createTextNode(listItem.label1)); - li.querySelector('.line1').appendChild(label1); - li.querySelector('.line1').appendChild(document.createTextNode(listItem.text1)); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style18' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style19' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style20' : - // listItem : { text1:String } - this._setText(li, '.button1', listItem.text1); - break; - - case 'style21' : - // listItem : { text1:String, text2:String, label1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style22' : - // listItem : { text1:String, label1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style25' : - // listItem : { text1:String, text2:String, image1:String, image2:String, image3:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - this._setImage(li, '.image3', listItem.image3); - break; - - case 'styleOnOff' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - if (listItem.value === 1) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - break; - - case 'styleStep' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - li.classList.remove('maxReached'); - li.classList.remove('minReached'); - if (listItem.value === listItem.max) - { - li.classList.add('maxReached'); - } - else if (listItem.value === listItem.min) - { - li.classList.add('minReached'); - } - - // configure label warning - if (listItem.warning) - li.classList.add('warning'); - else - li.classList.remove('warning'); - - break; - - case 'styleLock' : - // listItem : { text1:String, text2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - if (listItem.locked) - { - li.classList.add('locked'); - } - else - { - li.classList.remove('locked'); - } - break; - - case 'style28' : - // listItem : { text1:String, image1:String, labelLeft:String, labelRight:String } - this._setImage(li, '.image1', listItem.image1); - - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: listItem.minChangeInterval, - settleTime: listItem.settleTime, - rotationIdleDetectTime: listItem.rotationIdleDetectTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - - - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - - case 'style29': - - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style38': - - if(listItem.text1) - { - this._setImage(li, '.image1', listItem.image1); - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image2', listItem.image2); - } - else - { - this._setImage(li, '.image1', listItem.image1); - this._setText(li, '.line1', ""); - this._setText(li, '.label1', ""); - this._setText(li, '.label2', ""); - this._setImage(li, '.image2', listItem.image2); - - } - break; - } - - /* ITEM MODIFICATORS */ - // add/remove hasCaret class - if (listItem.hasCaret) - { - li.classList.add('hasCaret'); - } - else - { - li.classList.remove('hasCaret'); - } - - // add/remove disabled class - if (listItem.disabled) - { - li.classList.add('disabled'); - } - else - { - li.classList.remove('disabled'); - } - - // add/remove styleMod class (hint/bold/'') - if ('hint' == listItem.styleMod) - { - li.classList.remove('bold'); - li.classList.add('hint'); - } - else if ('bold' == listItem.styleMod) - { - li.classList.remove('hint'); - li.classList.add('bold'); - } - else if ('both' == listItem.styleMod) - { - li.classList.add('hint'); - li.classList.add('bold'); - } - else - { - li.classList.remove('hint'); - li.classList.remove('bold'); - } - - // add/remove background modifier class (normal/grey) - if ('grey' == listItem.background) - { - li.classList.remove('bgLightGrey'); - li.classList.add('bgGrey'); - } - else if('lightGrey' == listItem.background) - { - li.classList.remove('bgGrey'); - li.classList.add('bgLightGrey'); - } - else - { - li.classList.remove('bgLightGrey'); - li.classList.remove('bgGrey'); - } - - // add disabled style mod - if ('white' === listItem.disabledStyleMod) - { - li.classList.add("disabledWhite"); - } - - // return it - return li; - -}; - -/** - * Return list item to the pool - * This will result in increasing the pool contents - * with one item. The returned item will be removed from the DOM. - * However, its content will not be reset as this is done in the - * process of any subsequent pool extraction (see _getListItem() above) - * TAG: internal - * ========================= - * @param {HTML element} -
  • element from the DOM - * @return {void} - */ -List2Ctrl.prototype._returnListItem = function(li) -{ - // get the style - var itemStyle = li.getAttribute('data-itemStyle'); - // reset it - li.style.top = '0px'; - // remove it - li.parentNode.removeChild(li); - - // put it back to the pool - this.pool[itemStyle].push(li); -}; - -/** - * Put a list item to the scroller - * TAG: internal - * ========================= - * @param {HTML element} -
  • element from the DOM - * @param {integer} - * @param {string} - * @return {void} - */ -List2Ctrl.prototype._putToScroller = function(li, index, operation) -{ - li.style.top = index * this.properties.itemHeight + 'px'; - li.setAttribute('data-ref', index); - - - if (operation == 'prepend') - { - this.items.unshift({ref:index, domElt:li}); - this.scroller.insertBefore(li, this.scroller.firstChild); - - this._wrapInlineElement(li); - } - else if (operation == 'append') - { - this.items.push({ref:index, domElt:li}); - this.scroller.appendChild(li); - - this._wrapInlineElement(li); - } - else if (!isNaN(operation)) - { - this.items.splice(operation, 0, {ref:index, domElt:li}); - - // insertBefore breaks in Opera - use appendChild instead - // this.scroller.insertBefore(li, this.items[operation+1]); - this.scroller.appendChild(li); - - this._wrapInlineElement(li); - } - else - { - log.error('Lis2: unknown _putToScroller() operation: ' + li + ' ' + index + ' ' + operation); - } - -}; - -/** - * Return everything into the pool and empty the scroller - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._emptyScroller = function() -{ - for (var i=0, l=this.items.length; i itemsOnScreen) - { - // return everything into the pool - var itemsLength = this.items.length; - for (var i=0; i < itemsLength; i++) - { - var item = this.items.shift(); - this._returnListItem(item.domElt); - } - - var dataListIndex = 0; - - if (topItem < this.dataList.items.length - Math.round(itemsOnScreen / 2) && - topItem > Math.round((itemsOnScreen / 2)) ) - { - - - // WE ARE IN THE MIDDLE - - for (var i=0; i < itemsLength; i++) - { - dataListIndex = (topItem - itemsBefore) + i; - - // we've reached the end of the dataList. No more items to add -> break - if (dataListIndex >= this.dataList.items.length) - { - break; - } - - // request it if it is empty - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'middle'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - } - - } - else - { - - if (numOfScrolledElements > 0) - { - - // PRESSED END BUTTON - - for (var i=0; i < itemsLength; i++) - { - - dataListIndex = (this.dataList.items.length - itemsLength) + i; - - // request it if it is empty - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'down'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - } - - } - else if (numOfScrolledElements < 0) - { - - // PRESSED HOME BUTTON - - for (var i=0; i < itemsLength; i++) - { - - dataListIndex = i; - - - // request it if it is empty - if (this.dataList.items[dataListIndex].itemStyle === 'empty' || (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex]))) - { - this._requestMore(dataListIndex, 'down'); - log.debug('Requesting items ' + dataListIndex); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - - } - - } - - } - - - } - else - { - - - - if (numOfScrolledElements > 0) - { - - /* SCROLL DOWN BOF */ - - // return to pool - var firstItemRef = this.items[0].ref; - var bottomDifference = topItem - firstItemRef; - var extraEls = bottomDifference - itemsBefore; - - // extraEls cannot be more than the poolsize - NOTE: this breaks the items array - // extraEls = this.m.min(extraEls, this.properties.poolsize-1); - // extraEls cannot be more than the items array - NOTE: introduced not to break the items array - extraEls = this.m.min(extraEls, this.items.length-1); - - log.debug(' Scroll Down - extraEls ' + extraEls); - - if (extraEls > 0) - { - - for (var i=0; i < extraEls; i++) - { - var item = this.items.shift(); - this._returnListItem(item.domElt); - } - - } - - // lastItemRef = this.items[this.items.length-1].ref; - // Note: this is not defined as a separate variable because the - // this.items array is being modified in the below cycle - - // get from pool - var topDifference = this.items[this.items.length-1].ref - ( topItem - 1 ); - var newEls = ( itemsAfter + 1 ) - topDifference; - - // newEls cannot be more than the poolsize - newEls = this.m.min(newEls, this.properties.poolsize-1); - - log.debug(' Scroll Down - newEls ' + newEls); - - if (newEls > 0) - { - - for (var i=0; i break - log.debug('end of list'); - break; - } - - } - - } - - /* SCROLL DOWN EOF */ - - } - else if (numOfScrolledElements < 0) - { - - /* SCROLL UP BOF */ - - // return to pool - var topDifference = this.items[this.items.length-1].ref - topItem + 1; - var extraEls = topDifference - ( itemsAfter + 1 ); - - // extraEls cannot be more than the poolsize - NOTE: this breaks the items array - // extraEls = this.m.min(extraEls, this.properties.poolsize-1); - // extraEls cannot be more than the items array - NOTE: introduced not to break the items array - extraEls = this.m.min(extraEls, this.items.length-1); - - log.debug(' Scroll Up - extraEls ' + extraEls); - - if ( extraEls > 0 ) - { - - for (var i=0; i < extraEls; i++) - { - var item = this.items.pop(); - this._returnListItem(item.domElt); - } - - } - - - // firstItemRef = this.items[0].ref; - // Note: this is not defined as a separate variable because the - // this.items array is being modified in the below cycle - - // get from pool - var bottomDifference = topItem - this.items[0].ref; - var newEls = itemsBefore - bottomDifference; - - // newEls cannot be more than the poolsize - newEls = this.m.min(newEls, this.properties.poolsize-1); - - log.debug(' Scroll Up - newEls ' + newEls); - - if (newEls > 0) - { - - for (var i=0; i= 0) - { - - // if empty item is encountered, request more data - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'up'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'prepend'); - - } - else - { - // we've reached the beginning of the dataList array => break - log.debug('beginning of list'); - break; - } - - } // for - - } - else - { - log.debug('no new elements'); - } - - /* SCROLL UP EOF */ - - } - else - { - // there's no scroll => do nothing - } - - - - } // closes if (this.m.abs(numOfScrolledElements) > itemsOnScreen) - -}; - - -/** - * Redraw updated items that are currently visible - * TAG: internal - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._updateDisplay = function(firstItem, lastItem) -{ - - var firstItemRef = this.items[0].ref; - var lastItemRef = this.items[this.items.length-1].ref; - - // update only when the updated items overlap with the visible items - if ( (firstItem >= firstItemRef && firstItem <= lastItemRef) || - (firstItem <= firstItemRef && lastItem >= firstItemRef) ) - { - - var firstToUpdate = this.m.max(firstItem, firstItemRef); - var lastToUpdate = this.m.min(lastItem, lastItemRef); - var firstToUpdateIndex = firstToUpdate - firstItemRef; - var lastToUpdateIndex = (lastToUpdate - firstToUpdate) + firstToUpdateIndex; - - for (var i=firstToUpdateIndex; i<=lastToUpdateIndex; i++ ) - { - - var returnItem = this.items.splice(i,1); - var dataListIndex = returnItem[0].ref; - - // return to pool - this._returnListItem(returnItem[0].domElt); - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // recover secondary focus - if (this._inSecondaryMulticontroller && this._currentSecondaryMulticontrollerItem === dataListIndex) - { - li.classList.add('focus'); - li.classList.add('secondaryFocus'); - } - - // put it to scroller - this._putToScroller(li, dataListIndex, i); - - } - - } - - // update _isScrollable flag - this._checkScrollable(); - -}; - -/** - * Request more list items - * TAG: internal - * ========================= - * @param {integer} - * @param {string} - * @return {void} - */ -List2Ctrl.prototype._requestMore = function(index, direction) -{ - - // do not request more if a previous request is pending - if (!this._inLoading) - { - if(this._appIsAtSpeed) - { - return; // do not do anything if the list gets this._appIsAtSpeed - } - else - { - // indicate loading is in progress - this._setLoading(true); - - if (direction == 'up') - { - // we add 1 to the requestSize to include the last element in the way up - index = this.m.max(index - this.properties.requestSize + 1, 0); - - } - else if (direction == 'middle') - { - // we request 25 items on each direction from the topItem - index = this.m.max(index, 0); - - } - - // build additional data - var additionalParams = { - topItem : this._topItem, - visibleItems : this.properties.visibleItems, - ranges : this.getEmptyRange(), - }; - - log.debug('Request items from ' + index + ' to ' + index+this.properties.requestSize + ' ' + direction); - - // call needDataCallback if it is defined. The first empty item is - if (typeof this.properties.needDataCallback == 'function') - { - this.properties.needDataCallback(index, additionalParams); - } - - // set timeout for data population - clearTimeout(this._needDataTimeoutId); - this._needDataTimeoutId = setTimeout(this._needDataTimeoutCallback.bind(this, index), this.properties.needDataTimeout); - } - } - -}; - -List2Ctrl.prototype._needDataTimeoutCallback = function(index) -{ - log.warn('Lis2: control has requested items from index ' + index + ' but has not receieved them yet. Enabling the list.'); - this._setLoading(false); -}; - -/** - * Initial pool operation - * TAG: internal - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._fill = function(firstItem, lastItem) -{ - - log.debug('Start pool operation'); - log.debug('POOL | ITEMS'); - - // get items from the pool - for (var i=firstItem; i<=lastItem; i++) - { - // get it from the pool - var li = this._getListItem(this.dataList.items[i], i); - - // put it to scroller - this._putToScroller(li, i, 'append'); - - log.debug(this.pool[this.dataList.items[i].itemStyle].length + ' -> ' + this.items.length); - } - - this._hasFill = true; - - // update _isScrollable flag - var scrollable = this._checkScrollable(); - - // show/hide scroll indicator - if (!scrollable || (scrollable && this.properties.hasLetterIndex)) - { - this._hideScrollIndicator(); - } - else - { - this._showScrollIndicator(); - } - - log.debug('End pool operation'); - -}; - -/** SET INTERNAL PROPERTIES **/ - -/** - * Update _isScrollable flag - * TAG: internal - * ========================= - * @return {boolean} - returns _isScrollable - */ -List2Ctrl.prototype._checkScrollable = function() -{ - if (this.dataList.items.length > this.properties.visibleItems) - { - this._isScrollable = true; - } - else - { - this._isScrollable = false; - } - - return this._isScrollable; -}; - -/** - * Update _topItem property - * TAG: internal - * ========================= - * @param {integer} - top item index - * @return {integer} - returns _topItem - */ -List2Ctrl.prototype._setTopListItem = function(pos) -{ - // pos should be number for proper topItem calculation - if (!isNaN(pos)) - { - this._prevTopItem = this._topItem; - this._topItem = -(Math.round(pos / this.properties.itemHeight)); - - // throw out of bounds exception - if (this._topItem < 0 || this._topItem > this.dataList.items.length - 1) - { - log.error('Lis2: _topItem is out of bounds'); - } - } - - if (this.properties.enableItemRequestOnScroll) - { - // check for empty items in DOM - var emptyDOMItem = this._getEmptyDOMElement(); - if (null != emptyDOMItem) - { - // fire needDataCallback() if an empty item is found in the DOM - this._requestMore(emptyDOMItem); - } - } - - return this._topItem; - -}; - -/** - * Indicate loading activity in the list - * and update _inLoading property - * TAG: internal - * ========================= - * @param {boolean} - show or hide loading activity - * @return {boolean} - returns _inLoading - */ -List2Ctrl.prototype._setLoading = function(show) -{ - if (show) - { - // check whether loading overlay is enabled - if (this.properties.loadingOverlayEnabled) - { - // update start time - this._loadingData.timeStarted = new Date().getTime(); - - if (this.properties.showLoadingOverlayTimeout > 0) - { - // delayed show overlay - this._loadingData.startTimeoutId = setTimeout(this._setLoadingOverlay.bind(this, true), this.properties.showLoadingOverlayTimeout); - } - else - { - // show overlay immediately - this._setLoadingOverlay(true); - } - } - - // update flag - this._inLoading = true; - } - else - { - // check whether loading overlay is enabled - if (this.properties.loadingOverlayEnabled) - { - if (this.properties.hideLoadingOverlayTimeout > 0) - { - // delayed hide overlay - var now = new Date().getTime(); - if (now - this._loadingData.timeStarted < this.properties.showLoadingOverlayTimeout) - { - // no overlay has been shown -> reset everything - this._setLoadingOverlay(false); - } - else if (now - this._loadingData.timeShown < this.properties.hideLoadingOverlayTimeout) - { - // the overlay has been visible less than the hideLoadingOverlayTimeout -> hide it in hideLoadingOverlayTimeout ms after it has been made visible - this._loadingData.endTimeoutId = setTimeout(this._setLoadingOverlay.bind(this, false), this.properties.hideLoadingOverlayTimeout - (now - this._loadingData.timeShown)); - } - else - { - // the overlay has been visible long enough -> hide it immediately - this._setLoadingOverlay(false); - } - } - else - { - // hide overlay immediately - this._setLoadingOverlay(false); - } - } - - // update flag - this._inLoading = false; - } - - return this._inLoading; -}; - -List2Ctrl.prototype._setLoadingOverlay = function(show) -{ - if (show) - { - // show loading - this.mask.appendChild(this.loading); - - this._loadingData.timeShown = new Date().getTime(); - } - else - { - // hide loading - if (null != this.loading.parentElement) - { - this.loading.parentElement.removeChild(this.loading); - } - - // reset loading data - clearTimeout(this._loadingData.startTimeoutId); - clearTimeout(this._loadingData.endTimeoutId); - this._loadingData.timeStarted = 0; - this._loadingData.timeShown = 0; - this._loadingData.startTimeoutId = null; - this._loadingData.endTimeoutId = null; - } -}; - -/** 7. DEFAULT TITLE CONFIGURATION **/ - -/** - * Prepare title - * A list title can be defined with minimal set of properties - * that are needed for its proper display. This function sets - * default configuration for a valid title and merge it with the - * custom configuration passed to the title. - * TAG: internal - * ========================= - * @param {object} - the title object that will be set a default set of properties and will be returned - * @return {object} - the complete title object - */ -List2Ctrl.prototype._prepareTitle = function(titleObj) -{ - // The itemStyle property is required - if (!titleObj.hasOwnProperty('titleStyle')) - { - log.error('Lis2: title should have titleStyle property: ' + titleObj); - return; - } - - // default properties - var title = {}; - switch (titleObj.titleStyle) - { - case 'style02' : - title = { text1:'', text1Id:null, text1SubMap:null, styleMod:'' }; - break; - case 'style02a' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'', styleMod:'' }; - break; - case 'style03' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'' }; - break; - case 'style05' : - title = { text1:'', text1Id:null, text1SubMap:null, text2:'', text2Id:null, text2SubMap:null, image1:'' }; - break; - case 'style06' : - title = { image1:'' }; - break; - case 'style07' : - title = { text1:'', text1Id:null, text1SubMap:null, text2:'', text2Id:null, text2SubMap:null }; - break; - case 'style08' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'', styleMod:'' }; - break; - default : - log.error('Lis2: unknown title style: ' + titleObj.titleStyle); - break; - } - - // Extend default structure with the supplied item - for (var i in titleObj) - { - title[i] = titleObj[i]; - } - - // Perform localization - switch (title.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - case 'style08' : - if (title.text1Id) - { - title.text1 = this._getLocalizedString(title.text1Id, title.text1SubMap); - } - break; - case 'style05' : - case 'style07' : - if (title.text1Id) - { - title.text1 = this._getLocalizedString(title.text1Id, title.text1SubMap); - } - if (title.text2Id) - { - title.text2 = this._getLocalizedString(title.text2Id, title.text2SubMap); - } - break; - } - - return title; -}; - - -/** - * ========================= - * SCROLL INDICATOR - * - reset - * - create - * - visual update - * ========================= - */ - -/** - * Remove any scroll indicator - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorReset = function() -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // remove any scroll indicator - if (this.scrollIndicatorWrapper) - { - // remove wrapper (and scroll indicator) - this.scrollIndicatorWrapper.parentElement.removeChild(this.scrollIndicatorWrapper); - - // nullify elements - this.scrollIndicatorWrapper = null; - this.scrollIndicator = null; - - // reset scroll indicator boundaries - this._indicatorMin = 0; - this._indicatorMax = 0; - } -}; - -/** - * Create scroll indicator - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorBuild = function(visible) -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // determine scroll indicator size - var indicatorSize = Math.round(this.mask.offsetHeight * (this.mask.offsetHeight / this.scroller.offsetHeight)); - - // add scroll indicator wrapper - this.scrollIndicatorWrapper = document.createElement('div'); - this.scrollIndicatorWrapper.className = 'List2CtrlScrollIndicatorWrapper'; - this.divElt.appendChild(this.scrollIndicatorWrapper); - - // add scroll indicator - this.scrollIndicator = document.createElement('div'); - this.scrollIndicator.className = 'List2CtrlScrollIndicator'; - if(!visible) - { - this.scrollIndicatorWrapper.style.visibility = 'hidden'; - } - else - { - this.scrollIndicatorWrapper.style.visibility = 'visible'; - } - this.scrollIndicator.style.height = this.m.max(indicatorSize, this.properties.scrollIndicatorMinSize) + 'px'; - this.scrollIndicator.style.top = '0px'; - this.scrollIndicatorWrapper.appendChild(this.scrollIndicator); - - // set scroll indicator boundaries - this._indicatorMin = 0; - this._indicatorMax = this.mask.offsetHeight - this.scrollIndicator.offsetHeight; - - if (this.properties.hasLetterIndex) - { - // hide scroll indicator when letterIndex is enabled - this._hideScrollIndicator(); - } - else - { - // fade out scroll indicator - this._fadeOutScrollIndicator(); - } -}; - -/** - * Update scroll indicator position on drag - * This is fired on _USER_EVENT_MOVE when the - * list is being dragged by touch. - * TAG: touch-only, internal - * ========================= - * @return {integer} scroll indicator position - */ -List2Ctrl.prototype._dragUpdateScrollIndicator = function() -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // determine scroll indicator position - var indicatorPos = Math.round(this._indicatorMax * (this.scroller.offsetTop / this._maxScrollY)); - - // constrain position - indicatorPos = this.m.max(indicatorPos, this._indicatorMin); - - // set new position - this.scrollIndicator.style.top = indicatorPos + 'px'; - - // fade in scroll indicator - this._fadeInScrollIndicator(); - - return indicatorPos; -}; - -/** - * Update scroll indicator position on drag - * Called on scroll animation (flick or scroll ad-hoc) - * TAG: internal - * ========================= - * @param {integer} the new position of the scroller - * @param {integer} the time for animation to the new position - * @return {integer} the new scroll indicator position - */ -List2Ctrl.prototype._updateScrollIndicator = function(pos, time) -{ - // check for time - if (time == undefined || time == null) - { - // get default time - time = this.properties.swipeAnimationDuration; - } - - // determine scroll indicator new position - var newRelativePos = pos / this._maxScrollY; - var newPos = Math.round(newRelativePos * (this._indicatorMax - this._indicatorMin)); - - // start animation - this.scrollIndicator.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.scrollIndicatorAnimationEndCallback = this._scrollIndicatorAnimationEnd.bind(this); - this.scrollIndicator.addEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - this.scrollIndicator.style.top = newPos + 'px'; - - // clear any previously scheduled scroll indicator fade out - clearTimeout(this._scrollIndicatorTimeoutId); - this._scrollIndicatorTimeoutId = null; - - // fade in scroll indicator - this._fadeInScrollIndicator(); - - return newPos; - -}; - - -List2Ctrl.prototype._fadeInScrollIndicator = function() -{ - // check whether scroll indicator needs to fade - if (this.properties.scrollIndicatorFadeTimeout <= 0) - { - return; - } - - this.scrollIndicatorWrapper.style[this._VENDOR + 'TransitionDuration'] = this.properties.scrollIndicatorFadeInDuration + 'ms'; - this.scrollIndicatorWrapper.style.opacity = 1; -}; - -List2Ctrl.prototype._fadeOutScrollIndicator = function() -{ - // check whether scroll indicator needs to fade - if (this.properties.scrollIndicatorFadeTimeout <= 0) - { - return; - } - - // clear any previously-scheduled hiding - clearTimeout(this._scrollIndicatorTimeoutId); - - // schedule hide - this._scrollIndicatorTimeoutId = setTimeout(function() { - this.scrollIndicatorWrapper.style[this._VENDOR + 'TransitionDuration'] = this.properties.scrollIndicatorFadeOutDuration + 'ms'; - this.scrollIndicatorWrapper.style.opacity = 0; - this._scrollIndicatorTimeoutId = null; - }.bind(this), this.properties.scrollIndicatorFadeTimeout); -}; - -List2Ctrl.prototype._hideScrollIndicator = function() -{ - this.scrollIndicatorWrapper.style.opacity = 0; -}; - -List2Ctrl.prototype._showScrollIndicator = function() -{ - this.scrollIndicatorWrapper.style.opacity = 1; -}; - -/** - * ========================= - * TOUCH EVENT HANDLERS - * - Event detection and custom event dispatching - * - Start/Move/End/Out event handling - * - Hit state control - * ========================= - */ - -/** - * Handle any touch event and dispatch appropriate - * custom event. Actual event processing is done in the - * respective handlers of the custom events. The original - * event object is attached to the custom event in its - * event property. - * ========================= - * @param {event} - any touch event - * @return {Boolean} - True if event was processed - */ -List2Ctrl.prototype._touch = function(e) -{ - var touchResult = false; - - switch(e.type) - { - case this._USER_EVENT_START : - // route to letter index first, otherwise route to list - touchResult = this._startIndex(e) || this._start(e); - /* - * Attach temporary listeners to document if we have a positive start. - * These listeners will be removed on _USER_EVENT_END - */ - if (touchResult) - { - document.addEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.addEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.addEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - } - break; - - case this._USER_EVENT_MOVE : - // route to letter index first, otherwise route to list - touchResult = this._moveIndex(e) || this._move(e); - break; - - case this._USER_EVENT_END : - /* - * Remove the document event listeners no matter of these have been - * attached or not. This will prevent any non-existent callbacks firing. - */ - document.removeEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - // route to letter index first, otherwise route to list - touchResult = this._endIndex(e) || this._end(e); - break; - - case this._USER_EVENT_OUT : - this._out(e); - break; - } - - return touchResult; -}; - -/** - * Start Touch on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._start = function(e) -{ - // abort any ongoing scroll - this._abortScroll(e); - - // get mask position and dimensions - this._maskPositionY = this.getPosition(this.mask)[1]; - this._maskPositionX = this.getPosition(this.mask)[0]; - this._maskH = this.mask.offsetHeight; - this._maskW = this.mask.offsetWidth; - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - // reset letter index multicontroller - this._focusStolen = false; - if (relativeY >= 0) - { - this._setLetterIndexMulticontroller(false, true); - - // steal focus - var canGainFocus = this._canGainFocus(e); - if (!this._hasFocus && -1 !== canGainFocus) - { - framework.common.stealFocus(); - this._hasFocus = true; - this._focusStolen = true; - } - } - - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by start reorder rather than regular start - this._startReorder(e); - return true; - } - else if(!this._inListReorder && this._appIsAtSpeed) - { - this._startReorder(e); - return true; - } - - this._startItem = this._getTargetItem(e); - this._startDOMItem = this._getDOMItem(this._startItem); - - // make hit - if (this.properties.hitTimeout > 0) - { - // after some time - this._makeHitTimeoutId = setTimeout(this._itemMakeHit.bind(this, e), this.properties.hitTimeout); - } - else - { - // immediately - this._itemMakeHit(e); - } - - // Place focus on the reported available item when focus is stolen - if (this._focusStolen) - { - this._showFocus(canGainFocus, true); - } - - // make toggles hit - this._buttonMakeHit(e); - - // make locks hit - this._lockMakeHit(e); - - // if scrolling during loading is not allowed - if (!this.properties.scrollingDuringLoading && this._inLoading) - { - return false; - } - - // check relative mouse position - if (relativeY < 0) - { - return false; - } - - // check for a valid target item - if (this._startItem == -1) - { - return false; - } - - // get current y - this._y = this.scroller.offsetTop; - this._startY = relativeY; - this._startX = relativeX; - this._startTime = new Date().getTime(); - - // start longpress countdown - this._longPressTimeoutId = setTimeout(this._itemLongPress.bind(this, e), this.properties.longPressTimeout); - - // raise _inDrag - this._inDrag = true; - - // Release secondary MC mode - if (this._inSecondaryMulticontroller && null != this._currentSecondaryMulticontrollerItem && this._startItem != this._currentSecondaryMulticontrollerItem) - { - var temp = this._currentSecondaryMulticontrollerItem; - - // if we are in secondary multicontroller mode, touching outside the item will exit it - this._setSecondaryMulticontroller(false, this._currentSecondaryMulticontrollerItem); - - // Commit the value - if (!this._isLock(temp)) // locks do not commit the value - { - this._triggerFocus(temp); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(temp, 'clear'); - } - } - - // dispatch scroll start event - this._listEvent(this._EVENTS.SCROLL_START, {scrollPosition:this._topItem}); - - // user touched the list -> return True - return true; - -}; - -/** - * Touch move on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._move = function(e) -{ - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by move reorder rather than regular move - this._moveReorder(e); - return true; - } - - if (!this._inDrag) - { - return false; - } - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return false; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - if (relativeY < -this._maskPositionY) - { - // we are out of bounds - this._end(e); - return true; - } - - // calculate travelled distance - var deltaY = relativeY - this._startY; - var deltaX = relativeX - this._startX; - - if (this._inLongPress) - { - return false; - } - - /* - * DRAG DETECTION - * determine whether this is a horizontal or vertical drag - * and raise the horizontal flag - */ - if (null == this._inHorizontalDrag) { - - var alpha = Math.atan2(this.m.abs(deltaX), this.m.abs(deltaY)); - if (alpha < this.properties.hvThreshold) - { - // vertical - this._inHorizontalDrag = false; - } - else - { - // horizontal - this._inHorizontalDrag = true; - this._hDragItem = this._getTargetItem(e); - - // set slideStart - this._slideStart(e); - } - } - - // drag slider - if (this._inHorizontalDrag == true) - { - // we have a horizontal drag -> move sliders - this._slideMove(e); - } - // drag list if scrollable - else if (false == this._inHorizontalDrag && this._isScrollable) - { - // we have a vertical drag and the list can be scrolled - // calculate the scroller's new position and constrain it into bounds - var newPos = this.m.max(this._maxScrollY, this.m.min(this._y + deltaY, this._minScrollY)); - - // drag the scroller if in bounds - this.scroller.style.top = newPos + 'px'; - - // update scroll indicator - this._dragUpdateScrollIndicator(); - - // raise _stopClick flag and remove hit and long press - if (this.m.abs(deltaY) > this.properties.selectThreshold) - { - this._stopSelect = true; - - // remove hit and prevent delayed hit - this._itemRemoveHit(e); - clearTimeout(this._makeHitTimeoutId); - - // remove long press and prevent long press - this._itemRemoveLongPress(e); - clearTimeout(this._longPressTimeoutId); - } - } - // control hit state when not scrollable or when no scrolling occurs (e.g. when we are one of the list extremities) - if (!this._isScrollable || this.m.abs(deltaY) > this.properties.selectThreshold) - { - var targetTop = this._startDOMItem.offsetTop; - if (relativeY < targetTop || relativeY > targetTop + this.properties.itemHeight) - { - // remove hit - this._itemRemoveHit(e); - - // prevent select only on non-scrollable lists - // the scrollable lists are handled in the above case - if (!this._isScrollable) - { - this._stopSelect = true; - } - } - else - { - // make hit - if (this._stopSelect && !this._isScrollable) - { - this._itemMakeHit(e); - } - - // enable select only on non-scrollable lists - // the scrollable lists are handled in the above case - if (!this._isScrollable) - { - this._stopSelect = false; - } - } - } - - // user touched the list -> return True - return true; -}; - -/** - * Touch end on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._end = function(e) -{ - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by end reorder rather than regular end - this._endReorder(e); - return true; - } - else if(!this._inListReorder && this._appIsAtSpeed) - { - this._endReorder(e); - return true; - } - - - // remove hit - this._itemRemoveHit(e); - clearTimeout(this._makeHitTimeoutId); // clear hit timeout - // remove long press - this._itemRemoveLongPress(e); - clearTimeout(this._longPressTimeoutId); // clear longpress timeout - - this._startItem = null; - this._startDOMItem = null; - - // reset drag flag and hDrag item - this._inHorizontalDrag = null; - this._hDragItem = null; - - if (!this._inDrag) - { - // this is called without having a drag - return false; - } - - // end any drag of sliders - this._slideEnd(e); - - // set scroll nature - this._scrollNature = 'touch'; - - // detect swipe motion - var endTime = e.timeStamp || new Date().getTime(); - var velocity = endTime - this._startTime; - if (this._focusStolen && !this._stopSelect) - { - // slight drag -> scroll to show focus on the available item when stealing focus - // decide whether to allow offscrean - var focussedIndex = this._getFocussedIndex(); - var allowOffScreen = (focussedIndex > this._topItem && focussedIndex < this._topItem + this.properties.visibleItems); - this._showFocus(focussedIndex, allowOffScreen); - this._focusStolen = false; - } - else if (velocity < this.properties.swipeThreshold && velocity > 0) - { - // get relative mouse position and calculate travelled distance - var relativeY = e.pageY - this._maskPositionY; - var deltaY = relativeY - this._startY; - - // swipte detected - this._startSwipe(deltaY, velocity); - } - else - { - // regular drag -> snap to item bounds - this._snap(this.scroller.offsetTop); - } - - // call touch select logic - this._touchSelectItem(e); - - // reset any previously set flags - this._inDrag = false; - this._stopSelect = false; - this._startTime = 0; - - // user touched the list -> return True - return true; -}; - -/** - * Touch leave on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._out = function(e) -{ - return this._end(e); -}; - - -/** - * Start Touch on letter index - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {boolean} - True if letter index is touched - */ -List2Ctrl.prototype._startIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - // get mask position - this._maskPositionY = this.getPosition(this.mask)[1]; - this._maskPositionX = this.getPosition(this.mask)[0]; - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - if (relativeY < 0) - { - return false; - } - - // hit test letter index - if (relativeX <= this.letterIndexWrapper.offsetLeft) - { - return false; - } - - // steal focus - if (!this._hasFocus) - { - framework.common.stealFocus(); - this._hasFocus = true; - } - - // Enter into letter index multicontroller mode if not already - if (!this._inLetterIndexMulticontroller) - { - this._setLetterIndexMulticontroller(true); - } - - // clear any scheduled letter index select - this._scheduleLetterIndexSelect(null, true); - - // make hit - this._indexMakeHit(e); - - // get start coordinates and time - this._yIndex = this.letterIndex.offsetTop; - this._startIndexY = relativeY; - this._startIndexX = relativeX; - this._startTimeIndex = new Date().getTime(); - - this._inDragIndex = true; - - return true; - -}; - - -List2Ctrl.prototype._moveIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - if (!this._inDragIndex) - { - return false; - } - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return false; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - if (relativeY < -this._maskPositionY) - { - // we are out of bounds - this._endIndex(e); - - return false; - } - - // calculate travelled distance - var deltaY = relativeY - this._startIndexY; - var deltaX = relativeX - this._startIndexX; - - // calculate the letter index's new position and constrain it into bounds - var newPos = this.m.max(this._maxScrollYIndex, this.m.min(this._yIndex + deltaY, this._minScrollYIndex)); - - // drag the letter index if in bounds - this.letterIndex.style.top = newPos + 'px'; - - // raise _stopClick flag - if (this.m.abs(deltaY) > this.properties.selectThreshold) - { - this._stopSelect = true; - - // remove hit - this._indexRemoveHit(e); - } - - return true; - -}; - - -List2Ctrl.prototype._endIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - // remove hit - this._indexRemoveHit(e); - - if (!this._inDragIndex) - { - return false; - } - - if (!this._stopSelect) - { - // snap position - this._snapIndex(this.letterIndex.offsetTop); - - // select letter index - var letterIndex = this._getTargetLetterIndex(e); - this._letterIndexSelect(letterIndex, 'Touch'); - } - else - { - // detect swipe motion - var endTime = e.timeStamp || new Date().getTime(); - var velocity = endTime - this._startTimeIndex; - if (velocity < this.properties.swipeThreshold && velocity > 0) - { - // get relative mouse position and calculate travelled distance - var relativeY = e.pageY - this._maskPositionY; - var deltaY = relativeY - this._startIndexY; - - // swipte detected - this._startSwipeIndex(deltaY, velocity); - } - else - { - // snap position - this._snapIndex(this.letterIndex.offsetTop); - - // schedule letter index select if letter is enabled - var letterIndex = this._getTargetLetterIndex(e); - if (!this.letterIndexData[letterIndex].disabled) - { - this._scheduleLetterIndexSelect(letterIndex); - } - } - } - - // reset flags - this._inDragIndex = false; - this._stopSelect = false; - - return true; -}; - - - -/** - * Select item - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {void} - */ -List2Ctrl.prototype._touchSelectItem = function(e) -{ - // clear any hit timeout - clearTimeout(this._makeHitTimeoutId); - - // if we are not allowed to select (when in drag) - if (this._stopSelect) - { - this._stopSelect = false; - return; - } - - // select during loading is not allowed - if (this._inLoading) - { - return; - } - - var itemIndex; - var fireSelect = true; - var additionalModifier = null; - var params = {}; - - // determine target item - itemIndex = this._getTargetItem(e); - - // only valid list items can fire the select callback - if (itemIndex == -1) - { - return; - } - - // ensure that we end up on the same item where we started so that the select is valid - if (itemIndex != this._getFocussedIndex()) - { - return; - } - - // perform any additional touch processing for some items before issuing select callback - if (this._isToggle(itemIndex)) - { - // the target contains toggle buttons -> select toggle buttons - var toggleSelected = this._buttonSelect(e); - if ('cancel' == toggleSelected) - { - fireSelect = false; - } - else if (null != toggleSelected) - { - params = { additionalData:toggleSelected }; - additionalModifier = 'preventSimpleSelect'; - } - - } - - if (this._isSlider(itemIndex)) - { - // the target contains a slider -> disable select only if the slider is adjustable - if (this.dataList.items[itemIndex].allowAdjust) - { - fireSelect = false; - } - } - - if (this._isStep(itemIndex) && this._hasSecondaryMulticontroller(itemIndex) && this._inSecondaryMulticontroller) - { - // if we are in secondary multicontroller and the item is a step item - var stepResult = this._stepAdjust(e); - if ('commit' === stepResult) - { - params = { finalAdjust:true, value:this.dataList.items[itemIndex].value }; - additionalModifier = 'exitSecondaryMulticontroller'; - } - else if (null != stepResult) - { - params = { finalAdjust:false, value:stepResult }; - } - else - { - fireSelect = false; - } - } - else if (this._isStep(itemIndex) && this._hasSecondaryMulticontroller(itemIndex) && !this._inSecondaryMulticontroller) - { - // if we are not in secondary multicontroller and the item is step item - this._setSecondaryMulticontroller(true, itemIndex); - fireSelect = false; - - // produce beep - this._beep('Short', 'Touch'); - } - - if (this._isLock(itemIndex) && this._hasSecondaryMulticontroller(itemIndex)) - { - // the target is a lock item - var lockAction = this._lockSelect(e); - if (null == lockAction) - { - fireSelect = false; - } - else - { - // prepare params - params = { additionalData:lockAction }; - additionalModifier = 'exitSecondaryMulticontroller'; - } - } - - // prevent select on disabled items - if (this.dataList.items[itemIndex].disabled) - { - fireSelect = false; - } - - // everything looks ok -> call internal _itemSelect() method if the item permits it - if (fireSelect) - { - // fire select only if no long press / hold start has been issued - if (!this._longPressIssued) - { - // produce beep - this._beep('Short', 'Touch'); - - this._itemSelect(itemIndex, params, additionalModifier); - } - // otherwise fire holdStop Callback on shortAndHold items - else if ('shortAndHold' === this.dataList.items[itemIndex].itemBehavior) - { - this._itemHoldStop(itemIndex); - } - } - - // lower long-press/hold-start flag - this._longPressIssued = false; - -}; - -/** - * Exit hit state of the currently hit item - * ========================= - * @return {void} - */ -List2Ctrl.prototype._itemRemoveHit = function() -{ - var hitItems = this.scroller.querySelectorAll('.hit'); - - if (hitItems.length) - { - for (var i=0, l=hitItems.length; i= this.dataList.itemCount || this.dataList.items[itemIndex].disabled) - { - return; - } - - var returnValue = null; - - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'styleOnOff' : - // get and update current value - var currentValue = this.dataList.items[itemIndex].value; - var newValue = (1 === currentValue) ? 2 : 1; - this.dataList.items[itemIndex].value = newValue; - - // get and update DOM item - var domItem = this._getDOMItem(itemIndex); - if (domItem) - { - if (1 === newValue) - { - domItem.classList.add('checked'); - } - else - { - domItem.classList.remove('checked'); - } - } - returnValue = newValue; - break; - - case 'style10' : - case 'style11' : - // Note: settle timeout is registered in this._buttonActivate - this._buttonSelectRight(itemIndex); - returnValue = this.dataList.items[itemIndex].value; - break; - - case 'style03' : - case 'style03a' : - var currentValue = this.dataList.items[itemIndex].checked; - switch (this.dataList.items[itemIndex].image1) - { - case 'tick' : - if (!currentValue) - this._setTick(itemIndex, !currentValue); - break; - case 'radio' : - if (!currentValue) - this._setRadio(itemIndex, !currentValue); - break; - case 'checkbox' : - this._setCheckBox(itemIndex, !currentValue); - break; - } - returnValue = this.dataList.items[itemIndex].checked; - break; - - default : - log.warn('Lis2: No simple select behavior for item style ' + this.dataList.items[itemIndex].itemStyle); - break; - } - - return returnValue; - -}; - -/** - * Fire select callback on an item. - * This function is called whenever a select event - * occurs. It is a single call point for all selects - * and should be invoked whether select event is intended. - * TAG: internal - * ========================= - * @param {integet} - item index - * @return {boolean} - true if there's a valid selectCallback - */ -List2Ctrl.prototype._itemSelect = function(itemIndex, paramsModifier, additionalModifier) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - // get paramsModifier - var paramsModifier = paramsModifier || {}; - - // get additionalModifier - var additionalModifier = additionalModifier || null; - - var appData = null; - var additionalData = null; - var params = {}; - - // event filtering - var filterEvent = false; - - if (this._isSlider(itemIndex)) - { - // the item contains a slider - additionalData = this.dataList.items[itemIndex].value; - } - - if (this._isSimpleSelectItem(itemIndex)) - { - // the item is simple select item - if ('preventSimpleSelect' != additionalModifier) - { - // process simple select behavior before firing the select callback - additionalData = this._simpleSelect(itemIndex); - } - - // apply event filter - var filterType = (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) ? 'toggle' : (this._isCheckBox(itemIndex)) ? 'check' : null; - filterEvent = this._applyEventFilter(itemIndex, filterType); - } - else if (this._isStep(itemIndex) && 'exitSecondaryMulticontroller' === additionalModifier) - { - this._setSecondaryMulticontroller(false, itemIndex); - } - else if (this._isLock(itemIndex) && 'exitSecondaryMulticontroller' === additionalModifier) - { - // restore focus and remove any secondary multicontroler - this._showFocus(this._lastItemWithFocus); - this._lockShowFocus(itemIndex, 'clear'); - this._setSecondaryMulticontroller(false, itemIndex); - } - else if (this._isStep(itemIndex)) - { - // apply event filter - var filterType = "step"; - filterEvent = this._applyEventFilter(itemIndex, filterType); - } - - // is this filtered event? - if (filterEvent) - { - return false; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - // merge params with params modifier - for (var i in paramsModifier) - { - params[i] = paramsModifier[i]; - } - - // return value - var result = false; - - // do not fire select on disabled items but instead fire select disabled - if (this.dataList.items[itemIndex].disabled) - { - // fire select disabled callback - if (typeof this.properties.selectDisabledCallback == 'function') - { - /* - * Handles touches on disabled list items - * @param ctrlObj Object Reference to the list control that was selected - * @param btnData Object Data that was attached to the selected item - * @param params Object Object containing extra data - */ - result = this.properties.selectDisabledCallback(this, appData, params); - - // set result to true if nothing is returned from the select callback - if (undefined == result) - { - result = true; - } - } - } - else - { - // fire select callback - if (typeof this.properties.selectCallback == 'function') - { - /* - * Handles select on list items - * @param ctrlObj Object Reference to the list control that was selected - * @param btnData Object Data that was attached to the selected item - * @param params Object Object containing extra data - */ - result = this.properties.selectCallback(this, appData, params); - - // set result to true if nothing is returned from the select callback - if (undefined == result) - { - result = true; - } - } - - // dispatch select event - this._listEvent(this._EVENTS.ITEM_SELECT, params); - } - - if (this._hasData(itemIndex)) - { - // record this event and clear any timeouts - this.dataList.items[itemIndex]._data.lastEvent = new Date().getTime(); - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = null; - } - - return result; -}; - -/** - * Fire long press callback on an item. - * This function is called whenever a select event - * occurs. It is a single call point for all selects - * and should be invoked whether select event is intended. - * TAG: internal - * ========================= - * @param {event|integer} - raw touch/mouse event or directly the index of the item - * @return {boolean} - true if there's a valid longPressCallback - */ -List2Ctrl.prototype._itemLongPress = function(e) -{ - var eventCause = null; - var itemIndex = -1; - - // the parameter is an event - if (typeof e == 'object') - { - // determine target item - itemIndex = this._getTargetItem(e);var itemIndex = this._getTargetItem(e); - eventCause = 'Touch'; - } - // the parameter is an index - else if (!isNaN(e)) - { - itemIndex = e; - eventCause = 'Multicontroller'; - } - - // if the item is short-press-only -> prevent any longpress activity - if ('shortPressOnly' === this.dataList.items[itemIndex].itemBehavior) - { - return; - } - // if the item has itemBehavior other than shortAndLong and shortAndHold -> this is invalid property and prevent any longpress activity - else if ('shortAndLong' != this.dataList.items[itemIndex].itemBehavior && 'shortAndHold' != this.dataList.items[itemIndex].itemBehavior) - { - log.warn('Lis2: Invalid itemBehavior property. Item behavior can be shortPressOnly / shortAndLong / shortAndHold'); - return; - } - - // make it long-pressed - this._itemMakeLongPress(e); - - var appData = null; - var additionalData = null; - var params = {}; - - if (this._isSlider(itemIndex)) - { - // the target has a slider - additionalData = this.dataList.items[itemIndex].value; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - - // return value - var result = false; - - // produce beep - this._beep('Long', eventCause); - - // fire long press callback - if ('shortAndLong' === this.dataList.items[itemIndex].itemBehavior && typeof this.properties.longPressCallback == 'function') - { - /* - * Handles long press on list items - * @param ctrlObj Object Reference to the list control that was long-pressed - * @param btnData Object Data that was attached to the long-pressed item - * @param params Object Object containing extra data - */ - this.properties.longPressCallback(this, appData, params); - - result = true; - } - // fire hold start callback - else if ('shortAndHold' === this.dataList.items[itemIndex].itemBehavior && typeof this.properties.holdStartCallback == 'function') - { - /* - * Handles hold start on list items - * @param ctrlObj Object Reference to the list control that was long-held - * @param btnData Object Data that was attached to the long-held item - * @param params Object Object containing extra data - */ - this.properties.holdStartCallback(this, appData, params); - - result = true; - } - - // raise the flag for long-press/hold-start issued callback - this._longPressIssued = true; - - // enter into list reorder on long press if the list supports it - if (this.properties.listReorder) - { - this._enterListReorder(); - this._startReorder(e); - } - - return result; -}; - - -/** - * Fire hold stop on an item. - * This function is called whenever the user ends touch - * on an item that has itemBehavior = shortAndHold - * TAG: internal, touch-only - * ========================= - * @param {integet} - item index - * @return {boolean} - true if there's a valid holdStopCallback - */ -List2Ctrl.prototype._itemHoldStop = function(itemIndex) -{ - // validate item behavior property - if ('shortAndHold' != this.dataList.items[itemIndex].itemBehavior) - { - return; - } - - var appData = null; - var additionalData = null; - var params = {}; - - if (this._isSlider(itemIndex)) - { - // the target has a slider - additionalData = this.dataList.items[itemIndex].value; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - - // return value - var result = false; - - // fire hold stop callback - if (typeof this.properties.holdStopCallback == 'function') - { - /* - * Handles hold stop on list items - * @param ctrlObj Object Reference to the list control that was long-held - * @param btnData Object Data that was attached to the long-held item - * @param params Object Object containing extra data - */ - this.properties.holdStopCallback(this, appData, params); - - result = true; - } - - return result; -}; - -/** - * Perform outbound event filtering - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - filter type - * @return {boolean} - whethet to filter the event or not - */ -List2Ctrl.prototype._applyEventFilter = function(itemIndex, filterType) -{ - var filter = false; - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return filter; - } - - var now = new Date().getTime(); - - switch (filterType) - { - case 'toggle' : - var difference = now - this.dataList.items[itemIndex]._data.lastEvent; - if (difference < this.dataList.items[itemIndex].minChangeInterval) - { - // too soon -> filter the immediate event and send it later - log.debug('Event filtered'); - filter = true; - - // schedule callback - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = setTimeout(this._filterTimeoutCallback.bind(this, itemIndex, filterType), this.dataList.items[itemIndex].minChangeInterval - difference); - } - else - { - // timing is ok -> pass the event and clear any scheduled selects - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - - // register settle timeout - this._registerSettleTimeout(itemIndex, 'toggle'); - } - break; - - case 'check' : - var difference = now - this.dataList.items[itemIndex]._data.lastEvent; - if (difference < this.properties.checkMinChangeInterval) - { - // too soon -> filter the immediate event and send it later - log.debug('Event filtered'); - filter = true; - - // schedule callback - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = setTimeout(this._filterTimeoutCallback.bind(this, itemIndex, filterType), this.properties.checkMinChangeInterval - difference); - } - else - { - // timing is ok -> pass the event and clear any scheduled selects - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - - // register settle timeout - if ('radio' === this.dataList.items[itemIndex].image1 || - 'tick' === this.dataList.items[itemIndex].image1 || - 'checkbox' === this.dataList.items[itemIndex].image1) - { - var itemType = this.dataList.items[itemIndex].image1; - this._registerSettleTimeout(itemIndex, itemType); - } - } - break; - - case 'step' : - var difference = now - this.dataList.items[itemIndex]._data.lastEvent; - - if (this.properties.stepMinChangeInterval !== 0 && difference < this.properties.stepMinChangeInterval) - { - // too soon -> filter the immediate event and send it later - log.debug('Event filtered'); - filter = true; - - // schedule callback - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = setTimeout(this._filterTimeoutCallback.bind(this, itemIndex, filterType), this.properties.stepMinChangeInterval - difference); - } - else - { - // timing is ok -> pass the event and clear any scheduled selects - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - } - break; - } - - return filter; -}; - -/** - * Timeout callback that is run if a select event - * is scheduled by the outbound filtering mechanism - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - filter type - * @return {void} - */ -List2Ctrl.prototype._filterTimeoutCallback = function(itemIndex, filterType) -{ - switch (filterType) - { - case 'toggle' : - this._itemSelect(itemIndex, { additionalData : this.dataList.items[itemIndex].value }, 'preventSimpleSelect'); - - // register settle timeout - this._registerSettleTimeout(itemIndex, 'toggle'); - break; - - case 'check' : - this._itemSelect(itemIndex, { additionalData : this.dataList.items[itemIndex].checked }, 'preventSimpleSelect'); - - // register settle timeout - if ('radio' === this.dataList.items[itemIndex].image1 || - 'tick' === this.dataList.items[itemIndex].image1 || - 'checkbox' === this.dataList.items[itemIndex].image1) - { - var itemType = this.dataList.items[itemIndex].image1; - this._registerSettleTimeout(itemIndex, itemType); - } - break; - case 'step' : - this._itemSelect(itemIndex, { value : this.dataList.items[itemIndex].value }, 'preventSimpleSelect'); - break; - } -}; - -/** - * Register a settle timeout on any new user input. - * Any previous settle timeout should get cleared - * before setting a new one. The timeout state should - * be checked when public API call is made and depending - * on whether the timeout is running or not, the value - * will be cached or applied to the item. - * The settle time acts as an inbound event filtering mechanism. - * TAG: internal - * ========================= - * @param {integer} - itemIndex - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {void} - */ -List2Ctrl.prototype._registerSettleTimeout = function(itemIndex, itemType) -{ - log.debug('Settle scheduled'); - this._clearSettleTimeout(itemIndex, itemType); - - // schedule settle item - switch (itemType) - { - case 'radio' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - this._radioSettleTimeoutId = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - case 'tick' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - this._tickSettleTimeoutId = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - break; - case 'checkbox' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - this.dataList.items[itemIndex]._data.settleTimeout = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - break; - case 'toggle' : - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - this.dataList.items[itemIndex]._data.settleTimeout = setTimeout(this._settleItem.bind(this, itemIndex), this.dataList.items[itemIndex].settleTime); - } - break; - } -}; - -/** - * Clear any settle timeouts on any user input. - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {void} - */ -List2Ctrl.prototype._clearSettleTimeout = function(itemIndex, itemType) -{ - switch (itemType) - { - case 'radio' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - clearTimeout(this._radioSettleTimeoutId); - this._radioSettleTimeoutId = null; - } - case 'tick' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - clearTimeout(this._tickSettleTimeoutId); - this._tickSettleTimeoutId = null; - } - break; - - case 'checkbox' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - clearTimeout(this.dataList.items[itemIndex]._data.settleTimeout); - this.dataList.items[itemIndex]._data.settleTimeout = null; - } - break; - - case 'toggle' : - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - clearTimeout(this.dataList.items[itemIndex]._data.settleTimeout); - this.dataList.items[itemIndex]._data.settleTimeout = null; - } - break; - } -}; - -/** - * Performs a check whether a settlie timeout - * is running for a particular item, radio group - * or tick group. - * ========================= - * @param {integer} - item index - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {Boolean} - True if a settle timeout is running - */ -List2Ctrl.prototype._hasSettleTimeout = function(itemIndex, itemType) -{ - var timeoutRunning = false; - - switch (itemType) - { - case 'radio' : - if (null !== this._radioSettleTimeoutId && this._radioSettleTimeoutId >= 0) - { - timeoutRunning = true; - } - break; - - case 'tick' : - if (null !== this._tickSettleTimeoutId && this._tickSettleTimeoutId >= 0) - { - timeoutRunning = true; - } - break; - - case 'checkbox' : - case 'toggle' : - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return timeoutRunning; - } - - if (null !== this.dataList.items[itemIndex]._data.settleTimeout && this.dataList.items[itemIndex]._data.settleTimeout >= 0) - { - timeoutRunning = true; - } - break; - } - - return timeoutRunning; -}; - -/** - * Settle an item after the settle time expires. - * The cached value (if any) gets assigned as a - * real value to the item and the item is updated. - * This is the settleTimeout callback. - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {Boolean} - True if the item is successfully settled - */ -List2Ctrl.prototype._settleItem = function(itemIndex) -{ - // exit if we don't have any items (nothing to show the focus) - if (!this.hasDataList()) - { - return false; - } - - // exit if the item index is out of range - if (isNaN(itemIndex) || itemIndex < 0 || itemIndex >= this.dataList.items.length) - { - return false; - } - - var item = this.dataList.items[itemIndex]; - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return false; - } - - // get settle value and set it as real value, and update item - var settleValue = item._data.settleValue; - - - - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - if (null != item._data.settleValue) - { - // set real value - item.value = settleValue; - this.updateItems(itemIndex, itemIndex); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - item._data.settleTimeout = null; - } - else if (this._isCheckBox(itemIndex)) - { - // Note: setting the real value is done in the helpers - switch (item.image1) - { - case 'checkbox' : - if (null != item._data.settleValue) - { - // set real value - this._setCheckBox(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - item._data.settleTimeout = null; - break; - - case 'radio' : - if (null != item._data.settleValue) - { - // set real value - this._setRadio(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - this._radioSettleTimeoutId = null; - break; - - case 'tick' : - if (null != item._data.settleValue) - { - // set real value - this._setTick(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - this._tickSettleTimeoutId = null; - break; - } - } - else - { - // item does not support settlement - return false; - } - - log.debug('Settle item: ' + itemIndex + ', value: ' + settleValue); - - // return success - return true; - -}; - - -/** - * ========================= - * MULTICONTROLLER AND VUI - * ========================= - */ - -/** - * Main multicontroller handler - * TAG: multicontroller-only, public - * ========================= - * @param {string} - multicontroller event - * @return {string} - event consumed - */ -List2Ctrl.prototype.handleControllerEvent = function(eventID) -{ - log.debug("handleController() called, eventID: " + eventID); - - /* - * eventID - * - acceptFocusInit (sent on instantiation) - * - acceptFocusFromLeft - * - acceptFocusFromRight - * - acceptFocusFromTop - * - acceptFocusFromBottom - * - lostFocus - * - touchActive - * ... - */ - - var response; - - // ignore certain MC events when the list is in motion by touch - if (this._inDrag || (this._inScroll && 'touch' === this._scrollNature)) - { - switch (eventID) - { - case "acceptFocusInit" : - case "acceptFocusFromLeft" : - case "acceptFocusFromRight" : - case "acceptFocusFromTop" : - case "acceptFocusFromBottom" : - case "lostFocus" : - case "touchActive" : - case "controllerActive" : - // pass these events - break; - default : - // ignore everything else - return "ignored"; - break; - } - } - - if (!this._inSecondaryMulticontroller) - { - // we are in primary multicontroller mode - switch (eventID) - { - case "acceptFocusInit": - // consume event by default - response = "consumed"; - - // Input mode change to multicontroller - this._inputMode = 'controller'; - /* - * this event is received every time a template is displayed - * if we already have preset a focus item, do not set it again - */ - // Show focus animation - this._showFocusAnimation = true; - if ('restore' != this._initialScrollMode) - { - this._hasFocus = true; - var itemToGainFocus = this._canGainFocus('controllerActive'); - if (-1 !== itemToGainFocus) - { - this._showFocus(itemToGainFocus); - } - else - { - if (this.hasDataList()) - { - // we have data list and there are no enabled items -> give focus to the left - response = 'giveFocusLeft'; - } - else - { - // we probably dont't have a data list -> wait untul we get it - this._showFocus(this.properties.focussedItem); - } - } - } - else - { - this._showFocus(this.properties.focussedItem); - } - break; - - case "acceptFocusFromLeft": - // Show focus animation - this._showFocusAnimation = true; - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromRight": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromTop": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromBottom": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "lostFocus": - this._hideFocus(); - this._hideFocusLetterIndex(); - this._hasFocus = false; - response = "consumed"; - break; - - case "touchActive": - // Input mode change to touch - this._inputMode = 'touch'; - this._hideFocus(); - response = "consumed"; - break; - - case "controllerActive": - response = "consumed"; - break; - - case "cw": - // Rotate Right (CW) - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCCW(); - break; - - case "ccw": - // Rotate Left (CCW) - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCCCW(); - break; - - case "downStart": - // Tilt Down Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCDown(); - - // schedule autoscroll behavior only if not in list reorder - if (!this._inListReorder) - { - clearTimeout(this._tiltHoldTimeoutId); // clear any redundant timeouts - this._tiltHoldTimeoutId = null; - log.debug('Schedule autoscroll tier 1'); - this._tiltHoldTimeoutId = setTimeout(function() { // schedule first autoscroll tier - this._beep('Long', 'Multicontroller'); // produce beep - log.debug('Start autoscroll tier 1'); - this._handleMCDown(); // do the first scroll down - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals - this._tiltHoldIntervalId = null; - log.debug('Schedule autoscroll tier 2'); - this._tiltHoldIntervalId = setInterval(this._handleMCDown.bind(this), this.properties.autoscrollTier1Interval); // schedule auto scroll down for first tier - if (!this._inLetterIndexMulticontroller) - { - this._tiltHoldTimeoutId = setTimeout(function() { // schedule second autoscroll tier only if not in letter index multicontroller - log.debug('Start autoscroll tier 2'); - this._scrollDownPage(); // do the first scroll down - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals from the first tier - this._tiltHoldIntervalId = null; - this._tiltHoldIntervalId = setInterval(this._scrollDownPage.bind(this), this.properties.autoscrollTier2Interval); // schedule auto scroll down for second tier - }.bind(this), this.properties.autoscrollTier2Timeout); - } - }.bind(this), this.properties.autoscrollTier1Timeout); - } - - break; - - case "down" : - // Tilt Down Stop - - if ('downStart' === this._lastControllerEvent) - { - log.debug('Clear any scheduled autoscrolls'); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - this._tiltHoldTimeoutId = null; - this._tiltHoldIntervalId = null; - - // schedule letter index select - if (this._inLetterIndexMulticontroller) - { - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - } - - response = "consumed"; - } - else - { - // ignore any downs without downStarts - response = "ignored"; - } - - break; - - case "upStart": - // Tilt Up Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCUp(); - - // schedule autoscroll behavior only if not in list reorder - if (!this._inListReorder) - { - clearTimeout(this._tiltHoldTimeoutId); // clear any redundant timeouts - this._tiltHoldTimeoutId = null; - log.debug('Schedule autoscroll tier 1'); - this._tiltHoldTimeoutId = setTimeout(function() { // schedule first autoscroll tier - this._beep('Long', 'Multicontroller'); // produce beep - log.debug('Start autoscroll tier 1'); - this._handleMCUp(); // do the first scroll up - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals - this._tiltHoldIntervalId = null; - log.debug('Schedule autoscroll tier 2'); - this._tiltHoldIntervalId = setInterval(this._handleMCUp.bind(this), this.properties.autoscrollTier1Interval); // schedule auto scroll up for first tier - if (!this._inLetterIndexMulticontroller) - { - this._tiltHoldTimeoutId = setTimeout(function() { // schedule second autoscroll tier only if not in letter index multicontroller - log.debug('Start autoscroll tier 2'); - this._scrollUpPage(); // do the first scroll up - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals from the first tier - this._tiltHoldIntervalId = null; - this._tiltHoldIntervalId = setInterval(this._scrollUpPage.bind(this), this.properties.autoscrollTier2Interval); // schedule auto scroll up for second tier - }.bind(this), this.properties.autoscrollTier2Timeout); - } - }.bind(this), this.properties.autoscrollTier1Timeout); - } - - break; - - case "up": - // Tilt Up Stop - - if ('upStart' === this._lastControllerEvent) - { - log.debug('Clear any scheduled autoscrolls'); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - this._tiltHoldTimeoutId = null; - this._tiltHoldIntervalId = null; - - // schedule letter index select - if (this._inLetterIndexMulticontroller) - { - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - } - - response = "consumed"; - } - else - { - // ignore any ups without upStarts - response = "ignored"; - } - - break; - - case "leftStart": - // Tilt Left Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - else if (this.letterIndexData.length && this._inLetterIndexMulticontroller) - { - // Exit letter index multicontroller mode - this._setLetterIndexMulticontroller(false); - } - else - { - // Return - log.debug("No TabsCtrl. Return giveFocusLeft..."); - response = "giveFocusLeft"; - } - break; - - case "left": - // Tilt Left Stop - - if ('leftStart' === this._lastControllerEvent) - { - response = "ignored"; - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - } - else - { - // ignore any lefts without leftStarts - response = "ignored"; - } - break; - - case "rightStart": - // Tilt Right Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - else if (this.letterIndexData.length && !this._inLetterIndexMulticontroller) - { - // Enter into letter index multicontroller mode - this._setLetterIndexMulticontroller(true); - response = "consumed"; - } - else - { - // Return - log.debug("No TabsCtrl. Return giveFocusRight..."); - response = "giveFocusRight"; - } - break; - - - case "right": - // Tilt Right Stop - - if ('rightStart' === this._lastControllerEvent) - { - response = "ignored"; - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - } - else - { - // ignore any rights without rightStarts - response = "ignored"; - } - break; - - - case "selectStart": - // SelectStart (press down) - - if (this._inLetterIndexMulticontroller) - { - // get the focussed letter index - var focussedLetterIndex = this._getFocussedLetterIndex(); - - // make focussed letter index hit - this._indexMakeHit(focussedLetterIndex); - } - else - { - // get the focussed index - var focussedIndex = this._getFocussedIndex(); - - // make focussed index hit - this._itemMakeHit(focussedIndex); - - // start longpress countdown - this._longPressTimeoutId = setTimeout(this._itemLongPress.bind(this, focussedIndex), this.properties.longPressTimeout); - } - - // always consume selectStart - response = "consumed"; - - break; - - case "select": - // Select (press down) - - if ('selectStart' === this._lastControllerEvent) - { - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // remove long press - this._itemRemoveLongPress(); - clearTimeout(this._longPressTimeoutId); // clear longpress timeout - - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // fire letter index select - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._letterIndexSelect(currentFocussedLetterIndex, 'Multicontroller'); - } - else - { - if (this.properties.listReorder) - { - // if we are reordering lists (hence pressing down does not produce select event) - if (!this._inListReorder) - { - - // get focussed index - var focussedIndex = this._getFocussedIndex(); - - // check if focussed index is indeed eligable for list reorder - if ('shortAndLong' === this.dataList.items[focussedIndex].itemBehavior) - { - // we are about to begin list reorder - this._enterListReorder(); - } - - } - else - { - // we finish list reorder - this._releaseListReorder(); - } - - } - else - { - // if we are in normal mode - not reordering list - - // get the focussed index - var focussedIndex = this._getFocussedIndex(); - - // does the element have secondary multicontroller behavior? - if (this._hasSecondaryMulticontroller(focussedIndex) && this._isSlider(focussedIndex)) - { - if (this.dataList.items[focussedIndex].allowAdjust) - { - // this item has secondary select and is adjustable slider -> enter into secondary multicontroller mode - this._setSecondaryMulticontroller(true); - } - else - { - // this item has secondary select but is not adjustable -> trigger focus - this._triggerFocus(); - } - } - else if (this._hasSecondaryMulticontroller(focussedIndex)) - { - // this item has secondary select -> enter into secondary multicontroller mode - this._setSecondaryMulticontroller(true); - } - else - { - // this is a regular item -> trigger focus - this._triggerFocus(); - } - - } - } - - // consume Select only after selectStart is consumed - response = "consumed"; - } - else - { - // ignore any selects without selectStarts - response = "ignored"; - } - - break; - - default: - // No action - response = "ignored"; - break; - } - - } - else - { - // we are in secondary multicontroller mode - response = this._handleControllerEventSecondary(eventID); - } - - // keep track of the last consumed event - if ('consumed' === response) - { - this._lastControllerEvent = eventID; - } - - /* - * returns - * - giveFocusLeft (control retains highlight unless it later gets lostFocus event) - * - giveFocusRight - * - giveFocusUp - * - giveFocusDown - * - consumed (always returned on select event, and if control adjusted highlight) - * - ignored (returned only if control doesn't know about focus) - */ - - log.debug("Event: " + eventID + " -> " + "Response: " + response); - - return response; - -}; - -/** - * Handle multicontroller clockwise rotation event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCCW = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleLetterIndexItems - 2; - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocusLetterIndex('down'); - } - else if (this._topLetterIndex === this.letterIndexData.length - this.properties.vivisibleLetterIndexItemssibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('down'); - } - - // we need to go back to the beginning in order to scroll up - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - - // schedule letter index select - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOneIndex(); - } - } - else - { - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleItems - 2; - - // if we are in list reorder mode - push the draggable item down and set focus on it - if (this._inListReorder) - { - this._reorderItemDown(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - // we are not in list reorder mode -> do regular focus scroll - else - { - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocus('down'); - } - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocus('down'); - } - else if (rfi > bottomFocusThreshold) - { - // the focus is past the bottom focus threshold -> do not move it any more - // this._showFocus('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOne(); - } - - } - - return 'consumed'; -}; - -/** - * Handle multicontroller counter clockwise rotation event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCCCW = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus down - this._showFocusLetterIndex('up'); - } - else if (this._topLetterIndex === 0) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('up'); - } - - // we need to go back to the beginning in order to scroll up - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - - // schedule letter index select - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi < 1) - { - this._scrollUpOneIndex(); - } - - } - else - { - - // if we are in list reorder mode - push the draggable item down and set focus on it - if (this._inListReorder) - { - this._reorderItemUp(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - // we are not in list reorder mode -> do regular focus scroll - else - { - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus up - this._showFocus('up'); - } - else if (this._topItem === 0) - { - // we are at the beginning -> move the focus to the first item - this._showFocus('up'); - } - else if (rfi === 0) - { - // the focus is on the top item -> do not move it any more - // this._showFocus('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus is at the first item - if (rfi < 1) - { - this._scrollUpOne(); - } - - } - - return 'consumed'; -}; - -/** - * Handle multicontroller down tilt event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCDown = function() -{ - - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleLetterIndexItems - 2; - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocusLetterIndex('down'); - } - else if (this._topLetterIndex === this.letterIndexData.length - this.properties.vivisibleLetterIndexItemssibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOneIndex(); - } - - } - else - { - if (this._inListReorder) - { - this._reorderItemDown(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - else - { - var bottomFocusThreshold = this.properties.visibleItems - 2; - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocus('down'); - } - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocus('down'); - } - else if (rfi > bottomFocusThreshold) - { - // the focus is past the bottom focus threshold -> do not move it any more - // this._showFocus('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOne(); - } - - } - - return 'consumed'; -}; - - -/** - * Handle multicontroller up tilt event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCUp = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus down - this._showFocusLetterIndex('up'); - } - else if (this._topLetterIndex === 0) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi < 1) - { - this._scrollUpOneIndex(); - } - - } - else - { - if (this._inListReorder) - { - // if we are in list reorder mode - push the draggable item up and set focus on it - this._reorderItemUp(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - var rfi = this._getRelativeFocussedIndex(); - } - else - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus up - this._showFocus('up'); - } - else if (this._topItem === 0) - { - // we are at the beginning -> move the focus to the first item - this._showFocus('up'); - } - else if (rfi === 0) - { - // the focus is on the top item -> do not move it any more - // this._showFocus('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus is at the first item - if (rfi < 1) - { - this._scrollUpOne(); - } - - } - - return 'consumed'; -}; - - -/** - * handle controller event and apply it on items that are in secondary multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {string} - multicontroller event - * @return {string} - event consumed - */ -List2Ctrl.prototype._handleControllerEventSecondary = function(eventID) -{ - // get the index - var focussedIndex = this._getFocussedIndex(); - - // handle event - switch (eventID) - { - case "up" : - // leave secondary multicontroller mode - this._setSecondaryMulticontroller(false); - if (!this._isLock(focussedIndex)) - { - // trigger focus only on non-lock items - this._triggerFocus(); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(focussedIndex, 'clear'); - } - - // move the focus up - this._showFocus('up'); - - // get relative focussed index after moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // we need to go back to the beginning in order to scroll up - if (rfi < 1) - { - this._scrollUpOne(); - } - break; - - - case "down" : - // leave secondary multicontroller mode - this._setSecondaryMulticontroller(false); - - if (!this._isLock(focussedIndex)) - { - // trigger focus only on non-lock items - this._triggerFocus(); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(focussedIndex, 'clear'); - } - - // move the focus down - this._showFocus('down'); - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleItems - 2; - // get relative focussed index after moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // we need to go to the end in order to scroll down - if (rfi >= bottomFocusThreshold) - { - this._scrollDownOne(); - } - break; - - case "leftStart" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass event to slider - this._activeSlider.slider.handleControllerEvent('leftStart'); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepDown(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusLeft(focussedIndex); - } - - break; - - case "left" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent('left'); - } - break; - - case "ccw" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent(eventID); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepDown(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusLeft(focussedIndex); - } - - break; - - case "rightStart" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass event to slider - this._activeSlider.slider.handleControllerEvent('rightStart'); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepUp(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusRight(focussedIndex); - } - - break; - - case "right" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent('right'); - } - - break; - - case "cw" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent(eventID); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepUp(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusRight(focussedIndex); - } - - break; - - case "select": - // leave secondary multicontroller mode and trigger focus - this._setSecondaryMulticontroller(false); - this._showFocus(this._lastItemWithFocus); - this._triggerFocus(); - break; - } - - // the secondary multicontroller events are always consumed - return "consumed"; -}; - -/** - * Set secondary multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {string} - multicontroller event - * @param {integer} - focussed index - * @return {void} - */ -List2Ctrl.prototype._setSecondaryMulticontroller = function(state, focussedIndex) -{ - // get focussed index - if (isNaN(focussedIndex)) - { - var focussedIndex = this._getFocussedIndex(); - } - - // do not set secondary multicontroller to true if the item is disabled - if (state && this.dataList.items[focussedIndex].disabled) - { - return; - } - - if (state) - { - // flag as we are in secondary multicontroller mode - this._inSecondaryMulticontroller = true; - - // add secondary focus class - var domItem = this._getDOMItem(focussedIndex); - if (domItem) - { - domItem.classList.add('secondaryFocus'); - } - - /** - * Fire select callback to notify apps that we are - * entering into secondary multicontroller mode. - * In most cases apps will ignore this event. - * Transition focus to subcontrols. - */ - if (this._isSlider(focussedIndex)) - { - // the target is a slider and can be adjusted -> set currently active slider - this._activeSlider = { - itemIndex : focussedIndex, // currently active slider index - slider : this._getSlider(focussedIndex) // currently active slider instance - }; - - // transition focus - this._activeSlider.slider.handleControllerEvent('acceptFocusFromTop'); - - // fire select callback for app notification - this._itemSelect(focussedIndex); - } - - /** - * Place focus highlight on the lock inline button - * if the target is a lock item - */ - if (this._isLock(focussedIndex)) - { - this._lockShowFocus(focussedIndex, 1); - } - - this._currentSecondaryMulticontrollerItem = focussedIndex; - } - else - { - this._inSecondaryMulticontroller = false; - - // remove secondary focus class - var domItem = this._getDOMItem(focussedIndex); - if (domItem) - { - domItem.classList.remove('secondaryFocus'); - } - - /** - * Transition focus from subcontrols. - */ - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // transition focus - this._activeSlider.slider.handleControllerEvent('lostFocus'); - } - - this._currentSecondaryMulticontrollerItem = null; - } - -}; - -/** - * Set letter index multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {boolean} - * @return {void} - */ -List2Ctrl.prototype._setLetterIndexMulticontroller = function(state, isTouch) -{ - if (state) - { - // hide focus from the main list and show it in the letter index - this._hideFocus(); - this._showFocusLetterIndex(this._getCurrentLetterIndex()); - this._inLetterIndexMulticontroller = true; - } - else - { - // hide focus from the letter index and show it in the main list - if (!isTouch) - { - this._showFocus(this._lastItemWithFocus); - } - this._inLetterIndexMulticontroller = false; - this._hideFocusLetterIndex(); - - // clear any scheduled letter index select - this._scheduleLetterIndexSelect(null, true); - } - -}; - -/** - * Manage focus highlight - * This is the single point for managing focus when requested from outside List2. - * (focusedItem setter, restoreContext) Manages reorder and focus as required. - * TAG: internal - * ========================= - * @param {number} - item index - * @return {integer} - the new focussed index - */ -List2Ctrl.prototype._manageFocus = function(item) -{ - if (this._inListReorder && !isNaN(item)) - { - this._reorderToIndex(item); - } - return this._showFocus(item); -} - -/** - * Show focus highlight - * This is the single point for showing the - * focus highlight - * TAG: internal - * ========================= - * @param {strig | number} - direction (up|down) or item index - * @param {boolean} - simulation mode: use to perform check on where the focus will end - * @return {integer} - the new focussed index - */ -List2Ctrl.prototype._showFocus = function(item, allowOffscreen, simulationMode, abortMode) -{ - log.debug("List2: _showFocus item, allowOffscreen, simulationMode, abortMode ", item, allowOffscreen, simulationMode, abortMode); - if (!this._hasFocus) - { - return; - } - - if (this._inputMode != 'controller') - { - // do not show the focus if the input mode is other than 'controller' - return; - } - - // exit if we don't have any items (nothing to show the focus) - if (!this.hasDataList()) - { - return; - } - - // do not show focus when in list reorder by touch - if (this._reorderTouchElt) - { - return; - } - - var abortMode = (true === abortMode); - - // do not change focussed index when we are in loading and no scrolling is allowed during that time - if (!this.properties.scrollingDuringLoading && this._inLoading && !abortMode) - { - return; - } - - var simulationMode = (true === simulationMode); - - // get the last focussed index (real and relative) - var lastFocussedIndex = this._getFocussedIndex(); - var lastRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // if we don't have previous focus, select the topmost - if (lastFocussedIndex == null) - { - lastFocussedIndex = this._topItem; - } - - // hide the focus only in real mode - if (!simulationMode) - { - this._hideFocus(); - } - - - var nextFocussedIndex = -1; - var useTransition = true; - var useRelativeIndeces = true; - - // find the next focussed element index - // NOTE: 'down' and 'up' are ued primarily when focussing with multicontroller - switch (item) - { - case 'down' : - // 'down' uses relative positioning - // the next one but not exceeding the visible items - - if (!simulationMode) - { - var nextRealFocussedIndex = this.m.min(lastFocussedIndex+1, this.dataList.itemCount-1); - while(this.dataList.items[nextRealFocussedIndex].disabled) - { - if (nextRealFocussedIndex >= this.dataList.itemCount-1) { - // we have reached the end of the list and nothing is found -> exit with current index - nextRealFocussedIndex = lastFocussedIndex; - break; - } - // hmmm, not enabled -> try the next one - nextRealFocussedIndex++; - } - // convert it to relative index - nextFocussedIndex = this._realToRelativeIndex(nextRealFocussedIndex); - } - else - { - nextFocussedIndex = this.m.min(lastRelativeFocussedIndex+1, this.properties.visibleItems-1); - } - break; - - case 'up' : - // 'up' uses relative positioning - // the previous one but not lower than the first one - if (!simulationMode) - { - var nextRealFocussedIndex = this.m.max(lastFocussedIndex-1, 0); - while(this.dataList.items[nextRealFocussedIndex].disabled) - { - if (nextRealFocussedIndex <= 0) { - // we have reached the beginning of the list and nothing is found -> exit with current index - nextRealFocussedIndex = lastFocussedIndex; - break; - } - // hmmm, not enabled -> try the previous one - nextRealFocussedIndex--; - } - // convert it to relative index - nextFocussedIndex = this._realToRelativeIndex(nextRealFocussedIndex); - } - else - { - nextFocussedIndex = this.m.max(lastRelativeFocussedIndex-1, 0); - } - break; - - default : - // move highlight instantly when jumping to an item - useTransition = false; - // absolute indeces use real positioning - useRelativeIndeces = false; - - if (!isNaN(item)) - { - // specific one -> make sure it is within the list bounds - nextFocussedIndex = this.m.max(this.m.min(item, this.dataList.itemCount-1), 0); - } - else - { - // the top one - nextFocussedIndex = this._topItem; - } - } - - // if we are in simulation -> return the would-be focussed index - if (simulationMode) - { - return nextFocussedIndex; - } - - // From here on, perform actual focus change - // ----------------------------------------- - var pos = 0; - if (useRelativeIndeces) - { - // convert relative nextFocussedIndex to position - pos = nextFocussedIndex * this.properties.itemHeight; - // convert nextFocussedIndex back to real one - nextFocussedIndex = this._relativeToRealIndex(nextFocussedIndex); - } - else - { - // are we allowed to focus off screen? - if (!allowOffscreen) - { - // check if focus is outside the screen and scroll the list so that it is inside - if (this._realToRelativeIndex(nextFocussedIndex) < 0) - { - // scrollt up - this._scrollTo(nextFocussedIndex, 0); - } - else if (this._realToRelativeIndex(nextFocussedIndex) > this.properties.visibleItems - 2) - { - // scroll down - this._scrollTo((nextFocussedIndex + 2) - this.properties.visibleItems, 0); - } - } - - // convert absolute nextFocussedIndex to position - pos = (nextFocussedIndex - this._topItem) * this.properties.itemHeight; - } - - - - - // find the new focussed element - var focussedElement = this._getDOMItem(nextFocussedIndex); - - - // do we have a focussed element? - if (focussedElement) - { - focussedElement.classList.add('focus'); - - // create first focus animation - if (this._showFocusAnimation) - { - this._showFocusAnimation = false; - this.firstFocusAnimationEndCallback = this._firstFocusAnimationEndCallback.bind(this); - focussedElement.addEventListener("animationend", this.firstFocusAnimationEndCallback, false); - focussedElement.classList.add('firstFocus'); - } - } - - // set letter index position - this._setLetterIndexPosition(nextFocussedIndex); - - // store focussed item - this._lastItemWithFocus = nextFocussedIndex; - - return nextFocussedIndex; -}; - -/** - * First focus animation end callback that is fired - * when the first focus animation finishes. - * It removes the firstFocus class from the event's target - * and clears any subsequent animation callbacks - * TAG: internal - * ========================= - * @param {AnimationEvent} - * @return {void} - */ -List2Ctrl.prototype._firstFocusAnimationEndCallback = function(e) -{ - e.target.classList.remove('firstFocus'); - e.target.removeEventListener("animationend", this.firstFocusAnimationEndCallback, false); - this.firstFocusAnimationEndCallback = null; -}; - -/** - * Hide focus highlight - * This is the single point for hiding the - * focus highlight - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._hideFocus = function() -{ - // Preserve focussed element - this._lastItemWithFocus = this._getFocussedIndex(); - - for (var i=0; i disable select only if the slider is adjustable - if (this.dataList.items[focussedIndex].allowAdjust) - { - fireSelect = false; - } - - // reset currently active slider - this._activeSlider = null; - } - - if (this._isStep(focussedIndex)) - { - params = { - value : this.dataList.items[focussedIndex].value, - finalAdjustment : true, - }; - } - - /** - * Trigger the currently selected button - */ - if (this._isLock(focussedIndex)) - { - var focussedButton = this._lockGetFocus(focussedIndex); - var actionResult = this._lockActivate(focussedIndex, focussedButton); - this._lockShowFocus(focussedIndex, 'clear'); - params = { additionalData : actionResult }; - } - - // prevent select on disabled items - if (this.dataList.items[focussedIndex].disabled) - { - fireSelect = false; - } - - // everything looks ok -> call internal _itemSelect() method if the item permits it - if (fireSelect) - { - // fire select only if no long press / hold start has been issued - if (!this._longPressIssued) - { - // produce beep - this._beep('Short', 'Multicontroller'); - - this._itemSelect(focussedIndex, params); - } - // otherwise fire holdStop Callback on shortAndHold items - else if ('shortAndHold' === this.dataList.items[focussedIndex].itemBehavior) - { - this._itemHoldStop(focussedIndex); - } - } - - // lower long-press/hold-start flag - this._longPressIssued = false; - - } -}; - -/** - * Check whether the list can gain focus. In certain cases focus cannot be - * shown (e.g. when there are no items available) or if it can gain it - * it should be restored on the nearest available item if the one that - * previously had focus is disabled. - * TAG: internal - * ========================= - * @param {MouseEvent|Number} - optional argument. If passed a check will be performed whether the target item is disabled - * @return {integer} - the item that will have focus. If no item can have focus, return -1 - */ -List2Ctrl.prototype._canGainFocus = function(e) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return -1; - } - - var itemToGainFocus = -1; - - // check if we are touching the element - if (typeof e === 'object') - { - var targetItem = this._getTargetItem(e); - - // the item is enabled and can gain focus - if (-1 !== targetItem && !this.dataList.items[targetItem].disabled) - { - itemToGainFocus = targetItem; - } - // the item is disabled -> find the closest enabled to it - else - { - var nearestItem = this._getNearestEnabledItem(targetItem); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - } - } - else if (typeof e === 'number') - { - if (-1 !== e && !this.dataList.items[e].disabled) - { - itemToGainFocus = e; - } - // the item is disabled -> find the closest enabled to it - else - { - var nearestItem = this._getNearestEnabledItem(e); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - } - } - // check whether this is called from the controllerActive event handler - else if ('controllerActive' === e && this.properties.focussedItem > 0 && this.dataList.items[this.properties.focussedItem] && !this.dataList.items[this.properties.focussedItem].disabled) - { - itemToGainFocus = this.properties.focussedItem; - } - // check if last item with focus is disabled - else if (this.dataList.items[this._lastItemWithFocus] && !this.dataList.items[this._lastItemWithFocus].disabled) - { - itemToGainFocus = this._lastItemWithFocus; - } - else - { - // show focus on the closest available item to the last with focus - var nearestItem = this._getNearestEnabledItem(this._lastItemWithFocus); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - - // if we have tabs and no enabled items, always show focus on the first line allowing tabs navigation - if (this.tabsCtrl && -1 === itemToGainFocus) - { - itemToGainFocus = this._topItem; - } - } - - return itemToGainFocus; -}; - -/** - * Get focussed index - * TAG: internal, helper - * ========================= - * @return {integer} - */ -List2Ctrl.prototype._getFocussedIndex = function() -{ - var focussedIndex = this._lastItemWithFocus; - - for (var i=0; i - */ -List2Ctrl.prototype._getFocussedElement = function() -{ - var focussedElement = null; - var focussedIndex = this._getFocussedIndex(); - for (var i=0; i= this.dataList.itemCount) - { - currentItem = null; - } - else - { - while (this.dataList.items[currentItem].disabled) - { - if (currentItem >= this.dataList.itemCount-1 || currentItem <= 0) - { - // this is the end/beginning of the array -> nothing is found so return Null - currentItem = null; - break; - } - currentItem = ('down' === direction) ? currentItem+1 : currentItem-1; - } - } - return currentItem; -}; - -/** - * Get nearest enabled item in all directions - * If there are two enabled items in both directions that are - * at equal distances from the reference item, the one below is - * returned. - * TAG: internal, helper - * ========================= - * @param {integer} - from which item to search - * @return {integer} - the next enabled item. - * If nothing is found, return Null - */ -List2Ctrl.prototype._getNearestEnabledItem = function(fromItem) -{ - var nearestEnabledItem = null; - - var nearestDown = this._getNearestEnabledItemByDirection(fromItem, 'down'); - var nearestUp = this._getNearestEnabledItemByDirection(fromItem, 'up'); - - if (null === nearestDown === nearestUp) - { - // no enabled item is found - nearestEnabledItem = null; - } - else if (null === nearestDown) - { - // nothing is found below -> return the one above - nearestEnabledItem = nearestUp; - } - else if (null === nearestUp) - { - // nothing is found above -> return the one below - nearestEnabledItem = nearestDown; - } - else - { - var differenceDown = this.m.abs(fromItem - nearestDown); - var differenceUp = this.m.abs(fromItem - nearestUp); - if (differenceDown === differenceUp) - { - // equally spaced -> return the one below - nearestEnabledItem = nearestDown; - } - else - { - // differently spaced -> return the closer one - nearestEnabledItem = (differenceDown < differenceUp) ? nearestDown : nearestUp; - } - } - - return nearestEnabledItem; -}; - -/** - * Get secondary select status of an item - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {boolean} - whether the item has secondary multicontroller - */ -List2Ctrl.prototype._hasSecondaryMulticontroller = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var hasSecondaryMulticontroller = false; - - var type = this.dataList.items[itemIndex].itemStyle; - for (var i=0; i return current position - newPos = this.scroller.offsetTop; - } - else - { - var bi = this._getNearestEnabledItemByDirection(this._topItem+this.properties.visibleItems-2, 'down'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopItem = bi + 2 - this.properties.visibleItems; - newPos = -newTopItem * this.properties.itemHeight; - newPos = this.m.max(newPos, this._maxScrollY); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - } - else - { - newPos = this.scroller.offsetTop; - } - } - - // set scroll nature - this._scrollNature = 'item'; - - // return the new position - return newPos; -}; - -/** - * Scroll up by one element - * If the element that will be placed at the top - * position is disabled, the list will be scrolled to - * the nearest available enabled item - * TAG: internal - * ========================= - * @return {integer} - new position of the scroller in px - */ -List2Ctrl.prototype._scrollUpOne = function() -{ - var newPos = 0; - - // check whether we are in the top-most position - if (this._topItem === 0) - { - // we can't scroll up any more -> return current position - newPos = this.scroller.offsetTop; - } - else - { - var bi = this._getNearestEnabledItemByDirection(this._topItem+1, 'up'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopItem = bi - 1; - newPos = -newTopItem * this.properties.itemHeight; - newPos = this.m.min(newPos, 0); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - } - else - { - newPos = this.scroller.offsetTop; - } - } - - // set scroll nature - this._scrollNature = 'item'; - - // return the new position - return newPos; -}; - -/** - * Scroll down by one page (screen) - * TAG: internal - * ========================= - * @return {string} - paged | atlimit | onepage - */ -List2Ctrl.prototype._scrollDownPage = function() -{ - // get list position - var listPosition = this._getListPosition(); - - // set return status - var returnStatus = 'onepage'; - - // determine behavior by the list position - switch (listPosition) - { - // we have only one page - case 'onepage' : - returnStatus = 'onePage'; - break; - - // we are ate the bottom - case 'bottom' : - // place focus on the last available item - var nei = this._getNearestEnabledItemByDirection(this._topItem + this.properties.visibleItems, 'up'); - if (null != nei && nei >= this._topItem) - { - this._showFocus(nei); - } - - // set return status - returnStatus = 'atLimit'; - break; - - // we are close to the bottom - case 'bottomclose' : - // search for enabled item in the bottom screen - var nei = this._getNearestEnabledItemByDirection(this.dataList.itemCount - 1, 'up'); - if (null != nei && nei >= this.dataList.itemCount - this.properties.visibleItems) - { - // place focus on the last available item and scroll to the bottom - this._showFocus(nei); - this._scrollTo(this.dataList.itemCount - this.properties.visibleItems); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // set return status - returnStatus = 'atLimit'; - } - break; - - // we are somewhere else - default : - // get current relative focussed index - var currentRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // get future absolute focussed index - var futureAbsoluteFocussedIndex = this.m.min(this._topItem + this.properties.visibleItems + currentRelativeFocussedIndex, this.dataList.itemCount-1); - - // check whether the future absolute focussed index is enabled - if (!this.dataList.items[futureAbsoluteFocussedIndex].disabled) - { - // item is enabled -> we can page down - var newPos = -(this._topItem + this.properties.visibleItems) * this.properties.itemHeight; // calculate new position - newPos = this.m.max(newPos, this._maxScrollY); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - - // place the focus on the future absolute focussed index - this._showFocus(futureAbsoluteFocussedIndex); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // item is disabled -> search for nearest enabled item from the future top item down - var nei = this._getNearestEnabledItemByDirection(this._topItem + this.properties.visibleItems, 'down'); - if (null != nei) - { - // we have found such item -> scroll down so it is in the same relative position - this._scrollTo(nei - currentRelativeFocussedIndex); - - // place the focus on the enabled item - this._showFocus(nei); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // no more enabled items -> set return status and do nothing - returnStatus = 'atLimit'; - } - } - break; - - } - - return returnStatus; -}; - -/** - * Scroll up by one page (screen) - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollUpPage = function() -{ - - // get list position - var listPosition = this._getListPosition(); - - // set return status - var returnStatus = ''; - - // determine behavior by the list position - switch (listPosition) - { - // we have only one page - case 'onepage' : - returnStatus = 'onePage'; - break; - - // we are ate the top - case 'top' : - // place focus on the first available item - var nei = this._getNearestEnabledItemByDirection(-1, 'down'); - if (null != nei && nei <= this.properties.visibleItems-1) - { - this._showFocus(nei); - } - - // set return status - returnStatus = 'atLimit'; - break; - - // we are close to the top - case 'topclose' : - // search for enabled item in the top screen - var nei = this._getNearestEnabledItemByDirection(0, 'down'); - if (null != nei && nei <= this.properties.visibleItems-1) - { - // place focus on the last available item and scroll to the top - this._showFocus(nei); - this._scrollTo(0); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // set return status - returnStatus = 'atLimit'; - } - break; - - // we are somewhere else - default : - // get current relative focussed index - var currentRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // get future absolute focussed index - var futureAbsoluteFocussedIndex = this.m.max(this._topItem - this.properties.visibleItems + currentRelativeFocussedIndex, 0); - - // check whether the future absolute focussed index is enabled - if (!this.dataList.items[futureAbsoluteFocussedIndex].disabled) - { - // item is enabled -> we can page down - var newPos = -(this._topItem - this.properties.visibleItems) * this.properties.itemHeight; // calculate new position - newPos = this.m.min(newPos, 0); // constrain it to the min scroll - this._performScroll(newPos); // do the scroll - - // place the focus on the future absolute focussed index - this._showFocus(futureAbsoluteFocussedIndex); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // item is disabled -> search for nearest enabled item from the future bottom item up - var nei = this._getNearestEnabledItemByDirection(this._topItem - this.properties.visibleItems, 'up'); - if (null != nei) - { - // we have found such item -> scroll down so it is in the same relative position - this._scrollTo(nei - currentRelativeFocussedIndex); - - // place the focus on the enabled item - this._showFocus(nei); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // no more enabled items -> set return status and do nothing - returnStatus = 'atlimit'; - } - } - break; - - } - - return returnStatus; -}; - -/** - * Scroll to the top - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollTop = function() -{ - this._performScroll(0); // do the scroll -}; - -/** - * Scroll to the bottom - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollBottom = function() -{ - this._performScroll(this._maxScrollY); // do the scroll -}; - -/** - * Do the actual scroll - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @param {duration} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._performScroll = function(pos, duration) -{ - - // if scrolling during loading is not allowed - if (!this.properties.scrollingDuringLoading && this._inLoading) - { - return; - } - - // if menu can be scrolled (it has enough list items) - if (this._isScrollable) - { - // make it snappy - var newPos = this._getSnapPosition(pos); - - // start animation - this._animateScroll(pos, duration); - } -}; - -/** - * Animate the scroll - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @param {duration} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._animateScroll = function(pos, time) -{ - if (time == undefined || time == null) - { - time = this.properties.swipeAnimationDuration; - } - - if (null !== this.scrollerAnimationEndCallback) - { - // remove any redundant animationEnd listeners - this.scroller.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - this.scrollerAnimationEndCallback = null; - } - - // animate scroller or directly call the animation end callback if the time is 0 - this.scroller.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.scrollerAnimationEndCallback = this._scrollerAnimationEnd.bind(this); - this.scroller.addEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - this.scroller.style.top = pos + 'px'; - - this._inScroll = false; - if (time > 0) - { - this._inScroll = true; - } - - // set top item and update display - this._updateScrollIndicator(pos, time); - this._setTopListItem(pos); - this._updateRange(); -}; - -/** - * Abort any ongoing scroll and reset any flags - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._abortScroll = function(e) -{ - // aborting scroll is possible only while the list is scrolling - if (false === this._inScroll) - { - return; - } - - // get target item - var targetItem = this._getTargetItem(e); - - // check if target item is enabled - if (this.dataList.items[targetItem] && !this.dataList.items[targetItem].disabled) - { - // show focus there - this._showFocus(targetItem, true, false, true); - } - else - { - // restore focus - this._restoreFocus(); - } - - // get current snapped position - var snapPos = this._getSnapPosition(this.scroller.offsetTop); - this._animateScroll(snapPos, 0); - - // reset any touch flags - this._inDrag = false; - this._inScroll = false; - this._scrollNature = null; - this._inHorizontalDrag = null; - this._hDragItem = null; - this._stopSelect = false; - this._startTime = 0; - this._startItem = null; - this._startDOMItem = null; - this._activeSlider = null; - this._startY = 0; - this._startX = 0; -}; - - -/** 2. LIST SNAPPING **/ - -/** - * Get snap position depending on the new scroller position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {integer} - position snapped to the nearest item edge - */ -List2Ctrl.prototype._getSnapPosition = function(pos) -{ - return this.properties.itemHeight * (Math.round(pos / this.properties.itemHeight)); -}; - -/** - * Get snap (above) position depending on the new scroller position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {integer} - position snapped to the nearest above item edge - */ -List2Ctrl.prototype._getSnapPositionAbove = function(pos) -{ - return this.properties.itemHeight * (Math.floor(pos / this.properties.itemHeight)); -}; - -/** - * Scroll list to an even snap position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {void} - */ -List2Ctrl.prototype._snap = function(pos) -{ - // the snap position is the same as the current - if (pos == this._y) - { - return; - } - - // the user has reached the end of the list and there will be no animation - if (pos == this._maxScrollY) - { - // set top item and bring focus on the screen - this._setTopListItem(pos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex < this._topItem) - { - this._restoreFocus(); - } - return; - } - else if (pos === this._minScrollY) - { - // set top item and bring focus on the screen - this._setTopListItem(pos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex > this._topItem + this.properties.visibleItems - 1) - { - this._restoreFocus(); - } - return; - } - - var snapPos = this._getSnapPosition(pos); - - // start animation - this._animateScroll(snapPos); -}; - -/** 3. LIST SWIPING AND PHYSICS **/ - -/** - * Perform swipe based on physics definition - * TAG: touch-only, internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._startSwipe = function(distance, time) -{ - // physics calculations - var momentumY = this._momentum(distance, time, -this._y, this._maxScrollY < 0 ? this._scrollerH - this._maskH + this._y - this._minScrollY : 0, 0); - - /* ANIMATE THE SCROLLER */ - var newPos = this.m.min(this.m.max(this._y + momentumY.dist, this._maxScrollY), 0); - var swipeDuration = momentumY.time; - - // make it snappy - newPos = this._getSnapPosition(newPos); - - // start animation - if (!isNaN(newPos) && newPos !== this.scroller.offsetTop) // only if newPos is a number and the list is worth scrolling - { - this._animateScroll(newPos, swipeDuration); - } - else - { - // set top item and bring focus on the screen - this._setTopListItem(newPos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex < this._topItem) - { - this._restoreFocus(); - } - } -}; - -/** - * Perform swipe based on physics definition - * TAG: touch-only, internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._startSwipeIndex = function(distance, time) -{ - // physics calculations - var momentumY = this._momentum(distance, time, -this._yIndex, this._maxScrollYIndex < 0 ? this._scrollerHIndex - this._maskH + this._yIndex - this._minScrollYIndex : 0, 0); - - /* ANIMATE THE LETTER INDEX SCROLLER */ - var newPos = this.m.min(this.m.max(this._yIndex + momentumY.dist, this._maxScrollYIndex), 0); - var swipeDuration = momentumY.time; - - // make it snappy - newPos = this._getIndexSnapPosition(newPos); - - // start animation - if (!isNaN(newPos) && newPos !== this.letterIndex.offsetTop) // only if newPos is a number and the letter index is worth scrolling - { - // start animation - this._animateLetterIndex(newPos, swipeDuration); - } - else - { - // set top letter index and bring focus on the screen - this._setTopLetterIndex(newPos); - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (focussedLetterIndex < this._topLetterIndex) - { - this._showFocusLetterIndex(this._topLetterIndex); - } - } -}; - -/** - * @param {integer} - dragged distance - * @param {time} - time dragged - * @param {integer} - this._y - * @param {integer} - this._maxScrollY < 0 ? this._scrollerH - this._maskH + this._y - this._minScrollY : 0 - * @param {integer} - 0 - */ -List2Ctrl.prototype._momentum = function (dist, time, maxDistUpper, maxDistLower, size) -{ - var deceleration = this.properties.deceleration, - speed = this.m.abs(dist) / time, - newDist = (speed * speed) / (2 * deceleration), - newTime = 0, outsideDist = 0; - - // Proportinally reduce speed if we are outside of the boundaries - if (dist > 0 && newDist > maxDistUpper) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistUpper = maxDistUpper + outsideDist; - speed = speed * maxDistUpper / newDist; - newDist = maxDistUpper; - } else if (dist < 0 && newDist > maxDistLower) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistLower = maxDistLower + outsideDist; - speed = speed * maxDistLower / newDist; - newDist = maxDistLower; - } - - newDist = newDist * (dist < 0 ? -1 : 1); - newTime = speed / deceleration; - - return { dist: newDist, time: Math.round(newTime) }; -}; - - -/** - * ========================= - * LETTER INDEX - * ========================= - */ - -/** - * Letter index select - * scrolls list to letter index - * TAG: internal - * ========================= - * @param {integer} - the new position of the scroller in element index. - * @return {void} - */ -List2Ctrl.prototype._letterIndexSelect = function(letterIndex, eventCause) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - - // check if if letterIndex is a valid index - if (letterIndex < 0 || letterIndex >= this.letterIndexData.length) - { - return; - } - - // check for disabled letter index (no valid item index) - if (this.letterIndexData[letterIndex].disabled) - { - return; - } - - // set scroll nature - this._scrollNature = 'letterIndex'; - - // all seems fine -> scroll - this._scrollTo(this.letterIndexData[letterIndex].itemIndex - 1); - - // set letter index active position - this._setLetterIndexPosition(this.letterIndexData[letterIndex].itemIndex); - - // update last item with focus so that focus gets restored in the correct place - this._lastItemWithFocus = this.letterIndexData[letterIndex].itemIndex; - - // set proper event cause - var eventCause = ('Multicontroller' != eventCause && 'Touch' != eventCause) ? null : eventCause; - // produce beep - this._beep('Short', eventCause); - - // dispatch letter select event - var eventData = { - index : letterIndex, - label : this.letterIndexData[letterIndex].label, - itemIndex : this.letterIndexData[letterIndex].itemIndex, - }; - this._listEvent(this._EVENTS.LETTER_SELECT, eventData); -}; - -/** - * Schedule letter index select after some time - * TAG: internal - * ========================= - * @param {integer} - the letter index - * @param {boolean} - clear any timeouts without scheduling a new one - * @return {void} - */ -List2Ctrl.prototype._scheduleLetterIndexSelect = function(letterIndex, clear) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - - // clear previous timeout - clearTimeout(this._indexSelectTimeoutId); - this._indexSelectTimeoutId = null; - - if (!clear) - { - // if no letter index is passed, get the currently focussed one - if (undefined === letterIndex) - { - // check whether we already have focussed letter index - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (null != focussedLetterIndex) - { - // if yes, schedule to that one - letterIndex = focussedLetterIndex; - } - } - - // set scroll timeout - this._indexSelectTimeoutId = setTimeout(function() { - this._letterIndexSelect(letterIndex); - }.bind(this), this.properties.letterIndexSelectTimeout); - } -}; - -/** - * Schedule background letter index select after some time. - * Background select occurs without affecting the letter index - * scroll position. This is intended to be used only programatically. - * TAG: internal - * ========================= - * @param {integer} - the letter index - * @param {boolean} - clear any timeouts without scheduling a new one - * @return {void} - */ -List2Ctrl.prototype._scheduleBackgroundLetterIndexSelect = function(letterIndex, clear) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - // check for a valid letter index item - if (letterIndex < 0 || letterIndex >= this.letterIndexData.length) - { - log.warn('List2: a valid letter index expected. Letter index passed": ' + letterIndex); - return; - } - // check for disabled letter index (no valid item index) - if (this.letterIndexData[letterIndex].disabled) - { - return; - } - // clear previous timeout - clearTimeout(this._indexSelectTimeoutId); - this._indexSelectTimeoutId = null; - if (!clear) - { - // activate the new index - this._setCurrentLetterIndex(letterIndex); - // set scroll timeout - this._indexSelectTimeoutId = setTimeout(function() { - // set scroll nature - this._scrollNature = 'letterIndex'; - // all seems fine -> scroll - this._scrollTo(this.letterIndexData[letterIndex].itemIndex - 1); - }.bind(this), this.properties.letterIndexSelectTimeout); - } -}; -/** - * Animate the letter index - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @param {integer} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._animateLetterIndex = function(pos, time) -{ - if (time == undefined || time == null) - { - time = this.properties.swipeAnimationDuration; - } - - // animate letter index - this.letterIndex.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.letterIndexAnimationEndCallback = this._letterIndexAnimationEnd.bind(this); - this.letterIndex.addEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - this.letterIndex.style.top = pos + 'px'; - - // set top letter index - this._setTopLetterIndex(pos); -}; - -/** - * Set top letter index item depending on the position - * TAG: internal - * ========================= - * @param {integer} - position in px at which the letter should be - * @return {void} - */ -List2Ctrl.prototype._setTopLetterIndex = function(pos) -{ - // pos should be number for proper topLetterIndex calculation - if (!isNaN(pos)) - { - this._prevTopLetterIndex = this._topLetterIndex; - this._topLetterIndex = -(Math.round(pos / this.properties.letterIndexHeight)); - } -}; - -/** - * Get snap position of letter index - * depending on the new letter index position - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @return {integer} - position snapped to the nearest item edge - */ -List2Ctrl.prototype._getIndexSnapPosition = function(pos) -{ - return this.properties.letterIndexHeight * (Math.round(pos / this.properties.letterIndexHeight)); -}; - -/** - * Scroll letter index to an even snap position - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @return {void} - */ -List2Ctrl.prototype._snapIndex = function(pos) -{ - // the snap position is the same as the current - if (pos == this._yIndex) - { - return; - } - - // the user has reached the end of the list and there will be no animation - if (pos == this._maxScrollYIndex) - { - // set top item and bring focus on the screen - this._setTopLetterIndex(pos); - var focussedIndex = this._getFocussedLetterIndex(); - if (focussedIndex < this._topLetterIndex) - { - this._restoreLetterIndexFocus(); - } - return; - } - - var snapPos = this._getIndexSnapPosition(pos); - - // start animation - this._animateLetterIndex(snapPos); -}; - -/** - * Scroll to a specific index item - * TAG: internal - * ========================= - * @param {integer | string} - letter or letter index - * @return {void} - */ -List2Ctrl.prototype._scrollToIndex = function(letter) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - var targetIndex = -1; - - if (!isNaN(letter)) - { - // we are going to a letter index - targetIndex = this.m.max(this.m.min(letter, this.letterIndexData.length-1), 0); // constrain the index - } - else if (typeof letter === 'string'); - { - // we are searching for the letter index of the letter - for (var i=0, l=this.letterIndexData.length; i above or below the visible range - // NOTE: if the letter is within the visible range this should not get called at all - if (-1 != targetIndex && targetIndex >= this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - // look below -> find closest target index so that the focus is visible and apply target index correction - targetIndex = targetIndex - this.properties.visibleLetterIndexItems + 1; - } - else if (-1 != targetIndex && targetIndex <= this._topLetterIndex) - { - // look above -> find closest target index so that the focus is visible - // correction: the taget index is the top item whereas the item in question is the second one - targetIndex--; - } - else - { - // we don't scroll if the target is visible - return; - } - - // do the scroll - var newPos = -(targetIndex) * this.properties.letterIndexHeight; // calculate new position - newPos = this.m.max(this.m.min(newPos, this._minScrollYIndex), this._maxScrollYIndex); // constrain it to scroll bounds - this._animateLetterIndex(newPos); // start animation - - -}; - -/** - * Scroll down by one or more index elements - * TAG: internal - * ========================= - * @return {integer} - new position of the letter index in px - */ -List2Ctrl.prototype._scrollDownOneIndex = function() -{ - var newPos = 0; - - // check whether we are in the bottom-most position - if (this._topLetterIndex === this.letterIndexData.length - this.properties.visibleLetterIndexItems) - { - // we can't scroll down any more -> return current position - newPos = this.letterIndex.offsetTop; - } - else - { - var bi = this._getNearestEnabledLetterByDirection(this._topLetterIndex+this.properties.visibleLetterIndexItems-2, 'down'); - // do not scroll if no enabled letters are found - if (null != bi) - { - var newTopLetter = bi + 2 - this.properties.visibleLetterIndexItems; - newPos = -newTopLetter * this.properties.letterIndexHeight; - newPos = this.m.max(newPos, this._maxScrollYIndex); // constrain it to the max scroll - this._animateLetterIndex(newPos); // do the scroll - } - else - { - newPos = this.letterIndex.offsetTop; - } - } - - // return the new position - return newPos; -}; - -/** - * Scroll up by one or more index elements - * TAG: internal - * ========================= - * @return {integer} - new position of the letter index in px - */ -List2Ctrl.prototype._scrollUpOneIndex = function() -{ - var newPos = 0; - - // check whether we are in the top-most position - if (this._topLetterIndex === 0) - { - // we can't scroll up any more -> return current position - newPos = this.letterIndex.offsetTop; - } - else - { - var bi = this._getNearestEnabledLetterByDirection(this._topLetterIndex+1, 'up'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopLetter = bi - 1; - newPos = -newTopLetter * this.properties.letterIndexHeight; - newPos = this.m.min(newPos, this._minScrollYIndex); // constrain it to the min scroll - this._animateLetterIndex(newPos); // do the scroll - } - else - { - newPos = this.letterIndex.offsetTop; - } - } - - // return the new position - return newPos; -}; - -/** - * Set letter index position relative to the - * focussed item in the scroller - * TAG: internal - * ========================= - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._setLetterIndexPosition = function(index) -{ - // check for letter index - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return false; - } - - // get focussed item - var focussedIndex; - if (!isNaN(index)) - { - focussedIndex = index; - } - else - { - focussedIndex = this._getFocussedIndex(); - } - - // get the new index - var targetIndex = -1; - for (var i=this._letterIndexDataSorted.length-1; i>=0; i--) - { - if (focussedIndex >= this._letterIndexDataSorted[i].itemIndex) - { - targetIndex = this._letterIndexDataSorted[i].publicIndex; - break; - } - } - - // show focus on target index - if (targetIndex > -1) - { - this._setCurrentLetterIndex(targetIndex); - } - - // check if letter index scrolling is needed - if (targetIndex >= this._topLetterIndex && targetIndex < this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - return; - } - - // scroll to target index - if (targetIndex > -1) - { - this._scrollToIndex(targetIndex); - } -}; - -/** - * Set currently active letter index - * TAG: internal - * ========================= - * @param {integer} - letter item index - * @return {integer} - the currently active letter index - */ -List2Ctrl.prototype._setCurrentLetterIndex = function(letter) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return null; - } - - var targetIndex = this.m.max(this.m.min(letter, this.letterIndexData.length-1), 0); // constrain the index - - - // remove any previously active letter index - for (var i=0, l=this.letterIndexData.length; i= this.letterIndexData.length-1) - { - // nothing is found, return the old one - targetIndex = lastFocussedIndex; - break; - } - } - break; - - case 'up' : - // we are searching for the previous - targetIndex = lastFocussedIndex; - while (targetIndex > 0) - { - targetIndex--; - if (-1 != this.letterIndexData[targetIndex].itemIndex) - { - break; - } - else if (targetIndex <= 0) - { - // nothing is found, return the old one - targetIndex = lastFocussedIndex; - break; - } - } - break; - - default : - // we are searching for the index of the letter - for (var i=0, l=this.letterIndexData.length; i= letterIndexCount) - { - currentLetter = null; - } - else - { - while (this.letterIndexData[currentLetter].disabled) - { - if (currentLetter >= letterIndexCount-1 || currentLetter <= 0) - { - // this is the end/beginning of the array -> nothing is found so return Null - currentLetter = null; - break; - } - currentLetter = ('down' === direction) ? currentLetter+1 : currentLetter-1; - } - } - return currentLetter; -}; - -/** - * Exit hit state of the currently hit index item - * ========================= - * @return {void} - */ -List2Ctrl.prototype._indexRemoveHit = function() -{ - for (var i=0, l=this.letterIndexData.length; i bring back reorder item - if (this._inListReorder && this._reorderTouchElt) - { - this._bringReorderItem(); - } - - // Focus adjust after animation ends - - // get list position - var listPosition = null; - if (0 === this._topItem) - listPosition = 'top'; - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - listPosition = 'bottom'; - else - listPosition = 'middle'; - - // get scroll direction - var scrollDirection = null; - if (this._prevTopItem > this._topItem) - scrollDirection = 'up'; - else if (this._prevTopItem < this._topItem) - scrollDirection = 'down'; - else - scrollDirection = 'none'; - - // get scroll size - var scrollSize = this.m.abs(this._prevTopItem - this._topItem); - - if ('page' === this._scrollNature) - { - // do not place focus, it should have been done by the paging function - } - else if ('item' === this._scrollNature) - { - // show focus - this._showFocus(this._lastItemWithFocus, true); - } - else - { - // check if focussed index is outside the screen and we actually have a scroll - if (scrollSize > this.properties.visibleItems-1 && !this._inLetterIndexMulticontroller) - { - // restore focus - this._restoreFocus(); - } - else if (scrollSize > 0 && !this._inLetterIndexMulticontroller) - { - // check if the focus is just slightly outside the visible range - if (this._lastItemWithFocus < this._topItem || this._lastItemWithFocus >= this._topItem + this.properties.visibleItems) - { - // restore focus - this._restoreFocus(); - } - else - { - // else the focus remains on the screen -> only set letter index position - this._setLetterIndexPosition(this._getFocussedIndex()); - } - } - else - { - // we don't have a scroll -> nothing to do here - } - } - - // lower _inScroll flag - this._inScroll = false; - - // reset scroll nature - this._scrollNature = null; - - // dispatch scroll end event - this._listEvent(this._EVENTS.SCROLL_END, {scrollPosition:this._topItem}); -}; - -/** - * Restore focus after it has been left off screen. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._restoreFocus = function() -{ - // check if the top item is enabled - if (!this.dataList.items[this._topItem].disabled) - { - this._showFocus(this._topItem, false, false, true); - } - // top item is disabled, find the nearest enabled item below the top one - else - { - var neiDown = this._getNearestEnabledItem(this._topItem, 'down'); - // check if the item is on screen - if (null != neiDown && neiDown >= this._topItem && neiDown < this._topItem + this.properties.visibleItems) - { - this._showFocus(neiDown, true, false, true); - } - // there's no enabled item or it is off screen - else - { - this._showFocus(this._topItem, false, false, true); - } - } -}; - -/** - * Scroll indicator animation end callback - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorAnimationEnd = function() -{ - this.scrollIndicator.style[this._VENDOR + 'TransitionDuration'] = '0ms'; - this.scrollIndicator.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - this.scrollIndicatorAnimationEndCallback = null; - - // fadeOut scroll indicator - this._fadeOutScrollIndicator(); -}; - -/** - * Letter index animation end callback - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._letterIndexAnimationEnd = function() -{ - // remove animation end callbacks - this.letterIndex.style[this._VENDOR + 'TransitionDuration'] = '0ms'; - this.letterIndex.removeEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - this.letterIndexAnimationEndCallback = null; - - // restore focus - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (null != focussedLetterIndex && (focussedLetterIndex < this._topLetterIndex || focussedLetterIndex > this._topLetterIndex + this.properties.visibleLetterIndexItems - 1)) - { - // focus is off screen - this._restoreLetterIndexFocus(); - } - else if (null != focussedLetterIndex) - { - // schedule letter index select if letter is enabled - if (!this.letterIndexData[focussedLetterIndex].disabled) - { - this._scheduleLetterIndexSelect(focussedLetterIndex); - } - } -}; - -/** - * Restore letter index focus after it has been left off screen. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._restoreLetterIndexFocus = function() -{ - // check if the top letter index is enabled - if (!this.letterIndexData[this._topLetterIndex].disabled) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - - // schedule letter index select - this._scheduleLetterIndexSelect(this._topLetterIndex); - } - else - { - // look for enabled item down and up - var neiDown = this._getNearestEnabledLetterByDirection(this._topLetterIndex, 'down'); - var neiUp = this._getNearestEnabledLetterByDirection(this._topLetterIndex, 'up'); - // determine scroll direction - var scrollDirection = (this._topLetterIndex - this._prevTopLetterIndex < 0) ? 'up' : 'down'; - - // check whether we have an enabled item on screen - if (null != neiDown && neiDown >= this._topLetterIndex && neiDown < this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - // there is an enabled item on screen -> place the focus there - this._showFocusLetterIndex(neiDown); - // schedule letter index select - this._scheduleLetterIndexSelect(neiDown); - } - else if ('down' === scrollDirection) - { - // we are scrolling down -> look for enabled item up - if (null != neiUp) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - - // schedule background letter index select - this._scheduleBackgroundLetterIndexSelect(neiUp); - } - else - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - } - } - else if ('up' === scrollDirection) - { - // we are scrolling up -> look for enabled item down - if (null != neiDown) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - // schedule background letter index select - this._scheduleBackgroundLetterIndexSelect(neiDown); - } - else - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - } - } - } -}; - - -/** - * ========================= - * SLIDERS AND TOGGLE CONTROL - * ========================= - */ - -/** - * Passes START (mousedown) event to the currently - * targeted slider instance and returns it. - * TAG: internal - * ========================= - * @param {MouseEvent} - * @param {Boolean} - * @return {SliderCtrl} - */ -List2Ctrl.prototype._slideStart = function(e, skipActiveSlider) -{ - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return; - } - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - // check if slider can be adjusted - if (!this.dataList.items[itemIndex].allowAdjust) - { - return; - } - - // check if we are in the hittable area - if(!this._hasRightHittableArea(this.dataList.items[itemIndex])) - { - var relativeX = e.pageX - this._maskPositionX; - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight; - var leftBoundary = this.properties.sliderReferencePointRight - this.properties.sliderWidth; - } - else if(this.dataList.items[itemIndex].indented) - { - var relativeX = e.pageX - (Math.ceil(this._maskPositionX / 1.5)); - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight - (Math.ceil(this.properties.sliderWidth / 1.5)) + (this.properties.indentOffset * 2); - var leftBoundary = this.properties.sliderReferencePointLeft; - } else - { - var relativeX = e.pageX - (Math.ceil(this._maskPositionX / 1.5)); - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight - (Math.ceil(this.properties.sliderWidth / 1.5)); - var leftBoundary = this.properties.sliderReferencePointLeft; - } - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // we are outside the hittable area -> exit - return; - } - - var sliderInstance = this._getSlider(itemIndex); - var skipActiveSlider = (true === skipActiveSlider); - if (!skipActiveSlider) - { - // set currently active slider - this._activeSlider = { - itemIndex : itemIndex, // currently active slider index - slider : sliderInstance // currently active slider instance - }; - - // transition focus to slider and hide focus on the item - this._activeSlider.slider.handleControllerEvent('acceptFocusFromTop'); - this._hideFocus(); - - // pass the event to the SliderCtrl - this._activeSlider.slider._onDownHandler(e); - } - - return sliderInstance; -}; - -List2Ctrl.prototype._slideMove = function(e) -{ - // determine if we have an active slider - if (!this._activeSlider) - { - return; - } - - // determine target item - var itemIndex = this._activeSlider.itemIndex; - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - // pass the event to the SliderCtrl - this._activeSlider.slider._onMoveHandler(e); -}; - -List2Ctrl.prototype._slideEnd = function(e) -{ - // determine if we have an active slider - if (!this._activeSlider) - { - var sliderInstance = this._slideStart(e, true); - if (sliderInstance && !this._stopSelect) - { - // pass the event to the SliderCtrl - sliderInstance._onDownHandler(e); - sliderInstance._onUpHandler(e); - } - return; - } - else - { - var itemIndex = this._activeSlider.itemIndex; - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - if (this._inSecondaryMulticontroller && itemIndex == this._currentSecondaryMulticontrollerItem) - { - // if we are in secondary multicontroller mode, touching outside the item will exit it - this._setSecondaryMulticontroller(false, this._currentSecondaryMulticontrollerItem); - this._showFocus(this._lastItemWithFocus, true); - } - else - { - // pass the event to the SliderCtrl - this._activeSlider.slider._onUpHandler(e); - - // transition focus back to item and remove it from the slider - this._activeSlider.slider.handleControllerEvent('lostFocus'); - this._showFocus(this._lastItemWithFocus, true); - } - } - - // reset currently active slider - this._activeSlider = null; -}; - -List2Ctrl.prototype._slideCallback = function() -{ - // get item index from the first argument - var itemIndex = arguments[0]; - - // get value and final adjustment from fourth argument - var value = arguments[3].value; - var finalAdjustment = arguments[3].finalAdjustment; - - // update local value - this.dataList.items[itemIndex].value = value; - - // Fire slide callback passing forward anything in the arguments - if (typeof this.properties.slideCallback == 'function') - { - // fire callback with original slider params - // this.properties.slideCallback.apply(null, Array.prototype.slice.call(arguments, 1)); - - // fire per-design callback - var params = { - itemIndex : itemIndex, - value:value, - finalAdjustment : finalAdjustment - }; - this.properties.slideCallback(this, this.dataList.items[itemIndex].appData, params); - } -}; - - - -/* - * ========================= - * TOGGLE BUTTONS - * When a button is selected it is automatically - * highlighted (activated) and the value is reported to the - * button select callback (if defined) - * ========================= - */ - - -/** - * Remove hit state from the toggle button - * TAG: touch-only, internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {void} - */ -List2Ctrl.prototype._buttonRemoveHit = function(itemIndex) -{ - var targetElt = this._getDOMItem(itemIndex); - if (targetElt) - { - var hitItems = targetElt.querySelectorAll('.hit'); - - if (hitItems.length) - { - for (var i=0, l=hitItems.length; i do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Check if we are in the hittable area - var inHittable = false; - var rightBoundary = this.properties.toggleReferencePointRight; - var leftBoundary = 0; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : // 2 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (2 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'style11' : // 3 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (3 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'draggable' : // 1 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (1 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - } - - if (!inHittable) - { - // we are outside the hittable area -> return false - return false; - } - - // when user hits one of the buttons, the item does not gain hit highlight - this._itemRemoveHit(); - - // Check which button is hit - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - var buttonId = null; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : - buttonId = clickedZone < 0.5 ? 1 : 2; - break; - case 'style11' : - buttonId = clickedZone < 0.33 ? 1 : - clickedZone < 0.66 ? 2 : - 3; - break; - case 'draggable' : - buttonId = 1; - break; - } - - // Make that button hit - if (buttonId) - { - // save the button as _startButton - this._startButton = buttonId; - - var domItem = this._getDOMItem(itemIndex); - var buttons = domItem.querySelectorAll('.button'); - for (var i=0; i do not make active - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // Check if we are in the hittable area - var inHittable = false; - var rightBoundary = this.properties.toggleReferencePointRight; - var leftBoundary = 0; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : // 2 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (2 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'style11' : // 3 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (3 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'draggable' : // 1 toggle button - leftBoundary = this.properties.toggleReferencePointRight - (1 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - } - - if (!inHittable && this._startButton) - { - // we are outside the hittable area and we have started from a button -> return cancel - return 'cancel'; - } - else if (!inHittable) - { - // we are outside the hittable area -> return cancel - return null; - } - - // Check which button is selected - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - var buttonId = null; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : - buttonId = clickedZone < 0.5 ? 1 : 2; - break; - case 'style11' : - buttonId = clickedZone < 0.33 ? 1 : - clickedZone < 0.66 ? 2 : - 3; - break; - case 'draggable' : - buttonId = 1; - break; - } - - // Make that button active - if (buttonId && buttonId === this._startButton) - { - this._startButton = null; - - if (this.dataList.items[itemIndex].value == buttonId) - { - // we ended on already selected button -> cancel - return 'cancel'; - } - // we ended up on the same button we started -> select that button - this._buttonActivate(itemIndex, buttonId); - } - else if (buttonId && null === this._startButton) - { - // we started off the buttons but ended up on a button -> select next button - this._startButton = null; - return null; - } - else - { - // we started from one of the buttons but ended out of them -> cancel - this._startButton = null; - return 'cancel'; - } - - // Return the button id - return buttonId; - -}; - -/** - * Select the nearest left toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonSelectLeft = function(itemIndex) -{ - // get current active button - var current = this.dataList.items[itemIndex].value; - - // set new active button - return this._buttonActivate(itemIndex, current-1); -}; - -/** - * Select the nearest right toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonSelectRight = function(itemIndex) -{ - // get current active button - var current = this.dataList.items[itemIndex].value; - - // set new active button - return this._buttonActivate(itemIndex, current+1); -}; - -/** - * Activate toggle button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonActivate = function(itemIndex, buttonId) -{ - // Ensure that buttonId is valid and wraps in a loop - if ('style10' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = (!isNaN(buttonId)) ? buttonId : 1; - if (buttonId > 2) - buttonId = 1; - else if (buttonId < 1) - buttonId = 2; - } - else if('style11' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = (!isNaN(buttonId)) ? buttonId : 1; - if (buttonId > 3) - buttonId = 1; - else if (buttonId < 1) - buttonId = 3; - } - else if('draggable' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = 1; - } - else - { - log.debug('Unknown item style for itemIndex ' + itemIndex); - return null; - } - - if ('draggable' != this.dataList.items[itemIndex].itemStyle) - { - // Save the new value in the dataList - this.dataList.items[itemIndex].value = buttonId; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - // Remove any residual hit states - this._buttonRemoveHit(itemIndex); - - // Activate the button - if (domItem) - { - var buttons = domItem.querySelectorAll('.button'); - for (var i=0; i do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Check if we are in the hittable area - var inHittable = false; - var domItem = this._getDOMItem(itemIndex); - var lockButton = domItem.querySelector('.buttonLock'); - var deleteButton = domItem.querySelector('.buttonDelete'); - var leftBoundary = lockButton.offsetLeft; - var rightBoundary; - if (this.dataList.items[itemIndex].locked) - { - // the delete button is disabled - rightBoundary = lockButton.offsetLeft + lockButton.clientWidth; - } - else - { - // the delete button is enabled - rightBoundary = deleteButton.offsetLeft + deleteButton.clientWidth; - } - - // hit test - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // we are outside the hittable area -> return false - return false; - } - - // when user hits one of the buttons, the item does not gain hit highlight - this._itemRemoveHit(); - - var buttonId = 1; - // Check which button is hit is the item is not locked - if (!this.dataList.items[itemIndex].locked) - { - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - buttonId = clickedZone < 0.5 ? 1 : 2; - } - - // save the button as _startLockButton - this._startLockButton = buttonId; - - // remove hit - this._lockRemoveHit(itemIndex); - - // make that button hit - if (1 === buttonId) - { - this._lockShowFocus(itemIndex, 1); - domItem.querySelector('.buttonLock').classList.add('hit'); - } - else - { - this._lockShowFocus(itemIndex, 2); - domItem.querySelector('.buttonDelete').classList.add('hit'); - } - - this._hideFocus(); - - return true; - -}; - -/** - * Select lock button - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - * @return {string} - performed action (lock, unlock, delete) - */ -List2Ctrl.prototype._lockSelect = function(e) -{ - // get relative mouse position - var relativeX = e.pageX - this._maskPositionX; - - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return null; - } - - // if the item is disabled -> do not make active - if (this.dataList.items[itemIndex].disabled) - { - return null; - } - - // Check if we are in the hittable area - var inHittable = false; - var domItem = this._getDOMItem(itemIndex); - var lockButton = domItem.querySelector('.buttonLock'); - var deleteButton = domItem.querySelector('.buttonDelete'); - var leftBoundary = lockButton.offsetLeft; - var rightBoundary; - if (this.dataList.items[itemIndex].locked) - { - // the delete button is disabled - rightBoundary = lockButton.offsetLeft + lockButton.clientWidth; - } - else - { - // the delete button is enabled - rightBoundary = deleteButton.offsetLeft + deleteButton.clientWidth; - } - - // hit test - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // set secondary multicontroller leaving highlight from where it started - if (this._startLockButton) - { - this._setSecondaryMulticontroller(true, itemIndex); - this._lockShowFocus(itemIndex, this._startLockButton); - } - - // we are outside the hittable area -> return null - return null; - } - - var action = null; - var buttonId = 1; - // Check which button is hit is the item is not locked - if (!this.dataList.items[itemIndex].locked) - { - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - buttonId = clickedZone < 0.5 ? 1 : 2; - } - - // Make that button active - if (buttonId === this._startLockButton) - { - this._startLockButton = null; - // we ended up on the same button we started -> select that button - action = this._lockActivate(itemIndex, buttonId); - } - else if (null === this._startButton) - { - this._startLockButton = null; - // we started off the buttons but ended up on a button -> select that button - action = this._lockActivate(itemIndex, buttonId); - } - else - { - // we started from one of the buttons but ended out of them -> cancel - this._startLockButton = null; - - return null; - } - - // Return the performed action - return action; - -}; - -/** - * Select the nearest left toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._lockMoveFocusLeft = function(itemIndex) -{ - // get current focussed lock button - var current = this._lockGetFocus(itemIndex); - - // set the new focussed lock button - return this._lockShowFocus(itemIndex, current-1); -}; - -/** - * Select the nearest right toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._lockMoveFocusRight = function(itemIndex) -{ - // get current focussed lock button - var current = this._lockGetFocus(itemIndex); - - // set the new focussed lock button - return this._lockShowFocus(itemIndex, current+1); -}; - -/** - * Activate lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @param {integer} - the button that is going to be activated - * @return {string} - performed action (lock, unlock, delete) - */ -List2Ctrl.prototype._lockActivate = function(itemIndex, buttonId) -{ - var action = null; - - switch (buttonId) - { - case 1 : - if (this.dataList.items[itemIndex].locked) - { - this.dataList.items[itemIndex].locked = false; - action = 'unlock'; - } - else - { - this.dataList.items[itemIndex].locked = true; - action = 'lock'; - } - break; - case 2 : - if (!this.dataList.items[itemIndex].locked) - { - action = 'delete'; - } - break; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - // Update the item - if (domItem) - { - switch (action) - { - case 'lock' : - domItem.classList.add('locked'); - break; - case 'unlock' : - domItem.classList.remove('locked'); - break; - } - } - - return action; -}; - - -/** - * Show focus highlight on a lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @param {integer} - the index of the button that will be focused - * @return {integer} - id of the focussed lock button - */ -List2Ctrl.prototype._lockShowFocus = function(itemIndex, buttonId) -{ - // check if this is a lock item - if (!this._isLock(itemIndex)) - { - return false; - } - - // if the item is disabled -> do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - if ('clear' === buttonId) - { - if (domItem) - { - domItem.querySelector('.buttonLock').classList.remove('focus'); - domItem.querySelector('.buttonDelete').classList.remove('focus'); - } - return null; - } - else - { - // validate button id - var buttonId = this.dataList.items[itemIndex].locked ? 1 : this.m.min(this.m.max(buttonId, 1), 2); - - if (domItem) - { - // add focus on the respective button - switch (buttonId) - { - case 1 : - domItem.querySelector('.buttonDelete').classList.remove('focus'); - domItem.querySelector('.buttonLock').classList.add('focus'); - break; - case 2 : - domItem.querySelector('.buttonLock').classList.remove('focus'); - domItem.querySelector('.buttonDelete').classList.add('focus'); - break; - default : - domItem.querySelector('.buttonDelete').classList.remove('focus'); - domItem.querySelector('.buttonLock').classList.add('focus'); - break; - } - } - return buttonId; - } -}; - - -/** - * Get currently focused lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {integer} - id of the currently focussed lock button - */ -List2Ctrl.prototype._lockGetFocus = function(itemIndex) -{ - // check if this is a lock item - if (!this._isLock(itemIndex)) - { - return false; - } - - // if the item is disabled -> do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - var focussedButton = null; - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - if (domItem) - { - if (domItem.querySelector('.buttonLock').classList.contains('focus')) - focussedButton = 1; - else if (domItem.querySelector('.buttonDelete').classList.contains('focus')) - focussedButton = 2; - } - - return focussedButton; -}; - - -/* - * ========================= - * STEP ITEM - * ========================= - */ - -/** - * Increase the value by one step - * TAG: internal - * ========================= - * @param {MouseEvent} - raw mouse event - * @return {integer} - the new value - */ -List2Ctrl.prototype._stepAdjust = function(e) -{ - // get relative mouse position - var relativeX = e.pageX - this._maskPositionX; - - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return; - } - - // if the item is disabled -> do not make active - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // perform hit test - var itemDOMElement = this._getDOMItem(itemIndex); - if (!itemDOMElement) - { - return; - } - - var p = itemDOMElement.querySelector('.plus'); - var m = itemDOMElement.querySelector('.minus'); - var pLayout = { x1:p.offsetLeft, x2:p.offsetLeft + p.clientWidth }; - var mLayout = { x1:m.offsetLeft, x2:m.offsetLeft + m.clientWidth }; - - var newValue = null; - - if (relativeX >= pLayout.x1 && relativeX <= pLayout.x2) - { - // plus pressed - newValue = this._stepUp(itemIndex); - } - else if (relativeX >= mLayout.x1 && relativeX <= mLayout.x2) - { - // minus pressed - newValue = this._stepDown(itemIndex); - } - else if (relativeX < mLayout.x1) - { - newValue = 'commit'; - } - - - return newValue; -}; - -/** - * Increase the value by one step - * TAG: internal - * ========================= - * @param {integer} - index of the step item - * @return {integer|null} - the new value - */ -List2Ctrl.prototype._stepUp = function(itemIndex) -{ - if (!this._isStep(itemIndex)) - { - return; - } - - var oldValue = this.dataList.items[itemIndex].value; - var newValue = this.m.min(this.dataList.items[itemIndex].value + this.dataList.items[itemIndex].increment, this.dataList.items[itemIndex].max); - - if (newValue != oldValue) - { - // value changed -> store it and update item - this.dataList.items[itemIndex].value = newValue; - this.updateItems(itemIndex, itemIndex); - } - else - { - // value is the same -> return null - newValue = null; - } - - return newValue; -}; - -/** - * Decrease the value by one step - * TAG: internal - * ========================= - * @param {integer} - index of the step item - * @return {integer|null} - the new value - */ -List2Ctrl.prototype._stepDown = function(itemIndex) -{ - if (!this._isStep(itemIndex)) - { - return; - } - - var oldValue = this.dataList.items[itemIndex].value; - var newValue = this.m.max(this.dataList.items[itemIndex].value - this.dataList.items[itemIndex].increment, this.dataList.items[itemIndex].min); - - if (newValue != oldValue) - { - // value changed -> store it and update item - this.dataList.items[itemIndex].value = newValue; - this.updateItems(itemIndex, itemIndex); - } - else - { - // value is the same -> return null - newValue = null; - } - - return newValue; -}; - - -/** - * ========================= - * LIST REORDERING - * ========================= - */ - -/** - * Enter into list reorder mode - * This method stores the original item style of the - * item that is being reordered and substitutes it with - * an internal 'draggable' item style. - * TAG: internal - * ========================= - * @param {Boolean} - * @return {void} - */ -List2Ctrl.prototype._enterListReorder = function(fromInit) -{ - // keep a copy of the item before converting it to a draggable item - - var focussedIndex; - if (fromInit) - { - focussedIndex = this.properties.focussedItem; - } - else - { - focussedIndex = this._getFocussedIndex(); - } - - // check for items in the dataList - if (!this.dataList || !this.dataList.items || !this.dataList.items[focussedIndex]) - { - return; - } - - // do not reorder disabled items - if (this.dataList.items[focussedIndex].disabled) - { - return; - } - - // enter into List Reordering mode - this._inListReorder = true; - - this.dataList.items[focussedIndex].itemBehavior = 'shortAndLong'; // make it accept long press (if not already) - this._reorderItem = this.dataList.items[focussedIndex]; - this._reorderItemIndex = focussedIndex; - this._reorderCurrentIndex = focussedIndex; - - // convert the item to a draggable item - var draggableItem = {}; - draggableItem.itemStyle = 'draggable'; - draggableItem.text1 = this._reorderItem.text1; - if(this._reorderItem.itemStyle === "style38") - { - draggableItem.label1 = (this._reorderItem.hasOwnProperty('label1')) ? this._reorderItem.label1 : ''; - draggableItem.label2 = (this._reorderItem.hasOwnProperty('label2')) ? this._reorderItem.label2 : ''; - } - draggableItem.image1 = (this._reorderItem.hasOwnProperty('image1')) ? this._reorderItem.image1 : ''; - draggableItem.button1 = this._getLocalizedString('common.Ok'); - draggableItem.hasCaret = false; - this.dataList.items[focussedIndex] = draggableItem; - this.updateItems(focussedIndex, focussedIndex); - -}; - -/** - * Leave list reorder mode - * The item that is being reordered is restored - * to it initial style. The select callback is - * then fired to notify the interested parties of - * the change and the new position of the item. - * TAG: internal - * ========================= - * @param {Boolean} - prevent item selection when releasing the reorder - * @return {void} - */ -List2Ctrl.prototype._releaseListReorder = function(preventSelect) -{ - // exit list reordering mode - this._inListReorder = false; - this._appIsAtSpeed = false; - - // get draggable item index - var draggableItems = this.getItemsByType('draggable'); - if (!draggableItems.length) - { - return; - } - - var draggableItemIndex = draggableItems[0]; - - // convert the draggable item back into the previous item type - this.dataList.items[draggableItemIndex] = this._reorderItem; - this.updateItems(draggableItemIndex, draggableItemIndex); - - // cast preventSelect as Boolean - var preventSelect = Boolean(preventSelect); - - // selection is allowed - if (!preventSelect) - { - // fire item select - var params = { - newIndex : draggableItemIndex, - oldIndex : this._reorderItemIndex - }; - this._itemSelect(draggableItemIndex, params); - } - - // release the copy of the reorder item - this._reorderItem = null; - this._reorderItemIndex = null; - this._reorderTouchElt = null; - -}; - - -/** - * Touch start reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._startReorder = function(e) -{ - // get target item index - var itemIndex = this._getTargetItem(e); - - // get draggable item index - if (itemIndex === this._reorderCurrentIndex) - { - this._startY = e.pageY - this._maskPositionY; - this._startX = e.pageX - this._maskPositionX; - - // do we have hit on the button? - var positiveButtonHit = this._buttonMakeHit(e); - - if (!positiveButtonHit) - { - this._itemMakeLongPress(e); - - // clone draggable item - var tmp = this._getDOMItem(itemIndex); - this._reorderTouchElt = tmp.cloneNode(true); - this.scroller.appendChild(this._reorderTouchElt); - - // convert the draggable item to a ghost item - var ghostItem = {itemStyle:'ghost', hasCaret:false}; - this.dataList.items[itemIndex] = ghostItem; - this.updateItems(itemIndex, itemIndex); - - this._hideFocus(); - - // raise _inDrag - this._inDrag = true; - } - else - { - // flag the behaviour as release intent - this._releaseReorderByTouch = true; - } - - // track event - this._trackEvent(e); - } -}; - -/** - * Touch move reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._moveReorder = function(e) -{ - if (this._reorderTouchElt) - { - // track event - this._trackEvent(e); - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = (e.pageY - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) - (this.properties.itemHeight / 2); - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the item - this._reorderTouchElt.style.top = newPos + 'px'; - - // get last move - var moveDirection = this._getMoveDirection(); - - // reset any scheduled scrolling if the user intends cacnelling the scroll - if (newPos <= (this._topItem * this.properties.itemHeight) + this.properties.itemHeight && - newPos > this._topItem * this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - } - else if (newPos >= (this._topItem + this.properties.visibleItems - 2) * this.properties.itemHeight && - newPos < (this._topItem + this.properties.visibleItems - 1) * this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - } - - // drag down - if (1 === moveDirection) - { - // have we passed the last item's top border? - if ( (this._topItem >= this.dataList.itemCount - this.properties.visibleItems) && (newPos >= ((this._topItem + this.properties.visibleItems) * this.properties.itemHeight) - this.properties.itemHeight) ) - { - this._reorderGhostItemDown(); - } - else if (newPos >= ((this._topItem + this.properties.visibleItems) * this.properties.itemHeight) - this.properties.itemHeight) - { - // do we have a scroll down scheduled? -> if not, schedule one - if (null === this._touchReorderTimeoutId) - { - this._touchReorderTimeoutId = setTimeout(this._scrollDownOne.bind(this), this.properties.listReorderScrollTimeout); - } - } - else if (newPos >= (this._reorderCurrentIndex * this.properties.itemHeight) + this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - this._reorderGhostItemDown(); - } - } - // drag up - else if (-1 === moveDirection) - { - // have we passed the top item's top border? - if (0 != this._topItem && newPos <= this._topItem * this.properties.itemHeight) - { - // do we have a scroll up scheduled? -> if not, schedule one - if (null === this._touchReorderTimeoutId) - { - this._touchReorderTimeoutId = setTimeout(this._scrollUpOne.bind(this), this.properties.listReorderScrollTimeout); - } - } - else if (newPos <= (this._reorderCurrentIndex * this.properties.itemHeight) - this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - this._reorderGhostItemUp(); - } - } - - } // endif (this._reorderTouchElt) -}; - -/** - * Touch end reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._endReorder = function(e) -{ - if (this._reorderTouchElt) - { - // get nearest snap position - var newSnappedIndex = Math.floor( ( (e.pageY - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) ) / this.properties.itemHeight ); - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = newSnappedIndex * this.properties.itemHeight; - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the scroller if in bounds - this._reorderTouchElt.style.top = newPos + 'px'; - - // convert the ghost item back to a draggable item - var draggableItem = {}; - draggableItem.itemStyle = 'draggable'; - draggableItem.text1 = this._reorderItem.text1; - draggableItem.image1 = (this._reorderItem.hasOwnProperty('image1')) ? this._reorderItem.image1 : ''; - if(this._reorderItem.itemStyle === "style38") - { - draggableItem.label1 = (this._reorderItem.hasOwnProperty('label1')) ? this._reorderItem.label1 : ''; - draggableItem.label2 = (this._reorderItem.hasOwnProperty('label2')) ? this._reorderItem.label2 : ''; - } - draggableItem.button1 = this._getLocalizedString('common.Ok'); - draggableItem.hasCaret = false; - this.dataList.items[this._reorderCurrentIndex] = draggableItem; - this.updateItems(this._reorderCurrentIndex, this._reorderCurrentIndex); - - // remove the cloned element - this._reorderTouchElt.parentElement.removeChild(this._reorderTouchElt); - } - - this._itemRemoveLongPress(); - this._reorderTouchElt = null; - - // reset flags - this._inHorizontalDrag = null; - this._hDragItem = null; - this._inDrag = false; - this._stopSelect = false; - - // restore focus - this._showFocus(this._reorderCurrentIndex); - - // clear any scroll timeout - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - - // are we about to release reorder - if (this._releaseReorderByTouch && this._isToggle(this._reorderCurrentIndex)) - { - // remove hit state of button and release list reorder - this._buttonRemoveHit(this._reorderCurrentIndex); - this._releaseListReorder(); - this._releaseReorderByTouch = false; - } - -}; - -/** - * After the list has scrolled due to touch reorder action, - * upon animation end, the touch reorder item is brought under the - * user's finger and if the possition requires it, a new scroll - * is scheduled. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._bringReorderItem = function() -{ - if (this._trackedEvents.length && this._reorderTouchElt) - { - // get last event - var lastEvent = this._trackedEvents[this._trackedEvents.length-1]; - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = (lastEvent.y - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) - (this.properties.itemHeight / 2); - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the item - this._reorderTouchElt.style.top = newPos + 'px'; - - // we are past the top item's top boundary - if (0 != this._topItem && newPos <= this._topItem * this.properties.itemHeight) - { - // update blank spot - this._reorderGhostItemUp(); - - // reschedule list scroll - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = setTimeout(this._scrollUpOne.bind(this), this.properties.listReorderScrollTimeout); - } - else if (0 == this._topItem) - { - // update blank spot - this._reorderGhostItemUp(); - } - else if (this._topItem != this.dataList.itemCount - this.properties.visibleItems && - newPos >= (this._topItem + this.properties.visibleItems - 1) * this.properties.itemHeight) - { - // update blank spot - this._reorderGhostItemDown(); - - // reschedule list scroll - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = setTimeout(this._scrollDownOne.bind(this), this.properties.listReorderScrollTimeout); - } - else if (this._topItem >= this.dataList.itemCount - this.properties.visibleItems) - { - // update blank spot - this._reorderGhostItemDown(); - } - - } -}; -/** - * Reorder the item to the index - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {void} - */ -List2Ctrl.prototype._reorderToIndex = function(itemIndex) -{ - if (!this._inListReorder || isNaN(itemIndex)) - { - log.error("list1 _reorderToIndex : Invalid arguments - inListReorder, itemIndex", this._inListReorder, itemIndex); - return; - } - - if (itemIndex != this._reorderItemIndex) - { - if (itemIndex < this._reorderItemIndex) - { - this._reorderItemUp(this._reorderItemIndex - itemIndex) - } - else - { - this._reorderItemDown(itemIndex - this._reorderItemIndex) - } - } -} - -/** - * Reorder the item down - * TAG: internal - * ========================= - * @param {integer} -number of items - * @return {void} - */ -List2Ctrl.prototype._reorderItemDown = function(reorderCount) -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - //prevent list scrolling while we're loading - if (this._inLoading) - { - return; - } - - if (!reorderCount) - { - reorderCount = 1; - } - - for (var count = 1; count <= reorderCount; count++) - { - // get draggable item index - var draggableItemIndex = this.getItemsByType('draggable')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.min(draggableItemIndex + 1, this.dataList.itemCount - 1); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[draggableItemIndex]; - this.dataList.items[draggableItemIndex] = tempCopy; - - // update display - this.updateItems(draggableItemIndex, targetItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - } - -}; -/** - * Reorder the item up - * TAG: internal - * ========================= - * @param {integer} -number of items - * @return {void} - */ -List2Ctrl.prototype._reorderItemUp = function(reorderCount) -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - //prevent list scrolling while we're loading - if (this._inLoading) - { - return; - } - - if (!reorderCount) - { - reorderCount = 1; - } - - for (var count = 1; count <= reorderCount; count++) - { - // get draggable item index - var draggableItemIndex = this.getItemsByType('draggable')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.max(draggableItemIndex - 1, 0); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[draggableItemIndex]; - this.dataList.items[draggableItemIndex] = tempCopy; - - // update display - this.updateItems(targetItemIndex, draggableItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - } - -}; - -/** - * Reorder ghost item one position down - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._reorderGhostItemDown = function() -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - // get draggable item index - var ghostItemIndex = this.getItemsByType('ghost')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.min(ghostItemIndex + 1, this.dataList.itemCount - 1); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[ghostItemIndex]; - this.dataList.items[ghostItemIndex] = tempCopy; - - // update display - this.updateItems(ghostItemIndex, targetItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - - this._hideFocus(); -}; - -/** - * Reorder ghost item one position up - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._reorderGhostItemUp = function() -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - // get draggable item index - var ghostItemIndex = this.getItemsByType('ghost')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.max(ghostItemIndex - 1, 0); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[ghostItemIndex]; - this.dataList.items[ghostItemIndex] = tempCopy; - - // update display - this.updateItems(targetItemIndex, ghostItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - - this._hideFocus(); -}; - - -/** - * ========================= - * LIST EVENTS API - * ========================= - */ - -/** - * List event - * TAG: internal - * ========================= - * @param {string} - Event name - * @param {*} - Event data - * @return {void} - */ -List2Ctrl.prototype._listEvent = function(type, data) -{ - var data = data || null; - switch (type) - { - case this._EVENTS.ITEM_SELECT : - this._dispatch(this._EVENTS.ITEM_SELECT, data); - break; - case this._EVENTS.LETTER_SELECT : - this._dispatch(this._EVENTS.LETTER_SELECT, data); - break; - case this._EVENTS.DATALIST_CHANGE : - this._dispatch(this._EVENTS.DATALIST_CHANGE, null); - break; - case this._EVENTS.SCROLL_START : - this._dispatch(this._EVENTS.SCROLL_START, data); - break; - case this._EVENTS.SCROLL_END : - this._dispatch(this._EVENTS.SCROLL_END, data); - break; - case this._EVENTS.CLEAN_UP : - this._dispatch(this._EVENTS.CLEAN_UP, data); - break; - default : - // nothing to do - break; - } -}; - -/** - * Get listeners array for an event - * TAG: internal - * ========================= - * @param {string} - Event name - * @return {array} - */ -List2Ctrl.prototype._getListeners = function(type, useCapture) -{ - var captype = (useCapture ? '1' : '0') + type; - if (!(captype in this._eventListeners)) - this._eventListeners[captype] = []; - return this._eventListeners[captype]; -}; - -/** - * Dispatch custom event - * TAG: internal - * ========================= - * @param {string} - Event name - * @return {void} - */ -List2Ctrl.prototype._dispatch = function(type, data) -{ - if (!type || '' == type) - return; - var evt = new CustomEvent( type, { detail : { data : data, bubbles: true, cancelable: true } } ); - this.dispatchEvent(evt); -}; - -/** - * Add event listener to custom list event - * TAG: public - * ========================= - * @param {string} - event name - * @param {function} - event listener - * @param {boolean} - use capture - * @return {void} - */ -List2Ctrl.prototype.addEventListener = function(type, listener, useCapture) -{ - var listeners = this._getListeners(type, useCapture); - var ix = listeners.indexOf(listener); - if (-1 === ix) - listeners.push(listener); -}; - -/** - * Remove event listener to custom list event - * TAG: public - * ========================= - * @param {string} - event name - * @param {function} - event listener - * @param {boolean} - use capture - * @return {void} - */ -List2Ctrl.prototype.removeEventListener = function(type, listener, useCapture) -{ - var listeners = this._getListeners(type, useCapture); - var ix = listeners.indexOf(listener); - if (-1 !== ix) - listeners.splice(ix, 1); -}; - -/** - * Displatch custom list event - * TAG: public - * ========================= - * @param {object} - event object - * @return {boolean} - */ -List2Ctrl.prototype.dispatchEvent = function(evt) -{ - var listeners = this._getListeners(evt.type, false).slice(); - for (var i= 0; i dataList.items.length) - { - for (var i=dataList.items.length; i= 0) - { - // force exit secondary multicontroller - this._inSecondaryMulticontroller = false; - - var additionalSpace = this._getAdditionalSpace(); - - this.scroller.style.height = this.dataList.itemCount * this.properties.itemHeight + additionalSpace + 'px'; - this._scrollerH = this.scroller.offsetHeight; - this._emptyScroller(); - this._scrollIndicatorReset(); - if(0 === this.dataList.itemCount) - { - this._scrollIndicatorBuild(false); - } - else - { - this._scrollIndicatorBuild(true); - } - - // set line numbers - this.setLineNumbers(); - } - -}; - -List2Ctrl.prototype.hasDataList = function() -{ - if (this.dataList == null) - { - return false; - } - - if (!this.dataList.hasOwnProperty('itemCountKnown') && !this.dataList.hasOwnProperty('itemCount') && !this.dataList.hasOwnProperty('items')) - { - return false; - } - - if (this.dataList.itemCountKnown && this.dataList.itemCount == 0) - { - return false; - } - - if (!this.dataList.itemCountKnown && this.dataList.itemCount <= 0) - { - return false; - } - - return true; -}; - -/** - * Update Items - * - * This is intended to be used whenever the bound data is changed programmatically by the app. In other words, - * it informs the control that bound data has changed … and if the range of changed items overlaps with items - * rendered into HTML objects, then the ListMenu must update those elements. There are several use cases for this: - * - * 1. For the case where the dataList is fetched asynchronously in the background after ListMenu is displayed, - * the updateItems() API will be called as new data arrives. I think this use case is described fairly completely - * in section 2.2.4 of the ListMenu SDD. Note that these updates may correspond to the user scrolling, or may simply - * occur in the background as the list is loaded into GUI while the user is still looking at the first N list items. - * Also note that the listCount can change and the ListMenu control must adapt appropriately, including handling - * reduction of the list count. - * - * 2. To allow the application to update menu text dynamically, e.g. to display the name of the connected USB - * Audio device instead of “USB”, or to change the displayed image(s). - * - * 3. To allow the application to enable/disable menu items or to set/clear the “selected” indicator. - * - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype.updateItems = function(firstItem, lastItem) -{ - log.debug("List2 updateItems() firstItem, lastItem",firstItem, lastItem); - // update _maxScrollY - this._maxScrollY = this.mask.offsetHeight - this.scroller.offsetHeight; - - var emptyDOMItem = null; - - // clear _needDataTimeoutId - clearTimeout(this._needDataTimeoutId); - this._needDataTimeoutId = null; - - this._prepareItems(firstItem, lastItem); - this._localizeItems(firstItem, lastItem); - - // trim dataList.items if it is larger than dataList.itemCount - if (this.dataList && - this.dataList.itemCountKnown && - this.dataList.items && - this.dataList.itemCount < this.dataList.items.length) - { - this.dataList.items = this.dataList.items.slice(0, this.dataList.itemCount); - console.assert(this.dataList.itemCount == this.dataList.items.length, 'dataList.itemCount is not equal to dataList.items.length'); - } - - // validate first item - if (this.dataList.itemCountKnown && firstItem < -1) - { - log.warn('List2: firstItem is less than -1: ' + firstItem + ' passed. Setting it to -1.'); - firstItem = -1; - } - - // validate last item - if (this.dataList.itemCountKnown && lastItem >= this.dataList.itemCount) - { - log.warn('List2: lastItem is more than or equals dataList.itemCount(' + (this.dataList.itemCount-1) + '): ' + lastItem + ' passed. Setting it to ' + (this.dataList.itemCount - 1) + '. ' + this.uiaId + ' check your variable validation!?'); - lastItem = this.dataList.itemCount - 1; - } - - - // check for invalid items (e.g. firstItem=0, lastItem=-1) -> set loading - if (firstItem > lastItem) - { - firstItem = lastItem = -1; - } - - if (firstItem == -1 && lastItem == -1) - { - // we have dataList but no list items => show loading - this._setLoading(true); - - } - else if (firstItem >= 0 && lastItem >= 0 && lastItem >= firstItem && !this._hasFill) - { - - - // we have dataList and we have list items but we do not have fill => do initial fill - var lastFillItem = this.m.min(lastItem, this.properties.itemsBefore + this.properties.itemsAfter); - - this._fill(firstItem, lastFillItem); - this._setLoading(false); - - // update modified timestamps - this._updateModifiedTimestamps(firstItem, lastItem); - - if (this.properties.focussedItem < this.dataList.itemCount) - { - this.properties.focussedItem = this._canGainFocus(this.properties.focussedItem); - } - else - { - this.properties.focussedItem = this.dataList.itemCount - 1; - this.properties.focussedItem = this._canGainFocus(this.properties.focussedItem); - } - /* - * Immediately scroll to a preset location and - * show focus on preset item if this is specified - * in the control's config. Focus placement needs to be done - * after the DOM is refreshed. This is done only the - * first time after a fresh setDataList() call. - * Focussed item has precedence over scroll location. - */ - if (null === this._initialScrollMode) - { - // first check if the focussed item and the scroll position are all on the same screen - // scroll to that position and show the focus according to the config - if ( (this.properties.focussedItem >= 0 || this.properties.scrollTo >= 0) && - (this.m.abs(this.properties.focussedItem - this.properties.scrollTo) <= (this.properties.visibleItems - 1)) ) - { - log.debug('Focus is visible on screen'); - this._scrollTo(this.properties.scrollTo, 0); - setTimeout(function() { - this._showFocus(this.properties.focussedItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - // set initial focus to a particular item if this is set in the config - // the list will be scrolled so that this item is visible - else if (this.properties.focussedItem >= 0) - { - log.debug('Focus is not visible and has priority'); - setTimeout(function() { - this._showFocus(this.properties.focussedItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - // scroll (no animation) to a particular item if this is set in the config - // the focus will be placed on the top item - else if (this.properties.scrollTo >= 0) - { - log.debug('Focus is 0 and scrollTo has priority'); - this._scrollTo(this.properties.scrollTo, 0); - setTimeout(function() { - this._topItem = this._canGainFocus(this._topItem); - this._showFocus(this._topItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - } - // sync the top item with focus if not in initial mode any more - // enter in this case usualy when a new data list is set - else - { - var focussedItem = this.focussedItem; - var topInFocusRange = focussedItem >= this.topItem && focussedItem < this.topItem + this.properties.visibleItems - 1; - var prevTopInFocusRange = focussedItem >= this._prevTopItem && focussedItem < this._prevTopItem + this.properties.visibleItems - 1; - if (!topInFocusRange && !prevTopInFocusRange) - { - this.topItem = focussedItem; - } - else if (!topInFocusRange && prevTopInFocusRange) - { - this.topItem = this._prevTopItem; - } - } - - // check for empty items in DOM - emptyDOMItem = this._getEmptyDOMElement(); - - } - else if (firstItem >= 0 && lastItem >= 0 && lastItem >= firstItem) - { - // preserve focussed element - var lastFocussedIndex = this._getFocussedIndex(); - - // we have dataList and we have list items, and we have fill => perform update - this._updateDisplay(firstItem, lastItem); - this._setLoading(false); - - // update modified timestamps - this._updateModifiedTimestamps(firstItem, lastItem); - - // restore focussed element - if (!this._inLetterIndexMulticontroller && !this._inSecondaryMulticontroller) - { - this._showFocus(lastFocussedIndex, true); - } - else if (this._inSecondaryMulticontroller) - { - // treat disabling the secondary multicontroller item as interrupt -> commit value and exit - var smi = this._currentSecondaryMulticontrollerItem; - if (this.dataList.items[smi] && this.dataList.items[smi].disabled) - { - this._setSecondaryMulticontroller(false, smi); - this._showFocus(smi, true); - } - else if (this.dataList.items[smi]) - { - this._setSecondaryMulticontroller(true, smi); - } - } - - // check for empty items in DOM - emptyDOMItem = this._getEmptyDOMElement(); - - } - else - { - log.error(this.uiaId + ' called List2 updateItems() with invalid arguments: firstItem = ' + firstItem + ', lastItem = ' + lastItem); - } - - // suppress secondary item request when the list is in reorder mode - if (this.properties.enableSecondaryItemRequest && !this._inListReorder) - { - // do we have empty DOM items? - if (null == emptyDOMItem) - { - // clear _secondaryRequestCount - this._secondaryRequestCount = 0; - } - else if (this._secondaryRequestCount <= this.properties.secondaryRequestLimit) - { - // fire needDataCallback() if an empty item is found in the DOM - this._requestMore(emptyDOMItem); - // increment _secondaryRequestCount - this._secondaryRequestCount++; - } - else - { - log.warn('Lis2: control has reached the secondary request count limit. Enabling the list'); - // we have reached secondaryRequestLimit -> set loading to False - this._setLoading(false); - } - } - - // restore the focus to the last focussed element - if (!this._inLetterIndexMulticontroller && !this._inSecondaryMulticontroller) - { - this._showFocus(this._lastItemWithFocus, true); - } - -}; - - -/** 2. LETTER INDEX API **/ - -/** - * Set letter index data on demand, filling letters in the letter index area - * and assigning jump indices to them, so that when touched or selected - * by multicontroller, the list jumps to the respective index. - * TAG: public - * ========================= - * @param {data} - letter index data object - * @return {boolean} - True if letter index binding operation is a success - */ -List2Ctrl.prototype.setLetterIndexData = function(data) -{ - // validate input - if (!(data instanceof Array)) - { - log.error('Lis2: letter index data should be a valid array'); - return false; - } - - // validate control support - if (!this.properties.hasLetterIndex) - { - log.error('Lis2: list2 does not support letter index'); - return false; - } - - // reset any previous letter index data - this.letterIndexData = []; - this.letterIndex.innerText = ''; - - var letterIndexItem; - var label; - for (var i=0, l=data.length; i= 0) - { - this._letterIndexDataSorted[this._letterIndexDataSorted.length] = { - publicIndex : this.letterIndexData.length-1, - itemIndex : data[i].itemIndex - }; - } - } - - // sort private and filtered letter index by the itemIndex in ASC order - this._letterIndexDataSorted.sort(function(a,b) { - var compRes = 0; - if (a.itemIndex < b.itemIndex) - compRes = -1; - else if (a.itemIndex > b.itemIndex) - compRes = 1; - else - compRes = 0; - return compRes; - }); - - // set letter index scroller height - var additionalSpace = Math.ceil(this.properties.letterIndexHeight / 2) - 5; // adjusting factor - this.letterIndex.style.height = i * this.properties.letterIndexHeight + additionalSpace + 'px'; - this._scrollerHIndex = this.letterIndex.offsetHeight; - - // update _maxScrollYIndex - this._maxScrollYIndex = this.letterIndexWrapper.offsetHeight - this.letterIndex.offsetHeight; - - // set initial active letter index if there are any available - if (this.hasDataList() && this._letterIndexDataSorted.length) - { - // get current focus index and first letter index - var focussedIndex = this._getFocussedIndex(); - var firstIndex = this._letterIndexDataSorted[0].itemIndex; - - if (firstIndex > 0 && focussedIndex < firstIndex) - { - this._setLetterIndexPosition(firstIndex); - } - else - { - this._setLetterIndexPosition(focussedIndex); - } - - } - else if (this._letterIndexDataSorted.length) - { - this._setLetterIndexPosition(this._letterIndexDataSorted[0].itemIndex); - } -}; - - -/** 3. VOICE API **/ - -/** - * Set left button configuration depending on current list configuration: - * title style, visible items, item count, item thickness - * TAG: public, VUI - * ========================= - * @return {void} - */ -List2Ctrl.prototype.setLineNumbers = function() -{ - // check if we need to show numbers - if (!this.properties.numberedList) - { - return; - } - - // check if we have some items to number - if (!this.dataList.hasOwnProperty('itemCount') || this.dataList.itemCount <= 0) - { - return; - } - - - var style = ''; - var maxItemCount = 0; - - // determine max item count and style - switch (this.properties.titleConfiguration) - { - case 'noTitle' : - maxItemCount = this.properties.thickItems ? 5 : 6; - style = this.properties.thickItems ? 'Style02' : 'Style04'; - break; - case 'tabsTitle' : - maxItemCount = this.properties.thickItems ? 4 : 5; - style = this.properties.thickItems ? 'Style01' : 'Style03'; - break; - case 'listTitle' : - switch (this._currentTitle.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - case 'style03a' : - maxItemCount = this.properties.thickItems ? 4 : 5; - style = this.properties.thickItems ? 'Style01' : 'Style03'; - break; - case 'style05' : - case 'style08' : - maxItemCount = 4; - style = this.properties.thickItems ? 'Style07' : 'Style06'; - break; - case 'style06' : - case 'style07' : - maxItemCount = 3; - style = this.properties.thickItems ? 'Style09' : 'Style08'; - break; - default : - log.warn('Lis2: unknown title style: ' + this._currentTitle.titleStyle); - return; - break; - } - break; - default : - log.warn('Lis2: unknown title configuration: ' + this.properties.titleConfiguration); - return; - break; - } - - // get actual item count - var itemCount = this.m.min(this.dataList.itemCount, maxItemCount); - - // check for common API - if (framework.common.setLineNumbers) - { - // call LeftBtnCtrl to show list numbers - return framework.common.setLineNumbers(itemCount, style); - } - -}; - -/** - * Performs select on the specified line number. When the select callback is fired, - * fromVui parameter is set to true. The function can return several possible - * statuses depending on the output of the operation. - * TAG: public, VUI - * ========================= - * @param {integer} - the line number that needs to be selected - * @return {string} - 'selected', 'outOfRange', 'disabled', 'sendAck', 'noList' - */ -List2Ctrl.prototype.selectLine = function(lineNumber) -{ - // get target item - var targetIndex = this._topItem + (lineNumber - 1); - - // decide what to return depending on what's visible - var status; - - // check if the list supports line numbers - if (!this.hasDataList()) - { - status = 'noList'; - log.debug('Lis2: selectLine() called with no list on the screen'); - } - else if (!this.dataList.vuiSupport) - { - status = 'noList'; - log.debug('Lis2: no VUI support for this list'); - } - else if (targetIndex > this.dataList.itemCount - 1 || targetIndex < 0) - { - status = 'outOfRange'; - log.debug('Lis2: line number out of range'); - } - else if (targetIndex < this._topItem || targetIndex > this._topItem + this.properties.visibleItems) - { - status = 'outOfRange'; - log.debug('Lis2: line number out of range'); - } - else if (!this.dataList.items[targetIndex].vuiSelectable) - { - status = 'notSelectable'; - log.debug('Lis2: list item is not VUI selectable'); - } - else if (this.dataList.items[targetIndex].disabled) - { - status = 'disabled'; - log.debug('Lis2: list item is disabled'); - this._itemSelect(targetIndex, {fromVui:true, vuiStatus:status}); - } - else - { - // default status is 'selected' -> if the item is not selectable, the callback will not be fired - var selectResult = this._itemSelect(targetIndex, {fromVui:true, vuiStatus:'selected'}); - if (true === selectResult) - { - // normal enabled status - status = 'selected'; - } - else if (false === selectResult) - { - // status if no select callback is attached - status = 'sendAck'; - } - else - { - // returned status from the select callback in the app - status = selectResult; - } - } - - return status; -}; - -/** - * Scrolls the list one page down. A page is the number of visible items on the screen. - * Depending on the output of the function, several return values are possible. - * TAG: public, VUI - * ========================= - * @return {string} - 'paged', 'atLimit', 'onePage' - */ -List2Ctrl.prototype.pageDown = function() -{ - var status = this._scrollDownPage(); - return status; -}; - -/** - * Scrolls the list one page up. A page is the number of visible items on the screen. - * Depending on the output of the function, several return values are possible. - * TAG: public, VUI - * ========================= - * @return {string} - 'paged', 'atLimit', 'onePage' - */ -List2Ctrl.prototype.pageUp = function() -{ - var status = this._scrollUpPage(); - return status; -}; - - -/** 4. SLIDER / TOGGLE API **/ - -/** - * Set slider to a specific value - * TAG: public - * ========================= - * @param {integer} - the index of the slider/pivot item - * @param {number} - the new value of the slider/pivot - * @return {void} - */ -List2Ctrl.prototype.setSliderValue = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isSlider(itemIndex)) - { - log.warn(this.uiaId + ': Lis2: only sliders/pivots can be used in the Slider API. Item style ' + item.itemStyle + ' passed'); - return; - } - - var slider = this._getSlider(itemIndex); - if (slider) - { - slider.setValue(value); - } - else - { - log.error(this.uiaId + ': Lis2: could not get slider instance for itemIndex ' + itemIndex); - } -}; - - -/** - * Set toggle to a specific value - * TAG: public - * ========================= - * @param {integer} - the index of the toggle item - * @param {number} - the new value of the toggle - * @return {void} - */ -List2Ctrl.prototype.setToggleValue = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.debug('Item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isToggle(itemIndex) && item.itemStyle != 'styleOnOff') - { - log.warn('Lis2: only toggle items can be used in the Toggle API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // normalize value - if (item.itemStyle == 'style10') - { - var value = this.m.max(this.m.min(value, 2), 1); - } - else if(item.itemStyle == 'style11') - { - var value = this.m.max(this.m.min(value, 3), 1); - } - else if(item.itemStyle == 'styleOnOff') - { - var value = this.m.max(this.m.min(value, 2), 1); - } - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'toggle')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - - -/** - * Set checked state for a checkbox item (style03 and style03a) - * TAG: public - * ========================= - * @param {integer} - the index of the checkbox item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype.setCheckBox = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'checkbox')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - - -/** - * Set checked state for a checkbox item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the checkbox item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setCheckBox = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // cast as boolean - var value = Boolean(value); - - // set value - item.checked = value; - - // update item - this.updateItems(itemIndex, itemIndex); -}; - - -/** - * Set checked state for a radio item (style03 and style03a) - * TAG: public - * ========================= - * @param {integer} - the index of the radio item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype.setRadio = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'radio')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - -/** - * Set checked state for a radio item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the radio item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setRadio = function(itemIndex, value) -{ - // cast as boolean - var value = Boolean(value); - - // remove checked state of all radio items - for (var i=0; i= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'tick')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - -/** - * Set checked state for a tick item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the tick item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setTick = function(itemIndex, value) -{ - // cast as boolean - var value = Boolean(value); - - // remove checked state of all radio items - for (var i=0; i start the range if not already started - if (currentRange.length == 0) - { - // set first index to the range start - currentRange[0] = i; - } - - // if this is the last iteration and we are still in an empty range -> close currentRange - if (i == l-1 && currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - else - { - // filled item encountered -> end the range if started - if (currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i-1; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - } - - return (ranges.length) ? ranges : null; -}; - -/** - * Get filled range - * traverse the dataList.items for filled items and returns - * an array of filled-item ranges - * TAG: public - * ========================= - * @return {array} - Array([firstFilled, lastFilled], [firstFilled, lastFilled]) - */ -List2Ctrl.prototype.getFilledRange = function() -{ - var ranges = []; - var currentRange = []; - - for (var i=0, l=this.dataList.items.length; i start the range if not already started - if (currentRange.length == 0) - { - // set first index to the range start - currentRange[0] = i; - } - - // if this is the last iteration and we are still in an filled range -> close currentRange - if (i == l-1 && currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - else - { - // empty item encountered -> end the range if started - if (currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i-1; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - } - - return (ranges.length) ? ranges : null; -}; - -/** - * Get current focus mode - * TAG: public - * ========================= - * @return {string} - 'mainList' | 'letterIndex' | 'noFocus' - */ -List2Ctrl.prototype.getFocusMode = function() -{ - var currentFocusMode = 'mainList'; - if (!this._hasFocus) - { - currentFocusMode = 'noFocus'; - } - else if (this._inLetterIndexMulticontroller) - { - currentFocusMode = 'letterIndex'; - } - - return currentFocusMode; -}; - - -/** 7. OTHER **/ - -/** - * Set loading state of the list - * TAG: public - * ========================= - * @param {boolean} - enable or disable loading state - * @return {void} - */ -List2Ctrl.prototype.setLoading = function(state) -{ - // cast as boolean - var state = Boolean(state); - this._setLoading(state); -}; - - -/** - * Public API that changes the loading configuration - * ========================= - * @param {Object} - object that will set loading item configuration - * @return {Object} - retuns the loading configuration object - */ -List2Ctrl.prototype.setLoadingConfig = function (config) -{ - for (var i in config) - { - this.properties.loadingConfig[i] = config[i]; - } - - if (null !== this.properties.loadingConfig.loadingTextId && undefined !== this.properties.loadingConfig.loadingTextId && "" !== this.properties.loadingConfig.loadingTextId) - { - this.properties.loadingConfig.loadingText = this._getLocalizedString(this.properties.loadingConfig.loadingTextId, this.properties.loadingConfig.loadingSubMap); - } - this.loading.querySelector(".loadingText").innerText = ""; - this.loading.querySelector(".loadingText").appendChild(document.createTextNode(this.properties.loadingConfig.loadingText)); - this.loading.querySelector(".loadingImage1").style.backgroundImage = 'url(' + this.properties.loadingConfig.loadingImage1 + ')'; - - return this.properties.loadingConfig; -}; - -/** - * Enter or release reorder mode - * TAG: public - * ========================= - * @param {boolean} - enter or release list reorder - * @param {boolean} - prevent item select on releasing reorder - * @return {void} - */ -List2Ctrl.prototype.setReorder = function(state, preventSelect) -{ - // cast as boolean - var state = Boolean(state); - var preventSelect = Boolean(preventSelect); - - if (state && !this._inListReorder) - { - // if user has lost the reorder item - if (null != this._reorderCurrentIndex && (this._reorderCurrentIndex < this._topItem || this._reorderCurrentIndex > this._topItem + this.properties.visibleItems-1)) - { - if (this.dataList.items[this._reorderCurrentIndex] && !this.dataList.items[this._reorderCurrentIndex].disabled) - { - // reorder item is outside screen. Bring it back in and show focus on it - this._showFocus(this._reorderCurrentIndex); - } - } - - // enter into reorder - this._enterListReorder(); - } - else if (!state && this._inListReorder) - { - // release reorder - this._releaseListReorder(preventSelect); - } -}; - -/** - * Enter or release reorder mode - * TAG: public - * ========================= - * @param {boolean} - enter or release list reorder - * @return {void} - */ -List2Ctrl.prototype.setReorderAtSpeed = function(AtSpeed) -{ - if(AtSpeed) - { - this._inListReorder = false; - this._appIsAtSpeed = AtSpeed ; - this.properties.listReorder = false; - } - else - { - this._inListReorder = true; - this._appIsAtSpeed = AtSpeed ; - this.properties.listReorder = true; - } -}; - -/** - * Set fixed title for the list - * TAG: public - * ========================= - * @param {object} - title properties - * @return {void} - */ -List2Ctrl.prototype.setTitle = function(titleStructure) -{ - - // validate titleStructure - if (!titleStructure || !titleStructure.hasOwnProperty('titleStyle')) - { - return; - } - - /* - * title structure: - * { - * titleStyle : 'style02', - * text1Id : null, - * text1SubMap : null, - * text1 : '', - * image1 : 'path/to/image.png' - * } - */ - - // prepare title - var titleStructure = titleStructure || {}; - titleStructure = this._prepareTitle(titleStructure); - - if (this._currentTitle) - { - // we already have a title -> update it - - // validate new title - switch (titleStructure.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - // thin - if ('style02' != this._currentTitle.titleStyle && - 'style02a' != this._currentTitle.titleStyle && - 'style03' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - - case 'style05' : - case 'style08' : - // medium - if ('style05' != this._currentTitle.titleStyle && - 'style08' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - - case 'style06' : - case 'style07' : - // thick - if ('style06' != this._currentTitle.titleStyle && - 'style07' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - } - } - - // empty title element - this.title.innerText = ''; - // remove old title style class - if (this._currentTitle) - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - this.title.classList.remove(this._currentTitle.titleStyle); - } - // add title style as a class - this.title.classList.add(titleStructure.titleStyle); - - // fill it - var line1, line2, image1; - - switch (titleStructure.titleStyle) - { - case 'style02' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style02a' : - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style03' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style05' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - line2.appendChild(document.createTextNode(titleStructure.text2)); - this.title.appendChild(line2); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - this.divElt.classList.add('listTitleMedium'); - - break; - - case 'style06' : - - if (titleStructure.image1 === 'canvas') - { - // preview image is a canvas - image1 = document.createElement('canvas'); - image1.className = 'image1'; - // store canvas for public API call - this.titleCanvas = image1; - this.title.appendChild(image1); - } - else - { - // preview image is an image - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - } - - this.divElt.classList.add('listTitleThick'); - - break; - - case 'style07' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - line2.appendChild(document.createTextNode(titleStructure.text2)); - this.title.appendChild(line2); - - this.divElt.classList.add('listTitleThick'); - - break; - - case 'style08' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleMedium'); - - break; - - default : - log.error('Lis2: unknown title style: ' + titleStructure.titleStyle); - } - - // save the title structure - this._currentTitle = titleStructure; - -}; - - -/** 8. CONTEXT CAPTURE AND RESTORE **/ - -/** - * Context capture - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ -List2Ctrl.prototype.getContextCapture = function() -{ - var obj = { - hasFocus : this._hasFocus, - topItem : this._topItem, - focussedItem : this._getFocussedIndex(), - itemCount : this.dataList ? this.dataList.itemCount : 0 - }; - - log.debug('Lis2: getContextCapture obj ', obj); - return obj; -}; - -/** - * Context restore - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ -List2Ctrl.prototype.restoreContext = function(restoreData) -{ - log.debug('Lis2: restoreContext restoreData ', restoreData); - // validate input - if (!restoreData.hasOwnProperty('topItem') || !restoreData.hasOwnProperty('focussedItem')) - { - log.info('No data to restore'); - return; - } - - - // restore hasFocus flag - if (restoreData.hasFocus) - { - this._hasFocus = true; - } - - if (this.hasDataList()) - { - // scroll to previous position and show previous focus - // no checks for value conflicts are necessary. These ought to be correct. - this._scrollTo(restoreData.topItem); - - // NOTE: actual focus placement happens in controllerActive event handling - - // mark the list as data-restored preventing any subsequent auto-scrolls - this._initialScrollMode = 'restore'; - - this._manageFocus(restoreData.focussedItem); - } - else - { - log.info('List has no dataList to restore'); - } - - // overwrite control properties - this.properties.scrollTo = restoreData.topItem; - this.properties.focussedItem = restoreData.focussedItem; - this._lastItemWithFocus = restoreData.focussedItem; -}; - - -/** 9. BACKGROUND API **/ - -/** - * Set a custom background on the list control - * TAG: public - * ========================= - * @return {void} - */ -List2Ctrl.prototype.setListBackground = function(img, position) -{ - this.clearListBackground(); - this.listBackground = document.createElement('div'); - this.listBackground.className = 'List2CtrlCustomBackground'; - this.listBackground.style.backgroundImage = 'url('+img+')'; - - // set background position - if (position && typeof position == 'object' && position['left'] != undefined && position['top'] != undefined) - { - var left = (!isNaN(position['left'])) ? position.left + 'px' : position.left.toString(); - var top = (!isNaN(position['top'])) ? position.top + 'px' : position.top.toString(); - this.listBackground.style.backgroundPosition = left + ' ' + top; - } - - this.divElt.appendChild(this.listBackground); -}; - -/** - * Clear any custom background image - * TAG: public - * ========================= - * @return {void} - */ -List2Ctrl.prototype.clearListBackground = function() -{ - if (this.listBackground) - { - this.listBackground.parentElement.removeChild(this.listBackground); - this.listBackground = null; - } -}; - - - -/** - * ========================= - * HELPERS AND UTILITIES - * ========================= - */ - - /** - * Create Tabs control - * ========================= - * @return The TabsCtrl instance. - */ -List2Ctrl.prototype._createTabsControl = function() -{ - log.debug(' Instantiating TabsCtrl'); - if (this.properties.tabsButtonConfig.tiltStartCallback) - { - log.warn("Lis2: the tabsButtonConfig.tiltStartCallback property was defined outside of the list control but should only be used by the list."); - } - this.properties.tabsButtonConfig.tiltStartCallback = this._tabsCtrlTiltStartCallback.bind(this); - return framework.instantiateControl(this.uiaId, this.divElt, "TabsCtrl", this.properties.tabsButtonConfig); -}; - -/** - * Clear the list contents when the user starts tilting to a new tab. - */ -List2Ctrl.prototype._tabsCtrlTiltStartCallback = function(controlRef, appData, params) -{ - if (this.title) - { - this.title.style.opacity = 0; - } - this.setDataList({}); - this._hideScrollIndicator(); -}; - - -/** - * Tracks touch position properties of the last two events. - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - MouseMove event - * @return {void} - */ -List2Ctrl.prototype._trackEvent = function(e) -{ - // use shallow copy - var trackedEvents = this._trackedEvents; - trackedEvents[0] = trackedEvents[1]; - trackedEvents[1] = { y: e.pageY, x: e.pageX }; -}; - -/** - * Get touch direction upon touch move - * TAG: touch-only, internal - * ========================= - * @return {integer} - 1 for 'down', -1 for 'uo' - */ -List2Ctrl.prototype._getMoveDirection = function() -{ - var trackedEvents = this._trackedEvents, - event0 = trackedEvents[0], - event1 = trackedEvents[1]; - - if (!event0) return 1; - - return (event1.y - event0.y < 0) ? -1 : 1; -}; - -/** - * Get current list position (or specific position relative to supplied item index) - * TAG: internal - * ========================= - * @param {integer} - optional, item index from which to calculate position - * @return {string} - onepage | top | bottom | bottomclose | topclose | middle - */ -List2Ctrl.prototype._getListPosition = function(itemIndex) -{ - // get item index - var itemIndex = (undefined === itemIndex) ? this._topItem : itemIndex; - - // get list position - var listPosition = null; - - // determine list position - if (this.dataList.itemCount <= this.properties.visibleItems) - listPosition = 'onepage'; - else if (0 === itemIndex) - listPosition = 'top'; // list is at the top - else if (itemIndex === this.dataList.itemCount - this.properties.visibleItems) - listPosition = 'bottom'; // list is at the bottom - else if (itemIndex > this.dataList.itemCount - (2 * this.properties.visibleItems)) - listPosition = 'bottomclose'; // list is less than a screen to the bottom - else if (itemIndex < 2 * this.properties.visibleItems) - listPosition = 'topclose'; // list is less than a screen to the top - else - listPosition = 'middle'; // list is somewhere in the middle - - // return list position - return listPosition; -}; - - -/** - * Get additional space that needs to be added to the scroller - * height in order to satisfy the 'half-line' requirements. - * Correction is needed because there's a difference between - * visual style guide and actual item heights. The values are - * fixed and depend on the style. - * TAG: helper - * ========================= - * @return {integer} - */ -List2Ctrl.prototype._getAdditionalSpace = function() -{ - // determine additional space - var additionalSpace = 0; - switch (this.properties.titleConfiguration) - { - case 'noTitle' : - additionalSpace = this.properties.thickItems ? 6 : 32; - break; - case 'tabsTitle' : - additionalSpace = this.properties.thickItems ? 19 : 27; - break; - case 'listTitle' : - switch (this._currentTitle.titleStyle) - { - case 'style02' : - case 'style03' : - additionalSpace = this.properties.thickItems ? 19 : 27; - break; - case 'style05' : - case 'style08' : - additionalSpace = this.properties.thickItems ? 52 : 42; - break; - case 'style06' : - case 'style07' : - additionalSpace = this.properties.thickItems ? 60 : 32; - break; - default : - // nothing to do - break; - } - break; - default : - // nothing to do - break; - } - - - - return additionalSpace; -}; - -/** - * Get empty DOM elements - * Return the first element in the DOM that doesn't - * have data associated with it in the dataList - */ -List2Ctrl.prototype._getEmptyDOMElement = function() -{ - var emptyItem = null; - var items = []; - - // get item indeces and sort them in ascending order - for (var i=0; i return -1 - if (relativeY < 0 || e.pageY - this._maskPositionY < 0) - { - return -1; - } - - var itemIndex = Math.floor(relativeY / this.properties.itemHeight); - - // if we are in the active area but below the last item -> return -1 - if (itemIndex > this.dataList.itemCount - 1) - { - return -1; - } - - // constrain itemIndex to the max possible index - itemIndex = this.m.min(itemIndex, this.dataList.itemCount - 1); - - return itemIndex; -}; - -/** - * Get DOM Element by itemIndex - * Returns a DOM element (or null) for a particular - * item after performing a search for its item index - * TAG: internal, helper - * ========================= - * @param {integer} - index of the list item - * @return {HTML Element} -
  • element - */ -List2Ctrl.prototype._getDOMItem = function(itemIndex) -{ - var domItem = null; - - for (var i=0, l=this.items.length; i return -1 - if (relativeY < 0 || e.pageY - this._maskPositionY < 0) - { - return -1; - } - - var letterIndex = Math.floor(relativeY / this.properties.letterIndexHeight); - - // if we are in the active area but below the last letter index item -> return -1 - if (letterIndex > this.letterIndexData.length - 1) - { - return -1; - } - - // constrain letterIndex to the max possible index - letterIndex = this.m.min(letterIndex, this.letterIndexData.length - 1); - - return letterIndex; -}; - -/** - * Get Slider instance by itemIndex - * TAG: internal, helper - * ========================= - * @param {integer} - index of the list item - * @return {SliderCtrl} - slider instance - */ -List2Ctrl.prototype._getSlider = function(itemIndex) -{ - var sliderCtrl = null; - - var index; - if (utility.toType(itemIndex) === 'number') - { - index = itemIndex; - } - else - { - index = this._getFocussedIndex(); - } - - var domElt = this._getDOMItem(index); - if (domElt) - { - var poolId = domElt.getAttribute('data-poolid'); - var hashKey = 'slider_'+index+'_'+poolId; - - // check whether a slider exists - if (this._sliders.hasOwnProperty(hashKey) && this._sliders[hashKey].slider) - { - sliderCtrl = this._sliders[hashKey].slider; - } - } - - return sliderCtrl; -}; - -/** - * Checks whether the supplied itemIndex contains a slider - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item contains a slider - */ -List2Ctrl.prototype._isSlider = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isSlider = false; - - if (!isNaN(itemIndex)) - { - isSlider = ('style12' === this.dataList.items[itemIndex].itemStyle || 'style13' === this.dataList.items[itemIndex].itemStyle || 'style28' == this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isSlider = ('style12' === itemIndex || 'style13' === itemIndex|| 'style28' === itemIndex); - } - - return isSlider; -}; - -/** - * Checks whether the supplied itemIndex is a lock item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a lock item - */ -List2Ctrl.prototype._isLock = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isLock = false; - - if (!isNaN(itemIndex)) - { - isLock = ('styleLock' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isLock = ('styleLock' === itemIndex); - } - - return isLock; -}; - -/** - * Checks whether the supplied itemIndex contains toggle buttons - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item contains toggle buttons - */ -List2Ctrl.prototype._isToggle = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isToggle = false; - - if (!isNaN(itemIndex)) - { - isToggle = ('style10' === this.dataList.items[itemIndex].itemStyle || 'style11' === this.dataList.items[itemIndex].itemStyle || 'draggable' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isToggle = ('style10' === itemIndex || 'style11' === itemIndex || 'draggable' === itemIndex); - } - - return isToggle; -}; - -/** - * Checks whether the supplied itemIndex is On/Off item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is On/Off - */ -List2Ctrl.prototype._isOnOff = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isOnOff = false; - - if (!isNaN(itemIndex)) - { - isOnOff = ('styleOnOff' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isOnOff = ('styleOnOff' === itemIndex); - } - - return isOnOff; -}; - -/** - * Checks whether the supplied itemIndex is a step item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a step item - */ -List2Ctrl.prototype._isStep = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isStep = false; - - if (!isNaN(itemIndex)) - { - isStep = ('styleStep' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isStep = ('styleStep' === itemIndex); - } - - return isStep; -}; - -/** - * Checks whether the supplied itemIndex is a checkbox - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a checkbox/tick/radio item - */ -List2Ctrl.prototype._isCheckBox = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isCheckbox = false; - - if (!isNaN(itemIndex)) - { - isCheckbox = ('style03' === this.dataList.items[itemIndex].itemStyle || 'style03a' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isCheckbox = ('style03' === itemIndex || 'style03a' === itemIndex); - } - - return isCheckbox; -}; - -/** - * Checks whether the supplied itemIndex is a simple select item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is simple select item - */ -List2Ctrl.prototype._isSimpleSelectItem = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isSimpleSelect = false; - - if (!isNaN(itemIndex)) - { - isSimpleSelect = ('style03' === this.dataList.items[itemIndex].itemStyle || 'style03a' === this.dataList.items[itemIndex].itemStyle || 'styleOnOff' === this.dataList.items[itemIndex].itemStyle || 'style10' === this.dataList.items[itemIndex].itemStyle || 'style11' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isSimpleSelect = ('styleOnOff' === itemIndex || 'style10' === itemIndex || 'style11' === itemIndex); - } - - return isSimpleSelect; -}; - -/** - * Checks whether the item contains _data property - * TAG: internal, helper - * ========================= - * @param {integer} - item index - * @return {Boolean} - True if the item contains _data property - */ -List2Ctrl.prototype._hasData = function(itemIndex) -{ - var containsData = false; - if (this.dataList && this.dataList.items && this.dataList.items[itemIndex]) - { - containsData = this.dataList.items[itemIndex].hasOwnProperty('_data'); - } - return containsData; -}; - -/** - * Wraps inline text element if the width exceeds certain - * max width that depends on the item style. - * TAG: internal, helper - * ========================= - * @param {HTML Li Element} - the LI element that will be searched for overflowing text - * @return {HTML Li Element} - the modified LI element - */ -List2Ctrl.prototype._wrapInlineElement = function(li) -{ - var searchClass = null; - var maxWidth = 0; - - if (li.classList.contains('style17')) - { - searchClass = 'line1'; - maxWidth = this.properties.wrapTextThreshold; - } - else - { - return li; - } - - var line1 = li.getElementsByClassName(searchClass); - if (!line1 || 0 === line1.length) - { - return li; - } - else - { - line1 = line1[0]; - } - - if (line1.clientWidth > maxWidth) - { - line1.classList.add("wrap"); - } - else - { - line1.classList.remove("wrap"); - } - - return li; -}; - -/** - * Checks if the item can be displayed, even if it has no text field. - * TAG: internal, helper - * ===================================================== - * @param {Object} - * @return {Boolean} - */ -List2Ctrl.prototype._displayWithoutText = function(item) -{ - var returnValue = true; - for(var i =0; i < this._itemsWithNoText.length; i++) - { - if(item.itemStyle === this._itemsWithNoText[i]) - { - returnValue = false; - break; - } - } - return returnValue; -}; - -/** - * Checks if the item is a slider with full hittable area - * TAG: internal, helper - * =================================================== - * @param {Object} - * @return {Boolean} - */ -List2Ctrl.prototype._hasRightHittableArea = function(item) -{ - var returnValue = false; - - for(var i =0; i < this._rightHittableArea.length; i++) - { - if(item.itemStyle === this._rightHittableArea[i]) - { - returnValue = true; - break; - } - } - return returnValue; -}; - - -/** - * Show bounding boxes of some elements in the list. - * This should be used for debugging purposes only - * TAG: internal, utility - * ========================= - * @param {Boolean} - * @return {void} - */ -List2Ctrl.prototype.showBoundingBoxes = function(state) -{ - if (state) - { - this.divElt.classList.add('showBoundingBoxes'); - } - else - { - this.divElt.classList.remove('showBoundingBoxes'); - } -}; - - -/** - * Searches an array for a value - * TAG: internal, utility - * ========================= - * @param {string|number} - * @param {array} - * @return {object} - copy of the source object - */ -List2Ctrl.prototype.inArray = function(needle, haystack) -{ - if (!needle || !haystack) - { - log.warn('Lis2: 2 arguments expected'); - return; - } - - for (var i=0, l=haystack.length; i b ? a : b // return the higher - : NaN; // else return NaN (just like the Math class) - }, - abs : function(a) - { - return (!isNaN(a)) ? // if the argument is a number - a < 0 ? -a : a // return the abs - : NaN; // else return NaN (just like the Math class) - } -}; - -/** - * Finish partial activity. - * @return {void} - */ -List2Ctrl.prototype.finishPartialActivity = function() -{ - // route finish partial activity to sub controls - - // tabs ctrl - if (this.tabsCtrl) - { - // delete the assigned callback reference so that it's not stored in the App's context table - delete this.properties.tabsButtonConfig.tiltStartCallback; - this.tabsCtrl.finishPartialActivity(); - } - - // slider - if (this._activeSlider && this._activeSlider.slider) - { - this._activeSlider.slider.finishPartialActivity(); - } - - // list -> exit any items in secondary MC mode - if (this._inSecondaryMulticontroller) - { - var smi = this._currentSecondaryMulticontrollerItem; - if (this.dataList.items[smi] && this._isStep(smi)) - { - this._setSecondaryMulticontroller(false); - this._triggerFocus(); - } - } -}; - -List2Ctrl.prototype.getStationAndRelay = function(stationName,RelayName) -{ - var stationRelay = ""; - if(stationName && RelayName) - { - stationRelay = stationName+" ("+RelayName+")"; - } - else if(stationName && ((RelayName=="")||(RelayName==null))) - { - stationRelay = stationName; - } - else{ - log.debug("Station name and relay not defined"); - } - - return stationRelay; -}; - - -/** - * ========================= - * GARBAGE COLLECTION - * - Clear listeners - * - Clean up subcontrols - * - Clear timeouts - * TAG: framework - * ========================= - * @return {void} - */ -List2Ctrl.prototype.cleanUp = function() -{ - // remove event callbacks - this.divElt.removeEventListener(this._USER_EVENT_START, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - - // remove animation callbacks - this.scroller.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - if (this.scrollIndicator) - { - this.scrollIndicator.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - } - if (this.letterIndex) - { - this.letterIndex.removeEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - } - - // clean up subcontrols - if (this.tabsCtrl) - { - this.tabsCtrl.cleanUp(); - } - for (var i in this._sliders) - { - this._sliders[i]['slider'].cleanUp(); - } - - // clear timeouts - clearTimeout(this._makeHitTimeoutId); - clearTimeout(this._longPressTimeoutId); - clearTimeout(this._touchReorderTimeoutId); - clearTimeout(this._scrollIndicatorTimeoutId); - clearTimeout(this._indexSelectTimeoutId); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - clearTimeout(this._needDataTimeoutId); - clearTimeout(this._loadingData.startTimeoutId); - clearTimeout(this._loadingData.endTimeoutId); - clearTimeout(this._radioSettleTimeoutId); - clearTimeout(this._tickSettleTimeoutId); - if (this.hasDataList()) - { - for (var i=0, l=this.dataList.items.length; i 0 || this.properties.scrollTo > 0) && - (this.m.abs(this.properties.focussedItem - this.properties.scrollTo) <= (this.properties.visibleItems - 2)) ) - { - log.debug('Lis2: Focus is visible on screen'); - this._scrollTo(this.properties.scrollTo, 0); - this._showFocus(this.properties.focussedItem); - this._initialScrollMode = 'init'; - } - // set initial focus to a particular item if the list is populated - // the list will be scrolled so that this item is visible - else if (this.properties.focussedItem > 0) - { - log.debug('Lis2: Focus is not visible and has priority'); - this._showFocus(this.properties.focussedItem); - this._initialScrollMode = 'init'; - } - // scroll (no animation) to a particular item if the list is populated - // the focus will be placed on the top item - else if (this.properties.scrollTo > 0) - { - log.debug('Lis2: Focus is 0 and scrollTo has priority'); - this._scrollTo(this.properties.scrollTo, 0); - this._showFocus(this._topItem); - this._initialScrollMode = 'init'; - } - - // enter list reorder if the list is reordable - if (true === this.properties.listReorder) - { - this._enterListReorder(true); - } - - } - } - else - { - this._setLoading(true); - } - - - /* SET LETTER INDEX DATA */ - if (this.properties.hasLetterIndex && this.properties.letterIndexData) - { - // bind letter index data - this.setLetterIndexData(this.properties.letterIndexData); - } - - /* SET CUSTOM LIST BACKGROUND */ - if (null != this.properties.listBackground && '' != this.properties.listBackground) - { - this.setListBackground(this.properties.listBackground); - } - -}; - - -/** - * ========================= - * LIST ITEMS - * 1. pool (_createPool) - * 2. default items configuration (_prepareItems, _prepareListItem) for every item style - * 3. items localization (_localizeItems, _getLocalizedString) - * 4. pool operations (_setText, _setImage, _getListItem, _returnListItem, _putToScroller, _emptyScroller) - * 5. dynamic list items (_updateRange, _updateDisplay, _requestMore, _fill) - * 6. set internal properties (_checkScrollable, _setTopListItem, _setLoading) - * 7. default title configuration (_prepareTitle) - * ========================= - */ - -/** 1. POOL **/ - -/** - * Create list items pool - * Add HTML elements to each item in the pool - * depending on its style - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._createPool = function() -{ - this.pool = { - empty : new Array(), // 'empty' is internal style - draggable : new Array(), // 'draggable' is internal style - ghost : new Array(), // 'ghost' is internal style - - style01 : new Array(), - style02 : new Array(), - style03 : new Array(), - style03a : new Array(), - style04 : new Array(), - style05 : new Array(), - style06 : new Array(), - style07 : new Array(), - style09 : new Array(), - style10 : new Array(), - style11 : new Array(), - style12 : new Array(), - style13 : new Array(), // deprecated - style14 : new Array(), - style17 : new Array(), - style18 : new Array(), - style19 : new Array(), - style20 : new Array(), - style21 : new Array(), - style22 : new Array(), - // TODO: style23 - same as style12 - // TODO: style24 - same as style12 - style25 : new Array(), - styleOnOff : new Array(), // not official name - styleStep : new Array(), // TODO: rename this to style26 - styleLock : new Array(), // not official name - style28 : new Array(), - style29 : new Array(), - style38 : new Array() - }; - - // the pool size (this.properties.poolsize) should be at least 3 times - // the visible items (one for above and two for below the top item) - var line1, line2, - image1, image2, - label1, label2, - button1, button2, button3, - caret; - - for (var i in this.pool) - { - for (var j=0; j no content - break; - - case 'draggable' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - button1 = document.createElement('span'); - button1.className = 'button buttonOk'; - li.appendChild(button1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - break; - - case 'ghost' : - // ghost item -> no contet - break; - - case 'style01' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style02' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style03' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style03a' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style04' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style05' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style06' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style07' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style09' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style10' : - var buttonsWrapper = document.createElement('div'); - buttonsWrapper.className = 'buttonsWrapper'; - li.appendChild(buttonsWrapper); - - button1 = document.createElement('span'); - button1.className = 'button button1'; - buttonsWrapper.appendChild(button1); - - button2 = document.createElement('span'); - button2.className = 'button button2'; - buttonsWrapper.appendChild(button2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - break; - - case 'style11' : - var buttonsWrapper = document.createElement('div'); - buttonsWrapper.className = 'buttonsWrapper'; - li.appendChild(buttonsWrapper); - - button1 = document.createElement('span'); - button1.className = 'button button1'; - buttonsWrapper.appendChild(button1); - - button2 = document.createElement('span'); - button2.className = 'button button2'; - buttonsWrapper.appendChild(button2); - - button3 = document.createElement('span'); - button3.className = 'button button3'; - buttonsWrapper.appendChild(button3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style12' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - break; - - case 'style13' : - // style13 is deprecated - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - break; - - case 'style14' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - label1 = document.createElement('span'); - label1.className = 'label1'; - subcontainer.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - break; - - case 'style17' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - // label is inside line1 element to allow natural text flow - label1 = document.createElement('span'); - label1.className = 'label1'; - line1.appendChild(label1); - - break; - - case 'style18' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - label1 = document.createElement('span'); - label1.className = 'label1'; - subcontainer.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - break; - - case 'style19' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - break; - - case 'style20' : - button1 = document.createElement('span'); - button1.className = 'button1'; - li.appendChild(button1); - - break; - - case 'style21' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style22' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style25' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'styleOnOff' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'styleStep' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - var plusSign = document.createElement('span'); - plusSign.className = 'plus'; - li.appendChild(plusSign); - - var minusSign = document.createElement('span'); - minusSign.className = 'minus'; - li.appendChild(minusSign); - - break; - - case 'styleLock' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2 buttonLock'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3 buttonDelete'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style28' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - break; - - case 'style29' : - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - break; - - case 'style38' : - - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - break; - - default : - log.error('List2: unknown list item style in pool: ' + i); - break; - - } - - // add common elements - caret = document.createElement('span'); - caret.className = 'caret'; - li.appendChild(caret); - - - this.pool[i].push(li); - } - } - -}; - -/** 2. DEFAULT ITEMS CONFIGURATION **/ - -/** - * Prepare items - * Extend the whole dataList so that every item - * meet the required structure. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._prepareItems = function(firstItem, lastItem) -{ - if ((firstItem == null) || (firstItem < 0)) - { - firstItem = 0; - } - - if ((lastItem == null) || (lastItem >= this.dataList.items.length)) - { - lastItem = this.dataList.items.length - 1; - } - - for (var i=firstItem, l=lastItem; i<=l; i++) - { - this.dataList.items[i] = this._prepareListItem(this.dataList.items[i]); - } - -}; - -/** - * Prepare list item - * A list item can be defined with minimal set of properties - * that are needed for its proper display. In fact these - * properties extend the default list item structure defined below. - * This function sets default configuration for a valid list item and merge - * it with the custom configuration passed to the item. - * TAG: internal - * ========================= - * @param {object} - the list item that will be set a default set of properties and will be returned - * @return {object} - the complete list item - */ -List2Ctrl.prototype._prepareListItem = function(item) -{ - // The itemStyle property is required - if (!item.hasOwnProperty('itemStyle')) - { - log.error('List2: list item should have itemStyle property: ' + item); - return; - } - - /* - * All types of list items extend this - * default structure by overriding the - * values and adding specific ones. The - * extended structure is then returned to be - * fed in the dataList container. - */ - var completeItem = { - appData : null, // Any kind of data that will be passed in the callbacks - text1Id : null, // String ID of the label - text1SubMap : null, // String Sub Map of the label - text1 : '', // Textual content of the label - hasCaret : true, // Show the caret icon on the right of the item - disabled : false, // Whether the list item is disabled - styleMod : '', // Style modifier, 'hint', 'bold', or ''/omitted - disabledStyleMod: "normal", // Disabled style modifier, 'normal' or 'white' - background : 'normal', // Background modifier, 'normal' or 'grey' - itemStyle : '', // String indicating the list type - itemBehavior : 'shortPressOnly', // String "hold" behavior for the item ('shortPressOnly', 'shortAndHold', or 'shortAndLong') - vuiSelectable: true, // Boolean for some items that cannot be selected by vui even when they are enabled - _data : { // Object containing any item-specific data used ONLY by the control - eventTimeout : null, - lastEvent : null, - settleTimeout : null, - lastUpdated : null, - settleValue : null, - } - }; - - // extend the default structure with default specific properties - var specificItem = {}; - switch (item.itemStyle) - { - case 'empty' : - specificItem = { hasCaret : false }; - break; - case 'draggable' : - specificItem = { image1:'', button1Id:null, button1SubMap:null, button1:''}; - break; - case 'ghost' : - specificItem = {}; - break; - case 'style01' : - specificItem = { image1:'', indented:false }; - break; - case 'style02' : - specificItem = { image1:'', image2:'' }; - break; - case 'style03' : - specificItem = { image1:'', image2:'', image3:'', checked:false, indented:false }; - break; - case 'style03a' : - specificItem = { image1: '', label1Id: null, label1SubMap: null, label1: '', checked: false, labelWidth: 'wide2', label1Align:'right', styleMod: "hint"}; - break; - case 'style04' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style05' : - specificItem = { image1:'', image2:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style06' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', labelWidth:'normal', label1Align:'right', label1Warning:false }; - break; - case 'style07' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'', labelWidth:'normal', label1Align:'right', label1Warning:false, label2Align:'right', label2Warning:false }; - break; - case 'style09' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'', labelWidth:'normal', label1Align:'right', label1Warning:false, label2Align:'right', label2Warning:false }; - break; - case 'style10' : - specificItem = { button1Id:null, button1SubMap:null, button1:'', button2Id:null, button2SubMap:null, button2:'', value:1, indeterminate:false, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'style11' : - specificItem = { button1Id:null, button1SubMap:null, button1:'', button2Id:null, button2SubMap:null, button2:'', button3Id:null, button3SubMap:null, button3:'', value:1, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'style12' : - specificItem = { image1:'', min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:false, minChangeInterval:this.properties.minChangeInterval, settleTime:this.properties.settleTime, rotationIdleDetectTime:this.properties.rotationIdleDetectTime }; - break; - case 'style13' : - // deprecated - issue a warning - log.warn(this.uiaId + ': List2 style13 has been deprecated. Please use style12 instead. Setting pivot=True. Check SDD for details.'); - specificItem = { min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:true }; - break; - case 'style14' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', text1Align:'left' }; - break; - case 'style17' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'' }; - break; - case 'style18' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'' }; - break; - case 'style19' : - specificItem = { image1:'' }; - break; - case 'style20' : - // nothing specific for this style - break; - case 'style21' : - specificItem = { image1:'', image2:'', label1Id:null, label1SubMap:null, label1:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style22' : - specificItem = { image1:'', image2:'', label1Id:null, label1SubMap:null, label1:'', indented:false }; - case 'style25' : - specificItem = { image1:'', image2:'', image3:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'styleOnOff' : - specificItem = { image1:'', value:2, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'styleStep' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2:'', min:0, max:36, increment:1, value:0, warning:false }; - break; - case 'styleLock' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'', locked:false }; - break; - case 'style28' : - specificItem = { image1:'', min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:false, minChangeInterval:this.properties.minChangeInterval, settleTime:this.properties.settleTime, rotationIdleDetectTime:this.properties.rotationIdleDetectTime, indented : false }; - break; - case 'style29' : - specificItem = { label1Id:null, label1SubMap:null, label1:'',label2Id:null, label2SubMap:null, label2:'', image1:'' }; - break; - case 'style38' : - specificItem = {image1:'' ,text1Id:null, text1SubMap:null, text1:'',label1SubMap:null, label1:'',label2Id:null, label2SubMap:null, label2:'' ,image2:''}; - break; - default : - log.error('List2: unknown item style: ' + item.itemStyle); - break; - } - - // Extend default structure with the specific one - for (var i in specificItem) - { - completeItem[i] = specificItem[i]; - } - - // Extend default structure with the supplied item - for (var j in item) - { - completeItem[j] = item[j]; - } - - return completeItem; -}; - - -List2Ctrl.prototype._updateModifiedTimestamps = function(firstItem, lastItem) -{ - // update lastModified timestamp - var now = new Date().getTime(); - for (var i=firstItem; i<=lastItem; i++) - { - if (this._hasData(i)) - { - this.dataList.items[i]._data.lastUpdated = now; - } - } -}; - - -/** 3. ITEMS LOCALIZATION **/ - -/** - * Localize items - * Localize text in known list items using localization framework. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._localizeItems = function(firstItem, lastItem) -{ - log.debug('Localizing...'); - - if ((firstItem == null) || (firstItem < 0)) - { - firstItem = 0; - } - - if ((lastItem == null) ||(lastItem >= this.dataList.items.length)) - { - lastItem = this.dataList.items.length - 1; - } - - // iterate through the dataList - for (var i=firstItem, l=lastItem; i<=l; i++) - { - switch (this.dataList.items[i].itemStyle) - { - // no elements - case 'empty' : - // do nothing - break; - - // text1, button1 - case 'draggable' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - //label1 and label2 only supports for style38 for reorderList - if(this._reorderItem.itemStyle === "style38") - { - if (this.dataList.items[i].laebl1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].laebl1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].laebl2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].laebl2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - break; - - // no elements - case 'ghost' : - // do nothing - break; - - // text1 - case 'style01' : - case 'style02' : - case 'style03' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - case 'style03a' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, text2 - case 'style04' : - case 'style05' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - // text1, label1 - case 'style06' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1, label2 - case 'style07' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1, text2, label1, label2 - case 'style09' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1, button1, button2 - case 'style10' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - if (this.dataList.items[i].button2Id) - { - var button2 = this._getLocalizedString(this.dataList.items[i].button2Id, this.dataList.items[i].button2SubMap); - this.dataList.items[i].button2 = button2; - } - break; - - // text1, button1, button2, button3 - case 'style11' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - if (this.dataList.items[i].button2Id) - { - var button2 = this._getLocalizedString(this.dataList.items[i].button2Id, this.dataList.items[i].button2SubMap); - this.dataList.items[i].button2 = button2; - } - if (this.dataList.items[i].button3Id) - { - var button3 = this._getLocalizedString(this.dataList.items[i].button3Id, this.dataList.items[i].button3SubMap); - this.dataList.items[i].button3 = button3; - } - break; - - // text1, labelLeft, labelRight - case 'style12' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, labelLeft, labelCenter, labelRight - case 'style13' : - // style13 is deprecated - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, label1 - case 'style14' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1 - case 'style17' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1, label2 - case 'style18' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1 - case 'style19' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1 - case 'style20' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, text2, label1 - case 'style21' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1 - case 'style22' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, text2 - case 'style25' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - // text1 - case 'styleOnOff' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, label1, label2 - case 'styleStep' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, {value:this.dataList.items[i].value}); - this.dataList.items[i].label2 = label2; - } - else - { - log.warn(this.uiaId + ' possible issue. Lis2: item ' + i + ' does not specify label2Id'); - } - break; - - // text1, text2 - case 'styleLock' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - case 'style29' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - - case 'style38' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, {value:this.dataList.items[i].value}); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, {value:this.dataList.items[i].value}); - this.dataList.items[i].label2 = label2; - } - break; - - } - - } -}; - -/** - * Get localization entry for a string id - * TAG: internal - * ========================= - * @return {string} - */ -List2Ctrl.prototype._getLocalizedString = function(labelId, subMap) -{ - return framework.localize.getLocStr(this.uiaId, labelId, subMap); -}; - -/** 4. POOL OPERATIONS **/ - -/** - * Set line 1 content - * This helper function clears any previous content for the supplied - * element class and sets new one. Then the list item is returned. - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {string} - textual content to be inserted - * @param {boolean} - do not remove child html tags when inserting textual content - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setText = function(li, className, content, preserveHTML) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - if (!content) - { - content = ''; - } - li.querySelector(className).innerText = ''; - li.querySelector(className).appendChild(document.createTextNode(content)); - return li; -}; - -/** - * Set image background - * This helper function clears any previous path for the supplied - * image class and sets new one. Then the list item is returned. - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {string} - path to the image - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setImage = function(li, className, url) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - li.querySelector(className).style.backgroundImage = ''; - if ('' != url) - { - li.querySelector(className).style.backgroundImage = 'url(' + url + ')'; - } - return li; -}; - -/** - * Set slider - * This helper function clears any previous slider in the list item - * and cleans up local references. It then creates a new slider control - * inside the list item and sets its values - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {object} - slider configuration - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setSlider = function(li, className, sliderProperties, itemIndex) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - - // get current item poolid - var poolId = li.getAttribute('data-poolid'); - - // get previous itemIndex for this particular li - var prevItemIndex = li.getAttribute('data-ref'); - - // destruct any previous sliders for this poolid and previous index - if (prevItemIndex != 'undefined') - { - var hashKey = 'slider_'+prevItemIndex+'_'+poolId; - - // remove slider from the hash and the DOM - if (this._sliders.hasOwnProperty(hashKey)) - { - this._sliders[hashKey]['slider'].cleanUp(); - this._sliders[hashKey]['slider'].divElt.parentElement.removeChild(this._sliders[hashKey]['slider'].divElt); - } - } - - // add slider to the hash and the DOM - var sliderCont = li.querySelector(className); - if (sliderProperties && sliderCont) - { - var hashKey = 'slider_'+itemIndex+'_'+poolId; - - // instantiate slider and add it to the _sliders hash - this._sliders[hashKey] = {}; - this._sliders[hashKey]['itemIndex'] = itemIndex; - this._sliders[hashKey]['poolId'] = poolId; - this._sliders[hashKey]['slider'] = framework.instantiateControl(this.uiaId, sliderCont, 'SliderCtrl', sliderProperties); - } - return li; -}; - -/** - * Set toggle - * This helper function clears any previous toggled buttons in - * the supplied list item and sets initial toggle value - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {object} - slider configuration - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setToggle = function(li, className, value) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - var buttons = li.querySelectorAll(className); - for (var i=0; i element wit proper elements inside - */ -List2Ctrl.prototype._getListItem = function(listItem, dataListIndex) -{ - - // get it from the pool - var li = this.pool[listItem.itemStyle].shift(); - - // remove any residual touch classes - li.classList.remove('hit'); - li.classList.remove('focus'); - li.classList.remove('longpress'); - li.classList.remove('secondaryFocus'); - - // add content to it following style definitions - switch (listItem.itemStyle) - { - case 'empty' : - // empty item -> no content - break; - - case 'draggable' : - // listItem : { text1:String, image1:String, button1:String } - this._setText(li, '.line1', listItem.text1); - if(this._reorderItem.itemStyle === "style38" ) - { - //For style 38 line1 width should be shorter as compare the other style. - li.querySelector(".line1").classList.add('shortText') - } - - //label1 and label2 only supports for style38 for reorderList - if(this._reorderItem.itemStyle === "style38" ) - { - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - } - this._setImage(li, '.image1', listItem.image1); - this._setText(li, '.buttonOk', listItem.button1); - break; - - case 'ghost' : - // list item : {} - break; - - case 'style01' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style02' : - // listItem : { text1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - if (listItem.image2 === 'indeterminate') - { - li.classList.add('indeterminate'); - } - else - { - li.classList.remove('indeterminate'); - this._setImage(li, '.image2', listItem.image2); - } - break; - - case 'style03' : - // listItem : { text1:String, image1:String, image2:String, checked:Boolean } - this._setText(li, '.line1', listItem.text1); - if (listItem.image1 === 'checkbox') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('checkbox'); - } - else if (listItem.image1 === 'radio') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('radio'); - } - else if (listItem.image1 === 'tick') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('tick'); - } - else - { - li.classList.remove('checkbox'); - li.classList.remove('radio'); - li.classList.remove('tick'); - this._setImage(li, '.image1', listItem.image1); - } - this._setImage(li, '.image2', listItem.image2); - this._setImage(li, '.image3', listItem.image3); - if (listItem.checked) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style03a' : - // listItem : { text1:String, image1:String, label1: String} - this._setText(li, '.line1', listItem.text1); - if (listItem.image1 === 'checkbox') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('checkbox'); - } - else if (listItem.image1 === 'radio') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('radio'); - } - else if (listItem.image1 === 'tick') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('tick'); - } - else - { - li.classList.remove('checkbox'); - li.classList.remove('radio'); - li.classList.remove('tick'); - this._setImage(li, '.image1', listItem.image1); - } - - if (listItem.checked) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - - this._setText(li, '.label1', listItem.label1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style04' : - // listItem : { text1:String, text2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style05' : - // listItem : { text1:String, text2:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - break; - - case 'style06' : - // listItem : { text1:String, label1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style07' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - li.classList.remove('label2Right'); - li.classList.remove('label2Left'); - li.classList.remove('label2Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - switch (listItem.label2Align) - { - case 'right' : li.classList.add('label2Right'); break; - case 'left' : li.classList.add('label2Left'); break; - case 'center' : li.classList.add('label2Center'); break; - default : li.classList.add('label2Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - if (listItem.label2Warning) - li.classList.add('label2Warning'); - else - li.classList.remove('label2Warning'); - - break; - - case 'style09' : - // listItem : { text1:String, text2:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - li.classList.remove('label2Right'); - li.classList.remove('label2Left'); - li.classList.remove('label2Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - switch (listItem.label2Align) - { - case 'right' : li.classList.add('label2Right'); break; - case 'left' : li.classList.add('label2Left'); break; - case 'center' : li.classList.add('label2Center'); break; - default : li.classList.add('label2Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - if (listItem.label2Warning) - li.classList.add('label2Warning'); - else - li.classList.remove('label2Warning'); - - break; - - case 'style10' : - // listItem : { text1:String, button1:String, button2:String, value:Integer } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.button1', listItem.button1); - this._setText(li, '.button2', listItem.button2); - this._setToggle(li, '.button', this.m.max(this.m.min(listItem.value, 2), 0) ); - if (listItem.indeterminate) - { - li.classList.add('indeterminate'); - } - else - { - li.classList.remove('indeterminate'); - } - break; - - case 'style11' : - // listItem : { text1:String, button1:String, button2:String, button3:String, value:Integer } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.button1', listItem.button1); - this._setText(li, '.button2', listItem.button2); - this._setText(li, '.button3', listItem.button3); - this._setToggle(li, '.button', this.m.max(this.m.min(listItem.value, 3), 0) ); - break; - - case 'style12' : - // listItem : { text1:String, image1:String, labelLeft:String, labelRight:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - - // extend tickmark object - if (listItem.tickMarkObject) - { - listItem.tickMarkObject.tickMarkStyle = "List2CtrlSliderTickMark"; - listItem.tickMarkObject.centerMarkTopStyle = "List2CtrlCenterMarkTop"; - listItem.tickMarkObject.centerMarkBottomStyle = "List2CtrlCenterMarkBottom"; - listItem.tickMarkObject.numberStyle = "List2CtrlTickNumber"; - } - - // extend label object - if (listItem.labelObject) - { - listItem.labelObject.leftLabelStyle = "List2CtrlSliderLeftLabel"; - listItem.labelObject.rightLabelStyle = "List2CtrlSliderRightLabel"; - listItem.labelObject.centerLabelStyle = "List2CtrlSliderCenterLabel"; - } - - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: listItem.minChangeInterval, - settleTime: listItem.settleTime, - rotationIdleDetectTime: listItem.rotationIdleDetectTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - - case 'style13' : - // TODO: style13 has been depricated - // listItem : { text1:String, labelLeft:String, labelCenter:String, labelRight:String } - this._setText(li, '.line1', listItem.text1); - - // extend tickmark object - if (listItem.tickMarkObject) - { - listItem.tickMarkObject.tickMarkStyle = "List2CtrlSliderTickMark"; - listItem.tickMarkObject.centerMarkTopStyle = "List2CtrlCenterMarkTop"; - listItem.tickMarkObject.centerMarkBottomStyle = "List2CtrlCenterMarkBottom"; - listItem.tickMarkObject.numberStyle = "List2CtrlTickNumber"; - } - - // extend label object - if (listItem.labelObject) - { - listItem.labelObject.leftLabelStyle = "List2CtrlSliderLeftLabel"; - listItem.labelObject.rightLabelStyle = "List2CtrlSliderRightLabel"; - listItem.labelObject.centerLabelStyle = "List2CtrlSliderCenterLabel"; - } - - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: this.properties.minChangeInterval, - settleTime: this.properties.settleTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - - case 'style14' : - // listItem : { text1:String, label1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - - if ('right' == listItem.text1Align) - { - li.classList.add('text1AlignRight'); - } - else - { - li.classList.remove('text1AlignRight'); - } - - break; - - case 'style17' : - // listItem : { text1:String, label1:String, image1:String } - li.querySelector('.line1').innerText = ''; - var label1 = document.createElement('span'); - label1.className = 'label1'; - label1.appendChild(document.createTextNode(listItem.label1)); - li.querySelector('.line1').appendChild(label1); - li.querySelector('.line1').appendChild(document.createTextNode(listItem.text1)); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style18' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style19' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style20' : - // listItem : { text1:String } - this._setText(li, '.button1', listItem.text1); - break; - - case 'style21' : - // listItem : { text1:String, text2:String, label1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style22' : - // listItem : { text1:String, label1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style25' : - // listItem : { text1:String, text2:String, image1:String, image2:String, image3:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - this._setImage(li, '.image3', listItem.image3); - break; - - case 'styleOnOff' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - if (listItem.value === 1) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - break; - - case 'styleStep' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - li.classList.remove('maxReached'); - li.classList.remove('minReached'); - if (listItem.value === listItem.max) - { - li.classList.add('maxReached'); - } - else if (listItem.value === listItem.min) - { - li.classList.add('minReached'); - } - - // configure label warning - if (listItem.warning) - li.classList.add('warning'); - else - li.classList.remove('warning'); - - break; - - case 'styleLock' : - // listItem : { text1:String, text2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - if (listItem.locked) - { - li.classList.add('locked'); - } - else - { - li.classList.remove('locked'); - } - break; - - case 'style28' : - // listItem : { text1:String, image1:String, labelLeft:String, labelRight:String } - this._setImage(li, '.image1', listItem.image1); - - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: listItem.minChangeInterval, - settleTime: listItem.settleTime, - rotationIdleDetectTime: listItem.rotationIdleDetectTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - - - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - - case 'style29': - - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style38': - - if(listItem.text1) - { - this._setImage(li, '.image1', listItem.image1); - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image2', listItem.image2); - } - else - { - this._setImage(li, '.image1', listItem.image1); - this._setText(li, '.line1', ""); - this._setText(li, '.label1', ""); - this._setText(li, '.label2', ""); - this._setImage(li, '.image2', listItem.image2); - - } - break; - } - - /* ITEM MODIFICATORS */ - // add/remove hasCaret class - if (listItem.hasCaret) - { - li.classList.add('hasCaret'); - } - else - { - li.classList.remove('hasCaret'); - } - - // add/remove disabled class - if (listItem.disabled) - { - li.classList.add('disabled'); - } - else - { - li.classList.remove('disabled'); - } - - // add/remove styleMod class (hint/bold/'') - if ('hint' == listItem.styleMod) - { - li.classList.remove('bold'); - li.classList.add('hint'); - } - else if ('bold' == listItem.styleMod) - { - li.classList.remove('hint'); - li.classList.add('bold'); - } - else if ('both' == listItem.styleMod) - { - li.classList.add('hint'); - li.classList.add('bold'); - } - else - { - li.classList.remove('hint'); - li.classList.remove('bold'); - } - - // add/remove background modifier class (normal/grey) - if ('grey' == listItem.background) - { - li.classList.remove('bgLightGrey'); - li.classList.add('bgGrey'); - } - else if('lightGrey' == listItem.background) - { - li.classList.remove('bgGrey'); - li.classList.add('bgLightGrey'); - } - else - { - li.classList.remove('bgLightGrey'); - li.classList.remove('bgGrey'); - } - - // add disabled style mod - if ('white' === listItem.disabledStyleMod) - { - li.classList.add("disabledWhite"); - } - - // return it - return li; - -}; - -/** - * Return list item to the pool - * This will result in increasing the pool contents - * with one item. The returned item will be removed from the DOM. - * However, its content will not be reset as this is done in the - * process of any subsequent pool extraction (see _getListItem() above) - * TAG: internal - * ========================= - * @param {HTML element} -
  • element from the DOM - * @return {void} - */ -List2Ctrl.prototype._returnListItem = function(li) -{ - // get the style - var itemStyle = li.getAttribute('data-itemStyle'); - // reset it - li.style.top = '0px'; - // remove it - li.parentNode.removeChild(li); - - // put it back to the pool - this.pool[itemStyle].push(li); -}; - -/** - * Put a list item to the scroller - * TAG: internal - * ========================= - * @param {HTML element} -
  • element from the DOM - * @param {integer} - * @param {string} - * @return {void} - */ -List2Ctrl.prototype._putToScroller = function(li, index, operation) -{ - li.style.top = index * this.properties.itemHeight + 'px'; - li.setAttribute('data-ref', index); - - - if (operation == 'prepend') - { - this.items.unshift({ref:index, domElt:li}); - this.scroller.insertBefore(li, this.scroller.firstChild); - - this._wrapInlineElement(li); - } - else if (operation == 'append') - { - this.items.push({ref:index, domElt:li}); - this.scroller.appendChild(li); - - this._wrapInlineElement(li); - } - else if (!isNaN(operation)) - { - this.items.splice(operation, 0, {ref:index, domElt:li}); - - // insertBefore breaks in Opera - use appendChild instead - // this.scroller.insertBefore(li, this.items[operation+1]); - this.scroller.appendChild(li); - - this._wrapInlineElement(li); - } - else - { - log.error('Lis2: unknown _putToScroller() operation: ' + li + ' ' + index + ' ' + operation); - } - -}; - -/** - * Return everything into the pool and empty the scroller - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._emptyScroller = function() -{ - for (var i=0, l=this.items.length; i itemsOnScreen) - { - // return everything into the pool - var itemsLength = this.items.length; - for (var i=0; i < itemsLength; i++) - { - var item = this.items.shift(); - this._returnListItem(item.domElt); - } - - var dataListIndex = 0; - - if (topItem < this.dataList.items.length - Math.round(itemsOnScreen / 2) && - topItem > Math.round((itemsOnScreen / 2)) ) - { - - - // WE ARE IN THE MIDDLE - - for (var i=0; i < itemsLength; i++) - { - dataListIndex = (topItem - itemsBefore) + i; - - // we've reached the end of the dataList. No more items to add -> break - if (dataListIndex >= this.dataList.items.length) - { - break; - } - - // request it if it is empty - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'middle'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - } - - } - else - { - - if (numOfScrolledElements > 0) - { - - // PRESSED END BUTTON - - for (var i=0; i < itemsLength; i++) - { - - dataListIndex = (this.dataList.items.length - itemsLength) + i; - - // request it if it is empty - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'down'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - } - - } - else if (numOfScrolledElements < 0) - { - - // PRESSED HOME BUTTON - - for (var i=0; i < itemsLength; i++) - { - - dataListIndex = i; - - - // request it if it is empty - if (this.dataList.items[dataListIndex].itemStyle === 'empty' || (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex]))) - { - this._requestMore(dataListIndex, 'down'); - log.debug('Requesting items ' + dataListIndex); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - - } - - } - - } - - - } - else - { - - - - if (numOfScrolledElements > 0) - { - - /* SCROLL DOWN BOF */ - - // return to pool - var firstItemRef = this.items[0].ref; - var bottomDifference = topItem - firstItemRef; - var extraEls = bottomDifference - itemsBefore; - - // extraEls cannot be more than the poolsize - NOTE: this breaks the items array - // extraEls = this.m.min(extraEls, this.properties.poolsize-1); - // extraEls cannot be more than the items array - NOTE: introduced not to break the items array - extraEls = this.m.min(extraEls, this.items.length-1); - - log.debug(' Scroll Down - extraEls ' + extraEls); - - if (extraEls > 0) - { - - for (var i=0; i < extraEls; i++) - { - var item = this.items.shift(); - this._returnListItem(item.domElt); - } - - } - - // lastItemRef = this.items[this.items.length-1].ref; - // Note: this is not defined as a separate variable because the - // this.items array is being modified in the below cycle - - // get from pool - var topDifference = this.items[this.items.length-1].ref - ( topItem - 1 ); - var newEls = ( itemsAfter + 1 ) - topDifference; - - // newEls cannot be more than the poolsize - newEls = this.m.min(newEls, this.properties.poolsize-1); - - log.debug(' Scroll Down - newEls ' + newEls); - - if (newEls > 0) - { - - for (var i=0; i break - log.debug('end of list'); - break; - } - - } - - } - - /* SCROLL DOWN EOF */ - - } - else if (numOfScrolledElements < 0) - { - - /* SCROLL UP BOF */ - - // return to pool - var topDifference = this.items[this.items.length-1].ref - topItem + 1; - var extraEls = topDifference - ( itemsAfter + 1 ); - - // extraEls cannot be more than the poolsize - NOTE: this breaks the items array - // extraEls = this.m.min(extraEls, this.properties.poolsize-1); - // extraEls cannot be more than the items array - NOTE: introduced not to break the items array - extraEls = this.m.min(extraEls, this.items.length-1); - - log.debug(' Scroll Up - extraEls ' + extraEls); - - if ( extraEls > 0 ) - { - - for (var i=0; i < extraEls; i++) - { - var item = this.items.pop(); - this._returnListItem(item.domElt); - } - - } - - - // firstItemRef = this.items[0].ref; - // Note: this is not defined as a separate variable because the - // this.items array is being modified in the below cycle - - // get from pool - var bottomDifference = topItem - this.items[0].ref; - var newEls = itemsBefore - bottomDifference; - - // newEls cannot be more than the poolsize - newEls = this.m.min(newEls, this.properties.poolsize-1); - - log.debug(' Scroll Up - newEls ' + newEls); - - if (newEls > 0) - { - - for (var i=0; i= 0) - { - - // if empty item is encountered, request more data - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'up'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'prepend'); - - } - else - { - // we've reached the beginning of the dataList array => break - log.debug('beginning of list'); - break; - } - - } // for - - } - else - { - log.debug('no new elements'); - } - - /* SCROLL UP EOF */ - - } - else - { - // there's no scroll => do nothing - } - - - - } // closes if (this.m.abs(numOfScrolledElements) > itemsOnScreen) - -}; - - -/** - * Redraw updated items that are currently visible - * TAG: internal - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._updateDisplay = function(firstItem, lastItem) -{ - - var firstItemRef = this.items[0].ref; - var lastItemRef = this.items[this.items.length-1].ref; - - // update only when the updated items overlap with the visible items - if ( (firstItem >= firstItemRef && firstItem <= lastItemRef) || - (firstItem <= firstItemRef && lastItem >= firstItemRef) ) - { - - var firstToUpdate = this.m.max(firstItem, firstItemRef); - var lastToUpdate = this.m.min(lastItem, lastItemRef); - var firstToUpdateIndex = firstToUpdate - firstItemRef; - var lastToUpdateIndex = (lastToUpdate - firstToUpdate) + firstToUpdateIndex; - - for (var i=firstToUpdateIndex; i<=lastToUpdateIndex; i++ ) - { - - var returnItem = this.items.splice(i,1); - var dataListIndex = returnItem[0].ref; - - // return to pool - this._returnListItem(returnItem[0].domElt); - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // recover secondary focus - if (this._inSecondaryMulticontroller && this._currentSecondaryMulticontrollerItem === dataListIndex) - { - li.classList.add('focus'); - li.classList.add('secondaryFocus'); - } - - // put it to scroller - this._putToScroller(li, dataListIndex, i); - - } - - } - - // update _isScrollable flag - this._checkScrollable(); - -}; - -/** - * Request more list items - * TAG: internal - * ========================= - * @param {integer} - * @param {string} - * @return {void} - */ -List2Ctrl.prototype._requestMore = function(index, direction) -{ - - // do not request more if a previous request is pending - if (!this._inLoading) - { - if(this._appIsAtSpeed) - { - return; // do not do anything if the list gets this._appIsAtSpeed - } - else - { - // indicate loading is in progress - this._setLoading(true); - - if (direction == 'up') - { - // we add 1 to the requestSize to include the last element in the way up - index = this.m.max(index - this.properties.requestSize + 1, 0); - - } - else if (direction == 'middle') - { - // we request 25 items on each direction from the topItem - index = this.m.max(index, 0); - - } - - // build additional data - var additionalParams = { - topItem : this._topItem, - visibleItems : this.properties.visibleItems, - ranges : this.getEmptyRange(), - }; - - log.debug('Request items from ' + index + ' to ' + index+this.properties.requestSize + ' ' + direction); - - // call needDataCallback if it is defined. The first empty item is - if (typeof this.properties.needDataCallback == 'function') - { - this.properties.needDataCallback(index, additionalParams); - } - - // set timeout for data population - clearTimeout(this._needDataTimeoutId); - this._needDataTimeoutId = setTimeout(this._needDataTimeoutCallback.bind(this, index), this.properties.needDataTimeout); - } - } - -}; - -List2Ctrl.prototype._needDataTimeoutCallback = function(index) -{ - log.warn('Lis2: control has requested items from index ' + index + ' but has not receieved them yet. Enabling the list.'); - this._setLoading(false); -}; - -/** - * Initial pool operation - * TAG: internal - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._fill = function(firstItem, lastItem) -{ - - log.debug('Start pool operation'); - log.debug('POOL | ITEMS'); - - // get items from the pool - for (var i=firstItem; i<=lastItem; i++) - { - // get it from the pool - var li = this._getListItem(this.dataList.items[i], i); - - // put it to scroller - this._putToScroller(li, i, 'append'); - - log.debug(this.pool[this.dataList.items[i].itemStyle].length + ' -> ' + this.items.length); - } - - this._hasFill = true; - - // update _isScrollable flag - var scrollable = this._checkScrollable(); - - // show/hide scroll indicator - if (!scrollable || (scrollable && this.properties.hasLetterIndex)) - { - this._hideScrollIndicator(); - } - else - { - this._showScrollIndicator(); - } - - log.debug('End pool operation'); - -}; - -/** SET INTERNAL PROPERTIES **/ - -/** - * Update _isScrollable flag - * TAG: internal - * ========================= - * @return {boolean} - returns _isScrollable - */ -List2Ctrl.prototype._checkScrollable = function() -{ - if (this.dataList.items.length > this.properties.visibleItems) - { - this._isScrollable = true; - } - else - { - this._isScrollable = false; - } - - return this._isScrollable; -}; - -/** - * Update _topItem property - * TAG: internal - * ========================= - * @param {integer} - top item index - * @return {integer} - returns _topItem - */ -List2Ctrl.prototype._setTopListItem = function(pos) -{ - // pos should be number for proper topItem calculation - if (!isNaN(pos)) - { - this._prevTopItem = this._topItem; - this._topItem = -(Math.round(pos / this.properties.itemHeight)); - - // throw out of bounds exception - if (this._topItem < 0 || this._topItem > this.dataList.items.length - 1) - { - log.error('Lis2: _topItem is out of bounds'); - } - } - - if (this.properties.enableItemRequestOnScroll) - { - // check for empty items in DOM - var emptyDOMItem = this._getEmptyDOMElement(); - if (null != emptyDOMItem) - { - // fire needDataCallback() if an empty item is found in the DOM - this._requestMore(emptyDOMItem); - } - } - - return this._topItem; - -}; - -/** - * Indicate loading activity in the list - * and update _inLoading property - * TAG: internal - * ========================= - * @param {boolean} - show or hide loading activity - * @return {boolean} - returns _inLoading - */ -List2Ctrl.prototype._setLoading = function(show) -{ - if (show) - { - // check whether loading overlay is enabled - if (this.properties.loadingOverlayEnabled) - { - // update start time - this._loadingData.timeStarted = new Date().getTime(); - - if (this.properties.showLoadingOverlayTimeout > 0) - { - // delayed show overlay - this._loadingData.startTimeoutId = setTimeout(this._setLoadingOverlay.bind(this, true), this.properties.showLoadingOverlayTimeout); - } - else - { - // show overlay immediately - this._setLoadingOverlay(true); - } - } - - // update flag - this._inLoading = true; - } - else - { - // check whether loading overlay is enabled - if (this.properties.loadingOverlayEnabled) - { - if (this.properties.hideLoadingOverlayTimeout > 0) - { - // delayed hide overlay - var now = new Date().getTime(); - if (now - this._loadingData.timeStarted < this.properties.showLoadingOverlayTimeout) - { - // no overlay has been shown -> reset everything - this._setLoadingOverlay(false); - } - else if (now - this._loadingData.timeShown < this.properties.hideLoadingOverlayTimeout) - { - // the overlay has been visible less than the hideLoadingOverlayTimeout -> hide it in hideLoadingOverlayTimeout ms after it has been made visible - this._loadingData.endTimeoutId = setTimeout(this._setLoadingOverlay.bind(this, false), this.properties.hideLoadingOverlayTimeout - (now - this._loadingData.timeShown)); - } - else - { - // the overlay has been visible long enough -> hide it immediately - this._setLoadingOverlay(false); - } - } - else - { - // hide overlay immediately - this._setLoadingOverlay(false); - } - } - - // update flag - this._inLoading = false; - } - - return this._inLoading; -}; - -List2Ctrl.prototype._setLoadingOverlay = function(show) -{ - if (show) - { - // show loading - this.mask.appendChild(this.loading); - - this._loadingData.timeShown = new Date().getTime(); - } - else - { - // hide loading - if (null != this.loading.parentElement) - { - this.loading.parentElement.removeChild(this.loading); - } - - // reset loading data - clearTimeout(this._loadingData.startTimeoutId); - clearTimeout(this._loadingData.endTimeoutId); - this._loadingData.timeStarted = 0; - this._loadingData.timeShown = 0; - this._loadingData.startTimeoutId = null; - this._loadingData.endTimeoutId = null; - } -}; - -/** 7. DEFAULT TITLE CONFIGURATION **/ - -/** - * Prepare title - * A list title can be defined with minimal set of properties - * that are needed for its proper display. This function sets - * default configuration for a valid title and merge it with the - * custom configuration passed to the title. - * TAG: internal - * ========================= - * @param {object} - the title object that will be set a default set of properties and will be returned - * @return {object} - the complete title object - */ -List2Ctrl.prototype._prepareTitle = function(titleObj) -{ - // The itemStyle property is required - if (!titleObj.hasOwnProperty('titleStyle')) - { - log.error('Lis2: title should have titleStyle property: ' + titleObj); - return; - } - - // default properties - var title = {}; - switch (titleObj.titleStyle) - { - case 'style02' : - title = { text1:'', text1Id:null, text1SubMap:null, styleMod:'' }; - break; - case 'style02a' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'', styleMod:'' }; - break; - case 'style03' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'' }; - break; - case 'style05' : - title = { text1:'', text1Id:null, text1SubMap:null, text2:'', text2Id:null, text2SubMap:null, image1:'' }; - break; - case 'style06' : - title = { image1:'' }; - break; - case 'style07' : - title = { text1:'', text1Id:null, text1SubMap:null, text2:'', text2Id:null, text2SubMap:null }; - break; - case 'style08' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'', styleMod:'' }; - break; - default : - log.error('Lis2: unknown title style: ' + titleObj.titleStyle); - break; - } - - // Extend default structure with the supplied item - for (var i in titleObj) - { - title[i] = titleObj[i]; - } - - // Perform localization - switch (title.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - case 'style08' : - if (title.text1Id) - { - title.text1 = this._getLocalizedString(title.text1Id, title.text1SubMap); - } - break; - case 'style05' : - case 'style07' : - if (title.text1Id) - { - title.text1 = this._getLocalizedString(title.text1Id, title.text1SubMap); - } - if (title.text2Id) - { - title.text2 = this._getLocalizedString(title.text2Id, title.text2SubMap); - } - break; - } - - return title; -}; - - -/** - * ========================= - * SCROLL INDICATOR - * - reset - * - create - * - visual update - * ========================= - */ - -/** - * Remove any scroll indicator - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorReset = function() -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // remove any scroll indicator - if (this.scrollIndicatorWrapper) - { - // remove wrapper (and scroll indicator) - this.scrollIndicatorWrapper.parentElement.removeChild(this.scrollIndicatorWrapper); - - // nullify elements - this.scrollIndicatorWrapper = null; - this.scrollIndicator = null; - - // reset scroll indicator boundaries - this._indicatorMin = 0; - this._indicatorMax = 0; - } -}; - -/** - * Create scroll indicator - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorBuild = function(visible) -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // determine scroll indicator size - var indicatorSize = Math.round(this.mask.offsetHeight * (this.mask.offsetHeight / this.scroller.offsetHeight)); - - // add scroll indicator wrapper - this.scrollIndicatorWrapper = document.createElement('div'); - this.scrollIndicatorWrapper.className = 'List2CtrlScrollIndicatorWrapper'; - this.divElt.appendChild(this.scrollIndicatorWrapper); - - // add scroll indicator - this.scrollIndicator = document.createElement('div'); - this.scrollIndicator.className = 'List2CtrlScrollIndicator'; - if(!visible) - { - this.scrollIndicatorWrapper.style.visibility = 'hidden'; - } - else - { - this.scrollIndicatorWrapper.style.visibility = 'visible'; - } - this.scrollIndicator.style.height = this.m.max(indicatorSize, this.properties.scrollIndicatorMinSize) + 'px'; - this.scrollIndicator.style.top = '0px'; - this.scrollIndicatorWrapper.appendChild(this.scrollIndicator); - - // set scroll indicator boundaries - this._indicatorMin = 0; - this._indicatorMax = this.mask.offsetHeight - this.scrollIndicator.offsetHeight; - - if (this.properties.hasLetterIndex) - { - // hide scroll indicator when letterIndex is enabled - this._hideScrollIndicator(); - } - else - { - // fade out scroll indicator - this._fadeOutScrollIndicator(); - } -}; - -/** - * Update scroll indicator position on drag - * This is fired on _USER_EVENT_MOVE when the - * list is being dragged by touch. - * TAG: touch-only, internal - * ========================= - * @return {integer} scroll indicator position - */ -List2Ctrl.prototype._dragUpdateScrollIndicator = function() -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // determine scroll indicator position - var indicatorPos = Math.round(this._indicatorMax * (this.scroller.offsetTop / this._maxScrollY)); - - // constrain position - indicatorPos = this.m.max(indicatorPos, this._indicatorMin); - - // set new position - this.scrollIndicator.style.top = indicatorPos + 'px'; - - // fade in scroll indicator - this._fadeInScrollIndicator(); - - return indicatorPos; -}; - -/** - * Update scroll indicator position on drag - * Called on scroll animation (flick or scroll ad-hoc) - * TAG: internal - * ========================= - * @param {integer} the new position of the scroller - * @param {integer} the time for animation to the new position - * @return {integer} the new scroll indicator position - */ -List2Ctrl.prototype._updateScrollIndicator = function(pos, time) -{ - // check for time - if (time == undefined || time == null) - { - // get default time - time = this.properties.swipeAnimationDuration; - } - - // determine scroll indicator new position - var newRelativePos = pos / this._maxScrollY; - var newPos = Math.round(newRelativePos * (this._indicatorMax - this._indicatorMin)); - - // start animation - this.scrollIndicator.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.scrollIndicatorAnimationEndCallback = this._scrollIndicatorAnimationEnd.bind(this); - this.scrollIndicator.addEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - this.scrollIndicator.style.top = newPos + 'px'; - - // clear any previously scheduled scroll indicator fade out - clearTimeout(this._scrollIndicatorTimeoutId); - this._scrollIndicatorTimeoutId = null; - - // fade in scroll indicator - this._fadeInScrollIndicator(); - - return newPos; - -}; - - -List2Ctrl.prototype._fadeInScrollIndicator = function() -{ - // check whether scroll indicator needs to fade - if (this.properties.scrollIndicatorFadeTimeout <= 0) - { - return; - } - - this.scrollIndicatorWrapper.style[this._VENDOR + 'TransitionDuration'] = this.properties.scrollIndicatorFadeInDuration + 'ms'; - this.scrollIndicatorWrapper.style.opacity = 1; -}; - -List2Ctrl.prototype._fadeOutScrollIndicator = function() -{ - // check whether scroll indicator needs to fade - if (this.properties.scrollIndicatorFadeTimeout <= 0) - { - return; - } - - // clear any previously-scheduled hiding - clearTimeout(this._scrollIndicatorTimeoutId); - - // schedule hide - this._scrollIndicatorTimeoutId = setTimeout(function() { - this.scrollIndicatorWrapper.style[this._VENDOR + 'TransitionDuration'] = this.properties.scrollIndicatorFadeOutDuration + 'ms'; - this.scrollIndicatorWrapper.style.opacity = 0; - this._scrollIndicatorTimeoutId = null; - }.bind(this), this.properties.scrollIndicatorFadeTimeout); -}; - -List2Ctrl.prototype._hideScrollIndicator = function() -{ - this.scrollIndicatorWrapper.style.opacity = 0; -}; - -List2Ctrl.prototype._showScrollIndicator = function() -{ - this.scrollIndicatorWrapper.style.opacity = 1; -}; - -/** - * ========================= - * TOUCH EVENT HANDLERS - * - Event detection and custom event dispatching - * - Start/Move/End/Out event handling - * - Hit state control - * ========================= - */ - -/** - * Handle any touch event and dispatch appropriate - * custom event. Actual event processing is done in the - * respective handlers of the custom events. The original - * event object is attached to the custom event in its - * event property. - * ========================= - * @param {event} - any touch event - * @return {Boolean} - True if event was processed - */ -List2Ctrl.prototype._touch = function(e) -{ - var touchResult = false; - - switch(e.type) - { - case this._USER_EVENT_START : - // route to letter index first, otherwise route to list - touchResult = this._startIndex(e) || this._start(e); - /* - * Attach temporary listeners to document if we have a positive start. - * These listeners will be removed on _USER_EVENT_END - */ - if (touchResult) - { - document.addEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.addEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.addEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - } - break; - - case this._USER_EVENT_MOVE : - // route to letter index first, otherwise route to list - touchResult = this._moveIndex(e) || this._move(e); - break; - - case this._USER_EVENT_END : - /* - * Remove the document event listeners no matter of these have been - * attached or not. This will prevent any non-existent callbacks firing. - */ - document.removeEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - // route to letter index first, otherwise route to list - touchResult = this._endIndex(e) || this._end(e); - break; - - case this._USER_EVENT_OUT : - this._out(e); - break; - } - - return touchResult; -}; - -/** - * Start Touch on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._start = function(e) -{ - // abort any ongoing scroll - this._abortScroll(e); - - // get mask position and dimensions - this._maskPositionY = this.getPosition(this.mask)[1]; - this._maskPositionX = this.getPosition(this.mask)[0]; - this._maskH = this.mask.offsetHeight; - this._maskW = this.mask.offsetWidth; - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - // reset letter index multicontroller - this._focusStolen = false; - if (relativeY >= 0) - { - this._setLetterIndexMulticontroller(false, true); - - // steal focus - var canGainFocus = this._canGainFocus(e); - if (!this._hasFocus && -1 !== canGainFocus) - { - framework.common.stealFocus(); - this._hasFocus = true; - this._focusStolen = true; - } - } - - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by start reorder rather than regular start - this._startReorder(e); - return true; - } - else if(!this._inListReorder && this._appIsAtSpeed) - { - this._startReorder(e); - return true; - } - - this._startItem = this._getTargetItem(e); - this._startDOMItem = this._getDOMItem(this._startItem); - - // make hit - if (this.properties.hitTimeout > 0) - { - // after some time - this._makeHitTimeoutId = setTimeout(this._itemMakeHit.bind(this, e), this.properties.hitTimeout); - } - else - { - // immediately - this._itemMakeHit(e); - } - - // Place focus on the reported available item when focus is stolen - if (this._focusStolen) - { - this._showFocus(canGainFocus, true); - } - - // make toggles hit - this._buttonMakeHit(e); - - // make locks hit - this._lockMakeHit(e); - - // if scrolling during loading is not allowed - if (!this.properties.scrollingDuringLoading && this._inLoading) - { - return false; - } - - // check relative mouse position - if (relativeY < 0) - { - return false; - } - - // check for a valid target item - if (this._startItem == -1) - { - return false; - } - - // get current y - this._y = this.scroller.offsetTop; - this._startY = relativeY; - this._startX = relativeX; - this._startTime = new Date().getTime(); - - // start longpress countdown - this._longPressTimeoutId = setTimeout(this._itemLongPress.bind(this, e), this.properties.longPressTimeout); - - // raise _inDrag - this._inDrag = true; - - // Release secondary MC mode - if (this._inSecondaryMulticontroller && null != this._currentSecondaryMulticontrollerItem && this._startItem != this._currentSecondaryMulticontrollerItem) - { - var temp = this._currentSecondaryMulticontrollerItem; - - // if we are in secondary multicontroller mode, touching outside the item will exit it - this._setSecondaryMulticontroller(false, this._currentSecondaryMulticontrollerItem); - - // Commit the value - if (!this._isLock(temp)) // locks do not commit the value - { - this._triggerFocus(temp); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(temp, 'clear'); - } - } - - // dispatch scroll start event - this._listEvent(this._EVENTS.SCROLL_START, {scrollPosition:this._topItem}); - - // user touched the list -> return True - return true; - -}; - -/** - * Touch move on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._move = function(e) -{ - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by move reorder rather than regular move - this._moveReorder(e); - return true; - } - - if (!this._inDrag) - { - return false; - } - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return false; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - if (relativeY < -this._maskPositionY) - { - // we are out of bounds - this._end(e); - return true; - } - - // calculate travelled distance - var deltaY = relativeY - this._startY; - var deltaX = relativeX - this._startX; - - if (this._inLongPress) - { - return false; - } - - /* - * DRAG DETECTION - * determine whether this is a horizontal or vertical drag - * and raise the horizontal flag - */ - if (null == this._inHorizontalDrag) { - - var alpha = Math.atan2(this.m.abs(deltaX), this.m.abs(deltaY)); - if (alpha < this.properties.hvThreshold) - { - // vertical - this._inHorizontalDrag = false; - } - else - { - // horizontal - this._inHorizontalDrag = true; - this._hDragItem = this._getTargetItem(e); - - // set slideStart - this._slideStart(e); - } - } - - // drag slider - if (this._inHorizontalDrag == true) - { - // we have a horizontal drag -> move sliders - this._slideMove(e); - } - // drag list if scrollable - else if (false == this._inHorizontalDrag && this._isScrollable) - { - // we have a vertical drag and the list can be scrolled - // calculate the scroller's new position and constrain it into bounds - var newPos = this.m.max(this._maxScrollY, this.m.min(this._y + deltaY, this._minScrollY)); - - // drag the scroller if in bounds - this.scroller.style.top = newPos + 'px'; - - // update scroll indicator - this._dragUpdateScrollIndicator(); - - // raise _stopClick flag and remove hit and long press - if (this.m.abs(deltaY) > this.properties.selectThreshold) - { - this._stopSelect = true; - - // remove hit and prevent delayed hit - this._itemRemoveHit(e); - clearTimeout(this._makeHitTimeoutId); - - // remove long press and prevent long press - this._itemRemoveLongPress(e); - clearTimeout(this._longPressTimeoutId); - } - } - // control hit state when not scrollable or when no scrolling occurs (e.g. when we are one of the list extremities) - if (!this._isScrollable || this.m.abs(deltaY) > this.properties.selectThreshold) - { - var targetTop = this._startDOMItem.offsetTop; - if (relativeY < targetTop || relativeY > targetTop + this.properties.itemHeight) - { - // remove hit - this._itemRemoveHit(e); - - // prevent select only on non-scrollable lists - // the scrollable lists are handled in the above case - if (!this._isScrollable) - { - this._stopSelect = true; - } - } - else - { - // make hit - if (this._stopSelect && !this._isScrollable) - { - this._itemMakeHit(e); - } - - // enable select only on non-scrollable lists - // the scrollable lists are handled in the above case - if (!this._isScrollable) - { - this._stopSelect = false; - } - } - } - - // user touched the list -> return True - return true; -}; - -/** - * Touch end on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._end = function(e) -{ - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by end reorder rather than regular end - this._endReorder(e); - return true; - } - else if(!this._inListReorder && this._appIsAtSpeed) - { - this._endReorder(e); - return true; - } - - - // remove hit - this._itemRemoveHit(e); - clearTimeout(this._makeHitTimeoutId); // clear hit timeout - // remove long press - this._itemRemoveLongPress(e); - clearTimeout(this._longPressTimeoutId); // clear longpress timeout - - this._startItem = null; - this._startDOMItem = null; - - // reset drag flag and hDrag item - this._inHorizontalDrag = null; - this._hDragItem = null; - - if (!this._inDrag) - { - // this is called without having a drag - return false; - } - - // end any drag of sliders - this._slideEnd(e); - - // set scroll nature - this._scrollNature = 'touch'; - - // detect swipe motion - var endTime = e.timeStamp || new Date().getTime(); - var velocity = endTime - this._startTime; - if (this._focusStolen && !this._stopSelect) - { - // slight drag -> scroll to show focus on the available item when stealing focus - // decide whether to allow offscrean - var focussedIndex = this._getFocussedIndex(); - var allowOffScreen = (focussedIndex > this._topItem && focussedIndex < this._topItem + this.properties.visibleItems); - this._showFocus(focussedIndex, allowOffScreen); - this._focusStolen = false; - } - else if (velocity < this.properties.swipeThreshold && velocity > 0) - { - // get relative mouse position and calculate travelled distance - var relativeY = e.pageY - this._maskPositionY; - var deltaY = relativeY - this._startY; - - // swipte detected - this._startSwipe(deltaY, velocity); - } - else - { - // regular drag -> snap to item bounds - this._snap(this.scroller.offsetTop); - } - - // call touch select logic - this._touchSelectItem(e); - - // reset any previously set flags - this._inDrag = false; - this._stopSelect = false; - this._startTime = 0; - - // user touched the list -> return True - return true; -}; - -/** - * Touch leave on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._out = function(e) -{ - return this._end(e); -}; - - -/** - * Start Touch on letter index - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {boolean} - True if letter index is touched - */ -List2Ctrl.prototype._startIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - // get mask position - this._maskPositionY = this.getPosition(this.mask)[1]; - this._maskPositionX = this.getPosition(this.mask)[0]; - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - if (relativeY < 0) - { - return false; - } - - // hit test letter index - if (relativeX <= this.letterIndexWrapper.offsetLeft) - { - return false; - } - - // steal focus - if (!this._hasFocus) - { - framework.common.stealFocus(); - this._hasFocus = true; - } - - // Enter into letter index multicontroller mode if not already - if (!this._inLetterIndexMulticontroller) - { - this._setLetterIndexMulticontroller(true); - } - - // clear any scheduled letter index select - this._scheduleLetterIndexSelect(null, true); - - // make hit - this._indexMakeHit(e); - - // get start coordinates and time - this._yIndex = this.letterIndex.offsetTop; - this._startIndexY = relativeY; - this._startIndexX = relativeX; - this._startTimeIndex = new Date().getTime(); - - this._inDragIndex = true; - - return true; - -}; - - -List2Ctrl.prototype._moveIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - if (!this._inDragIndex) - { - return false; - } - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return false; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - if (relativeY < -this._maskPositionY) - { - // we are out of bounds - this._endIndex(e); - - return false; - } - - // calculate travelled distance - var deltaY = relativeY - this._startIndexY; - var deltaX = relativeX - this._startIndexX; - - // calculate the letter index's new position and constrain it into bounds - var newPos = this.m.max(this._maxScrollYIndex, this.m.min(this._yIndex + deltaY, this._minScrollYIndex)); - - // drag the letter index if in bounds - this.letterIndex.style.top = newPos + 'px'; - - // raise _stopClick flag - if (this.m.abs(deltaY) > this.properties.selectThreshold) - { - this._stopSelect = true; - - // remove hit - this._indexRemoveHit(e); - } - - return true; - -}; - - -List2Ctrl.prototype._endIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - // remove hit - this._indexRemoveHit(e); - - if (!this._inDragIndex) - { - return false; - } - - if (!this._stopSelect) - { - // snap position - this._snapIndex(this.letterIndex.offsetTop); - - // select letter index - var letterIndex = this._getTargetLetterIndex(e); - this._letterIndexSelect(letterIndex, 'Touch'); - } - else - { - // detect swipe motion - var endTime = e.timeStamp || new Date().getTime(); - var velocity = endTime - this._startTimeIndex; - if (velocity < this.properties.swipeThreshold && velocity > 0) - { - // get relative mouse position and calculate travelled distance - var relativeY = e.pageY - this._maskPositionY; - var deltaY = relativeY - this._startIndexY; - - // swipte detected - this._startSwipeIndex(deltaY, velocity); - } - else - { - // snap position - this._snapIndex(this.letterIndex.offsetTop); - - // schedule letter index select if letter is enabled - var letterIndex = this._getTargetLetterIndex(e); - if (!this.letterIndexData[letterIndex].disabled) - { - this._scheduleLetterIndexSelect(letterIndex); - } - } - } - - // reset flags - this._inDragIndex = false; - this._stopSelect = false; - - return true; -}; - - - -/** - * Select item - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {void} - */ -List2Ctrl.prototype._touchSelectItem = function(e) -{ - // clear any hit timeout - clearTimeout(this._makeHitTimeoutId); - - // if we are not allowed to select (when in drag) - if (this._stopSelect) - { - this._stopSelect = false; - return; - } - - // select during loading is not allowed - if (this._inLoading) - { - return; - } - - var itemIndex; - var fireSelect = true; - var additionalModifier = null; - var params = {}; - - // determine target item - itemIndex = this._getTargetItem(e); - - // only valid list items can fire the select callback - if (itemIndex == -1) - { - return; - } - - // ensure that we end up on the same item where we started so that the select is valid - if (itemIndex != this._getFocussedIndex()) - { - return; - } - - // perform any additional touch processing for some items before issuing select callback - if (this._isToggle(itemIndex)) - { - // the target contains toggle buttons -> select toggle buttons - var toggleSelected = this._buttonSelect(e); - if ('cancel' == toggleSelected) - { - fireSelect = false; - } - else if (null != toggleSelected) - { - params = { additionalData:toggleSelected }; - additionalModifier = 'preventSimpleSelect'; - } - - } - - if (this._isSlider(itemIndex)) - { - // the target contains a slider -> disable select only if the slider is adjustable - if (this.dataList.items[itemIndex].allowAdjust) - { - fireSelect = false; - } - } - - if (this._isStep(itemIndex) && this._hasSecondaryMulticontroller(itemIndex) && this._inSecondaryMulticontroller) - { - // if we are in secondary multicontroller and the item is a step item - var stepResult = this._stepAdjust(e); - if ('commit' === stepResult) - { - params = { finalAdjust:true, value:this.dataList.items[itemIndex].value }; - additionalModifier = 'exitSecondaryMulticontroller'; - } - else if (null != stepResult) - { - params = { finalAdjust:false, value:stepResult }; - } - else - { - fireSelect = false; - } - } - else if (this._isStep(itemIndex) && this._hasSecondaryMulticontroller(itemIndex) && !this._inSecondaryMulticontroller) - { - // if we are not in secondary multicontroller and the item is step item - this._setSecondaryMulticontroller(true, itemIndex); - fireSelect = false; - - // produce beep - this._beep('Short', 'Touch'); - } - - if (this._isLock(itemIndex) && this._hasSecondaryMulticontroller(itemIndex)) - { - // the target is a lock item - var lockAction = this._lockSelect(e); - if (null == lockAction) - { - fireSelect = false; - } - else - { - // prepare params - params = { additionalData:lockAction }; - additionalModifier = 'exitSecondaryMulticontroller'; - } - } - - // prevent select on disabled items - if (this.dataList.items[itemIndex].disabled) - { - fireSelect = false; - } - - // everything looks ok -> call internal _itemSelect() method if the item permits it - if (fireSelect) - { - // fire select only if no long press / hold start has been issued - if (!this._longPressIssued) - { - // produce beep - this._beep('Short', 'Touch'); - - this._itemSelect(itemIndex, params, additionalModifier); - } - // otherwise fire holdStop Callback on shortAndHold items - else if ('shortAndHold' === this.dataList.items[itemIndex].itemBehavior) - { - this._itemHoldStop(itemIndex); - } - } - - // lower long-press/hold-start flag - this._longPressIssued = false; - -}; - -/** - * Exit hit state of the currently hit item - * ========================= - * @return {void} - */ -List2Ctrl.prototype._itemRemoveHit = function() -{ - var hitItems = this.scroller.querySelectorAll('.hit'); - - if (hitItems.length) - { - for (var i=0, l=hitItems.length; i= this.dataList.itemCount || this.dataList.items[itemIndex].disabled) - { - return; - } - - var returnValue = null; - - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'styleOnOff' : - // get and update current value - var currentValue = this.dataList.items[itemIndex].value; - var newValue = (1 === currentValue) ? 2 : 1; - this.dataList.items[itemIndex].value = newValue; - - // get and update DOM item - var domItem = this._getDOMItem(itemIndex); - if (domItem) - { - if (1 === newValue) - { - domItem.classList.add('checked'); - } - else - { - domItem.classList.remove('checked'); - } - } - returnValue = newValue; - break; - - case 'style10' : - case 'style11' : - // Note: settle timeout is registered in this._buttonActivate - this._buttonSelectRight(itemIndex); - returnValue = this.dataList.items[itemIndex].value; - break; - - case 'style03' : - case 'style03a' : - var currentValue = this.dataList.items[itemIndex].checked; - switch (this.dataList.items[itemIndex].image1) - { - case 'tick' : - if (!currentValue) - this._setTick(itemIndex, !currentValue); - break; - case 'radio' : - if (!currentValue) - this._setRadio(itemIndex, !currentValue); - break; - case 'checkbox' : - this._setCheckBox(itemIndex, !currentValue); - break; - } - returnValue = this.dataList.items[itemIndex].checked; - break; - - default : - log.warn('Lis2: No simple select behavior for item style ' + this.dataList.items[itemIndex].itemStyle); - break; - } - - return returnValue; - -}; - -/** - * Fire select callback on an item. - * This function is called whenever a select event - * occurs. It is a single call point for all selects - * and should be invoked whether select event is intended. - * TAG: internal - * ========================= - * @param {integet} - item index - * @return {boolean} - true if there's a valid selectCallback - */ -List2Ctrl.prototype._itemSelect = function(itemIndex, paramsModifier, additionalModifier) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - // get paramsModifier - var paramsModifier = paramsModifier || {}; - - // get additionalModifier - var additionalModifier = additionalModifier || null; - - var appData = null; - var additionalData = null; - var params = {}; - - // event filtering - var filterEvent = false; - - if (this._isSlider(itemIndex)) - { - // the item contains a slider - additionalData = this.dataList.items[itemIndex].value; - } - - if (this._isSimpleSelectItem(itemIndex)) - { - // the item is simple select item - if ('preventSimpleSelect' != additionalModifier) - { - // process simple select behavior before firing the select callback - additionalData = this._simpleSelect(itemIndex); - } - - // apply event filter - var filterType = (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) ? 'toggle' : (this._isCheckBox(itemIndex)) ? 'check' : null; - filterEvent = this._applyEventFilter(itemIndex, filterType); - } - else if (this._isStep(itemIndex) && 'exitSecondaryMulticontroller' === additionalModifier) - { - this._setSecondaryMulticontroller(false, itemIndex); - } - else if (this._isLock(itemIndex) && 'exitSecondaryMulticontroller' === additionalModifier) - { - // restore focus and remove any secondary multicontroler - this._showFocus(this._lastItemWithFocus); - this._lockShowFocus(itemIndex, 'clear'); - this._setSecondaryMulticontroller(false, itemIndex); - } - else if (this._isStep(itemIndex)) - { - // apply event filter - var filterType = "step"; - filterEvent = this._applyEventFilter(itemIndex, filterType); - } - - // is this filtered event? - if (filterEvent) - { - return false; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - // merge params with params modifier - for (var i in paramsModifier) - { - params[i] = paramsModifier[i]; - } - - // return value - var result = false; - - // do not fire select on disabled items but instead fire select disabled - if (this.dataList.items[itemIndex].disabled) - { - // fire select disabled callback - if (typeof this.properties.selectDisabledCallback == 'function') - { - /* - * Handles touches on disabled list items - * @param ctrlObj Object Reference to the list control that was selected - * @param btnData Object Data that was attached to the selected item - * @param params Object Object containing extra data - */ - result = this.properties.selectDisabledCallback(this, appData, params); - - // set result to true if nothing is returned from the select callback - if (undefined == result) - { - result = true; - } - } - } - else - { - // fire select callback - if (typeof this.properties.selectCallback == 'function') - { - /* - * Handles select on list items - * @param ctrlObj Object Reference to the list control that was selected - * @param btnData Object Data that was attached to the selected item - * @param params Object Object containing extra data - */ - result = this.properties.selectCallback(this, appData, params); - - // set result to true if nothing is returned from the select callback - if (undefined == result) - { - result = true; - } - } - - // dispatch select event - this._listEvent(this._EVENTS.ITEM_SELECT, params); - } - - if (this._hasData(itemIndex)) - { - // record this event and clear any timeouts - this.dataList.items[itemIndex]._data.lastEvent = new Date().getTime(); - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = null; - } - - return result; -}; - -/** - * Fire long press callback on an item. - * This function is called whenever a select event - * occurs. It is a single call point for all selects - * and should be invoked whether select event is intended. - * TAG: internal - * ========================= - * @param {event|integer} - raw touch/mouse event or directly the index of the item - * @return {boolean} - true if there's a valid longPressCallback - */ -List2Ctrl.prototype._itemLongPress = function(e) -{ - var eventCause = null; - var itemIndex = -1; - - // the parameter is an event - if (typeof e == 'object') - { - // determine target item - itemIndex = this._getTargetItem(e);var itemIndex = this._getTargetItem(e); - eventCause = 'Touch'; - } - // the parameter is an index - else if (!isNaN(e)) - { - itemIndex = e; - eventCause = 'Multicontroller'; - } - - // if the item is short-press-only -> prevent any longpress activity - if ('shortPressOnly' === this.dataList.items[itemIndex].itemBehavior) - { - return; - } - // if the item has itemBehavior other than shortAndLong and shortAndHold -> this is invalid property and prevent any longpress activity - else if ('shortAndLong' != this.dataList.items[itemIndex].itemBehavior && 'shortAndHold' != this.dataList.items[itemIndex].itemBehavior) - { - log.warn('Lis2: Invalid itemBehavior property. Item behavior can be shortPressOnly / shortAndLong / shortAndHold'); - return; - } - - // make it long-pressed - this._itemMakeLongPress(e); - - var appData = null; - var additionalData = null; - var params = {}; - - if (this._isSlider(itemIndex)) - { - // the target has a slider - additionalData = this.dataList.items[itemIndex].value; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - - // return value - var result = false; - - // produce beep - this._beep('Long', eventCause); - - // fire long press callback - if ('shortAndLong' === this.dataList.items[itemIndex].itemBehavior && typeof this.properties.longPressCallback == 'function') - { - /* - * Handles long press on list items - * @param ctrlObj Object Reference to the list control that was long-pressed - * @param btnData Object Data that was attached to the long-pressed item - * @param params Object Object containing extra data - */ - this.properties.longPressCallback(this, appData, params); - - result = true; - } - // fire hold start callback - else if ('shortAndHold' === this.dataList.items[itemIndex].itemBehavior && typeof this.properties.holdStartCallback == 'function') - { - /* - * Handles hold start on list items - * @param ctrlObj Object Reference to the list control that was long-held - * @param btnData Object Data that was attached to the long-held item - * @param params Object Object containing extra data - */ - this.properties.holdStartCallback(this, appData, params); - - result = true; - } - - // raise the flag for long-press/hold-start issued callback - this._longPressIssued = true; - - // enter into list reorder on long press if the list supports it - if (this.properties.listReorder) - { - this._enterListReorder(); - this._startReorder(e); - } - - return result; -}; - - -/** - * Fire hold stop on an item. - * This function is called whenever the user ends touch - * on an item that has itemBehavior = shortAndHold - * TAG: internal, touch-only - * ========================= - * @param {integet} - item index - * @return {boolean} - true if there's a valid holdStopCallback - */ -List2Ctrl.prototype._itemHoldStop = function(itemIndex) -{ - // validate item behavior property - if ('shortAndHold' != this.dataList.items[itemIndex].itemBehavior) - { - return; - } - - var appData = null; - var additionalData = null; - var params = {}; - - if (this._isSlider(itemIndex)) - { - // the target has a slider - additionalData = this.dataList.items[itemIndex].value; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - - // return value - var result = false; - - // fire hold stop callback - if (typeof this.properties.holdStopCallback == 'function') - { - /* - * Handles hold stop on list items - * @param ctrlObj Object Reference to the list control that was long-held - * @param btnData Object Data that was attached to the long-held item - * @param params Object Object containing extra data - */ - this.properties.holdStopCallback(this, appData, params); - - result = true; - } - - return result; -}; - -/** - * Perform outbound event filtering - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - filter type - * @return {boolean} - whethet to filter the event or not - */ -List2Ctrl.prototype._applyEventFilter = function(itemIndex, filterType) -{ - var filter = false; - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return filter; - } - - var now = new Date().getTime(); - - switch (filterType) - { - case 'toggle' : - var difference = now - this.dataList.items[itemIndex]._data.lastEvent; - if (difference < this.dataList.items[itemIndex].minChangeInterval) - { - // too soon -> filter the immediate event and send it later - log.debug('Event filtered'); - filter = true; - - // schedule callback - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = setTimeout(this._filterTimeoutCallback.bind(this, itemIndex, filterType), this.dataList.items[itemIndex].minChangeInterval - difference); - } - else - { - // timing is ok -> pass the event and clear any scheduled selects - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - - // register settle timeout - this._registerSettleTimeout(itemIndex, 'toggle'); - } - break; - - case 'check' : - var difference = now - this.dataList.items[itemIndex]._data.lastEvent; - if (difference < this.properties.checkMinChangeInterval) - { - // too soon -> filter the immediate event and send it later - log.debug('Event filtered'); - filter = true; - - // schedule callback - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = setTimeout(this._filterTimeoutCallback.bind(this, itemIndex, filterType), this.properties.checkMinChangeInterval - difference); - } - else - { - // timing is ok -> pass the event and clear any scheduled selects - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - - // register settle timeout - if ('radio' === this.dataList.items[itemIndex].image1 || - 'tick' === this.dataList.items[itemIndex].image1 || - 'checkbox' === this.dataList.items[itemIndex].image1) - { - var itemType = this.dataList.items[itemIndex].image1; - this._registerSettleTimeout(itemIndex, itemType); - } - } - break; - - case 'step' : - var difference = now - this.dataList.items[itemIndex]._data.lastEvent; - - if (this.properties.stepMinChangeInterval !== 0 && difference < this.properties.stepMinChangeInterval) - { - // too soon -> filter the immediate event and send it later - log.debug('Event filtered'); - filter = true; - - // schedule callback - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = setTimeout(this._filterTimeoutCallback.bind(this, itemIndex, filterType), this.properties.stepMinChangeInterval - difference); - } - else - { - // timing is ok -> pass the event and clear any scheduled selects - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - } - break; - } - - return filter; -}; - -/** - * Timeout callback that is run if a select event - * is scheduled by the outbound filtering mechanism - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - filter type - * @return {void} - */ -List2Ctrl.prototype._filterTimeoutCallback = function(itemIndex, filterType) -{ - switch (filterType) - { - case 'toggle' : - this._itemSelect(itemIndex, { additionalData : this.dataList.items[itemIndex].value }, 'preventSimpleSelect'); - - // register settle timeout - this._registerSettleTimeout(itemIndex, 'toggle'); - break; - - case 'check' : - this._itemSelect(itemIndex, { additionalData : this.dataList.items[itemIndex].checked }, 'preventSimpleSelect'); - - // register settle timeout - if ('radio' === this.dataList.items[itemIndex].image1 || - 'tick' === this.dataList.items[itemIndex].image1 || - 'checkbox' === this.dataList.items[itemIndex].image1) - { - var itemType = this.dataList.items[itemIndex].image1; - this._registerSettleTimeout(itemIndex, itemType); - } - break; - case 'step' : - this._itemSelect(itemIndex, { value : this.dataList.items[itemIndex].value }, 'preventSimpleSelect'); - break; - } -}; - -/** - * Register a settle timeout on any new user input. - * Any previous settle timeout should get cleared - * before setting a new one. The timeout state should - * be checked when public API call is made and depending - * on whether the timeout is running or not, the value - * will be cached or applied to the item. - * The settle time acts as an inbound event filtering mechanism. - * TAG: internal - * ========================= - * @param {integer} - itemIndex - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {void} - */ -List2Ctrl.prototype._registerSettleTimeout = function(itemIndex, itemType) -{ - log.debug('Settle scheduled'); - this._clearSettleTimeout(itemIndex, itemType); - - // schedule settle item - switch (itemType) - { - case 'radio' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - this._radioSettleTimeoutId = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - case 'tick' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - this._tickSettleTimeoutId = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - break; - case 'checkbox' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - this.dataList.items[itemIndex]._data.settleTimeout = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - break; - case 'toggle' : - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - this.dataList.items[itemIndex]._data.settleTimeout = setTimeout(this._settleItem.bind(this, itemIndex), this.dataList.items[itemIndex].settleTime); - } - break; - } -}; - -/** - * Clear any settle timeouts on any user input. - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {void} - */ -List2Ctrl.prototype._clearSettleTimeout = function(itemIndex, itemType) -{ - switch (itemType) - { - case 'radio' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - clearTimeout(this._radioSettleTimeoutId); - this._radioSettleTimeoutId = null; - } - case 'tick' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - clearTimeout(this._tickSettleTimeoutId); - this._tickSettleTimeoutId = null; - } - break; - - case 'checkbox' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - clearTimeout(this.dataList.items[itemIndex]._data.settleTimeout); - this.dataList.items[itemIndex]._data.settleTimeout = null; - } - break; - - case 'toggle' : - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - clearTimeout(this.dataList.items[itemIndex]._data.settleTimeout); - this.dataList.items[itemIndex]._data.settleTimeout = null; - } - break; - } -}; - -/** - * Performs a check whether a settlie timeout - * is running for a particular item, radio group - * or tick group. - * ========================= - * @param {integer} - item index - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {Boolean} - True if a settle timeout is running - */ -List2Ctrl.prototype._hasSettleTimeout = function(itemIndex, itemType) -{ - var timeoutRunning = false; - - switch (itemType) - { - case 'radio' : - if (null !== this._radioSettleTimeoutId && this._radioSettleTimeoutId >= 0) - { - timeoutRunning = true; - } - break; - - case 'tick' : - if (null !== this._tickSettleTimeoutId && this._tickSettleTimeoutId >= 0) - { - timeoutRunning = true; - } - break; - - case 'checkbox' : - case 'toggle' : - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return timeoutRunning; - } - - if (null !== this.dataList.items[itemIndex]._data.settleTimeout && this.dataList.items[itemIndex]._data.settleTimeout >= 0) - { - timeoutRunning = true; - } - break; - } - - return timeoutRunning; -}; - -/** - * Settle an item after the settle time expires. - * The cached value (if any) gets assigned as a - * real value to the item and the item is updated. - * This is the settleTimeout callback. - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {Boolean} - True if the item is successfully settled - */ -List2Ctrl.prototype._settleItem = function(itemIndex) -{ - // exit if we don't have any items (nothing to show the focus) - if (!this.hasDataList()) - { - return false; - } - - // exit if the item index is out of range - if (isNaN(itemIndex) || itemIndex < 0 || itemIndex >= this.dataList.items.length) - { - return false; - } - - var item = this.dataList.items[itemIndex]; - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return false; - } - - // get settle value and set it as real value, and update item - var settleValue = item._data.settleValue; - - - - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - if (null != item._data.settleValue) - { - // set real value - item.value = settleValue; - this.updateItems(itemIndex, itemIndex); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - item._data.settleTimeout = null; - } - else if (this._isCheckBox(itemIndex)) - { - // Note: setting the real value is done in the helpers - switch (item.image1) - { - case 'checkbox' : - if (null != item._data.settleValue) - { - // set real value - this._setCheckBox(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - item._data.settleTimeout = null; - break; - - case 'radio' : - if (null != item._data.settleValue) - { - // set real value - this._setRadio(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - this._radioSettleTimeoutId = null; - break; - - case 'tick' : - if (null != item._data.settleValue) - { - // set real value - this._setTick(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - this._tickSettleTimeoutId = null; - break; - } - } - else - { - // item does not support settlement - return false; - } - - log.debug('Settle item: ' + itemIndex + ', value: ' + settleValue); - - // return success - return true; - -}; - - -/** - * ========================= - * MULTICONTROLLER AND VUI - * ========================= - */ - -/** - * Main multicontroller handler - * TAG: multicontroller-only, public - * ========================= - * @param {string} - multicontroller event - * @return {string} - event consumed - */ -List2Ctrl.prototype.handleControllerEvent = function(eventID) -{ - log.debug("handleController() called, eventID: " + eventID); - - /* - * eventID - * - acceptFocusInit (sent on instantiation) - * - acceptFocusFromLeft - * - acceptFocusFromRight - * - acceptFocusFromTop - * - acceptFocusFromBottom - * - lostFocus - * - touchActive - * ... - */ - - var response; - - // ignore certain MC events when the list is in motion by touch - if (this._inDrag || (this._inScroll && 'touch' === this._scrollNature)) - { - switch (eventID) - { - case "acceptFocusInit" : - case "acceptFocusFromLeft" : - case "acceptFocusFromRight" : - case "acceptFocusFromTop" : - case "acceptFocusFromBottom" : - case "lostFocus" : - case "touchActive" : - case "controllerActive" : - // pass these events - break; - default : - // ignore everything else - return "ignored"; - break; - } - } - - if (!this._inSecondaryMulticontroller) - { - // we are in primary multicontroller mode - switch (eventID) - { - case "acceptFocusInit": - // consume event by default - response = "consumed"; - - // Input mode change to multicontroller - this._inputMode = 'controller'; - /* - * this event is received every time a template is displayed - * if we already have preset a focus item, do not set it again - */ - // Show focus animation - this._showFocusAnimation = true; - if ('restore' != this._initialScrollMode) - { - this._hasFocus = true; - var itemToGainFocus = this._canGainFocus('controllerActive'); - if (-1 !== itemToGainFocus) - { - this._showFocus(itemToGainFocus); - } - else - { - if (this.hasDataList()) - { - // we have data list and there are no enabled items -> give focus to the left - response = 'giveFocusLeft'; - } - else - { - // we probably dont't have a data list -> wait untul we get it - this._showFocus(this.properties.focussedItem); - } - } - } - else - { - this._showFocus(this.properties.focussedItem); - } - break; - - case "acceptFocusFromLeft": - // Show focus animation - this._showFocusAnimation = true; - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromRight": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromTop": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromBottom": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "lostFocus": - this._hideFocus(); - this._hideFocusLetterIndex(); - this._hasFocus = false; - response = "consumed"; - break; - - case "touchActive": - // Input mode change to touch - this._inputMode = 'touch'; - this._hideFocus(); - response = "consumed"; - break; - - case "controllerActive": - response = "consumed"; - break; - - case "cw": - // Rotate Right (CW) - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCCW(); - break; - - case "ccw": - // Rotate Left (CCW) - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCCCW(); - break; - - case "downStart": - // Tilt Down Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCDown(); - - // schedule autoscroll behavior only if not in list reorder - if (!this._inListReorder) - { - clearTimeout(this._tiltHoldTimeoutId); // clear any redundant timeouts - this._tiltHoldTimeoutId = null; - log.debug('Schedule autoscroll tier 1'); - this._tiltHoldTimeoutId = setTimeout(function() { // schedule first autoscroll tier - this._beep('Long', 'Multicontroller'); // produce beep - log.debug('Start autoscroll tier 1'); - this._handleMCDown(); // do the first scroll down - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals - this._tiltHoldIntervalId = null; - log.debug('Schedule autoscroll tier 2'); - this._tiltHoldIntervalId = setInterval(this._handleMCDown.bind(this), this.properties.autoscrollTier1Interval); // schedule auto scroll down for first tier - if (!this._inLetterIndexMulticontroller) - { - this._tiltHoldTimeoutId = setTimeout(function() { // schedule second autoscroll tier only if not in letter index multicontroller - log.debug('Start autoscroll tier 2'); - this._scrollDownPage(); // do the first scroll down - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals from the first tier - this._tiltHoldIntervalId = null; - this._tiltHoldIntervalId = setInterval(this._scrollDownPage.bind(this), this.properties.autoscrollTier2Interval); // schedule auto scroll down for second tier - }.bind(this), this.properties.autoscrollTier2Timeout); - } - }.bind(this), this.properties.autoscrollTier1Timeout); - } - - break; - - case "down" : - // Tilt Down Stop - - if ('downStart' === this._lastControllerEvent) - { - log.debug('Clear any scheduled autoscrolls'); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - this._tiltHoldTimeoutId = null; - this._tiltHoldIntervalId = null; - - // schedule letter index select - if (this._inLetterIndexMulticontroller) - { - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - } - - response = "consumed"; - } - else - { - // ignore any downs without downStarts - response = "ignored"; - } - - break; - - case "upStart": - // Tilt Up Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCUp(); - - // schedule autoscroll behavior only if not in list reorder - if (!this._inListReorder) - { - clearTimeout(this._tiltHoldTimeoutId); // clear any redundant timeouts - this._tiltHoldTimeoutId = null; - log.debug('Schedule autoscroll tier 1'); - this._tiltHoldTimeoutId = setTimeout(function() { // schedule first autoscroll tier - this._beep('Long', 'Multicontroller'); // produce beep - log.debug('Start autoscroll tier 1'); - this._handleMCUp(); // do the first scroll up - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals - this._tiltHoldIntervalId = null; - log.debug('Schedule autoscroll tier 2'); - this._tiltHoldIntervalId = setInterval(this._handleMCUp.bind(this), this.properties.autoscrollTier1Interval); // schedule auto scroll up for first tier - if (!this._inLetterIndexMulticontroller) - { - this._tiltHoldTimeoutId = setTimeout(function() { // schedule second autoscroll tier only if not in letter index multicontroller - log.debug('Start autoscroll tier 2'); - this._scrollUpPage(); // do the first scroll up - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals from the first tier - this._tiltHoldIntervalId = null; - this._tiltHoldIntervalId = setInterval(this._scrollUpPage.bind(this), this.properties.autoscrollTier2Interval); // schedule auto scroll up for second tier - }.bind(this), this.properties.autoscrollTier2Timeout); - } - }.bind(this), this.properties.autoscrollTier1Timeout); - } - - break; - - case "up": - // Tilt Up Stop - - if ('upStart' === this._lastControllerEvent) - { - log.debug('Clear any scheduled autoscrolls'); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - this._tiltHoldTimeoutId = null; - this._tiltHoldIntervalId = null; - - // schedule letter index select - if (this._inLetterIndexMulticontroller) - { - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - } - - response = "consumed"; - } - else - { - // ignore any ups without upStarts - response = "ignored"; - } - - break; - - case "leftStart": - // Tilt Left Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - else if (this.letterIndexData.length && this._inLetterIndexMulticontroller) - { - // Exit letter index multicontroller mode - this._setLetterIndexMulticontroller(false); - } - else - { - // Return - log.debug("No TabsCtrl. Return giveFocusLeft..."); - response = "giveFocusLeft"; - } - break; - - case "left": - // Tilt Left Stop - - if ('leftStart' === this._lastControllerEvent) - { - response = "ignored"; - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - } - else - { - // ignore any lefts without leftStarts - response = "ignored"; - } - break; - - case "rightStart": - // Tilt Right Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - else if (this.letterIndexData.length && !this._inLetterIndexMulticontroller) - { - // Enter into letter index multicontroller mode - this._setLetterIndexMulticontroller(true); - response = "consumed"; - } - else - { - // Return - log.debug("No TabsCtrl. Return giveFocusRight..."); - response = "giveFocusRight"; - } - break; - - - case "right": - // Tilt Right Stop - - if ('rightStart' === this._lastControllerEvent) - { - response = "ignored"; - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - } - else - { - // ignore any rights without rightStarts - response = "ignored"; - } - break; - - - case "selectStart": - // SelectStart (press down) - - if (this._inLetterIndexMulticontroller) - { - // get the focussed letter index - var focussedLetterIndex = this._getFocussedLetterIndex(); - - // make focussed letter index hit - this._indexMakeHit(focussedLetterIndex); - } - else - { - // get the focussed index - var focussedIndex = this._getFocussedIndex(); - - // make focussed index hit - this._itemMakeHit(focussedIndex); - - // start longpress countdown - this._longPressTimeoutId = setTimeout(this._itemLongPress.bind(this, focussedIndex), this.properties.longPressTimeout); - } - - // always consume selectStart - response = "consumed"; - - break; - - case "select": - // Select (press down) - - if ('selectStart' === this._lastControllerEvent) - { - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // remove long press - this._itemRemoveLongPress(); - clearTimeout(this._longPressTimeoutId); // clear longpress timeout - - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // fire letter index select - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._letterIndexSelect(currentFocussedLetterIndex, 'Multicontroller'); - } - else - { - if (this.properties.listReorder) - { - // if we are reordering lists (hence pressing down does not produce select event) - if (!this._inListReorder) - { - - // get focussed index - var focussedIndex = this._getFocussedIndex(); - - // check if focussed index is indeed eligable for list reorder - if ('shortAndLong' === this.dataList.items[focussedIndex].itemBehavior) - { - // we are about to begin list reorder - this._enterListReorder(); - } - - } - else - { - // we finish list reorder - this._releaseListReorder(); - } - - } - else - { - // if we are in normal mode - not reordering list - - // get the focussed index - var focussedIndex = this._getFocussedIndex(); - - // does the element have secondary multicontroller behavior? - if (this._hasSecondaryMulticontroller(focussedIndex) && this._isSlider(focussedIndex)) - { - if (this.dataList.items[focussedIndex].allowAdjust) - { - // this item has secondary select and is adjustable slider -> enter into secondary multicontroller mode - this._setSecondaryMulticontroller(true); - } - else - { - // this item has secondary select but is not adjustable -> trigger focus - this._triggerFocus(); - } - } - else if (this._hasSecondaryMulticontroller(focussedIndex)) - { - // this item has secondary select -> enter into secondary multicontroller mode - this._setSecondaryMulticontroller(true); - } - else - { - // this is a regular item -> trigger focus - this._triggerFocus(); - } - - } - } - - // consume Select only after selectStart is consumed - response = "consumed"; - } - else - { - // ignore any selects without selectStarts - response = "ignored"; - } - - break; - - default: - // No action - response = "ignored"; - break; - } - - } - else - { - // we are in secondary multicontroller mode - response = this._handleControllerEventSecondary(eventID); - } - - // keep track of the last consumed event - if ('consumed' === response) - { - this._lastControllerEvent = eventID; - } - - /* - * returns - * - giveFocusLeft (control retains highlight unless it later gets lostFocus event) - * - giveFocusRight - * - giveFocusUp - * - giveFocusDown - * - consumed (always returned on select event, and if control adjusted highlight) - * - ignored (returned only if control doesn't know about focus) - */ - - log.debug("Event: " + eventID + " -> " + "Response: " + response); - - return response; - -}; - -/** - * Handle multicontroller clockwise rotation event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCCW = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleLetterIndexItems - 2; - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocusLetterIndex('down'); - } - else if (this._topLetterIndex === this.letterIndexData.length - this.properties.vivisibleLetterIndexItemssibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('down'); - } - - // we need to go back to the beginning in order to scroll up - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - - // schedule letter index select - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOneIndex(); - } - } - else - { - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleItems - 2; - - // if we are in list reorder mode - push the draggable item down and set focus on it - if (this._inListReorder) - { - this._reorderItemDown(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - // we are not in list reorder mode -> do regular focus scroll - else - { - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocus('down'); - } - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocus('down'); - } - else if (rfi > bottomFocusThreshold) - { - // the focus is past the bottom focus threshold -> do not move it any more - // this._showFocus('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOne(); - } - - } - - return 'consumed'; -}; - -/** - * Handle multicontroller counter clockwise rotation event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCCCW = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus down - this._showFocusLetterIndex('up'); - } - else if (this._topLetterIndex === 0) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('up'); - } - - // we need to go back to the beginning in order to scroll up - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - - // schedule letter index select - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi < 1) - { - this._scrollUpOneIndex(); - } - - } - else - { - - // if we are in list reorder mode - push the draggable item down and set focus on it - if (this._inListReorder) - { - this._reorderItemUp(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - // we are not in list reorder mode -> do regular focus scroll - else - { - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus up - this._showFocus('up'); - } - else if (this._topItem === 0) - { - // we are at the beginning -> move the focus to the first item - this._showFocus('up'); - } - else if (rfi === 0) - { - // the focus is on the top item -> do not move it any more - // this._showFocus('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus is at the first item - if (rfi < 1) - { - this._scrollUpOne(); - } - - } - - return 'consumed'; -}; - -/** - * Handle multicontroller down tilt event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCDown = function() -{ - - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleLetterIndexItems - 2; - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocusLetterIndex('down'); - } - else if (this._topLetterIndex === this.letterIndexData.length - this.properties.vivisibleLetterIndexItemssibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOneIndex(); - } - - } - else - { - if (this._inListReorder) - { - this._reorderItemDown(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - else - { - var bottomFocusThreshold = this.properties.visibleItems - 2; - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocus('down'); - } - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocus('down'); - } - else if (rfi > bottomFocusThreshold) - { - // the focus is past the bottom focus threshold -> do not move it any more - // this._showFocus('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOne(); - } - - } - - return 'consumed'; -}; - - -/** - * Handle multicontroller up tilt event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCUp = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus down - this._showFocusLetterIndex('up'); - } - else if (this._topLetterIndex === 0) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi < 1) - { - this._scrollUpOneIndex(); - } - - } - else - { - if (this._inListReorder) - { - // if we are in list reorder mode - push the draggable item up and set focus on it - this._reorderItemUp(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - var rfi = this._getRelativeFocussedIndex(); - } - else - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus up - this._showFocus('up'); - } - else if (this._topItem === 0) - { - // we are at the beginning -> move the focus to the first item - this._showFocus('up'); - } - else if (rfi === 0) - { - // the focus is on the top item -> do not move it any more - // this._showFocus('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus is at the first item - if (rfi < 1) - { - this._scrollUpOne(); - } - - } - - return 'consumed'; -}; - - -/** - * handle controller event and apply it on items that are in secondary multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {string} - multicontroller event - * @return {string} - event consumed - */ -List2Ctrl.prototype._handleControllerEventSecondary = function(eventID) -{ - // get the index - var focussedIndex = this._getFocussedIndex(); - - // handle event - switch (eventID) - { - case "up" : - // leave secondary multicontroller mode - this._setSecondaryMulticontroller(false); - if (!this._isLock(focussedIndex)) - { - // trigger focus only on non-lock items - this._triggerFocus(); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(focussedIndex, 'clear'); - } - - // move the focus up - this._showFocus('up'); - - // get relative focussed index after moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // we need to go back to the beginning in order to scroll up - if (rfi < 1) - { - this._scrollUpOne(); - } - break; - - - case "down" : - // leave secondary multicontroller mode - this._setSecondaryMulticontroller(false); - - if (!this._isLock(focussedIndex)) - { - // trigger focus only on non-lock items - this._triggerFocus(); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(focussedIndex, 'clear'); - } - - // move the focus down - this._showFocus('down'); - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleItems - 2; - // get relative focussed index after moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // we need to go to the end in order to scroll down - if (rfi >= bottomFocusThreshold) - { - this._scrollDownOne(); - } - break; - - case "leftStart" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass event to slider - this._activeSlider.slider.handleControllerEvent('leftStart'); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepDown(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusLeft(focussedIndex); - } - - break; - - case "left" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent('left'); - } - break; - - case "ccw" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent(eventID); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var itemDOMElement = this._getDOMItem(focussedIndex); - if(!itemDOMElement.classList.contains('minReached')) - { - var newValue = this._stepDown(focussedIndex); - - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusLeft(focussedIndex); - } - - break; - - case "rightStart" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass event to slider - this._activeSlider.slider.handleControllerEvent('rightStart'); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepUp(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusRight(focussedIndex); - } - - break; - - case "right" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent('right'); - } - - break; - - case "cw" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent(eventID); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var itemDOMElement = this._getDOMItem(focussedIndex); - if(!itemDOMElement.classList.contains('maxReached')) - { - var newValue = this._stepUp(focussedIndex); - - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusRight(focussedIndex); - } - - break; - - case "select": - // leave secondary multicontroller mode and trigger focus - this._setSecondaryMulticontroller(false); - this._showFocus(this._lastItemWithFocus); - this._triggerFocus(); - break; - } - - // the secondary multicontroller events are always consumed - return "consumed"; -}; - -/** - * Set secondary multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {string} - multicontroller event - * @param {integer} - focussed index - * @return {void} - */ -List2Ctrl.prototype._setSecondaryMulticontroller = function(state, focussedIndex) -{ - // get focussed index - if (isNaN(focussedIndex)) - { - var focussedIndex = this._getFocussedIndex(); - } - - // do not set secondary multicontroller to true if the item is disabled - if (state && this.dataList.items[focussedIndex].disabled) - { - return; - } - - if (state) - { - // flag as we are in secondary multicontroller mode - this._inSecondaryMulticontroller = true; - - // add secondary focus class - var domItem = this._getDOMItem(focussedIndex); - if (domItem) - { - domItem.classList.add('secondaryFocus'); - } - - /** - * Fire select callback to notify apps that we are - * entering into secondary multicontroller mode. - * In most cases apps will ignore this event. - * Transition focus to subcontrols. - */ - if (this._isSlider(focussedIndex)) - { - // the target is a slider and can be adjusted -> set currently active slider - this._activeSlider = { - itemIndex : focussedIndex, // currently active slider index - slider : this._getSlider(focussedIndex) // currently active slider instance - }; - - // transition focus - this._activeSlider.slider.handleControllerEvent('acceptFocusFromTop'); - - // fire select callback for app notification - this._itemSelect(focussedIndex); - } - - /** - * Place focus highlight on the lock inline button - * if the target is a lock item - */ - if (this._isLock(focussedIndex)) - { - this._lockShowFocus(focussedIndex, 1); - } - - this._currentSecondaryMulticontrollerItem = focussedIndex; - } - else - { - this._inSecondaryMulticontroller = false; - - // remove secondary focus class - var domItem = this._getDOMItem(focussedIndex); - if (domItem) - { - domItem.classList.remove('secondaryFocus'); - } - - /** - * Transition focus from subcontrols. - */ - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // transition focus - this._activeSlider.slider.handleControllerEvent('lostFocus'); - } - - this._currentSecondaryMulticontrollerItem = null; - } - -}; - -/** - * Set letter index multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {boolean} - * @return {void} - */ -List2Ctrl.prototype._setLetterIndexMulticontroller = function(state, isTouch) -{ - if (state) - { - // hide focus from the main list and show it in the letter index - this._hideFocus(); - this._showFocusLetterIndex(this._getCurrentLetterIndex()); - this._inLetterIndexMulticontroller = true; - } - else - { - // hide focus from the letter index and show it in the main list - if (!isTouch) - { - this._showFocus(this._lastItemWithFocus); - } - this._inLetterIndexMulticontroller = false; - this._hideFocusLetterIndex(); - - // clear any scheduled letter index select - this._scheduleLetterIndexSelect(null, true); - } - -}; - -/** - * Manage focus highlight - * This is the single point for managing focus when requested from outside List2. - * (focusedItem setter, restoreContext) Manages reorder and focus as required. - * TAG: internal - * ========================= - * @param {number} - item index - * @return {integer} - the new focussed index - */ -List2Ctrl.prototype._manageFocus = function(item) -{ - if (this._inListReorder && !isNaN(item)) - { - this._reorderToIndex(item); - } - return this._showFocus(item); -} - -/** - * Show focus highlight - * This is the single point for showing the - * focus highlight - * TAG: internal - * ========================= - * @param {strig | number} - direction (up|down) or item index - * @param {boolean} - simulation mode: use to perform check on where the focus will end - * @return {integer} - the new focussed index - */ -List2Ctrl.prototype._showFocus = function(item, allowOffscreen, simulationMode, abortMode) -{ - log.debug("List2: _showFocus item, allowOffscreen, simulationMode, abortMode ", item, allowOffscreen, simulationMode, abortMode); - if (!this._hasFocus) - { - return; - } - - if (this._inputMode != 'controller') - { - // do not show the focus if the input mode is other than 'controller' - return; - } - - // exit if we don't have any items (nothing to show the focus) - if (!this.hasDataList()) - { - return; - } - - // do not show focus when in list reorder by touch - if (this._reorderTouchElt) - { - return; - } - - var abortMode = (true === abortMode); - - // do not change focussed index when we are in loading and no scrolling is allowed during that time - if (!this.properties.scrollingDuringLoading && this._inLoading && !abortMode) - { - return; - } - - var simulationMode = (true === simulationMode); - - // get the last focussed index (real and relative) - var lastFocussedIndex = this._getFocussedIndex(); - var lastRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // if we don't have previous focus, select the topmost - if (lastFocussedIndex == null) - { - lastFocussedIndex = this._topItem; - } - - // hide the focus only in real mode - if (!simulationMode) - { - this._hideFocus(); - } - - - var nextFocussedIndex = -1; - var useTransition = true; - var useRelativeIndeces = true; - - // find the next focussed element index - // NOTE: 'down' and 'up' are ued primarily when focussing with multicontroller - switch (item) - { - case 'down' : - // 'down' uses relative positioning - // the next one but not exceeding the visible items - - if (!simulationMode) - { - var nextRealFocussedIndex = this.m.min(lastFocussedIndex+1, this.dataList.itemCount-1); - while(this.dataList.items[nextRealFocussedIndex].disabled) - { - if (nextRealFocussedIndex >= this.dataList.itemCount-1) { - // we have reached the end of the list and nothing is found -> exit with current index - nextRealFocussedIndex = lastFocussedIndex; - break; - } - // hmmm, not enabled -> try the next one - nextRealFocussedIndex++; - } - // convert it to relative index - nextFocussedIndex = this._realToRelativeIndex(nextRealFocussedIndex); - } - else - { - nextFocussedIndex = this.m.min(lastRelativeFocussedIndex+1, this.properties.visibleItems-1); - } - break; - - case 'up' : - // 'up' uses relative positioning - // the previous one but not lower than the first one - if (!simulationMode) - { - var nextRealFocussedIndex = this.m.max(lastFocussedIndex-1, 0); - while(this.dataList.items[nextRealFocussedIndex].disabled) - { - if (nextRealFocussedIndex <= 0) { - // we have reached the beginning of the list and nothing is found -> exit with current index - nextRealFocussedIndex = lastFocussedIndex; - break; - } - // hmmm, not enabled -> try the previous one - nextRealFocussedIndex--; - } - // convert it to relative index - nextFocussedIndex = this._realToRelativeIndex(nextRealFocussedIndex); - } - else - { - nextFocussedIndex = this.m.max(lastRelativeFocussedIndex-1, 0); - } - break; - - default : - // move highlight instantly when jumping to an item - useTransition = false; - // absolute indeces use real positioning - useRelativeIndeces = false; - - if (!isNaN(item)) - { - // specific one -> make sure it is within the list bounds - nextFocussedIndex = this.m.max(this.m.min(item, this.dataList.itemCount-1), 0); - } - else - { - // the top one - nextFocussedIndex = this._topItem; - } - } - - // if we are in simulation -> return the would-be focussed index - if (simulationMode) - { - return nextFocussedIndex; - } - - // From here on, perform actual focus change - // ----------------------------------------- - var pos = 0; - if (useRelativeIndeces) - { - // convert relative nextFocussedIndex to position - pos = nextFocussedIndex * this.properties.itemHeight; - // convert nextFocussedIndex back to real one - nextFocussedIndex = this._relativeToRealIndex(nextFocussedIndex); - } - else - { - // are we allowed to focus off screen? - if (!allowOffscreen) - { - // check if focus is outside the screen and scroll the list so that it is inside - if (this._realToRelativeIndex(nextFocussedIndex) < 0) - { - // scrollt up - this._scrollTo(nextFocussedIndex, 0); - } - else if (this._realToRelativeIndex(nextFocussedIndex) > this.properties.visibleItems - 2) - { - // scroll down - this._scrollTo((nextFocussedIndex + 2) - this.properties.visibleItems, 0); - } - } - - // convert absolute nextFocussedIndex to position - pos = (nextFocussedIndex - this._topItem) * this.properties.itemHeight; - } - - - - - // find the new focussed element - var focussedElement = this._getDOMItem(nextFocussedIndex); - - - // do we have a focussed element? - if (focussedElement) - { - focussedElement.classList.add('focus'); - - // create first focus animation - if (this._showFocusAnimation) - { - this._showFocusAnimation = false; - this.firstFocusAnimationEndCallback = this._firstFocusAnimationEndCallback.bind(this); - focussedElement.addEventListener("animationend", this.firstFocusAnimationEndCallback, false); - focussedElement.classList.add('firstFocus'); - } - } - - // set letter index position - this._setLetterIndexPosition(nextFocussedIndex); - - // store focussed item - this._lastItemWithFocus = nextFocussedIndex; - - return nextFocussedIndex; -}; - -/** - * First focus animation end callback that is fired - * when the first focus animation finishes. - * It removes the firstFocus class from the event's target - * and clears any subsequent animation callbacks - * TAG: internal - * ========================= - * @param {AnimationEvent} - * @return {void} - */ -List2Ctrl.prototype._firstFocusAnimationEndCallback = function(e) -{ - e.target.classList.remove('firstFocus'); - e.target.removeEventListener("animationend", this.firstFocusAnimationEndCallback, false); - this.firstFocusAnimationEndCallback = null; -}; - -/** - * Hide focus highlight - * This is the single point for hiding the - * focus highlight - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._hideFocus = function() -{ - // Preserve focussed element - this._lastItemWithFocus = this._getFocussedIndex(); - - for (var i=0; i disable select only if the slider is adjustable - if (this.dataList.items[focussedIndex].allowAdjust) - { - fireSelect = false; - } - - // reset currently active slider - this._activeSlider = null; - } - - if (this._isStep(focussedIndex)) - { - params = { - value : this.dataList.items[focussedIndex].value, - finalAdjustment : true, - }; - } - - /** - * Trigger the currently selected button - */ - if (this._isLock(focussedIndex)) - { - var focussedButton = this._lockGetFocus(focussedIndex); - var actionResult = this._lockActivate(focussedIndex, focussedButton); - this._lockShowFocus(focussedIndex, 'clear'); - params = { additionalData : actionResult }; - } - - // prevent select on disabled items - if (this.dataList.items[focussedIndex].disabled) - { - fireSelect = false; - } - - // everything looks ok -> call internal _itemSelect() method if the item permits it - if (fireSelect) - { - // fire select only if no long press / hold start has been issued - if (!this._longPressIssued) - { - // produce beep - this._beep('Short', 'Multicontroller'); - - this._itemSelect(focussedIndex, params); - } - // otherwise fire holdStop Callback on shortAndHold items - else if ('shortAndHold' === this.dataList.items[focussedIndex].itemBehavior) - { - this._itemHoldStop(focussedIndex); - } - } - - // lower long-press/hold-start flag - this._longPressIssued = false; - - } -}; - -/** - * Check whether the list can gain focus. In certain cases focus cannot be - * shown (e.g. when there are no items available) or if it can gain it - * it should be restored on the nearest available item if the one that - * previously had focus is disabled. - * TAG: internal - * ========================= - * @param {MouseEvent|Number} - optional argument. If passed a check will be performed whether the target item is disabled - * @return {integer} - the item that will have focus. If no item can have focus, return -1 - */ -List2Ctrl.prototype._canGainFocus = function(e) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return -1; - } - - var itemToGainFocus = -1; - - // check if we are touching the element - if (typeof e === 'object') - { - var targetItem = this._getTargetItem(e); - - // the item is enabled and can gain focus - if (-1 !== targetItem && !this.dataList.items[targetItem].disabled) - { - itemToGainFocus = targetItem; - } - // the item is disabled -> find the closest enabled to it - else - { - var nearestItem = this._getNearestEnabledItem(targetItem); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - } - } - else if (typeof e === 'number') - { - if (-1 !== e && !this.dataList.items[e].disabled) - { - itemToGainFocus = e; - } - // the item is disabled -> find the closest enabled to it - else - { - var nearestItem = this._getNearestEnabledItem(e); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - } - } - // check whether this is called from the controllerActive event handler - else if ('controllerActive' === e && this.properties.focussedItem > 0 && this.dataList.items[this.properties.focussedItem] && !this.dataList.items[this.properties.focussedItem].disabled) - { - itemToGainFocus = this.properties.focussedItem; - } - // check if last item with focus is disabled - else if (this.dataList.items[this._lastItemWithFocus] && !this.dataList.items[this._lastItemWithFocus].disabled) - { - itemToGainFocus = this._lastItemWithFocus; - } - else - { - // show focus on the closest available item to the last with focus - var nearestItem = this._getNearestEnabledItem(this._lastItemWithFocus); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - - // if we have tabs and no enabled items, always show focus on the first line allowing tabs navigation - if (this.tabsCtrl && -1 === itemToGainFocus) - { - itemToGainFocus = this._topItem; - } - } - - return itemToGainFocus; -}; - -/** - * Get focussed index - * TAG: internal, helper - * ========================= - * @return {integer} - */ -List2Ctrl.prototype._getFocussedIndex = function() -{ - var focussedIndex = this._lastItemWithFocus; - - for (var i=0; i - */ -List2Ctrl.prototype._getFocussedElement = function() -{ - var focussedElement = null; - var focussedIndex = this._getFocussedIndex(); - for (var i=0; i= this.dataList.itemCount) - { - currentItem = null; - } - else - { - while (this.dataList.items[currentItem].disabled) - { - if (currentItem >= this.dataList.itemCount-1 || currentItem <= 0) - { - // this is the end/beginning of the array -> nothing is found so return Null - currentItem = null; - break; - } - currentItem = ('down' === direction) ? currentItem+1 : currentItem-1; - } - } - return currentItem; -}; - -/** - * Get nearest enabled item in all directions - * If there are two enabled items in both directions that are - * at equal distances from the reference item, the one below is - * returned. - * TAG: internal, helper - * ========================= - * @param {integer} - from which item to search - * @return {integer} - the next enabled item. - * If nothing is found, return Null - */ -List2Ctrl.prototype._getNearestEnabledItem = function(fromItem) -{ - var nearestEnabledItem = null; - - var nearestDown = this._getNearestEnabledItemByDirection(fromItem, 'down'); - var nearestUp = this._getNearestEnabledItemByDirection(fromItem, 'up'); - - if (null === nearestDown === nearestUp) - { - // no enabled item is found - nearestEnabledItem = null; - } - else if (null === nearestDown) - { - // nothing is found below -> return the one above - nearestEnabledItem = nearestUp; - } - else if (null === nearestUp) - { - // nothing is found above -> return the one below - nearestEnabledItem = nearestDown; - } - else - { - var differenceDown = this.m.abs(fromItem - nearestDown); - var differenceUp = this.m.abs(fromItem - nearestUp); - if (differenceDown === differenceUp) - { - // equally spaced -> return the one below - nearestEnabledItem = nearestDown; - } - else - { - // differently spaced -> return the closer one - nearestEnabledItem = (differenceDown < differenceUp) ? nearestDown : nearestUp; - } - } - - return nearestEnabledItem; -}; - -/** - * Get secondary select status of an item - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {boolean} - whether the item has secondary multicontroller - */ -List2Ctrl.prototype._hasSecondaryMulticontroller = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var hasSecondaryMulticontroller = false; - - var type = this.dataList.items[itemIndex].itemStyle; - for (var i=0; i return current position - newPos = this.scroller.offsetTop; - } - else - { - var bi = this._getNearestEnabledItemByDirection(this._topItem+this.properties.visibleItems-2, 'down'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopItem = bi + 2 - this.properties.visibleItems; - newPos = -newTopItem * this.properties.itemHeight; - newPos = this.m.max(newPos, this._maxScrollY); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - } - else - { - newPos = this.scroller.offsetTop; - } - } - - // set scroll nature - this._scrollNature = 'item'; - - // return the new position - return newPos; -}; - -/** - * Scroll up by one element - * If the element that will be placed at the top - * position is disabled, the list will be scrolled to - * the nearest available enabled item - * TAG: internal - * ========================= - * @return {integer} - new position of the scroller in px - */ -List2Ctrl.prototype._scrollUpOne = function() -{ - var newPos = 0; - - // check whether we are in the top-most position - if (this._topItem === 0) - { - // we can't scroll up any more -> return current position - newPos = this.scroller.offsetTop; - } - else - { - var bi = this._getNearestEnabledItemByDirection(this._topItem+1, 'up'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopItem = bi - 1; - newPos = -newTopItem * this.properties.itemHeight; - newPos = this.m.min(newPos, 0); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - } - else - { - newPos = this.scroller.offsetTop; - } - } - - // set scroll nature - this._scrollNature = 'item'; - - // return the new position - return newPos; -}; - -/** - * Scroll down by one page (screen) - * TAG: internal - * ========================= - * @return {string} - paged | atlimit | onepage - */ -List2Ctrl.prototype._scrollDownPage = function() -{ - // get list position - var listPosition = this._getListPosition(); - - // set return status - var returnStatus = 'onepage'; - - // determine behavior by the list position - switch (listPosition) - { - // we have only one page - case 'onepage' : - returnStatus = 'onePage'; - break; - - // we are ate the bottom - case 'bottom' : - // place focus on the last available item - var nei = this._getNearestEnabledItemByDirection(this._topItem + this.properties.visibleItems, 'up'); - if (null != nei && nei >= this._topItem) - { - this._showFocus(nei); - } - - // set return status - returnStatus = 'atLimit'; - break; - - // we are close to the bottom - case 'bottomclose' : - // search for enabled item in the bottom screen - var nei = this._getNearestEnabledItemByDirection(this.dataList.itemCount - 1, 'up'); - if (null != nei && nei >= this.dataList.itemCount - this.properties.visibleItems) - { - // place focus on the last available item and scroll to the bottom - this._showFocus(nei); - this._scrollTo(this.dataList.itemCount - this.properties.visibleItems); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // set return status - returnStatus = 'atLimit'; - } - break; - - // we are somewhere else - default : - // get current relative focussed index - var currentRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // get future absolute focussed index - var futureAbsoluteFocussedIndex = this.m.min(this._topItem + this.properties.visibleItems + currentRelativeFocussedIndex, this.dataList.itemCount-1); - - // check whether the future absolute focussed index is enabled - if (!this.dataList.items[futureAbsoluteFocussedIndex].disabled) - { - // item is enabled -> we can page down - var newPos = -(this._topItem + this.properties.visibleItems) * this.properties.itemHeight; // calculate new position - newPos = this.m.max(newPos, this._maxScrollY); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - - // place the focus on the future absolute focussed index - this._showFocus(futureAbsoluteFocussedIndex); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // item is disabled -> search for nearest enabled item from the future top item down - var nei = this._getNearestEnabledItemByDirection(this._topItem + this.properties.visibleItems, 'down'); - if (null != nei) - { - // we have found such item -> scroll down so it is in the same relative position - this._scrollTo(nei - currentRelativeFocussedIndex); - - // place the focus on the enabled item - this._showFocus(nei); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // no more enabled items -> set return status and do nothing - returnStatus = 'atLimit'; - } - } - break; - - } - - return returnStatus; -}; - -/** - * Scroll up by one page (screen) - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollUpPage = function() -{ - - // get list position - var listPosition = this._getListPosition(); - - // set return status - var returnStatus = ''; - - // determine behavior by the list position - switch (listPosition) - { - // we have only one page - case 'onepage' : - returnStatus = 'onePage'; - break; - - // we are ate the top - case 'top' : - // place focus on the first available item - var nei = this._getNearestEnabledItemByDirection(-1, 'down'); - if (null != nei && nei <= this.properties.visibleItems-1) - { - this._showFocus(nei); - } - - // set return status - returnStatus = 'atLimit'; - break; - - // we are close to the top - case 'topclose' : - // search for enabled item in the top screen - var nei = this._getNearestEnabledItemByDirection(0, 'down'); - if (null != nei && nei <= this.properties.visibleItems-1) - { - // place focus on the last available item and scroll to the top - this._showFocus(nei); - this._scrollTo(0); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // set return status - returnStatus = 'atLimit'; - } - break; - - // we are somewhere else - default : - // get current relative focussed index - var currentRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // get future absolute focussed index - var futureAbsoluteFocussedIndex = this.m.max(this._topItem - this.properties.visibleItems + currentRelativeFocussedIndex, 0); - - // check whether the future absolute focussed index is enabled - if (!this.dataList.items[futureAbsoluteFocussedIndex].disabled) - { - // item is enabled -> we can page down - var newPos = -(this._topItem - this.properties.visibleItems) * this.properties.itemHeight; // calculate new position - newPos = this.m.min(newPos, 0); // constrain it to the min scroll - this._performScroll(newPos); // do the scroll - - // place the focus on the future absolute focussed index - this._showFocus(futureAbsoluteFocussedIndex); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // item is disabled -> search for nearest enabled item from the future bottom item up - var nei = this._getNearestEnabledItemByDirection(this._topItem - this.properties.visibleItems, 'up'); - if (null != nei) - { - // we have found such item -> scroll down so it is in the same relative position - this._scrollTo(nei - currentRelativeFocussedIndex); - - // place the focus on the enabled item - this._showFocus(nei); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // no more enabled items -> set return status and do nothing - returnStatus = 'atlimit'; - } - } - break; - - } - - return returnStatus; -}; - -/** - * Scroll to the top - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollTop = function() -{ - this._performScroll(0); // do the scroll -}; - -/** - * Scroll to the bottom - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollBottom = function() -{ - this._performScroll(this._maxScrollY); // do the scroll -}; - -/** - * Do the actual scroll - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @param {duration} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._performScroll = function(pos, duration) -{ - - // if scrolling during loading is not allowed - if (!this.properties.scrollingDuringLoading && this._inLoading) - { - return; - } - - // if menu can be scrolled (it has enough list items) - if (this._isScrollable) - { - // make it snappy - var newPos = this._getSnapPosition(pos); - - // start animation - this._animateScroll(pos, duration); - } -}; - -/** - * Animate the scroll - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @param {duration} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._animateScroll = function(pos, time) -{ - if (time == undefined || time == null) - { - time = this.properties.swipeAnimationDuration; - } - - if (null !== this.scrollerAnimationEndCallback) - { - // remove any redundant animationEnd listeners - this.scroller.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - this.scrollerAnimationEndCallback = null; - } - - // animate scroller or directly call the animation end callback if the time is 0 - this.scroller.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.scrollerAnimationEndCallback = this._scrollerAnimationEnd.bind(this); - this.scroller.addEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - this.scroller.style.top = pos + 'px'; - - this._inScroll = false; - if (time > 0) - { - this._inScroll = true; - } - - // set top item and update display - this._updateScrollIndicator(pos, time); - this._setTopListItem(pos); - this._updateRange(); -}; - -/** - * Abort any ongoing scroll and reset any flags - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._abortScroll = function(e) -{ - // aborting scroll is possible only while the list is scrolling - if (false === this._inScroll) - { - return; - } - - // get target item - var targetItem = this._getTargetItem(e); - - // check if target item is enabled - if (this.dataList.items[targetItem] && !this.dataList.items[targetItem].disabled) - { - // show focus there - this._showFocus(targetItem, true, false, true); - } - else - { - // restore focus - this._restoreFocus(); - } - - // get current snapped position - var snapPos = this._getSnapPosition(this.scroller.offsetTop); - this._animateScroll(snapPos, 0); - - // reset any touch flags - this._inDrag = false; - this._inScroll = false; - this._scrollNature = null; - this._inHorizontalDrag = null; - this._hDragItem = null; - this._stopSelect = false; - this._startTime = 0; - this._startItem = null; - this._startDOMItem = null; - this._activeSlider = null; - this._startY = 0; - this._startX = 0; -}; - - -/** 2. LIST SNAPPING **/ - -/** - * Get snap position depending on the new scroller position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {integer} - position snapped to the nearest item edge - */ -List2Ctrl.prototype._getSnapPosition = function(pos) -{ - return this.properties.itemHeight * (Math.round(pos / this.properties.itemHeight)); -}; - -/** - * Get snap (above) position depending on the new scroller position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {integer} - position snapped to the nearest above item edge - */ -List2Ctrl.prototype._getSnapPositionAbove = function(pos) -{ - return this.properties.itemHeight * (Math.floor(pos / this.properties.itemHeight)); -}; - -/** - * Scroll list to an even snap position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {void} - */ -List2Ctrl.prototype._snap = function(pos) -{ - // the snap position is the same as the current - if (pos == this._y) - { - return; - } - - // the user has reached the end of the list and there will be no animation - if (pos == this._maxScrollY) - { - // set top item and bring focus on the screen - this._setTopListItem(pos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex < this._topItem) - { - this._restoreFocus(); - } - return; - } - else if (pos === this._minScrollY) - { - // set top item and bring focus on the screen - this._setTopListItem(pos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex > this._topItem + this.properties.visibleItems - 1) - { - this._restoreFocus(); - } - return; - } - - var snapPos = this._getSnapPosition(pos); - - // start animation - this._animateScroll(snapPos); -}; - -/** 3. LIST SWIPING AND PHYSICS **/ - -/** - * Perform swipe based on physics definition - * TAG: touch-only, internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._startSwipe = function(distance, time) -{ - // physics calculations - var momentumY = this._momentum(distance, time, -this._y, this._maxScrollY < 0 ? this._scrollerH - this._maskH + this._y - this._minScrollY : 0, 0); - - /* ANIMATE THE SCROLLER */ - var newPos = this.m.min(this.m.max(this._y + momentumY.dist, this._maxScrollY), 0); - var swipeDuration = momentumY.time; - - // make it snappy - newPos = this._getSnapPosition(newPos); - - // start animation - if (!isNaN(newPos) && newPos !== this.scroller.offsetTop) // only if newPos is a number and the list is worth scrolling - { - this._animateScroll(newPos, swipeDuration); - } - else - { - // set top item and bring focus on the screen - this._setTopListItem(newPos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex < this._topItem) - { - this._restoreFocus(); - } - } -}; - -/** - * Perform swipe based on physics definition - * TAG: touch-only, internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._startSwipeIndex = function(distance, time) -{ - // physics calculations - var momentumY = this._momentum(distance, time, -this._yIndex, this._maxScrollYIndex < 0 ? this._scrollerHIndex - this._maskH + this._yIndex - this._minScrollYIndex : 0, 0); - - /* ANIMATE THE LETTER INDEX SCROLLER */ - var newPos = this.m.min(this.m.max(this._yIndex + momentumY.dist, this._maxScrollYIndex), 0); - var swipeDuration = momentumY.time; - - // make it snappy - newPos = this._getIndexSnapPosition(newPos); - - // start animation - if (!isNaN(newPos) && newPos !== this.letterIndex.offsetTop) // only if newPos is a number and the letter index is worth scrolling - { - // start animation - this._animateLetterIndex(newPos, swipeDuration); - } - else - { - // set top letter index and bring focus on the screen - this._setTopLetterIndex(newPos); - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (focussedLetterIndex < this._topLetterIndex) - { - this._showFocusLetterIndex(this._topLetterIndex); - } - } -}; - -/** - * @param {integer} - dragged distance - * @param {time} - time dragged - * @param {integer} - this._y - * @param {integer} - this._maxScrollY < 0 ? this._scrollerH - this._maskH + this._y - this._minScrollY : 0 - * @param {integer} - 0 - */ -List2Ctrl.prototype._momentum = function (dist, time, maxDistUpper, maxDistLower, size) -{ - var deceleration = this.properties.deceleration, - speed = this.m.abs(dist) / time, - newDist = (speed * speed) / (2 * deceleration), - newTime = 0, outsideDist = 0; - - // Proportinally reduce speed if we are outside of the boundaries - if (dist > 0 && newDist > maxDistUpper) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistUpper = maxDistUpper + outsideDist; - speed = speed * maxDistUpper / newDist; - newDist = maxDistUpper; - } else if (dist < 0 && newDist > maxDistLower) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistLower = maxDistLower + outsideDist; - speed = speed * maxDistLower / newDist; - newDist = maxDistLower; - } - - newDist = newDist * (dist < 0 ? -1 : 1); - newTime = speed / deceleration; - - return { dist: newDist, time: Math.round(newTime) }; -}; - - -/** - * ========================= - * LETTER INDEX - * ========================= - */ - -/** - * Letter index select - * scrolls list to letter index - * TAG: internal - * ========================= - * @param {integer} - the new position of the scroller in element index. - * @return {void} - */ -List2Ctrl.prototype._letterIndexSelect = function(letterIndex, eventCause) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - - // check if if letterIndex is a valid index - if (letterIndex < 0 || letterIndex >= this.letterIndexData.length) - { - return; - } - - // check for disabled letter index (no valid item index) - if (this.letterIndexData[letterIndex].disabled) - { - return; - } - - // set scroll nature - this._scrollNature = 'letterIndex'; - - // all seems fine -> scroll - this._scrollTo(this.letterIndexData[letterIndex].itemIndex - 1); - - // set letter index active position - this._setLetterIndexPosition(this.letterIndexData[letterIndex].itemIndex); - - // update last item with focus so that focus gets restored in the correct place - this._lastItemWithFocus = this.letterIndexData[letterIndex].itemIndex; - - // set proper event cause - var eventCause = ('Multicontroller' != eventCause && 'Touch' != eventCause) ? null : eventCause; - // produce beep - this._beep('Short', eventCause); - - // dispatch letter select event - var eventData = { - index : letterIndex, - label : this.letterIndexData[letterIndex].label, - itemIndex : this.letterIndexData[letterIndex].itemIndex, - }; - this._listEvent(this._EVENTS.LETTER_SELECT, eventData); -}; - -/** - * Schedule letter index select after some time - * TAG: internal - * ========================= - * @param {integer} - the letter index - * @param {boolean} - clear any timeouts without scheduling a new one - * @return {void} - */ -List2Ctrl.prototype._scheduleLetterIndexSelect = function(letterIndex, clear) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - - // clear previous timeout - clearTimeout(this._indexSelectTimeoutId); - this._indexSelectTimeoutId = null; - - if (!clear) - { - // if no letter index is passed, get the currently focussed one - if (undefined === letterIndex) - { - // check whether we already have focussed letter index - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (null != focussedLetterIndex) - { - // if yes, schedule to that one - letterIndex = focussedLetterIndex; - } - } - - // set scroll timeout - this._indexSelectTimeoutId = setTimeout(function() { - this._letterIndexSelect(letterIndex); - }.bind(this), this.properties.letterIndexSelectTimeout); - } -}; - -/** - * Schedule background letter index select after some time. - * Background select occurs without affecting the letter index - * scroll position. This is intended to be used only programatically. - * TAG: internal - * ========================= - * @param {integer} - the letter index - * @param {boolean} - clear any timeouts without scheduling a new one - * @return {void} - */ -List2Ctrl.prototype._scheduleBackgroundLetterIndexSelect = function(letterIndex, clear) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - // check for a valid letter index item - if (letterIndex < 0 || letterIndex >= this.letterIndexData.length) - { - log.warn('List2: a valid letter index expected. Letter index passed": ' + letterIndex); - return; - } - // check for disabled letter index (no valid item index) - if (this.letterIndexData[letterIndex].disabled) - { - return; - } - // clear previous timeout - clearTimeout(this._indexSelectTimeoutId); - this._indexSelectTimeoutId = null; - if (!clear) - { - // activate the new index - this._setCurrentLetterIndex(letterIndex); - // set scroll timeout - this._indexSelectTimeoutId = setTimeout(function() { - // set scroll nature - this._scrollNature = 'letterIndex'; - // all seems fine -> scroll - this._scrollTo(this.letterIndexData[letterIndex].itemIndex - 1); - }.bind(this), this.properties.letterIndexSelectTimeout); - } -}; -/** - * Animate the letter index - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @param {integer} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._animateLetterIndex = function(pos, time) -{ - if (time == undefined || time == null) - { - time = this.properties.swipeAnimationDuration; - } - - // animate letter index - this.letterIndex.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.letterIndexAnimationEndCallback = this._letterIndexAnimationEnd.bind(this); - this.letterIndex.addEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - this.letterIndex.style.top = pos + 'px'; - - // set top letter index - this._setTopLetterIndex(pos); -}; - -/** - * Set top letter index item depending on the position - * TAG: internal - * ========================= - * @param {integer} - position in px at which the letter should be - * @return {void} - */ -List2Ctrl.prototype._setTopLetterIndex = function(pos) -{ - // pos should be number for proper topLetterIndex calculation - if (!isNaN(pos)) - { - this._prevTopLetterIndex = this._topLetterIndex; - this._topLetterIndex = -(Math.round(pos / this.properties.letterIndexHeight)); - } -}; - -/** - * Get snap position of letter index - * depending on the new letter index position - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @return {integer} - position snapped to the nearest item edge - */ -List2Ctrl.prototype._getIndexSnapPosition = function(pos) -{ - return this.properties.letterIndexHeight * (Math.round(pos / this.properties.letterIndexHeight)); -}; - -/** - * Scroll letter index to an even snap position - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @return {void} - */ -List2Ctrl.prototype._snapIndex = function(pos) -{ - // the snap position is the same as the current - if (pos == this._yIndex) - { - return; - } - - // the user has reached the end of the list and there will be no animation - if (pos == this._maxScrollYIndex) - { - // set top item and bring focus on the screen - this._setTopLetterIndex(pos); - var focussedIndex = this._getFocussedLetterIndex(); - if (focussedIndex < this._topLetterIndex) - { - this._restoreLetterIndexFocus(); - } - return; - } - - var snapPos = this._getIndexSnapPosition(pos); - - // start animation - this._animateLetterIndex(snapPos); -}; - -/** - * Scroll to a specific index item - * TAG: internal - * ========================= - * @param {integer | string} - letter or letter index - * @return {void} - */ -List2Ctrl.prototype._scrollToIndex = function(letter) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - var targetIndex = -1; - - if (!isNaN(letter)) - { - // we are going to a letter index - targetIndex = this.m.max(this.m.min(letter, this.letterIndexData.length-1), 0); // constrain the index - } - else if (typeof letter === 'string'); - { - // we are searching for the letter index of the letter - for (var i=0, l=this.letterIndexData.length; i above or below the visible range - // NOTE: if the letter is within the visible range this should not get called at all - if (-1 != targetIndex && targetIndex >= this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - // look below -> find closest target index so that the focus is visible and apply target index correction - targetIndex = targetIndex - this.properties.visibleLetterIndexItems + 1; - } - else if (-1 != targetIndex && targetIndex <= this._topLetterIndex) - { - // look above -> find closest target index so that the focus is visible - // correction: the taget index is the top item whereas the item in question is the second one - targetIndex--; - } - else - { - // we don't scroll if the target is visible - return; - } - - // do the scroll - var newPos = -(targetIndex) * this.properties.letterIndexHeight; // calculate new position - newPos = this.m.max(this.m.min(newPos, this._minScrollYIndex), this._maxScrollYIndex); // constrain it to scroll bounds - this._animateLetterIndex(newPos); // start animation - - -}; - -/** - * Scroll down by one or more index elements - * TAG: internal - * ========================= - * @return {integer} - new position of the letter index in px - */ -List2Ctrl.prototype._scrollDownOneIndex = function() -{ - var newPos = 0; - - // check whether we are in the bottom-most position - if (this._topLetterIndex === this.letterIndexData.length - this.properties.visibleLetterIndexItems) - { - // we can't scroll down any more -> return current position - newPos = this.letterIndex.offsetTop; - } - else - { - var bi = this._getNearestEnabledLetterByDirection(this._topLetterIndex+this.properties.visibleLetterIndexItems-2, 'down'); - // do not scroll if no enabled letters are found - if (null != bi) - { - var newTopLetter = bi + 2 - this.properties.visibleLetterIndexItems; - newPos = -newTopLetter * this.properties.letterIndexHeight; - newPos = this.m.max(newPos, this._maxScrollYIndex); // constrain it to the max scroll - this._animateLetterIndex(newPos); // do the scroll - } - else - { - newPos = this.letterIndex.offsetTop; - } - } - - // return the new position - return newPos; -}; - -/** - * Scroll up by one or more index elements - * TAG: internal - * ========================= - * @return {integer} - new position of the letter index in px - */ -List2Ctrl.prototype._scrollUpOneIndex = function() -{ - var newPos = 0; - - // check whether we are in the top-most position - if (this._topLetterIndex === 0) - { - // we can't scroll up any more -> return current position - newPos = this.letterIndex.offsetTop; - } - else - { - var bi = this._getNearestEnabledLetterByDirection(this._topLetterIndex+1, 'up'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopLetter = bi - 1; - newPos = -newTopLetter * this.properties.letterIndexHeight; - newPos = this.m.min(newPos, this._minScrollYIndex); // constrain it to the min scroll - this._animateLetterIndex(newPos); // do the scroll - } - else - { - newPos = this.letterIndex.offsetTop; - } - } - - // return the new position - return newPos; -}; - -/** - * Set letter index position relative to the - * focussed item in the scroller - * TAG: internal - * ========================= - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._setLetterIndexPosition = function(index) -{ - // check for letter index - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return false; - } - - // get focussed item - var focussedIndex; - if (!isNaN(index)) - { - focussedIndex = index; - } - else - { - focussedIndex = this._getFocussedIndex(); - } - - // get the new index - var targetIndex = -1; - for (var i=this._letterIndexDataSorted.length-1; i>=0; i--) - { - if (focussedIndex >= this._letterIndexDataSorted[i].itemIndex) - { - targetIndex = this._letterIndexDataSorted[i].publicIndex; - break; - } - } - - // show focus on target index - if (targetIndex > -1) - { - this._setCurrentLetterIndex(targetIndex); - } - - // check if letter index scrolling is needed - if (targetIndex >= this._topLetterIndex && targetIndex < this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - return; - } - - // scroll to target index - if (targetIndex > -1) - { - this._scrollToIndex(targetIndex); - } -}; - -/** - * Set currently active letter index - * TAG: internal - * ========================= - * @param {integer} - letter item index - * @return {integer} - the currently active letter index - */ -List2Ctrl.prototype._setCurrentLetterIndex = function(letter) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return null; - } - - var targetIndex = this.m.max(this.m.min(letter, this.letterIndexData.length-1), 0); // constrain the index - - - // remove any previously active letter index - for (var i=0, l=this.letterIndexData.length; i= this.letterIndexData.length-1) - { - // nothing is found, return the old one - targetIndex = lastFocussedIndex; - break; - } - } - break; - - case 'up' : - // we are searching for the previous - targetIndex = lastFocussedIndex; - while (targetIndex > 0) - { - targetIndex--; - if (-1 != this.letterIndexData[targetIndex].itemIndex) - { - break; - } - else if (targetIndex <= 0) - { - // nothing is found, return the old one - targetIndex = lastFocussedIndex; - break; - } - } - break; - - default : - // we are searching for the index of the letter - for (var i=0, l=this.letterIndexData.length; i= letterIndexCount) - { - currentLetter = null; - } - else - { - while (this.letterIndexData[currentLetter].disabled) - { - if (currentLetter >= letterIndexCount-1 || currentLetter <= 0) - { - // this is the end/beginning of the array -> nothing is found so return Null - currentLetter = null; - break; - } - currentLetter = ('down' === direction) ? currentLetter+1 : currentLetter-1; - } - } - return currentLetter; -}; - -/** - * Exit hit state of the currently hit index item - * ========================= - * @return {void} - */ -List2Ctrl.prototype._indexRemoveHit = function() -{ - for (var i=0, l=this.letterIndexData.length; i bring back reorder item - if (this._inListReorder && this._reorderTouchElt) - { - this._bringReorderItem(); - } - - // Focus adjust after animation ends - - // get list position - var listPosition = null; - if (0 === this._topItem) - listPosition = 'top'; - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - listPosition = 'bottom'; - else - listPosition = 'middle'; - - // get scroll direction - var scrollDirection = null; - if (this._prevTopItem > this._topItem) - scrollDirection = 'up'; - else if (this._prevTopItem < this._topItem) - scrollDirection = 'down'; - else - scrollDirection = 'none'; - - // get scroll size - var scrollSize = this.m.abs(this._prevTopItem - this._topItem); - - if ('page' === this._scrollNature) - { - // do not place focus, it should have been done by the paging function - } - else if ('item' === this._scrollNature) - { - // show focus - this._showFocus(this._lastItemWithFocus, true); - } - else - { - // check if focussed index is outside the screen and we actually have a scroll - if (scrollSize > this.properties.visibleItems-1 && !this._inLetterIndexMulticontroller) - { - // restore focus - this._restoreFocus(); - } - else if (scrollSize > 0 && !this._inLetterIndexMulticontroller) - { - // check if the focus is just slightly outside the visible range - if (this._lastItemWithFocus < this._topItem || this._lastItemWithFocus >= this._topItem + this.properties.visibleItems) - { - // restore focus - this._restoreFocus(); - } - else - { - // else the focus remains on the screen -> only set letter index position - this._setLetterIndexPosition(this._getFocussedIndex()); - } - } - else - { - // we don't have a scroll -> nothing to do here - } - } - - // lower _inScroll flag - this._inScroll = false; - - // reset scroll nature - this._scrollNature = null; - - // dispatch scroll end event - this._listEvent(this._EVENTS.SCROLL_END, {scrollPosition:this._topItem}); -}; - -/** - * Restore focus after it has been left off screen. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._restoreFocus = function() -{ - // check if the top item is enabled - if (!this.dataList.items[this._topItem].disabled) - { - this._showFocus(this._topItem, false, false, true); - } - // top item is disabled, find the nearest enabled item below the top one - else - { - var neiDown = this._getNearestEnabledItem(this._topItem, 'down'); - // check if the item is on screen - if (null != neiDown && neiDown >= this._topItem && neiDown < this._topItem + this.properties.visibleItems) - { - this._showFocus(neiDown, true, false, true); - } - // there's no enabled item or it is off screen - else - { - this._showFocus(this._topItem, false, false, true); - } - } -}; - -/** - * Scroll indicator animation end callback - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorAnimationEnd = function() -{ - this.scrollIndicator.style[this._VENDOR + 'TransitionDuration'] = '0ms'; - this.scrollIndicator.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - this.scrollIndicatorAnimationEndCallback = null; - - // fadeOut scroll indicator - this._fadeOutScrollIndicator(); -}; - -/** - * Letter index animation end callback - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._letterIndexAnimationEnd = function() -{ - // remove animation end callbacks - this.letterIndex.style[this._VENDOR + 'TransitionDuration'] = '0ms'; - this.letterIndex.removeEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - this.letterIndexAnimationEndCallback = null; - - // restore focus - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (null != focussedLetterIndex && (focussedLetterIndex < this._topLetterIndex || focussedLetterIndex > this._topLetterIndex + this.properties.visibleLetterIndexItems - 1)) - { - // focus is off screen - this._restoreLetterIndexFocus(); - } - else if (null != focussedLetterIndex) - { - // schedule letter index select if letter is enabled - if (!this.letterIndexData[focussedLetterIndex].disabled) - { - this._scheduleLetterIndexSelect(focussedLetterIndex); - } - } -}; - -/** - * Restore letter index focus after it has been left off screen. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._restoreLetterIndexFocus = function() -{ - // check if the top letter index is enabled - if (!this.letterIndexData[this._topLetterIndex].disabled) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - - // schedule letter index select - this._scheduleLetterIndexSelect(this._topLetterIndex); - } - else - { - // look for enabled item down and up - var neiDown = this._getNearestEnabledLetterByDirection(this._topLetterIndex, 'down'); - var neiUp = this._getNearestEnabledLetterByDirection(this._topLetterIndex, 'up'); - // determine scroll direction - var scrollDirection = (this._topLetterIndex - this._prevTopLetterIndex < 0) ? 'up' : 'down'; - - // check whether we have an enabled item on screen - if (null != neiDown && neiDown >= this._topLetterIndex && neiDown < this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - // there is an enabled item on screen -> place the focus there - this._showFocusLetterIndex(neiDown); - // schedule letter index select - this._scheduleLetterIndexSelect(neiDown); - } - else if ('down' === scrollDirection) - { - // we are scrolling down -> look for enabled item up - if (null != neiUp) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - - // schedule background letter index select - this._scheduleBackgroundLetterIndexSelect(neiUp); - } - else - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - } - } - else if ('up' === scrollDirection) - { - // we are scrolling up -> look for enabled item down - if (null != neiDown) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - // schedule background letter index select - this._scheduleBackgroundLetterIndexSelect(neiDown); - } - else - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - } - } - } -}; - - -/** - * ========================= - * SLIDERS AND TOGGLE CONTROL - * ========================= - */ - -/** - * Passes START (mousedown) event to the currently - * targeted slider instance and returns it. - * TAG: internal - * ========================= - * @param {MouseEvent} - * @param {Boolean} - * @return {SliderCtrl} - */ -List2Ctrl.prototype._slideStart = function(e, skipActiveSlider) -{ - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return; - } - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - // check if slider can be adjusted - if (!this.dataList.items[itemIndex].allowAdjust) - { - return; - } - - // check if we are in the hittable area - if(!this._hasRightHittableArea(this.dataList.items[itemIndex])) - { - var relativeX = e.pageX - this._maskPositionX; - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight; - var leftBoundary = this.properties.sliderReferencePointRight - this.properties.sliderWidth; - } - else if(this.dataList.items[itemIndex].indented) - { - var relativeX = e.pageX - (Math.ceil(this._maskPositionX / 1.5)); - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight - (Math.ceil(this.properties.sliderWidth / 1.5)) + (this.properties.indentOffset * 2); - var leftBoundary = this.properties.sliderReferencePointLeft; - } else - { - var relativeX = e.pageX - (Math.ceil(this._maskPositionX / 1.5)); - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight - (Math.ceil(this.properties.sliderWidth / 1.5)); - var leftBoundary = this.properties.sliderReferencePointLeft; - } - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // we are outside the hittable area -> exit - return; - } - - var sliderInstance = this._getSlider(itemIndex); - var skipActiveSlider = (true === skipActiveSlider); - if (!skipActiveSlider) - { - // set currently active slider - this._activeSlider = { - itemIndex : itemIndex, // currently active slider index - slider : sliderInstance // currently active slider instance - }; - - // transition focus to slider and hide focus on the item - this._activeSlider.slider.handleControllerEvent('acceptFocusFromTop'); - this._hideFocus(); - - // pass the event to the SliderCtrl - this._activeSlider.slider._onDownHandler(e); - } - - return sliderInstance; -}; - -List2Ctrl.prototype._slideMove = function(e) -{ - // determine if we have an active slider - if (!this._activeSlider) - { - return; - } - - // determine target item - var itemIndex = this._activeSlider.itemIndex; - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - // pass the event to the SliderCtrl - this._activeSlider.slider._onMoveHandler(e); -}; - -List2Ctrl.prototype._slideEnd = function(e) -{ - // determine if we have an active slider - if (!this._activeSlider) - { - var sliderInstance = this._slideStart(e, true); - if (sliderInstance && !this._stopSelect) - { - // pass the event to the SliderCtrl - sliderInstance._onDownHandler(e); - sliderInstance._onUpHandler(e); - } - return; - } - else - { - var itemIndex = this._activeSlider.itemIndex; - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - if (this._inSecondaryMulticontroller && itemIndex == this._currentSecondaryMulticontrollerItem) - { - // if we are in secondary multicontroller mode, touching outside the item will exit it - this._setSecondaryMulticontroller(false, this._currentSecondaryMulticontrollerItem); - this._showFocus(this._lastItemWithFocus, true); - } - else - { - // pass the event to the SliderCtrl - this._activeSlider.slider._onUpHandler(e); - - // transition focus back to item and remove it from the slider - this._activeSlider.slider.handleControllerEvent('lostFocus'); - this._showFocus(this._lastItemWithFocus, true); - } - } - - // reset currently active slider - this._activeSlider = null; -}; - -List2Ctrl.prototype._slideCallback = function() -{ - // get item index from the first argument - var itemIndex = arguments[0]; - - // get value and final adjustment from fourth argument - var value = arguments[3].value; - var finalAdjustment = arguments[3].finalAdjustment; - - // update local value - this.dataList.items[itemIndex].value = value; - - // Fire slide callback passing forward anything in the arguments - if (typeof this.properties.slideCallback == 'function') - { - // fire callback with original slider params - // this.properties.slideCallback.apply(null, Array.prototype.slice.call(arguments, 1)); - - // fire per-design callback - var params = { - itemIndex : itemIndex, - value:value, - finalAdjustment : finalAdjustment - }; - this.properties.slideCallback(this, this.dataList.items[itemIndex].appData, params); - } -}; - - - -/* - * ========================= - * TOGGLE BUTTONS - * When a button is selected it is automatically - * highlighted (activated) and the value is reported to the - * button select callback (if defined) - * ========================= - */ - - -/** - * Remove hit state from the toggle button - * TAG: touch-only, internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {void} - */ -List2Ctrl.prototype._buttonRemoveHit = function(itemIndex) -{ - var targetElt = this._getDOMItem(itemIndex); - if (targetElt) - { - var hitItems = targetElt.querySelectorAll('.hit'); - - if (hitItems.length) - { - for (var i=0, l=hitItems.length; i do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Check if we are in the hittable area - var inHittable = false; - var rightBoundary = this.properties.toggleReferencePointRight; - var leftBoundary = 0; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : // 2 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (2 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'style11' : // 3 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (3 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'draggable' : // 1 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (1 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - } - - if (!inHittable) - { - // we are outside the hittable area -> return false - return false; - } - - // when user hits one of the buttons, the item does not gain hit highlight - this._itemRemoveHit(); - - // Check which button is hit - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - var buttonId = null; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : - buttonId = clickedZone < 0.5 ? 1 : 2; - break; - case 'style11' : - buttonId = clickedZone < 0.33 ? 1 : - clickedZone < 0.66 ? 2 : - 3; - break; - case 'draggable' : - buttonId = 1; - break; - } - - // Make that button hit - if (buttonId) - { - // save the button as _startButton - this._startButton = buttonId; - - var domItem = this._getDOMItem(itemIndex); - var buttons = domItem.querySelectorAll('.button'); - for (var i=0; i do not make active - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // Check if we are in the hittable area - var inHittable = false; - var rightBoundary = this.properties.toggleReferencePointRight; - var leftBoundary = 0; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : // 2 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (2 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'style11' : // 3 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (3 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'draggable' : // 1 toggle button - leftBoundary = this.properties.toggleReferencePointRight - (1 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - } - - if (!inHittable && this._startButton) - { - // we are outside the hittable area and we have started from a button -> return cancel - return 'cancel'; - } - else if (!inHittable) - { - // we are outside the hittable area -> return cancel - return null; - } - - // Check which button is selected - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - var buttonId = null; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : - buttonId = clickedZone < 0.5 ? 1 : 2; - break; - case 'style11' : - buttonId = clickedZone < 0.33 ? 1 : - clickedZone < 0.66 ? 2 : - 3; - break; - case 'draggable' : - buttonId = 1; - break; - } - - // Make that button active - if (buttonId && buttonId === this._startButton) - { - this._startButton = null; - - if (this.dataList.items[itemIndex].value == buttonId) - { - // we ended on already selected button -> cancel - return 'cancel'; - } - // we ended up on the same button we started -> select that button - this._buttonActivate(itemIndex, buttonId); - } - else if (buttonId && null === this._startButton) - { - // we started off the buttons but ended up on a button -> select next button - this._startButton = null; - return null; - } - else - { - // we started from one of the buttons but ended out of them -> cancel - this._startButton = null; - return 'cancel'; - } - - // Return the button id - return buttonId; - -}; - -/** - * Select the nearest left toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonSelectLeft = function(itemIndex) -{ - // get current active button - var current = this.dataList.items[itemIndex].value; - - // set new active button - return this._buttonActivate(itemIndex, current-1); -}; - -/** - * Select the nearest right toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonSelectRight = function(itemIndex) -{ - // get current active button - var current = this.dataList.items[itemIndex].value; - - // set new active button - return this._buttonActivate(itemIndex, current+1); -}; - -/** - * Activate toggle button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonActivate = function(itemIndex, buttonId) -{ - // Ensure that buttonId is valid and wraps in a loop - if ('style10' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = (!isNaN(buttonId)) ? buttonId : 1; - if (buttonId > 2) - buttonId = 1; - else if (buttonId < 1) - buttonId = 2; - } - else if('style11' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = (!isNaN(buttonId)) ? buttonId : 1; - if (buttonId > 3) - buttonId = 1; - else if (buttonId < 1) - buttonId = 3; - } - else if('draggable' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = 1; - } - else - { - log.debug('Unknown item style for itemIndex ' + itemIndex); - return null; - } - - if ('draggable' != this.dataList.items[itemIndex].itemStyle) - { - // Save the new value in the dataList - this.dataList.items[itemIndex].value = buttonId; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - // Remove any residual hit states - this._buttonRemoveHit(itemIndex); - - // Activate the button - if (domItem) - { - var buttons = domItem.querySelectorAll('.button'); - for (var i=0; i do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Check if we are in the hittable area - var inHittable = false; - var domItem = this._getDOMItem(itemIndex); - var lockButton = domItem.querySelector('.buttonLock'); - var deleteButton = domItem.querySelector('.buttonDelete'); - var leftBoundary = lockButton.offsetLeft; - var rightBoundary; - if (this.dataList.items[itemIndex].locked) - { - // the delete button is disabled - rightBoundary = lockButton.offsetLeft + lockButton.clientWidth; - } - else - { - // the delete button is enabled - rightBoundary = deleteButton.offsetLeft + deleteButton.clientWidth; - } - - // hit test - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // we are outside the hittable area -> return false - return false; - } - - // when user hits one of the buttons, the item does not gain hit highlight - this._itemRemoveHit(); - - var buttonId = 1; - // Check which button is hit is the item is not locked - if (!this.dataList.items[itemIndex].locked) - { - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - buttonId = clickedZone < 0.5 ? 1 : 2; - } - - // save the button as _startLockButton - this._startLockButton = buttonId; - - // remove hit - this._lockRemoveHit(itemIndex); - - // make that button hit - if (1 === buttonId) - { - this._lockShowFocus(itemIndex, 1); - domItem.querySelector('.buttonLock').classList.add('hit'); - } - else - { - this._lockShowFocus(itemIndex, 2); - domItem.querySelector('.buttonDelete').classList.add('hit'); - } - - this._hideFocus(); - - return true; - -}; - -/** - * Select lock button - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - * @return {string} - performed action (lock, unlock, delete) - */ -List2Ctrl.prototype._lockSelect = function(e) -{ - // get relative mouse position - var relativeX = e.pageX - this._maskPositionX; - - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return null; - } - - // if the item is disabled -> do not make active - if (this.dataList.items[itemIndex].disabled) - { - return null; - } - - // Check if we are in the hittable area - var inHittable = false; - var domItem = this._getDOMItem(itemIndex); - var lockButton = domItem.querySelector('.buttonLock'); - var deleteButton = domItem.querySelector('.buttonDelete'); - var leftBoundary = lockButton.offsetLeft; - var rightBoundary; - if (this.dataList.items[itemIndex].locked) - { - // the delete button is disabled - rightBoundary = lockButton.offsetLeft + lockButton.clientWidth; - } - else - { - // the delete button is enabled - rightBoundary = deleteButton.offsetLeft + deleteButton.clientWidth; - } - - // hit test - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // set secondary multicontroller leaving highlight from where it started - if (this._startLockButton) - { - this._setSecondaryMulticontroller(true, itemIndex); - this._lockShowFocus(itemIndex, this._startLockButton); - } - - // we are outside the hittable area -> return null - return null; - } - - var action = null; - var buttonId = 1; - // Check which button is hit is the item is not locked - if (!this.dataList.items[itemIndex].locked) - { - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - buttonId = clickedZone < 0.5 ? 1 : 2; - } - - // Make that button active - if (buttonId === this._startLockButton) - { - this._startLockButton = null; - // we ended up on the same button we started -> select that button - action = this._lockActivate(itemIndex, buttonId); - } - else if (null === this._startButton) - { - this._startLockButton = null; - // we started off the buttons but ended up on a button -> select that button - action = this._lockActivate(itemIndex, buttonId); - } - else - { - // we started from one of the buttons but ended out of them -> cancel - this._startLockButton = null; - - return null; - } - - // Return the performed action - return action; - -}; - -/** - * Select the nearest left toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._lockMoveFocusLeft = function(itemIndex) -{ - // get current focussed lock button - var current = this._lockGetFocus(itemIndex); - - // set the new focussed lock button - return this._lockShowFocus(itemIndex, current-1); -}; - -/** - * Select the nearest right toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._lockMoveFocusRight = function(itemIndex) -{ - // get current focussed lock button - var current = this._lockGetFocus(itemIndex); - - // set the new focussed lock button - return this._lockShowFocus(itemIndex, current+1); -}; - -/** - * Activate lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @param {integer} - the button that is going to be activated - * @return {string} - performed action (lock, unlock, delete) - */ -List2Ctrl.prototype._lockActivate = function(itemIndex, buttonId) -{ - var action = null; - - switch (buttonId) - { - case 1 : - if (this.dataList.items[itemIndex].locked) - { - this.dataList.items[itemIndex].locked = false; - action = 'unlock'; - } - else - { - this.dataList.items[itemIndex].locked = true; - action = 'lock'; - } - break; - case 2 : - if (!this.dataList.items[itemIndex].locked) - { - action = 'delete'; - } - break; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - // Update the item - if (domItem) - { - switch (action) - { - case 'lock' : - domItem.classList.add('locked'); - break; - case 'unlock' : - domItem.classList.remove('locked'); - break; - } - } - - return action; -}; - - -/** - * Show focus highlight on a lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @param {integer} - the index of the button that will be focused - * @return {integer} - id of the focussed lock button - */ -List2Ctrl.prototype._lockShowFocus = function(itemIndex, buttonId) -{ - // check if this is a lock item - if (!this._isLock(itemIndex)) - { - return false; - } - - // if the item is disabled -> do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - if ('clear' === buttonId) - { - if (domItem) - { - domItem.querySelector('.buttonLock').classList.remove('focus'); - domItem.querySelector('.buttonDelete').classList.remove('focus'); - } - return null; - } - else - { - // validate button id - var buttonId = this.dataList.items[itemIndex].locked ? 1 : this.m.min(this.m.max(buttonId, 1), 2); - - if (domItem) - { - // add focus on the respective button - switch (buttonId) - { - case 1 : - domItem.querySelector('.buttonDelete').classList.remove('focus'); - domItem.querySelector('.buttonLock').classList.add('focus'); - break; - case 2 : - domItem.querySelector('.buttonLock').classList.remove('focus'); - domItem.querySelector('.buttonDelete').classList.add('focus'); - break; - default : - domItem.querySelector('.buttonDelete').classList.remove('focus'); - domItem.querySelector('.buttonLock').classList.add('focus'); - break; - } - } - return buttonId; - } -}; - - -/** - * Get currently focused lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {integer} - id of the currently focussed lock button - */ -List2Ctrl.prototype._lockGetFocus = function(itemIndex) -{ - // check if this is a lock item - if (!this._isLock(itemIndex)) - { - return false; - } - - // if the item is disabled -> do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - var focussedButton = null; - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - if (domItem) - { - if (domItem.querySelector('.buttonLock').classList.contains('focus')) - focussedButton = 1; - else if (domItem.querySelector('.buttonDelete').classList.contains('focus')) - focussedButton = 2; - } - - return focussedButton; -}; - - -/* - * ========================= - * STEP ITEM - * ========================= - */ - -/** - * Increase the value by one step - * TAG: internal - * ========================= - * @param {MouseEvent} - raw mouse event - * @return {integer} - the new value - */ -List2Ctrl.prototype._stepAdjust = function(e) -{ - // get relative mouse position - var relativeX = e.pageX - this._maskPositionX; - - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return; - } - - // if the item is disabled -> do not make active - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // perform hit test - var itemDOMElement = this._getDOMItem(itemIndex); - if (!itemDOMElement) - { - return; - } - - var p = itemDOMElement.querySelector('.plus'); - var m = itemDOMElement.querySelector('.minus'); - var pLayout = { x1:p.offsetLeft, x2:p.offsetLeft + p.clientWidth }; - var mLayout = { x1:m.offsetLeft, x2:m.offsetLeft + m.clientWidth }; - - var newValue = null; - - if (relativeX >= pLayout.x1 && relativeX <= pLayout.x2) - { - // plus pressed - if(!itemDOMElement.classList.contains('maxReached')) - { - newValue = this._stepUp(itemIndex); - } - } - else if (relativeX >= mLayout.x1 && relativeX <= mLayout.x2) - { - // minus pressed - if(!itemDOMElement.classList.contains('minReached')) - { - newValue = this._stepDown(itemIndex); - } - } - else if (relativeX < mLayout.x1) - { - newValue = 'commit'; - } - - - return newValue; -}; - -/** - * Increase the value by one step - * TAG: internal - * ========================= - * @param {integer} - index of the step item - * @return {integer|null} - the new value - */ -List2Ctrl.prototype._stepUp = function(itemIndex) -{ - if (!this._isStep(itemIndex)) - { - return; - } - - var oldValue = this.dataList.items[itemIndex].value; - var newValue = this.m.min(this.dataList.items[itemIndex].value + this.dataList.items[itemIndex].increment, this.dataList.items[itemIndex].max); - - if (newValue != oldValue) - { - // value changed -> store it and update item - this.dataList.items[itemIndex].value = newValue; - this.updateItems(itemIndex, itemIndex); - } - else - { - // value is the same -> return null - newValue = null; - } - - return newValue; -}; - -/** - * Decrease the value by one step - * TAG: internal - * ========================= - * @param {integer} - index of the step item - * @return {integer|null} - the new value - */ -List2Ctrl.prototype._stepDown = function(itemIndex) -{ - if (!this._isStep(itemIndex)) - { - return; - } - - var oldValue = this.dataList.items[itemIndex].value; - var newValue = this.m.max(this.dataList.items[itemIndex].value - this.dataList.items[itemIndex].increment, this.dataList.items[itemIndex].min); - - if (newValue != oldValue) - { - // value changed -> store it and update item - this.dataList.items[itemIndex].value = newValue; - this.updateItems(itemIndex, itemIndex); - } - else - { - // value is the same -> return null - newValue = null; - } - - return newValue; -}; - - -/** - * ========================= - * LIST REORDERING - * ========================= - */ - -/** - * Enter into list reorder mode - * This method stores the original item style of the - * item that is being reordered and substitutes it with - * an internal 'draggable' item style. - * TAG: internal - * ========================= - * @param {Boolean} - * @return {void} - */ -List2Ctrl.prototype._enterListReorder = function(fromInit) -{ - // keep a copy of the item before converting it to a draggable item - - var focussedIndex; - if (fromInit) - { - focussedIndex = this.properties.focussedItem; - } - else - { - focussedIndex = this._getFocussedIndex(); - } - - // check for items in the dataList - if (!this.dataList || !this.dataList.items || !this.dataList.items[focussedIndex]) - { - return; - } - - // do not reorder disabled items - if (this.dataList.items[focussedIndex].disabled) - { - return; - } - - // enter into List Reordering mode - this._inListReorder = true; - - this.dataList.items[focussedIndex].itemBehavior = 'shortAndLong'; // make it accept long press (if not already) - this._reorderItem = this.dataList.items[focussedIndex]; - this._reorderItemIndex = focussedIndex; - this._reorderCurrentIndex = focussedIndex; - - // convert the item to a draggable item - var draggableItem = {}; - draggableItem.itemStyle = 'draggable'; - draggableItem.text1 = this._reorderItem.text1; - if(this._reorderItem.itemStyle === "style38") - { - draggableItem.label1 = (this._reorderItem.hasOwnProperty('label1')) ? this._reorderItem.label1 : ''; - draggableItem.label2 = (this._reorderItem.hasOwnProperty('label2')) ? this._reorderItem.label2 : ''; - } - draggableItem.image1 = (this._reorderItem.hasOwnProperty('image1')) ? this._reorderItem.image1 : ''; - draggableItem.button1 = this._getLocalizedString('common.Ok'); - draggableItem.hasCaret = false; - this.dataList.items[focussedIndex] = draggableItem; - this.updateItems(focussedIndex, focussedIndex); - -}; - -/** - * Leave list reorder mode - * The item that is being reordered is restored - * to it initial style. The select callback is - * then fired to notify the interested parties of - * the change and the new position of the item. - * TAG: internal - * ========================= - * @param {Boolean} - prevent item selection when releasing the reorder - * @return {void} - */ -List2Ctrl.prototype._releaseListReorder = function(preventSelect) -{ - // exit list reordering mode - this._inListReorder = false; - this._appIsAtSpeed = false; - - // get draggable item index - var draggableItems = this.getItemsByType('draggable'); - if (!draggableItems.length) - { - return; - } - - var draggableItemIndex = draggableItems[0]; - - // convert the draggable item back into the previous item type - this.dataList.items[draggableItemIndex] = this._reorderItem; - this.updateItems(draggableItemIndex, draggableItemIndex); - - // cast preventSelect as Boolean - var preventSelect = Boolean(preventSelect); - - // selection is allowed - if (!preventSelect) - { - // fire item select - var params = { - newIndex : draggableItemIndex, - oldIndex : this._reorderItemIndex - }; - this._itemSelect(draggableItemIndex, params); - } - - // release the copy of the reorder item - this._reorderItem = null; - this._reorderItemIndex = null; - this._reorderTouchElt = null; - -}; - - -/** - * Touch start reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._startReorder = function(e) -{ - // get target item index - var itemIndex = this._getTargetItem(e); - - // get draggable item index - if (itemIndex === this._reorderCurrentIndex) - { - this._startY = e.pageY - this._maskPositionY; - this._startX = e.pageX - this._maskPositionX; - - // do we have hit on the button? - var positiveButtonHit = this._buttonMakeHit(e); - - if (!positiveButtonHit) - { - this._itemMakeLongPress(e); - - // clone draggable item - var tmp = this._getDOMItem(itemIndex); - this._reorderTouchElt = tmp.cloneNode(true); - this.scroller.appendChild(this._reorderTouchElt); - - // convert the draggable item to a ghost item - var ghostItem = {itemStyle:'ghost', hasCaret:false}; - this.dataList.items[itemIndex] = ghostItem; - this.updateItems(itemIndex, itemIndex); - - this._hideFocus(); - - // raise _inDrag - this._inDrag = true; - } - else - { - // flag the behaviour as release intent - this._releaseReorderByTouch = true; - } - - // track event - this._trackEvent(e); - } -}; - -/** - * Touch move reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._moveReorder = function(e) -{ - if (this._reorderTouchElt) - { - // track event - this._trackEvent(e); - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = (e.pageY - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) - (this.properties.itemHeight / 2); - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the item - this._reorderTouchElt.style.top = newPos + 'px'; - - // get last move - var moveDirection = this._getMoveDirection(); - - // reset any scheduled scrolling if the user intends cacnelling the scroll - if (newPos <= (this._topItem * this.properties.itemHeight) + this.properties.itemHeight && - newPos > this._topItem * this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - } - else if (newPos >= (this._topItem + this.properties.visibleItems - 2) * this.properties.itemHeight && - newPos < (this._topItem + this.properties.visibleItems - 1) * this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - } - - // drag down - if (1 === moveDirection) - { - // have we passed the last item's top border? - if ( (this._topItem >= this.dataList.itemCount - this.properties.visibleItems) && (newPos >= ((this._topItem + this.properties.visibleItems) * this.properties.itemHeight) - this.properties.itemHeight) ) - { - this._reorderGhostItemDown(); - } - else if (newPos >= ((this._topItem + this.properties.visibleItems) * this.properties.itemHeight) - this.properties.itemHeight) - { - // do we have a scroll down scheduled? -> if not, schedule one - if (null === this._touchReorderTimeoutId) - { - this._touchReorderTimeoutId = setTimeout(this._scrollDownOne.bind(this), this.properties.listReorderScrollTimeout); - } - } - else if (newPos >= (this._reorderCurrentIndex * this.properties.itemHeight) + this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - this._reorderGhostItemDown(); - } - } - // drag up - else if (-1 === moveDirection) - { - // have we passed the top item's top border? - if (0 != this._topItem && newPos <= this._topItem * this.properties.itemHeight) - { - // do we have a scroll up scheduled? -> if not, schedule one - if (null === this._touchReorderTimeoutId) - { - this._touchReorderTimeoutId = setTimeout(this._scrollUpOne.bind(this), this.properties.listReorderScrollTimeout); - } - } - else if (newPos <= (this._reorderCurrentIndex * this.properties.itemHeight) - this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - this._reorderGhostItemUp(); - } - } - - } // endif (this._reorderTouchElt) -}; - -/** - * Touch end reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._endReorder = function(e) -{ - if (this._reorderTouchElt) - { - // get nearest snap position - var newSnappedIndex = Math.floor( ( (e.pageY - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) ) / this.properties.itemHeight ); - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = newSnappedIndex * this.properties.itemHeight; - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the scroller if in bounds - this._reorderTouchElt.style.top = newPos + 'px'; - - // convert the ghost item back to a draggable item - var draggableItem = {}; - draggableItem.itemStyle = 'draggable'; - draggableItem.text1 = this._reorderItem.text1; - draggableItem.image1 = (this._reorderItem.hasOwnProperty('image1')) ? this._reorderItem.image1 : ''; - if(this._reorderItem.itemStyle === "style38") - { - draggableItem.label1 = (this._reorderItem.hasOwnProperty('label1')) ? this._reorderItem.label1 : ''; - draggableItem.label2 = (this._reorderItem.hasOwnProperty('label2')) ? this._reorderItem.label2 : ''; - } - draggableItem.button1 = this._getLocalizedString('common.Ok'); - draggableItem.hasCaret = false; - this.dataList.items[this._reorderCurrentIndex] = draggableItem; - this.updateItems(this._reorderCurrentIndex, this._reorderCurrentIndex); - - // remove the cloned element - this._reorderTouchElt.parentElement.removeChild(this._reorderTouchElt); - } - - this._itemRemoveLongPress(); - this._reorderTouchElt = null; - - // reset flags - this._inHorizontalDrag = null; - this._hDragItem = null; - this._inDrag = false; - this._stopSelect = false; - - // restore focus - this._showFocus(this._reorderCurrentIndex); - - // clear any scroll timeout - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - - // are we about to release reorder - if (this._releaseReorderByTouch && this._isToggle(this._reorderCurrentIndex)) - { - // remove hit state of button and release list reorder - this._buttonRemoveHit(this._reorderCurrentIndex); - this._releaseListReorder(); - this._releaseReorderByTouch = false; - } - -}; - -/** - * After the list has scrolled due to touch reorder action, - * upon animation end, the touch reorder item is brought under the - * user's finger and if the possition requires it, a new scroll - * is scheduled. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._bringReorderItem = function() -{ - if (this._trackedEvents.length && this._reorderTouchElt) - { - // get last event - var lastEvent = this._trackedEvents[this._trackedEvents.length-1]; - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = (lastEvent.y - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) - (this.properties.itemHeight / 2); - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the item - this._reorderTouchElt.style.top = newPos + 'px'; - - // we are past the top item's top boundary - if (0 != this._topItem && newPos <= this._topItem * this.properties.itemHeight) - { - // update blank spot - this._reorderGhostItemUp(); - - // reschedule list scroll - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = setTimeout(this._scrollUpOne.bind(this), this.properties.listReorderScrollTimeout); - } - else if (0 == this._topItem) - { - // update blank spot - this._reorderGhostItemUp(); - } - else if (this._topItem != this.dataList.itemCount - this.properties.visibleItems && - newPos >= (this._topItem + this.properties.visibleItems - 1) * this.properties.itemHeight) - { - // update blank spot - this._reorderGhostItemDown(); - - // reschedule list scroll - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = setTimeout(this._scrollDownOne.bind(this), this.properties.listReorderScrollTimeout); - } - else if (this._topItem >= this.dataList.itemCount - this.properties.visibleItems) - { - // update blank spot - this._reorderGhostItemDown(); - } - - } -}; -/** - * Reorder the item to the index - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {void} - */ -List2Ctrl.prototype._reorderToIndex = function(itemIndex) -{ - if (!this._inListReorder || isNaN(itemIndex)) - { - log.error("list1 _reorderToIndex : Invalid arguments - inListReorder, itemIndex", this._inListReorder, itemIndex); - return; - } - - if (itemIndex != this._reorderItemIndex) - { - if (itemIndex < this._reorderItemIndex) - { - this._reorderItemUp(this._reorderItemIndex - itemIndex) - } - else - { - this._reorderItemDown(itemIndex - this._reorderItemIndex) - } - } -} - -/** - * Reorder the item down - * TAG: internal - * ========================= - * @param {integer} -number of items - * @return {void} - */ -List2Ctrl.prototype._reorderItemDown = function(reorderCount) -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - //prevent list scrolling while we're loading - if (this._inLoading) - { - return; - } - - if (!reorderCount) - { - reorderCount = 1; - } - - for (var count = 1; count <= reorderCount; count++) - { - // get draggable item index - var draggableItemIndex = this.getItemsByType('draggable')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.min(draggableItemIndex + 1, this.dataList.itemCount - 1); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[draggableItemIndex]; - this.dataList.items[draggableItemIndex] = tempCopy; - - // update display - this.updateItems(draggableItemIndex, targetItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - } - -}; -/** - * Reorder the item up - * TAG: internal - * ========================= - * @param {integer} -number of items - * @return {void} - */ -List2Ctrl.prototype._reorderItemUp = function(reorderCount) -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - //prevent list scrolling while we're loading - if (this._inLoading) - { - return; - } - - if (!reorderCount) - { - reorderCount = 1; - } - - for (var count = 1; count <= reorderCount; count++) - { - // get draggable item index - var draggableItemIndex = this.getItemsByType('draggable')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.max(draggableItemIndex - 1, 0); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[draggableItemIndex]; - this.dataList.items[draggableItemIndex] = tempCopy; - - // update display - this.updateItems(targetItemIndex, draggableItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - } - -}; - -/** - * Reorder ghost item one position down - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._reorderGhostItemDown = function() -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - // get draggable item index - var ghostItemIndex = this.getItemsByType('ghost')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.min(ghostItemIndex + 1, this.dataList.itemCount - 1); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[ghostItemIndex]; - this.dataList.items[ghostItemIndex] = tempCopy; - - // update display - this.updateItems(ghostItemIndex, targetItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - - this._hideFocus(); -}; - -/** - * Reorder ghost item one position up - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._reorderGhostItemUp = function() -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - // get draggable item index - var ghostItemIndex = this.getItemsByType('ghost')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.max(ghostItemIndex - 1, 0); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[ghostItemIndex]; - this.dataList.items[ghostItemIndex] = tempCopy; - - // update display - this.updateItems(targetItemIndex, ghostItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - - this._hideFocus(); -}; - - -/** - * ========================= - * LIST EVENTS API - * ========================= - */ - -/** - * List event - * TAG: internal - * ========================= - * @param {string} - Event name - * @param {*} - Event data - * @return {void} - */ -List2Ctrl.prototype._listEvent = function(type, data) -{ - var data = data || null; - switch (type) - { - case this._EVENTS.ITEM_SELECT : - this._dispatch(this._EVENTS.ITEM_SELECT, data); - break; - case this._EVENTS.LETTER_SELECT : - this._dispatch(this._EVENTS.LETTER_SELECT, data); - break; - case this._EVENTS.DATALIST_CHANGE : - this._dispatch(this._EVENTS.DATALIST_CHANGE, null); - break; - case this._EVENTS.SCROLL_START : - this._dispatch(this._EVENTS.SCROLL_START, data); - break; - case this._EVENTS.SCROLL_END : - this._dispatch(this._EVENTS.SCROLL_END, data); - break; - case this._EVENTS.CLEAN_UP : - this._dispatch(this._EVENTS.CLEAN_UP, data); - break; - default : - // nothing to do - break; - } -}; - -/** - * Get listeners array for an event - * TAG: internal - * ========================= - * @param {string} - Event name - * @return {array} - */ -List2Ctrl.prototype._getListeners = function(type, useCapture) -{ - var captype = (useCapture ? '1' : '0') + type; - if (!(captype in this._eventListeners)) - this._eventListeners[captype] = []; - return this._eventListeners[captype]; -}; - -/** - * Dispatch custom event - * TAG: internal - * ========================= - * @param {string} - Event name - * @return {void} - */ -List2Ctrl.prototype._dispatch = function(type, data) -{ - if (!type || '' == type) - return; - var evt = new CustomEvent( type, { detail : { data : data, bubbles: true, cancelable: true } } ); - this.dispatchEvent(evt); -}; - -/** - * Add event listener to custom list event - * TAG: public - * ========================= - * @param {string} - event name - * @param {function} - event listener - * @param {boolean} - use capture - * @return {void} - */ -List2Ctrl.prototype.addEventListener = function(type, listener, useCapture) -{ - var listeners = this._getListeners(type, useCapture); - var ix = listeners.indexOf(listener); - if (-1 === ix) - listeners.push(listener); -}; - -/** - * Remove event listener to custom list event - * TAG: public - * ========================= - * @param {string} - event name - * @param {function} - event listener - * @param {boolean} - use capture - * @return {void} - */ -List2Ctrl.prototype.removeEventListener = function(type, listener, useCapture) -{ - var listeners = this._getListeners(type, useCapture); - var ix = listeners.indexOf(listener); - if (-1 !== ix) - listeners.splice(ix, 1); -}; - -/** - * Displatch custom list event - * TAG: public - * ========================= - * @param {object} - event object - * @return {boolean} - */ -List2Ctrl.prototype.dispatchEvent = function(evt) -{ - var listeners = this._getListeners(evt.type, false).slice(); - for (var i= 0; i dataList.items.length) - { - for (var i=dataList.items.length; i= 0) - { - // force exit secondary multicontroller - this._inSecondaryMulticontroller = false; - - var additionalSpace = this._getAdditionalSpace(); - - this.scroller.style.height = this.dataList.itemCount * this.properties.itemHeight + additionalSpace + 'px'; - this._scrollerH = this.scroller.offsetHeight; - this._emptyScroller(); - this._scrollIndicatorReset(); - if(0 === this.dataList.itemCount) - { - this._scrollIndicatorBuild(false); - } - else - { - this._scrollIndicatorBuild(true); - } - - // set line numbers - this.setLineNumbers(); - } - -}; - -List2Ctrl.prototype.hasDataList = function() -{ - if (this.dataList == null) - { - return false; - } - - if (!this.dataList.hasOwnProperty('itemCountKnown') && !this.dataList.hasOwnProperty('itemCount') && !this.dataList.hasOwnProperty('items')) - { - return false; - } - - if (this.dataList.itemCountKnown && this.dataList.itemCount == 0) - { - return false; - } - - if (!this.dataList.itemCountKnown && this.dataList.itemCount <= 0) - { - return false; - } - - return true; -}; - -/** - * Update Items - * - * This is intended to be used whenever the bound data is changed programmatically by the app. In other words, - * it informs the control that bound data has changed … and if the range of changed items overlaps with items - * rendered into HTML objects, then the ListMenu must update those elements. There are several use cases for this: - * - * 1. For the case where the dataList is fetched asynchronously in the background after ListMenu is displayed, - * the updateItems() API will be called as new data arrives. I think this use case is described fairly completely - * in section 2.2.4 of the ListMenu SDD. Note that these updates may correspond to the user scrolling, or may simply - * occur in the background as the list is loaded into GUI while the user is still looking at the first N list items. - * Also note that the listCount can change and the ListMenu control must adapt appropriately, including handling - * reduction of the list count. - * - * 2. To allow the application to update menu text dynamically, e.g. to display the name of the connected USB - * Audio device instead of “USB”, or to change the displayed image(s). - * - * 3. To allow the application to enable/disable menu items or to set/clear the “selected” indicator. - * - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype.updateItems = function(firstItem, lastItem) -{ - log.debug("List2 updateItems() firstItem, lastItem",firstItem, lastItem); - // update _maxScrollY - this._maxScrollY = this.mask.offsetHeight - this.scroller.offsetHeight; - - var emptyDOMItem = null; - - // clear _needDataTimeoutId - clearTimeout(this._needDataTimeoutId); - this._needDataTimeoutId = null; - - this._prepareItems(firstItem, lastItem); - this._localizeItems(firstItem, lastItem); - - // trim dataList.items if it is larger than dataList.itemCount - if (this.dataList && - this.dataList.itemCountKnown && - this.dataList.items && - this.dataList.itemCount < this.dataList.items.length) - { - this.dataList.items = this.dataList.items.slice(0, this.dataList.itemCount); - console.assert(this.dataList.itemCount == this.dataList.items.length, 'dataList.itemCount is not equal to dataList.items.length'); - } - - // validate first item - if (this.dataList.itemCountKnown && firstItem < -1) - { - log.warn('List2: firstItem is less than -1: ' + firstItem + ' passed. Setting it to -1.'); - firstItem = -1; - } - - // validate last item - if (this.dataList.itemCountKnown && lastItem >= this.dataList.itemCount) - { - log.warn('List2: lastItem is more than or equals dataList.itemCount(' + (this.dataList.itemCount-1) + '): ' + lastItem + ' passed. Setting it to ' + (this.dataList.itemCount - 1) + '. ' + this.uiaId + ' check your variable validation!?'); - lastItem = this.dataList.itemCount - 1; - } - - - // check for invalid items (e.g. firstItem=0, lastItem=-1) -> set loading - if (firstItem > lastItem) - { - firstItem = lastItem = -1; - } - - if (firstItem == -1 && lastItem == -1) - { - // we have dataList but no list items => show loading - this._setLoading(true); - - } - else if (firstItem >= 0 && lastItem >= 0 && lastItem >= firstItem && !this._hasFill) - { - - - // we have dataList and we have list items but we do not have fill => do initial fill - var lastFillItem = this.m.min(lastItem, this.properties.itemsBefore + this.properties.itemsAfter); - - this._fill(firstItem, lastFillItem); - this._setLoading(false); - - // update modified timestamps - this._updateModifiedTimestamps(firstItem, lastItem); - - if (this.properties.focussedItem < this.dataList.itemCount) - { - this.properties.focussedItem = this._canGainFocus(this.properties.focussedItem); - } - else - { - this.properties.focussedItem = this.dataList.itemCount - 1; - this.properties.focussedItem = this._canGainFocus(this.properties.focussedItem); - } - /* - * Immediately scroll to a preset location and - * show focus on preset item if this is specified - * in the control's config. Focus placement needs to be done - * after the DOM is refreshed. This is done only the - * first time after a fresh setDataList() call. - * Focussed item has precedence over scroll location. - */ - if (null === this._initialScrollMode) - { - // first check if the focussed item and the scroll position are all on the same screen - // scroll to that position and show the focus according to the config - if ( (this.properties.focussedItem >= 0 || this.properties.scrollTo >= 0) && - (this.m.abs(this.properties.focussedItem - this.properties.scrollTo) <= (this.properties.visibleItems - 1)) ) - { - log.debug('Focus is visible on screen'); - this._scrollTo(this.properties.scrollTo, 0); - setTimeout(function() { - this._showFocus(this.properties.focussedItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - // set initial focus to a particular item if this is set in the config - // the list will be scrolled so that this item is visible - else if (this.properties.focussedItem >= 0) - { - log.debug('Focus is not visible and has priority'); - setTimeout(function() { - this._showFocus(this.properties.focussedItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - // scroll (no animation) to a particular item if this is set in the config - // the focus will be placed on the top item - else if (this.properties.scrollTo >= 0) - { - log.debug('Focus is 0 and scrollTo has priority'); - this._scrollTo(this.properties.scrollTo, 0); - setTimeout(function() { - this._topItem = this._canGainFocus(this._topItem); - this._showFocus(this._topItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - } - // sync the top item with focus if not in initial mode any more - // enter in this case usualy when a new data list is set - else - { - var focussedItem = this.focussedItem; - var topInFocusRange = focussedItem >= this.topItem && focussedItem < this.topItem + this.properties.visibleItems - 1; - var prevTopInFocusRange = focussedItem >= this._prevTopItem && focussedItem < this._prevTopItem + this.properties.visibleItems - 1; - if (!topInFocusRange && !prevTopInFocusRange) - { - this.topItem = focussedItem; - } - else if (!topInFocusRange && prevTopInFocusRange) - { - this.topItem = this._prevTopItem; - } - } - - // check for empty items in DOM - emptyDOMItem = this._getEmptyDOMElement(); - - } - else if (firstItem >= 0 && lastItem >= 0 && lastItem >= firstItem) - { - // preserve focussed element - var lastFocussedIndex = this._getFocussedIndex(); - - // we have dataList and we have list items, and we have fill => perform update - this._updateDisplay(firstItem, lastItem); - this._setLoading(false); - - // update modified timestamps - this._updateModifiedTimestamps(firstItem, lastItem); - - // restore focussed element - if (!this._inLetterIndexMulticontroller && !this._inSecondaryMulticontroller) - { - this._showFocus(lastFocussedIndex, true); - } - else if (this._inSecondaryMulticontroller) - { - // treat disabling the secondary multicontroller item as interrupt -> commit value and exit - var smi = this._currentSecondaryMulticontrollerItem; - if (this.dataList.items[smi] && this.dataList.items[smi].disabled) - { - this._setSecondaryMulticontroller(false, smi); - this._showFocus(smi, true); - } - else if (this.dataList.items[smi]) - { - this._setSecondaryMulticontroller(true, smi); - } - } - - // check for empty items in DOM - emptyDOMItem = this._getEmptyDOMElement(); - - } - else - { - log.error(this.uiaId + ' called List2 updateItems() with invalid arguments: firstItem = ' + firstItem + ', lastItem = ' + lastItem); - } - - // suppress secondary item request when the list is in reorder mode - if (this.properties.enableSecondaryItemRequest && !this._inListReorder) - { - // do we have empty DOM items? - if (null == emptyDOMItem) - { - // clear _secondaryRequestCount - this._secondaryRequestCount = 0; - } - else if (this._secondaryRequestCount <= this.properties.secondaryRequestLimit) - { - // fire needDataCallback() if an empty item is found in the DOM - this._requestMore(emptyDOMItem); - // increment _secondaryRequestCount - this._secondaryRequestCount++; - } - else - { - log.warn('Lis2: control has reached the secondary request count limit. Enabling the list'); - // we have reached secondaryRequestLimit -> set loading to False - this._setLoading(false); - } - } - - // restore the focus to the last focussed element - if (!this._inLetterIndexMulticontroller && !this._inSecondaryMulticontroller) - { - this._showFocus(this._lastItemWithFocus, true); - } - -}; - - -/** 2. LETTER INDEX API **/ - -/** - * Set letter index data on demand, filling letters in the letter index area - * and assigning jump indices to them, so that when touched or selected - * by multicontroller, the list jumps to the respective index. - * TAG: public - * ========================= - * @param {data} - letter index data object - * @return {boolean} - True if letter index binding operation is a success - */ -List2Ctrl.prototype.setLetterIndexData = function(data) -{ - // validate input - if (!(data instanceof Array)) - { - log.error('Lis2: letter index data should be a valid array'); - return false; - } - - // validate control support - if (!this.properties.hasLetterIndex) - { - log.error('Lis2: list2 does not support letter index'); - return false; - } - - // reset any previous letter index data - this.letterIndexData = []; - this.letterIndex.innerText = ''; - - var letterIndexItem; - var label; - for (var i=0, l=data.length; i= 0) - { - this._letterIndexDataSorted[this._letterIndexDataSorted.length] = { - publicIndex : this.letterIndexData.length-1, - itemIndex : data[i].itemIndex - }; - } - } - - // sort private and filtered letter index by the itemIndex in ASC order - this._letterIndexDataSorted.sort(function(a,b) { - var compRes = 0; - if (a.itemIndex < b.itemIndex) - compRes = -1; - else if (a.itemIndex > b.itemIndex) - compRes = 1; - else - compRes = 0; - return compRes; - }); - - // set letter index scroller height - var additionalSpace = Math.ceil(this.properties.letterIndexHeight / 2) - 5; // adjusting factor - this.letterIndex.style.height = i * this.properties.letterIndexHeight + additionalSpace + 'px'; - this._scrollerHIndex = this.letterIndex.offsetHeight; - - // update _maxScrollYIndex - this._maxScrollYIndex = this.letterIndexWrapper.offsetHeight - this.letterIndex.offsetHeight; - - // set initial active letter index if there are any available - if (this.hasDataList() && this._letterIndexDataSorted.length) - { - // get current focus index and first letter index - var focussedIndex = this._getFocussedIndex(); - var firstIndex = this._letterIndexDataSorted[0].itemIndex; - - if (firstIndex > 0 && focussedIndex < firstIndex) - { - this._setLetterIndexPosition(firstIndex); - } - else - { - this._setLetterIndexPosition(focussedIndex); - } - - } - else if (this._letterIndexDataSorted.length) - { - this._setLetterIndexPosition(this._letterIndexDataSorted[0].itemIndex); - } -}; - - -/** 3. VOICE API **/ - -/** - * Set left button configuration depending on current list configuration: - * title style, visible items, item count, item thickness - * TAG: public, VUI - * ========================= - * @return {void} - */ -List2Ctrl.prototype.setLineNumbers = function() -{ - // check if we need to show numbers - if (!this.properties.numberedList) - { - return; - } - - // check if we have some items to number - if (!this.dataList.hasOwnProperty('itemCount') || this.dataList.itemCount <= 0) - { - return; - } - - - var style = ''; - var maxItemCount = 0; - - // determine max item count and style - switch (this.properties.titleConfiguration) - { - case 'noTitle' : - maxItemCount = this.properties.thickItems ? 5 : 6; - style = this.properties.thickItems ? 'Style02' : 'Style04'; - break; - case 'tabsTitle' : - maxItemCount = this.properties.thickItems ? 4 : 5; - style = this.properties.thickItems ? 'Style01' : 'Style03'; - break; - case 'listTitle' : - switch (this._currentTitle.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - case 'style03a' : - maxItemCount = this.properties.thickItems ? 4 : 5; - style = this.properties.thickItems ? 'Style01' : 'Style03'; - break; - case 'style05' : - case 'style08' : - maxItemCount = 4; - style = this.properties.thickItems ? 'Style07' : 'Style06'; - break; - case 'style06' : - case 'style07' : - maxItemCount = 3; - style = this.properties.thickItems ? 'Style09' : 'Style08'; - break; - default : - log.warn('Lis2: unknown title style: ' + this._currentTitle.titleStyle); - return; - break; - } - break; - default : - log.warn('Lis2: unknown title configuration: ' + this.properties.titleConfiguration); - return; - break; - } - - // get actual item count - var itemCount = this.m.min(this.dataList.itemCount, maxItemCount); - - // check for common API - if (framework.common.setLineNumbers) - { - // call LeftBtnCtrl to show list numbers - return framework.common.setLineNumbers(itemCount, style); - } - -}; - -/** - * Performs select on the specified line number. When the select callback is fired, - * fromVui parameter is set to true. The function can return several possible - * statuses depending on the output of the operation. - * TAG: public, VUI - * ========================= - * @param {integer} - the line number that needs to be selected - * @return {string} - 'selected', 'outOfRange', 'disabled', 'sendAck', 'noList' - */ -List2Ctrl.prototype.selectLine = function(lineNumber) -{ - // get target item - var targetIndex = this._topItem + (lineNumber - 1); - - // decide what to return depending on what's visible - var status; - - // check if the list supports line numbers - if (!this.hasDataList()) - { - status = 'noList'; - log.debug('Lis2: selectLine() called with no list on the screen'); - } - else if (!this.dataList.vuiSupport) - { - status = 'noList'; - log.debug('Lis2: no VUI support for this list'); - } - else if (targetIndex > this.dataList.itemCount - 1 || targetIndex < 0) - { - status = 'outOfRange'; - log.debug('Lis2: line number out of range'); - } - else if (targetIndex < this._topItem || targetIndex > this._topItem + this.properties.visibleItems) - { - status = 'outOfRange'; - log.debug('Lis2: line number out of range'); - } - else if (!this.dataList.items[targetIndex].vuiSelectable) - { - status = 'notSelectable'; - log.debug('Lis2: list item is not VUI selectable'); - } - else if (this.dataList.items[targetIndex].disabled) - { - status = 'disabled'; - log.debug('Lis2: list item is disabled'); - this._itemSelect(targetIndex, {fromVui:true, vuiStatus:status}); - } - else - { - // default status is 'selected' -> if the item is not selectable, the callback will not be fired - var selectResult = this._itemSelect(targetIndex, {fromVui:true, vuiStatus:'selected'}); - if (true === selectResult) - { - // normal enabled status - status = 'selected'; - } - else if (false === selectResult) - { - // status if no select callback is attached - status = 'sendAck'; - } - else - { - // returned status from the select callback in the app - status = selectResult; - } - } - - return status; -}; - -/** - * Scrolls the list one page down. A page is the number of visible items on the screen. - * Depending on the output of the function, several return values are possible. - * TAG: public, VUI - * ========================= - * @return {string} - 'paged', 'atLimit', 'onePage' - */ -List2Ctrl.prototype.pageDown = function() -{ - var status = this._scrollDownPage(); - return status; -}; - -/** - * Scrolls the list one page up. A page is the number of visible items on the screen. - * Depending on the output of the function, several return values are possible. - * TAG: public, VUI - * ========================= - * @return {string} - 'paged', 'atLimit', 'onePage' - */ -List2Ctrl.prototype.pageUp = function() -{ - var status = this._scrollUpPage(); - return status; -}; - - -/** 4. SLIDER / TOGGLE API **/ - -/** - * Set slider to a specific value - * TAG: public - * ========================= - * @param {integer} - the index of the slider/pivot item - * @param {number} - the new value of the slider/pivot - * @return {void} - */ -List2Ctrl.prototype.setSliderValue = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isSlider(itemIndex)) - { - log.warn(this.uiaId + ': Lis2: only sliders/pivots can be used in the Slider API. Item style ' + item.itemStyle + ' passed'); - return; - } - - var slider = this._getSlider(itemIndex); - if (slider) - { - slider.setValue(value); - } - else - { - log.error(this.uiaId + ': Lis2: could not get slider instance for itemIndex ' + itemIndex); - } -}; - - -/** - * Set toggle to a specific value - * TAG: public - * ========================= - * @param {integer} - the index of the toggle item - * @param {number} - the new value of the toggle - * @return {void} - */ -List2Ctrl.prototype.setToggleValue = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.debug('Item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isToggle(itemIndex) && item.itemStyle != 'styleOnOff') - { - log.warn('Lis2: only toggle items can be used in the Toggle API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // normalize value - if (item.itemStyle == 'style10') - { - var value = this.m.max(this.m.min(value, 2), 1); - } - else if(item.itemStyle == 'style11') - { - var value = this.m.max(this.m.min(value, 3), 1); - } - else if(item.itemStyle == 'styleOnOff') - { - var value = this.m.max(this.m.min(value, 2), 1); - } - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'toggle')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - - -/** - * Set checked state for a checkbox item (style03 and style03a) - * TAG: public - * ========================= - * @param {integer} - the index of the checkbox item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype.setCheckBox = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'checkbox')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - - -/** - * Set checked state for a checkbox item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the checkbox item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setCheckBox = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // cast as boolean - var value = Boolean(value); - - // set value - item.checked = value; - - // update item - this.updateItems(itemIndex, itemIndex); -}; - - -/** - * Set checked state for a radio item (style03 and style03a) - * TAG: public - * ========================= - * @param {integer} - the index of the radio item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype.setRadio = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'radio')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - -/** - * Set checked state for a radio item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the radio item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setRadio = function(itemIndex, value) -{ - // cast as boolean - var value = Boolean(value); - - // remove checked state of all radio items - for (var i=0; i= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'tick')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - -/** - * Set checked state for a tick item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the tick item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setTick = function(itemIndex, value) -{ - // cast as boolean - var value = Boolean(value); - - // remove checked state of all radio items - for (var i=0; i start the range if not already started - if (currentRange.length == 0) - { - // set first index to the range start - currentRange[0] = i; - } - - // if this is the last iteration and we are still in an empty range -> close currentRange - if (i == l-1 && currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - else - { - // filled item encountered -> end the range if started - if (currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i-1; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - } - - return (ranges.length) ? ranges : null; -}; - -/** - * Get filled range - * traverse the dataList.items for filled items and returns - * an array of filled-item ranges - * TAG: public - * ========================= - * @return {array} - Array([firstFilled, lastFilled], [firstFilled, lastFilled]) - */ -List2Ctrl.prototype.getFilledRange = function() -{ - var ranges = []; - var currentRange = []; - - for (var i=0, l=this.dataList.items.length; i start the range if not already started - if (currentRange.length == 0) - { - // set first index to the range start - currentRange[0] = i; - } - - // if this is the last iteration and we are still in an filled range -> close currentRange - if (i == l-1 && currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - else - { - // empty item encountered -> end the range if started - if (currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i-1; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - } - - return (ranges.length) ? ranges : null; -}; - -/** - * Get current focus mode - * TAG: public - * ========================= - * @return {string} - 'mainList' | 'letterIndex' | 'noFocus' - */ -List2Ctrl.prototype.getFocusMode = function() -{ - var currentFocusMode = 'mainList'; - if (!this._hasFocus) - { - currentFocusMode = 'noFocus'; - } - else if (this._inLetterIndexMulticontroller) - { - currentFocusMode = 'letterIndex'; - } - - return currentFocusMode; -}; - - -/** 7. OTHER **/ - -/** - * Set loading state of the list - * TAG: public - * ========================= - * @param {boolean} - enable or disable loading state - * @return {void} - */ -List2Ctrl.prototype.setLoading = function(state) -{ - // cast as boolean - var state = Boolean(state); - this._setLoading(state); -}; - - -/** - * Public API that changes the loading configuration - * ========================= - * @param {Object} - object that will set loading item configuration - * @return {Object} - retuns the loading configuration object - */ -List2Ctrl.prototype.setLoadingConfig = function (config) -{ - for (var i in config) - { - this.properties.loadingConfig[i] = config[i]; - } - - if (null !== this.properties.loadingConfig.loadingTextId && undefined !== this.properties.loadingConfig.loadingTextId && "" !== this.properties.loadingConfig.loadingTextId) - { - this.properties.loadingConfig.loadingText = this._getLocalizedString(this.properties.loadingConfig.loadingTextId, this.properties.loadingConfig.loadingSubMap); - } - this.loading.querySelector(".loadingText").innerText = ""; - this.loading.querySelector(".loadingText").appendChild(document.createTextNode(this.properties.loadingConfig.loadingText)); - this.loading.querySelector(".loadingImage1").style.backgroundImage = 'url(' + this.properties.loadingConfig.loadingImage1 + ')'; - - return this.properties.loadingConfig; -}; - -/** - * Enter or release reorder mode - * TAG: public - * ========================= - * @param {boolean} - enter or release list reorder - * @param {boolean} - prevent item select on releasing reorder - * @return {void} - */ -List2Ctrl.prototype.setReorder = function(state, preventSelect) -{ - // cast as boolean - var state = Boolean(state); - var preventSelect = Boolean(preventSelect); - - if (state && !this._inListReorder) - { - // if user has lost the reorder item - if (null != this._reorderCurrentIndex && (this._reorderCurrentIndex < this._topItem || this._reorderCurrentIndex > this._topItem + this.properties.visibleItems-1)) - { - if (this.dataList.items[this._reorderCurrentIndex] && !this.dataList.items[this._reorderCurrentIndex].disabled) - { - // reorder item is outside screen. Bring it back in and show focus on it - this._showFocus(this._reorderCurrentIndex); - } - } - - // enter into reorder - this._enterListReorder(); - } - else if (!state && this._inListReorder) - { - // release reorder - this._releaseListReorder(preventSelect); - } -}; - -/** - * Enter or release reorder mode - * TAG: public - * ========================= - * @param {boolean} - enter or release list reorder - * @return {void} - */ -List2Ctrl.prototype.setReorderAtSpeed = function(AtSpeed) -{ - if(AtSpeed) - { - this._inListReorder = false; - this._appIsAtSpeed = AtSpeed ; - this.properties.listReorder = false; - } - else - { - this._inListReorder = true; - this._appIsAtSpeed = AtSpeed ; - this.properties.listReorder = true; - } -}; - -/** - * Set fixed title for the list - * TAG: public - * ========================= - * @param {object} - title properties - * @return {void} - */ -List2Ctrl.prototype.setTitle = function(titleStructure) -{ - - // validate titleStructure - if (!titleStructure || !titleStructure.hasOwnProperty('titleStyle')) - { - return; - } - - /* - * title structure: - * { - * titleStyle : 'style02', - * text1Id : null, - * text1SubMap : null, - * text1 : '', - * image1 : 'path/to/image.png' - * } - */ - - // prepare title - var titleStructure = titleStructure || {}; - titleStructure = this._prepareTitle(titleStructure); - - if (this._currentTitle) - { - // we already have a title -> update it - - // validate new title - switch (titleStructure.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - // thin - if ('style02' != this._currentTitle.titleStyle && - 'style02a' != this._currentTitle.titleStyle && - 'style03' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - - case 'style05' : - case 'style08' : - // medium - if ('style05' != this._currentTitle.titleStyle && - 'style08' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - - case 'style06' : - case 'style07' : - // thick - if ('style06' != this._currentTitle.titleStyle && - 'style07' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - } - } - - // empty title element - this.title.innerText = ''; - // remove old title style class - if (this._currentTitle) - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - this.title.classList.remove(this._currentTitle.titleStyle); - } - // add title style as a class - this.title.classList.add(titleStructure.titleStyle); - - // fill it - var line1, line2, image1; - - switch (titleStructure.titleStyle) - { - case 'style02' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style02a' : - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style03' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style05' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - line2.appendChild(document.createTextNode(titleStructure.text2)); - this.title.appendChild(line2); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - this.divElt.classList.add('listTitleMedium'); - - break; - - case 'style06' : - - if (titleStructure.image1 === 'canvas') - { - // preview image is a canvas - image1 = document.createElement('canvas'); - image1.className = 'image1'; - // store canvas for public API call - this.titleCanvas = image1; - this.title.appendChild(image1); - } - else - { - // preview image is an image - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - } - - this.divElt.classList.add('listTitleThick'); - - break; - - case 'style07' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - line2.appendChild(document.createTextNode(titleStructure.text2)); - this.title.appendChild(line2); - - this.divElt.classList.add('listTitleThick'); - - break; - - case 'style08' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleMedium'); - - break; - - default : - log.error('Lis2: unknown title style: ' + titleStructure.titleStyle); - } - - // save the title structure - this._currentTitle = titleStructure; - -}; - - -/** 8. CONTEXT CAPTURE AND RESTORE **/ - -/** - * Context capture - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ -List2Ctrl.prototype.getContextCapture = function() -{ - var obj = { - hasFocus : this._hasFocus, - topItem : this._topItem, - focussedItem : this._getFocussedIndex(), - itemCount : this.dataList ? this.dataList.itemCount : 0 - }; - - log.debug('Lis2: getContextCapture obj ', obj); - return obj; -}; - -/** - * Context restore - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ -List2Ctrl.prototype.restoreContext = function(restoreData) -{ - log.debug('Lis2: restoreContext restoreData ', restoreData); - // validate input - if (!restoreData.hasOwnProperty('topItem') || !restoreData.hasOwnProperty('focussedItem')) - { - log.info('No data to restore'); - return; - } - - - // restore hasFocus flag - if (restoreData.hasFocus) - { - this._hasFocus = true; - } - - if (this.hasDataList()) - { - // scroll to previous position and show previous focus - // no checks for value conflicts are necessary. These ought to be correct. - this._scrollTo(restoreData.topItem); - - // NOTE: actual focus placement happens in controllerActive event handling - - // mark the list as data-restored preventing any subsequent auto-scrolls - this._initialScrollMode = 'restore'; - - this._manageFocus(restoreData.focussedItem); - } - else - { - log.info('List has no dataList to restore'); - } - - // overwrite control properties - this.properties.scrollTo = restoreData.topItem; - this.properties.focussedItem = restoreData.focussedItem; - this._lastItemWithFocus = restoreData.focussedItem; -}; - - -/** 9. BACKGROUND API **/ - -/** - * Set a custom background on the list control - * TAG: public - * ========================= - * @return {void} - */ -List2Ctrl.prototype.setListBackground = function(img, position) -{ - this.clearListBackground(); - this.listBackground = document.createElement('div'); - this.listBackground.className = 'List2CtrlCustomBackground'; - this.listBackground.style.backgroundImage = 'url('+img+')'; - - // set background position - if (position && typeof position == 'object' && position['left'] != undefined && position['top'] != undefined) - { - var left = (!isNaN(position['left'])) ? position.left + 'px' : position.left.toString(); - var top = (!isNaN(position['top'])) ? position.top + 'px' : position.top.toString(); - this.listBackground.style.backgroundPosition = left + ' ' + top; - } - - this.divElt.appendChild(this.listBackground); -}; - -/** - * Clear any custom background image - * TAG: public - * ========================= - * @return {void} - */ -List2Ctrl.prototype.clearListBackground = function() -{ - if (this.listBackground) - { - this.listBackground.parentElement.removeChild(this.listBackground); - this.listBackground = null; - } -}; - - - -/** - * ========================= - * HELPERS AND UTILITIES - * ========================= - */ - - /** - * Create Tabs control - * ========================= - * @return The TabsCtrl instance. - */ -List2Ctrl.prototype._createTabsControl = function() -{ - log.debug(' Instantiating TabsCtrl'); - if (this.properties.tabsButtonConfig.tiltStartCallback) - { - log.warn("Lis2: the tabsButtonConfig.tiltStartCallback property was defined outside of the list control but should only be used by the list."); - } - this.properties.tabsButtonConfig.tiltStartCallback = this._tabsCtrlTiltStartCallback.bind(this); - return framework.instantiateControl(this.uiaId, this.divElt, "TabsCtrl", this.properties.tabsButtonConfig); -}; - -/** - * Clear the list contents when the user starts tilting to a new tab. - */ -List2Ctrl.prototype._tabsCtrlTiltStartCallback = function(controlRef, appData, params) -{ - if (this.title) - { - this.title.style.opacity = 0; - } - this.setDataList({}); - this._hideScrollIndicator(); -}; - - -/** - * Tracks touch position properties of the last two events. - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - MouseMove event - * @return {void} - */ -List2Ctrl.prototype._trackEvent = function(e) -{ - // use shallow copy - var trackedEvents = this._trackedEvents; - trackedEvents[0] = trackedEvents[1]; - trackedEvents[1] = { y: e.pageY, x: e.pageX }; -}; - -/** - * Get touch direction upon touch move - * TAG: touch-only, internal - * ========================= - * @return {integer} - 1 for 'down', -1 for 'uo' - */ -List2Ctrl.prototype._getMoveDirection = function() -{ - var trackedEvents = this._trackedEvents, - event0 = trackedEvents[0], - event1 = trackedEvents[1]; - - if (!event0) return 1; - - return (event1.y - event0.y < 0) ? -1 : 1; -}; - -/** - * Get current list position (or specific position relative to supplied item index) - * TAG: internal - * ========================= - * @param {integer} - optional, item index from which to calculate position - * @return {string} - onepage | top | bottom | bottomclose | topclose | middle - */ -List2Ctrl.prototype._getListPosition = function(itemIndex) -{ - // get item index - var itemIndex = (undefined === itemIndex) ? this._topItem : itemIndex; - - // get list position - var listPosition = null; - - // determine list position - if (this.dataList.itemCount <= this.properties.visibleItems) - listPosition = 'onepage'; - else if (0 === itemIndex) - listPosition = 'top'; // list is at the top - else if (itemIndex === this.dataList.itemCount - this.properties.visibleItems) - listPosition = 'bottom'; // list is at the bottom - else if (itemIndex > this.dataList.itemCount - (2 * this.properties.visibleItems)) - listPosition = 'bottomclose'; // list is less than a screen to the bottom - else if (itemIndex < 2 * this.properties.visibleItems) - listPosition = 'topclose'; // list is less than a screen to the top - else - listPosition = 'middle'; // list is somewhere in the middle - - // return list position - return listPosition; -}; - - -/** - * Get additional space that needs to be added to the scroller - * height in order to satisfy the 'half-line' requirements. - * Correction is needed because there's a difference between - * visual style guide and actual item heights. The values are - * fixed and depend on the style. - * TAG: helper - * ========================= - * @return {integer} - */ -List2Ctrl.prototype._getAdditionalSpace = function() -{ - // determine additional space - var additionalSpace = 0; - switch (this.properties.titleConfiguration) - { - case 'noTitle' : - additionalSpace = this.properties.thickItems ? 6 : 32; - break; - case 'tabsTitle' : - additionalSpace = this.properties.thickItems ? 19 : 27; - break; - case 'listTitle' : - switch (this._currentTitle.titleStyle) - { - case 'style02' : - case 'style03' : - additionalSpace = this.properties.thickItems ? 19 : 27; - break; - case 'style05' : - case 'style08' : - additionalSpace = this.properties.thickItems ? 52 : 42; - break; - case 'style06' : - case 'style07' : - additionalSpace = this.properties.thickItems ? 60 : 32; - break; - default : - // nothing to do - break; - } - break; - default : - // nothing to do - break; - } - - - - return additionalSpace; -}; - -/** - * Get empty DOM elements - * Return the first element in the DOM that doesn't - * have data associated with it in the dataList - */ -List2Ctrl.prototype._getEmptyDOMElement = function() -{ - var emptyItem = null; - var items = []; - - // get item indeces and sort them in ascending order - for (var i=0; i return -1 - if (relativeY < 0 || e.pageY - this._maskPositionY < 0) - { - return -1; - } - - var itemIndex = Math.floor(relativeY / this.properties.itemHeight); - - // if we are in the active area but below the last item -> return -1 - if (itemIndex > this.dataList.itemCount - 1) - { - return -1; - } - - // constrain itemIndex to the max possible index - itemIndex = this.m.min(itemIndex, this.dataList.itemCount - 1); - - return itemIndex; -}; - -/** - * Get DOM Element by itemIndex - * Returns a DOM element (or null) for a particular - * item after performing a search for its item index - * TAG: internal, helper - * ========================= - * @param {integer} - index of the list item - * @return {HTML Element} -
  • element - */ -List2Ctrl.prototype._getDOMItem = function(itemIndex) -{ - var domItem = null; - - for (var i=0, l=this.items.length; i return -1 - if (relativeY < 0 || e.pageY - this._maskPositionY < 0) - { - return -1; - } - - var letterIndex = Math.floor(relativeY / this.properties.letterIndexHeight); - - // if we are in the active area but below the last letter index item -> return -1 - if (letterIndex > this.letterIndexData.length - 1) - { - return -1; - } - - // constrain letterIndex to the max possible index - letterIndex = this.m.min(letterIndex, this.letterIndexData.length - 1); - - return letterIndex; -}; - -/** - * Get Slider instance by itemIndex - * TAG: internal, helper - * ========================= - * @param {integer} - index of the list item - * @return {SliderCtrl} - slider instance - */ -List2Ctrl.prototype._getSlider = function(itemIndex) -{ - var sliderCtrl = null; - - var index; - if (utility.toType(itemIndex) === 'number') - { - index = itemIndex; - } - else - { - index = this._getFocussedIndex(); - } - - var domElt = this._getDOMItem(index); - if (domElt) - { - var poolId = domElt.getAttribute('data-poolid'); - var hashKey = 'slider_'+index+'_'+poolId; - - // check whether a slider exists - if (this._sliders.hasOwnProperty(hashKey) && this._sliders[hashKey].slider) - { - sliderCtrl = this._sliders[hashKey].slider; - } - } - - return sliderCtrl; -}; - -/** - * Checks whether the supplied itemIndex contains a slider - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item contains a slider - */ -List2Ctrl.prototype._isSlider = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isSlider = false; - - if (!isNaN(itemIndex)) - { - isSlider = ('style12' === this.dataList.items[itemIndex].itemStyle || 'style13' === this.dataList.items[itemIndex].itemStyle || 'style28' == this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isSlider = ('style12' === itemIndex || 'style13' === itemIndex|| 'style28' === itemIndex); - } - - return isSlider; -}; - -/** - * Checks whether the supplied itemIndex is a lock item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a lock item - */ -List2Ctrl.prototype._isLock = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isLock = false; - - if (!isNaN(itemIndex)) - { - isLock = ('styleLock' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isLock = ('styleLock' === itemIndex); - } - - return isLock; -}; - -/** - * Checks whether the supplied itemIndex contains toggle buttons - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item contains toggle buttons - */ -List2Ctrl.prototype._isToggle = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isToggle = false; - - if (!isNaN(itemIndex)) - { - isToggle = ('style10' === this.dataList.items[itemIndex].itemStyle || 'style11' === this.dataList.items[itemIndex].itemStyle || 'draggable' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isToggle = ('style10' === itemIndex || 'style11' === itemIndex || 'draggable' === itemIndex); - } - - return isToggle; -}; - -/** - * Checks whether the supplied itemIndex is On/Off item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is On/Off - */ -List2Ctrl.prototype._isOnOff = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isOnOff = false; - - if (!isNaN(itemIndex)) - { - isOnOff = ('styleOnOff' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isOnOff = ('styleOnOff' === itemIndex); - } - - return isOnOff; -}; - -/** - * Checks whether the supplied itemIndex is a step item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a step item - */ -List2Ctrl.prototype._isStep = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isStep = false; - - if (!isNaN(itemIndex)) - { - isStep = ('styleStep' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isStep = ('styleStep' === itemIndex); - } - - return isStep; -}; - -/** - * Checks whether the supplied itemIndex is a checkbox - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a checkbox/tick/radio item - */ -List2Ctrl.prototype._isCheckBox = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isCheckbox = false; - - if (!isNaN(itemIndex)) - { - isCheckbox = ('style03' === this.dataList.items[itemIndex].itemStyle || 'style03a' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isCheckbox = ('style03' === itemIndex || 'style03a' === itemIndex); - } - - return isCheckbox; -}; - -/** - * Checks whether the supplied itemIndex is a simple select item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is simple select item - */ -List2Ctrl.prototype._isSimpleSelectItem = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isSimpleSelect = false; - - if (!isNaN(itemIndex)) - { - isSimpleSelect = ('style03' === this.dataList.items[itemIndex].itemStyle || 'style03a' === this.dataList.items[itemIndex].itemStyle || 'styleOnOff' === this.dataList.items[itemIndex].itemStyle || 'style10' === this.dataList.items[itemIndex].itemStyle || 'style11' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isSimpleSelect = ('styleOnOff' === itemIndex || 'style10' === itemIndex || 'style11' === itemIndex); - } - - return isSimpleSelect; -}; - -/** - * Checks whether the item contains _data property - * TAG: internal, helper - * ========================= - * @param {integer} - item index - * @return {Boolean} - True if the item contains _data property - */ -List2Ctrl.prototype._hasData = function(itemIndex) -{ - var containsData = false; - if (this.dataList && this.dataList.items && this.dataList.items[itemIndex]) - { - containsData = this.dataList.items[itemIndex].hasOwnProperty('_data'); - } - return containsData; -}; - -/** - * Wraps inline text element if the width exceeds certain - * max width that depends on the item style. - * TAG: internal, helper - * ========================= - * @param {HTML Li Element} - the LI element that will be searched for overflowing text - * @return {HTML Li Element} - the modified LI element - */ -List2Ctrl.prototype._wrapInlineElement = function(li) -{ - var searchClass = null; - var maxWidth = 0; - - if (li.classList.contains('style17')) - { - searchClass = 'line1'; - maxWidth = this.properties.wrapTextThreshold; - } - else - { - return li; - } - - var line1 = li.getElementsByClassName(searchClass); - if (!line1 || 0 === line1.length) - { - return li; - } - else - { - line1 = line1[0]; - } - - if (line1.clientWidth > maxWidth) - { - line1.classList.add("wrap"); - } - else - { - line1.classList.remove("wrap"); - } - - return li; -}; - -/** - * Checks if the item can be displayed, even if it has no text field. - * TAG: internal, helper - * ===================================================== - * @param {Object} - * @return {Boolean} - */ -List2Ctrl.prototype._displayWithoutText = function(item) -{ - var returnValue = true; - for(var i =0; i < this._itemsWithNoText.length; i++) - { - if(item.itemStyle === this._itemsWithNoText[i]) - { - returnValue = false; - break; - } - } - return returnValue; -}; - -/** - * Checks if the item is a slider with full hittable area - * TAG: internal, helper - * =================================================== - * @param {Object} - * @return {Boolean} - */ -List2Ctrl.prototype._hasRightHittableArea = function(item) -{ - var returnValue = false; - - for(var i =0; i < this._rightHittableArea.length; i++) - { - if(item.itemStyle === this._rightHittableArea[i]) - { - returnValue = true; - break; - } - } - return returnValue; -}; - - -/** - * Show bounding boxes of some elements in the list. - * This should be used for debugging purposes only - * TAG: internal, utility - * ========================= - * @param {Boolean} - * @return {void} - */ -List2Ctrl.prototype.showBoundingBoxes = function(state) -{ - if (state) - { - this.divElt.classList.add('showBoundingBoxes'); - } - else - { - this.divElt.classList.remove('showBoundingBoxes'); - } -}; - - -/** - * Searches an array for a value - * TAG: internal, utility - * ========================= - * @param {string|number} - * @param {array} - * @return {object} - copy of the source object - */ -List2Ctrl.prototype.inArray = function(needle, haystack) -{ - if (!needle || !haystack) - { - log.warn('Lis2: 2 arguments expected'); - return; - } - - for (var i=0, l=haystack.length; i b ? a : b // return the higher - : NaN; // else return NaN (just like the Math class) - }, - abs : function(a) - { - return (!isNaN(a)) ? // if the argument is a number - a < 0 ? -a : a // return the abs - : NaN; // else return NaN (just like the Math class) - } -}; - -/** - * Finish partial activity. - * @return {void} - */ -List2Ctrl.prototype.finishPartialActivity = function() -{ - // route finish partial activity to sub controls - - // tabs ctrl - if (this.tabsCtrl) - { - // delete the assigned callback reference so that it's not stored in the App's context table - delete this.properties.tabsButtonConfig.tiltStartCallback; - this.tabsCtrl.finishPartialActivity(); - } - - // slider - if (this._activeSlider && this._activeSlider.slider) - { - this._activeSlider.slider.finishPartialActivity(); - } - - // list -> exit any items in secondary MC mode - if (this._inSecondaryMulticontroller) - { - var smi = this._currentSecondaryMulticontrollerItem; - if (this.dataList.items[smi] && this._isStep(smi)) - { - this._setSecondaryMulticontroller(false); - this._triggerFocus(); - } - } -}; - -List2Ctrl.prototype.getStationAndRelay = function(stationName,RelayName) -{ - var stationRelay = ""; - if(stationName && RelayName) - { - stationRelay = stationName+" ("+RelayName+")"; - } - else if(stationName && ((RelayName=="")||(RelayName==null))) - { - stationRelay = stationName; - } - else{ - log.debug("Station name and relay not defined"); - } - - return stationRelay; -}; - - -/** - * ========================= - * GARBAGE COLLECTION - * - Clear listeners - * - Clean up subcontrols - * - Clear timeouts - * TAG: framework - * ========================= - * @return {void} - */ -List2Ctrl.prototype.cleanUp = function() -{ - // remove event callbacks - this.divElt.removeEventListener(this._USER_EVENT_START, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - - // remove animation callbacks - this.scroller.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - if (this.scrollIndicator) - { - this.scrollIndicator.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - } - if (this.letterIndex) - { - this.letterIndex.removeEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - } - - // clean up subcontrols - if (this.tabsCtrl) - { - this.tabsCtrl.cleanUp(); - } - for (var i in this._sliders) - { - this._sliders[i]['slider'].cleanUp(); - } - - // clear timeouts - clearTimeout(this._makeHitTimeoutId); - clearTimeout(this._longPressTimeoutId); - clearTimeout(this._touchReorderTimeoutId); - clearTimeout(this._scrollIndicatorTimeoutId); - clearTimeout(this._indexSelectTimeoutId); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - clearTimeout(this._needDataTimeoutId); - clearTimeout(this._loadingData.startTimeoutId); - clearTimeout(this._loadingData.endTimeoutId); - clearTimeout(this._radioSettleTimeoutId); - clearTimeout(this._tickSettleTimeoutId); - if (this.hasDataList()) - { - for (var i=0, l=this.dataList.items.length; i 0 || this.properties.scrollTo > 0) && - (this.m.abs(this.properties.focussedItem - this.properties.scrollTo) <= (this.properties.visibleItems - 2)) ) - { - log.debug('Lis2: Focus is visible on screen'); - this._scrollTo(this.properties.scrollTo, 0); - this._showFocus(this.properties.focussedItem); - this._initialScrollMode = 'init'; - } - // set initial focus to a particular item if the list is populated - // the list will be scrolled so that this item is visible - else if (this.properties.focussedItem > 0) - { - log.debug('Lis2: Focus is not visible and has priority'); - this._showFocus(this.properties.focussedItem); - this._initialScrollMode = 'init'; - } - // scroll (no animation) to a particular item if the list is populated - // the focus will be placed on the top item - else if (this.properties.scrollTo > 0) - { - log.debug('Lis2: Focus is 0 and scrollTo has priority'); - this._scrollTo(this.properties.scrollTo, 0); - this._showFocus(this._topItem); - this._initialScrollMode = 'init'; - } - - // enter list reorder if the list is reordable - if (true === this.properties.listReorder) - { - this._enterListReorder(true); - } - - } - } - else - { - this._setLoading(true); - } - - - /* SET LETTER INDEX DATA */ - if (this.properties.hasLetterIndex && this.properties.letterIndexData) - { - // bind letter index data - this.setLetterIndexData(this.properties.letterIndexData); - } - - /* SET CUSTOM LIST BACKGROUND */ - if (null != this.properties.listBackground && '' != this.properties.listBackground) - { - this.setListBackground(this.properties.listBackground); - } - -}; - - -/** - * ========================= - * LIST ITEMS - * 1. pool (_createPool) - * 2. default items configuration (_prepareItems, _prepareListItem) for every item style - * 3. items localization (_localizeItems, _getLocalizedString) - * 4. pool operations (_setText, _setImage, _getListItem, _returnListItem, _putToScroller, _emptyScroller) - * 5. dynamic list items (_updateRange, _updateDisplay, _requestMore, _fill) - * 6. set internal properties (_checkScrollable, _setTopListItem, _setLoading) - * 7. default title configuration (_prepareTitle) - * ========================= - */ - -/** 1. POOL **/ - -/** - * Create list items pool - * Add HTML elements to each item in the pool - * depending on its style - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._createPool = function() -{ - this.pool = { - empty : new Array(), // 'empty' is internal style - draggable : new Array(), // 'draggable' is internal style - ghost : new Array(), // 'ghost' is internal style - - style01 : new Array(), - style02 : new Array(), - style03 : new Array(), - style03a : new Array(), - style04 : new Array(), - style05 : new Array(), - style06 : new Array(), - style07 : new Array(), - style09 : new Array(), - style10 : new Array(), - style11 : new Array(), - style12 : new Array(), - style13 : new Array(), // deprecated - style14 : new Array(), - style17 : new Array(), - style18 : new Array(), - style19 : new Array(), - style20 : new Array(), - style21 : new Array(), - style22 : new Array(), - // TODO: style23 - same as style12 - // TODO: style24 - same as style12 - style25 : new Array(), - styleOnOff : new Array(), // not official name - styleStep : new Array(), // TODO: rename this to style26 - styleLock : new Array(), // not official name - style28 : new Array(), - - }; - - // the pool size (this.properties.poolsize) should be at least 3 times - // the visible items (one for above and two for below the top item) - var line1, line2, - image1, image2, - label1, label2, - button1, button2, button3, - caret; - - for (var i in this.pool) - { - for (var j=0; j no content - break; - - case 'draggable' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - button1 = document.createElement('span'); - button1.className = 'button buttonOk'; - li.appendChild(button1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'ghost' : - // ghost item -> no contet - break; - - case 'style01' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style02' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style03' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style03a' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style04' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style05' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style06' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style07' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style09' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style10' : - var buttonsWrapper = document.createElement('div'); - buttonsWrapper.className = 'buttonsWrapper'; - li.appendChild(buttonsWrapper); - - button1 = document.createElement('span'); - button1.className = 'button button1'; - buttonsWrapper.appendChild(button1); - - button2 = document.createElement('span'); - button2.className = 'button button2'; - buttonsWrapper.appendChild(button2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - break; - - case 'style11' : - var buttonsWrapper = document.createElement('div'); - buttonsWrapper.className = 'buttonsWrapper'; - li.appendChild(buttonsWrapper); - - button1 = document.createElement('span'); - button1.className = 'button button1'; - buttonsWrapper.appendChild(button1); - - button2 = document.createElement('span'); - button2.className = 'button button2'; - buttonsWrapper.appendChild(button2); - - button3 = document.createElement('span'); - button3.className = 'button button3'; - buttonsWrapper.appendChild(button3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style12' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - break; - - case 'style13' : - // style13 is deprecated - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - break; - - case 'style14' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - label1 = document.createElement('span'); - label1.className = 'label1'; - subcontainer.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - break; - - case 'style17' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - // label is inside line1 element to allow natural text flow - label1 = document.createElement('span'); - label1.className = 'label1'; - line1.appendChild(label1); - - break; - - case 'style18' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - label1 = document.createElement('span'); - label1.className = 'label1'; - subcontainer.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - break; - - case 'style19' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - - line1 = document.createElement('span'); - line1.className = 'line1'; - subcontainer.appendChild(line1); - - break; - - case 'style20' : - button1 = document.createElement('span'); - button1.className = 'button1'; - li.appendChild(button1); - - break; - - case 'style21' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'style22' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'style25' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - - case 'styleOnOff' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2'; - li.appendChild(image2); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - break; - - case 'styleStep' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - label1 = document.createElement('span'); - label1.className = 'label1'; - li.appendChild(label1); - - label2 = document.createElement('span'); - label2.className = 'label2'; - li.appendChild(label2); - - var plusSign = document.createElement('span'); - plusSign.className = 'plus'; - li.appendChild(plusSign); - - var minusSign = document.createElement('span'); - minusSign.className = 'minus'; - li.appendChild(minusSign); - - break; - - case 'styleLock' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - image2 = document.createElement('span'); - image2.className = 'image2 buttonLock'; - li.appendChild(image2); - - image3 = document.createElement('span'); - image3.className = 'image3 buttonDelete'; - li.appendChild(image3); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - li.appendChild(line2); - - break; - case 'style28' : - image1 = document.createElement('span'); - image1.className = 'image1'; - li.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - li.appendChild(line1); - - var subcontainer = document.createElement('div'); - subcontainer.className = 'subcontainer'; - li.appendChild(subcontainer); - break; - - default : - log.error('List2: unknown list item style in pool: ' + i); - break; - - } - - // add common elements - caret = document.createElement('span'); - caret.className = 'caret'; - li.appendChild(caret); - - - this.pool[i].push(li); - } - } - -}; - -/** 2. DEFAULT ITEMS CONFIGURATION **/ - -/** - * Prepare items - * Extend the whole dataList so that every item - * meet the required structure. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._prepareItems = function(firstItem, lastItem) -{ - if ((firstItem == null) || (firstItem < 0)) - { - firstItem = 0; - } - - if ((lastItem == null) || (lastItem >= this.dataList.items.length)) - { - lastItem = this.dataList.items.length - 1; - } - - for (var i=firstItem, l=lastItem; i<=l; i++) - { - this.dataList.items[i] = this._prepareListItem(this.dataList.items[i]); - } - -}; - -/** - * Prepare list item - * A list item can be defined with minimal set of properties - * that are needed for its proper display. In fact these - * properties extend the default list item structure defined below. - * This function sets default configuration for a valid list item and merge - * it with the custom configuration passed to the item. - * TAG: internal - * ========================= - * @param {object} - the list item that will be set a default set of properties and will be returned - * @return {object} - the complete list item - */ -List2Ctrl.prototype._prepareListItem = function(item) -{ - // The itemStyle property is required - if (!item.hasOwnProperty('itemStyle')) - { - log.error('List2: list item should have itemStyle property: ' + item); - return; - } - - /* - * All types of list items extend this - * default structure by overriding the - * values and adding specific ones. The - * extended structure is then returned to be - * fed in the dataList container. - */ - var completeItem = { - appData : null, // Any kind of data that will be passed in the callbacks - text1Id : null, // String ID of the label - text1SubMap : null, // String Sub Map of the label - text1 : '', // Textual content of the label - hasCaret : true, // Show the caret icon on the right of the item - disabled : false, // Whether the list item is disabled - styleMod : '', // Style modifier, 'hint', 'bold', or ''/omitted - disabledStyleMod: "normal", // Disabled style modifier, 'normal' or 'white' - background : 'normal', // Background modifier, 'normal' or 'grey' - itemStyle : '', // String indicating the list type - itemBehavior : 'shortPressOnly', // String "hold" behavior for the item ('shortPressOnly', 'shortAndHold', or 'shortAndLong') - vuiSelectable: true, // Boolean for some items that cannot be selected by vui even when they are enabled - _data : { // Object containing any item-specific data used ONLY by the control - eventTimeout : null, - lastEvent : null, - settleTimeout : null, - lastUpdated : null, - settleValue : null, - } - }; - - // extend the default structure with default specific properties - var specificItem = {}; - switch (item.itemStyle) - { - case 'empty' : - specificItem = { hasCaret : false }; - break; - case 'draggable' : - specificItem = { image1:'', button1Id:null, button1SubMap:null, button1:'' }; - break; - case 'ghost' : - specificItem = {}; - break; - case 'style01' : - specificItem = { image1:'', indented:false }; - break; - case 'style02' : - specificItem = { image1:'', image2:'' }; - break; - case 'style03' : - specificItem = { image1:'', image2:'', image3:'', checked:false, indented:false }; - break; - case 'style03a' : - specificItem = { image1: '', label1Id: null, label1SubMap: null, label1: '', checked: false, labelWidth: 'wide2', label1Align:'right', styleMod: "hint"}; - break; - case 'style04' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style05' : - specificItem = { image1:'', image2:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style06' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', labelWidth:'normal', label1Align:'right', label1Warning:false }; - break; - case 'style07' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'', labelWidth:'normal', label1Align:'right', label1Warning:false, label2Align:'right', label2Warning:false }; - break; - case 'style09' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'', labelWidth:'normal', label1Align:'right', label1Warning:false, label2Align:'right', label2Warning:false }; - break; - case 'style10' : - specificItem = { button1Id:null, button1SubMap:null, button1:'', button2Id:null, button2SubMap:null, button2:'', value:1, indeterminate:false, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'style11' : - specificItem = { button1Id:null, button1SubMap:null, button1:'', button2Id:null, button2SubMap:null, button2:'', button3Id:null, button3SubMap:null, button3:'', value:1, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'style12' : - specificItem = { image1:'', min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:false, minChangeInterval:this.properties.minChangeInterval, settleTime:this.properties.settleTime, rotationIdleDetectTime:this.properties.rotationIdleDetectTime }; - break; - case 'style13' : - // deprecated - issue a warning - log.warn(this.uiaId + ': List2 style13 has been deprecated. Please use style12 instead. Setting pivot=True. Check SDD for details.'); - specificItem = { min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:true }; - break; - case 'style14' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', text1Align:'left' }; - break; - case 'style17' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'' }; - break; - case 'style18' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2SubMap:null, label2:'' }; - break; - case 'style19' : - specificItem = { image1:'' }; - break; - case 'style20' : - // nothing specific for this style - break; - case 'style21' : - specificItem = { image1:'', image2:'', label1Id:null, label1SubMap:null, label1:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'style22' : - specificItem = { image1:'', image2:'', label1Id:null, label1SubMap:null, label1:'', indented:false }; - case 'style25' : - specificItem = { image1:'', image2:'', image3:'', text2Id:null, text2SubMap:null, text2:'' }; - break; - case 'styleOnOff' : - specificItem = { image1:'', value:2, minChangeInterval : this.properties.toggleMinChangeInterval, settleTime : this.properties.toggleSettleTime }; - break; - case 'styleStep' : - specificItem = { image1:'', label1Id:null, label1SubMap:null, label1:'', label2Id:null, label2:'', min:0, max:36, increment:1, value:0, warning:false }; - break; - case 'styleLock' : - specificItem = { image1:'', text2Id:null, text2SubMap:null, text2:'', locked:false }; - break; - case 'style28' : - specificItem = { image1:'', min:0, max:1, increment:0.1, value:1, allowAdjust:true, showTickMarks:false, tickMarkObject:null, showLabels:false, labelObject:null, showPlusMinus:false, pivot:false, minChangeInterval:this.properties.minChangeInterval, settleTime:this.properties.settleTime, rotationIdleDetectTime:this.properties.rotationIdleDetectTime, indented : false }; - break; - default : - log.error('List2: unknown item style: ' + item.itemStyle); - break; - } - - // Extend default structure with the specific one - for (var i in specificItem) - { - completeItem[i] = specificItem[i]; - } - - // Extend default structure with the supplied item - for (var j in item) - { - completeItem[j] = item[j]; - } - - return completeItem; -}; - - -List2Ctrl.prototype._updateModifiedTimestamps = function(firstItem, lastItem) -{ - // update lastModified timestamp - var now = new Date().getTime(); - for (var i=firstItem; i<=lastItem; i++) - { - if (this._hasData(i)) - { - this.dataList.items[i]._data.lastUpdated = now; - } - } -}; - - -/** 3. ITEMS LOCALIZATION **/ - -/** - * Localize items - * Localize text in known list items using localization framework. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._localizeItems = function(firstItem, lastItem) -{ - log.debug('Localizing...'); - - if ((firstItem == null) || (firstItem < 0)) - { - firstItem = 0; - } - - if ((lastItem == null) ||(lastItem >= this.dataList.items.length)) - { - lastItem = this.dataList.items.length - 1; - } - - // iterate through the dataList - for (var i=firstItem, l=lastItem; i<=l; i++) - { - switch (this.dataList.items[i].itemStyle) - { - // no elements - case 'empty' : - // do nothing - break; - - // text1, button1 - case 'draggable' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - break; - - // no elements - case 'ghost' : - // do nothing - break; - - // text1 - case 'style01' : - case 'style02' : - case 'style03' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - case 'style03a' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, text2 - case 'style04' : - case 'style05' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - // text1, label1 - case 'style06' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1, label2 - case 'style07' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1, text2, label1, label2 - case 'style09' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1, button1, button2 - case 'style10' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - if (this.dataList.items[i].button2Id) - { - var button2 = this._getLocalizedString(this.dataList.items[i].button2Id, this.dataList.items[i].button2SubMap); - this.dataList.items[i].button2 = button2; - } - break; - - // text1, button1, button2, button3 - case 'style11' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].button1Id) - { - var button1 = this._getLocalizedString(this.dataList.items[i].button1Id, this.dataList.items[i].button1SubMap); - this.dataList.items[i].button1 = button1; - } - if (this.dataList.items[i].button2Id) - { - var button2 = this._getLocalizedString(this.dataList.items[i].button2Id, this.dataList.items[i].button2SubMap); - this.dataList.items[i].button2 = button2; - } - if (this.dataList.items[i].button3Id) - { - var button3 = this._getLocalizedString(this.dataList.items[i].button3Id, this.dataList.items[i].button3SubMap); - this.dataList.items[i].button3 = button3; - } - break; - - // text1, labelLeft, labelRight - case 'style12' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, labelLeft, labelCenter, labelRight - case 'style13' : - // style13 is deprecated - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, label1 - case 'style14' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1 - case 'style17' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1, label2 - case 'style18' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, this.dataList.items[i].label2SubMap); - this.dataList.items[i].label2 = label2; - } - break; - - // text1 - case 'style19' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1 - case 'style20' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, text2, label1 - case 'style21' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, label1 - case 'style22' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - break; - - // text1, text2 - case 'style25' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - // text1 - case 'styleOnOff' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - break; - - // text1, label1, label2 - case 'styleStep' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].label1Id) - { - var label1 = this._getLocalizedString(this.dataList.items[i].label1Id, this.dataList.items[i].label1SubMap); - this.dataList.items[i].label1 = label1; - } - if (this.dataList.items[i].label2Id) - { - var label2 = this._getLocalizedString(this.dataList.items[i].label2Id, {value:this.dataList.items[i].value}); - this.dataList.items[i].label2 = label2; - } - else - { - log.warn(this.uiaId + ' possible issue. Lis2: item ' + i + ' does not specify label2Id'); - } - break; - - // text1, text2 - case 'styleLock' : - if (this.dataList.items[i].text1Id) - { - var text1 = this._getLocalizedString(this.dataList.items[i].text1Id, this.dataList.items[i].text1SubMap); - this.dataList.items[i].text1 = text1; - } - if (this.dataList.items[i].text2Id) - { - var text2 = this._getLocalizedString(this.dataList.items[i].text2Id, this.dataList.items[i].text2SubMap); - this.dataList.items[i].text2 = text2; - } - break; - - } - - } -}; - -/** - * Get localization entry for a string id - * TAG: internal - * ========================= - * @return {string} - */ -List2Ctrl.prototype._getLocalizedString = function(labelId, subMap) -{ - return framework.localize.getLocStr(this.uiaId, labelId, subMap); -}; - -/** 4. POOL OPERATIONS **/ - -/** - * Set line 1 content - * This helper function clears any previous content for the supplied - * element class and sets new one. Then the list item is returned. - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {string} - textual content to be inserted - * @param {boolean} - do not remove child html tags when inserting textual content - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setText = function(li, className, content, preserveHTML) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - if (!content) - { - content = ''; - } - li.querySelector(className).innerText = ''; - li.querySelector(className).appendChild(document.createTextNode(content)); - return li; -}; - -/** - * Set image background - * This helper function clears any previous path for the supplied - * image class and sets new one. Then the list item is returned. - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {string} - path to the image - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setImage = function(li, className, url) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - li.querySelector(className).style.backgroundImage = ''; - if ('' != url) - { - li.querySelector(className).style.backgroundImage = 'url(' + url + ')'; - } - return li; -}; - -/** - * Set slider - * This helper function clears any previous slider in the list item - * and cleans up local references. It then creates a new slider control - * inside the list item and sets its values - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {object} - slider configuration - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setSlider = function(li, className, sliderProperties, itemIndex) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - - // get current item poolid - var poolId = li.getAttribute('data-poolid'); - - // get previous itemIndex for this particular li - var prevItemIndex = li.getAttribute('data-ref'); - - // destruct any previous sliders for this poolid and previous index - if (prevItemIndex != 'undefined') - { - var hashKey = 'slider_'+prevItemIndex+'_'+poolId; - - // remove slider from the hash and the DOM - if (this._sliders.hasOwnProperty(hashKey)) - { - this._sliders[hashKey]['slider'].cleanUp(); - this._sliders[hashKey]['slider'].divElt.parentElement.removeChild(this._sliders[hashKey]['slider'].divElt); - } - } - - // add slider to the hash and the DOM - var sliderCont = li.querySelector(className); - if (sliderProperties && sliderCont) - { - var hashKey = 'slider_'+itemIndex+'_'+poolId; - - // instantiate slider and add it to the _sliders hash - this._sliders[hashKey] = {}; - this._sliders[hashKey]['itemIndex'] = itemIndex; - this._sliders[hashKey]['poolId'] = poolId; - this._sliders[hashKey]['slider'] = framework.instantiateControl(this.uiaId, sliderCont, 'SliderCtrl', sliderProperties); - } - return li; -}; - -/** - * Set toggle - * This helper function clears any previous toggled buttons in - * the supplied list item and sets initial toggle value - * TAG: internal - * ========================= - * @param {HTML element} -
  • element as taken from the pool - * @param {string} - className of the taget element - * @param {object} - slider configuration - * @return {HTML element} -
  • element with the new content - */ -List2Ctrl.prototype._setToggle = function(li, className, value) -{ - if (!li) - { - log.error('Lis2: HTML LI element should be passed'); - return; - } - if (!className) - { - log.error('Lis2: className should be passed'); - return; - } - var buttons = li.querySelectorAll(className); - for (var i=0; i element wit proper elements inside - */ -List2Ctrl.prototype._getListItem = function(listItem, dataListIndex) -{ - - // get it from the pool - var li = this.pool[listItem.itemStyle].shift(); - - // remove any residual touch classes - li.classList.remove('hit'); - li.classList.remove('focus'); - li.classList.remove('longpress'); - li.classList.remove('secondaryFocus'); - - // add content to it following style definitions - switch (listItem.itemStyle) - { - case 'empty' : - // empty item -> no content - break; - - case 'draggable' : - // listItem : { text1:String, image1:String, button1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - this._setText(li, '.buttonOk', listItem.button1); - break; - - case 'ghost' : - // list item : {} - break; - - case 'style01' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style02' : - // listItem : { text1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - if (listItem.image2 === 'indeterminate') - { - li.classList.add('indeterminate'); - } - else - { - li.classList.remove('indeterminate'); - this._setImage(li, '.image2', listItem.image2); - } - break; - - case 'style03' : - // listItem : { text1:String, image1:String, image2:String, checked:Boolean } - this._setText(li, '.line1', listItem.text1); - if (listItem.image1 === 'checkbox') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('checkbox'); - } - else if (listItem.image1 === 'radio') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('radio'); - } - else if (listItem.image1 === 'tick') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('tick'); - } - else - { - li.classList.remove('checkbox'); - li.classList.remove('radio'); - li.classList.remove('tick'); - this._setImage(li, '.image1', listItem.image1); - } - this._setImage(li, '.image2', listItem.image2); - this._setImage(li, '.image3', listItem.image3); - if (listItem.checked) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style03a' : - // listItem : { text1:String, image1:String, label1: String} - this._setText(li, '.line1', listItem.text1); - if (listItem.image1 === 'checkbox') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('checkbox'); - } - else if (listItem.image1 === 'radio') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('radio'); - } - else if (listItem.image1 === 'tick') - { - li.classList.remove('radio'); - li.classList.remove('checkbox'); - li.classList.remove('tick'); - li.classList.add('tick'); - } - else - { - li.classList.remove('checkbox'); - li.classList.remove('radio'); - li.classList.remove('tick'); - this._setImage(li, '.image1', listItem.image1); - } - - if (listItem.checked) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - - this._setText(li, '.label1', listItem.label1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style04' : - // listItem : { text1:String, text2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style05' : - // listItem : { text1:String, text2:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - break; - - case 'style06' : - // listItem : { text1:String, label1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style07' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - li.classList.remove('label2Right'); - li.classList.remove('label2Left'); - li.classList.remove('label2Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - switch (listItem.label2Align) - { - case 'right' : li.classList.add('label2Right'); break; - case 'left' : li.classList.add('label2Left'); break; - case 'center' : li.classList.add('label2Center'); break; - default : li.classList.add('label2Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - if (listItem.label2Warning) - li.classList.add('label2Warning'); - else - li.classList.remove('label2Warning'); - - break; - - case 'style09' : - // listItem : { text1:String, text2:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - - // configure label width - li.classList.remove('wideLabel'); - li.classList.remove('wideLabel2'); - switch (listItem.labelWidth) - { - case 'wide' : li.classList.add('wideLabel'); break; - case 'wide2' : li.classList.add('wideLabel2'); break; - } - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - li.classList.remove('label2Right'); - li.classList.remove('label2Left'); - li.classList.remove('label2Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - switch (listItem.label2Align) - { - case 'right' : li.classList.add('label2Right'); break; - case 'left' : li.classList.add('label2Left'); break; - case 'center' : li.classList.add('label2Center'); break; - default : li.classList.add('label2Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - if (listItem.label2Warning) - li.classList.add('label2Warning'); - else - li.classList.remove('label2Warning'); - - break; - - case 'style10' : - // listItem : { text1:String, button1:String, button2:String, value:Integer } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.button1', listItem.button1); - this._setText(li, '.button2', listItem.button2); - this._setToggle(li, '.button', this.m.max(this.m.min(listItem.value, 2), 0) ); - if (listItem.indeterminate) - { - li.classList.add('indeterminate'); - } - else - { - li.classList.remove('indeterminate'); - } - break; - - case 'style11' : - // listItem : { text1:String, button1:String, button2:String, button3:String, value:Integer } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.button1', listItem.button1); - this._setText(li, '.button2', listItem.button2); - this._setText(li, '.button3', listItem.button3); - this._setToggle(li, '.button', this.m.max(this.m.min(listItem.value, 3), 0) ); - break; - - case 'style12' : - // listItem : { text1:String, image1:String, labelLeft:String, labelRight:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - - // extend tickmark object - if (listItem.tickMarkObject) - { - listItem.tickMarkObject.tickMarkStyle = "List2CtrlSliderTickMark"; - listItem.tickMarkObject.centerMarkTopStyle = "List2CtrlCenterMarkTop"; - listItem.tickMarkObject.centerMarkBottomStyle = "List2CtrlCenterMarkBottom"; - listItem.tickMarkObject.numberStyle = "List2CtrlTickNumber"; - } - - // extend label object - if (listItem.labelObject) - { - listItem.labelObject.leftLabelStyle = "List2CtrlSliderLeftLabel"; - listItem.labelObject.rightLabelStyle = "List2CtrlSliderRightLabel"; - listItem.labelObject.centerLabelStyle = "List2CtrlSliderCenterLabel"; - } - - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: listItem.minChangeInterval, - settleTime: listItem.settleTime, - rotationIdleDetectTime: listItem.rotationIdleDetectTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - - case 'style13' : - // TODO: style13 has been depricated - // listItem : { text1:String, labelLeft:String, labelCenter:String, labelRight:String } - this._setText(li, '.line1', listItem.text1); - - // extend tickmark object - if (listItem.tickMarkObject) - { - listItem.tickMarkObject.tickMarkStyle = "List2CtrlSliderTickMark"; - listItem.tickMarkObject.centerMarkTopStyle = "List2CtrlCenterMarkTop"; - listItem.tickMarkObject.centerMarkBottomStyle = "List2CtrlCenterMarkBottom"; - listItem.tickMarkObject.numberStyle = "List2CtrlTickNumber"; - } - - // extend label object - if (listItem.labelObject) - { - listItem.labelObject.leftLabelStyle = "List2CtrlSliderLeftLabel"; - listItem.labelObject.rightLabelStyle = "List2CtrlSliderRightLabel"; - listItem.labelObject.centerLabelStyle = "List2CtrlSliderCenterLabel"; - } - - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: this.properties.minChangeInterval, - settleTime: this.properties.settleTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - - case 'style14' : - // listItem : { text1:String, label1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - - if ('right' == listItem.text1Align) - { - li.classList.add('text1AlignRight'); - } - else - { - li.classList.remove('text1AlignRight'); - } - - break; - - case 'style17' : - // listItem : { text1:String, label1:String, image1:String } - li.querySelector('.line1').innerText = ''; - var label1 = document.createElement('span'); - label1.className = 'label1'; - label1.appendChild(document.createTextNode(listItem.label1)); - li.querySelector('.line1').appendChild(label1); - li.querySelector('.line1').appendChild(document.createTextNode(listItem.text1)); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style18' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style19' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - break; - - case 'style20' : - // listItem : { text1:String } - this._setText(li, '.button1', listItem.text1); - break; - - case 'style21' : - // listItem : { text1:String, text2:String, label1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - break; - - case 'style22' : - // listItem : { text1:String, label1:String, image1:String, image2:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - - // configure label alignment - li.classList.remove('label1Right'); - li.classList.remove('label1Left'); - li.classList.remove('label1Center'); - switch (listItem.label1Align) - { - case 'right' : li.classList.add('label1Right'); break; - case 'left' : li.classList.add('label1Left'); break; - case 'center' : li.classList.add('label1Center'); break; - default : li.classList.add('label1Right'); break; - } - - // configure label warning - if (listItem.label1Warning) - li.classList.add('label1Warning'); - else - li.classList.remove('label1Warning'); - - // configure text indentation - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - - break; - - case 'style25' : - // listItem : { text1:String, text2:String, image1:String, image2:String, image3:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - this._setImage(li, '.image2', listItem.image2); - this._setImage(li, '.image3', listItem.image3); - break; - - case 'styleOnOff' : - // listItem : { text1:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setImage(li, '.image1', listItem.image1); - if (listItem.value === 1) - { - li.classList.add('checked'); - } - else - { - li.classList.remove('checked'); - } - break; - - case 'styleStep' : - // listItem : { text1:String, label1:String, label2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.label1', listItem.label1); - this._setText(li, '.label2', listItem.label2); - this._setImage(li, '.image1', listItem.image1); - li.classList.remove('maxReached'); - li.classList.remove('minReached'); - if (listItem.value === listItem.max) - { - li.classList.add('maxReached'); - } - else if (listItem.value === listItem.min) - { - li.classList.add('minReached'); - } - - // configure label warning - if (listItem.warning) - li.classList.add('warning'); - else - li.classList.remove('warning'); - - break; - - case 'styleLock' : - // listItem : { text1:String, text2:String, image1:String } - this._setText(li, '.line1', listItem.text1); - this._setText(li, '.line2', listItem.text2); - this._setImage(li, '.image1', listItem.image1); - if (listItem.locked) - { - li.classList.add('locked'); - } - else - { - li.classList.remove('locked'); - } - break; - - case 'style28' : - // listItem : { text1:String, image1:String, labelLeft:String, labelRight:String } - this._setImage(li, '.image1', listItem.image1); - - if (listItem.indented) - li.classList.add('indented'); - else - li.classList.remove('indented'); - // instantiate SliderCtrl in the subcontainer - // TODO: how about a pool of sliders? -> need slider API for setting properties - var sliderProperties = { - style: listItem.allowAdjust ? listItem.pivot ? 'pivot' : 'slider' : 'progress', - slideCallback: this._slideCallback.bind(this, dataListIndex), - minChangeInterval: listItem.minChangeInterval, - settleTime: listItem.settleTime, - rotationIdleDetectTime: listItem.rotationIdleDetectTime, - min: listItem.min, - max: listItem.max, - increment: listItem.increment, - value: listItem.value, - - // tickmarks, labels and +/- - showTickMarks: listItem.showTickMarks, - tickMarkObject: listItem.tickMarkObject, - showLabels: listItem.showLabels, - labelObject: listItem.labelObject, - showPlusMinus: listItem.showPlusMinus, - plusMinusObject: listItem.showPlusMinus ? { plusSignStyle : "List2CtrlSliderPlus", minusSignStyle : "List2CtrlSliderMinus" } : null, // default +/- object - - appData: listItem.appData, - wrapperClass: "List2CtrlSliderCtrl", // (CSS Class) CSS Class passed in to define the appearance of the slider wrapper - fillClass: "List2CtrlSliderCtrlFill", // (CSS Class) CSS Class passed in to define the appearance of the fill - handleClass: "List2CtrlSliderCtrlHandle", // (CSS Class) CSS Class passed in to define the appearance of the handle - focusedWrapperClass: "List2CtrlSliderCtrlFocusedWrapper", // (CSS Class) Optional CSS Class to define the appearance of the slider wrapper when the slider has MC focus - focusedFillClass: "List2CtrlSliderCtrlFocusedFill", // (CSS Class) Optional CSS Class to define the appearance of the fill when the slider has MC focus - focusedHandleClass: "List2CtrlSliderCtrlFocusedHandle", // (CSS Class) Optional CSS Class to define the appearance of the handle when the slider has MC focus - - width: this.properties.sliderWidth, - handleWidth: this.properties.sliderHandleWidth, - }; - - - this._setSlider(li, '.subcontainer', sliderProperties, dataListIndex); - - if (listItem.allowAdjust) - { - li.classList.add('adjustable'); - li.classList.remove('notAdjustable'); - } - else - { - li.classList.remove('adjustable'); - li.classList.add('notAdjustable'); - } - - break; - } - - /* ITEM MODIFICATORS */ - // add/remove hasCaret class - if (listItem.hasCaret) - { - li.classList.add('hasCaret'); - } - else - { - li.classList.remove('hasCaret'); - } - - // add/remove disabled class - if (listItem.disabled) - { - li.classList.add('disabled'); - } - else - { - li.classList.remove('disabled'); - } - - // add/remove styleMod class (hint/bold/'') - if ('hint' == listItem.styleMod) - { - li.classList.remove('bold'); - li.classList.add('hint'); - } - else if ('bold' == listItem.styleMod) - { - li.classList.remove('hint'); - li.classList.add('bold'); - } - else if ('both' == listItem.styleMod) - { - li.classList.add('hint'); - li.classList.add('bold'); - } - else - { - li.classList.remove('hint'); - li.classList.remove('bold'); - } - - // add/remove background modifier class (normal/grey) - if ('grey' == listItem.background) - { - li.classList.remove('bgLightGrey'); - li.classList.add('bgGrey'); - } - else if('lightGrey' == listItem.background) - { - li.classList.remove('bgGrey'); - li.classList.add('bgLightGrey'); - } - else - { - li.classList.remove('bgLightGrey'); - li.classList.remove('bgGrey'); - } - - // add disabled style mod - if ('white' === listItem.disabledStyleMod) - { - li.classList.add("disabledWhite"); - } - - // return it - return li; - -}; - -/** - * Return list item to the pool - * This will result in increasing the pool contents - * with one item. The returned item will be removed from the DOM. - * However, its content will not be reset as this is done in the - * process of any subsequent pool extraction (see _getListItem() above) - * TAG: internal - * ========================= - * @param {HTML element} -
  • element from the DOM - * @return {void} - */ -List2Ctrl.prototype._returnListItem = function(li) -{ - // get the style - var itemStyle = li.getAttribute('data-itemStyle'); - // reset it - li.style.top = '0px'; - // remove it - li.parentNode.removeChild(li); - - // put it back to the pool - this.pool[itemStyle].push(li); -}; - -/** - * Put a list item to the scroller - * TAG: internal - * ========================= - * @param {HTML element} -
  • element from the DOM - * @param {integer} - * @param {string} - * @return {void} - */ -List2Ctrl.prototype._putToScroller = function(li, index, operation) -{ - li.style.top = index * this.properties.itemHeight + 'px'; - li.setAttribute('data-ref', index); - - - if (operation == 'prepend') - { - this.items.unshift({ref:index, domElt:li}); - this.scroller.insertBefore(li, this.scroller.firstChild); - - this._wrapInlineElement(li); - } - else if (operation == 'append') - { - this.items.push({ref:index, domElt:li}); - this.scroller.appendChild(li); - - this._wrapInlineElement(li); - } - else if (!isNaN(operation)) - { - this.items.splice(operation, 0, {ref:index, domElt:li}); - - // insertBefore breaks in Opera - use appendChild instead - // this.scroller.insertBefore(li, this.items[operation+1]); - this.scroller.appendChild(li); - - this._wrapInlineElement(li); - } - else - { - log.error('Lis2: unknown _putToScroller() operation: ' + li + ' ' + index + ' ' + operation); - } - -}; - -/** - * Return everything into the pool and empty the scroller - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._emptyScroller = function() -{ - for (var i=0, l=this.items.length; i itemsOnScreen) - { - // return everything into the pool - var itemsLength = this.items.length; - for (var i=0; i < itemsLength; i++) - { - var item = this.items.shift(); - this._returnListItem(item.domElt); - } - - var dataListIndex = 0; - - if (topItem < this.dataList.items.length - Math.round(itemsOnScreen / 2) && - topItem > Math.round((itemsOnScreen / 2)) ) - { - - - // WE ARE IN THE MIDDLE - - for (var i=0; i < itemsLength; i++) - { - dataListIndex = (topItem - itemsBefore) + i; - - // we've reached the end of the dataList. No more items to add -> break - if (dataListIndex >= this.dataList.items.length) - { - break; - } - - // request it if it is empty - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'middle'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - } - - } - else - { - - if (numOfScrolledElements > 0) - { - - // PRESSED END BUTTON - - for (var i=0; i < itemsLength; i++) - { - - dataListIndex = (this.dataList.items.length - itemsLength) + i; - - // request it if it is empty - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'down'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - } - - } - else if (numOfScrolledElements < 0) - { - - // PRESSED HOME BUTTON - - for (var i=0; i < itemsLength; i++) - { - - dataListIndex = i; - - - // request it if it is empty - if (this.dataList.items[dataListIndex].itemStyle === 'empty' || (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex]))) - { - this._requestMore(dataListIndex, 'down'); - log.debug('Requesting items ' + dataListIndex); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'append'); - - } - - } - - } - - - } - else - { - - - - if (numOfScrolledElements > 0) - { - - /* SCROLL DOWN BOF */ - - // return to pool - var firstItemRef = this.items[0].ref; - var bottomDifference = topItem - firstItemRef; - var extraEls = bottomDifference - itemsBefore; - - // extraEls cannot be more than the poolsize - NOTE: this breaks the items array - // extraEls = this.m.min(extraEls, this.properties.poolsize-1); - // extraEls cannot be more than the items array - NOTE: introduced not to break the items array - extraEls = this.m.min(extraEls, this.items.length-1); - - log.debug(' Scroll Down - extraEls ' + extraEls); - - if (extraEls > 0) - { - - for (var i=0; i < extraEls; i++) - { - var item = this.items.shift(); - this._returnListItem(item.domElt); - } - - } - - // lastItemRef = this.items[this.items.length-1].ref; - // Note: this is not defined as a separate variable because the - // this.items array is being modified in the below cycle - - // get from pool - var topDifference = this.items[this.items.length-1].ref - ( topItem - 1 ); - var newEls = ( itemsAfter + 1 ) - topDifference; - - // newEls cannot be more than the poolsize - newEls = this.m.min(newEls, this.properties.poolsize-1); - - log.debug(' Scroll Down - newEls ' + newEls); - - if (newEls > 0) - { - - for (var i=0; i break - log.debug('end of list'); - break; - } - - } - - } - - /* SCROLL DOWN EOF */ - - } - else if (numOfScrolledElements < 0) - { - - /* SCROLL UP BOF */ - - // return to pool - var topDifference = this.items[this.items.length-1].ref - topItem + 1; - var extraEls = topDifference - ( itemsAfter + 1 ); - - // extraEls cannot be more than the poolsize - NOTE: this breaks the items array - // extraEls = this.m.min(extraEls, this.properties.poolsize-1); - // extraEls cannot be more than the items array - NOTE: introduced not to break the items array - extraEls = this.m.min(extraEls, this.items.length-1); - - log.debug(' Scroll Up - extraEls ' + extraEls); - - if ( extraEls > 0 ) - { - - for (var i=0; i < extraEls; i++) - { - var item = this.items.pop(); - this._returnListItem(item.domElt); - } - - } - - - // firstItemRef = this.items[0].ref; - // Note: this is not defined as a separate variable because the - // this.items array is being modified in the below cycle - - // get from pool - var bottomDifference = topItem - this.items[0].ref; - var newEls = itemsBefore - bottomDifference; - - // newEls cannot be more than the poolsize - newEls = this.m.min(newEls, this.properties.poolsize-1); - - log.debug(' Scroll Up - newEls ' + newEls); - - if (newEls > 0) - { - - for (var i=0; i= 0) - { - - // if empty item is encountered, request more data - if (this.dataList.items[dataListIndex].text1 == '' && this._displayWithoutText(this.dataList.items[dataListIndex])) - { - this._requestMore(dataListIndex, 'up'); - } - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // put it to scroller - this._putToScroller(li, dataListIndex, 'prepend'); - - } - else - { - // we've reached the beginning of the dataList array => break - log.debug('beginning of list'); - break; - } - - } // for - - } - else - { - log.debug('no new elements'); - } - - /* SCROLL UP EOF */ - - } - else - { - // there's no scroll => do nothing - } - - - - } // closes if (this.m.abs(numOfScrolledElements) > itemsOnScreen) - -}; - - -/** - * Redraw updated items that are currently visible - * TAG: internal - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._updateDisplay = function(firstItem, lastItem) -{ - - var firstItemRef = this.items[0].ref; - var lastItemRef = this.items[this.items.length-1].ref; - - // update only when the updated items overlap with the visible items - if ( (firstItem >= firstItemRef && firstItem <= lastItemRef) || - (firstItem <= firstItemRef && lastItem >= firstItemRef) ) - { - - var firstToUpdate = this.m.max(firstItem, firstItemRef); - var lastToUpdate = this.m.min(lastItem, lastItemRef); - var firstToUpdateIndex = firstToUpdate - firstItemRef; - var lastToUpdateIndex = (lastToUpdate - firstToUpdate) + firstToUpdateIndex; - - for (var i=firstToUpdateIndex; i<=lastToUpdateIndex; i++ ) - { - - var returnItem = this.items.splice(i,1); - var dataListIndex = returnItem[0].ref; - - // return to pool - this._returnListItem(returnItem[0].domElt); - - // get it from pool - var li = this._getListItem(this.dataList.items[dataListIndex], dataListIndex); - - // recover secondary focus - if (this._inSecondaryMulticontroller && this._currentSecondaryMulticontrollerItem === dataListIndex) - { - li.classList.add('focus'); - li.classList.add('secondaryFocus'); - } - - // put it to scroller - this._putToScroller(li, dataListIndex, i); - - } - - } - - // update _isScrollable flag - this._checkScrollable(); - -}; - -/** - * Request more list items - * TAG: internal - * ========================= - * @param {integer} - * @param {string} - * @return {void} - */ -List2Ctrl.prototype._requestMore = function(index, direction) -{ - - // do not request more if a previous request is pending - if (!this._inLoading) - { - // indicate loading is in progress - this._setLoading(true); - - if (direction == 'up') - { - // we add 1 to the requestSize to include the last element in the way up - index = this.m.max(index - this.properties.requestSize + 1, 0); - - } - else if (direction == 'middle') - { - // we request 25 items on each direction from the topItem - index = this.m.max(index, 0); - - } - - // build additional data - var additionalParams = { - topItem : this._topItem, - visibleItems : this.properties.visibleItems, - ranges : this.getEmptyRange(), - }; - - log.debug('Request items from ' + index + ' to ' + index+this.properties.requestSize + ' ' + direction); - - // call needDataCallback if it is defined. The first empty item is - if (typeof this.properties.needDataCallback == 'function') - { - this.properties.needDataCallback(index, additionalParams); - } - - // set timeout for data population - clearTimeout(this._needDataTimeoutId); - this._needDataTimeoutId = setTimeout(this._needDataTimeoutCallback.bind(this, index), this.properties.needDataTimeout); - } - -}; - -List2Ctrl.prototype._needDataTimeoutCallback = function(index) -{ - log.warn('Lis2: control has requested items from index ' + index + ' but has not receieved them yet. Enabling the list.'); - this._setLoading(false); -}; - -/** - * Initial pool operation - * TAG: internal - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._fill = function(firstItem, lastItem) -{ - - log.debug('Start pool operation'); - log.debug('POOL | ITEMS'); - - // get items from the pool - for (var i=firstItem; i<=lastItem; i++) - { - // get it from the pool - var li = this._getListItem(this.dataList.items[i], i); - - // put it to scroller - this._putToScroller(li, i, 'append'); - - log.debug(this.pool[this.dataList.items[i].itemStyle].length + ' -> ' + this.items.length); - } - - this._hasFill = true; - - // update _isScrollable flag - var scrollable = this._checkScrollable(); - - // show/hide scroll indicator - if (!scrollable || (scrollable && this.properties.hasLetterIndex)) - { - this._hideScrollIndicator(); - } - else - { - this._showScrollIndicator(); - } - - log.debug('End pool operation'); - -}; - -/** SET INTERNAL PROPERTIES **/ - -/** - * Update _isScrollable flag - * TAG: internal - * ========================= - * @return {boolean} - returns _isScrollable - */ -List2Ctrl.prototype._checkScrollable = function() -{ - if (this.dataList.items.length > this.properties.visibleItems) - { - this._isScrollable = true; - } - else - { - this._isScrollable = false; - } - - return this._isScrollable; -}; - -/** - * Update _topItem property - * TAG: internal - * ========================= - * @param {integer} - top item index - * @return {integer} - returns _topItem - */ -List2Ctrl.prototype._setTopListItem = function(pos) -{ - // pos should be number for proper topItem calculation - if (!isNaN(pos)) - { - this._prevTopItem = this._topItem; - this._topItem = -(Math.round(pos / this.properties.itemHeight)); - - // throw out of bounds exception - if (this._topItem < 0 || this._topItem > this.dataList.items.length - 1) - { - log.error('Lis2: _topItem is out of bounds'); - } - } - - if (this.properties.enableItemRequestOnScroll) - { - // check for empty items in DOM - var emptyDOMItem = this._getEmptyDOMElement(); - if (null != emptyDOMItem) - { - // fire needDataCallback() if an empty item is found in the DOM - this._requestMore(emptyDOMItem); - } - } - - return this._topItem; - -}; - -/** - * Indicate loading activity in the list - * and update _inLoading property - * TAG: internal - * ========================= - * @param {boolean} - show or hide loading activity - * @return {boolean} - returns _inLoading - */ -List2Ctrl.prototype._setLoading = function(show) -{ - if (show) - { - // check whether loading overlay is enabled - if (this.properties.loadingOverlayEnabled) - { - // update start time - this._loadingData.timeStarted = new Date().getTime(); - - if (this.properties.showLoadingOverlayTimeout > 0) - { - // delayed show overlay - this._loadingData.startTimeoutId = setTimeout(this._setLoadingOverlay.bind(this, true), this.properties.showLoadingOverlayTimeout); - } - else - { - // show overlay immediately - this._setLoadingOverlay(true); - } - } - - // update flag - this._inLoading = true; - } - else - { - // check whether loading overlay is enabled - if (this.properties.loadingOverlayEnabled) - { - if (this.properties.hideLoadingOverlayTimeout > 0) - { - // delayed hide overlay - var now = new Date().getTime(); - if (now - this._loadingData.timeStarted < this.properties.showLoadingOverlayTimeout) - { - // no overlay has been shown -> reset everything - this._setLoadingOverlay(false); - } - else if (now - this._loadingData.timeShown < this.properties.hideLoadingOverlayTimeout) - { - // the overlay has been visible less than the hideLoadingOverlayTimeout -> hide it in hideLoadingOverlayTimeout ms after it has been made visible - this._loadingData.endTimeoutId = setTimeout(this._setLoadingOverlay.bind(this, false), this.properties.hideLoadingOverlayTimeout - (now - this._loadingData.timeShown)); - } - else - { - // the overlay has been visible long enough -> hide it immediately - this._setLoadingOverlay(false); - } - } - else - { - // hide overlay immediately - this._setLoadingOverlay(false); - } - } - - // update flag - this._inLoading = false; - } - - return this._inLoading; -}; - -List2Ctrl.prototype._setLoadingOverlay = function(show) -{ - if (show) - { - // show loading - this.mask.appendChild(this.loading); - - this._loadingData.timeShown = new Date().getTime(); - } - else - { - // hide loading - if (null != this.loading.parentElement) - { - this.loading.parentElement.removeChild(this.loading); - } - - // reset loading data - clearTimeout(this._loadingData.startTimeoutId); - clearTimeout(this._loadingData.endTimeoutId); - this._loadingData.timeStarted = 0; - this._loadingData.timeShown = 0; - this._loadingData.startTimeoutId = null; - this._loadingData.endTimeoutId = null; - } -}; - -/** 7. DEFAULT TITLE CONFIGURATION **/ - -/** - * Prepare title - * A list title can be defined with minimal set of properties - * that are needed for its proper display. This function sets - * default configuration for a valid title and merge it with the - * custom configuration passed to the title. - * TAG: internal - * ========================= - * @param {object} - the title object that will be set a default set of properties and will be returned - * @return {object} - the complete title object - */ -List2Ctrl.prototype._prepareTitle = function(titleObj) -{ - // The itemStyle property is required - if (!titleObj.hasOwnProperty('titleStyle')) - { - log.error('Lis2: title should have titleStyle property: ' + titleObj); - return; - } - - // default properties - var title = {}; - switch (titleObj.titleStyle) - { - case 'style02' : - title = { text1:'', text1Id:null, text1SubMap:null, styleMod:'' }; - break; - case 'style02a' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'', styleMod:'' }; - break; - case 'style03' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'' }; - break; - case 'style05' : - title = { text1:'', text1Id:null, text1SubMap:null, text2:'', text2Id:null, text2SubMap:null, image1:'' }; - break; - case 'style06' : - title = { image1:'' }; - break; - case 'style07' : - title = { text1:'', text1Id:null, text1SubMap:null, text2:'', text2Id:null, text2SubMap:null }; - break; - case 'style08' : - title = { text1:'', text1Id:null, text1SubMap:null, image1:'', styleMod:'' }; - break; - default : - log.error('Lis2: unknown title style: ' + titleObj.titleStyle); - break; - } - - // Extend default structure with the supplied item - for (var i in titleObj) - { - title[i] = titleObj[i]; - } - - // Perform localization - switch (title.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - case 'style08' : - if (title.text1Id) - { - title.text1 = this._getLocalizedString(title.text1Id, title.text1SubMap); - } - break; - case 'style05' : - case 'style07' : - if (title.text1Id) - { - title.text1 = this._getLocalizedString(title.text1Id, title.text1SubMap); - } - if (title.text2Id) - { - title.text2 = this._getLocalizedString(title.text2Id, title.text2SubMap); - } - break; - } - - return title; -}; - - -/** - * ========================= - * SCROLL INDICATOR - * - reset - * - create - * - visual update - * ========================= - */ - -/** - * Remove any scroll indicator - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorReset = function() -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // remove any scroll indicator - if (this.scrollIndicatorWrapper) - { - // remove wrapper (and scroll indicator) - this.scrollIndicatorWrapper.parentElement.removeChild(this.scrollIndicatorWrapper); - - // nullify elements - this.scrollIndicatorWrapper = null; - this.scrollIndicator = null; - - // reset scroll indicator boundaries - this._indicatorMin = 0; - this._indicatorMax = 0; - } -}; - -/** - * Create scroll indicator - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorBuild = function(visible) -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // determine scroll indicator size - var indicatorSize = Math.round(this.mask.offsetHeight * (this.mask.offsetHeight / this.scroller.offsetHeight)); - - // add scroll indicator wrapper - this.scrollIndicatorWrapper = document.createElement('div'); - this.scrollIndicatorWrapper.className = 'List2CtrlScrollIndicatorWrapper'; - this.divElt.appendChild(this.scrollIndicatorWrapper); - - // add scroll indicator - this.scrollIndicator = document.createElement('div'); - this.scrollIndicator.className = 'List2CtrlScrollIndicator'; - if(!visible) - { - this.scrollIndicatorWrapper.style.visibility = 'hidden'; - } - else - { - this.scrollIndicatorWrapper.style.visibility = 'visible'; - } - this.scrollIndicator.style.height = this.m.max(indicatorSize, this.properties.scrollIndicatorMinSize) + 'px'; - this.scrollIndicator.style.top = '0px'; - this.scrollIndicatorWrapper.appendChild(this.scrollIndicator); - - // set scroll indicator boundaries - this._indicatorMin = 0; - this._indicatorMax = this.mask.offsetHeight - this.scrollIndicator.offsetHeight; - - if (this.properties.hasLetterIndex) - { - // hide scroll indicator when letterIndex is enabled - this._hideScrollIndicator(); - } - else - { - // fade out scroll indicator - this._fadeOutScrollIndicator(); - } -}; - -/** - * Update scroll indicator position on drag - * This is fired on _USER_EVENT_MOVE when the - * list is being dragged by touch. - * TAG: touch-only, internal - * ========================= - * @return {integer} scroll indicator position - */ -List2Ctrl.prototype._dragUpdateScrollIndicator = function() -{ - // check for scroll indicator configuration - if (!this.properties.showScrollIndicator) - { - return; - } - - // determine scroll indicator position - var indicatorPos = Math.round(this._indicatorMax * (this.scroller.offsetTop / this._maxScrollY)); - - // constrain position - indicatorPos = this.m.max(indicatorPos, this._indicatorMin); - - // set new position - this.scrollIndicator.style.top = indicatorPos + 'px'; - - // fade in scroll indicator - this._fadeInScrollIndicator(); - - return indicatorPos; -}; - -/** - * Update scroll indicator position on drag - * Called on scroll animation (flick or scroll ad-hoc) - * TAG: internal - * ========================= - * @param {integer} the new position of the scroller - * @param {integer} the time for animation to the new position - * @return {integer} the new scroll indicator position - */ -List2Ctrl.prototype._updateScrollIndicator = function(pos, time) -{ - // check for time - if (time == undefined || time == null) - { - // get default time - time = this.properties.swipeAnimationDuration; - } - - // determine scroll indicator new position - var newRelativePos = pos / this._maxScrollY; - var newPos = Math.round(newRelativePos * (this._indicatorMax - this._indicatorMin)); - - // start animation - this.scrollIndicator.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.scrollIndicatorAnimationEndCallback = this._scrollIndicatorAnimationEnd.bind(this); - this.scrollIndicator.addEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - this.scrollIndicator.style.top = newPos + 'px'; - - // clear any previously scheduled scroll indicator fade out - clearTimeout(this._scrollIndicatorTimeoutId); - this._scrollIndicatorTimeoutId = null; - - // fade in scroll indicator - this._fadeInScrollIndicator(); - - return newPos; - -}; - - -List2Ctrl.prototype._fadeInScrollIndicator = function() -{ - // check whether scroll indicator needs to fade - if (this.properties.scrollIndicatorFadeTimeout <= 0) - { - return; - } - - this.scrollIndicatorWrapper.style[this._VENDOR + 'TransitionDuration'] = this.properties.scrollIndicatorFadeInDuration + 'ms'; - this.scrollIndicatorWrapper.style.opacity = 1; -}; - -List2Ctrl.prototype._fadeOutScrollIndicator = function() -{ - // check whether scroll indicator needs to fade - if (this.properties.scrollIndicatorFadeTimeout <= 0) - { - return; - } - - // clear any previously-scheduled hiding - clearTimeout(this._scrollIndicatorTimeoutId); - - // schedule hide - this._scrollIndicatorTimeoutId = setTimeout(function() { - this.scrollIndicatorWrapper.style[this._VENDOR + 'TransitionDuration'] = this.properties.scrollIndicatorFadeOutDuration + 'ms'; - this.scrollIndicatorWrapper.style.opacity = 0; - this._scrollIndicatorTimeoutId = null; - }.bind(this), this.properties.scrollIndicatorFadeTimeout); -}; - -List2Ctrl.prototype._hideScrollIndicator = function() -{ - this.scrollIndicatorWrapper.style.opacity = 0; -}; - -List2Ctrl.prototype._showScrollIndicator = function() -{ - this.scrollIndicatorWrapper.style.opacity = 1; -}; - -/** - * ========================= - * TOUCH EVENT HANDLERS - * - Event detection and custom event dispatching - * - Start/Move/End/Out event handling - * - Hit state control - * ========================= - */ - -/** - * Handle any touch event and dispatch appropriate - * custom event. Actual event processing is done in the - * respective handlers of the custom events. The original - * event object is attached to the custom event in its - * event property. - * ========================= - * @param {event} - any touch event - * @return {Boolean} - True if event was processed - */ -List2Ctrl.prototype._touch = function(e) -{ - var touchResult = false; - - switch(e.type) - { - case this._USER_EVENT_START : - // route to letter index first, otherwise route to list - touchResult = this._startIndex(e) || this._start(e); - /* - * Attach temporary listeners to document if we have a positive start. - * These listeners will be removed on _USER_EVENT_END - */ - if (touchResult) - { - document.addEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.addEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.addEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - } - break; - - case this._USER_EVENT_MOVE : - // route to letter index first, otherwise route to list - touchResult = this._moveIndex(e) || this._move(e); - break; - - case this._USER_EVENT_END : - /* - * Remove the document event listeners no matter of these have been - * attached or not. This will prevent any non-existent callbacks firing. - */ - document.removeEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - // route to letter index first, otherwise route to list - touchResult = this._endIndex(e) || this._end(e); - break; - - case this._USER_EVENT_OUT : - this._out(e); - break; - } - - return touchResult; -}; - -/** - * Start Touch on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._start = function(e) -{ - // abort any ongoing scroll - this._abortScroll(e); - - // get mask position and dimensions - this._maskPositionY = this.getPosition(this.mask)[1]; - this._maskPositionX = this.getPosition(this.mask)[0]; - this._maskH = this.mask.offsetHeight; - this._maskW = this.mask.offsetWidth; - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - // reset letter index multicontroller - this._focusStolen = false; - if (relativeY >= 0) - { - this._setLetterIndexMulticontroller(false, true); - - // steal focus - var canGainFocus = this._canGainFocus(e); - if (!this._hasFocus && -1 !== canGainFocus) - { - framework.common.stealFocus(); - this._hasFocus = true; - this._focusStolen = true; - } - } - - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by start reorder rather than regular start - this._startReorder(e); - return true; - } - - this._startItem = this._getTargetItem(e); - this._startDOMItem = this._getDOMItem(this._startItem); - - // make hit - if (this.properties.hitTimeout > 0) - { - // after some time - this._makeHitTimeoutId = setTimeout(this._itemMakeHit.bind(this, e), this.properties.hitTimeout); - } - else - { - // immediately - this._itemMakeHit(e); - } - - // Place focus on the reported available item when focus is stolen - if (this._focusStolen) - { - this._showFocus(canGainFocus, true); - } - - // make toggles hit - this._buttonMakeHit(e); - - // make locks hit - this._lockMakeHit(e); - - // if scrolling during loading is not allowed - if (!this.properties.scrollingDuringLoading && this._inLoading) - { - return false; - } - - // check relative mouse position - if (relativeY < 0) - { - return false; - } - - // check for a valid target item - if (this._startItem == -1) - { - return false; - } - - // get current y - this._y = this.scroller.offsetTop; - this._startY = relativeY; - this._startX = relativeX; - this._startTime = new Date().getTime(); - - // start longpress countdown - this._longPressTimeoutId = setTimeout(this._itemLongPress.bind(this, e), this.properties.longPressTimeout); - - // raise _inDrag - this._inDrag = true; - - // Release secondary MC mode - if (this._inSecondaryMulticontroller && null != this._currentSecondaryMulticontrollerItem && this._startItem != this._currentSecondaryMulticontrollerItem) - { - var temp = this._currentSecondaryMulticontrollerItem; - - // if we are in secondary multicontroller mode, touching outside the item will exit it - this._setSecondaryMulticontroller(false, this._currentSecondaryMulticontrollerItem); - - // Commit the value - if (!this._isLock(temp)) // locks do not commit the value - { - this._triggerFocus(temp); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(temp, 'clear'); - } - } - - // dispatch scroll start event - this._listEvent(this._EVENTS.SCROLL_START, {scrollPosition:this._topItem}); - - // user touched the list -> return True - return true; - -}; - -/** - * Touch move on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._move = function(e) -{ - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by move reorder rather than regular move - this._moveReorder(e); - return true; - } - - if (!this._inDrag) - { - return false; - } - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return false; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - if (relativeY < -this._maskPositionY) - { - // we are out of bounds - this._end(e); - return true; - } - - // calculate travelled distance - var deltaY = relativeY - this._startY; - var deltaX = relativeX - this._startX; - - if (this._inLongPress) - { - return false; - } - - /* - * DRAG DETECTION - * determine whether this is a horizontal or vertical drag - * and raise the horizontal flag - */ - if (null == this._inHorizontalDrag) { - - var alpha = Math.atan2(this.m.abs(deltaX), this.m.abs(deltaY)); - if (alpha < this.properties.hvThreshold) - { - // vertical - this._inHorizontalDrag = false; - } - else - { - // horizontal - this._inHorizontalDrag = true; - this._hDragItem = this._getTargetItem(e); - - // set slideStart - this._slideStart(e); - } - } - - // drag slider - if (this._inHorizontalDrag == true) - { - // we have a horizontal drag -> move sliders - this._slideMove(e); - } - // drag list if scrollable - else if (false == this._inHorizontalDrag && this._isScrollable) - { - // we have a vertical drag and the list can be scrolled - // calculate the scroller's new position and constrain it into bounds - var newPos = this.m.max(this._maxScrollY, this.m.min(this._y + deltaY, this._minScrollY)); - - // drag the scroller if in bounds - this.scroller.style.top = newPos + 'px'; - - // update scroll indicator - this._dragUpdateScrollIndicator(); - - // raise _stopClick flag and remove hit and long press - if (this.m.abs(deltaY) > this.properties.selectThreshold) - { - this._stopSelect = true; - - // remove hit and prevent delayed hit - this._itemRemoveHit(e); - clearTimeout(this._makeHitTimeoutId); - - // remove long press and prevent long press - this._itemRemoveLongPress(e); - clearTimeout(this._longPressTimeoutId); - } - } - // control hit state when not scrollable or when no scrolling occurs (e.g. when we are one of the list extremities) - if (!this._isScrollable || this.m.abs(deltaY) > this.properties.selectThreshold) - { - var targetTop = this._startDOMItem.offsetTop; - if (relativeY < targetTop || relativeY > targetTop + this.properties.itemHeight) - { - // remove hit - this._itemRemoveHit(e); - - // prevent select only on non-scrollable lists - // the scrollable lists are handled in the above case - if (!this._isScrollable) - { - this._stopSelect = true; - } - } - else - { - // make hit - if (this._stopSelect && !this._isScrollable) - { - this._itemMakeHit(e); - } - - // enable select only on non-scrollable lists - // the scrollable lists are handled in the above case - if (!this._isScrollable) - { - this._stopSelect = false; - } - } - } - - // user touched the list -> return True - return true; -}; - -/** - * Touch end on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._end = function(e) -{ - // handle list reorder cases first - if (this._inListReorder) - { - // route event to be handled by end reorder rather than regular end - this._endReorder(e); - return true; - } - - - // remove hit - this._itemRemoveHit(e); - clearTimeout(this._makeHitTimeoutId); // clear hit timeout - // remove long press - this._itemRemoveLongPress(e); - clearTimeout(this._longPressTimeoutId); // clear longpress timeout - - this._startItem = null; - this._startDOMItem = null; - - // reset drag flag and hDrag item - this._inHorizontalDrag = null; - this._hDragItem = null; - - if (!this._inDrag) - { - // this is called without having a drag - return false; - } - - // end any drag of sliders - this._slideEnd(e); - - // set scroll nature - this._scrollNature = 'touch'; - - // detect swipe motion - var endTime = e.timeStamp || new Date().getTime(); - var velocity = endTime - this._startTime; - if (this._focusStolen && !this._stopSelect) - { - // slight drag -> scroll to show focus on the available item when stealing focus - // decide whether to allow offscrean - var focussedIndex = this._getFocussedIndex(); - var allowOffScreen = (focussedIndex > this._topItem && focussedIndex < this._topItem + this.properties.visibleItems); - this._showFocus(focussedIndex, allowOffScreen); - this._focusStolen = false; - } - else if (velocity < this.properties.swipeThreshold && velocity > 0) - { - // get relative mouse position and calculate travelled distance - var relativeY = e.pageY - this._maskPositionY; - var deltaY = relativeY - this._startY; - - // swipte detected - this._startSwipe(deltaY, velocity); - } - else - { - // regular drag -> snap to item bounds - this._snap(this.scroller.offsetTop); - } - - // call touch select logic - this._touchSelectItem(e); - - // reset any previously set flags - this._inDrag = false; - this._stopSelect = false; - this._startTime = 0; - - // user touched the list -> return True - return true; -}; - -/** - * Touch leave on list - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {Boolean} - True if list is touched - */ -List2Ctrl.prototype._out = function(e) -{ - return this._end(e); -}; - - -/** - * Start Touch on letter index - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {boolean} - True if letter index is touched - */ -List2Ctrl.prototype._startIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - // get mask position - this._maskPositionY = this.getPosition(this.mask)[1]; - this._maskPositionX = this.getPosition(this.mask)[0]; - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - if (relativeY < 0) - { - return false; - } - - // hit test letter index - if (relativeX <= this.letterIndexWrapper.offsetLeft) - { - return false; - } - - // steal focus - if (!this._hasFocus) - { - framework.common.stealFocus(); - this._hasFocus = true; - } - - // Enter into letter index multicontroller mode if not already - if (!this._inLetterIndexMulticontroller) - { - this._setLetterIndexMulticontroller(true); - } - - // clear any scheduled letter index select - this._scheduleLetterIndexSelect(null, true); - - // make hit - this._indexMakeHit(e); - - // get start coordinates and time - this._yIndex = this.letterIndex.offsetTop; - this._startIndexY = relativeY; - this._startIndexX = relativeX; - this._startTimeIndex = new Date().getTime(); - - this._inDragIndex = true; - - return true; - -}; - - -List2Ctrl.prototype._moveIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - if (!this._inDragIndex) - { - return false; - } - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return false; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get relative mouse position - var relativeY = e.pageY - this._maskPositionY; - var relativeX = e.pageX - this._maskPositionX; - - if (relativeY < -this._maskPositionY) - { - // we are out of bounds - this._endIndex(e); - - return false; - } - - // calculate travelled distance - var deltaY = relativeY - this._startIndexY; - var deltaX = relativeX - this._startIndexX; - - // calculate the letter index's new position and constrain it into bounds - var newPos = this.m.max(this._maxScrollYIndex, this.m.min(this._yIndex + deltaY, this._minScrollYIndex)); - - // drag the letter index if in bounds - this.letterIndex.style.top = newPos + 'px'; - - // raise _stopClick flag - if (this.m.abs(deltaY) > this.properties.selectThreshold) - { - this._stopSelect = true; - - // remove hit - this._indexRemoveHit(e); - } - - return true; - -}; - - -List2Ctrl.prototype._endIndex = function(e) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - // remove hit - this._indexRemoveHit(e); - - if (!this._inDragIndex) - { - return false; - } - - if (!this._stopSelect) - { - // snap position - this._snapIndex(this.letterIndex.offsetTop); - - // select letter index - var letterIndex = this._getTargetLetterIndex(e); - this._letterIndexSelect(letterIndex, 'Touch'); - } - else - { - // detect swipe motion - var endTime = e.timeStamp || new Date().getTime(); - var velocity = endTime - this._startTimeIndex; - if (velocity < this.properties.swipeThreshold && velocity > 0) - { - // get relative mouse position and calculate travelled distance - var relativeY = e.pageY - this._maskPositionY; - var deltaY = relativeY - this._startIndexY; - - // swipte detected - this._startSwipeIndex(deltaY, velocity); - } - else - { - // snap position - this._snapIndex(this.letterIndex.offsetTop); - - // schedule letter index select if letter is enabled - var letterIndex = this._getTargetLetterIndex(e); - if (!this.letterIndexData[letterIndex].disabled) - { - this._scheduleLetterIndexSelect(letterIndex); - } - } - } - - // reset flags - this._inDragIndex = false; - this._stopSelect = false; - - return true; -}; - - - -/** - * Select item - * TAG: touch-only, internal - * ========================= - * @param {event} - raw touch/mouse event - * @return {void} - */ -List2Ctrl.prototype._touchSelectItem = function(e) -{ - // clear any hit timeout - clearTimeout(this._makeHitTimeoutId); - - // if we are not allowed to select (when in drag) - if (this._stopSelect) - { - this._stopSelect = false; - return; - } - - // select during loading is not allowed - if (this._inLoading) - { - return; - } - - var itemIndex; - var fireSelect = true; - var additionalModifier = null; - var params = {}; - - // determine target item - itemIndex = this._getTargetItem(e); - - // only valid list items can fire the select callback - if (itemIndex == -1) - { - return; - } - - // ensure that we end up on the same item where we started so that the select is valid - if (itemIndex != this._getFocussedIndex()) - { - return; - } - - // perform any additional touch processing for some items before issuing select callback - if (this._isToggle(itemIndex)) - { - // the target contains toggle buttons -> select toggle buttons - var toggleSelected = this._buttonSelect(e); - if ('cancel' == toggleSelected) - { - fireSelect = false; - } - else if (null != toggleSelected) - { - params = { additionalData:toggleSelected }; - additionalModifier = 'preventSimpleSelect'; - } - - } - - if (this._isSlider(itemIndex)) - { - // the target contains a slider -> disable select only if the slider is adjustable - if (this.dataList.items[itemIndex].allowAdjust) - { - fireSelect = false; - } - } - - if (this._isStep(itemIndex) && this._hasSecondaryMulticontroller(itemIndex) && this._inSecondaryMulticontroller) - { - // if we are in secondary multicontroller and the item is a step item - var stepResult = this._stepAdjust(e); - if ('commit' === stepResult) - { - params = { finalAdjust:true, value:this.dataList.items[itemIndex].value }; - additionalModifier = 'exitSecondaryMulticontroller'; - } - else if (null != stepResult) - { - params = { finalAdjust:false, value:stepResult }; - } - else - { - fireSelect = false; - } - } - else if (this._isStep(itemIndex) && this._hasSecondaryMulticontroller(itemIndex) && !this._inSecondaryMulticontroller) - { - // if we are not in secondary multicontroller and the item is step item - this._setSecondaryMulticontroller(true, itemIndex); - fireSelect = false; - - // produce beep - this._beep('Short', 'Touch'); - } - - if (this._isLock(itemIndex) && this._hasSecondaryMulticontroller(itemIndex)) - { - // the target is a lock item - var lockAction = this._lockSelect(e); - if (null == lockAction) - { - fireSelect = false; - } - else - { - // prepare params - params = { additionalData:lockAction }; - additionalModifier = 'exitSecondaryMulticontroller'; - } - } - - // prevent select on disabled items - if (this.dataList.items[itemIndex].disabled) - { - fireSelect = false; - } - - // everything looks ok -> call internal _itemSelect() method if the item permits it - if (fireSelect) - { - // fire select only if no long press / hold start has been issued - if (!this._longPressIssued) - { - // produce beep - this._beep('Short', 'Touch'); - - this._itemSelect(itemIndex, params, additionalModifier); - } - // otherwise fire holdStop Callback on shortAndHold items - else if ('shortAndHold' === this.dataList.items[itemIndex].itemBehavior) - { - this._itemHoldStop(itemIndex); - } - } - - // lower long-press/hold-start flag - this._longPressIssued = false; - -}; - -/** - * Exit hit state of the currently hit item - * ========================= - * @return {void} - */ -List2Ctrl.prototype._itemRemoveHit = function() -{ - var hitItems = this.scroller.querySelectorAll('.hit'); - - if (hitItems.length) - { - for (var i=0, l=hitItems.length; i= this.dataList.itemCount || this.dataList.items[itemIndex].disabled) - { - return; - } - - var returnValue = null; - - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'styleOnOff' : - // get and update current value - var currentValue = this.dataList.items[itemIndex].value; - var newValue = (1 === currentValue) ? 2 : 1; - this.dataList.items[itemIndex].value = newValue; - - // get and update DOM item - var domItem = this._getDOMItem(itemIndex); - if (domItem) - { - if (1 === newValue) - { - domItem.classList.add('checked'); - } - else - { - domItem.classList.remove('checked'); - } - } - returnValue = newValue; - break; - - case 'style10' : - case 'style11' : - // Note: settle timeout is registered in this._buttonActivate - this._buttonSelectRight(itemIndex); - returnValue = this.dataList.items[itemIndex].value; - break; - - case 'style03' : - case 'style03a' : - var currentValue = this.dataList.items[itemIndex].checked; - switch (this.dataList.items[itemIndex].image1) - { - case 'tick' : - if (!currentValue) - this._setTick(itemIndex, !currentValue); - break; - case 'radio' : - if (!currentValue) - this._setRadio(itemIndex, !currentValue); - break; - case 'checkbox' : - this._setCheckBox(itemIndex, !currentValue); - break; - } - returnValue = this.dataList.items[itemIndex].checked; - break; - - default : - log.warn('Lis2: No simple select behavior for item style ' + this.dataList.items[itemIndex].itemStyle); - break; - } - - return returnValue; - -}; - -/** - * Fire select callback on an item. - * This function is called whenever a select event - * occurs. It is a single call point for all selects - * and should be invoked whether select event is intended. - * TAG: internal - * ========================= - * @param {integet} - item index - * @return {boolean} - true if there's a valid selectCallback - */ -List2Ctrl.prototype._itemSelect = function(itemIndex, paramsModifier, additionalModifier) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - // get paramsModifier - var paramsModifier = paramsModifier || {}; - - // get additionalModifier - var additionalModifier = additionalModifier || null; - - var appData = null; - var additionalData = null; - var params = {}; - - // event filtering - var filterEvent = false; - - if (this._isSlider(itemIndex)) - { - // the item contains a slider - additionalData = this.dataList.items[itemIndex].value; - } - - if (this._isSimpleSelectItem(itemIndex)) - { - // the item is simple select item - if ('preventSimpleSelect' != additionalModifier) - { - // process simple select behavior before firing the select callback - additionalData = this._simpleSelect(itemIndex); - } - - // apply event filter - var filterType = (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) ? 'toggle' : (this._isCheckBox(itemIndex)) ? 'check' : null; - filterEvent = this._applyEventFilter(itemIndex, filterType); - } - else if (this._isStep(itemIndex) && 'exitSecondaryMulticontroller' === additionalModifier) - { - this._setSecondaryMulticontroller(false, itemIndex); - } - else if (this._isLock(itemIndex) && 'exitSecondaryMulticontroller' === additionalModifier) - { - // restore focus and remove any secondary multicontroler - this._showFocus(this._lastItemWithFocus); - this._lockShowFocus(itemIndex, 'clear'); - this._setSecondaryMulticontroller(false, itemIndex); - } - - // is this filtered event? - if (filterEvent) - { - return false; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - // merge params with params modifier - for (var i in paramsModifier) - { - params[i] = paramsModifier[i]; - } - - // return value - var result = false; - - // do not fire select on disabled items but instead fire select disabled - if (this.dataList.items[itemIndex].disabled) - { - // fire select disabled callback - if (typeof this.properties.selectDisabledCallback == 'function') - { - /* - * Handles touches on disabled list items - * @param ctrlObj Object Reference to the list control that was selected - * @param btnData Object Data that was attached to the selected item - * @param params Object Object containing extra data - */ - result = this.properties.selectDisabledCallback(this, appData, params); - - // set result to true if nothing is returned from the select callback - if (undefined == result) - { - result = true; - } - } - } - else - { - // fire select callback - if (typeof this.properties.selectCallback == 'function') - { - /* - * Handles select on list items - * @param ctrlObj Object Reference to the list control that was selected - * @param btnData Object Data that was attached to the selected item - * @param params Object Object containing extra data - */ - result = this.properties.selectCallback(this, appData, params); - - // set result to true if nothing is returned from the select callback - if (undefined == result) - { - result = true; - } - } - - // dispatch select event - this._listEvent(this._EVENTS.ITEM_SELECT, params); - } - - if (this._hasData(itemIndex)) - { - // record this event and clear any timeouts - this.dataList.items[itemIndex]._data.lastEvent = new Date().getTime(); - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = null; - } - - return result; -}; - -/** - * Fire long press callback on an item. - * This function is called whenever a select event - * occurs. It is a single call point for all selects - * and should be invoked whether select event is intended. - * TAG: internal - * ========================= - * @param {event|integer} - raw touch/mouse event or directly the index of the item - * @return {boolean} - true if there's a valid longPressCallback - */ -List2Ctrl.prototype._itemLongPress = function(e) -{ - var eventCause = null; - var itemIndex = -1; - - // the parameter is an event - if (typeof e == 'object') - { - // determine target item - itemIndex = this._getTargetItem(e);var itemIndex = this._getTargetItem(e); - eventCause = 'Touch'; - } - // the parameter is an index - else if (!isNaN(e)) - { - itemIndex = e; - eventCause = 'Multicontroller'; - } - - // if the item is short-press-only -> prevent any longpress activity - if ('shortPressOnly' === this.dataList.items[itemIndex].itemBehavior) - { - return; - } - // if the item has itemBehavior other than shortAndLong and shortAndHold -> this is invalid property and prevent any longpress activity - else if ('shortAndLong' != this.dataList.items[itemIndex].itemBehavior && 'shortAndHold' != this.dataList.items[itemIndex].itemBehavior) - { - log.warn('Lis2: Invalid itemBehavior property. Item behavior can be shortPressOnly / shortAndLong / shortAndHold'); - return; - } - - // make it long-pressed - this._itemMakeLongPress(e); - - var appData = null; - var additionalData = null; - var params = {}; - - if (this._isSlider(itemIndex)) - { - // the target has a slider - additionalData = this.dataList.items[itemIndex].value; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - - // return value - var result = false; - - // produce beep - this._beep('Long', eventCause); - - // fire long press callback - if ('shortAndLong' === this.dataList.items[itemIndex].itemBehavior && typeof this.properties.longPressCallback == 'function') - { - /* - * Handles long press on list items - * @param ctrlObj Object Reference to the list control that was long-pressed - * @param btnData Object Data that was attached to the long-pressed item - * @param params Object Object containing extra data - */ - this.properties.longPressCallback(this, appData, params); - - result = true; - } - // fire hold start callback - else if ('shortAndHold' === this.dataList.items[itemIndex].itemBehavior && typeof this.properties.holdStartCallback == 'function') - { - /* - * Handles hold start on list items - * @param ctrlObj Object Reference to the list control that was long-held - * @param btnData Object Data that was attached to the long-held item - * @param params Object Object containing extra data - */ - this.properties.holdStartCallback(this, appData, params); - - result = true; - } - - // raise the flag for long-press/hold-start issued callback - this._longPressIssued = true; - - // enter into list reorder on long press if the list supports it - if (this.properties.listReorder) - { - this._enterListReorder(); - this._startReorder(e); - } - - return result; -}; - - -/** - * Fire hold stop on an item. - * This function is called whenever the user ends touch - * on an item that has itemBehavior = shortAndHold - * TAG: internal, touch-only - * ========================= - * @param {integet} - item index - * @return {boolean} - true if there's a valid holdStopCallback - */ -List2Ctrl.prototype._itemHoldStop = function(itemIndex) -{ - // validate item behavior property - if ('shortAndHold' != this.dataList.items[itemIndex].itemBehavior) - { - return; - } - - var appData = null; - var additionalData = null; - var params = {}; - - if (this._isSlider(itemIndex)) - { - // the target has a slider - additionalData = this.dataList.items[itemIndex].value; - } - - // get the data - appData = this.dataList.items[itemIndex].appData; - - // prepare params - params = { - itemIndex : itemIndex, - additionalData : additionalData, - fromVui : false - }; - - // return value - var result = false; - - // fire hold stop callback - if (typeof this.properties.holdStopCallback == 'function') - { - /* - * Handles hold stop on list items - * @param ctrlObj Object Reference to the list control that was long-held - * @param btnData Object Data that was attached to the long-held item - * @param params Object Object containing extra data - */ - this.properties.holdStopCallback(this, appData, params); - - result = true; - } - - return result; -}; - -/** - * Perform outbound event filtering - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - filter type - * @return {boolean} - whethet to filter the event or not - */ -List2Ctrl.prototype._applyEventFilter = function(itemIndex, filterType) -{ - var filter = false; - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return filter; - } - - var now = new Date().getTime(); - - switch (filterType) - { - case 'toggle' : - var difference = now - this.dataList.items[itemIndex]._data.lastEvent; - if (difference < this.dataList.items[itemIndex].minChangeInterval) - { - // too soon -> filter the immediate event and send it later - log.debug('Event filtered'); - filter = true; - - // schedule callback - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = setTimeout(this._filterTimeoutCallback.bind(this, itemIndex, filterType), this.dataList.items[itemIndex].minChangeInterval - difference); - } - else - { - // timing is ok -> pass the event and clear any scheduled selects - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - - // register settle timeout - this._registerSettleTimeout(itemIndex, 'toggle'); - } - break; - - case 'check' : - var difference = now - this.dataList.items[itemIndex]._data.lastEvent; - if (difference < this.properties.checkMinChangeInterval) - { - // too soon -> filter the immediate event and send it later - log.debug('Event filtered'); - filter = true; - - // schedule callback - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - this.dataList.items[itemIndex]._data.eventTimeout = setTimeout(this._filterTimeoutCallback.bind(this, itemIndex, filterType), this.properties.checkMinChangeInterval - difference); - } - else - { - // timing is ok -> pass the event and clear any scheduled selects - clearTimeout(this.dataList.items[itemIndex]._data.eventTimeout); - - // register settle timeout - if ('radio' === this.dataList.items[itemIndex].image1 || - 'tick' === this.dataList.items[itemIndex].image1 || - 'checkbox' === this.dataList.items[itemIndex].image1) - { - var itemType = this.dataList.items[itemIndex].image1; - this._registerSettleTimeout(itemIndex, itemType); - } - } - break; - } - - return filter; -}; - -/** - * Timeout callback that is run if a select event - * is scheduled by the outbound filtering mechanism - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - filter type - * @return {void} - */ -List2Ctrl.prototype._filterTimeoutCallback = function(itemIndex, filterType) -{ - switch (filterType) - { - case 'toggle' : - this._itemSelect(itemIndex, { additionalData : this.dataList.items[itemIndex].value }, 'preventSimpleSelect'); - - // register settle timeout - this._registerSettleTimeout(itemIndex, 'toggle'); - break; - - case 'check' : - this._itemSelect(itemIndex, { additionalData : this.dataList.items[itemIndex].checked }, 'preventSimpleSelect'); - - // register settle timeout - if ('radio' === this.dataList.items[itemIndex].image1 || - 'tick' === this.dataList.items[itemIndex].image1 || - 'checkbox' === this.dataList.items[itemIndex].image1) - { - var itemType = this.dataList.items[itemIndex].image1; - this._registerSettleTimeout(itemIndex, itemType); - } - break; - } -}; - -/** - * Register a settle timeout on any new user input. - * Any previous settle timeout should get cleared - * before setting a new one. The timeout state should - * be checked when public API call is made and depending - * on whether the timeout is running or not, the value - * will be cached or applied to the item. - * The settle time acts as an inbound event filtering mechanism. - * TAG: internal - * ========================= - * @param {integer} - itemIndex - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {void} - */ -List2Ctrl.prototype._registerSettleTimeout = function(itemIndex, itemType) -{ - log.debug('Settle scheduled'); - this._clearSettleTimeout(itemIndex, itemType); - - // schedule settle item - switch (itemType) - { - case 'radio' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - this._radioSettleTimeoutId = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - case 'tick' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - this._tickSettleTimeoutId = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - break; - case 'checkbox' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - this.dataList.items[itemIndex]._data.settleTimeout = setTimeout(this._settleItem.bind(this, itemIndex), this.properties.checkSettleTime); - } - break; - case 'toggle' : - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - this.dataList.items[itemIndex]._data.settleTimeout = setTimeout(this._settleItem.bind(this, itemIndex), this.dataList.items[itemIndex].settleTime); - } - break; - } -}; - -/** - * Clear any settle timeouts on any user input. - * TAG: internal - * ========================= - * @param {integer} - item index - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {void} - */ -List2Ctrl.prototype._clearSettleTimeout = function(itemIndex, itemType) -{ - switch (itemType) - { - case 'radio' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - clearTimeout(this._radioSettleTimeoutId); - this._radioSettleTimeoutId = null; - } - case 'tick' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - clearTimeout(this._tickSettleTimeoutId); - this._tickSettleTimeoutId = null; - } - break; - - case 'checkbox' : - if (this._isCheckBox(itemIndex) && itemType === this.dataList.items[itemIndex].image1) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - clearTimeout(this.dataList.items[itemIndex]._data.settleTimeout); - this.dataList.items[itemIndex]._data.settleTimeout = null; - } - break; - - case 'toggle' : - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - clearTimeout(this.dataList.items[itemIndex]._data.settleTimeout); - this.dataList.items[itemIndex]._data.settleTimeout = null; - } - break; - } -}; - -/** - * Performs a check whether a settlie timeout - * is running for a particular item, radio group - * or tick group. - * ========================= - * @param {integer} - item index - * @param {string} - item type - tick | radio | checkbox | toggle - * @return {Boolean} - True if a settle timeout is running - */ -List2Ctrl.prototype._hasSettleTimeout = function(itemIndex, itemType) -{ - var timeoutRunning = false; - - switch (itemType) - { - case 'radio' : - if (null !== this._radioSettleTimeoutId && this._radioSettleTimeoutId >= 0) - { - timeoutRunning = true; - } - break; - - case 'tick' : - if (null !== this._tickSettleTimeoutId && this._tickSettleTimeoutId >= 0) - { - timeoutRunning = true; - } - break; - - case 'checkbox' : - case 'toggle' : - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return timeoutRunning; - } - - if (null !== this.dataList.items[itemIndex]._data.settleTimeout && this.dataList.items[itemIndex]._data.settleTimeout >= 0) - { - timeoutRunning = true; - } - break; - } - - return timeoutRunning; -}; - -/** - * Settle an item after the settle time expires. - * The cached value (if any) gets assigned as a - * real value to the item and the item is updated. - * This is the settleTimeout callback. - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {Boolean} - True if the item is successfully settled - */ -List2Ctrl.prototype._settleItem = function(itemIndex) -{ - // exit if we don't have any items (nothing to show the focus) - if (!this.hasDataList()) - { - return false; - } - - // exit if the item index is out of range - if (isNaN(itemIndex) || itemIndex < 0 || itemIndex >= this.dataList.items.length) - { - return false; - } - - var item = this.dataList.items[itemIndex]; - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return false; - } - - // get settle value and set it as real value, and update item - var settleValue = item._data.settleValue; - - - - if (this._isToggle(itemIndex) || this._isOnOff(itemIndex)) - { - if (null != item._data.settleValue) - { - // set real value - item.value = settleValue; - this.updateItems(itemIndex, itemIndex); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - item._data.settleTimeout = null; - } - else if (this._isCheckBox(itemIndex)) - { - // Note: setting the real value is done in the helpers - switch (item.image1) - { - case 'checkbox' : - if (null != item._data.settleValue) - { - // set real value - this._setCheckBox(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - item._data.settleTimeout = null; - break; - - case 'radio' : - if (null != item._data.settleValue) - { - // set real value - this._setRadio(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - this._radioSettleTimeoutId = null; - break; - - case 'tick' : - if (null != item._data.settleValue) - { - // set real value - this._setTick(itemIndex, settleValue); - - // release settle value - item._data.settleValue = null; - } - // reset timeout - this._tickSettleTimeoutId = null; - break; - } - } - else - { - // item does not support settlement - return false; - } - - log.debug('Settle item: ' + itemIndex + ', value: ' + settleValue); - - // return success - return true; - -}; - - -/** - * ========================= - * MULTICONTROLLER AND VUI - * ========================= - */ - -/** - * Main multicontroller handler - * TAG: multicontroller-only, public - * ========================= - * @param {string} - multicontroller event - * @return {string} - event consumed - */ -List2Ctrl.prototype.handleControllerEvent = function(eventID) -{ - log.debug("handleController() called, eventID: " + eventID); - - /* - * eventID - * - acceptFocusInit (sent on instantiation) - * - acceptFocusFromLeft - * - acceptFocusFromRight - * - acceptFocusFromTop - * - acceptFocusFromBottom - * - lostFocus - * - touchActive - * ... - */ - - var response; - - // ignore certain MC events when the list is in motion by touch - if (this._inDrag || (this._inScroll && 'touch' === this._scrollNature)) - { - switch (eventID) - { - case "acceptFocusInit" : - case "acceptFocusFromLeft" : - case "acceptFocusFromRight" : - case "acceptFocusFromTop" : - case "acceptFocusFromBottom" : - case "lostFocus" : - case "touchActive" : - case "controllerActive" : - // pass these events - break; - default : - // ignore everything else - return "ignored"; - break; - } - } - - if (!this._inSecondaryMulticontroller) - { - // we are in primary multicontroller mode - switch (eventID) - { - case "acceptFocusInit": - // consume event by default - response = "consumed"; - - // Input mode change to multicontroller - this._inputMode = 'controller'; - /* - * this event is received every time a template is displayed - * if we already have preset a focus item, do not set it again - */ - // Show focus animation - this._showFocusAnimation = true; - if ('restore' != this._initialScrollMode) - { - this._hasFocus = true; - var itemToGainFocus = this._canGainFocus('controllerActive'); - if (-1 !== itemToGainFocus) - { - this._showFocus(itemToGainFocus); - } - else - { - if (this.hasDataList()) - { - // we have data list and there are no enabled items -> give focus to the left - response = 'giveFocusLeft'; - } - else - { - // we probably dont't have a data list -> wait untul we get it - this._showFocus(this.properties.focussedItem); - } - } - } - else - { - this._showFocus(this.properties.focussedItem); - } - break; - - case "acceptFocusFromLeft": - // Show focus animation - this._showFocusAnimation = true; - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromRight": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromTop": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "acceptFocusFromBottom": - // Restore focussed element - var itemToGainFocus = this._canGainFocus(); - if (-1 !== itemToGainFocus) - { - this._hasFocus = true; - this._showFocus(itemToGainFocus); - response = "consumed"; - } - else - { - response = "ignored"; - } - break; - - case "lostFocus": - this._hideFocus(); - this._hideFocusLetterIndex(); - this._hasFocus = false; - response = "consumed"; - break; - - case "touchActive": - // Input mode change to touch - this._inputMode = 'touch'; - this._hideFocus(); - response = "consumed"; - break; - - case "controllerActive": - response = "consumed"; - break; - - case "cw": - // Rotate Right (CW) - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCCW(); - break; - - case "ccw": - // Rotate Left (CCW) - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCCCW(); - break; - - case "downStart": - // Tilt Down Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCDown(); - - // schedule autoscroll behavior only if not in list reorder - if (!this._inListReorder) - { - clearTimeout(this._tiltHoldTimeoutId); // clear any redundant timeouts - this._tiltHoldTimeoutId = null; - log.debug('Schedule autoscroll tier 1'); - this._tiltHoldTimeoutId = setTimeout(function() { // schedule first autoscroll tier - this._beep('Long', 'Multicontroller'); // produce beep - log.debug('Start autoscroll tier 1'); - this._handleMCDown(); // do the first scroll down - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals - this._tiltHoldIntervalId = null; - log.debug('Schedule autoscroll tier 2'); - this._tiltHoldIntervalId = setInterval(this._handleMCDown.bind(this), this.properties.autoscrollTier1Interval); // schedule auto scroll down for first tier - if (!this._inLetterIndexMulticontroller) - { - this._tiltHoldTimeoutId = setTimeout(function() { // schedule second autoscroll tier only if not in letter index multicontroller - log.debug('Start autoscroll tier 2'); - this._scrollDownPage(); // do the first scroll down - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals from the first tier - this._tiltHoldIntervalId = null; - this._tiltHoldIntervalId = setInterval(this._scrollDownPage.bind(this), this.properties.autoscrollTier2Interval); // schedule auto scroll down for second tier - }.bind(this), this.properties.autoscrollTier2Timeout); - } - }.bind(this), this.properties.autoscrollTier1Timeout); - } - - break; - - case "down" : - // Tilt Down Stop - - if ('downStart' === this._lastControllerEvent) - { - log.debug('Clear any scheduled autoscrolls'); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - this._tiltHoldTimeoutId = null; - this._tiltHoldIntervalId = null; - - // schedule letter index select - if (this._inLetterIndexMulticontroller) - { - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - } - - response = "consumed"; - } - else - { - // ignore any downs without downStarts - response = "ignored"; - } - - break; - - case "upStart": - // Tilt Up Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // handle event in dedicated handler - response = this._handleMCUp(); - - // schedule autoscroll behavior only if not in list reorder - if (!this._inListReorder) - { - clearTimeout(this._tiltHoldTimeoutId); // clear any redundant timeouts - this._tiltHoldTimeoutId = null; - log.debug('Schedule autoscroll tier 1'); - this._tiltHoldTimeoutId = setTimeout(function() { // schedule first autoscroll tier - this._beep('Long', 'Multicontroller'); // produce beep - log.debug('Start autoscroll tier 1'); - this._handleMCUp(); // do the first scroll up - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals - this._tiltHoldIntervalId = null; - log.debug('Schedule autoscroll tier 2'); - this._tiltHoldIntervalId = setInterval(this._handleMCUp.bind(this), this.properties.autoscrollTier1Interval); // schedule auto scroll up for first tier - if (!this._inLetterIndexMulticontroller) - { - this._tiltHoldTimeoutId = setTimeout(function() { // schedule second autoscroll tier only if not in letter index multicontroller - log.debug('Start autoscroll tier 2'); - this._scrollUpPage(); // do the first scroll up - clearInterval(this._tiltHoldIntervalId); // clear any redundand intervals from the first tier - this._tiltHoldIntervalId = null; - this._tiltHoldIntervalId = setInterval(this._scrollUpPage.bind(this), this.properties.autoscrollTier2Interval); // schedule auto scroll up for second tier - }.bind(this), this.properties.autoscrollTier2Timeout); - } - }.bind(this), this.properties.autoscrollTier1Timeout); - } - - break; - - case "up": - // Tilt Up Stop - - if ('upStart' === this._lastControllerEvent) - { - log.debug('Clear any scheduled autoscrolls'); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - this._tiltHoldTimeoutId = null; - this._tiltHoldIntervalId = null; - - // schedule letter index select - if (this._inLetterIndexMulticontroller) - { - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - } - - response = "consumed"; - } - else - { - // ignore any ups without upStarts - response = "ignored"; - } - - break; - - case "leftStart": - // Tilt Left Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - else if (this.letterIndexData.length && this._inLetterIndexMulticontroller) - { - // Exit letter index multicontroller mode - this._setLetterIndexMulticontroller(false); - } - else - { - // Return - log.debug("No TabsCtrl. Return giveFocusLeft..."); - response = "giveFocusLeft"; - } - break; - - case "left": - // Tilt Left Stop - - if ('leftStart' === this._lastControllerEvent) - { - response = "ignored"; - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - } - else - { - // ignore any lefts without leftStarts - response = "ignored"; - } - break; - - case "rightStart": - // Tilt Right Start - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - else if (this.letterIndexData.length && !this._inLetterIndexMulticontroller) - { - // Enter into letter index multicontroller mode - this._setLetterIndexMulticontroller(true); - response = "consumed"; - } - else - { - // Return - log.debug("No TabsCtrl. Return giveFocusRight..."); - response = "giveFocusRight"; - } - break; - - - case "right": - // Tilt Right Stop - - if ('rightStart' === this._lastControllerEvent) - { - response = "ignored"; - if (this.tabsCtrl) - { - // Pass bump to TabsCtrl - response = this.tabsCtrl.handleControllerEvent(eventID); - } - } - else - { - // ignore any rights without rightStarts - response = "ignored"; - } - break; - - - case "selectStart": - // SelectStart (press down) - - if (this._inLetterIndexMulticontroller) - { - // get the focussed letter index - var focussedLetterIndex = this._getFocussedLetterIndex(); - - // make focussed letter index hit - this._indexMakeHit(focussedLetterIndex); - } - else - { - // get the focussed index - var focussedIndex = this._getFocussedIndex(); - - // make focussed index hit - this._itemMakeHit(focussedIndex); - - // start longpress countdown - this._longPressTimeoutId = setTimeout(this._itemLongPress.bind(this, focussedIndex), this.properties.longPressTimeout); - } - - // always consume selectStart - response = "consumed"; - - break; - - case "select": - // Select (press down) - - if ('selectStart' === this._lastControllerEvent) - { - - // remove any hit state - this._itemRemoveHit(); - this._indexRemoveHit(); - - // remove long press - this._itemRemoveLongPress(); - clearTimeout(this._longPressTimeoutId); // clear longpress timeout - - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // fire letter index select - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - this._letterIndexSelect(currentFocussedLetterIndex, 'Multicontroller'); - } - else - { - if (this.properties.listReorder) - { - // if we are reordering lists (hence pressing down does not produce select event) - if (!this._inListReorder) - { - - // get focussed index - var focussedIndex = this._getFocussedIndex(); - - // check if focussed index is indeed eligable for list reorder - if ('shortAndLong' === this.dataList.items[focussedIndex].itemBehavior) - { - // we are about to begin list reorder - this._enterListReorder(); - } - - } - else - { - // we finish list reorder - this._releaseListReorder(); - } - - } - else - { - // if we are in normal mode - not reordering list - - // get the focussed index - var focussedIndex = this._getFocussedIndex(); - - // does the element have secondary multicontroller behavior? - if (this._hasSecondaryMulticontroller(focussedIndex) && this._isSlider(focussedIndex)) - { - if (this.dataList.items[focussedIndex].allowAdjust) - { - // this item has secondary select and is adjustable slider -> enter into secondary multicontroller mode - this._setSecondaryMulticontroller(true); - } - else - { - // this item has secondary select but is not adjustable -> trigger focus - this._triggerFocus(); - } - } - else if (this._hasSecondaryMulticontroller(focussedIndex)) - { - // this item has secondary select -> enter into secondary multicontroller mode - this._setSecondaryMulticontroller(true); - } - else - { - // this is a regular item -> trigger focus - this._triggerFocus(); - } - - } - } - - // consume Select only after selectStart is consumed - response = "consumed"; - } - else - { - // ignore any selects without selectStarts - response = "ignored"; - } - - break; - - default: - // No action - response = "ignored"; - break; - } - - } - else - { - // we are in secondary multicontroller mode - response = this._handleControllerEventSecondary(eventID); - } - - // keep track of the last consumed event - if ('consumed' === response) - { - this._lastControllerEvent = eventID; - } - - /* - * returns - * - giveFocusLeft (control retains highlight unless it later gets lostFocus event) - * - giveFocusRight - * - giveFocusUp - * - giveFocusDown - * - consumed (always returned on select event, and if control adjusted highlight) - * - ignored (returned only if control doesn't know about focus) - */ - - log.debug("Event: " + eventID + " -> " + "Response: " + response); - - return response; - -}; - -/** - * Handle multicontroller clockwise rotation event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCCW = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleLetterIndexItems - 2; - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocusLetterIndex('down'); - } - else if (this._topLetterIndex === this.letterIndexData.length - this.properties.vivisibleLetterIndexItemssibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('down'); - } - - // we need to go back to the beginning in order to scroll up - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - - // schedule letter index select - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOneIndex(); - } - } - else - { - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleItems - 2; - - // if we are in list reorder mode - push the draggable item down and set focus on it - if (this._inListReorder) - { - this._reorderItemDown(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - // we are not in list reorder mode -> do regular focus scroll - else - { - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocus('down'); - } - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocus('down'); - } - else if (rfi > bottomFocusThreshold) - { - // the focus is past the bottom focus threshold -> do not move it any more - // this._showFocus('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOne(); - } - - } - - return 'consumed'; -}; - -/** - * Handle multicontroller counter clockwise rotation event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCCCW = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus down - this._showFocusLetterIndex('up'); - } - else if (this._topLetterIndex === 0) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('up'); - } - - // we need to go back to the beginning in order to scroll up - var currentFocussedLetterIndex = this._getFocussedLetterIndex(); - - // schedule letter index select - this._scheduleLetterIndexSelect(currentFocussedLetterIndex); - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi < 1) - { - this._scrollUpOneIndex(); - } - - } - else - { - - // if we are in list reorder mode - push the draggable item down and set focus on it - if (this._inListReorder) - { - this._reorderItemUp(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - // we are not in list reorder mode -> do regular focus scroll - else - { - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus up - this._showFocus('up'); - } - else if (this._topItem === 0) - { - // we are at the beginning -> move the focus to the first item - this._showFocus('up'); - } - else if (rfi === 0) - { - // the focus is on the top item -> do not move it any more - // this._showFocus('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus is at the first item - if (rfi < 1) - { - this._scrollUpOne(); - } - - } - - return 'consumed'; -}; - -/** - * Handle multicontroller down tilt event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCDown = function() -{ - - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // define threshold that will serve as a scroll trigger - var bottomFocusThreshold = this.properties.visibleLetterIndexItems - 2; - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocusLetterIndex('down'); - } - else if (this._topLetterIndex === this.letterIndexData.length - this.properties.vivisibleLetterIndexItemssibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOneIndex(); - } - - } - else - { - if (this._inListReorder) - { - this._reorderItemDown(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - - var rfi = this._getRelativeFocussedIndex(); - } - else - { - var bottomFocusThreshold = this.properties.visibleItems - 2; - - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi <= bottomFocusThreshold) - { - // we are free to move the focus down - this._showFocus('down'); - } - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - { - // we are at the end -> move the focus to the last item - this._showFocus('down'); - } - else if (rfi > bottomFocusThreshold) - { - // the focus is past the bottom focus threshold -> do not move it any more - // this._showFocus('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - // attempt scroll if the focus has passed the threshold - if (rfi > bottomFocusThreshold) - { - this._scrollDownOne(); - } - - } - - return 'consumed'; -}; - - -/** - * Handle multicontroller up tilt event - * TAG: multicontroller-only, internal - * ========================= - * @return {string} - event consumed status - */ -List2Ctrl.prototype._handleMCUp = function() -{ - // are we in letter index multicontroller mode? - if (this._inLetterIndexMulticontroller) - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedLetterIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus down - this._showFocusLetterIndex('up'); - } - else if (this._topLetterIndex === 0) - { - // we are at the end -> move the focus to the last item - this._showFocusLetterIndex('up'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedLetterIndex(); - - // attempt scroll if the focus has passed the threshold - if (rfi < 1) - { - this._scrollUpOneIndex(); - } - - } - else - { - if (this._inListReorder) - { - // if we are in list reorder mode - push the draggable item up and set focus on it - this._reorderItemUp(); - - // set focus - this._showFocus(this._reorderCurrentIndex); - var rfi = this._getRelativeFocussedIndex(); - } - else - { - // get relative focussed index before moving the focus - var rfi = this._getRelativeFocussedIndex(); - - // attempt focus move - if (rfi >= 1) - { - // we are free to move the focus up - this._showFocus('up'); - } - else if (this._topItem === 0) - { - // we are at the beginning -> move the focus to the first item - this._showFocus('up'); - } - else if (rfi === 0) - { - // the focus is on the top item -> do not move it any more - // this._showFocus('down'); - } - - // get relative focussed index after moving the focus - rfi = this._getRelativeFocussedIndex(); - } - - // attempt scroll if the focus is at the first item - if (rfi < 1) - { - this._scrollUpOne(); - } - - } - - return 'consumed'; -}; - - -/** - * handle controller event and apply it on items that are in secondary multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {string} - multicontroller event - * @return {string} - event consumed - */ -List2Ctrl.prototype._handleControllerEventSecondary = function(eventID) -{ - // get the index - var focussedIndex = this._getFocussedIndex(); - - // handle event - switch (eventID) - { - case "up" : - // leave secondary multicontroller mode - this._setSecondaryMulticontroller(false); - if (!this._isLock(focussedIndex)) - { - // trigger focus only on non-lock items - this._triggerFocus(); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(focussedIndex, 'clear'); - } - - // move the focus up - this._showFocus('up'); - - // we need to go back to the beginning in order to scroll up - if (focussedIndex < this._topItem) - { - this._scrollUpOne(); - } - break; - - - case "down" : - // leave secondary multicontroller mode - this._setSecondaryMulticontroller(false); - if (!this._isLock(focussedIndex)) - { - // trigger focus only on non-lock items - this._triggerFocus(); - } - else - { - // remove focus from lock buttons - this._lockShowFocus(focussedIndex, 'clear'); - } - - // move the focus down - this._showFocus('down'); - - // we need to go to the end in order to scroll down - if (focussedIndex >= this._topItem + this.properties.visibleItems) - { - this._scrollDownOne(); - } - break; - - case "leftStart" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass event to slider - this._activeSlider.slider.handleControllerEvent('leftStart'); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepDown(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusLeft(focussedIndex); - } - - break; - - case "left" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent('left'); - } - break; - - case "ccw" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent(eventID); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepDown(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusLeft(focussedIndex); - } - - break; - - case "rightStart" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass event to slider - this._activeSlider.slider.handleControllerEvent('rightStart'); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepUp(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusRight(focussedIndex); - } - - break; - - case "right" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent('right'); - } - - break; - - case "cw" : - - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // pass the event down to the slider - this._activeSlider.slider.handleControllerEvent(eventID); - } - else if (this._isStep(focussedIndex)) - { - // change the value and fire selectCallback informing the app of the change - var newValue = this._stepUp(focussedIndex); - // do not fire select if value is the same - if (null != newValue) - { - this._itemSelect(focussedIndex, {value:newValue, finalAdjustment:false}); - } - } - else if (this._isLock(focussedIndex)) - { - // move the focus - this._lockMoveFocusRight(focussedIndex); - } - - break; - - case "select": - // leave secondary multicontroller mode and trigger focus - this._setSecondaryMulticontroller(false); - this._showFocus(this._lastItemWithFocus); - this._triggerFocus(); - break; - } - - // the secondary multicontroller events are always consumed - return "consumed"; -}; - -/** - * Set secondary multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {string} - multicontroller event - * @param {integer} - focussed index - * @return {void} - */ -List2Ctrl.prototype._setSecondaryMulticontroller = function(state, focussedIndex) -{ - // get focussed index - if (isNaN(focussedIndex)) - { - var focussedIndex = this._getFocussedIndex(); - } - - // do not set secondary multicontroller to true if the item is disabled - if (state && this.dataList.items[focussedIndex].disabled) - { - return; - } - - if (state) - { - // flag as we are in secondary multicontroller mode - this._inSecondaryMulticontroller = true; - - // add secondary focus class - var domItem = this._getDOMItem(focussedIndex); - if (domItem) - { - domItem.classList.add('secondaryFocus'); - } - - /** - * Fire select callback to notify apps that we are - * entering into secondary multicontroller mode. - * In most cases apps will ignore this event. - * Transition focus to subcontrols. - */ - if (this._isSlider(focussedIndex)) - { - // the target is a slider and can be adjusted -> set currently active slider - this._activeSlider = { - itemIndex : focussedIndex, // currently active slider index - slider : this._getSlider(focussedIndex) // currently active slider instance - }; - - // transition focus - this._activeSlider.slider.handleControllerEvent('acceptFocusFromTop'); - - // fire select callback for app notification - this._itemSelect(focussedIndex); - } - - /** - * Place focus highlight on the lock inline button - * if the target is a lock item - */ - if (this._isLock(focussedIndex)) - { - this._lockShowFocus(focussedIndex, 1); - } - - this._currentSecondaryMulticontrollerItem = focussedIndex; - } - else - { - this._inSecondaryMulticontroller = false; - - // remove secondary focus class - var domItem = this._getDOMItem(focussedIndex); - if (domItem) - { - domItem.classList.remove('secondaryFocus'); - } - - /** - * Transition focus from subcontrols. - */ - if (this._isSlider(focussedIndex) && this._activeSlider) - { - // transition focus - this._activeSlider.slider.handleControllerEvent('lostFocus'); - } - - this._currentSecondaryMulticontrollerItem = null; - } - -}; - -/** - * Set letter index multicontroller mode - * TAG: multicontroller-only, internal - * ========================= - * @param {boolean} - * @return {void} - */ -List2Ctrl.prototype._setLetterIndexMulticontroller = function(state, isTouch) -{ - if (state) - { - // hide focus from the main list and show it in the letter index - this._hideFocus(); - this._showFocusLetterIndex(this._getCurrentLetterIndex()); - this._inLetterIndexMulticontroller = true; - } - else - { - // hide focus from the letter index and show it in the main list - if (!isTouch) - { - this._showFocus(this._lastItemWithFocus); - } - this._inLetterIndexMulticontroller = false; - this._hideFocusLetterIndex(); - - // clear any scheduled letter index select - this._scheduleLetterIndexSelect(null, true); - } - -}; - -/** - * Manage focus highlight - * This is the single point for managing focus when requested from outside List2. - * (focusedItem setter, restoreContext) Manages reorder and focus as required. - * TAG: internal - * ========================= - * @param {number} - item index - * @return {integer} - the new focussed index - */ -List2Ctrl.prototype._manageFocus = function(item) -{ - if (this._inListReorder && !isNaN(item)) - { - this._reorderToIndex(item); - } - return this._showFocus(item); -} - -/** - * Show focus highlight - * This is the single point for showing the - * focus highlight - * TAG: internal - * ========================= - * @param {strig | number} - direction (up|down) or item index - * @param {boolean} - simulation mode: use to perform check on where the focus will end - * @return {integer} - the new focussed index - */ -List2Ctrl.prototype._showFocus = function(item, allowOffscreen, simulationMode, abortMode) -{ - log.debug("List2: _showFocus item, allowOffscreen, simulationMode, abortMode ", item, allowOffscreen, simulationMode, abortMode); - if (!this._hasFocus) - { - return; - } - - if (this._inputMode != 'controller') - { - // do not show the focus if the input mode is other than 'controller' - return; - } - - // exit if we don't have any items (nothing to show the focus) - if (!this.hasDataList()) - { - return; - } - - // do not show focus when in list reorder by touch - if (this._reorderTouchElt) - { - return; - } - - var abortMode = (true === abortMode); - - // do not change focussed index when we are in loading and no scrolling is allowed during that time - if (!this.properties.scrollingDuringLoading && this._inLoading && !abortMode) - { - return; - } - - var simulationMode = (true === simulationMode); - - // get the last focussed index (real and relative) - var lastFocussedIndex = this._getFocussedIndex(); - var lastRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // if we don't have previous focus, select the topmost - if (lastFocussedIndex == null) - { - lastFocussedIndex = this._topItem; - } - - // hide the focus only in real mode - if (!simulationMode) - { - this._hideFocus(); - } - - - var nextFocussedIndex = -1; - var useTransition = true; - var useRelativeIndeces = true; - - // find the next focussed element index - // NOTE: 'down' and 'up' are ued primarily when focussing with multicontroller - switch (item) - { - case 'down' : - // 'down' uses relative positioning - // the next one but not exceeding the visible items - - if (!simulationMode) - { - var nextRealFocussedIndex = this.m.min(lastFocussedIndex+1, this.dataList.itemCount-1); - while(this.dataList.items[nextRealFocussedIndex].disabled) - { - if (nextRealFocussedIndex >= this.dataList.itemCount-1) { - // we have reached the end of the list and nothing is found -> exit with current index - nextRealFocussedIndex = lastFocussedIndex; - break; - } - // hmmm, not enabled -> try the next one - nextRealFocussedIndex++; - } - // convert it to relative index - nextFocussedIndex = this._realToRelativeIndex(nextRealFocussedIndex); - } - else - { - nextFocussedIndex = this.m.min(lastRelativeFocussedIndex+1, this.properties.visibleItems-1); - } - break; - - case 'up' : - // 'up' uses relative positioning - // the previous one but not lower than the first one - if (!simulationMode) - { - var nextRealFocussedIndex = this.m.max(lastFocussedIndex-1, 0); - while(this.dataList.items[nextRealFocussedIndex].disabled) - { - if (nextRealFocussedIndex <= 0) { - // we have reached the beginning of the list and nothing is found -> exit with current index - nextRealFocussedIndex = lastFocussedIndex; - break; - } - // hmmm, not enabled -> try the previous one - nextRealFocussedIndex--; - } - // convert it to relative index - nextFocussedIndex = this._realToRelativeIndex(nextRealFocussedIndex); - } - else - { - nextFocussedIndex = this.m.max(lastRelativeFocussedIndex-1, 0); - } - break; - - default : - // move highlight instantly when jumping to an item - useTransition = false; - // absolute indeces use real positioning - useRelativeIndeces = false; - - if (!isNaN(item)) - { - // specific one -> make sure it is within the list bounds - nextFocussedIndex = this.m.max(this.m.min(item, this.dataList.itemCount-1), 0); - } - else - { - // the top one - nextFocussedIndex = this._topItem; - } - } - - // if we are in simulation -> return the would-be focussed index - if (simulationMode) - { - return nextFocussedIndex; - } - - // From here on, perform actual focus change - // ----------------------------------------- - var pos = 0; - if (useRelativeIndeces) - { - // convert relative nextFocussedIndex to position - pos = nextFocussedIndex * this.properties.itemHeight; - // convert nextFocussedIndex back to real one - nextFocussedIndex = this._relativeToRealIndex(nextFocussedIndex); - } - else - { - // are we allowed to focus off screen? - if (!allowOffscreen) - { - // check if focus is outside the screen and scroll the list so that it is inside - if (this._realToRelativeIndex(nextFocussedIndex) < 0) - { - // scrollt up - this._scrollTo(nextFocussedIndex, 0); - } - else if (this._realToRelativeIndex(nextFocussedIndex) > this.properties.visibleItems - 2) - { - // scroll down - this._scrollTo((nextFocussedIndex + 2) - this.properties.visibleItems, 0); - } - } - - // convert absolute nextFocussedIndex to position - pos = (nextFocussedIndex - this._topItem) * this.properties.itemHeight; - } - - - - - // find the new focussed element - var focussedElement = this._getDOMItem(nextFocussedIndex); - - - // do we have a focussed element? - if (focussedElement) - { - focussedElement.classList.add('focus'); - - // create first focus animation - if (this._showFocusAnimation) - { - this._showFocusAnimation = false; - this.firstFocusAnimationEndCallback = this._firstFocusAnimationEndCallback.bind(this); - focussedElement.addEventListener("animationend", this.firstFocusAnimationEndCallback, false); - focussedElement.classList.add('firstFocus'); - } - } - - // set letter index position - this._setLetterIndexPosition(nextFocussedIndex); - - // store focussed item - this._lastItemWithFocus = nextFocussedIndex; - - return nextFocussedIndex; -}; - -/** - * First focus animation end callback that is fired - * when the first focus animation finishes. - * It removes the firstFocus class from the event's target - * and clears any subsequent animation callbacks - * TAG: internal - * ========================= - * @param {AnimationEvent} - * @return {void} - */ -List2Ctrl.prototype._firstFocusAnimationEndCallback = function(e) -{ - e.target.classList.remove('firstFocus'); - e.target.removeEventListener("animationend", this.firstFocusAnimationEndCallback, false); - this.firstFocusAnimationEndCallback = null; -}; - -/** - * Hide focus highlight - * This is the single point for hiding the - * focus highlight - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._hideFocus = function() -{ - // Preserve focussed element - this._lastItemWithFocus = this._getFocussedIndex(); - - for (var i=0; i disable select only if the slider is adjustable - if (this.dataList.items[focussedIndex].allowAdjust) - { - fireSelect = false; - } - - // reset currently active slider - this._activeSlider = null; - } - - if (this._isStep(focussedIndex)) - { - params = { - value : this.dataList.items[focussedIndex].value, - finalAdjustment : true, - }; - } - - /** - * Trigger the currently selected button - */ - if (this._isLock(focussedIndex)) - { - var focussedButton = this._lockGetFocus(focussedIndex); - var actionResult = this._lockActivate(focussedIndex, focussedButton); - this._lockShowFocus(focussedIndex, 'clear'); - params = { additionalData : actionResult }; - } - - // prevent select on disabled items - if (this.dataList.items[focussedIndex].disabled) - { - fireSelect = false; - } - - // everything looks ok -> call internal _itemSelect() method if the item permits it - if (fireSelect) - { - // fire select only if no long press / hold start has been issued - if (!this._longPressIssued) - { - // produce beep - this._beep('Short', 'Multicontroller'); - - this._itemSelect(focussedIndex, params); - } - // otherwise fire holdStop Callback on shortAndHold items - else if ('shortAndHold' === this.dataList.items[focussedIndex].itemBehavior) - { - this._itemHoldStop(focussedIndex); - } - } - - // lower long-press/hold-start flag - this._longPressIssued = false; - - } -}; - -/** - * Check whether the list can gain focus. In certain cases focus cannot be - * shown (e.g. when there are no items available) or if it can gain it - * it should be restored on the nearest available item if the one that - * previously had focus is disabled. - * TAG: internal - * ========================= - * @param {MouseEvent|Number} - optional argument. If passed a check will be performed whether the target item is disabled - * @return {integer} - the item that will have focus. If no item can have focus, return -1 - */ -List2Ctrl.prototype._canGainFocus = function(e) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return -1; - } - - var itemToGainFocus = -1; - - // check if we are touching the element - if (typeof e === 'object') - { - var targetItem = this._getTargetItem(e); - - // the item is enabled and can gain focus - if (-1 !== targetItem && !this.dataList.items[targetItem].disabled) - { - itemToGainFocus = targetItem; - } - // the item is disabled -> find the closest enabled to it - else - { - var nearestItem = this._getNearestEnabledItem(targetItem); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - } - } - else if (typeof e === 'number') - { - if (-1 !== e && !this.dataList.items[e].disabled) - { - itemToGainFocus = e; - } - // the item is disabled -> find the closest enabled to it - else - { - var nearestItem = this._getNearestEnabledItem(e); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - } - } - // check whether this is called from the controllerActive event handler - else if ('controllerActive' === e && this.properties.focussedItem > 0 && this.dataList.items[this.properties.focussedItem] && !this.dataList.items[this.properties.focussedItem].disabled) - { - itemToGainFocus = this.properties.focussedItem; - } - // check if last item with focus is disabled - else if (this.dataList.items[this._lastItemWithFocus] && !this.dataList.items[this._lastItemWithFocus].disabled) - { - itemToGainFocus = this._lastItemWithFocus; - } - else - { - // show focus on the closest available item to the last with focus - var nearestItem = this._getNearestEnabledItem(this._lastItemWithFocus); - itemToGainFocus = (null != nearestItem) ? nearestItem : -1; - - // if we have tabs and no enabled items, always show focus on the first line allowing tabs navigation - if (this.tabsCtrl && -1 === itemToGainFocus) - { - itemToGainFocus = this._topItem; - } - } - - return itemToGainFocus; -}; - -/** - * Get focussed index - * TAG: internal, helper - * ========================= - * @return {integer} - */ -List2Ctrl.prototype._getFocussedIndex = function() -{ - var focussedIndex = this._lastItemWithFocus; - - for (var i=0; i - */ -List2Ctrl.prototype._getFocussedElement = function() -{ - var focussedElement = null; - var focussedIndex = this._getFocussedIndex(); - for (var i=0; i= this.dataList.itemCount) - { - currentItem = null; - } - else - { - while (this.dataList.items[currentItem].disabled) - { - if (currentItem >= this.dataList.itemCount-1 || currentItem <= 0) - { - // this is the end/beginning of the array -> nothing is found so return Null - currentItem = null; - break; - } - currentItem = ('down' === direction) ? currentItem+1 : currentItem-1; - } - } - return currentItem; -}; - -/** - * Get nearest enabled item in all directions - * If there are two enabled items in both directions that are - * at equal distances from the reference item, the one below is - * returned. - * TAG: internal, helper - * ========================= - * @param {integer} - from which item to search - * @return {integer} - the next enabled item. - * If nothing is found, return Null - */ -List2Ctrl.prototype._getNearestEnabledItem = function(fromItem) -{ - var nearestEnabledItem = null; - - var nearestDown = this._getNearestEnabledItemByDirection(fromItem, 'down'); - var nearestUp = this._getNearestEnabledItemByDirection(fromItem, 'up'); - - if (null === nearestDown === nearestUp) - { - // no enabled item is found - nearestEnabledItem = null; - } - else if (null === nearestDown) - { - // nothing is found below -> return the one above - nearestEnabledItem = nearestUp; - } - else if (null === nearestUp) - { - // nothing is found above -> return the one below - nearestEnabledItem = nearestDown; - } - else - { - var differenceDown = this.m.abs(fromItem - nearestDown); - var differenceUp = this.m.abs(fromItem - nearestUp); - if (differenceDown === differenceUp) - { - // equally spaced -> return the one below - nearestEnabledItem = nearestDown; - } - else - { - // differently spaced -> return the closer one - nearestEnabledItem = (differenceDown < differenceUp) ? nearestDown : nearestUp; - } - } - - return nearestEnabledItem; -}; - -/** - * Get secondary select status of an item - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {boolean} - whether the item has secondary multicontroller - */ -List2Ctrl.prototype._hasSecondaryMulticontroller = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var hasSecondaryMulticontroller = false; - - var type = this.dataList.items[itemIndex].itemStyle; - for (var i=0; i return current position - newPos = this.scroller.offsetTop; - } - else - { - var bi = this._getNearestEnabledItemByDirection(this._topItem+this.properties.visibleItems-2, 'down'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopItem = bi + 2 - this.properties.visibleItems; - newPos = -newTopItem * this.properties.itemHeight; - newPos = this.m.max(newPos, this._maxScrollY); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - } - else - { - newPos = this.scroller.offsetTop; - } - } - - // set scroll nature - this._scrollNature = 'item'; - - // return the new position - return newPos; -}; - -/** - * Scroll up by one element - * If the element that will be placed at the top - * position is disabled, the list will be scrolled to - * the nearest available enabled item - * TAG: internal - * ========================= - * @return {integer} - new position of the scroller in px - */ -List2Ctrl.prototype._scrollUpOne = function() -{ - var newPos = 0; - - // check whether we are in the top-most position - if (this._topItem === 0) - { - // we can't scroll up any more -> return current position - newPos = this.scroller.offsetTop; - } - else - { - var bi = this._getNearestEnabledItemByDirection(this._topItem+1, 'up'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopItem = bi - 1; - newPos = -newTopItem * this.properties.itemHeight; - newPos = this.m.min(newPos, 0); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - } - else - { - newPos = this.scroller.offsetTop; - } - } - - // set scroll nature - this._scrollNature = 'item'; - - // return the new position - return newPos; -}; - -/** - * Scroll down by one page (screen) - * TAG: internal - * ========================= - * @return {string} - paged | atlimit | onepage - */ -List2Ctrl.prototype._scrollDownPage = function() -{ - // get list position - var listPosition = this._getListPosition(); - - // set return status - var returnStatus = 'onepage'; - - // determine behavior by the list position - switch (listPosition) - { - // we have only one page - case 'onepage' : - returnStatus = 'onePage'; - break; - - // we are ate the bottom - case 'bottom' : - // place focus on the last available item - var nei = this._getNearestEnabledItemByDirection(this._topItem + this.properties.visibleItems, 'up'); - if (null != nei && nei >= this._topItem) - { - this._showFocus(nei); - } - - // set return status - returnStatus = 'atLimit'; - break; - - // we are close to the bottom - case 'bottomclose' : - // search for enabled item in the bottom screen - var nei = this._getNearestEnabledItemByDirection(this.dataList.itemCount - 1, 'up'); - if (null != nei && nei >= this.dataList.itemCount - this.properties.visibleItems) - { - // place focus on the last available item and scroll to the bottom - this._showFocus(nei); - this._scrollTo(this.dataList.itemCount - this.properties.visibleItems); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // set return status - returnStatus = 'atLimit'; - } - break; - - // we are somewhere else - default : - // get current relative focussed index - var currentRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // get future absolute focussed index - var futureAbsoluteFocussedIndex = this.m.min(this._topItem + this.properties.visibleItems + currentRelativeFocussedIndex, this.dataList.itemCount-1); - - // check whether the future absolute focussed index is enabled - if (!this.dataList.items[futureAbsoluteFocussedIndex].disabled) - { - // item is enabled -> we can page down - var newPos = -(this._topItem + this.properties.visibleItems) * this.properties.itemHeight; // calculate new position - newPos = this.m.max(newPos, this._maxScrollY); // constrain it to the max scroll - this._performScroll(newPos); // do the scroll - - // place the focus on the future absolute focussed index - this._showFocus(futureAbsoluteFocussedIndex); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // item is disabled -> search for nearest enabled item from the future top item down - var nei = this._getNearestEnabledItemByDirection(this._topItem + this.properties.visibleItems, 'down'); - if (null != nei) - { - // we have found such item -> scroll down so it is in the same relative position - this._scrollTo(nei - currentRelativeFocussedIndex); - - // place the focus on the enabled item - this._showFocus(nei); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // no more enabled items -> set return status and do nothing - returnStatus = 'atLimit'; - } - } - break; - - } - - return returnStatus; -}; - -/** - * Scroll up by one page (screen) - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollUpPage = function() -{ - - // get list position - var listPosition = this._getListPosition(); - - // set return status - var returnStatus = ''; - - // determine behavior by the list position - switch (listPosition) - { - // we have only one page - case 'onepage' : - returnStatus = 'onePage'; - break; - - // we are ate the top - case 'top' : - // place focus on the first available item - var nei = this._getNearestEnabledItemByDirection(-1, 'down'); - if (null != nei && nei <= this.properties.visibleItems-1) - { - this._showFocus(nei); - } - - // set return status - returnStatus = 'atLimit'; - break; - - // we are close to the top - case 'topclose' : - // search for enabled item in the top screen - var nei = this._getNearestEnabledItemByDirection(0, 'down'); - if (null != nei && nei <= this.properties.visibleItems-1) - { - // place focus on the last available item and scroll to the top - this._showFocus(nei); - this._scrollTo(0); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // set return status - returnStatus = 'atLimit'; - } - break; - - // we are somewhere else - default : - // get current relative focussed index - var currentRelativeFocussedIndex = this._getRelativeFocussedIndex(); - - // get future absolute focussed index - var futureAbsoluteFocussedIndex = this.m.max(this._topItem - this.properties.visibleItems + currentRelativeFocussedIndex, 0); - - // check whether the future absolute focussed index is enabled - if (!this.dataList.items[futureAbsoluteFocussedIndex].disabled) - { - // item is enabled -> we can page down - var newPos = -(this._topItem - this.properties.visibleItems) * this.properties.itemHeight; // calculate new position - newPos = this.m.min(newPos, 0); // constrain it to the min scroll - this._performScroll(newPos); // do the scroll - - // place the focus on the future absolute focussed index - this._showFocus(futureAbsoluteFocussedIndex); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // item is disabled -> search for nearest enabled item from the future bottom item up - var nei = this._getNearestEnabledItemByDirection(this._topItem - this.properties.visibleItems, 'up'); - if (null != nei) - { - // we have found such item -> scroll down so it is in the same relative position - this._scrollTo(nei - currentRelativeFocussedIndex); - - // place the focus on the enabled item - this._showFocus(nei); - - // set scroll nature - this._scrollNature = 'page'; - - // set return status - returnStatus = 'paged'; - } - else - { - // no more enabled items -> set return status and do nothing - returnStatus = 'atlimit'; - } - } - break; - - } - - return returnStatus; -}; - -/** - * Scroll to the top - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollTop = function() -{ - this._performScroll(0); // do the scroll -}; - -/** - * Scroll to the bottom - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollBottom = function() -{ - this._performScroll(this._maxScrollY); // do the scroll -}; - -/** - * Do the actual scroll - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @param {duration} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._performScroll = function(pos, duration) -{ - - // if scrolling during loading is not allowed - if (!this.properties.scrollingDuringLoading && this._inLoading) - { - return; - } - - // if menu can be scrolled (it has enough list items) - if (this._isScrollable) - { - // make it snappy - var newPos = this._getSnapPosition(pos); - - // start animation - this._animateScroll(pos, duration); - } -}; - -/** - * Animate the scroll - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @param {duration} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._animateScroll = function(pos, time) -{ - if (time == undefined || time == null) - { - time = this.properties.swipeAnimationDuration; - } - - if (null !== this.scrollerAnimationEndCallback) - { - // remove any redundant animationEnd listeners - this.scroller.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - this.scrollerAnimationEndCallback = null; - } - - // animate scroller or directly call the animation end callback if the time is 0 - this.scroller.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.scrollerAnimationEndCallback = this._scrollerAnimationEnd.bind(this); - this.scroller.addEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - this.scroller.style.top = pos + 'px'; - - this._inScroll = false; - if (time > 0) - { - this._inScroll = true; - } - - // set top item and update display - this._updateScrollIndicator(pos, time); - this._setTopListItem(pos); - this._updateRange(); -}; - -/** - * Abort any ongoing scroll and reset any flags - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._abortScroll = function(e) -{ - // aborting scroll is possible only while the list is scrolling - if (false === this._inScroll) - { - return; - } - - // get target item - var targetItem = this._getTargetItem(e); - - // check if target item is enabled - if (this.dataList.items[targetItem] && !this.dataList.items[targetItem].disabled) - { - // show focus there - this._showFocus(targetItem, true, false, true); - } - else - { - // restore focus - this._restoreFocus(); - } - - // get current snapped position - var snapPos = this._getSnapPosition(this.scroller.offsetTop); - this._animateScroll(snapPos, 0); - - // reset any touch flags - this._inDrag = false; - this._inScroll = false; - this._scrollNature = null; - this._inHorizontalDrag = null; - this._hDragItem = null; - this._stopSelect = false; - this._startTime = 0; - this._startItem = null; - this._startDOMItem = null; - this._activeSlider = null; - this._startY = 0; - this._startX = 0; -}; - - -/** 2. LIST SNAPPING **/ - -/** - * Get snap position depending on the new scroller position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {integer} - position snapped to the nearest item edge - */ -List2Ctrl.prototype._getSnapPosition = function(pos) -{ - return this.properties.itemHeight * (Math.round(pos / this.properties.itemHeight)); -}; - -/** - * Get snap (above) position depending on the new scroller position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {integer} - position snapped to the nearest above item edge - */ -List2Ctrl.prototype._getSnapPositionAbove = function(pos) -{ - return this.properties.itemHeight * (Math.floor(pos / this.properties.itemHeight)); -}; - -/** - * Scroll list to an even snap position - * TAG: internal - * ========================= - * @param {integer} - new position of the scroller in px. - * @return {void} - */ -List2Ctrl.prototype._snap = function(pos) -{ - // the snap position is the same as the current - if (pos == this._y) - { - return; - } - - // the user has reached the end of the list and there will be no animation - if (pos == this._maxScrollY) - { - // set top item and bring focus on the screen - this._setTopListItem(pos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex < this._topItem) - { - this._restoreFocus(); - } - return; - } - else if (pos === this._minScrollY) - { - // set top item and bring focus on the screen - this._setTopListItem(pos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex > this._topItem + this.properties.visibleItems - 1) - { - this._restoreFocus(); - } - return; - } - - var snapPos = this._getSnapPosition(pos); - - // start animation - this._animateScroll(snapPos); -}; - -/** 3. LIST SWIPING AND PHYSICS **/ - -/** - * Perform swipe based on physics definition - * TAG: touch-only, internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._startSwipe = function(distance, time) -{ - // physics calculations - var momentumY = this._momentum(distance, time, -this._y, this._maxScrollY < 0 ? this._scrollerH - this._maskH + this._y - this._minScrollY : 0, 0); - - /* ANIMATE THE SCROLLER */ - var newPos = this.m.min(this.m.max(this._y + momentumY.dist, this._maxScrollY), 0); - var swipeDuration = momentumY.time; - - // make it snappy - newPos = this._getSnapPosition(newPos); - - // start animation - if (!isNaN(newPos) && newPos !== this.scroller.offsetTop) // only if newPos is a number and the list is worth scrolling - { - this._animateScroll(newPos, swipeDuration); - } - else - { - // set top item and bring focus on the screen - this._setTopListItem(newPos); - var focussedIndex = this._getFocussedIndex(); - if (focussedIndex < this._topItem) - { - this._restoreFocus(); - } - } -}; - -/** - * Perform swipe based on physics definition - * TAG: touch-only, internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._startSwipeIndex = function(distance, time) -{ - // physics calculations - var momentumY = this._momentum(distance, time, -this._yIndex, this._maxScrollYIndex < 0 ? this._scrollerHIndex - this._maskH + this._yIndex - this._minScrollYIndex : 0, 0); - - /* ANIMATE THE LETTER INDEX SCROLLER */ - var newPos = this.m.min(this.m.max(this._yIndex + momentumY.dist, this._maxScrollYIndex), 0); - var swipeDuration = momentumY.time; - - // make it snappy - newPos = this._getIndexSnapPosition(newPos); - - // start animation - if (!isNaN(newPos) && newPos !== this.letterIndex.offsetTop) // only if newPos is a number and the letter index is worth scrolling - { - // start animation - this._animateLetterIndex(newPos, swipeDuration); - } - else - { - // set top letter index and bring focus on the screen - this._setTopLetterIndex(newPos); - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (focussedLetterIndex < this._topLetterIndex) - { - this._showFocusLetterIndex(this._topLetterIndex); - } - } -}; - -/** - * @param {integer} - dragged distance - * @param {time} - time dragged - * @param {integer} - this._y - * @param {integer} - this._maxScrollY < 0 ? this._scrollerH - this._maskH + this._y - this._minScrollY : 0 - * @param {integer} - 0 - */ -List2Ctrl.prototype._momentum = function (dist, time, maxDistUpper, maxDistLower, size) -{ - var deceleration = this.properties.deceleration, - speed = this.m.abs(dist) / time, - newDist = (speed * speed) / (2 * deceleration), - newTime = 0, outsideDist = 0; - - // Proportinally reduce speed if we are outside of the boundaries - if (dist > 0 && newDist > maxDistUpper) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistUpper = maxDistUpper + outsideDist; - speed = speed * maxDistUpper / newDist; - newDist = maxDistUpper; - } else if (dist < 0 && newDist > maxDistLower) { - outsideDist = size / (6 / (newDist / speed * deceleration)); - maxDistLower = maxDistLower + outsideDist; - speed = speed * maxDistLower / newDist; - newDist = maxDistLower; - } - - newDist = newDist * (dist < 0 ? -1 : 1); - newTime = speed / deceleration; - - return { dist: newDist, time: Math.round(newTime) }; -}; - - -/** - * ========================= - * LETTER INDEX - * ========================= - */ - -/** - * Letter index select - * scrolls list to letter index - * TAG: internal - * ========================= - * @param {integer} - the new position of the scroller in element index. - * @return {void} - */ -List2Ctrl.prototype._letterIndexSelect = function(letterIndex, eventCause) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - - // check if if letterIndex is a valid index - if (letterIndex < 0 || letterIndex >= this.letterIndexData.length) - { - return; - } - - // check for disabled letter index (no valid item index) - if (this.letterIndexData[letterIndex].disabled) - { - return; - } - - // set scroll nature - this._scrollNature = 'letterIndex'; - - // all seems fine -> scroll - this._scrollTo(this.letterIndexData[letterIndex].itemIndex - 1); - - // set letter index active position - this._setLetterIndexPosition(this.letterIndexData[letterIndex].itemIndex); - - // update last item with focus so that focus gets restored in the correct place - this._lastItemWithFocus = this.letterIndexData[letterIndex].itemIndex; - - // set proper event cause - var eventCause = ('Multicontroller' != eventCause && 'Touch' != eventCause) ? null : eventCause; - // produce beep - this._beep('Short', eventCause); - - // dispatch letter select event - var eventData = { - index : letterIndex, - label : this.letterIndexData[letterIndex].label, - itemIndex : this.letterIndexData[letterIndex].itemIndex, - }; - this._listEvent(this._EVENTS.LETTER_SELECT, eventData); -}; - -/** - * Schedule letter index select after some time - * TAG: internal - * ========================= - * @param {integer} - the letter index - * @param {boolean} - clear any timeouts without scheduling a new one - * @return {void} - */ -List2Ctrl.prototype._scheduleLetterIndexSelect = function(letterIndex, clear) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - - // clear previous timeout - clearTimeout(this._indexSelectTimeoutId); - this._indexSelectTimeoutId = null; - - if (!clear) - { - // if no letter index is passed, get the currently focussed one - if (undefined === letterIndex) - { - // check whether we already have focussed letter index - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (null != focussedLetterIndex) - { - // if yes, schedule to that one - letterIndex = focussedLetterIndex; - } - } - - // set scroll timeout - this._indexSelectTimeoutId = setTimeout(function() { - this._letterIndexSelect(letterIndex); - }.bind(this), this.properties.letterIndexSelectTimeout); - } -}; - -/** - * Schedule background letter index select after some time. - * Background select occurs without affecting the letter index - * scroll position. This is intended to be used only programatically. - * TAG: internal - * ========================= - * @param {integer} - the letter index - * @param {boolean} - clear any timeouts without scheduling a new one - * @return {void} - */ -List2Ctrl.prototype._scheduleBackgroundLetterIndexSelect = function(letterIndex, clear) -{ - // check for letter index and letter index data - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return; - } - // check for a valid letter index item - if (letterIndex < 0 || letterIndex >= this.letterIndexData.length) - { - log.warn('List2: a valid letter index expected. Letter index passed": ' + letterIndex); - return; - } - // check for disabled letter index (no valid item index) - if (this.letterIndexData[letterIndex].disabled) - { - return; - } - // clear previous timeout - clearTimeout(this._indexSelectTimeoutId); - this._indexSelectTimeoutId = null; - if (!clear) - { - // activate the new index - this._setCurrentLetterIndex(letterIndex); - // set scroll timeout - this._indexSelectTimeoutId = setTimeout(function() { - // set scroll nature - this._scrollNature = 'letterIndex'; - // all seems fine -> scroll - this._scrollTo(this.letterIndexData[letterIndex].itemIndex - 1); - }.bind(this), this.properties.letterIndexSelectTimeout); - } -}; -/** - * Animate the letter index - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @param {integer} - duration of the scrolling animation - * @return {void} - */ -List2Ctrl.prototype._animateLetterIndex = function(pos, time) -{ - if (time == undefined || time == null) - { - time = this.properties.swipeAnimationDuration; - } - - // animate letter index - this.letterIndex.style[this._VENDOR + 'TransitionDuration'] = time + 'ms'; - this.letterIndexAnimationEndCallback = this._letterIndexAnimationEnd.bind(this); - this.letterIndex.addEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - this.letterIndex.style.top = pos + 'px'; - - // set top letter index - this._setTopLetterIndex(pos); -}; - -/** - * Set top letter index item depending on the position - * TAG: internal - * ========================= - * @param {integer} - position in px at which the letter should be - * @return {void} - */ -List2Ctrl.prototype._setTopLetterIndex = function(pos) -{ - // pos should be number for proper topLetterIndex calculation - if (!isNaN(pos)) - { - this._prevTopLetterIndex = this._topLetterIndex; - this._topLetterIndex = -(Math.round(pos / this.properties.letterIndexHeight)); - } -}; - -/** - * Get snap position of letter index - * depending on the new letter index position - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @return {integer} - position snapped to the nearest item edge - */ -List2Ctrl.prototype._getIndexSnapPosition = function(pos) -{ - return this.properties.letterIndexHeight * (Math.round(pos / this.properties.letterIndexHeight)); -}; - -/** - * Scroll letter index to an even snap position - * TAG: internal - * ========================= - * @param {integer} - new position of the letter index in px. - * @return {void} - */ -List2Ctrl.prototype._snapIndex = function(pos) -{ - // the snap position is the same as the current - if (pos == this._yIndex) - { - return; - } - - // the user has reached the end of the list and there will be no animation - if (pos == this._maxScrollYIndex) - { - // set top item and bring focus on the screen - this._setTopLetterIndex(pos); - var focussedIndex = this._getFocussedLetterIndex(); - if (focussedIndex < this._topLetterIndex) - { - this._restoreLetterIndexFocus(); - } - return; - } - - var snapPos = this._getIndexSnapPosition(pos); - - // start animation - this._animateLetterIndex(snapPos); -}; - -/** - * Scroll to a specific index item - * TAG: internal - * ========================= - * @param {integer | string} - letter or letter index - * @return {void} - */ -List2Ctrl.prototype._scrollToIndex = function(letter) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return false; - } - - var targetIndex = -1; - - if (!isNaN(letter)) - { - // we are going to a letter index - targetIndex = this.m.max(this.m.min(letter, this.letterIndexData.length-1), 0); // constrain the index - } - else if (typeof letter === 'string'); - { - // we are searching for the letter index of the letter - for (var i=0, l=this.letterIndexData.length; i above or below the visible range - // NOTE: if the letter is within the visible range this should not get called at all - if (-1 != targetIndex && targetIndex >= this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - // look below -> find closest target index so that the focus is visible and apply target index correction - targetIndex = targetIndex - this.properties.visibleLetterIndexItems + 1; - } - else if (-1 != targetIndex && targetIndex <= this._topLetterIndex) - { - // look above -> find closest target index so that the focus is visible - // correction: the taget index is the top item whereas the item in question is the second one - targetIndex--; - } - else - { - // we don't scroll if the target is visible - return; - } - - // do the scroll - var newPos = -(targetIndex) * this.properties.letterIndexHeight; // calculate new position - newPos = this.m.max(this.m.min(newPos, this._minScrollYIndex), this._maxScrollYIndex); // constrain it to scroll bounds - this._animateLetterIndex(newPos); // start animation - - -}; - -/** - * Scroll down by one or more index elements - * TAG: internal - * ========================= - * @return {integer} - new position of the letter index in px - */ -List2Ctrl.prototype._scrollDownOneIndex = function() -{ - var newPos = 0; - - // check whether we are in the bottom-most position - if (this._topLetterIndex === this.letterIndexData.length - this.properties.visibleLetterIndexItems) - { - // we can't scroll down any more -> return current position - newPos = this.letterIndex.offsetTop; - } - else - { - var bi = this._getNearestEnabledLetterByDirection(this._topLetterIndex+this.properties.visibleLetterIndexItems-2, 'down'); - // do not scroll if no enabled letters are found - if (null != bi) - { - var newTopLetter = bi + 2 - this.properties.visibleLetterIndexItems; - newPos = -newTopLetter * this.properties.letterIndexHeight; - newPos = this.m.max(newPos, this._maxScrollYIndex); // constrain it to the max scroll - this._animateLetterIndex(newPos); // do the scroll - } - else - { - newPos = this.letterIndex.offsetTop; - } - } - - // return the new position - return newPos; -}; - -/** - * Scroll up by one or more index elements - * TAG: internal - * ========================= - * @return {integer} - new position of the letter index in px - */ -List2Ctrl.prototype._scrollUpOneIndex = function() -{ - var newPos = 0; - - // check whether we are in the top-most position - if (this._topLetterIndex === 0) - { - // we can't scroll up any more -> return current position - newPos = this.letterIndex.offsetTop; - } - else - { - var bi = this._getNearestEnabledLetterByDirection(this._topLetterIndex+1, 'up'); - // do not scroll if no enabled items are found - if (null != bi) - { - var newTopLetter = bi - 1; - newPos = -newTopLetter * this.properties.letterIndexHeight; - newPos = this.m.min(newPos, this._minScrollYIndex); // constrain it to the min scroll - this._animateLetterIndex(newPos); // do the scroll - } - else - { - newPos = this.letterIndex.offsetTop; - } - } - - // return the new position - return newPos; -}; - -/** - * Set letter index position relative to the - * focussed item in the scroller - * TAG: internal - * ========================= - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype._setLetterIndexPosition = function(index) -{ - // check for letter index - if (!this.properties.hasLetterIndex || !this.letterIndexData.length) - { - return false; - } - - // get focussed item - var focussedIndex; - if (!isNaN(index)) - { - focussedIndex = index; - } - else - { - focussedIndex = this._getFocussedIndex(); - } - - // get the new index - var targetIndex = -1; - for (var i=this._letterIndexDataSorted.length-1; i>=0; i--) - { - if (focussedIndex >= this._letterIndexDataSorted[i].itemIndex) - { - targetIndex = this._letterIndexDataSorted[i].publicIndex; - break; - } - } - - // show focus on target index - if (targetIndex > -1) - { - this._setCurrentLetterIndex(targetIndex); - } - - // check if letter index scrolling is needed - if (targetIndex >= this._topLetterIndex && targetIndex < this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - return; - } - - // scroll to target index - if (targetIndex > -1) - { - this._scrollToIndex(targetIndex); - } -}; - -/** - * Set currently active letter index - * TAG: internal - * ========================= - * @param {integer} - letter item index - * @return {integer} - the currently active letter index - */ -List2Ctrl.prototype._setCurrentLetterIndex = function(letter) -{ - // check for letter index - if (!this.properties.hasLetterIndex) - { - return null; - } - - var targetIndex = this.m.max(this.m.min(letter, this.letterIndexData.length-1), 0); // constrain the index - - - // remove any previously active letter index - for (var i=0, l=this.letterIndexData.length; i= this.letterIndexData.length-1) - { - // nothing is found, return the old one - targetIndex = lastFocussedIndex; - break; - } - } - break; - - case 'up' : - // we are searching for the previous - targetIndex = lastFocussedIndex; - while (targetIndex > 0) - { - targetIndex--; - if (-1 != this.letterIndexData[targetIndex].itemIndex) - { - break; - } - else if (targetIndex <= 0) - { - // nothing is found, return the old one - targetIndex = lastFocussedIndex; - break; - } - } - break; - - default : - // we are searching for the index of the letter - for (var i=0, l=this.letterIndexData.length; i= letterIndexCount) - { - currentLetter = null; - } - else - { - while (this.letterIndexData[currentLetter].disabled) - { - if (currentLetter >= letterIndexCount-1 || currentLetter <= 0) - { - // this is the end/beginning of the array -> nothing is found so return Null - currentLetter = null; - break; - } - currentLetter = ('down' === direction) ? currentLetter+1 : currentLetter-1; - } - } - return currentLetter; -}; - -/** - * Exit hit state of the currently hit index item - * ========================= - * @return {void} - */ -List2Ctrl.prototype._indexRemoveHit = function() -{ - for (var i=0, l=this.letterIndexData.length; i bring back reorder item - if (this._inListReorder && this._reorderTouchElt) - { - this._bringReorderItem(); - } - - // Focus adjust after animation ends - - // get list position - var listPosition = null; - if (0 === this._topItem) - listPosition = 'top'; - else if (this._topItem === this.dataList.itemCount - this.properties.visibleItems) - listPosition = 'bottom'; - else - listPosition = 'middle'; - - // get scroll direction - var scrollDirection = null; - if (this._prevTopItem > this._topItem) - scrollDirection = 'up'; - else if (this._prevTopItem < this._topItem) - scrollDirection = 'down'; - else - scrollDirection = 'none'; - - // get scroll size - var scrollSize = this.m.abs(this._prevTopItem - this._topItem); - - if ('page' === this._scrollNature) - { - // do not place focus, it should have been done by the paging function - } - else if ('item' === this._scrollNature) - { - // show focus - this._showFocus(this._lastItemWithFocus, true); - } - else - { - // check if focussed index is outside the screen and we actually have a scroll - if (scrollSize > this.properties.visibleItems-1 && !this._inLetterIndexMulticontroller) - { - // restore focus - this._restoreFocus(); - } - else if (scrollSize > 0 && !this._inLetterIndexMulticontroller) - { - // check if the focus is just slightly outside the visible range - if (this._lastItemWithFocus < this._topItem || this._lastItemWithFocus >= this._topItem + this.properties.visibleItems) - { - // restore focus - this._restoreFocus(); - } - else - { - // else the focus remains on the screen -> only set letter index position - this._setLetterIndexPosition(this._getFocussedIndex()); - } - } - else - { - // we don't have a scroll -> nothing to do here - } - } - - // lower _inScroll flag - this._inScroll = false; - - // reset scroll nature - this._scrollNature = null; - - // dispatch scroll end event - this._listEvent(this._EVENTS.SCROLL_END, {scrollPosition:this._topItem}); -}; - -/** - * Restore focus after it has been left off screen. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._restoreFocus = function() -{ - // check if the top item is enabled - if (!this.dataList.items[this._topItem].disabled) - { - this._showFocus(this._topItem, false, false, true); - } - // top item is disabled, find the nearest enabled item below the top one - else - { - var neiDown = this._getNearestEnabledItem(this._topItem, 'down'); - // check if the item is on screen - if (null != neiDown && neiDown >= this._topItem && neiDown < this._topItem + this.properties.visibleItems) - { - this._showFocus(neiDown, true, false, true); - } - // there's no enabled item or it is off screen - else - { - this._showFocus(this._topItem, false, false, true); - } - } -}; - -/** - * Scroll indicator animation end callback - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._scrollIndicatorAnimationEnd = function() -{ - this.scrollIndicator.style[this._VENDOR + 'TransitionDuration'] = '0ms'; - this.scrollIndicator.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - this.scrollIndicatorAnimationEndCallback = null; - - // fadeOut scroll indicator - this._fadeOutScrollIndicator(); -}; - -/** - * Letter index animation end callback - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._letterIndexAnimationEnd = function() -{ - // remove animation end callbacks - this.letterIndex.style[this._VENDOR + 'TransitionDuration'] = '0ms'; - this.letterIndex.removeEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - this.letterIndexAnimationEndCallback = null; - - // restore focus - var focussedLetterIndex = this._getFocussedLetterIndex(); - if (null != focussedLetterIndex && (focussedLetterIndex < this._topLetterIndex || focussedLetterIndex > this._topLetterIndex + this.properties.visibleLetterIndexItems - 1)) - { - // focus is off screen - this._restoreLetterIndexFocus(); - } - else if (null != focussedLetterIndex) - { - // schedule letter index select if letter is enabled - if (!this.letterIndexData[focussedLetterIndex].disabled) - { - this._scheduleLetterIndexSelect(focussedLetterIndex); - } - } -}; - -/** - * Restore letter index focus after it has been left off screen. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._restoreLetterIndexFocus = function() -{ - // check if the top letter index is enabled - if (!this.letterIndexData[this._topLetterIndex].disabled) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - - // schedule letter index select - this._scheduleLetterIndexSelect(this._topLetterIndex); - } - else - { - // look for enabled item down and up - var neiDown = this._getNearestEnabledLetterByDirection(this._topLetterIndex, 'down'); - var neiUp = this._getNearestEnabledLetterByDirection(this._topLetterIndex, 'up'); - // determine scroll direction - var scrollDirection = (this._topLetterIndex - this._prevTopLetterIndex < 0) ? 'up' : 'down'; - - // check whether we have an enabled item on screen - if (null != neiDown && neiDown >= this._topLetterIndex && neiDown < this._topLetterIndex + this.properties.visibleLetterIndexItems) - { - // there is an enabled item on screen -> place the focus there - this._showFocusLetterIndex(neiDown); - // schedule letter index select - this._scheduleLetterIndexSelect(neiDown); - } - else if ('down' === scrollDirection) - { - // we are scrolling down -> look for enabled item up - if (null != neiUp) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - - // schedule background letter index select - this._scheduleBackgroundLetterIndexSelect(neiUp); - } - else - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - } - } - else if ('up' === scrollDirection) - { - // we are scrolling up -> look for enabled item down - if (null != neiDown) - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - // schedule background letter index select - this._scheduleBackgroundLetterIndexSelect(neiDown); - } - else - { - // show focus on the top letter - this._showFocusLetterIndex(this._topLetterIndex); - } - } - } -}; - - -/** - * ========================= - * SLIDERS AND TOGGLE CONTROL - * ========================= - */ - -/** - * Passes START (mousedown) event to the currently - * targeted slider instance and returns it. - * TAG: internal - * ========================= - * @param {MouseEvent} - * @param {Boolean} - * @return {SliderCtrl} - */ -List2Ctrl.prototype._slideStart = function(e, skipActiveSlider) -{ - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return; - } - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - // check if slider can be adjusted - if (!this.dataList.items[itemIndex].allowAdjust) - { - return; - } - - // check if we are in the hittable area - if(!this._hasRightHittableArea(this.dataList.items[itemIndex])) - { - var relativeX = e.pageX - this._maskPositionX; - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight; - var leftBoundary = this.properties.sliderReferencePointRight - this.properties.sliderWidth; - } - else if(this.dataList.items[itemIndex].indented) - { - var relativeX = e.pageX - (Math.ceil(this._maskPositionX / 1.5)); - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight - (Math.ceil(this.properties.sliderWidth / 1.5)) + (this.properties.indentOffset * 2); - var leftBoundary = this.properties.sliderReferencePointLeft; - } else - { - var relativeX = e.pageX - (Math.ceil(this._maskPositionX / 1.5)); - var inHittable = false; - var rightBoundary = this.properties.sliderReferencePointRight - (Math.ceil(this.properties.sliderWidth / 1.5)); - var leftBoundary = this.properties.sliderReferencePointLeft; - } - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // we are outside the hittable area -> exit - return; - } - - var sliderInstance = this._getSlider(itemIndex); - var skipActiveSlider = (true === skipActiveSlider); - if (!skipActiveSlider) - { - // set currently active slider - this._activeSlider = { - itemIndex : itemIndex, // currently active slider index - slider : sliderInstance // currently active slider instance - }; - - // transition focus to slider and hide focus on the item - this._activeSlider.slider.handleControllerEvent('acceptFocusFromTop'); - this._hideFocus(); - - // pass the event to the SliderCtrl - this._activeSlider.slider._onDownHandler(e); - } - - return sliderInstance; -}; - -List2Ctrl.prototype._slideMove = function(e) -{ - // determine if we have an active slider - if (!this._activeSlider) - { - return; - } - - // determine target item - var itemIndex = this._activeSlider.itemIndex; - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - // pass the event to the SliderCtrl - this._activeSlider.slider._onMoveHandler(e); -}; - -List2Ctrl.prototype._slideEnd = function(e) -{ - // determine if we have an active slider - if (!this._activeSlider) - { - var sliderInstance = this._slideStart(e, true); - if (sliderInstance && !this._stopSelect) - { - // pass the event to the SliderCtrl - sliderInstance._onDownHandler(e); - sliderInstance._onUpHandler(e); - } - return; - } - else - { - var itemIndex = this._activeSlider.itemIndex; - - // do not slide disabled items - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // determine if sliding is reasonable for the target item (i.e. the item is 'slidable') - if (!this._isSlider(itemIndex)) - { - // this is not a slider -> exit - return; - } - - if (this._inSecondaryMulticontroller && itemIndex == this._currentSecondaryMulticontrollerItem) - { - // if we are in secondary multicontroller mode, touching outside the item will exit it - this._setSecondaryMulticontroller(false, this._currentSecondaryMulticontrollerItem); - this._showFocus(this._lastItemWithFocus, true); - } - else - { - // pass the event to the SliderCtrl - this._activeSlider.slider._onUpHandler(e); - - // transition focus back to item and remove it from the slider - this._activeSlider.slider.handleControllerEvent('lostFocus'); - this._showFocus(this._lastItemWithFocus, true); - } - } - - // reset currently active slider - this._activeSlider = null; -}; - -List2Ctrl.prototype._slideCallback = function() -{ - // get item index from the first argument - var itemIndex = arguments[0]; - - // get value and final adjustment from fourth argument - var value = arguments[3].value; - var finalAdjustment = arguments[3].finalAdjustment; - - // update local value - this.dataList.items[itemIndex].value = value; - - // Fire slide callback passing forward anything in the arguments - if (typeof this.properties.slideCallback == 'function') - { - // fire callback with original slider params - // this.properties.slideCallback.apply(null, Array.prototype.slice.call(arguments, 1)); - - // fire per-design callback - var params = { - itemIndex : itemIndex, - value:value, - finalAdjustment : finalAdjustment - }; - this.properties.slideCallback(this, this.dataList.items[itemIndex].appData, params); - } -}; - - - -/* - * ========================= - * TOGGLE BUTTONS - * When a button is selected it is automatically - * highlighted (activated) and the value is reported to the - * button select callback (if defined) - * ========================= - */ - - -/** - * Remove hit state from the toggle button - * TAG: touch-only, internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {void} - */ -List2Ctrl.prototype._buttonRemoveHit = function(itemIndex) -{ - var targetElt = this._getDOMItem(itemIndex); - if (targetElt) - { - var hitItems = targetElt.querySelectorAll('.hit'); - - if (hitItems.length) - { - for (var i=0, l=hitItems.length; i do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Check if we are in the hittable area - var inHittable = false; - var rightBoundary = this.properties.toggleReferencePointRight; - var leftBoundary = 0; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : // 2 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (2 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'style11' : // 3 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (3 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'draggable' : // 1 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (1 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - } - - if (!inHittable) - { - // we are outside the hittable area -> return false - return false; - } - - // when user hits one of the buttons, the item does not gain hit highlight - this._itemRemoveHit(); - - // Check which button is hit - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - var buttonId = null; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : - buttonId = clickedZone < 0.5 ? 1 : 2; - break; - case 'style11' : - buttonId = clickedZone < 0.33 ? 1 : - clickedZone < 0.66 ? 2 : - 3; - break; - case 'draggable' : - buttonId = 1; - break; - } - - // Make that button hit - if (buttonId) - { - // save the button as _startButton - this._startButton = buttonId; - - var domItem = this._getDOMItem(itemIndex); - var buttons = domItem.querySelectorAll('.button'); - for (var i=0; i do not make active - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // Check if we are in the hittable area - var inHittable = false; - var rightBoundary = this.properties.toggleReferencePointRight; - var leftBoundary = 0; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : // 2 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (2 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'style11' : // 3 toggle buttons - leftBoundary = this.properties.toggleReferencePointRight - (3 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - - case 'draggable' : // 1 toggle button - leftBoundary = this.properties.toggleReferencePointRight - (1 * this.properties.toggleButtonWidth); - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - break; - } - - if (!inHittable && this._startButton) - { - // we are outside the hittable area and we have started from a button -> return cancel - return 'cancel'; - } - else if (!inHittable) - { - // we are outside the hittable area -> return cancel - return null; - } - - // Check which button is selected - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - var buttonId = null; - switch (this.dataList.items[itemIndex].itemStyle) - { - case 'style10' : - buttonId = clickedZone < 0.5 ? 1 : 2; - break; - case 'style11' : - buttonId = clickedZone < 0.33 ? 1 : - clickedZone < 0.66 ? 2 : - 3; - break; - case 'draggable' : - buttonId = 1; - break; - } - - // Make that button active - if (buttonId && buttonId === this._startButton) - { - this._startButton = null; - - if (this.dataList.items[itemIndex].value == buttonId) - { - // we ended on already selected button -> cancel - return 'cancel'; - } - // we ended up on the same button we started -> select that button - this._buttonActivate(itemIndex, buttonId); - } - else if (buttonId && null === this._startButton) - { - // we started off the buttons but ended up on a button -> select next button - this._startButton = null; - return null; - } - else - { - // we started from one of the buttons but ended out of them -> cancel - this._startButton = null; - return 'cancel'; - } - - // Return the button id - return buttonId; - -}; - -/** - * Select the nearest left toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonSelectLeft = function(itemIndex) -{ - // get current active button - var current = this.dataList.items[itemIndex].value; - - // set new active button - return this._buttonActivate(itemIndex, current-1); -}; - -/** - * Select the nearest right toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonSelectRight = function(itemIndex) -{ - // get current active button - var current = this.dataList.items[itemIndex].value; - - // set new active button - return this._buttonActivate(itemIndex, current+1); -}; - -/** - * Activate toggle button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._buttonActivate = function(itemIndex, buttonId) -{ - // Ensure that buttonId is valid and wraps in a loop - if ('style10' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = (!isNaN(buttonId)) ? buttonId : 1; - if (buttonId > 2) - buttonId = 1; - else if (buttonId < 1) - buttonId = 2; - } - else if('style11' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = (!isNaN(buttonId)) ? buttonId : 1; - if (buttonId > 3) - buttonId = 1; - else if (buttonId < 1) - buttonId = 3; - } - else if('draggable' === this.dataList.items[itemIndex].itemStyle) - { - var buttonId = 1; - } - else - { - log.debug('Unknown item style for itemIndex ' + itemIndex); - return null; - } - - if ('draggable' != this.dataList.items[itemIndex].itemStyle) - { - // Save the new value in the dataList - this.dataList.items[itemIndex].value = buttonId; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - // Remove any residual hit states - this._buttonRemoveHit(itemIndex); - - // Activate the button - if (domItem) - { - var buttons = domItem.querySelectorAll('.button'); - for (var i=0; i do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Check if we are in the hittable area - var inHittable = false; - var domItem = this._getDOMItem(itemIndex); - var lockButton = domItem.querySelector('.buttonLock'); - var deleteButton = domItem.querySelector('.buttonDelete'); - var leftBoundary = lockButton.offsetLeft; - var rightBoundary; - if (this.dataList.items[itemIndex].locked) - { - // the delete button is disabled - rightBoundary = lockButton.offsetLeft + lockButton.clientWidth; - } - else - { - // the delete button is enabled - rightBoundary = deleteButton.offsetLeft + deleteButton.clientWidth; - } - - // hit test - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // we are outside the hittable area -> return false - return false; - } - - // when user hits one of the buttons, the item does not gain hit highlight - this._itemRemoveHit(); - - var buttonId = 1; - // Check which button is hit is the item is not locked - if (!this.dataList.items[itemIndex].locked) - { - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - buttonId = clickedZone < 0.5 ? 1 : 2; - } - - // save the button as _startLockButton - this._startLockButton = buttonId; - - // remove hit - this._lockRemoveHit(itemIndex); - - // make that button hit - if (1 === buttonId) - { - this._lockShowFocus(itemIndex, 1); - domItem.querySelector('.buttonLock').classList.add('hit'); - } - else - { - this._lockShowFocus(itemIndex, 2); - domItem.querySelector('.buttonDelete').classList.add('hit'); - } - - this._hideFocus(); - - return true; - -}; - -/** - * Select lock button - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - * @return {string} - performed action (lock, unlock, delete) - */ -List2Ctrl.prototype._lockSelect = function(e) -{ - // get relative mouse position - var relativeX = e.pageX - this._maskPositionX; - - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return null; - } - - // if the item is disabled -> do not make active - if (this.dataList.items[itemIndex].disabled) - { - return null; - } - - // Check if we are in the hittable area - var inHittable = false; - var domItem = this._getDOMItem(itemIndex); - var lockButton = domItem.querySelector('.buttonLock'); - var deleteButton = domItem.querySelector('.buttonDelete'); - var leftBoundary = lockButton.offsetLeft; - var rightBoundary; - if (this.dataList.items[itemIndex].locked) - { - // the delete button is disabled - rightBoundary = lockButton.offsetLeft + lockButton.clientWidth; - } - else - { - // the delete button is enabled - rightBoundary = deleteButton.offsetLeft + deleteButton.clientWidth; - } - - // hit test - if (relativeX >= leftBoundary && relativeX <= rightBoundary) - { - inHittable = true; - } - - if (!inHittable) - { - // set secondary multicontroller leaving highlight from where it started - if (this._startLockButton) - { - this._setSecondaryMulticontroller(true, itemIndex); - this._lockShowFocus(itemIndex, this._startLockButton); - } - - // we are outside the hittable area -> return null - return null; - } - - var action = null; - var buttonId = 1; - // Check which button is hit is the item is not locked - if (!this.dataList.items[itemIndex].locked) - { - var clickedZone = (relativeX - leftBoundary) / (rightBoundary - leftBoundary); - buttonId = clickedZone < 0.5 ? 1 : 2; - } - - // Make that button active - if (buttonId === this._startLockButton) - { - this._startLockButton = null; - // we ended up on the same button we started -> select that button - action = this._lockActivate(itemIndex, buttonId); - } - else if (null === this._startButton) - { - this._startLockButton = null; - // we started off the buttons but ended up on a button -> select that button - action = this._lockActivate(itemIndex, buttonId); - } - else - { - // we started from one of the buttons but ended out of them -> cancel - this._startLockButton = null; - - return null; - } - - // Return the performed action - return action; - -}; - -/** - * Select the nearest left toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._lockMoveFocusLeft = function(itemIndex) -{ - // get current focussed lock button - var current = this._lockGetFocus(itemIndex); - - // set the new focussed lock button - return this._lockShowFocus(itemIndex, current-1); -}; - -/** - * Select the nearest right toggle button to the currently active one - * TAG: internal - * ========================= - * @param {integer} - index of the currently focussed item - * @return {integer} - selected button id (1,2,3) - */ -List2Ctrl.prototype._lockMoveFocusRight = function(itemIndex) -{ - // get current focussed lock button - var current = this._lockGetFocus(itemIndex); - - // set the new focussed lock button - return this._lockShowFocus(itemIndex, current+1); -}; - -/** - * Activate lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @param {integer} - the button that is going to be activated - * @return {string} - performed action (lock, unlock, delete) - */ -List2Ctrl.prototype._lockActivate = function(itemIndex, buttonId) -{ - var action = null; - - switch (buttonId) - { - case 1 : - if (this.dataList.items[itemIndex].locked) - { - this.dataList.items[itemIndex].locked = false; - action = 'unlock'; - } - else - { - this.dataList.items[itemIndex].locked = true; - action = 'lock'; - } - break; - case 2 : - if (!this.dataList.items[itemIndex].locked) - { - action = 'delete'; - } - break; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - // Update the item - if (domItem) - { - switch (action) - { - case 'lock' : - domItem.classList.add('locked'); - break; - case 'unlock' : - domItem.classList.remove('locked'); - break; - } - } - - return action; -}; - - -/** - * Show focus highlight on a lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @param {integer} - the index of the button that will be focused - * @return {integer} - id of the focussed lock button - */ -List2Ctrl.prototype._lockShowFocus = function(itemIndex, buttonId) -{ - // check if this is a lock item - if (!this._isLock(itemIndex)) - { - return false; - } - - // if the item is disabled -> do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - - if ('clear' === buttonId) - { - if (domItem) - { - domItem.querySelector('.buttonLock').classList.remove('focus'); - domItem.querySelector('.buttonDelete').classList.remove('focus'); - } - return null; - } - else - { - // validate button id - var buttonId = this.dataList.items[itemIndex].locked ? 1 : this.m.min(this.m.max(buttonId, 1), 2); - - if (domItem) - { - // add focus on the respective button - switch (buttonId) - { - case 1 : - domItem.querySelector('.buttonDelete').classList.remove('focus'); - domItem.querySelector('.buttonLock').classList.add('focus'); - break; - case 2 : - domItem.querySelector('.buttonLock').classList.remove('focus'); - domItem.querySelector('.buttonDelete').classList.add('focus'); - break; - default : - domItem.querySelector('.buttonDelete').classList.remove('focus'); - domItem.querySelector('.buttonLock').classList.add('focus'); - break; - } - } - return buttonId; - } -}; - - -/** - * Get currently focused lock button - * TAG: internal - * ========================= - * @param {integer} - index of the currently hit or focussed item - * @return {integer} - id of the currently focussed lock button - */ -List2Ctrl.prototype._lockGetFocus = function(itemIndex) -{ - // check if this is a lock item - if (!this._isLock(itemIndex)) - { - return false; - } - - // if the item is disabled -> do not make hit - if (this.dataList.items[itemIndex].disabled) - { - return false; - } - - var focussedButton = null; - - // Get the DOM element - var domItem = this._getDOMItem(itemIndex); - if (domItem) - { - if (domItem.querySelector('.buttonLock').classList.contains('focus')) - focussedButton = 1; - else if (domItem.querySelector('.buttonDelete').classList.contains('focus')) - focussedButton = 2; - } - - return focussedButton; -}; - - -/* - * ========================= - * STEP ITEM - * ========================= - */ - -/** - * Increase the value by one step - * TAG: internal - * ========================= - * @param {MouseEvent} - raw mouse event - * @return {integer} - the new value - */ -List2Ctrl.prototype._stepAdjust = function(e) -{ - // get relative mouse position - var relativeX = e.pageX - this._maskPositionX; - - // determine target item - var itemIndex = this._getTargetItem(e); - - // only valid list items are allowed - if (itemIndex == -1) - { - return; - } - - // if the item is disabled -> do not make active - if (this.dataList.items[itemIndex].disabled) - { - return; - } - - // perform hit test - var itemDOMElement = this._getDOMItem(itemIndex); - if (!itemDOMElement) - { - return; - } - - var p = itemDOMElement.querySelector('.plus'); - var m = itemDOMElement.querySelector('.minus'); - var pLayout = { x1:p.offsetLeft, x2:p.offsetLeft + p.clientWidth }; - var mLayout = { x1:m.offsetLeft, x2:m.offsetLeft + m.clientWidth }; - - var newValue = null; - - if (relativeX >= pLayout.x1 && relativeX <= pLayout.x2) - { - // plus pressed - newValue = this._stepUp(itemIndex); - } - else if (relativeX >= mLayout.x1 && relativeX <= mLayout.x2) - { - // minus pressed - newValue = this._stepDown(itemIndex); - } - else if (relativeX < mLayout.x1) - { - newValue = 'commit'; - } - - - return newValue; -}; - -/** - * Increase the value by one step - * TAG: internal - * ========================= - * @param {integer} - index of the step item - * @return {integer|null} - the new value - */ -List2Ctrl.prototype._stepUp = function(itemIndex) -{ - if (!this._isStep(itemIndex)) - { - return; - } - - var oldValue = this.dataList.items[itemIndex].value; - var newValue = this.m.min(this.dataList.items[itemIndex].value + this.dataList.items[itemIndex].increment, this.dataList.items[itemIndex].max); - - if (newValue != oldValue) - { - // value changed -> store it and update item - this.dataList.items[itemIndex].value = newValue; - this.updateItems(itemIndex, itemIndex); - } - else - { - // value is the same -> return null - newValue = null; - } - - return newValue; -}; - -/** - * Decrease the value by one step - * TAG: internal - * ========================= - * @param {integer} - index of the step item - * @return {integer|null} - the new value - */ -List2Ctrl.prototype._stepDown = function(itemIndex) -{ - if (!this._isStep(itemIndex)) - { - return; - } - - var oldValue = this.dataList.items[itemIndex].value; - var newValue = this.m.max(this.dataList.items[itemIndex].value - this.dataList.items[itemIndex].increment, this.dataList.items[itemIndex].min); - - if (newValue != oldValue) - { - // value changed -> store it and update item - this.dataList.items[itemIndex].value = newValue; - this.updateItems(itemIndex, itemIndex); - } - else - { - // value is the same -> return null - newValue = null; - } - - return newValue; -}; - - -/** - * ========================= - * LIST REORDERING - * ========================= - */ - -/** - * Enter into list reorder mode - * This method stores the original item style of the - * item that is being reordered and substitutes it with - * an internal 'draggable' item style. - * TAG: internal - * ========================= - * @param {Boolean} - * @return {void} - */ -List2Ctrl.prototype._enterListReorder = function(fromInit) -{ - // keep a copy of the item before converting it to a draggable item - - var focussedIndex; - if (fromInit) - { - focussedIndex = this.properties.focussedItem; - } - else - { - focussedIndex = this._getFocussedIndex(); - } - - // check for items in the dataList - if (!this.dataList || !this.dataList.items || !this.dataList.items[focussedIndex]) - { - return; - } - - // do not reorder disabled items - if (this.dataList.items[focussedIndex].disabled) - { - return; - } - - // enter into List Reordering mode - this._inListReorder = true; - - this.dataList.items[focussedIndex].itemBehavior = 'shortAndLong'; // make it accept long press (if not already) - this._reorderItem = this.dataList.items[focussedIndex]; - this._reorderItemIndex = focussedIndex; - this._reorderCurrentIndex = focussedIndex; - - // convert the item to a draggable item - var draggableItem = {}; - draggableItem.itemStyle = 'draggable'; - draggableItem.text1 = this._reorderItem.text1; - draggableItem.image1 = (this._reorderItem.hasOwnProperty('image1')) ? this._reorderItem.image1 : ''; - draggableItem.button1 = this._getLocalizedString('common.Ok'); - draggableItem.hasCaret = false; - this.dataList.items[focussedIndex] = draggableItem; - this.updateItems(focussedIndex, focussedIndex); - -}; - -/** - * Leave list reorder mode - * The item that is being reordered is restored - * to it initial style. The select callback is - * then fired to notify the interested parties of - * the change and the new position of the item. - * TAG: internal - * ========================= - * @param {Boolean} - prevent item selection when releasing the reorder - * @return {void} - */ -List2Ctrl.prototype._releaseListReorder = function(preventSelect) -{ - // exit list reordering mode - this._inListReorder = false; - - // get draggable item index - var draggableItems = this.getItemsByType('draggable'); - if (!draggableItems.length) - { - return; - } - - var draggableItemIndex = draggableItems[0]; - - // convert the draggable item back into the previous item type - this.dataList.items[draggableItemIndex] = this._reorderItem; - this.updateItems(draggableItemIndex, draggableItemIndex); - - // cast preventSelect as Boolean - var preventSelect = Boolean(preventSelect); - - // selection is allowed - if (!preventSelect) - { - // fire item select - var params = { - newIndex : draggableItemIndex, - oldIndex : this._reorderItemIndex - }; - this._itemSelect(draggableItemIndex, params); - } - - // release the copy of the reorder item - this._reorderItem = null; - this._reorderItemIndex = null; - this._reorderTouchElt = null; - -}; - - -/** - * Touch start reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._startReorder = function(e) -{ - // get target item index - var itemIndex = this._getTargetItem(e); - - // get draggable item index - if (itemIndex === this._reorderCurrentIndex) - { - this._startY = e.pageY - this._maskPositionY; - this._startX = e.pageX - this._maskPositionX; - - // do we have hit on the button? - var positiveButtonHit = this._buttonMakeHit(e); - - if (!positiveButtonHit) - { - this._itemMakeLongPress(e); - - // clone draggable item - var tmp = this._getDOMItem(itemIndex); - this._reorderTouchElt = tmp.cloneNode(true); - this.scroller.appendChild(this._reorderTouchElt); - - // convert the draggable item to a ghost item - var ghostItem = {itemStyle:'ghost', hasCaret:false}; - this.dataList.items[itemIndex] = ghostItem; - this.updateItems(itemIndex, itemIndex); - - this._hideFocus(); - - // raise _inDrag - this._inDrag = true; - } - else - { - // flag the behaviour as release intent - this._releaseReorderByTouch = true; - } - - // track event - this._trackEvent(e); - } -}; - -/** - * Touch move reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._moveReorder = function(e) -{ - if (this._reorderTouchElt) - { - // track event - this._trackEvent(e); - - // perform event filtering - if (this.properties.eventFilterThreshold > 0) - { - // skip event - if (e.timeStamp-this._lastEventTime <= this.properties.eventFilterThreshold) - { - return; - } - - // record time - this._lastEventTime = e.timeStamp; - } - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = (e.pageY - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) - (this.properties.itemHeight / 2); - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the item - this._reorderTouchElt.style.top = newPos + 'px'; - - // get last move - var moveDirection = this._getMoveDirection(); - - // reset any scheduled scrolling if the user intends cacnelling the scroll - if (newPos <= (this._topItem * this.properties.itemHeight) + this.properties.itemHeight && - newPos > this._topItem * this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - } - else if (newPos >= (this._topItem + this.properties.visibleItems - 2) * this.properties.itemHeight && - newPos < (this._topItem + this.properties.visibleItems - 1) * this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - } - - // drag down - if (1 === moveDirection) - { - // have we passed the last item's top border? - if ( (this._topItem >= this.dataList.itemCount - this.properties.visibleItems) && (newPos >= ((this._topItem + this.properties.visibleItems) * this.properties.itemHeight) - this.properties.itemHeight) ) - { - this._reorderGhostItemDown(); - } - else if (newPos >= ((this._topItem + this.properties.visibleItems) * this.properties.itemHeight) - this.properties.itemHeight) - { - // do we have a scroll down scheduled? -> if not, schedule one - if (null === this._touchReorderTimeoutId) - { - this._touchReorderTimeoutId = setTimeout(this._scrollDownOne.bind(this), this.properties.listReorderScrollTimeout); - } - } - else if (newPos >= (this._reorderCurrentIndex * this.properties.itemHeight) + this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - this._reorderGhostItemDown(); - } - } - // drag up - else if (-1 === moveDirection) - { - // have we passed the top item's top border? - if (0 != this._topItem && newPos <= this._topItem * this.properties.itemHeight) - { - // do we have a scroll up scheduled? -> if not, schedule one - if (null === this._touchReorderTimeoutId) - { - this._touchReorderTimeoutId = setTimeout(this._scrollUpOne.bind(this), this.properties.listReorderScrollTimeout); - } - } - else if (newPos <= (this._reorderCurrentIndex * this.properties.itemHeight) - this.properties.itemHeight) - { - if (null != this._touchReorderTimeoutId) - { - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - } - this._reorderGhostItemUp(); - } - } - - } // endif (this._reorderTouchElt) -}; - -/** - * Touch end reorder item - * TAG: internal, touch-only - * ========================= - * @param {MouseEvent} - * @return {void} - */ -List2Ctrl.prototype._endReorder = function(e) -{ - if (this._reorderTouchElt) - { - // get nearest snap position - var newSnappedIndex = Math.floor( ( (e.pageY - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) ) / this.properties.itemHeight ); - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = newSnappedIndex * this.properties.itemHeight; - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the scroller if in bounds - this._reorderTouchElt.style.top = newPos + 'px'; - - // convert the ghost item back to a draggable ite m - var draggableItem = {}; - draggableItem.itemStyle = 'draggable'; - draggableItem.text1 = this._reorderItem.text1; - draggableItem.image1 = (this._reorderItem.hasOwnProperty('image1')) ? this._reorderItem.image1 : ''; - draggableItem.button1 = this._getLocalizedString('common.Ok'); - draggableItem.hasCaret = false; - this.dataList.items[this._reorderCurrentIndex] = draggableItem; - this.updateItems(this._reorderCurrentIndex, this._reorderCurrentIndex); - - // remove the cloned element - this._reorderTouchElt.parentElement.removeChild(this._reorderTouchElt); - } - - this._itemRemoveLongPress(); - this._reorderTouchElt = null; - - // reset flags - this._inHorizontalDrag = null; - this._hDragItem = null; - this._inDrag = false; - this._stopSelect = false; - - // restore focus - this._showFocus(this._reorderCurrentIndex); - - // clear any scroll timeout - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = null; - - // are we about to release reorder - if (this._releaseReorderByTouch && this._isToggle(this._reorderCurrentIndex)) - { - // remove hit state of button and release list reorder - this._buttonRemoveHit(this._reorderCurrentIndex); - this._releaseListReorder(); - this._releaseReorderByTouch = false; - } - -}; - -/** - * After the list has scrolled due to touch reorder action, - * upon animation end, the touch reorder item is brought under the - * user's finger and if the possition requires it, a new scroll - * is scheduled. - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._bringReorderItem = function() -{ - if (this._trackedEvents.length && this._reorderTouchElt) - { - // get last event - var lastEvent = this._trackedEvents[this._trackedEvents.length-1]; - - // get mouse position relative to scroller corrected with the reorder touch element position - var newPos = (lastEvent.y - this._maskPositionY) + this.m.abs(this.scroller.offsetTop) - (this.properties.itemHeight / 2); - - // constrain the new position - newPos = this.m.max(0, newPos); - - // drag the item - this._reorderTouchElt.style.top = newPos + 'px'; - - // we are past the top item's top boundary - if (0 != this._topItem && newPos <= this._topItem * this.properties.itemHeight) - { - // update blank spot - this._reorderGhostItemUp(); - - // reschedule list scroll - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = setTimeout(this._scrollUpOne.bind(this), this.properties.listReorderScrollTimeout); - } - else if (0 == this._topItem) - { - // update blank spot - this._reorderGhostItemUp(); - } - else if (this._topItem != this.dataList.itemCount - this.properties.visibleItems && - newPos >= (this._topItem + this.properties.visibleItems - 1) * this.properties.itemHeight) - { - // update blank spot - this._reorderGhostItemDown(); - - // reschedule list scroll - clearTimeout(this._touchReorderTimeoutId); - this._touchReorderTimeoutId = setTimeout(this._scrollDownOne.bind(this), this.properties.listReorderScrollTimeout); - } - else if (this._topItem >= this.dataList.itemCount - this.properties.visibleItems) - { - // update blank spot - this._reorderGhostItemDown(); - } - - } -}; -/** - * Reorder the item to the index - * TAG: internal - * ========================= - * @param {integer} - item index - * @return {void} - */ -List2Ctrl.prototype._reorderToIndex = function(itemIndex) -{ - if (!this._inListReorder || isNaN(itemIndex)) - { - log.error("list1 _reorderToIndex : Invalid arguments - inListReorder, itemIndex", this._inListReorder, itemIndex); - return; - } - - if (itemIndex != this._reorderItemIndex) - { - if (itemIndex < this._reorderItemIndex) - { - this._reorderItemUp(this._reorderItemIndex - itemIndex) - } - else - { - this._reorderItemDown(itemIndex - this._reorderItemIndex) - } - } -} - -/** - * Reorder the item down - * TAG: internal - * ========================= - * @param {integer} -number of items - * @return {void} - */ -List2Ctrl.prototype._reorderItemDown = function(reorderCount) -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - //prevent list scrolling while we're loading - if (this._inLoading) - { - return; - } - - if (!reorderCount) - { - reorderCount = 1; - } - - for (var count = 1; count <= reorderCount; count++) - { - // get draggable item index - var draggableItemIndex = this.getItemsByType('draggable')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.min(draggableItemIndex + 1, this.dataList.itemCount - 1); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[draggableItemIndex]; - this.dataList.items[draggableItemIndex] = tempCopy; - - // update display - this.updateItems(draggableItemIndex, targetItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - } - -}; -/** - * Reorder the item up - * TAG: internal - * ========================= - * @param {integer} -number of items - * @return {void} - */ -List2Ctrl.prototype._reorderItemUp = function(reorderCount) -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - //prevent list scrolling while we're loading - if (this._inLoading) - { - return; - } - - if (!reorderCount) - { - reorderCount = 1; - } - - for (var count = 1; count <= reorderCount; count++) - { - // get draggable item index - var draggableItemIndex = this.getItemsByType('draggable')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.max(draggableItemIndex - 1, 0); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[draggableItemIndex]; - this.dataList.items[draggableItemIndex] = tempCopy; - - // update display - this.updateItems(targetItemIndex, draggableItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - } - -}; - -/** - * Reorder ghost item one position down - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._reorderGhostItemDown = function() -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - // get draggable item index - var ghostItemIndex = this.getItemsByType('ghost')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.min(ghostItemIndex + 1, this.dataList.itemCount - 1); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[ghostItemIndex]; - this.dataList.items[ghostItemIndex] = tempCopy; - - // update display - this.updateItems(ghostItemIndex, targetItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - - this._hideFocus(); -}; - -/** - * Reorder ghost item one position up - * TAG: internal - * ========================= - * @return {void} - */ -List2Ctrl.prototype._reorderGhostItemUp = function() -{ - // ensure that we are in list reorder mode - if (!this._inListReorder) - { - return; - } - - // get draggable item index - var ghostItemIndex = this.getItemsByType('ghost')[0]; - - // get new index not exceeding the list count - var targetItemIndex = this.m.max(ghostItemIndex - 1, 0); - - // reorder the dataList.items array - var tempCopy = this.dataList.items[targetItemIndex]; - this.dataList.items[targetItemIndex] = this.dataList.items[ghostItemIndex]; - this.dataList.items[ghostItemIndex] = tempCopy; - - // update display - this.updateItems(targetItemIndex, ghostItemIndex); - - // store current temporary index - this._reorderCurrentIndex = targetItemIndex; - - this._hideFocus(); -}; - - -/** - * ========================= - * LIST EVENTS API - * ========================= - */ - -/** - * List event - * TAG: internal - * ========================= - * @param {string} - Event name - * @param {*} - Event data - * @return {void} - */ -List2Ctrl.prototype._listEvent = function(type, data) -{ - var data = data || null; - switch (type) - { - case this._EVENTS.ITEM_SELECT : - this._dispatch(this._EVENTS.ITEM_SELECT, data); - break; - case this._EVENTS.LETTER_SELECT : - this._dispatch(this._EVENTS.LETTER_SELECT, data); - break; - case this._EVENTS.DATALIST_CHANGE : - this._dispatch(this._EVENTS.DATALIST_CHANGE, null); - break; - case this._EVENTS.SCROLL_START : - this._dispatch(this._EVENTS.SCROLL_START, data); - break; - case this._EVENTS.SCROLL_END : - this._dispatch(this._EVENTS.SCROLL_END, data); - break; - case this._EVENTS.CLEAN_UP : - this._dispatch(this._EVENTS.CLEAN_UP, data); - break; - default : - // nothing to do - break; - } -}; - -/** - * Get listeners array for an event - * TAG: internal - * ========================= - * @param {string} - Event name - * @return {array} - */ -List2Ctrl.prototype._getListeners = function(type, useCapture) -{ - var captype = (useCapture ? '1' : '0') + type; - if (!(captype in this._eventListeners)) - this._eventListeners[captype] = []; - return this._eventListeners[captype]; -}; - -/** - * Dispatch custom event - * TAG: internal - * ========================= - * @param {string} - Event name - * @return {void} - */ -List2Ctrl.prototype._dispatch = function(type, data) -{ - if (!type || '' == type) - return; - var evt = new CustomEvent( type, { detail : { data : data, bubbles: true, cancelable: true } } ); - this.dispatchEvent(evt); -}; - -/** - * Add event listener to custom list event - * TAG: public - * ========================= - * @param {string} - event name - * @param {function} - event listener - * @param {boolean} - use capture - * @return {void} - */ -List2Ctrl.prototype.addEventListener = function(type, listener, useCapture) -{ - var listeners = this._getListeners(type, useCapture); - var ix = listeners.indexOf(listener); - if (-1 === ix) - listeners.push(listener); -}; - -/** - * Remove event listener to custom list event - * TAG: public - * ========================= - * @param {string} - event name - * @param {function} - event listener - * @param {boolean} - use capture - * @return {void} - */ -List2Ctrl.prototype.removeEventListener = function(type, listener, useCapture) -{ - var listeners = this._getListeners(type, useCapture); - var ix = listeners.indexOf(listener); - if (-1 !== ix) - listeners.splice(ix, 1); -}; - -/** - * Displatch custom list event - * TAG: public - * ========================= - * @param {object} - event object - * @return {boolean} - */ -List2Ctrl.prototype.dispatchEvent = function(evt) -{ - var listeners = this._getListeners(evt.type, false).slice(); - for (var i= 0; i dataList.items.length) - { - for (var i=dataList.items.length; i= 0) - { - // force exit secondary multicontroller - this._inSecondaryMulticontroller = false; - - var additionalSpace = this._getAdditionalSpace(); - - this.scroller.style.height = this.dataList.itemCount * this.properties.itemHeight + additionalSpace + 'px'; - this._scrollerH = this.scroller.offsetHeight; - this._emptyScroller(); - this._scrollIndicatorReset(); - if(0 === this.dataList.itemCount) - { - this._scrollIndicatorBuild(false); - } - else - { - this._scrollIndicatorBuild(true); - } - - // set line numbers - this.setLineNumbers(); - } - -}; - -List2Ctrl.prototype.hasDataList = function() -{ - if (this.dataList == null) - { - return false; - } - - if (!this.dataList.hasOwnProperty('itemCountKnown') && !this.dataList.hasOwnProperty('itemCount') && !this.dataList.hasOwnProperty('items')) - { - return false; - } - - if (this.dataList.itemCountKnown && this.dataList.itemCount == 0) - { - return false; - } - - if (!this.dataList.itemCountKnown && this.dataList.itemCount <= 0) - { - return false; - } - - return true; -}; - -/** - * Update Items - * - * This is intended to be used whenever the bound data is changed programmatically by the app. In other words, - * it informs the control that bound data has changed … and if the range of changed items overlaps with items - * rendered into HTML objects, then the ListMenu must update those elements. There are several use cases for this: - * - * 1. For the case where the dataList is fetched asynchronously in the background after ListMenu is displayed, - * the updateItems() API will be called as new data arrives. I think this use case is described fairly completely - * in section 2.2.4 of the ListMenu SDD. Note that these updates may correspond to the user scrolling, or may simply - * occur in the background as the list is loaded into GUI while the user is still looking at the first N list items. - * Also note that the listCount can change and the ListMenu control must adapt appropriately, including handling - * reduction of the list count. - * - * 2. To allow the application to update menu text dynamically, e.g. to display the name of the connected USB - * Audio device instead of “USB”, or to change the displayed image(s). - * - * 3. To allow the application to enable/disable menu items or to set/clear the “selected” indicator. - * - * ========================= - * @param {integer} - * @param {integer} - * @return {void} - */ -List2Ctrl.prototype.updateItems = function(firstItem, lastItem) -{ - log.debug("List2 updateItems() firstItem, lastItem",firstItem, lastItem); - // update _maxScrollY - this._maxScrollY = this.mask.offsetHeight - this.scroller.offsetHeight; - - var emptyDOMItem = null; - - // clear _needDataTimeoutId - clearTimeout(this._needDataTimeoutId); - this._needDataTimeoutId = null; - - this._prepareItems(firstItem, lastItem); - this._localizeItems(firstItem, lastItem); - - // trim dataList.items if it is larger than dataList.itemCount - if (this.dataList && - this.dataList.itemCountKnown && - this.dataList.items && - this.dataList.itemCount < this.dataList.items.length) - { - this.dataList.items = this.dataList.items.slice(0, this.dataList.itemCount); - console.assert(this.dataList.itemCount == this.dataList.items.length, 'dataList.itemCount is not equal to dataList.items.length'); - } - - // validate first item - if (this.dataList.itemCountKnown && firstItem < -1) - { - log.warn('List2: firstItem is less than -1: ' + firstItem + ' passed. Setting it to -1.'); - firstItem = -1; - } - - // validate last item - if (this.dataList.itemCountKnown && lastItem >= this.dataList.itemCount) - { - log.warn('List2: lastItem is more than or equals dataList.itemCount(' + (this.dataList.itemCount-1) + '): ' + lastItem + ' passed. Setting it to ' + (this.dataList.itemCount - 1) + '. ' + this.uiaId + ' check your variable validation!?'); - lastItem = this.dataList.itemCount - 1; - } - - - // check for invalid items (e.g. firstItem=0, lastItem=-1) -> set loading - if (firstItem > lastItem) - { - firstItem = lastItem = -1; - } - - if (firstItem == -1 && lastItem == -1) - { - // we have dataList but no list items => show loading - this._setLoading(true); - - } - else if (firstItem >= 0 && lastItem >= 0 && lastItem >= firstItem && !this._hasFill) - { - - - // we have dataList and we have list items but we do not have fill => do initial fill - var lastFillItem = this.m.min(lastItem, this.properties.itemsBefore + this.properties.itemsAfter); - - this._fill(firstItem, lastFillItem); - this._setLoading(false); - - // update modified timestamps - this._updateModifiedTimestamps(firstItem, lastItem); - - if (this.properties.focussedItem < this.dataList.itemCount) - { - this.properties.focussedItem = this._canGainFocus(this.properties.focussedItem); - } - else - { - this.properties.focussedItem = this.dataList.itemCount - 1; - this.properties.focussedItem = this._canGainFocus(this.properties.focussedItem); - } - /* - * Immediately scroll to a preset location and - * show focus on preset item if this is specified - * in the control's config. Focus placement needs to be done - * after the DOM is refreshed. This is done only the - * first time after a fresh setDataList() call. - * Focussed item has precedence over scroll location. - */ - if (null === this._initialScrollMode) - { - // first check if the focussed item and the scroll position are all on the same screen - // scroll to that position and show the focus according to the config - if ( (this.properties.focussedItem >= 0 || this.properties.scrollTo >= 0) && - (this.m.abs(this.properties.focussedItem - this.properties.scrollTo) <= (this.properties.visibleItems - 1)) ) - { - log.debug('Focus is visible on screen'); - this._scrollTo(this.properties.scrollTo, 0); - setTimeout(function() { - this._showFocus(this.properties.focussedItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - // set initial focus to a particular item if this is set in the config - // the list will be scrolled so that this item is visible - else if (this.properties.focussedItem >= 0) - { - log.debug('Focus is not visible and has priority'); - setTimeout(function() { - this._showFocus(this.properties.focussedItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - // scroll (no animation) to a particular item if this is set in the config - // the focus will be placed on the top item - else if (this.properties.scrollTo >= 0) - { - log.debug('Focus is 0 and scrollTo has priority'); - this._scrollTo(this.properties.scrollTo, 0); - setTimeout(function() { - this._topItem = this._canGainFocus(this._topItem); - this._showFocus(this._topItem); - }.bind(this), 0); - this._initialScrollMode = 'config'; - } - } - // sync the top item with focus if not in initial mode any more - // enter in this case usualy when a new data list is set - else - { - var focussedItem = this.focussedItem; - var topInFocusRange = focussedItem >= this.topItem && focussedItem < this.topItem + this.properties.visibleItems - 1; - var prevTopInFocusRange = focussedItem >= this._prevTopItem && focussedItem < this._prevTopItem + this.properties.visibleItems - 1; - if (!topInFocusRange && !prevTopInFocusRange) - { - this.topItem = focussedItem; - } - else if (!topInFocusRange && prevTopInFocusRange) - { - this.topItem = this._prevTopItem; - } - } - - // check for empty items in DOM - emptyDOMItem = this._getEmptyDOMElement(); - - } - else if (firstItem >= 0 && lastItem >= 0 && lastItem >= firstItem) - { - // preserve focussed element - var lastFocussedIndex = this._getFocussedIndex(); - - // we have dataList and we have list items, and we have fill => perform update - this._updateDisplay(firstItem, lastItem); - this._setLoading(false); - - // update modified timestamps - this._updateModifiedTimestamps(firstItem, lastItem); - - // restore focussed element - if (!this._inLetterIndexMulticontroller && !this._inSecondaryMulticontroller) - { - this._showFocus(lastFocussedIndex, true); - } - else if (this._inSecondaryMulticontroller) - { - // treat disabling the secondary multicontroller item as interrupt -> commit value and exit - var smi = this._currentSecondaryMulticontrollerItem; - if (this.dataList.items[smi] && this.dataList.items[smi].disabled) - { - this._setSecondaryMulticontroller(false, smi); - this._showFocus(smi, true); - } - else if (this.dataList.items[smi]) - { - this._setSecondaryMulticontroller(true, smi); - } - } - - // check for empty items in DOM - emptyDOMItem = this._getEmptyDOMElement(); - - } - else - { - log.error(this.uiaId + ' called List2 updateItems() with invalid arguments: firstItem = ' + firstItem + ', lastItem = ' + lastItem); - } - - // suppress secondary item request when the list is in reorder mode - if (this.properties.enableSecondaryItemRequest && !this._inListReorder) - { - // do we have empty DOM items? - if (null == emptyDOMItem) - { - // clear _secondaryRequestCount - this._secondaryRequestCount = 0; - } - else if (this._secondaryRequestCount <= this.properties.secondaryRequestLimit) - { - // fire needDataCallback() if an empty item is found in the DOM - this._requestMore(emptyDOMItem); - // increment _secondaryRequestCount - this._secondaryRequestCount++; - } - else - { - log.warn('Lis2: control has reached the secondary request count limit. Enabling the list'); - // we have reached secondaryRequestLimit -> set loading to False - this._setLoading(false); - } - } - - // restore the focus to the last focussed element - if (!this._inLetterIndexMulticontroller && !this._inSecondaryMulticontroller) - { - this._showFocus(this._lastItemWithFocus, true); - } - -}; - - -/** 2. LETTER INDEX API **/ - -/** - * Set letter index data on demand, filling letters in the letter index area - * and assigning jump indices to them, so that when touched or selected - * by multicontroller, the list jumps to the respective index. - * TAG: public - * ========================= - * @param {data} - letter index data object - * @return {boolean} - True if letter index binding operation is a success - */ -List2Ctrl.prototype.setLetterIndexData = function(data) -{ - // validate input - if (!(data instanceof Array)) - { - log.error('Lis2: letter index data should be a valid array'); - return false; - } - - // validate control support - if (!this.properties.hasLetterIndex) - { - log.error('Lis2: list2 does not support letter index'); - return false; - } - - // reset any previous letter index data - this.letterIndexData = []; - this.letterIndex.innerText = ''; - - var letterIndexItem; - var label; - for (var i=0, l=data.length; i= 0) - { - this._letterIndexDataSorted[this._letterIndexDataSorted.length] = { - publicIndex : this.letterIndexData.length-1, - itemIndex : data[i].itemIndex - }; - } - } - - // sort private and filtered letter index by the itemIndex in ASC order - this._letterIndexDataSorted.sort(function(a,b) { - var compRes = 0; - if (a.itemIndex < b.itemIndex) - compRes = -1; - else if (a.itemIndex > b.itemIndex) - compRes = 1; - else - compRes = 0; - return compRes; - }); - - // set letter index scroller height - var additionalSpace = Math.ceil(this.properties.letterIndexHeight / 2) - 5; // adjusting factor - this.letterIndex.style.height = i * this.properties.letterIndexHeight + additionalSpace + 'px'; - this._scrollerHIndex = this.letterIndex.offsetHeight; - - // update _maxScrollYIndex - this._maxScrollYIndex = this.letterIndexWrapper.offsetHeight - this.letterIndex.offsetHeight; - - // set initial active letter index if there are any available - if (this.hasDataList() && this._letterIndexDataSorted.length) - { - // get current focus index and first letter index - var focussedIndex = this._getFocussedIndex(); - var firstIndex = this._letterIndexDataSorted[0].itemIndex; - - if (firstIndex > 0 && focussedIndex < firstIndex) - { - this._setLetterIndexPosition(firstIndex); - } - else - { - this._setLetterIndexPosition(focussedIndex); - } - - } - else if (this._letterIndexDataSorted.length) - { - this._setLetterIndexPosition(this._letterIndexDataSorted[0].itemIndex); - } -}; - - -/** 3. VOICE API **/ - -/** - * Set left button configuration depending on current list configuration: - * title style, visible items, item count, item thickness - * TAG: public, VUI - * ========================= - * @return {void} - */ -List2Ctrl.prototype.setLineNumbers = function() -{ - // check if we need to show numbers - if (!this.properties.numberedList) - { - return; - } - - // check if we have some items to number - if (!this.dataList.hasOwnProperty('itemCount') || this.dataList.itemCount <= 0) - { - return; - } - - - var style = ''; - var maxItemCount = 0; - - // determine max item count and style - switch (this.properties.titleConfiguration) - { - case 'noTitle' : - maxItemCount = this.properties.thickItems ? 5 : 6; - style = this.properties.thickItems ? 'Style02' : 'Style04'; - break; - case 'tabsTitle' : - maxItemCount = this.properties.thickItems ? 4 : 5; - style = this.properties.thickItems ? 'Style01' : 'Style03'; - break; - case 'listTitle' : - switch (this._currentTitle.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - case 'style03a' : - maxItemCount = this.properties.thickItems ? 4 : 5; - style = this.properties.thickItems ? 'Style01' : 'Style03'; - break; - case 'style05' : - case 'style08' : - maxItemCount = 4; - style = this.properties.thickItems ? 'Style07' : 'Style06'; - break; - case 'style06' : - case 'style07' : - maxItemCount = 3; - style = this.properties.thickItems ? 'Style09' : 'Style08'; - break; - default : - log.warn('Lis2: unknown title style: ' + this._currentTitle.titleStyle); - return; - break; - } - break; - default : - log.warn('Lis2: unknown title configuration: ' + this.properties.titleConfiguration); - return; - break; - } - - // get actual item count - var itemCount = this.m.min(this.dataList.itemCount, maxItemCount); - - // check for common API - if (framework.common.setLineNumbers) - { - // call LeftBtnCtrl to show list numbers - return framework.common.setLineNumbers(itemCount, style); - } - -}; - -/** - * Performs select on the specified line number. When the select callback is fired, - * fromVui parameter is set to true. The function can return several possible - * statuses depending on the output of the operation. - * TAG: public, VUI - * ========================= - * @param {integer} - the line number that needs to be selected - * @return {string} - 'selected', 'outOfRange', 'disabled', 'sendAck', 'noList' - */ -List2Ctrl.prototype.selectLine = function(lineNumber) -{ - // get target item - var targetIndex = this._topItem + (lineNumber - 1); - - // decide what to return depending on what's visible - var status; - - // check if the list supports line numbers - if (!this.hasDataList()) - { - status = 'noList'; - log.debug('Lis2: selectLine() called with no list on the screen'); - } - else if (!this.dataList.vuiSupport) - { - status = 'noList'; - log.debug('Lis2: no VUI support for this list'); - } - else if (targetIndex > this.dataList.itemCount - 1 || targetIndex < 0) - { - status = 'outOfRange'; - log.debug('Lis2: line number out of range'); - } - else if (targetIndex < this._topItem || targetIndex > this._topItem + this.properties.visibleItems) - { - status = 'outOfRange'; - log.debug('Lis2: line number out of range'); - } - else if (!this.dataList.items[targetIndex].vuiSelectable) - { - status = 'notSelectable'; - log.debug('Lis2: list item is not VUI selectable'); - } - else if (this.dataList.items[targetIndex].disabled) - { - status = 'disabled'; - log.debug('Lis2: list item is disabled'); - this._itemSelect(targetIndex, {fromVui:true, vuiStatus:status}); - } - else - { - // default status is 'selected' -> if the item is not selectable, the callback will not be fired - var selectResult = this._itemSelect(targetIndex, {fromVui:true, vuiStatus:'selected'}); - if (true === selectResult) - { - // normal enabled status - status = 'selected'; - } - else if (false === selectResult) - { - // status if no select callback is attached - status = 'sendAck'; - } - else - { - // returned status from the select callback in the app - status = selectResult; - } - } - - return status; -}; - -/** - * Scrolls the list one page down. A page is the number of visible items on the screen. - * Depending on the output of the function, several return values are possible. - * TAG: public, VUI - * ========================= - * @return {string} - 'paged', 'atLimit', 'onePage' - */ -List2Ctrl.prototype.pageDown = function() -{ - var status = this._scrollDownPage(); - return status; -}; - -/** - * Scrolls the list one page up. A page is the number of visible items on the screen. - * Depending on the output of the function, several return values are possible. - * TAG: public, VUI - * ========================= - * @return {string} - 'paged', 'atLimit', 'onePage' - */ -List2Ctrl.prototype.pageUp = function() -{ - var status = this._scrollUpPage(); - return status; -}; - - -/** 4. SLIDER / TOGGLE API **/ - -/** - * Set slider to a specific value - * TAG: public - * ========================= - * @param {integer} - the index of the slider/pivot item - * @param {number} - the new value of the slider/pivot - * @return {void} - */ -List2Ctrl.prototype.setSliderValue = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isSlider(itemIndex)) - { - log.warn(this.uiaId + ': Lis2: only sliders/pivots can be used in the Slider API. Item style ' + item.itemStyle + ' passed'); - return; - } - - var slider = this._getSlider(itemIndex); - if (slider) - { - slider.setValue(value); - } - else - { - log.error(this.uiaId + ': Lis2: could not get slider instance for itemIndex ' + itemIndex); - } -}; - - -/** - * Set toggle to a specific value - * TAG: public - * ========================= - * @param {integer} - the index of the toggle item - * @param {number} - the new value of the toggle - * @return {void} - */ -List2Ctrl.prototype.setToggleValue = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.debug('Item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isToggle(itemIndex) && item.itemStyle != 'styleOnOff') - { - log.warn('Lis2: only toggle items can be used in the Toggle API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // normalize value - if (item.itemStyle == 'style10') - { - var value = this.m.max(this.m.min(value, 2), 1); - } - else if(item.itemStyle == 'style11') - { - var value = this.m.max(this.m.min(value, 3), 1); - } - else if(item.itemStyle == 'styleOnOff') - { - var value = this.m.max(this.m.min(value, 2), 1); - } - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'toggle')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - - -/** - * Set checked state for a checkbox item (style03 and style03a) - * TAG: public - * ========================= - * @param {integer} - the index of the checkbox item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype.setCheckBox = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'checkbox')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - - -/** - * Set checked state for a checkbox item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the checkbox item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setCheckBox = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // cast as boolean - var value = Boolean(value); - - // set value - item.checked = value; - - // update item - this.updateItems(itemIndex, itemIndex); -}; - - -/** - * Set checked state for a radio item (style03 and style03a) - * TAG: public - * ========================= - * @param {integer} - the index of the radio item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype.setRadio = function(itemIndex, value) -{ - // validate index - if (itemIndex < 0 || itemIndex >= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'radio')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - -/** - * Set checked state for a radio item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the radio item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setRadio = function(itemIndex, value) -{ - // cast as boolean - var value = Boolean(value); - - // remove checked state of all radio items - for (var i=0; i= this.dataList.itemCount) - { - log.warn('Lis2: item index out of bounds'); - return; - } - - // get item - var item = this.dataList.items[itemIndex]; - - // validate item - if (!this._isCheckBox(itemIndex)) - { - log.warn('Lis2: only checkbox or radio items can be used in the CheckBox API'); - return; - } - - // exit if we don't have _data property - if (!this._hasData(itemIndex)) - { - return; - } - - // cast as boolean - var value = Boolean(value); - - // cache value - item._data.settleValue = value; - - // perform inbound event filtering - if (!this._hasSettleTimeout(itemIndex, 'tick')) - { - // settle item immediately - this._settleItem(itemIndex); - } -}; - -/** - * Set checked state for a tick item (style03 and style03a) - * TAG: private - * ========================= - * @param {integer} - the index of the tick item - * @param {boolean} - TRUE for checked - * @return {void} - */ -List2Ctrl.prototype._setTick = function(itemIndex, value) -{ - // cast as boolean - var value = Boolean(value); - - // remove checked state of all radio items - for (var i=0; i start the range if not already started - if (currentRange.length == 0) - { - // set first index to the range start - currentRange[0] = i; - } - - // if this is the last iteration and we are still in an empty range -> close currentRange - if (i == l-1 && currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - else - { - // filled item encountered -> end the range if started - if (currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i-1; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - } - - return (ranges.length) ? ranges : null; -}; - -/** - * Get filled range - * traverse the dataList.items for filled items and returns - * an array of filled-item ranges - * TAG: public - * ========================= - * @return {array} - Array([firstFilled, lastFilled], [firstFilled, lastFilled]) - */ -List2Ctrl.prototype.getFilledRange = function() -{ - var ranges = []; - var currentRange = []; - - for (var i=0, l=this.dataList.items.length; i start the range if not already started - if (currentRange.length == 0) - { - // set first index to the range start - currentRange[0] = i; - } - - // if this is the last iteration and we are still in an filled range -> close currentRange - if (i == l-1 && currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - else - { - // empty item encountered -> end the range if started - if (currentRange.length == 1) - { - // set second index to the range end - currentRange[1] = i-1; - - // push currentRange to the ranges - ranges[ranges.length] = [currentRange[0], currentRange[1]]; - - // reset current range - currentRange.length = 0; - } - } - } - - return (ranges.length) ? ranges : null; -}; - -/** - * Get current focus mode - * TAG: public - * ========================= - * @return {string} - 'mainList' | 'letterIndex' | 'noFocus' - */ -List2Ctrl.prototype.getFocusMode = function() -{ - var currentFocusMode = 'mainList'; - if (!this._hasFocus) - { - currentFocusMode = 'noFocus'; - } - else if (this._inLetterIndexMulticontroller) - { - currentFocusMode = 'letterIndex'; - } - - return currentFocusMode; -}; - - -/** 7. OTHER **/ - -/** - * Set loading state of the list - * TAG: public - * ========================= - * @param {boolean} - enable or disable loading state - * @return {void} - */ -List2Ctrl.prototype.setLoading = function(state) -{ - // cast as boolean - var state = Boolean(state); - this._setLoading(state); -}; - - -/** - * Public API that changes the loading configuration - * ========================= - * @param {Object} - object that will set loading item configuration - * @return {Object} - retuns the loading configuration object - */ -List2Ctrl.prototype.setLoadingConfig = function (config) -{ - for (var i in config) - { - this.properties.loadingConfig[i] = config[i]; - } - - if (null !== this.properties.loadingConfig.loadingTextId && undefined !== this.properties.loadingConfig.loadingTextId && "" !== this.properties.loadingConfig.loadingTextId) - { - this.properties.loadingConfig.loadingText = this._getLocalizedString(this.properties.loadingConfig.loadingTextId, this.properties.loadingConfig.loadingSubMap); - } - this.loading.querySelector(".loadingText").innerText = ""; - this.loading.querySelector(".loadingText").appendChild(document.createTextNode(this.properties.loadingConfig.loadingText)); - this.loading.querySelector(".loadingImage1").style.backgroundImage = 'url(' + this.properties.loadingConfig.loadingImage1 + ')'; - - return this.properties.loadingConfig; -}; - -/** - * Enter or release reorder mode - * TAG: public - * ========================= - * @param {boolean} - enter or release list reorder - * @param {boolean} - prevent item select on releasing reorder - * @return {void} - */ -List2Ctrl.prototype.setReorder = function(state, preventSelect) -{ - // cast as boolean - var state = Boolean(state); - var preventSelect = Boolean(preventSelect); - - if (state && !this._inListReorder) - { - // if user has lost the reorder item - if (null != this._reorderCurrentIndex && (this._reorderCurrentIndex < this._topItem || this._reorderCurrentIndex > this._topItem + this.properties.visibleItems-1)) - { - if (this.dataList.items[this._reorderCurrentIndex] && !this.dataList.items[this._reorderCurrentIndex].disabled) - { - // reorder item is outside screen. Bring it back in and show focus on it - this._showFocus(this._reorderCurrentIndex); - } - } - - // enter into reorder - this._enterListReorder(); - } - else if (!state && this._inListReorder) - { - // release reorder - this._releaseListReorder(preventSelect); - } -}; - -/** - * Set fixed title for the list - * TAG: public - * ========================= - * @param {object} - title properties - * @return {void} - */ -List2Ctrl.prototype.setTitle = function(titleStructure) -{ - - // validate titleStructure - if (!titleStructure || !titleStructure.hasOwnProperty('titleStyle')) - { - return; - } - - /* - * title structure: - * { - * titleStyle : 'style02', - * text1Id : null, - * text1SubMap : null, - * text1 : '', - * image1 : 'path/to/image.png' - * } - */ - - // prepare title - var titleStructure = titleStructure || {}; - titleStructure = this._prepareTitle(titleStructure); - - if (this._currentTitle) - { - // we already have a title -> update it - - // validate new title - switch (titleStructure.titleStyle) - { - case 'style02' : - case 'style02a' : - case 'style03' : - // thin - if ('style02' != this._currentTitle.titleStyle && - 'style02a' != this._currentTitle.titleStyle && - 'style03' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - - case 'style05' : - case 'style08' : - // medium - if ('style05' != this._currentTitle.titleStyle && - 'style08' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - - case 'style06' : - case 'style07' : - // thick - if ('style06' != this._currentTitle.titleStyle && - 'style07' != this._currentTitle.titleStyle) - { - log.warn('Lis2: changing title style with a different height is not possible'); - return; - } - break; - } - } - - // empty title element - this.title.innerText = ''; - // remove old title style class - if (this._currentTitle) - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - this.title.classList.remove(this._currentTitle.titleStyle); - } - // add title style as a class - this.title.classList.add(titleStructure.titleStyle); - - // fill it - var line1, line2, image1; - - switch (titleStructure.titleStyle) - { - case 'style02' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style02a' : - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style03' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - this.divElt.classList.add('listTitleNormal'); - - break; - - case 'style05' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - line2.appendChild(document.createTextNode(titleStructure.text2)); - this.title.appendChild(line2); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - this.divElt.classList.add('listTitleMedium'); - - break; - - case 'style06' : - - if (titleStructure.image1 === 'canvas') - { - // preview image is a canvas - image1 = document.createElement('canvas'); - image1.className = 'image1'; - // store canvas for public API call - this.titleCanvas = image1; - this.title.appendChild(image1); - } - else - { - // preview image is an image - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - } - - this.divElt.classList.add('listTitleThick'); - - break; - - case 'style07' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - line2 = document.createElement('span'); - line2.className = 'line2'; - line2.appendChild(document.createTextNode(titleStructure.text2)); - this.title.appendChild(line2); - - this.divElt.classList.add('listTitleThick'); - - break; - - case 'style08' : - line1 = document.createElement('span'); - line1.className = 'line1'; - line1.appendChild(document.createTextNode(titleStructure.text1)); - this.title.appendChild(line1); - - image1 = document.createElement('span'); - image1.className = 'image1'; - image1.style.backgroundImage = 'url(' + titleStructure.image1 + ')'; - this.title.appendChild(image1); - - // add/remove styleMod class (warning/bold/both/'') - if ('warning' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - } - else if ('bold' == titleStructure.styleMod) - { - this.title.classList.add('bold'); - } - else if ('both' == titleStructure.styleMod) - { - this.title.classList.add('warning'); - this.title.classList.add('bold'); - } - else - { - this.title.classList.remove('warning'); - this.title.classList.remove('bold'); - } - - this.divElt.classList.add('listTitleMedium'); - - break; - - default : - log.error('Lis2: unknown title style: ' + titleStructure.titleStyle); - } - - // save the title structure - this._currentTitle = titleStructure; - -}; - - -/** 8. CONTEXT CAPTURE AND RESTORE **/ - -/** - * Context capture - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ -List2Ctrl.prototype.getContextCapture = function() -{ - var obj = { - hasFocus : this._hasFocus, - topItem : this._topItem, - focussedItem : this._getFocussedIndex(), - itemCount : this.dataList ? this.dataList.itemCount : 0 - }; - - log.debug('Lis2: getContextCapture obj ', obj); - return obj; -}; - -/** - * Context restore - * TAG: framework, public - * ========================= - * @return {object} - capture data - */ -List2Ctrl.prototype.restoreContext = function(restoreData) -{ - log.debug('Lis2: restoreContext restoreData ', restoreData); - // validate input - if (!restoreData.hasOwnProperty('topItem') || !restoreData.hasOwnProperty('focussedItem')) - { - log.info('No data to restore'); - return; - } - - - // restore hasFocus flag - if (restoreData.hasFocus) - { - this._hasFocus = true; - } - - if (this.hasDataList()) - { - // scroll to previous position and show previous focus - // no checks for value conflicts are necessary. These ought to be correct. - this._scrollTo(restoreData.topItem); - - // NOTE: actual focus placement happens in controllerActive event handling - - // mark the list as data-restored preventing any subsequent auto-scrolls - this._initialScrollMode = 'restore'; - - this._manageFocus(restoreData.focussedItem); - } - else - { - log.info('List has no dataList to restore'); - } - - // overwrite control properties - this.properties.scrollTo = restoreData.topItem; - this.properties.focussedItem = restoreData.focussedItem; - this._lastItemWithFocus = restoreData.focussedItem; -}; - - -/** 9. BACKGROUND API **/ - -/** - * Set a custom background on the list control - * TAG: public - * ========================= - * @return {void} - */ -List2Ctrl.prototype.setListBackground = function(img, position) -{ - this.clearListBackground(); - this.listBackground = document.createElement('div'); - this.listBackground.className = 'List2CtrlCustomBackground'; - this.listBackground.style.backgroundImage = 'url('+img+')'; - - // set background position - if (position && typeof position == 'object' && position['left'] != undefined && position['top'] != undefined) - { - var left = (!isNaN(position['left'])) ? position.left + 'px' : position.left.toString(); - var top = (!isNaN(position['top'])) ? position.top + 'px' : position.top.toString(); - this.listBackground.style.backgroundPosition = left + ' ' + top; - } - - this.divElt.appendChild(this.listBackground); -}; - -/** - * Clear any custom background image - * TAG: public - * ========================= - * @return {void} - */ -List2Ctrl.prototype.clearListBackground = function() -{ - if (this.listBackground) - { - this.listBackground.parentElement.removeChild(this.listBackground); - this.listBackground = null; - } -}; - - - -/** - * ========================= - * HELPERS AND UTILITIES - * ========================= - */ - - /** - * Create Tabs control - * ========================= - * @return The TabsCtrl instance. - */ -List2Ctrl.prototype._createTabsControl = function() -{ - log.debug(' Instantiating TabsCtrl'); - if (this.properties.tabsButtonConfig.tiltStartCallback) - { - log.warn("Lis2: the tabsButtonConfig.tiltStartCallback property was defined outside of the list control but should only be used by the list."); - } - this.properties.tabsButtonConfig.tiltStartCallback = this._tabsCtrlTiltStartCallback.bind(this); - return framework.instantiateControl(this.uiaId, this.divElt, "TabsCtrl", this.properties.tabsButtonConfig); -}; - -/** - * Clear the list contents when the user starts tilting to a new tab. - */ -List2Ctrl.prototype._tabsCtrlTiltStartCallback = function(controlRef, appData, params) -{ - if (this.title) - { - this.title.style.opacity = 0; - } - this.setDataList({}); - this._hideScrollIndicator(); -}; - - -/** - * Tracks touch position properties of the last two events. - * TAG: touch-only, internal - * ========================= - * @param {MouseEvent} - MouseMove event - * @return {void} - */ -List2Ctrl.prototype._trackEvent = function(e) -{ - // use shallow copy - var trackedEvents = this._trackedEvents; - trackedEvents[0] = trackedEvents[1]; - trackedEvents[1] = { y: e.pageY, x: e.pageX }; -}; - -/** - * Get touch direction upon touch move - * TAG: touch-only, internal - * ========================= - * @return {integer} - 1 for 'down', -1 for 'uo' - */ -List2Ctrl.prototype._getMoveDirection = function() -{ - var trackedEvents = this._trackedEvents, - event0 = trackedEvents[0], - event1 = trackedEvents[1]; - - if (!event0) return 1; - - return (event1.y - event0.y < 0) ? -1 : 1; -}; - -/** - * Get current list position (or specific position relative to supplied item index) - * TAG: internal - * ========================= - * @param {integer} - optional, item index from which to calculate position - * @return {string} - onepage | top | bottom | bottomclose | topclose | middle - */ -List2Ctrl.prototype._getListPosition = function(itemIndex) -{ - // get item index - var itemIndex = (undefined === itemIndex) ? this._topItem : itemIndex; - - // get list position - var listPosition = null; - - // determine list position - if (this.dataList.itemCount <= this.properties.visibleItems) - listPosition = 'onepage'; - else if (0 === itemIndex) - listPosition = 'top'; // list is at the top - else if (itemIndex === this.dataList.itemCount - this.properties.visibleItems) - listPosition = 'bottom'; // list is at the bottom - else if (itemIndex > this.dataList.itemCount - (2 * this.properties.visibleItems)) - listPosition = 'bottomclose'; // list is less than a screen to the bottom - else if (itemIndex < 2 * this.properties.visibleItems) - listPosition = 'topclose'; // list is less than a screen to the top - else - listPosition = 'middle'; // list is somewhere in the middle - - // return list position - return listPosition; -}; - - -/** - * Get additional space that needs to be added to the scroller - * height in order to satisfy the 'half-line' requirements. - * Correction is needed because there's a difference between - * visual style guide and actual item heights. The values are - * fixed and depend on the style. - * TAG: helper - * ========================= - * @return {integer} - */ -List2Ctrl.prototype._getAdditionalSpace = function() -{ - // determine additional space - var additionalSpace = 0; - switch (this.properties.titleConfiguration) - { - case 'noTitle' : - additionalSpace = this.properties.thickItems ? 6 : 32; - break; - case 'tabsTitle' : - additionalSpace = this.properties.thickItems ? 19 : 27; - break; - case 'listTitle' : - switch (this._currentTitle.titleStyle) - { - case 'style02' : - case 'style03' : - additionalSpace = this.properties.thickItems ? 19 : 27; - break; - case 'style05' : - case 'style08' : - additionalSpace = this.properties.thickItems ? 52 : 42; - break; - case 'style06' : - case 'style07' : - additionalSpace = this.properties.thickItems ? 60 : 32; - break; - default : - // nothing to do - break; - } - break; - default : - // nothing to do - break; - } - - - - return additionalSpace; -}; - -/** - * Get empty DOM elements - * Return the first element in the DOM that doesn't - * have data associated with it in the dataList - */ -List2Ctrl.prototype._getEmptyDOMElement = function() -{ - var emptyItem = null; - var items = []; - - // get item indeces and sort them in ascending order - for (var i=0; i return -1 - if (relativeY < 0 || e.pageY - this._maskPositionY < 0) - { - return -1; - } - - var itemIndex = Math.floor(relativeY / this.properties.itemHeight); - - // if we are in the active area but below the last item -> return -1 - if (itemIndex > this.dataList.itemCount - 1) - { - return -1; - } - - // constrain itemIndex to the max possible index - itemIndex = this.m.min(itemIndex, this.dataList.itemCount - 1); - - return itemIndex; -}; - -/** - * Get DOM Element by itemIndex - * Returns a DOM element (or null) for a particular - * item after performing a search for its item index - * TAG: internal, helper - * ========================= - * @param {integer} - index of the list item - * @return {HTML Element} -
  • element - */ -List2Ctrl.prototype._getDOMItem = function(itemIndex) -{ - var domItem = null; - - for (var i=0, l=this.items.length; i return -1 - if (relativeY < 0 || e.pageY - this._maskPositionY < 0) - { - return -1; - } - - var letterIndex = Math.floor(relativeY / this.properties.letterIndexHeight); - - // if we are in the active area but below the last letter index item -> return -1 - if (letterIndex > this.letterIndexData.length - 1) - { - return -1; - } - - // constrain letterIndex to the max possible index - letterIndex = this.m.min(letterIndex, this.letterIndexData.length - 1); - - return letterIndex; -}; - -/** - * Get Slider instance by itemIndex - * TAG: internal, helper - * ========================= - * @param {integer} - index of the list item - * @return {SliderCtrl} - slider instance - */ -List2Ctrl.prototype._getSlider = function(itemIndex) -{ - var sliderCtrl = null; - - var index; - if (utility.toType(itemIndex) === 'number') - { - index = itemIndex; - } - else - { - index = this._getFocussedIndex(); - } - - var domElt = this._getDOMItem(index); - if (domElt) - { - var poolId = domElt.getAttribute('data-poolid'); - var hashKey = 'slider_'+index+'_'+poolId; - - // check whether a slider exists - if (this._sliders.hasOwnProperty(hashKey) && this._sliders[hashKey].slider) - { - sliderCtrl = this._sliders[hashKey].slider; - } - } - - return sliderCtrl; -}; - -/** - * Checks whether the supplied itemIndex contains a slider - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item contains a slider - */ -List2Ctrl.prototype._isSlider = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isSlider = false; - - if (!isNaN(itemIndex)) - { - isSlider = ('style12' === this.dataList.items[itemIndex].itemStyle || 'style13' === this.dataList.items[itemIndex].itemStyle || 'style28' == this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isSlider = ('style12' === itemIndex || 'style13' === itemIndex|| 'style28' === itemIndex); - } - - return isSlider; -}; - -/** - * Checks whether the supplied itemIndex is a lock item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a lock item - */ -List2Ctrl.prototype._isLock = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isLock = false; - - if (!isNaN(itemIndex)) - { - isLock = ('styleLock' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isLock = ('styleLock' === itemIndex); - } - - return isLock; -}; - -/** - * Checks whether the supplied itemIndex contains toggle buttons - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item contains toggle buttons - */ -List2Ctrl.prototype._isToggle = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isToggle = false; - - if (!isNaN(itemIndex)) - { - isToggle = ('style10' === this.dataList.items[itemIndex].itemStyle || 'style11' === this.dataList.items[itemIndex].itemStyle || 'draggable' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isToggle = ('style10' === itemIndex || 'style11' === itemIndex || 'draggable' === itemIndex); - } - - return isToggle; -}; - -/** - * Checks whether the supplied itemIndex is On/Off item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is On/Off - */ -List2Ctrl.prototype._isOnOff = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isOnOff = false; - - if (!isNaN(itemIndex)) - { - isOnOff = ('styleOnOff' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isOnOff = ('styleOnOff' === itemIndex); - } - - return isOnOff; -}; - -/** - * Checks whether the supplied itemIndex is a step item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a step item - */ -List2Ctrl.prototype._isStep = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isStep = false; - - if (!isNaN(itemIndex)) - { - isStep = ('styleStep' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isStep = ('styleStep' === itemIndex); - } - - return isStep; -}; - -/** - * Checks whether the supplied itemIndex is a checkbox - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is a checkbox/tick/radio item - */ -List2Ctrl.prototype._isCheckBox = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isCheckbox = false; - - if (!isNaN(itemIndex)) - { - isCheckbox = ('style03' === this.dataList.items[itemIndex].itemStyle || 'style03a' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isCheckbox = ('style03' === itemIndex || 'style03a' === itemIndex); - } - - return isCheckbox; -}; - -/** - * Checks whether the supplied itemIndex is a simple select item - * TAG: internal, helper - * ========================= - * @param {integer|string} - index of the list item | item style - * @return {boolean} - true if the item is simple select item - */ -List2Ctrl.prototype._isSimpleSelectItem = function(itemIndex) -{ - // exit if we don't have any items - if (!this.hasDataList()) - { - return false; - } - - var isSimpleSelect = false; - - if (!isNaN(itemIndex)) - { - isSimpleSelect = ('style03' === this.dataList.items[itemIndex].itemStyle || 'style03a' === this.dataList.items[itemIndex].itemStyle || 'styleOnOff' === this.dataList.items[itemIndex].itemStyle || 'style10' === this.dataList.items[itemIndex].itemStyle || 'style11' === this.dataList.items[itemIndex].itemStyle); - } - else if (typeof itemIndex === 'string') - { - isSimpleSelect = ('styleOnOff' === itemIndex || 'style10' === itemIndex || 'style11' === itemIndex); - } - - return isSimpleSelect; -}; - -/** - * Checks whether the item contains _data property - * TAG: internal, helper - * ========================= - * @param {integer} - item index - * @return {Boolean} - True if the item contains _data property - */ -List2Ctrl.prototype._hasData = function(itemIndex) -{ - var containsData = false; - if (this.dataList && this.dataList.items && this.dataList.items[itemIndex]) - { - containsData = this.dataList.items[itemIndex].hasOwnProperty('_data'); - } - return containsData; -}; - -/** - * Wraps inline text element if the width exceeds certain - * max width that depends on the item style. - * TAG: internal, helper - * ========================= - * @param {HTML Li Element} - the LI element that will be searched for overflowing text - * @return {HTML Li Element} - the modified LI element - */ -List2Ctrl.prototype._wrapInlineElement = function(li) -{ - var searchClass = null; - var maxWidth = 0; - - if (li.classList.contains('style17')) - { - searchClass = 'line1'; - maxWidth = this.properties.wrapTextThreshold; - } - else - { - return li; - } - - var line1 = li.getElementsByClassName(searchClass); - if (!line1 || 0 === line1.length) - { - return li; - } - else - { - line1 = line1[0]; - } - - if (line1.clientWidth > maxWidth) - { - line1.classList.add("wrap"); - } - else - { - line1.classList.remove("wrap"); - } - - return li; -}; - -/** - * Checks if the item can be displayed, even if it has no text field. - * TAG: internal, helper - * ===================================================== - * @param {Object} - * @return {Boolean} - */ -List2Ctrl.prototype._displayWithoutText = function(item) -{ - var returnValue = true; - for(var i =0; i < this._itemsWithNoText.length; i++) - { - if(item.itemStyle === this._itemsWithNoText[i]) - { - returnValue = false; - break; - } - } - return returnValue; -}; - -/** - * Checks if the item is a slider with full hittable area - * TAG: internal, helper - * =================================================== - * @param {Object} - * @return {Boolean} - */ -List2Ctrl.prototype._hasRightHittableArea = function(item) -{ - var returnValue = false; - - for(var i =0; i < this._rightHittableArea.length; i++) - { - if(item.itemStyle === this._rightHittableArea[i]) - { - returnValue = true; - break; - } - } - return returnValue; -}; - - -/** - * Show bounding boxes of some elements in the list. - * This should be used for debugging purposes only - * TAG: internal, utility - * ========================= - * @param {Boolean} - * @return {void} - */ -List2Ctrl.prototype.showBoundingBoxes = function(state) -{ - if (state) - { - this.divElt.classList.add('showBoundingBoxes'); - } - else - { - this.divElt.classList.remove('showBoundingBoxes'); - } -}; - - -/** - * Searches an array for a value - * TAG: internal, utility - * ========================= - * @param {string|number} - * @param {array} - * @return {object} - copy of the source object - */ -List2Ctrl.prototype.inArray = function(needle, haystack) -{ - if (!needle || !haystack) - { - log.warn('Lis2: 2 arguments expected'); - return; - } - - for (var i=0, l=haystack.length; i b ? a : b // return the higher - : NaN; // else return NaN (just like the Math class) - }, - abs : function(a) - { - return (!isNaN(a)) ? // if the argument is a number - a < 0 ? -a : a // return the abs - : NaN; // else return NaN (just like the Math class) - } -}; - -/** - * Finish partial activity. - * @return {void} - */ -List2Ctrl.prototype.finishPartialActivity = function() -{ - // route finish partial activity to sub controls - - // tabs ctrl - if (this.tabsCtrl) - { - // delete the assigned callback reference so that it's not stored in the App's context table - delete this.properties.tabsButtonConfig.tiltStartCallback; - this.tabsCtrl.finishPartialActivity(); - } - - // slider - if (this._activeSlider && this._activeSlider.slider) - { - this._activeSlider.slider.finishPartialActivity(); - } - - // list -> exit any items in secondary MC mode - if (this._inSecondaryMulticontroller) - { - var smi = this._currentSecondaryMulticontrollerItem; - if (this.dataList.items[smi] && this._isStep(smi)) - { - this._setSecondaryMulticontroller(false); - this._triggerFocus(); - } - } -}; - - -/** - * ========================= - * GARBAGE COLLECTION - * - Clear listeners - * - Clean up subcontrols - * - Clear timeouts - * TAG: framework - * ========================= - * @return {void} - */ -List2Ctrl.prototype.cleanUp = function() -{ - // remove event callbacks - this.divElt.removeEventListener(this._USER_EVENT_START, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_MOVE, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_END, this.touchHandler, false); - document.removeEventListener(this._USER_EVENT_OUT, this.touchHandler, false); - - // remove animation callbacks - this.scroller.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollerAnimationEndCallback, false); - if (this.scrollIndicator) - { - this.scrollIndicator.removeEventListener(this._VENDOR + 'TransitionEnd', this.scrollIndicatorAnimationEndCallback, false); - } - if (this.letterIndex) - { - this.letterIndex.removeEventListener(this._VENDOR + 'TransitionEnd', this.letterIndexAnimationEndCallback, false); - } - - // clean up subcontrols - if (this.tabsCtrl) - { - this.tabsCtrl.cleanUp(); - } - for (var i in this._sliders) - { - this._sliders[i]['slider'].cleanUp(); - } - - // clear timeouts - clearTimeout(this._makeHitTimeoutId); - clearTimeout(this._longPressTimeoutId); - clearTimeout(this._touchReorderTimeoutId); - clearTimeout(this._scrollIndicatorTimeoutId); - clearTimeout(this._indexSelectTimeoutId); - clearTimeout(this._tiltHoldTimeoutId); - clearInterval(this._tiltHoldIntervalId); - clearTimeout(this._needDataTimeoutId); - clearTimeout(this._loadingData.startTimeoutId); - clearTimeout(this._loadingData.endTimeoutId); - clearTimeout(this._radioSettleTimeoutId); - clearTimeout(this._tickSettleTimeoutId); - if (this.hasDataList()) - { - for (var i=0, l=this.dataList.items.length; i 4) - { - index = 4; - } - - if (index !== this._getFocus()) - { - this._setFocus(index); - this._setHighlight(index); - } -} - -// Start a timer while the user holds tilt. -MainMenuCtrl.prototype._startTiltHoldTimer = function() -{ - this._cancelFastTilt(); - - // Only start the fast tilt hold timer if fast-tilting would have any effect from the current focus position. - if ((this._fastTiltDirection === -1 && this._getFocus() > 0) || - (this._fastTiltDirection === 1 && this._getFocus() < 4)) - { - this._tiltHoldTimerId = setTimeout(this._startFastTiltInterval.bind(this), this.properties.tiltHoldTime); - } -} - -// Invoked when the user holds tilt long enough to start fast tilting. -MainMenuCtrl.prototype._startFastTiltInterval = function() -{ - framework.common.beep("Long", "Multicontroller"); - this._tiltHoldTimerId = null; - this._fastTiltStep(); - this._fastTiltStepIntervalId = setInterval(this._fastTiltStep.bind(this), this.properties.tiltStepTime); -} - -// Cancels all fast-tilt or tilt-hold timers. -MainMenuCtrl.prototype._cancelFastTilt = function() -{ - clearTimeout(this._tiltHoldTimerId); - clearInterval(this._fastTiltStepIntervalId); - - this._tiltHoldTimerId = null; - this._fastTiltStepIntervalId = null; -} - -// Periodic interval invoked during fast tilting. -MainMenuCtrl.prototype._fastTiltStep = function() -{ - this._offsetFocus(this._fastTiltDirection); -} - -// Handle multicontroller events. -MainMenuCtrl.prototype.handleControllerEvent = function(eventId) -{ - var response = null; - switch(eventId) - { - case "lostFocus": - if (framework.isCurrentTemplateDialog()) - { - this._setHighlight(-1); - } - response = "consumed"; - break; - - case "acceptFocusInit": - this._setHighlight(this._getFocus()); - response = "consumed"; - break; - - case "ccw": - if (this._allowInput) - { - this._offsetFocus(-1); - response = "consumed"; - } - break; - - case "cw": - if (this._allowInput) - { - this._offsetFocus(1); - response = "consumed"; - } - break; - - case "leftStart": - if (this._allowInput) - { - this._lastControllerStartEvent = eventId; - this._fastTiltDirection = -1; - this._offsetFocus(this._fastTiltDirection); - this._startTiltHoldTimer(); - response = "consumed"; - } - break; - - case "left": - if (this._allowInput && this._lastControllerStartEvent === "leftStart") - { - this._cancelFastTilt(); - response = "consumed"; - } - this._lastControllerStartEvent = ""; - break; - - case "rightStart": - if (this._allowInput) - { - this._lastControllerStartEvent = eventId; - this._fastTiltDirection = 1; - this._offsetFocus(this._fastTiltDirection); - this._startTiltHoldTimer(); - response = "consumed"; - } - break; - - case "right": - if (this._allowInput && this._lastControllerStartEvent === "rightStart") - { - this._cancelFastTilt(); - response = "consumed"; - } - this._lastControllerStartEvent = ""; - break; - - case "selectStart": - if (this._allowInput) - { - this._lastControllerStartEvent = eventId; - this._setHighlight(this._getFocus()); - } - break; - - case "select": - if (this._allowInput && this._lastControllerStartEvent === "selectStart") - { - this._invokeSelectCallback(this._getFocus()); - response = "consumed"; - } - this._lastControllerStartEvent = ""; - break; - } - - return response; -} - -MainMenuCtrl.prototype.startTransitionFrom = function() -{ - if (this._hasInvokedSelectCallback) - { - var index = this._getFocus(); - switch (index) - { - case 0: // fallthrough - case 4: - this._coins[index].div.classList.add("MainMenuCtrlCoinAExplode"); - this._coins[index].highlight.classList.add("MainMenuCtrlHighlightExplode"); - break; - - case 1: // fallthrough - case 2: // fallthrough - case 3: - this._coins[index].div.classList.add("MainMenuCtrlCoinBExplode"); - this._coins[index].highlight.classList.add("MainMenuCtrlHighlightExplode"); - break; - - default: - break; - } - } -} - -MainMenuCtrl.prototype.endTransitionTo = function() -{ - this._iconNameDiv.classList.add("Visible"); -} - -MainMenuCtrl.prototype.getContextCapture = function() -{ - var capture = {}; - capture.focusedIcon = this._getFocus(); - log.debug("MainMenuCtrl.prototype.getContextCapture " + capture.focusedIcon); - return capture; -} - -MainMenuCtrl.prototype.restoreContext = function(capture) -{ - if (capture && typeof capture.focusedIcon === "number") - { - this._setFocus(capture.focusedIcon); - log.debug("MainMenuCtrl.prototype.restoreContext " + capture.focusedIcon); - } -} - -MainMenuCtrl.prototype.finishPartialActivity = function() -{ - this._cancelFastTilt(); - - // Null out the selectCallback to prevent any inadvertant callbacks while/after this template is destroyed. - this.properties.selectCallback = null; -} - -MainMenuCtrl.prototype.cleanUp = function() -{ - // delete obj reference - delete this.properties; - - document.body.removeEventListener("mousemove", this._mouseMoveCallback); - document.body.removeEventListener("mousedown", this._mouseDownCallback); - document.body.removeEventListener("mouseup", this._mouseUpCallback); - - for (var i = 0; i < this._coins.length; i++) - { - this._coins[i].div.removeEventListener('OTransitionEnd', this._coins[i].setHighlightEndBinder); - } - - if (this._allowInputTimerId) - { - clearTimeout(this._allowInputTimerId); - this._allowInputTimerId = null; - } - - this._cancelFastTilt(); -} - -framework.registerCtrlLoaded("MainMenuCtrl"); diff --git a/app/files/tweaks/config_org/message_replies/jci/settings/configurations/blm_msg-system.xml b/app/files/tweaks/config_org/message_replies/jci/settings/configurations/blm_msg-system.xml deleted file mode 100644 index 0c38774..0000000 --- a/app/files/tweaks/config_org/message_replies/jci/settings/configurations/blm_msg-system.xml +++ /dev/null @@ -1,1235 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.56.00.230A-EU b/app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.56.00.230A-EU deleted file mode 100644 index 1855624..0000000 --- a/app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.56.00.230A-EU +++ /dev/null @@ -1,2364 +0,0 @@ -/* - Copyright 2012 by Johnson Controls - __________________________________________________________________________ - - Filename: Common.js - __________________________________________________________________________ - - Project: JCI-IHU - Language: EN - Author: awoodhc - Date: 08.27.2012 - __________________________________________________________________________ - - Description: IHU GUI Common - - Revisions: - v0.1 (27-Aug-2012) Create Common to handle all "system-wide" logic - v0.2 (27-Aug-2012) Added basic logic for "global" controls, multicontroller events, transitions, ctrl clicks, basic BG logic - v0.3 (28-Aug-2012) Added logic for alerts - v0.4 (11-Oct-2012) Added logic to hide Home Button while on Home Screen - v0.5 (04-Nov-2012) Added API to display App Name in Status Bar - Added Diag Entry logic - v0.6 (08-Nov-2012) Added API for Setting the Left Button Style. - v0.7 (19-Nov-2012) Changed Alert event to conform with MMUI standards. Added API to set the Status Bar Clock with value from MMUI. - v0.8 (26-Nov-2012) Fixed Diagnostics Entry. Common now counts a sequence to make sure the sequence is complete before resetting. - v0.9 (03-Dec-2012) Added message table for handling MMUI common messages and handling for LanguageChangeStatus msg - v1.0 (05-Dec-2012) Added API to set state of status bar icons - v1.1 (21-Jan-2012) Added new SBN and Wink logic - __________________________________________________________________________ - - */ - -log.addSrcFile("Common.js", "common"); -//log.setLogLevel("common", "debug"); - -function Common() -{ - log.debug("constructor called..."); - - //-- public variables - this.moduleName = "common"; // (String) Name of this module (used in place of uiaId when instantiating controls) - this.statusBar = null; // (Object) Status Bar Control Object - this.leftBtn = null; // (Object) Left Button Control Object - - this.cmnCtrlsDisabled = false; // (Boolean) Whether to Status Bar/Left Button are disabled due to a dialog - - - //-- private variables - - this._cachedTime = 0; // (Number) Stores the time value sent from MMUI via GUI_SYSSETTINGS - this._cachedTemplate = null; // (Object) template currently active in the DOM. Framework updates this. - this._menuUpReceiverApp = null; // (String) cached uiaId sent from MMUI when during a transition caused by a Menu Up action - this._canShowSbns = false; // (Boolean) true if Common can display SBNs over the cached template - - this._bgDiv1 = null; // (HTMLElement) the background div - this._bgDiv2 = null; // (HTMLElement) used to transition between 2 backgrounds - this._rightChrome = null; // (HTMLElement) the div used to display the right-hand chrome - this._customBgSet = false; // (Boolean) true if there is a custom bg set by the current template - this._defaultBgPath = "common/images/background.png"; // (String) the css path to the default bg image - this._currentBgPath = this._defaultBgPath; // (String) the css path to the current bg image - - this._wink = null; // (Object) The active Wink Control Object (null if none displayed) - this._winkTimeout = guiConfig.winkTimeout; // (Number) milliseconds a Wink will stay on screen - - this._muteWink = null; // (Object) The Entertainment Mute Wink Control Object (null if none displayed) - - this._cachedVuiState = null; // (String) Last VUI state sent from MMUI. - this._vuiHelpDialog = null; // (Object) The active VUI Help Dialog Control (null if none displayed) - this._lineNumberData = null; // (Object) Contains data passed from a List pertaining to the VUI line numbers - - this._diagEntrySequence = 0; // (Number) 1 if the Diagnostics entry button sequence has begun. 2 if it has completed. - this._clockHomeButtonLongPressIntervalId = null; - - this._atSpeed = false; // (Boolean) true if AtSpeed event is received from MMUI - this._isMuted = false; // (Boolean) true if entertainment audio is currently muted - - this._contextCategory = new ContextCategory(); // (Object) Contains a lookup table to determine a context's category. - - //-- Status Bar Auto-Hide Variables - // MPP 09/16/2013 SW00107357 - this._displaySbUmpByActivity = false; // (Boolean) Master switch for auto-hide status bar/UMP feature - this._displaySbUmpActivityTypes = "both"; // (String) "both" for both touch & MC input to count as activity, "touch" for touch-only input - this._inactivityTimer = null; // (Object) The timer used to measure (in)activity for auto-hiding the status bar & UMP - this._onInactivityBinder = this._onInactivity.bind(this); // (Callback) Bind the timer callback once to save memory - this._activityDetected = false; // (Boolean) Flag raised on touch/MC input; lowered when inactivity timer expires - this._sbRequestedState = "none"; // (String) External request to show/hide status bar - this._sbDelay_ms = -1; // (Integer) # of milliseconds before status bar animation starts (external request) - this._sbDuration_ms = -1; // (Integer) # of milliseconds status bar animation should take (external request) - this._defaultSbDelay_ms = 0; // (Integer) Default delay timing for status bar animation - this._defaultSbDuration_ms = 500; // (Integer) Default duration timing for status bar animation - this._defaultHelpPrompt = "SpeechNotAllowed_Help"; // (string) help promp name which requires default help screen - - //-- Status Bar Notification Variables - /* - * See _setKnownSbn() function for _knownSbns variable properties - */ - this._knownSbns = new Object(); // (Object) key'd to SbnId, value is SbnObject with information necessary to display Sbn - this._sbnIsDisplayed = false; // (Boolean) Flag indicating whether an SBN is displayed (true) or not (false). - this._displayedSbn = null; // (Object) Refernce to the currently displayed Sbn Control. - this._displayedSbnId = null; // (String) SbnId of the currently displayed Sbn. null if none is displayed - this._displayedSbnTimerId = 0; // (Number) Timer ID used for timed Sbns. - this._sbnQueue = new Array(); // (Array) Queue of all current Sbns by Id. 0 is next in line to be dispalyed. - - // Default SBN values used where value is not specified in UI Spec. - var dfltDuration = 2000; // (Number) default number of milliseconds - var dfltQueue = 0; // (Number) default number of milliseconds - - // NOTE: State-based SBNs do not expire, but Timed SBNs should be queueTime 0 so that they do not re-appear (exception: driverId) - - this._SBN_TYPES = { // (Object) contains list of Sbn Priorities by type, defined in System UI Spec - - //replaced old sbn types with new letter based sbn types(As per SCR SW00155262) - "typeA": {"priority": 1, "timedDuration": 2000, "queueTime": 0}, // 1 is highest priority - "typeB": {"priority": 2, "timedDuration": dfltDuration, "queueTime": dfltQueue}, - "typeL": {"priority": 3, "timedDuration": 5000, "queueTime": 60000}, - "typeC": {"priority": 4, "timedDuration": dfltDuration, "queueTime": dfltQueue}, - "typeD": {"priority": 5, "timedDuration": 5000, "queueTime": 0}, - "typeE": {"priority": 6, "timedDuration": 5000, "queueTime": 0}, - "typeF": {"priority": 7, "timedDuration": 5000, "queueTime": 0}, - "typeG": {"priority": 8, "timedDuration": 5000, "queueTime": 0}, - "typeI": {"priority": 9, "timedDuration": 5000, "queueTime": 0}, - "typeJ": {"priority": 10, "timedDuration": 5000, "queueTime": 0}, - "typeK": {"priority": 11, "timedDuration": dfltDuration, "queueTime": dfltQueue}, - "unknown": {"priority": 100, "timedDuration": dfltDuration, "queueTime": dfltQueue} - }; - - this._SBN_MAPPING_TABLE = { // contains mapping of old sbn types with new letter based sbn types(As per SCR SW00155262) - "volumeStatus" : "typeA", - "vrStatus" : "typeB", - "driverId" : "typeL", - "navigationNear" : "typeC", - "deviceConnected" : "typeD", - "entertainmentInfo" : "typeE", - "errorNotification" : "typeF", - "btConnecting" : "typeG", - "deviceRemoved" : "typeI", - "navigationFar" : "typeJ", - "systemFailure": "typeK", - "unknown": "unknown" - }; - - // Any SBN type in the blacklist will be blocked if it is requested. This is a centralized fix for evolving requirements. - this._SBN_TYPE_BLACKLIST = [ - "typeK" - ]; - - //@formatter:off - this._messageTable = { - "LanguageChangeStatus" : this._LanguageChangeStatusMsgHandler.bind(this), - "Global.AtSpeed" : this._AtSpeedMsgHandler.bind(this), - "Global.NoSpeed" : this._NoSpeedMsgHandler.bind(this), - "Global.PageUp" : this._PageUpDownMsgHandler.bind(this), - "Global.PageDown" : this._PageUpDownMsgHandler.bind(this), - "vuiState" : this._vuiStateMsgHandler.bind(this), - "vuiMicLevel" : this._vuiStateMsgHandler.bind(this), - "Global.SelectLineNumber" : this._SelectLineNumMsgHandler.bind(this), - "Global.StartHelp" : this._ShowVuiHelpHandler.bind(this), - "Global.HideHelp" : this._HideVuiHelpHandler.bind(this), - "Global.StatusUpdateVolumeOnOff" : this._HandleStatusUpdateVolume.bind(this), - "Global.MenuUpReceived" : this._MenuUpReceived.bind(this) - - }; // end of this._messageTable - //@formatter:on - - - //-- DOM logic - // Add the background image to the body - this._bgDiv1 = document.createElement('div'); - this._rightChrome = document.createElement('div'); - - this._bgDiv1.id = "CommonBgImg1"; - this._bgDiv1.className = "CommonBgImg"; - - this._rightChrome.id = "CommonRightChrome1"; - this._rightChrome.className = "CommonRightChrome"; - this._rightChrome.style.visibility = "hidden"; - - document.body.appendChild(this._bgDiv1); - document.body.appendChild(this._rightChrome); - - // Add controls to the DOM - this.addControls(); -}; - -/* (internal - called by framework) - * Instantiates the LeftBtnControl and StatusBarCtrl (usually only happens when the language is changed) - */ -Common.prototype.addControls = function() -{ - log.debug("addControls called."); - - // Status Bar - if (this.statusBar)//never add more than one instance of these controls - { - log.debug("status bar exists"); - // MPP 08/29/2013 SW00127573 - // Refresh status bar, rather than re-instantiating it, when languages change - //framework.destroyControl(this.statusBar); - //this.statusBar = null; - this.statusBar._refresh(); - } - else - { - log.debug("instantiating status bar"); - // create the status bar - var statusProp = { - "selectCallback" : this._statusBarClicked.bind(this), - "longPressCallback" : this._statusBarLongPress.bind(this) - }; - - this.statusBar = framework.instantiateControl(this.moduleName, document.body, "StatusBarCtrl", statusProp); - } - - // Left Button - if (this.leftBtn) - { - //never add more than one instance of these controls - //framework.destroyControl(this.leftBtn); - //this.leftBtn = null; - } - else - { - // create the left button - var lftBtnProp = {"selectCallback" : this._leftBtnSelected.bind(this)}; - - this.leftBtn = framework.instantiateControl(this.moduleName, document.body, "LeftBtnCtrl", lftBtnProp); - - this._checkTemplateProperties(); - } -}; - -/* (internal - called by framework) - * Destroys the LeftButtonControl and StatusBarCtrl (usually only happens when the language is changed) - */ -Common.prototype.removeControls = function() -{ - if (this.statusBar) - { - framework.destroyControl(this.statusBar); - this.statusBar = null; - } - - if (this.leftBtn) - { - framework.destroyControl(this.leftBtn); - this.leftBtn = null; - } - -}; - -/* - * Checks templates properties for global controls. Called when a language change occurs - */ -Common.prototype._checkTemplateProperties = function() -{ - log.debug("_checkTemplateProperties called."); - var template = this._cachedTemplate; - //we should be able to use the cached template here, because when changing languages, we don't change context - - var data; - if (template) - { - data = this._calcTransitionData(template); - } - else - { - //defaults - log.debug(" No template could be found. Using default values."); - data = new Object(); - data.leftButtonVisible = false; - data.statusBarVisible = true; - } - - log.debug(" Left Btn Visible: " + data.leftButtonVisible + ", Status Bar Visible: " + data.statusBarVisible); - - - if (data.leftButtonVisible) - { - this.leftBtn.divElt.style.visibility = 'visible'; - } - else - { - this.leftBtn.divElt.style.visibility = 'hidden'; - } - - if (data.statusBarVisible) - { - this.statusBar.divElt.style.visibility = 'visible'; - } - else - { - this.statusBar.divElt.style.visibility = 'hidden'; - } - -}; - -/* (internal) - * Called by framework when a context change occurs and data is needed. - * @param template (object) The template that will be transitioned to. - */ -Common.prototype.getCommonTransitionData = function(template) -{ - if (template == null) - { - log.error("getCommonTransitionData called with null template."); - return; - } - - // Terminate any activity timer that may be running so we don't see the - // previous template's status bar or UMP sliding during the transition - this._cleanUpInactivityTimer(); - - this._updateMuteWinkOnTransition(this._cachedTemplate, template); - - this._closeVuiHelpOnTransition(template); - - // tell left button or the previous template to lose focus before the transition starts - this.handleControllerEvent('lostFocus'); - - // cache template: - this._cachedTemplate = template; - - // Hide VUI Numbers - this.leftBtn.hideLineNumbers(); - - // Update _canShowSbns variable and hide active SBN if necessary - this._updateCanShowSbns(); - - var data = this._calcTransitionData(template); - return data; -}; - -/* (private) - * Returns an object with common transition data for the upcoming transition - * @param template (object) The template that will be transitioned to. - * @return (object) Object containing common transition data - */ -Common.prototype._calcTransitionData = function(template) -{ - if (template.properties.customBgImage) - { - if (template.properties.customBgImage != this._currentBgPath) - { - this._bgDiv2 = document.createElement('div'); - this._bgDiv2.id = "CommonBgImg2"; - this._bgDiv2.className = "CommonBgImg"; - this._bgDiv2.style.backgroundImage = "url(" + template.properties.customBgImage + ")"; - this._currentBgPath = template.properties.customBgImage; - document.body.insertBefore(this._bgDiv2, this._bgDiv1); - this._customBgSet = true; - } - } - else if (this._customBgSet == true) // don't transition to default bg on a dialog - { - this._bgDiv2 = document.createElement('div'); - this._bgDiv2.id = "CommonBgImg2"; - this._bgDiv2.className = "CommonBgImg"; - this._bgDiv2.style.backgroundImage = "url(" + this._defaultBgPath + ")"; - this._currentBgPath = this._defaultBgPath; - document.body.insertBefore(this._bgDiv2, this._bgDiv1); - this._customBgSet = false; - } - - // Check for menu up - var menuUpUsed = false; - if (this._menuUpReceiverApp) - { - if (this._menuUpReceiverApp === this._cachedTemplate.contextInfo.uiaId) - { - menuUpUsed = true; - } - this._menuUpReceiverApp = null; - } - - //@formatter:off - var commonTransitionData = { - // references to system control objects - "statusBar" : this.statusBar, - "leftButton" : this.leftBtn, - // booleans - "statusBarVisible" : template.properties.statusBarVisible, - "leftButtonVisible" : template.properties.leftButtonVisible, - "menuUpUsed": menuUpUsed, - // bg data - "customBgImage" : template.properties.customBgImage, - "bgDiv1" : this._bgDiv1, - "bgDiv2" : this._bgDiv2, - // other - "rightChrome" : this._rightChrome, - "rightChromeVisible": (template.properties.rightChromeVisible === true) ? true : false - }; - - if (template.properties.isDialog) - { - // Preserve left button visibility from the previous context when going to a dialog context. - commonTransitionData.leftButtonVisible = this.leftBtn.divElt.style.visibility === "visible"; - commonTransitionData.rightChromeVisible = this._rightChrome.style.visibility === "visible"; - } - - //@formatter:on - return commonTransitionData; -}; - -/* (internal) - * Callback for when the controls transition completes. Currently only used for custom backgrounds - * @param transitionData (object) the data that was used during the transition - */ -Common.prototype.commonControlsUpdateComplete = function(transitionData) -{ - if (transitionData.bgDiv2) - { - // bgDiv2 transitioned in, so we need to remove bgDiv1 - utility.removeHTMLElement(transitionData.bgDiv1.id); - - this._bgDiv1 = this._bgDiv2; - this._bgDiv1.id = "CommonBgImg1"; - this._bgDiv2 = null; - } - - if (framework.getCurrentApp() == "syssettings" && framework.getCurrCtxtId() == "DisplayTab") - { - this.statusBar.enableClockBtn(true); - } - else - { - this.statusBar.enableClockBtn(false); - this._diagEntrySequence = 0; // reset the sequence on context change - } - - // Retrieve the types of input that will count as user activity, and then - // turn on activity monitoring for this context/template (if needed) - this._displaySbUmpActivityTypes = "both"; - if (this._cachedTemplate.properties.displaySbUmpActivityTypes === "both" || - this._cachedTemplate.properties.displaySbUmpActivityTypes === "touch") { - this._displaySbUmpActivityTypes = this._cachedTemplate.properties.displaySbUmpActivityTypes; - } - - this._setDisplaySbUmpByActivityEnabled(this._cachedTemplate.properties.displaySbUmpByActivity == true); - - // show SBN if needed - if (this._canShowSbns) - { - // If there's NO SBN displayed - if (!this._displayedSbnId) - { - // ENTRY POINT #2 - // If a new SBN gets displayed, _displaySbnFromQueue will return the ID - var newSbnId = this._displaySbnFromQueue(); - - if (newSbnId) - { - // Tell Status Bar about the SBN - this._sbnIsDisplayed = true; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - - if (this._cachedTemplate.properties.statusBarVisible) - { - // Snap the status bar visible (only if this template is set to display a status bar) - this.statusBar.transitionVisible(0, 0, "slide", true); - } - - // Notify MMUI to turn on display if needed. - framework.sendEventToMmui("system", "DisplayOffNotificationEvent", {"payload": {"notificationActive": 1}}); - } - - } - } - - this.handleControllerEvent('acceptFocusInit'); - -}; - -/* (internal - Called by Controls) - * Sends a "lostFocus" Multicontroller event to the currently focused Control so that the - * Control calling stealFocus() can gain focus. - * After calling this API, the calling Control -must- gain focus automatically. - */ -Common.prototype.stealFocus = function() -{ - var response = null; - - if (this.leftBtn.btnInstance.hasFocus) - { - response = this.leftBtn.handleControllerEvent("lostFocus"); - } - else if (this._cachedTemplate && this._cachedTemplate.handleControllerEvent) - { - response = this._cachedTemplate.handleControllerEvent("lostFocus"); - } - else - { - log.warn("Cannot steal focus. Common's cached template is either null or does not have handleControllerEvent."); - } - - return response; -}; - -/* (internal - Called by framework) - * Handles multicontroller events, specifically the left event for the leftBtn - * @param eventID (string) any of the “Internal event name” values in IHU_GUI_MulticontrollerSimulation.docx (e.g. 'cw', - * 'ccw', 'select') - * @return true if common 'consumed' the tui event. false otherwise. - */ -Common.prototype.handleControllerEvent = function(eventId, firstEvent) -{ - if (eventId == "goBack") // Note: "goBack" event sent from Multicontroller.js indicates the TUI back key has been pressed - { - framework.sendEventToMmui("common", "Global.GoBack"); - } - - // The first event is thrown away, but "controllerActive" is still passed to the template/control to change its highlight - // Thus, "ccw" will come in with firstEvent true, but "controllerActive" will also come in separately with firstEvent false - if (firstEvent) - { - log.debug(" firstEvent detected. Ignoring."); - return; - } - - // Test whether one of Common/Global controls has multicontroller focus and react accordingly - - if (this._cachedTemplate && this._cachedTemplate.handleControllerEvent) - { - // always pass along controller active and touch active - if (eventId != "touchActive" && eventId != "controllerActive") - { - if (this.leftBtn.btnInstance.hasFocus) - { - var response = this.leftBtn.handleControllerEvent(eventId); - if (response == "giveFocusRight") - { - var response = this._cachedTemplate.handleControllerEvent("acceptFocusFromLeft"); - if (response == "consumed") - { - this.leftBtn.handleControllerEvent("lostFocus"); - } - } - } - else - { - var response = this._cachedTemplate.handleControllerEvent(eventId); - if (response == "giveFocusLeft" && this._cachedTemplate.properties.leftButtonVisible) - { - this.leftBtn.handleControllerEvent("acceptFocusFromRight"); - this._cachedTemplate.handleControllerEvent("lostFocus"); - } - } - } - else - { - // always pass along controller active and touch active - if (this.leftBtn) // left button check to prevent race conditions during language change - { - this.leftBtn.handleControllerEvent(eventId); - } - // _cachedTemplate is checked above - this._cachedTemplate.handleControllerEvent(eventId); - - } - - } - else - { - log.warn("Common's cached template is either null or does not have handleControllerEvent."); - } -}; - -/* (internal - Called by framework) - * Handles alert messages from framework, sent by MMUI. - */ -Common.prototype.handleAlert = function(uiaId, alertId, params) -{ - log.debug("handleAlert called."); - - // MMUI should never send two alerts at once. This is a backup check. - if (this._wink) - { - return; - } - - var app = framework.getAppInstance(uiaId); - var properties = null; - - if (app && app.getWinkProperties) // check for App method - { - properties = app.getWinkProperties(alertId, params); - } - - // NOTE: Even though we can't show the Wink, I still call into the GUI App (above) in case they have logic that needs to be done - if (!this._canShowSbns) - { - // We're in a context that can't show Winks. Immediately Ack - framework.websockets.sendAlertCompleteMsg(uiaId, alertId); - return; - } - - if (!properties) // if no properties are set, use the default paragraph style - { - // legacy wink. Use paragraph style. - log.info("No properties returned by app: " + uiaId + ". Using default Wink style."); - properties = { - "style": "style03", - "text1Id": alertId - }; - } - - // no matter what, common should set these properties - properties.winkTimeout = this._winkTimeout; - properties.alertId = alertId; - properties.completeCallback = this._alertComplete.bind(this); - - this._wink = framework.instantiateControl(uiaId, document.body, 'WinkCtrl', properties); - -}; - -/* Called by framework when a data message is sent from Mmui. - * This will pass the message information into any function the app has set in this._messageTable - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype.handleDataMessage = function(msg) -{ - log.debug("GUI COMMON" + " handleDataMessage called for", msg.msgId); - - if (this._messageTable && this._messageTable[msg.msgId]) - { - this._messageTable[msg.msgId](msg); - } - else - { - log.warn("GUI COMMON" + " No message handler for", msg.msgId); - } -}; - - -/* - * Handler for LanguageChangeStatus message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._LanguageChangeStatusMsgHandler = function(msg) -{ - if (msg && msg.params && msg.params.payload && msg.params.payload.languageID) - { - var langCode = framework.localize.getLangInGuiFormat(msg.params.payload.languageID); - } - - if (msg && msg.params && msg.params.payload && msg.params.payload.status) - { - var status = msg.params.payload.status; - } - - var bStatus = false; - - if (status == "Success") - { - bStatus = true; - } - else - { - bStatus = false; - } - - // Call unload dictionaries - framework.localize.unloadDictionaries(langCode,bStatus); -}; - -/* - * Handler for AtSpeed message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._AtSpeedMsgHandler = function(msg) -{ - log.info("Common.prototype._AtSpeedMsgHandler called",msg); - this._atSpeed = true; - framework.sendMsgToFocusedApp(msg); -}; - -/* - * Handler for NoSpeed message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._NoSpeedMsgHandler = function(msg) -{ - log.info("Common.prototype._NoSpeedMsgHandler called",msg); - this._atSpeed = false; - framework.sendMsgToFocusedApp(msg); -}; - -/* - * Handler for PageUp & PageDown messages - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._PageUpDownMsgHandler = function(msg) -{ - log.debug("Common.prototype._PageUpDownMsgHandler called", msg); - - // Assume no list exists - var result = "NoList"; - var eventName = null; - var apiName = null; - - // Determine the result event name, based on the incoming message - // (independent of anything to do with a list) - switch (msg.msgId) - { - case "Global.PageUp": - eventName = "Global.PageUpResult"; - apiName = "pageUp"; - break; - case "Global.PageDown": - eventName = "Global.PageDownResult"; - apiName = "pageDown"; - break; - default: - log.error("_PageUpDownMsgHandler called with non-pagination event!"); - break; - } - - // If we have a list and an API on it to call, ... - if (this._cachedTemplate && this._cachedTemplate.templateName === "List2Tmplt" && this._cachedTemplate.list2Ctrl && apiName) - { - // ... call that API! - response = this._cachedTemplate.list2Ctrl[apiName](); - result = response.charAt(0).toUpperCase() + response.slice(1); // make sure first letter is uppercase - } - - // Compose result & send to MMUI - if (eventName) - { - var params = { - "payload": { - "pageStatus": result - } - }; - - framework.sendEventToMmui("common", eventName, params); - } -}; - -/* - * Handler for VUI Mic messages - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._vuiStateMsgHandler = function(msg) -{ - if (msg && msg.params && msg.params.payload) - { - if (msg.msgId == "vuiState") - { - var showLineNumbers = false; - this._cachedVuiState = msg.params.payload.state; - // End the current SBN in case we need to change styles - this.endStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - switch(this._cachedVuiState) - { - case "Not Ready": // intentional fall-through - case "Idle": - case "Playing Out of Session Alert": - // Do nothing. SBN is automatically ended - break; - case "Playing Prompt": - // Show "Wait for Tone" SBN - var properties = { - "sbnStyle": "Style02", - "imagePath1": "IcnSbnMicClosed.png", - "text1Id": "common.SbnWaitForTone" - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - showLineNumbers = true; - break; - case "Listening": - // Show sound meter SBN starting at 0 - var properties = { - "sbnStyle": "Style04", - "imagePath1": "IcnSbnMicOpen.png", - "meter": {"meterType": "audio02", "min": 0, "max": 4000, "currentValue": 0} - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - showLineNumbers = true; - break; - case "Processing": // Intentional fallthrough. Show SBN with icon only - case "Playing Terminating Prompt": - // Show SBN with icon only - var properties = { - "sbnStyle": "Style02", - "imagePath1": "IcnSbnMicClosed.png", - "text1": null - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - break; - default: - log.warn("Unknown VUI State was sent to GUI: " + this._cachedVuiState); - break; - } - - this._showHideLineNumbers(showLineNumbers); - } - else if (msg.msgId == "vuiMicLevel") - { - var micLevel = parseInt(msg.params.payload.micLevel); - // clamp the micLevel value. SBN meter does not support negative numbers - micLevel += 3000; - // Adjust very low mic values to show 1-2 bars - if (micLevel < -2100) - { - micLevel = 50; - } - else if (micLevel < 100) - { - micLevel = 100; - } - - if (this._cachedVuiState == "Listening") - { - // Update state-based SBN with current mic level - var properties = { - "sbnStyle": "Style04", - "imagePath1": "IcnSbnMicOpen.png", - "meter": {"meterType": "audio02", "min": 0, "max": 4000, "currentValue": micLevel} - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - } - } - } -}; - -/* - * Handler for SelectLineNumber message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._SelectLineNumMsgHandler = function(msg) -{ - log.debug("Common.prototype._SelectLineNumMsgHandler called", msg); - - if (msg && msg.params && msg.params.payload) - { - var number = msg.params.payload.lineNumber; - } - else - { - return; - } - - var result = "NoList"; // status to send back to MMUI (default to NoList) - - // Is the current template a list? - if (this._cachedTemplate && this._cachedTemplate.templateName == "List2Tmplt") - { - // Does the list have data and support VUI? - if (this._cachedTemplate.list2Ctrl.dataList && this._cachedTemplate.list2Ctrl.dataList.vuiSupport == true) - { - log.info("Sending Line Number to List: " + number); - // List will return a result - var response = this._cachedTemplate.list2Ctrl.selectLine(number); - - if (response == "selected") - { - return; // No event from Common if "selected" is response - } - - result = response.charAt(0).toUpperCase() + response.slice(1); // first letter uppercase - } - } - - log.info("SelectLineResult is ", number, result); - var params = { - "payload" : { - "lineNumber": number, - "lineStatus": result - } - }; - framework.sendEventToMmui("common", "Global.SelectLineResult", params); -}; - -/* - * Handler for Global.StartHelp message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._ShowVuiHelpHandler = function(msg) -{ - log.debug("Common.prototype._ShowVuiHelpHandler called", msg); - - // Hide any currently displayed VUI Help - this._HideVuiHelpHandler(msg); - - // Validate that this help overlay request is for the currently displayed context. - if (framework.getCurrentApp() === msg.params.payload.currentUiaId && - framework.getCurrCtxtId() === msg.params.payload.currentContextId) - { - // Try to load a VUI Help configuration and display it if found - var targetUiaId = msg.params.payload.uiaId; - var helpPromptName = msg.params.payload.helpPromptName; - var dialogProperties = this._getVuiHelpDialogConfiguration(targetUiaId, helpPromptName); - if (dialogProperties) - { - this._vuiHelpDialog = framework.instantiateControl(dialogProperties.uiaId, document.body, 'Dialog3Ctrl', dialogProperties.dialogConf); - this._vuiHelpDialog.divElt.classList.add("Dialog3Ctrl_Style19_NoTemplateInstance"); - - // Add properties to the control to record the uiaId and contextId. See also _closeVuiHelpOnTransition(). - this._vuiHelpDialog._uiaId = msg.params.payload.currentUiaId; - this._vuiHelpDialog._contextId = msg.params.payload.currentContextId; - } - } - else - { - log.warn("Ignoring Global.StartHelp message because GUI is in context '" - + framework.getCurrentApp() - + " " - + framework.getCurrCtxtId() - + "' but the message is for a different context: " - + JSON.stringify(msg)); - } -}; - -/* - * Handler for Global.HideHelp message - * @tparam Object msg (optional) The parsed message object sent from Mmui - */ -Common.prototype._HideVuiHelpHandler = function(msg) -{ - log.debug("Common.prototype._HideVuiHelpHandler called"); - - if (this._vuiHelpDialog) - { - framework.destroyControl(this._vuiHelpDialog); - this._vuiHelpDialog = null; - } -}; - -/* - * Close Vui Help at the start of a transition to a new template if that template represents a different context. - */ -Common.prototype._closeVuiHelpOnTransition = function(template) -{ - if (this._vuiHelpDialog - && template - && template.contextInfo.uiaId != this._vuiHelpDialog._uiaId - && template.contextInfo.ctxtId != this._vuiHelpDialog._contextId) - { - this._HideVuiHelpHandler(null); - } -}; - -/* - * Returns a configuration object for a VUI help dialog3 control prompt from an app's dictionary. - * Returns null if no prompt text is found in the dictionary. - * @tparam String uiaId The application requesting the VUI help. - * @tparam String helpPromptName The name of the help prompt to look for in the dictionary. - */ -Common.prototype._getVuiHelpDialogConfiguration = function(uiaId, helpPromptName) -{ - var config = { - dialogConf: { - contentStyle: "style19", - titleStyle : "titleStyle03" - }, - uiaId: uiaId - }; - var found = false; - - // When help prompt name which requires default default help screen is received show system/Home help screen - if (this._defaultHelpPrompt === helpPromptName) - { - helpPromptName = "HomeScreen_Help"; - uiaId = "system"; - config.uiaId = uiaId; - } - - // Dictionary strings for a VUI help prompt have specific computable stringIds. - for (var i = 1; i <= 5; ++i) - { - var leftStringId = "VrHelp_" + helpPromptName + "_Left" + i; - if (framework.localize.testLocStr(uiaId, leftStringId)) - { - config.dialogConf["text" + i.toString() + "Id"] = leftStringId; - found = true; - } - - var rightStringId = "VrHelp_" + helpPromptName + "_Right" + i; - if (framework.localize.testLocStr(uiaId, rightStringId)) - { - config.dialogConf["text" + (i + 5).toString() + "Id"] = rightStringId; - } - } - - if (found) - { - var titleId = "VrHelp_" + helpPromptName + "_Title"; - if (framework.localize.testLocStr(uiaId, titleId)) - { - config.dialogConf.titleId = titleId; - } - else - { - // No title found in dictionary -- use default title - config.dialogConf.titleId = "common.VuiHelpDefaultTitle"; - } - } - - return (found) ? config : null; -}; - -/* - * Function called by apps to determine if vehicle is at speed - * @return Boolean true if vehicle is at speed - */ -Common.prototype.getAtSpeedValue = function() -{ - return this._atSpeed; -}; - -/* - * Tells the status bar to show/hide the Home button - * @param show Boolean true if the home button should be displayed. false if it should be hidden. - */ -Common.prototype.showSbHomeButton = function(show) -{ - this.statusBar.showHomeBtn(show); -}; - -/* - * (internal) Called by framework. Sets the App name text/image in the status bar - * @param label String Literal text name or image path to display in the status bar - */ -Common.prototype.setSbName = function(label) -{ - // setAppName() will differentiate between text & imagery - this.statusBar.setAppName(label); -}; - -/* - * (internal) Called by framework. Sets the translated App name text in the status bar - * @param uiaId String UiaId of the App the string should be translated for - * @param labelId String StringID to be translated - * @param subMap Object Optional subMap to be placed in the text - */ -Common.prototype.setSbNameId = function(uiaId, labelId, subMap) -{ - this.statusBar.setAppNameId(uiaId, labelId, subMap); -}; - -/* - * (internal) Called by framework. Sets the icon between the Home Button and the App Name in the status bar - * @param path String Path from index.html to icon. Pass null to remove current icon - */ -Common.prototype.setSbDomainIcon = function(path) -{ - this.statusBar.setDomainIcon(path); -}; - -/* - * Updates the state of a Status Bar Icon - * @param name String Base Icon name ("Batt", "PhoneSignal", "Roaming", "Traffic", "WifiSignal", "Music", "Bluetooth", "Message") - * @param visible Boolean True if the icon should be shown. False if it should be hidden - * @param state String (Optional) String corrsponding to the state of the icon ("00", "01", "02", "03", "04", "05") - */ -Common.prototype.setSbIcon = function(name, visible, state) -{ - this.statusBar.setIcon(name, visible, state); -}; - -/* - * Utility API for enabling/disabling auto-hide behavior for status bar & UMP - * @param isEnabled Boolean Auto-hides the status bar and UMP by internal inactivity timer (when true) - */ -Common.prototype._setDisplaySbUmpByActivityEnabled = function(isEnabled) -{ - this._displaySbUmpByActivity = isEnabled; - - if (this._displaySbUmpByActivity) { - // remove any existing non-transparent div - if (this._nonTransparentDiv) - { - utility.removeHTMLElement(this._nonTransparentDiv); - this._nonTransparentDiv = null; - } - - // create a non-transparent div so that opera receives touch events - this._nonTransparentDiv = document.createElement('div'); - this._nonTransparentDiv.className = "CommonNonTransparentDiv"; - document.body.insertBefore(this._nonTransparentDiv, document.body.firstChild); - - // Detect activity to kick everything off - this.activityDetected(true, null); - } - else - { - // Remove the non-transparent div - utility.removeHTMLElement(this._nonTransparentDiv); - this._nonTransparentDiv = null; - - // Shut down any timer we may have running - this._cleanUpInactivityTimer(); - - // Set the activity flag to "true" to force status bar & UMP visibility - this._activityDetected = true; - this._updateSbUmpVisibility(); - - // Reset the activity detected flag - this._activityDetected = false; - } - - // Ignore any prior external show/hide requests - this._sbRequestedState = "none"; -}; - -/* - * Public API for external applications (e.g. TV) to request that the status bar be shown - * @param delay_ms Integer The number of milliseconds to wait before starting the status bar animation - * @param duration_ms Integer The number of milliseconds the status bar animation should take to complete - * @param receipt_cb Function The function to call to signal receipt of the request - */ -Common.prototype.requestStatusBarShown = function(delay_ms, duration_ms, receipt_cb) -{ - log.debug("requestStatusBarShown(" + delay_ms + ", " + duration_ms + ")"); - - // Cache requested status bar timings - if ((utility.toType(delay_ms) == "number") && - (delay_ms >= 0)) { - // Store custom delay timing - this._sbDelay_ms = delay_ms; - } - else { - // Store default delay timing - this._sbDelay_ms = this._defaultSbDelay_ms; - } - if ((utility.toType(duration_ms) == "number") && - (duration_ms >= 0)) { - // Store custom duration timing - this._sbDuration_ms = duration_ms; - } - else { - // Store default duration timing - this._sbDuration_ms = this._defaultSbDuration_ms; - } - - // Remember the external request - this._sbRequestedState = "shown"; - - // Update the controls' visibility - this._updateSbUmpVisibility(); - - // If a receipt callback was provided, ... - if (utility.toType(receipt_cb) === "function") { - // Call it to signal receipt of the request - receipt_cb(); - } -}; - -/* - * Public API for external applications (e.g. TV) to request that the status bar be hidden - * @param delay_ms Integer The number of milliseconds to wait before starting the status bar animation - * @param duration_ms Integer The number of milliseconds the status bar animation should take to complete - * @param receipt_cb Function The function to call to signal receipt of the request - */ -Common.prototype.requestStatusBarHidden = function(delay_ms, duration_ms, receipt_cb) -{ - log.debug("requestStatusBarHidden(" + delay_ms + ", " + duration_ms + ")"); - - // Cache requested status bar timings - if ((utility.toType(delay_ms) === "number") && - (delay_ms >= 0)) { - // Store custom delay timing - this._sbDelay_ms = delay_ms; - } - else { - // Store default delay timing - this._sbDelay_ms = this._defaultSbDelay_ms; - } - if ((utility.toType(duration_ms) === "number") && - (duration_ms >= 0)) { - // Store custom duration timing - this._sbDuration_ms = duration_ms; - } - else { - // Store default duration timing - this._sbDuration_ms = this._defaultSbDuration_ms; - } - - // Remember the external request - this._sbRequestedState = "hidden"; - - // Update the controls' visibility - this._updateSbUmpVisibility(); - - // If a receipt callback was provided, ... - if (utility.toType(receipt_cb) == "function") { - // Call it to signal receipt of the request - receipt_cb(); - } -}; - -/* - * Public hook for notification (from Multicontroller.js) about user activity (touch/keyboard/multicontroller input) - * @param isActive (Boolean) Flag indicating if activity is detected (true) or not (false) - * @param evt (Object) The Opera event that generated the activity - * @param tuiEvent (String) If this is a multicontroller action, the corresponding eventId will be passed - */ -Common.prototype.activityDetected = function(isActive, evt, tuiEvent) -{ - // If we're using local timing ... - if (this._displaySbUmpByActivity) - { - // Get the current position & height of the status bar - // (so we can detect if we've selected it or not) - var det = this.statusBar.divElt.offsetTop; - var deh = this.statusBar.divElt.offsetHeight; - - var legalEvent = false; // will be set to true if this event can trigger activity given the configuration - - // If we have no event, or we have a legal event and the status bar itself wasn't selected, ... - if (evt == null) - { - // null event is used for special case private calls within Common.js - legalEvent = true; - } - else if (evt.type == "mouseup" || evt.type == "mousedown") - { - // mouse events can trigger on "touch" or "both", but only if they are not on the Status Bar - if (this._displaySbUmpActivityTypes == "both" || this._displaySbUmpActivityTypes == "touch") - { - if (evt.pageX <= 800) - { - if (evt.pageY >= (det + deh)) - { - legalEvent = true; - } - else if (evt.type == "mouseup") - { - // mouse up occurred in the status bar. Very specific case to account for touch-and-drag - legalEvent = true; - } - } - } - - } - else if (evt.type == "keydown" || evt.type == "keyup" || evt.type == "mousewheel") - { - // Multicontroller event can only trigger if the activity type is "both" - if (this._displaySbUmpActivityTypes == "both") - { - legalEvent = true; - } - } - - if (legalEvent) - { - log.debug("activityDetected()", isActive, evt); - - // Check if the activity state has changed - var stateChanged = (this._activityDetected != isActive); - - // Update the internal activity state - this._activityDetected = isActive; - - // (Re)start the timer to measure inactivity - if (this._activityDetected) { - // a press down via touch or MC should not trigger the Inactivity timeout - var triggerTimer = true; - if (evt != null) - { - if (evt.type == "mousedown") - { - triggerTimer = false; - } - else if (evt.type == "keydown") - { - // Exception: rotations should still trigger the Inactivity timeout - if (tuiEvent != "cw" && tuiEvent != "ccw") - { - triggerTimer = false; - } - } - } - - if (triggerTimer == false) - { - // just clean up the timer - this._cleanUpInactivityTimer(); - } - else - { - this._startInactivityTimer(); - } - } - - // If the activity state changed, ... - if (stateChanged) { - // ... update the controls' visibility - this._updateSbUmpVisibility(); - } - } - } -}; - -Common.prototype._startInactivityTimer = function() -{ - // Clean up any existing inactivity timer - this._cleanUpInactivityTimer(); - - if (this._displaySbUmpByActivity) { - // (Re)start inactivity timer for a 3-second wait - this._inactivityTimer = setTimeout(this._onInactivityBinder, 3000); - } -}; - -Common.prototype._onInactivity = function() -{ - // Clear the timer that got us here - this._cleanUpInactivityTimer(); - - if (this._displaySbUmpByActivity) { - // Local inactivity timer has expired -- lower the flag - this._activityDetected = false; - - // Update the controls' visibility - this._updateSbUmpVisibility(); - } -}; - -Common.prototype._cleanUpInactivityTimer = function() -{ - if (this._inactivityTimer != null) { - // Clean up any existing inactivity timer - clearTimeout(this._inactivityTimer); - this._inactivityTimer = null; - } -}; - -Common.prototype._updateSbUmpVisibility = function() -{ - if (this._displaySbUmpByActivity || this._sbRequestedState != "none") - { - log.debug("_updateSbUmpVisibility()"); - log.debug("this._sbRequestedState = " + this._sbRequestedState); - log.debug("this._activityDetected = " + this._activityDetected); - log.debug("this._sbnIsDisplayed = " + this._sbnIsDisplayed); - - // Default values for status bar animation timing - var delay_ms = this._defaultSbDelay_ms; - var duration_ms = this._defaultSbDuration_ms; - - // Are the conditions right for showing the status bar? - if ((this._cachedTemplate.properties.statusBarVisible) && ((this._sbRequestedState === "shown") || this._activityDetected || this._sbnIsDisplayed)) { - // Yes -- show it - if (this._sbRequestedState === "shown") { - // Use custom timings from external request - delay_ms = this._sbDelay_ms; - duration_ms = this._sbDuration_ms; - } - - // Show the status bar - this.statusBar.transitionVisible(delay_ms, duration_ms, "slide", true); - } - else if ((this._sbRequestedState == "hidden" || !this._activityDetected) && !this._sbnIsDisplayed) { - // No -- hide it - if (this._sbRequestedState == "hidden") { - // Use custom timings from external request - delay_ms = this._sbDelay_ms; - duration_ms = this._sbDuration_ms; - } - - // Hide the status bar - this.statusBar.transitionVisible(delay_ms, duration_ms, "slide", false); - } - - if (this._activityDetected) { - // Call template's "showing started" callback, if available - if (utility.toType(this._cachedTemplate["onActivityShowing"]) == "function") { - this._cachedTemplate.onActivityShowing(delay_ms, duration_ms); - } - } - else { - // Call template's "hiding started" callback, if available - if (utility.toType(this._cachedTemplate["onActivityHiding"]) == "function") { - this._cachedTemplate.onActivityHiding(delay_ms, duration_ms); - } - } - - // Reset the externally-requested timings to default -- if the status bar was actually shown/hidden - // on this call, the timings were already used. Otherwise, the status bar couldn't be changed (e.g. - // an SBN was displayed), so the timings need to be reset for the next pass. - this._sbDelay_ms = this._defaultSbDelay_ms; - this._sbDuration_ms = this._defaultSbDuration_ms; - } -}; - -/* - * Adds a timed Sbn with the given properties to the Status Bar queue - */ -Common.prototype.startTimedSbn = function(uiaId, sbnId, type, properties) -{ - log.debug("Timed SBN requested by " + uiaId + " with id: " + sbnId); - - var uniqueId = uiaId + sbnId; - this._requestNewSbn(uiaId, uniqueId, type, properties, true); -}; - -/* - * Removes a timed Sbn with the given properties to the Status Bar queue - */ -Common.prototype.cancelTimedSbn = function(uiaId, sbnId, type) -{ - var uniqueId = uiaId + sbnId; - - if (utility.toType(sbnId) != 'string' || !this._knownSbns[uniqueId]) - { - log.debug("Cannot cancel unknown sbnId: " + sbnId + " for App: " + uiaId); - return; - } - - // set the expiration to the current time. this will remove the SBN when it comes up in queue, but - // will not remove it if it is already being displayed - this._knownSbns[uniqueId].expiration = new Date().getTime(); -}; - -/* - * Adds a state-based Sbn with the given properties to the Status Bar queue - */ -Common.prototype.showStateSbn = function(uiaId, sbnId, type, properties) -{ - log.debug("State-based SBN requested by " + uiaId + " with id: " + sbnId); - - var uniqueId = uiaId + sbnId; - this._requestNewSbn(uiaId, uniqueId, type, properties, false); -}; - -/* - * Removes a state-based Sbn with the given properties to the Status Bar queue - */ -Common.prototype.endStateSbn = function(uiaId, sbnId, type) -{ - var uniqueId = uiaId + sbnId; - - if (utility.toType(sbnId) != 'string' || !this._knownSbns[uniqueId]) - { - log.debug("Cannot end unknown sbnId: " + sbnId + " for App: " + uiaId); - return; - } - - log.debug("Ending State SBN: " + sbnId + " for App: " + uiaId); - - // If it is currently being displayed, remove it - if (uniqueId == this._displayedSbnId) - { - this._removeDisplayedSbn(); - } - else if (this._sbnQueue.indexOf(uniqueId) != -1) - { - // if in queue, remove from queue - this._sbnQueue.splice(this._sbnQueue.indexOf(uniqueId), 1); - } - - // if none displayed, display first in queue - if (!this._displayedSbnId) - { - this._displaySbnFromQueue(); - } -}; - -/* - * Sets how many numbers are shown in the LeftButton chrome. Called by List any time - * the visible line count changes - * @param count Number Integer indicating how many line numbers should be shown. - * @param style String Left Button VUI Number style (see Left Button SDD for information) - */ -Common.prototype.setLineNumbers = function(count, style) -{ - if (utility.toType(count) != 'number' || utility.toType(style) != 'string') - { - log.warn("Type error: setLineNumbers must be called with count as integer and style as string"); - return; - } - - this._lineNumberData = {"count": count, "style": style}; - - var showLineNumbers = false; - switch(this._cachedVuiState) - { - case "Not Ready": - break; - case "Idle": - break; - case "Playing Out of Session Alert": - break; - case "Playing Prompt": - // Show "Wait for Tone" SBN - showLineNumbers = true; - break; - case "Listening": - // Show sound meter SBN starting at 0 - showLineNumbers = true; - break; - case "Processing": - // Show SBN with no text or meter - break; - case "Playing Terminating Prompt": - // Show SBN with no text or meter - break; - default: - break; - } - - this._showHideLineNumbers(showLineNumbers); -}; - -/* - * Show or hide the line numbers. - * @param showLineNumbers (Boolean) Show line numbers if the current template supports line numbers. - */ -Common.prototype._showHideLineNumbers = function(showLineNumbers) -{ - if (showLineNumbers == true && this._lineNumberData != null) - { - // validate that this is a List and the List is configured to show line numbers - if (this._cachedTemplate && this._cachedTemplate.templateName == "List2Tmplt") - { - if ((this._cachedTemplate.list2Ctrl.dataList) && - (this._cachedTemplate.list2Ctrl.dataList.vuiSupport == true) && - (this._cachedTemplate.list2Ctrl.properties.numberedList == true) && - (this._cachedTemplate.list2Ctrl.dataList.hasOwnProperty('itemCount') && this._cachedTemplate.list2Ctrl.dataList.itemCount > 0)) - { - this.leftBtn.showLineNumbers(this._lineNumberData.count, this._lineNumberData.style); - } - - } - } - else - { - this.leftBtn.hideLineNumbers(); - } -}; - -/* - * Update this._canShowSbns based on a the cached template. - */ -Common.prototype._updateCanShowSbns = function() -{ - if (this._cachedTemplate.contextInfo.uiaId == "system" && this._cachedTemplate.contextInfo.ctxtId == "DisplayOff") - { - // A special case where the context does not have a status bar but we still need to show SBNs. - this._canShowSbns = true; - } - else if (this._cachedTemplate.properties.statusBarVisible == false) - { - // Do not display SBNs if there is no status bar - this._canShowSbns = false; - } - else if (this._cachedTemplate.contextInfo.uiaId == "ecoenergy" && - (this._cachedTemplate.contextInfo.ctxtId == "EndingFuelConsumption" || this._cachedTemplate.contextInfo.ctxtId == "EndingEffectiveness")) - { - this._canShowSbns = false; - } - else - { - this._canShowSbns = true; - } - - log.debug("Can show SBNs?", this._canShowSbns); - - if (this._canShowSbns == false) - { - // Remove and requeue any displayed SBN - if (this._displayedSbnId) - { - var temp = this._removeDisplayedSbn(); - this._addSbnToQueue(temp, "top"); - } - - // Also remove any displayed Wink - this._removeWinkHelper(); - } -}; - -/* - * helper function to check whether given sbn type is valid - * @param type String type of the SBN - */ -Common.prototype._isValidSbnType = function(type) -{ - var isValidSbnType = false; - if (this._SBN_TYPES[type] != null) - { - isValidSbnType = true; - } - return isValidSbnType; -}; - -/* - * helper function to check whether given sbn type is old one - * @param type String old type of the SBN - */ -Common.prototype._isValidConversionType = function(type) -{ - var isValidConversionType = false; - if (this._SBN_MAPPING_TABLE[type] != null) - { - isValidConversionType = true; - } - return isValidConversionType; -}; - -/* - * helper function to convert old sbn type into valid type - * @param type String old type of the SBN - */ -Common.prototype._convertToValidSbnType = function(type) -{ - var validType; - if (this._isValidConversionType(type)) - { - validType = this._SBN_MAPPING_TABLE[type]; - } - else - { - validType = "unknown"; - log.error("SBN type " + type + " is not valid. Using " + validType + " as a default. See System Specs for possible sbn types"); - } - return validType; -}; - -/* - * Helper function to reduce duplicate logic - */ -Common.prototype._requestNewSbn = function(uiaId, sbnId, type, properties, isTimed) -{ - if (utility.toType(sbnId) != 'string') - { - log.error("Given sbnId was not of valid type 'string'. Please give valid sbnId."); - return; - } - - if (utility.toType(type) != 'string') - { - log.error("Given SBN type must be a string from the table in GUI Common. See Common SDD for possible types."); - } - - if (false == this._isValidSbnType(type)) - { - type = this._convertToValidSbnType(type); - } - - //blacklist will now contain new letter based sbn type, so this check is moved after the type conversion - if (this._SBN_TYPE_BLACKLIST.indexOf(type) != -1) - { - log.debug("Request for blacklisted SBN type:", type, "has been blocked"); - return; - } - - // if already in queue or displayed, update sbn - if (sbnId == this._displayedSbnId) - { - this._setKnownSbn(uiaId, sbnId, type, properties, isTimed); - this._displayedSbn.setSbnConfig(properties); // Call API to do live update on Control - - if (isTimed) - { - // extend the timer - clearTimeout(this._displayedSbnTimerId); - this._displayedSbnTimerId = setTimeout(this._sbnFinished.bind(this), this._knownSbns[sbnId].duration); - } - } - else if (this._sbnQueue.indexOf(sbnId) != -1) - { - this._setKnownSbn(uiaId, sbnId, type, properties, isTimed); - } - else // if !in queue and !displayed, it's new and we need to check it for priority - { - this._setKnownSbn(uiaId, sbnId, type, properties, isTimed); - - // If there's an SBN currently displayed... - if (this._displayedSbnId) - { - // Get priority level of this sbnId - var priority = this._knownSbns[sbnId].priority; - var queueTime = this._SBN_TYPES[type] != null ? this._SBN_TYPES[type].queueTime : this._SBN_TYPES.unknown.queueTime; - var replaceDisplayed = false; - - if (queueTime > 0) - { - // these SBNs DO queue and therefore SBNs of the same priority level should NOT clobber each other - if (priority < this._knownSbns[this._displayedSbnId].priority) // lower # is higher priority - { - replaceDisplayed = true; - } - } - else - { - // these SBNs do NOT queue and therefore SBNs of the same priority level should clobber each other - if (priority <= this._knownSbns[this._displayedSbnId].priority) // lower # is higher priority - { - replaceDisplayed = true; - } - } - - if (replaceDisplayed == true) - { - // call to this._removeDisplayedSbn() will set this._displayedSbnId to null and return displayed Id - var temp = this._removeDisplayedSbn(); - - this._displaySbn(sbnId); // the new one has higher priority and should be displayed - - this._addSbnToQueue(temp, "top"); // old SBN has been replaced and should be added to the queue (top if same priority level) - } - else - { - // new sbnId has lower priority and gets queued - this._addSbnToQueue(sbnId, "bottom"); - } - - } - else // display the new SBN. Some SBNs never go in the queue - { - if (!this._canShowSbns) - { - this._addSbnToQueue(sbnId, "bottom"); - } - else - { - // Tell Status Bar about the SBN - this._sbnIsDisplayed = true; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - - if (this._cachedTemplate.properties.statusBarVisible) - { - // Snap the status bar visible (only if this template is set to display a status bar) - this.statusBar.transitionVisible(0, 0, "slide", true); - } - - // ENTRY POINT #1 - // immediately display this SBN without adding it to the queue - this._displaySbn(sbnId); - - // Notify MMUI to turn on display if needed. - framework.sendEventToMmui("system", "DisplayOffNotificationEvent", {"payload": {"notificationActive": 1}}); - } - } - } - - if (this._canShowSbns && !this._displayedSbnId) - { - this._displaySbnFromQueue(); // The new SBN should be the first in queue (if something was displayed) - } -}; - -/* - * Helper function to add Sbns to the queue - * @param sbnId String Unique ID of the SBN to add to the queue - * @param queueOrder String Identifies where to place an SBN in case they are the same priority level ("top" or "bottom") - */ -Common.prototype._addSbnToQueue = function(sbnId, queueOrder) -{ - if (sbnId == null) - { - log.error("_addSbnToQueue: Cannot add null sbnId to queue."); - return; - } - if (!this._knownSbns[sbnId]) - { - log.error("Attempt to add Sbn to queue failed: Could not identify Sbn", sbnId, "in knownSbns variable."); - return; - } - - var currTime = new Date().getTime(); - // state-based SBNs do not expire. An SBN that is Timed and expired does not need to be added to the queue. It would just be removed later anyway. - if (this._knownSbns[sbnId].isTimed && currTime >= this._knownSbns[sbnId].expiration) - { - log.debug("SBN", sbnId, "has expired. No reason to add it to queue"); - return; - } - - // Get priority level of this sbnId - var priority = this._knownSbns[sbnId].priority; - - // Use queuePos so we don't modify the array while looping through it. - var queuePos = this._sbnQueue.length; // default to Array.length so that splice will add it to the end of the Array. - - // Add to queue in appropriate spot - for (var i = 0; i < this._sbnQueue.length; i++) - { - if (queueOrder == "top") - { - if (priority <= this._knownSbns[this._sbnQueue[i]].priority) // lower # is higher priority - { - // insert into queue - queuePos = i; - break; // cut in line and we're done - } - } - else - { - if (priority < this._knownSbns[this._sbnQueue[i]].priority) // lower # is higher priority - { - // insert into queue - queuePos = i; - break; // cut in line and we're done - } - } - - } - - this._sbnQueue.splice(queuePos, 0, sbnId); // at queuePos, remove 0, add sbnId - -}; - -/* - * Helper function that creates or updates an Sbn Object to add to/update the knownSbns variable. - */ -Common.prototype._setKnownSbn = function(uiaId, sbnId, type, properties, isTimed) -{ - var expiration = new Date(); - var priority = 0; - var duration = 0; - - // if type is known, use its properties - if (!this._SBN_TYPES[type]) - { - log.warn("Priority level of Sbn type: " + type + " is unknown. Setting priority to lowest level."); - type = "unknown"; - } - - expiration.setTime(expiration.getTime() + this._SBN_TYPES[type].queueTime); - priority = this._SBN_TYPES[type].priority; - duration = this._SBN_TYPES[type].timedDuration; - - this._knownSbns[sbnId] = { - "uiaId" : uiaId, - "type": type, - "priority": priority, - "isTimed": isTimed, - "duration": duration, // duration is only used for timed Sbns - "expiration": expiration.getTime(), // Set an expiration time stamp for each Sbn - "properties": properties - }; -}; - -/* - * Immediately displays the SBN with the given sbnId - */ -Common.prototype._displaySbn = function(sbnId) -{ - if (!this._knownSbns[sbnId]) - { - log.error("Cannot display requested SBN: " + sbnId + ". SBN cannot be found in knownSbns variable."); - return; - } - - if (!this._canShowSbns) - { - // safety check. We should never get here. - log.debug("Cannot show new SBNs in this context."); - return; - } - - log.info("Displaying new sbn: " + sbnId); - this._displayedSbnId = sbnId; - this._displayedSbn = framework.instantiateControl(this._knownSbns[sbnId].uiaId, document.body, "SbnCtrl", this._knownSbns[sbnId].properties); - if (this._knownSbns[sbnId].isTimed) - { - this._displayedSbnTimerId = setTimeout(this._sbnFinished.bind(this), this._knownSbns[sbnId].duration); - } -}; - -/* - * Immediately destroys and removes the currently displayed SBN - * @return String Returns the sbnId of the SBN that was removed - */ -Common.prototype._removeDisplayedSbn = function() -{ - log.info("Removing currently displayed SBN: " + this._displayedSbnId); - clearTimeout(this._displayedSbnTimerId); - framework.destroyControl(this._displayedSbn); - - var removedId = this._displayedSbnId; - this._displayedSbn = null; - this._displayedSbnId = null; - - return removedId; -}; - -/* - * Chooses the first active SBN off the queue and displays it. - * @return String The ID of the new SBN that gets displayed. null of no SBN is displayed. - */ -Common.prototype._displaySbnFromQueue = function() -{ - var newSbnToDisplay = null; - if (!this._canShowSbns) - { - // safety check. We should never get here. - log.debug("Cannot show queued SBNs in this context."); - return newSbnToDisplay; - } - - if (this._sbnQueue.length == 0) - { - // nothing to display: EXIT POINT #1 - this._sbnIsDisplayed = false; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - this._updateSbUmpVisibility(); - - // Notify MMUI to turn off display if needed. - framework.sendEventToMmui("system", "DisplayOffNotificationEvent", {"payload": {"notificationActive": 0}}); - return newSbnToDisplay; - } - - var sbnId = null; - var flaggedForRemoval = new Array(); - - // check expiration - var currTime = new Date().getTime(); - - for (var i = 0; i < this._sbnQueue.length; i++) - { - sbnId = this._sbnQueue[i]; - - // state-based SBNs do not expire. An SBN in the queue that is state-based or -not- expired should be displayed immediately - if (this._knownSbns[sbnId].isTimed && currTime >= this._knownSbns[sbnId].expiration) - { - flaggedForRemoval.push(sbnId); - } - else - { - this._displaySbn(sbnId); - newSbnToDisplay = sbnId; - flaggedForRemoval.push(sbnId); - break; - } - } - - // splice any expired SBNs from the queue - for (var j = 0; j < flaggedForRemoval.length; j++) - { - this._sbnQueue.splice(this._sbnQueue.indexOf(flaggedForRemoval[j]), 1); // remove from queue - - if (flaggedForRemoval[j] != this._displayedSbnId) - { - delete this._knownSbns[flaggedForRemoval[j]]; // delete from known Sbns - } - } - - flaggedForRemoval = null; - - if (this._sbnQueue.length == 0 && !this._displayedSbnId) - { - // no more SBNs to display: EXIT POINT #2 - this._sbnIsDisplayed = false; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - this._updateSbUmpVisibility(); - - // Notify MMUI to turn off display if needed. - framework.sendEventToMmui("system", "DisplayOffNotificationEvent", {"payload": {"notificationActive": 0}}); - } - - return newSbnToDisplay; -}; - -/* - * Callback for when a timed SBN completes - */ -Common.prototype._sbnFinished = function() -{ - this._removeDisplayedSbn(); - this._displaySbnFromQueue(); -}; - -/* - * (internal) Called by framework. Sets the style of the left button to - * either "goBack" or "menuUp" - */ -Common.prototype.setLeftBtnStyle = function(style) -{ - this.leftBtn.setStyle(style); -}; - -/* - * Updates the clock to display the value given. Value should be given in Unix format - * @param milliseconds Number the current time in number of milliseconds in a date string since midnight of January 1, 1970 - */ -Common.prototype.updateSbClock = function(milliseconds) -{ - var type = utility.toType(milliseconds); - if (type != 'number' && type != 'date') - { - log.warn("Common.updateSbClock can only accept an argument of type Number or Date"); - return; - } - - this._cachedTime = milliseconds; - this.statusBar.updateClock(milliseconds); - - // Update the clock in the OffScreen control if it that is the current template - if (this._cachedTemplate && this._cachedTemplate.templateName == "OffScreenTmplt" && this._cachedTemplate.updateClock) - { - this._cachedTemplate.updateClock(); - } -}; - -Common.prototype.getCurrentTime = function() -{ - var type = utility.toType(this._cachedTime); - var time = 0; - - if (type == 'number') - { - time = this._cachedTime; - } - else if (type == 'date') - { - time = this._cachedTime.getTime(); - } - - return time; -}; - -/* - * Removes the wink from the screen. This is called after the wink times out - * @param ctrlObj Object Reference to the Wink Control Object. - * @param appData Object App data stored by Common - * @param params Object Additional params passed by WinkCtrl - */ -Common.prototype._alertComplete = function(ctrlObj, appData, params) -{ - log.debug("Wink complete: " + ctrlObj.properties.alertId); - - this._removeWinkHelper(); -}; - -Common.prototype._removeWinkHelper = function() -{ - if (this._wink) - { - log.info("wink is", this._wink); - framework.websockets.sendAlertCompleteMsg(this._wink.uiaId, this._wink.properties.alertId); - - framework.destroyControl(this._wink); - this._wink = null; - } -}; - -/* - * Callback for when the Status Bar is clicked - * @param ctrlObj (Object) Reference to the button control object in status bar that was clicked - * @param appData (Object) Data passed in by the app when the control was instantiated - * @param params (Object) Optional params passed by the control object - */ -Common.prototype._statusBarClicked = function(ctrlObj, appData, params) -{ - log.debug("status bar clicked", ctrlObj, appData, params); - if (params.statusBtn == "home") - { - if (this._diagEntrySequence != 2 ) // 2 here indicates the sequence was completed - { - framework.sendEventToMmui("common", "Global.IntentHome"); - } - } - -}; - -/* - * Callback for when the Status Bar is long pressed - * @param ctrlObj (Object) Reference to the button control object in status bar that was clicked - * @param appData (Object) Data passed in by the app when the control was instantiated - * @param params (Object) Optional params passed by the control object - */ -Common.prototype._statusBarLongPress = function(ctrlObj, appData, params) -{ - if (params.statusBtn == "clock") - { - log.info("Clock Long Press Detected."); - this._diagEntrySequence = 1; - // clear exisiting timeout if any - clearTimeout(this._clockHomeButtonLongPressIntervalId); - //time interval between clock button long press and home button long press should be less than 9 secs - this._clockHomeButtonLongPressIntervalId = setTimeout(this._statusBarLongPressTimerHandler.bind(this),9000); - } - else if (params.statusBtn == "home" && this._diagEntrySequence == 1 && this._clockHomeButtonLongPressIntervalId) - { - log.info("Entering Diagnostics App"); - this._diagEntrySequence = 2; - framework.sendEventToMmui("syssettings", "SelectDiagnostics"); - } - -}; - -Common.prototype._statusBarLongPressTimerHandler = function() -{ - this._clockHomeButtonLongPressIntervalId = null; - this._diagEntrySequence = 0; -}; - -/* - * Callback for when the left button is pressed. - * @param controlObj (object) Reference to the LeftBtn that was pressed - */ -Common.prototype._leftBtnSelected = function(controlObj, appData, params) -{ - this._leftBtnSelectEvent(params.style); -}; - -/* - * Helper function to reduce duplicate logic. Called when the left button is selected either - * via touch or multicontroller -OR- when the TUI Left Hard Key is pressed. - * @param style String Style of the left button (determines which event to send to MMUI) - */ -Common.prototype._leftBtnSelectEvent = function(style) -{ - if (this.cmnCtrlsDisabled) - { - return; - } - - // Send an appropriate event based on the current style of the left button - switch (style) - { - case "goLeft": // legacy behavior TODO: remove when all Apps have updated - framework.sendEventToMmui("common", "Global.GoLeft"); - break; - case "goBack": // go back to the previous screen - framework.sendEventToMmui("common", "Global.GoBack"); - break; - case "menuUp": // go up one menu level - framework.sendEventToMmui("common", "Global.MenuUp"); - break; - default: - log.warn("There is no defined event for left button style: " + style); - break; - } -}; - -Common.prototype.getContextCapture = function() -{ - return { - leftBtnHasFocus : this.leftBtn.divElt.style.visibility === 'visible' && this.leftBtn.btnInstance.hasFocus - }; -}; - -Common.prototype.restoreContext = function(restoreData) -{ - if (restoreData.commonContextCapture && restoreData.commonContextCapture.leftBtnHasFocus) - { - restoreData.skipRestore = true; - } -}; - -/* - * Cause an audible beep to be played. - * @param pressType (String) Indicates a short press or a long press. Valid values are “Short” and “Long”. - * @param eventCause (String) Indicates the user interaction that caused the beep. Valid values are “Touch”, “Multicontroller”, and “Hardkey”. - */ -Common.prototype.beep = function(pressType, eventCause) -{ - var validPressTypes = [ "Short", "Long" ]; - if (utility.toType(pressType) !== "string" || validPressTypes.indexOf(pressType) === -1) - { - log.warn("Invalid pressType parameter passed to common.beep(). Valid values are 'Short' or 'Long'."); - return; - } - - var validEventCauses = [ "Touch", "Multicontroller", "Hardkey" ]; - if (utility.toType(eventCause) !== "string" || validEventCauses.indexOf(eventCause) === -1) - { - log.warn("Invalid eventCause parameter passed to common.beep(). Valid values are 'Touch' or 'Multicontroller' or 'Hardkey'"); - return; - } - - if (pressType == "Short" && eventCause == "Multicontroller") - { - // do not send this - return; - } - - var args = { - "payload" : { - "pressType" : pressType, - "eventCause" : eventCause - } - }; - - log.info("Sending PlayAudioBeep", pressType, eventCause); - framework.sendEventToMmui("audiosettings", "PlayAudioBeep", args); -}; - -/* - * Mute message handler - */ -Common.prototype._HandleStatusUpdateVolume = function(msg) -{ - if (msg && msg.params && msg.params.payload) - { - var isMuted = msg.params.payload.volumeOnOffStatus === "VolumeOff"; - if (isMuted !== this._isMuted) - { - this._isMuted = isMuted; - this._isMutedChanged(); - } - } -}; - -/* - * Called when the value of _isMuted changes - */ -Common.prototype._isMutedChanged = function() -{ - var action = this._getMuteOverlayAction(); - switch (action) - { - case "wink": - this._showMuteWink(3000); - break; - - case "persistentWink": - this._showMuteWink(null); - break; - - case "sbn": - this._showMuteSbn(); - break; - - default: - this._hideMuteWink(); - this._hideMuteSbn(); - break; - - } -}; - -Common.prototype._showMuteSbn = function() -{ - var properties = { - sbnStyle: "Style02", - }; - - if (this._isMuted) - { - properties.imagePath1 = "IcnSbnMuteOn.png"; - properties.text1Id = "common.muteOn"; - } - else - { - properties.imagePath1 = "IcnSbnMuteOff.png"; - properties.text1Id = "common.muteOff"; - } - - this.startTimedSbn("common", "TimedSbn_StatusUpdateVolumeOnOff", "typeA", properties); -}; - -Common.prototype._hideMuteSbn = function() -{ - this.cancelTimedSbn("common", "TimedSbn_StatusUpdateVolumeOnOff", "typeA"); -}; - -Common.prototype._showMuteWink = function(winkTimeout) -{ - var properties = { - "style": "style05", - "image1": "common/images/icons/IcnWinkUnMute.png", - "winkTimeout": winkTimeout, - "alertId": "", - "completeCallback": this._muteWinkComplete.bind(this) - }; - - if (this._isMuted) - { - properties.image1 = "common/images/icons/IcnWinkMute.png"; - } - - var newWink = framework.instantiateControl("common", document.body, "WinkCtrl", properties); - - // If there's a Wink currently displayed (e.g. persistentWink), get rid of it - this._hideMuteWink(); - this._muteWink = newWink; -}; - -Common.prototype._hideMuteWink = function() -{ - if (this._muteWink) - { - framework.destroyControl(this._muteWink); - this._muteWink = null; - } -}; - -Common.prototype._muteWinkComplete = function() -{ - this._hideMuteWink(); -}; - -/* - * Returns one of: "persistentWink", "wink", "sbn" - */ -Common.prototype._getMuteOverlayAction = function() -{ - if (this._cachedTemplate && this._cachedTemplate.templateName === "NowPlaying4Tmplt") - { - if (this._isMuted) - { - return "persistentWink"; - } - else - { - return "wink"; - } - } - else - { - var uiaId = framework.getCurrentApp(); - var ctxtId = framework.getCurrCtxtId(); - if (this.getContextCategory(uiaId, ctxtId) === "Entertainment") - { - return "wink"; - } - } - return "sbn"; -}; - -Common.prototype._updateMuteWinkOnTransition = function(prevTepmlate, currTemplate) -{ - if (this._isMuted && currTemplate && currTemplate.templateName === "NowPlaying4Tmplt") - { - this._showMuteWink(null); - } - else - { - this._hideMuteWink(); - } -}; - -/* - * Process Global.MenuUpReceived messages. - */ -Common.prototype._MenuUpReceived = function(msg) -{ - if (msg && msg.params && msg.params.payload) - { - this._menuUpReceiverApp = msg.params.payload.receiverApp; - } -}; - -/* - * Utility function to get the context category (domain) for a given application/context - * @param uiaId Application ID - * @param ctxtId Context ID - * @returns Domain string value (e.g. "Applications", "Communication", "Entertainment") - */ -Common.prototype.getContextCategory = function(uiaId, ctxtId) -{ - return this._contextCategory.getContextCategory(uiaId, ctxtId); -}; - -/* - * Utility function to get the status bar icon for a given context category (domain) - * @param domain Domain string value (e.g. "Applications", "Communication", "Entertainment") - * @returns Icon image file name - */ -Common.prototype.getContextCategorySbIcon = function(domain) -{ - return this._contextCategory.getContextCategorySbIcon(domain); -}; - -framework.registerCommonLoaded(["common/controls/StatusBar", - "common/controls/LeftBtn", - "common/controls/Wink", - "common/controls/Button", - "common/controls/Dialog3", - "common/controls/Sbn"], true); diff --git a/app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.56.00.511A-EU b/app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.56.00.511A-EU deleted file mode 100644 index ce34b1f..0000000 --- a/app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.56.00.511A-EU +++ /dev/null @@ -1,2378 +0,0 @@ -/* - Copyright 2012 by Johnson Controls - __________________________________________________________________________ - - Filename: Common.js - __________________________________________________________________________ - - Project: JCI-IHU - Language: EN - Author: awoodhc - Date: 08.27.2012 - __________________________________________________________________________ - - Description: IHU GUI Common - - Revisions: - v0.1 (27-Aug-2012) Create Common to handle all "system-wide" logic - v0.2 (27-Aug-2012) Added basic logic for "global" controls, multicontroller events, transitions, ctrl clicks, basic BG logic - v0.3 (28-Aug-2012) Added logic for alerts - v0.4 (11-Oct-2012) Added logic to hide Home Button while on Home Screen - v0.5 (04-Nov-2012) Added API to display App Name in Status Bar - Added Diag Entry logic - v0.6 (08-Nov-2012) Added API for Setting the Left Button Style. - v0.7 (19-Nov-2012) Changed Alert event to conform with MMUI standards. Added API to set the Status Bar Clock with value from MMUI. - v0.8 (26-Nov-2012) Fixed Diagnostics Entry. Common now counts a sequence to make sure the sequence is complete before resetting. - v0.9 (03-Dec-2012) Added message table for handling MMUI common messages and handling for LanguageChangeStatus msg - v1.0 (05-Dec-2012) Added API to set state of status bar icons - v1.1 (21-Jan-2012) Added new SBN and Wink logic - __________________________________________________________________________ - - */ - -log.addSrcFile("Common.js", "common"); -//log.setLogLevel("common", "debug"); - -function Common() -{ - log.debug("constructor called..."); - - //-- public variables - this.moduleName = "common"; // (String) Name of this module (used in place of uiaId when instantiating controls) - this.statusBar = null; // (Object) Status Bar Control Object - this.leftBtn = null; // (Object) Left Button Control Object - - this.cmnCtrlsDisabled = false; // (Boolean) Whether to Status Bar/Left Button are disabled due to a dialog - - - //-- private variables - - this._cachedTime = 0; // (Number) Stores the time value sent from MMUI via GUI_SYSSETTINGS - this._cachedTemplate = null; // (Object) template currently active in the DOM. Framework updates this. - this._menuUpReceiverApp = null; // (String) cached uiaId sent from MMUI when during a transition caused by a Menu Up action - this._canShowSbns = false; // (Boolean) true if Common can display SBNs over the cached template - - this._bgDiv1 = null; // (HTMLElement) the background div - this._bgDiv2 = null; // (HTMLElement) used to transition between 2 backgrounds - this._rightChrome = null; // (HTMLElement) the div used to display the right-hand chrome - this._customBgSet = false; // (Boolean) true if there is a custom bg set by the current template - this._defaultBgPath = "common/images/background.png"; // (String) the css path to the default bg image - this._currentBgPath = this._defaultBgPath; // (String) the css path to the current bg image - - this._wink = null; // (Object) The active Wink Control Object (null if none displayed) - this._winkTimeout = guiConfig.winkTimeout; // (Number) milliseconds a Wink will stay on screen - - this._muteWink = null; // (Object) The Entertainment Mute Wink Control Object (null if none displayed) - - this._cachedVuiState = null; // (String) Last VUI state sent from MMUI. - this._vuiHelpDialog = null; // (Object) The active VUI Help Dialog Control (null if none displayed) - this._lineNumberData = null; // (Object) Contains data passed from a List pertaining to the VUI line numbers - - this._diagEntrySequence = 0; // (Number) 1 if the Diagnostics entry button sequence has begun. 2 if it has completed. - this._clockHomeButtonLongPressIntervalId = null; - - this._atSpeed = false; // (Boolean) true if AtSpeed event is received from MMUI - this._isMuted = false; // (Boolean) true if entertainment audio is currently muted - - this._contextCategory = new ContextCategory(); // (Object) Contains a lookup table to determine a context's category. - - //-- Status Bar Auto-Hide Variables - // MPP 09/16/2013 SW00107357 - this._displaySbUmpByActivity = false; // (Boolean) Master switch for auto-hide status bar/UMP feature - this._displaySbUmpActivityTypes = "both"; // (String) "both" for both touch & MC input to count as activity, "touch" for touch-only input - this._inactivityTimer = null; // (Object) The timer used to measure (in)activity for auto-hiding the status bar & UMP - this._onInactivityBinder = this._onInactivity.bind(this); // (Callback) Bind the timer callback once to save memory - this._activityDetected = false; // (Boolean) Flag raised on touch/MC input; lowered when inactivity timer expires - this._sbRequestedState = "none"; // (String) External request to show/hide status bar - this._sbDelay_ms = -1; // (Integer) # of milliseconds before status bar animation starts (external request) - this._sbDuration_ms = -1; // (Integer) # of milliseconds status bar animation should take (external request) - this._defaultSbDelay_ms = 0; // (Integer) Default delay timing for status bar animation - this._defaultSbDuration_ms = 500; // (Integer) Default duration timing for status bar animation - this._defaultHelpPrompt = "SpeechNotAllowed_Help"; // (string) help promp name which requires default help screen - - //-- Status Bar Notification Variables - /* - * See _setKnownSbn() function for _knownSbns variable properties - */ - this._knownSbns = new Object(); // (Object) key'd to SbnId, value is SbnObject with information necessary to display Sbn - this._sbnIsDisplayed = false; // (Boolean) Flag indicating whether an SBN is displayed (true) or not (false). - this._displayedSbn = null; // (Object) Refernce to the currently displayed Sbn Control. - this._displayedSbnId = null; // (String) SbnId of the currently displayed Sbn. null if none is displayed - this._displayedSbnTimerId = 0; // (Number) Timer ID used for timed Sbns. - this._sbnQueue = new Array(); // (Array) Queue of all current Sbns by Id. 0 is next in line to be dispalyed. - - // Default SBN values used where value is not specified in UI Spec. - var dfltDuration = 2000; // (Number) default number of milliseconds - var dfltQueue = 0; // (Number) default number of milliseconds - - // NOTE: State-based SBNs do not expire, but Timed SBNs should be queueTime 0 so that they do not re-appear (exception: driverId) - - this._SBN_TYPES = { // (Object) contains list of Sbn Priorities by type, defined in System UI Spec - - //replaced old sbn types with new letter based sbn types(As per SCR SW00155262) - "typeA": {"priority": 1, "timedDuration": 2000, "queueTime": 0}, // 1 is highest priority - "typeB": {"priority": 2, "timedDuration": dfltDuration, "queueTime": dfltQueue}, - "typeL": {"priority": 3, "timedDuration": 5000, "queueTime": 60000}, - "typeC": {"priority": 4, "timedDuration": dfltDuration, "queueTime": dfltQueue}, - "typeD": {"priority": 5, "timedDuration": 5000, "queueTime": 0}, - "typeE": {"priority": 6, "timedDuration": 5000, "queueTime": 0}, - "typeF": {"priority": 7, "timedDuration": 5000, "queueTime": 0}, - "typeG": {"priority": 8, "timedDuration": 5000, "queueTime": 0}, - "typeI": {"priority": 9, "timedDuration": 5000, "queueTime": 0}, - "typeJ": {"priority": 10, "timedDuration": 5000, "queueTime": 0}, - "typeK": {"priority": 11, "timedDuration": dfltDuration, "queueTime": dfltQueue}, - "unknown": {"priority": 100, "timedDuration": dfltDuration, "queueTime": dfltQueue} - }; - - this._SBN_MAPPING_TABLE = { // contains mapping of old sbn types with new letter based sbn types(As per SCR SW00155262) - "volumeStatus" : "typeA", - "vrStatus" : "typeB", - "driverId" : "typeL", - "navigationNear" : "typeC", - "deviceConnected" : "typeD", - "entertainmentInfo" : "typeE", - "errorNotification" : "typeF", - "btConnecting" : "typeG", - "deviceRemoved" : "typeI", - "navigationFar" : "typeJ", - "systemFailure": "typeK", - "unknown": "unknown" - }; - - // Any SBN type in the blacklist will be blocked if it is requested. This is a centralized fix for evolving requirements. - this._SBN_TYPE_BLACKLIST = [ - "typeK" - ]; - - //@formatter:off - this._messageTable = { - "LanguageChangeStatus" : this._LanguageChangeStatusMsgHandler.bind(this), - "Global.AtSpeed" : this._AtSpeedMsgHandler.bind(this), - "Global.NoSpeed" : this._NoSpeedMsgHandler.bind(this), - "Global.PageUp" : this._PageUpDownMsgHandler.bind(this), - "Global.PageDown" : this._PageUpDownMsgHandler.bind(this), - "vuiState" : this._vuiStateMsgHandler.bind(this), - "vuiMicLevel" : this._vuiStateMsgHandler.bind(this), - "Global.SelectLineNumber" : this._SelectLineNumMsgHandler.bind(this), - "Global.StartHelp" : this._ShowVuiHelpHandler.bind(this), - "Global.HideHelp" : this._HideVuiHelpHandler.bind(this), - "Global.StatusUpdateVolumeOnOff" : this._HandleStatusUpdateVolume.bind(this), - "Global.MenuUpReceived" : this._MenuUpReceived.bind(this) - - }; // end of this._messageTable - //@formatter:on - - - //-- DOM logic - // Add the background image to the body - this._bgDiv1 = document.createElement('div'); - this._rightChrome = document.createElement('div'); - - this._bgDiv1.id = "CommonBgImg1"; - this._bgDiv1.className = "CommonBgImg"; - - this._rightChrome.id = "CommonRightChrome1"; - this._rightChrome.className = "CommonRightChrome"; - this._rightChrome.style.visibility = "hidden"; - - document.body.appendChild(this._bgDiv1); - document.body.appendChild(this._rightChrome); - - // Add controls to the DOM - this.addControls(); -}; - -/* (internal - called by framework) - * Instantiates the LeftBtnControl and StatusBarCtrl (usually only happens when the language is changed) - */ -Common.prototype.addControls = function() -{ - log.debug("addControls called."); - - // Status Bar - if (this.statusBar)//never add more than one instance of these controls - { - log.debug("status bar exists"); - // MPP 08/29/2013 SW00127573 - // Refresh status bar, rather than re-instantiating it, when languages change - //framework.destroyControl(this.statusBar); - //this.statusBar = null; - this.statusBar._refresh(); - } - else - { - log.debug("instantiating status bar"); - // create the status bar - var statusProp = { - "selectCallback" : this._statusBarClicked.bind(this), - "longPressCallback" : this._statusBarLongPress.bind(this) - }; - - this.statusBar = framework.instantiateControl(this.moduleName, document.body, "StatusBarCtrl", statusProp); - } - - // Left Button - if (this.leftBtn) - { - //never add more than one instance of these controls - //framework.destroyControl(this.leftBtn); - //this.leftBtn = null; - } - else - { - // create the left button - var lftBtnProp = {"selectCallback" : this._leftBtnSelected.bind(this)}; - - this.leftBtn = framework.instantiateControl(this.moduleName, document.body, "LeftBtnCtrl", lftBtnProp); - - this._checkTemplateProperties(); - } -}; - -/* (internal - called by framework) - * Destroys the LeftButtonControl and StatusBarCtrl (usually only happens when the language is changed) - */ -Common.prototype.removeControls = function() -{ - if (this.statusBar) - { - framework.destroyControl(this.statusBar); - this.statusBar = null; - } - - if (this.leftBtn) - { - framework.destroyControl(this.leftBtn); - this.leftBtn = null; - } - -}; - -/* - * Checks templates properties for global controls. Called when a language change occurs - */ -Common.prototype._checkTemplateProperties = function() -{ - log.debug("_checkTemplateProperties called."); - var template = this._cachedTemplate; - //we should be able to use the cached template here, because when changing languages, we don't change context - - var data; - if (template) - { - data = this._calcTransitionData(template); - } - else - { - //defaults - log.debug(" No template could be found. Using default values."); - data = new Object(); - data.leftButtonVisible = false; - data.statusBarVisible = true; - } - - log.debug(" Left Btn Visible: " + data.leftButtonVisible + ", Status Bar Visible: " + data.statusBarVisible); - - - if (data.leftButtonVisible) - { - this.leftBtn.divElt.style.visibility = 'visible'; - } - else - { - this.leftBtn.divElt.style.visibility = 'hidden'; - } - - if (data.statusBarVisible) - { - this.statusBar.divElt.style.visibility = 'visible'; - } - else - { - this.statusBar.divElt.style.visibility = 'hidden'; - } - -}; - -/* (internal) - * Called by framework when a context change occurs and data is needed. - * @param template (object) The template that will be transitioned to. - */ -Common.prototype.getCommonTransitionData = function(template) -{ - if (template == null) - { - log.error("getCommonTransitionData called with null template."); - return; - } - - // Terminate any activity timer that may be running so we don't see the - // previous template's status bar or UMP sliding during the transition - this._cleanUpInactivityTimer(); - - this._updateMuteWinkOnTransition(this._cachedTemplate, template); - - this._closeVuiHelpOnTransition(template); - - // tell left button or the previous template to lose focus before the transition starts - this.handleControllerEvent('lostFocus'); - - // cache template: - this._cachedTemplate = template; - - // Hide VUI Numbers - this.leftBtn.hideLineNumbers(); - - // Update _canShowSbns variable and hide active SBN if necessary - this._updateCanShowSbns(); - - var data = this._calcTransitionData(template); - return data; -}; - -/* (private) - * Returns an object with common transition data for the upcoming transition - * @param template (object) The template that will be transitioned to. - * @return (object) Object containing common transition data - */ -Common.prototype._calcTransitionData = function(template) -{ - if (template.properties.customBgImage) - { - if (template.properties.customBgImage != this._currentBgPath) - { - this._bgDiv2 = document.createElement('div'); - this._bgDiv2.id = "CommonBgImg2"; - this._bgDiv2.className = "CommonBgImg"; - this._bgDiv2.style.backgroundImage = "url(" + template.properties.customBgImage + ")"; - this._currentBgPath = template.properties.customBgImage; - document.body.insertBefore(this._bgDiv2, this._bgDiv1); - this._customBgSet = true; - } - } - else if (this._customBgSet == true) // don't transition to default bg on a dialog - { - this._bgDiv2 = document.createElement('div'); - this._bgDiv2.id = "CommonBgImg2"; - this._bgDiv2.className = "CommonBgImg"; - this._bgDiv2.style.backgroundImage = "url(" + this._defaultBgPath + ")"; - this._currentBgPath = this._defaultBgPath; - document.body.insertBefore(this._bgDiv2, this._bgDiv1); - this._customBgSet = false; - } - - // Check for menu up - var menuUpUsed = false; - if (this._menuUpReceiverApp) - { - if (this._menuUpReceiverApp === this._cachedTemplate.contextInfo.uiaId) - { - menuUpUsed = true; - } - this._menuUpReceiverApp = null; - } - - //@formatter:off - var commonTransitionData = { - // references to system control objects - "statusBar" : this.statusBar, - "leftButton" : this.leftBtn, - // booleans - "statusBarVisible" : template.properties.statusBarVisible, - "leftButtonVisible" : template.properties.leftButtonVisible, - "menuUpUsed": menuUpUsed, - // bg data - "customBgImage" : template.properties.customBgImage, - "bgDiv1" : this._bgDiv1, - "bgDiv2" : this._bgDiv2, - // other - "rightChrome" : this._rightChrome, - "rightChromeVisible": (template.properties.rightChromeVisible === true) ? true : false - }; - - if (template.properties.isDialog) - { - // Preserve left button visibility from the previous context when going to a dialog context. - commonTransitionData.leftButtonVisible = this.leftBtn.divElt.style.visibility === "visible"; - commonTransitionData.rightChromeVisible = this._rightChrome.style.visibility === "visible"; - } - - //@formatter:on - return commonTransitionData; -}; - -/* (internal) - * Callback for when the controls transition completes. Currently only used for custom backgrounds - * @param transitionData (object) the data that was used during the transition - */ -Common.prototype.commonControlsUpdateComplete = function(transitionData) -{ - if (transitionData.bgDiv2) - { - // bgDiv2 transitioned in, so we need to remove bgDiv1 - utility.removeHTMLElement(transitionData.bgDiv1.id); - - this._bgDiv1 = this._bgDiv2; - this._bgDiv1.id = "CommonBgImg1"; - this._bgDiv2 = null; - } - - if (framework.getCurrentApp() == "syssettings" && framework.getCurrCtxtId() == "DisplayTab") - { - this.statusBar.enableClockBtn(true); - } - else - { - this.statusBar.enableClockBtn(false); - this._diagEntrySequence = 0; // reset the sequence on context change - } - - // Retrieve the types of input that will count as user activity, and then - // turn on activity monitoring for this context/template (if needed) - this._displaySbUmpActivityTypes = "both"; - if (this._cachedTemplate.properties.displaySbUmpActivityTypes === "both" || - this._cachedTemplate.properties.displaySbUmpActivityTypes === "touch") { - this._displaySbUmpActivityTypes = this._cachedTemplate.properties.displaySbUmpActivityTypes; - } - - this._setDisplaySbUmpByActivityEnabled(this._cachedTemplate.properties.displaySbUmpByActivity == true); - - // show SBN if needed - if (this._canShowSbns) - { - // If there's NO SBN displayed - if (!this._displayedSbnId) - { - // ENTRY POINT #2 - // If a new SBN gets displayed, _displaySbnFromQueue will return the ID - var newSbnId = this._displaySbnFromQueue(); - - if (newSbnId) - { - // Tell Status Bar about the SBN - this._sbnIsDisplayed = true; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - - if (this._cachedTemplate.properties.statusBarVisible) - { - // Snap the status bar visible (only if this template is set to display a status bar) - this.statusBar.transitionVisible(0, 0, "slide", true); - } - - // Notify MMUI to turn on display if needed. - framework.sendEventToMmui("system", "DisplayOffNotificationEvent", {"payload": {"notificationActive": 1}}); - } - - } - } - - this.handleControllerEvent('acceptFocusInit'); - -}; - -/* (internal - Called by Controls) - * Sends a "lostFocus" Multicontroller event to the currently focused Control so that the - * Control calling stealFocus() can gain focus. - * After calling this API, the calling Control -must- gain focus automatically. - */ -Common.prototype.stealFocus = function() -{ - var response = null; - - if (this.leftBtn.btnInstance.hasFocus) - { - response = this.leftBtn.handleControllerEvent("lostFocus"); - } - else if (this._cachedTemplate && this._cachedTemplate.handleControllerEvent) - { - response = this._cachedTemplate.handleControllerEvent("lostFocus"); - } - else - { - log.warn("Cannot steal focus. Common's cached template is either null or does not have handleControllerEvent."); - } - - return response; -}; - -/* (internal - Called by framework) - * Handles multicontroller events, specifically the left event for the leftBtn - * @param eventID (string) any of the “Internal event name” values in IHU_GUI_MulticontrollerSimulation.docx (e.g. 'cw', - * 'ccw', 'select') - * @return true if common 'consumed' the tui event. false otherwise. - */ -Common.prototype.handleControllerEvent = function(eventId, firstEvent) -{ - if (eventId == "goBack") // Note: "goBack" event sent from Multicontroller.js indicates the TUI back key has been pressed - { - framework.sendEventToMmui("common", "Global.GoBack"); - } - - // The first event is thrown away, but "controllerActive" is still passed to the template/control to change its highlight - // Thus, "ccw" will come in with firstEvent true, but "controllerActive" will also come in separately with firstEvent false - if (firstEvent) - { - log.debug(" firstEvent detected. Ignoring."); - return; - } - - // Test whether one of Common/Global controls has multicontroller focus and react accordingly - - if (this._cachedTemplate && this._cachedTemplate.handleControllerEvent) - { - // always pass along controller active and touch active - if (eventId != "touchActive" && eventId != "controllerActive") - { - if (this.leftBtn.btnInstance.hasFocus) - { - var response = this.leftBtn.handleControllerEvent(eventId); - if (response == "giveFocusRight") - { - var response = this._cachedTemplate.handleControllerEvent("acceptFocusFromLeft"); - if (response == "consumed") - { - this.leftBtn.handleControllerEvent("lostFocus"); - } - } - } - else - { - var response = this._cachedTemplate.handleControllerEvent(eventId); - if (response == "giveFocusLeft" && this._cachedTemplate.properties.leftButtonVisible) - { - this.leftBtn.handleControllerEvent("acceptFocusFromRight"); - this._cachedTemplate.handleControllerEvent("lostFocus"); - } - } - } - else - { - // always pass along controller active and touch active - if (this.leftBtn) // left button check to prevent race conditions during language change - { - this.leftBtn.handleControllerEvent(eventId); - } - // _cachedTemplate is checked above - this._cachedTemplate.handleControllerEvent(eventId); - - } - - } - else - { - log.warn("Common's cached template is either null or does not have handleControllerEvent."); - } -}; - -/* (internal - Called by framework) - * Handles alert messages from framework, sent by MMUI. - */ -Common.prototype.handleAlert = function(uiaId, alertId, params) -{ - log.debug("handleAlert called."); - - // MMUI should never send two alerts at once. This is a backup check. - if (this._wink) - { - return; - } - - var app = framework.getAppInstance(uiaId); - var properties = null; - - if (app && app.getWinkProperties) // check for App method - { - properties = app.getWinkProperties(alertId, params); - } - - // NOTE: Even though we can't show the Wink, I still call into the GUI App (above) in case they have logic that needs to be done - if (!this._canShowSbns) - { - // We're in a context that can't show Winks. Immediately Ack - framework.websockets.sendAlertCompleteMsg(uiaId, alertId); - return; - } - - if (!properties) // if no properties are set, use the default paragraph style - { - // legacy wink. Use paragraph style. - log.info("No properties returned by app: " + uiaId + ". Using default Wink style."); - properties = { - "style": "style03", - "text1Id": alertId - }; - } - - // no matter what, common should set these properties - properties.winkTimeout = this._winkTimeout; - properties.alertId = alertId; - properties.completeCallback = this._alertComplete.bind(this); - - this._wink = framework.instantiateControl(uiaId, document.body, 'WinkCtrl', properties); - -}; - -/* Called by framework when a data message is sent from Mmui. - * This will pass the message information into any function the app has set in this._messageTable - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype.handleDataMessage = function(msg) -{ - log.debug("GUI COMMON" + " handleDataMessage called for", msg.msgId); - - if (this._messageTable && this._messageTable[msg.msgId]) - { - this._messageTable[msg.msgId](msg); - } - else - { - log.warn("GUI COMMON" + " No message handler for", msg.msgId); - } -}; - - -/* - * Handler for LanguageChangeStatus message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._LanguageChangeStatusMsgHandler = function(msg) -{ - if (msg && msg.params && msg.params.payload && msg.params.payload.languageID) - { - var langCode = framework.localize.getLangInGuiFormat(msg.params.payload.languageID); - } - - if (msg && msg.params && msg.params.payload && msg.params.payload.status) - { - var status = msg.params.payload.status; - } - - var bStatus = false; - - if (status == "Success") - { - bStatus = true; - } - else - { - bStatus = false; - } - - // Call unload dictionaries - framework.localize.unloadDictionaries(langCode,bStatus); -}; - -/* - * Handler for AtSpeed message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._AtSpeedMsgHandler = function(msg) -{ - log.info("Common.prototype._AtSpeedMsgHandler called",msg); - this._atSpeed = true; - framework.sendMsgToFocusedApp(msg); -}; - -/* - * Handler for NoSpeed message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._NoSpeedMsgHandler = function(msg) -{ - log.info("Common.prototype._NoSpeedMsgHandler called",msg); - this._atSpeed = false; - framework.sendMsgToFocusedApp(msg); -}; - -/* - * Handler for PageUp & PageDown messages - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._PageUpDownMsgHandler = function(msg) -{ - log.debug("Common.prototype._PageUpDownMsgHandler called", msg); - - // Assume no list exists - var result = "NoList"; - var eventName = null; - var apiName = null; - - // Determine the result event name, based on the incoming message - // (independent of anything to do with a list) - switch (msg.msgId) - { - case "Global.PageUp": - eventName = "Global.PageUpResult"; - apiName = "pageUp"; - break; - case "Global.PageDown": - eventName = "Global.PageDownResult"; - apiName = "pageDown"; - break; - default: - log.error("_PageUpDownMsgHandler called with non-pagination event!"); - break; - } - - // If we have a list and an API on it to call, ... - if (this._cachedTemplate && this._cachedTemplate.templateName === "List2Tmplt" && this._cachedTemplate.list2Ctrl && apiName) - { - // ... call that API! - response = this._cachedTemplate.list2Ctrl[apiName](); - result = response.charAt(0).toUpperCase() + response.slice(1); // make sure first letter is uppercase - } - - // Compose result & send to MMUI - if (eventName) - { - var params = { - "payload": { - "pageStatus": result - } - }; - - framework.sendEventToMmui("common", eventName, params); - } -}; - -/* - * Handler for VUI Mic messages - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._vuiStateMsgHandler = function(msg) -{ - if (msg && msg.params && msg.params.payload) - { - if (msg.msgId == "vuiState") - { - var showLineNumbers = false; - this._cachedVuiState = msg.params.payload.state; - // End the current SBN in case we need to change styles - this.endStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - switch(this._cachedVuiState) - { - case "Not Ready": // intentional fall-through - case "Idle": - case "Playing Out of Session Alert": - // Do nothing. SBN is automatically ended - break; - case "Playing Prompt": - // Show "Wait for Tone" SBN - var properties = { - "sbnStyle": "Style02", - "imagePath1": "IcnSbnMicClosed.png", - "text1Id": "common.SbnWaitForTone" - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - showLineNumbers = true; - break; - case "Listening": - // Show sound meter SBN starting at 0 - var properties = { - "sbnStyle": "Style04", - "imagePath1": "IcnSbnMicOpen.png", - "meter": {"meterType": "audio02", "min": 0, "max": 4000, "currentValue": 0} - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - showLineNumbers = true; - break; - case "Processing": // Intentional fallthrough. Show SBN with icon only - case "Playing Terminating Prompt": - // Show SBN with icon only - var properties = { - "sbnStyle": "Style02", - "imagePath1": "IcnSbnMicClosed.png", - "text1": null - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - break; - default: - log.warn("Unknown VUI State was sent to GUI: " + this._cachedVuiState); - break; - } - - this._showHideLineNumbers(showLineNumbers); - } - else if (msg.msgId == "vuiMicLevel") - { - var micLevel = parseInt(msg.params.payload.micLevel); - // clamp the micLevel value. SBN meter does not support negative numbers - micLevel += 3000; - // Adjust very low mic values to show 1-2 bars - if (micLevel < -2100) - { - micLevel = 50; - } - else if (micLevel < 100) - { - micLevel = 100; - } - - if (this._cachedVuiState == "Listening") - { - // Update state-based SBN with current mic level - var properties = { - "sbnStyle": "Style04", - "imagePath1": "IcnSbnMicOpen.png", - "meter": {"meterType": "audio02", "min": 0, "max": 4000, "currentValue": micLevel} - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - } - } - } -}; - -/* - * Handler for SelectLineNumber message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._SelectLineNumMsgHandler = function(msg) -{ - log.debug("Common.prototype._SelectLineNumMsgHandler called", msg); - - if (msg && msg.params && msg.params.payload) - { - var number = msg.params.payload.lineNumber; - } - else - { - return; - } - - var result = "NoList"; // status to send back to MMUI (default to NoList) - - // Is the current template a list? - if (this._cachedTemplate && this._cachedTemplate.templateName == "List2Tmplt") - { - // Does the list have data and support VUI? - if (this._cachedTemplate.list2Ctrl.dataList && this._cachedTemplate.list2Ctrl.dataList.vuiSupport == true) - { - log.info("Sending Line Number to List: " + number); - // List will return a result - var response = this._cachedTemplate.list2Ctrl.selectLine(number); - - if (response == "selected") - { - return; // No event from Common if "selected" is response - } - - result = response.charAt(0).toUpperCase() + response.slice(1); // first letter uppercase - } - } - - log.info("SelectLineResult is ", number, result); - var params = { - "payload" : { - "lineNumber": number, - "lineStatus": result - } - }; - framework.sendEventToMmui("common", "Global.SelectLineResult", params); -}; - -/* - * Handler for Global.StartHelp message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._ShowVuiHelpHandler = function(msg) -{ - log.debug("Common.prototype._ShowVuiHelpHandler called", msg); - - // Hide any currently displayed VUI Help - this._HideVuiHelpHandler(msg); - - // Validate that this help overlay request is for the currently displayed context. - if (framework.getCurrentApp() === msg.params.payload.currentUiaId && - framework.getCurrCtxtId() === msg.params.payload.currentContextId) - { - // Try to load a VUI Help configuration and display it if found - var targetUiaId = msg.params.payload.uiaId; - var helpPromptName = msg.params.payload.helpPromptName; - var dialogProperties = this._getVuiHelpDialogConfiguration(targetUiaId, helpPromptName); - if (dialogProperties) - { - this._vuiHelpDialog = framework.instantiateControl(dialogProperties.uiaId, document.body, 'Dialog3Ctrl', dialogProperties.dialogConf); - this._vuiHelpDialog.divElt.classList.add("Dialog3Ctrl_Style19_NoTemplateInstance"); - - // Add properties to the control to record the uiaId and contextId. See also _closeVuiHelpOnTransition(). - this._vuiHelpDialog._uiaId = msg.params.payload.currentUiaId; - this._vuiHelpDialog._contextId = msg.params.payload.currentContextId; - } - } - else - { - log.warn("Ignoring Global.StartHelp message because GUI is in context '" - + framework.getCurrentApp() - + " " - + framework.getCurrCtxtId() - + "' but the message is for a different context: " - + JSON.stringify(msg)); - } -}; - -/* - * Handler for Global.HideHelp message - * @tparam Object msg (optional) The parsed message object sent from Mmui - */ -Common.prototype._HideVuiHelpHandler = function(msg) -{ - log.debug("Common.prototype._HideVuiHelpHandler called"); - - if (this._vuiHelpDialog) - { - framework.destroyControl(this._vuiHelpDialog); - this._vuiHelpDialog = null; - } -}; - -/* - * Close Vui Help at the start of a transition to a new template if that template represents a different context. - */ -Common.prototype._closeVuiHelpOnTransition = function(template) -{ - if (this._vuiHelpDialog - && template - && template.contextInfo.uiaId != this._vuiHelpDialog._uiaId - && template.contextInfo.ctxtId != this._vuiHelpDialog._contextId) - { - this._HideVuiHelpHandler(null); - } -}; - -/* - * Returns a configuration object for a VUI help dialog3 control prompt from an app's dictionary. - * Returns null if no prompt text is found in the dictionary. - * @tparam String uiaId The application requesting the VUI help. - * @tparam String helpPromptName The name of the help prompt to look for in the dictionary. - */ -Common.prototype._getVuiHelpDialogConfiguration = function(uiaId, helpPromptName) -{ - var config = { - dialogConf: { - contentStyle: "style19", - titleStyle : "titleStyle03" - }, - uiaId: uiaId - }; - var found = false; - - // When help prompt name which requires default default help screen is received show system/Home help screen - if (this._defaultHelpPrompt === helpPromptName) - { - helpPromptName = "HomeScreen_Help"; - uiaId = "system"; - config.uiaId = uiaId; - } - // __VrHelpPositionTable__ flag for the current app - var vrHelpPosTable = framework.localize.testVrHelpPosTableExistence(uiaId, helpPromptName); - var leftStringId = null; - var rightStringId = null; - - // Dictionary strings for a VUI help prompt have specific computable stringIds. - for (var i = 1; i <= 5; ++i) - { - if (vrHelpPosTable) - { - // new approach - leftStringId = framework.localize.getVrHelpStringId(uiaId, helpPromptName,"Left", i); - rightStringId = framework.localize.getVrHelpStringId(uiaId, helpPromptName,"Right", i); - } - else - { - // old approach TODO: to be removed when all the VR apps supports the new VrHelpPositionTable. - leftStringId = "VrHelp_" + helpPromptName + "_Left" + i; - rightStringId = "VrHelp_" + helpPromptName + "_Right" + i; - } - - if (leftStringId && framework.localize.testLocStr(uiaId, leftStringId)) - { - config.dialogConf["text" + i.toString() + "Id"] = leftStringId; - found = true; - } - if (rightStringId && framework.localize.testLocStr(uiaId, rightStringId)) - { - config.dialogConf["text" + (i + 5).toString() + "Id"] = rightStringId; - } - } - - if (found) - { - var titleId = "VrHelp_" + helpPromptName + "_Title"; - if (framework.localize.testLocStr(uiaId, titleId)) - { - config.dialogConf.titleId = titleId; - } - else - { - // No title found in dictionary -- use default title - config.dialogConf.titleId = "common.VuiHelpDefaultTitle"; - } - } - - return (found) ? config : null; -}; - -/* - * Function called by apps to determine if vehicle is at speed - * @return Boolean true if vehicle is at speed - */ -Common.prototype.getAtSpeedValue = function() -{ - return this._atSpeed; -}; - -/* - * Tells the status bar to show/hide the Home button - * @param show Boolean true if the home button should be displayed. false if it should be hidden. - */ -Common.prototype.showSbHomeButton = function(show) -{ - this.statusBar.showHomeBtn(show); -}; - -/* - * (internal) Called by framework. Sets the App name text/image in the status bar - * @param label String Literal text name or image path to display in the status bar - */ -Common.prototype.setSbName = function(label) -{ - // setAppName() will differentiate between text & imagery - this.statusBar.setAppName(label); -}; - -/* - * (internal) Called by framework. Sets the translated App name text in the status bar - * @param uiaId String UiaId of the App the string should be translated for - * @param labelId String StringID to be translated - * @param subMap Object Optional subMap to be placed in the text - */ -Common.prototype.setSbNameId = function(uiaId, labelId, subMap) -{ - this.statusBar.setAppNameId(uiaId, labelId, subMap); -}; - -/* - * (internal) Called by framework. Sets the icon between the Home Button and the App Name in the status bar - * @param path String Path from index.html to icon. Pass null to remove current icon - */ -Common.prototype.setSbDomainIcon = function(path) -{ - this.statusBar.setDomainIcon(path); -}; - -/* - * Updates the state of a Status Bar Icon - * @param name String Base Icon name ("Batt", "PhoneSignal", "Roaming", "Traffic", "WifiSignal", "Music", "Bluetooth", "Message") - * @param visible Boolean True if the icon should be shown. False if it should be hidden - * @param state String (Optional) String corrsponding to the state of the icon ("00", "01", "02", "03", "04", "05") - */ -Common.prototype.setSbIcon = function(name, visible, state) -{ - this.statusBar.setIcon(name, visible, state); -}; - -/* - * Utility API for enabling/disabling auto-hide behavior for status bar & UMP - * @param isEnabled Boolean Auto-hides the status bar and UMP by internal inactivity timer (when true) - */ -Common.prototype._setDisplaySbUmpByActivityEnabled = function(isEnabled) -{ - this._displaySbUmpByActivity = isEnabled; - - if (this._displaySbUmpByActivity) { - // remove any existing non-transparent div - if (this._nonTransparentDiv) - { - utility.removeHTMLElement(this._nonTransparentDiv); - this._nonTransparentDiv = null; - } - - // create a non-transparent div so that opera receives touch events - this._nonTransparentDiv = document.createElement('div'); - this._nonTransparentDiv.className = "CommonNonTransparentDiv"; - document.body.insertBefore(this._nonTransparentDiv, document.body.firstChild); - - // Detect activity to kick everything off - this.activityDetected(true, null); - } - else - { - // Remove the non-transparent div - utility.removeHTMLElement(this._nonTransparentDiv); - this._nonTransparentDiv = null; - - // Shut down any timer we may have running - this._cleanUpInactivityTimer(); - - // Set the activity flag to "true" to force status bar & UMP visibility - this._activityDetected = true; - this._updateSbUmpVisibility(); - - // Reset the activity detected flag - this._activityDetected = false; - } - - // Ignore any prior external show/hide requests - this._sbRequestedState = "none"; -}; - -/* - * Public API for external applications (e.g. TV) to request that the status bar be shown - * @param delay_ms Integer The number of milliseconds to wait before starting the status bar animation - * @param duration_ms Integer The number of milliseconds the status bar animation should take to complete - * @param receipt_cb Function The function to call to signal receipt of the request - */ -Common.prototype.requestStatusBarShown = function(delay_ms, duration_ms, receipt_cb) -{ - log.debug("requestStatusBarShown(" + delay_ms + ", " + duration_ms + ")"); - - // Cache requested status bar timings - if ((utility.toType(delay_ms) == "number") && - (delay_ms >= 0)) { - // Store custom delay timing - this._sbDelay_ms = delay_ms; - } - else { - // Store default delay timing - this._sbDelay_ms = this._defaultSbDelay_ms; - } - if ((utility.toType(duration_ms) == "number") && - (duration_ms >= 0)) { - // Store custom duration timing - this._sbDuration_ms = duration_ms; - } - else { - // Store default duration timing - this._sbDuration_ms = this._defaultSbDuration_ms; - } - - // Remember the external request - this._sbRequestedState = "shown"; - - // Update the controls' visibility - this._updateSbUmpVisibility(); - - // If a receipt callback was provided, ... - if (utility.toType(receipt_cb) === "function") { - // Call it to signal receipt of the request - receipt_cb(); - } -}; - -/* - * Public API for external applications (e.g. TV) to request that the status bar be hidden - * @param delay_ms Integer The number of milliseconds to wait before starting the status bar animation - * @param duration_ms Integer The number of milliseconds the status bar animation should take to complete - * @param receipt_cb Function The function to call to signal receipt of the request - */ -Common.prototype.requestStatusBarHidden = function(delay_ms, duration_ms, receipt_cb) -{ - log.debug("requestStatusBarHidden(" + delay_ms + ", " + duration_ms + ")"); - - // Cache requested status bar timings - if ((utility.toType(delay_ms) === "number") && - (delay_ms >= 0)) { - // Store custom delay timing - this._sbDelay_ms = delay_ms; - } - else { - // Store default delay timing - this._sbDelay_ms = this._defaultSbDelay_ms; - } - if ((utility.toType(duration_ms) === "number") && - (duration_ms >= 0)) { - // Store custom duration timing - this._sbDuration_ms = duration_ms; - } - else { - // Store default duration timing - this._sbDuration_ms = this._defaultSbDuration_ms; - } - - // Remember the external request - this._sbRequestedState = "hidden"; - - // Update the controls' visibility - this._updateSbUmpVisibility(); - - // If a receipt callback was provided, ... - if (utility.toType(receipt_cb) == "function") { - // Call it to signal receipt of the request - receipt_cb(); - } -}; - -/* - * Public hook for notification (from Multicontroller.js) about user activity (touch/keyboard/multicontroller input) - * @param isActive (Boolean) Flag indicating if activity is detected (true) or not (false) - * @param evt (Object) The Opera event that generated the activity - * @param tuiEvent (String) If this is a multicontroller action, the corresponding eventId will be passed - */ -Common.prototype.activityDetected = function(isActive, evt, tuiEvent) -{ - // If we're using local timing ... - if (this._displaySbUmpByActivity) - { - // Get the current position & height of the status bar - // (so we can detect if we've selected it or not) - var det = this.statusBar.divElt.offsetTop; - var deh = this.statusBar.divElt.offsetHeight; - - var legalEvent = false; // will be set to true if this event can trigger activity given the configuration - - // If we have no event, or we have a legal event and the status bar itself wasn't selected, ... - if (evt == null) - { - // null event is used for special case private calls within Common.js - legalEvent = true; - } - else if (evt.type == "mouseup" || evt.type == "mousedown") - { - // mouse events can trigger on "touch" or "both", but only if they are not on the Status Bar - if (this._displaySbUmpActivityTypes == "both" || this._displaySbUmpActivityTypes == "touch") - { - if (evt.pageX <= 800) - { - if (evt.pageY >= (det + deh)) - { - legalEvent = true; - } - else if (evt.type == "mouseup") - { - // mouse up occurred in the status bar. Very specific case to account for touch-and-drag - legalEvent = true; - } - } - } - - } - else if (evt.type == "keydown" || evt.type == "keyup" || evt.type == "mousewheel") - { - // Multicontroller event can only trigger if the activity type is "both" - if (this._displaySbUmpActivityTypes == "both") - { - legalEvent = true; - } - } - - if (legalEvent) - { - log.debug("activityDetected()", isActive, evt); - - // Check if the activity state has changed - var stateChanged = (this._activityDetected != isActive); - - // Update the internal activity state - this._activityDetected = isActive; - - // (Re)start the timer to measure inactivity - if (this._activityDetected) { - // a press down via touch or MC should not trigger the Inactivity timeout - var triggerTimer = true; - if (evt != null) - { - if (evt.type == "mousedown") - { - triggerTimer = false; - } - else if (evt.type == "keydown") - { - // Exception: rotations should still trigger the Inactivity timeout - if (tuiEvent != "cw" && tuiEvent != "ccw") - { - triggerTimer = false; - } - } - } - - if (triggerTimer == false) - { - // just clean up the timer - this._cleanUpInactivityTimer(); - } - else - { - this._startInactivityTimer(); - } - } - - // If the activity state changed, ... - if (stateChanged) { - // ... update the controls' visibility - this._updateSbUmpVisibility(); - } - } - } -}; - -Common.prototype._startInactivityTimer = function() -{ - // Clean up any existing inactivity timer - this._cleanUpInactivityTimer(); - - if (this._displaySbUmpByActivity) { - // (Re)start inactivity timer for a 3-second wait - this._inactivityTimer = setTimeout(this._onInactivityBinder, 3000); - } -}; - -Common.prototype._onInactivity = function() -{ - // Clear the timer that got us here - this._cleanUpInactivityTimer(); - - if (this._displaySbUmpByActivity) { - // Local inactivity timer has expired -- lower the flag - this._activityDetected = false; - - // Update the controls' visibility - this._updateSbUmpVisibility(); - } -}; - -Common.prototype._cleanUpInactivityTimer = function() -{ - if (this._inactivityTimer != null) { - // Clean up any existing inactivity timer - clearTimeout(this._inactivityTimer); - this._inactivityTimer = null; - } -}; - -Common.prototype._updateSbUmpVisibility = function() -{ - if (this._displaySbUmpByActivity || this._sbRequestedState != "none") - { - log.debug("_updateSbUmpVisibility()"); - log.debug("this._sbRequestedState = " + this._sbRequestedState); - log.debug("this._activityDetected = " + this._activityDetected); - log.debug("this._sbnIsDisplayed = " + this._sbnIsDisplayed); - - // Default values for status bar animation timing - var delay_ms = this._defaultSbDelay_ms; - var duration_ms = this._defaultSbDuration_ms; - - // Are the conditions right for showing the status bar? - if ((this._cachedTemplate.properties.statusBarVisible) && ((this._sbRequestedState === "shown") || this._activityDetected || this._sbnIsDisplayed)) { - // Yes -- show it - if (this._sbRequestedState === "shown") { - // Use custom timings from external request - delay_ms = this._sbDelay_ms; - duration_ms = this._sbDuration_ms; - } - - // Show the status bar - this.statusBar.transitionVisible(delay_ms, duration_ms, "slide", true); - } - else if ((this._sbRequestedState == "hidden" || !this._activityDetected) && !this._sbnIsDisplayed) { - // No -- hide it - if (this._sbRequestedState == "hidden") { - // Use custom timings from external request - delay_ms = this._sbDelay_ms; - duration_ms = this._sbDuration_ms; - } - - // Hide the status bar - this.statusBar.transitionVisible(delay_ms, duration_ms, "slide", false); - } - - if (this._activityDetected) { - // Call template's "showing started" callback, if available - if (utility.toType(this._cachedTemplate["onActivityShowing"]) == "function") { - this._cachedTemplate.onActivityShowing(delay_ms, duration_ms); - } - } - else { - // Call template's "hiding started" callback, if available - if (utility.toType(this._cachedTemplate["onActivityHiding"]) == "function") { - this._cachedTemplate.onActivityHiding(delay_ms, duration_ms); - } - } - - // Reset the externally-requested timings to default -- if the status bar was actually shown/hidden - // on this call, the timings were already used. Otherwise, the status bar couldn't be changed (e.g. - // an SBN was displayed), so the timings need to be reset for the next pass. - this._sbDelay_ms = this._defaultSbDelay_ms; - this._sbDuration_ms = this._defaultSbDuration_ms; - } -}; - -/* - * Adds a timed Sbn with the given properties to the Status Bar queue - */ -Common.prototype.startTimedSbn = function(uiaId, sbnId, type, properties) -{ - log.debug("Timed SBN requested by " + uiaId + " with id: " + sbnId); - - var uniqueId = uiaId + sbnId; - this._requestNewSbn(uiaId, uniqueId, type, properties, true); -}; - -/* - * Removes a timed Sbn with the given properties to the Status Bar queue - */ -Common.prototype.cancelTimedSbn = function(uiaId, sbnId, type) -{ - var uniqueId = uiaId + sbnId; - - if (utility.toType(sbnId) != 'string' || !this._knownSbns[uniqueId]) - { - log.debug("Cannot cancel unknown sbnId: " + sbnId + " for App: " + uiaId); - return; - } - - // set the expiration to the current time. this will remove the SBN when it comes up in queue, but - // will not remove it if it is already being displayed - this._knownSbns[uniqueId].expiration = new Date().getTime(); -}; - -/* - * Adds a state-based Sbn with the given properties to the Status Bar queue - */ -Common.prototype.showStateSbn = function(uiaId, sbnId, type, properties) -{ - log.debug("State-based SBN requested by " + uiaId + " with id: " + sbnId); - - var uniqueId = uiaId + sbnId; - this._requestNewSbn(uiaId, uniqueId, type, properties, false); -}; - -/* - * Removes a state-based Sbn with the given properties to the Status Bar queue - */ -Common.prototype.endStateSbn = function(uiaId, sbnId, type) -{ - var uniqueId = uiaId + sbnId; - - if (utility.toType(sbnId) != 'string' || !this._knownSbns[uniqueId]) - { - log.debug("Cannot end unknown sbnId: " + sbnId + " for App: " + uiaId); - return; - } - - log.debug("Ending State SBN: " + sbnId + " for App: " + uiaId); - - // If it is currently being displayed, remove it - if (uniqueId == this._displayedSbnId) - { - this._removeDisplayedSbn(); - } - else if (this._sbnQueue.indexOf(uniqueId) != -1) - { - // if in queue, remove from queue - this._sbnQueue.splice(this._sbnQueue.indexOf(uniqueId), 1); - } - - // if none displayed, display first in queue - if (!this._displayedSbnId) - { - this._displaySbnFromQueue(); - } -}; - -/* - * Sets how many numbers are shown in the LeftButton chrome. Called by List any time - * the visible line count changes - * @param count Number Integer indicating how many line numbers should be shown. - * @param style String Left Button VUI Number style (see Left Button SDD for information) - */ -Common.prototype.setLineNumbers = function(count, style) -{ - if (utility.toType(count) != 'number' || utility.toType(style) != 'string') - { - log.warn("Type error: setLineNumbers must be called with count as integer and style as string"); - return; - } - - this._lineNumberData = {"count": count, "style": style}; - - var showLineNumbers = false; - switch(this._cachedVuiState) - { - case "Not Ready": - break; - case "Idle": - break; - case "Playing Out of Session Alert": - break; - case "Playing Prompt": - // Show "Wait for Tone" SBN - showLineNumbers = true; - break; - case "Listening": - // Show sound meter SBN starting at 0 - showLineNumbers = true; - break; - case "Processing": - // Show SBN with no text or meter - break; - case "Playing Terminating Prompt": - // Show SBN with no text or meter - break; - default: - break; - } - - this._showHideLineNumbers(showLineNumbers); -}; - -/* - * Show or hide the line numbers. - * @param showLineNumbers (Boolean) Show line numbers if the current template supports line numbers. - */ -Common.prototype._showHideLineNumbers = function(showLineNumbers) -{ - if (showLineNumbers == true && this._lineNumberData != null) - { - // validate that this is a List and the List is configured to show line numbers - if (this._cachedTemplate && this._cachedTemplate.templateName == "List2Tmplt") - { - if ((this._cachedTemplate.list2Ctrl.dataList) && - (this._cachedTemplate.list2Ctrl.dataList.vuiSupport == true) && - (this._cachedTemplate.list2Ctrl.properties.numberedList == true) && - (this._cachedTemplate.list2Ctrl.dataList.hasOwnProperty('itemCount') && this._cachedTemplate.list2Ctrl.dataList.itemCount > 0)) - { - this.leftBtn.showLineNumbers(this._lineNumberData.count, this._lineNumberData.style); - } - - } - } - else - { - this.leftBtn.hideLineNumbers(); - } -}; - -/* - * Update this._canShowSbns based on a the cached template. - */ -Common.prototype._updateCanShowSbns = function() -{ - if (this._cachedTemplate.contextInfo.uiaId == "system" && this._cachedTemplate.contextInfo.ctxtId == "DisplayOff") - { - // A special case where the context does not have a status bar but we still need to show SBNs. - this._canShowSbns = true; - } - else if (this._cachedTemplate.properties.statusBarVisible == false) - { - // Do not display SBNs if there is no status bar - this._canShowSbns = false; - } - else if (this._cachedTemplate.contextInfo.uiaId == "ecoenergy" && - (this._cachedTemplate.contextInfo.ctxtId == "EndingFuelConsumption" || this._cachedTemplate.contextInfo.ctxtId == "EndingEffectiveness")) - { - this._canShowSbns = false; - } - else - { - this._canShowSbns = true; - } - - log.debug("Can show SBNs?", this._canShowSbns); - - if (this._canShowSbns == false) - { - // Remove and requeue any displayed SBN - if (this._displayedSbnId) - { - var temp = this._removeDisplayedSbn(); - this._addSbnToQueue(temp, "top"); - } - - // Also remove any displayed Wink - this._removeWinkHelper(); - } -}; - -/* - * helper function to check whether given sbn type is valid - * @param type String type of the SBN - */ -Common.prototype._isValidSbnType = function(type) -{ - var isValidSbnType = false; - if (this._SBN_TYPES[type] != null) - { - isValidSbnType = true; - } - return isValidSbnType; -}; - -/* - * helper function to check whether given sbn type is old one - * @param type String old type of the SBN - */ -Common.prototype._isValidConversionType = function(type) -{ - var isValidConversionType = false; - if (this._SBN_MAPPING_TABLE[type] != null) - { - isValidConversionType = true; - } - return isValidConversionType; -}; - -/* - * helper function to convert old sbn type into valid type - * @param type String old type of the SBN - */ -Common.prototype._convertToValidSbnType = function(type) -{ - var validType; - if (this._isValidConversionType(type)) - { - validType = this._SBN_MAPPING_TABLE[type]; - } - else - { - validType = "unknown"; - log.error("SBN type " + type + " is not valid. Using " + validType + " as a default. See System Specs for possible sbn types"); - } - return validType; -}; - -/* - * Helper function to reduce duplicate logic - */ -Common.prototype._requestNewSbn = function(uiaId, sbnId, type, properties, isTimed) -{ - if (utility.toType(sbnId) != 'string') - { - log.error("Given sbnId was not of valid type 'string'. Please give valid sbnId."); - return; - } - - if (utility.toType(type) != 'string') - { - log.error("Given SBN type must be a string from the table in GUI Common. See Common SDD for possible types."); - } - - if (false == this._isValidSbnType(type)) - { - type = this._convertToValidSbnType(type); - } - - //blacklist will now contain new letter based sbn type, so this check is moved after the type conversion - if (this._SBN_TYPE_BLACKLIST.indexOf(type) != -1) - { - log.debug("Request for blacklisted SBN type:", type, "has been blocked"); - return; - } - - // if already in queue or displayed, update sbn - if (sbnId == this._displayedSbnId) - { - this._setKnownSbn(uiaId, sbnId, type, properties, isTimed); - this._displayedSbn.setSbnConfig(properties); // Call API to do live update on Control - - if (isTimed) - { - // extend the timer - clearTimeout(this._displayedSbnTimerId); - this._displayedSbnTimerId = setTimeout(this._sbnFinished.bind(this), this._knownSbns[sbnId].duration); - } - } - else if (this._sbnQueue.indexOf(sbnId) != -1) - { - this._setKnownSbn(uiaId, sbnId, type, properties, isTimed); - } - else // if !in queue and !displayed, it's new and we need to check it for priority - { - this._setKnownSbn(uiaId, sbnId, type, properties, isTimed); - - // If there's an SBN currently displayed... - if (this._displayedSbnId) - { - // Get priority level of this sbnId - var priority = this._knownSbns[sbnId].priority; - var queueTime = this._SBN_TYPES[type] != null ? this._SBN_TYPES[type].queueTime : this._SBN_TYPES.unknown.queueTime; - var replaceDisplayed = false; - - if (queueTime > 0) - { - // these SBNs DO queue and therefore SBNs of the same priority level should NOT clobber each other - if (priority < this._knownSbns[this._displayedSbnId].priority) // lower # is higher priority - { - replaceDisplayed = true; - } - } - else - { - // these SBNs do NOT queue and therefore SBNs of the same priority level should clobber each other - if (priority <= this._knownSbns[this._displayedSbnId].priority) // lower # is higher priority - { - replaceDisplayed = true; - } - } - - if (replaceDisplayed == true) - { - // call to this._removeDisplayedSbn() will set this._displayedSbnId to null and return displayed Id - var temp = this._removeDisplayedSbn(); - - this._displaySbn(sbnId); // the new one has higher priority and should be displayed - - this._addSbnToQueue(temp, "top"); // old SBN has been replaced and should be added to the queue (top if same priority level) - } - else - { - // new sbnId has lower priority and gets queued - this._addSbnToQueue(sbnId, "bottom"); - } - - } - else // display the new SBN. Some SBNs never go in the queue - { - if (!this._canShowSbns) - { - this._addSbnToQueue(sbnId, "bottom"); - } - else - { - // Tell Status Bar about the SBN - this._sbnIsDisplayed = true; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - - if (this._cachedTemplate.properties.statusBarVisible) - { - // Snap the status bar visible (only if this template is set to display a status bar) - this.statusBar.transitionVisible(0, 0, "slide", true); - } - - // ENTRY POINT #1 - // immediately display this SBN without adding it to the queue - this._displaySbn(sbnId); - - // Notify MMUI to turn on display if needed. - framework.sendEventToMmui("system", "DisplayOffNotificationEvent", {"payload": {"notificationActive": 1}}); - } - } - } - - if (this._canShowSbns && !this._displayedSbnId) - { - this._displaySbnFromQueue(); // The new SBN should be the first in queue (if something was displayed) - } -}; - -/* - * Helper function to add Sbns to the queue - * @param sbnId String Unique ID of the SBN to add to the queue - * @param queueOrder String Identifies where to place an SBN in case they are the same priority level ("top" or "bottom") - */ -Common.prototype._addSbnToQueue = function(sbnId, queueOrder) -{ - if (sbnId == null) - { - log.error("_addSbnToQueue: Cannot add null sbnId to queue."); - return; - } - if (!this._knownSbns[sbnId]) - { - log.error("Attempt to add Sbn to queue failed: Could not identify Sbn", sbnId, "in knownSbns variable."); - return; - } - - var currTime = new Date().getTime(); - // state-based SBNs do not expire. An SBN that is Timed and expired does not need to be added to the queue. It would just be removed later anyway. - if (this._knownSbns[sbnId].isTimed && currTime >= this._knownSbns[sbnId].expiration) - { - log.debug("SBN", sbnId, "has expired. No reason to add it to queue"); - return; - } - - // Get priority level of this sbnId - var priority = this._knownSbns[sbnId].priority; - - // Use queuePos so we don't modify the array while looping through it. - var queuePos = this._sbnQueue.length; // default to Array.length so that splice will add it to the end of the Array. - - // Add to queue in appropriate spot - for (var i = 0; i < this._sbnQueue.length; i++) - { - if (queueOrder == "top") - { - if (priority <= this._knownSbns[this._sbnQueue[i]].priority) // lower # is higher priority - { - // insert into queue - queuePos = i; - break; // cut in line and we're done - } - } - else - { - if (priority < this._knownSbns[this._sbnQueue[i]].priority) // lower # is higher priority - { - // insert into queue - queuePos = i; - break; // cut in line and we're done - } - } - - } - - this._sbnQueue.splice(queuePos, 0, sbnId); // at queuePos, remove 0, add sbnId - -}; - -/* - * Helper function that creates or updates an Sbn Object to add to/update the knownSbns variable. - */ -Common.prototype._setKnownSbn = function(uiaId, sbnId, type, properties, isTimed) -{ - var expiration = new Date(); - var priority = 0; - var duration = 0; - - // if type is known, use its properties - if (!this._SBN_TYPES[type]) - { - log.warn("Priority level of Sbn type: " + type + " is unknown. Setting priority to lowest level."); - type = "unknown"; - } - - expiration.setTime(expiration.getTime() + this._SBN_TYPES[type].queueTime); - priority = this._SBN_TYPES[type].priority; - duration = this._SBN_TYPES[type].timedDuration; - - this._knownSbns[sbnId] = { - "uiaId" : uiaId, - "type": type, - "priority": priority, - "isTimed": isTimed, - "duration": duration, // duration is only used for timed Sbns - "expiration": expiration.getTime(), // Set an expiration time stamp for each Sbn - "properties": properties - }; -}; - -/* - * Immediately displays the SBN with the given sbnId - */ -Common.prototype._displaySbn = function(sbnId) -{ - if (!this._knownSbns[sbnId]) - { - log.error("Cannot display requested SBN: " + sbnId + ". SBN cannot be found in knownSbns variable."); - return; - } - - if (!this._canShowSbns) - { - // safety check. We should never get here. - log.debug("Cannot show new SBNs in this context."); - return; - } - - log.info("Displaying new sbn: " + sbnId); - this._displayedSbnId = sbnId; - this._displayedSbn = framework.instantiateControl(this._knownSbns[sbnId].uiaId, document.body, "SbnCtrl", this._knownSbns[sbnId].properties); - if (this._knownSbns[sbnId].isTimed) - { - this._displayedSbnTimerId = setTimeout(this._sbnFinished.bind(this), this._knownSbns[sbnId].duration); - } -}; - -/* - * Immediately destroys and removes the currently displayed SBN - * @return String Returns the sbnId of the SBN that was removed - */ -Common.prototype._removeDisplayedSbn = function() -{ - log.info("Removing currently displayed SBN: " + this._displayedSbnId); - clearTimeout(this._displayedSbnTimerId); - framework.destroyControl(this._displayedSbn); - - var removedId = this._displayedSbnId; - this._displayedSbn = null; - this._displayedSbnId = null; - - return removedId; -}; - -/* - * Chooses the first active SBN off the queue and displays it. - * @return String The ID of the new SBN that gets displayed. null of no SBN is displayed. - */ -Common.prototype._displaySbnFromQueue = function() -{ - var newSbnToDisplay = null; - if (!this._canShowSbns) - { - // safety check. We should never get here. - log.debug("Cannot show queued SBNs in this context."); - return newSbnToDisplay; - } - - if (this._sbnQueue.length == 0) - { - // nothing to display: EXIT POINT #1 - this._sbnIsDisplayed = false; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - this._updateSbUmpVisibility(); - - // Notify MMUI to turn off display if needed. - framework.sendEventToMmui("system", "DisplayOffNotificationEvent", {"payload": {"notificationActive": 0}}); - return newSbnToDisplay; - } - - var sbnId = null; - var flaggedForRemoval = new Array(); - - // check expiration - var currTime = new Date().getTime(); - - for (var i = 0; i < this._sbnQueue.length; i++) - { - sbnId = this._sbnQueue[i]; - - // state-based SBNs do not expire. An SBN in the queue that is state-based or -not- expired should be displayed immediately - if (this._knownSbns[sbnId].isTimed && currTime >= this._knownSbns[sbnId].expiration) - { - flaggedForRemoval.push(sbnId); - } - else - { - this._displaySbn(sbnId); - newSbnToDisplay = sbnId; - flaggedForRemoval.push(sbnId); - break; - } - } - - // splice any expired SBNs from the queue - for (var j = 0; j < flaggedForRemoval.length; j++) - { - this._sbnQueue.splice(this._sbnQueue.indexOf(flaggedForRemoval[j]), 1); // remove from queue - - if (flaggedForRemoval[j] != this._displayedSbnId) - { - delete this._knownSbns[flaggedForRemoval[j]]; // delete from known Sbns - } - } - - flaggedForRemoval = null; - - if (this._sbnQueue.length == 0 && !this._displayedSbnId) - { - // no more SBNs to display: EXIT POINT #2 - this._sbnIsDisplayed = false; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - this._updateSbUmpVisibility(); - - // Notify MMUI to turn off display if needed. - framework.sendEventToMmui("system", "DisplayOffNotificationEvent", {"payload": {"notificationActive": 0}}); - } - - return newSbnToDisplay; -}; - -/* - * Callback for when a timed SBN completes - */ -Common.prototype._sbnFinished = function() -{ - this._removeDisplayedSbn(); - this._displaySbnFromQueue(); -}; - -/* - * (internal) Called by framework. Sets the style of the left button to - * either "goBack" or "menuUp" - */ -Common.prototype.setLeftBtnStyle = function(style) -{ - this.leftBtn.setStyle(style); -}; - -/* - * Updates the clock to display the value given. Value should be given in Unix format - * @param milliseconds Number the current time in number of milliseconds in a date string since midnight of January 1, 1970 - */ -Common.prototype.updateSbClock = function(milliseconds) -{ - var type = utility.toType(milliseconds); - if (type != 'number' && type != 'date') - { - log.warn("Common.updateSbClock can only accept an argument of type Number or Date"); - return; - } - - this._cachedTime = milliseconds; - this.statusBar.updateClock(milliseconds); - - // Update the clock in the OffScreen control if it that is the current template - if (this._cachedTemplate && this._cachedTemplate.templateName == "OffScreenTmplt" && this._cachedTemplate.updateClock) - { - this._cachedTemplate.updateClock(); - } -}; - -Common.prototype.getCurrentTime = function() -{ - var type = utility.toType(this._cachedTime); - var time = 0; - - if (type == 'number') - { - time = this._cachedTime; - } - else if (type == 'date') - { - time = this._cachedTime.getTime(); - } - - return time; -}; - -/* - * Removes the wink from the screen. This is called after the wink times out - * @param ctrlObj Object Reference to the Wink Control Object. - * @param appData Object App data stored by Common - * @param params Object Additional params passed by WinkCtrl - */ -Common.prototype._alertComplete = function(ctrlObj, appData, params) -{ - log.debug("Wink complete: " + ctrlObj.properties.alertId); - - this._removeWinkHelper(); -}; - -Common.prototype._removeWinkHelper = function() -{ - if (this._wink) - { - log.info("wink is", this._wink); - framework.websockets.sendAlertCompleteMsg(this._wink.uiaId, this._wink.properties.alertId); - - framework.destroyControl(this._wink); - this._wink = null; - } -}; - -/* - * Callback for when the Status Bar is clicked - * @param ctrlObj (Object) Reference to the button control object in status bar that was clicked - * @param appData (Object) Data passed in by the app when the control was instantiated - * @param params (Object) Optional params passed by the control object - */ -Common.prototype._statusBarClicked = function(ctrlObj, appData, params) -{ - log.debug("status bar clicked", ctrlObj, appData, params); - if (params.statusBtn == "home") - { - if (this._diagEntrySequence != 2 ) // 2 here indicates the sequence was completed - { - framework.sendEventToMmui("common", "Global.IntentHome"); - } - } - -}; - -/* - * Callback for when the Status Bar is long pressed - * @param ctrlObj (Object) Reference to the button control object in status bar that was clicked - * @param appData (Object) Data passed in by the app when the control was instantiated - * @param params (Object) Optional params passed by the control object - */ -Common.prototype._statusBarLongPress = function(ctrlObj, appData, params) -{ - if (params.statusBtn == "clock") - { - log.info("Clock Long Press Detected."); - this._diagEntrySequence = 1; - // clear exisiting timeout if any - clearTimeout(this._clockHomeButtonLongPressIntervalId); - //time interval between clock button long press and home button long press should be less than 9 secs - this._clockHomeButtonLongPressIntervalId = setTimeout(this._statusBarLongPressTimerHandler.bind(this),9000); - } - else if (params.statusBtn == "home" && this._diagEntrySequence == 1 && this._clockHomeButtonLongPressIntervalId) - { - log.info("Entering Diagnostics App"); - this._diagEntrySequence = 2; - framework.sendEventToMmui("syssettings", "SelectDiagnostics"); - } - -}; - -Common.prototype._statusBarLongPressTimerHandler = function() -{ - this._clockHomeButtonLongPressIntervalId = null; - this._diagEntrySequence = 0; -}; - -/* - * Callback for when the left button is pressed. - * @param controlObj (object) Reference to the LeftBtn that was pressed - */ -Common.prototype._leftBtnSelected = function(controlObj, appData, params) -{ - this._leftBtnSelectEvent(params.style); -}; - -/* - * Helper function to reduce duplicate logic. Called when the left button is selected either - * via touch or multicontroller -OR- when the TUI Left Hard Key is pressed. - * @param style String Style of the left button (determines which event to send to MMUI) - */ -Common.prototype._leftBtnSelectEvent = function(style) -{ - if (this.cmnCtrlsDisabled) - { - return; - } - - // Send an appropriate event based on the current style of the left button - switch (style) - { - case "goLeft": // legacy behavior TODO: remove when all Apps have updated - framework.sendEventToMmui("common", "Global.GoLeft"); - break; - case "goBack": // go back to the previous screen - framework.sendEventToMmui("common", "Global.GoBack"); - break; - case "menuUp": // go up one menu level - framework.sendEventToMmui("common", "Global.MenuUp"); - break; - default: - log.warn("There is no defined event for left button style: " + style); - break; - } -}; - -Common.prototype.getContextCapture = function() -{ - return { - leftBtnHasFocus : this.leftBtn.divElt.style.visibility === 'visible' && this.leftBtn.btnInstance.hasFocus - }; -}; - -Common.prototype.restoreContext = function(restoreData) -{ - if (restoreData.commonContextCapture && restoreData.commonContextCapture.leftBtnHasFocus) - { - restoreData.skipRestore = true; - } -}; - -/* - * Cause an audible beep to be played. - * @param pressType (String) Indicates a short press or a long press. Valid values are “Short” and “Long”. - * @param eventCause (String) Indicates the user interaction that caused the beep. Valid values are “Touch”, “Multicontroller”, and “Hardkey”. - */ -Common.prototype.beep = function(pressType, eventCause) -{ - var validPressTypes = [ "Short", "Long" ]; - if (utility.toType(pressType) !== "string" || validPressTypes.indexOf(pressType) === -1) - { - log.warn("Invalid pressType parameter passed to common.beep(). Valid values are 'Short' or 'Long'."); - return; - } - - var validEventCauses = [ "Touch", "Multicontroller", "Hardkey" ]; - if (utility.toType(eventCause) !== "string" || validEventCauses.indexOf(eventCause) === -1) - { - log.warn("Invalid eventCause parameter passed to common.beep(). Valid values are 'Touch' or 'Multicontroller' or 'Hardkey'"); - return; - } - - if (pressType == "Short" && eventCause == "Multicontroller") - { - // do not send this - return; - } - - var args = { - "payload" : { - "pressType" : pressType, - "eventCause" : eventCause - } - }; - - log.info("Sending PlayAudioBeep", pressType, eventCause); - framework.sendEventToMmui("audiosettings", "PlayAudioBeep", args); -}; - -/* - * Mute message handler - */ -Common.prototype._HandleStatusUpdateVolume = function(msg) -{ - if (msg && msg.params && msg.params.payload) - { - var isMuted = msg.params.payload.volumeOnOffStatus === "VolumeOff"; - if (isMuted !== this._isMuted) - { - this._isMuted = isMuted; - this._isMutedChanged(); - } - } -}; - -/* - * Called when the value of _isMuted changes - */ -Common.prototype._isMutedChanged = function() -{ - var action = this._getMuteOverlayAction(); - switch (action) - { - case "wink": - this._showMuteWink(3000); - break; - - case "persistentWink": - this._showMuteWink(null); - break; - - case "sbn": - this._showMuteSbn(); - break; - - default: - this._hideMuteWink(); - this._hideMuteSbn(); - break; - - } -}; - -Common.prototype._showMuteSbn = function() -{ - var properties = { - sbnStyle: "Style02", - }; - - if (this._isMuted) - { - properties.imagePath1 = "IcnSbnMuteOn.png"; - properties.text1Id = "common.muteOn"; - } - else - { - properties.imagePath1 = "IcnSbnMuteOff.png"; - properties.text1Id = "common.muteOff"; - } - - this.startTimedSbn("common", "TimedSbn_StatusUpdateVolumeOnOff", "typeA", properties); -}; - -Common.prototype._hideMuteSbn = function() -{ - this.cancelTimedSbn("common", "TimedSbn_StatusUpdateVolumeOnOff", "typeA"); -}; - -Common.prototype._showMuteWink = function(winkTimeout) -{ - var properties = { - "style": "style05", - "image1": "common/images/icons/IcnWinkUnMute.png", - "winkTimeout": winkTimeout, - "alertId": "", - "completeCallback": this._muteWinkComplete.bind(this) - }; - - if (this._isMuted) - { - properties.image1 = "common/images/icons/IcnWinkMute.png"; - } - - var newWink = framework.instantiateControl("common", document.body, "WinkCtrl", properties); - - // If there's a Wink currently displayed (e.g. persistentWink), get rid of it - this._hideMuteWink(); - this._muteWink = newWink; -}; - -Common.prototype._hideMuteWink = function() -{ - if (this._muteWink) - { - framework.destroyControl(this._muteWink); - this._muteWink = null; - } -}; - -Common.prototype._muteWinkComplete = function() -{ - this._hideMuteWink(); -}; - -/* - * Returns one of: "persistentWink", "wink", "sbn" - */ -Common.prototype._getMuteOverlayAction = function() -{ - if (this._cachedTemplate && this._cachedTemplate.templateName === "NowPlaying4Tmplt") - { - if (this._isMuted) - { - return "persistentWink"; - } - else - { - return "wink"; - } - } - else - { - var uiaId = framework.getCurrentApp(); - var ctxtId = framework.getCurrCtxtId(); - if (this.getContextCategory(uiaId, ctxtId) === "Entertainment") - { - return "wink"; - } - } - return "sbn"; -}; - -Common.prototype._updateMuteWinkOnTransition = function(prevTepmlate, currTemplate) -{ - if (this._isMuted && currTemplate && currTemplate.templateName === "NowPlaying4Tmplt") - { - this._showMuteWink(null); - } - else - { - this._hideMuteWink(); - } -}; - -/* - * Process Global.MenuUpReceived messages. - */ -Common.prototype._MenuUpReceived = function(msg) -{ - if (msg && msg.params && msg.params.payload) - { - this._menuUpReceiverApp = msg.params.payload.receiverApp; - } -}; - -/* - * Utility function to get the context category (domain) for a given application/context - * @param uiaId Application ID - * @param ctxtId Context ID - * @returns Domain string value (e.g. "Applications", "Communication", "Entertainment") - */ -Common.prototype.getContextCategory = function(uiaId, ctxtId) -{ - return this._contextCategory.getContextCategory(uiaId, ctxtId); -}; - -/* - * Utility function to get the status bar icon for a given context category (domain) - * @param domain Domain string value (e.g. "Applications", "Communication", "Entertainment") - * @returns Icon image file name - */ -Common.prototype.getContextCategorySbIcon = function(domain) -{ - return this._contextCategory.getContextCategorySbIcon(domain); -}; - -framework.registerCommonLoaded(["common/controls/StatusBar", - "common/controls/LeftBtn", - "common/controls/Wink", - "common/controls/Button", - "common/controls/Dialog3", - "common/controls/Sbn"], true); diff --git a/app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.58.00.250A-NA b/app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.58.00.250A-NA deleted file mode 100644 index f627867..0000000 --- a/app/files/tweaks/config_org/pause-on-mute/jci/gui/common/js/Common.js.58.00.250A-NA +++ /dev/null @@ -1,2631 +0,0 @@ -/* - Copyright 2012 by Johnson Controls - __________________________________________________________________________ - - Filename: Common.js - __________________________________________________________________________ - - Project: JCI-IHU - Language: EN - Author: awoodhc - Date: 08.27.2012 - __________________________________________________________________________ - - Description: IHU GUI Common - - Revisions: - v0.1 (27-Aug-2012) Create Common to handle all "system-wide" logic - v0.2 (27-Aug-2012) Added basic logic for "global" controls, multicontroller events, transitions, ctrl clicks, basic BG logic - v0.3 (28-Aug-2012) Added logic for alerts - v0.4 (11-Oct-2012) Added logic to hide Home Button while on Home Screen - v0.5 (04-Nov-2012) Added API to display App Name in Status Bar - Added Diag Entry logic - v0.6 (08-Nov-2012) Added API for Setting the Left Button Style. - v0.7 (19-Nov-2012) Changed Alert event to conform with MMUI standards. Added API to set the Status Bar Clock with value from MMUI. - v0.8 (26-Nov-2012) Fixed Diagnostics Entry. Common now counts a sequence to make sure the sequence is complete before resetting. - v0.9 (03-Dec-2012) Added message table for handling MMUI common messages and handling for LanguageChangeStatus msg - v1.0 (05-Dec-2012) Added API to set state of status bar icons - v1.1 (21-Jan-2012) Added new SBN and Wink logic - __________________________________________________________________________ - - */ - -log.addSrcFile("Common.js", "common"); -//log.setLogLevel("common", "debug"); - -function Common() -{ - log.debug("constructor called..."); - - //-- public variables - this.moduleName = "common"; // (String) Name of this module (used in place of uiaId when instantiating controls) - this.statusBar = null; // (Object) Status Bar Control Object - this.leftBtn = null; // (Object) Left Button Control Object - - this.cmnCtrlsDisabled = false; // (Boolean) Whether to Status Bar/Left Button are disabled due to a dialog - - - //-- private variables - - this._cachedTime = 0; // (Number) Stores the time value sent from MMUI via GUI_SYSSETTINGS - this._cachedTemplate = null; // (Object) template currently active in the DOM. Framework updates this. - this._menuUpReceiverApp = null; // (String) cached uiaId sent from MMUI when during a transition caused by a Menu Up action - this._canShowSbns = false; // (Boolean) true if Common can display SBNs over the cached template - - this._bgDiv1 = null; // (HTMLElement) the background div - this._bgDiv2 = null; // (HTMLElement) used to transition between 2 backgrounds - this._rightChrome = null; // (HTMLElement) the div used to display the right-hand chrome - this._customBgSet = false; // (Boolean) true if there is a custom bg set by the current template - this._defaultBgPath = "common/images/background.png"; // (String) the css path to the default bg image - this._currentBgPath = this._defaultBgPath; // (String) the css path to the current bg image - - this._wink = null; // (Object) The active Wink Control Object (null if none displayed) - this._winkTimeout = guiConfig.winkTimeout; // (Number) milliseconds a Wink will stay on screen - - this._muteWink = null; // (Object) The Entertainment Mute Wink Control Object (null if none displayed) - - this._cachedVuiState = null; // (String) Last VUI state sent from MMUI. - this._vuiHelpDialog = null; // (Object) The active VUI Help Dialog Control (null if none displayed) - this._vuiExamplesDialog = null; // (Object) The active VUI Examples Dialog Control (null if none displayed) - this._lineNumberData = null; // (Object) Contains data passed from a List pertaining to the VUI line numbers - - this._diagEntrySequence = 0; // (Number) 1 if the Diagnostics entry button sequence has begun. 2 if it has completed. - this._clockHomeButtonLongPressIntervalId = null; - - this._atSpeed = false; // (Boolean) true if AtSpeed event is received from MMUI - this._isMuted = false; // (Boolean) true if entertainment audio is currently muted - - this._contextCategory = new ContextCategory(); // (Object) Contains a lookup table to determine a context's category. - - //-- Status Bar Auto-Hide Variables - // MPP 09/16/2013 SW00107357 - this._displaySbUmpByActivity = false; // (Boolean) Master switch for auto-hide status bar/UMP feature - this._displaySbUmpActivityTypes = "both"; // (String) "both" for both touch & MC input to count as activity, "touch" for touch-only input - this._inactivityTimer = null; // (Object) The timer used to measure (in)activity for auto-hiding the status bar & UMP - this._onInactivityBinder = this._onInactivity.bind(this); // (Callback) Bind the timer callback once to save memory - this._activityDetected = false; // (Boolean) Flag raised on touch/MC input; lowered when inactivity timer expires - this._sbRequestedState = "none"; // (String) External request to show/hide status bar - this._sbDelay_ms = -1; // (Integer) # of milliseconds before status bar animation starts (external request) - this._sbDuration_ms = -1; // (Integer) # of milliseconds status bar animation should take (external request) - this._defaultSbDelay_ms = 0; // (Integer) Default delay timing for status bar animation - this._defaultSbDuration_ms = 500; // (Integer) Default duration timing for status bar animation - this._defaultHelpPrompt = "SpeechNotAllowed_Help"; // (string) help promp name which requires default help screen - - //-- Status Bar Notification Variables - /* - * See _setKnownSbn() function for _knownSbns variable properties - */ - this._knownSbns = new Object(); // (Object) key'd to SbnId, value is SbnObject with information necessary to display Sbn - this._sbnIsDisplayed = false; // (Boolean) Flag indicating whether an SBN is displayed (true) or not (false). - this._displayedSbn = null; // (Object) Refernce to the currently displayed Sbn Control. - this._displayedSbnId = null; // (String) SbnId of the currently displayed Sbn. null if none is displayed - this._displayedSbnTimerId = 0; // (Number) Timer ID used for timed Sbns. - this._sbnQueue = new Array(); // (Array) Queue of all current Sbns by Id. 0 is next in line to be dispalyed. - this._lastDisplayStateSent = 0; // (Number) saves last display off notification state - - // Default SBN values used where value is not specified in UI Spec. - var dfltDuration = 2000; // (Number) default number of milliseconds - var dfltQueue = 0; // (Number) default number of milliseconds - - // NOTE: State-based SBNs do not expire, but Timed SBNs should be queueTime 0 so that they do not re-appear (exception: driverId) - - this._SBN_TYPES = { // (Object) contains list of Sbn Priorities by type, defined in System UI Spec - - //replaced old sbn types with new letter based sbn types(As per SCR SW00155262) - "typeA": {"priority": 1, "timedDuration": 2000, "queueTime": 0}, // 1 is highest priority - "typeB": {"priority": 2, "timedDuration": dfltDuration, "queueTime": dfltQueue}, - "typeL": {"priority": 3, "timedDuration": 5000, "queueTime": 60000}, - "typeC": {"priority": 4, "timedDuration": dfltDuration, "queueTime": dfltQueue}, - "typeD": {"priority": 5, "timedDuration": 5000, "queueTime": 0}, - "typeE": {"priority": 6, "timedDuration": 5000, "queueTime": 0}, - "typeF": {"priority": 7, "timedDuration": 5000, "queueTime": 0}, - "typeG": {"priority": 8, "timedDuration": 5000, "queueTime": 0}, - "typeI": {"priority": 9, "timedDuration": 5000, "queueTime": 0}, - "typeJ": {"priority": 10, "timedDuration": 5000, "queueTime": 0}, - "typeK": {"priority": 11, "timedDuration": dfltDuration, "queueTime": dfltQueue}, - "unknown": {"priority": 100, "timedDuration": dfltDuration, "queueTime": dfltQueue} - }; - - this._SBN_MAPPING_TABLE = { // contains mapping of old sbn types with new letter based sbn types(As per SCR SW00155262) - "volumeStatus" : "typeA", - "vrStatus" : "typeB", - "driverId" : "typeL", - "navigationNear" : "typeC", - "deviceConnected" : "typeD", - "entertainmentInfo" : "typeE", - "errorNotification" : "typeF", - "btConnecting" : "typeG", - "deviceRemoved" : "typeI", - "navigationFar" : "typeJ", - "systemFailure": "typeK", - "unknown": "unknown" - }; - - // Any SBN type in the blacklist will be blocked if it is requested. This is a centralized fix for evolving requirements. - this._SBN_TYPE_BLACKLIST = [ - "typeK" - ]; - - //@formatter:off - this._messageTable = { - "LanguageChangeStatus" : this._LanguageChangeStatusMsgHandler.bind(this), - "Global.AtSpeed" : this._AtSpeedMsgHandler.bind(this), - "Global.NoSpeed" : this._NoSpeedMsgHandler.bind(this), - "Global.PageUp" : this._PageUpDownMsgHandler.bind(this), - "Global.PageDown" : this._PageUpDownMsgHandler.bind(this), - "vuiState" : this._vuiStateMsgHandler.bind(this), - "vuiMicLevel" : this._vuiStateMsgHandler.bind(this), - "Global.SelectLineNumber" : this._SelectLineNumMsgHandler.bind(this), - "Global.StartHelp" : this._ShowVuiHelpHandler.bind(this), - "Global.HideHelp" : this._HideVuiHelpHandler.bind(this), - "Global.StartExamples" : this._ShowVuiExamplesHandler.bind(this), - "Global.HideExamples" : this._HideVuiExamplesHandler.bind(this), - "Global.StatusUpdateVolumeOnOff" : this._HandleStatusUpdateVolume.bind(this), - "Global.MenuUpReceived" : this._MenuUpReceived.bind(this) - - }; // end of this._messageTable - //@formatter:on - - - //-- DOM logic - // Add the background image to the body - this._bgDiv1 = document.createElement('div'); - this._rightChrome = document.createElement('div'); - - this._bgDiv1.id = "CommonBgImg1"; - this._bgDiv1.className = "CommonBgImg"; - - this._rightChrome.id = "CommonRightChrome1"; - this._rightChrome.className = "CommonRightChrome"; - this._rightChrome.style.visibility = "hidden"; - - document.body.appendChild(this._bgDiv1); - document.body.appendChild(this._rightChrome); - - // Add controls to the DOM - this.addControls(); - - this._remoteUiBtns = new Object(); -}; - -/* (internal - called by framework) - * Instantiates the LeftBtnControl and StatusBarCtrl (usually only happens when the language is changed) - */ -Common.prototype.addControls = function() -{ - log.debug("addControls called."); - - // Status Bar - if (this.statusBar)//never add more than one instance of these controls - { - log.debug("status bar exists"); - // MPP 08/29/2013 SW00127573 - // Refresh status bar, rather than re-instantiating it, when languages change - //framework.destroyControl(this.statusBar); - //this.statusBar = null; - this.statusBar._refresh(); - } - else - { - log.debug("instantiating status bar"); - // create the status bar - var statusProp = { - "selectCallback" : this._statusBarClicked.bind(this), - "longPressCallback" : this._statusBarLongPress.bind(this), - "onFocusCallback" : this._statusBarFocused.bind(this), - }; - - this.statusBar = framework.instantiateControl(this.moduleName, document.body, "StatusBarCtrl", statusProp); - } - - // Left Button - if (this.leftBtn) - { - //never add more than one instance of these controls - //framework.destroyControl(this.leftBtn); - //this.leftBtn = null; - } - else - { - // create the left button - var lftBtnProp = {"selectCallback" : this._leftBtnSelected.bind(this)}; - - this.leftBtn = framework.instantiateControl(this.moduleName, document.body, "LeftBtnCtrl", lftBtnProp); - - this._checkTemplateProperties(); - } -}; - -/* (internal - called by framework) - * Destroys the LeftButtonControl and StatusBarCtrl (usually only happens when the language is changed) - */ -Common.prototype.removeControls = function() -{ - if (this.statusBar) - { - framework.destroyControl(this.statusBar); - this.statusBar = null; - } - - if (this.leftBtn) - { - framework.destroyControl(this.leftBtn); - this.leftBtn = null; - } - -}; - -/* - * Checks templates properties for global controls. Called when a language change occurs - */ -Common.prototype._checkTemplateProperties = function() -{ - log.debug("_checkTemplateProperties called."); - var template = this._cachedTemplate; - //we should be able to use the cached template here, because when changing languages, we don't change context - - var data; - if (template) - { - data = this._calcTransitionData(template); - } - else - { - //defaults - log.debug(" No template could be found. Using default values."); - data = new Object(); - data.leftButtonVisible = false; - data.statusBarVisible = true; - } - - log.debug(" Left Btn Visible: " + data.leftButtonVisible + ", Status Bar Visible: " + data.statusBarVisible); - - - if (data.leftButtonVisible) - { - this.leftBtn.divElt.style.visibility = 'visible'; - } - else - { - this.leftBtn.divElt.style.visibility = 'hidden'; - } - - if (data.statusBarVisible) - { - this.statusBar.divElt.style.visibility = 'visible'; - } - else - { - this.statusBar.divElt.style.visibility = 'hidden'; - } - -}; - -/* (internal) - * Called by framework when a context change occurs and data is needed. - * @param template (object) The template that will be transitioned to. - */ -Common.prototype.getCommonTransitionData = function(template) -{ - if (template == null) - { - log.error("getCommonTransitionData called with null template."); - return; - } - - // Terminate any activity timer that may be running so we don't see the - // previous template's status bar or UMP sliding during the transition - this._cleanUpInactivityTimer(); - - this._updateMuteWinkOnTransition(this._cachedTemplate, template); - - this._closeVuiHelpOnTransition(template); - this._closeVuiExamplesOnTransition(template); - - // tell left button or the previous template to lose focus before the transition starts - this.handleControllerEvent('lostFocus'); - - // cache template: - this._cachedTemplate = template; - - // Hide VUI Numbers - this.leftBtn.hideLineNumbers(); - - // Update _canShowSbns variable and hide active SBN if necessary - this._updateCanShowSbns(); - - var data = this._calcTransitionData(template); - - - if ((this._remoteUiBtns[this._cachedTemplate.contextInfo.uiaId])&& (this._remoteUiBtns[this._cachedTemplate.contextInfo.uiaId].ctxtList.indexOf(this._cachedTemplate.contextInfo.ctxtId) != -1)) - { - this.statusBar.showRemoteUiButton(this._remoteUiBtns[this._cachedTemplate.contextInfo.uiaId]); - } - else - { - this.statusBar.hideRemoteUiButton(); - } - - return data; -}; - -/* (private) - * Returns an object with common transition data for the upcoming transition - * @param template (object) The template that will be transitioned to. - * @return (object) Object containing common transition data - */ -Common.prototype._calcTransitionData = function(template) -{ - if (template.properties.customBgImage) - { - if (template.properties.customBgImage != this._currentBgPath) - { - this._bgDiv2 = document.createElement('div'); - this._bgDiv2.id = "CommonBgImg2"; - this._bgDiv2.className = "CommonBgImg"; - this._bgDiv2.style.backgroundImage = "url(" + template.properties.customBgImage + ")"; - this._currentBgPath = template.properties.customBgImage; - document.body.insertBefore(this._bgDiv2, this._bgDiv1); - this._customBgSet = true; - } - } - else if (this._customBgSet == true) // don't transition to default bg on a dialog - { - this._bgDiv2 = document.createElement('div'); - this._bgDiv2.id = "CommonBgImg2"; - this._bgDiv2.className = "CommonBgImg"; - this._bgDiv2.style.backgroundImage = "url(" + this._defaultBgPath + ")"; - this._currentBgPath = this._defaultBgPath; - document.body.insertBefore(this._bgDiv2, this._bgDiv1); - this._customBgSet = false; - } - - // Check for menu up - var menuUpUsed = false; - if (this._menuUpReceiverApp) - { - if (this._menuUpReceiverApp === this._cachedTemplate.contextInfo.uiaId) - { - menuUpUsed = true; - } - this._menuUpReceiverApp = null; - } - - //@formatter:off - var commonTransitionData = { - // references to system control objects - "statusBar" : this.statusBar, - "leftButton" : this.leftBtn, - // booleans - "statusBarVisible" : template.properties.statusBarVisible, - "leftButtonVisible" : template.properties.leftButtonVisible, - "menuUpUsed": menuUpUsed, - // bg data - "customBgImage" : template.properties.customBgImage, - "bgDiv1" : this._bgDiv1, - "bgDiv2" : this._bgDiv2, - // other - "rightChrome" : this._rightChrome, - "rightChromeVisible": (template.properties.rightChromeVisible === true) ? true : false - }; - - if (template.properties.isDialog) - { - // Preserve left button visibility from the previous context when going to a dialog context. - commonTransitionData.leftButtonVisible = this.leftBtn.divElt.style.visibility === "visible"; - commonTransitionData.rightChromeVisible = this._rightChrome.style.visibility === "visible"; - } - - //@formatter:on - return commonTransitionData; -}; - -/* (internal) - * Callback for when the controls transition completes. Currently only used for custom backgrounds - * @param transitionData (object) the data that was used during the transition - */ -Common.prototype.commonControlsUpdateComplete = function(transitionData) -{ - if (transitionData.bgDiv2) - { - // bgDiv2 transitioned in, so we need to remove bgDiv1 - utility.removeHTMLElement(transitionData.bgDiv1.id); - - this._bgDiv1 = this._bgDiv2; - this._bgDiv1.id = "CommonBgImg1"; - this._bgDiv2 = null; - } - - if (framework.getCurrentApp() == "syssettings" && framework.getCurrCtxtId() == "DisplayTab") - { - this.statusBar.enableClockBtn(true); - } - else - { - this.statusBar.enableClockBtn(false); - this._diagEntrySequence = 0; // reset the sequence on context change - } - - // Retrieve the types of input that will count as user activity, and then - // turn on activity monitoring for this context/template (if needed) - this._displaySbUmpActivityTypes = "both"; - if (this._cachedTemplate.properties.displaySbUmpActivityTypes === "both" || - this._cachedTemplate.properties.displaySbUmpActivityTypes === "touch") { - this._displaySbUmpActivityTypes = this._cachedTemplate.properties.displaySbUmpActivityTypes; - } - - this._setDisplaySbUmpByActivityEnabled(this._cachedTemplate.properties.displaySbUmpByActivity == true); - - // show SBN if needed - if (this._canShowSbns) - { - // If there's NO SBN displayed - if (!this._displayedSbnId) - { - // ENTRY POINT #2 - // If a new SBN gets displayed, _displaySbnFromQueue will return the ID - var newSbnId = this._displaySbnFromQueue(); - - if (newSbnId) - { - // Tell Status Bar about the SBN - this._sbnIsDisplayed = true; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - - if (this._cachedTemplate.properties.statusBarVisible) - { - // Snap the status bar visible (only if this template is set to display a status bar) - this.statusBar.transitionVisible(0, 0, "slide", true); - } - - // Notify MMUI to turn on display if needed. - this._sendDisplayOffNotification(1); - } - - } - } - - this.handleControllerEvent('acceptFocusInit'); - -}; - -/* (internal - Called by Controls) - * Sends a "lostFocus" Multicontroller event to the currently focused Control so that the - * Control calling stealFocus() can gain focus. - * After calling this API, the calling Control -must- gain focus automatically. - */ -Common.prototype.stealFocus = function() -{ - var response = null; - if (this.statusBar.remoteUiBtn) // the events will be passed only when the carPlay button exists - { - if (this.statusBar.remoteUiBtn.hasFocus) - { - response = this.statusBar.handleControllerEvent("lostFocus"); - } - } - if (this.leftBtn.btnInstance.hasFocus) - { - response = this.leftBtn.handleControllerEvent("lostFocus"); - } - else if (this._cachedTemplate && this._cachedTemplate.handleControllerEvent) - { - response = this._cachedTemplate.handleControllerEvent("lostFocus"); - } - else - { - log.warn("Cannot steal focus. Common's cached template is either null or does not have handleControllerEvent."); - } -}; - -/* (internal - Called by framework) - * Handles multicontroller events, specifically the left event for the leftBtn - * @param eventID (string) any of the “Internal event name” values in IHU_GUI_MulticontrollerSimulation.docx (e.g. 'cw', - * 'ccw', 'select') - * @return true if common 'consumed' the tui event. false otherwise. - */ -Common.prototype.handleControllerEvent = function(eventId, firstEvent) -{ - if (eventId == "goBack") // Note: "goBack" event sent from Multicontroller.js indicates the TUI back key has been pressed - { - framework.sendEventToMmui("common", "Global.GoBack"); - } - - // The first event is thrown away, but "controllerActive" is still passed to the template/control to change its highlight - // Thus, "ccw" will come in with firstEvent true, but "controllerActive" will also come in separately with firstEvent false - if (firstEvent) - { - log.debug(" firstEvent detected. Ignoring."); - return; - } - - // Test whether one of Common/Global controls has multicontroller focus and react accordingly - - if (this._cachedTemplate && this._cachedTemplate.handleControllerEvent) - { - // always pass along controller active and touch active - if (eventId != "touchActive" && eventId != "controllerActive") - { - if (this.leftBtn.btnInstance.hasFocus) - { - var response = this.leftBtn.handleControllerEvent(eventId); - if (response == "giveFocusRight") - { - var response = this._cachedTemplate.handleControllerEvent("acceptFocusFromLeft"); - if (response == "consumed") - { - this.leftBtn.handleControllerEvent("lostFocus"); - } - } - } - else if (this.statusBar.remoteUiBtn && this.statusBar.remoteUiBtn.hasFocus) - { - // route events to Status Bar - var response = this.statusBar.handleControllerEvent(eventId); - if (response == "giveFocusDown") - { - var response = this._cachedTemplate.handleControllerEvent("acceptFocusFromTop"); - if (response == "consumed") - { - this.statusBar.handleControllerEvent("lostFocus"); - } - } - } - else - { - var response = this._cachedTemplate.handleControllerEvent(eventId); - if (response == "giveFocusLeft" && this._cachedTemplate.properties.leftButtonVisible) - { - this.leftBtn.handleControllerEvent("acceptFocusFromRight"); - this._cachedTemplate.handleControllerEvent("lostFocus"); - } - else if (response == "giveFocusUp" && this.statusBar.remoteUiBtn) - { - this.statusBar.remoteUiBtn.handleControllerEvent("acceptFocusFromBottom"); - this._cachedTemplate.handleControllerEvent("lostFocus"); - } - } - } - else - { - // always pass along controller active and touch active - if (this.leftBtn) // left button check to prevent race conditions during language change - { - this.leftBtn.handleControllerEvent(eventId); - } - if (this.statusBar) - { - this.statusBar.handleControllerEvent(eventId); - } - // _cachedTemplate is checked above - this._cachedTemplate.handleControllerEvent(eventId); - - } - - } - else - { - log.warn("Common's cached template is either null or does not have handleControllerEvent."); - } -}; - -/* (internal - Called by framework) - * Handles alert messages from framework, sent by MMUI. - */ -Common.prototype.handleAlert = function(uiaId, alertId, params) -{ - log.debug("handleAlert called."); - - // MMUI should never send two alerts at once. This is a backup check. - if (this._wink) - { - return; - } - - var app = framework.getAppInstance(uiaId); - var properties = null; - - if (app && app.getWinkProperties) // check for App method - { - properties = app.getWinkProperties(alertId, params); - } - - // NOTE: Even though we can't show the Wink, I still call into the GUI App (above) in case they have logic that needs to be done - if (!this._canShowSbns) - { - // We're in a context that can't show Winks. Immediately Ack - framework.websockets.sendAlertCompleteMsg(uiaId, alertId); - return; - } - - if (!properties) // if no properties are set, use the default paragraph style - { - // legacy wink. Use paragraph style. - log.info("No properties returned by app: " + uiaId + ". Using default Wink style."); - properties = { - "style": "style03", - "text1Id": alertId - }; - } - - // no matter what, common should set these properties - properties.winkTimeout = this._winkTimeout; - properties.alertId = alertId; - properties.completeCallback = this._alertComplete.bind(this); - - this._wink = framework.instantiateControl(uiaId, document.body, 'WinkCtrl', properties); - -}; - -/* Called by framework when a data message is sent from Mmui. - * This will pass the message information into any function the app has set in this._messageTable - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype.handleDataMessage = function(msg) -{ - log.debug("GUI COMMON" + " handleDataMessage called for", msg.msgId); - - if (this._messageTable && this._messageTable[msg.msgId]) - { - this._messageTable[msg.msgId](msg); - } - else - { - log.warn("GUI COMMON" + " No message handler for", msg.msgId); - } -}; - - -/* - * Handler for LanguageChangeStatus message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._LanguageChangeStatusMsgHandler = function(msg) -{ - if (msg && msg.params && msg.params.payload && msg.params.payload.languageID) - { - var langCode = framework.localize.getLangInGuiFormat(msg.params.payload.languageID); - } - - if (msg && msg.params && msg.params.payload && msg.params.payload.status) - { - var status = msg.params.payload.status; - } - - var bStatus = false; - - if (status == "Success") - { - bStatus = true; - } - else - { - bStatus = false; - } - - // Call unload dictionaries - framework.localize.unloadDictionaries(langCode,bStatus); -}; - -/* - * Handler for AtSpeed message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._AtSpeedMsgHandler = function(msg) -{ - log.info("Common.prototype._AtSpeedMsgHandler called",msg); - this._atSpeed = true; - framework.sendMsgToFocusedApp(msg); -}; - -/* - * Handler for NoSpeed message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._NoSpeedMsgHandler = function(msg) -{ - log.info("Common.prototype._NoSpeedMsgHandler called",msg); - this._atSpeed = false; - framework.sendMsgToFocusedApp(msg); -}; - -/* - * Handler for PageUp & PageDown messages - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._PageUpDownMsgHandler = function(msg) -{ - log.debug("Common.prototype._PageUpDownMsgHandler called", msg); - - // Assume no list exists - var result = "NoList"; - var eventName = null; - var apiName = null; - - // Determine the result event name, based on the incoming message - // (independent of anything to do with a list) - switch (msg.msgId) - { - case "Global.PageUp": - eventName = "Global.PageUpResult"; - apiName = "pageUp"; - break; - case "Global.PageDown": - eventName = "Global.PageDownResult"; - apiName = "pageDown"; - break; - default: - log.error("_PageUpDownMsgHandler called with non-pagination event!"); - break; - } - - // If we have a list and an API on it to call, ... - if (this._cachedTemplate && this._cachedTemplate.templateName === "List2Tmplt" && this._cachedTemplate.list2Ctrl && apiName) - { - // ... call that API! - response = this._cachedTemplate.list2Ctrl[apiName](); - result = response.charAt(0).toUpperCase() + response.slice(1); // make sure first letter is uppercase - } - - // Compose result & send to MMUI - if (eventName) - { - var params = { - "payload": { - "pageStatus": result - } - }; - - framework.sendEventToMmui("common", eventName, params); - } -}; - -/* - * Handler for VUI Mic messages - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._vuiStateMsgHandler = function(msg) -{ - if (msg && msg.params && msg.params.payload) - { - if (msg.msgId == "vuiState") - { - var showLineNumbers = false; - this._cachedVuiState = msg.params.payload.state; - // End the current SBN in case we need to change styles - this.endStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - switch(this._cachedVuiState) - { - case "Not Ready": // intentional fall-through - case "Idle": - case "Playing Out of Session Alert": - // Do nothing. SBN is automatically ended - break; - case "Playing Prompt": - // Show "Wait for Tone" SBN - var properties = { - "sbnStyle": "Style02", - "imagePath1": "IcnSbnMicClosed.png", - "text1Id": "common.SbnWaitForTone" - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - showLineNumbers = true; - break; - case "Listening": - // Show sound meter SBN starting at 0 - var properties = { - "sbnStyle": "Style04", - "imagePath1": "IcnSbnMicOpen.png", - "meter": {"meterType": "audio02", "min": 0, "max": 4000, "currentValue": 0} - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - showLineNumbers = true; - break; - case "Processing": // Intentional fallthrough. Show SBN with icon only - case "Playing Terminating Prompt": - // Show SBN with icon only - var properties = { - "sbnStyle": "Style02", - "imagePath1": "IcnSbnMicClosed.png", - "text1": null - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - break; - default: - log.warn("Unknown VUI State was sent to GUI: " + this._cachedVuiState); - break; - } - - this._showHideLineNumbers(showLineNumbers); - } - else if (msg.msgId == "vuiMicLevel") - { - var micLevel = parseInt(msg.params.payload.micLevel); - // clamp the micLevel value. SBN meter does not support negative numbers - micLevel += 3000; - // Adjust very low mic values to show 1-2 bars - if (micLevel < -2100) - { - micLevel = 50; - } - else if (micLevel < 100) - { - micLevel = 100; - } - - if (this._cachedVuiState == "Listening") - { - // Update state-based SBN with current mic level - var properties = { - "sbnStyle": "Style04", - "imagePath1": "IcnSbnMicOpen.png", - "meter": {"meterType": "audio02", "min": 0, "max": 4000, "currentValue": micLevel} - }; - this.showStateSbn(this.moduleName, "StateSbn_vuiState", "typeB", properties); - } - } - } -}; - -/* - * Handler for SelectLineNumber message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._SelectLineNumMsgHandler = function(msg) -{ - log.debug("Common.prototype._SelectLineNumMsgHandler called", msg); - - if (msg && msg.params && msg.params.payload) - { - var number = msg.params.payload.lineNumber; - } - else - { - return; - } - - var result = "NoList"; // status to send back to MMUI (default to NoList) - - // Is the current template a list? - if (this._cachedTemplate && this._cachedTemplate.templateName == "List2Tmplt") - { - // Does the list have data and support VUI? - if (this._cachedTemplate.list2Ctrl.dataList && this._cachedTemplate.list2Ctrl.dataList.vuiSupport == true) - { - log.info("Sending Line Number to List: " + number); - // List will return a result - var response = this._cachedTemplate.list2Ctrl.selectLine(number); - - if (response == "selected") - { - return; // No event from Common if "selected" is response - } - - result = response.charAt(0).toUpperCase() + response.slice(1); // first letter uppercase - } - } - - log.info("SelectLineResult is ", number, result); - var params = { - "payload" : { - "lineNumber": number, - "lineStatus": result - } - }; - framework.sendEventToMmui("common", "Global.SelectLineResult", params); -}; - -/* - * Handler for Global.StartHelp message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._ShowVuiHelpHandler = function(msg) -{ - log.debug("Common.prototype._ShowVuiHelpHandler called", msg); - // If examples prompt is there when help is called, then removes examples prompt first (functions check for the validity of prompt internally) - this._HideVuiExamplesHandler(null); - - // Hide any currently displayed VUI Help - this._HideVuiHelpHandler(null); - - // Validate that this help overlay request is for the currently displayed context. - if (framework.getCurrentApp() === msg.params.payload.currentUiaId && - framework.getCurrCtxtId() === msg.params.payload.currentContextId) - { - // Try to load a VUI Help configuration and display it if found - var targetUiaId = msg.params.payload.uiaId; - var helpPromptName = msg.params.payload.helpPromptName; - var dialogProperties = this._getVuiHelpDialogConfiguration(targetUiaId, helpPromptName); - if (dialogProperties) - { - this._vuiHelpDialog = framework.instantiateControl(dialogProperties.uiaId, document.body, 'Dialog3Ctrl', dialogProperties.dialogConf); - this._vuiHelpDialog.divElt.classList.add("Dialog3Ctrl_Style19_NoTemplateInstance"); - - // Add properties to the control to record the uiaId and contextId. See also _closeVuiHelpOnTransition(). - this._vuiHelpDialog._uiaId = msg.params.payload.currentUiaId; - this._vuiHelpDialog._contextId = msg.params.payload.currentContextId; - } - } - else - { - log.warn("Ignoring Global.StartHelp message because GUI is in context '" - + framework.getCurrentApp() - + " " - + framework.getCurrCtxtId() - + "' but the message is for a different context: " - + JSON.stringify(msg)); - } -}; - -/* - * Handler for Global.HideHelp message - * @tparam Object msg (optional) The parsed message object sent from Mmui - */ -Common.prototype._HideVuiHelpHandler = function(msg) -{ - log.debug("Common.prototype._HideVuiHelpHandler called"); - - if (this._vuiHelpDialog) - { - framework.destroyControl(this._vuiHelpDialog); - this._vuiHelpDialog = null; - } -}; - -/* - * Close Vui Help at the start of a transition to a new template if that template represents a different context. - */ -Common.prototype._closeVuiHelpOnTransition = function(template) -{ - if (this._vuiHelpDialog - && template - && template.contextInfo.uiaId != this._vuiHelpDialog._uiaId - && template.contextInfo.ctxtId != this._vuiHelpDialog._contextId) - { - this._HideVuiHelpHandler(null); - } -}; - -/* - * Returns a configuration object for a VUI help dialog3 control prompt from an app's dictionary. - * Returns null if no prompt text is found in the dictionary. - * @tparam String uiaId The application requesting the VUI help. - * @tparam String helpPromptName The name of the help prompt to look for in the dictionary. - */ -Common.prototype._getVuiHelpDialogConfiguration = function(uiaId, helpPromptName) -{ - var config = { - dialogConf: { - contentStyle: "style19", - titleStyle : "titleStyle03" - }, - uiaId: uiaId - }; - var found = false; - - // When help prompt name which requires default default help screen is received show system/Home help screen - if (this._defaultHelpPrompt === helpPromptName) - { - helpPromptName = "HomeScreen_Help"; - uiaId = "system"; - config.uiaId = uiaId; - } - // __VrHelpPositionTable__ flag for the current app - var vrHelpPosTable = framework.localize.testVrHelpPosTableExistence(uiaId, helpPromptName); - var leftStringId = null; - var rightStringId = null; - - // Dictionary strings for a VUI help prompt have specific computable stringIds. - for (var i = 1; i <= 5; ++i) - { - if (vrHelpPosTable) - { - // new approach - leftStringId = framework.localize.getVrHelpStringId(uiaId, helpPromptName,"Left", i); - rightStringId = framework.localize.getVrHelpStringId(uiaId, helpPromptName,"Right", i); - } - else - { - // old approach TODO: to be removed when all the VR apps supports the new VrHelpPositionTable. - leftStringId = "VrHelp_" + helpPromptName + "_Left" + i; - rightStringId = "VrHelp_" + helpPromptName + "_Right" + i; - } - - if (leftStringId && framework.localize.testLocStr(uiaId, leftStringId)) - { - config.dialogConf["text" + i.toString() + "Id"] = leftStringId; - found = true; - } - if (rightStringId && framework.localize.testLocStr(uiaId, rightStringId)) - { - config.dialogConf["text" + (i + 5).toString() + "Id"] = rightStringId; - } - } - - if (found) - { - var titleId = "VrHelp_" + helpPromptName + "_Title"; - if (framework.localize.testLocStr(uiaId, titleId)) - { - config.dialogConf.titleId = titleId; - } - else - { - // No title found in dictionary -- use default title - config.dialogConf.titleId = "common.VuiHelpDefaultTitle"; - } - } - - return (found) ? config : null; -}; - -/* - * Handler for Global.StartExamples message - * @tparam Object msg The parsed message object sent from Mmui - */ -Common.prototype._ShowVuiExamplesHandler = function(msg) -{ - log.debug("Common.prototype._ShowVuiExamplesHandler called", msg); - - // TODO: check requirements and confirm. - // If help prompt is there when examples is called, then removes help prompt first (functions check for the validity of prompt internally) - this._HideVuiHelpHandler(null); - - // Hide any currently displayed VUI Examples - this._HideVuiExamplesHandler(null); - - // Validate that this help overlay request is for the currently displayed context. - if (framework.getCurrentApp() === msg.params.payload.currentUiaId && - framework.getCurrCtxtId() === msg.params.payload.currentContextId) - { - // Try to load a VUI examples configuration and display it if found - var targetUiaId = msg.params.payload.currentUiaId; - var examplesId = msg.params.payload.examplesId; - var dialogProperties = this._getVuiExamplesDialogConfiguration(targetUiaId, examplesId); - if (dialogProperties) - { - this._vuiExamplesDialog = framework.instantiateControl(dialogProperties.uiaId, document.body, 'Dialog3Ctrl', dialogProperties.dialogConf); - this._vuiExamplesDialog.divElt.classList.add("Dialog3Ctrl_Style19_NoTemplateInstance"); - - // Add properties to the control to record the uiaId and contextId. See also _closeVuiExamplesOnTransition(). - this._vuiExamplesDialog._uiaId = msg.params.payload.currentUiaId; - this._vuiExamplesDialog._contextId = msg.params.payload.currentContextId; - } - } - else - { - log.warn("Ignoring Global.StartExample message because GUI is in context '" - + framework.getCurrentApp() - + " " - + framework.getCurrCtxtId() - + "' but the message is for a different context: " - + JSON.stringify(msg)); - } -}; - -/* - * Handler for Global.HideExamples message - * @tparam Object msg (optional) The parsed message object sent from Mmui - */ -Common.prototype._HideVuiExamplesHandler = function(msg) -{ - log.debug("Common.prototype._HideVuiExamplesHandler called"); - - if (this._vuiExamplesDialog) - { - framework.destroyControl(this._vuiExamplesDialog); - this._vuiExamplesDialog = null; - } -}; - -/* - * Close Vui example at the start of a transition to a new template if that template represents a different context. - */ -Common.prototype._closeVuiExamplesOnTransition = function(template) -{ - if (this._vuiExamplesDialog - && template - && template.contextInfo.uiaId != this._vuiExamplesDialog._uiaId - && template.contextInfo.ctxtId != this._vuiExamplesDialog._contextId) - { - this._HideVuiExamplesHandler(null); - } -}; - -/* - * Returns a configuration object for a VUI examples dialog3 control prompt from an app's dictionary. - * Returns null if no prompt text is found in the dictionary. - * @tparam String uiaId The application requesting the VUI Examples. - * @tparam Number examplesId Id of the example prompt to look for in the dictionary. - */ -Common.prototype._getVuiExamplesDialogConfiguration = function(uiaId, examplesId) -{ - var config = { - dialogConf: { - contentStyle: "style26", - titleStyle : "titleStyle03" - }, - uiaId: uiaId - }; - // TODO: check if we have any requirement for defualt example screen - // if so add default configuration same as helpPrompt - if(examplesId < 1 || examplesId > 23) - { - log.error("ExamplesId " + examplesId + " is not supported. Support range is 1-23."); - } - else - { - if (guiResources.VR_EXAMPLES["examplesId"+ examplesId]) - { - // get textIds - for (var num = 1; num <= 5; ++num) - { - var StringId = guiResources.VR_EXAMPLES["examplesId"+examplesId]["textId"+num]; - if(StringId) - { - var localizedString = framework.localize.getLocStr("common", StringId, null); - config.dialogConf["text" + num.toString() + "Id"] = localizedString; - } - else - { - config.dialogConf["text" + num.toString() + "Id"] = ""; - } - } - - // get title - var titleId = guiResources.VR_EXAMPLES["examplesId"+ examplesId].titleText; - if (titleId) - { - var localizedTitle = framework.localize.getLocStr("common", titleId, null); - config.dialogConf.titleId = localizedTitle; - } - else - { - config.dialogConf.titleId = ""; - } - - } - else - { - log.error("ExamplesId does not exist in guiResources.VR_EXAMPLES table"); - } - } - return config ; -}; - - -/* - * Function called by apps to determine if vehicle is at speed - * @return Boolean true if vehicle is at speed - */ -Common.prototype.getAtSpeedValue = function() -{ - return this._atSpeed; -}; - -/* - * Tells the status bar to show/hide the Home button - * @param show Boolean true if the home button should be displayed. false if it should be hidden. - */ -Common.prototype.showSbHomeButton = function(show) -{ - this.statusBar.showHomeBtn(show); -}; - -/* - * (internal) Called by framework. Sets the App name text/image in the status bar - * @param label String Literal text name or image path to display in the status bar - */ -Common.prototype.setSbName = function(label) -{ - // setAppName() will differentiate between text & imagery - this.statusBar.setAppName(label); -}; - -/* - * (internal) Called by framework. Sets the translated App name text in the status bar - * @param uiaId String UiaId of the App the string should be translated for - * @param labelId String StringID to be translated - * @param subMap Object Optional subMap to be placed in the text - */ -Common.prototype.setSbNameId = function(uiaId, labelId, subMap) -{ - this.statusBar.setAppNameId(uiaId, labelId, subMap); -}; - -/* - * (internal) Called by framework. Sets the icon between the Home Button and the App Name in the status bar - * @param path String Path from index.html to icon. Pass null to remove current icon - */ -Common.prototype.setSbDomainIcon = function(path) -{ - this.statusBar.setDomainIcon(path); -}; - -/* - * Updates the state of a Status Bar Icon - * @param name String Base Icon name ("Batt", "PhoneSignal", "Roaming", "Traffic", "WifiSignal", "Music", "Bluetooth", "Message") - * @param visible Boolean True if the icon should be shown. False if it should be hidden - * @param state String (Optional) String corrsponding to the state of the icon ("00", "01", "02", "03", "04", "05") - */ -Common.prototype.setSbIcon = function(name, visible, state) -{ - this.statusBar.setIcon(name, visible, state); -}; - -/* - * Utility API for enabling/disabling auto-hide behavior for status bar & UMP - * @param isEnabled Boolean Auto-hides the status bar and UMP by internal inactivity timer (when true) - */ -Common.prototype._setDisplaySbUmpByActivityEnabled = function(isEnabled) -{ - this._displaySbUmpByActivity = isEnabled; - - if (this._displaySbUmpByActivity) { - // remove any existing non-transparent div - if (this._nonTransparentDiv) - { - utility.removeHTMLElement(this._nonTransparentDiv); - this._nonTransparentDiv = null; - } - - // create a non-transparent div so that opera receives touch events - this._nonTransparentDiv = document.createElement('div'); - this._nonTransparentDiv.className = "CommonNonTransparentDiv"; - document.body.insertBefore(this._nonTransparentDiv, document.body.firstChild); - - // Detect activity to kick everything off - this.activityDetected(true, null); - } - else - { - // Remove the non-transparent div - utility.removeHTMLElement(this._nonTransparentDiv); - this._nonTransparentDiv = null; - - // Shut down any timer we may have running - this._cleanUpInactivityTimer(); - - // Set the activity flag to "true" to force status bar & UMP visibility - this._activityDetected = true; - this._updateSbUmpVisibility(); - - // Reset the activity detected flag - this._activityDetected = false; - } - - // Ignore any prior external show/hide requests - this._sbRequestedState = "none"; -}; - -/* - * Public API for external applications (e.g. TV) to request that the status bar be shown - * @param delay_ms Integer The number of milliseconds to wait before starting the status bar animation - * @param duration_ms Integer The number of milliseconds the status bar animation should take to complete - * @param receipt_cb Function The function to call to signal receipt of the request - */ -Common.prototype.requestStatusBarShown = function(delay_ms, duration_ms, receipt_cb) -{ - log.debug("requestStatusBarShown(" + delay_ms + ", " + duration_ms + ")"); - - // Cache requested status bar timings - if ((utility.toType(delay_ms) == "number") && - (delay_ms >= 0)) { - // Store custom delay timing - this._sbDelay_ms = delay_ms; - } - else { - // Store default delay timing - this._sbDelay_ms = this._defaultSbDelay_ms; - } - if ((utility.toType(duration_ms) == "number") && - (duration_ms >= 0)) { - // Store custom duration timing - this._sbDuration_ms = duration_ms; - } - else { - // Store default duration timing - this._sbDuration_ms = this._defaultSbDuration_ms; - } - - // Remember the external request - this._sbRequestedState = "shown"; - - // Update the controls' visibility - this._updateSbUmpVisibility(); - - // If a receipt callback was provided, ... - if (utility.toType(receipt_cb) === "function") { - // Call it to signal receipt of the request - receipt_cb(); - } -}; - -/* - * Public API for external applications (e.g. TV) to request that the status bar be hidden - * @param delay_ms Integer The number of milliseconds to wait before starting the status bar animation - * @param duration_ms Integer The number of milliseconds the status bar animation should take to complete - * @param receipt_cb Function The function to call to signal receipt of the request - */ -Common.prototype.requestStatusBarHidden = function(delay_ms, duration_ms, receipt_cb) -{ - log.debug("requestStatusBarHidden(" + delay_ms + ", " + duration_ms + ")"); - - // Cache requested status bar timings - if ((utility.toType(delay_ms) === "number") && - (delay_ms >= 0)) { - // Store custom delay timing - this._sbDelay_ms = delay_ms; - } - else { - // Store default delay timing - this._sbDelay_ms = this._defaultSbDelay_ms; - } - if ((utility.toType(duration_ms) === "number") && - (duration_ms >= 0)) { - // Store custom duration timing - this._sbDuration_ms = duration_ms; - } - else { - // Store default duration timing - this._sbDuration_ms = this._defaultSbDuration_ms; - } - - // Remember the external request - this._sbRequestedState = "hidden"; - - // Update the controls' visibility - this._updateSbUmpVisibility(); - - // If a receipt callback was provided, ... - if (utility.toType(receipt_cb) == "function") { - // Call it to signal receipt of the request - receipt_cb(); - } -}; - -/* - * Public hook for notification (from Multicontroller.js) about user activity (touch/keyboard/multicontroller input) - * @param isActive (Boolean) Flag indicating if activity is detected (true) or not (false) - * @param evt (Object) The Opera event that generated the activity - * @param tuiEvent (String) If this is a multicontroller action, the corresponding eventId will be passed - */ -Common.prototype.activityDetected = function(isActive, evt, tuiEvent) -{ - // If we're using local timing ... - if (this._displaySbUmpByActivity) - { - // Get the current position & height of the status bar - // (so we can detect if we've selected it or not) - var det = this.statusBar.divElt.offsetTop; - var deh = this.statusBar.divElt.offsetHeight; - - var legalEvent = false; // will be set to true if this event can trigger activity given the configuration - - // If we have no event, or we have a legal event and the status bar itself wasn't selected, ... - if (evt == null) - { - // null event is used for special case private calls within Common.js - legalEvent = true; - } - else if (evt.type == "mouseup" || evt.type == "mousedown") - { - // mouse events can trigger on "touch" or "both", but only if they are not on the Status Bar - if (this._displaySbUmpActivityTypes == "both" || this._displaySbUmpActivityTypes == "touch") - { - if (evt.pageX <= 800) - { - if (evt.pageY >= (det + deh)) - { - legalEvent = true; - } - else if (evt.type == "mouseup") - { - // mouse up occurred in the status bar. Very specific case to account for touch-and-drag - legalEvent = true; - } - } - } - - } - else if (evt.type == "keydown" || evt.type == "keyup" || evt.type == "mousewheel") - { - // Multicontroller event can only trigger if the activity type is "both" - if (this._displaySbUmpActivityTypes == "both") - { - legalEvent = true; - } - } - - if (legalEvent) - { - log.debug("activityDetected()", isActive, evt); - - // Check if the activity state has changed - var stateChanged = (this._activityDetected != isActive); - - // Update the internal activity state - this._activityDetected = isActive; - - // (Re)start the timer to measure inactivity - if (this._activityDetected) { - // a press down via touch or MC should not trigger the Inactivity timeout - var triggerTimer = true; - if (evt != null) - { - if (evt.type == "mousedown") - { - triggerTimer = false; - } - else if (evt.type == "keydown") - { - // Exception: rotations should still trigger the Inactivity timeout - if (tuiEvent != "cw" && tuiEvent != "ccw") - { - triggerTimer = false; - } - } - } - - if (triggerTimer == false) - { - // just clean up the timer - this._cleanUpInactivityTimer(); - } - else - { - this._startInactivityTimer(); - } - } - - // If the activity state changed, ... - if (stateChanged) { - // ... update the controls' visibility - this._updateSbUmpVisibility(); - } - } - } -}; - -Common.prototype._startInactivityTimer = function() -{ - // Clean up any existing inactivity timer - this._cleanUpInactivityTimer(); - - if (this._displaySbUmpByActivity) { - // (Re)start inactivity timer for a 3-second wait - this._inactivityTimer = setTimeout(this._onInactivityBinder, 3000); - } -}; - -Common.prototype._onInactivity = function() -{ - // Clear the timer that got us here - this._cleanUpInactivityTimer(); - - if (this._displaySbUmpByActivity) { - // Local inactivity timer has expired -- lower the flag - this._activityDetected = false; - - // Update the controls' visibility - this._updateSbUmpVisibility(); - } -}; - -Common.prototype._cleanUpInactivityTimer = function() -{ - if (this._inactivityTimer != null) { - // Clean up any existing inactivity timer - clearTimeout(this._inactivityTimer); - this._inactivityTimer = null; - } -}; - -Common.prototype._updateSbUmpVisibility = function() -{ - if (this._displaySbUmpByActivity || this._sbRequestedState != "none") - { - log.debug("_updateSbUmpVisibility()"); - log.debug("this._sbRequestedState = " + this._sbRequestedState); - log.debug("this._activityDetected = " + this._activityDetected); - log.debug("this._sbnIsDisplayed = " + this._sbnIsDisplayed); - - // Default values for status bar animation timing - var delay_ms = this._defaultSbDelay_ms; - var duration_ms = this._defaultSbDuration_ms; - - // Are the conditions right for showing the status bar? - if ((this._cachedTemplate.properties.statusBarVisible) && ((this._sbRequestedState === "shown") || this._activityDetected || this._sbnIsDisplayed)) { - // Yes -- show it - if (this._sbRequestedState === "shown") { - // Use custom timings from external request - delay_ms = this._sbDelay_ms; - duration_ms = this._sbDuration_ms; - } - - // Show the status bar - this.statusBar.transitionVisible(delay_ms, duration_ms, "slide", true); - } - else if ((this._sbRequestedState == "hidden" || !this._activityDetected) && !this._sbnIsDisplayed) { - // No -- hide it - if (this._sbRequestedState == "hidden") { - // Use custom timings from external request - delay_ms = this._sbDelay_ms; - duration_ms = this._sbDuration_ms; - } - - // Hide the status bar - this.statusBar.transitionVisible(delay_ms, duration_ms, "slide", false); - } - - if (this._activityDetected) { - // Call template's "showing started" callback, if available - if (utility.toType(this._cachedTemplate["onActivityShowing"]) == "function") { - this._cachedTemplate.onActivityShowing(delay_ms, duration_ms); - } - } - else { - // Call template's "hiding started" callback, if available - if (utility.toType(this._cachedTemplate["onActivityHiding"]) == "function") { - this._cachedTemplate.onActivityHiding(delay_ms, duration_ms); - } - } - - // Reset the externally-requested timings to default -- if the status bar was actually shown/hidden - // on this call, the timings were already used. Otherwise, the status bar couldn't be changed (e.g. - // an SBN was displayed), so the timings need to be reset for the next pass. - this._sbDelay_ms = this._defaultSbDelay_ms; - this._sbDuration_ms = this._defaultSbDuration_ms; - } -}; - -/* - * Adds a timed Sbn with the given properties to the Status Bar queue - */ -Common.prototype.startTimedSbn = function(uiaId, sbnId, type, properties) -{ - log.debug("Timed SBN requested by " + uiaId + " with id: " + sbnId); - - var uniqueId = uiaId + sbnId; - this._requestNewSbn(uiaId, uniqueId, type, properties, true); -}; - -/* - * Removes a timed Sbn with the given properties to the Status Bar queue - */ -Common.prototype.cancelTimedSbn = function(uiaId, sbnId, type) -{ - var uniqueId = uiaId + sbnId; - - if (utility.toType(sbnId) != 'string' || !this._knownSbns[uniqueId]) - { - log.debug("Cannot cancel unknown sbnId: " + sbnId + " for App: " + uiaId); - return; - } - - // set the expiration to the current time. this will remove the SBN when it comes up in queue, but - // will not remove it if it is already being displayed - this._knownSbns[uniqueId].expiration = new Date().getTime(); -}; - -/* - * Adds a state-based Sbn with the given properties to the Status Bar queue - */ -Common.prototype.showStateSbn = function(uiaId, sbnId, type, properties) -{ - log.debug("State-based SBN requested by " + uiaId + " with id: " + sbnId); - - var uniqueId = uiaId + sbnId; - this._requestNewSbn(uiaId, uniqueId, type, properties, false); -}; - -/* - * Removes a state-based Sbn with the given properties to the Status Bar queue - */ -Common.prototype.endStateSbn = function(uiaId, sbnId, type) -{ - var uniqueId = uiaId + sbnId; - - if (utility.toType(sbnId) != 'string' || !this._knownSbns[uniqueId]) - { - log.debug("Cannot end unknown sbnId: " + sbnId + " for App: " + uiaId); - return; - } - - log.debug("Ending State SBN: " + sbnId + " for App: " + uiaId); - - // If it is currently being displayed, remove it - if (uniqueId == this._displayedSbnId) - { - this._removeDisplayedSbn(); - } - else if (this._sbnQueue.indexOf(uniqueId) != -1) - { - // if in queue, remove from queue - this._sbnQueue.splice(this._sbnQueue.indexOf(uniqueId), 1); - } - - // if none displayed, display first in queue - if (!this._displayedSbnId) - { - this._displaySbnFromQueue(); - } -}; - -/* - * Sets how many numbers are shown in the LeftButton chrome. Called by List any time - * the visible line count changes - * @param count Number Integer indicating how many line numbers should be shown. - * @param style String Left Button VUI Number style (see Left Button SDD for information) - */ -Common.prototype.setLineNumbers = function(count, style) -{ - if (utility.toType(count) != 'number' || utility.toType(style) != 'string') - { - log.warn("Type error: setLineNumbers must be called with count as integer and style as string"); - return; - } - - this._lineNumberData = {"count": count, "style": style}; - - var showLineNumbers = false; - switch(this._cachedVuiState) - { - case "Not Ready": - break; - case "Idle": - break; - case "Playing Out of Session Alert": - break; - case "Playing Prompt": - // Show "Wait for Tone" SBN - showLineNumbers = true; - break; - case "Listening": - // Show sound meter SBN starting at 0 - showLineNumbers = true; - break; - case "Processing": - // Show SBN with no text or meter - break; - case "Playing Terminating Prompt": - // Show SBN with no text or meter - break; - default: - break; - } - - this._showHideLineNumbers(showLineNumbers); -}; - -/* - * Show or hide the line numbers. - * @param showLineNumbers (Boolean) Show line numbers if the current template supports line numbers. - */ -Common.prototype._showHideLineNumbers = function(showLineNumbers) -{ - if (showLineNumbers == true && this._lineNumberData != null) - { - // validate that this is a List and the List is configured to show line numbers - if (this._cachedTemplate && this._cachedTemplate.templateName == "List2Tmplt") - { - if ((this._cachedTemplate.list2Ctrl.dataList) && - (this._cachedTemplate.list2Ctrl.dataList.vuiSupport == true) && - (this._cachedTemplate.list2Ctrl.properties.numberedList == true) && - (this._cachedTemplate.list2Ctrl.dataList.hasOwnProperty('itemCount') && this._cachedTemplate.list2Ctrl.dataList.itemCount > 0)) - { - this.leftBtn.showLineNumbers(this._lineNumberData.count, this._lineNumberData.style); - } - - } - } - else - { - this.leftBtn.hideLineNumbers(); - } -}; - -/* - * Update this._canShowSbns based on a the cached template. - */ -Common.prototype._updateCanShowSbns = function() -{ - if (this._cachedTemplate.contextInfo.uiaId == "system" && this._cachedTemplate.contextInfo.ctxtId == "DisplayOff") - { - // A special case where the context does not have a status bar but we still need to show SBNs. - this._canShowSbns = true; - } - else if (this._cachedTemplate.properties.statusBarVisible == false) - { - // Do not display SBNs if there is no status bar - this._canShowSbns = false; - } - else if (this._cachedTemplate.contextInfo.uiaId == "ecoenergy" && - (this._cachedTemplate.contextInfo.ctxtId == "EndingFuelConsumption" || this._cachedTemplate.contextInfo.ctxtId == "EndingEffectiveness")) - { - this._canShowSbns = false; - } - else - { - this._canShowSbns = true; - } - - log.debug("Can show SBNs?", this._canShowSbns); - - if (this._canShowSbns == false) - { - // Remove and requeue any displayed SBN - if (this._displayedSbnId) - { - var temp = this._removeDisplayedSbn(); - this._addSbnToQueue(temp, "top"); - } - - // Also remove any displayed Wink - this._removeWinkHelper(); - } -}; - -/* - * helper function to check whether given sbn type is valid - * @param type String type of the SBN - */ -Common.prototype._isValidSbnType = function(type) -{ - var isValidSbnType = false; - if (this._SBN_TYPES[type] != null) - { - isValidSbnType = true; - } - return isValidSbnType; -}; - -/* - * helper function to check whether given sbn type is old one - * @param type String old type of the SBN - */ -Common.prototype._isValidConversionType = function(type) -{ - var isValidConversionType = false; - if (this._SBN_MAPPING_TABLE[type] != null) - { - isValidConversionType = true; - } - return isValidConversionType; -}; - -/* - * helper function to convert old sbn type into valid type - * @param type String old type of the SBN - */ -Common.prototype._convertToValidSbnType = function(type) -{ - var validType; - if (this._isValidConversionType(type)) - { - validType = this._SBN_MAPPING_TABLE[type]; - } - else - { - validType = "unknown"; - log.error("SBN type " + type + " is not valid. Using " + validType + " as a default. See System Specs for possible sbn types"); - } - return validType; -}; - -/* - * Helper function to reduce duplicate logic - */ -Common.prototype._requestNewSbn = function(uiaId, sbnId, type, properties, isTimed) -{ - if (utility.toType(sbnId) != 'string') - { - log.error("Given sbnId was not of valid type 'string'. Please give valid sbnId."); - return; - } - - if (utility.toType(type) != 'string') - { - log.error("Given SBN type must be a string from the table in GUI Common. See Common SDD for possible types."); - } - - if (false == this._isValidSbnType(type)) - { - type = this._convertToValidSbnType(type); - } - - //blacklist will now contain new letter based sbn type, so this check is moved after the type conversion - if (this._SBN_TYPE_BLACKLIST.indexOf(type) != -1) - { - log.debug("Request for blacklisted SBN type:", type, "has been blocked"); - return; - } - - // if already in queue or displayed, update sbn - if (sbnId == this._displayedSbnId) - { - this._setKnownSbn(uiaId, sbnId, type, properties, isTimed); - this._displayedSbn.setSbnConfig(properties); // Call API to do live update on Control - - if (isTimed) - { - // extend the timer - clearTimeout(this._displayedSbnTimerId); - this._displayedSbnTimerId = setTimeout(this._sbnFinished.bind(this), this._knownSbns[sbnId].duration); - } - } - else if (this._sbnQueue.indexOf(sbnId) != -1) - { - this._setKnownSbn(uiaId, sbnId, type, properties, isTimed); - } - else // if !in queue and !displayed, it's new and we need to check it for priority - { - this._setKnownSbn(uiaId, sbnId, type, properties, isTimed); - - // If there's an SBN currently displayed... - if (this._displayedSbnId) - { - // Get priority level of this sbnId - var priority = this._knownSbns[sbnId].priority; - var queueTime = this._SBN_TYPES[type] != null ? this._SBN_TYPES[type].queueTime : this._SBN_TYPES.unknown.queueTime; - var replaceDisplayed = false; - - if (queueTime > 0) - { - // these SBNs DO queue and therefore SBNs of the same priority level should NOT clobber each other - if (priority < this._knownSbns[this._displayedSbnId].priority) // lower # is higher priority - { - replaceDisplayed = true; - } - } - else - { - // these SBNs do NOT queue and therefore SBNs of the same priority level should clobber each other - if (priority <= this._knownSbns[this._displayedSbnId].priority) // lower # is higher priority - { - replaceDisplayed = true; - } - } - - if (replaceDisplayed == true) - { - // call to this._removeDisplayedSbn() will set this._displayedSbnId to null and return displayed Id - var temp = this._removeDisplayedSbn(); - - this._displaySbn(sbnId); // the new one has higher priority and should be displayed - - this._addSbnToQueue(temp, "top"); // old SBN has been replaced and should be added to the queue (top if same priority level) - } - else - { - // new sbnId has lower priority and gets queued - this._addSbnToQueue(sbnId, "bottom"); - } - - } - else // display the new SBN. Some SBNs never go in the queue - { - if (!this._canShowSbns) - { - this._addSbnToQueue(sbnId, "bottom"); - } - else - { - // Tell Status Bar about the SBN - this._sbnIsDisplayed = true; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - - if (this._cachedTemplate.properties.statusBarVisible) - { - // Snap the status bar visible (only if this template is set to display a status bar) - this.statusBar.transitionVisible(0, 0, "slide", true); - } - - // ENTRY POINT #1 - // immediately display this SBN without adding it to the queue - this._displaySbn(sbnId); - - // Notify MMUI to turn on display if needed. - this._sendDisplayOffNotification(1); - } - } - } - - if (this._canShowSbns && !this._displayedSbnId) - { - this._displaySbnFromQueue(); // The new SBN should be the first in queue (if something was displayed) - } -}; - -/* - * Helper function to add Sbns to the queue - * @param sbnId String Unique ID of the SBN to add to the queue - * @param queueOrder String Identifies where to place an SBN in case they are the same priority level ("top" or "bottom") - */ -Common.prototype._addSbnToQueue = function(sbnId, queueOrder) -{ - if (sbnId == null) - { - log.error("_addSbnToQueue: Cannot add null sbnId to queue."); - return; - } - if (!this._knownSbns[sbnId]) - { - log.error("Attempt to add Sbn to queue failed: Could not identify Sbn", sbnId, "in knownSbns variable."); - return; - } - - var currTime = new Date().getTime(); - // state-based SBNs do not expire. An SBN that is Timed and expired does not need to be added to the queue. It would just be removed later anyway. - if (this._knownSbns[sbnId].isTimed && currTime >= this._knownSbns[sbnId].expiration) - { - log.debug("SBN", sbnId, "has expired. No reason to add it to queue"); - return; - } - - // Get priority level of this sbnId - var priority = this._knownSbns[sbnId].priority; - - // Use queuePos so we don't modify the array while looping through it. - var queuePos = this._sbnQueue.length; // default to Array.length so that splice will add it to the end of the Array. - - // Add to queue in appropriate spot - for (var i = 0; i < this._sbnQueue.length; i++) - { - if (queueOrder == "top") - { - if (priority <= this._knownSbns[this._sbnQueue[i]].priority) // lower # is higher priority - { - // insert into queue - queuePos = i; - break; // cut in line and we're done - } - } - else - { - if (priority < this._knownSbns[this._sbnQueue[i]].priority) // lower # is higher priority - { - // insert into queue - queuePos = i; - break; // cut in line and we're done - } - } - - } - - this._sbnQueue.splice(queuePos, 0, sbnId); // at queuePos, remove 0, add sbnId - -}; - -/* - * Helper function that creates or updates an Sbn Object to add to/update the knownSbns variable. - */ -Common.prototype._setKnownSbn = function(uiaId, sbnId, type, properties, isTimed) -{ - var expiration = new Date(); - var priority = 0; - var duration = 0; - - // if type is known, use its properties - if (!this._SBN_TYPES[type]) - { - log.warn("Priority level of Sbn type: " + type + " is unknown. Setting priority to lowest level."); - type = "unknown"; - } - - expiration.setTime(expiration.getTime() + this._SBN_TYPES[type].queueTime); - priority = this._SBN_TYPES[type].priority; - duration = this._SBN_TYPES[type].timedDuration; - - this._knownSbns[sbnId] = { - "uiaId" : uiaId, - "type": type, - "priority": priority, - "isTimed": isTimed, - "duration": duration, // duration is only used for timed Sbns - "expiration": expiration.getTime(), // Set an expiration time stamp for each Sbn - "properties": properties - }; -}; - -/* - * Immediately displays the SBN with the given sbnId - */ -Common.prototype._displaySbn = function(sbnId) -{ - if (!this._knownSbns[sbnId]) - { - log.error("Cannot display requested SBN: " + sbnId + ". SBN cannot be found in knownSbns variable."); - return; - } - - if (!this._canShowSbns) - { - // safety check. We should never get here. - log.debug("Cannot show new SBNs in this context."); - return; - } - - log.info("Displaying new sbn: " + sbnId); - this._displayedSbnId = sbnId; - this._displayedSbn = framework.instantiateControl(this._knownSbns[sbnId].uiaId, document.body, "SbnCtrl", this._knownSbns[sbnId].properties); - if (this._knownSbns[sbnId].isTimed) - { - this._displayedSbnTimerId = setTimeout(this._sbnFinished.bind(this), this._knownSbns[sbnId].duration); - } -}; - -/* - * Immediately destroys and removes the currently displayed SBN - * @return String Returns the sbnId of the SBN that was removed - */ -Common.prototype._removeDisplayedSbn = function() -{ - log.info("Removing currently displayed SBN: " + this._displayedSbnId); - clearTimeout(this._displayedSbnTimerId); - framework.destroyControl(this._displayedSbn); - - var removedId = this._displayedSbnId; - this._displayedSbn = null; - this._displayedSbnId = null; - - return removedId; -}; - -/* - * Chooses the first active SBN off the queue and displays it. - * @return String The ID of the new SBN that gets displayed. null of no SBN is displayed. - */ -Common.prototype._displaySbnFromQueue = function() -{ - var newSbnToDisplay = null; - if (!this._canShowSbns) - { - // safety check. We should never get here. - log.debug("Cannot show queued SBNs in this context."); - return newSbnToDisplay; - } - - if (this._sbnQueue.length == 0) - { - // nothing to display: EXIT POINT #1 - this._sbnIsDisplayed = false; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - this._updateSbUmpVisibility(); - // Notify MMUI to turn off display if needed. - this._sendDisplayOffNotification(0); - return newSbnToDisplay; - } - - var sbnId = null; - var flaggedForRemoval = new Array(); - - // check expiration - var currTime = new Date().getTime(); - - for (var i = 0; i < this._sbnQueue.length; i++) - { - sbnId = this._sbnQueue[i]; - - // state-based SBNs do not expire. An SBN in the queue that is state-based or -not- expired should be displayed immediately - if (this._knownSbns[sbnId].isTimed && currTime >= this._knownSbns[sbnId].expiration) - { - flaggedForRemoval.push(sbnId); - } - else - { - this._displaySbn(sbnId); - newSbnToDisplay = sbnId; - flaggedForRemoval.push(sbnId); - break; - } - } - - // splice any expired SBNs from the queue - for (var j = 0; j < flaggedForRemoval.length; j++) - { - this._sbnQueue.splice(this._sbnQueue.indexOf(flaggedForRemoval[j]), 1); // remove from queue - - if (flaggedForRemoval[j] != this._displayedSbnId) - { - delete this._knownSbns[flaggedForRemoval[j]]; // delete from known Sbns - } - } - - flaggedForRemoval = null; - - if (this._sbnQueue.length == 0 && !this._displayedSbnId) - { - // no more SBNs to display: EXIT POINT #2 - this._sbnIsDisplayed = false; - this.statusBar.setSbnDisplayed(this._sbnIsDisplayed); - this._updateSbUmpVisibility(); - - // Notify MMUI to turn off display if needed. - this._sendDisplayOffNotification(0); - } - - return newSbnToDisplay; -}; - -/* - * Callback for when a timed SBN completes - */ -Common.prototype._sbnFinished = function() -{ - this._removeDisplayedSbn(); - this._displaySbnFromQueue(); -}; - -/* - * (internal) Called by framework. Sets the style of the left button to - * either "goBack" or "menuUp" - */ -Common.prototype.setLeftBtnStyle = function(style) -{ - this.leftBtn.setStyle(style); -}; - -/* - * Updates the clock to display the value given. Value should be given in Unix format - * @param milliseconds Number the current time in number of milliseconds in a date string since midnight of January 1, 1970 - */ -Common.prototype.updateSbClock = function(milliseconds) -{ - var type = utility.toType(milliseconds); - if (type != 'number' && type != 'date') - { - log.warn("Common.updateSbClock can only accept an argument of type Number or Date"); - return; - } - - this._cachedTime = milliseconds; - this.statusBar.updateClock(milliseconds); - - // Update the clock in the OffScreen control if it that is the current template - if (this._cachedTemplate && this._cachedTemplate.templateName == "OffScreenTmplt" && this._cachedTemplate.updateClock) - { - this._cachedTemplate.updateClock(); - } -}; - -Common.prototype.getCurrentTime = function() -{ - var type = utility.toType(this._cachedTime); - var time = 0; - - if (type == 'number') - { - time = this._cachedTime; - } - else if (type == 'date') - { - time = this._cachedTime.getTime(); - } - - return time; -}; - -/* - * Removes the wink from the screen. This is called after the wink times out - * @param ctrlObj Object Reference to the Wink Control Object. - * @param appData Object App data stored by Common - * @param params Object Additional params passed by WinkCtrl - */ -Common.prototype._alertComplete = function(ctrlObj, appData, params) -{ - log.debug("Wink complete: " + ctrlObj.properties.alertId); - - this._removeWinkHelper(); -}; - -Common.prototype._removeWinkHelper = function() -{ - if (this._wink) - { - log.info("wink is", this._wink); - framework.websockets.sendAlertCompleteMsg(this._wink.uiaId, this._wink.properties.alertId); - - framework.destroyControl(this._wink); - this._wink = null; - } -}; - -/* - * Callback for when the Status Bar is clicked - * @param ctrlObj (Object) Reference to the button control object in status bar that was clicked - * @param appData (Object) Data passed in by the app when the control was instantiated - * @param params (Object) Optional params passed by the control object - */ -Common.prototype._statusBarClicked = function(ctrlObj, appData, params) -{ - log.debug("status bar clicked", ctrlObj, appData, params); - if (params && params.statusBtn == "home") - { - if (this._diagEntrySequence != 2 ) // 2 here indicates the sequence was completed - { - framework.sendEventToMmui("common", "Global.IntentHome"); - } - } - else if (params && params.statusBtn == "carPlay") - { - if (typeof this._remoteUiBtns[this._cachedTemplate.contextInfo.uiaId].selectCallback == 'function') - { - this._remoteUiBtns[this._cachedTemplate.contextInfo.uiaId].selectCallback(ctrlObj, appData, params); - } - } - -}; - -/* - * Callback for when the Status Bar is focused - * @param ctrlObj (Object) Reference to the button control object in status bar that was clicked - * @param appData (Object) Data passed in by the app when the control was instantiated - * @param params (Object) Optional params passed by the control object - */ -Common.prototype._statusBarFocused = function(ctrlObj, appData, params) -{ - log.debug("status bar focused", ctrlObj, appData, params); - // being used and called only for carplay for now - if (params && params.statusBtn == "carPlay") - { - if (typeof this._remoteUiBtns[this._cachedTemplate.contextInfo.uiaId].onFocusCallback == 'function') - { - this._remoteUiBtns[this._cachedTemplate.contextInfo.uiaId].onFocusCallback(ctrlObj, appData, params); - } - } - -}; - -/* - * Callback for when the Status Bar is long pressed - * @param ctrlObj (Object) Reference to the button control object in status bar that was clicked - * @param appData (Object) Data passed in by the app when the control was instantiated - * @param params (Object) Optional params passed by the control object - */ -Common.prototype._statusBarLongPress = function(ctrlObj, appData, params) -{ - if (params.statusBtn == "clock") - { - log.info("Clock Long Press Detected."); - this._diagEntrySequence = 1; - // clear exisiting timeout if any - clearTimeout(this._clockHomeButtonLongPressIntervalId); - //time interval between clock button long press and home button long press should be less than 9 secs - this._clockHomeButtonLongPressIntervalId = setTimeout(this._statusBarLongPressTimerHandler.bind(this),9000); - } - else if (params.statusBtn == "home" && this._diagEntrySequence == 1 && this._clockHomeButtonLongPressIntervalId) - { - log.info("Entering Diagnostics App"); - this._diagEntrySequence = 2; - framework.sendEventToMmui("syssettings", "SelectDiagnostics"); - } - -}; - -Common.prototype._statusBarLongPressTimerHandler = function() -{ - this._clockHomeButtonLongPressIntervalId = null; - this._diagEntrySequence = 0; -}; - -/* - * Callback for when the left button is pressed. - * @param controlObj (object) Reference to the LeftBtn that was pressed - */ -Common.prototype._leftBtnSelected = function(controlObj, appData, params) -{ - this._leftBtnSelectEvent(params.style); -}; - -/* - * Helper function to reduce duplicate logic. Called when the left button is selected either - * via touch or multicontroller -OR- when the TUI Left Hard Key is pressed. - * @param style String Style of the left button (determines which event to send to MMUI) - */ -Common.prototype._leftBtnSelectEvent = function(style) -{ - if (this.cmnCtrlsDisabled) - { - return; - } - - // Send an appropriate event based on the current style of the left button - switch (style) - { - case "goLeft": // legacy behavior TODO: remove when all Apps have updated - framework.sendEventToMmui("common", "Global.GoLeft"); - break; - case "goBack": // go back to the previous screen - framework.sendEventToMmui("common", "Global.GoBack"); - break; - case "menuUp": // go up one menu level - framework.sendEventToMmui("common", "Global.MenuUp"); - break; - default: - log.warn("There is no defined event for left button style: " + style); - break; - } -}; - -Common.prototype.getContextCapture = function() -{ - return { - leftBtnHasFocus : this.leftBtn.divElt.style.visibility === 'visible' && this.leftBtn.btnInstance.hasFocus, - statusBarHasFocus: this.statusBar.remoteUiBtn && this.statusBar.remoteUiBtn.hasFocus - }; -}; - -Common.prototype.restoreContext = function(restoreData) -{ - if (restoreData.commonContextCapture && restoreData.commonContextCapture.leftBtnHasFocus) - { - restoreData.skipRestore = true; - } - else if (restoreData.commonContextCapture && restoreData.commonContextCapture.statusBarHasFocus) - { - if (this.statusBar.remoteUiBtn) - { - this.statusBar.remoteUiBtn.handleControllerEvent('acceptFocusInit'); - } - } -}; - -/* - * Cause an audible beep to be played. - * @param pressType (String) Indicates a short press or a long press. Valid values are “Short” and “Long”. - * @param eventCause (String) Indicates the user interaction that caused the beep. Valid values are “Touch”, “Multicontroller”, and “Hardkey”. - */ -Common.prototype.beep = function(pressType, eventCause) -{ - var validPressTypes = [ "Short", "Long" ]; - if (utility.toType(pressType) !== "string" || validPressTypes.indexOf(pressType) === -1) - { - log.warn("Invalid pressType parameter passed to common.beep(). Valid values are 'Short' or 'Long'."); - return; - } - - var validEventCauses = [ "Touch", "Multicontroller", "Hardkey" ]; - if (utility.toType(eventCause) !== "string" || validEventCauses.indexOf(eventCause) === -1) - { - log.warn("Invalid eventCause parameter passed to common.beep(). Valid values are 'Touch' or 'Multicontroller' or 'Hardkey'"); - return; - } - - if (pressType == "Short" && eventCause == "Multicontroller") - { - // do not send this - return; - } - - var args = { - "payload" : { - "pressType" : pressType, - "eventCause" : eventCause - } - }; - - log.info("Sending PlayAudioBeep", pressType, eventCause); - framework.sendEventToMmui("audiosettings", "PlayAudioBeep", args); -}; - -/* - * Mute message handler - */ -Common.prototype._HandleStatusUpdateVolume = function(msg) -{ - if (msg && msg.params && msg.params.payload) - { - var isMuted = msg.params.payload.volumeOnOffStatus === "VolumeOff"; - if (isMuted !== this._isMuted) - { - this._isMuted = isMuted; - this._isMutedChanged(); - } - } -}; - -/* - * Called when the value of _isMuted changes - */ -Common.prototype._isMutedChanged = function() -{ - var action = this._getMuteOverlayAction(); - switch (action) - { - case "wink": - this._showMuteWink(3000); - break; - - case "persistentWink": - this._showMuteWink(null); - break; - - case "sbn": - this._showMuteSbn(); - break; - - default: - this._hideMuteWink(); - this._hideMuteSbn(); - break; - - } -}; - -Common.prototype._showMuteSbn = function() -{ - var properties = { - sbnStyle: "Style02", - }; - - if (this._isMuted) - { - properties.imagePath1 = "IcnSbnMuteOn.png"; - properties.text1Id = "common.muteOn"; - } - else - { - properties.imagePath1 = "IcnSbnMuteOff.png"; - properties.text1Id = "common.muteOff"; - } - - this.startTimedSbn("common", "TimedSbn_StatusUpdateVolumeOnOff", "typeA", properties); -}; - -Common.prototype._hideMuteSbn = function() -{ - this.cancelTimedSbn("common", "TimedSbn_StatusUpdateVolumeOnOff", "typeA"); -}; - -Common.prototype._showMuteWink = function(winkTimeout) -{ - var properties = { - "style": "style05", - "image1": "common/images/icons/IcnWinkUnMute.png", - "winkTimeout": winkTimeout, - "alertId": "", - "completeCallback": this._muteWinkComplete.bind(this) - }; - - if (this._isMuted) - { - properties.image1 = "common/images/icons/IcnWinkMute.png"; - } - - var newWink = framework.instantiateControl("common", document.body, "WinkCtrl", properties); - - // If there's a Wink currently displayed (e.g. persistentWink), get rid of it - this._hideMuteWink(); - this._muteWink = newWink; -}; - -Common.prototype._hideMuteWink = function() -{ - if (this._muteWink) - { - framework.destroyControl(this._muteWink); - this._muteWink = null; - } -}; - -Common.prototype._muteWinkComplete = function() -{ - this._hideMuteWink(); -}; - -/* - * Returns one of: "persistentWink", "wink", "sbn" - */ -Common.prototype._getMuteOverlayAction = function() -{ - if (this._cachedTemplate && this._cachedTemplate.templateName === "NowPlaying4Tmplt") - { - if (this._isMuted) - { - return "persistentWink"; - } - else - { - return "wink"; - } - } - else - { - var uiaId = framework.getCurrentApp(); - var ctxtId = framework.getCurrCtxtId(); - if (this.getContextCategory(uiaId, ctxtId) === "Entertainment") - { - return "wink"; - } - } - return "sbn"; -}; -/*Called when carPlay is enabled */ -Common.prototype.setRemoteUiButton = function(uiaId,enabled,config) -{ - if(enabled) - { - if (this._cachedTemplate) - { - this._remoteUiBtns[uiaId] = config ; - if ((this._remoteUiBtns[this._cachedTemplate.contextInfo.uiaId])&& (this._remoteUiBtns[uiaId].ctxtList.indexOf(this._cachedTemplate.contextInfo.ctxtId) != -1)) - { - this.statusBar.showRemoteUiButton(this._remoteUiBtns[uiaId]); - } - else - { - log.info("not on home screen so not showing the carPlay icon"); - } - } - } - else - { - this._remoteUiBtns[uiaId] = null ; - this.statusBar.hideRemoteUiButton(); - } -}; - -Common.prototype._updateMuteWinkOnTransition = function(prevTepmlate, currTemplate) -{ - if (this._isMuted && currTemplate && currTemplate.templateName === "NowPlaying4Tmplt") - { - this._showMuteWink(null); - } - else - { - this._hideMuteWink(); - } -}; - -/* - * Sends display off notification event to MMUI - * @param sendDisplayOn (Number) 1 or 0 indicating if display should be on or off respectively. - */ -Common.prototype._sendDisplayOffNotification = function(sendDisplayOn) -{ - if (sendDisplayOn != this._lastDisplayStateSent) - { - framework.sendEventToMmui("system", "DisplayOffNotificationEvent", {"payload": {"notificationActive": sendDisplayOn}}); - this._lastDisplayStateSent = sendDisplayOn; - } -}; - -/* - * Process Global.MenuUpReceived messages. - */ -Common.prototype._MenuUpReceived = function(msg) -{ - if (msg && msg.params && msg.params.payload) - { - this._menuUpReceiverApp = msg.params.payload.receiverApp; - } -}; - -/* - * Utility function to get the context category (domain) for a given application/context - * @param uiaId Application ID - * @param ctxtId Context ID - * @returns Domain string value (e.g. "Applications", "Communication", "Entertainment") - */ -Common.prototype.getContextCategory = function(uiaId, ctxtId) -{ - return this._contextCategory.getContextCategory(uiaId, ctxtId); -}; - -/* - * Utility function to get the status bar icon for a given context category (domain) - * @param domain Domain string value (e.g. "Applications", "Communication", "Entertainment") - * @returns Icon image file name - */ -Common.prototype.getContextCategorySbIcon = function(domain) -{ - return this._contextCategory.getContextCategorySbIcon(domain); -}; - -framework.registerCommonLoaded(["common/controls/StatusBar", - "common/controls/LeftBtn", - "common/controls/Wink", - "common/controls/Button", - "common/controls/Dialog3", - "common/controls/Sbn"], true); diff --git a/app/files/tweaks/config_org/safety-warning-reverse-camera/jci/nativegui/images/desktop.ini b/app/files/tweaks/config_org/safety-warning-reverse-camera/jci/nativegui/images/desktop.ini deleted file mode 100644 index f33e592..0000000 --- a/app/files/tweaks/config_org/safety-warning-reverse-camera/jci/nativegui/images/desktop.ini +++ /dev/null @@ -1,2 +0,0 @@ -[LocalizedFileNames] -SafetyText_UK_Ukrainian.png=@SafetyText_UK_Ukrainian.png,0 diff --git a/app/files/tweaks/config_org/speedometer/stage_wifi.sh b/app/files/tweaks/config_org/speedometer/stage_wifi.sh deleted file mode 100644 index 13f4793..0000000 --- a/app/files/tweaks/config_org/speedometer/stage_wifi.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh - diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackCtr_1_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackCtr_1_sm.png deleted file mode 100644 index 23e168cf225137e3f0cf853848e03862b499819c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5111 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 ZzyNrrguab9_?iF!002ovPDHLkV1fuK;Y9!d diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackCtr_2_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackCtr_2_sm.png deleted file mode 100644 index fe2229019edbf28e0a1f933e9281f140b75d97db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4858 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 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackCtr_4_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackCtr_4_sm.png deleted file mode 100644 index a5aaf5a8402a57fdac6193c41e6d2c496b0757d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3208 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 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackLt_1_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackLt_1_sm.png deleted file mode 100644 index eb9d0742e22ffb7ff5d9d5f7ee6cbd1dcb335e21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2037 zcmVadoLIh1RClhQ^?%QR5FNE>&Ypj4`dXi4Co`vHxgN|7g zdA@{Ap)Nn5PW0RHTV86)2t${*`A=+E*mcoK1F~Vlbt^pcYnZf?S?^?FZ4yARP8rZ_ z&!-LxBbZv*PyiDELU`n5GyRvIJ7?}CUnyh&Vd!NUx(@+l4ce;!(-C_ISXRjG&`p=8 z0F$B4z=vlf<&~za1%X*tFudgn_B#W4#qyc?%D#H|_Lue0EwBw3yb^EpbM$`!uz~~- z7Kkl_A0X`5V=^`X*paD(+4W&l1kdUY#Bci}&WlNU#)Cb8xz=J}w|z<2JyV33jx~RY z{t-K&u!|c*5iG=twaCzrHdHlCk!3(@J4PpFp$av<`G3{$h?oS-G&I{V)t#Jx!~*n@ z-oD_C)0K*_#&uYC5Jtmr!Jv-lXcW?sFr@xaQ!!#H838zeStti{v~DVI7VD1_vyl^o zxd6>8n4(uW;aR=-&`SV!1k55M=;}6494JQSr+Dr{+?y@nA;B8PfM?QZHCkgt95ZMe z#TX}c%pW74}yq4@}J zyvUGg)re0VKDe+B5NnaM(2#z4pnS*n!P@?Ey?*>G1568=HF(?Won|ahPQ}6nOzato zTV!o) z4QXtg++C;W%&H0HFqB-iBG<-jE|zcE(qG(9P09B~n5Af5#Et3fLImrF4!)1deLvE; z&*NkR^c;*A!{|7*rEyv2vdxZ%ZgwMNtM?A+Pv!;U-nkz2%}{bmWW?_Eh01rrYE>Tt z1Q7d@cfo#xA9E>;-9wTv@oq`HEGuXW!n7EBU%cPgdkRY`2O-m!;E__mPQseaZY0}7 z|EZa+C?PA3hP3UyV)^yaH8H8u_E@uU91!4jzG`?EVvp1J|E$mWyP&1 zE&u8bY>Mb9*hY^H?-WcT-9^JAtjNLz=#Z5a8m%=d*Xn@kbQp1>dIXoj=h?-!My~kQC zT*2o;Pv1h?_6agw7`NDpq`@%`6e`IhuNO+MjCZDfS_!dMIj<-OqY{8d=CE50f0rW7 zchpHdj*YGlA^0>6l}2EU(@`UAuEjpIXUOn|anICY6h%4T+X;|!0Mw%>fl&^o0ma;K zJtEjD$=rZ`3AO2Wxb-1yKAy+}sR7>{FU08nGKo!}RjT73@`vhSX{zsk0FXXdO9O@z zT?rAV?}%O!vj?;D@Z7oZz#BEgf5QI*c;1$rsiVXWa8&%&I|`-#34aECRxa-V%(a-X z%1uH%CVN~+Y_W7j``bW$&||X^+S=D2@-l?yUKI8{+C7VM@yND9Y2S(J=a|Qj4@>1O znB#}&4s%o5#`-WL|7lL&oEzy4s5uDZqj_m|VTWlSjQB?t%}el|`j;W1KaY2^;1k_k zkk2hexSmIdI@oOo+$8Qabm@L%v4m?!%Z7I1&z;)~gImV~I^h9rPjT>{NYUkR%4^1X zC(V{d-z1(&!xxb|^Ne^+!4^UEA5Y}$HSUQKP;bKZH)G*-m^ey7#tL5=wh>(=P=I_j zWcp-6-**#v=?*y81Z{7{+KYS zrjl@Krz?c5if}zKnfbr;mn*b&pr*}jI6HS^zqunW9ZkBj4YaqZQr9m}W?rU~bYY8_ zfz!aHD9)=e>tzUMo7QyoyZxoVel0-h)!UZyY$-wQyExS5kN+MR9GcAd&jlC&QNfvT TpMz{k00000NkvXXu0mjfMTp-s diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackLt_2_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackLt_2_sm.png deleted file mode 100644 index e576b5e36c9c76f33b7bfcb8d28dad3b0666b0d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1666 zcmV-|27UR7P)~AOr_;%0ko|*a0|NDP4b0q!8Uh*W+NuZNJCxQOY zK-w4*N>Q35|L!c5G3*<&yx^PldEeyl{ohr{D0Q=9e!>X3v?xVdP3;HC45=hfFhyD` z^_XUU*q5SQl+5j(xU@sdtyPxW!Z`ltfB@5mn>PZcFDC^T1yk7*)UAjY`l9btEqCmW zY3p?TbX-85F_+-R4M@{jfFUSDZ4O3SIt`z5y}UR#U%dLlqT!7b;l}A0UH*wG(pPG( zC0ePNR>Ct>XuxzS2P0{&&Qq`FQ?K##;+$E2V|)G_CB){>M<<4y*-sSgs6eQqg3tUY zI=?Bg_5~$)WnPM63&=VYAyrJh+NT~wxACY;3o1(zy&f-GoYz-f($+HkLs;9@Uyb5v z1LchAhF9LzLi8Ca&h!QEPAt6yb#7?Yf@h&sw^lS;U= z#oVPAwHEfhHx_=6DztwIC=b6tl@BrQ86FG5SPZ2ufJzUbs7@_wUeu0O9ZFNDGE{|M}Ok4Ng!j4=WBfrQuC}QL@9$o zrv}wz6z58wyyBNIS=FZas#ZzeSbwO6H5CBk3z5Mn7wAhgJGI$0pJGJMdxYd z1=@^k57S-4VRS?)2@t~CG6xm34hr0=Soj_wob(O`z9poMa%^WIHD~nK(zUIMm-%da zw1dWw5iJCG7cvlHL^m#dwRX z3kL?srdIZlYE7vAFxjzo&(O^WYhijs51|6m7S9U+v;u<)mn!XmoI-3fFS$Twvd;5t zFGA^`{Z+;G1!UWp<0UnlaAYk-4vgwxG44(p3c45Dx?bBRlEJ^0jeco)3R}X}A|ACla4k=w0*{CD1Db)ZKqRK-6)S!q1OA)9) z`mq*&{q(@dUE9Wkv10;7kSVYAmqzkpC^H`>2Z)7H>o+xl>T|671EA%0O>20?Yk?r(c@kihic*e zlJP!*ao4!PM6+z0Fq7`&4AA{Yb?_c2wW3qel`-)fUsTh(D`~nvqNKZ;#$7d=^0(FC zf!BT>e&<*#H6QJdc`b#@W*L4PO66n&NM;^_>)B=v-E1VT-I^mCz_Q^pK#dN^_PM<= zy-BVb9Bc|yW7Pqeoiu#&zHD)5H z^mER5fXdEg=W=ta;zI;HmB!Z1Z>NBbr~KwmpNi~`a!c--(gHCLz^6KwKD}yt7rjBuB7_5am$E;k3oxX%UX+D5*M{=Xv*K7kg zNa@W_4pyG|+a800I1cw!!?&%{FG^yAeeWE%&DB?jLu$F}l(_n9!uRd1hCBcEC)bf$ zR2fY9ogfv@V-x-X9E<9yh=HD!WdkPoC+=>{33b<`{WiQPA@KAbomoWg<9{_P+@*0OT$o#FRU}_5c6? M07*qoM6N<$g3=5jdjJ3c diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackLt_3_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackLt_3_sm.png deleted file mode 100644 index 35e096168b12ef7a0122e7d0ff0c53f88e66a5cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1209 zcmV;q1V;ObP)q2zU2o~1p*2Q#zzO7)GH{Q7|{H2!SK*bJ*{tL zrf!8gW$bKT@;IDv2p`34Mw9D$H)z~~rIpI3O_WZvI5rsPk@D(3uFLEQq1 zNv52XKl%(F$}t!X$hsT~$Z-xHLr~OYrVt{~rvarngbxOC@2kD};a!10J8Rv|rMlU= zb!gSZ<${)H>E=@&y3k`B6f&}jHF~lL1UR5B<5`~-z&a%E8uY}IPj&h_Wp3^l1GRsu z*c}Vw^(bD*EBT#5ctv1JhSA$GK!OrkPx5fU#)%{tfNP#dR`>O2wr6+f?|Z%wni0=C zKV6G!ObECexWC*wu0`=>Cgikc?j^)jri~jT<*exyVpE?iPV7&qun9*KBcy%j>4{Li zHB|_=?ez4y?<2b$#ddR>>y3Imua*27!9A0L&1cV;(pN&(rO<4RFcD}2%x#>Tv5~a0 z*Tc#2ym<4qzTmkBeE-)YOO?x;DnCf6E1{=OCNABcKr(7cf+Pj71d%;&nyI#)aCF$P zupyY+Xavh>A`~yI!TX1oR#rA$pe@wQqL%6#x^`flov>tFLO)^xi|M!}gp`_Vv}UfD zYx;=msx2CK;^a!@)9ID!)>MoX^fGO#Us>R10Mp$DY%y{v7$P$SW(dYm;4SHqti!=N zlyMM!vbeJMqf1NIwzP!JD#qUHw*vQWuX$&dM4o7Fm*mz_JZ4gDlg~nQHXj(dF`QEidv* zb+dMRcYM zE;Z~OqojG5O`TXG?4o_S#uz#*pxvM`1e+V!D X$j`sFFmuv=00000NkvXXu0mjfIAJ() diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackRt_1_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackRt_1_sm.png deleted file mode 100644 index 8e625116010f38c4fdf00b2d59992d3a539c2f0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2023 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 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackRt_3_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/BackRt_3_sm.png deleted file mode 100644 index 3d274e1e53c08f541214501c971322d78d9b2d00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1176 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 GU;GCL+FkPi diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/Car_Ds_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/Car_Ds_sm.png deleted file mode 100644 index 701abf1fcbd0b8f2b603b0ada85f65714156cc67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9392 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 z 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 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontCtr_1_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontCtr_1_sm.png deleted file mode 100644 index f8953a62c56800aab506679cfe2dce3d72dff0bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4049 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 D?KiNE diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontCtr_2_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontCtr_2_sm.png deleted file mode 100644 index 41b4ed96c1ccf5d928fedddabf2a2c3bde3e7029..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3371 zcmV+`4b<|9P)@vYZ;2BVWwApRMM#KMC=!@_ghhOS;4APEA;brWkAR3GBtRe{5rnKDg&@R-6Dtci zj!m4!j!hCfc0Bfs$DZ*lZ=KgmT~77#UU&P=*yBtRK3-YnuCDH`<Cc-1f?UJ zr8=`Ag~*shd6zjyLgXchJPFF6ohDrp-?6T`2w}6}8O5T8b_HY9Z04#GqMj1Mt=8-O zVef$!YM@Le0~|yr1{}afmSNXRCDBUkb|v~YV5Y@*-mjmdKNFo?f2a}*;ug=sKE4Eph(4E;j+y@8Dhmv}xQP$2)I0%rE19FZze=%cyT`ZRw1s5uGN9O$O1; z0Ao8gw*}I1E$;Ku1Hs?43_dnOP(pyh=Lt|`!~#(a6l%ODxW(!??B+|QDgYqbry?M# z2!M)xX;Y0h2W`*RoxtsDP}zg7;6o0Jqj*$-+BTPB0vt$75A4dV0OL+e{Tcvr0=Nix zZUCHq=K6r?d#Ef=;QA)sg}U-fkh+8Qdc8=6Y<3qw`XzuFFd`rrQBcBm08T@-qF@Dp zHh|$!(m1AO9vC#c&L@qzm_;2q0&4>(-AB#)!07lpqf<4nasrOvH$bhy>B4Qlk&Aj>#)%UqmgU zQ+u8XJTBuU3s(ovwc7zN6&24%NRfl2WpP+(Psmy1G9H}v z6gGSg?NiDle&Q4;^+*lGuxhhyF;_B@@;Or$Qurc6oJ$dPV~hg%8g6J{skv#rW*h&N zEx2`y$+q#lVyhBP+lCf&WVJRC(|}wilUkQgznL}Y`k3_4rP30xv}Hj~Ly z<3(&xHYBUzw#l`XI0@46Leb@CCT#T|IDp)u6y1W8-B~ciT{$V%0*nsXwBvF6!_D2s z?A2vxFY~3gYF4}D1F6?Kg~0Hgs)GYm;<+hXy@LZXds6bQE`z>=VDomYbukmmrW*Ql zfzrQyv}|tzEpS@`1x`hq3#mPML)@o9!Ut0`O6-A{KYhV+_d_mw1~T&g9z*PeySyN_@L=X?+DDwGpFnBuO}bW$RtvLn{xH6uO_Lam1-UVj8St&(h)6W4 zM3h@m%lK}7K+OseCxD8CH@?H+hB|6i7Y%o!TngHffh61lkA1Z2sB)|MjaHqmG)8(& z*@-Clu4ouzgje#V$7^%6FOors#D9|F0Q)4Cf{=&;&ept7_EY3Oj6GxVB_$3sXh@2N zQq54S)gfvsa>n9^#;diFd8Jw40heBvlSkmm`jV;@m7Ju6#Z)h{DA9-=n=zs1p_o;j zNoOw|9a_Q7=#X7%!;1GzgE)l{OJ@bcxH^ysZlqJ9yvWOkQZqD(+NW45CQ!{#CC44{ zi$i7mVP}?f%bZfbt+(*46>0h%1=17EImJ>dF%60l&6fj2GLT)97{|g^N_fHxMt8AhV+m$ zn!*+`eVu4it{}@*I{abGp~`hd!;Vs8Mdc2kx16z;%jF9dL78sJ{RM-rMa**p#@d9j z*PvbCF!vMzEZRP6i=Q2ws66t4GMqQ{cHFx@!_Nk$pkZ&YcpE2i94Ed1j4k$z*4dWI8r?8uAWMirWUw^oB*Inak;8Cf{>F61>3843mC=L!gK~i5h1=%Qr@-5Mz*3TW0cZHYME*_Pjs+uSx zvWD>+cb)Om_4{6MjyPb7T{+3C^;sRS)5EV$lpkG?9~Z9eE?k4b zZv(A;XZI2-h1ieBh(KCV6m=s701;8W#p(`a$mrHRbKx4iXK;QdO12o&q-;k(! zpb0Sn&_-SwPPM*n2W@*qCnMN81Ywcxs_)3=}uk^*=4v)WPvh!5Gp+qNY z7S%8TlIf2^Mzh9#ji816nROPxC_ZO$EqaZ5t$NKJrV{QTh5H_@JL+V~mZPJt7#X#!%E@}A zIN{hu@GN&6?@v13k0xRffEkcvbepLZ;=7)8=|aaq%Iq98c||TI2D64(4^Flm->pN4 zv$kM}?(i47CG;PXCx;bai^#xP( zCuI)=dFD{bdc<)Riv{*AEz3{VEXh5ztm9N?iU+}6?6S-6O?V5b$`CAXXm|rsjuV>xwFF%`mbwfxXMp{FeIIKAU>r?^Dx{J~lKlF50DC+NE9ErCr*k zUD~Bx+NE9ErCr*kUD~Bx+NE9ErCr+Ps>}Zb7yvi%Y5BYS9*qD1002ovPDHLkV1ngH BYZm|j diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontCtr_3_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontCtr_3_sm.png deleted file mode 100644 index 626152cd135c5f50c2b48b862f144b37b4aa0978..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2541 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 M07*qoM6N<$g1y>QHvj+t diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontLt_1_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontLt_1_sm.png deleted file mode 100644 index bdfe905b6795c315a7f9e8f2cd75101065a67691..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2396 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 LNkvXXu0mjfyd8F- diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontRt_1_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/HorizontalSensors/FrontRt_1_sm.png deleted file mode 100644 index f287e7861ae0aaba60683a8ccefbc1d92b0d359a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2383 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 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackCtr_1_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackCtr_1_sm.png deleted file mode 100644 index 4658a4ac745b107c4e9ddcdcc4f696a41b409cfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6492 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 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackCtr_3_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackCtr_3_sm.png deleted file mode 100644 index 8d1c63f49d32fbf19010a357a1261565bd70dff0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5375 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 JU3Li*^*^@6ptAq~ diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackCtr_4_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackCtr_4_sm.png deleted file mode 100644 index bf6e53cbea2defabeab4edd0653a7c41abd0bd4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4326 zcmbVQXIN8Nw@!%ks&u4;s4#+%1V~6ikw8N45D<_i1PGV}Na!GlBiJx1MHCP$NH0p4 zE=6IeA|geqG!YRMq;tc}ICt*ze9!mep68si*Is+Q?^=89wa$-o)zaL6mrH^R008hB z8RD#&qb>6>;9z6E@11n}!5qZt_%n1Hsuw-PJ&*{%dQ#63!A4|vZ=yBP-7_qpgQy7r zfV@byXXt0lOfeo*vaELrjZxTfdvQpa!0h2tnAod6| zn3=yG(T8Lh9!RtaH@Ec&_wzt|LQZRgHA68>0y2^A4h|)sr_eB=T97|^F--YD4TXUJ zG@<)xLH-KrjF}}^j~Yk>Ba~H@JYaA*7>QJdt09m`_$jao46Xu&F>j<2Tn&RjVpP<@ ze_s%$w?I!Xj5SXGZ(q!r7Q}~6_s2k?At52kA*#yMKyN4JdaHQs_oFEeLZ(*^}gn!J~BXC_NYgrlOC-tHR-EeN`-8MHQy1riaAiU@E^j{u367 z!|Umz;kqz&tS%gmS3|3-=RDZCZ4FYWD?m?m)%ny#|uifH^fuvxfr+y%n4E{5}7}9_6 z4^u-it4Cc8rmg}*qTp~WRt1SgAXTv_oSv#W5(fDj>-qo58I&0e^q@HYRV=?$%nCdZ z|0#Xu0}S!-)Rc$! zfRbP^HsHoh{`9Ygw$ewA>#Hen;HKN_uX5YTeK}k0PgMIfa_h#``&YPQvouRc-v?M`8sSbwW`7r?+{oyN$0l^Br)xPU9~wYh+3F@%gZq zJ7NA5s^~fg8p>i!@V|u*Z-C28O>H)4 zMj3U4$Vl3_Y7MBL4kdzLu|vGMB^8AezkRq>eY#Po%l4@3C6V@Zlwy_hL$jIt5~Et> zMS}>l+*o8nGeI|^^NyYG%$C@dhg{GI-dDk*tmB$iGNW9(Ykl#{Rpn70+vgh}IbVjP z&u*o^yZOM1{r`oa|clQR3A2{SK4)f~e@T@}E>TGKob|-le zyLBhs9x?#kMa$othgObyzc^?8J&66)kK6UEQunOs-MHq6Alrh~;sl97Olo@q!`TTa zuQ8$6@Z(iQv(2nIm+-i@Sax#cX6B~z*4HhUg@~n5@nuymbXwu?+ z!`92A3-fJ+hXa0y-7r0$fFfn{hp+D5{k>;WX-dGM_jzmsG9Up5ThDm{x2cUY=1SMN z7_qGHCL!ZJuJJI`z4Etp3qNh10u0Qd4*{FM499O9^VD(7(4j!lpC>_LvT@+0m!72x zigK;0FUn7S(P|qUaxdC{uk5wZc|O}xboOmzp3F1q>-_h+ioa)Iw9fF~Yiq>jjGaQ= z1Kf>`SdaxXgy}vh3j%(aIhQ9=xi-m_D}{`U#lW2<09*BC!K07V4)q>AkJoJrZ8j8& zg!Er}`Lut~SAI3QEs2dwJ$_Nzdf0z;4(c`g1i8^YiG14-JU;`dquJ+A7M1 z>hUw&Mn5Wd+4H%jK~8!2e%xwOI+v2+ssJ~i0xwquqq(`!+LHFW_-J)9K%K0W5}@Id zu92|2Ial!}rAH^O@nLlhKO(Lx8J)U3AqtN3H&<9 z{ve%>?dKeW`#Vh;uDr!f3aI$ycapODU(@rFovf#?a~QV#ej>t|cOI$PF?R6~VQx64 zqjE{IaG7)7T%_&T^-C2qRyeW@M(xxRbe_HmC>trGc#9)nlv&)nV-0d+xBHDenuf>c zFGxGibt}D2Vns?@kGH+-!dkN>SZ57OOv7GFX1SWMIK@YGjcFsXpD-Uk$Q#7)^(IZq zzw+YR%~~rG!5!9l5%e{iYbdlL4xB9XiO{tw)_=v?XlE^{CMNftW}pj?ZAY+UpDy(A zweu_tPdO#5WsR!+8N(=R$C`(VKGlY4$;4Qd#+?>}u2yrmmLt3@RuP zAkn2=0}LQ5{LDss`U>S&8x;g*&jB1N*Kb>e)VMym-K18YiG9Lzh6^>8?s4&I`P6*? zoTcc*rG%goOMbU6`@HnBG34f{XH^+DMC%Qo!LpzN1|r@W6Q8_#KEOFgTKRRmtS?S45tm!SEeqPBvNW0FKV@A3732=E80B z@cnTDYZgX_Tp4xGM59#p^7JVkR?EW*RV;St_yCclRz*a7Cs`DxnK4(MuNgPLb2|Si)Ty14T@~*@-D@wE61>_@^raTFk)bQG>V{ zUK)BVh{OCn)Ha61z-Q~*$Tv>h$7i=rh-Ns9Xd^PM5W~kRRP1g`&R7blBv_|KmZ8;~ zua7#!bePq_gN)={(YIhB>u&7rsP9#H|LU@B;M(d)p9$Z>oz<3%b77t}#TmVy(OIV1 z{;>ta_N_{1tBPx~?UF0C>K3H$+@lFjc}#vYCeMx6Wq(iNmV0z(kg9ZBsJq3<=jok0 zLXK5CM6dCWKn>QX6|0?U?NLB6F@D-)axK+);eu&@V@8ZFe#Pnz1r%Tj@ z6wk3LnD;oOxv>6TL@Ews?_Wt!;nN`>ow%{inCwf8TL-3uyRT-hhJfWdEvnvE&5oaIO6T1u31mU@oLv2;z>4HpBB*eZm{ zqCTdlZ<`F{s&M1%F3Yh>CB|9_+nzD71bUsX>ij|8`$Ku`V)I%rw$s`d$qq>7(?`f;e!q3l$QO10_9#T(?&cdON_ z468Ibkiv0?N6HDtZD~P%7;){3Z_%w^E2?fzK2n&OKXO|FwjWa*9oz7rDNO$JRHIUf zr%u^oR%k&3r@$8-p$1S4B`)0CkeLcYKD{=8fbBROAe)+tYjA!1U= zhr1KlmkPO8_yI@^$kg!lwNKR4p=23@1}p7X2jU6O0zNsnub|Iv+ZW}o zw$QR^=otQ)Ww~)h=6xNehH&Tlq-o6jD5`t3r6d-e$N?@=(;u@dFcKwDF;TmJo%icq4;Nydbbq1T7jVJH(SXeo!=AP=G=$u0r}Ebz9{uX8%@BV>DvSn2?Q;!f#_X6+C#|Vy>J@G@X6uk!6$y6EKf`u` zlC{#*T{)e4pk+zRo^T8zepxplktSEVDKFURWp(W2+hBB5iULu1>vmX#3usMyu>Aqe z$F+6qxan4yX3vUSSZ@nC{qX4}y6D=>&dzBbHK|ck2Y{$wMVIWdV@z*7i+rOX$ffC| z{nU<0K&STSUO`ezs#00|a;qUB4=ea7aJ+^I(KG#}(_k#r_YW8lGPO diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackLt_1_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackLt_1_sm.png deleted file mode 100644 index 73a85bb67ca179d637411fdb36b84069a02c2e91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3006 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 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackLt_2_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackLt_2_sm.png deleted file mode 100644 index 160435a7721c6aa850d03ac1f41bf92601adc8ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2618 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 F{14IKRayW5 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackLt_3_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackLt_3_sm.png deleted file mode 100644 index ae79630d7f46d65f2e9ba129866980f72bc6b874..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2181 zcmbVOdpJ~iAD@`qGL(d*ZOl}*wR4|2b3tWp8BumEMkjEsRDWyjK{tVreu8p(S9XQtg8oIbV-KD`h^IP+A}{ zP|E=oO22p=7#zPQL>eD0Wy&xsmZQCmESNwALSnR06{FU(j6Rr2UKYGJ9TPCEsH=f7z}s=1+URX5=cxY)5Jk0<6sS(K28mZjX1R)JI%la^-`Tu z3n?{fw24tH(QJl%FtDfZLr`f013wU}^;3z0Q${d~wFDBLNKmOvaZPILAtCr*H$JMZ z4~f%)1Rk03AjEO_zPa9l(BdW zHjlv}(uia}mq#Iyn0$&ak4zy_s2qUDC6cE(K89s;xkM(70ubrG91@8~Ws*sJE{((` z(is4UOy*Bx1!_GcR!hNYyGq#Z6qfd{SQbYIiXn|IM5BqB?tmbL2GZyi8ZDX=OhX5X zrAoC)HkIdnv|Lc9j0I(UokoS8%r8s%5&H}#gF@spn7(WxokxY^2B=IviOr)>`2ds6 z=3=I>vi~P%1lSpZsX6|qS*DNR4m52)v_33+7#>g!PmB&8jnN&oKOhjuN&(k5#CU(` zyVZ)YbuLZy&#T)Gw_quABkwz|CLOzhk+@sTa-9=e>0i3wy!J8MF{}bQp}3i%MrOT6 zV0}Y*xXL7ZVY!R@OhE~B$Emjb^sy>IjQr1*?wYY~{djBl;-6i)-v+cu?A-cWnPaW5 zZjAl2?N{3`{2Sy89f4&3?T2(a=wxA4kch>{AorH~|Dim@Pihb!A($?SC4TmVUKi(RJm@)T3_xpjT$%#)_^~#}jX@tY(<) z@(j3$KeAoM>CUPA)U7S&MZ^xz+S|MO(tMBH^hBL)Ny4Qxn%B-vOFTm9n!COTy>{ME z>?w2m+N)b%0L2qn_ZJ1Z8Fk1)sf$;F&}Cn^RVX>|)A@MsyukXq(&v)Jcdj<}U1|EUo=Okj(D4>KR+o6Gr+Z10KwS!X2a{z#)CkU$z#|xl~VU2y~jE?@scj zyKA)C`Imx~W6h!GWWP3R&$_!-w3H5-r!8B1{hPgKvX0pbJGNIep!ex+`a%y^8w)bL z$2&V)qR)rh9Eeic;v1}IW}7ct!70q|Tvi@55Ws$xwSAvq{S*0~r*q7fhYlI_+wd>r z9ZDDAszsF@rHqmTiC!6_mefl8@({de_sSuE74D*;*z4uhTf=#avTXYY-vp;s*`?EG zW(M3q-tt88E@e9mlFe{+D5On@t;MYE3XmZRxB#6xH`=)J^5FhM!{?A|nl|_d3vU;^ z{-v>T07Mv)x39ojgQ*ENj{~ksoW)rut*sN<`>{=i-$Bs>0T_@ix$-Gdqwt?U65u@}s*n0+n(?;4kFX(y|x52Nvo_mPHW@C?RZPnh^QW_U4QP25y+8r2$ZvFg!K3iSkM=fW3H7Zx4B=`2f9W`-A? zK^DKfdHKhms$b1cl6<>!-}+N?{|H+$KHN1tcx`v6dfNqn(e$pV$f8C2`bk96)|#G2 zDfm-PJgh~F6q}#IO3eUXouBuzBSTQ}TgB=AS`Yj{XV`|3?~TCHYf z8!Ged?!HBo(UAdSo3>=+FG&)Nc*0|JMo(*BrdhpP>q!4#A?|7NOH`KM_j$$K{duLS z2Sa%a%l3R0_H0Xar`2pANtv9(tKP%)n;%K#FmtRkw?);}Mls%PQn#D!>$%nuM_>^> zJFdS?ckPw$30r49dTi!KS^k^Db~7BM?P*usr%d$kS~Zih4GEzLZ$w>bjW8c|tX5WO}#8jBCN%+r7A_YJRSL+|k5PsqAi zIj;O&@!|2v-{qT}>3+L%x)$euBC$7O6}gM@4lh{wwY|r{XQh?hJzsX%_s)qL4_M+_ zFAC*cjD?Du?8fHRG?b8&Z*P1Xe2Q8i0J?Mzj|KGH#6IUkhuq$l;I1@ZvfFz>M7{U$ p^tx9@Y|@dhay9Y2Cm+6Zh(Op0CtB{PJtqGQ1iUreGIm7Le*oNdZ#@72 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackRt_1_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackRt_1_sm.png deleted file mode 100644 index 573773b03f120609815c675fb2cece9a39efd326..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2992 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 i@OMixN; diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackRt_2_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackRt_2_sm.png deleted file mode 100644 index 6bc4d227dce5f1020902a6832a221ad5de45ab40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2656 zcmbVOc{o&iA0O$#6-6RNnWn33V>UBpCKI!%iP0F-Sc+!F$SikeFjCo~E>f4s%~n|w zl2k+~bwvshl{VFsCM9l`Hm=^I()<3=bN_hHbI$o~-_Pf}KhN)XhSxen{iXUK5Xg|W zp27si)ia--4)9Ma@pe;<;4T@nQa&Z{8dD`jR5&( zlpmb|CQIc)Fxn9X<--vOFb3m@a6)4+2nR3{jzGfTz>9$*obYH29_bAJ{y+e2azQYj zNpb(K3s?~#p-QC;4}(QTML9;H9HsIQ7y^gG&2S)*P(T8zh?Xe1DyT%Ua+ZN2RPf~@ znNlQ`fM*!FJZXfI00Auh=7Ly8r~e?9D82^@2pLSpmBA2>aF|#;Kkq1On%dB2tkkILe8Pp;F+;S&pA!;baU2Nu^NX&O|Z-L3P5q1HnTA zP$bpe34_JXVrdeEk}Kg0XZ4Bzz2C8vf5qa-av@hKm9wPM@YxDrgi4iCMW|E;Ci|el zbS_^cnOV=I=bN__pqwa%+j}#S<+4|IZ)r*idmi&2vNx+* z#S&dJGd7hDxw5NE*xnS|f^z{eB3=eYvnn@#vQhJ)qq8>mZ0KEg=Xa6J%`qi2`P1+_p-2Y^ot#;E~%^0_P0b-zCbnnqtaey?Q<+M5z zJNdGu!Fkz|-ox#yXaT8d#p>-|6|e!F&`Ryr+-Xzn(G48Uol;ngjQt$n+5YE+Ws8ZB zcex(%ylzY5u=N-py9skI=jW$Jt&+w-S-acK>UteF_cOo95|*48jtdP&YS~cJ7YaPA zhF|8~v}x{N%%dlqj!{0+D=8?5#5Tg)-NtI#KG}O!#*W|k+?!xDZKqF+NRB_qKOpvJ z8QI>jSh0^+C5BH`)j}G>JC{z~WSn>&NTd0U{w|8|8TMu}i-ee{0>+t21-l~*dIWc;w2ZuL zB+XFvj@KSle#$5h?GSby+E7#y+*UuqJ~%(c&#ev1I(_KK==uxk-PlKEv2`VJbAL75 z9ri{BE)4I;d1Kg_F^70;H{Q>}{IS{ueI=nz9bRpBe&Ea--~K4xFgvhxi-QBzz%((* zuRXqR9?0VAG3`r7;+u|N94}jAbotAx>lR*K7WPZ&hfiHG>Dnp~`fosgtk~6MFB^3n zR&h7cK8CFRNFw972CEhX+|0^rfhQlZ`}|bB*0nh3NztxnT|rN*rY?fbI%_{(&0JXN zb1!7x+<@4n@c38NIhR_lHzOPuS5z4lrq@ejotG=E&sl(ub5>ZnQLl*1C;wS*MX0_z zB5?~W@Ys2j?i$m73CdTGnq?LeoI46q##@zLM%I4|vURkNm}WKV8R?g{RwP^KUwid= z#iU`C!n7%TXr0zwD}N7W-RiQN6DRDePv~-<^iAK(ZEe2RVdknCH;D1hPE5>Ns!b+` z%?oooBOuzS2np&l<iOcsV}Ov;wG*pJ+5XSGU<|5vwa!GgiG|oMN@aS zrlnQ{WDeCv+iqvK7`M+K3}V@4JoBhFwOnC!n@+yd9T0bYPXecP&C2)5Nrn;k#!0@P z+?tMQ4J2($yjqkm`S^B0?GC-FLD8*uzPX+aO@~T$K{wc&`g?BMsE`fObAH1b?dQCX z92QW@KPle{buFIg9$SkHLe|Os6Dhtr|-=P z&Cx@Q>~p4x^e%Jy?p}-Ov5EQXwmh&(fzI)bz~#A=C)*#{Xusg`8N<1w6B1He&8RMR{5o=>vYH6QX=2J ze?h;DRhwPsbma^$w#=lnPMW>r99e5_yklc_Pg|D60Zn>94L|F8U|WpK>D$@mryf0| zPmo6rLR*PGI3=CJS;V*+lsUwyxpONnFROK8ajofJ@AJJ>Rtr^yh&JG+MJo)mJ8?@e zzrGZjr5@@%Bi~`skWvf{{lX~gf1tUE{=}Ge@^{UGJ}ul}Gi}NBYW&-3y59P9VB=cC xo)-f{3wj$!HVxyiRr}K&toJ|V|6?`B02E>HkhG}9VdlyRqEWplRU}Tre*i47Y#;yt diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackRt_3_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/BackRt_3_sm.png deleted file mode 100644 index 86754b8584cb1b672e1a0c50c04633839c53209e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2206 zcmbVOX;c&E8ji9^S*{yy2sK0m6ihPNNK%55O(TmWEagxtgk(s9BomSV5z!-}qQsqx zATCuD0cDZO5=%vt3RM(D!y-+~qAZOpE>}Rxl{-=J-XEU+xN~Oa``&Nf=Xv*Y=1_qD zCL2pTO9TR8!`aN_!K;h$u`q|UN)X$eHfTU=?Q3tJ-%3(AD;kiLA=L@!jDr6KWlE`SN(dyeMq(n$V zeM|Ji`pFrfSh6`u0R|@d2MLn43n)U=1}~(inhFz0K@}gVmd47IR5cCtk(UbZjmH=i z@}r7sI}P>8sZhTFBm+`_NFo})UVsGvB#DFu2t*PIa7W^>01ktNZ_;{zKqZo>I1l8^ zg@Uaqgwa$UlRaY#mS`xkN+qXaFo}tY=tMjkQiw1Bg+eiM;Bf0IXk41mUBq*7yCAGMV# z9{683zNoDX+93xqJWvV6D+F*oqF2v?;oSYbA)_Mf4RxzR0vClJ%Y+2+Qc$MiFli|G z3tA`!qS;cEQN^o#(H=&0DwiH z-~cw02r#i8WD*01W6xqaGNpTY9~M3j4=95tMgfn8!EhOkK$tdh znBGC^&Y^4{ad`0ZhTF=~b0X&qvLN5_kd5@GL3(m*xGn1h%2pK|#wb5H-#zclsj5V&Hm7eAM!h@2i;%S%Qfn~_zT9?etIr8`=NO>6jIM6D}WwphKY zJ<#AJbNSuBucT`2@`-|ms9&;7lwhlS z89c{gIKAwvv_I`NgTv#e=r@a+28VdMEiEoq)?|+-d$Zn z5xa-q*mk$?tXnI0Uurv7do2&)Rv#L8m=KbVf8g-&-L8|5D+S$VkM}LLr7j(7!&_*Q z8NZ6+3iWYhlkP*&<|Bvk3E1}OXXk}6&3yqUOBVW z@-X*7JaO%-9UAo1Z!zpFm{K-$=UUFco|1iTr&2quTm1e7|EM6Zz2wH=jr-f4DR#JJ zYV3kW7{j zqIxe+vBtX4J$c=MnCSXIOr+(4km}B?d3#Q1@q|;OJ1pl+_coQ&VhkavRXN9HZ43Fe z<*eYLMr~!SStcTco;IP;+>;!uCkk$G+UoyEO2&Q@r#@=HlbWf|NEo^0CYc}1t^QXIuebyEY=BWr?cHv+ z_NJ4q-t~fAt&^=)-ILOI;y>27NZV346KUZ1bI{Zwu-MBiV=me>AUI6!cxjQIJg=Z} z_rVT@B!n>db8~)Eo9@G+Z!@ClKwNc8Ws%-&gXcFDc2jR6oy)39d{;>7Lri`E@>?u* zVeI5g%G?OE6EOpx@A}H~w-s}OE1w-{?;wP44Evz%Jzs;#?EEg(%|^HG!qq)jvvH2( z2dvFLIBd#vL;1Bo(B_7f_(OW@j#J$sJvH}}HvMzs O9|MQw&n%%w?)?uL&YMC2 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/Background_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/Background_sm.png deleted file mode 100644 index 6cdd71f06e94de642dcdc7f274452a1eec0c5959..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15477 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±rzRy9>*O-s?E z=m=D9`HCWnA!t*vzeitBAtJR?Ht-A-7#jf=XQf8G4^jjBs(LNx_J_0J5^1crh-DqOEUf+@g-@PYA271#EP#)yIKcRqw8*8w4)j>7jmkNRQb_Q{A zihZJ~jV_aLZc0|OPyGn~Ttis;Oyn>(3X)jnXr}px+@!DurK5JFz|IJZ03DyW#*chDEq+EPdSF+gF_NV*IaPLl%%tQ6t|@&2 zz30wVinugo4}NzZGTJjqKaVkAj=(}>5i8!oD?IoWqX!rg6<(~#yr-a19=|C{o2F)9 z7idH=mNsE22VmelRE|H?XY^5AZcpFwhPp=+fTVbcT{4qsnv|T^0*6n%;YqKqbk^kE zeL82z?=wNX^|EmrKPh)R1~a%wTI|D+Ti23rc-e6|zMa#UN(dcr%zh(`GXbUA{$wKT1Tse5XCCL^m4MgYqLv>l3)>$P6`R2Y1~Y#) z-osKK1|Bb84yCBU9yLK??+n-Sg%Az(KHKa;D10XC(06R*a_LlZ?JhQN&cezM0kn3E zuKOX(PiEg|dG0yQ!z>Z057}K%o7QHo@rL5aF3Er#IG1=aCGeAOilbw2vU} zSsMNZG97ivth209^gHYlKWLH2QdwCJZdG(-1=&Pm*kbx6fnn>Z$IYO#Gl9z9$1?tl z-wpVRmnBO}Yhkc)j3-Gs%rBUv0#$1Kwe9N3)mDY)mtTodgA@(NGOP~M{b}oFPItpk zJ@KGCeROp8>2>Lb+OIoLc%C1a3{l)W$C^Pe zmgPbm->%+wQ5(FmrDZQ*^&aII;@s_VFigoD^Xx95Q}h>DYpGtve`}`ZL9acBh#z}M zpz($jUi2|%^1Y%c)qQz=eN2WF%=O*ROYhw5W)%dVUHbS zJa>*%!KLm{hI`oB=z0l`^{Gfm)Q-pheNj-(Yn8JFpA^vD@Ej#CA}H$~j28W@;-2D@ z^p&{adJ5RDQ{fj4c@GiPFs zO>sC4HD9edolmwXtx&gZ;tMTL-Kj&R{OuVAS9d>T*Zb%E`f^)AkSXr@otia5lqJY( z{loJ_y2qIoDfSATMd#C-PH z48LJZ{v%M^<~?Q7cR#mzdIoHoIF3}yjcKMn@YkfQJZ#;2G(VpSlxP$ae;S}Jw~hx^ z7mT$r7T=o8wmRMUu*6rlRaa-!xLr5ylszSujTFZQip*YSRqTgxs_XJ8upf<+hj4jM zBQ%nvZmwgUeHSZmBVQL2!rrT>oTg8ZzVMS?lRuAAuD7Y`LwZd)++xv#&u6^ zU@X9YLYv;mip)Bc$SjKx^C#BTdveQ#@G5|p-K@223y+o}m}XCevSC!aLTA(OBiKPn zOGcC@y)MPKlDGVU!$E`VG(Ywu8Fj5vG|cUNaSvVguQIUxb9Gb$x_3HZ8HcbT!x?x> zKS_{0&sW6gbmZah3+0AJDvwl@JGm(}C3Qv%@t@kq z6S>LD#L1f-#uqL_)fmaX($*srxPeY3L7W#F`scRstceY}95wRQHqc{yoiO3~@}mT0 zVxxH~Vvft_olDB;0$`L{qB;qjN7HRN&XUnFeThq*rqoi{0OWXPjl_sqoQ=ArVcE06 z3DYg=K({DuVwY;}EZH^L=!GP?Mw^Pcl(a#iP5bC7I(W8j4_ZF^!wyckBGNAZ& zPwmb5FUJ`QC1#J)$y?PGMA8q)9CzX62DPF>iamyfs#ITT)mNNHwgj!?y^|1?&am32 zbl*$`7Z#Oq2SRfge+!99Rw3SaPUd}wajcbPVl22Il`4X>jE?J0m=p4fYDh_rvXaOoP`i8wf#1&7-UC)Twb zm3u8Ep~ke5D~Po=W<`HYL1lK@{?08i_D6ROt2y@N?(<tGB;GTBwfCZ?dNry&D!7__ zsW=`77Obpe__{rOn${J7l-AXM4>{=!XwRZS(i!#aGT%&V>yQn?apF)qu=ZaK^b9Ho z{zYtGpfY}jOU}d;7PrAMPOE(mQf)lfnhP%q>3m@G^jc*xJaj$&`@#EghUG04d8i_l zA7MO&7<$lEC{;HshD5}>;0yUziVR@AE}z6bGV zIAK?O-h;73q2JCZ`55A56jPr4kLOSPFEPiR&o6U-X0hhEOhOBZ(cV= zc-l{m_%FlRlm~a2C=>|>b|?A@?c(d(V^r|c)6+dPW|ArMYFbZC`H{r7*5Gf zBnZWp?Co6mU=IrW*7%XJ@OxmmEIyp{iMix{ge`pd9oqW%jH1@GMm!0Wy=y{w1Zu|W~<*QG&%BRT>1ZJXM^MV3i8oPo{9X_NM z+mkY2aXikx=Gr`Bo_9H7`zm_&z13e`-rQtwUr2u&HLqu$Qz8XsT*`|0y5k`AZbytqo>~TbR1AB~4$2V{fgIszL@vp5SZESEmawYu!!4LXbvv2=B?=P^ z2vrmMSn_$YS%BX;g}H@Iu#^HN6 zr|p*QZP;$LVJEozaA9>)Q~3AnG~}(v5%a-fl8UIr=aFqu?R`Q?)zXU`qw?bw$%^Dg zaH@uH{NYS=|7!|#U_l6Ge(V|-ZDP}@9~1HJZVhM6SHo`{ZfIDGZ;(#eG`PFFI~#X*_u%dj+}+*XJ-EATa0wn99^X0l+;@N6^?tlr zGt*NwWnEp}J*#^v93&@>2oHb<0|P^pln_z;ER{d6N;sI$`$2hR(`SL>EUNCTWM}H^ zYT#%BCTMJDXhJAyV_;^YXkuXO?l5Y?0|o|ZYN4#|tS&3VWn^bVXYdaVotusQCpQ=v z55JqefsvJoGohi0nT0Jc@nuI3F`b{EQ74Qu!*^agomSvl82nKk%yHLr!g@< zA0dw$*QWp*6K4ZLHydkPCoVT$;(y8I`h5NeO;1etFA`@fUgCcnr7jC16t;6TA!Mav zrZr+mZdU{t^S2|Z_Iy*-*dPYu8&VOVuG0}cf&^o!>Ivcpr+B$vzj|34DCnHA- zduIzfTf%=N8W`HSIP(&JTKexQ*x1X;{348bBS^YiE;=ture@-iHI^YGIEMB3yLx^GcdCVvx$l@F#Siy|HdmM z$jUCp_Q}h^%Erhj$|A%pB*@7m$jTtf%*4dZCh{L%Nn0mp16w1L|LC>&)caq&EdNhl zE@4L#17|x&Wjj0T|3m=D+|Jp~$=uGKP*{nTj*(E!!q(W%)#;z+`FCwaOdKtKm>7#W z+Sw5P%fDO}|BHS`RzY?KW>F>jvo!0)7Rfe?ej_7 z9S4Tgf7dTYU1U)=O61S_?i69QNB6YrQKLr~-Y!wYtDSfMsEkdcGn*@zHyZFx^I~J> zWt>SE$7&Gn#~R;!oq7Nb`aJc3c$bOG<9qtJs$T!J=$3z- zXQ&|${w=C>`hF1uB)m+NF-@6fcx{t#55fJ>bOGaEWoy)I|^wqvAo~(MOD6eL3=%>Mfe*+Tc{JCJ$w21(C5M*Yc^rpdMD5x7DYkyj_iXsV_xB2vLzoO4(z@!o4nz@b`>eKOd^bWPY@|pu!5LDdd<8<0l+4Pu)U8b`O-tt$N zi3?7cMF~RTn8bpCG$A&$_4)FxAcHXOSzS-+tb`N^PIME@4wqa-#c ztZZ|P5!U>Jcra(6;Ph(ip}XSjYL`~e>n5E1Z#K8*9{+C6C<^Q=szRxVZ1$$Z3-{&I zuPnQsix6W_Z`u42Ap(){Ew*#hFK|wv)LjlZrg{7U*)~F_y1|&FlCI{>LI9p~@xrMq zwExeVI1UgxB7Yz?5L}eLfB%sK$m#gCS+^Nqb6wN-?7e2Y<$c@d>M@4|5YNwOa!n7G zo2LC^>LKjH!_&j(VEND6jN0}~c85^Gcj2pLf_IM2gNsXl7hL+lAveE+9DnJ$QXEkt z#cagN()#9FiTOkVvg)sdXB36JI~n>jt}?>0{8Q+WHKB%4C`cApr@I4JY4X1C@6UGc z0KO|vf=(Y6*1va<58fva9qsMiHy&$yV_rQRtV!8UI>%=^O;(ptz7HwB*LgDt)BLb4 z8(z#ZN6sttHn>477zY{C5crhv3IYnFe&rEu5=0en2%|!pd|vY`xv|g6x11j$3n#q! zQj2^r5y%F<_}lCt4gbABypC!pUkaFI9arA-kL$=Qy^qrxVy$NF_fZ*B4|&3!P(R

    Pn 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 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontCtr_1_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontCtr_1_sm.png deleted file mode 100644 index 44ba2a59f61085446dbc5587e08c9aaa828125c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5440 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 vQ2XrCE_1JRUawSiVr!EZ~0tA&K`n diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontCtr_2_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontCtr_2_sm.png deleted file mode 100644 index 134e1e469088b83af78ebcc09528cfbc9f082116..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4678 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 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontCtr_3_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontCtr_3_sm.png deleted file mode 100644 index 5dec17227799f6ed104fe968425d82240abcfea0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3785 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 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontLt_2_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontLt_2_sm.png deleted file mode 100644 index 2b690543d47ebb5e3870255172e3b03bbe4871d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2996 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 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontRt_1_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontRt_1_sm.png deleted file mode 100644 index 95e8f2804f2a35d37e40325550c9745335fa4647..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3384 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 HSHyn+yJp98 diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontRt_2_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontRt_2_sm.png deleted file mode 100644 index 6ee228056e97b67975304a6cb8f083357e165337..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3036 zcmbVOXH*mE8jhj}3Zh66ktK!$NQ4wZsuY1F(z}2ZB_sm`AqgoGK+1yXN)bh*NUU^3 zK&nz!!4;)QU&|7jz=9wmO=+t)sO-Hz_Uw;4XJ)?d{pNk1x1Tc?>}-xoZ{N2a1OiE$ zn-LvEtETADkPsKWkA985BwCcXBv-B@(}x>OVFMsz8q*s9n+H;S0SACW3khll^g$po zAG(t(*VWpJKxGEPDC;^fejrPP27&aA_$&(b6uI0c5835d=)989-dn)(C5s zDd0yp3uOb2p*Bv`&{I@A4Ps;n*5?yM1c3mT0_Fz>FgOIh0puGmL9|~#hC{&LRJf-M zAm5#GwYCGBGT8ta4MXWr5lAE$gMlIS&=?F-8?1{!>cSDC8>55NBcL$^T`c&=1rb?e z(|iaHMDhtqu?Yf8(i6pv z(ZiFGCM1*|8G|=5Awqs&Y5z~o;38+>>&@{$&9ZSM>cI8w->oka{vIBHA(|MrXf%>{ z$KC~jB&5uV#!mb{-lvBpcpOuC7CA0Fj0!%n8W6my3+q05XRBBad7rX&rCebF`k0CN z761ImU9xxO)uN-HP8eN#EfM#--GvITXyfG=S&YL$(vzyo>el&;z8oO94>sN2X6WPl zVM;LaSs0dws_pOpz&K@+fL$JI7aDwS8;^+WsI}4}?NLbutohd)&Ir4Gl)@&hf1NBk zbfYC~a;t4YydXC6k@L1pDHvW-aQ3N^dl`g!S_7A}m7#jM_ti{`FPuO3`Jz)^iTvm& ztNFt4nNH6%z0>gfOFI>-#e_E}4K? zJNx_?lzouH*n&o7ZX}Ho-T&%&0VxudURCJ7QhwWLe&U81JunejHFt$x9!_aoiiK^N z^uKD^OFNbA)>V}(}xR5co_-=A8#G60KPWGamPg}+_%7W9k#7PB-laoA4K@pPQ_mbUbwz#zhD zFi?7ojbV5iV3h@}{JM@@M;ZOj?zPdaau3_P=EC4IiSG>^Dh8kLt@v;*WftL4|NN<& zZEbp?=vAQWKn2TzK}Cs7~S4yIrtrPHc$m%R&{p2{yaPB$Vt-*9qAr=N$-xm+zn z=ddl`YJ?XU)-Q`k;cFzk)O%v3e1?=9_d~BmyGfb9Qn&h}Tliq{*^WQ!q(A%aOyZ|I z_qt0uPeTY{$FqO(Z1Is-p!J7nb42atjaI2nJxhrwHmvM<%qZ;cz$N~iu&HckG2`dT zroH{?Ht1;qc3dV?8D)e!p^#Y{xSYq=@#1AdSx%dD+Lhhj{zDc>61z0i{$WjV5c*(Rs^O;I>oMufSXl9q zN!K=r`1mFk4D_lOaADG0-s36pOfNS>dRb|anZo9+7j8GC+vt+2G@HHG4r%07X;E#` zD%z97hthnvy_}hV2}2If?Eh^`!fUTRpE9=7K)=v36npNqWb=4$;3ds&eP53$^x0+9 z9jW&Nf1K_7X~-kH7*l#6>lmheNh2sH#3m-a^kVY-q+0zld~IT3=w)P5+=!oVgB<&f zwEWhPe6M)%glB%H;h*lmOs5D;m@f)b@!FlZteiP&ir6ftqx(|0bIn-sT4E5>EK@VV#JKeCKxWwTWi41dC= z!OPnc>#JS^tCTZWgIJpnF0> zcIZKm;ol1Qt81E#l)if`kzU_2a z?$E{a4%BD4wjT0=0q&+ytGmPFpT_6h2M?`=EI5Tedf!t}W~wLS|cCdh^gN)m04DOLbA%7_s*GY_Nxq~L_SRpFIDS-x})riB;;565sP`DWBVN@m5K(VR&rHGcD+Bo zof_apM)PWrm@PNCSBXP=PRFKE4)P={BjR%4!)F$*eNB6p#bT{UsD3@adh_gR5=acR XZM%*$%aS&_{=aQbvLP0mct!sQndv{c diff --git a/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontRt_3_sm.png b/app/files/tweaks/config_org/transparent-parking-sensor/jci/nativegui/images/VerticalSensors/FrontRt_3_sm.png deleted file mode 100644 index 85ea1ff10a7f72282ba7c0ead9b1f14c54e1ee8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2524 zcmbVOc{o&iA0JslizQ1arYRwr&Fq$9mI#w;uPCz|W-yDH!H`#)SCR@*xZ1tU;IB5|GrjkW?cti;iL2}5ed7q4Alpa5c)h%1zE z1$^i{BZDc3kl4XMPrrx26S}$mB<72MBnnI!Ldp;#P;exI$D5Dqo3>cu0sPmEUuuiJ zqJ;p$0}u-$L@cl#L2DPlVDA3e(7Yn(4QZQ*3l@bDMiHiq!EY?pa)b87&i_>q@f(C))*R& z=;%m+{lK#SpPV5;XAtwv@juP7a0GVX{Pt(-gTl|@0r=p=h``an19|%(5S69Q6bCQq zqu0Oh~30YwaY@5SJ1fQPO|L7bC-$4 zf^Peg5^s~DswoG}SdOj^^>MP+{hr>U?4nlJ^o|_ji5pkuPPufs?sU6v@Y_ft_Ve8r zIbU=4mfh$f-9C)MWK6u4cXTyRAJ$v53C_864Kel1&~w794)P^^*jU>E zHsTGkz%o5ul-;SFTJjA4U@UxWlJy5In_x4OogPFW3^s0OTwcG%H>$WRiq09|_`Y_0 zZ{p3KwTy}jns)?SXfvXw52zri0HWVr~Ttw-zkorNlkTX!4e3JTPt0ffy+l25rVQ#vhZP3%I%s9<^j< zYRhaJQMaDBvXf2gR_oBB_|0Y0{+!|%c>sg%NColILM3Qdj%VR9q{FDYggID?S^3fE z66p!;XkTzrw{gd9Y*)(DTguUqi{b9Wsas$pf-t&zFqD3MFicQI1NhOF2BoXt8lhcDTHu{JE>o z{jH&t;jUh#SEB5?D_Q+c4!@!B^njqq!V!mBrNq^S>L0!;62m>=fqSAqPI5QAOJ5V% zs#`5LA4^NrgIZZl+3pxCdUU<(@8A<=y#=Q5O`#@}HJO>}YysF_nC*O6~qlU(gS{&Wq=d*0!YzSXXp4V4ixoCF=qGG&MM-=Sf z12MXKHd4t;UnfVS;RXMBrru55MJK;NhxQU&8Iq1Qe9-~3Hkc@uN5@_7!AQ;~7YE#J zgIC8pp>k8mxoC$r+nJh1wYW3mTw3QjHZ#EHs&&9o&)7ec5PToh>Y(o3neB@H*8WdY z{9XxHU&VJ`^^@zb?6-Y#&ZarWwom~-mt&C>F`^%L-lsyoJ>9)R7pHMudP;K6?V6ph zY2&g`L(_m~=C2kvyBy~QqBWz;sb9OMoekX4JI7orFL7yBbqO{FZg0)}h%dX9%l+Fm zzqB+Tj%!o?vTLX>HiC*eBX?SUQpMYgf+idHo*A-i`DQDZb3q>CalLaZ+hy zolNYQKT1|30lmD{#^;50{r*Gf$8);z2Ci8hjj=AJe)b6$t-SPbt5)QyGD%v>n3bO; z+IfSOH9e{A=Q_3N$q*m3GuNP_` zynAgp>0+4W+&29EH=$o=H~UM!q?T+p%X_NnZ==^YRMvW+uYKR1+E229uq#V+IZ^8m zT`wDR?I=W_8jPIY(s?`n9lCNqnpy(cx!p~7?uEWm@M(?ZFBD^54w>gFK~G1^>B!TUmY1t@-o5@{ zIIR_i4-53keVe6UUH$}rs*qQo3dN5y^E(XeE`;_!{9LGgXP5c=HN%Qt-65@gvKmNq zxbSe~(p3G6Y&@BfxL3vdhzaAbiu}p);Ni%Dy@2qOM(QD<{s8>e*WLZI+JTVen6g!t S3~c%Q|CTeAPAPW`l>G-OjU|-; diff --git a/app/files/tweaks/config_org/v70/profile.org b/app/files/tweaks/config_org/v70/profile.org new file mode 100644 index 0000000..6533560 --- /dev/null +++ b/app/files/tweaks/config_org/v70/profile.org @@ -0,0 +1,24 @@ +alias ll='ls -l' +alias la='ll -a' + +export PATH='/sbin:/usr/sbin:/bin:/usr/bin:/jci/bin/:/resources/dev/bin:/resources/dev/sbin:/data_persist/dev/bin:/data_persist/dev/sbin:/resources/dev/usr/bin' + +#export DBus environment variables for the session +. dbus envset jci + +export V4LCAPTURE_DBUS_ADDRESS=$JCI_HMI_BUS + +# required for Wayland +export XDG_RUNTIME_DIR=/tmp +export WAYLAND_IVI_SURFACE_ID=2 #to set Browser's ID equal to UIA_System_ID (this has to be done before starting SM) + +# required for Wayland +OPERA_ROOT="/jci/opera" +export FREETYPE_FONT_SET=YES +export OPERA_DIR="${OPERA_ROOT}/opera_dir" +export OPERA_HOME="${OPERA_ROOT}/opera_home/" +export OPERA_FONTS="/jci/fonts/CHN" +export LD_LIBRARY_PATH="/jci/lib:${OPERA_ROOT}/3rdpartylibs/freetype:/usr/lib/imx-mm/audio-codec:/usr/lib/imx-mm/parser:/data_persist/dev/lib:${LD_LIBRARY_PATH}" + +# required for valgrind +export VALGRIND_LIB=/tmp/mnt/resources/dev/usr/lib/valgrind diff --git a/app/index.html b/app/index.html index 0c66ad9..2b61664 100644 --- a/app/index.html +++ b/app/index.html @@ -60,7 +60,7 @@

  • -
  • +
  • Update Available... Downloading Please Wait
  • + @@ -134,6 +136,7 @@ +
    +
    For instructions on how to generate tweak files:

    If you you hit an error
    or a hang up you can:

    Or you can:

    Love this app? Donating is a great way to show some love!:


    ", + "msg": "

    Help:

    \n
    For instructions on how to generate tweak files:

    If you encounter an error
    or a hang up you can:

    Or you can:

    Love this app? Donating is a great way to show some love!:


    ", "t2": "", "msg2": "" }], @@ -111,7 +111,7 @@ "msg": "This sidebar will list all the tweaks currently selected. Here will appear extra options and you can also click any item in this list for help information." }, { "id": 3, - "msg": "Additional actions such as backup jci folder & enable wifi for North American versions." + "msg": "Additional actions such as backup jci folder & enable WiFi for North American versions." }, { "id": 4, "msg": "These options can be restored to original state by selecting their default options." @@ -123,7 +123,7 @@ "msg": "When all your tweaks have been selected, click this button to compile and go!" }, { "id": 7, - "msg": "Copy the entire contents of the \"_copy_to_usb\" folder onto a blank, FAT32 format USB Flash Drive. Plug the drive into the car's usb port, the installer will start automatically after a few minutes. Remove any other USB devices but The NAV SD card should remain plugged into the car. Turning off bluetooth and wifi help as well. After the installation is complete the system will reboot, then you can remove the USB drive and your changes will be applied." + "msg": "Copy the entire contents of the \"_copy_to_usb\" folder onto a blank, FAT32 format USB Flash Drive. Plug the drive into the car's USB port, the installer will start automatically after a few minutes. Remove any other USB devices but The NAV SD card should remain plugged into the car. Turning off bluetooth and WiFi help as well. After the installation is complete the system will reboot, then you can remove the USB drive and your changes will be applied." }, { "id": 8, "msg": "For more information visit MazdaTweaks.com!" @@ -198,9 +198,9 @@ "mainOps": { "wifi": { "id": 0, - "label": "Enable WIFI", + "label": "Enable WiFi", "safetylvl": "safe", - "toolTip": "
    WIFI
    Enables WIFI for North America and Japan Regions" + "toolTip": "
    WiFi
    Enables WiFi for North America and Japan Regions" }, "backup": { "id": 1, @@ -249,7 +249,7 @@ "testlabel": "Test Backups", "skipconfirm": "Skip Confirmation", "safetylvl": "safe", - "toolTip": "
    Build \"run.sh\"

    Install tweaks using autorun. Changes the filename of \"tweaks.sh\" to \"run.sh\"
    NOTE: To use this you must have autorun script installed for this to work.

    Retrieve CMU Data

    Dump diagnostic files from the CMU to the USB Drive. Cleans out error files and core dumps from the system.

    Skip Confirmation

    Allows for the installation to run without prompting for confirmation to begin the install. Mainly this is used for recovering when the touchscreen is not responding.

    Copy Backups:

    Copy original backups of modified system files, for safe keeping.

    Test Backups:

    Some tweaks have before and after copies of the files modified during the installation. If you like that kind of thing they will be copied to your-usb/bakups/test/.

    Copy Backups:

    Copy original backups of modified system files, for safe keeping.

    Apps to Resources:

    Install app files to the \"resources\" partition instead of the Root Filesystem.

    " + "toolTip": "
    Build \"run.sh\"

    Install tweaks using autorun. Changes the filename of \"tweaks.sh\" to \"run.sh\"
    NOTE: To use this you must have autorun script installed for this to work.

    Retrieve CMU Data

    Dump diagnostic files from the CMU to the USB Drive. Cleans out error files and core dumps from the system.

    Skip Confirmation

    Allows for the installation to run without prompting for confirmation to begin the install. Mainly this is used for recovering when the touchscreen is not responding.

    Copy Backups:

    Copy original backups of modified system files, for safe keeping.

    Test Backups:

    Some tweaks have before and after copies of the files modified during the installation. If you like that kind of thing they will be copied to your-USB/bakups/test/.

    Apps to Resources:

    Install app files to the \"resources\" partition instead of the Root Filesystem.

    " }, "mainmenu": { "id": 8, diff --git a/app/lang/english.min.json b/app/lang/english.min.json deleted file mode 100644 index 07267f4..0000000 --- a/app/lang/english.min.json +++ /dev/null @@ -1 +0,0 @@ -{"languages":{"en":{"id":1,"lang":"English"},"de":{"id":2,"lang":"German"},"fr":{"id":3,"lang":"French"},"sp":{"id":4,"lang":"Spanish"},"pl":{"id":5,"lang":"Polish"},"trk":{"id":7,"lang":"Turkish"},"slv":{"id":8,"lang":"Slovak"},"hu":{"id":9,"lang":"Hungarian"}},"helpMsgs":[{"id":0,"title":"Introduction","msg":"An Installer and uninstaller for 40+ 'Tweaks' For the Mazda MZD Infotainment System \n Mazda 2 (DJ), Mazda 3 (BM), Mazda 6 (GJ), Mazda CX-3 (DK), Mazda CX-5 (KE), Mazda MX-5 Roadster (ND) and new 2017 Mazda CX-9 (TC)
    Fiat Spider, Toyota ScionA
    What Is MZD-AIO-TI?
    My good friend Siutsch copied files from many different tweaks for his infotainment system and thought, it would be helpful if you could choose what tweaks you wanted to install or uninstall. He went on to develop a CMD based program to accomplish this and it worked well but had reached certain limitations and lacked that modern app feel. I contacted Siutsch and proposed we make the next AIO desktop app style starting with the same tweaks from AIO v1.5.x that we all know and love. I went on to develop MZD-AIO-TI. \n\n##### I personallty tested all the tweaks in my 2016 Mazda3 FW:55.00.753A-NA\n\nCurrently this app is in a BETA TEST phase in its final stages of development. I ask for 2 things from anyone who participates in testing this app before its official release: \n\n1. Give some feedback and report any bugs or major issues. \n\n2. Be cautious and mindful to what you are doing to your system while installing or unistalling tweaks. I can offer no warranty but I did include every safety precaution I know about.\n\n###### **So please, be mindful when preforming tweak installs.** \n\nThis app will automatically update.","t2":"","msg2":""},{"id":1,"title":"Tweaking","msg":"

    All changes happen at your own risk!

    \n Please understand that you can damage or brick your infotainment system running these tweaks! \n Anyone who is unsure should leave it alone, ask someone with experience to help or ask in the forum.
    I am not responsible for damages that may incur from the use.
    Having said that, MZD-AIO-TI was built with Safety in mind so there are 3 compatibility levels: \n\n - All - Compatible with all known firmware versions \n - Under58 - Only compatible with firmware versions less then 58 (ie. 55 & 56). If the compatibility is more specific than that it will be noted. \n - Development - These are tweaks that are still under development, or do not work yet. Android Auto is getting bumped up to yellow very soon, maybe even green.","t2":"Compatible Firmware Versions:","msg2":"###### 55.00.650A/753A/760A / 56.00.521A-NA(NA N) \n\n###### 56.00.100A/230A/240B/511A/512A/513C/514A-ADR(4A N) \n\n###### 56.00.100A/230A/511A/512A/513A/513B/513C-EU \n\n###### 56.00.401A/403A-JP | 56.00.100A-CHN \n\n###### 58.00.250A-NA(NA N) / 58.00.251A-ADR(4A N) \n\n59.00.326A/330A/342A/442A/443C-ADR(4A N) \n\n###### 59.00.330A/441A/443A-NA \n\n###### 59.00.330A/331A/443C/447A/449A-EU \n\n###### Only use with FirmWare Versions >= v55. DO NOT USE with V30/31/33 OR YOU WILL BRICK YOUR SYSTEM IT WILL FOREVER STAY LOOPING THE MAZDA BOOT LOGO! \n\nTo Be Safe, For now AIO-TI Will Automatically Abort The Installation If No Compadible Firmware Version Is Found. \n\nTo overide this you have to be comfortable editing tweaks.sh directly, find the code that preforms the firmware check and disable or ad your version to the list of Compatible firmwares. **Do This At Your Own Risk!**"},{"id":2,"title":"Reverting","msg":"**Almost all the tweaks** can be uninstalled to revert to the system default state.
    Default Background:

    \n\n - AIO creates backups of all the files that it modifies and uses those backups when reverting. AIO also contains an original version of each file just in case any of the backup files are missing. In future versions I plan to include an option to copy and store your own system's backup files into AIO as a failsafe to ensure compatability for future CMD versions.\n - In general, for all Compatible CMD versions it is safe to run uninstalls of tweaks that have not been installed BUT keep in mind that AIO will overwrite the files involved with the included failsafe backups because it will not find any available backups in the system. So try to avoid running uninstallers for tweaks that you have not installed.","t2":"What Parts Of The System Are Not Reverted By AIO?","msg2":"

    MZD-AIO-TI modifies some files in the system that cannot be reverted back using this app.

    \n\nThese first 3 files honestly should never be reverted because a mistake in one of these files will result in a unrecoverable bootloop. They are only modified to disable the system from triggering a reboot on error and consequently creating a bootloop, so reverting them would put your system at a high risk. **Only the first time** the installer runs on your system they are backed up and modified.\n\n**DO NOT MODIFY ANY OF THESE FILES YOURSELF, YOU WILL BREAK YOUR SYSTEM IF YOU DO**\n\n- /jci/sm/sm.conf (Also modified by the Android Auto Tweak)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### These 2 tweaks have no uninstall because the system should have had these enabled by default.\n\n- Wifi (NA Region)\n- SSH_Bringback"},{"id":3,"title":"Troubleshooting","msg":"Here are some common errors with ways to avoid them. \n#### If you keep hitting errors and/or hang ups:\n - The most common issue is a file system access error: resource busy or locked. This occurs when a file or directory cannot be modified becasue it is open or being used by another program. While compiling, close all folders and documents especially files that are actively being used by MZD-AIO-TI (*ex: '_copy_to_usb'*)\n - Try selecting fewer tweaks at a time, picking too many increases the chaces for an unexpected error. I have tested running every single tweak at once many times, if you are consistantly hitting an error please report the bug. \n - If the installer does not start in the car try reformatting your USB drive as FAT32 and make sure all other USB devices are disconnected. It helps to turn bluetooth off too. NAV SD card should be left in.","t2":"If you are having Video Player Issues","msg2":" Try:\n\n- Place your videos in a folder named 'Movies'! \n\n- Use H264 video codec and MPEG-4 AAC audio codec in video files\n\n- Unplug all other USB drives, especially one, with many MP3s on it \n\n- Copy only one mp3 on your video USB drive \n\n- Copy only a few videos on your stick (you don't have to delete, rename to *._mp4 is OK too, so that they will not found anymore) \n\n- Reboot your system and try to play a video right after that \n\n- Close the player and start again \n\n- If that doesn't work, then change the audio input.\n\n- Sometimes the first video selected lags or fails to start but pressing 'next' will sometimes start the next video.\n\n- Videos can be: MP4, AVI, FLV, WMV"},{"id":4,"title":"Contributing","msg":"Though I did build this user interface, the more valuable aspects of this project are the tweak files. Communities like Mazda3Revolution Forum out there and many developers laid down the groundwork from which this app is built and will continue to play an important role in future developments.\n\nIf you want to contributes a tweak, make sure you test your tweak thouroughly.

    If you are an expert in javascript or AngularJS then feel free to fix up my code (its a little bit messy... sorry) or implement more of the ui 'The Angular Way'

    This Project Is Copyleft Under The GPLv3.0 License

    Github Repo","t2":"Issues","msg2":"- FW Versions 59.xx.xxx apps do not show up in the app menu (Speedometer and Video Player) also have an issue with the date to statusbar mod (rejects on installation for effecgted FW versions.) \n- If there is not enough space free on the USB drive, you will hang up while copying to USB drive. This may happen if you are copying the swapfile on a drive that is almost full. I plan to fix this in a future version and have an error message pop up. \n- If you installed the 'No Background Behind Buttons' tweak and are going to install a color scheme, it will restore the background behind buttons. Prevent this by selecting both tweaks in the same installation.\n- The Google Translator will try to translate certain parts of the code resulting in unexpected effects. Try to use it to make a translated file with the translator to include in the next version so everything will still work when others use the language."},{"id":5,"title":"Tips & Tricks","msg":"I will include some tips that go above and beyond this app.
    Here are instructions how to run the CMU OS on yor computer.","t2":"Technical Talk","msg2":"This app is built with Electron and AngularJS"},{"id":6,"title":"Help & Settings","msg":"

    Help:

    \n
    For instructions on how to generate tweak files:

    If you you hit an error
    or a hang up you can:

    Or you can:

    Love this app? Donating is a great way to show some love!:


    ","t2":"","msg2":""}],"FAQs":{"title":"FAQ","msg":"Frequently Asked Questions: ","q1":"Is AIO compatible with my FW version?","a1":"All compatible FW versions are listed in the 'Tweaking > Compatible Firmware Versions' section to the left in this help panel. MZD-AIO-TI will read out your FW version at beginning of installation and show if it’s not compatible (or not yet tested) and you will abort the installation at this point, for Safety.","q2":"How long does it take till the installation starts?","a2":"Tipically installation will start whithin 30 seconds to 2 minutes but it can take up to 10 minutes to begin.","q3":"If something goes wrong, how can I help you to help me?","a3":"During installation/uninstallation, a log file is created (AIO log.txt & MZD-AIO-TI info.txt) and some additional files will be copied on the USB drive. Please make a ZIP file of them (complete root of USB drive) and send that to me or upload it somewhere (e.g. google drive or so) and send me the link. Or you can download this tweak that will copy some files from your MZD system to the USB drive and send those.","q4":"Do I have to uninstall a tweak with AIO 1.x before installing it again?","a4":"No, You can install every tweak with AIO, you never have to uninstall before. MZD-AIO-TI 2.x use the same tweaks AIO 1.x and compatability was taken into consideration.","q5":"How long does the installation/uninstallation take?","a5":"Up to 10 minutes if every tweak has been selected (especially custom colors and speedcam-patch). Preforming a backup of your JCI folder can also take up to 10 minutes by itself so with everything up to 20 minutes.","q6":"What if I want to revert my system but I forgot the tweaks I've installed?","a6":"Uninstalling tweaks is safe in general, if the uninstaller dosn't find a backup, it will copy the original files from USB drive over your original files of your MZD system BUT: YOU SHOULD NOT DO THIS FOR NEW AND UNKNOWN FW VERSIONS! See: 'Reverting' section of this help panel.","q7":"I want to change the order of the audio sources?","a7":"Edit: /jci/gui/apps/system/js/systemApp.js on lines 624 - 637

    * Be careful, the last line must not end with a comma, or you run in to boot loop! *
    I am working on modifying the tweak to give the option to make your own order without manually modifying any files.","q8":"Can I install AIO from an SD card?","a8":"No. SD card slot in the car is ONLY for satnav maps. You need to use USB port in the car, so either USB stick or USB-SD card reader with your card in it.","q9":"How do I a reboot the MZD system? ","a9":"Press NAV+MUTE for 10 seconds.","q10":"Can you write this or that tweak for us?","a10":"I have improved on many of the existing tweaks and tweaks.sh as a whole but I do have a job and Developing the GUI for this app is a pretty hefty task. That being said, I do have ideas for future tweaks and I will take suggestions but no promises. You can contact me with the contact form on the bottom right of the app."},"tourMsgs":[{"id":0,"msg":"

    Welcome to MZD-AIO-TI!


    Mazda All In One Tweaks Installer

    An Installer And Uninstaller for 40+ 'Tweaks' For the Mazda MZD Infotainment System."},{"id":1,"msg":"These are the main Tweaks. You can choose to install or uninstall for each."},{"id":2,"msg":"This sidebar will list all the tweaks currently selected. Here will appear extra options and you can also click any item in this list for help information."},{"id":3,"msg":"Additional actions such as backup jci folder & enable wifi for North American versions."},{"id":4,"msg":"These options can be restored to original state by selecting their default options."},{"id":5,"msg":"The menus have more help topics and links to resources and documentation."},{"id":6,"msg":"When all your tweaks have been selected, click this button to compile and go!"},{"id":7,"msg":"Copy the entire contents of the \"_copy_to_usb\" folder onto a blank, FAT32 format USB Flash Drive. Plug the drive into the car's usb port, the installer will start automatically after a few minutes. Remove any other USB devices but The NAV SD card should remain plugged into the car. Turning off bluetooth and wifi help as well. After the installation is complete the system will reboot, then you can remove the USB drive and your changes will be applied."},{"id":8,"msg":"For more information visit MazdaTweaks.com!"}],"popupMsgs":[{"id":0,"msg":"Compiling... Please Wait..."},{"id":1,"msg":"Location of Tweak Files"},{"id":2,"msg":"(For best results, erase USB drive prior to copying)"},{"id":3,"msg":"Copy to USB Drive"},{"id":4,"msg":"Not Yet"},{"id":5,"msg":"Open USB Drive"},{"id":6,"msg":"USB drives Found"},{"id":7,"msg":"Do you want to copy files to USB drive"},{"id":8,"msg":"Choose a USB drive to copy files onto"},{"id":9,"msg":"No available USB drives found. Copy the entire contents of"},{"id":10,"msg":"onto a blank, FAT32 formatted USB flash drive"},{"id":11,"msg":"Copying to USB Drive"},{"id":12,"msg":"Please Wait"},{"id":13,"msg":"Unzipping Swapfile To"},{"id":14,"msg":"This takes a few minutes... be patient."},{"id":15,"msg":"Swapfile size is 1 GB."},{"id":16,"msg":"While you wait, here is some information"},{"id":17,"msg":"Start Over"},{"id":18,"msg":"View AIO Compile Log"},{"id":19,"msg":"Exit"},{"id":20,"msg":"Success!"},{"id":21,"msg":"Delete _copy_to_usb Folder After Copying"}],"mainOps":{"wifi":{"id":0,"label":"Enable WIFI","safetylvl":"safe","toolTip":"
    WIFI
    Enables WIFI for North America Region"},"backup":{"id":1,"label":"Backup JCI Folder","safetylvl":"safe","toolTip":"
    Backup JCI
    Do backup of JCI folder before installing tweaks."},"background":{"id":2,"label":"Background Image","safetylvl":"safe","toolTip":"
    Background
    Change your Infotainment background to your own custom image. Supported image formats are: jpg, jpeg, and png (any size). Note: If single img is chosen, the image will be resized to 800px x 480px BUT NOT CROPPED and converted .png format. To change the background image back to original, choose 'Default Background.","img":"cic.jpg"},"colors":{"id":3,"label":"Custom Infotainment Colors","safetylvl":"safe","toolTip":"
    Custom Color Schemes:
    Changes your Infotainment color scheme from Red (default) to one the following colors:
    • Blue
    • Green
    • Orange
    • Pink
    • Purple
    • Silver
    • Yellow
    • Smooth Red
    Themes: Themes only replace the main menu coins. When installed over a color scheme, the custom colors will remain with the theme. Included Themes:
    • carOS
    • Storm Troopers
    • Poker
    • Mazda Logos
    • Floating Logo
    • X-Men

    PROTIP: Delete all the images that you do not want to change. It can be as little as deleting one folder or as much as deleting every image except one. ","toolTip2":"
    The Custom Theme Option:
    Use any theme designed for the MZD Infotainment System or easily apply your own Custom Made Theme.
  • To use any theme: download and unzip the theme
  • Import the config/jci/ folder from the theme into AIO.

  • NOTE: Using This Method Will Copy Only .png Files For Themes
    Using Your Own Custom Made Theme:
  • If no theme is chosen: a folder will be generated here: _copy_to_usb/config/color-schemes/theme/jci/
  • After compiling tweaks, copy your files into the generated jci folder in the same directory location of the images you want to replace.
    WARNING: WHEN USING THIS METHOD EVERYTHING IN THE JCI FOLDER WILL BE COPIED ONTO YOUR SYSTEM IN THE SAME LOCATION. USE RESPONSIBLY.
    ","img":"carOS.png"},"sshbringback":{"id":4,"label":"Install SSH_bringback","safetylvl":"safe","toolTip":"
    SSH_bringback
    **No removing possible!** With FW 56.00.511 Mazda has removed SSH access. With SSH_bringback this will be reinstalled. This tweak will still only be installed if FW 56.00.511 is recognized, if it's 56.00.230, nothing happens."},"sdcid":{"id":5,"label":"SD CID","safetylvl":"safe","toolTip":"
    SD CID
    Gets the CID from the Nav SD card if available."},"backgroundrotator":{"id":6,"label":"Background Rotator","btntxt":"Join Images","button":"Click To Join Images For Your Background To Rotate Through","safetylvl":"safe","toolTip":"
    Background Rotator Tweak.
    Cycles through 10 Backgrounds over 10 minutes (600 seconds - 60 seconds per background). Note: After installing this tweak, you can change your joined background multiple times without installing again. To Revert back to a single background uninstall this tweak."},"retain":{"id":7,"label":"Copy Backups","testlabel":"Test Backups","safetylvl":"safe","toolTip":"
    Copy Backups:

    Copy original backups of modified system files, for safe keeping.

    Test Backups:

    Some tweaks have before and after copys of the files modified during the instalation. If you like that kind of thing they will copied to your-usb/bakups/test/.

    "},"mainmenu":{"id":8,"label":"Main Menu Tweaks","safetylvl":"safe","toolTip":"
    Main Menu Tweaks

    • Alternative Main Menu Layouts
      • 'Star Points' Layout

      • 'Inverted' Layout

    • 3D Main Menu Label
    • Hide Main Menu Ellipse
    • Smaller Main Menu 'Coins'
    ","img":"Alt-layouts.jpg"},"uistyle":{"id":9,"label":"Text Colors","safetylvl":"safe","toolTip":"

    User Interface Text Style Tweaks

    Customize Your User Interface Style and Text Colors:
    • Song Title
    • Artist & Album
    • Radio Station
    • List Item & Disabled List Item
    • Text Shadow
    "},"offscreenbg":{"id":10,"label":"Off Screen Background","btntxt":"Off Screen Default","safetylvl":"safe","toolTip":"
    Off Screen Background.
    Background Image when \"Turn Display Off and Show Clock\" is chosen in the Settings menu. Also shown during system shutdown."}},"menu":{"save":{"menuId":"0","label":"Save","toolTip":"Save Current Configuration."},"load":{"menuId":"1","label":"Load","toolTip":"Load Last Saved Configuration"},"tour":{"menuId":"2","label":"Tour","toolTip":"Take a Tour of MZD-AIO-TI"},"lastcompilelog":{"menuId":"3","label":"Last Compile Log","toolTip":"MZD_LOG"},"installall":{"menuId":"4","label":"Install All","toolTip":"Install All Except: Android Auto and Castscreen."},"uninstallall":{"menuId":"5","label":"Uninstall All","toolTip":"Uninstall All Tweaks."},"resetoptions":{"menuId":"6","label":"Reset Options","toolTip":"Reset Checked Options."},"reloadapp":{"menuId":"17","label":"Reload App","toolTip":"Reload the app."},"copytousb":{"menuId":"8","label":"_copy_to_usb","toolTip":"Open _copy_to_usb Folder"},"help":{"menuId":"9","label":"Help","toolTip":"Click tweak name for help."},"install":{"menuId":"10","label":"Install"},"uninstall":{"menuId":"11","label":"Uninstall"},"languages":{"menuId":"12","label":"Languages"},"close":{"menuId":"13","label":"Close"},"clickforhelp":{"menuId":"14","label":"Click For Help"},"tweakstoinstall":{"menuId":"15","label":"Tweaks To Install"},"file":{"menuId":"18","label":"File"},"window":{"menuId":"19","label":"Window"},"download":{"menuId":"20","label":"Download"},"fullscreen":{"menuId":"20","label":"Fullscreen"},"translator":{"menuId":"21","label":"Translator"},"dlcolors":{"menuId":"22","label":"Download Color Scheme Files"},"dlspeedcam":{"menuId":"22","label":"Download Speedcam Patch Files"},"helppanel":{"menuId":"23","label":"Help Panel"},"changelog":{"menuId":"24","label":"Changelog"},"start":{"menuId":"16","label":"Start Compilation","toolTip":"

    Ready?

    Start The Compilation!"},"centerwindow":{"menuId":"17","label":"Center Window","toolTip":"Reset Window Size and Position"}},"imgOps":[{"id":0,"label":"Join multiple images for your infotainment background"},{"id":1,"label":"Select up to 50, 480px X 800px Images (Each Image will be resized to 480x800). Background Rotator Will Show Each Background For X Seconds (Max 300 Seconds = 5 Minutes per img)."},{"id":2,"label":"Drag images to change order."},{"id":3,"label":"images selected"},{"id":4,"label":"You need to choose some images to join (Each will be resized to height: 480px, width: 800px) or "},{"id":5,"label":"Use Your Own Joined Image (No Resize)"},{"id":6,"label":"This image wil replace your infotainment background."},{"id":7,"label":"Save Image As"},{"id":8,"label":"Make Another"},{"id":9,"label":"Right-click > Save Image saves a copy of background.png to your downloads folder."},{"id":10,"label":"Minutes"},{"id":11,"label":"Select Images"},{"id":12,"label":"Images"}],"translatorWindow":[{"label":"Language Translator"},{"label":"Reset to Default"},{"label":"Enter Language Name (file will save as"},{"label":"in your 'documents' folder"},{"label":"Email translated files to"},{"label":"Pull Request"},{"label":"loading"},{"label":"Saved in 'Documents'"},{"label":"Show In Explorer"},{"label":"Load File"},{"label":"This section was designed for easily translating this app into many languages."},{"label":"Choose a translation file to edit"},{"label":"Enter name of the translated language"},{"label":"BACK"},{"label":"Save (To Documents)."},{"label":"Auto-Save"}],"colors":{"red":{"id":0,"label":"Red (Default)"},"blue":{"id":1,"label":"Blue"},"green":{"id":2,"label":"Green"},"silver":{"id":3,"label":"Silver"},"pink":{"id":4,"label":"Pink"},"purple":{"id":5,"label":"Purple"},"orange":{"id":6,"label":"Orange"},"yellow":{"id":7,"label":"Yellow"},"smoothred":{"id":9,"label":"Smooth Red"},"caros":{"id":8,"label":"CarOS"},"stormtroopers":{"id":10,"label":"Storm Troopers"},"poker":{"id":11,"label":"Poker"},"mazdalogos":{"id":12,"label":"Mazda Logos"},"floating":{"id":13,"label":"Floating Logo"},"xmen":{"id":14,"label":"X-Men"},"custom":{"id":15,"label":"Custom Theme"}},"statusbar":{"main":{"id":0,"label":"Remove Statusbar Background"},"opacity":{"id":1,"label":"Statusbar Opacity"},"app":{"id":2,"label":"App Title"},"clock":{"id":3,"label":"Clock"},"notif":{"id":4,"label":"Status Notifications"},"d2sbinst":{"id":5,"label":"Date To Statusbar Mod"},"d2sbuninst":{"id":6,"label":"Remove Date To Statusbar Mod"}},"uistyle":{"body":{"id":0,"label":"Body Text (Audio Artist & Album)"},"listitem":{"id":1,"label":"List Item"},"listitemdisabled":{"id":2,"label":"Disabled List Item"},"title":{"id":3,"label":"Song Title"},"radio":{"id":4,"label":"Radio Station"},"main3d":{"id":5,"label":"3D Main Menu Text"},"ellipse":{"id":6,"label":"Remove Ellipse"},"altlayout":{"id":7,"label":"'Star Points' Layout"},"shadow":{"id":8,"label":"Text Shadow"},"altulayout":{"id":9,"label":"'Inverted' Layout"},"minicoins":{"id":10,"label":"Smaller 'Coins'"}},"speedcamOps":[{"id":0,"label":"Europe With Mobile Cameras"},{"id":1,"label":"Europe Without Mobile Cameras"},{"id":2,"label":"Germany With Mobile Cameras"},{"id":3,"label":"Germany Without Mobile Cameras"},{"id":4,"label":"Turkey"},{"id":5,"label":"Use Your Own speedcam.txt file"}],"disclaimOps":[{"id":0,"label":"Remove Completely"},{"id":1,"label":"Reduce Time To 0.5 seconds"}],"fuelOps":[{"id":0,"label":"Km/L"},{"id":1,"label":"MPG"}],"d2sbOps":[{"id":0,"label":"V1.0"},{"id":1,"label":"v3.3 (Date Localized)"},{"id":2,"label":"V3.3 (dd.mm.)"},{"id":3,"label":"V3.3 (mm/dd)"}],"speedoOps":{"lang":{"en":{"id":0,"label":"English"},"de":{"id":1,"label":"German"},"sp":{"id":2,"label":"Spanish"},"pl":{"id":3,"label":"Polish"},"sl":{"id":4,"label":"Slovak"},"tk":{"id":5,"label":"Turkish"},"fr":{"id":6,"label":"French"},"it":{"id":7,"label":"Italian"}},"xph":{"mph":{"id":10,"label":"MPH"},"kmh":{"id":11,"label":"KM/H"}},"sml":{"gps":{"id":20,"label":"GPS Values"},"car":{"id":21,"label":"Car Values"},"none":{"id":22,"label":"Do Not Activate"}},"bg":{"ind":{"id":30,"label":"Individual Background"},"orig":{"id":31,"label":"Original Background"}},"opac":{"id":40,"val":"0","label":"Black Background Opacity? (To Reduce Visibility of Custom MZD Background Image) 0.0 (Fully Transparent) - 1.0 (Completely Black)"}},"tweakOps":[{"id":1,"OpName":"Touchscreen While Moving","INST":"Enable the touchscreen while moving","DEINST":"Disable the touchscreen again while moving","toolTip":"
    Touchscreen
    Allows the use of the touchscreen while driving.
    Fix Cluster Compass: Some things will be disabled while driving but the touchscreen itself and the cluster compass will work","img":"","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":2,"OpName":"No More Disclaimer","INST":"Remove disclaimer completely","DEINST":"Restore disclaimer (to 3.5 seconds)","toolTip":"
    No More Disclaimer
    Completely remove the disclaimer or reduce the expansion time of the disclaimer from 3.5 to 0.5 seconds.","img":"","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":3,"OpName":"Reverse Camera Safety Warning","INST":"Remove the reverse camera safety warning","DEINST":"Restore the safety warning label to the reverse camera","toolTip":"
    Reverse Camera Safety Warning
    No security warning at the bottom when activating the rear camera.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":4,"OpName":"Semi-transparent parking sensor graphics","INST":"Install semi-transparent parking sensor graphics","DEINST":"Remove semi-transp. parking sensor graphics f. proximity sensors","toolTip":"
    Semi-Transparent Parking Sensor Graphics.
    Semitransparent parking sensor graphics for proximity sensors.. When activating the rear camera, the car is displayed at the top right corner.#The graphics now appear semitransparent by installing tweak.","img":"semi-transparent_parking-sensors.jpg","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":5,"OpName":"Main Menu Loop","INST":"Install main_menu_loop","DEINST":"Remove main_menu_loop","toolTip":"
    Main Menu Loop.
    Loop for the main menu.
    You can jump from left to far right, and vice versa.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":6,"OpName":"Improved List Loop","INST":"Install improved_list_loop","DEINST":"Remove improved_list_loop","toolTip":"
    Improved List Loop.
    Loop for all lists and submenu (music, contacts, etc.).
    You can now jump from the top position of a list to the bottom and vice versa.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":7,"OpName":"Shorter Delay Mod","INST":"Install shorter_delay_mod","DEINST":"Remove shorter_delay_mod","toolTip":"
    Shorter Delay Mod.
    Reduces the waiting time for switching between pages with the multi commander from 1.5 to 0.3 seconds.
    Uninstalling Improved List Loop will also uninstall this mod.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":8,"OpName":"Media Order Patch & FLAC Support","INST":"Enable media_order patch and FLAC support","DEINST":"Remove media_order_patching","toolTip":"
    Media Order Patching and FLAC Support
    Music will be sorted alphabetically and not by date with new entries first. Support for audio format FLAC.","img":"","safetylvl":"warning","extraOps":false,"advancedOp":false},{"id":9,"OpName":"Order of Audio Source List","INST":"Change order of the audio source list","DEINST":"Restore order of audio source list back to original","toolTip":"
    Change Order of the Audio Source List.
    The order of the audio source list is arranged as follows:.
  • FMRadio
  • DAB
  • USB_A
  • USB_B
  • btaudio
  • CD
  • SatRadio
  • AhaRadio
  • Pandora
  • StitcherAuxIn
  • amradio
  • DVD
  • TV
  • ","img":"","safetylvl":"warning","extraOps":false,"advancedOp":false},{"id":10,"OpName":"Pause on mute","INST":"Install pause_on_mute","DEINST":"Remove pause_on_mute","toolTip":"
    Pause On Mute.
    When pressing mute (pressing the volume button) played media are also paused.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":11,"OpName":"Remove Message Reply","INST":"Remove automatic message replies","DEINST":"Restore automatic message replies","toolTip":"
    Remove Message Replies
    Removes the text 'Sent from my Mazda Quick Text System' if answering messages.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":12,"OpName":"1 Sec Diag Menu","INST":"Install 1 second diagnostic menu","DEINST":"Remove 1 sec. diagnostic menu","toolTip":"
    1 Sec Diag Menu
    Allows you to open the diagnostic menu by touching the clock at the top right of the display settings menu for one second.","img":"","safetylvl":"warning","extraOps":false,"advancedOp":false},{"id":13,"OpName":"Boot Animation","INST":"Disable boot animation","DEINST":"Boot Animation enable again","toolTip":"
    Boot Animation
    The boot animation that leads to the menu with the red buttons will be disabled.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":14,"OpName":"Bigger Album Art","INST":"Install bigger album art cover","DEINST":"Album art cover back to original","toolTip":"
    Bigger Album Art
    You get a bigger album art graphic.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":15,"OpName":"No Background Behind Buttons","INST":"Remove the background behind buttons","DEINST":"Background behind buttons back to original","toolTip":"
    No Background Behind Buttons
    Remove the background behind the buttons.","img":"NoButtonBackground.jpg","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":16,"OpName":"Change Blank Album Art Frame","INST":"Remove the blank album art frame","DEINST":"Restore the blank album art frame","toolTip":"
    Change Blank Album Art Frame
    The empty album cover frame is removed, which is displayed when there is no entry in the Gracenote database for the artist. Then the image of a radio is displayed, if there is no cover in the MP3 tag too. Supported image formats are: jpg, jpeg, and png (any size). Note: The image chosen will be resized to 146px x 146px BUT NOT CROPPED and converted .png format","img":"","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":17,"OpName":"Videoplayer","INST":"Install videoplayer","DEINST":"Remove videoplayer","toolTip":"
    Videoplayer
    Add videoplayer app to the application menu.","img":"","safetylvl":"safe","extraOps":false,"advancedOp":false},{"id":18,"OpName":"Swapfile","INST":"Generate swapfile for media player v2","DEINST":"Remove swapfile","toolTip":"
    Swapfile
    The installation of the swap file must be done on a USB drive with music and/or movies, that remains in the car.. The installation files are automatically deleted, the drive may no longer be removed during operation, because the system will use it also as memory.. Only remove the USB drive if the MZD system is off.","img":"","safetylvl":"warning","extraOps":true,"advancedOp":false},{"id":19,"OpName":"Speedometer","INST":"Install speedometer by Diginix","DEINST":"Remove speedometer by Diginix","toolTip":"
    Speedometer With Compass in the Application Menu.
    • Below the speedometer is km/h or mph, depending on the setting
    • Speed range up to 240 km/h
    • Consumption values
    • Optimized graphics modules with new speedometer pointer
    • Small speedometer needle for top speed in the analog part
    • The picture for the speedometer scale has different lengths or bright lines for 5, 10 and 20 km/h jumps
    • Right table english or german German and color / size optimized
    • All numbers have a slight shadow around to better stand out from the background.
    • On travel direction rotating compass central to the current speed
    • Animated overlay in the status with GPS speed and direction of travel in each menu can be prepared by touch at the clock
    • Latitude and longitude in the right table
    • When the Navi or Rear Camera is started, it automatically appears

    For the small speedo in the status bar you have to install date_to_statusbar mod V2.2 too. Therefore it will be automatically selected, if not already done.","img":"mzd_SpeedoCompass.gif","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":20,"OpName":"Statusbar Tweaks","INST":"Install Statusbar Tweaks","DEINST":"Remove Statusbar Tweaks","toolTip":"
    Statusbar Mods
    Add some Color to your statusbar text.
    Change Colors For:

    App Name: Title of the app or media source.

    Clock: This one is pretty self explanatory.

    Status Notification: Navigation notifications

    Remove Statusbar Background Image And
    Adjust Statusbar Opacity (From 0-1: 0 = transparent, 1 = Black)
    Safe for all FW Versions
    Date In Status Bar Mod.
    Permanently visible date + icons by the clock, even if system messages are displayed.","img":"mzd_datum_icons_all.jpg","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":22,"OpName":"FuelConsumption Tweak","INST":"Install Fuel Consumption Tweak","DEINST":"Remove Fuel Consumption Tweak","toolTip":"
    Fuel Consumption Tweak.
    Additional display of KM / L (or MPG).","img":"FuelConsumptionTweak.jpg","safetylvl":"safe","extraOps":true,"advancedOp":false},{"id":23,"OpName":"Speedcam patch","INST":"Install Speedcam-Patch","DEINST":"Remove speedcam-patch","toolTip":"
    Speedcam Patch.
    The navigation is so patched so that database for speed cameras are accepted.. You can then copy a file 'speedcam.txt' on the SD card for the navigation, which will be imported.","img":"","safetylvl":"warning","extraOps":true,"advancedOp":false},{"id":24,"OpName":"Castscreen-receiver","INST":"Install Castscreen-Receiver","DEINST":"Remove castscreen-receiver","toolTip":"
    Castscreen receiver.
    After installation you can mirror the smartphone screen at the infotainment display (mirroring).
    • You have to install the castscreen app on your Android Phone (castscreen-1.0.apk) The app can be found in the 'config' folder of your USB drive
    • activate the debug mode on your smartphone
    • connect the smartphone with USB cable to the infotainment system
    • start the app settings: H264, 800x480 @ 160, 1 mbps, then input 127.0.0.1 and press input receiver, then tap Start on right-up corner.
    .","img":"","safetylvl":"warning","extraOps":true,"advancedOp":false},{"id":25,"OpName":"Android Auto Headunit App","INST":"Install Android Auto Headunit App","DEINST":"Remove Android Auto Headunit App","toolTip":"
    Android Car Headunit app. Android car for the infotainment system.

    1. Install the Android app from google play store:HERE.
    2. Connect the phone to USB and pair the phone bluetooth with the CMU
    3. Manually switch to Bluetooth Audio Input.
    4. Click on the AA icon under Applications Menu on the CMU
    5. A black screen with credits should open up first and input
    6. Android Auto will then start. If it does not, pull out the USB and start over again (or check the installation.)
    7. 2 ways to stop AA - Disconnect the USB cable or use the onscreen menu 'Return to Mazda Connect' on last screen with speedo icon..
    8. Once disconnected, the back screen will remain. Press Home Button on the Mazda's Commander to close it. I had to do this because js double click wasn't working..
    **What does not work:**
    1. Reverse camera gets blacked out.
    2. Voice Control
    3. Touch drag / multi touch
    4. Google Maps night mode always on.
    Android Auto Patch!:
    No need input_filter anymore (#12)
    'Remove the input_filter background process. It's not needed since we can use EVIOCGRAB to consume input events before the CMU UI without the /dev/uinput trickery.' /cc @lmagder https://github.com/gartnera/headunit/commit/70958cf33c9facaed11f4b59c11f
    ","img":"AndroidAuto.jpg","safetylvl":"development","extraOps":true,"advancedOp":true}]} diff --git a/app/lang/magyar.min.json b/app/lang/magyar.min.json deleted file mode 100644 index 9cb9db0..0000000 --- a/app/lang/magyar.min.json +++ /dev/null @@ -1,1087 +0,0 @@ -{ - "languages": { - "en": { - "id": 1, - "lang": "Angol" - }, - "de": { - "id": 2, - "lang": "Német" - }, - "fr": { - "id": 3, - "lang": "Francia" - }, - "sp": { - "id": 4, - "lang": "Spanyol" - }, - "pl": { - "id": 5, - "lang": "Lengyel" - }, - "trk": { - "id": 7, - "lang": "Török" - }, - "slv": { - "id": 8, - "lang": "Szlovák" - }, - "hu": { - "id": 8, - "lang": "Magyar" - } - }, - "helpMsgs": [ - { - "id": 0, - "title": "Bemutatás", - "msg": "Telepítő és törlő program, több mint 40 \"Tweak\"-hez a Mazda Infotainment rendszeréhez a következő járművekben: Mazda 2 (DJ), Mazda 3 (BM), Mazda 6 (GJ), Mazda CX-3 (DK), Mazda CX-5 (KE), Mazda MX-5 Roadster (ND) and new 2017 Mazda CX-9 (TC)
    Fiat Spider, Toyota ScionA
    Mi is az a MZD-AIO-TI?
    My Egy jó barátom Siutsch összegyűjtötte az általa használt tweak-ek fájljait, abból a célból, hogy egyesítve egy felületen ki lehessen választani, hogy melyekre van szüksége valakinek és azokat egyszerűen telepíteni és újra törölni tudja. Ebből született egy CMD (command line) alapú program, mely gyorsan elérte a határait és hiányzott a manapság megszokott \"app\"-hatás. Ekkor vettem fel Siutsch-csal a kapcsolatot és felajánlottam neki, hogy együtt csináljunk egy programot számítógépre, amit mindenki egyszerűen tud kezelni és nem igényel különösebb technikai tudást. Ebből lett az itt látható MZD-AIO-TI. \n\n##### Én személyesen minden tweak-et leteszteltem a saját 2016-os Mazda3 FW:55.00.753A-NA MZD-men. Egyelőre ez az app BÉTA TESZT fázisban van, de a fejlesztés hamarosan a végére ér. Két dolgot szeretnék minden tesztelőtől kérni a végleges release előtt: 1. Mindenképpen jelezd a véleményedet és ha kisebb nagyobb hibát találd azt jelentsd nekem. 2. Legyél figyelmes miközben tweak-eket telepítesz vagy törölsz. Nem tudom garantálni a hibátlan működést, de igyekeztem a lehető legktöbbet megtenni azért, hogy ne legyen baj. ###### **Ezért kérlek nagyon ügyelj arra, hogy mit is csinálsz.** \n\nEz az applikáció automatikusan frissül, ha új verzió lesz elérhető.", - "t2": "", - "msg2": "


    " - }, - { - "id": 1, - "title": "Tweakelés", - "msg": "

    Minden változtatás csak a saját felelősségre!

    \n Vedd figyelembe, hogy ezekkel a saját fejegységedbe nyúlsz bele, amely így nem megfelelő használat mellett tönkre is mehet! AnyoneMindenki, aki nem biztos abban, hogy mit is csinál, inkább ne végezze el a változtatásokat egyedül, hanem kérjen a fórum-on segítséget.
    Én nem felelek semmilyen kárért, ami a használatból következik.
    HavingMindazonáltal a MZD-AIO-TI úgy lett fejlesztve, hogy gondoltam a biztonságra is, ezért három kategóriába sorolom a tweak-eket: \n\n - Biztonságos - sokat tesztelt és általánosan is biztonságosnak tekintett - Figyelem - Érzékeny rendszerfájlokat módosít, vagy még nem lett tesztelve. Általában nagy biztonsággal, használható kellő figyelem mellett! Ezek közül a legtöbb rövid időn belül átkerülhet a \"biztonságos\" kategóriába.\n - Fejlesztés alatt - Ezek a tweak-ek fejlesztés alatt álnak, vagy még nem működnek. Csak az Android Auto van jelenleg ezen a szinten, de úgy tűnik, hogy nemrégiben sikerült megoldaniuk a problémákat.", - "t2": "Kompatibilis firmware verziók:", - "msg2": "###### 55.00.650A/753A/760A / 56.00.521A-NA(NA N) \n\n###### 56.00.100A/230A/240B/511A/512A/513C/514A-ADR(4A N) \n\n###### 56.00.100A/230A/511A/512A/513A/513B/513C-EU \n\n###### 56.00.401A/403A-JP | 56.00.100A-CHN \n\n###### 58.00.250A-NA(NA N) / 58.00.251A-ADR(4A N) \n\n59.00.326A/330A/342A/442A/443C-ADR(4A N) \n\n###### 59.00.330A/441A/443A-NA \n\n###### 59.00.330A/331A/443C/447A/449A-EU \n\n###### Csak >= v55. firmware verziókhoz! NE HASZNÁLD V30/31/33 FW-hez VAGY TÖNKRE TESZED A FEJEGYSÉGED, mely így folyamatosan a Mazda logónál fog maradni! A biztonság kedvéért a program leállítja a telepítést, ha egy nem kompatibilis verziót észlel! Ahhoz, hogy ezt felülírd, át kell írnod a tweaks.sh-ban a kódrészt, amely a verzióbiztonságért felel, vagy hozzá kell addnod a saját verziódat a támogatottak listájához. **CSAK SAJÁT FELELŐSSÉGRE!** *A Mazda közösség segítségével idővel az 59.x-es FW verzió is be fog kerülni a támogatott FW-ek listájába.*" - }, - { - "id": 2, - "title": "Visszaállítás", - "msg": "**Szinte minden tweak-et** le lehet törölni, hogy visszaálljon a rendszer az alaphelyzetbe.
    Alapértelmezett háttér:

    \n\n - AZ AIO minden módosított fájlról egy biztonsági mentés készít, a változtatás előtt. Ezeket a fájlokat használja az eredeti állípot visszaállításához. Ezenfelül az AIO szintén tartalmazza az eredeti fájlok másolatát, arra az esetre, ha mégse állnának biztonsági mentések rendelkezésere. Jövőbeni verziókban lesz egy olyan funkció, amely lehetővé teszi, hogy a saját rendszer fájlai legyenek az AIO-ba elmentve, így leegyszerűsítve a jövőbeni verziók támogatását. - Általánosságban kimondható, hogy minden kompatibilis FW verzióval nyugodtan visszaállíthatóak olyan tweak-ek is, melyek nem lettek telepítve, DE tartsd észben, hogy ebben az esetben az AIO átírja az eredeti fájlokat a központi biztonsági mentésben található fájlokkal. Tehát lehetőség szerint, ne törölj olyan tweak-eket, amelyek nem lettek telepítve, hogy ne legyen felesleges változtatás a rendszereden.", - "t2": "Mely beállításokat nem lehet visszaállítani az AIO-val?", - "msg2": "

    MZD-AIO-TI néhány olyan fájlt is módosít, amelyet nem lehet az applikáció segítségével visszaállítani.

    Ez a három fájl soha ne legyen visszaállítva, mert bármely hiba a visszaállítás során ahhoz vezethet, hogy az MZD örökre fennakadjon. Ezek a fájlok csak azért kerülnek változtatásra, hogy ne tudjon a rendszer egy váratlan újraindítást produkálni telepítés közben. **Csak az első indításkor** amikor a telepítő lefut a rendszeren, biztonsági mentést készít ezekről a fájlokról. **NE VÁLTOZTASD MAGAD EZEKET A FÁJLOKAT, KÜLÖNBEN TÖNKRETEHETED A RENDSZEREDET!**\n\n- /jci/sm/sm.conf (Android Auto is módosítja)\n- /jci/opera/opera_home/opera.ini \n- /jci/opera/opera_dir/userjs/fps.js\n\n##### These Ennek a 2 tweak-nek nincs visszaállítási lehetősége, mert ezeknek már alapból működnie kéne.\n\n- Wifi (É-Ameriaki régió)\n- ssh_bringback az 56.00.511A/512A/513B-EU FW verziókhoz" - }, - { - "id": 3, - "title": "Hibaelhárítás", - "msg": "Itt van néhány gyakori probléma és a megoldásuk. \n#### Ha folyamatosan hibákba futsz vagy elakadsz::\n - Általában hozzáférési jogosultságokkal van probléma: a kívánt erőforrás foglalt, vagy le van terhelve. Ez akkor lép fel, ha egy fájlt vagy mappát nem lehet elérni, mert már meg van nyitva, vagy éppen egy másik program használja. Kompilálás alatt zárj be minden mappát és dokumentumot, főleg azokat amelyeket a  MZD-AIO-TI is használ(*pl: '_copy_to_usb'*)\n - ISokszor próbáltam egyszerre az össze tweak kompilálását, ha te esetleg mégis valami hibába futsz folyamatosan, kérlek jelezd. - Ha a telepítő nem indul amikor bedugod az autóban, akkor formázd újra FAT32 formátumra a pendrice-odat és csatlakoztass le minden más USB eszközt. Az is segíthet, ha kikapcsolod a bluetooth-t. A Navigáció SD kártyája maradjon bent.", - "t2": "Probléma a videó lejátszóval", - "msg2": " Próbáld:\n\n- Helyezd a filmjeidet egy 'Movies' nevű mappába! \n\n- Használj H264 videó codec-et és MPEG-4 AAC audió codec-et videókhoz - Csatlakoztass le minden USB eszközt, különösen azokat, amelyek sok MP3-at tartalmaznak - Csak egy MP3-at másolj a videók mellé a pendrivera - Csak kevés videót másolj a pendrive-odra (nem kell törölnöd fájlokat, elég ha megváltoztatod a kiterjesztését *._mp4-re, mert így már nem lesznek felismerve) \n\n- Indítsd újra a gépedet és próbálj meg lejátszani egy videót - Zárd be a lejátszót és indítsd újra - Ha ez nem segít, akkor változtasd meg a hangbemenetet - Néha az első videó akadozik, vagy nem indul el, kattints a \"következő\" gombra, amely így a következő videót fogja elindítani - Támogatott videóformátumok: MP4, AVI, FLV, WMV" - }, - { - "id": 4, - "title": "Hozzájárulás", - "msg": "A kezelői felület az én munkám, de a projekt legfontosabb részei a tweak-ek maguk. Közösségek, mint pl. a Mazda3Revolution Forum és sok fejlesztő tette le az alapokat, melyekre ez a program épül és a jövőbeni fejlesztésre is nagy befolyással lesznek. Ha szeretnéd, hogy a te általad fejlesztett tweak is bekerüljön, akkor teszteld először a lehető legalaposabban. 

    Ha JavaScript vagy AngularJS varázsló vagy, akkor nyugodtan takarítsd fel a kódot (kicsit káosz van benne ... bocsi) vagy implementáld a felületet \"angulárisan\"

    Ez a projekt Copyleft és 
    GNU GPLv3
    LOADING....
    \">GPLv3.0 License
     alatt áll!

    Github Repo", - "t2": "Problémák", - "msg2": "- Az 59.xx.xxx FW verziók app-jei nem láthatók a menüben (Speedometer és Video Player) és a \"dátum a fejlécben\" mod is problémás (az érintett FW verziókon nem lehet telepíteni) - Hogyha nincs elég hely a pendrive-on, akkor legfagy a program a fájlok másolása közben. Ez általában akkor történik, amikor a swap fájlt másoljuk egy olyan pendrive-ra, amely már majdnem tele van. Egy jövőbeni verzió megoldja majd a problémát és egy felugró hibaablak fogja jelezni ezt. - Ha telepítetted a \"háttérkép nélküli gombok\" mod-ot és telepíted a színsémákat, akkor visszaáll a gombok háttere. Ezt megelőzheted, ha mindkét tweak-et egyszere telepíted. - A Google Fordító megpróbálja a kódot néhány helyen lefordítani, ez nem várt dolgokat produkálhat. Használd ezt a fordítóban egy új nyelvre való fordításra, hogy az bekerüljön a jövőbeni verziókba és mások is tudják használni fordításkor." - }, - { - "id": 5, - "title": "Tippek & trükkök", - "msg": "I Itt találhatsz néhány trükköt ennek a programnak a használatáról.
    Itt van egy leírás, hogy hogyan indítsd el a CMU rendszert a gépeden.", - "t2": "Technikai rész", - "msg2": "Ez az app Electron-nal and AngularJS-szel készült" - }, - { - "id": 6, - "title": "Segítség & Beállítások", - "msg": "

    Súgó:

    \n
    Hogyan kell a programot használni:

    Ha hibába futsz, 
    vagy elakadsz akkor:

    Vagy:

    Szereted ezt az app-ot? Adakozással, mutatsd ki, hogy mennyire!:


    ", - "t2": "", - "msg2": "


    " - } - ], - "FAQs": { - "title": "GYIK", - "msg": "Gyakran ismételt kérdések: ", - "q1": "Kompatibilis az AIO az én firmware verziómmal?", - "a1": "A kompatibilis firmware (FW) verziók listája megtalálható a 'Tweaking > kompatibilis firmware verziók' részban, balra ettől az ablaktól. MZD-AIO-TI kiolvassa a telepítés előtt a FW verziót és jelzi, ha nem kompatibilis (vagy még nem lett tesztelve) és a biztonság kedvéért megszakítja a telepítést.", - "q2": "Mennyi ideig tart, míg elindul a telepítés?", - "a2": "Általában 30 mp és 2 perc között kezdődik a telepítés, de néha akár 10 perc is eltelhet a kezdésig.", - "q3": "Ha valami nem sikerül, hogyan tudom könnyébbe tenni, hogy segíteni tudj?", - "a3": "Telepítés/törlés alatt egy log fálj készül (AIO log.txt & MZD-AIO-TI info.txt) és néhány egyáb fájl kerül a pendrivra. Kérlek készíts egy ZIP fájlt (a teljes pendrive tartalmáról) és küldd el nekem vagy töltsd fel valahová (pl. google drive, stb.) és küldd el nekem a linket. VAGY töltsd le ezt a tweak-et, mely le fog másolni néhány fájl-t az MZD-ről és elküldi nekem.", - "q4": "Az AIO 1.x tweakeket le kell törölnöm, mielőtt újratelepítem őket?", - "a4": "Nem, az AIO-val bármelyik tweak-et telepítheted, anélkül, hogy előtte törölnéd az előzőt. MZD-AIO-TI 2.x ugyanazokat a tweak-eket használja, mint az AIO 1.x és ügyeltünk a kompatibilitásra.", - "q5": "Mennyi ideig tart a telepítés/törlés?", - "a5": "Akár 10 percbe is telhet, ha minden tweak ki lett választva (különösen,az egyéni színek és a traffipax patch-ekkel). a JCI mappa biztonsági mentése, szintén eltarthat 10 percig, tehát összesen akár 20 perc is lehet a teljes folyamat.", - "q6": "Mi van akkor, ha vissza akarom állítani a gyári helyzetbe a rendszeremet, de elfelejtettem, hogy mely tweak-eket telepítettem?", - "a6": "A tweak-ek törlése egy biztonságos folyamat, ha a program nem talál biztonsági mentést, akkor a pendrive-on található eredeti fájlokkal fogja átírni az amúgy még eredeti fájlokat az MZD-den. DE: NE CSINÁLD EZT ÚJ VAGY ISMERETLEN FW VERZIÓKKAL! Lsd: \"Visszaállítás\" menüpont.", - "q7": "Meg akarom változtatni a hangforrások sorrendjét, mit tegyek?", - "a7": "Írd át a: /jci/gui/apps/system/js/systemApp.js -ben a 624 - 637 sorokat

    * Ügyelj arra, hogy az utolsó sor ne pontra végződjön, különben megakad rendszered az indulásnál! *
    Dolgozom azon, hogy a tweak maga adjon lehetőséget a sorrend változtatására, anélkül, hogy bele kellene nyúlni a fájlba.", - "q8": "Az AIO-t tudom SD kártyáról is telepíteni?", - "a8": "Nem. Az SD kártya olvasó CSAK satnav térképek használatára való. Az autó USB portját kell használnod, tehát vagy pendrive-ról, vagy egy USB-s SD kártya olvasóról tudod elvégezni a telepítést.", - "q9": "Hogyan tudom újraindítani az MZD rendszert? ", - "a9": "Tartsd a NAV és MUTE gombokat 10 mp-ig nyomva.", - "q10": "Tudnál további tweak-eket írni?", - "a10": "Javítottam több létező tweak-en és a tweak.sh-n is, de van rendes munkám és a kezelői felület fejlesztése is sok időt vesz igénybe. DE vannak saját ötleteim is a jövőre és természetesen javaslatokat is szívesen fogadok, de nem ígérhetem a mihamarabbi teljesítést. Az App jobb alján megtalálhatod az elérhetőségeimet, azon keresztül tudsz üzenni nekem." - }, - "tourMsgs": [ - { - "id": 0, - "msg": "

    Üdvözlet a MZD-AIO-TI-ben!


    Mazda All In One Tweaks telepítő

    Egy telepítő és törlő program több mint 40 \"tweak\"-hez a Mazda MZD Infotainment rendszeréhez." - }, - { - "id": 1, - "msg": "Ezek a főbb tweak-ek. Itt kiválaszthatod telepítésüket vagy törlésüket." - }, - { - "id": 2, - "msg": "Itt találod a kiválasztott tweak-eket és egyéb beállításokat is itt tudsz elvégezni, valamint további információkat találszhatsz a súgóban az egyen pontokhoz, ha rájuk kattintasz." - }, - { - "id": 3, - "msg": "További beállítások, mint pl. JCI mappa biztonsági mentése vagy a Wifi bekapcsolása az Északamerikai verziókhoz." - }, - { - "id": 4, - "msg": "Ezeket a beállításokat lehet visszaállítani a gyári beállításokra, ha kiválasztod az alapértelmezett értékeket." - }, - { - "id": 5, - "msg": "A menük további súgó témákhoz ill. hasznos információkhoz és leírásokhoz tartalmaznak linkeket." - }, - { - "id": 6, - "msg": "Ha kiválasztottad minden szükséges tweak-et, kattints ide a kompilálás elindításához!" - }, - { - "id": 7, - "msg": "Másold a \"_copy_to_usb\" mappa teljes tartalmát egy üres, FAT32 formátumú pendrive-ra. Csatlakoztasd a pendrive-ot az autó USB portjához és a telepítő pár percen belül megkezdi a telepítést. Távolíts el minden egyéb dolgot az USB csatlakozókról, de a NAVIGÁCIÓ SD kártyája maradjon bedugva. Bluetooth és wifi kapcsolatok kikapcsolása is segít. A telepítés végeztél a rendszer automatikusan újraindul, ezután eltávolíthatod a pendrive-ot és élvezheted az új tweak-jeidet." - }, - { - "id": 8, - "msg": "További információk a MazdaTweaks.com!-on" - } - ], - "popupMsgs": [ - { - "id": 0, - "msg": "Kompilálás... Várj..." - }, - { - "id": 1, - "msg": "Tweak fájlok helye" - }, - { - "id": 2, - "msg": "(A jobb eredmény érdekében, formázott pendrive-ot használj)" - }, - { - "id": 3, - "msg": "Másolás a pendrive-ra" - }, - { - "id": 4, - "msg": "Még nem" - }, - { - "id": 5, - "msg": "Pendrive megnyitása" - }, - { - "id": 6, - "msg": "Talált pendrive-ok" - }, - { - "id": 7, - "msg": "Szeretnéd a fájlokat a pendrive-ra másolni?" - }, - { - "id": 8, - "msg": "Válassz egy pendrive-ot, amelyre a fájlok át lesznek másolva" - }, - { - "id": 9, - "msg": "Nem található pendrive. Másold a teljes tartalmat" - }, - { - "id": 10, - "msg": "egy üres, FAT32 formátumú pendrive-ra" - }, - { - "id": 11, - "msg": "Másolás a pendrive-ra" - }, - { - "id": 12, - "msg": "Kérlek várj..." - }, - { - "id": 13, - "msg": "Swapfájl kicsomagolása ide:" - }, - { - "id": 14, - "msg": "Ez eltart pár percig... légy türelemmel." - }, - { - "id": 15, - "msg": "Swapfile mérete: 1 GB." - }, - { - "id": 16, - "msg": "Amíg vársz, itt van pár információ" - }, - { - "id": 17, - "msg": "Újrakezdés" - }, - { - "id": 18, - "msg": "AIO Compile Log mutatása" - }, - { - "id": 19, - "msg": "Kilépés" - }, - { - "id": 20, - "msg": "Siker!" - }, - { - "id": 21, - "msg": "_copy_to_usb mappa törlése másolás után" - } - ], - "mainOps": { - "wifi": { - "id": 0, - "label": "Wifi bekapcsolása (É-Amerika)", - "safetylvl": "safe", - "toolTip": "
    WIFI
    Aktiválja a WIFI hozzáférést az Észak-Amerikai régiós firmware-ekben" - }, - "backup": { - "id": 1, - "label": "JCI mappa mentése", - "safetylvl": "safe", - "toolTip": "
    JCI mappa mentése
    JCI mappáról biztonsági mentés készítése, a tweak-ek telepítése előtt." - }, - "background": { - "id": 2, - "label": "Háttérkép", - "safetylvl": "safe", - "toolTip": "
    Háttér
    Változtasd meg az infotainment rendszer hátterét egy általad választottra. Támogatott kééprípusok: jpg, jpeg, and png (bármilyen méret). Figyelem: Ha egy kép lett kiválasztva, akkor át lesz méretezve 800px x 480px DE NEM LESZ LEVÁGVA és .png formátumba lesz konvertálba. Hogy visszállítsd az eredeti hátteret, válaszd az \"alapértelmezett háttér\" opciót." - }, - "colors": { - "id": 3, - "label": "Saját színek a hangrendszerhez (infotainment)", - "safetylvl": "safe", - "toolTip": "
    Saját színséma
    Változtasd meg az infotainment rendszer színsémáját pirosról (alapértelmezett) a további színek egyikére:
    • kék
    • zöld
    • narancssárga
    • pink
    • lila
    • ezüst
    • sárga
    • carOS
    ", - "toolTip2": "
    The Custom Theme Option:
    Use any theme designed for the MZD Infotainment System or easily apply your own Custom Made Theme.
  • To use any theme: download and unzip the theme
  • Import the config/jci/ folder from the theme into AIO.

  • NOTE: Using This Method Will Copy Only .png Files For Themes
    Using Your Own Custom Made Theme:
  • If no theme is chosen: a folder will be generated here: _copy_to_usb/config/color-schemes/theme/jci/
  • After compiling tweaks, copy your files into the generated jci folder in the same directory location of the images you want to replace.
    WARNING: WHEN USING THIS METHOD EVERYTHING IN THE JCI FOLDER WILL BE COPIED ONTO YOUR SYSTEM IN THE SAME LOCATION. USE RESPONSIBLY.
    ", - "img": "carOS.png" - }, - "sshbringback": { - "id": 4, - "label": "SSH_bringback telepítése (56.00.51x-as verzióhoz)", - "safetylvl": "safe", - "toolTip": "
    SSH_bringback
    **NEM LEHET TÖRÖLNO!** Az 56.00.511 FW verzióval a Mazda eltörölte az SSH hozzáférést. Az SSH_bringback telepítésével, ez újra elérhető lesz. Ez a twek csak akkor kerül telepítésre, ha az 56.00.511 FW verzió van telepítve, 56.00.230-asnál nem történik semmi." - }, - "sdcid": { - "id": 5, - "label": "SD CID", - "safetylvl": "safe", - "toolTip": "
    SD CID
    Kiolvassa a CID-t a navigációs SD kártyáról, ha elérhető." - }, - "backgroundrotator": { - "id": 6, - "label": "Háttérképek váltogatása", - "btntxt": "Képek összeillesztése", - "button": "Kattints ide, hogy összeilleszted a váltogtatnivaló képeket", - "safetylvl": "safe", - "toolTip": "
    Háttérképek váltogatása
    10 perces ciklusokban, változtatja percenként a háttérképet. Figyelem: Telepítés után bármikor kicserélheted az összeillesztett képeket, anélköl, hogy újra kéne telepíteni ezt a tweak-et. Töröld a tweak-et, hogy újra egy háttérképed legyen." - }, - "retain": { - "id": 7, - "label": "Biztonsági mentés megtartása", - "testlabel": "Test Backups", - "safetylvl": "safe", - "toolTip": "
    Copy Backups:

    Copy original backups of modified system files, for safe keeping.

    Test Backups:

    Some tweaks have before and after copys of the files modified during the instalation. If you like that kind of thing they will copied to your-usb/bakups/test/.

    " - }, - "mainmenu": { - "id": 8, - "label": "Main Menu Tweaks", - "safetylvl": "safe", - "toolTip": "
    Main Menu Tweaks

    • Alternative Main Menu Layouts
      • 'Star Points' Layout

      • 'Inverted' Layout

    • 3D Main Menu Label
    • Hide Main Menu Ellipse
    • Smaller Main Menu 'Coins'
    ", - "img": "Alt-layouts.jpg" - }, - "uistyle": { - "id": 9, - "label": "Text Colors", - "safetylvl": "safe", - "toolTip": "

    User Interface Text Style Tweaks

    Customize Your User Interface Style and Text Colors:
    • Song Title
    • Artist & Album
    • Radio Station
    • List Item & Disabled List Item
    • Text Shadow
    " - }, - "offscreenbg": { - "id": 10, - "label": "Off Screen Background", - "btntxt": "Off Screen Default", - "safetylvl": "safe", - "toolTip": "
    Off Screen Background.
    Background Image when \"Turn Display Off and Show Clock\" is chosen in the Settings menu. Also shown during system shutdown." - } - }, - "menu": { - "save": { - "menuId": "0", - "label": "Ment", - "toolTip": "A jelenlegi konfiguráció mentése." - }, - "load": { - "menuId": "1", - "label": "Töltés", - "toolTip": "Utolsó mentett konfiguráció betöltése" - }, - "tour": { - "menuId": "2", - "label": "Bevezetés", - "toolTip": "Bevezetés az MZD-AIO-TI-ba." - }, - "lastcompilelog": { - "menuId": "3", - "label": "Legújabb compile log", - "toolTip": "MZD_LOG" - }, - "installall": { - "menuId": "4", - "label": "Összes telepítése", - "toolTip": "Összes telepítése (kivéve Android Auto és castscreen)" - }, - "uninstallall": { - "menuId": "5", - "label": "Összes törlése", - "toolTip": "Összes tweak törlése" - }, - "resetoptions": { - "menuId": "6", - "label": "Alaphelyzeti beállítások", - "toolTip": "Kiválasztott beállítások törlése." - }, - "reloadapp": { - "menuId": "17", - "label": "App újratöltése", - "toolTip": "Töltsd újra az app-ot" - }, - "copytousb": { - "menuId": "8", - "label": "Másolás pendrive-ra", - "toolTip": "_copy_to_usb mappa megnyitása" - }, - "help": { - "menuId": "9", - "label": "Súgó", - "toolTip": "Kattints a tweak nevére a súgóhoz." - }, - "install": { - "menuId": "10", - "label": "Telepítés" - }, - "uninstall": { - "menuId": "11", - "label": "Törlés" - }, - "languages": { - "menuId": "12", - "label": "Nyelverk" - }, - "close": { - "menuId": "13", - "label": "Bezár" - }, - "clickforhelp": { - "menuId": "14", - "label": "Kattints a súgó megnyitásához" - }, - "tweakstoinstall": { - "menuId": "15", - "label": "Telepítendő tweak-ek" - }, - "file": { - "menuId": "18", - "label": "Fájl" - }, - "window": { - "menuId": "19", - "label": "Ablak" - }, - "download": { - "menuId": "20", - "label": "Letöltés" - }, - "fullscreen": { - "menuId": "20", - "label": "Teljes képernyő" - }, - "translator": { - "menuId": "21", - "label": "Fordítás" - }, - "dlcolors": { - "menuId": "22", - "label": "Töltsd le a színséma fájlokat" - }, - "dlspeedcam": { - "menuId": "22", - "label": "Töltsd le a traffipax patch-hez a fájlokat" - }, - "helppanel": { - "menuId": "23", - "label": "Súgó panel" - }, - "changelog": { - "menuId": "24", - "label": "Változások" - }, - "start": { - "menuId": "16", - "label": "Kompilálás indítása", - "toolTip": "

    Kész?

    Indítsd el a kompilálást!" - }, - "centerwindow": { - "menuId": "", - "label": "Ablak központosítása", - "toolTip": "" - } - }, - "imgOps": [ - { - "id": 0, - "label": "Join multiple images for your infotainment background" - }, - { - "id": 1, - "label": "Select up to 50, 480px X 800px Images (Each Image will be resized to 480x800). Background Rotator Will Show Each Background For X Seconds (Max 300 Seconds = 5 Minutes per img)." - }, - { - "id": 2, - "label": "Húzd a képeket, hogy változtass a sorrenden." - }, - { - "id": 3, - "label": "kiválasztott képek" - }, - { - "id": 4, - "label": "Válassz 10 db képet (Mindegyik magassága: 480px, szélessége: 800px le) vagy " - }, - { - "id": 5, - "label": "Használd a saját már összeillesztett képedet (nincs átméretezés)" - }, - { - "id": 6, - "label": "Ez a kép lesz az infotainment rendszer új háttere." - }, - { - "id": 7, - "label": "Kép mentése másként" - }, - { - "id": 8, - "label": "Újabb készítése" - }, - { - "id": 9, - "label": "Jobb kattintás > \"Kép mentése\" lementi a background.png egy másolatát a \"Letöltések\" mappába." - }, - { - "id": 10, - "label": "perc" - }, - { - "id": 11, - "label": "Képek kiválasztása" - }, - { - "id": 12, - "label": "Képek" - } - ], - "translatorWindow": [ - { - "label": "Fordító" - }, - { - "label": "Alaphelyzet visszaállítása" - }, - { - "label": "Nyelv neve (így lesz elmentve:" - }, - { - "label": "a \"Dokumentumok\" mappádba" - }, - { - "label": "Küldd el a fordítást ide:" - }, - { - "label": "Pull Request" - }, - { - "label": "töltés" - }, - { - "label": "A \"Dokumentumok\" mappába mentce" - }, - { - "label": "Mutasd az explorer-ben" - }, - { - "label": "Fálj betöltése" - }, - { - "label": "Ez a rész a fordítás megkönnyítésére lett létrehozva." - }, - { - "label": "Válaszd ki a fordítási fájlt" - }, - { - "label": "Írd be a fordított nyelv nevét" - }, - { - "label": "VISSZA" - }, - { - "label": "Mentés (Dokumentumok közé)." - }, - { - "label": "Auto-mentés" - } - ], - "colors": { - "red": { - "id": 0, - "label": "Piros (Alapértelmezett)" - }, - "blue": { - "id": 1, - "label": "Kék" - }, - "green": { - "id": 2, - "label": "Zöld" - }, - "silver": { - "id": 3, - "label": "Ezüst" - }, - "pink": { - "id": 4, - "label": "Pink" - }, - "purple": { - "id": 5, - "label": "Lila" - }, - "orange": { - "id": 6, - "label": "Narancssárga" - }, - "yellow": { - "id": 7, - "label": "Sárga" - }, - "smoothred": { - "id": 9, - "label": "Smooth Red" - }, - "caros": { - "id": 8, - "label": "CarOS" - }, - "stormtroopers": { - "id": 10, - "label": "Storm Troopers" - }, - "poker": { - "id": 11, - "label": "Poker" - }, - "mazdalogos": { - "id": 12, - "label": "Mazda Logos" - }, - "floating": { - "id": 13, - "label": "Floating Logo" - }, - "mazda": { - "id": 14, - "label": "Mazda Logos" - }, - "custom": { - "id": 15, - "label": "Custom Theme" - } - }, - "statusbar": { - "main": { - "id": 0, - "label": "Remove Statusbar Background" - }, - "opacity": { - "id": 1, - "label": "Statusbar Opacity" - }, - "app": { - "id": 2, - "label": "App Title" - }, - "clock": { - "id": 3, - "label": "Clock" - }, - "notif": { - "id": 4, - "label": "Status Notifications" - }, - "d2sbinst": { - "id": 5, - "label": "Date To Statusbar Mod" - }, - "d2sbuninst": { - "id": 6, - "label": "Remove Date To Statusbar Mod" - } - }, - "uistyle": { - "body": { - "id": 0, - "label": "Body Text (Audio Artist & Album)" - }, - "listitem": { - "id": 1, - "label": "List Item" - }, - "listitemdisabled": { - "id": 2, - "label": "Disabled List Item" - }, - "title": { - "id": 3, - "label": "Song Title" - }, - "radio": { - "id": 4, - "label": "Radio Station" - }, - "main3d": { - "id": 5, - "label": "3D Main Menu Text" - }, - "ellipse": { - "id": 6, - "label": "Remove Ellipse" - }, - "altlayout": { - "id": 7, - "label": "Alternative Layout" - }, - "shadow": { - "id": 8, - "label": "Text Shadow" - }, - "altulayout": { - "id": 9, - "label": "'Inverted' Layout" - }, - "minicoins": { - "id": 10, - "label": "Smaller 'Coins'" - } - }, - "speedcamOps": [ - { - "id": 0, - "label": "Európa mobil traffipaxokkal" - }, - { - "id": 1, - "label": "Európa mobil traffipaxok nélkül" - }, - { - "id": 2, - "label": "Németország mobil traffipaxokkal" - }, - { - "id": 3, - "label": "Németország mobil traffipaxok nélkül" - }, - { - "id": 4, - "label": "Törökország" - }, - { - "id": 5, - "label": "Saját speedcam.txt fálj használata" - } - ], - "disclaimOps": [ - { - "id": 0, - "label": "Teljes eltávolítás" - }, - { - "id": 1, - "label": "Várakozási idő 0.5 mp-re csökkentése" - } - ], - "fuelOps": [ - { - "id": 0, - "label": "Km/L" - }, - { - "id": 1, - "label": "MPG" - } - ], - "d2sbOps": [ - { - "id": 0, - "label": "V1.0" - }, - { - "id": 1, - "label": "v3.3 (Date Localized)" - }, - { - "id": 2, - "label": "V3.3 (dd.mm.)" - }, - { - "id": 3, - "label": "V3.3 (mm/dd)" - } - ], - "speedoOps": { - "lang": { - "en": { - "id": 0, - "label": "Angol" - }, - "de": { - "id": 1, - "label": "Német" - }, - "sp": { - "id": 2, - "label": "Spanyol" - }, - "pl": { - "id": 3, - "label": "Lengyel" - }, - "sl": { - "id": 4, - "label": "Szlovák" - }, - "tk": { - "id": 5, - "label": "Török" - }, - "fr": { - "id": 6, - "label": "Francia" - }, - "it": { - "id": 7, - "label": "Italian" - } - }, - "xph": { - "mph": { - "id": 10, - "label": "MPH" - }, - "kmh": { - "id": 11, - "label": "KM/H" - } - }, - "sml": { - "gps": { - "id": 20, - "label": "GPS értékei" - }, - "car": { - "id": 21, - "label": "Autó értékei" - }, - "none": { - "id": 22, - "label": "Ne aktiválja" - } - }, - "bg": { - "ind": { - "id": 30, - "label": "Egyéni háttér" - }, - "orig": { - "id": 31, - "label": "eredeti háttér" - } - }, - "opac": { - "id": 40, - "val": "0", - "label": "Fekete háttér átütése? (Az eredeti háttér eltüntetésére) 0.0 (teljesen átlátszó) - 1.0 (teljesen fekete)" - } - }, - "tweakOps": [ - { - "id": 1, - "OpName": "Érintőképernyő menet közben", - "INST": "Lehetővé teszi az érintőképernyő használatát menet közben is", - "DEINST": "Deaktiválja menet közben az érintőképernyőt", - "toolTip": "
    Érintőképernyő
    Lehetővé teszi az érintőképernyő használatát menet közben is.
    Fix Cluster Compass: Some things will be disabled while driving but the touchscreen itself and the cluster compass will work", - "img": "", - "safetylvl": "safe", - "extraOps": true, - "advancedOp": false - }, - { - "id": 2, - "OpName": "Biztonsági figyelmeztetés eltávolítása", - "INST": "Biztonsági figyelmeztetés teljes eltávolítása", - "DEINST": "Biztonsági figyelmeztetés visszaállítása 3,5mp-re", - "toolTip": "
    Biztonsági figyelmeztetés eltávolítása
    Csökkenti a biztonsági figyelmeztetés mutatásának idejét 3.5 mp-ről 0.5 mp-re, vagy teljesen el is törli azt.", - "img": "", - "safetylvl": "safe", - "extraOps": true, - "advancedOp": false - }, - { - "id": 3, - "OpName": "Tolatókamera biztonsági figyelmeztetés", - "INST": "Tolatókamera biztonsági figyelmeztetésének eltávolítása", - "DEINST": "Tolatókamera biztonsági figyelmeztetésének visszaállítása", - "toolTip": "
    Tolatókamera biztonsági figyelmeztetés
    NA tolatókamera biztonsági figyelmeztetésének kikapcsolása.", - "img": "", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 4, - "OpName": "Félig átlátszó parkolószenzor grafikák", - "INST": "Félig átlátszó parkolószenzor grafikák telepítése", - "DEINST": "Félig átlátszó parkolószenzor grafikák visszaállítása", - "toolTip": "
    Félig átlátszó parkolószenzor grafikák
    Félig átlátszó parkolószenzor grafikák. A tolatókamera bekapcsolásakor megjelenik egy felülnézeti kép a jobb felső sarokban.#Ezek a grafikák lesznek félig áttetszőek, ha telepíted ezt a tweaket.", - "img": "semi-transparent_parking-sensors.jpg", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 5, - "OpName": "Főmenü loopolása", - "INST": "main_menu_loop telepítése", - "DEINST": "main_menu_loop visszaállítása", - "toolTip": "
    Főmenü loopolása
    Loop a főmenüben
    Balról jobbra lehet ugrani ill. vissza.", - "img": "", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 6, - "OpName": "Javított lista loopolás", - "INST": "improved_list_loop telepítése", - "DEINST": "improved_list_loop visszaállítása", - "toolTip": "
    Javított lista loopolás
    Loop minden listához és almenühöz (zene, kapcsolatok, stb.).
    A legfelső pozícióból a legalsóba lehet ugrani, ill. fordítva.", - "img": "", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 7, - "OpName": "Rövid késleltetés mod", - "INST": "shorter_delay_mod telepítése", - "DEINST": "shorter_delay_mod visszaállítása", - "toolTip": "
    Rövid késleltetés mod.
    Csökkenti a várakozási időt az oldalankénti lapozásnál 1.5 mp-ről auf 0.3 mp-re.
    A javított lista loopolás tweak törlése ezt a tweak-et is eltávolítja.", - "img": "", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 8, - "OpName": "Zeneszámok név szerinti rendezése és FLAC támogatás", - "INST": "media_order patch és FLAC támogatás telepítése", - "DEINST": "media_order patch és FLAC támogatás visszaállítása", - "toolTip": "
    Zeneszámok név szerinti rendezése és FLAC támogatás
    Zenék név szerinti rendezése és nem dátum szerinti rendezése. FLAC formátum támogatása.", - "img": "", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 9, - "OpName": "Hangforrások listájának rendezése", - "INST": "Hangforrások listájának megváltoztatása", - "DEINST": "Hangforrások eredeti listájának visszaállítása", - "toolTip": "
    Hangforrások listájának rendezése
    THangforrás lista rendezése:
  • FMRadio
  • DAB
  • USB_A
  • USB_B
  • BT_audio
  • CD
  • SatRadio
  • AhaRadio
  • Pandora
  • Stitcher
  • AuxIn
  • AMradio
  • DVD
  • TV
  • ", - "img": "", - "safetylvl": "warning", - "extraOps": false, - "advancedOp": false - }, - { - "id": 10, - "OpName": "Zenelejátszás megállítása némításkor", - "INST": "pause_on_mute telepítése", - "DEINST": "pause_on_mute visszaállítása", - "toolTip": "
    Zenelejátszás megállítása némításkor
    Elnémításkor (hangerőgomb megnyomásával) a lejátszott médiumok is szünetelnek.", - "img": "", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 11, - "OpName": "Automatikus üzenetaláírás törlése", - "INST": "Automatikus üzenetaláírás törlése patch", - "DEINST": "Automatikus üzenetaláírás visszaállítása", - "toolTip": "
    Automatikus üzenetaláírás törlése
    Törli a 'Mazda Quick Text Systemről küldve' sort az üzenetből.", - "img": "", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 12, - "OpName": "1 mp diagnózis menü elérés", - "INST": " 1 mp diagnózis menü elérés telepítése", - "DEINST": " 1 mp diagnózis menü elérés törlése", - "toolTip": "
    1 mp diagnózis menü elérés
    Biztosítja, hogy a diagnózis menü az órára való 1 mp-es nyomás után elérhető legyen a képernyő beállítások menüben.", - "img": "", - "safetylvl": "warning", - "extraOps": false, - "advancedOp": false - }, - { - "id": 13, - "OpName": "Boot animáció", - "INST": "Boot animáció törlése", - "DEINST": "Boot animáció visszaállítása", - "toolTip": "
    Boot animáció
    A boot animáció, amelyik a Mazda logó megjelenése után a főmenübe vezet át deaktiválódik.", - "img": "", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 14, - "OpName": "Nagyobb album fedőképek", - "INST": "Nagyobb album fedőképek törlése", - "DEINST": "Nagyobb album fedőképek visszaállítása", - "toolTip": "
    Nagyobb album fedőképek
    Nagyobb album fedőképek mutatása.", - "img": "", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 15, - "OpName": "Háttérkép nélküli gombok", - "INST": "Háttérkép nélküli gombok telepítése", - "DEINST": "Háttérkép nélküli gombok visszaállítása", - "toolTip": "
    Háttérkép nélküli gombok
    Átlátszóvá teszi a gombok hátterét.", - "img": "NoButtonBackground.jpg", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 16, - "OpName": "Üres album fedőképkeretek megváltoztatása", - "INST": "Üres album fedőképkeretek megváltoztatása", - "DEINST": "Üres album fedőképkeretek visszaállítása", - "toolTip": "
    Üres album fedőképkeretek megváltoztatása
    Az üres albumfedőkép, mely akkor jelenik meg ha nincs az előadóhoz tartozó kép a Gracenote adatbankban, eltűnik. Helyette egy rádió képe lesz látható, akkor is ha nincs fedőkép MP3 \"tag\"-ként. Támogatott fájl formátumok: jpg, jpeg és png (bármely méret). Figyelem: A választott kép át lesz konvertálva 146px x 146px-es méretre, DE NEM LESZ LEVÁGVA, és .png formátumba.", - "img": "", - "safetylvl": "safe", - "extraOps": true, - "advancedOp": false - }, - { - "id": 17, - "OpName": "Videólejátszó", - "INST": "Videólejátszó telepítése", - "DEINST": "Videólejátszó törlése", - "toolTip": "
    Videólejátszó
    Videólejátszó app hozzáadása a főmenühöz.", - "img": "", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 18, - "OpName": "Swapfájl", - "INST": "Media player v2 swapfájl létrehozása", - "DEINST": "Media player v2 swapfájl törlése", - "toolTip": "
    Swapfájl
    Telepítsük a swap fájlt egy olyan pendrivera, amely a kocsiban marad... A telepítő fájlok törlődnek ezután nem szabad a pendrive-ot menet közben leválasztani, mert a rendszer futásához szükséges adatok vannak rajta és tárhelyként is van használva... A pendrive-ot a jövőben csak akkor csatlakoztasd le, ha az MZD ki van kapcsolva.", - "img": "", - "safetylvl": "warning", - "extraOps": true, - "advancedOp": false - }, - { - "id": 19, - "OpName": "Speedometer", - "INST": "Speedometer telepítése", - "DEINST": "Speedometer törlése", - "toolTip": "
    Speedometer íránytűvel App-ként mutatása az alkalmazás menüben
    • a sebességmérő alatt km/h vagy mph látszik a beállítások függvényében
    • Max. mutatható sebesség: 240 km/h
    • Fogyasztási adatoks
    • Optimalizált grafikus elemek új sebességmérővel
    • Kis sebességmérő tű, mely a legnagyobb sebességet mutatja az analóg skálán
    • A skála különböző hosszúságú és világosságú az 5, 10 ill. 20 km/h-s felbontás függvényében
    • Jobboldali táblázat német és angol szövegekre lett optimalizálva
    • Minden számnak van árnyéka a jobb olvashatóság érdekében
    • Haladási iránytól függő iránytű a sebesség körül
    • Animált felület a fejlécben GPS által mért sebességgel és haladási iránnyal, mely egy érintéssel az órára bármelyik menüben előhozható vagy elrejthető
    • Szélességi és hosszúsági fokok a jobboldali táblázatban
    • Ha a navigáció vagy a tolatókamera aktiválódik, automatikusan elindul

    A kis sebességmérő fejlécben való mutatása a \"dátum a fejlécben\" mod V2.2 igényli, ezért ez automatikusan kiválasztásra kerül, ha nem történt még meg..", - "img": "mzd_SpeedoCompass.gif", - "safetylvl": "safe", - "extraOps": true, - "advancedOp": false - }, - { - "id": 20, - "OpName": "Statusbar Tweaks", - "INST": "Install Statusbar Tweaks", - "DEINST": "Remove Statusbar Tweaks", - "toolTip": "
    Statusbar Mods
    Add some Color to your statusbar text.

    Change Colors For:


    App Name: Title of the app or media source.

    Clock: This one is pretty self explanatory.

    Status Notification: Navigation notifications

    Remove Statusbar Background Image And
    Adjust Statusbar Opacity (From 0-1: 0 = transparent, 1 = Black)

    Safe for all FW Versions
    Date In Status Bar Mod.
    Permanently visible date + icons by the clock, even if system messages are displayed.", - "img": "mzd_datum_icons_all.jpg", - "safetylvl": "safe", - "extraOps": true, - "advancedOp": false - }, - { - "id": 22, - "OpName": "Fogyasztás Tweak", - "INST": "Fogyasztás Tweak telepítése", - "DEINST": "Fogyasztás Tweak visszaállítása", - "toolTip": "
    Fogyasztás Tweak
    Fogyasztás mutatása KM/L-ben (vagy MPG-ben)", - "img": "FuelConsumptionTweak.jpg", - "safetylvl": "safe", - "extraOps": false, - "advancedOp": false - }, - { - "id": 23, - "OpName": "Traffipax patch", - "INST": " Traffipax patch telepítése", - "DEINST": " Traffipax patch visszaállítása", - "toolTip": "
    Traffipax patch
    A navigáció patchelése, hogy külsős kamera és traffipax adatbankok is használhatóak legyenek... Lehetőség nyílik a 'speedcam.txt' fájl SD kártyára másolására, amely így importálásra kerül.", - "img": "", - "safetylvl": "warning", - "extraOps": true, - "advancedOp": false - }, - { - "id": 24, - "OpName": "Castscreen vevő", - "INST": "Castscreen vevő telepítése", - "DEINST": "Castscreen vevő visszaállítása", - "toolTip": "
    Castscreen vevő
    Telepítés után a mobiltelefon képernyőjét duplikálni lehet (mirroring) az MZD képernyőjére.
    • Az androidos CastScreen App (castscreen-1.0.apk) telepítése szükséges. Ez megtalálható a 'config' mappában, ha a Tweak ki lett választva,
    • Csatlakoztasd a telefont egy USB kábellel az MZD-hez,
    • Indítsd el az applikációt, beállítások: H264, 800x480 @ 160, 1 Mbps, 127.0.0.1 és \"input receiver\"-t kiválasztani, jobboldalt fent a 'Start' gombot megnyomni.
    .", - "img": "", - "safetylvl": "warning", - "extraOps": true, - "advancedOp": false - }, - { - "id": 25, - "OpName": "Android Auto fejegység applikáció", - "INST": "Android Auto fejegység applikáció telepítése", - "DEINST": "Android Auto fejegység applikáció visszaállítása", - "toolTip": "
    Android Auto fejegység applikáció. Android Auto (AA) az infotainment rendszerhez.

    1. Az Android Applikáció telepítése a Google Play Store-ból::HERE.
    2. Csatlakoztasd a telefont USB-n és bluetooth-on keresztül az Infotainment rendszerhez.
    3. Manuálisan a bluetooth-ot, mint audióbemenetet kiválasztani.
    4. Android Auto indítása az alkalmazásmenüből a fejegységen.
    5. Egy fekete képernyő jelenik meg köszöntemondással a fejlesztőknek, utána automatikusan átáll bluetooth kapcsolatra.
    6. Android Auto elindul. Ha mégsem, akkor húzd ki az USB kábeld és dugd be újra (vagy győződj meg a megfelelő telepítésről).
    7. Két lehetőség van az AA bezárására - Húzdd ki az USB kábelt vagy használd a képernyő menüben a 'Vissza a Mazda Connect-be' legalul a speedo ikonnál...
    8. Kihúzás után megmarad a fekete képernyü. Nyomd meg a \"Home\" gombot a kezelőegységen. Azért kell ezt tenni mert a JavaScript-es dupla kattintás nem működik..
    **Ami még nem működik:**
    1. Tolatókamera képe fekete.
    2. hangvezérlés
    3. Multitouch
    4. Google Maps mindig éjszakai módban van.

    Ahhoz, hogy az Android Auto kattintási eventeket tudjon kezelni, változtass az tweaks.sh-ban, keresés és felülírás a következő sorban: \"button_patch=no\" ==> \"button_patch=yes\" macskakörmök nélkül). Ez az AA rizikós része, bár állítólag már javítva van. Amint eléggé tesztelve lesz és biztonságosnak tekinthető a használata, bele fog kerülni a tweak-ek listájába.", - "img": "AndroidAuto.jpg", - "safetylvl": "development", - "extraOps": true, - "advancedOp": true - } - ] -} diff --git a/app/main.js b/app/main.js index 27d4fec..d7c3d64 100644 --- a/app/main.js +++ b/app/main.js @@ -9,7 +9,7 @@ ** ** ** ************************************************************************** ** \* ************************************************************************** */ -/* jshint esversion:6, -W033, -W117, -W097, -W116 */ +/* jshint esversion:8, -W033, -W117, -W097, -W116 */ 'use strict' const electron = require('electron') const app = electron.app @@ -47,10 +47,11 @@ require('./menus/shortcuts.js') require('./lib/log')(pjson.productName || 'MZD-AIO-TI') var hasColorFiles = fs.existsSync(`${app.getPath('userData')}/color-schemes/`) var hasSpeedCamFiles = fs.existsSync(`${app.getPath('userData')}/speedcam-patch/`) -var iconLoc = path.join(app.getAppPath(), "/icon.icns") -var favicon = "./app/icon.icns" +var iconLoc = path.join(app.getAppPath(), '/icon.icns') +var favicon = './app/icon.icns' +process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = true if (process.platform === 'win32') { - iconLoc = path.join(app.getAppPath(), "icon.ico") + iconLoc = path.join(app.getAppPath(), 'icon.ico') favicon = './app/icon.ico' } let nimage = nativeImage.createFromPath(iconLoc) @@ -80,7 +81,7 @@ if (isDev) { console.info('Running in development') app.setPath('home', path.resolve(`${__dirname}`)) console.log(`Home: ${app.getPath('home')}`) - //console.debug(JSON.stringify(pjson)) + // console.debug(JSON.stringify(pjson)) console.debug(JSON.stringify(persistantData.store)) console.debug(JSON.stringify(pjson.config)) } else { @@ -105,12 +106,12 @@ let tray = null let imageJoin = null app.setName(pjson.productName || 'MZD-AIO-TI') -function initialize() { +function initialize () { if (!persistantData.has('copyFolderLocation')) { persistantData.set('copyFolderLocation', app.getPath('desktop')) } - function onClosed() { + function onClosed () { // Dereference used windows downloadwin = null mailform = null @@ -120,7 +121,7 @@ function initialize() { app.quit() } - function createMainWindow() { + function createMainWindow () { let mainWindowState = windowStateKeeper({ defaultWidth: 1280, defaultHeight: 800 @@ -138,6 +139,7 @@ function initialize() { 'icon': favicon, 'webPreferences': { 'nodeIntegration': pjson.config.nodeIntegration || true, // Disabling node integration allows to use libraries such as jQuery/React, etc + 'nodeIntegrationInSubFrames': false, 'preload': path.resolve(path.join(__dirname, 'preload.js')) } }) @@ -145,7 +147,7 @@ function initialize() { // Remove file:// if you need to load http URLs win.loadURL(`file://${__dirname}/${pjson.config.url}`, {}) win.on('closed', onClosed) - win.on('unresponsive', function() { + win.on('unresponsive', function () { var unresponsiveClose = dialog.showMessageBox({ type: 'warning', title: 'Unresponsive', @@ -187,7 +189,7 @@ function initialize() { win.focus() }) - function setCopyLoc(loc) { + function setCopyLoc (loc) { persistantData.set('copyFolderLocation', app.getPath(loc)) win.webContents.send('set-copy-loc', app.getPath(loc)) console.log(`Copy_to_usb: ${persistantData.get('copyFolderLocation')}`) @@ -196,33 +198,33 @@ function initialize() { if (process.platform === 'win32') { tray = new Tray(nimage) var template = [{ - label: 'Location of _copy_to_usb', - submenu: [ - { label: 'Desktop', id: 'desktop', type: 'radio', checked: persistantData.get('copyFolderLocation').includes('Desktop'), click: function(menuItem, browserWindow, event) { setCopyLoc('desktop') } }, - { label: 'Downloads', id: 'downloads', type: 'radio', checked: persistantData.get('copyFolderLocation').includes('Downloads'), click: function(menuItem, browserWindow, event) { setCopyLoc('downloads') } }, - { label: 'Documents', id: 'documents', type: 'radio', checked: persistantData.get('copyFolderLocation').includes('Documents'), click: function(menuItem, browserWindow, event) { setCopyLoc('documents') } } - ] - }, + label: 'Location of _copy_to_usb', + submenu: [ + { label: 'Desktop', id: 'desktop', type: 'radio', checked: persistantData.get('copyFolderLocation').includes('Desktop'), click: function (menuItem, browserWindow, event) { setCopyLoc('desktop') } }, + { label: 'Downloads', id: 'downloads', type: 'radio', checked: persistantData.get('copyFolderLocation').includes('Downloads'), click: function (menuItem, browserWindow, event) { setCopyLoc('downloads') } }, + { label: 'Documents', id: 'documents', type: 'radio', checked: persistantData.get('copyFolderLocation').includes('Documents'), click: function (menuItem, browserWindow, event) { setCopyLoc('documents') } } + ] + }, { type: 'separator' }, - { label: 'Open _copy_to_usb Folder', click: function() { win.webContents.send('open-copy-folder') } }, - { - label: 'Delete _copy_to_usb Folder', - type: 'normal', - click: function(menuItem, browserWindow, event) { - rimraf(path.normalize(path.join(persistantData.get('copyFolderLocation'), '_copy_to_usb')), function(e) { - if (e) { - console.error(e.message) - dialog.showErrorBox(`Error Deleting ${path.normalize(path.join(persistantData.get('copyFolderLocation'), '_copy_to_usb'))}`, `${e.message}`) - } else { - console.log(`Deleted ${path.normalize(path.join(persistantData.get('copyFolderLocation'), '_copy_to_usb'))}`) - win.webContents.send('snackbar-msg', `Deleted ${path.normalize(path.join(persistantData.get('copyFolderLocation'), '_copy_to_usb'))}`) - } - }) - } - }, + { label: 'Open _copy_to_usb Folder', click: function () { win.webContents.send('open-copy-folder') } }, + { + label: 'Delete _copy_to_usb Folder', + type: 'normal', + click: function (menuItem, browserWindow, event) { + rimraf(path.normalize(path.join(persistantData.get('copyFolderLocation'), '_copy_to_usb')), function (e) { + if (e) { + console.error(e.message) + dialog.showErrorBox(`Error Deleting ${path.normalize(path.join(persistantData.get('copyFolderLocation'), '_copy_to_usb'))}`, `${e.message}`) + } else { + console.log(`Deleted ${path.normalize(path.join(persistantData.get('copyFolderLocation'), '_copy_to_usb'))}`) + win.webContents.send('snackbar-msg', `Deleted ${path.normalize(path.join(persistantData.get('copyFolderLocation'), '_copy_to_usb'))}`) + } + }) + } + }, { type: 'separator' }, - { label: 'Fullscreen', click: function() { win.setFullScreen(!win.isFullScreen()) } }, - { label: 'Close', role: 'close', click: function() { win.close() } } + { label: 'Fullscreen', click: function () { win.setFullScreen(!win.isFullScreen()) } }, + { label: 'Close', role: 'close', click: function () { win.close() } } ] var trayMenu = Menu.buildFromTemplate(template) tray.setToolTip('MZD-AIO-TI') @@ -231,14 +233,7 @@ function initialize() { win.isVisible() ? win.hide() : win.show() }) tray.on('double-click', () => { - win.show() - win.setFullScreen(!win.isFullScreen()) - }) - win.on('show', () => { - tray.setHighlightMode('always') - }) - win.on('hide', () => { - tray.setHighlightMode('never') + win.setFullScreen(win.isVisible()) }) } // if (isDev) { @@ -304,6 +299,20 @@ function initialize() { // save some persistant data persistantData.set('visits', v) }) + app.on('web-contents-created', (event, contents) => { + contents.on('new-window', (event, url, frameName, disposition, options) => { + // event.preventDefault() + if(options.webPreferences) { + options.webPreferences.nodeIntegration = false + //console.dir(options.webPreferences) + //console.dir(event) + //console.log(url) + //console.log(disposition) + //console.log(frameName) + //console.dir(options) + } + }) + }) ipc.on('reset-window-size', () => { mainWindow.setSize(1280, 800) mainWindow.center() @@ -361,9 +370,9 @@ function initialize() { // Make this app a single instance app. // The main window will be restored and focused instead of a second window // opened when a person attempts to launch a second instance. -function makeSingleInstance(lock) { +function makeSingleInstance (lock) { if (!lock) { - console.warn("Single Instance App - Quit") + console.warn('Single Instance App - Quit') app.quit() } else { app.on('second-instance', (event, commandLine, workingDirectory) => { @@ -375,53 +384,49 @@ function makeSingleInstance(lock) { } } -function getUSBDrives() { +async function getUSBDrives () { var disks = [] + var dsklst = await drivelist.list() var aioInfo var aioBkups = [] var aioJSON = null - drivelist.list((error, dsklst) => { - if (error) { - console.error(error) - return - } else if (typeof dsklst !== "undefined") { - dsklst.forEach((drive) => { - var sizeGB = Math.round(drive.size / 100000000) / 10 - if (!drive.system && drive.mountpoints[0]) { - console.log(`Raw: ${drive.raw}\n Mountpoint: ${drive.mountpoints[0].path}\n Description: ${drive.description}\n Size: ${sizeGB}GB`) - disks.push({ 'desc': drive.description, 'mp': drive.mountpoints[0].path }) - } - }) - if (typeof disks !== "undefined" && disks.length) { - disks.forEach((drive) => { - try { - if (fs.existsSync(`${drive.mp}/AIO_info.json`)) { - console.log(`Found AIO_info.json on USB Drive - ${drive.mp} ${drive.desc}`) - aioJSON = fs.readFileSync(`${drive.mp}/AIO_info.json`) - } - } catch (e) { - console.dir(e) - dialog.showErrorBox("USB DRIVE ERROR", `Error reading from ${drive.mp} ${drive.desc}: ${e.toString()}. Data on the device might be corrupt.`) - } - }) + if (typeof dsklst !== 'undefined') { + dsklst.forEach((drive) => { + var sizeGB = Math.round(drive.size / 100000000) / 10 + if (!drive.system && drive.mountpoints[0]) { + console.log(`Raw: ${drive.raw}\n Mountpoint: ${drive.mountpoints[0].path}\n Description: ${drive.description}\n Size: ${sizeGB}GB`) + disks.push({ 'desc': drive.description, 'mp': drive.mountpoints[0].path }) } - if (aioJSON) { + }) + if (typeof disks !== 'undefined' && disks.length) { + disks.forEach((drive) => { try { - aioInfo = JSON.parse(aioJSON) - aioBkups = aioInfo.Backups - console.log(aioBkups) - /* console.log(`FW_VER: ${aioInfo.info.CMU_SW_VER}`) - console.log(`AIO_VER: ${aioInfo.info.AIO_VER}`) */ - persistantData.set('FW', aioInfo.info.CMU_SW_VER) - persistantData.set('last_aio', aioInfo.info.AIO_VER) - //_.pullAll(aioBkups) - if (mainWindow) { - mainWindow.webContents.send('aio-info') + if (fs.existsSync(`${drive.mp}/AIO_info.json`)) { + console.log(`Found AIO_info.json on USB Drive - ${drive.mp} ${drive.desc}`) + aioJSON = fs.readFileSync(`${drive.mp}/AIO_info.json`) } - } catch (e) { console.error(e.toString()) } - } + } catch (e) { + console.dir(e) + dialog.showErrorBox('USB DRIVE ERROR', `Error reading from ${drive.mp} ${drive.desc}: ${e.toString()}. Data on the device might be corrupt.`) + } + }) } - }) + if (aioJSON) { + try { + aioInfo = JSON.parse(aioJSON) + aioBkups = aioInfo.Backups + console.log(aioBkups) + /* console.log(`FW_VER: ${aioInfo.info.CMU_SW_VER}`) + console.log(`AIO_VER: ${aioInfo.info.AIO_VER}`) */ + persistantData.set('FW', aioInfo.info.CMU_SW_VER) + persistantData.set('last_aio', aioInfo.info.AIO_VER) + // _.pullAll(aioBkups) + if (mainWindow) { + mainWindow.webContents.send('aio-info') + } + } catch (e) { console.error(e.toString()) } + } + } } /* function createMenu () { return Menu.buildFromTemplate(require('./lib/menu')) @@ -429,15 +434,15 @@ function getUSBDrives() { // Manage Squirrel startup event (Windows) // require('./lib/auto-update/startup')(initialize) -ipc.on('open-file-bg', function(event) { +ipc.on('open-file-bg', function (event) { openBGFolder(backgroundDir, event) }) -ipc.on('open-file-default', function(event) { +ipc.on('open-file-default', function (event) { event.sender.send('selected-bg', defaultDir + 'default.png') // openBGFolder(defaultDir, event) }) -function openBGFolder(path, event) { +function openBGFolder (path, event) { dialog.showOpenDialog({ title: 'MZD-AIO-TI | Background Image Will Be Resized To: 800 px X 480 px and converted to png format.', properties: ['openFile'], @@ -445,11 +450,11 @@ function openBGFolder(path, event) { filters: [ { name: 'Background Image', extensions: ['png', 'jpg', 'jpeg'] } ] - }, function(files) { + }, function (files) { if (files) { event.sender.send('selected-bg', files) } }) } -ipc.on('open-offscreen-bg', function(event) { +ipc.on('open-offscreen-bg', function (event) { dialog.showOpenDialog({ title: 'MZD-AIO-TI | Off Screen Background Image Will Be Resized To: 800 px X 480 px and converted to png format.', properties: ['openFile'], @@ -457,20 +462,20 @@ ipc.on('open-offscreen-bg', function(event) { filters: [ { name: 'Off Screen Background Image', extensions: ['png', 'jpg', 'jpeg'] } ] - }, function(files) { + }, function (files) { if (files) { event.sender.send('selected-offscreen-bg', files) } }) }) -ipc.on('open-offscreen-default', function(event) { +ipc.on('open-offscreen-default', function (event) { event.sender.send('selected-offscreen-bg', defaultDir + 'OffScreenBackground.png') }) -ipc.on('default-blnk-art', function(event) { +ipc.on('default-blnk-art', function (event) { event.sender.send('selected-album-art', blankAlbumArtDir + 'no_artwork_icon.png') }) -ipc.on('transparent-blnk-art', function(event) { +ipc.on('transparent-blnk-art', function (event) { event.sender.send('selected-album-art', blankAlbumArtDir + 'no_artwork_icon_blank.png') }) -ipc.on('open-file-blnk-art', function(event) { +ipc.on('open-file-blnk-art', function (event) { dialog.showOpenDialog({ title: 'MZD-AIO-TI | Blank Album Art Image Will Be Resized To: 146 px X 146 px and converted to png format.', properties: ['openFile'], @@ -478,7 +483,7 @@ ipc.on('open-file-blnk-art', function(event) { filters: [ { name: 'Blank Album Art', extensions: ['png', 'jpg', 'jpeg'] } ] - }, function(files) { + }, function (files) { if (files) { event.sender.send('selected-album-art', files) } }) }) @@ -489,21 +494,21 @@ ipc.on('bg-no-resize', (event, arg) => { filters: [ { name: 'Background Image', extensions: ['png', 'jpg', 'jpeg'] } ] - }, function(files) { + }, function (files) { if (files) { event.sender.send('selected-joined-bg', files) } }) }) -ipc.on('theme-jci', function(event) { +ipc.on('theme-jci', function (event) { openThemeDialog(event) }) -function openThemeDialog(event) { +function openThemeDialog (event) { dialog.showOpenDialog({ title: 'MZD-AIO-TI | Choose The JCI Folder From Any Theme Package.', properties: ['openDirectory'] - }, function(files) { + }, function (files) { if (files) { event.sender.send('custom-theme', files) } else { @@ -532,7 +537,7 @@ ipc.on('download-aio-files', (event, arg) => { downloadZip(`${fileName}`) }) - function downloadZip(arg) { + function downloadZip (arg) { downloadwin = new BrowserWindow({ show: false, frame: false, @@ -542,13 +547,13 @@ ipc.on('download-aio-files', (event, arg) => { } }) resetDL() - downloadwin.loadURL(path.join("http://trevelopment.win", `${arg}`)) + downloadwin.loadURL(path.join('http://trevelopment.win', `${arg}`)) downloadwin.on('closed', () => { downloadwin = null }) } - function resetDL() { + function resetDL () { downloadwin.webContents.session.once('will-download', (event, item, webContents) => { // fileSize = (typeof fileSize === 'undefined') ? item.getTotalBytes() : fileSize; // Set the save path, making Electron not to prompt a save dialog. @@ -559,7 +564,7 @@ ipc.on('download-aio-files', (event, arg) => { if (fs.existsSync(`${savePath}`)) { console.log(`${path.resolve(savePath)} Already Exists`) item.cancel() - extract(`${savePath}`, { dir: `${app.getPath('userData')}` }, function(err) { + extract(`${savePath}`, { dir: `${app.getPath('userData')}` }, function (err) { if (err) { console.error(err) } fs.unlinkSync(`${savePath}`) console.log(`${fileName} unzipped & deleted`) @@ -570,7 +575,7 @@ ipc.on('download-aio-files', (event, arg) => { var fileSize = 107 if (`${fileName}` === 'speedcam-patch.zip') { fileSize += 80 } // var totalSize = parseInt(`${item.getTotalBytes()}`/1000000) - item.on('updated', function(event, state) { + item.on('updated', function (event, state) { if (state === 'interrupted') { mainWindow.webContents.send('notif-progress', 'Download interrupted. Please try again.') console.log('Download is interrupted, canceling') @@ -587,7 +592,7 @@ ipc.on('download-aio-files', (event, arg) => { item.once('done', (event, state) => { if (state === 'completed') { console.log(`${savePath} Downloaded successfully`) - extract(`${savePath}`, { dir: `${app.getPath('userData')}` }, function(err) { + extract(`${savePath}`, { dir: `${app.getPath('userData')}` }, function (err) { if (err) { console.error(err) } fs.unlinkSync(`${savePath}`) console.log(`${fileName} unzipped & deleted`) diff --git a/app/menus/context-menu.js b/app/menus/context-menu.js index 4e25ef5..b5a59c4 100644 --- a/app/menus/context-menu.js +++ b/app/menus/context-menu.js @@ -12,10 +12,10 @@ require('electron-context-menu')({ { type: 'separator' }, { label: 'Full Screen', - accelerator: (function() { - if (process.platform === 'darwin') { return 'Ctrl+Command+F'; } else { return 'F11' } + accelerator: (function () { + if (process.platform === 'darwin') { return 'Ctrl+Command+F' } else { return 'F11' } })(), - click: function(item, focusedWindow) { if (focusedWindow) focusedWindow.setFullScreen(!focusedWindow.isFullScreen()) } + click: function (item, focusedWindow) { if (focusedWindow) focusedWindow.setFullScreen(!focusedWindow.isFullScreen()) } }, { label: 'Minimize', accelerator: 'CmdOrCtrl+M', role: 'minimize' }, { type: 'separator' }, @@ -23,9 +23,9 @@ require('electron-context-menu')({ { label: 'Zoom Out', accelerator: 'CmdOrCtrl+-', role: 'zoomout' }, { label: 'Reset Zoom', accelerator: 'CmdOrCtrl+=', role: 'resetzoom' }, { type: 'separator' }, - { label: 'Save', accelerator: 'CmdOrCtrl+s', click: function(item, focusedWindow) { focusedWindow.webContents.send('save-options') } }, - { label: 'Load', accelerator: 'CmdOrCtrl+l', click: function(item, focusedWindow) { focusedWindow.webContents.send('load-options') } }, - { label: 'Load Last Compile', accelerator: 'CmdOrCtrl+Shift+L', click: function(item, focusedWindow) { focusedWindow.webContents.send('load-last') } }, + { label: 'Save', accelerator: 'CmdOrCtrl+s', click: function (item, focusedWindow) { focusedWindow.webContents.send('save-options') } }, + { label: 'Load', accelerator: 'CmdOrCtrl+l', click: function (item, focusedWindow) { focusedWindow.webContents.send('load-options') } }, + { label: 'Load Last Compile', accelerator: 'CmdOrCtrl+Shift+L', click: function (item, focusedWindow) { focusedWindow.webContents.send('load-last') } }, { type: 'separator' }, { label: 'Reload View', accelerator: 'CmdOrCtrl+R', role: 'reload' }, // , click: function (item, focusedWindow) {if (focusedWindow) focusedWindow.reload()}}, { label: 'Quit', accelerator: 'CmdOrCtrl+Q', role: 'quit' } // , click: function (item, focusedWindow) {if (focusedWindow) focusedWindow.close()} diff --git a/app/menus/menu.js b/app/menus/menu.js index 38315fe..08a4295 100644 --- a/app/menus/menu.js +++ b/app/menus/menu.js @@ -10,7 +10,7 @@ const electron = require('electron') const { BrowserWindow, Menu, app, shell } = electron const ipc = electron.ipcMain -function sendAction(action) { +function sendAction (action) { const win = BrowserWindow.getFocusedWindow() if (process.platform === 'darwin') { win.restore() @@ -18,177 +18,172 @@ function sendAction(action) { win.webContents.send(action) } const viewSubmenu = [{ - label: 'Back', - accelerator: 'CmdOrCtrl+B', - click: function(item, focusedWindow) { - if (focusedWindow) { - focusedWindow.webContents.goBack() - } + label: 'Back', + accelerator: 'CmdOrCtrl+B', + click: function (item, focusedWindow) { + if (focusedWindow) { + focusedWindow.webContents.goBack() + } + } +}, +{ + label: 'Reload', + accelerator: 'CmdOrCtrl+R', + click: function (item, focusedWindow) { + if (focusedWindow) { + focusedWindow.reload() + } + } +}, +{ + type: 'separator' +}, +{ + role: 'togglefullscreen' +}, +{ + label: 'Zoom In', + id: 'zoom-in', + accelerator: 'CmdOrCtrl+Plus', + enabled: false, + click () { + sendAction('zoom-in') + } +}, { + label: 'Zoom Out', + id: 'zoom-out', + accelerator: 'CmdOrCtrl+-', + enabled: false, + click () { + sendAction('zoom-out') + } +}, { + label: 'Reset Zoom', + id: 'zoom-actual', + accelerator: 'CmdOrCtrl+=', + enabled: false, + click () { + sendAction('zoom-actual') + } +} +] + +let template = [{ + label: 'File', + submenu: [{ + label: 'Save', + accelerator: 'CmdOrCtrl+s', + role: 'save', + click: function (item, focusedWindow) { + sendAction('save-options') } }, { - label: 'Reload', - accelerator: 'CmdOrCtrl+R', - click: function(item, focusedWindow) { - if (focusedWindow) { - focusedWindow.reload() - } + label: 'Load', + accelerator: 'CmdOrCtrl+l', + role: 'load', + click: function (item, focusedWindow) { + sendAction('load-options') + } + + }, + { + label: 'Load Last Compile', + accelerator: 'CmdOrCtrl+Shift+L', + role: 'load', + click: function (item, focusedWindow) { + sendAction('load-last') } }, { type: 'separator' }, { - role: 'togglefullscreen' + label: 'Cut', + accelerator: 'CmdOrCtrl+X', + role: 'cut' }, { - label: 'Zoom In', - id: 'zoom-in', - accelerator: 'CmdOrCtrl+Plus', - enabled: false, - click() { - sendAction('zoom-in') + label: 'Copy', + accelerator: 'CmdOrCtrl+C', + role: 'copy' + }, + { + label: 'Paste', + accelerator: 'CmdOrCtrl+V', + role: 'paste' + }, + { + label: 'Select All', + accelerator: 'CmdOrCtrl+A', + role: 'selectall' + } + ] +}, +{ + label: 'Window', + role: 'window', + submenu: [{ + label: 'Reload', + accelerator: 'CmdOrCtrl+R', + click: function (item, focusedWindow) { + if (focusedWindow) { focusedWindow.reload() } } }, { - label: 'Zoom Out', - id: 'zoom-out', - accelerator: 'CmdOrCtrl+-', - enabled: false, - click() { - sendAction('zoom-out') + label: 'Full Screen', + accelerator: (function () { + if (process.platform === 'darwin') { return 'Ctrl+Command+F' } else { return 'F11' } + })(), + click: function (item, focusedWindow) { + if (focusedWindow) { focusedWindow.setFullScreen(!focusedWindow.isFullScreen()) } } }, { + label: 'Minimize', + accelerator: 'CmdOrCtrl+M', + role: 'minimize' + }] +}, +{ + label: 'Zoom', + role: 'zoom', + submenu: [{ label: 'Reset Zoom', - id: 'zoom-actual', - accelerator: 'CmdOrCtrl+=', - enabled: false, - click() { - sendAction('zoom-actual') - } - } -] - -let template = [{ - label: 'File', - submenu: [{ - label: 'Save', - accelerator: 'CmdOrCtrl+s', - role: 'save', - click: function(item, focusedWindow) { - sendAction('save-options') - } - }, - { - label: 'Load', - accelerator: 'CmdOrCtrl+l', - role: 'load', - click: function(item, focusedWindow) { - sendAction('load-options') - } - - }, - { - label: 'Load Last Compile', - accelerator: 'CmdOrCtrl+Shift+L', - role: 'load', - click: function(item, focusedWindow) { - sendAction('load-last') - } - }, - { - type: 'separator' - }, - { - label: 'Cut', - accelerator: 'CmdOrCtrl+X', - role: 'cut' - }, - { - label: 'Copy', - accelerator: 'CmdOrCtrl+C', - role: 'copy' - }, - { - label: 'Paste', - accelerator: 'CmdOrCtrl+V', - role: 'paste' - }, - { - label: 'Select All', - accelerator: 'CmdOrCtrl+A', - role: 'selectall' - }, - ] - }, - { - label: 'Window', - role: 'window', - submenu: [{ - label: 'Reload', - accelerator: 'CmdOrCtrl+R', - click: function(item, focusedWindow) { - if (focusedWindow) - focusedWindow.reload(); - } - }, { - label: 'Full Screen', - accelerator: (function() { - if (process.platform === 'darwin') - return 'Ctrl+Command+F'; - else - return 'F11'; - })(), - click: function(item, focusedWindow) { - if (focusedWindow) - focusedWindow.setFullScreen(!focusedWindow.isFullScreen()); - } - }, { - label: 'Minimize', - accelerator: 'CmdOrCtrl+M', - role: 'minimize' - }] + accelerator: '=', + role: 'resetzoom' }, { - label: 'Zoom', - role: 'zoom', - submenu: [{ - label: 'Reset Zoom', - accelerator: '=', - role: "resetzoom" - }, - { - label: 'Zoom In', - accelerator: 'Plus', - role: "zoomin" - }, - { - label: 'Zoom Out', - accelerator: '-', - role: "zoomout" - } - ] + label: 'Zoom In', + accelerator: 'Plus', + role: 'zoomin' }, { - label: 'Help', - role: 'help', - submenu: [ + label: 'Zoom Out', + accelerator: '-', + role: 'zoomout' + } + ] +}, +{ + label: 'Help', + role: 'help', + submenu: [ /* { label: 'Info', click: () => { ipc.emit('open-info-window') } - },*/ - { - label: 'Learn More: MazdaTweaks.com', - click: function() { shell.openExternal('http://aio.trevelopment.win/mazdatweaks') } - }, - { - label: 'Forum: Mazda3Revolution.com', - click: function() { shell.openExternal('http://aio.trevelopment.win/mazda3revolution') } - } - ] - }, - /*{ + }, */ + { + label: 'Learn More: MazdaTweaks.com', + click: function () { shell.openExternal('http://aio.trevelopment.win/mazdatweaks') } + }, + { + label: 'Forum: Mazda3Revolution.com', + click: function () { shell.openExternal('http://aio.trevelopment.win/mazda3revolution') } + } + ] +}, + /* { label: 'Back', accelerator: 'CmdOrCtrl+B', click: function (item, focusedWindow) { @@ -201,14 +196,14 @@ let template = [{ label: 'Close', accelerator: 'CmdOrCtrl+W', role: 'close' - },*/ - { - label: 'Quit', - accelerator: 'CmdOrCtrl+Q', - role: 'quit' - } -]; -/*if (process.platform === 'darwin') { + }, */ +{ + label: 'Quit', + accelerator: 'CmdOrCtrl+Q', + role: 'quit' +} +] +/* if (process.platform === 'darwin') { const name = app.getName(); template.unshift({ label: name, @@ -263,11 +258,11 @@ let template = [{ role: 'front' }); } - }*/ -app.on('ready', function() { + } */ +app.on('ready', function () { const menu = Menu.buildFromTemplate(template) Menu.setApplicationMenu(menu) - return template; + return template }) /* app.on('browser-window-created', function () { @@ -278,4 +273,4 @@ app.on('ready', function() { app.on('window-all-closed', function () { let reopenMenuItem = findReopenMenuItem() if (reopenMenuItem) reopenMenuItem.enabled = true -})*/ +}) */ diff --git a/app/opts/25options.htm b/app/opts/25options.htm index 5dad11c..4b05c82 100644 --- a/app/opts/25options.htm +++ b/app/opts/25options.htm @@ -10,7 +10,7 @@
    - AA v1.10+ + AA v1.12
    @@ -19,6 +19,7 @@
    +
    (to /data/headunit.log)
    @@ -27,7 +28,7 @@ - (flips the heading data 180°) +
    (flips the heading data 180°)
    @@ -61,15 +62,18 @@
    For more information, previous releases, or to check for new releases visit the Headunit Info Page and the Headunit Repository

    Full Changelog

    -

    AIO

    -

    v2.8.4

    -

    Android Auto Headunit App v1.11

    -
    • Tweaked Linux Stack TCP Buffers
    • More Stable HUD support (It is not perfect yet)
      • Detects if HUD is present, if not available the feature is not used
    • Buttons Remapped:
      • Home: AA Home screen
      • Ent: AA Music screen
      • Nav: AA Navigation screen
      • Fav: Switch Audio Focus (MZD <-> AA)
      • Call End (Steering Wheel): Exit AA (when not in active call otherwise reject/end call)
    -

    AIO Tweaks App v1.0

    -
    • Applies CASDK localStorage tweak for saving options (for Video Player app too)
    • Show localStorage Button shows the contents of localStorage (Values saved by Video Player, AIO Tweaks, and CASDK apps)
    • adb kill-server Button kills adb server
    • Check IP Address Button shows IP address (if WIFI or hotspot is connected or else there is no IP address)
    • Wink Test Button shows test wink notification
    • Better behavior from "Start/Stop" Android Auto buttons
    -

    Date 2 Statusbar / Statusbar Speedometer

    -
    • Minor spacing adjustments for date
    • Coolant temp color (blue = under 30º; yellow = under 55º)
    -

    Touchscreen While Driving Option - DVDs While Driving

    -
    • Enable Playing DVDs while driving (DVD Player Required)
    -

    Fuel Consumption Tweak FIXED

    -
    • Added calculations for km/L (as default)
    • Added L/100km option (as converted)
    • Fixed all calculations (L/100km <-> km/L <-> mpg)
    • If you choose the same unit as your default, will show the same value twice - this is expected behavior
      • Example: If your default is mpg and you choose mpg will show same number (in mpg) for both top and bottom values
      • The top value is in your default unit, bottom value is converted to chosen unit
    -

    Semi-Transparent Parking Sensors

    -
    • Shows relevant colors based on distance (Green - Yellow - Orange - Red)
    -

    No More Beeps

    -
    • Fixed for FW v59.00.502+
    -

    Autorun & Recovery

    -
    • Fixed Firewall Recovery (jci-fw.sh)
    • Fixed a bug where selecting autorun before compiling Full System Restore would create an autorun installer.
    • Added additional WARNING message that tweaking ability will be lost (and a chance to cancel uninstallation) when choosing to uninstall on FW 59.00.502+
    -

    CASDK Apps available by default

    • Snake
    • Simple Speedometer
    -

    Mac & Linux Quirks

    -
    • Fixed Blank window sometimes when navigating between Tweaks, CASDK, Autorun, & System Restore views
    • Fixed Some of the "Open" buttons opening incorrect folders or none at all

    • Various other bug fixes

    +

    AIO + CASDK

    + +

    v2.8.5

    + +

    Android Auto Headunit App v1.12

    + +
    • HUD Improvements
    • Wifi Mode: IP Address Detection for Android v9 Pie
    • Button Remaps: (Long Hold = Press for 3+ seconds, action on key up)
      • Exit AA: Long Hold Call End or Back (No longer single click Call End)
      • Take Video Focus: Long Hold Home (If AA has controller focus and loses video focus for any reason)
      • Release Audio Focus: Long Hold Fav (Single click Fav is now Play/Pause for AA audio only)
    + +

    Speedometer v6.1

    + +
    • Websocket rework (for faster update rates)
    • Digital clock font rework (numbers are fixed width like a real digital clock)
      • Digital Clock Before ==> Digital Clock After
    + +

    Autorun & Recovery (& Serial)

    + +
    • Updated for v70.00.335+ (Must perform DURING update or reinstall)
      • Make sure to make the serial connection BEFORE UPDATING TO v70.00.335
      • If you have already updated to v70.00.335 you can reinstall the same version over it.
    • Added Serial Instructions Screen (From help drop-down menu and left side pop-out menu)
    • Autorun installer will use "Skip Confirmation" Option
    + +

    For Unknow FW > v70.00.352

    + +
    • Riskier tweaks will individually prompt to "Install" or "Skip" (At your own risk)
      • No More Disclaimer
      • Order of Audio Source List
      • Date 2 Statusbar
    • All other tweaks compatible with v70.00.335 will install but check the forums for more compatibility info & use caution + +

      Improvements

      + +
      • 🐛 Bug Fixes
      • ☑️ Integrity Checks
      • 🌐 Safety Nets
      diff --git a/package-lock.json b/package-lock.json index d32490a..cece638 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,41 +1,130 @@ { "name": "MZD-AIO-TI", - "version": "2.8.4", + "version": "2.8.5", "lockfileVersion": 1, "requires": true, "dependencies": { "7zip-bin": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-4.1.0.tgz", - "integrity": "sha512-AsnBZN3a8/JcNt+KPkGGODaA4c7l3W5+WpeKgGSbstSLxqWtTXqd1ieJGBQ8IFCtRg8DmmKUcSkIkUc0A4p3YA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz", + "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==", "dev": true }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@develar/schema-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.1.0.tgz", + "integrity": "sha512-qjCqB4ctMig9Gz5bd6lkdFr3bO6arOdQqptdBSpF1ZpCnjofieCciEzkoS9ujY9cMGyllYSCSmBJ3x9OKHXzoA==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", "dev": true, "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "@types/debug": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", + "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==", + "dev": true + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, "@types/node": { - "version": "10.12.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.24.tgz", - "integrity": "sha512-GWWbvt+z9G5otRBW8rssOFgRY87J9N/qbhqfjMZ+gUuL6zoL+Hm6gP/8qQBG4jjimqdaNLCehcVapZ/Fs2WjCQ==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.1.tgz", + "integrity": "sha512-hx6zWtudh3Arsbl3cXay+JnkvVgCKzCWKv42C9J01N2T2np4h8w5X8u6Tpz5mj38kE3M9FM0Pazx8vKFFMnjLQ==", "dev": true }, "abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "accessibility-developer-tools": { @@ -45,46 +134,38 @@ "dev": true }, "acorn": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", - "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", "dev": true }, "acorn-jsx": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.0.tgz", - "integrity": "sha512-XkB50fn0MURDyww9+UYL3c1yLbOBz0ZFvrdYlGB8l+Ije1oSC75qAqrzSPjYQbdnQUzhlUGNKuesryAv0gxZOg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", + "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", "dev": true }, "acorn-node": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.6.2.tgz", - "integrity": "sha512-rIhNEZuNI8ibQcL7ANm/mGyPukIaZsRNX9psFNQURyJW0nu6k8wjSDld20z6v2mDBWqX13pIEnk9gGZJHIlEXg==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "dev": true, "requires": { - "acorn": "^6.0.2", - "acorn-dynamic-import": "^4.0.0", - "acorn-walk": "^6.1.0", - "xtend": "^4.0.1" + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" } }, "acorn-walk": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", - "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz", + "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==", "dev": true }, "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "dev": true, + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", @@ -93,31 +174,30 @@ } }, "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", "dev": true }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true, - "optional": true - }, "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "dev": true, "requires": { - "string-width": "^2.0.0" + "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { @@ -127,30 +207,37 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, "ansi-escapes": { - "version": "3.1.0", - "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { @@ -159,50 +246,53 @@ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "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, + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", + "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", "requires": { - "color-convert": "^1.9.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, "app-builder-bin": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.6.3.tgz", - "integrity": "sha512-JL8C41e6yGIchFsHP/q15aGNedAaUakLhkV6ER0Yxafx08sRnlDnlkAkEIKjX7edg/4i7swpGa6CBv1zX9GgCA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.4.3.tgz", + "integrity": "sha512-qMhayIwi3juerQEVJMQ76trObEbfQT0nhUdxZz9a26/3NLT3pE6awmQ8S1cEnrGugaaM5gYqR8OElcDezfmEsg==", "dev": true }, "app-builder-lib": { - "version": "20.38.5", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.38.5.tgz", - "integrity": "sha512-vVgM9d9twwlhr+8vNAJOAD9dyVBRk7reuVa1BE1OmvaHb1M+fS8KpvcDKVdBqX9KDHy7zSc57mnIcHgax4/XMA==", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-21.2.0.tgz", + "integrity": "sha512-aOX/nv77/Bti6NymJDg7p9T067xD8m1ipIEJR7B4Mm1GsJWpMm9PZdXtCRiMNRjHtQS5KIljT0g17781y6qn5A==", "dev": true, "requires": { - "7zip-bin": "~4.1.0", - "app-builder-bin": "2.6.3", + "7zip-bin": "~5.0.3", + "@develar/schema-utils": "~2.1.0", "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.6", - "builder-util": "9.6.2", - "builder-util-runtime": "8.1.1", + "bluebird-lst": "^1.0.9", + "builder-util": "21.2.0", + "builder-util-runtime": "8.3.0", "chromium-pickle-js": "^0.2.0", "debug": "^4.1.1", - "ejs": "^2.6.1", - "electron-osx-sign": "0.4.11", - "electron-publish": "20.38.5", - "fs-extra-p": "^7.0.0", + "ejs": "^2.6.2", + "electron-publish": "21.2.0", + "fs-extra": "^8.1.0", "hosted-git-info": "^2.7.1", "is-ci": "^2.0.0", - "isbinaryfile": "^4.0.0", - "js-yaml": "^3.12.1", - "lazy-val": "^1.0.3", + "isbinaryfile": "^4.0.2", + "js-yaml": "^3.13.1", + "lazy-val": "^1.0.4", "minimatch": "^3.0.4", - "normalize-package-data": "^2.4.0", - "plist": "^3.0.1", - "read-config-file": "3.2.1", - "sanitize-filename": "^1.6.1", - "semver": "^5.6.0", - "temp-file": "^3.3.2" + "normalize-package-data": "^2.5.0", + "read-config-file": "5.0.0", + "sanitize-filename": "^1.6.2", + "semver": "^6.3.0", + "temp-file": "^3.3.4" }, "dependencies": { "debug": { @@ -214,32 +304,21 @@ "ms": "^2.1.1" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "js-yaml": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", - "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -255,7 +334,7 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "archiver": { "version": "2.1.1", @@ -273,10 +352,29 @@ "zip-stream": "^1.2.0" }, "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "bl": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "dev": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -286,6 +384,21 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } } } }, @@ -304,9 +417,9 @@ }, "dependencies": { "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -329,32 +442,14 @@ } }, "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -362,40 +457,20 @@ "dev": true }, "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" } }, "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, "asn1": { @@ -419,20 +494,16 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" }, "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "dev": true, - "requires": { - "lodash": "^4.17.11" - } + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz", + "integrity": "sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ==", + "dev": true }, "async-exit-hook": { "version": "2.0.1", @@ -459,49 +530,11 @@ "dev": true }, "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", + "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==", "dev": true }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", @@ -517,71 +550,10 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", - "dev": true - } - } - }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, "bcrypt-pbkdf": { @@ -594,103 +566,78 @@ } }, "bindings": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.4.0.tgz", - "integrity": "sha512-7znEVX22Djn+nYjxCWKDne0RRloa9XfYa84yk3s+HkE3LpDYZmhArYr9O9huBoHY3/oXispx5LorIX7Sl2CgSQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "requires": { "file-uri-to-path": "1.0.0" } }, "bl": { - "version": "1.2.2", - "resolved": "http://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", + "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" + "readable-stream": "^3.0.1" }, "dependencies": { - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, "bluebird": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "bluebird-lst": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.6.tgz", - "integrity": "sha512-CBWFoPuUPpcvMUxfyr8DKdI5d4kjxFl1h39+VbKxP3KJWJHEsLtuT4pPLkjpxCGU6Ask21tvbnftWXdqIxYldQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", "requires": { - "bluebird": "^3.5.2" + "bluebird": "^3.5.5" } }, "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", "term-size": "^1.2.0", + "type-fest": "^0.3.0", "widest-line": "^2.0.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { @@ -700,74 +647,61 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true } } }, "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" } }, "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz", + "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -778,6 +712,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, "requires": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" @@ -786,7 +721,8 @@ "buffer-alloc-unsafe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true }, "buffer-crc32": { "version": "0.2.13", @@ -797,44 +733,35 @@ "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true }, "buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "builder-util": { - "version": "9.6.2", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-9.6.2.tgz", - "integrity": "sha512-cWl/0/Q851lesMmXp1IjreeAX1QAWA9e+iU2IT61oh+CvMYJnDwao2m9ZCHammdw2zllrwWu4fOC3gvsb/yOCw==", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-21.2.0.tgz", + "integrity": "sha512-Nd6CUb6YgDY8EXAXEIegx+1kzKqyFQ5ZM5BoYkeunAlwz/zDJoH1UCyULjoS5wQe5czNClFQy07zz2bzYD0Z4A==", "dev": true, "requires": { - "7zip-bin": "~4.1.0", - "app-builder-bin": "2.6.3", - "bluebird-lst": "^1.0.6", - "builder-util-runtime": "^8.1.1", + "7zip-bin": "~5.0.3", + "@types/debug": "^4.1.4", + "app-builder-bin": "3.4.3", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "8.3.0", "chalk": "^2.4.2", "debug": "^4.1.1", - "fs-extra-p": "^7.0.0", + "fs-extra": "^8.1.0", "is-ci": "^2.0.0", - "js-yaml": "^3.12.1", - "source-map-support": "^0.5.10", - "stat-mode": "^0.2.2", - "temp-file": "^3.3.2" + "js-yaml": "^3.13.1", + "source-map-support": "^0.5.13", + "stat-mode": "^0.3.0", + "temp-file": "^3.3.4" }, "dependencies": { - "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, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -844,110 +771,76 @@ "ms": "^2.1.1" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "js-yaml": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", - "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, "builder-util-runtime": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.1.1.tgz", - "integrity": "sha512-+ieS4PMB33vVE2S3ZNWBEQJ1zKmAs/agrBdh7XadE1lKLjrH4aXYuOh9OOGdxqIRldhlhNBaF+yKMMEFOdNVig==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.3.0.tgz", + "integrity": "sha512-CSOdsYqf4RXIHh1HANPbrZHlZ9JQJXSuDDloblZPcWQVN62inyYoTQuSmY3KrgefME2Sv3Kn2MxHvbGQHRf8Iw==", "dev": true, "requires": { - "bluebird-lst": "^1.0.6", "debug": "^4.1.1", - "fs-extra-p": "^7.0.0", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtins": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-2.0.0.tgz", - "integrity": "sha1-AYmZZB4RJSGIZS27LbAa04b83EY=", - "dev": true, - "requires": { - "semver": "^5.4.1" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dev": true, "requires": { - "callsites": "^0.2.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } } }, "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camelcase": { @@ -966,12 +859,6 @@ "map-obj": "^1.0.0" } }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", - "dev": true - }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -1002,14 +889,40 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "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, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^1.9.0" + } + }, + "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, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } } }, "chardet": { @@ -1025,9 +938,9 @@ "dev": true }, "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" }, "chromium-pickle-js": { "version": "0.2.0", @@ -1041,39 +954,10 @@ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", "dev": true }, "cli-cursor": { @@ -1086,11 +970,50 @@ } }, "cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha1-ACwZkJEtDVlYDJO9NsBW3pnkJZo=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", + "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==", "dev": true }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", @@ -1098,20 +1021,26 @@ "dev": true }, "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { @@ -1121,22 +1050,23 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } @@ -1147,68 +1077,62 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + }, + "dependencies": { + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + } + } + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "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, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "colors": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", - "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=", - "dev": true - }, - "compare-version": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", - "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "optional": true }, "compress-commons": { "version": "1.2.2", @@ -1227,22 +1151,35 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, "conf": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/conf/-/conf-2.0.0.tgz", - "integrity": "sha512-iCLzBsGFi8S73EANsEJZz0JnJ/e5VZef/kSaxydYZLAvw0rFNAUx5R7K5leC/CXXR2mZfXWhUvcZOO/dM2D5xg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conf/-/conf-5.0.0.tgz", + "integrity": "sha512-lRNyt+iRD4plYaOSVTxu1zPWpaH0EOxgFIR1l3mpC/DGZ7XzhoGFMKmbl54LAgXcSu6knqWgOwdINkqm58N85A==", "requires": { - "dot-prop": "^4.1.0", - "env-paths": "^1.0.0", - "make-dir": "^1.0.0", - "pkg-up": "^2.0.0", - "write-file-atomic": "^2.3.0" + "ajv": "^6.10.0", + "dot-prop": "^5.0.0", + "env-paths": "^2.2.0", + "json-schema-typed": "^7.0.0", + "make-dir": "^3.0.0", + "pkg-up": "^3.0.1", + "write-file-atomic": "^3.0.0" } }, "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", "dev": true, "requires": { "dot-prop": "^4.1.0", @@ -1251,6 +1188,49 @@ "unique-string": "^1.0.0", "write-file-atomic": "^2.0.0", "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + } } }, "console-control-strings": { @@ -1264,24 +1244,15 @@ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, "copy-dir": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-0.4.0.tgz", - "integrity": "sha512-mIefrD97nE1XX2th570tR5UQvW6/92czEPGe+oTtrxPAJl+KOKLpzcRa+e38WEpmt/IUN1n65KvRMzPblR+fDQ==", - "requires": { - "mkdir-p": "~0.0.4" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/copy-dir/-/copy-dir-1.2.0.tgz", + "integrity": "sha512-UeaUFUIHqGV4brjQ9bY2mHll/hoxyCak2emgmYG72LkGKABHBdBDKFw0H5nTKt5OzVBkBhkxCwnniJBAE7EGEw==" }, "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", "dev": true }, "core-util-is": { @@ -1308,15 +1279,6 @@ "readable-stream": "^2.0.0" } }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, "crlf": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/crlf/-/crlf-1.1.1.tgz", @@ -1353,14 +1315,6 @@ "source-map": "^0.6.1", "source-map-resolve": "^0.5.2", "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "css-parse": { @@ -1397,12 +1351,11 @@ } }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "debug-log": { @@ -1424,11 +1377,11 @@ "dev": true }, "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "^2.0.0" } }, "deep-eql": { @@ -1466,124 +1419,53 @@ "clone": "^1.0.2" } }, + "defer-to-connect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.1.tgz", + "integrity": "sha512-J7thop4u3mRTkYRQ+Vpfwy2G5Ehoy82I14+14W4YMDLKdWloI9gSzRbV30s/NckQGVJtPkWNcW4oMAUigTdqiQ==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "object-keys": "^1.0.12" - }, - "dependencies": { - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true - } - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", - "dev": true - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "deglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz", - "integrity": "sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw==", - "dev": true, - "requires": { - "find-root": "^1.0.0", - "glob": "^7.0.5", - "ignore": "^3.0.9", - "pkg-config": "^1.1.0", - "run-parallel": "^1.1.2", - "uniq": "^1.0.1" - }, - "dependencies": { - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } + "object-keys": "^1.0.12" + }, + "dependencies": { + "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 } } }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "deglob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/deglob/-/deglob-3.1.0.tgz", + "integrity": "sha512-al10l5QAYaM/PeuXkAr1Y9AQz0LCtWsnJG23pIgh44hDxHFOj36l6qvhfjnIWBYwZOqM1fXUFV9tkjL7JPdGvw==", "dev": true, "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" + "find-root": "^1.0.0", + "glob": "^7.0.5", + "ignore": "^5.0.0", + "pkg-config": "^1.1.0", + "run-parallel": "^1.1.2", + "uniq": "^1.0.1" }, "dependencies": { "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -1593,27 +1475,6 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } } } }, @@ -1629,17 +1490,18 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "dependency-check": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/dependency-check/-/dependency-check-3.3.0.tgz", - "integrity": "sha512-OyKLWiMd3voSfU4FGIbEOMD5Ep/nesxkGTamxe/T0DBax1tl3AKSDEFOONVcxIbQoTpT3DXP2x3DUwTfj6YhOA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dependency-check/-/dependency-check-4.1.0.tgz", + "integrity": "sha512-nlw+PvhVQwg0gSNNlVUiuRv0765gah9pZEXdQlIFzeSnD85Eex0uM0bkrAWrHdeTzuMGZnR9daxkup/AqqgqzA==", "dev": true, "requires": { - "builtins": "^2.0.0", "debug": "^4.0.0", "detective": "^5.0.2", - "globby": "^8.0.1", + "globby": "^10.0.1", "is-relative": "^1.0.0", + "micromatch": "^4.0.2", "minimist": "^1.2.0", + "pkg-up": "^3.1.0", "read-package-json": "^2.0.10", "resolve": "^1.1.7" }, @@ -1658,12 +1520,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, @@ -1711,107 +1567,90 @@ "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "path-type": "^4.0.0" } }, "dmg-builder": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.5.4.tgz", - "integrity": "sha512-EaEkF8weXez3iAwgYffjcYfumauUh5x+BggMgn/IuihNIA5/WfzRAUR4wMq9aII2zwArlw+rIrX6ZHKbmtkQmA==", - "dev": true, - "requires": { - "app-builder-lib": "~20.38.5", - "bluebird-lst": "^1.0.6", - "builder-util": "~9.6.2", - "fs-extra-p": "^7.0.0", - "iconv-lite": "^0.4.24", - "js-yaml": "^3.12.1", - "parse-color": "^1.0.0", - "sanitize-filename": "^1.6.1" + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-21.2.0.tgz", + "integrity": "sha512-9cJEclnGy7EyKFCoHDYDf54pub/t92CQapyiUxU0w9Bj2vUvfoDagP1PMiX4XD5rPp96141h9A+QN0OB4VgvQg==", + "dev": true, + "requires": { + "app-builder-lib": "~21.2.0", + "bluebird-lst": "^1.0.9", + "builder-util": "~21.2.0", + "fs-extra": "^8.1.0", + "iconv-lite": "^0.5.0", + "js-yaml": "^3.13.1", + "sanitize-filename": "^1.6.2" }, "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "js-yaml": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", - "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } } } }, "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" } }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", "requires": { - "is-obj": "^1.0.0" + "is-obj": "^2.0.0" } }, "dotenv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", - "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", "dev": true }, "dotenv-expand": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", - "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", "dev": true }, "drivelist": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/drivelist/-/drivelist-6.4.6.tgz", - "integrity": "sha512-FVeQE8GQppabnXm5J3tz3+nNZUWBixLYl2jGuLnCI/LhpopOj6+/fvPMgaWXC/SW/gceVALCx/EBRk8HiXqB5w==", + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/drivelist/-/drivelist-8.0.9.tgz", + "integrity": "sha512-s25SFYuMDD7WK+/CaOZpXCXCpBU0aJwBwGlg0AkO8ttVTIGEJSdBgjQQdBFeR0Z9Pl/BRGst7YIScv4q2LLo6w==", "requires": { "bindings": "^1.3.0", "debug": "^3.1.0", - "fast-plist": "^0.1.2", - "nan": "^2.10.0", - "prebuild-install": "^4.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } + "mz": "^2.7.0", + "nan": "^2.14.0", + "prebuild-install": "^5.2.4" } }, "duplexer3": { @@ -1831,104 +1670,98 @@ } }, "ejs": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", - "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", "dev": true }, "electron": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/electron/-/electron-4.0.3.tgz", - "integrity": "sha512-wOBYnlv3Xgbwh9DAHBktP3sQcbCBuXMQi1NzPH3EMnbdYNqj+FnTzVLq0RYp0uSzdjR3fhAZ/E6wFSMLaAc5iw==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/electron/-/electron-6.1.7.tgz", + "integrity": "sha512-QhBA/fcYJit2XJGkD2xEfxlWTtTaWYu7qkKVohtVWXpELFqkpel2DCDxet5BTo0qs8ukuZHxlQPnIonODnl2bw==", "dev": true, "requires": { "@types/node": "^10.12.18", "electron-download": "^4.1.0", "extract-zip": "^1.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.17.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.13.tgz", + "integrity": "sha512-pMCcqU2zT4TjqYFrWtYHKal7Sl30Ims6ulZ4UFXxI4xbtQqK/qqKwkDoBFCfooRqqmRu9vY3xaJRwxSh673aYg==", + "dev": true + } } }, "electron-builder": { - "version": "20.38.5", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.38.5.tgz", - "integrity": "sha512-p88IDHhH2J4hA6KwRBJY+OfVZuFtFIShY3Uh/TwYAfbX0v1RhKZytuGdO8sty2zcWxDYX74xDBv+X9oN6qEIRQ==", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-21.2.0.tgz", + "integrity": "sha512-x8EXrqFbAb2L3N22YlGar3dGh8vwptbB3ovo3OF6K7NTpcsmM2zEoJv7GhFyX73rNzSG2HaWpXwGAtOp2JWiEw==", "dev": true, "requires": { - "app-builder-lib": "20.38.5", - "bluebird-lst": "^1.0.6", - "builder-util": "9.6.2", - "builder-util-runtime": "8.1.1", + "app-builder-lib": "21.2.0", + "bluebird-lst": "^1.0.9", + "builder-util": "21.2.0", + "builder-util-runtime": "8.3.0", "chalk": "^2.4.2", - "dmg-builder": "6.5.4", - "fs-extra-p": "^7.0.0", + "dmg-builder": "21.2.0", + "fs-extra": "^8.1.0", "is-ci": "^2.0.0", - "lazy-val": "^1.0.3", - "read-config-file": "3.2.1", - "sanitize-filename": "^1.6.1", - "update-notifier": "^2.5.0", - "yargs": "^12.0.5" + "lazy-val": "^1.0.4", + "read-config-file": "5.0.0", + "sanitize-filename": "^1.6.2", + "update-notifier": "^3.0.1", + "yargs": "^13.3.0" }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } } } }, "electron-chromedriver": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/electron-chromedriver/-/electron-chromedriver-3.0.0.tgz", - "integrity": "sha512-xWivZRiPTtDFJt+qXv7Ax/Dmhxj0iqESOxoLZ2szu3fv6k1vYDUDJUMHfdfVAke9D2gBRIgChuGb5j3YEt6hxQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/electron-chromedriver/-/electron-chromedriver-6.0.0.tgz", + "integrity": "sha512-UIhRl0sN5flfUjqActXsFrZQU1NmBObvlxzPnyeud8vhR67TllXCoqfvhQJmIrJAJJK+5M1DFhJ5iTGT++dvkg==", "dev": true, "requires": { - "electron-download": "^4.1.0", - "extract-zip": "^1.6.5" + "electron-download": "^4.1.1", + "extract-zip": "^1.6.7" } }, "electron-context-menu": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-0.10.1.tgz", - "integrity": "sha512-KFkKwFbT6iJUgarEknYuXQlJAT+naJZtSWFBtHf9RiSb70wscWdDNpYoUERzF7FgqYE1Mil4npfRWsjqGLwtog==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-0.14.0.tgz", + "integrity": "sha512-7PuDz0Z3Eebhg/OS3JfPqHrQYl5ApokT/05PPUbNELk0EHBfFZwVcVneOJ05SlaGagK1bfQIXf75WSZt/K23VA==", "requires": { + "cli-truncate": "^2.0.0", "electron-dl": "^1.2.0", "electron-is-dev": "^1.0.1" - }, - "dependencies": { - "electron-is-dev": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.0.1.tgz", - "integrity": "sha512-iwM3EotA9HTXqMGpQRkR/kT8OZqBbdfHTnlwcxsjSLYqY8svvsq0MuujsWCn3/vtgRmDv/PC/gKUUpoZvi5C1w==" - } } }, "electron-debug": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-2.1.0.tgz", - "integrity": "sha512-IJkEfMRhU0FxTc9khmAXkRw1AmQVLBiKaUqpDSQPLvZkxBnYsPVCy8tTvriA7eLb5p4oCmu2HmdDCx7laXy7+g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/electron-debug/-/electron-debug-3.0.1.tgz", + "integrity": "sha512-fo3mtDM4Bxxm3DW1I+XcJKfQlUlns4QGWyWGs8OrXK1bBZ2X9HeqYMntYBx78MYRcGY5S/ualuG4GhCnPlaZEA==", "dev": true, "requires": { - "electron-is-dev": "^0.3.0", - "electron-localshortcut": "^3.0.0" - }, - "dependencies": { - "electron-is-dev": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.3.0.tgz", - "integrity": "sha1-FOb9pcaOnk7L7/nM8DfL18BcWv4=", - "dev": true - } + "electron-is-dev": "^1.1.0", + "electron-localshortcut": "^3.1.0" } }, "electron-dl": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-1.12.0.tgz", - "integrity": "sha512-UMc2CL45Ybpvu66LDPYzwmDRmYK4Ivz+wdnTM0eXcNMztvQwhixAk2UPme1c7McqG8bAlKEkQpZn3epmQy4EWg==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-1.14.0.tgz", + "integrity": "sha512-4okyei42a1mLsvLK7hLrIfd20EQzB18nIlLTwBV992aMSmTGLUEFRTmO1MfSslGNrzD8nuPuy1l/VxO8so4lig==", "requires": { "ext-name": "^5.0.0", "pupa": "^1.0.0", @@ -1952,26 +1785,17 @@ "sumchecker": "^2.0.2" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } + "env-paths": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", + "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "dev": true }, "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, @@ -1987,97 +1811,76 @@ "dev": true }, "electron-is-dev": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.0.1.tgz", - "integrity": "sha512-iwM3EotA9HTXqMGpQRkR/kT8OZqBbdfHTnlwcxsjSLYqY8svvsq0MuujsWCn3/vtgRmDv/PC/gKUUpoZvi5C1w==", - "dev": true + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.1.0.tgz", + "integrity": "sha512-Z1qA/1oHNowGtSBIcWk0pcLEqYT/j+13xUw/MYOrBUOL4X7VN0i0KCTf5SqyvMPmW5pSPKbo28wkxMxzZ20YnQ==" }, "electron-localshortcut": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.1.0.tgz", - "integrity": "sha1-EMH/1Te405FwqvbhVRNB93gN0s4=", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz", + "integrity": "sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q==", "dev": true, "requires": { - "debug": "^2.6.8", + "debug": "^4.0.1", "electron-is-accelerator": "^0.1.0", - "keyboardevent-from-electron-accelerator": "^1.1.0", + "keyboardevent-from-electron-accelerator": "^2.0.0", "keyboardevents-areequal": "^0.2.1" - } - }, - "electron-osx-sign": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.11.tgz", - "integrity": "sha512-VVd40nrnVqymvFrY9ZkOYgHJOvexHHYTR3di/SN+mjJ0OWhR1I8BRVj3U+Yamw6hnkZZNKZp52rqL5EFAAPFkQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "compare-version": "^0.1.2", - "debug": "^2.6.8", - "isbinaryfile": "^3.0.2", - "minimist": "^1.2.0", - "plist": "^3.0.1" }, "dependencies": { - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "buffer-alloc": "^1.2.0" + "ms": "^2.1.1" } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true } } }, "electron-publish": { - "version": "20.38.5", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.38.5.tgz", - "integrity": "sha512-EhdPm6t0nKDfa0r3KjV1kSFcz03VrzgJRv7v5nHkkpQZB6OSmDNlHq7k66NBwQhPK3i4CK+uvehljZAP28vbCA==", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-21.2.0.tgz", + "integrity": "sha512-mWavuoWJe87iaeKd0I24dNWIaR+0yRzshjNVqGyK019H766fsPWl3caQJnVKFaEyrZRP397v4JZVG0e7s16AxA==", "dev": true, "requires": { - "bluebird-lst": "^1.0.6", - "builder-util": "~9.6.2", - "builder-util-runtime": "^8.1.1", + "bluebird-lst": "^1.0.9", + "builder-util": "~21.2.0", + "builder-util-runtime": "8.3.0", "chalk": "^2.4.2", - "fs-extra-p": "^7.0.0", - "lazy-val": "^1.0.3", - "mime": "^2.4.0" + "fs-extra": "^8.1.0", + "lazy-val": "^1.0.4", + "mime": "^2.4.4" }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } } } }, "electron-rebuild": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.4.tgz", - "integrity": "sha512-QBUZg1due+R0bww5rNd4gEcsKczyhxyLrxSFZlKihwHRxaiHrGut532JAUe0fRz+VIU4WNSfNKyZ/ZwSGjaDhA==", + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.8.tgz", + "integrity": "sha512-9a/VGbVpTJcuBaZa8yMcegqJ5flGPYDo363AxXDMxY4ZHPtFMLedGzQW9+720SIS1cvjX8B0zC+vMHO75ncOiA==", "dev": true, "requires": { "colors": "^1.3.3", "debug": "^4.1.1", "detect-libc": "^1.0.3", "fs-extra": "^7.0.1", - "node-abi": "^2.7.0", - "node-gyp": "^3.8.0", - "ora": "^3.0.0", + "node-abi": "^2.11.0", + "node-gyp": "^6.0.1", + "ora": "^3.4.0", "spawn-rx": "^3.0.0", - "yargs": "^12.0.5" + "yargs": "^13.2.4" }, "dependencies": { "debug": { @@ -2099,35 +1902,35 @@ "jsonfile": "^4.0.0", "universalify": "^0.1.0" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true } } }, "electron-store": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-2.0.0.tgz", - "integrity": "sha512-1WCFYHsYvZBqDsoaS0Relnz0rd81ZkBAI0Fgx7Nq2UWU77rSNs1qxm4S6uH7TCZ0bV3LQpJFk7id/is/ZgoOPA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-4.0.0.tgz", + "integrity": "sha512-qgkDetwB9bz+ZA7mNCQGm6zLJOMT4yBkTZ7f16M9iS0GcI/bOeOeFkLkIaJddTtPca7MOiaUM1imMjFqUfQgSA==", "requires": { - "conf": "^2.0.0" + "conf": "^5.0.0", + "type-fest": "^0.5.2" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { "once": "^1.4.0" } }, "env-paths": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", - "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==" }, "error-ex": { "version": "1.3.2", @@ -2139,22 +1942,36 @@ } }, "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", + "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", "dev": true, "requires": { - "es-to-primitive": "^1.1.1", + "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "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 + } } }, "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", @@ -2168,87 +1985,49 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", - "dev": true, - "requires": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.2.0" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", - "dev": true - }, - "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, "eslint": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.4.0.tgz", - "integrity": "sha512-UIpL91XGex3qtL6qwyCQJar2j3osKxK9e3ano3OcGEIRM4oWIpCkDg9x95AXEC2wMs7PnxzOkPZ2gq+tsMS9yg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz", + "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==", "dev": true, "requires": { - "ajv": "^6.5.0", - "babel-code-frame": "^6.26.0", + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", - "espree": "^4.0.0", + "espree": "^6.0.0", "esquery": "^1.0.1", "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", + "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", + "glob-parent": "^5.0.0", "globals": "^11.7.0", - "ignore": "^4.0.2", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^5.2.0", - "is-resolvable": "^1.1.0", - "js-yaml": "^3.11.0", + "inquirer": "^6.4.1", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.5", + "lodash": "^4.17.14", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", "progress": "^2.0.0", - "regexpp": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.5.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^4.0.3", - "text-table": "^0.2.0" + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { "ansi-regex": { @@ -2257,6 +2036,12 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -2268,35 +2053,43 @@ "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { @@ -2306,23 +2099,23 @@ "dev": true }, "inquirer": { - "version": "5.2.0", - "resolved": "http://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", - "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", - "external-editor": "^2.1.0", + "external-editor": "^3.0.3", "figures": "^2.0.0", - "lodash": "^4.3.0", + "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", - "rxjs": "^5.5.2", + "rxjs": "^6.4.0", "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", + "strip-ansi": "^5.1.0", "through": "^2.3.6" } }, @@ -2332,20 +2125,10 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "string-width": { @@ -2356,35 +2139,60 @@ "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true } } }, "eslint-config-standard": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", - "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-13.0.1.tgz", + "integrity": "sha512-zLKp4QOgq6JFgRm1dDCVv1Iu0P5uZ4v5Wa4DTOkg2RFMxdCX/9Qf7lz9ezRj2dBRa955cWQF/O/LWEiYWAHbTw==", "dev": true }, "eslint-config-standard-jsx": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-6.0.2.tgz", - "integrity": "sha512-D+YWAoXw+2GIdbMBRAzWwr1ZtvnSf4n4yL0gKGg7ShUOGXkSOLerI17K4F6LdQMJPNMoWYqepzQD/fKY+tXNSg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-7.0.0.tgz", + "integrity": "sha512-OiKOF3MFVmWOCVfsi8GHlVorOEiBsPzAnUhM3c6HML94O2krbdQ/eMABySHgHHOIBYRls9sR9I3lo6O0vXhVEg==", "dev": true }, "eslint-import-resolver-node": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha1-WPFfuDm40FdsqYBBNHaqskcttmo=", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "dev": true, "requires": { "debug": "^2.6.9", @@ -2394,52 +2202,85 @@ "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, "eslint-module-utils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", - "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz", + "integrity": "sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw==", "dev": true, "requires": { - "debug": "^2.6.8", - "pkg-dir": "^1.0.0" + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, "eslint-plugin-es": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.3.2.tgz", - "integrity": "sha512-xrdbConViY20DhGrt9FwjhDo4fr/9Yus2pYf0xJsdJaCcUzMq7+pAoNH7kSXF6V08bRHMpgDWclYbcr/Sn3hNg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz", + "integrity": "sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==", "dev": true, "requires": { - "eslint-utils": "^1.3.0", + "eslint-utils": "^1.4.2", "regexpp": "^2.0.1" } }, "eslint-plugin-import": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz", - "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==", + "version": "2.18.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", + "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", "dev": true, "requires": { + "array-includes": "^3.0.3", "contains-path": "^0.1.0", - "debug": "^2.6.8", + "debug": "^2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.2.0", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", "read-pkg-up": "^2.0.0", - "resolve": "^1.6.0" + "resolve": "^1.11.0" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "doctrine": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", @@ -2450,6 +2291,15 @@ "isarray": "^1.0.0" } }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -2462,6 +2312,46 @@ "strip-bom": "^3.0.0" } }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, "path-type": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", @@ -2471,12 +2361,6 @@ "pify": "^2.0.0" } }, - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -2498,15 +2382,6 @@ "read-pkg": "^2.0.0" } }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -2516,65 +2391,71 @@ } }, "eslint-plugin-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz", - "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-9.1.0.tgz", + "integrity": "sha512-ZwQYGm6EoV2cfLpE1wxJWsfnKUIXfM/KM09/TlorkukgCAwmkgajEJnPCmyzoFPQQkmvo5DrW/nyKutNIw36Mw==", "dev": true, "requires": { - "eslint-plugin-es": "^1.3.1", + "eslint-plugin-es": "^1.4.0", "eslint-utils": "^1.3.1", - "ignore": "^4.0.2", + "ignore": "^5.1.1", "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" + "resolve": "^1.10.1", + "semver": "^6.1.0" }, "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true - }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } } } }, "eslint-plugin-promise": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz", - "integrity": "sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", "dev": true }, "eslint-plugin-react": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz", - "integrity": "sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw==", + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz", + "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==", "dev": true, "requires": { "array-includes": "^3.0.3", "doctrine": "^2.1.0", "has": "^1.0.3", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.2" + "jsx-ast-utils": "^2.1.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0", + "object.values": "^1.1.0", + "prop-types": "^15.7.2", + "resolve": "^1.10.1" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + } } }, "eslint-plugin-standard": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz", - "integrity": "sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz", + "integrity": "sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ==", "dev": true }, "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -2582,32 +2463,35 @@ } }, "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } }, "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", "dev": true }, "espree": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", - "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", + "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", "dev": true, "requires": { - "acorn": "^6.0.2", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "acorn": "^7.1.0", + "acorn-jsx": "^5.1.0", + "eslint-visitor-keys": "^1.1.0" } }, "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { @@ -2629,15 +2513,15 @@ } }, "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "execa": { @@ -2655,45 +2539,10 @@ "strip-eof": "^1.0.0" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "expand-template": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz", - "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" }, "ext-list": { "version": "2.2.2", @@ -2718,106 +2567,25 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "external-editor": { "version": "2.2.0", - "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { "chardet": "^0.4.0", "iconv-lite": "^0.4.17", "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "safer-buffer": ">= 2.1.2 < 3" } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", - "dev": true } } }, @@ -2832,24 +2600,18 @@ "yauzl": "2.4.1" }, "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -2862,28 +2624,25 @@ "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-glob": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", - "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.1.tgz", + "integrity": "sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2" } }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "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==" }, "fast-levenshtein": { "version": "2.0.6", @@ -2891,10 +2650,14 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fast-plist": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/fast-plist/-/fast-plist-0.1.2.tgz", - "integrity": "sha1-pFr/NFGWAG1AbKbNzQX2kFHvNbg=" + "fastq": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz", + "integrity": "sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==", + "dev": true, + "requires": { + "reusify": "^1.0.0" + } }, "fd-slicer": { "version": "1.0.1", @@ -2914,13 +2677,12 @@ } }, "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "^2.0.1" } }, "file-uri-to-path": { @@ -2929,26 +2691,12 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "to-regex-range": "^5.0.1" } }, "find-root": { @@ -2958,29 +2706,62 @@ "dev": true }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, "requires": { - "locate-path": "^2.0.0" + "is-buffer": "~2.0.3" } }, "flat-cache": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.2.tgz", - "integrity": "sha512-KByBY8c98sLUAGpnmjEdWTrtrLZRtZdwds+kAL/ciFXTCb7AZgqKsAnVnYFQj1hxepwO8JKN/8AsRWwLq+RK0A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "circular-json": "^0.3.1", - "del": "^3.0.0", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", "dev": true }, "forever-agent": { @@ -3000,15 +2781,6 @@ "mime-types": "^2.1.12" } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -3025,27 +2797,13 @@ "universalify": "^0.1.0" } }, - "fs-extra-p": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.0.tgz", - "integrity": "sha512-5tg5jBOd0xIXjwj4PDnafOXL5TyPVzjxLby4DPKev53wurEXp7IsojBaD4Lj5M5w7jxw0pbkEU0fFEPmcKoMnA==", + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "dev": true, "requires": { - "bluebird-lst": "^1.0.6", - "fs-extra": "^7.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -3054,18 +2812,6 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -3103,9 +2849,9 @@ } }, "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-func-name": { @@ -3126,12 +2872,6 @@ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -3159,31 +2899,22 @@ } }, "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } + "is-glob": "^4.0.1" } }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } }, "global-dirs": { "version": "0.1.1", @@ -3195,30 +2926,31 @@ } }, "globals": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", - "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==", + "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 }, "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", + "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" }, "dependencies": { "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -3232,9 +2964,9 @@ } }, "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.0.tgz", + "integrity": "sha512-YlD4kdMqRCQHrhVdonet4TdRtv1/sZKepvoxNT4Nrhrp5HI8XFfc8kFlGlBn2myBo80aGp8Eft259mbcUJhgSg==", "dev": true, "requires": { "glob": "~7.1.1", @@ -3243,9 +2975,9 @@ }, "dependencies": { "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -3274,29 +3006,56 @@ } } }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - } - }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + } + } + }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true }, "grapheme-splitter": { "version": "1.0.4", @@ -3307,27 +3066,19 @@ "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "handlebars": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", - "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", + "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", "dev": true, "requires": { - "async": "^2.5.0", + "neo-async": "^2.6.0", "optimist": "^0.6.1", "source-map": "^0.6.1", "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "har-schema": { @@ -3337,9 +3088,9 @@ "dev": true }, "har-validator": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.2.tgz", - "integrity": "sha512-OFxb5MZXCUMx43X7O8LK4FKggEQx6yC5QPmOcBnYbJ9UjxEcMcrMbaR0af5HZpqeFopw2GwQRQi34ZXI7YLM5w==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { "ajv": "^6.5.5", @@ -3355,25 +3106,16 @@ "function-bind": "^1.1.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "has-unicode": { @@ -3381,54 +3123,37 @@ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true }, "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "highlight.js": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", - "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=", - "dev": true + "version": "9.17.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.17.1.tgz", + "integrity": "sha512-TA2/doAur5Ol8+iM3Ov7qy3jYcr/QiJ2eDTdRF4dfbjG7AaaB99J5G+zSl11ljbl6cIcahgPY6SKb3sC3EJ0fw==", + "dev": true, + "requires": { + "handlebars": "^4.5.3" + } }, "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", + "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", "dev": true }, "http-signature": { @@ -3449,26 +3174,36 @@ "dev": true }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz", + "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", "dev": true }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -3499,9 +3234,9 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.5", @@ -3564,26 +3299,11 @@ } }, "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", "dev": true }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -3591,24 +3311,15 @@ "dev": true }, "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", "dev": true }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true }, "is-ci": { @@ -3620,44 +3331,10 @@ "ci-info": "^2.0.0" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, "is-extglob": { @@ -3684,9 +3361,9 @@ } }, "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -3703,39 +3380,21 @@ } }, "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", "dev": true }, "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, "is-path-inside": { "version": "1.0.1", @@ -3751,82 +3410,60 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { - "has": "^1.0.1" + "has": "^1.0.3" } }, "is-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, "requires": { "is-unc-path": "^1.0.0" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "^1.0.1" } }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, "requires": { "unc-path-regex": "^0.1.2" @@ -3838,10 +3475,10 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", "dev": true }, "isarray": { @@ -3850,9 +3487,9 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.0.tgz", - "integrity": "sha512-RBtmso6l2mCaEsUvXngMTIjg3oheXo0MgYzzfT6sk44RYggPnm9fT+cQJAmzRnJIxPHXg9FZglqDJGW28dvcqA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.3.tgz", + "integrity": "sha512-GQ9Gjhp3AsEbo8/L/pA+MYl/c4hRm5O/+uCkF4LMx1a556Wh4/d75H13qu9LldmhU4yKnlfNKBmEcCaze3b2Gw==", "dev": true }, "isexe": { @@ -3861,94 +3498,31 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "istanbul": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", - "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", - "dev": true, - "requires": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } - } - }, "jquery": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "integrity": "sha1-lYzinoHJeQ8xvneS311NlfxX+8o=" + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz", + "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==" }, "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", - "integrity": "sha1-UgtFZPhlc7qWZir4Woyvp7S1pvY=", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { "argparse": "^1.0.7", - "esprima": "^3.1.1" + "esprima": "^4.0.0" } }, "jsbn": { @@ -3957,6 +3531,12 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -3972,8 +3552,12 @@ "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 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-schema-typed": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -3988,9 +3572,9 @@ "dev": true }, "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -4026,48 +3610,49 @@ } }, "jsx-ast-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", - "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", + "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", "dev": true, "requires": { - "array-includes": "^3.0.3" + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" } }, "keyboardevent-from-electron-accelerator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-1.1.0.tgz", - "integrity": "sha1-MkYU9uM0kMN//Fvlh2s+hf4iPIQ=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz", + "integrity": "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==", "dev": true }, "keyboardevents-areequal": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz", - "integrity": "sha1-iBkexzjOn3WRwl6QVt6Si0AncZQ=", + "integrity": "sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==", "dev": true }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "json-buffer": "3.0.0" } }, "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "dev": true, "requires": { - "package-json": "^4.0.0" + "package-json": "^6.3.0" } }, "lazy-val": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", - "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", + "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==", "dev": true }, "lazystream": { @@ -4079,15 +3664,6 @@ "readable-stream": "^2.0.5" } }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -4109,29 +3685,21 @@ "pify": "^2.0.0", "pinkie-promise": "^2.0.0", "strip-bom": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, "lodash.assign": { @@ -4143,7 +3711,7 @@ "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { "chalk": "^2.0.1" @@ -4185,61 +3753,26 @@ } }, "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz", + "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==", "requires": { - "pify": "^3.0.0" + "semver": "^6.0.0" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "mem": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", - "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", - "p-is-promise": "^1.1.0" - } - }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", @@ -4267,75 +3800,64 @@ } }, "merge2": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", "dev": true }, "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", - "dev": true - } + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, "mime": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", - "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", "dev": true }, "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==" }, "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "version": "2.1.25", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", + "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", "dev": true, "requires": { - "mime-db": "~1.37.0" + "mime-db": "1.42.0" } }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.0.0.tgz", + "integrity": "sha512-8ilDoEapqA4uQ3TwS0jakGONKXVJqpy+RpM+3b7pLdOjghCrEiGp9SRkFbUHAmZW9vdnrENWHjaweIoTIJExSQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" } @@ -4345,31 +3867,32 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" }, "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, - "mkdir-p": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mkdir-p/-/mkdir-p-0.0.7.tgz", - "integrity": "sha1-JMXb4m2jqZ7xWKHu+aXC3Z3laDw=" + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } }, "mkdirp": { "version": "0.5.1", @@ -4387,37 +3910,40 @@ } }, "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha1-bYrlCPWRZ/lA8rWzxKYSrlDJCuY=", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz", + "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==", "dev": true, "requires": { + "ansi-colors": "3.2.3", "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", + "debug": "3.2.6", "diff": "3.5.0", "escape-string-regexp": "1.0.5", - "glob": "7.1.2", + "find-up": "3.0.0", + "glob": "7.1.3", "growl": "1.10.5", - "he": "1.1.1", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "5.4.0" + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.0", + "yargs-parser": "13.1.1", + "yargs-unparser": "1.6.0" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -4428,16 +3954,16 @@ "path-is-absolute": "^1.0.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -4451,9 +3977,9 @@ "integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE=" }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mute-stream": { "version": "0.0.7", @@ -4461,44 +3987,38 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, - "nan": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", - "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", - "dev": true - } + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" } }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "napi-build-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz", + "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA==" + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -4506,37 +4026,46 @@ "dev": true }, "node-abi": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.7.1.tgz", - "integrity": "sha512-OV8Bq1OrPh6z+Y4dqwo05HqrRL9YNF7QVMRfq1/pguwKLG+q9UB/Lk0x5qXjO23JjJg+/jqCHSTaG1P3tfKfuw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.13.0.tgz", + "integrity": "sha512-9HrZGFVTR5SOu3PZAnAY2hLO36aW1wmA+FDsVkr85BTST32TLCA1H/AEcatVRAsWLyXS3bqUDYCAjq5/QGuSTA==", "requires": { "semver": "^5.4.1" } }, + "node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-6.0.1.tgz", + "integrity": "sha512-udHG4hGe3Ji97AYJbJhaRwuSOuQO7KHnE4ZPH3Sox3tjRZ+bkBsDvfZ7eYA1qwD8eLWr//193x806ss3HFTPRw==", "dev": true, "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" }, "dependencies": { "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -4547,11 +4076,14 @@ "path-is-absolute": "^1.0.0" } }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } } } }, @@ -4561,22 +4093,23 @@ "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" }, "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "requires": { - "abbrev": "1" + "abbrev": "1", + "osenv": "^0.1.4" } }, "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", + "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } @@ -4590,12 +4123,24 @@ "remove-trailing-separator": "^1.0.1" } }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, "npm-install-package": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/npm-install-package/-/npm-install-package-2.1.0.tgz", "integrity": "sha1-1+/jz816sAYUuJbqUxGdyaslkSU=", "dev": true }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -4608,7 +4153,7 @@ "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -4631,11 +4176,26 @@ "throttleit": "0.0.2" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, @@ -4655,50 +4215,82 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } + "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 } } }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true + "object.entries": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", + "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "object.fromentries": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { - "isobject": "^3.0.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", "dev": true, "requires": { - "isobject": "^3.0.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" } }, "once": { @@ -4728,54 +4320,46 @@ } }, "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", + "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - }, - "dependencies": { - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } + "word-wrap": "~1.2.3" } }, "ora": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.0.0.tgz", - "integrity": "sha512-LBS97LFe2RV6GJmXBi6OKcETKyklHNMV0xw7BtsVn2MlsgsydyZetSCbCANr+PFLmDyv4KV88nn0eCKza665Mg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", "dev": true, "requires": { - "chalk": "^2.3.1", + "chalk": "^2.4.2", "cli-cursor": "^2.1.0", - "cli-spinners": "^1.1.0", + "cli-spinners": "^2.0.0", "log-symbols": "^2.2.0", - "strip-ansi": "^4.0.0", + "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } @@ -4783,48 +4367,8 @@ "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", - "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", - "dev": true, - "requires": { - "execa": "^0.10.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - } - } + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true }, "os-tmpdir": { "version": "1.0.2", @@ -4834,17 +4378,17 @@ "osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" } }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, "p-finally": { @@ -4853,66 +4397,56 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", - "dev": true - }, "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "requires": { + "p-try": "^2.0.0" + } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "dev": true, - "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - } - }, - "parse-color": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz", - "integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, "requires": { - "color-convert": "~0.5.0" + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" }, "dependencies": { - "color-convert": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", - "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, + "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, + "requires": { + "callsites": "^3.0.0" + } + }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -4922,18 +4456,6 @@ "error-ex": "^1.2.0" } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -4957,19 +4479,16 @@ "dev": true }, "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true }, "pathval": { "version": "1.1.0", @@ -4988,10 +4507,16 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "picomatch": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.1.tgz", + "integrity": "sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==", + "dev": true + }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { @@ -5010,25 +4535,26 @@ } }, "pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", "dev": true, "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" }, "dependencies": { "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.1.15", "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" } }, "parse-json": { @@ -5041,11 +4567,23 @@ "json-parse-better-errors": "^1.0.1" } }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true } } }, @@ -5061,84 +4599,85 @@ } }, "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "^2.1.0" }, "dependencies": { "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "locate-path": "^2.0.0" } }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true } } }, "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "requires": { - "find-up": "^2.1.0" - } - }, - "plist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", - "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", - "dev": true, - "requires": { - "base64-js": "^1.2.3", - "xmlbuilder": "^9.0.7", - "xmldom": "0.1.x" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "requires": { + "find-up": "^3.0.0" + } }, "prebuild-install": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-4.0.0.tgz", - "integrity": "sha512-7tayxeYboJX0RbVzdnKyGl2vhQRWr6qfClEXDhOkXjuaOKCw2q8aiuFhONRYVsG/czia7KhpykIlI2S2VaPunA==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.3.tgz", + "integrity": "sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==", "requires": { "detect-libc": "^1.0.3", - "expand-template": "^1.0.2", + "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.0", "mkdirp": "^0.5.1", - "node-abi": "^2.2.0", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.7.0", "noop-logger": "^0.1.1", "npmlog": "^4.0.1", - "os-homedir": "^1.0.1", - "pump": "^2.0.1", - "rc": "^1.1.6", - "simple-get": "^2.7.0", - "tar-fs": "^1.13.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0", "which-pm-runs": "^1.0.0" }, @@ -5157,9 +4696,9 @@ "dev": true }, "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, "pretty-bytes": { @@ -5172,15 +4711,20 @@ "meow": "^3.1.0" } }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "progress-stream": { @@ -5194,13 +4738,14 @@ } }, "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "dev": true, "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } }, "pseudomap": { @@ -5210,15 +4755,15 @@ "dev": true }, "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", "dev": true }, "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -5227,8 +4772,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "pupa": { "version": "1.0.0", @@ -5271,70 +4815,56 @@ } } }, + "react-is": { + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", + "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==", + "dev": true + }, "read-config-file": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-3.2.1.tgz", - "integrity": "sha512-yW4hZZXdNN+Paij5JVAiTv1lUsAN5QRBU5NqotQqwYdVkUczSmDzm66VLu0eojiZt2zFeYptTFDAYlalDGuHdA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-5.0.0.tgz", + "integrity": "sha512-jIKUu+C84bfnKxyJ5j30CxCqgXWYjZLXuVE/NYlMEpeni+dhESgAeZOZd0JZbg1xTkMmnCdxksDoarkOyfEsOg==", "dev": true, "requires": { - "ajv": "^6.7.0", - "ajv-keywords": "^3.2.0", - "bluebird-lst": "^1.0.6", - "dotenv": "^6.2.0", - "dotenv-expand": "^4.2.0", - "fs-extra-p": "^7.0.0", - "js-yaml": "^3.12.1", + "dotenv": "^8.0.0", + "dotenv-expand": "^5.1.0", + "fs-extra": "^8.1.0", + "js-yaml": "^3.13.1", "json5": "^2.1.0", - "lazy-val": "^1.0.3" + "lazy-val": "^1.0.4" }, "dependencies": { - "ajv": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", - "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "js-yaml": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", - "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } } } }, "read-package-json": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", - "integrity": "sha1-LoLr2fYTuqbS6+Oqcs7+P2jkH0o=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz", + "integrity": "sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==", "dev": true, "requires": { "glob": "^7.1.1", "graceful-fs": "^4.1.2", "json-parse-better-errors": "^1.0.1", "normalize-package-data": "^2.0.0", - "slash": "^1.0.0" + "npm-normalize-package-bin": "^1.0.0" }, "dependencies": { "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -5368,12 +4898,6 @@ "pify": "^2.0.0", "pinkie-promise": "^2.0.0" } - }, - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true } } }, @@ -5409,16 +4933,16 @@ } }, "readable-stream": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", - "integrity": "sha1-B5azH412iAB/8Lk6gIjTSqF8D3I=", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "inherits": "~2.0.3", "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "safe-buffer": "~5.0.1", - "string_decoder": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, @@ -5447,16 +4971,6 @@ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, "regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", @@ -5464,22 +4978,22 @@ "dev": true }, "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.0.0.tgz", + "integrity": "sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw==", "dev": true, "requires": { - "rc": "^1.1.6", + "rc": "^1.2.8", "safe-buffer": "^5.0.1" } }, "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", "dev": true, "requires": { - "rc": "^1.0.1" + "rc": "^1.2.8" } }, "remove-trailing-separator": { @@ -5488,18 +5002,6 @@ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", @@ -5535,14 +5037,6 @@ "tough-cookie": "~2.4.3", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } } }, "require-directory": { @@ -5552,34 +5046,24 @@ "dev": true }, "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz", + "integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "^1.0.6" } }, "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "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 }, "resolve-url": { @@ -5588,6 +5072,15 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -5598,31 +5091,31 @@ "signal-exit": "^3.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "rgb2hex": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.1.9.tgz", - "integrity": "sha512-32iuQzhOjyT+cv9aAFRBJ19JgHwzQwbjUhH3Fj2sWW2EEGAW8fpFrDFP5ndoKDxJaLO06x1hE3kyuIFrUQtybQ==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.1.10.tgz", + "integrity": "sha512-vKz+kzolWbL3rke/xeTE2+6vHmZnNxGyDnaVW4OckntAIcc7DcZzWkQSfxMDwqHS8vhgySnIFyBUH7lIk6PxvQ==", "dev": true }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", + "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", "dev": true, "requires": { "glob": "^7.1.3" }, "dependencies": { "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -5666,38 +5159,29 @@ } }, "rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", "dev": true, "requires": { - "symbol-observable": "1.0.1" + "tslib": "^1.9.0" } }, "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "sanitize-filename": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", - "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", "dev": true, "requires": { "truncate-utf8-bytes": "^1.0.0" @@ -5706,12 +5190,12 @@ "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=" + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "semver-diff": { "version": "2.1.0", @@ -5727,29 +5211,6 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -5777,9 +5238,9 @@ }, "dependencies": { "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -5803,11 +5264,11 @@ "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" }, "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", "requires": { - "decompress-response": "^3.3.0", + "decompress-response": "^4.2.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } @@ -5822,130 +5283,28 @@ } }, "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "requires": { - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" } } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - } - }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -5963,18 +5322,18 @@ } }, "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -5982,21 +5341,13 @@ } }, "source-map-support": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", - "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "source-map-url": { @@ -6016,21 +5367,27 @@ "rxjs": "^6.3.1" }, "dependencies": { - "rxjs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", - "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "tslib": "^1.9.0" + "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, "spdx-correct": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", - "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -6054,19 +5411,19 @@ } }, "spdx-license-ids": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz", - "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "spectron": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/spectron/-/spectron-5.0.0.tgz", - "integrity": "sha512-wJrFe8EZ7xvarYawBPd1pDegmSz81U1jG0rSCx+yXqD1TISUH9ASB21KysLXkPylAnc2vhbpGiWQxrqVFtsiJg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/spectron/-/spectron-8.0.0.tgz", + "integrity": "sha512-MI9+lAamDnw7S0vKaxXjU3g5qaW5KANaFLc+Hgq+QmMCkQbZLt6ukFFGfalmwIuYrmq+yWQPCD4CXgt3VSHrLA==", "dev": true, "requires": { "dev-null": "^0.1.1", - "electron-chromedriver": "~3.0.0", + "electron-chromedriver": "^6.0.0", "request": "^2.87.0", "split": "^1.0.0", "webdriverio": "^4.13.0" @@ -6087,15 +5444,6 @@ "through": "2" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -6103,9 +5451,9 @@ "dev": true }, "sshpk": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", - "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { "asn1": "~0.2.3", @@ -6120,38 +5468,38 @@ } }, "standard": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/standard/-/standard-12.0.1.tgz", - "integrity": "sha512-UqdHjh87OG2gUrNCSM4QRLF5n9h3TFPwrCNyVlkqu31Hej0L/rc8hzKqVvkb2W3x0WMq7PzZdkLfEcBhVOR6lg==", - "dev": true, - "requires": { - "eslint": "~5.4.0", - "eslint-config-standard": "12.0.0", - "eslint-config-standard-jsx": "6.0.2", - "eslint-plugin-import": "~2.14.0", - "eslint-plugin-node": "~7.0.1", - "eslint-plugin-promise": "~4.0.0", - "eslint-plugin-react": "~7.11.1", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/standard/-/standard-13.1.0.tgz", + "integrity": "sha512-h3NaMzsa88+/xtjXCMvdn6EWWdlodsI/HvtsQF+EGwrF9kVNwNha9TkFABU6bSBoNfC79YDyIAq9ekxOMBFkuw==", + "dev": true, + "requires": { + "eslint": "~6.1.0", + "eslint-config-standard": "13.0.1", + "eslint-config-standard-jsx": "7.0.0", + "eslint-plugin-import": "~2.18.0", + "eslint-plugin-node": "~9.1.0", + "eslint-plugin-promise": "~4.2.1", + "eslint-plugin-react": "~7.14.2", "eslint-plugin-standard": "~4.0.0", - "standard-engine": "~9.0.0" + "standard-engine": "~11.0.1" } }, "standard-engine": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-9.0.0.tgz", - "integrity": "sha512-ZfNfCWZ2Xq67VNvKMPiVMKHnMdvxYzvZkf1AH8/cw2NLDBm5LRsxMqvEJpsjLI/dUosZ3Z1d6JlHDp5rAvvk2w==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-11.0.1.tgz", + "integrity": "sha512-WZQ5PpEDfRzPFk+H9xvKVQPQIxKnAQB2cb2Au4NyTCtdw5R0pyMBUZLbPXyFjnlhe8Ae+zfNrWU4m6H5b7cEAg==", "dev": true, "requires": { - "deglob": "^2.1.0", - "get-stdin": "^6.0.0", + "deglob": "^3.0.0", + "get-stdin": "^7.0.0", "minimist": "^1.1.0", - "pkg-conf": "^2.0.0" + "pkg-conf": "^3.1.0" }, "dependencies": { "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", "dev": true }, "minimist": { @@ -6163,32 +5511,11 @@ } }, "stat-mode": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", - "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.3.0.tgz", + "integrity": "sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng==", "dev": true }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -6199,12 +5526,32 @@ "strip-ansi": "^3.0.0" } }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, "string_decoder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.0.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -6251,6 +5598,23 @@ "dev": true, "requires": { "debug": "^2.2.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, "supports-color": { @@ -6260,40 +5624,60 @@ "dev": true, "requires": { "has-flag": "^3.0.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - } } }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true - }, "table": { - "version": "4.0.3", - "resolved": "http://registry.npmjs.org/table/-/table-4.0.3.tgz", - "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { - "ajv": "^6.0.1", - "ajv-keywords": "^3.0.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "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, + "requires": { + "color-convert": "^1.9.0" + } + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "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, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { @@ -6302,117 +5686,118 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", "dev": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } } }, "tar-fs": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", - "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", + "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", "requires": { - "chownr": "^1.0.1", + "chownr": "^1.1.1", "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" - }, - "dependencies": { - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } + "pump": "^3.0.0", + "tar-stream": "^2.0.0" } }, "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz", + "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==", "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", + "bl": "^3.0.0", + "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" }, "dependencies": { - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "requires": { - "safe-buffer": "~5.1.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } }, "temp-file": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.2.tgz", - "integrity": "sha512-FGKccAW0Mux9hC/2bdUIe4bJRv4OyVo4RpVcuplFird1V/YoplIFbnPZjfzbJSf/qNvRZIRB9/4n/RkI0GziuQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.6.tgz", + "integrity": "sha512-7TPldi8QJqRlPIF/Y33mVvo8+xDfi6+aVTCK4CrCaLqCoaOnVtf3SA4hCU0T5nhYDdOC7erw7o2uWfvijlk4Ug==", "dev": true, "requires": { "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.6", - "fs-extra-p": "^7.0.0" + "fs-extra": "^8.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } } }, "term-size": { @@ -6430,6 +5815,22 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "thenify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", + "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, "throttleit": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", @@ -6487,12 +5888,6 @@ } } }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -6505,37 +5900,22 @@ "to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true }, "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "^7.0.0" } }, "tough-cookie": { @@ -6580,9 +5960,9 @@ } }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, "tunnel-agent": { @@ -6614,36 +5994,33 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "type-fest": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", + "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==" + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.3.tgz", + "integrity": "sha512-7tINm46/3puUA4hCkKYo4Xdts+JDaVC9ZPRcG8Xw9R4nhO/gZgUM3TENq8IF4Vatk8qCig4MzP/c8G4u2BkVQg==", "dev": true, "optional": true, "requires": { - "commander": "~2.17.1", + "commander": "~2.20.3", "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true, - "optional": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } } }, "unc-path-regex": { @@ -6652,41 +6029,6 @@ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", @@ -6705,49 +6047,9 @@ "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, "unused-filename": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unused-filename/-/unused-filename-1.0.0.tgz", @@ -6757,52 +6059,30 @@ "path-exists": "^3.0.0" } }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", "dev": true, "requires": { - "boxen": "^1.2.1", + "boxen": "^3.0.0", "chalk": "^2.0.1", - "configstore": "^3.0.0", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", + "is-ci": "^2.0.0", "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", "semver-diff": "^2.0.0", "xdg-basedir": "^3.0.0" - }, - "dependencies": { - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "requires": { - "ci-info": "^1.5.0" - } - } } }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", - "dev": true, + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { "punycode": "^2.1.0" } @@ -6832,20 +6112,14 @@ } }, "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "^2.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", - "dev": true - }, "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", @@ -6858,9 +6132,15 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", "dev": true }, "validate-npm-package-license": { @@ -6900,9 +6180,9 @@ "dev": true }, "webdriverio": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-4.14.0.tgz", - "integrity": "sha512-642Iqp9en2hvuVINkTfQvWoQCaLb6zJyLHgQFUFLx7s+8l8GnrHzMjkv5DbecZHwnBkhybpphbTW7k0B2ARH5A==", + "version": "4.14.4", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-4.14.4.tgz", + "integrity": "sha512-Knp2vzuzP5c5ybgLu+zTwy/l1Gh0bRP4zAr8NWcrStbuomm9Krn9oRF0rZucT6AyORpXinETzmeowFwIoo7mNA==", "dev": true, "requires": { "archiver": "~2.1.0", @@ -6936,9 +6216,9 @@ "dev": true }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -6955,12 +6235,6 @@ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, "supports-color": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.0.1.tgz", @@ -6979,9 +6253,9 @@ "dev": true }, "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -7048,19 +6322,90 @@ } } }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "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, + "requires": { + "color-convert": "^1.9.0" + } + }, + "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, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "wrappy": { @@ -7069,22 +6414,23 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { "mkdirp": "^0.5.1" } }, "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha1-H/YVdcLipOjlENb6TiQ8zhg5mas=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.1.tgz", + "integrity": "sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==", "requires": { - "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, "xdg-basedir": { @@ -7094,37 +6440,24 @@ "dev": true }, "xml2js": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "requires": { "sax": ">=0.6.0", - "xmlbuilder": "~9.0.1" - }, - "dependencies": { - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" - } + "xmlbuilder": "~11.0.0" } }, "xmlbuilder": { - "version": "9.0.7", - "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", - "dev": true - }, - "xmldom": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", - "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", - "dev": true + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" }, "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true }, "y18n": { "version": "4.0.0", @@ -7139,39 +6472,34 @@ "dev": true }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -7179,59 +6507,32 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -7239,13 +6540,24 @@ }, "dependencies": { "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true } } }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + } + }, "yauzl": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", diff --git a/package.json b/package.json index bbde984..c1cf23a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "MZD-AIO-TI", "productName": "MZD All In One Tweaks Installer", "description": "An Installer/Uninstaller for Over 50 System Tweaks for the Mazda MZD Infotainment System.", - "version": "2.8.4", + "version": "2.8.5", "homepage": "http://mazdatweaks.com", "license": "GPL-3.0", "main": "main.js", @@ -14,13 +14,13 @@ }, "repository": { "type": "git", - "url": "https://github.com/Trevelopment/MZD-AIO" + "url": "https://gitlab.com/Trezdog44/MZD-AIO-TI" }, "bugs": { - "url": "https://github.com/Trevelopment/MZD-AIO/issues" + "url": "https://gitlab.com/Trezdog44/MZD-AIO-TI/issues" }, "engines": { - "node": "^10" + "node": "^13" }, "keywords": [ "Mazda", @@ -53,12 +53,13 @@ "build:win32": "npm run prebuild && build --win --ia32 && npm run postbuild && npm run win32copy", "build:linux:x64": "npm run prebuild && build --linux deb AppImage --x64 && npm run postbuild", "build:linux:deb": "./scripts/build_linux_deb.sh", - "win32copy": " mv ./releases/MZD-AIO-TI_Setup_2.8.4.exe ./releases/MZD-AIO-TI_Setup_2.8.4_Win32.exe && mv ./releases/MZD-AIO-TI_Setup_2.8.4.exe.blockmap ./releases/MZD-AIO-TI_Setup_2.8.4_Win32.exe.blockmap", + "win32copy": " mv ./releases/MZD-AIO-TI_Setup_2.8.5.exe ./releases/MZD-AIO-TI_Setup_2.8.5_Win32.exe && mv ./releases/MZD-AIO-TI_Setup_2.8.5.exe.blockmap ./releases/MZD-AIO-TI_Setup_2.8.5_Win32.exe.blockmap", "build": "build", "release": "build", "postbuild": "node build/target.js --clean", "xinstall": "cd app && ncu -u --packageFile package.json && ncu -a --packageFile package.json && npm i && cd .. && ncu -u --packageFile package.json && ncu -a --packageFile package.json && npm i", - "postinstall": "electron-builder install-app-deps" + "postinstall": "install-app-deps && cd app && sh ../node_modules/.bin/electron-rebuild && cd .. && sh ./node_modules/.bin/electron-rebuild", + "dist": "electron-builder" }, "standard": { "globals": [ @@ -86,12 +87,13 @@ "/app/mzd/", "/app/gui/", "/app/views/Photojoiner_files/", - "/app/", - "vendor" + "vendor", + "old_tweak_files", + "scripts" ] }, "jshintConfig": { - "esversion": 6 + "esversion": 8 }, "build": { "appId": "com.trevelopment.mzd-aio-ti", @@ -112,7 +114,7 @@ "owner": "trevelopment", "repo": "MZD-AIO-TI", "package": "MZD-AIO-MAC", - "user": "trevelopment", + "user": "trevelopment" } }, "dmg": { @@ -142,7 +144,7 @@ "owner": "aio", "repo": "aio", "package": "aio", - "user": "Trezdog44", + "user": "Trezdog44" } }, "win": { @@ -154,7 +156,7 @@ "owner": "aio", "repo": "aio", "package": "aio", - "user": "Trezdog44", + "user": "Trezdog44" } }, "directories": { @@ -162,39 +164,40 @@ }, "nsis": { "artifactName": "${productName}_Setup_${version}.${ext}" - } + }, + "forceCodeSigning": false }, "devDependencies": { - "async": "^2.6.2", + "async": "^3.1.0", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", - "dependency-check": "^3.3.0", + "dependency-check": "^4.1.0", "devtron": "^1", - "electron": "4.0.3", - "electron-builder": "^20.38.5", - "electron-debug": "^2.1.0", - "electron-is-dev": "^1.0", - "electron-rebuild": "^1.8.4", - "istanbul": "^0.4", - "mocha": "^5.2.0", - "rimraf": "^2.6.3", + "electron": "^6.1.7", + "electron-builder": "^21.2.0", + "electron-debug": "^3.0.1", + "electron-is-dev": "^1.1.0", + "electron-rebuild": "^1.8.8", + "mocha": "^6.2.2", + "rimraf": "^3.0.0", "shelljs": "^0.8.3", - "spectron": "^5.0.0", - "standard": "^12.0.1" + "spectron": "^8.0.0", + "standard": "^13.1.0" }, "dependencies": { "appender": "^0.0.2", - "bluebird-lst": "^1.0.6", - "copy-dir": "^0.4.0", + "bluebird-lst": "^1.0.9", + "copy-dir": "^1.2.0", "crlf": "^1.1.1", - "drivelist": "^6.4.6", - "electron-context-menu": "^0.10.1", + "drivelist": "^8.0.9", + "electron-context-menu": "^0.14.0", "electron-image-resize": "^1.2.4", - "electron-store": "^2.0.0", + "electron-store": "^4.0.0", "extract-zip": "^1.6.7", - "jquery": "^3.3.1", + "global": "^4.3.2", + "jquery": "^3.4.1", "mkdirp": "^0.5.1", - "node-abi": "^2.7.1", - "xml2js": "^0.4.19" + "node-abi": "^2.13.0", + "xml2js": "^0.4.23" } }