From 3a84999d649996ca676d1a354cb0b67b63da862b Mon Sep 17 00:00:00 2001 From: djq <1953187027@qq.com> Date: Fri, 10 May 2024 23:26:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=95=B0=E6=8D=AE=E5=88=86?= =?UTF-8?q?=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...理系统的分析和设计UML模型.docx | Bin 0 -> 5512788 bytes src/goaccess++/ABOUT-NLS | 1327 ++ src/goaccess++/AUTHORS | 77 + src/goaccess++/COPYING | 21 + src/goaccess++/ChangeLog | 705 + src/goaccess++/INSTALL | 370 + src/goaccess++/Makefile | 1268 ++ src/goaccess++/Makefile.am | 219 + src/goaccess++/Makefile.in | 1268 ++ src/goaccess++/NEWS | 80 + src/goaccess++/README | 100 + src/goaccess++/TODO | 10 + src/goaccess++/aclocal.m4 | 1015 ++ src/goaccess++/bin2c | Bin 0 -> 17096 bytes src/goaccess++/compile | 343 + src/goaccess++/config.guess | 1530 ++ src/goaccess++/config.log | 1751 ++ src/goaccess++/config.rpath | 672 + src/goaccess++/config.status | 1406 ++ src/goaccess++/config.sub | 1782 ++ src/goaccess++/config/browsers.list | 102 + src/goaccess++/config/goaccess.conf | 766 + src/goaccess++/configure | 10655 ++++++++++++ src/goaccess++/configure.ac | 309 + src/goaccess++/depcomp | 708 + src/goaccess++/goaccess | Bin 0 -> 707704 bytes src/goaccess++/goaccess.1 | 1166 ++ src/goaccess++/install-sh | 527 + src/goaccess++/m4/gettext.m4 | 383 + src/goaccess++/m4/iconv.m4 | 199 + src/goaccess++/m4/intlmacosx.m4 | 51 + src/goaccess++/m4/lib-ld.m4 | 110 + src/goaccess++/m4/lib-link.m4 | 774 + src/goaccess++/m4/lib-prefix.m4 | 224 + src/goaccess++/m4/nls.m4 | 32 + src/goaccess++/m4/po.m4 | 449 + src/goaccess++/m4/progtest.m4 | 92 + src/goaccess++/missing | 331 + src/goaccess++/po/LINGUAS | 4 + src/goaccess++/po/Makefile | 571 + src/goaccess++/po/Makefile.in | 444 + src/goaccess++/po/Makefile.in.in | 444 + src/goaccess++/po/Makevars | 79 + src/goaccess++/po/POTFILES | 1 + src/goaccess++/po/POTFILES.in | 2 + src/goaccess++/po/Rules-quot | 47 + src/goaccess++/po/boldquot.sed | 10 + src/goaccess++/po/en@boldquot.header | 25 + src/goaccess++/po/en@quot.header | 22 + src/goaccess++/po/es.gmo | Bin 0 -> 17442 bytes src/goaccess++/po/es.po | 902 + src/goaccess++/po/fr.gmo | Bin 0 -> 9094 bytes src/goaccess++/po/fr.po | 904 + src/goaccess++/po/goaccess.pot | 882 + src/goaccess++/po/insert-header.sin | 23 + src/goaccess++/po/ja.gmo | Bin 0 -> 21828 bytes src/goaccess++/po/ja.po | 914 + src/goaccess++/po/quot.sed | 6 + src/goaccess++/po/remove-potcdate.sin | 19 + src/goaccess++/po/stamp-po | 1 + src/goaccess++/po/zh_CN.gmo | Bin 0 -> 17925 bytes src/goaccess++/po/zh_CN.po | 899 + src/goaccess++/resources/css/app.css | 987 ++ src/goaccess++/resources/css/app.css.tmp | 1 + .../resources/css/bootstrap.min.css | 1 + .../resources/css/bootstrap.min.css.tmp | 1 + src/goaccess++/resources/css/fa.min.css | 8 + src/goaccess++/resources/css/fa.min.css.tmp | 1 + src/goaccess++/resources/js/app.js | 1793 ++ src/goaccess++/resources/js/app.js.tmp | 1 + src/goaccess++/resources/js/charts.js | 1067 ++ src/goaccess++/resources/js/charts.js.tmp | 1 + src/goaccess++/resources/js/d3.v3.min.js | 5 + src/goaccess++/resources/js/d3.v3.min.js.tmp | 1 + src/goaccess++/resources/js/hogan.min.js | 5 + src/goaccess++/resources/js/hogan.min.js.tmp | 1 + src/goaccess++/resources/tpls.html | 276 + src/goaccess++/resources/tpls.html.tmp | 1 + src/goaccess++/src/.deps/.dirstamp | 0 src/goaccess++/src/.deps/base64.Po | 151 + src/goaccess++/src/.deps/bin2c.Po | 185 + src/goaccess++/src/.deps/browsers.Po | 250 + src/goaccess++/src/.deps/color.Po | 253 + src/goaccess++/src/.deps/commons.Po | 264 + src/goaccess++/src/.deps/csv.Po | 344 + src/goaccess++/src/.deps/error.Po | 313 + src/goaccess++/src/.deps/gdashboard.Po | 312 + src/goaccess++/src/.deps/gdns.Po | 414 + src/goaccess++/src/.deps/geoip1.Po | 304 + src/goaccess++/src/.deps/geoip2.Po | 1 + src/goaccess++/src/.deps/gholder.Po | 348 + src/goaccess++/src/.deps/gkhash.Po | 280 + src/goaccess++/src/.deps/gmenu.Po | 264 + src/goaccess++/src/.deps/goaccess.Po | 497 + src/goaccess++/src/.deps/gslist.Po | 191 + src/goaccess++/src/.deps/gstorage.Po | 260 + src/goaccess++/src/.deps/gwsocket.Po | 469 + src/goaccess++/src/.deps/json.Po | 406 + src/goaccess++/src/.deps/opesys.Po | 238 + src/goaccess++/src/.deps/options.Po | 336 + src/goaccess++/src/.deps/output.Po | 398 + src/goaccess++/src/.deps/parser.Po | 375 + src/goaccess++/src/.deps/settings.Po | 283 + src/goaccess++/src/.deps/sha1.Po | 171 + src/goaccess++/src/.deps/sort.Po | 257 + src/goaccess++/src/.deps/tcabdb.Po | 1 + src/goaccess++/src/.deps/tcbtdb.Po | 1 + src/goaccess++/src/.deps/ui.Po | 348 + src/goaccess++/src/.deps/util.Po | 310 + src/goaccess++/src/.deps/websocket.Po | 412 + src/goaccess++/src/.deps/xmalloc.Po | 230 + src/goaccess++/src/.dirstamp | 0 src/goaccess++/src/appcss.h | 1512 ++ src/goaccess++/src/appjs.h | 3613 ++++ src/goaccess++/src/base64.c | 80 + src/goaccess++/src/base64.h | 37 + src/goaccess++/src/base64.o | Bin 0 -> 2040 bytes src/goaccess++/src/bin2c.c | 117 + src/goaccess++/src/bin2c.o | Bin 0 -> 4224 bytes src/goaccess++/src/bootstrapcss.h | 4696 ++++++ src/goaccess++/src/browsers.c | 522 + src/goaccess++/src/browsers.h | 49 + src/goaccess++/src/browsers.o | Bin 0 -> 24128 bytes src/goaccess++/src/chartsjs.h | 1861 +++ src/goaccess++/src/color.c | 840 + src/goaccess++/src/color.h | 113 + src/goaccess++/src/color.o | Bin 0 -> 31096 bytes src/goaccess++/src/commons.c | 504 + src/goaccess++/src/commons.h | 272 + src/goaccess++/src/commons.o | Bin 0 -> 13024 bytes src/goaccess++/src/config.h | 325 + src/goaccess++/src/config.h.in | 324 + src/goaccess++/src/csv.c | 327 + src/goaccess++/src/csv.h | 43 + src/goaccess++/src/csv.o | Bin 0 -> 12168 bytes src/goaccess++/src/d3js.h | 13744 ++++++++++++++++ src/goaccess++/src/error.c | 237 + src/goaccess++/src/error.h | 94 + src/goaccess++/src/error.o | Bin 0 -> 8208 bytes src/goaccess++/src/facss.h | 1683 ++ src/goaccess++/src/gdashboard.c | 1510 ++ src/goaccess++/src/gdashboard.h | 142 + src/goaccess++/src/gdashboard.o | Bin 0 -> 27808 bytes src/goaccess++/src/gdns.c | 296 + src/goaccess++/src/gdns.h | 70 + src/goaccess++/src/gdns.o | Bin 0 -> 10968 bytes src/goaccess++/src/geoip1.c | 439 + src/goaccess++/src/geoip1.h | 58 + src/goaccess++/src/geoip1.o | Bin 0 -> 12288 bytes src/goaccess++/src/geoip2.c | 297 + src/goaccess++/src/gholder.c | 673 + src/goaccess++/src/gholder.h | 49 + src/goaccess++/src/gholder.o | Bin 0 -> 11832 bytes src/goaccess++/src/gkhash.c | 1610 ++ src/goaccess++/src/gkhash.h | 250 + src/goaccess++/src/gkhash.o | Bin 0 -> 38520 bytes src/goaccess++/src/gmenu.c | 150 + src/goaccess++/src/gmenu.h | 87 + src/goaccess++/src/gmenu.o | Bin 0 -> 3568 bytes src/goaccess++/src/goaccess.c | 1537 ++ src/goaccess++/src/goaccess.h | 40 + src/goaccess++/src/goaccess.o | Bin 0 -> 66416 bytes src/goaccess++/src/gslist.c | 166 + src/goaccess++/src/gslist.h | 51 + src/goaccess++/src/gslist.o | Bin 0 -> 2992 bytes src/goaccess++/src/gstorage.c | 140 + src/goaccess++/src/gstorage.h | 68 + src/goaccess++/src/gstorage.o | Bin 0 -> 3136 bytes src/goaccess++/src/gwsocket.c | 410 + src/goaccess++/src/gwsocket.h | 74 + src/goaccess++/src/gwsocket.o | Bin 0 -> 17272 bytes src/goaccess++/src/hoganjs.h | 782 + src/goaccess++/src/json.c | 1251 ++ src/goaccess++/src/json.h | 65 + src/goaccess++/src/json.o | Bin 0 -> 34256 bytes src/goaccess++/src/khash.h | 675 + src/goaccess++/src/labels.h | 497 + src/goaccess++/src/opesys.c | 398 + src/goaccess++/src/opesys.h | 44 + src/goaccess++/src/opesys.o | Bin 0 -> 17184 bytes src/goaccess++/src/options.c | 839 + src/goaccess++/src/options.h | 38 + src/goaccess++/src/options.o | Bin 0 -> 33032 bytes src/goaccess++/src/output.c | 1240 ++ src/goaccess++/src/output.h | 99 + src/goaccess++/src/output.o | Bin 0 -> 361872 bytes src/goaccess++/src/parser.c | 2804 ++++ src/goaccess++/src/parser.h | 185 + src/goaccess++/src/parser.o | Bin 0 -> 48848 bytes src/goaccess++/src/settings.c | 787 + src/goaccess++/src/settings.h | 237 + src/goaccess++/src/settings.o | Bin 0 -> 23984 bytes src/goaccess++/src/sha1.c | 235 + src/goaccess++/src/sha1.h | 20 + src/goaccess++/src/sha1.o | Bin 0 -> 7664 bytes src/goaccess++/src/sort.c | 572 + src/goaccess++/src/sort.h | 92 + src/goaccess++/src/sort.o | Bin 0 -> 10976 bytes src/goaccess++/src/stamp-h1 | 1 + src/goaccess++/src/tcabdb.c | 1716 ++ src/goaccess++/src/tcabdb.h | 226 + src/goaccess++/src/tcbtdb.c | 333 + src/goaccess++/src/tcbtdb.h | 91 + src/goaccess++/src/tpls.h | 941 ++ src/goaccess++/src/ui.c | 1965 +++ src/goaccess++/src/ui.h | 257 + src/goaccess++/src/ui.o | Bin 0 -> 62104 bytes src/goaccess++/src/util.c | 1006 ++ src/goaccess++/src/util.h | 97 + src/goaccess++/src/util.o | Bin 0 -> 28440 bytes src/goaccess++/src/websocket.c | 3018 ++++ src/goaccess++/src/websocket.h | 341 + src/goaccess++/src/websocket.o | Bin 0 -> 48424 bytes src/goaccess++/src/xmalloc.c | 88 + src/goaccess++/src/xmalloc.h | 38 + src/goaccess++/src/xmalloc.o | Bin 0 -> 6432 bytes 216 files changed, 110125 insertions(+) create mode 100644 model/基于Nginx的高可用分布式网关管理系统的分析和设计UML模型.docx create mode 100644 src/goaccess++/ABOUT-NLS create mode 100644 src/goaccess++/AUTHORS create mode 100644 src/goaccess++/COPYING create mode 100644 src/goaccess++/ChangeLog create mode 100644 src/goaccess++/INSTALL create mode 100644 src/goaccess++/Makefile create mode 100644 src/goaccess++/Makefile.am create mode 100644 src/goaccess++/Makefile.in create mode 100644 src/goaccess++/NEWS create mode 100644 src/goaccess++/README create mode 100644 src/goaccess++/TODO create mode 100644 src/goaccess++/aclocal.m4 create mode 100644 src/goaccess++/bin2c create mode 100644 src/goaccess++/compile create mode 100644 src/goaccess++/config.guess create mode 100644 src/goaccess++/config.log create mode 100644 src/goaccess++/config.rpath create mode 100644 src/goaccess++/config.status create mode 100644 src/goaccess++/config.sub create mode 100644 src/goaccess++/config/browsers.list create mode 100644 src/goaccess++/config/goaccess.conf create mode 100644 src/goaccess++/configure create mode 100644 src/goaccess++/configure.ac create mode 100644 src/goaccess++/depcomp create mode 100644 src/goaccess++/goaccess create mode 100644 src/goaccess++/goaccess.1 create mode 100644 src/goaccess++/install-sh create mode 100644 src/goaccess++/m4/gettext.m4 create mode 100644 src/goaccess++/m4/iconv.m4 create mode 100644 src/goaccess++/m4/intlmacosx.m4 create mode 100644 src/goaccess++/m4/lib-ld.m4 create mode 100644 src/goaccess++/m4/lib-link.m4 create mode 100644 src/goaccess++/m4/lib-prefix.m4 create mode 100644 src/goaccess++/m4/nls.m4 create mode 100644 src/goaccess++/m4/po.m4 create mode 100644 src/goaccess++/m4/progtest.m4 create mode 100644 src/goaccess++/missing create mode 100644 src/goaccess++/po/LINGUAS create mode 100644 src/goaccess++/po/Makefile create mode 100644 src/goaccess++/po/Makefile.in create mode 100644 src/goaccess++/po/Makefile.in.in create mode 100644 src/goaccess++/po/Makevars create mode 100644 src/goaccess++/po/POTFILES create mode 100644 src/goaccess++/po/POTFILES.in create mode 100644 src/goaccess++/po/Rules-quot create mode 100644 src/goaccess++/po/boldquot.sed create mode 100644 src/goaccess++/po/en@boldquot.header create mode 100644 src/goaccess++/po/en@quot.header create mode 100644 src/goaccess++/po/es.gmo create mode 100644 src/goaccess++/po/es.po create mode 100644 src/goaccess++/po/fr.gmo create mode 100644 src/goaccess++/po/fr.po create mode 100644 src/goaccess++/po/goaccess.pot create mode 100644 src/goaccess++/po/insert-header.sin create mode 100644 src/goaccess++/po/ja.gmo create mode 100644 src/goaccess++/po/ja.po create mode 100644 src/goaccess++/po/quot.sed create mode 100644 src/goaccess++/po/remove-potcdate.sin create mode 100644 src/goaccess++/po/stamp-po create mode 100644 src/goaccess++/po/zh_CN.gmo create mode 100644 src/goaccess++/po/zh_CN.po create mode 100644 src/goaccess++/resources/css/app.css create mode 100644 src/goaccess++/resources/css/app.css.tmp create mode 100644 src/goaccess++/resources/css/bootstrap.min.css create mode 100644 src/goaccess++/resources/css/bootstrap.min.css.tmp create mode 100644 src/goaccess++/resources/css/fa.min.css create mode 100644 src/goaccess++/resources/css/fa.min.css.tmp create mode 100644 src/goaccess++/resources/js/app.js create mode 100644 src/goaccess++/resources/js/app.js.tmp create mode 100644 src/goaccess++/resources/js/charts.js create mode 100644 src/goaccess++/resources/js/charts.js.tmp create mode 100644 src/goaccess++/resources/js/d3.v3.min.js create mode 100644 src/goaccess++/resources/js/d3.v3.min.js.tmp create mode 100644 src/goaccess++/resources/js/hogan.min.js create mode 100644 src/goaccess++/resources/js/hogan.min.js.tmp create mode 100644 src/goaccess++/resources/tpls.html create mode 100644 src/goaccess++/resources/tpls.html.tmp create mode 100644 src/goaccess++/src/.deps/.dirstamp create mode 100644 src/goaccess++/src/.deps/base64.Po create mode 100644 src/goaccess++/src/.deps/bin2c.Po create mode 100644 src/goaccess++/src/.deps/browsers.Po create mode 100644 src/goaccess++/src/.deps/color.Po create mode 100644 src/goaccess++/src/.deps/commons.Po create mode 100644 src/goaccess++/src/.deps/csv.Po create mode 100644 src/goaccess++/src/.deps/error.Po create mode 100644 src/goaccess++/src/.deps/gdashboard.Po create mode 100644 src/goaccess++/src/.deps/gdns.Po create mode 100644 src/goaccess++/src/.deps/geoip1.Po create mode 100644 src/goaccess++/src/.deps/geoip2.Po create mode 100644 src/goaccess++/src/.deps/gholder.Po create mode 100644 src/goaccess++/src/.deps/gkhash.Po create mode 100644 src/goaccess++/src/.deps/gmenu.Po create mode 100644 src/goaccess++/src/.deps/goaccess.Po create mode 100644 src/goaccess++/src/.deps/gslist.Po create mode 100644 src/goaccess++/src/.deps/gstorage.Po create mode 100644 src/goaccess++/src/.deps/gwsocket.Po create mode 100644 src/goaccess++/src/.deps/json.Po create mode 100644 src/goaccess++/src/.deps/opesys.Po create mode 100644 src/goaccess++/src/.deps/options.Po create mode 100644 src/goaccess++/src/.deps/output.Po create mode 100644 src/goaccess++/src/.deps/parser.Po create mode 100644 src/goaccess++/src/.deps/settings.Po create mode 100644 src/goaccess++/src/.deps/sha1.Po create mode 100644 src/goaccess++/src/.deps/sort.Po create mode 100644 src/goaccess++/src/.deps/tcabdb.Po create mode 100644 src/goaccess++/src/.deps/tcbtdb.Po create mode 100644 src/goaccess++/src/.deps/ui.Po create mode 100644 src/goaccess++/src/.deps/util.Po create mode 100644 src/goaccess++/src/.deps/websocket.Po create mode 100644 src/goaccess++/src/.deps/xmalloc.Po create mode 100644 src/goaccess++/src/.dirstamp create mode 100644 src/goaccess++/src/appcss.h create mode 100644 src/goaccess++/src/appjs.h create mode 100644 src/goaccess++/src/base64.c create mode 100644 src/goaccess++/src/base64.h create mode 100644 src/goaccess++/src/base64.o create mode 100644 src/goaccess++/src/bin2c.c create mode 100644 src/goaccess++/src/bin2c.o create mode 100644 src/goaccess++/src/bootstrapcss.h create mode 100644 src/goaccess++/src/browsers.c create mode 100644 src/goaccess++/src/browsers.h create mode 100644 src/goaccess++/src/browsers.o create mode 100644 src/goaccess++/src/chartsjs.h create mode 100644 src/goaccess++/src/color.c create mode 100644 src/goaccess++/src/color.h create mode 100644 src/goaccess++/src/color.o create mode 100644 src/goaccess++/src/commons.c create mode 100644 src/goaccess++/src/commons.h create mode 100644 src/goaccess++/src/commons.o create mode 100644 src/goaccess++/src/config.h create mode 100644 src/goaccess++/src/config.h.in create mode 100644 src/goaccess++/src/csv.c create mode 100644 src/goaccess++/src/csv.h create mode 100644 src/goaccess++/src/csv.o create mode 100644 src/goaccess++/src/d3js.h create mode 100644 src/goaccess++/src/error.c create mode 100644 src/goaccess++/src/error.h create mode 100644 src/goaccess++/src/error.o create mode 100644 src/goaccess++/src/facss.h create mode 100644 src/goaccess++/src/gdashboard.c create mode 100644 src/goaccess++/src/gdashboard.h create mode 100644 src/goaccess++/src/gdashboard.o create mode 100644 src/goaccess++/src/gdns.c create mode 100644 src/goaccess++/src/gdns.h create mode 100644 src/goaccess++/src/gdns.o create mode 100644 src/goaccess++/src/geoip1.c create mode 100644 src/goaccess++/src/geoip1.h create mode 100644 src/goaccess++/src/geoip1.o create mode 100644 src/goaccess++/src/geoip2.c create mode 100644 src/goaccess++/src/gholder.c create mode 100644 src/goaccess++/src/gholder.h create mode 100644 src/goaccess++/src/gholder.o create mode 100644 src/goaccess++/src/gkhash.c create mode 100644 src/goaccess++/src/gkhash.h create mode 100644 src/goaccess++/src/gkhash.o create mode 100644 src/goaccess++/src/gmenu.c create mode 100644 src/goaccess++/src/gmenu.h create mode 100644 src/goaccess++/src/gmenu.o create mode 100644 src/goaccess++/src/goaccess.c create mode 100644 src/goaccess++/src/goaccess.h create mode 100644 src/goaccess++/src/goaccess.o create mode 100644 src/goaccess++/src/gslist.c create mode 100644 src/goaccess++/src/gslist.h create mode 100644 src/goaccess++/src/gslist.o create mode 100644 src/goaccess++/src/gstorage.c create mode 100644 src/goaccess++/src/gstorage.h create mode 100644 src/goaccess++/src/gstorage.o create mode 100644 src/goaccess++/src/gwsocket.c create mode 100644 src/goaccess++/src/gwsocket.h create mode 100644 src/goaccess++/src/gwsocket.o create mode 100644 src/goaccess++/src/hoganjs.h create mode 100644 src/goaccess++/src/json.c create mode 100644 src/goaccess++/src/json.h create mode 100644 src/goaccess++/src/json.o create mode 100644 src/goaccess++/src/khash.h create mode 100644 src/goaccess++/src/labels.h create mode 100644 src/goaccess++/src/opesys.c create mode 100644 src/goaccess++/src/opesys.h create mode 100644 src/goaccess++/src/opesys.o create mode 100644 src/goaccess++/src/options.c create mode 100644 src/goaccess++/src/options.h create mode 100644 src/goaccess++/src/options.o create mode 100644 src/goaccess++/src/output.c create mode 100644 src/goaccess++/src/output.h create mode 100644 src/goaccess++/src/output.o create mode 100644 src/goaccess++/src/parser.c create mode 100644 src/goaccess++/src/parser.h create mode 100644 src/goaccess++/src/parser.o create mode 100644 src/goaccess++/src/settings.c create mode 100644 src/goaccess++/src/settings.h create mode 100644 src/goaccess++/src/settings.o create mode 100644 src/goaccess++/src/sha1.c create mode 100644 src/goaccess++/src/sha1.h create mode 100644 src/goaccess++/src/sha1.o create mode 100644 src/goaccess++/src/sort.c create mode 100644 src/goaccess++/src/sort.h create mode 100644 src/goaccess++/src/sort.o create mode 100644 src/goaccess++/src/stamp-h1 create mode 100644 src/goaccess++/src/tcabdb.c create mode 100644 src/goaccess++/src/tcabdb.h create mode 100644 src/goaccess++/src/tcbtdb.c create mode 100644 src/goaccess++/src/tcbtdb.h create mode 100644 src/goaccess++/src/tpls.h create mode 100644 src/goaccess++/src/ui.c create mode 100644 src/goaccess++/src/ui.h create mode 100644 src/goaccess++/src/ui.o create mode 100644 src/goaccess++/src/util.c create mode 100644 src/goaccess++/src/util.h create mode 100644 src/goaccess++/src/util.o create mode 100644 src/goaccess++/src/websocket.c create mode 100644 src/goaccess++/src/websocket.h create mode 100644 src/goaccess++/src/websocket.o create mode 100644 src/goaccess++/src/xmalloc.c create mode 100644 src/goaccess++/src/xmalloc.h create mode 100644 src/goaccess++/src/xmalloc.o diff --git a/model/基于Nginx的高可用分布式网关管理系统的分析和设计UML模型.docx b/model/基于Nginx的高可用分布式网关管理系统的分析和设计UML模型.docx new file mode 100644 index 0000000000000000000000000000000000000000..06e55cb91a75b870c63788884167a6d483faea3c GIT binary patch literal 5512788 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℞816Uh|nmYR_Ud-Y#(RJ3H!` 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

X+g2O3|=+)!Hrh)yD@x@1f$x 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≪(~P9R)K~^f_EE;x?QI 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 z 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

EH56AK8gsB6&#qYRKB;H%i6FoXp5O;7PFQ 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%0D5vF!3yA_y`aEo#td}R2O1l0mxZJRUj3fel$@<f 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
qnRf*p&IY`a4k1z;fRRE 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≪;z_s@viNd`D;%OF40#E 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

  • =!x-8qa<*mB0He&74en%=^50? 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

    4moBD}556~fBq^`@AJAMGQ~eX((6^?b@| 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 +l=y8ny;V+kuFhcgSjZwASTa^GCnS{ka>J7^e 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

    u-F)l9mK>`Ci%`mUpl8uZ#s!yx_e)`<IY5hJ} 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
    l^0KXzk zh5q&n5XeA;L;L*|e2#WtFjz{%4F}EzVc;5MT3OZjcI@x0!|uBEMEr{%xOQ&+3>g6= zGFj|m#Hjd$eOVHK5kHpN(Uy7W+#8rbe!K&$Bl`^YJ#S}(+;DWV&KNY8K>&yX$>G?= zs^jAr(5HQjW807B%t+I-Zy&1-kmWRS?#p=xJ`sqA!C-+77rfEq5}&GoVZ z5ofkJ{`DzIY3RKnfgR*Xtv;3S`iDvAf>@ZbVq_6qAvP|slEJruoLLv*+T~K>kYAT#yjSIllqtL5Np$@ySR zGv{?kMFj2XvBb&MLh0J?084d(9J5S4BWQsrTl`GnahXKGE2j#Keuka|KK>u820I=8 zbOqcGAHx$1(v>L2j-hhiT zal>@IlKDyamBTVQFnG{=zFsyD&+Gje79u;TDXhFGmadiQxrs|9v@C-&0HU`C!R5Kuht^vIY~=>DHiF{+=_(E@Ke3YvAf@EB#J% zQ68Qlu(*Z3aR_wjNXlb`G+vmMH&`98)vLEl8f->wCiPc`PAM?cuPkBYY?@l&gTDo+ zBrd~RbI^Fd-WD*?phjerp_l>|(uXjv91mPSEmO{W+JSAdrA#;{#=(KDeBK7?W++0y zBQ~Z~BvPk_DB<9Kfvi}>=dZJ?i%FYs=NNfaw`|GM*?_V_l?b3bE9_vOd)KXCNo*2L zh<;lL4e=b=1Vhq|#UW`IaS?7X_PR)9NGG%_T~P^V3=DI!&HMI$edWuw{wEa5K~@WP z06FI|y>sB4-`fMIXlq$EoB6vyuE9p%!?#cvjg~taL6-`XYQ-B9sxqZ;FntH&f}b=Y z`L_>3Gn8)y-J175h!w@C@^jA0piT>|*_?G$DRp;I{0+n0}a zKjmizr!opDAghms@^VcCZ|X@=XZlQIsfCSIKozOSP3brxxy28je(V5xUI%QB1@!yf zr3qos6GTjE z;f6H`p_?HjUdlDqqTGRe>$0Z2QHm7)kV&?>*4fX4MJd$D@$DMw<&T>W4+!NF2jgq> zI^a4@x5Frta)eX9l$xsa!`9uJ9-(aF@jT~o&Ex^2ak6K8>XQ#dq?Iin_kF(^8)x(^ za@+aNsi^b$>t2u7Ff-3yT&(tPJZHpANBvd+CZ=Y2x|7h;(R}5&(YNE7iuZ2$OV))B z!5jDbNp3TrEQp@`TH_~ux$L*rb0A}pK& zLB?VD>wZTQjT#0dw{vNA99IHlos5rw8fGU3spcAf-B&!aKiF}900o$&Ct*Twsja%C zMK7{)p5QeaYOiZws_6N>=&hKjo2;nbm4bD|`TUE@cdc+-e`iDleTaec+?Bh@Wa-AYk>X_3}I~vD!WW@kz}%CIaAKD%ekSLria z;Vc?E_vpAY4TtZB^aEqO#ftMM7<|rYiP5x-SGwErUWaF@w{>Y$)m0+pR9`KGSIlum zeEXhe7%qRFj`)2h*mI~=)0{a3e{9KhxM>8@x{m5bRFO4$8bo$^D25pK=~f%3iIFHn zsacr1B@3FceR;p+_PNsLQ}Gw`xbDVP!-vL$FoA!P1eOm2j#Z71bx*%HFS+#M%=6^N zWXX_2gs|oetz=wDMsUP)B5Hk3u#GSGTW1jF@<ZHXyWa)VgLNGLI8YkM7tT<|!cW zqY!CPDa=@disws>AFZ{?^l=>}>>)SN5WJXoWT0@CW{I5%rF^hqc4&`=sv3v!^<&h8 zWMbBwjn<;sc($FYoy;585rc!g^95&L_yZqL0!c-S+W~|8IjPQDvc3)oD|!R+a~EM( z_?32`>wwtLtAkYdjg?kbH}fHZb%T*NGXlVtUh7Fzy01z>yrRF;LTj`SzN_Mk+|_4L zZWfvQTVrl>d#Q^{TZ)d~`ud}kkh}`7p<|mL16v2JV4kX#B5um7pNfaTKpGf&6Xjay zY)Xiw2)(sC-)C15)x&TiU>{QkcsLYT_(Qc&`A~VpUl#?;P>MAvioCEX_s;wkp4OEG z$IPIJ!o2QFwf>1JZkvl_=M21##4rCC^HIGp^+k)@RxZmP7-k(?jOyP^V#7c9 zEPs9m^kJuN6g%}B@HB73I$w0c(PhK0Y7Uhx>oj7zDa9Z{CROD8{k2Rk9cH>~ePyVH z1^QW>8Nt!Vc(^qHvW-*P5<8yQS$B%FxCOrPQWjIxrR-p@9VhEdeI~Z|$z`J@RG-JFl9&vEHgPWi8Lu?xddSB<2v_qHmBMU-_YU2ygS3D~X+#!3T;*E=vV538M)cUU4 z&U?Btb2&GCd@-iW-EOtML2Qw1j#KWtN>lFep|vX11a$t&_8NK5MalW7(4lB2n46l@ zM577}2bh$>J#`dHa;V|2jQh~~93=8Ya;24j|5*N?7E-kpFPjd!U@tyZMb^U(Nc|8Z zY~px0i)FIHJ=hAnlQIy`r0)MN=3DqTN~T`U4}m-19_A7gQ|RPnR~px2%RMJ&I(Ad4 zNq>rPu$}RS*jp$vi!dG_y?I!M zvg{j2vP^_&Z})SvGaYv_hJw=Xo?0I{f#IcXE)B7^{JVE=U8k~-i_;p)-LkZTgUU4G z-n(}iqr9SYFg|=&8YVw6EXlh;5lb45R~nOTm_BNN82YJ32n!o)Y6kWdhi~uC$l*8RmN8l3G=ws3BhHd> zvqx#7=?w#1nOlZvzcjFgB0PIQ6HVlaHr4HERh7`*`1v)n?8X!bu`%n=;Lh|nAshU0 z#iDPZ(~W};_3H!PQ~z!Z5*(r4!x}B|CVWC(um15G&i-mSJWtUjxK(d!mVJUNBK_O8 zCn>#q3xLQG!q&vNSMTLnxe%By>y+5@QTh(9Fg%Z zNkoc961RpGi3_Mg%P7`@Le+CIbbf2IRMl9a6-8&%!|Yn3&iYfskP#Jb*{UXHfVS|8 zDKw8@zu^|k5>8V}jvK-Hl(-Xbb;Svj$fFW=jFrKZLyD@Q&CsDb3a=jdk)d5;7%+J= zdV>3qnQ>d|Fu`#W&y4ovMq)JD;+8cUEwjZgD*EmH6^k$&nh&267KEh;gM&YBz5bh! ztjh?cqF0Ju8&~K$QI^OuFnO^ygz^kq_=Lhaq(hNzX<6>t?1NIf$C{sAEV9rQV(bgQ z>)tSBR7aN*Qe}H&NuhOjpGWp&Ox(a~Z-h~MX~fi(M)|{QIa8}0U=5c5#ERZbp!Zt2 zzoYl{5jq*P>vdoLL8;**IRqJbyZ%*;5UhYu5HGN^9Rmfbsg1cp1oCF(OL*#{60233v381m7_qNh#I-Ov2p z1))Ok&`4ak)Fe*9X2}&RlY9&9*c9YeIZ43ra+S8#cLnFYhNtM}g{N866Y5Q0@7z~U zD8)c|*jy5YUR`W11h}=Y{C}6lY%=pHA z;cwJ)_MLdBq{luMu05n{Rb@?SrQS$^flwXxQ74l{HQcqkYHhv4Gal0)i_gDeDUZ;8 z!aMH4wicyVgd>;oETLf!hC(!i-J=0D173J{PYKF#V~u{1DLxDRDQST%ivy8VIt`;Y zt$N$ftrdHcP;4cPrf1>oqTO*(m@?`r1Eq`Vjb{stGfvE4#up@7@l#a?UQVGe^~qjE z<6X9@(c?vQUlU^`BRSq8%cfEpmT45p!>$C?HR?@Ev^ffHcp}VGxfsp?DBcPG4ovE z{*EtWN=e2Hr}ds3V`(gl3u!H%V(90as=2}*ONnbZJt_=T#Uuy@3}q)p_8wV+846u0 z4h%F#Jm>X-m~RBfTYQ}n&1%Pggyi+bJ|dzKfk-u8e+u$mNrNg)72J#$ox@F*R1z05 z9!4TfZ=*-nOs_m$a$KWrzk%ir5jU%fga|Ss%4?DoHkg%3MIjo$$9~_R>SwTiky=dR zJ7z3FjFK}sF;8gEN?I?SPgT!EWzLtMWp6>irti0?_C5Ifg|F&zeDd~ZBUBDHE+<6A ziUi_vPqtreJ+%f6XckT1`S!k2OBNx&4hzGNs{5_OI!#aAog~;6q#Xhyc5A_uD8UhE zpWH69*hH`Uiui}1+(;-r0J_b$jW*5@girvW9jHDHZdpTtt;bi(zGhQe&Z-ielLP!_v}BC zw7a3XemaaEZDyQ7c25vzW*HKZnE6G9{Ajbsvo!+hG%#yI<^>Ypo2d&1qw^dwHo|>l zuKck#*Ff6#M7o7Y(}SEYyVA6uF#>_^G4z0CLA>=L zqq>c$IHff#0mtD z#{1MuR5H);PP!BJHosKO1>u>3S@Wr6Q1qwj^ZdaGb7DtMHA&$I=~#O>GSo#jVVaNK4FIPf@-CQ;*>giBm@R4 zmH}%6Adv&!O!x{kT#7dK{27}oRMoV9l_M=cJLLHF6m1zF6$&oS{<1~}a zGxBmt`$9ZT(vv)8kmHBWYvH-upc;w_mkKyBEhWlJ^=T5O&k+>tEDuR&&k@JmKj?91 zFUQDNm{xnUw=k(q%bDwK#YJglC!&rmebZj^HWv~59z$=*f7;7GLLW<;(9~T=C`HdW z5X;g}ooU7E5^9$@)Y8gL_B*W?9^_T;qpW_uygkjcS?rsaP}0NeoL^~}5I4p=bf#?_ zQj|Orm1c=w*f2a)3rm7lJpNn_&PjIbBb9b( zFtu8aJ4&0pkOB-+&j``ru z#;>IJXwlcDFiWMY9nnr0KR>JOh#8+XyV`JGEstIV(cOc1RCxjQ!{zKy{sG;|h6)&7 z7(IUGh1$WY7FL9a3J;GC>W|t6JOf#qi}hlPK<^RxXuQj?5cAshnzJg-&8TthoGg1P z4qrK9{kZ8$D#aefb+Y2Y`^K9iEOJ%fM;wp3O|N<}_R~E%g*jgRary$kvdVHRL>?Zy z(UyNR+ZXs%j8Lx zLQ#gX^0rhtR_UqCV&>I+Gya>AR zdXaH5ty1a|emBYm=0Z0^t)TEOKW3$U)xS#&Kr8P33`}dtQ_pJEHc1N!1@8#b5!|FL zYY|+;Y;?Uz2WJGpC9kmZcMqZf0z#C&5<|Y2scj{M77l0e>Wa-Bz<_B zFCiX_XcB#WIuMJNUm0*!XOBZ3-c~j5rw!kSh{Tj$Tih#maB`?K6-DO2=r7bVPy24_ zyq_yK=12J%BMwG>?euV>8Q0Nq% zQie%+AUf8c@w1?0wLyQ8;&T%V`&9@a*$0{*slK7&?>?#>qUy#wH4x7FsPa4rW~}d# zakjB3*Lh7;x}5si836X0{k2BmN}|}Uby+fBoLZ}sIP~7K=46v6T4^m$zx`0zEB@We zl827D`uMiYg=5-Vh@!NLPEK1+echm+yU*666Oo}f$8GI1{1=682Q8hu&-ZI;n$-XU zU&i5QJ`)Q@=$0kq`1BKTVrZDVwtTsxE#4ymH_j{N1ZA{f5Y;<8aLMRz9peR}YyyCMO}yHW!0bcvbv_`%ei75-LBwtAv@jrKs2TkzF6#|5P3i z1!M^tX@4;2)b;WXo?K8-3#dzQ%XCeAxSYWE_xTQLi&I{GIp6OAXIc zlYj<9O0~#Pv4(0s--SUP^BT*Txdn{-+X-+#Z-PWiYpmS54q8F?_~)0Qb%zNz(Fv>( z`OCgzcmB>`Op1WX%A^^jUdq|BM%`7-Idf3yKAqt^6%8YbcmMr~z&tKX$7-|ThrYkM z12Wg|*tpauMt9yKTf;zJ<_7}D!rezHmd3v(Q%P~Z-WQx!|MR|pqJy!e3@D0+tL)$h zW8I4-LJmQ1eYgz*4vI_uh@YhN!W%2il=lda$4z)If8GJOT={4p^uBVYuY`ZiFWT)8 zvkg6V6EeT&Y7I|_HTi;Ixm#?+Mep~|S^O=bFh*fzSTm3x_UrEwAXlqhbOD=gYXwvH z>wyni2CjVib#qXe@XB>RgzIlMT4)y%K(y`2NKP8x_=g;NJrUma^^5?z|1|((1hwh* z=zm7x(L{7&R+TV~@cHbnldu8vP=lQA5&FMBbq%Ca0$p3BUHR?N*W z%coEs@FDkH)tBP_`5`1Yp)iB#xeH`boaUQRG`c8QgNVuVum1U>zrJKPk_0r5GTG!7 ze(=T+;wR-cUW4Uh3!4kZsSd9>4i=bTMYLemXa-)bavxpKIO|!%^mQ8uAJ9i)jq)L? zuhl*F(eQ|+Kd6f#MUz#*%Zbee96n*;P+7n=w2M~)?QNzKFyJ7{oiiAxV_91yBMh+MM3O{=!k_4;N4t?xFnD!D0>4q!0 zoCi+84lawGfK?82t0(qgdW=go z;L+>1?ogAvyEsiMbJ4|YDF1txf*5h05`4y}Q5l{AD>gB*{%76Zji&W^)~{-SkjDz7 zK!d1wh?y?j#k_p=`qz!c@Qy?13miXjWhnq|+q?#%w{t9kej%3iD-FMwXT^@!D&fwv zMbfpUlitL6$KexB8D*x68zaLCbwZDT=wk#!*eSU!a46j0=?UR~l~Jf1XZ}L?8Y~G~ z@_t95?fx`;x1iWgM;|2oP zX7sKC3s@IwLj4EA^Z_4W5PrGxh7F9oK(*9l2}}>01L^OFy3S`|$Tt{h5;FT^`w#Y#wAgU(o&7cEu`}rCbIA+=!Gw--wC(?4jDYJ)QMZv8`6K+ zX50T)Fq8PmKG1cWff?sVwZsHko3;%se#}37jKl|u2-7foz61e z1o5DQrsxyo5}^IIlq<1zvPH1}|I(S7XR7V})|9JWrB#hv9Q9Xhzn%&E50z*^7l*jk`$rY*DZmL}c(V>@bIw)H(|6{WQ{Jm_XTXZGAw@R=xD9j; zmYeNAKfk3d*#w?RU(6D+)l&;b-6qojbUbyq8s%I5&_jVm>b$(aFW`8ArwDz&z##@h zB@_Ag_k1jzdtNIKz6D;0;LYwQ3%b|zb6yNk@#7#cVDW3Hlr8bB6TGIIUprPXy&_%u zTAzvb^OmE$B5}>w$fBpm<)g^}8x_&%eDzjCZJRD~7}YmdN;q~~d5{e}_Y}ju9|%b8 z!c~yRfEjHA6{`8|N?y~>I^&ACx%fbiw&I;)Dv`dhFnrP%4H!gPJ zb?oGdP1445oL;MfLyt}FxV0@xcVRWK9Hpl%|>=iud2 z*!tr0bq`Do!HxZBJ~tkO9kBPzu2P47z9$e8V@r7pOcACx76$s}3eM6kRJwEK!p4JUJ2$h^wk5 z1J|mkg*B@}fVWgZZ;2>PWPwx&BoeFGQVYm!h1@S3Pfg96C7s+iP&vHnk;(z>0)jBMM#Fj^*bydN?ADhjAvBbnR4ebO znkym&eZAB=)DSRA78+31Z-EBhC5@!E}i($Lrd7Tl5O~bqQ&w@{Do@Jjao3PA6J{b<>cMkq)Xl7@=vX|g&3AlZNWIkr7wpM4{$T0oYeC6i=SXOge`i7VwGZ;kO^TSaUV>8_fU5E zeL#qucn&^hbZChSIOQJnbH9)#+dO(IK0 zI*K`rz%Xqhc6tNXn2gY`-s4-$^OCyM!-jmv9*(Ry543P2g}YHn!ixS!ERS^`*layN znSloOn^}|)tvcCsJKGTC2Y%1+IL9M526yuvK)Q!{oZKN#k@M}Hi#6Hf@{)mrL@|s6oax$RQwW7nSt%bA& z7Uu^-Em z8h>o2do@8y*{0AA3XGcr))RmdVx!^rLUT?D#~D8+t9 z6&fa2Jl#-%b%gYpNT2=Kv)--Zxac`cmIn#Yz=iE%v&;13SRlwo9hnRtKyjxyz) zIS9~*(dH|yx$vfVKhm5ZphxA5bucIZefJ}+>HUuDp1i(oWj&7ty=l5lxJH&NDvYja zB3A_N44brbg{nNoO&%GzmTH%+oS7sYj~M28nc)(~SgPF1myBoaZ%wTnikFASo1>f- zg+IY|hD~aYmIWQjhR-qbM4ShcNkrtY-hwNFfO&YFJMJESC~@U7a7!auGp_?}?w%@M zGG*4H-h|F*Jt$kHNS)mJ7kH+rj~Y`hLlz9p5^mUQ3-<<{!36oL3tfk&?W&v)P*rBe;4eNhsGj7|K;}02!x{Y5(8~ykDGHp`;rqn(umugsrdi| zh_ogOAghET>fUEDVV1=EK<(1b1>NfRC{r)jjocdwhPGGZS~}JhD(j>va(amuu(|MY zUTmKxPn%A0Svdxc0H*{Nl%68hi7h%=3fv@S zb)vI6L%tjXW|45o=ms5s_3l8 zD%GSDuaPQSKz?z@ih|E_myUtvqdJLlRlpI&qc^b8@2Ra4YGf*%#1bWbkJ!1MTsq_dT|a40e*zywbBwJ-snE^rEjcl#jDoG!EP>) z0<0!3cmeP4`y1$Dv(U5?-$}pn*Nt?FRmZ;Tch6Hp9WQoBzOx<823D2TXSj4sI`cv_ zRCDlF$#VONC*z0?r+fz!H>hQA(o4;lL?BvXa;r=p6*!&BAxNCx@7R_&UtySDCA$8U z_eA+wHo^eonwsdAyM59k~c3*t}D ze*gF+VAC?RN7&0SI~wwPsb1MwX5CA?v2Ch4aR5$rCK0hdm|>od9||<~RNW-c2%8#( zqHcKn^0N7VdsSjpl9nljU1k9Qc4l-@SNI+k}l zKDHQnYwBv=n?M#W;|FCpDX%BA#hQVU75>qgj=~0&MoMLMP-CrW-pFDZC+HY zD&})U(wFCgKRan3W8FKbS!vA}iqx5uOTSS0U}c;(xY2eGOVQ!@)b>U*B=L41&hh~| zl2Dc=L>@6o1&5nH4T@|Hkch_ZH9#dM1uN}$hDoi3D#6%o7>9YAS}4v=r7sD)o7-{$ zg=VddBOq3A72L`&#nsC(-|jPYPOxB;oH9cWcL)KG$d2TQSuNrfB1o3~8b~|2@v0=~ znB&E!Cq};V*3nElx3nJ6l+81p^j(L9!A70*^7rerMF}w>z;%Xpzri9w_AY-8{cM;o z?jx{gNOwBaJf0Y(AUTf(%6ZlEprHP&HnRgn+CzwiY^%Y>MA{2R+2!U5>~|OitLwId zJ4hTO*DpY%AC0EQI7>uR{I+onMd+ZW9yRXmg-mXYsH45w#8mU>PmY!OC|zHfU#KkU z$cdEYV1MvJVZH7~dzTI`LZf}}#xMtvZ)@{K zoh`-U!T+fyOS+B2_4Q!yG6RF#+!E298B1a~Z+?1y^Z>%tofm`mKAZFu5C;i-PA`tQ zwr;v@Ev8%3W*aleg80&^Z&c9P5Q;~?_3VVtmdpn%7WNB?{~HSf>*B(UZ|1IY56k5`~9U+1*t{S3!r`~}$wRG|-chznKRhotb~2;<#X z_Fck;do#S|EtYoyVz8KQ!_Cc0Of-UmNUL*~jU7haPoaJg@%mrH+E(5cT^M@)Nq(lA z__|Sqis$D@woIaXY?+UzX?vWHU)r>H5oNR*P0%v(_}Gz_PA@j-n$F6YXIas1N+dN| z&Ww8j&su_;H0%4~!1Ci^T)q=fyP6usr{7a$!&)2>4HUv6tl>>?I%CvSvmSZxSjYXF zlS?F}pO2^G)jl*#HxgW2I-4=SHd19MHj<*xP&so`eS8mkibVR%LgP)WA#O?4Vxe5H z3B+8*NxTp~_|=aajx659HJM@RT~e2>wR-hinQ6V!#li&u(HCqt$Z*D(!lGZZOI70k@5@KnIi%;|*pP*LTycXzwx9nhfQ?JFY-P zOs9$c=q1-}h!B%o@Aihyu&f|gQ9{h>C2KaN(EG_GrF#3&BEpO>1LYT#-G{|1vu|Ec zy+iQ>bULny?K%EiRd!F5E(kM)UZ$!qV)r}**maI`kMvd7*)m|aTUI!kc=Zg=EN0f~ zU4gG+4mNROp@`EcO7kG$<#U&_N{9(F4Uh>N(C-CJMGL^0thL(;58i!26ZJEh24?n` z`!lhFpO85A?0*8DG-@c_T^N_M>4ks*CFtP$Wq9DZSza0fpbuIle{skV`R~cBiyA}b zBn59Rjp*)TF*J4suXgWa8PLNl(S7hZ1N0H=xwl=nt;82}^+S5?X=(Vu#~&L<{?qm>v<77i zBLT3)`C0w-pg2ic{Ki-WQVb@FKZpJ_Yn=(l*&7DyJRSkZ*?G3JYvtz#F)eJOeC;Or zih770BY?ivLMWuR;h#w^%Kgt}!DIE(`hpX$F&dj{jGO8jnL34>?a7SaK5U7mB_17F zhBnR>AYf1%(KJ4Ta1NE-zIedolA_+fFhdaYWtAvr`@XRHCyou?`=RQ$N$3G+*R6?% zn*{YP*aYbT^mx}u=YyuJOZ+I?Mz$2DtHsdOTMAqDr@aLzz}mIbF|PzbZEgFczlTbmy%IT z7kyuoeEuAI`d@BZki7v$wnoKo zs~4U=uG@N5a;C^a^8co@TdqGkgc0Bzm=yl+0y@yyfj9;r?otpBbqpN~_~#A(^_70P z?%p4;&HvZ%0G5#?HdGR)gZn@2$?ui;|3|s`pSM;0B?|pkG5l-J^T&Itk^!76srvH& zAY%L_D)czN1Yt^l4mWgB1h9sgP?pdf{GPk~{rwW|W2cAm$Grci%#{icwp6kN(chAf z|4LH9I1&_=pf~)NxCY)cDim%efiAyNQ1D zw3-E7)A2IEOxZq7M3+&a*8#DP1K1A~WN^r}$lgmWR8AHu1#164ZVe#(Y|4SYz{rAG ziMp$f5WEQ_Ge`o|u98VgLqV*VlHd%0opT4xwrB5&V@1D9~4 zL*SmR%61apnay8Wi2vM3vs7t8{5u0GBbaL6yo98hd2Gyj$N*+fiVHV&ehg_nhTH#UF-0HMfqLs$$%|aQN(?5v!`9~P(l%ikDN?y4{iSn zKo`DyIFe(ySG$i5^&)V%e&%ksh;Y@0ns zd>mEew6WAMP;LU6--lfmHls4g3xZv4)~sb~_QM6} zVf_I;14GpBVN`%adCvFR@LmR##}o9{f#93Jy)Y0tKs^i=N;A9POQ!3yHA;Sfc`Ck$ zkV%dv4A;cBg!03q&;^Cywjq`E2Il2Z+Z$V3!ACUuQ%&23A}`YF`nXbomZCPxJ@f{_ z(_E0Oe!3{T0mNfqck{GH37ILMHg=pcJ(dOpe6z|MlklZLzv$eZChz_%`4nj4xSf^$ z*c?>-X$1d2_TD-y%6*F$hjEZ@1d$pV1Vumuq((wOln_Bdq$Q+5q*Ih`1!)u%lnx06 zDJi8yQbf8@y6dh{_g2r@=icWR_qq3vM>w8~8zNLw5DA#-i| z3o-ck%}y=uN^sYdo@fl+afV6)o)N*~Bs5|05uW>-Y_p6iJ3!ds_Qv&u1E$)6VC_Rn zyD|A1=JG&Jy>k0*z_xQY&$wTya9#oduhheJK0??+lHl(*Tnw_}O&KZ5%n_0@!$(fK zuUnqKDeJoM>1DzTJk=C2r;}|~iMudWOq#JSyFgj9qK?b#6_7=s*hB!L%SN~(SeZA8 zXye@K$1XT@do9r-%XUN>(qmb`Y5<)n$YFnh+~n5El;A9k!zYW7 z5B5)ydL`+*!CIH%r*^kIbw5H?A7mLT>Xr$pUm0Cwj=)$a8lbvl8c*ff{{85P=M_9v0`D{+;hR}>~Tr+}a4O-8&OccCXw58%7F87LaH^6cCc zunROM_q<=5AvN78>M;34?ymMT69QBlc?6!DGR8fUc@Anw=_Ul~C-%%CBzaV>z(W^6 zW7d^v0MQXyU%>S*8Kh>~JzIjO*?2xVx5mFrRDL;qEr{8gypAZEvL@d0nlyR-({VV^^|k$Zm61#J38{JCvejf?l zByQrfY8M!?t2aBFTX(z93ycDtITY1I%i!=*ul4QsqCePINniU7OaJSnXJ@*^5Z z$6D{gsO5M@t1+-yA^ELNRY*b1_U8HLf}OKIOuH>E*)~>@<`{o2_836^-G?Outu|)$ ztOWAjWBOBj0p|>u4n}V^7=+;_oCmPDtnl=8Uhx-4+=7B((OTH_lE` zh`U75`&k4SHNL7*h&y&zt`!S(#)ui&kT~6B-1n zM7bV2cX(f-`WO=sn)rw7A#N6WMSdSWN0d^#vtDm{_mGCixdT`G-9J`8kZwb5DcEZk z7~8+$?qy5B`+}YVbm=?6+u{J*fYN(8 z$a1O`#mUzIvHc2|GIP$7t4o6bk7`rmy=0=A-P1l~Pmf>5vNdG8Q|x&qcs`p5Dk(Lf zC%#lqGTTTG^yN9opApT;0RIfnxO$=0_CoAQ5JXU%$5}mNOyA^=YAVPfOUO5FzHCW} zXP(VWM8<=47*UITs!Trvbp&zz70~yO^4S&{5n|yqkQ_(y)jLxv4pkl8Tzr1Ll%(Xa z^lIdipIqtyc0g0(3u$8ziF!xrKa_Q~9ZFdx7QJC=f~=WNRBmkEqo+6yeet6(y%fKy z=zW;j&m)kcK5Z}Kltz-M!v`!sCEbWP!pzyCd+%%i=qU6#HgAEqgP|mB+H`qqfICvP z_D1iI(8<$LzEj5A2CZn=@*UnFLs?|5jK#rJIwfiBC&6fPd!F5gWv3b6-|r1DIyzFi zRJ5jF`J9%&Q{C5-nX&z!a`mJmvf z`;bBuafqGX3LzItbF5M5uN#*r zpy(5uwl&77!R8Qt^~z`Z@cCF5UIRxN9TE)>om1L@e}tkDlgLHJu~pbCC2kQHG+G=E ziG5?zs*P-++;88Rp|(uW})&UaY} zYo&&4CACS6kVoJ%IBD_MUn_&1(G#KU^ISRbBz}3J z!E^adw0*dg-M*2me!mw$P?~n-J8FQA-X!i{OS(k(z&H^5!)CU#=@{1Tc!2H$L1ru} zj%NBpRgYeTKhZbqY7cziev3)tnTGF3$*6ERTBT@P?j|JT^ zstxI4BTErAQtjCVQ7O~-0sI~h$@fW%7$9apN4E+MuRa%3VAd7JeJRSK*#K&aAN`sJ|;q;;ul{9w}>cT?_ zB}DqT13gXToXn6o0m{!9(}g+abadi$2_3pr;_!MoObl29dvkNd; zzFix<8Jzd&GtR~*@_wsP3lUECs?%M?b1Qt!e7pIEd~kZIOiEE5{esP>V$nYCYm6!e z%gqM)0f$Na*4FVTqpDXH0HUh}*5jAoz`YQpVNFCfmVUN>pDgj(1@&=5pei6r*$_QqB)0UUdz(@U2_d6pz>99?`aWS1c(mk=p5NMcy`UzyBQS{ z+*>;2xdVsKqXPH%S@X@L0=!=Nnct5HZP}tSEW_f{PHzH9i1>sR3E?-$Q|Wf)vV8Y8 zHLb0160xLC?Got+SArwu=6X0Q@x=toPc`igR;7dYwS>Rt+adJDTU@KJqiv3Hxy&}A zN*^~I!`yg;@k}9;!`lLrtSEF1oA-GZtD}a2B2&|~V`Zt;ImgnuSznVjt9xfFhHxuy%GNi^6(+)i_pw2|%hZa9`Yw~3 zcyuK7I4>)laQ($^)P`ZH#HT8yV&UOb4?I=6O5J|<9%HAD-?hq!!v`r39~e{s`s8Lv zaoahW)rhE?z8W0#kXgL2VuF0dd67tFG{;#oOJSmzN{US4ECMfkmOW-;tN~=NB5yFC zVfiP*db?0h-mhBVtJ1`WII6l(KE=qArtsihsS5pTpQpoNV&C**KS0b{5W)L*ACrx4 z_8Enb47hBL_%8s$ZZGV8#SliuMYGi5*CTom; z9<(>Gczg6Zhsipiv_fqrrg{%E35-*IXf?6Cs$<8lJSJQENDg9TOLpLKQCQ408>NIx zlpBBK?KN!`zg`nvLo(LJ{+`ncTeH_eqG)7jZ^KLM(G7dAqdqBa_j`WJ;$VIp?nKsp zSpdLG1ESW~O1vRfk~5NBx>otU9$wXnWeHcF6BMG~IJ~v%xk;;)nCK zV4fyo_YkuTHZAs8pNa-}uxLZU>0cfUrGf!>QX084 zueUP#m-~T=j0lh)8p)q&{QKpWG2TWhb_0+8{T{*~NBNxy^DoIua4y0anyG(2^Jj_% zlZ^^sh2#yrLBr!0kW&M;@>WwMt6k>%o!If#_*q?WPIiwoWmY9Mz$oRNIUXQ!S z@imW+GsfmBA#?4|<_%=?PWSp&K84|x0xB3V!s>yR?_RM-AYd|ZpHjS|_D3!s59ynJ z0K$pdaKOh@XB=m{B14b_A}|TCtFY+*P}916A1i7f>St~dtE3XE9mK+)BLr@grco#y zg?HC>Xczo31IeTi0J%E`VH&KpY3boiS1c~z!u-DdNUrhMVsY~PFtA(TO&BG5ICMG4 z%m9=>K``tDlzA$RC16?&0H_#JG*`ja4qm&aTyC619Z?NbLr%b_`b&CjU&+ySypR|M zXjA*}fUAh-N~sZgh0n!Y)^!m5EcuXI$1wAlPQ*M}`#K9Sv&qF2&AZ<-;OJfYAz3ifw~p7`KiHk5?z8KSd(r z;oy@rrtE6CPx0snl)wor;6BfQ9#XiGDIl?3L2JQ*-2un`9%vY{ggrF!8?`@iC9?y@ zu|42q8@@*~U&z2iP&m;_?(ZHRC&hMOgH(w2tJ}1$V!{&W=vY7q0Uto?s;}_cSkt)? zFdJg6Hrw0Vkg7f#{ZcTH(iBRt1)pzsI(&SHMWfQ>*d7d4f1_#vV>LM+AcqOf4tiOV zH?Ys`YF~|64Zh&@pwhzEnU_bb%n;Aki9;k}ET7|}-#FrT)94J40siF*{%q7*O3AvtH zWbO2{D0`aBAv}X)c%sL%q1jF@xw@Jl0#~{rvfJjA+G>WP)O$<&C5*@>fH{Ns+;a;y z8))8^y7h4Q@ZwR8?A$;%%jknq%G-lQjru&b<<)n|>A2X*L7OMWw*oB-K=mqoEY;bN z4)z6}GZEp}O z3#wtc&^!t^bsc)P*XV!?b7`+jv&iI9ThbY;vo>Eqz;Rdc`Zes1b(ogm8sG>bkdZ^D z8y*QiH zq+Fql4N4k0jv4&rL;&x3wP`KVh;s^LGiT+USNM7r!R*GLh_;i>Q{G)HG3cXdih3+S zY?_6f!1K6^&vS`zzVY`>8SP4r9vW3RDs+pge<5OMvq5c>lH(#;>~X}0N|65?-h<)D zAd=4%O>h!7{nMwHb7YGO7H>r6j$nZ-TbdGWdH?w6~wK`LU>7`s>JMKUf)usSWFGJh z0gy|3tiK1)$Pu~@32kX3(v={v4^Gc~W3LXtn6zFx{5E5bQ8c;*Q}G2K0pDGg!W+0! z5iXtap?_`DAnTi&8`#WwY0t5jxN-u(PnBzDC_d%rRVA;HDCms~YsU}c`6f2oUrkr| zfU!b2oI*=oqxZHNv~z_LC7l=bSH;in&i4xj96;&HH0LER5S9$b1w4MMLrj` zTrb{f1GC77dG2xsDe;tMd6XDNK3TTr@t>Fgpl8Hk?OWA8(sF5w=N)$i8z(ZQOuNxe z{MtN?tTX49{R-QY#6SsfPo%v)a+QcUM_EDqU0iQjD<(O_$8ZBYm(0b-MRwEb+ab*Pxo=$8 zj!|(CV9nJ*<`thGbZv)$7Fr;m|Fjmg!ti_fZoDG0s_$ff&qj)!+l|ZUj1?}SbOy|M zrOLT)EME+jXy${hbC<>DmmE222+wcg8{Tl{v-Tv}N`H7BFw*)syHWUo|S9wn46_?RK(^eOG2J#kB1Q0mORCd5w2iWv;H zC*YmdaEK|#Uj^tU^;NfpDw+u|;@1c3q3G1WCTvFAfK38-Y8m%ZVHws(G^`ikz@_NF zVs*??Bm?Q&xIZwoe+J*<+V#kfx5QNt=9o_4pqx4Nckqm+M%q3q@}?&h$1VRxRtob& z_FI&3nADOsIE#e{Lv198C&3Arg|l4+P7AuSz0s?Z=SxJoBj1^sP#?L>OgI^6lfrM* z0Qej@m0vvOMljqG&ek_1mzEuE%I=;?Zx?onnRlKuL@LT{fociyfNg?oZP5hal@UwX z45>ue2fWMjyS-Ug`5L|z;9%VYj+~;Ol;{B-Qs2>|X?7~o9!a(?wOK>@W}|W;ZsO#` zWE)8%#-sI{Le39{E#^^x2V8ts^46850CJnE?OBUmVJNWsorIYiBsUL2AM0x4C{gjS zxrR_d->*=(t?P6xeD}EJ!<2DGqj`HoChiDB1NHOu70%{ieA2mZk*#b4jZFLN1FX8P zGfyG^p7eA9=n&xWB*y5>GOjfd#^D8`APVNni{jt*hEwvc6+rMRq=f}AVTDgtkgSJ) znoTyg=WO!%8J}TOHxw~4;>&ARVJyg?zTd~4Te18O^`3Pva6Rnc!ob%8W}PR}(enKuq@x>q7s8_40TK{W2^CY~&16mto7X zhDn4!#wPCp+h@~_Mhidcdh4hI)*FF8NXBE8c z7na}i<>^V)_3J*pFahN-*2w~f{L@%Y+iSgg;ra3rMe`{io9n`Pt7c#Dz_-+s;XTec zNMEfxS$zvpxCah+tW9p3#6 z$l1*~zS)_k;z3K;Dp+2)lqFBo@KL2C&s07cgq}ARyl9yo&n^WqiQ2E`zJ7D;kstfq zAsZ0Hs7$sc0ktfA=+1!E_uwPqFhI95YS_*q|3cA? z%3$G$0hqe*R#CT$`>l&%+P)!;77Sqymxq>2P3)99HzB5DebNxhD(fMh&?y)|!tjZ8 zM)3Wx1KZNpvdC%IbN%#f#7s%*!}P&2n=6SVdij&Q+YZV}k3R&joe(u?(Zy^`K%m#~ zIHRw1n;S zkik)mktuI)lvrR+0R$L=u1~Tj?q5VsETn+a_Rd1p0gv7mL0~_D0PW}H^fcB=dfYeL zz9F>*7zCPvC#=xpDXeaP87G4NdBi6Vh{tM_4yq54a?MaSeR}a-$^nIqZ1G9K$}G?9 zq~9#}o_ZdO(kF4}10{Zx96sAw+Z_O}IA z@&E@1$GZMo!8tP^)7r#n(|K!eRreu?sU}l`G4rhpGXOD1$$NwxCVoD6@&hxI3 zwj~&XV|MQ=w#9pVAiz%mNgOKn2oa6&R5>4U0MY;qaU0|nmXa3Sr+j@jEI+Qbi7o7c zlYRTiYVcQ!IosYm7j<1I0QvG!%YP~_MHP$X47I5@TTXo)cQ z9e)XVM`(xiZK%w5uFlZXt{F*n^y%%6()1fhuB&qews=Bi?9ofhB#imOYLU;CQQ2RW2r-nW=?u$9s;^j2RI^cgrowOz-FCYZ zG2H4Lgen|w^u{mT3AYp#O&c_p!-|r8ZN&ht^RMvT=N*(~u}-eem(+9j6SG5}^*oko z=?PUVwsrD*QK?v-cLtt_Qzz0F*K74#%|X)Oq88?raZ%ydt>+|hV{z4E29+W$SYK27 z)1w!uAi+ova`TmJY^thoMC0QU{3^m8aR*5;mBrb!2WQ&d!39r$u}V0NVKzN*8Rwuc znL^1v9qyjGe)_f9k|03Ej=v_~EIYpxX>#=)V9Ao0$?}qOlnb30oFfDJ&l1Waj}&@% zl(b0)Q?wDUSSH~JsJlMe$URI+X6t!@GcXOBoKYAwxnZ^)C8?f z$?H~XN4;gQ8E^1Xo86x8i^TG=Olm@eLda-h;nM(MBhQ1KAqR%ptaj>Kgi5Gb2x-fa z(=!wbv@qNr#2pud0B@HEqr_3Qzm{hv>K^izQ}1G*7$3HwLF;gq^>qha#eoiyfedegNjx$J&fPhX8Y?S}rb%wcz9T-~X$cg*Q@w9316q zs`dt|24O8FaQo@8t00QGp9BFhSb)A?9KDN=npayp*Cz#ru#hGQ@}lecxiTnVVfS`( zV!hC~0DcZ&?))=H7RwPa?YQ>a9`WJGa#rQ$Xs|Kf>$%+5nDdX4QyT?57ze`O#vUBz z@I7lTQ_G)$Bbs5B^g6Gx@H;T=JMkCS;DsbH#|LHw6bIbdqf<{UnHe7g0{S}K3zQuv zoypj?pD_y90Gi}$R9vy*PK#jAw?Q`onvK*2->bgQBqvi=+xwWI_qi3x%keO zYU6)*QVCK{9E?Giz-<+U@;+5|-uYU(6!F=4EEFUL-q|&(tpU5=U}_d1m$0Nx8Lp{X zelD{Eb<@$A7f@!%+y-c5VK}+gTXXQFh@uf&0+KdNaYi?t4SWd zjG8DK;phe7r4fjzpRNf+o=RKcZlU}FDV?PQpfo>lUF=pra)P2VT+|yOez4RAvk3;k z-T5hoTYaychTyL*DLrWnCZZESD4c1yPfWY!7e38g4=bGgd|!c?qV7r?81kC4cg_63 zrh_s{b8DWAG%33WV@uklbc`CuU(ZFxgN^(OFwe#iT0z)_q~}D*UNz09_JK^^M{uyX z6t_GB&Xp42&RRP|-Uqo(z+IkYp*L@>RnXa>!f@lqxwe7do>*UQwhU}chyWi0Q8@c4 zAGrI%k@tGBS(_G~jdCKt(cy>4?$#>6SM<+zTbw%Cft0)a%&qoUKM z&JN8{PgniFbe=q5`E-}x_syj?5y_{Eb9q(#cB5|rLb|d5VAtxyV^`isDFr>=g*3#4 zmyp0PpYO9f9j~?6_^!?V`x1c3Rifm8#G!8dWFBLy;WJN(_MhrU}s0E53p<;MX zy+c@j%6F(+Fl3Ayx3@qdVwjGzh@5tLv2U!qF;Ce7vQf31;U8Z^ryf6r3;h;B?KB^^FifqJiSZkWgzt zLLQ_MPH9=Hj}0M}{XDMEQ=3W9w%!0N8hW5`wyh<%yT_Q zf}^dUVaD+XQZa~Caf!wN&{UwOMu1B0!QzMvApEaaNwN~v{POco$H1?(m9y?*QvVU> zu%^JqOKusXvZwS-Ya>jMKIP20c|4n9*Ko!`mm-)g)8jC(mXu9waY>B*J_E8USi!A! zJ}`@j8hcz=U_bG;Q++UvlkjHzyx#4~AeIoUSnoRoz7p zM^Tn0idY5Imsw9XtqkjV{ju{Jl}>(trKrs@-W@vX!A7B`-^iHeFyk9G7h5};6WSqu zE1S*F37pPiuS~nMbh}jA40$3KLFogOk?MPHPrOfgO{f;ha!-pckTbF6j+uSMHw-@S zh~Be{5Ef4Py`=OEZ#jAOBpq!C*+`d8hVs`4{k+>Von6)Mb^#$l*4b`Bgd1=GZM`xW z!0mHl_4w6X+1PwOGEKBC_TZ%6VU0p#e1b#~JBnbegs%mOjAJ-5V{{Kyo*$28leqDB zZkO!@bd3F_R>)NEfO_|$c>Iqt1^N~Rdhdy2-7NlrInz@E zpVCTaWQyIo>dKoOL9szN?J@S$TId(!+g$XCN4E~N?t?1~e+zQ{wDK{pCx<|kT+UzJ z0rB;hNKqMt)O$~9CvFA;v}R4kYnzf#eWg%s07g~kT`WX$hii*(q>=Civ3XII7`NRO z_X1upxZQ9AsI_WadYXI#<=z(v-FfmVeD8fLuo03^b|=E#+`?d1s~F_ZmM;M)8B#(r z^a~<=&r@)|R;b8|&n$6KwqQ4T>dYZ$i?F~cgl#~koAQQ=zSJP0`66r@x0lE9qjt%a z+I@Fnk0Rsf0QvfhSOpg;!Q0ZPr26R)3`7vwEiwB*agXVJdCV_z!gGwpeNd4}3VXyn zvcnS8RJ=een>@PtOYiAfCW`peYc>`9A-jtqyTR%PYQ+>+^rGW6;S$j-6uD*25-tcR5-OkI`|-AU=V45~rnHeNdkFC^P+`E(iD z)`4F1#9Zz5x%DUDX$0{4u{{t20O2_>KY-k!?|5J$X;v$%(!|Edk;eXgh(s5CiydH@ zCp2FXiB!+@>!kvshaNcR-c_oCz}|Sc?iTv37%scbn=KQ>;N9_tI~{-(OfRf+?*KF; zs3ip5+^tYaQ&#9WVkii@9u)V3EP{D=(2vL2VA-(mT{0n0PH;H zQ9`m^VD1@dNNE&&Njcwa&lGXWU0_iIqTJp@H}FJOr8`exEHx3>++Gxz&-^{G3y8#u zQ|-&VcbA4g*$}i}hJBF&no>a=E_jOp7t6Q@E-kURxZYHOLG9B4p$Tb0N4vy^4ip>4 zL^5HRMElX3E`ao>swP+hzr&pKiib+ytmW`|%qW>PiIm*b&?0M^e;u|xAhWfo!L(*i zN!M-+7!zBt$twGdf8VsqsfB+$x{=4TfFqMlTc)^0RLE3v!*?QWuUV%Xho^aT^(fz6 z-fe0lVrnG{1TtBCz0YV~YZC-%h8%lu*v%h_$p)>i<*lg{FK~-u0$sWvc?$rpk`>=0 z^)@tqSUc?2yi5(};FIUkdX>HRp`0v?Xp(04_-tlU^(22lN2D!sXez+neUdGUGYV62 zpyc!vFz-yS^A9h!>?e?Np>9p)o4NaR*muG73`?S(Y0n_x1fQnWynf;I_4$X_E`MLd zC}h2z3y33G2vYyS8VIt5_G|T)N zt#FPeCP|)jk|)ae8*i@L=bZ`_-AaWw+w%+%d{&I#F1p8PaL}K%L8ymHkP!V^BxwPl zeAw#WS+|bkfK0ASkLidci#S@r87ow|GTADKkP<#BaTOuTTAkwrL;;6ygnSj~$p?uVqgrr$ zXlQ>jHyb^B78LTjZ>MXSQsm4+qDm&9;CO=UbY!9xKLf@x1`fUvj%pOxi*-!uj&TGx zKxxug>-{I=#r>THaC2dQ{mBgu?%Qn||Jb+KVvwjz4m2O;=`HkuJIQY*DystCbE`%{g#s zn$vT*XIyHcX^#;~(n_h9B=OpMucsQ-{~|Hl2kQ6ez3r5YrPssdvMIpwUU8=)Wx1y`2e0kJJqrwX0$V2b|DF6 zfM!!^Pec>B5hXSFVU9xHpNS>}1d}n`=Q#n4OyWRE;fn3QB zxlYrs@y}WSWmCixE*dNeKw9oOv{^EzNFiNrONmwHy=;qy%ia%Kty`}V^gTWSzmtx9 zzLkicR?>ZOO*nJQ{lmj8*<1G=da%2vgk^mtx=eb6qD>MdO-oHav9Jq_>}iFE<=d`a z2OMzGLn`m(*bpv2$zQ$0E^#CDsmbm@|HD;m#0HJ-M7EErL(l#SVY2eeE6EA*M$bp0 zXlCmPP&07EVi=p@mDvP2zq{NKiR*nxBXPp(Y)Wc|yq2&9{KwJp;RT}&T_FKqKNQaQ z_l6EC0l&acu(Mh_Zw6bZI|urcFL0Q5D>uIE%m9r1R)G7r&{kN|Xn?=EF&lxdzI?4}*s3J$LwE~I( z52Lw>G5ElLVH%iSE6HHe#s63815?MqNFCZ=BG0-t2ZvvvpMA%}K-~~(AUpl-ka0Nc zCqdVpUoAALe&VmR<_}PfaRPkHKof;4g8OyzH<`kxekFzzAUNy;M=^Iu*~s@rGn~N1 z@1*!7%=0@77aflg=Ir(JoZ!(j_&BWeOhh?Xd4LW-QQn(s3D2#BKksT@vh&~dBFvZh zyv2MZEJsKQ7=q}&qH4*xOM`@`QGaJ=zrV>DL!`a?#PP4ki=ama(ePntR}l2v(zqCg zUqC}q#^nQ$%~BB4B#VaA3>_TXe|UNQNC!m)1AXR*!oXG?(|$gjBbvJfF=SrIFTs(< zlLx#^&%pBe4_>AaJpvP@6~1h-j}yrKq2EPu-^KC`3IB%=K}Y?3$Sp+(B~wxl|?Zcf8{uf_M)MUo!#VKhc$1v zH$xj6Yg>aA8#`Nc*a##Z84B%aEGtdo9^>d*&yxH}_iS-%o-00sR1>?eV~fJm}9y zxp)qpm4b+3V*b$#_AICP`9BN|RRNdj^79ALO@|a%o%xP$7C^J-)`Q!H0;F;_~pJrvvJ&n}`-l&>RLHf_0_%SklxNwTM zxf)rh{urxdk9@r~rEu7!q<>s(To!|}0YT&~nBWNs2@Vum7ZEr|GPAOFu5Z19Br4&B z;Xb4QMaQh5Z!yu2OOg4YWn}80puq@Q{|RtZ^A%wsL)q&3#Kgpm@1#d%y?l9u5*uNT zEZ#otn#}%Vc#Kjgd|7=BGD?6$YJ=mbz;C_h#rMCv_gdl;6ECh*z({Het_HK+Qc%pe z{CpL3LBWB9t*(!fk`iO^3MXZFo^o*bA-Y=fd&7C1Ozn2NN5&OY?R9+*XpvD;MA!B7 zQocg5{R_x4ndeAe*T^FOYe66@OZC?DI>#b~PQ8GP(mVj2*m>ZX-*1EbXd-wjO z@y9Giqw)}M4oT%UR|41zj_CA^jA8#U(>G?vj=hKTOsxC)vs)?c&6jkV|7Fx{A}g*k z4P9ho`MJ3LoI~oA9kUse;~784mN;G_(1W*R5}sb30UV-B6A!D;C;>3)_@o}>jXx_R zP*z3}!sI2Cv-o)dJG@67D?AW94WBCjbu%$fjzx*bO?#%yc;YAlCV7>bcq5+@{;0Y?rW-*H#3t}h!{StVx+^OC2qSTLncCa~qS6A0* z_#-T=XWz{JQM+0OiFZXoAL3oY_r0K-z*GFx3h&BuZ%w_YcO7}ZH-f5y&-V5{Ib9RZiC^-6**ctLLS+uR(Sb}g=7zy8nD zxA!6m!`W4+(uakIH~#x|&{^U3ywX2ctB({SU<(MV4a`H>tc$4^$*>VeC^i8i;>D}i zeCb|EF|p6_BOS9@xAVi~zK?za?g)3`R*1kWfN~3JcrPNbNG_p-5zRJ3x_o+1FLMh& z#$o>+R!m&;`#Gteu}4&>RRMX52K0ee+NDx@5R5G7RB6m|m+(GTQ;*qh;7T5hrph8m zfj^!*^A5DvC(e0yFL8?U;2G|-h{4y=QR)2MC4A>R$=tZrwKWgWNf;X&`^TLi zjXqfQkGn$a6Ckwrs3LapevI)5N}qy)0uYc}U0ns80TgFsJ>VRCMn*=w9>V6GiVVAi zVufvtRpI^5RgN5Q7jRA(4+Nudi4vH_c%uQZce>zg@9d;-LGZ@$zY4ukCO%NOd3b?+ zXz=Jti1Dup0C5#DMDe%?#i!st<)jM-Z>ZfJ`p3OEy&8j$2QdYxEkK=z#hAqHw{Bg` zKxkLe{Cvj0`l=}ly0o{s`Cnpx*tmb2@0iy5f3|V!M8h6>z0g?E%F5~=1MjkiLP+K3 z=H^aLPX4Fe7=ugzai(L(j*b4$cjLcqwVDb-YHrjP`HxYH;zT$)Is)`>a2(@O^7{Q%dv#SrBS%DJb#`-eb4W}fMDN|K9RmXc{r#e6&whfv_QMA?30w!r zcKj+F-^^WVe6Lo|?=!^f8( z5!8C_{>QU3VB-xyYYK2&gC$ni|2jMSlQQj_Ze6fGMUIL%kIqs_oBF+rpq0rkqq9h# z+t?uZ2@@qfT+PhP3=LT(BMN_=UAW4iX%}g{$0#?Ae9}8NR#!3Nw;*U`D*Ja2dP8ij z?NOXY9)ecz0eLI1ZhD^}Y|}F<6IS!(=Tky|orD9wo1spRi;a>(bbehGGgybEVMV*=w=4GNH3A?i47U*Y_bu?}Q~?-0 z99wf?9ZQs@j{ZK9(&1>UzI1bc5$MvNy1To(x*lx3qXs`H_^lk-wS4^=;0i_UTD1WI zhH9juO#xMfpt*5dZTY^YJ-hIh#JzE(AsO7_quK)jpt>xB=Uv%qr_vwswa-NyZEfwd zFeRgBYN=UOMPQe(Wp&d3HG67sFpw)J=s911a&L4lw2)4?iu12Gz~gfjL&r=niHZO5 z%;VY+2(NAW{kc0y!|rsCv8wKmmj88GL3W7tYyr{(=<#`=$s|0N$o?&7g1+@VJbzA8 z@V$wCTMWq1)oyFp9ag_4^Y`8ofDD+RLGiz=y?Ch9Zd`OJ`ycm9)+7rz?Dv7?&kjX- zL;Q<181pZ$Qo=Swc|Q2JJHQMeEEs%Px3B*S>%K=w7h#pUc=W{2#KvDALBL%5?+rt1 z{I`YwPYns511$TYu1QL)TUA)_M^R2$Hdk8TS5@f{k^u7p{9(qj<5!U2%fQ0I{Cfmm zak8;D=CitKY;M43Ze?J4Q{<$rwP~QLvOF=tG0dlk6%}MJV__ZY$HGDc;vwJ_6raaF z{14mVvb;1_ZX5j!7S^*FMcH##oOQn@;U;QymzT-_1n=aHbFybIBguIh;teT`tV6!s zHj0|t>w1uI&Hj=-WoUtZ2!pEX0}>WgC)5x(zHBj?a7N?b6fqSMG)*Z=Sy}NnUC-Xj zb&{}X|8lVQ%_-;M0zmup7XK9Q92fQ3by4+{DI|Gw$JP4M4Q@ZX7msr~(TE%?8+3AU6|B$E>3bJjZXpdxOl z)-VP7f~H!tAPV^Ks;*YLLZnhwP0@EA&yT9HeXO^(xYO3;{Wak711r}S@*{xi9RQ&^ z5Hx6e@f2|606wtzT($(L?R2j8(32e)9Py8hK>-i@rL**@$;e3bJh=Ii0ym@+*YZ(8yRlWfH{rWlv=w!6wTu3~ zrU)tA6@d=5Umc`5>&aQqN4VHSs%FTpk%1=EA+4!dpZ1JpAJn^{{^STixzA9G!u%5_ zaPx9%&8uHnfhXtCCm7c~&j(;K!f(s*{lV#b$Qqglkj_PiYm3aWg4}^;2eM?J#1<;l zfl+`lo7LN2j(s?0uwcIjXp-;Gi4s6|jXwT%E2;_uSpy^y74tsuf-2xaM4JR_@U~9a zR4g5~-^IXUuD)45GU1%*c4G?jQNO#@(5xI69|6)i(Y7plP8Z4Z9<*8cdMya#aWIv8 z0Ox_sMBRw;?Ml^P|5pnbCW)X{^j54W_2{{k!gotjdowB^#nA5aj8up_>H97D$WmUb z^4weS+z|Vc&G9LJUHY6i-XKtrlQ880sxPvA_%EHE#V|EtjFC84(Ckb}9h3v8AT~4k zkSG|M+3Zhw?Q=FCZ`mZWdB1k?J0wmTtq)pi7x%n?@$Mo#0B1Zh=XAnAW?S%awAY&% zV%nRQ2U4M}VaP4^3}_Hh_SpAR1-2lgs`Vx!K*Z}fMi65lw0Hl%w_cFdUE(G7Hh#IvwPHF zTK%Q-QP&Z1$=&VVDo-%|ghp$Bf9?r6@1;j%@>^MRfJ+CxglmRRft8M5@H|q7WfAIJ z```fFpKl;@vcGp;3;E_?Zvo?+kxhLZd>T^Bl7VQbe7;Tj9m^N{{nmZd}n=56vAd((432g*eQ$6AYOb`c-o-SZ!2PUU`bbD>qF+E~yJuY)=sd&MH?kEjh zRj2H7X1=z#PLkYueo8+1Ch+d%d_|gFu9sLUme~O0lRmNvNIPM-$NlJf^%3~_r!aTP}V;|Ji{7@?>S69R*ZgXdm($CDSpo`eV1Yk{IzmZ(jr zyQZtZzFd4_t4>IuBY_Ap9zhRGirK6@j6-E@+gRT;km`11y!PtqT?0t#O)pBQ=mnqRP#Z8|{=drFsloQ;gerX$tIfv2ud zVw>&n_?1Ey4W0=R_(DYhuGehW7fb#e5In}M)szYNTFu9sl(S_Gf2~O{xJFT_)ZvFT z8EJ^0jFqd+z#Qz@o}Z3W(v}i-@A+;0lfr!Kx_Lwrg>0ikT@^|z(S23ciunPZ@-6ir zV0W@Ji0rNcw+-t%Y$CuxZP<`-m%2Tz+PB-4LdB9wO=@I{;r_u|T~0+qdRg7~^utqU zbW?ubiUGSVAjdO+E12j6=*1KdyItGs&ZB}GBsJoUL3%G0d9`?Fa(z|okPP{U<<1b#+f>~%#!FCN%0iw8&!v9hw z^~Oz>H#81tDy*9r9-~Hs5x31xi&AtlIckFyPc%h?6&Hl9aUPK025k&bBL;l0 z0OQLCI#r$$dI2sD??BUvU;3?T{{ zKC@bbg)i)D>_MG?VXaPa1x+E0a|3&a<&)1Jl{FEVJrN4>nEWBkWj`nCaO&jimhy<_L zkF!*~P)j@9>Aty0&UGU>8K^mOieL_TZ)c#wWkq4({B_Wp7WJCsap)%*e6qT}E+_KNsaO%q2uY?xBcbU4{C;QH6x+8g@9xg?` z1U)uowGPY#z=sMt&QghwGX|$WV-aVjJlqHsEf9$*29i-P#2m2E643!u6;S6J67%El zV@bP}8wgL-dU4#fPmD97ZzrDLJZyC=fN>gR`mL`#ZtcTAN)w)>ksMPo1$1|e)Q%ED zW(--60SNCeSFI#1*s8z(xPDEm2@ec(qZ(z%4Bi!ys-!7KOODMXn+j=zT{oFM!tV*- zq4pr~A!h(lZ}KNqFeqX03~z!`f9Nnr$Y8NKc+@g;eF#MaG=TsRs8#?rfoEs6JdF9Y zh414KQHAMOH(qB!4Nogqryt^|$B)d#gcCuNjWrfF(eCH!@()($`yHG~mdUcOJQsMC z!rw3vTWTDsx5_V^2_pd*sJS=azXxRm&~6$72xs?8i&*QyT;`i5!0_VQCtPA%RYqD3 zo~5?{J!P6JJG)ziWJ_I5TC%I)hTa84BbXR3%|9OI1O@CXrPh@|U#x<>HkYTL!?iZ^KfiWcrAQ`sf~LK}0=Oh9)d8g?ZO0s6jSbacHET z*6FM@lBmp~-X`=Jo)3($B?6IH>edRfL(~YP^Y)9Ay|5X8Y^8C!t>tikvBOj@fO@;L zwX$IN;ii;Y}s{1_y$di{>9EFD!Ql-qFkKEwLU9D#an7Vxv|TryB$IJ===k zaxu=-5^-Z@u(s;#+kNmIRD2uCwFw!0T6IeN~M6lWxI{(Kk|1NIL0*dw&oEKrK`EEA4l^V~#AdOLKC`+UYlq2Fh2g zdB~Xf;`uOoAqePNp4y5w9YQrFw`hNL38x$!iPl>FyilVxy;GE}CXk>VF{$+)*W{4; zuAAo58gl!S5a_)>#CvT>_~XjVM^m!0Cvm3z6{nvhp8zi)79VKUL9p^J9om6~&P|M4ygAq(25GwcP6ELF?=ShvRFrzH z&wu$Gf3h*~sZqTV7hDjLiuLcc_5u5zvimV*|1I4Jlv`9o{HgQq0w2tV-V5w30_kpc zxlPJ6nKnf*)2FY4Rd6WoHQPk(XBXp^0Z>1Rb;pdPs0@z;r|PEnx#T15Mh$epr~$C? zL0jfs;rBJsFTr&IZwU&|pej5EMWy#oHO}!p4i?uyP>3X8Ma8#7gPuk-uJm+#^{JT| zAVSMtFS?K2%qR=!k5>#^pFv<~DmjAxlaynR2>k~TsKRHN_Hq0s<&Gfs(DXRBE>y}< zYy-!!%)QSFNE`xcUNnht2J7cTghw-iqS*OFQjj^}%jX?1x+rfao8=5pcHJ6Qz8^nK zoRdqBa&Q{uI6s}#$j|R=XbjuUVBt-kz)7Ox|AV!^46AbO!bV|Yf^?^Jr*t!=J0%oQ z1f)elQt1ZiR=QhJT0jYDkVYj0kq$wn6cCU-=ChXTeZS+|KleYCDf7)0x+i9^E{dfG8WVep%MNaffkmEa;C%xYW0^9~XZf{Mn&| zc4(hoT3u-s^gK!eZyL~I@x)&4b$`j)mc4U-GIm~6F$`DLKiQ||To1^+my77Pl zG8$L}vvBne%nNDO42J19t_VE{_jzW=SplP>&`0lEiy&0AOPANj)p;yOI<^Mv;psA^ zu9xYUy@S8Axdul`ea*KvUCI0m%=?93BIvREAph>dk>BsidQs;{I(EO0oq*U|{r(M| z1OYz%6a_|71uD@bNUGpH5?H+p*#Iz=W7N5|YFTG=t>LVV9J&6mQ%o0Qcr}J3P;CNR zlwqQAUWZD+{4HTfr%xXlhhLV2^9=}(!EZ$0(pkWfyi`QYo^@#{Y?zq06_SY0V&ynB z^ml@HJc?*myAjJ7mU}iNMjNt{*F8O8PD;zZTXxvT6kR)%bbzzb!a-_Vomm;2G6HPF$}=3?v%?zke@PUrv)g znP&kd{W$%(ZBl1DXe-twK6cx;Tv{T^F~$fiviBQSQdT;Xyp)3ah%Yi0 z6E`z-%N~{qo8s5fR*y zy~klr`9gPC%}QLlliy6|Pl3e;hDxz!$vSyS0fOmILrbCCtrg;&j(|UJVOJO#9xc!F z&C($j8Hg?u6--^aI)t%Ll=KF@^RA08&i5eu+Vd5A@Gc1~5tS?=XdF4Ok$PU8^fsE5 z$k1TQk3v+@UW6QnU{;v(qo<|$q+mdJfKPUwxiT{Q zK)(04e7Gzt9ou|=okWrdflzbygpA8Xba!Rx2j<1BNS<;1xa^bnYl-=ikA{0WLkH3q z+mN+=9@8Z&SLCa=EPb~)+|f+=!U`p%mtlL9*%p+?y2@P#r;99ZGW}c{&BD}_%kz`W2 z)OA3hjh-Q^*2Tpq&4dg;9{K%<)%%Q$G)s3?+O_%T5{r9| z>Akv_K02?Cu{2M0JlC;P*EcV7jF{Mjgb>jW9m_F8Ee2MZDrqua@O`J zt%#T)T=S7UzpF{logz$n0{x0Pal)0?U)|r-xb4kz=Fps;(FPr4e?eK5Oqc63mGs35 zwrd2RsY86-H0nhQ{P`SYs{bo`&SM;9FzryVGzOjw<;IEV06QY}6t z8su8MwKnZ3@j(h1`vFmhv=Qk?6J}Q>G0u4Bo!_m=9GW34ZCY$2_AtRrasd!K{kbPX z-k(X^+bzgF-1-h5eE^3mHyVlcOfth(Qwd+Rbd*70pT_Dd8Ef_iRb>%!K%~pWARUCG9%N3sy{ARodyme_dJSw)8 z%m9~BNA5QUkQ5h^fwL>cCi6B{oH6R`#N+)+yP{4=0p){9nlrYZu;>(jl6O`1(DX(u zsvCv?G-9$!aNkta`8_|)W@}SVB#`yw60yEin#@VEBIAb?4(;TD&QMDYJ42z&w>_k` zVh(m4?5v^9H(q>NwXXBS;?V3zx-MF|;>~8-CXx(srHvLRZd3k`-tX&OSUh1hmP z6qhKEGG1=Ge=+Ug>9Euhlf;<244Z?X=#RB8WXGdk{P&i6#4Px>RG|g8J|Emg3Fd+} z3m-=%7r(mr)zopmOx>~ggZ_?6NzNMEF$sRbnPLhT~82d?R0xSdXhlq#|kxE3ZBvynQwR9v(`V%y39Us-m3-2vJc z`q=p09pFtBHo?4|X{*!NYL$WX<|eDNoyyC8HYc#@Ac7jr0lVfjM7QkEVcB@pFK4w;?Sz;IG^42DKu{px;A+K zn;OQYLeF+`QWVk!mW&~+U_c5|=jqhc5mxl@@PR$6QI6;gu}qp@Kc|m4aLHQ6_!hr^ z9^1(ZQC#)R<#x9f&QbZ%1HRsWZ1k8P!93U_y?Tm+L=OYUQfY`ihPjb; zG`F#l?(${Lk&P-LQL;>|)+i?4 zC!=nj(i_YA*QhO}@}ygBV@C>=<*f&mCXG$c-wx_8wdNfD6UykW1JA9EXC9#Ot1{>} z%x61-n6hVT?UhKRj{Y5UYj8o!>iJc7jy1%SP2r_9Z%(O!d6v-U*Hhp?0_d9pc8Gsx zR(oKV!eVvM`Mnx-lU61w<2&2=s2J7Oy~HE)clClYTU}-jLu+rN%Gq2-0I?l#^;A_F?B8b|r(axfoX+r2-LvZ9#-`2QgUJy2CyFL5EE zT=towcG^QKJF8ZzGLJP#=?g#nX!lHWJy2#x=`C*sa$4Z%dw`@(>t4LYNxz^Lib}s z+wwOVzUUho?bdnsH?233O}KQ_W1?L*(uxrKYO%%9>TxuC&=%D!k`3`;5wl55-G&gA zd(Y}D-urA7e#rdTcBdPAbeWV&@Q(2@DzR}i2Mnz(UTIlLVo$l-nU!0`FCGNW^oMDg zvGWo>CAbmW@7KBN71+)*<-zS8T$|JqaiT;vRGRi5q|c;W1Dc`&u~e5bB__i{E0h z{qD`gW>K_t|6JClkKh%D{Wd0*v<| zjoy=Qn4e>gekL$@j8C7FEG|LJ1KffkyW2CVi60)8< zbAq7;G;?+lQ{e5S&7L>Aw9^1~$ftmeAUMLlPE~(-+d{KZA9N7{T@@VY)3CD`42oiz zhin#rQsPRS4HU4lZP}dyR2lX~c- z-7b9PNdI7!J`~EL8LZfT$xb6+w#`p6G85UGlBz;YOalS7n8gg?mJ=|z4`4sgoVz7=#*?Nk zPEUKHQym$W{UBXbWr}n*ZK(=$i(rxFy`pa`i{|wmQ}&N95`2YlutKbkZ#TIxqzQkbF3sMe;(c269Y#F0bJQpE z(Bv#MJqYTJp`5|Z7#BGT2T0v54D8EiAqg4I4{&~$&%Ue9?j9?p!YAy|6=uqKU8Z{s z(U$pZD@mUn&3UaQE&r4XbbX^m{}B}41j-4$VER(McX)V#%RSMK+jx{U#t>ka0&_MS zVynrUyYP5jKhuckSCIgmkDqxDrlFySTq|k2(k@onnUzwntb5;qP?NN`pR<@~^!0Mg zjkB0D!|%1;bq~K?&M8^i^x`iVx_h7dwK|u3CX8Fs(eGJc++kI)vWIa(>s^k^#?=;| zVIBvwD(TZFVm`j4ns{AEpI=L)+DXwHH|*n~GRhLM!wca~*nz~#ev94DsDY3KVn!|4 zOdqUcV8ny_Ni52=*k};*PS6+BqXkGdD^G-T$BYn-W^UtBlodkwKoC+U^%kVJ1j1){ z-iFq|`Q2{wr8IERX#}`V)g*y|t=(0|bTA!9Y;UVcR1PsJZTS3#E>)`YY#r7qT|r0k zeo3zD7^DrV!3CMYY*q~WJx?|BtlU&G6RKyv1LAqZf zTcw5Jqlo6_4>Mohgnr12O@ zn8p;?4w5-O5@~JGg@he~%veKp2T>#PHf@dUFrWnE?+-*L6t~ieIVL67w&k(`{djPI z<|KGPQrP{2Xt_ss=goB-^xSxJweKEA9O`zzcBFfzA#^F`xUcQ1-@^mmALE7HIKFCF zY3vUb&hkD9*ZCdg4W`P2Q8afl3Rzwx__f!nm;0K3>FudPgRHtMoykGy8!z_k;LkZb zj5UF{tCZ-BssNJTg&E8?nQiO+E2`d+*NjLkScjF*P9f;&Rs%z4)nb|CU z^Ofh8;ecnjh|Ck6C*V$D$0S5V;UQ$Pf!+H#&Qu(I|Mr{F)fi^ii7)KW!BIbr9vQj^ zzQ3r|Cvrs8gL@Ev!zBLl?Wq#Y_do_0q8YfhPP%d$9oFdEw%UO_+DDkt~8 zJ>-UQ8yV=mup8*JK5Uj&j`l9koPtUQ=j@J!ab)w@`+3i5$ew3LBAVH-GFjL|Q>hbd z=GDgg=Up{wT;_f~14Wyw;5%RPp#`5JO!iMKp|f|g#N3o{Hy^CZwQQk6110%b=jUUu zjfK|=YkOyB(=;`g>1H!G`s5Bg=A|KU{jvOQ9^yc7ZhAcE!I0#u8yLLFVib`>&Mwy^ zMP`t6%6Efb(6ojm#Pxf{JPRzCF*@o_9{KE93F15H+y?ZSd9-m>YwmLM6_v^494dJLch|?{TKbry0CHpn zjsf{F=Zzli&)|%Z{H{xkQ%Mnw6xZ%{V$)As%%z5vRD*+H?lB=Tm$h_H7wMtxEwW$h zvucRVf#hz;Q?n-+uP`VEK1vFs$9rALy~E|Z>YL9&a#8OnOM^YjW@4`R z(ueMYC}!aIo3>sa_-riMKMesRump^N9P<*961PV-D_f~yX$-fwOX80XdGGD1E5p;n zyM-i@n%_-wlzed;MR~ceG0Wo@*0>LS`SVNC0u5VJaKKY(y-H>D1^>0(d0bq5oojElm<)Yd^3^0kHT8i&ybvQp&+i&k^CF z6{5>hHjIWGQ!`5G#l2zauaHZjSS^qXpfY}WZ=^dc=(y`rqi)d%Fu}A^Be#IVwq81Y=v}9fc}e}7;QGay1wqbYzjEdqzoecjwChP3&slL ziKA=PEu)!W=3Ns`yYBBW@}WVNgE_>LHF#5HI%S1)`1aCRzVQ|cLD@O&mI)*H5FMMk z6@q+WP|P_yqj8Hf*Q1F=FAxA|=7+e#pp(n|F+Ur6daK%Ex{ik!BkLrYHv7>O7r(BB z6zL@q3+^%JuORd;G!*mAmM|eRw|e2$g~#o#M0WoBvsOvARj1eV&lZ@M4H|dym!m8= zd)A}Xt>P8Dfq-N7DT4R1WP9A~Zl~=vfBQe1;BBKSf_6fh4~ybRH0H=A3N(FC0Qb_vbRoMesT<3kQZ5SA=CL#lF(Y8D#?O>rp zWDdzuAnyybopW2I=nK55BE_R=8|uhVrFCe1`9eE}oewvq#q`C^>t%c_{XRr{;Z|Eu zplaQvSYiqJ^k+5It;C=%j=GSc3+caf63*~++xiJwxZH(1t9B!Wpap8mtwY&%w*M4) z0#kS8ne6&zEuT8pH==RIO12OzKy1YBNX2WMG_0McY}}Jbo4D|`bBAN$Ytc^TwCZ9G zmoSe&&raB-)zY9v9Z}qa)Wa>mCGCyMhz6Fo8JQhKe-39pXPSDsG{o{Y3)TkWG-3T& z6K4=yGhNDFA=ru5AIlQ=1C~P-ls!=7tY{o8x+qWt>({Wd;9iN_fQFI(TJVuOd;Tul zkIiExQ-=DIK?8i&JdvEPfXE8;c-HZ^@ln}~T<$rt1dSy8Z{;@JbLOS>aH)_>Qj~6p z2g0L?DzwLv#ZSdU4syB_cRZ*r;d-rHl<7LeUBk*gzLv)(MiL}NI@HQ*t4hsTjuAYA zB(jPTp*8r`6XY7LKu}AmrdTq>)sAtcPx)=LH?o1BFT|KLI8TkKe$<5|M2(4@$l;FQ zr=GA7T|V#g%fre_!VbeaG6%TplvuJ$$+y7m-s{G%wFtqc2cbIPA%Ev3<((@O(%K|s zJY3Iux{JXc);8pTU(u9&dwH;@N7qwYG*hFhN3SdZA<3J6EThkFz1nFp6-PKw(lcgd zB$F2fX&<%$Uw~Io?oPb<2Epzsfo?J7_LwDQBtDd#P-&=>>i{RVXjhS`{@L9=2i|+n zg!YmjIhu{V`^|7AR(!OJ+4A_h)j<_g*v)3Uy+T*}kDYEV0cUM4W7f)Ux+`#6H?#iG8YI{Y=q~+THHGM zgygpr7g4=6D!k-SK(IRFx#w0qt6q2AJb07l?TY>|9lXl&(GL=$zx%Bf7kKHt@_E{J=&`X{)Fd8AKR-Z0K6WInUjGeigSo zd6$mcK=Oy>V@k#p*l>F-u#sQ2KA|A%$IU!onAL5_e$$Ik%(9;vIjYXQX9#d^yetm7ob3|AAWP+GOgJif+J}G2Eii8hIW>j>s7&k1ST^wwZTs$Bs$sz*|$nvT*k zq%Wm$;U!cSDAZ`Ms_!C7M~8U>d&3QGT%r@QLet7^YRDW#lp{`-je9yWA4)L}M=UoH zVAch_$vw(>@o(N42{rmb?@AZtWY>D^;|3dnkrzGdv6p;*Pa?I>W>tC&z71Pj*Ao=| z$RwAsslvt5_dlOJ;2EJ#ByH|3Qe!6G?=6lLWB(>@iDYLWZ3dX=`lHox+D31p&WO{7 z9;ZFmSK>2dQB_Z@A{K3>E2;FUe6|Ut0fiip( z=2w^R_w$OH>a;l(eoKj}XkOJXBI#IFbNq)?%%0={*Dj|Xe=t*D?u6arlWXKhW7FEv z!`Y<6SeL&hSIi-?WY=OXDGVy`!A+7+Ig)^-Y9R7;m13v+hx><=PKjQ6|4`^qRN=*Z z=)HLSuOy{)VRKaJ?$zg?$AwRWokVTo(PO4S$1*LvN6%jVbyOtbfbTc{<~-R0tI?Nw zxzE!;yMmVfN$xeU%W-?C#%{C*ZHYlbxl_m2roW6s1J*?uUY^-G95;+5nD8ovUVtZ` z4d#K>*SSX>r=L+HeP^>kpd_Fup`B%sfre=c6jKJcn$yh*S{gD+l3i-drs{UkIfJFK z_0Wr&mU4M%&bMSuU>I!`8~vC6n()or+8U>(BQigY?XAD=Ljl_(m0y~7`k(4t%wn&B zL7~I@eaN1wan^d*sQtK}%*wPkaKI8A|7Y*0i?nD3M^oLG`VE<(!h|v=e3Q)x!&o%8 z{09(!7i~ay6PF3a1G#!IEL!QMTUOfC*V}#6?!&70s%defymzsYHjV%sQON^uX?A(a39#h`v*S6SGG z1e$apRLiyU(s(Pd!q#Q-@=Wz#cuE?@q6TEP`tK;5RkfPW!Mz4WfI#IODidE-2}W}G zPiaC=Qj3_Xwj5h|@{`zpCgz~(;`&5raJi77Ac=(&%O~uLA-`kEXR+crl(fFP!7{XVj#>h`T zdERSOcA9Lb@&>S;z7BZAoF$Zyj)wNj-aydK^Zm;6R8}Xm?5iU-x;@I!SE5nEP&Mje zFEMDo-ho)!xP+zbhQ0`G)|l!=o#Ar>Up~mR1lWs_jXRbj2k@LF4Ub+cAxjVNjpV;E zknKrj5M6qC_4ug$=<1&U@L1HPPmIX06G%o&--L;f^YStfsFmPS3QlB|qh6)~QFxJ1 z*t7$wYjr+FGrLIB&m}AwzWLs~GoZm4y~{`Xq=-F%5I68v62!XsJoZ1E-T#r^dB#85 zX2dbc=bdC-oaA530-k1dE1yOld`+&tad(-i2^oG0phxMAF6B7qhX0d-s$l@%Tk~ih zEfXq{aLylY>t-G2Uz}~g zJ*#!q0{(@&#B&0y#DoXaFB#n2Zs>^{aeTP_(&O)uszk$oYHedEi54`g3m0>nQff(~ zTuxfycN;L|9j*{{L$=<2>G0pD6U2 zT$*vxV*1KoF&(QK+>c2jbpe!RtzwopK%dLHSJUj#RRk8x?C@z^(k5Y(>vAsD-3}eN2beOEi-5zi&-iKxn0Lce-?}%* zqLzT$=K2$-k_XxkwWtfo5*g}rS{9awj4*S71Vm;xf1rrFpi!_%#{QT58PWsq8`skf z4m057Ux16MVwRNIXMVqw`j0&}d%-+~U(UZj`q8{Xv??WD7wE(900GOjB+!BP*`?oB z3+H*-_1D{4B}XBIE69P8Zh6b`zP*(6%iNvxU?8T|BPF`_fR=H z&n?fLTuP$z=kyGhE4Eh$Q=v*lF>puw7J4^j0wYX1UP;8hzU zOUCPV;Ym+atl}G6o(v1NO%M zTiY3OjFVAJ#w4iycfVB@b}3>eQ^&kuo?f~KbWZ_3+!J&`8EMAO5F|tC_SedHpk;``!c!94`tz@vm4xbl&SC&SL!KHqNYGH_AF^GB@0{3lxW)4y z@t>VU4!(2uXEdWGvmGwvW9&hG)Cs)1jnF`)Ifp0wd)E62aG8IY-bw{4=eMxZV#BX= zT~t^&C=0N0{#TT+I0?(PU~VDR|4#64twRpKKj+#3{olhy{m@(nz45qI^h4<1+5+{) zxGOP#xOoQJ1=u;S2A+BA-F*7N0}j5)dv6)$9CklLf2KGNZM`oS{Q3#F(I}EA1hZ!a zO?0&wpqYd)#XfH_cq8$jcuPSAC)_x;7>i3MV|Rb38oY$x!|FW^aux>gWsG=j3rY}p z+GX#>PwuVA2Y`DUaD7q(lp#a`>A9&6Vvj<0`u(zxKuWjH4ug#m>tj5F?Dxj$KcmRj z*2;6GMzkarMfZT3hyR^fk{_b0q8I*uuOR_bpj2A(eMm3`W|a7yt{#|f*zxwxcPDcX z!9B5nTo*IabI_Fim^%_|^ILfBxN^893XH8OxVXR}0i>OsDjik>k6F8PN&$1Jr(GLY z>a9AvP*YTo-6WQgBMt`0x@9xHEJ$e?x7y5x{2TroqCtvNOl4VT3lVl~w;EqB18&m} z{Tie|K5Y-EhB!jccK?&mcEw_HAvwM<*5l+LgQUz3neF}p1^!-(V(vcLoH`t(X6aVB2yq9()hM?!d04nLWGiUfBKBFA?si91u9k3$m zQwFuz>ZyqGRPO?yJCt6n5PE6j;pX@sI1q@a)tM^Gy~kT$RTl)91=JF-3LPGNw{|* z9bt8`!ThS-?jp-THOgr{N*kjaLS|lEe@<1ntPl%$snyx>9y~xC)-g)Yt`%a0QqqdK zE;7G^HGF9$@$n1O+E$&+Iv~=qOEX`UeD?dI>4~aeHc?lkpm0z09b(1@H&9b2a4H&Etuv70+$pb;XIt+)hGInitM^J zoTIb^`G!UJX4M}-5ixE4zELHbEVF8WIUn>&u#8CEgP|gYf@2D`oc-`-o8J+z!!d~; zr{wKVsH=oRwg9B`V&)W5;RWpvdVh)~228b7W`Drv!Li6rup>M@n{g}oh+Sk^-c%wz7Q0A2z>amdLnh-+F*E5T@%U1Hoi4L{I~DYQ9#)QY5490=N)EL~l7&3Wc_ABK`?;TC{w^d&H$B4idpZquTX z+$F}+{i$3r^Zb+;l3*C+2yWLTihANXe`&Z&ezneZsR+E3R%m{hHY=fJZ;?@V!*(B= zPqP|xv)PqJkX1;v$=V4pG4^eb_`R3{$nc%npuCizo9kPK3u`9-tyktSq-eI6ih5wI z*k)bJODPE5If*=yqgTseazjVoi78DuXCKf(e2Bt+SZmX!M^5aoA3dSig=0(6%%CiRO_*ro^`&5}kNqGM2{+#hacQcWDa zlm*;kn0g7_uRw``E;~dbKsu;wht0$1*$<3nolrtUx>D8DiEXLi`Th{#C-_0w_lG*G z&NEngJp_k*za`K~CUnuG3r0z81E2|%sCPP9`7&O-HfW~83(U_SGphe7^7Luzbc|VX z?c;m4F5Ar|fc9>@+!GZGx5cJLZB7Q<@C{jRA;{Hy;2~P78s|V0?L1S%vOPqIv^B4F zTPa&)&K(%X!a2i=MQ$M>{b7%8bi`JNz|^idu$MuJe=Bf;J$D$+h^A5xB#r3(2GhCE zklw6PxwmS5L7JRdL^5XfY!%fKZk5q>>_4ft%3;2GVd3@hI`@iN{N*K&J;`$j%2!L#RGQxBX=O*0txbt`qt*>kU@} zGds@DTh3whzS1YN3&zFhXP`Y}(1AKCcpgGLUu_z*i%-(3j;4cdq___jkI8Uw@%{x_ zLbi<7bFg9bN(J<6W6gI{)cpamWH`26)FxD<#JzFPqpW_v2AlQfPHkdrr5wL*LdkKp zKF08mV_6v4$p#0BIkc^Wk^Y{9MXewf@D%t}Nu8`)E|k&&oYrdaJ12tICrP9;?Z!e; zFvFK-f@XIRz4a`Hd@rDBIThyoU4Gc6yn(78O32Ye<&Z~E%l_ee+02^z$?jH{K6Bj7 z9Aom5g%nmqNQn%xOV=OXb%PE%FVN>Ar8EfR{2<{Db+K-se@ z&-@IB_YyYGRI?j-3LZBqh&!|(N+V`Zk<^fX+!=T+s-yd_@lN{_l7;K8N{wzoBVFJ` zuOM8EHIYW&FU+e-%E~m6eCDxGt1^XO1YyG!cfR&I^qAMg;r=NgsEi;cAqhpzP@Z*{ zf-J~wb+J=4*-MW5L6(AY=`A!{ zo=u1Qnid4OM%5C2yA7G@n2|94C3F8iUTCA{=`*~MuU|+*A4>13;+%xhgO9%N8WlnQ zkyB4UJg0u+mdA|!&SXSYWw=iE?1+4W88e;(wo95z10P~-zq4jSwIlO0krFMeCsF5WPofzY zwS6FQOmYe-%`o>vd#tO5;e&Et>g+^|WNa?mi4*0?>I)Ar6DJhwYL>KD{AnLo4a3~f z3tGkbrdn>FML1~?%2VZ!8;G2?FW3^Di^$LH)11CD^Y%g5lKPa&*Mr}Y77mI}s^pTc zq&C|2EiT0=o87gg+60;pOx`cv)%P zNn#kq9LFI-WDL*#U=r;Ctv$)74SDO6Y0EE<_Z?c|>1cIEo73FT&*pTdg6DinrTZbf z_x+1oM{)kySeV!ZJ(>-25$Kf0F&j+_pAsi-TRqkmZtkN&oA-RLD<&~uv*fHcnI5K- zIG6eY)ukjkAe!^ZO_mGuy^2ioKDwwHpw`1tZPu<-TQYJlB3ts74>}yH_-EOk|6ECA&#NBh9b-J z@J&B{9d3P{tXP?;cy3>YC2=+UpXT1tq7`)HK|=QdJJmWZ{)f0;pMC$Q z{AMvJoJ9m?qa1H_Wbj_+2osF3tLd%drlMzfY8y&b%U)aZA9z_vEmF2100C=exiXDr z=2&BzSODujN^X@l^=&n8se@9N!&f&40^HC`#u0*-Hsz-JI;F^+X#LPKi7|2OEKPGB z-&n-HI&>?-qbZm5Dbpe8?5Yknha0l)WSO16wrd^C?A}p&O>|tw|J&}8^obKr2-|WM z&)^8u+2Z+al06iu zxvTe$r(pp!Ey3y~p^$YCw|;S9cAtEff`UyOy|+(g5W0D+mQS`kHC@c*^*Fe{pTGVqFrP>t zl;MTn1rU28S5ZqXlIt{TB?VW>?=D3-d5_&Q?vrIHs**~fJIT_O$9)g(o~UDIj2(^j-lq^#5p}6# z3r@5A6lgCvOazPHXit(>JyrH_#jf7O&sj}*8|1`puInhz<{FsO@Y8DPA@hpe>j-b!PW?>!=r2EFL;omy>;^2QD*YsQxnG5x$wmw4X~K z$y|ysGNaB^<77ooKBZTQtxr?8M}Jl(?dbdLE$0IE7dK{8q2ynN+T#c!R=j8@BLn+D zq9I>bA)%;;2vQN!JK;72yuc>cRt}|{s#QbZF(P}MsYA~FTQ;@ zs;KW?$_$I9sUTYSX6lDZ3DK?$B2wQx($PyD0{*C^E}S#@+kZ!GSrXfrUioN}hzR^MDU- zlCsiM>1~>#8}F}2&Heo60YKq`(e<|1#%cv>}{TjOGGj!AZ(sTbKZY} z9cG2R4N!Z*0KQ{5@9HgPvH@*4oz@cP+kcNWJozms-2p(Vhn^f*laUkh0a}*up~G*t zZgKu!XqyZCo9j{Hf+lk*$^&F;)*&B+gF$b=v?R^l+~MCt9b_q>(kFU!?}@@qvKc6m z!Hj1C3V*2b%Iz?n)BZ&eYf*saTBZ2k!$jT39xXUQKAxff;A7Oq|Nr2Fl|t#yVPF7& z8PF@}?YVyH{&$@<7Wv_%Je%1A4~viN~;xTLL2#DBm``&Mg1?5)B>< z=t^I&XWeTD(HQ9SMM~+XXVZZBrhg*PfG*AH3Qjn{5BvTl$m-(Hc~2{(no(xFlL}ni zUFyzMKW=xNScb?q7}ES0NG=A|J1|Cvi0%AEV%KKK_5YVOAF@iO5DN-Z5|C9S9Y!l3g;NX9C? zG_CdTi6Vtr#&h!)5mrASl>@4I)qNF5>l{#54y`m88mP_I*-5#r4kUvqG5{$2O8x+$ zKqAHjEQars(sWVy2s~yQ%#tX{OX|y4-C9=vcw#|s_Z-4OfA$InlFohxdm}tbUVv$_ z)4}J#ZTj{jII3#shf=wM^su$TGwB&9z@B}i?CAjCgEs*6z+-L^;57#jUS8n2OWS(Z zOAjDn0zdll)v7C_Y#lUn^C+vKuiaLhiO(7?|8v?3yeMA3`;RR@JzSDu&U}PwyWP+f zyn|1GstUNVN_)DXrNz~i?!=zf%+7BA5ny}o^F8AQ66KOdJBb`*aB2YXW~!bdxLQlW zYYg*`pDN=XUk$Qy`ZpoQ>f{~7+l=9di``8bLDj@?>Z_cv=(tRNd}xXbE<(ki(qqr` z|Gibd`uuRqBLFJUYa2TKD$WjN0SBcpG&$MNJrNyrKgQRY8kU&|WfF~zXzcabpmuKs z^O?nwH@q)2|9O*=>fm+ene&nf#6>`qvk{oMz?fSMoVegF!C?y+m5HfCf@_1z=ifln z#=2KBoGsaL<3$$m>)DK;B-`hI-BqIhtdz!*WDn6rx`rCNxGj4_`9@igKF*c*@1P-y z^&cx1iaF=(V%=bh-7&fB9MW&2i2~}^Q@`GZpj*Q}zyOuLzk_E~6CE;!35P}`T;?;< zDBG(cJIY&P<=* zxUyfUpChGN3!&fQjtZ`AY+Ts0tH5FYcRf{zLzr74)vi%#^I^ct{Rxy7&_@+@7|g)K zOCw~p_@ZfH5<1o*)mSodE**;k1@s=7XuixV8&Z`#C6TFhT@N&^aXIgago)m(ZD6&t z`TLs(bYZ=kFUdA}HTwcP-t^5w=Nki~&t;6>@etaNA8I4Z*71#_hy6d@sHQ7@& zMceX+bBF((_y^Sbo!kDprX1WDh-dT8VVUQ6#LDm~_0-ww)<~sMdGg6fOgMWc5Y}^& zb=rKraAP(C*QWlSSuo-c*gWJBr7OWroc*1w`}rh==-XhbM2-F_SRjP8?&49tJJn** zuecTccQ?F%tu2p;I{YS*!FNJJgSir+F~vIP4D7{|{Q!vDmJxR{b_jl#^yIz(r$GHf z5>XEKb>`>9P{#U><$WIZv!D9}bL3vx4r{=w_-`54*+v5pP*-8F*az=E<`=0=_af=- z%VV$tbSb>`GVU73PygBtF&SevTd*d2uIy>6Zk>=tv7@hZ=x2%D1<<|fN6X#!eJK4$ z`!xu{G}}Yr%Db=b!j5l%1aZ@FBvvOD)v-fuaREV#?eI&BX4j=pjoYE*X1$JJ z9|W9ihlaNglw+`0lzBIhK9eVkzc z{3nVcXm5=_Ska@((^!czgL@z z$FRZw#GQQw#?S#@+S_2c<2QMEww7)=T1_$!!VS(uJAhYFK6?4`mc21gqN>?m0Kho> z%VKjU6bs)~;I8OOe^5+736cp}@-bXV{@fFTjc~M-9V55(Aw4{8*kPC4?P<6cKZanQ zKEM84%?r2?>r%2m$W9%~Eh5Ri^Nh~&sPQm*dbf;x^GPdjA}MZ@(Q*wNMC+K$T>}oi z6?m&a48VsA5ONm^S<9|imP$NWfHCb`P=W zQIYoUrR%!QzWoW`aPF1-0$EM8re%QFn^(@&N>S;2CPa6%RA?FEc!4}_53S{RC5$ap zw~8i`YgS*|>b9+U>M1U>^^hLHot}O3NWZ4|N*x{LC>ZrXw_N+0R2I$LL)RoS;_Mgr z4-GSw3SblDBqVVjj@Gb9r7uFYlV3PG%a^W0(?=FZ3j@&Z;E*LnaN~ec+;sDv-Em~Z znEVC(1A|?tkV*xLJ`s?GvM9cJXi~pKt(yn(s%`#SHoax=uE}UMkg2{5A-SCN!?W9rf_2_=}Br=Dkhl?U*J(wBh)Rc1!c<}M@3Eo(nswD zJ7yG5XwKG0ZqX30>TNiJXO0Gnf++UGDw_-Bj?4q?r=Nf9C&=}?)3c1mAoiy2oj|!e z&072b9NK_{L;e#;ZTuE-B)Fr8G2%K5nA16o-KtVT$BWK6BHR~bt|8Oc%g-F>Qp?PZynDF#`T2-I$A zeqUZ`134o~4wXRs<#gf5oxi^~%N-H5m68%tqo$cUs7pXYnRi|JeG!xnutle(-79%G zm{JN1XstnyTUmvpV>q5V$#w~ARf3x1jp5HVjc}iet90ZceRxR@OR8)IUZw~#y%!j> z9mugmm1yim&^OZY=xh0|KWMq(Mx0&JShI^i@!g{BrQL2YJy+A}>uq0Ay2KB=;6q0? z_R_M$0;F?M%N~`fdfmRUC104|;pUTH*efV4=3`sa*VDegiob%hw+~vOJ6svxaq+r- zefaqL=Myk81-07M=pCNvA2R%~`-KF1NOq6oZ|sHGYSj_r^7QVra0IswqwHnUJCJ(T zXS*|O-n6j+Ln`rT)Ih~=9H$?4x1n?>3NHCbw%*EpX_aV;uyq;5At51;UsG1?)KQez zWC>o)MV@$&6%aGYDN#vn(MH{tNp2vNNxqw48@ZdCO`zzew2m{5P58A~C5%$TG$3^K z{!_`jpBixGQv|xit{F=)eUKPR1hz@^4k>}X#sc_KOqPmL(}XzKE9c1tJcD_>N_ui{ zMG)((aft4el=>wjEEBdP<+5;hEm#yyIU`z=;lzCX&%}^eEkr+-+AyJGa zFm08`&4wNrtK&eZ(nmLpSmP~ab?W3R3kMVrTi&dt6s!~CFN<40!!$Ce9fzVZAq;Ct zmr?p1<0Tr*MdIk6tzwJ#vaG_`%v_iB3)9lR*H5aDx_-AW(s1Ik!1(@#Rdpa#7waxo>$K?B3MVoXk{-Z|r$%$% zWUOcmXI~S(+@zb$N9*$Q$Awe59s}gp#Ex?QLOOjIfVPobNqt2C2#dWZ6_ z*ZF^M*%0yrp>c7CStJ&rE>2jIMCa-6pLDJUknYE7IvsKC95_)?N8~4*3|MTdO*Qtc z9ZNS=)kGuNH|S(5oOPb?82yIiAnOSf^)aPcDV3JS>Qa+iqUS?bmP6c44|IoNhqf#? zB@G#4Nq4p2JCJcHcY?B)1xB17m~gn;_tdi|VZstcuP_vA1od_&W>~YHOAmfD?%wVq z&vt0D&qR8q`K5iFQq_I5P|PbSyPb4yS}(id`%vnm%3+?h0Ec6huQ=#7YDV)^*ItK* zOytsU^y0YPOQ|=g0DB(V`w3S&05desIZ&nbkH>jxYESP( z4}!s95K(XDg0;uM%w`i#@A6$^hX49Av1v@6Puy0GDMLc$A#*~RGG$DX(8M;RkSUoW(Uv(8Hf0`C z#td61n?&YmXP(DzT}rp-f8X!-{-5`KkN10y?|2+X({As5UDt0|zqQVFu5+DIe(9CL z`|-WS+LGq0(7c<|l$%3&>efvlu)&;iUI_RfzE)o^C6!jt>qw^o6%k$J9yNweuafV4 z=taHhxjDJH2b)Xeu>lalw8%o)>I7-`d-mp>l$IcZKIkoft$2i)l~iTmRX9-|IaK8Z z^5@W_4JEuTI%BEG%`0!jNwtG?U^bMbd4E4h`1u%6cuaneM-11# z-doyP2v6i)fu0ZagLWXw**}ex_NafDy7WEx&Pa4uIb$Wo!uxsl2Ssf59`-z{{$(BsnO;(3h1zsk zz1o=GyK*6u^w=-;oWp1`JlrHv4#;G0E@Lqq=^^e4M;}re0)-n6$*K-lFP!mGN&85Q~YCp7LIr96M@S)SGv5E!HgCEJ~(#5%sr9ty^g~M-nBY~(GNN{!#!%9VW5txL}c%~2zEdX4`gxvCd<&g6O z{8txQ$(9;vus7$gO^4i3pX>T$&pS~T^SLU~$C^XAke=>xQa-hKc_;2Y;a z#8{A9((4`2CDwt2=>n>WU;0Rrjv44=CQ@`{=J);rn?cMagsT#oy2}fm@p^O1F8-&= zSum7u$F=Ex>pA1W-{*J0rVMB{Kj_;i&9^rT{C8lRbc95{XPf{XISe_|u}9AQVy};1zkA z4KOPLLNICT^I4vf_MLBmDm4fGrv_6v)QU($K?>5jP}5^3T#3Pj6+Uo8marOD&nS?t zAqm?7iA^mzn)L%P5%BGRC6`}S+0Qfqdaw!m58Kv^M{bX#7K@pYL{ceeh>k!?qh_RQ z5d_r%+XfuU^A)5?gHny4IpJx$uRK7E3>xI6Hh}A#_%<(MM3{CSAd1(EW(sS1fvNIJ zXB@g?y{Rec5$FkX@Cu^Ft>Z8f2pYiqz>B8O=6NnbIP{A3N$Kew%xHxe7~#%!hw<(8 z1EU^>$XrV-_@^%;YZBQl5J0dtB}ML-8K)QUxpwkl**#GEnC}7l|9Tnv0*I*npV?vZ zQb0J)0ZDgue2$fj5pKq z#-NOA2^46w6+b+-J9Qn5)Rl4a^-!4t*k>QVFuDT&y;7Yi|J_nLETr(bwE@JSbtLMO zB68Pv*YirXM>*08W1Vm<8RR3(6qh(;A=72*oiq45$oDCvUJYBfBxUS56hxX-|cb&1WH9pdn}J9oZa!L$mBiQf}j3Og;xmd z(nlHcw|?=lwr>6Zn@Q|r&W61Sgn208KR6v55uSs9rNFoR;6n(4)N9U9t?JSK<$Vfq~Fm z4BNWW{9A!zE9_CfPtuNk3TDfIPq#_k!508ra~wL20vHSuQerMM1CY0*;WZRCd;cEl z@eYAK?<#Pd9p)!?n{`I2x&m2Ly$GSlL>EXNU|_RQOyYEzWHQ zdaI}rpNAde0UgijrCnw!dp|0XRZd?n{XzQ-R=}4Z74py<1MEREbFqV^6@} zKpR}B2TJNhAjQTkzxPBBBEEF>v$^mJFu7meBs5ml(?K$}1}5j<807kvd+*$`Kj;aG z`$#CIppL+{J~C=?ynWJ_?gku{E`WqNk$i#B5IE=tkmzJl3Syew+h{%dZIzfm3-3@muxNRV!c7ZlN z^r{89BXQF*H=7qAlg=!74oX18Zgg>gDAgfBbw86yuphuz0$C|&Rda2q_?EUtNM}+( z5J=`+3faS;5B`xCb)8-81*DJlegR$ZG*u_j?YAu{Ku_xr)l3XXg;o}uyk+h zt7CB}{WAjKr}`;|eSn&(d&`5op(Pb!%R*8%FEkBnq2r9ywKh({Jn|GqPl*HTkI#Px zO|j@6;v2%#a1=eDCwX^i`eVq%s@2Pz9kVo0+_c_PCtjef~G}yKk-V?;$BKfU3#AmW*YRW9;GFj zut16mWCg$LWg7XTV&}1~G>#HF1vM>2-ceeC9Q0{>w^w+G3=0X7`SYNggxC(8qWpZp-^2?|uz9 zcaCmKN9xGmjrfb2bu}b%|Cx^q>0{!)!U4gIATnWjnk6(hA6{_qqM^#M@J_Y}S$i3&yx6?q%wr`&p zgTz)STaJfhzt6!~95iWgOBuMN_pbL=qz3EzCo(oHqmjHZp}?VVIKdaJ4(2GRty(G| zuJW07vZ@xTRJfmZnzq%9WiX?(?2lM-Vtvj!;a1o?*T3aGW!@)zw7YqY-;J3ub>E5b zf7%erI5_K$aE3^)o^B;eWA(|+*zdEunDZjLsZ%!CUxhN*`m*ZJ=gCwKG0R#(2sPpm zrgCSZOVNqcFweHtI?0z(sL3yohE2eimGT;JddC%`&I2W)o{jKZo1azNDQWX)(<3J@f|l9$i?{kJr!#Vn76z5o2(%PWlRZjHFvzuT z&{xc&{L)=?o78}tXoFUn?5s@_=gGK=-D=$DqXm5;7);oIi1gk(pK8L28X9fJl|;9S zq3A8{KPzIsyC3ue9;NI4wf-LvhbYJ<(O!AntkASqm&7dbS?;+{z_~F3Dgl&TFqLuL zf1PsRiY*aeISbAWYSmBZht?96kSIc$CXy!tfZFdjvub&|>9ON6vExL;kEJg`fXH2wE zFIO$rPMy5kRX`Gb$~%#~IVmrkQ@h-w^f_%D#3+Kx6#2_v0I<;7oF6~)gX&n|rf7AE zI%w@xDHCxlCjsX|*~Lk(md9onHN{29p2MN1Xg<~qZBdvpH;>g$|F|W1<(YrLG_<1# zSs@H)O@+#~hWAVcjPLH{)Lzc|;~)AxB?#>YFhB7%SjdVZ7DNxGVLwYHao?w>+?TRU zj=xcn+FKM|E8s*cCgs?d^uZ^P?8~{K1Pzq|vxBnQg34V?7mcz^j8k~`>WDyIQKF6^ zDa*2<({j(#hXyvnIT8B<=o=dy{N;sqQE3H=52GL}yA*sF!0B^eJ)oP#m|2H$i^DmOij^4 zV(sj$0M#4mp@%7jL%QfLO3`=bJJdupg76>Z=rGmQDMk@E$kwo}!&(#%-;?N?seer+ zSUt_2eq&sN$_oxOG>rhbT}+<5{y9*bOGHF04bJVpE>DNTLFyY3B$aYhHq9?(6$B?B z8&}U)%=0^%W-4&U)E;Lxsq8wUXA~;Ke)X&{qg`*j>oRMzlUaZt|Jk~53Jq#S-To0{ zRzXMe7KsZXmN#C?s-Vx+=3FIljXHX2GwfI}gV`MmV910fK_$a8Vu4iX^pva|ngFSH zrl>>+my;qwR6%%qMtDiC3`srEohdu;Ip`g@3q)Ms-IjQdLAi?{7)~og)`e+iiz3U> zhRKV1rLG5OKCAGEkt$=%s{pD|Yf-yNuk*^%`>g4+Gj($sdnxES%$|I6;WlHIMYb$?0ZsUX))3*HNs{qVEm8^N(| z=oRu~?&Y#X`_V`<*4`IKi!0n{j7uc%T#i(y-gU07zCMS!=`4Wx+mQetB73Ea}9mMxwk~v?6C;_+7F#zEUa${$_)crgWv5fzS zP3+e3#v#f-a@WC6HTo5fHfWJtelh~$mfN9-%teS)5?fmHwrQdeT{8U&TSH@)2>L2p66f9?aCl|eZ61PSN2Zw-#skpCaPQ9b1a5Imr&bs7|O>u!B0+VQ}BtS|+u%Q69TqW<^K|F6Ic1IN5z7egDj z8xR;3>OS;sMIu+p)i1i+Qwe1|P#6XA<$Xkb1*mh_T-7(6k_c{)$Y>AQieKBHj`=>B zClqv`0h>Z3w}DMs=lH=;ClbESs`z}(_To_%@sjZ?U+M#FHg4mSUKv8DvqV|0b0Ksy z^W!PS+fj?Rw~Q`xlL@2gN=pQo!hnnUS#B=9&1Z*qCWI1kdsh2 z9)2wo-tnep4y2~Q0s%flMkab|q!}XgyLenhFbW!38GwnkAz8_QhA~7xTYV&0LY`C@ zAxaT|-0Y{&hp^3k@jDX0{t7(Bym&={Kx};X`)L4RsTu!+g}W~b{NR7VUm>6daR40< z2OtyywoezZVEd{9Ihr@%1dHM^m;umD3U&>NaC+KJic@?HO&*`Qw=IsG>V456V1Dl& zUUGuk@duL3g7d9&iaa6`l?tHJpY?#E873mIISUc1N{~uMsU7lkpB5JdTCq23;Qa z4}RL7 zk8`YF9NzsN@LFD zK(>@X`unr5$jp`_vfO{#dC_n7Gj6`3f1+B$@fJFAdiS;cQLE8nxd3sRx)@T;3H9wK zRNv&kA%Xskngj|O+W-rh0b%qOBNh;v$2|M!(1@^3tm7=t_CT{v9VUc}Aj&=KOL%}+uzSzt#&kXuG&DtbHy zG!ovo0gu)B`dDq~3E+Q!JoFVP&y@E@5X?}<70CoCNq25R|6)jk+zJpua$o9ghJ>;k zkbn?AIuOi3b=!XdQgB3_QIlfXC_GLeN$4wZ3oW2aOz$Iz&cT6dRn)MD;1&?410)Z^ z+R8lER{#?{czoqE5RZJ(%Wew0stKy`96h;P8Dc<1vmUc^E&6~fqW<5FQNW+1Q+ z03M`OuEG~zYkP&UYv+5=0Y(v;z?p&WaNrT{NTFe1?TZ0M2-ww?T$ONk0KK9`>{p

    gO|HwoNa^ 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 z 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�)*2$31t3sB26In--b9Y+MwXf#gN^fRJ*;H>1fxb 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%0DA>N&M(l%D;rejN)r<& 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%0Dm%B5Gy_`}uFd;;Go!BL zYr9qoEX#0;KlXR3S}RZ&il?=ixz=yk*r}VpRW9A)6n}xU7YI6+jO?v6X>m1XY05PF zDL(yb1Va~|`X~v^vbQp+LZ18}@R;LqTn#U^Y_ydHKuB5+%f%bL2%j@mJlE0i- zfErOAhzU(@3~k72ng5#O6;#Y(_nQ{Y=%@hqZ5`gkH?OJWS3%1Mya#Nz=4ttKM^T1) zDq(iC=*lfMF5`6li9On_2%zLPMEi!&zR!S$k&1rLHpvxG{r>BU>Q4VfVU&LyY0`h*Rn&9BaPi`1ZraI*+p=f1|gfcY*1 zO-^|2&cV_GRKlu&;zxejC9&*4w3WaYFeVdYlw{z>*DJ{^BTX;(wAg?16kH0BLUE&~ zsSn=?MS5QPI?8QfHg2Ax4%l0*#qQzazjQ-4o2)ghZO%6!udh)?2)|@h?v8vIgPReq zi8EHas@W*ZNDXK>+UL4FR<1wdSeQ;@IV`gd;4LGs)@xo>PQx!qOcjdzv_%^^Gb^)N zYW7rY7(fSns?9F%+dEYTn9Y#!?W|m#o%^-N2P!3LsIh*IfG}(gwQR$y(f_4~uxX;Q z8}&K?6*6Qmkx=fy|141-)1A7~T6quR=kWBv6^B}hfIBie65FLL4saUntfrF0&yihJ zigY}@_hAD&sBWiVJNDf4#!w~~$T6mhl@!Q5r?9QTi4d~e(M3C@-Hn>KFsp;e<`&_D zBYX{}ip`-Q!*)P^UdbdsY4n3;D?>dQ%;t=?xaeb3pJOdAc^AqtOJi_5gof@-D$(4G z_XX&6G-$rFJwFM7R27FNL`vzmsuezIdL#hM#{rFOID{gio2~c-!llI0vMU zm18Dn=c6@76cLJf=kczeTWYO#Tel`xJfM!XT2ndXDdutPB0Fu0_4=a8{wazq!$@dZ zqT~82?Qo`*N&4x>%}x)KG)HS+up+jO_e@xuu->QIcMZZ-wHPg$X)Px%}Yq35wLj_eA+HRFHqlt?h;64v~iFHm0#rV2`qqdxQWs+D)zI-ViT%vwJKxqe- zXH(jTA7l?Zv}cs|U2e_m@Qnn8cVFTK`SVodjcsC~Y!t#MJQ9csa)a(*75QL)% z!gkI=Zr>oRY@QcDu^j=`rQ_3eB!24-cgr4LAqV`bho^tgQr_Elm!Ul-U0D9sjW7vI@8b!Px0Zq@HhV5{ z(n`1TQMHXx_XEx)?79P60_4VTOV+=2&w?M*6to6YZ>JkUEZ@glBNo)19VqE*4~%^0 zT`$Mo+WH6o)7k7oVj?z@h;3wdHBtn!Nar$116jFwil7svRAhgUaTK=m=F&#D2f`a7;0{5x&J*Q4d>ofqbz)^&ZWAP**CMnb)J6DKUMf zfzWVx56tH$DtL}9=lv@x2m_60SxWr-exz5@7zd~vPbkCsW z^ck7mX#oq-Ljf9NlltGPd?s@II~LRFJHO40A8$$Z97gJ-2i>7zP=pfqC3Si|Gv#QP zK6Gh52`{EPrG3}(byjBd>R4OPOGrjz*^H=7ivPD4ePc5d?-tve+nDguw%5C|CbdQ5 z7L8ZrJH}(G9Sh|of>b!98cxT8%i47tWsULYJ>73xC4y|>>W#T(k}XO2YJA{qiGF?5 z0#K`&siytQ?%~I6-!FvCw`KRX);@znx_yU_R`_hi(izI;$OQL_@pDt%XJ}7<_4ziO z6<+$yc+3gyYOj}1%r3oGdAZG^ES>e1Io>C)g_T$qwP~Z+0=@9Ykk{24^0#7KjgI^f zy)aUH`Ym1(&PTpFJMb!|T8#-r=sJx!P=`yL&M@+;Ia&PH`vVcK@*1Fn2+wIg3DugA zN1RaCiK(1~Q(2G9hbq}0_OaTeb{$B+4F`Z~c!W@I?XBTbq(J;W6Fs--ca-_U5_T7% zN{^OTvQbaJc5;Xm-)iN3XxUDdbMpvngZ8jQ<5~biyKXsx2xm_UD58>Egag8+o=fd? zERS1k{N}r7p`qD?5G1LU1+WAOHD*skP310ljVjUQ%zfm|9$ah;UrnQ%E|@ zPF#zVcX!;rdnG|z4&Tdkzh!%m^Jyu&YlFRPdW%%Le|)Mx7GfAHX}d&L-ie_XrKmt5*G5 zZDvHqQRvi>x-2Y)+?P*sA4Y ztm=-O{!%9oZ(*&wD4dbQKxV*lp1(UI$a_)#3WJToYonO2FV@k~GnzmSox9jB&}z*o zV!f~3DTvv8Vd&lbH|N^Kguu;_O$t)v zBfcRs{M{>0)~PM_d$)t(3hmIK?+b>{nq4K|F)w>2<>Ix+#+HJ*CFxT0UDS$|TeLL~ zXvg;rQi+sRR%Y5+R)cd+59dv_fc_^JuH0K!DNa*2Urg6fj04sA2@46>#`BxGeV=#Q z-}QZ9E(!Y-s@H3z<^2rBE0uCwKxy}cA)s{l!k)lHu9KxCOYIk`C)Ud)KVjjtq(5e)4eFzJbzxhENntk#etz9~ zL0YFRHvO_^f{^C961ptVmu)!>cR(mjGsUWZs?hQc7$L0>3V{=G*%akp3A?vKC? z)C%vTAKJ=ey&QwmyO9~y;a-wQMC5;@pvUhN~!e@Um?{u#@7RDPi_zbuejs#D&)cJYO2CXR=)3Yj155r!o?9U%+5N@^b zljs&*XgrDAc*gqCd|A+%j{MdcizRuffQG2G>1RP*J~@@Se6*d=levKZ!z;dsSnaRt zuftG=R%ht-u7zC}@RxtzG~iaslCS82mgmGL&_D5^uBwk$%=#4$KO=_Ee?FWmz?lHI z=k}x*arz5gn5o|T8}EwaZHg^~4D=fKD%Y-A_7PS-1xc-nU2{6R+%eUdds}$LKC66^ z?L+!H9CW^^ln!D=r(F)L9lrkc;gx%@r{dCct+U@=R?;TTlR(i|P~@zfe+_RD*SK=k zmZy-916LVYWG05+NZOOrtf0`dN2=-)xB(BPw{{l>nBSTzle$E#hJ!}w_QdW);VJ18 zeW3-nvMy{+I~U~}8|lLf{s+A0?DeXPFZRIj_m4R0Y3?mE-JkKhzL#BExNod_?WJDL z7_^^P+SZ!zta?p$eFjh_oze^#1ik*y%>T{?17>!Xa!*Gdf2Ezer+=l><$#A3H+st3 z`0g>vH9P7xte%05aR(W5n`S>2r{DzLhax;oOgND)hp3bb79aaWL)CD0Mx%N+q2Vbs z1S#paBucL#HMN>Vuk7T z^)S+#lVwsNM|vI`xGnl@;?ZQ=vmQ)Gt+Q5OE*YF&ydf5sX4QoTUOH9%QU(VkQJcJQ zZ^p)Wfp-VyeIAZ0k%JXFu2CvX2YbYwUOBQ8*CTsHZ)AAY3 zdrk>f9*9vf_D&5I&CECPpwVxx#{|T+5py(~jTe_aTUtjlbBa8v+9vjy-MG}%<<~u= z{2=XKQ^yv?_$a5|Gf*K(!}KbvfZn5XG`O*&#&~hSjQ?&tucyEFw_%P=jwWaSD3iuF zUicI$3`iaIRhR+}ohJOLLcl=2Ld|@vQ5#+ARwVA<)9&2H2C<7HR`}ZipW64P)+Yq% zrG5FEF5l~Z>kysl7Ms$!v0pc%%34ei35WSTKJpksxI=RxKnNQH;xYPKsM38f5eg(y z*Ggr&M8H}l876dgAy{c%H`9UYr9yi;8EQY%*Me_35=#1>I9vh~`%4LKx6uD#dK?47 z-OcP*AE2=kVY3k6zJs+s?&u)Jz5{lpZPVbO@_G|r!`wO#;U{z z>5&%SB%}jlkGOY#l&W23Sa}u3{hNy{1FuI)8lX7ZBlNLJkLZRqbTJA>CGKo>Qi?EJ z8Y`QLGkky(qc{-FQV`%_GBZ>LVWlw?Vfmw2Q?i{(2w;CeCA@wsD1}Y^(BG{aW7cT) z)3(&0%C#+3T{{1dJ;p}9utJO71vVZLgQqqb=-E{tY?7&6(>-W?WG@V41S+bH)myj6 zRwvxMsvz9UR|!KUHc)p~o|)7(UNSGXIAWkzVDkigCHQ=^j1*fp{hh^^>rILYd`%XL z@(Gcf(v=>lR<+sBchb9~)lyPDSxWZ_CfZS**sl)-vyTn-j^<$8HK(_Y`uP`2jDD(e z%GyzDe&A1;81xl~FOy0yvq2yM@sTj~8e0Ps-9h#6Wo$j0)ZZ?zk4?FQ{eC_EE^Plp zoW!q~;(IiYu~5(jJo%uR@PUfmOTF=`#Er^z^<+?IMgDa4fQRgZ=k{rS&BHNF02n#; zs#RyGP5>r`EXq&fUXQigK>6^3*c{aCt%Y~K=B`s)5ngR!5`G9fyp1molPgnp^#QV6K+KoAwN z+t0w02{Q3q5tJ;WqYM$imK?OHJ{TdRv&kTAZqu*I3H*EIMJ~fORoW{})Lt87JuY>3 zq-m`kBqAe%$X^|$EEN6Z-sXWCYLKGq(|IXjx=6TLZ#;GnROqSoN|Hg?eyB)${{1|M zfr=q1oB`0TM4YM*eu&+pAmRi@6byJ-#*S-mNUN-U#zjDKD!2F@(`%{wj5=YYRqWO34HXt!^yK zz=}|uph}rCM5F+NRK@hXov0e{{Y+u&c7E0NzJ^R^iLzYhpgqV4`=V@06|eeg2SPD=*qob3fna`Hsp3 zI7Hy61tJ6dXW`RkDs}llCk759JE&+w%^|_40!N*nFWSkAT%hJpS(X#u91xm$0xjBW zYl2eW%c})ivDb^PR1mT2W=C~*4C|my)bZ<+h+AMnZ!l^=cxn)9MVBBOqs-ivGtLv4 zpsD&HDsd~GX2MJI4aYQaR{g=^{TGZzfZUh%Uw0mC-sU~mmn*k^cBLX-EgBk=uXhL= zeN15#ET$kbe=saYIjN?uW)h=Ks z=sv#yDx|~Wx^rLm_MtZX&d1%VefCy@!1(-}P`$u77qB5r^@@ny!8XS!KsZ*#K30HS zJ%q%Ab{69WzBJMg_h87<+%QhGqekF0lFCqdGjEA6xP} znMVrK^j<3@h`Vs450uC@Jq1sC&Q^1U-X*CiaX;Qm zXfLW}G}^0y{~Pc+fzT*HBDM`A6o}gFzf1kp-@SeRBsnJU;s@1rg4FT$A!;ZfNIkN@ zY~?m)hj@c61tr!IGt?~{2;vq$_d8;WxIU&-c`n{#{lY9fc_6%F7&@}_zCUa%!0;k{e z4S0_hIRO7|b)#m8Qqj{omL8i(bCP6lYF~jW*FJrK%%*s$G@ey!td=+FW4Dj!X6~l~ z88#DVT!YI7KDOovBu$2x6#aJ=p1h>d1Akh0B-y7FztAU@au!l#87T-%!4^gV1uwXu z3EjiaXTsAPQH-O?j6B4@TC&6|DKWSc3v=2xlipze#Cw-2$%67iTcAR9rpgx}+(YDt zt037xuh^-|vDQLm!Ok{dsj|fBiGnCNtdAP#-A_yqovD$L@@d%yiF_afJd^(H_eE_u zj(W&gdE+>XrZG`B*M;@*gmgSRUrU!?@{G`}H3jFDlwAk@*y@ei9BOyqk_`&RB8E zy6{~HgzqmU*~c_G;@GRDK1r@&w*!Mz%@2TSlEhXIbO_Rj@jgZNC{|tRl`BT&g>t4V z69gB%LBo}p@MMa#J5-b;%%Y#|b%|!clbfFO7*Zo~vB)^^*nR-dY(7QanArHw4SQb! zD!&Z|GuHBsvS-;lxKzJ^%i>?Ce#hHW6!0YTdtCY=SH10uu1;i)#qC>J)7;}J7#vSq z6of47N`9}3y>F@*9wMV-uJ{jlst~r8!6W6`1U{jwP~jxl(wD)E%LZX37H9sj(>(?x z+ew1=OT~&3yVGU2fSy@*-MjUAAl4&rpGqy#HIPa6><|Xc&xH@57$B4TrBnJZlTv7I zWAzz#(8yl6g@1221NlOk_B8+Rbkcvuh-z+*;WDD=H1MXI*83gTR$i=G52^T5TB;_DZ!t-z5>8@l;?7qPya*k<6|p*Gz*m{9`x}4q1Pv@lKAH7>9)9-=sPEA-4ui~ zm&iQD-N@!iy@hNIrP>yjEFKL>>eaPYxla0?(%&Fo6wvaV!cGAvD3*InHn(Udka5sU zNy8sNGyb;?{i?@M?t?`PLnC>#E@kWj)dd1Oe0I)7uDiV1Wl&1-kuFi z!Cox{JJ#lbh4T7V&NWj!2NgbFM>17bwq8hT4!tADzZWXh5^D>E#Fp3$fTt7V@i$oU zfG6{PtgZi?-Uy#o21j=g?3I&zzIEF?F8x{-7qbT-!0<7aY$02;;umSg3ZrL5)+uZs zHY|(cX-w?aMHfF%ZhUJN%}`rER+%Jo|GXoQ%|OMHpxjWQomE>`ZjnmN5(oG?l=#z# z_pj%G>d;mRsh=O8!zL$U+f!QhCVob+&3f3T9dBDKWbuNKP7)ULzm5y&w@z|}Q+}_% z3a5aV2OFHgYk?r^hQI{Br7NjG0ConLTH3Mc$X>Qrh*hz}092$m_NH^|K)%Ir9Xk6s+k!X>%v*p9C2?o0s5dXs>1inwpvTxDGR~A5t|!apl>mmNrpS91LQ=xB)BleK7-uv zB-=smE5I4PB-_O*-Oa?gP(egjt({<|u;I)fymyMvWeE<{kE~8TRq0;W$PH{Pxc~`K z%6{o54pvpg=3rM6p8P7`0iYo+J}PzC-D<#lRb}DA`57LY7cx?=E!z_KUFm1c6n{f8 zHi84y5hjdcI09kThRXWY4xL#d9?U%oI=sF2sgy<_D?g))$JQT76zPqXe5^;bImL^J zwDO8~W`FmN-uK68aE{Er@Mj;z^8fp7LSfO6x3So z9=$Cim1nbit3g(%sg z01;3S{Qs7am^@t<_XmRS6)Q>}#Cto#1Z7m3x2N~E^XY@V_z(b`RHk&w@MUag3b@n& zBvX!_NF1}{`ub+*#^7BZ^zR)QEI2JeyWi{rSe*SfC_cP|b15RRc~g4*!#UOiIzN*{ zagh}!nGu_xuq+VFygO)RC1(C8&hVqAY_I0Gzrk>*I^m-BV~|?fE^kcz=aSxLUgVV# zyZ!yw_b!gugS%+K`38InV7oy@VoO{mIY-}E?VqmCh{t$?-BpKfIf&0YBQGipDy#>X zni)_KzEJGs)C>ebp=RK81>Mlg8rT|HS7%28;QPR4JO2+OHctW@KAQgMf`2r;fU2`S zx@T@6Q_A)uaFD!D<_ZfRS+b0k%iO2RnCziax;>q)i}vM4F3GDhi$OkO*6QJ1|F5aFm(U1NLFA*!Fa9nb-@gkEDEzgIEn#(p-hYbtBoKDQyhcQ z@S{oz^)7ns#5-(LVzZOPK9#r#ieX`5{R?*DbFAq@IN{>FizBZ-sVxPho85(D^8QA} zxl*ZcV8goMg1Y;WOYG2ixvfwAk+Q`^2<*VKy4XV{7Rpb`))}1wo828UA%NQDo^I22 zAFsC@1Q_Qx@1|b}dc`)+FIaDg{n^_HJGCeZMqc2So-=@&IhyC-L&9?N@InJGhA?k_^%)G% zeM*t*T)>=?i7gytxKW~G(f?V$ z{dc<+RLsov7LQqiXl;>~11yRQT0Qx%+ZG)1SN`0#EITX7_;63h*(|tS3V=?VsLtR9 zg=XsTuTPOiWTY$AX*>BE@h7FYt{f1?=_T-Fnyp&8E1LU^fpH^^1PV_6agyN|TnZwg z)+{9vJYR9g;7E*wJ{)P!>kQ63+dn2$3D#)ypXR=V@6-PSb026%a?O-$bT>mmVXTJm zjnagY33}~ZHYzsX0mz9ZCt()KUXZ9CowG;F$9Mq%LDyM(PzOS-R|fz6yc~Fw_aOO8 zD;wPU4QBt(6q1OK=tktlR0K#*Ry_$%nM`t>wY$Gg)pn4lVo4T6W+67^k(n_WpqG;0 z?9vkc&D59=sGB^IH+7|JL36^J{29~;IrQ7HNWeW5jNx}O^S}O;Jx^#SwHV6sV7$=e zIC2soqRw;KKv%S9JD03bYD%na(OjR!w^bsva9v$iN+w9w+1zayVE zT+t2K8|iULrS1s%0Ju6E{4QJMh1$JNehjXbiRarcFC4)WqGqaGz!UO_C*-r$%2Nel z{EO#bV{MoFU{@7C#RFR6`5<7GGE6L?*WYsKBL}EZyn)_rnh*#F5Gnw)H!vmZ)$xJF zJN+8%^M;|ib$#7FGkmCGMX9|J;c`#Op04qkNaGr$+ll5y);BBpb58O5P_=I%(N1Y` z$JiFfGyviQX+!Uj;6f;HXHKiLVn;n5_^gK30~wAq%Djh9hHIutVHkkuJ5t4ECcb&Q zDkkut2*=0hM@ho}f0EZ9OjXXUgEEWp*vIlB08@YE`z5x>0UU1N{`y4BmQ`? zA>+`XyeI&j@&ArXo=mcI2!n7NI4^9pDCzs0ZYF{T_|)uO#^vu z2gcoer4EUFdQCD?+`Y+9^}*A#lTz^yV%xBs``H2X6GZNk@vmRLP1!W>JI{ZX;dcTt?!pr6|R*2IJYHrQxH; zM*aYhm(ajqj%DT}LH>VSgnG zQu&jh0Ji#!xiXipc&r=pz*6~4iA-%{89$0499g0ugH}!M#_NF&;3LE5zA*G3&b>lE zpvrO|MsVnPth0mw2!i|Y)|uKQw-c?DB zboc(Ys%)NXv%A=4w|&zYOYRueWW8Oq1=<|V5v4!aYs4wS7@wPERE+6o# zWv3PzkrR8(*DPleZ>EI)b$Dm9#evzgiZz#7c4sPH0e7r{#%Xu1jZ-tv$sbx!u7k87 ze;?TLf*C0d=#4TcX!#8B?e*56XTBv?L!v zZhoYDw$L6}4_CAKC-p<_aN0koT^9ITt<*Ab#xKd(7p#9V_6UsgVhIOnRZ`Qw(J4v5 zdiZ$5Pj;o+LU2Joy8x3#Mz7<;rbJ4+g{#(7Dg>al#(yxQ^f_9I8C)c0KH-pyj=vWxP`d|w6yTq_N^uhoD7f3^J3oOZi=YI2@ z4;J#$jxQE&JvRvbU@DJ#K(5~;4{1O3SXqz|^E9QtZ(kESuV=3TkE#6H@j(T_L#{90 zo5~kJ{LGqpvJ?&+v#ZuCeMr)I8zlO&(p0)gHbXvCf#8FD!skA;xpJcj; zw(nM=0`R0d!-}|TGUtp_ESdg?CdD1DG2)DSv@KtH1Ak&na zd&T5Fh+UCEFCI*1zJRCRN;2My)v_;SuKNczp-bn2&p%Y|*vHmd(1WQtrCH#6Ls>T~ zcD?j#ZzP$m2Jp<C(q8xz0{KazFgtWw=K2S0r2A z#~7R`M&O!Qr^}g0qZ;HJ%1DZ^IOUp3dW3R%eIzh}9AP7qTbxjF`P}vs7>n{!DF`f5 zDMm&y?(EYN7qWd5T4JACOawBflEU3VO3YkkLX@y!w*$F!`rh$2QJpZSiiHOp)gUk) ztc%a=t4zCkKWNvBlav#)6N;@>6S^(#AYKZD)*)=lxaP=>G~3;gJW9C;%gfl0vI1H5YpUlcRo|~>HflN+xEU{ z2>&HJ`tM&VeGix!Y-LWMov&qF51t-+|Dx*uh1XaSBf?yzwnA8jV!KAd{J~fYCn&2L{>}Lpeat z5lgbk*aIo+lL%adoJg|#kTiyX9nq-`6WGTdxMu(}N=ur5V}U*{dHZj2Q%Y;f*lS}J z-9~SpT4n?##hCaNFZ-hlaWclXV$~fi!~#of%8i(=4}aR zL{7rNR~-muDe5s1>US?8NoqG~m(d<7gmn{-8dh)=TfF30IFcs?5|gAgOS1*h^_Vtf zy*3q*(4M^Dvq>G1uJd=6o(gUfQ7`3364Cl;=-||>+rHkJ022;*@KnB~GI<^2C;&k; zj1qj_t10|&TK#{ka<7md@Bf3b&bQfbrrg7)_2VajsYGt8_lQT+ZcFhoaD`Ii`_td1 zy8P|X=|1Bntp2%PJc8Dn1V(|8BpG`*g9v&QLp8kxpp}iTfj~3(=OWei|4`|!Tu<8J*=XGT$`91v~MochuYTPa{rS<=wzShT#B{i;S0M>X>$@?7loL%Qz-*fra zlYiw~!3W|3+P{`tT&irczGev?_J05a1QeBj!T|nO>zfY~J9c&9q?Yl0{&)l=!1K&8 zva4E71d^l^krc)7-Ujd~)xCpmv`)4e6M?J)tX0MflMi1zA!g=Hj!nytV25`sdO`-G-Q=Pr(oozyqw8G5szg6rZ1hYYR&2CpLEa>Jo1qcmByGO!Zdi;RzG5rNc6@w=Q|S|!mH zibE>gZyZwYfYUUADV-d^>Yu7TOVgZB+jJkvOw)*q}vn`B#w*sE+}s zQCm>we21SVw3%U22Pe>ckD9NwO$OeDpTl6-1{q%A)ee2yKo;_ zaCGixZ`< zP5%~ZXLbM4T|0^GA!+;THRARHiwQ99KG-({4nFzyfQY(n{*nc6^O=%?re#7|!hutv zklf`7kP5Nn zqX+Nbfoe_no7^Zgy{(htO-)ad1ND6Er2po~ub0iER&5p?=`mNXZZ!4$eW5p{$m_he z$d=1XbFVLa`4CcdtUFt>W6AU7V1jj;Ysp|dsAABmR%HZ+ne;~;p11&Pg#sXU;058l zFJRN7ePo5ELC^q-0WzFGySaf^^AhHSV&7RyH%c#Xbk=9Jst6>#K~3}rYyp480m zkJiYiAUX_xnV4U5FYSLON^dsNq=sqEN&^<_77ZfFzIP@D_bU6{%Y_sEY0N`Jw|6gM zaNOSm_zzYXFp|;5KdXPmYO~9EGF(amAf@JMovwjIS8_8y?i_g;0V72nme_&QBQK|y zlP`bZ!^JD*d~_@XP2&qdU&t2gR2!p?ZKTb#6kkR>s5}xhP-sqn(`r$hUE1g6Ex=h7 zDS)PbUT7Q*`UryPq^%CV&RZIpT)jL*yFjt%J>cnhqSXo~Q##!4Ob;mPY_Rg(Vtx6Q z$Q+0o4@j)LE;)H7NL{Ky;9DtO!nfx(Ysr9$){&^VU3y;tclzeVLVb5*Pr`VfO3|hw z8LjB=(OQq+)p}s=l`4OyglR^6x9{z$x@b23SxceQ-S^G=1;sl{Xem zO!lF>Vi$UpJ4EUs|d!0z{d~P zY$yp=q6Fjji+GL^Wrv3(UIAH6#>oOC&?gpW?8R%=CJ>4@7?PIy>|{B!o9BO#78ski}?Lk zZ@uAbjs3B;;FstHzWjU9nv=im(F|NA-0WGtt7)Zkqu~l=5<>hGN4IK5KGVmq45a8{ z8jSVjr{+5~Ds;6;e^_`k7Vj2#>C(1ZoB^4sw^CB9#U;`HI?Ogjwo45%$pam7n z4zRDDk!W-e3fAUz@VK}+Mbw0fRIGV8`(Ro~xyC{`74N>9y+!k@P5DMWWyWoBV%s!3>1deFAIL`uICo#I`&cqE^TE9GQxXK%{NYIa_R>&_${a6wo#^zTgd(w6M^A zU#_+D9+OSWHxCc&DZuQ*(hBK0GQ`#7N8-dg;OovzR@)2z!aQq&I1#**sNvn7_J-A# z1}AID1M4kcoL&S7#FRVRg;13Um0^;})?ORgXMSVLKdTUjz}FN)C%=p*PhQ^hkN zD+_pIbv2LLw;Xxvu)Dy?qr@OA->D4>r2J4o98a$s$Ug?3d;s`Q74U*fJpcd0-kZl$ zxv&5Km6FPknaZ4K%djZKq7juOO_G_=AVP*^tTdRHQX$huCCMzpG7pO^7Lp-C3(F80 zmU&v=>!xY%-9BgU{W<6J`~AL;-+$FP?X%DAzTfZbdR?#A^NOK9-DN*;$^mYT*$|N; zgjsc(pM1|eA6?-kq7`y7R{yY(&5&g zU;_fDcX)_eXUx83%a~amc$`2WCzydx1U}aF85cH&sd$c*38sQ4Y}5PV8ypPCJmC)> zkur3~g+m_^l^x{tH!%W_7=Vfdf7z}@iX))mE!F>v2)8V%4-E|s#`sE@aE3ebx{L+1 zhJrTgvt*d+zLlrhicg=4@{m}M`CJ-YLyo>0Y)|j0C*JVOSmkq(0Ifi~p42x1ii1+j z=tiB(;?wS25C=d%JGi?y(yzpTnQgdRNZI`aR}Agzb4OO^yofB``&uS%pvk%pbe)XtrUr{nEt$RPqP#vJ8Ums&5e7sA@UU+560TG!NVTze)7MB%e z_qoVgyfURkC;%oX#ZY&xk_qx(5Rad;e;--xc!_Jg_Un1jmR`-H`y$68$d5UKt#61W<`g4O1i6+?!)Uj5Zv+t9{?bP_y?lBY`-yXFO9hWD8 z{N22(M5Q_%%u`cdKZj>EwxacwYR{37+P!t3kEaA-x5Mo?I&Jgv1~n2l+8j%NH+%Xh z8cu5^W%p)rwl=+l({SPdRn{sm@AL$Tq0xR~kP43qRWqs(!U#wTlP^YX zmE1(xTPh^g&Af3e!%O5wh{fhna&stVt0d|0c4kSrZgy{sd1;Weph3J0y2!1td^K_&@&JV&Morr z=e!#og?0~f_fEuO+8lR~?@7WQ5;umtS#86^3kuFq%Iu^wZ9lBWBYYE2Y&@&)!3WtF zH1Em%dOGl*O`JNas!$aoH|F02OrA577`dE}x3QQOR{{lv1v8~-Bo@>7V59b-Rv39!od zF*6HZV;*&$w>4*Ao^o(xdP3pT^(nbj?s=k0b;i!7A1qJ9PgaOr^y^v^-t9b;tulSlfog;hPFkh7;FiZI z%{O$;z*c1*2Tzy=1JGU7%1XTRp@NJg^FZLSuGg!%hE5qfCF}=3^E#`C^iD65AF4T_ zb#_(CJ6!PD*^(IlV*4u@jmPH{-^T5>?|rB3-I>}h=~0>gIg+;k8*tfJ)zPfuR=3Uk zB=PUMS%j??t^GBQSLP_6*8_6 zb2E?BC=J?MD&}k+$uV}w06bfQ2K_P=OHlNgM-LVTLB(cXq3(-0QlajTIa2s`>1)|V zIxH(7DNYvl41}{@;TkQk0!JY}bK3)JcsEyihKv0U185Z7TcRb@TU4zvcFpexf59IRAR`{hoaUeMd4X{sM3KFJ3-Z>6_=bv&U$BsNl>b{|~7Zywqc z?VI3%eOCBXI3;2de)0oK_|5Jn*1LIvpwp?jwh6f^i4;dtUaL8yxCVR%N{pV1y)eYA zhIbFx9o``#+xJPXcXXFr_g#s;$=_1A6cke(R;#?UPWHJc>2r( zEavpMvA2}AYQY#C{W$oYZVJG05jTp$&V;BzcLrm@($twP-(LG4Lq@giqr0gy?K#5+ zlULT@v|mj>a+GCX?AZK;K+_ z4BmB?QQHFs_d+aG(c6Vc4|50{WjLu$VH4zP2n$qe@Dk~{g%c(B9K?xs!wn*Rz~CI= zq#)P<30@-o`zk|v5k(Tx|_Fm(z!UA9biu4Fv>``$x`AP9Q&24w?1$3_^pIBTqE^u z+Klv=oM8!LkNtqni<&W`3K{#;YRgU|&ztzbdc8Av4d|soa*;lE0PvX!<#ntaKK$KnXnFO$0C?;B^jg&+EV8-3YbQ^6_j+5%!tt3N) zFGIC9-5&$J9Z}~W9mdF`{Eci`hQ|pmu_}JlET5x#>q! zgK@6_R_G^!ysXQV%BhS`J5w7kCES?uT+s_ArzC>c?NM=mKf8-~XP7Lzm;eACC9_U7 zJI#5C1%DSF)G3e58}59RQ*dJ;Um-xRpjy9y#njnAj?3}~bT!M$q!)L%R9^e6WD1oY zx0fZ2syEMC$@&F+RF69! zd0t;TY?Q#Oc}DB%Ni5GM!b&Xt{p)egV@ZlCBWK;-o%Sr;))A*F7i{DtR^Cya>1WV` zLat5CopLzf0(kr>7mzgHzoTwTDmqSW5JKN=XiTUfzcpcg5 z435S52MlC{+`V>&#xt^^=gbecNvTC^57MLPy_KPydgbFPJ>YG+v0G0oMo&kx!v#yn zyJuk(`*DsHRTKX?1h&(B^8VVTd}f9=Jn(xzf++kCy)gG##$!?}xDoM>emg3e!-CvH zo5!6BHOuXNl0MGh#)FdOwi4UeA%LJhzk3s8LxX$IIdA8Mhd?F6MuBJfB>cH{kPKz( zdW~O{7(pyq3WbJ8SbPbEjw0gBH@!{8l*JFe@}j+g3B`EaPVpJo)KGVc>5jtYD`kZj zg3ZH~xXBG&KzjN3lY1jFm#WN+KBI5OKD~JUx?Q{?at#@~ioL<(egPgth*<2>^#~Rb zXoy`2Z>K}>OYb^6q*4)&>(AO8u8%J+9K8t@2&y*toU8htOgUM|ZpS7sP34;oq`Y`_glDngjZeZL;&Fv8^+vqC@hs`SM%?^%=oyV1mdhsL}33wO(e(D2@4X1Xn>ef(-dXW3m|wj$Gq zd<%y>_`nZ!4S(E8tO8#1=j|c%)}Df$_ZF`~ZRD7K8e&jm`wgI2TxAd%vR07yh5+_@ zV4MniT`9WNOAarQE{tK;JmT$?Es%T&G)1IBIs(jK69cXh78KGrXjBMYDh;yTZ@@;e z{c<~mB6SipBkPe)WSsxh{2vsyrA;bu_pVy9pTpU5IvEN!A6n!P-b5o^@lJlQ(n*_5 z1?~D0AolXb26nP=9AB!0hv9$5MXI^yq8KABZl_H~)jI=v6@>{uTt@mRi&3HaTLZW; zo(0&7Hpb)Q6{H133i6OGx&R1xena|h{?AzwVug?t{rO#@};A&=5*cNqC?9^ zArxus^q5jFj8xx^5Va$CG>GM*-OMuN+xv+9p%{4WrEf-FAtaQAVronx*=X}b2SQPr z(w-p5mTn^-7B(?3uRUpEz&3uIAcTRXE&H(DrD$g4cjmReG(pF(2SCr*Rk)`HW6?7@ z9D{$^wFBV{{yu!TUpJ8^GW{y&wCy0*jhG0Bmt|RL<(u%dP_$fnLt7G_NOqNa!~X6* z0}xRY%L)$#KdY9nk(be=-96F#<~3b}y$G>bJ=|Xe8!I1-KDNn_k>38|`zp`6WAC&W z{p_FpzJT9N=QQ$+b71s5`x?24=4hy4D)`Yd!>{msoJFQ(eDnNtmSb+0uGy`-lVyU4 zc73OL4!yYMZX@{koOhp)Q=&@F=C=vC#HA>EVeeyA)%+(tUgPhtmX)rK#vZSpvn z6qq&NcsU7n9!4JPQuo^Zv>Ywmd2y+Q-GtOF!5ozPNO2;>qd>#Nv!T;em-UStavlAi zC|_5NN0*)LYF^Q$r=`&XJI~*RGl5WbF0JUeMeHjs@y4EuG68M`^-GdWAm6L)K9`~X z_TrY{6+c1`s=(*|LN3zv#A+=2BSU4cEAapHy4_)KYcseBRg=fK;0*BjLI1)90^<OxN{yi;iobTCSxx8$D-1X`Z+VD)$agBrYl-Ox9VWB)uze6J=}IuW~|<;3Svo zQ_(`IBdal97d9%3vLF)6{Ul$hr*IYODjxM<>%ZD``b=)+I(0?@7@ z+@v4YpnZGS!IuS*aVJCwgbUmMuv7*6F4~y%eiBlhTU)Zg1-`2XjuS8PHMWo4rWeIq zjKb6F&e79flYPG$KGKse7^(O13NJkCY8rGHRTO6E?6aS)K}#3$talizGcE))T~OVz zJ&dcuWjuFx-rMJ7-rh=761j;_Q0nj;Sb){R!wYSeez_ZDTQdHcBWs^FzFg zHfo=-K6)o>AM^68194b?({3!f+5Iv6BxaaG(P7R(2TDlycd{EKpzm{zK6&7U%n;hX zR^tjXOn<)`f5iJ^HEuz3=XX1*kn|T);Wlu2t<-s5iIm9KJ9GcuG2R4gxu{t07(kkai@k!^k!^yG&Nk`!XyOxQ$%3sn@hrZQjDP#Y zhXDGYp7>^&Ur&7X)rdTEk|rLd2^$u_eh~M$$3bY2MQQ%ROp*5dIx?#C#jvb*-YP=& zMg~YIPlGKX*POS&+NCRBakI%$+H_R;UVW3Q0$<+rfb{7Q3z|P*eXhJ>bgC)VhgC5` z>UPRpJ#cpd>BPU$#OR6oTk|bo5ZwA|xwP2A_33Ctxy?HGB#KAQ+~ycM#oA`OaU@1& zq&|S-V7Bmz71Z&=2lt&4Nf3PbFV@m;Z=*H<$0?8fHqxrRP63%zw2 zz-z|*&xhJ2?NF!gVgy7q20`& zH3$WAj~?P0I}#OY!8*Ei-29_nRnCWp9GzDMEo^m|uZCf)@YMe|5 z>kFCrrs$C4osaea$bfH<5H$4gM@rF$*MYFIVSjsXkZLNEVmotw$T_^ZNQ}YBU#|ji z@20`IhAv6>h{#aR`kFWDAjXjIJqU?gotHc(l9If3+Ac9B5^z!f>=-tW{OvKEPC5Ez z8zrK4!6#&oS`Wh4Qz&!c06}rl*`5Zf#xr5$b3ZqPT%n0vTtoGK=^`cJ&f%4K^p=rR za2qWL(m<$9`gQtDZHVy!=*66(Z+FfGt*m+anak&D(yh@%Q9cU1B`n5Ce(pU8(-Nh* z<^XRIYS_0jwmCm{h+o;E+fan3GC!o4>ZVM#VWnAP(k@5C+FTJ$Ob^1&iMe#msQGy< z>A})SYkDGjWA9BsBWxj!jVuT7zJD^`ZF5MlXB*TcY=%2l~>ZCH1 zP8W`;F&|TY)cCb*+G`Q30Sk|$zI;W0w?O}OCQ+_z!{i!Hz2iR?=qqA>Tc9I6u|T!^ z0@$6nMNwVjY_sN@8wirh?gjdeS7c)^Uf>#iE!z3e`wzFuu6%+++jF^QChfD4;;*_{ z25;kswN~-^IGs3BTE&1-K}4P>eqP$J+>MP=d_C9;snjj^^J+nX&pH+p63jXpgM3<* z^q7k%O>ZYyaw`=1WG!+llWK*tzFXeNrUuMQK9V2&Zpin=6}T^{+*q?bH%657(G*UE zBIe1*=}4vgr-!;l_tOY}sIUIgp{`tV?AxIp-xG@Y?TMc0*vQ)&}_t>Nlp+V=B8MA&YaGfV{ge4S3*}F5s-m{SyI?LoV07@BnAwVe;MU*o5 zB`9UR%SxGP0s5zSVs8s!N2dOVts5(4Xf zuozhS^9QYHdCggLV&h7p&g%`+xh>`wYu3iDIVc{zg&9tj*F@`Zk!fzr5l7 z(q;a_{H^o<`x+Ok8kVKV)AhFdF`2*I@~k(FB=vbtou?3# z-`&+Crbpl3Vtn&VhiZ&~#2TJs=es@e}_*(~D-sKD22buUju zrQGJw+dD7sb3^w^jzBKu@rGuLlhes~d70#%h~AcXku4H6bb6L`Dy7(Hwb^rS!QpP} zKV5WFV{&%u((%C4IZWKP7&UAiZkART-|k+$fv{)K+~}JEF*e+I?Z`UKy!2-=Vhl)yEBWK9+_21r0;a0zKV+pnVMFTODp5hy)~3F z#4*2HGEL@~!kt74Wmn714LkUinbSy2k4$q1UyHkprn)pYxy|>^UX`B9aM?1~^#~Td zM)lXyOq!(k6Y`}0r#j#1Ju;fVg|Q5xzra|aWmYMKgqglyF%)&%Hw77mi(R6py{X3z zMaad3fD#9(r9E-{N!U za`G!$-60V%Uyp4RB2~$O^01e(hd6&btprw$4>y{IQQc`qKk1+UczZh8O(S#ch?pw1 z{q&hx=7i0YH@z^_Azu7stDW4W-Qs0rm0M}B^x1{DJ;tBL3`=yV^1wk8pa(VLHY_u{ zy+3?|AnCA;S5-*?Ywe$m#1QEwWVNTBmMQ;Vt&$wmcm0zpiO_teZs(%oD_4Qpb=34t zdEXlE?qPG?Q@`o5b6b9aF59Le?A?dLr2NjEvcouvm#FOGhh8py2X)l&Q1556D)GDr zUgk~I-W@%bxU;=p!7bMAGcu#2izUNN7Rh@sB4N8scf_WTz-r_!rVebiT!$-(KJz2- zgUJ4NKXO*{nXoIO#m(<8CzgLMn310BKfm~C=&~uFCReqD;_#`-g)&a|y1~zzC5+R} zGe@bz=gM?kJLcM5EkmCMpXZFUXPG-MO||Z~wn(2VPrqYKOwo5}J~yv$M$disWVy_g zZ(uMFg;Ztf8Iq-UgrIwBzWL!9y&L*20M7C}JYO(e;yvgaIyBfGmV6$T@;z~)*4^bP zq#hmP6EV?mZ(0&&|3~9IQAIM$IRs%3@%MD+&m53ky-1b8ul@TeUNtCaVlRaG{2Y+- z-zYdPQ68kI(mDxk7Zh86gUnccO}YAY@H)8cmg){wcoV&BvtYV|KB;ZbHqy{_PDM$S z&bCGrrO6p(EK+$$1p6*4j9Aw&M!=nep|g+k>eaioA3)6^N1gLGxPG5$hWd8)pN;ZL zQOR-r44IX*1sr_IB~z{bZf~nQI%HJCZ#Q+wh7V;_o0HshtuqDYELo_#U^7#_N0i|H z&h=H2CG8$F0yfVgr#Ct0iCaz*IAl|;=vqgz3Rr?mB5el+<`={V>lBkrHtdip@UkU- z@L&zou=uoHu3*|^mdjyWV9tv#y=>d&l+dmYQ-+dAbFqbywWKE7&;9sx;hk>7zsb?vqY-n%cr=|l61 z-eunOB>7V>d+}dYl%e0Ls1IjST~bNq5tWpyzdnN-56$c0A!OP;AiB0(;bfeR-YP#} z)!|M@t0=x(owa2(+Uf0v38yrln_T zngYg08LCXgHHfN#nG#f$yrUJCpP$~fI#2PiRvw)gGH@L!7wtYQr)T@f%N}G1I+y;B zVXp$G`b)Je!>Z+2_&$|PQ8!Sj;ncI31AZf)Uv&^Jm}p0MC@7wXh(Sb?K}CLed&MyY zvXRZ1_Gg~*+qM2Hnro>G)0srV+x@(i zzDVcw#d#tv7)j^E0%g=vbF~fwvd}uGb4wi-bX?m&*T$XS_zNr;;%d_iEIOvN$hZdm z8@ox%^(AyB$aw%9opRq?V_y1O@vs!fi>|%?Bf~SLZ!J#=DF<_p%BReL{j8 z40yqB6JVQhA@~_mG=s9OZ7cKtt7=~H8EWM(B)2SmjMbJguqx5@I@Uc(kX018hyP?Y(cyQ#>czRpvtuOtmWcImweJ z0z9G;^BM<8*-RZa8t`{@^vu<*`Q!!|guBc3F_q)a>6wRZ9yf=e$hUdcde3FgyD{Ny z3@<2|^v)_V@F%t~*qT5_S%e_l7y}L1ASt>teq8}7fUC?r+)dX%K2-0-8Oi5AzubpJU{hvGSWms zO2yA%)@Ea8I5*-DCHXcVo``?|e5?9zC>NhML@!pL1rnI23=J z+e>V>+ZClTKLb}tbeM#(uSDAMoomNx^>rkb=C)40ySCV6A?vN!mXu*KVm~-$YH-!O z9nZR*e1+fL&kOUmTy!N&QT_c*+TC-h+mWA!#+6MqXEqQy2w2Rd1^Hvh6pxaOq#WYz zgrV5e8o~icBsh5^69hO!n8B~MTR_qWv-`^&mVk`L9(ZxyM$3>6J1?Ct3?v@zgRp)1 zDZYSJv@?{?G!B_YeK}oz0P}h-O<7<(N*l8xm}8`2>B)yLJ^5?MljmA~@=$|=z6_)H zZJ@7x8JpQlwTCKHA;aou37~|h!zy59;nM68ZtB8Q&R@^7blAmA3B$l0Y-**5bzBRq zOdo+J&d`mVTvtpYYo?tsEcBRL!_7fzX$6BB52xj?WGp5(_X#kiXJ$pM!^Jv3V(|EE zklCKx$U*$z8avUf76B^;<=h63Pf}nPrF8)b=W(_SM?IEg>d`JSJ;jTgN*e6)o-f!g zLUxl$_g`3e?pcP7-Z(uo{!FS{*tGq*T%<{rcy5N%=gq`63m(eA9VPskv&usRI7VRf z53@%;O8BxV^>-8qI3L&N^FK!=f0w?1QTy^w%c82wZzU2n{$g2VC?WQ(EIJ6&I}m1m zQyDdK&YSL++Ma)2|kd zvdv2I7iGOLhEo}-6ykjD^u)`>x2MnIFD%+^Mh(xZ6OGen6*EHQ!uUGu-u93dO#)z2r0*Clx+<+jZQ5 z0A>jB+psY~BDH6EW5Q1ZEV2{L@#S3fHa&2-od2mZMdSCcl_`U3vFV33mZ>Tn z#=bjn8(l`oRnt`8`I#exu(oN1R@=7>aETMk7(ZCcEmAdQT!y?A%RU%$>Rb?T=-*8> zO7DM}C)z!#bU{^SZtmXN)ERPEFkJBimM6N7H+~pnoYQb}=uA?yDtYz_mske!R#$U^ zW?KndPTOUPZFcFVOs!FF?@B!KZ!k`dcB3qPHDuZLOcv(BYTRQazO}+|;JM#Lwq2Ia zQAJ=6>3_P6`iX1z?~UCRXf*%w*uBMJY3$xKPC%bd6pZq7CUGGR4ZrppH-;U~%k1-Qp$Z!*rALeGKrN2=Kec#KfT}3 zOlbW0(t2L;<>Y22SN}>uh^)Ai9+EeIdT+%Vq^Ewxb)--c_?76RT z$<=e>RRQt6T3&Gg`hs<4;e3aw?~b&MxeJdssB{Wln@9R% z@xh~toz$_fAm4D_m7x(e%fLKV5iHZ%tRuoF=FY>$LsaZKC~Mj__cGaTCv~@hv94tf zv+gDD;dJ5Pv$)Ps%)VN6MHy??4^opsr_Y#Bs^$0;Cr4;nGHha-@1E3c86+Tv<;rb+ z)m~=H#^nY8(ICc~L2%Ua+5T|@7 z1~3fJE&T#UY6QUWJ@|z=a1<1!Z!!$(^kG`FO+g^}e;wvf7X4^ZmIf73EfF@ou(Y z=GC;F+Z-6Zv)E+<8B`T?JN#i&y;4&OJeQ-Z({q!RqN)eT)%A64##$?8V|d4Y#>*?NO)Pwn?JOEQuxE5;QV_G4bN~Y zD^~f?t$ofl#Tz8IN<`~BMR(rWQne#*Yc5PiW~ip(T7)^L6H2+0B#+dGB^T6!KS*Q| z>IF;d_7JP6GgF&i!d`*76;ukrQ1mX!+QDP(Wj88&X1{6y`^tNf>K3&1*r(}K_Y4wK z^OYt&g2QarqhqG+YA4UZYuciN(|m6l9MQbPh79vUWpX9rzWc9fRR3_2M`$J&t^$?R zz$k!wR(0Otn^7Bjaio;_=E|O0N2S`_y^_i7k(8V_e!p}s^@c0>{|?dOVD+Tn+KJXQz#}QWsrLd4Go2EI-bcQC@Jq{7Ov`zJ64OoI3PSnO$Ss6NwY|AWZ z3`>0)yq@&_al%4Kgv)@<%iMkq*@U|ic?|m_4?3ptj1I(Fc6^|go|!MQCE@2Ul=ZY| z-5snh&zoX_R)QKL)t#!G^TYv7rN%texZ>=)FxSx4LTsFlpT1QJc8K!Kj!Slv^CelS zn%m^kTA-ul8e0`1*jLw+>8S6quC+7klaB|d{(YC)_S{t1>PGf3XlaUP?N_$uuiE(wBC%TDli!R*&A-0GQw7_ z-Zum9kjv*=6sSdHo{EiFW9AWoPC{*ib&q&vg`l9bAMeC?fNVDmsbs@pN(2nEt zDwqc9Jf^_F^OU+Q;Px^&XoU11%XT#b7$31m4V~iY`HK$pnCo$~i=?8a0_WkUoLyN7 zb=AUL?LMPWdd6yF=#k|Se6ZmSvS51yV`awrh!c$-(=>Bl#FgV)KCDn(c}z)SpTRNp z?on6;Alqe?X;T>V2FaX*4_6?;3x9E?<{BW%l?LUk3T4LLLL9p=?1#xdl6CsOc!&p6 zAa(K7TVA}@d#HM23+8@yFBFkDturY_do}PFy|6Bb@9zndXLQnY@RZPXwed6=idfxA zArB;^I^-vO`Y1u%E4y)Uu*_I$Y*;$hKRJR&dYd?H=I|1cKb=h z!(gy45`_NizV?&Yh6XLpZaX*JliVd3^)y$ zY++zw5_^}yx82I(%j!-Fir9^$DZV+cKHCM~^$%mHAy^+>teyCP-#*8}ptXf~0LN&w-DL{4mvzaW<94G5B0p zn|*tOzo~?JOwZ;vduh}VHJoBSz2(DR|`6fkY_vyXFnu1xaz z!x>J?_46})h0wn_!>yg8f0H7rm!Y_`MdppaiN%(F?bd%XxhUdqA`Z;>8qVfm#(U=) z6O!)`y%~(yIvarR&+UZp{bdm8lMRmNugCSW!+jMqf)_aliSMQ0#Zw|7-P`GeYANeV z&HYO~K4dEdBzKXwuLN&A{A~#8wcNsGgap&?he6Db3j}At8M^ENu0R$(f{X`2UMpBX zwG;>FMdAQL5l9@M28jbeTqd#X0vLtDYyc2-0!-4K@d|J1V)P#`S^h^(>Azb-LO^q) z%tw(Il*z&ceJ14@$g}DnOW?&~N%~|Iy%XdXZa@M=D}sX(SaZp!HYlg<$StLrzC&dx z!Iy0xPuI7g**>QQbUjxq=GWfvL-Yx5ls!5aGiJre?5W7^x$1vs*)%$sW5MU{CH}f_ zm1R4IY|Ke%;xl}U-4z+MGmv4mqKi#)5d5r<*MduPzAPDx@`A!-;hSL3{AvdN|E@dU z*}PrTW8RdR5}7lX^ur0fKtMZ(3siJI;_UJHwCn<=zw z`tNiTU@`jLe!6dQk?*(zB%M?aWxCHM8m;T<8=MAG^HL8ZulNHd*jMuSt(IR9_UYGg z8`Ahgv{D9K50Dmt@YXOA-U4_8gttInhozoTEFblBAcUyW=QLlVNXioVy#&69H|6D? z`>bf$V)lsHqlVMa64hAMYdeOaLBeexmv7@GJv#l_t=DN_T`9_<##dQJBs3utK^j`b zNVSr?`_h)l^EfddL0;ua$Mmv4?RWBUvP1Rn|7yR}llDDn%QkTc3F3VZ+d|6&v(f=U zTeNFyV)@+hzY(^59zR*kKug$|@o5Jtr;la&g|2|>$kLTgIK6+e6 zSLHA3tp-vLEM-jKDMx$oE%H&w>AhC9x8&!_XRPHUSH(c>HE9#An%kuuk{uAjuJ2U>J8W6)|f1b`wO z4}rDr>(9gL>^r!63v$ar^tyw%7z^@6h>im_NSO2`gvHIQxf;C=F77*U#l+phHGsn$ z60b0HI?@ZDnlMjH(x;pDqz#?C%Sec#FQai5_?`M$R4U}zHQur8O6%P~Fjz%EII(M1K> zt2O;v4Ss@q!M_S11a01xLZr|nTwie?V-2X`Qn>?rIMe&*hr7Ti#-e1+zxn%e)L)?m znD#Y{vmoEjNFS?@0kFnaVe&f?2Dn&{|F=IROPM)-*8c$pU*nT7ni~A_*Ay-7eLmSCJIbHLejt zm8Dt6TP)<&31BHXsETH5*F%|x(G<*-Ngk|y-8GOv$|`~7ZH@?e2X0>^lQbeLx{9}7 zbL~z2N69n9DQ2q2WbMMF=?3xFzfM#3fGsa|4LK@m;X)aEi#MLP>Q2Et%cm&$dwV?i zk@U>@!Z4xW78WjGhE%8n@1jtQ^(QPIv&^5ccn~7r-(c|||GEc$-0bo#$pX#bi-DyG z{`I9{#a`O%O?Q>Jhkata?qVloD70$LmunE7%oo=z6KyW~N?FmDu%K`Bp}5F%^D4vIk@F(;Qt@;q?hvMb<$NRXt=k_W5kCt^Hta=r(ZJq2!@<%BLCM zUb`B3Po6aDqGi^eq0-D&=gV=K?Is&CCy5?4$9DIyWd*m)g1r-jV*54!k5U+rWO~rv z=VB6cm~|RfS`~1I?)_3vMRE-JfbsZCAf5LFR;G^IX<&3(wB3xiq{>}w%5Gl8_0U)v49I_!V1gSn`MXu1C_rq37N$M-#%P@*6eb2n7X zbuHIy{sIL7(#3ba^y2TJ4fr`N$AVn>ot9I905bv^fleE|wxM1a&M5mwqsnYuTTbi`ciGp#>YS$aq)OqDfF!1k6`A6M zLc0aV2jrK^^f0@bO@|zM18DikKFz%GkYJYaOUx9bS{fAgK>%hsTx(9);2HV0%Cb5{ z#B8-vYe+C10w4L0Og;WUODpK322C;2>INq?;Q96Ka`h)4jBEy9%@GSds58RDtW`n}Oeg7LYHoP_!`q zcl*D7I9QhvXsZPc>SQPxfCX7XL@h^hAuA}dD)QETUepo=YQMoH!pT(-276~|!`djnEhFv=GSAgC&!WA)ChY`>oFN`FVsDScj0R_p1Mzbwz&e z*9E1?j>EAnFS*&~Awtb|7uO;)!zh1+e(plCXrtVsl5F}APov^z{mFg3bdxQo7B8~~ zcfQcV7EIeahh7o&!RTmNoAA?Ps1faN%pLs9`HqsP)uR6);6wD^B#HhdJ7|~h8II+F z-Cu4hWGLsqHx=gtBSW(&d{j}Bb{&yLC3nTID4j!lWU#yzbkeVTRI*9VCJ>52v3d$5 zz5GtsL7)_YOn_LayeOD0OUG|yl?YE9b5Q>{}pWT*X|3?D-j z`1*oV4`14qtmY7XoA!9i6D60=SdiUz8gF&!d{otZ!(}0K!L|Aw5n+Io^TTgTlO5ALtP82!rO>r61FLX?5Y#G1 zY@poC$qk_xQS$ATlFW#D)^ZCS12j01ZWWZI$QLl^a@>A74t$sik(kS()5igQz6MP( z9egkb7?sUZrHJYdx6kYfu#N6Siq{wva{AgLO6P+r^NgR#r#&2c~0V_qGRURRT@ z;g?aLDih`BZ$YKKGZ5iDQCm@(yN1z}6zFz+k(oceQziHWH_wq}EW0K=#EW@mF;6hP z5y6R53HHs;n<98TJb*$4q=Qk)k z*YE*UjR06^IS(pDi)>cOd1=Z$b{`MAQ16S7P;emW={#hwo5R@*F-yx_P9kl-V`uLb#k<9p@jy zd12Gy4qcBA_N5f}ls4(X3eU;&2coir-4wj3j^nSqt1heIWl-32}1@}Ip>=&6k{zgNHNcMM%d3M z$nQe-NirT)P+~ld*gY=j;JK3 zYXd6_WTrYQ@GtP zMwUdYTp!LSB3o<@{sjjBG)vEKSn@Zw_?ASDUjeacl7MEW9PGZlo(qL_ZJ1D2G{SbW zt`=J~+AV8-*43e1ZXU1aGO9yz^Oel;0!upE^lEW(nbvRuxA@@5!j#bl$qfFvviFzM z8mA0M)=j4EO)|PVhIl&JXk)I;a$~1utx6MKCK!u`wJ6^#u-+mQ+a9cRWqzULtlEd; zlNd*_xeH@lveBa&qr|tZsv}brK2}v+OPkus$IVZkIX1u6N=~o2BiBL*P*}7`{M5P| zeE_dfuKM48(aq;&<#te`j**_08Dpc?`KnWiB$P8 zi_h6DDi#Y7)z7k~GE=z4ty9HiTlUWDc{F!Bk{B~FD6F3g)ogOyO)f2S%D}|Xff5Bu zoc=^|`rBjEVy&HW1?RyEvU(}$N-QWP`KETvU%E0$48ocPh26P~N}kBmZpLaaGV5A} zK5eGSGAMIscfX7<8Z0(Qq^!`L;@o3V66td27EaQ+JQY8j=RNd#h+}YVmAII@LC#@3 zsD>`p!c=pMNY`*DxF&uXz3hWID=Sd((uwT#WCOmJU5 z_hj_>D{XN#Y@1&PC?h}2421l031?={lSDINqZRue^SCREg~|~J>ymE!yARn+#D zWDOGs*!0zliGG-CnS38qf+MF`7l{dpIX+GQ&kv4{0*z%(s1wp{U*UJ8E|Z@>1UoBw#G4)$=`jjvDaYZ#H~n6 zw*IsLvkG-Y5DZ@u1nm$(5NKIUp7)R}o>T*rnac(X>y)+?LIBwoA>UhAWNACwt9?1S z@|i!+FDC82OdW3?og168yfM=YF)-&fVY_6e6`Wr}7-)%OYZIlhxhi0{r6DBK=Q~ns zh|Pf_!{+JEGjnsTEtXbeAz97qJd}>l=RPuYxG3w~C*ut{sU|hKPA5|P<`(U|u9m?Y z5{)wMTjws3ofgBjTQ(&u97J1WMJ!gFYv&WpH)!9n7!I+#Vi0w8ZQ}Hu3qb05^N*Q_ zUjRg0T`yjInRbG;0j8Zua0p6F2o3=*66_6Mu>gSb6JuP$0^BePzFiFRtq!0eM{C$r zU;pAt@a3(u0iDGmW8_SG^xS7LgFxP#Vde66`{`1gVshT`aE7efn;T&N5zf1sY%R8# zvJJ~!-e_>yesuWtz)hJJZKe5ME$i!b9Yx!)ZoY}HW;L7jAVB%KVB*a|LTvgZW1EZi zqD9ai!|b3T%g-4Fe8N`s@PlePKQvKN+EjBA{_6bVMrP*zj$zZtH;CS|g&AgatHRZP zvhVAgJ|WloQ+)z9EdFbK!qYM3H1Xn~!bzzSFe5K#2 zaA&=nxbR06UEqEm+L9k8?t_7RKHFu?+-_!yRqoh4KiNhSea((*47L-Al5E}xXPzw2 zudG4$i)PN%w5C3CG^D37=uF^Fe3|98dh^UIt7Sw~qJTTt`W%wzFqe=gmXtfbMK-LR zw+y$=(tJ*Ivel5f|6rlVVwclsrfBzV)Nn#OqeJ;&yiZi?XK7s^jQuZTegCTAsi1GCL*Zw|G@8ldLtD|dRlGWgh+T6RpCd^{5$m1R-TVWc$a*%Qoe(Nvc#kSMn zGbNE*YJC@ouAjNqTdzSbuXme+K3+M#8eJa+tfd%GbLB0BxJUHDL#N70rJ`Hzb{KDT#9Sxos`@Ezl-K8Bv%nAs=jdyravP4)wtLJ+b#n>r}1 z?ycBR-&z-nVf(~eFn0$g#lr=Y52jHN9-`koQ7%KeLJq}rPgwA=5D}L_JTrt?{{!+u zAvJ9rMcls(dcGlA2)xdT=Jsa9k#p(IS{i-k>VDDkN__oSd@Dk|TBl47g+6bk<~uDO zpq|4nm*%BiE_{?hVAW}QUrpNL*lY~fZlvPymI9?e#aCWprQ}CS-~Zt9VP>#9mJzb7 zi3-P^78gHFTat)TB`E6?3mYfXA!@pZoU*W3od39ns+1>Ay4<@!>b;zj-5cr4W7nrV zSY?%)+u|_72h}DYiLE|7xT6 zU{Pz*`3Y;~s%<;zO%swgwYg;;B5WR=J-HOnRF}+Ny?L_j0O^V{IbHz!E0U1`R~_?m zn3f?QnUTi-sUt|Pu<(D$5fpy4^dmfIE5*+j{&9UX>@h^kp zE_%R>mGXoIB`MRl9VNLQ;Vt4qM52FHvo(pNTRLF+%5EHv`^v8E#i?7)IM$gq{vL<_ zJH*+4E=Z~*GyEhrfJO3OnT8%Glj(EnX z3U<8Tkk1&9BSvcd)d8DzWAtc2tp1X%F8}ssqiX@Kp;WyBb|Q6Q*u7f$^Cs>xbdJlA zFVlx&4jm@}S?UzoG>$q%H(9xL@iG7d0fLj76Rnx{?u@?5ylWVB(UIhbo>jo8ZFwE+ z)S6Q;&F#_ZCDmCbI-ul6trl#qqkx5Ps{cW8wNf6GqgrwnLe*egfFwPyFk>swSYl=b_Nrk3_xOCmYK(SUi-DtkU$w0q6D z7K@VuEvUPn#cSGP6Xmp|3ZHzCahy=>nD>Z$qkWnCYRAitwKdG4|#PTj) z5FC4t@s7P;G!-_gn0<~Q#5&+FVd@S>i7_j~s!85E_9-~_7QAJrTKzSXsc>jKhT%A* zCOrCE#e>11KSEc-=1J-x-ijm?r~=)~X=aFAyraKA^KIGjF=5$qaAVX^I|rD$l?6@R zy7}((b1>}l&$J(K?|>He>&q5W77B|7812u5UgO**WOfM;*K)Sxhr^bJs!Ep;v*SCq*{A4{*5!XDZk~IsCoQ@nx3S8WsMzhO!&v`1N*?GXn%WQD~aSi zFYIN$Wk-0)fYaJBq7QtqQ{`DX=_%v-rl(c31kaBMD=>D;QkTE@%qB|1_Zse{*AHdi zK}Vhe2hZ56*DbH#a;D|o{8r-VO5$}Ki*M=s*uqzzWM<{E=wD&B_Ty`u{cQs$tEC5} zhJ!xTrdEqhjhk!4`=Z~L=As>SW-1+TwmGlDYZu7CVgf25U@?gYGu5>0zcwvOZ0{vkXkt8Fuo;wG>whQL-&21kL2?B^ z3u;Y+5sb!QAAr_$lsnX#2HIGgAZ0+`XEg-c<5EPk(*5}kDA@mlMg6+#83b@nJ2|!G zZ=5q_PyRw;`h6{$nIZID?5w03pZxpKhuoTiJ`e`gty{bneK$73)hs5`{gJ6eCB6{k zuV1J)qptmLzi5Jjbs$6H1L5+*gusz5a1WcDXRik*a566LaxkE`A7VthBTFcgbMKeU z82sDdA7aY5X}2j)U%mPC0Ka8c+WS^HD&R$%Yfai0J3qTYsJvCOqTi&j^hcyxe(o$< zzN{CKYV{ehUCGjS?+nz@&AcoGF39<>YP{^H7UvHzpvWzKC!wx`yhQ{goda@uAe|e5 zq;o*b`~NcNN%I(u1iAQI>V2O70qEKJU_A(pyz=a`lksdjy34^fpUUl?7-J_i)`Wo5 zd%xM*?GbSi8I(b+;aZD zNCJ3hTvk7dMssEdtZz5}*HqBZ6lm%xi`SkAcY1K8&H_{?WZ} zLg#nnn6?N3V#9x9ri9|!zN~$@FzoTpTA?LWTw01f8e9iQjK6*YjL(_hE%D-9xN0`l z(6T#FaoNjj{@cJnY4Q8}l>={lDm{jhDk_a~=NRrgL~9luemExLETnMYob!dE36;)r zH@l8BbO%9E#_i;+&(el(dCA9%^bh?eDb^w+L=;M2Z1`hDGL~yG5)oqnZWcs$iltg9&`trH<^I39szUP7oF7xn_!7l zhPlZs+)KvH#84|(4uV&D^5Dgds1TLKp1)Fq?o=F5Ux@YJhB@`G7QEYZOxucYUc z%Hh^a_OB#hY_kL!OT+aNr$Dw4m4;`%m#-i+r>m(WA-0pCXx5;`77qb14t zW&}3`YdM%j5n6^^h!8y>AbD`}VOCtv#BolFe*B^Y>rpD{>hYZ75GE&dK0`d4Wc0L{ zbSsfZqh8NCc>RT%{2AFOCfCxtj}p{7bl$*p6c&?j3c$E0^t*`y)ajAl9RvF`uj*rB zJd49-TkquF)u$6mN1c!xKYe83lAFI&Ut|j(H4fM*B0NV(mjm0{AMq{3N1%*RZP7ga zt_ytu^CJkSf&ouPbHnBj$Qag3BkhkWslwizr(zpSiUCq0fDg%1YBTrL%=W=6~wdT4sPi|`L|vX!X0AK0FQAsPwxSdm5&y= zaxd-lR8td@*CxJAPaAmsO|FI|fZccssA-GyB-zy85-bfHl}))8CrJw_Xg!_2SFyT4 zcm$s9yS-=Yd4Bq50+pd?glA-wr&QNR5LP;xqmNVL3=qep$MSi)>TZbg-;;Zx8-~1k z#gl7cjO41Va`|NIxK0$>vX0v`D8ha8hJV$sw0Kus%Jq(9(RCwMHg!q(<@mPIk3RF` z2q(-fFQY-7rZT?s0+Inac`ff78_schiEEfImkFP3E*BTk0n@eLoVT<|YqOG$jd3r% zNlM7bs)Li>LP`~N}|djHYoOBw`{IwlHzj@et?f`PFmbJm{xL|w4~w)s7K zV+Vb$uUB#EHF7n0m&=Q<1zO1vXeDD@{$9y3XeHS?nvjMUrKP)5@?v$H6`>W}I~_3| z&rIw^1*(wdiBQMpTkW*m~_4NSL7NHp3`V??4VciySfdhmhr&un}wy)#-+ z$jn^i0Dk?2&}iD60v}k~q6aBbkAX?o+agkQXcbN0EJEiY zHjK(Z)j-|MAi8l8oQZD(?bm>?CNuwp{HOqYjM#{8go66R2vjMS7^VT95-Lb!G*koj zTmy<&=Ns9r1YxYG{m@f~Ha-LTd$K4E{t~qNkLx1qPJr}aE=y0mZ8t;n0T}@pDYy<5 zrXnp#i5yXI-{c%zl1v1*shFSI&qexlc;gf`*jRd317qAwjCI*EJIqgxX?Kq?YC;<; zCq5>|Q)HSD`aC_>TiK@e>%r%@os9GAfQJg;dw8(TTC7aeOayFb%=*P{D ztAWgZrIckgzMkyWg zo|)|L;ljRJq&oR&{H-v(kG#}ir0%b>P`5L+&-7nF+x^w@x#ODYZ%R>Gg)*EWDs=<< zf*HIk@>-IH%sL5_kd9AZwN*}$1upLG{77{tjpOp#5C%!eii0+)xl5XY!E-Unj~h{bEPQ zl_GwH=^K75u87V9+(S#3*p8D-%}?pIE+k=J?&BUQ&WjTaPJ1J80+}iq;q=SeO*0F6 z(jwg4V~*X^mLcqz{J%EY=ajq&kn4jaH>kul>HF@NX06VX-}@&>a#|Y@0T=j)XjWcPYPe8I)yg@DZfzez^$wE>36 z>rqpkM9>k@)%VL>ezu zJGCF@>-gZ#5$*}co)bbqh<8&Z#$^=oUIPgQk`m1@CH9rHX!J`fZ=2dgIUC((<*U|8 zT(gZr`6q8nl2cp|@RTDXOH0%27)tVo9&##O0Y<9~AH#Z1KvIH};&_oEf_}mZmkUzR zw0;>##W3&yn~9@X?&cr*&xuz0L;QqDOy$qTd7*{Xn}BL_e3k=+^~Bzc3|J5dB`4urd39+-KaX zd6z&5GJgwhUq={59Q1yHfFE843agltUz(8uoynpo^-hd8$Q0erbVHFghbbXP5ODd) z^N3DXZ)1Yyd4%D!AlQWnG;-1i!J4lQr`NX}Q5bs=Xhb_Zlja^Nu~`=oqZ~)F!W{(I zBUA7!ZJGF~tX6ug_SJowrsdS;4@TZL4(t;$xGydJiFm3J+KXVYZuZyw>v03jQqQBN zKsNXm&%!-p9Q(ch0k*?i>WfWxG8N z01XoJ87A|Bun+k7k#-i`L(z^_M&N#YsFD;hEJ9c2`|bev4o!_x()BrV=e?I9Fa**= zE3`l$^xl_ca$a&_7-d49h~xa2f(8q9SZ?&-Md2bgR13hm zQd@zlvSj-pCKq%beLTogp8zJaH9A^5Nw&h-Ion21^9~w^J{4X^|$HN||?Zzvl7fo&|ro;%U>W*}mZl_IotCXwZKL4Wr24@ERCi zxf{|JePpN${7dZluB>pdkwL(8>9}?e38ls?%lJgh73bfZ9zv6y`!FbtL!*z%k~#fc zu*66IVHQZ0_}5tg`}Na*It%F8Cqh|(7~fL7EI)EEa%Bq+r_zPIM5Ny z-Mptg^tQRoESB}0k))S|dSA)IMFV74i$q#ws)Vg{ER#p+%^cnR+|!Qln}mYW%a6|< z1lij7Gl>1ATV#M!TQF!BBM8f|Q(}T(JXfB_qJz$VPCXO>esV5v<>fZ-L887a4cL;E zx!AOkIxAYeQ)GI>5-vdA*n4LzT0^7zbenDI{xA^}1r}Rik5cV8uh@Xo2la~8ZTm#M z`&Vb_;*_ps1e+0L)B)}_KG3?Jg#C0_8b6+M>a0$g_)94G-=ja+`GRpYb*JygX9$zO zJP!~6?|W~qkw)vgp(vX)058Lt+(o7p!PdEoPyrZ&rx=uAFA>LL+(#3-9~WGz1y8)r zLKNo4gqlu43w{s9=ut_Y(Q~cU)B{5x`0-2981%ijMLG-K;2>K11~ND$)q~luqyq*A zK4gp87YIXNMx?9t5cXSkAia~GR;}h6Z=3j%o+PmCM4nSQC8VW4#%Q6PCPT{h9sDZ?An zfJ#-{14;$V0+xYaX^NlZ!e94 z2SWnZgR9NeVi>+Cos#EG*diL~%9}WzQ%C^P8Qs(>wjAYPKoVyX=Hv zLMf@g(=&b-oM2Fmzvks|{{X0?qo(2o410hMM``26EAX7h@}Cwr1d8%wPfsUYP?tP& znZU>>i9M>7&EB#!(=!nQ3IsIxp5rm-ApVv3!=$Bbt@3xOXwu4Mg6Vy^M&MO@@-D;V}I2ZPSbR6Cke5MO{d)lhwQlX)wORH^;ZO_syF@E>Ee0Pzj|4*fgk`IH+)`N~) zezm=?MkL@isFGm&;YgV!a4;@fV1xzBK2k~YOHe_O91#=a>~QfBOa;^hpt1sWGN`Q7 zJFf9EQ>Xc+1u0OoMv}AvIRGkJEdYzIoOf*01m0dhI|zeEMA-Y-nTr8%1%W5?X&H*X zAnp+RBC3`h5Dwk(xzXs$tzW^&f#FaMh|*CUJt!hz$Vqvw-U@1Nj1o2G|1LNVZuopx z?LBcHM*04xl!ssw5T@aD-P-JJGhMbAwleAXEU^|P3Y#Kv0Lma(It82=Q;4nr5&8Ql zTV03Qq16K*j-8sEdJZ%7cLP_Svn!o80s!8GG z(C4tD%kiAcj?V#EbJz;U54{P%l@nT3#bD5;#hpi?r1(lI9qz({l8;36sa0y-W3M{Z zp(+O8Nszw=%?Mus{su`^KvuBT7SwJ=%~v!Q47 z0Olzbq0vH_3hsy9?GXY6OQ{XWLu|~b=rL(iK*c;hvLp*oAj-k&-zgNp9LC>!-Kw=@ zuP(3>G=JIVn4dgBgFi8BgFRV- z+p<6&#y#bD^ijeWP^~LU_X+2J06;1I_;=w`-|NnaW+db)^TLBb5N>jBjnBP%j?OyW z_jOM)3^0}#iI%mAn6{%U=W>o?c~6o&taX?#N4ng0#O#f&81%&Yw> zJVLp4>*$N(-P?3dSypCo*@v(-m%&{mqn6px${Yf4?;nRDB9%Q0lnvjqrKCHcA|Fsk zpvVX0YcLWCnPWq!s;)c^1l*j{~QIkE)(=D z-7aEIAr9hr=^>7nn^gRgNhsKi<0`Ais&nMAyQV0-j%dfW4he6+;RTB^Xz(yr$2x4Vh zNFe8syH?uQW8u^|U$6?`6TvEo?X5y9v7ITxeGrA97)|GLRo2VKn2(VRe(B5>E7dg1MTuJ z!Grv1!#ovVWY7blVjbla&cR}OZDkX;YFB#H8^>$1Op~nCmF^GC)0NZ>Y599d#WQ9i zLv2d%{X=jgoZqq$jB?G~L3n+nr1L_-Zl=EfmO#lM%!LoXqq};etCG=YdDz9jVrzaq zKbzI`K=|rBops;PL`icjjZ#NSvOaWRzM&xeq|>lZlt1^lWUlroD#6TdW)3t~g>avZ z5A!a@a{}Vh+zKLN&T1k1+Z;6kX~(Stst2vH78CyveSjVIgTO{Y86SXouppY8JVcI@7MTREqs zF!?NaxUhjGxc@3yZbVVKnBqGt{3NmoSm_beR$ z%$|K^s}OsLvbFan0AK{BpNtcbRGNw6eBl6RehU0Igw5fA&WdEt@E9kk7F(2nKM}S; z?a^Ie+v$RA|LxFW+(pjDGuuVwnMUB*UQGmCfc)JRsrty4Zcv#ifXa-8ds4sK4Ma~s zLnK(_-u)MxjVwK?-f>lKXEh76KGgCvMHl9O2{}9Ckvb#^WiT5lWxESM?T*s4TU{z@aapV6xekaVlrNjf*i>r_RbD<`&l#$=J;CgqvJOUG-wEZC2$;I(IF#mWuOCc|zam3B8vREXiTx ze3~L-fA;=;3HQm*4?9Cd`2+ZLN_IV;fnaIF!%gnG(*yVnC~xM;j93jmPj8EvGV?@W z+HaZ=pr4s`(w8TSAIPV+k3Vwe17s73dbTK+Gqn*{{$+9lq{y9r*>Ax1PD{Rt{g3($ zvSV`0e8b^*T)Jw=MiyN$O%Wf~?PS~Yvy!o`HZCVPbmAnU#2g&nZRpIr(6b(Ml?1=| zU>Da-J|n_t@>HpY0@zyKz53OHzohJ8bHFCENZS@I=WXTeWqJON-0G8guzy=bLJeYpI90me1Gb z0|W(Yc#ka(Y=`iYEm)b+p7| zGHs2Hb2K;FezAThF6d!$#44$|G1TZ52aT0UjChP#TYa8nbda41lSIt967lbnF*_#c zFg=nWxDom$$2RoB&?Aglt3J{P>$(sz+qWVpBXx8zi-0tp{l{jY-Y7^tJQz@?e80mr zJVrXw$c;M32Y)0(0jqMNQJ>r=&eDVgt1KUU-`af8jR=Z*vh=AnGmdT|pG+eAM6nWv z2K=*!RRc`AvKH%!peX!e{%r z2FwVFOjqNM+N70SWyi$0zqp$SQBI(<2v9fiU{l43l}|;{XsC?>YV&iVM}E5VJRu!{ z{_-h~37w~SI|%}(Zad`DIW^%v9y|0LaZP&n0QDsqH(e~22OZsJ@z~6GY@uvelC~uq zIJlu~4jek1ls@S^Q?3NO_;eE3nOp4EgZoQo@ylI$zB){^Uye;W>!#>K2NdM#G$>CW z2YI?sp#_g7of@ga!onI>hZxO$#|+l3^=Xc5dWBUw;rW2KC4juIY%wZ8UAwo_Vh6RV z`m`MRzDUh?>sO-llv-zC1M7D>78MI8g&C)oI`*}J{aG(7>ooky?o!dBM}F1TbSN?# zs4dP!uH`BhBSb}X>`>2{ocLR35dOz08nS&3%JLo)$2(P<%{Weq0%6if^ zv2kM9(XOPg33>iIbbJ);L@JY8?A|_*)H7-YoUFMSz`4Jh|Gyuf{%?5wA0UPHq<@VR z+8oCJW2A7<(n&g%4Gz?4H3ZLd1x|fdVo5rwO-3eMp{-qFAy{3dF#%z6f;uJw&1X8P zfh983Eh*eH7M5k6V`v)kCpY)3J`7!#mnI|3YfW3@a%EY=Xnlw32A&l?SKd;M+fLgV z?Ys2o2&J)WQX-C#I3ps*5@w}s$YpwFANfP^#0_}dV3(Lg96L{+w0V#2mot|JIG={C z1{XEZH4qlHZ?t01w=Z#3DiqUv5t~FaTH8ROt1XBs^n}zp zRfE|j1!fKcZhsaJ!zFR!x@^Skn$}I&gnsIQiw$ALAFgW799Z>;HRaiEO1R0BP@(Wr zFYByCoS2=%J99plgv=0Ze5V??T<*iK-VERUZZ}2t9h)EhciUJao%qzB_@bi=3+cUe zT>%@6W-Ie0Bl(*Tg5H0-L#GGd=DcAUI&KN3E{E-I*6apfy=Kk^+nv8CIC z+#h93lD?Xep}cS|y-j1wtiwO$jc;0_YnV#Pk#W~1pwGa5fBCmQBj~>X?Zgk09DDv} z+Hu_nkVG4KH}m>ruK=ICpOj;!3?S|UUvPUDSBbbz{GO^ITL&p}c;Q0Z^Si@9`Og-9 zi~(G!D(W?7lH1U2w|Y-sLB`2kj|%6%UQ^g>?z6b2ygp2wS-OiE92L{Wha~5UN4tq0 z9huUd8|SA?w@C(ZTlW=ci^n9`vgI>^^m~Dkr1D{CY?sGlb;wCgVW-S``1@&isNs-L z`cLoK-sh6BMbOJcBx67bJs}?LYpK;;AJO>y#?k_HPQmzM%P~fF-I5_X4@={urj$3N zk=c@t;dx3Uu!8nR+Pd7hD9q5QV z^lsJkDC3s}jn}5ycW$JZJy1^Jh;(syKMfIQrqZBfi=f2=(hMeOFLSEhT9JIe;>)kX z)u*o-62fQOI=eQPS8|6#!{-C5b}QI17WZCP^K30o-E*8vA}gd9QJQ&ki%--r+5}UFrlS`9Z{)+7znRiK zsG2*xJ{D^~Jb;Cf`1Q8Z>@z&~JK{%vIe*-+ulFfHQt?;qFq!!+q6@#je6=uvbe;&X z=s?M1yC(7=y z9dKMFyWUZ4A&`vSOwOcU>9B1c*w+B_NP=xXYzWNtk98BS+S=u&v=$~o_58Q4jjWfC z82L+DrVlgS9ZgV@zkZbKIp4$!B`H}a%{vLTNzIqWZ>ZCrF_n{*en)%>gb?zkG+kyJ zH=-Vla`7kjr107?2B)F)rI2qd$*uc1?NLfL5noR}Wgoey8V5LO?h%_<*hXImo_v_e zWx9yoo$@rbm{;AQqxW1oTX`~pOs^&bKSFUaAfAPI zdavT-h%+YFDjsuSZ4}9w>bHolk&ADS(oh-7-y>XFpD4HAn7s0*^mR=p4Vy#0_`0(ug0cu_k#}{%Y zrm*jKt`sv^r6uGqPA1zUutFs!AOyKfl59&^hdfj;Xs+f3Y2pT{uYU`TJfd@Td%v<% zja$+oH6Ytq4iDwEupUVnBx;W`NW=k#Kdu z5_{|esle&O_fwyzvRDRROKt~$3i(xCIAhRH`9LE2V+MR=cEgXNB}wBYdPN`jJ%_75 ze^-d;9O2FiuPxH$s~>XeteImH3SVXbNG_vhcUj_wPrIDOlPA}MFhkze?w&Y+?_Mw* zbW7>9^AKUYj8BcrLxn#MJfnFoxlO}H@}6DEM>Cv6c6!?gk?)Zd)^7*NLY9t9gF-GS zXjU6;nY*PNY$qj`&xSvnGy@~lQgSoG=D@^DX?u}PxlU^}OzZ}1BiTB`6t`7_?JFoS zTkmD&Z*t+bL2c~HkaM(~EAhq$9>-%bp9-h(SHFafy{WLt(^c)Tp?@QCjLCnw2z2x$ zBK&TyIDk!>q*GNjA|E8P05#S>|D&DW=}{*6T5VXTu{i0)ivqQql(-8_3==M?;r zqoqEYwiN{4R<%ybt_w%aW6$a2io&85sbVR5RlhY41=71K>u#*d%ZJwApWdVl!xJ4H z^pT7q64B*2D#5}Wgu4iR5z^Js^6?2=N^Tm}qy7}M|Cmsc?#3*u+LBS5kQFG%#1CnS z$4md*e-iLipS#2u;S%5%xK*?9^wn$+yFb4gZo53Efbf*I1YY0`}G2hBRL3Y(N;0m#KTp}Fye=$o>k=;giwPA0 ztyrk3I9!|;1N37YSE-opkF%i4Ln{xve1qv!es&S7&XF@#ycQ4g)kUN1U)v={Y$HP*~oMo>c__!X;W_#Es)L|#bW_y(LvZ;Q|q+dgl)bD>Orm>wS)5?%+;3S!#ish zzrV8Ruvw*Oap>H2SWeQ;+ABNTi@9!cCD@r5b2JNYN}D>EEOY9Bvh=ceOp$%iafiiy zN@S1CRo-MNN3PF{EEiuuNgU_~fMz1gG7#tnKuFUnV{aLKUA3Mp+HPY41rE0^;#UIR z1whtYImv6i=^uiPo~R{K)(1`Bj#)B0JwUwA%%lkJTf|G1i&eC9(A3#?}T+KwtJ<>$K6D*CV+S|GK*0J*&{U~sN-uCZBUGfkgd z4A@k%tL*R>xAKq(l+JFgU_1G+r%`fL=`~yd80gWA6=X|h6ImS4bSuLX}`vnF0<8gT~BJg&JEaqNX`VB6-rU` z9;+7w;Lk;Fb1i{lTBYEVfV|Ty6AI*@;l8ZQ!+E5iX*HYPM4Y=4NUj;OAF9j+u z5wc|MG-*{pPb#4hwEG_&TIB#b6b%$QMh7W?N4f%)cO=>@^MuHBWU|*V)n>z2)*)&- zSeY81N8`vPB84{q&1A_aBpJ~H^E;A;+A3NY;q6>3%TktM?PREP$}?BXJ8itO0XyaG z5%g(rsG)GEqV91*&)}Jx_HEC-><0I*D!lldp)&6yc5O9eW8DScRFq%A8nB(+eBnlG zQcHf;-DeLjdF9Pggp8$_uliZ69$4jnXyx#jL)XR5{3N-k>4rJalO`AQ{&Qu&qV(1& zhKd_ncN}bLSi6?W;#1^`4nDm{r@j(6cWH43u75pm`wgf59UcZsZqdZupuw#vlBI^5 z1kq*Tky3R&-E1m-4;6DSkT-Qw%nsAASLI0OF>jbq^@JsrRvW4eqnFvWEE&t4h7^!&JSMP2?>cY@V;H=Mrrl>ku#H~-O z0vbzuVn<}OE%@1h<6E#9`Te>!4gGFSFg|vXsNZgLqSMC201BsjG!WyW8*yM?7SxX! zn?)Y|OIhv+v{Ud|xB(}H32@{tfFtK&8!L8380N;uK(Y%05M*kBZo>B|CK=KCG+#a- zr%)RH$WtN!njnwioD{rpf}l1sQy($k&w4wUu~RKI!=-nGsEZdyIM!ubE)3{8Ej)9Z z33wYMdE0%g#h9>}l><}trJ&1}>nR(Z5BWJWqV0E&xvX0{PigOl@T<<#qa5AomMwe-(SHweuPKnGuE6`?TmoC{x&Z_#j!bBX>+v4yb9HwuS~3A&hVKOpldJ*P&?Y8vN`We_@cX{+%np~u=1p;+P=-g!6c?K z73_-LDw4>KKY)8`d;zlv=MIyA3710wFkfZ=&Pv1zHBpcYpnAgPz%+S8~q?l!(mMwTbmBE+XhPwgEer4jNPa82q)=&nwGPhm3p_^s)(I! zLs&m^dd%8)#+sp#orN!zPPJPpj+x8waaXUBSkT7^_)}cVg6_KckQc4eVCKhn=VJ6; zUESk(A3?%&*z)if`L@eNc<< zNcyIWlodS0yOa%*{P?4PH2F0hS$LcNq4%;aJ;#FT(oahGE%!=qs{r#v3kfGiO*%nQ zYoLhb-UQI>j|BLC(R(qg_UTdl|4NJhq%}@_rArLJF5s}rju%aCM83Ub#YWL#o;ujV z?9)-TQUYinJR)ndKc>xcU>LTck6T%HWZm}Khh_^EDvE0GbuW9?)eJvuL;joL`j z-RKO@*!+-zZ{Vo6u#^R}s0SY#E&Q~fuUDsgQvZX*I@oeMyp5D>dDMAFt%EEu-#qg+ ztf=9%W#$K@qy?jGL;Q|&!~5%tYn%P&MK$!;H>)feNkLO2Vv8?^jzGd%6+BmLtL^ZV?gz5=_`bf*?bF6#|XiJAI~R4+1TZ zP!u?nnEG6X)h*-?vRHw4_k+S>+yMa~vDS8hNXDnc|w z16M2-1||`QI&wF**`o>Ny9TB7#cPRHgYer`Em>dQUpG5Y(!$cyjJJnXVKNY_m=c5V zMGxxrVzGw#Cu^gLtV?Sun=xOBbIty@!VpeFerpdO4k$0qr;5U(Nny-kB|H8+nERc` z?>LE|y87fJ6!QDnAjC@W$YS^$$!n@<0_HXQMe1plfq1Nn{}!le$1MC)W&-DiDD&yL zlCe)}JVS$7l;{Cdc$-W5nW!nPXkoh30W+VK@h$5?Ps)na{r#pD1;{h~GCz*Z{S9Cuy54H0LE z1-d3YxtKTB^KOWMj)tG}R?!xPQc-P=7mxYOe)+r+y%ubnkk8#mjYDs#qka|9S$^VL zy|=`njZgDjZM5Su;bI!{UsdIsz4c(zG$Vs3tw5#2`f7COHtX%RhTe?Ai7RcRTC0jf zdrujs7SKWxpslYS@DB_vJ9|n`2$!?gKEYqVvpLTynt|Fc%h8vi;$&%74DM9?lc5Bf z>hrd7`a$nd;z?LyX)`2+k>{aR*ifKxQIt5`0_n%vDv4p%<|x<|EO9gijmkR6}+yn}k?WH;0mtDNc7*jvsbe1)BJg=C(e z7KyR)fhu182a|5zJz4hax!cIvmsz*V*5(FhY7fbvZ9L!#v(Nl2Pp($4EAqK4_&fJB zP1NP=Dy8~?u0jU88feSl_DM9*oDg{Vp704I)P3quTO}ujW zz!|iY{*aq8o%cCShzJwwUQ?f&i(o($Ui1r$87uAycjE_m@JBSfd8vSv}IW9Zh z2&vaE;bz`nYSvp0uM&Nn{AFUS<5U?86n1X-pBJw-Z^XmZBnK8b=kfh!76C6>ZCwPH zr@p879c%C^@f(?H(Nw$ssG)D(c4+QapWuy~T=zQ(snV7wFpt(%!RF~29eEI#2@Iy} zUjjdz>mX>3IqKw~)5dAJ)>W1&e1GxG;Assa0sAWJ0QpyRLJ z5y!}L?#`GcD`#@Nh|LSUCs}idMP=;x8k+Bz4N`(Wrsw%N|f z#D%%k0-dU!y0yhkr@CaFRiB>{F$MSqrd_i*r6qbUMB4U-5vQ&&Io46Ea02#mD7T@l zlhO+u8;lXr=$k-_RkYrWry;$1w!1dpkhnH*fWPV&7lEg4CqR!dR-HZ+E()Hzs{i)+ zWSOVizFlUxOOrIWt2U9ywa>>Ey0<@Qv~co2R96dNsKMk1g*xi=Zht?BLocvQE*SeH z8xLVSNe&ll79-YX8@%d256;dD3Xf%GRHGPicLI3be@)8G`#hyZIMt0=0xr%JwY1Ye zQgs~{!ktAdXo*IfnNshT(j8T)4ux8YhJ_OBJKeAv`H#(Wf(R^5VY@_cv7=po6BozniVvkdtrdJpP zz3R{Nx_MKZDr$)=^ES#AFFw>DFJp-vFjH##3>Th&ZIA0_^`7+%J5@^@qd6aZjl>T& zA*0(IfdIUulGvqZ{c(HkN3$BOd6X&FkLZm2+`$9Zm*yoClCLk`yT1E^huYioi)1W+ z)g~>*-<7aAOO0Rlysa?0&|tY9|FCQ6oJ35kDUXVp$4=BPp6lx7icJRQfy;7Iv-z!n zmEJOEbgnp9F<3ib`Cd3V!`g*+x5Dx!X<_9yte2;aaKEcLD z39AX{;VTnv3Zpa^hE|Wqv|FE?esYej^ZKtPTRJ?v^6bgtP%Rw2x}<9^d;dS`!$61Pu4NAIr=Z z6%{rEN&fp9-P<+|Der~gTb>YcVV<-#1P3ULE&Bj$Uz_Vo43Ui)!CHh=h2q-zbI}Dp z+d1}@gR-U0r`kr-N)gW6a@Ut8S`qUfst49hJl0hx3qI2lwG*fHNI@xyBX4?dlkMkk zc`w#vmgD>+szO~F3p1T(5xNvi^pL5OC-0`&c<2|k(@v)dcT@Ly4Vf?`>GFG=kY%>c z2!1D9!D|7|$GTMQ$Ci^3G7Iqv=D_gG{bL{X&5#hZcyfoWjTE;0Qtel5qzKsDS_HkA zKQ10e+WuzHuh*r<4Vaaxf)4l6rOS=%vTWcF@qjsXgoT6I6ARfXuLYQ$F}z|f%IBeGY3{&qaGM}c_>PppAa=udn%5c@tQd#dGRJP7uWk8v+u za;r8YShqc^km}OQk|cvTG}{W_M6Qgn4|g$kP7KYzU0cgon9mU9&^bkp&6{Hm=f4)E z3Rm6O2N(<7X^AMeo70&MZkRBqz@lUzjJu-S5Xza>qDHG)8f$l3$ic)+$`85xYs1uk z!o-*5Fk&84iddKoUaL2s^|0UCHWpjbyI&QWkfP?d-*;&)b&I8b9URwt$NKkOH}^ak zuw6cp#!PxjoX;wjjkD`i+3p72(H*ye9x0Fgo8Blr(iV8^9m)?zoEnrzt0~Q=3j^U# zMgVSjEsvT{@7-`)DBrD`VM$g?l}MH(KLIw?Fm*63p{@zJZAQ*EF%$gF>X;E2^~GEe zo$NAy=@>aFUDmhRIVnr%|2@9e!}WvDs|eTPIdrR$KmcY@tZ`oPBEHt5l;AyU>V&-ywN`#GTMHRg%%(Y{BhNb5A;IT8e88?4c!hQNP zw;pwnFebJv1@C= z^-fjK8W;`h0N3-W^IYR?-W@YP|Eb2L`mU}UTtDaxltvEh{7N)bqVnG&U*Wnoz#n#X zC7cDW+EkMP^EdOY?amJ7u=r zR%ucIK1tM4$!7Nc^ha2R`&gVtmd*|h_?bLMjo24# zKtgvXq{>zB%;C%3^CfgXU^Bd>+^@m92KJG9Gim}84HUkyYSF<^`}o`~roy-&(z`}z zZY`q<9CL4a%x%qI#cQ##=ztw&sb;2Efv+TMk^}fcu*a-J8e}*Ydp(FvyJV{Qv=Tim zYt3478|ZSIu`Dir7_6yPwBH#B2-tc$oPt65g04$g|AXp>{289pLl#SSR##S%nrLK1 zH0Cpu8&U$)Zg~$;Zx@K}I5D}a_)j;&%b7cN#3W)UcKTsM{y(X%o4e!($e*yy@LLUo z+zc=2R)T4O*txE2@zZCWq@wANyhlhYs>r zA8^iG`{SHxwZLW%!v4&|x&!7T`Rd^29P#vj_iw=k)JsLz07(djpxA;BQvH9}d+)F& z)Aap&Y#>d-RX`e`{<+dF6IEeOIvWT_h zNmWiSfn8KL4+;h9Z|dqh?eeyo!@A!wSZ;9Z@-&z9F=Y!zojPU}atV4ge${0yC)d!6 z7Symxdg1qHy3Lk|?FN_+Nr=j-sJMDISTA)nt#tB*P3L)519q!3tlOjwTy|rc%ouyu zN7O~rsd_8pBKb23wz+C7#2ePJT~h2NYtQ+}tJzvBwUr!t`u6oc$ME0)}r_UcaJ^7M$;48bPtBzAAcAKMd{4UfS-{?mM&jujvK zBK%KyTC~i#O^NUoSBCHZb!&RH8Nuh^hi3GHPcsoifx7*|Nr~b{ISLR zy@dUscCLuZlY9+hJ=eMS)M#Ac@H0%tYN%&PTg#Y8Fz7yukWcb}V4#$m*~F5SxB+{T zPlmo)BK*G~!gv5o$Z-f0EFNQlXwkN=z;RNAMhhUMfSt+! zm*oL>YQuks@`2scU%!Sa*+8W#9C%NMRT*q5f`R_nXSG*;XkGm25(@-rt1@A*8P-`L zlbFOdRWPZNx8OT&e4{UQ!s)$*eN7b;>`hL)U_B?EE~bZ;8eV2rrsHc749KD5Gh!Bs zP_-k!h7!ik%1{p$G9_gARrL}Nc;j5P_FN-;24tVKND{};$5 zC`u@JcvLk(-G0-4UqlU1$0GA&+|W0m~}<%MUjU2$dk(opAV6iLL+MOM#L4id|r&>1$fw*FZxwd&ODjnWA zzIT#;c(=n%_Ty5&10*RkxkyJPFoi#^r-9jPxaPWd0kQt{=)W+FKlixtXq(n(#-2tC z#h6#oftff9UQ1z8R;Mw%fB&3pVfO}lJ7I$LzouL0*zr<0aASs~?=eGg1(J{(@7_tJ)0#GGBWtK;&tTShNy7*)>255-O9F!k!b@6r%Tgh{B-o07H_LXyg8oC)HWj(qlUEzG z1^S;7$jGGVF3ok9@~s0#EK2%k*E3R|X`A5rOI2V4c2+Sf~G( z0)?+@jSFJ=M--@UW0ngMCvNMrht&_B6b$6l+ofzpV4~ww1vi)hJ6mf~Ml3`x7E8iM zURC{G4~%7IYK}rTR~EI#mcL?WzN+CX^tcRfO_#21u942@Q*D*_Sv{hrdG4ifP}Sg- zcamS2RjsY(S!%P_%_w!|*2iho_>4I3o;V;_gx7B#7_YkHNwVj?nc^ zS&d}ykZbdXWPSlMmK>iH-rgjU{Hc;=o&&LIL7d@tOP}TH?m#fCsyb&KLti$Q{>UI@Xu!Pa9`;%tC;>LT!9|C**fg+ z==d`ASywVyb0xu1Qo8QM0P~@j#sRQmfJ?se+tdSV9R^d6$j*Yo&eQjzamW{khA$2o za1<4dW}d;(HCkMl`X??fz`Kj&jU3%9zv3!J>)JMw-6p2$aSeOy*UI^Spnilptu0AY z)PU1}{iWD14Cbz=JTPyC=_ArUQC-f?J6Cqi7x{=~BCU77Q1H|L<{gF47knP|&7EWs zjXj2gxldO4-{>SW|AO^f@FRgwU zh`<@tn+aB5Qx+9#Yju6(G(M@ryi#%Rr4N(;iT5{50-@9l_ko(}S$PF(p&;#-^`a?a zT}r%OGd07Y>JR$1wd{OcRMW@_XG`uD+(@&!N)<|q7Tu!1elo+kzNVDA2eG9F?6k^~ z4!3~M@cSt3AGK8uhtAf|nN{|Q1QaA`o-C9+PsevUAATtrxO>2j68ePv z$3vyu@%B+Q4*t&i-D3N1jPdJkCGR|5c>IJs>*rytjZ@@D6`1~gM=t~XJ3Qnadn+GE zhY!lryUy9?KjS`VfeTLp4KDbPBUQ}5PohqM=h`1UiT-H+fW%x;LXISD@8Fn7$dB&e zwHjZB%w?gVf@-+nSF6P)TLjJp@QLfPYgV+>vD6xe(a?$TB6ZxaY(Y3$s`P7~u=u+j zaMW#H|E^_mBXzcyMl+u@fv7a`uhsmrz~MZIl*L&%iwgu;lxE3=``r8?JeB>tL+=-~ z?DsJXJ)jx>>TKSi@`qYvfEMjoRuR^{cJ229FXwKZTW9w8hgPUIqHqH zUhgPn&u|tPDUhItz`%mriHh3^$7Ix%8ES~E2YmAo!W>+rupWS?pVs&$;8esB3j!EB0u%NuttyVd$auof@`-X4?(94G;x)U^>u zolLTI*|#8bxf4eX*gyCnMZQmw_c}Zw;06@@U{V(?Kz?UW#l2w*&0NVH0Z`c9|E;yU z-!y(w|I%oN-w)>yf^w+IveZRWK|~9DpSV^bLV- z?qd2f@#vW0@iQf&!w916d$px6@Tv1R_vR(YkF@Vjzld?RYTlinL~zDiSg|A+HGn11rU7YvdT6S21keOY$|VnJU;kR)Nb06I{0vfjt6`X)&;SLU=@VyVmv zcr35lA3vbRcluX-CZJUle*>3#3=sm@{Df##a9UUD2jeWAgz3H@kI?DI$eL=#GD|4| zI_lwQThT}};N6=-TP=&#SFwnPg655c?n&uL;Ey0vp75pyvu{ideO%U21jx9#jy3Y4 z1uJsuJVR*PUv@wY8jjeuUcP@q2n!caBJe~fLY>a~kaY515SF-CsbPlSKj52 zNCg1d40X&+c8LoH2@?)VVxI+|ZP_ICK@9IG7IN&b=1~7)?f$>NA4&u-3kH4iVbT>2 z^w15|V^6YpZ?s-hWr$uaI$Wovbq4m%dOX@i4fFe?b))7xHOjhv(5)nP*SRF2~HSoziu-`+vi%iLy2qk2*( zxDI*Te>rWThbxsiuf}(t1)ls}FRPiV1%p0*7l#3t`TcK*QKB!_`&HD_=vdK6WeK*V zIK<2a5B6_?0ulLwRmerkf%`T_8jcpkT7R1$f%lr%OBis@51|8$iH%D(Rl3oZ@s$%K zrr#98w+0%kQ9<8DIDB^yH2vpY>n$sg<^V;VtE?g)XF@n06&_-iAEio-(gjdf6@aov zU`({}gOBDO@M6~mARZ4`&Z=h#uHT$jb$7M-yuV=$n0B#fW*SH9Y{Yj2T;2c(8PI|| zdQ==HWAKkiNQeA0O~&uY_D=u0wF9oIi+`6xjtI%@agHuo76E&FbXc`Spj;AFi8%3G zIIsm;GEq0|vop8=1JO%4Oygl|Ew5y1UfZOJ^!Nvk3sZtj~3! zPX@*9^Xf_f-vgCy9Ym{d8Bo_5cqh7>IG$_lGZJ|h!CkaojxY8EtMu(R!gADKo!uBM zgIKEwb~t?%%qM+I^-+gm9-TI{U^<(64XQOiP!gFeGKq!whe~6B|>`f zhG1)`g5^Ezm?kJgw9hQXO|xX|rQ9WSFGc)Pibee@zUeTs)bn-qi+BRiH3zI$zi9s} zqapoMzk>5&ZS>28qG8HB0c+F+FP`nwh_7$jg~Jse<`Ugzx-xgB^&-%(A)N+i%|ifQCDG#oD9Kbo+C z?=Z&FvHbvnhK=AbWra+~M?}9_h`y}^ zVCHJkjJ$+^ey3#{vlT2sh`?_u^zglmPM)PfFDDjdQA;y%=_8gLv#!}~=hey^wT-rB zsb=7zutj2e#F56%1OCY0*^x7U_Zt4E0wyfB&zOIWN``d>bl&S<{WpNW3ig?wJ}Xm( zC=iiu>#**OJQ4Cf^B%a2@9DDdT=(_fvk==cd+t-Hs?hH!Q~%05iM_WGj2cJUuTUE( zq8}9pN7csDyi*v+cwa5XNwmEap9?1;a&r|`!>$eCRY4`k8I~*a_1BAUXM_sI{&|GTa{ybd zx7YV|*;80l_00ta_9KKdS_2HVdZZ(LZ@fOS0-g=rJKxx9 z*{(3?9{XXMlOS#f)0}AdHB;`U0YnCRQCpV{2%sliCts0{5nXHU^*xzh;;C?ojHm9h z%i6+t=E@L5yPxA(r43#yb3#$F_dQD*^y9@cH_CY~ABvsLH8V+EXuq4(L3;bH=F1Io z7)Q_~8IKD|4JqNlv#^mgxuEU(rCk0gpsWPT zbejkcS{95Q&Tm>qiBoShDvn_;WwGHdEKbpnrxk9)kgWN+Hql+SxAYsG3()As^AQg6 zb8pJ3$-)CuaLYA5+}@GY4x$55w)nEinY{p zmc&OaMrD{(ex4#~x7Fn>oanKmWXyEYkn_x-7GrtQLEDlnU6i}&PBOWN|Hjw8v$x*0 z8wOCw?qnwx*OBPjCrQ=iFn0`}G9LS}TzCt3S%f;<8Vr2-f&ECg;Np;R^BL#YsS94`WFZmLEhJbW+| zXYvgpJbVzx01qF0#TAG_$ACQ%ELafcA$0!^=j>*YVSu>*gDD+FUd)b{*lLwle)@3A z);Fm|JBpU(64wOdWlgt}N9QmVSKqv?*rWvztJ{rIo!dVe*KvVj z5}N1jI|4h|Q&jkRPQ6Ncxm(hnrN~mjE%LU7yUFv_^6B6XvJ7Tx;NvQpRMOVpnpK;D z2WPg_-Dr_s&u9$22kC5=-KL$sjI@m-x{#6k`~+*gf)$4@jE?f)OCd8)xca6rs% zs^he4|Duh_=cGu&z*~*vr4@R^j`N!|a!Yqd=sD}^0Bx$jeo?w|;{C+vlBGkdol?2I zDmSi=aoV?w*tKNL8&gl$+3iJn#DALCHs#3EA+?b5ZW`NxqPU;on?4-1z z6O%hnEWXmDB)FYf>YyXk$ur(2I>sJnFFRaB=+;V%|=vWQLsOdUA zxDCb_F+CRiYl?4jZNLaHyAcE&Xd)z$t+b0%VQ ziTmnqUxukIfZ3~MNV|0~aopIjOTcw1gS65WX=T(JAiPYi&RxEiYL=CE?ZSrCyy1;X zp?l%$01a0I3MN>WtTIEd|LC^(4NS3KGdx4VLr5sfH(J|cbODB zeH`5I`MKFPAAhIf6;5u6=NuC`MCWvzxEisryNLs@=qny+LvkLBtQ^#}u~VRI7mU)m z)mM9=@pIB9VEtjKkw9e zi5uzDyMKfDF0#BujpCDVMCJ(xNxnU%elNk~C3&jV#n|MEVu(-JyG_7LSR9@u4$`fa zi{w7CBF@jA$XmQ0fRF-5ctG^B=@o)CE6(S9jE5jg8-mu z@2cT=OO06Sv(R-P^=xT5QggQ{5w{J!e*u7{QZLE|!KhnV1T-t2ufZMx)F#t|a;8k(^pidr@_^`ZYsS3G}Bi_PqYs)|I6< z?o;pGI}`E`uwKL}el&6!u_E?3uRfYsIv@WYU{3aF&Od8+I1ta6=q`c}Ft0TMzVpd< zr0b#?{;Q}4{i(SH)%3;7HZy8h3!T>JneVR%Hjccnq{_m(+dxC~tMO@F00sR~ZOH*) z!Uz%e>-#Tm7Oi=-f9@g`O!$$_9po(r?>!b*e7-K=Wj%{83S=OsA*W#yavJDP$a5?> z|JZtkcyQ8*BtHuABh3mgM*V{GuM^%y6bR}JJ*sh~L3`hXe{JkOZv`e|YTls3@>DSSU+qo=vjVXspkwLd;;4r*4I05zwsQkzzy_LI`) zm}Y+4Td(Z`jgEZvVc7NcFqJpMeF@Qt+@tKJKB(%5YCX6)#Y%9OP`^tsJ?SppwZ#l` z_i2xkkCCG1qYD#DLV~Q?11C_PZ9Byn6VGv?#;>nBeY~?1st7mFE~b|lbKN?!;_Hnn z7oB{d)$%Rr!+?F3$l2{wIg;KNUpOmKFG^5YEt^b#vgNK3m&a-^HvRsx7y3;a6-AD8 zVL820%Qn@EW{A$yr2IJ9j}^T5tmHLx;bgV~h6hzRX;;fb!xiuKlh^937OU)Y7BVO&9vx` z;EIyDOIRX|uIqMK`%ON1^+E{~_ccVwRk{n@Mh`HY@NDe=Z64FmQO4>jl+qW7pMl6G z6C@G@37q*~Nwx!5RUI#xXKNjK0m(k72SCTCb$uzT1UYnx2m0%e<80bfx!%6Negq(V zA6UYUJV;q6z0yd*r&w4{QjXY&yuSp&Ju;Kot#D0U_!hWF_R22dZXPk^OM`N8UG}F7z zc9pA)r;TGu<-H?g2AAFv&A3bYp36lYDWHwV3=6L<-6F3HEj3q8+qnP)vkY%kw23%F zFF!5#IUh`)^?LZ(u>++V2)@<8Sp%{*<^Ep*wM@hsun0)p)7LdC+Q)*Xn>xdU^^?$;ynAj^l#!jb<acnJrb#gh8Pi#6+OJjbcp$wtNzV!$q zdUn_j<%JhRm2N9BImidIHblRMRC|9a`1LRH2a(`cI#NK^Ta&aOnxwy)*!|smWILyP?aC6k>hxu9=Ql5 zh03;D*e0bojFN1_-CTofyNT-8Z~ObpPg42^<`~E-Nf|V137Bc=D7;=kyT*#| zRsAZpRic*uwiS25PUjwLd7a{(*J}pmJ`x%V8xFKF&fGEFq|T;E<35!mL0NGAIxn(6D&S6uxThDGXrq7A^ZUV2f^QBl?dq{#B zFGR}XjuDi!jT)3#uHgbaIJ`4%P?Pd!CTls-0@;YM2oQ@~z%S-QLHQ{mI|Tnfn?ajD z{E?O<#~=5o_LnLW$z(Rc*cU`uJt;VTTn6M|p#L~$b!XM@0_UIAm+8=(^*+)zq(Ptr z7uM!C5KZdwnIZFDD>_5r>8Y6-M-=%yxW`_6-D~JFpEP(lC~cF1K;QNfpN4q*60Muh z79Kbq@Gxr88>OxYG4U*5T|U?xIp^4xR=T~QW{i1^fBgCrzi0dx7DHMOi~c;uWoOJ2 zRC3>Ff$FK3*w;w%3-%{sqF2*JPY&gZF7{R3F88KQv5H4qik0G|s1VKQXQVgw5))Bh z@j`C|)0dZ+-3E7qQAVQ;WWR@xE?s6y&0j{b&bKCunr$YLlcuBF=ezKqqWCe4S}3iw z*Q3(prW|N9cqg*K4LxtPRx$m6v_MKLtEgL&6sjnSkYkmav09#=Wa;nKOB<0cDa-mv z+kBeXvU6!gj1k{dIQYyF9a}i$d)VY$uHEudPnUh+wI}(nSxAnbe!`<17#Yoht-B+8 z7v?S`dT;uuQ_M9#S>a_@G;RG=FJ#*I?n3*>`&sZb5ce8N5*j(B>6>ImHm}V#DG)CV zMJ)|0Q%0nRJFH39p6bG7c^^$o4!)grmJ)-6UPCAo^WRhH{X3gJP|*Io%#jK&{L34s z9-^_&-XjW--y!*z%)}vyTX^(Y#0il6fR;B~@ay{8;vloi+wA#WAi{Q=j=Nnx?dx>e=^h8-D_k4al?r39YRdM2<&a^JnU0+@3DtT9im@@ zts4S=%0HK#rD^B)JyLJJt~O(a9<}0{$1`mjQhzI1OWhA*R(&UqiG{R4)cQO`t)Hlf zcg3AL)&WG9U%>M(v564A7GAAMgI3Hj=e0lw0xJ(e2rrcKrPTfaeJ9E40Wi7J` zuhbYsUYItU(d}hJ(o&DJ)ZV~l(YW;A1So8T=v^T3|JB{RAjMWPY(;>Tq*itmxAgL%Ccwf zT-FQ#vCn%s_rw=YZa(u!VXsS8T+4+G$?-QN83VNqJQQOJ%RRVTMyWd-vd%20EkR9K ztu&>Ot51!|PEQDF9De_<}zC{-w z$;i>1AYW-iH`+_O7Q5H%p)k7louPpWw~+mA189SNE`H=}oZKwiY)gR14lz93d4DUJ zxuQ=RmbovtLcBOmChOV-E%g^CD&U}i z3_O@+ei{T|)&)tzKrMN!cxkzv923&(y<$e4(OEcLRkSkXS7D=(J33%H@<`iT-Y$>R zGT1ypKBk$O+%(#-{{x#^*+1Fxv3 z1mZe#KE0ml>=H@O=fI7Ad_gNSvYgmK60R1ZtARkGTqAEEndDCOc>p3%;dR7>Zj2~p$eClCO7KY<;yaL!5B$(8P0TLZc4mc;uEK;?XKCYlSp+(453UD zo6OTJG1_Pe*@J|}YaAPZoF$(z@YF!Ds2T_9ZeN%$Mei@XYw-F`il;s;p)>V<$Rd)WHwS1si{GzyCV@p)J zpszPze05osnKaJvaqpyYy--C&ekKSB{=FAED&k+Bc@oTH8-oLO9H_Ir(G5?OFk6IDe^O$H)yh+o8#VgcLpSNL|lXPSY%VOIi(RqkqO%OM{ z?A~$PotW-pPczM0SSh7f@iE4(0biwO@3Xsq*o^URBBOjLbsm68rEy$%uWeG1R)L)K zqid`CxKn35XWfUcl{PY`PhN^4NoSYgCp-P7ynT9=vdN06R8z$x>|SQ{OxZb|rV<_Y zT`49bk50QZ8$ck%z#L|E)2GKB?dp%Ki3hgb^_$M`#3&VQy6!aHgxq7xL8ClF3H&9i zX@wI%@%hdRHCkFIQf5}<(|cg5Ipc@#F&|eo|58Tb#D zv^u}D`{v}xT5Ux~ex-BQOcpu9l;Vy=xT-DM)Z~IbaPP0z&JVN4bzyw`kpPUwnOG(x z%*uWyB1jt!w(ZYd&#NLIX^Q)nR|QtyP^{XCTVTb%=!@DRw{5&>CUZ{d3QOlVX($ySJ zD4cJI;#Vt{JPm6L*yMsV<{pCaJxCC;wj!KTOGE=lrcT-RXm-$g_8BbZ|Hb&l^i=9TP#(*f2zA>SKJss(6EMRAtazFK_wO(#_7@ z&T7c0e`VxVjBU1J>`JcLK;<@#vf+W%{;)#3;n~kmRu{bw25nl+M_IdKTtClJDwwFJ zsX5-}ZX;LAAKoV7SKJ?~^|Vzrt(<456YoQ59)xs|d8S7*vmE#eponjZxt7T*Scq#O zk9OZ!bsBiMGx&~+5xRm7{eGo;)K6oj$8Oe97Ggx6yz}==d7iJ|Gpf3nZ&%jm^`V;L z9X&`IIq1lSuX;1KpwMk!d67JUqW5QAoN2!?H>+B%C!#=ejjyv^JsNw;ia;ZAVAnu# zyHUT(I|E?huhjP5SY7Dnv5KcMkoTlwiFJR$g5)IOM#T>iL4XNRxjU=+Yl~fWE06=2 zQM;EnZ5Q(E=S_@8pJ&Z=Fs_+(+jAo6l(58t^rMwX~n_ifimUv6ILwPOQ0fgYKBb7t5!H^(d8b7b-|-&*qa&?^yft~b~9(nD%gp;Z*%YRa4r(H6du~2ySzF_$UQ>L z({7=sTOR+MkHR#ZjB1yo2;f

    Y{X3KA!a4knsxNN5)(M1%L_ zyW)FGVSaZ<$5uuqvSjN?(e@^wi9F&=ajik=}h+#>fykLg>sQ(3ln1!1G+6!;7UYw zbHzPSE>2d|MV<&q(kv9+i}eZnTirpU)GysZedNd2wXL;5ccDg$$4vH3&7e3e6rN>8 zJf>AacAYz~%=3Jp>Ml2I|eUxm3RV}mRB9l5f{|PPm zxYb-oh8fv;ZbAZI77{0KV;T>xz(+PZ|y?GoUH12OHoPWvy)mKl9+DO*<5%5b;`v(j?^-I*Tg zKF9`I6?2a$k4DegpKV}UG(Z0kyZbLSh%^x34qNjYsB9uaA+{Q}=8$5?bpq-c<&&;b z2HX4QYYDz82%rCqIPm#jeyH5a&#iU13Nhr!$(uis(8Pn$;pIOjGD8d>c*`pgZ@H<7 zdNH`Hp}zq?1QL}vSTQCP0ODk4lZW4f>wLWbl&`ZAYx*;|(ilYN0cx|Ced;B!@n+i& zp6i^}b{(9pU70Rdh6~A{#Dk@VVUkKKz|;7WmeR84@K5-kgO1+T%$C7B$5xkcyD=z zANQnDMS>=4Yu3sTj;+;%Hbx>*HRMiO3Hbqr@l5Q75QVP-9xE%O=2glH1F}r_k=u+)^FI}l$yzfX-{30?(@M>!7~&!w=V>P!-x@YPxf_@J zpy(1+T9> zqjdAaXhL16pBIN{Sv86QZ~!xNN>0(&rhdS5104~V?jCJII{#ptP@pU1x@@3I2@MQ% zMlkW^!l#Ns$nh<77F@_HbC-LP-ZA}Z-H>A)A2v&=nMdN98z5NJLqGMU>S;Ej`2jJ; z5iVlg6IBG=46$$UY?a9nMx13MS>|?_#Tzpb%|AUEtu8v(mUxW&yji^P*eNj)=-}65 zVnh9&M~zY|JlsX}_KvE(YxsMG<5pFLxIX@~-fKMt71Yy33?V48XtrHneBb9wfc*rHS(sv&^OF5pBDzA3zchf z5u?t(%kdHyDY9U?@0>~SU|WYcQtgI5l-PEUe><<1zbi!os!Jw3Bhsln53PmYww^zKp-y?7p2+080f`c5ANDG^l}SpKKHDHNdXN83oJSGs7StDd z)R(AmO37hf%Fw4IJ7cO`U?jZ&{C+A}s z@Dw=!{ug1Mfheej=7fBl%81Ms_`%~$ct@@_ftwGUNXYO|6TAzp-(ny4Jd3-Ai@|zb z^PHV4INQfI_V8_%gY8@5px>&lF zgc}~J)-b8tt}|21BTQi9h90yMOKG#n`MYt;|A`RA_lA~-p9iANoB2$+wFOQEy1}=$ zKCOypnQwqMZ!jsx5T{1(X0{Q0*{s?R)S8LM4EKF`C8hzRe1R{oj%xV3d37Y3a?jm~ z=UD(zL|arco!fbw1jDzVes+iZ^nLWPW6jE-ksa7?K3n=1%Sw^=Z3jhzfr*IcDe+5< zE0H*G$3XjYm>i+b)#^2Ikax%Qphv=4f&Tp~yhz{UrC$^#rtxvVy!e-=33HWZY>Ka+ z9i7C_*-ZC}1~u|24Zqr}siD|(O13gy{k}uKDTWfQfA!6;>ihrY&39;+_XzTe>^WvQ z_O>Vr-W*r)y~92maV*_4vSm>h_f%nLI zK=(235cCCj0qZ0JkqM{U`a;jCEgDVkkUz|*%&pi2saQKnc2~dJqICJ?;g{c|XSe&` zv@g-{gAiw>=g=K=h6G59f2uDq2ebRURtdnU6%C8#Cwn+vWOY7cbiKpUGnc&?-kfjf zB9VC)qu$@7euJX!;=h(A{HL2%34gS}bd)NU!d`;C&jUD4uix5GBbLT#MW}{w?!5%I zxafcW^esO5GHdtd;^T&G%6wOCo>Ei2I6KGYy8r#qS^Y736qk5M_2;5x|EfZn37aS? zwiyAXj!I*G?wzZ7u6$J>#U z@or78bU)Y{ANXoNt3rj+jhsO4(+1&PQ^OP?!==&BAByGM+S{6~hT-f|t65tEcn~t_ zI{fA@1FR68-Mjia0joFL5!(cewZhIO8_I&7{@(YwmYn%pts@94@cmhWPp%-sIHzau zB>kKqQhMupf+uZ)lk09dMUr}5xJw@cW4D`46~=CvQQx^2&C3#trsBjb4=}k;WYSG! zPv-F2q-Mw=%9M1N(7?jv_)9U3AlHpdbL4xFz78WVmRV#zdSv*i=Kc(1|MxW1Pkk@< zX^uHtfG5s+N8MXea*R&dHA@Z!WYER(PiC_#ltH$Lx*XJ^_uNY))cj+C_ueKTo9#$KELl0XGq<{yU2-gX3IrpSc7R_)G zdgQEl_#M{Da^G3%%OrTZ`R_UV-{)SDVUEAe&%?MhWH2EHq_O*-LwPkmgc<;e2r_l< z#y6W^+Yy7l+llEeT_QW)=(?y~{;HOnuFLM-Zrh@@uQM3R5+=Z>aJmEwn<*)Rn2H#l z&TT|aLS%LV(i-+t6^q^Oh~f`CT)%$|%`38F0k#{iM@4omv^_~auAnplq6+j;yRd|4 zzoI9jehP;Oyobh~LKeur%?ihTQM(L}i4rC=YPp9e1X#Ekq`P))lb!h~j}k23PYmWV zG0sh$2>E>Fo^Nqf8H@i->+EVR)3~@j6Z(16_bDQ&W6HD^F!}A@KG_q>S$Nif~6#EM?8PQeadpjrz)>@{G z^Y_eF7S_Z_l*Nh9tsO=TrLC|c+V`ctR`#G(NBAjCVeN@&rSL4`g$e3lxl0Lme{nF1 z7Uf4Jf0rL$IUb6ws7A&8h!h^4+re)8#v{BM z-Ja4Y7Yr$s5oq|m=tZ`?`Db(krIg~@Y82oB;1*&bu3}=T)71pHA zA<-IbVR}g_>kRJf^wPdk67vDhAwD!p)#|L*41J!`jHXW-{z|Hwa`rcAQzFmaq!b)tbRtca z$m_ejKhbI3<)_m(*%r*!kh?bCi!L}6^GXCYyLs2)4va)@ zcKXsa1|(2$Jpeaq$58`IYzR8gthP5X|CKYeZKjXe#9OMPuOs)rL<@-An{e}WSNLNd z0nA$sp)ppw6phGpO>B+w^tf! zRM?;l~FIt@MRVA}z{LKxg?Q4Wa4Y zUJ5Q6eZGpQjP!*Ehi4I_=Fwo+jqrs)zQ-VB_q5GVQ)?SJ&QDiih zYvvntC~ImvS}I9*!8xU?@mlbRkc6;LSRnG?gU=%dSipIz0H# zBQQSB7%B_|?$nr%Y%tp0BHpXHWbwyvlpc;cgOwc-(_~>zYU{R*#UI9&dF5{S@@QieNs7kj%H(d}fCQF8_1-B(n~ z$&Q^NvZuDX2f${N*8<0Pmz#;0ckGnux6ui=*)C$y6YW&2?M{(*3#Nvq%^W-L1)(eQ z9_ZhRXPJZU4XEcV^T#wb7~D>`5i7ZO6GI^l19@BFxie@EH;uQ3#6kG!?YrmCoyYCm zaff@aGB>RVFJ{pq$6jR{7p+T=heSdt>-@G}4CczUs~}Vtf+r;<$Mtx+1dDg^ajjOS z^5BBcJ|4KR*`~H^SD@aQnYAMIk(G*E*gY02OF3YxHZ}m_?ys&|IlM}_zgnhQ`^7Od0R1B& zwr}qIAFPr)Z~m!OGT86`V3nNBT`+k`$MSQMN%ihax2&d$BR$R@|1ETnly&`<*!7dz zV~f=s-qM?lXzhIHmuLBw&FD$8_o8w`qd&>qqFnyEI>U66^yS*v%4DHv-uS5K>(}x) zJCkX?TGYY*Aoi9`1)e>cv)4~1Oe@{F&uvuM@kvn>v)5he(6CQaLqJWD(q-TBvQ(p^ zxpqpS9;_{^g(1deB1T7h%2Gu=B}uW$P`V>yBaXQVvtIJ6L}1KU zL=X$+at|TA_~h>`tJR7N4HIsHWBKL!vHazxC9<6Fgd^jeYV@@;3KAMsa`r{XRN;5%?a?o{A`81m`vK6bb`e?g zekVchppr2t3ty)+L)sTmnx7z)X0dOS=Jh!f2nd1FET(Z$J%rvh(-)e7Sv5@8_WeUMbgEsWRA=Mo>0{D+~>ng2?dx^)X3(_AjN)_rucAwwY)OgE~!K z##3T=MmK?j1R5H#5bEM@xUB%9MUF$WjR}U)A7iYG>2WeSt47!SW4pikC`{*E_YR*3 zNp^UOwRWmAX0duK3;7>WP+Gbo-{U53ix&#umlS&s@6o+v+KmQR4RNjIqRED5-^de~ zLXN2@Nb<{z6YA5j8`u__yFDIBjM2bRIWhfKvQG(5OCpKDNT$l43A!8Z$wYC?1`|g@tB^rC7Cq;~$ydBTVGesDF z6+zV~fYWXulm+HU_tCJobLqKxM4d}_l5Nn&Ce^p%mQjB-|CCh%kwDHboG#cYd1>K} zJ|0I0_n~i*efNYvh!N0CB4WdxRo~Jxr!fQ^>fqqYFTDnWFjYm}rbVB;jA9-FKH1k* zvc%gAH~BTIg=;xx&5-%Y!LTkcl^Nd_W;Im*T-3_ys(7INTtrs@g@~))a|lRxhwnB7(&8 z#D0n~YAc&3+`iGqOPU?E%c=LB8E53FAk$3bR|SbMtH1Sm9dA?~5p%5~0RzEc6;)r2 z_{8i;*K)jP-+6Y74|5o&Q_AM9yJduONoz0O@?7kAq=caqyZF80>qwJ5fwRGoFngwI zSX>YEj*Flg5(>K=u;qs}l;{!ZF$=*o-gfG_|BVcn{7EnO$t^iJpzmaY7CbSYY@)x&{2nZAEYuRAsi-t=Ge(QgIaqxtcoKQx4 z_-$EaHD0c$!6@?bcV|@b3HRufP;mm&(dpty9v^VN`y2Uw8mM2*b!F_!unK0WU5 zMm*34BIKT*I8sZ6IXydWpIcsV=bn3D#?9AL&1~moKgyszGisOlo=P;EktB0aIBP^q zWZ-&ECH2y+M(Lg?CCUT3Cf_}TM|XNF4)PhBH>Nd@lkolHjD5F6ddGi?Q}U#yx=CVw z5ol_}FFqDDKzJ8?%lAu3^FpCU|KY`wKF?1~U!7LBeNxFti`=#FKsYN-v1CJm$Euje zYYULB9>Up}pTbpG2ILoKy{6{(lNEhDg->_HNSp1DWIps1{w>S2 z6N(u7Jl1&UCwsRX2)0Zx68Pf7*E_AHXFS&L)tuDYK2u#gt(=^uc-O1A;24&5(H){V z)$hjhEWV8Ld-=rgfoXi`_WA7~(EmY#OA!t6?AGY@3TX7XX#4?gZIM2A#xWhMAEXC3 zz;7N;PnxQ^KrkW4)#%Z-6 z$p~^CoO(ysX|HC$^KxQse<0VVorJT-JlHuLY5+d0b^VCSq$M4J_GoTqfW3=Or@wc^Q=Y_&DHN!IR}~D$$KuNMabm^gzpU&I#wrK7&dG(UH5etOR-b%DdUZ;e69MvxPkLR>C;zjPyY10kUkQ z0oc*4Cf}KqdM^3q8oINsMU{JP1E!jE*$haNP4zFQTpsG^>*KJ?=A}qD4}H+iQld;O zeEft&N>@GH3MqzOI5ST9MefEk@01~?8R6 z($uOkOS#7ISIU8hPqaHH>AW22Jf<+h6sv>7E42Gh;{p!(6b(n!p5(Rbt&+m7b^Rc1VU=gRmx9f6o8UkP*$I({CE zTxUw>!q^r$pf*~~(fGQ~&fvMQR_ZX?c`gMpE}>x=kBo0TDU~czY@?WJ(7UGIx$ZC z`bH#u#PL4QTul%w6+btIlM?&U&|OGo?AGeQycUJ3meX^eZC*K5dZ3GA1UzwD2#xWl zYl}L5kzv4L$n$LiV9L$tR=#&9s8b^zav0a87A%{txxbr~>iUUm-1ZxXeEa;4GeP{v z4Ch@BvB+(L&8V~ei)aLv^%?O2OYm`t_iI{yTHpUQp7slLeZ8kSiBOH=qIdkl=2~FJ zJu49QgdbNQ9EhG9cla5qT4|#ZAb`qNa+Bl_H}22<%Q;==Iz@P+`M=91FHC=0O2)Aq zmvnCac~MTJp%dYhTi{4*L)t4uNH<0=FE8+Sjx(RZ>4{pi&M!}G>acAMS|;LABd*J4 z8%eSa+leniQg6qk=08+&NjY-KFQLQ@AA+_kUf%q+sO2=-HjmK|!|i2fl8~^ZKqQ>K zeh1$-{!`5LOeVonvct@LC5557sLQVCaRP7dd*5+ozftbH(Lc^T zCrcRx-?dT7^R42jB={vm#q6luSBDt8874331tm-_4z`9oY^n<{u`|3_dK~~1NgS@- zj$LO&(Yr{O-TOosMN+uhNLDh#WveS)_^+gcPotKA{6A;ZHHQ^pTc9UVPKpYNvL%EH zNlcPr@QI>QsU&3?TbX1cyRl1_EKw@^h>A+GjI6`h*I}&L$39~pW9-}9uXpviuIqc< z*XR0P-{0?d?sK2}-2ZeACysf)U$5u$u{@VHu#g3s(I+qwG4$e88%V3P=!bWdz~=78 zrWd#enQYM}tw zEI!Dk)3?o{ti5HfPB~*P&w~A{Kvx2esTyk3kR?{huOrY)u)Al4WQ#b|h25sN+*j78 zv)lH{xw-01xQ|>0`aENEv;s7qEe*KHMk_q`oW&l?>ePAGwsl8oYOW8vwYNQ6Gk3+un#?TZNmwKp&eJP%o0N!nc3OhOgxvkrZYF4pFkU{?8LjNiab!Q7#y6I z2yDl}jC3Ay7G;Qfbh42*<>5Q+R?XjAUy?44e*At)iqIVs%We_xfkFWq-Sm@2|8!_9 z5*|T9F0gBWkn5N5$oT|lKVCh{e2OG0RWeq_=~~NXgWgvLsy0Hm3p<^YaU#@t54?$7 z00WRXPSt{i^Z(6=W5D_Tdc-jc=C4N_A59f;Ib^a|cD3f59ILm=?R+fPZueoB#BMX& z%Oy;jV2>%8X!ySW(OgAM1`8}4F0XUL4|HJ0lxus46i|*upNsXJ^&-%pVuoVS$L7{? zVAjJoxlijZ8T_ zOWfD4Y3)#+OyQe{0iLbfHf;7GGCb_s&xzH*4iH1c$3RxTg0$eN@y}0hAZM13&;XsU z0SeBGI^Zph25O!4xIHu_&n*hJhFN#f#f(V4oNxZzLbse)*Ny)Bz~|p7jGtsgX!|_` z|Fl>w7_W=D4(4cp@mVp@S`9blpBtvGKRdU2_H78-u{2V_QsV-A=#$@-0p#=xpkS!2 zIK*Y&QwQQN3}3bwg<&hAW~)qurBeOT)91!Q(I!qF7&T7f-incnJoLHsPUEc%2h$s! z8Kys?507#PuExA?ajf{HP249N17(8xcEKJ?RjdF94xv|?d>7@Y{{zIR^jFni8{O5E#5y17T}d{-LxMa z3Y^cN%}-OP{cko&gcz1EC%sHYiTgVK%*KXuKU!jCS&iriI@z|R=m=A)fYtN%S#;;t zi`JO-bt;y#8MOQvLi5*S&0p+tI(Fd`m}h(n0GFN#!qvb~moN9aBWTwZl%b-<9<;(NzY@suY-XEDzCNH=rot0y`u`9Ck4bZU`5S926rNe{@EEI& zM0E{2h^$jNpez-#1NWqI-SetK`|>(wpwYSM>=OMr%(gc@*C(kM@3-5@^C;e4UMtHa z&{3RyH550A7@%!CQo@qG*l8@t;#{+)5-o=^?V39;_t{L25Z5_9 zEknRWHl8l0RG}4PgyMjs#maYUiBqGSEoWFtRt9Cd?ABW!WbCp%>8nWSdg8ZemS^nz zbSAGq0FQWq7DBiN-Setx>!Mte*R&L6Mi zKY1Qsep%uWr{GsSMnuEk=?8-CTk+Z+{xdmGWnQ}G0#D7p;9nLLY^PdEi}kf}Mm3T8 zt(W^ZJ7cW1!My(cx?-OiP^++TyXh|X(~2E?1t?dq%4=vAo(0ZV(skf`LB>dou)xfH zkb^XY9^@*3sVLh2Sy8}$v)}Nnhb8G1*Am!H_p<5E?-@Meem}R0qi3H>HL|wYqsFDsi!F_V^WV>g7+)YlD;NGBm`kcCx&vZ*Rr} z@04^R;omt0+QS@j&B__COO{7?<81djX3B%Deqg%D`DX3Y3YcB!mXXhYR#nCTd)^tc z=b15(J@2CxW5o%4t*fV{g-#8Be)>mLEFaxbj_?^dIPn5q`99(%XX9THt7RgHod31N za)-bGw4{aEi1*D+Xf5h-pQQ9YCfU3v`e24PSLzu7fiV=%Ff@}hLFiQL1lUahD&cPa znmYYc!G>zN#rpi;lpAU!k}^kfdrS8KnjuoMk_^nC{{o!pjLZJ+0 zNqT*AltYfUiJ#RLx4|Bcc8z?Y*i9=J7}<AIo{Nb_kzsdB$2aCy0U286=U zo<*LV*53+P@V9f9WfO2gd@s?-`Io#A)&YIli0e0x(6P9+C@{E zfH}oPz8Y8i_Bsw$ecMYsv>WJ=vsafK<}&%fpS$r%%*b=>!G?7Sm^fGAprbPDkF$@D zk+=v4#nzz05~@!IbsnQZ5;uUy6jH@_8!=k}lNZzZK4rdRIzshO(Uo7MR1%?{` zPZw-FPn&8H%I&vjyK4n{n(2FmHaZ1Gp{oB*1`?KWcF?`ctT!DHY^AZg(Kp6FUcfye zq|LPLcJ3`W(7IRUi3q=Zjsz!K+kh}NHw|`~Dw3Xf@}J3PbvHgsmbri2jj_!TRk+(5 zbBOLW)h+PD5c$}PuZKvQIow}&2E2aeP!*Q}p4y;b})>GuNP?}sw@z$_+0$an0 z;?t;Xnr1V8eL1sPS>E;rHF0HGzH+&2Tz?OGC|c3(zEHg5M$5)IXg{|6p{2f&jEzM= zp9MEyk3Ei%uO&3IO9;ELd%rkDcXQeF_0CX+N6z}WAS|>`xR-F#$=J?*r}f6nt+lDL z-8I4-jTHgqxR~@Oi(^scmebbGy)ufRj1&Bg^pNKkab^RaOT%iwcsHW@gEGU1zxeV& zBAY!vlPD;sS7gLmkBcZPsx z;kj@wI0Q7Uu>ivch|D1&=q#{RW^4}J>X#q>a(TC9mNF}X+tgUHiO73N%A`9ctJ~98R?EB&77p}44+HY zF(Vqg3?pBqX9BfEuZGX;JezybO=#W+=%8SyT3UO?r1LG2yl3uhZOz;<-l^m{fBgu# zF`<1|lnLxK%2np(bKH{A($*v>B0zW+?$y9JeX8{F&_*?E5pQUejr zl9p}4tP1jwYc*+;QS4`;9$GfjX`@!IzU0QWK)z<{3pR6)nXDZ*u~haPmOMMu)tW&a zWM1~G-oB3I4@T?0tI*s@JAf{>A`c9*<}$Oo_Ta*O*Ez zQ|qp|S8S}@<@%muHO8}OI*0k{!N!sw{4>!*8m#3^>odA*D&5Z3uB!zSNg!_}X+_x% z;ay1E!DNs#_?Ijt#;Wq1#LB6K4hgTX6>%us(!4|SR1`Hyr&DC8TSCOQv6~T2v+pim z?qNPS)s=Xj>ORIX+qpk?;F}}%Me$M>7MsNwT&+w(#PON6$;+SM`vd^b?+r`B0ZsWOm;o|F)t>@irnbdb5{bRhiqW@#R zvHj5_M+%H)PmW#T-hO|J9z$(%L0S%Am9ff#_I9&0SF$qVr0AjYVtTz7UiwC9Tgj4t z3a%=evOOSwpTRA;a{tzzZQ@3fkEQrWzeLCG9Es1c+PCwpVW}>0HU(LBmSU|5;~)1R z*2xO*z_TFK=0rLAS0;RgHwfi$<) zx!WC3Lo|?dvsf3#(cm zGe$|R6c3NdA_Y-%SC*!Vmk*dxRj6*MD++2}457y8qdrS=LJY-0)T<;r3U@x1T+ z_YBXlm4Sh78^fhE&n0f^fMcX=)<@3`2dw?`x#@W?=bFaIE^lv)O*4&~)|sL_SK`a~ zE@j#pzFJR?%L=59co*w6#KOW6^3*l!Z>Az!bAgpLwRo~1X)b`A;cF9M*ZI0`x&XE{ zVotC)JNoiGdqBadfazC<`7AK3{F6pN4D>U`n5oJ2bceoXexK0z5Div@RM-0s?Y&$P zpThNB?Plrx;&=XA@EP{%g5xP*_pH7{S0t^8?;_j-%nGaO z2`PI>Nv;5c&Mzu$miZtfHH*}Zy(C*d>tuXa`F@6(1s?a!-n3TUDM};jx{BfAYgP@! z@vb(M)Zk}IVY2Y;Q{>M^=E723^tS{zAJ0wcxXfkTl+g5?+Kl1K>E4Ce?;I9%jCrTg zlT+&xoG$kn>jgT`6Diol4gTIm_W{dJ;|<#-xN%q%&I_S&klv&`c8Nwa^jg*aiXSmM zI(jtT9KpR{kFiwlq95obOUGp|t zVR*#ZW^*Yo&8cBO(pLs3^Jr9$cpjFqzJctPP+j73rpo9mS_r@ItQ!g7bIfkjfya6- zO2=h!dJk?+V-vStyDH7JYt5ocyo8fF3F{+NuSUi}syTjhk@!8e`-%)_zv!%uwg{bd zE9?Dm0AEPgt5t0G?wUi@XGZY3%lKuLX}sFHz*3Q?cbVmPmGZ7G^E275dwapK(aLb; zr67$eUDShSap?eZh@i2DQ<_X=4Qg#HtovSSLaioiqM6p_$Ud&FlERL+sQW&Q*gGdK zryG@P2J&WVH>pKF&YL+i{a$2M&YkE^YIN?~>P3|wrC^bPt0sXq0ZEl`D=UWl^ymnq zE_b!($FS9Rk=5G3t~~sAnWBwhdKX=~J&4sDVbiQ_j^SOrQ7e9hV9la(>j3@3(`bpO zh&4fhgsr#;Cx%sSmjOCfCe%r_^_~91d#VES*^~!QmmCcQ`KRYkxUjxY2mwcM5ITa) z!lx#~LAULR(|7iUx~80Ne)F~xF1W{m+-CI{$wk}8zgYWa(v+Y(z_%^b?Y`4pCl-~@ zO_?=#%Qxsvxa`K1NsBIORk5)K=YZj-8GW6ApF$GHY-8Req75!u>~nn?kwaM`?P_ z!_?UQZ#7DF)2$Uto29ro1K`Ou@bg79{|_v1fBOfRrd?>J41#s*c8tt0m&)+R(W%kT ztwr4__e*sZ%n@q_=vxQp4)UG}jb4bT8DE_HaPtjr!vDBuBRm-W`ShRydrGV#{_sRU z${WwfxJc-=Tc7Eg9NVB=|3g(zn{xh0dr-ygV$T0 z_x!1t1Q{3Bk$C9ow?j|gBEjl5dSRPJLgU?Ya$PZZMw6xIM)h2KI$S63T_}W0r}@!d zeEo8A|4c1*_o5L~sLO@twxaD$dKh-+Nwm-&*YQ1YN8a`f7pGe!bAkhthS4q=C<{Dn zdb0+fhWtS+AEMfc~CX=&MG5JD(x2bb}x+IsP&^T7qYX%61Lm7VrJpvucfZ zR40Gbx1o0La-MC?1h@6vsjejDt}jTYYGwTf`pplz#HN7FQXi!Jt?S2z#{^_p1K@3U z739WaT5nJuKX|#3`r`{yVEz;mx~WetJbSOTzZfqjFyHQwZYKNuNfNWjXZh*RuO;~o zFxDvZw+;6*H2*--EiQ$kPnvqLB^}*4Vknu;A&2vCefyN_Tkz+5ajwwJW)Zye?%XiZB%6pY( zy{-%Q%g~v@O&qf^{m>vk%^IK-_tM_<6IMWmQ&YJE+{SiMX<=cL^&Y<1d0q<)C;zCr)#b9o`g&=5SqhH# z$nk?y+;iB^sL@QPTG`|PZSEXt8?&`63kbn`UF5oWCKdqxx^{48kJD<>rBuXAWYIy{ zf1R`e;TYnkUmA~Q^%D+4tGjF5BnaB-liviRkNiPM8>z>|N9Vb%iaB?Dq+l7VeaP;( zfd$Q_V11mr(Q}De+yOGWExD;zMuA%hR=1KoZ(JT04H82#7%OPOP<{Q6ngZ2 z2yS}Lr$BY#o8}1lU&pl)&b81wP&>Xb@C>~16Ip&)OM{YFB!@)!B9%je0!u$>-O*#U zz^s*QGi?`7tN0>6e%UENWlJHAplee+m*IU;e~e}u8;+*HVdPaGu9L6d9tgG5`#xzJ zk(SH>A)?P<{a#gcRP;^u03|+oIzYN<#r*6}AUu@a)&I~Y0>TZp&(}06u-qsVjdrVN zX42uYK!{btFNUI>s^C_0G2PR%h7wuYM778S^dxOM+2J};*9I3WGd{$KkL)Cdz;w7Q z5W1jF1a~zE#wj4h8lZf?UF4$D>fMK54*|q1{RRBai?EZjgP)OHv-|kxL9WbslDcKP z3O*Fb&OvOV)i`sIBty{{TbfnwmmeqihrT@2zWFdsd2lD23kTQ_fwtuJyV<1guF6j_ za$NC!*_6_DwnotOK8VTh6TTE3;-9*zQeCiP->hTU9Ivg<`T79dHkj=G`4g}Vfw@EG z!t78Wv#gB#qt;pz_cS_nC)}`79DHqLff1O09i8eAALgcA>W-l7r?cn|vhd3drz`4U z^~4bJqcL1Mx70B~&`*OQAxRNhuLoSg`yH1o{Y>E=)qS|z<5Bv5p1OiT`Xlm`x@x@! zAV7Zb<&k{aAayF3rQ%c^_>F%#=O)de?tZpk(2!4%k@ zDS3xQM8U*Q>_LO)a>*UWKV#&W-?TsM)gFnalrwH!(Q#XmB=v&+iIiHX$D&mt06~f?F?RK-?tcSnaQEb_z z0SkZkPAk|Pb9>*yE_U<<#W#h=2a7MMvp7LK{2R6 za1W`os@_6&=}O%^DY>;s9GisyJ!Y$#K4bfM^x}|AH9Q1_>ZaA$0N=y<;6R_5sWSZp zaMfOL7ZRYf8#8ttG$zJNSHlm@-B#)FiO@19Xjew32Ek;jas2dP4)Yi}{pyJMPa&|3 z^8tnY^av3DK(>})tyYHe3n}K#YY>`_3(laBGT?kehx^F|*PrPnnV-Iqw2yB)V-3(6 zilIkr`Za52cH5+!j{xe&47ar z_oJ>EkCi=4o&2^}Q(0H%+<~c4@pkFTqVD7fqKGj198eh=&&%l378LYv?b%6ou^KWOq6vK2~}IDQ^HF)hv)EH14>DfI-b4 zE-LGBlhmzP;8M?RM8n?u1Y+zP@LZCERwnD}x&V^Vnf#0-e?qcH9Uv)O6l57O;?V_z z<@G!|!_EKgSfr?|JL1?w{lV^1(%L4x%MXY6=OS);ADAAsNCJ9~K2@&!ILnP+bgus_kuu`JuAf6*{l-LRiY_HMp402H9v17A<;lTcc6kp}T zj)x0F$U>TxMY%252*kF@g6;g&AnpP6Pg7su0@Lkur2})#Jg(y>KABJ_Km3EXQ>)h! zyVK8z=do0<4U8<6B8X%TbtthM^?TXWK`;l`|Iu$b$Kb1Ut5v)Op<(hkCktH9<(xqd zb^<((QlHdG9)RLu>80NOylR0x7JAxRVNQFDUyA7&s_8O}mc<9`O$Wk}oJU;1AP z->Ge1DBX>&QSJeMJI) z(s1Q=?-4Q&OY!PwaJFSoySNu#MMOP!vm`{mdIyfU{J6l)Ur_r$L*U%DK3PXZ{t8*xM+B&}I%u(ghZHO+?;xlNc>R1h^HKccaC~NkQNX3O^KOrol>wZw}}w}I0mR(;y+ccpClKsTcC3FKq^<#-g`rhxKldSN@!tyee!3(@iEe^$qC1I z+a{f6#=O3e7g2q)R6~D)X1imLYfooM^J_q1jY{|N0a-ya|Aql@W7$5+KvzN+YZ^~i z;7HzvWOJSD?q4_oh;5@J3v)tvjPrq!Q41>|G(ZUvAbY+9^-y%mw|T&8o%C6O6_I*q zkMleibTLAHWy4HarZ17j&@^w+4rk@qiAziRQ1rS=|nKxYfT!hJz8sDC)!6{)Z;{@qP!lP5OS&EO4t!{Gq zLlMrf8DdiZ-&crmOe|7@^V=(NS8K7A@R?wMeOWbxVF2~gj_jMyNt?HaumOrIJeo_# zJ`4>JObqXQkanf`0}YH0L_%Nhr~QbNroRsAWQQQ|>j(*R=!X@CF9S9-rYH;owbGs^ zlLb4_9YVhPBcET(QIPjw!FH3~-GJ#dK}-i6ZNPMX#Av?J;)E2PH_UzsRu@keZr4Hh zry7T)VlIAYz-9w+9T0<4Eid44e@Dp1`eSvbshG|rpTKXW8p!jTZu$~q0M_xzRr)u- zg7h0e7J!taebW)}5Lo|NLFl}T1DNm)Fb2DyjA0Tmh8A<!xM(f}moKL;lq4&)Y~$9z4{4ul|$RY;9SFzs>p^+DR94+50vOXp&q1cpMn3ZOt~ zfC6<7jz#d(+Z}ewjlMim?$2$3m_1jG+h#k}(T1{q?vXCVPf@qhE<3AV)qY~%LohrA0Q~n#t@IxA>C1K>JiaZI_p&{MJkdFV=i+)Hd~IPX7|a|Xeh(-HPi?Qqho;QbTggT@Hl`9AbRS>a5M)Yd3>Srw zf1{mH0GrR0&hcI`1Oe`Nie(u9%Lgy$w|%5FdO0hqu(1H?E*N~%B1P!p+10xSe-cIC zri-cjY<x+@`)gb)Q10|b~Ip1X3hqd!QF-ZMuW8%zp{@(~S> zh7m(uxp$#^^w8&EI&7}T!Cmo@h=FF@6o_WrCp2&XzZd+YNpL7Wr4xb%R{_vW4U&@Q z17Vm3bU%)cK93Fr$VmfZK?qSS%>-w$s+HaG0p@H7e+{wjebECiC@b`FggQde6Ts$M zdjWz5(evTY=&5wyUy)u97nmAF8yUx>g6Qw|?NW&Imm@%eVt2j8-LHO7i;2_tW6l2% zNCVPr`up7NWhoL%*fK4}UVd+!bW-gAs2rL{>5n`BC-Jv72!yK7$TZBnX{~mZpy?4{ zf$SEdn>I7UbRODD21ERlaE{zz_W)r-h=iMC+TNfq6WWr0sfM}lQY&$N@1g)?oP)D4tH7@>7^?{v7-WLCFYO7$|D&0sO145`c@G< zAkZkw0(pQgazOuG04hV{375lNV@Yx#Dqt}4f0XJ1lo<3=`v^tD$UK6TP~^D}JSn*B zesh9`CgfHLECQCR$_vsVpo_ti;D>I8Hh@fg@0s$B0C@HnC7Hg@3`6Lzo)6+4Ru6(@ z@c*4Heof#41kfy;?y!VS6o@A|7(uJbh zGi76O9C&3B*`l(45E`C=V{Xj?5B$g2AIp_-m~6#F!U2DB7 z(RA!r{;IQ!(;k zX2+ihzs;)U-VHpd<1#t~Mr38TPs;fqS>3_CYM?9E1j(;ytmW-Yi~ zfBdF|3A{5Nj%$E(9Sd{zFXWy)$7k%D`qz<^LoW8;Mbg4k8FQ1k{}e_W0*dr9CpzS}e+rZETAtN?j?B(5k_XAi-opD!pcX-31){ z{a9%P@?aVZi;C{SNnHAgSKbO3x3{9Q4gojAzwXhxaMtZ~%ewR{Q5}`egG;Y=@hQ!{ zRI0#Sd2WB6mf?L;pAxg8xLqkuL<6GL!0(ok+5^<2dsiEu+BJ2aX5Ue8+?;^5`txW5 zdwT)OYA0My5k6ClVB{gdgg&!81F7)01PD@7d?lU9fz-ZOaW1sonhyXIUv7gf=ME z^^E{ZVIBLgU=LP=b#GjEULLjXdVP6+7w-BNgYD?3OmzQo(!i686^mb_yZv1HDpSS1@~BEsb0V2>1L<*CZGFigGn`MqgpXj$9qE@6)rMcDje@22~k@ia2IbA#K$a1k;^(}RFC!EDz!kY&Za&$ z{or}(D+itZR3d$?v-m|Z!;@-e())h{K||=!DJQ3 z)0+#bahA>E7hyWbgV18*AMr0+Ch)tTE0*3h2Q^LMr^k5=-s%M4rqMC)jD3+%O#)CY zav;?L;4&ZtmTG8j-UQVk{vfPz5nr8oubs1nKyJ zddTL;Np|-Q>pL->M0z=Xi^up)4cCiU- zRK$ru$Eb&Nj9-#qYq#S;3XlQ50=kx?>l6hn($6(#qqdbNeB&Yk#tD?{C=t3Q8D78T zG*0cdHlZKq@d#1ILqE`I%>Ps$?;;QC39CS83S1HA6rKX`EFfr3;yPO5f1^_m zeX8p-#R*J|lAde+dy?77ZYP@a0dhttCKiY-*RqNyq=B>>52al| zlZCu;Amik0O>`76<=I_W6_gkA(AeLIA zvSrS!ZdYEe^v+yjwKbKd(D0TFM_PN&IUQ1UliKQ&+!lr>;zCm1;}uKi#+?#a3SW!$ zL{;>%c{Pp`$0+`~S;yLyz0(-gUEbb|yZ3eGWl{IDkS5Ds8?1tRl{BIZQ77bB>NUMO zbnyfvT-OWKN9`!!r|-ED4V=-pMG&e1NoEF0GS8InLv}g{`v6RlVp=5wf#8ji2C(-C z@Q?WE_Cy$Yrz=RSlC7~%?M}YVJrL@kceQbQQj>}J=mWy85Ov@bva}-DHI?~*8cU&~W?WdtMgkVV`d`i@Onu z=BK^0I%!0yi%GU#PP)0Klg7hRc`!>eTUCam$_nrz6%my3(vS_z^$!(7t zqa}`>2bP{CD6T=sPbWody?WOf`VS7Dk>9Ux-}n_DcDVt-mdrSIgtX1#vg*F+zK>=Z z&Dr+%Gc^>8ZxFYKx_o;}d4CC%E^z$PeB-ZHHpm-54tv%k(`NaPNlm@=VyimodjGkj z@j3U{R+vu{xd!md-!&uEd62mC&&e}wqIJbmttbw&(=R?lpvp9Y4r_ZM7VmK)T}1@= zxk?+Qe^8QjfjTVr+b&b$pMmPwzW%IZv-R;+7q;U-yH$$Q4Q!Ed9z*zUZN$6@>OEr_ z{bPMJ{c1@7;uu-VC94=+E-+k=<2d7bG|rXuTx?!J1HnD3iSc@+;?$`yozg(OuOIKQ zy=W2_*_E!JP@yDT;IEPw#DLemLCc=7LCTB7628HgkL1?zG4v}_Y*EGMibe?|UDx#E z8#T!^lOp>EBsS)RuX$rO&grOtoMZB;Z zEzYLY6}f!fGBTqu!q~11?=RJ9T(5-5k5j=vW2_t*O}}?0ywPn^mA0u!OSI0heXBrj zOk6w==Su6ICa1}oN%PW8B&y(n(qPch)F{J5GCy)Al9NQXsjsVf^nxAB8_jZgM#G#?`m*BELAP!yi zn?pm=34ri`Lt9`z0}Em9c7I2iD{@jQ5EMf_bMxn?msi6J*JcaZt`Fn8y?ER!rVtG$ zSC?;Iu9SX(W<&Nhlq@Ga?jm~O_PYzxWHy?XfJn zPP+>vsYgpgoVchN2ED&)xGC@=^uMnZmPR~J4)IjmFDVrtDJK!=Q?$pF7nwy_3x*@JBK@q`ZL85C@vb=@tcDYM2+H{H8Qp5#7B=?t{QU3%)v!WbPXcexbIRH-K)duG82q$zGgYo_tvtrt^Tq z?SCeVOl`HHvcAusHsqi3_;4Pi84uus6B~BSOyrya2jt!?uz(>WsuWa>0VE2FEp{sZ zDz>0qwR$Hl^BjHV0GW{5*7M&;BWq{`U}edvUGsldko=$a79UuUz92F8l~F}+f|Lwx zw~ppMtS&yGNPeJ>I741+%n$cm)ecLopUoc0{kmM&+s(GQvCg8@73=Gq>*LMvQX6>l zvvfIeqbsocYmE($K7|KwNkV~`z#5!3NGcqP>&Ay~DjS{&WNb=gM0R%4Xt?>qfO^jU7zpY}i9^N`XXFOd@ zMMtgJA>$pt+KY!K2T6=wz%7#N;YWuR{w5wmK2n$~H!zo0!?b{0@?v|u+sX3?C#}H_ z*W*VCtM~4Nn#a32=K`I~0n*8SDu|&@DNqR^5E4N-ktx#PWyrVENc|xzpvxn z-CM1k{iX0~jyUnye}jwHIfKzU3Z_!Xj+~Dv9cEvy zU-%x8VrKAA+S=_cyY*zjD*=9Xn-V}Ivl_LO4HF`e0%JK2$a_MomU=C_?5|r!DKrRy z&El3(%o_1ufJZ+x?-=#o|LljF28Y3ozIc{BcJuKaQ;!R|={6-RVoQB(8=C?S<+0Xu zM<+VQ(r*JVj*JFI{49zoy!Iioez)u97b{d%pG21?WBDAHlQU^+3T4%)aXCjf$wy1F z`SZbyNSBcZsUeBfVyaiFs}PPHc9KQc#l#y15|v2}Y4Jr~R-kS1E4)rM?%owbZ$kRy zhyQ1^^Z!mwG#ZMom#FYE)gLj>ludQVMAt8shR03(fwYT;*4mUrM}^NjcKc1 zTam`mxVkC_W^DJ%z(ch^>Ca<);ZgVA09!6Rxk+Ny9Myd&Y0=lPvhAVT=JW9Ei`Z4Q zs0TXOA{*S(Vhp2aVChF*rWUo(H*3t%U+A)}v)%HjbR@B?=x(n@9&K5{oD?q*o*nL; zLtB0VP8(LCF}gEt%klG9#qIEmEPql*7NxWZY1YP6yIDv zxx-~IQwDk`;(V!ffHKb}OLghEqTrW>Yt=Z1>uL%8P8A&G{e8@NedP%LgY2fe3~x1h z8W5~UsD@9Um)@yrHJ8g@HF(Pzpr{Wh+RB~#U7Vp$oULDvA0sa8B3|)$?@-cWU+oe0 z2Af(@J~OQF<6@pl5un=_N7&Hdn&VPr1bXr-`a$44X(y zs+&aZ*m6oeDVgHGy+m`ZWRtZDx6Kp>)%-BYn(n)*U~a0SKk>QeR-1ZUtb)q3YCW`o ze0lOXAJsDCLl*H1_Um33Z2jbde6N<eY z%P5+?*P)wGhhtDZo1IwQ7i;p$bd$hr3Li}*@j?mT$}$HL{nVSmF`e(dadU%(A!OSd z(eGXXre|SIVq7}V5+P};lKI!%P3`69Ke}W-&Y#EWR<^lLSQR>?_DhHjeCJCnLu`K0 z&jRI(sg>7Gjo0H^R^_{vb8VmDEf_S3C2z*&y`^eJ9H##iZM&TwiLRkC-EP4+S>m0S z;Bw!(vcpXW8xu|{yT0COHk~uF7b(q0GcmNkNMhSq51`~>tvCmoUZ~CQqm7VgOL37?!ocqU$rjKr{do64Vb+;l{D93iYNwd0DTF;rZYSgOWU^ ze3I*JQWob~pFySH68}Yw|sv(JWrq z;pF5hT3r6CcI-cAT66yi(|RYplyf%_ipXjEjLT9Jidv-?QIvL+H!wdPe-$kL69ao0 zfTK{<%9hrvUS2EkTvm!kOh#On)r)wIzH%jH;Oz?NXWOEkV-J(deJ( z9oUzV(V3Y*o-%xV3{$^0ABB(aS42MzLbE9gn6%amzpl}RWK|QKHhkg9*O9vQSQs@)*~V1R zW`%dDh0`;l(PoTs=oN695re7Sxhig)?gQ=v;$D4HHFeTZK}Giez0Be+NRd20iC?F& z2Rid#S6jSKTO!E+7gF`hngFWN7d=*}_=q1;NghX>{{~j|jU>nhyRLw~4d3s4el4Jj zK$(9!*m2G8w==PEitAzc|gC%C3BKXNs0fi zQ?)l)srvkMOakLT?dhs8#%gFj`q|VQbQ*7y>H4OJ;ta*XZkZ$MIVg&z zomlb{Dv=_&bR}}`)5$7kkfpl~2j(r8I%G-+Z&muMK}?VxUU%7=&FhZ+Sd8k?(CuO! zSVkMzD!%XWyr7jC+DGdEa?zbGkxg z!zX`g<{~oTh&gF8DYaYGefBsa&~~8MyZ(oyC{dVR`Ud?%u{3|PI<4D~v~i3!@-2Vm zP_AVTZJ`(S|6ZfTI z+I;982&gn$Xx0=|r%eExI_}==ADImrW>9a4%9yWDYA{T;rL!DyckV!uZ7Uj8E>M%X z8)?~?Pc>L7FMoSv7z{f1Fp*YX9QUhgyESmx>~ZT(IkMHOPJ-boK^MhHq#l0?Hh~Bi zj@d8K!ae@LCC(bH2bxgpn$#90o#{MCY>jPVEpHPpvEP2|-1K6Gd%6QqQ|wrkSMu=t zs0>1?YV}FA^$TZ)4pkM5eh9so5FQNL22J^t#}WhQ@kIS>Dr#Nt4Cq}`CO4}EcQz=G zE3V5G3RJ5o8jB)osNSl}R=KFz)6T2t)S$Ha++IuR-26Ci;mGLacF)Leq}t|gE|Thk z?{XINa&MgRlWH2Iv~UmE3{6XPhv_2@d! z8fhLx=n}76D%8c9*J9VU$OT|SI^}Ek*nKf$%)b=$`%#xem~eN5Tf~H4phsy^`@6u! zJO)(dl4qNiRO4>C=f(&Mrc=OFU5_+41+zuXMxqk?U3jVMRHD~YnOTodtFh>LO@2qM zUNB=t%P59SKixaRsdg8~Z~)hHit2F$T?|hK)C%i4gX(TeM=iuyO|LR-ZEBB``BkP% z>hv=ei)kF7DQ|0=wY%x5^`*`{UYgCk-oin2G3wpaWv+P=EjKS)Vz%Jr=2DazPhzCS z)|SN5#*GZuM>Ailu-%9vs+gD1fd%q)inn)t0;(?dqr)l@owUMFx5{m;aOpd2^X|N2 zZS>ll&~!F1b!v$LeB53Ak(u74A|eTEl1lOpqeNZqD^&CpFB`&j3Fy{^4s+g^d%k8 z$^`uU(|UW{j)bA5F<$XPIaFfh8-s%ulNI2^0hg7sb*w&ac&rIH)`6);Riyb8#cX~2n%;DI+g2Td ze~_vOBJ=W&r`3)}v=#%V!A+a~gL?{@<9aVPqj)mBC}$H2xh=N>zTsfg=`^{|Opqrx}V&JPpR}_AMQCYKrT28n) zC=cX;D&uKe*3CN}?1iVozZ&&5mJ~GJ8Mb(_wO%%@?>=*~De%yOa_%D^#&>WIz+9X6 zA&Hh+TbsmT2Oa$}W9PD%jm;22+&6;8d18=TV`iW^csC>i{HbuLw&`E=lKt;hvZm46 zvFzv=dC=qu;AQzQc*%~QEclTbbs@jmH@sb7>GqY^Y{A}}4h2fYN<3F{_Xahett! zAvY6fHb1p~KDSZ-4A;$Zrwn%v<%f8c?t1h_2D3TI!Be;Uv3`O~vQYp1r(U68SBSF6 z{a%~m0@r~vCab3yT~;yC%eAkiyR}qTRB13(nC)V+b8eeU$;lFG8xT;fix|gpHJ_uc z^I2^QUKMYq3kHX;R_S_(pY97T#f*2ICGLx9CXFS9V=1WnWduutU~F4;E@`+S43AGgLs5Inhz*Ng9-QfX zo;nbWR|6HBsfXP8-FX<+k8|syx{#`iyJ<8Rk}Hp)xJ?k3Dp^IXujV>@>B-VtMFoVk zEf{3^Kss#@QFvQ6SLq)~KUMeFZ6|@dis;F$j zlmIHSM^FS&wy1ze5K(clM8XazTbT|Z?3pkEAq2t*B){`TZSCFh-0OK>zke#y);1*H z&*z-$T-WA`wx zH`^~%J;U~RNTsjgXK}T9M{%SaO|&GmRkNDUXUb-%rS3`4D6$nXEWEIT)zrx;HkpAz zu0hdxE&^*M!6r)Te${AUw}tEQDM~t;%2FhB$8}bAup6_3Y<1k86pjorUdK$m(7=_N zjNjr|B(SG-Nx4#DZ$@)QH>vCm=d{4vd;N*g_Wk1XS!hI))eoORI==e}<~D<%3y zlijfL28{)ixSL14#>kudlr6+_NA3lerUh$~AIth|SDW@T&G7xR`B}r#KppOHXqDd8ANP&obM{Szc}0t;pI5 z*J?;o>tw4iTbc@V=H}ZKJuJ5NMJ9{q-0|s}r#W8<2=vol}zcjuGtMf%>=EL&d&0vmYf1JpNh z;W3ql$qCkn|JX>tJu&jdudPvY`u>5CUP@m>y8;@VtY=2Kb@J3fcZHM!gxvPVH6X)x zs2{Y&UcEIeh)a?B!ysnjw&A}Rd^}sE;N*R+5DLRbNMX1zVl_)g3PZ3QD7CB`8rP0I zR=BCoRoR65*DFHix<$MvVQBlxz=B`EB=&X-EFy`?4n#AL7R4F6zw4$l5@y^L=bEuZ zIwxai?Vd11dQC}8{wRar&RgplG%}M!dj%eV74(Y;C4$~^d2PcszXoGRDdS5btPdQY zV+FJcoY?cSf}OP*k%irSY4&Uv6UIG*%x6=bl||v4{HD&@(L(x3CN6<6+X-;2@HC^+l^!#C1Y`UO~@&pCmH^@ z%0G~$>NbABXy zoxu>qZY9iHaSVIvhs-d+w76&;P%|UZ^Gv}WyYvK3wba@7K65n5+#TT|GBH)YMKlxW zM%zY*LA%F^-`UA{bZXw1Itv4yk)lau=8bTl7$0(!gpC(_dMPzEF4fHbZp}LOr7mBp zwuCpDMM}+2KNUQa_9n;!JLBy-yIeQ8l35jwyDfdchI6ijl-&G*Pwt6^rz(8@S*CQx z(FaYr`l;3Vj&B2c=2ax-fjGeg-BoOIswkbLFJWb0I!uvP!JF({ci?}FMKz14*nN1k zTHZ;(A9CZziJRX-ZMXKpKS4hDU3~OEFvm|jSp?1hE|5(S>K%>cXCMHopVIWZXW z_S-hpK0ypcK)o?IBZ28y&8AU--BHf3MwOsG%TGJJzatpMI9YB_Rz}i~jOwN;d)u}e z746&|dQI*r1;4=N$w59jk?IKD53nD0zlndrin>P?1-IFr9()Xu($DUk3+Zok|j?AG`gT6?D44!kq^I$ z%tCbXg&2r8t^q8j_mAXgFT@LAXo@s++e0rw*M}s?#t%YN6zu&|VE*@m$Xm#!zqI6| z%r^X6mi)##lv&6)$I0l@=$@Y8vA!FEuLQ|xe5ty?#G}8?X=z9gU5SvIc(Nj?dGad7p-z3)OTc>DT=Z!cT%#ciz>UJP$Rr(eC3XPD-!Exj}7Mzj%i72_9w2!Rt3 zOD9|y{=BXOPXvd~`q67Yk9&g=JTvnv`6TLwyNAwuh}$Tg=HvBzqV&nb@a$&Jv#g=B zfd$pVIvTHbh_31$X!wbib}&$V(#XE~@Ft^yVqI{#J>Oipq@swOtNyvMw8+l8@W=mc zoWdCi$bE}<6?H#OE0IdLuxmKZRn=d<&eIAH$%dcQmj|k!Tnl+{*)?OwOAo^j1#08S9GC!L^IW$K9G_7OAxDAnKs>(uF7z}SAL+Z*dLq!Tnuttg>U-1K#c@sSAHjNj z_4@!V{5RG!AcUdNwI{H^W%ixAMId6I{<(6E{K^CHn}VJg*sB(J>D}$^Jw+=kL|xYA z_s+s-*h%1hX%0}-z{cz3*A4uUzYo(Yrd3B}9K%<9zT>e2N)5`*Kbk*JdCsA(EXL2Z z81Q@-llku(KPHvQp<|phpfA#U?CIO3MBlGJS|n9oFeyil$Ia5I&IvP*a)w7=n9lE5 z#gNftSu*ENvgN^uJVyb;$gM6|ca6~%bGbe3RI-I~KPdn#YrCNjdbCOpTn4|qH_yc+MX}|tn8uk=NIR>o-F?8H^}Gws#b0O z$BUHq=z_j2)KDjPE>^z@+MFkUx^8}gx9mtTGcfl#zqZYJafO}3!k@9hsh_+*I5cog ztT)_8KBFFgZd=U~^5ATxVzGDoLv^0Z^B?wWCzNe!?_nJMG@a z?DVYpjF;Dg{OUo9edYNS^_unnP_cOJO+hkyUQw?_?)}MAO=2<@~0_y#E^)BwD`)N!FS>z6kaY@D>g{udm z%U_+{NK(u*#CiFKwn33@2OrS&Cw6f%6i15^=2?AF_au7*%?StWme3_sk9!g*uQFW>z6lQB*f%3jc^9TFkW1z1tL`6>4*1C1p4+el%6i zmHaIERa_cAX1Pb%zi|`)I}DxzQDsW)=@Hfau*wduj5ji zZXW(+j#junI>afuaqz<>nHL|ejyCNKPqmSXmipu@7oEH{CqE#yG@m`oEkJ)%F}z3R+uCG;>}i&!Cp#t35&MPZZ2{~R;m7W(U$fpX50 zWF(5u#hrT`-0PL6KK~VmuQ9C}C1LJlttm9<{qIc0vNSt?&{lrOL61#KtEx&G?=i5d zJSbH+#HtBzcmRWzczM0^IvQ868f|O(w30h_-)#Xw6Um|FQR62by;pk=*)qLz`DXWb z4tt6%b9>??)mh5zG&i&moG+uurv7wvZ3PU#(S6oUo(nqiDyPB)=_@~^it&h#? zmX@i_1l2`dQ~UgbLGqCYFNQpi+;E@jRFAFk?74Uy;$@{~PZ`RO)Q8~t7x@=0?1+`@ zp8=`;0_oLTCZPt`aFP!)XXH13`}jW`0|3}p^Kr?(h!>m6)#I2J2x#>J!dwN2Q46X1 zl2plk&)Rhuaenvb`1AWJB{_ETY3BTfWtLPQF{ybtIg8HfNq7(r!|uHgs8cs5WBsNIRqx-n8Ax%P)AgQoR_DR|!oq z`c!dR*45{H%K867!VMC4xM01^EIS83pr1i%;sT^55HOrl5MCs%T$Q!JU+6>l3;y>J z{zCT`{=x$2ksIMJfQE>;tO3;W`Hd~&vbI=oS#xefSbXA>;mkxUg-oxw=8H!)Dt;)K ztv1kD)415q*Jr)V8MWE$DF@y%=I7)$)=k*r=O>f5U0RYQgj!~|VM|Gz zXR76|Er)?LS$aD+yW5B5T$Cb?}Kp;4T_ zz;o=k;O5`CBVL-us%pONfUNBYBy0OGquz$lur{a`*j;gP8ztl6T2w{rd<^m23^cz_ z&?Q@clH5=kaCMW>@onWx9$m{B6FH$b0MIEJ+AhGcwIv`q(lTH}-BEtv4`2S@-2#Gg zL^BQpO3PzFcr<`rMa!6O4oZ- z5O0VwmvwKG7Wfpo-uM^&Gk`C)vH5BPms&#~54j7$ zOuLuBh&W>R^fx!$KQXR+KBHuKOEZhG?Ei*(d9e29*B|Rbe-Ny8=XbX(FpW*V3P>yB z+7(WC(CY^-MsDyoJaL=Rlz^Z%%Y=9@TJb%ybVms;3g;zlStSESG4P%K-qvMp5-Wv? zR}Tl!X5|6Kj?v0n5Y%ST^p%X=pl!hw4+_)j68KmM3|9E!~q zWjTIdi|l#$F!sj--~-Qsl>VuV-8|*FuedKG#KQj*9b)GUxUYUEL;Ok(`LA%&Li+ws z&sgN-UWa#u;QxAXF1{NwD*!&+`=8XtvHLX)e&`iD(POyG#rTfYS8!zB;+64B1X|B0 z{?>^7{zRiVZs|rRtIfLaV;kK$QgaV~yzb7C6674%VDwO~!y z`?+0HjJfgtxeP7*;41v}8O+t%nZWnLbmfz^wvi3v<+pWTAYR`yC)$6ue5{zKAW&$U z`Of-Os^IGJm&78ECqZYFnIMsS@_&QL)a+y&^i(!k^=pjsizDym+g99#YQx#SUMzVe zJ7cMo@%yc&p4;OtHw4@aZj@oiQR&@1E+t!rA0BQq&Xeik@V~T|dC_$H#u^ev-_fdl zCHfZuCb+{P?yJwY%mYf>9|F~H>Ev#L-0amJLtCWHi{1~S>t^E2P5HE&TD#T&GwYDIB(h&!-dA z!1uD460s5N2)FtNePCwIESp>bmwnaQ8?LjttGccV*Fl;h=sG|Iw&lR`tZaeVliLbB zV9+$C9C54L!RSYI1xqluO!jjNt!(pN>0T=&332p1e~hTQ=B6v(VW(3+MTKFa zTvZ zRJ~lWyt?X-zRZ??Ci>z9uYWVAiqF)^ArP&9&?9t!Y2`k#%9UId%6U4+>gzq*gvox@ zfWJ;+FcQqL-THaN_1ZfLPirjBpXMk94+aYJ1s_%98wugtAa>S2zIc}(=kTGxBgTQF zfm@!4Kgc$JcAkIia*4u6qmqJ8mp&`5XP^R4@$mBKOFq{udHCt+^G=J4=Z}c|!0ocL zGQ#{&A1Y8*mZgUA9Z^1i<5PS>lVLokyW>$7dVFAX4|bl zTR3}`fF&s~n=#?aY2q;#*fYDz)i;zEkR|up08fFNJ11hFAJ1|C;;sK)3xU!fuwhX8 zze7rY`0@+y>vXRMxnZ4$uK2}k)1IEJM~6vf6+U68{M2}d(cz!EiN}gVk5AhlyL? zmDjeD%FCH8q*>x!TN~LP(~{Ie<~jP2-JV-{HAdD0E)RhqGoaF4K*jzF|LIrf!Vf(; zEW4gV9k^LAqfhJe@2R2|Kee~C|kM0=3 zI-5$Zm~z>anXx4re%SUmoX$JgC;1$`6>98hK9Rx%hqnr^)(ZneckS=!he=9^&*-3S?JW##alHO`n;SHi0dXE)cpj0EGXo5rpr zE113|C;0B=^rw{4!~R6pdEo76|G1z5tp=7oo&`wx@2s3}-H5Zngr>wlR|0Cj)hyFT`kTD^zextha~!w?!BqTlR6?9gkSF@?~L>)gq`;D_eo+ zM6K!c%8=0eiHUstN=gSCDkE+sCWi7k+X`Wl_UzuprQN@dQC}Z%E2BYF)YekK$~GwD ziVnAywtoz!L`c-dC{}7+NT{J>?t!_fZtBNlR+!AaXZw*d_gBOM*FBpk69lQdc| z+#}cf@#;7)j!#cQ>#FM#<&C=@9A;yx?Jo!mmntZLo#4S0t?Ec~lnA+UpLU6m&|`QC zi}r@K6fB+^4cl0ZFG0`Ba^iJ1Owx+( zwY#qIk>Ge+e?3*!hJ>6;u->^YB%~P7fzFg#s|s^5TWHe#mEUtHXx4G} z@7N|Mpccu*&_&0BLfp3%1YEspD2B`uWdq*EC4(kw%C%j%qx?Xzq_*p!YcJL_?yg0w z^(tM@^fJY|Iga#pRZ%54*u){9sW{f&MXD*VBIPMgf`;a@a2uK}aJU`C4hWdIP?u-!L1O!2OEAqr{rCV3bg@w;n)z?2XktC;>5F$oqlZ;C#G+Er< z2w3}r6KmvO|l@{aV(l*VoT5OQTY zAD@-wG%ugLN`2)9TR42NLjENpaAfY2^nZ}3^+DE;Z&olRfM-2y)2BVQ&-Q^{t4Tet{5ZY#b4y6mCm*5XBzk5@~m0fF6(&<)nji>pTnq!@K z5yzFT>0(36Y{K_2#xoN}YjxH$in1-8>`wr_G9|o2iaAk^a;hFJm<%L0Ze2U0Lb6;# zXSBOjNY|vKD7vY%G?%&{Ps~M|Ci-=<2^{cEw}_dvB91S71lPcEs4-W}^)dk$AE>4G zZ5>7Kb_NoEqT~*IH}3kQ&>6#6=Ds5>#-O6Il9%^A@|VTj+*i2#Z;J^JrAK@)m!|`$ z#X8P$2Ql4e=6ziH2yupw=^yWEriOFUC6r_rl@Xe~Gs(r%?6q8gSLqd%VE8$xsY0r%Be@0 zJ(YKg3RSgM8yOSJ$T|hTI1omfinbCHT>GL`Nip$LwBF`-n(U?~LRLnGhAWeC7;jCv z@2bw~5iF|o&0~e{tL}~4%edZO`YOZ6l|aZigdQG_eM6WTGAQe$VW!&4JDY;sFJXFP zDpXy-KD|S}4&J~2u|^^gGj52$s`y@h^HrToWQ+ZDZ*{G|`u+Z-VhZ6ev|WUVxkFK5 z^FkG*a2@WKgP1eb?(QpCvnqzcvgh+h$2DAsl?5~Q=+kT@>yBVBJl5&NT3wQVws8r+ z<^>!RT;zwm+YWK&mKtUSaa;ht1w<;v>)awjKM4!hBtrRfQCRpV&cgtU4r2qOH+YW; zbJ0-0QC!? zpEi!z*4oo5uA{Y$sw!IYw1(^A7CQs4W2&9iksVFnW8Y!o`W#(z8u_^>Y__shT6%qt z(q?DunCxBqemg>`C~D61XUU<4r@KeTif+o#Zwr!r%+rJC>8eGm zCGzL9i?&})m{n?>i%I4Udz+{wiV+t@?a|goiQ3vmP%Dd}j69%mxEj?{#P4w7T9}8e z?LluNTYs)l-iQBiT6)eD$t#sM!+|NJt-V7CHS`girol0Ct+@7nb#!KA*b2SuEx#`( zHC+hH0`d!-MJ5lf?i)I8&=++=@4i+9&jG%RF7gFnjXG@S@Ua||MgN{XsOE8)MUvG@0%v-e2qvg<6E#N zCyodSPYj$dtgWCeZrw|2iVZzlOmw~Ju~2UwYHuRM*QhG{Sc#*pHv@l&hcGI`oXP4}6L{;D5Xf zT_>ZLr3^Ur%PQ!=-&lM^WN9SKo*lNs0KQ<_fV?Lx#AS?IsE(PHi55#wo4)E=Ok@R3 zJzJ!gW&Jd+U7fz4Fk>C}$_Zz0$m}bOD&v#SJ2z@&VB)^Fm1Toog{}*0b*hlr%h;^a zJ%`JDW5V|6lk6R>GRRmiI2TtFH?wS*=4cLyh~@b`R~4HbqGW6sY7#c~_x$}iNUc}klrICM`C?vc_Hs8F!R(Cje0>=$)JH z>)rjKAH2Aq{z_vCnSxdXnSDj?@2-jRwG!8mS#5b?=gmv(S$*(`WeE9iOnrIfHm_6f zrmo11`J3N{a!_VJ5*5N18gJ+@T9IO|u2yBrWw9gH0*jsI73x{dc(p1mk-n6ypPK&* zmL}^%52m*1a~}U#pww4bjCQPjeZ9G+$*4M;F=&D5^lZ1n)=pfH@`*1m$W;_KkB*;m zB5=}})}~!W{4Eodc;8L=_nb^U#Wa+A;NSK&H{i)1ncYdcBbXpfm^^A=3Z$@tgp^gN z`%dQ%R~jl$E5$LJHK>6%qQ^CS3C)dD?Z@)(;bd+_WS_Sc&kv=IW*$?Et0J4m-${IUqZq2y2(QdH_(WI`YkxD;ar3@nV7U8o9o*oB)u(n-Jg7vbEDiKyW{!HZ4(iZiM_rPQc-RlO7g40|^y}!D zR1fEIOhl>Uur2R9B-yRZ^<$qhzu=T(gxiO1!9*DJXaNIQLO|p`xv&oF%t<734ZK^Q zct2EJ%z}h78KYW1zqWNmS1tJHOmHF747}GrR~vpt8y3ukdT^<&INLcrtJ1Tgz-H-m zn4U$)NRyteZ^-%J8daO{HW!SuXaeU$oNq4ufCI;Lv`jqTezjqBMH$2U0x-{iG9YWXHce7#IJO3h?dB$c zUfS+644eD-Sgi^C0tP+LOzVqY z^{=N=yhdyJXFk$M6293I66$Jn`LP3p!6&BH21f2%y<8(!##&+v(y79(D2c6xbP4T9 z2OD+;BVq2ZCB?ML@ftt;l zzd0YkahYmiNY&8CE4Y|8tT}Hz!a7bC=PLT-gVw2NuVBv6P7Xt3%8ZLKO#$eyoxkMe z>db$tgD6NQ9m}6rfsfaBYlPe~mw@BoaDvRvs&C#ir6ln~n~b*o`(4A=C8V#+VP(a7 z2kgU9`{g6p=op(;66ERHAZ9;ATN-@ykm}Q<94T#a4KDJ7PMQ?aNs$(d?yP+sH^>Upm=jRRi{Ru%*I@J|i1D;;u4V|`XwZF3+h=#qQJNFP=-K`x>RnbD zQT*)gU@=^^c@Imq!&Z`65?>_CK7OB|JmNgFv=v%D;Ey=1W;F83n#HHA95yPT3f44o=5+)U}EUF9H-wE?!!rFj6;lM}$1*^Ci1Q0vkU>m`#Oh|?Oq-f+oAU(l0 z858UHXWNO?`}*NlDN}mZJ6Y4Fs8C)&;aA4!8dL)Yau7SYPt`DU!cL{JsY=&T7S%1m z$)ES#s0m@_CG0D$TQk-LPp4h<=w;4KtZmf~N8j{`#nIb`b{Yb-iFj!4#zx~i*-w*G zW;{17m6$eUXXr;A<_HFz$momZcb#jvegiE$SL@no(f(0<-A27o56dQr(ds7}t_kjW z(#Essyqst;-+?#YFO`T1ffZZ;kv=WmjWdSC_7dtiPu+S9d8eUc6^xBW$>~7`MhODc;{Em zw+*pGVS604mP{lLyo`c~&xDduOH)bRSW$N0Y)3Wt+&651Xp< zXIkEu(v}XaWYwwnpHUf`n6Pw{HN(ueQ^Vr6zDjdqC}*VTX|QdXa|&!9Ngh(=Lr2#! z36Z+#nNj}MOrW`5NfGTT5+~-G3Yk<|tNTiHQbW;m9EJq04sTdKCGTBRpi_#G1@uS_ zdY6<8>)wOVqqpKy97e8&I)EHcTn~~Z$oioUt)vBkeztt;jJ(rYquA&lvjr^E_3MU@ z!=9b4#LOQwv$Kx>rm)<+nDrB}5xBUp%xzzRBBZyz2)~@@5346n%Z^$$nRwpKSN0BLaVe7^gRBS*&pK(Wv!)*` zQa(+sTIwk1UlQV>`q9+jC*s5b4~bmLX+r;9!=MJ2@@Ey9l%EC;JNeNs+q_tYRay@l z969cW$Zm=*$xTk!ZQ9x)d`b#I@=A}cW~`b+R(Uca@PMv`f54ASdSuYLF7ZONTPhIj zPW{foQWkPiYx3`=y$~?s{y|mcA_;_$yVFk^5gl|5Gy%x)1Zq0h8y-xX;$_|#Q=h6> z3;mNu_PI3cjFf1!V$#gZ7|E6MYYa6iabaYl?&-oNkCI7Q~A1q5B1W5|_I6$`f`#JeeWfd%E2F`dex;gML0(UP#huwR`*~Gb+?5FvmJ`9wpAg*wy?B3v% z#22Ics=e~&mornGe6_vX98`^}IwRo%&Q8m9}KR>iucDOs5T+wP=0x&_ zUfszM$wS@4oopVPE5^FM8LS8vYoR5(8GvLjEw|HULv?k!|#N&&k zJB-S&=95DJEgW@fnuY#{nwHu8X$szHxHtSf)lni!%H*UFW3*s!$25jF3`nsUy)VI){9A(wmFS0-*u0bX^u~)Q0E^d5t zMeAJ{uge*wm)*2D@6R*XHS8r`FH#7W;T;#_g+x4y^(P@$zqdJoGlrrsxsagYwq}*y zc(_MsGAUJjz+6h)IVQ)R>WFTMopfW=6*4_NLIG4(Qn55N)MF%^A+Hcxn0{FXHB7Tu z%1NXz@ukpwqNQUi&{FS)Jp@Dqr`j$_OKdScW?{m#BWxl|r;0E>074F35F|DmUCzT# zdwX5CQxtv02ksO4E-#H5P74L)zf4Rdeq+2gZs1>qmZZe!D_otV<00 z`7g?4#MYuwfAP+q(GP8|iiH+`yCw$W}b2o|l^f8p@^&)F2DAzg}7t z>s%*k=d5*xhoXd)Pv#6wOpu{rD!|BV5${7&*7s0|^MN~~@|&$q6=@`(;mw_u#&%Ox zh!tMb9VV4BY8+m=Nb~D>it9KB?FUeg1eWKMj3vhUq-FD3dqX@9Rl3$Itef1}=& zS5ayEvx>JMv)uyU)0LBl{j%VvzZ||$BL?Hhi)&RaAa<3N9Q_plb$O_-ms-&s?fPQ3hX!E>>4gM zs;b`=U#)auxi9CxP4o-KkzY6YecetU0I8`DC(Pf4@NVy`jJT;2Xvxo~Bo_qba+zdr zEPei1f%NIrbmkmt{B z=~p$$73jG|sQV@8WS#1K`|+O$OE~+F;pQ{-H1HY~*DLGWVu2!q`!Jowx$MT)WHYvF z``4#GK$+K9yi9>-3fKA4E}S9JDztU&5s6%yD?K^Dx;jqHYj5kt>my|qkzP&-)s6LC zu-*PRci{6qGGp~Y@^vQ=s$jt1`aPk7hDHa2Dfwb+8k*cp=3^4leWvURPK)j#r=v4Z z&CjJpVTYByaT4Wj%03b!+MYKZJfm_0p8=dWg_@H?T0|Ef3-QDs4yrajKt~Wk zk)FmkVoY$f%glB$RI7^=d-s?U=RUuz>Ot)zr52%j<4qv9v{wKLr0)M4d(R?0cd5iF22l{omu{VQ6ws@@T58mC|kGw zzLG|61~J|8y`HMATMG3u&~r?Ko_D)v-|DD_O_$ZVQZT&|)VGRZHZ}?4ddz&Esa0CR zL|jrRvGiC^rz%(l_TEV*;k{ZeTCA=A>@uO`XD_REoo{lyE?R_9{1My#*<|kT}QDN%qD0Z1|J|_*->klv;AU&D$smSi(#hUOraYm-@1VkFkM8=cfbm?2r@A%G5(RIgD ze69vEr)bRfIEPrOb_)&%vr~e%42N}WKmOB9p9Zxe-&@aHbly9eoZ9-7>E<@gA2%~#?Co5)#-uCX>+KR7B{!BGuFhk@E#c7Tqm z%B5=haQN?$3)-V_D{)bUj-cTO#@hU@iQZDH>G9yrui90M-Zh6o+ zS#luf!SN8DgUc^=D?h~7CxmY@?f}{gH5ZMbEay}k?RO3>3HEsYTVn1{3tJdvX^;~& zY#(ZPjoNW64kwTkqRA2ulI3XuiQ$!=M8!=^9kaq|j%C+q97Wyp)p%Voi2Ha4%66qljqKYd`T!7H zHcz{|lxAy^t2@w?G&&PprxBkb)Wt&I@Q~%5$|#!O;`2lx5mlLTPQjGwphAdoI!}Br zksCd4nLR;UmssQ55u2RRA3RM{ytgrJ=#Ix%doQ*Erpglcyb#0V;n`Z?R6Je8Q5XFC z#cj^wi}auqyW)2xF_h=wN?wK8YS?;nhmu(|KbTF8_L{#oe>q#?RRaCWSQDCkx7~a4 zKL;oZ?QtcuQ&x}`O#*g9w} zbVWVoyoTPimKC3=DdL3av&(QqiOk+`%_9Y=0MU<2E4*LiWZ*hr%5SlA=}cNxkVj^+ z<~t^5QWk*T^S1#I7$GEjzS?l^@=^&@ktLc#5~p5KbF3{b2-G5+AKdR+cN;}og+pH( z$)bo;lhLG5j)<1sK86Gq#f5NEpBAL#V zKM^|U<@N5-@=%n?E(+@&OhS!RMjG;)yK$^Ft=FB5TN;Ymrv!m(t7lUJ2(xhJ>)WO3 zuL2E;W-9qTJwws-C+%uVLrEiY*Ia*)7wW_v};QFSV0Pb7U;85f{L+rn*xM{q}2_|_h!YDD$a7F&NyQ|{iqw084btMoo#OxVp`rXe@_ zpR2c49^4L58E?Lohj4`jfz-+e5z%E!16DCUMMiF^2+&k`)i>OCh+$5zoO&;1dwWQ9Q5r~-4WDvU+-fwU}7z9Wx}E50?^08*Yak4M}gDGu1h%&gn_nW(fV3Lz5=%ErvBzE^3>TbehMNU#|A7KmzqIrxjr z|L^;s%Qro}&%g$RJU+hVp?p0GNz6#Zt^(FtL}*(0_VZEf ztxT}q6EZT4-CUi&7uFBdgS+%7=yvBpp8cO)H%M;G%+j{^t%_VubxuU}6=d$^Vj07g z)K^)_=aGv1YOAAuJu;Fd6-dsBs4w17Rcs56X5<{%CM28%K~OLtp9ALrY~lW}SUh$O zKWs}9lIw~!AXoinH?DLqQqWt{Yq-p3``QlmK?8C_?Cr%gS`Y zE04%@uhRYpJ+zlkZZ7d_R+Zr_dK;lk^9c3qw>|U*4CwY;As3JtRQmfh7;%d*-dZcO zi0aA+u!3*G-&RyI($xv^SPsvVm2Mz7+qp_q6p+9HNRw8&+}l;b3;!M%#7ML{wjo6( z7XCofpO;?*{~X1B!xl-S5RV&M%FLcRufm9T{PCq##3ZLvhlLo^zFU8@u7Hxn{=;%I z7?GWVl^;SvKl1Zhgzyd{%4k=K1+b|aMTM*C{V*k>BHm|qo3fqw`C1WM+8Lcdz3QF3 zo>i6GL`ABKw}}d$R8V@IVb0Ho!GeR%%Is-@1>V7Sn`DX2@8c1TG1mjRMTCFkv6i%$v5PQFc{jp_dok5tDoRZAjsJ7 zTMC7czfj0!V&KchcOS9lu)&lr*t0&;S% zFKX2ncPaGlUo0u9D0k2=GLet>DmQoX0XToVk{+f;HiWn@kxbenhn18R7IF#uyW6&@ z02bKdlOJ|H!E=c~JTPR+Pxs1EjiyC`s_4s0@CBRnfKs~(hmCl1l<$K1L^3ik&fwR{ zdG!bTE8HXS^gr~G-h;)SwEHH0#)e9Ndp_(9Q6u)Zu+$G~D60MRZ?@Lu%}wV@ql$?D zJi6+Nxc1+JJBq2Sg^Js(X4u-Y1l5{{1S?cj;5#u$+jIx9{Y@^MEY$jS?*D>ZHIb_z z%SaBC(bnFN@z3E!4(w$T>tiz_6_sAUxe~~|UF1(bec~b_Clyrg{fWCWDGX4gFhd2R z-?lZ(KFo%7B_@d;DubV04{U4ekGC&W&^z_7`6rRU?Ke>$5+qrmCM?*=7i`){!jaieP7Vj_qCFr`9U|W{Tv3Bpt94U!lMXD?HwXW0RV??s-%BT2(N`O zNaI`Jw+l9XXUhkP=DZ;%B}+twZoRMEutg_O1&Rf8-cW!zEJC&)E=Ay!+YBK3w(qz% z4^Odde^^SpG=p}Rg%oxno?6ZCgPnJgq__*?a6WoVB= z9QwmxMQOHf_2oN)u5jp@^ucNbe9pL}6L6qk?n+B}fxOXc57nbZmeKhzM4i zNN=G9kQh)Y3BA_oOSW))|XpkW66>j+o!d}6$tUu}?{#?j|_{;eJt9Gac z{aJAR!>Sz`Z!&(*3oAU(uJEI$l>^nHhzm#ofqYye4XiK8R&Y3&N^Yp5K0x2omlqbk zX8_8{dr}6+u~;=VLb6p@_;7C)H}?~he^O=(rlv%K|DGe7&NxrqN1Q7+fO!x zNo@BB53{S55fTPGJ6yOP_r~3}WYlCh4tn6R19j9QC9o^p0GML6JkMg=P%^yTEAQ`+ z)&DMSC!|xj+8=+lqus&ck*!TkH`&sn3P>oQLgWNM18`-nyAn6h!GszAr@uu@+FRvF zq*iERJUbiUC)Ln^csewPlkSWJD-^7PGjImKN7`R~mw-#yGsrN^Y5!(-#o<(-r~5H6 z1%}E7?%oN|2VY>5G6?lLM{L@ssG^9AR>97t^qark2>^oode(#mF|Ob z6HI{$(YS$xP16btgaK~|^=%!^?qZJ_m%t#vb#BN2Z4lDUJckU>pdH+Cf30)<^;&4* z5gep8#bH%2o0eolX!wKe=^x#8K%RKVR57g=1=HnGkCOqq^Me)-u7PykinTDH5#2vN zW3@hstyf89w~87B4#^n=Qmvwef1Bn4I>J3*unRuiq<{ym0+(Uf&oV$pB)JE&2mpoJ z=O1X$T`Wwo7OSZ7A%+G2lYVpBZsJe9$9enEGX)LWuYrq`eg^NK{Q#8l94#^DUYfbA z-XPKRXHM((yMwK7cA;Q~v3XGhxYj^(Y8y6aqi&EM0qegttmEH5@gMrahystl0M>r~ zZr=lv$?OGFfxmA`##SK*&|erE=qu!q?12qokhlYs@n%MV&p93u))_UT1-;r;y9)^y zVyqn^xHj={Kja2e#A~CUVRxg?0{fzKAg2s{h9saevc1uoeP^;BMS{hQ=`a+?&F< zL1Uq5P~~9@R?sULVJ~>vlCa>SA*BMhg>!G>;W_7N8|5Y?g)b2WS|`w7{R@LM4}a}y zJi^eM8_FUSBd6`HryT3SloPze-M%(^xv(%t(0H5u0St64DM;O1YG?*{1i;&$Te zvUqubcZTjk2wV9Aqg-=l#Zttl%UI^JLcyt<_FMNC*&WioIysr;++LdIg1 zlzg#RAt+&~sNC073#+gS2Qcdoao(694z?P4sU+TsceB@cVa6Ly)w^a2|5L_iU8{7rvkDF5t)BXIbG=3`z(ncPJpBioVulfHi3gy1iyhQkps1Hq zmfNkMq{JQw%p=-ykZH`->YQ+H-2>wy!1uvKLFpNU5k3q!J5uNMHItzHb3oeTx;bcV z4MRQOXWThW2P1++}XTN z&=9j3P%}FwEQ0`a_BR$W0F+fwSKHs-_OJ@S_sN!cj)0e47@e($f43^#hi}=scon$U-TU^GZHBlFBr0B>`nB=gBpI3#=H}?XD_W0( zc}XyI3;N9nB`afH*f~YY_J8Qu@|O`BARE6$Xz)=#IoP$N4OtFAfDzOMuf^-nka>>2 zcD#E#$@e^Puvov`t~tsN2@W8yA}4#=DV{*_HSiuX&Vj!Ct|;di@rP%TXBYWP_$fDN z+F1?q;qml^odld4&%dOI@7G$($xoyCZOqw#Kt6)Iqe;OCCL)5zfqYH?BI_{jbJn&F z234ZMcp$II6x{;t?F7p=cZa(jwI*hl=LT21wnibc-|slssqX}TXGvfjldy@NdTjr=OBFJApis&1(8UA3gv-R z0z7*PrvSI-GerSO4l}wxe{D<1q9*V0-wyzw(SB|+zK==+e=i0Kz2Mn@jt4vya*cfw z7S>hFR2bbOmEz*Cn?1$luV}2iS@QTUf7jx2rFOHdU@ z2Le~j44HBL@STETTfw@Z?Vb)(*K)S$%dJnS!4KeT%y7KsVe|&hDdtQz>XoN5Tse{bq_CaQH;4R>^M}V1J4FF63 zTG;)sf?hTR8IXa8HH{%hKH#mhhlBn1Jsp25`OQ`XwUpdO5g{`>vtKNM-56|>g3_k| zh->(C-ySaPd!bnsoRCaQTNO^MlP!2Ch|!WT(4{+=FIoJ-VZ(J11Kh3ke+2VPFm}JT1Y<)8V!qw zdk+~vRn~s+mIMGLML;7|DJfhq2lga9`-K703L2WTf3923)7Em8U-@s9O?#OA`~sTep7WfPqoTfU@OJ&evol?zdGS?(0Eh1k;>7&?Nhs zYdV-@Un8`XKDk=K*Pgmz94OWYwLp?M>t;KMMYKV$DpHA6b#`RDqsT zU}XoHPJum10I&qncnNr2M$TlOpY~qvI7%qi1YLB~UmFjDf7ADGT!z_yD)832our?v z%NoJ`)6J{x^Aq$2$^-$w_i4D;ZIDMnQBwagbB!+t`N)*qmI`6FKtu3rSDcP?bg}`x zwObdMIHY%yLF#5U{kpa3XFTTMc7+!Hfn=Av9#A6f=XR2Yl4DU#`kdJolw8i@enN_D zME#60x{7PiA6W_bguhW4=>?q+_wuW{ici=Kml>)grZ`p6iUJ#p5S=6m(~!BeP7v zz@D%6i}b~$km{vi5#>pZPyY~Gl@2%DV?-3 zC=GV8E)sVSr%R~g3Kk!R)?D^o(C)7A7WaR%=r0XCwZCkVIfQdG53tw%Yd<6ju*=#! z`n5$|{(U{Qy52Ncfx-`?kIS4=U}))Y1Y4apsGgecqCQj7gvEjuopcSQ)-!Fl$#DH? zotT}OIH}pN48n2}i|I^{<|~zOcHG|iUCm*n>@q_x12T^MxuN zToQLpHo2=fkGg8Qqw^b@nxW>$sFJX=SZ;3vM}6IzwrOWx%UT2Q>v@ZU7HmS$=ecde z2dYa97|!1!wU-ps79PaI6EAc*O@GPiHqcp;cU(hGiN5M+viaIDtn2jb(ZJY;!n8ul1L;IduoKXN z+_zFbJ#m6iJk{w=I$^PNj^2$b4VCS;;QMshT%U4uxEqfafj4K}-P%21qMC}-&uyH;MA2fmDu zz2=W<6L3tv#(*GZ%g=pZs}hoX?D38*)d{bU0mb5Dw` zN&JW9XH;3h&ac@%CgkLBE#wBNsnzBu0`o&(BU2Q;Gwpq5+0_+w;IIh%{Xas>l+OHl zsR{t2&DC)`sWs?h^@78>Wg7B|7B5hS27O#}&*TX*7kyp3z0^Bk6QQ(+F9nC6JQN&h zF@MqK>uNs0;T?e>o4bZC}0Re+@p=3tcmDg71rxk7>a=RPLd6a6mzSNqJr!_?Hu3}1&C-ihX)wsUm(%dV*V zdV{FoRuQ4y!a`quwItw>lIs4_$`j_9mgu&xwchBB34`g`1D2g8T|+sQWp4X7LTvM= z6F%!Mj2VZvJ$;5N=N${ksC#G)w#wDP5Vrwf5uaZFr(_L&^zHu=nU2bt56<{D(6ezH zmC)#V<`1haz=9>P?F-l^KZP*JFfSDkgxR#ok8x*9)i@5*xX@bYo6>Gu?{|0IlFia81Oxv4<~AAzMKFyZFEr4xc? z@9IK+2hMTwK4T}y^|hkkeaqwjUl(U_08vF!=Ke)*^xpqT zNRESL&#IdCGhRXYL`tw?(_djuD|BwZVhs#5B9Ww=T0{eph@=$#M5ESRLw^$R0DSr{ z>I+)HU~`~Wl{l;OF?tmtzd|#c+h+QoJR|R;lihn!rO>U8!=jCIgwJ zX$NTo#S!4wKqzxq9H3gD`M7Rz;-7N&V44i?sgT_uOlhWRZKM9*pcBj1?OHcbF_CdS z6Vo+8YA~lOdA9QhtM{Aj`}YU|t|&|RU8qJZIWzjFZegpgMekWWl;s|S)!7e#P)I!X zzt`;1)`PGqyMHri8&Xp$9}5egtBaQ09?lK8G6%~oZPEH>ka27n*oFsw>%K-vC^a=H zzzp94#TIw{b=#<|KsEq)H3ck?wGQo*biTfTq>rr9ugm*^plGDW&{v~P6@S|z2&CHo z$!uPZA)_2Fv4rD1(xg3aQL7|65puAeQ!3#-aFP6L*t9mbEs9J!_op5gfQ-NsTIuhs zHvZS>sTfxLz~RH}fdE3$RQlUFGf3-zUC-?K%vUm^)31KF!#Rfsv?U%_aZ>J;$zanw zI}8E*6_x%dPD>Q-I;>=4dhK`rWOnX9_$M2NX^)Mj)L^Q5z~0oHk06<$dgV^= zW51vQioo-?Ec^e2_APRxm>fYEw~R^fKHxI|HwPDK;e8j%J|)Lq6%4BU?3M#jSr;2= z7q)dayB`|R{L?;5>FzIiVe5w!L5Kv>a&EUW>}eic%xBQTZAkTn7f`kT5ta6L87_ehHh< z8zvzG{un?9P#o|6(SQ=Zd=-fVUr~hY(q$kY{t0+IL+^{)rdyJAmah}rlJ9_xo1y=o zlV$_+FriQerV3L;<0HX)s4)InX3vOTtz8#N{)CN%^W}d}(mb?vp?=eCC)}n!Fl7G;m<+?XX4MS4RS5uB1VCq8zrn9#80JP9+U%mivyPsxL ze`8cT$>5F!q9_q+V@^X0dhc($i_Ctg|MB@}uEH(7xKd>~?p{j-i0%fUB{CzeiHja; zDuBdM81c7${v!%XZmjC2|JbRefb|fs*7z&QjFObLx(@FgyyM{4F2{04Pm*8{0BW}X zDZ_k52v5$rOW`<_6QNy$Cc|&nlFN0&{H=cmP%Cz}Q3s|mNu`5(qHTK$Hb;o}G*>>$`hcQEum+>U(YXy$@q_LvEwNw%Ly(OyIS5@gNZ_?fkG_ z47>%@_cvg$ZhxexWu;Ad;HwcyyPN4b)3Xv&I+se})Sjx_K}>wINNU~+)+qbhRsr<_ z1evT&O#GKSxStB~*QD7WyYByL$z0`gBiwm#H+EWDI{d4`YI$JF2;@tIfIbbSk_>`l z=Q^869l9k(yLX)@p@LIA!H@8jG8`&rt!`nK`My!>(KWZ(W0WwkG)tN_Fip8riXoO2 zPpXqldsc?+N~AJMBcD5nnJShhKm5?Icwj0wpMhe@JrB~ zY$RH%Zi~G^TrjuWjmMnP`f}l$`LKnEVKfjYo(aZkDQ)m@cr(Dp&(6+ah&>d>ZBZ?- z3v2i?I^a!mMRf%C4TsT)FvM`-o9KXkL+lG)o|~3CZ`eM@!c>)_h;@gUdY_IEOp)0& zmNPYiBNZnZZF;Qwq&o;lx2zOoPR$M%ylZVGYPyX5OBMF8LjNY7v1my?)%GW~C0=O4 z_rUB^y2QKNdLDkZG2fd0EhQBEA3uEszEtmo!tbLVj|uF>O*HCo#XA@6XDP2wI^i7N zaw$+CLRX~7%$38J*-BL=TsrvSJZv|9Yud-d>*26* zoMc&Loor?o+MHd%Olc1BMqZAJSvShf6CeWr#ol3OLUI5pYhzgW{p3ElXmiscS1ALR zV5~Fpje&tMJhg&fNx{}oF;Yb2uD06oz(5h)*+wZ*crrt{}@jk(r~0{M7B8)s|80W}oE6 z=8I!?#_8CppciG0U^>Ya8HY#$kxyT7`(!_>^ok+kD_jIUC`WY$VTA{6w=W)P9;iJM zm2;HW^~zbB=NG?-@Be(ogj$)nDGb#gtt;oU*oEBhq@vUuci?#BhF$${)6`TeWQ_HA z9McQ;9xSZhS|-2LE0{#pq(^9v@0*(Ck`Ic{C={70o{%%nFYe8Q-?}3sUq~7Oo1J7z z#k9t=sw`u~P;=y46X{mzs;yLhy@jKK*IuFGWJ5aI*b1|wiNs3_xj404XZ!cd?MH7R zUlr%Hgp1{YUt}kdJ$S=rqTMGowT|Y1@bLS7>0)zHMbIDBEo&j|b55Ot=|E4s{dqY2 zE!cTOI^3QRzDvz>5E>?$BFZ@-w`FHbL7wENJk|KT_xakS%*BvD*FLosrrVx-oD<@g z=pmPTF?(8L{IZ|e<64B6t#3{;!2qvr`dQ4@D<`$mU_zh&7s64cN*3lDDU4a+o>$d`c$+)@c%yH!a;TwZU! zigSDRf3?P)ZzKqOC1NNWG#s_uaRv#i1cb0~57L2trteD>i-7QbPI%C}LvV<&9bp@E zBITYTw&2xOon0j!A$Nj9`tDo4wmIyvy<}lr#>G9xu`gW zbmmBQW1}eD2QfF2#7Hf;=3F2ySKP~{L3@0@mn0Q&r<6{r8p#Ue8`j(V+@t*l#pxEc zP#{T}o?Y9!SgX_HKkIskEWerzoH6-{yq$TS$F-@Vs8NjMs`pKaBEAs72%@ zMT0QYl_2YctV#gCcSjQ%dOKLn*YjGREUyJx5&r25WAZtBV6a`BuyclnqfLi?hL!gb z+$e`A8v`*BW+rcVRa7e-lrjVAEW82!x_;i95V3iL0SYUC3j$b>~%I1+O>OB_0@$e!kN_ zd>d`0q~SUT|5$bQirc)0@A0#Ih2Z8Kv`IV@;(dRkTizLd;(-JBE4%M$EI)r!yZxor zt5B^SlJZ_=)F@ZE@TV^h#hyrMi41cGk(w<)?t!(+uGTn5J|l#5qVV)0EokLdUNhdX z2s)d4wd31Kzo6{j!#nWAOX_)B^0S>NNN{}77U$unQ46_a#56UvZ(ZbZd}}B9itpD> z2j~)0rzzmf+U;z}s?}9LmZ;abaT!s2&AOpXM#oUhsNN=#SE-DAW>}KlOk_wOdipB^ zt%y5&>u2GXXYL2|!3FP&2%WSv+gM$eW-7#i;HuL%qL zhT8}ip2F3+*{%%P55I*@E*9W)TFQ-u>kZ#2)9Nn2erFOPurnorz~g*_@iO7VS2?cr znYUr)B-cmWf$_e`v-Z4RZ*n*h+{jti9d%SYSR+oresHmo5Kj;n+f`7%o)~dAILzh7 zCq^{C+}lfIUym9VsI)uSMk!wmGlXfLpH$&?nRR7@5;i?o#?zvh4Q|>*CXbixAf?fr zoNii3p=_kP$<<|h%P&V9R?Dj=LI;xK2r~42Ke3JI`|adky2x7K5R%*O16zti4R|Ja+k&L zsqnM&on&4feK9yi@AxBS8k>b`v#5!HId$tw75S-tjN?qekGE@@u^78bM zKp~+7(wvm7WnGxHxT?wq6!I~Q6O;%lDh$#KL)c3!>|8BYN#mo2vhjUkcxxl!(W13@ zs;-#Q=q4Udj><%@PrI*^LR+@swL9c^vBhr&PJ+L3{h!EPAX5L9yFd!N8ELpd+s~XN zV0Tgpq0Cn^=@`&S`sLS?+nx^<3A@yPJaXXDjN_kr<~f5J%3k>@Jl<&>hc~P)YvuI@ zmvtP!W6%#IC34!{K=It{=%Spr;o)m>Kys33$Pd?c1E7N`%05O-ErdjhhQzviwM}W8 zV?k{vY?)-AkVCsb(T>o%WWhP4*th`-f;3C72Af3n0~Z3KB}t;fhdb-GG$-rxaKF-C zE2Si*q$1IBpuF<14dMZn$Qe*b2t6}jcy;(^1jv)Ao%&dH(*uYjS)mVm)&(90 z|D}SB@U^oxjyqF(?}fHfb3n9YP~qMN;>n()`$>ONWfzqjfd~^TJ zFeY_-2QQ^fKv_k^hzC2YMfZ85qqG6#z`$db6|`bEc}TtRthThb-2gMH!$k?#lw>7K zhI2nkuBZjY{T5Y~C@rlT^3aZh9PoG!ocE%WTfHvseQOV&iVtU&W zCp|ckxr_L$m5&X${!n=sYXQTmU3H(Su`0a&6njeDj4#puh0MWN#B-iaXos*M4#GlG z37a-@Sz^?GqD29-)kiEny5bk9suXP{P*?G*sWe9ggTC%zWLRN3k4x>Bwo2?oCTGLJ z(rpLnkr-;@LJyO!&S)!VZj#B!LQslmbn2o{W(Aw>krhQ}^JNXM$;DdBg=?rFe+&QK zdnJz*`3$-jO7#K~P@Uq5KC@QNwhX)>c(jHTBVR;tOM2T5DgwHkc097#^^iDiE^0k- z?=Bqqh@pn*UY}0J4#VogEE^2&Q6!f*I5c0k9x*I@b#?7Bz=6~_Eo7}R)DaaPJ$cYu zaeAcDJYWwgO(6c+N0K$`PAao>_lNBE11>d-uRjW}ya(82RPb6Tn52vsJ~G5{MS2Ez zkuz52<58(jVjvTQJADK(y=$Eq<$7Ql3-sxZsDj~dG%HW#Wg)?H1b90OemTJ}(Zs^( zqEIWV1AIku)aWuQA-AqaqD7BYsBsYVYgv=6rj@nRC2U-2>L)t1ZrY!hQw@b=QWV<-G`)qbV`I1rxS^!%i)@D)3a;c2^G#k=TmB%7; z)7zblNInZkRR!51%G4PZ5jOZC*)Cslh^tW(=t60KX!YoeQE}q#O+w%cV z8@wYe1;aXeWI9Vs}fn_0-?n*Wa3+vAo)ZP5iLP3R?#;RU< ze0rteq;0t8m5pA5V#uL^y}~f{Mbb;6DD{jzpO+A6aNuB6-K(hUrWy$f_kD9n ziPk4xP!tg!Jem7l0astU>3+kFXbtmyG31-wUoKT6xIH_Ng`0X>lsenN8(}_l0jI0a zWYK`ynZ@tYQ-Y08?n_rsImQ&fZ}4AvTt0pAk~u$Y&flp0Pr!noX$QHPb`_5slNPVi zOKgzSP`*OoB9p{1)m)Kis2I|8Tj_&V9Sn2TF5u40PxbD!e4PZNst~?z62B6 zHJlD2FLfy1_~SJll4`Z8(B2Ead&v%dYoD;DHV?>@(Kr#ppy2qJ-IX8) zryYhG?No68NT6H~0|S$ak$z#e1cS9Yvrb~ZpGa69(PM4WnJRiRjdV8gSzd~KD`0i* z+Me>=sMPHyy))BwRlIi#kJ8<1rjV-Ou0fqtl&8HE3(u>qEUz>iN1=Sf|Ex#>dgy4r z{t=UaSR_3>Se1A(#O+dcV-AswK0p^U5__K+I2-#qFw9x)F}jXnccL(m+Zh7DECq)$ z5z5Z`?i^+=ORg)JL2c*!?I%T;fy*oC&yQx67|+p0qM!IMU0t5-J2qcjJ(03&S(zsE zhw_ga$z}XYwen(!RdrpgCYoEcAd^<8wK`~H_1TM#-tX6P1|gX#B&dgLcTBIhSm;zf zjn#Yov29U?NEjG6d|y~7HB)F8D1K3vj}5UHGq2{Tk+86xiU)0*afhaG`@mf>+xQKq zAS?{pr4plaf!E6J1dB{oSc01kL(CHp{F5uSr|;yXDRUy4$)I6n;5LH#u9-TG*HS{%9iQXS_d7}ZglLz{tTabyOn0R506q<+<{w?s5gtR6 zr}uaC(#AZfBX2Jq76;g(9Ll7&7U5yT1q#EiHnxstfaM|vCy|^T4V#DrnsuVcY*cY} zoMz45f|+(1M&^3dQtamdrXPf+9I2N19ZgBk&e86QLxZlNorKlySOK46s2;C%7MDW& zX4B&;L~U-&zW6O4F+8@@;5pBAaivP~xv8B}&t6AY7OiEF*8_-d{vq>G^m zkD^C-T$bl!s-(J{?`3wQ#nV(jS~ynYE;nh381hYVI_t1D-kxsfDEgRRx9gwXnS^54+iG z;fXXk(t>@V(^Jfsv6Q2b`hZ8)!}dsZiLij9508?>8T8#6WbIA@}pJ`QlhXTpW zKrulPqY6QZk_!KfTQ19|uJvY^W(L0&AKO$uxBSqFovwIHYM>#q8#|Fv6c#DE!r;|$ zz>IneEQ^*=x52kCqZOTRDzDH7@~MMTe23cNGlPAm$2U8dt%$0$UclYGLh+c5HTp$O zX*O0+G7{|#UW~(UUDv~4YW6aoyx1-uiPGnA~! zOD;6km`XoX_l9&2io0x030gLn>Qmm>`>ZToU7iL&EGdu zrn!$39K}u9`Q}Dp3tjHgDlORy*aHr<2CBtaEkhM*}3YjCNg+Lv2h5d5f5Ug(Gs@Yc^^coKr{kGs{9q! zH*1K0o+jz??JVaED|)(kI_?s5>?rpwpGBMZb=LRYOq zUS|wUtgKFBM%05eET_AYZ;hgmztrhBKJcELH|PrqCH6O31x(YNG48rBUx`rpJRuCR zTs+@`&s{plRf?n3{j^TSVnO0KN900DAg1PA89xWM0rDZ{3y~=E5>)H4mGU>(vf>)l zs9dltr+xTKlLVRC6o!6eNXxItFP~ez6Xm{Dtjgt(WhP+d*w}_ z0WT?kPO(nTZrV5kJzdHa{ZQUrv_cC`GMe#bS(Y36%9TBe&=W~h&1t*`pUWtjJKVD@ zz^mzi>FE_xFWMTRy|htnbIjm0mqjopgFIrFklPlt(Cr(?v++@EFlb$XR|1#!1%d(c za$Vi;r9e}x5f4PF+;rGE&37o6#g`5c8GeP{`r0c;bsh=~eu%bCOhOfY*tsh~l1ezsJxPj)o6IN#Xd=3zTmJ**zL2my9PO+zJv(%CHS?z zL?gx!^d+~UzT^x*Sww{=PHw2`e(A=}ogQ0zTR~pOldtEZQ1_BA)q3Y}>1ro?Rz;Cx zu}>TMGsD;Cgxrk0MqgcEayDi893fsYFU*PBb=>E4>(EE{)L3LL}RyEkt>#x$;95C z+MOSYK7Uqt=6pkXFt_aG8656kIurS=g^D%~-6KuawA| z?pC--T9@}eRe6q7mZs=a))YXEO9`H>kJ&`QZo$+f6Hnq5`^qGDQpb}r zuhUS`iv*zP8qs;(20jU4In0Cv07tM>XribGvdbBBLLQ=fpu@?qgBVX2i1FlKV>~qj z??^ApG!hIX%H|Zx;}0++mmb^j24wd5?RfTiIlCO0)%L^)yS(D{aq-cCz5x@7!1xS= zgj%=dHKr~dm_QUPj&t=zPpMZtE(*9s=y<{+*}QVayZm=L((afv$0cBEc5EJE8IEJU5m_{vL@#>ce%E9vm zhc;?H;k(~*>B^=Ez40vtaiv{f+RWKTlKgi`>=l}$@_lPd^1C1INSDa>u}i#<4wm>N z&niUqpg9ZZA8Eb#_wv|PdV2y-7G_58q&#Bz0?94slqDCPW^tQ%W95B_w5Z>{@?#vl zZyMwg@ZtQA3&*gC!J3jqq;IF|ch!})2dJu|nP&~XF}g{IPgJ>#_Qq^r*d#LECA*_1 zcgLEFavAIR>Y2Hfx!ZL=r0^|#H`W!uRoZuxF`6F3sEgIR&W2!B8)Q|wHB_8Cu?nYm zIr0?@&xSH4%+O;Tp!s19De_?^M-n_lI`}9ywt@XA`4$0kCf8t&8QDcNwC3DS$XvVc z3cak_gxm1|XC-EV6pqn#MObbrna9exOg@RJ=w@{V^5pNa0zFY+uy;3CP6xS`66$pq zW6NMqJjsK$QZ(Lx5LQ(Hz(#Tem%fkkNqcNe{HLywUf z)K+d^>oB!>*q{48zoWs<_h109XNi5l^H$Ngy;TWiYO*@Z@u4&=r)sKv_3C9D2DyzO zs=jT?hE>vh?!@duVMj#AM;*TdD8ohqsBmHL$41VIUpTa^`gW38sh&y9msZH2vrM-0J_t`oP) z#tap*rj42;6B5+zzwH|(Pwr*bICs7(o+=PC^Ozy~1}5R?8dLh6Ut=u1cEndny=auq z%nA43gskz@^+#wsmGgAop5Nm#J*i$fs7P73K7Lt9HA{k0`kJGY3Jf06z+ZQIOnUS#k{lJ9+I-<9He-VP^r!2|%u zes05Yj3jP~&n`dFdyKQgIbW4~s?k5GGb;biq)W+GSdy{Nz3oqfrTDakZk5mv6bxY< z`<^SGzQ?0}Idb*dsB_krOQw}|AA6DmE!WxBlkh@Zusm@2;S|hP>_~@ zGv3>DQ(Oc4p1zm2WIaNau>~2I71yM}EBQI6c)$`Ujuqy7$4VGNvmgCDb1PoQ9vozu z^a6zMA~9#><5iWMx6gSd4hYe!q_bK@-p}Op6SY@2I2>dJl#3eSC1hK`w~BHwF6#PP z2pBTYg`ktl7P(pDdw5e9%>6~}j76`Ah;X&vOty2;)1a&yIoGdjth>YRq-Dx45746z zX{Upasj@H1(zMf5aF4T}xR3&f!Y)GWd^#?AZ!$+4@v?AUB=Tgu!sc5g!{?X-rYw7R zhqpFK?%}b)s2rzv;@n1J!_WC2RBhizQ)u~vwb*UE(YhA?++qPyF|{S5(E%$M z2S8}(V-d{`fS&CK@A>d*iyB<#e4(oP*r(%>au9-OC^hi>t+k30G4AGTtEfkj0t_HL zt5Gbkpqn~Zph!a_Nt@lJvywucCd(wsHoVU)Qi?pAk1E`@*JPDVte}ca#5Xtw`?L5d zMOA7mp*{8qzAA*9))J5K?!!FGedjORr>inrb*AS8tdKRvlyU*OXN{t7VB1F?|8I)H zvpf;&T`TJ>PAE=y@L3GG^62g5_ImUV6U}zZf^>NkUzd-zo{vj-i^)A^kMD){Hi4Vi$_(vE zT+g(tk=W+k?d*(U{Cjh|{N}3SOazZi_Loq-#NERl3g=0Q%-Iz6zAOXYUU+=DZpZi8 zE~E^3xsoTsUftZSLQ^5HC~Q?@Suro0Wg96K%zKA@p(ogREQL>RgWac(7I1t?T>8qG z6Lp}N)(W@u<|^w%-;CF@`*gUxJBd0nQYFBX=+_^8(mIjU0+b{`a|2LbhHN?E>4o76 zp_pTXG7C|zYvlhL7rwnS;H-$qc-@xA*%bsQkIw*@H$U!GFggVxCYM0(qn$m_5q1!GIHgjzN>wXsmYSQtfAtS$r+h9ss@;SfH!ME z-XlM9>`TmOqh)&aZ>iL4p7Gl>kx{zC3^SjKv|QPc!!_TO98{WBO!hqKJe*%|;goyP zvect3ph9n9KM(hnnrXdCEy@TkX`;9r*;~{YFX*Y>!KJ-w?vdS`V!kMFz9|z|9@XMDff(lNPeceaaq=H?uB|d18>toxAZ78D&o6g&bqI)l zm&UF1UoIFbde0b9peUL8CTUUqdId8w3kH4nMc5~uK$#8*5)`ZZ;=(`=7T{yUJzeI z0N`%)Jj)zcrcq^rt<63~3a``iT~R`yS?Ml)!nIYPE~qrl*@5x0x~;{$&u&Fpkf^*{ zkGw6E7>AnNGlDC5KpBy#DG}Lsf%O?9%HH21n8ZQbo4p`&6p?&}rcKFjyS2i{&?Yqo z4D?4HR^?u0o@Y>7q^(BzlC)B)R&VyL9OemoPvMiulF*)wT4gkrk7Q`;n~E(XW~2KO z;_@5Ci?ettbmjIBCdVX=*EBAfq9#?Xnh&YDyow4=>2K3bqUJAHn?I7?JDkixnWxG; zu<&DOA-tx=T-qPhR^s6qjkR0LEP}G9-koR+uIHh+zjL({_aE9~%&Ltye=&v>t>fpD z=U^}=j2V0Ky%yP-q86CX-Q8kBR;Zj+8}IevCDXT$_{@dkd|mr;@T(U`260ORUV z=knUA;v(Z#xFD_hj`W)~(!u(2-J5^_C@2Y!7i@VIV5Ov_q^T?qlKwsmoIyCuL)d<57qbr7?s(2e6fM_=>FWo~%Ck;^j0MGUgFwJ~cts(_><^hcuz7ztK4)z}QA$ zI}N0H^Y%KyM31cmp;}%4UBlZafoLKml&X)U$}X1*wS`Sva4ws*L30hRYuCa zQse!DeMCb8e}<^8-voN!L=Wfy!X6-$r^kYeXgnojc=#cMnssHlEwRDo{!5ZfGk<{b z2sntSMmdk4AZkA26i8ad10uSG0isivhOcJXS?4{=M)5S;( z=jB8iwUd-h@v{=OZKW%f?pDkTbY|B`>QkHUmA7A9vX)ocylles(sEdwA6LT~jl$(S z+(N(fGJU4*RFwPHrp+H=waV#Oh=%}~NIUteqI`M069DDeo3D6Nw0YSRmo)Q^FFl1s zd-oyH9v}{ZXb&)^YofhlHs(DGNkc65v|idbRbJ**ksV6Twl3!g0$RJBRM~suIH&G} ztGi5H3Z;{6?Dt)mSC2sJ+$!Fo_3CSYVrKS=59wy;DTYa5t34)as$des*mAb-iqHFk z*R@IBE77R|l7t)L92O-sgqg?JD_P2LeJ{?-Gc%j56sIZYBSvD{ur(#8)UHb4BN$J3 zHWn)ybMyFSAgtE=ERxO!_5oyZAO;r_xeBUNEcz(DOhqndyE=~H-o9H%?S(`qdSV{g zNip%3Lp(VR06i?HZjyM!hwJ1K&t<3lfCNucVvx=H9)B=Sjm3-5rvZy^V*-Y5HZjFl*-9w=W7;LG-s&SX-^PD=u$DNStbyoyGj? zCng$o>zE1E@^3h861`haTp$!LeWNiNOw3%-q-fR((s64Z$@kGWo?Sq$z_IKn&cj*2 zKl#$#7$ujv$GUs4XfquZ@#V0Mcp0EkOE|Ph4MD>9yuDT`d={_VW-u3Q^cqR;teVcY zcbF3#ZwYNOMGkkqMS)#rmhoQ2XWkbkH3EnUX7@>DrU9wvHSy$Iqf~Ed1;fmzoYgGI zw9R}}TLSTD|46`hOg?9Fxm&r6MQ#AvrUT(zPt=v{RCuw=MdnpTn_wCC5+x}rh}-fx zrJ0U`>iuXcObGrVKW};<(tUi!=nmsu->2*$7gmBgb!2&qUPKI6ufSseI?bU1Da-tX zyaD-zTEsNSG#6^Iq9CFN4X`OXe@KWG6oM1?vxMmQNO4%qH7_-Z<0rE9I?I=+JnF+| zW5`94k#VNTyN%r#F;DUhPG(RwL(w|O)W2|uk&sJ0=3%To=EV%EVc47|xR>1&@{F6L z^l#7@svcl8c+A9_d||GJgrk4qLH`nhPJQtji_rgDb@G2u6N1`K$`X+CIU(M=rR%Op z)gbhy-LB{#(Q-XlZssSJbgtRpR#48KhFIyxFU5D=eJ*<;C?_Pub;mJDqOSC~>pcgd zv6m4?>$t=P5w_1yr0lsL=6)=9DH=!$L0dfrwbjYQ3qBf3t#KQ%rLRC^pzYaP8Hv8{ zG=8?+m)9{p`v40~#R`hui&hxzSg>q)QYud!?^SeWTQ1yX-CZ4Bj@uD`YnxZczFouN zORJ`rF4x)CDxm`mNyZoRg&7VnECV4uJP=L6uM;g2GO??Xu%eVBvLRSXk>-s!a zotKKH4WDwt8h87!N9Yaza@n1SwOkEeJAR%$4_J|`xdA?Vd1b&C0$;%w{+IOtKorgp znD#867kR@Na~JAnan-~qtOzz1d`?;oYsxulTJnhUs#tORHCCU#<+Fu~-Z$8`x&*)b##~IC3m)xv-bSeYR z+p$uM-ZfZU+`W$0L0+~=*)^xsG4`ctfwn;2csV?2vS3xsv`RU0E+|0HugW=0F*)yH z=~Z^_m6`Z&CLA`61RHi6;^PM{HG2eS7to{%&dN;6WH2AIriOWK8`kUQfnZ$84P-Cl zu=sXb^Zj2F`=8YWT2M;IM#{I>i%fppLOpKZdrwTgUZJ4Ac83QLnQ8gps&IQH>;t%+ z?Wo)cSHnaWp`@PjRq}4UXfI`-SKY=K!%zv~zK1uTh+l&wr{R!*vj);~ww$h7CoLhp zlZZ3uC*kAJTzh!~T@A|Z;-7Vszf>((+&wm)nrB`;u(f;Lz)GA5~BC0f9R>_0BzXrGHzdP3%yqq+B&|!tGLx!xF;bt4qN1p6c4R&|@ zbY%!EXn!>_(nlFkrM-+|fzexM=VF4HD8Y;oOZD7v+Z#tQ*dcCe{{pEvpdS}H1ZL{= zpZnE6WPUCH0y#CzB_ysle;)q<_NaUf*oP!!fD3%y($#%ng~_DTuqk{$LdMl`4h-rN znbh&BDD30s`7P_`*UXwA>)KW@j0kQTA8hV(XC+e)Ps31Kya&C}>=qf;tl8u8`OsnQ z;uq4o3`4se3LIB1dn7Y$SUPb#h1{~}_AP~Y95)mmn}}OVeM&9??gcI9&~3ahnRsbD zCH=^KkY?=Dx|JE29*cVg@KPTuh}<^X4ZcbMSza3 zPF|#LBi*VSe8di_@_qoHIU7%WNY~hHI|YjuAy5cgx)=;3w|6QQo7-DW=-d^0uoGrM%H;5dV+Wjg zKq@NI^EQyHgWi5hNS&1)HuE`WT~~2@V2d+)Msmy!9V$b~sa){^k#`b$-HMxGT>t*KJjchCA6$&G!Nc6;*=^w~McOQmXWkeo0Gfk= zw2+!%ihZ@C5!hVZSD7;S>5*EqPEq{@yF+>_Hj6(&zgfj$rx*pwnWaYXd9{mqqvT#= z#}^3PR-X9}u32~wFx{IUOD|w8Jv~Z6c4s=gr)_kByjQ1O)0vo;Tby2Jr)jF$|8k0! zy!T-1W)AM1DZ;kCYT&->bie^fa}C7y`m)hrxsS`;xmr=_;%pOl=t_qZ(C{%l>K*(z zak}~YEf7?c5g<;I=fW0^JbGpp!pCnX*cTM7WV7DQ+Bpn{u9wk?kuFakZBw&|N-#R6 z0MuDWf*y8chPqAh2DgPj_~_TNRW!R|A|7EjuP5uBLu%AUOwN!t)>YW{1V^AEw6pdG z;Y;kD10%vR9L`ZIRSFl=mhG#YXyQ&UUEdqP0gCvPg5R?M=BW;H(D>*JcT z#kmMSA4$sEPa)?_eBybth->Xm_=<6vyiBG(a_F*x>x1c^Q;);CF6=}onHsu%1MluXc`ij)R||WOT2rAu$c}4 z*RS_!g~H2IVNQJtZQd1=I|WhiM~izz8l*lo&OB3QpB0~p@+^6uftTavjFr?@G{4o& z9GxNBn%*GwYRJ;n-1oWRHLtGAVmZxpa{V3E!e~2mi-HfhQFxWT_vVMIiM@_t4E1Ae ztwxVlvUPhLeBN!EpG}uFb@EO<*%D5mRfY3`B61T4dvS;^nCJ6!Du!SBgCx51V{sDY z>=h}7jGSg^4JU#FmZ2s*oA*cr9X7RwbVX}yL<|#&4xsP8U_9OFo~M=LHMoK^=|q7! z=v|d40~)kt@Q^}@dDF^8r%1vkodJg{{LBwC*>ihfosz-X;j9fpT*vVc&-(@LLYXJ~ z%tMzyM!$mZB zcyV4iy0SAUGGNv}I5tVWv7)p5^ze|z7;8? zofepQ)cTYTb{(3fhk&Y1S&B&(I5`h|z;a4!CtD_U-;FZzX6A2B=JDm(PepW1W zRX>%~_!yy`(Sp%%>7ne+?RPS=V2$3Gn<4cxwC%Q^b6rn4lkY($#w8?7=#s)zD454l z-WK7K?@r;J21drJS`yn%QY{L`s;g6Da>d5?@ZQE?_7pBw*Cv{`R-Qs7CNvzh{82+x zZFo&18Bu_2)L2_3^O@gV4!XWZq>7>{*R6c)PI0obRgGf^vjLCk$i%v7oJtKjvmJ4s zvblEtlNPJLv!M3!mdDkNuPx2X&t;`)HX_oLCo_`deu$2WS5|CNRlKvXnNn8V@Sm2w zQyWed7Y7!{;!2N@a5Kk?^L*_QJY~M=gO!X#HSsr}#cOQ{UD8_$K4OUGfpnP$nGtZV zf8;BuMGxI@xQPzu?U_k;9=o*sW3`$q0;Y3M>#+2NNKQ{CiN68%NcLGIy_2nzhyd!| zz872a7ooyA(IrK60-rkzo4@N@dZ(arN+oq$L>NYqciELjAoP2TI0W{53XRk$szdb; z7xXX?uo;d-fkkscVh!Qb1BvG~70uh2L(E26tALm~5 zY4`nZcsn0gM~Tj!MwKz7UB8jN=i*a*lDiNdyu&-(-n@eSI=OIgr45Tz-W7tdKxGk$ znjP24tq2p|bbNARWHZL#%01$&{|ghv$wS^Ww_Is1L9>hkB%o9E65iE6Zh2JQ+Y!MV zmG)z$DdC!5Z1>kaKbqMKhQ zED=?Vt57djI$C-@&KfyC(Uf`*cs@mV(^@56eynDR@tut)&z@_dfFn+6? zcqhTLl*ooTrRHjvo%&uImbNxBLknobn(iDKvlcHi+m4 z3fyro#6$@gHVw~i3GDLPvN7ISEt&VW_Pm}BU0Rp5B~ld6T^ZQbQx>8KDt^`Qro}#^ zs}*VzI!=l!WciyhpTFVUSsG`Y&;4}HXeX}8-!NWfi9P1|GPQ#t<7F_Os9?izUgVqf z{`z}x25Ag0@b@*Dy2bB{iy4bd$;L@#1#vA*u1l*(T}UrPwM|GNLWOD-)A}%_Ry%2r zr}0sivKG~|xRNfFvC?Vrpy9W}v$wXBLOWna*zxvf%~r6QeH{+cI_A73NM0S;XJU4^ zFsF2-FjeL~9<7MD$+r-L`jOg;S*zGT?yyY^(#N`8Yxv(fEB?c7ieCV2;a%$*J@2^n z0x?asu%%r=^*DXLY8@3F6HT9%gX*LPCV)4jhAM5vUq*3;12z5q8vubYwec;cpJa?oOA0BoQYC9QeT4Z zW76c#s_QAvsPKlp*5qU$OS{7KEO*3v_q|OK)?qpGH%^rHZ$^fUjx$|P zNIv#xB=leGcZJFe0@DkrEz@=mQaZ?<f)sKT zoF2l{YLaRd0+rt4puL~KF~6M9h1aZ@8nkR1EgqrW=(*OrX$=ay*Xshf=QhbVR_`7* zwOg%KHuy^$JFC;V=h`wPsu1BWRyG1k?yt4ym^PJN2OFo1ElI!mEO_FDt*roKzxc1XPDo~8c{rMjkB}JqSSxWsQGWA$q(pY7S6|6E zv_jyQtIKL_jK5%~HeMrfB`B=I@F`=afPOWWfIHn<_hZoW4u`^dzZOJAHq){IuU5*x~%GqF0!I)pXvm z{%o=qNIRPrdC1H4Vb%eKZnC*osHDb+le8ifkerFhDh<9qy=?iCGQ&S{vOL$bWj@## zbY?@(Nw1T~QO1M)4ICGER+OjY$)vz=wn==k#)RgyKB<{bI zE7P5gQj@SK8cVGSb6#9k1)Hp62i@9~aEkT*jVw^@X4LgC7MaXEmGAo`Q9hyhsXj;V z!5p^qW5%IAu-c6BMg_l3z)8<o); zEIk?8LvMRsC!QUWq80ue&-;PDz8DL1DYj5r61OJ-=U1Kl zU|~bIuCEzv=zd9r8~~rI+fJpv-aq1&vqXI_Z zrnJpg8j%?f0+qiISxmJcB8z@!^F}YUU2SYODq23#WJRJ`kXlDosC~=hiax`jNx|a- z{1JshC;iR=b%cF&n{jYoM;kj)+lSF?%?=Aw@1#(ljGnv?2ll?#Raw2rm02NNxC#GK zF1KndxO)h=bKp~4g(hqA?T6@Dg?Bn8@-t6~H6a1z%NnF+6H#H(z1?1Q>~^AB-jH$A zM_-<_Ps85E>LN^wqyMKe)~9r8O-3_w-~eYj+jF{&;K^*!F_8o=ZYPsjutT6x(O|bx z-LBg&kLDG$0wN$u%!uJT?HH-R@eB zFa3fAvo{7@ou6%H{eSE@Qb^J$O`#{kwkfuvc!nlpAIbfZ#*Q0DF(_k3QG!#a0X-&H~k&r;(wr`W3$4&a6C5$;Iiz|8I)0rc9-dxj#o>*5jSzamk}HMeoDrb)W_sCjqT{MFw z2XquFy$pZc1ev4SK)TGisv=sOSpL^uez{!bqt62A2&OC5U zGBSY=@jExuy9W1kv%(^|qJn0fjBh{|V0y8;*%2i9R0OpNzMA%FQ;6M(SPCdnyHo`=33yd0#gVL5l%d9Zq8SpABF zqM~J@xd3R>2s@l`g?_mOIO3bSjGUmz=mh`3Ib*LVT-;0 zNqhKLtV7MN@ZG9P@vYU{0fS(L1{wT^Vsmm3pqv^0**f~_`33TT(hIK*CF?S@07Iy5Js`0_HvE3@lg|>Yqs>%tl-!wTR{(Ee0iW<4g=rbR z14nV?DLwcd7z4HdK+7jp1?*X|KmXpp@}WmhO?i(h40CMjwHD0Vq<$G`Kj3a&)o)Zpo8|7*gcww zLn(O$1BWgLHzoKKyD70RffXm;phi zmVlM!gQFAX3)cfjR9;jIXXf zmI|R5{yk92|HVcvC?_NB9!^whG!K2?A;fa9V^#%<85Q3mf_F-*a3Ao+wpUq=HSDh- z#)a(*FH(uZ0OkYq>d-m>%3%f1Y{le?XGCxW1#q6-A{Ib*!S5`GQ)o62^Z{N3grB;T zpjt-c!(iZvTxy*eVXf+4H*6&Ty$cUWec`*HNeieQ!9x!sDR-zsQpWZiAUWS9CACUX zNd%lma<;LG%5e+O6M2OG?XU0GuM0?{i)MzPn7N$|~EXQm-KD{KSwqKi_v`>!4& z8TDW~4v+T)Jek|v8;5}-{4}(0ybA3b8y5DBU^c#=ycX;muL9x1{|tC`azj!ZZB2Wo`!M~k3eN8;Z%y3BnrqH?QfHrYAKokiNp51M3w6)1*(fR1;?FrJi4Gbat z3+C7oKuBq0Ny~t(tw!Qqoz;_By-n*c;NF-tM6EgfG^LiH7;ga=rET7t-``h z^=H@Bvq<=tvlxd4gk;77hArkL^4aQfiVY-8rsrmG9n za9oo#`5Gx&9uQKV ze?6$cx%2I5)SDWZzX1 zj>W0U$zYOy2=}MY-YHL_YXHw1Xf7iOmY7pzkt4u`s01mc2)VwDh)&Hx{3V&!~+VRi)KbN{Iv}p3^8EBG%#Fp76YLv z&qs^9kk{!Nt&5KK_BmiFTAv_QqpDn0lp`a33ZS{Z0Dr)nuyhR6OESPNdFGF=$$z=S z7zB4Lgx~uA8C?GcgKM$_?Ve|v=$^ z(x3G_Ef~4~+n(no5YVmd$=MGYcpEP|Rs~QX{4v*mC%pcRH5;gs&Razz48isJMj7A~ zm%<>^gt`X#2S&ZPIo7RCMjGn`c(;H5mi+rztpD)x2I|{kuuo%{07!8HZrN^#bOwVu zhn-yw#YGUQ?hk~j1q7qLzlX=fZvR}Uh^`?)8%4JZVOayMFI;=C!*dgJ2ftD3uIhb{ zEdze4Ggjh1E^s-=nzk2Pi*GZe-EVTu08M*=xp+6QiQWvv}<*K8iXg|4S>gkQjPdQVP@Xx#;8U;LdE=?3*Y3%|Ke z8bsmyU{sut32<9KjGsH}DmhtY)csqZbQ6If;F`g=aQ>f}en)hOMV;q5qwMP};u+8s$DKqTdD8Du8E>-irA`bM5JH zMx=Y5)&B@S!3PVE-@?@5_1JF&;Q(yl8Q0ucs4ct>!NRr`TxkBXJ^Q1i>l>}B7vkLZ zzx>L%HLkt|1}w(fwc_IPiV*Y=44giKA-2;GDoRP}wpi%vo!EPN`s+w8_Y)-}zLSWk zf+tP`FpDmwCM5y9V95V~4gAm8h#6^LfN0-7oqx2Kr5XGeMEpax|0KN zzW|e|k(sGAIhcR*cSxW;TSdM(657sK%pvdm-kK zlrO{_0v3g`NFe=MU=9JN{;B{sU9&%+$D_xZ!0BS6sp1`^m~!NJn;iMGEMae*#U-CD2FYnZuPnp9iGjo(^rluPxm-uxhJo)(>vz zVLigA2MD^@f%UL~b^3S!G1N&oTc3LajAwot4sX&JKMZ;Q~FqAJ{A&Z$Rd( znqC0_Rypf3jvS6B?pf~3F+E7wvWvV&AzNzZJpefF2LDt0V4g$wJv{P zW$!VB*qo`fBz0-&?j)e8Q~>SpHxzg$(Eb$JgQUKNkV(3D27iBr-6wcWem}y}UsQ&+>w0cKydmi|! zU^M``CO0-`EcNm|*m|90Gv!8 z;{k*{6-=17fhp$y$z~zbS@XBeLh?`=?*D~{dgk@U-$?7rAo3hT-SrO>IXL@uywtUY zT~T*Z1co4W_H^Mva1dF;+2EoFbEi*9W-{QQfa?Re>k^Z6aOt!ak(=w<#3pen3`4ohP%e)l11<4C2-x=eA={E58(k z`OHjDHA}Nz5D7J5-Oq!^I3d4Oc87RZEL|;%zcl-X#%s}KtZwM2`6vgJ%HCtQp@!-& zwHRO?yF>jCEL9C%-K$Ya{V+waVTsrI5S1Whv>6b*^Hc3E2RQ>mtf&UYtyEN_rm0PE zS^ZBM3~Aj}zcm=%!Rmk7V8EPy_}2}_QMR}u3eQ=-b)o=YE9CbIqvl|2YP~|tsg&c( z18KpM-2P-c+6~ZLeXa_u2Wu9m-zkSx`T1VwYPxB0SR-iDdjkrIctY$BGxytr2Mmm7 zPG6~Q2O%g$3|Xer%TnMdDdaZxIz#e8h#jor`*FtsJ(gy1PHrHWE(cCk30&Rfs^$m7 zXudI{ea+Ttm&Ay4g7w&6PPj>V^YiZsH{UW{{8s z*aX~_`7~V9pKLF-{$CJAwW???h5UEv}DoQ(jN| z#aaB0>{_)qbRK}i*I+!12{2K_XrZ}mJ;D4uX(jt>SCn5)w1L5PV*rOXA6mTS8cw$YSd(F^AA;x)ASPa>Gzknb^B_Y2ES?WQWBeybhTOjiy4QNH z=M5N9Q98ZB%iRgE56YiUD=#+y_kZb=a8{3`Y^~Y3{MLb1$MVso@|#JToP~Wg6jAXH z(D=eem!4js09(rAq&o%YB<&mC;9ilpY`N<>r}jd0f1Gu2?dQCL20V45NQkY>iS+gi z@Q}9$Gl?Z&(E&m`K-mSzWEqV}vN!0#oxcm1!Gj`cqxJ_qFh!sTfivP;tV~T(&T96L zaynZF)lEN~k&?2|UII2jXDNpOTwf+0w1b~c74HQ3GUM(e=D#R2C&d5(M^+p$aaynM zK??oy>0wl$NXE8I(>`^%iTf<~E6SZub^?0;P4mM+2G@FDz5}-KOC|f|SO@e}AVP8@ z809BARoeqP@;cBcdAnXoE%~s#Wk>c*wrdEmhYR%{h>TTEZ$8FU6ZUxwhY4S`Of^^) zeR=qx`O|MC)URWU-*&GcyJx3S;KfW;5c|_m0q^#TMBObaS&uCy7NBr50mn{Vzm97| z47AHT1I^|8++q;m!{IzbF{a}QxaVkH;T9cYLf4mQ83xD#SuuV<6O1m_m;3<(@I|Ww z?vn3m>0m!%ra@L!1{3i!3DOJg8b{)s)8BM#c(>E_6}tf@_l#TW*V^$LOZcw=1fw&5 z2MFHqV4V7o$pgSZGC(&B6|@+*TYl-M5Dcqp0E(QQmFQL7a3-%ymV_JrtRt0D%RJF3Cm{*qlm)Ac^y z9V31D3h=1CZ$)!NOF&=-0{kkTxYu*W%8$N{2`oXLZOx^J5rwxh zJ;$pX;1UL!Z>zD{BuPRSR-)_m(DG7#Ltg(KO|?t?q?t&uL$r}gOs3eOMsiaPs+vtO zUsTfVvu$QdV}@Lao~stAB9n~+{rNsY!`D4>>^orniT2N{ZK%lQ0}o?rV{1^2S!o>u z+VMChe|PAs(4(C}rJNTwIEp=>wC6BO)aZ#vv4L`T4UMY-KW~w24_3CzkNgbS*z)@O zvu1W?7g$6e-_4m3!!GzTEJB9^O6Px(bbj{s=#W~YfHx*>T-br1i;Hn~NALp55aq6| zhN(X*%Ju@i8gi;S%%>%x1DF8NlCm7;Vl;k2?b$$b|*IAM{ z;gUCw2XBJ29fL|?z3ro};W6FVo;61ueQ`k}WsZd{9Q%pwkrNWVGa55pwVbC!qBWnh znpxH&Q^@^rr3MNJ5STTYc6y5i3Hn2v1a8Hhahd#AdA5M_{8;9S7Nb(jLc5Cl!H2tp zS4(@5Es7}jtF~kHb_Wi6;G4Z8QN6&mFV!2y+0aQ9WG1MOx6GiU13DZHSpHhYG?Wuy zeqNAu3_J1uU1IYy%l_)HnGdLrUf~%3y#P>q*9)d~01}Ak{G&V%5euH&)t~#K^K_z4 zr8tNS`onuxgv+GZyDI@2bBlAJB#(A2p}Pi75`Gq?1?5i9Hm(h&QfxB!ht|bnRQip z;$#HSwW!-J(E5kflw>v!s^gCB36&!($Nfw>WMy>~HVGo6HhqX9Na^%NMImonAtRPU zirTYv^6gg@*02YClioH#aV;`ZFO!^o=J4Uh_EF!Q@l6QYi^hHWQeKlqyTLt@(+X$l z76NuE(BGwjzWNJWtrpTY0TnIKHZ?(PwF`i)wj$-tI^PPQAK6xso{wV4!O~~_Cw+nj zKJjMv$sIizZpxj^_u$@LqbJ)-6(4ylHj+==a59v$x9wTWdLKIO-p=l;7EIF1Bv!q> zE!phcS;$~rsp*C*9YY^U zJOW_^$ito`(`$T&c6-#S8lPM?oEa{HhohtpHLButfARzb8?4>TIA43-gS{_^OLrqr z_jkRqy@c?pSP9v~X|5frv)w0B9Nfh^Z8h3<=zhTkqAemxVsnK*vtMFd);OR{ z!NP|jxRElC45=t_4zF*FDfVVVt;cw!__=~-;2-RE6RhabIhs`-gCfI$mQb5~mg@s1qxynZC8u08C^hs^*uA~zq^yDg_yvZfLM^gP3q-}h`v~pj#=s|KFvr!Q3vRc%eQQm%&weW zMe&Bq1nnK|id$WHVRW+SRBw$o0z=Mi-N9oneoG2_DS(~gWsEWbGHZjK?1gjMrm!_= zrrP`?lC2|txfxfX-I~0DgFAjM;VoAct7F3cK@s&UiZ^qeuh>b0cpfR^NLh$+IM2?$ zLN<`?CWChP?vEye7b>~b5`gfkEmT9rpia;?cyvCGv#gKdY_UT*U z7)u1Kyk$s%)feDqlUn=u{oHRe$YBGDw=(_a|30{#-Pgq)Z zQK`V}9JzpR5hXT?i7bbehjs1Y_?xCYa5=vv@l>`g)&nJ|?q-dzzi|OHqT-HW966&L zKw9YvGcP|Nn_auX7J-Fmo(uODW0c2TnEyEB}PfIylK7~v%CYY>(XZ1rq@lU zu{#?rd#SyVzzt6jW}E@TDNpmPcGRT54;u zXx3J3&=2%2J6r89ZsqO)!c^d^C$FW>pa2Z`pG%h;>2LoIR|e)@sb{BSS?@N9z&A%j z$2cd*E#r-xR1g$ru*(ZG=!ubIv!npMKQQXaxCM(R5dA2uA7S-5bdbeI9@P&lw<7Yq zNNX7Tolp{;?S2$QP_MbuI}^^t7T(@tQMEMFIAbs$A#x;$hB z;rju@!ze1IP$=^-$F3wjsHxK>IpG%Y@6&H^yhjs@^?Y958J=7kG?gP!c>JV{S|w){ zVHY5Vip)>G45@2)9CJ5G)M-S^_*6lOA~J}YA8JeWdK{fAi@1uHvO5{HhH}oi+yR5Z zdf+D+Y~apstQn9!AIT{q<0v6xdc*PcFKLY?cjrBdv-ybfvn*Mk*G1OVfM2$3;Gy_L zSoeDq5x`DEz*PzWyfzi>7UD>!;eS$+#dZgq%X){56-)kT(JbnDqj%JuzQYkBS$K|J+Y@8WCceQTNm;c;e^#TCOK_>-%oS zJbQa%-Zhy0HYMY?J%df>`;sCcg#8F|$y{M$Owjx=?h~hI-^(G)zQq4R4LAbYzb)Vc zK{CO?onR-xEd_%*{OO?f|Mi;fd}3v$vt7>frsQN~Zoi#6e48}Yrv8G*>3yj|2#MbE5d z$0Q-xniO+J?P8!Xa)t6m zp+B(+U?N%4gm!O<-o5tYK|R?rjaW8`hr+ZPD#2H5jq~V#FooQX|I@A0{(hk)-4zt1U1mqs=%_eJ$86P?2`4oV2h2OtPY+(_|`fnjIxMfm;Grv(rJf52>)uP=SsF$)!aG`^>yn} z&a^GM0zlReT*eJ-aT*>iVR(ZSw}?toYQFh{Ib)iChw6{nlB)YDuGu=p4-{67I0M68 z?T|u-7)UjjBcx4^xU8*UF%RWb2s@ymi4WGbWZO}YtI|#JejJf9|H7LMsvm&k=!98> zkJP`G)*Y*4yZ4TKgu?g2^v0j(X)hbYVA0f#hSiICW2Zp6{9V24h4i~Hb~d|$xIa<` z>pdW?I~O{wN3z%I>9Y*YXwfR!iYc0P_Zf7KsXl%$Tcm~9dnmLF*vRpevoUJCFloqC z3k2FhB<_3=H(VAqE*D9Ebs%yhZnTyJw@o&jjP=&nVPG}=ZtkMz2VEv+b3hB2{3 z9=c%w9NmzVaX1lIWxzIcf%m*xL;aOpVk(T6&v8G1YIK@XeUS4jYW~%W9>@3ZK$05^ z<~ZLoeyDWh#yRI0&*Bf`^8M?{=D@i}n5H%nIhUNVcm(Ra}}Y_xWKA`L^#f-Ad1uhTGZ;v;8dvW)N!0 zvC9|E-Wtlweois^gQ4*?+I`Cp@wiZ*`+Bwq8pUBt!6bUUUsLj#2IQL-OqjE6JiuHU zy14eN!-KtjBmh}lMd<$sQKf&=v6%DGUn8hDSz3ZnU+^nz`##CH{JasAjUtEMOoH2LEssqCpz2 zqkUr6X0@e_xsN!dgZSQQm!3PrS+)52t9*{zp&(%B0n;W*WVcf@STv<$p2FkdQ(BZP z6O}|$O4*gqQ68BTo$@9$Cp)KUa%0_nU`O@TxwJ( z-AQe4$Xa@+!ER#sMczC=B-JR19~SA!ggvf`ClyqJ01Sz$*Ht$zI+B~z3tvT#+^M1j z?&mEj9hy4_+O?XwksU*QXj-Cn?ZvcwpOJkI+?Eb|tm;M{U(?S+_Onp+(O}jNh48d| zp;xhaNY_j16xm=RoHvUY7FT@H`Z)jLAWEmIxB67^b42;mqHkswpa?>K%wZ)YK##{C z7-nVdM}KFS{X@aq{Imx{T~B+R6_mnf1b0)HBOnoACbjWf?;@G_W&hc)K~|f%fAwBn zg^>P5;|7*HiW?8l&r^3USDRh6}-2{ z(7Ik1HyCgd&D>Ce3V&mBt03INQm7?a?witBG{K_44I{RKpVfH|vz--S9rQ(gPX&On;iWpr~@6N&5?d$<_ zpjv=~IrjXiF}O2SSWAqb)7#@j-~l(_|2h=8PhmeLWR~7YzY4^XZl_m>iY9^dQH|U> zg-N#;ZO2Y~Fy!>8fO<+xjZs#KbAdlu!3GNMD^kHdO>Kz_3tQkxy9k2!mi$Y)&Nkl< zyMkCX5;@l3L|ywgj?e#&E@OS=;^_QL&ro-GQ9*!}m#*Uy72U#@?9<c{-z z);kTYw!2{4i(4jeDj4o!)-J;-jsfN{LZH{<*S-2qW>{lF2Mf&x4WNWt<*W$B)AN!H z_MFf(04eoxMv1g*b??|zG9hMmlo|FUf!}y-!slZ|>plw^3n%n_m;iCU)E;Kpb3cbv z{TN|Ng((KOJI)}yBg#hQ`>3Co!gH~e<~I?i*8P-rSQZ^RW%Ovc=e*1HBS$Z0(|9#7 z$G+k*r&a_{O5hq4HyZ0qsu7vjD=wJuDrVnZ-Pfsux){(g;T1jcNy0lNFpyn(f`)5U z4LTpj5{$7lz5KCgGt$+(E%gi>s$waY!?UR(>R?{<1gDSEsG_kWyi%7 z$xs7F{OD!6VOzo8ix=ElC&y|tFR2FeE;3$a{4lSt+qi~JI3MF>jF#^7CaxzqAUsP} zALa`@&v@YH-VqDO-k+OP>kQ1(x-~LwSM5*elC(woC}f0xcs2jHjH{Q8XY9qSBch4r zMEp2!8KyAHf0iNBSx8_v7Ns|GYa`6(4Rc5EOSRf8K%zaL|S%(SBCs%rGk2*xzI( zKAGOx4fZwfo8Q^qQ^Rd{dVfeTh z7F)TjxHs^eper)S3Vn=1Mw9W_-qnxGKDd1J8(L4f)3q%HEp;y=Xe*}V<!sGfc%n`G+?IYE_Ho|qSXSoRpaZ$$lCg=+J z^WxD43oYG!J#c%+F2xneQCG(XiO5X?V{;qWA~hwuK&FIKB|z`VHS=cla=i6pL)jl?a`lJBR$Bgm$-SFgsG| zm$67`)Xgi%hWuOX^FE!yKaG7BjsFX=&-<->dC&cFx)+HWPpc(c?-c6vUh)JtC`sE& zr6P0Vv5GH575CqE$$+djV7k&U~MEge&E#XHi2)z7QOH+($G85nL; z2hG5Vv$w_@3npw_Y*1<;>G*l_?5v(Nr03|~XXL&* zSD9gt`v<*C$RIhoP!Q&{xGLc(QJ7)2IDB+wJ*J4hVSaj$+6-o`V%Y9Lpfl<1w$vfk zm%N(jH4lue0q9zhuAvvLS;o)OJV{>jevY9I!>-5TCG6*iT@%ezK3iR{*`x`l3TK~O z(Yb(fe=<|UnN~Bn!WztN-M9VHXmPjl&Cd^MbzV`{YN5BLCQ0mGQBF90SR5Y~qZYU{ z{=vgRXIcDw7m<32eu&sV>cE0G zzz-4!HJn;G`@-BU1Ilx#L%eX6wP?bRTi|%>Q;oe=z*gP06n$W62}lq6M%=ywu313X zWwaH_@NGgF##1Sh8JU_f$efy-)l*mZw^`nV$_6BwmU|JdAG=T}?2-Qaut-SNwXUHd z)M%|^$mlkKFs3osd{J2M8jqnnAcBH%1$S-keA6vWL)z-4As=4-a?M%i=pn^%Ou32T z*sqBO<_5Mm{(_hoDDMBEm^igY0P}HiG*)aM*C@{2O)-FmR%-xir6SDyq41v1`=Xdy z(|an?L#WUuqw}XF+x!6G)rMBPXCjW%3Iee__8K6Xck~IGC3RZr{OR-}92cC(JX-Z|c zGc;khEU|wawWBvo9KVX*DTfF-%0B%O1Sk2}q-^PnPbNgkCz`4}CVgJXWp<}POZcFj zft-sE2Atb$(K|{&-Y(G=6<66U#~js;BJ>2yF`hmlG?x^B@qGS+<&ME~&ZQr_4EoyT z2~p_<<;%l){acK(VYeVDNSA?a)I(>{AHmdh{xlT0+;_>9a9HJt-z*3NCYz5(fOnuK z+kn8gcK|%mw?<^R{@47aevgz zv1X(}teN%NYC4F~VsV7WDO<+*AS;P#?qkg3!zc|6*#j|c3(grQi-kgBjj{eEBx4p# zQ-H1Jj8oH(1GOka#>-5}-mn=}RPG{SuVBJvl05|e1;DJsQ2@xqyEqBZs6kA2KgM?; z{Q;5z_WF{S%6@?I&mnhSZc@^I5dHZQV1+@Pi{w1DEt?c9VYbGPBKZ{$bkqeN2Y@es zBA^2%B01j8isjLeB@Ht34Tb^bJpJyPl?!x$f52ME{DCn&)}1ayeR!am1?nNKf1sbM zdv5Y3S~>#j7*sW-GpI0LDdPE-?;Jc@pqtl^wawK%KwkTvR&z=Ha?Xx{Hr?Gy`45o0 zqJCZJo^Ve}_U797SR-Gz*n^ihr*4b;dEb3s!xk&~hM)~CXD!=n9$kEt)z)`9X$4|>|Sg|4a@{_&lH_b;+`^8@LxZJkV>ug@M5!LXp)T=RLhtywFKO2kg zlho@rkbk)}wK*K~zWsr&Z|$YmN;t(?bl7C`&(+E6!&@tkO*cE;mj64-(5d3@C_{U8 zAvaghcZ!v4z4}{%IhMHXABPDIwqPbEh_V)a_#0L1&qSv1$lk}{>O0}1 zncaSGQmuC(cSR$2T|xpQS8VD%*n|jL_ue|V@<^N%P>isnkgFixP^c3J1RY4CxZ?Ey>2W0d5tf5UQF;kcMR z^~RPhw62(#8`%Y=S=r=#rPdBoivnI7zuN!XaSzx6N5AbX`n4&y(Gt}$IwYy?ao^V3 zvXT&N(B!L_zIqS11`-U^Dadngl9hs9ursu5g;801hjDL-NDFCqz4pf7K&IvsvspIy@w7WMF~w%K$?OA zN>K!)MWiS-fKsJMCrFdt5zoA+tL(kj+H3EBf9L$yxjrtJlE6yxKJPsD+;h)7GdGC4 znja#<_^#PoTR<`Yd`9s3Zlrdh|62S>3aQ<@W^wP6u5n!OiAP1P#U8pvHky*)(f`f! z^9LYRO+_%*8wB(HWzr2c*rBY+vmt7gYHxe)Z4@0LmAF+*zpnlVz8bcLVn2_0iZ_Gm zYqim}L+js~!)XH>^qe)F<1v~@S^x0=akB`SO3YdoeYZ!jj3F_5)beNFyGKQ_Sx0LR2i|5IdHfB= zRkyXZ)|jbwyN1#tRq1V3QqynC=8dqW(xM_#xuKZ2=8McOE+1xyr)JD!v5a@I?$Wqv zilv!(jYkcgR(Hu%)jPlOc&1Xz{t4@3Hy`>_)+yTg*R0dcG{XgB0b0Y*JJfPd_?I`6 zdLHEkH3=t%4Xox$o*(G>%zUdj=sizYZ!y=(yQO*|xp^sz)KUK(CmQ{}KJFXd@s-`! z#$%hH*Hl^(rrs)ed&}e<@Aw)qpKCO9EPSkqOry*UCRc8~yv}VrbZ2|RAx&e#5d$%U zTYh0OE!QsvJi9J@$^p-knOw-?N5{N*^7SHLK$fiuQBQj+1ZnQS~ zrL)9LmhjI}9M|H4U#d#`74yH5!-;Qg=&G(sbDVdb-?Ol^-SZgx8`9@7>4USQr)IQr z+Jxp5E<7J|6?!U)o=Yyy(}BiC0xwNnk4B$-n?#@u_oI6>5XX0wnADsiODXlJH1qEb zv$zzRo&2|lSv))Oan+Jll&;%(0A$PcF9oZXpKYw1JeD)u7yZV-sqz5kvV}k^^_?Y8xFMUt6b6Bw$CT_@R3*T3tD0{=KX?4p^9RwER8%KNlf+d7PI8_~J z))$GJ6-_PI?CHW zj_HQ`#5nx6(-oZh`LY+zobKV+S07zATz~Z2_(kX&v-?OfaA%?ROETEjP{TbC_e`3Z#<4%FSs#YABIkBF_H@5I=_dwd=@$Z! zfvw3}Qv1q=1RGj7LTDT$*0@3xB{h0K208n#xGZHkSuK&mRUeA3)?!8mj!Wz1xLv#B zu4nK5j7@Q+`2eSxz9%Powmosojy-{2=jyHHvP^zo{(A$yV`ikz0HJB4ubyiRjKmm# z8W@`P^Mvo!y%kR`%W$8H%UqBl??Wv_y3U}r8G6ukuKT*9%K{WRS7GQEo55u6^-H&E zH#1Mz6EZ_+9BopWuuU;5saqo{(7nFSN14%s&?(i8-0nu@`z$`X3W;U0OYXKtRTqUH zLsui|`Xi%Zv3s#WyJy!3wZ;^`G!%j<^94Y=jv2l+&kCF5kGRvi}>I$}ubG}R|PJoPZZi2kW zbKW?WQ>S#`dH&?5%G0lv=k?~?Ec(Zcia*Q;6<9r~ywbzhvGR5#oMUzJW~=CHkIjDQ z<%D;&j8gZEjn`|&o|FPB+MHG@E*cjU_h)nR#Z4v+tbX!37mmSU` z@kA*hE9uoJ1sb-k`x@V^9^t5f8aC}od3xs2GPgJy=CMmXr$Z>K&Z9`3@~ogvxHobS zu#d**?d{-Vs2v=TZ)iBNwu!f{POc=IZTe?~yU{*Q&b;;((vRdv0SpwZ%t76vvM++p_TG1Kn~#h5w=2aXX;{SdDH zfsd$N%|J%a|CD{D1$BOPR`tDf;!aXaOJgbD9sUmAry9Y#_L9e^b4j5GA1M^gM4=!Q za1nR~<-4K%+83OO=Ms@g=I{}qYuYf3T%#z{+4&>Sy00VpE#`R4SJwqJ9vZiLUwdU|x8 z#OUx!Ox*y6q`9Dk|}mMaWPI->NZoH-tM#Ex5A8O=Hj|?skXKs6+FU;Xet@8{0QR z^Vg~VU3(*ae?KGXkKIZP?;p-c%1T!8R$mydu2ar$_4vkaq7p;$#a!My zT3vY`L}Mf9#QMxWnsQVT7 z2pZ$<5j2kE?|r1;D)8~PVj!6+Xc=;n-?Db~rjHQG=p7b>W{qG5-J^C{Us2h0nD%Ld z=DDe@6CtEA70SRD#K^+j4^6@Tpoq``MntTAlsZZ;%i(Ecbt3L--id3ylO^OVAr8CO z1j)SxQqmR^y=fc_idFoOzt05Y9ba0ZEWkz1p9#S`r9Rh%Q;(ed5*{mkuGdr3e8h#Y za$7K^L6#y8iC&6vPb!NCfWVj5NsMSCI=c)qP3boWd!g^9+Q<$WzJV7!{c(r!xVbDC zcvjD_pdgPl<9voQ%4t%|K(PD$L0Lb{WnDDW z*x0iLCsrB+jR8|k??;C<(nVXN9>x& z$yZa2s$TzOsUKrM*efI8)_amk`Vj4cG~azSaZAx5q$?)siL^MtM;ElafnyFK%{C{&=ZBKjAKX{czI&^+i1I@IG%r5D&Y*JL zi-!|tK|-HDm<4Hz%!2$Cn2_VZFbnd1w6$y;-2u|m=IkZHz|*dTFNTjzlaohc;+yS- zgp`Ptjrg#4u>`h%y#j*Akz=1ALS9~&+kGZN{!eZ?T+ zKoF7CGgE7BJS2n6@hkIr#5?AN)5z3Hqxu7Vr1XG-^ffCJ~i_`~?A@MU*+gxhjdu z`V|TY-38xyBYEz+7i=t(1G1EoE#s%z`CvXL!Jf#i8zDXtHceNj%)eveJtopEb~E#2 z=SBuQZ!NO&u0zBK5^R2%mj6 zkBs0AVn%oPGH0mXf)*PWIA%Y4@uaEx<8h~abpK%_TIyD8;Gd2}Oa2U;m5yN)%6Fr~ zXkg`il_VSF|ALJ&v^aWjK!i;f1sG0KK*#%}yda2{y;*jt;FLZUh;&~e7*EI1E4Xchj% zizoj>UGi_b!-?l>^8DKI>bFfsfmk15-&bYKwjf6k@?{8-UPy>;6EEvdy>0|-drt`7 z5xIw@d@4b(z`oOoy6IX%Oe2FrGiCJ^)O&xmYf8g7H@0U0e}hk18p{FQuzTiDtAu7N z+;R5kW_G+8VBdemqhLisS`)+|W8yA|0~nwQ$&oV6|Exk5C&S;`e0|>_MM#QmvCvdm zXenRKad&WVf}d!>kr7Y((cmJYN#NisufTe7$JbEX-!2g3r|}b?ry;yBM5)OpYN{jQfZuGH=aFDjPU5G@4p z^;454pd8&pjpFNW?{YWIaDzTqy-|3V>zPuRvc9D4SL5$)b)KLxz*kA5KfZe^sQ814n1Ryf=4|otNiG>!*Tonb z=9x2Pvm!5bnR{lajcEfEK9WEAy!c-s+H<4*i!!Ye>-@wL^YamKN3JMa) zlxSqOMljytAmJg(?8b5AS1*e94CNS9>7$GvNTWMOqAUTc4NUgSQetY9?3l*i8m7aJ zXHXrYD16%$g`zBvbrHAtC>VmJd!=;5|E0gZ{it)9>}Ih6L=}Aea8e zE8ABy=a?M+q#@?3bn^II>)|TsIA?qbgRTK454G0pEhbf`QOOG8(7BJ{QVil>9S{(` z{G5&Fq=IBLYj@+6yrgE5F5_ms5%3&;B8}6;d-K#+%_c;PMoUS^S%;IyvVX76oaW|+ z6=_Tg{NtX=noa>2R@H;P;zAb(3?OBktK5XtZZ_40KH?+djjFDsJU~zopdHqv6nM@~ z7;7mDLA-VsZDClK~N~eF* zi4a;_!>Ma%^f#q%4?P2oZrP^q1!NEVP<1-R4AusTau6A&#l$TOT)%B>CE+1#e&B8A zDo_(;%||P@g_5bZhH^j`lO!N!%pf^-~7v z`YBh0A<0LBAm#|S91&Kc8^UqBDllkF4XW~OSf1imz$=+b%t{_y(@KI~ZOEb(b2}0w+Fj*b-)V)~cY{fga zt$PSBu$u?saF0W%b>IZ~S?F%+kc?!G;h&BqhEkOT)WS7oWrZ!0qjaxk1QjbJb(=ui zMDDLB5+exR-6lskBoq$v$qjW0qxTn`AJu=175fm`T2l$6Cb$|1Nk=(1oAk4(p~JUB zflje3fY+0pdUUKjUg?gl`aPIc(ETLW22Q&CnM^^))iGbGJtY*S`v4OZNONGtp8OSq;Op-Dfh{&Yv7q;VWvVJlj zm4iv^-y3iKRP=u&cz!b_6tSB|uA4d)2C8o*FEUMk9ss|V^M9!_f{5JIE?LP6yFd@e z+?$Q_M)}b=swIy=1QHCc!wca_MkPta6+4u&Zsrh&xG@ovO&c3&Fj>y|FX);!;`ao``SWWhy&kDZ>0+KBsp z9ewxzC3!!0ox#~O<3AZxy9Gt&;=B(3oXq^SO+J!9soA@)Ioj@& zUdibqfkCAI>7{pw_1thTzK%_-Ktd(l2R`+TbJD@Lu)ui?&rb8rM1ecLfk4wUKB@oN z{AE`1LGGLE4o%d{|EpH~|6Hxef(9ynZXZ-ge&8<2RIQU@l;aNdszr9aoD`$M*;;3- z{5pZ|w_UBElkX)7xzJj%@!L4;c5V*$@e@MN?QXpWEQ0pFfJGAs7Wr&o(T}*!1T-(~ zpl@6d>Lj?@Ttx4>97*$68Or~Gktb6(L5%w#S4GXCI^+gW%;lpSVY&iN)ey4ey}pQo zHFZd+&H!Qt5O8G`F!xZOcf!eJCK|g@B;AMUS3^{ZWW@>$NVuVD^mTbhe<;_|p7Fm! z?j{*H9Rwp#yv`+I0)S>-!U^OUvrnb_N+PE{4*ija3(q5j?tet5#eU+NF~|HnIxWbk zNMMiif4pQOtBxJItq)0%Q{c|YLnKH6AMbBN(jE4pT=jk%>5fD6Nb_DOhp}`fhU3o% z??IwAGz;^Heb5~s&lfL4_u7=C4m^MByQgZwP||?V`YE9GONqKs8q*z86MTg?wZ-G(BaDk z?VTx~{4nHMdC6VEh-a?|bj-S;J7cq-5UVcDaq*5*Smm$b+sN`YjwjNf;BKRJ{JW

    _HKj61JZ$50=pOow*`!GXCY_O{AOs;n-^9ZmxUx-0XkzmK8Hc2v)(#s4m?Vb@G}& zU)>hAE+{6u7(r(y-koP8@hQc8-^#WAE~Cl4E9p8tBOvfZ1lxc1|KPEX?h4x<{`TO3 zgzoM#b@(8V8JPuZl@7)UZvS^nLJgDJHr;YH^~5x{>4QI+z=?%nITM5TQ3W0id_P;; z=MpE|UXZxemN(_X4W9iQA4BX^ zuVYTaO1{;~EnSh@i8)68Nn?1d*nh3X0Ykkn6QWxauRdr=H*76*43V4e)uy#)um4_g zz$9CkvUum(Lt~c<$=sgK{a*~;UOn(U_o=y^YRxxsaCU`coU@fI%OwRFNp?2G(G^Mx zp(Q+I!G#UMooH1dwA#XitnlFs^lU=f27`?r^X`n;zpPl(K0>rTH%ALk18V?|O#iji z)6iF?rDv=gsgLCRH-ADfx@$;1`e$E-|4>aL2$@(syKlI}EC`7NJYVoy@V|i8x5fN3 zQ#T#X8XCRN1M`ZP!%jbq8qNB?AX>>bIp^K$V||o&YkMza2j6{tQ&P0w5NRGVh5w@~ zYlnx4K&JcSseAl0(CxrwH<6!U0I5ci3Qa2lji{1~IlOwP4%F-3_{2u=yA&^<(FJEIER9yAwI&=53 zoNp*})YG=y^fi|U&Adb0W|kz3%==z@sYB3B;!3lR4omxiaY=Rw@54sO=mpa2lBp+##uOrzX1{7_#;mWRo z^XH|F(oOw8T*Z6rJ}Q$t#!jY!N@J)!+*sg7h+?6PwBNjzHhYjt(2&MI znXF-RXlqgCZClQJHT+fV55rGHv)JaZE2~$^U4#j2L;D(P=JTA@_`pP;tML+ z^~(Zf;~ByaoWfuJ(qDm%_$GYjcg1t8JzYfT1*}&dwL(du&lN~;LdvhR_Z0GMI7(sl zCiYmxg;bgF{%1qC|A@>-_;Z#Ww+a<$9mL!J({y8qKj(1mcdmaanQnX>9rB;+rNOoP zf79O$+?hH6?WEP%6ru!pOb?RMp?8S%dB8zmb3IV@ryR3CxVmbA`L;O_5}=vM-gXqh zNZP?MkTlrsB=j@7N@;+ik2Jg~B6MYkvDX@m$tL%n=<+ZCFQ%hi%+N~rKb$6D0<5if zNkR6g_@e_{(~QIu)%*BZPgG+?HkU?RQj!T}yZ+Pumm3$~D$LyX^O(I>RJPG>!v*P= zz1z|-^wx(nDQ_a>|8UzaVLm__^r?*%g>j+O{ zZw>DZ60+~T@v{mYY7+OzbAQ=Fh18D`&_101+49Qi|HgBf zo&S%Xr2tNHHUf(cL-YT>Q$);7>W_t)TMlE_74itS_0HeNJ2R!zzZ7k8T6}2j!(&t4x39RYJ8HD?A78zX z{@DA>(Mr^#)tJLj8?pr+(*;O}fG`EjDFKg{a~(P^hTtp81;xYjjZZls8HAYVHVe&_ zpdQWN%c$FOL+uqI<4A2DQpu-<^n`GC#IU_AzI*pv$D%5~lwJ)Ar|Y6mK2vvrtd|&}-QK>QdiRu%d^oa8A)He?#av`yol; z*4ZxR)NC$c^YPiTS>b^0q@p8^iU-War17yR%;WiJ<2}2Bt-<64TYse&#in$O=w*xU z-!*!%4wb_eCIAf%co&BG><^RYYl({wWKl02%Hr9U$Xy*Bp{5~mHhc%KJWEpZb}Ko` zoX4l;m1|P&>kaQkpXBGC{y`3jBR4%f9DL^J(WCG~NhWmrZM+i|icGlqb3*RygqJ5r z$agulMxdnO3H}iIZrp4z(b4`P)nt#n1&icETmF;Xj#wzC5XgFaPVGA#vOrm-Op@;XjT82H(BBM2>wuwncRBXtGQBDOO$? zwqj;c#nb@WYm;JU^Nl-x^yu)N!w zbfjan@ituhjpm`M;EvhPP4J#s^zPleWn@`VeBj|=#^;fdk(Y0Bp5B&aUV0Dj#PUBH zluKpYr%m7`ep|G$7IOsLNn8;hk3W^B^V~35 zabun&qOGqdDY;m{pycr>Ip2Tr{5cDZV93X=F8zS}oNm5{MYbr7h=$zZU}tA{!s^q( zm{$o6eEs?ruIN}Eo6x~ChAC<)$OC2*Ry)7nvRn<`bDq9%p;1+ar;QOMe<|+8vuDik znV;!SWWZw<=Fd5*1^3^Eyj+1X(K;pw6RwaQ86$sqAned$DFkLzdMLbnK_)?*GTer} z05Ta@VYvB0cF4l*I#}*Eyi@eac^ILmCMG7xXt8&CetP9-j6C*>Eh*||#_@5AbSwKp z?ufvpGay6%-;d3|&bL>`EWAJOc;&zL19{@oVmeX3w`Ul#B2%m;jNK^n+{>-VU|CJ8 ze6ME_t>^uI>Rh%NpEH-%yP)1)lcK!6f$(UDwz+tCcx+s1*fyaT;wMuC;WwNZIfS$B z9k3LJ_sq|;vPOjxSnL_t_~nnCJ#!`mmarS0gi;T2CkG5TvdHX_mxIXT+=I-aUPgE; z2?ES}jQ^AIeDdPO@##;cO33tL?Yw1gZ;w1>#g2{+hw=9h;MzjsK9zd@eB#z3p>eZV z7`~0i{eLiK8cRbA9o^k1xU)#x)g`LKxBl1g6}4k&u^RCTA7Q{Y4~awJ0*_YA0kBlO zB|zoWdKVrR#`xEOP0Vm<9k2P{T8={(xAt|9KqJZj^%nKNT#fQdN}0h-9AT!LhbS8b zI8r%fvc6Byv?Vgf{0gNa6WPdO_sw@z(9Z5REt2m4EybmLS;wM1rebZ{<%K6@zyapT zEZ>H`%OP)o0lS!)=*zxKTDBYtD*5dZEYo8 z^8~X>d2X!Mv1QkxO8SiJK5^>x9o`k(`}=$vNdmA=|J-hB!-!In zl9OFIyzOpP*SCDF;m|zuH09ch#eAxe>eXlCDLyA;C>7t^^gF6USwFk2T`0gc&KX9b zFj_J7>lm`fkMCb*laiHO?$xv3+_^uVugJ96`R=s3&%!faOW#u#>yK~BaLaXBXzXhC zQn-J$*B-hEI!B~19Jxvzsgo7kNog;3v3%vT=-k6J)#CeJWjrMIw~mh=_l(I2SI~Y; zo`of6!x#MH$2E_7AY^y&_VB3Pp_^;j?Pz4HCtZ?;ilwi|qI_q2TJDR{~+hco!@lejk2bfDr+ zeQuF-jQ3Cw)2K_(UVi`O&%Brbs)mT)_glS1c+;h ze*PyLQ|n>uX;V`Hm;>*Eq6L)lH_qLgn?1cUGc#F>PdHz84~DxqslL8CH!OCX?KtUD zo#A6PrT)voZ&qiUI)-b)Z3T$p&bzkMa9sqsUH!tBc3p$B3EX?1zdRy6_C(o7-^S;mA1grG<)=4Mx5i|bsoQs(;ys!i*k(ivw~Y{ncb z{MRmOR<=;d^-Ye$j2D#|DM5)9V<=ST((2fvDqjLW>Tj5)D&ocGri5?=O#CJ#i)iNZUm4(X=-KCGxUyW{Tbt|^P;gYE#8_GSu5M%CVVJw zCHgenKAEu=SmohK{Vf_R1`qsyd}&o&c>CjPrffmyHd1Y0OKFx>=FmsH_F%Hq!OrR82TX!eZUjhj0=9 z^9#u4y-@C~My=&>Gm{~|GS0D(_2FHi_I&Ef!>%k$vygWQ43~dDtW6 zs3G0|;rMKX{l_MuH8smhT*^Q@>uBUW({!Ns4L>x7i{NbnPIG~;&SBhlI>uNr+Pk~E zmq;k@oUFr%C4jv}cJZgH$*Usz5|wA_Cx#juDT*J~4PT;Tr_`pbI2Gj*DuNQ>2(EWQrQ>5K)dQcE?a2WIbA^^$ak`1e#gxq2gTj(@(IV+|cvptQ6@d*ak zZ16!M)%SF#)|T#~Xyd@oj58&wr8~r>G&lz4U@zQmgc|#N*4TVUvxx#x%GqfiY$<)AL`Y>Z*)Ezl(T$f818$Zw7TuGNlIl%}UUUlRT5C5ib&L^HPOl z*@vCtD3H05dH{~T$jHc;C_q_dRkMZWMPf@mChvI- zDmZrDaJ`vWq3Q|!loj#4Pp*BR5N)Y)$K34n!)I~zr|a{oFiwt+s4$WuLk~y$5l8Wk ztEB;pl#lDHsq03s3JXJG|2$qoI04sOPmJp6r0#jrA4L7(LTj$LRmt8M`L;*UVAgwX z4B6I_UCG4fNl8fn&$O63-zn*n?;J@uCCB2+VC~*M4%8Av#J_#`&hGyx8RxF$PhYLAj=KM!Y z4{J|C6)I+U&aWsAHl^ABH@|wu*mwg|n1Ic_84SI{%q2EdRGCF22Jq`FFL2>-d zGuio)^{(C@)10&ID%fE$txs31Db26{a9KBxPMX0Ew5~*q*I6YU^!P3KR3|ldeJPd& ztFWK;*^+j2e!9>2?R=+c{&f3^qDuF_t(j46I75Xiz1B3>E7lWUI2?@kEK^!A#Y8Ym zdd`|V42AMq#5K_eVJ!T58+Uqbgh0RW$9?7xd?aLVd~&3bSZ}TwuVaJanZ`pwKC5IIez$Zsw0w}Ck56&Zdx3t05(vXMonz4H2 zyF81`iet96dnqLb#{{fCJUsm3@#Eb9f$uOlc4gZNm~NV28$+V7HrMDb1awRfyjAU= zME2`?MkHAH*EsFHl`uThJwn*BZ7B3E-#tq3#VU%(K>TY6bA@pZ35vgLw<&>W1?~lT zz;McM9L1OKvUhs#4H2~bpxg7>-EJcuz3lE(lvj7e4$T3-z7Z<^u^~O_|84aM#u`5+#4a3(h6hR4o6n)KvMsdlM*mVK)&7JyN=%#9lE}WpNAAY^Sy$PBP z+j&$?Vj1^qJdIxC%SD&2U0doe?svQSwew~2RPkbBOJK{WX=EkszL(Hkaa9|erT=oe z?}@3J@!ymnrjs61f`v+F_N5ZyU$<4hzsJACr%u?L;V_F}sZ^{Du8VvvV?EHKN?Tm_ z;D`Bk`XQBH0t|hoUv<5J6X1ZXxV6l}MC*|l&6TMF+YCvAlRgW-8Pp?%<}oVc_uWUw zA)xsDw93N4YW{1-*Q|o~@%R;$E;Dz-iw@wuQI%_5Gg?5f<(dI9Xku4O)#=SkENMH! zFqIS!q^W?>N%gY}*ac~}QDpANsLzq)Y(@Ovr)pZJFkCjsv3NU*TBR*T45sJho$_1! zglkU3(&I%VDbf#-ntfFHBgF<_Nkqo}`5b`)7l$!~^e{jMXASh`)Cl?Lb5vnQ@Xjmu`Sw~j z>J*{ue8G-bYevZi+cFw$g_0l8@#1WLbXNsHhuXj`OVY*`-s#f%R+kg_mmuW&tnk6U z-Y&55$AAwdg5D7~zKu^-JEkh1O_@;#TBZ*?JLvIs&q|Zub9w}<{TDdR-r4zHkf!LK zfJ*_GC#ty6}C2sEGTg|#nFQ?oSyD$gX+BcV)Bn$)?h-;)*b@#9vz z9OSM}brVFPKdv>dx3Vm>l?iYp7*F3?E3j+1w@6$!59X{Na)0c+sn4q}eiJ$oV4PGR z<40rPbA)_l#(-p?9YTE=thkfM@0L<~+uFFB`NiQnrB7mecK~-5jBsZh(w~SMClj}p ziO|L{e}%U2X4hgFbAb1v0VW^6$!9;ZfjM-eP@+oB)$7e|o5SjE@-~rSXhTJ}ws$fX zT$)p`2w47{aA_Upg6Mkv_^jUvUmYuf9Q0jG!46!`n&4)QzE7TmFN<6TWr%YhpBsHv z(RlaiPlC>E1Yx4uzJBnEzTNCqH$^|S0`X}_7`wpex}4qnJ3UXFEAN{ZUb-bn9=P*P zTF5H!(S_sW`Q`D{guR^Txd|ZeZgti8{LqkaF5Kb-br8b`rwiLhV@k@$KX!Ju{q;Rs zU~2H!_x#A}W-8cGpw*&GW>at*ZMf`0N9xg+d9CfNwPkKQ<359v$#9;mg8*HF*BKX@ zY!?K_h)QR<$_D&$_!ynuT#3 z*-6|Z9Gn=Tzkt!-E^S(5fQ!5b?u7?mj?GoggtkT`J&KMdRZX7n~Fsy*78qjQ;#hGzWxU^=&iH?HU zvLBn2x~thvGvLA&zI`%X7;f`j4Z%3J+^gF?fmUwDpdBm&);xL?1v9B%SqUkZ?%=Jq zTl!4D${+MSfyzTWvE%li-|WoEC^ioZ{}w)LF|s9uAZHgd#jvDuu_0~(wOTe)&DsHU zovo%uxcBOG@!-As7>V?9)_vt1(r*tji|(OQx`OavDl~)#6Xyb2h$#y5Hxg_Z@p%zH zaep6fkG**ubVVQZGsa2qvi?_xHAMArSUx)*B=n_T{#%^PQeq1C-)(GWq+Ze7tQ ztASm0e_OZ#8U)wNgMN$8k&xIVTkY@_-&}TMOK<=$+oR9<2P(GrLE^bWpaB~jujBJG zw%pt01p(xx7@nVK;aK9&<*^-G2DCuJS71G`=o2?`**ndsE$gc-`HWcdhB|v zF@rq@niP4%#i;Z=`#b;n4ReTDQslC1D5NAV-#NEI=K({Ee9ViUktE0LQ$7n*EUAw+ z9uqzCjQ`3|4DEXf@jmxyAdF#zFvfnabvulo0Us5jivwuLEV}$J)O%Xt?&sOr=V0qa zSlwmV#qLX^Zg<4=IhPvZdkZDicC#Rpt5L)Z6SzUW19_4OFlomIfdb$KAy5R@(C%j{rY^^-H!T)t37zMnZr{n+cej6`!6wh|1t3g!1Ookcl}16sS=Ft~s9a z(H028h^{K?P2L0d#>Z_M;G!SaeI z$7Lh++u?XV-+_1UjxTF!9B`|l(KzAgT%c*}-@o5sdG_=0xyitmcmIa7Dtli!_7LyU z{UXMzH<)v{=^u5xmd`3^^Em^`2$T9jYI}d6)5mA0hR@l1jX&^&q8f8vKJAjpe2QE$ zO8N3bRATxFLc|;i-^N}X6OC|#kd+BD<qPy8BgPEmYvIzS}{=&!zC^0_BlL1UXy0mv`CUT^mn;#cm9@Cev* zlyK!EwL~br-o@zT2uuH8l1jh!KkoSV5f{s}2U&GQ*<5+2!Vh}`>JE!t3Zh-RtriiIAw)-4tiMw4yOn$uKO2=kdJ?c#nl8;knV%cXdt55W9kDhjy zo8w5he=BC9Xts1l?toKW&Cww_{sq_IZK3Dh9Vh8yuq;L~I?uk{#b2f1KiY#!m zWm6+5TXKRZbr$|~6#90~mik^>M#4+TRK*S2SBJ2)nuIR-TZs?JSto`-rlNst?+Z8e zJRm_=*jszHmG*X~2h!_OIhuCw?;qo(t6&h;{bqB4rA*TeKReo(N2cr5T|F`8S?52> z=f4h-&fZ67%XZ?VYf5S{;>FaSIgAB;`4K^v15fFrQ(TFBkNZ053Y=O+Bp|x|{bVbR z2Tt&!JjifLi9YGrScjjj$~K{%6)kVZZpX0+moAOm{47DzM(Lw3TFZ=J%wz+a6}lSS zVTVmWcy(%DEEc!N;0?ma8ysga5F_0$wB&86a;#peqZ0Tc{m}RF`Et-vGs47uN8eWE zvnUHQzIc7b7ji85B9#rbb_IhXI(ISS04N#S^bfo}7lML7#NoXwY|$6U752;{&5 zA3qvkgj!mdGU^|qk0tvk46^rb2MrHVJM_6dy1YsMYBt~vkFC_cP_Wu;VpaBhEb z|L)jfO6>UXI=MbJ!B1nXCG|jklz@_q?;fG7+YYmgnzyjysR8~MuU9YCmdlvGx#7== zen2IZ8Zg9EO*se7d*-}dFj3i7!9$Z-np$#VL{${?aP>UHK1-^3+eT=6& zyM!9&1`8;miX0&?5yquWl9xOW2{`T}IAD$3*x2^2oZd^oqVsbzp3&DQr!!iGSg#!; zyjZHBCyE*zL&Xskn8oG*#B(e%wge}Jmr4ag=kQ7m5_bqS#1E}*t?cowUqv>E{k+`H zRF*KF6i*=ZZ=P}pAR;7!#oKF*SR|AVeI2Twi?=#neWl3mkjD29M{Ises_#!{MBn5| zqLtoe=twDMCE5tolTLGWZAhCJ;*$6K1gI z^5_}&3D?X;Q@1h*d56?v7<%dEL}IPSp3xH}+<4@yf=WNq-D3*uv2PjSM_UD|;R42G z#%dWhEeBr6ZMd+g(!k-qsXDN%W^jv&eU!21f-+48n0Mcj9jK)bTX032d|Mhs%bwCF zRXQf}b$D_3GI?dQ$24|%ZBZ7M%f-*ERLd6+rXqk00fK)`Yg}1%u57}SgoKZyu z?~JYLKeATsie5w;wfpWAfGwtiBZUFWJ~=Qff!o#F#9Xk?rxV0CE~FN`pc&*x=`QH+nfm*F-h{ScI<@4(8&x&5wIX zKZYnKB=Nx*3rzd=9G8|WThKL_%#WWTu8w892$3O6EPgcog1@LG67ywXXkmo2kzGL% z_Bc7QfSK-*x|_CrfuHxyDAUA=ULGDZNQQ@EGs~h9Yo`6aDlVL5GCP6IuqtUv=dT^o$CG1|_s@`-z&JL){aFOn}A zoi(F|eOTpnRK0qgdZ9gV*dZnSLVS^TxB@zlBX-4KmtbG1V6n1DIglz54KAPlB4w!; znB;lU>=>ginyK~GeYorV?HmE7tI^a%L#uQ90!731e|#FpHlHD6DiR{LV!Ne9t*TKu zX#Ucx)4#1Rf(MlUKtYR!z&92)ZIWV`$`{(pX3wp@N?p|}$z35V%fLoFeXn?eA%Jo= z^IRhvp0v4+WwRWE()5bbjql=OJ z=;a46zxpNJCGOb1rt7O0Dpz$kXkb3|Yge4!+G#aJwEUQ#`~`ZhH;KD9FYNj$&N&Dh zZZ-4u3(RRul@mcMw^@-{DK{yXJZAlM2(@_HJ{gwv480L&m>ABsw|->I$V(&2xNv<* z(|O?zW0bLUC>;ZM^loYNUX|u=;fJ@g7vW^Hg_U{sVk; zmv2K6F_Rs)HsY5z@B;5peMg=s6{VGhO$x(U@XDAy(}@w3T(9S^41=ubDO@qG#;%Ot z>JC|9rnnBXq*_{ORX59%%>^6i1?xAvbF6;!D)GAOfzdTF1)xGhh{B-ciCse;&COM9 z&}}x7uSr>0X*?f8%v^cB&Nd@77t<6X7;xEx>BI|2Z!($r)%;1?Yi&iq@|Qco)W{%S z172wi-Q`62BG=A-M#mQj9B(D*A_GIp2>F5=Y}i^k8WI%IRDki>-r{;-zTVvmRV{z; z9N7a@A8z;Y{q%$sFF}|$p1wNR)BNS@G#{|DGj8&!_EK=X!=KhoIOE0cRLUsHCZEL` zc_IDb9q4L_sx5~TUKKOBqpv};tmwkd$FHJ{33t((@T7chqE~2QL{Gs|Dc_6`mhlU~ zfV(BHcRHJdrL&Mo{dOtdI=Gf4)GeF`KG?Ue({p1}) zVVVr?tq~!lB#%#n1Lv`6wV7HRrZbaBU4#pcRbx#12>ViT?ObzoCt8(<67+d1Y0$YL zPSh<5L$MyQ?n6BoQ?R)9Wp5ABGjK24ObS>b01LZM&c2ytGhty#@VqR2PHa~t79B%X z#;GU!PJJpZ9?fYKDRgZRne!tnugrBTonusyk(aX>-UZQ z31rBhPEf-9!(Z#QL7Y-8HUdd&dfK)n)1(T40ba)BL|aE>*efq73~EMQBY1v#LT8 zGVvi`YC3{Zol&8BCB;}dV>604R?S_t(mr^&wO0-v>^s;L64y!Jlu<}*+^KbJGDu^` zhIr^Wv%Lq*bO@Mi%HqkaBq?`qHI;HJ+;6ymS#4jsC|=b2^Nw9iZoKnbgZL`WpT3R& zfhT6e`=U2UNyrWH=j;(7Wpz0z;dZ}d=)9&NryX&cN8BK;=c7G1rH>%&ifx!QlKwiT zQhkd54_FL2=khWTUgR4Dy=F^|Bf}nQ<7eX|xsA8W>lK5(gq6Ap!rH{S1p#A$2=)5u ze$tN{EI=b~7Vk|DvuV|DJZ@@Ly;VjT1}w#^fUUR!7Ci$b7^R&v5)c7j+XgV#SecSL zYh=WOP#E<6ggd`@mXaD%b8|#8`STP;)Rw2;!;>`}E!}+hk1QIUQc>0~Io}^)c1&9& z0)#>lX5~sG#=_OpoiVuTQWG_GeJ&t|)Zv?UGF4-sOKUY}eZJyj!196hx>Al-(9h() z;nt!VAREiyWq*Huj_TE^1}iiQe~>nBxvn64W-g*)_49$RjS{JM)-BzR)?XjdTpM41 z`UX;xHD8Z2FUujD)-p(Xeg2+*EIon6ms_!yBI_M?5A3>OvcONiL&x>u?@oQC)@Jmej}tFYBX1aAr)47 z@Y?rFOHp)FX&XFG91nX;8}l!;4d2QvX$R=8Vtu6|fiD|L!^K7gW8rQQ=%^i>Ca-lY zb7RPmAHCyCrS?LG{}sr^W|%dVV_-mGiky&FJ}wo1OHB6#kw}DW=3lhWllzd6a8CMc zdU_WkH7UdsV}zvs6l#um-x@&}qs!sNZ{EE5mp}Ag8V>KM3}P@!*nSMzN$|;kSG9tS zPVK;HLBaGL2=Vpv)I>=WEvg6i(^mB7 zvp^U;AdggB7!Uo-r~Z_DB7anf|DZegQ?4n=1eCK>3a{k0e-7csr)>;a$Ug@R$tfWr zjtbX5)?Nr_JTe!Nq0>f&4iS#Lw5-s8q~R!{|NKeG{k%kPpgcMvcSs>ZR+Yec^WpzI zXd!!$`{~2|OA2{M%gyafK(HZ7)}JgB5^n852Ci2T-u~2Q{$qV04}0U<3-R#w=fp?G z`VTql9wfK+Q&FIYd~6YW=k@+SlEe#BJ!1dw$B0Wz=h?qbuRm`1`$X#tNSSQp%n_;I zuN(dw!MnjI;;S}T4@7>p8={45NI`Q7d(4iktPm=iMFLj2gwLX21*nXTkKn|S%yp?J z<%F+{(&gKm1%V^ zPq)90>8cv+Uw!Yh_|0(DuWvWN@A&(Q-6}Rr{z{9BD%ZY0o03x4n4$kr(kgXcA3qui z681k*0^IQ@OwksqS0*0Pesoo25TBh&JHb3R(K7O8GJB3@&Kavo^Qy`i%rH#;2$|N~ z=%aIwo+S*qTC@uJltEPC5CC(%sSCE%~2DH6I%xfSPY+hXjYA*siMSyez zP=3((qjN>AR`Tin$H=)k(=ZZr_(qp`k<*2xhCC{8TQ5K?A8uN&1KjwVuP-vWE9M|J z%u#e15ESlEd`*r~{b-wDzSCK99==rEpMwWFx4$Oc$UDrQC~JEhlJWmsZof4AKi8wZ z6eKOT^O7!4!DjWNZ;*EN^nn5f^87-dOG4s9@gk?5$H-ZLc??1wE)a~Oo{e~i^5>u{ zTuP@E=aCRqk?%WG-{W!vQf#l|#2@HVm$*bFjR80$T(W@FjpYQnOk&bTI^!mT<1&kI$>xSZRYP%sj+&(zJl`NZ05xx$D|-nX!-ig z)cN(^{&#f2JLJq;Kpi@BOL?NJ^5T(~jG$F8zh-G}zJH~Bc`SM6)*iG4Rppkd48h~( z_&TsJ!(vtAa^Tj}x>&AET*XiM&H~}Z>U#e{!cubLc;6sXB^ENac?i?7IvChuJ-c=A zb~3MGgVf@pED2KiQI|#u(aZPC%lF3Ajmsab8RXV9e>qIKUO!z{k7-a3$&_*;Qv%Iu z=18-f?1`C_(n`CUMgl0j!eTd@L2~cw+rm^ohc1}%{Ao&jeeV50?-u7zZz6g^ z`Qp3;V~5=0)>B~DG}uH-9$sHs5%~6Y(PF+qEcOY1Af$;6j+6}mOTw)Y{{VOa zoT5!?qQ@i>>%Lb@iCv_F?0%f!bxcG>`10Fn3SWj|OqHi2P4T1}HG~iYRBQ#W+c5AT zQEXp9{*S0n-not~BXibQgig+%iW*=@r6(oINn9hTjR!FaA0rGis>NWfbVl558CDQJ zqF(F(wYWNpjL6$`_jMH5oy2h7(ricosd%K0c|rSxJ7k{Yc@aQa!DGP_z%&&+VDKJM zFC%&C*(Bz)6)g~NCeAE5DQd3H1h1~O(R4!LAVF}d#O}X6vrM>IDZ)$iX-=ZN!lY;Q zp6iLhfnOr)(KXvD&rE|_=i(vjb8HLA7YfkVbJx1Du@QQ~U4gg4>(Oc4eQ&SLbCc`u zdxYzCf(jdRhqU)S5e*US_>f%9!|S)g@MQ-K_F>-*=K-^(mgIM%#giPZ^a2=Id07_g zrGd*e>^4RGWEn(G8jn6#RcPNnD%ay^ReghqU19-taOU+)B4oQhPq>8j#4VK$2CT2; zv(J=P_8%7mMs|>il0Z4F2g*8BMRx*TQ5)Qhv-EE!-dj3hy zM|`X!w#a3+liobQV0EC8sbh76@Ap>S&#xI#Axo-BgG?C*4fI9{AflmDiMa0tm>{jI zD&5m76^W&bVqwCah^cZU`=B)a%eq2*f#m$GY*rN8Rqq*-__%={%UI*3P*3N(067Co zTDD?|Am_nKN2>@1n1}&oGS#E}v~zS2zBZH0Mb^v#?I<9tQ z<(^U{n>In0juNb(i;r3kZJ`%qrpN&@#W+$4>@uH;c})oiI7C>`1Oxg-vv zm*Gw8ny^saADA&;6GBs~wantTPpY!6R3Ea>HDIV}Nkm09f3I1R| z$?=GkqL*;z#L?_c$jRau3^TrcRLX**qM((*jroncLiix;9su3@nr!1=VRpgcdm{d{K??F1>F zM?C7(r6}W7jfFW3w%y_&edX`MvKMcVWWk|se0WijIH@b*wwfPd1y6Qt9LPH4PU8!DKy zVBYHZHmE3LG-W=G1Uw>;ga~*mz zc3WxU&em+Ni#khqLx9~Yi|7U7f-K*A@+3;w_%6$tfEA)8nwctmKBbbDB~CIhfy99q ze)W^}W3mU=d5ub@dmNR6Elji+D2wFTKjazq2$H0h*EBggKWwolP9nmpi;NaL6uXus zBK3TD=i-}*(hhgobw5ZAN&*u+IaEkqhR1Ga+6Xh0^K4K24gn;C^vlf%I{#HJ z21=Q|dma=ylx-@&?TL~g>}N))6WQdgG6Xt3>auh|zUF#Q`U3Yi_R8KAg6me&X@-Tp ztzPUT&ZBPwzc7=xWhApZbBESP=iO`a3VpOSty3{^MgyH4#vvliS4Mc`7<@t^#SXUu zSy8C9^jdn5n1U|O|c3P?@Ym#+FIqKZ%gJ`NlC$)}rW<`No zI<(^2$DK9LDkiLgXvFjlcC}3R40xSHT_do3V+a!;s4w2WStCuwnm U|^m@F!pl0 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

    5A!JXN87a>rz7@J@m<0^L_*K!AAL{r}keT zXSocp3?BHE4enG~zlPq-xIcID$zlFt;utN-#oAL2#_wjB=-@D?&gVkmQ0cP&ew#r$ zh`2h_OdA>65V(hg`jzG0J=C9}MN%w=B@4y)s^K0KnX2Rz@Ws>&&{2I1M#G{-k%;JOu52#V#$w^O0FkJwfXS= zkL|PqKXosQ{XEHz<8|a8@06b*P*K8TTFM6^8e;|*UG4lnFh5~>;Gc4=g|JGaIoGEP zDR0RNU$oPZrweU4v`CjPK&BIc*y>*pAkX`6p6i}(brH3$eGKl8Q1@G5p?`+YjP*DN zKse$TXhq~9pR&^^{|}-df0}8yK9sF)2vUU09cq59s<{nH|~i-gqmmH{qF9?d7g`U8|-k>kOh)C!KCRLt)V*p1DkhGHx)Td~t=;FF&+DAwcGT z`$!}f!5tZ-FIXFh8ElVj&pM%f_N9;Vm0*OL-F&B{j)3_cQT5rZZNY8VPv3Daj#wCK zm1P~RRX_$M)<){?T^scK+DYZ zA^sIC@|_Us2}pGR@xQQMKx+%Qyz$vnvYvF9*}1|1l;J#T^CvKZO+h3dyi@A}&5{1- z%}|rko0s3~5hD_f9i_Z!R=WVO7>B}k27#5=?e|ZrE_(Twv%)ja08bzF<{9zKZp6)x zzNDJEA~J6L1)4V>?!)-=b#irMAH6*@60sO@rLF=RmpPK{_SKR-myH8ZGc25sDQ0GR z8~+MU1ONjIr6j=IY6_sFROhJ?Sm^`EPCTH6s|?E3w^G(qJ_0 zt?%;sNHKX=4EVbe!`#txil_D8eWs^`vd>mEZt25L1efWMC=&shfN*E7B^qF80_F?0 zf1~67rC^l*I`J@dC!bl5rOW-M0WeFRr)A9<`>H-dgWFT%`=1(}vdpUrOb@CP1|Q8g z`fw43+3M~ap;66)<*$TK_fzl(3onH+Na<7iq%gPR3v$vX+R^GDv8#%t%B}krtqlB4 z+=^fu+a6c5y&;NyNuNqym;GS-i@W0db1^AZ!>T<>8!J9XnBBd>Bo4aTH15ML)S}%g z;Lg5BqtyvbXoZ8jzCx=^8ZsFOwaU$!&}%6&2PePBdw=i+uBO|5cVWcW5~t@cBtswR zVRkQ^>^Gkv$=0KuWsvm)ai6SNw=K1TeDOltq+Vk z$o&d|dCzH-V>- zQU}4xe1+aUB-=4t69ktxl6@p6>lcgOTdd|1n#JH950Okl8hbsaq(B94czvjg$;2;K zU_ymoJ(o4ri4Ue~yPjn>FDnjS-0zH)fDDa{mE*XbtcjOgMAx*&8~g6BSm4QI zF8O_!jvnru`iBnaE;~QdwpdoP;3D6xq4{MiiDwkuM07!wWV)iTZ6)2c`uwWs-8J z>wwMj&)^DXypN!Mzznw;Y{DA4iIOz-dRE2>J>HSFzNdi-k8q|@0B`GazI>-Al-aS(j1vWO|ZTU%%K(IY5DAr2xH!gQ*VlRt(#aUNwJO0T-RSMbG`xRk1Qg zNcR;^+_5w@bd2m zJ?SDzW6%d?W~ij8-v>1n6z&}w&bhmAsk%PbDasgrt0$uSGr0C>*iqloJ%I)W!ZyYy zkb>BZ!_$U~^xcaTNq?r39Ez^jZaI^7BYK#VPxONPP+GCVpQmRzoHY_|{Cmh0If*&< zJt}h9z79??hT8nvDdFe`RCtTBaBdn=FLEchLjdO58QMnS=3{)h zZk+t?@9uwj;{irI)b6j7{WsAufFDPYB7k^feZ7)mQ62I`KzqM%Mn5Fj2TG6s=+B8o z%C3%&N!w#)9EZ2*bxK!0W^1HGn+3rDs&(y$zEd_(D6VUPaJBvd$%Udoy!AP4E;i-* zzX2mGU&l%t1>^?Ty%xCk;b2lxLRLl~wF<<10Gz5O@fjd>7pM>?cb`gn|8i}kbs$>i z0YK_HQ-3R(iN|E6&-F7aY7YCb7` zK0WFA+Jb?B+ke3SyAu{cUx9z$e+g7^%9gWS_Wup}#Nc4?lZ}udyfkxc$t1vu+OpLF zKY4X4l=UkS|Ho=zwA2%~`_^d7!)KdftGC`7deBW3GuUT^8fwUCrY2KiF-`sXJSTy);vAyU#@P~c^D+~Cuz}!wUw1w z<1H`5hQF%C`DeoH?2~pmlahn zVN-oila?0Hi0TOdY+VEx{{yIjo0dO|%^VTTntVx?A(BD;6+iv{`S!wXgv=AO zbsJ)?&pXN#h?(tt5=^_{hE91Z25_pOuP%?w_AX9%Jd2G5}|`Y%0eP9e|CJk5*yh z8uV#78Kk|jS@T(MTO0?=-5%={e^8%0-T|Mv@Kt8)RTz@WQ_;`KvKe8Ps!CXMR z4)Ec~GU78oVPQ-IlDiTCvjpp2#8TXULU-7>6aohu{di#d15>Lm@<%mpT$yVxu){FQ`|Zz_@epPxg`$|%VTWtwBM9E%mj(~1aZ|GlUDAA)B3*m=_GBHlS6&(Cv8gwLZaM^ zf3o>Wk(IHUq9@vrQdzJ9K4wxA19#7z|lTL%+~uX6**6&xyjAi^&}@G|61=wGf`TPRzb;QEi`{BMsc zWa<&0gy23?a|_tnJq_y&0MI4+nid+!1*^F;DRn+Vd({D-1sssHHbRR01q*8$t%};r z-*f!Na(@4n9FFM~X00Uzk_Z1x*8e9?5NL@r`nT)~S?U{a2vf=dh|niY#6nn`Ns#jH zyaA&N<>XV4xmAP@Uz#I!%Bj${<+Axym<~(_{({<2SM87f`e0*5Jf>SdK)FT)-3}7G zu0|{~LybrjX}AqEJH9_zao~zh;$!=t4MEFxrg!=v7TWb;MT&6&u=YcuLr+-}Mch+99UyY7V`CewZpT5-WXOTSrUb6V0Xkle9q=o{ z5=>qjH1Gx5zYf#i06OGJZHf<+FF^(y?6H&l$H|iT=nnv8x!Kkxpjv>K{gSMMKCQe2 zU@K6%9VLJq>USWA`Za~6$EGtw2NKR$m2xHU|+PLf9n`B^zXJm z{AFjn1(;IqA&OK6D}0%3NMwOi4%AjAtQU}5hD!!(hrb)d7;M8Ur3&?fdfg84Z2yCE zvR=sF3If(ftlKCMwZ8vP3b$2D*HO>bJ9*36^GGp|t2i$qfA_v)QA}?(Yge4WH;&E4 zk&n(9gV;f+o0R$j>U3IRD2f?Qx~C`FfPU5np$4HR7tYu(TmZ*>b$Hy|44oEQKmql$ z^U`1JGSNG^&5y)navR6~f>)fsOL#r1=B;KQMFRg)OKkz=IP&8pu&;pd|5qcEMAe*) z^ke{O>DQYZ+loAu&R+U<@?B2u%TG^F16lSzr8t@PfAd%${{ZR$rAtgAV}AA|DT})% z=WBHy3TltpHs0|CwkJ=6b=8T` z&trkvbGOU!v~sKkQ(B|9NK$G4ttN7X=9YuvB*dt*h%P5n^}=bTNR}bpAuzr8RsUai zgS8Wq;p0^OscQv3K#FmY92bs>0;yl+%`Ik~v@y zl7T31kJt{v&HzREF}>UCDWvooCoZUiqx;T5!TJoqqV_WY`*+0m8QEjO@fXoch9T<) zVIpQ?ODmi3*Nb_O!JgwbS@_Di>g5o%|_Ew}a+o(>=9ABSa;TWxJ!hP6Nd$`(Jh#{Iw|M zI+#)tJPUApkxY!u23V}Rd$YyPZMZjsVK5_lXj&mvv$TAr7)4@Y5WKb8I&1{Q4UGFF zf*$_y0zmy1#44SgZ+69tgkE(NAfL}xc<#xYsTA-J3H9d*4d0oMevgL2$ z?K22c!(i))$rH0w0JUI)V|I~K%Bc180h z0*KgYzY2YU826kC=U|xGx+hGao{N=MO*(zGed$U*PPyxV-L6}{;SaN_Q-2Q)nz|!Q zfUD4RcaoBaWv=-|28i)j?*;GATpSJ1Ih{W$HJ=KN3w2Yg{YiH)ce7__Yvl-2=BMq5 zgm)NYX%*Sh>HLPV7V)ZANe}VUs6r<+Ia7huV(@0=o>H`!As#4E`cH)kh>-gio`vxS zbL(xO;-mxXZbIs?J1wsJg($GSemG0{f>_P~l*-~H_Xj8a`Gx@z8V|j$CmQw+Hv8rv z5)<)kchZRv-3@RC@QU{eyCeiaoq0TdE3hHVCgWZ^W4ZMuGoYRJnEc8I#O<@Ks-MyP zCte;-Ep+=0#XY_LHRtaF^KoQN`XiI|RIo1t?f+4!Nz?W%z zjM@gMhTH1hY ze@HxCrc=u>Z=(6zQ&Vkgp+XP(i010B0|hEO+ZNks04N`9jU!I&&7@O6jwx|D#siA+ zodvNx-mZI=VX}ueFL3WG&}CUA@K%%Q38Q+bOoI#^cH<9ju4LT47_>Xwocw`*wE5ib zad0Aem8N>st}+VjSH_kCq*(j?NHF~jm)mZY%kfpKYsLvGTO8=V&^Pm|_?t94T@mxb zCe4#=yt(?2T4iAjdLBeAp3AT?Q4($yzjUUZFX-v~3{E#5jK9Awhs~ywyFq%t+{Vqc zKH4%}2(B?*%RaHc*cVFy^8*nR4Y?VU^Ujwkcs(B~99_i$79)5Q*pp=16b#Fp%i+vf zmNUcJhC_xq6O>c@4l~52gjKh!=(0QuICzaF34}_*Jkj8u*u)pb8EV$GTT++SRA>*( zHb*p{k%)NyGjZ9E)R$24@d`7ro^T7A$x!VbDps&E`2M*_oG_@#YE%tn{DolsFCn zQLjRAl9drZH z=DihoB*63J3W(x_37a;CQt?)cyOr)a@qUB-Hdzv=bafY|oA|AB;&`pfaYQKI6OUuM z{1f59+OW6B`c%}RwGOJbYY_JMC^tj0MyRh4M|5TXQqg{6!D_tFo}YxFH!N-{9)Ekp zSbe&LUx1hHe9;IkB}|VeIysG(`&`8V%sf7tvZ^^l?SGfLnrNV1;%6cGc7~xwIdkpb742Pn zsDV{l{6n70mJa$VTX7is(7><;YUtSY7h$GBu=Mze-(X|j#yJwOVl~+KKFb?!S(06| zphbcfHskN1lXp9Op=AO%#@?Y{alyls&w_36fbC9{i0JDLU}CI`js=j_j0H~BSubp; z7KbUx^>EqH1l^xRBe*d!1HwO4YIHP)pnznM`?3A_YNRJY4oHT}lZn|Rm@UoJ3WT~J z={fb^?9oglly>Wfr?`98LtYsNX@;%2ZPvaO#SgxiXSkB+*!K{Y$0QfoQ- zE@L=X#|h&nLHT24uJl7$Z{YN<+c*xGhnqelLF$zH&WEPd;KGlce6o(YNsyKI5{s!R;)7kN~873!*^l%n|@uGgHlzp}r&IP$v^yLNfy zacJH=@-8Xu=90>o(SRUiO!?K)mBPJewb>p{W1bA2sgDz!V^5D(vm~H}bLIv8-!IOE zOLck7np9kOnkkMyc3z$}WYv?2*ofDtSKYUqYPvdPN3-d0X-!>q$y@ghwuNO%eI>$_ z&h3zipL4OlYklE3_;2O6Cns6qH-rRUHPxuz5uts&Wrsem@18gBSTXp7jE} z)@%3|B*gS}0$-bWF(6rsN9?W~M(mHtl7z<;o)RB5N)d@zUkLG;EPXKqmJ0;u2wuO` zKhvIuT8LY|<6@fIt~HvO`KFH?hd5v!~;lL{xXHu z!UONXZOl5p`p{&~R+SE|K6s*ux@`U0Pk8BS1`PsJL!(Wg7JmBR`=Nv{UrfWnj9-}v zq_~OY|1;6`m#pjvYNKF&hgfoPoFRiH)d}GIgKyPjvftCiYK4g(F>83`-QdgD3c7>X$aUwG*Uzinsdl$1 zg|OPf!_-GElQexL@kx>1_pLL#Kgy#V`UW^^ zcLUuE01cB=z0}?0aH3Y2*ZGNUwf8HwsD$yfU2eCNp)Az&6N+Rf=jls6#btzJX@ zYB*Q!P^0O%a2tWF*{L7}sv(*gn{h`XZpwU9<5MlXzgh+g5BSA4_MwYQ=KPZv zcRGTWQ|fpII+?OQJR-=IruROXOZ1W!oAuj6ryV*ibpz*dI<3E}Xe`vDd<&8H&bGfm zw{7i!XK`tNTq93CQ+iDx83=V9AlqceiD&?@a90s?DTjQr@62#u%aH?Dn}Kz4@vZG% z^-@;sbMtpCS{X9?UUggInB~&1#tSzRl`OHkDN(_w>pRNTgn ztNJ}gIu=^RkCv!4WAHju!ACVc-~sh&V#Z#TX8!ZMSYbi`*ehG_0FZB_1X9jr6`a!J zkFR1*Q9rh0F_64BR6}Xt#x5$jEiAItB<{`S7rXWguF%%8PpiN6rAk!kq6Ivt#hIgG z%92#fPU2otm{(R+Cph81ckG3&p>yK{_wb5{M{e{L?S;N_%oyOvb;C=f!@RfADUB4% zTdGrYoSoM{{Axezl#;Wz8N}6HuqwaU}<%zCvBFllu55F6_^;$B+_j$+IHNLKnfXJgA$d5pJ9}tC)IO$&|In z{9^*TO9FgSq{M+wfsrp<7`DfUv-k{q?+7`qtP>MVDHrnatLmgf%Dr3VaT+i8of+!B zE%A;0v~7)2rFjhhy_Z{?LY`YPZne#&nB9ysWN}F5KvBq^a z!Foa^0kcX>U13=N;c^Q_u_{*`ZnMjJV$JABly_f2mlqfCzj_ae(st(&mSJ}}EE=0H z@N1rwD7g%OalSMr+O-F+Q39O|8P-dmdcyH)a~{QM_GM}if>zHxYAzPRCpzLnv`|4+ zgu@msEq5`g*TA8r(_@6k+}g|4;H3GVFTJe+1~uYpC~o5SWB(TL9ntH{1PHWeY)Cj~ z$QIS6vs&)0zpX$+oK|aT+FQ{P zm+g05TZ|vteg;^+o8UtgHk=x6(;7R20{UL>sT3KW4xntK*Hno?3HA`gLd``0B$Q>H2|acg<%&{BZ{B#rBCOxD2$xi**X z?PA-)Bnd^!PaSh>aR&$b?vrl2SFxfGpjLaI%C_B`wNQv8z^3fsJn_(J63Gf%&4P>7 zOioLHm7GATN!0B2I# z`)TRCv(t*sE?ZoPWIZ4ROyBIeRqei!FC6tnH6wZ9S=<~;)=-s?ts|7kz~kg#?j7YGZr=m)6Su_2K35<-S!*;mc-?t;@?}OH{e;Bpr;R{AeT%BYuTp^We!n4t3&- zimPK!5=LN+VaK(vdf)lfHpG%Lyjq(z2R z*?(eE^F`9oAK?!~x{^-hbutWh_lP~u4o2W4j&eNSv_Ble+C6}joN}Q~@#MI%elE1f zu#mLpsNrbFBhfZdu#V3~8J}^q>@D0H#jWczO9wssADZVZRa!6(Z8AL9{DuX34jTHJ z!tV-bM1SX^4?zyjJ%F~G18U-=>tvlYr}Vf+*aQ0#moeWblB=0{G8H|q8PUD?xJ6K3;`Bz-(?WaQxI^=imos$81A05u z;!$?W_pcCS?G|S3xm^ue3+ZK6S~W3v9#S%3;1Q#^Hn(?ciY5e@G9BzVH1akx+m=bJ z;Usj%u~CGk*(d`giJhA(x`;@PQUKj$K-a|RyRkb=TqJNPOc0__{Lc4TaW#u8jvt^` zcAWWy-CmDbC&<1}Vj_4^+@-xODL>R4!Taj_8NQr=&;6VR*|Elk!%ZcQTq4wOJG#`^ zHXkS0R(LwRW?R*E@{ht3t8r?p^p9x>YwikFyGPxbkU?v#f}U8*`+QGb>WaR>wt8EH z3~BK+HzKGaPb;Hw(YaU1{)5gjcYnZabh0)Mnrmp45y+Fg1y_X5JV3Bu}M`CTOmPw_hjIa4M~F56_#< z5`&UgM0+n!bfDG#E0-gKNP9ZKWq7&!q;1bm8Joy}^2ufML-llsW3&(Wr>Bx3noSz) z6@_|N;p0WIUdT|SPhL9!1Wd+JhxS%p@k7-M9JM!I*j3@EQ7X=})GW$m#MEPU7PgJN z(Pyz|d0V<~H_BR%vH?P}-ky(nE%mKzOv9fDj6K3!ff`#r&%N&4N-J%$g(uOTTKpeM zo*j5i5k`OJI&*XQS6>x!!td$fzrx$HAem3igMIMCgtJ>l8}Wo;!`aNtE;$Y76d)8& zqYV)UhaB5F(|aftSiFaR+G3p1JbZn$*U|3BE6U(JYWW#u%##Fezap`dL6&W|2 zADI?>*Jz<;q&6wGv1Yr>jSlK_#?wKpOq)wK4;93%k`-@NVG3*d29^eLTHl^SWIZTJ zrGwtSoajDfuW=i`G0d@jz{b==O`nOngUER(D^_lEPuMFQotDh*zt!m?z3Wx)Hob-_ zD7YL>W#F01uYgo>AIooG{Vw?Gb@Dg+liMNmqe=2xvzYQQy=)1q0pO>615CAt`2C&K1Z zc#*9W;5C3;x=1r=a(7YmsUEKv5yNnGWFgbs9HDL++lwtN`lx5z8Y>nLvaS#PRHPmomrskn-kuB|>v*7UW0R(3l&*sQV>9KPmk*4ibK zZs)@a+Pp>KVQ8*Ah`-qPsk}%Y0w`5iLJEoWr1uZ%4iYv1KD?K_YYk7agl z&B!++K8=Zipb-zpr3P9fvrF(Q_l3KtLJhUCwO*yzV(CGJWtv)JA_eqN=|0+b6SR!~ z1|1Tvw*{6-7KFiS!24$)q>>sVS7CFKlZ!5PHGGn!cx~;~*ypbYCk+c}8VQ?q_mSzVPPOw+-J+e{#Z}VxEhGG&@+8Eo<7bFD@qub>8LDk zTJl)0$K%R!I3IRfURLE2#&)JYEseTe1^S`^wk>#h$q*|3 z7R8@F40I^=50$n&g)Cf&qLOr)oFo-I(f8e>E#5pGnGe2pl9tOy_zd#N1=?P+DyK_v zrO%x|6-QY;_&d=7Fq4oHAqir&uzCW=zT{PU?~C8{zS>S3yJtR}Jpe-KD-1*BzQvJL zlkZH*=18oPLE~@pm&o9@{bTHX`rblW&^J6+RzV1#+p~tNYO%lf|5c*5G!J|ksDYku z&#GQOV!0?YMx#~~^Ah!qeFa@DOL@;^j{a zc7BpU_A*B-B!>Y8euO_XW+%M^GQ73uRQ?SQ8G*Lz;S_pBTLlr;?IK|7)8@a`nuD`pZ zJMKBX(~fDDYI*N>_Z*sLdZHI-*iN;*qpRQ~)OQcf3|S`Uc6!XUxN|(P?PymmvU^0^ zok6TOTJy2(+#3Dx{V*Pp(h3?{bL(fGH+qlA-RD-??&JZ8Ki)I$5Qp`7)?5|72#*el zV`jm(+*4qo3b=Bk(^bTrBnHHg)#bL7t4y!3wR^dy{Vl|34UXpW{Qa21yxMzd|#1nJ44{kPYwE361@oP-~wIV07g${hn)p;sJuhOnuFaQRV@F@yH0Bj zLpdZwsH`?y&8bw@(gxCbNmFO+`|6on=90`&%gKT2jzy@U1G{ zcL{eBb6V=l`mMk1ElYMev7aN}HIb&>n!eaOQ)VM!A4t4*2(JIv% za*FT3(UYY>E2Qiu_-tzdIf&WeA^4V#q|pqu)~|Z4PpBD%_sxGu4S6n0`BNsuIbo@8 z*P5G}rs2GWG6pb8K&70e`F0Y%)|Z1wq#aqkIt03h@DC4r>b^+vF zPf+kB$zCIr3i+K%0S2ybaN3KAZW=-$|2BmJ)xG^9#8A15N$`j}1frWtT>;yk&a<8L785SV;Q~vHpmz^)BlU#8c2by-N<6Ny&%ODO`>s5c(j~^Qu_;3EMpsIu^MbAu;7E{l#BwVpm=zLI>P1fQ{-6fDi(&8HkAzet zW}M=o8`JhLn8K`o?)w#Ar#fHJ5zqaAlH_8mPA}`L$p!xVPAf?iAAhTK1 zVDDNpP%?mRKql2yyrkN0gHrU|F>flOTGUhL{sTm7n4CrMiVh;0arRQlv1pa#{vdCv|MoP-0$DAYnqn!&40-^eGkYn1_Rq5i<` zzZT;6bdi|^OI-opv+(O0iU&RVuxzhPp1lIuERvPflUnY)J|@=*yy2?%*n-QzQ?p#B2-A=qId!K+ zV=v-r%QcFR^zVSCg3@UFV_QG|wR(S9kU&pVN+Jl|H+kNeA7>$^}$(uR0N$ zHxzqMUVf{H_9{@cZ{x{?`BhYe zbpWu(%ELz1D+7zZJ?R*7sXB;$R$(q1r`4`e_<;`U?whzl6s{TUbH&d+kHbXMb@P&N zrB}!^hW=6qf*qctI-4Hyt#stzL0Sze2V+MQYamFOc1dadIUhD2%@__#(9%0!tJuKlRWRnJGS~N6AhLAC^?pv==jBdShpT%zqq4 zO;X+fec95lumMf?g$(LGM1k#dFDb37pgG5xkO8l)$wTTpHV-y!2nKp*xp(d@BIE$t z?aG{7grbCFa*){prWm>%SW*nh#JM_t`_6HxDq*jfeq+DC_Jd<2Y1t6mgVHIXv6e06 z*+H500(N}>l{?t%0028nY~`gR2;~Z+`o@xkBXJoEgt>#&Jq(T6)~_1lcB|l*fcWRt zJh&S2Bj=f&G-=%@5proFz$DlgYM||QY6dvi@bd~^%%Mb~Vy#X_KLbmE)vNRePmpBy z<3~^{JFLEi4W5=Yx(=I3t{J?7u6kM#3FEUyq$g~GA@ltm$ z(}|@sjfu7xsCk5#G^{t2h~*0P=gAQqMiP=)+37Cq4D?k^l3j$me1-VeB7tv>#+z8q z#K3h`hteMn+aoS`&Yxt%tQ~S==H|{)l#W|K+Ipof*Dh7Wez6gLnJ>xS@qQZVe8ba| z7@#yI(7ndaQ~ymx3uvm!%EY!Nmo z-Zu2vF@nzL5=6fR6dFvlNU_d%RM-adAr%?MvJ|&ktQBZsPd<09TT+7GW9pj40Dmb= zZ&|%3YXR8`FIHqkUWy$N7_#w_ZNR`o4p0*%!0U8ip(wCENnq za$rC8`7b`DgSTmwEzy*r*KSB%Mw>OgmY=@h!{=~BMj4vC+{Zaw>Bt(OR4zhVEI}Q5 zG&Q=)#_09t(f!`r+;q??a8NoMe;zg?>fqa|f@RSfU)1orRSGsHFhNcS1Lg}4Xv})s z&Z|%6u&G0>eua6dL+_TZ{ji}OEs_y@I*?s#Qf0WtVk-7?Gaq^T$i*-yU-rzHD2j{cKB_>!-D%A2KKX7C718QUjceftQveB-Ft7IxYjyqy>KE2%3Wua+ zTz!uni)9CA)Y}f!q*V$QZB=f0i?z6{TQ-YF#n$mHQ7Zw6!uRF0{yeqkWpmn{9eYZv zsY((S$*b5SAg9_$IMQE2YR|`bc_PO85G|yOuN!O1EZ2W|CT=P{0H$PGXr=Hi&OYBF zuihz#STU3Q!-R>zD7M{Ak9?9kfIqQohK}x@!?w%p71Oa~*_)HB4X4u@R3>3^BEj{d zJttDDi;-~eOH)qdAevj`T9^Fyl1tbrx6%d}6!hTYg@+dN+V{MscLwI0jJ%7^&w;ly zcsxf#Zj8(Q&P=(&QXgY{W$j7@x;tu1m%b_9L8pK$PotDoY;Ux*FGcTpwP&IMwFq)W zT{h&@Gx;~1Wv8KJLDwb0r2Q_b*+mO6Kl1|WW@kG|3$PGzYwo$c(($uN*F&z3J>TnxKHE$GfvAhkELRL4afUe7Af zWi38(ty$W$Hb4G3luOcdEMdEOJwc*jCo2~V&bcdE8S$bvm9LmJ%eoTzua`Q7_E3nV z>_(5ny{m=`3HGczyuW!al3DB2$S2%*za~_Cz(FbpW(pSK%8b9QBtY>0*Q!7Oaz6w7G}m9APy34;N9f!1 z3v;p4R}Wl?0@DjP%n0zRf;7A0+L`v-$F&E$WgI=HyL; z@$(FY2p~Ud1uM`AsPiSSJH>}?>P-7@KN=}AKNGOheyQbZH zg7I_{UUhxqcY+JEUwJGC;}*MQchWpniG#Gw#SLs6rS?VBeq z`PKA>uy`7{1~BlLJhn~rJW-iZMt2qf_UDQBC)@ISanh6qomO`Gn3Xn1$0g%CBJj7S z!3^5nlwi+m3r+0`}Q6CDYH`m%Eh5(%6 zZEv6VE!X96@dT7Uw2BsLIMfw!QA_WLLFoy?w)Z0^{ZzbWgoCquU7=HuI^OHK=AN0x zkpq{=L7HCj?QNjf0?CDT=ytpeT#sJdO4~q;TJ+V~$RvG{!Vmqip%tAp=?Hdy+w|gP&=vfaT z&X<~Hvw(<(QG}9`Cg5|wv$fF`mxIa>r+KV(d|RClEGcCR>tgP|Jq(d&JT^F_Bpywke@8?rT%^AwUD! z?)&yOxHt`YE#-h%$-Wia#+c`y^G4DD9@vQAOX~ZSX7G8yG6Jw$_VTw(*oVrNaIFgd zB`1O!XRaMJvyCIgdloc&l}g1H?M}@!7)`5ChAfbX(etDJWQcDtYH+wtAKd+$hhag4 zgvTlcWO4lVUpFCC(i0E)UGLJ@TJm5$g7RrNY8+$BZFMt_-eD-d8sA+*MnlIwSKhvn zy<_#q`DHgh=}3T|a0^7LDFf@M9g*Fsn3DrsF~^Eu>k}8QYLvRq7{Wg5IiA#A;Ec}A z9x0J`+WMlS>uSXc?BIIw%Q}eLYskSFsEGOp-y)-!#mpIp`KxGWwS>cu#H|OtEkFmA zqOBwR89N4YAl^);>PX}?;LFfthBDPxFr;V@n&tS@!of^3wtG^KZhrV$e1oz7i-7Xh z5C}uCpzmu#QKxt4mIBL{ZTl+Qs$}WWeO(C$5qH!t?5w2Nc;GPpOTs4=3~!+HrIM{5 zS?EK;Ysp2fd6HVs_tMq2>={u=iCWF4fUxHJ@I(pE zv{)m%P83UAw(aL~i&Ae-hDu&!A>)wzj)j?GeIqnrXGvCTpC7=Ap3SV5Z7nc(GxC1A zUp4mC@l))ZMm{jkQSU%_xc(Hvsa<@IZ{zRPL6QVsrh8w=H#}L~Vs*4)!;%cLm@FqJ zSW@Sz$!upfvRv3!&RYGP3b|nCbeH$NorM^GY|Ag8dTK>BiRM7~-ImwwSPn_YVOlE& z?@hI@DYcdOF2{Z9m_PYm|LKmc#+|2t&AJ8~;w`;HcK)*B7UI<>19A}pYLB5xQz4XF zmgfF&-QLRZo5U*T$(tTLYTA<&;cE!XM_FMd5<`5{UG!-_#~yS9?^6LrXSXZ$z(L)C zP-Y;>V^=3u-0g`Q70o7&~)jkqOXqX;=oDy@X3ifz~ z7U6G(yUHLJ6jyW_ceFBf(%#_U9gG`?4wt%7GK`c8HR{LR z3oMn{_jqMZz@$XO_qgNUdZ}iC?)!euxGc^0J}gJ{_hR`pIF{Crh|zg6W?`EibtLds zgCsr^-&k16%YbI`k^Ukgu5aZ|W3pxUe7s4$pzRGn_pp%@`Ct7=pe?~dllJ25=HZ4l zZ}M}3oq8FTEQ1PXU90sidr9Mn7h(|Gf!vtO@|bMAXaN)61+}YsN*SXirbgPjJF7oK zZ3#PhNC_j_KMwndiR4V(%YpbSFZ8Z>lwG|$Oo0zFb<=U#EgF{vYwcMAV+m!<&9RJk zve#?1?nYmsx-;2>&ne$YKmK%Q@kQVxK-(3X8?-{WquSIDIt0wA3Gz8rxnBf+tbIO^ zvzFyuzM61QuJ+aHT6o=WF?wVmA2@6OPV-s(s%Th&fy2bV2-)U+qeJKrq`Uh z>`I*4$mebu07VRYK;mq^BcvzN)J5%TIv2R0UTSfxEcWtV{i1gM#Zdk-#$QA$KMQZ^ zNi@I%_f5NEg+LImRzrN#VhKo)(pE6v@Z=IzyFU80!h2;g1$O`1XT^*rc6vF}P(H=D zmO%de+2%!FuMrkfi6_v2ZB=rImDnf;m}*}0w%3`$Sf`mm=d!NWapIsH#e&62%VrNB zFSYv*`u7lP;~onmpA;6jC8TRIlhxSWjG3&1^~B+Ei?wPjN8+~Xo>8G|GkZ)Cn}9Oc zwfTba{290e{DOcXxqcY3^og2Uy%u+RZbY@L!s$lgW)#0mpqU{GNj9@9wv(ep$%ukWFp95u*Fuk z`Gw1reOSbXyOgkVc+lHAh$pEpSDhaFiyVM!OMF1`l0bzQOQ5O=2&#VR#40SK^6 zAyBu0med2&MAjn5zVUAQ750#l25`aBxZOg^l?ZkYFHW`P;P=g7)&|ptI1D9@x*u8Cza6)v&C5dPX$6F?&7q~5 z8V9HEzNUREfNHN3W#n3{{N#iZI$?;M>6F_ z7q!lw8R*yps$2ua~;# zL6kOm2jPd!DlL|n-y~Tc3u#jhKbP0y z=wLNcJ!8>pd~SbVQT1agig|L1F(25%Z}?w>$FUd!YEtO zKVvffX7IMgt;w)M`8lJXD2ab+T_aen`D_}(ASqyPuq%Jf!wg$J#GCCQlB;*Du;VmJ zdaxs?WEaPqD^uD+8pzu$k6wN*@VVM^;3Lnr4obZd3W3-hn~*;ffn7!ACkmmaf>?>8 zJb0hRt)T_s3H|MW&ive4v1t7bZC1s!ceFM%0$mi#m(tAB(k$w*(QQf#bo|fC@*Oa> z)n)VT;@&p9M4J8#L-0WVb+1KKE~EQ-Vo`ZX2~PwgsHz{Y@MXpsCsS}BC$8xd%PEC> zxEv?i#Lu+Uv*UsGv#Z%&rbb_ho~64FLs}C4+l!oM@e#{o)&83IVhb)`60~dE|BzxE z2r^MQ|aHuUmt;u*dS5V?pMvQm8@kBM;ZmE0ws+ zuHgzOkJH*um4b`C2)X5&Awb|Y-`Q;5J}`^Xcv)tNN_NQFHw%?-{}HY6gGz0LA6-nE zM9LI)cDhWeS|!tRqy#)sCMiXpkYMy?XH0yiCUB`h*# z9K2;;22;WhPD~5e5=nP6^EdmK9L))^t2an43@EOo!N*GGt}SNOWGhuL&4W=iG7zGL zL&E3o@#3T>fb94act|w~yzW=jVf+j1ias9>G!NFJorKq3LWr#>cn&r#F5V%kZk~` zc7GFnK13`Zm!4;ggJ1k&J|Y%C#`4=p%9L}46w8-5*DLkaK_zmVfcdDQJsNCZSTRY7peos4P*k9P$I z+-h$@0*R*?jpp9C1NAX)AR(_);19g&w)5?MkVmMO0f$v3?T$acKQJn}Y8~tYl$_x0 zh|h_I0;5R~40*>-zW&{mIcB&yruRALgnC=dWMH8HhX#&%`KGxIB>OB7aH^-uJT1-v z^VB2E3n-RFd`(6%04BW-8a!=_nNRhGx;Zz_RaGW zdFzb>AW4e?41@Ho;qM;Kh)T%B**^2nD(cJM;0HO4UzBm=g}_KVT&byxTp0wFrYl3j zNL6I#vbH?6GgnY0YXyi{*xmB@)ElGsgF=fWKZU!JZHkWfJLj6gqq*Ju2~2)+X^mF* z0SHiEOxaod+IABi2^k2p&LqSP{2UU?n{Qv$aP($U;tk!jCg@iQnee>}EFO|oGJd9m zF=Cec_Dg-TCG&6SVTeu=pXZ&c&s$-%xSY@VsLMl_jn>DShl_ZI8QJwUI?P1fHbL0*+5a*p=jAcFI ziZgX^V`u2HFxq){f?wFdTtrVSqzIatXdRq_=X~;=^W>03^Lt`9U#<{RS0W&&e%WYm z-7DHb#<|xd@f}(;X=v^oMki6MI<9klMN4sO59i!aWKge2kbo;C^j}wOI}qw*9FZ{# zUDc2&a)J^WzTE`L<_q*Sb406+a3R=Kcr|g{S|is$XVSz7Y4^}H!2JSA*0Q5^o?3EAf%*vtuJ%SlgUFhbe3k9yvA;}a@b?J{XNSOI?ZDG zm`-aS?rU492bVNc+URl&M1Rg(SH-ca=oA8NPop&3yiTn~?Yp-9^{l$nGv>jQvOQ*d zg(|DHZJ~;m!A69Bc``#V4<1J3!%H=|(tMsnrlN#uCM&Rj(o0cj+-y6H}HdOduCU)N}GX$?hgqwX0*mA*M{tBg(H{ zs`A-A-|xaS6Xll6=+b}+a$V02L4-40Z;gW(i=1%px;Z@|$F{!%x?0So)}2PX_YhRO zoPsV^MXz3sB6JAw@A_80n!SjINz^x+g{@A<9h7aXIG8D@BtA~4hLU6Hc7W0MABi0w zgRJPcIK5+92!y)ZHFtkAh}U|VnS+8SKbq%#;-$iTJn%00AM6pxuoe?2^oG&pdg-q3 zDFIPaAQeM6x&NLP$Jy;^lyr~hNC(j1Y|hskZCxIPVQUww?3s=jvW7e{DC$XBA4UcQ zVGt#7{(>uAHjZufz?;F9C{$T=-*EPu>k)&@6mG4sv>yMpAcS8Qhp1FUOUV6( zjo~UNukrUYsP*2x#;eaosW810Yl3a6HT@%BJvgu;KR_;&KaO`}NRT$`3}VoEX~r6R zPFY*G5n{-}dxZqX#)Yi|0+M!$%gplLI4n50${Y7<50@CT>Z#GKmAU|CavC7yJJ^Ul zMqtMnz@a)>FJd{gOTwh5Kgj{Bw8O&iGV zLQpgjt%t0S%CDJTU4Hq}`jC#Tmq_hR)+)XScVVkLTj?a%cmC!t#Rj~g1V+0y=*K^( zIx<$``b}d^PBWfU`F8_)pLwBt`5L-70H7F0gaM+1e}INP4Y8wo^lQmz1R?qAez<6R z6W}g-()QNteDz=9rux2$ocs) z&~M$p?c+y`!#jNhgdqUZNqjNGm|7+`*GoHlQ#0Zc3EY12CP*Mral87QAYQa-&0*Y$ z>79t+BjvrfWl4YuVPCunNE>7uMF8rCNd5!l27+AwTDaG4e@=ob9BkdcWqbGUrb7Is z$rSYtiXSl0VxUUHwa$!Vg7sn453kCsm$dw#RuETKxPQEFc1QFnh#QcWGgX)%8hN5O zTsAd={iyGCaDKSV#)u{q=zmhj_26k)zNTakzY+wnhteD3pSS_XeZU%muJEK`{7%ug zZBeJARm*3k<`?FMoGnJ@#dgYs`SNno_AcV0PE6b@HnCla-2RLG-p~1RxFyi!eT7bh z!^KvddJ>J-=`MZeo^68P<9%gk(BO}(W_JQwZncm_4bVB%|LXF?LKwMMpA+p0=R{X% z&_Qm{Z=f0IG*$P&Zs|wV@$k457vQ=5sK)l?%9jJjox3o^{o6cJZKzV2mpeb*79(4M zW8}J3;iT?XZWKDz$nUV{gV#~b{mYc>H~s8_&x3?5f4ocdXI0;VOy}07hqtbVsx;vM zDi$Cz_LRU>$smB{3b8$_>*Y5ajbg58g)#MKr40uxmwiskQV7c0T)8rLzf#r&r`j8J z|CIt{(A=1iU3V;DiF6g|tVN*wLuh99vO6=M|q`9h%eEWljbWwhY zOH4Sv19#%BX}VI#h4%MVpgIRM`T$bKWJNR2>5#y$mS7Qn^;827LW6x$Z8?H}Cu?K* zgJ^t&t0e2+NmT9FQy?${g7n^c)fMV2I|8QhFY+i?U{@j|UPP&knN~)Rd4#WRN!vNg zryZ`*5Z?I601_L6Iv^wUvCn4=6(%OTn?J&oetxKZjvA68729VX2wTz4JE~D9u_#4|@FCw(;hA_;=A-0RZ?z zzMuK4vqUfA7hU*9hd{&7vgEm6*BI{+(WU2j=04VMA- zpU72k;23|yLWX}8N5TX2SmtIsurw}Qzeb1y0pJK+Ew2G(?@c&wg9-~JdtHen4uh8? zb$LQLn3ALLUrCv06hOYh%ub!~^(|p+8x%&?42w5b8%f2I6?c%>ZU3mCY|v%;VC}N1p4hZ2x-U`}l})g{^5C=LmZh`fKYY^QWyk__ zu%i%bIM5WAB!7Lx&3=33>@8nFNBS!S*sNN1`UR7l%pu8opWvSL-DK@nK=%5F zqLWit-!yK8RJfdC`tIwhMcZ;R=_=*T1!vjDddY)0mK*UGr`ta5pmP)>WVSP=M?R~? zY&Gd_;^=720@0px4w9_13C1{Bl7f{n$sY^`g_J+DzoujJ=9GR8QwHU92pHr9wamZ|UHcz_(q4hQ45!%3Mc9QXw7Y2a)} z?_2{^>Qwl!Pa(t(rklUa(B z^|>2$eEwUo&A$~O`M~WBiyfg%l_Z|CPwJnDoBS7B;(=qFmnN;Lv8OC%zaI z0C4i-Gr;s})-IW%{evCLiMK%W@y_iGz(^9b0BpV<08M&gcp=?3_+XOzH+fGGN1!D0 z#1UoJL!@7kOfS-b@1(r>)NO*U@!tnV!y(9Gm(x23K+2xpKK}G!X7V>&_V(Y3|2ZWs zf5b1z-s*U3r*6kAd@pb2e%~*mC&U4%YRa!@0*Sdrm|4K#FDr600)$54cx9|_Zw44I zzIvuW_EGV?T;lZ@rIe4fksn_3g0DX@3;_J@*N;lF0o+W6496%_JIl>?+wV25?w0h& zp`FPdUQK_Kek!T?FiIo$ilinZo5T20p-M3{UUAy6LhyjK&Q5{dliWUZlA%=q1PB0d zHU;_}xkIY}vt8)qKRk`5{t1cleVPHndwX}pw)f;XK1mAK((KKNloHWa%f_+#_NhVN z?-VTyh_XI7hR_H}Kfw1j1I#B$|NkJDGP?A7=KBlKNYwzSs-!e%G5{c#pUR&NhNq41 zKbDSNNahnDmtTx~4TyzElt>}m9y~ND$A6d0>@7DvTIH}!4cnmJ#va44OvgW92V6Ni zrKXEKb~Be@BwO^S63YL_)Ji+s_Wx_t%1Y~&h2E?jy&C6jrjtgPatCCc2|Eo-ci&m; z@h4tR7sbW<3Lxnj08&jym*Kwy;cT@n1u?T%|Lmc26fb+**j=S;WQ-RB?|QjUt_FV~9Xmv_}~D_jOVs5 z9Ul!i%DB(m1jMZ1%yaPf3hfU7+EVem4@htY>~b92+zKFST7}pF{*wN0UMi2MS`N16 z7D~Is(-6lMSm!}zeDiPy5$9kD+69Muzn4ua%xA(tx!8~I5+mneJv$>mef%%Lp$E+q z+-3vT%taFC+yh=*arQ6pwEkY+@%>R8lH1Iy+?}B;|Ciasrlo0r}Fny zeGMHi1L7%IPE>TE%(s}y8&%XK1^of-)vga*HjzX!f5|)lgAiHU6de1N76XNgVAKi4p+c zDdkthW}Sfle}HiR?zI=OsH82@Iz?12S8xm-! zo5SU+giIJP3xii?Hv~wHPs0xEey5xO{x2@<1bnzn`Uh?n$NK*BSoD{`PZ~KugvOze z>EB5u*mAx}^TqFZsdFzNh1E>bLXaZC_hX~7RrnCzwM(tq%EQ-VC?ZuQFZ^cEQmB3I zweSshyraEI)arRTsxLYCT>2I8^|K;30lu0(P>Pa6RS>w^{c(YDIS;O#dvOk+Tc&WteuPB{VhIOI zHzs!o|Gg;9FYo+@&YnhVz8QbIp)g2;{~u6viXH(Rl(ty_hjKo;Z9c)j zW&Kmea)$g5^hAO7py5e`gD&G%tEvdDt)L5tr|9XnDHopB*l^Ri!exVH>v=2 z;LxqB0F{1gM?n(of76RN1g%iO*bU(p@U%`#22Xs@`PG^Odt^B-H|1{yTPH*O)mpoW zXn4)T>yHk$P_ndPa}~(_jp>CDf$?P6aS_(ZHSm^Z#AN9gt0C@_`4>St|6e6MV>&|O z1Z?ko(EaB6p)+3SQA-$;R>&>hDCgDDr_al+Qg)UGdKXc7sBir1RuqVekT1EPOWtLitgC%LgW2sI{{o5!lgB-b9*x^FfqWP;v zf8vEP7j(vOnWfs!A}Z(AOxyP1Qc>>@E`)rS1XffdTiJ)vV;SPUUQe(v?y;63ak3G% z{TX)fc^h#ufKA12NSp)=Pya$-_pplC6~wW?VG(u*@e>p#*taKJu#>Lsq?2Bls#eF@ z%8yivYjq~GYt>7f76X|Y6EWw|=8thvZ_89@8tCUI7vZfgs;j?nWs(9s;*}N}VB$U* z7($oJ2K3Wlhe}xXW860+K0zT4wQ{dbY#dS5Bd`dJ3)Tj#G1yMgiN*~2jz(^_pBkvA z0r2|2iM_73t@(eqJ^)(m?^kv2U6NV8@=@Y=n_MB5_bH#PVxnkHo$L)>&*Ek5_YW+W zd0}>ogql<01jcMT?4(B`759R`s~ad-3wz!#b6s0@@J%Af zay;5WoD3}39)%ztz_x5p6q*@aMpZ~cN&vyW383{0@lJDKK=w;ViMHP#Xi}L?Vvtt> zaQ0KUKG!L%v|hm9jQ7@QhYN&M*gYgU-6CS?;gD|t{cfk&`4j|MOiaW#;d5UZc>MlA z8hlob7JcT|ksMcTx*~P&Q0jxkDQB=>w4o25!{pp(R#Ez(mubH9D?%x^Di&NZ{s(I% zZ(sz5(D;xA<06qb=%Fdu_NQQQT;LZOE|enO5JbfUe*|A;r+L7LORhkYw47m~!A4GI zxAM@d1w}H`Bs2gXJRssX`?EZ`^u5WhkAf`J=rq&su#fpZpG-;|1#It~jHA`aA5uu0BMnt) ztox5t>$`lC2qK=*pFbhMPB3*R9S^=rHK6DC~z(0Ja|(aaKC?K~DHG=cKG2gT2pI|R_`Arkq_c^Y|Cs2nw!f;*Po z$vzfjsVe)eY)RQ1hAD1?sZxYH7@0>`LZos33Ztd0RU8Z=4VYd(kzo@{~2 zjRNOx4`1D;LMo_yKr>n;a`;bS6aNFHBrg(d%30imIuz#*c~w&`$ms(n34|x-4*;MRHyVIb;t~b^t$qMNTe1Ah zUH^Z(?_m>cG(BLhHs^dUgq1g@`w6C00>k69NX+RF+IwtwhdK6@`R$Y#$GtI^Jl65F zF!5YP_Q&{_-qL6WY7{(+vgpr$3eFu3;xs^ERAzW9mG(s7y|ClFWP*rGCZm|UG8*oM zy37~9_)d+HO)>sSZ>B<866{20<-H%uT6@Mn%2xYIfW|9ru>cJxZKHrF=QDY$ul3&s z&<_~GxL&J4@OF>R&UGfJ#Y@2SeU9sR1)azzTrL(H&{V#f2|VlZ4(|zxF2Y;S=eU_y zkeFg3a!5C;<1kNk_RkqDn+cJ0f3&p#AnKZ|I6J8)R1oYl#eXkF`V1}f`&CdqFnPbY zpxHTXsI|>2Yi0CW<7i!iJ|rbb=P$Cr{(slnxv7}(nB^h|qWH3Wk#xht+oErqfx_pn zaD)_RQ7S4lwO!BWeyGx0Zv8y!k+xA^!E=GK>WeaBkQh2)$L!%!tL4Fx+z-4aZ4_l$ z{qaH$ee56QKHW{B3F9(fO1#q8`vgumcwC&lC%HRYvw#tl=uZI; zxOtuc=sNv!yL0Oc5P==--y@};_th$C#xFOKacdaRHn47vMtdfm2IBlrG?A9@vHd0P z40+=_mmyYCKKQ|dK$Hk%LjOwM7w8Pw?SL%`(6lEOC+iT3f20Av^NRvH3E(I^ZDIa_ z3s}K0A}(1*fUlVHTzPoiTf1%j!pd$kepE|hW@T>0((gO|A5`}Ll-5$DT?gQQ{I zU>JtUY-I+^8>)ZGp_;T#BQ%u13>}O4gcOWeF!a0>6W;Jx!1Qs9x*!j%t^U`I=#M6! zI{L11E6mO*pNvNt22|fT)Pjoa z^KY+nwbnyOev!xGDC{cp_mF|DOxOr3LPmGGee7Q3?X|WiZK*PNGGC=7-bJJ%w($*(%5&( zTGp)nu6w9+&a-@<^E~IA@9X>jzn)&_)f_Y7zCZW%xvuy1eqYz;O29@w-kmA$r$>}a zP2dXLmaX*i1e$nIhab8gBc4;mbPcfLij0f37!DUdefWVt!MWLGMj}LQzsf{7H0&Jp zvca~8n>jaz&}1HlV1aK79rI+F~wLkCZ{>t>v zDs=0kr_CzMszhRP){dqp8xRUOxVI&9E6f)tT-G{Pr*mxJ<#jo~sz|Am8RuJC;CI%aYXH!0c z0Y;Z6a83q)PFJ_Mv$hLnM!xm5xH;d4;bDc8Zk#sRGh)4K#i=T;H;<>p-4xfeZcd5A zn~rB`Y4W35=bwZOSX{(Ry-h*UuW{{Q=AIwg*PQ3F_I=0F=4JO%m(Dp$=en2Qwl9>+ z{j&M}Df_k`bm45Yi%8Axb?x(^vA;ZsY0fkoGhG|*(|TC z?)FpaUtU+!y>~TwHA^OKa|OPt=RDPRzl9B7=9}(>)s0rv!8F#b7h7{Z)ys#LPgtr5 zSdo^^ydNo(nGwW=wI7M_TNaoed$1#|@|J`OF1kCp$8;I73Lo;J(K(P-n9v6(mt zr*_+Ay{mC|x(Ta=J5Jb(SB645ejRukD~n#dDO#d( zNqy?AA_GVao#tGZq*FU{Bg5?D#F{HYd8RCN2pYB5=i2t5RG-cF zUaVj1v^pxr%CAcOR)}GbbecF9_jcRsrV%eXa4~j~FKw6V37SS0kI0#AGLcN%R*@<5 zc)3Z8ZPu~y;^VhO`!UBzuuV2_p`Q*MAcR*ARjIJ9`=zX#VA(oZctqwasjX(+!kb5& zTsd&?v<54@xMlgoo4XwQ2X3mMx-XU%?QwlQn_}ii~ki4^1|EJslMy^e@>)@fi)~Fq6@4(wdbO4^V2^#1o`= z^u^n+vw{De5y6n$oGx2;eLsk`mYQn{NjM#6qGF3%N|jP zt1#`d$HL%JAh!#GtZV^ev0T!$L0f>?p(6^}07Vd)_n!{rZAAscbYhO{em^7Z;BwIP zVOk!I2l3~rXA$#l?f_xYh&^4d=AOEPK_v_~-SKx5h1pG^bbcFleSI=ahAS(2;Q~|S z?YL~fSAk(m^7}ziCIa@7YS|lD7#{pqzPgB~zZ}i|Pfq8Rfe97J9$4gpmS^q8_1IoH z7hi-*{AWWD7iL#vF=3|0xTb!k;?y+fidR=f{WsVBqtU=2;s5!7rNbkjMjYq4mb&P> zpZu#C!T;BDh7Vt*dXWje%^#hxE& zu#k;P;G}!+0UPPyuvjEl;+cTts3D|Zya6=ZXCVgs9}BF%8CdilO~hPSt+H&}ViK^Q zuf&u4Mr`|ol~AuCDba3vSQlmjgLc{l;|3*-i?OX2dG=QG>28pOF5pmen2?6$ohemj zur{oQ+u1MOoq1-*Z|{hy%wRW>e2-KW0HN_auN`#xfumtV7Ethh=fF7_^LYit+wYmC zGS)DLcVP(P-_#L9n?jflPUP+b8Xfy$1w+FMXFbBhtlhY2h4y_YUd2g$XGv>cVYF-; z7NhtbjJQIk$Qpo>TJpX>9WlFzONNnWC$fdUR)QA(htBXfa|-k{r(qH|R8+MAc$f_eAW_b-wjc^P z6cd5KZ&1$ht^}d>jUSM9AeV}a1O6;Ec5t!pX*O-4N(50w|AQC-g}1=YYw~Cx*2lq= z&Yl&zK-b&gE{&|vIot<>j~8c2JD~lEuL7drL~%n9Pxmif$BT?|f5E5y&ki0cIT4;p zy4V)W+8ssk612$HHoo^qMNf!W>%E1P;A{egNU{2NRSli8uf?spC`?@(?%#H%9(qQnMqUmH!;^+mn^VuZON2YZA$jBI~cdVpR2 zylAgs%T{--fXU_Hm3Va9R)zf_>AP1~YV8l#94H$(Avha_t4Yp5&+3T)C@iLXUsZf5 zxiH3fVYIROuLc{hhKH|hysWiEs^_QW1uLbyH2>Y9Zp=D7aW=s8Mb2+Q6Myfu!-dU# zUoFaWKJv5iW?p}bo+#C!s3%GwI7N zU=oJO+>mA?`PU$D6BdUle!g9JhsT&?guR1o49PGEfMQFFq8(uZ^5VI0Fyatt9FgRL zS=Cl#q&mC;@bNkT2BGF}5DbwA7$W^18!O$1;@9XX+9GoqA5_J ze_Nfo*aLv{F+CLJfvkUPB#ht0ByT>$WkcYrixR6tXoMZVvv}oS5$g-}c%)FQOK`t$ zRFuugIPa=h!Ef_SgT_LV?y)CopFNQemA%rvX=eL+;jBuw5J4eb?83D5VW70tg~}#T zB~+k}h5alHkr(}6jU@W1>%P(24Ae$*{ybG^bU1xN6!Um$2PA;e1YhL*z4u5yvmTi} zdVoEV-p3cZ8u}JezZY-mzCO1hej#3(eYhCBd=U|ggc;T6A*1Z%<5blH_w|rHP+VfU zqyw)mGMPBwm!`tX`&cQ?MA7Tlemc)v26KQmh>z~H7U#5Dxo6v*J)1I2ul~AH%1HAP z2F7*&>;AfrF~c@2c^c=fF7zrGtG<9FpbVT5l(G&cpAgy~(2B8ZgGAmr zAj5S5fqo6%Q2itWN;ya_T>^;a4rfOxT>5kf_;qzUHbZyir8jIpy?^O3TihkURN(!V zwxc*D(twzT7`PqtH9%>=9QMD!tt|mC__d;L?amX+xPryj&T@~yq-%U*zQ{z%d$5s< z|6Z9L$Y4DF4$BFemk7&@pqp>`Jrwxym*SE{jo`ps1crwQg^7y*^jTTS<|0o3Q0x99y6Ug8B{Wg#l8-M! zl0Y2~>fhr-{wE}z8*2iyy8i%@X3vg6$isoPy;oIcHue1JMeg0Z0M9MV)&6UX{Qi}n zWRE3>3-R>)v(YLv&*^Y6;k=GEi~C8YZLOZ)STHQV-|B@z2#8nN?xrL1P)6!7?$Bl~ zy;wY2QdEwVrUK&*)I0 zFR2TS@Bm?ueg`mooe(|TG8jaNUF>-bUmeC~fgGUhY*)cbg%b&ztCgn?mf!XiJS@g8 zO=I_XK=^|bUt>`0q}b_v8WIXl3x0y6(i zF=ub}V*mf&YomTWrhhH8Esq~x?nIr@@k!nIg{vQl@-E>x<(RB|XnJNOC&RmWb|ll>#SVX+)1ZUc411_SX= zu3krKf+gQwyh4gVenJh>xG?)MA#DMXHLjTd4nkL(#T)u2hp#{YEtc8*7~dL%1bJ2- zV&MOOD=A;dR-sW#0^}To3x~`EKg>ooC)mhO43HmN_QCL!(~DkAK)u0XYc88b$kU@y zEH@RhgK>SKTS=0OVAvbO-Tt6W^Zap>3jBkzbzvfWTK9kIQV>F0x@cVeN+@Ih|2G>~9e8uU9Fb0u=HkzE)U zJ;S3Vt4}0YFmbmTMfT(ogNyCaMxUiRFmyFIisdm0O6xZl2uSx_Cuz39d!-0cMqp9b z$B=eWC{fwtmGDc8++9~APeCQdx7p}gW4ti#9#R2B4Wxa(62B;Oz7vcD#ipZa^-#7A^uwUlc zM*|4GZ`;SuL=yH{B{Xrv)?b5sV>2AjZSFO{IzpHS8vG=7e-OD&ySRLhW=~$M2~YWI ze@o;RXscHO*OCY)WFU+%v@@ze+$fK5;Ne(}TYm5R{cWqRU%hkAo6-a)lw$NC_SptVc_}>$N z0%UPtA{_c}8d-VI7x-^3?u><= z;TTWp?k_$by-P_tZY>|Slu6~)TPmBSm)V!sS-L)LR?5#IzF31Mo=6KRVz9E??U_mI z^i!2ek2H=ERFnKZSZwh3f8xJfc#Y%+$=a|bH%Ps=Z@IqmY<<3cv?{-M+ldcu-i6Go zOV_2nnJMgj6YG?pZi*VD~!)6il-I%(@HE|^F=c!j#8Q}u&oxPz!cuKqr4L? ztOg76MkP}oS5|{LnT1ZKlKpI4vvZ5e3Wc&PxmOaM1FKcT2p1&7{cukvW6(^jqRJJ+ z(6>^|!*=Rn){a66d{&M;RhnzXURGaA#*}~5trI=aui0b5XW4vBpGxTOd}i$}nQ$uY zy!!Q%rye{LE3ft)<4bfFFa4-{oN1^}?Z`frY|1p06MflnI1}@-Ztt!2FU#-Rs)Uu^ zea3h1EM`BgTX)3dz?HkZC~xf!rf=z-rkXP9?n$8q$Cap-X7LkJ?;4}=0|w`uU==2` zVVP*p6}Na0z47*gAyFi1mRcvgMQ=G$pdgH%U^L!#Al1@_LK@PPTZT-{BqAr0Shpkd zHy1~tXet?n;>Hcp={+r1+FKrM@t~V+UMhu|a+A=`zv0*fOXKX<@4{l4)6$EqtN23Q z{IqQRN*&-mT$9CHSVncU+;KIziHss^b96GFhhM3uU;dU%B~wbhh4Uq4(-hmZzTvc% z)p4lN9efFA#k9%lOzayq3NKf+I)yMm7LxA31<`j=ACWQn2@j438hVOim<;ixNPc2H zemygn!Bl-B|xwG$JVpUQ^V0uHg)O<(Jvw1w4m^$ z5~~SM^eNqnK2eV+uRsqBrezeyXA}_z_{?Tx8TM(YJo?nUwp|)(2tFX3^Q%G3O>QtX zi(WS$L~Lqn5Pf2w_8`k&q34_^v!tASgwAmbv$xpPaZE0SWAkw?BOZRs3z#4KHG}M! zhJzO{dCw1@+esx{z`Tv>lmTPGy!L&@mw*z}$>`Qx&9K<+uTW=2a?DRLWacQJER+dt zh-tdYig{ul!5ren+lu3PEP^$?VK>lT@=8&7!S2E6=hlGT6A@#_y7-l{L|;uRTf;*{ zKF~wQE?l?|d!JxBIo}OAIQwbkZ!$ZLlBK9nuiofo+(yi*Tib<@emh6ki({*^@Y4dfo5#Vqvds+q0J3bA%B)5_xQweT3v3hK z#-|idN>gR)d>OL8xHL4lZsS;KPi^6eEOb4qTHU*AV7hdb|LiElk zGZpXef)QFQ7*El0hSlnWP`9*ywd%2FF7w9cJA@!9_7-IO8FX_y(U4HQa#CBgzvTh1N9Q0lLy>Tf6x4jKK4v53 zsz8kK4EMIgl+89nAt;DI>B`SfpKT)v#ggIGDY@@cqxlx-JI;_GAzaW?sZd@ zFlR8dfRn{hZZdReVl}4kB~YAM?a}Q0N-+kra+wC}fX_uV!5LJ5%omil8A>xGL=(>Fx! zWyRd}HWVA8Slh9U9D!N>9zv`Mgg<7vu$Q4`u3O43*tQm!ZVR6XWR0|w9}Agco9 zy{)khHhq5!s{Ut44v(&uW&WlKBBzB@AQ*WMA9_aCr5>;eeelQdd_^`isXxhvD#V2? zj>L?`5E6TZcP$-(RY?3@gj5bA@}*na>5~amOUG4HALo2Sbkc{w18&Q56z_-kgv@;2 zYF33>)^bNubp^qa4RnBDTOY zj)341BC$CWvwy)8cq!ILzL&2I_j))$1tT43xze3-uKri{y>7VWiYOa-uoj+u0@ayR z8<79W1&OQAluL)64HyV8O0HBrocr!pbzOwwq&Cl_wp~3s4#g4W00#0ha5(hLe~7J% zO}jON+I{u;HsEb7Dk0qQN>Z#4tawQwNvaX7o|UUi2+Y4a9k1RRT@IG{53Y_E&$DD1 z+fdQ3IfLuK-Eh7ebjU7xlu^_Hw))J)bil^%ZGn=h=mcl*6sL!oEkNFKdG+4UB1o=oI0=_UXkBm=78JnCYKDdzM*T<=-9 z|2zca1L9*0ITREcqU8dR4@?`{&a;vAOh1w`PbkZj-ANYWaROAOk*UgyH9VtPTya*hATvl*o*{wyaZ0aEafSQFTRmxYU zfn)Lj(VPKl_4f)Da@YJ8a%Q^d7Z+5U#xEp-?w}@_5k5+`-3+ExRnz4it zF#B8p_92oPLU#QIGD9S<29t(F>eT2%FT1qpVFy|%EZEe1rhOWXo&oD-pB6<*%c6%{ z_yvpFvppW(R-b8@!DmURB@2c7>7w-b;;iVtw&1J0#mz!tujdsUKKJ#j4>;-vB%$UB zO=tk`CjkqQC-$;KH-M`ecikTwwR{z$*3x_hu`Ixp4^Il1)^f|<{s`a+gl>Avg*-u+ zKCR-91@MmoJhBll_q*eZ0$#5ED9sB=lNPKVd8kF?WQ>;L1P(EIK=|>C87-3SS~XG= z!0>5wWCw_dF;5ID6hyMqJu~xrU4hs>8~|9rBAwviD}0l8Qu|O;BAJb2AuAjYl|ZnX zlpN)jnFObYah^(DizH*npf7DwO4%J@L_+cnna`9TWvE=GdDL_Ve=6^}Qr80>Ny^%3 zB!As>kH495mU4WC3SpoJ9(@1;?M+*v(|>_$)kr!#HmNO1SxVuBetz{OU@0BW3H0n39RYIoPPp~^40n?_xa%C z2K204lk)|LliG45gNl|Y^C&Y9i3OTqQhQ**_7Sfw4R)Qph)y75NX*~ta^H#+q#&hj zdvH+xWkhCDa*i@$Ming|OHeQTC4hI@<>`ZPA>akjC$i}6oR7hYBFSO{o|ejMGSgt; z%wjKy9SzunO3ufEkYZZ-{pb@o9=VF~1DgkMT(OeKLFAJ}@_4y$1b6uJt4*1O6U?Oq# zOR!$VTQh;ja3PiO{hIPqgyf5&>YxA66TcPQU6A}sEl5Ft`CGJTqLWCWOct<(tk?$g zu+4S`_2n%Ofb*l*qptx>Ra!tHfr#~j>B4{X77J%EX%RGLJo?Zegn!S#;4J{dDkrm? z{X#^a0H+Fc5(3iVmZMJ$ILvTD99-C4hSk|X5rFV>1;WotA_7{#-vB?y_B4QGzyk7njA8dFwzd<3fuR_kvum~>2CgKQ z6$A~Uk*K_2^?x-#gV0)dd}WgemKDeKcm2W<(xN&H$FQMqMEcwdBcl3`5vaMjPSEuwSt5eA0{ObvP=xg4pBuw$V~uHgUmJi?KU5nl*VjK{+E@&e}Sh7t-6I3|R-OseQw@4Z&(`ckp;?NvcA2!hb+!K-&2LGAG3Q zS#(}YRs-lFqXN6Cf?7)slhTHBkY*Ks%c6)= z9+qXUVsK`%;Z}Ts%#iv3E6tfp8v0gzO?`2(M|@c4@dc1eUG^ zGtPim0{J5nVAn!`W!R>v7NL_(luXB6O~2-ge-g`{60wS2;>9pc-$E-~Wn3Tq#6v

    eGUL~(y>uMP+uxuD?uGkc}4 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�dCbD8uF8ucBp4-t)Li*a3dW(7D(De7H0$_@2!4O)TRxZ4T|^BELCVX!TyI#IKR5fz%%{q=T;Zflm9-NTtPOk zxKRM_F+%J#uoL`g<(Q&gT4;Y%C~`3b`LP7TsAz3SLW(cJ&jYl$ zle^4f6e3o*^Z=^^VavK=S6l|@Lz6VouJHg3@=*WYnD39)Re@zzCBU<30iUj)P!2lL z2yzxLb|JzGR$BPk?`kxToE>S=hl~#JA3r_|SQ^X350rW1lMi^G8J5xWI)A>lCHX*y z7O=PQz(#EKSehFnhf1Yh0u6%twznE|YNE9k5|j2_2%}GVA}7QUb4F03SZRoOP>gAvLDFyxZ4FL?UQ)T@2YXO zMrkiy^zAg#OII+g1HD?+qCtxv$ZwDEpNbRA*I9hcKR{&SiDeWdn@;XXW4-JL=P`b| ze%tUJ;bk~Jk^0nJAC%&Sccig^jUse7fCeJaZ2%+)5N8MolgLm9>l$;hTFWOu)V~E5 z-u16^zx{%YD2A2}MrjN{XRj7BDo(he6FCE8g+dC#0X^-RpXOwg{p{rw26nHE-TA5@ zXg+8EcefN+!?)QANLtg}ZA`^S1zGu1y^W9(^6nBd|}HLC|6ead#A zi8p{&y#ywE&Ze_TaA3xP6+on?(#gJDR*+7Cn6`H$%;TCFh1P{=OW8NrYk@2 zd0qm;#?+xAS#4}DHXX_Kq+(b&_GR`UlEF_!A?c_wwhen8!!o0)0VfG^0eh(ck6ePW z8<_R%MR7caO=S}}ZWQz;3`3tf3hGfZk=2i!U`@8Mnwd#R;G~kqXh?g?%0bQ-v}dkj z({$LQkB3B0jW!Kjk)W#rW*6!9(B{B|17agJXuJ7Eu)S0OrxB4NJ%g9v)?D27AyQNQ>Z{EF+H7(Be8pkXO zvL#GNPo#Iu*s>>(DSPbCNTf^a)bFwk+o)KFq*7Sc!u#tmi{Y5#+?jh`8&_ur%0H6c zaW+D&0{N#25;O6zPwjj@227p7uQO!;X+IoC@jt2uBvz?INTuX_nm%fpkGH4 zAyzxC7}!B&!Y-cRiS<0b9p*j-_9O&08^%eM4^gZhU)P-44MT)d0!KCQXu^E{oU@|e zK7&9inh45kNmyhhn@NGCZQnGEL02yH$(p3@kCAFU>bEpGD9*l?t@)EAEaOD%fG398 zp4l~&rQ+v*3izOKcS!Xe^{bwGAIuNlhgdZeSMU_}x}oFJ3?@!fl-lAMq>MO2?kBRY zE_EhrYDsy9#$=8i^|P0N^@v{Wu^;QWIy00~ar!3|uA$@F%-Khp52RpY4OY`bp;~^I zVX5z9P-6}K^FvwMe&rM?9omVdr)iqgQl8T>Qe49)4*Aj3G`C2@c*164f37e&ow_Yn zif4E#cxL~H^aPuSt1bK*KQ+o00C|;IDDzOv`RNxi440( zfvxYmWco&EJ}-vE&98a-nP*;XTjw5GPc-<^#O#XQMY$EHjAK!5*)sx$CWQ8^#_%IX zK~Y&V3osMHy6ndOBPM?6XVRXcCc}A8$8#-;ewfe8AQ{87OrCk_ZW+$YdR%d;cv87d zGiHyc{gz?m8k*DiEqDmS^dxX9QvzLz8)_v1NR7T#2whD76`iraB>SLCQu!Bv#he0* zh~y-osY0{Wi3h=b?(?CASoL_lLa(pml)1PhwQd3R$}u6{$3pha%kmGvYXXIhKe#Ip zfPKGfxvq%YS9BM&UH;v%;`t=^Yl;}?xgKdpbggj|oJiVmHy0oi$f;G7y*q3QjfN8F0JHd|pdIO# zS?N1)7F|E4WkO+}QWNK?L}BUW zG`o*X747w7!4LS0X{VpyYy$E$fT1kjNKaH3q7!?5+|GGSJ)5_UyuC4o2OClXXBzI_ zg)bz+qo5Jsaytx}6xp@!v^O9uT_J@^mGZV}|J#g#aBTxhU{S_fvdZ7TrKr@Tu#n1Rb}Jl!*oVM|iQy-%0lkhp4uOw({RID?%0-~>z!0DX+T3IJ-7Ndff6$D8 z?D@+?1)4S90KYh!iPO~pE&NS_*vs&0^YNF>C5j6VwUr!?7IyxoFJH8}=cv|y*fR?4 zBOcHX8KEd}ROvIBb_jH=L8D>tN8aSuCRhPZk-OaK{Ckk#D~SuRjvcu;y|Bmr2d)EO z1dhvr1l+@^7|%Hghky4S=oVgMWiZye?^tk51VEGQuT9QJ)+-YYotL|v|Dqx@ZTuT? z7Ffw^L9GWGn-dkg>6_qBxWPLmNMS1!GuG{Z8rgG|qK1v!&H-G42X3?7^?SI@wqHdc zKy$7f77CzD(9HfD83ny0Yf#W}_HADekCbHAo78@x*k*B>fIE-u9} zaMABycWPV7boCqpt?1=daqVB-r2i#B;o^!B1Dh?{A#OVW4md5IziP|UgeEp(g+X`q zpSRh=BGUg_WW`x?khjD=aIkO)Wu$S&A>n5-)XRhf^!W7G=j!+P~`3Y$0xV`x8YW3Q*8&J>T1a5f+Nv`cptE2QvWwl z7!(n|67vF-Z&+sC_}2&>|N5!^&!Je*8SxL)>Tl7$Tzw%|;6ZZ$$m$?%FE|nadvv={ zF>IB++dd#U{F`=kD8T?o9&}?C*o{zA$@KDhuI%+2_Y`n0*1o#|+SQw&ev0LgDSH9F zt?5Zm>DMV)zXTK@cK#Dpt{;aef@~cUrMp!kh7aeegvC{xPXku%Yy1!X@~Mo)vE$$M z#)8v4V;MrryW!^V=(Y{C$disc{z}>de;8rlU-Aw*E{5}BKbu}aV%mM6`^ayb>~{}9 z;;9)?j4jlRh>MJb>;5y%;FrS!>QVZWCkJ}u$iLL9{%yDF|NCh_XDI@#`5#=Bk|I3Q z=QvyK4>n4FXH~=Pssn7eHV{u7J$&}h%sN1hx%wYP6~CLGP+(AUukKD^KDa05KMIpa ze(OLZ|BFKf6hM{#H=Z+`bC#3Aws8Hma2zLv75+Dv11Mashg?_e_uh55rKHD^2TDQ= znBv%jKWYPiO}74PjxwCo<$tdjU(TS%k1spPfZXzn9}A~OB`aeyAm5^sYm07j3V~z4 z@mvYn?pT%5zHGko7nI}Qiot+S&(?ot5cKawNr+h88L`SJLUDw{TE1NgEl5z3{6Sj% zYrP39fPiEGq6dG+{6ME5%BcHmpxj@d>vwFj3+TJhgR*pxI|D&AlwWEqjr?ap@h?la zwm;KMf58_f*Vi_qi~%hJCD?y{^i{^~-Bg8480c^qtCtUd>L4EA*&Qq@vcjnciX#o@Kb~O^ldvhJhELl@m2cpK1o=%&b37avT#~ zgzEnLd9MrWX%9BiqdRwlFAz!rdGA~Y%oj!QmxV^!j`s!xAtdqP&Ur^_06W$WK~w^p zu@`k^1W)dw@uT^8#l1uXSy$hCU&vgkZR+!rdNH;>M?TeY@o3j>(v_O6Rc$#i;nv*p zD^IZ&B?`^!0voUPCJT=)$s^0LPHwi_@}@an%BMMA%EQ$>Y2G4c7V_C%h5f*X_`Yyj z+qoz5dDFLVD8yNt4$d?ekB7J9TNw?W>`yRTm7nhw*}oVztbfB**_O}R3C$XQW#$s7 z;vHOGh2^_F5u+1?FE1v)(-S|T<7P{~!yr!Nqw_ZcQ8O6sBw!*4kRdm7Oi(4{wmbmI zaXsv3S z=4|u+Y^%ct*5Gc8pbOwB?7V>!C3u+K{91GO&>tU%x3}@$Z(DbtVi|h(S)=cxSc!WnYbOY7a&OSWAH9s+Vc2Ba6~zgGg^ zb07lFA4-mMmI>$g&vn0C;{oE}Mh;!b`G(t1UoQ0EvJ1b(f!jFWu-XNE=H>r-B>wMv zi@V-z@gD5Z!TBEtjzUj)Lf7zU{*QJyPwR89{NeL+@8BZ8t)KLGxq=J&1;lw=zMhxQ zE4W`c?`*H&>~8OLVc$OaOCC<4rw#S^eh`NK8Q+QHM}dj_%5E;MRWu$5yewNx_z1qN z@IIsWBUgUwwlVOBl}?9G9p>UHjOJz7LkscyOUEs|xwv+8LBCe4On#Zd#l=pC(5GuQ zllTzyIg?%;GLb!3Rb_f;{f70r_wu*jef(&<#G|{?l~kJ}`X4K)V*Y%Uw{P9MwQG)W zf4;vhwby%LvM4h-?v)@3VT%cHskyI+jadoalgr?N9Ut^{9}oDjTwL3O z|3CW2$W(sq#qD??92*0oQ!#TWS?~t}xDH6ehv*F3l%`RIy}w((+>8>l>y>*>se{V^8q=K95DT<3 z)yKh0zh{fS7S@`#a|iC6CxE%Ow=EM$x zb(kbUj5LO77`#eu#Y$J=B`?1Zk!plQv1{*dkgc$rGIK|oAH;xQS2{-s zpu~CRtZ@aSVz+f=*F+3V`vj$8*3j?ZM5YeYndUW7fC=&kLifgcg@QOG^8jFe*-_y) z+o*qZ(3i!o&dN-EXoFJ7h2m4Kg`S-VN&rzm$)ntPE9;j3bAcO;ijd0D@AWjzz^audVlTffVh+y;%&Kjv2mi$3$KAcyfF>WW;}PBG>rN-szsw+*xp2 zmA-A@v@T7_`1@{&f$*5q(?C-Dn!izS%rory6r_&Cu;vRoqLGZjx!E+f<`jm_a(;bt z6+Zf-+FtYUP2L;GZpB@u!=sj-mGkXjXj5zgri#gWFT;)ffI)cx&6_%1c zh%(LItqo}f<%r1Y@1AB%mm$)Fwm3XD&)G(Vq?z{1|OCZ~8$?F~uk;J}mD{;ei>>!Cv16$i7 z2}FnP9V)G8UaXGJJ>++ZnXkfP&WouT55}Z3wJ$&Q_n^yyJ8yxah!&6%kir zCl?f@9=XLc`Vkp)LhRKsJJ%{?TeNfz+~IqYI9d*Fv~B9J@REVwIz*|Wd(cWtU7fZV zni6ey6U2YEtk5#_(VA^m9;O^1h+$BR%sM)Wt><%D?q>RK{rFg^RuaPNghyatvNUh- z&0=*Q0ng~|!m_CcN@iotxJE7Ml4Fz@0H-4xG-4oU}5<&^{UBQ{E z#(dq?prr~uGdSpaiziy*Xc(%F{;;5Fi%vffp4$W=MciK+(H^tn9G?rMO*{%-w}&W@ z5Tj~)T}Rt&rNxF=-RE0w*xbea6doO258VYEV`!oUF5(%+q(I}Hn+HaMt?nF#%;8G24EzL!huT-`f%{{~4EfE`$hLLAAA3ZI| zZqu`t5Q#kR4?f=&b}aBAlj<*lD*##`)tw_!~~JY2HQrT6?_kdKvo0< zxzj7{riHCHSRUotlyC#v|M2k1Bpzh8{sIde1F`n4>e0MSn{st8Z6>vM@?=Q3g?8Ax zlWv)MzegYq01KS_@i{|lI zkUEVAO6@wGQOTT>P)0{vUVp8Z@~uS*k0r@{ddaEfAUGHT3TOfa!KTiuU8l9qrpX%C z79;Z2513dVw7@GqD$n}y9NFCZzJ(x$s4gQQZp`1k$LppWp~CONaRFbO$h4gvit7tp z1=$KDud>&c$r<4t*3%_RZG_FQ&6CeY*r^!y+y+m&$9ca^F>zCM#EG@Ra?y z#XQogE1VGmmT!Rqj7X;>&WGtrCvPacb1l5x7M&|`dZCI+aHti=Lg)&q&A4o5_Hn`R9 zju$+4>9F4qvW7gmr5o%GlNG~WrB9tVeP$@6%eAqfa!Yjhr%51#*MF!4KjvrQxaIjN z74Vs&n>OxD4#iP_@M>_>)V9f)1nmQRY7*_|fp9K9nzzMHu8OiqQ8)4dB~XcWm5rB- z10!F;F1&uKVz!kVMy^Mwo{;Z#~%RFnCubbq1 z^_{MukB-ZW(p=@66K+$-?R1W8vFhbCTgot{j-qZ@P#j88sm5qg2Z|Vr*Uly1 ziqMZJ07E;2-3XrZ6VU+5WmYs2*(|Efvn`ovBwdDHsIeQkJlvTw-y$I$+Tl6vK(pTi zHk~PG)VM|~^!na@zIuMTn$gwYXR~H+Equ`RSX~zSq_TPVAsLp2A-*nhRbTCBn6deM z+ZL&LlGk*Ru6pO@!ww8F5Ga4}DG_N#Gli|(G_tPGwx5?tbXSj>eF51dkEFesk; zq|u9aj!$dpDsD|f{m?D(X$f?)SXIf{JjtJOts4z%5+8&fhv&P@Q%R;(azQY!kQUX< zl&h9BB`7DR?04{ZE}-LDk=hTgmOOVSXYg*pR;j*hWA|yN^Jj&CFp`VyzS4CLtaf!j zfy1XONiW)Yu1K5>kAY2ldFi!|xVqKte&ki=a?9FFIhe;;A~rN^y$caRl@k{!Xfx%% z`|!2p-6q>XZ{5=Z2}#}H(5x0pD8<4_jyzpiW!H$HG_a}Cl1E0wI8K+WU(p9zW%@M= z&2$P)Q+9=GAiH6?y6XjZIQp#Ve5O8a8k!~}FB*xm1);98U<>rpn=W>>h>%8B%)i|e zR8^{}T3vVzIp9s^W6ZZ>so@zqTBhQnm@nvzdO(@@mZX|3JUy#awcIYC*P1#sQTSMgESsaDb)wPvh%}*^2WN)V3>2hnS-;e$HQ==_O3BVVi za^`YdY0e(-6Nf-qD4SB+Syb-#W5w!zkZ79QXm8zNHE?#jO~_t?pqlhEB6L1;+3f*u z6+6LQVVbd$}Kr?F-tVWvm!s7a3<-5pOxLeml9j41lWZ$zeU1tk?>n2{1yqnMZ#~9@LMGO774#a!f%oATO|Az3BN_cZ;|l-_DHyR z@@BC@)uIGs!RQPWnqwJB9%oJ>A}1F5Jz+4=^sxj~5#`9>6+lqZ1T>iKzyh+r+{W}I z0x=F~T78a|6}Y#ekpUQgTbJhoBC|liAS()5R-6IN34Siv1u}PqGz`Qgi{$`S|~5HP>V29TbG-YU%n^ha-&Qo2EAt6r9+S&z8qP! zB7+Q+dN@A?0N8ltofk zPfm%+gpJSX;z^5~@{H^)FOlx}8UcFKfJ;C0ouJ}8%Z2O~7ko}hS0WwvY)ffKBy++! zGo`y90||039AcR)odN2)tgFCFGhV0DOHVXDwRE;|j#jb8*zz>v5@P;hra<>Z;V~^j z7A|SNcF1ynjuEV+(^y8%qq`&0-|=yL=R|M3zkIsd!}-7`HquwOwD=bqDWuPt8g=P3 z`THGeA$RthRJPktnw>ib;{A(_DW)o(hbp_XsN*V_bb+UHL6rg}of9cbkFs^;imyG^ z&c)q7R{73WT(`3KjOVG&dLvI%r^crF6O{z_EUM&q$1|$ccra^evL=4%8AiKce9#in zZfkpX-dTSO?+1T5W<`2c;<={yg|2pz`>bt%Tnduq=M3~0r-117qTd0vSEbrOXF0bx z7@Y|WOt1HAvVA4KXGG!Y+-j80_ zTN5>aQKjYwFBBNT$@cVxe0Ms|p}?~1Ri&#h`(T`wn{8wtdR-qzfZmmj?X6i@C+$Gyc+4@A0Ni0PM_~R3YPzZUH4D#o zE)?jmnX-Ly2dskly*A167{<&D#p{-9o3<6>0Xr;E=C$Rya50@`qY%+#g8xG6;}u%T zz4yW%cHYZwbTil~a>gh|_>76%sVs%l;li0RDkAMO`_rGTh|DV3QLK{gctp4}_A%DY zVDOI1plbS!8Cl7`!G_nseYvJv?!A_M=2?COJ?4yHPMXf@Z zR@d&AO5@E9J}h;gZXutA&heX$DMj0S$csMql^M}S%JENHCpvYXj5D&j>Wl>UI$5h1 z0~h|sGM#k~d>Vepnr+i4NTk-!u?W~0SD3a%ZkqjW!AzCGHU^76l_a3$V`Ztz{<(pU z>prr>XmHX#DFF9aa>}}Yp`b3v=ghP27f3nR9zwBI%tAi*LIENG_pF5J+WCy>>dUXu z%JOLkJ1kkttCHw%321ryP6FJnJBwAd)p zIoB?)Khd-&wAc|Yj5?r_bS6(J(#^0K+v#f9g6-^1et0UYJMoxmrX^gsCmHK(5INF` zd$f9gx(z%`_+4T~XR@SPdbT#>eek}s;g}8}aAH`m7LrJv#{d~gQ>xdS!)u5@=Uy9lGtZrG zy@~_h>3r_-SwKAUp@-8X_OEy_tWK?L-SG-qc+e_`hB zAxD{XNwRI}?Mkt=C~|!@uyn@B4B^q`+BuosQg9;x2mWm%b-`rH*6iBzg=Xcp*zhrUl;+EenkL3B&IU2U?bkE*XYDZQx@Zvd z@Qf8)ICIAq73k0HvHpBn+3^{js6?^1iIOT$y^_v!UdQeq23t*LOBXKo&i;&_!^aLs zIv+BICjOL6HsRiCm2{6I!YCO&>(hFXE+@hCS{d-W7=VrFVeF#%G<%%S`83>Rf93|M z?(A|l3%JtaIx=Ajlo?*d1KMNswCd$mAdQoDw@tkFe9zPj}EZc{8e3hbOK(ka@eyyR4yQ zzjFlX35NF?-+G1by?~4=0htN%oL;8YI@tu;>}UcK8-0*;@3r@Ys|wn3Bp$qIUGB!* zE*IUFeDc83K1Z_yn0TkFT_a|erd7u-GAgx!on!}^B7g~2=>37eJA1;yv&z9AwWBNN zU9x3?vFCnCHHC{=kGIaNJd4L}Rx$P7BitV5W@!99ZnbJU2oSx=VUA}Dj9RjAkH8{S zcyb_)&*dnHKBu`Ko+(h$&3iO*R`uD6Q(0ECqZrdFuJh+I#gO%b>yS;28LJd`_#eq# zu^=-ZoDhC$@vX`sBg8Dmo$synnuv4U`$wULW3&^;h4(o`WO!O}Z=MZmk8x|E*>*is zIpi+-){J|E{YK@G(yWz2*4F3iKIW}hoyUz$W}EO?uepNbLb%>oF>(FpSxn(-^BqaC zU=^d*2|2M)d0>n&*@zI_!Tq!@(WBiSy=8J%v&n>u12uil?gb*HmC_9588#$m!m zN_^G^IAL($I)A)*khAkMJdRlI;2nSF4;{~7qnpFC)u5nZbtEiXCH?2fEW*8GYU$6e zNfwCZ*2&Q@*@8D$RvpMr2v(oJ^`yKA`Rd>!pIG7K%|5o zM=S#oQBgVsktV%`9%2h9RT4;~D+m}`fP|KM?l@1G_dW0TowLsR);fR50@UP}eeZo; z*S_|?V{8K-guim)RG@4^0^<14zDpj(c3Q81#twIik&|>G)XNv`y(6&w)e^dGS)t`+ z5;|@7`YWU3GV9CBZ0gGc<163uKLxXTr2t(&%Ez7I91n*$lX}Ew_CkMUHEZco5An%y z@z{@8uSu=GBT+^bQOz z__MPxBhW&qLhyv);?x=5M0>ss|EXKoBx~>xh+B^rZ_P=2zSr~o#tyC!h|W$e6`7=jzeDUHK=X8@%r{n(Hq~M-!FCx zYB`Qu>y#m6qqkmP^4hVk0A&i)y7gWV+~5HQ(h=W7yTkB02;qSK@85On(f?llBEsjL z$V<|vn>vO@958Mh(vY?Q5YCg~QNExyIzR{`!`bke-YVvJH^yT_98rr*ZUtW39*R91 zj8+Okj=y$&k>vZE^P*#=`bL&rkavJqQP~AZQR)8Vm)H591Tp7K0=6`Yo&=TI<#8L^ z$WIE0Tl>L5M%?n6vmVX=*;()>a;rl&KdOcvLCyxte$3$|Ltdf$!E8avk@TTg-M`n6 z&ouprz=9Z13y&C{cf?)js~TlXHzPgrMuv0T94td3Hs&Zg_2ouQ>wZpdHIf?(>c=!7{Dsc&f~w>^qHS4 z@6-en*Cpgzd9?{xGI(F0j&`y!-JmWiQ112ff-JLmg5+JtC<26bd4x9+B*=Q9Z`r&A z@~;0)%}5!~c%Z?1u|P+C(#vn-$H+ZUx+gLidG<2ivL9R3UxJJoWFh@m5OoMSH`hR& z%gMXo82DNA)4!k9fA1A#|?vX7i1z)9{?s=D*k=?d@0Q= zO7+AN|CxJ7JfkB(Km^8P-S@f(B}DyAv`SvyK?wd6lA36gQA+2A5SNXmN$G<*-9nH8T~LTXIiX|}I9?7t zB{OuZc&PH60@+KPLy#iO2<(OTCGvwNlwUv(LT>Vl38Rk(zN1c4F#JFU)gjqcaEL4r z2l3>lxCl*}DU!y6{Q`0F1%D0-*IHA7oZMvb=;8{pcnPo+e0y z`~sx2c#FxFZ`^kX!Yh|n=e;;lDZr!%^ob*erGJ6Nh&l>^H|rT>=>rJC(n23U69x2F zmH{mIeraLs?L+=qavVAco>>fKk`0bn*~0gST3I?WoBU6Ky-Qd#KHIW#@D z8!)hcu`tRbkc0l0EX-JngyrKq>DK&*Amf9O8++vV{+~sm2vh@d2B-$(Ai^IN1X%iC zm0*go2DJB z_;I{F--jPc8_Y9)P7W`8oyOR%kNF@w)z@k0W`EUlKJYGMCizlc?F{F-!M8>rU*EY7 zm0%>{F}uYpz>({?XJ7p<5VldQS)jfFDe<)n_!sIeCT4u6FVTJ9k773Q&(7bR1-a;- z$l#rvhs@ytBI^6+tG^#)F-qPQ_%|>bqOG75QX{GMgQ$|=YuBD7X}zX}4Il9NfCK_6 z|F3>d>g50gl+NaO7|%O}MmTIp^i};qFV}DCSgBvcpZfo&svtfV<==+nuavhOZ1CZt zsOh&GdwC0c8aot5!22`Vs1&$RA$YG!ASsg%onGyYxgD6Z19uaA;4Z95*=0-?FrG(w zi+&u-IWL;=-_z)bd>dUq9otYjREzh8B z_dND4ymN&^q)Gp8voDYoOg11zN0a@(c|~9Lmj3vZ`5lS#quvrkJxH|1QbRT`vH-c= zkR&BY+u@ETj{(R8AUps?8Pa|J5B$nr*`+z^-1n#os7Dal%(Cw&@s#hd&g)UsmXK!}k~zZ5qa(V?EQAKe6h zb`^f0%Tq91l!thVer%FFRI~4p9!~~wOQOzlR z$qW@j&hqqLB|;n{{tqNf*F^AyASDHR_5iXJc>Xpv2uK?a#?p4xx}yGgLcK;}^nFUY&F;b-9>^a0l(^zvMyS5XC)6F$m};MM$=d1GZSRfiJRsD?T`Dd)f1d>TX#- z(SHnQ@F|gC7)1c^%M1OyGLQ)mYM@SKr-o>q!0kW*B>xD4f9II?iN60WQcsHY3e4&8 zPr9jiQb`}s!c33^9dRAKBM!r$aB1Nkzb=7TE*z1-=F}s;eXnaB1tX9f@!|7iN?b%s z)N38UphL3k>ea)u?cm-42rH9g-7sfu89TR7Y2s66mYo{_0x#5)B`U&Y?BF22{|V4F zgZN*6r<(zMlAXmz>;Dn1G;4H|N#IDotUd=&7!L5%0(Hxmy5Q@Hn_i-a?q^FiR0 zbq%&spx{DMSj+p$p@Tog{`hA;=9NK1|2R?WE9((Rl$OaF`BSvUFQF9~QD z06l#qF!DPaPRce9z-9;9x`I%-|6kCm#;}c5g}}@WuSy@jYqSF-|!~> zRfSd|x5N<@OaFol-_hr6UzN5mG>^>vkfN}B_x`YCcHq#N`m*mS)K$HDGLsjpH{T$h zq}LG)n+PX8qv{ik;$DbqUkt`MvSF>Ei=?KxqRb{(_P)`rDeA;-!a$A&II;NnWnU*` zP~74A@*H@N2H-S{_=R_)I+p&P-bp|PkFx|R6=-pa4i3Q}3HL8_&~DrIQ!zy+mKJu4jnI(asyS)lkV8Jy;_GHF}f1xVMRDVnu&(_V!V5MtnbKfe~?U6R_4(S=ro5N zE@xQ5uh^|xPi=XXRoNp{*SP?-P&2q0^Wxlwb}=j&TcavTj1yUG1Sb&|nq}MU=w>hW zGZ{$A1&4YbfIe5u_9M4x)TIfrcvvR_qE-<@PQC5g*tZ&P!l+5OCu?|e*$W3(E zT%u{AQ(kl1_NNsgpRdv&(^aMq0pMe^@f`>Ht)RG@R* zk3ey&++AjAhLbF5n!{(rw|r3}o+@YmVrW1ouZ+W=_~t|f?C3KWtx#5&c8}O)iAFPj zphIUrImg$rE|29r{a-3g?t8nt`};(MdMnj`XxteX&(7<>e-alHr7-8ob<d|>+!=%a$?(OLqdG83(v9@^T+&H*9cIwiQ#-bBw8kG1xg*2)`++MSFOqZ}hGNij#jKU~ z+C!FvEwWxy!Kfdl-r68TvOms9rF@`jk{kXG5Ey{w%F2wsla{0`kK`T5YU1^3glZMI<@2up+k-8Q5zp(h!^nNQOqf@tmx*x zePviO+a~(!L$BPA*&JiQ#Q|~v7hmwXD!BVqAiou?b#0q<7F75*tpu(PHkeV^_%yw^dA6t}_uh-x?Kw?ndQ9cDC3e7%#tYhU)71+L!At6Xva zxeck}I9`kSPWnmiG>2V+D3MXkbJWaxoeXkKy?mQtZglTC|F;_`N24IDgOiysjg!Jy zyFI-qY57vG7KAwSA<0U!P;D|&eYs{rYj$2|6&h1GfaV3MmO?M35_2VTk+7KJ$f*xhwuZG;@PJah*u)%z zVT>%)ur|^%j2^J`cNxt0g>IZ}z1rCjHmBGnDKe2te4!C+1#h>Dz25UC+Qr6v&L}mg zdHPKl`DIrLm1G6_@i#4*+kH-^dCoC(tQ4t|;*r;%8*x*QJ|s@mEx|kuYF~KL@O4;< zSm&CMbaz7|Wg@-bpmKYJ)&jxdR-c6p7tNQ{59sK6gznrWj0Gu8AqOASqx0-FyV6X; z+d1p#0rUC1DAz1rH{JhBjuf$9pVMNnmyIWEHTRL-ibMwV6>vtu5w2P_y5Z8qsQJ8S zWEe|fc3^V`Lb13nAAKWw={XBMX&Y-%{~x6U)F(wq315WgS8wN$VAv`*$CQ}R$1Y%x4>#4T93wt|`=NOoVST}0w~U|@FYCgjx^dcGtRIhkb? zU%f3Sl;>RD#{)p@U-UD_Iia>C>f9JWn-1_-n_kR{44;tM;dtJt3g-sap*yOE8@*U8 zqh?srh+3X{dx7A;=qJ~#D~sCZQcD)YHcb%RYa3zg{j8D{m|91?deede`GPPab)HgU z?pvays-u+av}8J^xLGBy7OyxFN|Kc3 zevQ7q7=)i_oXy)TE?2z-KNw0Io|m)q!$kbvx^&xXYP&OsG5AE6N~8~5ilObKF!=X3 z`d7+VXIklP{uwsd;#a6UV3gIbJ5%U|iH?otJe%H{JWvt0x$-6~yjCq4w-lN(1@CQ6 zC(5<)R5+hmQ%V^3F)z9$8n>e8&+Q@1WNTEYw^g;RKVj5w#Jk2%fxTZ_qzj%?Noq`QssFZ!r!FQ&yf zMShq^X{syk2lNIXl`Uw#0GDECMC{NbeEuPx!g5?|MlElqGgg#RihO)h7YaEuLI~Ob z>QrFspwR4m>$eJV1(mXS1KoP}Z;n%bxOnq;l0e)h`#I8nUMT~x!?Q%+)h^6-t(E}1F zIR(gnm$rXIyxLn=$A5vmjvJ%3v-NM?0&C6I8rQTH=y~n>ocKlfGaPSJq+~D@|@iVp0dE(mj`z_K;QeXgSje zPB3$^U%wcceh`l6?fYO(cmM~RNV}5aCBpAzO%W%v{lWRY*#>UAyq|^ zTd?h~M_D3y*4cpocfNo)s`&vt9yHF1b}%^H^+cJVL#cXjYa#YT7!q0N2+olhEEFz4l8S!#D#Az~YFAn2Vf<_On+_SGJ zpYy$U{-0jDVXmZ6oRi+-J7e_Sl@kQ{A)caI%=S!hlZBH7R55NfV9jti+qU|sVY*Sy zR%Gj!CmN(6)JTVWY?u7X2C6YgZ|9pJ$vovCy6l?m#O`o4XPFSiZ+>WuwHh?SZ*(5h zmWBz=E>OoAmTd3Dh%Aiw&snAy$@8uyud6wQPdRURj)pYSm!bB5_c7#i3)xg~8GZk0(B6A;|*R9jHyN=m-63 zgD0wn^Mwr@TBEAu`qZgKq#IAqFou^5lsN(+=b=e_FYi9B83@~ekVa437-^yUEmq}j zGFkAR{K~@>IPM!`Y8|zt*zTe3Z@D+V{y}Z`S19z8Z#9hDU)@7)I!vt)u+n3G4s)t~ z>CD{B(TpMEsO=io779ngZ|HIE93$bH+;fdk^`CkH*t4F@$SuZ%{60#jwLQh(A4WC1 z>M=iZNH4o&A4~S-Ju`AOXlu_NbtyTLJ?XaU6}|dUhNuXZ*JXm&*rFQ;%ezXe*aLn^ zVZxRk;W7fKLigzyE2mskG_z+PUd`8i{sg$$xc%H(%fn06hIUIz2+-`^ zG(X4kqnsZ$#`aHQ_maWZ#NhOEPD>#vdROsbuSZG_hR%HhI3!o0j_iia)ugpd^Oj@i zXq3?t@I;hkICbKGa*94tV3Ga))Q2*v*6?}meldZ#P0%PS2s``)Fk^aiD23_I4@&J z`K3C!ao;*(o>tepVt5;1A>u)naJ5lhG3KWI&eh8Xs(InuSv9f}h6zA43`n)#KR{(TJ(Ibj`7*~DR0eZNG25T!BNNXR;=Gi#G zPFK1w9%eVm=+#?#!cr%k$Td%12--e!!_Q_`!=?083p@xkmKQDXZvr>A@4oS*FJVQ~OT zy2hjE;j@W%=O}+-*6w)kvxXl;-1V8Q=jDz->6_WztBY!c3)k*1^G>fd7kJs(_Ho*R z+iKl4970)O-)i)PLwa$_l!_4?IJrJ#r|u4gTj_J7?ysATF3{y_ri`e$+AwQ#XcSZ> zyTRt=cQ=R)&`0*up#ence3b0xchY=W`I{IS)Zg=ZbDw#P-)sBxBHuE4jj&-?!K4V8v?_N;ZOi+YGsTIj>nRjD9=vSH*pq=TA3A2CcPK z?MA@cx1yP2{rYKBTf6727JDl@NMvz^N@z^5O;*H0qW`dilM2+Rqe(|`>s9XQ7gdbY%kRB+r z9o=6qM*EO^fij?@Kn9*QfH%}6KhdN_X3G@A1I}edEe_98Tw^NbOSI=C@%06YhMbSN zv-M+87~Pb5S7BulQgq5Wrs>*6H*P@vddP<7axE*^8tQ?}t@FpRqSrKlc8}ZqgrhI* zsGA-knsduNm+zNXX3ce6X7kGL287(%e5*Z=l<99GVx8Q_DNlVTLqbPxO&?m$76Gd} z;Tev=AAw7U#mwFfBU4Kx@#Xz{8gseqk_*NG!4{Zyo@46_Ih)joUv7_p4NV}&$${sA z9#ntW!2xL9;Qv0F9CYcsP`!Nu;|w^^ed2LHSqztbKQQ{}do@%oOmFM!TM}D=mc{dY-Xr#e}g3sY&Mj)_!>rH(lATYx-4vyn#uS#zaWZ z234LgUs`4Hsb-t|&}h1bF|9$syqzm9Y}>azJ+nn5r9g8Y>NDT3`#tC)nB76GtZjM8 z-mqgb-g?HQ=YgVWG64M) z<26Ic4$KK^kBw%2#!j;WGd)rhu!-V`8T;5^uyMKF5LQ>JchGh>0+9BWcH$|yn4#ya ztSu@xz7L*es*vr(Q729}(y|V1$oFJWKz>i1$vAFeW67 zu<1#1Jwq$foT(sn8%D(fGC5*RYC|VsnwpTyOYokBiRRC_j2+?NV&Rn*Lr&m)Za3{X zSr|DU8@JZMlxvhL#P(LLume`$thWu(aecn&*295>o@qB|e9Y0!|dK>HPloLIE z#ouM7E{oJ!@=0stTEhC7j{%`)zCpq>z?PQiJ4i1rXQ-WaQxAO?#$Lr6w0#EdYPT-npcR6nRkNsj#5C($IAkoj<_ zXVoQ}Cb8omJp-rTjlS%X%aW8}kzlwXn7o>*ksmT*Lv?qu9BOv=tTNc>kHJHMtWeyrlJiES?`QzW0Sf} zDm$2BBtzu5JNU6@rHXrbU*+Ud+5LcxQ=8>+N5}sBySFh2_OZeYm`QxSPX$zTYBnpz zb=+`_-UJ-=fnCayhq)Yf&2zeUVSt6lYe z0-|oIW$_{Po_YTz`2n?#h+rGT!3UikQLho!pg!#Qjg*oVv-+2&LqhyMayFSUJJ?MQ zB`8@4Fp@YnlkVT6qL+@&3%{v;+VN~nV~>^o1KA3~gdPnK>ox9e71n!t|Pa^CEeDZOt{r z9HtcCWnz~k9uT7F7n|HAcTy59cpIxN`3_N(`z(S@+K1~o`{Igh1OVGrV?mc_IGfnM zv`)rO7wuX4ExBf1hyPnqEpVknq+=X_jTx%AZ?`q)i{@L=0k5T3`xur#lVS1O#SIs> zu2PEeY?IcVIxpV=rH&QgA{z=NxN}W+ngK3Znh_h*?u%b)Troe(2)12#?mD#WgmE%b zm7KG_3f`Dnl%nh^4YXSp;lZ%$?nxNnyghje1_#-1pEA_993Grzsr&eGKwgQ z8Zh{n%M)L`WxCSwJoZiSM0os@$yluOG0UUQ`rz;MhzIa7O-!%~MYnb`(cEWR^$Sp{ zDLp+Q$$$`%z4QiU9J7Avs+%a z)I0y_$lQ-Sr`MzG^gLzM!;IRL@fbJV`biJ)3Rd@PtTxJ20az{ldX(QNR8q})95FVl zhD$eg4a5!;|6p+yCT?<`QFAG1Oq*1(rTzH3&x!Ya)6{Gl{I{@Q3#P-#{rY~cx+O-u znr-LTuGQ{)N1c*8HD4-XA;lrU)Hrd0!7!v0LW9~IT)j7jqm!@D3!aaMPVA;uO37Qm z+hMWStB+c07Hh+!Ps%n<<@xM#%q?XOEmjs2-wf|G(>nx*s{I4pL&?Pj!Zj>Ek`vB^-konE>mVQea?bJ*j2I+Zt8T{1FYn7Pj= zzdrI|7s2P)A}4GjY_i4g85%Uo876C++AtJk;^qu?cD87(InvQUReL0m;z8_DGtgLL zo|-xGLM7X_{wS~@Tm*Ku7rM!M7skG~!?#bs_Udibx{>ZJRy%FZeH)Zv$4-Qiiu{TR z1AWSKv1{sJs-_?*6ZPf`YctORtsDLdFwAuM7Hn)>md|W)(Wl6U_Wp%qO>h^Z6K~49 zdORzQSYwo3xn+4&OztFx2P8w^+_t>jxNaNl4%|M_c>VJ-<*B^5nsDvsmiyh1SI?w! zTvVCbDVDF>y&S=?)__s0pYF`G?V$FwSsm~f<#;a7m8+fdWxwnEEr8jO+PxK6H+YY* ztrq`ql1-}+C@^wnTxu~(Owp$gdD%gfoe|^hpJ$rpw#b4ZFXtCS^U8D%8&(eDuAU-G;3s?+8L#yTa{)tO=)v0-7}~}&H2<2ii52~9 zdztS|`zT*A%5%0d&3x5jO`$U6vmyhAK>;;c&EL1uHtm1-P2OmC<8MR$5cQVKfrAIPUhvtT|_ zIAp_NIVj(O&=)!Bx_zmYwJAgN%?=~~P-_YYM~bwG8do)>e@XxbTU3qXRMRF6o?Ty# zU%29mbA0u0cOmHMg7KdJo2}3eKw(}UYderSO1CygeVU`-pbb#BrfYlWLC>;ubMBzX zLK7_h3yn&68lB_&(!^H2IsDF+)VlC@h0(j$hp^_$OB2TAKBh{IvqY+bq&c zh1^HvmC2Fg4_8;(Ne}trsa17f)XVnY8mj-(R?SLQJoSCv=|3P-Tg}D*2>VaBoVC*asW=;fN&NIiTMxHSYnRlS}&WNedevnH+D-6Zc z%PmQXrc0PPgLu>V*0#c(3KYk(6fwPCs5n!jK_6 zHZ9K?oun}PD;urwFfXb!6uAn#OEgrQ1Jm^^JDHx6T!-R_7k}S?ej(4yDDIG6~9NShPPpVoAUjMYi0UNYu z{ns1I@(!WR5ozyUHhQUC-i=sO=IPHOCWgIJ zgZh%963j`hB>97j_nC8rZRet5*4XR)pHZV%SZ8jbyExxWp_jUjM4fNlTG7{g?)tqw z1!jf*Cv~Xwet?4ny-cgEG&kx#ZEGkM3z6)w-w9s=t&xB{90s6 zT&B2ZY>vmx*G++oZED`XX05pN=1<3*njD)_p{M;v^ht=^w5$?{$ewx#E zOH=bZDBu>$Jtk(Duiupv4PYvzTD6qy|CgD6Y~j}MgQ&d z|C<7I_50}8g1!5?E^E+@2#wgW15Gmd5^u2`>%kifd=pxDmhE^n@6NGJbD6+ZdczkW zGIHCtqe>#ZmZ`!)m&$oJhS$CI(cea>S?GaNyx$2TCjD^>lMNNfhKPd0hS6Iav+!nz zB$L^Cu?WfG+UAGgnvR;?Y6p4H05Gd!y3+dmXF))eJx?i+<=VE=))6N4IdqFPzvsc~ zoM`6Pz9_C?6F^4GG}GaqPV2+=#u^! zv)WKAJ%hfu>4%Ip_H=0192h2@Iq-3;Dl4y%J6t?l&jjW5cb|0GCMDWlCVA;TiFlmQ zn*S-kePjJCPDb{~HU<@@_7X^x9}u^Ws~P4rPB1C6J-@dz88{%q+%9YjZZ6bkwKo~?17(%TjvlyP$xzomaw|Ab zIXqjMeWbw-)~t5qu)9pray)NrJ(COi0IWh+EKp9~Hj$p})RW?n6KU~H%kTQ`P2V%Y zk8L(lxiLY(y?kSl%h~`S!B2tA`yp)mxo~T>x9PCf}wS*3I~XRJ-XYdw(*Bx*yUX3Y~FgRe;5!>wR_003s{CCtq#2cVl!P{Vy9e~mjk^zn!4PL)+Fih{{o(U-8? zdk3}8I5Wm^{*x8@=uV9b-er&yu{p!Xd97Rb7$XJKp#aXuAo{)efUS{jE?+{1#V|YS z&fy^QiPLH^e(EjoLFMVXf#{me5gD}-Jhvs3wGD&|l&NtN#Xd3Bb1-(Lg_`8*o#hnU zyTrhtR$PUyDgEjk6T=muYP$v6Xg%fd>iw9EO0O?45%NkKr}gHbd0w!fRTNG{A%+b9^hMf4&TNOO=PrlhzZo! zZmMQ18Wur2kQVvm+7yagSudBN$?tX!z)*TP#`{X@biMUO8RUHEkJs1UjS6bR9jkW# z>ZyNq3YA72o>(t7;R@T=S_it`Kg3{gnk<<>>{4#_Dwr(v zi?FO(;X2efre#YphIPPPXvX(89e)mCzh!`h&0j9LGB9kLc+cKruQYm7!`k52iHPAS zYGZl19&{plHi}w!Ow3}DTNnyR_PAo#ksKqqZERjpXzSdY=Fpz49?xq{xxA-xE%ed# ztD}b6Fh`>{*%Y_%XS5Pv`6;A4GIHOJjZy%2!LyHBj-AXXpP+{c#x0m22lsQt4YszS?)eBvANpRSUad-J4hK zoNqeQzP8{+()fQEgzYKH=ZkXMY8mbPDYF1NFF`k@Fg0Zy8rZRRkFYde*Tx?>`?JU2 z2+pu*oo9-Wtj2<~=2t`iO0Uk&9R2yP$7HH)NO;{S)MToE7c^oe zYp2{2eK)rDXkuFek0qZ=3EAOjxfQ2KN>16SxhrY?YNDc|rAA7^n#A@3%gR%uXxz3m zLE1AQ{kA0j#md}oTecsC(Jivo=cK9?x4tGI8zZS4j56Az6g55#yhl*k)Ta%u(MXCKtg`y&N$0A>_*h`$1f)>)7?+w+!dBP z7FGSp$F@p}N&wLpq!>C}4?uBHMspX}Pm8oO zgo5);NZw-5QubCywv=*S>LzCZ8Ur;|Zk&mEP%S?&iiu;I`9}kw^f{0PWmkOzMrk|E z{19-3l1lUjVRCtA2D26&u(3Nl=KGQjd#%DN|I?uFKSw8=Gp#DHeLOLEoN`~(Qe!{L zI*Vtcg1A*+1ZQ8*+WP82?E~&YW29_NLnQADi{{Xe(b4Y^;KB6$#wuT_tV>7VgW z!7tnQZ|W4q_1*O=E~({NQSNwsU=TKc6D1`+H&DK`A($9Z<4~hTcW0I zgg3~$KsoI+swH~}e$8`cMSjR>SSGur(Wc_kbBPMU67X`V3YAM3yasfc+k}5g<891k zOT;{g5TD*OQ%)<8p8W7)u`sT!?d5kI-8|l9IeHVZ_<-hOx_`(;LzjuSch+G|N*>en||QAtF|+Xjk`+~!_(XYCF{dJloMtaU%RSZmN{4!?n_xct5OCwygYa1 zC-ODmcaw{F|MxW+pmWopS$vVzb%{Op@3|#uV$KP$4r8t%=gVlpy!=IdPRJNA9yJA3 z$~KOj;2^egNxS{z;L7jOQ>Mc?V7$5HD9#Y+s5d|4O{_wVJda$`@=x(VUZTKmS}}E0 z#R3g4=r?^kK2UrZ==t!=+t#R0TC!2AM*dupltSyNjNFIN=~oRbIMPA{rrZ(Kq-#P? z5)V|6554BudMDGA zs7iRFmlqd5gPlgYg2NNs+PdwIx4sWnPca!21p?%3yXte6nuVz4LI1k7fo21SxxbZ9 zg7hGG-~8chgoRCC=fP*+hqu83gr4u1{av<{1&lwC76)c;eYn=qPk`XG2xf?Fav`st zq|2T1r3LpqQkwgC0?+1+#E9v%Bti6Jag!c2JvLbU1{*_EgFiM$7sDgJf(uo3jc)eq zCjRo{#h-rr@rU#Ke!qAzU-|iiAAkMn^6$FyIRZsAIIuwGwuUQB5&W6 zl|96q&1{;Bp=3;h6tnUViWev3xUcVVmkEcv@5JXG$J&^YDmIes6%7TE>}>r^;24A0s(M^FE1O9JWZD{=?fpy(o`s7;|g!iefZaW6NPE#Vg&t|Qb|K5_OM%GfzJLTt;cZC#rH$%5N zpVlRoI*AP=T#sIV%=(rlQ}x_`>cJD3uOvdBqE>)}E&d88ElyDCMxJTkJ8ime;h6Tr z)g$0u;HK_h1M61Xv)}cOt~_U5Bkf&_JG`|AzD+_hzP=FirBi$5J9^vA={{e~mh_Pm z5utN%iM<0%j}_-0cF(4&C8^E5gHZ7d>B61$IOLT^uM(Q9ojag#^!J#^TE~AB<>-tQ z6#Ap>U>Rr1Bo?V+4yIW<41Nc=vQK1!8KKQ0Bo2qsU3i_9x3v{Pq7B8GqNukO96v4lf9s;Vzj7ID4!y>z7{$homLi>Wg% z{cSfCOZ#sB;_s+vVRP<)@=s5Sjh~)5N3_^~-0e};u}c;yr)PisaQsr^FFWTGGf!GP zJiUCd(B5WUG9at?mz_Iid!8J>6npr+)Uo^Td*Ia_>o=bto8}b!k>$VliS<*9b9?us zDqeh9a25Ty_~@l`SI+EKRJ~*YkjbvId!;$HACHJ|FR zbng)-9lhirjBv|vpFYSxNG*2~Gk>u#BV-*Y&RTY^zpLnwbKU059kaw#yr;$;MR5hU zjP+?vBy+1FvR_l0zVnOT48u-otC*_D#RXhRN=iLy0Smdb|AcwY%^zm>7g=Ov?7wpA zxRsoZ?YoDNUAt^Qmfn}r;XtE?;iuCDe%1XYL*ULlqVvqzKFLqE?5X#=29J39-8#GP zCno-xK;4%+)J@cfPdA?Q2sHBC4!>%9HP^kX_oC1v-B%2h>As77yFP&nCO_~W(bOsB zpIc(l{xRu2`0G;vRmc{8;+TayM5T8%{W^)g`C8LeFDA+0*8Ea^|D!FFS+|3$mC4hS zKH$k_AP;kAb3L+WJQ{=j(->8~c-!_KM&$xdM4x)O75#A7rwN{>8xB5;#S>)F-&^k+{NUP16Hdn#QZqnKCXy9>VW zA06_t7Fp~m=+o1dJh9nb;1M4A$NOC`6U-V*(;f-tBqTl-XirF-<+%uX-qY9x{{7^A zM_`{nPdcntr){dH2dm$8DmsWTn>^lL_SvJi9hrP&Tn(vouSd1zPp!&-OqKVv z+0IiO=RLZc7QT28@mVt-_fX3=`efVlACxS5Pu*2ixTJdJfbySDiWMz>zjL|5Mfs?O zZb&!U_HIOJ<8HJ1J0R||^r%XDbKhQk<@o$x?7d}J)Lq~A3nv092nYy*lp@`wbO@+O zNlAAzB1ppwAxNtr-JyiENGLUPKbjUEpVO7XZX@|8rQlHj`iPu-$EhD4p&r)m1PX;f0 z1}ImuJDfZjXduNl7v+#y&O2AD7(1HI+mOUl7G?+%widBGCVO6NSXa=>$)Uk-X?0ns z>r#SZN{Y(-?F&Uo^ST8l`w`lq_g=;Y*HEy=3q9|;z|Ep|NWsDN_$oL?2@ev4Ev+V+ zTTAa{?ofa7R~Bg`L(x>d^v>@qPYoQO$#?Wi?*5!ov&Y|!Xe3eW zahm}ZxHH()RgWyAF2`9Y{NBo!;_RY0$Ad>0w5R1$?|fTqhhSK zGS~GFsecB1ZS_CIhN*97bEXDUQ?l!T*E(rf)fE$hn{6&@n@67jW( zmix-;Amd~OR(wj=ph@hx68<0XY2 zW2v*HTcnPBg4_HeCA(d)Alo&_qZGG!n`rRC#mAcyxHW1y>6)ppaVUa}>{Dnb+dsZ; zoKLu=mL$G(p^NoVs-O^Sv+kn|>34Y%j1WA$JiKt)FTz0<`~*sF@`3~x`^R3{2Bq9IOOPai8+Jz|I*!;EmsI>!e{12YC$vUe0~_ zN)Stf>qsd&@xPI>NFxMud~jz?xdmHA`jylM9I~J1F1C2okoCLFcoTQPA%l^$r70{K zdmi!+e^vv_up@xnoM6E1y{bHK+w;VE(*hSgr0Eyx5j(J}_$;|2;#5<#FQ|NEd6-6~ z)dk|{%|~^DTUQH$L8zk~W>w3_?Xh49t;-j61l7vUhGQVhuh+bf2}ckoD}&e)7&`In`^c>+*<|f z^afldq2OnlTb%>77m$?Tx=avXddbD2LHNQgLZ`P&jP1U}b0^BY>G@s861$Zqq^`6$sX?h2gO8^b=Wi?(ZO(9MzC4k!~FGsSkhtV2Kl5r2^Orm6i9qynPteNu9T8(x! z@M8D)Nrk$7X}wCvLDp)Q2oCS-&HN$I>`o>>{FljTuSrOfHVhUHd;Ws zpW;^fHKBTvcj8UH+|28Oh!GtG#z?L>!(=-d3L8Hz%ONtzNx>vRZS=R3VY*uiiq9Lx9 zm)5*t3^CLQX^z0J?w3UmjN51NV>(w%n@cXwv^_2GCOiZAQ!mXPe?=hItkc#E*wxxf zDk91mPc60Q6R6me#V_3~mNb}bUZms@c?>CL$s`$7x2%_Kqu05p_1dd+DY_=$UXV5j zIr)jz&??hXRBO?#M{`!rCW&Bk%BTE~VKwLKc4e*3;>*|ja2iaQ7cVXIF)DDc81XyM z2C))|YWcu_^@&x5+G@U?s(T{6-G#?S^Rt#WUF8OiX7W_yQ=%=69jxiRb$U|t7+;wy zP??+AdX*A}Qx!<0e8C{N2o}K~?ZrE-1@fwL4TXd40 z3bG5s(*~}!;+enIqejiT6l}?Y`4|6@qJYZO&9Yu4#jPiF&FaImfJ!?eM|D0Wc2iv9 z&GuQa4VQRFy?d#up!m*)1f-u2Wi3Coa?Mdvu=5iV;;|6EcI9$#t9-HpZiR?tyt(60 z?bnW=ki9k=Lj#e(9)rbiL-$&}miW*Qtu_vLB@(oSRb7HjGu2kjG`D7lh^4E#ml!*%t9uEUawskQP>`z$E;XInp3ig%`Ny zimMN(L_8|LH~fGz9;W*AAWh}oFsp?#dPN*W9K}rAZy8m=cm^Ay+S0_T?5G10wM$=P z7)>vyp`IA;^Dh}6?(naf_wIsQ-__@ZV#=2-O()F1N?+BRbvZ|MzZ}s*g2M#2XadjI z(zOn>3y%(V{Jnu%Xhx&LV_RMXenYY0%gcRg2!vK6_t*^iC`Q)xvrlj4hz_Z$@sqw> z!eMv;aU0b2<7o52#suL(oR4O}wr0H2Pwn}GtuK}bJ7?a5Uo~ZOOm8F)RlBqglJv{4 znFVslpjJaf530{J2Rx+~hr_ zw#C#KKH5VocXvs@k+T|hbUd=ZwLP+(3(e2oeR}HmdBt&1bAJCuKK<}a<(+->?nqI~ zf|W*7NR~79x;leQikHhLOgHD~NoaT`H zlTR5Vp7Q(e4K^GsT9bEXoXh1XWkq2H7s~B9{Zc zN9UKzOm3f>UEYVZHV9)sHG#?kR~15*Op^kAX~R;M8viPb|7!)2NIud#URfJ3M}6}# z`2hT$=*b~^v+6T7#W@yZP*^xQn6y;&>c?7JwfpoR^itIVjGl{E_k3ZQjR9xR+nE%R zh(Yyp?0%mF4;B0D9O0QCoKJ3cfqYgoGjw$ay2Tg#<(xi+*36ZOFI~!TTi5z+^P8I3 z|L~sW84@)Or58b1Z`GGn#0L0IaB&QVvCTtA^3$|Rcb|#DW4Pt8AO^lyBrn^%-w`F| zl3UD{|t=DKZLXI~#WHl5SDhMeHTJpGoi>k*lYVp|^aKYr`ZjZO7^ zks^}Zb7BNAYg@TNy28vjw78u4_SCtG^n;Th{Uyr-P^_|eYcMO;ZzQ7FU(r8msQs9&2ZMaxsr2k# z89qCnN^BB9+{dcLNSt!g-*w}3p5>K&z}M6bY^6RMHF$4nh0{`B;L=MFb;fmmzGZOw z;%Z2CbxX=yBScX(jF6R~>Ce-g=H9Jy;e!nop1A@_EKG8x0-hUFW|zsa!n6Kp^?Syx zV--;~F5gMx^69ZdGj0oFqE=tq50)a%N8V5Fd+dB8?$rAupkKIc;_3qi4fNJ$W|^Y_ ze^I-i_M!o;EPiE>mCYuf;|UGAFIuI($|{%RK`*6NkS&5L3bdV^E>c58){>WW93NNQ zU9ChvE1V1slyx2JJ($}N7+6-G-|)a)2*IianmOhDG78=^FurN;74?yoY5m1BrviVm zjP0wk=X?8GYsuH<-7n6Xi+cWnLrV|7PJbR+ubW>fXvBt$H4JUtHC2^^3BB|xO;t4~ zJ$pGJ<8ya9VBhoLCxQ2{`0mOUMCsWMHDqg2h9&&vS*xp{UBt-@W7|aEVRTUo6?u2= z!s}!y;^-PikPCmA%Z@zukHGaR>rFpSw;T_~YRbJcAC2mFriK{n3&fTj0|TtPW#)In zYfIBKnGsm_>A+(~j}_;;TJ2<-13jJQ(Jxwf$CZc#qiTGIIkd+5`Uji5XV_)O)IG9& zwl)O3bC*bzn7|Eycxs?PaO$r{KI2V39k9`RfN|FxZlsHM98SwWIEdd`eE~(jvn6Sp zjZeg{bum<3xPPUveNyI@nKy|Hiy5}>M#XS_;=H}x750)OzPtxaez94OSZZfOM3n5t zWcoIIpUe+a`M?45Q>%Gh`I$pmOC(E_7^tqSdW8_ncKUX0RiM|su^gz$!Q@?f5Lw9F zknOd*(A@r{@AL_cJ?7+EvYEUh8veli^-02aawO0458Blatla5R&zg3PPHlfY6&mh) zuhKkOA1RT-EH`&z?Rbzgb8z_KMYZ$N(>kujvTcEm)cuc&WLHHX9J^-OL&>bf1064# zLdk(o#zfPiwDg&=5V=tseX^c(p_wNtU)0V)Znyr$!FhT`hi{7g5_G#!&nM02HTP&z zZ{|Jw5^Y=<$?GRR%B{Fhp1aFRJb0tRqjPz(0r@2{z*In5%V+dmYW&(Fm1gYzAuIWm z>ih7+LVbfa0OsbSt+*r@*Uw6dNCS8j(WPRD|Xcs{j9 z8E(z39ue9@PmGd5TjS5voLi_XQYW5MPp5QuDLX{YS2N6G0X-56P1#0^WS`CU%CoheVU47K7I^J! z0D5S~i7m}#Ub+-1RqbBWK^TTb8c2l9_%8XPU;#`OUK@#fJOWJ-vVK)JwgiIrJ@rjB zjFY1(Y%{S;5b{~~beJiE96A8B6}(tE1Z~B;eXRXnzDPRwmRS(dzYdkT6Qi(5_!hg+ zhlmw}wu#Y1_f-=iH3s*Qw{9$4)R5o?!a{$Mq(130T~uXPzm=TCm!0g?WHS%hvJ8QM z)47IXM!(dwJ{UZ8K||AkXgQ0iXwnZMqwX zz@U5{&dGtNujGoJRLNGy>mS$>{W8VdaM;$A8&IZQou*8zc#G{eUn!ZcA1Er!;60xq z%as^zLkK0}dtn>jCh@1JjG3KHZtm}H9BjX!dLx(hJ%&y}sx}IfBmA|wPGmLZeN4fy zhD>M{Wk@Wlt{kyVf9hLxlJ@EEB@1r2f@_E$ZFW(MK%Rw_`8-KgRY+}QIhgF`k302g z?;RVeD6tzXuW?@sVKQB^ZX|J5ua&RPX}&_@(32ChwAn%5=sKZ4zPT>dXt5Bt=Fw+Z z*gbaOht}IoF}kij)7J2@W@bN8->dR_jJf-g?Y!^2%#US?qfbJLvWYje3>M^=Pa-p{ zy(8Prp+!}&D+2e+OnC#$oZdb})-uWdqFOVBb@YF#(^+~}^TJ;)uA*)|s(UfJH#Ao) z+MZ-qO7-+~N5Q{J;wY18dTB*=p<2grO?vm(zPAF|gsPu<>%B}@*iD#wU{xlu&!gk} zr1(GXJZYDK(t-D)wpl_k*J$nK$~s-=3Sa^UU0koBVPpIdXetxVREO0-Wq_Hrh8fxE z@aOlo7Aw#)HLRV-(ocW3M{01=#kxYK#0st|>(@6<^W9r#Ns^uJSKe`Kz9=D@;fi@) z9Z+;)=vv7RigVe2?p1x%?)`K6@sR^*fOa}*_vm>Wu3AyI`EK9A153V&7CKw&wrs+= zswK0LCqoqd5Q+O(IMTZ?MAsqkbP&Cmvp2nZ-n=o{{cTBbm!99^la=~OK&gQg2z9F$ zuP)E7j=qK85P9rM0pPS2Vc0&jY4p%=qE4gnJNKyB_S6eIte_cOAh3+2aDPcm{k$LZ zZ0fOu&6M{_ndnOUC6tx=))QmNeW;{jqEqAJyXX7(2QA604nrq%2QxP+Ius)1yxM`M zAc<4G!9wHLqxFsh^5%&VuQ_dqHHNb=ST=Usn85n0udOeAof@B|Q5i^t!|8VBJav zpZg`+_ggQIdUM0QJYHc;dR`x|EU7@56T%qh7XMvxwb`o&Akn<1q` z1HlOKOE$oNrn39*v%O{#dR3r#728*ZOVEBXsJ$Zn#i+)M?H9%q$-p&Q9Xx*R1RtPk zHs6R<88oc#MLSIHWjmmY4fo7uF|rl#6SZZ_Wj@lR-V>v3erx9y^hK%in225dyQ}w1!W5Xai}Bbr*a+ z$C7@CLc2bTE=}%Mdlj9GI~#M9I!Tzi4HE8&$(Z>@dOf>V<^0UcR1=cao7^xZu1HEZ zpnsz4R7sNpE{Z$0UO!4-{JXy7r2H0*Zu;$m8nTI+9Wru?5ITsJh~z7W|W6#hlv z0W9s3c2@N2aF$EwvCMw8j>E!G_J^^_>7{IeYa!qIOIlaPUL$U5w8)l47{LwFZ%kEs zy*)X-%TG01qF1V(Eov6#0WVsrXPdWgX`?3-5Oj#pW>-@)PD#;=h^OX^;pDPv2h$#| zpE~3MKdW6SO-s6pZj{4KdM?aEMclsDw#6^8A&6UV!y_2Vuzu)yR6F*A_g+->-Mc<{isK9Ii;buwe zLqzj6QLD$yC>dt2)!anFyYCGa#&(-bRy1klT6)m>ou-bBY5mNBxeLS9I*S*Mu*y~J z-Kt?eAFc~6>P(b{QTLWXk~`A1_g8M*d2B;fW4z^DL-MOMD#xzYw+BByycpS-)?Yg< zsYs9tMb-4n9y;7XtTRGr%~_V!Ys3?dfp_(0m6;odsKE6y!`rfjX_n&+Cp*E3Bn87g z%!s&j<&%M6`z)si91O;Fn8eOD`u;Na0)HOwkGs~Gnw>JD6X5|mxd1-9al-2K6{8je zO-}}IR$vP3oEX`tAQvD4Z+1!VAi0NVnioc8v@-?7dO1^>C8ZmR{g|T9G*9*OIs~I{ zBj4mD^O?|_b`nUZUyKm`=ajc_6Ol_=SE9w>H*MIyFx>;zGCdc#`jz(roG|eAOK(lY zj*0!s&#d?Q@0xliULI+)+M29XTy*cEhKym3+;ZjS(M5`uHGL{3#L?Q4~$&L^-u z(y(-*WMjvb8rmNVX&@qS`bQ5K0zO>)8a}WnKqTq@^%ONb=vb&5^*(^P@lk^^&GntZ z8+-k2QDik~qav=KOQ$r`|GT4AAH{6CR;f@s={g@mKsG}@>s^6c zkYVYT5h7OBXW!QM(gqOxKay(8uE7eNuNfPPn!3(N9CS~h`mDBA#P-)vWSS2(k)6p4 z1_YPU*!k4ic#}@rigb}f$Qs(N@~9_1W{|({(*4TsS^X`S12MU1WWm;rHs~d6wxCl4 zZy!H=2R2dt2v+u_vetT-yM8;Z#3pjIu&|@x77#*ICG^Q1GoZ|vo3MAbCW_r(fML@6 zuq$yPF@~kirU-4)CxxA3S1{EvJ4aST26Y~?nLf?Cd;6~$#Z06}bxXGp*mF_4R>37K z{J-{IsBx|BwzMt7YqQ15m9>t8Hj;Xd&<0{;T=I)`l;`))tZj`bW67mFs!zQv80iAv zi}FrjZx>7Kc@eE-nbw)&BVCt6$Md6KB@kKS#)C=HUJo$=Kds2h2qr(ROn$LhF8{nTCL@q`w@FN;Kp_e!`Hn8Bt-{ zjKqR(8&KTt1+#JPhrxsjLm)#he{5Y45ocOV*OvAmp}3A(7c{aY+HWmP9I!um=`i1c zzvo|PU@Q?6UDIWob=M4SJi(SdTy0c_>P`8!Ct=G^SVj$*-%#foytmJJ^KN^4NeY-0ZgriThNLE6$J zQZ@|`DM`KOFW95!LIj8zf3EoZJ|3)W*Y$D{T2bSof%wb$=}X%sIVDOb?cePTEIDLJ?gF26# z*5nc=7WJF+B&(x0DsqpunDYAln$)9Tnos9Edlyfa#nQN zXKO7mA8s~}jSk*jc<=}r=YF84KjeIO)?kkB+0iPf;+|gJcd_&mTOPA0Dp($yVu19O zh5a`oq2EJvHnDU5KS$$UMc;L;5~vEZAXLyZpk2G*7PI zQG&~2%`VJ(A?kW6E?0<%j(?CqT?yvmLDZW?;j{-(Jd+a2@DcRgDmv_*|XQ*VmXX+9By}=EU(!e4s z=fiiY2VZ5p2UR$-jFDO9G-^`9WNeYLeDPar z1Zpd5S>_CX=F`U)X%ERF$+og{GAHlYNsYddTz{A*r;3@}wZ%&%P{VpJ291yg0Z~CL zDX61;lk#@Trbvxb4ZAlDCi!GXH_Ez9d`GT^4^yt`?>h|77wwtlVNP0_^`G>oDoyG~ zAKTAr&xoBt_^XDZ#biIa$jupUMwjkDL<$olTUhbc$7XYjY)Gh-(l9ZNOnS$ro~Tp?3Nq5 zB!ttdrHbF9(IsZ|U{ODJQd)9*%=RcPQ&O7WT&IE&!uv=EL6=N8LOvTXT?Kg^>L_*y zD-6dlz|51{K&k~PH)xq71QIoaBD=rko!+HuR$Ecg{e|jvR_Z=!ZwVx;8_fOQ@{eve zHEEZ61{l4BX%d}ahRJQTbnV*Hct>B|Q%46lRemRN0=*DDvtr*#^|8UDn*BCBk#yYP zLGqA#*9cDiU9U9qh0RJ>o7F{>;Qlo5an5{(SR!&d-tphF+2Jye$whL&W<*_ebxNnl zbU_bDFoYle(G8pRK1MR?S>ri9YByO@?tyg}c|yZa{-%?6k17kiN?+eFtji>1j{E3V z*U|Hgc31)!MNCTdo*Cn2OC9YMb$i-E@lh2m6V#tPmTyZcJ4niL=$96? zki5BiUg=SL0u{b2#?Ji2HGD@fVER4zjN;^&KrY>^W^B6t&yd0Zkte<7>fy9IWuym* z`fC0@3NhQJi+?=+Oe+~hSMzDoXcit6U5mdy@))k`QMOZFwviMyUau_=pIY*rs8g1{ zd$*yyP)v2D6B^1Ch)-E6(ll3FPybQB6b4yb zng6676|YsSj<&0oCd-yH>$lpXy=ijSM8EEZF!Ax#5OkM?bDV08mZB`HS?==6wEs%k zJ?kWu7xyZYSTw-=6z{{$qY*1-H7vOU_UtHsSW_nQ2{Aw6(v7=Sw4NI$dAy^NGKU{A z`yt-5Rz88U1P8EvHpAs=kIGuNnV3DAtDF7%g#pT}L;<`=&Hd)8c}Q|gRD*%BOkmnY zR3eo^He~kA9sX=}sk>1bu~)cx9QKqJC{yjIAyRiL@{Tlh`3q&%z+ASk8tH)ke$7pO zkj?^KpciW8{M`mleSr7&3R&KooLY}Po?aIxL?BL;wGQh(LL6BNuv>SK_2+g81D;|H7D(YW5%P+w-X)n3tV7fvSVS$XtrvZ7mV z|6Q*eTKDmsu?zgk__X(~GVMiUO7oUlU{{sgHr7O&$tnG8hIH439k*{jn*}Pv!|eB? z^ig&OVu*JJ@vU=&`8dr~0iPQFbMA`?Y-({pMl;-26#3{CP?GVFikl$D%ie#}kbs{( zvN!5cFupka1~k@kp)Sc43wSeiic<6^yHaue(z~%!so$lVw-Fmpa{1=bTJr}jCzc*l zLJzuQp5Gi@Ib#ydLlPf!Mfb-w_S_?-z+|DU%Dlp99W3X+_VP&w^20qA_f+}c(Moyc z+^zS{eZ!bVZHa1DBSn3I!9Pcl4X24WvfR?p&cO-OR2A^?9)8R6^ZB;v5;m;$fZ={P z1B^nQf&X4DD={zD@sCU&*iu*<0kr96bj`U8&rS4GA(p2`obZ?)EDy%EP19qzM!#!C z*OTi*ect^lgHk=3ag#Rsc-pa(-5F$)#+bP~8)Lv~t|+>FHx=2yPk6T0@Z5Hj>GoEmse(MLt5~#@eEZ3l+q4~-ktS>9-Zd>bWjK@R~2??tI|N$wFlHoXuC1Z z6;M@DzJ}VU6(b3Y)&ZP+sCo;EH6v^H_g`5{^FA)NZ5}y`dMz^Ftd#_gwg29R^ObO6PnXc zjvRj$Sd_S_b0+JP>9zZ+B&sGm8LQ-7jLzL9*Bxv1M+b7=4Z(@lXN z_L@s8J2GP)l}CrGFWg!#n*TV^ZZE_&MTVC1MOGW0D}rD^x&9`-BKcVF#?Y~%?=4O! zLo!qvvWEtK$J41XYpMz{;+ujfncb$*(?AT<70QaOp*6=jeB$mH@3oN^UM^P5#tP|A zdJ?lbkZn@gzWj`PYY#rX+`v4AN@_3S&v<&p)`w4xxFBMgYCX0`p3X(Oi0x>^Bs+H4 zH#u6&#;p48N*?L-F=q#06qYS{X!`Pa1Q5FLFc;`Z&AvOXBQ2WaBH(u#*={q}9&KhS zc7uZ^<>5tmF#U9@jp=k4Z0#xH4M{jMz44o7Q&+}1vIeNvmnhA=O%oOQ2D>zc5ZG9`EA(d)Id9MYF<=%}h4=oy% z8cl&ke2W{8Z-el(&!ByV566Zc-IP8OYExq{qo7~|BY3==u%9~KprFLCPQy&uY|LGc z=$eNRS7X2szn3I12NGy}>3cha=LNoWSp`3AR4P?lkXwSuVBpa%u_Ky$H-MX9hhj)| z`$>t9iz?E<`bg{8qG@w}-`4EQ`8v;!t(%y(iK!y0r7j8kw{vH5eV>As^DeP2<}_DW z-YGPgthc*r>b2IkC&UyMFwN-}I){ZlTGi7xK7;V@mh>~qH1WecZy$^!yfu3X>$1xT z5hnOc%}n;UtC(RQ^1IA|+*X9GF#Gvevo?lupSjpW4UuYXUzN z9tR-BP8UPERHkS%ph?#i+Qw|CA)jY_7!T2_&TFR2r9H432*;^!*^a7M!=A<++37UR zpQHVA{rTqZEuQ+F&_FZ4=Sz18L*%ZRaZ11PE-OosGkr$n=r=txzVU?@hV0c(Opf%` zb3GodskZHQzs?nzxGF>0>R`%)8<9|sm0A} z<>F8St(toYBPR{5Ao?bYr-r5#a1TpMjn-DAsUVwwT0mx>#1-sNKsElD78OR_eqXne(V&M7BJ#Y0$L%f(PvM(mG~p*iCh-hnZujoG%ewHqP^- zC*Qqrn1oTPgYj9keKZ1Thcpm**~z29)oc@~qXA-e!X+w^TWa~OKmi-|r+%7#ZRd{} zwzJiy&x75J%oQK0_9Gdf9&7R?b}%kj0FgSQT&#v1>cZM<`$)^V-sG(O05B{dHw%1G zUXQtTH8@c50rPY5*K|KcR@RPuE_^mG(45)O*kW#qA(J`D*^KKf z_9~^52r{fSNIyIiNBN#u_k30g`!Ge*Y+mYYCMzZ7yS4iMOLGI+3&B#^T)GS->AHy!F8Zw(cm(m0DC+t7 z&%p=G%BJS4N@u4qCFWyT%ytu6qb@$!o8ll&YJ!^%D6sM5H;4ed)>BbOS37Tbg9fHK zEfsCJ*%_X(2n~Y|H;JgzOMU#Ls^0f$pIfv`?1*;;BlO`|>fm0u*L)56@P=vDd*pZ0 zcZ`r$$V>ZO=U0-lhZnD)7G)-C-UwVP`WUTV@h9ogFJ_|2|S)^UMwaWD-bZ++`g=NmIk`2U#2cLS8aIg zo^G2;MH%it_ghG$bv&}!o$&(|xIR151iiU%+^Tk}dxT+z)2mDQ*r)H5DV)j1iEMP- z%zi{ZJXLR32`h!_?|MejrP@!JArV|iI;Z~1dW!{gi8}h6$JddwA0+N$jp*+sqUL5y zPW=^N4p?nJw%qf7Eyn&yBW{~kXwY57sisUrP($-xTKNMRHAMYsy+$VLdv~Voheg$g zo?q{15cUdYNPX(}^ebQchMZ-H9U?v6}=o|NhmKQ7Tcac(Xk9tM7C-ScR*+MODr3?7)|5_WChX&qx^7uLJ1KTA3(+K@JrSeRz+E>ddmRTEV+k14h@ z=x&Irw%4DMkGXoj&&%r7P^D zx|c6V_paKqQ`4g}G*R{TjBi=APY*@Gh&CUG8k1JnrQZMzVD(fk0R^%x5CE{*sU?tF z#{GlUxUCL&BwXNWW@GsqiZ`b{aOlo4RFavU_pD!Lru7ZzKg|zUJK5Q`r}g1Y>Z>Il z8$!`bZ{{U5AIFsU4}4Kz9u(+qLrb{_?LfcTiooA#&TMH2c>6_}ZS0Z0W*$lpFqH@~ zTQjLUY$ouYzBj2KHFkN{TnugOx7B9f29@I|HGx%hq2;ifit9%(DE(kIIS;p8P`(J_ zD)Nk>Y3x0ZvnjuDR2Tl4EKIR++c8btNxs~`T7y9>w%&7_#XE1mNw;^-rm2IVB3hx^ zc*WjfPIDglvjZ3ErEzH-Ik++)|JRVV`{^Gw_ms&z7u1Fv?E@3`zFI9};U=#Ty3;ESk!Cg7FF zRN;}U)p9yqpcn1%xdUH>J&?7#CJPBynYBp`#wxNW?Mk(Gk?Dh=t~Y3 zv+X-9kEnQb+zjs+{;tnY6Zqf>(a%ax8TBmDw=>WOn9X{Rg6--0j!Xy-O|%J6&}`@n zy#MUi2)t}(GDpiO<(U6!NB%25p*Yo?XGV{AbQ6{6*k7&&^}5!BdJ^w_Ej8P8n%WG= zNa^5umKFiMcKW?Pfg5xAE!CciZ{vxM;Ni)1PkJlHNpGZ>Cwed0Kk5D_plfdDk8r`~ zli7b=!E725mX{-R6ml5mb*tReBegU#OqyG%K@*TOTu>;!RpnwFn+ELlsf$3xRMjHJ zz5iXC2s}S?gI0wrplx$&b!envsJP0Dy@v`#4Nux9jf<=tYTpE%arhx2!EYc- z@HaA}mSXa*RTKx-6tIN;1%E!&?^VetK*mG@ObA}zjQbwu#0=FiMY zx7p4Pi@ODA?(o6yvJ$u!-LY+^@U^0!9r10oXU?+^`hbN1p?H?nbuN*NJW}@5zlg&u zKpbw8e$4WEYNmeI%=-!>v`1*qtW4^2#0uRx!g@o}@6$Bv9^B{iv>z2tH~7px=$8dx z-2M_v2PK&u(gJP7U!={_ZrQC~us8cFoWjbw8bqzZZ?3|~FL|dp*jp%l%~avH9#sTk z2b8fH#w7>;0h~}6#JSYk$)?tG!SWIJXoBEUYmrLq2~q5sTtGN~!^t0p#f)wp-}bQN zoBRAgQaK~Qtyc869V+}M@M`jpum4TfHpc`pB#ZbPsvx=))HeKm_-Z&KH*IMEbUd`$ zXWeJwlTGpBu{H5PWIHpD-1lSo;bZ;o>)m+0CKeE@&bixZ1e>H39ry|W5tF}@At(cA zq#)0|Ax-{1@mbOvKVxc3O&=ML^1V-tUKwH~pB4z*h8a!nC}ek{izP(u1vo-fB>0Q}0Wup%An+o2!+a`~S)f6+bSoT;dGQG__Ofex zVUY5i(0GKy9=17Xz7vmgl==z~X?&HO_-J)g2J^LPTmvTC8Ba@rdZ~534^lyu?4xZJ zDWALP0t7jL&qv`6)B+XZoH6GpDfet~2|(a%g^{M;=xEx~EaJWAv>&H~d0X|%A{GFp zKDzo3LP$NFbE&!dpYK|LG+tU(;$i{EYKw|JhI8p9;NI2#gm;0sRTzh+{cBuTRX*hl zH8mJhfEL69fENTwRC{((1NvbFXVCM00Z3~#B#2gJi9A&IELaKO%!2{|=o|ZML zqMpb!s-EfttZ+vFpurUE&(QJofjBYY@4D=F8%#07=}9>kP!-0jrlj0^1wd~KcDp$7 zOA5vL;)z^ijqhwO>gZ;?yq@|hQiuI9zGZPZh~`lde=Bu{f!O5Q{B1(OQ~p)$0NL~w zHm#D>Vljw8=A5|~uX#U{2m5zQ7Ta7bHyn@eX81LpAQ(W2L20D_H}w0qc0Z|+U9gfG zC~i*|xDbL)WlO~4 z1k$h706R#**Cl({iKm4_e!-{jCgtD?QCY?o(S1!Oc)9X`m`aM^%YP(34~E-*%9_as zcxZCqkDJg|pUr+zN4v5B2+aYh`=|Kz|3TRP>&Wi> z0nn2k+n|SJ7wrI)40ht|J4bQR1I;EU|xXyQkuoe!r(C@ms z=cB)lnOOh-W6ytaw*j|dA`axPR#p*V0aH(~_o)g%KJzk??kWc$vp+L~Bgn`(`X|TB zO1!wbi**1D?<{v1RRQpZ_!PuJeBo@i3vb-DnRF4b+{(YZFI8~+&{m}atXp8RLDaaTq47K)cRkRO2|T>Y)=LdU4l1B82OLpu zzx=Rn;Yyzs&K#wD+vK3*zif6ZRZ^Fc;1|WS{MSKbnT` zoo#p0U{@lKV{e*R^|NWoi7(Gtoo537)(nFoO6$>px&~ zv`E_J>oHuQULA1em#QaGwfAnfIh4e4rqNgQ=}*D>xv(3qJ_>J|OWZ_Cfw4sGZ=;p6 zWpJM&o+7o+^%A{(VI}4NZ~3Z#UMWD2Ifc{}_9Ejbfg`|WBB$RSj;>|^fBt#T#)^Vh zFU7NIT;lnmM#k(t^_=)@26<*yb#i<@Gy5KaJ;utO%`uK6@Xi zgk8+WP@NWH53+}{&)2et5GS`1SxoQj02Y&tjXxj5o|+%v{?7s|IuI*xwtN?n+jKM$ zeKc;*JOP$}HHd&LCxlEgf=ptOLUQwC%W4Gco1FJ=B%|I)EMJ%0{<5&zN~M_>uOS(! zA+ba)xm7*9`bwlPr>ajfx=&(-K@!=xzZy)!pA*erAHiR@NLj!6se3hwr#y$JqA{+# zex191ISsN}zfm49R@ma zdAaiwR`o3D)B?5Cdpd<0`HsT{g9mHF;9Uf~qZ6^~(3>}`vK!nSuX60mkP!9WHlcG{ z>Ce_Aq2Z0qP41p-i>4ipV^dv3DD%4|3z%#0JSmNx^GOu!`%$9b{jt$&%gAus&1dGL zWeBgYgqr(cgKam>M7?JT=}$Q_o+CT)e&fi%nBmU^5cz;Op8D@5DgRU2A0%VhP7jfT;z9Azf1nAV zgisN+c+LSo{n1S59keK-kjT9+T7SgZh{B4ZJuQih?BeW|9bV+ zFxS36>i}%1K`CUTq6-{V&_kOcBJS>b^owDrNQWa;JuBeU5#>EwZYou@m0>GBwqv!C z={=+Jc{V@__Y`E0h1Ykxq&*IQ=y$(r^^J6=vghp61~KtYrtfm9uze}X8SWUt-}?OJ(M_S88&c%*C|ChMrkXh(0?#k*lAS=B@yEPF835!Jy1)@ z!!ChnV~HRW=vIxP5ES^`cgR%%WW~}OCKq>akwPvDjC|~Koolfrhr}9g zHy(}}kGy|CUSw{vxvCwmDt(^ONYO^$L84pAXR^HWN0Q;*;JfJuhy@0aTFMy z`EFL&qzRqNzU(q$R&*BMqzf%MGCnffYMaO&uc!%x$l1G$1yr16?+5h}mv4ULh!2#- zxG!Y0L8YU_S{gu2=tCPN7J@5x1Dri)K(@mKhKnV@eBp#vgV6ILmCJkeiANj%!mY;b z5|vJbmPQURwNV3}iw|q43x$``^g%TU?B4zpFDxMspBFP*E!d@NW@gh%(+Z9C-BMvb zw#nXCcf0tJ{6i)6jRc)0gG-;^&@Ou2F8>bpp+x?AoJsS0$O+Ay5>>eGb> zoEy6CjFr@x__?CKNe%g2{B>{f1u;_&db>fheACVFoxXRS{2))GN%4;B*M?aiS_WEv zlg8B_GvJOfpb?f9Tun4*PZn$Zqo-lRC*oJ8m&xLe;J19Tii`V?ze(-+*rt#$GYNjd z%uNHJ9@)VflaL>4#TlVGs ze23HN?C1AC=l6gA?|U`Zb-KkJ%pDlVF&uBGA<2)}vuQab>%_!l-vjPs0 zmD5gVoU(en>w9WhZ+$Lr^A(@>cP?r-{9FYN$yuY~kC^9n!{ZOw>ewUIL^4Oa7ojua zPO-yc-@~DriXo1Tm5<^#c$W(o`+Ym=R@(HP6ogJ4CnmkU z%u8YBB1*&fnz_Zsp&FmgYvE8qzERL-#PiUNb^BZbOt;AuG~in;kTYhBi%;!)Zg*`| zl~A1R^>F{Zyx!ZHTYFg%_V#^8y&fLYE9?wyn>zA>N|RUP%MeWb$`}iiZsd&r*&=yQ zDpl4xdzFC;ErsufOF&@E^-!F3@or<~5PK-PFwLV{ft5Ay-Qc}IU-=&LJ|?N9HJ~CF z49SC{b_uvwZR7k#EvfG~q?RNJ12R=WRBrSd(u6GZD0R|z^bq0LYM?@dXMyfL zG@SOeZojHG)d>PMftL3PTn(->S7$(A?cphRe3$T~XR`XlzHvrI$--;zjA$9pL9{AYL1|d`iEizl-Z-&dggzpecBy+}99;cg{ODE5T2Xd*Xq_)2-9fgYIurOUgDZ?eAUgTY~9alb?1ww&Rkud(^h=n|g=u z0ZvizOTjtf_6Y7Br;i7SSWH9W5ZFrR8wmBRWFHo4_>2ih2|6H%x@fPXmY( zRM{~3P$t&jIH>H*|HkMbuFbfGjE%O*$ zk+qp<-w&}=&S%&7!`j>f&qSUa_Bz<+9_JN2>i(nG(-#_U#y6#|UX;5fVo7}xR60++ z67@P*^vR(0#|RTCZ)%P@4Yx!SsY+_D`8#pDf`j{BsATY`v8cAV2U2r#mU*M3_`QN| zN?n)sq7zNNlw{;qOuUe3cFR?5I=rGpOp-w3{#~bh4dHCV-aRoXcQMm{~yBBzDDmsbIt&%FK z&o~JlY3mAliI?SY2qL^%4yN_IT#yQP29MTD)y8)ckx++2&4pSuOaf-vdh@a`GNLk8 zsXVTAonSL>P6Q1mV-uda`U#mbbMgc4l@BgyACy^Ym%O)QhMA@R%}$ys>&L#H2Swg3 zW`1nn_b}w+OLqTROZy)sZ}&3_$%u%Yd2{u$zn$gX?G=Nfr4?9j=FpK)Ue~8@rf<0p z_21v=sy%oq!r;W6xEO=3Rm9G*zB4NEfC_qKCoiEBhmrvWum|O|lRGHjv<+Y%b$A6-?nnWR;+Ep%N z(9{Pj(L7gR?z1F#whY`a@XLy5gYb;-*2FNy_}Mg+=9jBA$zLL`v&@cLhR&K()ISzrH&rmPIMh;5lJ|!lWvR#&=?Ar z-{OOFOF)AUgv1F!2O^(uU6h!Z7R~v6Hw!KSK_f0unKN;%t$mpR$R%|d#fLO&(o$wo zfcIcjVRHv+9Q){xf)ylweoa%CL0Dz_U|CCII_a3_+E@>3CGwY49U_oQi#J?tdXBY( z=_oP`x2^8=1=^FpC#hz^&A7n{3iZ-^^fYbEbbTMWMDI(x>3bX#e8_GEe{ihY%3c=C zp5*=e{V^W#{mhdCqs$c4Ovl&Q@JtQKKzF0HCKIU%iLRS_DTW(Z1D=?x5qnKWN-qEV z+Ki`5Fs)R6!&yKcl#r_*I#iVZzR9B}`-X`u#9MV&Q3JoBI(7s60ZvPuK&y4aO ztnnVww3lsW0EL4CHQs?TK(6#g6CL}}3nvMu&~bF2>I|$7fP^s#0_QrW0I3%Lj%@a( z$|(4o&dmZc1;s(FU3Zqg>fYLjoCh+^>8vLSBz4=MFLS)LVF1Zb3)zzWHg?o%fKr{C zM~O4bp)=_OU_+>m9i~g7y9&Gkwp49_O7ewAsWgO~(|PYWkI0Ey0;E9Td|03l>;zE! zeg%qFkXoo5J*btCu!5ri0V9bLeSQ8%Qt?o;@{3r|uSbyS^30zi9@0e%13K|MV7mf$R8=a>15$hc4ObJ8xc-=2@;}ys zSN+NvcrxTJ^;NL$5A;wrOJ!3T9&Wg7DCOlWcFT<`z)+!j z8|ON)3V?p7#KGV63SFyUBDpKD_Hqf7CE9BZ>!f!>IhLRc_eZ_FLqe^P=g6r(y+35} z!KVCSKm~XI1#DvS{oQzU9FH7&8(>I)r4W7^qA4iUJo=T1$S;)OS2g(ozv~IKT4A4CgalvzT2J_&azom&##um8J>)b! zRCM4ZX-fb)n-R&H0{GYdZtV0!qRZRC{Rxp!utYLv2?iqUs;5;13?a4_19){)v>H(S zfOSjQsc#yjL0b~UXam$+z!)XLFe4kqd*A#4n%-D?9RF3eTAOC~jjyuRb*1m#ll7Fo zo7p(E<8;}fpG=4D*lRW9?j>?9YRLohj@+=fX{tWB<3DkOeh0E{W5pTrTn;V-W(%re zR?ul!>T%Kx{r31Jun6%7HjDGRB<}kj2%z0CQe0@QNb?&*%KeF_x>0DWK+ zL2{u(`H&Q0`yq{fV2!b*PS~e+zV}Qa(7i8(B*;s0&JtCNHE4-}>#fYhGpkfd9%t`+ z=QgriB-lWue@K0gZeNmzl<2z@<015cc#@q8Coq&yp}CG^_YT_k0^y?;ZdJ=ontHO2 zo>qp57;UHDm*@zTkdhyL^%$_Yj?{!W(O1vF?!UIX{A6MR$~}jw$)suCHx6tx0y~i2ycuHUHf>ADz__ueLb6_3+6PFs0Igpt74`ffvh8?)P2ampdR2pLcg8(`O zaUDt?+2ueiCJRXp9o>}5*sp^5MFz;X_hj^5ccfzD)Gu~Ku=_06Qn=>;T?(3B;G&?i zq^Va_J;xKo56zqAD9k@KrWfv(U=Q}7RwqVYavUIgE6Rsaf^Z^{?i(XK07vmE zID!5Fz-D|mw_D8&BA#7S3f}&fZf~>1br3QFqTp7?jog+|5$w0>3*AFh`r9 znFuU|PUvob3*ueKHYn8NEW|C|U82mSKw^Gx`VYtfgT`LKbcag0z*|5~06;Ojdjn|L zIlpop0a4+|SFYn78g}VjQ#9-$8z#V*p^oeqoX78p+}}*({%$+g63GJbH(gh$vj36w zODR;Lm)rGd8T6My2d1%z>>-6STmD4iz@Mo7(3_!+pPVKBq*)5s68$~k1}Kt}Lmdc; zI+3dPWlwX+k#`J^>kr3#_4%HDR&P#2@ zV)5W_Odz+pXf|dA-ES|prEe#wuVg!dm;egu|6ZJ>-tfN@XKgOLf0Hl!9Yp#aQQhw# z(svN)&wHP~gGk>&B*5kQ4kCRAk%<3g=G=D>>5qJszk^8o68=4`{5yyQIpKZ>k-mdS zo38DDb9ea;B7FyuIKQZ%$;h%*WiOpq|Njd!;5(r79Z>q87{GrAl>Wa0DCy?!gdDve z0Sejwxv1wCRyX^BE)$R{*a29AYEnSNh!QGTgzdKk68CP2?2Y&Y*|LXBWwdm_W+7DtMTqE65)@_x zQjv?kIP;w((FhGnHFc7X#27FNd?Kg@6m(t;KRVD1iO*Ph2SO}4Bs-Vcp}g>tfYJK1PGad*K&R^V~V4rV^@39ANTHSRRxGeK=$hY0Aok+ViI(f zjsX?zE!XD14P^gs5eE9mp$gK!31kC5G_pY80r1aCdRwR7ZyX->1d^P)JC7-lst}1X zVRBS~%E3FW_i8&2$NmPCo~f>}#~!eE`!+3Txc>RcYrchBFly z)Vn|0D)5~oxJy&`z(|@VQ@nJjT@V-WH{v;4x7<8&1m1Z~W58k8xr^<|*mg>Jp zBL8PCra#%GPc3SKHUoUYnO^fr$Rs}TuZ3#1+^Iu7I#2Bm1kMh0^grvp)zSe&#uQOf z4Oi)jE;ON(gTuU`Dz4WS6ON=Ba^MAer#Y#)02FVJDj|48bvl3`QN zhEoGbd4Zxdmy*|MBZ$2t|MPPPJm+P=_p90yECbF5r1briU=fE)viqU)?Ft~C-T9W@ z1F=N@$Ble|ar-Zjt~;%5F|w2pC25m&yYELp-UF3N>HD&PqAEZcX$B0oa=R|=^H=+$;XSdlHQYP(|}TY6%ZV3xh+AKZ2?M_iwvNpuPXPicu{va zlYiI9=3n0C`VQ=4-&|v_=~|v{ivyZ~E=||spwjXCr4qg!r~gnlPirTS0ymjzN6((4K|_m17eXQYl(>=baHat3k*$sOBud^Qe4>NvlVLM1ak z0%R{i;}Z7{d&YKMKzgYpI|IBgiSM_iK#XFtBZt5{mgQ1XT?BWnlhnV7k$0URjy z-1b>y$l`*UZGhM>kSGQ1f84D=Fm}io4tk6%zzd+=trj#KLH#$YXdpJgQ0qOWTd_LQy@lx(>92mz%&2%7StMi{k zQogp$k)l~cM3__PJWs9ARSXXz`-Q!V@E|x~TRhH;f#bvwlTs##9$mpmx=oy%GI-;gD_VD;N3Zxpa5CA>(#+ z5&(4{h)ZOILlfAHB>0S*;jJzyq`Fvhm)OaZeEX_#eP#_9_UR|xMNW20ihGF*ypxC- zzkNqy{;IDJW{)jj&_eYV7p+Ep?k=!X3WnMtu3hL&8Xn?hc~F8PE`Yo#a--l3P_Ai& z+ywY`?3RXPY_@C+WXtyaqMye#?FXf>Z(A5|fM0mBLj^-mQeHakw(jiM@6C~HSm6&q z0I!`U9YBgrdAaRl&uuCX6P>c7AQgrY%H6b^4Z8H_vr+_O`?pr5Ef!5x&}I>0VrWi4K4Y<(YDx9U`uuD z!|SI#t}7Nx1vLv4Y(h8Tw_J^K!jTpg{w#tw-tSwg6<>NcFyo5iPJH|d$ObBL#=Ri* zE<*4P$$?jc1!Do7LQ=uNeDDCfvB&8X^eDN_Qj4(uiU_oR%2w7tm=6N^_e zTKtqHC!RA9wsUXfmA(twL7BErvyr*t4|}-5k-1Fu@5Jq~(qaVHb%(dSO575NoS>k5E1A+`u9$*v7RrpIq8CCO~-+- zsk~4L4Xe1whz{B!5#Ic9vfnvNZM{6K-quvPTi@P4zo@;jR0%dbOK-cRhqbooXvH%k zI1O&@DrgDe>zL>~Gr=$*54(|z4%~6Kz;<$wcPEXlScaXH~1gK@D#j#b=s3MK5h(sG2-IFDFn3vkbn(8_k}nK>B6q9EYv%MR0?Tf zup-mb_(GdVio0um9!J`jD|JjH7e9Jlcp_BEK^6zny*E3F2sVD?{g$T{Y`10Din^l+ zwRAf~0PJ#-pn~DoF#%5V6}D(03-g>$^$Xf8B6qGG1?oyWnD!T1TT}*~nERBLX&mb1 z;a3J}+pe$HZ$z#`@_DTGAGeKIzsacvTD9-HTb-w(C$-s^?sy{NGw@8Fx0!_<=S&?e z#vy&>80VQiyFJpw)|S7_-ipA9I?UWSBt=F>c5|vItVVBKPfSwgcJa)QMXg2h2Mur? zU+mt59_Xm8Z!<3qt)8~2)pDhnP`XVyzpqzpwziEcAaBY1%f$Wx)XZbl5&O1LdPbi3j< zE9`dhoYVYW35uIegG;S8T|Y897+yK2vVim}ZOhLu=G?clONfyNp&nWeB)@ZLdusEY zmu7CZQMJPh$1@5>l{e;;#~=;QvGorxN$Pr^kxrcaR;t*IJTZRqjCJI=qf2)sRo z2pDhPMrO)mtWiho$!2bXx8Az#xW8uH^3>IDqFO={pKm4Ory0HvO{X%9;27NiSKx?M7ymw z(xQGCNM(=P;xv5eP)ydtHRoq(JuD&%)hvK|_UoO%k>mJOYKgr3n;b>b6+Aw4Q77l- z)si8yhOm$F7l33f&qh&!EA5*c8Spy0gW7u#e6-xQb!mvhGtu^sw`C@IALKY&a(&-U z9pNO!2(N0%ZDc3O=Uw&T)@GDjSMaGd4f|%-#Qu+NBf38tx?1dwgLloo*HW5VMcl48 zZ$v73@=pMK9pdfc)r0xKmnQa6R;t_V%2sGu}^hF>82(RdO(#)l1AT`QK}WO)0U^nFG#- z4Op6=$f3g;dPs5J;jhAXx-HUfY!k*(fS+{k1n>F9IcMqAlw9c zs8B*p*j{pt&BzFjBN_sjl1+TSP1_a*s#CxLd? z@B22{|F4c4KObP_(2#A`Z2Ixdy*UstLaq(lgmx42$9b0_*?E$Yh2zjOtw<=O>vbIG z0Rax9AB$K>2#-#pYmg4ZFHcgb`0ERwyR#j?m}|clUmlGQ4B%&T+Iw@K#OhSp-3^xo z*{TwQ3J{*lu8CDM3*G!-vJ)r2W}LhCm&dfbbXnYG-(=vLRpBXvG z|0;wrJ&rLbiH>&s#HpQH)UqVnDdNQ3_=@;JSE90ifo5GQ`|WT51INMiY*Bozh8jzx zvE|uD^9V`p$i{atv;a$_MjxWKgSGA`!o)fQ??9g+EZSR2PJioVUPI~SONSMCZSU-9 zWDk;O(IvdAMOX7=nD#RSakJ=N&Tbtvr)U$jj2K4HwrMP84Lec@t1tQvOH&BLrnPEo z86Jd2e5m{IsV_&|Zgt`#pTp-H>*khD(FI{*r#|1cUf`v$1Bri9GbG0E7D}=AhX$lr z+pq7KMqiJ6@%EZ-{v+y!x4WG?FJp#ju;{;~)>qQV=-ANr;5rJWC!XgU!)t=4}ltI5AQaev#$u-6uv%fhYQj#pJ&V z8wDv{*S=^$E+yxBGFWQY93OGDG6PLwxjfBr7Ssc)TD6y#t8s@E=NM3_y7D~jR(N!p zZiLo#47^#4Kv_UQ4xuxz$)6+y+G5Nyk{fg|hlUWEFCBbvy+i)EYkB35pP>{qGK@~> zynxH|v_*;$1pTZO8E&p4Ek^31TE^o8ZfHv&-|hYqp>Oc35Y^9v`mm4+00u_G=am}? z4hMJRnS5ZvS1~ZG4I`?CQ!P>5_WAtibJyl^s-Gik=uKj;LKvW^d&%NzR*QOSo)1oz zURoYjYMR0hKiR5_?`)y;e1JB_s2{AU%2vS|hnguAs5C!*_I32N62rl>45WqZgA_dC zrFs?>Oi?){L~mDTBvO&yJWti{5O?bV9~=YZI#(BHc5CGs z2b;5B#G^lc(nuR5!eS1b1-bn47{@fR#Q#@G0TX#89`VO>(ps$58GNl|v$Mby{#r_+ z4^B5_7%;jhVa6C0L*5i{u|`H<4hldol-~_D2ZN-Uyd;MUzTjsT3Z9YlaS?|l3#C?R z)AhU6F@8)iIji}J4x6q#uV1Duf|M$l=kSZz91}Ve0BjR#Bk&6dpzQXGY{k!G*nslW z$u^*|TIxVw?gIm)gllr8#-XUENFI0wzu^#*+B1}PB?BixwHn97s(($NGSwHxzERw^ zolGiEv-A7*xP|tbwP5 zs9+K%;Ij-U<8b3Msu)}#3#x{%crk9q*TC?%-+~ASp4fn?@v#srY$m`MYT#{~fbMw$ z9V)}B_GD`z9-YY5_9~D^72{A11G1*iP|_*JXVfv|witf9iG4(!-@NN~IuwKnO#(&Y z%o3k^z2E$T#~?CYCD{y-0B*VUv!B1TX7UN}Ogo%`3y2siHeXFP+a(XvzzoU3l(8Y| z$^3>7n5<m(bz2RSoJgR9*fLKx$( zCkxc71+7La@`yBb!_KdJUl|Y_>KsDrVe+bQ!O;CXlz`5KH*Z}y>~@|pkb#Eor-GLc z>^xLXBt5dtzx@Wca+&_wpaXqBvtQ4#?SPZP_{*(27T%RV!QnX4$~gM0PMO=*w4dsh z>+0t;^)wb#+K6&OpVrvO|vbtQEjGOpUCq(EGoPb<_5Il$3k)av#+ag zm}|3isFG?HRH+r%|JuS*b*trau3$qD89<_D^9x>6-n#XGS`x4B%V3Visw&c>@>J8| znDp?49V~VejdKybtL)*7k#-DAzPJspiBjJFhf*B2}`c4ewq`{E4RcwaYSZqliFfj>ug?0!jILlk zle<0bn!PUfI|bo87qqeSt^pZzC2eTl7O^ldV<-tzpkDScEPvevpkHU7Du_ZeG#HsZvIwogb;%V$yY{jumyJAJnsL zT*?NejD`mzQ5JM4MKJ;zaCM%SKc+XYIRSQEoXt9j2$1O^VuTzGAKXRSbN6Y)r=+G~ zy7Dpe>+U(}^afh7D$ULrWkEA2iP^`^DFa!PW}lV&d)0XCFhC`)>FZM7#HN@aWo2G4 z2F7$ZOL$|Hd=s6|2YhfkJXugLkqul+8v7oy$OZJ+QKUz36uVXU!+N4}48NR0z(#Z& zzu;-IH(XaL&y0Tbq@+oS|q%so*a9LaKMw$Wr3OM5GlNIyxL z64Xb9fw8J>vS^{_?pv&k+DH;x zf<^Va@dGq`_R}34rk`mC_PSoT6t7*g6t~dhE!Izi542f3*o^zNHTmTAj})8jS<5$O zwYj+w<{Vj_C2O$PBA*U8y)ZgA%~~w2>EA8Q%eJWP*Tv?bs<}ROE@>}0MB5LR%7K6i zHaq2U!aA{PCBw2WsU(!*bCIv{>LT@8p{w?Dc=JQXDPCMOvFJpJ=6XSYTlAf`mVz(b zBoSFRw@r4Ii?s_~mV;>|llyMP{7^5{=HsUWjfU?%BkG`+t3pzY)dBGR^k1C>cG|s7 zuS<(e2QEyXyYT>lh3iOeIOQ+<$eXfFGx6HiiBI16w9$At+lnBZ?KG*Yk-X%C13K`W zgWaYBUatM82)FXrxjJ($I9rsTBM^Ad(u~n={;T!@q4?gcTsR7tB&%R9)9{4}d^zmk zFmaTEO+nHX#;%2#Y=0fen>V^$JJ^q@vsVYhzjUBsNpek!SlAflFFF6i5^mZk(XQ7a zO&s$^D`R>n=CCGDBKDY919h9hF}{04G0oa0(dQ+d1xmR<_=~=p>fj4g+{!3sLr}I` z;qZ-Qcp0P*2|Z$QUw6MJe1zqqjnq@t^F1g&$C$7MFnzR39?ktb%D{q0qW+Zy+&zzWepj7qr|BcqW7Bj*+4^ zZYUyJ%eURu?ben)vlip>sWB1B15V@)7E}pFM3xNwHl z9(2>v(Q2-%bfb)mRy^GmuDc0%7*kP-}WG2HMogRUe| z$8k2nWUQa6F42=lT#5lE!{RDpeWS_(QrZ)jr1H3&;9rv*Ts?8DDYrFiIR}XdHnQXOcV=;JJS{42 z98__j;F)wZE(X?9=3VQ0wJ3u=d;N4#Lm&THg-Pjwi)3|@D|;QkJV-K|MNZq8;5$D& z)_qyKa{ZJ`dpuQ?Rnwjsn-yYiOyNSOTEGVx`6T5UN+IhCL?OI7)cgU`;?jm(ilzpZ zPzaKhjC#pqy~I){VqmBz&1jd}`qJ>>42{r-nsT^qa5Gzo<<(9}QFr_IbQF!fraRo8 z%g7Th7G+z-VvbikzjUVYGhfjauoc|0MR4~%OmEIoZhl0=Z zn9~^=A^|y>=*!1e7G8ASD)jOfUB0rEPgO4#A$00MuTHHU#uBTU#DaPSpC!Tvkdp;_ zjv3v1AA0+iHtq>)amkE>q;nF5#^*e6Dl*h8-lI7;x6k1UuzQHPMC(1WHudFo)#vPq znFbqr1isUnB|4bs(Ej{klSWCAhlJyX#j=Cv;_8e9%J}&(_kX+r(V=WXg3O3QOY%iX zQzbo)&(;5YDN}rd4(|hFCn|Lnn+x$o@IT$x$v{&KfrSNO1`JV^--j#`=s2rD{st9qjxvx8B&KaDKCgw%TZ@ANP=V ztRlq^u^^@1s!Ty5a}Xx7nKo%An+^NI+WN>plLB*3s<8Dks-90h;W_DHhd!R_%z5=T zYMkNyf%H%E=kWu%AMDeeS1T)6UrdgJa2;mDIeLG;=MAiFX9`F2OkO{+>}2cl+>E$| zo(UxVy9~e zKGZf3fCnB!Oahu2{2F;7&u#)_0jCS{yv+&wCYrQDq3!41FA^JoAAqamE_=GeiP0B# zK#XA8dZHo3kd_;>&2$BJCYVk3MW@xm{tD zfVTG-JVyKBn4~L+Oq(+g&)vec{1RvSvo$1zoiE@c*m{pltq}-(k(l=z22a@x1Y1kZ z=Ej+(^$#;Pex~*{9cVg~?K*w8vp9s0ww4i9fZyoNNBS==DregyETSJH{g$fHORp4k zN^b13fD8HBdIwk-l!OuZqCi+!zu%3aUJcJ=UEyWaKb_Y^N;KQ>n47o(rf3x@ zqm8j~%_&;U;%$Y%oUJuZw(X}4`<@;q#fnGkWgY+!NGY=e{VpFIC8K(n*lYJgl7+EW zV@b7%$n*<(iQyPJRN&0V?Z!i_C`F9!_EcIv)41YXbfsKMj?2KA{Qg(IX2hcTxXf}I zwFiiBq+;{m1yKGhIr6`tC;(4QLGoy&0_5_=1(4phgvoO~rblUq4|BJIO$eCLuq2?l z2ww9<#g+GERCP%fsCR8vQ* z2%h|1kOUYWZcb7%Cjh3AwpAb(^5+N%wJk>R2hlK^b~iT%1K6;DGA>>(0$-8J_16hC zH6Fp^gTu)iUnMT|zOd7G3ooY`SC-5?7?Y)v3PE{W`wrQ5=^E-%sp0sDG>_^a~d>iCVFY!UQ?Zje<1Iteb%)e?ri z;FtH}EgT#2%&b_o_9S=#pe@in`X_e`Hw_%8{tV#0W4{GJyi6k7%)mFHrSMBwP3qs7 z6nBEn8^Pq${5tt`0gR{#LDnbe6B$sYsh^A%uG*Fn&s@_H>FGkyOIQVJ5fPFu2f*}XnH#;h&}M z%f<^1+@e2B8-Qc5cy$1cqPLKuVV+H}6M$uvDv({;=2c6fK%eeb$a6Jy$Tp3i1*(Ur z8%o@1#Bl!M0J&*K?*?~ z)9qY_n;CaX?Y@|87;m4Rrk>@4V=HF5NWpxEjKyZ~X|~n9#icalWL?*-Kw|4s-n`~h z%|sQ$&IE)xz<$j&Aw*t|lt4h2x5>FNrGpMskapq`)(~h&dTjD;NJqlvm|d%;M=64d z4%hjyxVQLqAtvEE z{3~LPS{VN-S8oYY1942yInlOO;B1v3LEU#^IDQd3bL;!EUu4Z4HX&w0_pmS z;Wl*sgyG@{Iv5Lv00V~({EX!=R)+0z1*!oal@prfiiG3 z&UCIjPr-Vng2npo{74zix%-aAYh05b-W0UY;5%hGqNO;P-IxJuv*%UeKwIIgqj2Ym zXte<3}z2+4YCD#n#-oLK@4BvP`SFrh9BaB9aM?&R%^>PQ^7P=iB|$lZUk$Ok5;l2LjGX zyB2~wW42;EtzY+T73cRe%`&P9s4kU4u9E>rakZff3@y55!soiG`2qvJIIhr7!<$_Q zudhWct-;SOzb_l}LS?)#%6ivZU5*!Ys|vka(*QA6DFQ_w(Ip+~EbS0S}A!NkwKGYYRz1 z%4eTyo}!anK>SVt;djo)K5}qmAd=1U<#C7!co)`~_uTYU(G0d(`JA_x^9(D``WVVa z8Me?zUexQPr!Vc`zZi*P^oh~XOx5s#4G(5YH*KSsP=3g4wT~x~cRkt<>BooH6<1r0 z8kWO-qUC!;kD6q4aJRjAAQJ|D|CNJeWwq*3F={}D`h**_!|cH$s{CQMvBn{0?8op- zpv!i1Kam0^W6*&a3r9tPVC!?h!070)fF}X7F7-6$2Cto63l2&~RV20W;+(PbH9-OI zM_8?<&flFTA8ATp)KmFLJ`#1TTG+Mc{{9_SAg7kdH+!&Hj7WyBEUx9gx8WKMfys}i za`T1Oj{#`yKC<@6*V5#Es3`n%kTOIm1nQyLzPLoI$DZKvuU=)=syLwL$A}=e)tT_+3@V^rC#X&Wj5lln#fkUeeL36B0>! z6Lpv&$ie>ntPf6ue%S|B0j7n-M;6qQs$ZT%Ei!-RmHeQ!g!4mCfPG$`Ee`_sTHaO+ zWI`Rh>+ATE=$u>GE*OIr4<0QHKR3R!{d|#WjLZDTiJjck6qbR8*!0H!0#Q-d>OjTD~~qsAGV zAn?X%^2_1;(N$~HHRSY~*k^2xRZqZNUst!;XcAka*NOg>fY0!>m#hyN3)`_fCOdy* z1qbBNtjVLyp-X3{-s~8y=I=Mr`g>&_JW`R-l>L}dC#CU)@ElbE)#P-fbX9h%LctY7 z^kwu%CdDj;SvvCvKh|DNr1udtZdQU-ewj6G?&q}1Wn#P%B_@54XU?gE2IF22vXS$4cR%pUG#9UYmXD`c&|FXz$O}80?R2I1^XIPHag(T#<{H_7 z(Wx?;1W($tkBV7@U#O%`cD@WdD>-}Lx%R3I>-p-DMrXa1 z8==!w1mp#S{Ld(cn6jTULX7E|qiw^>TP`D#RR*@#-gvEWa3lWY`dFsE-%s&@Y0=No z7)KcWg$yjWr!;S5&_5Bd@FgdC;#KutreGuxhvC+tl0t~p2FTY2kT z4qT4=w|-Nd<1tw>sV6L`+G%WZLnFRyd0Ow?Vr|MY0nNm@igmoS$LjnFfLahWHqMw zS+${pH9wTV6LmQvq&{AeTQ^ddQkXbnfJ$r>uhNJS=n$%7@+rz|M#0q)grFN%iKv!8gAK zsiu=Z56ic;Ri>;I-L7m?O1+h?>cR6nbm^Afhd#EQY>&3Z?9YU<&w+k35UxCHz7S5q zVjnA>7qpSaRxqA(IID~*ENyr_%!xW?pJUUWib{FarFy4H9Amfbtj%1tIq!#%XS@W} z_RO{dS$yY?g%7eT-kGS|(=Zmd4_K>Q7D?Wca-CZ*V%mJ`OB6%RVfl0|1=fF7i~oyM zvRN(FZ2grLJN43_UOv%3Vier4rwRK*WpopxT&rZ~29GT?X~itWv!G@Z(8V#Gab^Zr z+x(RqJ4~Y4?au$@hQoBeia&2P*rlsq+ z|BK@Stn;WLfq#b0U6(5j;UxTk1W)eZVrDY74_!`K5qz z@(s|3kTL`UjLqYZY#y9^B%lg}*?=|^bdr!tswP7(|HPgFfZ^up4d@y_Q5C@TgJ)XU zoEL9fKou>u1H{cq>Ol_>)*$0f2CN0Z^Z}@@Dlhq$pJ*C=kUJmg@&0S6fK)cGroWk? z>Id@r3@ZzLzmRBI|C$|u zfkR}5e}aIiVTP&%gRl^lh9~7T4vqr2#;=mq-@~uwFHN*#J%<53&9MCO)d0bx>X>u{ z&c|_X^k@vYY7p6PMVWaXwHm3L)F^-oYJy7gc8b5thWa_WO5c`cTpL%iT3zy@WYM=o zh4g{v<{B=}Jp`RacPmeXCd+`KLhx;lofk4a589_l54x8&V(t|Af6J%R9jhAQ>|;kL=+`P^R`*b|N$5&|_L^9pzs=(TJgnbGE4HFf_l=UGS<1G!D^m-z zy}sQ=?P*2b5k)-(F49-&Y-&VDEXysK%S1Bb2OgU#>=?d(sF9!BU;7=#-Q9gK^8AxX zdWGaSDQ+5WdTSb5S{hnzNy>{f#1-)p84>Rt$7W|2TwA-z$ciYx+*di#6fC0i`p)(9 zm~PjV$^MPCk`0da1-A|1{gz~8liO+e?p(orFoV%QRB7HLhf~K4y+F%gF7JUoJM%p8 zRpQe#*pN!W7M1h|@ z{h`#j8g~H85RBq7vQj+p3>AKZdp|%m!P`TNN6O%`Hx7_BkIzgE4aC-hSvG zJO!Kc6W8NpQY&u&5ll5*J$Wox_NNgTx`7TqlQMh&g<|riN1abGrh>5qsQUsSMjexI zfrq12z3K(xJ{HurOr@r%axvFT5E$gytdW zTJcC@@&*x);mxu`2=)%ScWAAQ4rJ|#w!JCF?8gZrn`2+}EK1DIM@{)0?5Wwta^?ow z8@B+kmbKkv?(-f%K*+&M6dC>G$GS5K~^ z1TM65M!M=9(*oT3xb({otMp44@*(gsx@ub&kHF{-u#zCVmmDt*D`+f-!%f&#Cwtc? zd*6u>3xkR&$YR%|Fh{}tG~S0wci;R(xtd5(fv4slbg0QXS$GK1_H)~?1J$z9>^k91 z@8!hQe6?Ze;%P}@XUeK-qzPf+LzOqNhUwv=cud6jdvWery#E(l2K!ek6YWRh*TZi- zUCoQa_ubT04NTAs@n(sbaK3Kja4e!0b7!zxI%gDf_lCwXok>g%SOS?f7@He<0tVxl z1(Pl>DIuX(-8JkoLc+6tRSYsY!?WpCTAIbThQ$QBm^*rE7PxvvW-KHmok!j;M6Wi~ z(1?k>>%^hX^KAWilcr?0+(-_mBg*)pJi+<;Ao1=U4&^@M7Ec{| zeAXm-D^57%P|WDI4Uro}6Ymu^;2aw3eEU00V(5W#LFVfLf3eN$h)&j`s_;9^@wsre zZjkX<6EfhJ}lep~r1I+4*ceeb;EjNvti9rtk%8MQSh0%oS>f?6q0A z@{QeW4k}&c&W#9xa?J7$9tKxw{c;8{)H@c6~@x{XTAA|aEIK34tz0Bxrm`A zEfn-K&z}V#sz(D@mfl4v8=h&ZN+t*xXFpS3JERlBkNhAaX2^1gqx^m50zv0Cd*J!C zZjB9Qm^qyl^|GKGhMHMKMSOj92XbJQ|BT^b?Q6!7&+5_IrY6q(zIWN}&oowz+*2^W zf#nX0(2f(p2c`I(qBcTERI4ZIgg>ok~poxL0F&j^qmFsW zjxshNjtH%DOizCwxn@ldM%=h$9vQ}p z$awp}6e#20!4z&#mc4^14em~{2z!6S^SB`RUrrWwtNWunAIhFpvMPHgpk(FwPFPO; z$A_}dEDs1Myt=A-MgeSlk5#I@yivi)?PbT2k@n!1<&Y06l>|-<95)U-4*m%qeO*ym z7vrX+giW~~$D7b`T!vE0;J7}fGFp{$oY%yywL{PL_E<~1UTM#n=4agrY6QKE_0+6_ z8(Q@F@(DrR^b>pq1$XmP3JTYr&1>>~&Nv=-@n+9sXm@cJx&gXr`k%_M%C28D?o1XQ zB-=wx7anG*YTw$+uav*~4s95DspJ#iL72*q6|#NL+$uyYi~BR1s0WSJADB<;Sdyz6O`Mz)78^C3U0lFbeB~{qFC~lIf_7TZM<3j#@yv#B)an1RTY3_LUQ*wtm z4TzF%$_Zq0)q6unXWi$y{-gX~b)B8V({i=Ubg4c$$)mwW+WkVIXa`-I;Rwy>nvLUm zXC7n&MCbe%1Yw*}q?Dr-{g8;T?5X1idG6flWapzvD6)uM!jvjTwMy7-3vq}K*}hBi z!c*f(UA_ZH2NWtEvNp*DnZ|#qEH)+d>n?7|TnOK`t3v^|7xh+mQCoT)&q=Le+u-dX zU|Nr`{OJK94sm8&JQjpk8+}F4S$Cdlh-w5s(GW!!tfO+Er0&>0W!;Yw9coHfj@j-y z-R6wCX9kl3=r!fy{igs=sM%0Azib}mXT=sKl84*tMBD`48A-kdW5{UNNO@-jlKUaV z=&Qk~!jz2K%qPRA?;i=ZYNO&1h1<`{FZA3JREUy)J-!1qD4Oen_VTaCQbf_12Z|?@ zzy^qVemkvNj@dqBVRMU+_s6%pVg&c0M4ri`q|vlY8{eEDu8Y1T(=uOZgkN@AT_qf*ndSdXkf22E=YiyIXNRYNSLPazHDGz#z7z+)dz55xd2=c?s*>JA?~uJMvj$-ESDnxIkLcQ@ zG`IB(3X^lSr0U_+W|0L(GQ;w#>J5!P7+Kgv!c{*j=EvnUk7l_kCt;k;7uo9J`#J4K zD_Z{ROek9A12`2*Pak~qk54b)lmr-#QnW@~#bL!!vh%_^Q#p7^$cd#%4B%L??QRXt z&*aNwRkSXnXj+MC;a=fu=hgs{evi1o{Iqu_ZQw}SHG+)T0O{o`J83^5Ye~H~(znSm zbWSL2WNQoks%x2F)h~=j0J9vq?lg*ac^z0|Jj0F^FDeayF>?=Udxd7*2@VKBOdhO# zbLPUSQk-XF@s~=k7P;|v8Ywg*0>hQRTu zaf!13E88s)`25vK`5nTQP-KB-aO49Hn$9ls0wd||->hL|GqdpXGR3ImJ1mmum1Uk_ z^9sGO7nOJCDfk_R>j*2w`GSMohP*0lCNoT!RE9%eA@u)JieteN^zO-Q z|EsM^frI!jnCj}n{=$kiFOe_X&!b+#eGrv*wR0az{h541DDpruvUfkPR8UELr35To zg!)qqGrrjt!_0~$e5K&T#}bZD9eqE}%*uu)o-y%;WF%jp+3$l+w6(4jye;iOU#&ymef1h<}I~ zd|(}u`^%b5>rMPG+2K~qwkh@<*cb?!`V4>VlXF}IJo8G>oN{=z>qY2Q&Wk?in-TGV zE>xu9gM#}rc^bzgVsU>9Z9w^->U0%_E7`vAVcc~qE$1yQY14^9bVZFaz5dMvp)wXlV*`a}hr!8L zg9Grb$M^#9j($nL_q<#l%}|9scShsYq>Zf?HJ0|B-^MyEG4N>CwraD8OZ7a4f)(C- z&#drP&#V`B@!PStr!NjSb8b?XQgZUjHvTDEOn+ZjL zskX<#)v&g&O}jsnmM@?fa!Heq)oR6tNADjF*U}7%)_!EgpLi(^P|@Fc+q-)9{`k}K z#E}Kp&|AY#+$f&&lY7n`%0GEh$sKcj?ick=s7SFTMcW0pa?|H+%pn%mMU=#6cdaLF zbldGCe$jb@TUEahB`Roh+kHJ{QwQBTljs2mH!CS#2H*pTU%zZp@^)XI3eE1BdgQh7 z^&KP@N})YlpX(8$mh+l(&U+TH^A7D+t)P79Vs7U-AslON_EO9wogmnw0+>6F zs^cIKV@3oFiFpvE?L*w@qX#%h76HL@+pL>3Zd=fW`e8HkHGYadsp`OOO5M-Xa;$|4Tqn`F}GbvTV(p+Br#hKQB#!tT+mYhwG>E;~zs8wm0m8c{zOGL7k!BB=o3NQHx zs=-0!iB2K;4W?#PDB9hdEx|ywt!E_jMXsxxv+WA(W`nNPK>Tr<+^h?us=EoF8>__2`8zNKJ^zUunmTFr1{W7~oAo%4?L`H&Kd zAT9MFeuHM2Pl~DRBl6Xh=E+GVlHJlSk&*1c?vFCNCKBEGUuK3Dqf8^LjdCuz%gmj& ztvKI@DjrpBGU7=Lm{<5IMp9%S&jHuoMsw1T@Z1uQxlRgg8 znvlKI6=cjDMIAGddLA=q8S8V6^@6X>$;z=75ww#BS^cM|)A}k0WtFTi=P9`7{Tw#a zsBh`xF*m7P)Xo;ZsID^a?%!ObxWrL|V7rIv^uQ;~ekL3ZGZRwuaxRK8$kKHL4G%kc z2+Q(XAwc_|{FPpGsQi>R`gvY_lrLYS`(n;-G@Wy}5{c}aa+r44?)o{gGo&z(KvALs z$YeUH#~`}Rd^!wG9j%-bNF-OcTNRR5c)9BUX2sEFb&#~q5@ZLsY{9s8d2`UK(5=Awl>S|w7SS)dy76)cw$&zQrfr6tUi_62|5dv`1oM# zLHc!*^u@FOv;7BcO9zs8O|T}jeXfZMGO=ERw&QKPC6lGQx|3{9;1VV*edkAujJ}R_ z$j&;3ULlVT7W=aK^%M)|0Qw5P$|8mapOkY?&;ILfOpOA6BP5OdPP#M`hb=1iw^d5CTuOkB3KV;U*hz03-z53*gdH1l%7n`ww zm*`FA!cQNx`yx!O(`UtB74;h2EAr(5mWo3iH*1l!j6HHAZ@{LLn#7@e0Vhan@St%N zjiGHTsC&3=Wcz}F3KUHd^yjyb@)vCYLSb$@EA7@chb$o=EXvG{(!4>N3w5FF}6)3 zxjw7`vO+tp`J0RvbwviU-*-N)!JhZFCp4E(_CxTGAFaAZD4~d;3&QJ z#3<+Jk!V(b%mseO0^Ma5(`lA|mK=o_2@Y>;fzc1{qjUxA&TX>TPd9*ARJs(BdwEW;={3^$0DMpeH~u$fid5 zjuI`L*;tRzo}!5Z$MdU%XzBKC^^`B-#y)T8urcQITqfJ&m5ohYroFT4sxy0;oE9YbC(6YNa0miUY^riSOd};Fm zj27H{weGRWWcX)THb=&?b^a2C&L+2N2(n>$+CsTe_0(Znf5u( z4aS`D!hbxov^1j5vI9H#d42fhn=ujMOCBUc50wfD5$cDw+}5KO0n5peOr!2O8cUKA zln-0fWH_Z>CamK*$V=|2J@krfo6q3B;sdns+>pEiRfap=9(zn~7B%M?c}6=t z+Uhm3ffVjOe}2ybdSNDq{R|K0dXw{G>cz2wBWT%?kYS`sGxSK-c)Ewhwtia^Ze6{y zk~UJ9>UTR#ql2r<<~oI>oFjr1gSCvyXn-1Ac_98!Qw{60i(6Sw8rk2M7>#(wBJxb= zNkM1b7V3Pa3>U5X@h5iFpvJp|dRaE+R`E*G4cOI}5Qo#VH`$z;Wi}PxE!w=!YkY#7fE$Cw{O+QZmoNS@&5n9VwMjox-M43*8h;wEFckKA7AVEJ^R!ZPvgS1q!UWCOy|uJ+*yW95u|7o;R^a~F<5h5M zmhgakP#F4JcZn=LYudtmEP3MdhOwd;Uvbk2ieFCe(G*vV>NdR5$0onx%eMOTrPt0K z{7xR(>Ht;}B>=^D$9@jN)a;>qox(;8&se4Jof^h>zA_C!3$ba(ros54>4UjGs%hcA zu`g|Q9juV!+m5H&C;Isb7s#<6yCOH$=iWPzgu|I$^tH*&U?qFaM0xKyOp6PA17*v$ z&{OG&oja_gbe!2tmBj<~{8+5`sqOq1oOJwGN_r{fZ}}C(*))^I^95k$&so(3?Z0vT zt27Y2EYLIc>?k-BNe?{@TTl19+Eyx-p?;-*&UbH3 zkzRMc=~%q*wIkP7zl&7H&KKk9@O*|(@^zTkt=IPFs?fxibqOLGbQG=b4n!m?2nifV zV?8A<17t8ExXh(MEamB}36E7nrx`i+#CE@Z)S<>tJCUi+f8&4yUZVTcJ$z=;Xu_24 ztccCRgv#XBCF7s}PtSy$&krgkpYo*UgAD`h6aT{Du8giSpO+eTIf7{?~yF!D5 zg13eS+jbuOoq<=!JY>Z(OfII~m(4n_z0z5i>suvyr?Yd9DGW`?B?6fHx4xPZ1z>U) z5(4`I5A60ydFJgWhCa==^HiYhtt9qCpKa@oEa%xzXppSh`#MvrgjMD1ab*X&iu47& zgzX}}@{nFS)@ayPR-kxM^A>6x0z!q|PrJK14lMchA1keRqmQTDUOSIUs^Q>p&z-Sq zqj$Gk4ZhxB-qjuU*hZnK*QIaiLUpW&;=;m6Sof0Ec;+0r6bdJHUGfP6WjGO)EZe6n zdwHaIkd)EmASEgZ=z5(U*ct|Fb_AhYuc&z|pE2CWTSdvJQKr06jP=Q5m3h=va#E!Z z&@^uqwKSogLe7*C@N7Nmby`v-zgy$oUec6yVffwDg@WtRudaXER-vhFa|kwR`1v`C zB8o%!B{9tFMyW(gfh%tBsXUgk8q7wal!V#BKZBz4gdH`v#>@ z%L8?1J?|~Z)Z5lomTYnIEL3W>t9PvUC_K}aXP5L78@Z>?5ppGH1bn4-fqPo+W2Tpv zh|Qn`Y5wu#Q!W=1sY~5QBc-QINz=w|Jcp8sN}o-4L~m#9_)kkfzZ;;AB~OqMWU|22 zk{A^p8#Z!UknjOMHqb#}1VgdF;va1?6P84z08wp?urg->H-|-LL8T%sSkG@nh@9*2 zJ)Zu??n{t#PN+B#)mg+>c9Uw0@y%%-&Q_BhhbA5i)A&&DJr3msT(U(b#ShkK&bHZj zae02ouXDp(uMgisu`T0>_9$Sn9=sOUo32N&u@{gkD!X3QcqoP9R;x1$ady-^6VDoryvS>2yckU<8`-HfWhyLJ>wKaW+2c z2xt)iNrB41;IEaKl`2-o%|LM=GeVGxOEXDUIp$SLw2ArN#u>G`l-BWuQ zt&0nMu&f#Is8k_u=I%sruGb7rx#mtVE=RnRv}qLG?lpFB-NQSan{d@`Hd|Ry99}B) zB~7%{8Ed1$O9kV#miSl`yZ5u0G95`@f8AwE^qdyKgEr6^*F8Uz5Ft9+)hnmyUGdy9 zMq%{K^bn9BFVn+|E$#nj{347&VE<2wH9N2wwof%qsPG5iZ|e;iAw--CgNW-sI`C+@ zV1o7-&x&2%OOI<_Om{cANl13EL+U3xu+RH$1Dy$}mv4*Volz*0;0A=!R%oK04PP&pO=wjn&ON(|Lf0pF!s0_VKnHWnyOKX*}VXcP#HR$lREB3hb#`PB-e}zL0DV z#a<kV@iDnxMJhHQzNsI1hj#PgrEeuuyasP=C77Z9L@EcSii9qgFqP zAI#1s{A!l6{zYA9cVnrdRtPC!AEpsQw&5RQYU(6ADXal|+{SXkCB|CqDGjw3e2qHF105f-QVjOnM>sga zbFb9?K37lGMkyhO}NHl_^Rgh0`+`DKDfn>h1(T1hNo{;-wN58-0~36cisQRX`o(`u5sVU1ety-U@Yt4f{EhjmbzH&E z6a#@0`G7~pWa9^ zsN?z~>VPb_v}{J*kzBWAl|q&-Y)tsiVglksIPrL^qC4P8{B0ov?1E}pfVzehy6!6Q zXO02?g0cAk#WJq%@ie1YCTI92A@09Z5u$9x=L;v;KIl8DG?yj@%7;DQ`-`Vt97kDYU5yAHrF@;bKA zI;|2A_(jg8C-P!XSuFpJg1OqxvWN7cxo_o5`v_~p(nAqU&Z&~U>N%HE?QUGayTv7afb&NdJvX zMA1^W;RD-mp%*&$6f4+4UkeV%Lp*}miguja*b(MFY*Q<#3@SITLUh4k@nn@`XFnIS zT2Z_I_@TP3b~yKp?GcjdPH9kxQ&odIvM5$W^mg@d{?1EIzlK_G$BQ`f$uFZG5x zyiCU1(`tR%tQsUrD;~|m(8>vo{i_wyPL88jks`!@r9%3x-q4@^X3IGMmn3SGaz;f) zsvY0Y*PQbJ{b#%=HW(Cgwqav1y#E$3hYeOH8tWHvS z5n&=yTxoyG1jT?0LT;@@MaA)^WACqR4Za~u+Re_xKXnXu5H)oS!hsq=Z=(HKDF=_# z($%MLzyYk_Vo?1=n%AsPKs1@)h`u`^ZfS=b|7~r5C8>iGVnB>`e?!82?pC8H(qolQ zY|CHD>`dB5Z+Z@t8|6d(c})rwf&|g02X2wV7a}~SS}qdY-bQw|>Bh2Uqdb4w4qYSN zXEuD)sp!aN=N(l(ql=p#-5XIbQWGA-lFjSMdE-^Dl5P3xVwHBMUvIDN^j)66H#6Mz z`6<^yKG_@kN1$w^O84aXaZe4q@FoSQCy_sIv7Izo3Mp8Ap{d4#4J(IEI=O*rT+a2O zaKEMpr@7wBj$J0f9cs)wK2rA(gdY^2P_gbf>K!hw;pCC4?=CaNYTG96#a6t~bEcw? z-R{flP8dAHs@$u(=cJL>b^6PzwKCWI|2f#Kx><&%hM;F(A>N{`jV7|8(_4V&3&F~~ z-n~NYS^rECpw*35GM&&&9<%+U<&-?KWeD)Gy&nN2G{%I$5!@*Nr*fF4trRPp2H+ z=|uVL%_G}x=$T$6lqWY_+~FBY`4GL%X2+&OtvfDxbJ*SFtZ4|;p8A+s9PxEvz5;My z%PaQ)iO;W0@zaYPJbNmxA1Tgsh%1;cJ@($K!y|a?+Gqc9*a=j+Z;s7L4?dxyFALrF zjhRW54}kUsr&^Ls==PIS*vuureua(7_5}X}lb)O%4Q0vfZq@JU_S0&f?v$P0eiNSa zL)~RQIf%sKjL9Za?|>jBij86*#<*x7L|oKd|5@XmRS9Jmwj(`;%Tw>9$>r(rs^Hw{ zo2??9evzg?2|<%`;DJ4Uk29gT=rn2eo+-9~N2*&+UBB>?y=`MpIPaJy-yUq57%9=N zg=dd%f>@bfo87Mt<@#R|2LG(RA) z)Y;*_HWf`Cx4yJ>_Stkd1>Z9pZ%yfh*%^xMOVbB3_Z-lvT;A5bcXsw;P3OIxHa@03 zO&TVe=FRqMmG5^-{tXJIf7KB&ha4x&ih~q}zh(i_@n^-GHPU_cwkV0Wh)F(4WNk8{ zQhZkV&Pc7aRh8nOYx55+BlVfFdeWwsIUBx8sLOIpEFE}iQd~$y zM%~baLzms+yUhBU(kO)kef*Ix&8FnX$@aC1o}N_maG%)XV3Ur$N7D&L%s=fqWg1rwMGV;sP@DBsbsV%AALgT9H>5uD9#w948sORE*EVSS&^F7kXnCY* zIkLbc!A*^r008|TGy}i~Ta#$RL<=)vZAp?2%x$x)*^R9k^<}}H$)okBKfUZXl!2*h zS0Yz|*bCV9Zb*@Vbw{3@f(YXNph{fPmmy%Vh2eGKGPsH@B^4T2&vdwskIQdOnU61A zTDU~Q`Yqhzp|PWA?VhtK@|PBu3QYWr40~>?Lj{0m`PNKKcM%p=a&c~0jLJMHA0@65 z_BQJ9cIi)RY~S61X$gKk%NDMLa*-^@#vf)q781wZq{e5u>DBmd*(oxbZ!Na==1~{C(iER`M;dG_kBh4tH0L&B9SvJ#ip}Nt~@kUj!qF zzb2CsHl=eWHH89&B8zWzAWm|s0Hp08UHcb#!zjrjkoDlSoNct8ruwuFd1Jy;tvjFxg$Sv+-+@)$E%_|w;H^_r`in&C`!l}a#G@~G%~B0MfL5}1C-(lRT?H(Vu4C*!m1Y=p z-z#sN8ZqT)q!S%i#zP;NOB327dqb~(7dE%`rZ)ZMnUj}C*sv3*z|;k;cRJJ$bLRGx zYe|F<_lIi-gKL7ud;`p$cZ2+v@?l$(F^^|EZ*iDC!Fp$tQQNCN0t?oV=6NJQW>DdM zG4M^-@0t+DwJt6HqnG98rZp5cK46}|Xs4Jw7ZD!oq9q+1gBGKHcs9`UM5$8%t(6v$UwGkhPok$AA6#Ws78q8nRt6F1Sx=zX zt7Eeu;<&_)`VH6%soAiZZbq7h5|9>?x{NHSRf?Hwq`x zf^1fjDTx^8h~ZSizw?H_fHIUz_WEV+(O0wi@^S~ghTnG%3hY;#IZpjxSQ4{qwSHE+ zoBXo8Rv9u>&QgITwQYIAv-{Jd^{N6{WA#23dZh229mRG6)#|qvT<6KCk zG3ERoLhOQp@ag3c_QO=$ERXs@`J$9s0I@WQ-$}oKcK(86W|haqENliOCC>)H0vB@dpWFpf)%u zQ{2OfEj>1l%h^_Ci3-2Xe`oTGhcmBf_p_auywgsasHReP3F*Qn15+>x%=MOn6hxoI zIzQ56;x5rCPC7Lk(R-|Ac7%8QO?@D$W7%_Y-p_o(l3Q)9$IOyjaIVqJd`E=`XYnS} zN5f(FdeWPgBHaTAO`$O8`8`n>({6QPDkR_;NGcMb5v>QBl9E&Y;J^|&8DJMIWv^y( z$_sv=5_KJc^0fJ59ecHy!BAPDVKlVe3-<+@Uq#JyV_7QTuOwAvO7y)9wRTUKz2Xz- z&0N*}VQ>SU+T&&28e)==M){y-SiB47L_6BqjSh>USr3FES|F}d#m0i8MI*gmU$kDs z)GN*QVR1Py@I&9d&?05VHC>=8*gf0!e)HnUh4HQ?EcIY+E5Y5%o5R)TR?qz;s@kA2 z)-GaUW>RXr6(5LOobC{w%|Ca@MQ(V(0^k2=ojLVsOJ_1yAk=B2xCsh?5@$#~Z zXqfzR*XW~;-$@f!Udizsn3arElf89r`=ee3{lcFgNPM0##b-)_fPxZe*ptb%$#*w) zaKv14x~Z7u(Jew+}4RvtXrMbTD7~4UQ!LLy)zVpNN!n3pBa0DP7i0)T-pllzn zvQJit-Q`x-blOw-k83w=RVdmt+3@Zjvy6nxJjkX@{{slWT18~=MKPmR7o4<1mCtMm zzZVAnT{D%9TqQtzDzu@o<(-c%ai5(at2GBHkrmnvMeeF1rz;d%0se_c%DJlH6euo+ z-R&-fKAmSfcFd5N;+}&ETd?<1Avk{E!*y#gGr#)ET)YQ=v6#!)(?Wsn0`e2-@sbO( zLsjY;O(k1&grkJeGUK;M(39miKbFt4^LpjU9Y69|*H2UJnsmXH>T>4pkE#Dwj{h%6G5#2&5#nt<=q|M;kRF;<{&uhq zYQRf1MI}>u4;%$vdoQX~PXD;$i&vwWUM#iSJmiMa?JGJQ^ZErSl z7hOn@j~@`pGA+T3cjB2*;SW-kdHPg2%>9FPy#LfYb4;b7WXsZc^EsT}LYqx3+mOyr zEac+wF}!K~xqwh@>9TG~?tAgHO5Wj*>vqc;5W$J3P6)VK0FftkR9==HY9vU2l4iABRfq~4o4j}Ud zPyh+yirD>+^f66fc`zkzU1qV=&U5o)O(q2Use#T)StHJ+uVsD|MCdRz)FJD#zqkI} zM!z7qb`oMXPl!Uv{uanFiL_4Ypl8P-DK z%tTK(&QC}}b~Z1+=_6FD1;gIrmy3G-Lq-qj&2(rgneN~sr^M%KZ3Y@PGm4z{a?b+{ z8G0;Mn->z*7}P;wVN8HhFBx&R^1<@8)^4L>-&u3FB6DBB$;#J*Fk77S+BNgv=L+V`f zPrNx;a<}g1E{d3YLe32?j{({Jz-8y2&JZhpb7bqJVAI$zf~rtEE`WOkec&D|Ct1hEbMc%+UtV`UAc#>Jd}=Z&TtGMZ zR&E03{=ZRf3a})YA&QXa-p}oND!V;ZQp-5l-E;RYzCA{|@`hZ|^Q0=t!>p&vB5}x_ zB`7Gy-^%R4+kSfWLPL;9fWM<5u}A7xpB2mgA#$Xgo#Y-AnP;mnU5lTk{v?te7m=_>#~k zTJ`Y>Tp5SkPXnTClb7zDxwp~R(A9k7&a-9>Jh5|Q#7exH4Bv%^`$K_=TIm(Qg7m`s zl3(Gj7iGdpObR*tm>PiwhZiaWK~~xnq%$`@N;x?t;w%tW*@zOa;H>KTs^eljnDhg} zNfng+;dkF~lsb2Kpp3m19mi+70+Dv{W0KShKMoY;0dq@5rf|f#^zIYEP<#mT*A z_m(eT82*8Ay_dES;5t48U$~38uFnN0qH`xUuO7HL9sULf;O16`BY^URr@?_U!JrLA zyBmHx_4n&{?W7o-Np_(`O;ZdsQ+ZY_=ZO%L_O!KVnZ%L!MKO!&h;F;FjMY}eUr*Dl z0co;eA6yX##a2CL!ikTPdKLVyDEAoTM(c@ne;eum;}`H)erUAS+<|ogu2{U8b#}b$ z5Ps*40K2maZkClHe3(9Ti?`7lhSuK-fJ89jNGVa9G27yzq5TyL2T`(`>Bz`Fp2nhO zO&+2g*n@ zS$ik;rB*h@K<)D8C?9c6xZ?fH!fTG2e|&izvoJHBcL)9Bwb*2Q(qIhklvBCP$l2B9 zh32E(*lTxT%dAB}!H3Jycx{2?wrNLc7&Rib9AwA4rAgm5&;b3M>H|N886&(+TGE&r zl@Nq}HzW?Mr$nJ65#8a(?bfi#ha4dO_oPYE4o9-AZ zBgfe!rj=#6!wT=)uukC;Q4q@w^DLw>g3bmo?n3E4yq=aa6=s>ZAQztpf>gNpd5Xao zmP_AXFKBu}p@YroXBZMVy0NCp%9{os9Y`tO1 zWy5wA1tK)dU&O389g8(Qo`_^*De? zafcNNMca(23A0MktBTeEK{r8V0%o!(AVS$m8Y}iMJ4Db^rbO{I!0NeSYLLc1kktRU z;^_@Oectd=PnmTWm>--RAjLvApMVCIZiDlr-EL6y%b@z^e8P#JBf{7fDi;kZ>&Unf z(B(kK4IB*%=+RV$c_XT*!!!pN?7`qs@2_IS0n>PQ_tJ!qI0tg) znoC<&*O`ZQBd=$-$k+GY)Ki&-@5+aygq=7`@{b9-&}%K)laJVZaFOK9bP&z#ozO9I z5q#7%RCUv&{b z>ErdzJDWImKuh^yxLF4Sgne3>aFY{9`S9zVb=3MmSMMz_s-q7^N@A7@vZ~o8`aVYXmAhN=q6tSw;f|q* z=fAz_H}UZEG0+p=3KZ`$#)?eqb$#A&q0S94z##hR4p;B?!MO^^3u9Lfi(Dg)+?VF+VGKmEQ{$aHG4d=phl23C2AGwT_|3TguLmaBx5KNp43b!l>xx`wNH2*&fN~(N z!4#%IJpp*L=7>Tb^3a`FXsczhk_ysDA7#b9R+iI-=CAYcdvL%{+hWoW!*O33j@0nO zs^fDbBIlHww)M3Re^b~=2sy2$H85G}|D9#Ng$y>AgB=1B`d!bIWZEXu$2G} zkOTl4qx0-r#6r$Fc!;B56cCG$eib(Bmk?odd@+Jk0PkQD7xpzP7CMBwqkMsKU2o`* z#NTh>pc*=Pk?B-XXgT6Q2-4LH8@PV;%|h~qB&inbVOb#J^c$}3>#JQ2VOGlfnS681 zA9h0@-Nltt`F8{p#T~N-pIbmx4Zp|4{><=Lqw$V528V}>J{e67>dcjzU5gc5b6Nwh)-@ZmQM10egZURBkK9egv| z!!#IbwgHS_C1L)0es#+(Zyp3J6MlF1sxdPGep(@oa3PReL_yU5IZ}tSaj-neIaLUO8 z@=7`RYQzn~Yqdd;{+r?Aa{dKwfg0+c@S$y>_zFJ!|5upye`AFy`!U;ATu^g8WBi|- zAV?-5g@6L#k!Gcy4|I#ONUW4#;cC{%3;X`ODamD+2g8s$m!1{G3+-c48%SZ{tEcW8 zSi*@zhJ2a??GrDN3<5^!eXCA^A@F0;b7S=WoF*e_A}37+ab)eR*f1oKfzY?(ci=`f zh>Am!27kRYJFv0mjG2D?pwVZ=irB#jz71-`m5dP1I4h)5$i%-@mm$W=v!aHOLb64e z2!muN-&_Rf>7e6>5(NMW!3A+PzvqB|b{)up{5#A6H>EzSTDA*0r^xs}8Y`URU*NJC zlfZ5p{Ovlc#v(0|Y04Rr6oW=qY#tuVk+)lbb{DjZNKAD62)V}Jtocgb!Wc3L2b~gi zE*buqzzTX(BbsYKMy~Y-UnaN{oA}p6;qS~Lfyr0=9Auk0{4jOuwci2?fC{V_>#{hQ;jzRdBiYgUcir#jJcmx z<06yOqZ9|Cz8 za-C*tB&e}b4Tf)-i}gg7{yFdyVQkhJBm zrp-uP|KL1U>QRk6P0&(1h|6iM5D#3%{n`jk^&i6!Ms@-(&n8%}6pt{Yf1ipVT;ZBE zKr{Y(bNHS3RX(G<;W0AqHvK7pM3`29&3^JPke%sFfDh-Ih(eFtp z2Hgo+4Fr9-l1p3uO``W72ek+p4_8i_vAe5}95IqXW_-{jrW=uUT7h+9a0AS%yh^Bm zE-z-JojkVVl&?>HF}Hp|PRXZL0v#y@mHz1Ub?tZw9e0-%LVi8z7X#2S zBAnH~4YPmsQm~91q}>2391TWbW~}NGn)#57G~Noi%G#&L)IyR=QyJTh_1i6|G@72cBqTf8pou$v5y^*ltwh#zqCt+5G&IRo94_w5_(=89 zjoGa!<8rQgzu4t!j(MlUT&??(CIV1na}$x3Zg&dC-rhQONN@HSfyqK9i%vSlI^xb! zUM_b*d?HWa*+isSZ@rJdt(mnL{@lLs+FfF?8$@LYDXdDOB7|%Fv4)Ym-a15A=p<6i zA5?0oCC-Xzn!6qrla3sCOSG`43_Ni12JzPC`+F$BSK^CH&UtUIG5Wz5$)U#qPLCVPV={l7a2Vx?5JyxJmq|2E|(qJ zjcZqsiBYL9n*f3FGyP&uk3ap4S$5%YY2cwT_TFC}O;v~RX;Q%G>Wh2e47#0QY*4>O z5!_u?#I{quPY(6V3*AI?G(Xgof|f=Qj(+8xODbh}EY0>|sv|_+lF&a6wCy|PM2wKM zx3JsH22YAw2}y=CvwgADMAgTXr|11BFRs-GZ#n>1=L`j$BVj^D{4cM6wc*4k@aJi8|2E&Bj`vEK5G>X|ibNP$}xt|D9k(@h0^d-!{e$p5wL z2`{48tXWP_ls}_&%XoOv^0`sZ!Rfxf+2V2)-bikI1-Gy$-mFe6vYXoV!>ii^iI0t~ zeILHwxW{_kMpG5BLQ@rSs#g8uYl+kCXOj0ckbmLcalUS`qaz{v#dOPuix=B|8pyZs znxBte-2|WFp8RqUKHYx60#^e!DpdM^@P}6( zdO#a>Pnh8iKCk(Y9je!(ZP<|r5z`BKP&ldFcCz(S>B9rM zy9EszrlT#&=S3U`8$_YXYhJbl-Xs*}g^*o4Vn9m)Gp=K`Og62#edEpcHP~UeC6(~0 zkr$e?y(fz$KUrs0@S4}Fo)iS7K>D?9(`%T zYy04pe%i!w>k3=qV86IcdjWmAc)8Ghn%p6n6ys_Y2}gX=5u!Hl@S5kPH^?I|>5F4t z#nyQ}VLdPbUBEKN#X@q3n4MbDF_8m`h)my8Cd+e8RiH*RgdtivS+~YJi!SPUFrAWJ z8V{_RE}AZ+!=SDc{KG1-GKC9Mxy6DXt+Q2gq>{vjyE{7OXt^-IA@--?HEWI?zPjlO zSC&~tFn^*uxE}Mmc*UN?$2a&h3+PH6&YN^Pgg+m7{~3phISMZBCL8b5?WaJX?966h zM{X^OS(ry$Y@qDYtrm=*VCt*vz8E*1q(kW`+eC)D7vI+YytFWD{`t-QMz>c*s*$1z zbNf)g_UyHb(hCp}iy(e-9ZX58yt`pb*rE`zdU4GfJ;yiOf4y+{Q0l~5x3>hz9`JL* z@QOFsFm`iVXp{X4qv6awv$tawZEqA#((IbAdTZPEzS$!DQ+=Xp+Kr}tP7fe1Uhye! z%C@WqXrfy*5j_@Cyfm3vk0R^ zOC`_!8eM2O^#Pk{MMcZBI#+G_Lb>hUU+Ycx6Ut8>&Z-h>^k6k#nkkbF14)CkzPx_R zb9|ZV?Q%YYj+xSvm1_N(~4S-fyn3r_dlo{^ID$I z`gnt^J*FMA45v-Nx!uKbQYOa!t)w~J)TC-OTrXHNF^ius?WPl4;NUF1@6gg0Z#o`BFjrKSX2G9*J$kRiO=4L zrulZUGqpl#L?^d+v15k zGD+8ZO1yqhc_aT+ky9CS0bQfGW8g*BRTRrQ4v(+z2OWsSy{T#&sytYZjpp^m@W0{y zkz0?OG7PseXykta{fbEj;vu1DC#@pyyg_rGNApzjncz?^#D&wDs3)AuMZHnjuxRvd zm+JAZvT$e`6gK~OJvTi@ELUwoflzL{IBY4KRy3U?yLhdI_nnKXP0_4{B-|P%bw+zr zytGNDV*C6rLBvYM9Tjd1fP}Qhbc}pRt(K&crc_`g`=~8y? zE*a96F{rYL>0IMzRxkiPwm_CTyN>nY^3UGR_t<9fC(TN(XU_Mt~d&ZUML&9+t4qNZzxW}Awav)=jU(8IIGq8oW}2lcN8 z9}Z$}!0ly{nmrs-PujRyN`GV=hBauXNwRDoY<|=z_6#IHU+&GM{u1pjEMUVT$HL2E zMUP@_p*yQzJhs3IL41o?QvwfN752A zxsjW6_z9=LWtPKPZ+HX*vw}u^Wu*H`oMm40?RqNzkl0`Dy+FAS!_9RBG<3|g-=JlN z`%2t@P>m6I&6}&HrNpfeCkeBq!$&$amA@!l`2hFXNxQ9XQ_w0f4B+$GW?rU!D8kJ* zS@nfa19nOFQW7p(NsDlmJ-Qw8=}}W~RiJZ*afRC>ZIwI^p^o-_PFYWR#vC!~o%#V! zG&xWL*X*>POWQ0i5i7MxS^T_5xJg23*R%3@bJNZ#EvXO{^(u#!+QvL}3z=PzwP`my ze~Hsr(5sfGiM4^nSm#Bb26vP>4;o(SHcKQ65iLDVv0{5GCp*t>Vq7Me+p1C6D{T^h zN~u3hsy^_PRUw<#Rl%(9;TdKUa-x{iPM3nCjelJGL5-jro8SjQ&2o;2c% z^68Cp&y5WmpW{#K*}3Z*1+yJyI?|Gjde13fK3crIWYws2R{ONeHpxWd;YzDeN{F-? zSW_cE(?#5NCbm4AK2si_Zcm(`OO51G!Q1uE<**Yh52A@-6-~nA z;Vi2jB~F7FROS)bwv9|@nNH0{HY5e5D>YYGJtfjA>|>oiTx+y%Qcnu&s&NaM3DuU< z-x<=ET7quJ7feUf7YnB0uFZ0jOMSaYce-co<_YMqzS>&8`E5M!xOs~J1ymUu=C+<3 zvo*H&g8LovJ8`pjACK5$eCx^FrC8>s zwygc!I}fM1WgSxDRMm+icrDE~rs&TacfR>Q?44;;l55!SZQ5v+WOGy}9W;|rb~BQSeB z$xPl8cQWnov~{pazW`kZu|EjnLv?y0tAeOf4{1Nrf~HCqBtzQI_%`Eyd;d~4S2l&s zaVqg=Go~;Cw;|#AyF_7YDEnx;vU{J$S=VMbJfBsX+rXjdh-${7`N6(Z?pc>VZH)o3 z7F{rzQ|Qp#vGb-nwYd@>$WF+-q_}PsxqYuNI0NBC3mRfVopLQOwJR1cMvgtr zK}HxA2MV|ixH#_rnki2yCL*tY%mgvbsv|#Uywems00YcP1Vp$0IPIgkt z(o7*rCg;cQVfgS=lrAH5#Y*R2Lv~5tSiadM`xK<@u<{suAM5>VY2{Fy{)D&fhhTb^ zcqFqU84@G8VhuHeY?}lTs3MTYB-BvA;9a{kVEbri#6RvkGlszpX_V9U8oD{}n?N|T zmY8~#vdii1m|6_PRx)LOpR&X(CHdj-%+d!9D#{z;+^BZ0Lu6u1*B(Yemm3=4d6Q(H zW*v?!1S>#|C)}7FDA+Gz6NOn%_kr0G$N%v(wUqK3D{wCJ03kPP-h})RX(8svfI(#u zH?+FRWzNXycXsLX)O`1Y9G znn6ZjYT#Fon(yH36+}G}qdOM2(87(%NIm!OXVQh{jm;bo1D~`(rdRh&^Q)+9;pT_o zosPGT={eqQ9Sfj2b$xXcd>0|c_ML?gaGMr|e2HL#uu7zeD>ZtAg;C;uCA^a>N@erc0{Dnz? zE|+v5Lv1_yO@^c1tpQsU4GioOcXUQa<7OA+Y*2WP_zqspKKjKswHWG6x3C-p6kPsy zlHRpvHUY#v+Clsn*o88`!K{k}c3h7?S+HfsH|<2){^(w2$vN~2f=v|FMDOEc(@Xrl z5-;VWpE zG80{PY;KFwfwtQfat=lOztaOf%@?ZbRMGBD0SGOppp*h)GvO9Q@x6$&-DxY8SLDfU zKI%m5EIxu!bGUj0d6|DWWe+aL`E2l0M|db}%ukw(e8rc7-AJ~?m(jxELgqMlNyruK z0|aR8bS)jhe#tDQlR0G6H?MO=2ZvsJ-~NHvIZJr#B9l-H34tIa*2><>Zi>h{`#MQI z7O5flt9*4aC6^hg^^jku3d4qYHpXF*mR&1!8Ce}ol0?`AeH@|Cxd<8C%aj##aIph% zWpNw|mNhM)N&LEU>bdjPo1%tZH8_w}W3cMVN2H6b7m!ENEf@q@8o*QI*_EqaZzH$B zuO2#dWKO_5cQ`LK(>_zo#n)vJENS%~bKl0~9}54$cO*(0DNf9zuax(r_hu4~08jJ9 z8oG=5kSo8$LS<4drYPM^8V_f)c#$FQ@IaRBUUWO2(MEV68aei()hTy3&YBuuPAtvd zLXc@a4?1!pea|Lc)GOB5g*3A?3#s2BmqYGhg+j}jHdAs(E+kRn)z=2b^iaOuSK-z5 zM$cDzAlC_^ZROuvy3U;eOEZ=Z)_@T~QrnHUaShg}LmqQWOzzHvFHr@hHI{%cTs{Nl zrdJ?Hxf5z=*ybY@Qci4>N7<;OFVoh%kNzw{?bt4RWE$VBlwvNOtw=d}Bx`jp~gx=>TKNTSyo;mutf_p z5f;+qu$=y$gZjnpJ7NbSx~BP(A-t|z`D6}Z5A4Vuu$zs>LHr;@tT!6@`(RXuYgee_ z&l0x)_ISI7gA{D$^Xw5Jbqt+^uMpUP?g-lFHi^&06Ar+#t;34ohx`;(nA;kDcxSDU7C;1wTm|=9DfPD z3I7KnG6WU-r;`@*3^Oj>Iyv~mExDC!sS`&?ipLr@md7L5Nz}ND@OMtP7C@?kzVHu; z!5!M0X3@viA)gLOGgHc3e8}{mNVchBsHgQR^q~*1 zvQ*0C7Q9UGqKr6~-9r+xONprz%k$B!NTGS3UcK!flx#*Ruf?8ZzY}oB!@VmmXRm%N z&ck~=gp^pKn4MIdEBqeV4MZfO6M$FCa6m|2fF*2QKwqei?5p+9FW0)BG0`70r!d!D z;NvVm%f350WS@G}CjeU)0OmO0JnRZT%qlSN8`sI#2W>-3Gu zpMsra8vxYRM74E}dZ$VUh8i z0a_%xA#R4%e0@E8_}v|{jIsylg$Ce`XFW|Im`UX`+#XS2g$it_;f8ubS+d(qlOU;m z{>mTMD#3D__*AR20W81*K;@tcv>eY-@MkJO?b%@SeX(J?Ipwx>DD?YX4V!v(u2wZ1EuA%ChyYLnNANk!iCzwm+AnSVg~9Wl6Wf~z!kDX z(+S8~zhtQZoR_sW=U4WWf8k}xE@xrlvW!w_#BB~T3IOgZ~uNWXZvqx)s{GdJl zDM>J(sIvd|Iq$yaA$UWYrE91wYQhXA=6ksTjtR7b{2%MBr18jui+o)>{a+%0*|`(E z*zQ96VmWcfDid*pOl>wOekVwln&PUT*#-9A|Mg@c?6qQXzhp@^g<7F=kPleLglzIP zmM+GbCd+?{{(5A8%am(fttgyaY~}zh0ST(u@>a~JI@;IsGo1mW2U<}!D9fwj4VjPw z4{xyYUz27DP%e-C(LwVhDAp*K0CI|?TR~ONVVwpP$QCOgppaKWKEF8EHI@2$71-;Q zDsM{y7QkH~K}D_V zY(Y08(=PHny2K>v+Xu<}?crG{|D>Aw@UVP@#q7G`0dq1zL6JgKNW>xqyKfH^N@r{Z zdm)}!I(&Beo;r-$Fx&0ZHN$_|N7sXvNHjVbYP6K}op^#bsF~9{d}9N8E}1_Lo8-&` z$`uAKjTQyJ0IiR*FkXwFEFcg4eGI06`E7 zu7Y010yhBCu68xi+Kq3+npWWRE?LCKBbyN^-0@PJF@w~KKl|70)N3%y&>YKgib$Bh zC0F>9?Z0#)$!2;FJ#coWQ=*~6!o1@cr%2hNMGg_m((mG$Gk815rvi5Z5lji1_2Ir( z#`jE*)7W>nzih03SUx zd&%ROONnh=kLD;!R~#g8-qivA-)zVfsdWTHI0pa2`9SN;nJx$9Zy0P>S;LK0D%O?j z_D9!&gcIbLXPJS*T*$5Dx#~g$4qtci?Is7$T3(!xL?*jqp1Shusxx(EpS7~Ig0w>f zJUZwz^88NdajZIQ2~g9Q)__lRRSD`;lO?{zg~{P->7pLQO;SSz?7eyd@^`^c z$OnlmV}F)RySvk_U!E7(&ei7TKg1VC?s84Hn!@(F;0HK5Ee= zBh4GxvCnTKA-vKYNOZT#M?gYRx~#^!`IC4EuQI8;O{!Et7ydbZfu56;=4?h_tKJ(Q0;U+Ow#!FPU0TaHwQBo1h5qjK=PM?@Qx;nNjMG-F zV$LJ?iM4csqK_RqywW}$x|S92ZWH#!)|OLp>p()NQ&EMW|k8XuG~+ zng?Lo>Vu3dk0vTr$6XsoU~qdR8d@KGfke?2(apGTH{+*uUl1`~3FdGRYcGGFHoVIn zs2;rPDOW#_0_azYpJTNF;J`VHQP_AdIElq7khfV1lGDu5O#Hl_-JOQb0L_f~p*M9& zU){H>-lbb%Mb0X(8@?^7`z>>%b!Id;!zPwm3Z;ii`-F?nA0v$8j3pYu^k|-0!52CBb-ay*T`RY0;WcZ#F5lf{5+bS0n*JT{LJ)7$2y@7 zq0?d9n)(1;f9Ds@zyCruC#%S)Cv1af_W0G*hFaKl3YaE0{EBS^mmsgfmsvX`TR`R^ zO=0z8&qC}9<#0i?ppiWm5N8beY#HdWRM2GuTaus0em=SKI5G<(F>PZ#Zph}y-rR6e z?3}+5R7QY&NOr@h;ECy3e`egzKv?%3kb;Y`OXjYQ$?yB8+~U4x#|}oLW)E6JLnSM0 zHTjXHp2NrC7NvG?gTbufUrR1>-{oZ9-5#j5jn7kt^!ZxIR{mk8tV=UNAus<}XVsTw z@l^+xV>h$thx2ed?Q$B`?1=2*+oESXoHeYb0)!e?%6>qJ44l;v?1vZw$ntg9$K45^ z_;aDu)4KlbarW&ZaX7wb&>6`K+UK#$RioNetVP6Ve`2MQF&}eaJT>x+FQd z@A80;Io3TlE*`R>WqO)hazq8G*W#CRfuz}!{|^EDByQ;#pO$!`uYf?SiYmPbM>(x# zMnX0p9B<2a}kGzK-p~_9_Fz!B3H=eJ1;9kA570 zT!a*2o&3wgvO9iCOj~C*#`yPs0H{lmeXJc{ouQb9c@#tRR?wN>g{$HlKRsiTtR&Z%yOcw-Ha!$)=Q=$znRQZ=P=otv`%$!bi)Zb);BKF&;%} zV9fM6=#c#&SrSX2RpBY-Kza3R0STS^#7=xiI^--h#T{vc(LU}Md)gD8!d}EW`800R zuhN@BAtn63XzD44oUS5(Hk@=B1Z4M&a5;Kegd?yfYZN@z=?7~b92o8SPL#Ui)F43I zN|!4XvfuGcn^O=NWQ)l0JCKK7w~l!O<+<1|x?IVzuGNWfzKG~?39=L9a#NX(l-4nL znkCJ(QG@{$SxpxmfcKz6j#1-vad^GV#nV`dvMahPQ+Q9^4f%|3R-Af2HC;Vr5^onN z@=h;XN@%py2mAe5>bjC9-+1H>LCxsmv5O_BS-x4x!jEc~A{W0<p+~O)C6M?>3XdMgmSwtfw{ZQ|fij9hZEZv(H}Tc`r`Ay_I^4V$V#XZn~JXy!ugMMY@H;UMG4%R;1uvAvu<3_%hf_ z;u7HtzAlr&oaVoTWpg^7iDW_8M40QI?Z&~^T_fUu#7ymmS26u%VY zR^NmtwZZlnWawpRLvLZXA>l`ye=jXG%|Ua=oxGS;+Dd{sWw_LP?)g~5A=G3J;*hc# znt)#n$I=JP6NVdpd~)s@b0bwir`+eZu@LoChI?$UV=v3#8AXXTt{QV{5cpFRUG?@F z%@B7H`h)h}|9vIpSNM2p$FYaZb-6?dVKGdR zNur=w(M3GLw8uBnwZ@JMx0>)&xD7*Q*S{`R3{$1<4C4E&#tYOp5sjOo%nz0uR~5A1 zu1<@bQ)QL7A;*=-zo40y1GUFxu9o>*yJFLWfzz8yyR6czX@^ke2At8ieI3OKt4?1g z{K~B;yTR7s_ys5h=d+3T?wR(r?f(c++Qfl5>iI4Q$Z0L2|cIoHHieO+N z?2?wjdZI5BupcnkQYwuSz{$DrIgUCjrTc@_of^n3l*amb459MtK}7Hx)$-fc7+a8) zD00W_$LW@(@`WC{UzlXp0}gwtuti|_tr-Z)u?Da0o6Z1lpP-anZUBNHO%~gj?)&bs z&U611^NZ~CMTH5nhUTLsYFJtr7d*kk4M6^m-f9u%t8i-q5h3*21}gvn^cA*Cvh(j@ zRqy`BfV5d3xZ){z;NPy&>z#)Wx>aRs=(>ygMJmj`Ag3R`Ab!3Y33704;G zgGKON0DRdXzzwQX*lu+2p7mDfxF6qJRB{xMNx{Md;9$w;O`!9YNLeJ`-Lki6o&B()Nw!~2aR#A&+xM?6?31yBh-C2XsA8$Y zVkdanA2$99kwSCRDRy=RhFELhd=g|j8|f?L(LT^sEY0Pgj1W4}tFKa36z+_Uo7%Wj&UOfms@C!x_*v=<_43o@YIptc1?Lt&^ zY0d5h%dGgq44`v}fDv$JYDKz!{sEO8mM=c9(v``gZlud?cwAZL#cUxfa+Ee+=dS6Y zF%FJRGG=I|B-UKjpK`p~S{cw%I&VBB1+31!aguU*%v00GK>i$C`lfrLVJqaHUu0<5{cO?J( zDv+>^D~1@b$WhAoWYBuw5w(6GO}ec0Cy>;+*)1EbD2c#HZ3N`D1gXMN83s&~2K%E* zTMn;00$<@otov4UhXw4c-fKt-rr~|^m#cIAeligHd(-}eX@|1+)KcJGrSqSe^OCQ2 zn|49ba|4lF1^D!2G=KxPP|&+zt2-a9zC{n{wzNTD_&He)K=Ln(=jT;=xE#9f3B_VFkq-hx^BTMIz_Ebw* z?U45`tdj7DKxz`#q#%%8Rs0y5+b&>kO1jxJS5tvVIU|6ZUnwxbur7mm=7VeQzmKfJ z^~;Ed?1Ce4uKD3jakDe7cfr!deVB}cJZu7C25P6VJG7X!1FY*^GLW$3X9I9q>kG0A zgm_Gj=I^J5=x#qHjMcH@?M~lcE9w3VoCqPU?9`;WTllJjrb@P3N!FCE> zn*>__@-wt?fUYKM=8+88vMJ?ALgNL=&SXFm$we+j2d*9q>(STzpn4Pn0qb(}8>3g^ z6EAtmvJiR>@g-r)r>)4-z_T@(lNZ?X$1QNrvp$h4jZo~sjs&yp$XK65vi z>+tr3xB2$>28{RWM(8p!j^mG?xJhzZ=@o|mGi%<8LF~wYgeb_L!2loRZcf&Y_RI^C z#?=M(6vd{GFk^-k0I%3Q`*vO=*QR#CFWFp5!STs2 zUf;Nxc0mLBXwOu1k$bWA(L*j*k#jO8cMn}9P7@+8xHOz*pwxBndA6{<6mYJEe%=!D zmpgkZX)2*BQh2EvYgnO;QvogOTE%JMfC`z?j%OUZWjVD2ZiRqqW4&E$-|F7#gu+Zn zl38)y3@%0f*t;EsXDVNnw<}x1Fa|3g_avdT#rE(uPF}zlK@qi<<|V%7mK;*v8#f6) zrEJ|cX}pFpG!?%8YpUo+0id=oExS`ofPc5C(4!F&4KbBWS%Uz@$&)F|kZDo)osX=M z>Clf*s1Nm!J~S080(!!ii~|`JAmAB33ZnXtkc-q1onlYzQmwzc7zG~XBDKR70~Zg^ zE@`J~ebG8E*uvdEa#v(4ji2m*ia{EQY~%;mgG2K?q2<7n@&Mwlk@)?M0TQ#u4KO-r z1zCZk-j;@z)1Jjos{4oGdkBRmlYiAk6udF^cmBYh>K-dDY!Z8t-#$%!<~s<*bwR%a z$STW0c%i59GA)T#D!6Vqsf)Xt0S^zGA>l%a8yy@BsNHQP`@h!*(Dqs@oY_d?+!a-<;YDMg*xgSB)IKGnKcD_6@* zTQBH{yPpRLq5DT)l%!^hm9uQZEj6JjZhr#G9UobWOou@|u)gTNOs|ajCr$oIg^4z} z{;e^Rg~$cOaJxe07#Qb{yB=eek|?Y+x#4f0t--|(Q)K3KbG9|35`_8%z{0vB&VUA@`)Kj zq96eV;X8%Ixqueb`WxdU@znhwEpDwp@FNvgzbf7+1L>b_!z>_1nq`W6i1>#BV zitfdKmyUS% zqL?|IXO8)U#viOI1vDDVwFc}8m`|Hp&3R}$}Y&Y3H#48GYVd1OU)U6SO`J&W1=Yw>d)04Tk$M=xd&_BF2L zJ}9_Nc%5NhYmi${>0k93m$$`am zge`htU+xF!<5ELYDv4s`^aN1A^qu6|dQ6SW92@Q43s6>4djgU7lvtkA14O$7M8arL z$G3&3#xUgzX{qQVgvQH&H6=SLlGZHoti}q@l5&CO$%`B#NWC4b~M+pd|>tThtp`F$fA_dR(glX@mO1g0MA)K zNoO8y?t8tzcuC7Z;N*oqm-SD^srv~1MjiKm@PN1Ff;E#Ifo)UPj~k>d9>5XE<{114 zc$@vq&{oj{>!ZfX!OG?&)VorPBo3m4x=y<|NKiFXz_)QRbF}yF0M;We#2)e#tKP_O z8pmmqtGHK{u!J5V#nKp9H;O7!V~p^mo|s|y;|_SxwM=+ISY z{!1>a+s2~M%q&J5Ap1IWw?3$ThCze@-2pt3CTNeuuCkfR4t>qanMXDswPX*1);P=^ zVrrP69Wzyyj2nNP;Fa}Dc3Nq6R`1dwdr@g&$TY2uLD%0al*Y0T$EcMvx0w*mpJ8X6LKN!SX=Z9Y=!AKDT{J=?M&?dTWs*A;DA!7v$R@ z{{rHnF6Xd(Xk;`PUGtSgKVVbm(sy(7dh&kHE<89liN;srrv|}b>ze8IC%1SPr)E-a zuu7l3ebDuXRh;I`P>|b0`^Hqt+dTDP_!N7p^FZ;ub{&TP1*Phn(g-9Ur!?l~aa} z`Q8FA7|lNx)M}7T9K!FvuavpyE!jdFxKzP7*2)~wy#XSwyBl5ra^X<0J40`N+;3AR z!>!fvCzDW#rQ72uFZzHKUP{mz{Hir|BrN}ICotQmT`aHzt@&9WN0N1O^G4dHDUQ9& z3DrJ{DcQn+Gf@xZqNMiQq}90tXMn8|i4gqNK>U>LF@xQPNREZfNEZFvOR_%@cp0EA zMljl*r{P5%x98%(B7eD}9>mdOo@=kKzGa_DY4AcT|K0akcl*2!MeDD3tQ(}a_|zxB zz0Uu{Q&s^zmzroCv6GyJ^(B!lu?8oQz5E1V!ISCi2jh$8Uu2J5t?i<9ChEp5xee;I z(*SFcTCY{Lt2hwz&eePsr)e+EHHj|I>nUiwgS|@%(3L?1G)MrX)Ups-v1gM`tv|j} z6;`8P93Y@k7Yr&IJ&GK`asXVM=V^BnnqJmJW2hnej0_$@o@nXcb6aaT2tVozgXY8T zz(8l6*ISwZH8^S}%D+qhq#I!At8WcdY}^FaW3}{h;2{(J_2lj4ct{WcknpcgUs`P~ z(KUFL#khvnK*38`yFLzoFIp82Q8uAvo@mMjj4g%_!xn;RiQR@aKf+-VfFbTn7Q>Mk zrzoj9xx(ofbo}@`WO2~bhtT-cu@WF0K0XX zD9Y-xriFMlyX^=>>WcZv%29)49P;QcU%0^e1DYWFl?4x?c8Mt$0HA%?`t058x&5%gznsG6P*g}dFfY`6t6Xf)<<_a`Uw?DEO_is zU>Sfl0c;v(O}-)tULx6qbF63D48;5;W!<=Pd7kqlp%>LjkDD>C1HB1ew83BMhlGN< zm z72to*AZVo7(t;A^1{^;y3Aup%-e9t_-sTUOW4oRaH3-M>2-qy9dS;Pg?ifXrO}-+( z#xt0E&qVTx$%Ip%q+S`9GHv1^*Rk=Qz>K_e`wAg;8co8#25!%+7Y*r@ha< zW-It4LRaA*;)U#p(WGNr*rkP*BKv07q*s195!~^1+ka}1xr#zG%oUxC(&W1XK(8BVn;4gMf|WE+;%zcpTGYB&eOix^ zCF{)D$PL8o<}d8E6ih?Hu!z!yWEjW3NIkZRrw_~#f|%%^qO2)l&1f&=`fu^To~d*y zu=d~$(jNy;A43iXsksJm;I$`){6Ikf4En=j(yIBb_hAgU=m(Yw?@p7m`gT& zx_WPPx9<(+Z6_-L%&C#x;>7FPok7d_z8e<-J}EQb4*&8icR#rkiej)Z{nZt&jhTu< z=H5%cTlq(%S@ro8H+@D3wMO~lw0m8^T&+|&t-yZ&MQfYEbN#o~^S>M6|3|Ol{}X2q z{NEUwr>?yK1^bGkf9lzfMO1K>xCA8f+X9=K@yl=^ld(nge);@*C5n2$+RJ}9+5S1& z@)bZ37N9Svu)41|uyaPWIdpIqu#M)CZG*#~M|K}I3$BpCiuEHos56|f#_(T< z6->P7V1d&Qd<#Hvvq@+-C1j0?(!c*I9_LUIsO*nqDTKD9{VsJh>1Q@86vsmxZIB$> zIzJkiG;?X|JaXRpW5Q4}cFm0Ea-8l=RF8E>K`hFQ8`B=SC~Q<~pIHoSrLJ#u%mak zxckKk2nr8Qwt`_1qr1_9U*w*bX7xW`ta-D4qI&@VA)@73`Zswbi;Ux;o3<=F>En54 z+w*tKAoV@!g%d-jvm}j~u%3q6sAth!*<$d*+LNY1m!*|iTL(>Fgx=Ug${RFo2t8^@ zLeJh+KXsH~@+#qIY|Hg{}7s%08@Igb`)TNaGOsPlf*aqx9a*QK>ru z9D2{4?q#+W*t{A5PD;U#?v$Rs9$YN@)>H3$vll5)X36K8_uz(v~*rvNIhk z=GTz?0*b9fl;X;2!*3LBrRnK0ic9a<=IGykw_3akw;8t*N3A8rTV8|5cB1`%{VJ}q zV@GtiL+@C+C3$PiZ@qz_E-(+=lJV=biY~ziAbt=2I)3EMS|x=*ezt*$*F^;ghu3rT zJ%%>NfL9DYtZYR)(XH@f8Z~@xmVnB6!lT1Ck=ylOIsL8lLh-PEJ7SDz-v>Zrn~GkX zp*;syE%2N#&Qw11;DTK4;A40Nc#f!rGw2Un^~86*Ew3F_yb9_AbHm@!-W|rHQE=RI z@J@gf>(mBgn&I^4__0mVrMVrjRjWzK?z+|W;G-4)Y#9g_Zh*v;J_l$r%AT~M1s?mM zB=~-1bzQ-VtDJQ$a4S&|^&A#n?b6FkwsNyujM};{#1mb2F<`vEtY1k91o-W>!Ap<@C}KxMFaafwav-@l^rHWct#5&&2Bf#c z3apR!DikLc5mq+;hZ2xz&)NnQYk=Y1x4)S)!?iO8l~kIFNeIjjHiN%D&_&T&3`$t< zm|ARi^#A<%9}{W^Q1H96{!eqH14GUB?TY`d8UxN|0E23+lDRqPi+jO1QhdDqjs)=! zSN~3Q@qaRA#Z{}6La+a4pXC$LJ9gKy3~eL=CLA!p%eESR>jdu}{NdN=SW9X`{~ZM^ z$B#k(x)-Cs6GoX_J3{LIaR)}~*ex<#uV`21grbB0qx}s=qc}>Mxz zuceXJK z;0~;eaq_X6qC0_Y%f){HEl~Ug{(pL`im_424Ag4=8g7)t-Z%;P&|33;O5#MQ|2XW| znLTInFL=M~k0E1+r&2s@6KALYFcQ0HT09~CV2rTlU-mZmCJt={%g`#Nds>PCx}B|I zb?4b1`h|B>iWAMp8mU_T+s(vxpPz9I{TsgU&@lIV7}_M%o?cnahVzWw1`<5BE`7$c zM;kY57^w_JBuQI7(v5tQ!|zBGrOm#V=JYWOt=+O7W0BmdSusn&1P0@7RxPIfG3UW` z5_hy+udpr8`|qUB3rm+39p7f`>}?v}-6?se8%d`32ZAwjUNJ^$9|06fOq;Sph0zv@ zu)|e!Bd+zuNNFN=d@o=RiME(yaX;tAf$uyrh$b2~WfzUL0CCwSrvK@Nl!-LzrP0>( zt?o^^whb=ZrQS68Ra4d|ZxIeV#j|10;0Dltx2q#kN%7qmfEu00U^7!JANi)V6ENcM zDy$+m?^>U&(cC8|JaKWnYhAv>WL?#Jv-iRiAD^#h>IjOe z-Mo#&V(GP$>{~sBhJ)MnjG1lQ5EJhrzkp$L;pGr@AbNy=_&&D5%GrBHa5n?<=7|b> z05?=|X6Wrs!OYlh_HbXI4=?;CNxoR!-6Mo=Iq|oP1~OYq5|v8Qj%4I;gVXgj-PFBD z-8B4~h=cV!hAKM~r<--X!yyN!`-k!R;Jf;FgmAsW_ANf6t{U#6aP^^uge7l8{+0CQpTG3{EaI69Sz*6ZY zQLlvAri}U6a1P_RBi5GGw;*eyUgYpiYG)U(SL@~&`|t|wk`9gYMp#$3s^%nzf37nL zU-&5zTFGBV z>Jz`l4pVWPK0{;i6%~l3NIO~5+z`28P7*2T!1>IR;qAZza_aCd#W;861?p}pe$YLi z=093t9D6jZ*v)W8R~016Cl1l#RV z8I;aTm{|dcFOI#^)1%+8j6YBWS95UQj%f2u)bb>#rfF06D3A+xU~0P~cPx!uWA__d zBd?RzcpL>Gx8M7B;rq`yl z2S*}xvwI4cQLqIIx?%tM8o{Uj6k)&ML!r9o(o!v(rHQkOr&U%5Exj-a7v)MiTjsMz z(xt9_v{}>MAiQg-EUY`8J2wjaiBAkmkkc<(I7Mz}2(f-CRdW9QYo)m} zy@%&>)>Ic~)%qt?`9>|lF!O^kWka>r-6guqB@I6YJTOZXeZ&{Eq_3g7twINQQqC+q zi4ZI$OzJtv<=;igea2%S3gvYJi7nBXPYz}CdbP`PJe7avX&`Qg(pe+Lwgk44t%m=5 z8!`L#!bW- z;uAL-7WxBEI(MJCxz}{2R!kGg--WV*6tgwkSPME4n*ecdw1 zvNOHXv^LQ;{HV0&+B^~(nH7CcBESwB`me5SiNYF z%R4YbZTf;4X*GNJy7MYG;d^G9_2HqUYT!1%0_1s{&qcE{H1Q{A)(fU4;rjZ~EaOPJ z!Q=)=wC|+4Qd1_d`fsaX7N6epK;oAtUosV>j~nUJ_lv(6*d~V0Ol23U*ZE6j7-9CN z3LEdH+=2K8gKwRt6vI5*7i}6+?>O-!Jx4WtDZ1|rd5RF85?W2|(Rh`;o-6l=8}D1o z3ih!5cFVG{g_F(eZy-u;@(9ixSahFn)SSNHED#k_aWLiyxvwg0J(BkD#(k@*zm4b%YJ{4`cD6rXQ)iJr+0I7$$u1hE zPYes}%08olIsA`;8=)0?R+HZs6$i6r)%qnrGkjpz=-=CSzQdJ;$szjN7RhaT+Z>afXjwd~-ctId8Zi!A#(tD`g@BV4I%fpB)#NXD zghiUAPnfi^dnBnCOyU-HyM-T0=k5+a5H8eT0FltP*wGxfQH~zhX7&Q*e za8iow10oz79ZdA|yEIo~k}}!WlxuoypkyWYpMYTW7qElcti*X#DV-|&wQuX(B;~dE z8wd;H6Q#hshn#py6{^G-f#v5M`rpa+5N+(AKE=k`Syii}lUt?AF6dK$)bI-_m!Q8EU?o*z5gZyjm<5Gf&-RG1-li&ea zsJ2*r4u6e&zxv7SZ2Smc8_ZN-1;VJE-U$1C*(ABw2ejPUsd`%c5{0-`_GTQzYRgrVj2NZ(xcum&Q)>UjcW8w7B z-H^xp!IVlL*f)o@S*XJB#-Oql#?qCPb4XW@K~;ISe)b^Yhpu5GIpI@g-R z#s~|%!C|y{BgqLtaX-^TS>G%)jA!0Axo3Ok>(6hrTCN+-lw3O*OF`a}4_6*$P4t}f z28-;mJe!5tkW~WhMdbJoa54_ZuJDozO)T%oX@4qQq7jomYl5Xc`E1{`%(;c3iL)tf zSeDRB+wr=|Kb@rQ#v3c(^Yvd@cUX)OpNdxuwJN_vaRJ!bcx97z^7i2D8>B83XA-38{MA{ zJ-z4LVv@JHo9)+mkZqrkCUV}Ih_3bc;9`B^1bq(dHsuy}+w^YM+l(nf##E!9U-GEG zK*ToEe>K?C=O;K;e|W=*^2L6Fz`<@IKy50yZh1*i!dONutR-o6Rtzn zFjUjF`EFG~g|Ohn94{CrS)6#O?~@XKhq^rU3OIysG=Y9G|M5=3{8`H`D(MS~JJ-ux zvNS!~;2YMo(2VWfX-8Sv)?KFZlgA6|$4(Y5dkw`+7Ggf#-^^~n4H@|(Gm2w-`)1a@ z$_l8k@%y`d3++7BM0jVcg(Z%d%94dG`t${JH9e=l4RpW_J#NsEH|SDNsnkuS9NB6e z&vnIo?F`rvP`o4dC|!0a+E@8Nh27$pPnFfb0lD|k=+$cYo{sk~hIkk-l&$ApPk?hQ zU;6(YGYa44o}AqK2+>QEXU=3FCB-ic!^_j7+tpI^d7(C8ji+@{&E96=PI)%xJf&am zZD#GT@b`!RT>OZkC(Rk~K++$C;D0gAD^Aq<4iJ{X$M2@|l~u$Bo8iB<*WG z*=OGFVYHzSVZw*;VrnRXupW3^@9uyF(LAcK*D1JQxRL7nyLuH3KYd|ee~z$U_Mi7? zOg|ah_f#(0?2vs^qb^*{?H!BqkJxa%H7OwY^6P5f-Z9Nsuu*OyDw558FmX`!$#EiUy4IP~S3hQ+od%tB=jdvl+aE;RPcMly1= zZR_IEIMGr*`+6|ZYolx$$4c)H_j$Q6G%B#5@2AKYB{M82j_0A%uzW~*TJ-64hn?6k z1wnagTK@oN7hmfe{Sl41BQkrwirvq(^Swc@G83P#o#+;nqzoZ#3(bpyd-Kf1HPn71 ztMZ!4>aJ{`to2;mG8g}`${Bn}^_T4xG)izU`rjlM+Qj?N()J9i`CjSS-hRPtXJb9P z-sl{IVe#~}LDm(!0lK=hx`m~$tKkoqj!a{2?r5?*)eD=<T81{52%jd@kGo_y5I zKD^Pg@^h**-6u>B^u-Ck_|YnA!np7|zB@E|xjn~Odj4Fm6#GVO5-F*Z3~e{gNtkM= zA;y2wBzH7`+&sT~e1J~;v@mZIyY$#a-Kr>2$|QO`9}0T6?APb+*6on-GQi5dieD};+X`101J+I@G6XAZRG?9 zHg7o|E|or7OBjs#{OEjbI}$TB7`tb4VbY1MGu?R1#~0m6XEyqn)5Owd$0>roW|P+> zT~KNu3fjj3;{$!YfTtN96gN*>%O2j^l5i8ixZ)i#SW(wW3qN$(YOqDwu$^&(9!HyI zU0{;$!1#Ywqi&*JGM4qoriJsNr=Ya_6d?&9_N9!2EgYfg(HzDUy-fTmz7a%5^Q`N^ z%QP3wj(EGZ%2qQvI72!}Rl07I)_c#F%=e7>RYfi$Qug?S(*)GYnQ0JpJR2{kAX~&Q zMm7o>Ox>UrHuIPA_KOxxLWf(ar{4dR%(1yy*Hq*IsNQphw-uF-rKB~cy4hr7`jgp$ z#A5l$1R6r0Lb0{VDCM{n#|U=VP+h4RD^L90coR-A~gakB|runDsAXeV?c<2g0w(r zaV(&Kpi&}2KtX!%ohS%M0zsq&X$piIf`l4K!nba8X3u{1%)6hre8>C#*ne^uA>qE) zz1CIE^SrJrqxc!BSsXwGW&kfZF$6kX$LcS4S*V4j@0Kz~1iVo9Xg*0xFpkJS)P4{# zP_FJb;oU6`2M2KKYQtFS!qm$Z(gOdmnY_kaiAUESgq;6uVzvXpWWSz7*(KCO)WtKT zhvqgWjge=9N|0F2)OJ$zp8S~6pcS(7!XSt_b9E(_%)ECjQVNQFm#H2bH+oIYfBO(r zeS=i7g0$R^@i@>4!v$TlP`PoHSg_F2^_W)Ip9kx|QM_~@gwT!-G?7=G3zw#g22Dni z*_pY$00b@ijrnHJT=Zy!YLS+96PXdqC*v(VB{F?R-2#Hdihk?xPeT& z2KP#z&zy!iFdlVJm1}F3>pLCr1Rv@3xoQLKWF4GrNL)L|dhJ>ryWI+hEP3voR9CRj zI?8W;aH1ed+>)Zk>0-XB^@+V$$?TT&v>ZlOP3WWFWlE+a#eC=;v|F4N8Ibt*dvpun zLFw8s8oRLr2Q#j0c(2T_5ymU5DX4x$N}mik=hn zv8>Da>I)b8F!8zB#*f4+=Oi3nmnfLNYiUhVOIs@K&zb~kt@FeUKNhD$JLdY;fY++& z=JArf=5N-Rqf!pcNq)<6jbckwlukZ^`%xnsbhhx$d60sTC32Qv*|o0R&+92 zXeAzrZyB{jlsn@HsVMZ=qjGXoB)6D%8PaYw%+qn2 zl}kg8!-OC$KzH2Q{b18k1V$3L#Q{`M5S-(@Z3kROGX7|9F?+lPI6u&IVOU=J;QbCtP${A7do5ctFRoo#qA_UfS5DsqN$_ z{vkuKi5EfK;U6nkP7QdtLbXtL^I&zDZOPNaK@YVIZ52; zUOFhHlX0-|8j9%yx#ffC&P?&DmF1$F z%WsMl{pnZ10<(bOv2v|Q^9!e!7K3&eu`YRR7nWkSw_3ga+!P;#=mO{Oye98cw+wcm z96*^F5TKX_8FB+^Cc3*pU*3nn@hr;Mo1m98EIY*Kmdg(J2P{ZatUaf&4(~(qqZ>ig zM0r|tZ9Iedp_AVv{pxH12h%;fGUy-a@v6>0#>Qu;@OpLkd*kw=(-UFBx$CW*j8I@| zgTRJm*B32B^aZR|)3#SLtid)Ma!9IOJ_hoRIS;l1Q9eY}_m$-ixC1v@5w&VXd$~6v zce(ZA8&Y@f^03dG^PTZpu-QfZ-u~8o>A4y`;FQa0?5CCx(w-0rOPllR`EurjwNKpj zvIzI~BIHb6I(Onq9doY&Z1aDT1U8@lYA-qn8`nfPNI-hCX(H{o*JwWEaa7!|iSJhJV;dIae@fvo8 z6+&_+a?Y^^^Mi&wBUGpFGt)0UK=B|rc1g*>*COybqw{h?2qtPT8up|Qsi>-vagw~Os;fe5#=L6W$ZrWlLXbQp} z7wpcoOiyBmc+BPY#+KWznpZ9}caa?g6K&2DS3IN^j>bX|Ysg$(Wr8oegU0Q5J?1G{ zV!Ke30g$(Hq+fCZ=KVaa-cuje*&I|LOCKxAo^KeE#u2CAdoU$%$RM9C7`c$h@m8H_ zmyFrYsH#+-e>X@Q+Z!RnKY;aQ*}2Zl@7IOxatxP&Ar`JxuGSQj=9{@?RqgK0?6d^` zaVJ_G+*Mv;H!ghuHz7xhY?d(Qx{sc8=y_@AFn?Q^HXp)}lN9yQt^D*%hQyBByNws# zcNW|9rh^uZ;JmnA)|W<`92PT83+P&7nP{P(0|vx%8n7)O5DHZT9Wk`Kgpbn~0dobO zivVVSZ}IKt#^(sFuM8n`5VOgBiL8mk?}PxN=Pp4Ugx2kp+dJlB3g^_Vnrb+@E|$3Q zIWeW>!3ok!ex$r-bFEcff@ZR8iz5m26?$*+{+YFa3+a9@nYvrbGv~~6LN=Eu-2dLdJDYZj) zB+NVXXahR_V17*8XmB(PT`rz&U#joOjW%>(zf&f?+2dv|A_<$?1vec4aDH)|L`=)! zVHx}28r!D8RmV6@Mgy}iXWoG^W=Kmxxy4xQ4UTE7^yscEgaAq`LY7r5o(G9`*Ch zW_Wqxd{s7SVj-=(PT6NF=Y1$atDaI+0qE_jkq8YyG8X=B9YD&*G)C^o_KdX^$krfh z6H+(dO#{M8r-AYw5cd(;b}^BXi%%cuplvlccl7;#^iV@PbvYRf3lypWtK;>fM-|%7 zU$dnoKeQX?C{Hk$x%hS}k&BWvl-x7XJ&`0^y>X?S*(o6bg6-Zlv0RXkcOC%Lo!KTG z*Jq!e2&hm&AG4!$SwSE0aQ(QsfNlpYaAKl+I&32I83hCGZ%wT z46G4d=uaVm%0L_W4f0l6aimpy;Riql4_Ne~B#Zag>kB{`$7N%P`jMn}0p*=(0|mc; zj-E*Ltza{hiPGC8R#T>prb5KlMwtu|SZvWvh)w5tJV=^k$nKOU+$@4B98gE zXq0alwnj(a_J?J_7MVRorJmEAoa|A*_T!1L+Uq7C!LI>oz*%64$ z?cqJ}gvdjrv?oO+Rabm) ztxrx6GaY9!t}AS#zc%Xb018+@r6eEtm~ZH#c{sQ0w| z{rQ;cITdBgxN2|{<|V2Gu62ksH#MnhtBVCv}s z6QEX6QXHonr&6?}#1QsYR3g(`Qb>kGwW8~wOpi7`lkXasDTZNGFT@s29gUB+!3<^U ziubQo?ttflrMhxsbBjXTO$@WP$?tx%Ol3{qBlvwlq2J#xCs(2qtb;bHk@y#GngAuO zGH9L-QxgGs_$JBz7xa3-5=52}@%mibc5NNW$3W>~q39FPJT{!$(!1XF#u=m=Tn*fE zTTM%D=0*wI;0d_V%*#8}lJq1jn)tD)HS?`^XsOK% zxqNkZ928WM>5-bp!W<*zIHQ!i(&GWDF4yB!8MVyU*#tidsaCA2; zO1s8p$d}up$j+T0r*~SmBixKEj(dAyCuovn83Tm1qk)j+ew=!y>@#>Fum8-w>8_kO ziNMR6@h9uTCDs5ZSBV3*BA}pVzTVz}{kfbxQEb)Tx5psf<3=Nl#vLeuBo=q)HYM< zg-3ypWv6)$w~_An3>xKCk31=w5JzO(ZaX?`z4mmSUg=*s0uzkx+ZzH4gKydZy-iOj z!v`lArk^CABbe@hjLgY9TM2$6b1GAaDSh1s(Hg z;PWh5OM61TWDx6sQi)JuOVY*=qBbDDd0Vuh>2HEMg2at6;vyd+?Mpj3>^fM!6Mn`DF^r8e7s8zCyBftDy@NBU zD`$<VUUfBrDZtkn|=Jgr!2($pu7LqDl_aiEO&S=6#j_$P$T(Lg7 zbt*v%7;nh@L}Vykp-%CsEdi+xM7H$E{4O2Q7@-hRkpzQuUKzmzcMkzm%FBjz{L?B<@Wwfot5Gt%eS7 zXAJN#$A@xZ6A`ezAw&y#)s^s~SwOny2hO_O$)O4pW$A!^N9IS2k^sb`r0HDivydKp zPNJN#z|E%lXmgS+J3Jw}Dv2WM7D=Gh>qk};%YOcQ01SwG0#4RbK;A69&ZzZ=$PO|h zuR3R^8YqtH+2!C*bMV z^sLoDaOi%=BYiDz8zw4?M;P{A!LEdBS zSt};J+^bhCf=tr#q6c&I@T$9Sl0R-OdMwx}`X!KqZyJw}kfg)Jk z9D^%i6p!-t=NnNg>B*k4V20AAo`#jdx+WC5>F%CQ0`Y^8B^B7zkHcDD{bQXa3OxsS z(WnsOkPwQkRWWGHpO%hLt@!ZsnuM~g3}ieDh9G1iQ3Ep# zd|9A7kgZWH2ka*@LtOLao$4Bv`(q!^sh6`eFXys+M;>|fokMT-5~XDv=7-r2`Da>t z_H6~zFeF9S;}vh1%+xY=!T}X)l}BVgDH<&6&v`En2ku!jQL&26al@OY-{r6YCRLrU zZWSy0bm;JOD-b7~$Bs5ik~RJ3ENo75Uii-)+l4l;ZU6gVYN7jk_?cnftPesg_%I8D zWpk~-(gONP#(o%=X_;9J=y+oaVquIq4|vH>)vnS2d~;y6yhg~n)qc(|@};Z>q0l|6 z2WbhN23g7ED(IRMe-*Eqkm#PWt)|!5SFZPnkm@aRC+7BGG;aiQvWT|Uv#h9W@7iT{ z6pf7S+!TL(F$h2mX5oWEm)l@u`G>vFSg1H$W7)0Uj}Y!l6b6bG3wsF1j~(7v7VMUe zwFl}RVOCEuP`jjLy(+%8OjW!w)=z87-Y~ic($-Zi?DPvbd8B70xMtY|pe-TMVr9d5 z)Q0xji*>l@E&Nmfvd&1;WfPT416IewAahUzvK>dTwM1x@c&pbj_%Ff8w@ zGwV2@{J`2n+m^HyO)$!x?6X^FBO@vBlvd$kzd?yen5QJKRJkqgTpzYsjKrv(HOi$_ zW_z!%yAfYlV_UGaj}o)Pel>2nXQ>t(4UFQhG@J=QCd!HcAzOXsN?P$3W;I<-n+LrctVa@Pbh>Px6>zp-WsnFI7$^bdr|L zZLJfrV|j`<7U2#p1N0Q*_Pf#yU6Cbl0+Y(|*&BXZm7nRIq$3jqTh~fPDDy*cWNcWw zM(u~r@o?jf%SR)xb9Be`0RZLA7=OJG11#E$LA(M@fntF#sAnT$1vQ>)5$&boMJx8WJWgnAq>P zJGUPRa4tYA!ld{Iyj_IXC^EFpzNpwRwYZfb-xokEXhCxWc=)*fdIqm3M(qye7a++6 zg2|u$i~~UOV}SRC%?STAnRA?8vdQ4eY^Fc-LSqBqUW5JV0SbY>7RRUVD7w|J=e8tm zX?xT&t0{}5h}y(n-Ak+NJC3z3&DS@ZYfVxwX^me+#VI>o^UhqLmqumVgRYQTXzti2 zTFSxvSgFGx%hwgNXshYz1;RGN{S+bN*<#NQRa~AK*_sNf_o+SWY9R7F;d9#J_zkZ( zWd{=hFG$DMmfi{4h^=2Yo55C@(KjU!3TV4HWp6Lm)uxIf-=XL_D6?HV`rAZUWmGoD zdt6Th=;$M}xtzx4+~&;Xu8UonAVt)43&agA&O5wrec<3;->zm+2r^zExpQz&2U_e# zpljv%#eUOG6d1RE;D^r&cP47(g_>q%U-52#513!V{4B`H8h~yi!JQi%RFHbv(D zH4S!h1-f{`XVj((uJfO@wYfL*YRhu&Axb;W@4}3Wzlq3k37~5r0d&@4+(6hc76_d- zLuC=z*G$?8+!~xTYDb+^=o;;-=U*`(c^G!`K%At7}T#;hc{#z}ca? zZQ-EVY!^U&mKMX|fre;8Fu~RxZ4>hKwbk-_fC)h>2hiVB5x?B2QbbbBIN%ADsa;-&}L69nF55ffWzO+)`0|G z;5(pHzPjzdYLe^q?<`X-G@+`9px?m8>?$s+*9WrVTmd-fCa4Hv7oZ6Tq5ALIc1Uvl z@CYQksMps3j|58en?V2Q=kw4Z_MuLNfu7wMdSRym_&5;Idy9R2RdhK>H*tr6zmtFY z@xOvVfNDS-9@r`9-Qxs_xMvPSfX31uNG0qX3>~0XmY~1azg|j0sOcYqVKY8_ZLI|BWBw}2-D2p1V>~xt19v{It4M{7nX94O@osSiV*-(lw$@K z{XCS!K_?JY9y~WhJ2U`V3Y0f^H7EFiFEytElmwJL?C}POYVB?PH25@-yfiN5{4{A| zD5-Q4oKT)CG-$tUhLC%p^;8D??%gJ&=F&)+4*p&H4PfrSGANPY!9a0nA^4^*7|d5p z0j!!=EBN@o?q8r>4;KQ<`RXU=gaDF38${6HpPPL?PYe|mc)qT5U{)JIRVp%Jl66B0 zZY5|?gp-HOUeOJzZm#LXrPaV+)%4=h>V{8BEG9ag@oNpSQSzG7ol8WK+rvMJDJ8G8 zimJW}pGFi<3lG{iEhhEZ`?pqbl_VEBc$9*sT4xh?*eDfhNcd1*<^fxVB`Br3q{TKa zRHH3>b=}%;Q{p=8Auv)6ZPwdrtCj@niSpw56Ymig+#^8+fBSUY@X1|k?GteZRpXu9 zg>xFa{9DnptfItrI0)m=hU4Tsi!L`Xq16_QUX+I5%3q+ZJ6+(}!J3FwPO2&o_nYld zTwB5|wb^qf9ya^8?ya3@V_-d4*qO{ctlyD|xS<8ic%RmIW$J>yMmzs;Saio+UTclY ztC}v{kX1*`0B#7E+FVn$bK%2#)^mSb3EyBZiipjEqrWCSq1?=Fi1EzlgHnm-keF|< zH^tv(fqSWS`>gPgDzsX&!V2$rXAy^$8q7R`SDx;f6*g^uE6_gKnvo|w==S4H&~{1j z&sPnatHikE*VPQ%oHeC2&E(lOFO)AS_vVwVi}z1_z>Qj$kFeH>E_ukxN|X&{xOZfr zfHBb&LlD8oL#@1NU|!NOP%>5ski;#Unm0;;=la9m*mc+H7Xv=)4_%yGo!iB-)s*wc z2j1ft)}58!-4l7Oh@LC1R!f!srW4EE32-wvMy2QO@w}5ytG6fln>#Wr$ewegw!k}W zfm5|)rt(3q~B(Na*0yyu=bRJ&0h%*B)Vu$YK&H) zFZ2db?SthBkyU8wPf9f!qe@UYoeuhRzHm40XoUFHCa*T?vhH+(do7x&eW!I*Tuij@`=+}CG zBwLrGpft#i|j}O}j?BdzBX_B({LsrUfCmfKXYrOEou~5B6kRkfk7cX14 zS)BCevWKHwP^R{$9I2#Y}oTF;sJ z`Wj`i3q)aXU?=t*2B%r*?tk|?|Hq{_W{#0iti0_nZ8*L|rR{KGYUd6Fj^C?t9z zat{an|6K3~org5oH1C10=K|&L!v-1 zlyO+fKoK$cBXQsjY4c6QA8Wl?b|U*%Tl{~g8uG6yEC2mg{@c^`g%lD?w_EzV!pwxw zt^aQqW|~rkrGRO^0-5G7IWT;gIu)NeYk`7NnC#N8<-K1|17M&*Do!5J2MJCn_|0!_ zHG!(JFMKi-CjTGUy#OAEYHI)ayWn4|)xotr1r@rW>az+G2SKlKr9WV@09D8H>e*jj z3ZRofLF?~S(zY)JuRGv>R9Ax(MF2!3TIuFcVtZ#B;F|V9@}n>1)n=Qj8Awv2wpsWJ z>SjUp?3X(0Dtl1oYnU!WH`%P5y|1YfPYkqVO;L z*x2%y%6CPLWPM_10pOhKoii+JD&y-Ok86IeX3onm&w3IA)_pZ|&A;qPGwkh{%qod6<<&2s#|4}igWID9_* zn7NI23<#xVHY-Ou(+yzewpa(%6}l4nrBBi^kkYEk6t&icq%A*bSPE#>Q0 zM?5w-E4u(Sz8ROdB_W8`o^2;-(Z>2xXOL_(%cDL!5S*t?s6q+|<<(}C=;4>u03HHX z?;CKmK+A(QJ}CZ8q&$cAz?WbBCsc!=rQc||NW;@WFI&0IiAsm&z*MXKK;E+*xP{&I z&}=Sf#+1h(s3|B8*0dr-lwN(ZneOZH!Yy)@unbq9+}5hhf~=uQ|i4qTZ`qT=C$#8t?>uT>IkZO zU!tJd34^7l>DA+Lrb&WI?R>}Emy+;)P|F)y>#l57m^>o?s_pbMyt#+%6e3@qU~Y-S zF)GoUUC-rJHrUQIn`FvE<)I2|2+DenfOhUBP&>5xDWuzxr26o%Nd8gg*q!9QB@QdMC9r*-ZP+dh&pP03%%Bc`iH4HU$hMeD&xvJ@IX{nxGW2znIB07#`7o#-Jr;~R zB7+`*-AdC}nZqk!@Z=gdZ2PT;@z73ls=vFV+sUF}&v$chm2ZK7J z;5LRgd{_qDsEwEGxsCM=TMj%M?l(Ae{pkW|R3B?m>=@G+Cb+`s<@VAup zP(LPTgd7h*x2|l7&A$3j3|_W|TlEjTaH8!QJ!Vm2V-%NTHpAZF;x<6tD;u%VzF~Z$ z#HE`Oi~t;%^Mh25Uh@u>*T`o(2Zv?eXS$9tN#1%-?-%%csp2 zHYyMj7ra}<@qpr)5WZY_21iXyc>N5l#EMZg&q(mYo?>9&!mXR2W8XwhkaYXA_32k8W>Tea&0 z8UYgY_*Q5nnS5DbJAO7!NdZ@Q(_wu^baD=LU;^YZDxQSRJL$pqc3z}$pR9|N9S51~P(0Y_*hmDaP) z#cii#Hu^V~i9l6OthIdHDU2C!PeMW?X_!QA{)P(+x}Ne6*Ob#ge8Y2H76e%zWu&s* z^bwpzXE(x|gzIS{1k?oR8Jl~mM`P^K84`|z+~}pPjz+@3yvPFBE}nu8@MLf0zs#wF zrXXb1ddt@?zK6EW^bDAp4qC{Yza_;K5Bbf2k`mB2aW}~LS4p5DtiCEOnhBo92G*OF z{rIr5giPtl(Z*c&jI`I8G$csDF<6LEc5+?9=LxkzW|HC zb0QSHyaPs<=OO44vDww=mlWWbcy9dX*Z#90|Jfn`IScpvAY?zf8m61nxY2bn>`CKJmQ+TyDjRoQEEOCY(Cf`&OG zgIEs3xQ>GPw;Mri&rW97tZbm?YVPDzd{A=p_nGycjjdf~fT2D%LpY2}EzP^TXC;vI zBRJTTu1Y6B?a?b5ow}Q;f=1 z9v|NzQ-d9^TaSl-M+}+3Bxz!woVrf^35R?dMEvP{=Etk^BaQEo=>|!$MBLnVA*elZ z7kruCcLwyXOAX?z8O{yWW}4^QUeLINm$#V&gQ1@1*R6&6Ez_L>M1EFiAR<{SvtXL^ zwH3yo7iZ0T!sjH*p+|aNSId#7dVjLYD%O6u8YH|jT<+XAo>c2x7V?(QZMm;V=^4il zv-PUaiS6v7=J-2l^raR}Prljmv0DeXH_$%6_(4_HbM@W957j=fT-#b{CjNugooyXu zH~Nn=ZiU)%+_nU6`l zPgFT-9%skg-#jLBvfkh~?np)iGi+K;qpJLLMVK*~JMz7GBMlbuIVzucH~!nfMg^=+ z+nos*r7o}@nQhi$*evFI>c)q&K8ykPppagTFOOoEw2X|?1ch+o=Eq+SbmhZl`wO1R zr!!uV=x0n~Jf9w$xNxFUyHr$3a<1Z_WJyAfeqExmrM`LkE4?R2(D!#PC3Jh_sh#tC zvisseX-t&!MN98XT?xHU#Pu?t@t%?YA!e$@#6#g3*|~_f(u5%6S5!K7*0WnL?@7(I zyv!Emmp?t5NjR+&n&o*$uQ2w>^ni)6^99heLIp2ZIns86Vk*~LQ`u1I`u5>9lB)9V zN`d&DlpAu%HPe~0$}j8Vvo0A(%Sca>V#p=vcGm-%0lrrUKFJ94WJH>nnzj_zukI}U zhO^%J?)8>y{h_KRu{AoYI-ce~9~9kBLLT~!;gPaN9xph~{c#6PK4Kac-yn*^il(iT z-7gFIY=wSQz}-0t{iG2ER=a{xq}u9k9^N3!W%{;`!NC7VHPlzg=;O|bHqFnQU-of7 z%_8e{p}=N-VN;E1k@4Ne`vVbwkGQ(BTFcV_`o7=t)6&xVEg+Rx{z!^gkA-^@j}fgy zcQ;av@5`k=-J2y8b|@UBt@EqGsTezbs$J_2Ps}F^V`NU_V!2 zOpvbfTt6kIa`RR&pO`d%i@uIdHJT=L%YR2wW>i9gteb?m`g4gJNR3EW8!8&}KfGlW z)o`SWJbt{{MuD$*l{~5tMO4Wm>hkRx%~RnBxC=EmBUi3aQ8?3RJlLzIV4!+A`t+%I$EscV3_j%Uu zv#;G(y~84O#)}H>$0&T}IyE!Z&N>C94Qq<^5H$(6-wAH4`jb{jm;$0NB1GJ}bj!2| z`#XXIIkw}S)|PASYg@f0M!spb(rnNd3c0sr{;2xUj?scg+?`%{k#6LvkR8aaeDHeH z6&LD!xY|+hwtK2zbW}c)s4~A6ws#CRXtVMfS*l5=a!i9JBGlm#?fr3ZpFH&~MR~8k z+-ysGd;0unbC}&gQjx*+p1hvd1$R)|QjJ2G=r@Mp4yrw2g{h+31x9~ppv1lW85>5r zyJPQ|{Z+TYsv~tGqkI{NF&eD{AQ;!WKEL(~SXcZ6i?5Ep>wft%Zfm8?ljD55rt*LB zsWjv`cs~6s5G*E_SACu9F>nv1{pO>*{v+bc20C|SVPti`ou*4jORkJbqX&~jp$Nu%8X=xyc|lfqf0fXot7PudXr|9 zgGVX*Nnt|WuYf0YtT9nRyRBBfQIvT4x=fS)K|a|=R2bM+HySU)-nf1nS}5C?W|tFf z=K>v@2;1;d59_I>^dHDZtqOQM<;=`Xrn9={1uSraUZ3i>hQpuRK8}yqDMq)afu2By z?-`~M<+3Re9ms^AaKZzPJ4W+`d@6S^@hvu@-8QFiJCKdxYNCUvL#4B@$c7U>=YAZ6 zeafofq*jw3em4DBa5z9<^mrH%*xStCi0a@3$-J`>9keN($}eDyWN;N#WM3h{tSLuF z5(-T%K$QfpFW)Cl@BDgtHc*nS752v(MGX|n1g;tepQ)Xe3O!Dtx*xi9vo)I_S}N3w z(ZXDEzoKA9a)0^LOe0nA>21+8p?FfEZTO(d);{BCIbc2>E!pM7j2^HlY?uc#M4sdb z+8aYpyj(Q9fp0jk-azDa#g^&4%c$m$c^6Kr$VL;-emh7zzl3i?q1Z=$B!N2xn-GA4 zD!ME9(SqZQoeLv(J5VT&Koj(%(1ve0jqZcs(U0Z{g;=m@^G{ol;Qx1Q`0S7o_!Bw{5-$Z-$6C&ZJM~UGAd$C*}2bLyO7)4n>zSGRX+-h1S*^y7SklZ@5Lf;cy?u%joE6HS8r| z8-d;3VbGRG1tv)~(eAp;TVTp6?Id-jVhzIzbAJjuBxy&_f#IZMtw?*9)dPs$(LY~ncvb%~5 z6qfg0trc>iRh&1ce+Pc=Vo#WYWQLGGxzLIFNfZ%et$Fmot+SGOGMIW5*&O2S0fCFa zz%80TuO7(Y7OCp4N`DR&`;@ir-57zUDnRcY2R>Z}w+sWV@ZyQ0K3nw!$8fRuYT!4o^LesqaJmZQK0k!4v1Ce z1%t(o06Wd+Ik0J>)WthD4}A*?H6V~qJj6G;y1Kc*JfE-p_s%CT{3D8|A)@VfdjXdC z4On7SM75o$<2=6Ez6yHmimI~V)gz1MZ&0EVI21J5o=5!p%_is(^1VpMu;sQbfUv05Q3lKZa;5mIl4z@2Va=LM@A^~cV- zN!^oIg=~mGcR?E~OFu+R!UxN4e9#M7@+n3YKR0U$)y()3sQe;&h3XCrtq>+b1q!L2 zr~tpw?59u`J^CE_ZXRCv`G4czHp2>@H@|HZ>^0ep*Di;itBL~%cJq8DXAFAc82C;&1_!b=n$+J?+;i}FIZ>jNB0Xr)N%ue9f_^iUaA$R6?5VQB! za0e-H{!;f@ZN?jmkS)KYta|h3;d->o zuqM~D!Y1~zZ}tCdHf{z0&-F9#TqY6Vm*tv;Fuw$DN7JbTjhoTLDDbLYI92Gp9Ea%( ziS6$}qM#q8s>r@WiuT$7zr+Z2f7*x?kDS_!*vEi>3hhMh32_f#o6eX+M+R(ku*rVn zJ5I0IA>CA%T2XY|VsS8~#AnpV^7sv2Ju#)bX^|qA$m3u*n7{J7hu7y-D^piB`QiBD zc0&wlPY1ejLOe@URPxMn}9O7|ko} z=4&Xh|NP|!Kfd0ErdKFL+mQH7cyVbAmljmanLVE`g z^Xkr(IbFQtw{f8vlb05c9hq2)9-(@O>do@O1ybX@#y|5N7$}$26IM>}=zN3QenvHd zPi-y3cmXx>k@B$XQwsl7r@q+ayF5J)s#NQx7u;HZqtV_29rb<2QRXUe&3^(1RIh`K}eE}6w#u)rwhTB^sdaoJmDhh(|ya6Xw9HSIHND?ip@ zW5#tw4DgM?6k}XF&*BxqhE?e=(a3pE-%t=&X{Ye1xsFI+T=yrWZ&f<_>u6KH(QxA6lu^;@ zTt@WhbQhzb*k?w~d622M_HnS>X}D|&tYgJfU5zT74AHhYEj(QYJJNd()qGJD+Ce-* zm~d!!%S<14a|SKsRP04H`ae4P&9j0R9eODzUe2`-Erzv~oeZ0DtXmZw5yeQ8izd5X z&o1_*OLSV*E61D3?T^U9T%K<%?wU!TOLa?&khtj3H!`t@TV>&;RrhwDuGIeSW#Qqw zd2jMxe>@KIt3Pb>^h|;Ak-9+1iJt`$`p@*6wWitk<2wn~^M$8*;iiXrVT6|@4e?Gr zcRw+QE59=jO-}G}MR3?Q%6{Wh>6sm5*!wZVEmE}4`=xc^KdUhmI&hKiQ(x8sv_;o> zI*YdEZrtD# zNR<#&-J=)$EK0H0BP#PrppRe!<&%xbRKv>f3uUVlE4*-8szr26K=>2B*_Z6_&XM89 z_3v?m$6BAy5!VvLarDCK0~pts@prFn;+?pyQqgf9MqK}xMT-JrsHfsJ(rSm7?=Ysy z`sult-g{{4NEG$)X12!jMk^3*pMHtGFrGT<<-Fqj?05~#du=k%xjR`(j-VRriVlmM zRic|bn1iX}o|;jTbP<8;TTi;Zf2!$Q?tPW|NwMZy(`Dz+t;S4D_7SCKLyIPbtg+We zjY2!my6dO7;GbL@E$U;&=ANSzI`t%#x>f6_~T{RZQe${#|2NW|9v;D<3 zi}v%LUFQ|@E~?g%e|O6SXP-DQo<6~(D$)B1CfDlhnKkx>xw4?BXD6`_`EJSHeXNXL$y=o=cqOiE5~sJ;Ec1iG-bLk zN5K1XTZmX^h4IfO(RwoY)|9k-<+L)18tucud@s-Vm+idqpj~eT#2%^9NpYuV5o^Et zrtJt^X)`bJ`gC2orSew|##>bL3C6LZqKa%aQpR2k^#PQyz!E?S5)Y3$wF{2|k76}f zr+I3C>wTicz{i>SL1vMz6yUV#*_G|Dd`Yw7H|d4SV_}DKcEbfm*7L85r&OdX7%?3w?IV_3RA3^-+U<%&``{QiRcZS%3h=esNSe$@t>h9@cdFisJILUF)cR z%e~PPXy&oC)OGWcz}Z8p%M}g!=L`?TI3~Vy@RT&h>(6GKEAE}jRgO1~bR#|=t?uo} zWnaybZF!z$WVm`ZkCu?~g5&=lo@+(Yp)Rybr1V8;gG;HE8!p#LUoP?Z#M^PF{eHc_ zVPbAEuHSi$9Tl1R$#eH4KW=r4#=@fUqGgJChI!=NWc}2g5|`1P(^STpd3XQLmOv|~ zD@jRH5BIla=uGgH_%AqT)wE6sjlIhq(N**G5?o@jwgY>%+j*#Dhxhg2SVsd9ZLA>W z*G2)ugcu|1PE-hTs>asi0mjuv2TWSl+driIOgXi^D(I5`oAqJoy%I=ajBD(8M^iU> z^3KZ8i^oL17lH6o9Vv85?^jPwvqpVNuJr7i zsx#1ZH8>~O*lQw!kIJ8G;u}zTR zv{Ww@?SnxKk_6@?FTwDm_Hgr-!uuglh8^|Z+0w#e?Ub#<-Nq7LWLu<9VYG^5$)-o9 zObi1OF*!D83GkAblm`1q%|qKGB@=zE1J(`w=I;e}t)$OM!DttNkvwx0w>rLS9%Eo6 zVOZ23xGJx~Su_TX@;TzzF@EO9@uX_pxfX37Lu|`di`f3UjXc>p>#Gt12>wX;u-D8b zC&}fGCV^cJQi17hR$b${W*%=pwvT246`X^wqG_~4*c1QQVE*Yd`L%1I0Wndyy!6I? zjb&;|*Dw39nm=P}S5=h5iVx*`fxeK;bDw<96QYenrqU(qQt-CEw)?%ft87f9I`jM5 zpX%oD;=`SdUB=0DGr>`jBb6oBJFE>`Mcx(*36s+fT@4DcJVtXYUDU$cL#A^z9Ro*dqcmX57OFy^0#IyV}H|}VM@u_sziDeDP|bOI+jA%G5|sSK;rM7Dw1?sRI1VWU<6ovC{j-c z!QJoB*n@dIpnuF2QuwsRyb`|Kt)|$`U`k+&u2QY=`g1QDm73m95I%H}N7~<~C;8ph zVzHMb^k!Q>Wm7J@xAJ$vYA8lg~#T8TTj_fuji9HSbI^&F#BhO^dDf@V=< znx5zxiJFx%uU?t_nzKmn^>8!UI0KfTaVFERP-)s^JuJVq(lhlJE;X%`JeAHE-leQ@ z7;$Rdr7Qo;)Yzv$6Zbp$9~F4vJ%%Ar{8%5ZRs|sdGZ4pcr{UW#U>VQ-J7?AHLz)vv zHO5{iM}N3ssYb9Q_9Z0l!xiEdA8U`v8AY96P9IRJo-|u_&w6X{WMa0W@oBRdw=Ue? zY6{OllJ?x&^)vs@ByU&kbWDD#i=e@;*dgI8=^RbB5ag0e=o_oK1~gs+LG9(^eCKv6xCRP^N7Osm$j6Mpwa9ale-E~W&(FC8$EhSmLYPB{G< z`@YtqdZZ>IKu$YphBa|cl@iJeXJbG2-k4YuFnQt~E1#fwHWmM5>b%yrC2nQ4X#6Us zX#VgvW0d2MF^-a*j|bzYIwSkZE3~2-?2=Jdv^nE0(JuYczHuF=^f$d9HCQt@sGn6W zi|zIZpwl}X=12Qa<-Ihw^?M*Lh`^P%SN$r5q^0n})yHqD&V8WmRr6>6ATVM5TxSZM z`LnWd-AKzPbA+3%{BzlP&fzy3qhR89GJ9>2fWTd`EWp)wV@5lUNLtWsZyQ!_ zO3_rEd98sjlEq%&qj%rgd9RuzPe_egSMIDH@dUdG@%=L-8NCb?ez855JQY}xoYtzLBw0xJ6&sw%?P9u``F|?P4=@GLpks*AO zdZqzOnIL4{kxp~`xdVpq#+%>LKd>NUYMWhmBuuPnOZ#k*s5DtGy_+cavfQft32{H> zTxVK-C-6QQKTF#1shcuMV)JMizxqf&&3xC?c_(?A?S&T-_as=o8&4+>2W)*eVWXK^ z@^c3&Z$W4uW*~Ff{AUyZK{e=4*$y`aCEp_7qcC4{nvtLOgb@1snw?fYV7r!UdzfX% zd!nh7p?9Bcpg~dfL6mA=K^ri>Kcc*$rOXK0|VJ`vB9$2c@7Wi zkA*7W?N>|gU5(S<5n%`9Le0y%WpRLdE6B7`#n#R(7Q#n@U~m z+&)EyRlWV~9t;hu{JGBTB*<#tth5s}AK3bGv3?5=_j}P_=~sEG8rU{AWY(CSZC;*B zK0iY2SZG&%DK}%*#0w9wqNbfB)3Tp;yh${C)wsIcZFdRbb1AWMA#rt}!q-!CYT&_> z2#GZ2%m}B%uGQY4u}#LrEI~WICqEW_=re7BEqF)S@=or0Vtt{BumI z3|{_u_C5TehKOfbBB@^Mm%brrxL+Q!9eCL?!*ppeU*vXi{y*N{Gpfn7U;B2(nPDt| zN)x4wl@1~(B@k2u1SCiYX@f|Y4xt!=m2Qw;Ll6i>r1us^B3(L4=u$!`p(L~f0=y?q z+4tV}{jB}0=fnGT#^tQZbzNsUj^A8xsYkxA=IHqa81jrk82`-e9RET0a1SrS z)XSKsh}{}dQ-s?rHcK(>5sxfcR<6>Cxgwy5xnbju@<{ok!ukkvv37(nb-77;Cqq+> z?isLcU_@VCDaIS+GN^bNFSS_nDt6Dpxyu9f4l}t^o;@9=mEve(KaUH+;i|^$f-)rU z1?zi#7EG$FZ8bx_;b3J{KlTb#o47VBOj%A*;c{4}{`|>Elae3HlX}^EO^J*HT&{c*J{5zCE|cCv$i$IjY~6Ec9rqvM?B{)sO+p z?Y<&}n2Vq39aC(}51y)*WOxsu zhUa=KMRT`u6*QCoqOGKr*ZSHt4j)7RTpc@8mq$F`weZErBAa-^c5tT{FT}pO4z5$7 zuFKP-g|zp)xQ8TF9nOM>*R?H9@4D|+#wG~upRdNV2wY!bR~s`B^4Rs@b2h2EleX6~ z(_MUfFK;cH=6^nj7tYlvsNd>0-~Ne#sG>rBw5yG5VV9WL#a zGn1C7VeYNWGN?)KYlG@bCQO%p*?t%Hh*Aj? znp?}X=ITlnbe(w*Mk2tL3^Qa`u^P?<`c~(n$SePYL9|OkNJha)2oExDoq#K#9=|C5 zsj&+qgi~S^$Hb&v4x_43IdfJU>Ctmt01TPyqCTdKC2eeSnG-F4f$ppY)QTQ2f{@pe zenKm)+^XT8Zj9;yFZtToX`32piSVuEF^x>MlbK%&9(I_r)1JK4h6LUhh~&FwQGz#G z8ml(DONxoHpGZyGXeOBx<&Gn;+L{!n)Efck#;bLw*{u{G9?BXl20)u9i?y7E|A9Xe z#0z+fM2}~-D1HqwQ|YLe5X|{)n*^3}w;g-=z{euyJx~sAKm9<1kif}u1WUs(8Jy)c3RFS-wl@eec4=H>7H7pD3%|$ z6Pp%T_*^s#QSIK!I{9u>Gh0V}yrDtJ|vv%s^BJR^q|gbvc`;Aox>N$PQT%^#CidvmIt z;f(VqIjTd^P~8AeG_1!!^3|oe zKZqB~wE}aA=JBNoMJ_8LO!-bRW@92xs6jOqar6k(im^(91W%07JHs_G!{#r+0_)4h zMrE*min-H5nYMh}_Ke6~`tu+88xC$3aKVJzWnnVw-MW5On{p5XY{k01s1IT4Xfz#B z-B#>LoM3@4!JoWsw1B>nTi&<;jt)kA*$f0esNZfuefl6_X@vu;FgH6;(9a{>E~gEV zDZ;wq7-oD;pN$kLR(lw)#apIdi?XIuz5LQxB4v5NZG-iJZGw$mDjTNr9(~>m+32X$ za4$2MIr~F-*&U~!sg48k=iyB|C#oJDnuM%3LuJXiHi<7AIe^`z(l+_PRfEHH*2s z7+(}YweF(3sSgyFJ(*zlv%faE8rT?w?tv}{2BUS9cRQuL0pY-^34Q8Sg*f*sD`edc z#(DS-smpoaL)}myBfes#n0b4RCZaiF-W|1n)t0&tv*7Oz`&O*yml;8A-gX|Z4hmvf z)D}yY$;tWDGiuCusI3X!b9(_|c=cJnFlA|QAVzm+UbiVR#P}ze9+0P00iOsWGRQXWc;D!_8mY1g4Z)EwX5=E-B7L8C^IQW&hE_CybXv_pIYh&O~z@?h@f>ySxJ~arm9DB== z3gj^kw34ub7tVqi@;Zq$zvuI?GyisAic+{Z$*%WRAAZ)k@#yYWtTHPr1krhoe=YEF zk74q4BzwidyfS6U^*76F-$q}mo#efzw&lWBcm|_A8)}@o*owBiC#RC1AdzjMw4I({ zamvz^vQCLP-*~Vk^05AQ6ynIU?G8Pg!9#!vup>vVMa={IpU=0$Q(M<$=eB&kjnL-) zl&0S`s%H;Wxhth!Rb&p9J~}*YEdu@=ZgbJLTc`szqP(7i%J6wu6>GOGeadEO2EN*9 z6*c74u<7lY47iP5Q2VqU-ZT%OjW3b%J&Hch!0l597f>b6yFmUZmho8P z-OYlDblW1CjPdgc9WP@xt#UGC(W)#fmsU4jC$|)9<2|=nZAW8I zl<6)!8gUTr=CmAI>XU*$!FO*)D^MuedYMKRQQ9Mp7c>q4$2fcGaS=PQ?Y3Ir=b99~ zR+j$ruF?rbmAH%hXZrH2nMNx86gh~tealNW`rb0l#_`sFS?Dc*5)0zx9>~Q{iD=|| zLbgv*K6a$UcV!o%M+U%g;Bs)HOmYKE&8M&s8Fhz}P(MA$?Mv&M6WIEY301_!X%G9a z4F597*leM~r&9b#i(iWMka7uEBhHDVH@XrqIxWN2K#PQcBSvRAl78_$lHqrHT(muV zQ-rH?eSzlK-BQ$`F&Vgf#d)$iIjnSGek%^~-h(Hb74ox*!-mO__N$b09U{*s95=6O zalz^n;i?u^j`9rtzc!@b-U3ae)htY|?~Ym8(=c6D=Pb~!|Db5avOnHNssI>}s3JRb zI&))J`VWeYIcbwVF?be?+8+sp66hOgX{T){z~<{Om5aISs(4kx+6Y`Fe$JQOJKL3V zJvlj~sdc7*P*VBRXj*zKesq3-#hEB(J=0YzFPHeVVsWC??_#BTG+9a?fLtSJycPLH|rJa7H{LtwwPYxLapN6NQ zZ-iopgt4gUHO>9?LxFxnYWm=W9ihe`T5A-n>#mJEFIwK5gQ;yfb9Ho}{H&VTfVz7I zwzRp zexh@RAJRQO+mXRlFxF_v?ZVt>NhxeKTcQqeUt5v#(+wn0MF?3u6B;U{$X?>-8U1Kv zYIZB5zK#Af&*v|uk5-RL*n(AIxmZY(m zF|B~WeHdp?_M7v4HTY4*NJu1@;{~;P#RI49#;`aiMBXS8>^jZ^zuv=>{k32sRy%OI zHOW%;67o&W^w3+MwBx`zt*q$G)yj__T&p43Z>-(USPkp9cnMfH0pltU$s5l7#yF4m zU;)efiYi9OuP-=Gspvc#uD|v#4HE-(HK1@|M3ip`RQ+3ou zxmpNiPuGje&97y4J8g3GB*)G?Xf_u68+iGhAX%3$zmh(a?N69m3qS2c?a_4~IbEBS zlGPx48bWTvA7~B`|G-B=?TpNEz8bP!PenK_-_%;s&4g>*?zF3mZNO7HD^Q|VM-(bxN64#xcx&iYX4vb@6|>W;O9~vF=hutz zcFXJ*^4de11nuth%tOZLPd-DO5zJd~>S;%@w$R+5tA@WWfa+1g#*DE zxt>c{Z}rig#Nc99d$fPx9;{>PN>d24g)!oAj1MuQnO(`!*?t2p9XbMFhRkW8u!!=3 zTB|qWXtsmBLbHrf74CBTt;hb$UlQ`vXH=zcG0c|YySSQVgw_m2abLoUMy7HsC{xX7 zNM()#o9aNS!;HiHvk58#L;6%ic}iJFD^zR7jw|T+E3-i8)9YL|iQ$r%%z@m#eCoG0 ze%x-Dtv33Wr``SRcSm>oJ(5_lJv*fN0+7l$d!@)1>WF-M~b;#BY zP5~5g7RbrsDfm}Kj~LB)@I-+qNdezMO7_liz3u|WeDQjJc+bGLWq@jC(AK7{@e?rY zK>788z^l&d4R}}@t=^Y#dY{_Bp-EdD>l<%M!rb%mT3I{Yl_;AG<0Zi83psD_EK1|< zS!>Mv83(m%Q*Gdwv+26NU`tVXe#Fdl(E`hwd$?78oB3`i)Y@f#huFp;RHO z<@2a@y7_&S>yX90y!z(sJ>C(VTGw65OjJ;~Gv4m}gBc^sY%tk4rGA7SZRO#BIEH}p9vSO z8Pz=vza$~5`b7Yk_z&Ol3+k4!L|(AmJ1O46gXQUb0gzh7pH05MF?}469{{2ieaHq| zTT5=m1288Y_fiUe|2s#uRBYd$QG$XrnM%%}dx_e^gm|=L|Fv~%$|gBMYHs_E<@i+T>oHkU5y2jTB_MzZvU0tf2oTTERA;91mJh7 zn2=EY={QBKgq;>Q7dM>t$3f=Pss{<(yu@FdF|BI+^}zb?-P48jsh5xp(E{_En5%EN zVKb^M@BF5%0j*??`*AT%>l-ND$zWe+E9LA#t0s|9?N+4sf-NbA5*({aci5MlsS!U` zoLwK5=O&>BN>$2;Nk3bwv0&u}uJ+~OpXM?gp9?nhJ^CCOswH0u{{HhS-(^XaX=^Kj z`wPHGD*R5En*aWQ$;BgQ;RI`ettaVVGEi@#)n4kxcKeZYQix}3y|Tg`vO>Y=SnE1_ z#;@=J*{SOkN*n+o5OuUiX8;Ql3Ld18s{lNhw>J7xE1LIwyxQ0yE+Ab0_O9vIV%MO7 zcj)u;w(r)kJTC7&ch+FZH*7@T@Jc3vX`x!!;k-1foNrAghj4-4gL1@(^AIf*E(vgBq1HZt^GwkA6-;==oBZDg^KM6P*^lY+h_yxu z+L7;GI$m@>=d2MhAT#i=%R_RG7Yy}M{=#!*w~NmXW${efNP^=o-!A|;{fAVg^1^uz zY4vmf=$=?Ax^{@j>H-Y82;rwm0qvoAegi{!#FVau&wUNHKFzY9rzIj=y}kpX9v}_W zyigQ^mxX=@N&)2lJ=Ji;{n`H&)c!xAS^u_RUOvylS?mdB^DNCg0S88|)nNKZDe8j3 zp-A&__HV}i-vQx28BM11|4%gVkTMk5IGx!y8oP2rGlTVtFtwfQ^T{$!cbI&fqpQxG zAOGJeVJZ07Sq*oBRjbruVpxeq*tl^=iR<^YQsSczAZ&3#(;dwM@fR`-b4N2nD)b|q zq{;Km1YOk2F!%e1g#Uj-1G|8k{2Y&R`?7Zqu8;{ngeId3Y4S<_!ARiWDz&Y#@#kps zXjW-9_gHx*wEizt-ysRDcNjSe%{3-H>;zdE`azm@wgT+9)p_0S8 z;Z)r*!Io0?l&})rumZrt{)^`>swoL>H{$@j*yP6r+f`v43{; zMzE`^@}gF*MU8AFv|1&D91%6a&0q|ylSEZohaDl5CemWX8TfN;xZY8aX0xRL6koQs z&T+ufYWxtmbu)hU&+7}Grt$GoOQHDFHnO(gB-v+@>lYWe;TtbR|8K%4A=h(TjNcyS zcG|w918)imQ?x%L0wsAofcG^;0cn1RrJGO!_V}H{gqbB@@WQ?a4`++Hl|||`c@P+A zss{f`)7?0|QTBf!)$_j={j2^BXl^$B2rXEUlX)$NycLd`Vnz|QWSs;{~kz+FfBRqs}>;IGaC=XA=Tk*Ga&2n{aJ#?3^E_N zAY2Fza4nXpBUAv?HyQB(g586y1;iA=I%VsfkOIPDJl;IPe?3?Q5L2AJ7IXM$r#AtW z@$U~8A2a?_oVBu0d>??yc~Zh8TXj*2;GXBHRi)Ou=Z# zq1YemNzR1;7ao39PnPogX>Vhh zB>m`j?GA0Zy9Sbc;k8TtTMo&J4nOVn?}#Y6Q>S zD@oH!ZmhxRu+k?Fult^Z z0PRiFNp35Cx|Scll6@9}t!}}ykoY)fz%8^+^iThzn~(=6?_~Gb+Q2VyX-Ht?0qj)T zZ{zoOi8EhjP#-N5q_lgh#-Z4to*U^p$~*nb2#WjaBZ7&vr$WQlV&`DVI8$uQ#r^X? zGeab2y2qIz0m%K^j9SdQsHQ-0P`D7p8-wThzuj^lV1m%rqwzYUK9d=T>}A?y08G<1 zg7SE(yiXc_&(*(3OVgiG(waL}*3(OP7mzEs`RpCLXFZm{qw@+V5@l{JzB_xXf!d8= zg2(J1>ziB{U1TyX*)+`EPyK3vnKS@a9YiOCr5?Fio`itiADTYvuE8 z=*usEI{v6u?>8vQ2252e>)!Z0pxqa8yJ6M;aPT)z17rHc;0oSnwX=92zjb?KmQB02 zs44I)-0Lu}@aGX0NFkBf_=zzD%J`RK_xZ`q7rCxfj>hZyG#-#G{WcT=8&r7BV*IAoq-SY~szpj7BD8;iG@ zF;5L+M_P%3udF~CHHR|{$U{d~PMn3WxDe^fhN4 zjg9em)e+v@`muQC?)UZN-x5N47?4T~MrXgV#Kx^(4Lbv_sHEJBN}=$AByF)2nW$#? zSDKX<@dd479xF>Op5gYcZ?2YKOw2sY(T0@(&u&>C9Q0KIT6d=hx-PvZtl>jmHcrTW zFB*GM9i1s#pd$_(%w$;-KgdoZ-XvJKy-Y*Y=N|Nc;8Ql2?G-HBm}xbrG>K< z9WKLvT`lmaamzmsRXAXjTll}b0PH@^U#EIkrAtgqTjQ*?!>#!lYwf8g0vjlY0{Di?w}1pd6+o~#}r+tK;~mE7HmKne z{YwDgo=|++i(5`{m>Nr(COO~1|H7OO)b33W4R_+3>m9hacTSMHGGM%r5X*ti>BgS$ zL7chiL)pNaM2q{G$0;`*CDR~Je^ER@C?_kp^DGl;qo9ZbMS2CT+*4qr&NF4cVcPjS z1Pm@6lg0R%mTyoc-9`*9jIRqx%clDde``OC?Q`fY*G-+c@jUT6`$@MwAOn{|N zt!YZ@by;_as}bc7kO~L#5fEfgG411F4=z;3K7#!YWH{3>#n%M0ur6>!0AXy=Xn(gD z-_fsBkB!hvJ9;Lyw9T;Vh=mRDow@bMyyt?Yh&nc|5wJDIr};7@<$hG$r)5(2V5{a_ za&FN*0(EBtN?Z$^=`j&n@hi&)Y6^P{B|5nd@-k9?`}69@G1)9R+%YWuVU1;RKc^; ziCq`J3PkEap++cUGU#9!xW1GM-&hORvBVMN8lR#F4jF)?Cxv-RwB0d779?)15bj`* z{X$e^kHUI60LI9>J4xzGb>WaqXY9h+dk z9#oMr6Lx0V^!t&R3mo2zYAHgWO4&U>V+qVbybmTzSRu)EAO6lNpABrT?$r8#X8=Op z3ZTi0AeM=`P7YDZS6d5bVWRcyZ7-arkRGW`MRjsD7Y+FkPV)y_z7@QOeK~5VvAu?A z?Dv~?&RT!fIf9!Ef+AL(DXZEY?{Z|75e=^z@7s}Qvv{z;IXlH-e-H5U@#k(L4EN=_ zBy!h&y|i};+D$T-*E6JAy+7kp7ZnK3Xi3U%Ec`+(0*ETfiZ-I=6892}NM`L?Y=ygV z7VP}1dp@JR`^!!XFbBgBtDIYaV*n?te0r?^;#&qC!;WFvjXI!zaASqM3fyz8aslq5 zSeB_xO_UXBi-?f>R*uMgy$+A;^K8l|pFxIv1Rh+!X4CT?=&mSQzIM`%pwr4Dvy(of z3J3&Rg!~QaVVQ@1AU6-^x4(It!B#2wi$X#T+B0lUoA*Ldgx}nPfCD~y!AolQ@_4tR z)+Lo;Vk23`Z`oj^&MFk~$WY~@31ue7emP?SU^fzNMzU(miz-#rZe0T%VRQM0V1MMn z6-Dvm6T#D@Nu2Gw`WK{*=9u!wbH0vWXK%=zaRdL0m-I~#7M#||xM;Pvz=FPI$LfNG zyw20Nh*dQ;5{oq&UfbQ+p`3sJZT;7B5jagFxh%M9py=q+&gV8+g84)1cPWO21Uc{D zMFNB;3O#o#%bk~X=^DAnW*D+Xh+aa=vjR*3COUHE9pnmE-W~R-rHosVypqQID$l~V z<8Npx;#mU4s$Vq@XK;%pL*4+*VxVAJbfm-#KLv+HWSLLCvTc z$m`25YNOasksZ9`lwJzcTMIe*3%i_%U!V$W48q=dN`Q*TAQ&X3gIjFpU)^kZ^VkY! zk*YitCf+yaEwZqD)3v?lWuy3FaSQ_JfpirklWZl&-5-|6YM;Br&JCdRo6CJjhCBBd z{`953k^o4p?>>*g#B4v}O|}-;d}*ZJ>9Ruo*pw@{x>%1g@!pEkJMU`?*k}JkH3B&F zZ}O&=SfBTi1^!A4gdD-nBGM(RI%?RJ8Ps$0ZQ#V7FvH8Vx^p!Q{XW{OL!lxVN!#(H zH>vEhPGZN;BV(+!hgGJ&I#}n0(xgVbEeKY@2cJpL^G5B^^V7pG^>w0!EECTvm5wMO zUVn}rjv;bD6jo-@N*9>U?U%rKNBRNUnQO)%%o&6)6vVsUYy6D9`Mhv8OXo}6ShY*@ z`!fe=DM(e>tndxZPR=fey^dymMi z);Ij6Y(3z2ZT_Bu8vWqzmC}0d%1{|fr=_nz+Gg;GpZ#@A(Yp5#D%KAHG2lqctoPiV zo$2=@ObOV>k;2c29d`#AD1(g4lWkCynV`^%LSa+e;C>*I)Vg2@!2jwel?tB{dqltK z4Ew2U)o|vEgM_%b<(ENc$ z=Ku_{t6?rMZz0Yp*CJzu1PiAP;f7tf(@2Ajm_f+(RG%r)fPsSidU?CgA@B6P)MJ;H zRHD|ZrF`btDN8d_uO9Zsy}1AW)MUctFo{4>oI>EHYj|$7gr85hfMDapySpF`HG`5T zkDZ=W3fwyB7pFDKI+?RqSEWnejJ_vVct#y2596=cdtlL3hG@T2>!*S+vms372eYgU zs~ePF26vYK%E-4A7$5m&_yOdL#ZRz~cSAI1g0?fk9O>9J&dJ7rt`}`4kZdaw7^?HI z?s0Z~z!Lhan8S7umfHL)+$gTCBDGA~bNZe?5zFPIK=xV~wD5DEj`lLSy>o15XI-1f zQKY=Pea34r)^nRlHoLPgsmrNT`M)Mo& zN~G7bG5S}Epat-+o6$UrLv=az9s+PepBh@853oY{UxRt;{#LLa@CWmX#~`QjuT{UI zoGSC#yW@vt;j-d`tFr8ktXH$Jdwf1PM0aKLbvuL&%xC!>p!hcAXX+YAFstX&;?r;)Mt zhPIzw?mVt5+Nm~1d$Lkb*g5Qz^Qeuita4Z6xV=b@KZsdgx3rj>EL>)aeR`WcFy}YV_b&0F z+nVp52RwZmgeFHkUZfAOdZcnIq+=M{rU@r9Yjp40ydEBGbd~VS3p{`}%xjbg?qr;* z!@~xyYURpmGp=Ob{I@QJifiOGIrl3IY72+pjneuEZYW4YDzejE4P>T?=*;?9Wh#Pi zU&_-BgPHe7(dx_bF;cMQIO~&jBIIIxAWS0pMjy8~(D;Y3Wlcr_v*A2@NV+6I{b(Ki zUHS2C`KI)*Ryf@d*UWu#3@X;kJ{a-*;sid%k08Y9I*>z(qz3pOOIS0IU&+1XnHd5+ z$s*I5yE|b;y5m*WY-mN~GZ2G122jg_POh#vWIj}++uKlRd8E_=*?kuN=x+u1<&G?Q z?OBrw;6*V5{SWwFFkF^o09s)=KU?_4Yo`C0Uj=yK_U&vwn&`kI`-cOT92P#fAIe6H zlrGXB*4k8u?|f$&+}G=yRj`D0k8H_H5JJ@9~ zV;%;0_}GW**rklS>z3EXtVorD1C1=)g04B!nj=MAp6V#TUrI-H{%j&`Gi~hW^bA6F zGuhA5Q==c?gF$FFz<*EFm83gRF$ zwzoe>^Eh=3h!3Q4@2=@YE0V{S+_~MQTQdMs_{3qGnk@-%6_qplQgr|(Eq81;tF`zI zngdo*kN%ikCsO1>jU5J?$EF&-Dx<`)^hdYW25#+M_?#Bljjxnj51jMgUcR}Z8a`L< zxh^lZ#xv3f0=k>JXRSc*cRkr zmgW=G%|Co+ypeoyHJsGmm6-RTepmMdKoGXPH`Seq)6T2#OBV;9$zp^fTwY7;w% z949L16L{e_88_7?_AjgD+NEU!5$-KMLI@FZx$#E_9{61=oL($!^s8u8@I5$i@vrcY zstkP^?ZR}EcBQlX@H?IP-WsAt06Ds!qg;3ML2%`&k>$C4=|E^thZHj~H_f3HizYfy zX8=>_#h``v>uRtBI|67{6VFaP(_GuAP!_CYyE#PjqfBZc-Zb|#Gbt|NyFv0)EEo+1 z>l@lQ)*buX`eDjEfwLQZfwdgW0&0NV9C*4~FJ^gT&a~hhbereK6Z;-6j1RW7i3c<< zS>;#pN{8hE{z1c?AI%mXu?iD|LEC&MPk-LSOALt7Z4>KNovCPW}S4 zKaubJ*{h;r5VET}q3h5Ta(nPrwHR1Yf+bcbs_R?u-RSB2Bb6&M{&fbLbUU~Vg`Or? zD&?U`F=vL5wEF~jA@_{LlBLAp1osv+86RK*

    l|E5vwp*<5x3GYx+kcx8YA9-Q5AdIT zrLl&gfrSq%Uu}^I7i&udClB@3U$2q%>pD}DnIVjfy9=*pHs}Jp^V`!sxGnyA<(%!p z9EmzOhz^1+5h!G{Gwt-|2*CEV;bS)so5!ZA0ySvw!~xznBE3XDJynaD#jGPZSsG7C zS@?!wc8tA;@ZAoJ{dt*)ch+BHDbz4M0MD0Av8+y9EILkOj=ZnEnner$Ke^}T?* zm;fR&Br|ERF#O=?HvGk)^x}Bg7cF!vV@?BzQ8(QoFf!+b&ex{<}T@-pwZz zx=Y_ZNS@p2A5`vW)V*IY0IL=KYcK9}RW=}qs)!C#WWTYY>632N3N+h`GypV9HdSsxq zQlB9j{>%2RO8gv(Kj0oRj2p?*zqS8JfiI8XR+Y$Ep*?t^PcDa@Zv9jJoil70 z#Xq!}YsC0jJB$1cl`dAAv43lyQS0oH^l0ghLnK4}>g&Va547^;{w8um_buHK4T4ho ziD+0RlJ{bx_)2jMd`>oC{RGxajm*5o-Y{KtgHCSm#E?)1&;9rxsvK~^K{!^UIE zDr08oVkAU{74kngsGCr6Lm_+`sAQYA7lH#qc+kgDntb+q-wUvBLED_(xZzQ2@zdA%;9;e@xga$Wg4q>1M<_C?DDv%f zclkKIX4RoEEA9FyK}zQK{HGOfeI51&$6$WmIvb*bzZ$z1 z-|;aKcxew`I{4_~l_sBABGXennH05~r#(+}^G;l4eK|W?4saMv;&iJsSg>A5KinQQ zbKLR2v^Y|u$UMK9$@2hM?YDJfXIYN^wo365Nm!cm~>RniCoD;{;bapFV)r7+l_?AR%zD&0FA?GbxUhw z`h>)TfvZIWY0l>rwa?~N8;XWgfZRyth8MEi4!kP4L|is8S6a9$z_Prqz!4t4*1X|K z<@^Agqb!QGYG1_}O3iw)p4~s)cEI9%^DoAA9y~#AF&BRf_b3>z-JUFC6I=f#j8%Hh z)aHv7iP{_^ZC6SI|Gn&PUT9WU!1>p8uU1p7NQSqCosDlMOgIkT+2?*}1a?>9&*|v% z@dHe&I5DQ!ycxCLBs|0(lx@s%+#G*psZE|#C1Meph6+Yx_O`NbbN5qzE9xgodBJ!H z>Kr3_CE{3g_JyN6fD(4t+3D;NB+g#wfCdKnAICsNaBw^mYx>v;plr#unlK2SP&QOx zm#l)^*S}4TKZ<9rCUI(=7vneWR{mo|Wk7Ig(1o7$K~w$d{HMYjgZaBg8SGH;V6+5u z;WyXj_v}PDdatb?gi~oMLp#!S9`M7lp76%{WV?eo8&F0Rxo}$N?H8-y6I8%d5l`Xm z=07K2dlAj*nmIPBe4VjuiDW#)u}+r8Aw6UaLLWT=T@{*ALJNNwf>jrd*pR~<+xQ4^ zwqKo#E9DstLU)vEN>{sTPq*T!Y>Hd1rfS1NtwP%jb-&HSE*|h>@wZ_jdnUOR5$S?B z3Nxfiqs(DBOa+(~wp33uX*+o=M)4{pHV&P3w>{%jS{B|c8g%(7;(kD!I~PEKIKiM3o5Y8Q;jYUT%x#{>b^)l47; z>6GgUEsv?6Q?k9>u-0^91I$?^jn@q?d}q|%Xe&(_FKB!)CI|6qd00IVY)K4_IQq&+#1_Y$(ulyoW9 zZ!0(6IyMOr(c#fQTjSQ=%G#zAtkhTpUA@!FN={E*SC5TB2I<21ved2B+FoYSUx)Zf z<@8oGiB5}v3H2BuOEbSr6{&}!xPbkLHAmI!=Jz$DnS`rczI4c0v*J+PQ}nwnew^}Qm5P7Zw$t|h=tiYr!5hl}6BLITD!e^-D~h z$}i~#I(#-ej1At+JvwCZvW66ft2bkKsr<==zTBdlBrXY~al)>J1!DFpTs$?y{n9V( z+fVN^&iQ_7SMYp*lCLx^p{=!>pEuN3dZWRp^$nToA8j;Z-I*GdAc8=a;3k|OCs4Gw zFtE<_p8bkk8u;ViWZ z%QkvsQY9Mb`zbEd*5Vv|B3UWTCgpww^PH=Vmy}w!n~RDP+|KgP9t`K8=ZOgxu}VX) zBpW+KylEW+9ZM>)G4AmoS#Wi)+lW1YGMqCVfXrB#M2bz|BpZe^UL!t|z$_%JlmH8u zfV`ME(;~g-Hh8=BCi&CS-yORr|4fioXa~qE$T{>l?yRiCHYjSV{c|=_D#t48rycyh zlqnpDE)N%n;OO;I6)wYO7Fq-K?M@k9m2W4jknJbst8KU&M(4D4$T3^79=`d4os8pl z??u~|0#mds5hKqh&a95!uea>v)LK~AmhaEto>|CQ#l;%!MDR;K*f6CyiE8BtM@63y zu-}^PqjGeA6*FzycACg4VQkrb!+%&fUir zq9MASGM|b}84QNTCCll3z3rlfwzMuPrGycnZKf#i0cXcKb4 zGQt57U|mUH#qHdg_@%;i_ZRx29r4SL8uGQlziiQ8gU*=>g7#;?E0aQD6rX*MdGUj$>s}86 zYjsmEX-Z=94hzP<7MX~5>f2m1Pg!&obzgSs3W%ADDjanfu|IX}xp#SqTf- zgygWu1MBV8c~1UZve6-K#L}9>qoz@6@n^r}ga@eV9Q1MX^{A-(><+xECOs}xU%G|T zgM68kz6c6_zC(o~=VU}~b5~>Rc8y7uKi>Lj;T$sYj|~bQZKYP7e;M5&o|aLeX{*uN zuz3|yBuR<6ROh{XH{2GMzGCSUCvojQx0L?8I%DTmBkhMD6c~tuO}p403AbN;h&jAm z6XbgZrVY1)eLlp9>lG1dqGRrtyiLZKC;Q(Sx=cH0KB(6ZJ zPLUp9X(ZtFzOqKf8wGDI&@W-p3csbssbmJRoWfY2SdeY37pgD)eT$v`3VO3rr!36QBp6VHHzYQIM#iDynW+i{7aVn6_s1)OW4vhOJAvr2O<7#z7 zpL4`I?fRP8M(-X2Wu!W<#PBS^toOT>sv_Y9=C|^>?!N;m%lQ5E1G}uQuztOL#ityR|Bt#`_q;Gk8cT1;;zcFfiVcoi?=y9lJj9@FH zLm(%EreMzQTIMu%ov8Y>(lz}?C)YsBjn0M7l$TyYd!o$z*Kb*LNqNvt)qae; z3+M=t_U!1opSf38*$?9UGN=d8e30C>2!;cVA43p@y0~Z5~aSJjIVM zIxPA9hI?iuuvkdQ&14aXb0Ma^!;c#F);13;eBOUURp1>coXf!KI2(HqCcl%RMy;ci4iA0R^iZ$7%6j* zGw)%;#JCM@jA=rd@8m^!mp5#{NmL$*=nxD`e{`ie=$}AgGYQ8pI z-I!c}5blCyzO1|18GPi!>6Otd47kvybli!YnwKzX@`p#Y7O7fxsO20jr-Xq;n{fM{ zugv6#_-I>xQt~-*;Cv5=zBheVUgU%D5t!$L-quKY95yK zThCz0eSbGA0@(M@Mr%)1UVJgz8@D(_mY+8*73~Q^F7JOHm?so^qk4FJLf1}kFjW;s zSD69?ZN1!|BI=i3+6abKgjILG`DpF}`nmt?(+!mSjzD>HVahz+hB!xx9fhzbWGFGb zUveH%POvwMrCxGXpA&GPDF5iz0vr67YedU~Fy)gFnNs?P=L>`LUlQgAQ2c!>o8iPO zRD+b^FU+>=l^;0d^hWPD27)YrM(Ar*vPdPcRlx$op0(Mv>|foL)(s*r>XWQ#0&R;X4#B2on_;Jk z=J&Eew}l3j9@aBAbzo@+OS+{efWiVA>Or`z)}eXc8)EfRP)156cJ^9A+2qWBhE#`n z4A(*3Vxnw?E6}l~>7=wc?bdTL^^I;5_do&HwSdur6Ae4maB6*}LAY&iMXF~M{(wIo z_tj!RJ{AN6ymaR~x`&k&!xdM-hkh|NNxx zaL)9Co?muPTAp!^eNWJp!POjB;)Q7DG(Qa}Cz_Q?Y()hg*l<0B`dlXp@Mj5&cffAr zwn6Um8jSau+%dtE?``%ntT*lvCTq@!1JQm#_DK4WqL>`I|d;SOa z>ncAakUqBSsNv2|UFG{H64JzdI0xmAmjJSnx&0mL|DxSo8|S0Sms)SPcjn<`UWYomPK*J#r+TN&W6^{nrVzM~~brGKYnedf2;@ul9T$E(^G1lY_xh^HrLh zyK@0g_S2s{nasZlq6Hu|Aq1MQPDpO#&*PK_PqE9kUaM zZQ@IZ`Nv&QAv<5p#+>l`jqgJlO8+G?@n`z65(I?~Npz8M8vFD;p~I0fe>J54|1yf< zui(-TfQ4n#2g7-cRVBa}1;E1cfI9m>Tha-#E1)&~vq)O@qt9R-Lmtn6m8EMnCtf;U zlJi@uDHu}n|FQQTP*G;-zPGkn5JW&gC{TjrBod3Dk`xdmXRru@h#;xRppsJ|86*ml zl^`NPf>J<{vr-C(F6D+TCY*X8QD*GxuBfo9?wb2ozQO-FrXz|Fh)$?@sJN zIEi=cNblThl|mQv$R`1@2(X9<;SeyUE*MS|^qteO6f=_d?h*5g-!!>u0(8vp=I6k? z1ZgH2IN)bw|ErD!X7ZmP6ux)MLQ?TRpafv-5FKp{8kO1VXykcOZy_ypFbU+S8l0%2 zHv*>1iGyrzHZABw6F}!lvR=G+9>uQN^_2f!R!Yi4wpzolezqq)VrJN?ST)oq~n+iZ#9RT~89#Qicff@fn zhx!{-(f~9v07h5q^=&rUhk1ZX(|!XDu>d8q|1i0+Dxiiy;~>%`^#y6t5MKgX_jIym zBY+gKhQ`#+Jkl+(>Rg`cp7PwC+r8Wb835ga96C@yz?<=L}bEHQv>a~pXd!ROYfaK z+Y2>;Lr4^$V1&Ww(|XzruRt<=O-hyH#RngJ?Ew$VZ?Ffv#);4cO&rRBV1q__B&RFdnh*+NQlA}p1;{1 zvxyzgyZ#u@q(@#-4JH;zs-V@+hkzW==okMy7!%u@2TOaKE3i%eH$&FoxrL;k--1V|hWsfRHYpBt5fZ0=K-WRe{_Yn)CadlE$A1Kz9+fS9#6;}yc< zWf6Sj6PSm43`Xu=()3OS!ca>46GD58qP+>B>uOG=Ly!Dq6S7q^yF9n^ch$e7u1t9D zOe{Argm!GM%#0b%{%%_HPjiU=c7E&k@hxz_;#2l+rAlb-j-`eY`5HXXOb|xdqyo;* zzR(v9Epl^hPU&X6K-5IkysDqjT*VTR`$8SX^7h&wL&KrOxvDKx)y6orMQe4~!S@HwFRH8S4?1F&RhMFllaU{JvrJL=5u_!V(@XaeuI^Q8Oc zL=+1yJ^&`5K|=U1z_J39l+m`hy%omM8B-{?IGwG>1=l>>0Abg+xN zXY#8Rt*bUN6u<>G39#AEtOm+2G#r9ey?Oz#kIVgbVEo(OsbwQVVuN&(dv~n5fxUA* zTib1xh)7958sa_GXo4pNkb4`=HsCHN0U8HacfyH^eqI@+3KFp2m&C^edj3k@xN)Mv3-NCi*1n*4e z?*yLXw~(S1w2D+}H1ZsRXfyvqrcWt3!JhaD7_9k88Oku?2;>0_H5b-ZRxo6hz>=2g;?xFYBwnX^iZsQ0hR23}O6m;EkB|ls#0S0POqlW+9 z$6GcaJ$&`h|2-rS<1cQ_>IMe1->`*V02vBq@K-W{fmnth;ZHOtTVi?9Yuq+Ar{D;n zFJX9fHjptG4X|4sklp@7bJ2}l2zOj_Ab)S58T_w0IAo!3MR$g4XQ268dq}`<}>r>>316S)NkZhmQO&r%5=Xg!>quoE;=qwtHR}(wNA@UYzgcAyb`6R109a~gj5kB1VM&O0)PQBsh z+O}09pE91iMxBp89DbQac5!|pS(=BgZ51ET=(-#xzqZzvnh%_JLL+#PUL_i zmP*Ws5{7-PRtmfv{-cIdCuZ``J7%A-*SZd7hymd);)5>4DFZXb0Erni0{D;sc1OQA zt=bp@CMIk48I9aSEVs<^ zCZT;*H_5?o;Mhtr$7eULaE{GoD!+Osa8H%&xECBp2ov$nP@+{T%2dh_UNG@B%;-;3 zIF%gd7;)DjcB(j8+cAP_jfZbe`Hs5T>UI;(H5}MKBLL|Vr53P!Vm1lVA@ie8fgS|f z_f$G-M19-<*+m&^8-=9o+~XzQ0i8Ga0~+DQBtt>v{+;p&<3$Diy3wcQ{*A0_YpInd}CC}XV$xoM}+w##zy9>WHvu-!YGzpbAhPV1!X1DQ*=@wh21&_GA z@oPa%Cme55jnrUXfv=F_IVTVlTB#3LCX+3j+A- z(s;ttk)0dk2_3dw%$Y4WlM!e1u@TvTt>mTZ%b7{B;QVnUepLWIS29m}qEzw71J ztGF*W!A)QHQY+<44Z1Bs*lzTt7W^X@8P_G}=8#5cmz>a~+OFf>Xd;WqUp`#c9MGtq zK?$I>>p{l$6tZiO34j>4v2Lcd75V|ucL(lH{Mcc3F0pa*Y0@PpALSqeFw@neSD5GB7EE|C&XCg#^{3yU@+Bxctc*K}=J6wePTNdpz6XQ^Biv!Pe!%5o<_boH0O-xa z6&tXiNeS5^Rw9CB3d}zN!hP5TmhgAY2|wU_|Hv!?g|q*~I4l|s{Enk5G=%WKWK%&L zO!$4~RRJ(b>#P89u>>LtGAlr&yZ9&Rr2tM>Nyc7R+UA?6!&VPc70dfF*+LonW`9q? zZC{sXFUkj{s%Z~sW)(9Ef_@Pg(yf1Nfr8n<6YNBA7{u3q*9Q;QCgd3i=52-}jR@g# z!$4&M5@3L2H-JlVfCoqUo%Z?9ysE#Q2-FCa2BcOXDl~>w^Opv=T(!WJOE?+sIz?W< zVNE!lj^!KAD(g*;9nl0pRxE4nqjVulUJU{eAkF+n4nYNEJD@21N9x81pex4#^^cz% z=m!j9{a~&78qjBhgxrIxjrzwfHW*$6d&=<>p2>|I6uRyG0(#y6zG^ohOg^dh&K+Kj z0lxp9e#pE!#AH5cPmy^P5KLQ!0jSo--tj|5_20Bd9RT>WLNb$T6%K}`2QBXa3lo}~ z-)Ccfjn#w;Tkz(6d;BXD6KEd9^BfUY0178SNbxO+>8+5$^YDMfTOA1mqjvA9e%(jF zUJe+dAWn2k5UC8r{{8P96>_-M&sOw9e@XQPIM08Y0r@}36%;P0teXFn-D&)@?$y9C zPjDX?ul*)n1Mqf0!XrTifUp4??NpO^@^-{3kB#hzyG4k_!GzZS8q%Zh5(}j;D3KA zmbJx#?U#}SfS!LPZS~JmxFqc5qIkX+$hRvMY{Ajlom z9t0tck>Ek_{D3-(#z~v!e*rQBQbqe$0OY5Sa4X*5fPlK}p-`3sv_FPj0S2e2y!j^Z zR8b-*^mhU?Z8r$9V*$K*K!0Jgd9>hH3iEH%mQ8@{+6e_Wl{ZHn&_n$P zk`rSEUYJBL7a(fHTh<)1?=1e}2N90>A+jx`=>y<;3pW2MxvGD3EB&k7#{FW(-rzWd z6sCDYvvn5ATx$i|^nb6~mBkwYt9XtWp5UtW`;m-aZk($ z9evQchc~sQkcGTufYjO0?705A&H?iLKVnB6+QV6c@=IYb)H4NY55gdoxG(BeVABsozG5{+!JU@|9$3gDYx4Jij{kLmvi~o;gMUu!4_vkDrOm*ySNz885&tjj3%p-q z$~8;Yx`cNs9B1A@qdK56eK;Cu_PI6{W}gmnItkF~Gp5)ONcx0ED^U1?T%lQuvRyt< z<;y?a2lB}NhvaRrP|;48_ai}J{6ixSsGi844vq?>LHG0A?+b3++{*w||B>Xz54E=q z`8~PbNg~qh`#`5Jql`TqN{Q5c;|BKEJ0G$sxs-m|cygebc?u7TJavYTW``$db8dS2 zI6#&A_lSc(n^PdO#@gTks?m`{v5zpfg6}QnWSRj{x>qdkdGnFBJw|$cph#2qs7{L& z69!dk1Q91~VVW{2^~!V;*Pllaj8Ug;cI);(22sMG=0EeNbzHH{+zOTr5zC`Y-c zcz#MLJk%}xwP7KX(vS1IUmR^j<0vc;37wF?rx0jW_v)v>XB8SXQou8t^9{jVZ;0pz z_0IGkeTRO+vw_exMjQGEYO-b-$9)LQ)lbS~;ZeSW|53^);X z%RpOwL{3oLM@S{`!!;VtIxA2&-BkRyD!qcV-M>%i6)K5;->GbWUFr4zjnGx|CGo#C zKl_*D#%l`FYX3<|2Jt-t2jLSaYZ1YrOol2{xu6D3jeB|f6RMDLyJ!OSRmgJJ$?@ia z$;Ig3>JOn$2@*hVDB&HVrJ(=JCfupoe4A;4^8i`0&X~}MdlDcm|pp-#| zA%tgKYXO87X;H7Xfk;T-y%6xRDdj-7T<j=8s0>q1w+0 zHjpgk0MVMNFc@({rPH|j!Ya=Pow1~GB&-t}CszXU*I7_fI8lX0D>%xQhP44S@sfa) z(UTEQ0AYD^))=LNGQA4gc7E-5OMD2vuMv_!FD#^VZ3YFmy$aCJ8io2-a(IpU+Dss< z9aMzDXKE=$7yfXHKy%_r8Yj?10lcvR{k8XoQ2W|XJ=%ZJZv~RO2Pl!jd!Pp>D^3X4 z0r3#Xv;3is{a#WCsz`#vD_$pL`TbZIl8ux$gG_kuRDqo!DBjia(;|O`C`6+bp+a`` z@5)*KzTAiw5xmssSPz)Oz(Rf`*bXBgkNan%zKaqPhD315qeLk<(s*8+)}B+o41sl0 zj~inJR2fnUG=-{_C6soG$s*EevY{Cy3^E;o^w7*!~_2s#0S=xHplK=pf1Uiq(; znyZH!4=GlAY>z&8i~ObofG}T__4E{)W4JS)c^&JREhd<3t2=}$aq~^&fuj2Jj?!o9 z5#Xr(>#L7*HG87n$P42+cOx`shd(m=!)N|j(=63OUbvQnz66$!>ef1{)sjOxnPDM|HrsiWjiThRI3dq za}I;tD?#Ssgd7x0(+A=EH_oUBfG<;Vn&m=Ym>|570aS8xBaCiXI7r<vekKCcEnd}B5gU`v1)>huA_ z&2s0ZJK8Ai98wwL%nv~s-KY;s=5w3U^g*23Dv77~TU8`Ig6^cTHdlNyX||QuST`$T zWglriE0{~D4Qth?esQ8fNB-jxvv|&#%1>1nOa#uoVikZdTN1Ukar#=GO4jfD<<&sK zfD2OV6`z3XGH$WaDjCOXW_{VUwh#1OCTisA-5|ZF@Wdw;$Zj}%%r~S{g{0Xx>&Kd7 z#&S2^qI3quE7PkrIAZ1cG+Q&pX7G5>_tnS^EF?+N$raqXs+zS`?E|$GOwg9slO{_%63P%jwFCCf=gUte zJgX*7Xk|R$%?r{LJy<%}Uuxrpg268m6HN>fyB&ErwMOvxJh9^X+EgT~>htQ4FLlk9 zqp5ec-IvC1PB^-K1D%ebnXQtMfx+vI^&l6wm-MuffF~hfLphgGB6$X$ zap}c4eq+gg<|F5XBmBV1u__C{?P9wL#gVyFhp*E1$GWB8!JuIFt2pg)_pLWe@T%2! z01tW~#h@nNg;vz5gGGap7oC0=hb>&@-d*Hgmi1hgUH05*-wjg=SEgeK?Ae{~mRV|j8L+cv6Gpe-1cnOD}sou%0$cJfu1Me`R zKrvB-DVf$g*Wrr0A4YzaBALQ$bNk`>>%-o%iF{^l9UpQv69chf!u6r=aG!RKJqQ1fJBX6{~@>77}YQ{CS{ zVt9)8U0o{9=b7kqFflds0TJL6b%8OLDaYz9*mlY8>fj{w1jY)Mc6SDMBm7vv@7*nO zdp#LI${aiw%4oH|#!eThr=`V09ChR?!pkt>w&%h-yV-u>kvUTEtSjcpMR45Wd_kUc zz5ILq529rAxs0Oo^WU_=$CFnEp1|bX&g@*4^U}C&#}ERnwD>XrS$8IHe@a%K`%=lu z&8_t1t<@&w^DdS+0%!edF;54!YKAW%K@j9p}xs;f>sK<^TfMX zAV&&ZQ;i6-uID!{JI&wTYhZU74qzVLU|)MB1@WE_h#m*LBk=EchY08*`>H)XH~Xr$ zbzMe61SheD#>=yB=VSl?+jTfQGby!tJ*fIg=(YT2uM>MeODnZ+jJ`hd&aWCeB$@2F z19hS&t`n}2DS51Vq%F>3kXGefS7b|Ee_0IsYwfQ z%~fxX<{W#e5iEk6XLw|1YdcxoYY?H-Fx^*@?CuE^tdSIIS$C|v?#68cD8d`T#MF8}$d^C67Hw8&rX$(MCEpw&&G2pl=f8*nh%T zt_=x7hZp>b<&QtvyV1a1eR6+=7|Hg3|AEy1e8b*K{bwEa_St{-!+*{NbRPb5Km6yO zg!aLI?8Uy>{m(l5XC1(CxN_}3eiY>T{_EFaC46zwR_?})XTZ1Zer4Kh-WbkwUF?R} z(Nm)ZOA8pf?*1~n5Nj_+0}!)EbLz4P3&-UdR?p%Up%Jkwr}wOO54%&x4SD&rI6kv3 zFsGLVC6r364X3*^iB*(O#v1!>Ric=yK%%gnFPNGh z!?!`N_wdwy#CS^3`pa_|9N7V+DzY^54K6#~_SE6EX8Wecm%M7N$MLFGB3?*-yGXm$ zS|{44!Pfc>_Ek-I)P+}a&C^&*eO1>__1gCu%gx`!zxt8@%dmX%smOuz+vkd>tBaV( z!4lr{@vkif%raSZjf&V6-W)Ys6Oey%@6*+-wVv~?A81qid@hxYNGHei0OO*FJC2XX)s?3Qoim=mbK4E98WFc&-_~kC=4c~-p#VSs-G}f;P ze2l_RuZgkxK39To4mVav#s|91qsWj zT491Ek^QKf!V`*&W5ZikgXPj2&d#ra1O||#?RX}6cd*L6)E0^(=MO?DxQ8xRZ`?R> zGf_m{AiD@L#Zeyp#*d8~_B;oNmJ*hYq+x3MVAqmRG2#oxCtrzdxF|ZSKG2a5XEO6Y zxsvd~Hcv#_CA|2#S|;{p4%6LXf~<*(X!}$Z)k}nBSJX0?RU7NfxpEsXjjA~0l{UU% z^qb6is>cbbjzw5szk0b>*e9AyeZn{1NK!7xPW5K?1=G&{VZAq_fr2IZ=WJW!;R!Ro z{r(vVcHK{O3$sh_HzZ=!qN!C#ZjxtqMdUP1>v6HC0o{YncaIL;tq-P(jAPxYhR)MN zlD!RgCP{9A;=RMn$41Td%wXyprmS!MZJjzgWnp2l%9$6@DDi3k!>2^7YKY*E(olD? zoyTCzVON1R=W})D2R$Ij&A94EdU@L42`FdyDl=c2#QG*CnAZ@3hABT|N{3N^hrBci z%FT)uXp{)}BFv#hnUn|Dpp3bUV@X3fKrbkG5UrR_-JCMQhr6Y&&gfiLcG+{sZMrv~ z4kqgKgbkoQps@M;(eH0KS2MqBv@v2T#?a##pQ~oGZa$!h#M)qZrXLvj!n#ZCUWq(9 z)IK#0kdVbLKwr`tYZIXX8?<2-dkREz%=^nIL%?WbFx-Y%)EAMdn2+TRfg^ljrv2Fq zIBikf3$4P(a`N(Zj+%|& z&HeCNPAGYJh=PPVqTqtFEU`6e-PfYwfH6FY~b_iC#I6Z<)&cOdzQXfVq@Sz6W$ z9?fJafKa>llxaebsXquIOXo0KSCAGeVnYP4*DVz4L@+Zk`CL>?U?G+sEVW@UH8bl5 zIk`IGp&Te_@ouju^3WRt13Vo%Fm?f?YY5>h2<(lUH`8xKTx>-6(fL%}>*Xr9p9-(A zJvIX6qi^kJU{8Ronjj?-uv6y{W_@q&+mAMou(7kFIkmy}JUq1L%AQba^@W9P@!~+o z08?8QDbS0lhx(*Y@U|>fFo=J*KYIp&xjfsmQh?3|-D@cLW)^yZ4k<)5#{vwQnntv@wC8E|%nzd|r0#;~2Nhh!#Z>V11RLf&cBI0HVl2WBY;pc7Be1?K zXhoC$PCwZF{u>2+;E_Qe^T&Pz&trdg?)7UG>}R2Cyr4-z830cksikrN^DY3+UK59DqJ5_+FcC(6|gQV4!qrB5$bZ;xU&gAK#wY?UK7)4Ug=HMrWsUk<*=2@FNuA zlYm8)W=1V4$>6&T1S^L}zI-S!KIb^?0-b*cG28*oW=sYv`AkWqBv^Kg>Txn$?YxRi;?2=j7L#e{yzG)wXb zG;rTI@{|`L6s3Q<8tgi`X(YDHt~l1pfa`e^^)Tih0AU2^akHl^Qpb#y?B%`>tn61F z&d>rdy?IY|BXpSQAMNcaaBG4`LThs}Vy!D9ozJ|h;h?>JpKW;rySVRM3ObwCX7#?F z+=%Z=nyKBzroIB8CN5pn%X)XvrJSj%y)^{K$R^_Hjryi1S#7`jG|6M}1OS`5+B@~J z<@oo9o1Oz?#1N4tNYY6NT;zFI{nAh(V32BIfgWt#<`l4-y&y49vHHDv;^Abg-ssH6 zeLbUf_?u3#xmce3vv z0_7J4QfoVu)o6ylXFH<C#Y^fHL6P77T@u4X{ z$|tTVIWy(j#)@6QA=9RYT<+F0ODxh>)@kY%#J}*s6SZS6(9^%-^o40e)SmmDpI(9C9n9h5?FrsV18-AY zd)u@`9iIk^QVq2)2*bNhJEY! zcSd-1bxsgJsqynz*%uV7Bjh8slTbu+Q*i>y_d-x0ag^cSqv2E?Zv| zc)4*z`D(ifmQ_={zOEa?1GJa*L|kb?t@Z2M20tP;M^7|OP@`B$F^Fd04^B(#0^*~L zO;6IK6LV4trH)kBRwY&=KE7_GN(`}$dFWzg zYrM~bu`GK&>`}l7#;C5#XMJm#?s^CTdg9F3_J@L{!F0P=0cZNQ1ff7X&+SLTMR#uF zvcj}@tOdA|C490YF5dnaob5ERn<@h~YP+n0(|Lgx`aWawXNOjb{2CMj>OyiUqS{L+ zD_vHvw9^jonyo6(NVrgv%za5sWdSBjO`VKk{UsgI>|ls;Q+p;TmQeD#Q3~AG@_Sp7 z&%mv_Ax?$#_xJapB!o*znYbb)jAiu_8QR)6Vo3r^OV$b;22L)|b(6y2uO%lGzZJTC z60IonJP{YhtsH%ZBMpTFO1+Aa71x-#ztDN&`W`Ezk2dDo)q1vs(uomr&*@3&tP_wi zv*+8f%vlSGej-QOhl=KFTufC|bUVLlZ5Rr)oDrWMYx|#aORW(9;+(GN@r%L0+rX&^ zOq%2t(!4XZY_S+ARl=1RD~4W+30fpUl0V4`mchQ@OSVhfua zk_wc9GS2SoG}t22s5+w1f~7)6iqN?Msdid19)~7IDl73Aij<1;1fQ}Oj?cUL^5<%% z%ExduwLd$wx$@2H)QkoL8^>`v`6bhqu!$)aQq3_pHg>6J42K#QI!m3uojkfc7b?)y zp5?k`MJb5n;L;Zg?W&%;P=~GS<26ky?LSU%iOETu(d7k)K@Q#N)V=%b{v6{fBpM#-}Rf(>iS} zpUt5@kMmEK?-RIRV6tN=dg}`}FP=Y~9&a--JxD3+=8t#N6?k#YpvjfWA&_sRz~sH& z<-1*n(_{$IBYm1-XJFok$M{R~cf1OXWxh@%d#)abtJlRHCw4+@*xgB$+*;MDv}OGw zUY%bt3sW(^MzXmojI8};FtK~ml@~-roC|e-TaxC!g~YzPD|WI-bxas;^r5NtnmO4QSy z0{+ITKIPG&4vh^xdh83sx98TZ3}qiN=sO#dILhghhD}J?a1E!{*zDj~TjKfTtMZB# zSArhe53ln|`5qZDcILH^fk9U;J^VIw|MnHxVH-mi(C@#^bY@G!Ut4z4h`n{Jn|mvG zfoYT^@XVKCV;Rbvu`;+$kBu+P23&2PxVoX%4v>ZRTAXiHq&S)2Q**_{I+Vg;4|4m z0Od|--jJlm=9Tb214<2QFN@5Dj|zmX4KGm9@0Eo?Fr zl||TW!yn+@Svix3mbS8SiU3b6(=o4!-STtsy`Xm##JA#N0xiHHUo=Zc9qzA0b~;F- z&LW%a!fnRpA}%@IjJr&09o6g3)+ALdswOP^#bsr-l`oi@Pi|ue{&lL7dXa|K9ZRBl zP}*;keUAOH5^av0-9p*rWAAskJ6_(SSe_jq@KBn2o7y(<%I$EaGm3=47cu$dy_3^~ zuUq_Cq~4(!x{MQLdq+7*tB=Vxbhrbe0>ZuAp_e=G2~>>fcu+cgr9$D4~Vy zaD_*}k);VX&+69BjGNTKFtKyQa|2gfv(N>S;9foU{dN^MW)|EefAd1yH`!zJ1PnxL zPsx{tcIPiOsXQM2ru{jhu%)K0u(JA@T_%zF$JZy$wj?~>(%iX*0H8U3c`4X}8b_H< z4a%R%&P<`EiOEi1x6qtxoQ=-8{Wn8(vb6WxU-{mRj_6pxvfCY-zz1MzC!RqnnK z7^0?m)krGtG?bRKhlq+XdVbD_ZxP8(Vnf?s5!h5i=+B3IUBG8L>@@nkt|==`j67Fv z!%kL?X1pzl)ws!H%riH+F4>diij5*$TcXG;en*2#)~bB52uS(?t=u;9v}s9_CIZ-T zm!)6g1@j_G?gZ>^ztE~8+Ze{vNMbu_9l5MKH*XQj%3R{wwj%=CcTxE>-ERf0cGkH2 zc`EKYxaDnxKPzH6r!7LP`^CSS%jeP%b8}w^D8T#dxVsK5&$-@udTtm6FZND+wC%!x`*1(fOok=M zo{Qm{vpZ$i;8vqo*jwb3x5i7IukYGI8sv}5D10>rN5mk>*=}jru<2f^Ne8d^tmwu0 z?BHv|fvF`*RvtE3l7n|JPvP*7Hc?e>5#C*hdKx17g@CvrF!mtRPdHNu{0=qfEG?*eBRVT=i!anL;*t^Hd{p_j^y$BLsy|Ujzyx&TD7N1h^3r9 zRp00Qh0ajgM&&>btPOl$9|`F(R(LA@!NTZO=dlp~Yr|}WHurjc4Jk$%SBhA!6G{~m zit?k|Qg+-=Z?8TQRr^#a)VoOfxWKwk#F=ubC7bm0<}_F8A=+li2>--VImv}V3=K&WOwSDb8Ty>M26?C;6>{&B+9a)RPv%5a(X_aoH!2s%XAys z0lozhq3umujM9F$zdqcV{9H_6Wmrv5e3NL=)%Tg?QN-)T!oeyRl@W`?S9lKZ!|Ov0 z?<*+qC@LSxW2^LBY=lwiN3u3=1zT(!w|DGmRFtp%M!k!e8kSzFYJ=cFbelm9^dZ<1Gm&*IsUh3-kxHZ-lY5$w?Iql7c(G>ol_849B5cao~t=ffw;c zmWD=nd|;xkVB@VfE@LO1{TIiUGCQwsXmjaSoEE;@)c(AN3VHICs?FH2a4?;qhKJt5 z+NUag_zS(l!}-Y)*Pbz`iwieX*@@CQ(r$?pHpg(vlvwGH&D2JTZEvliKXo&QCDDWi zs*E{AmCGhAWotqEx^8b@Yr0|!14SH8!0WTpS}sjyEtTqEL~#v`d=3euW;n)U5;Xyb z`grcwm{Z-`T*jfOJ?SFAU;`ReI@V;z#5xB>MH~ryr+^6$n;5b*+zoOYEtADkbx`mg zB)*x3igh~k(I>*sWRgPS`X6pQ) z&|j5)u>s`O9Q}14)>4T_2{%o2`6Lpfg!;?fWN6QGqT8BXuM~>oUSsk&slQ&oRpqGJ z)A$4+9|HRsEp?WH2;l@1ZS|O%%fSC>`((o?eLHPYd{(!xE9@NU<5Nw2wV$p~_wEF? z93Go{&Veb;Q91Ud%84cU)!4T{m^DHcXIyxwo$gCms3IMo1!Iy}MTlWE=he{Jfd{k8 z$?IxQXHLS2XZ0{o-g}LbmR?k%2^}P+yP~JYA|Bus#V*|fZ60u~>TV^3oH;Fcy0aXSZ;j%5ehPoAp zxNvINnbkA#n%t5>ppD9NRZVJBLh6Q&5c0mZ*Xp;=w--y5k2^b1(Ah=yX4_=4aUb+) z+Tzd`(oNdtL*TBHJ@;-dup7hCUBW5Qz~#h+J=3ls5ue@b?dVZ0q0VP z{k;Q7fZPy}qq(to+th{@<+QxHO|3aihOE8N6wvuBR>V1VaRrHqzB$v8Z%yY+`@{)8 zdS9!pfOL6NxNXOQ=227rhBoWEo<>SVCDtwjk$GB{XcoQQ*Bcg1$>2FhB(kaP1B)nS zI20<4wK)PjDc%#J734ww{#jR{#SQzmJ&C~J=1qiy3Pze$3pZD%111Ey&okkCFvDKS zHFNLDEe(qFWQa&4P_qMp_~*AbuuG2Z)`-u~ZOl7gPimmiTe5M~Wy0ytaDKRO&+pXi#V!Y*eUU-s7=TbQq0~cf%DuF;BTKzD%@7xT`|n_HsSDc9?+58E}sS?`a)0sq(HyB^TnDYYj0dD=mC(q2YGM{ziO0LH$4@W;2SbR4EvJFP{ zJtrtdvLrs2+-1nO5O%qJj1AT_L9RJY#&|)3m24(5lquEUX&{S4lE-dZYHWlM^U$Mm zEJ~EYk7#F@4=IJcdgEg1V*?}nB+25|4$yrqbBfx#ted&f&Rzv=cyL&Q-T7^lT@;G4qSW;WNIHfgWGZB8S&UG9v@G`8#Jm4LD+eRFZ71^p)pTDdix6#sP!}*ym zAOB@fdbFap21gsMgg$YC$-qitT(E+?8VC5I^5@d1D`IyBn3eF=9(l$@P`sFy3TE+MX)$A10_ z;jOCr3tq==e;z%7ExE^DbI4#AJLJBYkSOWu_%7^>7l;}4MAu^6`c?-8QX0Z={5Un> z)FLftqPexbL2zsIv1RIdfa=aH6|#pHy01QfTsR5ICt5U0V6X<|bV=jtwbR#<2Bqeg zsGDl@HwUgY1nK${IUSe9>8jn4ZSKnl3VSbfv~4Veh9#32md9WfsuyYf44$0vWwUu= z`)uiiwhq=NDKo-*vBjLxcjH3OT$P?mDP2>M(b$=5h8I=`2qH~b4DFQ9iBo{C^ox|w z^64&cikyyeZo=?+C*ph7{Es^YW_^uWe-iI)!H;VwO~c#8F_08K%U@`lBe}MnOuylN z8pLB?ue*d6l(auNOZ~WgxKTU(Qxi=V$935|Mu+KtF&rM4$pn%1qt~T8ZVePA`eWzi zofD6X79y;blVUES6*Y{=t_@aQG3tT4ao9K!!<**py3Z6iZ=c)1E_-buha|6_MH4~m zqFlLu?<|0Qcu^T7Cwmfh0<=E&E7jY!fqGe{*a>+F&hg0!5FwgHmPZ05IkIlk!cRk9^LbDj|oN+K|>1>zpSnwAy z`hsqo=%T4`Upahi4Oh!8PXRJ#t5A|JNuu2NIQTJ?`1qt53DTs8mjGU#HNp@5DuJK^ z)$~^Rj%fr!$P8FD!PFQGTEop-35UJNS+x)$$UZSeV6@5FqU zI+S+5jc=k-y0FuOt#cxd)Ba%O0kND#vOa;kK?aYUTabJNpY7QQgcX&h5y10GffAH& z>Hhjz?%kV~p$J)OblciFWKQIod`Qr{fHc1cqhD!7D?JIKq?;zfA=eeUV6%39^S-jc zOY~$bPvrW-jC*YSVB4yN{k*c(o6!GmoJC+L9j2*}PW8}^@!HRifN8<{0yOv=gdIKD z{awV1GdIQ}z~A7ivatO1Fxlb*w^Sd4u4FaGXE?6>ONz-us!9 zht6x*w?BH3bH><>C$xdo6QPI!Zh}IiPD@L@GRh%t>mk+XMP7>&aJozM55}>yWBhgn zE*rn-2|1spD@v40ms=PB`D+P|zr7J?JIB5&jRU!VE*`OSMJ ziEZy_PMxo~PBE678dX;AJ)J&@7GueL^xHg^w>&5A>AZP2ZMvi!mhDCqnl-|Nb2<#W zA0YI~j9uilwI4`2)R0gwOCy*st_zR1CvjDaTi@#%HG6$`;H10DT5W}P_x$vG2e$@g z@l5tf=!~5NXUv!uDIPOU&-j(89QiHSO8@QGWIpD8=)6agn+#13ZG*{zLua`YLQAiY zc{*BPPt3cb9v#|ju5NxSxGO0guqa#w3Vt$)F21m&Lg;~?-+#F0T(NgQKR@BIvthtt1+zvo=wM>my}LXAoG&Me6_nT4zE?}h9$4(U9CYK7i2%% zj(*u}_F%4hiT17As*ph5&XGzNq%6UhYaFjBJ^i7iAv**cB@+5w{^zLo3nHJPsy$0C ziNo|6WU#VqoO(y+_&sc4um}iL-+5GaR_RkO&vu@=s+3n|jjsR_2w0EW4jm_22a4a7QAo$V5YJt*tq3bT*{fq?YpBn9J*$YL-?c^EuK$@Y+J z0l116iWo6bxmXQ%egpnXRt8p7kQO9jfJX67niqj=>F0{Wi8^Q${CAFZK5tSX017Ud zDZYPR$S|tT<%t^%3?IGS4oJrZq&w3B;8J)GTSI4&S;{R!|2BF&}zDr8*TgxClo+n)u&LD>zsMc4faWu!XTy^mFe z@9GU-UlGIg%mgNy?fS7JYr$F1dk5CX;1{J3P<3_O+Z!+TZw~&|f~DqRVWA2;v2uqg z@4KWJdZtm<9GWCVrkrzYnZ#-;sM4(8Z?$#qi`K@n$`fOP`Y0A=!kt0XcN_!+0bj)4 zrX?@VV3pAYAo1^AQOlk(gdz4csba|pWw zi{(K^;)UEJLj~RDui(oq4;qM7__lA{a3F#Y-_TO`$zF`+SP*-uSAIHf;X+2D2C2j@@u*)Dx|CpdFDpB^}cSTUeYu;?|;Kz?_OYhZMgf zYt)&L-LzFw|1F5wwA98YvE{njMBTH?oHT;m3GY%o+&iA>>k>{69*e+))Q>Kt@mkIw zu%E`#zSJqMn5ro=|MG%L;HCZvStFsGz^*W|jkBuEp|bHGUv}oo z3WCV*Tz95It=8DmDy~yMiTASk72q{H*O5DbYSR2>BTV6(giKYQYe^m@+=a28eb6)c zOJzrzt0onc2lr~7(PR)a*m$dw)>hm+!Q=Gxz-tWy<}aFV!K@J%Qw#^cEZVKi^-+Kj zI~v3n>p%Px_}&d9=9^gNzfkR0%zidiKmMbT%>#H-cVzxm3S<|9L8{pr7p0&J=xGy~jggv0Ny?6V!OfMafXouE zhQ60CYEVKwWiJ=`6Gh4?s5%d_D1L3kBqXI72m)Xnm=}Y9$9Yh;BP3`%7Dr z5C{4u>6jhfebF(}q%QR`oHkzYMfhNR={1(+6;kIJb%YGZqDtCn+}d%z%$qVZA72)j zj_7D&Zv?sf73W4b_k9{?P2O$oc5S#BqG3Slb-o&-Rpv(WnPpJ6JL9HkjbhfW9VoFK zZGFnGDn4gXLA)S)Rpyt#SK+7WNc>^C0!_XC^WY9i`tDUc`(edfq;;@-dOI^I6*+fS zU!Q0QC4Mq7?O(v)A?9kCENZe|`yR%kK$u5@WP3%w@U^;V@guv9kK)$|>a3=q2+c*c z2@HF6J;TL$-f@Lw#6T(k8sT~|0Vkzg791Vu^cfGl#dfsWj0|wbDCoDWMkM)9+P*a%)9PBYz303+ZC6yrRasaftqEnrVl*3}^+drIe+c>bj zwfer}z1RHLkLqq5Y6hxLIoHY8y;nBdlR`?G`D&@Of-J*ii_d!@jXA~9z`oa?OX@r)cHa4MjE!uaMk>;N;!HzrHEOZ4D7uD95YL7` zGM#$-iKX?Hcr+Kzzc(P)z4ilFJ-;&D9M>1KuJyv>F3xmxOW|W1BEyYZ*0h85==hi? z$!9sOThAaSiWYMjSkJ8G>(}^UBS)$oqxP0~XIQ(&vRmqzqm%{2%JR1FFew-4@$cv7$jK0#a0(umPnP zK_DOq0@9m^NE47=12&3LLlXl^4~Pn(XpjzDDUl)}v_NP|F$q;5w1mK00rz?5oVU+C z_q}`H81FHL!-$al|61SrzWL2L|Fs_UtL1HKx*EI_n{>&SXsv(j7(KBA_u;m_R=i-O z^K?+dmP(f``7e3Fycfleoc?WKOvd%D-;Q$p3SV>S&sIQ84~u(Yk42xQtChnuB53;$ zI2&p?1>E{tEQsrStYzw1uz;J3=lvc%fZX^D5?E_J!uo>O57zUegi4^Hl}S>v5#Z$U z+nQtDB`}xa>I&DswKY;kN2R}B@a?#AX=q)ctzzrtr<-(=BqT>Gt5Rn$eIo4Gix?$= zACTJ(r&lL-O%p4D9Cj$a%#KpG7uMIT8y>5oB-<<#A&aJ))*gz&rXfkMzx8FQEck-6 zx*x5oA@>SBi9OeT^cZP{I@ynE0sv4_ZSD(OeOwA;MrHa-rU|&BA5Noy)Lw8FuRqKe z*v`!EIa{FoBi6bk)d8x!XX;ar$pXc~QTw2}c7tA6OL%O3m7F3jOQH6Nse%+BsYK;| zLvTa@e@S#TkDiT#z=qA>u``7`trR0q1u<>Q z0{4ZYUdp+{Pn>_*`lhQU)Lj3S@{R#nbdoxhFQ9Ww zqaMh2O4Iq zz%#vCWL_(T$q8@I*f`!ZvB$2cPozb+K0R$6)c3 zI9nFV1R!_@XV?Njs`b9HA{#u6dzqwXl$=#v$3OjCF~R%RrbO_b_!9x3d%xLGoJAgd zE4ZGa){r-PCw8DXwH1razVrO#txV&!MYjnLpe1;-sdLEQ`dv|Ygp>uVx@MUZ#w+P? z?%equAiF0yI5UW*I?v3*%?@sR55SHzz%8UQ44*ixG(pMgdmoTejV7dp_0u1?IpxahM=D6n3}UpL*DdhOp1y369kW5-4L+$CzGk7EyK$t(3!pQb?r3&%Q! zZG-Mksezl%u2iBiCW!jafwfh%M5`iFEHJfc9AC+p}BUw0CZiyX1lyVrzBjY);q0p!lUu7f!mY^h$t!*I;XXO13TbkTSdet$&EIc# z@4MhZgmCv3YFO4T_=gK$()HwOPgRZrGN(hwA3MrJ$3)?$-o6nJ_~vV=s+#m;>~hww zV9RFt&`HB!Gs9TkA@7-%J!=6g>`KbYDWK0UaojRAfOAlyc}g(FBo0}?f|j~Q0`~O= zIdg}wu2JoBwMCJ`IZ4%h&=t=lbM#X#Sq}5|bp-idbj*Q}r}xeg=IO)dIi&pJsui`u z+FSD?putfKrD4tvq z``7zr=D+pUwYaZ?$IyYRz;SIfazVsy7k%Y&=7>o!_ltc>Ozw1k_Tp>(bYZ?oRh=~@ zVwt(q7SJ6}#0 z*wk{MtxG>A8v(XFH>@Vta`pQ2`^ER1Evj!6D$77m1&F6x-<@*dRDe|6z-{tL-J)Xp8@Kl@FJDQYUnoE=+% zwcr$6?4#21Nr=|6=DtJ@(Ru@KtKH$YA1|$OppLGO8ayjDNoRjJVBUUXGG|^MGbOhc z$`)WOz$gi%YqzB-uoEQHKVz$N6akOoq}zg(54n5tL|Y2e82IIUveNOrfnN0k&MQax zHh$AP*C3iiyf&hz`=Z*7}bK6SsW+u8^3Tvv)f1diC!MTiO@BGS~Duc+`Jv;&}0GTyhjhfn$v*rBw^@!_X7V z;lw;H!#>(O+E7xz>fb1>pCPLiJR`4ftlBgUz>!1qNnD1ykIimXWUw|*$x4>`s?(bB z#8m22Imz_Q_t%5@nCU!QJ90~EE0T&z6P;i*m?{N(ZwMQ(Hj(a3F#LeIq%<+(=)LMy zmg~1g`OH=9q53v8CJDy`HVcH#KujxI1{TN08-f)lIOBzNuB!%UWG+ZOFiJQ9&LJ&X zXttP0nFB=3;mBr(RdP(cL!S7U%EGbB&sUx_kg9_?160MlBz5*DdKKLj<{LR0@NOaT zS~}0e>YU#pd38|J`wPq2*TY)$G~*ZO>*M>LJ2z&%`@Ph_0c!0O&dS<_ibuW+^Jsxf z-%KjYZHZZ|5ax+&nOp42HcC%?`fgPGx^TqVbcE^iw_&jr%?pHT499pLHd|b7kAjF% z-$z#-#enI1fTk9ZGhIvXE=E;fO3yd3Opg3qpgHa&Ty!-Ss(xEQ6>{s#Ifn`q0#MAy z&F8|zo3(U3e_QyFkVH7w%zi63v*7fBjFyE7{+9M#Nh)A*cZNZ3zNmzX2IK*EO&2Ak@B48v5&JLl<< z4CEtd@>fo^5b_Tw%~oW@OxV==mOkPku@1>7&kp*gJ7CxR#MykQbmCuG3%96U0~ly- z;85lB?!ZRG(N`yFuo=8tckbago$%P{934*o0FQx3vqP1DA&~kR>T`te$@5s?hzG|X zg7$wCYybv0cDoq|tmtI-77-@hnu%&>_Y?n&aAFeKx7DHgeExuD;Z?^1UzP(_n(UH) zevSx7lHCKq=z)IKd$YaG6?ic| zgz3|O$siud8$J2{6kj%?2t4@VR~^aY*oMFTR57YpkO?jDT0G#O$$uj^Gg+~*0d^&+ z_BEeIgwr6{PS68T_Kt(P-bKB|s3xA+KL8U>tQDUQ6V->_ymi`uSLO8O_RJlOiQ_;< zoqcQsd}uwAdfqFvGa%No-f0eI=SK0wmYa+e3%+hjQv}D#um#w7V>tp2dIO#s2uJ-u zBKeyf0f=yq(cdTD1csLfj!AFS+~s0wR!^ek;(7THh6~GLAZ(DjH{go*qj7cy{Q2 zUIplUw(>&LwgeyRJnaG|MA;FV#^qn@#^h(c*Z?O=vIYaw{nokfJ15f_bm+lW7TJoO zUo4Q3<93GtTowQQvdPjRC0gd#`DrrXLQni>S4Dt3$kKgV?6eB5r9!HKxcq2FH6vfG?{HG3qwsY1f&u%Nw0gH@DMr9x~LC**jqpd6Fa74&Dc1u0t8HQ_VYEtXB z@zdD%W}^P*!$%Cw^0awc!NjJ8*p~cd_(Y#O{*U4FR};rneO8YFO$FfzMr=D4K9nz( z)*~!-J>vOAY}P{l_3THVd$os03fBF0OCk911{K8vRx}3%!((I$oaMZ=e9X2(1XKLMnItQ;dr;kb@WAtiy6%}I(y{e}p)*ci zZW8#B;xfAvH!L!Jb#EV7uzBzODXPX-qOtsFVq~_EsdX|kQVIFm{?SS<)M{GgiuBVb zo#%-)`iz_UC#Iadg_}Dihi~ow(Q1IPNC-V#atq`b325E*`p(qW9?79woU;>;ovg%L zE5bfFg%)0Fb9jGhg|*S=>I-vUt($96?8yZkx3tp5WUWiw9kR0Iea81OXWZ!g->%yc z8^Cl6oWyNBenK)>El%_w8KE(HE-5WV^tn!@t$dU@RQ_RUM2$3AQCD~8 z;~NRW*3B^}ts4a;BN3anYbzmp!3IZLlQF(6rKg_=2$<>nZF8^rQ3g%+=J23Y#-?rJ zkj%&c{Y2=!WET774*JeU-k$f^v!OTpOrEIZS7efU5A@DOI!M;crG*#yE&56{AZr37 zFdu8)I&I8GKCW4M&+=qXuT8n+0cr8_9|D*f8Os=ltXZv>=i9>Oo*j_0f9}mzD&Bc( z?&^sNJB;KLZT+XDbX6F9*WSZF&BQ^xS}~V@{LK8%TOOe6i9WY^Bl;Y+X@MEbe+DF| z4@@nIIkJDRCYg4>)dRVc$LWPSG);_b@rbAO4G7t`2Z&_VNnklqet@v-HmXNBb>Pjc zfmZiRC!S>YYoHqCNr2-66llTw6@k`FC`KJ&%ED4VTx7I)F89SVf&e5>zlNtq zSb(E2J;(fRb+aw<`fpuF*snxfCKgaDG@aa-c8yf9GZxtR)QkEad$%LS0>sAP>Vt>zz*CC?)8(V!$2mp~(hB=Z_H9cgXYYf@ zRf3wfYKMUP_Tv0C7U7uUqwP_0k8F+_nVsf6V;Y<+7X1O2}rp zr3Vje<k@bKMD~9Wv$xgjTCHF5rG5LhJpKMx<5!G&#w4zpcmJkj z`$GRp+5Wp?4m{3ybS*$Evtcv8v}`u_d&PodAQ?V>=EPiP@3%!3>|eZjzRI+PR$3*q zLL1%Y^y{v80DcXqm)pLC|7yVkyys_x#AFaCDC*EQ4*!Ed`LaH*4x~q^Ii~Ipil*Fl z0Dz4CN|%WcCcED_0jMk^-(~23SJT8lAI@Nw)LW1LB_#Q)F#``d5=9rxkJi4dVRGm=LDm zxP5cSw#p?yx8MQe=RGlh8b(FQE{gyFFa=o0gNlR9W($G+{-lgW`hA2J1Rv->{} zZaBrz&qiQP!AzX1SF!&S?n(pm%NeqT9eT{2`Ov)=cxPWK5O24B*S32eT#Y*Pl~$i? z2R2RS@1q@UK?Kk8c{Lg%C+yI_Rw{@YQ1X8baoZ?D;?L#Uz7isKf-lhEKOP$ElK+OJ zRKh@8{C#N*3VJV_SX^J9*z?v1D?R;&)d$(3~_x7q@GzCV3$*?EIj!zXw1peyzjK3&|DxlB#UwV)K%#8lK z2IjxsaUzRRji(sZyFq#Wb1h;yd@-C%lkyj4#r8A8y7x&PP`nBJE=+fY+kQpq$(Z0+ z#jS9!{Z)mSx#aV9F8Pm9{QuGf{&Rr-ch<_;vYU<4f1f^>&BlMBSOx`2v$4f{{HewM zwJj_0KPr^};Pd(G7E2H8ApeG0uIsH!{PMkiS-Jp-DdGue;5rSwja%4)n!62V|LRRj zqj~b*m>`)k+9JM%JOFChvh5}RUukYGjE?~o2LM3v|JkIUWg64on4l0&z@}zUQ`q;` z>(8c>38DU##qKY16DPAl3fpRz$^c`q-OgDKuKjB==bzu?FA&4Ot$zR3mIqWFu#JG_ zvp)yA-~mF`9spV<-2)O7Ab+YO)8t8@J+$0fKW4yI1qC)pp~>TWl1NwSjadA-GB2u11XhJT1`<^p6s9^(`Y+X<$=3+WoK{40n z0e8Q3@lDC7uS}GL1?z7ct8Rmw|JQo`|C3q>iZAGke%m(4=0&EdD3wVAB=?5t&}8~E z!ColLXP4f8_~6vnU$P{3>k-$#vep4`3R-ypRm+NxlT!br3EM;`g%@KKXdo=M{I$}9 zpiB8@9~?*v{}F6@+xg=Rxtl9s&iNhZ$I&%hnPW!+L3Msbu0%?*xNdI%YdCkp#jkf}W znhbhKxF81Y;zw{;0%#+@H9h0rDimk8$3<0ab4SqHg3}$a!~JGDV^{9HWOpW0HL5Rm zBorrRWJHUZ7v31E^p_7_5SksS!!d=ETigA0k=0u4ALHY<);1@-28(%j9Faf?P%ggf z`pSeUVW?tYIvxSbLY@R-Hb&77V9gHvGJ4Aw*tM7GxHV%sZnt}uElMvBSlC|31c-`? zew&+<#P#-n^x&4Tt$YObbKeTvt#QicdrtNHia$gccY}0PNAjWX8YF$wMu~a>RB)(W^MVhKt2umRvAJkj2d13L=fs)?Z`@-S9exeiQ zg{|-5l~XPBoYy&DG6gjdtARl?#8M`W!rUazyL1~3o@1gxnnO&vpy&6X`O(N~*yZ(T zeysQM0C)o1d$eKyU@fdlyPNI!CXlQ_$Ev^_RQwSV*mi2cRS|6d-2`;JiA}oX;Tse3 zv-GspmFqxi2D>VmcSt=^yg9m_1`fzr8VLgHtqHV~VAltol9H03h4IIf2#C)q=efp) zhHv%JM<(lL03rKqi;8E&H3Tb3+SguS#A+bMrj@*F5%u3MnVKfiyp#X|G}gq7C$)mr z)gWaUt(&TLSOM{2q`@?Zjg3wC{P`qjH}C=+y}-uC_@e>M1-2xw|KN<%-xQ1=lc(!z z62E=B5$qz30{?ajEs!-?b{b;*!>;cZ^r7%MP=nvmX?-p-n{u%p$P6_YmvOcAKf&JaB|93wx}pC zPaZ3u3mb)3;WE_nH-7^RXguc@9S8^*0fARrd3EdM`z@Ax>*fEq-?rYlvDe^^WMFE; z&M@YVPP$qKnuQuS9$eGgwVRds4e-U!@~-6eY}B2dEX+U5?X?2Ed~Qj4INfq}kaYEM zaCVZuAaU2z`SCRa=pj}v=C2*n)zLI&VcDI)!m=lDA9I64*5g_)!CyOkjiDMWh3%&( z;2*o4)vv0vu$06eSa;Y1{=NUMj-@a7ydLJC9lKL8X)G+8xw@L_*Msb)he$|>=}6H$ zX(BkZH`u#ZakI(8;2!*DI~&BeU19L-QO$$NGB+-@!G#4xv+v!COO00^KbV~Zo2;q| z#1&53npQs`o3l>d&A?8MT z%)Q?Z=C1Kz10#sWvF&eV9|bqd{5l%>|K3|^4%CE}tu5lzzVbz^ z$1Blj;Ao0z-<9cp6P5Q%)5OyJWyOfbwM_%s(+jFA42sMkp-zp3&bM`M_guiC1+pL+ z$!xCSB78{6jtHrfc0pOelW+6dR_Dj8RiX}Z{Qk$O5OUU!RNrg+YNeNv_)BRg zIAyq|iu0n|^(8z!oIy*ud|08uCVXw;_E^)i9_Ws5BiqA%+Dcz%f%HW%_5wKW0?}XL z>%4R@)GK12uHFlADd!B>M}p@Hgw~CKC9MM~7>)wRmakqkOqX{P@?d}*T z&0ucmbh74xB9uH_6Z*x{G8Yni~1WzR0Zir!%z0w2@R!CKtEgx$GM-#Y%vjWVQLv}6;ZiV6v zwJiHyur25vu#uk&ZwQ&+x6dIu<>6t)FR4B)B0r{z>IzlGGR)HTU&(%@PWH4G${Vw| zfy)k_LYKY6#T?PiUXk%5U-NBXgZBB>{QP{tpIh$6%%|#4Ur9G~|kEmS3ve{{A^~xgumvF?_Q7Z9x5uxQcTloIRj4F7&*L`Me~R zfwr$3t_@UyA~_~&+EZk(s;|e`L#V0KC19@<8KiAM3d1)iVRDebU8VfUyw%dH=cOmElmF z9nlQ)Qqw`RZrna_$iI{k3xV5(P|k4gUS~Yx+OL~^)TjQCT%WInjHE}v8%Z-F}9pqK+ zOD}T7BK$`l%0lWkXj50C5A(Qv*F=$~U}VOf{`ZZl=E!%Hidh9u$U0Sd&&zC;1OV6E z?84Wa=&D0FOVpuu$=cPMi{GR9dTk9}_h^Pl!WCHE0*8b1o>_!k<;gcSLfZH|uDOms zqDiA)bnorMmWt})dYs?l7?01T7iWn`3X7Z&;X1@A-4K3T(JbR@Fe%MB9UPhwYR5u9 zyS0#uV~xMz;U^>6ZO`V~_p+<|DWqiU;5RNv99v&s#K~SFTQnX>gCa4mdkl0?{JO)T zb1K~D{hpeAmWPXhu|vW4QpQ_feKvk_L z9c!2?EovD831)jL`n-RnI1~F&V~}X-@DeA*JzS^L`OWXB8+oMEkjb|{Ub+`bl@0nl zc_vE}UrL#*_Ntzbf?Y-b*4ZMiVmN0sr^`nAIN&J*&i<%SakkUx92xP&sVs-FUZz!h zR?lnG?Ut-UBDf+Y)ix^Pa#r$46;+dz4|upB!^Y15CQDn38jbth@g-hxW^u^vVok(Q zilJBuM0$}NRvBi9oh%)qn_ue`6^EV8BJBP-r@58Vm!)XAc1S4L5fyzR4#Epz$M~G} zOG!Xsms+bN?3Fgx7d=?;ezSx9Vaxr_%kST1+fP~_OTc7n;nh*CZJJ_9kOC?Z%NJ42 zdBG*l)So2|EH2Fq5SnXL3_gbAnC7Hn4 zh)=Lb&O4bv5~wxhj29Z%sHQZ-{3yRvGySj0QuXO-n%v=HOeSWz@64)P#b-js!O6Hc z;XmeT>4g=O@ABQ|btBsSEK|*{QI@FAJO8NNMmy7E)F&IDU-P(L$ygqkk(}g0A2Ygc zocvR=W`S}t$ioM%5`{5DJa~vO6~88YEpDM+1Egb8;GAy0E2ap+JJppJd+4MUXD%ZF zbHoT=enTiLuDdGGD^zvnWG^eUi}24V z~QMk<8p7p+j%a%E0k>^oJa zLlv4;^HMW*%HO~L)z0h#9+h3G5__*VbopMe+E3bC>s|@mWULIZU#E$)tXFMe;d_jj z@HN7_=O^vM@J$C#Mh%Bdp(ka4fxq#v7UvLc*du#=WOJj8_OwYOp*^oWmo%wtrH~7Q zQ_DU5i!8ERJ6?!e8mkCgy?;5BCafbISAOWzW#mT@DmjeUZ53#E0Kew9_A)}1rzjJ( zlIKgd;g_tTCOqS3)m<41%z%ZrmE$73E+;I%=nTflz4-iU6tQ8c-hM>4a@>e?z1mx> zz=|sYa?-y)V`oCRffX!A@7&^Oyy1>3BM-H|>*mLv)la?_T0~1-a;5-ihY=fHPx6Il zhwz2iqLX+1oco0XFViAz^Hnh|+T3RDM_yXc&e+$rxqrAl6N);7O4HUzFe@n6t1^)P z{)l+CPqA)iyg=mg1sce(Gh>#ll2%5!JsNNhEikzztDS3@9ey#g(PrfxYkt_@(+p7q zxG9z4yY+`Y>0uzgkT`1UHJ#20&q`R$gE;Mx*z~a?v(8$r5Lh0_g?+D+wBah1PYtsS zNlTX#c7h@@=*UNCIRo41?2OB~k$bh7y~NLEI%-Z_eXN0eHJLem0`N}=C_RR-bKn)#4UY3 zAlcWEN$9-7agIAdlVnoeoNmZ}yZeoiY%#faSusN(d0Ezn>JKvv$$-my;&>URftaoq z37)+9%L&;@8}H41m^FeK;>)bY+g6;t`tnvpyaZeak^N}r14P$6 z>#@q*>g7GGJe%Oa)_xKb@&9(3p;5?qiAm6v(yA*K>mX;S(a3^yn;8d)V#bCglGn8- z(d;*h#h!yht_E1qaWbQ#bs8e?XUC|~NU*aenV#+pC2Z(h1!u$VYvQ$wW`>bwsudPl zMKF*_WiOE3x%P-OvYmuOA|Q3^HLoC_F;=?v1bX+>VQ$&Brc*Oda@lWq?lC2Y!DTkq zsGP#HE@x8GQAVqGy$v&>&0ba!2BGNpTM;M08E98X071OI^WyuSg#gK!(P$ z#uAZlg@q{eF1Yj_)lG}Cod#H8E=n-sfNn@(cstxSBpoq7k~f-S_Rz^OL6r|J)I|!T zRCHOcsyEYkIc!>7}}RT7x3<)ZWP}hoEE+f@BYJ<2$~ma z_>u~xh8)^)CTv!|=Ed^&PASDaL?CjdB5r)R?g1W@FeCcL66umyB=sVCr|+xJB>eD= zkXmb}971il z>0|rj_0{;&_s#a_k7r-YVR%C1{0iE$?8&8-(EK-Hv_`w4+}1AYDcc`C;E>T!n>#w4 zbZ@$-2unrJC9Bej*$XS6*(IPK8L@aHQ(YTltDZ_q3W>a{SX`PLQ43NltGzQlo z4ujg`l@HS%#2A)ne`?j@0=HQi0#kY2V-v3FgOS$B52Bu8grx$&j$Zc>t4arbZMRhR z%7we%E^))DDwA_diU6;YP%5bRpR~CP-IEd#J%m>Z$=|?*p9wt*M0fQv$9$Bb&ao|tECHOC7}vr zyvLL!=8bmQE>e?k>XL1^nC&!-Pthz?kzyLu>}Gg54v; zX4rFKxsdk3cO^CZbvK;f^q9~{N7D%C%FeWDh(BnbTEA#OTBy##XN4#isWqYvDnI|& zRjQ^$Tg;v-A>%Se6Ycae;+Kh?tRg)5&w5)Wns;xU-^K#V3N$A>LBnM0xPZHgL%4 z@7bM)e&%aaCKVsQkbpk3uu-$l5f%iR!gf`1L&MHvf+_XS|~7g z2H@TR4ya-o#v3^3{bML_q!g(?N#BQl-s#AiOmx%>y;9*=YE-@)(D~Z}&6iE_#A?|# z$=jDlL3*K&;#oP+r+o0*p@dZ=2BGW?3OYl;`AAu0y)^fUTKaCk{YK9cSDn z)`f47dzYLR+m+_}lH`N=b<1W6jzmKdzp#M8H5;AIGhQ1*?Wb%%zYZEV8(s|+qV%qY z=%ZT4Ad!BqDH0z{?wQ!&;bO3wQjG-FO=a4L%${p#_5>N#chWF5iEER-l>mxN4;@*QP~W}r_19E!S3cJ*nnm%b`CLYUs!aP4 zwe=gj9;+5j^Gs>xKOd~U0`dl=s9kL{jGipyJJkh_00a;KTk z8LHvL3d=vwrj^R^>jnmPu?nn^E{_y>P82ECP^z{33YKkscIb*tV63i)CAJ{;{CVLU z-mJTb7>oQ{e(p4FVO|$6PV~>8b3by6znkI7#{`C8=QYJV{ah0UWGK~(?H^v97TYP} zL+(6-R*nbg`T^W?poruK;U9$arD2EO*^51f7;5-AU##InOB*M5Ofg%wt~2%_`VQiA zVfkk0_au{3U8G#cQa5e7Af*p5#8T`JH2HPaHSG!IaTj1TKYBk|rWc-eG*TpzgQpDK z3~g!3`5|I>3cw$eIg^b1*$~-)X^Sc%l+<&^#cJNRSiOzkE zd|e2uU-a)M&tTjd&{sOsb+cMOp0XXyy_OZ1X^}NBKeZ0mm$}{c#zO zo-QPUS57i=oh~UZ6)2lw z(edL6kT9x0PyPyJqkxQy%QnU16k-uQ;~obOPv>uk;)WUP!OC%6WTvZ(J7eeEXcUM6 zz1It5i^v_eyg5~Y6)u^2owL=8233_!ja+I%;OyHrRWr>%RbQloYvh&X1;I3Pu}9R4 zD%hGipi&TfRKQuz7!>>Y%7d*QEQLla_?2ms)Q**@^s)9lz4sWoM1cf>r@V`D$!3E- zb6qogbLZ>>{kud@t)!3_l+oSB9G%YZV#c!(X8S8lb!LNBRw}1n$tLxBD`tca@(rn9 zr7PRs{j_H}gFVqtH+fme_z^hF3&BXG4l~B6!x*VDvow(h6sZ}`oFq*}1BYuPiRpQc zr3$68YXKv9))!wFQDk~sq-qQ!Yo|kdq^yi`7#|=UOBTZbvF>`c$>|btzD6z0n*R$U zW#^?WhViEyUUH09{X|ga$EV&tXAT>shnbl#NIACj(03}=QFdBRd0_^5B8L@ zU*Otv^rRI=<4fJatJo=-pQsnyu&7Fa_=V^f0Xu5PxJbVUGla|1su^EDUQ|RXNrVt_N1bs|Ku%P z(T#ClUsP2Gg&sJ9GW+5ZE4bqCQGjN@!sW4ZCZbjXLYZTC@M{fW)ZC0+w(gv81!ZF@ zhE4De7`&yLD%@2u1g7&#tO?ktwP=PtM=6IQ#kd3U8=NQRebEwVkh^y7mEOh;bx%hhhpz?J{S=cWOADf#n(Y){Ovru;ppOba zbs4*fwlcaV(&eI)5HAQNlEj3`b6TOtD)dm8j97`2iy~LZ39^kRv<@_~mnpUkm3}<} zN~pvkUy@0~&x*y0sz?gGXYB$=XeBBJbX`}&9Pt{`^31>h$t4$wBJ`?Fc?0Bulhxza z5c?tALhe+DW|T${WNn*B8c&B`@tSmdhn@hPz`N5bg*qp!Twh-;XMaph-OC%4xf~7- z`ZhhFTiGBHnu41B{9`$-Gb1wDRHJgxNbD<>mpzM`5&#JCr`&Rdw5PwrhAWpg4@g#D zvsQTR$iCm-^6cGAfh{Fyrw2B9@Kc& z-|Qn8r7(RXEfU_b|Ih~>mDiV0j{cN1vm3gAhTP0dUQ}6ZlUcTyxtOy^Syh@XuUCDo zhtXiu!WkvweF5G9MyO9qAFkyrP!iN@oNEwIOe$a;UF$$K- z2YxE*#a1X0MT{$we?$wRU$%tH(nxZ{LG|IbBlZC!ZUQWTF;gZMNx#VD{r20 z%Mq1!x|t?vs~?fSwheOEogfb}mhTTJTE*uu+@pZ%GxvfWE{w>ISS8`iL0dZtQf2n9Tl5ggU23hRFnX9jnEl7SK}-x(uGqWK@E5bD^*hU0zY+4 zI7y7VLf)hBV%U-DD>_ccEVOntu zQx8-!<*5>GFR>TnfXiVb%V3nzt>jqi+>ISc}s&L)U(x+rw!MgQ_0e&$4jku5qN2xZD&$1YakWI*>4NIq} z>>eGDTZL*zff7DTU?Fq70yXzN24jxUJcQ1h;WR zN3Mw#`*lrq-B+jGj|h60p&c()9!M2Qj$yKUpxJs$ z80d2)vj`Z_V5Y+@;g7YjJNF7~M`OhE(P+;Db7mqnYd>D~6g}@MAs)0wR)`2uUd%}J zT{xBiIRMecT+!LlP`CKftU_3V>^nO!b~G_tCp=Q1*%73josMI@adrJSEismA(7>R~}VW9~&PDc@!6( zeuJeiO`SX_71FkcAHC5zag#~3;-FP6oE(UJQ2Q!sr{2s&pe6k3?5tlU z>ZSEp2xyu{Jj#a5lZxA}%C$QE1QMiPaKRfFkmdRhe zI})T)c5Ncd0N;?UKJtDV@YpOXaP4_{P1x9_7RrKTAVEg!RD^xz zHJxL7_{vVkK7dE4+8R&T>5&#MKg~vrKCKPtHiGuEyiU$G8h0J|h-SQOiWI^V2AhaP zU)?e?!CfTX#Y+?&)=4P6as`K9nR1!q4_wQdeVNCu#45)M0I(2TF(iWaQnd?@f)30X z&Y6S?Q>0*5#r{}7)Md?;z_PwAQL-%Sh3klNYe78jp!KFT056ZsTFVc>l*RIaE+Xl{ zW5AS9!YcLK(bUH(8N$~qYElQiSta3@DwXv{qIn6n*i%|4rg|H2PTnIOP4Ed7pfFsI z`_;VOu>Ahj)+dkssulZ$K;jSDR8iT;Ww4AVMfQ|Dk*w_tx5ZAv+y;Z0z_o4{7ytg% z6~V2l*C&}2DYWO1t!i(s-pNpr6bXd`Gv?!DcdIniq0czw#Wo@8)E*&$N_sU$LTJLq*6c6_YbhKpmoH7uv+DskN!`G`_Y zjMc@uO~ms>QCAFAmY&xfcv)NcwX9THL{jK+d*0%t?7C;--K%*9X>H(;+B>^j!Xq9D zeH)1dSuaA6u@}AJI0=f<5k&1WSk42v%QXALmpA9j%P`k%i!K6J;kO@1Ix9@J(lK_E z4^0clNDIa30VzvfaT5ZM1x;>;^KFFTJVwAtjObOmr%U}r;fo)wmE{+=oAIRJvCFGn9nt9G7BXji4*359Y*9**!!dEseWP?h2$xq}g%ZFX*r z)Mrii)#;4Tbl+u+9`Bq%Z8qzzQ2FMF&r8op=^-av>rHHj_p#hVZK}xumV(GLYM?Ly z@$I@QmjdwBAA`Wt5Rh9qP_Kh5o8N@8th0lh9hbG~RP^?3^RVv3QKf2wV`*MTR`73R3~i z#1*%mccyrUsr;ha_t;5XGbn!UW(5|X!VOvOam`c&0cqf+W30-@faYomr!G+;k6Iv1 zdJSxz-EpsOClJTqQS~-}5`DGIb7*?Pi54q;{!rcK1|0=XE6dfJ88Y@e2Vp?delXRQ zA@7{{xSYG0N?GMfsls<6T^gS(>vo*6txU~#CloIG14gBVDfity5vmHM%L->!jDZc* zEeC#D#i~&|E-y=ng`^v9W>ww&uE9OX3!@r^PBT>zrg;nWfvJ-pM9qrqJVs(Yg9~s* zo1el4Jj(jV0CgB1RjGt%pT|S__SC7>)XrKgjwc!taT?fVN*A{9Xe*G{xb#U~lL9bF zD@sl)>tG2}rG2JpSvh!V?kZAbl9b1O8#v4`L#L~!)n=DYdBjahcy~+g38|wgZ#0{l zvD}N;%h+T?zf1?VHpZq2ZPSRx$EzL7>#<3HuxY>JTM;mj+`ZHl5hIdHK1pRF(~ZwX z_JgHFt+KZBv|RgGvFpOpBA!g29DuJ8e*I3!l;*^91fBsModnPYcW1x&9LeY4=gHVR z4qOVJb%l63VN>939l`DO{^Mu+^rpiA$wcZ3?G???ZqFOT-2BlZR#c#55Yh9xuc&$f z&ImnUwSw%QGFC0ii&ruj+pt9CuFdw=vKmx&<7&BG#l8~rUG8OG7?c2pt|ST z^qL=MrrAD9In!r1%>Uy9PW8jwrU*$}d7WM{sY143*m%`30_Yq5f$7y8Oe-uiliu5f5Qu$%IB`vajWr)P-pv^yjlhMW zp!R`)<-6aabz(@Neba7m4f7u8k!P$n!mm~eeQnHqeEi&Ngvn{6pB>(Sl5t(D;WbI+ zl)Cu{RvQ7VMn7J8eZ&E{dohF{3&x@!g)M!c$L&Ke$~85EYtSk`BbP561Hb0ySrZj8 zT~xQ>M*QgEZY~0wZ#-FA6bWiwWUk(rUw@8LkwDJp=X}dyiUz12W7eqI1i8S1Wyh8$ zNN~%S+(DZt|4rCR*p7_6JEU?|%yT_SRSOe~n2pPJEL9u_c8d?O?2WtZ^?LkY znJb#*XF)yzTojkbl9c-`SC4Zk6|{?jrB?Yd5_`Mf2?vT~nVADW35wQp6C}IR9k{vz zqY*)HZ$Hfe7?A%43?>fhbb`xVMluIbq|mH*H$D$fPF7)lpnpILAx;pzK_GyH2y4#i z?$E|{dE8F};?Eke@vRZp79>6_;PP|?;RdXVR`}f3A`NQA+Ruh#QaeIwVZIXSzHP56oIpr>vr+)|6>PKT@w`RTkc~{kvzZ!rsU`< z%)6g3(QF%CIbD=ESl#2A^%APHq0 za$cQ?W=sgpj6;Q)9EKQ1&foiEJSb-3RW z4BvjL&GWK@Sw==tm>`z8chG`-lvDXl3)Pek#oNHHob6{tYGYW7*G6A9M`G5lxvzOY z9$tNb{`@FHG~M4(M(+$z@~uzWvFS1uq@@Kbdv1`lPqe8|a_W?d3K99m%C90(Q-jL= zQ(uk+q_ns^2T*u6^sX~#jHImxsgg(Ao}P7K$vqN#G{Ob_$@cq>?VU`s4C-~YcEBdz zk0NO3%vI3hRE4dNke!>g*Fg2VW--h3{D&^X9bzuj>=EH`#YoAaQ^`3IUlYEa!Q17> zv=y&Q(6cGfar?MqhP;u8EV2ODKnIgVHBAo1zEcU@m1l#0T;49Q&b6_oN@i`#e4njW z*1JJ^KSDMpnUo)Hz(M}6b{@c5eoLQg)X(DEJ(Ebo+Ps4AcjDJzQXviQF!b*Zoop3J zMm+>fL3>;mw~(dpnc)dcqQMJOkp#ME?~lqrq1DO5Bf0jao+4eK7CLHs+RqWpJ&V@k z3-hQH8>jv`r2gm}8lRVxn$TLV0qInOR^BevM=p>Io#p=On7nqNF=SfUA6^45@ke(I zEI3(*8#GA;&M{1`^EruT?8i&KPu1L8@Z*ve61KpF9PtO~uDFW$iUX0((cIJa&);+l zmAx{q9FcgdoL75toA>qYMaM|dicykwILSvsT(`nPNYoZ_hw>KohleJ)EVCB=SJAIN zkUl*Pp!g2j%tslVjnZD!xHfjdPN>!vwYk{oT1$BQvdOPfMAcUM9TcdC@Ihuqddn4$ z=;Xa>o>39D+B&gaif`n=C7k{f@nLFv>kv~wxFV#d5+Bs(#aB%qsXiI?8(id<6SLI9 z18wzd)4Yit^U<@1JH8(K>FrJji)@1!U+z_d?rgqWjgrB!_+!a7x@;n9xa>gpwI$1L z@TE1dW`dBp=?Qw=;8m$RzGV*nJzhs7t87bm*1@4b$~4FsPx)&4Z9<~a&V`O|8c>iD z`BD~!^2R2DIOtA+5sh_}#fC@!l*OvLOn?Tvk?Ts6m)+8yL_8Vu7+CH|WGxR+MQeTdEsjP&P|uFHSo*idsI6*IyyzK``1P)h|NTH7S+qZ9HReF+ ztGlwG&M3Dhr>ldu=VtZ@S0THO+%=+XoRy zMK-%)tc(@x1;Z-_RRS#bKf2#Vz>R5zO~+B4Yb@fo9|k6vAD5oZch_pl$xgSk56n2J zxfz71yPMHFP#6Ys?0tD>L~VR%+Erv#Zvc(~DF4jF4X1-az&zXT6n=ktm+zf4o8QXx zUgN?aa6K!S^Ht6%3#sCk!)aS&GQ^UlNQWOX$R+Qz4v7m&-$-+lFf26#%&F<=7=5c0|meTyrwW9lTi1qSyy05t9poSOv8D( z7ocg9mea1sMvn$t_RoBD&6<47$_34mn&b=!vjy(c-Q6JM!FN-tjf{R;EbXuT`H&Kp zMXnZ2JIuZXK0Lqi5g(@&uMnvhX*0Lu$;}=4-*l(lziDkTpe7hVcB#Y(>cFSwnZKKh zDK@G57FzaOMooFaC7s^3_VMbD;E#d6)%U`}ABy#+52hys7)}~?1j7W0iELqY9gJ2P zh9{1((TKP_k_B8T>lUihU=95DAJx&Y(J$}K``UELxqQ}48t#ypVI$6)&F#-+5gVq|IVP8*nev?%{?SHnIuZWg)ht1@HsdIj#)-l;Y+M=WLiFK}>){d&N22~!2m$h{| zeG}M)mrN&`Lf<1UN3eFdTYwf@BVf2=AR~!LJD9~90WZ=vICa;affHZs+T69(7zFr5 zyquf&UpenqWcTfPoveoPeP65HJ32#zOf39&tHw~(oIJ`LOqN@{->l~WXo7sluZtpy zACx&T^JC{{r~Iuy1aybmhHA#%s3j?y4k@}-1yAN1a<-BrqVB0V*o78#fjtZdw?Vo6 z9+$rGW}{^a0M0fwxVjvf3DN+EXh5b75(7M)0R2l`>d`Sn3>js+DH`Q z(h6M{RINs62|Ji~oj5+30?^>1RTW@Jyk}Y8CXMrdT>EB_(?Lxr!E;l=Vbk)<7R`4* zD~gFZFD7I2#&)9*oyLkc^nN^LSzPl*wWP?ayUVld>5If;bpwMNmCW|Qh4j@1q6fdP zEnI&vmppr>1<*q9|9w;=1dr7#3yv#OUnSjW0sP*pJ2yQ5Af^-~YlU){i}-q{8Cb+# zU|$nf6$rop14h+JuN#QD^kBm#*9W1|j-eCQ(gD6{BK3jx0_qf?VoVS?4rik)WbOk1EHX6>BDxs@D>%%xlBx!pFT-_ zEg!knne~u$^rRK_dY7rFcx%u zKJB@Jm}0>T+Z8h1pRL{7J6EW#YV&l@NY!L|%&Ms62j)qpYR_ln`kPCJo&&&G#!n9( z+KX6CW3*zI-gSQMT_@vOGyFBlX5brD@)|(Weps}W2S4c|dJDL>aP_G9+1=W?d^BrT-@VhL2zx!~pM3v#p z5d9VCtgJuj!Z^6smEc-x^SAgEWG0!cmQs5vd-4l>IxE}sm*N9vM($OXQn$x#1^CR# z42#@U4A@CTl_Gf>~G>X*exbpiPx!*wbS-R5##%p*Mj!()ak)v za-pZA^~IeZv8S77Z;7yN2urR zY}u&}1@EMR{@Ay{XuuFDI% zc;0nxHK^sL0Z+qhqU@iC$BK!q*!1TJoh|VoJIME_Wmw(4`t4yPrMx3O*E8dGulnu~TW;7m7(r#xNyy(chJN=7f@9evk&_4mPkOxV3x9T>}FUcQI1W@(vDUsm$=?BHcqb91H67N`7g^q7_e<5iuEB;RRVIWSuQ=<( z)2OJ2E))E^yj#tanMUn!NG%>FHv3#^e+gbi37cwD{}Oe8g9@7cG3wuUe7(ck%$TR0 zZb|}H#+8RBPL@zfMJN<*BTn!#<6QCZFoH^>+-1 z3e3@9Vk>pyuM)WQe)9~qlh15D8@*|FVH~{Ody#Q&qpwPaT0jc{Fo0^?P+rgim_4z( zj}Hh>Ra&L&dSpZeWr}LnIR8-Hz}(J{{TqzL#J2vqB%9QQcKAnEXrZxycsU`^UpS`y zc>J$Y28dKYq(jk@Q*boiIKbxAuT4T@yA9x3kO=FL#YAoPl#Eu(wnD#?F5O&YV_EjT z6`4Fju;klx%UmL$W$d;xiICa%ogve^Bz$~_0o>K~t<$YCidgTEl_~7k(j1-;fe0bt zib0n7N0Z#Ft#9{1zk_tkVV{Et&=(mSvj)Sl#RS{-?=z5kH%|Umc)TiKL=(U7M5Wr? zsT!@7*1lG5R4_e15ftUcNv!xbvs7&B)kWb+`1&J?dFbX#Hp8Chqm-tXJLMWhg<;yC zY{iS`iS-TpXZ?6+8e4Q6bEv_n1aQ>bS0G+YQS#Frv!N*=)3QO6!w&GEWsU@65$$ml?nGhE1r%$rDz4KGZfNJt+)q4q=i_`aLgOfZjd#v@ba+w#iKy z1bQ3hfIj)f?ew>1Z7C<;=;@>1ES#gzfRM?GpFH6mybhL1Op&D3c*-LtBDPjvGp_UT z9$-(MhOXdORNGGAtCWW{)fC}JzrGbczjq7euq6PTzZ@Z`0({GFo(K?~I^WDE9qXok zrGe9g4`Jx?!dBi}Wihdk#XVCKuYJ4i=Z{E}4u?Zu>mKZj+FZV-Qk2)EXf}VeJ?18A zxp-+n{Ed4G$vX~)0PS8Z?8V3Cy~wnGPxY?dtS#FgLRy0X7yZm++=1>jIvwX(*^=iD zP`}1HlVb(#1x|a4z6r0W#sLA}Ig|`XaRl@- zNv3vweKxa2nkbMB;Xi~zLx5CB=yWFL-+yD>neV_&#M@N%(^rT+Sikt};n!}Emd0|g zmaRveJ5|M2^>^S|HkMbKelbbDsdD;9>HYSZrsJ|8cD}*NFKlW^zrJh*M=Z0cyW%Q5 z^&@k-SXj>bzTTdPsMo$0ISCjoOklpW(y9ei4d`8uc4wr||GUk#y zb`MX&4scSfGBU{LE({hPpgKCKMsy6~CgK_ucdx>d&AZqn)C57%chUr8TJ72yZRuuq7}}MLYndNcGsF5dL{gQ?=C&wT^%ZL?{`PU_qdKe&meQb zL)zs>?Wgt(z-hkwQNOO;L~l3VJYdJEwC3G&h=30Alk`d=3c(3SF-|R$5A?p5jabGr zLd}zvrXS`MYjb}V`}}8@gHP*T5G6Fkr8!saN^h>q`vmT0S!2)QxJRbk61+h1sh;90a)$A_rj1TnNLk6vtyLO-f2PCcp`4?Q{9AAkPBp<<-ZsHR_xV}S!Zq`ajA znAKAO)elV~e`YBMnW=`18y0bn*Y!8+393N5&*$Qt@&9QZ^yU^&yd)n0jTd~zTACRaTog0&_zyxbRV_OUEswYWa4q7?;LeVbVX z6&D{dUdf|jW}X@hXXFR+Q-Jijor( z`!Ky24}aK}gKh$kYW}&iymEK&6nS`Qc7eOeFw|kpFhE6Ti~shqX|Q++Znbi9(KDMn zK_J3I3Mj-eTIzp?{eJSMk;;`aCFE0d3A{bO(5Z|^N1_?fERzW~ zBL=hr$X&2qCnnZ_WPa~Hl@YSZ2Eir$-8D6fuo!f-Y1qRE+aG5jN(r3mOJ+jfCl@Gu zPtEDTKHh<}gV@#s%G+l(=cj9~z-7Lj<3ZE);Z5VSgM4xoIa_o+aJqo%YVVRhmCT}t zv&P-}$Hgr`P-nHEGY>FIO5gir+lAfmU1P`tJe~$bhxz&C?*jFtxB!8(VHn>}BfR50 zoxr~8lB%T5io#rG0a@rF1p%WZEI{~q@|JF83)37 z%dugX+FV@^&3XLTt+ASbjo&Lxr|);Y_Zz*QnyE`?q%hfMWz%h33tMV&p=CF#7Mq|E138!G(Jl&m|t+`{jTl%X9iEA*P&dyfb6xg^YW*5w!+@hT}YlajwaBq(0 zjyy}tJxbQwtsKl6ZqZJdS?w2Jo_WHox%Vb2e889_t*+F1!|D+F$y=29A@rE?M$%4t zokz#Bm(b;`u9mjQPR0Ov{t7uJQAOcT;vp06hz4>#PTy^_QP%ByIyZzrxnd!ExDQ&!rBD_pN4K`LBQZ?3(q z3@k0o21!*j(9jLlEUS$*pC5sgW0CGf?}8Rn^Gn%z?zVKlm+Gz84x<%N>q)QZ3lS(L zpdLdtD-hrJK+WdA&%_%9sZl46R83fE$x7a&oi`J|iPFp4OnL(E@no-xsJY}ZG0_Z% z_GvkYJ`SU_4Ygd|y(KXMrE{I=`@oUY_J}AUe%x_!1TE0VmuGswM@huqEEK9tWfdme zquY^tnOgAzu->D{t{H{)JzOW*n)%0ZD!-sp%Wo%cBv~!VX(CE&BzF9yVCAL-(-E}_ z?eDD6JljB1ASwL{L%BnJ8_szti2|^Ol61T{GU5>mz^B{ck64-gZRp%ks7u?ec5LfA zLi2zht)NvBPp?78+@jfh^5DjyQynV&Qvt`|%vYR;E__&SNiRZNt02kf2Jrf3&h?FQ zSzTKFt!UjtDoQB!onJ5>B@Xw~QY6kLo!&(1c=LvK@Ni+vX^@DVUW1u=6$Q)eKe48= z)liu(&2R^{;1Yg1;3Wt>7=W@kYkPI2g{Vv&01kU`ZLP$F9d7=Ww9^EAfN0VTCj`(n!S9zr|M)6QzkAr?*>qpm+X)tgVJ$Y>Kg5^vHRCgd?fu2((vq?p)wq!>ca_NbB`8C&@sH?h)E zdYg}q635gh-a_fDxk)=}gG%}tSqB?eVpa@9(KbcUPMjDsw%V7CJ%%;Et{u=Lw48Yr;P+4rz z%HU^O3Q4zU#YwOL{~Uyvn>3HZ;>&53i+gVNTA~!`$>N%X56oWewG2C4D6hhA)@G6v z>!~WRcVHzSL{=3h^2C|RKP8TxriHEN`luYQ(2AnEL@+n4VAgnYRBKgAxtGKL)gYg;fWO@mRdnrgr^QW z*svPYdhO$7^fX0>s{~(s;tUShdnNW4dm1uIhow%M@bnqbqea;t9x@cCBlw@)hTXFGV+sGkx4ic4xqmec5;tk_ zzZ+@)*^?FMp?!5S+{TWOPHP@Ltbnp6n#6k4B#Fs9qymz>pNyNkpDE;UGZu=wXYzC$ zl4l94jhmgGE94xJSCL4Buo#U=MYhm!HpFRU7h=#pAYxp6Yn8vR2s<6r6ycrx3QDk7 zO_PTmDMbAy?c(AxSt9mK9U5xjcHFYS!eKO zYuKj?JYkqu%GYZ&7$(mKh-V&$cf$6*CJ_bW`{W3%A=6{`It*-dSm=T4bM~X~XNo^E zs9JA_KBcDRsv*mVaCq9~eUOG1?_;l5LVF&pxPQLG@0fBSw>yHYDerCgk}3}lD{JQU zWD22CpBW+=eqZlGhtoZgms%{WqqvqETx>M#(S-g2*^FVW`W{F00p7O^#?bR_N~HnG zhAHEvHs~84I?QZ$x+HpPDjVkze_ARDkYY+oio|WSf9lRtza>18$2pyePmID)7(Y%L zQRt2OuRB8dcr1sumnomKDM2FE_z*7lEIs6T**M99$H^_&XSDF+K6~!i*i}dL7@RF- zqs~CH!pRN0P+~Euu{xmiTmkmB&*I58GlS)FlP$Dcj)mc6!@sLlY(Zboc)hBQB2S&r z>c5t_786WjcWE*izs=?KkA9lteK1)I=tKB9Jz>9I!KYRX#Kz7+9>vj8-J5{;}q9jxK^F#y~4Lyp-HxRH_XS5MGbf~(^!uWyee=hPE) z)Tx(@m*AMMa zbdT#~1HT*O)LG#ZMIl30I%&Y9xy?_N@$pUulTqKpkfYd8HrK>z@$VB#bboyQoq4D} z*ji$XR>)(AoFd2*Vdv6YpE?yY&IL2AdBg$g9buzEUC5-M9Xm1h7F$}?Ay9XWzi9H0 z0DMOh&bdFM<0mJRX1VuSDc9$mbaWg-$v7_Wx0%%ocLZ@7UWN-d$y!0r*v}Po4V6)X zGg>VnGdL&0;2K-9KVG%2#GPAPIqqw#5&H4Gur8{%cwaCoDS{@G%THBXsNxzsiamciKV*UU0k>IKKE1K#w|){fI?J0bTXq4|zL zAPj?zxCa&bVbXeLB3fOa)e&DGLbtJZ!h{oaLO$+F}6%zas6cKMv@2>?ojOUaLV($EiW~o+0um{;m4ivus`Z-l>lxq^~# zph!pEsI%3>KCQBwlj+%ittfcHj6PbriWjNgrRACyWFMS$*c0a^?ea^n9<4%wFj~3n6p^Z5BfL zlzYo8jyFqSl{o1s1y&In544=~W-Df$s*7gaQ7$T|;xTp3xt8RgJr|7ulw7l4<3L|; zf*IdbeQ$QUPvPe8^)p#4X?1P^HK6ePu>zNUPDo zq#7s9DP>{vDF?3G|j!8wj$22;aY`;SRxNd2j(UtbyyqvlPN~&y} z!TI4b!O>t$2axdC^bz*kPZcHB+evD!(ndq7(l!$L!xcSPAvbY7Hel>W`kK|udwm+r zKjNlSHge=#o%r=?3tD<@jb6pjEXqBu27lS(t0y>=UHJXQY+1qkVJ2$b?FAiJCwzxhnn32cT)%NkGvZ>GFsD!r7 z*s&BUqmij9sD{^Lzi_@DI1%BB-{HnBiK$B5U7>&x{!tY`o=_#RlmbJz<$c(hT1o8m zn%Tpef~#} zS@JQteKoWCFrD|d@*`0ro_MZKfkw?Qa@caCuD3<*?TxZPI@l9N3<4DKYOG z+ZChzHGN!ou%)u8r1l7HI;GdxioGMhBe>2S+giB_8&}nlw}IrJf8VyEH?QRgpS&hI zVWh^tjH{qm(XOr;>J(UO$bTcMqbO?B6ZHw&`v!;iIha z3UXML)81fGoj-I8r5g-+yQYVwo-H*~O|r4cDsL)rCaE!7pcO^Yg{cq%rY_op5hzUJ zGi4nHY`Etu_L=g`wX*LAMd^P1{+jvWrBfRaq~ee7WP}%b*LPo@iHpf)Otd@VsRX`E zX=-P2C~2pBKeu4Tr)^o1X1Vtisi8X+%5pr596CLMI~x>vBChB25nFz1$i&<1{>4O& z7gM5>XODy7EiNg?2y5L7PWPO=T$yru^>Ii{HzjB;m#?Rm6BA=GPa$wU*ovh6Z{|0V zEQYV#=%0JF5!>}c9?Ng&)qQ!JmIHnj+Ry~QoTA%Ptx;j4%))I$;g&}mH*JjTN@mOz z_fLN?;K8Bt?B!9Gp5fG>@<^qdKhC=8RyRYGL}w~WQN3zJ4fIZCqgIf<3`tWME^{IF zz}U*gMAFMJxS-Y8if&N1CCVLyR78h~|{wTzD3i^Jz9F%~VP|NT$l_Wfxx2Ey)h#_Z+aw z=F{5Ptr>Ni%YTH8xh(*}vfaAXA_2&O8Sv_*rcIxD%t;_Oy0{;lR7?%s12(nV5C0llnxDQtewF$#)*Hjm7 zaWR$3-42tJs*bOq^}NM$%P)!cN)v~6FR0Q(UmqvD4CH^}hY~C2J(p()q?sL?6Bvj9 zPREpLq%lP}Q#BXvh<3BnWOamhcWR@{CJ7!D{t){MQuCxqBbjOnS_OwWFS6?OJB6!S zs^>eoafHKTwkZ6$ME!vL zGG3IaK$t$rE=HlWR%8}3OGaMw{VdG(6gq7o-QyBzN!B2!ya^FH`6WbfxfSc4@f$r$ zs;=-*!q1@r+^R?8elf!$f2+ui%%o%|H&4s1Xa)POD4MCBpJq*gWtY?WBP8c$x#=gb~8v0U<9}9V|yXa|(5=4xn&7f z?acB&gRKh68k@x~_9;JW5S+Mqeqsi8xLWR!hyHlD`s02;$<(vS)mSd6*C0^7o|$h= zXQT$YFdxfPQ|!H7lyBPPYfF!28P!$JaOhZiEdCIhQ{`D*HdWpr_^Mw0c`JRmv_6NZ z*((eylg9}QH}ld4p5%n@11}oh4zKY&VRDN&Mmm*8kE4Ufu^4wvv`E!JPUVO#;ZmM#I;`85w#{LpvtlnjQ9;ktrV=>U+OLQciYs}IXQY)HaU!b47^;B8nhjkcnlVe-MQXJwnul`YoZRaHwUmKq(zl8mX?0ly(}xHK8nq%`9o@f!F_&ZFxvU z*c608!JwUwK#uw6iLw&I#(@mwr}8hU@0nGl-6^TTq_W|L#^NM&q!Mdz>W7K;9u*X> zuc;*KEacPWoYws-kVIL|cv+?h@Fk0S5&e+ z@2l@+jem1ax8U8AE}#cX$PgG!qK+`M+cdr$x2@OdWy58^y_Z`fOl1Rt4>9{ zC*a!T+r-nF;#;6Qv|#Tsify{UGtBF_V|N#?n;OAu32@S>1FDW&$(9N3T_4FcFE1U~ zudaYA(PnBp$W^oQ^{sCD)O{O!7CBPWvMWuyc3AK9YD};hwQ-P z&Q{L3skhAZxiacTDzRBHQ(Z$Jl{y>`j=8o^AHlZWq{7duJ$2f{Y9`-fzkc^(#`>*h zwn-Aq77Png)D6ES%+hZ(?V|_xSZNGrdm&5Qy;|-^JiGV;#sNL85jgyS)umJA6xwJe zYfx08P*0Uyot0W(*q^M=4-__1)X5_?^B+Cz_IB?|(`~9u($~KDS-F_li|s5d!+yUO zXGU#z)T~OFdg0`x5&Bgf%g;)J(sE*Sd)OW?#klafsTHlnqDHgL$sx7%E>2;b?x9a< zX$6pGV0i^D%u$fP$Ku=D%zm37jGZ})Za7LiaS+HL$hd0Pp@Ed#LWBmm9wlqU{xJHJ ziy#&S$mi@6swQwQ+b48+a4im@kH^`_UQ*slV$_Z+afkEq6LiKc+Bj{Q6~1K0)~SS8 zbP~p^$l=b>hq$$vTF*j(QWd-84h%X-#no)9j8WD zp?LqlyE{}N4*ZF6A3`^*g*lzEKsPsJtY#Ut*V3S!a{VtqdY92dUB(PoVwecjb-rNn zSb4_wKXkBgEl#`WBpT&!g& z#B!OZV$hlLD$?=BOH|YssSl%VeGxP_r1W17M2L~>RDxW*2l{I>WTwae_9si^5;S+m zU{c{~1UTXSPUh@FmEF06xqka%cFw+ty*XP*^Is$}%##Rz^j~6kw7HEIXAd|3wAAW~ zHSo?m9pV$s{t0dR(M^@~1Yvo~yn%{VxMXbgB?{=}f0r};>jV-LWsI#Zt;Bpm`cMDa zAQK_Qh5!-XmkIpKGGN3KU`!<{pPB;^gD^PPgK+lI##TFaz;1*hUKc)*SO^~l0|y16 z*LVH3F#6pn7X|=XN zHvT1Ybn3pgdKMv9a^GEp?giQrRR+X{{woRa* z<4+v}3`s~`_{dAsu+(tp#f}cqGTW-6{0!*ww@6on=J=wz6z7zv9cl z`-E`EzsHYVTDekY+REuyLIk1rnBH|I8r1PYy#G_v#)>!)H%u~Z8Q@a#u+W{lNWWq+ z#?SJ!hEgm>Zh}776?b4@hX%g+Opg;sbaApy&<>wM(LIlhk*EJQX9)1}&-1lKauku7 z68C?AEd0Pe8PZy#**zK_pJ$e@$7rxZx<>p6-w&;5jdkCT>U)Yl9zpw4JTd`?lpHC@ zfZci*QZ+^h{?@vwSH9sxhX~MgkHeSo18U`6vRo=0rx7$8`*@HlM8K~^AM3xJC`}T# zLG?w_cJ~vD_H881=SX6-QNTh{fWJ7k;V=B(on@hPycB7z-uMZ^=yLw2nwp+0cSfUi z{c|;?OUBJ5ms%Kpwtm`?a{iBXzx?PK+M8Fbpkffc6WB3ijUGU)`SDrM`~15skV|C! z>B!zPfq?BBb-bbwVpvrIv1G$0J0lJdE#69BaRhVP4 z-Y@zW+6cg{#cJYXbve6I#$7zosfKRPLcyMvcER%nZ(s0iwJhnJ8B*`?5bs>_3+8VN zbR_9Pa07@;AXwP?je-YYbZ8xw(kP?;Y+?3fw-iu4l;-ug$y8n5oDQ}0dEcG7VU5YI zu#C{^HJF^+n%%Qqn%i~xV!}ThN>h3`#dMb54)R(-oQ^?-{$-xUR;+)4JrO8*Q||mZ zkS9<7;UF5FuW~B!{&v5esslhjm}!z9b^5myW53>hiRG8~CeNptay`(;kI;P4&9nQz z(R=CpUlr-{e$(*o4XBMnyGyY&yFg^C*EjkJv3HQ z!!HwiAb~`JpD1{pNZOs()tW$VyseF@@GNWea7e8*s@R#M3*3}$OGnUaYweY5<_f8S zP=pCa*^(GlY|P$(ZvPD3*=MhJ@{Pt;Ry6RxWvI^linH*5Tl4mP4yD)STZrGJflkE8 z7QX+O?2DFjAur2BBgH$92RP{c_}t)VZikr|9#l`cKbSyRZi|{QmsMShaSHifvPK)v zE!unP=)#%Rn3lQ)54C>ZhjSj9;EBalQ(c%BT1PAi^JT6Sc1`T@w=}%_CW;g_w7J^W zfDdNZ66)`b4_EpD-jb4A@bu}xlL*?tF0xK*$JNf(;;P30>FpqR_zcO{>yEP!1b6Cd z&peiYPb(+o4VHWT-C?m_!o*ggF-uJ}+7pL&t)6*AW#el~{+Rb;d{AfB%Ro0VBmUDCW_d)t>!vaV3;~*$ zlGTldTx{h8>=&OHTa6fLp|$-YcYK^~ErU8{8f}A`EAxym>uHl7B3K$tNYFz(#|Yf! zi*4%UOKSTI3d29@0?UUr-+DoGS{=`Q?oFQhd|wC5qg(Mc^Bt!;8I3XZQ$R&SUg>f8 z)ThASm%+@o*60{^31@y{K6uzn*659F_NXl?&&jYmEx7TlXw)UvkP|X76^U)X*IM7+ zMox<6r*OSMU6Kh`qITT1Z3X(%#bO;hnU)KF&W66U!Wm*L41_%zL~&?pg9} zrtE@?FWRlWBxbX)=b$uk)_|lGv(?#FS%opX=lgcLvR54KAevLn)6uvzenR+RE`Tj* zVuzpjO1Dgrk-nE=K%p=`9HO!%4-4Xq+RS8T5~>)??(Mj`TbaB&`RlmtFD9}E8FGWk zoZCfyOa%fvQ%2CUP_^Jm#~m4~3Jyl$?aDsr&;DT`8bmA`ce}!8*36uVT&tX#({qgT zz5|}8F*0bSWwHey7D;o-IF}P^`GU&V`FAs4&@x7@rarMul7h|*Xj+O z&=}<(`a26 z^|}-p3aNcmfduuOANEb0$q>OeyUf~@L_L`siPBz_@_ayA<|2u93taJ`U@kWiql>61 zM(c_-Rx2-D+}@mCOkjSJtA6&fZ#wq?#mJ`d@j6WFTzsnQb#~F!DDpm^XH#F^&m;A! zMuAcH>kejb zA}J(MZSe^L9w5wKcAhqBDQ>lKKN^3T{<DW4k-EnZp6#kIU85vZECTsmy zud)A`0+$F{7P7d5j*HB$rhb*jQZ;dt1bV#Top zU|9Ae+T^>$uefVmP&Ro$mfm9X=nS{UDC}6eu$jn~Xlj zi1h8^^}Tw=dV{-Pd~_VXw+2I@@W?a6<*jKS=J!{4m)LCSPxI`!)vbmSbbP#6Za8}_ zbcmCyrV~7rjsevlpK2;xn zxVTRsw;vt+Dpyk^aPn_2X>j21QVi86iXIw+K}Hcz*|gx6U;Z>Bw5#`vlQiAaaX1ri zf6rWFosC?3-ne?%kEMh<^Y&D=bzPUHC&QW;TXa6&l@ld7Oi1|QD9}?HY)sWfyLtI| zX3NE6!6;_BW^-E57)G?Uyob|j>syjsHZe4xviS$bi0<21z$42#2-@A{aXmgQf~FM$ zm-cgkWOmir0H4*7G>BDAhO7u$rZ9_~U^#GJu40@N%Ny47H0PBxbZky{s*8ObL0i`) za4~7Y$Q($S(nv507RThI0Ig09@93_!0a|@8!4(zm4~+%59;XrUo1@v2<(VM$1$osC zVy~qG`gq-+=jS5n2Ips_Nps>CCoVJBFQ9m8W4NZq(Qx+#(4Mbm@ZQ!>0-9GX_dUJy zuzg(kSYs}B&Z~yArc^apQL!dbSvYvRp^p&Gk3vX`%RbyLH=~sDhH1Ld>KE5shTjN_bYH|b{Ev%pW~ER1bFDp?5el{zdW7N zS?|I&Al+k4Ca3lZl;&`1nl5S9H{60;_fRw;?`(y3IyaR<81vZK|W)fvrPw51bV ze9W+PL0;~rRC~|LM#H*wn2krnycQExY}x8h0_lQF#lp^j zNf};T%yni-!qim7AyG%NLvuZYl0M6RdW&}UR2@ZBC+BLbSS4x@VoM*LvOwFl6n!`s zcGh*qPUl=e9$Ofx(CqX~LFG46$6uhPzZTPgLU-o6QrfA(ufoieOC7Fuo#lN@&`W70 z)WOw-b#hNSn&&^2;2F*RH8f}$*4!KaJ5xp3S|m1I8cFN6Ro6`RuY4!F&^o`im>*_cZU{UN`?R-nDKBD0c6Xq^QxHonI0B6Ru(9ab7@&hn8{0e&(VZ?V?_&c z6N4^t?v#*QMj;vxhD8g~wrWq_X8oOK^3p=#9qEh?pOy)cd!1as)2Z2>NoMTs`cX1* z+;!}ekY#wu<)OA<{@Yyd!p|#_hH+v(i`g@zH~UdIY|LC^k?!=489(M+K-alw^h;t< z^#)SdJkO;jp?6rJ9wX!I$ zyk69}#?&lMZ5_7<>L|3(am1D}7MQ?nSl+_8fpal0J+|O(>sDqurB+jvF%^m*OCJLH z8{_s!%{~Fg+H<7fyN1`me!9<>U+9-b1-x`Uui}w*yz#KHmCsW8g||xyZ!aZ(Dv(JG z5fn=Wks*4eCPiZ@x-iplEVaoJu8x(%K4uL8p{nK7rHvcEA{{@T_WRo7UABBvMz&m~ zt5VG73$=4&34x_;YAyIv&Yt7H?%jee%#Vf;`Om zR@vyl`=NHfJ8jqI3n0jOhM}M2qd9Gwo#R)F3JZuwlh4Qye1-S92LdYp2$?$MMF3G9 z`#tyPkni`{8C3~mkj=fO;MG&KYkez!%yK3(B=yTT-gh*WAF9^#0{PQP_PT!PAEKQr zrA&nhg+d@_ismF&QIlAmKeF(xm;T}TVtbdd(PPYdWn1mG;e|#@67lqX$nZ{r4QS#YsWRe(D4f`MLVX*Zd%Pw z#R~OD5lMH?TbkVo5MUOk&{S4p=08Tze9ac|^u9%gcI`N`Bztb(yZp6o?Yzqx{ru}W zMB3Ej5mWyj9wLic9X{tGwR{VYjp>Fje zE-M2JjzHCw964OoDLeCRE+EyxJ)uW?mnLg+$XTueGJ(4_3OR!&(3-QtVEUjZdZ45K zQLkU@9)!$c(*Yg|qj*>tWd3g8|GBQ7wO=y+I4IVwN!ZD(KHi*R0eel3B#BducNwnk z!DAtT`RW}ki*~j-DO)g^I*M8X%II}woPjMM?AN2Gvs0h%?O;$3B`~yHRdehID z^*!Ow148shZ*CkKO@;O%E&8n)l(QvQVj*Mp%SHGLj&pk0*edB~2$#0#;}tuGXwJMJ zMAD`)ktn*&mmPXZ#E<$yO7<3@thVi`SMP(Cl#~WV{L7qMG#*mCMID{r#Uy(ij#`Id z&L~WsVtd#F*axJWtDo>HTvfR?>jiTmi1j zqayH?d`=iLty>@e%jCZQH;C2gs-isoMMeKXwA=UQlCOw20$|vjpJ;(CwW-nS`@8k8 zjNH${9U2otmG|&>!_wp@{mrEjaGqMWzUMUj-aI}2695AL5pMYpN%Yr)-5wQt{*!Q5 z!`b*E97F@qHgH;xc2?+n*vggNE^-}o)40%kg3x%@^;3b-6_yOPE~__f;a$`}_W?k` z2VU9ji=zNhk@mUB7|o$yN(wBP%mu;hI;}`qpWC`~MW+B3al(04&TnZMeYBeKT)<)9 z_7y={j*x>+CspG+ekHvEAQXwKb~20bno$^zYZTI6GHu#nw+lFup{Oh zf*GgU^G*y#%Hc{nu7&rTbgX9i@0~fy)QiI}Ca@Z=4QJ@CgIh98JKg?2Tc4l`%XIlK zVBUaD`D7%4jI(jChSFV4m&kQ{UBYCYm14KJZDLNh4t+{VtNR&T3V%_+?>rX|1`A_w zWgvXR+wI}t>;ba^bX5Vf$wh#pNW?`x^Y19IzdyoKH3R5*o%j)^sCm)xwN$>}%Q5~m zxs{o~_NWMJ)3&^Tfc}M&nE$|+fKa7>e)X@ULKF0pU*zu)p_#kbAB&p|+yu*))LWPx zPIV%m24olvE3$pdf#?T_Y!f`*c7TbGFQ=V23|Ofr{A>}`1|!2FFs!wKggCW`V+x4U zcXXK*NYsC(9W}A~zalC#doeA|i^Rt6v;UqxoK2L7!iXPx_yGO^?LLxR{ztL+AC4l# z0|pI)7eRGR3DSUq72?!FJV8=0>bRgw$4y9bM2L+$WvBk;IH|16+Xiz+8=!qXxno<| zpB@FU9Yy@ZLi6?(?f~n*kUj(mTW0ALoV~iBOA~!*L`)wff z!gt>V`BSvIOg7LO?fyh-@+pUft=~yHOLT#8Ix0?elH-SK%YBM(tbVS)YkF{u_cIm{RpY%7_L95^)bE*$xR=f^fE0C5oy|5x;Ea zY(iT<;d0dZQKris=fEbDpVH-%&xa+o>KYf(+?!0aDG5xC%#-ovjY+OUu4I$uhD$8# zt4T>o*3YeVwrueJwaCq*si8iJ={!Ar&H8s;cg>pqhF=G)N1QDVuM~8~`nQ)`Cnq^E zpqgpYbaD>wtd`lbj=!kxDD?-;+!U7>XVb&&?ac$Dx9S^M1D!9NcQhT^-dA z(OjyM)G3)xWp~CWQTG;|7}<{`luL?sN_tBA2r$x ztvLl8^TTwm4DKA@kqRf)N(FGcR!g|8&2XZs?Y%^ER+ZC0l(gjrY7$d)J1yvNa74!W z9sD$hKH>TXbLUy&=*;SLdz$k}=Usixj+^A<1`_Bd$262fZd|^cx-m&2MZcv`L)GO` z3bTcsv~;6ry~|ns7(QBVl77)o3Y(hOhuoOw?8dK==jZHxV|UY~)FkU9o!JKE^l}g9 z-3_U48d7Z3X{R(c>BMujOkBk+a;$+*U3a@vI|V2D@gn%z<+p4JHY}8weG!AejR*w* z5m2IJ+xS4x_RX4HFSx&n%(%^^nbxSI%wiJ-DoM5KvW_=T9Oc+DyVt`!08HYgZp zlt4IZU?61IyMHM`h~M%A$dtwK-E(3~(1ZVqAaLElVU>)ABm9}b`=BBDx3k3GA(en6 z;TXuo=OnuSg7gY?*IjVox(JcY#TuY+lg zrHl9oX^9bF5)RfRD1P3Y>23_xt9o7?;~1Zj2|}w zy#w$by^r7Wx{MOsGVkEC&qO%xSpMk_LHd9K=kQ|RA!lN46y`#0%A^C~M&?GW=rY1V zfR}8olo$P7iv7Quw*D2->}Q&-FTwk4APRnzUWVQK_jH#3wC(;4Fn>;8nyrbbpZ{1g z`!5)mhl_Cf3a%dtk9CCMYnF(?1e*oX!mg(1HaMMO`H;EqA+;;;UNp_H{p`E#!xu=u z5k&5LLhLZn%Jq5@c=c+~fqO_`eU@Rr*7NzWME{q}{qIZWP-v%fcq@tRmRuLx_s#Cvx5kuD{x)`9 zD_0N*N?!z}hlc4qo={|79>{1zrtIv%(TwlhRP+lK!ziUgZW11DX_nEFmYD-2Go^@ow=Q-2g+lFSC7r0So)Y z3tSL98M!cSN^1UuXUk78UD7q(oo5_p+gJQu&Wl>LL>PAblrudJQ-IjMyvR~*Kza-N zM%wcfW`&`3+Bh546#Ld3N4F#hXjMw4lD3-*rVbcf54IHc*=?v2vq+TQf1k*!kq) zU1tUlgzR!gPzTjyi-#IJH8#6EBD&=0JMe3$YP?KwIoNA*Gh;|p&c(93;holom*R#(O!LGtgCI7TB!;X zZ>BpV5K#RJx8S~1;@*+07sPsMe288z?|rxdnF5kuGwZ+QYJtY|`0_Np1+zfJ?U?gBHLFCKik1!*$;$p#yM+d zHW!67wwUYV4xp;0UspIk`z7ptedmm;n_JE-g%`?xWB_DnXitT23XEq}dbdcvD5PnT zTIJ!{!I0V7nG6msHG9;j2bU5OE0ffnj2KiQ zuzp7l)n)J#P1@-2XkN%2$H^KQ^v0_adVzO4?;dmb^fgO*9-0QoA3IM8+js`8ph+8S zF0%mZRjwdq?UlshV79-8SKs4jYDo>V8t@fcE{dy_PG`a=c1F&*?9rZkZ4HSVA6#0q zC4Pm`^w3hmca5)}TyN|n#WVuI6@lU5nTMn=5kz}s&byZ)tKzheK0Vx?Z(BdQTjQtS zQL6~E;~aL)eR#=JKlML{N#x)tN-2*8z>p951)*nD?X55@6~U;>T2r>m+6 zA$WRhli%}j@jjTY7snXsQ1q0C)6&J}Bf$6lR5o;Wl?Psb_N9J2+&r`96Y&ERC|8)f zIH4Fap*Z0ZGU+k_hVcLJO|HF_eiPGFPH*TFn2()WSz;xH9s{e+fgqUEc4%THayWZ5 zQ0I|Pmg`S{b!5*g{h4zd6b!5~>P=pZg-MFqo}8ZXU`4oP%zBLs4GoI}<|F6#iAUQl z>!QAK&g^)@1GeSrO^<$~feirxqgt<62Mty?dLP7i-=v z;@>SD_$JKHW&vS|?i&MIX})cRf~O4fma6#Y-qI}?F*g7F?11O&F3DA^)}gXPII{!e z9Hu^JP~G?SA(}S#2X38v;(Ge&BF@W@nW*^})BOe{m@rYL9$)N7a~^^jXUu7MW4cUX z_y*bcOJJhEZU_cIYX8uBb%!8xqF${YPY3B*q78Mnzh)+3fQUr7WpVGn8u#du#QZ4w zJ>PLV5ZVCGgOkTWUZ7#)`#0fRuTu7%CTpZ-)}7W-!^*8u4`I{vIo?SyKYhXi`AXvZ zr-Gp|CnkJDrhMl|b-z8zJvMc7`zQ~b@lv||2Gb^XhtPLBOGXECrm6Lb8yyHyDCCo` z!XrPYB53aolV~dYwQqk5Mltp0Q!|qkPf`G~?2oytxhy;X-mvm%4D6y1h3mT_jkrr~ z=rI?!-Ix>o6XUZzH8GI?Z17uzJSCI+5MgwjX=G%i`pGwk{a`u!V5B+$M(Ugzd$9$a z{rcgzh*U?79SoT4bm@n=pfTW?zH@(poeHdy>FkIiEN&(DISL+L6t9Q5e`rXz5+ECk z8rxL?fAoX%{6hEv_eMI4vV+5`*-b|h%bp8N+CHlG>^1b2v^N6fSKEpGCb4PQ%ra6G*!DTA(4{Qd$ek^XAwCirlj+EW7^(i7Ikk3dtWt^ zRC&AUA*Ddpm~Fb)v$Ob;>6G>k$MTw_-r?l3Uwdx-;+#-Q z_Ar~=-^kEbbD-_qUtxp4;~%XxyVCjAHpje*oncz>rA;2k9>r^VR#jw%sfczy^YDAL zKjP@|GWFa08Yz7qCl0$OPo?yBUCMLsb*^GaQ1*1K^j%ejGxE&s@eIS6c~asp;YGH6z=Rj z`EoHWAT)TFBy9C??kTiFW*~)x27)tOVM%bTBOk#|K-S5?QV0(sVA)VdaRXwjD{(bO znGfTSljjI*8PbFMiep>+D7gpU&HtDSzZXUW~Ui5|Sma3>uYu&o-Xc0nP1n~eMDzs%J zLG+f3yI)`6A*4rPWH1xFq$WXh#R4?0N7j5RBNm>)JVQ_Y_^Umqv8l*bbz6dLRm*(> z*li|41_W#O?UsdW(ejB_bVEy-4_nNt@jP)YvQxxEi9HNM%Zn(bc}7dnaT~E}@Dx}2 zb`WfhQ6yD9tj|VFm*qk%HE3#${liEIu-t=S87`y5gYjPx5zC8JGRRp;fKO-36K$Cl z?S;x-fJ$1ijd+i289{`fE+*x~OR!sJP9um&)qkTiq0q?@D`keZ67M zd_th15U=G*Ste{NKFgJ8`A{nrG_cT{9?JQ4MmVCBewM|0c7M;HYQPRo;-0D%_<3jn zL9{^W^fp58*~P=P$bsW7VSb}0?&T2*NqvLT$p9N+!svy=mORl7l1B9piLfAv#12c0 z*9Ijaqjls(KU$u`tVrzJ0sBRBb-01j8LYnqzAvATFuK}A`7~^BKliR*eU9e=k-CFSa$B82{__rKrvoyy&gc(X#m1i|MmN~5jXcs#G48&8afG51>bQSi^ste!4DypKPsR#h{CDz@ zROe%S^kn;yP_aFt&%iP_4G9uHE29dRW=mowmMP7{SV#2n6Veu8tnsltmL>S&80pf* z$fuplC9HIhQXZnK;(sLA@nYOa=ZQjA7q$^>mzf}OaEEJoVyuCsN-FXIB3Ky{^3P&? znM)OhoD2vRLYPAD4cWp*bC0kZ<8^=+>uU1C5YDZIE_Xcy(B%B$MxGMXX%bF)Jj-$@%W&!8Y$EE=3~&j-OyVkMMmoye=_rNnklR_3f!^>#wy6yR z)zJbc_V&3jIBvEpvo-@)84my`n+s2ii1v*p7! zOPckkR!g*Uyj@fEjg#pMg}aH(vAc;tpH6HJgub&~JVjwPnA52)()?Ma#A{ ziPE$BAH(!{8wwN)*SO_MjxFN|Wz|S+y`v~^PsC5hl4VzXxCDG+q3(dx4ye#HZf^zUe~?wLECheq+w1d(V`RH2I)9VKu>9? zwew~^EZp}1?<+f$QZ4=1Ix9m~Q0i`tAEs>fhsYI@1^(UMDMx>@($^bAlgXVg``_fB zOOBd;KBA{&P&oapQM_@w`TH?PYwFGFW-UhHiGE!_)*ZnHiv25Qgz)RBXn&4Uq5Xt+ z8+B@1+7?pVfkW$QS=k}4rDSn-cMOopZ#qNoUOG~PCO2kW-!^bN-?lHiR*DcXUfEWu zG7o!k&@7JPQEhj5^NXK{p5B?a(LZ3kD&hD({RA7&dv@^+2ROQ^qSz|Cfct?B4@9~Z z)pXg!p62^e7t5#m5GaF1?ytmx^7!mziOcbHjot4*5)Rx z$K!@^#w!~L1vR5;E@{W^`DL7aBx?S>UAq5^jn-9G>{R{;Vn?xS-mOE2)UF4!?DDIJ zg=pmgW93<^VW5i_waT}?do$yuIpj2Rxy;+!I7l(I=d!0UBN0k3`Fj%T$+-f3m2PDVsu&n0W2pEcwHe z2=4}qbM;5{!N;}q-?bV}ofYj-dF2g^~h%cj_?5yPc_A)9ibCJtF1M-cw zi~Z>p9-E|Tk5BhF)w5O%Olnu)h8@lZZ{4F>{f4hopLxgENx3@_7>kAhhf1>(2c3#TJB&F_m3$`QdBr237)db3kbe||% z?cMi$z?+e0mSBH8UwC#@#ai8g$oej5Rmx7{2DGbH`HL5{zV?xV<34dP*l2~wm^SVRv5kP3H!B8=8>+ooi}=Wi@h%2vez^{EBx+p z>J2irne9uJtx?Hy*TRr1ChLqF^E_-0sBCE7O)e|0Vt08D*H%P@-GzV{qd;pQ?zG(W z)`bxiAH065``E?x>DOm6E(giFZ4uQpz%X>dvb>{EF$kcjJk! zcs3R{M(~?xTBSw`o__5RocAbd22yAGy`F%qTXwqU$=d4^BG-wNJafhCTi;%Hv}gE9 zhE%UX>uoaNq^ zq9*uwfH6#=qe#JRuzUv||90$pf4Pf)os6LLQN07#Tl*7il{128uCn$p*z=ZQMUaFl zCw#8@&VO@z?BU+sn1mfm)I&~oWJRcM9v4nxwHUaP$IYKd7xl%LmcKk}l*MnHwFf$R z<~p2PEskUn`&du!+!-?G2ch;8rxqQ(^#`;GC`dGDSM=)ZF9M;M(93JIyNEdIAVqy%~L*$b}G-a(ihiP`#^K$4sPIDY4_ z_x1?K{R^?If~XTUdliBU^nCBIzPpGOKw&cu4;^dHo3LyaOxucX)@!%*sCsThi+e$@ zJ)!r8$8RJvz3@a5YbLJ9$>F7@_jGbF)!1BL)~2B-X4E@oAimTszajn2X?RB&ITF85 z=dDb~SW-*js;Vq%#xG`F?UF+0xhBepr-xh)BW|+y-<8}-+23xSP}B@Vta@9b^nch6 z)pks2zTMib_x9->4QQDVn0QdepXoX7n;AS{=;~GNM!A_ zyVu=JZS-pm_f3R-fIHQqUgD@fh4Ex&q3mUf5b*w{>^Yn7F#5AUNDsP~HB)*d^4#tvpEaPgWhF3kC8H*{WGu-wAoR9B!cL4t**{(sMOAaj zIOfGPo|F!0h#rU~i=5Wev~O$-M_1%s42c_(6RfW{XW+e?bxUT-cT4*v>iTom%#UkV z*`wdPayy}SMoB-p;FlZvvjgr08?wM5g%$j}ViLaC^{sGu-zo2g+7d1F(BQJ5O?N#N z(2FHnYq>8hE0Xg>x50+$e1lq$Wxi~UH{HT(tSzBF$d?ME9&Grqta)TGVRw78E5qPm z(ebdO)@2Q;+sPRLFBu&Q&AW_tkOxlGJH1HE=x<9%PXI%X+?l|v>upg(&jl;$BaYbD zpKUXir(eObd0yXhjp^?x3rKR2=^Ru(F-G3`x@u5WLic9PEt|~XC4p@KDO|IiYi^X} z>VgGEO$v%wG2KeOO}BKXyi7` z!8;GSb1Zg!L57n1%I0X(b>elY_O*4(&YftiEXm^|bmI=m z=r86Roa}Lt=GW0sh>BiuaiESlJl*;;!*6^_)KGaFd7z}eKV=)c?^27omdNG~YIXYT z@G*OlVF-yTguGSzjbi+q3G53vd6TZvW05lxEepz@&3O0!!k$v&Y`IpG(+v~79AMl} z;gLv9$lVDAPahpX%F`U?$2f@-k9KtRXT_KLy*&5WJL*IX_zg9p9`*)|%S+cVj|$kLr`MEDdX9L(k#>Olx&x5B|cOn#BXYd zE^7L|Cy-GgLiO9L5XmG33X}k5^|(Q4m})FY*u~jk!q%WrQ+2n%;H$p-g7-*g?1MGS z?hc*9Wxajev)Q_9L$mH(8&1W~4I6jY+xm7ZP!}@~Y8M=!`b^v+I_r8tW0?+(z-4C32hB)`vEnM9XcTWz^bhyBMAaYY# z{#F`hlizq-*1>t$mR%w1(zZzdq&J&xQ;P`6Kqm%Q%v6FlNGd;@Qq>OSkeV~aP;KpeienM$>nLZQaOY;NQ z+*|9@a)X1mVh(Qh%t<{tb8Nuj5XOHnGNF+&d7#Fu=*G>Evea`pN)@B);{33KLh!Z= z@MZRDLHZCD&sQ>7#>2HWS=~PMi?2!F8{1A!jF#(znI+K{P`_s`_HLj>*NJpr-cAlI zpKjXHH+_}*_?keG)5tEyTPFi9ZsgO(-CX-ps9pOP5D3t%x(^tDj>uCpl{0W@qg^*7 zKhK+xz)p{sWtgyz;E%e^v~^l_7XOrUD{-sYBjGWaI(Q<7`9q}H^>g$U?0pnEe;K1F zn$CX}<`;FbRjt*%FTGM@QX#)QdNfs4KZJ7NvWZ7X1=!&_y%UJE3kLB1WdotvTxTm0ssFHv&o*U>wX~;gwmJo+KgS+8-i}F_NGS?!nghbB66 zAgHYr`l4U9J-@7{hmKHO4K5g1E;CSv&X_nsGyN5%O||^lD7{JFrb%}UO>^QfYF#mY z19x5*I%Ts;_vh$eDM*z|k<6-hZ{F%5)qcw}VRJw6Wq;|ag6IH`8Vl8$ce*+^_YR4* zoUfIZ)2IzmG#wz4b&IN{t7WD~Tb_hQ%~o#lEVp}I$?(_Vq-r?U1Wj$Enz=BTdBzk7nFex!GcqJo@SOXTtE1TK-n)Hf}+oT2`o{CGb zm7VH6k;}T%OVk@Tp&h+0w?yA$$w=43ZjVXQbQQ5n6gz1}uJY~i(6bxA)M6G_Qr|k* zx19jcf&t(TklY$f%@aF1Cb8Qt9&&07_ar1rLe_p#nD))_a4VElvEph^eHpY69qb|}v? zRmOZP+4i1~4sph5kn!N5R=aN3OR1zSPDDR@cip2lJK#QUThw1)Eu9pDmApeQyB<=> zDlLJra8`PpH!3u3aROZ<`q9k0ywu|_-VRt}S#1A-LEl$0Uf=|b3F>hye;L23ks>`B zT%eg(Fl$KY-NZkgT(Cat>PVb;#y(G*eFtsQG3qw~;oDd2TVC#mnF#u_BUA6s7m5Tbur|!a+Qp&cER7xl+!sk z6LfI&6V$0pj~U-Wr_NjRqRDt-8Lt0OlE#oC^9J=CdGNs|r{7)1Nv-y0N%8&Ojt^cW zL8zT_dUeIzsa}Xto;%`1$q`WZYu&@RQ{~wAyPD%joxlp{%{d@v>&CDM4=-r@wfO)me1KzKhNzksb4~HNE3l zYVUa6Ci_5zq8pc@RoqwBYcpn*971CChJ&afw4D+JXA?$nc zL4yKLRrIY7IxW6mD=7BlPbRm@PGz7ZhuE5#JPkUvwPCF6Z`IWU5$Ib zRv6P*B+^;BZtKwsFUB=boUz(sOk>N>eX3v?q!mA)dvr^sGiEsrkE@_RC^cU9+=8Yl z8SeacZ6wB@UvC<-*=H05S$zJjABe#{mJwEq(cuGf$lb6qs(TJ!*^Wnm2Kbj{m>2Cx z=JFG_>3`uIZki^8xFGoeZX*;!haS9_hpWY&2^jD!L@|XSoFclj zA89==H|e@tXpvttpzNL7vwNIDz^&3$Eddnn3g8?P2%xAWV5EocESX1u8pu)nG@9EI zc;EgvAn2pAi@U;z4{0uS1uu7#V&BU3C$CdW*gE@0Q0Mhi2S@AEtP^>6^A=;ck^A6E z?u!)KVabE1zlRS2^@1m>;E|2vRpP?}+Hz}wY+GDBd|V!M<{OOKysttq3aC!`2r({h z>tZgGhtC$>l_coSk?{*Hn^iu+KOIEAgt7Q4G$RJyLE=%}PI82>_pS5~C`9Q+tiKBM z@cCfyfGBpwO|jE}mL!T9po`wWIBmV?V#oU?Iy8EVWAoNY{Pie3%WA2o2eb<;sMU+G zN+uIBfTl@a-hKrd`G7YeV2#fbg}7}1TGS;H6Zo;Ol~GEO@6iV?iw?k#(wgr8Xy#Em zsSICsO_9+06`W@OmS}*804jxIqOf^)&LIHL0XzLk4}lL|0ApTeKn84N9u{&4_!sf8 ze_kd{loA&(`pI{$0}t)F5WRm1ojuFLHQsFP!i(|A&wX}4J(0bXFAtjl0JQJW$J|!| z1~peuJbX~<{SOPbb`hSAK%~L|8yP~l5krM91uzI6B}0O3g78wDLSNSoIsSQ{J3rO_zof8ODR8r_$#lM6lO)2g*h1 zovhJiyxUQDGM&YUG9bV3Yw2fZNhhR7ZC$USm>nX$1|!LSu*YxaxnN)BU^*f0VrzjY z`1m1}*iRK7u_JroXgXhLUw5xI46h>({lecT67p`x@qqD?gi6-v^+Km16Ia+?TzH1I z%r$Hq(bq0u|734~Co`v6Z~(Wjr)%X-K*iK~UGHdSPc<`7TuSwtSm^cg!~w<7R$=To z!~fyT=GD-hRCjoB6L7y2y(7iPb?8ewJ!{yGPoJp?qdHqKtlLmg`mH@P-(SOP%7hW2#of|YOGH7s-^%))X+YZ<$NH1WFO=Lzr2RZ{D7ds_D))a@s|h%^ll-cT4@K_+&(0~ z7YXu=(6P?KBTuZ#nO*A|YJGJ2P)Reij^VL|vO571KSvaB#SBkh^#k&4>3cef08h3s zHg{Fu+jENy$hXCqx+dQ4Z{iRnfx#c>Zin$nHuCL;KP(IicwB+|nUIocYY# zb)BBnpoUugx6i5;qIDp)1lw%hTm5=E>=3vlc@2{kA9uQ>Do^zsD>9K_=CQN~;+DD6 zCOVPMCyAserMPDED6YCuPDH;UuxVZMRvDZ4Tu-%a#2amk9D56{_rH~zBEe|ge7ym~ z@(J?Az8GKo7}I)st&;3?*~@S-fUb`qA`@#AUAC<~#bu z7}ckjDEIuDWxgg2TH;=exP-dohr@$q8s^{5YdOYUY$@(yf5g1egH}NNP|h$)mP2aA zdbQ2Xfitd(87TMRw&tBX$T{VOra_~vPj>YE>fNk4-T|rg>Ell;&KN>|YGL<^dHdGE zD|(7yM3}C*e{$%l#pF{55!yzU1EY3pH`}AL@W*`3y!?c=MUVok>Bx_nHyxt2su=b%|DdL|m?T-Lu)M{)h+nV6#!r&6ZAexvSBpkeO$~(%t5z z`5t)bbBm3t%=H%;aoAYJ)rz?*v+Wm2m8RLj{`e|<%8Q-#(L)baJ*8b;eslHhjMm8M zd||9;h~)a+YwWhC$VI(UMwmr2>NATZbdHDeqJs$79gRI@Jt+58H%O&%G{^Qc(tYPV zS#{6Po!FQ$HBl5*|8$u>sZvP}$;Ap?J6HS7T=keAw)yxgl!#Bo-ryOZ&`T0;O90Ed zlj=JuL7MVSG?CKM6~OKg3{nvEeeKvA(k_uzmk^{+*r*>UM-Az*M?ewUq*>aMSPQC1 zeB9y_>a6L4ewc8k(71>@I&_d9hq8uX(y4i-+Wadtg=mHo4wOgyARB>+8aY?G&N3 zH}CX+H(Sw2G1r~_!CLzOd-LW9$4#$mJ^QXSr6EO<7RM%I7wauW&9R0(sr9p#+q(oM zLvl;=E*70_2Nj1PDQ}aViy0bjc3%mEP4oo<2Y*=ve!d$RsBzxE*;u<`s_$^QdCFt`egNqRs2}#YUZiYB;5@*4uo0l9W76Z`U7WP zMlEBf5&`8*)Y%VJ*Kd`!`tLT=$A*SPw@XGt6Pp@1B*Bku)??l-U-LS($Sfg_G2D^4 z80A{`Gy`m(QNStyIHk*at|XEw9aG~H+PpkGb0?2bY!cc?Yc|ACKnGiJgA=bav{89+Agm$r%4+F^NGm-gF^BN!nbO9_H(S!vL_$&rDeozkUS z-F{n2+u#X5{ZBG_6<}Qa+=bCmXL_;9dQO%cwZ2iE7U%6~Fm5-%#GLaTlci`$2KzjS@q!Ec0*^_F%0Wl-9<_VOA82~a;q7a7J0n4?P;d~;n;leP#8 z&8aG?KPi>o2|CHXiftK^hU8TmGmB_ruWWwb705_BgL18h%LdwXb>V|)Dr$O+h@-Yw zdo%d4H7Y4`31GYDH|;cBkP@FGy_<(1Ijry)fOF+dcHWsY6YRtAA%CukB0AJA@p^Z} zmgqsg33e=|QYy&U`|cAI)5627cWcoq$+TR*0bo@F3bNj&LseA+4tY zVte@z_7tF;IA3ldr7Vo)H6Z625P>en3rsE~TRmhz_Wo3yXi?kupCbNfUxKSAC#kz( z^mSMf4}d`6|Gb>rTa&~jud5%p6yx2rxv_HmvQ2(W0?5Mz38Z_6NQ(r4bycmFg|diY283+!R0lZ zA1@w$>0&;!EqQ;FR?24oo2em95(7HB&aG~>e#F`EeHf8hc;u~#&d`~c4Q1@^7!i`E zaa)(Ox-7CrLNz@ z2-DiesNFRjW_naz*CXrsF~K%KvS2?m9U}Mdq4}9_oxC!0L(gsp8TN!@uMea_B!b^? z$I~!$m2~wQVsMpF%@Wpe%d(2`4Ofb91>b-fCp*sy53eih@j6|eW*X9P#I^#{6MKj3 zXfC%xCmP7h(uD1a#OG`083B8*J`^EpISwASl!ygx=q0Sb4wqg@PWY%C4 z-4Fv?XZCTbf<2x9r@`ZJHvJNDr*p~yRlMNq@(0}>S^D`q&Q)c)ckFPg2{L{|tQqcx zuT#pEY%MUJNF~l@RJw%juCX779Hx%U9PZE#BdWMdW=;iE_5IB7VUHZqS1pb))7`c! z>Rsuj-Fe=BLiU_X+CFCJV<$1>AFkER<3x5GQf2G;?-&kYTPHV+dBi~{$**(0gbuNW zes|nQ=a&1>Z&CB*7psf-))*_WXCgI+Yb-<5Y}D0Xh!JYu#;q!D?)zBx zy{AvE+h$2ib&-q9n%(mnfuN*hlNwc2crynwGh)P8IXKm|S_Rd`TCd3>ogQ{OT%9mR z4wkN@)1?f;AUdx75++l{HGS$5u};O^?%5GaqfNBkDeTZ666OCz0`sTj*UvjIf53g$ zJ(>c{T2pQ*^?&r&Kcc^eqC*TUT|ra9r8k$)^`1AN1$eLpe9=h%4b!$A+Vh2rP?i#S zS>!@$xPY>>b%opybP_^Qh46(7P@NBXNKLyzz5ut@f{*pMG_()BxO#-l zjdQ5hTP|+1LWD9Yz608OC;@YM_%ga7;h<2|_E5(;EDW#+)%Rri<(N7FLTQ;< z&lA^Ugc^4v4g2*{<#S?!&-oeL;5ye075cy(7eqUi9KO#t)LT^%$m~xb*#N`9C-39O z7~Fx3BOC=TAoN5*>v7U1#SX~x2!FY^t6lbAicEwF2T!_#aEs#Dn5;F??cGeWXSdmt z^jW((7&Cn~y{`%|yo&uFI121gcjH1L=dJ$iIbhtgYcl)> zlKSL6d$9K^f%)i8sUW%q6BKDQbreX)YGPb6g7%jl?Yvg4!@vOxcI?#LX49@Ii7e=f zU(X+Ns;uncKd4L)@r_D2S}^9?2lb6r*f*|v_TxO9_dvtOP`U``jfj&0i^`b}spl8b zMbQRxL#W6{{*P`6B#$K%v0md9&wTbb9&!zH6K9v5U;hg0>cDb8GlUQP zdg;dw!befkzoQrtO2znd*i-#Ex%mV{SzmSkx<2c=J^>LfW&zi(hy42$u85+maV{jz zwa(9yL(!f~WXG=I>FqY2q$HPgr4ZVt5V??<+K{75htxO|YW+8_UshL)p<{^$?1SRQ zehhf~P`n?6jxH7N=pio??1TMM8fL$<3uZb=Y&aZxX|;}}bCXqv*)>V7JlXQ??XlGc z>g!HnPGn{xstv4?ZXF-G3eh|91G5R#D-d904B-z^{OEE+XevXfDLM&KrZ$7GL1dq| zpybO+(?DQ8P^vX8jDGYTC3?C@e_Dfy=pl99{wCW0GD<%l5e&w!x9AYO<}-KSL#eE) zFjOKILl-izG&V!;yJGo|dKI_lh5%s%Vt@yK_WIJb5MV%}1A3INVONB$(Z|6%BPE8P zGfADL0D+V~M7+Fai_u_HTBqv0y=FS$WAnF+6}L2~e z?P>xa2b6sfBkoYZSjhxumdc5ta%QLc&#~OC?hU2~I5ONA0h$(D<`}im0tzLPLy2#E zq%q{_HxEP_Df9$pnd1D-Cx+2cdaRr44-#kBpk&=LHI+?MzqbJE2n9HWoISH!2Vr_i zoYLM_t@N8~xR(xsLg-5qU<8BX0RiZ}A^YS$rHlUKd$m-1>B?=E3u5OKWzYyU0J>;J zJgDse75Wh`_AUqKgNVfR_o-FU2{XANjDm&(o<$+QOpg{dJA(9eIAsrY$uf&|llKLs zACCu5ZJ`B3245xwubnBy4Ns|F(-!6mxW0L>X1AFkpb__K0E`UuDSSi_uRv>604@n5 zq)*!wCPHaCjkXO6s?vqMIIvP|krB&J0nxy%2R&1jjI7(kYR+r`Fw}xB=FJXAOU6WW z%`LqEniqSY7aPWl)eaIGirmz@p;_ZeB9Vj7GG7u13Q*nVGZ6<%GK~`?O~^GJGh@`* zyh~DBH~Wb^Y2valEnPA9IJ48-_NRng4SjN7|1RdLLqFTQjIK)Bc<)&-vz>zfSH<6AskO8Z@FUHamxui*=y~t4==1h(B!G_*bUm%*H)G6D+jw-C@t-p5CCM6&>!1qj@t`9ptJi(MdDc z@v=v~J=lPP6O-F|d#MYjQPm>3J?F|>L`vH5R?thUQL!mar1Zj#VaS?V7o?1(8o`Y| zf&3aZ?yqsmh^Frxw<|pMx_PK^mBiDvp4W>uQD2LDIwY6<;&JrRBdr2E&%j3t#Im1% zbc|8gw$|2um-1q)gS;|aTdVSsYnZ8s=i5uaIBR>Jx3hiZoLOe&Sz4y^TqR}I)5=9mOFeiA5jVAg zW_@Dxsm1K8s98*U$Sf0C8%6Hg>|23;51;_Ty8^^yL{cV5_5_Fv0O5UX%SFD#bmJfs zdLoK-Q_>aU1#KJ`(B#9GzZcwr3Rrwj-bE0^mManpQGcXS11jmwU0s!aMX4v+tp_Gc zi<~%XVP=A z!s6B6Z-9+;c`hu0KG5=K1Ixq6LkGA*4_O0$98x1NVCZ`LpG^c2%F)gCd#|ot6h`-e zO$OxQK7rgw^QjGTDvJO~i2pZ9(3GYOL1pqs)Cdqrw*64n%~PiVKlpk%C?5Egh5Ob|`0XNE*F!OMMZKaM9iDH#iD*sqpDgq{$^ql&77OsBfL?>Tei^0?VGSG{GlYu1{JoulE~aj4G)PIW zGP$bef2HNr`trB@rMd~BrMLZHu)Jg^HynH@+__Tb5^5;g?c#@Gy@?lHBpYFM;Ghr? zCH}Q4Se=)ox{bK@&(cF75Ilp$K;beHSI}$`De(Ee`ZFTX!SDaQrf*KkrzgSp$r7aS zR+3Pq!`5pJ=Kpw{_HDC#Z%6@Mo-i;zNInGJi9-lGQz)wYeKA6zK$H~66Efedorm$6 z)7UOR_sc^6U@ml6eBLyX_%oUih>5RBF8a7D|7X#0J?ebd9FP9*Bn16~Zu|3(`!CMc zC#(W#UX_)8rNsOnSRx>}ubax}kNThRLqJ;OZeP66Pk?xKvMBZgv#(<0Jn@f;GX!(U zx%2t<6Tv7WbUZj$ZZ&@)06OszY)=8V?oS*L{()xq`Ko=nJbz1X(aQbPlb}dD=Uhw{ zBBaBc?D-#0cFrkqDyf5JA8IEmn=g7hUbDP-ExH_WFnQ1F?E6V+vhR)iCO59Ah~FQVVOD=Z*@RRRqn5g!%_$Nzyq33<~uCKTV$Ra^=X zr><8*BxXKWqyO2*g>6E77E1gDHp{h1usis4seIPM@xbL8WPXS4TydWWHHTJg{6+8! zfF?pgCcf`5Z-!eV;y$Lj+ec-|Z2z?~%k z>Pc5GR|||6f}JbrdcAM@dwSM~5f2#{eZ@6qF1CQ6<5Q{UWJq2o^hcQpHyr;50wuJM zzAfWGa;I0CD{Dl;l4L$b5eDz;F44x44<1cWy(vh&<@Ad_@AtmSpzKf#nilmxP$ee4z`y z`Oo#hKSlRB8<}tLVTxUd@c|;H%%6cRpM}ML-ejLGPbwzopW|QKujc_&`bJ9^;M7~> zeab+&%w(jwi$+1O_u3>l`n(UkIYR&MyKZsA@%t3rs@5lwhlfMQ8g8=!t05#b|1ClD z?<~LGyRLl@y?#+$@DWb&6ZnwES(owWq5m_Ic{yk&=>zHge3qVkB$ElH8v!r=)p>M@m{d3qSi5nJmLN0&7=tvp z;kSOuGrC2w)_AexD8yjS`s=d6;)`@J9wklm*E@lqwxzv&v(NJ?_9O+G5tE)A?RUYY z?zp!v9u@{y-K#D=_Obi&SJ%(#ftG}Dk1~Q+=+3-(FhF%E9T{)XXx7Bj6GE5?_os?% zy{r5ggmUk}WX@~KTwNf5X7UsMANJk^9O`}l13&GnN|LnLno@+4C1owjP=pX-T1fV? zW}B&0DhXpN#HmI?C~FL+)xOl&vR4=lh75xl#{A#kp|jlEx#ygF@9+QopXYz)dG0;3 z%zVG!&-Pwki_Saa$XGlK~&KyvE*6w^*;u+Xc;7j{83-w_lcuHu)^uLi;?y+(`)=gpm4;6 zH>|P(GqnmFItnp!H}G{#J?|*FmUq(c@{w(69i4A0q~f}r zTuUC8U0>)$I_sF?c)Z)i{9@V05s(b!t3)9BE&t821$v&lZ&b`&wlUr|TXc311}aceKEZ zgkj-EA3NS1F`6hyG`&Ep$j2t8Tbeb=c%88p3re9kUO}pW5x(jTQ(v3fGc57OuE@cagmU~Eg(C8T!p5-}`9&CDsWer1eye0BP z*25;Lp_WJ{?#frCrgS=^lH^QY39uP9j*er%F_RvSAnIe%$x&N;8=;15Mtoa)ymzgDg!?bX5Eqr9uT*6ar~N=BmI&QLE9$+!V}>ez>PtOy~xL zWR~(AG~~}t`xkMhoyj{tw|2+yzi@8O`P#z&;w+WFzlMnqSqS}T{ zDQm=REQzDHPUMZY^_w&@D)XHqGc0`so6_pJqmwg=ypK}T4lkG%@kP}%5Tw<`+J2lV zUPB3w=5mN6q7V1vqmgdqC*ZGPHGKMn%-CsV`W59{=<=Z9T&#u_)XI2SKl%T1n?q!+baq@sWvC_47pP)8W~aikgwE z*b`p+xjVM~%S&@8V#=So6dQtQjTc4JO@_skNB1k6Ee(~my1fVn&Z%_SaDC9XrvhJm zo(p_N23@AaNaposnYZx&dE?h!ScM6EDL1?n!8qOK&ujJR+C?Zf7q4o{l6gI1b$e3g zHBHv)Mv~R--onNDGqa>w;Pc?E!c|QUi2`3he%J@52ID3HRD$PfKa8P<>#OeK6k{39 z7JaPx)!GuSw52DqMkUfM1e>IbzIsTSJ#dIFFv;n;NqE?lam&H@(t!}38t@>nWgIK$+b_NYu>(3D=) zZ|Yi|^1_petnw{KGEcu-8lVlTyrjbks+PHq2Av%%W@JHmgjL%L*Wr3|dh3InM3P-$ z(x(b^s^eog``e_wcL~8XnO!LK(;Kx7E4_E6=fYf|n-;I%b6zA=lU5Ay<)*1gR=a@k zlYYL?W6$e7B>Q1A`cz;;ff>HPNjm5IeW~NkYjPyVxx>AmJMPgJ+F@UVMPa!t-SS>j zMt6+y1!TAC$kC0dGIjKw8ZPBQ`2(gy){cy7&PKD3dm;@Q-mnUxWyK^5#b#v}g3qf> z-f)rcUYNZS=uWnnXWq3S-)9c8Qa=UJUoN8q^vbjwzBOz)v33sQ3-P_w+y??(KGVzS z-CEwfFlkjpMz6qDl@86p`%_m6ryeSIy}S4>h#n`<)g#c&dgs->z`IY&8{Wg)K*$I7 zxWaY%McZWPuzKiM+N9}M{6@cipp4I9^FKSG36=RGlk0@b!YK|$$bS60JzT=oVZ+K+ zJqjjopgu=}g}eU5!T4Q{u1r@!WC1c%L>STnEVD_vmlf$t(@8h`&>!VRtGJ3%LFNEf zE8P-y`g7ABsV{R24vpDqxc4WRr?39DZ&!* z)UvwKnlJM<3)u{L;oeutEJc5Sw)f`}mZq;jt&!#!&u3jk)jgipJ~d~~0AcPF4^-`p*`# zs`W7p6Pbd`1PZdC=gPdjjFRVEdtpgG4bO|-Ch)~`aM|!vfv&!HilDYSb>&3o+>@lM zEYQc?iovnvLp9}jL%VB8&dFME_97c5Y?3nP+hu2#Yk|oev^@;gU%ASz0{#G0k-?*b zTS!LPSY-Aa;HTeMld$ZnAXgq8wwjL-Z461DhJ|2JBw{M_(nzN409^Zi z_@Cz}%=UK|AHX5_&g+9fH$Qyuv`oonnX*TBBMR5K^b2(N2=u_fwJt#KV=nM+fS;%M zYIG2Cy+>SN^KiW1;m(<*3?(QU| z;&Fdw>mh#R?giXcPDEC@D@_7}Ecg33T1z}Kw{K|}zLVe4+Y$-vo9F!|aB3EurEWpa zG)Z?Fj4m?4rTyAqwJ$QMUn*51w)TwVa|nM|M>&I|Rd=gh(T zij}{6qztu~xgc$g0LiX{x@K~YK8pXvmewlYkGU(+!NGkA{VTZLEjk&aV65hDiWB?> zCRPy!H)$=zPgj<8bEZ2vlD>oaw%^!}O|h!p6J?u2%Ah~%QcMn>{L;PvfdY(x))t5F4<$sO zG+Y`9?U5PAIv~s-ky@@Js!bl*^&5RVd+*TfN9mT_X(qz9dC4dz%$c`PJ3-aI8v(2V zbm|7}b={M1A=4k!@VH@_X)WYxTf`ImPV0&Ate4X+hNP-~+0gqa8B^SZsJ$)HteWZO zKn>>!xC0TSOB|az5a%Wl>Nttx4}U-2euH;2zLWn(iz&p{mfyvNrA0t#e7&}gs3A~m z5Mf@tmA@VIaX=AT2!vDD><3wjhlmUSq#~CIn=Uw5EXCgvnZblML#bmG${TRAm$kV! zL)63E4dmGnRUndO31pVambU!9m6tSWJCVmp_+*DFT8FYZWf%$3%S}QGR~JA^H4Kr2 z2tl{b1L0vnp?0K^SX zIhMEG2E`P$ovU)*0FDeQI=@UVF18i4HJDuN;k+>ONln8(Ik?x=>h|G$XlbDyU_kH! zU~4-dV|QtSQ8I1xR4eypHe}n?ZN0bW!s)(;Ri0qDP?d0yu!)fve$#xjNcpCj3adP( zlzT}Ej^NbLM#&9YseO8|BzS{(tYWIbq$X_-cOF4)VFyg0;Ofe^s6`Q=fPkcS*LEV4 zYRT5bqd>Z!RsZJ7URV4KTE{Aj@XMig^PR(i<}&8(OR38k1I<}B04b%cyvI7#=GfHS zpFwgKp<>vnIDS91)*MC8f#Yth^OUN4neJ3WHwQ@r-w>d%f5&Op0^~)^7y!SZ_yYpP zp!`Elm5~DAB`A;t0I+%g4N#AcjngIr05eeAXBPJh@@exCHD)*Nngz)7JQQ)MCYcNW zu}|6R@v0H`vaP^Fvh|&U-^BTOXaqsZ2Uo*L;0If^Wi}J$Y3>2heElM6a_0gg&{Vp@7S^iUc3sCYk@jGPH#tBoo zhW?XC&DU@zvOC?-P9(i0UMG;)t)wFz`!(x}TX*H<2Fpk-)!~aZm4|5trARXfOMb$) zd`-EF%Ktj~+>r4HfXTYKJFtyye0cc*~*HDaNkalYJ z!xeS<7tKePUthsG;jbrGVeh53A zoAA`>s2T}KWQsB{B zVN3TLIwWXA)g6!onlv?dK=xAHH8&Tu4R_2o(%@3aVr$91B3F_UhxqI>*9% zT}TGlDb~nYZJ)IH=tUc!k*e11JDiyiX01rdrtijsV7te9w9G;fCyh}z?1|Awfd+lQ zChT>qH4S|;no{YX*y9yf4LZw9`1?xNyd#`dXJN~tU3+PHAlMsN7L(XlY5+@p#vcJR z6rk=dyX~3?y0#Q*SKrm%lV={46C#41vo^HeRok3+@`~R?iJR-I=A=qcxqOtHF|}vH z2#WX)YY*e|tgt#Y`}*ZZ@;B}C3>{j?fCQM~Lt8N71kA6WPk0Vrll?RjV%=}fP+A}Y zd_s(N;0j-O8=7SAegCLJHbpY?>^+t@5bcq*EB4S6!6|$nqcuX+p=r90(OuaIiJglw z5HU0PkI(f>@3>CwI#ga-6dxTNR6l<2vbIHZP3SeFLlwRmDw38fl%9;{Pr66c>8Tp9 zuoDGSxtjjCwRiy9eE~oZu*y8%o$wwk53I@?9_U(GamzbAvG$Nl#dh&cGQLmpJifly zkk0?6%p7i=lWBL4rOKzdzHMmp$Qg1%Z#oc)Z3Z()^Ap141}ar4YYQuCsi=hFPTjFi zoZ869x?R>kYyT7$(IGzDVlY>M%y-+OiEYYBHt5UbhDzPX+GUCJ(~$ zfmVyCnuP5ZO;n4H9b$>1)VzkEME#-ho@^t16SZh^NUCo1fo`@}N9gtZzJ$*{jA66T zV-V-BLBZ7JDiwkF1!9Q+^}@Mfvk&n5B)_9>=(^r6mG$vvCr(slu*mq1Qs4OizV)Hb z1r%B4<67TL&tlf|XnnCn&{nXp59?I{q2ZM7B7AE7wdOb7^9#w_UT z#s6f;2(^ypLFcuf59V^K0E4_9wfBjec(X%BQPm`n3OU_x+AHtMbqDG9e0x(6HRs^w znpcZFqPp%VnNyBz;=4*1A_j7DZ z6qc9Nd9iZ6&PIiS{>!eVX^P1Sw$xs?dV@pS%(H|J6-JKB*L*Qof_3g^JRQk-8Bu-7}SV3d)tv7+bxN_<=0UDF}4Ha0oK5y zj!fmq=X6HZEZvW1?;;J8jh3uysJvo#2E^#}<%e29#MydaB}UhXlIGOshPP-or$3|R zg}2rtI?raZ`s}^?LJ1$veUaH*l~E}gxN!&R&Lq0XGC{#LukB}YJ!tK;W!2(=Sb5h) zpEL4enB`zS2uhLO)vN75>ghCDVmHshk+XVHsp&6H_^VCE)Hdv!9N29`e_@b$A%}J0 z_~8mbHijam6$c1cLf^j0MRs;i5=<+kJLF}jZ9dw+645`5;Zs;IbVs=`RhjY4U-r~n zbvxPG!}i!u5cMHybHLQK5>&aP(zn=q`lgU9v-cIEW_p)y>R1^_cv!ctev)Q-C6u7Q zi2>YAx#nKfmfC|c@>FrR{W=MB=5hbQJ68w`c9&EFt@7?rl0ImX!c$~STV<%a=;>Nw zsalyn!)+p{W+(H8ZJS9P6Cseff`g1YrXK8+*X|b}S7pFiJ}=aobUL;;(TV;sjDEPb zwCC=l5ZQ#*=VuP(58#8WTOebUouOFq(vV0dB?lTt3aBGf*h}84a_2-!N{1!xK2)K= zF77_n8ks8Tq;=nq!Q4j~83nBp9W!~`IHkm61?|;Z2s0RjpxnJf-4OweJ|D&iLnyb% z=d*kMx56x*Z-ry~^_z2bNGg!3mEK)|2FQOqp~GvOrWiYJ>DH5&>3p-~;p(kU7R2LF zAelQ-tZ0SR%S|EGg4~c(e^fc1xx4$zvKqw%-%nseK-i_`4Q+IMfDY>_xuS&WIuhIz zTiY<{bCk0hmFRq71T=XPx!OWDMF;R<`U zGScL?MbStJw>Rw4Hj%m;=csd$VPsur$nakzLM1P&4QB-Rm44MA?`7mxN=vK6ZUat1 z$o7?ZF^JX|j&t7n8Si6Xq6_jJ5`@4fb}Gm_9zX4^m#{PQD!8O%U+i!ftk279^BUg- zwp- G^O#rt&LheF)tkmM97`&LG?=>-GA)H|z6cH|SaJp7`0t zbRTGZ(m&4gDyIXdAN3QOHTt1|g_d=zI_jN0dA}$8$fWzgN#`(M)`v+OyZbCgkcOco zfcP9T3XdsBf2h^B-=}SUToJ9eXK)?$33i$_rr>MQdS<1UVuD-$k*4w}`M%aA>UgXw z`RVpEJsm{n=yY%ut21S}?e!W&WfV_5t%_AeD?B~1=Hfw6l!>aZ#V5sIJa$L<%lVO~ z+t~Rm&ljaagQB~WZby4au201sTpgO-K689aAVZwC$<3j4g8cAjx#!--2MpIj2pa+H zEoSJkmfPg0+R#Y1(h6dRsuZHdz0vQe_`KEYPdOKlErqjzn0b=ExH&~FcezetM$2OZ zJL=P2^pa)zca3ydy43#Kh9|C*!A)g(Y}L@~c8{!ET^Ym1h+~c@b&3{9ur|xf1zp?x zqe6uo=aK0R=|r8}bi0UmBabV>0)?H6_qTm}H7|x2eWde?f^Ewl!H>OX^1o#2R+)y> zCA211K5*^ni7x9ECQ0^3rwTiKO3ih$AhjvW*p)@Idvar4fj}^vhL-|If<)A0$tU5hvq#xA)vB+n2@}*ieIq@4~EvfFTuk#rWlg)uc zcf--KCMm)}3jrXMC~7yL|E7n)7b2sEDnib81}N6rg=52VD%WpBdU<~uNJ1{WT`97@ zken3;LY%k{lSlFgUb|JBo}GlDd8-z7EFXTNARRC5uX^zah&OI@OKtNCP_?^GfW6H4 zzP77+vWGq@S$N1ZUYi`6eStX_d6HG7g^a#s^s<2QSWcRYi*9@4(99^MSnCgAQt5aV!;z(-rlRQN=N8)PWo6d?%g1iW@ zgaRPNgY+Eq!e+UkcrN!#v;H9Wyq$w?U4-_uh&mj7@67eGTg`nII<;R6gv6-e zgT?g)1Fg*&suHNnA;vl@LkA?lPX=OPF?+??c!ahXwLpI}_!xnO3Yf}>B)7EV#?vyr znQ=7Luu=A>V$ixxl*s_)(EEns)P!-%cRZ0&JoFRF@&Z+hVv^N_@zcpoYXmV;6#ElRW)i!tbfZ6E zAg!2(-9ta*xBI0!84M227Po_Z_JIMYOE@{KEq{ruqB{d2y}k^k!JDX}S~Z_mb!egl zR(t_%hISG1ojqaQ+y}{j`CmmXv_<%;idrq#XpSR+lB_nB6eR-K*e!BP)4)29MBa@j zI~*iX@@uv1Rc~60qH)cfCM&-Zb+VHpCgG=95;iaG@vj5H@AuJDFx(KS3lv@9sw(D( zA{m<4T|{m2ClFHHkGDEABD*VDFv3J8#-=zXW|}-TZ_=+@1e}PFR24-9Le73LWcxdd z1PMyNlZ64Ir~#B+Nu92G!ehW>W*$}&nrpPLa^@^U8_?D?dU zE8h};*CY@C{&v?^p=%*|-Fi&~$%j2>HvVeh0es*1w=V@SH2l&m1AZ;4S_WZT3*M-2 zftyYOtY@~S!j4#(Gq{anYAZIO!b@+523IzOB+Z>M@5>bVgZd^61CphVA%qGfOTDAM z8u}Y+VJ?(VY)%_4iKuEM0#yG`>Pf=DX8msDMVQ^A3}&A8OzCjujy6Dv{+B!A8V^Dt za6ViiVGV%kz-A0A38)RxQ2=0)7U@AmqeV5Lcy?=stBZ^<=*fW{-HfRmkf;!4=|$R} z{5QCi3ErI8?}6`p{FS6I;CDiNV7%WD;EpNWxtuehiCCnmZgpCT+!A*fg6?ZqfDYHX z*>52Ja7gV8bQovmfc;i(cnMG?1XK)PgYH8xH`HqBadwits$DnhrzZPTvR(7?dvd2k zk?KOVZ(aKcnb@?94sL?w1YuG{aL{9&@N00Z0Ki=eu3dJ;a%pkm9$kmZSO*zh)mI5D zip^X@yUJcRB5rowk2Sp^^YmqwM>#Pk%}>_?v7L$7k1C=eW{iI@p5T&~irAO&=5T&} z5(76;L&wOuiFG~i#C^+zr@sZZL2KCxkrS`7>^c4zzh#L;i+6M6zOR3p1Wl*oPq4+1x$Hj`+QP$37(15zK$ zw)h^eZ4O=YBJD`+HG*61-Xo1QrfOri!Ocu6BmBbw7DC^yD#e_y5zNem?st&7VRvIL z4KgG^VZlSRL9|F~N(r>fGn<2pvCqA`$7a~bf8j{;zO-g<*qZC8N#hos)&lqIg_C`| zGoiXsVP$`Sm5PCrOzOV8o@yWC3gUR;I>IomNNd7u2~oS4aeE^flS{Rg+;S=VT#1Zp zX?0Wb(4;%VX;5^MmX~qDpZU(UDNV5~!r*|>rEEK@BO<@2JbY9!pHbpapXZy?=39D% zKGP~urzIT6-bz8h+r;1Z?b-{C>m4sn+4uEb_y z&HT3_z8ekfy?Ry`DQLzB(aO1qdC+^{!6NJW8xJyV?z1K~T@XWT|F{MCG=H%f1=im! zk)@zX1LiPe}R2`{gHK|pvj)W+%t*gId*?V8>V=YzWYNGJ~u5!W|{5nNVocs zjHz9Ht?p{QpmS9D9%Qi^jjP4Occ7>)oJV<>u+1wZ*>~H8YgH!)Hg}E=Nm-2cf~aL~ zni(qmAWo)q6KIF-VGjd)-n4I0neuhB4af@;%Hxhoh>~4W*LOb;EQn1Am|izIl9%8H zYK4$nhV!h?znkq-?&tmG!y=oI?yjodEuGh=rzQuBEluQV!XJYm??1N({>64q2GV(v zq)h%xzZzrkopM({TeaCOA z#=*7bUQ%prU1x8|frU{>HazMTfaqQuCJ+NpcvH3LpIiHShpCg~-Y&0hW|B~NdZ5s0 z)$#6dz0i{8zJzF{oAui=l*c37Kl-{*A9iqF@7C7_t!*?(Up3SebJ2W-+S62KT%Ep( zR#amurfELDQOaVQSLcNwCbJ)tu&AJ2%HM}1!&YS*i_tQH%r=Aj?+Jcs>s;QL^%V0!Fd=oBiM{FvVr^psXt~U2| zezbYgMZ2y~4h2PzFVE6td!mQl`b(3)G>3Or)#)h=sSQEhtjm>g#;j@EhUn^WqBE(v zkewMM6Iw0VFn%T>I6_(24)iP$sm7`hX6XaWdTn!Muau3xqXuLsK?y2<+Rexv-Hpd? znha;gsf}u>y{95JHYNtmd7jsCG2dNc zJE-vf%VyB;0ytnA%tc=YpiTpPH6Ja0|9qTW%{nI$YT&B`Gz8RTOCT_;TrRB?8gbIF zb7jZQ1g|f{r4=l#zETLSkLaF7=MkOd#c##?jLvB;JmK#P?n2IYr3K=>a=Gq8=DGLA zp>)l|7?Vm}OAtX1Me|}}du0(gR*w-nb^X~2M5YfUH7@y04fbbNw+%*t!q%Io<$a|- zx80%IUfkEzs!pB~05`K79`pmxhMzso0};7Muid(wfWz7r^Wma%Z1y2L5GzqBEga)mYrdeBZ|r!Zra z*>l4NO72W`#JTVNbZH(^-|U}<+A>@5L)erJ=ESx%r)#V1%x9#cAP{Wzb!eq2T3JrV z^|;k%9D!=HRAry_==*7U#qN+Y`Do0JLqZ)5Ki`@@t}+?g|1gw5GPek4Ih<+VLmhb) zOK~UPLu?T}_CA|(D(K9;j2hC!V~fct*ZP`7x+*ysuZAAVh_LUsV)B8!rpWkkIp2zN z%&)Yj?mHIFp+AsIEv)4|I0d z{gma3$k_BEL+Bk{S04W4PjTW8t#7(au&aimH7b}h?4U$>ve^*BKAcdaG&yS2!xR_B zp8_MfaQ!{fBbsEvr1%~E(NBbZ7oytT{g=Gkfr1m)f8Wv0$6n`_ULDQzfGJ$oFQc-# z({K2mJJnSi`l`wDHTNWh3)ux5eGgMbKMl$qgyi`hd5lA5#RtZcsiM*h#5{$vKU#qPl;YLviydnjqwRIK`TGuC!82Iy-7AL>!6g zw|>16Q~vl}-=toA2w{9MwKk?!(nrkB>5Y3n*r-a8Wku!^&DrBLOGeHK>AGD#HHih?y9VM|gKP)V0_#asJo+R6ZG* zH6M*``(onracoMktEX)93h*8$N8NL>OjUKJXa?vgVsODM1^u0vYCRk=MEN4g(JJfs z&-hh2`s-jl}BmfJ{D2Ax=@5_$_rZTdwiv(I^r?9vjot9bIDr}g7P|1qm2 zp?F)AnYQ^c#aGI{5Dm*Y9+~hy2htk0`qDUWHV7fQI6Ks>tZmHeq6V{vThFRzT9Dqh zz4rX}YEh&pIzclfmL60{pE9C%Z&tDHdDy(=sE$x}kyE>&-CcHS+lBrkl*ximZEn`p zc&4mNiKbE?2(4!njp4^Te58KTP7L0_ENb%^;i13IQnC5q$8gx72?(Uw>QKP1Ig9yc znArmQ;rgA}@}EoNeFsHXdJzxAj82-=M9DAPT8@H97woPFoI^0Bwa%qZE#9sRtD^$;CFIBa4En^I@z^?3&}sXyx!52f zD@4h1wC-8Pa%nSda-DdDm2a}USij#q^oTW^e$BQ2h~nM6`~HoBnT4nH-kCaEGXQ&`$)QP#GU1a55qg;zV^BxT0PCC2QiQ}@)9gIn!f8xUbmepVh>bg5_|mi{3xCS}wdjnwP5P_0m>&owj-NPTiV)y*oz6z<#yn zBsoexsPcv!o#+B4#(Hu?xG$fDz*G7$Po+(j{+lYA6Kj(AB{Rt8i;Nm!6*XC0XxEd5 z=Vul%KiyYMG41W3`pMkq+j@@Rmt>Wjl07-=_@Jn9Q?s;!8sS)_oImuIiCV{a6l z+(~7RcbYnrnC6I8wCgvG`_`YcKiFu;{H&H|wB+h2;xNYad|8_5-R$VyeVNFU`8BWK zNF6cdUD5CJgxSd|b%O|_jM*D!*TH$u_9~BxTxJ*wPBx_#?*!rdMd=XHQgxh))&KJcGP5F$00e*U$#E}^dHeL!_*KcAUxf=5A|`|DxKNGF!PWgZ+R zQF&0EHJomnw{nj~z1BVyB2hRHN?52qHi7C&;niZovysv_0D78xKggIXtEq31NnhhDntPX(7ck4?O>p zNgSJrpYj>kQ!BR-K5OFMX zw~w&D)_&;hC1$9(=xvco*oU_AoklBx+IHnL*O$|i<%t6El0!w)S9ZkiGwZ-6x>tS# z@qOw3_5Fr$QrovqC6mgGLKr*qo>5&e38=lCwybV2stwCwb@72tIEIDkq%<1&PhBY8 z=%i|eYrVhE3-6FoaDwGGb?52vJw`%(*bHytbczc_A=jGkpufy`r*9Gx!S)0?^z&)i z#(CZ8(lz*EAaQ93MvG-+PY>6M4LbM_1w;Ue>NWr~lgVmVS~d4&(IYOCXS z&qQIrTf?s&k#+KN<)vapEus&HR|gw~Cv%EEw!3FZ={~N^wdw1MZnfQ7oqh=gMzJL* zHh-If%>C_fk{^xTZV}aZ)B7w)_>&2$2RrGxW<^f@^ky4vyzxi_Ctlp5z7>qM6Ebo= zuK6T*Zza#QGaTxCIBk`1w58DTj-!>TX>JN=haW~%a$8NLcDl3{?kAT-Kyh-w?xY3p=-3a&4IjJ8_ypb6gwNm~Y{zZdWP6aC-XG)CgzUAY#!Z7h?-< zI+j^wg-(@yTHC<|Ebmxun&rcej%~3GlLK;V<2MOLs(M zdm;Hvt~^RU!(G>+N2m6nz10#tSyE*)VjxRFm_o`U{H>#85McLS0-iMG{x5Thl#DhL z^W7ry8KXU%_KX&jm<7=GKkO=;dH+v=fPe(#Ue2v>z?#-aamCuE&YKd&0 zgDm5BtCB@fIb(>%5tx+C_D^UJt}PSL$*?Nw9^y<7RfB1k#rzg0ik!bg7W#`JHKoNZf90-M6Ogy*TZ!{O5qMLC2+_`h1i2U#hmC>UkTdLaCzRH%E<2aq1aZV&> zT$nQ~T&Xr`%Q>80%(4f>_5w82uFL>Mu==n>z(2L5{z7MvU$^tDoa4ux`5-!1Wg3-< zd(tqYPAkmm!re8}VAYqt6Ts|H?6~;Iy}z+KF8*9KrWbe(3B_Sg-Ir%~ zW!5F_&GZD7yt9LlWGxvSBo5WIS$efc=IRl94Y z)T?&Ck?MOy*ob74IQfB|Z+H|5j}s>OVy17|m=S?wvfHa#zG;5a^DPdhmLA5G^g?>Y zr}P(JZq<)2DSR(Y9LTJ)^r0r+BX;9;E9%7GU^$bWNz)dSwH&5eEN5Z7A00h1v<)m{ z09d{Tq`ZJl6aomU2v9-Qj=>-bS+c7Taz>)wW@sDEAt)&QsCACCMnPn9wsIm7H9hZ{ z>XK6&^+|CYU7WI#IB((dPQMwRI`#d70H!=yJY>|(0yH7L&5F#6ZiqiL(dE3#05MUz z8mKPrm`6qwliTCmV|Ux?(G3y-*~6<1T$?S(k%u(af7C>y^P*+`dLM0#UV;QUulA#D z)>H$A9qBjC?4^u`sq$)QriD-2dxa>|Z%iSIebs0+b|-)cY1E{ID4WWtdq&z=*unlr zBmS?P{Yn?Re~aE-qt|IZf*c$Q`@a4hU|qG25ojQ0pF^pRwbdJEM|0?ysv!*@4voZC z9H~nEC_LAz>Ly`0QA@+_^hnBeI99+HZW$t{{Jk?hKfD4FulYN)4sJA;;z;iA*4jk{r$FwZ(6aNHw7qA~AUe{_+{6eFW8Z=U%JnM}pEoi8O6%37lvT%NR>8atl9 z_-4xge$nUW{^8GEvc~VXhtk^K&)v{iIMmJ~^K9tLhOoS$x=GP&UcpJx0?`B4%lPz_ z=OFT*2>z2mQE+bC2D?={lkpx?(}{a2!|Q}&MEZas9S_x9Ey@RUTidCQc zf4t(q#tK6W@p|dw(yMA`rRJ58`&!kZnbk`h8D03I->8Q*c!?oN3!+)#T;`eEVdPv+ zE>kS)d>O}cE8V5DcqZWl!9#g3*hB7OmIb4O1Z4C&bTnycG~7Wv#}AeBH7g7snGjSD zg{x~&-!tuIA{}=XVYJM*+XVRGz%6BAbVh|ODltA}jn6@Z=T&kSgYLvVo z0#@g+o18)Uv|CEE-U>9u=OB)M(3}2#Qq?Ee)(3siyT7+QVX8c#4A?#Kg^@Q}9Dx6q zYkf`K?zG)5ZS#R&p_PC*1YOt*z81fwsadp2sBfPaUcnX5UfbES_Vr)p9sRhmh%bW` z)q})LJu=f@WUME?eJ;1S`J||Xi+Kc3NHd_0{RN;%@)120)l9kK07^vw@D*?{EY+5{ zf=G(wa|6Epq1~XoyFd)uZt$XQ6+v4A@0ZTqnlNc;#a3*MYd2avxc#Mnbv*wC#0c8@ z{m&YdrcY{9fgF+6++=}N&H8k%E(llG2N^NgOhy9@*$&@0)14e$AQ{o}Ee9KO_ur69 zL(<0uB7cbaiMTSul>kl^Xgtbt*=0a*Qx&t(_#tcMGHxu89AbA)7uAQ-VS~J`nFeOzDTl1ffFIZxp!Sd*-FzRPMvj=f; zqgnq5?eq5su^UVYWJwF7t$gh0YsKtq!KLFDaUlqdTei(M?uwAEG2j_;aS%APGf%#~-0tI3$%kY%wC;;&+*R-ecp_A(X@CI`3FmHdDUfi59 z?AENGMyAd~^B<(pa58am(H5Ee0T!LT4mE7tiU(@nZvcEb6OFm6{?n8d`FQ9&{k@Fy zFH-$}?e2zh*($##+qye};0l0$=G|PlAc{zfqrpxITyVL?CqM9Cfva|M6+{0msIK~IM78UmB45}( ze~%RWVLS$S(Zzp~>Lc$zgKPi8t?n0i;|y{1hhxA8xl}CdZb;RPdu^fJD}K=cg~a$i z7xmg;{@X(i3BSMZbYM(7i`*3bHyPKz)Xirf4MN9UBV+?e)@9mYjI$7Lh={_kLIkkD z<-{B;rT{Fx2+XXnt(wVR2)5kG^%pyW$mE8N3X+I_wOjp#TFcA;&+@yG$T0^%n=@+= z!KB;*DO6rf#CRJx#0a{3L|0c7Z?#Y?QKWnkxQvI=Man@FbU8v3?HE%B5UyG14Z_srhjFp`g5-N%&Isy zj#RJ_Mc?nV@|o~w-xj3p%4LbohcwwU6UvqH3cxu2539+)S=9e`f!jY_`IfuK79y&O zeurCxz*h$lXD> z2I&8&BJt;y!hhJL5U4en`y9I<0kQOV^gURC5WaE&w{t`5zwiO5_TQ6$_}y$@JG%g8 zs%$_}L53)&vc09m)Jd1}pGY!rTQPU z5xD{o+@@C`cwU9)E}9VxC^DwL(?cObT>nZz;174nf7BKD&%0YQ!(q>vnSyZiZw~#x zZ*TqKAxCqCa|wx-e{?8sLv$=u#k5514z;yJUHR9v%h}-g5IF2{1r5yZ9@~O4b`wjs z|9+N1MBaObJf=Q_;meaK`U{}G--O)%ei8IHtmm1S_@8P5zg+zHF5DlLB>x7k|2I3R z;l+pr2)gsng<$?-yI`i8fv{cw>B@fyoPW-T&i@md%}mrd6DIs_m;96H^gl_&XLkw6 zb(;Cm{7HD(oq*1OUZUh;bVEG&Sm*!)0K)tKM*hwHs2?732!axE>G)A1{`Y7%zr>_m z(LfF0M;R|cH-L2TdchtFx)D82T$IJ2M2NHd> zp}8ToRJ*+5A_yviD3iIUW{k;<@5vvQOLP!6*bFNS{8|M60uw3~CQbrwI-lwP3F#+7 zh5RRO-EW^HcOJa!xY)%r5?BU8dd3RXY_nXBrr|F&6r?tVYOa<^Tf7x|Oi+tM1iAjL ztbIAUwSF>5@4o%?WK&WY5IeHg%+??G?U}ibQDKzt=vUG9p`opqQLGWSX3?S|lAP}R zSee-!z7Ul3rkP7MAs~X6=Xq|(no3pMsXFl~fU+_ogEWzSSnva8t-g>%WfE3g^09ws zA$9uTG3Sz%9oXeA6#dKWjaKbtaltw+QN$0I*{eGSc3lo;C`kLd4V3gc?zeMmKT`D( zWwxuf)7r&ICpIAmBMFvr_9c(YZ~5Rrs+afUVYBD&Ex|ReC*zc74Mol+tiA1abvS?U zAjQ^E!!D@3q1W-j)8qJ@>!VS9QWeL~oD7Q1t8zx4)OE{!>J3W01=i22V)vOAPq~IF zT_bQ}abIqVTYq|anSa)so|gs=46q1IS~G2eZf{W36T(h>COb*D7nJjbsG{`MhMy>p zbf01N=RX>o(EG?oJENattv`5`@f52+RHf2z(ATGT;9k_=y(&b&>UN0_kU8U)ub0~f zyaH}0{9(m%ZW2^vmUZ@?#fj1AxlMUQm2WTSk&Ar2N~A-09sUth`uIqKj@N$7ZenH5|$P`Lo9uKBzCJsp7Rl`={YtR z03gPXBrY@wr;ftrDGgUBqQ6qJhEJ@fawy{Z@s9D)xto9Yp^5rirK}3?wzjQnJp$I8 zJ4cLLJiE~-P-BPJ%xzolTBftxwkBe`(c>}#I(*$3V%aG5k>KvL>(pB^ZFK1v_Kf$M zm?3h!Kmp<1Z$1IuWybz?=E?xTuKb(((bQbSwQc*~pZ@PL%}(+EA5MvfoP?tBpK>1^ zr;l>7c4zJ0Ma>Tw}T>a=T~cs zpytSGYwz#ybqO2qu=17(En?O_HEPI{+(%5U$)9_HP<3NS#eGnzcfBRM`02o)y_A&H zj!h`42wIo>l030jn>_n^P1eA#z-Q0AUMB{i;CH#N|NX)Lp3?uO#{Y-cLz+=au5^S$sY82hGqLqel0isWs6uE`OE&Gch9`Q9i%{}-eIN|RK+RP zshX$22Ln0MLDiE*O?nfy`Ov^4am=qf&9PtJW^ZE3g|3pb$6W{WdtYCkw`kxIGl0;X zWgA<{X$Ev0g``jU;T7vNJT=SuG&DUp^vPwK;&QSqRCLS$^vNc^ojOM*-1MG$9P2FW zyXAh>FMC(o(O*8lKO*Ho;EGq(ik*%Nw+645&kU&uAZ*c%dPxFop3pQ^jh*zKgu}u8 zTKsaMzrEl5n7tk;f_LAWp+|aa6+_SgsP#|YpRv8~5#=S=R&M^ozbP-ES4dXB??(JW zY_|_<;9KubB4+oeK**KyJiO?a!QhwJgtD7?-N$PMh_y&kYo`ZlPeO3qA#!t}E@1D7 zOt&}Jd1#V)(?5PTYuigW5HIRo*Lrj)L~kM5t+(bHGLmv$_8a!PKkv5z(@t{MV_w|JUhZRQz>?Gr*&qWwrN44%SCW|LFb9kAsQz6%s3zbVXODs9x2z z?>FzoNaewg4Rx*@p;QNeoW2I=EB|boVRh?a9BP!-+H_(qS0Q&1N-8ZpacrP@UY2d` zb;v=V5cPQ1%boiPagv{SZghE>OyT?Gcm(J=+$GKju-yPy!fz@fC26FK@TZSF2iulF z1b!8ivJVV(6us-jX&I!1PqQcAytvSHlF`>NhMBsVjPc_xhP(0(YYPE!{H-rFL*kYz ze&lnY@as&Q$|_2Zxp{;6qLo5d%frQkNL>}>M}pQ$Rf(WkACq4KUf6jou%PSCzPBL> zPyGP-`plDNuCnf-af8RFmvh#^G@00!zOACX)D+`yGpOt<*2V~0f%hEh-~pXkOIb}8 zf#Lh@K;DX-PiymbreLDiSS~0iAMJGy>E3s5&aTmI0r5NSPu>`E`)a(>r)k$V%>-@i zC4+#e>ZuT@)cgC+f_Cw zS@*B2zBWHvR5;$@OX>7UHA$;#zjLmZS1QdumDZZ~23E>4KxxG={hcR=C*Kbd@9b3m zD(!A4#P1!Xz6gCI{fqV;yt<5%rfs59L!p*-{LH@>6!mB;C2y>7Z5kep3h>t1?;5F@ zO}uf@g|}OJZ{0KB@xgCntuC>+{-NSY>BIMA7u*q2v9D9tP4%&_jFNf}-1jc&hwVve zr+&)s55)MkUz;vJ;Ld-DeoP3Tw5QEtMY-;C?Rb2sa^xbPZH=emi8pi#dqPiaxoowx zAc(mws;h{SQii#bO1>*E@Je}$=w6*GzLlcBK|2T6D=!A4jkzwx%*Pj+z+2`gwdskj zjKOq_W2ojb?e$_G6c63r@Nv`0x~Hq<--akvjWsJDI_bR0f?UOS7gK6-T4TjB|6Hln z$K!1FJx2v5Zt>g`wPeS5bG}$$q?u=0#i^WH=hMM2%@b7K?k(}TSF~ZiLd8Jq+b89j zIJXrRek&ZSPgz7I(MIwuh%?qrjj@Mx{XKxCwPkL`G z=*8P+`E~oD^t>H{F8nVlE!@!4`}LJhxAFJLAiwL;@tSiP(Ce?8FkT8AibbyDlFI0= zA$rDf(nk?H@UHq+vccu0!$k0rHwULaUKjKTKn1R|zse&o^XcLfrQsIJjm(tf*N1 z@^z>0v>kQ3dL=FH{F_y7YZh8awBavxJ)nI0y!C2~L&c-(I_s&bRv)#YHTJhxc1omsny{L7#cLnfd zR`*D|^Yf0H-bNmP(tMnEhuC}m%652hXW zLQiMb++sw%7+YN!Y36moMd@^*7NIDz7v|+^FJ7e%`qaCko+tG%u!c1{;ayT+US4Lu z&$89;N(b+R`i-mDIeh{fP~aIfN!hTzK8tT-`_4@PsUq(cj8~t#!@9bDrQD%y@9Fz_ zZZ64oU5M_H>n@dgztLvC`Qz;ZbE^$JpA4(JeLOmHB~9dg;mNMcCVEd!-O!TnR)Bvk zn{U3_Uitmiqm?|l$A0F&zJ8e;AN+fx@_WM3)D5UjN`C8FavW@BKLrY7pC$jC$Y_=E z@}_*9wxrDojni2D*;}&I^7>*I-VcNOuXJP%(xpbbKfJwlT$JnDHoT-80Ribo5$TdH5fCv@L1I8qI)-#;q(xGcZV8L7 zp*y8RngOH*hVJmaZd_~aXYXh2cdzIBJ@5CIIHSYd_kG53#&KM3l1@+VeVkmH;BXFZ zD^uH|uDCYK>r+W6J%4pv7aP4bq&I({wh>*1W>r8DlyNWdU`R*VQSV2y%|U(%Ztn!R zz4_?d&|RKJe+~z~SHU+Uq>*4Eis%hHTwDPaIl&(%{jNRrb~M`(5Bn?+E&}ojdAK-h6$j%9a~U$?H83__)&|{xCkU40 z%B_>f0Z75F8^95u6oKc$-2e-!WrveZ=te@pXhIhY5i@rkWQPZm(O!ba>wLYheD16HfEOEZ zARp-biZ4uMQQma}@&JukGO5lCIfsq=gjlo+bT#F~cZPEsrdaQxz!;Pg>G+WyfTZ@u=-7F}^PD{!xy<%BQ*E2kbaP5`sN zT@|$mZcHjt15I#52m^tIvg}JQlq=ey`$i9UIRl3LXgXKVOWV{KxIps+c1ga|ie}NF z=wYx8?Y8A0pP-6;*TMdjySH}~Nih@~IQ?k@o(ytD&qF~4msEtP;Lbx{e_ApMi_1pe z};B$Oww7?z7n|@K~h!v1r;U>R&X|&)<~$!aVrirz=2*+zJE| z(ZNVt@Ueb6Hu;$tIji?)y%$vcb;xb7y-m_S-7uE_d3LH^w`?6%;@P28`(fu;;-jhQ zjz*iVO0RAh9-PJqimM#uYW7s#$>a(4Xx^1P1-SUN&1l69D&n{F{?H}P9RQbSh2lzF zmQ)L{UFvNuE5+o4FLk=fl}6R))DV9cV^fY)4-O<@Adp0$ zA0f<7v%Y{X_rktY=S!QVte41FA(aFt^X1$gP^8J2Fg}k=37{zU)Wexq4j@r{tI*=r=L5 z8ToXw_{9zTN&3kJ6Mz6@qLFIoY}^p?(KOa2w2bYNiMQN#!yN))t~NYI6BqB6#!eg^ zLkjdOVjc+p1E+Lwyzg zjx$xXx8jXaxYcrefIOj2nAvl z7j8T12djCY#;j9j@_1gD3g{dBcHeJ~RMGsrTLOKLOf~B5V+qd<#E_Oa_^5L?d3PT3 zj3)fUp!fsAAIP${2ukoEpp^0XyVH401K;|lbTvnAH5S}>2nKN1WjL8ReEyJoKBozG zGYl!^1@iMX@Ne?~3d5>WT18cluWkZ0u?o8;FqU}QN^+w8)5pmOR~0`BD?VK&t>t$| zP&C5GNtD+RCqA?z6jrA3jyC`5FX!-%0ZON$gH=ztK^howP9-Zy3t*x87BMcj?Zb1? zOcf+&3I!gq5e;w6%NEyr??B0VL+-6Y7pX9-w90!S%GPiuco^Ek{FLfT_Wz5F>+aP@ zqq;0lULH(qFH!L&b5}R}h&1v%Ugu)T-)l~O^KMhqyRu3|OZ<$yiX*r3RRj_PP2d_V zcMpmxQ2OXOzj4s>gPtb%qpb4BEYCu2FEiI{J_dqAksag`vaRSj-u83A&DRbCUb-Kh zE(IrZkGP3`zZT%xURk!x%yn(>E0irkEM_zj?RAWJ-lzt`v*E{4{thhNJE`;jw4_4H zcT-*JqbZ)7-~BF6F5o3|Ha^gQL>x^LdBdj`d?0wFDsUySxh2r<&<5G#;EM)a0KtKJ zy)mpRrNTJnKle~-q6W{6;BO(jxc~GAZ8?l&^sDmkgL-wl~Qzu zgb}`?e@XGWN*h#;rQw&HpcPl_p`+t$H9YdBtxLx3FV`4vzL?1=rs=Cy-U_zO= z;A6Y9IOH<*io}Z72i~crfd~Xr&gyeLtFI0UT?r9{h6{K&@obmOT+(jM`RNSG;VWi; z52*Sby2^i4!cHJAVF!*RZuOC427D@B$;4ANY@Jc)Qw=e@2$4Q=MRUZFqSg(yZXjPj zN!k#KtYWKBf)MIC&XcUCZ8=u3i$Yuwv zWKgFGn6fJ|HQjULZZHr)kq_&OLm0UnBn>K1+Tm7QE8A1hGM-SHbM9~epW0Z_u}zHt z1q&~f*kdd0hxKkkNect|U-cmQJjRI*PH?RJVomn|Mts<}+ zL$GyhV)4B>aem=uqq_ygz!svf*L%?cpD(y(8S#h@#Hn8>)uQEDm2tas2g^YR@OR)m zuP7#ThhWLI?55g2;98x7r%_)WewB}u-$Hb~06KjT1Zv2NV5pklZ~^Z}LLu;#9Y`&# z=Lw{s_BF4yZV7?cJ&>oKIrYQFsGK$!87NC2^E>}YG^kT)%FY4tHGQb?EJGRr$lD>o zJ*4}6Ol?EcWb&7Rya5f1+ViRuSjRRLE;T?Ud0U)Yy-xRLAG7(X>&fIH_HD88Za>;{ zDE2oqP!t5_9uSukgM5VH9StEpmO*=89!fL+v=)r6U&v3GYw$#l4fKv5t7j%yJDk_o z>`;^AwM|>!;{xLHMIPm_N`mui-yI6FX`}FZ`~!siCS9^KiDY7z(XJb08_{gDyi*2B zKpc`;bp`pPV)R9w?)M7NQ{kS@O-17EJUTb!2nZVd=>XiD;7WZfzsR7B&;-Phf+XCw zT7owtp)y6y9^B>z*N*L&IZ*xqLwt~oeDx3>!45rbqIRq}U+nndmmg-lspw2pI01fd z+;|-yq6Qg{qM+fzMT{=OBDqxTMxsXU7lO%uFGd$nq*wfIfWbt<(rl_L>^zfJl06VQ z4Z@WL4TcOOIKX_bHlkUEV6PT)rM#kMa_$J-ee{F(JvmfczP8o+&eyIBLhl@eK|v{G z3JR?-Bg8U|s?Ik}a8qdOVgIO>lvL0Pg6PPT^C~LsgP<>ay*3Uy2RI_?>voKjX0I+6 z0{hfI_iJ_~!36MCTu`ckj*s#m$i-GGw>G;-5I{?C|Ex-Ld^7H(iW^~sP6HU2od|#h zaibcpYILmJ+lG+3-?%@pgcBDxK+g4^c`))RcrpLnBtYd9>aSxX)C~+G{*no(bGblQ zU=YLGq)$FlQv@`pw?Io}17zLnpvmF*_>m&x%746IX4NlapoMOZg>X4{tQj6m1T{-J zVf%Se58hGnhD>T2Tt4usw$128=*qCsUw6TUL$=Zh`_RJ71;Hp)2t_%)HvWrb5_{u5 zIfnXqI(aY>!B#Kl;D-?!p%B`JU-HqLJm5()v5P!F5G|NFKKFwOMCmM4LD2#lBx((z zxbYV)%Il*EiVGFN&uo+ys%4Z|@k(IE@a<8>XsH7*%#I^aWQBpU`C^q)BfD}M6otjl z02~5AU{^DXD;(+pH3O<|#FhUTIWuEQ%^&M7n~anF-PEA<)xaNJ*bRPNIX42Fp94}n z_cU*h0r`Y38Tz&KMI$I2sg!pd0Plbje}{nsFf)7s`Gt!Oot6y@3aLu|G?Dn=Ve(fA z8r~Wd>a4moK}G=F!o`piJN^>X(7*uh@#+!iPZ%|VIzjtdZxuhA0?5i(AhePR7@GKA zzie_HV3|93!U9l%@y44!_J!d13jLG|*BW?|=s&=?R;ZS^aC7TYTT;PROT z36iNUb8jRlX#Xf~`3Ik*#z6({G$^Cvnaupa9P{%h$0F;nX}%s^zd2ske%(G|@rrAu zEc;dSZFUg;5I`5AB>IS5zUSSBszhf16IzQ{_$q0xV4&Ed(*L=%zpE4zmL^&Xe(rszPo>p0lgwXW2o_I+N9yzXH0S!)x5c-i||51|zmt&n+DOY~_ zv7nTD1jP;aiwvXjOJn6a2t^o8!V;n4=So{YFdDTLzjyzD?$M3OB@Ry?{j}*lo7G&3 zjOml+Qw+R^^6$f}Xsp@YP8)Io4aJyvJJ!KhlJ*nENluQ#60t%q?DVLh^*6J56(&{P zFsCQ*%n1&$IVaSQpB`EVso&`M^Y0-XAGT|c5A*r%SP3 z&(V*|GH2?6J)ISn-E$9Uyw*NxUw9U{>&xc0A!Ln@CX-rwD_$wUvY=uQM^K!I9A+z+bcNs0x0T^oStLuKKOl};hU{tZvifBaQu z-1aUt9nf&zNjsj7|C0N1l5WH8uEChJ z74#i*RsjOU;1TP@qchVNN~U^If7*f>%847f7%}vQ_ ziY(rwi1NH7NvR<;P4skaxe`XmcZ2B`=|MNqTMKC~W) z;~0IS#k1vm{4SmM9W~luHvt^|Z-bNbo;|SlW^}*Wc=6{P$D%c1Xi8%|`B>Qu#6SR3 zowSDY#-5*0f4{ewNUUZOrl<^J2HY4&wNnc};py^fkZt4caNXN*89doI%mWUCKITt- zJYsP@`yMfQy~<8#osy>#6V9h48(1}2=-)h(kjyV8e>HmkMynEhpZidsUA?6PUxd+& zgb{$QxGX&a5mwGY{wAX=GyRu#Z)BLNWETWg-he{7`SwAx$~}9ZL(fZ5h7FM z&SQxIX)9o?4h8F4QDhWhEg z&IzNCy33G3JB?~wnub}#T*RppQOZy2K#iglNtK4I@%uOK6r#2QRBw)H*C5~Hr~8fFyJm|Fd8|BFz1snE>Lk0fI%FXv_as}^;V>2Nt8_~!wiqzTJtar%K)*t8_l+w zlRL!Y_%!qIVfakNwJNl0-h9XXBBGx%_LCer<*%}lGOl@kpNh4!x2?AAzwBz%ZAnibSCk ze#p`|HjdX6e!>oTz;YQls<_DO{xy@5m-SN1<;jzbfrRjHH!2)T>S$A7mT98qodfa< zbsOXWQRr+k2i;AdsId`PxP+ZVTs$iUB8<7P`?s@)BelfTbPv2WsVzh-W8{x}WV~Ss zn@5=SXA7HBpx_%Lo${O{YYAsGJky2tEUsiZMqJv9uG-rgh6R>h4@gcL zZ>S1V>{Xiw`w8$TzfBeYY}4yrsG7%7%>=8_BTkxTlO>!bXi#>aKa?#T)slmPNxGOg zCu(b^$i3lBdiLGrK5SQ~V_Filf~iSW^F(u%hzD!#XpI@+F>-dF^(Z(G)WK3-s%5*H zG-yzgX5Fn(8*jRmcoBo=+8^DRD14#!Rs50_PWaieBD57=yZFLYGdd2>kB-RdXeT)+)dZC_JzfpDuaCN?S{rka^w}=%mk-)2%gP z(X%@=wiV@#K)Ie$#!A_+uQu9#QKy9m#qt-)gZU2?=(uuX#Y1DGqBgl;@#g;bzU(;` zp9^tR!T4rBngg0Ge>9mu3>EMY8lFxR^e(QH+8*Exkfy?ag+5&6$fbq{nE7#_ZZsy9}=zw0#gtKpI z)OCHB2l20NolI)Nw(Xu63e{S z!4l5l=M7n~{x!$bn${Kk^els=7u|@Q*3e^0JZ+V2n4753h2?P z#g5T)WJz>cpyBsy+YdrcWCBH@0rC9R)`F!EQeavHN@qI*@dIZ3+AKUoyKjaBTz<8J zaCu@zXj>nQyoqxcYhGq!sGFLPF5!-z-0Uiy-7sjA*pe2QDOtzOPM z;p?B2nO;T}wZ^BHYbf6BZH?}{jD1gbk6F*%5OaGBh@mj(NNro&O)OD4A0C?IKOb_o>fWRt3K(rME}D6R zi}vQ`tsQjtlxW^wpvwyc(HSe)RGnY`*1EhGdIbH9!VC!O2OO_gk7KDUTgnjHm^-rx zmlp}#VUop2c3)*FBThio%kI3?ArNO7r0R~xLQc90Njd(k&VSZuKT=?aUF`XR9n4T}$js-3@KP~#ZkofLU zS1FP&fhb4coJ33Sg+StqF{V2K(!Ci1*OMihpy7VOCC@Q_>M^e!Dm|~RsP-CVF_>40 zczV0YoaI7@;=bNfnLQL8UtN9IK{B>4yFHb4g~w@$R{fRr8j^9%=^kFE=P~X|rr$`` zwt1vZZy2Ad_g-e$-g3AXmtL)mm_FwB3SIiiATf8#Z2ZXjW3y~ttPmN>b=RdVy{~Iw z7hZKjpDipF_R+E>=Hv#WP4lpxYrB$a?o|H<&W-}blOkJ*)jaJBJO&;YifYL2&`DxV zijpOJZavtU>{<|9bqd}@)QQfPw8bk4&72|)0yz;PqB3rmtM|KNQtETn%btD$y*7!< z-=9=JCn>f#q@4&NvG8Mb|K1mvw!S|(6YG+^o-3_8+^EJA-zcq)_9+*-!tyq4nIc?a zcHG8)U#G+`zNEu&)Q4#X90R$g*$N!_*mCn^bORh`9k)JPJaAXB z$AAQmbjK|H_OvHrF*i1#YSknW&$;7`UCjEQ)zw~g6gG?_yOQb-4MDiHBcGn_nG0v* z)t@?PVx@UaDG$2igKt!LVBcXFrDm+y=hag?X|IYNq5^oIVD(9;Y2o+kzWan-rN<>73JB%PSg{*)`_u=c@z3@xiVjk;yYEn7q1$e5pw-Qq3Q z`y%BOqP!`Vyw+}Kaak=7*>K$9LolH$M9RaHIK;d+WDn!bC!Lroo;|5ew%t!cHdY@T zVGCV(|F+PQ*Xa94`Ch!!k)2KDr#%bb@;wjT&HAe1wBJS=@V4x(J-jD_1J1t))LG<) zPd*k?87r`(tV+=-O7cRvZ1no>*B1w+&s>$3En2vp^Lw%6+C^E8CQnj&0tTp&6JUY_ z<{4lfkY>ux0ripO7oLI^{5^acCv$e*$JjT*`pMs^~)o5eX_+J1s6QdmRk*%I|Xbz6F)s75K>@d z2d8RuKX;#d$+)n)Kjm=6@#KVUd&=vealPwOa+q2F@z2e0Q~AZc6m~>yTENL?Zay)2 z1*R)YhmJ3LSKHatDZ0hRbG6IsRx{;gDO?jhc}>4>b4`0DO3}s}UhJFgN)YjHbkw>) zWv0Au6Tl~PJR-GdNR+JOIw3kE@`bvw5?*~_80J=D?!H{TUVeP{vXIqpRS()nSlz3px-W+xzVLh{KeFh>PiUfEwsh}z zqm~T2prVCo%M_a?7iKpWcj}}O@9Zxn+3!Zh z)a&L+;U>h~Q50)OeQuV8!vrW=NPb+{pKzfwdCujVS9x^Xd4HEW&7|FNHeYyGnk@)N z*;=R88a2B%tnUZTVQ5awRAgl3D_{K}KayWFRsX>4qSxHZWI5c9<(2esNhHi?MNMLw z#ky45=84x0CO0fZevqD}zOPKIfFZkH@YI#^Vpzh^(&ts?AYKE@Fq^F5n#~`DK8MLMv7hWt9&iNX~Lg$izeNACKv2ibLceX z*LrNaqI3|HB#}QRK<`N59vA_GX2?J7nA{ERDpiz+Hb|83q>@SXI>$y)m}z`8bdC~G z8LPA*aa`XJ5H@$`KH1FHc<9{cPhA(2QiIuH66TXW_|eT!vlVnOx;QKmlP?^$#<+Pa zu_~O*Fu4~)#NOI7nlu5#o8+)Jx**6$do{GK)g*+8pz*kmY(|6sLAs>z4l{+BBMhC$ zmCjG38yEf{B9x(j_)hJ9{~H~{2uIsRiCAf4;bPZq%IzD(9-Lu}W&tY4rMUr2uI|qm zYflP0QcWn&7z*UZVMSl>baP#-bhJtlp5@5@)ckb3%z|uZeUibZqQEf@S2_mgCR5cm z)nK;v50P1Oi#Ka@T8(Win5peBMEtNu{)4va%^w~47R&BdWlj+{&wG16o?m8X$c@9r ztn|7-YWUWjS2XY4y~Sh)QTLO*j(pp#r#H&%cn9qRwSfl~UgRWRzHm?4RaUqx)zL2+ z2P04B=cP{i0csMfSW}XhWm$*TxV# zU&GD_ecQz~WPJEr)5SZC-ZJAa&$I~!T1flO=+a~pjuHSnEpVNpV< zlYu;G4;okAVp0t2If=Xf+%?U&Im6OJycsA&y}zK*)o;F0uglliC8lp$n5?hnhOxJf zA_FHLo2<*k!w?MMfN1Q+BvTUCV&_t>5T+sONl~n$y#tBzF<+A6feROP5Nl76cqZ!f zBt4_`-LO!)v~iq<)%J8-_0n7P>}wPGL?-IA#@!VndF8XBu|A#|B_rO}mNShAwV3wF z{teENN}5{PQnXINQ%+$s+ZwycVtlsEf}IM>%JQve^WR5%LG0?Rr*!4BA598{``$J1 zB&qC@DH~ z9iA+-&mF}Kk~!1w(3*KA%^h?j8DXu9bR^MpuE)+2M^EMm4Qf0~CMY=+;*5VN(bLHJ zVkZ2pn)d>KnkKTgX+~Q2scr50Ocq^U>wRv92QrI^4*ZEI9|n^Vy?l?Tv>-{bMaXBl}l4B#vC;f$(Z9H_a|NF-kYf z?lMo?Me9sMtoduidioY;?1R@ET7>8MJzeUOMT*j9c86n!r8hS`7Kk#N46<2zjFOD2 zoy=AQol!PT>cqzt*bg;G8c&ot!w*=>iDtkdir(px8zrCQ$@^A=l<)H$cx2LUWy*%# zySx3NC~{)nTFH%lZSn~%dtd9)$JL|E14QSZ>idO6+C`zB8<-NMKZWgLW_xpqdw2Q* zyZC?##5=@w_Ls$Nw2$ zR`%$#uu4Ujl;@~%Ox-Q3mQ#<&9|0;(?-EPAOo@w6cN7P9DurI>Rc#S0O)a|JIHIT# zo#ko0Fj7>FBV%#OShHupEiwSk@c422vgpTJCs2<6%Z&e5O$%D_0~sDlF{V9@BAQ?3 zLLOAm`s}5yjjyS>y|8wjjM8ySLoU^|wXWBgbT4HL_fPxkOD-LE+d30gbTeYL>mtg# zN}r__xz_$%2yW5^dpGk-i%iv)iSt8xO%q({ofm_;U#^W;Qw+w3ziA9xhmBL6-e`9Y z!ZDv!CfON+?M%t;91Ia5mI}?sZfDq3N5K$lQ#Fh=XP+7L+`1kw5OE*5Q^Q7nt2z8! zJ*g+@HR)uwE_!(o86%EgmovJwIu?%d!hK=WlA>O|l3N(43bt>IQ zt2ihAX*O>pSmV0)J<5?eQ=iTN?ayQe{Km23uoQha>9g6D zsZ;Ke0s=4n_KmCRqP^Fc*bOn^3OOKZ$B5sd4I(zQcs1v|S^lBZ@{{UWoKFXiPM^v6 zNeDaGfhCSyBKJn>dyTq>C|IsjoiJLn-F5FjVko-o3L4#;;Rhvdh6}hlK}iQ*bcQ?m zXSRXX6+woWM;SiX>CAG;K0Hllt5Q$73bR*sJR>l^NF+q}yq^D=cQl=eLTV5+4-O_O zj%_ddHQ4)BGrG4X7So-Zar(OE@Wf+;-z$6cx#W~CmE*Tr(r6sc!RKB(AjKIisN5)x zl8Jut#N7E^mdWO&vI)k^E?b6UFX=p@ESgrP71=RPBesSEng=3JU%Psqiqof8M}h!< z>z}+Alg%xX-S(40`w(-&QwEOOb;bDUcNEoAOg9skTeOztHG&tD1(aW`1gLO$85f`w zmaeWx6Msn?7h{-dAmkHXSM<$f7|b_4nU@Uabs5ihEiW$`Z>Ekp(}!CQ;#IT%xk+^M zt8P%`D(*yV`ybuR2 z6rR$ZFqaix#4U~MO1>GExiuJ~d3AXSIh8NqPmH?DGDS$O#qF)cq```Gq1!3z zM|F`o;16_JJRcrjg{5XHteqm&SO!Dbp`l2^*teo~N5CD=cK3F)&+%h{(g zX%HX!rB!$JsY;9w>ETR^XFJ{^Cw_Zt=eXNlMxqFD`rRDGyj-Zp=e_o2b1~ZaOViBS zmuVNb_@9=1qI}|nLE>yd^xN`Z#IlQi1gH*%4B%w!j18^V;47PxW;{~VHzHg`6*o*I zdMEGq9m8jz852eJ-qRiC5pq-Obr>%>y|@S0g@-L2S@9#Ns~3K7cWvXG^bY7Hui>c9 zW%bCOew^bSiZJCOjtHY4!5$aQ^@mF$UgEr1XFEErxbU+EVN;*=$Wd!q5ZQ>kS4ZV; zUD+ceVyaO-ELwhSv-4}z>QlKB!k+W63K~dp8L$v?l6vDTro;e_+J{~;j~anS_OV;+ zMd;fumSD_j(lx8EX8QFm?GWLf^%FDnI|dyDM@(swgXkT)$y(d$`BY!VZjdGVrI+F{ z6E-cMTjrh~jQH+Hp|i$jib%Pc*tK8V{G6(EGo3ZnY0c4n?X^Fot2@jqfX*z6T3Xfi zf)Yeu=9n8Y*O$rlg}>TrJ=@U{U-<#+lN-26`uXVhlCRO@HTaxiG$h3EtzoP5KvL1O zYmDsT?r`H_y@m=kN2-4vUXn!G|C(Lm(ta12QA*>)rhO0&#*`rRmb7Ily-hX!P->!R zjSOrCIFgVjUYf+C(({6DjCvlSFfPtm!CHsmT2)YQPUDA-Ikx?Thu6C-1(*%oOSy=a z`tVD0W24-1a;ucd-_+a{3!QrP0aw*gop-W;2fz5y$5S0&_V@r_tjx0Gpdd z>Rz4ZWr2_3;?;#Sp<=Psk&$4wY>m6xXyOhI<20EH`jUGc7N$%Wf%1Y=9DIh+JrOpQ zz@Z9AzG&w7q4X2Qt@_rSDc=NvwyRBMUPKkxTc#=QctRgS0@Gz@9GoIDK!g7CCkrNa zYnapp&w~Xa=gqj*X?I5gW7?$dpM&Z9@;!Mn-o)E2^#b-fEikpG>+#zBRR~k(4%B3* zz8YpG?s_?9&DpBQ6VYc_^yvXf#F3t3H<-}XMUE{UFys`5taU?PW`n%OPez8WV?A$T zF6*o{$!wblVbkyY+fovWh~;d%7A>0y#}0L|r)*)Kn-h;~<;jWV#=N$?oirzzgZ7jy zoS&K31~5*&xa!hT!7Z&K@v7@U=!MyieX!|f0hqaPZwPGhO2<^)OZa%Zw@(id@mXz= zZ|3q*2XSOu(A4*50${mWS9d*mGWAgCUc!FnJ~)qKJGI%NMN$t6nZ3YHjXBVX0r(m{J zuA%lpHg^ZN=1mO`NT)JNsWz*f9FGN`NLgb!S{=(wOl8>F(+mNO3Yy^77t(RvagWU` z-+N03B)535O|Z zM7?JPL6a^#Dz(}inPWhLdE}1EC;cY zOv9XB6EpDT&MTX!igta6i>}0#@Z2mP9q-Yz&jH6z7xO^7WNq}X-luqB1o^wBk#%-TGQ0L zz^OX@vCS#fX}QTHK%Avhy@z3C;4e!@Wwyo4b)`*EkzL_3`zW*8_Stw|T+c%(m4*~w zV&V4_YU6knLUe1Y@=PBFPWP?!{fQ-EI{P6mtG=3WBijcK=s+5V>a~#?9#Buo7n(E5 zBk$`MY$$go@!VH?=rBWqp}Yrgy|`+awJ;c4IgIj8@!AVfJ<1O;8;!r* zN6rGx#K2rEe)A*Q{YIQ*os8cgbujw}d za2pnxYKZBm)xCAxJBfj&`Ih}7GS9rATD@(UQG2Jrf{UFmyH)Z_dTUQRA-oGkF_EN^q0pGQ&?72D=UO@3zZNg~!i@Czg|%;UDDEmv5|EK{roT!b4Valb~1x?3fe(pSLrzv~4?zpTg>DYIVZqtDf_19H6WczAxSAziMSY`|wd~7Ny3Lh4U?4hMKDtK{P6fbj*2NbQ&t)_hn7KAJ z&oZr>dd7$4w@o<0YmWN2TeOQyUP-2+kfy^GPFfagCC?fO%)V_o&59hk46H04!mBr5 zi_h-0$>>SOImOg2u$uK`kgVOd6y4W(zdRe>@U_`tW}{|p)JbcGnQK0`!HL@SS`oB8 z^iR|vu;dvCZ8lj5>fePZ2>Ej9?an3=zqmgmFN>-u@{%m zEACHX%ZAaJDO}HEnJRH5**V-JbY5r=oKcXR$qbTADiMZn<+JzR1!%SvQDjYR<&YI7 zqC8<dF$COw83Hb$@HsG0KiS!xiwF#O$h2LNlV+hNC=J$_^! z5{(@_GRYHj-Z+Zt=rU|hl6s}U?daZjKdbB*?=bF3SDo5Bl%2)*b3EJ`OUSLHJ#td6 z9XIUHE;xPb%W_(Y;0ILuZk2c;L%c+XyXNVgJu+ta%A1Fco=ZlwO0*Yqc16cH`G4}v z2J8strPqJ^?D94w@2f26lit~tWLusND;Wt96V9{#X>K`?c-+WtL?}A;WxB@gwrNj| zIMhs{*{&z~BMR8mMMt^9XV6e#^N z9$N!z_@J7Hq+j|xIJR>6Ocut_zuOT$Q-HfJuyWxmpN?d8@2cIC+KbhZv%E&94P0_! z60UP+ob8+_N9LbVR9#OQJUd-FtV>}-G^(FUhBu|z@Qb+N5pzQ@6+kwb%V9ZnrA^WE zn5WElnk0{v@GM&~r)gJLr!04IvUQ~BNLELF zD{-XdfVYf-1f85pd~5mR$#z#leIa&{;ra`A9?LdDMQHv0*Iq~a4Hed<>l|ZOg7(yY zjAt^GNmf>Gk2yG@$Z=G=wH^1aPfEB<)S+!#b297O--h?LjDZ~hRN-Z`rN$WM5~|WB zkm1XQ=|g@MiF~^>ak`-7dodta?JZN;ST8^YXSRQ{4I+blcEMC2zj5 z^d80Wrib+TI>~y?Y4l-5ZpGH^CAFAbYdznJG3!0mYcKwy*#hm{YD%blb?v|flga9( z5FK#5cVmO<#->|dWBFntrs*uL(bfj)ePw@d#Y$aPbG`-orgQCl$3ltYr*8)=Q&&(D zG`OmjmYNERJJ&sGE>u^@kB3i*^>~#lIXFCfwNvrM0c`BG@>VP9>4mQ^+BSTzPVxY&(SOEjiA>>Pi-b^9mwJEL4JL` z#$P&N)1!)0k3dM7tM`SKj(^^o(V47y6JcY>EBwFgay-1w1B~o**1u98wyTxs;P;sN z=mK_sJaWB0%cDGGP;&57%{0XC!lY#ChaVFn`K?+Dg;o-}Mc*uY8cU6ZnuN@~#)|PO zJP(7!6;yjpr*mS|74M?P!qr{gO5Q%^k=`GC_L1epGp9B&PxN{`4ssMHb`M9Yj8azC zb>*hs*e&;|lJxRj*(6Fy^GmKGB66%@YdPLvGBA?3=Fq1^{1mlg$AM@D&5z6r0Mx;y zz{z+(TE;Xz;bz9ElWmWQ*(qu~t6X+*wa9R0^-~K>z>Qt~vNREAI1|1yN$U3dNu^aW zBV(3571+I%9n|^GI5k7AD`om)nm1H#!^ZXqCrfz1oV1va$GUlI z!*@T<^fWKMj{JWax3J?CtZpW;kgU1FShFn zLX^W_D<^*tb$HD16yKdBDhHhZ; znAbdH_ssy3KR>HIcJ*4Su3IkD=Q@FQu}`kPDZ90g;i+rvblQO2;$0eRcxETA>KTn{ zb-wC{*5$}Tf7!c!I@`_`5q_(gmBo{`N#+a7k$4gf)mCWXfp;G;dFq81qI)013y+TTTu7I=`>SH{5^bZ36w>7dQTrg=Z?+xru$=>nc_HLl)x~7xbOGQbJTe z%G2?+B(c6t`LgTM)_iNe_2C@{=DCfbOny5vKIgf!%D1`#Q!d9mCSL4|d=-;kOsjNe zwXzkP^+oDT-n+qB3Oq+ES3Rxv{8((2(-YJi@3?K=VG{aHR@34u_mq{JwB!0txy#89 zZoa^8guM(l5tnYT1$_h}qx4Iu!v_9&OoJaJ=}{%9G7IXOnzg|7c-^gmRs*kc>}zBS)0F+!7XJl!&JYyh^_k>fFjb z8@-T~+@q8?gL{pLPD^vXT4K=Q9(4V(6p|5+;!ZMl1zRkQ0rL(`PQwjx6kSn#b6c|S z5ldm#bXwo1I1CV@m@Jzsyyjg>sb9dd(mAuT9isZNLp-8vz+F{Evz9?EEFizoD-=oY z3`kYX0LyLDZU}=(W(1iAc;T-F3g+Y-z=)%KF?U>`YGeDhFFW0H^Q~?b9SJvbVYB;V zjqL(1J8~2jE~e~VaiT5sFsGgmi{F#p{8;XrKy79m_&dFL zL~c8NGm#l$9AoLAAHcYJGk#Hw;{ncaiX3XsAAP|faIT|qb&o1Z>3CBzj{_0X;Y(uD zTXRW7?L&HkJDg#n@X}b-6!}!TV-Ov&o!L|!&f;*nFYhs9h?la>t4C5Q*JRkhj$KtA zO>x=2m>XK1iO%U3d4cVMb6LquXnPl(8DF3pUwIq-M5^q-{`hKptKmN9iTLQP#H))T z>=mV!1f)5D#Cd%g=@@$YRmPIL0Uj#}yNY5M(lrt+_v;Exsk z0b4kbJt#zfW-A7~Za`qkt(;)~q^GZ}%z!GWKqXj{u6}DKa-BHtH#X{6RPO?TZd9cy zm8l}V^7ipO*<9RX!c9a=IpMILqeFV&I-fPSLKSET?_G@!>I=ohut~4f0n3Hf@=#H_41Ui&d+^-~pxtx=vWEuH#Q2Df(RIGK2pG2Fz}O7I z6RN^nxN{k6P1XV%G4Y~EoP4D)0Y?t3m#~NYm}1z=XDElP{V z0t?=OfEYXBoQj_oO=tB*gEFDt~Yy#NU;OhfFsRqu0>z95&IvL) zlbbM#yGZ@4^p?Ep35+7VTEK|_^oO+H84<7kdRsRxMEBQC{A^X4#4^hhc+TpX&bh;O z*A}h~ecME1d{;=Z$;S=SzBv~=5H|v=!+%5T;LlCGzr%Bi-la-1REx13h|8UmdGz@<%tHk_|bS|zZZvupuVa!1oqF)a7Bb(=I?+#aGZ z0#0N$@~c&wuP-~`RYH{G&x61cf{?5yPEvGRg$Z`7(>%&8u$o$^vu?o+ru@@9c9Tkg z6Jo2?tBd6dIw=6ABYnL=G7_&Hb~6L{p3dG8@F}kYNtb_!A_0yj*tgFB z`}XG?OJMh4NCnJa_vu2@n+?w|Vx5!9d=>fLqi;X$R`SgB^14sG2HW#s2jUh`!rJLC z#bW%geaqqzhyn{b_2&WwfQlvP69{cD1_H?zNQLOK$z^>bq3-j({w1Ki09e+zq(b7o z(VcM^A3mT99cFij8^$sZj;A3);Mc#QX7Hrp8)C(M;?ADO+|}6A-k_>`gVkL;NQX-A&6L2d!Qp<^tBi>tMhw zArc{Ig#AIU#z4#;0U9=BObfig$j&49+fDm(pc@EO3bMEWALkW5kTDo(FB^Hc=oc@> zLfz0wMg-|^;c*SVO1vLTd)4q2Htm+Q$d^ zE-y%#_lu@p00^@{qiY3_uQ;5!ivW`ck~~sz18O5&aE|kE3yF1s-^lKjnHa@6&7&YT z&dc3PzYCGx!tO(gE#wqt0HS?0ZwuE=75|D?3>2k+aL&0DRDK$Wk-w9%|MyeMT}Ma- z>QD8TO{=yJo0g!LNcwZUA_SOk5Nq%yvdM{>Y)i8aCJ!fD`gBhJVu2|A5NY__`~iO- zSTRD&0|Zz~T6SZ4&FS3duh>Cc`)f%X*IODG|NrR1LHY1)F}Mh+|IcD?=gpCGDY8H7 z*nh*%heQsOzY;}anbMRY!OE;NFan52mpMVX10?y1(AR7sN;70Y!2kYGHLQb`1NB1? zP27UZR|ZEwRDB*6D+kIGuuKses4adjIR+LOuM2>mXuL0I-c@9zGXr!hYO|a2A35s5 zi-wpyz?w|vv1kcPCQK5syxQ{mjz3FivI#ggwF( zyrSFzb#s4vX#T!hc;-n-tqIK!ivq)`tW4VwMpEIqlD4!p%cnh@?m6>IHtscZ|3jgi zKL=>%iKmzBV8na3%tl9uZZBI&*`|5X?d)sC3ct*U;_i4-WxLbIH&kA43>74OF`T-! z(|@F7YsT#v)=)xSaiwShbUIe!J9H75Nl_+3uDLiQR@%gF7SZV@8h)Ap(_tnK$P?hT{o}AR8Wxr{5r}%hYvmd^7qsoEd|8Vz~VOgeY z-?s_U0t(V1U<@rKEg~fX#t70NN=SEii8P3`fRsviH-boAgmgF3Asz32qBF}iYi6xk z_w(Ezp7#^m=8Pccb)5UL*Z=po+dEJkYBgO+#khvN;^S!`O#F>~0jyFt^MA#f99;=7 z|IrZB0rVufAwIe;Q8i2opPB6E3ho^TpC4R5gPQIM8(lh|`EHy8t1fw?*^k84FMG#P z_eBoI7C-Ok?tU#YTJ!C$nN5yC8+KefUHl=+Jaj&7zL?%{;gL!AP&56=DEcCYpy%t1 zvM>|b(+EEUF3341$f$h^UgRS3;#JwPBRB#QjecI~3V_{4M34O&?f}54HFI*5v~A(y z<7nU9Oj`u{b&cp+4#wqCC0GacGZ!1+2D=T=F`S}vnr=W#(S+Ou=#oDLqZbg-5^5NL z-UV#$M-QW$Toc%})N=YV6nBf&A3#opWcyzS@~rxd*usiN_Dt1V+=RBm<{7E<${n4B z+HDzCSq1&CP};{D1>8myKkE+zOE|03aU@6JoPASCcBQQ@re6u2fZ7rgHCRmr3UJPg zBYf;fgq;38ib4O0d+1WTEA3ccN`@1T_vQG=)l$g2cubHi?{5O{qHJ6f-0u8i=?!R6 z)U3|3Ef*W8*(b<|q^d@WTF{0=mM4>!ss<#4)w=tN!W2!_SJv+@HxpA;F>)yzzA+st za&&ngztexV5igggT{r=N5uOqk)cii(OG%|>{!YUCZ#hKf)y(?d7Q{g&ugPeYP41t3 z%%^jCCm^a%^vW2g3VF)IAXEn#QjGaxCu%B3VnQu5Q9&(jJ@Uw9sU9-7Izz&e6S zL8-Z1pS;d3SK6tJ@v*;I!v0GK_z4tv-;>w-!Nx#`6u5n>^fI5+wNGdpGpDqoj6I6n z^jBX9+@mM&<@fMUix$L4FV4=jvRW=L8NG?)pj;$%1F~CN(FfllwnXF?@$>OFBaE*# zy)gSrs6-?G2WVCyXc-VacR<=D-Tna-po7SsACucRQ?YT4iS*P0ZNr4{cn7DogI{^P zzwPLz-`1BBWloGnFsZ9$AtbbuR*f_(AxmitvuLHCluuF7j_xK!!RKZ<*mj0V&qyH3 zw54}>yjFeY9iOGX8)w=uYlih|py$Y4Gp7AbW=GKn|B=P|&k4}#;74ZtUH<(;o#ZM@ zivG&1gVqh>nKnUDMz6jDw<{6qqHZt8Q&68`8uNY(tdQ$pt@kPMWxC*U65Dfkq zVU;`B7y<%Ti}=^&S=%WpyZA^$r|6UwtqF?WZ?5y+z(D~$8%28Q-h;;#+N5Z&skC8Y z*Du@Z4qer%8E1a=_1Go#uQSIptv~ARJ?2C?^cA1D>^qM)?y*s&r+}$T-0ZYcyK3=So*Pj;7BKv!Gf5byH(QhXE|vch z+ZOr--=;7Y^8ECVF=*D+{Vyt`^vPqV2p99Zvt63R4bV|bT0D(kJM zRCFxKm+E-D=LXl^NEQOlbcHi{vueCdIMx84_*-0x59T@gh5_vLI6<_Qj2;RJs@)q# zQ{jou;@!*wxuJ!l6%DT{{Pa{#NorwxuDF)F-rp|{J5*(Vc6F~5L(uXwG@KbcbZB-e zyB8E9T}f-@^oLyA_Dib17LBLn+!^{H5~>e^Hcg+Zc?uN8Hg1ydSJ1jOXL7j*?2GJ` zKD);7hLyAqZx$yWZQW@_*tTZ1cYO3JcPr<(qFjq}maA=*2Hv1nc|pH{{+XH`i~8ve z=aY)db0U^SLJ!uGsp=06upKMig_A8}Vk0L!?COg}jK*QElNhSx!!IRJm#Q{d{64I8x5Zf0e0YYXKGqY+@_b9} z0+-E=rf3eFjfFnUJeLY0<}lY*vJ<*;jIM*c`IVg#P9`)ikk7xwZx93C6@%*u_7Hfcgk6*drbt zWlD&WOPP|oZu`YRMF6V~`zuC==%!~)t|epf+{N_wNuv?E>;mQLE7&Dd3Z9q>dR_7l zMRA;Jcu}tXvehS)DvQHLbV)`86%gx+ob}_0___H@TmFC{`I1t}$|vqw~E` zdsSLvoNayUNYY$}dyX;w%_RwtAF?%Tloi`yh_O_{9-LI8gIh{^A^Cw>OE0QyZ5j-2 zco*<`UL8_`R*J`}yf=7?pLEcKa6b7g+wp0V+HIqnYf|({5ZHntq?y=k~7ZaIuh*xn~#{I!)xXiMK zTCc~kuL!@-Zc9MP^h=27v4%~rnDK~|4A6i&5N;UMEXkltoIvQd=YMpBKRi?qxJ^F9 zPPJH?7S~Xb;ZoN>@dEL`uWk&Z^RrErdM!W(HDyd znTnTPI=f9tIai3Qkoi+d*Jvv&RI|F4Z)Oh~A6QRU7mIZG!n|(QH#Ej|V?(W}25-RC zAP8LoW>74{Sls&6FAj=a6ZkpkN6HFRT<6k@KCfLZ+t^!cbuC#crAYE6!_9lIX?NJg zQ5U*i+MwZC9hp&jEL7RXYkO#hm1oQJTZmjGvA$roRH2}_LXH^|-?!R$BW{~lEz%Y- z!Aw;przp0NeJ77cTb3=Q=2pWNTS*gP+>tJjRSCqqZ4x%sUZwx^@f@dVc|rYgOxuxwH`EMJMR9tvF$^dwf~ zL)RJ|#VPcHWEgsE=rtSXR+5`FVA%-noJ^7(;hbP%7Je<*sXfOF(9LSmvk@! zbYcoAGMmzgjU_AmJ9gb9ev9u9FU}@Ykj2{fL_paG*Ux%@YMq( z2ljkFp@D(b!!g611E%tsTUOid(@ko#N_!+qrr#cAI?x@I2Ia}AA527{nQP7ui2?;L^=bO{t(B6nxMwjTk**@mdVrDZRw>w(38&R3U z_{N#)iZ9EknD10A{yxjVS2Xe4j0Z*N9%N;kzCGegLoWo$unS@=Q(e23N_8lcX{K;k zAIDT?OuoNDS(P!3M)>)hUv!@%X8neNvQRHu2Pnm|cU%JvlW`Ytk)4HeF+DSb7X^$Tr#d%(H|2t$`^isyfXQ zZ)2hbj+KUzj7aLUI0*)&i=lRVGXU@KTZVmUX*ft>3M(?^e>@;Bbh zddI+n1Kok&|7I|+q2%I&9lM+>O=-c?Qk2ITmn$-gzGALz(QSPb@NKo9ElO@CDFDG! zqnu)8>HBz=-BuP{#R6^7_7}VkL*-~H_HjkqI}Vj~wqxSf0qY%IUr=Mc$#>TzRXae_ zTE!;AZ%}GpuU`-$L{R2Ynrnb@AbrM_mXtlv(9pn&hHra|W_gPS@2#9|@%(Re<>_z7@W$Rj<#hQu&!S~&A(65 zbTXR^kqcXjDes0UeNC3@7U>)lmw55chm@wu**CTkm4yEBwuWV=HKk&LV6E#2IQm;< z{u^*oXA1@}ur@iU;EfkFgPX7*VAr_wm3?NLWAG!6Dj};lPp&yhdgvX?tpsd+tD3yR zB%5QD<%b42(r-8Q24*zZ%7-pq)5=+(%c%>`J4eAD=O3)PSh!DQwX@>6qFdfy=q*4z zIP+v%X}!?AdlAPwn9USisGdA7QX}o`%j@3L(P(l$u|qm!w;*yO+xDbQszYf0eyQon z(u2=fb;r$&#-<`aY2c9=RA)q%N>J&3S>>=}N8^~_2+GW+Z);Q{698lO<+es~_k=?~s25W77n~QyB0j~-88#ImaG;;OVPq7Fl}(Xp zImg3x^R55=_zDdg%+bQAz^5>H%D)*)2axRFfZ6KrvTm{=(CjLN%q{q%b@6Cdvp-9V z7GJqS+t+u3s)-~mMbr1z6-MX56s>A|%R$ZT%u$@~%6a4c(HSB;3Y)nLoby;$@SJxe z**U2UcRua+7>(P?t4`|Y+hZ$pWon59e>3Yg}5}q|Latos?4gw`| z1kwDwCie_;!BwceV+<6LDM^&N&(4PWfu@kp-LdDL{rohv4`9Y`N^kOWCfp zt6f9pYa>~ni>&_24znLKjWE->=KE5#1K4#3E{@-{QI6akc2m|}(Q=+k?}Ik#WE4gr zlMTww=c-n~?bhVTU!+Le@Nf<2lJ%Wv3R@zs+Z0xzvg-rZ*Vf z;}ISLT_8(T$Ac}lE(Xtf%JN}8i&kaJ%6yKkHMY5o&p@5|D7ZP_*RU0N{UF66ruq$I z;Z%-R+hSiXX8GPcVNQBH;VB!71-;hH!Q+int&psiR zr~hbdjNXqZW{DTI`}J_K$ESVrgjV>+Q~R!_C=F)8Lw1H3j(jr-#peOJwu84!>q%{f zOq(gWc4>=52lRJD$wJyy2-e9-u_+R}lhHtD=&-&Rsp<4I&t}nPea7XPiH6VAwz4*%vz82z3yx{I)iuR1zl{F=u1kJ;)@rUTZS1=51S0^I= z0h5)64a<&}uV2E^aFVM&6001OOvYogy@E6MrT6KC_4J#Q-pM$G`y5(($Mj-b*$uAY z_}nS~+^@HrEag4YhJFXf8q2JqigC+un7c{k^TyiL$7KYHHO;r#8E^EIto#b+t>Q$~IWk9{v+ZNySK8FuFJcIKQe0XQY7dOojdg4_Yzma;xtI-V zZ@tut7sfR^5!C0S&+ig)F125ronFvwCXrdEY~}Chxv|+PH)~?douJ^vKx-2!dle&MV+oruPGnZ;-~5pEPK0BfNS<< z(xu7h=;p9v5vVT)$s1Gxw;q=e>;~9S91Hx1u;=F`zSFu)IsvyCB6zA(RcBU+TKW7` zsyAU23Y&5T8BWu09GdtJ4{R5mPI7E)GlRiGV{fW>?@P2@8Lt+{r8G5gggk@^+e zcV_3ucnvGge{of{9m|wrdFv=+x`A(>=4xZ<4qMNku=TZL*-WdAN)p8zthyO%hMhYv&H^0DllviSr##!iTDq^1ZG3yc*Oq=m z*QN4>GbzNaS&?C{rL*p;;aC$<(4Ic|eJk<9L*oFm`>t#1E1lFv?=+8>?kc>eE~{u* zFsgmyRl6?|nmuT4dreZ%e)?OjoHbO=l1bGep~_F*3>PS(=Zsp6G4qOF^87Y8RK@4H zQP-d2P_FY?v8=0_uWQ0j)X0e5=K7ZaUe)Fp9s;rnL-oapQ6sY}91DQJ6um=v~#J=_q@sbiYR57!f^R3 z7LLjFGtiau5m9_h%n6*j8*?URY&y=lg-I6|}YOVmn_);yQJCL;IZ- z^r_8j{Ni6Xq^@+JqY{lc=4M#u(q2{IF7{*i3vRryK9o~+Xs}5!2u%pZ@-nJ=*4VD> zyKw;Sx8l0sLke1BV7tyL_uu*_M*ImzQ|n{YM_yK2c*^8gznoUYz|L`z?6=D-QjgSM zQm!~w?C_=T6ve(U-D2T_rs;=g3+Wsz*0p$v&0P+MwuBC5o+rE-naXZh@26r2vsQjZ zlVC@Y2(F_uciz!+bM2R_p=W+|V*Xobgz&-}U?{~)M@F`fn{AU0miboeb;b@gOvgzT zW|V)$43uPMvghx7+#2-)=Q>&>8ExC;{uH9IrE|JtUmJf1=$?S z|K*Hse-W;uCbuhXeO4LAO)W~Cy>cwR-Olkk^>se!p^G|dR7%G#4?+L2l!S13TCUG9 zlU@96lAR}a%4=M=RMqlh2A#TBx&{d6XD);fB7I;X95?^O)dEkK<& zx2X`m8DF1qd$YsgPVO}RG`X!8xAM?N2j%)TB<{b_*BP_x`TZx?u)mmGlTe?M=N6`=ZptpK!mr2iCpWNqRd>4Qc~5~cwcU0@Ns@I!d^*tK zI4!G1CMDiKN{4bv3KXEF2Ra!{#iEV^8&=6l}_F+XUQ>wCK>#44A+<0*t@1 z6m8EMoQt!aZlCJF8?r1Ya`QDv95~!HY>r)EeE#k|wU{MD)X@V z%5OL=>uAk_=QDH&B_p$v&?T5F9`h(NzJ|SUFP>ur)=%YrPaQxLJeF4QqBu`>h(yAm zEYGa&s_BTUz`?*n|Eg9F?~g+5Vb1(brle7hlzK{h{CT)*gB+!*ayb^iZ2BOx$r;AJ zoQ=Ft&@iJErpGsjr3W58$%$)c3mUlSWe}C?NYB%gRx;n$Xsm`Fjju>b4kj>j#m|hq z%FHr>9E!TX8ll_u%J@LJ|4El}L$7#y-*<%(1nul2!S7EJBcTVkz!${oorJS!Ck-sG znf^+uz2(1m13O3*ZwA-bpd8NdcRJL<~PoDJs|ahW8;H zEGGAu*S3J|hN(+*c&3Dtp)uRonj%uRGLZkmt3X#;7t&?d65XaL!*MYjPRp*ilFGJe zI_(}#&7PZxi{tjsL-t=>696xN*;g_&nSTYvpJ}+@pXoSAZuPaTU0Fo|aOKZ6(LOxY z#LdArn>$n(&)yRvpr|s}qLrc=#Iya{`-$AS$YW4=Gk?9E{d8P>vRaH$6uJaFgl}8hgT?fD8<+A^l`-W;iUZ#$^3dp% z^^$oV>XzR5LvDf%1CbBr$i>HK8cjLp|O)e;fTyWW-Lh)qCpXi;5Li zJlOT9C{_!W`Q!k|xM3^wKG)r^or@Z5;x=0cw(8AqNiJ~8h0(mt4b)K%_)?kbMbk`) zeXfP=GK!-2PWQr&dj9Dy=143Ww2iuH9~R#mrxmpWa-TI5gk86|aF?9p0xnFuYBdLp zwKp{{a2IA2IfR`^Lxl2y_FH{3KxKyQ)PL)XyLQqSU>C9+Uoa|i8T*vQKg&;owoy32 ztFR|lD&g8vvH8{+zfn_Mg9voPQdAS)#u?5ptCSLwqbvdf>PC1Mcr$rZcZ}~E1>{;B zoa)f)*v0+Y+b~SipyDTGOPltF3tx17;RIVft`n${!*L1}%U7eU2l*|Ba6R+i60(Kn zrLl&d@|ho|0Cv)ihMmjOpFtB zRwp3$T#RkQN8<3)H9s)U?H55ikMXO-7+Q|Jc1ea%^w_UJ=Xg&nptM-@pqN47REx z8Us{J@#PI0=9n(Ai~q9ya&c^9t0s{eE1F|hJwRoYbW@ zLo&zICp+O#?hlXhCbjDE{D+ZJ!Qlq}`8^pY}0EpWq2c zrtNt4L~cF86w~|lGdd#ra*S*_EAJ+~h36%E1y`dT%EBz<_2^+*4lZhwPK*JZHZOn=Q7I<)hhmBOwsmIlM2& zg}x3e$^SOD;cmUhr+0?9g&$;{>H<%t#xU1)nL#-bt@3sFv9<;G)^F;1Dy=X-z5$_6!#-^=m)w&qUF8foi}) zSGbetfbSO&d|qf<;_av%_E6bhoZFbX&icF*uPswY6?Ct`VtCiJwoyVPrW+5QJ57W+ z`Ij`lA4ivB9A1Jao0^}D9SMl)$3Eu2gHw2;{&S+=gU*$ zc*DcDOLY~S+rtYjeo?+Gw{dY+j1<@>m(V40nHT1m`L+0NrUQr^Eme^ZE4^&z&e|Sq z9wz3tWTOlI!cU{K79pa!Ad+FbA3|)h)VHyUmDo5pQxw@fGE8VQmm{MP88hC@HFS() z{eq(5mxElaH+FmX*LXmr153J+FcUj+0e)I~w9l&M{F?iN+D%- z$!}%iEOmUu7Mr2EFjyQGvG~aJa+p*;o`DMHE*BHKtrYgofo|d0YI`pyz}s>3Vs$N9 zQ8N~YW#v^KB#{D`85w;J$9Mr~_nC7By&&C*s@U8uXL-DH#IbkkBzDFFHkB3<3H1C_ zw`5Ak9)>dm9)@W{vBzp+?}9Jq&>*iyyn~0e!8CJ!BH?YpI?bU9R8 zwWzA@V=`dp!-<}*JHJ&VDfUFww&=8;qW_Yvr?}Xrp)2AIVBW2we**&{qE^Nd_Wxe*a#XTjK`#0872baD;rO!Q$hv8xy?R?OU?JuIvn?1LG+? zhSdG9rQAiiLYcy!zmN{+Qdcw4e88Bk+49(G-MOT>9$x%kdWx}?pV%Xdfu`&mGLAfC z#BBVruPMb;+nybVk#?T2ui&jv+?dLiFFDQf;cR7#6Zic*f07Jp4s+QWNg(@km9I?{i6doGwQIA31@$FM&R5AKqMp?rK8gbA(P zi2lNEKK6Lanu_O~y~xSl27!H?~A7qcSbpI461+d&XL z2HjCzrsCCjF(8oP+-jwRHor+1w6lV%WRfkY-YP8b3Tw4h?KU@R0S-tYytE7Su+z=? z{__fWf@aKvI>AvKnR0Sw?U!%7%$OT0Dr<1$an+vBbTIPSt7{Q|%ln#gph&IbGEG$rFw@&ao9Rt7)74rtzeFgu&egq`La9yOd7eB^em)kTudK zEcag{x}`mT6)-!G!#ktF&fZt5 zceyiyO#D?#QnWy^Ycbm!`MKF*U#tkZ8Sbo1v z*&rje%pb|WeMV2-OK{UgsJ(4)u8l1*BQQ3{d{gh1D&ReKxiZ|QBSMJK&ED7WTXK33 zM+oX~NEIIrl{8VFN zm+6G^qgEjTAtv3It#Q)?b^&JEa}Ty=qPv^xXBLwzha9{~DET+n$Bovcy2->kC`Hy+ zR80bM)pj1|D5G1iNtw08QOt;%YU=y;mTY8s-r1#YkCq5+jeP093)P6y?$BjRqSaNb z)@m8vNuD5R0t; zT8+)EG@Z`0iU%zwHMGTM5gRVCG(PJ#&(F@99gt;|kc#dt`*I6kTS%`_B&tbXDmU;m z39_BxFf8vJ;L&yOC3`<8mey2-!{tNmqlHq=joWCAT;X3h)*yr~FeO8R>r2MLz9fat zKV!arIPvNVWf4_=dTmS@$)yl930-2i%?bvdW)IrG;SLtNU^%JWC+kf$*S$8^&T^`v zdn2Yi#^eIW2v}G5WEo)a9eg^OG@9IA6DUz4o!dPgc`xhQeBwJ$N#SaKrr)CIxvB4oyUwEgR2mj!5oZ;J4V-_f;Fl-5Yw?qEKMM%D3^U#%Ryb{du6EJWow z=;+{xwOY>>X{jB)egtb0XgoKbC~4Z~8O|weO}JW)tTyiDk#Vox*;Asb7{(0oP^~Zz z>+kUIQnI(P;D|KuhzNrIAczFkMiYtOxEk^}sBfGqFBoOQG zgs2$eTa*D8;tvXke}>jV&-=Rs?|QKDB{Ds9E@tOMHnEz*Dt>jfR%z5>iQg3G;kc(A z-W-v%vqtV=AO^SNi(j8Gc3z4MJv>9`@y!`B5n)HS4WGxHwkOCFyTk6Kz`fa1N-nyw zbo^w+A(5)5Bi?CP8Ze8PbQ|4A=7MS)6M-9g3B~u;di8p8pHTXcb>X3HETZjKES-o) z`{sOpExD?#Y>V8Yd683Z0)2Dgcn$ixM;WZoN^y+o%%tm^)kgwEM}2&#M(GlZof_5S zt?^gwqK2G3eyt>cP5OHk`lCF9{4({S3p2xc%1kGV^E_GiE8ImMdQ`TOO+}~&E-@{p z(HU8--D0~(+C^rMTEM!{IZhvTJ(YM~$z9N!+>)ZV_>`vKEZ)hLB0#-4&BpJ(jrm$C z5{lNz5ROKO=IH-s_RLAtLz-O+_h&Qk!mX6uWmD-6NaoJeVQnJiy5O>vo@-Z7W&-WxMlRMc znSI`~Z?`U>Qs}XTWEOgTRM~9imKUX1z=~x3p4{UCY(dqrG#_X{1i(+RPKRofDK z#f%w6<(%)83ml;AHL>tlyC7kz=@AM`1gHZ*`6Fbz0Xq(qu+$#R!Kr|fpo`^X480bTqxn2K7xyYFQD^+Yo= z763IxIzCs=#gur1fL8&}tLK(I#U*IooRU`#dv*;c5E~}G0?;%K5$77g<-L8qxqwEn zX^)x!pG`dI$Sa!n_MOw=V8nhAb(iK1@pHa^2K>mv8>sA3LJvCTSi~@%0MFsGym8}u|GAIu}7JI+g>~fBdR9njTeMh$ky65MCaw^Z&iFjH$97)aHmWaV@ z?!WQUwxm*iw(%|A{yCmu&8Er09XKI&d^>8hsWAnrj#WI3HuQ+5^@%HO+aEl(LEVN@ z<-IR86Q4GBPl`j+Fd?6&Cs{sDyh*`geCvWaaV{+GB1UYrWX>9`e^vW&yOP zBV0Wdei!`wS~~5ssh(p3&h$M1kVAlM2$kh_x1?GU}Tx* zLenpMvqOy1$(#B4v9w`_FMGXPjXd54XIXV_tD2(A6#uF_KcZ4zAYCQYF1OHs(-o`5 z6TnEw=7s5#p*}F$888#pajfE`ay%wB)1&~|rFfC#QXdf}U=rRvWcV}p(^}^s$aWsS zA$;yv?Loc*cD{pd$rz_e;id{Ce188V9d_1BvQ-xVIs2lMI^$SrhD~@XV8BU3lkjr^ zanfacKz$nh!+H5gOD^sXAcfOE{K=8X&j?aEFpNKO$p2D`+cNYwbv(6|w}%9rHsIKp z?44gH!XIav`$@!#3eei8v(>#B^G1{Eo#5W+=JH3an7+EwiIm=s%he%ruQm>1eG4Q* z^SFU%c=Uk(%{cLA(7-2~xqfB=&TR?TEyIevTHN3}LlNwI=sCwZ?e~UCNNd`nXE+*E zt3cZdIFsK@ox{F?aKJM0H!guiW#Oo6Q#0o$q!<&<{di{QWs9@|pB9gjsno1Nf9{px zuZe4SEH6lPso0f?^n8=${-2mU5Nh7$uW8b)rHEqz;TE=GwO1Gd?fNHz&ef&|&QtCr zpyB2k#U1kL=9u`XE?Vmrj+3nxmUXichm9Il`y2@2)7xR3>q&xy1zg4F9ili{N0|PdI`TK6KRX1TA3s95_Ic;06ILs|NwBFYf5*~5 z7Yy%=T6znG5eYAmv(r0CPhW$2MBZCD^@(SxY z*9H^D_9j~5PDKZ@t2eQ%2P&G1q?Y*nx8hS6=DZHO8H|KeqW*w-vqk_1~Z|Rf;^~cdTE!rh`{G^ZIL=A;sJVPUUt^$F5(k@_QdnaUN9EXhx&mv1Bi& zK>N0YQ&M2yq#>y23B(#xBnUWoBMbgNJ&aTO*=3&x^7N+)g{H1^6?a^nq#rEuX}Lw( zR>AvKi@H;j+#{XmG%WeV@kgq+Ma?dM^=^$U@$YDz0|^NKfQ_l}3>0lWSvnl#@zY-~ zN>r+vM*o$F^nH{E2>7uL>#V~Pul=RTI^>O!t9u>;_b%xD-CXatX$(rSOZiR35u@Nc zHzTOzg}C7)`^4LlCwOjFKzk`nK~4ccQ=%(91~&gI8Rv?ub4e+O9QOeM2x?1S1QeWD z#6*y6N66VT*7Tqd^(){*kkP4t%z`h4C11zCBU01{C%IEAl^f1VfJkZr7*^)D)r5{6 z(|ay)Tj7>ggooER+n;gv(;bLr#}UBvlkv>G7Hj;@vlEAFH1 zWnrLJcf68}gXjZ@p82OrdY?^iHAe69?vntlxInz{g{3!V`O{bciqj@c>voy9!9t$B223VPc zycd4q!jdyp2wS89@KZ0lLA-xvG3_znr?OkX{k(94pfp6@^8YTr&9vvi*Uux3ZRm@s#pFJ6PC!P=y$IMqfDd#jUMZ%Q`3J6S&Wdy5 z8P_=!H_9t$__y(Gja7q>s34byodpt4 z2o@xlz_!}0l&ej156TI81iRvoYo(FM;eGA2AhfI%;oUsHD}znD(v za|{_xyUQm1>sO|?1cuzV5Q^bn*DV#AZA)K<4;F^24>u3@9X%=z<|;g-qj{?0gguwL z@g1+wfJ{xArm%5M7PyRO3`yWDH7JWCDsJy>H6F5zJb=1QCR0BJJPRDGm#Lg~svQ z_Pa5MYmS#sCLZoO9%gLw4`iP^`@4<9#2@@kDRwkl^01??S$8zj6Up^_TmJc&FVm^^Y==fM}zqFNX%AuivZBHNli z+>41+Z;v_Lj;X2G3q2$d*k6Bm!|LoIa*6ge|=9RUd5k^?8%peQJ~KZ0*qsJU!vL2X{>2zbu_K5$CjT^CPjT^m~hd?lKC-1A4I#b+eE<3;GEE6@g~~tF*Ag0DxyiV*zIffZS)E zqzKfOgSiLud(sBX43EdZ3LE@qG206nf$dY2j(f&iTjTzta~T!V7x=7L7*t9h-*Avp0905Ep)_gC5UBX1_Un+Lw8c6OOjyvw* znUau4$K9?;+5xhK<4>5F|7m>zZb{>r|1A#uk1!Yn7}`XBE7n>akgjTB>Q*16>)3=Y zyN3hv=<+~S4Z~S&iN6PVp&$35#mt3pbjY?h=eVCSN_8+wMKB{pDn1B!rSh5v&Y!9hM)#N5GBh79dI zQaeH-+yEq2zu&<9Bk4-eA3#b#;IIC{MrRqwaEDK|N-CXh~@U zlM71@D2Z1eSX}*_Q8m2RJRCOKrh52IH4?_j{9Whel#Vw?a&$}6SamDND}o5MRfL(` z!#^T<-FXk7Z_;^?;(=G(dCqZwU}LjYLqFyD>7QY|7dxSuNub=mG2)7MD@8V~>2jdo z8-CmBT%C?{lUyHdm&&x5v_M4R3hFVWS8%6v@+^YUI(J0q{SWuDH=4w&)0@MN72Aio zB@SDo=&ZcwCPSa1VuetJ#u}!t2L!jT9M)n795gy^Goy;lbsv}8Z8MwcM1C}tdjlyO zSe{TL5LSq#r;Z*!bZeP079m}NWa=S&q%6?j50h~A7!AQ-d;1?r*FXAn_+S`v5oPl4 zTtZ+EMV90D#Q$t*h)ylWBI6uVnC3A2AcP)exhrxcLoc7#rTsWqes=~%9{+34IS|3G zz3owjZ`);Hj}mDLs-0G~1f2UkNt; z(51J7kR3c5goRL}*Uq+$)c>A%{crK4Z`p!Ccx8S`cd*zTRc>#4V3TTXcz{?~2=#I4cp$ zZ|?=4@O>u+mxZh}3^#I|lVDv!g#gIW!p$D?mw)dfn83}QA9YbO-j$Xyjqm}F_}CvV zS#Tw|2Gvo<9f+QQ6s=Z87TiBr=IM5~3?$SJM*GGt9G{s_P}re357_MEhVaT)|M8y> zu->b!if+JJ`?J+sqy{92G^TF4j#O}er~)PRpc4ru8NslLp`cE@M0QCiz_x>R<9%jJRzq%=pvpBGhGw=kQw}V@Xu0`TvS()FAdY92N#EN9W(6?7vidPiJ84NwU4+$8 z2;G>YKd-4iaH3A9a)Oih-DxYPd_m!2Q9IsImub-=IJrH79VW1P1h?_Cp=F zLp7b&G+X=j$7-Up*)n?PN9;4f+w0S+!_IsA^?w;cT)ZoJnq^=?2yQ3XF~z z(Tjg6+<@mfAOaL|Q+Ug2V31C>*(XHA4*s!xO?PM^RseN3Cf+B`=7y7E9ODv_JP zb)Q4$HCF074O4vjxt<`+kjk$FiWIsgkLfeh{q$>h$T>T+%3k==StRtn5|;9c_G><& zXlDT%JY@63&Am)HTId?dmFWbw9rHvz!8Iy96*5m$JvjCIW`F?y=pk%RSmMn0l9au& zkn^iBDGM=?t5g3G)J7JA>_X6#e~!OM%S0UBOgQr*NG~~XoT*JN3hDkMQ>IdpgtGIq z%x&_xAT+2`bYHxr%Idg)xsAm?dB$3o3wd$)V2%paU2Hu0amR(;95H77jt?K+3K0~6 zeQ)|ql2gHpTb9uE9Y72VYM`wd5H%@oo1)~10Y^po_9w;TmZ!@^Vv~sa*-(`Y7YrQ|u~n7Om*9p5%W#R-e0Lj%$~=$@o^grv98&GadW zPLV3l@+jM;8H^qf`1Q=0d7;dUZzp!o@|@`YI;D~Ri}54#A6dLaYe`LVR8@m77wTa+|NjAQ`o|`Fm_fdN0|tkfy0G7=lg;>; z2=nFAmCm0R&ozOhhGclT(AWBdua7ubNH||U zO;T0kQ@Q+-;u5rT{d!nvZmGY+jqlyFJgI+VC4?55T20222?*xzdlAi z(K*sfLn4=8gA|qolT2oher2N^XO#Q_?uE{MxMqWXcPNeO3{RCsjD=g=!t4G#A zdhe{O;6$rruH2-*ffjT39I}OYV)lzD$wo! zf4M9VHI$A{;8F2(bjSoLlwfJZ$np!~b;Kk71cBMWO7ow=Y#u;?>(yL%Rx=z~qyXPG z(=*Tt1gi-bb&pXx&hev7ufH|#4HxBuk>2kUjIvxQm|$23)Rs=Z3oQvNAQv*EhLw!M zk|(7{4o0Jlf8o}09g4y_FR1r^9YgGP@c(rt2Fo1x=b7LKr1X7FD9L5~tPCK2Xy+V_ z#$lX1pzJomL_7ZfvG*qMRPXElxT27-BxK5%22&YAnP&-2<`z-35Ry4lN|}jvriu(v zM9HwQuvCUJWTwoKDf2w@d%lbI>Fj;(+56tJ&;9@I?|*x>w=BzA>-+gWpXYfG&-eQf zY%qBI<`H34g7gLweJ{wQ`d4=#1^v&?XeqKX{3mzQ&3s^&dAOEb)K*@=Cz@*?GL3=; zgcyl6jRW3bU zzBy|YM%GCDwKGe8y~G}R6aLa^B`|~cnD;k!~7K`)noZw13k?i8O@e;m)leaR7I&4(jfooiRwNb{BM3n5m||HT{8JuzI_< z&OURJdy)H~)%je!&gY;MLO%^4r{{FYpxk5L5zqx)&EkCqWh!se<+aIC;K+o>pe`MZ5&+vWdhko_z+%0(3Xh^+x zex67DSEcqJF!`?+h(Y8c@SZ34+$gr@C*lH8g=RqJLE21p=>#nj=0G}v!8r0#&(_}x zCMZP1cL-ruY=eG>Q?9&r3}JoHKL@7Fsm=pSy!|glw%O7^LDm2Fx{RCCK0v+x%{0IN z0{BJRp8j(^g@4BL`{Nmg_ac#rCTFr>Bw%ioY!wB}Sqgz(vD^FyKQsW~Q6KU7g(_T} zP|OL9luBaXhG6WgJ|TL4jMhTBO0zXp!Jz1Ys|)p^7rq6;7`}9%=cZs9DpmMCWFWD6 z`)>vk|IL9k6&CQ(=lK8wW`E;B`qzjPMroak`Xb8j!pxlniFd3`?*1x{oXGyz^_tgs0x&BJY%0N((d)IH#;I) zQ0|{mV*j8~Y%}PMdH=#L!yiKr0FT-K zXRc9#p4LRTIs(Bx+{iUd;m9@F1Y(zjwEi8Mk2GpahS3_2tdTnaZ8e*Z!xd1_&5N{v z9WioN`^1@tH3j?%K5YxM%d1c7n0Ia(jbZa}oy57WQv{cB23$sXFSYek61*BEhCXnG zrOw~(!3K$a^M>{h8}GAWW$k~V!9*utBok5jf?O?Oq5yXM=7n_z63G5&zTb|ZJ!tI$ zsq2UAwa*gi=LP9&Qucv-4fU3!QSjxs%48(yl`tuIIDP0I3!1L|zT4kjP&4$;=AvCC zTnb>`zRlJj+_rD&w{YO!)}2SLmxP{!N_zr^2P183(ly|;Wfzc(MN})r|L($>-(M^P z5y(uKb}d!aD*kJ&rr zX)WNfIGA3^DMrtngEu|Bt?a(Q7rOEuHZ_>KomeyaRxd^d&1_g9jh zv$FZX8qKI4&&V6UP0R8UdrsZmbK#%A5-%xYfw->MD%sG+n>mCfJ!zbMV{HYWrE)FCsY<+o|NU@;M=Eahs1MF;_j1lC zyup@udTkiPob0ecspx0MX*P`BHr^R%Yy505 z_gF`Aq%~S8L7sNPW|Tm zIHfTrX?t(v#R8o~*QR@HcC^v0v0t%baISjZmNOTKGrNv0bjqo{xU77RgHz~zn7%!k z7)$)!D-lCi2FUq8rafTHds-cHCoePni##T{S~A|1lbBEV{x`ZJ#hCr?f}dBHoHBn{ z#}w`TusY~&-8~^?~|Q;apRw;I#O z*{Sjj^U)gkLUXf-P9e_D?H%c7ak5FqCkyCK1Pyv>;LKQtBkZ!#?AWx~suB7g8`m+y z+PKzi*T$a0l@uB;D~CJTz)M=?8Ty-HgH*9ZSPJpZwjL+fwNvRQRy+DdDXwD^ARrz- zq8p1?8SQsSa~q#-+X3(8h*e%oEzoY;u@xvGxm6>&%`an=u(t%lchST%@`-9;dbZ13 zT{#|Z5FRNIE<_XWDnzW0sV8>50Lvh&h`Gd`Js>;&arc#Y4eGwwY9fl@q~nr759*G; zfG5H$kxLqF+eT7&7M7u5Ep$IoUD!RaAYfgN#}GM z1T5#+bj*%an}<%`u6QJn+Tl0ecb?+InJFT%QZn4K6APcz@}WTZ9wS&S!>8jd&y5M| z@zhWQpJ!NJ4@aLGqn$NGUssjuOkR`c*QAFjKZW6Xae!04-99XPP}b8zUf78&{p2qv z;j4P^UGpn1L`@%&r9)U-hax+Kbeb<)`5Hw$9fUQ@3(7Jba_b|ad)jzJ>0{o?&m^_% zq8#E>JDDdRioZ#dswmrl-Hj_>_yh`j$aC&I7 zW7#p9bh^{m?)6YaeNNg~q-R_5llIv+V@lYLL4nubTN2P!Hr`DykiB}j8A7214hWZL zs0`}^!P?`5PBLuDXjVGc`dSTFc_6$Mp2hzPZImTDuG1*^3Vo{`mT%sXVu)F7M}&R? zZM2-c6;+QYU-t9rJx?HP54hg7DVGY{20wcc{go^|48mDG`hcsFZTZPCSD`BTNBiGV zM!}{A%TbCD`&m!xkllDsQ?Px%V-=Z0)!HQS zb?hEroTw!OnS&KqTZUp|##y|RL)yupJBef4RSL{r7SLgScb4H?6{3F);m1y*olH3t zBn3Hd$F>{c_MmZvp3ijd#^TPU6a;do=rebutKm*T)K=CQIHg&(zA=8G-D%&Ngl@E9 z>=1Zm42xEm4jZ4pPZoC%p7b4}DZ#0eNwD3>zuJ$i#*d8hb)BBMo6mq6|3`HOwP?RO z$!Krx*HWa@&+C$fn8_(mC+U<9AmI#Wy?UPP=V;~=*23&mx8}$W5(v+>j}Zu0?iAYI z*`Rc;+=^Z`eHZJ8KRQfg8(0^prrNbNL)sQV4M7-FxQv~0KsKkrv%sX%KRA$KV{1b- zNYk@)RZ{0J!}iSK&Ky58u12Yt6u~`UbVx$pp1Pm-1!E(ztLb5p%Lhby)F^i+(HERK zwdbTedmJIQ$8I&rn^v9UHHF{Thg{7kqGG9#sV(2m4{?1~E&YQv=jH*nJ>1By@u-Mv z%_x0iXoM>?_nz%ebUQTY)W4OLzB*7us+DIG7X6hORyGNpZ`c_x*}z{imf)#G{q33Y z0~^t?0H>-Eh+MyHNU|5kj;t9V(L&)cX1Ve#F4tl(S8O1~IyxDh2 zY8+;hUu$#+$<>5J6=uWuLc8kftESWp^d&gMusgW0X~PWIwC}Ci=zRSuo3prkwHKdS z>JGOiKsJ@kGxT;+k|FzoWRp}UYowlZz&;rhjw}wl;OAF;{YneVJ4zJ{NA!Uc(XR69 z)8DV`6gZSMz;5&MN-oNP3r=A$z(xy+PpU1bk#jfsiAZ#&t};@N*#x3|aJe z9@+?hE{#gY8EQdCItI2%zqt|)Dx*Z__gGw^lea2Xwln=Ko{&hPEP6s&OoUL=7ELp+ z=YJY$J+UXojs~gO59^fAsVn;A4su%5dapM4n2(|ioDVs}*9a!0##@yhr!n9MY8}8qi7I7Xwf- z250~&{UfPJjHp0yKGL~sc0`E!8;-i~Qayj7m2SJB2bbDOETq;z2n6({=5!@oMCbMw z=h3h><*9~=Kh^mL!EwMC1*+KR=(ND343h^=57oI}A^GTP0L@LaQm|vTF?V|v zU%h`dd%P&=Bon>C1^7(nv322v9q;qFvNW&UG6UdYE)In^7u9yoT+L|QHi5mUrllTL*}twW-h?~uq^wgxU9z<~;q zs&2@v5_P1Pezgg1+p)c~%`ca?J{#a8Yv*^Wz8(y&1a?^(AS3PNen)@|g$RsNg?+zm zJmQ$`uZ4;!1+9Tq9^3A1V|^WWt2INh74q&2?fAirrWfO!A1zvTI$ObdK-}HPis(#j z%NfoQE>Nd@pe&(Sx(%%1`%8V@&J`(0+EFJg2? z@|vjFw~*?fXGpx>Iw*SdzQK_EVYSgoZ+A|p(|p;)=P3O7)zke5rJOGR*P@MuUx1$+;;()-Cv<@d-CIUaE?{Ns`Q81 zY_nmQE`iI1__ zmSWf`$8sHe0~h1zT2r}&ypVmT3N@YAVPEYQrvInd?FU|O1!PbKh#pzZ>qu=!>Yd|a zew7sfTBY{>IbJc|HvWY#Rl_<99sM}~=y!a#30~HAOv|R&UC=xWdzZyJvh`J}zG$G$ zHZ(UKCqi6e>q>U`w0yY6ox?2%Ta8nG<_chy1f-M$5cjJqk;T+_cRYaI@o0a!RP;7_ zCN*o9eFx*M&%qPn6)dC6e0CDjwL@5`_?l(Gj>k5`oG-rbePEC?C@Vb{VV8seN$-w~ z2EkW`w{ZPA@HrIQ08d}&JTkU@#&a0p9~OS&9`2zYq%;Q#*bt5Bls525n~tEl5Bv{L z!H_%tEh$(md>3Dq;z6N1J}oRIR(hDTKWgx<&LB6SRq!+6_fT)L?$$*JsZR%V1vzuh zT#2}QT*`-;4<1Y)o$3@4rUz;TFiq5V%KHPHZXjK8-*3v#DDKoVmx~`}R%@etVw5ZO zJ%VN^V&yAokIexpLfsu|QO-vDBY0zMNXK~}sY?3}*#3Hsymh}j%h$0%uDD-ASbWT~ zU=!QkY2Q)kbfAF1uXaf}Khtz%P}9sho@WS^2cq`jqnuHl<_t5a%>{!QYB)$RNTr6l zwZ%=mohVlxK5B+&QW`4|HOej86HP-CLqo%KDIS5GH4lEGT56ZvsJ@+z*DyQ2hbc-m z-LD1-XDGbUV>CZUvmO+W-4Si_7)D5LgCc0|-~uy}0zi~Ot$gq zhFhMa+3O&T87A8v4z%l zhcK~{2Tc1^`5oea;dWY-mEMFG+g{u)jd-S03cAFbrhpDTOi0r`(=?x4Lx2{E;Ra#t zikk5&)In+u4w0&4;EblqIy8o`FWA*&6^6>|!mq-ztsbZ36e(e~Ssc zQw^V?FLnJ2(?kJRyn(_93k+ElkO9KmSUtyq$LAR$WW2Hlh=9lZjRKIUT*tPD*?1Qi zCVFZkiS&+*D1y&bpbn&2>eM6{$_lo39T4f`M1TNqd~i~PADMNnQbR29(lhd!&m7r6 zdB|!$BYY+78DO)`>MwOpeGdiehpalLOnx67khbiTj_)-*ko}@b74rxXz)lL-SiB-n z1Ane^uh8tD(yfID(8kHIn z3=32%A-y4$?N{(z05fVpI7qSn4}^n!Upp1^CkU*p|5$w;DZCun&#Do~Do((%5A^BV zW>Ge;tLfzf_m?_XRqK&i9}>QQw}qvgl+)_UPI~!vs$MRj8%Xr(pTR6!JaSSmdUvxRMY zoVG!7$RIEz`C9ag^PNiJjV~$3TVOpP?hs8-JICq^5X$joovJLtVqym0k0x*b5keNT-tXX3x*#&rVSX7c9tc5=k@~CBZ@xeubU*} zy(tiJP1RD(2)3G{4?$7_P2_AmkTjZjZ|}Mo;{1cKJB~{Qxd{>TiG;UJ9@Ug@Pl6}H zD>MlOl5eStoc?yp%?_aG0?}+f%#&kT>+Rmg-=~Uj`Rz!GF~Sl#!v{ko7QoZb5jl5Y ztpOOg4bWLiXWq=w2%2Gf*bpg(%!o$zLc2iql*|9{6b!io(Y*ia6l}{)r$>+n$kQcm zwZ5)P_)&xD3K$mVN z>xpzX$4@=^E)f3M-1<5eDi1_0ub9=B^i*^e)Mm$8^aDhoMk+O=jV*bIc#LVDS1b*p zDX`7as_>fI0U<6<5%^mok3i0tgFjKN@RE6!4~g=RDz9;i91Sy|d4z;B6kefruAig% zHK@)YRNk!<+HwJy5CITM5#uX;_M9UQ?4f^jm|HBX+(Nez@kX8^Vce6$Tb~1)lVAb- z!GS#U%CSBGN@<-g--0TL1Fu2cFHp!oD2fU*2#<1$|3+3L^$T^9`DyBJ{{ND=KsZ3% z^~U21tX?2qSAkap_@}`ubUglX`@^lQbgz;BA`fFDVbSrRX@xoU+c^48BeqT8GALw` zo*D(s*+7R8HJhtJU_9b%PTH(hGZHOzzd8n8QE|CuF;2iX4Ct0D3>Otv3k11dkoG|K z1EUX-#BbnE0XN!-9pMCak}eQla8IL6TOh0uc@`mPZ-873Fueo9FY}cld@=0yj~ z*^2gLacVWROnJ9JWC0Rd#YdsRpr&uMUmp&~EZWgDkj$D}G$Q&Ki0HZAA1r}bTIdR) zxsMT4rC;$jFv@6fa(;!_;4O-bodS@n1n%H3pu+tfcyIXgwVL=d%N%ZJ^3KDn%=DnK_7R~K=% z8jt@~&em3;vikQpTOg40B9gpK`R_BE-mG~ClGj=~?w=GAjzHp-IJT)o)-s;r8F%J; z(rJI7N||+3s{Gu!d^w!Q5jLgs?N{E^iLkGSz`}Xts|q*9agJa@)cmiZ|2sn;%DH`v zQEttafapkSSJGLDr~{(BS)0fU*>{{sO|LVNT!3Bthu95y$wx-H=znB+H-8-zc%^>} zM~CR49WOE1j;n&8)dF4xPl^6HPV~Dj!8O|AG1d@M29a~CSHK{F zCXT?Qf9PhxCz|}D)`b7dQ!wNXq(|kiPQl%(M_v=;fjtKHM6XQZl@N;v=}qBv5FSUM zCHVWhRX{JGmp82B`^bA!xXZu#k2yKBXX*%f4J|<Pn8baRyT>1XQN>*1gxrRNGZbF4T$P`r`4Tw4;3H6Mbt^f9i4f#sXmbJY z)lz#%cK;t8<`&BeZp=tVyb)Q%lr6E+O|bf50sO&%sBc)d6Ktke8QpFDHT{}=mWz$qi^f&vkW^Ahwy15VCt zDF!w043;!OfW+u0Gn-A|9PbA&w;&G-l`PZ9*__WYddr8VO{b$F7U~a z784OI%k(;E2m7hYfv{|6Qn~2q&;Z*0izG;5&7oy5V+B9n^vU)r7;6E zw^~o)-!?TF(xQ%El<(R(0F(qVRHRW!<>hO ze?3qQr0ERt5@Pm$NP`djD;$THo*j3_8v>O7GTP-f(YbDfpX%Ru(3XuD3xD%c2+a(j z!(0dJdsBEVT%E2;aW0;DGUydHTP<9BO@3uoWkT~^%%*~mpl|N%0V1RK@`06GAs*?r z&-qHr?{j~ZR8SUDDkP)Lpeyg|&MHu9hveL`Tdj%um>Lsz_BYVV!jV13E*%aheKY^l zuUfQQZ7fy{hnyV$eDN0PtN{inZARZ{dv@GPB=w*9A!H*Kr}LoGJ_Yp#o711H3t{ zCG->w<@476gEp#vS@yWOHrt>s_{0V`mOI8d{MDDurp*!5doq5X`4DWk=gql;-D(Y~ z&j$Q~$05yF4#LGMNbAe92<{fvN~ss#exNTTi1m%fyR+vE-0KL7&fFW5xrb>oY3I&! z6zD?-{8^>%Ye7><@LeZaOO8yl7jyu_g8+hy(Z_J*#D6{#KZdm3JWta325mRJWemn0 zl9Mgi;`HSA>Vw4Y)~Ro8&EG2`s2LZH{oiP$}$MP4UR5lbT+(ZT(17 zSIlf0BHO>v4zuOHD^vOkM>nLK1nOz)Q>4X}(21wi z)MZg?0t#r#_$tgm@Z&JLje^wB4u-C$md{1(l~lAL!dpS_)LrSA8_lY<+3&K_-tD=( z+=}nY9(gGcesqQB9T#N6Sy6oj;qE?yl8`P)MX zY>&4wLp1KOQ^DX@|5b8#f%%#KV=%6S5#EiFcm;aJ8V}Y#J189!?PioAKXd58ag>2K<5&+O1eVNJV=CV>f~3 zjZ5)iP4|55khWWRBBw}V#1{h$+{CzazWJ1ULe)eR5n<7b*T!sZy>QMQp6$ajaqBk_ zT`=Z9+ikoJZw$%k`>++YOd)HjEq-mjQGr^jDTfg5ti@8k_)h0;*NWk?iH%3y{C#I| zkIlW$U&ScX3@9$X{&R-G&d%+x3a2ZF-;(bCyuMQ58y_k;t=gKAg;QN_ z?_Sqgr}J*_T9(o3UTzz7kG5u^`FC{djmK3o|kL_XH81w3-jr-hn@;xEX zpce*ZHe6v#%^!7bH`J0@EWh*O>>Xm)#&kK{@$H@4zamhQz;;Ef?%>P_9QeP04vbE& z;bqpRW?@XLZRCeVTed;nS5OvVGmRQwd)GbDZi642W$RuI?*<7JQGKTeg1Zd|~xD3EjWv z;|M%!GhI3puxSY*m5tbZ%^z71#Jew7!_a|Yep}b7@lPBp2(nsN-jQAl9YVzmWmIc=v|iTcrjSndSP%%b`*OyFi0$bL@KMwKmdNAw8eT zU%BYEKDpB6ar4_-H_dK$mnH!ujrKI)%+91pc9?H_b$+*VmFk-R>+d?j?T7E-%#zke z$0F(-M}je}I|_DWI6}uY*wiJ@a;heNsgP-(TO9T#-7j9$$2#$O-LL|Sky-kvMb(aQ z`4bZmBTMsgeo_}aM~NpSq?Ye)cq|XJ&Sz7cNsFqwrV9#zfp(UZJ!0Z!sAGeaaD~#r z*Ks=vHG?M&$}S=ebPVEc8C9bZXPvEV@$j&Ci(vN1R8u0{SlxDI{$6KX+-u_9B_xOo>?o z62c3QRLiwIrypD+)4;{P7ke-%*niWjPu}klsdTB=GPOy>z=O) zU75glThq-v>R#n(|9WE~`674Ge4ACu1pIh><0waI`VP;XzL7ET0&Hz}BW>NhD&+kP zDRR_LM#iHTmjV}@`F!$nN(A4puP@-Qp1e5T^-Cc4?zmo;jXoa~mL4J`^bMWJ*fO;- z>HK=gU3f^aa8f?^b~1XSXt6hNygL)s+tM5C{^Y|Wr!XHWxMAk_hAh16Hk&f91zfio z7p85l8(G{&SPbHY34Jmet)8Dag@Vo&F>rnoP*2IpA42W9TB z;rFQKyp~kX+Hr=B8vOe5$QPm*r`Y%1$BLtG`KnJ$pvmlnU6zMau+G)b(QWzEUiih6 z!&=?hPUw$H;glQ1Q_M#04J+_QMi46{THcfAbqbA@8*SPk z6b3Gi?ddi5-bglf?SD9i%CHc#Uc~9(eDYi`YU46yIn^3PG=BYiG7doSuiwEx5RpA5 z+2Yr~1Z4ixFEk?Q`lp}A(8Ki!KmRJ`;E$S;recQtrQ2uJiAi=L55OM|qTMqTH|dy&iID&3;Sp!s z8&?Fa&8}FO2wGU1Ts0FC6}WD5)&Gp93gs>)~&7xlHfdbe|NZW)ERNx31PH`uGU;N zs_^-OYfGDYa>2RQYV?Bd+6#|$CJx-5&eRE(9J&w-jQtmOV#jcJ$g-^aqU~!$hd0(IHVV=ykAG(GbZWOA28Ni%mOn30 zyx8kLP9a$My0|~iq%44L_ztzS>e|Xetz4ja*-YWLaP{mh@_EX{uL!N>Lu0=Uueg)f-I;D+IpxY&W(IAfWcW2@)ilfYnys#@N0bQFA& zMeH6PgC@si`{+HygI6*DfHNi6dl(B7s+G^F?ABm-DtvQSbD|*SfAs6vbH?( zYPet|qsrv=XR#1{2CmhOV3XT({1J(H)0Mn4(-ioPbvF;I1$usiUo<89f0-S_b|)Kq zE*;oNhb7o(-&%rgp6g44v$Ks_DTyH`j?9gBp0v&^qnFx6TiQMq=ecZgVr4X|QOD5w z;qfn59?Xv8CR$|1^rP7MjEf~ncbVqj*+#tcoB3SZ9v-~~&eN~g=G#-GJ(iRDLQV=$ zG753~$`#O>+pZQaG1(|wLk{J3@=!Vpu9&VDkg6IN~3HxthDg%9{sj?!0mxbhJm`9{2X?O*2S|x^_-kDx2^E^48 zce!Ap%dIhpQTT*M%GEfJ;~QNzg;V7swq1oCJ>4e0tkZTLEAtw1{cYh2CL)5L+8^(WQLMOnw*LNjH{Q!;sG_z$Do)(a)MJ7Q zmh-_uElpomC%wLl^-Uq{vQsnlDr`^8Yhtv!aS9^1iQ<)UWn!sfH% zOgvFXP2^83_S~7V59nK-8;J}J?CTr+>{-ru^&7ja%Ruzi>A|vfJ6oF9c~H$~2H{<% zo|vX8W?m?T(Evs#w0w4P=GCzrI`odjZenE&YuuMNaFu4zuTC{>5$&-y*SaJfa7oEW zt=IN>nm@f=ZMWBkN5R*7%+oo&OzqdQG-9t!0Rwd0B?+5t!)P;6deLU;tci8IKlmg$ zQ{AB$vh#Y-OEyWD>z*eIpJ0eovQBhe?{;X^VAdGK7*R7He_4gC)IE3_Ws~0@p?t^n z(_;x&!=U$}_9y7Gy}h$2P>-^u61i}fymy97zI1-kRx(sxBtNj0 zlc-Me-Uj4}DiiOhL)RNM#6-6<)QihZmC`b6tPC8L6DjX&%alsqQ7X(A({Hybwb1e4 zJ^2)0;xXeP%ji3)N97)mBt6iqY)4HN9}1=Rn%ou_ zc(?P|97jl?ThJQhHSFq_{J~g5nS`v*&TZKi!>cp3wY0lTHx|*Q6DO0!6&I79L|wVw z|4?@TB`=A8?h=uCO&K?gf~dm#Zbg->h$Ha!Z{?5XXgK})DNR>BbQ6c)gNPKF+h&>O zeo>_H@~TJBoFLP8w0`H&w-2H?gB?mF#q5F<;+FH@ClwI(}6jvzTe)s(zxoQ5rCViK9 z2yy*nmsuqGM%M9&<1P?n_Ow_WyPTicP~gBMq}AB+P&Q+x%b*^Mvl zs9EJNh3VRowU{9>U-I6i@}#?%RY8O7L$(xC)i7Uv#Mo!=e#oQCDQOHmFkZ#gGdFYW zvHhnPkN40}u3%a!q^HEroW6+cj`V@UyYEJ!P!*-wcT5@YWt2LazEkR$p*lHwAHwwW z<&n5th6*KiZXT|^UWqiSLzV`BaVBdIZWb~zl*WKw_*0h=>6i~wEvx!hpFE7*h4J7m z(if?_j5mFxB^;}SN_?XCjw6F^LENSzuP~jAR`I<|tVWt3epM(A zd(h@ISOHMepA z7tImBa_7Q+wwfi(sA8=@&l8Je*Fr_L(@lW*jb8ctK+$(?D zfJ`Z>$A?x^6=;rCSIf(^qjIYmoIcY~y2ak@KI=A~f3*M%2z!_KQ>(0H(|ce!Zk$+O z?3?jW`CtMOSc!k7mmHsR9s>K8*KrdBLf*p1lkG0Wtc1#}i{ri7f_pIEmETL;-f;}3 z(;LWL3oN(yp~@)uo?6Hv$HJ`6UfSLdk)t;pJl#xATROCn;J<%`p*1wwv%~OZg$&H{ z5a4b3BKQuKZgLx$EEgwp8wKLnss5=Ny2J$qJ`>cS|3{L{m$DDpJQq2vVX&XXY1G?W zdZ####4OldvoE_rp7Qv{shhCW)6Rj`R?IwpgEPR#`}=ou_Rw_aFD)=^yZ!m9^?Q=3 zYce1o6iO<%cZ**gwQoAB(hnQ@aO%2^{Aoo$A|*bPGb~srKgocU4sMM1b!2AC`EbV6 z(!^C{1zm+OUv=9=%d0g?v|>!vVjb5NY)mV%Zx5L5EO>M2?d{o8TCH#Q97IyNE>034 z54z~690~LC?C=BLb+q_g)A<<*n}Xrw<%mzc>wVS>w#7?4cu_Wk_aw(8zJkR6DR>k# z0U6u0X~+%(_DWAVOWUXIVgV~9F$$Z1vrb1KEHNDokDnT4rk69_!r7pCV>s<3Vwy5* zv*o!_dr^4&#_FI<@ICicXMi)Vab!$<7xRwV8b3JtwjSD!fQ zQ0*4cE#zRUA}+mhhf@_rIc4(xo@m4ovhyjLHR^{-2M@-&m@)~QpHBS3GMERNjXiNu z6y}V33lk676un1Kb*QpuVLh9SiXJ=DNIfPrz`pF4yZhSNdfjP={Q7BfVTD&GFi9%H zGUK8=2TPAZ(mg8IUF&&iEUdzR1B(FQq)xA9f{X7Cj`yM+LFkd?owDC6Wy?OIxruI zuUSNwb(_uXg(#Lq4wJ+Wx(7yOV8FTEj`zAlzAiMmfVz+7azmqISH6Zw{htrUOe)=CKXQAgonVd0?L}w%OYBT* zG)#wh=u4ds@t_ouf|0+Cwe>__kT6qw;!f)QkFmy%&Dz0nTy}h4+CY= z0#ne?W}spUBJ(2=rSw>1vWEJrqIrY9i^nv2 zfJs)hK9Y335xehz!%G=+xo9u8QeA=ZIpFF%cPpnd=R@3qJYY*@nDr_FV3{*!y zu*v&+FB|G#u0a?*TjhOB2ulZsiKc^uV>!^9eyFT zUr2sc({wmgtjmRKg1JJ;g)3PVl8;3DS`jf($;Nge`p(GH3IA%+$qRH#&92(m~*Rwq}Vku^;Q=6=oI$JW1`kk%}DKRmUW6LEkO5 zz8=t{c=6v*WBgQT#dwGn8>M3Av?=>g?U$dd zxCBbaRNGw?dHE`@H((YaGnPy$x7eBLQ{p^tdX7lWPgq1cm9_J~h;N@&tcYb%ou`$N6ljwM}l5G4Ey)ITSbYJTc@H5O0M< zS616*YT)oHS?d!Qi zE+-yi-3aL?4|qlQC=2sCNh*DP>xRI6HD0_0^k0xo?L!$1_=y1v z27vIkn-IR_=6R9Q%cES>GFOCliLW`9z(RcfVuU)n)$`TRL+Yit2tvRQxYsF9kJ7A9;fLI zuy-xvdu~%O4R!;Eo(bQcPPbqvG85QO4q(qNqfzrD{{(F#b-@W;JGMlX&`;a$!Es5) z@s>|x11zYN8l{lkvADs>hpM8u=uoeeuWwYC(|ys3mdDTRfT^K7c0i4$rWeQN`Ymkf zWT`#5QWSecfnT>r+M-98n-?jKi=PJq2kvfaz9Sb4m)4*QsmbfRfrwM0nk47~k~-2%`1;advA5LH zi#;qm{o)e+St$oFnhbO`Q<#hj!^JYD1*I~>iK%<;g(h7cBu0%#-|lxC4eJgH-RZ`M zK67nCEr)`()EQH(taYT=77}8yU51NIdfQ!c(~mwdjJVjL_<0lwDtKcs&P$pS5{j)M zEVbT|c*h3C!cMk|(xOuPAqzN2ahD!%(gtW#idwLsq%EBgk9h325=x}(v#qzIg4Ow= zkq`$D>xH}9dU1*+mnM7OO6bwh()F$)H0S128N-Yax!tRuPIC@Db6Plh%C3(O4yL5U-aJA|+Do~{n~}%K>h#&fwPp=7s?2I%eatmn?&PtLPxHO^ z)75;-3)Q>v6vO>WGpYwblkH>PE*-(HH=$~znPW}owQ6kNEnH|8B1Mp|v~E!E#BhFZ zmlHHjbR69P5;kI}Yr(*?55S~n^3;k16is`DVu_=ufVz@4A9AGH7LEa}7~Q+ePi@!K z$&in`j`?%Ms`%`a*M;PJw$yIQwTaobFw853M#nGNE0YDamDAe*b$~KrOPKEN##aSp){8CPO!hDwj1A<$!5wV zN5bAK-J8CMs4foc2+m-hJZqPMd08?oPqH&%nDwn+-XJEIL7i3-4q~q8geL9 z+0`N?KX!ShshM|oDcbLm?V_Rg!v~7%y4Nl;hq$3Qp&nChmE$l>41V$*g+)(^cRmNR z#%f}ybiuKA#ZNFi)NIm{PwdJW^S80ojJZ5mg;G>q)1hPcN!+WjU)s7Yd%4B3-X~P~ z=HnSqL#l$my3nrYv>H`a#5%UO} zPbAdf@VE4fybfbIM$DI7NX?Hw}HAav{iLqQRFVgVj0Z7AHFPG2tjm>_RDQ{)~&m@jYyysS7 z5ynA9co_(VCW5YPa#hZsNG4Ofvjn@ZHvZOU!S5g=VmgdT_QyP00hCej7KDu`gnf2= z2(?!#!v~TR(Y!g7!MY&iu{;Q(Tc|u*FX1!BF)<^ZJPsp+U2ASQ*)*lANd&)q68Dx)?j7Gkj8N` z6B!Aa`zsWS5GEqYkxW&3)omDslw3K>%`-fhemR@X5a8t_`yK8ihgmq=i@b>lu_0TJE4#@jed9#Zn%i0)fznp<)$*JU5(ML{6hd#w*$v?Vj|qWDaOO-@6p~N|dOc?o`;XHF4>fyJi z@*@+%Jc6atQ_kl`*}Nb2;&ktl%Xb)$3WHTB`Gj3M6n~b8=u!0yd zi3N0Cd88{r2GP1iynlegy*z$bUn8`1Ed$s`<%}XL>@L^11e*O&QQImOLhN;2A#qP< zeSzM)>AimD^?ac`UZ?jFjGbR@FQP}mNed?5HMP@=BjUuNnC~<~hvc_`4mMLUkLmCw zyI9)f6UBm}-P3k>T<{&4l081^^!2ZI83x!@()5HlKe>H2@$DbUrtP)`NRF6^AJxrE z7yKva-ugvdI_o%&s#t?$u(U+QB=Y>235RF5oxtA~<+TB)_#{}y4_oR(dB&eOcYVn{ zYXq*EAd^*xiqd=WE_MWSdxU<{0e6RMBJl;wN`;8eB;=cj@f=)$xsyn7+B*_Jd76)` zbM^b}wCQZeEB4-lqJ3&fJ#5+=@%O{!MO&#|N z!iV1Tn0Yjm26&UlT?EIKgsNinaY>X>p0AJ)z^_ivf{5>+Kef|SqzaC0YTljZblyOW z)sax!49Ky9UXhDNc3KFtq++<>{|sdsfb7`_A2?}KMM#2JEi!^;nDQG`XF)g0Ga}i+ z$%2YQyp7<2n}BQboJe-IF-p6;6n|>FM;_4a#V2vLL;bWhWOL%_(z`9)UL2kaG$-;A zcNFZ`t|)obdAi<<#$IcV?c^YFm3*h&!Zsk(M(}@z0&f3aBBoG<)$zhw<9tFUi|x0H zn=AFzV20jD**;?cCg5jZW;k57yb7#dqpKKfO=X33NP4y+Esx4_F{!|nlX**P5yq=} z4H`t3E@pm{eJFlBX1-?dCO|CvO9^RWvwckU2>Cf?#&Mg`E?t32f;%otzc3o#tYg?; zn}`^f6)OxJx1TRM&t$y>v)pkWoJMyqMEdE{>A%Zh^kIPkpO#>O=P|hrTOoG}7qU?< zED&KbbjoLUK%c3+ybm=rs-{(TA0#4rJ-=zj>s?LYV53}fVU}j9k)o>^#{3`l-UF)1 zbz2wKWt5^I2#C@_jfm1TG-*arRJw>1sbZlBh#It5T<6?<|9#H+|9kHkcZ_@Y+GDJ-7lh>d-tT?qeCG2!b4D70ydjVp z>Q-MvyezUbfF5tut0L4|?Zi|~bqXMRHK;v`UM;nqXJpC)l>3GHxk55<6&JOKo<~m> zWq~^t1f@NSue;n!ehh?Q_J9_P4Y|Hu>LM?N%j)nm&6vQ5sm-t$_^Q)$IkGX2(kDSG z9$XhXYPzKI2L`~{NVO&i*QsT`S0Gw%sCvKyuR149_@n*|`OHGZ9r?1ti9m~J&@Aro z8EGgY)!*QWYEG@g)p;?`L}0aWY};=SvBR^pJG4@gmFG$6^E?~vH()wR2?|tPW#@vh zEvXXcSk8_K0xU7}O#LmCybGDLPOr-s2I3domYmM$9*$NgaC%$pUo)%V#g_&aXh+EBgFz8y(rOZ!$R=U)Y=TD4(<=&8m4zoK(1$Id7BX2Bp(v$&8` zRRM%}i<6IFvSdiTQU^|`5Au!v=0Y$Gv>-!4?SSq+P3$WE+I*lbqnXKf(Y(SINA+JL>}<$L(EzOjtq?EnxQ37|9>S z>(*B-ds2~@l6aZNA%UUKA zK`16zSNq<+;LT*rsl4aIqer$}y0Sm#Pw#$@p~(PJvmi1+v1{9P)Hs4R(ava4AMdsZ zELYXa*M#_+(!2n&y=23c!35udBOy~oQlEIhM=)wGE64-X!(;JpVV||*7@#3b98^q@ zc+YjXzqGIcv7m?6PWWTk7U#yvX#$^~sO_@>RN^0~uOnR+2vixbq9)|q08kpcZgLz9 znnOkkYG@F#uh2qS@*t0V+5DNbb69k#U#WV3Z#8yyr2n~%Ky7MhnyUX%Pt1E~9Bpc_ zvGEzR|1(m)f~V?L{7+{<`J3lR2C@N6Hk$_H)P3Ex%2dtYGRl!LLaZ(MsrXaEXY_cF z_16*`=a!K~R1>6s+R6Q`u7dq=>x&_f^BOxA07XweyrzmB`vzh2uddVA_&uS5>z};R zH>HZr7ocj6m70l&&xupF&F*Rtrfhk6S5!UUb4(`Z$subdup}89%wfqx?N(y_FTp#z z*qW2b;F?G)pdZ3@g7xz~DBvj@aJ{QnU7ayt-RG+1Gm60yF=ryq@k$vt?MYo7G}C78 zKXlFF{a4_HGeQB5zg|ZB^quyBw-tWPhXs||<+5H{cq~AjYXqA9**IXSoj*-<%CsLU z153=v>E*3`TdORFOU8x7?EjI=cwkkDqH!5y`WBVKr(?dLI4Qc*rNggy;Umv*9U zAhT5gfA^u*_j`wAsFVEIRbR_ruootPOFEKS-s{&NNjW0y);h07z<3QdWQs$<`#J=H zoOgE8abG|mvRwQTYd3s404v0;$X(Zg+*0T=J+|3}ACw1nq+EqvCsU z^Qz@zG4gha;DLzt21msYrg$-Q8c{@jyYH7l#99ld0>uC1(MHVWh2fX0N6``DHYZa2SS;~q-vDrbkiY9)h)iML2ym+Cw~-ij1HU|>+vbNwk1!*;|CJ?iV#tl z|1^9IFmShPc4>?l@KQlpsvf?MagJ7%uN^8|01YJ){pWgor@9u=De5|N`M^lkRrVuQ z{*Is{WeGAP$&LpPy>V)yf&tsPPPX9FoLHm$EU{qmkiJ_4SsU!he|^MwCd?;59Hrl) z>b8|lC_4v*7oJx%lWKn-)t?x$IJD&Nn(hc?@K7$rP%r-CpT}&ssmC}X6xlNRi{**fx#krP4dMr^XYt`XU{j7OpMQu@#_494BZKVTF;}WR(i4qdd`2_bSe)=p}S9(C?wUKk=sXhEtYPsh21>TNA zAS=8i)}V!Gk3n4EtEUzvT1N&^F%(%dg(x@o(wTOg&**1EuEB#iLjM$ed{Of+;($MH zv_Htq^=Gy_Ng}S_(=I0z_ahc4qXOnct@sd}nA=J zKt=}oyyS?J{hNB_y16;Xy+2eI8bPA!Hipv2qf13)q@QciFJ3F|E3$1B0|nfI3__@m zc*{fvLv2@XzN*lES*GgX=F=DNBjZ6(0!Y*I2=SDagU&*VP;hBYU(&n{HUjJn*oPh= z2({!7B&i0u&@kJ!baLv}NX=9cq}9vzl2K|v)g7l`Z!1(7s?#14BX6yluY(=`y6uC zUTtH!Ju`Lzm-@8_`GTgDg{X>_5<(4ivGUpDZI&W}b*rBQ48Mph`1p)hJaQ0d#ob_% zVF%XLzE?YL+_R@}8A{^E*`krOEtOOezlc!XHT#9AIgLPycdq7T!6*Io>)kevlSX7tt}ib^#MZRsBleK0 z>1*t3s}xOmV9}D!%oIj0#CKP1sU!h-=Vw*%FEBCzOW-Y>+^@4Kx$X4w>D%g*VrGEWP5U@TOjLJY& zb=p=790W*fe`XT&^J#c0m|(Z5)MmUwk)^Ks^enGWL_wP)W67znHs9$)ZLqmn^E-qA zpiGpKHrBuJv!}%OhktTkNwrqV zRp6mzZUSWyxbUj>-F7{)Mk}O%c2`(Mj_qI{z547e;G~hm^RE=SfKAwlo1q$HXuMK( z10Rn+lbuk7y8}SzIgNVqx`eIYw;SFdjD0V!=qp5`K`?+$wfW{TOB7ZQuyOKPmIIzJ&t@KC>Lm14hEf(v`1Rzy1+a)2PzRai z@*#{;-)FxX&wA2bo_ad_#=Bsn0rwU;+l?gg2T$cqt_+Ak*1O{v$U!wOKBt1b|Fa zb}y7H-zvt{>!ezHc{Swy?C~#_IPy-&ezg=`KDDSjHQu;7U7}dR95_GmZ#BgY2ApOE z>u1>ct3XlUmPpI#lciaBRm(@p#dht(&1l>q=P6$sQ;U%v@4Tnl(b^M#_^_0H%-zZ>QOg5hfU z0bG#d_E6loBjIp6vocHTK}aEnz~&tV0O|G2feJfQrN3Xyu?uoT`>eHRsayURY!4hU|E|wDj$Tt5 zy`#jhht2xcg@$u(IW6JTmsdm%p5|_1Fd`~Dwt@}0*QbhC_xt!~nOQha zU6Wc9C9-kLuA8u=z2}ZENAXJg0pDA)fd{u6D_ymh-?N8w5OV&iRU>gILNDD&mJ~H* zJ0tUMIO0eUhUa#{Tp(QD2!aif1wG?H#~rEET88j4K5!)XF67@x6(NVP_b5A2mx+#K z$YS~6CGLRw^+BV6$A?;PLc7;tX{p{gV*eQ_e8k`-WZiaC%y|kDyG91PUDY6Hm@>Up zL^n23Z{uwuCJ{UbFhYH{XUK3auLD^fT1Zvg4M3_;ua2|ClI7K)X!W#V<1aoydSQP5__N2NTvL4p%j}!^xt7u`j@vIU zEzFdvgQNU?^5Hv|P0MFokf;#E++WS{M>nuN~fyh z>~@bSMG;fh-M+PvMFfCzRCuL|i&(dWeBZ)f%mfVR?CfvBJC_i%+UWwSgCPUzLCxf; zRcoNq^Dus?9!!O}?~Y`PuJYr1j4r|44y6Wxu&aQ)Qzxx&uuCBk5MjxMWinKKLF2%e z`Ec{0c9E16zCP=m4To^dejzB)oQ3wDJ?cn!4~K|V=B(LR4{V``VueH&A7u2XO9%D6 z!6Wrp$u5mYj|WXRSSVEW(6`;98Q}e+tTKFKBUQ4@XwRW07pTY=tk7vqSQq+AcjXg$ZVT*gIqgyUh+FOZz19-n z@!XHt_~%dsrXp5^Rdko4%fC8vc!eQ=|1Z6w6Qds=UmGat4TEaE)!FAwUKrMCm{~Fd8Nm z6lrRxmV(-WfBf|bl^sK=@$SdbFos~)aA4PVhNdA2jFo*eA*KE*Uy&h}!+?TXCw%dq zGVs}kdCf5iJ#ptNLqUdp%9O?!}HS;3s3>#+vJjnK-Nw6BR&Y^U_>X+RlR4%Dd z_o~##t7Mm@TsZa0;{FjRw=$rpMSZfl(6y3#@ynk_WT8*i0K7n@z)!N2LxV{J~}iZp`IaJi2)z5KJujs?e}(C>5FETKp9#(4J1-W=TWZ~mq zyR$SdVB86-n!7^*SGIr|GFBNBR$R!^{9+odnm^2mUsqb9H-`B29ndzGOm8#NSFjQf zPZ}&b8H$5ny(p}#Ub*Y}F4NRjZA&j^jY0*r!Zwih2y~w}Xj`; zS0AcOI}ZoMHZ9w*;L2C|Nl+A0kls!MSF8WWFw|-cGa@u(ZQmA_>E^ME>l{)$xGLu? z9#;;w)g~OUg^OaE8~Lu^;@deOacESW!tqjvZ~uEv1W${9Cf~ViFVWkc-C_gG?*n4N z5*Wv$OZ;CRd_*GsLe`)`zS^ok*C4lR{p4x)q8&C+J32$d=S->jtz8=r-P~}@+}8h` z*4P6*xnszZ#O;8i17S;no(eLOID*De4b;m7p#2va5IuciuyFk45Lfk7QQz&|lOYp< z3=sDzfEGsrU+o1#Hb~sluK6=!TUnw4G{+(a|1atnD9;}$gJUl!bb^lBj9b8()O0Rg zB8!Q1C`NxFaIw)V;$o5r+#$J-eqEqCx$&4^{jYvaPw;bp~ReSpsEO}F=vRFxCGt}7xd)S_)d z^#!DFc0!RS+;Qt&6XO(3?&2=e`AZFIgAcPzfFYN_zYV4WSns}AKKwF6Xb`blEr|P$@1Cd$nd(}CW`GX{ zDpH-jy~pbu$N18%tcXt+-Ifo!2L>YiSG z)M6v-@u0TrXR}|_$8|lHV1tjq23v1yZ)Z8*H%s1>&HpS#^}^N1ui4m4iaHW_x1N~9 z($W1&kn3Jgs*0gQQIGptT_(9KO4d!1XqZ7XhMQ-pg`7l#0RDFSxTgQ)_nImKki{Au z7PFG*OwtkvLK7NNtk?x4++{ zE9QT8Iic25ap)TuVV#7Jz=pee{`bn9dAo$@+4#JP8vnZ#yFbq!OIvsO5z-;qIFcts z^j7J|D`)D~-auq#{BZN!7}8#17u#O^xy)*>=G*W^Zp21HP)^DRdvlMomL$leC>^qP% zX>(%@YJxs!^O;Mh5>j&JW9ZNKbi0Jy0&vM=hZ=1O{7sO ziWxBd__TooS;r;xu;8$9(y)dJ+=Mx|k`Zi3OyLwJas%(`2#Q3WP)42ac82dXDD*x zoBYu91r1;oDPeH722Tr|IBQ0)O2Fe!U$!TM&g> zyfO~Nbyr-Y;)Bo+_avQxx&9E@wdI(&M+Ws$C6^mji>UIm|BVG!^5AMu>yx<0j+@>= zQZk{wd4mjjUJJx%;4k`@ovKRBxYDN zNY>EhEnX)f+I2<+Dzk>#2iPTlyFyz7+8Aj@M@_!3UzJ0YO?j}bvA~H0tdHec$!V9#1JxOs^cu&|%s;3rA$5)fr+$bhNx>{(7wyXA!x z#On@tmYjFLI|^QtI*Jy3l;U)Aqll`4N;o2rI~wKD5DG2%RGz8_>zYq)goltNIOhx9 zLIs)76+MbNu@sM>?(EmmF4`hBCD9m2Lmi%0$fEU<$(L0sp7 zV}hG#P@_62K~-6ZHnG`Xe`iF0a`M6wcn#aL zTB{2!H9wCkXm?!1e*-{PH~1Nnz|=hbRC5y1kq#cYowCUA>yZrxxwz#V*;EY9$XL3n z2+ckL>Q#oPfBuEWNrFDDo%*VhDrktszI$-+UIpsEZy=Ya^Z^u!U-$5o6P ztsGgx7TygnCIK>jA6g4-61ee7*wY9acmuRZ0}l9E*VUtvAs&hXQX$%&@^?1NzC;d~ zRj#@$IJB&njPF_89BiZ$tqDVdOFrS>+K5N9pDA~`T|2)t5WKCGr=Bst6m#1BBV7d% zM_Mxf@II}Wt&l0c!Tq@h4Z?j~SM~K|uph{ktNsOuRw>o6N@=~T5Y~cH9?5<( zSIYw~*5dRE^51w88fSrL_O9eod5*G@N%KW;={~a*jU4myT835l6@&E59Iz}qU5{cj)z zC>b4$a7->LM=rq$hG*HpIc_K~dQ_MTAI zDlk~6`q3@aStOYZenxT1Gu%S+ro(QUoPVZrPwrv$449 zCHpi+0bKJm6b#=b@Js60)!=Lqr)JKOz>(6zKHIEVMwS<0ydzC466 zxfk)`??QF`pg(d0Dehj#qf?U@Bi$%XK;i6CysOb*KPf41^%@H z|65kzRjR=5Q;2qZ4xXf4Da)yOV0B(9M;P9|o|Oluo4_(eK{6vUEkgUUAiQkg3JhpX zg>)=e4;F32R?aYYpsGhx5>b{-k$xo$z#^)kS7828PSKhqsQ?|_T$mROQ)Z{YRj?w!9Gd5T1x0;zy3tBhss&~t5mQ}*0 z_-88Rd)13~oY2mHF|kY5DU(B1Dd*W{<&NjK~=BKWmva%D=TF`3vtd`5Xh5Av5R+gI4pa7s9?a#+C=YE+jxCm z?u(d5uKp(4=B@G>!^CvE-NOZDGZ#$C3tA^HXGSbOGhkR|J=%Rdudh*?lIu)qK~}v= z46lqIv}UzT{>bw}__T*L4)N#v=f|Qa)2E$uqWt<_OxNZbnZ`{VRy&Fi_qn8`9r{h_ ziPt&7!IW-R;6MmSO5&GEXXpDQT=24(OTb$Yo6g30+<_qX$J!KQ{NZ~N9j#Hr$|svD z58!m>G@%V!#`eb;BUQ#N%&(eloweC*8<-fASC_a zDFG}yB?s^);ZGaF2)UQfElv@&Tb|$IqdYRVeVit6SICS`MJc{X7D2kJavEU&7xlnt zUkTOJF$T5UnUrLDFG)sU;m>Eq8+cnYOz%m&RMKw}+MdqIhYM#fX6JkO2d2KwhV`19 zX91hGOB?L?DW%`!79sI698Z8+_~cD?fE^>3_u_YJvL)yp+Q-brO-0A{*&~$Pyhkj46#nv*vYoS;95-%zSfsr3V2Q9*S$OWyy4eF zX9IC1gk!h_HLh=E-#=s-wZ$9XwD2|iiQn5WH#lq6$p%*}@y zJt7q<5ThBZZjqCmk3ee^YXt5AVOk|d7EegL$+3SeTAXd_FY9>lr7QoDi6;Q3;1!Vs zV`p|9XtM5My@XHwKKfrgBL#` zMm3#NKz}@4Zq3?^tyt-`oXIlqWDnq5i#hpDuH}q-k8xYGc18l9b^s5wjT!50%#xDC zwoBjOEau?D{jnD9P1tNb;T*~5>t8Z@;e%J4A6J#z>&_BdbO`S7IRp&Ygxe+XW~3xF zou7IEo83zi z!+uyz@WG=q+Vv4L!-G##z{CFAp>Mnu9pBsp{U&}XCk%%byh+|ow6Q>I|1k&Ygy(VDetC!2(@PJ+@A!*cq@0@6P%N%o&eig`p=I(*(LE>>u8 zW9M7>AN=GUQ)cDhx7Y1uq2<=iF=eJb5fxcf-3*3^Q5G-Xbz$Ofe^D&>&C4dQpZw#thB*) z6oa6xO91P{dgyV7Fpvx&LinuQgc-^HjP4a-tP?jc3O9Roj8FPPm}bTCOmw#u#ZMrJ z@t$1EG3-DPf$j7AksEL1^=3sT2-TXFeg7ncAS33gt9dIR;wHr9Fa^9RtGau~^6;N#x0eUPSS9KT`?Yc=*x`aV<=$i;Ms05Yuk{!hmP0=!eKyhL*z_=UlQ%E+ zr?L)DTctz=h(pU=(HxM4;i*Gd&BXFSAPw06SR$OGm}3*#|C_K1kI~+1XW8lC^ZZ#M zQ3xyjlFflo{^cy8ATdzYEw}k^RoXY(*156A$56%2>zEL|y2Sa%62}X=0>1To6m04y zXBoU%x_yA|m95ei^{{M7U*nB>^-2Th4AordwlK4)g-tBLsmp}y(i&f7V)*wlA30+&DNk_D|B}zEGY*{`u#1_d`$1_`@sWE75Lq ziqXw-@_8msE%VdUmFJYS_bAFqzz3Q}B=Mpn&))`NgKN{uG3jLOPp4i!%$TXEWzdXHc#dX`+k||x zOn8q8q?PH>1`#mL;)o3RHW4_fq|%dXB*bi^zn~9cqSarPfNdI1e1g3!#P1s%r+oL~ z3*eFu;Nul4gbZPz@?uvmh#D!P`BXWsz`4xapf7~n$&ST`1UW3qr7|sy>2G)F z{Aw}Xm@<<6RyBCJBE$LIMORMVR~D)}O6P|6AOq`^1($=Jp;_UQd2-vrKt=k57NwP>rjco{@&PZ=BK) z-F+wDo_O^grS!%1Lk*qO)){lV827icx2Hb@`=)wQgA-5fiI0!l$@eLK){(Zelz$R|Z(1AsGj{@PEx|C{M}UdCHd}gB>=I%c zMaicIj;$4SAW)cI2bY(=m3X*w@_7TNomDjYe#sxhd6|@Sic%AFKmP?x&vu<#TnP8T z#n^s+9g>;e3(TTXZ)hez)}rX_k+|i46=!Dftox|B$QzpSnwEPz#q>*EY5_qkTkqW+ z={GmiS};D~Pn|d9{T^}P@X}io8of8D=h4vI;k=R7N(^5ab1$0;_kMe-ca8HkAsEuJ z?da?AcTs_U-@{5Mw>4fQfyw+BCcZs{%2;%}kB!P?h_=P5la#Im?LXHPdV;Ja8oJ(d zBeZ*Y#;G_ShnB0(38qM9Gz467&-V)crk=Sv~sK^8FRqR6ILNbH%|5Q6^toAqw zDi?ME$d^tS&SV%&36O0?9yMU4x7-P%jeI&0_T3jep6`~^*hb4`C>JdVb4}_sYAOXU z&b}Ec*qS#2^!A`a#V7G2&%3fqw$oHD5uwA1NK~J^H(hftyru7>UD~55Daglj4unT} zM6GI7oQ{+GTTMupxYqylQ3CMYi>HI)G3)7!VnmmktBXE9%xxV zS*p8_(Kpp_RJ-w2&)|M2rV7v0g`9pK7D!7>446-xZr3wPkt9;dK2*2Zpid!d=JfT> zx0l&z>MMA?|B!2^dGz(*SV_tSvC?dxPn4lsY~zL{qq&Z@oDy+UnGS?(?En?GQZuFo zSKov6jRx6T%(DR_k0gguE{GdlNYIjoIXO?VOMiI-TD;DeKU{vUcrYrS5}&ORn;0}5 zh6{c_H`J@{{;{#Y@EK9RTsF~$leKLp!pG|dHQbs$I#j`}O}q5(#rU=^SyCt&@|xr*)zPLP#=K#;SkR?_U(11% zmbH1~yIJRo$+-d!U&Wr|7FtaZyN=3-Q#UvUq8QQ%J}u2f$KF<~W5(u>cBt4~8u;kk zK;ku6O-Pl%YwEl{I~hAPkRf+Ges(B<7A7H9Ny=D=AgcWAHBME>N(-zP9E>p5_#>%)ZB4OiTUEMNXee-9H#(3 z?$UpK7T{q1#%@<4&f_@ki|oP++kGt^+j<+QJ5sqfgwlVAY@hdd#Fl3=?caA(cfrW)dV0L zxC5vXH|bn~S!+c@e|C5GfXv=vU~UUoMH6QvbJQ!;iDMIPEvL&&v#^m$%{Vz|^xIGg zN`LbHt<9G2xb82~BAm3;j z8)s0@6ZHn4_?+k+{A6l)anBWFPQE>(0Mf5-fc+s=_-k?>5r@`d=#x05H*hqD7&!Sf z@G{AM!l=JxHJ$5I?FRp)u+DtT43{sja+C8LpUqJp6QQr~6Iof#XyfPNQ0DYdxJSzL z)DsvJqw7+8*y(F7^GPc__%9%wcxa24$>k5|BVphXWv z(zj=lY`W5vjvABof7P?erzH4(&f?`%y;NS>(j+KupdGBO!PrWFbP&_#K90w;3tz+dDgwdzf055TkZf?SR5gM%k}4T;SwS+&8*>OS=5cG!?r5k$Zl7rZT=;n#pQVUmP{2J^5QJ5kXY~9p-KNlp=9g1)W#gdWDqcQ zp|%fG4Mjj^TmF*Ul_gqtP>1InsEr0w=i3q;&HtvruxR$vy8xE?q^U+5W>lH7rv@?H z0~kYru;)e}3zs&hQxO>Z>Sbi09kdi+rIpf61Jd6gg^#q^#pQPWol9r&I*BBwr>!lorUVXGHm4>fD=-CaXj zT^`5SM$7Gn!OvN?oZsahEmp=%oUZ&JPk}(xK@WCLQ>YlP+nlOm>%S|(@4ctpa^Z>DBMok&tiH zsNr{7Xl|j)dEr&3C*0}+9EfDGvXPtJS9`CdiMA{qqr#9fzH-rCepL1jKP3>u%Shu- zp&TqZ$DKN8HKI^K%%j@yVx2ho_ata4hOdPRt4?tF;aCx^Mr7b~;p_&-+wYon#bO%N zN2aH%D(6ynIhGj|bYHqs)(&5yk-W~%&s}TwrfZh|ZkI0Iw{z#07n0V@>Os>;V`2%c@G5B05YfI`#l!Q2Qnw9flevukt_Kw*}-6l~cmw)$GQ zSfPp=@R)!scaN4dzVn`n>_}O768-yMW++C0kp8v~nsAf#W<%ry5p`t2%X&LDJ8LVQ-q;$%=(iF?Tl-t7@_$`0N_g>#93ay3$U zG-f^@avq)+Z}HF@OnH&N%8*Ixs>%S=VGn9Ep9&r+F)q1vr+r*l8o$QZS`=j z;*GyaT_;Xn908LlNl3Orywu9jZVTa+jh(xZ?<5c@pfPOV2kJtoE!r3ni+L}@IZn0x z%sn$Z=lnffKCP}nTa%X8)!_W0vY;*B9R0G;dSB?gbWaE^1s=zoL5Ho+vWpSc!h}9L ztk+N%ITSqGsVSSdXtQ{wo#YK!cEIgILcoc|U_;sy*=UZCcul#4;Lc-_!KVhUR=iZG z&@8Zx-N}nH!p^&mUH2X}5gnufEd7vFqEKP<$bnG3FGQbhtlWrOLu28Wrt>+s(^F>& z0($3DC5<%hRc?lWa+vlee7tlU`9ij)k6ztC>)809T8c!4xZe2`KBD&i@i*9L2p|ka z8UQ3fG0oJF7;X*wa_FWLPV>+bx20>m$3TMQc&3}G=|h!G@a)_*lxc3KUtYU+9k0X( zSUxyfqBC6&7KUE!GcwW@_4g|tA5*7vZ#AX-_4a#3qd^-#_NQ}_L^vm`vk6eMh|o0) z`@P<#E9<=kK1=1N(Rgcy&uCz_X7n|TNr!ES ziI(~Gbuo=(3r@bfeuLGyFd%fGu|rw^b#gwVqQv84SAN&|__w2YFOvP_M!Ny88ss$F zDPAP+(e;uU<2*^~oO0phTPnI}81Q|$M2PYS%rto2H@Gk~yj!lmmh9C&^nwaq+l<+* zq?m?`;Mi1!ipi9zsl9BW%Wp54MIch>QMs(aoq^?tAvS*|Y2ElYK*v1t?-*N32gpZI z71GVqSS&Q41#T!8ftpW;7K$ZLx0g_(tz$3>Y`R{I6@HuaUNQ+!H5iVZ>hb-u%V5dJ z;`sWV1B+h0^WGm9E_`oHz7q*M7e>>n!B2)3uw@{euo z^>Phh+}KHp-bhVYHOIt*K#Ms>6NZ!?JBU(6a>%2H8K6q>`m>W}h zmNdM)iy4b`lp0~ThjVvQgHJ96LcjO%x!wRbD=puHR+bw#>By2*BzuDElp?)6URS*A zZ%_+1=H6U2dxVq(u?|!ell5tl$9A^G?)X_~Tg#XkqNt;9s)nqcFAL<9Ttb3YFf$TW z;t5f=j%}Fh4KWp(=oMCrcwOsWlKSJ$g-m#-ZN{(voSnK=D<0oiG-arsnlj}|-S&?n z#&5yG;6LXiBWLzLPQu+sq~+fmhR2K-iHH#}cpGTOjDwiN@TD6G-XluaDD~#%9kdRc z7*q;R_vm^&*B)$(vNXQV4v77B9PYB88?~z?v%@CQy=b-t_r1AcTqW60~xbqBaDUj8iX{3H2=bKeJIOMRZ3c-cY_OIJ{#kuw_ zw8s!Ymn~G4V3mT020CZTmwzUlAV~~2R%@ro-z+y%U%u&GH)Ea(VM^9u%Z%lsTSe>i z*PepZ!12OevI#bHxw-*w3};NeA*Gh6Z=@CEQT*d(1|?I)Hu|QZU`&p}rsqWlM zHC5iV^&Nxdd6s~*n6duOz0(szS*Km+{A%l+KR)U7-NT|rb?+smtGgFT!k8?L@zGY^ z|6z*$2&fk#BGNBq4)B;=XX{+co_zb)0TY|+>;pJ+mDPkIlgw{n=`pMDY4Fp-my(J= z?vce4)|&M1b~#vdydtb&HNpDM?b}TUT-&a#xfAc|qGzzX<3W1VDtu8~<(fRJ{m+vB zT207(m2N4kRAQ~ITkrg$C?TWl3BE{5q3J}*uLEiz)iKp3=0&i6^ftk`gKK2XIJr-* zWgj++JJ@7!RU(|N6T>d_G_2hP)SH)zVM!T0`0MN9GT>Kvr`V99ub$|Z-%Riu;m8%fJx-Vn#T=Wz3sFompAt?)o;ITq)-5A z=|!r~NptwG9?bg7@FyRXT+Q;h1ike^-Gm>L2d|touOKMbi3BlccD`W7Fj@@N$Lp~L43SDewV#5ubfk&AqdeYuXD~x--?|P0h2O>B%ER{UY!|*qv%U^ zeE2vaX#s(r41WfSV5-r)RyezD;J3%fod}-1&k~x;zk)T{5mYFSKVi&?ia$a^S{(Q>qJ=c_+GYznEe)aSdNZ1n}H;7bo~GGa{RMZ``@Q_h4!39 z^7}tmvcTkl)aw!8Is~MhKtSaBZB#)b;99iR08)XNvF&6Nm|1xLmU#a`$ym`6R|LML z?7!7csMgqdrX~JC?L2jZ{rs|m6j$)Xecbd7tI~O=xP7zHowET*3AYfCvQYHBxajja zBab0or?f~ZFjf1l0YWM7s1>Th6+Cncx16z&@{*;JD@ziJ_;gdBW^34FUyyOF>XJ`s zwhJMJBx-79?qP{Je_Jn-+yLQ#ii$gk0gdHCrEBA8WNgdxoV@Z#mWFEaWT5fMgWgd3 z46cvi+cJ4BZ>k-7M&%OYwSwmAantqYl!p`WVyUA*LxKGRcGe@LHRHR^amO9RL`vXY z;RD){4*$EXy17zT!TA#iL&7>3T4W*D&TK!4w5?3=iReUroar>3OF?24gUV#sWrdHY z2hX`<`93iw-sILrb*V%ZO)u?p=_*;z*ScnHibBQ90~G>-3DJ#Lrj%k^LlRkzm@_Pi zp3=gWz0tY*bV;YvGcHqVy^0>4yL(^o+)!X>{aJ$hp|zP|NQG-9n6+(^{v1jTTPW%F z?V#n61v6jXK2VWX*=q!X(J^&e;UO#B1)w+-yoRs0W>YsWXl&HJrzU+cQ6q%?+?W(~YS9a`5$#8J_ywd=FXPh+Cq7F5tZXb}4NF z`wKhY^l;v>{XeQ4DVAvo-7li{kABT{CTsbZYn2A35pR|~2oS-}dl+G*0UjAZMa7r< z7<@r|pJ)y&;T{B#cnK6Xz}XXx>>~E1EML4+f2bPb`hqXJE|L4OzLDKigPG&tBNe23G$c|7Lq?;*|k$q3dF)S)BTd+3w9oM$X5) z7_I5G;)VOhOU#(El)K`te7i!54 z{Y!0My{5DZYy+KT4r1PfEbWC#G2c16$M@KJEK%R|Nbr+oulLO_jL5yt(FV%L(h`HL z<21`=ySo4YfO`tVkz6J=;nS-!Hqm9&Yf$e%(B5olbjVKh0e5+V)5=pM?YjW@w@duCKR|i{4~Fu8@3U~>;@8PT8{{K~7d!9YSpZ%HUqi(Dlr4Wv zF@(aMyb!#9d^)-%6*{t!h{(n%vHFX#-6DQo?~V49x=+)ihAJ|Sa<8w_0)EDmd)-A6xnf{wHa;sexINn^ z3r%~^vno4#s(7Sb7*&bFwQeTr%p<~Af@*{3zNiN;Ot66f7`pI38+!0Fz*^)r%4rQg z?6wH`n(rD1X1>-}isEUa1;Y1suHBQkWB|@N^3h*)cgHDV^s$5jvfn2MXA^zNba_t& z$I-N*h-(`^kZGm0?#^F~@&ciO3}*mq2w$@ms4>zSO?g0enJafXzC7L>F8)Nj%fFUJ z`SY=(7i&wrvewY-3F$ZUr`q^*D#|99(Yf_5Jg?qYlLBPTHV<*{7EkAiPvRg)S@eEQ z6E8Oi7t0M@-V?V_C)n0dbkWDkl74Z%$(*t-kG5cIL^ra+d7ZHWo*?n~>&D)|0Y}7; z>~@`br&%yaLqr=|O?52q(q8TQ$Fq+67e7=^EiBGa_ZkSP@6G%KMK4etBOftlbs{T1 z#{WR-W{$9QPOAU%{ca1b$$M*BCN1+EIdE$!=d_haIQ+dGw zKaMOvzh60wCqx0*_$=RB@3BxTylAQ$+}f{DadCWL&tq$YV+q!9fFn=_0t1=jAZ z=i(@%0|ju$Z>>1z*0iCRk?aqqd}pYx*@ddmsjKDJztHL$Z2+kLA~}_q!4UJhm$Xfv zM`?I!?sa^>HXbCGTUjMPd&F!DDy`VUSq zySJb4aVpC7LJUv$_q8Y10ndNlt*g*_w=3DkyWxdD^_z!Ae9Myf?pQUyxs+Opr>@w8 zERi5XE3FF`w}BGSO9UqW8HLmso|>6I8XLQ3%iIq-P|z{wxRX7ZLrt*|In%2tAxDvC zM{A50o2Z{zCo=uKk3L$~CFeX_)j5?J&e0n(G35Q}emIymigApbOIDgk74~IXXl!Hb z_dU)Ha<}9`UelV^klMQQX@~dKfX$~%8FKCJ$feP1o%!sWa2?&#-z(<^T;Xf_ZfY#R zSCHYa0ecV&oNk^(@bvQO7e?c~&e@v2Mt9D4BpR4I5R}6RN>&3&yr@q2|72+Tn>pbh<0scf2=`E_(00L6+uJDi7X-8mcD6whd04if!OwtqwW$aZ*;v@Sjn| zi<2i3d}p`%U#@_mrjJsWE$9i51pk*M2%xLlz+(pjEUe0JlV&(lmH@40YwB738NrLQ51qyD~=$+pdbhYhF$}xbO_RsUIQWJKS|J;x%bX|GqJn~NJej!MpW@E)#BJuP>I-%up&C8!Y~wjMW}AWa=? z!@QsN4tCnm?y4e&4O+<2L`~Ax8TT`;wmOyX!=4$_ECb+IFI*0=uCJX6n=Bvv1Q|^D zG_~IMdxkT`v1h1_Qoj=gU$7k#{LzeHovIEpY`fX`^bZG+8@B){YXex^zk%owN7Vx@ zrqv&}?-IGQ(IIZ`C}q8`G-LXMw^Kb-|G9kjP}~vhJbNmYInN^-O0DN)_lx3<$Mi&U z_H0OX71Znr+vhpzsCgj6o>ahk0GiXA`H{Fc*RCHke3+_v$mAn%S3znwhUQk_lW2Wu z^h8j~VB$5!4cNi{ebbrL4{5h4&n8IQqt)8q81F(UjwYBjg4tB@S6eXc`y7vrErL-6 zaOULcw#W19LFPHe#^YQ;Gg2nWM7!KsSao);indVf-AJBsrk>%030*1qyx0<#PReap zELum_ja36K{F_0M_bJjd7bz$4+<4*)2PF6AwRN;+FaZ2=;tlIx;)wyL<4d4GnDGp~ z+<|+ZGxJMs`C7-9+|1k9RmLJf%MgwF(VqZr47g=6J18l7d>!iU+G9`coDt3G`L+l1 z;R7Knko!KHImQMi20^PpFbv?pV3`$UUVg=Qlif; zhBE2d)~D?1`UHutVJvN4@aAed_@2iz+KH_{vNV-mje_n}qN$lR=4cl+xOn4HlHAKq zGf*Vie|BIQ=Lte{X_Rd&yEVq#{ck$lhEY({ri%;C!gfo1+7~FZ(=h6Dz}BPDd71GH z_@;0D+fZ=460P?msSA&xcg4lw*zPh}$IlV$!TH!gH2}%ficOyH$W1_jDz2jcXtNKG zo)D|%2~~}QQxVB$h3mWp(~2hB=}vEbTUD^x+Y+z8v)^45KfCmJ$MEABa^0ZoM%a2m z+8IEEV?&wk^-eOo1r^Dq)_r_$M)2zXZt3}9P^Eh=0>3st6*N*lZ)itKWgO3fZbpev z{p~7mITLav7>k}`3!gYx^gk4lvx6{`hXw%G5uE%hDFJr>#5x(w-T4mJK{^;pGpbGj zSjeT;b`ZgSLgVZ|kPMebTfu+}ZAj#nG^t;YI^R737C9@i@K zj$BqQx)bp z+SBP>UhA`zu03(TKuBqyyv-@?L9*uu!c0m^Op?D2n<{v52AJx{7Ez7jyuy*$6C{f6 z@Df4S2-Hadn#`|qR7kA_)Jqm;+THTh7!CVkZQDS7E^FoLK5|yNf3um*HMQeO8gNFQ zttrj^bJ{+;>36fA>(v`EOB-vJW+@)k`>viE!;BztK;Hp8l~&XrODf?&_V2;lTt-`X z!@`MjVV?^$JEJlDUH~u{j4&qbpRsKNQ~Vllz4aV_$H*EUD&{*@E_C@)n`?^j_k^~2 z;AZc2%^tgvP9!!mr7Io`UF_#QR2C%pt!q^Kn}M(laU-_CM6-Nj-ZKxXm6a2wlMKo|g70ZI@l+ z`1`Skh|n_34{O5_125i?3-dobkDIS-kI?-x`R2m>$0GnV+^?_>;0FBfO-RqTUV9SO zc%#j`%YHDy!&N1@S95U2?e$^WP~an<%9S9S#!lnDkN{|{NmlE7K3P)LQXQ+3ayi~b ztreYF8C`Pps;Am}P2YR97J);bwkry+On+zBiz~9V>*aYK(sc-y@7<8PLR?(@yG{2Z zS6m4@()c3$I$?%E8O+L|`X&wPlHCV_Ff}zxSLy~K`!)qjP&$@;XRKCSx>OE{P8O4b zXRKbe8(xtT$fL3aHu|_(2<^+N-PTvgphh7BS64<+`LO=;#j`GP=PhghzXioj0PyyIGgjwb) zFl{04QKjir8@g3joTAayGQt7#n3^51&DNeKA!{$5$JHl`g|GEOb+27p)QwHW@z3+51+0W3lF4kl%wC1W@ z(%wA-cVg-+CMueqHHcc4LPiEiGSyEAui``*SJIB1=gCai<4{ezIRW5V-u8>5&<0Vv z$1Xz)inMvn#UPszR z7+K-atLcdfsRJa1>cIjT%V=^f@H!eb)oEF~i08XbwZ6U{0J#adi7#{+Y&%TE3=0jr zuuP)KO9xDAlHdcXyk|$E4Vr1s8k!#?^q2NoNg9b!xKq&S z*D10|%2HBWJ^kL?o~@N3rLM$0Nm`D4{GL5q4`Xe#w^fD@Ir|(kSpyc#<&0!PX!{dU z6=St@YY~4-arhbliVBD7hzHD|dA7hVDRY=*SIFyeAdf3H9*=;gAp^pp#8o8_(V|L- z#i?XH96B>MCJ5rtNzfXy_C`gzq}#)VWcT`%BCk|({z4Kr9vii0_Fi(buW;qXK-@)? z*hq|d)*D~J5X-GeMw3;Z#pseyJ63DX~gmBA1D0v zO%-l4+XQbzr-KW(ZhESO6ykq(5Nt=EctEVQ#ETMe08EquRM}56s=POY#rU9Jha!)c zgZIB49`)tJQzQ&C$KfLJg*!LDz>C=!oZ{aEI|Q!J$)tWd3R)wCL=II#9(;ga7udXT z9``T`+5_6__J$V+fI$+5fXOdgL!?6O0=2VWKLulKsu0f9bs0qgji!&Pe+l|nP9Tq? z_;+qDIRRwC3KZ%=HAzYq*4Jq#d=|Re`v4*#Dn-=y!1Lof zW!jq$Bg%Gc`k{=oB1nP}+(e0eLzhwAP-wgi>;?V?CvOTG4ZrQ+b(HM}pl%}N#o$BU zGO!k)6z0(d_+*dW0rIxID+?))JW7${2fm>sfxuE%4Es*kP_gl(4OF-DmP3ZQ3hLN>5v?0`OGH~bQis-40A za@n|u!_`MYLA7yKLUytg5|)VS4qNMG(j5#va|N_H?tXC_dN2^Du^X(!9$CeiQm{xj zxVL>HQG%<&gQDY6wi38w2Fa2*uLtb2F~ok_EQxyvswVuK2iHMel#rIh$jD@`-9VDM z!`9UB=;4l>$DQ>DUjeTd4+w!?zoHDD4+8k69gnd=w@&PVQb;^k9UZ9VXTus-+*qmf z9rwXm=#^WR1#jPewh7jPS8U~n&Ax9I`nK28AuBCU)!$81lf9q_`c76kM1$+uj91;m z7GI#WcWiztj+B;Na~tZy)^;vPq&U3d3D}HC-c=3-_`c3Nc?9x+tz>q?Gj4I;F$rEX9SNkM)eDuZ_f6aam&L6^DS&g) zKt+c@r*9qtqKe$-j*48pN*)oL43`DUJ=sGGset3LLDhp}()Hp1@2YTo@@dc`{21(s z*go0dCqR|H!||xtplsKzU6$OTUCZiE49+cxJ76dr;+U|-nqZt(zl_QuJ> zWsg8q*_uzbZW~*|v(Vz=ND+Z+zdYZPK&b&G>7XUGCJd}u@_C$f{s7qDM+8moZu`}O zJGoZ-J64D>jt0lYwkZ*uz*9!j8HZPKY|Lsqw)BF7nP#zkQtOh%Hb8eHkp}D=^I|`( zRYHnv0XwGiJK}4ibr&ddpt~&D3vS8YKH#!^f1o>LO$}$0+wS?;fzu1Lz(q-%OF?9E z09&+&g27$Xg6V(}Yh1*UJ7Fc?1?=IdYcy`(R|Sr&*s~GnsLc{M9jST&q?#}|9bZpS z*Rmex^+wr3*B(62<7@&J$4~qOxP1OvLD*9yvKrtLz^}k_yit8bvWa z0g~_wpFkbtMKT<|X2aT^7YE8A>3?2DDGDH^*%y}k*Ag896cVs}@)iaLk@}ECe4(HK ze$_2VSP7(wedBLA0)NmBs5T(lW&};PR(9UlgD-?_(y;MNKF?$A$q}J%2Uzce9s3sT za4z2|AxYY?Kuh4?$^fMTS`%GPAoYoD$;m}{u~{^Gvz$%2yBDA$YoLcaW&%vwAN2sl zL!oXvJ>I(5EEv6+x(E~URkzT;43m%hn19$IO5T^?8(RC^TZD^TX55 z_P$P;ViC8darYh(gLwlLs%_M~2~i&rvcIEm|9Oht{>~@)l-~6HO~w1W-T+p`v&z>d zZI^8o&$0>)ybZ14jcB&}wJY28ew$!)Sk^>fPgx7~b6j-TX+fFL=Zo{v_U>ltjD*6ln8PZw@E7@U zF3;V;f}<&EmEZXqZ>`~nu=1;WnN>tD3rlos6Z1bvikg~k%`rJMX5jAPPPbn7oKb_s<0;2fCsr@q>oS+@6J4wRSJnqcT( zD_t;d1ZY(dCb?GTDIt|4CQHDnM5@^s)E{7*B(Fo@5IP=;d=-HI3l)VF*@U+MHk+;P zw!qBUPoouEIl)(4IMC6{GH}5CtK4YAGdMnxsw_C=1(7d6+#5U)25n4E?w5gmgsgfb z1N5@Y&|#DAQ0UJ6v4w(LhLQ^fU~j&F(%32B^!%`T)#X#kc06V#wgaKS)B;P+xz+uL zmlr@@GxiT!m*G>ui2baK-h(3J_uTuK{lX4senfOsW@4~MfMuH|-Q-`riKP6=U7T&BE$&wbXCiS*pP1n}Q0c-aUX(x81 zd*4V3?A2d8OYbCjR5+eu7P^Zaa{#;57AzL0Aay|ucrXwx39$Mq#_$SB9!rDBGRWlv z-D{zzP{3Uh3tO{WDPSY`!FB`pon(Fi5J`luAr7;hi?81L>g99u&W^{Bty0Yc!HV^* zyA7-l?m`z{Y{S|!7-i&f6aMSU$bK&znCA?f=7uO}-id&XYlW1MsYYfSBzhJ_z z51g(`z^(dCR|$2<1j>$C(*Mc>#`XBIorepCK<4fnNdqr4Pawd;)}Y=1m5~aN671+7 z-0B~3^?$=#d0q}_N(LsemFGMTLw&gNoA+RS**0{o*1b=wS8XVRJOc)E6M%N`WIC{2 z+rQ8MKLe;~h7Ylwcqs7yz$O59S4jfg(=p%=NGN{b-YGaOAp!w1@E2igh>HhttJ(fV zGTSxU2O#S@5*arkPAGm}NO~kNt#wh*Mvw~ut^)X>Y5ASC0^rnw?8txUfc}Pty4Ni9 zH_|qx!N4m40$aMs_NnTl<)oy5%o_jf`|~&h-2`O25ETS@#1-87)Mg*Z$u}m-#U8VKRFKAD9U*2XqAkKkH&u z-aqCo0)Y;=y#|<@@HLI6|H>&giC5s7oP!5(jXwhKKR{hVaou|8&fCzdbHE|x#xg^| zH{Jbb5>5X?7yq|({@L-lgKU>jLJU@rx?Cc{*-aXvH&E|ElU)va&ylFGI>nyg$=BVMm6F^l~ zfSmfDj8Mh+)&Pb7*RjkWh|UXl2%w$C{?fLB1L_d{7rMAv=sz6J{o4-cZz%m)cBb*` zHd}lCtc3S${5g(e=UOZ{>D#6>b~0r%@I_4`Z$Tb#iYBXo^T0{Nh()Z`0U`Qk{Ni~Y zOOvmTr?CJx=c8u`9F7D75P1Jx-Y?DpoPy1(7On3z0hoPO&p`;D?>d z@BC*EC_81%esFBvjexI-#WT|nSN^e-st-Fg@y&&@1tik!j3UTXi|t#^ugyJN30&iX zf#tlvD(`N1w<<5^3*W3?wk*HSq(!lv84F)!8b#j2jk z-Flqg`JbA8mJ%<@ee2v0SR676dX@vJ724c|dhy!n1KbD9O6uhkC%mV5#Oh4{c+r4= zC%53MsA>V~^#9Bhb#jahY_#LG-auV~WOmneXS(x3$e#2U@yC{f+Z)2%cuWa)dGSSRG&r2Wafhz zd?}97FNm+?W7teFu9oD&x}zj%ORPe15(g@WTCgGUW{7KHA^A z1hUc-l<1HX7e<<1Df>*LM}nf#+{5v<-L9i8uZez()3au(oKLJ@ z{zTp^cgkKc%jdy~Cr2z0FVOzZ;A5Q!KCKp1b1}fGvH{^MRtR#Xb7<8}Kp$?^Iy7x| zc$&F1k*S+YVl9y(>~LUwU*vI z`sIc)_eJ52_p?;^O@up;@+|1O5JE&p2?&NBQ@X8w1Y*n;psJ@cQ}z_k1XZSN{Dovx3~nE1>v z<~gP9)n52^oog9+)GpuQ2`-Rh{rY94j&c9+{J2MnfPTdUn5SON8N%YMZibrdi!v^w zFe$7htTBl_=K&BM*e(O$)~{iYZxvciAEPi|rJ28$U^M+84{s^(e=p=a`ug&XOJMNO zGs;@dKPf6MJI<>iFkU*_g%H|6r!|v|NUG;Tp-t&$_arTp$n=p}bh15rLVGqB>GAFQ zzUu|Uxnqp|znq+oU@b%tuTAyLT8=3dkr?fyQp$W(5?$(>ja-IYD%yexsqhHMt&PGD zG0v*+YxJq|UJ5Iew6JdY%a;%m*PXBxTZWjdmj&zMF0_^&!vxW${xmdgE`+3 zSQdST9D(J`(pzDh{PpiOSQ9J;Nn`6mtvd#mq+@ais^;3ZnKduUni8$9iBrtdN{VW%h=KN=Eb)*g!Tp?76K6! zb~w*EO&P{+&Sw=CE(3tJXPCY^BMml<6(0n_E@fl)XnT*NNXvVE>FdS4kxB9+0vNHG znHh~e<`BSw146$#4`W~|;Iuw=R$tk7estE7^XnC>)wmaXp%6@Hwg(Q|G#JcX1%U6> zv`VA>bEh=Fym*pkW9RP)2F6F;*{*ajTEQlf`GqT?VO#;dv0|W;M&3`2UoWC#UWZ`$ zHIe75ZJ6JKp_4iz&E^z}WQ2}{u(0qj!GZIo{5b9<>14Te?pE*gI>{{R%g?6B_S*O# ze4fAPM=dMh&$_JeGQY3O^14Fmh8QRJk^IKu{D-3nE(8m;$G*M(zGt5wmvwt;|AdEn zgy@|amQE?@DT9pG-Uxf^Vnu~-p_-m^k5SKYn|KkH?Q)RXRt-%%39;QDu(D%YxmA0%PJem{)u&rDH1CB4+c6bLEB0 ze&xk9%WNYc?>n*EeU@sQk1my%9olM~=2j_H4Ufs5-CzCu#qr}=Y450GmdpTq(U-?z z!yn_))%4IeyK26e)_J&OwF%uleckg@+r3wN-4gA`B%Egl+Ow}B&#e<431&Xpnq5IG zt!&zsT|#_TsfM<6Xq`q2W?s?Cl4yP2V|pg*rEgrVsb$u4UjVKByZ#z ziO{o@;1&DpW>?d8^6X& z`_=-)oT9Taz)$WbX#4^K|Gf!-oB%qT0Es2cmK-jhmMf3xzihE@wl> z@r4{n5CCzOLKY7`2HkC957prYfw*YW0K3b@zZThlns*r#MbMl)vPw(#QVHbM_1gck zwxwU6;(uM&!|&mWPf6ku8nV3WDvNMdPW$l{ z|5Lx;q4dXai}mKH$*L%7Wis-8wWIFLj*r`pBIZ&I`;#}x&H+wGP+qv!w#4HwJqu&Df8p6=tJ6LFk%yVTBzrDFs1ew$hvYen9nU5vI|pGlB8wy5$s+Y0~4(W z05AJZa}=fP0-6yn`uAp}txvg?&wQo6eeai{!HXN9H7}KlvcgjB7edL$^p{+QL)hR^ z(De3OZF9epKR#pl&>7w1P2?n5n7*zwWsw%s%Qqj?>1j9nmWEH>(>72#Q5}CxQ!WgL?`*rN4LWCkNW?S&a9isw&SzA zh%Dw(<>w&b-DI7q7hZdvViKmBN9=I&Bc@e5Qj*}l<2fl-m|CA0(KaK;q=@Ed(`Zi9qjuB*rJ|5|KEU;a z-DS3cnc!ljrmyvcLh>Er*Bl%~gfaaPceUMeO-*Yen2DO_akYEe`YVGb?s{UcWYMP` z9V^0`t>Eh%^9RGAP4Wpc#`~|6;#uvUeWNPI5tvcq{)g2H(Lchv?t|v=XWLC6M2AfxH zY_xPYkNL%r=h+ep9RCgcL+$=mw+z%>>r) z`5hml+-PItmB3%D|D>r0I{YoIuhZQ$=U|OngLg16mza2}U_K?R<_%SPw(x+$s>#T$f#!Pq6wAV1Ub+__r| z<->T}_O{aL9+ikPnU(knXQpl}s}W1>^fty~Bdt7`?)G|)v!2FwxExWV`zs$$us$hZ zPt<9Q=}%GHC25PXqMl2&dVPX2SXE{gApEzu>SkpT4$Vrt8#_S~4B9X-_}12F*7K;1 zcYV%_<9l<4{50v4#XU)++gcd^x>jZXFNa#+z-fyE;zhR_v)s(3BM`L6c&{Gl6uFb0 zW4!Rw)O6eAHgsv@#^JVyM^uB%w+2nzPd{y8P!Df6s|hz2SHumO?PSAq5CEW(TliN4@yFI8Oy4G+UZ^$t!ikfglvBP$zvixuNN^uz)Y#M z?qFa*JLFi$nli-9}m~2t;t~$XVCql z+3UVTic1+t;_58it4m4yEx{NJ!a}*od=9xvflPm0BgDEWE>gdz95PV;sh0kFqG0i2 zD^M)2oeXRr<6>@gieg{585wU^@iX`PJ|N9)n?;mMN2+lpl6PD*XbnMkCUQUg!X%n! zW{g6kHKXT#8k#81Jv_X%dZ|~xOq3o+@^;UodkJlFvH2hl7&4F2?NAyS7p~5d-5KBC z-B3AzQMA^@ntS|&RD!o;IoxG4Nt97A%pB6aSE)}BXJD<`)l-W85}G7)zZ(oT$ptx>BAmmjgODw&$j%*5>G6~14x zd!Pgdrk)?maxsr8TN(Zv-Dp7tLa+{u|Ma8mMTPQ-{KaDyN+a^az(7C!P$LYx1tbwmV-Y>~n;$?b8UI15x~DhrH5c*?&?N~!49Gtb9Kz0j!$--Sd= zP(G}EY%%>nAz?cUKbUk)777Ku(`K{n#yatNKRwzG1M?P70%aBCv2ZS^sxMm~w1#Bz zju*)5Uis{ZU>p_NwAl^^s=&s&_*v6g*M7Whan<4J{0Vqb#c{p#U7$%(<$0Otr08@j zx$38!21M^e{DG|WsPrM0n|VI!NCEA8Az3_PpqVs(x^+8gzEA{)ZqIUh^@g0V3!y!e zG8Lh{&>d*+q(4gz;AYou=q}eVg&vBq8`*?m=yk!+i`Jf#RWR?;6ahS+_i>ZSCnpQU z$@~3M({JR%5)1=^wGt+{G-U&|4G|FU9Nl4Mr}sXDfsjB>Chchqv&4 z!gsGL7nVNH=ti}?qOi~H4BujZd#J=WiM%X3-K}7uzB?! zQEGRm9$5RLJGZAsR)bk+2V(d4kB#G#`8UhOt6FT-nk=jWUDd8udj-vEVl+ijk={p0 z5@1f=(+=#QiDvH`(aM6QaY0s2oz|0`Fd@H5B=HhBA*Q7eqR#^z=4Ae5`Z=Rb=5M8F zzHfZqj@~J_TD_sU6q`q3%$pJY^=8XGOCV<(+zDrLO}e&E5v}|_FA^yjFlEm(NJzrW z>iTUL3wLX8(6lWj+d{;g216jvW>a?S3&+ymgQ-A_NnT3Krv$^b0s+#0kz-iSRsU`B zglO=k)w+?Yo?Um3N+w25U}jRMc=HEHeu#y_m3_0oaf3%(KXUcq1ZX%M3c+BDah1xw z37>rB)yw&ziQ@{!aE-o9 z-pV|_@@)rsyitlX`L8b9`6ZZab{^;Iyj33?Z`ofl zNRKs8W`HT`$p2*6*56_m9?ohF7hXIj1oPT^ zF-r0=f($s6Bu{n;r%K?)@wOJ_Rym{hLi;9*`9dXE%nTyFypZg_>6jR4zpfp@ARoDLZHE%_GRO(3 z_m0K%eF?=%+AK9fr+AqI#gr(L$32}(BdW^a>@KhcP)3Zp zX8Va*f117@(VzyehPSPtZf<&cwQrAkGggZz!Q)`l}%EsWsiq_pGVy3@hm zqcZG29n7IkhxWoCHI(9$B&x6`D|@hFL$j5*!hQx`&TYxW?cIFH0=fSVbO3mWfVbEo z#@Y`iPw+VYNU%_iR)Oxytn3g-@e77Ejd zUy8G-e9>$j{c7qcWW;bJBn$INd56ju)trHs)&2E)h;6KQKopHJv&Etnfz(cUXHz+W z)~p|W+iP`@NTDqt`L^Y^T3fKUp-(-}LE5H})2=g4L|l z+oOb31F1|)+9SERsc0*DduA_x5&hl%`R!6>8+5bvm5MwgI(D!YBsU^XX$>0P@ArgP zozNE&!FDrg>ms!5aOD&4RhgbxKoM3^Cfz_L!(gMq7#1Ds*yXYCC@Iu< z>%wHGQWF@z7Qf4*JAn88dEDhE*5Rzg*blt75Y$6{$B<_9w!k_+^|Rjg^uaG64Q(W) zD6`IQ(a`3Ojnk#p?sdJ0rnA|dLjIjUK#rmm-3OK~uZd*Ls1V@S=AJp)Gpe2u?LO=r zRwn40hzG>_d@53?V_M9TubR+%=UaWDpjNuPOu zY-ayf7%+q#9%M=|ZE2}CTF9oo*KD%n62u+pL%vhl2|jH<5`COz2dfX_X1DOhJ$7Ge z9YzF`$T@@Y(r2fd2dY~g;YvlX^wRGbOBfu)^{Mj4X%ALV3ubB;M)Lh@i*lts+0;{K zgjRL}S+mYvbq1uFw_?R38e|DtVUJ7_Uf^QLWHY%?RtnVnTK@7l@8 zb!q2kO!eGI)-Xh6xILrKs}ELal5{K+ch0{^J5yku+tVz9=d=#9Nx%Nj=AV7nlz~eH zSeZKF&21ep6c{WG|A4T^+T$WpQU>OAn8E~Ofvd-dvBKE7Zc62RT`RapSNaIKUw;C@ z9@>qn_g5|oEglae6@c_kWs6x-xE@cYvw|Vhkbbg&aiukjC?5vB7v^`_oX)6ip1~LT zDhKR`x8z*CtK((tq5Kn)S4376b?u3la#07hyj+wSN7x3$S>)XwrrJ!%4_QtPq&fNDZF_{gx|trsi-U)jPCIR*4-8J% z68tUZ4I-*pUt)~zhda54rn!Y?+x1)J3^dO462{(>yQbr8=%>ct4e!pGd7j!I~pg4IH?wFx2+BgJ5-dr&AKA<#Xn4?dczX)Lf}hN4q`xb}-Rn+KjZBrQ{11 zuJx9^tH(H@E*vBBzH)HmVw#oGf?v*HmSBJG9)-Jh5xToEoi}`h4@{}@u5&1m(HEIo zT!@&v*&7kX4r9i17!EnoH0l??NhYH^-2Dz%C@d49Gk0G@3b2rkH6Wto;2;JVMe}4X zW`bjov}lLNt|srF!%GPusg;oaR^SMpH^_LDr@`rV2Ru%HAo2U#3h^d-j41dFwY ze;S+aKC500+@h$YYZ;dNJSB>{*I^_HI!hPmu0VHLV*yLWR!uvcob1A!0{LG4V^VnM zRYMGBK##7c>zk1`JNtyqnRp-61b^(+uLk(LGmFm3DO+?v6sLT-qeA15;)x;$&&LN= z%D~Xb0MH&szZ`)WH*bC8U@`0Je9vN;M648_y!Ve#Xz`xMm7T|}63yFX+<`cCtJ6F5 zim~pc)V%qcKxOY~L89H^Sv%7QfP=3xbwhNGkOGLDGIXX2$CO8z?dXr85!E4CyBh7S zeL#b*OQ-`X^0P5Qs`#&f_fI-l>H{LA;hHB>@o6%LRc0 zKR1GcKGWY}8Ea;|3`Bb#G99ix?QG}(g;uFd-LO`b3TBs_;X5OT1mV`X2s(n!|{f%V8o=^pz-`Dk$w*jpRSWL9b*=-EX;GgsTUztGv-iAG~&K{o+{py4CgP3byc6pT73!?oU zXPdKpu55yBcHF>iG6x}Q?jK^z`iEMqTYF$@fh+;$I}SMu5Ea0W!xfxF&_&N<#D&KG z+gUBRZ5+!m^uhz*xOc$e5a9>g^mh@`1gJ<0lKodYI0)+3_vbIOlioh_%Q`qiTh|XFCuN1LNurAM#x7fgE7Pcki^Bt1G2Us05vGsbwH3{ zHT#}Yf=voX%x|}#>|m$@7EwX7z4sInuL0Yh#GY#}VW76qGt=viV7w7M3P=+`(fIet zEdiya1!{6KK@XkXc{LPKf3?<+(KtiCo3Ljv`aJH(-dokl$iTiKNrW-#07`5bbp2)- z#iH@cCU3v>HlB)%1hf9gK)w(}jqb>sll^m!qW7d#x}xXSQDXWtWhz=e8&^zVu0)S2 zT`-~hkLL~VZhb95du@SIy!vhwnAn^6HF?Ogb%K2*=Q6T~R*l7H&ZAnX^3xO^(*8^3@8f<1>Y7P%X zUoAa6coj=pY_NHv@*6#<^)*pYwFy9J`VX<|=n8Mf53@-OmKm@>yN8RV*73T925Ju< zk&wI4u}>lcgs)wG78`XZS1kT?S-<)xKFYmU)ecqpdW0yOc%L)$UMj`iCTAhfv+toH zIi^&ly!=E_#*%wfwStye+w<@Td|jC1Zh6-;tbAK4t8A(pBA+vY2WR0t4!VNYllCnb~1+Jg(+@5Y>WLG~3Bu8L6Ci>byy~t4{ z-?&LGgxPl5K(T-9uE(PEV09{)FG|>XTXoPx_+2(%IWr4jqjpUgZ&6#ct?Q2+?xOZB(fo!&FmFUtxi5d1C;5qKnJc;q0H}2&llIEYm(4X># zCIG)-A9!^YAH9!M7{P=$AH>Ng%%Cey z2hL15Vo+0q=YG2NS~4*zec=sG3Vw~&u+&4?P%vqgGZQ^BjWC`n-{8C8W|4m_oW8(& z)b<3uO-Wx=dYz*_%Vh?ie4C(oq3sVa-jqPX0JE5A-W(AG4Bt%!wNjWgv%UgL!h^#f z%6^PY-U)NDQPPLs@iQ9Vaov^vh(5^iNBbDlWroG*v7d$rsr)dZ3>IcON;FZTI0<8L z3o#d&w@|_$`rF6JJyb#(F{h7CQ8noqTV~OjpftxST7=jrh-zLxj(9HmsLIo*(Z{Pv&Qrr@(ZW-JR2m#e88TW}GKx zZ+r7zX+SB;@s+ymZgZ2jzslL_I)Jj_d>=y(R9C1Gi2Ay#EsugK><3wA%1F#RUVa)z zY6`J?&%$>D;#Bku`b*2_DQuCuk)Sz6fYI^9U4@{bSbZM%BwWX8D>;~{nHFo)RzH#+ zOkzHRk;I(09>FF!Z+l8mHJ5ESt&4Krn=i(ssT(sxT+VD|Z)GF|>H9aTSY^|m{O&qZ??g>`6@lD?Z!=J_W+qM>{(Jl){m&GCMh@iHlJJr0g z1&fWhhq*(tx*}N!R)(($zimQbrO1E@8mHY!(|sekfKvF1Xt< z;p$7j;ga4N)&%?vgil(zOlOsRe|0c z9=IpcKP?P8VQMmXC*(>X)H2FdFx|QGVQGVn^Yz^Utxc!b_4`s59q4m$g!js{EWjZ7 z&dR}9SYc@_J1GRJg<$@1Qr;ndRDFKVW%CTo=OtykpVnwnV;rl--%r570CW=S8YAb{ zd0hJ~s}q1Dzw7!~>q2=fVIpTxgb1qFXB@2+YzxSzV-gj#O%;Oea2pIAtG8@Rl95Tc z6z?}4NiL(1{X|t}7$fI#?(y_3t$7kOO~5d_=_{vDNRNjZx?9TNJg&zynWYb{R_}wa;lLZW zQ`=OgA_Vtch@^Mlcds@!)_$8IdTPF}*c+sRdn}^*Q-?MYFf3$fbVyLNF;dt1#|?1u7Eo74KvZAh3;qnpOZb#3mLVl%Wqc$t9#n0MtRo z8~-Chy7&oJM^r?#9q##`4@da1!3D}WvH zA8?`oMAJ`3aJ=f&hE^=a|B2}PI26|Vens1=;jJ&PNQK(C*NbO&T{`VYD+JT9Wjs>~ zCa!VyfwpBkotis^t}S=&ZR)2JHOz2kHS`S={{mrB?5WeESICP(ISWRgu-- z5OKK#;=B#@U;?`|0(P(YEQZYve^t5Ymb6O0p^S(qmQkeb{{44I;^9nqUHT%I z-{nn@N;baD(!zS)`PTqT^V( zn4!0U_Jbiq&LI6kbh%~a)8KAjpWMl=@kj2MDCio&7mhx6UR`d37{@xAjzIL5vopuEh{qE!#^tq2MbQst`rnB9D=>3g^@U-e z@J5MEkwGMp{m1!tAZV(?0Et81KlK81(&|o8-w)@e+7FhUW(Uh0L%DCcNm%2z^JLc- zAFj+i?HbirPGMc8pUY}3;uRJn>CEigaeeIB6oxVLq2DuUzXr2S#CKFY+ZyXbuL_ic zUx?C-q6F*xz#dL=bC7vZB!6)0aJ(SHe+HZvmj(cZakkOj#nesOzaW+~^{|KyXR3nn zb%}$?Bqw3lLP!|{;U=Dd1L07|; z#pnwLbu1Ph_!gkP-XVy!)FWsbJmK+0MM73Zb?uZ661{qXZg>3DRD!#|9+*_7oHO@) zr0?E3a#WNN9XGnw9|SkN6vScEy$>zd0`9r)C;u#fXR|O2?|NqTQHNix^y0{OE-J{P zmYAgbAc_LKshY92)x=njwjU|G{3!xtgoHRd@7+%H3y)_OkAHv=`MPT7+nkMkzC3!5 zF8?yL1O`q-*Qw=9c6d%tz*zXsdn{*bO-0OXwa3gAvl0?3H50qL-Bf;|0?f7;3BmZz z-BVj+?&>G;mW~0J)uUmN^kBmt?WfKs7f<0dIMV&6*b_yIqoBkqhb@%`&-yT0gZh}j zqqIyH7MftTr^mc5PKrDp`Xs6OrJMx7P}OAZO_C<>ziK?oPzY1^sWEKG&aMV?IAyY} zykkMqIZqWHsk-h^)85Fj)PYLgi93-&E6S{tsW zTgaa5+9^)$Qaj|9!wdn%HT7Evpv9gfk!hvM)IjgPCc*URpmCAif-(9C@|+>MtwgDT zntv?u+K^jomKLpdvk~a^y80TRXBbn>6kp#{AYp^UZCU47C7iwfu69tDSnAeV03aal zYMsAQjc)79Mz<7GtLgk%V!6E~ zCa){`&A|haa+1N^6Y;Vk@K&T ztr&0RpPM66Hnlv)g`?jhk%1i32@(ze00ZG~Or3ZGihe!^`1$|NsR4BW!viM9hzPVC z#O;FzujJ%b!H59GOfX{Mm(w5$27Vtu|J&x_znsXq+YWf{`uaiZg|$u@X$?zRyjP?7 zu3_801Bkz5MUPW+y~pN8(Pa!9SF@-r26pW# z)0q=2jL;^(0hOe?W;Xt(0doi@oU^X$O}=jQzm|2nNPppBpzlP!diWaVfIAbuaSbuJ zFy2V<%9m44?(Xgv45Q`l0;UnHRC|^@ZHaSfg?pC^R{tu-MUWYyk9(7%iun*$Y_S^< zC_2!Uf?zl;E&;lb2p7-<@m}as;di2yM!JjW#Q}BF;@#2vCynmTfF@PR*8Uiqz203u zgZe~v=kSp`+o$fjj(6mUR@Tg29jr?bt-f-Y)qa=V$h`f+H!Szx$5Y>8vh5Gdy7^n3 zBrSHhBo=+pqwlVMl?}7sWt4NfN6xv2#Ok(BGOKs?fBj(u+zR&oEci4$W#M)4> z^N!f2`WnJ8i$P*#)7kCi0G7k|z%E=9&SderyAWc+pwRDSFg?-G~`Maa#2q6AR=>;@!OR=eaD+*xC!Qr6PB0zUAC^`hT&-|rV}e;x}3 zW>e_=fZCIrm5Fh)%ZzBn1Bmn9vd5>G=(5I_= z?V4+Yen_JC$=H(^^HG4_=TMeg7zVR~zcu4rpw3K<%2cW}k@ZSrssv`=Up0hH1y^_j zv)oHA^e-MW@Hbd+3h21T_(Z($Wh6Rmv}-9V zj5xaCZNs>Kvigy+;})}zx>~+G4_nt_dC}e5{d$)7&X#Ky`<}dmM(6Jdb-3m7xJ{}Y zE)&<^?n}II_3}x%xZR-xo2i(UOJc27nS8==11(+_A5F7&bpAi~zC0f4wg0 zLn1?kHpaeGNNJIwMJGp=$u^RGOAMw^$QofRp)8$FmLfYd*@>~1vCB>v+c3^<3x7_#nJ+IgEdirBxm@(h$`Yi9y=lXo#@7O4746~Djc|*Eyr9~PMiM7?!bKO}# z0;vF<>l!(on^+wDSa#x_&C*Q&Z07hyW3T$3e|S3(z9U$fKDLzi-C68#gwD{_RqEBj znK5eX)zL3U!L^Ld{}OvD*u2@{Ku4aaWs`5Ted3GFowQ*-DN{dvxA7FEr!Xl?a)u^u z=cZ4&)?FeXXuni(= zP1b@Y?+UMZcPXZTJ@$idm=gUurC)^djIK1&JE)5NppH!|tj170rEeI z4XK*3L-Pr%?(U~bYef^{JWoI#Ex+N>ka!T|i|yZ{tfZHFHaAn;#)#SG^keQ%g*gFV zB5&r|yy?vP)`oOR)3$zW)t8u;RT%X4GhhX{m}}dj_cm9&15*MdcS5K1o_5{s5a}TN zV4K~^-9gZ_eQVYgX5E;p)EjF{;9ZRo5!p0z{eUzE#n0tFz?BfXMo|GVOHh?I00p>< zP##`z+jLfV^4s%Gn^vjnYN|Jj9&7%d@Zfo#)z4XdKBinP3uH?V$Ev!f*X zOL|<2T-SThgr<)CoFlAf&<(_kF0_r2@@%KP%D7Lp31wyEUx*ab$|d9rf3g1Y=iK_N z;o6O{6V1x>4^|O1BLmQNnQGWuis_L{(ks)ER_9&U*$!yAvDUd(8npYST|Yx&LYS_D zUDplCT6Kk2_~dQ)CBJ)UFi^pDHPG8@+LKmfUk_nn>V=I9`x*>8xu%A;d&f;wDDueh z?f-$Pz%>a7#R2uW6g;@C7UC}m73}pg?fpqm0#XE=h`Qg%`#n&nytaPW9!lcfmv*f2 z02Jwjj~=aJbN)x_khcc`A4eo^b$YdAWnN`9JMBjfrtK-npxA#+5uh3JU(z4@CpSoz zoPx9h|HFJm(}Sr0ZcDLuGYzwL-EKFKN{(sVc`k$*2rLRqH zCFVrr1_i@E<6l8LLIZiAI|=Ty-B5`m^Z%+$R5J39<9*JWOE*RRZ-9X6KVHz^*fUQ2 z(`EhEHm0s??$I~cRR0Ba@qbx%>ccuq>#rZ>eqLY0yKl!qu})7TkOHrq$fy;z+9>fo;DPy_JnE#V%1?(C-#(`$>+{+Xwglc*x5c zb4u`?+Alvi_4p$vr zuRactDZK(zKmRpZ%bEBap<6f9g|&D5`Ths49XtM{F8u$zE&k&G&}y>T5-6p4SpoSK z;=jPU`Iloxf8~Gw=x&#f-$N3PAGx_c2+vo6JBmR2;`2qe4tF6{FgkKfaIGAO0U+Uz zQzV;5e>WMqA*oi&_Sg^Hkp;B4HLHQNHaPola{FUXq6=`)KDr8h)4*rWw+v%<7)F*qV+Rj`#j#l_~d*d{3^7Aa8{&@l3jOO73TNYT-k)oiyJlEr^s5hREDxS&@?5=NZUgOO4^r zeA0CbmDr$J1HF^v{i6#hcGk6-NDTPV6!_s!VEfbA|pP4xe zgn|HTH6XE0!a+S>Ce&y(--0gv zSnaz86-X=ZMB`Z>s~2Bh{mQPK0>|njmg+B$Fy4(G_8>i)IG?a+O2B_~|Ej&*bP4y> zgaJKq4i4JW^81PlffP36qd$u(j z?*8NKnWS>$sOG*)03Zdf`J8Ke`4T)7QI~iF|B{x_s?g zVHI_#GfZsgKvE{y3{-z-7#dnVXAjA@hUi@Dp5wr$?N%(8{YB$1e*{YinzhYiH}eovUhLi zqN+B2HtmJGy^1)rnar*%grJVWUHK8z=gLFJ8s?0y9y{{RqrEjU?HGcZJP){j32@hQ zDr4_G+O_9ZuR?6UDnrc(>W|7ZvmQ-@yI`N$l>lEys>`&g0-p9L^&1q1>6ZW2Xl42|s3vVZPCg zORB~uG(NO|>konzEMp=-w??+g!TOEby{vNl>E`ni|$NAG0NkIC3pKQD@*p} zM@`5d>Y902a)U_DE;;ayyuzpW>QRXy@jB-47P;enKaJ7Qu4eg=IF!_bnXgM^O4G~p zDM?9(nLq6Q5b3Xnio0K1$x};LG--vqxp8p$c(!w8QoQ4>9wC;VD^J>ce3d>NJ?|Y) zEsqbOnr`l5SHeuy0zLI6cID<(g3K`SfS7x`Hsev_9OaAW*Cdrm3t;szaO@o1{hsnz zt;(e2TgVySiBh*98rhWyaO`meoyyvhFi8|B0lb+0u%;V83>sCR~p548-SnR<=68Smb~Pma2Qx>Ho8Mh?3Oer$lQ zcXNP3hdz0~hxIXiH1LjG%YbMCVPA&iOG#DFAbWiff56XbZxuuFDbf<9eO0819Qkcw z_}L`^f1DC=c_el`(*ev+upq9qCR@A?A0945+PxyHV<@80hv1#r+b}2CK;PSdQt=D8 z<+|4#yI;qB`>5M~p1Hl^2E(dxQ$}%~d(B54?B$tLy$ZgM9yW@jsp``uG8WIrmwD&6 zlq)dzir*gpE^bOlUydo*uqctSw6|eiqG5TjmQvtO*X=rP;PtNic~;PipU?QrEBi^G zQ1;1I^25>&GjFg%3j(6$>Ru95+J^>62^+FNaxF{EY zf&9D)#2j{|-Dtfm#SF3Kg-R3}T~Gbh=()+zGbWSdD61DQUd+l?O#)>QQIWG6;N2jc+Mfd8uCmHdYYqAY*?O8wO0G1ofF%dx{Z(KHPYwU1AOx|BBE@XB1tz z)p)>!NT7Z@&>C*3QTS;g*#~4962Bj5OhBwM9`t;Px2++?mavQ|nDN?ax_BC?KD9+L zJCWUiZWK2K7GwYD13?`{km%rrwk$e-I%usk*8ph~suI1?zHDgNDUQe2ol7#XTs)rtwX<-Y1+ zaQ`HKU-|lC>ea|zMC)0RH*9SnKiBka3ADa+fJ02KkRzKwfax^mHqbtoDVc*L@Vrwd#H+ zq~b|$(LhG)9?&jyd9#*yvc4Fi z>o;d2Q?QUv{)&PGs_Gp)W(`f;$=r3aB1ewe8Jg_)#m4)HK87Z44%W5Y4nfV3E2l!c zD!FbC-)Bnp(2y7)m!Ypy6~reRD|bQVDhOt4M|Dj|AjWfXO>*$tTxq<^?Wfjn0QI~= zmp2s4Vu5>L_rFGzbqG|v@wIP&W3Au=^(W!|#qfd8<@p$oCKG0++tc5InCD&)GRH%9tAN(*p&#+1~PG8gkhKMPh0Qyy>7Aoui<4(8R}`0DYqKJ?aD)+DHt6 z&J3wLr>3T6gBU?%gBQv^j%Nbvz}E0wRSC?7{A!>c82{Y}U;A8kht{wNftqMtfvSZu z)6Kx~uAuH<1<7qCPY_j)l|w;_uskAiR4G(?qP9Gr`bdAQTwxk`DD$kAO5lkzp_XHi z3+wkA>9e3`z`KLIBK@o9ruaI<``XWLQDjPF(9br2PWnoW-0H&7Y5vOU%0lOfp;g}B<0d|!(;rpB@3+e>hg+1+^$OuPiTi9<9A zCGdS6#UM*|oFz=~ZKfe3vG|7!9zE2ZDs@Y+cA4vI*ZTTuh;8@ufm3Qgb;sOwFHfdF zFjbC66OXz-malX52BKmZJ_H%4+l)kpKj6yByhzF%KRsQn4W_(b zES=Z?I{2~JrKduCgm|AY7^JLTB|&NK?tuo;){WuTSR{>bw;u&MQbW1;uZ#;Rz@eO&ICdoX>ZPSo2jnKox_k z`qr24V1NT-T=$Q9?2S?m+_@VDaM^zjEX+Ojz80u@?8BA=R^chUA1ua6_@I|S#nv-{ zfW)Cx56~(1#Y-4@S#@zU6(4eU5j?Of(|%{I>e_hYmXqC0Y3$~ZsAd!>&&e{SbeHyfTz+XF^s^r z*i|n@1}$tM0g_aW=CZp#>6dZ!qxk2UTDAa>Ul;AJQX#a29n=y4UUB}n3SD3&&=ccK z4dJJ4G-Su-X*5_(u)JfQ!g@8}*^_qN<)3?rU`Y?GuPp@~N0S)$&8Qkz)gyv9Xi%s1pEs;-_cD&LJh4%BGlfd?(CN=O*SR4+hddf3SGmtIy4E8=L>!9 zFzeO_GDQbS1^3Q-QHAu^0WS34ppibP@RY!+l|=|tjQiTGtKWgx}@>e8BAPY)`2#|ONkFf zv;1J&MlOa3kQiyroTb3z2`Tv@w{6Vl>! zQ~+pSLa=rP@`1O?q0;bPE6GQSh5}3Z5~`()X(G}V-1jlwr`;xh2_^AP&Zvw{H}_=W z;uf)%8PH6pA%n5_PbC^i3L16o+S47>5{=xCYe^9~jn10NS~tk^z^eFZ5~M=hu?t&) z%VQ!L+_tDDZ${LLK5Q?R@X*G=_f$H@GNmJKi5qGu=^Fd zh_dK$cKc=kJ*?n^z&iBdgXaXwQr@2N%T@}6(jq^60GMG}d47wx0zjb((-0!pzk3<5 z6kdUUwSxC&f!D8t8<5u;eC@uig;D6Y8_V;*u4cU+Su;dk5MhB?4jbt=dFMa$wU-s; zs*mPkVt2R)PIeb)%h~px1o?Tc7du^vxRymII4P13*g2sjfa4O?f|UC{#mHKkG8U)Y z^SvVh1Mj!qO4n86REkj=O%ga6y;u15aBt=P)iCiPR>~!z4^u4R+vB~$RB-uyVVR;d zWG)sz;1Mvv5-vo)0pv|sp6oHtNWbXVB1%&eSNT>oU|6P zK=k9`0>x1DuaOLtHaBi2BC2HPelam%PymgTZ7FE+E(qPI3G`=G^&tqqe7+zCdIb0Z zR8ha07%=zAD`2R96-=v+oHyUJ^pmW+lxoe}&h;GeOSl8E{#69U;M_DC*p=Jr4gXgQ z%nkbr01H-#2AFsC25cv=tsEM%k`Z}vEx0{q@Qf;<-1=IQ)>Z|qP=9aABC8VBSKdxB zSw~#UN+|HW9F4gX>T-@{{^IDMW`nAi8<+23_X7|W>I()IA1@3U{p#*(!(CvouRX#K z%0+7*>>TPEp0Jj|{@;kQvoTvXi2+WMJ32dpVOMBkl^*b=v2Ra!Z$8S&PxG0UyFe#~=mTY=@+ zUfuVCbjGcG-;M$sf0V2F^ECba%#v^8%z*hd<9CL)`Y@uFdMiP$FY#5MM$a+uF$^9< zM-YtnuHzyq1;AYI{0D2bC#bRi5e^O+0JL_fJ3Du5#7A(mk>n8xy_hsPk;|aER}P#9 z(XRCu+kGNX)ge&xy+9Sff@`5s5tK60YgQ}nv0umS=qL!sYw`1E5NN&Sq0>ch>*Yg( zH~rv5@^@h{#!c!G!DW1y2{omt(1kcu2kCqQ;!V*{7VDE-F42yH2-xw7Ch-D%09y~{ zTZeDQ`hqFf3#ZYYuS-s_PZAR#oehXMbeUP#FlJ~z7W&o{Ow&h=hgaPKdH%ZU7&9Px zm;j;y^(#x5=sOOUPxt>lkZP_=b6N=bID#``md95mg$VNd^AB(%u98?cUU z-goDz0Vb;QJxXd%3|(BA8CT_)J=dF+o=yp*KIj`L#Q9TnUMZa!%gRv`BwGoB*9L+U#lu2LK8<=V8ML4{{j*nrXk}Xt+d}67#XT~)+3hV znb5Z@QA)qBv}D(s9w4a#jQy5vYp$=uRBa6JJ^);tRYK>1s7~$&Y#UzCLr@1~#Pa-$ zpgtSl2#f$T>VRg6n*`6?2I@Sa>~|t#=BzmGsLnj}2tX>ZM1UE;use*Dg2L&c0k}cw zV+I5Xg);BG?Op@K3uCMceMO*G_6r&uC)kcZ&GlH`HNIq*rtikeGzBEmYBbRdMwC^p zM_usuj;22_unuG~a*bZ5as+s-WGR{8e!~fO!)2ATClh+BH$Gd3v3Lj6*Fqfhc2)@^ zelXzEAQcVura1OnEsu|@L>?QgR?9mYkbHuWaGfR=%!sNMDAtMhnB&mRc7Nn#1~8ePQTSvu0-I@j=1 zRPvI9O>Nv8hgv}Pp@CG;xpmTyrOa*YHD$?N%U7Nd0hsmr!aIHKfvM8~X4_o1MG<(c z$Nu%z6dYm+7nn~oD7hYq2o-WTLE;tuVXS~cJNYgEk_2wy1&^AS`mscE>N5+zd z26i@t^J*vIbO1bC8w6&4zjh9_Jp?8qJP+#ZiRKMA%rEq{Zw>pR6 zPkyK0TZD!4Ja<5HnbqrpPrKlCi8E)`yCVs zZ`h%(71|!t>M8mFmUgW*vc%NTp<2Hk)eMtFDjyfUxJo1x;3N=UxLKdUp#mUCWL@`4 z<;gHBb!F8{5ZtjUH@-;lH7j+4j(FxHwSU|j}9o(PN&xav! zw5AEu3k-%swI;a+a7rJ*b(zDJFJ~0290KgjVNR7anSf-Iks}>AB6A><$EExIrAv8- z9b3u#lR9psQd`gE>`yd#?AMH!_JT&9*!J@-8c_wnoRNCBkYQ-nO8pX}`+lo4pknX( zP-|No;yI(#p+cX>+xE#9q6?=RUS@spNVNhK01DO2x}SyThvrIofEJrD&cl1#l(>0< z^Al8plu+RdT@iy>B~1X12e3SiAR`Efl;CQoO#pIxKmxGitOQuRv&1Ga8-Ef$FtA=H zg7(C#AJ(#wrp7HdL8zK1Cxye#8GC)(QVrICX?I59m{9xDIW9Sj%dbd2Kfh;$eDM0VH&rp5q0(el`WssVl~GcO@GL zYma^Hmp8&)!=fOl8=x)_sD&d0K7puSxt1ZnZBd;63T`0%n4t#2f_qCq?UETVD3Izf z-4eivN(EfJ(*~e$G-zHmP@XtgK*^dP^!vzGgMs+t0zH=Pb%}TG@$Y&*Z4$_e`B(MU0Do-PvtuWJUyezZ(r>~tS zkdi>tHlD$+XGMrsoR@!%??=F;P7E=x(Cc)#E=7;VuXuNOI`lT?@5)>ZdIn zcVwTv+*Xd)wF>C6h}!)9u&89gfg=|1wI$jBL#@t?u@qOXPRpa5qD<4~1eg4)`Hc#<5j%U#vc6M2T!#sg z;!?qpyIsqNG0cTFXGC8Awu#uodwTndX)RnfRQ}-YEy*Tc2KPHlckxlLC{Gh_*Z4H5 zykjO8l_#5QuFWW#G*x~usF>Y-|Hb!mKnCr3$GtkS?vNKARmVmc1-b0P$mU2~v^S-p zWj~h{o{#G?E?UXnhc3n5VkXyPYLZPUoQOfHxHc|6cgMLdcZhad@9{-Agf3$;rhfdi z7a-)?kxzBvGN-MGFP6V#dJYpZfZ9Nr`qwkspFE#x^&(Gt`2%Lkhw>vODbcJl5@Zvbn%8aOp`_~3 zp)#RI$wFTv8~BX`3I|VR(Nbr$VRhHMkPw04%R3*J=w#%+gmM7N!e6LI$rh|6Xm+ce&t3SJqbgXTzKO^6H zvab$V^fk}sDDy?}E-#0qm;@)(-q>(YkLOdOJqJY&a@FkKf*>+qO^JHCMBf8v#`kHQ zJF(O6V|5jJ7T?Q-z#_#~KJhy*2~iw-aHFK$*G@DZS9Ndgt1CH-{jR*;-=n+oPJlhV z5*rnEuS=*e^T;GXw*Me0WnlEzi#JGTn?cFrLkLlImR@Ezhs?`AhK z!r?t;7k9go^&d3wQcB%iyGCMdjKzs#`qDN_zL>{+`%%(KzJyWFllAdMaGAb_1DW8{ zyuWnN@BxnZ!Wr67IVM0%&SiCFk_#Ri5nw)I8fQA2rj8+cEIKr{yV4~Y%8S-$_fs_` zd&WonyTdInP3I50N#9$l#&jHFC|mW+0M%$r}giDplcy#!3deWqaoGaF~| zB~!7pLG=-r1Ho^85LSTt^uu=W@K{QV%i(3xu|osqOBZyQrgj4r&&j7G-F=QGY;eh%-rZSez-sMV>mCI<~^E~)fwyLWA&Cp<2vNXTv3@fK#{F{aYQ}`g)F8+7nx)PP1eWil* zq&!23iOjtCqMSRWHyM_pyI#$kcu}G(S`9}MB}K+=RI{C!3Q@5e6{Ae~3OGH~&293G zPc9E+3~*)FR`JCK$#>QSGFn)yXR1yI%x=D$i!H!VKFp51&_PRJCv)F2;<{|IBcf>$ z%$!d_usQF|wJtl&qce;Uu>s-=yq|U7h>sjT# z;hn8LtyLCukoBkoGa*L0$Y=f4)2hUooU>XSf!#*R%N7NFA9SOHdHnq>rsshKy+fJu zh4aB(u}0o~4w;vZ+n(;vPpZ#z*nL+*WN9Fr)~&e*#KjUm?&L!@9j|yXb7PGpO|oHh z$;eNEg29U4?4(!1RVmTRox8W5Ail62@sMpUW`5g=A)DS5Ou&WoY>N>U@ThrC7`a;? zns~G7@n)@XI}3N%Yk!3cRTlz4PCO=!@<% zfSNvZOLw1t3btkweXM+sgg2UDVzLw$40Gr)ON*A6Jm}czU!9+E2yx=Y=tJhBRHoAW zJ6$1fZ$HV>UhFOz4f7C9sf=feo>fIBW6f2-&W_{1wjYMe_BG}vsN_fAsY%o!ZR1Nr zON(r`6=|wsqm$Si-ge^qy$#r(h44y#_6(d7JHg#31=Nm`usB|2WZtU2@}axM?p@2H zD{Yhc%=?r!+2wrD5pO%Q`WaE5l{v-09u(o@Y_ADnvL0bclr1i@e4P!#2vKB#-Es;~ zOaZ!s@EL_0Zzi#+;%ePc7jXR;=pOZlclU$N!P!eq*|D&F9HX3{6f|opYZPL=0$Y9b zbq*^EiC#C=Cz06DS6TJNjIyMW4_v|b8~1SN3TJM0Tc{kxXI^w~5*rLNrzY!4mDIUY z0jluI){>n_E6L?L*JV?ZqS(iBB!4A`#cqEp1pvj__~`ioF1XXEdad{4U8`Te#06?p zv(447Cc#xIfOy!!>@tFZp$oM~Ctj}0Iy;9kYbnk!5E(8 z3P8R+ukxVPD!+dlB}Y>)SH)RO zkl2h|o((YqOjAfhjeW9Y!~5|a=8cbR1O;_QrzP#o9sAOCx|HXx%w@4JPJ0`M=vqjd ze7-cY$R{q%K23CKGs*3{Z|OLZ6BX0gi*0sSadgTcUT%>rRmM^<_o|yLo=cX(ss$_} z8{Q|h7DWhpqMCp)g{ACFjn>w>R~%RRCCb1w5*cH}O^Um-rxT|lpX*6m;3+Hu^N&Nq z@YIlL2c)H4+!O+^)DOD6V-8MA<4ly@rh`n?LJ{XRxErIt*=QH7gzfABf=c#$R_`7` zg5;zmc#k=ELvA0IO1k%+c_Hk6l#KN^WJb9U^TN0U2Xie z9;9KXw4R-ISYTxniFNe}5}(sT5sgpSmL(tQvmZCvQgG;|vX)v~xl0cqaH}q$&HJ(q zn|QUyVMmTB@Vl2I1JmHO z-rr8!LpwVrTvJYN%l+Qk`ed!hH@k zqzVqm@Q!NaOY!m??ho6irhmQapkuqL){IqdZPf@RHbWvw#g%k2!3=kjpL3{+EvY+* zO>0+rc5uN+m?Mb?QEVJpNao+|%T@|B%A&o+^4ja;Jm~5`t{WLRSPPf8-GM4z6@)Fy)utgs`g#Lv54@>%SH&G8OC z+1g6rH>KqF&vmD7K@b*ATTBYksp+S4-?rBrrN2CF`;IwqNB-!KVE($k3wb8edA|p0 z?;cnf5G_1(IVlhp)*F_pAo7k`mP$9 z61k}H*kK%%ASK3qC*be zUZ$vbEv)$u8Sr{rturFn$fw)$zB_GW+w0D1{zT?quoY35Ok|Rtx(=40u1Phg?UNj> z&38iC^%t1q%^asjcUQ4xo?-r^E6vY!(rON~IW{X6cEsR(ugj}uSaCn1K&bR-r8Mcn z=!+@O;1lA6k7+Bnw{6=k#It9|P>1qiUk}qgD%3krS*Fl0g2-z$#Nr!OJo?g{9K;WD z4PDwAFp84aG4S-~gC`SNhY*NjnpU>cd*;fU=a!?1A7P5`6zyYZ9B$EGae}{0DL?r_ zvJAzX^Ke`o7sZDd;*L*9(i6{0^_HNzvO1DTE9&L-BptMIFK)Rut(@9PVpI1We;W%k z-RChZOmtN7Wd0BpbKVLO-b<~;W)|_a6;`vE)X!E6SU+)}iCn(lE0cZB@RJ~)T37t5 zJv$D(7>2`pECsMj%Gq}p_hqkGc456#oyHRrvxpCRQnHAb%l0HK0E9W<9Ff%C%p5rGr;lCPAh?|^`(gVNYhX^W-PBfYViGQI-uLb$FR zO5e7py}8?Nc`Ih@bYpai^i(y5Gecs4!FZP7^nXcm1 zPvMvjeg=Vs|5&u%Z^)4n54Y<9IF?J_sW%$4e1_pEX|g$X1)sPO3sbA8wG588>u#pZ z_jtDE*j$$ISmD8RrRPb-+GM@wrKK>>jEA0`vmTVabjf}3rN`<-Jpnt_Pq@gtWwNNz za72!wSmmi$(R1@_odT!|b+xNvL=hfMaZW4tP_w{MW%`z$jfMD`RsQ)!OJuY#r9=5q zU;r=Y^H2HLK3Z^!2O;}qI9}J}-{lz90FcsN`q%K_FTgeA7LbrwMAg8(f5XR-@6&VP z#w2nX6ySijTbOKcgzlF}!N{tg5^1-j8IT4n4Ad`(!d+??T4rwB4?=Dk8N} zM$Zg=WRk)P7AIz^*nW_IJAQt%x(m)CS<(L*dPP}dx# zAMtTL??VYnQ69f$eKkZcJoKQ+1z@yfYzZrYT#lFcK{=jV;~A`0RqOY)mDVR!w7XlF z;rxuF^qDWh_@cX9dm1%GUvQ8RBhwk@*;$Jr$&#HAc~3}fV8h})L91jykD;6c6_)XV zb?cQlfc@%FMIKd?ANTz2GkdL?$5I(bht!IpTn<_lP|HcP4;4Cr6g~)Ixmy#u(@k2n z-C%$oa7yGd`e#y+k=P`%1D_~yw5ghnG&EKYm(v*SZ2ZAlT9t&qGoy#Z$m7-TcYB`B zwxi<#E^~2wjW1bj7sKLeH5$)EF7VWbxoVTXW60X1hHK3=dAJ-o4^ApW`SxAD&C7K; zhM&vyVComvA@w4S7`X)=vQZi9l@s2NRkqezIQ9K{Zk7=73%5TpwdyH5w`IP)L_RhN ze!3_bF+I%5SbnpxZjhWUw(l#M3Yv7G`1U0VNo`EN9m6DGmy;5i`msSMTJpr`;}IbY^Y>gzPDeC95;vEkKHBq?QknMBoSPf}rN>RDf>!LiT z*Uh?x(j}*Rx8Dw#67R()KKqdOfH@pXDPC^T&KTr(`P`qI(VqFn>GIzDJnAjzd(~{Y znV%PVhW;KySrlY}_Kls(V?8=g&ozup=_F_xIy#-m21BIy@T&?9Ck>W<2tTLAxdUWa3kYh& zht~NQ><5JwD8!ZzHH3%`NgdM>0uO7?{G~Jhg9egtE&y!8bm6 zG}Q?us7}`~`th37@tSR0gIFyf&lC|)W*ZED4iA*5zY+IrtjedHF9EfoMY9oiwG{%aX$rXlprT%VN^h#NdJLm z8N8?4%shMS?fVpYE_ZpCtPX4PcO8t(?1s*fK^HVhEp8bDU;t%b_Ovoq*3*3|hoqNz z#w0gmMNJt-K}yE4`iZT@v3u)n;(L9WZa z?&Bets29Vsm&kURr|FY}@XkD!5ZIBqQ^|8CMU<@U=+y|O^Bq*;k!SYN&v#zXPYc}X z!w;gyhRc=V6DwI^6XNN#D9Q?8@|jN!w$J0>cWp1Fm~{_fa;gypy8h#WQf0W`iQ+*>;BCKGx$KrNXWN@tT-;M?yV!mfeT)WGGSS^M8^IWVQz z3s^T=jCS;-urn`g+gflPWUv;s#VCE3aU-01t2wiBF+xUjAxZ`$IbRSZI>PHSw%ot( z{cU#}x^HEXs!bY*Uc`Rd4f{k7P#YJ^G4bN2YqS~N2Bpr2qGStgoc%$ON#qq@|1l&~ z32aK#UR#iZs#JWUVE;aj*H=K69k5yhg#@1y;r5c8;-D94Atk=gK8%w?NAbvvsXjoF zP^dmJz{$&V`p8dwTtjSeBK<8shcb>1uEfF!2`VK1`!kPhPyp6s;v+zBIKmFZ&u4au z9HMWYLHXuQs9nzg?Bpo&Nz-lI`&#FycGfFuE%l$DQU!Z!j1i$cY7`vGp>Mi zK0FYOsc52Eqg^|kcJrDNV$E?4`nKwY8b+6|HA68}l36(|MuJ}bkIq~Y&E>hCL-oO0 z^b$UoF;g#~S>r4l#^u0yp(;lcY%;(n{(&cU?YLs9uK|TP|IoL5TtA)Dx&ei?s3?04 z9+dRlWc*fikTkrWjvL~)YShoI2f{T&QIzC441)CQ|8jX^Z1{6JRIVDg z-T;Y4BL>eh4xbQz4^=AaxMP8@%2{C|S;Qgew9N_)b=`NAdxh=M?m(~fzM@543{(B! zQhu9I#I|wT^xq1C;3z6E5V(i9{E;Tp?j=e^O+I1_f9LZ|=?H`Zw}7KKfM+@}Kqx@M zyU$ga!%kQ#Sn^R2a=_Ru4%zR-D>@Lg2G%yZFMC_jWt1@J4AgKxmkjxT)GA*K#ui`~ zhC>CP*=^;3TAivD5jFYUp=ZPG{e9~E^RJaz91?$SXK{{0=efQ1CAf5#ZC((T)SRB% zUDoYdw?G-*bKFdS9DkO}p7TQ4myH&}6*K*#Uu9rXRU3VT4}SB)afg1N_c@hBY8JRv z-kw`86h6EM%dWvk*U&hBH=Wo%w2jRSoPc&f7T520mX8xMHgNb9m9?k!32UHGLlgIA zN=;X$h%khT4C1|`;mO03E6&5sro9W;InK2Z!W z7dV|tcIC};?{|_magU0Ya>GX}xhCrpYCJ)$_pgPezvzU5aP+1mT5w$4dIFi7nQZYh zG5OfIgwiB3=!mzM)y=(K=p$Eb-yG!n(1ZrpdJp$3xkp$t_FqDQ&;9a02|W@WbU38- zswV$72LLbaLaIG@K~ZRnME0#C$Dn^_w8p9^Y37gZq$$9nn$w)!$~-bY`nzH<9o2yNi8_dFvMrCzWDde{i67li&03@kvK>>qSq zfXiGocb$8rM?&J3>wcOnVPuR<@vxedj{A)x3n*dJNc2^NMT64dzUtU&bfn_1SJ<2^h7N3j8T!gE^ZbA-xnq%3~|SR>)Beo0lNxXfd7s*3c*KXFl2kn z=iM+c;tjIoK3<)@_O85SKb1pAH{wvSkEN;G;fTYVL7J7}<+%c8C$>suIH3~#75oqN z-@5>+VlY;b0`je040yMV*^1j0%bZ%z?4eShxd}o*8lY?{=p8WsVGJqfe0XzI{6dry z>K!REHuf2! zG2j^(SAlwJ85bSSK|UI3BeLC>EzAxjc#N0pLw~eV&#W(-uvA90r0NujO;QS2&3mbg zU$WuV8d+gb;DdhQhB3zYh5M}M*gExs1H7Y9&GPh|Rt4YM3aph~EmRWQZ-^-+U7pLQ zC#8TD77QC2-o=gj&}ZI1+*uVJA$J&91n9Z)&JQHa0!QNpk?MO^S zi`j8TKp)g0zwJ9q*Rb$acLU+!F*sKS|29(bcP3sBc*!r`2i>g6zgQ(dup1P`yf)%W zpjFoS@=)1_n*6U7CLuE6#FdYHoN0w7o55Ve{E|0jFi2i%G{NJEWFYJSl+@qCe!)C_ zXppc^CP-JsF=M%U7>NAocuey?2J^^auL!v$WslZ4Y}GN$=)pW`%gmfeED_E8rh^F} z$;-Ze@gR+t-m8Hb_VTy+(Qf&%c@Y9WU!O$79K^7Okl=h>AG4?31({t+pD>@!E(Oz4 z-iv+YGqX)Sm~rV)b48r;x%XUS&s5^`Q-2zp2XaYX{RDqGXc_ur$dPfesvc}|k6`7JC1n4V!mrE`y4NggiUciZ$GHRZRp8!@a&FWC`y_O#m~ zXoAFDJB9`uPER;x8^52D&&@k&FcVR*`1B(2nSFW2mPxWp6ARPW!yXePXBAkM*MqT? zwvJ=c@Ko-Cps%GMlv%bT^jbZw^=xxe6z{BhkO+)PFpuZNMN_gatQAR}$PTeWzWF8r zins~!2mr9}?@tFKhM>MTg;F`x6#8RzyMn)S`LOdLt(GvqR#Q-g{A>zFB7Wf1y0Ou2 zjIp~cI4i7wy+XD{=}0K~(EnlYP2i#4+y8$>Nt>cgvTv2L7ReroC@rU?ED0moLeXRy zOKBU~s<9L*sZK?q7~8at(a?lS_F`;dXe?ulnfYIz;hadny`I;WwC>zz0S$>UEy1uY*UQkF?wK}p)T}*8PpXuItV(OQ7J+&psymT8*9jtV5<4@bh@^;;_{2WSHo)L?Up)12?CdRl`M3Q z&SKj@wK3Vq_*D%tbeFIOTI|$w!Vc=IOb0*Cj_K*z7ajI?yof4 zUwdI9v)Z1B_Z`a8?eCJj%WZoWs8He>pQO*xWDRuDHAtL{=&Wq+1o zNOMpro}LDwtZ58C!Rmcfj9au6>Q%0U`Fcv#DJjp=E3Sk`8HjcgU;Y6u70q*{IW4F9 zR<%@KadAL*2=lsr{84U_L2BKrH7gP+f<@sGjVc4rO&Ey^{=K!*svi3Xn~HCD#Ib0H z`NLLgwNzM%xpMUznl;?1Zm2sTPV-@nmef}IiHW_Z#5;WGt2>WCxkX-cVOG9~`jPP9Cmxr1TQ{ z9Z(z>mcC7+m6~&-8;TkmSb=?zw${{6O>vJ#P;ru8tFz{zt{_xK<#Sa-jdO&h&bu?O zPwhuVFn4ZB-kw(CgWA&Tm#tGcaOVMPe6dtrOi&9}%;0@Rl3umFX!2ap>T1>i##QHI*ChOD|hs zzI4Y{DN%vz5t&4RwU2wR{(gQQ`m#P$rkXskcdn)pqsjf$|tK*e^FRvpQy zewQNjlqP$oU$wH?O6^mEc15PR57k?I$=It|kFI02{fTqbb^G&5f>t~dcF2{G?@}dq zU;|Y#(uS018^_DTmvYpfRO8z!EeHnnA*ITy2DPiwRDCE69K#Xw>gdfTLE3>uR=F*X zYKrR^6*a|kYnB+R?ps%BhuP))A$VX4E4ja;-eG8X_F$_N#z$+9k3Q=WyMi&Rx3k== zD%$u7R>TF0o+(M#g1dh^=mqB`VRgPp|J{uTXF1r3+|TC+jQ{oYYn zZ1#I8Lv68Hmq&ZrD)I;WY8M>At#BqB$=AJGL@Vs55pH?FmcK^$zIn}n0zA3TEkJw= zVuC`f5Ma8z5}L8ZF>wc7Gsmweq9SuvmLlifPr%b-qdH`At$mfy8b zVA2(zZI-MmNI)5&Svt8cQEYrXC+F$NWuY`-4dG^Vq}ctM5n3m{qk2|OGmJ3z82H4C zX^)2tmg}k}>xlMcqk2+&9fMt1FK27I(PwB5@v{OyevHiBKD1dJe|0~J<&&taVqh3_=7exd zXx%UlnP`Fh>|)PGR)0}Gnp&z`*?W7Wc8&M~Y7qIddt1fa2Cp82vYHsfR&V(kMda!i z{uO5k2E-D|LY&<}mXLDJ=CAbGs#8_MeIiKfcaYlE9NGlR zf{S%?rftE_@Po;5G&R0ZU|)HP>vn@-={A|)QJXriEkEmgT1PDbWWr z)7+xhF6B1pD<;yQPKy!_)zp?X*K~fmnAR>t4T&n|7J?4HG)4PG@W{uMj#nw!Yd1-R zo-R5g&Bl*|*x&UWDzV6iP&K@eTP8Sn$$oDFbNyi5hro(!wh5IlGYD9=-|3=VTbtc# zwrHy(8AS5%I}dDLjLxSS`?jEht|)Y=)XiA`2&hU7XzNn+*W2vE+3C#J%m(E1LnLYD>4=lV7EhyS( z)T|QW-F#s_EpsZ`Ju=%3yOv@wk}kfKv@69ibo`N!k78_05p_Jb^0I~fh;ykQrPX## z$X%U2YFkr`M9A~2-d57K-k9-1WpSIcshANlVz4IJVqH0SG1{9|C{JzIJqu0KSbE>K z@Ng9KS!7_5R0AsIo_Ou4>6C#pk_(@o7t;8%t>tg`UqIFb@=*%=qolTJGu-4AdGn>} zLl3a9m9QM$TdUymnT0F->8LG@=kPL}m+Z<0J77PPMy)}eM;H*Im}NIPAJrtl_- zfcxk!T1sV8zFkk@PEaDX8RR>r_-Q^VE(h`1RJsAApHK4CLAigPEJ?zV?g@fRpa|db z@?7Q47=!)q9JAF0%mH7SZsfg3x3i+9V1B^ZgLtq)ltpJ3Mb&3N3%KMYMZmE>7aoZb z%0ni3#k3uDj`B{Ys*b~C_H!W&L=KEuCewd4n|~f76t!lDQmg#xGrVzL)@I_-wL26( z@``zo8{ZH*B_QJXbm2xjxoGt#Wj+QT?;Jc<2ZnUq^f64s3Pw=P1l*sh8z0jQ2c3t@ z?p28gXr;q@8CvLfuP>h&sa-w)u=}NY1`BS5Ifk1wPB^T0gY%l<+*I}giXHE@4t z8`KBEudKiL^6+9q(Lw_)ai6^KqAgydn|z8meiSe5g3n=%W{3Oxw3E8qdI>kPy&U7- zH_K|@^UC`eMH?J*jxbx=k1A;_xA)HDLIaT zFJSysn_E#6qfc!vMSM4MbM;BZ^u~ma29We@cl5cSZak==GS3g`226<8;gTBVR97T^ z$Yp?kp}thMpZi*(Hs#`@vb%}8uk8H0nKZAUzS48|q()ff>#eTmu1eCWUv~U;DJ|px zQ6R09buFl6j&|c?tk_s;Py;a$54i`% z;ZO;f(2mcW8d+o`r*{|BQBNu?Mm(D8O8RIGJ{roULM(FdAp5Cp$K~9u+6042^c!S)lemE>Bg`|s*|G{#sFr%n%{bLA|p(V}a zWy>%Xai}wmdeToT#TNvR)0An>bms^aWm5V>oT`9>?A!4iSv$H0`>mQ$aWZjIZ z3D(9Gu8>#=O4T(V)1}Q|`u8fqcTz|J;$hyXSVRn$;I~%e)$ghYaXO@798BA~RP?)4 zHI|d2XTp4oH;%LPXDf8L&fQ&)k<_KG&gB{e6)>7=Mxt$<`?4FxKckqJ)jI;+(mI+; zi~1ISOx%C6Z@o{+Kw{m&XJ*-_#YATxA9iPyir1@X9PcX1qL9dW7A^w%=;vi49`E0l zSl1Di&n|*@S^jwYJlH^AeJ@UWHQ1D-XFF1b6OYaQsplin~X8?w7P*63+_Y zKMgjrLz(9vazi6&^pCpPDGw9EnRit6ypX;!9L_ucN=1HJQgng*W!csrgp`Cf!pwa_ zOW__oMd{2JnxEwWgh@nB!BXc4v}jcFmB9D!gl>{m){#XIJ4DDlX%u>fBu`$Fg*|4u z2b0;UmoLonQJnXAcX87GkrR|F1(rAV*e`XS8t2=jEn1-dq|wFd15C|ggoaXts^Lve z78~QFbi_uEP}s#Haqftz#kTNZru%Wz*W%iu&wnc){-XIl1lUyj&8&0sU22D7&UAyd z>A{L4i|-NS;rFZOTrFZ*B7q&Q$VBTFHO)W?4?kAK$Z8}nmiJL8ynJCV|W-o|yX=NE@cgHiUoHDJKbQ_@Nutw|y#r7Mpy6oXV+S5O$YgYo5t<31qBAMjRZtjz*d)*xk*%1h?HKyb&ZC8U-(;?zl-$$4W?gS} zsTRNttJHRTRw&DO7U16~$AA-|eeq=gz*;U)+5tFrgj}0ZK6@kL#T< zH{raH3jTvhlrSLv3}%(a=}N{Kr<573E(! z)*FXn2D3szi@qkex+7~})>_^Ef)e~#&a6uMw4DtGihI_KFG11~9r67_%|FG73{QYD501b*k0D7^tO!Vg#Gc!{XQ?g1L-(B>jwa>8&v>*!j=|0iU zRZ0@iDt!|zNM*YgOS4_8Duhrs`oL=CpAy8nD%j^!n(9@w6Y|1!{@0MaG-uyTWZ0FP z&tBS$?wbZi?4*mKJ`dvd%_wzTS5rLRyA#D|nqHXgNE8X8m8PKkHnKd%ANCnnJ1-HX zeyyGTp8Pz%P{vsHqsV+En-dOx4s8Ju_a42kC>|JPcN8U!_}_GfBt0VgX0)2N9Xig| zVD}>vZgu+O(j?yRo%0TjVdh5DT18 z`S#NbYKM#43zg%mjDj3HKBVaEtk`}^>Qi&*tE8JrKArX1G7<|QeP6{rehEKN+)^lI z$imiCRG*~p5Ny)O3Nn}8ZYF@22?ulkAIZ@_YY6`2!&wU6-TSKHU%^ihmj@^D_x5&cgb4}Ae`e&bA9z(bTo<2hBu}3ZidpgDy zfE(plZgPwLQj1fR(0HUIdb!?893&YkYuPs*J(Hizka0RlDg2X)4_c{4^LZ|s^bN*^p?)z30?Qc-T{p}U0QtM4_G0;$f;+l_kmhuHHamj<$+MxJb>KIxuR7QCN86!yfeQ(qD$S__~{DStrri+Z+l+1!1S_WTdfUJ9=(U8hbe*0$1XCD7qZ8uis4|mMNI)yfXlnl zj~%@=)&VviFJnMvx*il-T8H!JlMKmgubK#!9NK+4(UQ7PSzGjU7;E4juA;C<%c1iJ z*=!qVT|;i#ngo&1hvZQ91IH$7@kJ2*rL}VngSl70rs`EdT!1wTb+Uh6c~vx0k>Sov$X?n|l+_9qFmK<_>0( z`F_ybNUu8%Dc&X@eV-j-fo*GX$)F``vHH&WTPhw&^$X#Jn}f@H za~YDfGQr;B>q%?sIYHJgjd{L~Fw8V;h@M9+3v6`o&8nuHqsj@Pxq^5Me5bMn2aTC0Zv){y}UcI1PJcLNl9IG9WJ zs=A+L-$*=S`a!A1KDjh0U2WBJv4tRNd#G-Fo#1jtY{7-|Ga+r;0p_!bR*Nep?u3L{ zk2-HuXL||~WcQb>S-cr<*AIwq(P-1-L@2XBD}xgkIjG?s9C!fKloZIJZ$z`f za#Rn77Emi|;inkeV&Wj|{92;(&#MU+is5G9_lVgjQ{}HBP68!ray-a<{`R1$`Wa_O zkfw39eLYW~TJr~5cc1BL~)=sIYcp9@75 z$eaX*geBR83jv84h`|F<>-^G}R#QB91LTXH&(*x8$^1W(%kt*IH5V{vua2A_?br+ASKZ!N_1ez*^2^Q0?a_Ch3 zD1RAfOgwA#8j!U4na7$#G(da<(ygFG_BKy1FE9lq7KDQ}^A~R}Sc9Cii4XpQg+nY# zSjszeBsVQ7jWcw!V=-a$B);!aL%h@(x!+3;!I$v}d^!o@^FR)2;ey~7eQgU zqDRf^ulfgJbiR=|Oso{p5nHTG1#Kv((ZE><@z|6E@p!L{lF&)GVf18bFCdTwrMAf- z3OqkN9tGU6O6`YSE+c}TuX!<*YJoIpbKbxua|bb;7?#f|Qx3O;(d>buJi@r$y$YUO zKlY7`XA24~g~u%S`M|?tDa^726`@6-`##Kr5QQx}A(~s9a<{>hBONzc(B%FZ0|aQi zBoV!Mx~hvEqQRAS-vN{WbIu!nzC6SQ^m^v3#VTuJ490FTQwU6PMoX+AGr>@u+il2J z(q4Hh0$|g;o99uknxc92hJVUu0SeOJ+AQF10a8pH+>c=C1A_*PEY^O9N6k8Mt;Z!i z{iSjxmrdYm7v27VBaGj`55CfEiaGg5T0j^8daz$8*4iI{5WFuZuNsLSj7vEj@LD*T zrypH>rcW81CijcXFVMh*0a`A&n_$rLE1_*BVE}3x_%#W&`nv{;exSeE(DNTmOV;9V_`fGCzR>`hCw^&sL&@PyJ z9VtGg+XsP#a|s1|-AZaE|54wu#8V&3x!2@cSUp{poVk zSfBp*N4>`@g*OC0>$cI+s%b z^iV?!=Urp)U}Xnv%2QJ<9lb{GOv5+?t@T^lcZj;Ceqnj&Q{{N}!CHA%RhHG(HpeS> zU77Uu8*y#|HXG#?u8E`{T_U<5j_a+@X!P&kvbY>V@08bR>|VDHM-Ca|&S}Gp$Dj!8 z5luMXCFt?bWtDW*B)A{f~=ZLiuBw|Ew1ND;~08`?^>C+%(Q-HD`5*Ki9{ve}tdma>-z(SFwLJ_i!xK?hm z=0U!uQwV?gUn+bX6jMA8a3Fc1bijMgjcb?Ue3U|T{2yhrbywN?SFW{(M(FCr=*$+- z(zfLQ!ldwSe)DlaRn!L7?T?&O5hd>3l~ZLVj`uA7Or&)tcoueNs-$>5N~(hcYX9i{ zfmyljm-ZEUK76}dWuH&UL$X$bXIlNq~75b_c`@p8R8?$ENdST!K9oN9XI_DUDyOBnJ>)cw0Abc<6S}LsG+!%5xi`FCg zI-!@q<#eP+&i%3SiJ%nNiN+86KcBy;z-^=C(Kp+Hk{qK|w#*-^11Q)geyRAj7{liF z=c3kYl&&0!C$G49xz+E}?VHIh;~m-^Lp9dgZkK(dbOtLl?Og<9A<#E zdzFF@QwNJ$*stu4eLUH5?VO4RY~Ff+r^Z`W+`u^;f}o<|4;x{N?9lBORcstX9-b@i z7&=;O-zk|_{4q+rB3iq-%k&<0i#NV~5w5|zsInb?`op}Org9OiY0SsNx2ixANm^0A zfj^hcND-7g_Sn9P^V&oh@3zm7PLfkWvN|%n937I&LR!x#RU}v&xN}C!43lrB9)GFF z9;)d`a!XZ5_5%fl?UHp~TyCjaLZ!nKlw#w6eo;L3=}yPPS_jQ+0;doSn*YZBZg^kG z#q5!W4tNXH`%76_=>8Ih9W`7Dt+rY6a=hRj>XTLI{g#ql@qz@?t>j2&`hMFnzP)48 z`^Lg9>%}Sw8@%Md`x;6)Iw_J&Z^^`rP&i4fqs%}qtp#t`PiNVNT20>ubM&@_I-)h) zEOTnVgkKg(Z9AYX7P4KxyH1kbUWm9ycPv>1oU@m|nZEtHjZ?jOLOlcNwGits2xwNs z`Cc@MFnzkv6ai^Yn{Na7HIu1Zhzdv!y8+04VAGt4;=B)xh!@Wb!OVTTyxl#d_w!8* zpb9?8C~69Z(~0rsydaD&wx!nH=YDcz-?0nj45oF;_9qazd(ISR z{-s<8&Z=^?)xX=u|5l}TPQDwI?f)V@*>Cmw8rIqB!wuw0eysR~P2NsJaUGMI(3JbW z-L_o>9fjB9ZzOcQC)Do|NR=;s`JPbvo^Wklaq^xlxvgm{R47YvBu$b6-O~@f8*f^w zg+^tWrXE#^b4w>{Rw>Z$9yz0DVlPYCZS9z8T*`qfvRNSnRisCT|8@-LR%%I28lXRp zltOD=*W1St#*9Xi`!U=ghUalKszmRZL#mf5r4Z-Va+BaduNWUn8l&H357~~(>a^Ff z=~fstk)SuoP4>uAx3NEZv1tB>v&vbAwFOAgQ$+9^jl4x;F;d;D`Tg3$8ubp3)VZZV z^O~&BztekpY{Sg0x_xT`{lgpgOABv!Svg(l^5F>Pa5kn-HeZUgdWN4|L?c#OTb{H< z=#=E~TRPNOlg3Ku#Xp@Qxa@=XzSxGv)J46v82j5e&-?^JEXPsNLz&cdLkRA z%4lyORnGIXJkhvRM%$d^CF1w&MB|#cW&;`R9i++ybkFVhha0@_$EK{J?w*B~cJMBa zZBPwmk{y$|3@#^)c@s0H#LH4uxGW6UCvYdRh0AV9;ld%o1xYYr@ixI<``|cyZc8PG z<-@HUujP(8Hbt7#AD5bDo#YC0KN=V z&>9)-Qr#`&f;}>TS3*IfO-9LmBT-?4%5LJ@nK~BBC+^ft7oaXcTW-Q*zZH6}JX2!k=WpZ@~P>`w|CwwoU(PS#RhM0Zidnry>q?$4^%qP zS4cMa($(DeNfp1{*b@`CyaXv7HvA2hiz_lHQQ&z6Ps(oHA=|q0lmH-(5c6jnm_KFP z4xAD=3S|Uh7~xs`z$>!$yL^4|DMHXrA6ka?qLn8o6*a7*cFaJ##|{~*;+>q1ViuKB zJ{c%3(ecY*HW1kR7#@c|gbOD75FWY-@Li~W`}QI`&_q@nO`2nNZc!cK&PEu{;k!HQ z?_{Zoo+?hJK0FXLhPE#kUx?04q%{9Xxu1WrSTrt>tZ7G2jW=#$+R;O|7|ftM1(q%+ zf1m~1;$kiYdnyL(YELjT8)dE`#m3LR_sZNbZJHQL@%)eE!wP9OZbOSVm)p3} z<9632BYry*t4!{qW2Ho0Jk>>syIhLng&xMGyreEtg$4|e4c(Em7A$jjU0@eY9V?( zLK3`@Cym3!7ajzKw1y&xv<^+5_Nh{!K0O^}wO-G?Jvo;^xNnJ37!K1@-wp#o<(AaTT`C(Q6wm=d3*k`b^go)EiM$g;O(R z497|2NMuw2++W1j4cuQWyjg0B2)Ndl^mh2VS+oWMl@A&iy=ln4T?cl%-9c3)>tlqP zG29SdS{=fL48noFo9~v%^t}(X=bvzKj_}CR5^f2!@xT+b{Q`sNVboNuj^+`nu_5E$ zUbML%MtsnSMIVUtdS&AE^4T4$jC?!4a)k+FR2%ZG`6P^a#;A*O5%LdBrlx?W9d@nA zP4zNQhnd@a7G^}glANrFadlppbbGb<_+^}q5yuraUG)0LWXhX^K=z&Et_v% z4I{gF8RH7_GVsvG&*yz6Z_=HCvYMwUzg$8T8QImx8nwpEkc|@XM*idJC89`EDCB9x zv{@DEWy_qA+qpvjba0(3E~%Z|msa)m!rP-(15j+FL~GTPLi!=eTP=KyZ)m=TVl1J@ zF6gc6qcrF^+4+3VT?r<-m-CM#YfT0+;4a+*huz)$A9zjB6-N>!M{qA?j#S&PWLbj4 z*97C+bOV5o&}*M4{tMuXcO(3t_}O9_&)G>RW*@J^Toqd}M?*F3WIWS&(Q?~8DLBW_ zx{~v1&QrshUF&jOX_O>AWwt7G4k}<nHJWp z2z}(t8|vX&%Ry=g42Q;BMq(lbqs|dI+l@iYFTP+o_*zYFu8>%O?cZACJk@KP8eVr7 zxD}VIkJeDURbsmuW%XgsO!({QkmXgJmfiwQ>187CLBZ#zE%F8{v~rVx`(B{_ z!3-XT#|X1+n~tpcPHp*EIF32$#-ef&0nJviMHk`lga5WM_OaCbH87nyB~YLESZdyd zIYQ9fjqz4|Z3a$u^AFKNzn;lRXAHv7KD|G-cAUeDt?4<9GjrB&?uWnP{gzM`zMs_` z)ZhMOZkPdJ>YRc8!26N;LT60GGwG0|$RO{c<|AZa%`2S|`N=mr;dcGK(F<8f$Knju z!vdHMV4>Fmf>wdXmnH1pLIhaP;}Cs6h+zxIN>h=qOV{Q3;B_fBX`GHDtg*z^8&d9w z-RVjEfQ%eirG~5uj=mt@81{>CjKzD$ulVjiX7)lm3@XXx)(eRnVD; zRX5}^DNX$3$mw%7Hy4iGUk|ha!fm=fw>)k9jBRNnham>9(6@%T|0SKsu6?`j?uoNU z8}5G`M!k1O_)c5m2iRzGv}F+feWiFB-`LsAe{bXQd-w{QO@aCII00s%2=nLOX-gNo zUY>7T^f2HvM9)qbIn0O`HzQ17bEI+jhE&kyHu8fx5M-1-D*y?6f!Jb&R#}&2z-So~ zzrHCZKv;zf)xTCth#R*z+wAUn=Ln?Y2%*pke6REWXi)NteC0xO{EdsqD0dRbGSg)0 zy&`i@M;OEbOLTG&yb$R`1OJF;f&b-k02aa5OwT2v&{HOARp((XuLJ$^^f_=8!%qq* zG*zS{3z~s+;ZcY@4R2}2N1cu?6I})!Sz1sjEHh5X2R7l8#Po}kgs6?(t8Mr4SO-Ct zwlFpWEDY}c*H$QAuJy}|M%Djo<;>cvUjRi@CIEvlgjliwgb|mJ-W#;tv=z6VyqvLt z|99cNeC+r*kLd#v_ilzo7Y>p{$@t?&%$7K z%CQ!J}Ckv&(+C8%KIQ3t1KaU5OgKT*<4I2NR%ObA1tFz|F1@1+5u zJ%X|Q8v6%!7%y$nugFweMsU@L=87i=w1lf}1~B8CSB}m4iduw-sM1fb!|{qVGh*EW zqjWonttK?(bu5(s2ID1+^KqoXCs0^T%8w*dzHhhi?lSc! zNCjQgkA}YUQE`v)prCTB}rHPLrKfOt7#9!;_m{LK21+IB|emg-T|nR z3f03`QspNp8RynmSYvH*2rV&YbVgdu=UiTbNg1f0Q*m!+&B8f8s}Bp&q~=`A>0 z@x38oASwFJ-;mJ_pBo5~RAfkXb3Q=Q%J17!>%OET;s{$aSXdRF= zdEq<*1SBV&j4e)q$Sl;yJ@bp0y82Ja*FS%IBg~(|+#&oSgn0)tI_IfC1Xv&hN&?;- z?At(!u+WVThFoh7)w;rvU1O*K0r&TIt5g$_Pzov%ucD;KirUi4dsO2|98feJ%mLvN zkQsNpa{{^A@gthXK!20mS@l~P({>P73{+=8^KyRzsQ{J;$wF^v+J^H`b`$6@aR9@P zA*any@u$B57~~eQEVGJWSPS}!c#!c-eiKAO$j5g#=cm?ys{glR)bS+#jYI%3C&!An zT*-9($A-3DQWMO!=9~Zf+DcIDq&qqxIR@WxDOhiC1Xm59-1XRc0ObO>#&afe{4L=3 zlfXm7y8;5fOHf9?a~f~nfhhby;g&~}eGr0VI{}E-1wnOwTP5<_5&XAT6?jduf#7zH zj1Up4jYqnMvQ!ZF{TQ3@Pq68XxQ{1vbq1gUnK!t@>vyR=i0;(VX@SHDZcQ8_)&w*s zYxAENto%uRERy+sC4voG^wV2J1hOd)1L|b;0sODOK&}2ubSHq+4hw~?GthGB3W0g< zmyo+(^>rG<((e+?WkCg&m|hNkF_0(yZdd2Gs-r&w)&cU@r_m}l!S}%ifb~>D*I>ie z>a$q5WA6Snie@@y|HR{y_P?-Rf@VKNV59!)e}q48u*|FDncDs@F#KO&_^X1n{|gKV z^ZPF;xc(;^DgT3k0jA<-vEmKpH5w|>ATU5OOGq!{pl~aeM>0%kjvIhfo_E7QYo!|5 zN%=cUeKo}ak-xqr^go%H5GwxPELQ$in$S=w@NK)yUnbiA_a+G6R&th1L&g$(uUTq} zUC6?O4=(~1LAL`yxZl_W`1=fpe`30Q8!1`UO(Hh`syhoxzt`ClBh!)?1H~DImhPB1 z0SU7{u$Do>%cE)HeVJ{hyX zclY<5FhA{$x%6M-gfSvKovg&*KKp6hTR1=5Qhc&8kk<$6r;f{Y1NN-HDo4$s^aI?WO3rf z7lK^&&v=O8iPnz=bE2^$;?Dsy3$Nc2JAPX*tU2Q6`)?>6Iw}JPbZ0q7$gdvy*50Z= z-YE&P>kadjR?G)=-&AWN(5FG&_Yk>qADBcGsvB=bwykYJc;~Q(a;ccj%8$^8k^_Un z)*W(fKTLMIZ=6o}smUz@E0`44i-tYf!+E0FNJEi@zlhkjECZVnJOYZ?PL*AOCIj~64I6ecm zc~30um|#-uzc{(TTR#YziqG*pPQAJYY+D6_{m-its>#bBdZ;PBJ^_nTVB5o&t2+LU zx%P{u6f9EyWl3?Iu`x8lVTCWR35DPZhL9oO*WNfVas3%%+@IYH^!<)Cm9ZrKg@`Ts z>-j{b03RE6!|~FQKN_}vw=3=7#J-O7YXs0Gf$8&K(B6$<@ygf8@g)8K=*Ux$ClEvP(QMCICGk_8IRU%K>sc{6^_82|fy_d`EbtD@h% z&F8C`>EA`D9B)HKT*jVT=m$GGQC6`a-Pw(}P+=|1y~&|@YOKfR??%zF`6u6--&NjWpqcVyw3P)+!0kz)hY7u1pdBZ5MY!BThyaDy&5!@plGGWbISbKRS5#aibx1=8t z%r7(}W8JIY#Y+G8)d<(p>UPS&a-^^Kxr0dR`#J(%s#Pf7e!O3+pKhqh|Ge(#{lw7D z>AUv>!Xi9n4R235@HwnG3ljclg9Of3o)wniSc6wCM$GSpG}v2mc#&pJiWWq;SanN?uTYeC_D@ z$xJ}S3!#lvM{%kjr3iWY@kiuvWC1_|Fa$-Gr8~0E<&Ocx#zW*~89*EQBfi>yX>tH% z7C(Y?8afHH(`C?H*zyuMHRWl?`MOq5mi4Fp{|wFer4sxXwAY83tdZ!(6_YgRyE^V3GzccgsFF6v$H0@OSp|u(16+EZE^usb-o)oJF*9P&NNbCs_IG z4cfro{CY3v|KQ{QH&zb+jXNKJ^tCC=ky;BRU}h8j2i}J6y<*xqaha}2qnStFBL*s& z@g#+3v0p3-KREyA{OgM~!%x3JtO0fTpWG1f?=rZ5)eU!}Q_E@n>uv0P&-5uR1i9J1 z@w+qGFEYJNKm4rB1PVEFFMX5$l~wcxC{2Ju<85xoIUGxhv^HRZJ&BJm?+O45Uh&k; zK&03v*ZB&}cm3;|7%dICS<$O(bDlQ>Sb^4=w62Py-z`X_x05UHJ3XtYb!;FwAJYTZ zIW1_ZK_f?h$+bz7;d;da*1O$btTR3fOUD0Tqp`gDzm{Gp$f_v)(Y7lFQQQYKpC4d>xRe!cqYZ%M|Uy-6pBn|}MVAlp&swxfO}F=cB&*Rd@6~dX)9}TOp1GA;s1Z*VLnh{#uwi3}b&USV z9{QqNlV;I2VzmDYHo*6_E`G<#(SOhqbGiGHFMw^Vx5A?Za=eL`vh*W3^?fldVvNt0 z#{*ZuX8H7Iw-Bc0iOI4cUOtoXj{y+tgEgNpz=@Mp_-Q4h(^fKZV1gdnB?K!tYzSi) zb=t6+jS1f4jmO%eJ2DcsYNUAPoCyjGjs&``idXlJAmVVW6g|->_1JPp#-)AUu*Z1L zgjjfgb1}MOe2}7TV;_3PR^y||&h?7sq6)lI^@o_)tcgX)NIeFnn736rc-kl7svJQBxYHv|R#N9@lqy@WR6`zmFc+)hn*N&*}hNXSM^AQ5( zH$s1-@G&bjj}9yUs*Q^w|A}wHf%XUF%M+J@&%ADBObh-)#9-xMOq25^s|(xns_pGQ z6`tF2wFp{*nKxj*h+6}QHeL%6M9%T>RDaFP{Nt&4uj;d?5R^*E&<+MQYLisRnp%5# z_zUpumI5l8vv*;)BI5&syKo1XMcOU(aJzDDZ!RVIdW=Cmj|c>dtGtd|Ns|)#=IRX? zF{BHFvs}r&N$>cVhz`v~AXNyt9NEnJak^5Zpz!&zqNf0PYN{0N$tINQe7beLv0sc? zQnPsCm>W6F`qX_hEkJ|T+~A{TsTjO}=+E*j<)ObZM`(>04l&TpLOgRDcnjC#Mdsry zV1u>ACsW{UX-tw@65jB7Au|yq*G~q!)vduoIGk@w9YFw`TWlI7$L{SSq#)!g5uRvP z2L^MPogJ;`R0A*!{9s2<#R+Q%t-(zMw?#1$VA*3>(v8*I3}D=_6BxjBxO9Z!MSKS^)q2!IEBy1 zZ4j}npAl6mRKl0@Kd1AJpi;b0TMgMqG~KH+s3m7fb!r~(Rt>K1=xrb7OjX9(nOCJriY6A6hAZe8~zM1?sV*CL4E zo>+|KJ`He1Rw85=ZTbMlzP;Ag;p~B%R|5PDPZeilji@~d`&N%LhU4-4=BSC~<9$i`@n9O#M%?Y@^}`jZkFY}3CnBd}tma{7CNC8|7#WeMZmhQa z@O8i+NW-!NAbvn4Extg&d8+nuz$(eMa|TWs7Pt+Q7G9+oa)XV(x)V1F+_G~^F<6dn zZ^tF~WR>b^*bHsS`t0AnGXBn(c5NoUFwMX6$GDy>`)PjmX;gUl%e{9b&}4k;^RqC+k@(%04P|rmY7bn=&ZXALU*tS+N_OtPr zvxwL>&zy2a8kfvZrL#{^k{1W6%AFgUas+*;B>3_;M$GW?k!lMXm*qT_c{KRr$;FLx z_`5qVxeeWP%r})R#)Y4_oDb{;!O7{WgXtyZTpX#uxJbeYNyKW^*~h6Z55|iwwV3SEo=b|E1H6SfE2z#? zXV-$m@I4DL+!92g$=9`a8-ZBte6&$(q%)JlLorUTG`9d4|PrCvv;}O zq8?T7xj@~b;Io!)yQ}$?+k4&3&6RG)b~Vq^FfV5@gR|Nr50s8>EB_E&`i8#U!r;}- zo&-|x-ip&Q#!-tjH7eYWo6Xs&p(mTRSaa;0wBsc=Y{s4S&YJ|pZoB+oYL+6@_7uAU zHU6H2)f8166>~hj;BK6pS;2-QK&jB;^g0ATV9hE~gj$|&$Y5f2&?48m^ZCbxHg+GW zIpZOx=jD7dn{MPM9^M#xYxvTdkCAiv_y(SBEUf0M!<3h*y2{BCqNLpB_MSKj7XXG@;%iB(g%BcK z&^9~Cy9}Q#u?C6fXK&RXe$&fZE-p&)V2~qObi50nbiPCesc&j`8HvBQd))@_#X!(_ zdC*wW69a^^oNTZ6_nm0rV?)Nl7}ye|TcTj(u-m+pumG)98eBs64eEP{vn@R0PM3QN z?SyC{>br3JfVvkY_Mvv6A=H*L!A&No=B^FuFA3CI9-F4E0DsBaK!AD_GzbYW_fn(y z#TJtK=cAwgAl9w6(ZIoMA)QIZv@_lm__q1A*qk0Oifu8W_wP2?8k$DRE*eihly8y; zLIBwl!rUbTVr zqZm_jrEnK1(qgaM=bC+#c>;W4rEZ_z+@=}#9GQI|aBhi67Ng(gpf!CSb;>YVrD#>q zqe8t%*rX|SBuzEMs053G6YMV$@ZO2msq^`{Xp^DpzDE^vcDH+-TIP4!w&1W6t>+?F zRXBpoUrpbSsXy~jJv_J+D2fdwTR_m2tvYT;r_ThcDL%-^&g|&Zq3)VW1llJVySQIT zxcVlkEaQ6k&|oGBuS{s>7n}>=lQh}u;lQ`6owHzE$_HW>cWzec*dfNla?SDf7E96z zA<@R{ljCE+wp!7hXhc-_m}p9Tsu2(?g~M=06p~Zt9KZ~x@F!5-aQ&lzSv%_`!i)%_yZvkOvIm33N9LCJ2WcXcm!;Eq1 zwx5%x{`qItA9}NVxZm(ZtQ3m+sWrerc^;tZ7o#IA$0~f$1AC$b=ownvCr9R>jcg>} z<6;s#2HTGgz3^cQ-@;WTsE3bd>pfnrswz#nixX@|{Pl|cwp48bGn!QZ!HUez)qbaX&VNFYPsog|8-hK#F+W4&Bw$f%zCB&y3`9N`2#XR75q{1L3!f zgBPT5Q_N=5(e0UM#k~ujM9Wiaw?!!(B~jM8zFfcvQkJ+!V%P@kGXthG0v_874slY`O*xTJE#MxRS9NU68t|OLn+g{hcH~36XR-flml?$UKs}uidyT%m4p)X z(n|peSmbtvoZCt^o2Ice7Pl@|kkKyIDS{?4w{MbY&$^zyR1Vl9vGezhiOdG}W=_y+ zdr7O7fCjH7{u;lOi1FgR)DUVLwSB&TmzA`t&C19bVu~cn^^jD#7(ETv+IUBCCda4v zvl)ZpcID{qZU*bkPHQ~lbD6*jjre0g5URLnS1=Tu7%`_#mWPlfMMYdU?#hV_aAKFa2C{jeR(+t<)RTQSyA6o1l~xJcY9FOIbY zjTT_8!@s>co4JlzqM#ZlO}GhRJ-8QG%AcAgHTRr>(IeoFd@iD0`9DZA0UQ#?6Oc>2$gXKPK~6`LV)^ zwLWq#|aMC;4EVwJVu%m4kFUQ1Nn98PcG~D=Lpi<>*(~OqyjIfs{MV= zl>@x7+W-g0YjAbR6&XdGo!=Q<;r1I_+SA&H$H~V4ywu1V1-Q*&68|vW2tB6LUh8$| z-XlNNx`7@?Zav%InkbN~)mvc3ZHTY~ZIHbCaZ{D=rh+ImL6?s&+XoxIwnOct{}j?i`R zMe02Iv$G3k;xEnl`H|z!`>5+ooITuc0*{;-)i#>5s{$ZcNhC~9yKy@L`svLftI&+? z(WnBw+;PAFtOzl~kB3-GnqLwuwqD;Y&+ruylP4Wz`JHpyoC~&MlPDL*Q?q}VCU(ag zUK(1@7&XDV@m|_43&$v6-(V$l-|2U$2#1m_kGM>kOkY8d`g+b zMt_PvZTBoDy1lIZ(Me)-_tPV&|0|-*opi40cjtD~b6}ynszryQz_1uZV zPt&JaPxIhw>4zUgH-xT>BfMw4b38poda_{Po_@YCX$5ynYv$AqyV)e$m6UfE+}3Ew z^YQIr0~nAx%vMDzFur2Fb*u7)N&IC;Nghot5L;(WegLT`V8ALxjU}=D_RRqRF1?d~ajwMrH~J|AB{*UF8QfQrm~mgm zqj}6!ULEKQSi*xN4*`~R?DLDoO$0ZwK$6!YjYM;<{Vo}}qy+u&N{GhAV092oN!IbtVJ&@|Fqwn}qj^Nye$qntcz4hb)5+xTH zvUo;Z&)_tOHIz_8g!S4$9huhWU!K5nIV`PeI8dQUDabE3-#vW>-Rd~H)$w#Nm(GU| zZiX#`!WYQ=G`bf0v3(nYjgbq3Km$xdK~}q0Q163NaCu%0DvBv6ZwhFrEQy&dP_0S0 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

    |+9YejWSP8X(fJ|AV4 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ⅆy105eoKjEyj-NlPX)H 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 Z%3+aATjQ7Lxg8GAx$vdv*JwrIZ zA@rewYCt%>Xqa+1qZZGVSE)ZLcrP7=CaWnD#^$x?RU`}fR&a9~K&=vE(@iMCM;#_* z;QAp3$LwM(o?v5ya!A2?v^Ef-R_k!|-ZbJ~SyLQ%Ch4kYZqAySOa?B+!uMCY=*-u2 zy8KIN4GOk(J=&jNmPKJ<{y&4%u{d=LdqBo-=(|>Mj#AfSoO71Cp0Dr=Bcq-5Cu1ipwaRA*+dz&vo zIF*CsN7qvpCVjmIQ>2Vv)-x~~Z>IP9s%=yMn)_Fp;Y2I*^Ns@#K9V{*5lhFS8q)}^ z$4A1kbyF$Xk4FnUcB!@K1KWQfewR^pI8fR)vxE3V_(Z>(faH$2!Ik3URda89^)oxl zlNi+fOY$;B_!658O|&r1q}742>*@tm#&= zdVGB+S#{|J+ql-WFB+9!NbBzqVLp!E=__#H{(_pljDBZHa(gH{k_kuPLIvCR#}0JV2(n$NHoPg^(LvEwOL%C^KOmAJJYC= zr8&Lq`+Q}my{cd3a|!WZI$AN9ctx#uQ`^7Tg> zV}GeZ@Ffdld!dRB;Vcj|qH+qlO}DhAnr&9UE;Gu{eQ4ub9Io3mk?fiD=IRUX zU6X+JiB?Rtj94LalsDd8TJl?Gr^iZSygc8@&l4G2t-#O#04YFz8bVBRkV- z?-QLt`EaXWhf-wJOoo2&?hKiwE0fgy7*6-|u!9Ev9Kh*Zeqzbr-(LmU5{7hhQp{EQqNA$2&&MHvh>F1kb#;a*PnwUfguj==)mqyvK7&OH~q z&7(oG7>Mv@68BXZgX)8}Usd>|% z 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

    IC(v=FT%`8&qAjW>K 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

  • -v?U5iR~AxIc@! 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

    hP6kXH> z30@MzK6vH0=chn4-+SL^$S}N+qzh<@@?z<4>F_9dNO7sZGaehw7ahAHJ$Ntp1tSQZz^GQZ85v9{?XVc>C zkxPY4&d;BK_1G@v)nB}eRr-!-;*$9AQ1ox>B#8Iu%55ta+r8D(KAyh)ifY-&c2cMb zULJM)lV8*p(%F2{&l@I@RR1-Hzm(GK(@=-~En5HQln9rLpVqXfTv99A`Blt>%9uLr za}6tzW(xq>%zt8%rwdq`WVFPd7G%@wLsXbQSAKM<6i3{#vaw`mvYAs7I_VGoVZ~# z(#k(j7qH7{73YT~R*o#pXZL435ZgATv@W5fjf=noRdN`Iao0c$=MjH9c{JFWaDU%5 z1ymzx#69NiGE;()(GyKv~%jCTka0o4$zfFNu zw}}rw|7%|k|1*p_i|T&W3uMcCo`evxmEss=EGoyky(b8qJ9(ICu+FOf7nmA0OzEW+ z6J17H_hW20NLG5r7iH$=qWKi{81W+_rwDpG6D#$pfa#{x(&a{l1rA{uIz1MSev4ea zJLjW!hWw2$_gy)yq!vhTj=0dG>WBF88sA;6rBShfW`nn3J{=Dga7zPF^#Nc=y(2Ce zRnOhXMm(jI6&wzS)d5=*C+i_CZYEF ztd>yg#^vb2f)VT46iEM3tt4%;Tv~TUY#H2Cip$&}sF+J-tOc3VP^ZR6#5>zcV`uROk%rK@Ln zqcE!G+9I+J?$p%8(${DovR1&aJqO~}_nr9*1p5IL9N6=0=`_eeuH{CYso|>)uxb8x zCND5DqU1Q^js*g)grtrD(<1N|8;9e$1V8pa3r_vPIp-Gm5li!gQ zn4)^q;+H}mMCA8&gA}hs9#y^)FlC!^jOU#_Ws5r8VmuW}R0Au1pB9zgbiayFC$qUm z;wglB*`$QtfO(u{kj6n#H-uSn3n2YpM7VZ9#XG{A%F~Lv_2zm)j2LhI!+{(+BhG4) zsjcV)n_r{qqPpM5s_hpmOk1o6!esS&B9(7%As93r!9ryO?}oVx6EX zv8jPh55Q~S)HYNV1*9t|c(+6);(o+_6IG9H;v!nJhau5?hZ(Rsko@+v?IDadg7m0b z{uM6}F9cncep@gnB)VI>QGbRL;q=zsHsCZvKla!Jrae1({IhobqaywwGTu8|hUge9 z#V%9j&^N(%Pgv$YW9j%E){J4l*!TI(xp#!M@glJ;)nTCgdo76A(Hx_NNCHiM0tUJ^ zG@^hAK<#Pyojp$V%fW6x*Nc?3UShZj;s_HMOKRIUWb+9@0*1JCX*E#hgbLf z(v~?B-~8ysXk21PCc*Y(!(u0gBNkj)f4>I7-~)ly9Fla6Gg@MhXCH20N5G`@i_n0C z7+dhJwW-QJ1h_2s#%>3gtNtLXAypc4BT!MDS+NYZ9F4pboaG;5ry4R_ax9Y;C3Z}Q zBKNCg=jO7Ph||>MWRld(it!HJS_V_7f?xDXC*YAU1-j^=X$^ zh6)_7y#lGC+gr7Ti#WC5t{=g@GEC~LJNB=cTU?YB0K|Uz$xY4xoEXsQ{?qR@S@BlZ8{?~*a72a!5k7g1TaaWi)AEov%|&| zbkh|y>{kK4`-|l|6!Jt~M54=|eu@ZD_8y@tEl(>WfK8>FsZ*p&7`JJj|58#*G;WXo>RmS}CGwG#UaXL}6t*rdG?*E64arfJ9SMO1%P z2;7T794;Xm%5Ow)uyfjnvpfQMCF{@V5|EKlX4V_&dZT~_Q=C1{#171hI>v{G|G`om zIZ24&kR=Tnae9I^)tfL_T3h}<24kRtFS~ggam%lmG2b>ee;Ytlw7jai9OIx|QRJGAYrUg#TmVn$GoD5@*NpI9Z40adHccuR{`I zWuU+wq=ke@+Wn9NdDkakSHcZ&LWbY6k*>HAn@|!-=Q)UyyvX2lKhrz=K7*)91vLss zsJzQ#G@DZ}wIp-gy-}Rn-w5*(M8eJun|i5wTR+>}X!ZP1wj6S{B;ag?TjW13sJEvW z?u&K9*-^*&Nl**({3i}gsXQbAU9Rs0yQ8YJ1Jrol3Q{3cRFedDmI?N^g!IK|MFQrS zy^ybt<|)a1c^+;Aq{}UdPzE91NDqbeE5zd^fxnU z%1BH|5&O43O&V(GdS_KQmT<=8QvyuocQD_eGIADoCdMF1__xseM@j{twy@nNT0*1+ zEI^LI+c<>fVZaaj(0+jRY#UxFm2BxXDA7lI8Av~==PdjTddLvl{N)qyn5G?(Lr}4A ze+*v#zbgFT?dQZ`FFpKuP{m(5;=fedA?fon!N$u=nhyEt!8eE<`OLdZQsn0M`Nlsn z0pKX3kjD8^wzH7?A`3=5{+XZtQN(YFW7F_~RO-K)y&-F02z4Ak)R$-&_`kEafDI0a z3YAMZXyfI=EpL?d*6og~k&uJ3)BsAx8la4zHp);4S9ZJ*xvNt}iUq$>X#R+|5ZROyFvkT5wqfcyr*9z!j~F7n7a$mZZ&;A`f}Eb05co98 z*^h5yz>k_jb-0Zd&(9wA-9Ic9mE+8?3tEnxFKf+Bey}1A9m|*~bA=VV4Tj)ImIIL) zBYwZSaPEeoLBNDx)OHdc^|0v(n=s9VaAa0oEp7Rc-!`w+FLc5s<;@d9-KJL5oj2-K zFT#2W&Yxz(%`M>(4*rT-vp@S6KT>YFD znsG4;dT6}qEU;}L9(Ektv5T6gk76Tg3%4{km zm@%Q@i2g=N4Y#f@#E7a`1pU)sR728PyvsvlYTqx>83Ld(%&r10?~6Tc(Q<>RhU~)x zE-DGk@*oetMXId;E1}Kh&uOtJOEKh;0HuK(nuiX)mA^IiJH{>D=nkGJU_S{D00sMm z<$DABW8Mk(8l1~H8ieBHC;h6XnNYEf%A`{<0!unFiJl?eue(?7`!DMdwMdOXA~jSi1Fc7 zezclUh=CG)cj76W^bR92sQ%lop_yIdxsjiYSl@g#sN|`*!n5E~SK~`Heo*XHKa^l5 zLh~&L`ATXt^xwbj6@mw3GNBh318_$YqNkv<7~dJBw<$%J=6^IS{8QinH zx~ZFJH8l9ZPRBumAFB&Hac0v_5d=$X!@-o3xkNt(vTk*2N$MWt9PRp!oXk?$o&ti^ zKTPUSL2uN{3=VEg5_zl7mZ8E*V>Fc_EgbdGaapK^pCXgr{I*mjK`bYPf|GVl`1%p~ zB9SiVY|sYkb1lcq1pil`huWP~pB!@U#d3wN&D`u%4z@(ZSP#MB^RK24NXc?0>;inM zZdGW!GJYdq^KPSgQ)mu&gKf#VrNlP+GngY$s&9plZ+|frBYIu}!Uyrlo>ZO>sQVp| zA~;YsVixWYsAQf%pyHhH*NCK*?pj@tK};ruH`C%PcR(MQv_tgKPw*>X(oc`+LmEIW zcQH9d@kP7xI?g#|^)p;-UGLL3J%2cB^?-2@2(beQ2cE6lo_qD^)i&SdRc;;#1_9ti zw$Z^*VWY)zP9wi15MY21MoZv6o`eef&AYVvB@hzwpP1J@+s#b4e{4?>S}8K7Q*SrwG>93ZXYKAr9BJh?@ZEb!3Gam8*emyQv{{0<##fqof(o)3RhaDKCJPB2L;dam8XSR}S} z9|mvf>78b(xb{>{h7j;w#0R5kYGg~(b*flQq9k&h2mb&8j^GAvvq2cWBcU`)kC$R< z{OM56!i9s#vyie3p>Zetl9c)O9(`VjgOunAe|iXvU)B{xY*Y2qfQ?{UTV3qH1a1TpE(%WY|WBASTz5O{9}oC866_Kk%5 z`%&dH*U{X}B@)Mfe1CvM9(q(r=dHsaUhp=&KH6r)ok}{N&ge>fn&*D6dndYok;g0X z?V7F+YB(Alb7?)BX27%UlSCwj=BLi}&^~Sy1in~-u>u)H^oO34yEtt)tJb|)1_c}N8VK2Cw8;pSjV zgN<3Gbea?nC2LLz!4gPdN>t6UOKUoB$<~}>ySXQC1Zi2g+5XVpZ*?Pjw-?8M^muTw zBIlCXWq7#I8@5X4crY)O5Zg}pKVL&DB=>1ygkTiipoEFl0uI#4V{|ziH8G8Nj|Gs^ z;7rE>O_cSA+cP{Of0bYVwUvi&&4|H91XX?aLDNMUDbTQo1yC7X@g0G_9jdE(nx>b8 z0~dR3Hxa#6ivrP23p=UstT_v|F;_;#BkFf_ZkvePRx488<3{rF3^}Z0tq+*SY$082 z7Ncl2KmGvD309N*v0NQQ;Z+sKU(~HfWM^XJki9Srt-R#`>4n=?y-;qje}>`yG^XWr z5{;Crd!S8y$?>#sbs_1Tze_uN4>SK4x~ArTXL1Kc4MgCVXZ-LZXTlNqWC+DHyS*qr zM(q5K?5>k+NT%8JAMf~0yP%E14Q>vw$#=v$g@gFokXOy~k?2uCFw0T(yAx~v3N419 zW9tIO(vvusYDKa`<%V+1f~Kk|B24(|wJ+v()XuEUFH3LHb|1+q*sQetE#3Cc^7`vu zrKYh+S@l5KICi_t+<^RjnY=$(kpS8vkAn~^o}ozy0>MTTY^ZKYumPXU;;tmIdbw9? z0|Mj9CxT#Sh@ERt)dom;CXhaKV#a!=$Ms6%WbBEY&G)PRU4LBs@byq3?3JVa#Oq0%g(0xp8UJ!(1IXSVGCc_X5JlbX8Wjy zpMK`wB~hS%GOIDd=kB87m71vrVOpE>a_=}KRE`nFu%KFCtD=3O%ivUn zce^R55!exm_ipHsYqxA{Cv62&yl)ffYl;zL&D^~p*@Qm&cP=5jOJUFr+uu{ZvVO-} zd-(xfP%DK=-ql6ug-iIa;qRFn>HZHSsI-WmIASM*8{li%K|tS3~D0mgpvv`8WGWZ-Td-|LYWqj@$z`K02X zeYy`AuazvaH@J!`JvKE%INrO0ZNG3dOyqT6TlH|MVaE5dH%!w%VJ2-DH$OpNymwFU z{fh6*o!N%10?M<_cb=KK&=3ybyp~q76PLGV2Kx!T6|Zt$(b5{bBp;)5&0xQ_6BAg9 z$i;D&^Ec%rvsevZKJNS@Q|$JbdbY3P)=5RjBij$0soVFo3iGeVQV|XTnsT|DA{_JS z%iCJm;L}InVR_{=eVr|N5WTt5Zo0Gxyy0eO=e*^ZtyfOF13I zL=1afg|AUt>-Xsw+oOPfQMf(&7uLn8YoPNB7n7{aPnoJ(p^a zJdfh=&p|1zE)&(sie}JWr(lR0rh0k4{W9Pe6_AyX|CuJTypNB+-a8RPx;0d-~e0sWISWa&3qnHd^<$>+-P9y`j;2% zJoDc<23r%>64MW!n?7~={OBp=sBMk6-*x&DM$Jbb8dU$@z5KpY zd@v_99cdv2^H@RIbu@?quwkV{kCPHrtIfoNm^-+{a z5@vXMag^Qo0w?cvHe5-{Yfcwad$+sxF-oAvbtvhkZa84-ap%p#)qMZ5l`(>SwQT;W z{6ts5?QOHY6560dAQXJy^<>1hpY5mT(dfMh7 zhaH@04oH!13$k>$ffKK4@#MO;D}s$z*}^puLspq>W^pEoWH5TCG7eyKX0vS@;gv$i zK1N?mk*a4c;kAF`I`(0+>ZtRmz2qO@`Mys9vL}ODb$%9(tD)=AiY*Z{(M^gN@#@0@ zRtumV8V@79k%He1^V7q5iU|)3V0D;o@xq=)k{JdHbY=KWksuSfVKqOl*%MTwbK2p8 zyP0nXR8h!{)f)QtaHYNua;(+x?=GTquT%IF>b2K4nbDk8mQA^1B=@#YdsFaVFG#iv^GP*4LjIF1Bx_38i;oOEG@UIruzNjT3~S%(;CfSj=^MxXUe(KWBWt5YaMA?+e${mcsJdO#p*c4>qqxH5rLBte+Ja7zqa251?I(bU|zIei?k$A zYhVs*wXxujW{KVCi{p=4<0~f0fbS1jr%hk_D;T3oRWPk9ZMo|m%m8K=7a@sSY-#Frh7#yPk}i2JrX+Kh#If(#kf*U-B{+B`ic<^*ZTA!dYV&k)i5q>4>5_wn}^a$TA(*`_rn zZr*8jIlY>0iA@`+Re#PoQ_j*G@lY(k`Jjxc?er1U%gTgaUM3nzB3KYPG7cje7U=sj z6#NhN+)#zUpZbT6Tgq;j9jHsvK*GD41dQ z31vU?G~aU6ZRTNf@wrTXM6c@f@YLI%H6850ilpvC;Ja8`&HAW&@K6~9Oxz(#i#1zI zC#bumE!ZUQq_*7;*`L4oWjkqm1-foW@J5d&+Ae(_sdjQ_CfXUNP*Z&0Bujf>}45WW!^ zcRTEeEpDK@X0%v=OhH`j3Ky#5Y z#g1qsF~E<91ky$oDO>1|b)za^Ch;J;7*b_LLTh(NA0G;_Q`;(JcLUnFe?MwHLeKMQ zVeomV5A?z7kNjyU&c7^k|9@T6=SgjGu`%oOov2!CdU+S=DENppI7sNFJyA$#k;X7~ zk_BGwU9rcp$y+1YzL%lUk!$Dv9zM$&-@S%x^~Fa`qB~jCCIkp&LY}vLkltlV<5r$g zC6y=8o@4k!=bh#(fRI$+Y_YKEyN~&-yNh%fBu$aB(AD50Ld__d0h8I^X2>GfSO-WC zGeHGsyP3zmim5Lk23JFGoxag0S1YuXJ&V8IgMBLY2ZaBz6sIB0knBzws; z8FLI6RQXnD@*(01xbU0g6%orEHrai@@Y7h`FEBh6gA@OC2*r(=!-4sUyyrdgC5*A* z+`}@q^>$&~e-%lA|-3p08bY~w3BLDv7-O8#YU?7(29WcI-=4)W-rtJ4GPH`h4 zc!r1mj|6&?@Lo~;0dv4YGwo*M|JHODWj@&(xPIRofp-~ZF|OMPF}}au3+I2p9sf2Q z;Ze1Hhm7H_+$iEcoC$IziC<55U>Pck@KRPAia%#M%#s9Hp-QMKo&fw~0cg@?(XR$V zz@QVM9)dovu@Hv8C`$+n3c9g9Qj`Oj1CQTgQV@3e)R_4YQsyaa`^VwU^5X;ylK>A! zl1tV08_*4iYHY}C4IKH9t?sXHv#MHQglw?`pz!!t+Ghxy5R0@9cg5d-4`(39XRsr2 zqAU&NJ|L!Gb&D3ICvDghzf!CZ4+rugn^J(=Fw-C*}ie@Ehb~0JMT3i7=L_vc})yll0Hkv08d*&RX5KXt^?#(`J99 z=I!ZaS=6IkYR~2&PjQDttuFtW;n(oX17_ZeSn}oKeL6Bex$rr=9#lkZmm}MTd$yS$ zmx(xz4r}OE+KGu5Wfxs?J>cjkj_zjH3UbDflJ3HGu>nV@0%eQq zsN!lmVqSB{_P6Gge%LIb5Gp${R@6wSi^HIrz8t*vWzo{qdnAjIRQzx>P-R@x3b@(l zN0ajptjBxGxmb;cMu^+&fbhKqr3lPSbGT#t;RX}urU2ym#tStym<9SM65t7C9Btro zjQ6Z)70T!h@h%_JypgwW-a!nzsHU*eehpr%3?Z#^uCK<7mojwZr#Yauu}#gDCZsMn zps<9Ir%6c3iHfKcDwWNwzabI|`ZrG-3jR^x# z!qaRE-MPu0fHv!u;F?+Z212vOQoXxb!Jb#80M1W1?N0gQ$L~Y4lB3FTHU@>HISX?W z)eu=3lz2$P5NY4jfI9dWb;*`8P~P(Vy8=lmb9$qP{_Atgjv|+b2&J9hLpL19&X+f=d6R&p&RFG~FI)L_&7!?U}DJmbpO2Am;b zF5=@_oc7a{K{H-sH*7~UJ!vAnonA+WWX=|*RSY8rP}Nq|>N zPMWSlU`;B)B`i(FPh26Cdlxl_II9OkNLlL>GoFg^P_eS-x2CFx?9lrVeBMws&-_IDzt!#78{nm{V^kNKJY%kA`kkKJ~D~9Ga zm}H#$041Go(E};eM?0Bd*~5hf9#S_jh(D870L<ZHG}3uUO5ZaRxWS-8=(2hp`ZFm?^+K9sqp-ewo4ON6~J)cAi*B#PWK1YG`U(FGZb z_Q=7Dip{h`IsnXfHiZ>~UKo5qzrkKB*#5v?!&nN2Z*U^-mm1p>01}0iBVkL-WPlJH zRZMjIP%4ChF?50WK08iY^VNur-@@JyUkfrh58C*C^^pYN{*R0-x#@5l+qu^hQ^gG< zmL|^VI$WS`-|m^&B2Q~7hfHBebw|V z*-AIX1NF#_CUe)SC}9>6C1~((yPX$)hWl>Tnt}*X#!qLq-4UjLc2uCu*XC!$rOr{n!h^Bj3dfie0U1rQB@W=} z=*HFuw*OLkrx?d~qJ=;LdQ;*$m=Yr)$KTffpAnTZ|D5?i zhgHat)Q=f^e#c**;WN^J{k}%OTVQ?}uY$Ru0xuKae+bEo=Ecv0-*Gz(RS_t)?M7ml z_CcgT4*O~*2m39kXdDib)kb`JXz(0}pi`SbvPO&e;vcUf4L-j7uV-pn{E(B=RDXWD z1$o3u^roHz9?B9XpRrasaRML`#i_@CNq;wCp832r zhsx~d7~GWC-96))iF+gik=0jJQ05|YqyH)(0g#@I2&zKCnWV)dr>fva^*q<)-?60< zw(TFPFj!^(YQH}g{1|`K<_G*0SQ>UkA6Ibr3V9wN{)r=yxW}K<;Q>31_^b-nRgu3p zTA)PoJF>Q{aP=m2_CIy?Y!g`g7US}sy68>SiS}-F13KIv=B@pX#uQRxEA|j2IEki* ziABwO_^kOqlxfdLJA5p+3KtF$}{+&WSJVGrGC4Zgu_WuFv3|JM{_i=4`12YE(? zRi1&&{UQjc$m0+TY>i;X;2QZiTiwrW%YU#M!Z-IvTZ_=3sor-N{^S=QX^XMm zbzvft)Rj1c^WFE~^CYM4fwaM5#z$J4zXqU@C+C@I7d#_iLj!QJD?}KrPSQlSAnq@f z9XHOe8hTK_jUui38AS@)7??fb2-jqKdkg``@4dS-8FP`EJFD+79Fd?d#r#9yh1@4W z+4W1+_8U(C^f6&bc?Xod{y1^Q$~^@VoM1yrmvkXzl2z6~CBIQhj5__crrjc%ekdac z(M>eJ6eVwJc&qfm`kyt&EeOc4X~K8d!HPi{ivn34=yo>!PU`!}Q=U3_ZiAmX#dd#L z&$LsGJd_Jc3|SzMC7bCs+XRZ#o*~S9N%Np)sDXcHM;U+X{Y0iOv*lru58x4WcicU7 z%LY|`!Q2iU1`^?73NVw7)Qg_M2F@HzIC>3cbxV=lb*S4L*I~$=d$_9r0rxB8`l>YbC@&rur5P}r-xsWSMmVEfyfb)k<>ATh}H-d#5>ofUmR zG2ZzhgO+{4pEh*iX0aZG+#sV|wyY>LVoa)5!iz}>stR(h_3BjAEN z)>zDqBt!iwQOvNHe7w!!L#Z+sFU$PSO==zBOiq3E zY;LXsSKP@%Dz%N%9)5pg^K+qkGZ)_K;n3H`=jg1V5@LdK-I)w!UK)pp{=PlE}WBYr<5$o|_+_#SSs z2)fac9m95ElUb`f_oBs(cg6OP$U{sd5=5Y1v6aR_&FLuX^Je-g6$OC)N9 z?3l=<=@;@Bgx5rUP<16KirEpVZ+-`{;30Jv0v9Z6$j533n?N9K#qPZd&H4+jYAB{o zLk3DT7))X0%z&FmbfWF6(6#^NMm-DyZtnxNXD4?v6%?nTM_^EZ%5YTh;cmf*Wa-rB za^xKo8U;JXssfb{k^twc{RCafP0#iQ=C6!M?#I=hR>Ow2ShWQYgn6{RPRL1qgifiL zNU56+9;9wH^&T*_|F}ZfqYx$k;x)d`Ms~XCvA3+c@Cg&#wc>m4%x*e0m};~rcQpuE zqAvPfe0^dz1WzCuh`H$k&8XzELg*5=yOT#0+GwyoMK!8BoGX;h`>|YQ9&ei&*+_ID zx53a>E3H&*^UX$!#iu0)gct|*gc&;QYvi@uBpytfI0&1XigG@a(INPzyL1`wZ{Ac*e|DUS2x81iO#l!>Ds;BpNrz*u*J~6R zs})p?76cBGw;}T?Wo7hTfh@&5se1HgFkU^Wd}FY!>|$Ow-i>PjT3^ z1`57q`i9brVM7<=VwNT?Y6q*79OawAS{_ke!}2w;)w?NG`z*0Ov0`F~)n}iwD{yaT z6%zc`zFjC+8OUT0QI>;+zWEpN%voSxNUo1Ph%H-rjQbZY5VBo=qRL#A0SDm3Pdzk@ zhU1j5>AQI4bBooh#pmo0gnpg{ z$&PsE>m=&2Wgc|X)(PCBu^_Y&LzOtuxp05*cYoSnaZ(@x9>mT6{y(6r1lkG5PFCKh z-rD@HXA-LHUvZL*hiM`g`St0!*LW(YHzIIukjkJjpGK5h~^%Slf@$c^m^xy&q>bXhIpz|$2) z`r+3}50su8_pnu}k7gas)#oOCXKEr7YMj>UDC)aY4Cz?6L!AXd_X0?RVGl~O-WoLJ zq3!2OkXAXgOTV|u0Xa}mhO=ouwE=;q9Hz;x*n^ft;aY*#hru%z-duAwf=edw>PvWb z|G7i=ANS>79J)N<(`%*%VVazcsk%&`X1|WHY$sK4FQ4Mg13ZE=3wgAT5ATf4S&CPF zI?L}h=4Ho1o~%+#FhUy4|G}h}2MqY}_pd@1r-$#KS4l7y$`kv29c_3p2nJ!kcZOAD zJwB$*Gf_z_WaU^O%r@B+1+yTZ@E$mPonv@k&W;RZwne)N_Z`~24WhH1rWYndS|6i^ zpA@m^18ujTmX)G!WPO+(yBDNwf9$vTU$X~e5)T4^cm?-(E7P?|>9gJvJPeocERr|y z9JN>IiO|X}{V^;zM%_cG%s1bsJv+#Ru$LnH3#-dzp(l0To^jX-DyA{k03cm3sICfh z?6>TVc?{^F+?5Iim4MAPKzT{u-*P3amX~8+e?diZ=4~=QLY)yYbMtrc2wp zRkG)Hw3c%;?`-IkGL3K~F;jE%lq`na;?lTvGS97x5P{Zmie}oNDEIb*SBT66>FVf* zSuNDX@u`RB0xJ%HG}zE#y6*j(m6%%Ks1Yg#kohPY=nQJB*XciSHbe8133rMnQZ2mhM}XN{ObS%{$?pP`OuX@5OqUo71j zU8BuWl%1#E{v2@F@ukb}PeEd#0RpG@SzIwF=jB2hHL#d+m?(SPaf&O373n%4Fb;v1 z0m$*a?6o+QmfW}WPUGDE=JoJoGi@|`OTGKWKBq7DiZa>9MCk}$*U-YaZTz5mYQW)v z@yd>KE8pHBzYFv+Y06NfW9khcA*kN&^p zqL}bSN2;qrD~l~2P-lPuxr*4FR?D@-k+ehBVMP6d^hVS026-+(g3kOV1OZThkSC#v z-@2hF9iak%^sy0{K%vfoa_Bh?)*=RX3lhdnoe_C8&@fhMC99T37*9d_D}(;$$qM+J zpONDqH6e3vJxUym-Te?BvU9@+2Bbr#f@X!LB~+CWjMv~s5kw32Zs7`EJaDqm%!s}Z z(LmG)L;sNi3W`l^I}bo(!J+?9S=uUVf(4%i?nPiR{66Cmx=;)^I=C5tnr;3-AN}N= z9d_^Po%@*@NLPp!HZeHanL{c8Y$60GZ^1m4G1qif*LKab|8_Hrl!cV@Q)`82$y=F` zXB$nl8ah;l#y2sOqyJvI`L9uOa0+|5{|JNiT{HEge+~j$7R)M}UL(7?+&Kh*ZN(*KAb2%NJ8#^%kl@rDDY^O{K}gafu@|90agI1T9Lv^ z+W2nOB(R-GH!e(zuUzdUbNd3O8SV>q*O1F;fmrwvR)?z+pn)tRJx7EVr@$2Ei$?XZ zX46Mzb0M#nuV|ZjLANa98xNqeon=919BY66tWts-WyMDkK6c%Lm9oie<2oYXFVDW{ z*!6FTF8^9D2h5fq(Eo$ZXG!7*7*(Re+2!6XGaCSbP!D?j3azKwXGA#gk!1$?OM zX;+cw68pQG2541)4!0M2_TM32H3DFRgUfN41fu?jk4E2->A7x=DxSFU4vM}|07r~i z_Y(o}v9E2_n4RkZW6egGIZaigj1pJ@O9t)#+3&u7nCoc*$OdfL#+&XzZX!aasJ2tB z@uh)RO^)(M`)s}=TtL7D3!R%=Amyc{>_SwF&;qZaF=D7b1_%dcw%g_eQa7C>4+x!S<|ykUjVY{yfb2!wZ@V$S8$!X#kW({w0fnBJR;>UffOc#z-RcsrM`0;!de)pK_btQ-%sHEbEJja2MO*~ zJvof;lE6rO9NrDgt2IF*pmB^qW0PQ~HePNI^$re2@fh*3djGu-y;@ug{S5km7h=n{ zt-|ZSJAwW*=L0?!<^F?i+76JvGp2efDRV|*uwiUNw^-e}A+Zl_P(Soen4xKOwaT^w znt{bD6syGdoY@QJVu|aKEs+tnL}qhXBOJuDhmkwRe+`oZgCrExZ##lz&3UkCZ_Vw1 z{$cs+Y*_d%z9LHs;d!a-`wpgMP1&HC%s{b3k=#_kOSekT`XFD%`fTS*eU<%9<~@8w zfbBA<0Oi>PvdGu`bD{NW=j8Xx@1Hi-4RHDTPH9Ce*mfW)wC_MNWE%L}j)&XNjt6Lk zAY1~bEEcPs4)_=DfCPx}b2mktJ%5UlK!`d2&~q;R{1w@mb_L+;6)C!0M#V7w2JGk% z@<9s5NECX}H&~et8s&*f0+tnKb!K0baLD@@$i495U;UrtX#W9^(D&f?b}_J1Q#L&_ zguMcP390)O3y&h_Hi(%;P4JHqbP@_J;zG~Egp!C%tb(3P}W{~tC^VMhXA%PN5t-dw15L-tk8 z$@h8;x&FZ22r+c{18_Nm0d>nMQi_4H!?h8a6{27_Sao^=z!~V65j?K<-^0xldxv-_ z;~0vmAmV^RXf=xG+Djn$_RvolF8^uezev`G7qU&4B>^V$oWH$ieg&lhxi2)G_#5hyFiF zC5|~iae97^1~V5E@hm25uK@J$&Al(qrus_8eRb-M>Ad#3jZ@-7FfD)*|27r* z9;$bW3CUD0q-b&lTUFXOVMGEg@Tu@}68-)W=9Xe~s91sw`Fmp>cEqf!p32Bxn0c;TUIV$SFqWSFeF z5*@|@*BDq=+vO;nRS|o7sv>vvR74BF&$~FiBr;bG?`x5ch2knx7FOQpe~fPXBOnSr z(QuE1dhkc#2{Z4R<3-VTD|hyLe0I_{JgX%8_@l>NuT6nUw`m=Y4SJ+YCpkvwSoPd< z6pgR|FOXhSPbglyAAY$Y_NtaX-BHv!LMOX&_eK7Xf)1bVP9Bv?dNg@dJV|pnS^mnm zwf4iA4T9b!BYA_OsPjKdoPUj0_D5H{ErRllRdbfOdW!Z@+c&$ZE)(PDR_0erLS$)W`FPQL zwapg`R+>wNUw^&Q8OqZ7nQt2?a9cdjAUg-&|-QU%+ zmZ3n*c+>6gM1BxoPqNaTkA0`9Mq}tvL5$#C-G_63KvV7J0jY>&zI8tXqwmYc5hW$uRi9a4yqKU-Uq9DE& zh+$apTl^!T@z2$BH#J=mWD*i&5;yj;RQugJ7I>2TSD)nZU-7chs>Wir=X&z%BJyPo zmu7>F-xqT&9eGHY_KJ>1MrOv3jUCV!0r4EZm8{qik;a;|mw9jra=e(^YA6j-Sv87K^u zLhI3yWgZ(Ub_b$(V)R4C|bdI11n57zO#^iCDuh| z2fvTu0%n?4i-qrJ1=Ok~F#Ko;AH^{=)|Z_S*lqk;e{}wx)#gDVMPES$$ItA19rsGt z<5P??PmJadje4I7vHKjhxKEy}u_9j;CAC|kzY$;b#8ykb!ybZCLwTp3ZjBjwB&hJ= zXh_I99oOp_Tb|e}NZe42x7Oe->+6bq-Ew8U@sQv3>nFoy6V$E<*X#t10Uu%tt-8-cTt4X@)nj5dTK3Wr5F(U#oT%6h`vEN_UbZ{_aNynSPaV&> zw;Ns34VBTC0(dPD1|>{nB4ve;F9o6IY6&9xhn}gmI1M?~0$Pftn)4!QMXBYwADSm} zin5L+a_S3$=qW}zfbdNhT^EX&(p4y1hcA636xp|fda>`3kW@#bTM2J1;l-PwbM#o1 zP(Havuo4R@a8QKV`M9up$OjI>2Nb1$n=mR6YFf*()EToRbz5Z4mG|3vB~#4&RhC-p zzCfjL7PhhYkdlWhhPI@Xm4}DVsyl==5{?5<=2zn*0X%pZPexJAI1j(R9^A zx&)m3-Z=u=N9IqV!ZbiTybyRuS9!r{|SHj1v|7{!RNV&Z+a8G&kHJClg}4oZgOF%epYwoT=B*x|00$~ zouK}@gA)A#oFS*p-1ELXdKDM`w$*k1u#v)I=W_V_*qqUAVaAsXr{8q$3toQu;D8%z z^q6q${zGS$L-KD{NH-cR4^7vb7)N_9q`sf6xlvTy<#$o{4_ z&a8TJ(%H3ea$07;LpjQR=#F2qvU;+9%6lckvcc5w(*6fys_Zd`GlcvnE9JDFXMGrm z*NT$vtPS-N<@8jnX2x5lchTTe^XJHO9X(M2>sO}ar5X*#raA0K8gb9OMdx!T8pPLs zdx&ws1>`UF&koqm51PeIt)GqsqvYxGXh}hdj;#3w+xLl47vfFZT)S?)-$;GSq2pY8 z9Tz;8Zb5JV@g03Y-Dxuu&nmjj&-Ya-_FhOklBdlXGO;pDoqrwq?To|p{c|yy4f-J) zM)Rp&=PDZ{LQ5<2SKJ~DY*R98O)p<$kyR~^nY`thjuBF5%%5U}yJI8)I(~)nl+MTn zO0Ek>s?UXYC4(f-cYdf_qH}aIC?1os>V;m0)wV`83tQhg7Fgv>j&zb)lu0zc6#4Cx zlx}{zN?_hLq8b+g|IUxo^A#;Wjb!sx7LkRIS6M_C@XJL~FA1;l%-bYv`&fg|ORnA= z;7;limpfNpGmwA&b%<$om5@2CRF1luXQ&E&4HKmx3MR7ri&qSpUkw6(V-sm4jnp0L zPnZ!Cm&Iu6^o%r22CTKQ*D^V3_4GB4D*9$h$|nWc?okIz*9QoC{L6@AZAUoW?Z*3P z@Q&#c_b1wq`A5N6rv3s z$`#+x-e-wxPI-NHG;p#O^E$0G_&wJ`o=jZs>^ZCWjNXx)^x5~aOSds!I>)p3ikgoG zW>E78>7|uR+!pQ1$!~FMB*hv7yerKwvRpBhsocJpSR8S{Ha)TrqLyq11}#FA#3vU% zZe6am#Jzi6v(cb>H2ls3SzP@|>BfLG?eN{~A1npsCR)w?_&{UrwsXcb;&OiMZhaG{ zQ_kKI=U4c#WRFk;_j&!LaJ19}D6!hyjF)rrr^BKorEb?N>takeJualt+XxsB`OunK zr6n0orP1;mOr39M?BF&XEB)$SqSZ;n%;<1>6Gk(`=Ni-01LyT_$Oz9+u7-3*n7`}& z?6aPe;I5DmsMO>c$mx-J*z5$zGaL=a>Nq`1&sC+jJA9BRgY_`OAUt}MmRZx*xOM{VYk8sAju6C26Y2;G~A$ zG>7v$B+>@}xfu}vJ=xo=wtI798RjuCnZbjVx)@ZZf711$bi~~b%PEF}zrIn1h zC2gQ19Q)at%L+9cR?e7A|FL0x|n_qu}O%;sH~#f3(!Ia0BPYwf8>EjNa39wZuif zb*Z@@ZYij+Pr)lSJHL}*?+*5u>g7D$S!o0B-10}bm0C6izi+nd6GJow6-?ybJ{~E} z{g@XE@z{-qxZ%wBw%JH;D?x?v{G7d_xndc_ptgM&G?TCZ!DU`@o-acBVi=c>vUC0e z1^3%dh1d8yp2NE`G(_o%psdSEZ;xdmd%kmjv3G^0^QF8FBPVZP*t3f#2iW73qg{ft z^J|#pU#_dFH@^JXRDSCAHEtjdrGMIUuH&t2>2(}+c}BxD6at(}E8#OzMyTT~`6Zz- zmY-FGzN;^-APE;B-CZIl|?!0)_F4JRa@>fE@e5a*$kx zNUh9!^)=gI1JYB9BiF;BYAqtdjMwvX)>6X1X%Fdr>28A|52n76)HCij*9x=>(#>ym ziSrbnmYkP;>b@s`r7^9ZjLjIg+CBB z(@hFEkz-eQw&X9i2y4pj_{d;gME!|Bs1%x?qbi)D#ZVJHh_ z!No&mX(-8W$EX{%*iV2Y5?y;hqA}t?p36kjxtFfd;=5?}K-`RKZ(Y*1k4@)GhQH8U z8K2r3e~PK$+Zx=vdj|&^HazFl3SIwcs7vEow$~HWwljS0x)}0wgR#&;#<2_A150il zXu>WnaFyJo)$@BAP+8>C7T>y9d(9=ixa-zwlReDGL$2h-3G;P#MNTXiEqc7;3|?;) z^pq<9Ld(6?ZQgo%TD$o&Jy*#1;#QJ1XULU_nrymI$(&_8S9N{~S9|qNd6LOkZ(Bxb z<+a(?6jS*jib}g>?_3;jvZ;6PtHSi^MD`IX1L45h}1{TFX$=flp>8$GlM5w_Ux&}f-#@sUn8!+!Ds^q|W=*|hVOoD|)u__QENQC2 zMl!V79j(KOB3n^>1ko2i-F|V@WJ~oVyAU=s(<#n#M%z?=xm#V#d(vz?yAX_eR3uwe*-sl!>le4SHm(RV$TX9Ks@POis`a^`2K})(EnfTp^VkEq%8#xD^&bsc za-Z)uE@Eb!9`(3?s{N6A-mCeZsD2@Z()WJauIaSCt24%rT(7Dkc2DP4(YY*XE)%?a zi%ZHHu&>&?oNn)1pcICP!vCsD;;YWHkmcf?mgk%@4P-lTB`@VR?OURAT9h&T`jS~v zi>Y=y4=tG^ets2hJ)#_P)sHR`ifs+lvw=*ub$(4zn8EO)JU$ zmc@wqBxDV)ulo-iP8CSNi|^ev+rL~_XMtszl~wrCab~VMxU*Y*6lk}bD8b4Dy3&nV z(*ya*4KLpGg)|j+y;~f4+B(@3NdounG#m%W3IOsjX}rDBQx z8GG9C>Zq!lzBTGEi@WrVFI0NfXNH^YunO*vGgSDbExDj%((2xSG}HBrcdk=iLyZ~> zF|cIwi)_u@7qpVYop*!<@}mS3Z}IMV)s&uh`m41N^%I&hz>CKhS~Qml$4p(vjW1m; ze!zCExW#2f{X%}rD`4p?uc08}lW$z_rKV(5%GnieH|rv*!5y|RbXlVc^?O5?Fi=~) zo^5{WJqm)h-ZPlYKqX{NQu5kW;PURF<=|g%@qp=5&by3cP&0JKUP4Hd35`YnSNn4mLXBj zO1@OM{Moh_rV8COU(VaWuFm|iRynILO3v!#rux@WoA#6Z=Bx(rI)7X^NHkz&BX0Ie z4V$?i4;rltEi$A-1cTfG#^afvpxwR&i9LlX8eE1j)~kv_3B5T37_ zzp`jng`4KU@T4Rh7cp5HzW1%SGFEa!<<71K`q`0Z1HHu9n7Rf(e)nCASpA+a7QrV{ zRj@T)n|ua#r#u#&mJ}krGh!Ino&5MwY@v}2NUs&$CEH45959hcw)kI{^H4Z|iMe${ z(Ao7zfVvkm_5d|}SDC7x>s+KveP)7E(w-9aO``7~iZzngkqZd(>{b&vC0 zijSnZ_8hVA-sydmk6x>n1sC@rdta;j%JI51wYI(0yJN>Zrc33AoJ?X}$3&$X1MCNy zON+LW6qi4G*9{tBB^*h|v4LE-M)RkyO!OK&GL=9Zs(33mc<`$S8>-;Gd6?=HS!9wO4avOMW|H?&C-8TiopG_tr@Myc}ln;``TyKx}jtG`bL-xa=VqQNw&K zIf)J%C6(T)D9Arpi*E97<%QS&m7=P#PWPZ2>f)WHNK}(VNNchwVQ5AE3p>+3g^gQH zmil_V7Khg>-!6c;?ZumO&R22=nW}at1;}5{J(}xPBz5}9f?Efzx4xOn!W-T-c_ zQ@PA&rgEWaSi_$gP$|-J-_q(>i-nktqK~RL;u~uH-a1?Fh2hKOz!DQ@ zf4;`0zUd@!qO^mmOIfG=gSlnHq$jhcghsQD?a|YR6THTE9q=3;@0UlSP>*?yGGA5% zsJ@YcXsnc4(9q&zneIpIcV|c5v`E_&O0*|457=gf@Qma=aWZ|By-&K)Rb^T+f!?`{ z#^_?a!?f}~{Zw1DNS)8CGHv-Mvw16>HESy8x-`b)JnJ7FuOyHj7AJU|Ih8ll@_hFV zUkm5-nnbP5(~3gW0oDD4rbp%1g%;Q1Jma_LTM_BxDWBPSc}d+-LkKjo{rOFmHQ70+ z$k(0(XkOG}^{E9{Lu#>ak)q&bUsUmVU!H8_b8&t$cbvU~exxW~56R!7m}a(X*q$S3FS zsN3+oQ1RTu+~NYhnA!xbiB>lCEn!bR_mfK7bWFXCj9GOyA5bli(5GhPE;mh{TN+zA zS4%SOESK=oqdFYNW(@oEWVhGUW3#_x2+y^jOD(us1px!;bSJQj-!f0Hi$)JkaMPWM z1wbH@?#l8Z}*4WaI+NSfd8I=kq zbyW$$OHUWv7v?%hVU?_UC5Ndi0wkaL9WP+NgY|k+(U)J9=sqxEzUDcy1LpXv67{`< z*nh}{Awd`!(1Ki8_qQ~{e-O5X zPr*54u3A(cYG){E;wP(4DUXuPmd|K8x;uO5EKSTM6c5>BzR)#=-l&&f`PLAK3(?98 z%THwITZaqvn`M(IVcHPb-O#4Vii=&?JH4_wHB87MF}unpH0I)~V7{#DL^Zy)w=19e z?5jk)Udp1#LkX~+9o{vBI?xz7r)Ny-8$WA^B`ny>G#ZNG5+BHU-FqNUh>RR!9N4@p z9~x2~zpm=ux~JDTdC+*f^dhbh5PAs5N)5208S!Mg&kOW6q_XYmP!QV)BzvE&F5&d} z@xRk3N+Qds=#0S2jY*S!sR5%&%s%V$Y**%8reoWpJvI=oFE_8dR%=Tb8ntKrfyuxz?t(7?O zk1>8kSiaV1Y;v8hTl#B{;Zg791X@ZZZ6*iW=%jjR96QG7*$qxKd9H{yBF{t~xIhee zdVa^-oRkmD{Rypl^yDYfI{XJ1Yd=HV@NsAZ7pZzg0_pOQ0RioVg`$|@7s&~d?frM` zC(ws75MOQsjS?Gpz@twQal)XkwzO7KB?9@)0L>&SU?Qk+3r#+(w~)*<*F6Z`=@O*V z;_l~;5XChG<-i%i*G3VD#K=~&`Ne2*XVxiV&5(5(}vpJahW55b7@8W z+X>>>#YNhDz0~Ew_{lm|2mm=uc;4bMt^8$0nS=7J(>}9K|5hHgGaou8(M?-1;#X4n zWji9o)8iJhkyi7fVV5{BK0}aEtCaZX_O8ZSFIr6;l3tn7W1Zj!v$)44W~V>(@WOFy)P67ga#aGFd^*niSgu#&POhg5^GV9lNqH+1H7r<>n5{|| zsh5VAmC#H`uh|pLgVZD0wKYRmPp}}P?=8RPdV=hA-|y2rJx?TsQ4qh^h4DV|etWbe z%rM#cCi(EwephLmHb|zRGgr^@#T4plXn7B16Ny6e~O@@ z#eyTp-jq!p4KW8+_C}0-b(-8*T9q|FpmF!`w`pp&SQfQ-F?C0XSc~&=er;}jigCaT z{@hqi_mTYN8{d}Og7`^-a%Lf$Z-33{TbjIE+%(`lj57`L`c4&%!k zmsjkc6G-3+)^`17tB<|rAGTapHG?fdN|f$ zbdla?8wsK8@uk9%N}7xd1KaJZ=kql<)y3(zy!1|QUvw@cep_K@`5IAiP243Qqbi8c z+oR_WRUBI;x@1F`F6Rq>n|JoZgGbCOD_=8eb4BCchSwHYgak`R<_#y>7PGS~zmD}A z)w;W6nz_J*X*$i@oWUc5vzZzHT;uItvc|vsV4C0_Ln!591 zUFMjC@Z1(I&$Sdfmxbt2@5F-SL%N|~Hku_fV#KNtIub}U^>uC$^{LoHeDAlJ>3FYY zYdG0h9Q73w^4@!)RbxO(f^>cs>wtmyZ$ZYC(Yjao85#T8i`99S>b%o>5+p-rHiN0@ zM+2t5esYyj;pQh6xDuns=CXSHh|w#Z$O@B#@2`G!81B&#a}T zq)*o};wxCIuUw1#YsNhE@O3{Cfz9-I@hW8xV>hb z#{kQqzQ_W1IbTE;3qL=PZ9-{P3fVe*%ANTtVN5uYITg}-n14<5Tws?(%iBr8I-QTt z87Q5j+_l3QmZIFFwDUvkEHJD)M8=D{wO*#`t);i9z(Cyk*x*&X2D(9x1h?hX$c{KR2QgofQ+v*a`YPjM2$iPHkS{O2t7* z`v(f#%pHc$=<>$iFWVfSEMxcjfJ!liA=>*SyL29dL2Q(StXyq7wsCl7+O;}Ek1#!* zHBo&Gg*VgL686lmAGvr*V*|yt>T+@}=j?18lB>iGx9vvb$ukdW`HiL;IX%`=7^iiN zF{R(%38(+^Y^WU2A`Fnwk4x2USA##H2Br? zxunuiwB@@S23oC?R^%k&maNV#qaqsFZ-`?vx^t{8;zh}q1$VYNP!7@u%#7wGYD=#4 z?&R7z>bY3g3rqLfqH4%s*$~omevONXATsj_CL45 zV#EMl0S1*#4!77z_N*$i;vnJ&)FWxX>5VxErS3UQ3@ z5^uCOP!Ly8VFy76nmx8W{&*l=A8}_=-Uv9iikf;c|H!r zX)rx<4NLJUJ%{f^iNuy_a&yK!a$d4mS2tnTJ3(lBFu?!Rr*sytguNZWbw7P&dEh;M zf9BZ_eVWVi%eDC9bJaPiHe*5c1q*z5Cv3uWsy;@KfEA6E&^qJLtz0+D>x?%BuW_n( zCeH)mnVa=kBUmV85oEdw@%G4$l05v60VK$Edv~#fpCaYUnJW+8j7;>|Z9G+U0-|T+ zt5z0zhZ4rAZ~8paT&)~;-5ga}^UX(id~qYSx%g z+qon#Ka?3iIKmmXA;4VQ?!(qqzXB_eSRsHG?%}yNZ}1A}vOOq1eba>52N3QmYc8xm z626YbL_to|wVmd(bmMNB4)Z{DGVvRG>@oDME!zsZ*5V_XB^yQp*Zj=pdR1&Og8Y?u z+HX|cs4!`0*DKK_mFuK;E%2Yo)tnr8g|97cb44vX-_Wmp@1K*C!&+6F|7^jzZN$O( zRLn@Ti#Yc}N@jzY=VWP-0_VaMHcq{*iE99PfqS-W+N@B zFg{ue6}vsLPj-s;rMEz`w%iEbVd13~DaP)C#AIH0te4EW_K_Ug|A)Qz4r^*#_k|_& zjx?zOrS}#r5Fjp4x}ixEL8Jw+(hSm!2#C_8L^`2KFH$T>Q9wEp5JXTxkPb?uckYhPgU-ROB)TB(9FSGtJgIGT8|P>k_YWh zu`Q=Fk8Wjb=39soQ)n9YNoO|wa49squPCMXx=@lVnA;lg-Q>WCIQTJwNOIuS^)Eg} zcX07RtW+j@N2#8$V?x0f_i^`wPtjL_)22=X@WawyIs}<3&9S0;814F)BA{;xp@~#x zgW-ILxb3`|xO~$-Ue+qKC?(I2co94ud{p|Du69QJ=lDo)I_G%h8=P!e{YG&}?)|*@ zT-J0Gyxvxh7U3xL0-MYy{vB4rRI2U}+r=T+=5L<`UHb0nD)GqnUde=Y+km^Gb3~Nr z5sxuQKd+k=B2aXcINmPai^)elEM+_Q(mdKpFO3~jyr4thv%`+5TDa5L)WIZZdVAXN1gdy6O1FnM1YK+r{9>G(Xj6}}^4h)B4%ujS9 zN`)lCebU{lM@Q>>!>GEOR@re{+;MlW>)r!SZwg$k9lQC^nQ}7U-hTIsUXuU%dxy>}_8yRp?7=3QXFC5S1fV~sHVD*NMSyHWvMCcRZ5*)gyX^R!U#rRSy zJB0d+@(Kss?DmW#!WwHdn;9Zze)}~z?x;^w#QFhQ#pQ5O2{o@fTDf6*;LjBqVxDXe z8{;VGK9QFIOUgxHNhxIyqtOC8K)$6xJ!qeY@m6WX-1doYql|+#oOSif?^Fwfm^BbT zl>=1vWWo6bZ{Cc}6)W9kLwY+$@lsq9jxfun@-o~h7GhFG+heT4#R{p&c`0A0fNOI@6@16qdx6}S+5mhFi1v-vUiYXwvkR(N^bvpeBc*utZI z;{^j?NU5&!b+AW;L$pnN6glB#NX;f88MWB4M;%ILSPxE2Y@^U&%!i6#I%XNwd=jxD zn4UQrO~{o-##T5$@5PQ8d$h99BG5y)5V6h2>9ke-Qbf!h`RoE2T+2kF94h8zBSn%N zxE%@d<<9;ZtM59|V)x9r)JSj9k@}?TaOWlUtk>dK63YV+psw$K*l>z`DV-j&rAK(61;gR%{(UUANoY z38!8ZO^fwuXAe-kg**EyCkNe9BRmU4CfMsM+aD?-e!Mz<^|L&+elEE82_!@=Dp;Bl z=_Du? zH=*LykBWzI}%_Sb4i;qJ`z~7GgmDTmj?7y@fkbm-| z_UMHam|>sTQT@Z<8{X4ZLBAy`Mz_&1Nd^_AdyEx>1EYUoj2F>5%A)T)*fA;w>66mE ziO5bX!dufa3TqA#>y1Y=igx1>o)@Fnb&F8hiqiToP(>y~j~1-R!n7@VZ?eNjNo^0J zau+s2TaoLiIELtg32sT%+(w}xazjPr+3oWuLtD+37&zdgU&SRwGqVK>W=mYr?MClHVaAfB^6>QSZoC<$ZoO`2~A?E}$%l>C_JEz}Slv#mz zV&UjPW;@2THNov7c(AdTK#(clu%z?Vvyz;Ng94#7HaR)h%6Bf#<$i8_-axDil&k*y z?^n(e9+Oyz`<22(!*rgb$UV9^L|gpHOu*%>4cQ-EN1%(Mv|%EcMy=Sz3f$o@%|VeO zYmhoA-t%$K<$R2bbu5&>y2jge6M_9aYyO_8ng99JDlmSD8!uvuYw3upB6Xp0XFGo< zu!BtIONVe7dc+WImfl+-#0_`IZMF7^K~=`5S#!geC6QiOtq`&3il(sEaTZ(-62y@F z7+eI%=Y2S41r`SXk<92)d^xG76Qng=E}hM=Yl22pPgpSTcxf;***j7S@;qx5iZM&f z3i4oIfC5B|&!7jDhbsEuR*B6gb*LI(CzE1Hg+}QdVAu!#kMu2y>gf(I4`?Io5tt%pw|mWm;B(*1I2 z`*CS)-zQDYRvZ)D^elD>6Qh7$Pq4Qd=fK>!6VDE^GaVf>pJ0HKn8TQTlMqNZzcM;V zhP3p|{P5mGx}8xuB(u|mq(03~CIR?E4vhVali4O;ZHGYh4Y&$|9m*-7e-tcw$^esQ(+(4Qv}q+m3SCKq=y<;+PGkXp zA_4{XgBM6crg$Hmc`?e9nx+C_-xm?8kGPPJQW^xCf3}grI*K*2y;4%QisYb7VU6S# z;bG*!^m;cI+^&H!>L89I_4JqzWBSNUDqPMyY1Gt@cH9@R_K^+|GX<$K&+N7dlsoUi zWQ=cP#!lykae}X)7p=zFW^!Q})f`eH^ig>Pjc41lfsT<%#Cl0i1Ej%fR5sao#98{M z5AG$)gV@qInWO|TEIY7S3Oi99^{o4~3^`CiVL&*;m$Re)233TLJ9y?XrOmlJnwkPm zb`e1Z!aS1#mkGf^=2Wrg*+PTiRCJ;0(nRo&C{nkT`5s8@)STpM`uNc?XZ+QjL}W6p|s|Y#}tGl;~fS#-Jn>KlO$u494-V* zQ4+00TNe=5Pig5_f_o)wjjRUeBs_ND0Gs@^3HIY52?@w%H%wf4n?vASTusTP(5aT zLDwN&PPi!aVfsRJ6)nJZ0wx32#ZVZPdNWF3p9q#nSg3kOLp(zznuQ{P)A@To@|biJCFG zYDFhhTjeCEUMo>??C@|@C7$05iy1l{5{6IPG{XuzwX(yleT17FLRCXqeW~ctOLA&# zP%`pO6kN`=#F<~DGFi(6@xe%(2v#m9(-w3SsP~H*gvkZ?w#4^$7}#l{?STZF|IZBL zYh^7!!83``!%q!}m7Eazy&)usg8F1=ZhczxQIIzff^9bT9$iNSTXO7U8P0T;yU`;A zTZHXnyEwsHhiMVA&BW?^(%JTX(k{4`9IJPr#%u?9)%q#SFukS<7THlQJqC;9N-c1`A0d>nqrJ;mhKnis`lXxg4U6JehS+ z>Zq8dJIR0yBJ{}RL*utNm)Xv9;0bWr>)r$*+2|-a_r5Sg&JqKNkA5S#XeK|-Jzs8} zFg03oiTxO4HbYL)b$*73jW8~dRrDAlLhC?k0g-Wq(T|%-y`9eHDEU*USc}OOu5OIx z1{>oLluRbMCky_!$cV>E&c?kgQ->1p8Dwq%D=7Bjm*Phv&PX3b$pWONbmY$}u&e?S zfg`m|Ubl*YEnG>q5v)+7I~1L)qTPjp?=0`Ebny7xK_%R?+IZ9p;0qT z8-ePp5RyQiXTdxH-}5Vf$lIhE7l2!Y`u79q0}BH|kW~-T30I;Cf%|ugojQmX6j06l z^C|mMe1#cN418$mY7##@r0STf=`(PzWYYEoKzrQPVLzAbG! zmxFR}(zeD<xsDz@%zv986j0XsAjlcdX0k?d zrZbS|NT^qlgmH~)&@$D5q=Zr+U>ydleuXK(i-gq#|x$m!Trb~>2#cHY5bPp zg2CqGYAYi9-W=vgPo+!-e?XC3y+8oVnMo2^wa}HDR#`sc4jvhgmTOQJXLdPWc(a=&6M{Y*YV9+B(yFKtO2PHPKN}gWhgA|Tx!XmdoADsUyMYQ=<86cgg znPLb4_lWky#xulJEu5r7gY|h4D-1LAXf3zIiPFb8)*mtkKi07neB1xGeD`;423XLJ zplbrpJN|^DyD33;OW08Yq<>dys49x1q*2sO1V=r!Dd=j!WMVJ~kd5bQ3t9k}05gOF zy$Da73#h!Xa|x)TEG>Es*3(n^sW(gKf2zB3V9Y|DXpdmdORC1INqr^FNUB6Ne&dB( z^*)W~A0;JMPNpNcPC-Tx+Cj|UiEFE@1r_j~lhdW};8EPHyO&pf0JK0z*Rd}!#x@0uM6P8@9dKdyq@+=>gD!352>ZJcRBiJ5U<}XiSa%bj zjda+~IDb0bRhKicI8^?jn3z47pa5ZB#y`*B?E8T`>tuxe- z2bP=iYUF9K66>Pw@ytf4MbNIh=rtDo;R|vJlpE*RFsz`-nsWsGLVRvM8oE6XC;*l< zA5YMiHG&yd#9DxafXprGVbOO$%7CCHAPPo%{s~F}B$8dQvEp8MCEsKc6C2b^Nu&JF z$AXrpqmk0Og)BA!u86!#=JBKL-CP%2lo=!MaWnUlrw?w=)u%Y>|FHVAoTeZbe&tRB z@?&o6OF9`VEWBo$vl*iidd?NK$DD@vkTIzasR>KZdJJH2Su)HLTfzDht)Db`_w!#fRxur2?YKBh_ukB8PxFxglUZ zDf=K0pQ`|}f_cWmTX`S6vq9jFk^q4jWZrguO<^JkSDfh+cDF@|CS{;qX^eRCjDiOW zh#)SqIo5-ge1i+qfD^PAbQ0j%AQHvcF}I1GnglBg!cD3UP@le*hDBB|1Ar*F9&A?P z8x1M)_Se)9BBDWl1_l5`6kN1+3DkLqAUxz>TCFB?I*+y979rl*DMWzehHq@5(y{S5 zcWSC!XC>9=vwh+9`7*=aB=wE!t7H4{^NhR*`7)W|obWo5Jk*WIAoEv96`p(CV#yf- zGzbLhZiSExk`*__CHQG~%X`IT(5paX;ITk$sdEH3VakxFaCm<&ZTRN))vUp?7c(~c zL%J5&XCoe-%e#eQL;$lo0eHy_n~z$Cnt`~_3ZPhNZxl|FL&d)Y7b#HqzeIH^t{6i# zKV!hPy|K(_CV!~=*Kd8@5n3+|V^oM?^8XEj-T?1wGBk&@NAn~83Qfv@JX;~)v6|2T+tPY#eSt2=^m_u4_H&ljg9OoTzz8Ba}mj2i@i5WOI% zC`-W?Ux|8{XG>cpsaHi3I_y~A%spKLUyL(92xm8N=D8J0HI-X439ZN8C}pDcjeKef zeY0!w-yU(lJo0{l7@!7ff2@C#kd%rJq4&*U_H?b@oAGJQU++^S`(aa6DsHW~+?wtl zwC+4Nc)a24;`Y|J=cpkG4*1v{{VPr-709@3__w2)S zTNNP23$j6dsp~KJfPYPRN%|8b#mNO<>iRz75k|lJxZF&%A_)ML0(RO>wzlK~5ORF) zfHSGLhjIuM42fbrCx5pHprO6PDExDgC3xiT&H(BT z062M28PlTeGqeuAM4Zy9q2!5iD3w>3qK~;;Dlaib$8xzIy2RMKHd1gi#@OS*pzp3~ z5DL8xFqM`yjiS5A_p#ETO19@jpKFW&vV@CbsafMi<2hf*p$_XO9m3ovCqztwI2E~& z!xL}*cz12n{avFHX;I)9Ey6|11%1#=LM_)287wjZyjWt#L{(IN`EVf_OvG;6i)v*1 zEaMM^s$G7(%5FJs24t|1RuyE6UXO+=MRM*!e+MbiVk{E?H%Q-jz`<~a(Fjjkfr`!n zpqk_iju6YmWGh*+)yt&X@*Donm##I;CEi!%9$z`1I&MkQL!#V%mW0AZ?J)^$5qC{ya zqMImVc>Ul-HuEDtZkml{5}qzAG-=GTR`5Y%Uap7AoJ^)K?$oX`u!7O$`5nsz0$ zh;|50p#pnmnjHgRx7V-xA;j8w?9w~vDys7o7Wr#e^nu{>*In@*#Q3Eubvgt<;`(YS zegjMGxIS4Z7XA3Ut`N|67ZXvP#vrVii-bdE66&E?HiT2l)SNqc9&JG&3vUV4)}7U* ztNO;oJn?qV@5chbgh=uF=;h}b;mz9LS|a;r#rSgZcGr?-hFx0)Xeo!U4qi0bN^Y5p zU`t8bZE7s@{ocU*gcakrP#ZA53NHzg&z)W`>%40;-DMheUaGX*W@YoKHvjlx%uK1h zkylOCR(tKO0+Gk;3^6#A>gJ2=u0g)r#6U}eh#r~~cidctW83qycOHNL)9$GI>UPev zxoo-9_r66%*M9a=R-t`XaqEuf-l=%m_#S^B`f#Oelp@0cZ*V{rluIIb#JoDgLS1F=8yz zo4!g#yw`+YS*Ep6rXR{5x=I&bAlS64sI5(+GV36?-{U?WWLr0#Dy*9~GeWji5`uDa zN#$gUR$d>hJe7r{Yy)@R8HBjB#4tS~VYZv7!-1vk#x};=>cZ}flj|J@%H(r{8ubS8 zY3qCIFJ9I+k3SUai2BZgGa}4JEDow0`%Fd5^46`rpS}*=#ix^lf!kA>4JdN*iJ;P# z{k348iw`?}RYt>Bn}4@Qr)-=qAta=Ajb{4%W7|umWlvk&ib>F{n5pXLb^&kV)6_41 zO6pl{$oAcjK(nVGZ=m)tav9NJOGLfzQ?kXnT`rTU|9CmPLh1I$*E7}FG1orfkEV-z zev8hx7%eRAeV45}IW?9W9Uw4MhmhH)Nv&h;6B`mn3;1{t;$yoKKs9`j&wK4bIfR*M z+VNxtj1kD^3`q>_g`>L#|UqJ`rmYQASKeXIL69bIn&2D#NMZ{7KFHW%|SMkNKlPaCNqJCP9JeV zi2dxB!kM1|8&UXf*W;7lYzDst^hpx)89HM@=lu|I%~9)2(e;scX4q?WYsZ#X!vtO& zkx)H7wmJ9ZNZ0&)Nu4tS84A0)dfptCD`t7~iN)z5O6!+1_h8>i!D~)V(_^pp9Be;1 zgXh{=b$8li?;cL3aOov2cQ%) zfS&+OGLoT7AG%K1gKh{k-v`9yUvUCCob&%_oB+hfrT*MMo9L<;nhqvDc-$G6fdq5; ztgOuxv}#9G0JfjiAgB&lEol*HI_dGDtww||H+OSu7a|t3d5$x{=PT)|EPH7wtveUh z4e)8<Y?|dnQslWiytT>-ObLmeQLjuN^h zB!?Ezb3lX^Xp(&;?F&Nk&f)RDT2zSA!ef*5(v9)Qd_%DS*#!`X#CU-g!5Fmqdge>>7~=HqdNSbD|6?R5!~hQ7850VbJ#8feBmUB6Fs23f@9hCQfD<)Ea}n0=4X8j zX{v77-Dbe2osHz7YVb)xkxLOny{@)X3|DkgYRM3vuxVQgWd4!j+Da@ zx(=3O;d|2iNo{)Ql}hkrh{4PcN;ge7aL!OL^2bUu9j0k|%bnl`KJl-BBfz!gW=PNl z#EAxiln|;eMsCUwa0gdFY5i786mTlk>WGzryC|gt{9KE#%L>9$XiQE3t<(NR8Iv5H z@6&}vrLg~o1}N^`w6z*u!rO%KXzbA+DiNMH_y(-%mL@Jv1r*J;N?dJnxN_(7LG5RfC z6`*0w3FpO$iO7@;sNR`6=#TzZ$b&Q|gzPiQn&h?BbA5e^DEx`% z8F^ub;zS|~H$#+la){k%*>Xk}nWF#x{ra>-l>7Vf3ol$k0u3u*SG&Ge5aWtp-w#}z zIE0f|Q>|7mD=Xjez;j^Q!QbzeA>Jih8mI3$kukcHG5_XJc&LtK?+hu?{tkduz%iEK z;pfnQnubysPB2!DD9lg^Wy6Qn z4^~pfUTebvE}pv&*X>-I90s2?Bn<)xS8S`=;9*%ajo!PiaNKJp-gR`wB_=mw#{TZK zTsbM#bINsURSB(nN*l)+pL#rqszEMbSX55+{XnhNetyaGVZGh;0x|3uU_AcH02Wvf zdJoy3HN60fgaj`@_d=^^7aK&d?`|&ya zJzpDihvU3x6ou2Hgwy(0G7)LIH5A;OXp7iuZd*5!e+aAHji7nYmSYj~=;w;)ESsZQ zV*SbN)z(0_EzE^2YHl{?Lv1MKfGfyg6csi15oelqqDM;@_gTf-R9Y1w)LFceu?u_K zjE86lx2EE=)OM9`sFue{XIx8KD0YPWt;8+ zbOHpEv_2`K$!NsafQldV2+5uplqbM>DUw&6oBdfavFZ|sF(hX#YaA7X{R0Z1IT2wH zn~C8zzlx)3P82o($C`n+j^SEDxN7h*P6&hKNoistqSFd&I0&+M-w3+tG76p;yM!mQ z{Kv`#OHl8*M~iBo?r!D@jBH-Lq!8c*b(0H9!y*^l|=?` zc}4E|?_j0)C0KRixvhjb`?@_zJJ9g##@a{uOFG+T&o zO7{tKP&_^!b|3tHKA7rFL83~JnisE>D)W~>!`2mwx|A4GUB(X3xaY&>NLC#Y`5?AolJ9Y#TG4G(mecE{Dv{X z-mKAbH*r&din%>G1P&kO*-hoJu(ag|!=dNOgV#)XO9k4h<-dikTyk=m+IZ7D&s+RF z>h_QJu>LdCX$3q07vVXveNuM0Fb~jx8y1QQZ>RQ7&&$Hkz-uiO>>Wd%4 zZp)E_LRK1iS1$F4E(`Ha#YDQvrRY`MJU7&w(d{Oc(oykJE@d*lyC|8%!sajyqyhGw zYXPSN;hfj{bJI-v#B}rGQyUB7tkbP1k{v0NwbFep2(*({|m0dgx*${=DBmIE#i z08yAI2VER3ljTpJC3j2|@nS}J9wMDyp%>Qn11 z^4zx@K7MH=RU;{q-&KV>M2hEV`2Bp#sT6&)qQXH2!pXpH0UFR)X&>-u4>9^*nsFcp z6;>^I#>As+@FcdOu1*EiS@oEYn&d#+_^glsH7y2gdxov;a8K}0qeHK>NPpc{ReslP+`T7jYsHJ*8*+; zXI=tnCgo#(%1Qm^_<){?Yr}&Z=vXQg<=+Cja$6&SXSbe0 z>QMo(gfB!4k_+ZYBY_|ygqjg><2na|^#vnbC>=8gCLIz*L#mfx3LZ%yNY8N+v%)6+ z(n^T7+vviN$p-hIUx#tce1mSsfm-ZwERKT_LR&5i@^2Kr zJt$AdAlQ@ZK7F+5L8(i_Ve1PK06+W1Am!OVWzPSPU@Tili9iDOTm8)xl~0qhg(BJS|=BE4!G`+0;HyDCnb(WW&R@|p9FEl@F!HhfE1B zR-NaHNjeir)ufFHs{`VPaK_Rk6|6e5HdKoSEjiF-F;Fz6-};)}lpYdfOVww8AUPK9 z5htIWyFg7Y1dIZDRQ0Un+4cuf)jDnVj{t`(b=^M$ut>Vz zmg5gVfCCK?FxngtK)J}=6Ap(V0cxYEZktq*jTF;zfI6ITss z1%7QHG{-MNC28y_&{HrRaWN|dx626Jhu=!DP<46IBw!gKZN-Dko{rb-u##~Owtp6N z!LR-I?ji|&8Khx%Uoo=#7*QNOpM4-(2QsutA zm%c7D1%P^2jvVNauR$wzIp-kxg7;nn`Y!_&SKi-fDyDCokpt9X;CXhK2m=k7RUXAf z4;(N#&{fq)^gz~wKXuZUxKNlDfRG?5$b0+oV!EXW%KK${OV@3op!@Z2{WpM}lU93o z9&?aMe+$NBkeK@i5A&B1=Rnb5G<%aF<^z;$&2HxdyN+1XA=d|hj@BiVtNoJ3e)pWx z17f>oumkEe1^9Qww=47z9SvOMLQE!mxiLTL*9{^Rq8-j{#!SF{jA`D zQYhJka2gLwSH!bIC_Kks(4Yw2CSmRec>4hW5Jl)7Ktd6^LaZ2@`vR%e@ldKMO` zTbT+JF_5SVAp_t=&_9uFo_C$=I|>5}&jLz+32@-;Ar}@0I-zfTa1lr<9o1+GBBb~I#5krN@8;@PU8K{Nv=!TE=vK7dg*LZz1i%Mo}U)aKo3Xv{sO83P|A~5gFNCfXZ}UA@eX`eT1SHhJ^AnxBn?Z+)_8z*E$eIUH*`$q7ZF4Var`8il zQSjx0FqO6$_Fj{Nq;F`)xdPHe^;Y9c>X@>H96oqSaCXi@GcXtM8AB{L*zI0@kJG>- zN;(NjS)C@3$sr*yp#IBvY2t&dxGl#Cj$c99GlE3zbh>~2)1&!6?vnp;m;8^rrZZU`~G5l8YL7byJQ1Cv5mDDig zEC5L2GQkK6@6!Lo$q6}7AoC0z0`!Xi+H`neU-5SRohx``RPI)ghiO}b9zk0kspt#( zzyrl>7Ep}?6yh%_!{15lIC9Dum}j!9L6V5Z{*n`0d*vfL4=g6fdWu6@#d>~a44KAQ zNL~D=dKS=uf?R90D3$8x;*gX%I=)d}kBx`hZR0S4kwIq*+(D0P_9f|}SH@)mTM^g{|+X_=qEJK<>; z0C-6#p>7L9_0*(99rr^^pg0E9r7witxPl^VOI`tx_V%$DZc$bjn|q*ICmf>1ix?!I zKb`vY&}@S8!Xca_Z6!%4;o{xb2U-h%&|8Cw-`EKI_0X&oWWnNvgC6>~jlyd+1oQ)~ zCyd8VgDL`u7%l0dJwe9+Tt~%Fc?`M-Cv6jKp&-!!(j+oR1Df!cB@gt#picNLutu!l zaB`2KiUPRt7y`^8HzG$_BI+-uO<+X)JHl{jQBCV>j&oSP1JfrvHQ$~{c>0tOG3wL~ zDlSQ==E+we$_~ln#H$C6mdqszF@?U|dq6+HoKaWe#^93suk9vkjuP)^IW%SGtgzrj z`2|Jve<-oT)lug2KXZ%8g=^erq`-}$0eq=?Q248?&&7l4DAY+qtU26U5sM*Y9+3Fmgf#n_w{iY1%0L-*7I)Jsi z)8v(w>TIGAYXkbiaqFNjUIBd)y=U{iKiHa9U;P;woaeiuyGP?v*~EN)I`yXH6o^58 zG5UeuaqW;X@G&@x{~dgD4*Y@um;vpV*8}a7lLh+GH-PZ(YhRq(9j^rblR)U|Ac4Gc z$LqI?&juR{m7{-k@$th&4z$<*#xo7g$v6#TOn|EZ$5I>w{D7651I!K3uz)s7YkX#O zg`5ix{}sZnaH7AO&jz!9Dr)^x{sKtolhYH~ktbD_2mxKK4fTPl7c(5wD!Pc>$8AUb zdyLgQSTP(x8bw$2>Dr4wB4-DW>g<30b}OT{APPBgXJ&AqYBttwr1=d8ebvJrjVAvF zuU}fW?)PQt0X;jPA5Z{=?1v|)xE0+t$Xf~!5J;xXDcB}#UjgvbR^h|6RVb)84J{SR z;bC(*MTdZ_<#;gb0`O1c1s1T92f*#50}S{#TV9s7Zs(jounMng0?J)m1*P}TZGg2D z)*XN2h*A2i5Z|Ws+YbXVGEI=FpRQ_7F$TJKpk1xJK|Db^N~N*^)al$CUjdLc?LyG` zi-x5?k^_^8;OYCRy?irr!2H~x7{7ER1&}HBvZU0R9%P}ZIEdKw=G1xwKbENH^+pCh}#*w_riu;*1n9Pv=EFj2?{^DKtY60+h zH?fXqz_Cd#9=JLnl1Vby+7 z`)+F6Q;BY9|4KG9pUF-BGr7k3w5k?i7cIcWbglMH&DlidE5z6S>Q1N>8_)}h5N$59 zR`u^Y^co>15@811X0Ub0@dh^sa2u<<%r-2~G@Tn6LUhR-`ZG>3v{V zkQkFl0FHWvbPxn`nAyNV!rY?ac>7~FTh3U5R-Z2Bl2v1l6-P5SeT=PD6BA2*EHFEn z42jTuo(Ea=^$C<7UGzo5)u-)Ly+L2Ea(~!7VgryG5DQ9Bo(X9lvq{IRDy^MzIn3q- z)MHEP+r){or{u&%A&} zkqhnhVKUSL<+oge-H|Kp6xOaYo^)WJ@9u8jnwo~+Y$HnyItL{^T7aoIIsHXHEOJJsa4Y`RmC^&AHGu$*=0zxtH*|| z>b^pKLtgaF<>>a)@c*_+fp!;VG~WL4l6Tv8>+IExs375!dZXFPZ>h_)`O;4KzJSi_ z81h@`9yzV{$uoUV>Fn-W(~*T;6_<>_2Za((&W=hx zA}zX4+i4h^ZarsGBt*7X;l8tKj#AB+I*oiPw9f7T2g;|F&86Jj$c=vGS2aWUF{&2KJ`+X{j_J{J!m+nwfJ&3 zRH~Rf!+_As!KOo?1Wr^)Peirx*c(hsIhfM`g8A>^K$NbO!(Ex*JJa%3PVRg@oR;Oj zeAXKWySf}19F=QPw7ZVG&|j9(P+D3yQ9LtWv)60W4evbz>Hpl`PCixwO2`$y<;{D6 zR|zQh-W{3cP0o~S%@axQJaR`=D_n~1=lcDqa99aQ4_djl>b`ty00^bw7q>Ser|$t{ zj#qij*J9IdKjx93#rt{I=_U1Zl2co(59LZn{D11MEOcBm6zP(_iX=*e3f$tP4$jPXYye3@r!zOyGxaGt#TSBE@_-AE@?;WR7J5{ zKj!7mmZb%)anDU(S2r!IBYAm!uZoL0VNmyNYJQ+VjNhg7>Z?`!TvW<+BZ0bYl}o^z z`2ApNM||FY31NLk0Owk?{5(x&=@$NW0BL%c2uFSCfA{IS)5!C8$wlYO=^}yGz4v1} zhZZ4e$w5Fcn7A9{$Qnss^=2;PQC+s8J+Gj#2T(FW9#)d;Q#xF?sAMt2$~dr=Mly6*V6Vg_T&$Uq7|4$B?S@1j)`cx08b5 zu(lz*TtjUyd|&!H0p9_*?#@G9L=POG(D+!Kc{u*_b84lS5go#UCXi0$_^p}!!tQvO zwtxXGQTp_OztNHTh~uX79{d<-N9cJ{!?*1pPaQ6!+nw;X9X9*#`9xzJU5l=dDwoZ2 zSS)wBPoCRc&MQkE#M}8Kg_myZ0U#plf?J2ZJ<)(_P8Kx1oq4QZ+M zOHPQ0qb0OO4*WEROZ~t(ph@xKByd|Q=_Vp8L-du6wfqQ_+l1cckfiUoHkbt?}KaiPMT`}o~7){+VU3?mM@TW8Tk5Z498)lJ=aL4_yH;z0t&JJ}evJx``(_L(PMmJ({;N7+wXzqm8~nFmb^)>lHy)eT$|-|hoR%$J5`EkkASTo zoj|H+g**OYdbCh~-fp1lX7CW{q{9x&Kz4xsz*tYl-B^I`29tSUGGq%)=Q#_T>>Bdl z)TvT;lGH+6w(cD+>>Ld$EDhQ(fTTXg*e8ZunJUk>^}Xkb*4>H7&?A541;t-F05=sF zx$#@#Jja1Spb~rg@hAsqvcrJ};PJ23Iv_@DTxVSD%aZQ70}eSjwvm22VYvVFcT=D* zPJ2dw%_cRdg;oK~V|i>#=nlVnB@+HERry)Q-0m&4?F{HkWUT5`8{8doEkgUmuP1?oib3K|W2IBQ1;B z5FV)!|44s}9z!mD4d|}!84XnLl~{Z+rs%mlOMUGjSK-^F`VY@{e(Qczhv756WhXT_Prfyt=fy0^)kWyOD(_ZX03 zkvrO?e+m5Zwl}Eu+mK6i+DE#o)b#46oMf8ZnIzX`?7 z=enG^&x$RF7~IcnTun)gK_SHD$Hd{@?ChU2uO2n*f8^s#U+$5W+s^Y{YYzj;H}qgb z_o_g{p27FZLHNS%psjb31Tu`zU(oM+y6SaG7$dNQ6Oj-VE_{mt&~p{?x>NKlPNm?| zakmmCW22DCOs6xV^A#2;l8aKsHmG%PzdJcQV`D*>y|o3G^Z?Z509$s{-M2V}%WpF&Eijs`6yt1P^(>t5Yg_X^we zzcT7Wi+i?l`C(G@ZSLB=lUK1Plo072{#NJemK*Z=%hRuRJ)l#gnRAztZYb6!P)5s@ z)OeI{7QGvzUd(fj=6!8$2hx7%%9g4M3Z=cjyq?jJA+9P_QgwGTe{pz@(fNdB&=<@N zn+mTJW{c~+mEY{#EJxqXHAJhi1ZdRNNZWdyL;jfg=-yChzgtrf_+`(WT7U)l$CGS} zq!1@yfG)y^PDYRVnKJScO#?`4?!DW$MsE656aU!H1BMkTw*#UVboHWB#~x63W*U|PS;!?ZBktLnJHI``^td{A9xf?GyH5d+`Ol9=H5A#`4HrfQ`SaFU2)Lmrtv7~6d9M?;y!Z4OfApI3 z-<%D?~_$b=OMj5WV})BjRmd6dRUtJ_~kUR9KxKD9)s+l6(%=|e~n5t^%W zb^!rXZ9hUYvTsvnp@T9u+-$eztDH)d&BD+j z@s9$A20wbthD;}mar;QBDgWG#wgd9f9gPsSUvqE%_3qxPt|kW)LWwo&$?j2ql{ge{ z-z?~gI`T;~0a7dO=+AzpkkhK$-|+I}nd_d`vGvzN5ub!opS}T`$2t1`hQ~H={B{H}{fPS_iSfMo3&O!#aHnICWaUL8P@_cNXwwp;Ire!0g_qMjVVjJXA`Y1C)v68LX9mJ9D>ekuzI zalt+x)uYU;qLUFNu6^|N6D4{Lh3iEa65jsc3Wa?i*6(qEeXo5VjGKM%@ZIGl1DC19 zuP(|TD&C0@FY{u8_I^mYeOI=K4vhRclW;k1MV<3F?(71$<~K0;SoQ_1J057_4zxV<2bQLNpuE_6&9R&QJUxJ@KqA9YnG7j#HVBc5wN6J)omI{(jSlglH zh>f*ZmxfBeIk zf+WrDAVMO_Z)apb{sG!1YgJ+UX%cJ99|UjLf<<9b`e<9{GCSVE268Di`$oG@pMR1A zm3J*&N$RB=eElWWHS5oKvlcV6!`itWwjNR@2d-4r9x-~ka?ftLS#zDj_heU{DD`)N zD-qkTzdWz#V{35V_nD24YB|cm2Q@#3Zj5Wvk;K(l14y~UbKLKba(gfe$c7?&ij7%as2+6W5zvu z+&hUovgjN5y5tAEqzb9^5g5!6bx*irfp5B zItRjiD7f}NBrGE%bU_H`nM{(O_FYLuDwbyV@r^d>lBOsg!VX5*Vs6DJmrkEjLrU6% zHNf1(M$Y=aXF({diVbPZa)iLfxEmo2xFOprX9t18V<6y#oQ60&}LYP4F& zIMP0=SnSype8?|>wT;>sX#jRi` zpPieYjWZdwQ0n7c-&%Y6`VHu(<&C_NbcvQ^OHsy;`pF|Ir>|JL^%X5wx z4`;Wv6z>{(-Qh%+msp--8bTCL&%|VCXc@?PWR_Ay-O}A&z4)U++itrL1s5@@`8lQ# zpjk6hiW{wg`pOhtq$U{;Itt_L|9_X2y$-=k(M!m34w z~K|Y$P>qS9fTeo5yto@RjnY_8hXm6L*uD;Ww)h>3zqOd5q z$Z|NP_V|8|%hOo5+yB-2b2IpVb14@$^QvXPp#|}cwPz&YXq=6`yd>znR$alWrRa>U zdmx1+iQ^BADZa0&rGi?U7day$?M>?L)4PX^OS(rs*~M|IuJ2JIoEE*WyjcbW?(Zqp zVwi2pT3F+d#GXj3jqZeaO>S0N0oLASw}(N z#(dmW^Ra=5cfkEXbOhu|>OOv#9^l&rb zhsB4goaoy}2T?9uqLy|KYaE+tDJBooyF6MBCEqL`I(<~zS*3c+V^V$kjqW~b#A(sN zYUT5}JB^E5T0Qr6G;2IIRks`-^~DGWX8d5SIcAzun>l>55<`ZN@Kha@671++%poFK zzWD&WAh%}650fZI6gX{8jQ3|7v=ZkH!>V^$HkDbJbU$kZ4$`GGbQ@L^D=qgPET45^ifaSqo~ZgbQer5AJmYNWB9S+B6k)oawB&Io-m2{ z*@1A1fKMyEVbyyw#3_*sjH?W0v-9oA%L@o?l(`<#A8Ux975gx^T_BTl4TJh*s7;>e zHM}PPCo6v_!)ho^TnTxr(&=y`p+XV$uELKSSpvGd1sAB+??ujCsaN?apkqevFk{J@ z4i1QW?NK)y&&LWH;?s>wbD+T~qKTTnaklv#078ldx$sOIWdCArZkyXhJ$uzIf}-|Y z1e*8VkA~D7bWslbi{O7|q})1FFQ?+6!{dE@draf67vw{pQXoqv2wGEgk)QaU$dYb% z>3t!{yL(Arz3=S>#O9}PE%iAyfll#dv+a@D)y%Sk^)^e>Uc~`@O9PPmol?bYn{~~V zA0{a3(<0Q2R6#n94qDuR_P*sz{nJ~y%T%~3mI}IZH7wfJkderzU^UQw4It%iu6+UP z4V|6vcW3E0D5RKvd;wAV@XFF)#%^zl=v|NJ@4H7Ua90ZT8hY=oeC9qlES%VA&G6X$ z&VEptIEu^bNI7xP+Np5lad_NXS_R9Np=VJUDlnt2GU?xtJyO*Apd4;!_U>+PwcARx zP~z@4e||9M39+fjy(jc#EnKRf$ahWdBk~$2Q}@xO52rlwZLpfr;KMXkUL)PKsiQ;TdiUh zXV=*LvPrO0gik2{$*P#6;;1MaZ{8sJ7h{%0cu!YC%mqp_QrWoZ`N zzOHr77pln1JEE9lS?pFTTXI%m!Gbr(R`({~yTgBO-Dm{(+etUB^ju z;h{?aLC!<9P~GvSp!8)aECvPR1R`ge(aOd3rrDs>N(D!a?3&lvS=YtdQ9Tvgf?Wjp zH&W@Gq_^fCMG7ZXuqw&a?9OB^!MGZ`3zbMns9olp4=-~rrg^N9dQQFZAuO zHa_?OA4Y(=bycZ;uD`vl%^*p#yHv?E=@)`B=YD+)E`ba~R!6>%k6NA$d^WCc!!C-j@ww#W;8q^}GSk%RF3DGX$+*fGO|u{iMbsfq{dkF&%usy)>D)hhNMuArRoJ$N9(d z)O(OZ>JeSQH=_o8yikNNOSt8Ikad7^7soLq5KC1clx zin{`@;?OL_mK-}7DKThQw zkvzFOR!`*9oR~XeSQ9g_Gi2xV`@Z|PiwW3(XE=Q$g;ggm=OSOhG-G+h>+Bf_|IVso z5@NfNN}UWg+7vhVWn+_WM&QV;u*%uWevU_=I2Bn&nOoy-b}=_A>YVlvxs&pru(?O2 z?lcKz0wn?%_WTbhJFZp&uiT9MgZL4fI1DD@_>Ed`-P=Ydxv5-SKmXD-g`=U3KHs%x0A@KJpO@lXQEa*7&`Rq&EvJwk3 z;{Cv+-0goYfL+~1-&8@6`=r%JhLV@udOik80 z=4=KG<1tir`z54nO1Ql|SHX;_li+wRqdF(xr>2C*J8zZta`lRb{ zwQ|}&(C47&^V-2Z+nS5KD)gTy3UsB;~F&pLhIFAG$p6xIM4@|MqA zP{Uj?NKm{(s6sD_&+GJxP%>-0bKQ0H!V*EzK6qFzOH)bO`8)A%aEhCug68*eF;#0y zraf%7{F7<3Dk5|_OOB4eHm$xw1`_a-TrI*KDy7G9EB13as@D4fQ@j)p=o5kQ)9p46 zw;tNY$@f;1HtpfV1Kg}38OuT)>kvOll*R(4b(FS>UHiVj3!noHU^XESwbktJOKWgChi<_uCU+m#R5^xJ zKPlGG)XdB+k>A>HZW4Um5~+xqN8FkpP!d_!uCJw@Yz+yr5_Xz0#!c6E{2^{K6m#m< z@BYIpp^D=2(KyG+UT8;r#VWue(q%((3V{ZazZKBl~ZehRWM4Yg+Yb5MgK#bQ;dDEQc zK3ri4qqN}cxx4x|C(_OG6p2cW^4`lAH9S=a0C%)nmBsf6`!ollk}?JU+r3v`KBBgw ztmnF7W$I&dmqW_rUt~a;5&?LkTWG17T_Gp!;p=(+8~)F6@^KslTL3%(Ho9fA>r*}- z-TG0MX-KT}Vd|6eo#$b~Np2?n+U0ugj&Xb?A?5Ss9QTDR-b!P}vQK|n%;lWE9sznc zYM?y!@ev3Vyx1?xq}xE-LM?19L%fpxqt*Wmc5|MC^qh-Qn zzDuOtH1-x=J8hrFa&=G1%iJ#7uN^d_Q9ACW@cIC}-k{Y?l2O~vIk(l)ft;(zPp_50 zJbVH5ePChk+E&-a7>otYa-fZNNOr}DZaJbI-5&6bB;EXJGmt@}*0EQs z6$MYi=A;MLiDWm9ox{DAuu`Ja+a*LK)M#3hp2XaG`muDsZv(`0-Pcv?9>Q!k0>!%q zh?jD-M&3LqWF=8+<)XceLpf7t*P#N;V3~tqGT~kc$-eC|w`IiKSFg+z+mwz$j%igO+J zsZfuCSFU)_cSPC4xK6B}Pp98o!Omh|m#L%4guiYsyo{v_plofqP9O9gakAt#X3$b3 zw^lu7+qEdOgtw={+Q58nJJL_U-f=q*=Q;G9r*2+)RZcs7KU5&Ma^uy$n~-e|9MuP` zOBWk1AVkIS&XMtAoW;Qd$aqB0!=K~5BnY9D;T%7~TasLT{$dcY3W#E#qCch2&e5h~NOUjv-0bLJ!Z8!s?J%_w^MLS&TIG zW~2Oe^LodFd#`UK3Yh{OlJ{kfle+PzHOXuR~Ja z0)oX0afn0@f&l3{(eG2mK@39PMVHG3XjuMhlM_SJ68kE0#+*1-|D5f^*nG!QcO6QC zBGC6O&VM0tPHb5_$t?Ht)00`vp1zR5)3|MPN(1 zinou!#4d7K666q;Z;>jg6WM(icgvg?D?j&4lNRWQK=l6nCNQ!jiyjIBDm(Ofy!%rW z_4XpKF}^7g)>&%B9ZIbvQpixx@fhb;Q!QWDXZ=21Bpe#sXEUWk0zyoG#=;1$O^!+j?e*sR-r!pmt%6d$uDwc06j1ESE0VwcRT zTHMsX+HKvzg~|DkWvWFW%%gVZ+P|E<;GevG)Q&YMF;Y>mJ0ELzw7yiO8#J#tHSgwt z20J#kRen{Sl^^7a;Ha+M`OBVr;~+ux4J32BuCkCLpmXVWaCUzl3dNQ%3a@Lhh{IswkkLh(ITw2#0utq-%9-u1DqTJ7p`Y9}_d;LI47KuH@635~PiT9#>6XX?Ff|MHAdP$HF~rv| zJ%$S&8)`uK*liES8hR?=R%cY)L|0LmkW{#sQ;{Yd=AS=$D@)m8#~?1<^o8N6xEm{} zXSe0RhQ*F&ToZj+!uqEUe11!();5~k6|UN*n3fyJVT-68{pS`cq{HiwMhth256Mv5GxkLLPIHA_ZubRnSyMBou6`R=6 z-(D5j!?HhsM#Tk7Ze-)G7@_1?>LlbADY%LwG&h})9Jr0)W~l<$E2<|NVSu*5eC8hl z_9<=h*N~Fs1yU0PS$+y>Y<6mIkATTjz)F>r*lur9hFd_*jnk{p^9iM18f(-kfrpMj;<+x|b^Z&%MC;+-R|J?+8km!HV&?9HjH4 z-00;(FQB9qxO#no<%Z__hh01d6k_?d+EYj3;-4~q4j2EVRh;}@M= z(UX2Kx1yJ$#Z`R(Ki=8KU3hbf6{56Ix%0zR)z%K5p9{6sBt;^w;&Irlw@{%xrg^wp zs=RgL;(rI+@HwnO^NunAr$!=<#?Iz*M%2xR%POvyx5Ftzv{dm1cYa#elj8>n}>-bqm<>8P*mo@M|=34EymM&y#89oqM z%JV661QOH~GKAcy5i(+c4k6xwT9FaH7NxHWN?N%Be}bYLk5>yDsx914`Hrg|yG17g z?dFy)RW3BsdiowXAynqq!_RU|UF|c^D`xxC_tM3Dl+Jr*Vz2Q zNpTU6ku1eW#htWhH^KELqchaL?wd`euQiRSUb|rVk_;Ka{j*C^3$WD!T5no-a~49T zLvC~dk;g9#3-CffM#wW>e{=1t|BKiEN3`io)%GXZ7jQ*dXbXzj(M%p7%mJ2AfNiwq z>|d$yZ?}q}Vc2K`cJ!lm@_;KQ;`C#=HZKGViwe*OlwN z&K(uZz2g4!1eEQYKlKG!UG>@Id>(lRTdzy$9@;=QZJhMuT zbG(_mz0#dSLcl)+4)dFNI33yZI$`oCKMF3!o~f6o4+plL6N(7w25Xv}X@yiP zxc70aX4k;&72vz7R_WNft*z*_TN`?=-3G&grO)*wpa&hWy@H~vUL_H5k*5C^y|xIJ z6|98#9G|*epq;pX*lijO4*D%h(irRA(PtcHiZv_C?Te`iuJTvT|K}6L0<=B~91!xE zf*Z}|z5ye9L5BU-$k}Y|>?8OOgBymVUz3)jNxdl@-SObeszbJU_jO(}#Bum- z!31eoDm;I&RfrZ$2x$=O;~`svY`iK?cV8(9jttlg3ny}C#*wKv&;-XSaA0#9zdbWx z&r=6NL=taK=JX4mZIPh$0fAhucd{un1EX1QGsxqz1Ds1ZI8}=p)Z`M{Jhp#vg8z&h zfc5(`tIY;cK7V5m_zeJ6T_e;YufjY^e>qDIuZY5QYgS~nNbLo$+fub2L$G}89T=Bv zDBt8ksn%-EPSEX>xumv3r!kv>KwfdA|Dypx1J{;Hz*){0Lq9BA$!IkRz1S|Nr$+Q&(cUsZxK7fH8`9G?*Y?wF#VXqXOtT!zY_>!`=^5Q7chu~(ZCsv zai++L0Avvc%ke~v7F|%8ZoE(dsG!=PtRVTct@9A&H-Fp{^0E)1z*!PWGgz*{g;%8V z5#OAK(#*0Bf(hf7$(TjyWyoRc7DF82T6kj(at zPGgVvHhO)WqC01Uxe9UcixzV#g(&VEE*F-TFE?iPMtUw28CtPy@eO2F!H5eQyM~8K zk9ZG;Mx2Hf;~Wms7gi;zLxd=+FA@|D7#!v9AA$Z>3HYYJ!J?TBiW5+4#HwMfvWQ( zB?3luS2kZrYYw0~xV~8oA2FF={^F+-Wn z6$0kWf0Nq*ya2$Mb5r{W3WtU>K~E64MX_Fk@IpAlRR5ldp|W7GX0v6pAhT9+O3F&C z;`&KEf~m;IA{yKyoA9ivz1mpD-LHV|^3}D@yqvCqHoB28hf;PapMmyW@)e}NEA4p% zNUf7u*Gb`fB2E~Wo{aAbz-$)S`pOiacBhe>c?*EmeU2J~iPo<6H~a&xj*s8J5*Y7{ z-|ci}wXN%s4A@zXGEx+GLv?`~EDR~|^oe38Xl;VVMr|Akx)LAP5-}*wg9;3fQ5pk_F&skmN1I~PD1y)ubR|v+vjF7~ zgrb9pbij!U7!H3USXi!1GorIN(8*_u!)*XY2EqS?B1?Q-{xcp866nx)|Cc5npPxrz z(FdM%S+Tjh@*sKp5f;>t@J(gM{)IjSc~~>c&{WUAbBN&)>!=F|Y8}jqm=HdSew7Z? zpukUJ3dHTyIQ!T#y7=n-=9tb8*fiS6{@i1pnN84j!?rIySty=;(ZjtM3XkDq+;IRu z>qg>N2Bg^0;=z2Cnx>z_rrP#rdbF?YXQ|4=%oM?s76IYuYsc)IKWz zB6g~@_9)&UPSchDfyKr*PjU-T_i)?UfWD1NAq$CMY&uvEtJ+$k>^hu;WzQt!cWnrWlC+;Bbz8j2Xt?PcOu{Fdq=GE-X=Zbh*klv9kIQC6DECil368xM6(;8^i zGHp4~06Lm1J0c6zXKtu*j5}bk22dR2Eaxrm`={W)HBA9;Sd?++tt}wVA@UeCR=(Of zx4_p_`$0ZF5t*yrz{$+XyCsJszDU4-uy>ngXM<+%Ej+2-;PFq$VYmaQ{BT3P!F?kL zkAI8~a(KJ|zuzBL^D=72@xNMO_Gu}X@BX`N3UFAQuff*TpYy>A)PaeWY#zYI-jvlf zMDoA^f_ExXEJqCO4L7YKUTgeHZSB#4xZY0JEPoa*Z(o$iHvu}M!0;^|`A}2`( z9y{d4tD|mFoyrpXdvgNymtMj#vyd>ZK00va5?x1EbqyFekLoNeYsIV0#=1oBKa?1C zsr5XJ_M#g~Rr^>fAhNMGw>aTaTyzhF8t3h;Hr*yXX5&3R4cU%)eC$*fJ<?`uP0SNHpc9r1l#h%{TjeM z_pw(oJ?OEYqDJ-LC-cc&ibvkozf=C6Pc~IVHsm=@z&y1A&)d;E{=V~4-KDXK#s|nP z9*f8h3^)HpA|~nvK9f9VsTV;+eBox=HiaKQ9sxl?HG&b-x20p%q2Fsa0 zG5%%p$_RUNwNajm>fn1VuD|$d?S~KWq)cY;MF3_6t@|o2nluL#8$l!vKx*G7_&jc%`6iyVyM==&;bt z8a>b{KFKfe(NL?9Lea}}?GEnE{v*C8Y47y6EIbas-isB;XT?2mSVirOc}eUzfc>l2 zR=XC29M;b-{G*C>hh=xr0sb)6{idDi5Qc-p@Ll-kg*Ynjw%Wj-YOuH5Lj4~pG2gNa zzyHF@CX_by_9LHokm=J{vPLy~3TE8!I5}e>cM4->-1Aog%0eb86|@OxY3>Zlg; zZ*1{zly1&HAJ>2m9G~RA&Aca#nM4ei+@qTN{!B|}=i`Dh7k+z=5$6C$tPWle zFm&X&?4Y`>t(}GX-dDD;j(mucrwMuAK7G5c+yb=aWSHqfXH4I3wOEH_;FpjdA?Okh zEvCZdwm4*S-DXb{{oVOAY?=%DmTKeIqU=nc8PE!UY+)zNS@0#yFOnlE)`7NN%`G)S zwE(G08zE!0YO4L(`7=)w|21Xmd#b5zb%5iVE0p9xk*D6GMz2t>G!LmzA!!Qmpn!Zo z_#Iw?FfL%8Tr@~$ii$8`XNtOLK+UY9$ob6jVom%TfvrcZ6Zhr&wJiq1v)*mpvUb{h z_UYA#O@X&S5IE1%D&(}Kgu|AexQ+)zXadt%Mk+YpRXWVf!OjMD);bt}HrCP15_eKq zGgSrKm#UzSH#R%piSogM<#XgI7hi>*PG3Wd$`SCtZnn5_75;+7&}3b1oi~x;>W!Q5 z0&g}|PqrYow@inpDrD!VUTPZ6IUAWx_>fnb26{6+M5?ZzNH9}r9O0?8h;c9k%HNQW zbSL;o6%>1u%kOJxw7bbVapdJ28Ea(cF6V6oePa5t_li%hwuMjc`zt=fy#+pt?{pT` z;dh6Q#xOxc?!wKw8nA;(h0A{W;09Xj8@P9Z&t=N#rptphp1$k+(BA%;Zv7X*XY0bv z`Li>8!~4Rc{a@9bz|UyLfhO=UGJ6zs0Nd*yXx*o;f8i8@fJ{sBPi!R1Z_jd&KwibZ z5VYq)6s=Eg%Vv#X>mG|7A$}^;LL+Bu=LjZg4bc>~SXohgWtFxx6K&L~@sADMCe5n` zsLhF?H@?Q)lh9EXW8x_y=vSeG7r^u_iphG8fPa<_u??(Qpb)z$83;`thJ4?ed56Q( z)Sa)AsbZv@;g&Jv@foehqY}s@8CqbBSRd`lOwQ)z`jJd_pvq#H0J6k%Ang?A2e26s zKtD6bfGJsunbBP-!w3qnO8&3YGe+1i6D3fKi*A#YfcM>1@UQ>hcDBgQeiHn86wrXJ zkYifWpwPMl1||e8vBG<`M!BVcvoF^kb^h|z8@3B<4##~TViv*6qiR3aj)mF!0W^Tb zhrV{;=NCnkg|xGFh3cY2X@zh6E)x<14q~IAjrz-7&&7k$1wqAN7`%H782AvClFXOQ zoz2@b?gP2d-AI*KUg`)I_?!0>E3YHI(+7*TP|M#u31szbqg+MG2+g@M z)waOv?lk`677Z$k=iJ5}Naea(3S4GPaEsoWIX7Y0LJ{%m_dpJO6#in+qz%ML?j(p# z5;dFwNa8`u;vzlpoUay z8~PDw4@SvN4~iNC`2_g)s!f=!^{{G$OE zHJO6rZxc}hmcB6p9fR+|5x~+I9SCh|P3y?_%U0+;>PHXu)zf?dV1c=T2f&NG(0DEO zJRDClv`*?=IHfNYn4GbBV}L(n_yWW)LyHU}DX|j!TvJV`Ee9hcYWiV;*lLx{Oz#G2*YX76T_Jeq4CY>eS&l0+9ol6Bl zuL}8L!8bvp;)cq`H*&xWXP7jU`K3};pfX|LGO43zq{2G`tnWekX@!UzZGel+rGamE z1FcgB{YO$nS(^C2VIG;Jz0>{5^dl z2Oc3WV%~?X+j4=iA3%C6gHl43*as87v7;d;%wKAlhku*F`M4#T8xb#pPbQX+^RZ*G zy9!h$YFecHciB~N;UXOw*t#z+(>XoZa5!rzfc9OIq|X$ zDA_xvzD84lL+P1gshRC2VEG=Bol~xaaq-~wWxz8pf|*SvMus&sW_xb|jEdOMC>qe^ zU~D{i8h23CU^Mp(53Fz1J$)vV0&AM;NqucGW8l}U zq?`30oul6qG2JJ>zREi#*nl3tYSRtwwLaQXzm^H5QFp=FBiBsx=fvt7*r_i7H$TP( zI1`c#M(#%jm}+>cWL*~Dn8E283dchRN~U3bRQF4T;W7Km5->( z$%IXYe0z=@8}wLVsuvirm~}UJB!)4$ih*8vB1ncX|CMj_jr*bdb<BUc!1PX z-!~-@F0!!ZbMBs60e`Nzv3&4eK9O z#O*nOg5d(*U~jH=WoFTaq+ixGrVxCW82ZDV!v@+rp}z}#x6~6WS;kLbXHo zkrs574b4h~wU?cZ#Li2CYyUsrUV%B1Nf@v0$X-Qnym(u@)}{=`HRj;+P`!=Ed$v5x zeLu7e5|&YQOwk}c5!y2#peI0yGKPO#6JnggR57SGmB*XbaAtsxRPZ{( z@&i44Nj!3lJ9x~e-F$y0HD*=`iZZ!{xM}QD=BCL5-HygKAOZC0dt3^m8ar?+niT_l!($;o-9Gp zs<@|qc13@*RifX;2Zu{#uNO9VbAwXX>Gs>M?WTd$(jV_tJq|F%67l<+uuDO&#``FQu3Du%=E~$|G@f z2%KBA<)QA%RJtMR98j-A%f7rU#Ba?-!4KHURtkFLE|0VeSIhuv5g^(3!~Z!W{r3q^ z?N7eFDQpG|##=(*tonHk`z^Mll8fexx0G=Er)@A4RUmxO7=wcJO&=EMNdJAN1JLbf z=7qiiDXfw)*FuEQkn3h}uN#kemgm8q*TVN}B!M}LchXIMy;KRQOpGEZWCFyv&^dfH z0|jtGg70yHhuFH296aJ$wV;B53=Nj&>~7qcpf@oJ@)5_8;pi-Y-q5@^%<+A|+g2Ll zW}P9Kerq6)hDpf3yHs#dYt>cmA4vtJDvvr5x*3X=K6HEbA|*4oyr9f;Q{V&B=R8Vp_x*%%12Jo;A-BilZu8bQ>LoWUfGQ!;P zE_mbSq*d&@(k?uy9`%2urQj6SmZRhnVdCiE2wvF>kBH-;arY+2^5gu$zQGaqDq^U@ zuhgcT3=ZMzSczD&QAc&1=>RsoRkA^1{m$76OgRoCKl}kW95pZ)$JV~V`D++}W|if} z9w^1vp_lQ{3)jHfpF3kQA4l`xc*%3p%?uH350r@w^ie*y7OxxUYEZl6u#7*0E+uw0MU{T6x_ z6#7#8v_!LOH0h64c{jzc1N`4?^2RomLes9Lx#peu0e`1sv4t=-9EU*9nXGsEl$;)m zW%oV~Oo$R=M|Zrx6lYF#u;4}i%DIJpoQR6XGuZgYVyDdID?O!Ey3UDyZQBXrUaS-I zmH3#!Og#g+RYxzR6Dn6;5w>rC-CE^q>{j3w>Un5rz1^ps@X#V#pxqjGwZ`d1$`N_T z)LC{nZZWsKEpKajHvWOYY0zt|Xr(X~#a>@>%)TF%rhPW2WgTl%Y0MsU-;!)4j-aE>F>zRUEUP3rL z-KGXC)X!Knk%l_9n3d0-u_z;PDrlE&UJSk$6YwsN$t?w2W}hvzhDHz;3hd~QD>80+ ze=nbra6+k?{$f{7wS{E3sW~o&EG$v?0vKyxND_fR9y?<}g)=C+Fua+dw}1{I=@mM1 zUw4eq@GB&VAkqye4NVsi7V%G$*;hhFU9#UJPl>E9T{wD0bv9DsG7dx*1>!4cbHlQa zsA`jTu`y%lVrP_S7690W{c_vz}fbPxNzw4G^8 zEg`{250rHWpUS*V9%yZ-F+*=ipDekpTNcn0SyY<1B4YvSler^#5j}7;3u8K~Y5cXK z7Nd;n8wA==Mi@7lDzx4jrp(B6?wy&pG{Z--P;c3d%fi^?ekw%L` z=V>*AeiMXL!!1!8eq8->u=K81Zn37J#_`FtUXYiajDuRmQeN@xgFMXMHgf%ThE($& zlHtdRN{<}_hk%e-{dA{Bn>x*KAdzCZu24y{m2;%`XelK^_d%TJMAyqNJX2#XsR?P0 zgU|E?EFMZY^rtsPC1m4Pm(=j{;Pda&fjH?`Dj^qbe!SytJG(ZxHMv4F+>qSv=8e1L z3gNtjrx_jKWIy+>_D@im?ajS!>PyX)klRoX4|qZvNil|*z3sFbW9_zDf;ks{PKx#x zk!Iq!xLk#qZE>SjX5_B&m2RLmV?*m6uRSYM1`QXZQD?EaZf@Zlt{yXU;{K_bxfhq3 zb~?WqtbKai6fuTfGdALcBz1ueaS>KTybl1DFbq{8_hov?u6<$=;92axZOl+c|0AJ02j&1kP77ec&^JdSx`yuk?r3&((ORcLT~3*h^OVdzTjwjI9s@e& zDbtikF=7QVW!3#OndvOdgBNEqcMbUIOGn))zk!|g&m)y52^>6uR6>?UO>>LebT+TK zhZ@|8auw;ju6?PAD;XYoShHHPNGWkRDHxyo5M{ZdNcX8jblQ1y)MsZ*gcdW7`964y zNHo-1y}!}$rHHw$UV;O&xfU0+lO!ZC@1C_R&NgeN1MoQWo!26-wCBAU6VU;4cO4S) z&r3hl20M$)ADlYAq!YH2zSNigbrz~G_yuw14&T9Pds4Y7s2Rx-CF0c8;vb##>eUXc z^UN<)eGJ-a#+NG3JQdpv9I|??`2DblfFF?tK30?yW9MaL3 zCGn(n7<}R3B$9xj&4KQQOrA5H1pIM;YsSutTFT!nStuMxP`A5hB|e0uE4aOki`?pF z4GLa9wy?Oj=#y{iCU7G z%`#KBOqrBp2Re`(#X22zK2f#P_mW^j+tYnM#;LElCE-QBo_iIk*+ObqX)&5fANPW& zC?YSM2uq57611muv1;U%c?dG-ZlQ>UhW^_c4WL86WK4!V}!w`$q_nZ|$xFtAkq_P4g^ z;B11a@04W6VFEg+>L0tx1kN5{px7y7$sH8Xa7uz|EL@AMti)df!k<5);|0>ObdL?8 zO?=P_gmGblO?)zMGyy*bLqrjVWam3I&^;7pFvC{CmsG+~b@9hghpOqcHEj$gmp7vC zMWx6#h~I=3P-2o@zDy48WE;3DU{~pWEY}=}Ezk4?Eo5;EA4=aUnwz8SeIu~}*QkGT z)m}^C!_EM8Pa*S9!;m?*wkv(X_(jz=UPeTsMyn%j)`r!GCNI3gaB(@>H31pe8%cSP z{vn}!?4ih%ca`ud3z16G6_-GlqEG zd=)NWyQq4#ueXz^P2xBx+_0Z`8$Tm(4Xmh41DpXajR7!VMo(GpS%+w%z8(N8I3hlI4*&HCElHHf})LZ zGtdiqi!EM!Q}mNB=w$$P+nsN?4040xWY+=AyQT2JIS^xdEV7)BgBP#jgPwf!_J-!=5SZt~MA z(^tw!q@xBOQ+;fwCVHUsyZtp5bac(`a}5woo*z6Z-B|5v0Y|lZ9UCSyb5=vGI&<3> zxCQ>%P8V;UE;G@y8)BGoux#DT_6Z2oabx_wg?wG6q)Q0{-BqIt2-784_PzPH7*zpG z=9b^DS&*zg-U-cOCoUfEq#aCRUJaXc&BP&o(IkwCylDT;7jCNG&4adTo2^uq`N84P z?9fl3WZUl+mnbf5JHa4e{R2b5cEYH>+gQx>RPmfgfz9ims2Am&=ug3fJ74%S6SzE{ z*Au@mw8ix>^43PBJR~<+2CY*FEE^6gFcPGUEA7$~ihgxDC_@JCXM(y9-`bP#)_Cl&Xm#7RL_#7(~fZ^wWk>NP(n^j7xM?*YXVqdyzK8n7GBK?~Xp;6))jl{#>nG6-1PXYpx|oqBa(EDACbMq0tQzI=-uy zv*uVN!M4Jg1VF1!2>M`v-tpUuQkdc>*m1;$W%shagU1M#TW@V+o}9#QH`i1X(~;Wt zrWyCL*6)Ta4*TbCH7U0q>OqKFr`Shapkqq!#IzVTpzm1iVw0;cAc7h1xwE6tHGmQ? z`}*k1$)gYPPM^jRA&y@ZLsDY6u@9&G7jXs69>Z)p8jLsfQS+Ro5AzmQy*ee@wQoPt zeoFRYfBS?_-0!y%usK{R8zS|v;L2A(NrrtLP+;TC4iFVu=fm2&hm%JXZ&rW?EL2*9 ze=k!*J!LJFxi1;!J1p=TJTHkM9mODhM>>J=18B3#f$G5fIL&LG?PQW|P#KN5K%u7k9YkUZJ3$?Fy;5|QLMDNEv-6EfOoK8`Lc783PK32xD4B@mJFQw*hGtH<+w^AEha zmh%Fi^*HK#KK)}Xb?GuRq3dCeVd zG`~`@gvc@U>=L$Gm^-nmLmL1%CkP&=*OLmPV^ZnL#<|7fX*F+?Tq7wdv)pc`u1VUus+$=SusP47Z^OmeB5Hm0x-)IK$X`YO*^nt$!5 zfipmsQ9TC6bb?&E{eCnxCQ%i}V#{4y(oVhg0A zZ`kgQS@r+Cl~TlIA*-iS*K#@b`z)#2k4u(6zPHwPj^Zhi411*75TE)xoTP|KOJBC% zRKALS6fs)Z8>&DBqW6bNGn>smFX}Pte8(&n(A*b6)0t}0Py<_+eLOc)s&$nYGn<){ z8Iu{--crlSOvDRhI<0MIx2J!T({6y^u1Ba-%i5}!CRpWPTRvy267M$kMmiyuFGIvl zInsi@Ol`zPr>9yU{1 zs5A+Z;EXUv<$x{r)6zFH%}sPBoP7hcum6&#Fex8H6@G0yO$+VNAel8&CK_QoIikp4 zVO0%QpFr%nqtH47^fo}}i=;zaN9u1O$p53=tqx8-Ot#!{US{7c=-B%NuJLCZ`rq7} zt6}ZUaLwA#%e`*Ja~q?jeFG%mfp#*WCo<8Bb;=kY%Nmbsk&@P~lO;c#%q-Q&?H`L2 zb4!LPZu0yPu`!r`*8#BY88mgZT!O>jD|f&m-yIw!+J41i+pdSfi(`q7SVQ5)3-tp& zY7<-O$pSjm|8*C9(+QhqB|JQ}Na2OJ@TY)-rQp*HQxXaI6_4*H3rSiDPj{Lnsy(&h z+}n&7BI`-j$Go=W3)BuY{k_G7QEG$^6I}u6tvo_%?bO2o+s%WfhZ&$jqIKojn&-mo z%qk$DxlLu|ANT4D8YYnl8__%L-?hkO6dMvcoRV@HGZ}UJ`gJyg{n~-E_H9Yx)gIM2 z*NOavIy)t;9+}Jt6dS>@8MHfPcdzsFEJciNguOO)mZ<2^xrSCHSB$T4GcFNcjF-4gRxmK&H6aWA#%Db)htF_l5Ug*a zuX3_?EKD-OEaL3L--*BGf0E3yYmH5v2I5;^2i9_GWQcy)*Z<6qrVJ7HUAJvS|D3uX zhwth|_XT`yG4p9m{GorO;FP>XP6k+<-f9tOvFz2DKqpX!ypi%#4|x47Rl8fwjysC>7K>Z^Y0UOr0or>&=Rp2AW%? zS4a1Rd>&~5L;y_#EpXcKR@{c3DZsOE6ue#Yprb*1a_LF9z}bl@9Cpdt1n@6F6%<+p z+z4k8G&mhu=y}j7Wc&X(JMVa^`~UyjD_bd>kc4DspKKvQW=PhtD|t*tn4j&&tv^wZ(Y~t)AiZk-ye$Gr7oTGe!pMO@p#-H{x($L$Ti036Cy~*i~#{npNNyVy~JJL8@2dJaaE&5>@-X2Xxz-E z@3n5IvG`J!B_ZBt^{HO3^$sDfPS3pY#KwH;>&a6zU#k86GA_WU5AzZp*JqXv#0zH$ z(4+ggR{AoT))r71?@d#UdCI|~9fef7&TYDadEWT|!~k!CUf`_}4G|(a`g&m$MS2 zzV@K6{sFGxpVi=6iHXc@M|{7ITAWxE0GZ>D2?cL7R*d1fPfw|)VDX3m<&zT7LxJ_k zM2Zn7kZC_GdPPtL_M8HLX%?^`#pA$YxoUniR`_cM3}(VW?x3GBW~6Gw@>kWz_L%U` z6cAs@zmGe{XUAb-U_tg`|Ep(F#{@D`Kxonp1Q6O-uP%UlhcIG3;#*^m-d>UUdfUqaMg%wgyL{+q~fCnc?K}NsB;+Zk7l-;#BO}&2V=f$$q z5m3`~S=a-XI3J^$U`8s*{1LVQh78jYM3?GzX$!?^-VMJTE>A72RPD)rxJgV{wataP zukRGz*IQ=15(Eh%*u(fWG@EY|tKMs-m+#PTMxlOkfe|v0GKK~$(9A<#dO`KGZUK~b zvOb#py_yivz%+H6v?@>i`}JpNw#68b{_=oxDJD(jx&}n9dJX|^L0Rn#Ug+<`58R^5 za&Dg)8y82+~==wf&lrC>=v?vQd^d)bb0C!6lz5s=&w#a?a4?mNFdc zD#%=h$+5)X5DjBPAQ7VrOKO#Z}~~Y4AiNFm*8M|4OV6q zIHqT7Z^`?Svxx^@pkd@>wBuC#_~4ruJ9t5(W3ux=$kP=viV2^n3Lpi9^rE2H;OxE% zQp=&_a!wUVU?UCR(7ud<ZKLht`J zC&lb&3S$quzy~^DDUIfW&)~N+wcBmIXNUwZ4+6p88sQGDR=Iya$UGJW_0E~kEC{Rf z+jlfr9|8qMZx6>OtWHk>tY1Tj7+{b&zaCTmN6p&^!+zRv;Yyn~=0jCl=5Ox6KpysY zcn50v`I$msdYX9I!Cyf0cO?a@X?S(*rx|@CD)_&W0D>awgL5d%NDm?Gq(R5ZFKpmw zFXGQlz6oKgE^YSd=$Ahvc#TVY4FEW*30c}PI1w7hKpO+R3=tCUCI>$8EMWSG3;M4G z=2oc4;yDuqI)DOsD&N8(jF)QeIfs5eksV09}Mmnzwp{#ru zskg`3YYP?vzn8RJD9u0s)&_$K4Bd7O!^FQw6F_(qNc8hpAHko( z31Eo_W4n++As^rge)W&Mn`;Q2Q{A*|Y*fcb8HD9vSSQBY_&MwLaOnNr>D2hvA9q7UX6)get|OaD@^yxh|kaOFzrBGZ>rht=g_`4zutBD zZuS1A5ndXU4YP_y-m@7hbFgGxQR$LY1ECR=Hr-%vsL#Qan-j5YjjQofx={;%wKl}2 zH!t15H9ouVy;V}y3C$oK7QFu*=3>DMq!w36S<>L1?VgdVhQ06cS4`$>$gddarJuZg zruZwRu?9BETUKRbVz&8*tM3T0=1UA6GI_gP}|pO^>*Q>++if1pM(pDL09{;O%O2Wf$rc$Pq-2$>+x zq>8}*z{al1zpk%xiRXc6%#Ed{HkvQzE?K5k2hM^9@Erhop=W5Un5m%++2;R`^8xsy z{ym5vL)0?Dmh5jQa#(e3r~2PdWb#xa(KGAR!=h(5ryqphOUeEX?m@APpbqxsxnOdE zV}%i}9c=MTH?6!v>kw~IC=mypD!;-zF^>bd1ZBF}xf)pDOC_KKY8M>dwju zKO`XhbeVv`O;x~YrI1%j`G~gU{UVX+UygXdPK>eIIUvXU3UedGmJfSe9~dq zyh#ant`5u!OuwvvFGUC>7vR{Y=2Ir*x=;>=eRo@v*og&DM$H-&h5td_2s&wuSeX=1 zs&0an*g5rNZh2WANJvf?3kp+xgQ@&`DSf(#*eCL#)u2?RHOtS^0$GA=I77G>@23s< z99nWZZg^juvyXIp>dl0#Wn05NK+O3>k|{~4&MC%3xcj2t%tV{}DjdYj2t*-0d~Y2* z&3bRM$JH5klgGK?@NB>$&V-dE1Zjx44vE zJUNj$;EC4}Ym7cJRbPr__S>vFc#(CF-`>R_pbFF4R=xJ^;>qEfuE>~s<~^{tmBoP^ z(50{dZ1WX@D*YC*e8(}rk98&T$Yly6O8K7^TX%#?p=nFedQsif=3I5a?%*gVYA&3l zWTEP4?pSVep=ULBzS>&0_68!S63JN0MuY_BNb8cN3w9gLPOA$X2}>`yzu&y;Idn86 zfi@OG56!UHbof8`lpO16WO$l%RpJ}(MS>QAJ5r=^4E!)g6G}ZpySIdN%yAAMVmwxs zd(fGk3CsIs}TKf(6R0EhwT$y+a~-8GmqsEw5_ z|GqULS)(|PG;{|(vCd?vyT_x8BGrAdhH~RhM|mtDn5=pxDs4Fplk#PL zH!CGkn&$**nSrmAyih5Ru!Sw2_kN0K%kE9c%*aeIs+jpSotJOF8&N8_UH%a%0&Hfy zS5O%rBQ_%hBF|NAs^J`>0BVCMSgJh}gAx&YI|D*hoyEWE3z^=WH%)sm-vSL>n4KWu zCwR<;wwU~XE(4(rzWUMb{o?- z@)&EMO=6lmf9p=?o1UllC%!H`O`@1-78LDCdEwkeIb-K`oz&@0aMDt{heRAIDU~PA znE6Xk%Kfa8I@PEb0yC5;->k3i%_rnwR4wex5jFJYl%^)NEbXOJ! z81H(l!K87q2Tk{lLDtxF?&bB=-cYC{aduxWydx#7_i<-q33&tI+T0z2n0)MS(_3b` z?xbR2CAa1}x5Xno`oqNi3JKp@U*UVZpr3iN*pvOc1EniL9M>ePmf6lloJfImBqA!f zK^?n_x`uO?7>}Ov-XOkXLWY2wjsClh3IXFjRVEW(2I>^^1wz~ew#MUaql{$$G0&kZ z-MYy53?`5bSQKn1FkObCkK3EUxCy90KY%Q%+o0yXpJqXWo`?Kft*~^M3P6CIaX$(> z(|KROKrzGstX~`++h5xL?L_a)3d{k`9L+%)uEvSd9F0ulE`Iv=L0Z+{#%RC{LJJhK zws3&1OfSN$>$U@fkVlol9VPMl(FKr#R*!YTz6yL|{(vOOu%|M36)|`IU-=%CxlmUF zTO%GdSAd&tD~Agik@ZYUgPAlnflsox_v1>RIIq;h-D{aq^7!Yf*!;IMlUizPwBwS! z5^O-4)~;kE3__r?1a6yR&HaqU*d8(4OF;69t`Xx0Vv&ch4!keB7`0E%BJpwU;{?hwpbv!F(L=|VNZ7K z!$Hd>o_oWMz5(P!5UtveY~o*NA3$9wp&EGrs=(-Tf(A`+sNkf&@kjZd9}4#7NAjxL z%@Rkzn@#KuMRIKkXs|(2$xX1sas$7E+XN8AtbNGgF`1nD*Jx}&cl5v3>L52!N$+n? zV2!(u(`W5agg_a<>M7}iH>2xJRIW7@9w^kmN*!(GqL%ir6wk`+sKxJRT$I3bf<#Or z{;gP@6;?sEWK}ly0;ZG{Zd1bzAp9PXnG(OWP@O)V!*W1B)#|4=C<%x-*uCux65Yq*+kuc)Spi; zg#%+fbTc){o$b9NZdaJ#x1Dn^at#F=Ovkdby}P*52>!ppg4TI6rRZ90Zf*KD3IvzknGo^Xo2@fBv!6e-~pbEBzAj_^fm zd~TpVegh?TrYUa-C4}|)AMqXSFvHd81#sXbJWT8S8@q!6{_mz^S~m;XkPqB4H&vSw z%06=gSyTUAJ<-Aw%?lD1?u(S_-{n}6Dn6^{f_H7uvQPPdC zR9`m@6XPyockWz7A`&S!>&_eanT$A4H&cOxD>!m&Pt}j<_!tOiaD;r7kgXV^_8k~o zAmjpp8AVj3%o?y}>f1<7AYUqgvC*ux1`#_hh7h!#h2emweHB#Msl3Sw?WP3YZG%=e z5TnP}A-&hcVfx^CI?|w36B>!Bo)zXQZvqj}_s43c(VQ_@kMA(PyIH_K#^!K%Z_cF5&hFL~Frh7N9zWrAaB$m=h$klEvoAj(cZ+CM99YR7j$>Co$6lX~qwEu~US{>m8*` zo@{(#4i(lDxk>XqH1SgC_RkGjoLFNUWvAjG-Lk-_yb(L3vjW?y>9++ z8F+|&4S(tJ$dM#=M)6yMT~6_Xcb4=r*!PXtIP6pChwpb{};yVUpCc1O~CJ*S4|8#9alfT z&A3p{hoB~@an1|hX@9O0+=|X}u~7OdWi7_O618xc1;Um>2mscvUjtn9%>4vFM(9Yf z5nO?{u22c;L9jIAueG!cm&>@{!jtQ+x&OmOHDP^XI2P+{Dw8q*EaAx zMHW#Q^$Hu>MO~fMOT)$Za2))tL+JQso|F=EATlDg&a_o)Uy||tlJo__sy!2*D`;bB z?_F1%)ajQ*zNad13Oy{;cDGN)-fHE~lJ478VB3_R!#-I9g1+>bwee6fuVzV3q`kMY z31oWONVNg-8|;lizO=(dklDbD5H@RmR9TwP;JX^1`&!2|O!sH9ljpWTM=E}xM#cIU z9Pk!U!p}=#`Zt?=8|aia3$oH^oH%8g8zAC7xy^;wywTvbwhQ|&8pw889M@47-Rd!e z!ou(Yli^n`HoSEE6%Kdw)niF)xt0dX?U<1YZ|!dSRh0A4%|?b7M$N{VjPXL%*o-NV zxqv}M7B##J@wS0LPz-e$F?R{hE?X>@rmq{M6g+edpd1Rw^I-vnGT`inf_9<2-7^3$ zelhIZ7h2(3to|EkdjVPb`tUy-Q7{DFO;!svduYX7gvE0OxtIWR;yzLOMEfNkR}Q)^ zAX$*c0mU5?#@a)?tuLDN5~+;`++HSc;#Z5V9WCeIMi@5EWS+#!@#X#NbuPy_#;*qAJx zeLl12iZ?NVcQRihQ{r`5Z?hJM3OhDWlojNb%((=2GV%Gt)%t5?_EoDLMmL?mV~s}$ z{)jA?ZCAMmR=Nj9|Ed7MUp6|*6C?q-t7(UZ0Zk{V{e=)8Se}9PSo@d)2zA&Z;P|EF z^0=j>2^^-kvEXBGRu?D5OSBHxs$YEAUykm3H&)Dl3l5JP?-R{sEF~RsB-=SMb2DVd zfz9BOhoF{_k_BKD>*%s;&5@TbIee2vu*{arWl}UZ|9EducGP35+Ge%&V?ImP-syV~ zZ`OBmxSW5zcK*JQg}F2tz+sw`qjwH@ds)Ev@4D2fosiS_tAoFM9C9R5Pc@!bunPXo z%K=&v3?9?GP{@1rMdcDL8cqQ$Ze1`x!f)W3V1uTO=u4#GZ zBMiMc&t;kfv0&*hGb{Z&IxpDH%v$^WvbX(LKLeob&v5|oG#l_&f(9iG#5KIc;+X;f($TRGtWT(g-4t~hMim=D53wg2N;}W${t|L zR2caSl?(aPU%V*`)ke$%vi}O^2Fq1eYri>C>>-7!%e^4o(g+79&g5wtrR|inC z{yOghTa@!V%7kETq9XBnyWR8O)3d2!O8_j6NdKn&nq8NATD4OvU05uDH8n9moAftL}7SdbpDF8OZg zKm8RV_s2nqF%5wFJfsxsTjwjl)Ygm}yiCv$sAp5pdCTLr=rvP_`wX~BuF#LvbQ4=2 z^4tdK0p$+lIsWAwP2d3ssYCyaP;CyxHJ}8054!(@nw})$JWv<_m4VcGn1{?&`N_vJ zKv}8%i^B|<2kGES!vWV*5E*V{+PYG(A^{5)GeP={iRTrRW+^b_HizZB#i51VcEEH; zW!}I>M)9T*)W7O_&3Y7>#97OkM}=3gIU&x}C2#|=@!oYLDaSlg>fE*d zk~GCt%g<-)rN{Wx3m%)F`O#osrx{CxOKWP~x$nC;WA^faMELH*3tML_Sm2Mg$syL& zHGaZqm7lF{?7m7fx3}T;jcJzq!ftz~FbV0oo)DkTWZ|yn@BX>nskyI#0f{o@ztAZI zbkZ!$NtPi4n*Q{vJrJ{>jTbf^!mlID?#4x@Sc-t~GBY3T?rHW*B&W zlK}qwi2{Eua4CsKo2!9^OB^Z1Rh_hZ1S~q>V5rXq7Th&zX0bd ze&@~XN==T)QRfhDyw0KWO``goAQ@OOMf>odhl_cwy%)E#E>iC&{3mgE=bw_LU!XOT zKkG6*gyr8I9{+enLLK}mQB@s=9KNEUge3-f02vlU(v-(P!BQ#sz<93L_*SlSs*HO!x zVH<)#t}dZgA$T3-e1cxVZ_;D~Hb{0z3$(4=to7qekHRjYM*7MDfj9GpOEv5OE9(sx z?B(F}5ccm4;2WW?u~@oaCqX@=1(U4R97A#w+;5TU1%5K1w7 zs&Fc66dPi5Y(PyPu&|LA+ym{_A2RA-MT`sy+=R+yX24Ge@@hbb&>)o40lEnN2`#RF zcDsRBFAIX2|A80%{{MF%{8I|>;8W*Nf8Dg#q!e$Y0d4s^a7z9i-(b*&JERpMrFXLR z(1-s8>_3sxA$56~LdAZ-lN=ccx&TR&f#r|c3d6DB>tDDFVqmrZXHAl)1K68qg@%Sv z068r)Cny)L`A0gsn=>bvkQY3K36N)COp#yHNeh~s3cC$bTp>yT2&IQms(?!@uX-7X z#eE>mg4Fh{6H%HsGHL8L0mu4J;6I?Mo`(m6Zw^I-1~gE9{zJrZ3*4>TSP0jl4Ml}< z6)VVPjgm6ds4n@Jj+X+ zYZj`hfv`mJlExvo2qVh1_Y*~0zz6;yF4iWzPe-lJuM@0aGtsX8+{u!rkwA;~ae1Kp z$HNx|(haBFA2rd8$=%o=FjHdn6Wjv@gnQrauR2xFXS}%5Fi`Q0yV&4#xBi_v@Db{r zGTI!w4Dg-SwYUy9fy7bb*6(p9?g~P16!V7dpyPObpTt%Qn@Y=oA_>EJpYX8&`*nXQ z|7^|>1MA#CaBatc(+M~kD}n3;;4p`VaUi8KNrl4LC_wGalC0PP?Px3AS@~GcBl{=T z{C|W*T>gonymml-~iEmFMHq zl8{>o8id|s>kTxG>bQ6vnPdu@KQO7$Fak{D*8o@o)FIT5BR6?*v6JQhuw9*Z<7Yoo zVef`wHW{D+Xi>rq`fb2BYR&S3`iw8w=6VhKW#D8JFDNv~dYn0bNMENiE7wi@0?#6(D&kTX)f=i ze6lgjD^*q|ILI-LWk0mPS-J*5xw`~a{OTe@j{@ea)kFsM7<#xlwQ|+yqbIE0>rGoK zV13Qi3jZU$f~Gc6H!U4PSG-&Wwymz!EAd7uqdcXFslbZ;%Yc2&Swz{f5;`Ace?I_8 zF2K9a1_oK=1!{;`3YoFVa-cY-VP+@KCjgon*%o#)nDvgpwB!9Ou?Yv{DPZc ze!<{bfE1`#=cj@G2k1{Y|5tgi1E}G_PXHxPz4u)#4-tqhshqQ!s|KQV=Edj$@nf43 zA-f;`<<5%}FT0Vqz*=zb%W6Iu1?q`qto~~q%LS0%XKP%$gZ{=EdxxQ)6`k-HTkN%m zm`5n>V2#iAP~Ect*4Wi|qr!7T_9FK`p=ZK%O&%H>`i)joanD9Px*Qwp0SGKtaX}jy zKVe;H(kL(h+&>=YpfmS6N>I_nb5(iEBLMGQp~va`-aFhO$gfi(Wc@v`d^^~-RJfF< zVSlOskDv;8QLjzSC(&rp2k^{t&gKRF-Mn?CG>Q?aszdv6U#=H$?Vz5NG{_$csdsNGNNr0;LP4?^V4?zM)Jo_sV65dJS+W>w{QjKFoE&Zu3}Em~KD`eg zfe7NTY_f5;+{LjIb?Ci{0{XuTx_SUZ>b54C%!LAOcHs;)lSDCJoCgcqTWiLRV;?Ne zT|wdPttFcSUh01&p96i)9%y#F>pQzg*`SmUwo2RlTCkYm-#+Vs{z5Lb#)T|Y&A7Bd z>c$Wk7K4&Ff>_D}lK>V<@)ARaa9;`291*FN@+nx6%YT024K9q2Tpz#fl7DM}nGj~o z6Ze>Z(g=fD&NXx9X>j&c`Lp0za+>PT&^%1b3Is6t6BZ8z8l`h@0uU775gCo08ja{K zJ39nJ5u7TQX26*_^}zFwR3c3r<+? zqi0w~iKXd89O#b>+IB*Gp1>o7=XQ8R##=x3_@_H@kZA3VxMq4Zj>U10alD6RZg#MM z;A|r=05GTqp7y(^?{|s5!Cts0m~&FXopQoooY;v~ANE{E<>cj0E5?@crQp%~EKeSG zE?K3zc($VEZRLR79e~lvf!Yf6X^)l>I_w_6$r=m6F@wQya%TC0CON7pd#U95CL==BTeYsSrW@{ zN@7q9r2*i_FU>A5FNi4z4?rDYn9%E13p|gd=6O-z0_Zz`LAd@kNL+uNltS;}#*D(I zX|T)D#}>^heA?CMd2)o)9ns)pRl_U0wsd?|mUikppN5g;d#zLiRsOjk^cr}Hm!n@3 zRRO!Hh(vZHo}o@Z*Vl)j1aXKITP(vKJZ#pMO%gY4lhkOZ7eM#!g{F7!QSAK1{!|!Hhy--KPwc3_84vYp zfz73|<|BBNB|dPqP$vO77y7bZhTvJ}<(gfWp3Kuf%!b7Sb;5bz;TD_zXEM=Wb|h6D zEv&d2cgP=}-8n!x45^1(SRvnG@zmriC`cie0SEY|ioiEiH0A09xBX)n5m4NMav5}Q zUtpgB&eEC?ydCnYdd-)xF(DW~*Ojvu|98PJv2*N=U!<ZaYh zmlnQpu8N^%R3`b!@?@7P-N?svC&2wFxNEoNUVrzLQQWa~wRYA<$V=Pp%vxroXq~r(INF2E+OiG|kR>I0Sk8KW(ceDYa{C~$mfFlm- zmdyj0EFO5QJ8dGr0jB6f;xMRom&s730ba5@csW-eKI6BXH0e8wSx=h;pz=^eJ7pk* zV}b2Hx)tlV_?ZPu|IVcM=Gf^Q+n*^R~ z$l4gTz3Q6qtW-Rp3(~2#4CE3ond;FV>xVH#&g9Pqw-!B~UF%*zuIZ=JOJCLVvA{71 z%f6q+0@VV$!2Xvk`uLsa%*g{Szhp)RL(JGKhgm9VYN>j@a$87h>6lXq6^Ud)OT7bH z^9Ajl&2z{%1L~5qY;W;_cx)#J=l8>Z2>KUbOcR@v%&NUFRa-oa8*(UA%RJ?6tz05C z%(uoK&YlP3qpBLjYR-Wsl9U3zH(WD^L@BN4xgE|Xs{crJdXpV{U(>#>8*fp1z_`Q) z?)c5tRjqFnyw6}L_t&h%UzJ?54~p_Iy`2hLvusFNUw{OH%E#ouI|g^p0_W2&cKKH- znbl_2AdM9gh)Q??&WEAQ{C~qWfOodfg4x34nV&Hp`ftMHpUJAf-&?Ua$WDuh*|3@D zfx`BP_&nhm=M7|ciMvdbBe=2b@0Utvme!OzhZKwG@=E!}6?B(IoD=RFi2u>Z@W6U) z-sLK)gEi^MGEhBDjdldLOfb^KQ{W^ryLS0q@%!D@3BgTHxORR_n$b*1%Fk*|qzRf&CZvA9yG<1AZiU6rK_PasRKy_#eXN%83$K4~L_$ zKHCrX)0a!Urrh-#&$l{l6_{V6&G)y^$H%N@3%FKEm+GagAK+g{NpPWZBIZeP6HYw8 zepeGFV(YJtOJ*vsvZ^)7D2>1Q&Q>O^Gx6q+q#yYvUdIP*B#I$BHW%wtiK_Ic@$=JX=69INjG^75pNeh(_wXmfwawV4X-u*6Su9UnpBXB2A z#K3%ilM;-NaPSpzm~qmNFttJ3L}dkTLF+&EBdKyJv-g{mxE`?+b3ca2WX!y#kv?}$ zvbjzFzCvMsZ3UJ4zlJ1I9-se+pOH8>#)37d{~QMt9&j?jWGVXqgql^dkgnFL&$`ae zNJ~wjn#g_L4^k!Sg?Z{JCQ;@jwA@9;$7|R&-i^YG(IO{>I)?0#g6YIdLz{)6xxmva zJbaT}bE&v8M{MB-Yj06^J&9~fYAIwf%?nv;P?kJsTCtqfaSz|ze#1)ktYI!NlT5@b z$;j&fx8UxAV0U%D9?#S~2-(wa!6WI|fiQk9@Pm5V{=)hX2OqdPs@Y@pM!b7vxVpZ# zkPad5n^??V=(FZvEX3Q{r(3V;07cZ$G}$QCv6#B}f&0#?EpNf$+J}3^RZ~QBL$rmZ zmXp>|*~Z|CiAtdN($?bW`VMaU!cP|sJMIrKtu<`v?DX57YSpfMaN0geZ9EkF2vXSe z&@*|avu)P4mQ*QS$@xHVer{{XBF?zkUCd=OaNgDmnUoTh+s^Wx2jx%i6!eVG#Q(e# z?iW6<`(9~?gV#I4P*C{oh3#*O-HnOh$^Qtz8-{&EOsvOhjw)2nK@6VuL6DVtHlP7% z8O5s%mz#9caDBoF1yvkt!REi?aQo{BK-P+WNHqUdV|`A5JIIfAav;In7n2?AMPz1kQ(>#F24j8LHQ&Fz`5^3s+=u zm{m*x>H@eY+E}nmbI2CReNx?Ng>3S2NNrLl@}&??Yoo3Y*81Y5ie7jw9ZWnfoQ@E? zIh6~*9*E?pikvOmc3WmLKqvF#*>Mp7OPKV*OR!=aj<#EtkHtb5s!9v^ym_{q7emKv zCWELSu1T(SXlZxOnA*JhUQi82a&i(3Ld-w(q*b@b#&MFt+vaTSyQ;kFQds2N&7wmmeLszoSBjT-&3Y#{JB(sL%oFf4MQ@ucStJjXI@b!pzdVz62hkwbNI ze6YK<#{ePuNc(5lQAN-pGX#*P?wZabKL(Y+yyq7L_aBC_w6x4VEv(QS7NX%clW&qm zo`>-hSkN)&OS~X?#q4&hJGM*&=LL6)AvGbS1)(Kjkw{Lh9Mj=3mowhB#T&qp`Dr z1_h`ii31czraBAg2s!WVYgS$Au zLa)`qOIGTK0ZYs%>+$-R?GkbOZ|;>{20$wPnPmR_vr3YF!;s^m8(hU@-cJQ4UFwHk z?+WwG)5S2(lIll?z-rgJ3_HAbjKhulZ(8YorGr+Yptt$w_3&XF5K%zkkPaIjlefSY z6N~w)wmW3+gmnpiOeuX&Nyy20@9P#jUM;zD|Eb>SGvfwSC z6b~*^!2!`9V#42THHWN@#Hx=uw3>fUaWp%60g10mLzVZ=9KZNq%De^q$S5MugmXZt za2Eh#c|dSncOADHOE)EW+tj)_k}1PMvY%jt6pfj+vCnr9F%H@8Aj8C8rzszB4H#nJ z`9TSQA_;`1hVgtRbsI6S__<2odEf456W#h6{W0@fIGvEDtk^N-h9&HfsV_H*)d|t%?e3uiRsj!p#r3KkZ zgdpTpRxh)Z=Pf)sRDgrg>D~Lcy9tGb`E%Rj{sMj{>(*7Jlj5gdVh=kL3X5$@s%O(XJ)&I(706Dmn1dqudBZ6;}@kr!t zyMHC62QKed)QmsZuhKAE4=PhL+K-mj?MrC6&jH9-zk!p>&JKs8u8#YEf&hb49gxHT zvHtJyda-qo!@2pF&0@CM1PDCR9=5NwZ*3$I8G#wO%v$(^V;u{x8GJ9Wb6;cx>8k+9 zLvgKc6WZKjYzfMynkQ41#q2151#UkI^=PnBe+k||kgOmk{mTIn0;Xa>DX|%B2b4a_ zse#i0uw> zB>+bEL+^#9Os|tqH+ynN)#s`Kui-Ka%2{EjKOzc0$$Fm81hP)8jC+jmAu^VY;%zO{%t(9Nua>6J%hwo2^YE43fMRIP*{?H z8U7yksn}M6k=8GE{&IciSGv#tnVp}nf@Pn`^Hh?g!(M-Y$+L4`s5lS47g5R64HyB=(=9P)zDGaE2CJg!vKx5;Pk+c!OaVu%oS zM9aCL5QoDD92el_l)Hze(!dMXVNJz)va>SScc1P@Ofi7rlQ}%4dt`;=bp~5zW~3O{J8GGarXMKBd-2deIB%tjvXk)m(K#b%84m$QBAH?#sMX`$$lf}q=eq>sBg63Yfv?v(Ovcfp?exo>j**E@FZY!+6V>lm~( zqwYdn;xB})AEsDXS+rrL$xW8Wg8Y`V$t<|T`3RI};;YxQa3a%|!JY$75qsY1G)ERk z2H`qp-Buu8+L#ril6n70S9?MG<&VY}#H78C__n8c zAJN3#&Oc-~!}xDp+HICzE97mw`sxKz+R(mnrN4Vg%>Hzr;)VwQ`s+)2w7aqQpFEpr zB*_Q!kc&6UEc*qwj!AnpU&fTZ)-_fZvLDj!`*Dc?Ak{;mP;9-k&6sAC!DL&Qek3Uc zj9V=W?0OAT($j@AVJe+xuD4mAsLH>ofYjKLS5;m~$Rm?tw11rzF zOSVtzQA5Y*Y|q7y;(eTL3>T7r(D_7MGP@(y5dZ#Ul?y4CbTG4W8gIKd;wk%7;C>oz zm?>80(6B-wOTD;4BQ>w><*u_iF9oFL`nCD`eaQ7EdYB#vjw9dNd{YzAR%EQIp^|B6 z-dfc9xHTCu?h{~8rThp@#w~Ffapmf-l~Evx_&kStDi(Mr3ZuUZyI%6;QjOB0w>v>ScC zbQ*F0k0|YE0`|PlI>&Z)YAVQ(198gJ)5(av-$P$5TzX>-g8FW7qHdgiE=T}e z-)C*OxOc7kv+iCHxZ#L!ZI{3JW=-VrvJ%*D?5vp?AI`Mw(Vw0Da`eBkBeH;T=Toz0 zFXzfXlwqB~XRE%H34yPSH2)!a;J3_5+c1Gizg+92B$__``aDVNU*mRPO;e?HtH)nA6a_q}Wt18l<`xSHq3fa? zjIO_6rJiqL#UqE@>i?Mh0p_^MfJ9de^IH9w*g0N~H1=u+p%IPFAVto+jkqi#*lQyC z#`@`?__;@t&zHzfSw4;$J-_JY=Ehl774tSGRx?R64Yo0%lZ1s!^l5Z-lq!mRs+DRA zQ-=A;&(n_O8ZS5G!Ai&A=pgUjm}=@zpIGs6W94~CVEydsN~e?3#{L+Le7|5j&H(SH z-EYyWmYFUa8Fd}yY$W|)^MHf_{&;WDrm#4Hu9@2SCVK695u)rQoi=pw!3Hh-0z4hN z^Omgpy%?)>Y?5A0J#`~2HBA+##r*2nO^J3}&acr?p0{nmY9}qWLY1(>yp|H4Z(zWw zetXe+9>x`{miB5yp<)=RbD#8Ku>i>w_l=Uh+IRir`i-9pxDpS|5IM7hQ6vXd6Ife? zH7O0^T7a1ROe~iTYo*=Gks55qL|)c_P*Q3EK6K`)F)kzs(89 z!E7rT;P$4WO%VZs!25)tA6>HF66%PFbo4ABJkC(2-9n1+l1i$k$p_`Rgu6XB+9)$& zD{Z^)@=^MUtooi?iq;DeMvm}<1KL7bCv|Lf?D0KNhs~AF{1U{^7$bu`5mP9-JRQ_G7s2q_b&tki?wQTcIFaA|ExqB)U1$6d*&!BNHXVMkwiw{fr32iB@5}{sBvnk$a)>Hmytm)eJ_AWlmjo z`wW*KZCP|5P~J~Nh<#Z!*#kIfBdTJd8zuPTWG8}^3$`>pDlVd1aylYi2Zwx*diIV{ z4mQcvI>?bi4o)MdZhh{sPo+z4d?E&ZD;+@|5Q(-_M9Y+-W=h z(C|svm#(<+rH9Yr55!`{xvnqXT_aA&><@nHw_SUHt0h6$w+#A+3hddultzEK|ID@T z)6eolb;*rO8m9(Gm=kU}pKQjR>uN9ZgNktzcZ40dxA(>=|&3ki=-bsBxU8*DB?=Wj@E>7@m+V9icG?cg;Hg;Aq}<+?r#6H}D+_t<#wzh-CmsL-@hDu~S)i^+@O zFy)coiRu4tC)s%sZW@YFC{WgKzSQX{ZPIz<_5=*Jt9ujrmw`x|EFkj^cX+II)!6pI z4KZ2OCwN0{0hvW<^7nm{Cn<~Dyt-$;HJ)tTsNQllOz=xdUyHw?QNPv9IybF?lr-WQ z{F1p~ur<`Pmk0sL@%rOy9iCSxpoy#AEM0GGs_UO!?&+0Qf5Bhi8y4N4P#}wwqelDc zh(VoRv}t_o-sSFVeYEXkuPsFktZw(xzH{U;w#|c8rXZ+O17bzV)b5}Uhx&Uw_#t10 zPViSOwIKvv%N^~&sh5@4!KsduvVSrC&``apjH)q(RHE3nc837S zu;%2ELF~4CX(-S#qc5{;tasHa6gEHzDW0qjsHS}?t$yQj-d&+UeeC6xx+5dU^QIH& zruevw2L43UEG7tiYG&;~_(nRe61h8DqM}})66RC+tA`+n)nJlTkciwe#*$F*O51%9 zj2S@4f6+IDK${Alg-t?KmA5MCu}4zexHdDfBu|$tm(VGqZ?f`k1wi2}k34O9_NGG_ zZFUDO1xgp%X356f+^V|_?!v;P`~p-7UJSTA=oy$k-Sl!<61vE~gl15zkXpfGESf)Y1z3Gy;?dd%926Vf`%YN2Q&|KsxRMTJX9r$w4m=r=v4H>5V6GqJqlGP zdk0n1FU$H9CPz(llj-z1sNvXB;kyr1c&l;ph3?jiJ}5QnSfWJaJoAg4G-+sC?1*4B z9ETq-B$h@QMEizmRo2Cth8twcCm6qA>IOu#9f9hcZ_=j@{d>c~N%d|2 zc}lpwbtp`69%g%xM%!gBLyf}8Xl2?i# z2C=vc>n2y^;UoU@2acU@e3`7cPj=!IN6&$OlR2g9lvkVIXgDsTkAI_YaT`9bRr8%q zrzn~8rKg7j+o!mr*zE;dnqiPQ-*4aUW6s`S-*Raw4;21$7mvdRb;)R z<8mO;-FWDi^2>l;1CC0(XmjBqUHqYlmJbEPCDs=-2b>QSEqmO)V0y{904m5}j$3V)T%y(slW6 zqtz|D-9c8-AB~6j$|MqVNWUAlR|KPI-J7Jm5(Y>`A2oi(S{WTMR zM?s;2Rr>u$UGeeg5XMQngU6biJBkR@fHua6II`x z5ZW-0Y|E2db7dvMb6^vLC-~M zs3tMCh1V~Xcs3q7Z;qRe&ZBmA6#IH9Mpcu$f2M__H#^PI7DwY_6p~|tI~M4?`3}C$ zywWi>n{eMJ6TQ=?F?Bg)Yw80D_H+j;gZK{j1U}1A-E=8_Km9=^3VE=Y85f1#Y*|mS zY4G^Tw>0eVo|9@<+N5$P{QJ4CBg35jtPo7^BeYh$fxyhS`TQH5>Y0ZeLYAKcZ-ExW zP<%Pg(2`Tnw%=|>uJbcp3BGN3A+~+>Jslkr?{&`r5n|AaRvXx~!y`)L-BLV`){J}z zt40jKb^9HM1U75jJcpbNbxg_NH_PWh7$RRixybqy1yy*m}Ei@iKx)BNdt1 zc0ca^!wt4&3DhO>^#SQmiAvXy8CboW_O`Z5#9Oq&`@2oiTK<4^`!kq9+h2p?NxOjZ z59JHY;U;HqM&d5B)#1x@^are0!=9^!38f#bUgf$pXTLu+ zFuh)VtdkfY(dd2Z@piEGq{6A!R(&ipC;a7NdWpxz&&I80S-Z-;>Q?W>d z%s8%9O4R7O(BinXy5v}$18F`x)=FSz!~?p9yT@A5uW1wOwbapt2m2;*#!XLuQ04#6nijd#y4;@`24b*>rH>%G<%O zUwE{!$K4O~olaRAZ#HqFg2|RMg@>J~K#^$MOzXbL$&rYBe-LaNjUK4A+ID+86Q#0= zRuuLs_dj%K*3-bYK9&_C@4FQzF)c)XuIh#y?9QdjO;@>*PjC{lu+=UjlNjJK9 zB!pG`R<|`h`oF}`cqrf+7;UOXaoo+}jt0MMzv58N3G|@s(=t$D-w~{RRt04t+TGxr z!&2g-gT0(J6UQc5Hi?(O-ubL!rQ~|(FcD${__?=Fyi(gX6d6A+c8o_zJ{`^Nb~KRM zYijK5Q9@5IpgX%2k`MO!x~C)fN|(|xNbdS|yz2gV9NOn1doE9aY;+KPz9nsS&3v)* zvEuP{5BtS8zD50Z_3|-GSJBG;Cq|hLUdM9Sr2?||#!I?S?qwoZ6n28$(&UA%P{Xh9 z4ttR?Be|AE>>O)%kH1~TKTm4if->=fspgsVxG`b0o23!pCEBDKEnzs zN$_%Etfp->FvG|1=gSjBQtP5|Q`{f6$8#`z0*_nCG}w#h$WC232D1>xGF^us&+Ly; zjE;$sRF0OpK0S1S4CL_y1G+<3%g>oh==U#!rrHZe|WLm$#Gg}8D?XLp_N$AxF)yu+;w$?)2*du zTl4Pl(T@hEgdsQZbF-NoHr2b`n?^6)F|3;WMpTtQzCF3)cm%6{lo{>zHLp~aBy26> z!xN91)_0|~@dKS%Y?o0|9$WfvCl5`vZ7<%ho22``G;OXX{Xw*>Ekso4Q5Nk{A4hR2 zlOvjc$5ES~AkAct>;++!!tskWpN$2@M+~ZcO-vlVnJ16jw-q`|#Mj;snkuCY+DrsG z2IupLLh*vaY@WhZ~i8t>VA;L zQg`iZnI}Ez?nJa_8j4RD(vz6 zpspqmj2ecynz`WhCwL>M1@cev7squ|Y(Jdr_=$r@&E1^=Y5D@d=}$j05SUZhnXN_U zCDXRq7Jb+xTKqU%;y~ZF@!E4~!K+tbZ#1J};n+B*f5dO8&!$_RTIbvK`mDv>eyw;h z0YGNyUErX%cv*)s(ITVX-we3uUlg(UZ5xni1;|Dm(!6x*t$gM_p610dotiildmIKS z_Tq)JMmk%1?c^U)>YpBEx)oY6e$Z0uX0Yi3LK6Y1;9VW0gm;bS>_P~CwPi;dZ=V3! zcxH;nz8^(I)#ls_^}Jj4Qe3*gIUBxeVx7!+74;w)a|dh$q6%w1Ohw>fsejAsZxb;>l|>iHBB;T&F1UVNW0Xwi>N+GWrn&)QGz3{V4rsr- z5pxi0XCC@Ar=JHt(A2a8eW4!OLy#lu=^(aq@YqCEx@$3^j^AJI?awFUg1S`>Y zK)ywpOhKcLtQRRmXl*2Ji{*L+SckH*kG%?8GxOCku0qx2Oe3s*4(&4f?S>S3MOhY-`xwPVGncC)bf^%h}=to{zC2 zEC?od$o%edR`;K%@n#Ypy4!mrDV5-KxWj3G_!NXJ40^QGl-BK>%0uIiRwhm&{2!#k z2s#CIYLP`p2!pcr1D1mmp_}>mge(fHnbN6)mHd$Z%0=JWxcp2LSa*uVpM(Y}qIH_9 zTXBYuwiyzU<|-RQXr=jYI6L>d5#DX0U zL7SiG^7aJ&wwA6W5z10E)xz2*!XIN~7o5&rfZE<=;n5uuC$2=92of9QsbC^& zM8R-!Pk(-m2+@pU7T3)Gl)xqg3r9?4P(Ni8Fn@}mP}ibm&*Xl_{1Vac5bR3>swZuV zKhHBCTc67i3D=Y6yot4OgukvtIA~C<<@xMaab3CXcB^!Z5pRu~W|@96SEq9#fIGq` zM8cdh_r=Vc;E*Y_8y1yW&fPV&D*uN&xx4T+_lFhwj`m45L^ciR;wnvWawRe%CvN1v zUgBIm;juH>%c>>HxGye5A) z4jwnw3&T#D@zw2C?aYO}Z^2mL>g`;X(>;cKNR}Zxql-PE!$UWcR@>!gBcZ#~0Y2;O zNf-i1XO%0vfm7KZbAsYBxOJ;U40*h}p;pWZps|gh{Xrp3Zs3nKzbuI^7BbfUAW!&+ zT`}@-a*|*{SVn5E3J>({{7A@`oR%=2@N^6Ea5pE&`Z>)Oyuo4L!SrXuia>Gc#)1UqfNxD=RtxTz!v3OHe?*3jg zWNcY`zFg%gsdL15e+{J3=bA#z%*f4>JQA^{FpKm_QNt}dUjg5yyHP^!QWA>gEO0jM zU{o5_JFUDXX7tu_W4l9;@O#?*3C`W*fHmu1V2!e8kO+CSb`N}IjaHM@4rn+t-Ujsu zGU&wcF&+GoGWY(|nw?Fn;_v58)4#XcTA1_vIj@60X9nxRDW02BEQo;liUgbL{RoK% zQOrzAb*jP`d;iVi-es_WGV_+cjd;z3XVgPtN(En@dFbN8qW(C~kbJRbxlQgA&mVOp zz07Da4O_l5L-6wrX3^&*pH`|{j~Y?&e1d^u^P=hlxOD%@`zLeh-JiAs z+E1Ukd#wDLq4DqT(k`7Vb!SMdo?EqNc#R@449Z^sR+yrg%yf&d_P|~G<2lTLtor(a zq++^;@fYW7EoPJni_?8;Lq3Di6SegmwzByF`~DRtvbeT=?s9ywf4F11iqXWWY&y%{ zwqN}ke%G2w`JgYW73qrJ_(8deAvm0U7+OwqVKDjn&a}>A*p6r(`d*jLEMEco%91sR zlM^&KCjK#yHG;Oxf97XjgaD+(A0}nY5vWm-0x^pJ4|vCiT&8^@cNrNzG(FtdA?q~9 zcf37kU`S|92jQIgT}0Zo04vzt8Fnz6Vpr4$G)8&nI2^jiqJlR1&fS2U6kl5x$t8`^ zQ7^<{&|lGbf}F3^^oeZd5MF=^ zNo@k4J9ArE#jevbRD|hiZS6$$wR90JQF{YU9EpHf?VH`7Z24X#!^nZVAC%C(eZM;? zXKL=_zU9Q|@dGa&NvOa6v*4i4*oDTN#f{kuVboKT(Tzg!I#>9B4WqmQ3@-arCgZWk zPgp%Mn0I`k>Z%x2!H&o1_SN-lrw3y;7NIaRh{ulbJ|dy;SO&SmFY+iWDGQ@#7FWN3 z5}{MdhX^Oa^Jup(LVvSdPq~uH&iDJdMxT?PUDDo(&BLuX*(ZY4w#rHV@vL9ut>IEW z;Cox^#mor-J-@nh2=^=+#o)3S+`}?fIl1xSa?tKf{>|4Gn^KVTl zLn_SHbSL-yZl2WWoA1?$;hbqSG{n*I{qFv1q3AP{EfPKTRlN^S*U{(gb?7J5{qn6t zu4;pTdyP*>2}mW7Tp!(X)SEX@Jx;14apxUgSP$A9-d@b!uzPrY?J#nGW0;lnN#o?z zA0IEUAe81m)Y$AU^1T1T{ULC4uVPK;^^j_GPFhLDOu@&4xYl8H1}W!-v`fBh|NGoA zz%Fw?rG`BWH@^0*C6Y+bz_wx8+06Hj9E6g=3whXnrX4I_6-J zB&^YT_50ZZtx{WR?vd&THv_E1|5IH}7jw^rYC!UUR#Xa_N2>=pDFy8p#J86WrZ^O7 zoc!5k6TTK9uS5()MCd6aLf#e=wlOva?cyIQ5kGn!8BH zn`cCwQb5kz>iPvd=fn9T0uS^;R35S8uzVk1?kP{E-3K;hschPMkR61!%v~u*Op5UlDpSu;>DkQ0XDlGksFFi-b z&rcc(F?qC=^s&NoOM+|>w9ex;w!DJJkhrlpA&xI&5F=LO5ZJ8))C~ji=fxZ4?5#W4 zYWHUKK8cuNSNqv+S6{iT%a6U9jWWG@N@|xFIlchA`u+sLfe(L@6=86(Qd1<9K>h|l zU4VvfIpo03jPl8bVT|%(>U3hVawg$=$aY8J8|r}$9c@-Hp5UGX#}`m+qgDrCFrwU} zUhOkQNK(a5Zzs#cVbrMV+Nm#V z>4QIYko-jj?$9SQOvQ3}!?(~4Zqb@p8*1)i8Fpke5Do526w6Rka~H|rhPz=%v-O4> z@S=XH)Il&uhLL5-G~5gg-+79lPn~%3IsHl$G3>qFEBAXYfnmJAvmwO<+V#V=SI$AB zOeE9IpAX(tO=JQ!XtYt`LTIY=N1Ytn`S+7;jmTWyL-;x|t+$YJvtMOfF|79CARCUt zZp4suUFG1sobRW}nJxva{+rqU&+9R2w1EwAL#uE4o55Ohl?nWu4s7^ zzoEeBo!&c>`F9eZVflKeuH(H~p7nZYO%*l>83Ke^K|Lyl-t;jz=zN=K0Hz$sp21Cp z5mUz>TNY$fB;NjTCCjW8ejL_oWiKDH=rA>{O}M**pp_6I2A?It6xxXik!J+lS7J#z z%A9u20zUPq-24E~Nc zT!v8-rdAH#iB;n>7u=TXGf8`oIbNqfE(_Znl-Yirb+B}XjK1VMad#SY!8V)d@QHd~ z;|U-F+r}>B4yVsynnJ$A{_R8OAZScXJolA5E&Ou3bLA=PAhs52=YOEq6XZ8s1DyHhfk>9QFJjVadB^l_hU?+)}tt z`z3gk9r({EJmI|!+OQ#8zT+y};Z8k21onF-`DzL``jIEgD;gWlU}n*~i>U=6BZZI8 zBve}O8-S%GlvVeAJkj<-E=?yH#489ZVNNVYcjX$FGvJA65q@vn9#$i5V_vhrhd|Q9@dpeJ~c|cqRf?}&eb=|YDqb*!nS`UWMm;dkHe1P8uRS-^zNLO z?BRZUYr*)F<;L$_qO(<}d+K6F0#v*f0d|1d@f%U`D=Wxb16Qms_&={9y`W0 zk#tEDx70uqBhu^QA@w!@2*FFCq69`iBUbn(8~X)@DF!huB${(D#|#lR zL_CbLJhiY**A4V=x?s_0Aer(&+btB2I7My=^JK0^YR@tj$m#Y?c4KZvCZ0m*)npKI zevt{YZvj>o$f@BTQ{=6*YyHtAuEt^ZJAgiWM~I-8o#g^tUnrhd@5_s9TD1B%dXq-M zZ{#DkRZ=})-2z9;w8-j{es(iS=p9;AOtWJf9(A$y^hNdfPossj<22Y5n{X2WadYy; zGCY}F^gsJ7oDxkEfN+~KJFTDWhH`v?@;H$&w)u53Jav9<0!A*9yQld1dAj<`A2 zt9Fek9DMfBgvq@)q_lSD*)~t$(u>2s|E>^*;*3hBe^tV7qEE7f z5!z7QaS{xwwx^s}Hg zc*?;C_GXR@2>JoQ^*l46*!6 zy7Dn)v~dusD3cBHxLL68JOK<~F%M!V{UUO2C}!%wpTPYCayl=pZAX;RQSxaAw=R;e zIAn!;iUWbC=^S_>ADBl|rEU#qiK-k&WeEkLXl{#;zK73$Ij70qDdW( z2;ElLmLM4j8N9u((%PB;R0c?~yxgM1cyQlcE3j46+|17M$!EPNz9qBqH(vo12Mqq} zfW4c`wK#4}9tk=JnjVaHOumb@@Qzmd>-%0Ls2*+B8L(nwm9ykxX)YNs8P0%K zES||Bi$)~1=AB$DsV}WGJ|gH1+}Wgo(|? zox;+#9{_O#?^`~*gTbi?+E5t%tk^3!9{UH@M6uotGcd(w6WGS}^iiAnHf2PjUao&_$xC-GZ#XxQ6_n)Y0gfihdXi5 zge?ES`)L8-n%m+o0z3hckj174sdAuyH-AgAEYpB9mk z9D2YI&b?$(#vj`jSC^xeMSni2LDhNhzV;hTy8z@euv;U|?$z;a1sjpyZ77rTdZ{~8 z_PVhdpcz)r5lxu9d+Pqkl`Z95d{4sxg4O&kGxR`Vhr;BWP2zrdKWSCSRDQfVo95sO zD$^!lBmX-O_>r0gr74g1<1#L{hPCOLo!L_3;Ke-UW{`5K355c-;$9CB|F}xAkLiJ% zXme_;(Tsq1SCJATB2>Ux&eUU$AuA<*w1AaUsd%uNJf!HagTpurZoLDtxl;SshXIj|@DG*}g91X$@50|W8toyv-Z zw`O>t;repoJTzW#Ok$}F68?-?3W}qB3!!?(%%Fs0-eyCP%EF$RR2=hJ_-SJoILwu^ zg@}`H|LIlObzL!$lON9F#+LaLe9q+hvTM`C+gmJ6Ov>J?PoKpW9@G1B;-Y#6rIbWF zrXQWCi?=;YV;f2>sn%aV_+_&`6uNnBpHi-j(hryB({wpv+G%HHNAwh#gtVb77BD2= z_GZ$jSC%l-`Lg{AJ*IAR1%(lJ^8lvsb+Bby9KX->dZ#PK?c37tnK&I@z2IJ1i`VsQ z!JBDdtI9kA(Kou$z8xu|)>ll2f?KI)5|a4d^^)&4R&)KOr<bdl*FOhJgh69Rbp>`Z78^2BUV%SEAf+-2!RtsnOqh15O-fC-3hjH5ueh zeUn^w$z}ar*r9VY$Y>~z(0_uAk61oMfCc?DB@h-a{8;xLTJtfee)I$~(K=?}C;IG} z*{4BWBp>%5b<$D66r0Vgr+$*Kl}Ap2V=#$i$`;ea)81jAS0cYI=V_ECTeN+jLZ2rh z?y4PFyEyUDQq7ElfBTJ6<#?4%$<`00{y?$whOF3;@p}sW$tCf-Y4s4BE^3pLZF6c| z4|C2GJ6A|fpIqG+4c66RA+as;!yUiY$4HnIuaf z;+1XkWrSaedMRnpPv|9xxh6_tMZq!#i+_f(NDeA<62v@4iLe93c?VnvBwSKe z3UnbEf|^mFoKTH2L4R_RQZIp6nBc}?dylk!Sp7m%)3OV|0>S1^#hX;$E~TD*?6cs@ z{Wow(@x9~R)U-1C<>V;13!(hwpQ%!!NG0WX<*q&AuEcs%&7t|l{Y74%{a03bQPtk2 zoIaIh+H1Whsa%-W7Q0?0+2vqAOnQnmGn-(!I&LH=cOfd-9cIJnF1BC#J)WAPq{*MC z(52)37`2j?yJ#9EiNE#0q5XaOH&ncb+c{Kxlgtz7nQpnJmu<@Z^3((4c5RklcY}v< zg^st{V|pGRD%<(Ybc<~(d0tM5chSR&iatLLrGkkY>@+1*+6lxPc`%V7w{sxD=rJ2R z0vg+Y>p=@Ovy&N+sN+uH;|US-cBtatyOu!7MEci8Y;spO?RS6`K7`sw8-^?juxf`$ zZQj2h2{mXeuMi=Aln)^)c3r1}*>VdqD-y*y1ULZq0k&PR7WK8xd*d3(5c-{G;8OpL znH9Xm#itG9`+p6=T_ZP|f;PD$6Mxrs_cYe@d>E+@%17G$bif|Rw1ho9zPD_`dy>?m zA!u*(8y0fIxUz_~%ZS78<+xv>-oxE|5PiYGgP_I%Zp+fQly7~YXXhQLhE#oJo`@A{{0z%)! zq0xfQQqc2DV{H75USpMx;4^^mTroW5Yeuar*>1wJ;t=|UnIh#%q1RI=X3>AW<(bT7 zXhbD=ax|}Q)>23powxApL321S6D~M%I0#sHH$Eg#z@mDyke0zW9?@SILFjQfNYKkP zoeZlL`NR0*Li(l8<6I&i0%ed)EWaR3lZ}oJA3Yajx_-D~!&BaAk}rJI(5#~q=L}2_ zP&x5nOT+@1F+w9?EDEaXmrmC0RqACY_o-i?xBa@!DJ18yOx^@A4m$xKi_ zETJ0|wT-Xf)JUU}yv-YbTLdaNuAbNq!r-K}+JWJ+i1GTr4ySGlv^E3tdG(@WXu)sb zywX&q#>ma#1joe5s2pQ(7V|h+$@buxF(7FenCZbG&n~H6iO!`#(=ae!R0je?OKj_N z;Pv&dI{0or(8B!fuSw*-N|K=6 zxhK$HZH9{2DD_?x@2~3&LS92#?hfBD`v=C_?VTI$IY%6rW2OLrJGf1?&rHk#+@?j# zCJ3i+Lu%!j{;Lkli-o49XywtMUC8CeN7~0H@JI7#3acrlau!odDfL_^X{9;A210)C zq0iVK)0ZmJ@*o}n+|GyzGM|c7*>XzFpgiIwpD*NZ4Erc~jYu0v#Wlu{?$o9SMy~@8 z=+J{6)J&#~v6+GFx30a_b_VK!o!KJSlHIx5EN;@M$NH!FUg39BWf~jJV|v|a`J55a z#?2w0Cmvv+s(prM-Nq?G^NB&>+4ptTgb z7aHT$UM$>oj@9q}PQ9KGP^SpiI)Q)i!WNYs=ih=MUYlE^ZB~yK;+9gvep@ zPynbJ;~uyAtR#Q7L|2SYq^8VXP@2ab_n;iIM@m zM6@NqipcyLEx^7>K$%GUR$W+3J&(CVkc!?kUr>{QB`D&i8ECxY*#s;=N#e#Ph~(sE zQf7Y^yT*wBDfm)cQ}1#nHKmSGdP*aXM`LZNV$7gw>QU#{{o4I zeB;t$c&o2&M4RAz;e&Gdm$oZj9pa5s+i>ssC#p3)0Wm7vbke3e+_BE5@cgWFa^f|C zSz6YCQgrP0K3}Uklt8b)RRNrI#?FF^Pw2*7s{55j&z zN@}hoh=!c)FmJuA1798Zc5UZl`FZn90SL0VR)0;dr0(T-V{dwG`^TJmtJk8oB8-OF z#v{ffh}HyFn*2tg08zEB?)#L6FMi&tA!McRf6KDLDla}aZ$aALeXEDW;&o-;L(k+_ z)$sXjxdQ5?oeF~`Uj6Fa+EMT(PRs*D+jI+Ux;z-;JG^JTGLV!W65E&%vIlb6w&Ce< zV?QJ=R1%9ks#`534Gy;E`^J#1$*24>2=sVrj${X;UB}GEIH_p&?WwSix+E|gDsH^7 z`NH&V`|5p?ZNVhD93$`f?m2h{y!`nNdIq@+XhJu4h2J-D8Qf^yH-_q-vn57 zA5-5fK^($*hkI7J5U;Q}eLB4Jq5ftu^=8SbNRi>{%zcTWzn9K`qh)U$Hq8Lls0rHT zsA-Gk$Z(;@$7}r%BVugAg+(09!V#R@Qc!AY3?NJ;i2nm&x^;{~xMyl0CVFvIXxE?Z zfWXi(qE**TprRCByVwq;qug7TyNy$$8DA!-(d3rUg=rdsdLms>*yWxIV>DNMRh46A zi}p~A51=O12O5|u=tfTNkRR*ml}ejlb46S0oIU;4tqFtGots{*DPxUz=%~%Rn4RAG zL)p^(<+89!r~wnp!-L;S-K5mJuMb{}ihIS5Fw8GN|!^A7bcPE29&A*D}m zt5xCjC=KQ;*Wq)i3DZ`0Y zC4!pt%#!N;HgB2PR{SL*#Q4Cz>L{p_@aQ=W@%5TnHTug^{?6356@azzKaVq`%nZ-29|qiplS zU_NRxWw7XOMMqV^IkHF<<^mqP{v%^DU->q>xA4hlt zHIyo1xCa-VR(CoLq}r%q1(ZzVjget>CU;eLLkGYB_XIWYzHSbA!B>~FHh)5>VT#5Z z+jB-|RAA7=IZb=M~2%(lRfm-W=J$+ol}P?0;Lq&W~8yS`4SP7=Ce zMPK5b^3_17u&lzMw^O3%leMTZ7z{^nX(TCckG^;67G12%zpi+YJO=MYTHvD3Du%+F z@<$3iDk6E!gAV5v;+3yDw&<2u3|GzWGy)I{++HBpoq{&AkV|PJ27E;~*|W*@0h(3+ z-RcO^<3H<*G5@cK)GPQ=p=p7AB?iq`7mkBhw#Rn;F^5z9aeTswvtWt;QU3FjdD$_# zFF+}Y)3UaF-8v@#;kqwE^Yk*OVQl{~=@x2MXZcV@2}r^ni`S^oNa^-3hFR1$fvvPM z@2{k4mrSoGJA3GIOMUoLDEeG7>)7-SYN?h#NS>9V1i+kG<^cPBHvn>Oq^va*m zwy2FL8~#8<_yqN1#dzR2o`dH779?z8@5-82qG*ir9OqoX#O12ZT`th6s~tA1j`gV) z+;JBUx71o$wV%gej&Fv}3|8Br?ANv!r@6+-<%>QF*f~c+680+RxTkUn;#k!T3 zV7Mdo03pdCua>XJAxO;)`b~kd`{m`ZPpNNj;)0ai_#1(Uu3}+84W1$`M2uGkw6NNB zZjZLBSs@FuJNK`P6Ge_5uh;r-Bw5%d>Fj*8iuz^;P` z+U|2i*(muFrRlb65h+5%lA0|>xs1an;W5%J#2C9bRA3l7_8a+exUG~;!9l*~OVJKy z^yoq0!-@8)5o~py=b|!D#!S6|amU>VvOSQZIbO>p7rjmlX;8Zqb;P&VSK+O1&OfW9s5?5&6^OGlZ}#Fhi-*3s?^*+>k|8_--+f52lSprPs~BH zd>VSm5DQ;`)j*IX017uty+>dmL?IpfVBYQx58@4yX{cJ!4FD~m&mj23yvj792gtU| zMbJ-xw~dlIFAXU0LV*aC2VsK(FCjDZMdhvd78>T;TDLljXwVIc?U-{!{L+Kwaw3}M zn-x3Q_hKWK3eLA-*Ar^aBZkM>KM_UuOK+R z?oG}M9vn^J@{3A8Fsb$&>eL4v$jEDDvHotLwY%L%1v6^p1M-H2kJU& z3jdzz)Uf#gE4^a9o-d{hRq$ZP}VhCc4wpDf^l1JF~)Cm}N2 zbi~|AgP*;jj|0g|1Lt4`wBsCtZp)?uV6rv`zi@}i8+JX-kmwF)SETc{v|uq!MozwM0eF{=PI%eJG7}ktrPmkE4DJpI8wV>)B{=giu^@l} zPwH)7rdzJZdlRXNUw1c|(P0}eMEr*DZCC2$WCMqB$g0@t+XZKJ)Jj~nr~5u{wDR_z zkY7qnNJS@ozjFVNm$RkiiKzXrR_U@=r4RP43ZxVUt%H<4D*SkP0UaTI zt~J3l$B=5^2Zg&6@(j6i6gCF_+x5ZA#UW4ljjyN3Dx!GO(DJA+3d-j4D`R7N9aQZg zK*?~vycY|K_Vg>HPA;=c#uxx{I4>)wTm&vd3QPE{;*9l(1zS`xiypuV`QMYAH%d!j zLUD-N4RRgUUp?WQq4%GUbC7CBk|F-_B1%tY90{YUY8ARlX3FZu@_+jNMFp zQ{6_yusCJDkmdg-j1Uk>gtI%od;Y9kks6a|Kd+0s>}r{y>~zmGG4VD+%HG(4%cn`k z$gWco;Mhm5Dsr`!3he^pp=@3BywZ6uFi+}9wI

    Sk`TF$MZHP47$IKM9sq`q|(V{ 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�V+R^h@1O9$@_XV)pNz{pM4iH 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 z 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 z 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

    9S7QHFPIZT?RBS{~e5rwNnTAq6e1u-~O?$IH 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

    w7+sZF(X6SLxeP_@ zy)KDGZP7$(2S;Qdo6^v!O$A-WzQm0m));d1RP?HzqwQ1MiY&glkThenBv zHA)$j!@eaO*?(p*o8vdq*q4b90{-)0=;NzPZ?9`okU z^CPQd4ej%y2wwI3xr(@wS;OfjWa|7?N zveG)nZ6d?#XR+lI9weD}_awhkKZ{$%U}LdS-pX)1&Q{*U=Q*yS>nxEp!ggqU2sB=M zzV(8*agN8tJ8?z zrEfJfTk|M2O~GNXD?*~u6M3GYf(flFZa&Y~5{u{3B1UO*xvw#@AKV>RZPw7N_}iDh z=dd4R7f{-cqnvifpE8Zw9CkYmSZ~3F4_*y1SWONsVlG4CB!EZaJZ6Z?s`<8Ek#1B{ z#qpb^8P~==NFFuz)TwrF+y#NL!Nmk!@=iNKLyj@BRw~h!$+D+r%3v?KD$YaP*1q(2 zXx_SO*8+Q z;QrDqH#Q)R@gD0fiXmOsGRadC+S7@vE6?p2OJ>X}7cHgqkzU?cEL?YuSFJI?Ck=%o z94BLvi<6N-H@YvNmeTUp7c+jmdN|eYqjsD%#2~vVaoyuSszMcxxc%5qH=*utQsLxe zFeku?+NhrF(Uaq-*)*(;TJdC~jvVePJ{n}^z7}-6G^$|i(FAqv9@@UF*n{av0h|-e z-}1CucsOVH7BkFXo?ks2y!#KDR_+)Og#$7{0aNvr1X}mpS64&(A<32Tj6i^|K6UCH zejswb*51l%G}ve5mc422o#vt^Xx-ai;Fi~k5utfkx^S3-?Kf^|d?@Mu!Y%1s=UUJJ{t`WLnKIMSaXLi~pHv*p9U+3H zA694y=i2rgvoselJ@zJPGT+^?QIe8bFu5n|WaA+OBmH0@@(mW<=vk~L1cOQL??>5g z_}uX>Riqz+zAX-0p~mgF_Vz5hb7ionfJhqg2zt+EiK55k{B+8d;8_))OXIu+jY%H( zz6M1bt_6cqvSj?hI^RT88EU2TTQSMp1S>3(HkEWpD#%FJ{%2bDG;aq6X1kMp@gLAL zLDEw9NPq>;Qt_0yL(o8-9R=bOXG~H@g6M);x)pQWbFTXR-p_ofJKREg-6$rnjsh+d z+Il8DM*sVHtrbJ_jZcj|@tMRP#c3)*-DBmvozMKxV+D`lciIh0{MNI_mu7G)T)+9& zDuT`w4+eZ9N{@HFZAEI?52W=)Hr@$o>4@{e7zAD`@FRtm4e4 zh!~%W64}qPeSA~A$k}g8IUd$+;T~P2h|=HZa|S=gn0Pjn@)kb(vd67?B)NdTVW*`& z1KNJQlR&k-^vl?5Xg@G`gCvW;_#B_&KPYjA$qtihRsT4;`0bE7XN~W%*U4R`;i3Se zd-VaGg_MlEEScWX$86D=#>Z@d*as@RszR5?&kOrW?alA>%uOgWIGjz!6paKD)A@@B zsV75%n8msj-8V~%Oo&S_i|)Gr^r*c^Jkp|k-*Dl9&xr!E<%C4?cSWJem6rI-QiOu}Bm!7$HL)A==KrN;if#<;=i&9u^? zFzkhuj1^R~`DHL)>ufXGp>GE8Zr7~Bw_TgO*65i|AvUJ`0X!hdXKvMfV&%+^MU_$4 zl6-=cd=6N#D%VfcE|JGoEDu1Dt1X94xvq{mGiIg2iG7vS&RsYQXz)7K;d5!wA?r81 z7|pMmijBi6yi^IL4&(04b`R9r*ZXYqSJN@8RVMa^>2A*z+q)^&uP#bi1R&qc2#SD7 z7Fx_KntPehAtx$o+=lP_YF|=SEv*~8OxR2avhqM~F04&BkQ3#(u6pBE#Y9#^tTrOb zmaWdl#_%l@RB+PIT67hv*TnDzGS;x=63O+i@8GOpZdCd?bZlj$x|}Ov!q~d8$X+f+ zVsYB1x9z&+re?PFrgzs`?aQMbCKD!&((xS+_w?9XU2^OAu+wt(u7XZJGjy<=lg5t@ zi!4E@0IJaNw>y}NRbjwO?J{Jt(>^iEyVhWs1ic8rq;fS-S0<0Jnwc|xXp^FJgT6$MGR8lli_6b_ zEQ~}YM@XAD+KcOq+Y;*a6};T~M(p8WHL0IXNw(ni3)}2NV&$y*+0ZV%S3oYNNx*2{ z(J&0_qzo;2Q}UCj>*MFOroFPg#+lR&@ktBjGu|F}j59-)f}!rTHNafCaDW6a_hFk# zrkgKe^S|@36*rd70octqgU2Ihr^PpZ@xC9?trsgzly`Y4XWq!=@wpW@L*a6AtP>Mq zD9wUWM88C;EH$p%RZw9=Yzy*al3$x>+!YSz*0s77*2qQJpr1+?*^_xa3lo;mhF$SJ zKYb-cd9Zin(-j@ZLk#TD#xM1;S=updrnqm!iLBe2S0s_!k5LwT%-P*QXWChcxU5F7 zYLw85#^%g?oo}qI_OjNOltPbpISQiLKl8!V=y>F<82ACi@VDDSu}x70*NUos>((c# zLBCRWP%9kknhLm1+|0E1>>{!+<-)JHpYn&)vY?J96E}vH9hWGDG6Dw{;yYSN^Y+x< z_mVs>geVtNI}QezTmf>-*9U9k_I_Rb%q6Z;3ifYdbGYOjfpBg+Kkm3qkDO6>b##H# zbI8ORnYr$IO<v)$2+agk1!P*0K!mzghU@WCl=AKQFQkC^xLE_`1p zn?k3`g<50|d|t;9-K8U=%?c(~P7O6XN{%NeQgVycq@MM*QkD1kV!0}Vd8?JBFdx;?j^>CPC+%Oy6fv+Xwe%j1 z&6tYmlXQK|a&Wf|VHe7P+HP-MZ>`N)SFhaXzeE<-9DfqHz}K;CRgut@3qC}L0ssr4 zH=qZ5IAFG31`QJlXBaE+)`F4(Bg1$BrMZ!=rRZk-p!pP#yR4%$vN&nZU zy}{0nwFz;GMIxdzNN})7)+Ku!7NjI`|70JAp%QOrrO_1{)1Re>%tyKX`(Q{loQC*K zxM93Mi>ABj4+ubQ16s2O>r&rXR)Uz{kos+39+nqp)2$v6QZCRjTliO2Y7&>o^Z4NJ z%>na0bo33s?I!SqpBq+5*c>I@Kll5$3iaD+LJM8%e^C)99 za*;@Bn$rkxeq&tJ2r>VVq>CFXpSD?3dZqg6Vheju^b~1cga`r;D``pJv(@=tcqyTZ zt!)l=(Bvsp$A>s@jwW8IEb*Q32R=9xE6J`d_JxZwGmDoWQ(JtX6Sp>B0bn5+%5AdLvdo5r1fo!k^)Boy>J!ImET4JL#sN=u51c5JPK}$G z=wZyi_0x6j@cL?g0ks(^vUvN5ZCCV?Xx0@wey>4}u4244@q|x({1EeZI;*6lD6BZ= zTBFpFLN~HUyqltDu|?4EkdeN?n!7>_*GFw)L13L8hSL-|?b zbLq`x!0ptB{?!771juMbLi(c9lMcmBH7>r;+hv}QzV{M6?zN@;Jf@WnwjOQK=89)O zFk$8^ANYG74-MsF+%pFPCgApAEU{ZYaceW`6h6W z|F~&Z-8xJAr*kP4{8I@b3hTRd5f%0A^WP$|8D_e_s(%uS&NiH?CN2$&n{(Czh29~T za`PL;`_P7v>5T!^rRMp@nuhk;3j&M6c7?+-gj@Z0r^i=J)Hl!UezX|!@WdmsORnPW zFX_|8chQf)s3?B(RO}d^m%o&flT-cirH8rky-tthK3j9vKLZSBrTU!i)k)1~Uh@`i zRbP-jwUVbBjdR_DU3Tr6V;#Y^+le}^!k9+t~UmM#b`eHeaLRAF6PfA`j8ZX>yuxYUglq%0`KJU6w> zK{?`+>YCTaYo%b~D@fT>4y^L?PQoDG!0>OR$f}q_-H-XLw~b+)tVC2TKTu=P_vrCg zvsA07SHxUifDSyql~pT!EfO6fPCHa2rbZqF@F@f*NR*39Z2O2j7lgj2BcNl#-uG=v zD_uJZefHCUvcμ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ڲ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

    5+Q(SS$;VBT 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μ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

    E5A$;3``? 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 z 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 + +Special thanks to the following individuals for their great contributions: + + * Aaditya Bagga + * Adam Števko + * Adrian + * Alexander Eifler + * Andreas Sommer + * Andreas Weigel + * Andrew Minion + * Antonio Terceiro + * Arnie97 + * Aslak Raanes + * Bjørnar Hansen + * Bo Cai + * Bob Black + * Chilledheart + * Chris Downs + * Christian Hermann + * Christian Moelders + * Christopher Meng + * Daniel (dmilith) Dettlaff + * Daniel Aleksandersen + * David Geistert + * Enrique Becerra + * Florian Forster + * Francisco Azevedo + * Frederic Cambus + * Genki Sugawara + * Jeffery Wilkins + * Jeremy Burks + * Joe Groocock + * Joe Winett + * Joona + * Julian Xhokaxhiu + * Justin Mills + * Kamino Hiroki <37243867+4f8p@users.noreply.github.com> + * Kit Westneat + * Maksim Losev + * Mark J. Berger + * Mathieu Aubin + * Mathieu Thoretton + * Max Christian Pohle + * Michael Vetter + * Nicolas + * Nicolas Le Manchet + * Otto Kekäläinen + * Sean Cross + * Sebastian Wiedenroth + * SjonHortensius + * Steely Wing + * Stoyan Dimov + * Stéphane Péchard + * Tatsuyuki Ishi + * Thomas Gläßle + * Tom Samstag + * Viktor Szépe + * Ville Skyttä + * Vladimir Pavljuchenkov + * Vladimir Pavljuchenkov + * Yuri D'Elia + * Yuriy M. Kaminskiy + * abgit + * as0n + * fqbuild + * holys + * kyle sloan + * m-r-r + * mynameiscfed + * pravdomil + * radoslawc + * radoslawc + * schoonc + * wodev + * woobee + * zeke diff --git a/src/goaccess++/COPYING b/src/goaccess++/COPYING new file mode 100644 index 0000000..8da9f1d --- /dev/null +++ b/src/goaccess++/COPYING @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2009-2016 Gerardo Orellana + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/goaccess++/ChangeLog b/src/goaccess++/ChangeLog new file mode 100644 index 0000000..5d0afb1 --- /dev/null +++ b/src/goaccess++/ChangeLog @@ -0,0 +1,705 @@ +Changes to GoAccess 1.3 - Friday, November 23, 2018 + + - Added ability to store accumulated processing time into DB_GEN_STATS tcb + file via '--accumulated-time' command line option. + - Added additional Apache status codes to the list. + - Added a few feed readers to the list. + - Added 'Android 8 Oreo' to the list of OSs. + - Added 'Android Pie 9' to the list of OSs. + - Added --anonymize-ip command line option to anonymize ip addresses. + - Added --browsers-file command line option to load a list of crawlers from a + text file. + - Added byte unit (PiB) to C formatter and refactored code. + - Added byte unit (PiB) to JS formatter. + - Added Chinese translation (i18n). + - Added French translation (i18n). + - Added '%h' date specifier to the allowed date character specifiers. + - Added "HeadlessChrome" to the list of browsers. + - Added --hide-referer command line option to hide referers from report. + - Added HTTP status code 429 (TOO MANY REQUESTS). + - Added IGNORE_LEVEL_PANEL and IGNORE_LEVEL_REQ definitions. + - Added --ignore-referer-report command line option to hide referers from + output. + - Added Japanese translation (i18n). + - Added macOS 10.14 Mojave to the list of OSs. + - Added "Mastodon" user-agent to the list of crawlers/unix-like. + - Added new fontawesome icons and use angle arrows in HTML paging. + - Added new purple theme to HTML report and default to it. + - Added --no-parsing-spinner command line option to switch off parsing + spinner. + - Added .ogv and ogg static file extension (ogg video, Ogg Vorbis audio). + - Added OS X version numbers when outputting with --real-os. + - Added parsing mechanism in an attempt capture more bots and to include + unspecified bots/crawlers. + - Added --pidfile command line option to the default config file. + - Added Spanish translation (i18n). + - Added SSL support for Docker goaccess build. + - Added support to the WebSocket server for openssl-1.1*. + - Added the ability to show/hide a chart per panel in the HTML report. + - Added transparency to the navigation bar of the HTML report. + - Added "WhatsApp" user-agent to the list of crawlers. + - Changed default db folder so it adds the process id (PID). --db-path is + required now when using --load-from-disk. + - Changed Dockerfile to build from the current source. + - Changed 'hits' to be right-aligned on TUI. + - Changed to use faster slide animations on HTML report. + - Changed wording from 'Bandwidth' to the proper term 'Tx. Amount'. + - Ensure database filenames used by btree are less predictable. + - Ensure HTML templates, CSS and JS files are minified when outputting + report. + - Ensure key phrases from Google are added even when https is used. + - Ensure live report updates data & charts if tab/document has focus. + - Ensure multiple 'Yandex' crawlers are properly parsed. + - Ensure Safari has priority over most crawlers except the ones that are + known to have it. + - Ensure the request protocol on its own is properly parsed. + - Ensure the right number of tests are performed against the given log. + - Ensure user configuration is parsed first when available. + - Ensure wss:// is used when connecting via HTTPS. + - Ensure XFF parser takes into account escaped braces. + - Fixed a regression where fifo-in/out would fail with ENXIO. + - Fixed a regression where it would return EXIT_FAILURE on an empty log. + - Fixed a (ssh) pipeline problem with fgetline()/fgets() when there is a race + for data on stdin. + - Fixed broken X-Forwarded-For (XFF) %~ specifier in certain parsing cases. + - Fixed conf.filenames duplication problem if logs are via pipe. + - Fixed float percent value on JSON/HTML output for locales using decimal comma. + - Fixed issue where it was not possible to establish a Web Socket connection + when attempting to parse and extract HTTP method. + - Fixed issue where log formats with pipe delimiter were not propely parsed. + - Fixed memory leak after config file path has been set (housekeeping). + - Fixed memory leak when adding host to holder introduced in c052d1ea. + - Fixed possible memory leak when hiding specific referrers. + - Fixed several JS jshint warnings. + - Fixed sudo installs on TravisCI. + - Fixed UNDEFINED time range in HTML report when VISITORS panel was ignored. + - Fixed unnecessary closing span tags from template. + - Fixed use-after-free when two color items were found on color_list. + +Changes to GoAccess 1.2 - Tuesday, March 07, 2017 + + - Added a Dockerfile. + - Added Amazon S3 bucket name as a VirtualHost (server block). + - Added a replacement for GNU getline() to dynamically expand line buffer + while maintaining real-time output. + - Added --daemonize command line option to run GoAccess as daemon. + - Added several improvements to the HTML report on small-screen devices. + - Added option to the HTML report to auto-hide tables on small-screen + devices. + - Added --process-and-exit command line option to parse log and exit. + - Added several feed readers to the list of browsers. + - Added "-" single dash per convention to read from the standard input. + - Added support for MaxMind GeoIP2. + - Added the ability to read and follow from a pipe such as + "tail -f access.log | goaccess -" + - Added the ability to specify multiple logs as input sources, e.g.: + "goaccess access.log access.log.1" while maintaining real-time output. + - Added time unit (seconds) to the processed time label in the HTML/terminal + output. + - Added visitors' percent column to the terminal dashboard. + - Changed D3 charts to dim Y-axis on mouseover. + - Changed D3 charts to reflect HTML column sort. + - Changed D3 charts to render only if within the viewport. This improves the + overall real-time HTML performance. + - Changed HTML report tables to render only if within the viewport. + - Changed percentage calculation to be based on the total within each panel. + - Ensure start/end dates are updated real-time in the HTML output. + - Ensure "window.location.hostname" is used as the default WS server host. + In most cases, this should avoid the need for specifying "--ws-url=host". + Simply using "--real-time-html" should suffice. + - Fixed issue on HTML report to avoid outputting scientific notation for all + byte sizes. + - Fixed integer overflow when calculating bar graph length on terminal + output. + - Fixed issue where global config file would override command line arguments. + - Fixed issue where it wouldn't allow loading from disk without specifying a + file when executed from the cron. + - Fixed issue where parser couldn't read some X-Forwarded-For (XFF) formats. + Note that this breaks compatibility with the original implementation of + parsing XFF, but at the same time it gives much more flexibility on different + formats. + - Fixed issue where specifying fifo-in/out wouldn't allow HTML real-time + output. + - Fixed issue where the wrong number of parsed lines upon erroring out was + displayed. + - Fixed issue where the WebSocket server prevented to establish a connection + with a client due to invalid UTF-8 sequences. + - Fixed percent issue when calculating visitors field. + - Updated the list of crawlers. + +Changes to GoAccess 1.1.1 - Wednesday, November 23, 2016 + + - Added data metric's "unique" count on each panel to the JSON/HTML outputs. + - Changed D3 bar charts to use .rangeBands and avoid extra outer padding. + - Fixed mouseover offset position issue on D3 bar charts. + - Fixed possible heap overflow when an invalid status code was parsed and + processed. This also ensures that only valid HTTP status codes are parsed + >=100 or <= 599. + - Fixed sluggish D3 chart re-rendering by changing how x-axis labels are + displayed in the HTML report. + +Changes to GoAccess 1.1 - Tuesday, November 08, 2016 + + - Added a new layout to the HTML report and additional settings and changes. + - Added --crawlers-only command line option to display crawlers/bots only. + - Added --fifo-in and --fifo-out command line options to set websocket FIFO + reader/writer. + - Added --no-html-last-updated command line option. + - Added --num-tests command line option. + - Added --html-prefs command line option to to set default preferences for + the HTML report. + - Added "Amazon S3" Log Format to the list of predefined options. + - Added "Android 7.1 Nougat" to the list of OSs. + - Added "Android Marshmallow 6.0.1" to the list of OSs. + - Added "Android Nougat 7.0" to the list of OSs. + - Added "Feed Wrangler" to the list of feeds. + - Added "Go-http-client" to the list of browsers. + - Added "MicroMessenger" (WeChat) to the list of browsers. + - Added "SemrushBot" to the list of crawlers. + - Added "Remote User" panel to capture HTTP authentication requests. Use %e + within the log-format variable to enable this panel. + - Added tebibyte unit to the byte to string function converter. + - Added the ability to parse reverse proxy logs that have multiple IPs. This + adds the ability to parse the "X-Forwarded-For" field in a reverse proxy + setup. + - Added the ability to show which token didn't match log/date/time pattern. + This also ensures that in the absence of data, its output is not treated as + error but instead it produces an empty report. + - Added the ability to specify a WebSocket protocol (ws|wss) through + --ws-url. + - Added the request query string to the W3C format. + - Added TLS/SSL support to the HTML real-time report. + - Changed browser classification for Google Cloud Clients. + - Changed how "Darwin" OS was reported to display AppName instead. + - Changed default W3C log format to use the URL path instead of full request. + - Changed HTML default number of items on each table to 7. + - Changed request parser to allow empty query strings. + - Changed default HTML output theme to darkBlue. + - Ensure every version of iOS is broken down under the OS panel. + - Ensure latest JSON data is fast-forwarded when connection is opened. + GoAccess now sends the latest JSON data to the client as soon as the + WebSocket connection is opened. + - Ensure localStorage is supported and enabled in the HTML report + - Ensure unknown coutries/continents are listed. + - Fixed D3 chart width overflow issue on Edge. + - Fixed integer to string key conversion for unique visitors. This fixes the + issue where resulting keys would collide with existing keys and thus not + keeping the right visitors count on certain panels. + - Fixed memory leak when unable to URL decode %q specifier. + - Fixed memory leak when unable to URL decode %U specifier. + - Fixed month name abbreviation on app.js. + - Fixed percentage integer overflow with large numbers on 32bits platforms. + - Fixed percent calculation due to integer division rounding to zero. + - Fixed possible code injection when outputting an HTML report. + - Fixed segfault when using options -H or -M without an argument. + - Removed timestamp from the HTML report title tag. + +Changes to GoAccess 1.0.2 - Tuesday, July 05, 2016 + + - Added minor changes to the HTML report stylesheet. + - Added the ability to specify the WebSocket port within --ws-url. + - Added the proper byte swap functions used by Sun Solaris. + - Added the proper default --http-method/protocol values on the config file. + - Changed bar transition to scale delay dynamically to the length of the + dataset. + - Fixed build issue on platforms lacking of open_memstream() by refactoring + the JSON module to use its own memory buffer. + - Fixed issue where the server wouldn't send cached buffer to slow clients. + - Fixed OS X build check of ncursesw. + - Implemented a throttle mechanism for slow clients to avoid caching too much + data on the server-side. + - Removed flickering on D3 line and bar chart redraw. + +Changes to GoAccess 1.0.1 - Friday, June 17, 2016 + + - Added Android version number along with the codename when using --real-os, + e.g., "Lollipop 5.1". + - Added some missing headers and function checks to configure.ac. + - Fixed a regression where it wouldn't allow abbreviated date and time + formats such as %F or %T. + - Fixed build issues on systems running GLIBC older than 2.9, such as RHEL <= 5. + - Fixed issue where it wouldn't send the whole buffer to a socket causing the + real-time-html WebSocket server to progressively consume a lot more memory. + - Fixed memory leak when using getline and follow mode enabled. + - Fixed some buffer initialization issues on read_line() and + perform_tail_follow(). + - Fixed uint types in sha1 files. + +Changes to GoAccess 1.0 - Thursday, June 09, 2016 + + - Added --enable-panel= command line option to display the given + module. + - Added --json-pretty-print command line option to output pretty json. + - Added --log-format= command-line shortcuts for standard log + formats. + - Added --origin command line option to match the origin WebSocket header. + - Added --output= as a shortcut to --output-format. + - Added a complete real-time functionality to the HTML output. + - Added an option to set the max number of items to show per panel. + - Added D3 Visualziations to the HTML dashboard. + - Added metadata metrics to the each of the panels (JSON output) + - Added option to specify time distribution specificity. + - Added the ability to download a JSON file from the HTML report. + - Added the ability to output multiple formats on a single log parse. + - Added the ability to set the date specificity in hours. + - Added the ability to sort all HTML tables on all panels. + - Added the ability to specify a custom CSS and JS file to the HTML report. + - Added user-agents to the JSON output per each host. + - Added "Vivaldi" to the list of browsers. + - Bootstrapify the HTML dashboard. + - Changed configure.ac to use LDFLAGS instead of CFLAGS where applicable. + - Changed default terminal color scheme to 256 Monokai if terminal supports 256 colors. + - Changed GoAccess license to The MIT License (MIT) + - Changed the visitors panel to display its dates continuously instead of top. + - Default to 256 Monokai color scheme if terminal supports 256 colors. + - Default to display HTTP method/protocol (if applicable). + - Display the children's Max. T.S. as the parent's top Max. T.S. + - Ensure the parent's Avg. T.S. displays parent's Cum. T.S. over parent's Hits. + - Fixed color issue when switching from the color scheme dialog. + - Fixed cross platform build issue when ncurses is built with and without + termlib=tinfo. + - Fixed curses header window issue where it wouldn't clear out on small + window sizes. + - Fixed issue where tail mode wouldn't parse full lines using getline(). + - Fixed minor background color issue when using ncurses 6. + - Fixed possible division by zero when calculating percentage. + - Fixed singly link list node removal. + - Fixed still reachable memory leak on GeoIP cleanup (geoip legacy >= 1.4.7). + - Fixed various Valgrind's still reachable memory leaks. + - Removed -Wredundant-decls. + +Changes to GoAccess 0.9.8 - Monday, February 29, 2016 + + - Added a more complete list of static extensions to the config file. + - Added "Android 6.0 Marshmallow" to the list of OSs. + - Added --no-tab-scroll command line option to disable scroll through panels + on TAB. + - Added the first and last log dates to the overall statistics panel. + - Ensure GoAccess links correctly against libtinfo. + - Ensure static content is case-insensitive verified. + - Fixed bandwidth overflow issue (numbers > 2GB on non-x86_64 arch). + - Fixed broken HTML layout when html-method/protocol is missing in config file. + - Refactored parsing and display of available modules/panels. + +Changes to GoAccess 0.9.7 - Monday, December 21, 2015 + + - Added "Squid native" log format to the config file. + - Fixed integer overflow when getting total bandwidth using the on-disk + storage. + - Fixed issue where a timestamp was stored as date under the visitors panel. + - Fixed issue where config dialog fields were not cleared out on select. + - Fixed issue where "Virtual Hosts" menu item wasn't shown in the HTML sidebar. + +Changes to GoAccess 0.9.6 - Tuesday, October 27, 2015 + + - Added --dcf command line option to view the default config file path. + - Added --ignore-status the ability to ignore parsing status codes. + - Added "Darwin" to the list of OSs. + - Fixed segfault when appending data to a log (follow) without virtualhosts. + +Changes to GoAccess 0.9.5 - Thursday, October 22, 2015 + + - Added major performance improvements to the default storage when parsing and + storing data (~%44 less memory, ~37% faster). + - Added the ability to parse virtual hosts and a new panel to display metrics + per virtual host. + - Added the ability to parse HTTP/2 requests. + - Added the ability to use GNU getline() to parse full line requests. + - Added the ability to output debug info if a log file is specified, even + without --enable-debug. + - Added OS X "El Capitan". + - Added WebDav HTTP methods and HTTP status from RFC 2518 and RFC 3253. + - Fixed detection of some Googlebots. + - Fixed issue where time served metrics were not shown when loading persisted + data. + - Fixed linker error on OSX: ld: library not found for -lrt. + - Fixed percentage on the HTML output when excluding IPs. + - Removed GLib dependency and refactored storage functionality. By removing + this dependency, GoAccess is able to store data in a more efficient manner, + for instance, it avoids storing integer data as void* (generic typing), thus + greatly improving memory consumption for integers. + +Changes to GoAccess 0.9.4 - Tuesday, September 08, 2015 + + - Added --all-static-files command line option to parse static files + containing a query string. + - Added --invalid-requests command line option to log invalid requests to a file. + - Added additional overall metric - total valid requests. + - Added "%~" specifier to move forward through a log string until a non-space + char is found. + - Added the ability to parse native Squid access.log format. + - Fixed a few issues in the configuration script. + - Fixed inability to parse color due to a missing POSIX extension. + "ERR:Invalid bg/fg color pairs" + +Changes to GoAccess 0.9.3 - Wednesday, August 26, 2015 + + - Added --no-column-names command line option to disable column name metrics. + - Added a default color palette (Monokai) to the config file. + - Added AWS Elastic Load Balancing to the list of predefined log/date/time + formats. + - Added CloudFlare status codes. + - Added column headers for every enabled metric on each panel. + - Added cumulative time served metric. + - Added "DragonFly" BSD to the list of OSs. + - Added maximum time served metric (slowest running requests). + - Added "Slackbot" to the list of crawlers/browsers. + - Added the ability to parse the query string specifier "%q" from a log file. + - Added the ability to process logs incrementally. + - Added the ability to set custom colors on the terminal output. + - Disabled REFERRERS by default. + - Ensure bandwidth metric is displayed only if %b specifier is parsed. + - Fixed issue where the --sort-panel option wouldn't sort certain panels. + - Fixed several compiler warnings. + - Set predefined static files when no config file is used. + - Updated "Windows 10" user agent from 6.4 (wrong) to 10.0.(actual) + +Changes to GoAccess 0.9.2 - Monday, July 06, 2015 + + - Added ability to fully parse browsers that contain spaces within a token. + - Added multiple user agents to the list of browsers. + - Added the ability to handle time served in milliseconds as a decimal number + `%L`. + - Added the ability to parse a timestamp in microseconds. + - Added the ability to parse Google Cloud Storage access logs. + - Added the ability to set a custom title and header in the HTML report. + - Added "%x" as timestamp log-format specifier. + - Ensure agents" hash table is destroyed upon exiting the program. + - Ensure "Game Systems" are processed correctly. + - Ensure visitors panel header is updated depending if crawlers are parsed or + not. + - Fixed issue where the date value was set as time value in the config + dialog. + - Fixed memory leak in the hits metrics when using the in-memory storage + (GLib). + +Changes to GoAccess 0.9.1 - Tuesday, May 26, 2015 + + - Added --hl-header command line option to highlight active panel. + - Added "Applebot" to the list of web crawlers. + - Added "Microsoft Edge" to the list of browsers. + - Added additional Nginx-specific status codes. + - Ensure dump_struct is used only if using __GLIBC__. + - Ensure goaccess image has an alt attribute on the HTML output for valid + HTML5. + - Ensure the config file path is displayed when something goes wrong (FATAL). + - Ensure there is a character indicator to see which panel is active. + - Fixed Cygwin compile issue attempting to use -rdynamic. + - Fixed issue where a single IP did not get excluded after an IP range. + - Fixed issue where requests showed up in the wrong view even when + --no-query-string was used. + - Fixed issue where some browsers were not recognized or marked as "unknown". + - Fixed memory leak when excluding an IP range. + - Fixed overflows on sort comparison functions. + - Fixed segfault when using on-disk storage and loading persisted data with -a. + - Removed keyphrases menu item from HTML output. + - Split iOS devices from Mac OS X. + +Changes to GoAccess 0.9 - Thursday, March 19, 2015 + + - Added --geoip-database command line option for GeoIP Country/City IPv6. + - Added "Windows 10 (v6.4)" to the real windows user agents. + - Added ability to double decode an HTTP referer and agent. + - Added ability to sort views through the command line on initial load. + - Added additional data values to the backtrace report. + - Added additional graph to represent the visitors metric on the HTML output. + - Added AM_PROG_CC_C_O to configure.ac + - Added "Android Lollipop" to the list of operating systems. + - Added "average time served" metric to all panels. + - Added "bandwidth" metric to all panels. + - Added command line option to disable summary metrics on the CSV output. + - Added numeric formatting to the HTML output to improve readability. + - Added request method specifier to the default W3C log format. + - Added the ability to ignore parsing and displaying given panel(s). + - Added the ability to ignore referer sites from being counted. A good case + scenario is to ignore own domains. i.e., owndomain.tld. This also allows + ignoring hosts using wildcards. For instance, *.mydomain.tld or www.mydomain.* + or www?.mydomain.tld + - Added time/hour distribution module. e.g., 00-23. + - Added "visitors" metrics to all panels. + - Changed AC_PREREQ macro version so it builds on old versions of autoconf. + - Changed GEOIP database load to GEOIP_MEMORY_CACHE for faster lookups. + - Changed maximum number of choices to display per panel to 366 fron 300. + - Ensure config file is read from home dir if unable to open it from + %sysconfdir% path. + - Fixed array overflows when exceeding MAX_* limits on command line options. + - Fixed a SEGFAULT where sscanf could not handle special chars within the + referer. + - Fixed character encoding on geolocation output (ISO-8859 to UTF8). + - Fixed issue on wild cards containing "?" at the end of the string. + - Fixed issue where a "Nothing valid to process" error was triggered when the + number of invalid hits was equal to the number of valid hits. + - Fixed issue where outputting to a file left a zero-byte file in pwd. + - Improved parsing of operating systems. + - Refactored log parser so it allows with ease the addition of new modules. + This also attempts to decouple the core functionality from the rendering + functions. It also gives the flexibility to add children metrics to root + metrics for any module. e.g., Request A was visited by IP1, IP2, IP3, etc. + - Restyled HTML output. + +Changes to GoAccess 0.8.5 - Sunday, September 14, 2014 + + - Fixed SEGFAULT when parsing a malformed request that doesn't have HTTP + status. + +Changes to GoAccess 0.8.4 - Monday, September 08, 2014 + + - Added --444-as-404 command line option to handle nginx non-standard status + code 444 as 404. + - Added --4xx-to-unique-count command line option to count client errors (4xx) + to the unique visitors count. Now by default it omits client errors (4xx) + from being added to the unique visitors count as they are probably not welcomed + visitors. 4xx errors are always counted in panels other than visitors, OS & + browsers. + - Added and updated operating systems, and browsers. + - Added excluded IP hits count to the general statistics panel on all reports. + - Added HTTP nonstandard code "444" to the status code list. + - Fixed compile error due to missing include for type + off_t (gcc 4.1). + - Fixed issue when excluding IPv4/v6 ranges. + - Removed request status field restriction. This allows parsing logs that + contain only a valid date, IPv4/6 and host. + +Changes to GoAccess 0.8.3 - Monday, July 28, 2014 + + - Fixed SEGFAULT when parsing a CLF log format and using --ignore-crawlers. + - Fixed parsing conflict between some Opera browsers and Chrome. + - Fixed parsing of several feed readers that are Firefox/Safari-based. + - Fixed Steam detection. + - Added Huawei to the browser's list and removed it from the OS's list. + +Changes to GoAccess 0.8.2 - Monday, July 20, 2014 + + - Added --version command line option. + - Added --ignore-crawlers command line option to ignore crawlers. + - Added ability to parse dates containing whitespaces in between, + e.g., "Jul 15 20:13:59" (syslog format). + - Added a variety of browsers, game systems, feed readers, and podcasts. + - Added missing up/down arrows to the help section. + - Added the ability to ignore multiple IPv4/v6 and IP ranges. + - Added the PATCH method according to RFC 5789. + - Fixed GeoLocation percent issue for the JSON, CSV and HTML outputs. + - Fixed memory leak when excluding one or multiple IPs. + +Changes to GoAccess 0.8.1 - Monday, June 16, 2014 + + - Added ability to add/remove static files by extension through the config + file. + - Added ability to print backtrace on segmentation fault. + - Escaped JSON strings correctly according to [RFC4627]. + - Fixed encoding issue when extracting keyphrases for some HTTP referers. + - Fixed issue where HTML bar graphs were not shown due to numeric locale. + - Fixed issue with URIs containing "\r?\n" thus breaking the corresponding + output. + - Make sure request string is URL decoded on all outputs. + +Changes to GoAccess 0.8 - Tuesday, May 20, 2014 + + - Added APT-HTTP to the list of browsers. + - Added data persistence and ability to load data from disk. + - Added IE11 to the list of browsers. + - Added IEMobile to the list of browsers. + - Added multiple command line options. + - Added Nagios check_http to the list of browsers. + - Added parsing progress metrics - total requests / requests per second. + - Added the ability to parse a GeoLiteCity.dat to get the city given an IPv4. + - Changed the way the configuration file is parsed. This will parse all + configuration options under ~/.goaccessrc or the specified config file and + will feed getopt_long with the extracted key/value pairs. This also allows the + ability to have comments on the config file which won't be overwritten. + - Ensure autoconf determines the location of ncurses headers. + - Fixed issue where geo_location_data was NULL. + - Fixed issue where GoAccess did not run without a tty allocated to it. + - Fixed potential memory leak on --log-file realpath(). + - Fixed Solaris build errors. + - Implemented an on-memory hash database using Tokyo Cabinet. This + implementation allows GoAccess not to rely on GLib's hash table if one is + needed. + - Implemented large file support using an on-disk B+ Tree database. This + implementation allows GoAccess not to hold everything in memory but instead + it uses an on-disk B+ Tree database. + - Trimmed leading and trailing whitespaces from keyphrases module. + +Changes to GoAccess 0.7.1 - Monday, February 17, 2014 + + - Added --no-color command line option to turn off color output. + - Added --real-os command line option to get real OS names, e.g., + "Android, Windows, Mac". + - Added ability to log debug messages to a file. + - Added ability to parse tab-separated log format strings. + - Added ability to support terminals without colors. + - Added command line option to append HTTP method to request. + - Added command line option to append HTTP protocol to request. + - Added long options to command-line. + - Added missing "Win 9x 4.90" (Windows Me) user-agent. + - Added missing Windows RT user-agent. + - Ensure mouse click does not reset expanded module if it is the same. + - Fixed Amazon CloudFront tab-separated log format. + - Fixed "FreeBSD style" ncursesw built into system. + - Fixed HTML report issue where data cell would not wrap. + - Fixed issue when isatty() could not find a valid file descriptor. + - Fixed SymbianOS user-agent and retrieve its version. + +Changes to GoAccess 0.7 - Monday, December 15, 2013 + + - Added a command line option to ignore request query strings. + - Added additional compiler flags & fixed several warnings. + - Added additional static file extensions. + - Added country per IP to HOSTS module (HTML & JSON). + - Added DEBUG mode to Makefile & -O2 to default release. + - Added GEOLOCATION report to all outputs - includes continents/countries. + - Added IP resolver to HTML and JSON output. + - Added module numbers to each module header. + - Added the ability to output JSON and CSV. + - Added Windows NT 6.3 (Win 8.1) to the list. + - Fixed buffer overflow issue with realpath. + - New HTML report - HTML5 + CSS styles. + - Properly split request line into the three request modules. + +Changes to GoAccess 0.6.1 - Monday, October 07, 2013 + + - Added active module indication by name. + - Added additional crawlers to the list. + - Added custom configuration file option. + - Added human-readable string when unable to open log. + - Added missing include when compiling on OSX 10.6. + - Added optional mouse support to the main dashboard. + - Added the ability to select active module by number (keys). + - Added the rest of HTTP methods according to RFC2616. + - Changed referring site sscanf format to process multiple URLs. + - Changed the default color scheme to monochrome. + - Fixed issue where %T was not processing floating-point numbers. + - Fixed percentage issue for browsers and os modules. + - Fixed SIGSEGV when reading from stdin to stdout. + - Improved performance when expanding a module. + - Reduced memory consumption by decreasing number of dns threads. + - Removed ^UP/^DOWN due to a key mapping conflict. + +Changes to GoAccess 0.6 - Monday, July 15, 2013 + + - Added a bunch of minor fixes and changes. + - Added and updated list of browsers and operating systems. + - Added a predefined log format/date for the Amazon CloudFront (Download + Distribution). + - Added parsing/processing indicators. + - Added the ability to independently sort each module. + - Added the ability to search across the whole dashboard with the option to + use regular expressions. + - Config window now accepts [ENTER] to continue or F10. + - Fixed issue where Opera +15 was identified as Chrome. + - Implemented the ability to parse the time taken to serve the request, in + microseconds and seconds. + - Improved memory usage and better performance in general. + - Moved away from the original pop-up UI to a new expandable dashboard + allowing data to be processed in real-time. + - Sanitized HTML output with html entities for special chars. + - Updated the hosts module so it shows the reverse DNS as a sub node. + +Changes to GoAccess 0.5 - Monday, June 04, 2012 + + - Added ability to output a full stats report to a file. + - Added a key shortcut to scroll top/bottom. + - Added a new include sys/socket.h - BSD + - Added support for IPv6 + - Added the ability to parse a custom format string. + - Fixed google cache key-phrases. + - Fixed issue on empty Google query strings. + - Fixed issue on Opera agents where version was not recognized correctly. + - Fixed other minor fixes and changes. + +Changes to GoAccess 0.4.2 - Monday, January 03, 2011 + + - Added UTF-8 support. Now it should handle properly wide-character/UTF-8. + Run ./configure --enable-utf8 + - Fixed a minor bug when adding monthly totals on visitors subwin. + - Removed -lrt since GoAccess does not link to librt. (OS X doesn't include + librt) + +Changes to GoAccess 0.4.1 - Monday, December 13, 2010 + + - Added more flexibility when resizing the terminal. Should work fine with + the standard 80x24. + - Added the ability to pass a flag to ./configure so GeoIP can be enabled if + needed. + - Implemented a pipeline from stdin, so the input doesn't have to be only a + file. + +Changes to GoAccess 0.4 - Tuesday, November 30, 2010 + + - Added graphs to the unique_visitors subwin. + - Implemented bandwidth per day, and host. + - Implemented list of agents for specific hosts. + - Rewrote hash tables iterative code to avoid the use of GHashTableIter, this + way it works with all GLib > 2.0.0. + - Various bug fixes and code cleanups (mainly in the subwin modules). + +Changes to GoAccess 0.3.3 - Monday, September 27, 2010 + + - Changed tarball's filename. + - Fixed a request size parsing issue. Due to malformed syntax on the HTTP + protocol, bandwidth was reset to 0. Ex. "HEAD /" 400 20392 + - Fixed a segfault when goaccess was executed without any options but with an + additional unknown argument. + +Changes to GoAccess 0.3.2 - Thursday, September 09, 2010 + + - Fixed an agent parsing issue. As a result, operating systems were not + properly counted. + +Changes to GoAccess 0.3.1 - Friday, September 03, 2010 + + - Added a color scheme implementation + +Changes to GoAccess 0.3 - Sunday, August 29, 2010 + + - Added a counter for total requests since initial parse was implemented + - Added a more detailed and comprehensive browser and os report + - Added bandwidth details for requested files + - Added percentage details on modules 2, 3, 4, 5, 10, 11 + - Code cleanups + - Fixed a potential segmentation fault when resizing main window + - Fixed a segmentation fault on pop-up window search if haystack was null + - Fixed invalid entries when parsing status codes + - Implemented a real support for LFS - Handles files larger than 2 GiB on + 32-bit systems + - Implemented support for "vhost_combined" log format + - Changed position of data/graphs depending on # of hits + +Changes to GoAccess 0.2 - Sunday, July 25, 2010 + + - Added a keyphrases report coming from Google search engine. This includes, + raw, cache, and translation queries. + - Fixed a memory leak when invalid entries were parsed + - Fixed a potential buffer overflow. + - Implemented real-time statistics (RTS). Data will be appended as the log + file grows. Equivalent to "tail -f" on Unix systems + - Implemented screen resize functionality + - Simpliflied creation of the "unique visitors" hash-key. + - Simpliflied the "process_unique_data" function + - Various small speed increases & code cleanup + +Changes to GoAccess 0.1.2 - Monday, July 12, 2010 + + - Fixed a segmentation fault when parsing logs with unusual request type. Ex. + "GET HTTP/1.1 HTTP/1.1" + +Changes to GoAccess 0.1.1 - Saturday, July 10, 2010 + + - Added an enhanced error handling + - Added an extra macro on configure.ac to check against GHashTableIter. + ./configure might not check for glib 2.16 that introduced "GHashTableIter". + - Added Glibc LFS + - Cleaned up code a little bit + - Fixed a segmentation fault when displaying the help text on x86_64. + - Fixed assignments in conditions. In case the assignment is actually intended + put extra parenthesis around it. This will shut GCC (and others) up. + - Fixed casts associated with "g_hash_table_iter_next". + - Fixed comparison between signed and unsigned integer types. + - Fixed function declarations. + - Fixed includes. + - Fixed two format strings. (If the error was ever triggered, it'd most + likely lead to a segfault) + +Changes to GoAccess 0.1 - Tuesday, July 06, 2010 + + - Initial release 0.1 diff --git a/src/goaccess++/INSTALL b/src/goaccess++/INSTALL new file mode 100644 index 0000000..a1e89e1 --- /dev/null +++ b/src/goaccess++/INSTALL @@ -0,0 +1,370 @@ +Installation Instructions +************************* + +Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, +Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/src/goaccess++/Makefile b/src/goaccess++/Makefile new file mode 100644 index 0000000..a9a7d09 --- /dev/null +++ b/src/goaccess++/Makefile @@ -0,0 +1,1268 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + + + +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/goaccess +pkgincludedir = $(includedir)/goaccess +pkglibdir = $(libdir)/goaccess +pkglibexecdir = $(libexecdir)/goaccess +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = x86_64-unknown-linux-gnu +host_triplet = x86_64-unknown-linux-gnu +bin_PROGRAMS = goaccess$(EXEEXT) +noinst_PROGRAMS = bin2c$(EXEEXT) +#am__append_1 = \ +# src/tcabdb.c \ +# src/tcabdb.h \ +# src/tcbtdb.c \ +# src/tcbtdb.h + +am__append_2 = \ + src/khash.h \ + src/gkhash.c \ + src/gkhash.h + +am__append_3 = \ + src/geoip1.c \ + src/geoip1.h + +#am__append_4 = \ +# src/geoip2.c \ +# src/geoip1.h + +subdir = . +DIST_COMMON = README $(am__configure_deps) $(dist_conf_DATA) \ + $(dist_man_MANS) $(dist_noinst_DATA) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/configure \ + $(top_srcdir)/src/config.h.in ABOUT-NLS AUTHORS COPYING \ + ChangeLog INSTALL NEWS TODO compile config.guess config.rpath \ + config.sub depcomp install-sh missing +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \ + "$(DESTDIR)$(confdir)" +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +am__dirstamp = $(am__leading_dot)dirstamp +am_bin2c_OBJECTS = src/bin2c.$(OBJEXT) +bin2c_OBJECTS = $(am_bin2c_OBJECTS) +bin2c_LDADD = $(LDADD) +am__goaccess_SOURCES_DIST = src/base64.c src/base64.h src/browsers.c \ + src/browsers.h src/color.c src/color.h src/commons.c \ + src/commons.h src/csv.c src/csv.h src/error.c src/error.h \ + src/gdashboard.c src/gdashboard.h src/gdns.c src/gdns.h \ + src/gholder.c src/gholder.h src/gmenu.c src/gmenu.h \ + src/goaccess.c src/goaccess.h src/gslist.c src/gslist.h \ + src/gstorage.c src/gstorage.h src/gwsocket.c src/gwsocket.h \ + src/json.c src/json.h src/labels.h src/opesys.c src/opesys.h \ + src/options.c src/options.h src/output.c src/output.h \ + src/parser.c src/parser.h src/settings.c src/settings.h \ + src/sha1.c src/sha1.h src/sort.c src/sort.h src/ui.c src/ui.h \ + src/util.c src/util.h src/websocket.c src/websocket.h \ + src/xmalloc.c src/xmalloc.h src/tcabdb.c src/tcabdb.h \ + src/tcbtdb.c src/tcbtdb.h src/khash.h src/gkhash.c \ + src/gkhash.h src/geoip1.c src/geoip1.h src/geoip2.c +#am__objects_1 = src/tcabdb.$(OBJEXT) src/tcbtdb.$(OBJEXT) +am__objects_2 = src/gkhash.$(OBJEXT) +am__objects_3 = src/geoip1.$(OBJEXT) +#am__objects_4 = src/geoip2.$(OBJEXT) +am_goaccess_OBJECTS = src/base64.$(OBJEXT) src/browsers.$(OBJEXT) \ + src/color.$(OBJEXT) src/commons.$(OBJEXT) src/csv.$(OBJEXT) \ + src/error.$(OBJEXT) src/gdashboard.$(OBJEXT) \ + src/gdns.$(OBJEXT) src/gholder.$(OBJEXT) src/gmenu.$(OBJEXT) \ + src/goaccess.$(OBJEXT) src/gslist.$(OBJEXT) \ + src/gstorage.$(OBJEXT) src/gwsocket.$(OBJEXT) \ + src/json.$(OBJEXT) src/opesys.$(OBJEXT) src/options.$(OBJEXT) \ + src/output.$(OBJEXT) src/parser.$(OBJEXT) \ + src/settings.$(OBJEXT) src/sha1.$(OBJEXT) src/sort.$(OBJEXT) \ + src/ui.$(OBJEXT) src/util.$(OBJEXT) src/websocket.$(OBJEXT) \ + src/xmalloc.$(OBJEXT) $(am__objects_1) $(am__objects_2) \ + $(am__objects_3) $(am__objects_4) +goaccess_OBJECTS = $(am_goaccess_OBJECTS) +goaccess_LDADD = $(LDADD) +DEFAULT_INCLUDES = -I. -I$(top_builddir)/src +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(bin2c_SOURCES) $(goaccess_SOURCES) +DIST_SOURCES = $(bin2c_SOURCES) $(am__goaccess_SOURCES_DIST) +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +man1dir = $(mandir)/man1 +NROFF = nroff +MANS = $(dist_man_MANS) +DATA = $(dist_conf_DATA) $(dist_noinst_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir dist dist-all distcheck +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = ${SHELL} /home/djq/goaccess-1.3/missing --run aclocal-1.11 +AMTAR = $${TAR-tar} +AUTOCONF = ${SHELL} /home/djq/goaccess-1.3/missing --run autoconf +AUTOHEADER = ${SHELL} /home/djq/goaccess-1.3/missing --run autoheader +AUTOMAKE = ${SHELL} /home/djq/goaccess-1.3/missing --run automake-1.11 +AWK = mawk +CC = gcc +CCDEPMODE = depmode=gcc3 +CFLAGS = -pthread +CPP = gcc -E +CPPFLAGS = +CYGPATH_W = echo +DEFS = -DLOCALEDIR=\"$(localedir)\" -DHAVE_CONFIG_H +DEPDIR = .deps +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = /usr/bin/grep -E +EXEEXT = +GETTEXT_MACRO_VERSION = 0.18 +GMSGFMT = : +GMSGFMT_015 = : +GREP = /usr/bin/grep +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +INTLLIBS = +INTL_MACOSX_LIBS = +LDFLAGS = +LIBICONV = -liconv +LIBINTL = +LIBOBJS = +LIBS = -lnsl -lncursesw -lGeoIP -lpthread +LTLIBICONV = -liconv +LTLIBINTL = +LTLIBOBJS = +MAKEINFO = ${SHELL} /home/djq/goaccess-1.3/missing --run makeinfo +MKDIR_P = /usr/bin/mkdir -p +MSGFMT = : +MSGFMT_015 = : +MSGMERGE = : +OBJEXT = o +PACKAGE = goaccess +PACKAGE_BUGREPORT = goaccess@prosoftcorp.com +PACKAGE_NAME = goaccess +PACKAGE_STRING = goaccess 1.3 +PACKAGE_TARNAME = goaccess +PACKAGE_URL = http://goaccess.io +PACKAGE_VERSION = 1.3 +PATH_SEPARATOR = : +POSUB = po +POW_LIB = +SED_CHECK = yes +SET_MAKE = +SHELL = /bin/bash +STRIP = +TR_CHECK = yes +USE_NLS = yes +VERSION = 1.3 +XGETTEXT = : +XGETTEXT_015 = : +XGETTEXT_EXTRA_OPTIONS = +abs_builddir = /home/djq/goaccess-1.3 +abs_srcdir = /home/djq/goaccess-1.3 +abs_top_builddir = /home/djq/goaccess-1.3 +abs_top_srcdir = /home/djq/goaccess-1.3 +ac_ct_CC = gcc +am__include = include +am__leading_dot = . +am__quote = +am__tar = $${TAR-tar} chof - "$$tardir" +am__untar = $${TAR-tar} xf - +bindir = ${exec_prefix}/bin +build = x86_64-unknown-linux-gnu +build_alias = +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = unknown +builddir = . +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = x86_64-unknown-linux-gnu +host_alias = +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = unknown +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /home/djq/goaccess-1.3/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = /usr/bin/mkdir -p +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target_alias = +top_build_prefix = +top_builddir = . +top_srcdir = . +AUTOMAKE_OPTIONS = subdir-objects +dist_noinst_DATA = \ + resources/tpls.html \ + resources/css/app.css \ + resources/css/bootstrap.min.css \ + resources/css/fa.min.css \ + resources/js/app.js \ + resources/js/charts.js \ + resources/js/d3.v3.min.js \ + resources/js/hogan.min.js + +bin2c_SOURCES = src/bin2c.c +BUILT_SOURCES = \ + tpls.h \ + bootstrapcss.h \ + facss.h \ + appcss.h \ + d3js.h \ + hoganjs.h \ + chartsjs.h \ + appjs.h + +CLEANFILES = \ + src/tpls.h \ + src/bootstrapcss.h \ + src/facss.h \ + src/appcss.h \ + src/d3js.h \ + src/hoganjs.h \ + src/chartsjs.h \ + src/appjs.h \ + resources/tpls.html.tmp \ + resources/css/bootstrap.min.css.tmp \ + resources/css/fa.min.css.tmp \ + resources/css/app.css.tmp \ + resources/js/d3.v3.min.js.tmp \ + resources/js/hogan.min.js.tmp \ + resources/js/charts.js.tmp \ + resources/js/app.js.tmp + +confdir = $(sysconfdir)/goaccess +dist_conf_DATA = config/goaccess.conf config/browsers.list +goaccess_SOURCES = src/base64.c src/base64.h src/browsers.c \ + src/browsers.h src/color.c src/color.h src/commons.c \ + src/commons.h src/csv.c src/csv.h src/error.c src/error.h \ + src/gdashboard.c src/gdashboard.h src/gdns.c src/gdns.h \ + src/gholder.c src/gholder.h src/gmenu.c src/gmenu.h \ + src/goaccess.c src/goaccess.h src/gslist.c src/gslist.h \ + src/gstorage.c src/gstorage.h src/gwsocket.c src/gwsocket.h \ + src/json.c src/json.h src/labels.h src/opesys.c src/opesys.h \ + src/options.c src/options.h src/output.c src/output.h \ + src/parser.c src/parser.h src/settings.c src/settings.h \ + src/sha1.c src/sha1.h src/sort.c src/sort.h src/ui.c src/ui.h \ + src/util.c src/util.h src/websocket.c src/websocket.h \ + src/xmalloc.c src/xmalloc.h $(am__append_1) $(am__append_2) \ + $(am__append_3) $(am__append_4) +AM_CFLAGS = -O2 -DSYSCONFDIR=\"$(sysconfdir)\" \ + -Wno-long-long -Wall -W -Wnested-externs \ + -Wformat=2 -Wmissing-prototypes \ + -Wstrict-prototypes -Wmissing-declarations \ + -Wwrite-strings -Wshadow -Wpointer-arith \ + -Wsign-compare -Wbad-function-cast -Winline \ + -Wcast-align -Wextra \ + -Wdeclaration-after-statement \ + -Wno-missing-field-initializers +#AM_CFLAGS = -DDEBUG -O0 -g -DSYSCONFDIR=\"$(sysconfdir)\" \ +# -Wno-long-long -Wall -W -Wnested-externs \ +# -Wformat=2 -Wmissing-prototypes \ +# -Wstrict-prototypes -Wmissing-declarations \ +# -Wwrite-strings -Wshadow -Wpointer-arith \ +# -Wsign-compare -Wbad-function-cast -Winline \ +# -Wcast-align -Wextra -Wdeclaration-after-statement \ +# -Wno-missing-field-initializers +AM_LDFLAGS = -rdynamic +dist_man_MANS = goaccess.1 +SUBDIRS = po +ACLOCAL_AMFLAGS = -I m4 +EXTRA_DIST = config.rpath +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .c .o .obj +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +src/config.h: src/stamp-h1 + @if test ! -f $@; then rm -f src/stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) src/stamp-h1; else :; fi + +src/stamp-h1: $(top_srcdir)/src/config.h.in $(top_builddir)/config.status + @rm -f src/stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status src/config.h +$(top_srcdir)/src/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f src/stamp-h1 + touch $@ + +distclean-hdr: + -rm -f src/config.h src/stamp-h1 +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) +src/$(am__dirstamp): + @$(MKDIR_P) src + @: > src/$(am__dirstamp) +src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/$(DEPDIR) + @: > src/$(DEPDIR)/$(am__dirstamp) +src/bin2c.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +bin2c$(EXEEXT): $(bin2c_OBJECTS) $(bin2c_DEPENDENCIES) $(EXTRA_bin2c_DEPENDENCIES) + @rm -f bin2c$(EXEEXT) + $(LINK) $(bin2c_OBJECTS) $(bin2c_LDADD) $(LIBS) +src/base64.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/browsers.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/color.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/commons.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/csv.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/error.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/gdashboard.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gdns.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/gholder.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gmenu.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/goaccess.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gslist.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gstorage.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gwsocket.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/json.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/opesys.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/options.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/output.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/parser.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/settings.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/sha1.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/sort.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/ui.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/util.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/websocket.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/xmalloc.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/tcabdb.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/tcbtdb.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gkhash.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/geoip1.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/geoip2.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +goaccess$(EXEEXT): $(goaccess_OBJECTS) $(goaccess_DEPENDENCIES) $(EXTRA_goaccess_DEPENDENCIES) + @rm -f goaccess$(EXEEXT) + $(LINK) $(goaccess_OBJECTS) $(goaccess_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f src/base64.$(OBJEXT) + -rm -f src/bin2c.$(OBJEXT) + -rm -f src/browsers.$(OBJEXT) + -rm -f src/color.$(OBJEXT) + -rm -f src/commons.$(OBJEXT) + -rm -f src/csv.$(OBJEXT) + -rm -f src/error.$(OBJEXT) + -rm -f src/gdashboard.$(OBJEXT) + -rm -f src/gdns.$(OBJEXT) + -rm -f src/geoip1.$(OBJEXT) + -rm -f src/geoip2.$(OBJEXT) + -rm -f src/gholder.$(OBJEXT) + -rm -f src/gkhash.$(OBJEXT) + -rm -f src/gmenu.$(OBJEXT) + -rm -f src/goaccess.$(OBJEXT) + -rm -f src/gslist.$(OBJEXT) + -rm -f src/gstorage.$(OBJEXT) + -rm -f src/gwsocket.$(OBJEXT) + -rm -f src/json.$(OBJEXT) + -rm -f src/opesys.$(OBJEXT) + -rm -f src/options.$(OBJEXT) + -rm -f src/output.$(OBJEXT) + -rm -f src/parser.$(OBJEXT) + -rm -f src/settings.$(OBJEXT) + -rm -f src/sha1.$(OBJEXT) + -rm -f src/sort.$(OBJEXT) + -rm -f src/tcabdb.$(OBJEXT) + -rm -f src/tcbtdb.$(OBJEXT) + -rm -f src/ui.$(OBJEXT) + -rm -f src/util.$(OBJEXT) + -rm -f src/websocket.$(OBJEXT) + -rm -f src/xmalloc.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +include src/$(DEPDIR)/base64.Po +include src/$(DEPDIR)/bin2c.Po +include src/$(DEPDIR)/browsers.Po +include src/$(DEPDIR)/color.Po +include src/$(DEPDIR)/commons.Po +include src/$(DEPDIR)/csv.Po +include src/$(DEPDIR)/error.Po +include src/$(DEPDIR)/gdashboard.Po +include src/$(DEPDIR)/gdns.Po +include src/$(DEPDIR)/geoip1.Po +include src/$(DEPDIR)/geoip2.Po +include src/$(DEPDIR)/gholder.Po +include src/$(DEPDIR)/gkhash.Po +include src/$(DEPDIR)/gmenu.Po +include src/$(DEPDIR)/goaccess.Po +include src/$(DEPDIR)/gslist.Po +include src/$(DEPDIR)/gstorage.Po +include src/$(DEPDIR)/gwsocket.Po +include src/$(DEPDIR)/json.Po +include src/$(DEPDIR)/opesys.Po +include src/$(DEPDIR)/options.Po +include src/$(DEPDIR)/output.Po +include src/$(DEPDIR)/parser.Po +include src/$(DEPDIR)/settings.Po +include src/$(DEPDIR)/sha1.Po +include src/$(DEPDIR)/sort.Po +include src/$(DEPDIR)/tcabdb.Po +include src/$(DEPDIR)/tcbtdb.Po +include src/$(DEPDIR)/ui.Po +include src/$(DEPDIR)/util.Po +include src/$(DEPDIR)/websocket.Po +include src/$(DEPDIR)/xmalloc.Po + +.c.o: + depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(COMPILE) -c -o $@ $< + +.c.obj: + depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +install-man1: $(dist_man_MANS) + @$(NORMAL_INSTALL) + @list1=''; \ + list2='$(dist_man_MANS)'; \ + test -n "$(man1dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.1[a-z]*$$/p'; \ + fi; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ + done; } + +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) +install-dist_confDATA: $(dist_conf_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_conf_DATA)'; test -n "$(confdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(confdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(confdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(confdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(confdir)" || exit $$?; \ + done + +uninstall-dist_confDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_conf_DATA)'; test -n "$(confdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(confdir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @list='$(MANS)'; if test -n "$$list"; then \ + list=`for p in $$list; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ + if test -n "$$list" && \ + grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ + echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ + grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ + echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ + echo " typically \`make maintainer-clean' will remove them" >&2; \ + exit 1; \ + else :; fi; \ + else :; fi + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod u+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-recursive +all-am: Makefile $(PROGRAMS) $(MANS) $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(confdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f src/$(DEPDIR)/$(am__dirstamp) + -rm -f src/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-recursive + +clean-am: clean-binPROGRAMS clean-generic clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf src/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-dist_confDATA install-man + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: install-man1 + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf src/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-dist_confDATA \ + uninstall-man + +uninstall-man: uninstall-man1 + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ + ctags-recursive install install-am install-strip \ + tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-binPROGRAMS \ + clean-generic clean-noinstPROGRAMS ctags ctags-recursive dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-lzma dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-compile distclean-generic distclean-hdr \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-binPROGRAMS install-data install-data-am \ + install-dist_confDATA install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-man1 install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-dist_confDATA uninstall-man \ + uninstall-man1 + + +# Tpls +tpls.h: bin2c$(EXEEXT) resources/tpls.html + cat resources/tpls.html | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/tpls.html.tmp + ./bin2c resources/tpls.html.tmp src/tpls.h tpls +# ./bin2c resources/tpls.html src/tpls.h tpls +# Bootstrap +bootstrapcss.h: bin2c$(EXEEXT) resources/css/bootstrap.min.css + cat resources/css/bootstrap.min.css | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/css/bootstrap.min.css.tmp + ./bin2c resources/css/bootstrap.min.css.tmp src/bootstrapcss.h bootstrap_css +# ./bin2c resources/css/bootstrap.min.css src/bootstrapcss.h bootstrap_css +# Font Awesome +facss.h: bin2c$(EXEEXT) resources/css/fa.min.css + cat resources/css/fa.min.css | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/css/fa.min.css.tmp + ./bin2c resources/css/fa.min.css.tmp src/facss.h fa_css +# ./bin2c resources/css/fa.min.css src/facss.h fa_css +# App.css +appcss.h: bin2c$(EXEEXT) resources/css/app.css + cat resources/css/app.css | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/css/app.css.tmp + ./bin2c resources/css/app.css.tmp src/appcss.h app_css +# ./bin2c resources/css/app.css src/appcss.h app_css +# D3.js +d3js.h: bin2c$(EXEEXT) resources/js/d3.v3.min.js + cat resources/js/d3.v3.min.js | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/d3.v3.min.js.tmp + ./bin2c resources/js/d3.v3.min.js.tmp src/d3js.h d3_js +# ./bin2c resources/js/d3.v3.min.js src/d3js.h d3_js +# Hogan.js +hoganjs.h: bin2c$(EXEEXT) resources/js/hogan.min.js + cat resources/js/hogan.min.js | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/hogan.min.js.tmp + ./bin2c resources/js/hogan.min.js.tmp src/hoganjs.h hogan_js +# ./bin2c resources/js/hogan.min.js src/hoganjs.h hogan_js +# Charts.js +chartsjs.h: bin2c$(EXEEXT) resources/js/charts.js + cat resources/js/charts.js | sed -E "s@(,|;)[[:space:]]*//..*@\1@g" | sed -E "s@^[[:space:]]*//..*@@g" | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/charts.js.tmp + ./bin2c resources/js/charts.js.tmp src/chartsjs.h charts_js +# ./bin2c resources/js/charts.js src/chartsjs.h charts_js +# App.js +appjs.h: bin2c$(EXEEXT) resources/js/app.js + cat resources/js/app.js | sed -E "s@(,|;)[[:space:]]*//..*@\1@g" | sed -E "s@^[[:space:]]*//..*@@g" | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/app.js.tmp + ./bin2c resources/js/app.js.tmp src/appjs.h app_js +# ./bin2c resources/js/app.js src/appjs.h app_js + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/goaccess++/Makefile.am b/src/goaccess++/Makefile.am new file mode 100644 index 0000000..ec26f9b --- /dev/null +++ b/src/goaccess++/Makefile.am @@ -0,0 +1,219 @@ +#AUTOMAKE_OPTIONS = foreign +bin_PROGRAMS = goaccess +AUTOMAKE_OPTIONS = subdir-objects + +dist_noinst_DATA = \ + resources/tpls.html \ + resources/css/app.css \ + resources/css/bootstrap.min.css \ + resources/css/fa.min.css \ + resources/js/app.js \ + resources/js/charts.js \ + resources/js/d3.v3.min.js \ + resources/js/hogan.min.js + +noinst_PROGRAMS = bin2c +bin2c_SOURCES = src/bin2c.c + +BUILT_SOURCES = \ + tpls.h \ + bootstrapcss.h \ + facss.h \ + appcss.h \ + d3js.h \ + hoganjs.h \ + chartsjs.h \ + appjs.h + +CLEANFILES = \ + src/tpls.h \ + src/bootstrapcss.h \ + src/facss.h \ + src/appcss.h \ + src/d3js.h \ + src/hoganjs.h \ + src/chartsjs.h \ + src/appjs.h \ + resources/tpls.html.tmp \ + resources/css/bootstrap.min.css.tmp \ + resources/css/fa.min.css.tmp \ + resources/css/app.css.tmp \ + resources/js/d3.v3.min.js.tmp \ + resources/js/hogan.min.js.tmp \ + resources/js/charts.js.tmp \ + resources/js/app.js.tmp + +# Tpls +tpls.h: bin2c$(EXEEXT) resources/tpls.html +if HAS_SEDTR + cat resources/tpls.html | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/tpls.html.tmp + ./bin2c resources/tpls.html.tmp src/tpls.h tpls +else + ./bin2c resources/tpls.html src/tpls.h tpls +endif +# Bootstrap +bootstrapcss.h: bin2c$(EXEEXT) resources/css/bootstrap.min.css +if HAS_SEDTR + cat resources/css/bootstrap.min.css | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/css/bootstrap.min.css.tmp + ./bin2c resources/css/bootstrap.min.css.tmp src/bootstrapcss.h bootstrap_css +else + ./bin2c resources/css/bootstrap.min.css src/bootstrapcss.h bootstrap_css +endif +# Font Awesome +facss.h: bin2c$(EXEEXT) resources/css/fa.min.css +if HAS_SEDTR + cat resources/css/fa.min.css | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/css/fa.min.css.tmp + ./bin2c resources/css/fa.min.css.tmp src/facss.h fa_css +else + ./bin2c resources/css/fa.min.css src/facss.h fa_css +endif +# App.css +appcss.h: bin2c$(EXEEXT) resources/css/app.css +if HAS_SEDTR + cat resources/css/app.css | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/css/app.css.tmp + ./bin2c resources/css/app.css.tmp src/appcss.h app_css +else + ./bin2c resources/css/app.css src/appcss.h app_css +endif +# D3.js +d3js.h: bin2c$(EXEEXT) resources/js/d3.v3.min.js +if HAS_SEDTR + cat resources/js/d3.v3.min.js | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/d3.v3.min.js.tmp + ./bin2c resources/js/d3.v3.min.js.tmp src/d3js.h d3_js +else + ./bin2c resources/js/d3.v3.min.js src/d3js.h d3_js +endif +# Hogan.js +hoganjs.h: bin2c$(EXEEXT) resources/js/hogan.min.js +if HAS_SEDTR + cat resources/js/hogan.min.js | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/hogan.min.js.tmp + ./bin2c resources/js/hogan.min.js.tmp src/hoganjs.h hogan_js +else + ./bin2c resources/js/hogan.min.js src/hoganjs.h hogan_js +endif +# Charts.js +chartsjs.h: bin2c$(EXEEXT) resources/js/charts.js +if HAS_SEDTR + cat resources/js/charts.js | sed -E "s@(,|;)[[:space:]]*//..*@\1@g" | sed -E "s@^[[:space:]]*//..*@@g" | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/charts.js.tmp + ./bin2c resources/js/charts.js.tmp src/chartsjs.h charts_js +else + ./bin2c resources/js/charts.js src/chartsjs.h charts_js +endif +# App.js +appjs.h: bin2c$(EXEEXT) resources/js/app.js +if HAS_SEDTR + cat resources/js/app.js | sed -E "s@(,|;)[[:space:]]*//..*@\1@g" | sed -E "s@^[[:space:]]*//..*@@g" | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/app.js.tmp + ./bin2c resources/js/app.js.tmp src/appjs.h app_js +else + ./bin2c resources/js/app.js src/appjs.h app_js +endif + +confdir = $(sysconfdir)/goaccess +dist_conf_DATA = config/goaccess.conf +dist_conf_DATA += config/browsers.list + +goaccess_SOURCES = \ + src/base64.c \ + src/base64.h \ + src/browsers.c \ + src/browsers.h \ + src/color.c \ + src/color.h \ + src/commons.c \ + src/commons.h \ + src/csv.c \ + src/csv.h \ + src/error.c \ + src/error.h \ + src/gdashboard.c \ + src/gdashboard.h \ + src/gdns.c \ + src/gdns.h \ + src/gholder.c \ + src/gholder.h \ + src/gmenu.c \ + src/gmenu.h \ + src/goaccess.c \ + src/goaccess.h \ + src/gslist.c \ + src/gslist.h \ + src/gstorage.c \ + src/gstorage.h \ + src/gwsocket.c \ + src/gwsocket.h \ + src/json.c \ + src/json.h \ + src/labels.h \ + src/opesys.c \ + src/opesys.h \ + src/options.c \ + src/options.h \ + src/output.c \ + src/output.h \ + src/parser.c \ + src/parser.h \ + src/settings.c \ + src/settings.h \ + src/sha1.c \ + src/sha1.h \ + src/sort.c \ + src/sort.h \ + src/ui.c \ + src/ui.h \ + src/util.c \ + src/util.h \ + src/websocket.c \ + src/websocket.h \ + src/xmalloc.c \ + src/xmalloc.h + +if TCB +goaccess_SOURCES += \ + src/tcabdb.c \ + src/tcabdb.h \ + src/tcbtdb.c \ + src/tcbtdb.h +else +goaccess_SOURCES += \ + src/khash.h \ + src/gkhash.c \ + src/gkhash.h +endif + +if GEOIP_LEGACY +goaccess_SOURCES += \ + src/geoip1.c \ + src/geoip1.h +endif + +if GEOIP_MMDB +goaccess_SOURCES += \ + src/geoip2.c \ + src/geoip1.h +endif + +if DEBUG +AM_CFLAGS = -DDEBUG -O0 -g -DSYSCONFDIR=\"$(sysconfdir)\" +else +AM_CFLAGS = -O2 -DSYSCONFDIR=\"$(sysconfdir)\" +endif + +if WITH_RDYNAMIC +AM_LDFLAGS = -rdynamic +endif + +AM_CFLAGS += -Wno-long-long -Wall -W -Wnested-externs -Wformat=2 +AM_CFLAGS += -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations +AM_CFLAGS += -Wwrite-strings -Wshadow -Wpointer-arith -Wsign-compare +AM_CFLAGS += -Wbad-function-cast -Winline -Wcast-align -Wextra +AM_CFLAGS += -Wdeclaration-after-statement -Wno-missing-field-initializers + +dist_man_MANS = goaccess.1 + +SUBDIRS = po + +ACLOCAL_AMFLAGS = -I m4 + +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + +EXTRA_DIST = config.rpath diff --git a/src/goaccess++/Makefile.in b/src/goaccess++/Makefile.in new file mode 100644 index 0000000..6ac1f92 --- /dev/null +++ b/src/goaccess++/Makefile.in @@ -0,0 +1,1268 @@ +# Makefile.in generated by automake 1.11.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = goaccess$(EXEEXT) +noinst_PROGRAMS = bin2c$(EXEEXT) +@TCB_TRUE@am__append_1 = \ +@TCB_TRUE@ src/tcabdb.c \ +@TCB_TRUE@ src/tcabdb.h \ +@TCB_TRUE@ src/tcbtdb.c \ +@TCB_TRUE@ src/tcbtdb.h + +@TCB_FALSE@am__append_2 = \ +@TCB_FALSE@ src/khash.h \ +@TCB_FALSE@ src/gkhash.c \ +@TCB_FALSE@ src/gkhash.h + +@GEOIP_LEGACY_TRUE@am__append_3 = \ +@GEOIP_LEGACY_TRUE@ src/geoip1.c \ +@GEOIP_LEGACY_TRUE@ src/geoip1.h + +@GEOIP_MMDB_TRUE@am__append_4 = \ +@GEOIP_MMDB_TRUE@ src/geoip2.c \ +@GEOIP_MMDB_TRUE@ src/geoip1.h + +subdir = . +DIST_COMMON = README $(am__configure_deps) $(dist_conf_DATA) \ + $(dist_man_MANS) $(dist_noinst_DATA) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/configure \ + $(top_srcdir)/src/config.h.in ABOUT-NLS AUTHORS COPYING \ + ChangeLog INSTALL NEWS TODO compile config.guess config.rpath \ + config.sub depcomp install-sh missing +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \ + "$(DESTDIR)$(confdir)" +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +am__dirstamp = $(am__leading_dot)dirstamp +am_bin2c_OBJECTS = src/bin2c.$(OBJEXT) +bin2c_OBJECTS = $(am_bin2c_OBJECTS) +bin2c_LDADD = $(LDADD) +am__goaccess_SOURCES_DIST = src/base64.c src/base64.h src/browsers.c \ + src/browsers.h src/color.c src/color.h src/commons.c \ + src/commons.h src/csv.c src/csv.h src/error.c src/error.h \ + src/gdashboard.c src/gdashboard.h src/gdns.c src/gdns.h \ + src/gholder.c src/gholder.h src/gmenu.c src/gmenu.h \ + src/goaccess.c src/goaccess.h src/gslist.c src/gslist.h \ + src/gstorage.c src/gstorage.h src/gwsocket.c src/gwsocket.h \ + src/json.c src/json.h src/labels.h src/opesys.c src/opesys.h \ + src/options.c src/options.h src/output.c src/output.h \ + src/parser.c src/parser.h src/settings.c src/settings.h \ + src/sha1.c src/sha1.h src/sort.c src/sort.h src/ui.c src/ui.h \ + src/util.c src/util.h src/websocket.c src/websocket.h \ + src/xmalloc.c src/xmalloc.h src/tcabdb.c src/tcabdb.h \ + src/tcbtdb.c src/tcbtdb.h src/khash.h src/gkhash.c \ + src/gkhash.h src/geoip1.c src/geoip1.h src/geoip2.c +@TCB_TRUE@am__objects_1 = src/tcabdb.$(OBJEXT) src/tcbtdb.$(OBJEXT) +@TCB_FALSE@am__objects_2 = src/gkhash.$(OBJEXT) +@GEOIP_LEGACY_TRUE@am__objects_3 = src/geoip1.$(OBJEXT) +@GEOIP_MMDB_TRUE@am__objects_4 = src/geoip2.$(OBJEXT) +am_goaccess_OBJECTS = src/base64.$(OBJEXT) src/browsers.$(OBJEXT) \ + src/color.$(OBJEXT) src/commons.$(OBJEXT) src/csv.$(OBJEXT) \ + src/error.$(OBJEXT) src/gdashboard.$(OBJEXT) \ + src/gdns.$(OBJEXT) src/gholder.$(OBJEXT) src/gmenu.$(OBJEXT) \ + src/goaccess.$(OBJEXT) src/gslist.$(OBJEXT) \ + src/gstorage.$(OBJEXT) src/gwsocket.$(OBJEXT) \ + src/json.$(OBJEXT) src/opesys.$(OBJEXT) src/options.$(OBJEXT) \ + src/output.$(OBJEXT) src/parser.$(OBJEXT) \ + src/settings.$(OBJEXT) src/sha1.$(OBJEXT) src/sort.$(OBJEXT) \ + src/ui.$(OBJEXT) src/util.$(OBJEXT) src/websocket.$(OBJEXT) \ + src/xmalloc.$(OBJEXT) $(am__objects_1) $(am__objects_2) \ + $(am__objects_3) $(am__objects_4) +goaccess_OBJECTS = $(am_goaccess_OBJECTS) +goaccess_LDADD = $(LDADD) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(bin2c_SOURCES) $(goaccess_SOURCES) +DIST_SOURCES = $(bin2c_SOURCES) $(am__goaccess_SOURCES_DIST) +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +man1dir = $(mandir)/man1 +NROFF = nroff +MANS = $(dist_man_MANS) +DATA = $(dist_conf_DATA) $(dist_noinst_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir dist dist-all distcheck +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POSUB = @POSUB@ +POW_LIB = @POW_LIB@ +SED_CHECK = @SED_CHECK@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TR_CHECK = @TR_CHECK@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = subdir-objects +dist_noinst_DATA = \ + resources/tpls.html \ + resources/css/app.css \ + resources/css/bootstrap.min.css \ + resources/css/fa.min.css \ + resources/js/app.js \ + resources/js/charts.js \ + resources/js/d3.v3.min.js \ + resources/js/hogan.min.js + +bin2c_SOURCES = src/bin2c.c +BUILT_SOURCES = \ + tpls.h \ + bootstrapcss.h \ + facss.h \ + appcss.h \ + d3js.h \ + hoganjs.h \ + chartsjs.h \ + appjs.h + +CLEANFILES = \ + src/tpls.h \ + src/bootstrapcss.h \ + src/facss.h \ + src/appcss.h \ + src/d3js.h \ + src/hoganjs.h \ + src/chartsjs.h \ + src/appjs.h \ + resources/tpls.html.tmp \ + resources/css/bootstrap.min.css.tmp \ + resources/css/fa.min.css.tmp \ + resources/css/app.css.tmp \ + resources/js/d3.v3.min.js.tmp \ + resources/js/hogan.min.js.tmp \ + resources/js/charts.js.tmp \ + resources/js/app.js.tmp + +confdir = $(sysconfdir)/goaccess +dist_conf_DATA = config/goaccess.conf config/browsers.list +goaccess_SOURCES = src/base64.c src/base64.h src/browsers.c \ + src/browsers.h src/color.c src/color.h src/commons.c \ + src/commons.h src/csv.c src/csv.h src/error.c src/error.h \ + src/gdashboard.c src/gdashboard.h src/gdns.c src/gdns.h \ + src/gholder.c src/gholder.h src/gmenu.c src/gmenu.h \ + src/goaccess.c src/goaccess.h src/gslist.c src/gslist.h \ + src/gstorage.c src/gstorage.h src/gwsocket.c src/gwsocket.h \ + src/json.c src/json.h src/labels.h src/opesys.c src/opesys.h \ + src/options.c src/options.h src/output.c src/output.h \ + src/parser.c src/parser.h src/settings.c src/settings.h \ + src/sha1.c src/sha1.h src/sort.c src/sort.h src/ui.c src/ui.h \ + src/util.c src/util.h src/websocket.c src/websocket.h \ + src/xmalloc.c src/xmalloc.h $(am__append_1) $(am__append_2) \ + $(am__append_3) $(am__append_4) +@DEBUG_FALSE@AM_CFLAGS = -O2 -DSYSCONFDIR=\"$(sysconfdir)\" \ +@DEBUG_FALSE@ -Wno-long-long -Wall -W -Wnested-externs \ +@DEBUG_FALSE@ -Wformat=2 -Wmissing-prototypes \ +@DEBUG_FALSE@ -Wstrict-prototypes -Wmissing-declarations \ +@DEBUG_FALSE@ -Wwrite-strings -Wshadow -Wpointer-arith \ +@DEBUG_FALSE@ -Wsign-compare -Wbad-function-cast -Winline \ +@DEBUG_FALSE@ -Wcast-align -Wextra \ +@DEBUG_FALSE@ -Wdeclaration-after-statement \ +@DEBUG_FALSE@ -Wno-missing-field-initializers +@DEBUG_TRUE@AM_CFLAGS = -DDEBUG -O0 -g -DSYSCONFDIR=\"$(sysconfdir)\" \ +@DEBUG_TRUE@ -Wno-long-long -Wall -W -Wnested-externs \ +@DEBUG_TRUE@ -Wformat=2 -Wmissing-prototypes \ +@DEBUG_TRUE@ -Wstrict-prototypes -Wmissing-declarations \ +@DEBUG_TRUE@ -Wwrite-strings -Wshadow -Wpointer-arith \ +@DEBUG_TRUE@ -Wsign-compare -Wbad-function-cast -Winline \ +@DEBUG_TRUE@ -Wcast-align -Wextra -Wdeclaration-after-statement \ +@DEBUG_TRUE@ -Wno-missing-field-initializers +@WITH_RDYNAMIC_TRUE@AM_LDFLAGS = -rdynamic +dist_man_MANS = goaccess.1 +SUBDIRS = po +ACLOCAL_AMFLAGS = -I m4 +EXTRA_DIST = config.rpath +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .c .o .obj +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +src/config.h: src/stamp-h1 + @if test ! -f $@; then rm -f src/stamp-h1; else :; fi + @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) src/stamp-h1; else :; fi + +src/stamp-h1: $(top_srcdir)/src/config.h.in $(top_builddir)/config.status + @rm -f src/stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status src/config.h +$(top_srcdir)/src/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f src/stamp-h1 + touch $@ + +distclean-hdr: + -rm -f src/config.h src/stamp-h1 +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) +src/$(am__dirstamp): + @$(MKDIR_P) src + @: > src/$(am__dirstamp) +src/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/$(DEPDIR) + @: > src/$(DEPDIR)/$(am__dirstamp) +src/bin2c.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +bin2c$(EXEEXT): $(bin2c_OBJECTS) $(bin2c_DEPENDENCIES) $(EXTRA_bin2c_DEPENDENCIES) + @rm -f bin2c$(EXEEXT) + $(LINK) $(bin2c_OBJECTS) $(bin2c_LDADD) $(LIBS) +src/base64.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/browsers.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/color.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/commons.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/csv.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/error.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/gdashboard.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gdns.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/gholder.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gmenu.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/goaccess.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gslist.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gstorage.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gwsocket.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/json.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/opesys.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/options.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/output.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/parser.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/settings.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/sha1.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/sort.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/ui.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/util.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) +src/websocket.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/xmalloc.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/tcabdb.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/tcbtdb.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/gkhash.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/geoip1.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/geoip2.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +goaccess$(EXEEXT): $(goaccess_OBJECTS) $(goaccess_DEPENDENCIES) $(EXTRA_goaccess_DEPENDENCIES) + @rm -f goaccess$(EXEEXT) + $(LINK) $(goaccess_OBJECTS) $(goaccess_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f src/base64.$(OBJEXT) + -rm -f src/bin2c.$(OBJEXT) + -rm -f src/browsers.$(OBJEXT) + -rm -f src/color.$(OBJEXT) + -rm -f src/commons.$(OBJEXT) + -rm -f src/csv.$(OBJEXT) + -rm -f src/error.$(OBJEXT) + -rm -f src/gdashboard.$(OBJEXT) + -rm -f src/gdns.$(OBJEXT) + -rm -f src/geoip1.$(OBJEXT) + -rm -f src/geoip2.$(OBJEXT) + -rm -f src/gholder.$(OBJEXT) + -rm -f src/gkhash.$(OBJEXT) + -rm -f src/gmenu.$(OBJEXT) + -rm -f src/goaccess.$(OBJEXT) + -rm -f src/gslist.$(OBJEXT) + -rm -f src/gstorage.$(OBJEXT) + -rm -f src/gwsocket.$(OBJEXT) + -rm -f src/json.$(OBJEXT) + -rm -f src/opesys.$(OBJEXT) + -rm -f src/options.$(OBJEXT) + -rm -f src/output.$(OBJEXT) + -rm -f src/parser.$(OBJEXT) + -rm -f src/settings.$(OBJEXT) + -rm -f src/sha1.$(OBJEXT) + -rm -f src/sort.$(OBJEXT) + -rm -f src/tcabdb.$(OBJEXT) + -rm -f src/tcbtdb.$(OBJEXT) + -rm -f src/ui.$(OBJEXT) + -rm -f src/util.$(OBJEXT) + -rm -f src/websocket.$(OBJEXT) + -rm -f src/xmalloc.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/base64.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/bin2c.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/browsers.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/color.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/commons.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/csv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/error.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/gdashboard.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/gdns.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/geoip1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/geoip2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/gholder.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/gkhash.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/gmenu.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/goaccess.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/gslist.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/gstorage.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/gwsocket.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/json.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/opesys.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/options.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/output.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/parser.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/settings.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/sha1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/sort.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/tcabdb.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/tcbtdb.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/ui.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/util.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/websocket.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/xmalloc.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` +install-man1: $(dist_man_MANS) + @$(NORMAL_INSTALL) + @list1=''; \ + list2='$(dist_man_MANS)'; \ + test -n "$(man1dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.1[a-z]*$$/p'; \ + fi; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ + done; } + +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) +install-dist_confDATA: $(dist_conf_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_conf_DATA)'; test -n "$(confdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(confdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(confdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(confdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(confdir)" || exit $$?; \ + done + +uninstall-dist_confDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_conf_DATA)'; test -n "$(confdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(confdir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @list='$(MANS)'; if test -n "$$list"; then \ + list=`for p in $$list; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ + if test -n "$$list" && \ + grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ + echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ + grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ + echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ + echo " typically \`make maintainer-clean' will remove them" >&2; \ + exit 1; \ + else :; fi; \ + else :; fi + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod u+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-recursive +all-am: Makefile $(PROGRAMS) $(MANS) $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(confdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f src/$(DEPDIR)/$(am__dirstamp) + -rm -f src/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-recursive + +clean-am: clean-binPROGRAMS clean-generic clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf src/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-dist_confDATA install-man + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: install-man1 + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf src/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-dist_confDATA \ + uninstall-man + +uninstall-man: uninstall-man1 + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ + ctags-recursive install install-am install-strip \ + tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-binPROGRAMS \ + clean-generic clean-noinstPROGRAMS ctags ctags-recursive dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-lzma dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-compile distclean-generic distclean-hdr \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-binPROGRAMS install-data install-data-am \ + install-dist_confDATA install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-man1 install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-dist_confDATA uninstall-man \ + uninstall-man1 + + +# Tpls +tpls.h: bin2c$(EXEEXT) resources/tpls.html +@HAS_SEDTR_TRUE@ cat resources/tpls.html | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/tpls.html.tmp +@HAS_SEDTR_TRUE@ ./bin2c resources/tpls.html.tmp src/tpls.h tpls +@HAS_SEDTR_FALSE@ ./bin2c resources/tpls.html src/tpls.h tpls +# Bootstrap +bootstrapcss.h: bin2c$(EXEEXT) resources/css/bootstrap.min.css +@HAS_SEDTR_TRUE@ cat resources/css/bootstrap.min.css | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/css/bootstrap.min.css.tmp +@HAS_SEDTR_TRUE@ ./bin2c resources/css/bootstrap.min.css.tmp src/bootstrapcss.h bootstrap_css +@HAS_SEDTR_FALSE@ ./bin2c resources/css/bootstrap.min.css src/bootstrapcss.h bootstrap_css +# Font Awesome +facss.h: bin2c$(EXEEXT) resources/css/fa.min.css +@HAS_SEDTR_TRUE@ cat resources/css/fa.min.css | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/css/fa.min.css.tmp +@HAS_SEDTR_TRUE@ ./bin2c resources/css/fa.min.css.tmp src/facss.h fa_css +@HAS_SEDTR_FALSE@ ./bin2c resources/css/fa.min.css src/facss.h fa_css +# App.css +appcss.h: bin2c$(EXEEXT) resources/css/app.css +@HAS_SEDTR_TRUE@ cat resources/css/app.css | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/css/app.css.tmp +@HAS_SEDTR_TRUE@ ./bin2c resources/css/app.css.tmp src/appcss.h app_css +@HAS_SEDTR_FALSE@ ./bin2c resources/css/app.css src/appcss.h app_css +# D3.js +d3js.h: bin2c$(EXEEXT) resources/js/d3.v3.min.js +@HAS_SEDTR_TRUE@ cat resources/js/d3.v3.min.js | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/d3.v3.min.js.tmp +@HAS_SEDTR_TRUE@ ./bin2c resources/js/d3.v3.min.js.tmp src/d3js.h d3_js +@HAS_SEDTR_FALSE@ ./bin2c resources/js/d3.v3.min.js src/d3js.h d3_js +# Hogan.js +hoganjs.h: bin2c$(EXEEXT) resources/js/hogan.min.js +@HAS_SEDTR_TRUE@ cat resources/js/hogan.min.js | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/hogan.min.js.tmp +@HAS_SEDTR_TRUE@ ./bin2c resources/js/hogan.min.js.tmp src/hoganjs.h hogan_js +@HAS_SEDTR_FALSE@ ./bin2c resources/js/hogan.min.js src/hoganjs.h hogan_js +# Charts.js +chartsjs.h: bin2c$(EXEEXT) resources/js/charts.js +@HAS_SEDTR_TRUE@ cat resources/js/charts.js | sed -E "s@(,|;)[[:space:]]*//..*@\1@g" | sed -E "s@^[[:space:]]*//..*@@g" | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/charts.js.tmp +@HAS_SEDTR_TRUE@ ./bin2c resources/js/charts.js.tmp src/chartsjs.h charts_js +@HAS_SEDTR_FALSE@ ./bin2c resources/js/charts.js src/chartsjs.h charts_js +# App.js +appjs.h: bin2c$(EXEEXT) resources/js/app.js +@HAS_SEDTR_TRUE@ cat resources/js/app.js | sed -E "s@(,|;)[[:space:]]*//..*@\1@g" | sed -E "s@^[[:space:]]*//..*@@g" | sed "s/^[[:space:]]*//" | sed "/^$$/d" | tr -d "\r\n" > resources/js/app.js.tmp +@HAS_SEDTR_TRUE@ ./bin2c resources/js/app.js.tmp src/appjs.h app_js +@HAS_SEDTR_FALSE@ ./bin2c resources/js/app.js src/appjs.h app_js + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/goaccess++/NEWS b/src/goaccess++/NEWS new file mode 100644 index 0000000..072705c --- /dev/null +++ b/src/goaccess++/NEWS @@ -0,0 +1,80 @@ +Copyright (C) 2009-2018 +Gerardo Orellana + +* Version history: + - 1.3 [Friday, November 23, 2018] + . GoAccess 1.3 Released. See ChangeLog for new features/bug-fixes. + - 1.2 [Tuesday, March 07, 2017] + . GoAccess 1.2 Released. See ChangeLog for new features/bug-fixes. + - 1.1.1 [Wednesday, November 23, 2016] + . GoAccess 1.1.1 Released. See ChangeLog for new features/bug-fixes. + - 1.1 [Tuesday, November 08, 2016] + . GoAccess 1.1 Released. See ChangeLog for new features/bug-fixes. + - 1.0.2 [Tuesday, July 05, 2016] + . GoAccess 1.0.2 Released. See ChangeLog for new features/bug-fixes. + - 1.0.1 [Friday, June 17, 2016] + . GoAccess 1.0.1 Released. See ChangeLog for new features/bug-fixes. + - 1.0 [Thursday, June 09, 2016] + . GoAccess 1.0 Released. See ChangeLog for new features/bug-fixes. + - 0.9.8 [Monday, February 29, 2016] + . GoAccess 0.9.8 Released. See ChangeLog for new features/bug-fixes. + - 0.9.7 [Monday, December 21, 2015] + . GoAccess 0.9.7 Released. See ChangeLog for new features/bug-fixes. + - 0.9.6 [Tuesday, October 27, 2015] + . GoAccess 0.9.6 Released. See ChangeLog for new features/bug-fixes. + - 0.9.5 [Thursday, October 22, 2015] + . GoAccess 0.9.5 Released. See ChangeLog for new features/bug-fixes. + - 0.9.4 [Tuesday, September 08 , 2015] + . GoAccess 0.9.4 Released. See ChangeLog for new features/bug-fixes. + - 0.9.3 [Wednesday, August 28, 2015] + . GoAccess 0.9.3 Released. See ChangeLog for new features/bug-fixes. + - 0.9.2 [Monday, July 06, 2015] + . GoAccess 0.9.2 Released. See ChangeLog for new features/bug-fixes. + - 0.9.1 [Tuesday, May 26, 2015] + . GoAccess 0.9.1 Released. See ChangeLog for new features/bug-fixes. + - 0.9 [Thursday, March 19, 2015] + . GoAccess 0.9 Released. See ChangeLog for new features/bug-fixes. + - 0.8.5 [Sunday, September 14, 2014] + . GoAccess 0.8.5 Released. See ChangeLog for new features/bug-fixes. + - 0.8.4 [Monday, September 08, 2014] + . GoAccess 0.8.4 Released. See ChangeLog for new features/bug-fixes. + - 0.8.3 [Monday, July 28, 2014] + . GoAccess 0.8.3 Released. See ChangeLog for new features/bug-fixes. + - 0.8.2 [Monday, July 21, 2014] + . GoAccess 0.8.2 Released. See ChangeLog for new features/bug-fixes. + - 0.8.1 [Monday, June 16, 2014] + . GoAccess 0.8.1 Released. See ChangeLog for new features/bug-fixes. + - 0.8 [Monday, May 20, 2013] + . GoAccess 0.8 Released. See ChangeLog for new features/bug-fixes. + - 0.7.1 [Monday, February 17, 2014] + . GoAccess 0.7.1 Released. See ChangeLog for new features/bug-fixes. + - 0.7 [Monday, December 16, 2013] + . GoAccess 0.7 Released. See ChangeLog for new features/bug-fixes. + - 0.6.1 [Monday, October 07, 2013] + . GoAccess 0.6.1 Released. See ChangeLog for new features/bug-fixes. + - 0.6 [Monday, July 15, 2013] + . GoAccess 0.6 Released. See ChangeLog for new features/bug-fixes. + - 0.5 [Monday, June 04, 2012] + . GoAccess 0.5 Released. See ChangeLog for new features/bug-fixes. + - 0.4.2 [Monday, January 03, 2011] + . GoAccess 0.4.2 Released. See ChangeLog for new features/bug-fixes. + - 0.4.1 [Monday, December 13, 2010] + . GoAccess 0.4.1 Released. See ChangeLog for new features/bug-fixes. + - 0.4 [Tuesday, November 30, 2010] + . GoAccess 0.4 Released. See ChangeLog for new features/bug-fixes. + - 0.3.3 [Monday, September 27, 2010] + . GoAccess 0.3.3 Released. See ChangeLog for new features/bug-fixes. + - 0.3.2 [Thursday, September 09 2010] + . GoAccess 0.3.2 Released. See ChangeLog for new features/bug-fixes. + - 0.3.1 [Friday, September 03, 2010] + . GoAccess 0.3.1 Released. See ChangeLog for new features/bug-fixes. + - 0.3 [Sunday, August 29, 2010] + . GoAccess 0.3 Released. See ChangeLog for new features/bug-fixes. + - 0.2 [Sunday, July 25, 2010] + . GoAccess 0.2 Released. See ChangeLog for new features/bug-fixes. + - 0.1.2 [Tuesday, July 13, 2010] + . GoAccess 0.1.2 Released. See ChangeLog for new features/bug-fixes. + - 0.1.1 [Saturday, July 10, 2010] + . GoAccess 0.1.1 Released. See ChangeLog for new features/bug-fixes. + - 0.1 [Wednesday, July 07, 2010] + . Welcome to the GoAccess 0.1 Released. diff --git a/src/goaccess++/README b/src/goaccess++/README new file mode 100644 index 0000000..c573004 --- /dev/null +++ b/src/goaccess++/README @@ -0,0 +1,100 @@ +What is it? +------------- +GoAccess is an open source real-time web log analyzer and interactive viewer +that runs in a terminal in *nix systems or through your browser. + +It provides fast and valuable HTTP statistics for system administrators that +require a visual server report on the fly. + +Features +------------------------------- +GoAccess parses the specified web log file and +outputs the data to the X terminal. Features include: + + * Completely Real Time + All panels and metrics are timed to be updated every 200 ms on the terminal + output and every second on the HTML output. + + * No configuration needed + You can just run it against your access log file, pick the log format and + let GoAccess parse the access log and show you the stats. + + * Track Application Response Time + Track the time taken to serve the request. Extremely useful if you want to + track pages that are slowing down your site. + + * Nearly All Web Log Formats + GoAccess allows any custom log format string. Predefined options include, + Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, etc + + * Incremental Log Processing + Need data persistence? GoAccess has the ability to process logs incrementally + through the on-disk B+Tree database. + + * Only one dependency + GoAccess is written in C. To run it, you only need ncurses as a dependency. + That's it. It even has its own Web Socket server - http://gwsocket.io/. + + * Visitors + Determine the amount of hits, visitors, bandwidth, and metrics for slowest + running requests by the hour, or date. + + * Metrics per Virtual Host + Have multiple Virtual Hosts (Server Blocks)? A panel that displays which + virtual host is consuming most of the web server resources. + + * Color Scheme Customizable + Tailor GoAccess to suit your own color taste/schemes. Either through the + terminal, or by simply updating the stylesheet on the HTML output. + + * Support for large datasets + GoAccess features an on-disk B+Tree storage for large datasets where it is not + possible to fit everything in memory. + + * Docker support + GoAccess comes with a default Docker (https://hub.docker.com/r/allinurl/goaccess/) + that will listen for HTTP connections on port 7890. Although, you can still + fully configure it, by using Volume mapping and editing goaccess.conf. + + * and more... visit https://goaccess.io for more details. + + +Why GoAccess? +------------- +GoAccess was designed to be a fast, terminal-based log analyzer. Its core idea +is to quickly analyze and view web server statistics in real time without +needing to use your browser (great if you want to do a quick analysis of your +access log via SSH, or if you simply love working in the terminal). + +While the terminal output is the default output, it has the capability to +generate a complete real-time HTML report, as well as a JSON, and CSV report. + +You can see it more of a monitor command tool than anything else. + +Keys +---- +The user can make use of the following keys: + + * ^F1^ or ^h^ Main help, + * ^F5^ Redraw [main window], + * ^q^ Quit the program, current window or module, + * ^o^ or ^ENTER^ Expand selected module, + * ^[Shift]0-9^ Set selected module to active, + * ^Up^ arrow Scroll up main dashboard, + * ^Down^ arrow Scroll down main dashboard, + * ^j^ Scroll down within expanded module, + * ^k^ Scroll up within expanded module, + * ^c^ Set or change scheme color, + * ^CTRL^ + ^f^ Scroll forward one screen within, + * active module, + * ^CTRL^ + ^b^ Scroll backward one screen within, + * active module, + * ^TAB^ Iterate modules (forward), + * ^SHIFT^ + ^TAB^ Iterate modules (backward), + * ^s^ Sort options for current module, + * ^/^ Search across all modules, + * ^n^ Find position of the next occurrence, + * ^g^ Move to the first item or top of screen, + * ^G^ Move to the last item or bottom of screen, + +Examples can be found by running `man goaccess`. diff --git a/src/goaccess++/TODO b/src/goaccess++/TODO new file mode 100644 index 0000000..d9abf21 --- /dev/null +++ b/src/goaccess++/TODO @@ -0,0 +1,10 @@ +1Copyright (C) 2009-2018 +6erardo Orellana + +For a more comprehensive list of to-do items, please refer to the GitHub site. +https://github.com/allinurl/goaccess/issues + +or visit http://goaccess.io/faq#todo + +If you are interested in working on any of the items listed in there, email +goaccess@prosoftcorp.com or better, open a new issue: diff --git a/src/goaccess++/aclocal.m4 b/src/goaccess++/aclocal.m4 new file mode 100644 index 0000000..b04779f --- /dev/null +++ b/src/goaccess++/aclocal.m4 @@ -0,0 +1,1015 @@ +# generated automatically by aclocal 1.11.6 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, +# Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software +# Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11.6], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.11.6])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, +# 2010, 2011 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 12 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 16 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.62])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) + +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, +# Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_PROG_CC_C_O +# -------------- +# Like AC_PROG_CC_C_O, but changed for automake. +AC_DEFUN([AM_PROG_CC_C_O], +[AC_REQUIRE([AC_PROG_CC_C_O])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +dnl Make sure AC_PROG_CC is never called again, or it will override our +dnl setting of CC. +m4_define([AC_PROG_CC], + [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, +# Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software +# Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/gettext.m4]) +m4_include([m4/iconv.m4]) +m4_include([m4/intlmacosx.m4]) +m4_include([m4/lib-ld.m4]) +m4_include([m4/lib-link.m4]) +m4_include([m4/lib-prefix.m4]) +m4_include([m4/nls.m4]) +m4_include([m4/po.m4]) +m4_include([m4/progtest.m4]) diff --git a/src/goaccess++/bin2c b/src/goaccess++/bin2c new file mode 100644 index 0000000000000000000000000000000000000000..7a5bd87ad2d946bff151958a06ab975f77f44d01 GIT binary patch literal 17096 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 P{+sneVwO$8#. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/src/goaccess++/config.guess b/src/goaccess++/config.guess new file mode 100644 index 0000000..d622a44 --- /dev/null +++ b/src/goaccess++/config.guess @@ -0,0 +1,1530 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. + +timestamp='2012-02-10' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/src/goaccess++/config.log b/src/goaccess++/config.log new file mode 100644 index 0000000..4cbbf00 --- /dev/null +++ b/src/goaccess++/config.log @@ -0,0 +1,1751 @@ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by goaccess configure 1.3, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ ./configure --enable-utf8 --enable-geoip=legacy + +## --------- ## +## Platform. ## +## --------- ## + +hostname = ubuntu +uname -m = x86_64 +uname -r = 5.15.0-105-generic +uname -s = Linux +uname -v = #115~20.04.1-Ubuntu SMP Mon Apr 15 17:33:04 UTC 2024 + +/usr/bin/uname -p = x86_64 +/bin/uname -X = unknown + +/bin/arch = x86_64 +/usr/bin/arch -k = unknown +/usr/convex/getsysinfo = unknown +/usr/bin/hostinfo = unknown +/bin/machine = unknown +/usr/bin/oslevel = unknown +/bin/universe = unknown + +PATH: /usr/local/sbin +PATH: /usr/local/bin +PATH: /usr/sbin +PATH: /usr/bin +PATH: /sbin +PATH: /bin +PATH: /usr/games +PATH: /usr/local/games +PATH: /snap/bin + + +## ----------- ## +## Core tests. ## +## ----------- ## + +configure:2443: checking for a BSD-compatible install +configure:2511: result: /usr/bin/install -c +configure:2522: checking whether build environment is sane +configure:2572: result: yes +configure:2713: checking for a thread-safe mkdir -p +configure:2752: result: /usr/bin/mkdir -p +configure:2765: checking for gawk +configure:2795: result: no +configure:2765: checking for mawk +configure:2781: found /usr/bin/mawk +configure:2792: result: mawk +configure:2803: checking whether make sets $(MAKE) +configure:2825: result: yes +configure:2964: checking for gcc +configure:2980: found /usr/bin/gcc +configure:2991: result: gcc +configure:3220: checking for C compiler version +configure:3229: gcc --version >&5 +gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0 +Copyright (C) 2019 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +configure:3240: $? = 0 +configure:3229: gcc -v >&5 +Using built-in specs. +COLLECT_GCC=gcc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none:hsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) +configure:3240: $? = 0 +configure:3229: gcc -V >&5 +gcc: error: unrecognized command line option '-V' +gcc: fatal error: no input files +compilation terminated. +configure:3240: $? = 1 +configure:3229: gcc -qversion >&5 +gcc: error: unrecognized command line option '-qversion'; did you mean '--version'? +gcc: fatal error: no input files +compilation terminated. +configure:3240: $? = 1 +configure:3260: checking whether the C compiler works +configure:3282: gcc conftest.c >&5 +configure:3286: $? = 0 +configure:3334: result: yes +configure:3337: checking for C compiler default output file name +configure:3339: result: a.out +configure:3345: checking for suffix of executables +configure:3352: gcc -o conftest conftest.c >&5 +configure:3356: $? = 0 +configure:3378: result: +configure:3400: checking whether we are cross compiling +configure:3408: gcc -o conftest conftest.c >&5 +configure:3412: $? = 0 +configure:3419: ./conftest +configure:3423: $? = 0 +configure:3411: result: no +configure:3416: checking for suffix of object files +configure:3438: gcc -c conftest.c >&5 +configure:3442: $? = 0 +configure:3463: result: o +configure:3467: checking whether we are using the GNU C compiler +configure:3486: gcc -c conftest.c >&5 +configure:3486: $? = 0 +configure:3495: result: yes +configure:3504: checking whether gcc accepts -g +configure:3524: gcc -c -g conftest.c >&5 +configure:3524: $? = 0 +configure:3565: result: yes +configure:3582: checking for gcc option to accept ISO C89 +configure:3645: gcc -c conftest.c >&5 +configure:3645: $? = 0 +configure:3658: result: none needed +configure:3689: checking for style of include used by make +configure:3717: result: GNU +configure:3743: checking dependency style of gcc +configure:3854: result: gcc3 +configure:3870: checking whether gcc and cc understand -c and -o together +configure:3901: gcc -c conftest.c -o conftest2.o >&5 +configure:3905: $? = 0 +configure:3911: gcc -c conftest.c -o conftest2.o >&5 +configure:3915: $? = 0 +configure:3926: cc -c conftest.c >&5 +configure:3930: $? = 0 +configure:3938: cc -c conftest.c -o conftest2.o >&5 +configure:3942: $? = 0 +configure:3948: cc -c conftest.c -o conftest2.o >&5 +configure:3952: $? = 0 +configure:3970: result: yes +configure:3997: checking whether NLS is requested +configure:4006: result: yes +configure:4047: checking for msgfmt +configure:4082: result: no +configure:4088: checking for gmsgfmt +configure:4119: result: : +configure:4170: checking for xgettext +configure:4205: result: no +configure:4248: checking for msgmerge +configure:4282: result: no +configure:4316: checking build system type +configure:4330: result: x86_64-unknown-linux-gnu +configure:4350: checking host system type +configure:4363: result: x86_64-unknown-linux-gnu +configure:4407: checking for ld used by GCC +configure:4471: result: /usr/bin/ld +configure:4478: checking if the linker (/usr/bin/ld) is GNU ld +configure:4491: result: yes +configure:4498: checking for shared library run path origin +configure:4511: result: done +configure:4536: checking how to run the C preprocessor +configure:4567: gcc -E conftest.c +configure:4567: $? = 0 +configure:4581: gcc -E conftest.c +conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory + 11 | #include + | ^~~~~~~~~~~~~~~~~~ +compilation terminated. +configure:4581: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| /* end confdefs.h. */ +| #include +configure:4606: result: gcc -E +configure:4626: gcc -E conftest.c +configure:4626: $? = 0 +configure:4640: gcc -E conftest.c +conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory + 11 | #include + | ^~~~~~~~~~~~~~~~~~ +compilation terminated. +configure:4640: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| /* end confdefs.h. */ +| #include +configure:4669: checking for grep that handles long lines and -e +configure:4727: result: /usr/bin/grep +configure:4732: checking for egrep +configure:4794: result: /usr/bin/grep -E +configure:5352: checking for CFPreferencesCopyAppValue +configure:5370: gcc -o conftest conftest.c -Wl,-framework -Wl,CoreFoundation >&5 +conftest.c:11:10: fatal error: CoreFoundation/CFPreferences.h: No such file or directory + 11 | #include + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +configure:5370: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| /* end confdefs.h. */ +| #include +| int +| main () +| { +| CFPreferencesCopyAppValue(NULL, NULL) +| ; +| return 0; +| } +configure:5379: result: no +configure:5386: checking for CFLocaleCopyCurrent +configure:5404: gcc -o conftest conftest.c -Wl,-framework -Wl,CoreFoundation >&5 +conftest.c:11:10: fatal error: CoreFoundation/CFLocale.h: No such file or directory + 11 | #include + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +configure:5404: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| /* end confdefs.h. */ +| #include +| int +| main () +| { +| CFLocaleCopyCurrent(); +| ; +| return 0; +| } +configure:5413: result: no +configure:5462: checking for GNU gettext in libc +configure:5482: gcc -o conftest conftest.c >&5 +configure:5482: $? = 0 +configure:5491: result: yes +configure:6282: checking whether to use NLS +configure:6284: result: yes +configure:6287: checking where the gettext function comes from +configure:6298: result: libc +configure:6357: checking for libintl_dgettext in -lintl +configure:6382: gcc -o conftest conftest.c -lintl >&5 +/usr/bin/ld: cannot find -lintl +collect2: error: ld returned 1 exit status +configure:6382: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| #define ENABLE_NLS 1 +| #define HAVE_GETTEXT 1 +| #define HAVE_DCGETTEXT 1 +| /* end confdefs.h. */ +| +| /* Override any GCC internal prototype to avoid an error. +| Use char because int might match the return type of a GCC +| builtin and then its argument prototype would still apply. */ +| #ifdef __cplusplus +| extern "C" +| #endif +| char libintl_dgettext (); +| int +| main () +| { +| return libintl_dgettext (); +| ; +| return 0; +| } +configure:6391: result: no +configure:6404: checking for pthread_create in -lpthread +configure:6429: gcc -o conftest conftest.c -lpthread >&5 +configure:6429: $? = 0 +configure:6438: result: yes +configure:6478: checking whether to build with rdynamic for GNU ld +configure:6485: result: yes +configure:6668: checking for GeoIP_new in -lGeoIP +configure:6693: gcc -o conftest -pthread conftest.c -lGeoIP -lpthread >&5 +configure:6693: $? = 0 +configure:6702: result: yes +configure:6773: checking for mvaddwstr in -lncursesw +configure:6798: gcc -o conftest -pthread conftest.c -lncursesw -lGeoIP -lpthread >&5 +configure:6798: $? = 0 +configure:6808: result: yes +configure:6821: checking for library containing tputs +configure:6852: gcc -o conftest -pthread conftest.c -lncursesw -lGeoIP -lpthread >&5 +configure:6852: $? = 0 +configure:6869: result: none required +configure:6886: checking for ncursesw/ncurses.h +configure:6886: gcc -c -pthread conftest.c >&5 +configure:6886: $? = 0 +configure:6886: result: yes +configure:6904: checking for ncurses.h +configure:6904: gcc -c -pthread conftest.c >&5 +configure:6904: $? = 0 +configure:6904: result: yes +configure:7314: checking for sed +configure:7330: found /usr/bin/sed +configure:7342: result: yes +configure:7353: checking for tr +configure:7369: found /usr/bin/tr +configure:7381: result: yes +configure:7403: checking for gethostbyname in -lnsl +configure:7428: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:7428: $? = 0 +configure:7437: result: yes +configure:7448: checking for socket in -lsocket +configure:7473: gcc -o conftest -pthread conftest.c -lsocket -lnsl -lncursesw -lGeoIP -lpthread >&5 +/usr/bin/ld: cannot find -lsocket +collect2: error: ld returned 1 exit status +configure:7473: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| #define ENABLE_NLS 1 +| #define HAVE_GETTEXT 1 +| #define HAVE_DCGETTEXT 1 +| #define HAVE_LIBPTHREAD 1 +| #define HAVE_LIBGEOIP 1 +| #define HAVE_GEOLOCATION 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_NCURSESW_NCURSES_H 1 +| #define HAVE_NCURSES_H 1 +| #define HAVE_LIBNSL 1 +| /* end confdefs.h. */ +| +| /* Override any GCC internal prototype to avoid an error. +| Use char because int might match the return type of a GCC +| builtin and then its argument prototype would still apply. */ +| #ifdef __cplusplus +| extern "C" +| #endif +| char socket (); +| int +| main () +| { +| return socket (); +| ; +| return 0; +| } +configure:7482: result: no +configure:7495: checking for ANSI C header files +configure:7515: gcc -c -pthread conftest.c >&5 +configure:7515: $? = 0 +configure:7588: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:7588: $? = 0 +configure:7588: ./conftest +configure:7588: $? = 0 +configure:7599: result: yes +configure:7612: checking for sys/types.h +configure:7612: gcc -c -pthread conftest.c >&5 +configure:7612: $? = 0 +configure:7612: result: yes +configure:7612: checking for sys/stat.h +configure:7612: gcc -c -pthread conftest.c >&5 +configure:7612: $? = 0 +configure:7612: result: yes +configure:7612: checking for stdlib.h +configure:7612: gcc -c -pthread conftest.c >&5 +configure:7612: $? = 0 +configure:7612: result: yes +configure:7612: checking for string.h +configure:7612: gcc -c -pthread conftest.c >&5 +configure:7612: $? = 0 +configure:7612: result: yes +configure:7612: checking for memory.h +configure:7612: gcc -c -pthread conftest.c >&5 +configure:7612: $? = 0 +configure:7612: result: yes +configure:7612: checking for strings.h +configure:7612: gcc -c -pthread conftest.c >&5 +configure:7612: $? = 0 +configure:7612: result: yes +configure:7612: checking for inttypes.h +configure:7612: gcc -c -pthread conftest.c >&5 +configure:7612: $? = 0 +configure:7612: result: yes +configure:7612: checking for stdint.h +configure:7612: gcc -c -pthread conftest.c >&5 +configure:7612: $? = 0 +configure:7612: result: yes +configure:7612: checking for unistd.h +configure:7612: gcc -c -pthread conftest.c >&5 +configure:7612: $? = 0 +configure:7612: result: yes +configure:7626: checking arpa/inet.h usability +configure:7626: gcc -c -pthread conftest.c >&5 +configure:7626: $? = 0 +configure:7626: result: yes +configure:7626: checking arpa/inet.h presence +configure:7626: gcc -E conftest.c +configure:7626: $? = 0 +configure:7626: result: yes +configure:7626: checking for arpa/inet.h +configure:7626: result: yes +configure:7638: checking fcntl.h usability +configure:7638: gcc -c -pthread conftest.c >&5 +configure:7638: $? = 0 +configure:7638: result: yes +configure:7638: checking fcntl.h presence +configure:7638: gcc -E conftest.c +configure:7638: $? = 0 +configure:7638: result: yes +configure:7638: checking for fcntl.h +configure:7638: result: yes +configure:7650: checking for inttypes.h +configure:7650: result: yes +configure:7662: checking limits.h usability +configure:7662: gcc -c -pthread conftest.c >&5 +configure:7662: $? = 0 +configure:7662: result: yes +configure:7662: checking limits.h presence +configure:7662: gcc -E conftest.c +configure:7662: $? = 0 +configure:7662: result: yes +configure:7662: checking for limits.h +configure:7662: result: yes +configure:7674: checking locale.h usability +configure:7674: gcc -c -pthread conftest.c >&5 +configure:7674: $? = 0 +configure:7674: result: yes +configure:7674: checking locale.h presence +configure:7674: gcc -E conftest.c +configure:7674: $? = 0 +configure:7674: result: yes +configure:7674: checking for locale.h +configure:7674: result: yes +configure:7686: checking netdb.h usability +configure:7686: gcc -c -pthread conftest.c >&5 +configure:7686: $? = 0 +configure:7686: result: yes +configure:7686: checking netdb.h presence +configure:7686: gcc -E conftest.c +configure:7686: $? = 0 +configure:7686: result: yes +configure:7686: checking for netdb.h +configure:7686: result: yes +configure:7698: checking netinet/in.h usability +configure:7698: gcc -c -pthread conftest.c >&5 +configure:7698: $? = 0 +configure:7698: result: yes +configure:7698: checking netinet/in.h presence +configure:7698: gcc -E conftest.c +configure:7698: $? = 0 +configure:7698: result: yes +configure:7698: checking for netinet/in.h +configure:7698: result: yes +configure:7710: checking stddef.h usability +configure:7710: gcc -c -pthread conftest.c >&5 +configure:7710: $? = 0 +configure:7710: result: yes +configure:7710: checking stddef.h presence +configure:7710: gcc -E conftest.c +configure:7710: $? = 0 +configure:7710: result: yes +configure:7710: checking for stddef.h +configure:7710: result: yes +configure:7722: checking for stdint.h +configure:7722: result: yes +configure:7734: checking for stdlib.h +configure:7734: result: yes +configure:7746: checking for string.h +configure:7746: result: yes +configure:7758: checking for strings.h +configure:7758: result: yes +configure:7770: checking sys/socket.h usability +configure:7770: gcc -c -pthread conftest.c >&5 +configure:7770: $? = 0 +configure:7770: result: yes +configure:7770: checking sys/socket.h presence +configure:7770: gcc -E conftest.c +configure:7770: $? = 0 +configure:7770: result: yes +configure:7770: checking for sys/socket.h +configure:7770: result: yes +configure:7782: checking sys/time.h usability +configure:7782: gcc -c -pthread conftest.c >&5 +configure:7782: $? = 0 +configure:7782: result: yes +configure:7782: checking sys/time.h presence +configure:7782: gcc -E conftest.c +configure:7782: $? = 0 +configure:7782: result: yes +configure:7782: checking for sys/time.h +configure:7782: result: yes +configure:7794: checking for unistd.h +configure:7794: result: yes +configure:7806: checking for an ANSI C-conforming const +configure:7872: gcc -c -pthread conftest.c >&5 +configure:7872: $? = 0 +configure:7879: result: yes +configure:7887: checking for ptrdiff_t +configure:7887: gcc -c -pthread conftest.c >&5 +configure:7887: $? = 0 +configure:7887: gcc -c -pthread conftest.c >&5 +conftest.c: In function 'main': +conftest.c:83:24: error: expected expression before ')' token + 83 | if (sizeof ((ptrdiff_t))) + | ^ +configure:7887: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| #define ENABLE_NLS 1 +| #define HAVE_GETTEXT 1 +| #define HAVE_DCGETTEXT 1 +| #define HAVE_LIBPTHREAD 1 +| #define HAVE_LIBGEOIP 1 +| #define HAVE_GEOLOCATION 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_NCURSESW_NCURSES_H 1 +| #define HAVE_NCURSES_H 1 +| #define HAVE_LIBNSL 1 +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_ARPA_INET_H 1 +| #define HAVE_FCNTL_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_LIMITS_H 1 +| #define HAVE_LOCALE_H 1 +| #define HAVE_NETDB_H 1 +| #define HAVE_NETINET_IN_H 1 +| #define HAVE_STDDEF_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_SYS_SOCKET_H 1 +| #define HAVE_SYS_TIME_H 1 +| #define HAVE_UNISTD_H 1 +| /* end confdefs.h. */ +| #include +| #ifdef HAVE_SYS_TYPES_H +| # include +| #endif +| #ifdef HAVE_SYS_STAT_H +| # include +| #endif +| #ifdef STDC_HEADERS +| # include +| # include +| #else +| # ifdef HAVE_STDLIB_H +| # include +| # endif +| #endif +| #ifdef HAVE_STRING_H +| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H +| # include +| # endif +| # include +| #endif +| #ifdef HAVE_STRINGS_H +| # include +| #endif +| #ifdef HAVE_INTTYPES_H +| # include +| #endif +| #ifdef HAVE_STDINT_H +| # include +| #endif +| #ifdef HAVE_UNISTD_H +| # include +| #endif +| int +| main () +| { +| if (sizeof ((ptrdiff_t))) +| return 0; +| ; +| return 0; +| } +configure:7887: result: yes +configure:7897: checking whether struct tm is in sys/time.h or time.h +configure:7917: gcc -c -pthread conftest.c >&5 +configure:7917: $? = 0 +configure:7924: result: time.h +configure:7932: checking for int64_t +configure:7932: gcc -c -pthread conftest.c >&5 +configure:7932: $? = 0 +configure:7932: gcc -c -pthread conftest.c >&5 +conftest.c: In function 'main': +conftest.c:86:53: warning: integer overflow in expression of type 'long int' results in '-9223372036854775808' [-Woverflow] + 86 | < (int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 2))]; + | ^ +conftest.c:85:12: error: storage size of 'test_array' isn't constant + 85 | static int test_array [1 - 2 * !((int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 1) + | ^~~~~~~~~~ +configure:7932: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| #define ENABLE_NLS 1 +| #define HAVE_GETTEXT 1 +| #define HAVE_DCGETTEXT 1 +| #define HAVE_LIBPTHREAD 1 +| #define HAVE_LIBGEOIP 1 +| #define HAVE_GEOLOCATION 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_NCURSESW_NCURSES_H 1 +| #define HAVE_NCURSES_H 1 +| #define HAVE_LIBNSL 1 +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_ARPA_INET_H 1 +| #define HAVE_FCNTL_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_LIMITS_H 1 +| #define HAVE_LOCALE_H 1 +| #define HAVE_NETDB_H 1 +| #define HAVE_NETINET_IN_H 1 +| #define HAVE_STDDEF_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_SYS_SOCKET_H 1 +| #define HAVE_SYS_TIME_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_PTRDIFF_T 1 +| /* end confdefs.h. */ +| #include +| #ifdef HAVE_SYS_TYPES_H +| # include +| #endif +| #ifdef HAVE_SYS_STAT_H +| # include +| #endif +| #ifdef STDC_HEADERS +| # include +| # include +| #else +| # ifdef HAVE_STDLIB_H +| # include +| # endif +| #endif +| #ifdef HAVE_STRING_H +| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H +| # include +| # endif +| # include +| #endif +| #ifdef HAVE_STRINGS_H +| # include +| #endif +| #ifdef HAVE_INTTYPES_H +| # include +| #endif +| #ifdef HAVE_STDINT_H +| # include +| #endif +| #ifdef HAVE_UNISTD_H +| # include +| #endif +| enum { N = 64 / 2 - 1 }; +| int +| main () +| { +| static int test_array [1 - 2 * !((int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 1) +| < (int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 2))]; +| test_array [0] = 0; +| return test_array [0]; +| +| ; +| return 0; +| } +configure:7932: result: yes +configure:7943: checking for int8_t +configure:7943: gcc -c -pthread conftest.c >&5 +configure:7943: $? = 0 +configure:7943: gcc -c -pthread conftest.c >&5 +conftest.c: In function 'main': +conftest.c:85:12: error: size of array 'test_array' is negative + 85 | static int test_array [1 - 2 * !((int8_t) (((((int8_t) 1 << N) << N) - 1) * 2 + 1) + | ^~~~~~~~~~ +configure:7943: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| #define ENABLE_NLS 1 +| #define HAVE_GETTEXT 1 +| #define HAVE_DCGETTEXT 1 +| #define HAVE_LIBPTHREAD 1 +| #define HAVE_LIBGEOIP 1 +| #define HAVE_GEOLOCATION 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_NCURSESW_NCURSES_H 1 +| #define HAVE_NCURSES_H 1 +| #define HAVE_LIBNSL 1 +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_ARPA_INET_H 1 +| #define HAVE_FCNTL_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_LIMITS_H 1 +| #define HAVE_LOCALE_H 1 +| #define HAVE_NETDB_H 1 +| #define HAVE_NETINET_IN_H 1 +| #define HAVE_STDDEF_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_SYS_SOCKET_H 1 +| #define HAVE_SYS_TIME_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_PTRDIFF_T 1 +| /* end confdefs.h. */ +| #include +| #ifdef HAVE_SYS_TYPES_H +| # include +| #endif +| #ifdef HAVE_SYS_STAT_H +| # include +| #endif +| #ifdef STDC_HEADERS +| # include +| # include +| #else +| # ifdef HAVE_STDLIB_H +| # include +| # endif +| #endif +| #ifdef HAVE_STRING_H +| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H +| # include +| # endif +| # include +| #endif +| #ifdef HAVE_STRINGS_H +| # include +| #endif +| #ifdef HAVE_INTTYPES_H +| # include +| #endif +| #ifdef HAVE_STDINT_H +| # include +| #endif +| #ifdef HAVE_UNISTD_H +| # include +| #endif +| enum { N = 8 / 2 - 1 }; +| int +| main () +| { +| static int test_array [1 - 2 * !((int8_t) (((((int8_t) 1 << N) << N) - 1) * 2 + 1) +| < (int8_t) (((((int8_t) 1 << N) << N) - 1) * 2 + 2))]; +| test_array [0] = 0; +| return test_array [0]; +| +| ; +| return 0; +| } +configure:7943: result: yes +configure:7954: checking for off_t +configure:7954: gcc -c -pthread conftest.c >&5 +configure:7954: $? = 0 +configure:7954: gcc -c -pthread conftest.c >&5 +conftest.c: In function 'main': +conftest.c:84:20: error: expected expression before ')' token + 84 | if (sizeof ((off_t))) + | ^ +configure:7954: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| #define ENABLE_NLS 1 +| #define HAVE_GETTEXT 1 +| #define HAVE_DCGETTEXT 1 +| #define HAVE_LIBPTHREAD 1 +| #define HAVE_LIBGEOIP 1 +| #define HAVE_GEOLOCATION 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_NCURSESW_NCURSES_H 1 +| #define HAVE_NCURSES_H 1 +| #define HAVE_LIBNSL 1 +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_ARPA_INET_H 1 +| #define HAVE_FCNTL_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_LIMITS_H 1 +| #define HAVE_LOCALE_H 1 +| #define HAVE_NETDB_H 1 +| #define HAVE_NETINET_IN_H 1 +| #define HAVE_STDDEF_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_SYS_SOCKET_H 1 +| #define HAVE_SYS_TIME_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_PTRDIFF_T 1 +| /* end confdefs.h. */ +| #include +| #ifdef HAVE_SYS_TYPES_H +| # include +| #endif +| #ifdef HAVE_SYS_STAT_H +| # include +| #endif +| #ifdef STDC_HEADERS +| # include +| # include +| #else +| # ifdef HAVE_STDLIB_H +| # include +| # endif +| #endif +| #ifdef HAVE_STRING_H +| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H +| # include +| # endif +| # include +| #endif +| #ifdef HAVE_STRINGS_H +| # include +| #endif +| #ifdef HAVE_INTTYPES_H +| # include +| #endif +| #ifdef HAVE_STDINT_H +| # include +| #endif +| #ifdef HAVE_UNISTD_H +| # include +| #endif +| int +| main () +| { +| if (sizeof ((off_t))) +| return 0; +| ; +| return 0; +| } +configure:7954: result: yes +configure:7965: checking for size_t +configure:7965: gcc -c -pthread conftest.c >&5 +configure:7965: $? = 0 +configure:7965: gcc -c -pthread conftest.c >&5 +conftest.c: In function 'main': +conftest.c:84:21: error: expected expression before ')' token + 84 | if (sizeof ((size_t))) + | ^ +configure:7965: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| #define ENABLE_NLS 1 +| #define HAVE_GETTEXT 1 +| #define HAVE_DCGETTEXT 1 +| #define HAVE_LIBPTHREAD 1 +| #define HAVE_LIBGEOIP 1 +| #define HAVE_GEOLOCATION 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_NCURSESW_NCURSES_H 1 +| #define HAVE_NCURSES_H 1 +| #define HAVE_LIBNSL 1 +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_ARPA_INET_H 1 +| #define HAVE_FCNTL_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_LIMITS_H 1 +| #define HAVE_LOCALE_H 1 +| #define HAVE_NETDB_H 1 +| #define HAVE_NETINET_IN_H 1 +| #define HAVE_STDDEF_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_SYS_SOCKET_H 1 +| #define HAVE_SYS_TIME_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_PTRDIFF_T 1 +| /* end confdefs.h. */ +| #include +| #ifdef HAVE_SYS_TYPES_H +| # include +| #endif +| #ifdef HAVE_SYS_STAT_H +| # include +| #endif +| #ifdef STDC_HEADERS +| # include +| # include +| #else +| # ifdef HAVE_STDLIB_H +| # include +| # endif +| #endif +| #ifdef HAVE_STRING_H +| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H +| # include +| # endif +| # include +| #endif +| #ifdef HAVE_STRINGS_H +| # include +| #endif +| #ifdef HAVE_INTTYPES_H +| # include +| #endif +| #ifdef HAVE_STDINT_H +| # include +| #endif +| #ifdef HAVE_UNISTD_H +| # include +| #endif +| int +| main () +| { +| if (sizeof ((size_t))) +| return 0; +| ; +| return 0; +| } +configure:7965: result: yes +configure:7976: checking for uint32_t +configure:7976: gcc -c -pthread conftest.c >&5 +configure:7976: $? = 0 +configure:7976: result: yes +configure:7990: checking for uint64_t +configure:7990: gcc -c -pthread conftest.c >&5 +configure:7990: $? = 0 +configure:7990: result: yes +configure:8004: checking for uint8_t +configure:8004: gcc -c -pthread conftest.c >&5 +configure:8004: $? = 0 +configure:8004: result: yes +configure:8020: checking for _LARGEFILE_SOURCE value needed for large files +configure:8039: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8039: $? = 0 +configure:8067: result: no +configure:8088: checking for working memcmp +configure:8131: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8131: $? = 0 +configure:8131: ./conftest +configure:8131: $? = 0 +configure:8141: result: yes +configure:8150: checking whether time.h and sys/time.h may both be included +configure:8170: gcc -c -pthread conftest.c >&5 +configure:8170: $? = 0 +configure:8177: result: yes +configure:8191: checking for sys/time.h +configure:8191: result: yes +configure:8191: checking for unistd.h +configure:8191: result: yes +configure:8212: checking for alarm +configure:8212: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8212: $? = 0 +configure:8212: result: yes +configure:8225: checking for working mktime +configure:8427: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8427: $? = 0 +configure:8427: ./conftest +configure:8427: $? = 0 +configure:8437: result: yes +configure:8448: checking whether lstat correctly handles trailing slash +configure:8474: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8474: $? = 0 +configure:8474: ./conftest +configure:8474: $? = 0 +configure:8491: result: yes +configure:8510: checking whether stat accepts an empty string +configure:8530: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8530: $? = 0 +configure:8530: ./conftest +configure:8530: $? = 0 +configure:8540: result: no +configure:8558: checking for strftime +configure:8558: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:77:6: warning: conflicting types for built-in function 'strftime'; expected 'long unsigned int(char *, long unsigned int, const char *, const void *)' [-Wbuiltin-declaration-mismatch] + 77 | char strftime (); + | ^~~~~~~~ +conftest.c:65:1: note: 'strftime' is declared in header '' + 64 | # include + 65 | #else +configure:8558: $? = 0 +configure:8558: result: yes +configure:8611: checking for working strtod +configure:8652: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8652: $? = 0 +configure:8652: ./conftest +configure:8652: $? = 0 +configure:8662: result: yes +configure:8726: checking for floor +configure:8726: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:78:6: warning: conflicting types for built-in function 'floor'; expected 'double(double)' [-Wbuiltin-declaration-mismatch] + 78 | char floor (); + | ^~~~~ +conftest.c:66:1: note: 'floor' is declared in header '' + 65 | # include + 66 | #else +/usr/bin/ld: /tmp/ccTMARdc.o: in function `main': +conftest.c:(.text+0xe): undefined reference to `floor' +collect2: error: ld returned 1 exit status +configure:8726: $? = 1 +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "goaccess" +| #define PACKAGE_TARNAME "goaccess" +| #define PACKAGE_VERSION "1.3" +| #define PACKAGE_STRING "goaccess 1.3" +| #define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +| #define PACKAGE_URL "http://goaccess.io" +| #define PACKAGE "goaccess" +| #define VERSION "1.3" +| #define ENABLE_NLS 1 +| #define HAVE_GETTEXT 1 +| #define HAVE_DCGETTEXT 1 +| #define HAVE_LIBPTHREAD 1 +| #define HAVE_LIBGEOIP 1 +| #define HAVE_GEOLOCATION 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_LIBNCURSESW 1 +| #define HAVE_NCURSESW_NCURSES_H 1 +| #define HAVE_NCURSES_H 1 +| #define HAVE_LIBNSL 1 +| #define STDC_HEADERS 1 +| #define HAVE_SYS_TYPES_H 1 +| #define HAVE_SYS_STAT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_MEMORY_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_ARPA_INET_H 1 +| #define HAVE_FCNTL_H 1 +| #define HAVE_INTTYPES_H 1 +| #define HAVE_LIMITS_H 1 +| #define HAVE_LOCALE_H 1 +| #define HAVE_NETDB_H 1 +| #define HAVE_NETINET_IN_H 1 +| #define HAVE_STDDEF_H 1 +| #define HAVE_STDINT_H 1 +| #define HAVE_STDLIB_H 1 +| #define HAVE_STRING_H 1 +| #define HAVE_STRINGS_H 1 +| #define HAVE_SYS_SOCKET_H 1 +| #define HAVE_SYS_TIME_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_PTRDIFF_T 1 +| #define HAVE_FSEEKO 1 +| #define TIME_WITH_SYS_TIME 1 +| #define HAVE_SYS_TIME_H 1 +| #define HAVE_UNISTD_H 1 +| #define HAVE_ALARM 1 +| #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +| #define HAVE_STRFTIME 1 +| /* end confdefs.h. */ +| /* Define floor to an innocuous variant, in case declares floor. +| For example, HP-UX 11i declares gettimeofday. */ +| #define floor innocuous_floor +| +| /* System header to define __stub macros and hopefully few prototypes, +| which can conflict with char floor (); below. +| Prefer to if __STDC__ is defined, since +| exists even on freestanding compilers. */ +| +| #ifdef __STDC__ +| # include +| #else +| # include +| #endif +| +| #undef floor +| +| /* Override any GCC internal prototype to avoid an error. +| Use char because int might match the return type of a GCC +| builtin and then its argument prototype would still apply. */ +| #ifdef __cplusplus +| extern "C" +| #endif +| char floor (); +| /* The GNU C library defines this for functions which it implements +| to always fail with ENOSYS. Some functions are actually named +| something starting with __ and the normal name is an alias. */ +| #if defined __stub_floor || defined __stub___floor +| choke me +| #endif +| +| int +| main () +| { +| return floor (); +| ; +| return 0; +| } +configure:8726: result: no +configure:8737: checking for gethostbyaddr +configure:8737: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8737: $? = 0 +configure:8737: result: yes +configure:8748: checking for gethostbyname +configure:8748: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8748: $? = 0 +configure:8748: result: yes +configure:8759: checking for gettimeofday +configure:8759: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8759: $? = 0 +configure:8759: result: yes +configure:8770: checking for malloc +configure:8770: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:81:6: warning: conflicting types for built-in function 'malloc'; expected 'void *(long unsigned int)' [-Wbuiltin-declaration-mismatch] + 81 | char malloc (); + | ^~~~~~ +conftest.c:69:1: note: 'malloc' is declared in header '' + 68 | # include + 69 | #else +configure:8770: $? = 0 +configure:8770: result: yes +configure:8781: checking for memmove +configure:8781: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:82:6: warning: conflicting types for built-in function 'memmove'; expected 'void *(void *, const void *, long unsigned int)' [-Wbuiltin-declaration-mismatch] + 82 | char memmove (); + | ^~~~~~~ +conftest.c:70:1: note: 'memmove' is declared in header '' + 69 | # include + 70 | #else +configure:8781: $? = 0 +configure:8781: result: yes +configure:8792: checking for memset +configure:8792: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:83:6: warning: conflicting types for built-in function 'memset'; expected 'void *(void *, int, long unsigned int)' [-Wbuiltin-declaration-mismatch] + 83 | char memset (); + | ^~~~~~ +conftest.c:71:1: note: 'memset' is declared in header '' + 70 | # include + 71 | #else +configure:8792: $? = 0 +configure:8792: result: yes +configure:8803: checking for mkfifo +configure:8803: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8803: $? = 0 +configure:8803: result: yes +configure:8814: checking for realloc +configure:8814: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:85:6: warning: conflicting types for built-in function 'realloc'; expected 'void *(void *, long unsigned int)' [-Wbuiltin-declaration-mismatch] + 85 | char realloc (); + | ^~~~~~~ +conftest.c:73:1: note: 'realloc' is declared in header '' + 72 | # include + 73 | #else +configure:8814: $? = 0 +configure:8814: result: yes +configure:8825: checking for realpath +configure:8825: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8825: $? = 0 +configure:8825: result: yes +configure:8836: checking for regcomp +configure:8836: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8836: $? = 0 +configure:8836: result: yes +configure:8847: checking for select +configure:8847: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8847: $? = 0 +configure:8847: result: yes +configure:8858: checking for setlocale +configure:8858: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8858: $? = 0 +configure:8858: result: yes +configure:8869: checking for socket +configure:8869: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8869: $? = 0 +configure:8869: result: yes +configure:8880: checking for strcasecmp +configure:8880: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:91:6: warning: conflicting types for built-in function 'strcasecmp'; expected 'int(const char *, const char *)' [-Wbuiltin-declaration-mismatch] + 91 | char strcasecmp (); + | ^~~~~~~~~~ +configure:8880: $? = 0 +configure:8880: result: yes +configure:8891: checking for strchr +configure:8891: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:92:6: warning: conflicting types for built-in function 'strchr'; expected 'char *(const char *, int)' [-Wbuiltin-declaration-mismatch] + 92 | char strchr (); + | ^~~~~~ +conftest.c:80:1: note: 'strchr' is declared in header '' + 79 | # include + 80 | #else +configure:8891: $? = 0 +configure:8891: result: yes +configure:8902: checking for strcspn +configure:8902: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:93:6: warning: conflicting types for built-in function 'strcspn'; expected 'long unsigned int(const char *, const char *)' [-Wbuiltin-declaration-mismatch] + 93 | char strcspn (); + | ^~~~~~~ +conftest.c:81:1: note: 'strcspn' is declared in header '' + 80 | # include + 81 | #else +configure:8902: $? = 0 +configure:8902: result: yes +configure:8913: checking for strdup +configure:8913: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:94:6: warning: conflicting types for built-in function 'strdup'; expected 'char *(const char *)' [-Wbuiltin-declaration-mismatch] + 94 | char strdup (); + | ^~~~~~ +configure:8913: $? = 0 +configure:8913: result: yes +configure:8924: checking for strerror +configure:8924: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8924: $? = 0 +configure:8924: result: yes +configure:8935: checking for strncasecmp +configure:8935: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:96:6: warning: conflicting types for built-in function 'strncasecmp'; expected 'int(const char *, const char *, long unsigned int)' [-Wbuiltin-declaration-mismatch] + 96 | char strncasecmp (); + | ^~~~~~~~~~~ +configure:8935: $? = 0 +configure:8935: result: yes +configure:8946: checking for strpbrk +configure:8946: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:97:6: warning: conflicting types for built-in function 'strpbrk'; expected 'char *(const char *, const char *)' [-Wbuiltin-declaration-mismatch] + 97 | char strpbrk (); + | ^~~~~~~ +conftest.c:85:1: note: 'strpbrk' is declared in header '' + 84 | # include + 85 | #else +configure:8946: $? = 0 +configure:8946: result: yes +configure:8957: checking for strrchr +configure:8957: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:98:6: warning: conflicting types for built-in function 'strrchr'; expected 'char *(const char *, int)' [-Wbuiltin-declaration-mismatch] + 98 | char strrchr (); + | ^~~~~~~ +conftest.c:86:1: note: 'strrchr' is declared in header '' + 85 | # include + 86 | #else +configure:8957: $? = 0 +configure:8957: result: yes +configure:8968: checking for strspn +configure:8968: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:99:6: warning: conflicting types for built-in function 'strspn'; expected 'long unsigned int(const char *, const char *)' [-Wbuiltin-declaration-mismatch] + 99 | char strspn (); + | ^~~~~~ +conftest.c:87:1: note: 'strspn' is declared in header '' + 86 | # include + 87 | #else +configure:8968: $? = 0 +configure:8968: result: yes +configure:8979: checking for strstr +configure:8979: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +conftest.c:100:6: warning: conflicting types for built-in function 'strstr'; expected 'char *(const char *, const char *)' [-Wbuiltin-declaration-mismatch] + 100 | char strstr (); + | ^~~~~~ +conftest.c:88:1: note: 'strstr' is declared in header '' + 87 | # include + 88 | #else +configure:8979: $? = 0 +configure:8979: result: yes +configure:8990: checking for strtol +configure:8990: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:8990: $? = 0 +configure:8990: result: yes +configure:9001: checking for strtoull +configure:9001: gcc -o conftest -pthread conftest.c -lnsl -lncursesw -lGeoIP -lpthread >&5 +configure:9001: $? = 0 +configure:9001: result: yes +configure:9159: creating ./config.status + +## ---------------------- ## +## Running config.status. ## +## ---------------------- ## + +This file was extended by goaccess config.status 1.3, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = + CONFIG_HEADERS = + CONFIG_LINKS = + CONFIG_COMMANDS = + $ ./config.status + +on ubuntu + +config.status:953: creating Makefile +config.status:953: creating po/Makefile.in +config.status:953: creating src/config.h +config.status:1182: executing depfiles commands +config.status:1182: executing po-directories commands + +## ---------------- ## +## Cache variables. ## +## ---------------- ## + +ac_cv_build=x86_64-unknown-linux-gnu +ac_cv_c_compiler_gnu=yes +ac_cv_c_const=yes +ac_cv_c_int64_t=yes +ac_cv_c_int8_t=yes +ac_cv_c_uint32_t=yes +ac_cv_c_uint64_t=yes +ac_cv_c_uint8_t=yes +ac_cv_env_CC_set= +ac_cv_env_CC_value= +ac_cv_env_CFLAGS_set= +ac_cv_env_CFLAGS_value= +ac_cv_env_CPPFLAGS_set= +ac_cv_env_CPPFLAGS_value= +ac_cv_env_CPP_set= +ac_cv_env_CPP_value= +ac_cv_env_LDFLAGS_set= +ac_cv_env_LDFLAGS_value= +ac_cv_env_LIBS_set= +ac_cv_env_LIBS_value= +ac_cv_env_build_alias_set= +ac_cv_env_build_alias_value= +ac_cv_env_host_alias_set= +ac_cv_env_host_alias_value= +ac_cv_env_target_alias_set= +ac_cv_env_target_alias_value= +ac_cv_func_alarm=yes +ac_cv_func_floor=no +ac_cv_func_gethostbyaddr=yes +ac_cv_func_gethostbyname=yes +ac_cv_func_gettimeofday=yes +ac_cv_func_lstat_dereferences_slashed_symlink=yes +ac_cv_func_malloc=yes +ac_cv_func_memcmp_working=yes +ac_cv_func_memmove=yes +ac_cv_func_memset=yes +ac_cv_func_mkfifo=yes +ac_cv_func_realloc=yes +ac_cv_func_realpath=yes +ac_cv_func_regcomp=yes +ac_cv_func_select=yes +ac_cv_func_setlocale=yes +ac_cv_func_socket=yes +ac_cv_func_stat_empty_string_bug=no +ac_cv_func_strcasecmp=yes +ac_cv_func_strchr=yes +ac_cv_func_strcspn=yes +ac_cv_func_strdup=yes +ac_cv_func_strerror=yes +ac_cv_func_strftime=yes +ac_cv_func_strncasecmp=yes +ac_cv_func_strpbrk=yes +ac_cv_func_strrchr=yes +ac_cv_func_strspn=yes +ac_cv_func_strstr=yes +ac_cv_func_strtod=yes +ac_cv_func_strtol=yes +ac_cv_func_strtoull=yes +ac_cv_func_working_mktime=yes +ac_cv_header_arpa_inet_h=yes +ac_cv_header_fcntl_h=yes +ac_cv_header_inttypes_h=yes +ac_cv_header_limits_h=yes +ac_cv_header_locale_h=yes +ac_cv_header_memory_h=yes +ac_cv_header_ncurses_h=yes +ac_cv_header_ncursesw_ncurses_h=yes +ac_cv_header_netdb_h=yes +ac_cv_header_netinet_in_h=yes +ac_cv_header_stdc=yes +ac_cv_header_stddef_h=yes +ac_cv_header_stdint_h=yes +ac_cv_header_stdlib_h=yes +ac_cv_header_string_h=yes +ac_cv_header_strings_h=yes +ac_cv_header_sys_socket_h=yes +ac_cv_header_sys_stat_h=yes +ac_cv_header_sys_time_h=yes +ac_cv_header_sys_types_h=yes +ac_cv_header_time=yes +ac_cv_header_unistd_h=yes +ac_cv_host=x86_64-unknown-linux-gnu +ac_cv_lib_GeoIP_GeoIP_new=yes +ac_cv_lib_intl_libintl_dgettext=no +ac_cv_lib_ncursesw___mvaddwstr=yes +ac_cv_lib_nsl_gethostbyname=yes +ac_cv_lib_pthread_pthread_create=yes +ac_cv_lib_socket_socket=no +ac_cv_objext=o +ac_cv_path_EGREP='/usr/bin/grep -E' +ac_cv_path_GMSGFMT=: +ac_cv_path_GREP=/usr/bin/grep +ac_cv_path_MSGFMT=: +ac_cv_path_MSGMERGE=: +ac_cv_path_XGETTEXT=: +ac_cv_path_install='/usr/bin/install -c' +ac_cv_path_mkdir=/usr/bin/mkdir +ac_cv_prog_AWK=mawk +ac_cv_prog_CPP='gcc -E' +ac_cv_prog_SED_CHECK=yes +ac_cv_prog_TR_CHECK=yes +ac_cv_prog_ac_ct_CC=gcc +ac_cv_prog_cc_c89= +ac_cv_prog_cc_g=yes +ac_cv_prog_cc_gcc_c_o=yes +ac_cv_prog_make_make_set=yes +ac_cv_search_tputs='none required' +ac_cv_struct_tm=time.h +ac_cv_sys_largefile_source=no +ac_cv_type_off_t=yes +ac_cv_type_ptrdiff_t=yes +ac_cv_type_size_t=yes +acl_cv_hardcode_direct=no +acl_cv_hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' +acl_cv_hardcode_libdir_separator= +acl_cv_hardcode_minus_L=no +acl_cv_libext=a +acl_cv_libname_spec='lib$name' +acl_cv_library_names_spec='$libname$shrext' +acl_cv_path_LD=/usr/bin/ld +acl_cv_prog_gnu_ld=yes +acl_cv_rpath=done +acl_cv_shlibext=so +acl_cv_wl=-Wl, +am_cv_CC_dependencies_compiler_type=gcc3 +gt_cv_func_CFLocaleCopyCurrent=no +gt_cv_func_CFPreferencesCopyAppValue=no +gt_cv_func_gnugettext1_libc=yes + +## ----------------- ## +## Output variables. ## +## ----------------- ## + +ACLOCAL='${SHELL} /home/djq/goaccess-1.3/missing --run aclocal-1.11' +AMDEPBACKSLASH='\' +AMDEP_FALSE='#' +AMDEP_TRUE='' +AMTAR='$${TAR-tar}' +AUTOCONF='${SHELL} /home/djq/goaccess-1.3/missing --run autoconf' +AUTOHEADER='${SHELL} /home/djq/goaccess-1.3/missing --run autoheader' +AUTOMAKE='${SHELL} /home/djq/goaccess-1.3/missing --run automake-1.11' +AWK='mawk' +CC='gcc' +CCDEPMODE='depmode=gcc3' +CFLAGS=' -pthread' +CPP='gcc -E' +CPPFLAGS='' +CYGPATH_W='echo' +DEBUG_FALSE='' +DEBUG_TRUE='#' +DEFS='-DHAVE_CONFIG_H' +DEPDIR='.deps' +ECHO_C='' +ECHO_N='-n' +ECHO_T='' +EGREP='/usr/bin/grep -E' +EXEEXT='' +GEOIP_LEGACY_FALSE='#' +GEOIP_LEGACY_TRUE='' +GEOIP_MMDB_FALSE='' +GEOIP_MMDB_TRUE='#' +GETTEXT_MACRO_VERSION='0.18' +GMSGFMT=':' +GMSGFMT_015=':' +GREP='/usr/bin/grep' +HAS_SEDTR_FALSE='#' +HAS_SEDTR_TRUE='' +INSTALL_DATA='${INSTALL} -m 644' +INSTALL_PROGRAM='${INSTALL}' +INSTALL_SCRIPT='${INSTALL}' +INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' +INTLLIBS='' +INTL_MACOSX_LIBS='' +LDFLAGS='' +LIBICONV='-liconv' +LIBINTL='' +LIBOBJS='' +LIBS='-lnsl -lncursesw -lGeoIP -lpthread ' +LTLIBICONV='-liconv' +LTLIBINTL='' +LTLIBOBJS='' +MAKEINFO='${SHELL} /home/djq/goaccess-1.3/missing --run makeinfo' +MKDIR_P='/usr/bin/mkdir -p' +MSGFMT=':' +MSGFMT_015=':' +MSGMERGE=':' +OBJEXT='o' +PACKAGE='goaccess' +PACKAGE_BUGREPORT='goaccess@prosoftcorp.com' +PACKAGE_NAME='goaccess' +PACKAGE_STRING='goaccess 1.3' +PACKAGE_TARNAME='goaccess' +PACKAGE_URL='http://goaccess.io' +PACKAGE_VERSION='1.3' +PATH_SEPARATOR=':' +POSUB='po' +POW_LIB='' +SED_CHECK='yes' +SET_MAKE='' +SHELL='/bin/bash' +STRIP='' +TCB_FALSE='' +TCB_TRUE='#' +TR_CHECK='yes' +USE_NLS='yes' +VERSION='1.3' +WITH_RDYNAMIC_FALSE='#' +WITH_RDYNAMIC_TRUE='' +XGETTEXT=':' +XGETTEXT_015=':' +XGETTEXT_EXTRA_OPTIONS='' +ac_ct_CC='gcc' +am__EXEEXT_FALSE='' +am__EXEEXT_TRUE='#' +am__fastdepCC_FALSE='#' +am__fastdepCC_TRUE='' +am__include='include' +am__isrc='' +am__leading_dot='.' +am__nodep='_no' +am__quote='' +am__tar='$${TAR-tar} chof - "$$tardir"' +am__untar='$${TAR-tar} xf -' +bindir='${exec_prefix}/bin' +build='x86_64-unknown-linux-gnu' +build_alias='' +build_cpu='x86_64' +build_os='linux-gnu' +build_vendor='unknown' +datadir='${datarootdir}' +datarootdir='${prefix}/share' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +dvidir='${docdir}' +exec_prefix='${prefix}' +host='x86_64-unknown-linux-gnu' +host_alias='' +host_cpu='x86_64' +host_os='linux-gnu' +host_vendor='unknown' +htmldir='${docdir}' +includedir='${prefix}/include' +infodir='${datarootdir}/info' +install_sh='${SHELL} /home/djq/goaccess-1.3/install-sh' +libdir='${exec_prefix}/lib' +libexecdir='${exec_prefix}/libexec' +localedir='${datarootdir}/locale' +localstatedir='${prefix}/var' +mandir='${datarootdir}/man' +mkdir_p='/usr/bin/mkdir -p' +oldincludedir='/usr/include' +pdfdir='${docdir}' +prefix='/usr/local' +program_transform_name='s,x,x,' +psdir='${docdir}' +sbindir='${exec_prefix}/sbin' +sharedstatedir='${prefix}/com' +sysconfdir='${prefix}/etc' +target_alias='' + +## ----------- ## +## confdefs.h. ## +## ----------- ## + +/* confdefs.h */ +#define PACKAGE_NAME "goaccess" +#define PACKAGE_TARNAME "goaccess" +#define PACKAGE_VERSION "1.3" +#define PACKAGE_STRING "goaccess 1.3" +#define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" +#define PACKAGE_URL "http://goaccess.io" +#define PACKAGE "goaccess" +#define VERSION "1.3" +#define ENABLE_NLS 1 +#define HAVE_GETTEXT 1 +#define HAVE_DCGETTEXT 1 +#define HAVE_LIBPTHREAD 1 +#define HAVE_LIBGEOIP 1 +#define HAVE_GEOLOCATION 1 +#define HAVE_LIBNCURSESW 1 +#define HAVE_LIBNCURSESW 1 +#define HAVE_NCURSESW_NCURSES_H 1 +#define HAVE_NCURSES_H 1 +#define HAVE_LIBNSL 1 +#define STDC_HEADERS 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRING_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_ARPA_INET_H 1 +#define HAVE_FCNTL_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_LOCALE_H 1 +#define HAVE_NETDB_H 1 +#define HAVE_NETINET_IN_H 1 +#define HAVE_STDDEF_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_SYS_SOCKET_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_PTRDIFF_T 1 +#define HAVE_FSEEKO 1 +#define TIME_WITH_SYS_TIME 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_ALARM 1 +#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +#define HAVE_STRFTIME 1 +#define HAVE_GETHOSTBYADDR 1 +#define HAVE_GETHOSTBYNAME 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_MALLOC 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMSET 1 +#define HAVE_MKFIFO 1 +#define HAVE_REALLOC 1 +#define HAVE_REALPATH 1 +#define HAVE_REGCOMP 1 +#define HAVE_SELECT 1 +#define HAVE_SETLOCALE 1 +#define HAVE_SOCKET 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRCHR 1 +#define HAVE_STRCSPN 1 +#define HAVE_STRDUP 1 +#define HAVE_STRERROR 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_STRPBRK 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSPN 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOULL 1 + +configure: exit 0 diff --git a/src/goaccess++/config.rpath b/src/goaccess++/config.rpath new file mode 100644 index 0000000..17298f2 --- /dev/null +++ b/src/goaccess++/config.rpath @@ -0,0 +1,672 @@ +#! /bin/sh +# Output a system dependent set of variables, describing how to set the +# run time search path of shared libraries in an executable. +# +# Copyright 1996-2010 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit , 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld +# should be set by the caller. +# +# The set of defined variables is at the end of this script. + +# Known limitations: +# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer +# than 256 bytes, otherwise the compiler driver will dump core. The only +# known workaround is to choose shorter directory names for the build +# directory and/or the installation directory. + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +shrext=.so + +host="$1" +host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's _LT_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + darwin*) + case $cc_basename in + xlc*) + wl='-Wl,' + ;; + esac + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + newsos6) + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + ecc*) + wl='-Wl,' + ;; + icc* | ifort*) + wl='-Wl,' + ;; + lf95*) + wl='-Wl,' + ;; + pgcc | pgf77 | pgf90) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + wl='-Wl,' + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's _LT_LINKER_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + case "$host_os" in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we cannot use + # them. + ld_shlibs=no + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32* | cegcc*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi +else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if test "$GCC" = yes ; then + : + else + case $cc_basename in + xlc*) + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd1*) + ld_shlibs=no + ;; + freebsd2.2*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + freebsd2*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. +# Unlike libtool.m4, here we don't care about _all_ names of the library, but +# only about the one the linker finds when passed -lNAME. This is the last +# element of library_names_spec in libtool.m4, or possibly two of them if the +# linker has special search rules. +library_names_spec= # the last element of library_names_spec in libtool.m4 +libname_spec='lib$name' +case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix[4-9]*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + library_names_spec='$libname.a' + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32* | cegcc*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd1*) + ;; + freebsd* | dragonfly*) + case "$host_os" in + freebsd[123]*) + library_names_spec='$libname$shrext$versuffix' ;; + *) + library_names_spec='$libname$shrext' ;; + esac + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux* | k*bsd*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + nto-qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; +esac + +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' +escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` +shlibext=`echo "$shrext" | sed -e 's,^\.,,'` +escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' </dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by goaccess $as_me 1.3, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +# Files that config.status was made for. +config_files=" Makefile po/Makefile.in" +config_headers=" src/config.h" +config_commands=" depfiles po-directories" + +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +goaccess home page: ." + +ac_cs_config="'--enable-utf8' '--enable-geoip=legacy'" +ac_cs_version="\ +goaccess config.status 1.3 +configured by ./configure, generated by GNU Autoconf 2.69, + with options \"$ac_cs_config\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='/home/djq/goaccess-1.3' +srcdir='.' +INSTALL='/usr/bin/install -c' +MKDIR_P='/usr/bin/mkdir -p' +AWK='mawk' +test -n "$AWK" || AWK=awk +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +if $ac_cs_recheck; then + set X /bin/bash './configure' '--enable-utf8' '--enable-geoip=legacy' $ac_configure_extra_args --no-create --no-recursion + shift + $as_echo "running CONFIG_SHELL=/bin/bash $*" >&6 + CONFIG_SHELL='/bin/bash' + export CONFIG_SHELL + exec "$@" +fi + +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +# +# INIT-COMMANDS +# +AMDEP_TRUE="" ac_aux_dir="." +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''=""' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="%UNSET%" + + + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +cat >>"$ac_tmp/subs1.awk" <<\_ACAWK && +S["am__EXEEXT_FALSE"]="" +S["am__EXEEXT_TRUE"]="#" +S["LTLIBOBJS"]="" +S["POW_LIB"]="" +S["LIBOBJS"]="" +S["HAS_SEDTR_FALSE"]="#" +S["HAS_SEDTR_TRUE"]="" +S["TR_CHECK"]="yes" +S["SED_CHECK"]="yes" +S["TCB_FALSE"]="" +S["TCB_TRUE"]="#" +S["GEOIP_MMDB_FALSE"]="" +S["GEOIP_MMDB_TRUE"]="#" +S["GEOIP_LEGACY_FALSE"]="#" +S["GEOIP_LEGACY_TRUE"]="" +S["WITH_RDYNAMIC_FALSE"]="#" +S["WITH_RDYNAMIC_TRUE"]="" +S["DEBUG_FALSE"]="" +S["DEBUG_TRUE"]="#" +S["POSUB"]="po" +S["LTLIBINTL"]="" +S["LIBINTL"]="" +S["INTLLIBS"]="" +S["LTLIBICONV"]="-liconv" +S["LIBICONV"]="-liconv" +S["INTL_MACOSX_LIBS"]="" +S["EGREP"]="/usr/bin/grep -E" +S["GREP"]="/usr/bin/grep" +S["CPP"]="gcc -E" +S["host_os"]="linux-gnu" +S["host_vendor"]="unknown" +S["host_cpu"]="x86_64" +S["host"]="x86_64-unknown-linux-gnu" +S["build_os"]="linux-gnu" +S["build_vendor"]="unknown" +S["build_cpu"]="x86_64" +S["build"]="x86_64-unknown-linux-gnu" +S["XGETTEXT_EXTRA_OPTIONS"]="" +S["MSGMERGE"]=":" +S["XGETTEXT_015"]=":" +S["XGETTEXT"]=":" +S["GMSGFMT_015"]=":" +S["MSGFMT_015"]=":" +S["GMSGFMT"]=":" +S["MSGFMT"]=":" +S["GETTEXT_MACRO_VERSION"]="0.18" +S["USE_NLS"]="yes" +S["am__fastdepCC_FALSE"]="#" +S["am__fastdepCC_TRUE"]="" +S["CCDEPMODE"]="depmode=gcc3" +S["am__nodep"]="_no" +S["AMDEPBACKSLASH"]="\\" +S["AMDEP_FALSE"]="#" +S["AMDEP_TRUE"]="" +S["am__quote"]="" +S["am__include"]="include" +S["DEPDIR"]=".deps" +S["OBJEXT"]="o" +S["EXEEXT"]="" +S["ac_ct_CC"]="gcc" +S["CPPFLAGS"]="" +S["LDFLAGS"]="" +S["CFLAGS"]=" -pthread" +S["CC"]="gcc" +S["am__untar"]="$${TAR-tar} xf -" +S["am__tar"]="$${TAR-tar} chof - \"$$tardir\"" +S["AMTAR"]="$${TAR-tar}" +S["am__leading_dot"]="." +S["SET_MAKE"]="" +S["AWK"]="mawk" +S["mkdir_p"]="/usr/bin/mkdir -p" +S["MKDIR_P"]="/usr/bin/mkdir -p" +S["INSTALL_STRIP_PROGRAM"]="$(install_sh) -c -s" +S["STRIP"]="" +S["install_sh"]="${SHELL} /home/djq/goaccess-1.3/install-sh" +S["MAKEINFO"]="${SHELL} /home/djq/goaccess-1.3/missing --run makeinfo" +S["AUTOHEADER"]="${SHELL} /home/djq/goaccess-1.3/missing --run autoheader" +S["AUTOMAKE"]="${SHELL} /home/djq/goaccess-1.3/missing --run automake-1.11" +S["AUTOCONF"]="${SHELL} /home/djq/goaccess-1.3/missing --run autoconf" +S["ACLOCAL"]="${SHELL} /home/djq/goaccess-1.3/missing --run aclocal-1.11" +S["VERSION"]="1.3" +S["PACKAGE"]="goaccess" +S["CYGPATH_W"]="echo" +S["am__isrc"]="" +S["INSTALL_DATA"]="${INSTALL} -m 644" +S["INSTALL_SCRIPT"]="${INSTALL}" +S["INSTALL_PROGRAM"]="${INSTALL}" +S["target_alias"]="" +S["host_alias"]="" +S["build_alias"]="" +S["LIBS"]="-lnsl -lncursesw -lGeoIP -lpthread " +S["ECHO_T"]="" +S["ECHO_N"]="-n" +S["ECHO_C"]="" +S["DEFS"]="-DHAVE_CONFIG_H" +S["mandir"]="${datarootdir}/man" +S["localedir"]="${datarootdir}/locale" +S["libdir"]="${exec_prefix}/lib" +S["psdir"]="${docdir}" +S["pdfdir"]="${docdir}" +S["dvidir"]="${docdir}" +S["htmldir"]="${docdir}" +S["infodir"]="${datarootdir}/info" +S["docdir"]="${datarootdir}/doc/${PACKAGE_TARNAME}" +S["oldincludedir"]="/usr/include" +S["includedir"]="${prefix}/include" +S["localstatedir"]="${prefix}/var" +S["sharedstatedir"]="${prefix}/com" +S["sysconfdir"]="${prefix}/etc" +S["datadir"]="${datarootdir}" +S["datarootdir"]="${prefix}/share" +S["libexecdir"]="${exec_prefix}/libexec" +S["sbindir"]="${exec_prefix}/sbin" +S["bindir"]="${exec_prefix}/bin" +S["program_transform_name"]="s,x,x," +S["prefix"]="/usr/local" +S["exec_prefix"]="${prefix}" +S["PACKAGE_URL"]="http://goaccess.io" +S["PACKAGE_BUGREPORT"]="goaccess@prosoftcorp.com" +S["PACKAGE_STRING"]="goaccess 1.3" +S["PACKAGE_VERSION"]="1.3" +S["PACKAGE_TARNAME"]="goaccess" +S["PACKAGE_NAME"]="goaccess" +S["PATH_SEPARATOR"]=":" +S["SHELL"]="/bin/bash" +_ACAWK +cat >>"$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +D["PACKAGE_NAME"]=" \"goaccess\"" +D["PACKAGE_TARNAME"]=" \"goaccess\"" +D["PACKAGE_VERSION"]=" \"1.3\"" +D["PACKAGE_STRING"]=" \"goaccess 1.3\"" +D["PACKAGE_BUGREPORT"]=" \"goaccess@prosoftcorp.com\"" +D["PACKAGE_URL"]=" \"http://goaccess.io\"" +D["PACKAGE"]=" \"goaccess\"" +D["VERSION"]=" \"1.3\"" +D["ENABLE_NLS"]=" 1" +D["HAVE_GETTEXT"]=" 1" +D["HAVE_DCGETTEXT"]=" 1" +D["HAVE_LIBPTHREAD"]=" 1" +D["HAVE_LIBGEOIP"]=" 1" +D["HAVE_GEOLOCATION"]=" 1" +D["HAVE_LIBNCURSESW"]=" 1" +D["HAVE_LIBNCURSESW"]=" 1" +D["HAVE_NCURSESW_NCURSES_H"]=" 1" +D["HAVE_NCURSES_H"]=" 1" +D["HAVE_LIBNSL"]=" 1" +D["STDC_HEADERS"]=" 1" +D["HAVE_SYS_TYPES_H"]=" 1" +D["HAVE_SYS_STAT_H"]=" 1" +D["HAVE_STDLIB_H"]=" 1" +D["HAVE_STRING_H"]=" 1" +D["HAVE_MEMORY_H"]=" 1" +D["HAVE_STRINGS_H"]=" 1" +D["HAVE_INTTYPES_H"]=" 1" +D["HAVE_STDINT_H"]=" 1" +D["HAVE_UNISTD_H"]=" 1" +D["HAVE_ARPA_INET_H"]=" 1" +D["HAVE_FCNTL_H"]=" 1" +D["HAVE_INTTYPES_H"]=" 1" +D["HAVE_LIMITS_H"]=" 1" +D["HAVE_LOCALE_H"]=" 1" +D["HAVE_NETDB_H"]=" 1" +D["HAVE_NETINET_IN_H"]=" 1" +D["HAVE_STDDEF_H"]=" 1" +D["HAVE_STDINT_H"]=" 1" +D["HAVE_STDLIB_H"]=" 1" +D["HAVE_STRING_H"]=" 1" +D["HAVE_STRINGS_H"]=" 1" +D["HAVE_SYS_SOCKET_H"]=" 1" +D["HAVE_SYS_TIME_H"]=" 1" +D["HAVE_UNISTD_H"]=" 1" +D["HAVE_PTRDIFF_T"]=" 1" +D["HAVE_FSEEKO"]=" 1" +D["TIME_WITH_SYS_TIME"]=" 1" +D["HAVE_SYS_TIME_H"]=" 1" +D["HAVE_UNISTD_H"]=" 1" +D["HAVE_ALARM"]=" 1" +D["LSTAT_FOLLOWS_SLASHED_SYMLINK"]=" 1" +D["HAVE_STRFTIME"]=" 1" +D["HAVE_GETHOSTBYADDR"]=" 1" +D["HAVE_GETHOSTBYNAME"]=" 1" +D["HAVE_GETTIMEOFDAY"]=" 1" +D["HAVE_MALLOC"]=" 1" +D["HAVE_MEMMOVE"]=" 1" +D["HAVE_MEMSET"]=" 1" +D["HAVE_MKFIFO"]=" 1" +D["HAVE_REALLOC"]=" 1" +D["HAVE_REALPATH"]=" 1" +D["HAVE_REGCOMP"]=" 1" +D["HAVE_SELECT"]=" 1" +D["HAVE_SETLOCALE"]=" 1" +D["HAVE_SOCKET"]=" 1" +D["HAVE_STRCASECMP"]=" 1" +D["HAVE_STRCHR"]=" 1" +D["HAVE_STRCSPN"]=" 1" +D["HAVE_STRDUP"]=" 1" +D["HAVE_STRERROR"]=" 1" +D["HAVE_STRNCASECMP"]=" 1" +D["HAVE_STRPBRK"]=" 1" +D["HAVE_STRRCHR"]=" 1" +D["HAVE_STRSPN"]=" 1" +D["HAVE_STRSTR"]=" 1" +D["HAVE_STRTOL"]=" 1" +D["HAVE_STRTOULL"]=" 1" + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+[_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ][_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*([\t (]|$)/ { + line = $ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + ac_datarootdir_hack=' + s&@datadir@&${datarootdir}&g + s&@docdir@&${datarootdir}/doc/${PACKAGE_TARNAME}&g + s&@infodir@&${datarootdir}/info&g + s&@localedir@&${datarootdir}/locale&g + s&@mandir@&${datarootdir}/man&g + s&\${datarootdir}&${prefix}/share&g' ;; +esac +ac_sed_extra="/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +} + +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "po-directories":C) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + + esac +done # for ac_tag + + +as_fn_exit 0 diff --git a/src/goaccess++/config.sub b/src/goaccess++/config.sub new file mode 100644 index 0000000..6205f84 --- /dev/null +++ b/src/goaccess++/config.sub @@ -0,0 +1,1782 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. + +timestamp='2012-04-18' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to . Submit a context +# diff and a properly formatted GNU ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | be32 | be64 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | epiphany \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 \ + | ns16k | ns32k \ + | open8 \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze) + basic_machine=microblaze-xilinx + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i386-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/src/goaccess++/config/browsers.list b/src/goaccess++/config/browsers.list new file mode 100644 index 0000000..267fa9e --- /dev/null +++ b/src/goaccess++/config/browsers.list @@ -0,0 +1,102 @@ +# List of browsers and their categories +# e.g., WORD delimited by tab(s) TYPE +# +# **IMPORTANT NOTE**: +# --------------------- +# The SIZE of the list is proportional to the run time. +# Thus, the longer the list, the more time GoAccess will take to parse it. +# +# Also, you should note that the higher the browser/item is on the list, the +# faster the parsing will be. +# +# The list needs to be specified using --browsers-file=. This file is not +# parsed by default. +# +# The items below are sample crawlers, adjust as needed. + +Chef Client Crawlers +Abonti Crawlers +SISTRIX Crawlers +DotBot Crawlers +Speedy Spider Crawlers +Sosospider Crawlers +BPImageWalker Crawlers +DoCoMo Crawlers +GSLFbot Crawlers +YodaoBot Crawlers +AddThis Crawlers +Purebot Crawlers +CCBot Crawlers +findlinks Crawlers +ichiro Crawlers +Linguee Bot Crawlers +Gigabot Crawlers +BacklinkCrawler Crawlers +distilator Crawlers +Aboundex Crawlers +UnwindFetchor Crawlers +SBIder Crawlers +TestNutch Crawlers +DomainCrawler Crawlers +NextGenSearchBot Crawlers +SEOENGWorldBot Crawlers +Cityreview Crawlers +PagePeeker Crawlers +JS-Kit Crawlers +ScreenerBot Crawlers +ShowyouBot Crawlers +SolomonoBot Crawlers +Domnutch Crawlers +MaxPoint Crawlers +NCBot Crawlers +TosCrawler Crawlers +Updownerbot Crawlers +OpenWebSpider Crawlers +WordPress Crawlers +PEAR Crawlers +ZumBot Crawlers +YisouSpider Crawlers +W3C Crawlers +vcheck Crawlers +PercolateCrawler Crawlers +NING Crawlers +gvfs Crawlers +CatchBot Crawlers +Combine Crawlers +A6-Indexer Crawlers +Altresium Crawlers +Comodo Crawlers +crawler4j Crawlers +Cricket Crawlers +EC2LinkFinder Crawlers +envolk Crawlers +GeoHasher Crawlers +HTMLParser Crawlers +MLBot Crawlers +Jaxified Crawlers +LinkWalker Crawlers +nutch Crawlers +PostRank Crawlers +keybase-proofs Crawlers +CommonCrawler Crawlers +X-CAD-SE Crawlers +Safeassign Crawlers +Nmap Crawlers +sqlmap Crawlers +Jorgee Crawlers +PxBroker Crawlers +Seekport Crawlers +adscanner Crawlers +AfD-Verbotsverfahren_JETZT! Crawlers + +Vienna Feeds +Windows-RSS-Platform Feeds +newsbeuter Feeds +Wrangler Feeds +Fever Feeds +Tiny Feeds +FreshRSS Feeds +KrISS Feeds +SimplePie Feeds +Feedsubs Feeds +UniversalFeedParser Feeds diff --git a/src/goaccess++/config/goaccess.conf b/src/goaccess++/config/goaccess.conf new file mode 100644 index 0000000..e0ebe34 --- /dev/null +++ b/src/goaccess++/config/goaccess.conf @@ -0,0 +1,766 @@ +###################################### +# Time Format Options (required) +###################################### +# +# The hour (24-hour clock) [00,23]; leading zeros are permitted but not required. +# The minute [00,59]; leading zeros are permitted but not required. +# The seconds [00,60]; leading zeros are permitted but not required. +# See `man strftime` for more details +# +# The following time format works with any of the +# Apache/NGINX's log formats below. +# +#time-format %H:%M:%S +# +# Google Cloud Storage or +# The time in microseconds since the Unix epoch. +# +#time-format %f + +# Squid native log format +# +#time-format %s + +###################################### +# Date Format Options (required) +###################################### +# +# The date-format variable followed by a space, specifies +# the log format date containing any combination of regular +# characters and special format specifiers. They all begin with a +# percentage (%) sign. See `man strftime` +# +# The following date format works with any of the +# Apache/NGINX's log formats below. +# +#date-format %d/%b/%Y +# +# AWS | Amazon CloudFront (Download Distribution) +# AWS | Elastic Load Balancing +# W3C (IIS) +# +#date-format %Y-%m-%d +# +# Google Cloud Storage or +# The time in microseconds since the Unix epoch. +# +#date-format %f + +# Squid native log format +# +#date-format %s + +###################################### +# Log Format Options (required) +###################################### +# +# The log-format variable followed by a space or \t for +# tab-delimited, specifies the log format string. +# +# NOTE: If the time/date is a timestamp in seconds or microseconds +# %x must be used instead of %d & %t to represent the date & time. + +# NCSA Combined Log Format +#log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" + +# NCSA Combined Log Format with Virtual Host +#log-format %v:%^ %h %^[%d:%t %^] "%r" %s %b "%R" "%u" + +# Common Log Format (CLF) +#log-format %h %^[%d:%t %^] "%r" %s %b + +# Common Log Format (CLF) with Virtual Host +#log-format %v:%^ %h %^[%d:%t %^] "%r" %s %b + +# W3C +#log-format %d %t %h %^ %^ %^ %^ %r %^ %s %b %^ %^ %u %R + +# Squid native log format +#log-format %^ %^ %^ %v %^: %x.%^ %~%L %h %^/%s %b %m %U + +# AWS | Amazon CloudFront (Download Distribution) +#log-format %d\t%t\t%^\t%b\t%h\t%m\t%^\t%r\t%s\t%R\t%u\t%^ + +# Google Cloud Storage +#log-format "%x","%h",%^,%^,"%m","%U","%s",%^,"%b","%D",%^,"%R","%u" + +# AWS | Elastic Load Balancing +#log-format %dT%t.%^ %^ %h:%^ %^ %T %^ %^ %^ %s %^ %b "%r" "%u" + +# AWSS3 | Amazon Simple Storage Service (S3) +#log-format %^[%d:%t %^] %h %^"%r" %s %^ %b %^ %L %^ "%R" "%u" + +# Virtualmin Log Format with Virtual Host +#log-format %h %^ %v %^[%d:%t %^] "%r" %s %b "%R" "%u" + +# In addition to specifying the raw log/date/time formats, for +# simplicity, any of the following predefined log format names can be +# supplied to the log/date/time-format variables. GoAccess can also +# handle one predefined name in one variable and another predefined +# name in another variable. +# +#log-format COMBINED +#log-format VCOMBINED +#log-format COMMON +#log-format VCOMMON +#log-format W3C +#log-format SQUID +#log-format CLOUDFRONT +#log-format CLOUDSTORAGE +#log-format AWSELB +#log-format AWSS3 + +###################################### +# UI Options +###################################### + +# Choose among color schemes +# 1 : Monochrome +# 2 : Green +# 3 : Monokai (if 256-colors supported) +# +#color-scheme 3 + +# Prompt log/date configuration window on program start. +# +config-dialog false + +# Color highlight active panel. +# +hl-header true + +# Specify a custom CSS file in the HTML report. +# +#html-custom-css /path/file.css + +# Specify a custom JS file in the HTML report. +# +#html-custom-js /path/file.js + +# Set default HTML preferences. +# +# NOTE: A valid JSON object is required. +# DO NOT USE A MULTILINE JSON OBJECT. +# The parser will only parse the value next to `html-prefs` (single line) +# It allows the ability to customize each panel plot. See example below. +# +#html-prefs {"theme":"bright","perPage":5,"layout":"horizontal","showTables":true,"visitors":{"plot":{"chartType":"bar"}}} + +# Set HTML report page title and header. +# +#html-report-title My Awesome Web Stats + +# Format JSON output using tabs and newlines. +# +json-pretty-print false + +# Turn off colored output. This is the default output on +# terminals that do not support colors. +# true : for no color output +# false : use color-scheme +# +no-color false + +# Don't write column names in the terminal output. By default, it displays +# column names for each available metric in every panel. +# +no-column-names false + +# Disable summary metrics on the CSV output. +# +no-csv-summary false + +# Disable progress metrics. +# +no-progress false + +# Disable scrolling through panels on TAB. +# +no-tab-scroll false + +# Disable progress metrics and parsing spinner. +# +#no-parsing-spinner true + +# Do not show the last updated field displayed in the HTML generated report. +# +#no-html-last-updated true + +# Enable mouse support on main dashboard. +# +with-mouse false + +# Maximum number of items to show per panel. +# Note: Only the CSV and JSON outputs allow a maximum greater than the +# default value of 366. +# +#max-items 366 + +# Custom colors for the terminal output +# Tailor GoAccess to suit your own tastes. +# +# Color Syntax: +# DEFINITION space/tab colorFG#:colorBG# [[attributes,] PANEL] +# +# FG# = foreground color number [-1...255] (-1 = default terminal color) +# BG# = background color number [-1...255] (-1 = default terminal color) +# +# Optionally: +# +# It is possible to apply color attributes, such as: +# bold,underline,normal,reverse,blink. +# Multiple attributes are comma separated +# +# If desired, it is possible to apply custom colors per panel, that is, a +# metric in the REQUESTS panel can be of color A, while the same metric in the +# BROWSERS panel can be of color B. +# +# The following is a 256 color scheme (hybrid palette) +# +#color COLOR_MTRC_HITS color110:color-1 +#color COLOR_MTRC_VISITORS color173:color-1 +#color COLOR_MTRC_DATA color221:color-1 +#color COLOR_MTRC_BW color167:color-1 +#color COLOR_MTRC_AVGTS color143:color-1 +#color COLOR_MTRC_CUMTS color247:color-1 +#color COLOR_MTRC_MAXTS color186:color-1 +#color COLOR_MTRC_PROT color109:color-1 +#color COLOR_MTRC_MTHD color139:color-1 +#color COLOR_MTRC_HITS_PERC color186:color-1 +#color COLOR_MTRC_HITS_PERC_MAX color139:color-1 +#color COLOR_MTRC_HITS_PERC_MAX color139:color-1 VISITORS +#color COLOR_MTRC_HITS_PERC_MAX color139:color-1 OS +#color COLOR_MTRC_HITS_PERC_MAX color139:color-1 BROWSERS +#color COLOR_MTRC_HITS_PERC_MAX color139:color-1 VISIT_TIMES +#color COLOR_MTRC_VISITORS_PERC color186:color-1 +#color COLOR_MTRC_VISITORS_PERC_MAX color139:color-1 +#color COLOR_PANEL_COLS color243:color-1 +#color COLOR_BARS color250:color-1 +#color COLOR_ERROR color231:color167 +#color COLOR_SELECTED color7:color167 +#color COLOR_PANEL_ACTIVE color7:color237 +#color COLOR_PANEL_HEADER color250:color235 +#color COLOR_PANEL_DESC color242:color-1 +#color COLOR_OVERALL_LBLS color243:color-1 +#color COLOR_OVERALL_VALS color167:color-1 +#color COLOR_OVERALL_PATH color186:color-1 +#color COLOR_ACTIVE_LABEL color139:color235 bold underline +#color COLOR_BG color250:color-1 +#color COLOR_DEFAULT color243:color-1 +#color COLOR_PROGRESS color7:color110 + +###################################### +# Server Options +###################################### + +# Specify IP address to bind server to. +# +#addr 0.0.0.0 + +# Run GoAccess as daemon (if --real-time-html enabled). +# +#daemonize false + +# Ensure clients send the specified origin header upon the WebSocket +# handshake. +# +#origin http://example.org + +# The port to which the connection is being attempted to connect. +# By default GoAccess' WebSocket server listens on port 7890 +# See man page or http://gwsocket.io for details. +# +#port 7890 + +# Write the PID to a file when used along the daemonize option. +# +#pid-file /var/run/goaccess.pid + +# Enable real-time HTML output. +# +#real-time-html true + +# Path to TLS/SSL certificate. +# Note that ssl-cert and ssl-key need to be used to enable TLS/SSL. +# +#ssl-cert /path/ssl/domain.crt + +# Path to TLS/SSL private key. +# Note that ssl-cert and ssl-key need to be used to enable TLS/SSL. +# +#ssl-key /path/ssl/domain.key + +# URL to which the WebSocket server responds. This is the URL supplied +# to the WebSocket constructor on the client side. +# +# Optionally, it is possible to specify the WebSocket URI scheme, such as ws:// +# or wss:// for unencrypted and encrypted connections. +# e.g., ws-url wss://goaccess.io +# +# If GoAccess is running behind a proxy, you could set the client side +# to connect to a different port by specifying the host followed by a +# colon and the port. +# e.g., ws-url goaccess.io:9999 +# +# By default, it will attempt to connect to localhost. If GoAccess is +# running on a remote server, the host of the remote server should be +# specified here. Also, make sure it is a valid host and NOT an http +# address. +# +#ws-url goaccess.io + +# Path to read named pipe (FIFO). +# +#fifo-in /tmp/wspipein.fifo + +# Path to write named pipe (FIFO). +# +#fifo-in /tmp/wspipeout.fifo + +###################################### +# File Options +###################################### + +# Specify the path to the input log file. If set, it will take +# priority over -f from the command line. +# +#log-file /var/log/apache2/access.log + +# Send all debug messages to the specified file. +# +#debug-file debug.log + +# Specify a custom configuration file to use. If set, it will take +# priority over the global configuration file (if any). +# +#config-file + +# Log invalid requests to the specified file. +# +#invalid-requests + +# Do not load the global configuration file. +# +#no-global-config false + +###################################### +# Parse Options +###################################### + +# Enable a list of user-agents by host. For faster parsing, do not +# enable this flag. +# +agent-list false + +# Enable IP resolver on HTML|JSON|CSV output. +# +with-output-resolver false + +# Exclude an IPv4 or IPv6 from being counted. +# Ranges can be included as well using a dash in between +# the IPs (start-end). +# +#exclude-ip 127.0.0.1 +#exclude-ip 192.168.0.1-192.168.0.100 +#exclude-ip ::1 +#exclude-ip 0:0:0:0:0:ffff:808:804-0:0:0:0:0:ffff:808:808 + +# Include HTTP request method if found. This will create a +# request key containing the request method + the actual request. +# +# [default: yes] +# +http-method yes + +# Include HTTP request protocol if found. This will create a +# request key containing the request protocol + the actual request. +# +# [default: yes] +# +http-protocol yes + +# Write output to stdout given one of the following files and the +# corresponding extension for the output format: +# +# /path/file.csv - Comma-separated values (CSV) +# /path/file.json - JSON (JavaScript Object Notation) +# /path/file.html - HTML +# +# output /path/file.html + +# Ignore request's query string. +# i.e., www.google.com/page.htm?query => www.google.com/page.htm +# +# Note: Removing the query string can greatly decrease memory +# consumption, especially on timestamped requests. +# +no-query-string false + +# Disable IP resolver on terminal output. +# +no-term-resolver false + +# Treat non-standard status code 444 as 404. +# +444-as-404 false + +# Add 4xx client errors to the unique visitors count. +# +4xx-to-unique-count false + +# Store accumulated processing time from parsing day-by-day logs. +# Only if configured with --enable-tcb=btree +# +#accumulated-time false + +# IP address anonymization +# The IP anonymization option sets the last octet of IPv4 user IP addresses and +# the last 80 bits of IPv6 addresses to zeros. +# e.g., 192.168.20.100 => 192.168.20.0 +# e.g., 2a03:2880:2110:df07:face:b00c::1 => 2a03:2880:2110:df07:: +# +#anonymize-ip false + +# Include static files that contain a query string in the static files +# panel. +# e.g., /fonts/fontawesome-webfont.woff?v=4.0.3 +# +all-static-files false + +# Include an additional delimited list of browsers/crawlers/feeds etc. +# See config/browsers.list for an example or +# https://raw.githubusercontent.com/allinurl/goaccess/master/config/browsers.list +# +#browsers-file + +# Date specificity. Possible values: `date` (default), or `hr`. +# +#date-spec hr + +# Decode double-encoded values. +# +double-decode false + +# Enable parsing/displaying the given panel. +# +#enable-panel VISITORS +#enable-panel REQUESTS +#enable-panel REQUESTS_STATIC +#enable-panel NOT_FOUND +#enable-panel HOSTS +#enable-panel OS +#enable-panel BROWSERS +#enable-panel VISIT_TIMES +#enable-panel VIRTUAL_HOSTS +#enable-panel REFERRERS +#enable-panel REFERRING_SITES +#enable-panel KEYPHRASES +#enable-panel STATUS_CODES +#enable-panel REMOTE_USER +#enable-panel GEO_LOCATION + +# Hide a referer but still count it. Wild cards are allowed. i.e., *.bing.com +# +#hide-referer *.google.com +#hide-referer bing.com + +# Hour specificity. Possible values: `hr` (default), or `min` (tenth +# of a minute). +# +#hour-spec min + +# Ignore crawlers from being counted. +# This will ignore robots listed under browsers.c +# Note that it will count them towards the total +# number of requests, but excluded from any of the panels. +# +ignore-crawlers false + +# Parse and display crawlers only. +# This will ignore robots listed under browsers.c +# Note that it will count them towards the total +# number of requests, but excluded from any of the panels. +# +crawlers-only false + +# Ignore static file requests. +# req : Only ignore request from valid requests +# panels : Ignore request from panels. +# Note that it will count them towards the total number of requests +# ignore-statics req + +# Ignore parsing and displaying the given panel. +# +#ignore-panel VISITORS +#ignore-panel REQUESTS +#ignore-panel REQUESTS_STATIC +#ignore-panel NOT_FOUND +#ignore-panel HOSTS +#ignore-panel OS +#ignore-panel BROWSERS +#ignore-panel VISIT_TIMES +#ignore-panel VIRTUAL_HOSTS +ignore-panel REFERRERS +#ignore-panel REFERRING_SITES +ignore-panel KEYPHRASES +#ignore-panel STATUS_CODES +#ignore-panel REMOTE_USER +#ignore-panel GEO_LOCATION + +# Ignore referers from being counted. +# This supports wild cards. For instance, +# '*' matches 0 or more characters (including spaces) +# '?' matches exactly one character +# +#ignore-referer *.domain.com +#ignore-referer ww?.domain.* + +# Ignore parsing and displaying one or multiple status code(s) +# +#ignore-status 400 +#ignore-status 502 + +# Number of lines from the access log to test against the provided +# log/date/time format. By default, the parser is set to test 10 +# lines. If set to 0, the parser won't test any lines and will parse +# the whole access log. +# +#num-tests 10 + +# Parse log and exit without outputting data. +# +#process-and-exit false + +# Display real OS names. e.g, Windows XP, Snow Leopard. +# +real-os true + +# Sort panel on initial load. +# Sort options are separated by comma. +# Options are in the form: PANEL,METRIC,ORDER +# +# Available metrics: +# BY_HITS - Sort by hits +# BY_VISITORS - Sort by unique visitors +# BY_DATA - Sort by data +# BY_BW - Sort by bandwidth +# BY_AVGTS - Sort by average time served +# BY_CUMTS - Sort by cumulative time served +# BY_MAXTS - Sort by maximum time served +# BY_PROT - Sort by http protocol +# BY_MTHD - Sort by http method +# Available orders: +# ASC +# DESC +# +#sort-panel VISITORS,BY_DATA,ASC +#sort-panel REQUESTS,BY_HITS,ASC +#sort-panel REQUESTS_STATIC,BY_HITS,ASC +#sort-panel NOT_FOUND,BY_HITS,ASC +#sort-panel HOSTS,BY_HITS,ASC +#sort-panel OS,BY_HITS,ASC +#sort-panel BROWSERS,BY_HITS,ASC +#sort-panel VISIT_TIMES,BY_DATA,DESC +#sort-panel VIRTUAL_HOSTS,BY_HITS,ASC +#sort-panel REFERRERS,BY_HITS,ASC +#sort-panel REFERRING_SITES,BY_HITS,ASC +#sort-panel KEYPHRASES,BY_HITS,ASC +#sort-panel STATUS_CODES,BY_HITS,ASC +#sort-panel REMOTE_USER,BY_HITS,ASC +#sort-panel GEO_LOCATION,BY_HITS,ASC + +# Consider the following extensions as static files +# The actual '.' is required and extensions are case sensitive +# For a full list, uncomment the less common static extensions below. +# +static-file .css +static-file .js +static-file .jpg +static-file .png +static-file .gif +static-file .ico +static-file .jpeg +static-file .pdf +static-file .csv +static-file .mpeg +static-file .mpg +static-file .swf +static-file .woff +static-file .woff2 +static-file .xls +static-file .xlsx +static-file .doc +static-file .docx +static-file .ppt +static-file .pptx +static-file .txt +static-file .zip +static-file .ogg +static-file .mp3 +static-file .mp4 +static-file .exe +static-file .iso +static-file .gz +static-file .rar +static-file .svg +static-file .bmp +static-file .tar +static-file .tgz +static-file .tiff +static-file .tif +static-file .ttf +static-file .flv +#static-file .less +#static-file .ac3 +#static-file .avi +#static-file .bz2 +#static-file .class +#static-file .cue +#static-file .dae +#static-file .dat +#static-file .dts +#static-file .ejs +#static-file .eot +#static-file .eps +#static-file .img +#static-file .jar +#static-file .map +#static-file .mid +#static-file .midi +#static-file .ogv +#static-file .webm +#static-file .mkv +#static-file .odp +#static-file .ods +#static-file .odt +#static-file .otf +#static-file .pict +#static-file .pls +#static-file .ps +#static-file .qt +#static-file .rm +#static-file .svgz +#static-file .wav +#static-file .webp + +###################################### +# GeoIP Options +# Only if configured with --enable-geoip +###################################### + +# Standard GeoIP database for less memory usage. +# +#std-geoip false + +# Specify path to GeoIP database file. i.e., GeoLiteCity.dat +# .dat file needs to be downloaded from maxmind.com. +# +# For IPv4 City database: +# wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz +# gunzip GeoLiteCity.dat.gz +# +# For IPv6 City database: +# wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz +# gunzip GeoLiteCityv6.dat.gz +# +# For IPv6 Country database: +# wget -N http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz +# gunzip GeoIPv6.dat.gz +# +# For GeoIP2 City database: +# wget -N http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz +# gunzip GeoLite2-City.mmdb.gz +# +# For GeoIP2 Country database: +# wget -N http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz +# gunzip GeoLite2-Country.mmdb.gz +# +# Note: `geoip-city-data` is an alias of `geoip-database` +# +#geoip-database /usr/local/share/GeoIP/GeoLiteCity.dat + +###################################### +# Tokyo Cabinet Options +# Only if configured with --enable-tcb=btree +###################################### + +# GoAccess has the ability to process logs incrementally through the on-disk +# B+Tree database. +# +# It works in the following way: +# - A data set must be persisted first with --keep-db-files, then the same data +# set can be loaded with --load-from-disk. +# - If new data is passed (piped or through a log file), it will append it to +# the original data set. +# - To preserve the data at all times, --keep-db-files must be used. +# - If --load-from-disk is used without --keep-db-files, database files will be +# deleted upon closing the program. + +# On-disk B+ Tree +# Persist parsed data into disk. This should be set to +# the first dataset prior to use `load-from-disk`. +# Setting it to false will delete all database files +# when exiting the program. +#keep-db-files true + +# On-disk B+ Tree +# Load previously stored data from disk. +# Database files need to exist. See `keep-db-files`. +#load-from-disk false + +# On-disk B+ Tree +# Path where the on-disk database files are stored. +# The default value is the /tmp/ directory +# Note the trailing forward-slash. +# +#db-path /tmp/ + +# On-disk B+ Tree +# Set the size in bytes of the extra mapped memory. +# The default value is 0. +# +#xmmap 0 + +# On-disk B+ Tree +# Max number of leaf nodes to be cached. +# Specifies the maximum number of leaf nodes to be cached. +# If it is not more than 0, the default value is specified. +# The default value is 1024. +# +#cache-lcnum 1024 + +# On-disk B+ Tree +# Specifies the maximum number of non-leaf nodes to be cached. +# If it is not more than 0, the default value is specified. +# The default value is 512. +# +#cache-ncnum 512 + +# On-disk B+ Tree +# Specifies the number of members in each leaf page. +# If it is not more than 0, the default value is specified. +# The default value is 128. +# +#tune-lmemb 128 + +# On-disk B+ Tree +# Specifies the number of members in each non-leaf page. +# If it is not more than 0, the default value is specified. +# The default value is 256. +# +#tune-nmemb 256 + +# On-disk B+ Tree +# Specifies the number of elements of the bucket array. +# If it is not more than 0, the default value is specified. +# The default value is 32749. +# Suggested size of the bucket array is about from 1 to 4 +# times of the number of all pages to be stored. +# +#tune-bnum 32749 + +# On-disk B+ Tree +# Specifies that each page is compressed with ZLIB|BZ2 encoding. +# Disabled by default. +# +#compression zlib diff --git a/src/goaccess++/configure b/src/goaccess++/configure new file mode 100644 index 0000000..2829f1f --- /dev/null +++ b/src/goaccess++/configure @@ -0,0 +1,10655 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for goaccess 1.3. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: goaccess@prosoftcorp.com about your system, including +$0: any error possibly output before this message. Then +$0: install a modern shell, or manually run the script +$0: under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='goaccess' +PACKAGE_TARNAME='goaccess' +PACKAGE_VERSION='1.3' +PACKAGE_STRING='goaccess 1.3' +PACKAGE_BUGREPORT='goaccess@prosoftcorp.com' +PACKAGE_URL='http://goaccess.io' + +ac_unique_file="src/goaccess.c" +gt_needs= +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_header_list= +ac_func_list= +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +POW_LIB +LIBOBJS +HAS_SEDTR_FALSE +HAS_SEDTR_TRUE +TR_CHECK +SED_CHECK +TCB_FALSE +TCB_TRUE +GEOIP_MMDB_FALSE +GEOIP_MMDB_TRUE +GEOIP_LEGACY_FALSE +GEOIP_LEGACY_TRUE +WITH_RDYNAMIC_FALSE +WITH_RDYNAMIC_TRUE +DEBUG_FALSE +DEBUG_TRUE +POSUB +LTLIBINTL +LIBINTL +INTLLIBS +LTLIBICONV +LIBICONV +INTL_MACOSX_LIBS +EGREP +GREP +CPP +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +XGETTEXT_EXTRA_OPTIONS +MSGMERGE +XGETTEXT_015 +XGETTEXT +GMSGFMT_015 +MSGFMT_015 +GMSGFMT +MSGFMT +GETTEXT_MACRO_VERSION +USE_NLS +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_dependency_tracking +enable_nls +with_gnu_ld +enable_rpath +with_libiconv_prefix +with_libintl_prefix +enable_debug +with_openssl +enable_geoip +with_getline +enable_utf8 +enable_tcb +enable_zlib +enable_bzip +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures goaccess 1.3 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/goaccess] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of goaccess 1.3:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --disable-nls do not use Native Language Support + --disable-rpath do not hardcode runtime library paths + --enable-debug Create a debug build. Default is disabled + --enable-geoip Enable GeoIP country lookup. Default is disabled + --enable-utf8 Enable ncurses library that handles wide characters + --enable-tcb Enable TokyoCabinet database. Default is disabled + --disable-zlib Build without ZLIB compression + --disable-bzip Build without BZIP2 compression + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gnu-ld assume the C compiler uses GNU ld default=no + --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib + --without-libiconv-prefix don't search for libiconv in includedir and libdir + --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib + --without-libintl-prefix don't search for libintl in includedir and libdir + --with-openssl build with OpenSSL support + --with-getline Build using dynamic line buffer. + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +goaccess home page: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +goaccess configure 1.3 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## --------------------------------------- ## +## Report this to goaccess@prosoftcorp.com ## +## --------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type + +# ac_fn_c_find_intX_t LINENO BITS VAR +# ----------------------------------- +# Finds a signed integer type with width BITS, setting cache variable VAR +# accordingly. +ac_fn_c_find_intX_t () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5 +$as_echo_n "checking for int$2_t... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + # Order is important - never check a type that is potentially smaller + # than half of the expected target width. + for ac_type in int$2_t 'int' 'long int' \ + 'long long int' 'short int' 'signed char'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + enum { N = $2 / 2 - 1 }; +int +main () +{ +static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + enum { N = $2 / 2 - 1 }; +int +main () +{ +static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1) + < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + case $ac_type in #( + int$2_t) : + eval "$3=yes" ;; #( + *) : + eval "$3=\$ac_type" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no"; then : + +else + break +fi + done +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_find_intX_t + +# ac_fn_c_find_uintX_t LINENO BITS VAR +# ------------------------------------ +# Finds an unsigned integer type with width BITS, setting cache variable VAR +# accordingly. +ac_fn_c_find_uintX_t () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 +$as_echo_n "checking for uint$2_t... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + # Order is important - never check a type that is potentially smaller + # than half of the expected target width. + for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ + 'unsigned long long int' 'unsigned short int' 'unsigned char'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + case $ac_type in #( + uint$2_t) : + eval "$3=yes" ;; #( + *) : + eval "$3=\$ac_type" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no"; then : + +else + break +fi + done +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_find_uintX_t + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by goaccess $as_me 1.3, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +gt_needs="$gt_needs " +as_fn_append ac_header_list " sys/time.h" +as_fn_append ac_header_list " unistd.h" +as_fn_append ac_func_list " alarm" +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +am__api_version='1.11' + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='goaccess' + VERSION='1.3' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +ac_config_headers="$ac_config_headers src/config.h" + + +# Use empty CFLAGS by default so autoconf does not add +# CFLAGS="-O2 -g" +# NOTE: Needs to go after AC_INIT and before AC_PROG_CC to select an +# empty default instead. +: ${CFLAGS=""} + +# Checks for programs. +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +if test "x$CC" != xcc; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 +$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 +$as_echo_n "checking whether cc understands -c and -o together... " >&6; } +fi +set dummy $CC; ac_cc=`$as_echo "$2" | + sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +# Make sure it works both with $CC and with simple cc. +# We do the test twice because some compilers refuse to overwrite an +# existing .o file with -o, though they will create one. +ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' +rm -f conftest2.* +if { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && + test -f conftest2.$ac_objext && { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; +then + eval ac_cv_prog_cc_${ac_cc}_c_o=yes + if test "x$CC" != xcc; then + # Test first that cc exists at all. + if { ac_try='cc -c conftest.$ac_ext >&5' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' + rm -f conftest2.* + if { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && + test -f conftest2.$ac_objext && { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; + then + # cc works too. + : + else + # cc exists but doesn't like -o. + eval ac_cv_prog_cc_${ac_cc}_c_o=no + fi + fi + fi +else + eval ac_cv_prog_cc_${ac_cc}_c_o=no +fi +rm -f core conftest* + +fi +if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h + +fi + +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + + + + + GETTEXT_MACRO_VERSION=0.18 + + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGFMT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac + + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + rm -f messages.po + + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGMERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGMERGE" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then + ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" + ;; +esac +fi +MSGMERGE="$ac_cv_path_MSGMERGE" +if test "$MSGMERGE" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$localedir" || localedir='${datadir}/locale' + + + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + + + ac_config_commands="$ac_config_commands po-directories" + + + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 +$as_echo_n "checking for ld used by GCC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${acl_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$acl_cv_path_LD" +if test -n "$LD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${acl_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$acl_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 +$as_echo_n "checking for shared library run path origin... " >&6; } +if ${acl_cv_rpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 +$as_echo "$acl_cv_rpath" >&6; } + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + # Check whether --enable-rpath was given. +if test "${enable_rpath+set}" = set; then : + enableval=$enable_rpath; : +else + enable_rpath=yes +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + + + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 +$as_echo_n "checking for 64-bit host... " >&6; } +if ${gl_cv_solaris_64bit+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _LP64 +sixtyfour bits +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "sixtyfour bits" >/dev/null 2>&1; then : + gl_cv_solaris_64bit=yes +else + gl_cv_solaris_64bit=no +fi +rm -f conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 +$as_echo "$gl_cv_solaris_64bit" >&6; } + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + + + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix was given. +if test "${with_libiconv_prefix+set}" = set; then : + withval=$with_libiconv_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi + +fi + + LIBICONV= + LTLIBICONV= + INCICONV= + LIBICONV_PREFIX= + HAVE_LIBICONV= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 +$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } +if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFPreferencesCopyAppValue=yes +else + gt_cv_func_CFPreferencesCopyAppValue=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 +$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } +if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFLocaleCopyCurrent(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFLocaleCopyCurrent=yes +else + gt_cv_func_CFLocaleCopyCurrent=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + +$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h + + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + + + + + + LIBINTL= + LTLIBINTL= + POSUB= + + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 +$as_echo_n "checking for GNU gettext in libc... " >&6; } +if eval \${$gt_func_gnugettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$gt_func_gnugettext_libc=yes" +else + eval "$gt_func_gnugettext_libc=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$gt_func_gnugettext_libc + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 +$as_echo_n "checking for iconv... " >&6; } +if ${am_cv_func_iconv+:} false; then : + $as_echo_n "(cached) " >&6 +else + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 +$as_echo "$am_cv_func_iconv" >&6; } + if test "$am_cv_func_iconv" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 +$as_echo_n "checking for working iconv... " >&6; } +if ${am_cv_func_iconv_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + if test "$cross_compiling" = yes; then : + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int main () +{ + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + return 1; + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + am_cv_func_iconv_works=yes +else + am_cv_func_iconv_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS="$am_save_LIBS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 +$as_echo "$am_cv_func_iconv_works" >&6; } + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + +$as_echo "#define HAVE_ICONV 1" >>confdefs.h + + fi + if test "$am_cv_lib_iconv" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 +$as_echo_n "checking how to link with libiconv... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 +$as_echo "$LIBICONV" >&6; } + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix was given. +if test "${with_libintl_prefix+set}" = set; then : + withval=$with_libintl_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi + +fi + + LIBINTL= + LTLIBINTL= + INCINTL= + LIBINTL_PREFIX= + HAVE_LIBINTL= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 +$as_echo_n "checking for GNU gettext in libintl... " >&6; } +if eval \${$gt_func_gnugettext_libintl+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$gt_func_gnugettext_libintl=yes" +else + eval "$gt_func_gnugettext_libintl=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +eval ac_res=\$$gt_func_gnugettext_libintl + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + fi + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + +$as_echo "#define ENABLE_NLS 1" >>confdefs.h + + else + USE_NLS=no + fi + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 +$as_echo_n "checking whether to use NLS... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + if test "$USE_NLS" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 +$as_echo_n "checking where the gettext function comes from... " >&6; } + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 +$as_echo "$gt_source" >&6; } + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 +$as_echo_n "checking how to link with libintl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 +$as_echo "$LIBINTL" >&6; } + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h + + +$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h + + fi + + POSUB=po + fi + + + + INTLLIBS="$LIBINTL" + + + + + + + +# Fix `undefined reference to `libintl_gettext'` on docker: +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libintl_dgettext in -lintl" >&5 +$as_echo_n "checking for libintl_dgettext in -lintl... " >&6; } +if ${ac_cv_lib_intl_libintl_dgettext+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char libintl_dgettext (); +int +main () +{ +return libintl_dgettext (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_libintl_dgettext=yes +else + ac_cv_lib_intl_libintl_dgettext=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_libintl_dgettext" >&5 +$as_echo "$ac_cv_lib_intl_libintl_dgettext" >&6; } +if test "x$ac_cv_lib_intl_libintl_dgettext" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBINTL 1 +_ACEOF + + LIBS="-lintl $LIBS" + +fi + + +# pthread +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 +$as_echo_n "checking for pthread_create in -lpthread... " >&6; } +if ${ac_cv_lib_pthread_pthread_create+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_create (); +int +main () +{ +return pthread_create (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_pthread_pthread_create=yes +else + ac_cv_lib_pthread_pthread_create=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } +if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTHREAD 1 +_ACEOF + + LIBS="-lpthread $LIBS" + +else + as_fn_error $? "pthread is missing" "$LINENO" 5 +fi + +CFLAGS="$CFLAGS -pthread" + +# DEBUG +# Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; debug="$enableval" +else + debug=no +fi + + +if test "$debug" = "yes"; then + +$as_echo "#define _DEBUG 1" >>confdefs.h + +fi + if test "x$debug" = "xyes"; then + DEBUG_TRUE= + DEBUG_FALSE='#' +else + DEBUG_TRUE='#' + DEBUG_FALSE= +fi + + +# Handle rdynamic only on systems using GNU ld + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with rdynamic for GNU ld" >&5 +$as_echo_n "checking whether to build with rdynamic for GNU ld... " >&6; } +with_rdyanimc=yes +case "$host_os" in + *darwin*|*cygwin*|*aix*|*mingw*) with_rdyanimc=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_rdyanimc" >&5 +$as_echo "$with_rdyanimc" >&6; } + if test "x$with_rdyanimc" = "xyes"; then + WITH_RDYNAMIC_TRUE= + WITH_RDYNAMIC_FALSE='#' +else + WITH_RDYNAMIC_TRUE='#' + WITH_RDYNAMIC_FALSE= +fi + + +# Build with OpenSSL + +# Check whether --with-openssl was given. +if test "${with_openssl+set}" = set; then : + withval=$with_openssl; openssl="$withval" +else + openssl="no" +fi + + +if test "$openssl" = 'yes'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_CTX_new in -lssl" >&5 +$as_echo_n "checking for SSL_CTX_new in -lssl... " >&6; } +if ${ac_cv_lib_ssl_SSL_CTX_new+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lssl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char SSL_CTX_new (); +int +main () +{ +return SSL_CTX_new (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ssl_SSL_CTX_new=yes +else + ac_cv_lib_ssl_SSL_CTX_new=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_CTX_new" >&5 +$as_echo "$ac_cv_lib_ssl_SSL_CTX_new" >&6; } +if test "x$ac_cv_lib_ssl_SSL_CTX_new" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSSL 1 +_ACEOF + + LIBS="-lssl $LIBS" + +else + as_fn_error $? "ssl library missing" "$LINENO" 5 +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CRYPTO_free in -lcrypto" >&5 +$as_echo_n "checking for CRYPTO_free in -lcrypto... " >&6; } +if ${ac_cv_lib_crypto_CRYPTO_free+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypto $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char CRYPTO_free (); +int +main () +{ +return CRYPTO_free (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_crypto_CRYPTO_free=yes +else + ac_cv_lib_crypto_CRYPTO_free=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_CRYPTO_free" >&5 +$as_echo "$ac_cv_lib_crypto_CRYPTO_free" >&6; } +if test "x$ac_cv_lib_crypto_CRYPTO_free" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBCRYPTO 1 +_ACEOF + + LIBS="-lcrypto $LIBS" + +else + as_fn_error $? "crypto library missing" "$LINENO" 5 +fi + +fi + +# GeoIP +# Check whether --enable-geoip was given. +if test "${enable_geoip+set}" = set; then : + enableval=$enable_geoip; geoip="$enableval" +else + geoip=no +fi + + +geolocation="N/A" +if test "$geoip" = "mmdb"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MMDB_open in -lmaxminddb" >&5 +$as_echo_n "checking for MMDB_open in -lmaxminddb... " >&6; } +if ${ac_cv_lib_maxminddb_MMDB_open+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmaxminddb $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char MMDB_open (); +int +main () +{ +return MMDB_open (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_maxminddb_MMDB_open=yes +else + ac_cv_lib_maxminddb_MMDB_open=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_maxminddb_MMDB_open" >&5 +$as_echo "$ac_cv_lib_maxminddb_MMDB_open" >&6; } +if test "x$ac_cv_lib_maxminddb_MMDB_open" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBMAXMINDDB 1 +_ACEOF + + LIBS="-lmaxminddb $LIBS" + +else + as_fn_error $? " + *** Missing development files for libmaxminddb library. + " "$LINENO" 5 +fi + + geolocation="GeoIP2" + +$as_echo "#define HAVE_GEOLOCATION 1" >>confdefs.h + +elif test "$geoip" = "legacy"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GeoIP_new in -lGeoIP" >&5 +$as_echo_n "checking for GeoIP_new in -lGeoIP... " >&6; } +if ${ac_cv_lib_GeoIP_GeoIP_new+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lGeoIP $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char GeoIP_new (); +int +main () +{ +return GeoIP_new (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_GeoIP_GeoIP_new=yes +else + ac_cv_lib_GeoIP_GeoIP_new=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_GeoIP_GeoIP_new" >&5 +$as_echo "$ac_cv_lib_GeoIP_GeoIP_new" >&6; } +if test "x$ac_cv_lib_GeoIP_GeoIP_new" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBGEOIP 1 +_ACEOF + + LIBS="-lGeoIP $LIBS" + +else + as_fn_error $? " + *** Missing development files for the GeoIP library + " "$LINENO" 5 +fi + + geolocation="GeoIP Legacy" + +$as_echo "#define HAVE_GEOLOCATION 1" >>confdefs.h + +fi + if test "x$geoip" = "xlegacy"; then + GEOIP_LEGACY_TRUE= + GEOIP_LEGACY_FALSE='#' +else + GEOIP_LEGACY_TRUE='#' + GEOIP_LEGACY_FALSE= +fi + + if test "x$geoip" = "xmmdb"; then + GEOIP_MMDB_TRUE= + GEOIP_MMDB_FALSE='#' +else + GEOIP_MMDB_TRUE='#' + GEOIP_MMDB_FALSE= +fi + + +# GNU getline / POSIX.1-2008 + +# Check whether --with-getline was given. +if test "${with_getline+set}" = set; then : + withval=$with_getline; with_getline=$withval +else + with_getline=no +fi + + +if test "$with_getline" = "yes"; then + +$as_echo "#define WITH_GETLINE 1" >>confdefs.h + +fi + +# UTF8 +# Check whether --enable-utf8 was given. +if test "${enable_utf8+set}" = set; then : + enableval=$enable_utf8; utf8="$enableval" +else + utf8=no +fi + + +if test "$utf8" = "yes"; then + libncursesw=ncursesw + # Simply called libncurses on OS X + case "$host_os" in + *darwin*) libncursesw=ncurses + ;; + esac + + as_ac_Lib=`$as_echo "ac_cv_lib_$libncursesw''_mvaddwstr" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mvaddwstr in -l$libncursesw" >&5 +$as_echo_n "checking for mvaddwstr in -l$libncursesw... " >&6; } +if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$libncursesw $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mvaddwstr (); +int +main () +{ +return mvaddwstr (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" +else + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_LIB$libncursesw" | $as_tr_cpp` 1 +_ACEOF + + LIBS="-l$libncursesw $LIBS" + +else + as_fn_error $? "*** Missing development libraries for ncursesw" "$LINENO" 5 +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tputs" >&5 +$as_echo_n "checking for library containing tputs... " >&6; } +if ${ac_cv_search_tputs+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tputs (); +int +main () +{ +return tputs (); + ; + return 0; +} +_ACEOF +for ac_lib in '' tinfow; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tputs=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tputs+:} false; then : + break +fi +done +if ${ac_cv_search_tputs+:} false; then : + +else + ac_cv_search_tputs=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tputs" >&5 +$as_echo "$ac_cv_search_tputs" >&6; } +ac_res=$ac_cv_search_tputs +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + as_fn_error $? "Cannot find a library providing tputs" "$LINENO" 5 +fi + + +$as_echo "#define HAVE_LIBNCURSESW 1" >>confdefs.h + + + have_ncurses="yes" + for ac_header in ncursesw/ncurses.h +do : + ac_fn_c_check_header_compile "$LINENO" "ncursesw/ncurses.h" "ac_cv_header_ncursesw_ncurses_h" " + #ifdef HAVE_NCURSESW_NCURSES_H + #include + #endif + +" +if test "x$ac_cv_header_ncursesw_ncurses_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NCURSESW_NCURSES_H 1 +_ACEOF + have_ncurses=yes +fi + +done + + + for ac_header in ncurses.h +do : + ac_fn_c_check_header_compile "$LINENO" "ncurses.h" "ac_cv_header_ncurses_h" " + #ifdef HAVE_NCURSES_H + #include + #endif + +" +if test "x$ac_cv_header_ncurses_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NCURSES_H 1 +_ACEOF + have_ncurses=yes +fi + +done + + + if test "$have_ncurses" != "yes"; then + as_fn_error $? "Missing ncursesw header file" "$LINENO" 5 + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for refresh in -lncurses" >&5 +$as_echo_n "checking for refresh in -lncurses... " >&6; } +if ${ac_cv_lib_ncurses_refresh+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lncurses $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char refresh (); +int +main () +{ +return refresh (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ncurses_refresh=yes +else + ac_cv_lib_ncurses_refresh=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_refresh" >&5 +$as_echo "$ac_cv_lib_ncurses_refresh" >&6; } +if test "x$ac_cv_lib_ncurses_refresh" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNCURSES 1 +_ACEOF + + LIBS="-lncurses $LIBS" + +else + as_fn_error $? "*** Missing development libraries for ncurses" "$LINENO" 5 +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tputs" >&5 +$as_echo_n "checking for library containing tputs... " >&6; } +if ${ac_cv_search_tputs+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tputs (); +int +main () +{ +return tputs (); + ; + return 0; +} +_ACEOF +for ac_lib in '' tinfo; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_tputs=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_tputs+:} false; then : + break +fi +done +if ${ac_cv_search_tputs+:} false; then : + +else + ac_cv_search_tputs=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tputs" >&5 +$as_echo "$ac_cv_search_tputs" >&6; } +ac_res=$ac_cv_search_tputs +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + as_fn_error $? "Cannot find a library providing tputs" "$LINENO" 5 +fi + + + have_ncurses="yes" + for ac_header in ncurses/ncurses.h +do : + ac_fn_c_check_header_compile "$LINENO" "ncurses/ncurses.h" "ac_cv_header_ncurses_ncurses_h" " + #ifdef HAVE_NCURSES_NCURSES_H + #include + #endif + +" +if test "x$ac_cv_header_ncurses_ncurses_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NCURSES_NCURSES_H 1 +_ACEOF + have_ncurses=yes +fi + +done + + + for ac_header in ncurses.h +do : + ac_fn_c_check_header_compile "$LINENO" "ncurses.h" "ac_cv_header_ncurses_h" " + #ifdef HAVE_NCURSES_H + #include + #endif + +" +if test "x$ac_cv_header_ncurses_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NCURSES_H 1 +_ACEOF + have_ncurses=yes +fi + +done + + + for ac_header in curses.h +do : + ac_fn_c_check_header_compile "$LINENO" "curses.h" "ac_cv_header_curses_h" " + #ifdef HAVE_CURSES_H + #include + #endif + +" +if test "x$ac_cv_header_curses_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CURSES_H 1 +_ACEOF + have_ncurses=yes +fi + +done + + + if test "$have_ncurses" != "yes"; then + as_fn_error $? "Missing ncursesw header file" "$LINENO" 5 + fi +fi + +# Tokyo Cabinet +# Check whether --enable-tcb was given. +if test "${enable_tcb+set}" = set; then : + enableval=$enable_tcb; tcb="$enableval" +else + tcb=no +fi + + +WITH_TC=no +if test "$tcb" = "memhash"; then + WITH_TC=yes + +$as_echo "#define TCB_MEMHASH 1" >>confdefs.h + +elif test "$tcb" = "btree"; then + +$as_echo "#define TCB_BTREE 1" >>confdefs.h + + WITH_TC=yes +fi + +if test "$WITH_TC" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tchdbnew in -ltokyocabinet" >&5 +$as_echo_n "checking for tchdbnew in -ltokyocabinet... " >&6; } +if ${ac_cv_lib_tokyocabinet_tchdbnew+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ltokyocabinet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tchdbnew (); +int +main () +{ +return tchdbnew (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_tokyocabinet_tchdbnew=yes +else + ac_cv_lib_tokyocabinet_tchdbnew=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tokyocabinet_tchdbnew" >&5 +$as_echo "$ac_cv_lib_tokyocabinet_tchdbnew" >&6; } +if test "x$ac_cv_lib_tokyocabinet_tchdbnew" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBTOKYOCABINET 1 +_ACEOF + + LIBS="-ltokyocabinet $LIBS" + +else + as_fn_error $? "*** Missing development libraries for Tokyo Cabinet Database" "$LINENO" 5 +fi + + + # Check whether --enable-zlib was given. +if test "${enable_zlib+set}" = set; then : + enableval=$enable_zlib; zlib="$enableval" +else + zlib=yes +fi + + + if test "$zlib" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzread in -lz" >&5 +$as_echo_n "checking for gzread in -lz... " >&6; } +if ${ac_cv_lib_z_gzread+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gzread (); +int +main () +{ +return gzread (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_gzread=yes +else + ac_cv_lib_z_gzread=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzread" >&5 +$as_echo "$ac_cv_lib_z_gzread" >&6; } +if test "x$ac_cv_lib_z_gzread" = xyes; then : + Z_FLAG=-lz +else + as_fn_error $? " + *** zlib is required. If zlib compression is not needed + *** you can use --disable-zlib. + *** Debian based distributions zlib1g-dev + *** Red Hat based distributions zlib-devel + " "$LINENO" 5 +fi + + +$as_echo "#define HAVE_ZLIB 1" >>confdefs.h + + LDFLAGS="$LDFLAGS $Z_FLAG" + fi + + # Check whether --enable-bzip was given. +if test "${enable_bzip+set}" = set; then : + enableval=$enable_bzip; bz2="$enableval" +else + bz2=yes +fi + + + if test "$bz2" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzopen in -lbz2" >&5 +$as_echo_n "checking for BZ2_bzopen in -lbz2... " >&6; } +if ${ac_cv_lib_bz2_BZ2_bzopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbz2 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char BZ2_bzopen (); +int +main () +{ +return BZ2_bzopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bz2_BZ2_bzopen=yes +else + ac_cv_lib_bz2_BZ2_bzopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzopen" >&5 +$as_echo "$ac_cv_lib_bz2_BZ2_bzopen" >&6; } +if test "x$ac_cv_lib_bz2_BZ2_bzopen" = xyes; then : + BZ2_FLAG=-lbz2 +else + as_fn_error $? " + *** BZIP2 is required. If BZIP2 compression is not needed + *** you can use --disable-bzip. + *** Debian based distributions libbz2-dev + *** Red Hat based distributions bzip2-devel + " "$LINENO" 5 +fi + + +$as_echo "#define HAVE_BZ2 1" >>confdefs.h + + LDFLAGS="$LDFLAGS $BZ2_FLAG" + fi + + case "$host_os" in + *darwin*|*bsd*) + LDFLAGS="$LDFLAGS -ltokyocabinet -lc" + ;; + *) + LDFLAGS="$LDFLAGS -ltokyocabinet -lrt -lc" + ;; + esac +fi + if test "$WITH_TC" = "yes"; then + TCB_TRUE= + TCB_FALSE='#' +else + TCB_TRUE='#' + TCB_FALSE= +fi + + +if test "$tcb" = "memhash"; then + storage="In-memory Hash Database (Tokyo Cabinet)" +elif test "$tcb" = "btree"; then + storage="On-disk B+ Tree Database (Tokyo Cabinet)" +else + storage="In-memory Hash Database (Default)" +fi + +HAS_SEDTR=no +# Extract the first word of "sed", so it can be a program name with args. +set dummy sed; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_SED_CHECK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$SED_CHECK"; then + ac_cv_prog_SED_CHECK="$SED_CHECK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_SED_CHECK="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_SED_CHECK" && ac_cv_prog_SED_CHECK="no" +fi +fi +SED_CHECK=$ac_cv_prog_SED_CHECK +if test -n "$SED_CHECK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED_CHECK" >&5 +$as_echo "$SED_CHECK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test x"$SED_CHECK" == x"yes" ; then + # Extract the first word of "tr", so it can be a program name with args. +set dummy tr; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_TR_CHECK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$TR_CHECK"; then + ac_cv_prog_TR_CHECK="$TR_CHECK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_TR_CHECK="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_TR_CHECK" && ac_cv_prog_TR_CHECK="no" +fi +fi +TR_CHECK=$ac_cv_prog_TR_CHECK +if test -n "$TR_CHECK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR_CHECK" >&5 +$as_echo "$TR_CHECK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test x"$TR_CHECK" == x"yes" ; then + HAS_SEDTR=yes + fi +fi + if test "x$HAS_SEDTR" = xyes; then + HAS_SEDTR_TRUE= + HAS_SEDTR_FALSE='#' +else + HAS_SEDTR_TRUE='#' + HAS_SEDTR_FALSE= +fi + + +# Solaris +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_gethostbyname=yes +else + ac_cv_lib_nsl_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNSL 1 +_ACEOF + + LIBS="-lnsl $LIBS" + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 +$as_echo_n "checking for socket in -lsocket... " >&6; } +if ${ac_cv_lib_socket_socket+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char socket (); +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_socket=yes +else + ac_cv_lib_socket_socket=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5 +$as_echo "$ac_cv_lib_socket_socket" >&6; } +if test "x$ac_cv_lib_socket_socket" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSOCKET 1 +_ACEOF + + LIBS="-lsocket $LIBS" + +fi + + +# Checks for header files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in arpa/inet.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "$ac_includes_default" +if test "x$ac_cv_header_arpa_inet_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ARPA_INET_H 1 +_ACEOF + +fi + +done + +for ac_header in fcntl.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default" +if test "x$ac_cv_header_fcntl_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FCNTL_H 1 +_ACEOF + +fi + +done + +for ac_header in inttypes.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" +if test "x$ac_cv_header_inttypes_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_INTTYPES_H 1 +_ACEOF + +fi + +done + +for ac_header in limits.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default" +if test "x$ac_cv_header_limits_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIMITS_H 1 +_ACEOF + +fi + +done + +for ac_header in locale.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" +if test "x$ac_cv_header_locale_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LOCALE_H 1 +_ACEOF + +fi + +done + +for ac_header in netdb.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default" +if test "x$ac_cv_header_netdb_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NETDB_H 1 +_ACEOF + +fi + +done + +for ac_header in netinet/in.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default" +if test "x$ac_cv_header_netinet_in_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NETINET_IN_H 1 +_ACEOF + +fi + +done + +for ac_header in stddef.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "stddef.h" "ac_cv_header_stddef_h" "$ac_includes_default" +if test "x$ac_cv_header_stddef_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STDDEF_H 1 +_ACEOF + +fi + +done + +for ac_header in stdint.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" +if test "x$ac_cv_header_stdint_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STDINT_H 1 +_ACEOF + +fi + +done + +for ac_header in stdlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" +if test "x$ac_cv_header_stdlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STDLIB_H 1 +_ACEOF + +fi + +done + +for ac_header in string.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" +if test "x$ac_cv_header_string_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRING_H 1 +_ACEOF + +fi + +done + +for ac_header in strings.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "strings.h" "ac_cv_header_strings_h" "$ac_includes_default" +if test "x$ac_cv_header_strings_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRINGS_H 1 +_ACEOF + +fi + +done + +for ac_header in sys/socket.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_socket_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_SOCKET_H 1 +_ACEOF + +fi + +done + +for ac_header in sys/time.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_time_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_TIME_H 1 +_ACEOF + +fi + +done + +for ac_header in unistd.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" +if test "x$ac_cv_header_unistd_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UNISTD_H 1 +_ACEOF + +fi + +done + + +# Checks for typedefs, structures, and compiler characteristics. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if ${ac_cv_c_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_const=yes +else + ac_cv_c_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +$as_echo "#define const /**/" >>confdefs.h + +fi + +ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" +if test "x$ac_cv_type_ptrdiff_t" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_PTRDIFF_T 1 +_ACEOF + + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 +$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } +if ${ac_cv_struct_tm+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include + +int +main () +{ +struct tm tm; + int *p = &tm.tm_sec; + return !p; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_struct_tm=time.h +else + ac_cv_struct_tm=sys/time.h +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 +$as_echo "$ac_cv_struct_tm" >&6; } +if test $ac_cv_struct_tm = sys/time.h; then + +$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h + +fi + +ac_fn_c_find_intX_t "$LINENO" "64" "ac_cv_c_int64_t" +case $ac_cv_c_int64_t in #( + no|yes) ;; #( + *) + +cat >>confdefs.h <<_ACEOF +#define int64_t $ac_cv_c_int64_t +_ACEOF +;; +esac + +ac_fn_c_find_intX_t "$LINENO" "8" "ac_cv_c_int8_t" +case $ac_cv_c_int8_t in #( + no|yes) ;; #( + *) + +cat >>confdefs.h <<_ACEOF +#define int8_t $ac_cv_c_int8_t +_ACEOF +;; +esac + +ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" +if test "x$ac_cv_type_off_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define off_t long int +_ACEOF + +fi + +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF + +fi + +ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" +case $ac_cv_c_uint32_t in #( + no|yes) ;; #( + *) + +$as_echo "#define _UINT32_T 1" >>confdefs.h + + +cat >>confdefs.h <<_ACEOF +#define uint32_t $ac_cv_c_uint32_t +_ACEOF +;; + esac + +ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" +case $ac_cv_c_uint64_t in #( + no|yes) ;; #( + *) + +$as_echo "#define _UINT64_T 1" >>confdefs.h + + +cat >>confdefs.h <<_ACEOF +#define uint64_t $ac_cv_c_uint64_t +_ACEOF +;; + esac + +ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" +case $ac_cv_c_uint8_t in #( + no|yes) ;; #( + *) + +$as_echo "#define _UINT8_T 1" >>confdefs.h + + +cat >>confdefs.h <<_ACEOF +#define uint8_t $ac_cv_c_uint8_t +_ACEOF +;; + esac + + +# Checks for library functions. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 +$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } +if ${ac_cv_sys_largefile_source+:} false; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include /* for off_t */ + #include +int +main () +{ +int (*fp) (FILE *, off_t, int) = fseeko; + return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_sys_largefile_source=no; break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _LARGEFILE_SOURCE 1 +#include /* for off_t */ + #include +int +main () +{ +int (*fp) (FILE *, off_t, int) = fseeko; + return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_sys_largefile_source=1; break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_cv_sys_largefile_source=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5 +$as_echo "$ac_cv_sys_largefile_source" >&6; } +case $ac_cv_sys_largefile_source in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source +_ACEOF +;; +esac +rm -rf conftest* + +# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug +# in glibc 2.1.3, but that breaks too many other things. +# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. +if test $ac_cv_sys_largefile_source != unknown; then + +$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 +$as_echo_n "checking for working memcmp... " >&6; } +if ${ac_cv_func_memcmp_working+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_memcmp_working=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Some versions of memcmp are not 8-bit clean. */ + char c0 = '\100', c1 = '\200', c2 = '\201'; + if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) + return 1; + + /* The Next x86 OpenStep bug shows up only when comparing 16 bytes + or more and with at least one buffer not starting on a 4-byte boundary. + William Lewis provided this test program. */ + { + char foo[21]; + char bar[21]; + int i; + for (i = 0; i < 4; i++) + { + char *a = foo + i; + char *b = bar + i; + strcpy (a, "--------01111111"); + strcpy (b, "--------10000000"); + if (memcmp (a, b, 16) >= 0) + return 1; + } + return 0; + } + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_memcmp_working=yes +else + ac_cv_func_memcmp_working=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 +$as_echo "$ac_cv_func_memcmp_working" >&6; } +test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in + *" memcmp.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" + ;; +esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } +if ${ac_cv_header_time+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include + +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_time=yes +else + ac_cv_header_time=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 +$as_echo "$ac_cv_header_time" >&6; } +if test $ac_cv_header_time = yes; then + +$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h + +fi + + + + + for ac_header in $ac_header_list +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + + + + for ac_func in $ac_func_list +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 +$as_echo_n "checking for working mktime... " >&6; } +if ${ac_cv_func_working_mktime+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_working_mktime=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Test program from Paul Eggert and Tony Leneis. */ +#ifdef TIME_WITH_SYS_TIME +# include +# include +#else +# ifdef HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif + +#include +#include + +#ifdef HAVE_UNISTD_H +# include +#endif + +#ifndef HAVE_ALARM +# define alarm(X) /* empty */ +#endif + +/* Work around redefinition to rpl_putenv by other config tests. */ +#undef putenv + +static time_t time_t_max; +static time_t time_t_min; + +/* Values we'll use to set the TZ environment variable. */ +static const char *tz_strings[] = { + (const char *) 0, "TZ=GMT0", "TZ=JST-9", + "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" +}; +#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) + +/* Return 0 if mktime fails to convert a date in the spring-forward gap. + Based on a problem report from Andreas Jaeger. */ +static int +spring_forward_gap () +{ + /* glibc (up to about 1998-10-07) failed this test. */ + struct tm tm; + + /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" + instead of "TZ=America/Vancouver" in order to detect the bug even + on systems that don't support the Olson extension, or don't have the + full zoneinfo tables installed. */ + putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); + + tm.tm_year = 98; + tm.tm_mon = 3; + tm.tm_mday = 5; + tm.tm_hour = 2; + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_isdst = -1; + return mktime (&tm) != (time_t) -1; +} + +static int +mktime_test1 (time_t now) +{ + struct tm *lt; + return ! (lt = localtime (&now)) || mktime (lt) == now; +} + +static int +mktime_test (time_t now) +{ + return (mktime_test1 (now) + && mktime_test1 ((time_t) (time_t_max - now)) + && mktime_test1 ((time_t) (time_t_min + now))); +} + +static int +irix_6_4_bug () +{ + /* Based on code from Ariel Faigon. */ + struct tm tm; + tm.tm_year = 96; + tm.tm_mon = 3; + tm.tm_mday = 0; + tm.tm_hour = 0; + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_isdst = -1; + mktime (&tm); + return tm.tm_mon == 2 && tm.tm_mday == 31; +} + +static int +bigtime_test (int j) +{ + struct tm tm; + time_t now; + tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; + now = mktime (&tm); + if (now != (time_t) -1) + { + struct tm *lt = localtime (&now); + if (! (lt + && lt->tm_year == tm.tm_year + && lt->tm_mon == tm.tm_mon + && lt->tm_mday == tm.tm_mday + && lt->tm_hour == tm.tm_hour + && lt->tm_min == tm.tm_min + && lt->tm_sec == tm.tm_sec + && lt->tm_yday == tm.tm_yday + && lt->tm_wday == tm.tm_wday + && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) + == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) + return 0; + } + return 1; +} + +static int +year_2050_test () +{ + /* The correct answer for 2050-02-01 00:00:00 in Pacific time, + ignoring leap seconds. */ + unsigned long int answer = 2527315200UL; + + struct tm tm; + time_t t; + tm.tm_year = 2050 - 1900; + tm.tm_mon = 2 - 1; + tm.tm_mday = 1; + tm.tm_hour = tm.tm_min = tm.tm_sec = 0; + tm.tm_isdst = -1; + + /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" + instead of "TZ=America/Vancouver" in order to detect the bug even + on systems that don't support the Olson extension, or don't have the + full zoneinfo tables installed. */ + putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); + + t = mktime (&tm); + + /* Check that the result is either a failure, or close enough + to the correct answer that we can assume the discrepancy is + due to leap seconds. */ + return (t == (time_t) -1 + || (0 < t && answer - 120 <= t && t <= answer + 120)); +} + +int +main () +{ + time_t t, delta; + int i, j; + + /* This test makes some buggy mktime implementations loop. + Give up after 60 seconds; a mktime slower than that + isn't worth using anyway. */ + alarm (60); + + for (;;) + { + t = (time_t_max << 1) + 1; + if (t <= time_t_max) + break; + time_t_max = t; + } + time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max; + + delta = time_t_max / 997; /* a suitable prime number */ + for (i = 0; i < N_STRINGS; i++) + { + if (tz_strings[i]) + putenv ((char*) tz_strings[i]); + + for (t = 0; t <= time_t_max - delta; t += delta) + if (! mktime_test (t)) + return 1; + if (! (mktime_test ((time_t) 1) + && mktime_test ((time_t) (60 * 60)) + && mktime_test ((time_t) (60 * 60 * 24)))) + return 1; + + for (j = 1; ; j <<= 1) + if (! bigtime_test (j)) + return 1; + else if (INT_MAX / 2 < j) + break; + if (! bigtime_test (INT_MAX)) + return 1; + } + return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_working_mktime=yes +else + ac_cv_func_working_mktime=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_working_mktime" >&5 +$as_echo "$ac_cv_func_working_mktime" >&6; } +if test $ac_cv_func_working_mktime = no; then + case " $LIBOBJS " in + *" mktime.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS mktime.$ac_objext" + ;; +esac + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 +$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } +if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f conftest.sym conftest.file +echo >conftest.file +if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then + if test "$cross_compiling" = yes; then : + ac_cv_func_lstat_dereferences_slashed_symlink=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +struct stat sbuf; + /* Linux will dereference the symlink and fail, as required by POSIX. + That is better in the sense that it means we will not + have to compile and use the lstat wrapper. */ + return lstat ("conftest.sym/", &sbuf) == 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_lstat_dereferences_slashed_symlink=yes +else + ac_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +else + # If the `ln -s' command failed, then we probably don't even + # have an lstat function. + ac_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f conftest.sym conftest.file + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 +$as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } + +test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && + +cat >>confdefs.h <<_ACEOF +#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +_ACEOF + + +if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then + case " $LIBOBJS " in + *" lstat.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS lstat.$ac_objext" + ;; +esac + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat accepts an empty string" >&5 +$as_echo_n "checking whether stat accepts an empty string... " >&6; } +if ${ac_cv_func_stat_empty_string_bug+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_stat_empty_string_bug=yes +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +struct stat sbuf; + return stat ("", &sbuf) == 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_stat_empty_string_bug=no +else + ac_cv_func_stat_empty_string_bug=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_stat_empty_string_bug" >&5 +$as_echo "$ac_cv_func_stat_empty_string_bug" >&6; } +if test $ac_cv_func_stat_empty_string_bug = yes; then + case " $LIBOBJS " in + *" stat.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS stat.$ac_objext" + ;; +esac + + +cat >>confdefs.h <<_ACEOF +#define HAVE_STAT_EMPTY_STRING_BUG 1 +_ACEOF + +fi + +for ac_func in strftime +do : + ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" +if test "x$ac_cv_func_strftime" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRFTIME 1 +_ACEOF + +else + # strftime is in -lintl on SCO UNIX. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5 +$as_echo_n "checking for strftime in -lintl... " >&6; } +if ${ac_cv_lib_intl_strftime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strftime (); +int +main () +{ +return strftime (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_intl_strftime=yes +else + ac_cv_lib_intl_strftime=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5 +$as_echo "$ac_cv_lib_intl_strftime" >&6; } +if test "x$ac_cv_lib_intl_strftime" = xyes; then : + $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h + +LIBS="-lintl $LIBS" +fi + +fi +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strtod" >&5 +$as_echo_n "checking for working strtod... " >&6; } +if ${ac_cv_func_strtod+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_strtod=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +$ac_includes_default +#ifndef strtod +double strtod (); +#endif +int +main() +{ + { + /* Some versions of Linux strtod mis-parse strings with leading '+'. */ + char *string = " +69"; + char *term; + double value; + value = strtod (string, &term); + if (value != 69 || term != (string + 4)) + return 1; + } + + { + /* Under Solaris 2.4, strtod returns the wrong value for the + terminating character under some conditions. */ + char *string = "NaN"; + char *term; + strtod (string, &term); + if (term != string && *(term - 1) == 0) + return 1; + } + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_strtod=yes +else + ac_cv_func_strtod=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strtod" >&5 +$as_echo "$ac_cv_func_strtod" >&6; } +if test $ac_cv_func_strtod = no; then + case " $LIBOBJS " in + *" strtod.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS strtod.$ac_objext" + ;; +esac + +ac_fn_c_check_func "$LINENO" "pow" "ac_cv_func_pow" +if test "x$ac_cv_func_pow" = xyes; then : + +fi + +if test $ac_cv_func_pow = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pow in -lm" >&5 +$as_echo_n "checking for pow in -lm... " >&6; } +if ${ac_cv_lib_m_pow+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pow (); +int +main () +{ +return pow (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_m_pow=yes +else + ac_cv_lib_m_pow=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_pow" >&5 +$as_echo "$ac_cv_lib_m_pow" >&6; } +if test "x$ac_cv_lib_m_pow" = xyes; then : + POW_LIB=-lm +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot find library containing definition of pow" >&5 +$as_echo "$as_me: WARNING: cannot find library containing definition of pow" >&2;} +fi + +fi + +fi + +for ac_func in floor +do : + ac_fn_c_check_func "$LINENO" "floor" "ac_cv_func_floor" +if test "x$ac_cv_func_floor" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FLOOR 1 +_ACEOF + +fi +done + +for ac_func in gethostbyaddr +do : + ac_fn_c_check_func "$LINENO" "gethostbyaddr" "ac_cv_func_gethostbyaddr" +if test "x$ac_cv_func_gethostbyaddr" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETHOSTBYADDR 1 +_ACEOF + +fi +done + +for ac_func in gethostbyname +do : + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETHOSTBYNAME 1 +_ACEOF + +fi +done + +for ac_func in gettimeofday +do : + ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday" +if test "x$ac_cv_func_gettimeofday" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETTIMEOFDAY 1 +_ACEOF + +fi +done + +for ac_func in malloc +do : + ac_fn_c_check_func "$LINENO" "malloc" "ac_cv_func_malloc" +if test "x$ac_cv_func_malloc" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MALLOC 1 +_ACEOF + +fi +done + +for ac_func in memmove +do : + ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove" +if test "x$ac_cv_func_memmove" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MEMMOVE 1 +_ACEOF + +fi +done + +for ac_func in memset +do : + ac_fn_c_check_func "$LINENO" "memset" "ac_cv_func_memset" +if test "x$ac_cv_func_memset" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MEMSET 1 +_ACEOF + +fi +done + +for ac_func in mkfifo +do : + ac_fn_c_check_func "$LINENO" "mkfifo" "ac_cv_func_mkfifo" +if test "x$ac_cv_func_mkfifo" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MKFIFO 1 +_ACEOF + +fi +done + +for ac_func in realloc +do : + ac_fn_c_check_func "$LINENO" "realloc" "ac_cv_func_realloc" +if test "x$ac_cv_func_realloc" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_REALLOC 1 +_ACEOF + +fi +done + +for ac_func in realpath +do : + ac_fn_c_check_func "$LINENO" "realpath" "ac_cv_func_realpath" +if test "x$ac_cv_func_realpath" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_REALPATH 1 +_ACEOF + +fi +done + +for ac_func in regcomp +do : + ac_fn_c_check_func "$LINENO" "regcomp" "ac_cv_func_regcomp" +if test "x$ac_cv_func_regcomp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_REGCOMP 1 +_ACEOF + +fi +done + +for ac_func in select +do : + ac_fn_c_check_func "$LINENO" "select" "ac_cv_func_select" +if test "x$ac_cv_func_select" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SELECT 1 +_ACEOF + +fi +done + +for ac_func in setlocale +do : + ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale" +if test "x$ac_cv_func_setlocale" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SETLOCALE 1 +_ACEOF + +fi +done + +for ac_func in socket +do : + ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket" +if test "x$ac_cv_func_socket" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SOCKET 1 +_ACEOF + +fi +done + +for ac_func in strcasecmp +do : + ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" +if test "x$ac_cv_func_strcasecmp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRCASECMP 1 +_ACEOF + +fi +done + +for ac_func in strchr +do : + ac_fn_c_check_func "$LINENO" "strchr" "ac_cv_func_strchr" +if test "x$ac_cv_func_strchr" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRCHR 1 +_ACEOF + +fi +done + +for ac_func in strcspn +do : + ac_fn_c_check_func "$LINENO" "strcspn" "ac_cv_func_strcspn" +if test "x$ac_cv_func_strcspn" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRCSPN 1 +_ACEOF + +fi +done + +for ac_func in strdup +do : + ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup" +if test "x$ac_cv_func_strdup" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRDUP 1 +_ACEOF + +fi +done + +for ac_func in strerror +do : + ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" +if test "x$ac_cv_func_strerror" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRERROR 1 +_ACEOF + +fi +done + +for ac_func in strncasecmp +do : + ac_fn_c_check_func "$LINENO" "strncasecmp" "ac_cv_func_strncasecmp" +if test "x$ac_cv_func_strncasecmp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRNCASECMP 1 +_ACEOF + +fi +done + +for ac_func in strpbrk +do : + ac_fn_c_check_func "$LINENO" "strpbrk" "ac_cv_func_strpbrk" +if test "x$ac_cv_func_strpbrk" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRPBRK 1 +_ACEOF + +fi +done + +for ac_func in strrchr +do : + ac_fn_c_check_func "$LINENO" "strrchr" "ac_cv_func_strrchr" +if test "x$ac_cv_func_strrchr" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRRCHR 1 +_ACEOF + +fi +done + +for ac_func in strspn +do : + ac_fn_c_check_func "$LINENO" "strspn" "ac_cv_func_strspn" +if test "x$ac_cv_func_strspn" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRSPN 1 +_ACEOF + +fi +done + +for ac_func in strstr +do : + ac_fn_c_check_func "$LINENO" "strstr" "ac_cv_func_strstr" +if test "x$ac_cv_func_strstr" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRSTR 1 +_ACEOF + +fi +done + +for ac_func in strtol +do : + ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" +if test "x$ac_cv_func_strtol" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRTOL 1 +_ACEOF + +fi +done + +for ac_func in strtoull +do : + ac_fn_c_check_func "$LINENO" "strtoull" "ac_cv_func_strtoull" +if test "x$ac_cv_func_strtoull" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRTOULL 1 +_ACEOF + +fi +done + + +ac_config_files="$ac_config_files Makefile po/Makefile.in" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DEBUG_TRUE}" && test -z "${DEBUG_FALSE}"; then + as_fn_error $? "conditional \"DEBUG\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${WITH_RDYNAMIC_TRUE}" && test -z "${WITH_RDYNAMIC_FALSE}"; then + as_fn_error $? "conditional \"WITH_RDYNAMIC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GEOIP_LEGACY_TRUE}" && test -z "${GEOIP_LEGACY_FALSE}"; then + as_fn_error $? "conditional \"GEOIP_LEGACY\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GEOIP_MMDB_TRUE}" && test -z "${GEOIP_MMDB_FALSE}"; then + as_fn_error $? "conditional \"GEOIP_MMDB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${TCB_TRUE}" && test -z "${TCB_FALSE}"; then + as_fn_error $? "conditional \"TCB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAS_SEDTR_TRUE}" && test -z "${HAS_SEDTR_FALSE}"; then + as_fn_error $? "conditional \"HAS_SEDTR\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by goaccess $as_me 1.3, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +goaccess home page: ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +goaccess config.status 1.3 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "po-directories":C) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +cat << EOF + +Your build configuration: + + Prefix : $prefix + Package : $PACKAGE_NAME + Version : $VERSION + Compiler flags : $CFLAGS + Linker flags : $LIBS $LDFLAGS + Dynamic buffer : $with_getline + Geolocation : $geolocation + Storage method : $storage + TLS/SSL : $openssl + Bugs : $PACKAGE_BUGREPORT + +EOF diff --git a/src/goaccess++/configure.ac b/src/goaccess++/configure.ac new file mode 100644 index 0000000..9c5822c --- /dev/null +++ b/src/goaccess++/configure.ac @@ -0,0 +1,309 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.59) +AC_INIT([goaccess], [1.3], [goaccess@prosoftcorp.com], [], [http://goaccess.io]) +AM_INIT_AUTOMAKE +AC_CONFIG_SRCDIR([src/goaccess.c]) +AC_CONFIG_HEADERS([src/config.h]) + +# Use empty CFLAGS by default so autoconf does not add +# CFLAGS="-O2 -g" +# NOTE: Needs to go after AC_INIT and before AC_PROG_CC to select an +# empty default instead. +: ${CFLAGS=""} + +# Checks for programs. +AC_PROG_CC +AM_PROG_CC_C_O + +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.18]) +# Fix `undefined reference to `libintl_gettext'` on docker: +AC_CHECK_LIB([intl], [libintl_dgettext]) + +# pthread +AC_CHECK_LIB([pthread], [pthread_create], [], [AC_MSG_ERROR([pthread is missing])]) +CFLAGS="$CFLAGS -pthread" + +# DEBUG +AC_ARG_ENABLE(debug, [ --enable-debug Create a debug build. Default is disabled], + [debug="$enableval"], debug=no) + +if test "$debug" = "yes"; then + AC_DEFINE([_DEBUG], 1, [Debug option]) +fi +AM_CONDITIONAL([DEBUG], [test "x$debug" = "xyes"]) + +# Handle rdynamic only on systems using GNU ld +AC_CANONICAL_HOST +AC_MSG_CHECKING([whether to build with rdynamic for GNU ld]) +with_rdyanimc=yes +case "$host_os" in + *darwin*|*cygwin*|*aix*|*mingw*) with_rdyanimc=no + ;; +esac +AC_MSG_RESULT([$with_rdyanimc]) +AM_CONDITIONAL([WITH_RDYNAMIC], [test "x$with_rdyanimc" = "xyes"]) + +# Build with OpenSSL +AC_ARG_WITH([openssl],AC_HELP_STRING([--with-openssl], [build with OpenSSL support]), + [openssl="$withval"],[openssl="no"]) + +if test "$openssl" = 'yes'; then + AC_CHECK_LIB([ssl], [SSL_CTX_new],,[AC_MSG_ERROR([ssl library missing])]) + AC_CHECK_LIB([crypto], [CRYPTO_free],,[AC_MSG_ERROR([crypto library missing])]) +fi + +# GeoIP +AC_ARG_ENABLE(geoip, [ --enable-geoip Enable GeoIP country lookup. Default is disabled], + [geoip="$enableval"], geoip=no) + +geolocation="N/A" +if test "$geoip" = "mmdb"; then + AC_CHECK_LIB([maxminddb], [MMDB_open], [], [AC_MSG_ERROR([ + *** Missing development files for libmaxminddb library. + ])]) + geolocation="GeoIP2" + AC_DEFINE([HAVE_GEOLOCATION], 1, [Build using GeoIP.]) +elif test "$geoip" = "legacy"; then + AC_CHECK_LIB([GeoIP], [GeoIP_new], [], [AC_MSG_ERROR([ + *** Missing development files for the GeoIP library + ])]) + geolocation="GeoIP Legacy" + AC_DEFINE([HAVE_GEOLOCATION], 1, [Build using GeoIP.]) +fi +AM_CONDITIONAL([GEOIP_LEGACY], [test "x$geoip" = "xlegacy"]) +AM_CONDITIONAL([GEOIP_MMDB], [test "x$geoip" = "xmmdb"]) + +# GNU getline / POSIX.1-2008 +AC_ARG_WITH(getline, [ --with-getline Build using dynamic line buffer.], + [with_getline=$withval], [with_getline=no]) + +if test "$with_getline" = "yes"; then + AC_DEFINE([WITH_GETLINE], 1, [Build using GNU getline.]) +fi + +# UTF8 +AC_ARG_ENABLE(utf8, [ --enable-utf8 Enable ncurses library that handles wide characters], + [utf8="$enableval"], utf8=no) + +if test "$utf8" = "yes"; then + libncursesw=ncursesw + # Simply called libncurses on OS X + case "$host_os" in + *darwin*) libncursesw=ncurses + ;; + esac + + AC_CHECK_LIB([$libncursesw], [mvaddwstr], [], + [AC_MSG_ERROR([*** Missing development libraries for ncursesw])]) + AC_SEARCH_LIBS([tputs], [tinfow], ,[AC_MSG_ERROR([Cannot find a library providing tputs])]) + AC_DEFINE([HAVE_LIBNCURSESW], [1], ["ncursesw is present."]) + + have_ncurses="yes" + AC_CHECK_HEADERS([ncursesw/ncurses.h],[have_ncurses=yes], [], [ + #ifdef HAVE_NCURSESW_NCURSES_H + #include + #endif + ]) + + AC_CHECK_HEADERS([ncurses.h],[have_ncurses=yes], [], [ + #ifdef HAVE_NCURSES_H + #include + #endif + ]) + + if test "$have_ncurses" != "yes"; then + AC_MSG_ERROR([Missing ncursesw header file]) + fi +else + AC_CHECK_LIB([ncurses], [refresh], [], + [AC_MSG_ERROR([*** Missing development libraries for ncurses])]) + AC_SEARCH_LIBS([tputs], [tinfo], ,[AC_MSG_ERROR([Cannot find a library providing tputs])]) + + have_ncurses="yes" + AC_CHECK_HEADERS([ncurses/ncurses.h],[have_ncurses=yes], [], [ + #ifdef HAVE_NCURSES_NCURSES_H + #include + #endif + ]) + + AC_CHECK_HEADERS([ncurses.h],[have_ncurses=yes], [], [ + #ifdef HAVE_NCURSES_H + #include + #endif + ]) + + AC_CHECK_HEADERS([curses.h],[have_ncurses=yes], [], [ + #ifdef HAVE_CURSES_H + #include + #endif + ]) + + if test "$have_ncurses" != "yes"; then + AC_MSG_ERROR([Missing ncursesw header file]) + fi +fi + +# Tokyo Cabinet +AC_ARG_ENABLE(tcb, [ --enable-tcb Enable TokyoCabinet database. Default is disabled], + [tcb="$enableval"], tcb=no) + +WITH_TC=no +if test "$tcb" = "memhash"; then + WITH_TC=yes + AC_DEFINE([TCB_MEMHASH], [1], ["Build using on-memory hash database"]) +elif test "$tcb" = "btree"; then + AC_DEFINE([TCB_BTREE], [1], ["Build using on-disk B+ Tree database"]) + WITH_TC=yes +fi + +if test "$WITH_TC" = "yes"; then + AC_CHECK_LIB([tokyocabinet], [tchdbnew], [], + [AC_MSG_ERROR([*** Missing development libraries for Tokyo Cabinet Database])]) + + AC_ARG_ENABLE([zlib], [ --disable-zlib Build without ZLIB compression], + [zlib="$enableval"], zlib=yes) + + if test "$zlib" = "yes"; then + AC_CHECK_LIB(z, gzread, [Z_FLAG=-lz], AC_MSG_ERROR([ + *** zlib is required. If zlib compression is not needed + *** you can use --disable-zlib. + *** Debian based distributions zlib1g-dev + *** Red Hat based distributions zlib-devel + ])) + AC_DEFINE([HAVE_ZLIB], [1], ["Build using ZLIB"]) + LDFLAGS="$LDFLAGS $Z_FLAG" + fi + + AC_ARG_ENABLE([bzip], [ --disable-bzip Build without BZIP2 compression], + [bz2="$enableval"], bz2=yes) + + if test "$bz2" = "yes"; then + AC_CHECK_LIB(bz2, BZ2_bzopen, [BZ2_FLAG=-lbz2], AC_MSG_ERROR([ + *** BZIP2 is required. If BZIP2 compression is not needed + *** you can use --disable-bzip. + *** Debian based distributions libbz2-dev + *** Red Hat based distributions bzip2-devel + ])) + AC_DEFINE([HAVE_BZ2], [1], ["Build using BZ2"]) + LDFLAGS="$LDFLAGS $BZ2_FLAG" + fi + + case "$host_os" in + *darwin*|*bsd*) + LDFLAGS="$LDFLAGS -ltokyocabinet -lc" + ;; + *) + LDFLAGS="$LDFLAGS -ltokyocabinet -lrt -lc" + ;; + esac +fi +AM_CONDITIONAL([TCB], [test "$WITH_TC" = "yes"]) + +if test "$tcb" = "memhash"; then + storage="In-memory Hash Database (Tokyo Cabinet)" +elif test "$tcb" = "btree"; then + storage="On-disk B+ Tree Database (Tokyo Cabinet)" +else + storage="In-memory Hash Database (Default)" +fi + +HAS_SEDTR=no +AC_CHECK_PROG([SED_CHECK],[sed],[yes],[no]) +if test x"$SED_CHECK" == x"yes" ; then + AC_CHECK_PROG([TR_CHECK],[tr],[yes],[no]) + if test x"$TR_CHECK" == x"yes" ; then + HAS_SEDTR=yes + fi +fi +AM_CONDITIONAL([HAS_SEDTR], [test "x$HAS_SEDTR" = xyes]) + +# Solaris +AC_CHECK_LIB([nsl], [gethostbyname]) +AC_CHECK_LIB([socket], [socket]) + +# Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS([arpa/inet.h]) +AC_CHECK_HEADERS([fcntl.h]) +AC_CHECK_HEADERS([inttypes.h]) +AC_CHECK_HEADERS([limits.h]) +AC_CHECK_HEADERS([locale.h]) +AC_CHECK_HEADERS([netdb.h]) +AC_CHECK_HEADERS([netinet/in.h]) +AC_CHECK_HEADERS([stddef.h]) +AC_CHECK_HEADERS([stdint.h]) +AC_CHECK_HEADERS([stdlib.h]) +AC_CHECK_HEADERS([string.h]) +AC_CHECK_HEADERS([strings.h]) +AC_CHECK_HEADERS([sys/socket.h]) +AC_CHECK_HEADERS([sys/time.h]) +AC_CHECK_HEADERS([unistd.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_CHECK_TYPES([ptrdiff_t]) +AC_STRUCT_TM +AC_TYPE_INT64_T +AC_TYPE_INT8_T +AC_TYPE_OFF_T +AC_TYPE_SIZE_T +AC_TYPE_UINT32_T +AC_TYPE_UINT64_T +AC_TYPE_UINT8_T + +# Checks for library functions. +AC_FUNC_FSEEKO +AC_FUNC_MEMCMP +AC_FUNC_MKTIME +AC_FUNC_STAT +AC_FUNC_STRFTIME +AC_FUNC_STRTOD +AC_CHECK_FUNCS([floor]) +AC_CHECK_FUNCS([gethostbyaddr]) +AC_CHECK_FUNCS([gethostbyname]) +AC_CHECK_FUNCS([gettimeofday]) +AC_CHECK_FUNCS([malloc]) +AC_CHECK_FUNCS([memmove]) +AC_CHECK_FUNCS([memset]) +AC_CHECK_FUNCS([mkfifo]) +AC_CHECK_FUNCS([realloc]) +AC_CHECK_FUNCS([realpath]) +AC_CHECK_FUNCS([regcomp]) +AC_CHECK_FUNCS([select]) +AC_CHECK_FUNCS([setlocale]) +AC_CHECK_FUNCS([socket]) +AC_CHECK_FUNCS([strcasecmp]) +AC_CHECK_FUNCS([strchr]) +AC_CHECK_FUNCS([strcspn]) +AC_CHECK_FUNCS([strdup]) +AC_CHECK_FUNCS([strerror]) +AC_CHECK_FUNCS([strncasecmp]) +AC_CHECK_FUNCS([strpbrk]) +AC_CHECK_FUNCS([strrchr]) +AC_CHECK_FUNCS([strspn]) +AC_CHECK_FUNCS([strstr]) +AC_CHECK_FUNCS([strtol]) +AC_CHECK_FUNCS([strtoull]) + +AC_CONFIG_FILES([Makefile po/Makefile.in]) +AC_OUTPUT + +cat << EOF + +Your build configuration: + + Prefix : $prefix + Package : $PACKAGE_NAME + Version : $VERSION + Compiler flags : $CFLAGS + Linker flags : $LIBS $LDFLAGS + Dynamic buffer : $with_getline + Geolocation : $geolocation + Storage method : $storage + TLS/SSL : $openssl + Bugs : $PACKAGE_BUGREPORT + +EOF diff --git a/src/goaccess++/depcomp b/src/goaccess++/depcomp new file mode 100644 index 0000000..25a39e6 --- /dev/null +++ b/src/goaccess++/depcomp @@ -0,0 +1,708 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2012-03-27.16; # UTC + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' "$nl" < "$tmpdepfile" | +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependent.h'. + # Do two passes, one to just change these to + # '$object: dependent.h' and one to simply 'dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. + # However on + # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\': + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + # tcc 0.9.26 (FIXME still under development at the moment of writing) + # will emit a similar output, but also prepend the continuation lines + # with horizontal tabulation characters. + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form 'foo.o: dependent.h', + # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. + # Do two passes, one to just change these to + # '$object: dependent.h' and one to simply 'dependent.h:'. + sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ + < "$tmpdepfile" > "$depfile" + sed ' + s/[ '"$tab"'][ '"$tab"']*/ /g + s/^ *// + s/ *\\*$// + s/^[^:]*: *// + /^$/d + /:$/d + s/$/ :/ + ' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test "$stat" = 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' "$nl" < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/src/goaccess++/goaccess b/src/goaccess++/goaccess new file mode 100644 index 0000000000000000000000000000000000000000..66ff7bf34ccb0a4bd9048cebb998afba60eb6eb6 GIT binary patch literal 707704 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

    hHwrB_065q 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

    4qy6~KtPMiq`cyLD3ZAN%w{E3ZkPL>cbz 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 z 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%0Ay=ey{aBJjelf6)(h>IA3(l+50P&} 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 TN3Hxz9+v$2cc)a|oB#g+^oHU< literal 0 HcmV?d00001 diff --git a/src/goaccess++/goaccess.1 b/src/goaccess++/goaccess.1 new file mode 100644 index 0000000..78d35ee --- /dev/null +++ b/src/goaccess++/goaccess.1 @@ -0,0 +1,1166 @@ +.TH goaccess 1 "NOVEMBER 2018" Linux "User Manuals" +.SH NAME +goaccess \- fast web log analyzer and interactive viewer. +.SH SYNOPSIS +.LP +.B goaccess [filename] [options...] [-c][-M][-H][-q][-d][...] +.SH DESCRIPTION +.B goaccess +GoAccess is an open source real-time web log analyzer and interactive viewer +that runs in a +.I terminal +in *nix systems or through your +.I browser. +.P +It provides fast and valuable HTTP statistics for system administrators that +require a visual server report on the fly. +.P +GoAccess parses the specified web log file and outputs the data to the X +terminal. Features include: + +.IP "General Statistics:" +This panel gives a summary of several metrics, such as the number of valid and +invalid requests, time taken to analyze the dataset, unique visitors, requested +files, static files (CSS, ICO, JPG, etc) HTTP referrers, 404s, size of the +parsed log file and bandwidth consumption. +.IP "Unique visitors" +This panel shows metrics such as hits, unique visitors and cumulative bandwidth +per date. HTTP requests containing the same IP, the same date, and the same +user agent are considered a unique visitor. By default, it includes web +crawlers/spiders. +.IP +Optionally, date specificity can be set to the hour level using +.I --date-spec=hr +which will display dates such as 05/Jun/2016:16. This is great if you want to +track your daily traffic at the hour level. +.IP "Requested files" +This panel displays the most requested files on your web server. It shows hits, +unique visitors, and percentage, along with the cumulative bandwidth, protocol, +and the request method used. +.IP "Requested static files" +Lists the most frequently static files such as: JPG, CSS, SWF, JS, GIF, and PNG +file types, along with the same metrics as the last panel. Additional static +files can be added to the configuration file. +.IP "404 or Not Found" +Displays the same metrics as the previous request panels, however, its data +contains all pages that were not found on the server, or commonly known as 404 +status code. +.IP "Hosts" +This panel has detailed information on the hosts themselves. This is great for +spotting aggressive crawlers and identifying who's eating your bandwidth. + +Expanding the panel can display more information such as host's reverse DNS +lookup result, country of origin and city. If the +.I -a +argument is enabled, a list of user agents can be displayed by selecting the +desired IP address, and then pressing ENTER. +.IP "Operating Systems" +This panel will report which operating system the host used when it hit the +server. It attempts to provide the most specific version of each operating +system. +.IP "Browsers" +This panel will report which browser the host used when it hit the server. It +attempts to provide the most specific version of each browser. +.IP "Visit Times" +This panel will display an hourly report. This option displays 24 data points, +one for each hour of the day. +.IP +Optionally, hour specificity can be set to the tenth of an hour level using +.I --hour-spec=min +which will display hours as 16:4 This is great if you want to spot peaks of +traffic on your server. +.IP "Virtual Hosts" +This panel will display all the different virtual hosts parsed from the access +log. This panel is displayed if +.I %v +is used within the log-format string. +.IP "Referrers URLs" +If the host in question accessed the site via another resource, or was +linked/diverted to you from another host, the URL they were referred from will +be provided in this panel. See `--ignore-panel` in your configuration file to +enable it. +.I disabled +by default. +.IP "Referring Sites" +This panel will display only the host part but not the whole URL. The URL where +the request came from. +.IP "Keyphrases" +It reports keyphrases used on Google search, Google cache, and Google translate +that have lead to your web server. At present, it only supports Google search +queries via HTTP. See `--ignore-panel` in your configuration file to enable it. +.I disabled +by default. +.IP "Geo Location" +Determines where an IP address is geographically located. Statistics are broken +down by continent and country. It needs to be compiled with GeoLocation +support. +.IP "HTTP Status Codes" +The values of the numeric status code to HTTP requests. +.IP "Remote User (HTTP authentication)" +This is the userid of the person requesting the document as determined by HTTP +authentication. If the document is not password protected, this part will be +"-" just like the previous one. This panel is not enabled unless +.I %e +is given within the log-format variable. + +.P +.I NOTE: +Optionally and if configured, all panels can display the average time taken to +serve the request. + +.SH STORAGE +.P +There are three storage options that can be used with GoAccess. Choosing one +will depend on your environment and needs. +.TP +Default Hash Tables +In-memory storage provides better performance at the cost of limiting the +dataset size to the amount of available physical memory. By default GoAccess +uses in-memory hash tables. If your dataset can fit in memory, then this will +perform fine. It has very good memory usage and pretty good performance. +.TP +Tokyo Cabinet On-Disk B+ Tree +Use this storage method for large datasets where it is not possible to fit +everything in memory. The B+ tree database is slower than any of the hash +databases since data has to be committed to disk. However, using an SSD greatly +increases the performance. You may also use this storage method if you need +data persistence to quickly load statistics at a later date. +.TP +Tokyo Cabinet In-memory Hash Database +An alternative to the default hash tables. It uses generic typing and thus it's +performance in terms of memory and speed is average. +.SH CONFIGURATION +.P +Multiple options can be used to configure GoAccess. For a complete up-to-date +list of configure options, run +.I ./configure --help +.TP +\fB\-\-enable-debug +Compile with debugging symbols and turn off compiler optimizations. +.TP +\fB\-\-enable-utf8 +Compile with wide character support. Ncursesw is required. +.TP +\fB\-\-enable-geoip= +Compile with GeoLocation support. MaxMind's GeoIP is required. +.I legacy +will utilize the original GeoIP databases. +.I mmdb +will utilize the enhanced GeoIP2 databases. +.TP +\fB\-\-enable-tcb= +Compile with Tokyo Cabinet storage support. +.I memhash +will utilize Tokyo Cabinet's on-memory hash database. +.I btree +will utilize Tokyo Cabinet's on-disk B+ Tree database. +.TP +\fB\-\-disable-zlib +Disable zlib compression on B+ Tree database. +.TP +\fB\-\-disable-bzip +Disable bzip2 compression on B+ Tree database. +.TP +\fB\-\-with-getline +Dynamically expands line buffer in order to parse full line requests instead of +using a fixed size buffer of 4096. +.TP +\fB\-\-with-openssl +Compile GoAccess with OpenSSL support for its WebSocket server. +.SH OPTIONS +.P +The following options can be supplied to the command or specified in the +configuration file. If specified in the configuration file, long options need +to be used without prepending -- and without using the equal sign =. +.SS +LOG/DATE/TIME FORMAT +.TP +\fB\-\-time-format= +The time-format variable followed by a space, specifies the log format time +containing either a name of a predefined format (see options below) or any +combination of regular characters and special format specifiers. +.IP +They all begin with a percentage (%) sign. See `man strftime`. +.I %T or %H:%M:%S. +.IP +Note that if a timestamp is given in microseconds, +.I %f +must be used as time-format +.TP +\fB\-\-date-format= +The date-format variable followed by a space, specifies the log format time +containing either a name of a predefined format (see options below) or any +combination of regular characters and special format specifiers. +.IP +They all begin with a percentage (%) sign. See `man strftime`. +.I %Y-%m-%d. +.IP +Note that if a timestamp is given in microseconds, +.I +%f +must be used as date-format +.TP +\fB\-\-log-format= +The log-format variable followed by a space or +.I \\\\t +for tab-delimited, specifies the log format string. + +Note that if there are spaces within the format, the string needs to be +enclosed in single/double quotes. Inner quotes need to be escaped. +.IP +In addition to specifying the raw log/date/time formats, for simplicity, any of +the following predefined log format names can be supplied to the +log/date/time-format variables. GoAccess can also handle one predefined name in +one variable and another predefined name in another variable. +.IP + COMBINED - Combined Log Format, + VCOMBINED - Combined Log Format with Virtual Host, + COMMON - Common Log Format, + VCOMMON - Common Log Format with Virtual Host, + W3C - W3C Extended Log File Format, + SQUID - Native Squid Log Format, + CLOUDFRONT - Amazon CloudFront Web Distribution, + CLOUDSTORAGE - Google Cloud Storage, + AWSELB - Amazon Elastic Load Balancing, + AWSS3 - Amazon Simple Storage Service (S3) +.IP +.I Note: +Piping data into GoAccess won't prompt a log/date/time configuration dialog, +you will need to previously define it in your configuration file or in the +command line. +.SS +USER INTERFACE OPTIONS +.TP +\fB\-c \-\-config-dialog +Prompt log/time/date configuration window on program start. Only when curses is +initialized. +.TP +\fB\-i \-\-hl-header +Color highlight active terminal panel. +.TP +\fB\-m \-\-with-mouse +Enable mouse support on main terminal dashboard. +.TP +\fB\-\-\-color= +Specify custom colors for the terminal output. + +.I Color Syntax + DEFINITION space/tab colorFG#:colorBG# [attributes,PANEL] + + FG# = foreground color [-1...255] (-1 = default term color) + BG# = background color [-1...255] (-1 = default term color) + +Optionally, it is possible to apply color attributes (multiple attributes are +comma separated), such as: +.I bold, +.I underline, +.I normal, +.I reverse, +.I blink + +If desired, it is possible to apply custom colors per panel, that is, a metric +in the REQUESTS panel can be of color A, while the same metric in the BROWSERS +panel can be of color B. + +.I Available color definitions: + COLOR_MTRC_HITS + COLOR_MTRC_VISITORS + COLOR_MTRC_DATA + COLOR_MTRC_BW + COLOR_MTRC_AVGTS + COLOR_MTRC_CUMTS + COLOR_MTRC_MAXTS + COLOR_MTRC_PROT + COLOR_MTRC_MTHD + COLOR_MTRC_HITS_PERC + COLOR_MTRC_HITS_PERC_MAX + COLOR_MTRC_VISITORS_PERC + COLOR_MTRC_VISITORS_PERC_MAX + COLOR_PANEL_COLS + COLOR_BARS + COLOR_ERROR + COLOR_SELECTED + COLOR_PANEL_ACTIVE + COLOR_PANEL_HEADER + COLOR_PANEL_DESC + COLOR_OVERALL_LBLS + COLOR_OVERALL_VALS + COLOR_OVERALL_PATH + COLOR_ACTIVE_LABEL + COLOR_BG + COLOR_DEFAULT + COLOR_PROGRESS + +See configuration file for a sample color scheme. +.TP +\fB\-\-color-scheme=<1|2|3> +Choose among color schemes. +.I 1 +for the default grey scheme. +.I 2 +for the green scheme. +.I 3 +for the Monokai scheme (shown only if terminal supports 256 colors). +.TP +\fB\-\-crawlers-only +Parse and display only crawlers (bots). +.TP +\fB\-\-html-custom-css= +Specifies a custom CSS file path to load in the HTML report. +.TP +\fB\-\-html-custom-js= +Specifies a custom JS file path to load in the HTML report. +.TP +\fB\-\-html-report-title= +Set HTML report page title and header. +.TP +\fB\-\-html-prefs=<JSON> +Set HTML report default preferences. Supply a valid JSON object containing the +HTML preferences. It allows the ability to customize each panel plot. See +example below. +.IP +.I Note: +The JSON object passed needs to be a one line JSON string. For instance, +.IP +\-\-html-prefs='{"theme":"bright","perPage":5,"layout":"horizontal","showTables":true,"visitors":{"plot":{"chartType":"bar"}}}' +.TP +\fB\-\-json-pretty-print +Format JSON output using tabs and newlines. +.IP +.I Note: +This is not recommended when outputting a real-time HTML report since the +WebSocket payload will much much larger. +.TP +\fB\-\-max-items=<number> +The maximum number of items to display per panel. The maximum can be a number +between 1 and n. +.IP +.I Note: +Only the CSV and JSON output allow a maximum number greater than the default +value of 366 (or 50 in the real-time HTML output) items per panel. +.TP +\fB\-\-no-color +Turn off colored output. This is the default output on terminals that do not +support colors. +.TP +\fB\-\-no-column-names +Don't write column names in the terminal output. By default, it displays column +names for each available metric in every panel. +.TP +\fB\-\-no-csv-summary +Disable summary metrics on the CSV output. +.TP +\fB\-\-no-progress +Disable progress metrics [total requests/requests per second]. +.TP +\fB\-\-no-tab-scroll +Disable scrolling through panels when TAB is pressed or when a panel is +selected using a numeric key. +.TP +\fB\-\-no-html-last-updated +Do not show the last updated field displayed in the HTML generated report. +.TP +\fB\-\-no-parsing-spinner +Do now show the progress metrics and parsing spinner. +.SS +SERVER OPTIONS +.TP +\fB\-\-addr +Specify IP address to bind the server to. Otherwise it binds to 0.0.0.0. +.IP +Usually there is no need to specify the address, unless you intentionally would +like to bind the server to a different address within your server. +.TP +\fB\-\-daemonize +Run GoAccess as daemon (only if \fB\-\-real-time-html enabled). +.IP +Note: It's important to make use of absolute paths across GoAccess' +configuration. +.TP +\fB\-\-origin=<url> +Ensure clients send the specified origin header upon the WebSocket handshake. +.TP +\fB\-\-pid-file=<path/goaccess.pid> +Write the daemon PID to a file when used along the --daemonize option. +.TP +\fB\-\-port=<port> +Specify the port to use. By default GoAccess' WebSocket server listens on port +7890. +.TP +\fB\-\-real-time-html +Enable real-time HTML output. +.IP +GoAccess uses its own WebSocket server to push the data from the server to the +client. See http://gwsocket.io for more details how the WebSocket server works. +.TP +\fB\-\-ws-url=<[scheme://]url[:port]> +URL to which the WebSocket server responds. This is the URL supplied to the +WebSocket constructor on the client side. +.IP +Optionally, it is possible to specify the WebSocket URI scheme, such as +.I ws:// +or +.I wss:// +for unencrypted and encrypted connections. e.g., +.I +wss://goaccess.io +.IP +If GoAccess is running behind a proxy, you could set the client side to connect +to a different port by specifying the host followed by a colon and the port. +e.g., +.I goaccess.io:9999 +. e.g., +.IP +By default, it will attempt to connect to the generated report's hostname. If +GoAccess is running on a remote server, the host of the remote server should be +specified here. Also, make sure it is a valid host and NOT an http address. +.TP +\fB\-\-fifo-in=<path/file> +Creates a named pipe (FIFO) that reads from on the given path/file. +.TP +\fB\-\-fifo-out=<path/file> +Creates a named pipe (FIFO) that writes to the given path/file. +.TP +\fB\-\-ssl-cert=<cert.crt> +Path to TLS/SSL certificate. In order to enable TLS/SSL support, GoAccess +requires that \-\-ssl-cert and \-\-ssl-key are used. + +Only if configured using --with-openssl +.TP +\fB\-\-ssl-key=<priv.key> +Path to TLS/SSL private key. In order to enable TLS/SSL support, GoAccess +requires that \-\-ssl-cert and \-\-ssl-key are used. + +Only if configured using --with-openssl +.SS +FILE OPTIONS +.TP +\fB\-f \-\-log-file=<logfile> +Specify the path to the input log file. If set in the config file, it will take +priority over -f from the command line. +.TP +\fB\-S \-\-log-size=<bytes> +Specify the log size in bytes. This is useful when piping in logs for +processing in which the log size can be explicitly set. +.TP +\fB\-l \-\-debug-file=<debugfile> +Send all debug messages to the specified file. +.TP +\fB\-p \-\-config-file=<configfile> +Specify a custom configuration file to use. If set, it will take priority over +the global configuration file (if any). +.TP +\fB\-\-invalid-requests=<filename> +Log invalid requests to the specified file. +.TP +\fB\-\-no-global-config +Do not load the global configuration file. This directory should normally be +/usr/local/etc, unless specified with +.I --sysconfdir=/dir. +See --dcf option for finding the default configuration file. +.SS +PARSE OPTIONS +.TP +\fB\-a \-\-agent-list +Enable a list of user-agents by host. For faster parsing, do not enable this +flag. +.TP +\fB\-d \-\-with-output-resolver +Enable IP resolver on HTML|JSON output. +.TP +\fB\-e \-\-exclude-ip=<IP|IP-range> +Exclude an IPv4 or IPv6 from being counted. +Ranges can be included as well using a dash in between the IPs (start-end). +.IP +.I Examples: + exclude-ip 127.0.0.1 + exclude-ip 192.168.0.1-192.168.0.100 + exclude-ip ::1 + exclude-ip 0:0:0:0:0:ffff:808:804-0:0:0:0:0:ffff:808:808 +.TP +\fB\-H \-\-http-protocol=<yes|no> +Set/unset HTTP request protocol. This will create a request key containing the +request protocol + the actual request. +.TP +\fB\-M \-\-http-method=<yes|no> +Set/unset HTTP request method. This will create a request key containing the +request method + the actual request. +.TP +\fB\-o \-\-output=<path/file.[json|csv|html]> +Write output to stdout given one of the following files and the corresponding +extension for the output format: +.IP + /path/file.csv - Comma-separated values (CSV) + /path/file.json - JSON (JavaScript Object Notation) + /path/file.html - HTML +.TP +\fB\-q \-\-no-query-string +Ignore request's query string. i.e., www.google.com/page.htm?query => +www.google.com/page.htm. +.IP +.I Note: +Removing the query string can greatly decrease memory consumption, especially +on timestamped requests. +.TP +\fB\-r \-\-no-term-resolver +Disable IP resolver on terminal output. +.TP +\fB\-\-444-as-404 +Treat non-standard status code 444 as 404. +.TP +\fB\-\-4xx-to-unique-count +Add 4xx client errors to the unique visitors count. +.TP +\fB\-\-accumulated-time +Store accumulated processing time from parsing day-by-day logs. + +Only if configured with --enable-tcb=btree +.TP +\fB\-\-anonymize-ip +Anonymize the client IP address. The IP anonymization option sets the last +octet of IPv4 user IP addresses and the last 80 bits of IPv6 addresses to +zeros. +e.g., 192.168.20.100 => 192.168.20.0 +e.g., 2a03:2880:2110:df07:face:b00c::1 => 2a03:2880:2110:df07:: +.TP +\fB\-\-all-static-files +Include static files that contain a query string. e.g., +/fonts/fontawesome-webfont.woff?v=4.0.3 +.TP +\fB\-\-browsers-file=<path> +Include an additional delimited list of browsers/crawlers/feeds etc. +See config/browsers.list for an example or +https://raw.githubusercontent.com/allinurl/goaccess/master/config/browsers.list +.TP +\fB\-\-date-spec=<date|hr> +Set the date specificity to either date (default) or hr to display hours +appended to the date. +.IP +This is used in the visitors panel. It's useful for tracking visitors at the +hour level. For instance, an hour specificity would yield to display traffic as +18/Dec/2010:19 +.TP +\fB\-\-double-decode +Decode double-encoded values. This includes, user-agent, request, and referer. +.TP +\fB\-\-enable-panel=<PANEL> +Enable parsing and displaying the given panel. +.IP +.I Available panels: + VISITORS + REQUESTS + REQUESTS_STATIC + NOT_FOUND + HOSTS + OS + BROWSERS + VISIT_TIMES + VIRTUAL_HOSTS + REFERRERS + REFERRING_SITES + KEYPHRASES + STATUS_CODES + REMOTE_USER + GEO_LOCATION +.TP +\fB\-\-hide-referer=<NEEDLE> +Hide a referer but still count it. Wild cards are allowed in the needle. i.e., +*.bing.com. +.TP +\fB\-\-hour-spec=<hr|min> +Set the time specificity to either hour (default) or min to display the tenth +of an hour appended to the hour. +.IP +This is used in the time distribution panel. It's useful for tracking peaks of +traffic on your server at specific times. +.TP +\fB\-\-ignore-crawlers +Ignore crawlers from being counted. +.TP +\fB\-\-ignore-panel=<PANEL> +Ignore parsing and displaying the given panel. +.IP +.I Available panels: + VISITORS + REQUESTS + REQUESTS_STATIC + NOT_FOUND + HOSTS + OS + BROWSERS + VISIT_TIMES + VIRTUAL_HOSTS + REFERRERS + REFERRING_SITES + KEYPHRASES + STATUS_CODES + REMOTE_USER +.TP +\fB\-\-ignore-referer=<referer> +Ignore referers from being counted. Wildcards allowed. e.g., +.I +*.domain.com +.I +ww?.domain.* +.TP +\fB\-\-ignore-status=<CODE> +Ignore parsing and displaying one or multiple status code(s). For multiple +status codes, use this option multiple times. +.TP +\fB\-\-num-tests=<number> +Number of lines from the access log to test against the provided log/date/time +format. By default, the parser is set to test 10 lines. If set to 0, the parser +won't test any lines and will parse the whole access log. If a line matches the +given log/date/time format before it reaches +.I <number>, +the parser will consider the log to be valid, otherwise GoAccess will return +EXIT_FAILURE and display the relevant error messages. +.TP +\fB\-\-process-and-exit +Parse log and exit without outputting data. Useful if we are looking to only +add new data to the on-disk database without outputting to a file or a +terminal. +.TP +\fB\-\-real-os +Display real OS names. e.g, Windows XP, Snow Leopard. +.TP +\fB\-\-sort-panel=<PANEL,FIELD,ORDER> +Sort panel on initial load. Sort options are separated by comma. Options are in +the form: PANEL,METRIC,ORDER +.IP +.I Available metrics: + BY_HITS - Sort by hits + BY_VISITORS - Sort by unique visitors + BY_DATA - Sort by data + BY_BW - Sort by bandwidth + BY_AVGTS - Sort by average time served + BY_CUMTS - Sort by cumulative time served + BY_MAXTS - Sort by maximum time served + BY_PROT - Sort by http protocol + BY_MTHD - Sort by http method +.IP +.I Available orders: + ASC + DESC +.TP +\fB\-\-static-file=<extension> +Add static file extension. e.g.: +.I .mp3 +Extensions are case sensitive. +.SS +GEOLOCATION OPTIONS +.TP +\fB\-g \-\-std-geoip +Standard GeoIP database for less memory usage. +.TP +\fB\-\-geoip-database=<geofile> +Specify path to GeoIP database file. i.e., GeoLiteCity.dat. + +If using GeoIP2, you will need to download the GeoLite2 City or Country +database from MaxMind.com and use the option --geoip-database to specify the +database. You can also get updated database files for GeoIP legacy, you can +find these as GeoLite Legacy Databases from MaxMind.com. IPv4 and IPv6 files +are supported as well. For updated DB URLs, please see the default GoAccess +configuration file. + +.I Note: +--geoip-city-data is an alias of --geoip-database. +.SS +OTHER OPTIONS +.TP +\fB\-h \-\-help +The help. +.TP +\fB\-s \-\-storage +Display current storage method. i.e., B+ Tree, Hash. +.TP +\fB\-V \-\-version +Display version information and exit. +.TP +\fB\-\-dcf +Display the path of the default config file when `-p` is not used. +.SS +ON-DISK STORAGE OPTIONS +.TP +\fB\-\-keep-db-files +Persist parsed data into disk. If database files exist, files will be +overwritten. This should be set to the first dataset. Setting it to false will +delete all database files when exiting the program. See examples below. + +Only if configured with --enable-tcb=btree +.TP +\fB\-\-load-from-disk +Load previously stored data from disk. If reading persisted data only, the +database files need to exist. See +.I keep-db-files +and examples below. + +Only if configured with --enable-tcb=btree +.TP +\fB\-\-db-path=<dir> +Path where the on-disk database files are stored. The default value is the +.I /tmp/goaccess<PID> +directory (created on-demand). + +Only if configured with --enable-tcb=btree +.TP +\fB\-\-xmmap=<num> +Set the size in bytes of the extra mapped memory. The default value is 0. + +Only if configured with --enable-tcb=btree +.TP +\fB\-\-cache-lcnum=<num> +Specifies the maximum number of leaf nodes to be cached. If it is not more than +0, the default value is specified. The default value is 1024. Setting a larger +value will increase speed performance, however, memory consumption will +increase. Lower value will decrease memory consumption. + +Only if configured with --enable-tcb=btree +.TP +\fB\-\-cache-ncnum=<num> +Specifies the maximum number of non-leaf nodes to be cached. If it is not more +than 0, the default value is specified. The default value is 512. + +Only if configured with --enable-tcb=btree +.TP +\fB\-\-tune-lmemb=<num> +Specifies the number of members in each leaf page. If it is not more than 0, +the default value is specified. The default value is 128. + +Only if configured with --enable-tcb=btree +.TP +\fB\-\-tune-nmemb=<num> +Specifies the number of members in each non-leaf page. If it is not more than +0, the default value is specified. The default value is 256. + +Only if configured with --enable-tcb=btree +.TP +\fB\-\-tune-bnum=<num> +Specifies the number of elements of the bucket array. If it is not more than 0, +the default value is specified. The default value is 32749. Suggested size of +the bucket array is about from 1 to 4 times of the number of all pages to be +stored. + +Only if configured with --enable-tcb=btree +.TP +\fB\-\-compression=<zlib|bz2> +Specifies that each page is compressed with ZLIB|BZ2 encoding. + +Only if configured with --enable-tcb=btree + +.SH CUSTOM LOG/DATE FORMAT +GoAccess can parse virtually any web log format. +.P +Predefined options include, Common Log Format (CLF), Combined Log Format +(XLF/ELF), including virtual host, Amazon CloudFront (Download Distribution), +Google Cloud Storage and W3C format (IIS). +.P +GoAccess allows any custom format string as well. +.P +There are two ways to configure the log format. +The easiest is to run GoAccess with +.I -c +to prompt a configuration window. Otherwise, it can be configured under +~/.goaccessrc or the %sysconfdir%. +.IP "time-format" +The +.I time-format +variable followed by a space, specifies the log format time +containing any combination of regular characters and special format specifiers. +They all begin with a percentage (%) sign. See `man strftime`. +.I %T or %H:%M:%S. +.IP +.I Note: +If a timestamp is given in microseconds, +.I +%f +must be used as +.I +time-format +.IP "date-format" +The +.I date-format +variable followed by a space, specifies the log format date containing any +combination of regular characters and special format specifiers. They all begin +with a percentage (%) sign. See `man strftime`. e.g., +.I %Y-%m-%d. +.IP +.I Note: +If a timestamp is given in microseconds, +.I +%f +must be used as +.I +date-format +.IP "log-format" +The +.I log-format +variable followed by a space or +.I \\\\t +, specifies the log format string. +.IP %x +A date and time field matching the +.I time-format +and +.I date-format +variables. This is used when given a timestamp or the date & time are +concatenated as a single string (e.g., 1501647332 or 20170801235000) instead of +the date and time being in two separated variables. +.IP %t +time field matching the +.I time-format +variable. +.IP %d +date field matching the +.I date-format +variable. +.IP %v +The canonical Server Name of the server serving the request (Virtual Host). +.IP %e +This is the userid of the person requesting the document as determined by HTTP +authentication. +.IP %h +host (the client IP address, either IPv4 or IPv6) +.IP %r +The request line from the client. This requires specific delimiters around the +request (as single quotes, double quotes, or anything else) to be parsable. If +not, we have to use a combination of special format specifiers as %m %U %H. +.IP %q +The query string. +.IP %m +The request method. +.IP %U +The URL path requested. + +.I Note: +If the query string is in %U, there is no need to use +.I %q. +However, if the URL path, does not include any query string, you may use +.I %q +and the query string will be appended to the request. +.IP %H +The request protocol. +.IP %s +The status code that the server sends back to the client. +.IP %b +The size of the object returned to the client. +.IP %R +The "Referrer" HTTP request header. +.IP %u +The user-agent HTTP request header. +.IP %D +The time taken to serve the request, in microseconds as a decimal number. +.IP %T +The time taken to serve the request, in seconds with milliseconds resolution. +.IP %L +The time taken to serve the request, in milliseconds as a decimal number. +.IP %^ +Ignore this field. +.IP %~ +Move forward through the log string until a non-space (!isspace) char is found. +.IP ~h +The host (the client IP address, either IPv4 or IPv6) in a X-Forwarded-For (XFF) field. + +It uses a special specifier which consists of a tilde before the host +specifier, followed by the character(s) that delimit the XFF field, which are +enclosed by curly braces (i.e., ~h{," }) + +For example, ~h{," } is used in order to parse "11.25.11.53, 17.68.33.17" field +which is delimited by a double quote, a comma, and a space. +.P +.I Note: +In order to get the average, cumulative and maximum time served in GoAccess, +you will need to start logging response times in your web server. In Nginx you +can add +.I $request_time +to your log format, or +.I %D +in Apache. +.P +.I Important: +If multiple time served specifiers are used at the same time, the first option +specified in the format string will take priority over the other specifiers. +.P +GoAccess +.I requires +the following fields: +.IP +.I %h +a valid IPv4/6 +.IP +.I %d +a valid date +.IP +.I %r +the request +.SH INTERACTIVE MENU +.IP "F1 or h" +Main help. +.IP "F5" +Redraw main window. +.IP "q" +Quit the program, current window or collapse active module +.IP "o or ENTER" +Expand selected module or open window +.IP "0-9 and Shift + 0" +Set selected module to active +.IP "j" +Scroll down within expanded module +.IP "k" +Scroll up within expanded module +.IP "c" +Set or change scheme color. +.IP "TAB" +Forward iteration of modules. Starts from current active module. +.IP "SHIFT + TAB" +Backward iteration of modules. Starts from current active module. +.IP "^f" +Scroll forward one screen within an active module. +.IP "^b" +Scroll backward one screen within an active module. +.IP "s" +Sort options for active module +.IP "/" +Search across all modules (regex allowed) +.IP "n" +Find the position of the next occurrence across all modules. +.IP "g" +Move to the first item or top of screen. +.IP "G" +Move to the last item or bottom of screen. +.SH EXAMPLES +.I Note: +Piping data into GoAccess won't prompt a log/date/time configuration dialog, +you will need to previously define it in your configuration file or in the +command line. + +.SS +DIFFERENT OUTPUTS +.P +To output to a terminal and generate an interactive report: +.IP +# goaccess access.log +.P +To generate an HTML report: +.IP +# goaccess access.log -a -o report.html +.P +To generate a JSON report: +.IP +# goaccess access.log -a -d -o report.json +.P +To generate a CSV file: +.IP +# goaccess access.log --no-csv-summary -o report.csv +.P +GoAccess also allows great flexibility for real-time filtering and parsing. For +instance, to quickly diagnose issues by monitoring logs since goaccess was +started: +.IP +# tail -f access.log | goaccess - +.P +And even better, to filter while maintaining opened a pipe to preserve +real-time analysis, we can make use of +.I tail -f +and +a matching pattern tool such as +.I grep, awk, sed, +etc: +.IP +# tail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED - +.P +or to parse from the beginning of the file while maintaining the pipe opened +and applying a filter +.IP +# tail -f -n +0 access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -o report.html --real-time-html - +.SS +MULTIPLE LOG FILES +.P +There are several ways to parse multiple logs with GoAccess. The simplest is to +pass multiple log files to the command line: +.IP +# goaccess access.log access.log.1 +.P +It's even possible to parse files from a pipe while reading regular files: +.IP +# cat access.log.2 | goaccess access.log access.log.1 - +.P +.I Note +that the single dash is appended to the command line to let GoAccess know that +it should read from the pipe. +.P +Now if we want to add more flexibility to GoAccess, we can do a series of +pipes. For instance, if we would like to process all compressed log files +.I access.log.*.gz +in addition to the current log file, we can do: +.IP +# zcat access.log.*.gz | goaccess access.log - +.P +.I Note: +On Mac OS X, use gunzip -c instead of zcat. +.SS +REAL TIME HTML OUTPUT +.P +GoAccess has the ability to output real-time data in the HTML report. You can +even email the HTML file since it is composed of a single file with no external +file dependencies, how neat is that! +.P +The process of generating a real-time HTML report is very similar to the +process of creating a static report. Only --real-time-html is needed to make it +real-time. +.IP +# goaccess access.log -o /usr/share/nginx/html/site/report.html --real-time-html +.P +By default, GoAccess will use the host name of the generated report. +Optionally, you can specify the URL to which the client's browser will connect +to. See https://goaccess.io/faq for a more detailed example. +.IP +# goaccess access.log -o report.html --real-time-html --ws-url=goaccess.io +.P +By default, GoAccess listens on port 7890, to use a different port other than +7890, you can specify it as (make sure the port is opened): +.IP +# goaccess access.log -o report.html --real-time-html --port=9870 +.P +And to bind the WebSocket server to a different address other than 0.0.0.0, you +can specify it as: +.IP +# goaccess access.log -o report.html --real-time-html --addr=127.0.0.1 +.P +.I Note: +To output real time data over a TLS/SSL connection, you need to use +.I --ssl-cert=<cert.crt> +and +.I --ssl-key=<priv.key>. +.SS +WORKING WITH DATES +.P +Another useful pipe would be filtering dates out of the web log +.P +The following will get all HTTP requests starting on 05/Dec/2010 until the end +of the file. +.IP +# sed -n '/05\/Dec\/2010/,$ p' access.log | goaccess -a - +.P +or using relative dates such as yesterdays or tomorrows day: +.IP +# sed -n '/'$(date '+%d\/%b\/%Y' -d '1 week ago')'/,$ p' access.log | goaccess -a - +.P +If we want to parse only a certain time-frame from DATE a to DATE b, we can do: +.IP +# sed -n '/5\/Nov\/2010/,/5\/Dec\/2010/ p' access.log | goaccess -a - +.SS +VIRTUAL HOSTS +.P +Assuming your log contains the virtual host (server blocks) field. For +instance: +.IP +vhost.com:80 10.131.40.139 - - [02/Mar/2016:08:14:04 -0600] "GET /shop/bag-p-20 +HTTP/1.1" 200 6715 "-" "Apache (internal dummy connection)" +.P +And you would like to append the virtual host to the request in order to see +which virtual host the top urls belong to +.IP +awk '$8=$1$8' access.log | goaccess -a - +.P +To exclude a list of virtual hosts you can do the following: +.IP +# grep -v "`cat exclude_vhost_list_file`" vhost_access.log | goaccess - +.SS +FILES & STATUS CODES +.P +To parse specific pages, e.g., page views, html, htm, php, etc. within a +request: +.IP +# awk '$7~/\.html|\.htm|\.php/' access.log | goaccess - +.P +Note, +.I $7 +is the request field for the common and combined log format, (without Virtual +Host), if your log includes Virtual Host, then you probably want to use +.I $8 +instead. It's best to check which field you are shooting for, e.g.: +.IP +# tail -10 access.log | awk '{print $8}' +.P +Or to parse a specific status code, e.g., 500 (Internal Server Error): +.IP +# awk '$9~/500/' access.log | goaccess - +.SS +SERVER +.P +Also, it is worth pointing out that if we want to run GoAccess at lower +priority, we can run it as: +.IP +# nice -n 19 goaccess -f access.log -a +.P +and if you don't want to install it on your server, you can still run it from +your local machine: +.IP +# ssh root@server 'cat /var/log/apache2/access.log' | goaccess -a - +.SS +INCREMENTAL LOG PROCESSING +.P +GoAccess has the ability to process logs incrementally through the on-disk +B+Tree database. It works in the following way: + +.nr step 1 1 +.IP \n[step] 3 +A dataset must be persisted first with +.I --keep-db-files, +then the same dataset can be loaded with +.I --load-from-disk. +.IP \n+[step] +If new data is passed (piped or through a log file), it will append it to the +original dataset. +.IP \n+[step] +To preserve the data at all times, +.I --keep-db-files +must be used. +.IP \n+[step] +If +.I --load-from-disk +is used without +.I --keep-db-files, +database files will be deleted upon closing the program. +.P +For instance: +.IP +// last month access log +.br +goaccess access.log.1 --keep-db-files +.P +then, load it with +.IP +// append this month access log, and preserve new data +.br +goaccess access.log --load-from-disk --keep-db-files +.P +To read persisted data only (without parsing new data) +.IP +goaccess --load-from-disk --keep-db-files +.P +.SH NOTES +Each active panel has a total of 366 items or 50 in the real-time HTML report. +The number of items is customizable using +.I max-items +However, only the CSV and JSON output allow a maximum number greater than the +default value of 366 items per panel. +.P +When analyzing the same log file twice using the on-disk B+Tree and using +.I --keep-db-files +and +.I --load-from-disk +on each run, GoAccess will count each entry twice. Issue #334 will address this +issue. +.P +A hit is a request (line in the access log), e.g., 10 requests = 10 hits. HTTP +requests with the same IP, date, and user agent are considered a unique visit. +.SH BUGS +If you think you have found a bug, please send me an email to +.I goaccess@prosoftcorp.com +or use the issue tracker in https://github.com/allinurl/goaccess/issues +.SH AUTHOR +Gerardo Orellana <goaccess@prosoftcorp.com> +For more details about it, or new releases, please visit +https://goaccess.io diff --git a/src/goaccess++/install-sh b/src/goaccess++/install-sh new file mode 100644 index 0000000..a9244eb --- /dev/null +++ b/src/goaccess++/install-sh @@ -0,0 +1,527 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2011-01-19.21; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for `test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/src/goaccess++/m4/gettext.m4 b/src/goaccess++/m4/gettext.m4 new file mode 100644 index 0000000..f84e6a5 --- /dev/null +++ b/src/goaccess++/m4/gettext.m4 @@ -0,0 +1,383 @@ +# gettext.m4 serial 63 (gettext-0.18) +dnl Copyright (C) 1995-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value `$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], + [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_included_intl], + ifelse([$1], [external], + ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), + [yes])) + define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl Add a version number to the cache macros. + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH([included-gettext], + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], + [AC_TRY_LINK([#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings;], + [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + [$gt_func_gnugettext_libintl], + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_TRY_LINK([#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], + [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) + dnl Now see whether libintl exists and depends on libiconv. + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], + [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE([ENABLE_NLS], [1], + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE([HAVE_GETTEXT], [1], + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE([HAVE_DCGETTEXT], [1], + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST([BUILD_INCLUDED_LIBINTL]) + AC_SUBST([USE_INCLUDED_LIBINTL]) + AC_SUBST([CATOBJEXT]) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST([DATADIRNAME]) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST([INSTOBJEXT]) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST([GENCAT]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLOBJS= + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST([INTLOBJS]) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST([INTLLIBS]) + + dnl Make all documented variables known to autoconf. + AC_SUBST([LIBINTL]) + AC_SUBST([LTLIBINTL]) + AC_SUBST([POSUB]) +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) diff --git a/src/goaccess++/m4/iconv.m4 b/src/goaccess++/m4/iconv.m4 new file mode 100644 index 0000000..f46ff14 --- /dev/null +++ b/src/goaccess++/m4/iconv.m4 @@ -0,0 +1,199 @@ +# iconv.m4 serial 9 (gettext-0.18) +dnl Copyright (C) 2000-2002, 2007-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_TRY_LINK([#include <stdlib.h> +#include <iconv.h>], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + [am_cv_func_iconv=yes]) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include <stdlib.h> +#include <iconv.h>], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + [am_cv_lib_iconv=yes] + [am_cv_func_iconv=yes]) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ + dnl This tests against bugs in AIX 5.1, HP-UX 11.11, Solaris 10. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + AC_TRY_RUN([ +#include <iconv.h> +#include <string.h> +int main () +{ + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\263"; + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + return 1; + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + return 1; + return 0; +}], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], + [case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac]) + LIBS="$am_save_LIBS" + ]) + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + AC_DEFINE([HAVE_ICONV], [1], + [Define if you have the iconv() function and it works.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST([LIBICONV]) + AC_SUBST([LTLIBICONV]) +]) + +AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL([am_cv_proto_iconv], [ + AC_TRY_COMPILE([ +#include <stdlib.h> +#include <iconv.h> +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +], [], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"]) + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([ + $am_cv_proto_iconv]) + AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + fi +]) diff --git a/src/goaccess++/m4/intlmacosx.m4 b/src/goaccess++/m4/intlmacosx.m4 new file mode 100644 index 0000000..dd91025 --- /dev/null +++ b/src/goaccess++/m4/intlmacosx.m4 @@ -0,0 +1,51 @@ +# intlmacosx.m4 serial 3 (gettext-0.18) +dnl Copyright (C) 2004-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Checks for special options needed on MacOS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in MacOS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + [gt_cv_func_CFPreferencesCopyAppValue], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>], + [CFPreferencesCopyAppValue(NULL, NULL)], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], + [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in MacOS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], + [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) diff --git a/src/goaccess++/m4/lib-ld.m4 b/src/goaccess++/m4/lib-ld.m4 new file mode 100644 index 0000000..ebb3052 --- /dev/null +++ b/src/goaccess++/m4/lib-ld.m4 @@ -0,0 +1,110 @@ +# lib-ld.m4 serial 4 (gettext-0.18) +dnl Copyright (C) 1996-2003, 2009-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision +dnl with libtool.m4. + +dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + acl_cv_prog_gnu_ld=yes ;; +*) + acl_cv_prog_gnu_ld=no ;; +esac]) +with_gnu_ld=$acl_cv_prog_gnu_ld +]) + +dnl From libtool-1.4. Sets the variable LD. +AC_DEFUN([AC_LIB_PROG_LD], +[AC_ARG_WITH([gnu-ld], +[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], +test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]* | [A-Za-z]:[\\/]*)] + [re_direlt='/[^/][^/]*/\.\./'] + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL([acl_cv_path_LD], +[if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$acl_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT([$LD]) +else + AC_MSG_RESULT([no]) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_LIB_PROG_LD_GNU +]) diff --git a/src/goaccess++/m4/lib-link.m4 b/src/goaccess++/m4/lib-link.m4 new file mode 100644 index 0000000..c73bd8e --- /dev/null +++ b/src/goaccess++/m4/lib-link.m4 @@ -0,0 +1,774 @@ +# lib-link.m4 serial 21 (gettext-0.18) +dnl Copyright (C) 2001-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_PREREQ([2.54]) + +dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and +dnl augments the CPPFLAGS variable. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + pushdef([Name],[translit([$1],[./-], [___])]) + pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + ac_cv_lib[]Name[]_libs="$LIB[]NAME" + ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" + ac_cv_lib[]Name[]_cppflags="$INC[]NAME" + ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" + ]) + LIB[]NAME="$ac_cv_lib[]Name[]_libs" + LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" + INC[]NAME="$ac_cv_lib[]Name[]_cppflags" + LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + AC_SUBST([LIB]NAME[_PREFIX]) + dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the + dnl results of this search when this library appears as a dependency. + HAVE_LIB[]NAME=yes + popdef([NAME]) + popdef([Name]) +]) + +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) +dnl searches for libname and the libraries corresponding to explicit and +dnl implicit dependencies, together with the specified include files and +dnl the ability to compile and link the specified testcode. The missing-message +dnl defaults to 'no' and may contain additional hints for the user. +dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} +dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs +dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + pushdef([Name],[translit([$1],[./-], [___])]) + pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + + dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + + dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, + dnl because if the user has installed lib[]Name and not disabled its use + dnl via --without-lib[]Name-prefix, he wants to use it. + ac_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + + AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ + ac_save_LIBS="$LIBS" + dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, + dnl because these -l options might require -L options that are present in + dnl LIBS. -l options benefit only from the -L options listed before it. + dnl Otherwise, add it to the front of LIBS, because it may be a static + dnl library that depends on another static library that is present in LIBS. + dnl Static libraries benefit only from the static libraries listed after + dnl it. + case " $LIB[]NAME" in + *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; + *) LIBS="$LIB[]NAME $LIBS" ;; + esac + AC_TRY_LINK([$3], [$4], + [ac_cv_lib[]Name=yes], + [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib[]Name" = yes; then + HAVE_LIB[]NAME=yes + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) + AC_MSG_CHECKING([how to link with lib[]$1]) + AC_MSG_RESULT([$LIB[]NAME]) + else + HAVE_LIB[]NAME=no + dnl If $LIB[]NAME didn't lead to a usable library, we don't need + dnl $INC[]NAME either. + CPPFLAGS="$ac_save_CPPFLAGS" + LIB[]NAME= + LTLIB[]NAME= + LIB[]NAME[]_PREFIX= + fi + AC_SUBST([HAVE_LIB]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + AC_SUBST([LIB]NAME[_PREFIX]) + popdef([NAME]) + popdef([Name]) +]) + +dnl Determine the platform dependent parameters needed to use rpath: +dnl acl_libext, +dnl acl_shlibext, +dnl acl_hardcode_libdir_flag_spec, +dnl acl_hardcode_libdir_separator, +dnl acl_hardcode_direct, +dnl acl_hardcode_minus_L. +AC_DEFUN([AC_LIB_RPATH], +[ + dnl Tell automake >= 1.10 to complain if config.rpath is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE([rpath], + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_FROMPACKAGE(name, package) +dnl declares that libname comes from the given package. The configure file +dnl will then not have a --with-libname-prefix option but a +dnl --with-package-prefix option. Several libraries can come from the same +dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar +dnl macro call that searches for libname. +AC_DEFUN([AC_LIB_FROMPACKAGE], +[ + pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + define([acl_frompackage_]NAME, [$2]) + popdef([NAME]) + pushdef([PACK],[$2]) + pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + define([acl_libsinpackage_]PACKUP, + m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1]) + popdef([PACKUP]) + popdef([PACK]) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) + pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) + dnl Autoconf >= 2.61 supports dots in --with options. + pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH(P_A_C_K[-prefix], +[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + LIB[]NAME[]_PREFIX= + dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been + dnl computed. So it has to be reset here. + HAVE_LIB[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$acl_hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + popdef([P_A_C_K]) + popdef([PACKLIBS]) + popdef([PACKUP]) + popdef([PACK]) + popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) diff --git a/src/goaccess++/m4/lib-prefix.m4 b/src/goaccess++/m4/lib-prefix.m4 new file mode 100644 index 0000000..1601cea --- /dev/null +++ b/src/goaccess++/m4/lib-prefix.m4 @@ -0,0 +1,224 @@ +# lib-prefix.m4 serial 7 (gettext-0.18) +dnl Copyright (C) 2001-2005, 2008-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a variable acl_libdirstem, containing the basename of the libdir, either +dnl "lib" or "lib64" or "lib/64", +dnl - a variable acl_libdirstem2, as a secondary possible value for +dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or +dnl "lib/amd64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. + dnl On glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine + dnl the compiler's default mode by looking at the compiler's library search + dnl path. If at least one of its elements ends in /lib64 or points to a + dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. + dnl Otherwise we use the default, namely "lib". + dnl On Solaris systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or + dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. + AC_REQUIRE([AC_CANONICAL_HOST]) + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>. + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_EGREP_CPP([sixtyfour bits], [ +#ifdef _LP64 +sixtyfour bits +#endif + ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) + ]) + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" +]) diff --git a/src/goaccess++/m4/nls.m4 b/src/goaccess++/m4/nls.m4 new file mode 100644 index 0000000..003704c --- /dev/null +++ b/src/goaccess++/m4/nls.m4 @@ -0,0 +1,32 @@ +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) diff --git a/src/goaccess++/m4/po.m4 b/src/goaccess++/m4/po.m4 new file mode 100644 index 0000000..47f36a4 --- /dev/null +++ b/src/goaccess++/m4/po.m4 @@ -0,0 +1,449 @@ +# po.m4 serial 17 (gettext-0.18) +dnl Copyright (C) 1995-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +AC_PREREQ([2.50]) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake + AC_REQUIRE([AM_NLS])dnl + + dnl Release version of the gettext macros. This is used to ensure that + dnl the gettext macros and po/Makefile.in.in are in sync. + AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) + + dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([MSGFMT_015]) +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Installation directories. + dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we + dnl have to define it here, so that it can be used in po/Makefile. + test -n "$localedir" || localedir='${datadir}/locale' + AC_SUBST([localedir]) + + dnl Support for AM_XGETTEXT_OPTION. + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + + AC_CONFIG_COMMANDS([po-directories], [[ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done]], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat <<EOT +$* +EOT + } + gt_echo='echo_func' + fi + fi + + # A sed script that extracts the value of VARIABLE from a Makefile. + sed_x_variable=' +# Test if the hold space is empty. +x +s/P/P/ +x +ta +# Yes it was empty. Look if we have the expected variable definition. +/^[ ]*VARIABLE[ ]*=/{ + # Seen the first line of the variable definition. + s/^[ ]*VARIABLE[ ]*=// + ba +} +bd +:a +# Here we are processing a line from the variable definition. +# Remove comment, more precisely replace it with a space. +s/#.*$/ / +# See if the line ends in a backslash. +tb +:b +s/\\$// +# Print the line, without the trailing backslash. +p +tc +# There was no trailing backslash. The end of the variable definition is +# reached. Clear the hold space. +s/^.*$// +x +bd +:c +# A trailing backslash means that the variable definition continues in the +# next line. Put a nonempty string into the hold space to indicate this. +s/^.*$/P/ +x +:d +' +changequote([,])dnl + + # Set POTFILES to the value of the Makefile variable POTFILES. + sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'` + POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"` + # Compute POTFILES_DEPS as + # $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) + POTFILES_DEPS= + for file in $POTFILES; do + POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file" + done + POMAKEFILEDEPS="" + + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. + sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'` + ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"` + fi + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + # Compute PROPERTIESFILES + # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties) + # Compute CLASSFILES + # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class) + # Compute QMFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm) + # Compute MSGFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg) + # Compute RESOURCESDLLFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + PROPERTIESFILES= + CLASSFILES= + QMFILES= + MSGFILES= + RESOURCESDLLFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties" + CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class" + QMFILES="$QMFILES $srcdirpre$lang.qm" + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg" + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + JAVACATALOGS= + QTCATALOGS= + TCLCATALOGS= + CSHARPCATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties" + QTCATALOGS="$QTCATALOGS $lang.qm" + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg" + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll" + done + fi + + sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp" + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" <<EOF +$frobbedlang.msg: $lang.po + @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \ + \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } +EOF + done + fi + if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <<EOF +$frobbedlang/\$(DOMAIN).resources.dll: $lang.po + @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ + \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } +EOF + done + fi + if test -n "$POMAKEFILEDEPS"; then + cat >> "$ac_file.tmp" <<EOF +Makefile: $POMAKEFILEDEPS +EOF + fi + mv "$ac_file.tmp" "$ac_file" +]) + +dnl Initializes the accumulator used by AM_XGETTEXT_OPTION. +AC_DEFUN([AM_XGETTEXT_OPTION_INIT], +[ + XGETTEXT_EXTRA_OPTIONS= +]) + +dnl Registers an option to be passed to xgettext in the po subdirectory. +AC_DEFUN([AM_XGETTEXT_OPTION], +[ + AC_REQUIRE([AM_XGETTEXT_OPTION_INIT]) + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1" +]) diff --git a/src/goaccess++/m4/progtest.m4 b/src/goaccess++/m4/progtest.m4 new file mode 100644 index 0000000..2d804ac --- /dev/null +++ b/src/goaccess++/m4/progtest.m4 @@ -0,0 +1,92 @@ +# progtest.m4 serial 6 (gettext-0.18) +dnl Copyright (C) 1996-2003, 2005, 2008-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1996. + +AC_PREREQ([2.50]) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL([ac_cv_path_$1], +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$][$1]) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST([$1])dnl +]) diff --git a/src/goaccess++/missing b/src/goaccess++/missing new file mode 100644 index 0000000..86a8fc3 --- /dev/null +++ b/src/goaccess++/missing @@ -0,0 +1,331 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2012-01-06.13; # UTC + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. +# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and +\`g' are ignored when checking the name. + +Send bug reports to <bug-automake@gnu.org>." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# normalize program name to check for. +program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). This is about non-GNU programs, so use $1 not +# $program. +case $1 in + lex*|yacc*) + # Not GNU programs, they don't have --version. + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $program in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te*) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison*|yacc*) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex*|flex*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit $? + fi + ;; + + makeinfo*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/src/goaccess++/po/LINGUAS b/src/goaccess++/po/LINGUAS new file mode 100644 index 0000000..9595d03 --- /dev/null +++ b/src/goaccess++/po/LINGUAS @@ -0,0 +1,4 @@ +fr +es +zh_CN +ja diff --git a/src/goaccess++/po/Makefile b/src/goaccess++/po/Makefile new file mode 100644 index 0000000..c310cb8 --- /dev/null +++ b/src/goaccess++/po/Makefile @@ -0,0 +1,571 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu> +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.18 +GETTEXT_MACRO_VERSION = 0.18 + +PACKAGE = goaccess +VERSION = 1.3 +PACKAGE_BUGREPORT = goaccess@prosoftcorp.com + +SHELL = /bin/sh + + +srcdir = . +top_srcdir = .. + + +prefix = /usr/local +exec_prefix = ${prefix} +datarootdir = ${prefix}/share +datadir = ${datarootdir} +localedir = ${datarootdir}/locale +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 + +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# ${SHELL} /home/djq/goaccess-1.3/install-sh does not start with $(SHELL), so we add it. +# In automake >= 1.10, /usr/bin/mkdir -p is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) ${SHELL} /home/djq/goaccess-1.3/install-sh -d +install_sh = $(SHELL) ${SHELL} /home/djq/goaccess-1.3/install-sh +MKDIR_P = /usr/bin/mkdir -p +mkdir_p = /usr/bin/mkdir -p + +GMSGFMT_ = : +GMSGFMT_no = : +GMSGFMT_yes = : +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = : +MSGFMT_no = : +MSGFMT_yes = : +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = : +XGETTEXT_no = : +XGETTEXT_yes = : +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = msgmerge +MSGMERGE_UPDATE = : --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = fr.po es.po zh_CN.po ja.po +GMOFILES = fr.gmo es.gmo zh_CN.gmo ja.gmo +UPDATEPOFILES = fr.po-update es.po-update zh_CN.po-update ja.po-update +DUMMYPOFILES = fr.nop es.nop zh_CN.nop ja.nop +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + ../src/labels.h + +CATALOGS = fr.gmo es.gmo zh_CN.gmo ja.gmo + +# Makevars gets inserted here. (Don't remove this line!) +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. +AM_CPPFLAGS = -I. -I$(srcdir) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = hello@goaccess.io + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: check-macro-version all-yes + +all-yes: stamp-po +all-no: + +# Ensure that the gettext macros and this Makefile.in.in are in sync. +check-macro-version: + @test "$(GETTEXT_MACRO_VERSION)" = "0.18" \ + || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version 0.18" 1>&2; \ + exit 1; \ + } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + if LC_ALL=C grep 'GNU goaccess' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ + package_gnu='GNU '; \ + else \ + package_gnu=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_gnu}goaccess" \ + --package-version='1.3' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-yes + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-yes + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-yes + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + $(MAKE) update-po + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +# Recreate Makefile by invoking config.status. Explicitly invoke the shell, +# because execution permission bits may not work on the current file system. +# Use /bin/bash, which is the shell determined by autoconf for the use by its +# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status POTFILES.in LINGUAS + cd $(top_builddir) \ + && /bin/bash ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: +# Special Makefile rules for English message catalogs with quotation marks. + +DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot + +.SUFFIXES: .insert-header .po-update-en + +en@quot.po-create: + $(MAKE) en@quot.po-update +en@boldquot.po-create: + $(MAKE) en@boldquot.po-update + +en@quot.po-update: en@quot.po-update-en +en@boldquot.po-update: en@boldquot.po-update-en + +.insert-header.po-update-en: + @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ + if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + ll=`echo $$lang | sed -e 's/@.*//'`; \ + LC_ALL=C; export LC_ALL; \ + cd $(srcdir); \ + if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "creation of $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +en@quot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header + +en@boldquot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header + +mostlyclean: mostlyclean-quot +mostlyclean-quot: + rm -f *.insert-header diff --git a/src/goaccess++/po/Makefile.in b/src/goaccess++/po/Makefile.in new file mode 100644 index 0000000..a2ce276 --- /dev/null +++ b/src/goaccess++/po/Makefile.in @@ -0,0 +1,444 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu> +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.18 +GETTEXT_MACRO_VERSION = 0.18 + +PACKAGE = goaccess +VERSION = 1.3 +PACKAGE_BUGREPORT = goaccess@prosoftcorp.com + +SHELL = /bin/sh + + +srcdir = . +top_srcdir = .. + + +prefix = /usr/local +exec_prefix = ${prefix} +datarootdir = ${prefix}/share +datadir = ${datarootdir} +localedir = ${datarootdir}/locale +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 + +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# ${SHELL} /home/djq/goaccess-1.3/install-sh does not start with $(SHELL), so we add it. +# In automake >= 1.10, /usr/bin/mkdir -p is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) ${SHELL} /home/djq/goaccess-1.3/install-sh -d +install_sh = $(SHELL) ${SHELL} /home/djq/goaccess-1.3/install-sh +MKDIR_P = /usr/bin/mkdir -p +mkdir_p = /usr/bin/mkdir -p + +GMSGFMT_ = : +GMSGFMT_no = : +GMSGFMT_yes = : +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = : +MSGFMT_no = : +MSGFMT_yes = : +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = : +XGETTEXT_no = : +XGETTEXT_yes = : +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = msgmerge +MSGMERGE_UPDATE = : --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +# Makevars gets inserted here. (Don't remove this line!) + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: check-macro-version all-yes + +all-yes: stamp-po +all-no: + +# Ensure that the gettext macros and this Makefile.in.in are in sync. +check-macro-version: + @test "$(GETTEXT_MACRO_VERSION)" = "0.18" \ + || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version 0.18" 1>&2; \ + exit 1; \ + } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + if LC_ALL=C grep 'GNU goaccess' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ + package_gnu='GNU '; \ + else \ + package_gnu=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_gnu}goaccess" \ + --package-version='1.3' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-yes + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-yes + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-yes + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + $(MAKE) update-po + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +# Recreate Makefile by invoking config.status. Explicitly invoke the shell, +# because execution permission bits may not work on the current file system. +# Use /bin/bash, which is the shell determined by autoconf for the use by its +# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && /bin/bash ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/goaccess++/po/Makefile.in.in b/src/goaccess++/po/Makefile.in.in new file mode 100644 index 0000000..83d8838 --- /dev/null +++ b/src/goaccess++/po/Makefile.in.in @@ -0,0 +1,444 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu> +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.18 +GETTEXT_MACRO_VERSION = 0.18 + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = @MSGFMT@ +MSGFMT_no = @MSGFMT@ +MSGFMT_yes = @MSGFMT_015@ +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +# Makevars gets inserted here. (Don't remove this line!) + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: check-macro-version all-@USE_NLS@ + +all-yes: stamp-po +all-no: + +# Ensure that the gettext macros and this Makefile.in.in are in sync. +check-macro-version: + @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ + || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ + exit 1; \ + } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ + package_gnu='GNU '; \ + else \ + package_gnu=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_gnu}@PACKAGE@" \ + --package-version='@VERSION@' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + $(MAKE) update-po + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +# Recreate Makefile by invoking config.status. Explicitly invoke the shell, +# because execution permission bits may not work on the current file system. +# Use @SHELL@, which is the shell determined by autoconf for the use by its +# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && @SHELL@ ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/goaccess++/po/Makevars b/src/goaccess++/po/Makevars new file mode 100644 index 0000000..facec21 --- /dev/null +++ b/src/goaccess++/po/Makevars @@ -0,0 +1,79 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. +AM_CPPFLAGS = -I. -I$(srcdir) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Free Software Foundation, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = hello@goaccess.io + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes diff --git a/src/goaccess++/po/POTFILES b/src/goaccess++/po/POTFILES new file mode 100644 index 0000000..3a8dac9 --- /dev/null +++ b/src/goaccess++/po/POTFILES @@ -0,0 +1 @@ + ../src/labels.h diff --git a/src/goaccess++/po/POTFILES.in b/src/goaccess++/po/POTFILES.in new file mode 100644 index 0000000..99bde5c --- /dev/null +++ b/src/goaccess++/po/POTFILES.in @@ -0,0 +1,2 @@ +# List of source files which contain translatable strings. +src/labels.h diff --git a/src/goaccess++/po/Rules-quot b/src/goaccess++/po/Rules-quot new file mode 100644 index 0000000..af52487 --- /dev/null +++ b/src/goaccess++/po/Rules-quot @@ -0,0 +1,47 @@ +# Special Makefile rules for English message catalogs with quotation marks. + +DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot + +.SUFFIXES: .insert-header .po-update-en + +en@quot.po-create: + $(MAKE) en@quot.po-update +en@boldquot.po-create: + $(MAKE) en@boldquot.po-update + +en@quot.po-update: en@quot.po-update-en +en@boldquot.po-update: en@boldquot.po-update-en + +.insert-header.po-update-en: + @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ + if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + ll=`echo $$lang | sed -e 's/@.*//'`; \ + LC_ALL=C; export LC_ALL; \ + cd $(srcdir); \ + if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "creation of $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +en@quot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header + +en@boldquot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header + +mostlyclean: mostlyclean-quot +mostlyclean-quot: + rm -f *.insert-header diff --git a/src/goaccess++/po/boldquot.sed b/src/goaccess++/po/boldquot.sed new file mode 100644 index 0000000..4b937aa --- /dev/null +++ b/src/goaccess++/po/boldquot.sed @@ -0,0 +1,10 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g +s/“/“/g +s/”/”/g +s/‘/‘/g +s/’/’/g diff --git a/src/goaccess++/po/en@boldquot.header b/src/goaccess++/po/en@boldquot.header new file mode 100644 index 0000000..fedb6a0 --- /dev/null +++ b/src/goaccess++/po/en@boldquot.header @@ -0,0 +1,25 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +# diff --git a/src/goaccess++/po/en@quot.header b/src/goaccess++/po/en@quot.header new file mode 100644 index 0000000..a9647fc --- /dev/null +++ b/src/goaccess++/po/en@quot.header @@ -0,0 +1,22 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# diff --git a/src/goaccess++/po/es.gmo b/src/goaccess++/po/es.gmo new file mode 100644 index 0000000000000000000000000000000000000000..7b16262b6be8ebceb3f736b5a6823b364ea4fbe1 GIT binary patch literal 17442 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 O=~_kXD1cHV@BSa2PAKsJ literal 0 HcmV?d00001 diff --git a/src/goaccess++/po/es.po b/src/goaccess++/po/es.po new file mode 100644 index 0000000..2b5261a --- /dev/null +++ b/src/goaccess++/po/es.po @@ -0,0 +1,902 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: Goaccess\n" +"Report-Msgid-Bugs-To: hello@goaccess.io\n" +"POT-Creation-Date: 2018-11-22 23:38-0600\n" +"PO-Revision-Date: 2017-08-04 13:00-0300\n" +"Last-Translator: Enrique Becerra <kabeza@gmail.com>\n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.4\n" + +#: src/labels.h:40 +msgid "en" +msgstr "es" + +#: src/labels.h:43 +msgid "Exp. Panel" +msgstr "Exp. Panel" + +#: src/labels.h:44 +msgid "Help" +msgstr "Ayuda" + +#: src/labels.h:45 +msgid "Quit" +msgstr "Salir" + +#: src/labels.h:46 +msgid "Total" +msgstr "Total" + +#: src/labels.h:49 +msgid "[x] ASC [ ] DESC" +msgstr "[x] ASC [ ] DESC" + +#: src/labels.h:50 +msgid "[ ] ASC [x] DESC" +msgstr "[ ] ASC [x] DESC" + +#: src/labels.h:53 +#, c-format +msgid "[Active Panel: %1$s]" +msgstr "[Panel Activo: %1$s]" + +#: src/labels.h:54 +msgid "[q]uit GoAccess" +msgstr "[q]Salir GoAccess" + +#: src/labels.h:55 +msgid "[?] Help [Enter] Exp. Panel" +msgstr "[?] Ayuda [Enter] Exp. Panel" + +#: src/labels.h:56 +msgid "Dashboard" +msgstr "Panel de Control" + +#: src/labels.h:57 +msgid "Dashboard - Overall Analyzed Requests" +msgstr "Panel de Control - Peticiones Analizadas En General" + +#: src/labels.h:58 +msgid "Overall Analyzed Requests" +msgstr "Peticiones Analizadas en General" + +#: src/labels.h:60 src/labels.h:81 +msgid "Tx. Amount" +msgstr "" + +#: src/labels.h:61 +msgid "Date/Time" +msgstr "Fecha/Hora" + +#: src/labels.h:62 +msgid "Excl. IP Hits" +msgstr "Accesos IP Excl." + +#: src/labels.h:63 +msgid "Failed Requests" +msgstr "Peticiones Fallidas" + +#: src/labels.h:64 +msgid "Init. Proc. Time" +msgstr "Hora Inicio Proc." + +#: src/labels.h:65 +msgid "Log Size" +msgstr "Tamaño Log" + +#: src/labels.h:66 +msgid "Log Source" +msgstr "Origen de Log" + +#: src/labels.h:67 src/labels.h:174 +msgid "Referrers" +msgstr "Referidos" + +#: src/labels.h:68 +msgid "Total Requests" +msgstr "Peticiones Totales" + +#: src/labels.h:69 +msgid "Static Files" +msgstr "Archivos Estaticos" + +#: src/labels.h:70 src/labels.h:146 +msgid "Not Found" +msgstr "No Encontrado" + +#: src/labels.h:71 +#, fuzzy +msgid "Requested Files" +msgstr "Archivos Requeridos (URLs)" + +#: src/labels.h:72 +msgid "Unique Visitors" +msgstr "Visitantes Unicos" + +#: src/labels.h:73 +msgid "Valid Requests" +msgstr "Peticiones Validas" + +#: src/labels.h:76 +msgid "Hits" +msgstr "Hits" + +#: src/labels.h:77 +msgid "h%" +msgstr "h%" + +#: src/labels.h:78 src/labels.h:104 +msgid "Visitors" +msgstr "Visitantes" + +#: src/labels.h:79 +msgid "Vis." +msgstr "Vis." + +#: src/labels.h:80 +msgid "v%" +msgstr "v%" + +#: src/labels.h:82 +msgid "Avg. T.S." +msgstr "Prom. T.S." + +#: src/labels.h:83 +msgid "Cum. T.S." +msgstr "Cum. T.S." + +#: src/labels.h:84 +msgid "Max. T.S." +msgstr "Max. T.S." + +#: src/labels.h:85 +msgid "Method" +msgstr "Metodo" + +#: src/labels.h:86 +msgid "Mtd" +msgstr "Mtd" + +#: src/labels.h:87 +msgid "Protocol" +msgstr "Protocolo" + +#: src/labels.h:88 +msgid "Proto" +msgstr "Proto" + +#: src/labels.h:89 +msgid "City" +msgstr "Ciudad" + +#: src/labels.h:90 +msgid "Country" +msgstr "Pais" + +#: src/labels.h:91 +msgid "Hostname" +msgstr "Hostname" + +#: src/labels.h:92 +msgid "Data" +msgstr "Datos" + +#: src/labels.h:94 +msgid "Hits/Visitors" +msgstr "Hits/Visitas" + +#: src/labels.h:98 +msgid "Unique visitors per day" +msgstr "Visitantes unicos por dia" + +#: src/labels.h:100 +msgid "Unique visitors per day - Including spiders" +msgstr "Visitantes unicos por dia - Incluyendo M.Busqueda" + +#: src/labels.h:102 +msgid "Hits having the same IP, date and agent are a unique visit." +msgstr "Hits con el mismo IP, fecha y agente son unica visita" + +#: src/labels.h:107 +msgid "Requested Files (URLs)" +msgstr "Archivos Requeridos (URLs)" + +#: src/labels.h:109 +msgid "Top requests sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "Peticiones Top ordenadas por hits [, avgts, cumts, maxts, mthd, proto]" + +#: src/labels.h:111 +msgid "Requests" +msgstr "Peticiones" + +#: src/labels.h:114 src/labels.h:118 +msgid "Static Requests" +msgstr "Peticiones Estaticas" + +#: src/labels.h:116 +msgid "Top static requests sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "" +"Peticiones estaticas top ordenadas por hits [, avgts, cumts, maxts, mthd, " +"proto]" + +#: src/labels.h:121 +msgid "Time Distribution" +msgstr "Distribucion Horaria" + +#: src/labels.h:123 +msgid "Data sorted by hour [, avgts, cumts, maxts]" +msgstr "Datos ordenados por hora [, avgts, cumts, maxts]" + +#: src/labels.h:125 +msgid "Time" +msgstr "Hora" + +#: src/labels.h:128 src/labels.h:132 +msgid "Virtual Hosts" +msgstr "Hosts Virtuales" + +#: src/labels.h:130 src/labels.h:137 +msgid "Data sorted by hits [, avgts, cumts, maxts]" +msgstr "Datos ordenados por hits [, avgts, cumts, maxts]" + +#: src/labels.h:135 +msgid "Remote User (HTTP authentication)" +msgstr "Usuario Remoto (Autenticacion HTTP)" + +#: src/labels.h:139 +msgid "Remote User" +msgstr "Usuario Remoto" + +#: src/labels.h:142 +msgid "Not Found URLs (404s)" +msgstr "URLs no encontradas (404)" + +#: src/labels.h:144 +msgid "Top not found URLs sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "" +"URLs no encontradas top ordenadas por hits [, avgts, cumts, maxts, mthd, " +"proto]" + +#: src/labels.h:149 +msgid "Visitor Hostnames and IPs" +msgstr "Hosts e IPs de los Visitantes" + +#: src/labels.h:151 +msgid "Top visitor hosts sorted by hits [, avgts, cumts, maxts]" +msgstr "Hosts de visitante top ordenado por hits [, avgts, cumts, maxts]" + +#: src/labels.h:153 +msgid "Hosts" +msgstr "Hosts" + +#: src/labels.h:156 +msgid "Operating Systems" +msgstr "Sistemas Operativos" + +#: src/labels.h:158 +msgid "Top Operating Systems sorted by hits [, avgts, cumts, maxts]" +msgstr "Sistemas Operativos top ordenados por hits [, avgts, cumts, maxts]" + +#: src/labels.h:160 +msgid "OS" +msgstr "SO" + +#: src/labels.h:163 src/labels.h:167 +msgid "Browsers" +msgstr "Navegadores" + +#: src/labels.h:165 +msgid "Top Browsers sorted by hits [, avgts, cumts, maxts]" +msgstr "Navegadores top ordenados por hits [, avgts, cumts, maxts]" + +#: src/labels.h:170 +msgid "Referrers URLs" +msgstr "URLs Referidos" + +#: src/labels.h:172 +msgid "Top Requested Referrers sorted by hits [, avgts, cumts, maxts]" +msgstr "Peticiones top de referidos ordenadas por hits [, avgts, cumts, maxts]" + +#: src/labels.h:177 src/labels.h:181 +msgid "Referring Sites" +msgstr "Sitios Referidos" + +#: src/labels.h:179 +msgid "Top Referring Sites sorted by hits [, avgts, cumts, maxts]" +msgstr "Sitios Referidos top ordenados por hits [, avgts, cumts, maxts]" + +#: src/labels.h:184 +msgid "Keyphrases from Google's search engine" +msgstr "Frases de busqueda de motor de busqueda Google" + +#: src/labels.h:186 +msgid "Top Keyphrases sorted by hits [, avgts, cumts, maxts]" +msgstr "Frases de busqueda top ordenadas por hits [, avgts, cumts, maxts]" + +#: src/labels.h:188 +msgid "Keyphrases" +msgstr "Frases Clave" + +#: src/labels.h:191 src/labels.h:195 +msgid "Geo Location" +msgstr "Geo Localizacion" + +#: src/labels.h:193 +msgid "Continent > Country sorted by unique hits [, avgts, cumts, maxts]" +msgstr "Continente > Pais ordenado por hits unicos [, avgts, cumts, maxts]" + +#: src/labels.h:198 +msgid "HTTP Status Codes" +msgstr "Codigos de Estado HTTP" + +#: src/labels.h:200 +msgid "Top HTTP Status Codes sorted by hits [, avgts, cumts, maxts]" +msgstr "Codigos de Estado HTTP top ordenados por hits [, avgts, cumts, maxts]" + +#: src/labels.h:202 +msgid "Status Codes" +msgstr "Codigos de Estado" + +#: src/labels.h:206 +msgid "[ ] case sensitive" +msgstr "[ ] distinguir mayusculas" + +#: src/labels.h:208 +msgid "[x] case sensitive" +msgstr "[x] distinguir mayusculas" + +#: src/labels.h:210 +msgid "Regex allowed - ^g to cancel - TAB switch case" +msgstr "Permitido Regex - ^g para cancelar - TAB cambiar case" + +#: src/labels.h:212 +msgid "Find pattern in all views" +msgstr "Encontrar patron en todas las vistas" + +#: src/labels.h:216 +msgid "Log Format Configuration" +msgstr "Configuracion de Formato de Log" + +#: src/labels.h:218 +msgid "[SPACE] to toggle - [ENTER] to proceed - [q] to quit" +msgstr "[ESPACIO] para alternar - [ENTER] para proceder - [q] para salir" + +#: src/labels.h:220 +msgid "Log Format - [c] to add/edit format" +msgstr "Formato de Log - [c] para agregar/editar formato" + +#: src/labels.h:222 +msgid "Date Format - [d] to add/edit format" +msgstr "Formato de Fecha - [d] para agregar/editar formato" + +#: src/labels.h:224 +msgid "Time Format - [t] to add/edit format" +msgstr "Formato de Hora - [t] para agregar/editar formato" + +#: src/labels.h:226 src/labels.h:230 +msgid "[UP/DOWN] to scroll - [q] to close window" +msgstr "[ARRIBA/ABAJO] para scrollear - [q] para cerrar ventana" + +#: src/labels.h:232 +#, c-format +msgid "User Agents for %1$s" +msgstr "Agentes de Usuario para %1$s" + +#: src/labels.h:236 +msgid "Scheme Configuration" +msgstr "Configuracion de Esquema" + +#: src/labels.h:238 +msgid "[ENTER] to use scheme - [q]uit" +msgstr "[ENTER] para usar esquema - [q]Salir" + +#: src/labels.h:242 +msgid "Sort active module by" +msgstr "Ordenar modulo activo por" + +#: src/labels.h:244 +msgid "[ENTER] select - [TAB] sort - [q]uit" +msgstr "[ENTER] seleccionar - [TAB] ordenar - [q]Salir" + +#: src/labels.h:248 +msgid "GoAccess Quick Help" +msgstr "Ayuda Rapida de GoAccess" + +#: src/labels.h:250 +msgid "[UP/DOWN] to scroll - [q] to quit" +msgstr "[ARRIBA/ABAJO] para scrollear - [q] para salir" + +#: src/labels.h:254 +msgid "Built using Tokyo Cabinet on-disk B+ Tree." +msgstr "Construido usando Tokyo Cabinet on-disk B+ Tree." + +#: src/labels.h:256 +msgid "Built using Tokyo Cabinet in-memory hash database." +msgstr "Construido usando Tokyo Cabinet in-memory hash database." + +#: src/labels.h:258 +msgid "Built using the default in-memory hash database." +msgstr "Construido usando base de datos hash por defecto en-memoria" + +#: src/labels.h:262 +msgid "Format Errors - Verify your log/date/time format" +msgstr "Errores de Formato - Verifique su formato de log/fecha/hora" + +#: src/labels.h:264 +msgid "No date format was found on your conf file." +msgstr "No se encontro formato de fecha en su archivo de configuracion" + +#: src/labels.h:266 +msgid "No log format was found on your conf file." +msgstr "No se encontro formato de log en su archivo de configuracion" + +#: src/labels.h:268 +msgid "No time format was found on your conf file." +msgstr "No se encontro formato de hora en su archivo de configuracion" + +#: src/labels.h:270 +msgid "No default config file found." +msgstr "No se encontro archivo de configuracion por defecto." + +#: src/labels.h:272 +msgid "You may specify one with" +msgstr "Ud. puede especificar un ancho" + +#: src/labels.h:274 +msgid "producing the following errors" +msgstr "produciendo los siguientes errores" + +#: src/labels.h:276 +#, c-format +msgid "Parsed %1$d lines" +msgstr "Analizadas %1$d lineas" + +#: src/labels.h:278 +msgid "Please report it by opening an issue on GitHub" +msgstr "Por favor avise abriendo un issue en GitHub" + +#: src/labels.h:280 +msgid "Select a time format." +msgstr "Elija un formato de hora." + +#: src/labels.h:282 +msgid "Select a date format." +msgstr "Elija un formato de fecha." + +#: src/labels.h:284 +msgid "Select a log format." +msgstr "Elija un formato de log." + +#: src/labels.h:286 +#, c-format +msgid "'%1$s' panel is disabled" +msgstr "'%1$s' panel esta desactivado" + +#: src/labels.h:290 +msgid "For more details visit" +msgstr "Para mas detalles visite" + +#: src/labels.h:292 +msgid "Last Updated" +msgstr "Ultima actualizacion" + +#: src/labels.h:294 +msgid "WebSocket server ready to accept new client connections" +msgstr "Servidor WebSocket listo para aceptar nuevas conexiones de clientes" + +#: src/labels.h:297 +msgid "The following options can also be supplied to the command" +msgstr "Las siguientes opciones pueden ser ademas suplirse en el comando" + +#: src/labels.h:299 +msgid "Examples can be found by running" +msgstr "Ejemplos pueden encontrarse ejecutando" + +#: src/labels.h:302 +msgid "Server Statistics" +msgstr "Estadisticas de Servidor" + +#: src/labels.h:304 +msgid "Theme" +msgstr "Skin" + +#: src/labels.h:306 +msgid "Dark Gray" +msgstr "Gris Oscuro" + +#: src/labels.h:308 +msgid "Bright" +msgstr "Clara" + +#: src/labels.h:310 +msgid "Dark Blue" +msgstr "Azul Oscuro" + +#: src/labels.h:312 +#, fuzzy +msgid "Dark Purple" +msgstr "Azul Oscuro" + +#: src/labels.h:314 +msgid "Panels" +msgstr "Paneles" + +#: src/labels.h:316 +msgid "Items per Page" +msgstr "Items por pagina" + +#: src/labels.h:318 +msgid "Tables" +msgstr "Tablas" + +#: src/labels.h:320 +msgid "Display Tables" +msgstr "Mostrar Tablas" + +#: src/labels.h:322 +msgid "Auto-Hide on Small Devices" +msgstr "Auto-ocultar en Pequeños Dispositivos" + +#: src/labels.h:324 +msgid "Automatically hide tables on small screen devices" +msgstr "Automaticamente ocultar tablas en pequeños dispositivos" + +#: src/labels.h:326 +msgid "Layout" +msgstr "Diseño" + +#: src/labels.h:328 +msgid "Horizontal" +msgstr "Horizontal" + +#: src/labels.h:330 +msgid "Vertical" +msgstr "Vertical" + +#: src/labels.h:332 +msgid "File Options" +msgstr "Opciones de Archivo" + +#: src/labels.h:334 +msgid "Export as JSON" +msgstr "Exportar como JSON" + +#: src/labels.h:336 +msgid "Panel Options" +msgstr "Opciones de Panel" + +#: src/labels.h:338 +msgid "Previous" +msgstr "Anterior" + +#: src/labels.h:340 +msgid "Next" +msgstr "Siguiente" + +#: src/labels.h:342 +msgid "First" +msgstr "" + +#: src/labels.h:344 +msgid "Last" +msgstr "" + +#: src/labels.h:346 +msgid "Chart Options" +msgstr "Opciones de Grafico" + +#: src/labels.h:348 +msgid "Chart" +msgstr "Grafico" + +#: src/labels.h:350 +msgid "Type" +msgstr "Tipo" + +#: src/labels.h:352 +msgid "Area Spline" +msgstr "Area Ranura" + +#: src/labels.h:354 +msgid "Bar" +msgstr "Bar" + +#: src/labels.h:356 +msgid "Plot Metric" +msgstr "Trazado" + +#: src/labels.h:358 +msgid "Table Columns" +msgstr "Columnas de Tabla" + +#: src/labels.h:362 +msgid "1xx Informational" +msgstr "1xx Informativo" + +#: src/labels.h:364 +msgid "2xx Success" +msgstr "2xx Exito" + +#: src/labels.h:366 +msgid "3xx Redirection" +msgstr "3xx Redireccion" + +#: src/labels.h:368 +msgid "4xx Client Errors" +msgstr "4xx Errores de Cliente" + +#: src/labels.h:370 +msgid "5xx Server Errors" +msgstr "5xx Errores de Servidor" + +#: src/labels.h:373 +msgid "100 - Continue: Server received the initial part of the request" +msgstr "100 - Continuar: Servidor recibio la parte inicial de la peticion" + +#: src/labels.h:375 +msgid "101 - Switching Protocols: Client asked to switch protocols" +msgstr "101 - Cambiando Protocolos: Cliente pidio cambiar protocolos" + +#: src/labels.h:377 +msgid "200 - OK: The request sent by the client was successful" +msgstr "200 - OK: La peticion enviada por el cliente fue exitosa" + +#: src/labels.h:379 +msgid "201 - Created: The request has been fulfilled and created" +msgstr "201 - Creada: La peticion ha sido completada y creada" + +#: src/labels.h:381 +msgid "202 - Accepted: The request has been accepted for processing" +msgstr "202 - Aceptada: La peticion fue aceptada para procesar" + +#: src/labels.h:383 +msgid "203 - Non-authoritative Information: Response from a third party" +msgstr "203 - No-autoritario Informativo: Respuesta de una 3er. parte" + +#: src/labels.h:385 +msgid "204 - No Content: Request did not return any content" +msgstr "204 - Sin Contenido: Peticion no retorno ningun contenido" + +#: src/labels.h:387 +msgid "205 - Reset Content: Server asked the client to reset the document" +msgstr "" +"205 - Resetear Contenido: Servidor pidio al cliente resetear el documento" + +#: src/labels.h:389 +msgid "206 - Partial Content: The partial GET has been successful" +msgstr "206 - Contenido Parcial: el GET parcial fue exitoso" + +#: src/labels.h:391 +msgid "207 - Multi-Status: WebDAV; RFC 4918" +msgstr "207 - Multi-Estado: WebDAV; RFC 4918" + +#: src/labels.h:393 +msgid "208 - Already Reported: WebDAV; RFC 5842" +msgstr "208 - Ya Reportado: WebDAV; RFC 5842" + +#: src/labels.h:395 +msgid "300 - Multiple Choices: Multiple options for the resource" +msgstr "300 - Multiples Opciones: Multiples opciones para el recurso" + +#: src/labels.h:397 +msgid "301 - Moved Permanently: Resource has permanently moved" +msgstr "301 - Movido Permanente: Recurso ha sido permanentemente movido" + +#: src/labels.h:399 +msgid "302 - Moved Temporarily (redirect)" +msgstr "302 - Movido Temporalmente (redireccion)" + +#: src/labels.h:401 +msgid "303 - See Other Document: The response is at a different URI" +msgstr "303 - Ver Otro Documento: La respuesta es en una URI diferente" + +#: src/labels.h:403 +msgid "304 - Not Modified: Resource has not been modified" +msgstr "304 - No Modificado: Recurso no ha sido modificado" + +#: src/labels.h:405 +msgid "305 - Use Proxy: Can only be accessed through the proxy" +msgstr "305 - Usar Proxy: Puede ser accedido solo a traves de proxy" + +#: src/labels.h:407 +msgid "307 - Temporary Redirect: Resource temporarily moved" +msgstr "307 - Redireccion Temporal: Recurso movido temporalmente" + +#: src/labels.h:409 +msgid "400 - Bad Request: The syntax of the request is invalid" +msgstr "400 - Peticion Mala: La sintaxis de la peticion es invalida" + +#: src/labels.h:411 +msgid "401 - Unauthorized: Request needs user authentication" +msgstr "401 - Sin Autorizacion: Peticion necesita autenticacion de usuario" + +#: src/labels.h:413 +msgid "402 - Payment Required" +msgstr "402 - Pago Requerido" + +#: src/labels.h:415 +msgid "403 - Forbidden: Server is refusing to respond to it" +msgstr "403 - Prohibido: Servidor esta rechazando respuesta" + +#: src/labels.h:417 +msgid "404 - Not Found: Requested resource could not be found" +msgstr "404 - No Encontrado: Peticion de recurso no pudo encontrarse" + +#: src/labels.h:419 +msgid "405 - Method Not Allowed: Request method not supported" +msgstr "405 - Metodo No Permitido: Metodo de Peticion no soportado" + +#: src/labels.h:421 +msgid "406 - Not Acceptable" +msgstr "406 - No Aceptable" + +#: src/labels.h:423 +msgid "407 - Proxy Authentication Required" +msgstr "407 - Autenticacion de Proxy Requerida" + +#: src/labels.h:425 +msgid "408 - Request Timeout: Server timed out waiting for the request" +msgstr "408 - Timeout de Peticion: Tiempo agotado de espera para la solicitud" + +#: src/labels.h:427 +msgid "409 - Conflict: Conflict in the request" +msgstr "409 - Conflicto: Conflicto en la peticion" + +#: src/labels.h:429 +msgid "410 - Gone: Resource requested is no longer available" +msgstr "410 - Fue: Recurso requerido no esta mas disponible" + +#: src/labels.h:431 +msgid "411 - Length Required: Invalid Content-Length" +msgstr "411 - Longitud Requerida: Content-Length Invalido" + +#: src/labels.h:433 +msgid "412 - Precondition Failed: Server does not meet preconditions" +msgstr "412 - Precondicion Fallida: Servidor no cumple precondiciones" + +#: src/labels.h:435 +msgid "413 - Payload Too Large" +msgstr "413 - Carga Util Demasiado larga" + +#: src/labels.h:437 +msgid "414 - Request-URI Too Long" +msgstr "414 - Request-URI demasiado larga" + +#: src/labels.h:439 +msgid "415 - Unsupported Media Type: Media type is not supported" +msgstr "415 - Tipo de medios no soportado: El tipo de medios no es soportado" + +#: src/labels.h:441 +msgid "416 - Requested Range Not Satisfiable: Cannot supply that portion" +msgstr "416 - Rango requerido no satisfacible: No puede proveer esa porcion" + +#: src/labels.h:443 +msgid "417 - Expectation Failed" +msgstr "417 - Expectativa Fallida" + +#: src/labels.h:445 +msgid "421 - Misdirected Request" +msgstr "" + +#: src/labels.h:447 +msgid "422 - Unprocessable Entity due to semantic errors: WebDAV" +msgstr "" + +#: src/labels.h:449 +msgid "423 - The resource that is being accessed is locked" +msgstr "" + +#: src/labels.h:451 +msgid "424 - Failed Dependency: WebDAV" +msgstr "" + +#: src/labels.h:453 +msgid "426 - Upgrade Required: Client should switch to a different protocol" +msgstr "" + +#: src/labels.h:455 +#, fuzzy +msgid "428 - Precondition Required" +msgstr "402 - Pago Requerido" + +#: src/labels.h:457 +msgid "429 - Too Many Requests: The user has sent too many requests" +msgstr "" + +#: src/labels.h:459 +#, fuzzy +msgid "431 - Request Header Fields Too Large" +msgstr "494 - (Nginx) Cabecera de Peticion demasiada larga" + +#: src/labels.h:461 +msgid "451 - Unavailable For Legal Reasons" +msgstr "" + +#: src/labels.h:463 +msgid "444 - (Nginx) Connection closed without sending any headers" +msgstr "444 - (Nginx) Conexion cerrada sin enviar cabeceras" + +#: src/labels.h:465 +msgid "494 - (Nginx) Request Header Too Large" +msgstr "494 - (Nginx) Cabecera de Peticion demasiada larga" + +#: src/labels.h:467 +msgid "495 - (Nginx) SSL client certificate error" +msgstr "495 - (Nginx) Cliente SSL certificado erroneo" + +#: src/labels.h:469 +msgid "496 - (Nginx) Client didn't provide certificate" +msgstr "496 - (Nginx) Client no proveyo certificado" + +#: src/labels.h:471 +msgid "497 - (Nginx) HTTP request sent to HTTPS port" +msgstr "497 - (Nginx) Peticion HTTP enviada a puerto HTTPS" + +#: src/labels.h:473 +msgid "499 - (Nginx) Connection closed by client while processing request" +msgstr "499 - (Nginx) Conexion cerrada por cliente mientras procesaba peticion" + +#: src/labels.h:475 +msgid "500 - Internal Server Error" +msgstr "500 - Error Interno de Servidor" + +#: src/labels.h:477 +msgid "501 - Not Implemented" +msgstr "501 - No Implementado" + +#: src/labels.h:479 +msgid "502 - Bad Gateway: Received an invalid response from the upstream" +msgstr "502 - Entrada Erronea: Recibio respuesta invalida" + +#: src/labels.h:481 +msgid "503 - Service Unavailable: The server is currently unavailable" +msgstr "" +"503 - Servicio no disponible: El servidor actualmente no esta disponible" + +#: src/labels.h:483 +msgid "504 - Gateway Timeout: The upstream server failed to send request" +msgstr "" +"504 - Timeout de Gateway: El servidor upstream fallo al enviar peticion" + +#: src/labels.h:485 +msgid "505 - HTTP Version Not Supported" +msgstr "505 - Version HTTP no soportada" + +#: src/labels.h:487 +msgid "520 - CloudFlare - Web server is returning an unknown error" +msgstr "520 - CloudFlare - El servidor esta retornando un error desconocido" + +#: src/labels.h:489 +msgid "521 - CloudFlare - Web server is down" +msgstr "521 - CloudFlare - Servidor Web caido" + +#: src/labels.h:491 +msgid "522 - CloudFlare - Connection timed out" +msgstr "522 - CloudFlare - Tiempo de espera de conexion agotado " + +#: src/labels.h:493 +msgid "523 - CloudFlare - Origin is unreachable" +msgstr "523 - CloudFlare - Origen es inaccesible" + +#: src/labels.h:495 +msgid "524 - CloudFlare - A timeout occurred" +msgstr "524 - CloudFlare - Ocurrio cese de tiempo" + +#~ msgid "Bandwidth" +#~ msgstr "Ancho de Banda" + +#~ msgid "Unique Files" +#~ msgstr "Archivos Unicos" + +#~ msgid "Unique 404" +#~ msgstr "404 Unico" diff --git a/src/goaccess++/po/fr.gmo b/src/goaccess++/po/fr.gmo new file mode 100644 index 0000000000000000000000000000000000000000..c90f9b98deded02836f1d309e52fd2773922065b GIT binary patch literal 9094 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 KPs$(oAM?L4rrag~ literal 0 HcmV?d00001 diff --git a/src/goaccess++/po/fr.po b/src/goaccess++/po/fr.po new file mode 100644 index 0000000..e89e090 --- /dev/null +++ b/src/goaccess++/po/fr.po @@ -0,0 +1,904 @@ +# This file is distributed under the same license as the goaccess package. +# Nicolas P <np>, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: goaccess 1.2\n" +"Report-Msgid-Bugs-To: hello@goaccess.io\n" +"POT-Creation-Date: 2018-11-22 23:38-0600\n" +"PO-Revision-Date: 2017-04-03 09:43+0200\n" +"Last-Translator: Nicolas P <np.pascal@gmail.com>\n" +"Language-Team: français\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.7\n" + +#: src/labels.h:40 +msgid "en" +msgstr "fr" + +#: src/labels.h:43 +msgid "Exp. Panel" +msgstr "Dev. Panneau" + +#: src/labels.h:44 +msgid "Help" +msgstr "Aide" + +#: src/labels.h:45 +msgid "Quit" +msgstr "Quitter" + +#: src/labels.h:46 +msgid "Total" +msgstr "Total" + +#: src/labels.h:49 +msgid "[x] ASC [ ] DESC" +msgstr "[x] ASC [ ] DESC" + +#: src/labels.h:50 +msgid "[ ] ASC [x] DESC" +msgstr "[ ] ASC [x] DESC" + +#: src/labels.h:53 +#, c-format +msgid "[Active Panel: %1$s]" +msgstr "" + +#: src/labels.h:54 +msgid "[q]uit GoAccess" +msgstr "" + +#: src/labels.h:55 +msgid "[?] Help [Enter] Exp. Panel" +msgstr "" + +#: src/labels.h:56 +msgid "Dashboard" +msgstr "Tableau de bord" + +#: src/labels.h:57 +msgid "Dashboard - Overall Analyzed Requests" +msgstr "Tableau de bord - Requêtes analysées, vue d'ensemble" + +#: src/labels.h:58 +msgid "Overall Analyzed Requests" +msgstr "Requêtes analysées, vue d'ensemble" + +#: src/labels.h:60 src/labels.h:81 +msgid "Tx. Amount" +msgstr "" + +#: src/labels.h:61 +msgid "Date/Time" +msgstr "Date/Heure" + +#: src/labels.h:62 +msgid "Excl. IP Hits" +msgstr "Excl. IP Hits" + +#: src/labels.h:63 +msgid "Failed Requests" +msgstr "Requêtes échouées" + +#: src/labels.h:64 +msgid "Init. Proc. Time" +msgstr "Init. Proc. Time" + +#: src/labels.h:65 +msgid "Log Size" +msgstr "Taille du log" + +#: src/labels.h:66 +msgid "Log Source" +msgstr "Fichier de log" + +#: src/labels.h:67 src/labels.h:174 +msgid "Referrers" +msgstr "Origine" + +#: src/labels.h:68 +msgid "Total Requests" +msgstr "Requêtes totales" + +#: src/labels.h:69 +msgid "Static Files" +msgstr "Fichiers statiques" + +#: src/labels.h:70 src/labels.h:146 +msgid "Not Found" +msgstr "Non Trouvé" + +#: src/labels.h:71 +#, fuzzy +msgid "Requested Files" +msgstr "Fichiers demandés (URLs)" + +#: src/labels.h:72 +msgid "Unique Visitors" +msgstr "Visiteurs uniques" + +#: src/labels.h:73 +msgid "Valid Requests" +msgstr "Requêtes valides" + +#: src/labels.h:76 +msgid "Hits" +msgstr "Hits" + +#: src/labels.h:77 +msgid "h%" +msgstr "" + +#: src/labels.h:78 src/labels.h:104 +msgid "Visitors" +msgstr "Visiteurs" + +#: src/labels.h:79 +msgid "Vis." +msgstr "Vis." + +#: src/labels.h:80 +msgid "v%" +msgstr "" + +#: src/labels.h:82 +msgid "Avg. T.S." +msgstr "Avg. T.S." + +#: src/labels.h:83 +msgid "Cum. T.S." +msgstr "Cum. T.S." + +#: src/labels.h:84 +msgid "Max. T.S." +msgstr "Max. T.S." + +#: src/labels.h:85 +msgid "Method" +msgstr "Méthode" + +#: src/labels.h:86 +msgid "Mtd" +msgstr "Mtd" + +#: src/labels.h:87 +msgid "Protocol" +msgstr "Protocole" + +#: src/labels.h:88 +msgid "Proto" +msgstr "Proto" + +#: src/labels.h:89 +msgid "City" +msgstr "Ville" + +#: src/labels.h:90 +msgid "Country" +msgstr "Pays" + +#: src/labels.h:91 +msgid "Hostname" +msgstr "Nom d'hôte" + +#: src/labels.h:92 +msgid "Data" +msgstr "Données" + +#: src/labels.h:94 +#, fuzzy +msgid "Hits/Visitors" +msgstr "Visiteurs" + +#: src/labels.h:98 +msgid "Unique visitors per day" +msgstr "Visiteurs uniques par jour" + +#: src/labels.h:100 +msgid "Unique visitors per day - Including spiders" +msgstr "Visiteurs uniques/jour - Y compris bots" + +#: src/labels.h:102 +msgid "Hits having the same IP, date and agent are a unique visit." +msgstr "" +"Les hits depuis la même IP, date et user-agent comptent comme visite unique" + +#: src/labels.h:107 +msgid "Requested Files (URLs)" +msgstr "Fichiers demandés (URLs)" + +#: src/labels.h:109 +msgid "Top requests sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "Top des requêtes trié par hits [, avgts, cumts, maxts, mthd, proto]" + +#: src/labels.h:111 +msgid "Requests" +msgstr "Requêtes" + +#: src/labels.h:114 src/labels.h:118 +msgid "Static Requests" +msgstr "Requêtes statiques" + +#: src/labels.h:116 +msgid "Top static requests sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "" +"Top des requêtes statiques trié par hits [, avgts, cumts, maxts, mthd, proto]" + +#: src/labels.h:121 +msgid "Time Distribution" +msgstr "Distribution temporelle" + +#: src/labels.h:123 +msgid "Data sorted by hour [, avgts, cumts, maxts]" +msgstr "Données triées par heure [, avgts, cumts, maxts]" + +#: src/labels.h:125 +msgid "Time" +msgstr "Temps" + +#: src/labels.h:128 src/labels.h:132 +msgid "Virtual Hosts" +msgstr "Hôtes virtuels" + +#: src/labels.h:130 src/labels.h:137 +msgid "Data sorted by hits [, avgts, cumts, maxts]" +msgstr "Données triées par hits [, avgts, cumts, maxts]" + +#: src/labels.h:135 +msgid "Remote User (HTTP authentication)" +msgstr "Utilisateur distant (authentification HTTP)" + +#: src/labels.h:139 +msgid "Remote User" +msgstr "Remote Utilisateur" + +#: src/labels.h:142 +msgid "Not Found URLs (404s)" +msgstr "URLs Non trouvées (404s)" + +#: src/labels.h:144 +msgid "Top not found URLs sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "" +"Top des URLs non trouvées trié par hits [, avgts, cumts, maxts, mthd, proto]" + +#: src/labels.h:149 +msgid "Visitor Hostnames and IPs" +msgstr "Nom de machine et IPs des visiteurs" + +#: src/labels.h:151 +msgid "Top visitor hosts sorted by hits [, avgts, cumts, maxts]" +msgstr "Top des visiteurs trié par hits [, avgts, cumts, maxts]" + +#: src/labels.h:153 +msgid "Hosts" +msgstr "Hôtes" + +#: src/labels.h:156 +msgid "Operating Systems" +msgstr "Systèmes d'exploitation" + +#: src/labels.h:158 +msgid "Top Operating Systems sorted by hits [, avgts, cumts, maxts]" +msgstr "Top des SE trié par hits [, avgts, cumts, maxts]" + +#: src/labels.h:160 +msgid "OS" +msgstr "SE" + +#: src/labels.h:163 src/labels.h:167 +msgid "Browsers" +msgstr "Navigateurs" + +#: src/labels.h:165 +msgid "Top Browsers sorted by hits [, avgts, cumts, maxts]" +msgstr "Top des Navigateurs trié par hits [, avgts, cumts, maxts]" + +#: src/labels.h:170 +msgid "Referrers URLs" +msgstr "URLs d'origine" + +#: src/labels.h:172 +msgid "Top Requested Referrers sorted by hits [, avgts, cumts, maxts]" +msgstr "Top des URLs d'origine trié par hits [, avgts, cumts, maxts]" + +#: src/labels.h:177 src/labels.h:181 +msgid "Referring Sites" +msgstr "Sites d'origine" + +#: src/labels.h:179 +msgid "Top Referring Sites sorted by hits [, avgts, cumts, maxts]" +msgstr "Top des sites d'origine trié par hits [, avgts, cumts, maxts]" + +#: src/labels.h:184 +msgid "Keyphrases from Google's search engine" +msgstr "Mot-clés Google" + +#: src/labels.h:186 +msgid "Top Keyphrases sorted by hits [, avgts, cumts, maxts]" +msgstr "Top des Mot-clés trié par hits [, avgts, cumts, maxts]" + +#: src/labels.h:188 +msgid "Keyphrases" +msgstr "Mot-clés" + +#: src/labels.h:191 src/labels.h:195 +msgid "Geo Location" +msgstr "Géo Localisation" + +#: src/labels.h:193 +msgid "Continent > Country sorted by unique hits [, avgts, cumts, maxts]" +msgstr "Continent > Pays trié par hits unique [, avgts, cumts, maxts]" + +#: src/labels.h:198 +msgid "HTTP Status Codes" +msgstr "Status HTTP" + +#: src/labels.h:200 +msgid "Top HTTP Status Codes sorted by hits [, avgts, cumts, maxts]" +msgstr "Top des status HTTP trié par hits [, avgts, cumts, maxts]" + +#: src/labels.h:202 +msgid "Status Codes" +msgstr "Status HTTP" + +#: src/labels.h:206 +msgid "[ ] case sensitive" +msgstr "[ ] sensible à la casse" + +#: src/labels.h:208 +msgid "[x] case sensitive" +msgstr "[x] sensible à la casse" + +#: src/labels.h:210 +msgid "Regex allowed - ^g to cancel - TAB switch case" +msgstr "Regex OK - ^g pour annuler - TAB pour changer la casse" + +#: src/labels.h:212 +msgid "Find pattern in all views" +msgstr "Trouver tous les motifs dans toutes les vues" + +#: src/labels.h:216 +msgid "Log Format Configuration" +msgstr "" + +#: src/labels.h:218 +msgid "[SPACE] to toggle - [ENTER] to proceed - [q] to quit" +msgstr "" + +#: src/labels.h:220 +msgid "Log Format - [c] to add/edit format" +msgstr "" + +#: src/labels.h:222 +msgid "Date Format - [d] to add/edit format" +msgstr "" + +#: src/labels.h:224 +msgid "Time Format - [t] to add/edit format" +msgstr "" + +#: src/labels.h:226 src/labels.h:230 +msgid "[UP/DOWN] to scroll - [q] to close window" +msgstr "" + +#: src/labels.h:232 +#, c-format +msgid "User Agents for %1$s" +msgstr "" + +#: src/labels.h:236 +msgid "Scheme Configuration" +msgstr "" + +#: src/labels.h:238 +msgid "[ENTER] to use scheme - [q]uit" +msgstr "" + +#: src/labels.h:242 +msgid "Sort active module by" +msgstr "" + +#: src/labels.h:244 +msgid "[ENTER] select - [TAB] sort - [q]uit" +msgstr "" + +#: src/labels.h:248 +msgid "GoAccess Quick Help" +msgstr "" + +#: src/labels.h:250 +msgid "[UP/DOWN] to scroll - [q] to quit" +msgstr "" + +#: src/labels.h:254 +msgid "Built using Tokyo Cabinet on-disk B+ Tree." +msgstr "Construit sur le disque en arbre B+ en utilisant Tokyo Cabinet." + +#: src/labels.h:256 +msgid "Built using Tokyo Cabinet in-memory hash database." +msgstr "" +"Construit en mémoire avec une base de données de la table de hachage en " +"utilisant Tokyo Cabinet" + +#: src/labels.h:258 +msgid "Built using the default in-memory hash database." +msgstr "" +"Construit par défaut en mémoire avec une base de données de la table de " +"hachage" + +#: src/labels.h:262 +msgid "Format Errors - Verify your log/date/time format" +msgstr "Erreurs de format - Vérifiez votre format de journal / date / heure" + +#: src/labels.h:264 +msgid "No date format was found on your conf file." +msgstr "Aucun format de date n'a été trouvé sur votre fichier conf." + +#: src/labels.h:266 +msgid "No log format was found on your conf file." +msgstr "Aucun format de journal n'a été trouvé sur votre fichier conf." + +#: src/labels.h:268 +msgid "No time format was found on your conf file." +msgstr "Aucun format de journal n'a été trouvé sur votre fichier conf." + +#: src/labels.h:270 +msgid "No default config file found." +msgstr "Aucun fichier de configuration par défaut trouvé." + +#: src/labels.h:272 +msgid "You may specify one with" +msgstr "Vous pouvez en préciser un avec" + +#: src/labels.h:274 +msgid "producing the following errors" +msgstr "produisant les erreurs suivantes" + +#: src/labels.h:276 +#, c-format +msgid "Parsed %1$d lines" +msgstr "Analysé %1$d lignes" + +#: src/labels.h:278 +msgid "Please report it by opening an issue on GitHub" +msgstr "Si vous plaît, rapporter cela en ouvrant un probleme sur GitHub" + +#: src/labels.h:280 +msgid "Select a time format." +msgstr "" + +#: src/labels.h:282 +msgid "Select a date format." +msgstr "" + +#: src/labels.h:284 +msgid "Select a log format." +msgstr "" + +#: src/labels.h:286 +#, c-format +msgid "'%1$s' panel is disabled" +msgstr "" + +#: src/labels.h:290 +msgid "For more details visit" +msgstr "Pour plus de détails, visitez" + +#: src/labels.h:292 +msgid "Last Updated" +msgstr "Dernière mise à jour" + +#: src/labels.h:294 +msgid "WebSocket server ready to accept new client connections" +msgstr "WebSocket serveur prêt à accepter les nouvelles connexions client" + +#: src/labels.h:297 +msgid "The following options can also be supplied to the command" +msgstr "Les options suivantes peuvent également être fournies à la commande" + +#: src/labels.h:299 +msgid "Examples can be found by running" +msgstr "Des exemples peuvent être trouvés en cours d'exécution" + +#: src/labels.h:302 +msgid "Server Statistics" +msgstr "Statistiques du serveur" + +#: src/labels.h:304 +msgid "Theme" +msgstr "Thème" + +#: src/labels.h:306 +msgid "Dark Gray" +msgstr "Gris foncé" + +#: src/labels.h:308 +msgid "Bright" +msgstr "Brillant" + +#: src/labels.h:310 +msgid "Dark Blue" +msgstr "Bleu foncé" + +#: src/labels.h:312 +#, fuzzy +msgid "Dark Purple" +msgstr "Bleu foncé" + +#: src/labels.h:314 +msgid "Panels" +msgstr "Panneaux" + +#: src/labels.h:316 +msgid "Items per Page" +msgstr "Objets par page" + +#: src/labels.h:318 +msgid "Tables" +msgstr "Tableaux" + +#: src/labels.h:320 +msgid "Display Tables" +msgstr "Afficher les tableaux" + +#: src/labels.h:322 +msgid "Auto-Hide on Small Devices" +msgstr "Masquage-auto/Petits appareils" + +#: src/labels.h:324 +msgid "Automatically hide tables on small screen devices" +msgstr "" +"Masquer automatiquement les tableaux sur les appareils avec un petit écran" + +#: src/labels.h:326 +msgid "Layout" +msgstr "Disposition" + +#: src/labels.h:328 +msgid "Horizontal" +msgstr "Horizontal" + +#: src/labels.h:330 +msgid "Vertical" +msgstr "Verticale" + +#: src/labels.h:332 +msgid "File Options" +msgstr "Options de fichier" + +#: src/labels.h:334 +msgid "Export as JSON" +msgstr "Exporter en tant que JSON" + +#: src/labels.h:336 +msgid "Panel Options" +msgstr "Options du panneau" + +#: src/labels.h:338 +msgid "Previous" +msgstr "Précédent" + +#: src/labels.h:340 +msgid "Next" +msgstr "Suivant" + +#: src/labels.h:342 +msgid "First" +msgstr "" + +#: src/labels.h:344 +msgid "Last" +msgstr "" + +#: src/labels.h:346 +msgid "Chart Options" +msgstr "Options du graphique" + +#: src/labels.h:348 +msgid "Chart" +msgstr "Graphique" + +#: src/labels.h:350 +msgid "Type" +msgstr "Type" + +#: src/labels.h:352 +msgid "Area Spline" +msgstr "Courbe vectorielle" + +#: src/labels.h:354 +msgid "Bar" +msgstr "Barre" + +#: src/labels.h:356 +msgid "Plot Metric" +msgstr "Tracé métrique" + +#: src/labels.h:358 +msgid "Table Columns" +msgstr "Colonnes de tableau" + +#: src/labels.h:362 +msgid "1xx Informational" +msgstr "" + +#: src/labels.h:364 +msgid "2xx Success" +msgstr "" + +#: src/labels.h:366 +msgid "3xx Redirection" +msgstr "" + +#: src/labels.h:368 +msgid "4xx Client Errors" +msgstr "" + +#: src/labels.h:370 +msgid "5xx Server Errors" +msgstr "" + +#: src/labels.h:373 +msgid "100 - Continue: Server received the initial part of the request" +msgstr "" + +#: src/labels.h:375 +msgid "101 - Switching Protocols: Client asked to switch protocols" +msgstr "" + +#: src/labels.h:377 +msgid "200 - OK: The request sent by the client was successful" +msgstr "" + +#: src/labels.h:379 +msgid "201 - Created: The request has been fulfilled and created" +msgstr "" + +#: src/labels.h:381 +msgid "202 - Accepted: The request has been accepted for processing" +msgstr "" + +#: src/labels.h:383 +msgid "203 - Non-authoritative Information: Response from a third party" +msgstr "" + +#: src/labels.h:385 +msgid "204 - No Content: Request did not return any content" +msgstr "" + +#: src/labels.h:387 +msgid "205 - Reset Content: Server asked the client to reset the document" +msgstr "" + +#: src/labels.h:389 +msgid "206 - Partial Content: The partial GET has been successful" +msgstr "" + +#: src/labels.h:391 +msgid "207 - Multi-Status: WebDAV; RFC 4918" +msgstr "" + +#: src/labels.h:393 +msgid "208 - Already Reported: WebDAV; RFC 5842" +msgstr "" + +#: src/labels.h:395 +msgid "300 - Multiple Choices: Multiple options for the resource" +msgstr "" + +#: src/labels.h:397 +msgid "301 - Moved Permanently: Resource has permanently moved" +msgstr "" + +#: src/labels.h:399 +msgid "302 - Moved Temporarily (redirect)" +msgstr "" + +#: src/labels.h:401 +msgid "303 - See Other Document: The response is at a different URI" +msgstr "" + +#: src/labels.h:403 +msgid "304 - Not Modified: Resource has not been modified" +msgstr "" + +#: src/labels.h:405 +msgid "305 - Use Proxy: Can only be accessed through the proxy" +msgstr "" + +#: src/labels.h:407 +msgid "307 - Temporary Redirect: Resource temporarily moved" +msgstr "" + +#: src/labels.h:409 +msgid "400 - Bad Request: The syntax of the request is invalid" +msgstr "" + +#: src/labels.h:411 +msgid "401 - Unauthorized: Request needs user authentication" +msgstr "" + +#: src/labels.h:413 +msgid "402 - Payment Required" +msgstr "" + +#: src/labels.h:415 +msgid "403 - Forbidden: Server is refusing to respond to it" +msgstr "" + +#: src/labels.h:417 +msgid "404 - Not Found: Requested resource could not be found" +msgstr "" + +#: src/labels.h:419 +msgid "405 - Method Not Allowed: Request method not supported" +msgstr "" + +#: src/labels.h:421 +msgid "406 - Not Acceptable" +msgstr "" + +#: src/labels.h:423 +msgid "407 - Proxy Authentication Required" +msgstr "" + +#: src/labels.h:425 +msgid "408 - Request Timeout: Server timed out waiting for the request" +msgstr "" + +#: src/labels.h:427 +msgid "409 - Conflict: Conflict in the request" +msgstr "" + +#: src/labels.h:429 +msgid "410 - Gone: Resource requested is no longer available" +msgstr "" + +#: src/labels.h:431 +msgid "411 - Length Required: Invalid Content-Length" +msgstr "" + +#: src/labels.h:433 +msgid "412 - Precondition Failed: Server does not meet preconditions" +msgstr "" + +#: src/labels.h:435 +msgid "413 - Payload Too Large" +msgstr "" + +#: src/labels.h:437 +msgid "414 - Request-URI Too Long" +msgstr "" + +#: src/labels.h:439 +msgid "415 - Unsupported Media Type: Media type is not supported" +msgstr "" + +#: src/labels.h:441 +msgid "416 - Requested Range Not Satisfiable: Cannot supply that portion" +msgstr "" + +#: src/labels.h:443 +msgid "417 - Expectation Failed" +msgstr "" + +#: src/labels.h:445 +msgid "421 - Misdirected Request" +msgstr "" + +#: src/labels.h:447 +msgid "422 - Unprocessable Entity due to semantic errors: WebDAV" +msgstr "" + +#: src/labels.h:449 +msgid "423 - The resource that is being accessed is locked" +msgstr "" + +#: src/labels.h:451 +msgid "424 - Failed Dependency: WebDAV" +msgstr "" + +#: src/labels.h:453 +msgid "426 - Upgrade Required: Client should switch to a different protocol" +msgstr "" + +#: src/labels.h:455 +msgid "428 - Precondition Required" +msgstr "" + +#: src/labels.h:457 +msgid "429 - Too Many Requests: The user has sent too many requests" +msgstr "" + +#: src/labels.h:459 +msgid "431 - Request Header Fields Too Large" +msgstr "" + +#: src/labels.h:461 +msgid "451 - Unavailable For Legal Reasons" +msgstr "" + +#: src/labels.h:463 +msgid "444 - (Nginx) Connection closed without sending any headers" +msgstr "" + +#: src/labels.h:465 +msgid "494 - (Nginx) Request Header Too Large" +msgstr "" + +#: src/labels.h:467 +msgid "495 - (Nginx) SSL client certificate error" +msgstr "" + +#: src/labels.h:469 +msgid "496 - (Nginx) Client didn't provide certificate" +msgstr "" + +#: src/labels.h:471 +msgid "497 - (Nginx) HTTP request sent to HTTPS port" +msgstr "" + +#: src/labels.h:473 +msgid "499 - (Nginx) Connection closed by client while processing request" +msgstr "" + +#: src/labels.h:475 +msgid "500 - Internal Server Error" +msgstr "" + +#: src/labels.h:477 +msgid "501 - Not Implemented" +msgstr "" + +#: src/labels.h:479 +msgid "502 - Bad Gateway: Received an invalid response from the upstream" +msgstr "" + +#: src/labels.h:481 +msgid "503 - Service Unavailable: The server is currently unavailable" +msgstr "" + +#: src/labels.h:483 +msgid "504 - Gateway Timeout: The upstream server failed to send request" +msgstr "" + +#: src/labels.h:485 +msgid "505 - HTTP Version Not Supported" +msgstr "" + +#: src/labels.h:487 +msgid "520 - CloudFlare - Web server is returning an unknown error" +msgstr "" + +#: src/labels.h:489 +msgid "521 - CloudFlare - Web server is down" +msgstr "" + +#: src/labels.h:491 +msgid "522 - CloudFlare - Connection timed out" +msgstr "" + +#: src/labels.h:493 +msgid "523 - CloudFlare - Origin is unreachable" +msgstr "" + +#: src/labels.h:495 +msgid "524 - CloudFlare - A timeout occurred" +msgstr "" + +#~ msgid "Bandwidth" +#~ msgstr "Bande passante" + +#~ msgid "Unique Files" +#~ msgstr "Fichiers uniques" + +#~ msgid "Unique 404" +#~ msgstr "Unique 404" + +#~ msgid " - Including spiders" +#~ msgstr "- Inclus robots d'indexation" diff --git a/src/goaccess++/po/goaccess.pot b/src/goaccess++/po/goaccess.pot new file mode 100644 index 0000000..f107298 --- /dev/null +++ b/src/goaccess++/po/goaccess.pot @@ -0,0 +1,882 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: goaccess 1.3\n" +"Report-Msgid-Bugs-To: hello@goaccess.io\n" +"POT-Creation-Date: 2018-11-22 23:38-0600\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/labels.h:40 +msgid "en" +msgstr "" + +#: src/labels.h:43 +msgid "Exp. Panel" +msgstr "" + +#: src/labels.h:44 +msgid "Help" +msgstr "" + +#: src/labels.h:45 +msgid "Quit" +msgstr "" + +#: src/labels.h:46 +msgid "Total" +msgstr "" + +#: src/labels.h:49 +msgid "[x] ASC [ ] DESC" +msgstr "" + +#: src/labels.h:50 +msgid "[ ] ASC [x] DESC" +msgstr "" + +#: src/labels.h:53 +#, c-format +msgid "[Active Panel: %1$s]" +msgstr "" + +#: src/labels.h:54 +msgid "[q]uit GoAccess" +msgstr "" + +#: src/labels.h:55 +msgid "[?] Help [Enter] Exp. Panel" +msgstr "" + +#: src/labels.h:56 +msgid "Dashboard" +msgstr "" + +#: src/labels.h:57 +msgid "Dashboard - Overall Analyzed Requests" +msgstr "" + +#: src/labels.h:58 +msgid "Overall Analyzed Requests" +msgstr "" + +#: src/labels.h:60 src/labels.h:81 +msgid "Tx. Amount" +msgstr "" + +#: src/labels.h:61 +msgid "Date/Time" +msgstr "" + +#: src/labels.h:62 +msgid "Excl. IP Hits" +msgstr "" + +#: src/labels.h:63 +msgid "Failed Requests" +msgstr "" + +#: src/labels.h:64 +msgid "Init. Proc. Time" +msgstr "" + +#: src/labels.h:65 +msgid "Log Size" +msgstr "" + +#: src/labels.h:66 +msgid "Log Source" +msgstr "" + +#: src/labels.h:67 src/labels.h:174 +msgid "Referrers" +msgstr "" + +#: src/labels.h:68 +msgid "Total Requests" +msgstr "" + +#: src/labels.h:69 +msgid "Static Files" +msgstr "" + +#: src/labels.h:70 src/labels.h:146 +msgid "Not Found" +msgstr "" + +#: src/labels.h:71 +msgid "Requested Files" +msgstr "" + +#: src/labels.h:72 +msgid "Unique Visitors" +msgstr "" + +#: src/labels.h:73 +msgid "Valid Requests" +msgstr "" + +#: src/labels.h:76 +msgid "Hits" +msgstr "" + +#: src/labels.h:77 +msgid "h%" +msgstr "" + +#: src/labels.h:78 src/labels.h:104 +msgid "Visitors" +msgstr "" + +#: src/labels.h:79 +msgid "Vis." +msgstr "" + +#: src/labels.h:80 +msgid "v%" +msgstr "" + +#: src/labels.h:82 +msgid "Avg. T.S." +msgstr "" + +#: src/labels.h:83 +msgid "Cum. T.S." +msgstr "" + +#: src/labels.h:84 +msgid "Max. T.S." +msgstr "" + +#: src/labels.h:85 +msgid "Method" +msgstr "" + +#: src/labels.h:86 +msgid "Mtd" +msgstr "" + +#: src/labels.h:87 +msgid "Protocol" +msgstr "" + +#: src/labels.h:88 +msgid "Proto" +msgstr "" + +#: src/labels.h:89 +msgid "City" +msgstr "" + +#: src/labels.h:90 +msgid "Country" +msgstr "" + +#: src/labels.h:91 +msgid "Hostname" +msgstr "" + +#: src/labels.h:92 +msgid "Data" +msgstr "" + +#: src/labels.h:94 +msgid "Hits/Visitors" +msgstr "" + +#: src/labels.h:98 +msgid "Unique visitors per day" +msgstr "" + +#: src/labels.h:100 +msgid "Unique visitors per day - Including spiders" +msgstr "" + +#: src/labels.h:102 +msgid "Hits having the same IP, date and agent are a unique visit." +msgstr "" + +#: src/labels.h:107 +msgid "Requested Files (URLs)" +msgstr "" + +#: src/labels.h:109 +msgid "Top requests sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "" + +#: src/labels.h:111 +msgid "Requests" +msgstr "" + +#: src/labels.h:114 src/labels.h:118 +msgid "Static Requests" +msgstr "" + +#: src/labels.h:116 +msgid "Top static requests sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "" + +#: src/labels.h:121 +msgid "Time Distribution" +msgstr "" + +#: src/labels.h:123 +msgid "Data sorted by hour [, avgts, cumts, maxts]" +msgstr "" + +#: src/labels.h:125 +msgid "Time" +msgstr "" + +#: src/labels.h:128 src/labels.h:132 +msgid "Virtual Hosts" +msgstr "" + +#: src/labels.h:130 src/labels.h:137 +msgid "Data sorted by hits [, avgts, cumts, maxts]" +msgstr "" + +#: src/labels.h:135 +msgid "Remote User (HTTP authentication)" +msgstr "" + +#: src/labels.h:139 +msgid "Remote User" +msgstr "" + +#: src/labels.h:142 +msgid "Not Found URLs (404s)" +msgstr "" + +#: src/labels.h:144 +msgid "Top not found URLs sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "" + +#: src/labels.h:149 +msgid "Visitor Hostnames and IPs" +msgstr "" + +#: src/labels.h:151 +msgid "Top visitor hosts sorted by hits [, avgts, cumts, maxts]" +msgstr "" + +#: src/labels.h:153 +msgid "Hosts" +msgstr "" + +#: src/labels.h:156 +msgid "Operating Systems" +msgstr "" + +#: src/labels.h:158 +msgid "Top Operating Systems sorted by hits [, avgts, cumts, maxts]" +msgstr "" + +#: src/labels.h:160 +msgid "OS" +msgstr "" + +#: src/labels.h:163 src/labels.h:167 +msgid "Browsers" +msgstr "" + +#: src/labels.h:165 +msgid "Top Browsers sorted by hits [, avgts, cumts, maxts]" +msgstr "" + +#: src/labels.h:170 +msgid "Referrers URLs" +msgstr "" + +#: src/labels.h:172 +msgid "Top Requested Referrers sorted by hits [, avgts, cumts, maxts]" +msgstr "" + +#: src/labels.h:177 src/labels.h:181 +msgid "Referring Sites" +msgstr "" + +#: src/labels.h:179 +msgid "Top Referring Sites sorted by hits [, avgts, cumts, maxts]" +msgstr "" + +#: src/labels.h:184 +msgid "Keyphrases from Google's search engine" +msgstr "" + +#: src/labels.h:186 +msgid "Top Keyphrases sorted by hits [, avgts, cumts, maxts]" +msgstr "" + +#: src/labels.h:188 +msgid "Keyphrases" +msgstr "" + +#: src/labels.h:191 src/labels.h:195 +msgid "Geo Location" +msgstr "" + +#: src/labels.h:193 +msgid "Continent > Country sorted by unique hits [, avgts, cumts, maxts]" +msgstr "" + +#: src/labels.h:198 +msgid "HTTP Status Codes" +msgstr "" + +#: src/labels.h:200 +msgid "Top HTTP Status Codes sorted by hits [, avgts, cumts, maxts]" +msgstr "" + +#: src/labels.h:202 +msgid "Status Codes" +msgstr "" + +#: src/labels.h:206 +msgid "[ ] case sensitive" +msgstr "" + +#: src/labels.h:208 +msgid "[x] case sensitive" +msgstr "" + +#: src/labels.h:210 +msgid "Regex allowed - ^g to cancel - TAB switch case" +msgstr "" + +#: src/labels.h:212 +msgid "Find pattern in all views" +msgstr "" + +#: src/labels.h:216 +msgid "Log Format Configuration" +msgstr "" + +#: src/labels.h:218 +msgid "[SPACE] to toggle - [ENTER] to proceed - [q] to quit" +msgstr "" + +#: src/labels.h:220 +msgid "Log Format - [c] to add/edit format" +msgstr "" + +#: src/labels.h:222 +msgid "Date Format - [d] to add/edit format" +msgstr "" + +#: src/labels.h:224 +msgid "Time Format - [t] to add/edit format" +msgstr "" + +#: src/labels.h:226 src/labels.h:230 +msgid "[UP/DOWN] to scroll - [q] to close window" +msgstr "" + +#: src/labels.h:232 +#, c-format +msgid "User Agents for %1$s" +msgstr "" + +#: src/labels.h:236 +msgid "Scheme Configuration" +msgstr "" + +#: src/labels.h:238 +msgid "[ENTER] to use scheme - [q]uit" +msgstr "" + +#: src/labels.h:242 +msgid "Sort active module by" +msgstr "" + +#: src/labels.h:244 +msgid "[ENTER] select - [TAB] sort - [q]uit" +msgstr "" + +#: src/labels.h:248 +msgid "GoAccess Quick Help" +msgstr "" + +#: src/labels.h:250 +msgid "[UP/DOWN] to scroll - [q] to quit" +msgstr "" + +#: src/labels.h:254 +msgid "Built using Tokyo Cabinet on-disk B+ Tree." +msgstr "" + +#: src/labels.h:256 +msgid "Built using Tokyo Cabinet in-memory hash database." +msgstr "" + +#: src/labels.h:258 +msgid "Built using the default in-memory hash database." +msgstr "" + +#: src/labels.h:262 +msgid "Format Errors - Verify your log/date/time format" +msgstr "" + +#: src/labels.h:264 +msgid "No date format was found on your conf file." +msgstr "" + +#: src/labels.h:266 +msgid "No log format was found on your conf file." +msgstr "" + +#: src/labels.h:268 +msgid "No time format was found on your conf file." +msgstr "" + +#: src/labels.h:270 +msgid "No default config file found." +msgstr "" + +#: src/labels.h:272 +msgid "You may specify one with" +msgstr "" + +#: src/labels.h:274 +msgid "producing the following errors" +msgstr "" + +#: src/labels.h:276 +#, c-format +msgid "Parsed %1$d lines" +msgstr "" + +#: src/labels.h:278 +msgid "Please report it by opening an issue on GitHub" +msgstr "" + +#: src/labels.h:280 +msgid "Select a time format." +msgstr "" + +#: src/labels.h:282 +msgid "Select a date format." +msgstr "" + +#: src/labels.h:284 +msgid "Select a log format." +msgstr "" + +#: src/labels.h:286 +#, c-format +msgid "'%1$s' panel is disabled" +msgstr "" + +#: src/labels.h:290 +msgid "For more details visit" +msgstr "" + +#: src/labels.h:292 +msgid "Last Updated" +msgstr "" + +#: src/labels.h:294 +msgid "WebSocket server ready to accept new client connections" +msgstr "" + +#: src/labels.h:297 +msgid "The following options can also be supplied to the command" +msgstr "" + +#: src/labels.h:299 +msgid "Examples can be found by running" +msgstr "" + +#: src/labels.h:302 +msgid "Server Statistics" +msgstr "" + +#: src/labels.h:304 +msgid "Theme" +msgstr "" + +#: src/labels.h:306 +msgid "Dark Gray" +msgstr "" + +#: src/labels.h:308 +msgid "Bright" +msgstr "" + +#: src/labels.h:310 +msgid "Dark Blue" +msgstr "" + +#: src/labels.h:312 +msgid "Dark Purple" +msgstr "" + +#: src/labels.h:314 +msgid "Panels" +msgstr "" + +#: src/labels.h:316 +msgid "Items per Page" +msgstr "" + +#: src/labels.h:318 +msgid "Tables" +msgstr "" + +#: src/labels.h:320 +msgid "Display Tables" +msgstr "" + +#: src/labels.h:322 +msgid "Auto-Hide on Small Devices" +msgstr "" + +#: src/labels.h:324 +msgid "Automatically hide tables on small screen devices" +msgstr "" + +#: src/labels.h:326 +msgid "Layout" +msgstr "" + +#: src/labels.h:328 +msgid "Horizontal" +msgstr "" + +#: src/labels.h:330 +msgid "Vertical" +msgstr "" + +#: src/labels.h:332 +msgid "File Options" +msgstr "" + +#: src/labels.h:334 +msgid "Export as JSON" +msgstr "" + +#: src/labels.h:336 +msgid "Panel Options" +msgstr "" + +#: src/labels.h:338 +msgid "Previous" +msgstr "" + +#: src/labels.h:340 +msgid "Next" +msgstr "" + +#: src/labels.h:342 +msgid "First" +msgstr "" + +#: src/labels.h:344 +msgid "Last" +msgstr "" + +#: src/labels.h:346 +msgid "Chart Options" +msgstr "" + +#: src/labels.h:348 +msgid "Chart" +msgstr "" + +#: src/labels.h:350 +msgid "Type" +msgstr "" + +#: src/labels.h:352 +msgid "Area Spline" +msgstr "" + +#: src/labels.h:354 +msgid "Bar" +msgstr "" + +#: src/labels.h:356 +msgid "Plot Metric" +msgstr "" + +#: src/labels.h:358 +msgid "Table Columns" +msgstr "" + +#: src/labels.h:362 +msgid "1xx Informational" +msgstr "" + +#: src/labels.h:364 +msgid "2xx Success" +msgstr "" + +#: src/labels.h:366 +msgid "3xx Redirection" +msgstr "" + +#: src/labels.h:368 +msgid "4xx Client Errors" +msgstr "" + +#: src/labels.h:370 +msgid "5xx Server Errors" +msgstr "" + +#: src/labels.h:373 +msgid "100 - Continue: Server received the initial part of the request" +msgstr "" + +#: src/labels.h:375 +msgid "101 - Switching Protocols: Client asked to switch protocols" +msgstr "" + +#: src/labels.h:377 +msgid "200 - OK: The request sent by the client was successful" +msgstr "" + +#: src/labels.h:379 +msgid "201 - Created: The request has been fulfilled and created" +msgstr "" + +#: src/labels.h:381 +msgid "202 - Accepted: The request has been accepted for processing" +msgstr "" + +#: src/labels.h:383 +msgid "203 - Non-authoritative Information: Response from a third party" +msgstr "" + +#: src/labels.h:385 +msgid "204 - No Content: Request did not return any content" +msgstr "" + +#: src/labels.h:387 +msgid "205 - Reset Content: Server asked the client to reset the document" +msgstr "" + +#: src/labels.h:389 +msgid "206 - Partial Content: The partial GET has been successful" +msgstr "" + +#: src/labels.h:391 +msgid "207 - Multi-Status: WebDAV; RFC 4918" +msgstr "" + +#: src/labels.h:393 +msgid "208 - Already Reported: WebDAV; RFC 5842" +msgstr "" + +#: src/labels.h:395 +msgid "300 - Multiple Choices: Multiple options for the resource" +msgstr "" + +#: src/labels.h:397 +msgid "301 - Moved Permanently: Resource has permanently moved" +msgstr "" + +#: src/labels.h:399 +msgid "302 - Moved Temporarily (redirect)" +msgstr "" + +#: src/labels.h:401 +msgid "303 - See Other Document: The response is at a different URI" +msgstr "" + +#: src/labels.h:403 +msgid "304 - Not Modified: Resource has not been modified" +msgstr "" + +#: src/labels.h:405 +msgid "305 - Use Proxy: Can only be accessed through the proxy" +msgstr "" + +#: src/labels.h:407 +msgid "307 - Temporary Redirect: Resource temporarily moved" +msgstr "" + +#: src/labels.h:409 +msgid "400 - Bad Request: The syntax of the request is invalid" +msgstr "" + +#: src/labels.h:411 +msgid "401 - Unauthorized: Request needs user authentication" +msgstr "" + +#: src/labels.h:413 +msgid "402 - Payment Required" +msgstr "" + +#: src/labels.h:415 +msgid "403 - Forbidden: Server is refusing to respond to it" +msgstr "" + +#: src/labels.h:417 +msgid "404 - Not Found: Requested resource could not be found" +msgstr "" + +#: src/labels.h:419 +msgid "405 - Method Not Allowed: Request method not supported" +msgstr "" + +#: src/labels.h:421 +msgid "406 - Not Acceptable" +msgstr "" + +#: src/labels.h:423 +msgid "407 - Proxy Authentication Required" +msgstr "" + +#: src/labels.h:425 +msgid "408 - Request Timeout: Server timed out waiting for the request" +msgstr "" + +#: src/labels.h:427 +msgid "409 - Conflict: Conflict in the request" +msgstr "" + +#: src/labels.h:429 +msgid "410 - Gone: Resource requested is no longer available" +msgstr "" + +#: src/labels.h:431 +msgid "411 - Length Required: Invalid Content-Length" +msgstr "" + +#: src/labels.h:433 +msgid "412 - Precondition Failed: Server does not meet preconditions" +msgstr "" + +#: src/labels.h:435 +msgid "413 - Payload Too Large" +msgstr "" + +#: src/labels.h:437 +msgid "414 - Request-URI Too Long" +msgstr "" + +#: src/labels.h:439 +msgid "415 - Unsupported Media Type: Media type is not supported" +msgstr "" + +#: src/labels.h:441 +msgid "416 - Requested Range Not Satisfiable: Cannot supply that portion" +msgstr "" + +#: src/labels.h:443 +msgid "417 - Expectation Failed" +msgstr "" + +#: src/labels.h:445 +msgid "421 - Misdirected Request" +msgstr "" + +#: src/labels.h:447 +msgid "422 - Unprocessable Entity due to semantic errors: WebDAV" +msgstr "" + +#: src/labels.h:449 +msgid "423 - The resource that is being accessed is locked" +msgstr "" + +#: src/labels.h:451 +msgid "424 - Failed Dependency: WebDAV" +msgstr "" + +#: src/labels.h:453 +msgid "426 - Upgrade Required: Client should switch to a different protocol" +msgstr "" + +#: src/labels.h:455 +msgid "428 - Precondition Required" +msgstr "" + +#: src/labels.h:457 +msgid "429 - Too Many Requests: The user has sent too many requests" +msgstr "" + +#: src/labels.h:459 +msgid "431 - Request Header Fields Too Large" +msgstr "" + +#: src/labels.h:461 +msgid "451 - Unavailable For Legal Reasons" +msgstr "" + +#: src/labels.h:463 +msgid "444 - (Nginx) Connection closed without sending any headers" +msgstr "" + +#: src/labels.h:465 +msgid "494 - (Nginx) Request Header Too Large" +msgstr "" + +#: src/labels.h:467 +msgid "495 - (Nginx) SSL client certificate error" +msgstr "" + +#: src/labels.h:469 +msgid "496 - (Nginx) Client didn't provide certificate" +msgstr "" + +#: src/labels.h:471 +msgid "497 - (Nginx) HTTP request sent to HTTPS port" +msgstr "" + +#: src/labels.h:473 +msgid "499 - (Nginx) Connection closed by client while processing request" +msgstr "" + +#: src/labels.h:475 +msgid "500 - Internal Server Error" +msgstr "" + +#: src/labels.h:477 +msgid "501 - Not Implemented" +msgstr "" + +#: src/labels.h:479 +msgid "502 - Bad Gateway: Received an invalid response from the upstream" +msgstr "" + +#: src/labels.h:481 +msgid "503 - Service Unavailable: The server is currently unavailable" +msgstr "" + +#: src/labels.h:483 +msgid "504 - Gateway Timeout: The upstream server failed to send request" +msgstr "" + +#: src/labels.h:485 +msgid "505 - HTTP Version Not Supported" +msgstr "" + +#: src/labels.h:487 +msgid "520 - CloudFlare - Web server is returning an unknown error" +msgstr "" + +#: src/labels.h:489 +msgid "521 - CloudFlare - Web server is down" +msgstr "" + +#: src/labels.h:491 +msgid "522 - CloudFlare - Connection timed out" +msgstr "" + +#: src/labels.h:493 +msgid "523 - CloudFlare - Origin is unreachable" +msgstr "" + +#: src/labels.h:495 +msgid "524 - CloudFlare - A timeout occurred" +msgstr "" diff --git a/src/goaccess++/po/insert-header.sin b/src/goaccess++/po/insert-header.sin new file mode 100644 index 0000000..b26de01 --- /dev/null +++ b/src/goaccess++/po/insert-header.sin @@ -0,0 +1,23 @@ +# Sed script that inserts the file called HEADER before the header entry. +# +# At each occurrence of a line starting with "msgid ", we execute the following +# commands. At the first occurrence, insert the file. At the following +# occurrences, do nothing. The distinction between the first and the following +# occurrences is achieved by looking at the hold space. +/^msgid /{ +x +# Test if the hold space is empty. +s/m/m/ +ta +# Yes it was empty. First occurrence. Read the file. +r HEADER +# Output the file's contents by reading the next line. But don't lose the +# current line while doing this. +g +N +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/src/goaccess++/po/ja.gmo b/src/goaccess++/po/ja.gmo new file mode 100644 index 0000000000000000000000000000000000000000..1c4576c0db6385743f965f5bf970281fde57d604 GIT binary patch literal 21828 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®Y&;pwh%ROpbIwYI`zexLaLu{Dg61 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/po/ja.po b/src/goaccess++/po/ja.po new file mode 100644 index 0000000..9f7dc5a --- /dev/null +++ b/src/goaccess++/po/ja.po @@ -0,0 +1,914 @@ +# This file is distributed under the same license as the goaccess package. +# Kamino Hiroki, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: goaccess 1.2\n" +"Report-Msgid-Bugs-To: hello@goaccess.io\n" +"POT-Creation-Date: 2018-11-22 23:38-0600\n" +"PO-Revision-Date: 2018-10-26 22:00+0900\n" +"Last-Translator: Kamino Hiroki <37243867+4f8p@users.noreply.github.com>\n" +"Language-Team: Japanese\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/labels.h:40 +msgid "en" +msgstr "ja" + +#: src/labels.h:43 +msgid "Exp. Panel" +msgstr "詳細表示" + +#: src/labels.h:44 +msgid "Help" +msgstr "ヘルプ" + +#: src/labels.h:45 +msgid "Quit" +msgstr "終了" + +#: src/labels.h:46 +msgid "Total" +msgstr "合計" + +#: src/labels.h:49 +msgid "[x] ASC [ ] DESC" +msgstr "[x] 昇順 [ ] 降順" + +#: src/labels.h:50 +msgid "[ ] ASC [x] DESC" +msgstr "[ ] 昇順 [x] 降順" + +#: src/labels.h:53 +#, c-format +msgid "[Active Panel: %1$s]" +msgstr "[表示中のパネル: %1$s]" + +#: src/labels.h:54 +msgid "[q]uit GoAccess" +msgstr "[q] GoAccessを閉じる" + +#: src/labels.h:55 +msgid "[?] Help [Enter] Exp. Panel" +msgstr "[?] ヘルプ [Enter] 詳細表示" + +#: src/labels.h:56 +msgid "Dashboard" +msgstr "ダッシュボード" + +#: src/labels.h:57 +msgid "Dashboard - Overall Analyzed Requests" +msgstr "ダッシュボード - 解析済みリクエスト全体" + +#: src/labels.h:58 +msgid "Overall Analyzed Requests" +msgstr "解析済みリクエスト全体" + +#: src/labels.h:60 src/labels.h:81 +msgid "Tx. Amount" +msgstr "データ転送量" + +#: src/labels.h:61 +msgid "Date/Time" +msgstr "日付/時刻" + +#: src/labels.h:62 +msgid "Excl. IP Hits" +msgstr "除外対象数" + +#: src/labels.h:63 +msgid "Failed Requests" +msgstr "無効リクエスト数" + +#: src/labels.h:64 +msgid "Init. Proc. Time" +msgstr "解析にかかった時間" + +#: src/labels.h:65 +msgid "Log Size" +msgstr "ログファイルサイズ" + +#: src/labels.h:66 +msgid "Log Source" +msgstr "ログ取得元" + +#: src/labels.h:67 src/labels.h:174 +msgid "Referrers" +msgstr "リファラー数" + +#: src/labels.h:68 +msgid "Total Requests" +msgstr "合計リクエスト数" + +#: src/labels.h:69 +msgid "Static Files" +msgstr "静的ファイル数" + +#: src/labels.h:70 src/labels.h:146 +msgid "Not Found" +msgstr "404エラー数" + +#: src/labels.h:71 +msgid "Requested Files" +msgstr "要求されたファイル数" + +#: src/labels.h:72 +msgid "Unique Visitors" +msgstr "ユニークユーザー数" + +#: src/labels.h:73 +msgid "Valid Requests" +msgstr "有効リクエスト数" + +#: src/labels.h:76 +msgid "Hits" +msgstr "ヒット数" + +#: src/labels.h:77 +msgid "h%" +msgstr "h%" + +#: src/labels.h:78 src/labels.h:104 +msgid "Visitors" +msgstr "ユーザー数" + +#: src/labels.h:79 +msgid "Vis." +msgstr "ユーザー数" + +#: src/labels.h:80 +msgid "v%" +msgstr "v%" + +#: src/labels.h:82 +msgid "Avg. T.S." +msgstr "平均処理時間" + +#: src/labels.h:83 +msgid "Cum. T.S." +msgstr "合計処理時間" + +#: src/labels.h:84 +msgid "Max. T.S." +msgstr "最大処理時間" + +#: src/labels.h:85 +msgid "Method" +msgstr "要求" + +#: src/labels.h:86 +msgid "Mtd" +msgstr "要求" + +#: src/labels.h:87 +msgid "Protocol" +msgstr "プロトコル" + +#: src/labels.h:88 +msgid "Proto" +msgstr "プロトコル" + +#: src/labels.h:89 +msgid "City" +msgstr "地域" + +#: src/labels.h:90 +msgid "Country" +msgstr "国名" + +#: src/labels.h:91 +msgid "Hostname" +msgstr "ホスト名" + +#: src/labels.h:92 +msgid "Data" +msgstr "データ" + +#: src/labels.h:94 +msgid "Hits/Visitors" +msgstr "ヒット数/ユーザー数" + +#: src/labels.h:98 +msgid "Unique visitors per day" +msgstr "一日あたりのユニークユーザー数" + +#: src/labels.h:100 +msgid "Unique visitors per day - Including spiders" +msgstr "一日あたりのユニークユーザー数(クローラも含める)" + +#: src/labels.h:102 +msgid "Hits having the same IP, date and agent are a unique visit." +msgstr "" +"IPアドレス、日付、ユーザーエージェントが全て同一だった場合、ユニークユーザー" +"として扱われます。" + +#: src/labels.h:107 +msgid "Requested Files (URLs)" +msgstr "リクエストされたファイル(URL)" + +#: src/labels.h:109 +msgid "Top requests sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "リクエスト順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:111 +msgid "Requests" +msgstr "リクエスト数" + +#: src/labels.h:114 src/labels.h:118 +msgid "Static Requests" +msgstr "静的ファイルリクエスト数" + +#: src/labels.h:116 +msgid "Top static requests sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "" +"静的ファイルリクエスト順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:121 +msgid "Time Distribution" +msgstr "時間分布" + +#: src/labels.h:123 +msgid "Data sorted by hour [, avgts, cumts, maxts]" +msgstr "" +"リクエストされた時刻順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:125 +msgid "Time" +msgstr "時刻" + +#: src/labels.h:128 src/labels.h:132 +msgid "Virtual Hosts" +msgstr "バーチャルホスト" + +#: src/labels.h:130 src/labels.h:137 +msgid "Data sorted by hits [, avgts, cumts, maxts]" +msgstr "リクエスト順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:135 +msgid "Remote User (HTTP authentication)" +msgstr "認証されたユーザー(HTTP認証)" + +#: src/labels.h:139 +msgid "Remote User" +msgstr "認証されたユーザー" + +#: src/labels.h:142 +msgid "Not Found URLs (404s)" +msgstr "404エラーが返されたURL" + +#: src/labels.h:144 +msgid "Top not found URLs sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "エラーとなったURL順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:149 +msgid "Visitor Hostnames and IPs" +msgstr "ユーザーのホスト名とIPアドレス" + +#: src/labels.h:151 +msgid "Top visitor hosts sorted by hits [, avgts, cumts, maxts]" +msgstr "ホスト名順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:153 +msgid "Hosts" +msgstr "ホスト名" + +#: src/labels.h:156 +msgid "Operating Systems" +msgstr "オペレーティングシステム" + +#: src/labels.h:158 +msgid "Top Operating Systems sorted by hits [, avgts, cumts, maxts]" +msgstr "OS順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:160 +msgid "OS" +msgstr "OS" + +#: src/labels.h:163 src/labels.h:167 +msgid "Browsers" +msgstr "ブラウザ" + +#: src/labels.h:165 +msgid "Top Browsers sorted by hits [, avgts, cumts, maxts]" +msgstr "ブラウザ順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:170 +msgid "Referrers URLs" +msgstr "参照元(URL)" + +#: src/labels.h:172 +msgid "Top Requested Referrers sorted by hits [, avgts, cumts, maxts]" +msgstr "送信元アドレス順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:177 src/labels.h:181 +msgid "Referring Sites" +msgstr "参照元サイト" + +#: src/labels.h:179 +msgid "Top Referring Sites sorted by hits [, avgts, cumts, maxts]" +msgstr "参照元サイト順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:184 +msgid "Keyphrases from Google's search engine" +msgstr "キーフレーズ(Google検索から)" + +#: src/labels.h:186 +msgid "Top Keyphrases sorted by hits [, avgts, cumts, maxts]" +msgstr "キーフレーズ順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:188 +msgid "Keyphrases" +msgstr "キーフレーズ" + +#: src/labels.h:191 src/labels.h:195 +msgid "Geo Location" +msgstr "位置情報" + +#: src/labels.h:193 +msgid "Continent > Country sorted by unique hits [, avgts, cumts, maxts]" +msgstr "地理区分 > 国別にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:198 +msgid "HTTP Status Codes" +msgstr "HTTPステータスコード" + +#: src/labels.h:200 +msgid "Top HTTP Status Codes sorted by hits [, avgts, cumts, maxts]" +msgstr "" +"HTTPステータスコード順にソート [平均処理時間、合計処理時間、最大処理時間]" + +#: src/labels.h:202 +msgid "Status Codes" +msgstr "ステータスコード" + +#: src/labels.h:206 +msgid "[ ] case sensitive" +msgstr "[ ] 大文字と小文字を区別する" + +#: src/labels.h:208 +msgid "[x] case sensitive" +msgstr "[x] 大文字と小文字を区別する" + +#: src/labels.h:210 +msgid "Regex allowed - ^g to cancel - TAB switch case" +msgstr "正規表現を許可する - [^g] キャンセル - [TAB] 切り替え" + +#: src/labels.h:212 +msgid "Find pattern in all views" +msgstr "すべてのビューでパターン検索を行う" + +#: src/labels.h:216 +msgid "Log Format Configuration" +msgstr "ログ形式設定" + +#: src/labels.h:218 +msgid "[SPACE] to toggle - [ENTER] to proceed - [q] to quit" +msgstr "[SPACE] 切り替え - [ENTER] 決定 - [q] 終了" + +#: src/labels.h:220 +msgid "Log Format - [c] to add/edit format" +msgstr "ログ形式 - [c] 追加/編集" + +#: src/labels.h:222 +msgid "Date Format - [d] to add/edit format" +msgstr "日付形式 - [d] 追加/編集" + +#: src/labels.h:224 +msgid "Time Format - [t] to add/edit format" +msgstr "時刻形式 - [t] 追加/編集" + +#: src/labels.h:226 src/labels.h:230 +msgid "[UP/DOWN] to scroll - [q] to close window" +msgstr "[↑/↓] スクロール - [q] ウィンドウを閉じる" + +#: src/labels.h:232 +#, c-format +msgid "User Agents for %1$s" +msgstr "%1$s のユーザーエージェント" + +#: src/labels.h:236 +msgid "Scheme Configuration" +msgstr "スキーム設定" + +#: src/labels.h:238 +msgid "[ENTER] to use scheme - [q]uit" +msgstr "[ENTER] スキーム選択 - [q] 終了" + +#: src/labels.h:242 +msgid "Sort active module by" +msgstr "選択したカラムで並び替え" + +#: src/labels.h:244 +msgid "[ENTER] select - [TAB] sort - [q]uit" +msgstr "[ENTER] 選択 - [TAB] ソート - [q] 終了" + +#: src/labels.h:248 +msgid "GoAccess Quick Help" +msgstr "GoAccessクイックヘルプ" + +#: src/labels.h:250 +msgid "[UP/DOWN] to scroll - [q] to quit" +msgstr "[↑/↓] スクロール - [q] 終了" + +#: src/labels.h:254 +msgid "Built using Tokyo Cabinet on-disk B+ Tree." +msgstr "Tokyo CabinetのB+木データベースを使用する。" + +#: src/labels.h:256 +msgid "Built using Tokyo Cabinet in-memory hash database." +msgstr "Tokyo Cabinetのインメモリハッシュデータベースを使用する。" + +#: src/labels.h:258 +msgid "Built using the default in-memory hash database." +msgstr "デフォルトのインメモリハッシュデータベースを使用する。" + +#: src/labels.h:262 +msgid "Format Errors - Verify your log/date/time format" +msgstr "" +"解析に失敗しました - ログ/日付/時刻のフォーマット設定を確認してください" + +#: src/labels.h:264 +msgid "No date format was found on your conf file." +msgstr "設定ファイル内で日付形式がセットされていません。" + +#: src/labels.h:266 +msgid "No log format was found on your conf file." +msgstr "設定ファイル内でログ形式がセットされていません。" + +#: src/labels.h:268 +msgid "No time format was found on your conf file." +msgstr "設定ファイル内で時刻形式がセットされていません。" + +#: src/labels.h:270 +msgid "No default config file found." +msgstr "デフォルトの設定ファイルが見つかりません。" + +#: src/labels.h:272 +msgid "You may specify one with" +msgstr "いずれか指定してください" + +#: src/labels.h:274 +msgid "producing the following errors" +msgstr "エラーが発生しました" + +#: src/labels.h:276 +#, c-format +msgid "Parsed %1$d lines" +msgstr "解析済み: %1$d 行" + +#: src/labels.h:278 +msgid "Please report it by opening an issue on GitHub" +msgstr "GitHub上のIssueから問題を報告してください" + +#: src/labels.h:280 +msgid "Select a time format." +msgstr "時刻形式を選択します。" + +#: src/labels.h:282 +msgid "Select a date format." +msgstr "日付形式を選択します。" + +#: src/labels.h:284 +msgid "Select a log format." +msgstr "ログ形式を選択します。" + +#: src/labels.h:286 +#, c-format +msgid "'%1$s' panel is disabled" +msgstr "'%1$s' パネルは無効化されています" + +#: src/labels.h:290 +msgid "For more details visit" +msgstr "詳細はこちら" + +#: src/labels.h:292 +msgid "Last Updated" +msgstr "最終更新日時" + +#: src/labels.h:294 +msgid "WebSocket server ready to accept new client connections" +msgstr "WebSocket接続の準備ができました" + +#: src/labels.h:297 +msgid "The following options can also be supplied to the command" +msgstr "次のオプションはコマンドで指定することもできます" + +#: src/labels.h:299 +msgid "Examples can be found by running" +msgstr "実行例" + +#: src/labels.h:302 +msgid "Server Statistics" +msgstr "サーバーの統計情報" + +#: src/labels.h:304 +msgid "Theme" +msgstr "テーマ" + +#: src/labels.h:306 +msgid "Dark Gray" +msgstr "ダークグレー" + +#: src/labels.h:308 +msgid "Bright" +msgstr "ライト" + +#: src/labels.h:310 +msgid "Dark Blue" +msgstr "ダークブルー" + +#: src/labels.h:312 +#, fuzzy +msgid "Dark Purple" +msgstr "ダークブルー" + +#: src/labels.h:314 +msgid "Panels" +msgstr "パネル" + +#: src/labels.h:316 +msgid "Items per Page" +msgstr "ページあたりの表示数" + +#: src/labels.h:318 +msgid "Tables" +msgstr "テーブル" + +#: src/labels.h:320 +msgid "Display Tables" +msgstr "テーブル表示" + +#: src/labels.h:322 +msgid "Auto-Hide on Small Devices" +msgstr "自動非表示設定(小型端末用)" + +#: src/labels.h:324 +msgid "Automatically hide tables on small screen devices" +msgstr "画面が小さい場合に自動でテーブルを非表示にする" + +#: src/labels.h:326 +msgid "Layout" +msgstr "レイアウト" + +#: src/labels.h:328 +msgid "Horizontal" +msgstr "水平" + +#: src/labels.h:330 +msgid "Vertical" +msgstr "垂直" + +#: src/labels.h:332 +msgid "File Options" +msgstr "ファイルオプション" + +#: src/labels.h:334 +msgid "Export as JSON" +msgstr "JSON形式でエクスポート" + +#: src/labels.h:336 +msgid "Panel Options" +msgstr "パネルオプション" + +#: src/labels.h:338 +msgid "Previous" +msgstr "前へ" + +#: src/labels.h:340 +msgid "Next" +msgstr "次へ" + +#: src/labels.h:342 +msgid "First" +msgstr "" + +#: src/labels.h:344 +msgid "Last" +msgstr "" + +#: src/labels.h:346 +msgid "Chart Options" +msgstr "グラフ設定" + +#: src/labels.h:348 +msgid "Chart" +msgstr "グラフ" + +#: src/labels.h:350 +msgid "Type" +msgstr "タイプ" + +#: src/labels.h:352 +msgid "Area Spline" +msgstr "平滑面グラフ" + +#: src/labels.h:354 +msgid "Bar" +msgstr "棒グラフ" + +#: src/labels.h:356 +msgid "Plot Metric" +msgstr "表示するデータ" + +#: src/labels.h:358 +msgid "Table Columns" +msgstr "テーブルカラム" + +#: src/labels.h:362 +msgid "1xx Informational" +msgstr "1xx 情報" + +#: src/labels.h:364 +msgid "2xx Success" +msgstr "2xx 成功" + +#: src/labels.h:366 +msgid "3xx Redirection" +msgstr "3xx リダイレクション" + +#: src/labels.h:368 +msgid "4xx Client Errors" +msgstr "4xx クライアントエラー" + +#: src/labels.h:370 +msgid "5xx Server Errors" +msgstr "5xx サーバーエラー" + +#: src/labels.h:373 +msgid "100 - Continue: Server received the initial part of the request" +msgstr "100 - 継続: リクエストヘッダーを受理しました" + +#: src/labels.h:375 +msgid "101 - Switching Protocols: Client asked to switch protocols" +msgstr "" +"101 - プロトコル変更: HTTPヘッダーでリクエストされたプロトコルに切り替えます" + +#: src/labels.h:377 +msgid "200 - OK: The request sent by the client was successful" +msgstr "200 - 成功: リクエストに成功しました" + +#: src/labels.h:379 +msgid "201 - Created: The request has been fulfilled and created" +msgstr "201 - 作成: リクエストが成功して新たなリソースの作成が完了しました" + +#: src/labels.h:381 +msgid "202 - Accepted: The request has been accepted for processing" +msgstr "202 - 受理: リクエストを受け取ったが処理されていません" + +#: src/labels.h:383 +msgid "203 - Non-authoritative Information: Response from a third party" +msgstr "" +"203 - 認証されていない情報: リクエストを正常に処理しましたが、返される情報は" +"別の送信元から来る可能性があります" + +#: src/labels.h:385 +msgid "204 - No Content: Request did not return any content" +msgstr "" +"204 - コンテンツ無し: リクエストを正常に処理しましたが、返すべき情報がありま" +"せん" + +#: src/labels.h:387 +msgid "205 - Reset Content: Server asked the client to reset the document" +msgstr "" +"205 - リセット要求: リクエストを行ったクライアントに対してドキュメントビュー" +"のリセットを行うよう指示します" + +#: src/labels.h:389 +msgid "206 - Partial Content: The partial GET has been successful" +msgstr "" +"206 - 部分的なリクエスト: GETリクエストを正常に処理しました(リソースが分割さ" +"れている可能性があります)" + +#: src/labels.h:391 +msgid "207 - Multi-Status: WebDAV; RFC 4918" +msgstr "207 - 複数ステータス: (WebDAV拡張) RFC 4918" + +#: src/labels.h:393 +msgid "208 - Already Reported: WebDAV; RFC 5842" +msgstr "208 - 報告済み: (WebDAV拡張) RFC 5842" + +#: src/labels.h:395 +msgid "300 - Multiple Choices: Multiple options for the resource" +msgstr "" +"300 - 選択が必要: 複数のリダイレクト先があり、クライアント側が選択する必要が" +"あります" + +#: src/labels.h:397 +msgid "301 - Moved Permanently: Resource has permanently moved" +msgstr "301 - 恒久的な移動: リクエストされたリソースは完全に移動されました" + +#: src/labels.h:399 +msgid "302 - Moved Temporarily (redirect)" +msgstr "302 - 一時的な移動: リクエストされたリソースは一時的に移動されました" + +#: src/labels.h:401 +msgid "303 - See Other Document: The response is at a different URI" +msgstr "" +"303 - 別コンテンツ: リクエストされたリソースは別のURLで提供されています" + +#: src/labels.h:403 +msgid "304 - Not Modified: Resource has not been modified" +msgstr "304 - 更新無し: リクエストされたリソースは更新されていません" + +#: src/labels.h:405 +msgid "305 - Use Proxy: Can only be accessed through the proxy" +msgstr "" +"305 - プロキシ使用: リクエストされたリソースはプロキシを使用して取得できます" + +#: src/labels.h:407 +msgid "307 - Temporary Redirect: Resource temporarily moved" +msgstr "307 - 一時的な移動: リクエストされたリソースは一時的に移動されました" + +#: src/labels.h:409 +msgid "400 - Bad Request: The syntax of the request is invalid" +msgstr "400 - 不正なリクエスト: リクエストを処理できません" + +#: src/labels.h:411 +msgid "401 - Unauthorized: Request needs user authentication" +msgstr "401 - 認証が必要: このリクエストを処理するには認証が必要です" + +#: src/labels.h:413 +msgid "402 - Payment Required" +msgstr "402 - このリクエストを処理するには料金を支払う必要があります" + +#: src/labels.h:415 +msgid "403 - Forbidden: Server is refusing to respond to it" +msgstr "403 - アクセス禁止: このリクエストへのアクセスは禁止されています" + +#: src/labels.h:417 +msgid "404 - Not Found: Requested resource could not be found" +msgstr "404 - リソース不明: リクエストされたリソースは存在しません" + +#: src/labels.h:419 +msgid "405 - Method Not Allowed: Request method not supported" +msgstr "" +"405 - 許可されていない: リクエストされたメソッドでのアクセスは禁止されていま" +"す" + +#: src/labels.h:421 +msgid "406 - Not Acceptable" +msgstr "406 - リクエストを受理できません" + +#: src/labels.h:423 +msgid "407 - Proxy Authentication Required" +msgstr "407 - プロキシ認証が必要です" + +#: src/labels.h:425 +msgid "408 - Request Timeout: Server timed out waiting for the request" +msgstr "408 - タイムアウト: リクエストがタイムアウトしました" + +#: src/labels.h:427 +msgid "409 - Conflict: Conflict in the request" +msgstr "409 - 衝突: リクエストが衝突しました" + +#: src/labels.h:429 +msgid "410 - Gone: Resource requested is no longer available" +msgstr "410 - 消滅: リクエストされたリソースは完全に削除されました" + +#: src/labels.h:431 +msgid "411 - Length Required: Invalid Content-Length" +msgstr "411 - Content-Lengthヘッダーが必要です" + +#: src/labels.h:433 +msgid "412 - Precondition Failed: Server does not meet preconditions" +msgstr "" +"412 - 前提条件が満たされていない: このリクエストはサーバー側の前提条件を満た" +"していません" + +#: src/labels.h:435 +msgid "413 - Payload Too Large" +msgstr "413 - ペイロードが長すぎます" + +#: src/labels.h:437 +msgid "414 - Request-URI Too Long" +msgstr "414 - URLが長すぎます" + +#: src/labels.h:439 +msgid "415 - Unsupported Media Type: Media type is not supported" +msgstr "415 - サポートされていないメディアタイプ" + +#: src/labels.h:441 +msgid "416 - Requested Range Not Satisfiable: Cannot supply that portion" +msgstr "" +"416 - リクエストされたContent-Lengthヘッダーの範囲がリソースより超過していま" +"す" + +#: src/labels.h:443 +msgid "417 - Expectation Failed" +msgstr "417 - 拡張ステータスコードが使えません" + +#: src/labels.h:445 +msgid "421 - Misdirected Request" +msgstr "421 - 不明なリクエスト" + +#: src/labels.h:447 +msgid "422 - Unprocessable Entity due to semantic errors: WebDAV" +msgstr "422 - リクエストを受理したが、処理を継続できません" + +#: src/labels.h:449 +msgid "423 - The resource that is being accessed is locked" +msgstr "423 - このリソースはロックされています" + +#: src/labels.h:451 +msgid "424 - Failed Dependency: WebDAV" +msgstr "424 - 依存する他の処理が失敗したため処理できません" + +#: src/labels.h:453 +msgid "426 - Upgrade Required: Client should switch to a different protocol" +msgstr "" +"426 - アップグレードが必要: プロトコルが古すぎてリクエストを処理できません" + +#: src/labels.h:455 +msgid "428 - Precondition Required" +msgstr "428 - リクエストを条件付きにする必要があります" + +#: src/labels.h:457 +msgid "429 - Too Many Requests: The user has sent too many requests" +msgstr "429 - 過重リクエスト: 制限されたリクエスト数を超えたので処理できません" + +#: src/labels.h:459 +msgid "431 - Request Header Fields Too Large" +msgstr "431 - HTTPヘッダーが長すぎます" + +#: src/labels.h:461 +msgid "451 - Unavailable For Legal Reasons" +msgstr "451 - 法律上の理由でリクエストを処理できません" + +#: src/labels.h:463 +msgid "444 - (Nginx) Connection closed without sending any headers" +msgstr "444 - (nginx) ヘッダーを返さずコネクションを切断しました" + +#: src/labels.h:465 +msgid "494 - (Nginx) Request Header Too Large" +msgstr "494 - (nginx) HTTPヘッダーが長すぎます" + +#: src/labels.h:467 +msgid "495 - (Nginx) SSL client certificate error" +msgstr "495 - (nginx) SSLクライアント証明書エラー" + +#: src/labels.h:469 +msgid "496 - (Nginx) Client didn't provide certificate" +msgstr "496 - (nginx) クライアントが証明書を提供しませんでした" + +#: src/labels.h:471 +msgid "497 - (Nginx) HTTP request sent to HTTPS port" +msgstr "497 - (nginx) HTTPリクエストをHTTPSポートに送信しました" + +#: src/labels.h:473 +msgid "499 - (Nginx) Connection closed by client while processing request" +msgstr "" +"499 - (nginx) リクエストを処理中にクライアントによって接続を閉じられました" + +#: src/labels.h:475 +msgid "500 - Internal Server Error" +msgstr "500 - 内部サーバーエラー" + +#: src/labels.h:477 +msgid "501 - Not Implemented" +msgstr "501 - サーバーでメソッドが実装されていません" + +#: src/labels.h:479 +msgid "502 - Bad Gateway: Received an invalid response from the upstream" +msgstr "" +"502 - 不正なゲートウェイ: 上流にあるゲートウェイまたはプロキシサーバーから不" +"正なリクエストを受け取りました" + +#: src/labels.h:481 +msgid "503 - Service Unavailable: The server is currently unavailable" +msgstr "503 - サービス利用不可: サーバーがダウンしました" + +#: src/labels.h:483 +msgid "504 - Gateway Timeout: The upstream server failed to send request" +msgstr "" +"504 - ゲートウェイタイムアウト: 上流にあるゲートウェイまたはプロキシサーバー" +"がタイムアウトを起こしました" + +#: src/labels.h:485 +msgid "505 - HTTP Version Not Supported" +msgstr "" +"505 - リクエストで使用されているHTTPバージョンがサーバーでサポートされていま" +"せん" + +#: src/labels.h:487 +msgid "520 - CloudFlare - Web server is returning an unknown error" +msgstr "520 - CloudFlare - Originサーバーからエラーが返されました" + +#: src/labels.h:489 +msgid "521 - CloudFlare - Web server is down" +msgstr "521 - CloudFlare - Originサーバーがダウンしています" + +#: src/labels.h:491 +msgid "522 - CloudFlare - Connection timed out" +msgstr "522 - CloudFlare - Originサーバーへの接続がタイムアウトしました" + +#: src/labels.h:493 +msgid "523 - CloudFlare - Origin is unreachable" +msgstr "523 - CloudFlare - Originサーバーにアクセスできません(到達不能)" + +#: src/labels.h:495 +msgid "524 - CloudFlare - A timeout occurred" +msgstr "524 - CloudFlare - Originサーバーにアクセスできません(タイムアウト)" diff --git a/src/goaccess++/po/quot.sed b/src/goaccess++/po/quot.sed new file mode 100644 index 0000000..0122c46 --- /dev/null +++ b/src/goaccess++/po/quot.sed @@ -0,0 +1,6 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g diff --git a/src/goaccess++/po/remove-potcdate.sin b/src/goaccess++/po/remove-potcdate.sin new file mode 100644 index 0000000..2436c49 --- /dev/null +++ b/src/goaccess++/po/remove-potcdate.sin @@ -0,0 +1,19 @@ +# Sed script that remove the POT-Creation-Date line in the header entry +# from a POT file. +# +# The distinction between the first and the following occurrences of the +# pattern is achieved by looking at the hold space. +/^"POT-Creation-Date: .*"$/{ +x +# Test if the hold space is empty. +s/P/P/ +ta +# Yes it was empty. First occurrence. Remove the line. +g +d +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/src/goaccess++/po/stamp-po b/src/goaccess++/po/stamp-po new file mode 100644 index 0000000..9788f70 --- /dev/null +++ b/src/goaccess++/po/stamp-po @@ -0,0 +1 @@ +timestamp diff --git a/src/goaccess++/po/zh_CN.gmo b/src/goaccess++/po/zh_CN.gmo new file mode 100644 index 0000000000000000000000000000000000000000..bb4db2efc900249a7221e3952d20341686f0b24e GIT binary patch literal 17925 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/po/zh_CN.po b/src/goaccess++/po/zh_CN.po new file mode 100644 index 0000000..5f73e35 --- /dev/null +++ b/src/goaccess++/po/zh_CN.po @@ -0,0 +1,899 @@ +# This file is distributed under the same license as the goaccess package. +# Ai, 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: goaccess 1.2\n" +"Report-Msgid-Bugs-To: hello@goaccess.io\n" +"POT-Creation-Date: 2018-11-22 23:38-0600\n" +"PO-Revision-Date: 2017-04-03 09:43+0200\n" +"Last-Translator: Ai<hello@goaccess.io>\n" +"Language-Team: Ai\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.7\n" + +#: src/labels.h:40 +msgid "en" +msgstr "zh-CN" + +#: src/labels.h:43 +msgid "Exp. Panel" +msgstr "展开面板" + +#: src/labels.h:44 +msgid "Help" +msgstr "帮助" + +#: src/labels.h:45 +msgid "Quit" +msgstr "退出" + +#: src/labels.h:46 +msgid "Total" +msgstr "总共" + +#: src/labels.h:49 +msgid "[x] ASC [ ] DESC" +msgstr "[x] 递增 [ ] 递减" + +#: src/labels.h:50 +msgid "[ ] ASC [x] DESC" +msgstr "[ ] 递增 [x] 递减" + +#: src/labels.h:53 +#, c-format +msgid "[Active Panel: %1$s]" +msgstr "[当前面板: %1$s]" + +#: src/labels.h:54 +msgid "[q]uit GoAccess" +msgstr "[q]退出GoAccess" + +#: src/labels.h:55 +msgid "[?] Help [Enter] Exp. Panel" +msgstr "[?]帮助 [回车]展开面板" + +#: src/labels.h:56 +msgid "Dashboard" +msgstr "概览" + +#: src/labels.h:57 +msgid "Dashboard - Overall Analyzed Requests" +msgstr "概览-所有已分析的请求" + +#: src/labels.h:58 +msgid "Overall Analyzed Requests" +msgstr "所有已分析的请求" + +#: src/labels.h:60 src/labels.h:81 +msgid "Tx. Amount" +msgstr "" + +#: src/labels.h:61 +msgid "Date/Time" +msgstr "时期/时间" + +#: src/labels.h:62 +msgid "Excl. IP Hits" +msgstr "过滤来自此IP的请求" + +#: src/labels.h:63 +msgid "Failed Requests" +msgstr "失败的请求" + +#: src/labels.h:64 +msgid "Init. Proc. Time" +msgstr "第一次处理耗时" + +#: src/labels.h:65 +msgid "Log Size" +msgstr "日志大小" + +#: src/labels.h:66 +msgid "Log Source" +msgstr "日志文件夹地址" + +#: src/labels.h:67 src/labels.h:174 +msgid "Referrers" +msgstr "来源地址" + +#: src/labels.h:68 +msgid "Total Requests" +msgstr "所有请求" + +#: src/labels.h:69 +msgid "Static Files" +msgstr "静态文件" + +#: src/labels.h:70 src/labels.h:146 +msgid "Not Found" +msgstr "未找到(404)" + +#: src/labels.h:71 +msgid "Requested Files" +msgstr "请求的文件" + +#: src/labels.h:72 +msgid "Unique Visitors" +msgstr "独立访客" + +#: src/labels.h:73 +msgid "Valid Requests" +msgstr "有效的请求" + +#: src/labels.h:76 +msgid "Hits" +msgstr "点击量" + +#: src/labels.h:77 +msgid "h%" +msgstr "" + +#: src/labels.h:78 src/labels.h:104 +msgid "Visitors" +msgstr "访客" + +#: src/labels.h:79 +msgid "Vis." +msgstr "访客" + +#: src/labels.h:80 +msgid "v%" +msgstr "" + +#: src/labels.h:82 +msgid "Avg. T.S." +msgstr "平均响应时" + +#: src/labels.h:83 +msgid "Cum. T.S." +msgstr "总共响应时" + +#: src/labels.h:84 +msgid "Max. T.S." +msgstr "最高响应时" + +#: src/labels.h:85 +msgid "Method" +msgstr "请求方法" + +#: src/labels.h:86 +msgid "Mtd" +msgstr "请求方法" + +#: src/labels.h:87 +msgid "Protocol" +msgstr "协议" + +#: src/labels.h:88 +msgid "Proto" +msgstr "协议" + +#: src/labels.h:89 +msgid "City" +msgstr "城市" + +#: src/labels.h:90 +msgid "Country" +msgstr "国家" + +#: src/labels.h:91 +msgid "Hostname" +msgstr "主机名" + +#: src/labels.h:92 +msgid "Data" +msgstr "数据" + +#: src/labels.h:94 +msgid "Hits/Visitors" +msgstr "点击量/访客" + +#: src/labels.h:98 +msgid "Unique visitors per day" +msgstr "每日独立访客" + +#: src/labels.h:100 +msgid "Unique visitors per day - Including spiders" +msgstr "每日独立访客 - 包括网络机器人" + +#: src/labels.h:102 +msgid "Hits having the same IP, date and agent are a unique visit." +msgstr "来自同一IP、时间和Http用户代理的多次点击被视作一次访问" + +#: src/labels.h:107 +msgid "Requested Files (URLs)" +msgstr "请求的文件" + +#: src/labels.h:109 +msgid "Top requests sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "" +"请求排序按 [点击量, 平均响应时, 总共响应时, 最高响应时, 请求方法, 协议]" + +#: src/labels.h:111 +msgid "Requests" +msgstr "请求" + +#: src/labels.h:114 src/labels.h:118 +msgid "Static Requests" +msgstr "静态请求" + +#: src/labels.h:116 +msgid "Top static requests sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "" +"静态请求排序按 [点击量, 平均响应时, 总共响应时, 最高响应时, 请求方法, 协议]" + +#: src/labels.h:121 +msgid "Time Distribution" +msgstr "时间分配" + +#: src/labels.h:123 +msgid "Data sorted by hour [, avgts, cumts, maxts]" +msgstr "数据列排序按 [小时, 平均响应时, 总共响应时, 最高响应时]" + +#: src/labels.h:125 +msgid "Time" +msgstr "时间" + +#: src/labels.h:128 src/labels.h:132 +msgid "Virtual Hosts" +msgstr "虚拟主机" + +#: src/labels.h:130 src/labels.h:137 +msgid "Data sorted by hits [, avgts, cumts, maxts]" +msgstr "数据列排序按 [点击量, 平均响应时, 总共响应时, 最高响应时]" + +#: src/labels.h:135 +msgid "Remote User (HTTP authentication)" +msgstr "已认证用户(HTTP authentication)" + +#: src/labels.h:139 +msgid "Remote User" +msgstr "已认证用户" + +#: src/labels.h:142 +msgid "Not Found URLs (404s)" +msgstr "未找到的URLs" + +#: src/labels.h:144 +msgid "Top not found URLs sorted by hits [, avgts, cumts, maxts, mthd, proto]" +msgstr "" +"未找到的URLs排序按 [点击量, 平均响应时, 总共响应时, 最高响应时, 请求方法, 协" +"议]" + +#: src/labels.h:149 +msgid "Visitor Hostnames and IPs" +msgstr "访客主机名和IP地址" + +#: src/labels.h:151 +msgid "Top visitor hosts sorted by hits [, avgts, cumts, maxts]" +msgstr "访客主机排序按 [点击量, 平均响应时, 总共响应时, 最高响应时]" + +#: src/labels.h:153 +msgid "Hosts" +msgstr "主机" + +#: src/labels.h:156 +msgid "Operating Systems" +msgstr "操作系统" + +#: src/labels.h:158 +msgid "Top Operating Systems sorted by hits [, avgts, cumts, maxts]" +msgstr "操作系统排序按 [点击量, 平均响应时, 总共响应时, 最高响应时]" + +#: src/labels.h:160 +msgid "OS" +msgstr "操作系统" + +#: src/labels.h:163 src/labels.h:167 +msgid "Browsers" +msgstr "浏览器" + +#: src/labels.h:165 +msgid "Top Browsers sorted by hits [, avgts, cumts, maxts]" +msgstr "浏览器排序按 [点击量, 平均响应时, 总共响应时, 最高响应时]" + +#: src/labels.h:170 +msgid "Referrers URLs" +msgstr "来源地址URLs" + +#: src/labels.h:172 +msgid "Top Requested Referrers sorted by hits [, avgts, cumts, maxts]" +msgstr "来源地址排序按 [点击量, 平均响应时, 总共响应时, 最高响应时]" + +#: src/labels.h:177 src/labels.h:181 +msgid "Referring Sites" +msgstr "推荐网站" + +#: src/labels.h:179 +msgid "Top Referring Sites sorted by hits [, avgts, cumts, maxts]" +msgstr "推荐网站排序按 [点击量, 平均响应时, 总共响应时, 最高响应时]" + +#: src/labels.h:184 +msgid "Keyphrases from Google's search engine" +msgstr "谷歌搜索关键字" + +#: src/labels.h:186 +msgid "Top Keyphrases sorted by hits [, avgts, cumts, maxts]" +msgstr "关键字排序按 [点击量, 平均响应时, 总共响应时, 最高响应时]" + +#: src/labels.h:188 +msgid "Keyphrases" +msgstr "关键字" + +#: src/labels.h:191 src/labels.h:195 +msgid "Geo Location" +msgstr "地理位置" + +#: src/labels.h:193 +msgid "Continent > Country sorted by unique hits [, avgts, cumts, maxts]" +msgstr "大陆 > 国家排序按 [点击量, 平均响应时, 总共响应时, 最高响应时]" + +#: src/labels.h:198 +msgid "HTTP Status Codes" +msgstr "HTTP状态码" + +#: src/labels.h:200 +msgid "Top HTTP Status Codes sorted by hits [, avgts, cumts, maxts]" +msgstr "HTTP状态码排序按 [点击量, 平均响应时, 总共响应时, 最高响应时]" + +#: src/labels.h:202 +msgid "Status Codes" +msgstr "状态码" + +#: src/labels.h:206 +msgid "[ ] case sensitive" +msgstr "[ ] 区分大小写" + +#: src/labels.h:208 +msgid "[x] case sensitive" +msgstr "[x] 区分大小写" + +#: src/labels.h:210 +msgid "Regex allowed - ^g to cancel - TAB switch case" +msgstr "允许正则表达式 - ^g退出 - TAB改变大小写" + +#: src/labels.h:212 +msgid "Find pattern in all views" +msgstr "在所有界面中查找匹配模式" + +#: src/labels.h:216 +msgid "Log Format Configuration" +msgstr "日志格式设置" + +#: src/labels.h:218 +msgid "[SPACE] to toggle - [ENTER] to proceed - [q] to quit" +msgstr "[空格]切换 - [回车]继续 - [q]退出" + +#: src/labels.h:220 +msgid "Log Format - [c] to add/edit format" +msgstr "日志格式 - [c]新建/修改格式" + +#: src/labels.h:222 +msgid "Date Format - [d] to add/edit format" +msgstr "日期格式 - [d]新建/修改格式" + +#: src/labels.h:224 +msgid "Time Format - [t] to add/edit format" +msgstr "时间格式 - [t]新建/修改格式" + +#: src/labels.h:226 src/labels.h:230 +msgid "[UP/DOWN] to scroll - [q] to close window" +msgstr "[UP/DOWN]上下滚动 - [q]退出" + +#: src/labels.h:232 +#, c-format +msgid "User Agents for %1$s" +msgstr "用户代理 %1$s" + +#: src/labels.h:236 +msgid "Scheme Configuration" +msgstr "颜色方案设置" + +#: src/labels.h:238 +msgid "[ENTER] to use scheme - [q]uit" +msgstr "[回车]选取方案 - [q]退出" + +#: src/labels.h:242 +msgid "Sort active module by" +msgstr "当前选择栏目排序" + +#: src/labels.h:244 +msgid "[ENTER] select - [TAB] sort - [q]uit" +msgstr "[回车]选择 - [TAB]排序 - [q]退出" + +#: src/labels.h:248 +msgid "GoAccess Quick Help" +msgstr "GoAccess快速帮助" + +#: src/labels.h:250 +msgid "[UP/DOWN] to scroll - [q] to quit" +msgstr "[UP/DOWN]上下滚动 - [q]退出" + +#: src/labels.h:254 +msgid "Built using Tokyo Cabinet on-disk B+ Tree." +msgstr "使用Tokyo Cabinet在磁盘中的B+树来构建" + +#: src/labels.h:256 +msgid "Built using Tokyo Cabinet in-memory hash database." +msgstr "使用Tokyo Cabinet的内存中的哈希表来构建" + +#: src/labels.h:258 +msgid "Built using the default in-memory hash database." +msgstr "使用默认的在内存中的哈希表来构建" + +#: src/labels.h:262 +msgid "Format Errors - Verify your log/date/time format" +msgstr "格式错误 - 请检查你的日志/日期/时间格式" + +#: src/labels.h:264 +msgid "No date format was found on your conf file." +msgstr "未在配置文件中设置日期格式" + +#: src/labels.h:266 +msgid "No log format was found on your conf file." +msgstr "未在配置文件中设置日志格式" + +#: src/labels.h:268 +msgid "No time format was found on your conf file." +msgstr "未在配置文件中设置时间格式" + +#: src/labels.h:270 +msgid "No default config file found." +msgstr "未找到默认的配置文件" + +#: src/labels.h:272 +msgid "You may specify one with" +msgstr "你可以指定配置文件" + +#: src/labels.h:274 +msgid "producing the following errors" +msgstr "出现以下错误" + +#: src/labels.h:276 +#, c-format +msgid "Parsed %1$d lines" +msgstr "已解析 %1$d 行" + +#: src/labels.h:278 +msgid "Please report it by opening an issue on GitHub" +msgstr "请在GitHub中添加一个issue来给我们反馈信息" + +#: src/labels.h:280 +msgid "Select a time format." +msgstr "选择时间格式" + +#: src/labels.h:282 +msgid "Select a date format." +msgstr "选择日期格式" + +#: src/labels.h:284 +msgid "Select a log format." +msgstr "选择日志格式" + +#: src/labels.h:286 +#, c-format +msgid "'%1$s' panel is disabled" +msgstr "'%1$s' 面板已禁用" + +#: src/labels.h:290 +msgid "For more details visit" +msgstr "更多信息请访问" + +#: src/labels.h:292 +msgid "Last Updated" +msgstr "最近更新" + +#: src/labels.h:294 +msgid "WebSocket server ready to accept new client connections" +msgstr "WebSocket服务器已准备接收来自客户的连接" + +#: src/labels.h:297 +msgid "The following options can also be supplied to the command" +msgstr "你也可以在command中选择以下选项" + +#: src/labels.h:299 +msgid "Examples can be found by running" +msgstr "运行一下指令查看更多示例" + +#: src/labels.h:302 +msgid "Server Statistics" +msgstr "服务器统计信息" + +#: src/labels.h:304 +msgid "Theme" +msgstr "主题" + +#: src/labels.h:306 +msgid "Dark Gray" +msgstr "深黑" + +#: src/labels.h:308 +msgid "Bright" +msgstr "明亮" + +#: src/labels.h:310 +msgid "Dark Blue" +msgstr "深蓝" + +#: src/labels.h:312 +#, fuzzy +msgid "Dark Purple" +msgstr "深蓝" + +#: src/labels.h:314 +msgid "Panels" +msgstr "面板" + +#: src/labels.h:316 +msgid "Items per Page" +msgstr "每页项目" + +#: src/labels.h:318 +msgid "Tables" +msgstr "表格" + +#: src/labels.h:320 +msgid "Display Tables" +msgstr "显示表格" + +#: src/labels.h:322 +msgid "Auto-Hide on Small Devices" +msgstr "屏幕过小时自动隐藏" + +#: src/labels.h:324 +msgid "Automatically hide tables on small screen devices" +msgstr "屏幕过小时自动隐藏表格" + +#: src/labels.h:326 +msgid "Layout" +msgstr "布局" + +#: src/labels.h:328 +msgid "Horizontal" +msgstr "横向" + +#: src/labels.h:330 +msgid "Vertical" +msgstr "纵向" + +#: src/labels.h:332 +msgid "File Options" +msgstr "文件选项" + +#: src/labels.h:334 +msgid "Export as JSON" +msgstr "导出为JSON文件" + +#: src/labels.h:336 +msgid "Panel Options" +msgstr "面板选项" + +#: src/labels.h:338 +msgid "Previous" +msgstr "后退" + +#: src/labels.h:340 +msgid "Next" +msgstr "前进" + +#: src/labels.h:342 +msgid "First" +msgstr "" + +#: src/labels.h:344 +msgid "Last" +msgstr "" + +#: src/labels.h:346 +msgid "Chart Options" +msgstr "图表选项" + +#: src/labels.h:348 +msgid "Chart" +msgstr "图表" + +#: src/labels.h:350 +msgid "Type" +msgstr "类型" + +#: src/labels.h:352 +msgid "Area Spline" +msgstr "AreaSpline图表" + +#: src/labels.h:354 +msgid "Bar" +msgstr "条形图" + +#: src/labels.h:356 +msgid "Plot Metric" +msgstr "绘制度量" + +# change +#: src/labels.h:358 +msgid "Table Columns" +msgstr "表格列" + +#: src/labels.h:362 +msgid "1xx Informational" +msgstr "1xx 消息" + +#: src/labels.h:364 +msgid "2xx Success" +msgstr "2xx 成功" + +#: src/labels.h:366 +msgid "3xx Redirection" +msgstr "3xx Url重定向" + +#: src/labels.h:368 +msgid "4xx Client Errors" +msgstr "4xx 客户端错" + +#: src/labels.h:370 +msgid "5xx Server Errors" +msgstr "5xx 服务器错" + +#: src/labels.h:373 +msgid "100 - Continue: Server received the initial part of the request" +msgstr "100 - 继续: 服务器已经接收到请求头" + +#: src/labels.h:375 +msgid "101 - Switching Protocols: Client asked to switch protocols" +msgstr "101 - 更改协议: 客户端被通知变更协议来完成请求" + +#: src/labels.h:377 +msgid "200 - OK: The request sent by the client was successful" +msgstr "200 - 成功: 请求成功" + +#: src/labels.h:379 +msgid "201 - Created: The request has been fulfilled and created" +msgstr "201 - 已创建: 请求成功并且服务器创建了新的资源" + +#: src/labels.h:381 +msgid "202 - Accepted: The request has been accepted for processing" +msgstr "202 - 已接收: 服务器已接受请求,但尚未处理" + +#: src/labels.h:383 +msgid "203 - Non-authoritative Information: Response from a third party" +msgstr "203 - 非授权信息: 服务器已成功处理请求 但返回的信息可能来自另一来源" + +#: src/labels.h:385 +msgid "204 - No Content: Request did not return any content" +msgstr "204 - 无内容: 没有返回任何内容" + +#: src/labels.h:387 +msgid "205 - Reset Content: Server asked the client to reset the document" +msgstr "205 - 重置内容: 服务器已成功处理请求 但没有返回任何内容" + +#: src/labels.h:389 +msgid "206 - Partial Content: The partial GET has been successful" +msgstr "206 - 部分内容: 服务器成功处理了部分GET请求" + +#: src/labels.h:391 +msgid "207 - Multi-Status: WebDAV; RFC 4918" +msgstr "207 - 多状态: WebDAV; RFC 4918" + +#: src/labels.h:393 +msgid "208 - Already Reported: WebDAV; RFC 5842" +msgstr "208 - 已报告: WebDAV; RFC 5842" + +#: src/labels.h:395 +msgid "300 - Multiple Choices: Multiple options for the resource" +msgstr "300 - 多重选择: 资源提供多种选项让客户端选择" + +#: src/labels.h:397 +msgid "301 - Moved Permanently: Resource has permanently moved" +msgstr "301 - 永久移除: 资源已被永久移动到新位置" + +#: src/labels.h:399 +msgid "302 - Moved Temporarily (redirect)" +msgstr "302 - 临时移动" + +#: src/labels.h:401 +msgid "303 - See Other Document: The response is at a different URI" +msgstr "303 - 查看其他位置: 当前请求的响应在另一个URI上被找到" + +#: src/labels.h:403 +msgid "304 - Not Modified: Resource has not been modified" +msgstr "304 - 未修改: 资源未被修改" + +#: src/labels.h:405 +msgid "305 - Use Proxy: Can only be accessed through the proxy" +msgstr "305 - 使用代理: 只能通过代理访问资源" + +#: src/labels.h:407 +msgid "307 - Temporary Redirect: Resource temporarily moved" +msgstr "307 - 临时重定向: 临时从另外的URI响应" + +#: src/labels.h:409 +msgid "400 - Bad Request: The syntax of the request is invalid" +msgstr "400 - 错误请求: 客户端语法错误" + +#: src/labels.h:411 +msgid "401 - Unauthorized: Request needs user authentication" +msgstr "401 - 未授权: 当前请求需要用户授权" + +#: src/labels.h:413 +msgid "402 - Payment Required" +msgstr "402 - 需要支付" + +#: src/labels.h:415 +msgid "403 - Forbidden: Server is refusing to respond to it" +msgstr "403 - 禁止: 服务器拒绝响应请求" + +#: src/labels.h:417 +msgid "404 - Not Found: Requested resource could not be found" +msgstr "404 - 未找到: 找不到请求的资源" + +#: src/labels.h:419 +msgid "405 - Method Not Allowed: Request method not supported" +msgstr "405 - 方法禁用: 不支持请求中指定的方法" + +#: src/labels.h:421 +msgid "406 - Not Acceptable" +msgstr "406 - 无法接收" + +#: src/labels.h:423 +msgid "407 - Proxy Authentication Required" +msgstr "407 - 需要代理授权" + +#: src/labels.h:425 +msgid "408 - Request Timeout: Server timed out waiting for the request" +msgstr "408 - 请求超时: 服务器在等候请求时超时" + +#: src/labels.h:427 +msgid "409 - Conflict: Conflict in the request" +msgstr "409 - 冲突: 服务器在完成请求时发生冲突" + +#: src/labels.h:429 +msgid "410 - Gone: Resource requested is no longer available" +msgstr "410 - 已删除: 请求的资源已永久删除" + +#: src/labels.h:431 +msgid "411 - Length Required: Invalid Content-Length" +msgstr "411 - 需要有效长度: Content-Length无效" + +#: src/labels.h:433 +msgid "412 - Precondition Failed: Server does not meet preconditions" +msgstr "412 - 未满足前提条件: 服务器未满足请求中的前提条件" + +#: src/labels.h:435 +msgid "413 - Payload Too Large" +msgstr "413 - 请求实体过大" + +#: src/labels.h:437 +msgid "414 - Request-URI Too Long" +msgstr "414 - 请求的URI过长" + +#: src/labels.h:439 +msgid "415 - Unsupported Media Type: Media type is not supported" +msgstr "415 - 不支持的媒体类型" + +#: src/labels.h:441 +msgid "416 - Requested Range Not Satisfiable: Cannot supply that portion" +msgstr "416 - 请求范围不符合要求" + +#: src/labels.h:443 +msgid "417 - Expectation Failed" +msgstr "417 - 未满足期望值" + +#: src/labels.h:445 +msgid "421 - Misdirected Request" +msgstr "421 - 被误导的请求" + +#: src/labels.h:447 +msgid "422 - Unprocessable Entity due to semantic errors: WebDAV" +msgstr "422 - 请求格式正确但因存在语法错而无法响应" + +#: src/labels.h:449 +msgid "423 - The resource that is being accessed is locked" +msgstr "423 - 当前资源被锁定" + +#: src/labels.h:451 +msgid "424 - Failed Dependency: WebDAV" +msgstr "424 - 失败的依赖" + +#: src/labels.h:453 +msgid "426 - Upgrade Required: Client should switch to a different protocol" +msgstr "426 - 需要升级: 客户端应该切换到其他的协议" + +#: src/labels.h:455 +msgid "428 - Precondition Required" +msgstr "428 - 需要前提条件" + +#: src/labels.h:457 +msgid "429 - Too Many Requests: The user has sent too many requests" +msgstr "429 - 请求过多: 客户端发送了太多请求" + +#: src/labels.h:459 +msgid "431 - Request Header Fields Too Large" +msgstr "431 - 请求头字段太长" + +#: src/labels.h:461 +msgid "451 - Unavailable For Legal Reasons" +msgstr "451 - 因法律原因不可用" + +#: src/labels.h:463 +msgid "444 - (Nginx) Connection closed without sending any headers" +msgstr "444 - (Nginx) 未发送响应头且连接已关闭" + +#: src/labels.h:465 +msgid "494 - (Nginx) Request Header Too Large" +msgstr "494 - (Nginx) 请求头太大" + +#: src/labels.h:467 +msgid "495 - (Nginx) SSL client certificate error" +msgstr "495 - (Nginx) SSL客户端证书错" + +#: src/labels.h:469 +msgid "496 - (Nginx) Client didn't provide certificate" +msgstr "496 - (Nginx) 客户端未提供证书" + +#: src/labels.h:471 +msgid "497 - (Nginx) HTTP request sent to HTTPS port" +msgstr "497 - (Nginx) HTTP请求被发送到了HTTPS端口" + +#: src/labels.h:473 +msgid "499 - (Nginx) Connection closed by client while processing request" +msgstr "499 - (Nginx) 处理请求时连接被客户端关闭" + +#: src/labels.h:475 +msgid "500 - Internal Server Error" +msgstr "500 - 服务器内部错" + +#: src/labels.h:477 +msgid "501 - Not Implemented" +msgstr "501 - 尚未实施" + +#: src/labels.h:479 +msgid "502 - Bad Gateway: Received an invalid response from the upstream" +msgstr "502 - 错误网关: 服务器作为网关或代理, 从上游服务器收到无效响应" + +#: src/labels.h:481 +msgid "503 - Service Unavailable: The server is currently unavailable" +msgstr "503 - 服务不可用: 服务器无法使用" + +#: src/labels.h:483 +msgid "504 - Gateway Timeout: The upstream server failed to send request" +msgstr "504 - 网关超时: 服务器作为网关或代理, 未从上游服务器收到请求" + +#: src/labels.h:485 +msgid "505 - HTTP Version Not Supported" +msgstr "505 - HTTP版本不受支持" + +#: src/labels.h:487 +msgid "520 - CloudFlare - Web server is returning an unknown error" +msgstr "520 - CloudFlare - 服务器返回一个未知错误" + +#: src/labels.h:489 +msgid "521 - CloudFlare - Web server is down" +msgstr "521 - CloudFlare - 服务器挂了" + +#: src/labels.h:491 +msgid "522 - CloudFlare - Connection timed out" +msgstr "522 - CloudFlare - 连接超时" + +#: src/labels.h:493 +msgid "523 - CloudFlare - Origin is unreachable" +msgstr "523 - CloudFlare - 服务器无法访问" + +#: src/labels.h:495 +msgid "524 - CloudFlare - A timeout occurred" +msgstr "524 - CloudFlare - 服务器响应超时" + +#~ msgid "Bandwidth" +#~ msgstr "带宽" + +#~ msgid "Unique Files" +#~ msgstr "唯一的文件" + +#~ msgid "Unique 404" +#~ msgstr "唯一的404" + +#~ msgid " - Including spiders" +#~ msgstr "- 包括网络机器人" diff --git a/src/goaccess++/resources/css/app.css b/src/goaccess++/resources/css/app.css new file mode 100644 index 0000000..a54201c --- /dev/null +++ b/src/goaccess++/resources/css/app.css @@ -0,0 +1,987 @@ +/* GLOBAL */ +html, +body { + background: #f0f0f0; + overflow-x: hidden; +} +h1 { + font-weight: bold; + letter-spacing: -3px; +} +h3 { + font-size: 21px; + letter-spacing: -1px; +} +.page-header { + border-bottom: 1px solid rgba(0, 0, 0, 0.15); + margin: 25px 0 20px; + position: relative; +} +.page-header h1 { + margin: 0; +} +.pagination { + margin: 5px 0; +} +.clickable, +.expandable>td { + cursor: pointer; +} +.spinner { + color: #999; + left: 50%; + position: absolute; + top: 50%; +} +.powered { + bottom: 190px; + color: #9E9E9E; + font-size: smaller; + position: absolute; + right: 20px; + transform-origin: 100% 0; + transform: rotate(-90deg); +} +.powered a { + color: #636363; +} +.powered span { + color: #007bc3; +} +.dropdown-header { + color: #007bc3; + padding: 3px 25px; + text-transform: uppercase; +} +.gheader { + letter-spacing: -1px; + text-transform: uppercase; +} +h5.gheader { + letter-spacing: 0; +} +.panel-header h4.gheader { + margin-top: 20px; +} +.panel-header .gheader small { + font-size: 69%; +} + +/* NAVIGATION */ +nav { + -webkit-transition: left .2s; + background: #1C1C1C; + border-right: 3px solid #5bc0de; + height: 100%; + left: -236px; + overflow: hidden; + position: fixed; + top: 0; + transition: left .2s; + width: 300px; + z-index: 2; +} +nav .nav-list { + height: 100%; + overflow-y: auto; + width: 350px; +} +nav header { + margin: 40px 20px 30px; +} +nav header a { + color: rgba(240,240,240,.7); + font-size: 2.7em; + font-weight: 300; + text-transform: uppercase; +} +nav header a:hover { + color: #eee; +} +nav.active { + display: block !important; + left: 0; + opacity: .97; +} +nav:hover ~ #content { + opacity: .3; +} +nav.active .nav-bars, +nav.active .nav-gears, +nav.active .nav-ws-status { + opacity: 0; +} +nav .nav-bars, +nav .nav-gears, +nav .nav-ws-status { + -webkit-transition: opacity .2s; + color: #9E9E9E; + cursor: pointer; + float: right; + font-size: 36px; + height: 32px; + left: 13px; + line-height: 32px; + position: fixed; + text-align: center; + top: 30px; + transition: opacity .2s; + width: 32px; +} +nav .nav-gears { + top: 100px; + opacity: 0.6; +} +nav .nav-ws-status, +.nav-ws-status.mini { + color: #6A6A6A; + cursor: help; + display: none; + font-size: 12px; +} +nav .nav-ws-status { + left: 25px; + top: 125px; +} +.nav-ws-status.mini { + top: 14px; + left: 50px; + position: absolute; +} +.nav-ws-status.connected { + color: #5DB56A; +} +nav li a { + border-left: 3px solid transparent; + color: rgba(200,200,200,.5); + display: block; + font-size: smaller; + max-width: 235px; + opacity: 0; + overflow: hidden; + padding: 9px 20px; + text-overflow: ellipsis; + text-transform: uppercase; + transition: opacity .2s; + white-space: nowrap; +} +nav.active li a { + max-width: 100%; + opacity: 1; +} +nav li a:hover, +nav li.active a { + background: rgba(0,0,0,.1); + border-color: #5BC0DE; + color: #eee; +} +nav ul { + padding-left: 0; + list-style: none; +} +/* Navigation -- Icon */ +nav a, +nav a:hover { + text-decoration: none; +} +nav h3 { + color: #FFF !important; + font-size: medium; + font-weight: bold; + margin: 20px 25px 10px; + text-transform: uppercase; +} + +/* CONTAINER */ +@media screen and (max-width: 767px) { + .row-offcanvas { + -webkit-transition: all .25s ease-out; + -o-transition: all .25s ease-out; + position: relative; + transition: all .25s ease-out; + } + + .row-offcanvas-right { + right: 0; + } + + .row-offcanvas-left { + left: 0; + } + + .row-offcanvas-right + .sidebar-offcanvas { + right: -50%; + } + + .row-offcanvas-left + .sidebar-offcanvas { + left: -50%; + } + + .row-offcanvas-right.active { + right: 50%; + } + + .row-offcanvas-left.active { + left: 50%; + } + + .sidebar-offcanvas { + position: absolute; + top: 0; + width: 50%; + }; +} +@media (min-width: 768px) { + .container { + width: 750px; + }; +} +@media (max-width: 480px) { + .wrap-general h5, + .wrap-panel h5 { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + .wrap-general h5 { + width: 100% + } + .wrap-panel h5 { + width: 70% + } +} +.container-fluid { + margin-left: 75px; +} +@media (min-width: 1120px) { + .container { + width: 970px; + }; +} +@media (min-width: 1320px) { + .container { + width: 1170px; + }; +} +@media (max-width: 992px) { + .container-fluid { + margin-left: auto; + }; +} +@media (max-width: 768px) { + .container-fluid { + padding-left: 5px; + padding-right: 5px; + } + .page-header { + padding: 0 10px; + } +} + +/* PANEL STYLES */ +.wrap-panel .panel-header { + position: relative; +} +div.wrap-panel > div { + background: #FFF; + margin-top: 10px; + padding: 0 10px; + border-top: 1px solid rgba(0, 0, 0, 0.15); +} + +/* PANEL TABLES */ +.wrap-panel table.table-borderless tbody tr td, +.wrap-panel table.table-borderless tbody tr th, +.wrap-panel table.table-borderless thead tr th { + border: none; +} +.wrap-panel table thead tr th { + text-align: right; + border-bottom-width: 1px; +} +.wrap-panel table .string, +.wrap-panel table .date { + text-align: left; +} +.wrap-panel table .percent { + color: #898989; +} +.wrap-panel table td, +.wrap-panel table th { + white-space: nowrap; + overflow: hidden; +} +.wrap-panel table th.sortable { + cursor: pointer; +} +/* thead meta */ +.wrap-panel table tbody.tbody-meta { + border-top: 1px solid #C7C7C7; + border-bottom: 1px solid #C7C7C7; +} +.wrap-panel table tbody.tbody-meta tr { + background-color: #F1F1F1; + color: #222; +} +.wrap-panel table tbody.tbody-meta small { + font-size: 65%; +} +/* thead data */ +.wrap-panel table tbody.tbody-data tr td { + border-right: 1px solid #F1F1F1; + font-size: smaller; +} +.wrap-panel table tbody.tbody-data td:last-child { + border-right: none; +} +.wrap-panel table tbody.tbody-data td.row-idx { + color: #898989; +} +.wrap-panel table>tbody+tbody { + border-top-width: 1px; +} +.wrap-panel table tbody.tbody-data tr.shaded { + background-color: #F7F7F7; +} +.wrap-panel table tbody.tbody-data tr. { + background-color: #F7F7F7; +} +.wrap-panel table tbody.tbody-data tr.child td:nth-child(1), +.wrap-panel table tbody.tbody-data tr.child td:nth-child(2) { + border-right: none; +} +.wrap-panel table.table-hover>tbody>tr:hover { + background-color: #EEE; +} + +/* GENERAL */ +.wrap-general { + position: relative; +} +.report-title { + background: #FFF; + border-radius: 4px; + bottom: -10px; + color: #9E9E9E; + font-size: small; + padding: 0 10px; + position: absolute; + right: 0; + z-index: 1; +} +.panel-plot-wrap { + position: absolute; + right: 0; + top: 18px; +} +.col-title { + font-size: 85%; + overflow: hidden; + text-overflow: ellipsis; + text-shadow: 1px 1px 0 #FFF; + white-space: nowrap; + width: 100%; +} +.grid-module { + background: #FFF; + color: rgb(36, 36, 36); + font-weight: normal; + margin-top: 5px; + padding: 7px; +} +.grid-module h3 { + font-size: 25px; + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 100%; +} +.grid-module.black { + border-top: 4px solid #0F1214; +} +.grid-module.gray { + border-top: 4px solid #9E9E9E; +} +.grid-module.red { + border-top: 4px solid #FF303E; +} +.grid-module.blue{ + border-top: 4px solid #00D4E1; +} +.grid-module.green { + border-top: 4px solid #5DB56A; +} +@media (max-width: 767px) { + .panel-plot-wrap { + top: 10px; + } + .powered { + bottom: 10px; + left: 25px; + transform: initial; + } +} + +/* CHARTS */ +.chart-wrap { + margin-bottom: 15px; + position: relative; +} +svg { + background-color: #fff; + display: block; +} +.axis path { + fill: transparent; + stroke: black; + shape-rendering: crispEdges; + stroke-width: 1; +} +.grid.y .tick line, +.grid.x .tick line { + shape-rendering: crispEdges; + stroke: #999; + stroke-dasharray: 3 3; + stroke-width: 1; +} +.axis.x .tick line, +.axis.y0 .tick line, +.axis.y1 .tick line, +.grid.y .tick:first-child line { + stroke: black; + stroke-width: 1; + shape-rendering: crispEdges; +} +.bars rect.bar { + shape-rendering: crispEdges; +} +.rects rect { + fill: transparent; +} +.area { + opacity: 0.2; +} +.points { + stroke: transparent; +} +line.indicator { + fill: transparent; + pointer-events: none; + shape-rendering: crispEdges; + stroke: #999; + stroke-width: 1; +} +.area0, +.bars.y0 .bar, +.points.y0, +rect.legend.y0 { + fill: #447FB3; +} +.area1, +.bars.y1 .bar, +.points.y1, +rect.legend.y1 { + fill: #FF6854; +} +.line0, +.line1 { + fill: transparent; + stroke-width: 1; +} +.line0 { + stroke: #007BC3; +} +.line1 { + stroke: #FF303E; +} +.axis text, +.axis-label, +text.legend { + font: 10px sans-serif; +} +.axis-label.y0, +.axis-label.y1 { + text-anchor: end; +} +rect.legend { + height: 10px; + width: 10px; +} +.legend { + cursor: pointer; +} +.wrap-text text { + text-anchor: start!important; +} + +/* CHART TOOLTIP */ +.chart-tooltip-wrap { + left: 0; + pointer-events: none; + position: absolute; + top: 10px; + z-index: 10; +} +.chart-tooltip { + -moz-box-shadow: 7px 7px 12px -9px #777777; + -webkit-box-shadow: 7px 7px 12px -9px #777777; + background-color: #fff; + border-collapse: collapse; + border-spacing: 0; + box-shadow: 7px 7px 12px -9px #777777; + empty-cells: show; + opacity: 0.9; +} +.chart-tooltip tr { + border: 1px solid #CCC; +} +.chart-tooltip th { + background-color: #aaa; + color: #FFF; + font-size: 14px; + max-width: 380px; + overflow: hidden; + padding: 2px 5px; + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; +} +.chart-tooltip td { + border-left: 1px dotted #999; + font-size: 13px; + padding: 3px 6px; +} +.chart-tooltip td > span { + display: inline-block; + height: 10px; + margin-right: 6px; + width: 10px; +} +.chart-tooltip td.value { + text-align: right; +} +.chart-tooltip .blue { + background-color: #007BC3; +} +.chart-tooltip .red { + background-color: #FF303E; +} + +/* DARK THEME */ +.dark h1 { + color: rgba(255, 255, 255, 0.6); +} +.dark h3, +.dark h4, +.dark h5 { + color: rgba(255,255,255,0.4); +} +.dark .table-responsive { + border: none; +} +.dark .wrap-panel > div > table { + color: #D2D2D2; +} +.dark .wrap-panel table tbody.tbody-meta tr { + background-color: transparent; + color: #F7F7F7; +} +.dark .wrap-panel table tbody.tbody-data tr td { + border-right: none; +} +.dark .wrap-panel table.table-hover>tbody.tbody-data>tr:hover { + background-color: rgba(255, 255, 255, 0.08) !important; +} +.dark .col-title { + color: #9e9e9e; + text-shadow:none; +} +.dark .grid-module h3 { + color: #FFF; +} +.dark .dropdown-menu>li>a { + color: #FFF; +} +.dark div.wrap-panel > div { + color: #EEE; + margin-top: 10px; + padding: 0 10px; + border-top: 1px solid rgba(255, 255, 255, 0.15); +} + +/* DARK BLUE THEME */ +html.dark.blue, +.dark.blue body { + background: #252B30; +} +.dark.blue .container { + background: #252B30; +} +.dark.blue .page-header { + border-bottom: 1px solid #3B444C; +} +.dark.blue .label-info { + background-color: #252B30; +} +.dark.blue nav { + border-right: 1px solid #181B1F; + background: #1F2328; +} +.dark.blue div.wrap-panel > div { + background: #1F2328; +} +.dark.blue .wrap-panel table tbody.tbody-meta { + border-top: 1px solid #3B444C; + border-bottom: 1px solid #3B444C; +} +.dark.blue .wrap-panel table tbody.tbody-data tr.shaded { + background-color: #181B1F; +} +.dark.blue .gray { + border-top: 4px solid #3B444C; +} +.dark.blue .grid-module { + background: #1F2328; +} +.dark.blue .btn-default { + color: #9E9E9E; + background-color: #1F2328; + border-color: #3B444C; +} +.dark.blue .btn-default:active, +.dark.blue .btn-default:hover, +.dark.blue .btn-default.active, +.dark.blue .open>.dropdown-toggle.btn-default { + color: #3B444C; + background-color: #1F2328; + border-color: #0F1214; +} +.dark.blue .pagination>.disabled>a, +.dark.blue .pagination>.disabled>a:hover, +.dark.blue .pagination>.disabled>a:focus { + color: #777; +} +.dark.blue .pagination>li>a { + background-color: #1F2328; + border: 1px solid #3B444C; +} +.dark.blue .pagination>li>a:hover, +.dark.blue .pagination>li>a:active, +.dark.blue .pagination>li>a:focus { + color: #0370B0; + background-color: #1F2328; + border-color: #3B444C; +} +.dark.blue .dropdown-menu>li>a:hover, +.dark.blue .dropdown-menu>li>a:focus { + color: #FFF; + background-color: #3B444C; +} +.dark.blue .dropdown-menu { + background-color: #252B30; +} +.dark.blue::-webkit-scrollbar-track, +.dark.blue .table-responsive::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); + background-color: #9E9E9E; +} +.dark.blue::-webkit-scrollbar, +.dark.blue .table-responsive::-webkit-scrollbar { + width: 10px; + height: 10px; + background-color: #9E9E9E; +} +.dark.blue::-webkit-scrollbar-thumb, +.dark.blue .table-responsive::-webkit-scrollbar-thumb { + background-color: #3B444C; +} +.dark.blue .chart-tooltip { + background-color: #252B30; +} +.dark.blue .report-title { + background: #1F2328; +} + +/* DARK GREY THEME */ +html.dark.gray, +.dark.gray body { + background: #212121; +} +.dark.gray .container { + background: #212121; +} +.dark.gray .page-header { + border-bottom: 1px solid #303030; +} +.dark.gray .label-info { + background-color: #303030; +} +.dark.gray nav { + border-right: 1px solid #363737; + background: #1C1C1C; +} +.dark.gray div.wrap-panel > div { + background: #1C1C1C; +} +.dark.gray .wrap-panel table tbody.tbody-meta { + border-top: 1px solid #363737; + border-bottom: 1px solid #363737; +} +.dark.gray .wrap-panel table tbody.tbody-data tr.shaded { + background-color: rgba(48, 48, 48, 0.48); +} +.dark.gray .gray { + border-top: 4px solid #303030; +} +.dark.gray .grid-module { + background: #1C1C1C; +} +.dark.gray .btn-default { + color: #9E9E9E; + background-color: #212121; + border-color: #303030; +} +.dark.gray .btn-default:active, +.dark.gray .btn-default:hover, +.dark.gray .btn-default.active, +.dark.gray .open>.dropdown-toggle.btn-default { + color: #363737; + background-color: #1C1C1C; + border-color: #0F1214; +} +.dark.gray .pagination>.disabled>a, +.dark.gray .pagination>.disabled>a:hover, +.dark.gray .pagination>.disabled>a:focus { + color: #777; +} +.dark.gray .pagination>li>a { + background-color: #212121; + border: 1px solid #303030; +} +.dark.gray .pagination>li>a:hover, +.dark.gray .pagination>li>a:active, +.dark.gray .pagination>li>a:focus { + color: #0370B0; + background-color: #212121; + border-color: #303030; +} +.dark.gray .dropdown-menu>li>a { + color: #FFF; +} +.dark.gray .dropdown-menu>li>a:hover, +.dark.gray .dropdown-menu>li>a:focus { + color: #FFF; + background-color: #303030; +} +.dark.gray .dropdown-menu { + background-color: #212121; +} +.dark.gray::-webkit-scrollbar-track, +.dark.gray .table-responsive::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); + background-color: #9E9E9E; +} +.dark.gray::-webkit-scrollbar, +.dark.gray .table-responsive::-webkit-scrollbar { + width: 10px; + height: 10px; + background-color: #9E9E9E; +} +.dark.gray::-webkit-scrollbar-thumb, +.dark.gray .table-responsive::-webkit-scrollbar-thumb { + background-color: #303030; +} +.dark.gray .chart-tooltip { + background-color: #303030; +} +.dark.gray .report-title { + background: #303030; +} + +/* DARK CHARTS */ +.dark svg { + background-color: transparent; +} +.dark .area { + opacity: 0.1; +} +.dark .line0, +.dark .line1 { + stroke-width: 2; +} +.dark .area0, +.dark .bars.y0 .bar, +.dark rect.legend.y0 { + fill: #007BC3; +} +.dark .area1, +.dark .bars.y1 .bar, +.dark .points.y1, +.dark rect.legend.y1 { + fill: #FF303E; +} +.dark .points.y0 { + fill: #00D4E1; +} +.dark .line0 { + stroke: #007BC3; +} +.dark .line1 { + stroke: #FF303E; +} +.dark .grid.y .tick line, +.dark .grid.x .tick line { + stroke: #44474B; + stroke-dasharray: 1 1; +} +.dark .axis text, +.dark .axis-label, +.dark text.legend { + fill: #9E9E9E; +} +.dark .axis path { + stroke: #999999; +} +.dark .axis.x .tick line, +.dark .axis.y0 .tick line, +.dark .axis.y1 .tick line, +.dark .grid.y .tick:first-child line { + stroke: #3B444C; +} +.dark .chart-tooltip th { + background-color: #1c1c1c; +} +.dark .chart-tooltip tr { + border: 1px solid #363737; +} + +/* DARK PURPLE THEME */ +html.dark.purple, +.dark.purple body { + background: #1e1e2f; +} +.dark.purple .container { + background: #1e1e2f; +} +.dark.purple .page-header { + border-bottom: 1px solid #2b3553; +} +.dark.purple .label-info { + background-color: #181823; +} +.dark.purple nav { + border-right: 1px solid #e14eca; + background: #181823; +} +.dark.purple div.wrap-panel > div { + background: #27293d; + border-top: 1px solid #2b3553; +} +.dark.purple .wrap-panel table tbody.tbody-meta { + border-top: 1px solid #2b3553; + border-bottom: 1px solid #2b3553; +} +.dark.purple .wrap-panel table tbody.tbody-data tr.shaded { + background-color: #1e1e2f; +} +.dark.purple .gray { + border-top: 4px solid #2b3553; +} +.dark.purple .red { + border-top: 4px solid #fd5d93; +} +.dark.purple .green { + border-top: 4px solid #00f2c3; +} +.dark.purple .blue { + border-top: 4px solid #1f8ef1; +} +.dark.purple h3, .dark.purple h4, .dark.purple h5 { + color: #9a9a9a; +} +.dark.purple .grid-module { + background: #27293d; +} +.dark.purple .grid-module h3 { + color: #FFF; +} +.dark.purple .btn-default { + color: #9E9E9E; + background-color: #1e1e2f; + border-color: #2b3553; +} +.dark.purple .btn-default:active, +.dark.purple .btn-default:hover, +.dark.purple .btn-default.active, +.dark.purple .open>.dropdown-toggle.btn-default { + color: #59595f; + background-color: #1e1e2f; + border-color: #2b3553; +} +.dark.purple .pagination>.disabled>a, +.dark.purple .pagination>.disabled>a:hover, +.dark.purple .pagination>.disabled>a:focus { + color: #777; +} +.dark.purple .pagination>li>a { + background-color: #1e1e2f; + border: 1px solid #3B444C; +} +.dark.purple .pagination>li>a:hover, +.dark.purple .pagination>li>a:active, +.dark.purple .pagination>li>a:focus { + color: #0370B0; + background-color: #181823; +} +.dark.purple .dropdown-menu>li>a:hover, +.dark.purple .dropdown-menu>li>a:focus { + color: #FFF; + background-color: #181823; +} +.dark.purple .dropdown-menu { + background-color: #1e1e2f; +} +.dark.purple::-webkit-scrollbar-track, +.dark.purple .table-responsive::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); + background-color: #9E9E9E; +} +.dark.purple::-webkit-scrollbar, +.dark.purple .table-responsive::-webkit-scrollbar { + width: 10px; + height: 10px; + background-color: #9E9E9E; +} +.dark.purple::-webkit-scrollbar-thumb, +.dark.purple .table-responsive::-webkit-scrollbar-thumb { + background-color: #1e1e2f; +} +.dark.purple .chart-tooltip { + background-color: #181823; +} +.dark.purple .report-title { + background: #181823; +} +.dark.purple .area0, +.dark.purple .bars.y0 .bar, +.dark.purple rect.legend.y0 { + fill: #007BC3; +} +.dark.purple .area1, +.dark.purple .bars.y1 .bar, +.dark.purple .points.y1, +.dark.purple rect.legend.y1 { + fill: #d048b6; +} +.dark.purple .points.y0 { + fill: #00D4E1; +} +.dark.purple .line0 { + stroke: #007BC3; +} +.dark.purple .line1 { + stroke: #d048b6; +} diff --git a/src/goaccess++/resources/css/app.css.tmp b/src/goaccess++/resources/css/app.css.tmp new file mode 100644 index 0000000..e01e62b --- /dev/null +++ b/src/goaccess++/resources/css/app.css.tmp @@ -0,0 +1 @@ +/* GLOBAL */html,body {background: #f0f0f0;overflow-x: hidden;}h1 {font-weight: bold;letter-spacing: -3px;}h3 {font-size: 21px;letter-spacing: -1px;}.page-header {border-bottom: 1px solid rgba(0, 0, 0, 0.15);margin: 25px 0 20px;position: relative;}.page-header h1 {margin: 0;}.pagination {margin: 5px 0;}.clickable,.expandable>td {cursor: pointer;}.spinner {color: #999;left: 50%;position: absolute;top: 50%;}.powered {bottom: 190px;color: #9E9E9E;font-size: smaller;position: absolute;right: 20px;transform-origin: 100% 0;transform: rotate(-90deg);}.powered a {color: #636363;}.powered span {color: #007bc3;}.dropdown-header {color: #007bc3;padding: 3px 25px;text-transform: uppercase;}.gheader {letter-spacing: -1px;text-transform: uppercase;}h5.gheader {letter-spacing: 0;}.panel-header h4.gheader {margin-top: 20px;}.panel-header .gheader small {font-size: 69%;}/* NAVIGATION */nav {-webkit-transition: left .2s;background: #1C1C1C;border-right: 3px solid #5bc0de;height: 100%;left: -236px;overflow: hidden;position: fixed;top: 0;transition: left .2s;width: 300px;z-index: 2;}nav .nav-list {height: 100%;overflow-y: auto;width: 350px;}nav header {margin: 40px 20px 30px;}nav header a {color: rgba(240,240,240,.7);font-size: 2.7em;font-weight: 300;text-transform: uppercase;}nav header a:hover {color: #eee;}nav.active {display: block !important;left: 0;opacity: .97;}nav:hover ~ #content {opacity: .3;}nav.active .nav-bars,nav.active .nav-gears,nav.active .nav-ws-status {opacity: 0;}nav .nav-bars,nav .nav-gears,nav .nav-ws-status {-webkit-transition: opacity .2s;color: #9E9E9E;cursor: pointer;float: right;font-size: 36px;height: 32px;left: 13px;line-height: 32px;position: fixed;text-align: center;top: 30px;transition: opacity .2s;width: 32px;}nav .nav-gears {top: 100px;opacity: 0.6;}nav .nav-ws-status,.nav-ws-status.mini {color: #6A6A6A;cursor: help;display: none;font-size: 12px;}nav .nav-ws-status {left: 25px;top: 125px;}.nav-ws-status.mini {top: 14px;left: 50px;position: absolute;}.nav-ws-status.connected {color: #5DB56A;}nav li a {border-left: 3px solid transparent;color: rgba(200,200,200,.5);display: block;font-size: smaller;max-width: 235px;opacity: 0;overflow: hidden;padding: 9px 20px;text-overflow: ellipsis;text-transform: uppercase;transition: opacity .2s;white-space: nowrap;}nav.active li a {max-width: 100%;opacity: 1;}nav li a:hover,nav li.active a {background: rgba(0,0,0,.1);border-color: #5BC0DE;color: #eee;}nav ul {padding-left: 0;list-style: none;}/* Navigation -- Icon */nav a,nav a:hover {text-decoration: none;}nav h3 {color: #FFF !important;font-size: medium;font-weight: bold;margin: 20px 25px 10px;text-transform: uppercase;}/* CONTAINER */@media screen and (max-width: 767px) {.row-offcanvas {-webkit-transition: all .25s ease-out;-o-transition: all .25s ease-out;position: relative;transition: all .25s ease-out;}.row-offcanvas-right {right: 0;}.row-offcanvas-left {left: 0;}.row-offcanvas-right.sidebar-offcanvas {right: -50%;}.row-offcanvas-left.sidebar-offcanvas {left: -50%;}.row-offcanvas-right.active {right: 50%;}.row-offcanvas-left.active {left: 50%;}.sidebar-offcanvas {position: absolute;top: 0;width: 50%;};}@media (min-width: 768px) {.container {width: 750px;};}@media (max-width: 480px) {.wrap-general h5,.wrap-panel h5 {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}.wrap-general h5 {width: 100%}.wrap-panel h5 {width: 70%}}.container-fluid {margin-left: 75px;}@media (min-width: 1120px) {.container {width: 970px;};}@media (min-width: 1320px) {.container {width: 1170px;};}@media (max-width: 992px) {.container-fluid {margin-left: auto;};}@media (max-width: 768px) {.container-fluid {padding-left: 5px;padding-right: 5px;}.page-header {padding: 0 10px;}}/* PANEL STYLES */.wrap-panel .panel-header {position: relative;}div.wrap-panel > div {background: #FFF;margin-top: 10px;padding: 0 10px;border-top: 1px solid rgba(0, 0, 0, 0.15);}/* PANEL TABLES */.wrap-panel table.table-borderless tbody tr td,.wrap-panel table.table-borderless tbody tr th,.wrap-panel table.table-borderless thead tr th {border: none;}.wrap-panel table thead tr th {text-align: right;border-bottom-width: 1px;}.wrap-panel table .string,.wrap-panel table .date {text-align: left;}.wrap-panel table .percent {color: #898989;}.wrap-panel table td,.wrap-panel table th {white-space: nowrap;overflow: hidden;}.wrap-panel table th.sortable {cursor: pointer;}/* thead meta */.wrap-panel table tbody.tbody-meta {border-top: 1px solid #C7C7C7;border-bottom: 1px solid #C7C7C7;}.wrap-panel table tbody.tbody-meta tr {background-color: #F1F1F1;color: #222;}.wrap-panel table tbody.tbody-meta small {font-size: 65%;}/* thead data */.wrap-panel table tbody.tbody-data tr td {border-right: 1px solid #F1F1F1;font-size: smaller;}.wrap-panel table tbody.tbody-data td:last-child {border-right: none;}.wrap-panel table tbody.tbody-data td.row-idx {color: #898989;}.wrap-panel table>tbody+tbody {border-top-width: 1px;}.wrap-panel table tbody.tbody-data tr.shaded {background-color: #F7F7F7;}.wrap-panel table tbody.tbody-data tr. {background-color: #F7F7F7;}.wrap-panel table tbody.tbody-data tr.child td:nth-child(1),.wrap-panel table tbody.tbody-data tr.child td:nth-child(2) {border-right: none;}.wrap-panel table.table-hover>tbody>tr:hover {background-color: #EEE;}/* GENERAL */.wrap-general {position: relative;}.report-title {background: #FFF;border-radius: 4px;bottom: -10px;color: #9E9E9E;font-size: small;padding: 0 10px;position: absolute;right: 0;z-index: 1;}.panel-plot-wrap {position: absolute;right: 0;top: 18px;}.col-title {font-size: 85%;overflow: hidden;text-overflow: ellipsis;text-shadow: 1px 1px 0 #FFF;white-space: nowrap;width: 100%;}.grid-module {background: #FFF;color: rgb(36, 36, 36);font-weight: normal;margin-top: 5px;padding: 7px;}.grid-module h3 {font-size: 25px;margin: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;width: 100%;}.grid-module.black {border-top: 4px solid #0F1214;}.grid-module.gray {border-top: 4px solid #9E9E9E;}.grid-module.red {border-top: 4px solid #FF303E;}.grid-module.blue{border-top: 4px solid #00D4E1;}.grid-module.green {border-top: 4px solid #5DB56A;}@media (max-width: 767px) {.panel-plot-wrap {top: 10px;}.powered {bottom: 10px;left: 25px;transform: initial;}}/* CHARTS */.chart-wrap {margin-bottom: 15px;position: relative;}svg {background-color: #fff;display: block;}.axis path {fill: transparent;stroke: black;shape-rendering: crispEdges;stroke-width: 1;}.grid.y .tick line,.grid.x .tick line {shape-rendering: crispEdges;stroke: #999;stroke-dasharray: 3 3;stroke-width: 1;}.axis.x .tick line,.axis.y0 .tick line,.axis.y1 .tick line,.grid.y .tick:first-child line {stroke: black;stroke-width: 1;shape-rendering: crispEdges;}.bars rect.bar {shape-rendering: crispEdges;}.rects rect {fill: transparent;}.area {opacity: 0.2;}.points {stroke: transparent;}line.indicator {fill: transparent;pointer-events: none;shape-rendering: crispEdges;stroke: #999;stroke-width: 1;}.area0,.bars.y0 .bar,.points.y0,rect.legend.y0 {fill: #447FB3;}.area1,.bars.y1 .bar,.points.y1,rect.legend.y1 {fill: #FF6854;}.line0,.line1 {fill: transparent;stroke-width: 1;}.line0 {stroke: #007BC3;}.line1 {stroke: #FF303E;}.axis text,.axis-label,text.legend {font: 10px sans-serif;}.axis-label.y0,.axis-label.y1 {text-anchor: end;}rect.legend {height: 10px;width: 10px;}.legend {cursor: pointer;}.wrap-text text {text-anchor: start!important;}/* CHART TOOLTIP */.chart-tooltip-wrap {left: 0;pointer-events: none;position: absolute;top: 10px;z-index: 10;}.chart-tooltip {-moz-box-shadow: 7px 7px 12px -9px #777777;-webkit-box-shadow: 7px 7px 12px -9px #777777;background-color: #fff;border-collapse: collapse;border-spacing: 0;box-shadow: 7px 7px 12px -9px #777777;empty-cells: show;opacity: 0.9;}.chart-tooltip tr {border: 1px solid #CCC;}.chart-tooltip th {background-color: #aaa;color: #FFF;font-size: 14px;max-width: 380px;overflow: hidden;padding: 2px 5px;text-align: left;text-overflow: ellipsis;white-space: nowrap;}.chart-tooltip td {border-left: 1px dotted #999;font-size: 13px;padding: 3px 6px;}.chart-tooltip td > span {display: inline-block;height: 10px;margin-right: 6px;width: 10px;}.chart-tooltip td.value {text-align: right;}.chart-tooltip .blue {background-color: #007BC3;}.chart-tooltip .red {background-color: #FF303E;}/* DARK THEME */.dark h1 {color: rgba(255, 255, 255, 0.6);}.dark h3,.dark h4,.dark h5 {color: rgba(255,255,255,0.4);}.dark .table-responsive {border: none;}.dark .wrap-panel > div > table {color: #D2D2D2;}.dark .wrap-panel table tbody.tbody-meta tr {background-color: transparent;color: #F7F7F7;}.dark .wrap-panel table tbody.tbody-data tr td {border-right: none;}.dark .wrap-panel table.table-hover>tbody.tbody-data>tr:hover {background-color: rgba(255, 255, 255, 0.08) !important;}.dark .col-title {color: #9e9e9e;text-shadow:none;}.dark .grid-module h3 {color: #FFF;}.dark .dropdown-menu>li>a {color: #FFF;}.dark div.wrap-panel > div {color: #EEE;margin-top: 10px;padding: 0 10px;border-top: 1px solid rgba(255, 255, 255, 0.15);}/* DARK BLUE THEME */html.dark.blue,.dark.blue body {background: #252B30;}.dark.blue .container {background: #252B30;}.dark.blue .page-header {border-bottom: 1px solid #3B444C;}.dark.blue .label-info {background-color: #252B30;}.dark.blue nav {border-right: 1px solid #181B1F;background: #1F2328;}.dark.blue div.wrap-panel > div {background: #1F2328;}.dark.blue .wrap-panel table tbody.tbody-meta {border-top: 1px solid #3B444C;border-bottom: 1px solid #3B444C;}.dark.blue .wrap-panel table tbody.tbody-data tr.shaded {background-color: #181B1F;}.dark.blue .gray {border-top: 4px solid #3B444C;}.dark.blue .grid-module {background: #1F2328;}.dark.blue .btn-default {color: #9E9E9E;background-color: #1F2328;border-color: #3B444C;}.dark.blue .btn-default:active,.dark.blue .btn-default:hover,.dark.blue .btn-default.active,.dark.blue .open>.dropdown-toggle.btn-default {color: #3B444C;background-color: #1F2328;border-color: #0F1214;}.dark.blue .pagination>.disabled>a,.dark.blue .pagination>.disabled>a:hover,.dark.blue .pagination>.disabled>a:focus {color: #777;}.dark.blue .pagination>li>a {background-color: #1F2328;border: 1px solid #3B444C;}.dark.blue .pagination>li>a:hover,.dark.blue .pagination>li>a:active,.dark.blue .pagination>li>a:focus {color: #0370B0;background-color: #1F2328;border-color: #3B444C;}.dark.blue .dropdown-menu>li>a:hover,.dark.blue .dropdown-menu>li>a:focus {color: #FFF;background-color: #3B444C;}.dark.blue .dropdown-menu {background-color: #252B30;}.dark.blue::-webkit-scrollbar-track,.dark.blue .table-responsive::-webkit-scrollbar-track {-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);background-color: #9E9E9E;}.dark.blue::-webkit-scrollbar,.dark.blue .table-responsive::-webkit-scrollbar {width: 10px;height: 10px;background-color: #9E9E9E;}.dark.blue::-webkit-scrollbar-thumb,.dark.blue .table-responsive::-webkit-scrollbar-thumb {background-color: #3B444C;}.dark.blue .chart-tooltip {background-color: #252B30;}.dark.blue .report-title {background: #1F2328;}/* DARK GREY THEME */html.dark.gray,.dark.gray body {background: #212121;}.dark.gray .container {background: #212121;}.dark.gray .page-header {border-bottom: 1px solid #303030;}.dark.gray .label-info {background-color: #303030;}.dark.gray nav {border-right: 1px solid #363737;background: #1C1C1C;}.dark.gray div.wrap-panel > div {background: #1C1C1C;}.dark.gray .wrap-panel table tbody.tbody-meta {border-top: 1px solid #363737;border-bottom: 1px solid #363737;}.dark.gray .wrap-panel table tbody.tbody-data tr.shaded {background-color: rgba(48, 48, 48, 0.48);}.dark.gray .gray {border-top: 4px solid #303030;}.dark.gray .grid-module {background: #1C1C1C;}.dark.gray .btn-default {color: #9E9E9E;background-color: #212121;border-color: #303030;}.dark.gray .btn-default:active,.dark.gray .btn-default:hover,.dark.gray .btn-default.active,.dark.gray .open>.dropdown-toggle.btn-default {color: #363737;background-color: #1C1C1C;border-color: #0F1214;}.dark.gray .pagination>.disabled>a,.dark.gray .pagination>.disabled>a:hover,.dark.gray .pagination>.disabled>a:focus {color: #777;}.dark.gray .pagination>li>a {background-color: #212121;border: 1px solid #303030;}.dark.gray .pagination>li>a:hover,.dark.gray .pagination>li>a:active,.dark.gray .pagination>li>a:focus {color: #0370B0;background-color: #212121;border-color: #303030;}.dark.gray .dropdown-menu>li>a {color: #FFF;}.dark.gray .dropdown-menu>li>a:hover,.dark.gray .dropdown-menu>li>a:focus {color: #FFF;background-color: #303030;}.dark.gray .dropdown-menu {background-color: #212121;}.dark.gray::-webkit-scrollbar-track,.dark.gray .table-responsive::-webkit-scrollbar-track {-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);background-color: #9E9E9E;}.dark.gray::-webkit-scrollbar,.dark.gray .table-responsive::-webkit-scrollbar {width: 10px;height: 10px;background-color: #9E9E9E;}.dark.gray::-webkit-scrollbar-thumb,.dark.gray .table-responsive::-webkit-scrollbar-thumb {background-color: #303030;}.dark.gray .chart-tooltip {background-color: #303030;}.dark.gray .report-title {background: #303030;}/* DARK CHARTS */.dark svg {background-color: transparent;}.dark .area {opacity: 0.1;}.dark .line0,.dark .line1 {stroke-width: 2;}.dark .area0,.dark .bars.y0 .bar,.dark rect.legend.y0 {fill: #007BC3;}.dark .area1,.dark .bars.y1 .bar,.dark .points.y1,.dark rect.legend.y1 {fill: #FF303E;}.dark .points.y0 {fill: #00D4E1;}.dark .line0 {stroke: #007BC3;}.dark .line1 {stroke: #FF303E;}.dark .grid.y .tick line,.dark .grid.x .tick line {stroke: #44474B;stroke-dasharray: 1 1;}.dark .axis text,.dark .axis-label,.dark text.legend {fill: #9E9E9E;}.dark .axis path {stroke: #999999;}.dark .axis.x .tick line,.dark .axis.y0 .tick line,.dark .axis.y1 .tick line,.dark .grid.y .tick:first-child line {stroke: #3B444C;}.dark .chart-tooltip th {background-color: #1c1c1c;}.dark .chart-tooltip tr {border: 1px solid #363737;}/* DARK PURPLE THEME */html.dark.purple,.dark.purple body {background: #1e1e2f;}.dark.purple .container {background: #1e1e2f;}.dark.purple .page-header {border-bottom: 1px solid #2b3553;}.dark.purple .label-info {background-color: #181823;}.dark.purple nav {border-right: 1px solid #e14eca;background: #181823;}.dark.purple div.wrap-panel > div {background: #27293d;border-top: 1px solid #2b3553;}.dark.purple .wrap-panel table tbody.tbody-meta {border-top: 1px solid #2b3553;border-bottom: 1px solid #2b3553;}.dark.purple .wrap-panel table tbody.tbody-data tr.shaded {background-color: #1e1e2f;}.dark.purple .gray {border-top: 4px solid #2b3553;}.dark.purple .red {border-top: 4px solid #fd5d93;}.dark.purple .green {border-top: 4px solid #00f2c3;}.dark.purple .blue {border-top: 4px solid #1f8ef1;}.dark.purple h3, .dark.purple h4, .dark.purple h5 {color: #9a9a9a;}.dark.purple .grid-module {background: #27293d;}.dark.purple .grid-module h3 {color: #FFF;}.dark.purple .btn-default {color: #9E9E9E;background-color: #1e1e2f;border-color: #2b3553;}.dark.purple .btn-default:active,.dark.purple .btn-default:hover,.dark.purple .btn-default.active,.dark.purple .open>.dropdown-toggle.btn-default {color: #59595f;background-color: #1e1e2f;border-color: #2b3553;}.dark.purple .pagination>.disabled>a,.dark.purple .pagination>.disabled>a:hover,.dark.purple .pagination>.disabled>a:focus {color: #777;}.dark.purple .pagination>li>a {background-color: #1e1e2f;border: 1px solid #3B444C;}.dark.purple .pagination>li>a:hover,.dark.purple .pagination>li>a:active,.dark.purple .pagination>li>a:focus {color: #0370B0;background-color: #181823;}.dark.purple .dropdown-menu>li>a:hover,.dark.purple .dropdown-menu>li>a:focus {color: #FFF;background-color: #181823;}.dark.purple .dropdown-menu {background-color: #1e1e2f;}.dark.purple::-webkit-scrollbar-track,.dark.purple .table-responsive::-webkit-scrollbar-track {-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);background-color: #9E9E9E;}.dark.purple::-webkit-scrollbar,.dark.purple .table-responsive::-webkit-scrollbar {width: 10px;height: 10px;background-color: #9E9E9E;}.dark.purple::-webkit-scrollbar-thumb,.dark.purple .table-responsive::-webkit-scrollbar-thumb {background-color: #1e1e2f;}.dark.purple .chart-tooltip {background-color: #181823;}.dark.purple .report-title {background: #181823;}.dark.purple .area0,.dark.purple .bars.y0 .bar,.dark.purple rect.legend.y0 {fill: #007BC3;}.dark.purple .area1,.dark.purple .bars.y1 .bar,.dark.purple .points.y1,.dark.purple rect.legend.y1 {fill: #d048b6;}.dark.purple .points.y0 {fill: #00D4E1;}.dark.purple .line0 {stroke: #007BC3;}.dark.purple .line1 {stroke: #d048b6;} \ No newline at end of file diff --git a/src/goaccess++/resources/css/bootstrap.min.css b/src/goaccess++/resources/css/bootstrap.min.css new file mode 100644 index 0000000..c9677e9 --- /dev/null +++ b/src/goaccess++/resources/css/bootstrap.min.css @@ -0,0 +1 @@ +/*! http://getbootstrap.com/customize/?id=f8abc08c888af89b2ed8cd64f48a1fe3 */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover,a.text-primary:focus{color:#286090}.text-success{color:#3c763d}a.text-success:hover,a.text-success:focus{color:#2b542c}.text-info{color:#31708f}a.text-info:hover,a.text-info:focus{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover,a.text-warning:focus{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover,a.text-danger:focus{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover,a.bg-primary:focus{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:34px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:focus,.btn-default.focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#fff;background-color:#398439;border-color:#255625}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:focus,.btn-warning.focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:3;color:#fff;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}} diff --git a/src/goaccess++/resources/css/bootstrap.min.css.tmp b/src/goaccess++/resources/css/bootstrap.min.css.tmp new file mode 100644 index 0000000..0312f0c --- /dev/null +++ b/src/goaccess++/resources/css/bootstrap.min.css.tmp @@ -0,0 +1 @@ +/*! http://getbootstrap.com/customize/?id=f8abc08c888af89b2ed8cd64f48a1fe3 */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover,a.text-primary:focus{color:#286090}.text-success{color:#3c763d}a.text-success:hover,a.text-success:focus{color:#2b542c}.text-info{color:#31708f}a.text-info:hover,a.text-info:focus{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover,a.text-warning:focus{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover,a.text-danger:focus{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover,a.bg-primary:focus{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:34px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:focus,.btn-default.focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#fff;background-color:#398439;border-color:#255625}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:focus,.btn-warning.focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:3;color:#fff;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}} \ No newline at end of file diff --git a/src/goaccess++/resources/css/fa.min.css b/src/goaccess++/resources/css/fa.min.css new file mode 100644 index 0000000..179498e --- /dev/null +++ b/src/goaccess++/resources/css/fa.min.css @@ -0,0 +1,8 @@ +@font-face { + font-family: 'fa'; + src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAC2sAAsAAAAALWAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIPHGNtYXAAAAFoAAABbAAAAWzzYPN8Z2FzcAAAAtQAAAAIAAAACAAAABBnbHlmAAAC3AAAJ7QAACe0PqRPf2hlYWQAACqQAAAANgAAADYSBhrHaGhlYQAAKsgAAAAkAAAAJAhUBIZobXR4AAAq7AAAAMwAAADMpCoCC2xvY2EAACu4AAAAaAAAAGjyrvuebWF4cAAALCAAAAAgAAAAIAA+AVduYW1lAAAsQAAAAUoAAAFKIhWTsnBvc3QAAC2MAAAAIAAAACAAAwAAAAMDVgGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8pwDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEAVAAAABQAEAABQAQAAEAIPAH8AnwDfAT8BfwIvA68EHwRvBU8HHwgPCF8I7wlvCi8MDwyfDO8Nrw3PDk8QHxBfEI8QzxEfEh8VzxoPHO8ffx/vJo8pLynP/9//8AAAAAACDwB/AJ8AvwE/AW8CHwOvBB8EbwU/Bx8IDwhfCO8JbwovDA8MnwzvDX8Nzw5PEA8QTxCPEM8RHxIfFb8aDxzvH38f7yaPKS8pz//f//AAH/4w/9D/wP+w/2D/QP6w/UD84Pyg++D6IPlA+QD4gPgQ92D1kPUQ9ND0UPRA89DyIPIA8eDxsPFw8IDs8OjA5fDjcOMQ3IDZ8NlgADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAIAAAAAAtsDbgAbADcAACUUBiMhIiY1NDc+ATc2Mx4BMzI2NzIXHgEXFhUDFAcOAQcGIyInLgEnJjU0Nz4BNzYzMhceARcWAttHMv4YMkgICColJDgjWzU0XCM4JCQqCAiSERE8KCgtLigoOxESEhE7KCguLSgoPBERlz5ZWT45OTpdHh0hKCghHR5dOjk5AfstKCg8ERERETwoKC0uKCg7ERISETsoKAAAAAAEAAAASQO3A24AEAAhADEAQQAAARUUBiMhIiY9ATQ2MyEyFhURFRQGIyEiJj0BNDYzITIWFQEVFAYjISImPQE0NjMhMhYRFRQGIyEiJj0BNDYzITIWAbcrHv7bHisrHgElHisrHv7bHisrHgElHisCACse/tseKyseASUeKyse/tseKyseASUeKwFu3B4rKx7cHisrHgG33B4rKx7cHisrHv5J3B4rKx7cHisrAZncHisrHtweKysABgAAAEkEAANuAA8AHwAvAD8ATwBfAAAlFRQGKwEiJj0BNDY7ATIWERUUBisBIiY9ATQ2OwEyFgEVFAYjISImPQE0NjMhMhYBFRQGKwEiJj0BNDY7ATIWARUUBiMhIiY9ATQ2MyEyFhEVFAYjISImPQE0NjMhMhYBJSEWtxcgIBe3FiEhFrcXICAXtxYhAtsgF/3cFyAgFwIkFyD9JSEWtxcgIBe3FiEC2yAX/dwXICAXAiQXICAX/dwXICAXAiQXIO5uFyAgF24WISEBDm0XICAXbRcgIP7FbhcgIBduFiEhAjNuFyAgF24XICD+xG0XICAXbRcgIAEObhcgIBduFyAgAAABAEUAUQO7AvgAJAAAARQGBwEOASMiJicBLgE1NDY/AT4BMzIWHwEBPgEzMhYfAR4BFQO7CAj+FAcVCgsVB/7jCAgICE4IFAsKFQioAXYIFQoLFAhOCAgCcwoVB/4UCAgICAEdBxULChUHTggICAioAXcICAgITgcVCwAAAQA/AD8C5gLmADwAACUUBg8BDgEjIiYvAQcOASMiJi8BLgE1NDY/AScuATU0Nj8BPgEzMhYfATc+ATMyFh8BHgEVFAYPARceARUC5gkHTggUCwsUCKioBxULChUHTggICAioqAgICAhOBxUKCxUHqKgIFAsLFAhOBwkJB6ioBwnDChUHTggICAioqAgICAhOBxUKCxUHqKgIFAsLFAhOBwkJB6ioBwkJB04IFAsLFAioqAcVCwAAAAIAAAAAA24DbgALAJIAAAE0JiMiBhUUFjMyNiUVFAYPAQ4BBx4BFx4BFRQGBw4BIyImLwEOAQcOAQcOASsBIiYvAS4BJwcOASMiJicuAScuATU0Njc+ATcuAS8BLgE9ATQ2PwE+ATcuAScuATU0Njc+ATMyFh8BPgE3PgE3PgE7ATIWHwEeARc3PgEzMhYXHgEXHgEVFAYHDgEHHgEfAR4BFQJJVjw9VVU9PFYBJQkHagUKBw4fEAIEAwMKVQ8EBwRPDBoOAwYHAgsIfwcMARANGg1QAwgDBAgDFjYSAgICAw4fDwgMBGgICQkGawQLBw8eEAMDAwILVQ8DCANPDRoNAwcHAgsHfwgMARANGgxRAwcEBAcDFzYSAgIDAg4fDwcMBWgHCgG3PFZWPD1VVXt/Bg0BEA4aDBUnEwMIAwQHAw1ZAwI+BgsFGjYaBwkKB2kFCgY9AgMDAxUzGAMHBAMHAxMnFA4cDw8BDAh+Bw0BEA4aDRQnEwMHBAQGAw5ZBAI9BgsEGzYaBwkKB2oECgc9AwMEAhUzGQMGBAQGAxQmFA4cDhACDAcAAAAAAwAA/7cDbgO3ABMAHAAmAAABHgEVERQGIyEiJjURNDYzITIWFwcVMy4BLwEuARMRIyImPQEhESEDRxAXIBf9ABcgIBcCABc3EEzXAwcDsgMO1e4XIP5JAtwC3hA3F/1uFyAgFwOSFyAXECfXCA0DswMH/JkCSSAX7vySAAMAAAAAA24DbgAVADEATQAAAREUBisBIiY9ATQ2OwE1NDY7ATIWFRc0Jy4BJyYjIgcOAQcGFRQXHgEXFjMyNz4BNzY3FAcOAQcGIyInLgEnJjU0Nz4BNzYzMhceARcWAgALB7cICgoIgAoIJQcL7hkYVTg5QEA5OVQZGBgZVDk5QEA5OFUYGYAjIndQUFtbUFB3IyIiI3dQUFtbUFB3IiMCgP8ACAoKCCUHC8kICgoIyUA5OFUYGRkYVTg5QEA5OVQZGBgZVDk5QFtQUHciIyMid1BQW1tQUHciIyMid1BQAAAAAAIAAAAAA24DbgA0AGcAAAEwFBUGBw4BBwYjIicuAScmJwcOASMiJjURNDYzITIWFRQGDwEeATMyNjc+ATc+ATsBMhYVExEUBiMhIiY1NDY/AS4BIyIGBw4BBw4BKwEiJj0BNjc+ATc2MzIXHgEXFhc3PgEzMhYVA18SKCdvRkVPKikpTCMkHkoFDQcPFhYPAQAPFQYFTihoN0yFKAoNBwIJBm4ICg8WD/8ADxUFBU8oaDdMhSgLDAgCCAdxCAsTJyhwRkZPKikpTSMkHkoGDQcPFgFbAwFLQD9bGRkICB8XFh1KBQUVDwEADxYWDwcNBk4mKUtBECESBgcLCAHK/wAPFhYPBw0FTyYoSkERIREGBwsHBExAP1oaGQgJHxYXHEkFBhUPAAAACAAAAEkEAANuABAAIAAwAEEAUgBjAHQAhAAAExUUBisBIiY9ATQ2OwEyFhU1FRQGKwEiJj0BNDY7ATIWNRUUBisBIiY9ATQ2OwEyFgEVFAYjISImPQE0NjMhMhYVNRUUBiMhIiY9ATQ2MyEyFhU1FRQGIyEiJj0BNDYzITIWFRMRNCYjISIGFREUFjMhMjY1ExEUBiMhIiY1ETQ2MyEyFtsLByQICwsIJAcLCwckCAsLCCQHCwsHJAgLCwgkBwsCkwsI/dwHCwsHAiQICwsI/dwHCwsHAiQICwsI/dwHCwsHAiQIC0kLB/y2BwsLBwNKBwtJNiX8tiU2NiUDSiU2ARIkCAsLCCQICwsIkyUHCwsHJQcLC4slBwsLByUHCwv+1CQICwsIJAgLCwiTJQcLCwclBwsLB5IlBwsLByUHCwsH/m4B2wcLCwf+JQgLCwgCbf2TJjY2JgJtJjY2AAAAAAgAAABJBAADbgAQACEAMQBCAFIAYwBzAIMAADcVFAYrASImPQE0NjsBMhYVNRUUBisBIiY9ATQ2OwEyFhU1FRQGKwEiJj0BNDY7ATIWARUUBiMhIiY9ATQ2MyEyFhUBFRQGKwEiJj0BNDY7ATIWARUUBiMhIiY9ATQ2MyEyFhU1FRQGIyEiJj0BNDYzITIWNRUUBiMhIiY9ATQ2MyEyFpILB24HCwsHbgcLCwduBwsLB24HCwsHbgcLCwduBwsDbgsH/QAICwsIAwAHC/ySCwduBwsLB24HCwNuCwf9AAgLCwgDAAcLCwf9AAgLCwgDAAcLCwf9AAgLCwgDAAcLyW4HCwsHbgcLCwfcbgcLCwduBwsLB9tuBwsLB24HCwv+Qm4HCwsHbgcLCwcCkm0ICwsIbQgLC/5CbgcLCwduBwsLB9tuBwsLB24HCwvUbQgLCwhtCAsLAAAAAgAAAAACSQNuAAsAKAAAATQmIyIGFRQWMzI2NxQGBwMOASMiJicDLgE1NDc+ATc2MzIXHgEXFhUBt1Y8PVZWPTxWkggL0AkkFBUkCdALCBcXTzY1PTw2NU8XFwJJPVVVPTxWVjwaNRf+RhMWFhMBuhc1Gj01NVAXFxcXUDU1PQACAAAASQOpA24AOgBQAAABFRQGIyEiJjURNDYzITIWFx4BFxYGDwEOASMiJiMuASMhIgYVERQWMyEyNj0BNDY/AT4BMzIWFx4BFRMBBiIvASY0PwE2Mh8BATYyHwEWFAcDJWFE/iVFYGBFAdsRIhAEBQEBAwMcAwcDAQMBBw0G/iUmNjYmAdsmNQMDJAMHAwIDAgUHhP4uDSYO9Q4OPg4mDpYBcg0mDj8NDQGjtURhYUQB20RhBwgBBwUECQMcAwMBAgI2Jv4lJjY2JpEDBwIlAwMBAQIJBgEY/i8ODvUOJg4+Dg6WAXIODj8OJQ4AAAABAGMAGgKdA50AFQAACQIWFA8BBiInASY0NwE2Mh8BFhQHAp3+0QEvCwtfCh4L/lgLCwGoCx4KXwsLAwv+0P7RCx4KXwsLAagKHgsBqAsLXwoeCwABAD4AGgJ5A50AFQAACQEGIi8BJjQ3CQEmND8BNjIXARYUBwJ5/lgLHgtfCgoBMP7QCgpfCx4LAagKCgHC/lgLC18KHgsBLwEwCx4KXwsL/lgLHgoAAAAAAwAJAAAD9wO3AA8AJgA8AAAlNTQmKwEiBh0BFBY7ATI2JxM0JicuASsBIgYHDgEVExQWOwEyNjUDARYUBw4BIyEiJicmNDcBPgEzMhYXAkkKCG4ICgoIbggKAQoCAwMHBH4EBwMDAgkMCGoHDAgBtwkKCiIT/JITIgoKCQG3CSMUFCMJpW0HDAwHbQgLC94BBgMGAgIEBAICBwP++wYHBwYCFvzbESYRERMTEREmEQMlERUVEQAAAAUAAAAABJIDbgADAAgADgATABgAAAERIxEBESMRMwEVIREzEQERIxEzNxEjETMBbpMBbpKSAkn7bkkC3JOT25KSAbf+2wElAST9twJJ/W5JA2782wIA/kkBt9z9bQKTAAYAAP+/BEkDrgALABcAIwCkAPwBVAAAATQmIyIGFRQWMzI2BTQmIyIGFRQWMzI2ETQmIyIGFRQWMzI2BxUUBg8BDgEHHgEXHgEVFAYHDgEjIiYvAQ4BBw4BBw4BKwEiJi8BLgEnBw4BIyImJy4BNTQ2Nz4BNy4BLwEuAT0BNDY/AT4BNy4BJy4BNTQ2Nz4BMzIWHwE+ATc+ATc+ATsBMhYfAR4BFzc+ATMyFhceARUUBgcOAQceAR8BHgEVARUUBiMOAQceARUUBgcOASMiJiciBiMiJiMOASMiJicuATU0NjcuASciJj0BNDY3PgE3LgE1MDY3PgEzMhYXPgEzMhYXPgE/ATIWFx4BMRQGBx4BFx4BFREVFAYHDgEHHgEVFAYHDgEjIiYnIgYjIiYjDgEjIiYnLgE1NDY3LgEnLgE9ATQ2Nz4BNy4BNTQ2Nz4BMzIWFzI2MzIWMz4BPwEyFhceARUUBgceARceARUCAFY8PVZWPTxWAbcrHh4rKx4eKyseHisrHh4r3AcGWAQJBgwaDgICAgIJRwwEBgJCCxUMAgUGAgkGagYLAQ0LFQtDAgYDBAYCDEcDAQ0ZDQYLA1cGCAgFWQMJBgwaDQICAQMIRw0DBgNBCxYLAgYFAgoGagYKAQ0LFgpDAwYDAwYDC0cCAgwaDAYKBFcGBwFuTAkDCQUEGQEBBUACBi4EBAkEBQgEBS4FAz8FAgEaBAYIBAhNTQgECAYEGgECBT8DBS4FBAgFBAkEDBoOBAJABQEBGQQFCQMJTEwJAwkFBBkBAQVAAgYuBAQJBAUIBAUuBQM/BQIBGgQGCAQITU0IBAgGBBoBAgU/AwUuBQQIBQQJBAwaDgQCQAUBARkEBQkDCUwBtzxWVjw9VVXoHisrHh4rKwJnHiwsHh4rK9JqBQsBDgsVCxEhEAIGAwMGAgxJAgIzBQkEFS4VBggIBlgDCQYzAgICAgtEDQMFAxAgEQsYDA0BCgZqBQsBDQwVCxEgEQIGAwMGAgxJAgIzBQkEFS4VBggJBlcECQUzAgICAwpFDAMFAxEfEQwXDA0BCgb+z1AGCwkOBwk+CAECAQMmPAYBAQY8JgMBAgEHPwkHDgkLBlAHCgEIDwcIPwgDAQImOwcBAQEBESEOAiUDAQMIPwgHDwgBCgcCSVAGCgEIDwcJPggBAgEDJTsGAQEGOyUDAQIBBz8JBw8IAQoGUAcKAQgPBwg/CAECAQImOwYBARAhDwElAwECAQg/CAcPCAEKBwAAAgAAAEkEAAO3ACgASwAAARUUBiMhIiY1ETQ2MyEyFh0BFAYjISIGFREUFjMhMjY9ATQ2OwEyFhUTERQGIyImLwEBDgEjIiYvAS4BNTQ2NwEnLgE1NDYzITIWFQMlYUT+JUVgYEUBkggKCgj+biY2NiYB2yY1CwgkCAvbFg8HDQVl/owDBwQDBwNBAgQEAgF1ZQUGFg8BJA8WAaW3RGFhRAHbRGELCCQICjYm/iUmNjYmtwcLCwcB7f7cDxYGBWX+iwMDAwNBAwcDBAcCAXVlBQ0HDxYWDwAAAgAAAEkDJQNuAA8AHwAAASEiBhURFBYzITI2NRE0JhcRFAYjISImNRE0NjMhMhYCgP4lJjY2JgHbJjU1f2FE/iVFYGBFAdtEYQMlNib+JSY2NiYB2yY2XP4lRGFhRAHbRGFhAAMAJf+3A9sDtwASADAAZwAABTQmIyImNTQmIyIGFRQWMzI2NSUhJicuAScmNTQnLgEnJiMiBw4BBwYVFAcOAQcGByEUBiMhFAYjIiY1ISImNTY3PgE3NjU0Nz4BNzY3LgE1NDYzMhYVFAYHFhceARcWFRQXHgEXFhcCCQUEIjAGAwQGOyoEBf6EAuYmHB0mCQoNDTYqKTg4KSo2DQ0KCSYdHCYDTise/wBWPDxW/wAeKx8hIDUREBERPi0tOQIDIBcXIAMCOS0tPhEREBE1ICEfEgQFMCIEBQUEKTsFBKQsMzN2RENNGyAgNxITExI3ICAbTUNEdjMzLB4rPFZWPCseGycncU1NaCkpKkUZGQkFCwYXICAXBgsFCRkZRSopKWhNTXEnJxsABgAA/7cESQO3ABoANgBCAF4AeACEAAABDgEHIyImNTQ3PgE3NjMyFjMyNjcOARUUFhcBFAYjISImNTQ3PgE3NjMyFjMyNjMyFx4BFxYVARQGIyImNTQ2MzIWARQHDgEHBiMiJy4BJyY1NDc+ATc2MzIXHgEXFgUUBisBLgEnPgE1NCYnHgEzMjYzMhceARcWAxQGIyImNTQ2MzIWAVMtTh1MK0QBAQ0ODxsJUjkUJhIBARgWAmRURf4NRVQIBysmJz8PaFZVaQ4/JyYrCAf9t1Y9PFZWPD1WAZIREjsoKC0uKCg7EhEREjsoKC4tKCg7EhEBSUQrTB1OLRcYAgESJhQ6UQkcDg4NAQFJVjw9VlY9PFYBtwEmIiswESIhQxkZMAYHChIKJ0sg/pRGTk5GMDo5YiEhT08hIWI5OjAC2j1WVj08Vlb+6C0oKDwRERERPCgoLS4oKDsREhIROygorjArIiYBIEsnChIKBwYwGRlDISIBSz1WVj08VlYAAAAAAwAAAEkDbgMlAA8AHwAvAAAlFRQGIyEiJj0BNDYzITIWERUUBiMhIiY9ATQ2MyEyFhEVFAYjISImPQE0NjMhMhYDbhYP/NwPFhYPAyQPFhYP/NwPFhYPAyQPFhYP/NwPFhYPAyQPFrdJDxYWD0kPFRUBFUkPFRUPSQ8WFgEWSQ8WFg9JDxYWAAoAAABJA7cDbgAQACAAMQBBAFEAYgByAIMAlACkAAAlNTQmKwEiBh0BFBY7ATI2NT0BNCYrASIGHQEUFjsBMjYFNTQmKwEiBh0BFBY7ATI2NQE1NCYrASIGHQEUFjsBMjYFNTQmKwEiBh0BFBY7ATI2BTU0JisBIgYdARQWOwEyNjUBNTQmKwEiBh0BFBY7ATI2BTU0JisBIgYdARQWOwEyNjU9ATQmKwEiBh0BFBY7ATI2NTcRFAYjISImNRE0NjMhMhYBJQsItwcLCwe3CAsLCLcHCwsHtwgLASQKCLcICgoItwgK/twLCLcHCwsHtwgLASQKCLcICgoItwgKASULCLYICwsItggL/tsKCLcICgoItwgKASULCLYICwsItggLCwi2CAsLCLYIC0k2Jv0AJTY2JQMAJjalbQgLCwhtCAsLCNtuBwsLB24ICgrTbQgLCwhtCAsLCAG2bggKCghuBwsL1G4HCwsHbggKCtNtCAsLCG0ICwsIAbZuCAoKCG4HCwvUbgcLCwduCAoKCNtuCAoKCG4HCwsHt/2TJjY2JgJtJjY2AAABAAABAAJJAkkAFQAAARQGBwEOASMiJicBLgE1NDYzITIWFQJJBgX/AAUNBwgNBf8ABQYWDwIADxUCJQgNBf8ABQYGBQEABQ0IDxUVDwAAAAEAAADbAkkCJQAUAAABFAYjISImNTQ2NwE+ATMyFhcBHgECSRUP/gAPFgYFAQAFDQgHDQUBAAUGAQAPFhYPBw4FAQAFBgYF/wAFDgABACUAkgFuAtsAFQAAAREUBiMiJicBLgE1NDY3AT4BMzIWFQFuFg8HDQb/AAUFBQUBAAYNBw8WArf+AA8WBgUBAAUOBwcNBgEABQUVDwAAAAEAAACSAUkC2wAVAAABFAYHAQ4BIyImNRE0NjMyFhcBHgEVAUkGBf8ABQ0HDxYWDwcNBQEABQYBtwcOBf8ABQYWDwIADxUFBf8ABg0HAAAAAgAAACUCSQNJABUAKwAAARQGBwEOASMiJicBLgE1NDYzITIWFTUUBiMhIiY1NDY3AT4BMzIWFwEeARUCSQYF/wAFDQcIDQX/AAUGFg8CAA8VFQ/+AA8WBgUBAAUNCAcNBQEABQYBSQcNBv8ABQUFBQEABg0HDxYWD9wPFhYPBw0FAQAFBgYF/wAFDQcAAAAABwAAAAAEAAMlAAsAFwAtADkARQBRAG0AABM0JiMiBhUUFjMyNhM0JiMiBhUUFjMyNhc3NiYnMSYGDwEOAQcGFhcWNjc2JiclNCYjIgYVFBYzMjYBNCYjIgYVFBYzMjYFNCYjIgYVFBYzMjYXFAYHDgEjISImJy4BNTQ3PgE3NjMyFx4BFxYV2yofHisrHh8qbiseHisrHh4r9TkEDw8OGwM6IjYJDC4sLE8LCRkcAXkrHh8qKh8eK/6SKx4eKyseHisBACseHisrHh4rtykoBRAJ/N4JEAUoKSgpi11dampdXYspKAElHisrHh8rKwEfHisrHh8rK/TaDxoEAw8P2gMrIyxPCwwuLCNAFBMeKyseHysrAYwfKiofHisrTx4rKx4fKyvhSow+CAkJCD2NSmleXYsoKSkoi11eaQAAAAACABoAdQJCAq8AJABJAAAlFAYPAQ4BIyImJwEuATU0NjcBPgEzMhYfAR4BFRQGDwEXHgEVMxQGDwEOASMiJicBLgE1NDY3AT4BMzIWHwEeARUUBg8BFx4BFQFmAwIdAwcDBAcC/vUCAwMCAQsCBwQDBwMdAgMDAuHhAgPcAwMdAgcEAwcD/vYDAwMDAQoDBwMEBwIdAwMDA+HhAwOlBAcDHAMDAwMBCgMHAwQHAgELAgMDAh0CCAMDCALh4AMHAwQHAxwDAwMDAQoDBwMEBwIBCwIDAwIdAggDAwgC4eADBwMAAAACAAcAdQIvAq8AJABJAAABFAYHAQ4BIyImLwEuATU0Nj8BJy4BNTQ2PwE+ATMyFhcBHgEVMxQGBwEOASMiJi8BLgE1NDY/AScuATU0Nj8BPgEzMhYXAR4BFQFUAwP+9gMHAwQHAh0CBAQC4eECBAQCHQIHBAMHAwEKAwPbAwL+9QIHBAMHAxwDAwMD4OADAwMDHAMHAwQHAgELAgMBkgMHA/72AwMDAxwDBwQDBwPg4QIIAwMIAh0CAwMC/vUCBwQDBwP+9gMDAwMcAwcEAwcD4OECCAMDCAIdAgMDAv71AgcEAAABABoAdQFmAq8AJAAAARQGDwEXHgEVFAYPAQ4BIyImJwEuATU0NjcBPgEzMhYfAR4BFQFmAwLh4QIDAwIdAwcDBAcC/vUCAwMCAQsCBwQDBwMdAgMCgAMIAuHgAwcDBAcDHAMDAwMBCgMHAwQHAgELAgMDAh0CBwQAAAAAAQAHAHUBVAKvACQAAAEUBgcBDgEjIiYvAS4BNTQ2PwEnLgE1NDY/AT4BMzIWFwEeARUBVAMD/vYDBwMEBwIdAgQEAuHhAgQEAh0CBwQDBwMBCgMDAZIDBwP+9gMDAwMcAwcEAwcD4OECCAMDCAIdAgMDAv71AgcEAAAAAAIAAAAABEkDtwAPAC4AAAERNCYjISIGFREUFjMhMjYTERQGIyEUFhUUBiMhIiY1NDY1ISImNRE0NjMhMhYVBAALB/xtBwsLBwOTBwtJNiX+ySQVD/7bDxUk/sklNjYlA5MlNgGAAdsICwsI/iUHCwsB4v2TJjYkOg8PFhYPDzklNiYCbSY2NiYAAAAAAgAAAAADbgNuABwAOQAAASIHDgEHBhUUFx4BFxYzMjc+ATc2NTQnLgEnJiMBFAcOAQcGIyInLgEnJjU0Nz4BNzYzMTIXHgEXFgG3QDk5VBkYGBlUOTlAQDk4VRgZGRhVODlAAbcjIndQUFtbUFB3IyIiI3dQUFtbUFB3IiMC7hkYVTg5QEA5OVQZGBgZVDk5QEA5OFUYGf7JW1BQdyIjIyJ3UFBbW1BQdyIjIyJ3UFAAAAAAAQAAAAADbgNuABsAAAEUBw4BBwYjIicuAScmNTQ3PgE3NjMyFx4BFxYDbiMid1BQW1tQUHcjIiIjd1BQW1tQUHciIwG3W1BQdyIjIyJ3UFBbW1BQdyIjIyJ3UFAAAAAAAwAfAAsEKgMaABUAJgA8AAAlBwYiJwEmNDcBNjIfARYUDwEXFhQHAQMOAS8BLgE3Ez4BHwEeAQcJAQYiLwEmND8BJyY0PwE2MhcBFhQHAWEdBg8F/vUFBQELBQ8GHQUF4eEFBQFR1QINByQHBwLVAg0HJAcHAgF4/vUFDwYcBgbg4AYGHAYPBQELBQWXHAYGAQoGDwUBCwUFHQUQBeHgBg8GAmL9HgcHAgoCDQcC4gcIAgoCDgf+jP72BgYcBg8G4OEFEAUdBQX+9QUPBgAAAAIAAP+3A24DtwAIABsAAAERHgEfAR4BFwUUFjMhERQGIyEiJjURNDYzIRECSQYKBekECAT+qSAXATcgF/0AFyAgFwHJApIBDgQIBOkECwYSFyD9pRcgIBcDkhcg/skAAAUAAP+3A24DtwAIABoAKwA8AE0AAAEeARchER4BFwMhERQGIyEiJjURNDYzIREUFhM1NCYjISIGHQEUFjMhMjY1PQE0JiMhIgYdARQWMyEyNjU9ATQmIyEiBh0BFBYzITI2NQNHBAgE/vIGCgUnATcgF/0AFyAgFwHJIHIKCP5uCAsLCAGSCAoKCP5uCAsLCAGSCAoKCP5uCAsLCAGSCAoCpwQLBgEOBAgE/rn9pRcgIBcDkhcg/skXIP5cJAgKCggkCAsLCJIkCAsLCCQICgoIkiUHCwsHJQgKCggAAAAAAQAAAAADXANuADsAAAEhHgEVFAcOAQcGIyInLgEnJjU0Nz4BNzYzMhceARcWFwcuASMiBw4BBwYVFBceARcWMzI3PgE3NjcjNQG3AZ4DBB4eb05NX1tQUHcjIiIjd1BQWywpKUogIR13GVZAODIxShYVFRZKMTI4QS4tOw8PBPkB9hEjFV5PT3EgICIjd1BQW1tQUHciIwgIHhUVG3MYLBYWSzIzOToyM0sWFRQVOiEhGJcAAQAS/8kD7gOfADoAAAEUBw4BBwYjIicuAScmNTQ3PgE3NjcVBgcOAQcGFRQXHgEXFjMyNz4BNzY1NCcuAScmJzUWFx4BFxYVA+4nJ4ZaWmZmWlqGJychIHFNTVk/NTZOFhcdHWNDQkxMQkNjHR0XFk42NT9ZTU1xICEBt2ZaWoYnJycnhlpaZl1TU4IrKw2CDSAhXzs8QkxCQ2MdHR0dY0NCTEI8O18hIA2CDSsrglNTXQAABAAN/7cEhgO3ABIAJQA9AG8AAAU0JiMiJjU0JiMiBhUUFjMyNjUJAS4BIyIHDgEHBhUUBw4BBwYHBRQGIyEUBiMiJjU3IS4BJzcWFx4BFxYXExcWFAcBBiYvASY2PwEuATU2Nz4BNzY1NDc+ATc2Ny4BNTQ2MzIWFRQGBx4BFzc2FhcCUgUEIjAFBAQFOykEBf7NAfYWZFI4KSo2DQ0FBRMPDxQDBiwe/wBVPTxWVQGxMEERPwsTEy0aGhkxMAQG+9IFEAQwBQEFawYFHyEhNBEREBE+LS05AgMgFxcgAgNKax3vBg8FEgQFMCIEBQUEKTsFBAEPAbItSRMSNyAgGzczMlwqKSZrHis8VlU9STaDTjdAMjFNHB0VAxw3Bg8F/GEFAQY3Bg8FXAgTChsnJ3FNTWgpKSpFGRkJBQsGFyAgFwYLBQtMMs8FAQYAAAAAAgAAAAAEkgNuAAUACwAAJRUhETMRARMhEQkBBJL7bkkDbpL8SQEAAUlJSQNu/NsCSf4AAUkBSv62AAAABAAA/7cEAAO3ABYAKgA9AEkAAAEyFhceARclJgcOAQcGByc2Nz4BNzYzBRMWFx4BFxY3AyYnLgEnJjU0NjcFFhcWBgcGBw4BJxM2NzYmJyYnJzIWFRQGIyImNTQ2Af5Cgz1DZiD+WC0rK0gcHA+dJS0tZjg3OP5VwRQfH0wqKy2DXE9QdCEhLCcDiyEBATs5OlNDkkjoGQsMAg8PHr1IZWVISGVlA7ciIydtQBYDCwstIiEr8y0kIzEMDej+hikfICgHCAn+/g4tLYZWVmBNjzxgV1taqEhIMCcgAwFkJisrVSkpIgNlR0hlZUhHZQAAAgATAAAD7QNuAAMAaAAAATcjBwEHDgErAQczMhYXHgEPAQ4BKwEHDgErASImJy4BPwEjBw4BKwEiJicuAT8BIyImJy4BPwE+ATsBNyMiJicuAT8BPgE7ATc+ATsBMhYXHgEPATM3PgE7ATIWFx4BDwEzMhYXHgEHAjYlkSUCSCACCQe6JbIEBwMDAgIgAQoGuy4CCgaABAgDAwEBLJEuAgoGgQMIAwICASyxBQcDAgIBIAIJB7olsgQHAwMCAiABCga7LgIKB4AEBwMDAQEskS4CCgeAAwgDAgIBLLEFBwMCAgEBbpKSASCABgiSBAMECASABgi7BggEAwMJBLK7BggEAwMJBLIEAwMJBIAGCJIEAwMJBIAGCLsGCAQDBAgEsrsGCAQDBAgEsgQDBAgEAAQAAAAAA24DbgAQAEQAYQB+AAABFRQGKwEiJj0BNDY7ATIWFRMUBgcOAR0BFAYrASImPQE0Njc+ATU0JiMiBgcOAQcOASMiJi8BLgE3PgEzMTIXHgEXFhUDIgcOAQcGFRQXHgEXFjMyNz4BNzY1NCcuAScmIwEUBw4BBwYjIicuAScmNTQ3PgE3NjMxMhceARcWAfcLB1wICgoIXAcLkkMfFhoLB1wICjwfGR4zHA8eCgkUEAMHBQMFAj4GAgQjY0EjJCM5EhLSTEJDYx0dHR1jQ0JMS0NDYx0dHR1jQ0NLAbcjIndQUFtbUFB3IyIiI3dQUFtbUFB3IiMBCVsICwsIWwgKCggBHD06Eg0UDRMHCwsHJzUsDgwVFBkgCAcGFhMEAwECLwQPBjc2DQ0vHyAlAQAdHWNDQ0tMQkNjHR0dHWNDQkxLQ0NjHR3+kltQUHciIyMid1BQW1tQUHciIyMid1BQAAAAAAEAAAABAAAU8s37Xw889QALBAAAAAAA1yprLgAAAADXKmsuAAD/twSSA7cAAAAIAAIAAAAAAAAAAQAAA8D/wAAABJIAAAAABJIAAQAAAAAAAAAAAAAAAAAAADMEAAAAAAAAAAAAAAACAAAAAtsAAAO3AAAEAAAABAAARQMlAD8DbgAAA24AAANuAAADbgAABAAAAAQAAAACSQAAA7sAAAMAAGMCtwA+BAAACQSSAAAESQAABAAAAAMlAAAEAAAlBEkAAANuAAADtwAAAkkAAAJJAAABkgAlAUkAAAJJAAAEAAAAAlsAGgI3AAcBgAAaAVsABwRJAAADbgAAA24AAARJAB8DbgAAA24AAANcAAAEAAASBJIADQSSAAAENwAABAAAEwNuAAAAAAAAAAoAFAAeAHQA0AFSAZAB7ALCAwADcgQGBLYFYgWiBhoGRAZwBswG/AjUCUAJcgoGCsYLCgveDAYMLAxUDHwMxA1kDdYOSA6GDsQPCg9kD5QP/BAsEJwQ9hFQEfgSFhKOEyYT2gABAAAAMwFVAAoAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEAAgAAAAEAAAAAAAIABwAzAAEAAAAAAAMAAgAnAAEAAAAAAAQAAgBIAAEAAAAAAAUACwAGAAEAAAAAAAYAAgAtAAEAAAAAAAoAGgBOAAMAAQQJAAEABAACAAMAAQQJAAIADgA6AAMAAQQJAAMABAApAAMAAQQJAAQABABKAAMAAQQJAAUAFgARAAMAAQQJAAYABAAvAAMAAQQJAAoANABoZmEAZgBhVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwZmEAZgBhZmEAZgBhUmVndWxhcgBSAGUAZwB1AGwAYQByZmEAZgBhRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format('woff'); + font-weight: normal; + font-style: normal; +} +[class^="fa-"],[class*=" fa-"]{font-family:'fa' !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes "fa-spin"{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg);}}@keyframes "fa-spin"{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg);}} +.fa-square-o:before{content:"\f096";}.fa-user:before{content:"\f007"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before{content:"\f00d"}.fa-remove:before{content:"\f00d"}.fa-times:before{content:"\f00d"}.fa-cog:before{content:"\f013"}.fa-gear:before{content:"\f013"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-list:before{content:"\f03a"}.fa-map-marker:before{content:"\f041"}.fa-check-square-o:before{content:"\f046"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-exclamation-triangle:before{content:"\f071"}.fa-warning:before{content:"\f071"}.fa-bar-chart:before{content:"\f080"}.fa-bar-chart-o:before{content:"\f080"}.fa-cogs:before{content:"\f085"}.fa-gears:before{content:"\f085"}.fa-external-link:before{content:"\f08e"}.fa-bell-o:before{content:"\f0a2"}.fa-group:before{content:"\f0c0"}.fa-users:before{content:"\f0c0"}.fa-bars:before{content:"\f0c9"}.fa-navicon:before{content:"\f0c9"}.fa-reorder:before{content:"\f0c9"}.fa-table:before{content:"\f0ce"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-sort:before{content:"\f0dc"}.fa-unsorted:before{content:"\f0dc"}.fa-dashboard:before{content:"\f0e4"}.fa-tachometer:before{content:"\f0e4"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-desktop:before{content:"\f108"}.fa-circle-o:before{content:"\f10c"}.fa-circle:before{content:"\f111"}.fa-code:before{content:"\f121"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-google:before{content:"\f1a0"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-area-chart:before{content:"\f1fe"}.fa-chrome:before{content:"\f268"}.fa-hashtag:before{content:"\f292"}.fa-question-circle-o:before{content:"\f29c"} diff --git a/src/goaccess++/resources/css/fa.min.css.tmp b/src/goaccess++/resources/css/fa.min.css.tmp new file mode 100644 index 0000000..ef407be --- /dev/null +++ b/src/goaccess++/resources/css/fa.min.css.tmp @@ -0,0 +1 @@ +@font-face {font-family: 'fa';src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff');font-weight: normal;font-style: normal;}[class^="fa-"],[class*=" fa-"]{font-family:'fa' !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes "fa-spin"{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg);}}@keyframes "fa-spin"{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg);}}.fa-square-o:before{content:"\f096";}.fa-user:before{content:"\f007"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before{content:"\f00d"}.fa-remove:before{content:"\f00d"}.fa-times:before{content:"\f00d"}.fa-cog:before{content:"\f013"}.fa-gear:before{content:"\f013"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-list:before{content:"\f03a"}.fa-map-marker:before{content:"\f041"}.fa-check-square-o:before{content:"\f046"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-exclamation-triangle:before{content:"\f071"}.fa-warning:before{content:"\f071"}.fa-bar-chart:before{content:"\f080"}.fa-bar-chart-o:before{content:"\f080"}.fa-cogs:before{content:"\f085"}.fa-gears:before{content:"\f085"}.fa-external-link:before{content:"\f08e"}.fa-bell-o:before{content:"\f0a2"}.fa-group:before{content:"\f0c0"}.fa-users:before{content:"\f0c0"}.fa-bars:before{content:"\f0c9"}.fa-navicon:before{content:"\f0c9"}.fa-reorder:before{content:"\f0c9"}.fa-table:before{content:"\f0ce"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-sort:before{content:"\f0dc"}.fa-unsorted:before{content:"\f0dc"}.fa-dashboard:before{content:"\f0e4"}.fa-tachometer:before{content:"\f0e4"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-desktop:before{content:"\f108"}.fa-circle-o:before{content:"\f10c"}.fa-circle:before{content:"\f111"}.fa-code:before{content:"\f121"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-google:before{content:"\f1a0"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-area-chart:before{content:"\f1fe"}.fa-chrome:before{content:"\f268"}.fa-hashtag:before{content:"\f292"}.fa-question-circle-o:before{content:"\f29c"} \ No newline at end of file diff --git a/src/goaccess++/resources/js/app.js b/src/goaccess++/resources/js/app.js new file mode 100644 index 0000000..4054ae5 --- /dev/null +++ b/src/goaccess++/resources/js/app.js @@ -0,0 +1,1793 @@ +/*jshint sub:true*/ +(function () { +'use strict'; + +// Syntactic sugar +function $(selector) { + return document.querySelector(selector); +} + +// Syntactic sugar & execute callback +function $$(selector, callback) { + var elems = document.querySelectorAll(selector); + for (var i = 0; i < elems.length; ++i) { + if (callback && typeof callback == 'function') + callback.call(this, elems[i]); + } +} + +var debounce = function (func, wait, now) { + var timeout; + return function debounced () { + var that = this, args = arguments; + function delayed() { + if (!now) + func.apply(that, args); + timeout = null; + } + if (timeout) { + clearTimeout(timeout); + } else if (now) { + func.apply(obj, args); + } + timeout = setTimeout(delayed, wait || 250); + }; +}; + +// global namespace +window.GoAccess = window.GoAccess || { + initialize: function (options) { + this.opts = options; + + this.AppState = {}; // current state app key-value store + this.AppTpls = {}; // precompiled templates + this.AppCharts = {}; // holds all rendered charts + this.AppUIData = (this.opts || {}).uiData || {}; // holds panel definitions + this.AppData = (this.opts || {}).panelData || {}; // hold raw data + this.AppWSConn = (this.opts || {}).wsConnection || {}; // WebSocket connection + this.i18n = (this.opts || {}).i18n || {}; // i18n report labels + this.AppPrefs = { + 'autoHideTables': true, + 'layout': 'horizontal', + 'perPage': 7, + 'theme': 'darkPurple', + }; + this.AppPrefs = GoAccess.Util.merge(this.AppPrefs, this.opts.prefs); + + if (GoAccess.Util.hasLocalStorage()) { + var ls = JSON.parse(localStorage.getItem('AppPrefs')); + this.AppPrefs = GoAccess.Util.merge(this.AppPrefs, ls); + } + if (Object.keys(this.AppWSConn).length) + this.setWebSocket(this.AppWSConn); + + }, + + getPanelUI: function (panel) { + return panel ? this.AppUIData[panel] : this.AppUIData; + }, + + getPrefs: function (panel) { + return panel ? this.AppPrefs[panel] : this.AppPrefs; + }, + + setPrefs: function () { + if (GoAccess.Util.hasLocalStorage()) { + localStorage.setItem('AppPrefs', JSON.stringify(GoAccess.getPrefs())); + } + }, + + getPanelData: function (panel) { + return panel ? this.AppData[panel] : this.AppData; + }, + + setWebSocket: function (wsConn) { + var host = null; + host = wsConn.url ? wsConn.url : window.location.hostname ? window.location.hostname : "localhost"; + var str = /^(wss?:\/\/)?[^\/]+:[0-9]{1,5}\//.test(host + "/") ? host : String(host + ':' + wsConn.port); + str = !/^wss?:\/\//i.test(str) ? (window.location.protocol === "https:" ? 'wss://' : 'ws://') + str : str; + + var socket = new WebSocket(str); + socket.onopen = function (event) { + GoAccess.Nav.WSOpen(); + }.bind(this); + + socket.onmessage = function (event) { + this.AppState['updated'] = true; + this.AppData = JSON.parse(event.data); + this.App.renderData(); + }.bind(this); + + socket.onclose = function (event) { + GoAccess.Nav.WSClose(); + }.bind(this); + }, +}; + +// HELPERS +GoAccess.Util = { + months: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul","Aug", "Sep", "Oct", "Nov", "Dec"], + + // Add all attributes of n to o + merge: function (o, n) { + var obj = {}, i = 0, il = arguments.length, key; + for (; i < il; i++) { + for (key in arguments[i]) { + if (arguments[i].hasOwnProperty(key)) { + obj[key] = arguments[i][key]; + } + } + } + return obj; + }, + + // hash a string + hashCode: function (s) { + return (s.split('').reduce(function (a, b) { + a = ((a << 5) - a) + b.charCodeAt(0); + return a&a; + }, 0) >>> 0).toString(16); + }, + + // Format bytes to human readable + formatBytes: function (bytes, decimals, numOnly) { + if (bytes == 0) + return numOnly ? 0 : '0 Byte'; + var k = 1024; + var dm = decimals + 1 || 2; + var sizes = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB']; + var i = Math.floor(Math.log(bytes) / Math.log(k)); + return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + (numOnly ? '' : (' ' + sizes[i])); + }, + + // Validate number + isNumeric: function (n) { + return !isNaN(parseFloat(n)) && isFinite(n); + }, + + // Format microseconds to human readable + utime2str: function (usec) { + if (usec >= 864E8) + return ((usec) / 864E8).toFixed(2) + ' d'; + else if (usec >= 36E8) + return ((usec) / 36E8).toFixed(2) + ' h'; + else if (usec >= 6E7) + return ((usec) / 6E7).toFixed(2) + ' m'; + else if (usec >= 1E6) + return ((usec) / 1E6).toFixed(2) + ' s'; + else if (usec >= 1E3) + return ((usec) / 1E3).toFixed(2) + ' ms'; + return (usec).toFixed(2) + ' us'; + }, + + // Format date from 20120124 to 24/Jan/2012 + formatDate: function (str) { + var y = str.substr(0,4), m = str.substr(4,2) - 1, d = str.substr(6,2), + h = str.substr(8,2) || 0, i = str.substr(10, 2) || 0, s = str.substr(12, 2) || 0; + var date = new Date(y,m,d,h,i,s); + + var out = ('0' + date.getDate()).slice(-2) + '/' + this.months[date.getMonth()] + '/' + date.getFullYear(); + 10 <= str.length && (out += ":" + h); + 12 <= str.length && (out += ":" + i); + 14 <= str.length && (out += ":" + s); + return out; + }, + + // Format field value to human readable + fmtValue: function (value, dataType, decimals) { + var val = 0; + if (!dataType) + val = value; + + switch (dataType) { + case 'utime': + val = this.utime2str(value); + break; + case 'date': + val = this.formatDate(value); + break; + case 'numeric': + if (this.isNumeric(value)) + val = value.toLocaleString(); + break; + case 'bytes': + val = this.formatBytes(value, decimals); + break; + case 'percent': + val = parseFloat(value.replace(',', '.')).toFixed(2) + '%'; + break; + case 'time': + if (this.isNumeric(value)) + val = value.toLocaleString(); + break; + case 'secs': + val = value + ' secs'; + break; + default: + val = value; + } + + return value == 0 ? String(val) : val; + }, + + isPanelValid: function (panel) { + var data = GoAccess.getPanelData(), ui = GoAccess.getPanelUI(); + return (!ui.hasOwnProperty(panel) || !data.hasOwnProperty(panel) || !ui[panel].id); + }, + + // Attempts to extract the count from either an object or a scalar. + // e.g., item = Object {count: 14351, percent: 5.79} OR item = 4824825140 + getCount: function (item) { + if (this.isObject(item) && 'count' in item) + return item.count; + return item; + }, + + getPercent: function (item) { + if (this.isObject(item) && 'percent' in item) + return this.fmtValue(item.percent, 'percent'); + return null; + }, + + isObject: function (o) { + return o === Object(o); + }, + + setProp: function (o, s, v) { + var schema = o; + var a = s.split('.'); + for (var i = 0, n = a.length; i < n-1; ++i) { + var k = a[i]; + if (!schema[k]) + schema[k] = {}; + schema = schema[k]; + } + schema[a[n-1]] = v; + }, + + getProp: function (o, s) { + s = s.replace(/\[(\w+)\]/g, '.$1'); + s = s.replace(/^\./, ''); + var a = s.split('.'); + for (var i = 0, n = a.length; i < n; ++i) { + var k = a[i]; + if (this.isObject(o) && k in o) { + o = o[k]; + } else { + return; + } + } + return o; + }, + + hasLocalStorage: function () { + try { + localStorage.setItem('test', 'test'); + localStorage.removeItem('test'); + return true; + } catch(e) { + return false; + } + }, + + isWithinViewPort: function (el) { + var elemTop = el.getBoundingClientRect().top; + var elemBottom = el.getBoundingClientRect().bottom; + return elemTop < window.innerHeight && elemBottom >= 0; + }, +}; + +// OVERALL STATS +GoAccess.OverallStats = { + // Render each overall stats box + renderBox: function (data, ui, row, x, idx) { + var wrap = $('.wrap-general-items'); + + // create a new bootstrap row every 6 elements + if (idx % 6 == 0) { + row = document.createElement('div'); + row.setAttribute('class', 'row'); + wrap.appendChild(row); + } + + var box = document.createElement('div'); + box.innerHTML = GoAccess.AppTpls.General.items.render({ + 'id': x, + 'className': ui.items[x].className, + 'label': ui.items[x].label, + 'value': GoAccess.Util.fmtValue(data[x], ui.items[x].dataType), + }); + row.appendChild(box); + + return row; + }, + + // Render overall stats + renderData: function (data, ui) { + var idx = 0, row = null; + + $('.wrap-general').innerHTML = GoAccess.AppTpls.General.wrap.render(GoAccess.Util.merge(ui, { + 'lastUpdated': data.date_time, + 'from': data.start_date, + 'to': data.end_date, + })); + + // Iterate over general data object + for (var x in data) { + if (!data.hasOwnProperty(x) || !ui.items.hasOwnProperty(x)) + continue; + row = this.renderBox(data, ui, row, x, idx); + idx++; + } + }, + + // Render general/overall analyzed requests. + initialize: function () { + var ui = GoAccess.getPanelUI('general'); + var data = GoAccess.getPanelData('general'), i = 0; + + this.renderData(data, ui); + } +}; + +// RENDER PANELS +GoAccess.Nav = { + events: function () { + $('.nav-bars').onclick = function (e) { + e.stopPropagation(); + this.renderMenu(e); + }.bind(this); + + $('.nav-gears').onclick = function (e) { + e.stopPropagation(); + this.renderOpts(e); + }.bind(this); + + $('.nav-minibars').onclick = function (e) { + e.stopPropagation(); + this.renderOpts(e); + }.bind(this); + + $('body').onclick = function (e) { + $('nav').classList.remove('active'); + }.bind(this); + + $$('.export-json', function (item) { + item.onclick = function (e) { + this.downloadJSON(e); + }.bind(this); + }.bind(this)); + + $$('.theme-bright', function (item) { + item.onclick = function (e) { + this.setTheme('bright'); + }.bind(this); + }.bind(this)); + + $$('.theme-dark-blue', function (item) { + item.onclick = function (e) { + this.setTheme('darkBlue'); + }.bind(this); + }.bind(this)); + + $$('.theme-dark-gray', function (item) { + item.onclick = function (e) { + this.setTheme('darkGray'); + }.bind(this); + }.bind(this)); + + $$('.theme-dark-purple', function (item) { + item.onclick = function (e) { + this.setTheme('darkPurple'); + }.bind(this); + }.bind(this)); + + $$('.layout-horizontal', function (item) { + item.onclick = function (e) { + this.setLayout('horizontal'); + }.bind(this); + }.bind(this)); + + $$('.layout-vertical', function (item) { + item.onclick = function (e) { + this.setLayout('vertical'); + }.bind(this); + }.bind(this)); + + $$('[data-perpage]', function (item) { + item.onclick = function (e) { + this.setPerPage(e); + }.bind(this); + }.bind(this)); + + $$('[data-show-tables]', function (item) { + item.onclick = function (e) { + this.toggleTables(); + }.bind(this); + }.bind(this)); + + $$('[data-autohide-tables]', function (item) { + item.onclick = function (e) { + this.toggleAutoHideTables(); + }.bind(this); + }.bind(this)); + }, + + downloadJSON: function (e) { + var targ = e.currentTarget; + var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(GoAccess.getPanelData())); + targ.href = 'data:' + data; + targ.download = 'goaccess-' + (+new Date()) + '.json'; + }, + + setLayout: function (layout) { + if ('horizontal' == layout) { + $('.container').classList.add('container-fluid'); + $('.container').classList.remove('container'); + } else if ('vertical' == layout) { + $('.container-fluid').classList.add('container'); + $('.container').classList.remove('container-fluid'); + } + + GoAccess.AppPrefs['layout'] = layout; + GoAccess.setPrefs(); + + GoAccess.Panels.initialize(); + GoAccess.Charts.initialize(); + GoAccess.Tables.initialize(); + }, + + toggleAutoHideTables: function (e) { + var autoHideTables = GoAccess.Tables.autoHideTables(); + $$('.table-wrapper', function (item) { + if (autoHideTables) { + item.classList.remove('hidden-xs'); + } else { + item.classList.add('hidden-xs'); + } + }.bind(this)); + + GoAccess.AppPrefs['autoHideTables'] = !autoHideTables; + GoAccess.setPrefs(); + }, + + toggleTables: function () { + var ui = GoAccess.getPanelUI(); + var showTables = GoAccess.Tables.showTables(); + Object.keys(ui).forEach(function (panel, idx) { + if (!GoAccess.Util.isPanelValid(panel)) + ui[panel]['table'] = !showTables; + }.bind(this)); + + GoAccess.AppPrefs['showTables'] = !showTables; + GoAccess.setPrefs(); + + GoAccess.Panels.initialize(); + GoAccess.Charts.initialize(); + GoAccess.Tables.initialize(); + }, + + setTheme: function (theme) { + if (!theme) + return; + + $('html').className = ''; + switch(theme) { + case 'darkGray': + $('html').classList.add('dark'); + $('html').classList.add('gray'); + break; + case 'darkBlue': + $('html').classList.add('dark'); + $('html').classList.add('blue'); + break; + case 'darkPurple': + $('html').classList.add('dark'); + $('html').classList.add('purple'); + break; + } + GoAccess.AppPrefs['theme'] = theme; + GoAccess.setPrefs(); + }, + + getIcon: function (key) { + switch(key) { + case 'visitors' : return 'users'; + case 'requests' : return 'file'; + case 'static_requests' : return 'file-text'; + case 'not_found' : return 'file-o'; + case 'hosts' : return 'user'; + case 'os' : return 'desktop'; + case 'browsers' : return 'chrome'; + case 'visit_time' : return 'clock-o'; + case 'vhosts' : return 'th-list'; + case 'referrers' : return 'external-link'; + case 'referring_sites' : return 'external-link'; + case 'keyphrases' : return 'google'; + case 'status_codes' : return 'warning'; + case 'remote_user' : return 'users'; + case 'geolocation' : return 'map-marker'; + default : return 'pie-chart'; + } + }, + + getItems: function () { + var ui = GoAccess.getPanelUI(), menu = []; + for (var panel in ui) { + if (GoAccess.Util.isPanelValid(panel)) + continue; + // Push valid panels to our navigation array + menu.push({ + 'current': window.location.hash.substr(1) == panel, + 'head': ui[panel].head, + 'key': panel, + 'icon': this.getIcon(panel), + }); + } + return menu; + }, + + setPerPage: function (e) { + GoAccess.AppPrefs['perPage'] = +e.currentTarget.getAttribute('data-perpage'); + GoAccess.App.renderData(); + GoAccess.setPrefs(); + }, + + getTheme: function () { + return GoAccess.AppPrefs.theme || 'darkGray'; + }, + + getLayout: function () { + return GoAccess.AppPrefs.layout || 'horizontal'; + }, + + getPerPage: function () { + return GoAccess.AppPrefs.perPage || 7; + }, + + // Render left-hand side navigation options. + renderOpts: function () { + var o = {}; + o[this.getLayout()] = true; + o[this.getTheme()] = true; + o['perPage' + this.getPerPage()] = true; + o['autoHideTables'] = GoAccess.Tables.autoHideTables(); + o['showTables'] = GoAccess.Tables.showTables(); + o['labels'] = GoAccess.i18n; + + $('.nav-list').innerHTML = GoAccess.AppTpls.Nav.opts.render(o); + $('nav').classList.toggle('active'); + this.events(); + }, + + // Render left-hand side navigation given the available panels. + renderMenu: function (e) { + $('.nav-list').innerHTML = GoAccess.AppTpls.Nav.menu.render({ + 'nav': this.getItems(), + 'overall': window.location.hash.substr(1) == '', + 'labels': GoAccess.i18n, + }); + $('nav').classList.toggle('active'); + this.events(); + }, + + WSStatus: function () { + if (Object.keys(GoAccess.AppWSConn).length) + $$('.nav-ws-status', function (item) { item.style.display = 'block'; }); + }, + + WSClose: function () { + $$('.nav-ws-status', function (item) { + item.classList.remove('connected'); + item.setAttribute('title', 'Disconnected'); + }); + }, + + WSOpen: function () { + $$('.nav-ws-status', function (item) { + item.classList.add('connected'); + item.setAttribute('title', 'Connected to ' + GoAccess.AppWSConn.url); + }); + }, + + // Render left-hand side navigation given the available panels. + renderWrap: function (nav) { + $('nav').innerHTML = GoAccess.AppTpls.Nav.wrap.render(GoAccess.i18n); + }, + + // Iterate over all available panels and render each. + initialize: function () { + this.setTheme(GoAccess.AppPrefs.theme); + this.renderWrap(); + this.WSStatus(); + this.events(); + } +}; + +// RENDER PANELS +GoAccess.Panels = { + events: function () { + $$('[data-toggle=dropdown]', function (item) { + item.onclick = function (e) { + this.openOpts(e.currentTarget); + }.bind(this); + item.onblur = function (e) { + this.closeOpts(e); + }.bind(this); + }.bind(this)); + + $$('[data-plot]', function (item) { + item.onclick = function (e) { + GoAccess.Charts.redrawChart(e.currentTarget); + }.bind(this); + }.bind(this)); + + $$('[data-chart]', function (item) { + item.onclick = function (e) { + GoAccess.Charts.toggleChart(e.currentTarget); + }.bind(this); + }.bind(this)); + + $$('[data-chart-type]', function (item) { + item.onclick = function (e) { + GoAccess.Charts.setChartType(e.currentTarget); + }.bind(this); + }.bind(this)); + + $$('[data-metric]', function (item) { + item.onclick = function (e) { + GoAccess.Tables.toggleColumn(e.currentTarget); + }.bind(this); + }.bind(this)); + }, + + openOpts: function (targ) { + var panel = targ.getAttribute('data-panel'); + targ.parentElement.classList.toggle('open'); + this.renderOpts(panel); + }, + + closeOpts: function (e) { + e.currentTarget.parentElement.classList.remove('open'); + // Trigger the click event on the target if not opening another menu + if (e.relatedTarget && e.relatedTarget.getAttribute('data-toggle') !== 'dropdown') + e.relatedTarget.click(); + }, + + setPlotSelection: function (ui, prefs) { + var chartType = ((prefs || {}).plot || {}).chartType || ui.plot[0].chartType; + var metric = ((prefs || {}).plot || {}).metric || ui.plot[0].className; + + ui[chartType] = true; + for (var i = 0, len = ui.plot.length; i < len; ++i) + if (ui.plot[i].className == metric) + ui.plot[i]['selected'] = true; + }, + + setColSelection: function (items, prefs) { + var columns = (prefs || {}).columns || {}; + for (var i = 0, len = items.length; i < len; ++i) + if ((items[i].key in columns) && columns[items[i].key]['hide']) + items[i]['hide'] = true; + }, + + setChartSelection: function (ui, prefs) { + ui['showChart'] = prefs && ('chart' in prefs) ? prefs.chart : true; + }, + + setOpts: function (panel) { + var ui = JSON.parse(JSON.stringify(GoAccess.getPanelUI(panel))), prefs = GoAccess.getPrefs(panel); + // set preferences selection upon opening panel options + this.setChartSelection(ui, prefs); + this.setPlotSelection(ui, prefs); + this.setColSelection(ui.items, prefs); + return GoAccess.Util.merge(ui, {'labels': GoAccess.i18n}); + }, + + renderOpts: function (panel) { + $('.panel-opts-' + panel).innerHTML = GoAccess.AppTpls.Panels.opts.render(this.setOpts(panel)); + this.events(); + }, + + enablePrev: function (panel) { + var $pagination = $('#panel-' + panel + ' .pagination a.panel-prev'); + if ($pagination) + $pagination.parentNode.classList.remove('disabled'); + }, + + disablePrev: function (panel) { + var $pagination = $('#panel-' + panel + ' .pagination a.panel-prev'); + if ($pagination) + $pagination.parentNode.classList.add('disabled'); + }, + + enableNext: function (panel) { + var $pagination = $('#panel-' + panel + ' .pagination a.panel-next'); + if ($pagination) + $pagination.parentNode.classList.remove('disabled'); + }, + + disableNext: function (panel) { + var $pagination = $('#panel-' + panel + ' .pagination a.panel-next'); + if ($pagination) + $pagination.parentNode.classList.add('disabled'); + }, + + enableFirst: function (panel) { + var $pagination = $('#panel-' + panel + ' .pagination a.panel-first'); + if ($pagination) + $pagination.parentNode.classList.remove('disabled'); + }, + + disableFirst: function (panel) { + var $pagination = $('#panel-' + panel + ' .pagination a.panel-first'); + if ($pagination) + $pagination.parentNode.classList.add('disabled'); + }, + + enableLast: function (panel) { + var $pagination = $('#panel-' + panel + ' .pagination a.panel-last'); + if ($pagination) + $pagination.parentNode.classList.remove('disabled'); + }, + + disableLast: function (panel) { + var $pagination = $('#panel-' + panel + ' .pagination a.panel-last'); + if ($pagination) + $pagination.parentNode.classList.add('disabled'); + }, + + enablePagination: function (panel) { + this.enablePrev(panel); + this.enableNext(panel); + this.enableFirst(panel); + this.enableLast(panel); + }, + + disablePagination: function (panel) { + this.disablePrev(panel); + this.disableNext(panel); + this.disableFirst(panel); + this.disableLast(panel); + }, + + hasSubItems: function (ui, data) { + for (var i = 0, len = data.length; i < len; ++i) { + if (!data[i].items) + return (ui['hasSubItems'] = false); + if (data[i].items.length) { + return (ui['hasSubItems'] = true); + } + } + return false; + }, + + setComputedData: function (panel, ui, data) { + this.hasSubItems(ui, data.data); + GoAccess.Charts.hasChart(panel, ui); + GoAccess.Tables.hasTable(ui); + }, + + // Render the given panel given a user interface definition. + renderPanel: function (panel, ui, col) { + // set some computed values before rendering panel structure + var data = GoAccess.getPanelData(panel); + this.setComputedData(panel, ui, data); + + // per panel wrapper + var box = document.createElement('div'); + box.id = 'panel-' + panel; + box.innerHTML = GoAccess.AppTpls.Panels.wrap.render(GoAccess.Util.merge(ui, { + 'labels': GoAccess.i18n + })); + col.appendChild(box); + + // Remove pagination if not enough data for the given panel + if (data.data.length <= GoAccess.getPrefs().perPage) + this.disablePagination(panel); + GoAccess.Tables.renderThead(panel, ui); + + return col; + }, + + createCol: function (row) { + var perRow = GoAccess.AppPrefs['layout'] == 'horizontal' ? 6 : 12; + + // set the number of columns based on current layout + var col = document.createElement('div'); + col.setAttribute('class', 'col-md-' + perRow + ' wrap-panel'); + row.appendChild(col); + + return col; + }, + + createRow: function (row, idx) { + var wrap = $('.wrap-panels'); + var every = GoAccess.AppPrefs['layout'] == 'horizontal' ? 2 : 1; + + // create a new bootstrap row every one or two elements depending on + // the layout + if (idx % every == 0) { + row = document.createElement('div'); + row.setAttribute('class', 'row' + (every == 2 ? ' equal' : '')); + wrap.appendChild(row); + } + + return row; + }, + + resetPanel: function (panel) { + var ui = GoAccess.getPanelUI(), idx = 0, row = null; + var ele = $('#panel-' + panel); + + if (GoAccess.Util.isPanelValid(panel)) + return false; + + var col = ele.parentNode; + col.removeChild(ele); + // Render panel given a user interface definition + this.renderPanel(panel, ui[panel], col); + this.events(); + }, + + // Iterate over all available panels and render each panel + // structure. + renderPanels: function () { + var ui = GoAccess.getPanelUI(), idx = 0, row = null, col = null; + + $('.wrap-panels').innerHTML = ''; + for (var panel in ui) { + if (GoAccess.Util.isPanelValid(panel)) + continue; + row = this.createRow(row, idx++); + col = this.createCol(row); + // Render panel given a user interface definition + col = this.renderPanel(panel, ui[panel], col); + } + }, + + initialize: function () { + this.renderPanels(); + this.events(); + } +}; + +// RENDER CHARTS +GoAccess.Charts = { + iter: function (callback) { + Object.keys(GoAccess.AppCharts).forEach(function (panel) { + // redraw chart only if it's within the viewport + if (!GoAccess.Util.isWithinViewPort($('#panel-' + panel))) + return; + if (callback && typeof callback === 'function') + callback.call(this, GoAccess.AppCharts[panel], panel); + }); + }, + + getMetricKeys: function (panel, key) { + return GoAccess.getPanelUI(panel)['items'].map(function (a) { return a[key]; }); + }, + + getPanelData: function (panel, data) { + // Grab ui plot data for the selected panel + var plot = GoAccess.Util.getProp(GoAccess.AppState, panel + '.plot'); + + // Grab the data for the selected panel + data = data || this.processChartData(GoAccess.getPanelData(panel).data); + return plot.chartReverse ? data.reverse() : data; + }, + + drawPlot: function (panel, plotUI, data) { + var chart = this.getChart(panel, plotUI, data); + if (!chart) + return; + + this.renderChart(panel, chart, data); + GoAccess.AppCharts[panel] = null; + GoAccess.AppCharts[panel] = chart; + }, + + setChartType: function (targ) { + var panel = targ.getAttribute('data-panel'); + var type = targ.getAttribute('data-chart-type'); + + GoAccess.Util.setProp(GoAccess.AppPrefs, panel + '.plot.chartType', type); + GoAccess.setPrefs(); + + var plotUI = GoAccess.Util.getProp(GoAccess.AppState, panel + '.plot'); + // Extract data for the selected panel and process it + this.drawPlot(panel, plotUI, this.getPanelData(panel)); + }, + + toggleChart: function (targ) { + var panel = targ.getAttribute('data-panel'); + var prefs = GoAccess.getPrefs(panel), + chart = prefs && ('chart' in prefs) ? prefs.chart : true; + + GoAccess.Util.setProp(GoAccess.AppPrefs, panel + '.chart', !chart); + GoAccess.setPrefs(); + + GoAccess.Panels.resetPanel(panel); + GoAccess.Charts.resetChart(panel); + GoAccess.Tables.renderFullTable(panel); + }, + + hasChart: function (panel, ui) { + var prefs = GoAccess.getPrefs(panel), + chart = prefs && ('chart' in prefs) ? prefs.chart : true; + ui['chart'] = ui.plot.length && chart && chart; + }, + + // Redraw a chart upon selecting a metric. + redrawChart: function (targ) { + var plot = targ.getAttribute('data-plot'); + var panel = targ.getAttribute('data-panel'); + var ui = GoAccess.getPanelUI(panel); + var plotUI = ui.plot; + + GoAccess.Util.setProp(GoAccess.AppPrefs, panel + '.plot.metric', plot); + GoAccess.setPrefs(); + + // Iterate over plot user interface definition + for (var x in plotUI) { + if (!plotUI.hasOwnProperty(x) || plotUI[x].className != plot) + continue; + + GoAccess.Util.setProp(GoAccess.AppState, panel + '.plot', plotUI[x]); + // Extract data for the selected panel and process it + this.drawPlot(panel, plotUI[x], this.getPanelData(panel)); + break; + } + }, + + // Iterate over the item properties and and extract the count value. + extractCount: function (item) { + var o = {}; + for (var prop in item) + o[prop] = GoAccess.Util.getCount(item[prop]); + return o; + }, + + // Extract an array of objects that D3 can consume to process the chart. + // e.g., o = Object {hits: 37402, visitors: 6949, bytes: + // 505881789, avgts: 118609, cumts: 4436224010…} + processChartData: function (data) { + var out = []; + for (var i = 0; i < data.length; ++i) + out.push(this.extractCount(data[i])); + return out; + }, + + findUIItem: function (panel, key) { + var items = GoAccess.getPanelUI(panel).items, o = {}; + for (var i = 0; i < items.length; ++i) { + if (items[i].key == key) + return items[i]; + } + return null; + }, + + getXKey: function (datum, key) { + var arr = []; + if (typeof key === 'string') + return datum[key]; + for (var prop in key) + arr.push(datum[key[prop]]); + return arr.join(' '); + }, + + getAreaSpline: function (panel, plotUI, data) { + var dualYaxis = plotUI['d3']['y1']; + + var chart = AreaChart(dualYaxis) + .labels({ + y0: plotUI['d3']['y0'].label, + y1: dualYaxis ? plotUI['d3']['y1'].label : '' + }) + .x(function (d) { + if ((((plotUI || {}).d3 || {}).x || {}).key) + return this.getXKey(d, plotUI['d3']['x']['key']); + return d.data; + }.bind(this)) + .y0(function (d) { + return +d[plotUI['d3']['y0']['key']]; + }) + .width($("#chart-" + panel).getBoundingClientRect().width) + .height(175) + .format({ + x: (this.findUIItem(panel, 'data') || {}).dataType || null, + y0: ((plotUI.d3 || {}).y0 || {}).format, + y1: ((plotUI.d3 || {}).y1 || {}).format, + }) + .opts(plotUI); + + dualYaxis && chart.y1(function (d) { + return +d[plotUI['d3']['y1']['key']]; + }); + + return chart; + }, + + getVBar: function (panel, plotUI, data) { + var dualYaxis = plotUI['d3']['y1']; + + var chart = BarChart(dualYaxis) + .labels({ + y0: plotUI['d3']['y0'].label, + y1: dualYaxis ? plotUI['d3']['y1'].label : '' + }) + .x(function (d) { + if ((((plotUI || {}).d3 || {}).x || {}).key) + return this.getXKey(d, plotUI['d3']['x']['key']); + return d.data; + }.bind(this)) + .y0(function (d) { + return +d[plotUI['d3']['y0']['key']]; + }) + .width($("#chart-" + panel).getBoundingClientRect().width) + .height(175) + .format({ + x: (this.findUIItem(panel, 'data') || {}).dataType || null, + y0: ((plotUI.d3 || {}).y0 || {}).format, + y1: ((plotUI.d3 || {}).y1 || {}).format, + }) + .opts(plotUI); + + dualYaxis && chart.y1(function (d) { + return +d[plotUI['d3']['y1']['key']]; + }); + + return chart; + }, + + getChartType: function (panel) { + var ui = GoAccess.getPanelUI(panel); + if (!ui.chart) + return ''; + + return GoAccess.Util.getProp(GoAccess.getPrefs(), panel + '.plot.chartType') || ui.plot[0].chartType; + }, + + getPlotUI: function (panel, ui) { + var metric = GoAccess.Util.getProp(GoAccess.getPrefs(), panel + '.plot.metric'); + if (!metric) + return ui.plot[0]; + return ui.plot.filter(function (v) { + return v.className == metric; + })[0]; + }, + + getChart: function (panel, plotUI, data) { + var chart = null; + + // Render given its type + switch (this.getChartType(panel)) { + case 'area-spline': + chart = this.getAreaSpline(panel, plotUI, data); + break; + case 'bar': + chart = this.getVBar(panel, plotUI, data); + break; + } + + return chart; + }, + + renderChart: function (panel, chart, data) { + // remove popup + d3.select('#chart-' + panel + '>.chart-tooltip-wrap') + .remove(); + // remove svg + d3.select('#chart-' + panel).select('svg') + .remove(); + // add chart to the document + d3.select("#chart-" + panel) + .datum(data) + .call(chart) + .append("div").attr("class", "chart-tooltip-wrap"); + }, + + addChart: function (panel, ui) { + var plotUI = null, chart = null; + + // Ensure it has a plot definition + if (!ui.plot || !ui.plot.length) + return; + + plotUI = this.getPlotUI(panel, ui); + // set ui plot data + GoAccess.Util.setProp(GoAccess.AppState, panel + '.plot', plotUI); + + // Grab the data for the selected panel + var data = this.getPanelData(panel); + if (!(chart = this.getChart(panel, plotUI, data))) + return; + + this.renderChart(panel, chart, data); + GoAccess.AppCharts[panel] = chart; + }, + + // Render all charts for the applicable panels. + renderCharts: function (ui) { + for (var panel in ui) { + if (!ui.hasOwnProperty(panel)) + continue; + this.addChart(panel, ui[panel]); + } + }, + + resetChart: function (panel) { + var ui = {}; + if (GoAccess.Util.isPanelValid(panel)) + return false; + + ui = GoAccess.getPanelUI(panel); + this.addChart(panel, ui); + }, + + // Reload (doesn't redraw) the given chart's data + reloadChart: function (chart, panel) { + var subItems = GoAccess.Tables.getSubItemsData(panel); + var data = (subItems.length ? subItems : GoAccess.getPanelData(panel).data).slice(0); + + d3.select("#chart-" + panel) + .datum(this.processChartData(this.getPanelData(panel, data))) + .call(chart.width($("#chart-" + panel).offsetWidth)); + }, + + // Reload (doesn't redraw) all chart's data + reloadCharts: function () { + this.iter(function (chart, panel) { + this.reloadChart(chart, panel); + }.bind(this)); + GoAccess.AppState.updated = false; + }, + + // Only redraw charts with current data + redrawCharts: function () { + this.iter(function (chart, panel) { + d3.select("#chart-" + panel).call(chart.width($("#chart-" + panel).offsetWidth)); + }); + }, + + initialize: function () { + this.renderCharts(GoAccess.getPanelUI()); + + // reload on scroll & redraw on resize + d3.select(window).on('scroll.charts', debounce(function () { + this.reloadCharts(); + }, 250, false).bind(this)).on('resize.charts', function () { + this.redrawCharts(); + }.bind(this)); + } +}; + +// RENDER TABLES +GoAccess.Tables = { + chartData: {}, // holds all panel sub items data that feeds the chart + + events: function () { + $$('.panel-next', function (item) { + item.onclick = function (e) { + var panel = e.currentTarget.getAttribute('data-panel'); + this.renderTable(panel, this.nextPage(panel)); + }.bind(this); + }.bind(this)); + + $$('.panel-prev', function (item) { + item.onclick = function (e) { + var panel = e.currentTarget.getAttribute('data-panel'); + this.renderTable(panel, this.prevPage(panel)); + }.bind(this); + }.bind(this)); + + $$('.panel-first', function (item) { + item.onclick = function (e) { + var panel = e.currentTarget.getAttribute('data-panel'); + this.renderTable(panel, "FIRST_PAGE"); + }.bind(this); + }.bind(this)); + + $$('.panel-last', function (item) { + item.onclick = function (e) { + var panel = e.currentTarget.getAttribute('data-panel'); + this.renderTable(panel, "LAST_PAGE"); + }.bind(this); + }.bind(this)); + + $$('.expandable>td', function (item) { + item.onclick = function (e) { + if (!window.getSelection().toString()) + this.toggleRow(e.currentTarget); + }.bind(this); + }.bind(this)); + + $$('.row-expandable.clickable', function (item) { + item.onclick = function (e) { + this.toggleRow(e.currentTarget); + }.bind(this); + }.bind(this)); + + $$('.sortable', function (item) { + item.onclick = function (e) { + this.sortColumn(e.currentTarget); + }.bind(this); + }.bind(this)); + }, + + toggleColumn: function (targ) { + var panel = targ.getAttribute('data-panel'); + var metric = targ.getAttribute('data-metric'); + + var columns = (GoAccess.getPrefs(panel) || {}).columns || {}; + if (metric in columns) { + delete columns[metric]; + } else { + GoAccess.Util.setProp(columns, metric + '.hide', true); + } + + GoAccess.Util.setProp(GoAccess.AppPrefs, panel + '.columns', columns); + GoAccess.setPrefs(); + + GoAccess.Tables.renderThead(panel, GoAccess.getPanelUI(panel)); + GoAccess.Tables.renderFullTable(panel); + }, + + sortColumn: function (ele) { + var field = ele.getAttribute('data-key'); + var order = ele.getAttribute('data-order'); + var panel = ele.parentElement.parentElement.parentElement.getAttribute('data-panel'); + + order = order ? 'asc' == order ? 'desc' : 'asc' : 'asc'; + GoAccess.App.sortData(panel, field, order); + GoAccess.Util.setProp(GoAccess.AppState, panel + '.sort', { + 'field': field, + 'order': order, + }); + this.renderThead(panel, GoAccess.getPanelUI(panel)); + this.renderTable(panel, this.getCurPage(panel)); + + GoAccess.Charts.reloadChart(GoAccess.AppCharts[panel], panel); + }, + + getDataByKey: function (panel, key) { + var data = GoAccess.getPanelData(panel).data; + for (var i = 0, n = data.length; i < n; ++i) { + if (GoAccess.Util.hashCode(data[i].data) == key) + return data[i]; + } + return null; + }, + + getSubItemsData: function (panel) { + var out = [], items = this.chartData[panel]; + for (var x in items) { + if (!items.hasOwnProperty(x)) + continue; + out = out.concat(items[x]); + } + return out; + }, + + addChartData: function (panel, key) { + var data = this.getDataByKey(panel, key); + var path = panel + '.' + key; + + if (!data || !data.items) + return []; + GoAccess.Util.setProp(this.chartData, path, data.items); + + return this.getSubItemsData(panel); + }, + + removeChartData: function (panel, key) { + if (GoAccess.Util.getProp(this.chartData, panel + '.' + key)) + delete this.chartData[panel][key]; + + if (!this.chartData[panel] || Object.keys(this.chartData[panel]).length == 0) + return GoAccess.getPanelData(panel).data; + + return this.getSubItemsData(panel); + }, + + isExpanded: function (panel, key) { + var path = panel + '.expanded.' + key; + return GoAccess.Util.getProp(GoAccess.AppState, path); + }, + + toggleExpanded: function (panel, key) { + var path = panel + '.expanded.' + key, ret = true; + + if (this.isExpanded(panel, key)) { + delete GoAccess.AppState[panel]['expanded'][key]; + } else { + GoAccess.Util.setProp(GoAccess.AppState, path, true), ret = false; + } + + return ret; + }, + + // Toggle children rows + toggleRow: function (ele) { + var hide = false, data = []; + var row = ele.parentNode; + var panel = row.getAttribute('data-panel'), key = row.getAttribute('data-key'); + var plotUI = GoAccess.AppCharts[panel].opts(); + + hide = this.toggleExpanded(panel, key); + this.renderTable(panel, this.getCurPage(panel)); + if (!plotUI.redrawOnExpand) + return; + + if (!hide) { + data = GoAccess.Charts.processChartData(this.addChartData(panel, key)); + } else { + data = GoAccess.Charts.processChartData(this.removeChartData(panel, key)); + } + GoAccess.Charts.drawPlot(panel, plotUI, data); + }, + + // Get current panel page + getCurPage: function (panel) { + return GoAccess.Util.getProp(GoAccess.AppState, panel + '.curPage') || 0; + }, + + // Page offset. + // e.g., Return Value: 11, curPage: 2 + pageOffSet: function (panel) { + return ((this.getCurPage(panel) - 1) * GoAccess.getPrefs().perPage); + }, + + // Get total number of pages given the number of items on array + getTotalPages: function (dataItems) { + return Math.ceil(dataItems.length / GoAccess.getPrefs().perPage); + }, + + // Get a shallow copy of a portion of the given data array and the + // current page. + getPage: function (panel, dataItems, page) { + var totalPages = this.getTotalPages(dataItems); + if (page < 1) + page = 1; + if (page > totalPages) + page = totalPages; + + GoAccess.Util.setProp(GoAccess.AppState, panel + '.curPage', page); + var start = this.pageOffSet(panel); + var end = start + GoAccess.getPrefs().perPage; + + return dataItems.slice(start, end); + }, + + // Get previous page + prevPage: function (panel) { + return this.getCurPage(panel) - 1; + }, + + // Get next page + nextPage: function (panel) { + return this.getCurPage(panel) + 1; + }, + + getMetaValue: function (ui, value) { + if ('meta' in ui) + return value[ui.meta]; + return null; + }, + + getMetaCell: function (ui, value) { + var val = this.getMetaValue(ui, value); + var max = (value || {}).max; + var min = (value || {}).min; + + // use metaType if exist else fallback to dataType + var vtype = ui.metaType || ui.dataType; + var className = ui.className || ''; + className += ui.dataType != 'string' ? 'text-right' : ''; + return { + 'className': className, + 'max' : max != undefined ? GoAccess.Util.fmtValue(max, vtype) : null, + 'min' : min != undefined ? GoAccess.Util.fmtValue(min, vtype) : null, + 'value' : val != undefined ? GoAccess.Util.fmtValue(val, vtype) : null, + 'title' : ui.meta, + 'label' : ui.metaLabel || null, + }; + }, + + hideColumn: function (panel, col) { + var columns = (GoAccess.getPrefs(panel) || {}).columns || {}; + return ((col in columns) && columns[col]['hide']); + }, + + showTables: function () { + return ('showTables' in GoAccess.getPrefs()) ? GoAccess.getPrefs().showTables : true; + }, + + autoHideTables: function () { + return ('autoHideTables' in GoAccess.getPrefs()) ? GoAccess.getPrefs().autoHideTables : true; + }, + + hasTable: function (ui) { + ui['table'] = this.showTables(); + ui['autoHideTables'] = this.autoHideTables(); + }, + + renderMetaRow: function (panel, ui) { + // find the table to set + var table = $('.table-' + panel + ' tbody.tbody-meta'); + if (!table) + return; + + var cells = [], uiItems = ui.items; + var data = GoAccess.getPanelData(panel).metadata; + for (var i = 0; i < uiItems.length; ++i) { + var item = uiItems[i]; + if (this.hideColumn(panel, item.key)) + continue; + var value = data[item.key]; + cells.push(this.getMetaCell(item, value)); + } + + table.innerHTML = GoAccess.AppTpls.Tables.meta.render({ + row: [{ + 'hasSubItems': ui.hasSubItems, + 'cells': cells + }] + }); + }, + + // Iterate over user interface definition properties + iterUIItems: function (panel, uiItems, dataItems, callback) { + var out = []; + for (var i = 0; i < uiItems.length; ++i) { + var uiItem = uiItems[i]; + if (this.hideColumn(panel, uiItem.key)) + continue; + // Data for the current user interface property. + // e.g., dataItem = Object {count: 13949, percent: 5.63} + var dataItem = dataItems[uiItem.key]; + // Apply the callback and push return data to output array + if (callback && typeof callback == 'function') { + var ret = callback.call(this, panel, uiItem, dataItem); + if (ret) out.push(ret); + } + } + return out; + }, + + // Return an object that can be consumed by the table template given a user + // interface definition and a cell value object. + // e.g., value = Object {count: 14351, percent: 5.79} + getObjectCell: function (panel, ui, value) { + var className = ui.className || ''; + className += ui.dataType != 'string' ? 'text-right' : ''; + return { + 'className': className, + 'percent': GoAccess.Util.getPercent(value), + 'value': GoAccess.Util.fmtValue(GoAccess.Util.getCount(value), ui.dataType) + }; + }, + + // Given a data item object, set all the row cells and return a + // table row that the template can consume. + renderRow: function (panel, callback, ui, dataItem, idx, subItem, parentId, expanded) { + var shadeParent = ((!subItem && idx % 2 != 0) ? 'shaded' : ''); + var shadeChild = ((parentId % 2 != 0) ? 'shaded' : ''); + return { + 'panel' : panel, + 'idx' : !subItem && (String((idx + 1) + this.pageOffSet(panel))), + 'key' : !subItem ? GoAccess.Util.hashCode(dataItem.data) : '', + 'expanded' : !subItem && expanded, + 'parentId' : subItem ? String(parentId) : '', + 'className' : subItem ? 'child ' + shadeChild : 'parent ' + shadeParent, + 'hasSubItems' : ui.hasSubItems, + 'items' : dataItem.items ? dataItem.items.length : 0, + 'cells' : callback.call(this), + }; + }, + + renderRows: function (rows, panel, ui, dataItems, subItem, parentId) { + subItem = subItem || false; + // no data rows + if (dataItems.length == 0 && ui.items.length) { + rows.push({ + cells: [{ + className: 'text-center', + colspan: ui.items.length + 1, + value: 'No data on this panel.' + }] + }); + } + + // Iterate over all data items for the given panel and + // generate a table row per date item. + var cellcb = null; + for (var i = 0; i < dataItems.length; ++i) { + var dataItem = dataItems[i], data = null, expanded = false; + switch(typeof dataItem) { + case 'string': + data = dataItem; + cellcb = function () { + return { + 'colspan': ui.items.length, + 'value': data + }; + }; + break; + default: + data = dataItem.data; + cellcb = this.iterUIItems.bind(this, panel, ui.items, dataItem, this.getObjectCell.bind(this)); + } + + expanded = this.isExpanded(panel, GoAccess.Util.hashCode(data)); + rows.push(this.renderRow(panel, cellcb, ui, dataItem, i, subItem, parentId, expanded)); + if (dataItem.items && dataItem.items.length && expanded) { + this.renderRows(rows, panel, ui, dataItem.items, true, i, expanded); + } + } + }, + + // Entry point to render all data rows into the table + renderDataRows: function (panel, ui, dataItems, page) { + // find the table to set + var table = $('.table-' + panel + ' tbody.tbody-data'); + if (!table) + return; + + dataItems = this.getPage(panel, dataItems, page); + var rows = []; + this.renderRows(rows, panel, ui, dataItems); + if (rows.length == 0) + return; + + table.innerHTML = GoAccess.AppTpls.Tables.data.render({ + rows: rows + }); + }, + + togglePagination: function (panel, page, dataItems) { + GoAccess.Panels.enablePagination(panel); + // Disable pagination next button if last page is reached + if (page >= this.getTotalPages(dataItems)) { + GoAccess.Panels.disableNext(panel); + GoAccess.Panels.disableLast(panel); + } + if (page <= 1) { + GoAccess.Panels.disablePrev(panel); + GoAccess.Panels.disableFirst(panel); + } + }, + + renderTable: function (panel, page) { + var dataItems = GoAccess.getPanelData(panel).data; + var ui = GoAccess.getPanelUI(panel); + + if (page === "LAST_PAGE") { + page = this.getTotalPages(dataItems); + } else if (page === "FIRST_PAGE") { + page = 1; + } + + this.togglePagination(panel, page, dataItems); + // Render data rows + this.renderDataRows(panel, ui, dataItems, page); + this.events(); + }, + + renderFullTable: function (panel) { + var ui = GoAccess.getPanelUI(panel), page = 0; + // panel's data + var data = GoAccess.getPanelData(panel); + // render meta data + if (data.hasOwnProperty('metadata')) + this.renderMetaRow(panel, ui); + + // render actual data + if (data.hasOwnProperty('data')) { + page = this.getCurPage(panel); + this.togglePagination(panel, page, data.data); + this.renderDataRows(panel, ui, data.data, page); + } + }, + + // Iterate over all panels and determine which ones should contain + // a data table. + renderTables: function (force) { + var ui = GoAccess.getPanelUI(); + for (var panel in ui) { + if (GoAccess.Util.isPanelValid(panel) || !this.showTables()) + continue; + if (force || GoAccess.Util.isWithinViewPort($('#panel-' + panel))) + this.renderFullTable(panel); + } + }, + + // Given a UI panel definition, make a copy of it and assign the sort + // fields to the template object to render + sort2Tpl: function (panel, ui) { + var uiClone = JSON.parse(JSON.stringify(ui)), out = []; + var sort = GoAccess.Util.getProp(GoAccess.AppState, panel + '.sort'); + + for (var i = 0, len = uiClone.items.length; i < len; ++i) { + var item = uiClone.items[i]; + if (this.hideColumn(panel, item.key)) + continue; + + item['sort'] = false; + if (item.key == sort.field && sort.order) { + item['sort'] = true; + item[sort.order.toLowerCase()] = true; + } + out.push(item); + } + uiClone.items = out; + + return uiClone; + }, + + renderThead: function (panel, ui) { + var $thead = $('.table-' + panel + '>thead'), $colgroup = $('.table-' + panel + '>colgroup'); + if ($thead && $colgroup && this.showTables()) { + ui = this.sort2Tpl(panel, ui); + + $thead.innerHTML = GoAccess.AppTpls.Tables.head.render(ui); + $colgroup.innerHTML = GoAccess.AppTpls.Tables.colgroup.render(ui); + } + }, + + reloadTables: function () { + this.renderTables(false); + this.events(); + }, + + initialize: function () { + this.renderTables(true); + this.events(); + + // redraw on scroll + d3.select(window).on('scroll.tables', debounce(function () { + this.reloadTables(); + }, 250, false).bind(this)); + }, +}; + +// Main App +GoAccess.App = { + hasFocus: true, + + tpl: function (tpl) { + return Hogan.compile(tpl); + }, + + setTpls: function () { + GoAccess.AppTpls = { + 'Nav': { + 'wrap': this.tpl($('#tpl-nav-wrap').innerHTML), + 'menu': this.tpl($('#tpl-nav-menu').innerHTML), + 'opts': this.tpl($('#tpl-nav-opts').innerHTML), + }, + 'Panels': { + 'wrap': this.tpl($('#tpl-panel').innerHTML), + 'opts': this.tpl($('#tpl-panel-opts').innerHTML), + }, + 'General': { + 'wrap': this.tpl($('#tpl-general').innerHTML), + 'items': this.tpl($('#tpl-general-items').innerHTML), + }, + 'Tables': { + 'colgroup': this.tpl($('#tpl-table-colgroup').innerHTML), + 'head': this.tpl($('#tpl-table-thead').innerHTML), + 'meta': this.tpl($('#tpl-table-row-meta').innerHTML), + 'data': this.tpl($('#tpl-table-row').innerHTML), + }, + }; + }, + + sortField: function (o, field) { + var f = o[field]; + if (GoAccess.Util.isObject(f) && (f !== null)) + f = o[field].count; + return f; + }, + + sortData: function (panel, field, order) { + // panel's data + var panelData = GoAccess.getPanelData(panel).data; + panelData.sort(function (a, b) { + a = this.sortField(a, field); + b = this.sortField(b, field); + + if (typeof a === 'string' && typeof b === 'string') + return 'asc' == order ? a.localeCompare(b) : b.localeCompare(a); + return 'asc' == order ? a - b : b - a; + }.bind(this)); + }, + + setInitSort: function () { + var ui = GoAccess.getPanelUI(); + for (var panel in ui) { + if (GoAccess.Util.isPanelValid(panel)) + continue; + GoAccess.Util.setProp(GoAccess.AppState, panel + '.sort', ui[panel].sort); + } + }, + + // Verify if we need to sort panels upon data re-entry + verifySort: function () { + var ui = GoAccess.getPanelUI(); + for (var panel in ui) { + if (GoAccess.Util.isPanelValid(panel)) + continue; + var sort = GoAccess.Util.getProp(GoAccess.AppState, panel + '.sort'); + // do not sort panels if they still hold the same sort properties + if (JSON.stringify(sort) === JSON.stringify(ui[panel].sort)) + continue; + this.sortData(panel, sort.field, sort.order); + } + }, + + initDom: function () { + $('nav').classList.remove('hide'); + $('.container').classList.remove('hide'); + $('.spinner').classList.add('hide'); + + if (GoAccess.AppPrefs['layout'] == 'horizontal') { + $('.container').classList.add('container-fluid'); + $('.container-fluid').classList.remove('container'); + } + }, + + renderData: function () { + // update data and charts if tab/document has focus + if (!this.hasFocus) + return; + + this.verifySort(); + GoAccess.OverallStats.initialize(); + + // do not rerender tables/charts if data hasn't changed + if (!GoAccess.AppState.updated) + return; + + GoAccess.Charts.reloadCharts(); + GoAccess.Tables.reloadTables(); + }, + + initialize: function () { + this.setInitSort(); + this.setTpls(); + GoAccess.Nav.initialize(); + this.initDom(); + GoAccess.OverallStats.initialize(); + GoAccess.Panels.initialize(); + GoAccess.Charts.initialize(); + GoAccess.Tables.initialize(); + }, +}; + +// Adds the visibilitychange EventListener +document.addEventListener('visibilitychange', function () { + // fires when user switches tabs, apps, etc. + if (document.visibilityState === 'hidden') + GoAccess.App.hasFocus = false; + + // fires when app transitions from hidden or user returns to the app/tab. + if (document.visibilityState === 'visible') { + var hasFocus = GoAccess.App.hasFocus; + GoAccess.App.hasFocus = true; + hasFocus || GoAccess.App.renderData(); + } +}); + +// Init app +window.onload = function () { + GoAccess.initialize({ + 'i18n': window.json_i18n, + 'uiData': window.user_interface, + 'panelData': window.json_data, + 'wsConnection': window.connection || null, + 'prefs': window.html_prefs || {}, + }); + GoAccess.App.initialize(); +}; +}()); diff --git a/src/goaccess++/resources/js/app.js.tmp b/src/goaccess++/resources/js/app.js.tmp new file mode 100644 index 0000000..1e71e4c --- /dev/null +++ b/src/goaccess++/resources/js/app.js.tmp @@ -0,0 +1 @@ +/*jshint sub:true*/(function () {'use strict';function $(selector) {return document.querySelector(selector);}function $$(selector, callback) {var elems = document.querySelectorAll(selector);for (var i = 0; i < elems.length; ++i) {if (callback && typeof callback == 'function')callback.call(this, elems[i]);}}var debounce = function (func, wait, now) {var timeout;return function debounced () {var that = this, args = arguments;function delayed() {if (!now)func.apply(that, args);timeout = null;}if (timeout) {clearTimeout(timeout);} else if (now) {func.apply(obj, args);}timeout = setTimeout(delayed, wait || 250);};};window.GoAccess = window.GoAccess || {initialize: function (options) {this.opts = options;this.AppState = {};this.AppTpls = {};this.AppCharts = {};this.AppUIData = (this.opts || {}).uiData || {};this.AppData = (this.opts || {}).panelData || {};this.AppWSConn = (this.opts || {}).wsConnection || {};this.i18n = (this.opts || {}).i18n || {};this.AppPrefs = {'autoHideTables': true,'layout': 'horizontal','perPage': 7,'theme': 'darkPurple',};this.AppPrefs = GoAccess.Util.merge(this.AppPrefs, this.opts.prefs);if (GoAccess.Util.hasLocalStorage()) {var ls = JSON.parse(localStorage.getItem('AppPrefs'));this.AppPrefs = GoAccess.Util.merge(this.AppPrefs, ls);}if (Object.keys(this.AppWSConn).length)this.setWebSocket(this.AppWSConn);},getPanelUI: function (panel) {return panel ? this.AppUIData[panel] : this.AppUIData;},getPrefs: function (panel) {return panel ? this.AppPrefs[panel] : this.AppPrefs;},setPrefs: function () {if (GoAccess.Util.hasLocalStorage()) {localStorage.setItem('AppPrefs', JSON.stringify(GoAccess.getPrefs()));}},getPanelData: function (panel) {return panel ? this.AppData[panel] : this.AppData;},setWebSocket: function (wsConn) {var host = null;host = wsConn.url ? wsConn.url : window.location.hostname ? window.location.hostname : "localhost";var str = /^(wss?:\/\/)?[^\/]+:[0-9]{1,5}\//.test(host + "/") ? host : String(host + ':' + wsConn.port);str = !/^wss?:\/\//i.test(str) ? (window.location.protocol === "https:" ? 'wss://' : 'ws://') + str : str;var socket = new WebSocket(str);socket.onopen = function (event) {GoAccess.Nav.WSOpen();}.bind(this);socket.onmessage = function (event) {this.AppState['updated'] = true;this.AppData = JSON.parse(event.data);this.App.renderData();}.bind(this);socket.onclose = function (event) {GoAccess.Nav.WSClose();}.bind(this);},};GoAccess.Util = {months: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul","Aug", "Sep", "Oct", "Nov", "Dec"],merge: function (o, n) {var obj = {}, i = 0, il = arguments.length, key;for (; i < il; i++) {for (key in arguments[i]) {if (arguments[i].hasOwnProperty(key)) {obj[key] = arguments[i][key];}}}return obj;},hashCode: function (s) {return (s.split('').reduce(function (a, b) {a = ((a << 5) - a) + b.charCodeAt(0);return a&a;}, 0) >>> 0).toString(16);},formatBytes: function (bytes, decimals, numOnly) {if (bytes == 0)return numOnly ? 0 : '0 Byte';var k = 1024;var dm = decimals + 1 || 2;var sizes = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB'];var i = Math.floor(Math.log(bytes) / Math.log(k));return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + (numOnly ? '' : (' ' + sizes[i]));},isNumeric: function (n) {return !isNaN(parseFloat(n)) && isFinite(n);},utime2str: function (usec) {if (usec >= 864E8)return ((usec) / 864E8).toFixed(2) + ' d';else if (usec >= 36E8)return ((usec) / 36E8).toFixed(2) + ' h';else if (usec >= 6E7)return ((usec) / 6E7).toFixed(2) + ' m';else if (usec >= 1E6)return ((usec) / 1E6).toFixed(2) + ' s';else if (usec >= 1E3)return ((usec) / 1E3).toFixed(2) + ' ms';return (usec).toFixed(2) + ' us';},formatDate: function (str) {var y = str.substr(0,4), m = str.substr(4,2) - 1, d = str.substr(6,2),h = str.substr(8,2) || 0, i = str.substr(10, 2) || 0, s = str.substr(12, 2) || 0;var date = new Date(y,m,d,h,i,s);var out = ('0' + date.getDate()).slice(-2) + '/' + this.months[date.getMonth()] + '/' + date.getFullYear();10 <= str.length && (out += ":" + h);12 <= str.length && (out += ":" + i);14 <= str.length && (out += ":" + s);return out;},fmtValue: function (value, dataType, decimals) {var val = 0;if (!dataType)val = value;switch (dataType) {case 'utime':val = this.utime2str(value);break;case 'date':val = this.formatDate(value);break;case 'numeric':if (this.isNumeric(value))val = value.toLocaleString();break;case 'bytes':val = this.formatBytes(value, decimals);break;case 'percent':val = parseFloat(value.replace(',', '.')).toFixed(2) + '%';break;case 'time':if (this.isNumeric(value))val = value.toLocaleString();break;case 'secs':val = value + ' secs';break;default:val = value;}return value == 0 ? String(val) : val;},isPanelValid: function (panel) {var data = GoAccess.getPanelData(), ui = GoAccess.getPanelUI();return (!ui.hasOwnProperty(panel) || !data.hasOwnProperty(panel) || !ui[panel].id);},getCount: function (item) {if (this.isObject(item) && 'count' in item)return item.count;return item;},getPercent: function (item) {if (this.isObject(item) && 'percent' in item)return this.fmtValue(item.percent, 'percent');return null;},isObject: function (o) {return o === Object(o);},setProp: function (o, s, v) {var schema = o;var a = s.split('.');for (var i = 0, n = a.length; i < n-1; ++i) {var k = a[i];if (!schema[k])schema[k] = {};schema = schema[k];}schema[a[n-1]] = v;},getProp: function (o, s) {s = s.replace(/\[(\w+)\]/g, '.$1');s = s.replace(/^\./, '');var a = s.split('.');for (var i = 0, n = a.length; i < n; ++i) {var k = a[i];if (this.isObject(o) && k in o) {o = o[k];} else {return;}}return o;},hasLocalStorage: function () {try {localStorage.setItem('test', 'test');localStorage.removeItem('test');return true;} catch(e) {return false;}},isWithinViewPort: function (el) {var elemTop = el.getBoundingClientRect().top;var elemBottom = el.getBoundingClientRect().bottom;return elemTop < window.innerHeight && elemBottom >= 0;},};GoAccess.OverallStats = {renderBox: function (data, ui, row, x, idx) {var wrap = $('.wrap-general-items');if (idx % 6 == 0) {row = document.createElement('div');row.setAttribute('class', 'row');wrap.appendChild(row);}var box = document.createElement('div');box.innerHTML = GoAccess.AppTpls.General.items.render({'id': x,'className': ui.items[x].className,'label': ui.items[x].label,'value': GoAccess.Util.fmtValue(data[x], ui.items[x].dataType),});row.appendChild(box);return row;},renderData: function (data, ui) {var idx = 0, row = null;$('.wrap-general').innerHTML = GoAccess.AppTpls.General.wrap.render(GoAccess.Util.merge(ui, {'lastUpdated': data.date_time,'from': data.start_date,'to': data.end_date,}));for (var x in data) {if (!data.hasOwnProperty(x) || !ui.items.hasOwnProperty(x))continue;row = this.renderBox(data, ui, row, x, idx);idx++;}},initialize: function () {var ui = GoAccess.getPanelUI('general');var data = GoAccess.getPanelData('general'), i = 0;this.renderData(data, ui);}};GoAccess.Nav = {events: function () {$('.nav-bars').onclick = function (e) {e.stopPropagation();this.renderMenu(e);}.bind(this);$('.nav-gears').onclick = function (e) {e.stopPropagation();this.renderOpts(e);}.bind(this);$('.nav-minibars').onclick = function (e) {e.stopPropagation();this.renderOpts(e);}.bind(this);$('body').onclick = function (e) {$('nav').classList.remove('active');}.bind(this);$$('.export-json', function (item) {item.onclick = function (e) {this.downloadJSON(e);}.bind(this);}.bind(this));$$('.theme-bright', function (item) {item.onclick = function (e) {this.setTheme('bright');}.bind(this);}.bind(this));$$('.theme-dark-blue', function (item) {item.onclick = function (e) {this.setTheme('darkBlue');}.bind(this);}.bind(this));$$('.theme-dark-gray', function (item) {item.onclick = function (e) {this.setTheme('darkGray');}.bind(this);}.bind(this));$$('.theme-dark-purple', function (item) {item.onclick = function (e) {this.setTheme('darkPurple');}.bind(this);}.bind(this));$$('.layout-horizontal', function (item) {item.onclick = function (e) {this.setLayout('horizontal');}.bind(this);}.bind(this));$$('.layout-vertical', function (item) {item.onclick = function (e) {this.setLayout('vertical');}.bind(this);}.bind(this));$$('[data-perpage]', function (item) {item.onclick = function (e) {this.setPerPage(e);}.bind(this);}.bind(this));$$('[data-show-tables]', function (item) {item.onclick = function (e) {this.toggleTables();}.bind(this);}.bind(this));$$('[data-autohide-tables]', function (item) {item.onclick = function (e) {this.toggleAutoHideTables();}.bind(this);}.bind(this));},downloadJSON: function (e) {var targ = e.currentTarget;var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(GoAccess.getPanelData()));targ.href = 'data:' + data;targ.download = 'goaccess-' + (+new Date()) + '.json';},setLayout: function (layout) {if ('horizontal' == layout) {$('.container').classList.add('container-fluid');$('.container').classList.remove('container');} else if ('vertical' == layout) {$('.container-fluid').classList.add('container');$('.container').classList.remove('container-fluid');}GoAccess.AppPrefs['layout'] = layout;GoAccess.setPrefs();GoAccess.Panels.initialize();GoAccess.Charts.initialize();GoAccess.Tables.initialize();},toggleAutoHideTables: function (e) {var autoHideTables = GoAccess.Tables.autoHideTables();$$('.table-wrapper', function (item) {if (autoHideTables) {item.classList.remove('hidden-xs');} else {item.classList.add('hidden-xs');}}.bind(this));GoAccess.AppPrefs['autoHideTables'] = !autoHideTables;GoAccess.setPrefs();},toggleTables: function () {var ui = GoAccess.getPanelUI();var showTables = GoAccess.Tables.showTables();Object.keys(ui).forEach(function (panel, idx) {if (!GoAccess.Util.isPanelValid(panel))ui[panel]['table'] = !showTables;}.bind(this));GoAccess.AppPrefs['showTables'] = !showTables;GoAccess.setPrefs();GoAccess.Panels.initialize();GoAccess.Charts.initialize();GoAccess.Tables.initialize();},setTheme: function (theme) {if (!theme)return;$('html').className = '';switch(theme) {case 'darkGray':$('html').classList.add('dark');$('html').classList.add('gray');break;case 'darkBlue':$('html').classList.add('dark');$('html').classList.add('blue');break;case 'darkPurple':$('html').classList.add('dark');$('html').classList.add('purple');break;}GoAccess.AppPrefs['theme'] = theme;GoAccess.setPrefs();},getIcon: function (key) {switch(key) {case 'visitors' : return 'users';case 'requests' : return 'file';case 'static_requests' : return 'file-text';case 'not_found' : return 'file-o';case 'hosts' : return 'user';case 'os' : return 'desktop';case 'browsers' : return 'chrome';case 'visit_time' : return 'clock-o';case 'vhosts' : return 'th-list';case 'referrers' : return 'external-link';case 'referring_sites' : return 'external-link';case 'keyphrases' : return 'google';case 'status_codes' : return 'warning';case 'remote_user' : return 'users';case 'geolocation' : return 'map-marker';default : return 'pie-chart';}},getItems: function () {var ui = GoAccess.getPanelUI(), menu = [];for (var panel in ui) {if (GoAccess.Util.isPanelValid(panel))continue;menu.push({'current': window.location.hash.substr(1) == panel,'head': ui[panel].head,'key': panel,'icon': this.getIcon(panel),});}return menu;},setPerPage: function (e) {GoAccess.AppPrefs['perPage'] = +e.currentTarget.getAttribute('data-perpage');GoAccess.App.renderData();GoAccess.setPrefs();},getTheme: function () {return GoAccess.AppPrefs.theme || 'darkGray';},getLayout: function () {return GoAccess.AppPrefs.layout || 'horizontal';},getPerPage: function () {return GoAccess.AppPrefs.perPage || 7;},renderOpts: function () {var o = {};o[this.getLayout()] = true;o[this.getTheme()] = true;o['perPage' + this.getPerPage()] = true;o['autoHideTables'] = GoAccess.Tables.autoHideTables();o['showTables'] = GoAccess.Tables.showTables();o['labels'] = GoAccess.i18n;$('.nav-list').innerHTML = GoAccess.AppTpls.Nav.opts.render(o);$('nav').classList.toggle('active');this.events();},renderMenu: function (e) {$('.nav-list').innerHTML = GoAccess.AppTpls.Nav.menu.render({'nav': this.getItems(),'overall': window.location.hash.substr(1) == '','labels': GoAccess.i18n,});$('nav').classList.toggle('active');this.events();},WSStatus: function () {if (Object.keys(GoAccess.AppWSConn).length)$$('.nav-ws-status', function (item) { item.style.display = 'block'; });},WSClose: function () {$$('.nav-ws-status', function (item) {item.classList.remove('connected');item.setAttribute('title', 'Disconnected');});},WSOpen: function () {$$('.nav-ws-status', function (item) {item.classList.add('connected');item.setAttribute('title', 'Connected to ' + GoAccess.AppWSConn.url);});},renderWrap: function (nav) {$('nav').innerHTML = GoAccess.AppTpls.Nav.wrap.render(GoAccess.i18n);},initialize: function () {this.setTheme(GoAccess.AppPrefs.theme);this.renderWrap();this.WSStatus();this.events();}};GoAccess.Panels = {events: function () {$$('[data-toggle=dropdown]', function (item) {item.onclick = function (e) {this.openOpts(e.currentTarget);}.bind(this);item.onblur = function (e) {this.closeOpts(e);}.bind(this);}.bind(this));$$('[data-plot]', function (item) {item.onclick = function (e) {GoAccess.Charts.redrawChart(e.currentTarget);}.bind(this);}.bind(this));$$('[data-chart]', function (item) {item.onclick = function (e) {GoAccess.Charts.toggleChart(e.currentTarget);}.bind(this);}.bind(this));$$('[data-chart-type]', function (item) {item.onclick = function (e) {GoAccess.Charts.setChartType(e.currentTarget);}.bind(this);}.bind(this));$$('[data-metric]', function (item) {item.onclick = function (e) {GoAccess.Tables.toggleColumn(e.currentTarget);}.bind(this);}.bind(this));},openOpts: function (targ) {var panel = targ.getAttribute('data-panel');targ.parentElement.classList.toggle('open');this.renderOpts(panel);},closeOpts: function (e) {e.currentTarget.parentElement.classList.remove('open');if (e.relatedTarget && e.relatedTarget.getAttribute('data-toggle') !== 'dropdown')e.relatedTarget.click();},setPlotSelection: function (ui, prefs) {var chartType = ((prefs || {}).plot || {}).chartType || ui.plot[0].chartType;var metric = ((prefs || {}).plot || {}).metric || ui.plot[0].className;ui[chartType] = true;for (var i = 0, len = ui.plot.length; i < len; ++i)if (ui.plot[i].className == metric)ui.plot[i]['selected'] = true;},setColSelection: function (items, prefs) {var columns = (prefs || {}).columns || {};for (var i = 0, len = items.length; i < len; ++i)if ((items[i].key in columns) && columns[items[i].key]['hide'])items[i]['hide'] = true;},setChartSelection: function (ui, prefs) {ui['showChart'] = prefs && ('chart' in prefs) ? prefs.chart : true;},setOpts: function (panel) {var ui = JSON.parse(JSON.stringify(GoAccess.getPanelUI(panel))), prefs = GoAccess.getPrefs(panel);this.setChartSelection(ui, prefs);this.setPlotSelection(ui, prefs);this.setColSelection(ui.items, prefs);return GoAccess.Util.merge(ui, {'labels': GoAccess.i18n});},renderOpts: function (panel) {$('.panel-opts-' + panel).innerHTML = GoAccess.AppTpls.Panels.opts.render(this.setOpts(panel));this.events();},enablePrev: function (panel) {var $pagination = $('#panel-' + panel + ' .pagination a.panel-prev');if ($pagination)$pagination.parentNode.classList.remove('disabled');},disablePrev: function (panel) {var $pagination = $('#panel-' + panel + ' .pagination a.panel-prev');if ($pagination)$pagination.parentNode.classList.add('disabled');},enableNext: function (panel) {var $pagination = $('#panel-' + panel + ' .pagination a.panel-next');if ($pagination)$pagination.parentNode.classList.remove('disabled');},disableNext: function (panel) {var $pagination = $('#panel-' + panel + ' .pagination a.panel-next');if ($pagination)$pagination.parentNode.classList.add('disabled');},enableFirst: function (panel) {var $pagination = $('#panel-' + panel + ' .pagination a.panel-first');if ($pagination)$pagination.parentNode.classList.remove('disabled');},disableFirst: function (panel) {var $pagination = $('#panel-' + panel + ' .pagination a.panel-first');if ($pagination)$pagination.parentNode.classList.add('disabled');},enableLast: function (panel) {var $pagination = $('#panel-' + panel + ' .pagination a.panel-last');if ($pagination)$pagination.parentNode.classList.remove('disabled');},disableLast: function (panel) {var $pagination = $('#panel-' + panel + ' .pagination a.panel-last');if ($pagination)$pagination.parentNode.classList.add('disabled');},enablePagination: function (panel) {this.enablePrev(panel);this.enableNext(panel);this.enableFirst(panel);this.enableLast(panel);},disablePagination: function (panel) {this.disablePrev(panel);this.disableNext(panel);this.disableFirst(panel);this.disableLast(panel);},hasSubItems: function (ui, data) {for (var i = 0, len = data.length; i < len; ++i) {if (!data[i].items)return (ui['hasSubItems'] = false);if (data[i].items.length) {return (ui['hasSubItems'] = true);}}return false;},setComputedData: function (panel, ui, data) {this.hasSubItems(ui, data.data);GoAccess.Charts.hasChart(panel, ui);GoAccess.Tables.hasTable(ui);},renderPanel: function (panel, ui, col) {var data = GoAccess.getPanelData(panel);this.setComputedData(panel, ui, data);var box = document.createElement('div');box.id = 'panel-' + panel;box.innerHTML = GoAccess.AppTpls.Panels.wrap.render(GoAccess.Util.merge(ui, {'labels': GoAccess.i18n}));col.appendChild(box);if (data.data.length <= GoAccess.getPrefs().perPage)this.disablePagination(panel);GoAccess.Tables.renderThead(panel, ui);return col;},createCol: function (row) {var perRow = GoAccess.AppPrefs['layout'] == 'horizontal' ? 6 : 12;var col = document.createElement('div');col.setAttribute('class', 'col-md-' + perRow + ' wrap-panel');row.appendChild(col);return col;},createRow: function (row, idx) {var wrap = $('.wrap-panels');var every = GoAccess.AppPrefs['layout'] == 'horizontal' ? 2 : 1;if (idx % every == 0) {row = document.createElement('div');row.setAttribute('class', 'row' + (every == 2 ? ' equal' : ''));wrap.appendChild(row);}return row;},resetPanel: function (panel) {var ui = GoAccess.getPanelUI(), idx = 0, row = null;var ele = $('#panel-' + panel);if (GoAccess.Util.isPanelValid(panel))return false;var col = ele.parentNode;col.removeChild(ele);this.renderPanel(panel, ui[panel], col);this.events();},renderPanels: function () {var ui = GoAccess.getPanelUI(), idx = 0, row = null, col = null;$('.wrap-panels').innerHTML = '';for (var panel in ui) {if (GoAccess.Util.isPanelValid(panel))continue;row = this.createRow(row, idx++);col = this.createCol(row);col = this.renderPanel(panel, ui[panel], col);}},initialize: function () {this.renderPanels();this.events();}};GoAccess.Charts = {iter: function (callback) {Object.keys(GoAccess.AppCharts).forEach(function (panel) {if (!GoAccess.Util.isWithinViewPort($('#panel-' + panel)))return;if (callback && typeof callback === 'function')callback.call(this, GoAccess.AppCharts[panel], panel);});},getMetricKeys: function (panel, key) {return GoAccess.getPanelUI(panel)['items'].map(function (a) { return a[key]; });},getPanelData: function (panel, data) {var plot = GoAccess.Util.getProp(GoAccess.AppState, panel + '.plot');data = data || this.processChartData(GoAccess.getPanelData(panel).data);return plot.chartReverse ? data.reverse() : data;},drawPlot: function (panel, plotUI, data) {var chart = this.getChart(panel, plotUI, data);if (!chart)return;this.renderChart(panel, chart, data);GoAccess.AppCharts[panel] = null;GoAccess.AppCharts[panel] = chart;},setChartType: function (targ) {var panel = targ.getAttribute('data-panel');var type = targ.getAttribute('data-chart-type');GoAccess.Util.setProp(GoAccess.AppPrefs, panel + '.plot.chartType', type);GoAccess.setPrefs();var plotUI = GoAccess.Util.getProp(GoAccess.AppState, panel + '.plot');this.drawPlot(panel, plotUI, this.getPanelData(panel));},toggleChart: function (targ) {var panel = targ.getAttribute('data-panel');var prefs = GoAccess.getPrefs(panel),chart = prefs && ('chart' in prefs) ? prefs.chart : true;GoAccess.Util.setProp(GoAccess.AppPrefs, panel + '.chart', !chart);GoAccess.setPrefs();GoAccess.Panels.resetPanel(panel);GoAccess.Charts.resetChart(panel);GoAccess.Tables.renderFullTable(panel);},hasChart: function (panel, ui) {var prefs = GoAccess.getPrefs(panel),chart = prefs && ('chart' in prefs) ? prefs.chart : true;ui['chart'] = ui.plot.length && chart && chart;},redrawChart: function (targ) {var plot = targ.getAttribute('data-plot');var panel = targ.getAttribute('data-panel');var ui = GoAccess.getPanelUI(panel);var plotUI = ui.plot;GoAccess.Util.setProp(GoAccess.AppPrefs, panel + '.plot.metric', plot);GoAccess.setPrefs();for (var x in plotUI) {if (!plotUI.hasOwnProperty(x) || plotUI[x].className != plot)continue;GoAccess.Util.setProp(GoAccess.AppState, panel + '.plot', plotUI[x]);this.drawPlot(panel, plotUI[x], this.getPanelData(panel));break;}},extractCount: function (item) {var o = {};for (var prop in item)o[prop] = GoAccess.Util.getCount(item[prop]);return o;},processChartData: function (data) {var out = [];for (var i = 0; i < data.length; ++i)out.push(this.extractCount(data[i]));return out;},findUIItem: function (panel, key) {var items = GoAccess.getPanelUI(panel).items, o = {};for (var i = 0; i < items.length; ++i) {if (items[i].key == key)return items[i];}return null;},getXKey: function (datum, key) {var arr = [];if (typeof key === 'string')return datum[key];for (var prop in key)arr.push(datum[key[prop]]);return arr.join(' ');},getAreaSpline: function (panel, plotUI, data) {var dualYaxis = plotUI['d3']['y1'];var chart = AreaChart(dualYaxis).labels({y0: plotUI['d3']['y0'].label,y1: dualYaxis ? plotUI['d3']['y1'].label : ''}).x(function (d) {if ((((plotUI || {}).d3 || {}).x || {}).key)return this.getXKey(d, plotUI['d3']['x']['key']);return d.data;}.bind(this)).y0(function (d) {return +d[plotUI['d3']['y0']['key']];}).width($("#chart-" + panel).getBoundingClientRect().width).height(175).format({x: (this.findUIItem(panel, 'data') || {}).dataType || null,y0: ((plotUI.d3 || {}).y0 || {}).format,y1: ((plotUI.d3 || {}).y1 || {}).format,}).opts(plotUI);dualYaxis && chart.y1(function (d) {return +d[plotUI['d3']['y1']['key']];});return chart;},getVBar: function (panel, plotUI, data) {var dualYaxis = plotUI['d3']['y1'];var chart = BarChart(dualYaxis).labels({y0: plotUI['d3']['y0'].label,y1: dualYaxis ? plotUI['d3']['y1'].label : ''}).x(function (d) {if ((((plotUI || {}).d3 || {}).x || {}).key)return this.getXKey(d, plotUI['d3']['x']['key']);return d.data;}.bind(this)).y0(function (d) {return +d[plotUI['d3']['y0']['key']];}).width($("#chart-" + panel).getBoundingClientRect().width).height(175).format({x: (this.findUIItem(panel, 'data') || {}).dataType || null,y0: ((plotUI.d3 || {}).y0 || {}).format,y1: ((plotUI.d3 || {}).y1 || {}).format,}).opts(plotUI);dualYaxis && chart.y1(function (d) {return +d[plotUI['d3']['y1']['key']];});return chart;},getChartType: function (panel) {var ui = GoAccess.getPanelUI(panel);if (!ui.chart)return '';return GoAccess.Util.getProp(GoAccess.getPrefs(), panel + '.plot.chartType') || ui.plot[0].chartType;},getPlotUI: function (panel, ui) {var metric = GoAccess.Util.getProp(GoAccess.getPrefs(), panel + '.plot.metric');if (!metric)return ui.plot[0];return ui.plot.filter(function (v) {return v.className == metric;})[0];},getChart: function (panel, plotUI, data) {var chart = null;switch (this.getChartType(panel)) {case 'area-spline':chart = this.getAreaSpline(panel, plotUI, data);break;case 'bar':chart = this.getVBar(panel, plotUI, data);break;}return chart;},renderChart: function (panel, chart, data) {d3.select('#chart-' + panel + '>.chart-tooltip-wrap').remove();d3.select('#chart-' + panel).select('svg').remove();d3.select("#chart-" + panel).datum(data).call(chart).append("div").attr("class", "chart-tooltip-wrap");},addChart: function (panel, ui) {var plotUI = null, chart = null;if (!ui.plot || !ui.plot.length)return;plotUI = this.getPlotUI(panel, ui);GoAccess.Util.setProp(GoAccess.AppState, panel + '.plot', plotUI);var data = this.getPanelData(panel);if (!(chart = this.getChart(panel, plotUI, data)))return;this.renderChart(panel, chart, data);GoAccess.AppCharts[panel] = chart;},renderCharts: function (ui) {for (var panel in ui) {if (!ui.hasOwnProperty(panel))continue;this.addChart(panel, ui[panel]);}},resetChart: function (panel) {var ui = {};if (GoAccess.Util.isPanelValid(panel))return false;ui = GoAccess.getPanelUI(panel);this.addChart(panel, ui);},reloadChart: function (chart, panel) {var subItems = GoAccess.Tables.getSubItemsData(panel);var data = (subItems.length ? subItems : GoAccess.getPanelData(panel).data).slice(0);d3.select("#chart-" + panel).datum(this.processChartData(this.getPanelData(panel, data))).call(chart.width($("#chart-" + panel).offsetWidth));},reloadCharts: function () {this.iter(function (chart, panel) {this.reloadChart(chart, panel);}.bind(this));GoAccess.AppState.updated = false;},redrawCharts: function () {this.iter(function (chart, panel) {d3.select("#chart-" + panel).call(chart.width($("#chart-" + panel).offsetWidth));});},initialize: function () {this.renderCharts(GoAccess.getPanelUI());d3.select(window).on('scroll.charts', debounce(function () {this.reloadCharts();}, 250, false).bind(this)).on('resize.charts', function () {this.redrawCharts();}.bind(this));}};GoAccess.Tables = {chartData: {},events: function () {$$('.panel-next', function (item) {item.onclick = function (e) {var panel = e.currentTarget.getAttribute('data-panel');this.renderTable(panel, this.nextPage(panel));}.bind(this);}.bind(this));$$('.panel-prev', function (item) {item.onclick = function (e) {var panel = e.currentTarget.getAttribute('data-panel');this.renderTable(panel, this.prevPage(panel));}.bind(this);}.bind(this));$$('.panel-first', function (item) {item.onclick = function (e) {var panel = e.currentTarget.getAttribute('data-panel');this.renderTable(panel, "FIRST_PAGE");}.bind(this);}.bind(this));$$('.panel-last', function (item) {item.onclick = function (e) {var panel = e.currentTarget.getAttribute('data-panel');this.renderTable(panel, "LAST_PAGE");}.bind(this);}.bind(this));$$('.expandable>td', function (item) {item.onclick = function (e) {if (!window.getSelection().toString())this.toggleRow(e.currentTarget);}.bind(this);}.bind(this));$$('.row-expandable.clickable', function (item) {item.onclick = function (e) {this.toggleRow(e.currentTarget);}.bind(this);}.bind(this));$$('.sortable', function (item) {item.onclick = function (e) {this.sortColumn(e.currentTarget);}.bind(this);}.bind(this));},toggleColumn: function (targ) {var panel = targ.getAttribute('data-panel');var metric = targ.getAttribute('data-metric');var columns = (GoAccess.getPrefs(panel) || {}).columns || {};if (metric in columns) {delete columns[metric];} else {GoAccess.Util.setProp(columns, metric + '.hide', true);}GoAccess.Util.setProp(GoAccess.AppPrefs, panel + '.columns', columns);GoAccess.setPrefs();GoAccess.Tables.renderThead(panel, GoAccess.getPanelUI(panel));GoAccess.Tables.renderFullTable(panel);},sortColumn: function (ele) {var field = ele.getAttribute('data-key');var order = ele.getAttribute('data-order');var panel = ele.parentElement.parentElement.parentElement.getAttribute('data-panel');order = order ? 'asc' == order ? 'desc' : 'asc' : 'asc';GoAccess.App.sortData(panel, field, order);GoAccess.Util.setProp(GoAccess.AppState, panel + '.sort', {'field': field,'order': order,});this.renderThead(panel, GoAccess.getPanelUI(panel));this.renderTable(panel, this.getCurPage(panel));GoAccess.Charts.reloadChart(GoAccess.AppCharts[panel], panel);},getDataByKey: function (panel, key) {var data = GoAccess.getPanelData(panel).data;for (var i = 0, n = data.length; i < n; ++i) {if (GoAccess.Util.hashCode(data[i].data) == key)return data[i];}return null;},getSubItemsData: function (panel) {var out = [], items = this.chartData[panel];for (var x in items) {if (!items.hasOwnProperty(x))continue;out = out.concat(items[x]);}return out;},addChartData: function (panel, key) {var data = this.getDataByKey(panel, key);var path = panel + '.' + key;if (!data || !data.items)return [];GoAccess.Util.setProp(this.chartData, path, data.items);return this.getSubItemsData(panel);},removeChartData: function (panel, key) {if (GoAccess.Util.getProp(this.chartData, panel + '.' + key))delete this.chartData[panel][key];if (!this.chartData[panel] || Object.keys(this.chartData[panel]).length == 0)return GoAccess.getPanelData(panel).data;return this.getSubItemsData(panel);},isExpanded: function (panel, key) {var path = panel + '.expanded.' + key;return GoAccess.Util.getProp(GoAccess.AppState, path);},toggleExpanded: function (panel, key) {var path = panel + '.expanded.' + key, ret = true;if (this.isExpanded(panel, key)) {delete GoAccess.AppState[panel]['expanded'][key];} else {GoAccess.Util.setProp(GoAccess.AppState, path, true), ret = false;}return ret;},toggleRow: function (ele) {var hide = false, data = [];var row = ele.parentNode;var panel = row.getAttribute('data-panel'), key = row.getAttribute('data-key');var plotUI = GoAccess.AppCharts[panel].opts();hide = this.toggleExpanded(panel, key);this.renderTable(panel, this.getCurPage(panel));if (!plotUI.redrawOnExpand)return;if (!hide) {data = GoAccess.Charts.processChartData(this.addChartData(panel, key));} else {data = GoAccess.Charts.processChartData(this.removeChartData(panel, key));}GoAccess.Charts.drawPlot(panel, plotUI, data);},getCurPage: function (panel) {return GoAccess.Util.getProp(GoAccess.AppState, panel + '.curPage') || 0;},pageOffSet: function (panel) {return ((this.getCurPage(panel) - 1) * GoAccess.getPrefs().perPage);},getTotalPages: function (dataItems) {return Math.ceil(dataItems.length / GoAccess.getPrefs().perPage);},getPage: function (panel, dataItems, page) {var totalPages = this.getTotalPages(dataItems);if (page < 1)page = 1;if (page > totalPages)page = totalPages;GoAccess.Util.setProp(GoAccess.AppState, panel + '.curPage', page);var start = this.pageOffSet(panel);var end = start + GoAccess.getPrefs().perPage;return dataItems.slice(start, end);},prevPage: function (panel) {return this.getCurPage(panel) - 1;},nextPage: function (panel) {return this.getCurPage(panel) + 1;},getMetaValue: function (ui, value) {if ('meta' in ui)return value[ui.meta];return null;},getMetaCell: function (ui, value) {var val = this.getMetaValue(ui, value);var max = (value || {}).max;var min = (value || {}).min;var vtype = ui.metaType || ui.dataType;var className = ui.className || '';className += ui.dataType != 'string' ? 'text-right' : '';return {'className': className,'max' : max != undefined ? GoAccess.Util.fmtValue(max, vtype) : null,'min' : min != undefined ? GoAccess.Util.fmtValue(min, vtype) : null,'value' : val != undefined ? GoAccess.Util.fmtValue(val, vtype) : null,'title' : ui.meta,'label' : ui.metaLabel || null,};},hideColumn: function (panel, col) {var columns = (GoAccess.getPrefs(panel) || {}).columns || {};return ((col in columns) && columns[col]['hide']);},showTables: function () {return ('showTables' in GoAccess.getPrefs()) ? GoAccess.getPrefs().showTables : true;},autoHideTables: function () {return ('autoHideTables' in GoAccess.getPrefs()) ? GoAccess.getPrefs().autoHideTables : true;},hasTable: function (ui) {ui['table'] = this.showTables();ui['autoHideTables'] = this.autoHideTables();},renderMetaRow: function (panel, ui) {var table = $('.table-' + panel + ' tbody.tbody-meta');if (!table)return;var cells = [], uiItems = ui.items;var data = GoAccess.getPanelData(panel).metadata;for (var i = 0; i < uiItems.length; ++i) {var item = uiItems[i];if (this.hideColumn(panel, item.key))continue;var value = data[item.key];cells.push(this.getMetaCell(item, value));}table.innerHTML = GoAccess.AppTpls.Tables.meta.render({row: [{'hasSubItems': ui.hasSubItems,'cells': cells}]});},iterUIItems: function (panel, uiItems, dataItems, callback) {var out = [];for (var i = 0; i < uiItems.length; ++i) {var uiItem = uiItems[i];if (this.hideColumn(panel, uiItem.key))continue;var dataItem = dataItems[uiItem.key];if (callback && typeof callback == 'function') {var ret = callback.call(this, panel, uiItem, dataItem);if (ret) out.push(ret);}}return out;},getObjectCell: function (panel, ui, value) {var className = ui.className || '';className += ui.dataType != 'string' ? 'text-right' : '';return {'className': className,'percent': GoAccess.Util.getPercent(value),'value': GoAccess.Util.fmtValue(GoAccess.Util.getCount(value), ui.dataType)};},renderRow: function (panel, callback, ui, dataItem, idx, subItem, parentId, expanded) {var shadeParent = ((!subItem && idx % 2 != 0) ? 'shaded' : '');var shadeChild = ((parentId % 2 != 0) ? 'shaded' : '');return {'panel' : panel,'idx' : !subItem && (String((idx + 1) + this.pageOffSet(panel))),'key' : !subItem ? GoAccess.Util.hashCode(dataItem.data) : '','expanded' : !subItem && expanded,'parentId' : subItem ? String(parentId) : '','className' : subItem ? 'child ' + shadeChild : 'parent ' + shadeParent,'hasSubItems' : ui.hasSubItems,'items' : dataItem.items ? dataItem.items.length : 0,'cells' : callback.call(this),};},renderRows: function (rows, panel, ui, dataItems, subItem, parentId) {subItem = subItem || false;if (dataItems.length == 0 && ui.items.length) {rows.push({cells: [{className: 'text-center',colspan: ui.items.length + 1,value: 'No data on this panel.'}]});}var cellcb = null;for (var i = 0; i < dataItems.length; ++i) {var dataItem = dataItems[i], data = null, expanded = false;switch(typeof dataItem) {case 'string':data = dataItem;cellcb = function () {return {'colspan': ui.items.length,'value': data};};break;default:data = dataItem.data;cellcb = this.iterUIItems.bind(this, panel, ui.items, dataItem, this.getObjectCell.bind(this));}expanded = this.isExpanded(panel, GoAccess.Util.hashCode(data));rows.push(this.renderRow(panel, cellcb, ui, dataItem, i, subItem, parentId, expanded));if (dataItem.items && dataItem.items.length && expanded) {this.renderRows(rows, panel, ui, dataItem.items, true, i, expanded);}}},renderDataRows: function (panel, ui, dataItems, page) {var table = $('.table-' + panel + ' tbody.tbody-data');if (!table)return;dataItems = this.getPage(panel, dataItems, page);var rows = [];this.renderRows(rows, panel, ui, dataItems);if (rows.length == 0)return;table.innerHTML = GoAccess.AppTpls.Tables.data.render({rows: rows});},togglePagination: function (panel, page, dataItems) {GoAccess.Panels.enablePagination(panel);if (page >= this.getTotalPages(dataItems)) {GoAccess.Panels.disableNext(panel);GoAccess.Panels.disableLast(panel);}if (page <= 1) {GoAccess.Panels.disablePrev(panel);GoAccess.Panels.disableFirst(panel);}},renderTable: function (panel, page) {var dataItems = GoAccess.getPanelData(panel).data;var ui = GoAccess.getPanelUI(panel);if (page === "LAST_PAGE") {page = this.getTotalPages(dataItems);} else if (page === "FIRST_PAGE") {page = 1;}this.togglePagination(panel, page, dataItems);this.renderDataRows(panel, ui, dataItems, page);this.events();},renderFullTable: function (panel) {var ui = GoAccess.getPanelUI(panel), page = 0;var data = GoAccess.getPanelData(panel);if (data.hasOwnProperty('metadata'))this.renderMetaRow(panel, ui);if (data.hasOwnProperty('data')) {page = this.getCurPage(panel);this.togglePagination(panel, page, data.data);this.renderDataRows(panel, ui, data.data, page);}},renderTables: function (force) {var ui = GoAccess.getPanelUI();for (var panel in ui) {if (GoAccess.Util.isPanelValid(panel) || !this.showTables())continue;if (force || GoAccess.Util.isWithinViewPort($('#panel-' + panel)))this.renderFullTable(panel);}},sort2Tpl: function (panel, ui) {var uiClone = JSON.parse(JSON.stringify(ui)), out = [];var sort = GoAccess.Util.getProp(GoAccess.AppState, panel + '.sort');for (var i = 0, len = uiClone.items.length; i < len; ++i) {var item = uiClone.items[i];if (this.hideColumn(panel, item.key))continue;item['sort'] = false;if (item.key == sort.field && sort.order) {item['sort'] = true;item[sort.order.toLowerCase()] = true;}out.push(item);}uiClone.items = out;return uiClone;},renderThead: function (panel, ui) {var $thead = $('.table-' + panel + '>thead'), $colgroup = $('.table-' + panel + '>colgroup');if ($thead && $colgroup && this.showTables()) {ui = this.sort2Tpl(panel, ui);$thead.innerHTML = GoAccess.AppTpls.Tables.head.render(ui);$colgroup.innerHTML = GoAccess.AppTpls.Tables.colgroup.render(ui);}},reloadTables: function () {this.renderTables(false);this.events();},initialize: function () {this.renderTables(true);this.events();d3.select(window).on('scroll.tables', debounce(function () {this.reloadTables();}, 250, false).bind(this));},};GoAccess.App = {hasFocus: true,tpl: function (tpl) {return Hogan.compile(tpl);},setTpls: function () {GoAccess.AppTpls = {'Nav': {'wrap': this.tpl($('#tpl-nav-wrap').innerHTML),'menu': this.tpl($('#tpl-nav-menu').innerHTML),'opts': this.tpl($('#tpl-nav-opts').innerHTML),},'Panels': {'wrap': this.tpl($('#tpl-panel').innerHTML),'opts': this.tpl($('#tpl-panel-opts').innerHTML),},'General': {'wrap': this.tpl($('#tpl-general').innerHTML),'items': this.tpl($('#tpl-general-items').innerHTML),},'Tables': {'colgroup': this.tpl($('#tpl-table-colgroup').innerHTML),'head': this.tpl($('#tpl-table-thead').innerHTML),'meta': this.tpl($('#tpl-table-row-meta').innerHTML),'data': this.tpl($('#tpl-table-row').innerHTML),},};},sortField: function (o, field) {var f = o[field];if (GoAccess.Util.isObject(f) && (f !== null))f = o[field].count;return f;},sortData: function (panel, field, order) {var panelData = GoAccess.getPanelData(panel).data;panelData.sort(function (a, b) {a = this.sortField(a, field);b = this.sortField(b, field);if (typeof a === 'string' && typeof b === 'string')return 'asc' == order ? a.localeCompare(b) : b.localeCompare(a);return 'asc' == order ? a - b : b - a;}.bind(this));},setInitSort: function () {var ui = GoAccess.getPanelUI();for (var panel in ui) {if (GoAccess.Util.isPanelValid(panel))continue;GoAccess.Util.setProp(GoAccess.AppState, panel + '.sort', ui[panel].sort);}},verifySort: function () {var ui = GoAccess.getPanelUI();for (var panel in ui) {if (GoAccess.Util.isPanelValid(panel))continue;var sort = GoAccess.Util.getProp(GoAccess.AppState, panel + '.sort');if (JSON.stringify(sort) === JSON.stringify(ui[panel].sort))continue;this.sortData(panel, sort.field, sort.order);}},initDom: function () {$('nav').classList.remove('hide');$('.container').classList.remove('hide');$('.spinner').classList.add('hide');if (GoAccess.AppPrefs['layout'] == 'horizontal') {$('.container').classList.add('container-fluid');$('.container-fluid').classList.remove('container');}},renderData: function () {if (!this.hasFocus)return;this.verifySort();GoAccess.OverallStats.initialize();if (!GoAccess.AppState.updated)return;GoAccess.Charts.reloadCharts();GoAccess.Tables.reloadTables();},initialize: function () {this.setInitSort();this.setTpls();GoAccess.Nav.initialize();this.initDom();GoAccess.OverallStats.initialize();GoAccess.Panels.initialize();GoAccess.Charts.initialize();GoAccess.Tables.initialize();},};document.addEventListener('visibilitychange', function () {if (document.visibilityState === 'hidden')GoAccess.App.hasFocus = false;if (document.visibilityState === 'visible') {var hasFocus = GoAccess.App.hasFocus;GoAccess.App.hasFocus = true;hasFocus || GoAccess.App.renderData();}});window.onload = function () {GoAccess.initialize({'i18n': window.json_i18n,'uiData': window.user_interface,'panelData': window.json_data,'wsConnection': window.connection || null,'prefs': window.html_prefs || {},});GoAccess.App.initialize();};}()); \ No newline at end of file diff --git a/src/goaccess++/resources/js/charts.js b/src/goaccess++/resources/js/charts.js new file mode 100644 index 0000000..3111546 --- /dev/null +++ b/src/goaccess++/resources/js/charts.js @@ -0,0 +1,1067 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2018 Gerardo Orellana <hello @ goaccess.io> + */ + +'use strict'; + +// This is faster than calculating the exact length of each label. +// e.g., getComputedTextLength(), slice()... +function truncate(text, width) { + text.each(function () { + var parent = this.parentNode, $d3parent = d3.select(parent); + var gw = $d3parent.node().getBBox(); + var x = (Math.min(gw.width, width) / 2) * -1; + // adjust wrapper <svg> width + if ('svg' == parent.nodeName) { + $d3parent.attr('width', width).attr('x', x); + } + // wrap <text> within an svg + else { + $d3parent.insert('svg', function () { + return this; + }.bind(this)) + .attr('class', 'wrap-text') + .attr('width', width) + .attr('x', x) + .append(function () { + return this; + }.bind(this)); + } + }); +} + +function AreaChart(dualYaxis) { + var opts = {}; + var margin = { + top : 20, + right : 50, + bottom : 40, + left : 50, + }, + height = 170, + nTicks = 10, + padding = 10, + width = 760; + var labels = { x: 'Unnamed', y0: 'Unnamed', y1: 'Unnamed' }; + var format = { x: null, y0: null, y1: null}; + + var xValue = function (d) { + return d[0]; + }, + yValue0 = function (d) { + return d[1]; + }, + yValue1 = function (d) { + return d[2]; + }; + + var xScale = d3.scale.ordinal(); + var yScale0 = d3.scale.linear().nice(); + var yScale1 = d3.scale.linear().nice(); + + var xAxis = d3.svg.axis() + .scale(xScale) + .orient('bottom') + .tickFormat(function (d) { + if (format.x) + return GoAccess.Util.fmtValue(d, format.x); + return d; + }); + + var yAxis0 = d3.svg.axis() + .scale(yScale0) + .orient('left') + .tickFormat(function (d) { + return d3.format('.2s')(d); + }); + + var yAxis1 = d3.svg.axis() + .scale(yScale1) + .orient('right') + .tickFormat(function (d) { + if (format.y1) + return GoAccess.Util.fmtValue(d, format.y1); + return d3.format('.2s')(d); + }); + + var xGrid = d3.svg.axis() + .scale(xScale) + .orient('bottom'); + + var yGrid = d3.svg.axis() + .scale(yScale0) + .orient('left'); + + var area0 = d3.svg.area() + .interpolate('cardinal') + .x(X) + .y(Y0); + var area1 = d3.svg.area() + .interpolate('cardinal') + .x(X) + .y(Y1); + + var line0 = d3.svg.line() + .interpolate('cardinal') + .x(X) + .y(Y0); + var line1 = d3.svg.line() + .interpolate('cardinal') + .x(X) + .y(Y1); + + // The x-accessor for the path generator; xScale ∘ xValue. + function X(d) { + return xScale(d[0]); + } + + // The x-accessor for the path generator; yScale0 yValue0. + function Y0(d) { + return yScale0(d[1]); + } + + // The x-accessor for the path generator; yScale0 yValue0. + function Y1(d) { + return yScale1(d[2]); + } + + function innerW() { + return width - margin.left - margin.right; + } + + function innerH() { + return height - margin.top - margin.bottom; + } + + function getXTicks(data) { + if (data.length < nTicks) + return xScale.domain(); + + return d3.range(0, data.length, Math.ceil(data.length / nTicks)).map(function (d) { + return xScale.domain()[d]; + }); + } + + function getYTicks(scale) { + var domain = scale.domain(); + return d3.range(domain[0], domain[1], Math.ceil(domain[1] / nTicks)); + } + + // Convert data to standard representation greedily; + // this is needed for nondeterministic accessors. + function mapData(data) { + var _datum = function (d, i) { + var datum = [xValue.call(data, d, i), yValue0.call(data, d, i)]; + dualYaxis && datum.push(yValue1.call(data, d, i)); + return datum; + }; + return data.map(function (d, i) { + return _datum(d, i); + }); + } + + function updateScales(data) { + // Update the x-scale. + xScale.domain(data.map(function (d) { + return d[0]; + })) + .rangePoints([0, innerW()], 1); + + // Update the y-scale. + yScale0.domain([0, d3.max(data, function (d) { + return d[1]; + })]) + .range([innerH(), 0]); + + // Update the y-scale. + dualYaxis && yScale1.domain([0, d3.max(data, function (d) { + return d[2]; + })]) + .range([innerH(), 0]); + } + + function toggleOpacity(ele, op) { + d3.select(ele.parentNode).selectAll('.' + (ele.getAttribute('data-yaxis') == 'y0' ? 'y1' : 'y0')).attr('style', op); + } + + function setLegendLabels(svg) { + // Legend Color + var rect = svg.selectAll('rect.legend.y0').data([null]); + rect.enter().append('rect') + .attr('class', 'legend y0') + .attr('data-yaxis', 'y0') + .on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }) + .on('mouseleave', function (d, i) { toggleOpacity(this, null); }) + .attr('y', (height - 15)); + rect + .attr('x', (width / 2) - 100); + + // Legend Labels + var text = svg.selectAll('text.legend.y0').data([null]); + text.enter().append('text') + .attr('class', 'legend y0') + .attr('data-yaxis', 'y0') + .on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }) + .on('mouseleave', function (d, i) { toggleOpacity(this, null); }) + .attr('y', (height - 6)); + text + .attr('x', (width / 2) - 85) + .text(labels.y0); + + if (!dualYaxis) + return; + + // Legend Labels + rect = svg.selectAll('rect.legend.y1').data([null]); + rect.enter().append('rect') + .attr('class', 'legend y1') + .attr('data-yaxis', 'y1') + .on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }) + .on('mouseleave', function (d, i) { toggleOpacity(this, null); }) + .attr('y', (height - 15)); + rect + .attr('x', (width / 2)); + + // Legend Labels + text = svg.selectAll('text.legend.y1').data([null]); + text.enter().append('text') + .attr('class', 'legend y1') + .attr('data-yaxis', 'y1') + .on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }) + .on('mouseleave', function (d, i) { toggleOpacity(this, null); }) + .attr('y', (height - 6)); + text + .attr('x', (width / 2) + 15) + .text(labels.y1); + } + + function setAxisLabels(svg) { + // Labels + svg.selectAll('text.axis-label.y0').data([null]) + .enter().append('text') + .attr('class', 'axis-label y0') + .attr('y', 10) + .attr('x', 53) + .text(labels.y0); + + if (!dualYaxis) + return; + + // Labels + var tEnter = svg.selectAll('text.axis-label.y1').data([null]); + tEnter.enter().append('text') + .attr('class', 'axis-label y1') + .attr('y', 10) + .text(labels.y1); + dualYaxis && tEnter + .attr('x', width - 25); + } + + function createSkeleton(svg) { + // Otherwise, create the skeletal chart. + var gEnter = svg.enter().append('svg').append('g'); + + // Lines + gEnter.append('g') + .attr('class', 'line line0 y0'); + dualYaxis && gEnter.append('g') + .attr('class', 'line line1 y1'); + + // Areas + gEnter.append('g') + .attr('class', 'area area0 y0'); + dualYaxis && gEnter.append('g') + .attr('class', 'area area1 y1'); + + // Points + gEnter.append('g') + .attr('class', 'points y0'); + dualYaxis && gEnter.append('g') + .attr('class', 'points y1'); + + // Grid + gEnter.append('g') + .attr('class', 'x grid'); + gEnter.append('g') + .attr('class', 'y grid'); + + // Axis + gEnter.append('g') + .attr('class', 'x axis'); + gEnter.append('g') + .attr('class', 'y0 axis'); + dualYaxis && gEnter.append('g') + .attr('class', 'y1 axis'); + + // Rects + gEnter.append('g') + .attr('class', 'rects'); + + setAxisLabels(svg); + setLegendLabels(svg); + + // Mouseover line + gEnter.append('line') + .attr('y2', innerH()) + .attr('y1', 0) + .attr('class', 'indicator'); + } + + function pathLen(d) { + return d.node().getTotalLength(); + } + + function addLine(g, data, line, cName) { + // Update the line path. + var path = g.select('g.' + cName).selectAll('path.' + cName) + .data([data]); + // enter + path + .enter() + .append('svg:path') + .attr('d', line) + .attr('class', cName) + .attr('stroke-dasharray', function (d) { + var pl = pathLen(d3.select(this)); + return pl + ' ' + pl; + }) + .attr('stroke-dashoffset', function (d) { + return pathLen(d3.select(this)); + }); + // update + path + .attr('d', line) + .transition() + .attr('stroke-dasharray', function (d) { + var pl = pathLen(d3.select(this)); + return pl + ' ' + pl; + }) + .duration(2000) + .attr('stroke-dashoffset', 0); + // remove elements + path.exit().remove(); + } + + function addArea(g, data, cb, cName) { + // Update the area path. + var area = g.select('g.' + cName).selectAll('path.' + cName) + .data([data]); + area + .enter() + .append('svg:path') + .attr('class', cName); + area + .attr('d', cb); + // remove elements + area.exit().remove(); + } + + // Update the area path and lines. + function addAreaLines(g, data) { + // Update the area path. + addArea(g, data, area0.y0(yScale0.range()[0]), 'area0'); + // Update the line path. + addLine(g, data, line0, 'line0'); + // Update the area path. + addArea(g, data, area1.y1(yScale1.range()[0]), 'area1'); + // Update the line path. + addLine(g, data, line1, 'line1'); + } + + // Update chart points + function addPoints(g, data) { + var radius = data.length > 100 ? 1 : 2.5; + + var points = g.select('g.points.y0').selectAll('circle.point') + .data(data); + points + .enter() + .append('svg:circle') + .attr('r', radius) + .attr('class', 'point'); + points + .attr('cx', function (d) { return xScale(d[0]); }) + .attr('cy', function (d) { return yScale0(d[1]); }); + // remove elements + points.exit().remove(); + + if (!dualYaxis) + return; + + points = g.select('g.points.y1').selectAll('circle.point') + .data(data); + points + .enter() + .append('svg:circle') + .attr('r', radius) + .attr('class', 'point'); + points + .attr('cx', function (d) { return xScale(d[0]); }) + .attr('cy', function (d) { return yScale1(d[2]); }); + // remove elements + points.exit().remove(); + } + + function addAxis(g, data) { + var xTicks = getXTicks(data); + var tickDistance = xTicks.length > 1 ? (xScale(xTicks[1]) - xScale(xTicks[0])) : innerW(); + var labelW = tickDistance - padding; + + // Update the x-axis. + g.select('.x.axis') + .attr('transform', 'translate(0,' + yScale0.range()[0] + ')') + .call(xAxis.tickValues(xTicks)) + .selectAll(".tick text") + .call(truncate, labelW > 0 ? labelW : innerW()); + + // Update the y0-axis. + g.select('.y0.axis') + .call(yAxis0.tickValues(getYTicks(yScale0))); + + if (!dualYaxis) + return; + + // Update the y1-axis. + g.select('.y1.axis') + .attr('transform', 'translate(' + innerW() + ', 0)') + .call(yAxis1.tickValues(getYTicks(yScale1))); + } + + // Update the X-Y grid. + function addGrid(g, data) { + g.select('.x.grid') + .attr('transform', 'translate(0,' + yScale0.range()[0] + ')') + .call(xGrid + .tickValues(getXTicks(data)) + .tickSize(-innerH(), 0, 0) + .tickFormat('') + ); + + g.select('.y.grid') + .call(yGrid + .tickValues(getYTicks(yScale0)) + .tickSize(-innerW(), 0, 0) + .tickFormat('') + ); + } + + function formatTooltip(data, i) { + var d = data.slice(0); + + d[0] = (format.x) ? GoAccess.Util.fmtValue(d[0], format.x) : d[0]; + d[1] = (format.y0) ? GoAccess.Util.fmtValue(d[1], format.y0) : d3.format(',')(d[1]); + dualYaxis && (d[2] = (format.y1) ? GoAccess.Util.fmtValue(d[2], format.y1) : d3.format(',')(d[2])); + + var template = d3.select('#tpl-chart-tooltip').html(); + return Hogan.compile(template).render({ + 'data': d + }); + } + + function mouseover(_self, selection, data, idx) { + var tooltip = selection.select('.chart-tooltip-wrap'); + tooltip.html(formatTooltip(data, idx)) + .style('left', (xScale(data[0])) + 'px') + .style('top', (d3.mouse(_self)[1] + 10) + 'px') + .style('display', 'block'); + + selection.select('line.indicator') + .style('display', 'block') + .attr('transform', 'translate(' + xScale(data[0]) + ',' + 0 + ')'); + } + + function mouseout(selection, g) { + var tooltip = selection.select('.chart-tooltip-wrap'); + tooltip.style('display', 'none'); + + g.select('line.indicator').style('display', 'none'); + } + + function addRects(selection, g, data) { + var w = (innerW() / data.length); + + var rects = g.select('g.rects').selectAll('rect') + .data(data); + rects + .enter() + .append('svg:rect') + .attr('height', innerH()) + .attr('class', 'point'); + rects + .attr('width', d3.functor(w)) + .attr('x', function (d, i) { return (w * i); }) + .attr('y', 0) + .on('mousemove', function (d, i) { + mouseover(this, selection, d, i); + }) + .on('mouseleave', function (d, i) { + mouseout(selection, g); + }); + // remove elements + rects.exit().remove(); + } + + function chart(selection) { + selection.each(function (data) { + // normalize data + data = mapData(data); + // updates X-Y scales + updateScales(data); + + // Select the svg element, if it exists. + var svg = d3.select(this).selectAll('svg').data([data]); + createSkeleton(svg); + + // Update the outer dimensions. + svg.attr({ + 'width': width, + 'height': height + }); + + // Update the inner dimensions. + var g = svg.select('g') + .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')'); + + // Add grid + addGrid(g, data); + // Add chart lines and areas + addAreaLines(g, data); + // Add chart points + addPoints(g, data); + // Add axis + addAxis(g, data); + // Add rects + addRects(selection, g, data); + }); + } + + chart.opts = function (_) { + if (!arguments.length) return opts; + opts = _; + return chart; + }; + + chart.format = function (_) { + if (!arguments.length) return format; + format = _; + return chart; + }; + + chart.labels = function (_) { + if (!arguments.length) return labels; + labels = _; + return chart; + }; + + chart.margin = function (_) { + if (!arguments.length) return margin; + margin = _; + return chart; + }; + + chart.width = function (_) { + if (!arguments.length) return width; + width = _; + return chart; + }; + + chart.height = function (_) { + if (!arguments.length) return height; + height = _; + return chart; + }; + + chart.x = function (_) { + if (!arguments.length) return xValue; + xValue = _; + return chart; + }; + + chart.y0 = function (_) { + if (!arguments.length) return yValue0; + yValue0 = _; + return chart; + }; + + chart.y1 = function (_) { + if (!arguments.length) return yValue1; + yValue1 = _; + return chart; + }; + + return chart; +} + +function BarChart(dualYaxis) { + var opts = {}; + var margin = { + top : 20, + right : 50, + bottom : 40, + left : 50, + }, + height = 170, + nTicks = 10, + padding = 10, + width = 760; + var labels = { x: 'Unnamed', y0: 'Unnamed', y1: 'Unnamed' }; + var format = { x: null, y0: null, y1: null}; + + var xValue = function (d) { + return d[0]; + }, + yValue0 = function (d) { + return d[1]; + }, + yValue1 = function (d) { + return d[2]; + }; + + var xScale = d3.scale.ordinal(); + var yScale0 = d3.scale.linear().nice(); + var yScale1 = d3.scale.linear().nice(); + + var xAxis = d3.svg.axis() + .scale(xScale) + .orient('bottom') + .tickFormat(function (d) { + if (format.x) + return GoAccess.Util.fmtValue(d, format.x); + return d; + }); + + var yAxis0 = d3.svg.axis() + .scale(yScale0) + .orient('left') + .tickFormat(function (d) { + return d3.format('.2s')(d); + }); + + var yAxis1 = d3.svg.axis() + .scale(yScale1) + .orient('right') + .tickFormat(function (d) { + if (format.y1) + return GoAccess.Util.fmtValue(d, format.y1); + return d3.format('.2s')(d); + }); + + var xGrid = d3.svg.axis() + .scale(xScale) + .orient('bottom'); + + var yGrid = d3.svg.axis() + .scale(yScale0) + .orient('left'); + + function innerW() { + return width - margin.left - margin.right; + } + + function innerH() { + return height - margin.top - margin.bottom; + } + + function getXTicks(data) { + if (data.length < nTicks) + return xScale.domain(); + + return d3.range(0, data.length, Math.ceil(data.length / nTicks)).map(function (d) { + return xScale.domain()[d]; + }); + } + + function getYTicks(scale) { + var domain = scale.domain(); + return d3.range(domain[0], domain[1], Math.ceil(domain[1] / nTicks)); + } + + // Convert data to standard representation greedily; + // this is needed for nondeterministic accessors. + function mapData(data) { + var _datum = function (d, i) { + var datum = [xValue.call(data, d, i), yValue0.call(data, d, i)]; + dualYaxis && datum.push(yValue1.call(data, d, i)); + return datum; + }; + return data.map(function (d, i) { + return _datum(d, i); + }); + } + + function updateScales(data) { + // Update the x-scale. + xScale.domain(data.map(function (d) { + return d[0]; + })) + .rangeBands([0, innerW()], 0.1); + + // Update the y-scale. + yScale0.domain([0, d3.max(data, function (d) { + return d[1]; + })]) + .range([innerH(), 0]); + + // Update the y-scale. + dualYaxis && yScale1.domain([0, d3.max(data, function (d) { + return d[2]; + })]) + .range([innerH(), 0]); + } + + function toggleOpacity(ele, op) { + d3.select(ele.parentNode).selectAll('.' + (ele.getAttribute('data-yaxis') == 'y0' ? 'y1' : 'y0')).attr('style', op); + } + + function setLegendLabels(svg) { + // Legend Color + var rect = svg.selectAll('rect.legend.y0').data([null]); + rect.enter().append('rect') + .attr('class', 'legend y0') + .attr('data-yaxis', 'y0') + .on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }) + .on('mouseleave', function (d, i) { toggleOpacity(this, null); }) + .attr('y', (height - 15)); + rect + .attr('x', (width / 2) - 100); + + // Legend Labels + var text = svg.selectAll('text.legend.y0').data([null]); + text.enter().append('text') + .attr('class', 'legend y0') + .attr('data-yaxis', 'y0') + .on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }) + .on('mouseleave', function (d, i) { toggleOpacity(this, null); }) + .attr('y', (height - 6)); + text + .attr('x', (width / 2) - 85) + .text(labels.y0); + + if (!dualYaxis) + return; + + // Legend Labels + rect = svg.selectAll('rect.legend.y1').data([null]); + rect.enter().append('rect') + .attr('class', 'legend y1') + .attr('data-yaxis', 'y1') + .on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }) + .on('mouseleave', function (d, i) { toggleOpacity(this, null); }) + .attr('y', (height - 15)); + rect + .attr('x', (width / 2)); + + // Legend Labels + text = svg.selectAll('text.legend.y1').data([null]); + text.enter().append('text') + .attr('class', 'legend y1') + .attr('data-yaxis', 'y1') + .on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }) + .on('mouseleave', function (d, i) { toggleOpacity(this, null); }) + .attr('y', (height - 6)); + text + .attr('x', (width / 2) + 15) + .text(labels.y1); + } + + function setAxisLabels(svg) { + // Labels + svg.selectAll('text.axis-label.y0').data([null]) + .enter().append('text') + .attr('class', 'axis-label y0') + .attr('y', 10) + .attr('x', 53) + .text(labels.y0); + + if (!dualYaxis) + return; + + // Labels + var tEnter = svg.selectAll('text.axis-label.y1').data([null]); + tEnter.enter().append('text') + .attr('class', 'axis-label y1') + .attr('y', 10) + .text(labels.y1); + dualYaxis && tEnter + .attr('x', width - 25); + } + + function createSkeleton(svg) { + // Otherwise, create the skeletal chart. + var gEnter = svg.enter().append('svg').append('g'); + + // Grid + gEnter.append('g') + .attr('class', 'x grid'); + gEnter.append('g') + .attr('class', 'y grid'); + + // Axis + gEnter.append('g') + .attr('class', 'x axis'); + gEnter.append('g') + .attr('class', 'y0 axis'); + dualYaxis && gEnter.append('g') + .attr('class', 'y1 axis'); + + // Bars + gEnter.append('g') + .attr('class', 'bars y0'); + dualYaxis && gEnter.append('g') + .attr('class', 'bars y1'); + + // Rects + gEnter.append('g') + .attr('class', 'rects'); + + setAxisLabels(svg); + setLegendLabels(svg); + + // Mouseover line + gEnter.append('line') + .attr('y2', innerH()) + .attr('y1', 0) + .attr('class', 'indicator'); + } + + // Update the area path and lines. + function addBars(g, data) { + var bars = g.select('g.bars.y0').selectAll('rect.bar') + .data(data); + // enter + bars + .enter() + .append('svg:rect') + .attr('class', 'bar') + .attr('height', 0) + .attr('width', function (d, i) { return xScale.rangeBand() / 2; }) + .attr('x', function (d, i) { return xScale(d[0]); }) + .attr('y', function (d, i) { return innerH(); }); + // update + bars + .attr('width', xScale.rangeBand() / 2) + .attr('x', function (d) { return xScale(d[0]); }) + .transition() + .delay(function (d, i) { return i / data.length * 1000; }) + .duration(500) + .attr('height', function (d, i) { return innerH() - yScale0(d[1]); }) + .attr('y', function (d, i) { return yScale0(d[1]); }); + // remove elements + bars.exit().remove(); + + if (!dualYaxis) + return; + + bars = g.select('g.bars.y1').selectAll('rect.bar') + .data(data); + // enter + bars + .enter() + .append('svg:rect') + .attr('class', 'bar') + .attr('height', 0) + .attr('width', function (d, i) { return xScale.rangeBand() / 2; }) + .attr('x', function (d) { return (xScale(d[0]) + xScale.rangeBand() / 2); }) + .attr('y', function (d, i) { return innerH(); }); + // update + bars + .attr('width', xScale.rangeBand() / 2) + .attr('x', function (d) { return (xScale(d[0]) + xScale.rangeBand() / 2); }) + .transition() + .delay(function (d, i) { return i / data.length * 1000; }) + .duration(500) + .attr('height', function (d, i) { return innerH() - yScale1(d[2]); }) + .attr('y', function (d, i) { return yScale1(d[2]); }); + // remove elements + bars.exit().remove(); + } + + function addAxis(g, data) { + var xTicks = getXTicks(data); + var tickDistance = xTicks.length > 1 ? (xScale(xTicks[1]) - xScale(xTicks[0])) : innerW(); + var labelW = tickDistance - padding; + + // Update the x-axis. + g.select('.x.axis') + .attr('transform', 'translate(0,' + yScale0.range()[0] + ')') + .call(xAxis.tickValues(xTicks)) + .selectAll(".tick text") + .call(truncate, labelW > 0 ? labelW : innerW()); + + // Update the y0-axis. + g.select('.y0.axis') + .call(yAxis0.tickValues(getYTicks(yScale0))); + + if (!dualYaxis) + return; + + // Update the y1-axis. + g.select('.y1.axis') + .attr('transform', 'translate(' + innerW() + ', 0)') + .call(yAxis1.tickValues(getYTicks(yScale1))); + } + + // Update the X-Y grid. + function addGrid(g, data) { + g.select('.x.grid') + .attr('transform', 'translate(0,' + yScale0.range()[0] + ')') + .call(xGrid + .tickValues(getXTicks(data)) + .tickSize(-innerH(), 0, 0) + .tickFormat('') + ); + + g.select('.y.grid') + .call(yGrid + .tickValues(getYTicks(yScale0)) + .tickSize(-innerW(), 0, 0) + .tickFormat('') + ); + } + + function formatTooltip(data, i) { + var d = data.slice(0); + + d[0] = (format.x) ? GoAccess.Util.fmtValue(d[0], format.x) : d[0]; + d[1] = (format.y0) ? GoAccess.Util.fmtValue(d[1], format.y0) : d3.format(',')(d[1]); + dualYaxis && (d[2] = (format.y1) ? GoAccess.Util.fmtValue(d[2], format.y1) : d3.format(',')(d[2])); + + var template = d3.select('#tpl-chart-tooltip').html(); + return Hogan.compile(template).render({ + 'data': d + }); + } + + function mouseover(_self, selection, data, idx) { + var left = xScale(data[0]) + (xScale.rangeBand() / 2); + var tooltip = selection.select('.chart-tooltip-wrap'); + tooltip.html(formatTooltip(data, idx)) + .style('left', left + 'px') + .style('top', (d3.mouse(_self)[1] + 10) + 'px') + .style('display', 'block'); + + selection.select('line.indicator') + .style('display', 'block') + .attr('transform', 'translate(' + left + ',' + 0 + ')'); + } + + function mouseout(selection, g) { + var tooltip = selection.select('.chart-tooltip-wrap'); + tooltip.style('display', 'none'); + + g.select('line.indicator').style('display', 'none'); + } + + function addRects(selection, g, data) { + var w = (innerW() / data.length); + + var rects = g.select('g.rects').selectAll('rect') + .data(data); + rects + .enter() + .append('svg:rect') + .attr('height', innerH()) + .attr('class', 'point'); + rects + .attr('width', d3.functor(w)) + .attr('x', function (d, i) { return (w * i); }) + .attr('y', 0) + .on('mousemove', function (d, i) { + mouseover(this, selection, d, i); + }) + .on('mouseleave', function (d, i) { + mouseout(selection, g); + }); + // remove elements + rects.exit().remove(); + } + + function chart(selection) { + selection.each(function (data) { + // normalize data + data = mapData(data); + // updates X-Y scales + updateScales(data); + + // Select the svg element, if it exists. + var svg = d3.select(this).selectAll('svg').data([data]); + createSkeleton(svg); + + // Update the outer dimensions. + svg.attr({ + 'width': width, + 'height': height + }); + + // Update the inner dimensions. + var g = svg.select('g') + .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')'); + + // Add grid + addGrid(g, data); + // Add axis + addAxis(g, data); + // Add chart lines and areas + addBars(g, data); + // Add rects + addRects(selection, g, data); + }); + } + + chart.opts = function (_) { + if (!arguments.length) return opts; + opts = _; + return chart; + }; + + chart.format = function (_) { + if (!arguments.length) return format; + format = _; + return chart; + }; + + chart.labels = function (_) { + if (!arguments.length) return labels; + labels = _; + return chart; + }; + + chart.width = function (_) { + if (!arguments.length) return width; + width = _; + return chart; + }; + + chart.height = function (_) { + if (!arguments.length) return height; + height = _; + return chart; + }; + + chart.x = function (_) { + if (!arguments.length) return xValue; + xValue = _; + return chart; + }; + + chart.y0 = function (_) { + if (!arguments.length) return yValue0; + yValue0 = _; + return chart; + }; + + chart.y1 = function (_) { + if (!arguments.length) return yValue1; + yValue1 = _; + return chart; + }; + + return chart; +} diff --git a/src/goaccess++/resources/js/charts.js.tmp b/src/goaccess++/resources/js/charts.js.tmp new file mode 100644 index 0000000..c9ee93d --- /dev/null +++ b/src/goaccess++/resources/js/charts.js.tmp @@ -0,0 +1 @@ +/*** ______ ___* / ____/___ / | _____________ __________* / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/* / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ )* \____/\____/_/ |_\___/\___/\___/____/____/** The MIT License (MIT)* Copyright (c) 2009-2018 Gerardo Orellana <hello @ goaccess.io>*/'use strict';function truncate(text, width) {text.each(function () {var parent = this.parentNode, $d3parent = d3.select(parent);var gw = $d3parent.node().getBBox();var x = (Math.min(gw.width, width) / 2) * -1;if ('svg' == parent.nodeName) {$d3parent.attr('width', width).attr('x', x);}else {$d3parent.insert('svg', function () {return this;}.bind(this)).attr('class', 'wrap-text').attr('width', width).attr('x', x).append(function () {return this;}.bind(this));}});}function AreaChart(dualYaxis) {var opts = {};var margin = {top : 20,right : 50,bottom : 40,left : 50,},height = 170,nTicks = 10,padding = 10,width = 760;var labels = { x: 'Unnamed', y0: 'Unnamed', y1: 'Unnamed' };var format = { x: null, y0: null, y1: null};var xValue = function (d) {return d[0];},yValue0 = function (d) {return d[1];},yValue1 = function (d) {return d[2];};var xScale = d3.scale.ordinal();var yScale0 = d3.scale.linear().nice();var yScale1 = d3.scale.linear().nice();var xAxis = d3.svg.axis().scale(xScale).orient('bottom').tickFormat(function (d) {if (format.x)return GoAccess.Util.fmtValue(d, format.x);return d;});var yAxis0 = d3.svg.axis().scale(yScale0).orient('left').tickFormat(function (d) {return d3.format('.2s')(d);});var yAxis1 = d3.svg.axis().scale(yScale1).orient('right').tickFormat(function (d) {if (format.y1)return GoAccess.Util.fmtValue(d, format.y1);return d3.format('.2s')(d);});var xGrid = d3.svg.axis().scale(xScale).orient('bottom');var yGrid = d3.svg.axis().scale(yScale0).orient('left');var area0 = d3.svg.area().interpolate('cardinal').x(X).y(Y0);var area1 = d3.svg.area().interpolate('cardinal').x(X).y(Y1);var line0 = d3.svg.line().interpolate('cardinal').x(X).y(Y0);var line1 = d3.svg.line().interpolate('cardinal').x(X).y(Y1);function X(d) {return xScale(d[0]);}function Y0(d) {return yScale0(d[1]);}function Y1(d) {return yScale1(d[2]);}function innerW() {return width - margin.left - margin.right;}function innerH() {return height - margin.top - margin.bottom;}function getXTicks(data) {if (data.length < nTicks)return xScale.domain();return d3.range(0, data.length, Math.ceil(data.length / nTicks)).map(function (d) {return xScale.domain()[d];});}function getYTicks(scale) {var domain = scale.domain();return d3.range(domain[0], domain[1], Math.ceil(domain[1] / nTicks));}function mapData(data) {var _datum = function (d, i) {var datum = [xValue.call(data, d, i), yValue0.call(data, d, i)];dualYaxis && datum.push(yValue1.call(data, d, i));return datum;};return data.map(function (d, i) {return _datum(d, i);});}function updateScales(data) {xScale.domain(data.map(function (d) {return d[0];})).rangePoints([0, innerW()], 1);yScale0.domain([0, d3.max(data, function (d) {return d[1];})]).range([innerH(), 0]);dualYaxis && yScale1.domain([0, d3.max(data, function (d) {return d[2];})]).range([innerH(), 0]);}function toggleOpacity(ele, op) {d3.select(ele.parentNode).selectAll('.' + (ele.getAttribute('data-yaxis') == 'y0' ? 'y1' : 'y0')).attr('style', op);}function setLegendLabels(svg) {var rect = svg.selectAll('rect.legend.y0').data([null]);rect.enter().append('rect').attr('class', 'legend y0').attr('data-yaxis', 'y0').on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }).on('mouseleave', function (d, i) { toggleOpacity(this, null); }).attr('y', (height - 15));rect.attr('x', (width / 2) - 100);var text = svg.selectAll('text.legend.y0').data([null]);text.enter().append('text').attr('class', 'legend y0').attr('data-yaxis', 'y0').on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }).on('mouseleave', function (d, i) { toggleOpacity(this, null); }).attr('y', (height - 6));text.attr('x', (width / 2) - 85).text(labels.y0);if (!dualYaxis)return;rect = svg.selectAll('rect.legend.y1').data([null]);rect.enter().append('rect').attr('class', 'legend y1').attr('data-yaxis', 'y1').on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }).on('mouseleave', function (d, i) { toggleOpacity(this, null); }).attr('y', (height - 15));rect.attr('x', (width / 2));text = svg.selectAll('text.legend.y1').data([null]);text.enter().append('text').attr('class', 'legend y1').attr('data-yaxis', 'y1').on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }).on('mouseleave', function (d, i) { toggleOpacity(this, null); }).attr('y', (height - 6));text.attr('x', (width / 2) + 15).text(labels.y1);}function setAxisLabels(svg) {svg.selectAll('text.axis-label.y0').data([null]).enter().append('text').attr('class', 'axis-label y0').attr('y', 10).attr('x', 53).text(labels.y0);if (!dualYaxis)return;var tEnter = svg.selectAll('text.axis-label.y1').data([null]);tEnter.enter().append('text').attr('class', 'axis-label y1').attr('y', 10).text(labels.y1);dualYaxis && tEnter.attr('x', width - 25);}function createSkeleton(svg) {var gEnter = svg.enter().append('svg').append('g');gEnter.append('g').attr('class', 'line line0 y0');dualYaxis && gEnter.append('g').attr('class', 'line line1 y1');gEnter.append('g').attr('class', 'area area0 y0');dualYaxis && gEnter.append('g').attr('class', 'area area1 y1');gEnter.append('g').attr('class', 'points y0');dualYaxis && gEnter.append('g').attr('class', 'points y1');gEnter.append('g').attr('class', 'x grid');gEnter.append('g').attr('class', 'y grid');gEnter.append('g').attr('class', 'x axis');gEnter.append('g').attr('class', 'y0 axis');dualYaxis && gEnter.append('g').attr('class', 'y1 axis');gEnter.append('g').attr('class', 'rects');setAxisLabels(svg);setLegendLabels(svg);gEnter.append('line').attr('y2', innerH()).attr('y1', 0).attr('class', 'indicator');}function pathLen(d) {return d.node().getTotalLength();}function addLine(g, data, line, cName) {var path = g.select('g.' + cName).selectAll('path.' + cName).data([data]);path.enter().append('svg:path').attr('d', line).attr('class', cName).attr('stroke-dasharray', function (d) {var pl = pathLen(d3.select(this));return pl + ' ' + pl;}).attr('stroke-dashoffset', function (d) {return pathLen(d3.select(this));});path.attr('d', line).transition().attr('stroke-dasharray', function (d) {var pl = pathLen(d3.select(this));return pl + ' ' + pl;}).duration(2000).attr('stroke-dashoffset', 0);path.exit().remove();}function addArea(g, data, cb, cName) {var area = g.select('g.' + cName).selectAll('path.' + cName).data([data]);area.enter().append('svg:path').attr('class', cName);area.attr('d', cb);area.exit().remove();}function addAreaLines(g, data) {addArea(g, data, area0.y0(yScale0.range()[0]), 'area0');addLine(g, data, line0, 'line0');addArea(g, data, area1.y1(yScale1.range()[0]), 'area1');addLine(g, data, line1, 'line1');}function addPoints(g, data) {var radius = data.length > 100 ? 1 : 2.5;var points = g.select('g.points.y0').selectAll('circle.point').data(data);points.enter().append('svg:circle').attr('r', radius).attr('class', 'point');points.attr('cx', function (d) { return xScale(d[0]); }).attr('cy', function (d) { return yScale0(d[1]); });points.exit().remove();if (!dualYaxis)return;points = g.select('g.points.y1').selectAll('circle.point').data(data);points.enter().append('svg:circle').attr('r', radius).attr('class', 'point');points.attr('cx', function (d) { return xScale(d[0]); }).attr('cy', function (d) { return yScale1(d[2]); });points.exit().remove();}function addAxis(g, data) {var xTicks = getXTicks(data);var tickDistance = xTicks.length > 1 ? (xScale(xTicks[1]) - xScale(xTicks[0])) : innerW();var labelW = tickDistance - padding;g.select('.x.axis').attr('transform', 'translate(0,' + yScale0.range()[0] + ')').call(xAxis.tickValues(xTicks)).selectAll(".tick text").call(truncate, labelW > 0 ? labelW : innerW());g.select('.y0.axis').call(yAxis0.tickValues(getYTicks(yScale0)));if (!dualYaxis)return;g.select('.y1.axis').attr('transform', 'translate(' + innerW() + ', 0)').call(yAxis1.tickValues(getYTicks(yScale1)));}function addGrid(g, data) {g.select('.x.grid').attr('transform', 'translate(0,' + yScale0.range()[0] + ')').call(xGrid.tickValues(getXTicks(data)).tickSize(-innerH(), 0, 0).tickFormat(''));g.select('.y.grid').call(yGrid.tickValues(getYTicks(yScale0)).tickSize(-innerW(), 0, 0).tickFormat(''));}function formatTooltip(data, i) {var d = data.slice(0);d[0] = (format.x) ? GoAccess.Util.fmtValue(d[0], format.x) : d[0];d[1] = (format.y0) ? GoAccess.Util.fmtValue(d[1], format.y0) : d3.format(',')(d[1]);dualYaxis && (d[2] = (format.y1) ? GoAccess.Util.fmtValue(d[2], format.y1) : d3.format(',')(d[2]));var template = d3.select('#tpl-chart-tooltip').html();return Hogan.compile(template).render({'data': d});}function mouseover(_self, selection, data, idx) {var tooltip = selection.select('.chart-tooltip-wrap');tooltip.html(formatTooltip(data, idx)).style('left', (xScale(data[0])) + 'px').style('top', (d3.mouse(_self)[1] + 10) + 'px').style('display', 'block');selection.select('line.indicator').style('display', 'block').attr('transform', 'translate(' + xScale(data[0]) + ',' + 0 + ')');}function mouseout(selection, g) {var tooltip = selection.select('.chart-tooltip-wrap');tooltip.style('display', 'none');g.select('line.indicator').style('display', 'none');}function addRects(selection, g, data) {var w = (innerW() / data.length);var rects = g.select('g.rects').selectAll('rect').data(data);rects.enter().append('svg:rect').attr('height', innerH()).attr('class', 'point');rects.attr('width', d3.functor(w)).attr('x', function (d, i) { return (w * i); }).attr('y', 0).on('mousemove', function (d, i) {mouseover(this, selection, d, i);}).on('mouseleave', function (d, i) {mouseout(selection, g);});rects.exit().remove();}function chart(selection) {selection.each(function (data) {data = mapData(data);updateScales(data);var svg = d3.select(this).selectAll('svg').data([data]);createSkeleton(svg);svg.attr({'width': width,'height': height});var g = svg.select('g').attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');addGrid(g, data);addAreaLines(g, data);addPoints(g, data);addAxis(g, data);addRects(selection, g, data);});}chart.opts = function (_) {if (!arguments.length) return opts;opts = _;return chart;};chart.format = function (_) {if (!arguments.length) return format;format = _;return chart;};chart.labels = function (_) {if (!arguments.length) return labels;labels = _;return chart;};chart.margin = function (_) {if (!arguments.length) return margin;margin = _;return chart;};chart.width = function (_) {if (!arguments.length) return width;width = _;return chart;};chart.height = function (_) {if (!arguments.length) return height;height = _;return chart;};chart.x = function (_) {if (!arguments.length) return xValue;xValue = _;return chart;};chart.y0 = function (_) {if (!arguments.length) return yValue0;yValue0 = _;return chart;};chart.y1 = function (_) {if (!arguments.length) return yValue1;yValue1 = _;return chart;};return chart;}function BarChart(dualYaxis) {var opts = {};var margin = {top : 20,right : 50,bottom : 40,left : 50,},height = 170,nTicks = 10,padding = 10,width = 760;var labels = { x: 'Unnamed', y0: 'Unnamed', y1: 'Unnamed' };var format = { x: null, y0: null, y1: null};var xValue = function (d) {return d[0];},yValue0 = function (d) {return d[1];},yValue1 = function (d) {return d[2];};var xScale = d3.scale.ordinal();var yScale0 = d3.scale.linear().nice();var yScale1 = d3.scale.linear().nice();var xAxis = d3.svg.axis().scale(xScale).orient('bottom').tickFormat(function (d) {if (format.x)return GoAccess.Util.fmtValue(d, format.x);return d;});var yAxis0 = d3.svg.axis().scale(yScale0).orient('left').tickFormat(function (d) {return d3.format('.2s')(d);});var yAxis1 = d3.svg.axis().scale(yScale1).orient('right').tickFormat(function (d) {if (format.y1)return GoAccess.Util.fmtValue(d, format.y1);return d3.format('.2s')(d);});var xGrid = d3.svg.axis().scale(xScale).orient('bottom');var yGrid = d3.svg.axis().scale(yScale0).orient('left');function innerW() {return width - margin.left - margin.right;}function innerH() {return height - margin.top - margin.bottom;}function getXTicks(data) {if (data.length < nTicks)return xScale.domain();return d3.range(0, data.length, Math.ceil(data.length / nTicks)).map(function (d) {return xScale.domain()[d];});}function getYTicks(scale) {var domain = scale.domain();return d3.range(domain[0], domain[1], Math.ceil(domain[1] / nTicks));}function mapData(data) {var _datum = function (d, i) {var datum = [xValue.call(data, d, i), yValue0.call(data, d, i)];dualYaxis && datum.push(yValue1.call(data, d, i));return datum;};return data.map(function (d, i) {return _datum(d, i);});}function updateScales(data) {xScale.domain(data.map(function (d) {return d[0];})).rangeBands([0, innerW()], 0.1);yScale0.domain([0, d3.max(data, function (d) {return d[1];})]).range([innerH(), 0]);dualYaxis && yScale1.domain([0, d3.max(data, function (d) {return d[2];})]).range([innerH(), 0]);}function toggleOpacity(ele, op) {d3.select(ele.parentNode).selectAll('.' + (ele.getAttribute('data-yaxis') == 'y0' ? 'y1' : 'y0')).attr('style', op);}function setLegendLabels(svg) {var rect = svg.selectAll('rect.legend.y0').data([null]);rect.enter().append('rect').attr('class', 'legend y0').attr('data-yaxis', 'y0').on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }).on('mouseleave', function (d, i) { toggleOpacity(this, null); }).attr('y', (height - 15));rect.attr('x', (width / 2) - 100);var text = svg.selectAll('text.legend.y0').data([null]);text.enter().append('text').attr('class', 'legend y0').attr('data-yaxis', 'y0').on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }).on('mouseleave', function (d, i) { toggleOpacity(this, null); }).attr('y', (height - 6));text.attr('x', (width / 2) - 85).text(labels.y0);if (!dualYaxis)return;rect = svg.selectAll('rect.legend.y1').data([null]);rect.enter().append('rect').attr('class', 'legend y1').attr('data-yaxis', 'y1').on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }).on('mouseleave', function (d, i) { toggleOpacity(this, null); }).attr('y', (height - 15));rect.attr('x', (width / 2));text = svg.selectAll('text.legend.y1').data([null]);text.enter().append('text').attr('class', 'legend y1').attr('data-yaxis', 'y1').on('mousemove', function (d, i) { toggleOpacity(this, 'opacity:0.1'); }).on('mouseleave', function (d, i) { toggleOpacity(this, null); }).attr('y', (height - 6));text.attr('x', (width / 2) + 15).text(labels.y1);}function setAxisLabels(svg) {svg.selectAll('text.axis-label.y0').data([null]).enter().append('text').attr('class', 'axis-label y0').attr('y', 10).attr('x', 53).text(labels.y0);if (!dualYaxis)return;var tEnter = svg.selectAll('text.axis-label.y1').data([null]);tEnter.enter().append('text').attr('class', 'axis-label y1').attr('y', 10).text(labels.y1);dualYaxis && tEnter.attr('x', width - 25);}function createSkeleton(svg) {var gEnter = svg.enter().append('svg').append('g');gEnter.append('g').attr('class', 'x grid');gEnter.append('g').attr('class', 'y grid');gEnter.append('g').attr('class', 'x axis');gEnter.append('g').attr('class', 'y0 axis');dualYaxis && gEnter.append('g').attr('class', 'y1 axis');gEnter.append('g').attr('class', 'bars y0');dualYaxis && gEnter.append('g').attr('class', 'bars y1');gEnter.append('g').attr('class', 'rects');setAxisLabels(svg);setLegendLabels(svg);gEnter.append('line').attr('y2', innerH()).attr('y1', 0).attr('class', 'indicator');}function addBars(g, data) {var bars = g.select('g.bars.y0').selectAll('rect.bar').data(data);bars.enter().append('svg:rect').attr('class', 'bar').attr('height', 0).attr('width', function (d, i) { return xScale.rangeBand() / 2; }).attr('x', function (d, i) { return xScale(d[0]); }).attr('y', function (d, i) { return innerH(); });bars.attr('width', xScale.rangeBand() / 2).attr('x', function (d) { return xScale(d[0]); }).transition().delay(function (d, i) { return i / data.length * 1000; }).duration(500).attr('height', function (d, i) { return innerH() - yScale0(d[1]); }).attr('y', function (d, i) { return yScale0(d[1]); });bars.exit().remove();if (!dualYaxis)return;bars = g.select('g.bars.y1').selectAll('rect.bar').data(data);bars.enter().append('svg:rect').attr('class', 'bar').attr('height', 0).attr('width', function (d, i) { return xScale.rangeBand() / 2; }).attr('x', function (d) { return (xScale(d[0]) + xScale.rangeBand() / 2); }).attr('y', function (d, i) { return innerH(); });bars.attr('width', xScale.rangeBand() / 2).attr('x', function (d) { return (xScale(d[0]) + xScale.rangeBand() / 2); }).transition().delay(function (d, i) { return i / data.length * 1000; }).duration(500).attr('height', function (d, i) { return innerH() - yScale1(d[2]); }).attr('y', function (d, i) { return yScale1(d[2]); });bars.exit().remove();}function addAxis(g, data) {var xTicks = getXTicks(data);var tickDistance = xTicks.length > 1 ? (xScale(xTicks[1]) - xScale(xTicks[0])) : innerW();var labelW = tickDistance - padding;g.select('.x.axis').attr('transform', 'translate(0,' + yScale0.range()[0] + ')').call(xAxis.tickValues(xTicks)).selectAll(".tick text").call(truncate, labelW > 0 ? labelW : innerW());g.select('.y0.axis').call(yAxis0.tickValues(getYTicks(yScale0)));if (!dualYaxis)return;g.select('.y1.axis').attr('transform', 'translate(' + innerW() + ', 0)').call(yAxis1.tickValues(getYTicks(yScale1)));}function addGrid(g, data) {g.select('.x.grid').attr('transform', 'translate(0,' + yScale0.range()[0] + ')').call(xGrid.tickValues(getXTicks(data)).tickSize(-innerH(), 0, 0).tickFormat(''));g.select('.y.grid').call(yGrid.tickValues(getYTicks(yScale0)).tickSize(-innerW(), 0, 0).tickFormat(''));}function formatTooltip(data, i) {var d = data.slice(0);d[0] = (format.x) ? GoAccess.Util.fmtValue(d[0], format.x) : d[0];d[1] = (format.y0) ? GoAccess.Util.fmtValue(d[1], format.y0) : d3.format(',')(d[1]);dualYaxis && (d[2] = (format.y1) ? GoAccess.Util.fmtValue(d[2], format.y1) : d3.format(',')(d[2]));var template = d3.select('#tpl-chart-tooltip').html();return Hogan.compile(template).render({'data': d});}function mouseover(_self, selection, data, idx) {var left = xScale(data[0]) + (xScale.rangeBand() / 2);var tooltip = selection.select('.chart-tooltip-wrap');tooltip.html(formatTooltip(data, idx)).style('left', left + 'px').style('top', (d3.mouse(_self)[1] + 10) + 'px').style('display', 'block');selection.select('line.indicator').style('display', 'block').attr('transform', 'translate(' + left + ',' + 0 + ')');}function mouseout(selection, g) {var tooltip = selection.select('.chart-tooltip-wrap');tooltip.style('display', 'none');g.select('line.indicator').style('display', 'none');}function addRects(selection, g, data) {var w = (innerW() / data.length);var rects = g.select('g.rects').selectAll('rect').data(data);rects.enter().append('svg:rect').attr('height', innerH()).attr('class', 'point');rects.attr('width', d3.functor(w)).attr('x', function (d, i) { return (w * i); }).attr('y', 0).on('mousemove', function (d, i) {mouseover(this, selection, d, i);}).on('mouseleave', function (d, i) {mouseout(selection, g);});rects.exit().remove();}function chart(selection) {selection.each(function (data) {data = mapData(data);updateScales(data);var svg = d3.select(this).selectAll('svg').data([data]);createSkeleton(svg);svg.attr({'width': width,'height': height});var g = svg.select('g').attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');addGrid(g, data);addAxis(g, data);addBars(g, data);addRects(selection, g, data);});}chart.opts = function (_) {if (!arguments.length) return opts;opts = _;return chart;};chart.format = function (_) {if (!arguments.length) return format;format = _;return chart;};chart.labels = function (_) {if (!arguments.length) return labels;labels = _;return chart;};chart.width = function (_) {if (!arguments.length) return width;width = _;return chart;};chart.height = function (_) {if (!arguments.length) return height;height = _;return chart;};chart.x = function (_) {if (!arguments.length) return xValue;xValue = _;return chart;};chart.y0 = function (_) {if (!arguments.length) return yValue0;yValue0 = _;return chart;};chart.y1 = function (_) {if (!arguments.length) return yValue1;yValue1 = _;return chart;};return chart;} \ No newline at end of file diff --git a/src/goaccess++/resources/js/d3.v3.min.js b/src/goaccess++/resources/js/d3.v3.min.js new file mode 100644 index 0000000..1984d17 --- /dev/null +++ b/src/goaccess++/resources/js/d3.v3.min.js @@ -0,0 +1,5 @@ +!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function r(n){return null===n?0/0:+n}function u(n){return!isNaN(n)}function i(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function c(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function l(){this._=Object.create(null)}function s(n){return(n+="")===pa||n[0]===va?va+n:n}function f(n){return(n+="")[0]===va?n.slice(1):n}function h(n){return s(n)in this._}function g(n){return(n=s(n))in this._&&delete this._[n]}function p(){var n=[];for(var t in this._)n.push(f(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function m(){this._=Object.create(null)}function y(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=da.length;r>e;++e){var u=da[e]+t;if(u in n)return u}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new l;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function S(){ta.event.preventDefault()}function k(){for(var n,t=ta.event;n=t.sourceEvent;)t=n;return t}function E(n){for(var t=new _,e=0,r=arguments.length;++e<r;)t[arguments[e]]=w(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=ta.event;u.target=n,ta.event=u,t[u.type].apply(e,r)}finally{ta.event=i}}},t}function A(n){return ya(n,_a),n}function N(n){return"function"==typeof n?n:function(){return Ma(n,this)}}function C(n){return"function"==typeof n?n:function(){return xa(n,this)}}function z(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=ta.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function q(n){return n.trim().replace(/\s+/g," ")}function L(n){return new RegExp("(?:^|\\s+)"+ta.requote(n)+"(?:\\s+|$)","g")}function T(n){return(n+"").trim().split(/^|\s+/)}function R(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=T(n).map(D);var u=n.length;return"function"==typeof t?r:e}function D(n){var t=L(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",q(u+" "+n))):e.setAttribute("class",q(u.replace(t," ")))}}function P(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function U(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function j(n){function t(){var t=this.ownerDocument,e=this.namespaceURI;return e?t.createElementNS(e,n):t.createElement(n)}function e(){return this.ownerDocument.createElementNS(n.space,n.local)}return"function"==typeof n?n:(n=ta.ns.qualify(n)).local?e:t}function F(){var n=this.parentNode;n&&n.removeChild(this)}function H(n){return{__data__:n}}function O(n){return function(){return ba(this,n)}}function I(n){return arguments.length||(n=e),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function Y(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function Z(n){return ya(n,Sa),n}function V(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function X(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=c(t,ra(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+ta.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),c=$;a>0&&(n=n.slice(0,a));var l=ka.get(n);return l&&(n=l,c=B),a?t?u:r:t?b:i}function $(n,t){return function(e){var r=ta.event;ta.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ta.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Aa,u="click"+r,i=ta.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ea&&(Ea="onselectstart"in e?!1:x(e.style,"userSelect")),Ea){var o=n(e).style,a=o[Ea];o[Ea]="none"}return function(n){if(i.on(r,null),Ea&&(o[Ea]=a),n){var t=function(){i.on(u,null)};i.on(u,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var u=r.createSVGPoint();if(0>Na){var i=t(n);if(i.scrollX||i.scrollY){r=ta.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Na=!(o.f||o.e),r.remove()}}return Na?(u.x=e.pageX,u.y=e.pageY):(u.x=e.clientX,u.y=e.clientY),u=u.matrixTransform(n.getScreenCTM().inverse()),[u.x,u.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ta.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nt(n){return n>1?0:-1>n?qa:Math.acos(n)}function tt(n){return n>1?Ra:-1>n?-Ra:Math.asin(n)}function et(n){return((n=Math.exp(n))-1/n)/2}function rt(n){return((n=Math.exp(n))+1/n)/2}function ut(n){return((n=Math.exp(2*n))-1)/(n+1)}function it(n){return(n=Math.sin(n/2))*n}function ot(){}function at(n,t,e){return this instanceof at?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof at?new at(n.h,n.s,n.l):bt(""+n,_t,at):new at(n,t,e)}function ct(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new mt(u(n+120),u(n),u(n-120))}function lt(n,t,e){return this instanceof lt?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof lt?new lt(n.h,n.c,n.l):n instanceof ft?gt(n.l,n.a,n.b):gt((n=wt((n=ta.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new lt(n,t,e)}function st(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new ft(e,Math.cos(n*=Da)*t,Math.sin(n)*t)}function ft(n,t,e){return this instanceof ft?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof ft?new ft(n.l,n.a,n.b):n instanceof lt?st(n.h,n.c,n.l):wt((n=mt(n)).r,n.g,n.b):new ft(n,t,e)}function ht(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=pt(u)*Xa,r=pt(r)*$a,i=pt(i)*Ba,new mt(dt(3.2404542*u-1.5371385*r-.4985314*i),dt(-.969266*u+1.8760108*r+.041556*i),dt(.0556434*u-.2040259*r+1.0572252*i))}function gt(n,t,e){return n>0?new lt(Math.atan2(e,t)*Pa,Math.sqrt(t*t+e*e),n):new lt(0/0,0/0,n)}function pt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function vt(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function dt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mt(n,t,e){return this instanceof mt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mt?new mt(n.r,n.g,n.b):bt(""+n,mt,ct):new mt(n,t,e)}function yt(n){return new mt(n>>16,n>>8&255,255&n)}function Mt(n){return yt(n)+""}function xt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function bt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(kt(u[0]),kt(u[1]),kt(u[2]))}return(i=Ga.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function _t(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new at(r,u,c)}function wt(n,t,e){n=St(n),t=St(t),e=St(e);var r=vt((.4124564*n+.3575761*t+.1804375*e)/Xa),u=vt((.2126729*n+.7151522*t+.072175*e)/$a),i=vt((.0193339*n+.119192*t+.9503041*e)/Ba);return ft(116*u-16,500*(r-u),200*(u-i))}function St(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function kt(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function Et(n){return"function"==typeof n?n:function(){return n}}function At(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Nt(t,e,n,r)}}function Nt(n,t,e,r){function u(){var n,t=c.status;if(!t&&zt(c)||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return void o.error.call(i,r)}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=ta.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,l=null;return!this.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=ta.event;ta.event=n;try{o.progress.call(i,c)}finally{ta.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(l=n,i):l},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(ra(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var s in a)c.setRequestHeader(s,a[s]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},ta.rebind(i,o,"on"),null==r?i:i.get(Ct(r))}function Ct(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function zt(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qt(){var n=Lt(),t=Tt()-n;t>24?(isFinite(t)&&(clearTimeout(tc),tc=setTimeout(qt,t)),nc=0):(nc=1,rc(qt))}function Lt(){var n=Date.now();for(ec=Ka;ec;)n>=ec.t&&(ec.f=ec.c(n-ec.t)),ec=ec.n;return n}function Tt(){for(var n,t=Ka,e=1/0;t;)t.f?t=n?n.n=t.n:Ka=t.n:(t.t<e&&(e=t.t),t=(n=t).n);return Qa=n,e}function Rt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Dt(n,t){var e=Math.pow(10,3*ga(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Pt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r&&e?function(n,t){for(var u=n.length,i=[],o=0,a=r[0],c=0;u>0&&a>0&&(c+a+1>t&&(a=Math.max(1,t-c)),i.push(n.substring(u-=a,u+a)),!((c+=a+1)>t));)a=r[o=(o+1)%r.length];return i.reverse().join(e)}:y;return function(n){var e=ic.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",c=e[4]||"",l=e[5],s=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1,y=!0;switch(h&&(h=+h.substring(1)),(l||"0"===r&&"="===o)&&(l=r="0",o="="),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":y=!1;case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=oc.get(g)||Ut;var M=l&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>p){var c=ta.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=y?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!l&&f&&(x=i(x,1/0));var S=v.length+x.length+b.length+(M?0:u.length),k=s>S?new Array(S=s-S+1).join(r):"";return M&&(x=i(k+x,k.length?s-b.length:1/0)),u+=v,n=x+b,("<"===o?u+n+k:">"===o?k+u+n:"^"===o?k.substring(0,S>>=1)+u+n+k.substring(S):u+(M?n:k+n))+e}}}function Ut(n){return n+""}function jt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ft(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new cc(e-1)),1),e}function i(n,e){return t(n=new cc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{cc=jt;var r=new jt;return r._=n,o(r,t,e)}finally{cc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Ht(n);return c.floor=c,c.round=Ht(r),c.ceil=Ht(u),c.offset=Ht(i),c.range=a,n}function Ht(n){return function(t,e){try{cc=jt;var r=new jt;return r._=t,n(r,e)._}finally{cc=Date}}}function Ot(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(c,a)),null!=(u=sc[e=n.charAt(++a)])&&(e=n.charAt(++a)),(i=N[e])&&(e=i(t,null==u?"e"===e?" ":"0":u)),o.push(e),c=a+1);return o.push(n.slice(c,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},u=e(r,n,t,0);if(u!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var i=null!=r.Z&&cc!==jt,o=new(i?jt:cc);return"j"in r?o.setFullYear(r.y,0,r.j):"w"in r&&("W"in r||"U"in r)?(o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),i?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var u,i,o,a=0,c=t.length,l=e.length;c>a;){if(r>=l)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=C[o in sc?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.slice(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,N.c.toString(),t,r)}function c(n,t,r){return e(n,N.x.toString(),t,r)}function l(n,t,r){return e(n,N.X.toString(),t,r)}function s(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{cc=jt;var t=new cc;return t._=n,r(t)}finally{cc=Date}}var r=t(n);return e.parse=function(n){try{cc=jt;var t=r.parse(n);return t&&t._}finally{cc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ae;var M=ta.map(),x=Yt(v),b=Zt(v),_=Yt(d),w=Zt(d),S=Yt(m),k=Zt(m),E=Yt(y),A=Zt(y);p.forEach(function(n,t){M.set(n.toLowerCase(),t)});var N={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return It(n.getDate(),t,2)},e:function(n,t){return It(n.getDate(),t,2)},H:function(n,t){return It(n.getHours(),t,2)},I:function(n,t){return It(n.getHours()%12||12,t,2)},j:function(n,t){return It(1+ac.dayOfYear(n),t,3)},L:function(n,t){return It(n.getMilliseconds(),t,3)},m:function(n,t){return It(n.getMonth()+1,t,2)},M:function(n,t){return It(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return It(n.getSeconds(),t,2)},U:function(n,t){return It(ac.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return It(ac.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return It(n.getFullYear()%100,t,2)},Y:function(n,t){return It(n.getFullYear()%1e4,t,4)},Z:ie,"%":function(){return"%"}},C={a:r,A:u,b:i,B:o,c:a,d:Qt,e:Qt,H:te,I:te,j:ne,L:ue,m:Kt,M:ee,p:s,S:re,U:Xt,w:Vt,W:$t,x:c,X:l,y:Wt,Y:Bt,Z:Jt,"%":oe};return t}function It(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Yt(n){return new RegExp("^(?:"+n.map(ta.requote).join("|")+")","i")}function Zt(n){for(var t=new l,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function Vt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Xt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function $t(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Bt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Wt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.y=Gt(+r[0]),e+r[0].length):-1}function Jt(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Gt(n){return n+(n>68?1900:2e3)}function Kt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Qt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function ne(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function te(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function ee(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function re(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ue(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function ie(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=ga(t)/60|0,u=ga(t)%60;return e+It(r,"0",2)+It(u,"0",2)}function oe(n,t,e){hc.lastIndex=0;var r=hc.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ae(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ce(){}function le(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function se(n,t){n&&dc.hasOwnProperty(n.type)&&dc[n.type](n,t)}function fe(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function he(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)fe(n[e],t,1);t.polygonEnd()}function ge(){function n(n,t){n*=Da,t=t*Da/2+qa/4;var e=n-r,o=e>=0?1:-1,a=o*e,c=Math.cos(t),l=Math.sin(t),s=i*l,f=u*c+s*Math.cos(a),h=s*o*Math.sin(a);yc.add(Math.atan2(h,f)),r=n,u=c,i=l}var t,e,r,u,i;Mc.point=function(o,a){Mc.point=n,r=(t=o)*Da,u=Math.cos(a=(e=a)*Da/2+qa/4),i=Math.sin(a)},Mc.lineEnd=function(){n(t,e)}}function pe(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function ve(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function de(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function me(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function ye(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function Me(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function xe(n){return[Math.atan2(n[1],n[0]),tt(n[2])]}function be(n,t){return ga(n[0]-t[0])<Ca&&ga(n[1]-t[1])<Ca}function _e(n,t){n*=Da;var e=Math.cos(t*=Da);we(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function we(n,t,e){++xc,_c+=(n-_c)/xc,wc+=(t-wc)/xc,Sc+=(e-Sc)/xc}function Se(){function n(n,u){n*=Da;var i=Math.cos(u*=Da),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),l=Math.atan2(Math.sqrt((l=e*c-r*a)*l+(l=r*o-t*c)*l+(l=t*a-e*o)*l),t*o+e*a+r*c);bc+=l,kc+=l*(t+(t=o)),Ec+=l*(e+(e=a)),Ac+=l*(r+(r=c)),we(t,e,r)}var t,e,r;qc.point=function(u,i){u*=Da;var o=Math.cos(i*=Da);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),qc.point=n,we(t,e,r)}}function ke(){qc.point=_e}function Ee(){function n(n,t){n*=Da;var e=Math.cos(t*=Da),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),l=u*c-i*a,s=i*o-r*c,f=r*a-u*o,h=Math.sqrt(l*l+s*s+f*f),g=r*o+u*a+i*c,p=h&&-nt(g)/h,v=Math.atan2(h,g);Nc+=p*l,Cc+=p*s,zc+=p*f,bc+=v,kc+=v*(r+(r=o)),Ec+=v*(u+(u=a)),Ac+=v*(i+(i=c)),we(r,u,i)}var t,e,r,u,i;qc.point=function(o,a){t=o,e=a,qc.point=n,o*=Da;var c=Math.cos(a*=Da);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),we(r,u,i)},qc.lineEnd=function(){n(t,e),qc.lineEnd=ke,qc.point=_e}}function Ae(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function Ne(){return!0}function Ce(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(be(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return void u.lineEnd()}var c=new qe(e,n,null,!0),l=new qe(e,null,c,!1);c.o=l,i.push(c),o.push(l),c=new qe(r,n,null,!1),l=new qe(r,null,c,!0),c.o=l,i.push(c),o.push(l)}}),o.sort(t),ze(i),ze(o),i.length){for(var a=0,c=e,l=o.length;l>a;++a)o[a].e=c=!c;for(var s,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;s=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,l=s.length;l>a;++a)u.point((f=s[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){s=g.p.z;for(var a=s.length-1;a>=0;--a)u.point((f=s[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,s=g.z,p=!p}while(!g.v);u.lineEnd()}}}function ze(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.n=e=n[r],e.p=u,u=e;u.n=e=n[0],e.p=u}}function qe(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Le(n,t,e,r){return function(u,i){function o(t,e){var r=u(t,e);n(t=r[0],e=r[1])&&i.point(t,e)}function a(n,t){var e=u(n,t);d.point(e[0],e[1])}function c(){y.point=a,d.lineStart()}function l(){y.point=o,d.lineEnd()}function s(n,t){v.push([n,t]);var e=u(n,t);x.point(e[0],e[1])}function f(){x.lineStart(),v=[]}function h(){s(v[0][0],v[0][1]),x.lineEnd();var n,t=x.clean(),e=M.buffer(),r=e.length;if(v.pop(),p.push(v),v=null,r)if(1&t){n=e[0];var u,r=n.length-1,o=-1;if(r>0){for(b||(i.polygonStart(),b=!0),i.lineStart();++o<r;)i.point((u=n[o])[0],u[1]);i.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Te))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:l,polygonStart:function(){y.point=s,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=l,g=ta.merge(g);var n=Fe(m,p);g.length?(b||(i.polygonStart(),b=!0),Ce(g,De,n,e,i)):n&&(b||(i.polygonStart(),b=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),b&&(i.polygonEnd(),b=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},M=Re(),x=t(M),b=!1;return y}}function Te(n){return n.length>1}function Re(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function De(n,t){return((n=n.x)[0]<0?n[1]-Ra-Ca:Ra-n[1])-((t=t.x)[0]<0?t[1]-Ra-Ca:Ra-t[1])}function Pe(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?qa:-qa,c=ga(i-e);ga(c-qa)<Ca?(n.point(e,r=(r+o)/2>0?Ra:-Ra),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=qa&&(ga(e-u)<Ca&&(e-=u*Ca),ga(i-a)<Ca&&(i-=a*Ca),r=Ue(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function Ue(n,t,e,r){var u,i,o=Math.sin(n-e);return ga(o)>Ca?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function je(n,t,e,r){var u;if(null==n)u=e*Ra,r.point(-qa,u),r.point(0,u),r.point(qa,u),r.point(qa,0),r.point(qa,-u),r.point(0,-u),r.point(-qa,-u),r.point(-qa,0),r.point(-qa,u);else if(ga(n[0]-t[0])>Ca){var i=n[0]<t[0]?qa:-qa;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function Fe(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;yc.reset();for(var a=0,c=t.length;c>a;++a){var l=t[a],s=l.length;if(s)for(var f=l[0],h=f[0],g=f[1]/2+qa/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===s&&(d=0),n=l[d];var m=n[0],y=n[1]/2+qa/4,M=Math.sin(y),x=Math.cos(y),b=m-h,_=b>=0?1:-1,w=_*b,S=w>qa,k=p*M;if(yc.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),i+=S?b+_*La:b,S^h>=e^m>=e){var E=de(pe(f),pe(n));Me(E);var A=de(u,E);Me(A);var N=(S^b>=0?-1:1)*tt(A[2]);(r>N||r===N&&(E[0]||E[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=m,p=M,v=x,f=n}}return(-Ca>i||Ca>i&&0>yc)^1&o}function He(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,l,s;return{lineStart:function(){l=c=!1,s=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?qa:-qa),h):0;if(!e&&(l=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(be(e,g)||be(p,g))&&(p[0]+=Ca,p[1]+=Ca,v=t(p[0],p[1]))),v!==c)s=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(s=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&be(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return s|(l&&c)<<1}}}function r(n,t,e){var r=pe(n),u=pe(t),o=[1,0,0],a=de(r,u),c=ve(a,a),l=a[0],s=c-l*l;if(!s)return!e&&n;var f=i*c/s,h=-i*l/s,g=de(o,a),p=ye(o,f),v=ye(a,h);me(p,v);var d=g,m=ve(p,d),y=ve(d,d),M=m*m-y*(ve(p,p)-1);if(!(0>M)){var x=Math.sqrt(M),b=ye(d,(-m-x)/y);if(me(b,p),b=xe(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(_=w,w=S,S=_);var A=S-w,N=ga(A-qa)<Ca,C=N||Ca>A;if(!N&&k>E&&(_=k,k=E,E=_),C?N?k+E>0^b[1]<(ga(b[0]-w)<Ca?k:E):k<=b[1]&&b[1]<=E:A>qa^(w<=b[0]&&b[0]<=S)){var z=ye(d,(-m+x)/y);return me(z,p),[b,xe(z)]}}}function u(t,e){var r=o?n:qa-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ga(i)>Ca,c=gr(n,6*Da);return Le(t,e,c,o?[0,-n]:[-qa,n-qa])}function Oe(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,l=o.y,s=a.x,f=a.y,h=0,g=1,p=s-c,v=f-l;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-l,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-l,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:l+h*v}),1>g&&(u.b={x:c+g*p,y:l+g*v}),u}}}}}}function Ie(n,t,e,r){function u(r,u){return ga(r[0]-n)<Ca?u>0?0:3:ga(r[0]-e)<Ca?u>0?2:1:ga(r[1]-t)<Ca?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&Q(l,i,n)>0&&++t:i[1]<=r&&Q(l,i,n)<0&&--t,l=i;return 0!==t}function l(i,a,c,l){var s=0,f=0;if(null==i||(s=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do l.point(0===s||3===s?n:e,s>1?r:t);while((s=(s+c+4)%4)!==f)}else l.point(a[0],a[1])}function s(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){s(n,t)&&a.point(n,t)}function h(){C.point=p,d&&d.push(m=[]),S=!0,w=!1,b=_=0/0}function g(){v&&(p(y,M),x&&w&&A.rejoin(),v.push(A.buffer())),C.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-Tc,Math.min(Tc,n)),t=Math.max(-Tc,Math.min(Tc,t));var e=s(n,t);if(d&&m.push([n,t]),S)y=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};N(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,m,y,M,x,b,_,w,S,k,E=a,A=Re(),N=Oe(n,t,e,r),C={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=ta.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Ce(v,i,t,l,a),a.polygonEnd()),v=d=m=null}};return C}}function Ye(n){var t=0,e=qa/3,r=ir(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*qa/180,e=n[1]*qa/180):[t/qa*180,e/qa*180]},u}function Ze(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,tt((i-(n*n+e*e)*u*u)/(2*u))]},e}function Ve(){function n(n,t){Dc+=u*n-r*t,r=n,u=t}var t,e,r,u;Hc.point=function(i,o){Hc.point=n,t=r=i,e=u=o},Hc.lineEnd=function(){n(t,e)}}function Xe(n,t){Pc>n&&(Pc=n),n>jc&&(jc=n),Uc>t&&(Uc=t),t>Fc&&(Fc=t)}function $e(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Be(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Be(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Be(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function We(n,t){_c+=n,wc+=t,++Sc}function Je(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);kc+=o*(t+n)/2,Ec+=o*(e+r)/2,Ac+=o,We(t=n,e=r)}var t,e;Ic.point=function(r,u){Ic.point=n,We(t=r,e=u)}}function Ge(){Ic.point=We}function Ke(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);kc+=o*(r+n)/2,Ec+=o*(u+t)/2,Ac+=o,o=u*n-r*t,Nc+=o*(r+n),Cc+=o*(u+t),zc+=3*o,We(r=n,u=t)}var t,e,r,u;Ic.point=function(i,o){Ic.point=n,We(t=r=i,e=u=o)},Ic.lineEnd=function(){n(t,e)}}function Qe(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,La)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function nr(n){function t(n){return(a?r:e)(n)}function e(t){return rr(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=0/0,S.point=i,t.lineStart()}function i(e,r){var i=pe([e,r]),o=n(e,r);u(M,x,y,b,_,w,M=o[0],x=o[1],y=e,b=i[0],_=i[1],w=i[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=l,S.lineEnd=s}function l(n,t){i(f=n,h=t),g=M,p=x,v=b,d=_,m=w,S.point=i}function s(){u(M,x,y,b,_,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c +},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,l,s,f,h,g,p,v,d,m){var y=s-t,M=f-e,x=y*y+M*M;if(x>4*i&&d--){var b=a+g,_=c+p,w=l+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),E=ga(ga(w)-1)<Ca||ga(r-h)<Ca?(r+h)/2:Math.atan2(_,b),A=n(E,k),N=A[0],C=A[1],z=N-t,q=C-e,L=M*z-y*q;(L*L/x>i||ga((y*z+M*q)/x-.5)>.3||o>a*g+c*p+l*v)&&(u(t,e,r,a,c,l,N,C,E,b/=S,_/=S,w,d,m),m.point(N,C),u(N,C,E,b,_,w,s,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Da),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function tr(n){var t=nr(function(t,e){return n([t*Pa,e*Pa])});return function(n){return or(t(n))}}function er(n){this.stream=n}function rr(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function ur(n){return ir(function(){return n})()}function ir(n){function t(n){return n=a(n[0]*Da,n[1]*Da),[n[0]*h+c,l-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Pa,n[1]*Pa]}function r(){a=Ae(o=lr(m,M,x),i);var n=i(v,d);return c=g-n[0]*h,l=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,o,a,c,l,s,f=nr(function(n,t){return n=i(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,M=0,x=0,b=Lc,_=y,w=null,S=null;return t.stream=function(n){return s&&(s.valid=!1),s=or(b(o,f(_(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Lc):He((w=+n)*Da),u()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Ie(n[0][0],n[0][1],n[1][0],n[1][1]):y,u()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Da,d=n[1]%360*Da,r()):[v*Pa,d*Pa]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Da,M=n[1]%360*Da,x=n.length>2?n[2]%360*Da:0,r()):[m*Pa,M*Pa,x*Pa]},ta.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function or(n){return rr(n,function(t,e){n.point(t*Da,e*Da)})}function ar(n,t){return[n,t]}function cr(n,t){return[n>qa?n-La:-qa>n?n+La:n,t]}function lr(n,t,e){return n?t||e?Ae(fr(n),hr(t,e)):fr(n):t||e?hr(t,e):cr}function sr(n){return function(t,e){return t+=n,[t>qa?t-La:-qa>t?t+La:t,e]}}function fr(n){var t=sr(n);return t.invert=sr(-n),t}function hr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*r+a*u;return[Math.atan2(c*i-s*o,a*r-l*u),tt(s*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*i-c*o;return[Math.atan2(c*i+l*o,a*r+s*u),tt(s*r-a*u)]},e}function gr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=pr(e,u),i=pr(e,i),(o>0?i>u:u>i)&&(u+=o*La)):(u=n+o*La,i=n-.5*c);for(var l,s=u;o>0?s>i:i>s;s-=c)a.point((l=xe([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],l[1])}}function pr(n,t){var e=pe(t);e[0]-=n,Me(e);var r=nt(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Ca)%(2*Math.PI)}function vr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function dr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function mr(n){return n.source}function yr(n){return n.target}function Mr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),l=u*Math.sin(n),s=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(it(r-t)+u*o*it(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*s,u=e*l+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Pa,Math.atan2(o,Math.sqrt(r*r+u*u))*Pa]}:function(){return[n*Pa,t*Pa]};return p.distance=h,p}function xr(){function n(n,u){var i=Math.sin(u*=Da),o=Math.cos(u),a=ga((n*=Da)-t),c=Math.cos(a);Yc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Zc.point=function(u,i){t=u*Da,e=Math.sin(i*=Da),r=Math.cos(i),Zc.point=n},Zc.lineEnd=function(){Zc.point=Zc.lineEnd=b}}function br(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function _r(n,t){function e(n,t){o>0?-Ra+Ca>t&&(t=-Ra+Ca):t>Ra-Ca&&(t=Ra-Ca);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(qa/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=K(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Ra]},e):Sr}function wr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ga(u)<Ca?ar:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-K(u)*Math.sqrt(n*n+e*e)]},e)}function Sr(n,t){return[n,Math.log(Math.tan(qa/4+t/2))]}function kr(n){var t,e=ur(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=qa*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Er(n,t){return[Math.log(Math.tan(qa/4+t/2)),-n]}function Ar(n){return n[0]}function Nr(n){return n[1]}function Cr(n){for(var t=n.length,e=[0,1],r=2,u=2;t>u;u++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function zr(n,t){return n[0]-t[0]||n[1]-t[1]}function qr(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Lr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],l=e[1],s=t[1]-c,f=r[1]-l,h=(a*(c-l)-f*(u-i))/(f*o-a*s);return[u+h*o,c+h*s]}function Tr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Rr(){tu(this),this.edge=this.site=this.circle=null}function Dr(n){var t=el.pop()||new Rr;return t.site=n,t}function Pr(n){Xr(n),Qc.remove(n),el.push(n),tu(n)}function Ur(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Pr(n);for(var c=i;c.circle&&ga(e-c.circle.x)<Ca&&ga(r-c.circle.cy)<Ca;)i=c.P,a.unshift(c),Pr(c),c=i;a.unshift(c),Xr(c);for(var l=o;l.circle&&ga(e-l.circle.x)<Ca&&ga(r-l.circle.cy)<Ca;)o=l.N,a.push(l),Pr(l),l=o;a.push(l),Xr(l);var s,f=a.length;for(s=1;f>s;++s)l=a[s],c=a[s-1],Kr(l.edge,c.site,l.site,u);c=a[0],l=a[f-1],l.edge=Jr(c.site,l.site,null,u),Vr(c),Vr(l)}function jr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Qc._;a;)if(r=Fr(a,o)-i,r>Ca)a=a.L;else{if(u=i-Hr(a,o),!(u>Ca)){r>-Ca?(t=a.P,e=a):u>-Ca?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Dr(n);if(Qc.insert(t,c),t||e){if(t===e)return Xr(t),e=Dr(t.site),Qc.insert(c,e),c.edge=e.edge=Jr(t.site,c.site),Vr(t),void Vr(e);if(!e)return void(c.edge=Jr(t.site,c.site));Xr(t),Xr(e);var l=t.site,s=l.x,f=l.y,h=n.x-s,g=n.y-f,p=e.site,v=p.x-s,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,M=v*v+d*d,x={x:(d*y-g*M)/m+s,y:(h*M-v*y)/m+f};Kr(e.edge,l,p,x),c.edge=Jr(l,n,null,x),e.edge=Jr(n,p,null,x),Vr(t),Vr(e)}}function Fr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,l=c-t;if(!l)return a;var s=a-r,f=1/i-1/l,h=s/l;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*l)-c+l/2+u-i/2)))/f+r:(r+a)/2}function Hr(n,t){var e=n.N;if(e)return Fr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Or(n){this.site=n,this.edges=[]}function Ir(n){for(var t,e,r,u,i,o,a,c,l,s,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Kc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)s=a[o].end(),r=s.x,u=s.y,l=a[++o%c].start(),t=l.x,e=l.y,(ga(r-t)>Ca||ga(u-e)>Ca)&&(a.splice(o,0,new Qr(Gr(i.site,s,ga(r-f)<Ca&&p-u>Ca?{x:f,y:ga(t-f)<Ca?e:p}:ga(u-p)<Ca&&h-r>Ca?{x:ga(e-p)<Ca?t:h,y:p}:ga(r-h)<Ca&&u-g>Ca?{x:h,y:ga(t-h)<Ca?e:g}:ga(u-g)<Ca&&r-f>Ca?{x:ga(e-g)<Ca?t:f,y:g}:null),i.site,null)),++c)}function Yr(n,t){return t.angle-n.angle}function Zr(){tu(this),this.x=this.y=this.arc=this.site=this.cy=null}function Vr(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,u=n.site,i=e.site;if(r!==i){var o=u.x,a=u.y,c=r.x-o,l=r.y-a,s=i.x-o,f=i.y-a,h=2*(c*f-l*s);if(!(h>=-za)){var g=c*c+l*l,p=s*s+f*f,v=(f*g-l*p)/h,d=(c*p-s*g)/h,f=d+a,m=rl.pop()||new Zr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,M=tl._;M;)if(m.y<M.y||m.y===M.y&&m.x<=M.x){if(!M.L){y=M.P;break}M=M.L}else{if(!M.R){y=M;break}M=M.R}tl.insert(y,m),y||(nl=m)}}}}function Xr(n){var t=n.circle;t&&(t.P||(nl=t.N),tl.remove(t),rl.push(t),tu(t),n.circle=null)}function $r(n){for(var t,e=Gc,r=Oe(n[0][0],n[0][1],n[1][0],n[1][1]),u=e.length;u--;)t=e[u],(!Br(t,n)||!r(t)||ga(t.a.x-t.b.x)<Ca&&ga(t.a.y-t.b.y)<Ca)&&(t.a=t.b=null,e.splice(u,1))}function Br(n,t){var e=n.b;if(e)return!0;var r,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],l=t[1][1],s=n.l,f=n.r,h=s.x,g=s.y,p=f.x,v=f.y,d=(h+p)/2,m=(g+v)/2;if(v===g){if(o>d||d>=a)return;if(h>p){if(i){if(i.y>=l)return}else i={x:d,y:c};e={x:d,y:l}}else{if(i){if(i.y<c)return}else i={x:d,y:l};e={x:d,y:c}}}else if(r=(h-p)/(v-g),u=m-r*d,-1>r||r>1)if(h>p){if(i){if(i.y>=l)return}else i={x:(c-u)/r,y:c};e={x:(l-u)/r,y:l}}else{if(i){if(i.y<c)return}else i={x:(l-u)/r,y:l};e={x:(c-u)/r,y:c}}else if(v>g){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.x<o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}return n.a=i,n.b=e,!0}function Wr(n,t){this.l=n,this.r=t,this.a=this.b=null}function Jr(n,t,e,r){var u=new Wr(n,t);return Gc.push(u),e&&Kr(u,n,t,e),r&&Kr(u,t,n,r),Kc[n.i].edges.push(new Qr(u,n,t)),Kc[t.i].edges.push(new Qr(u,t,n)),u}function Gr(n,t,e){var r=new Wr(n,null);return r.a=t,r.b=e,Gc.push(r),r}function Kr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function Qr(n,t,e){var r=n.a,u=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(u.x-r.x,r.y-u.y):Math.atan2(r.x-u.x,u.y-r.y)}function nu(){this._=null}function tu(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function eu(n,t){var e=t,r=t.R,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ru(n,t){var e=t,r=t.L,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function uu(n){for(;n.L;)n=n.L;return n}function iu(n,t){var e,r,u,i=n.sort(ou).pop();for(Gc=[],Kc=new Array(n.length),Qc=new nu,tl=new nu;;)if(u=nl,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==e||i.y!==r)&&(Kc[i.i]=new Or(i),jr(i),e=i.x,r=i.y),i=n.pop();else{if(!u)break;Ur(u.arc)}t&&($r(t),Ir(t));var o={cells:Kc,edges:Gc};return Qc=tl=Gc=Kc=null,o}function ou(n,t){return t.y-n.y||t.x-n.x}function au(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function cu(n){return n.x}function lu(n){return n.y}function su(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function fu(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&fu(n,c[0],e,r,o,a),c[1]&&fu(n,c[1],o,r,u,a),c[2]&&fu(n,c[2],e,a,o,i),c[3]&&fu(n,c[3],o,a,u,i)}}function hu(n,t,e,r,u,i,o){var a,c=1/0;return function l(n,s,f,h,g){if(!(s>i||f>o||r>h||u>g)){if(p=n.point){var p,v=t-n.x,d=e-n.y,m=v*v+d*d;if(c>m){var y=Math.sqrt(c=m);r=t-y,u=e-y,i=t+y,o=e+y,a=p}}for(var M=n.nodes,x=.5*(s+h),b=.5*(f+g),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:l(n,s,f,x,b);break;case 1:l(n,x,f,h,b);break;case 2:l(n,s,b,x,g);break;case 3:l(n,x,b,h,g)}}}(n,r,u,i,o),a}function gu(n,t){n=ta.rgb(n),t=ta.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+xt(Math.round(e+i*n))+xt(Math.round(r+o*n))+xt(Math.round(u+a*n))}}function pu(n,t){var e,r={},u={};for(e in n)e in t?r[e]=mu(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function vu(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function du(n,t){var e,r,u,i=il.lastIndex=ol.lastIndex=0,o=-1,a=[],c=[];for(n+="",t+="";(e=il.exec(n))&&(r=ol.exec(t));)(u=r.index)>i&&(u=t.slice(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:vu(e,r)})),i=ol.lastIndex;return i<t.length&&(u=t.slice(i),a[o]?a[o]+=u:a[++o]=u),a.length<2?c[0]?(t=c[0].x,function(n){return t(n)+""}):function(){return t}:(t=c.length,function(n){for(var e,r=0;t>r;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function mu(n,t){for(var e,r=ta.interpolators.length;--r>=0&&!(e=ta.interpolators[r](n,t)););return e}function yu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(mu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function Mu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function xu(n){return function(t){return 1-n(1-t)}}function bu(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function _u(n){return n*n}function wu(n){return n*n*n}function Su(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function ku(n){return function(t){return Math.pow(t,n)}}function Eu(n){return 1-Math.cos(n*Ra)}function Au(n){return Math.pow(2,10*(n-1))}function Nu(n){return 1-Math.sqrt(1-n*n)}function Cu(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/La*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*La/t)}}function zu(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function qu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Lu(n,t){n=ta.hcl(n),t=ta.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return st(e+i*n,r+o*n,u+a*n)+""}}function Tu(n,t){n=ta.hsl(n),t=ta.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ct(e+i*n,r+o*n,u+a*n)+""}}function Ru(n,t){n=ta.lab(n),t=ta.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ht(e+i*n,r+o*n,u+a*n)+""}}function Du(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Pu(n){var t=[n.a,n.b],e=[n.c,n.d],r=ju(t),u=Uu(t,e),i=ju(Fu(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Pa,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Pa:0}function Uu(n,t){return n[0]*t[0]+n[1]*t[1]}function ju(n){var t=Math.sqrt(Uu(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Fu(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Hu(n,t){var e,r=[],u=[],i=ta.transform(n),o=ta.transform(t),a=i.translate,c=o.translate,l=i.rotate,s=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:vu(a[0],c[0])},{i:3,x:vu(a[1],c[1])})):r.push(c[0]||c[1]?"translate("+c+")":""),l!=s?(l-s>180?s+=360:s-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:vu(l,s)})):s&&r.push(r.pop()+"rotate("+s+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:vu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:vu(g[0],p[0])},{i:e-2,x:vu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function Ou(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Iu(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Yu(n){for(var t=n.source,e=n.target,r=Vu(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function Zu(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Vu(n,t){if(n===t)return n;for(var e=Zu(n),r=Zu(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function Xu(n){n.fixed|=2}function $u(n){n.fixed&=-7}function Bu(n){n.fixed|=4,n.px=n.x,n.py=n.y}function Wu(n){n.fixed&=-5}function Ju(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(Ju(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var l=t*e[n.point.index];n.charge+=n.pointCharge=l,r+=l*n.point.x,u+=l*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function Gu(n,t){return ta.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=ri,n}function Ku(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(u=n.children)&&(r=u.length))for(var r,u;--r>=0;)e.push(u[r])}function Qu(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++o<u;)e.push(i[o]);for(;null!=(n=r.pop());)t(n)}function ni(n){return n.children}function ti(n){return n.value}function ei(n,t){return t.value-n.value}function ri(n){return ta.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function ui(n){return n.x}function ii(n){return n.y}function oi(n,t,e){n.y0=t,n.y=e}function ai(n){return ta.range(n.length)}function ci(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function li(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function si(n){return n.reduce(fi,0)}function fi(n,t){return n+t[1]}function hi(n,t){return gi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function gi(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function pi(n){return[ta.min(n),ta.max(n)]}function vi(n,t){return n.value-t.value}function di(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function mi(n,t){n._pack_next=t,t._pack_prev=n}function yi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function Mi(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(l=e.length)){var e,r,u,i,o,a,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(xi),r=e[0],r.x=-r.r,r.y=0,t(r),l>1&&(u=e[1],u.x=u.r,u.y=0,t(u),l>2))for(i=e[2],wi(r,u,i),t(i),di(r,i),r._pack_prev=i,di(i,u),u=r._pack_next,o=3;l>o;o++){wi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(yi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!yi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.r<r.r?mi(r,u=a):mi(r=c,u),o--):(di(r,i),u=i,t(i))}var m=(s+f)/2,y=(h+g)/2,M=0;for(o=0;l>o;o++)i=e[o],i.x-=m,i.y-=y,M=Math.max(M,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=M,e.forEach(bi)}}function xi(n){n._pack_next=n._pack_prev=n}function bi(n){delete n._pack_next,delete n._pack_prev}function _i(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)_i(u[i],t,e,r)}function wi(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),l=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+l*i,e.y=n.y+c*i-l*u}else e.x=n.x+r,e.y=n.y}function Si(n,t){return n.parent==t.parent?1:2}function ki(n){var t=n.children;return t.length?t[0]:n.t}function Ei(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function Ai(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function Ni(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Ci(n,t,e){return n.a.parent===t.parent?n.a:e}function zi(n){return 1+ta.max(n,function(n){return n.y})}function qi(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Li(n){var t=n.children;return t&&t.length?Li(t[0]):n}function Ti(n){var t,e=n.children;return e&&(t=e.length)?Ti(e[t-1]):n}function Ri(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Di(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Pi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ui(n){return n.rangeExtent?n.rangeExtent():Pi(n.range())}function ji(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Fi(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Hi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ml}function Oi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=ta.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function Ii(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?Oi:ji,c=r?Iu:Ou;return o=u(n,t,c,e),a=u(t,n,c,mu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Du)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Xi(n,t)},i.tickFormat=function(t,e){return $i(n,t,e)},i.nice=function(t){return Zi(n,t),u()},i.copy=function(){return Ii(n,t,e,r)},u()}function Yi(n,t){return ta.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Zi(n,t){return Fi(n,Hi(Vi(n,t)[2]))}function Vi(n,t){null==t&&(t=10);var e=Pi(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Xi(n,t){return ta.range.apply(ta,Vi(n,t))}function $i(n,t,e){var r=Vi(n,t);if(e){var u=ic.exec(e);if(u.shift(),"s"===u[8]){var i=ta.formatPrefix(Math.max(ga(r[0]),ga(r[1])));return u[7]||(u[7]="."+Bi(i.scale(r[2]))),u[8]="f",e=ta.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Wi(u[8],r)),e=u.join("")}else e=",."+Bi(r[2])+"f";return ta.format(e)}function Bi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Wi(n,t){var e=Bi(t[2]);return n in yl?Math.abs(e-Bi(Math.max(ga(t[0]),ga(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Ji(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Fi(r.map(u),e?Math:xl);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Pi(r),o=[],a=n[0],c=n[1],l=Math.floor(u(a)),s=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(s-l)){if(e){for(;s>l;l++)for(var h=1;f>h;h++)o.push(i(l)*h);o.push(i(l))}else for(o.push(i(l));l++<s;)for(var h=f-1;h>0;h--)o.push(i(l)*h);for(l=0;o[l]<a;l++);for(s=o.length;o[s-1]>c;s--);o=o.slice(l,s)}return o},o.tickFormat=function(n,t){if(!arguments.length)return Ml;arguments.length<2?t=Ml:"function"!=typeof t&&(t=ta.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Ji(n.copy(),t,e,r)},Yi(o,n)}function Gi(n,t,e){function r(t){return n(u(t))}var u=Ki(t),i=Ki(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Xi(e,n)},r.tickFormat=function(n,t){return $i(e,n,t)},r.nice=function(n){return r.domain(Zi(e,n))},r.exponent=function(o){return arguments.length?(u=Ki(t=o),i=Ki(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Gi(n.copy(),t,e)},Yi(r,n)}function Ki(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Qi(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return ta.range(n.length).map(function(n){return t+e*n})}var u,i,o;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new l;for(var i,o=-1,a=r.length;++o<a;)u.has(i=r[o])||u.set(i,n.push(i));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(i=n,o=0,t={t:"range",a:arguments},e):i},e.rangePoints=function(u,a){arguments.length<2&&(a=0);var c=u[0],l=u[1],s=n.length<2?(c=(c+l)/2,0):(l-c)/(n.length-1+a);return i=r(c+s*a/2,s),o=0,t={t:"rangePoints",a:arguments},e},e.rangeRoundPoints=function(u,a){arguments.length<2&&(a=0);var c=u[0],l=u[1],s=n.length<2?(c=l=Math.round((c+l)/2),0):(l-c)/(n.length-1+a)|0;return i=r(c+Math.round(s*a/2+(l-c-(n.length-1+a)*s)/2),s),o=0,t={t:"rangeRoundPoints",a:arguments},e},e.rangeBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=(f-s)/(n.length-a+2*c);return i=r(s+h*c,h),l&&i.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=Math.floor((f-s)/(n.length-a+2*c));return i=r(s+Math.round((f-s-(n.length-a)*h)/2),h),l&&i.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Pi(t.a[0])},e.copy=function(){return Qi(n,t)},e.domain(n)}function no(n,t){function i(){var e=0,r=t.length;for(a=[];++e<r;)a[e-1]=ta.quantile(n,e/r);return o}function o(n){return isNaN(n=+n)?void 0:t[ta.bisect(a,n)]}var a;return o.domain=function(t){return arguments.length?(n=t.map(r).filter(u).sort(e),i()):n},o.range=function(n){return arguments.length?(t=n,i()):t},o.quantiles=function(){return a},o.invertExtent=function(e){return e=t.indexOf(e),0>e?[0/0,0/0]:[e>0?a[e-1]:n[0],e<a.length?a[e]:n[n.length-1]]},o.copy=function(){return no(n,t)},i()}function to(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return to(n,t,e)},u()}function eo(n,t){function e(e){return e>=e?t[ta.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return eo(n,t)},e}function ro(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Xi(n,t)},t.tickFormat=function(t,e){return $i(n,t,e)},t.copy=function(){return ro(n)},t}function uo(){return 0}function io(n){return n.innerRadius}function oo(n){return n.outerRadius}function ao(n){return n.startAngle}function co(n){return n.endAngle}function lo(n){return n&&n.padAngle}function so(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function fo(n,t,e,r,u){var i=n[0]-t[0],o=n[1]-t[1],a=(u?r:-r)/Math.sqrt(i*i+o*o),c=a*o,l=-a*i,s=n[0]+c,f=n[1]+l,h=t[0]+c,g=t[1]+l,p=(s+h)/2,v=(f+g)/2,d=h-s,m=g-f,y=d*d+m*m,M=e-r,x=s*g-h*f,b=(0>m?-1:1)*Math.sqrt(M*M*y-x*x),_=(x*m-d*b)/y,w=(-x*d-m*b)/y,S=(x*m+d*b)/y,k=(-x*d+m*b)/y,E=_-p,A=w-v,N=S-p,C=k-v;return E*E+A*A>N*N+C*C&&(_=S,w=k),[[_-c,w-l],[_*e/M,w*e/M]]}function ho(n){function t(t){function o(){l.push("M",i(n(s),a))}for(var c,l=[],s=[],f=-1,h=t.length,g=Et(e),p=Et(r);++f<h;)u.call(this,c=t[f],f)?s.push([+g.call(this,c,f),+p.call(this,c,f)]):s.length&&(o(),s=[]);return s.length&&o(),l.length?l.join(""):null}var e=Ar,r=Nr,u=Ne,i=go,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=El.get(n)||go).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function go(n){return n.join("L")}function po(n){return go(n)+"Z"}function vo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function mo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function yo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function Mo(n,t){return n.length<4?go(n):n[1]+_o(n.slice(1,-1),wo(n,t))}function xo(n,t){return n.length<3?go(n):n[0]+_o((n.push(n[0]),n),wo([n[n.length-2]].concat(n,[n[1]]),t))}function bo(n,t){return n.length<3?go(n):n[0]+_o(n,wo(n,t))}function _o(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return go(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var l=2;l<t.length;l++,c++)i=n[c],a=t[l],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var s=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+s[0]+","+s[1]}return r}function wo(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function So(n){if(n.length<3)return go(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",No(Cl,o),",",No(Cl,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Co(c,o,a);return n.pop(),c.push("L",r),c.join("")}function ko(n){if(n.length<4)return go(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(No(Cl,i)+","+No(Cl,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),Co(e,i,o);return e.join("")}function Eo(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[No(Cl,o),",",No(Cl,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Co(t,o,a);return t.join("")}function Ao(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,l=-1;++l<=e;)r=n[l],u=l/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return So(n)}function No(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Co(n,t,e){n.push("C",No(Al,t),",",No(Al,e),",",No(Nl,t),",",No(Nl,e),",",No(Cl,t),",",No(Cl,e))}function zo(n,t){return(t[1]-n[1])/(t[0]-n[0])}function qo(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=zo(u,i);++t<e;)r[t]=(o+(o=zo(u=i,i=n[t+1])))/2;return r[t]=o,r}function Lo(n){for(var t,e,r,u,i=[],o=qo(n),a=-1,c=n.length-1;++a<c;)t=zo(n[a],n[a+1]),ga(t)<Ca?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function To(n){return n.length<3?go(n):n[0]+_o(n,Lo(n))}function Ro(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]-Ra,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Do(n){function t(t){function c(){v.push("M",a(n(m),f),s,l(n(d.reverse()),f),"Z")}for(var h,g,p,v=[],d=[],m=[],y=-1,M=t.length,x=Et(e),b=Et(u),_=e===r?function(){return g}:Et(r),w=u===i?function(){return p}:Et(i);++y<M;)o.call(this,h=t[y],y)?(d.push([g=+x.call(this,h,y),p=+b.call(this,h,y)]),m.push([+_.call(this,h,y),+w.call(this,h,y)])):d.length&&(c(),d=[],m=[]);return d.length&&c(),v.length?v.join(""):null}var e=Ar,r=Ar,u=0,i=Nr,o=Ne,a=go,c=a.key,l=a,s="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r +},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=El.get(n)||go).key,l=a.reverse||a,s=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function Po(n){return n.radius}function Uo(n){return[n.x,n.y]}function jo(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]-Ra;return[e*Math.cos(r),e*Math.sin(r)]}}function Fo(){return 64}function Ho(){return"circle"}function Oo(n){var t=Math.sqrt(n/qa);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Io(n){return function(){var t,e;(t=this[n])&&(e=t[t.active])&&(--t.count?delete t[t.active]:delete this[n],t.active+=.5,e.event&&e.event.interrupt.call(this,this.__data__,e.index))}}function Yo(n,t,e){return ya(n,Pl),n.namespace=t,n.id=e,n}function Zo(n,t,e,r){var u=n.id,i=n.namespace;return Y(n,"function"==typeof e?function(n,o,a){n[i][u].tween.set(t,r(e.call(n,n.__data__,o,a)))}:(e=r(e),function(n){n[i][u].tween.set(t,e)}))}function Vo(n){return null==n&&(n=""),function(){this.textContent=n}}function Xo(n){return null==n?"__transition__":"__transition_"+n+"__"}function $o(n,t,e,r,u){var i=n[e]||(n[e]={active:0,count:0}),o=i[r];if(!o){var a=u.time;o=i[r]={tween:new l,time:a,delay:u.delay,duration:u.duration,ease:u.ease,index:t},u=null,++i.count,ta.timer(function(u){function c(e){if(i.active>r)return s();var u=i[i.active];u&&(--i.count,delete i[i.active],u.event&&u.event.interrupt.call(n,n.__data__,u.index)),i.active=r,o.event&&o.event.start.call(n,n.__data__,t),o.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&v.push(r)}),h=o.ease,f=o.duration,ta.timer(function(){return p.c=l(e||1)?Ne:l,1},0,a)}function l(e){if(i.active!==r)return 1;for(var u=e/f,a=h(u),c=v.length;c>0;)v[--c].call(n,a);return u>=1?(o.event&&o.event.end.call(n,n.__data__,t),s()):void 0}function s(){return--i.count?delete i[r]:delete n[e],1}var f,h,g=o.delay,p=ec,v=[];return p.t=g+a,u>=g?c(u-g):void(p.c=c)},0,a)}}function Bo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Wo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Jo(n){return n.toISOString()}function Go(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=ta.bisect(Vl,u);return i==Vl.length?[t.year,Vi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Vl[i-1]<Vl[i]/u?i-1:i]:[Bl,Vi(n,e)[2]]}return r.invert=function(t){return Ko(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Ko)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Ko(+e+1),t).length}var i=r.domain(),o=Pi(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(Fi(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Ko(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Ko(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Pi(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Ko(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Go(n.copy(),t,e)},Yi(r,n)}function Ko(n){return new Date(n)}function Qo(n){return JSON.parse(n.responseText)}function na(n){var t=ua.createRange();return t.selectNode(ua.body),t.createContextualFragment(n.responseText)}var ta={version:"3.5.6"},ea=[].slice,ra=function(n){return ea.call(n)},ua=this.document;if(ua)try{ra(ua.documentElement.childNodes)[0].nodeType}catch(ia){ra=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),ua)try{ua.createElement("DIV").style.setProperty("opacity",0,"")}catch(oa){var aa=this.Element.prototype,ca=aa.setAttribute,la=aa.setAttributeNS,sa=this.CSSStyleDeclaration.prototype,fa=sa.setProperty;aa.setAttribute=function(n,t){ca.call(this,n,t+"")},aa.setAttributeNS=function(n,t,e){la.call(this,n,t,e+"")},sa.setProperty=function(n,t,e){fa.call(this,n,t+"",e)}}ta.ascending=e,ta.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},ta.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i;)if(null!=(r=n[u])&&r>=r){e=r;break}for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=r;break}for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},ta.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i;)if(null!=(r=n[u])&&r>=r){e=r;break}for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=r;break}for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},ta.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o;)if(null!=(r=n[i])&&r>=r){e=u=r;break}for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=u=r;break}for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},ta.sum=function(n,t){var e,r=0,i=n.length,o=-1;if(1===arguments.length)for(;++o<i;)u(e=+n[o])&&(r+=e);else for(;++o<i;)u(e=+t.call(n,n[o],o))&&(r+=e);return r},ta.mean=function(n,t){var e,i=0,o=n.length,a=-1,c=o;if(1===arguments.length)for(;++a<o;)u(e=r(n[a]))?i+=e:--c;else for(;++a<o;)u(e=r(t.call(n,n[a],a)))?i+=e:--c;return c?i/c:void 0},ta.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;return i?u+i*(n[r]-u):u},ta.median=function(n,t){var i,o=[],a=n.length,c=-1;if(1===arguments.length)for(;++c<a;)u(i=r(n[c]))&&o.push(i);else for(;++c<a;)u(i=r(t.call(n,n[c],c)))&&o.push(i);return o.length?ta.quantile(o.sort(e),.5):void 0},ta.variance=function(n,t){var e,i,o=n.length,a=0,c=0,l=-1,s=0;if(1===arguments.length)for(;++l<o;)u(e=r(n[l]))&&(i=e-a,a+=i/++s,c+=i*(e-a));else for(;++l<o;)u(e=r(t.call(n,n[l],l)))&&(i=e-a,a+=i/++s,c+=i*(e-a));return s>1?c/(s-1):void 0},ta.deviation=function(){var n=ta.variance.apply(this,arguments);return n?Math.sqrt(n):n};var ha=i(e);ta.bisectLeft=ha.left,ta.bisect=ta.bisectRight=ha.right,ta.bisector=function(n){return i(1===n.length?function(t,r){return e(n(t),r)}:n)},ta.shuffle=function(n,t,e){(i=arguments.length)<3&&(e=n.length,2>i&&(t=0));for(var r,u,i=e-t;i;)u=Math.random()*i--|0,r=n[i+t],n[i+t]=n[u+t],n[u+t]=r;return n},ta.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ta.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},ta.zip=function(){if(!(r=arguments.length))return[];for(var n=-1,t=ta.min(arguments,o),e=new Array(t);++n<t;)for(var r,u=-1,i=e[n]=new Array(r);++u<r;)i[u]=arguments[u][n];return e},ta.transpose=function(n){return ta.zip.apply(ta,n)},ta.keys=function(n){var t=[];for(var e in n)t.push(e);return t},ta.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},ta.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},ta.merge=function(n){for(var t,e,r,u=n.length,i=-1,o=0;++i<u;)o+=n[i].length;for(e=new Array(o);--u>=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ga=Math.abs;ta.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,u=[],i=a(ga(e)),o=-1;if(n*=i,t*=i,e*=i,0>e)for(;(r=n+e*++o)>t;)u.push(r/i);else for(;(r=n+e*++o)<t;)u.push(r/i);return u},ta.map=function(n,t){var e=new l;if(n instanceof l)n.forEach(function(n,t){e.set(n,t)});else if(Array.isArray(n)){var r,u=-1,i=n.length;if(1===arguments.length)for(;++u<i;)e.set(u,n[u]);else for(;++u<i;)e.set(t.call(n,r=n[u],u),r)}else for(var o in n)e.set(o,n[o]);return e};var pa="__proto__",va="\x00";c(l,{has:h,get:function(n){return this._[s(n)]},set:function(n,t){return this._[s(n)]=t},remove:g,keys:p,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:f(t),value:this._[t]});return n},size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t),this._[t])}}),ta.nest=function(){function n(t,o,a){if(a>=i.length)return r?r.call(u,o):e?o.sort(e):o;for(var c,s,f,h,g=-1,p=o.length,v=i[a++],d=new l;++g<p;)(h=d.get(c=v(s=o[g])))?h.push(s):d.set(c,[s]);return t?(s=t(),f=function(e,r){s.set(e,n(t,r,a))}):(s={},f=function(e,r){s[e]=n(t,r,a)}),d.forEach(f),s}function t(n,e){if(e>=i.length)return n;var r=[],u=o[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],o=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(ta.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return o[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},ta.set=function(n){var t=new m;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},c(m,{has:h,add:function(n){return this._[s(n+="")]=!0,n},remove:g,values:p,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t))}}),ta.behavior={},ta.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=M(n,t,t[e]);return n};var da=["webkit","ms","moz","Moz","o","O"];ta.dispatch=function(){for(var n=new _,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=w(n);return n},_.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ta.event=null,ta.requote=function(n){return n.replace(ma,"\\$&")};var ma=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ya={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},Ma=function(n,t){return t.querySelector(n)},xa=function(n,t){return t.querySelectorAll(n)},ba=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(ba=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(Ma=function(n,t){return Sizzle(n,t)[0]||null},xa=Sizzle,ba=Sizzle.matchesSelector),ta.selection=function(){return ta.select(ua.documentElement)};var _a=ta.selection.prototype=[];_a.select=function(n){var t,e,r,u,i=[];n=N(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,l=r.length;++c<l;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return A(i)},_a.selectAll=function(n){var t,e,r=[];n=C(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=ra(n.call(e,e.__data__,a,u))),t.parentNode=e);return A(r)};var wa={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};ta.ns={prefix:wa,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.slice(0,t),n=n.slice(t+1)),wa.hasOwnProperty(e)?{space:wa[e],local:n}:n}},_a.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ta.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},_a.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!L(n[u]).test(t))return!1;return!0}for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},_a.style=function(n,e,r){var u=arguments.length;if(3>u){if("string"!=typeof n){2>u&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>u){var i=this.node();return t(i).getComputedStyle(i,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},_a.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},_a.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},_a.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},_a.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},_a.insert=function(n,t){return n=j(n),t=N(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},_a.remove=function(){return this.each(F)},_a.data=function(n,t){function e(n,e){var r,u,i,o=n.length,f=e.length,h=Math.min(o,f),g=new Array(f),p=new Array(f),v=new Array(o);if(t){var d,m=new l,y=new Array(o);for(r=-1;++r<o;)m.has(d=t.call(u=n[r],u.__data__,r))?v[r]=u:m.set(d,u),y[r]=d;for(r=-1;++r<f;)(u=m.get(d=t.call(e,i=e[r],r)))?u!==!0&&(g[r]=u,u.__data__=i):p[r]=H(i),m.set(d,!0);for(r=-1;++r<o;)m.get(y[r])!==!0&&(v[r]=n[r])}else{for(r=-1;++r<h;)u=n[r],i=e[r],u?(u.__data__=i,g[r]=u):p[r]=H(i);for(;f>r;++r)p[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,a.push(p),c.push(g),s.push(v)}var r,u,i=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++i<o;)(u=r[i])&&(n[i]=u.__data__);return n}var a=Z([]),c=A([]),s=A([]);if("function"==typeof n)for(;++i<o;)e(r=this[i],n.call(r,r.parentNode.__data__,i));else for(;++i<o;)e(r=this[i],n);return c.enter=function(){return a},c.exit=function(){return s},c},_a.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},_a.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=O(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return A(u)},_a.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},_a.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},_a.each=function(n){return Y(this,function(t,e,r){n.call(t,t.__data__,e,r)})},_a.call=function(n){var t=ra(arguments);return n.apply(t[0]=this,t),this},_a.empty=function(){return!this.node()},_a.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},_a.size=function(){var n=0;return Y(this,function(){++n}),n};var Sa=[];ta.selection.enter=Z,ta.selection.enter.prototype=Sa,Sa.append=_a.append,Sa.empty=_a.empty,Sa.node=_a.node,Sa.call=_a.call,Sa.size=_a.size,Sa.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var l=-1,s=u.length;++l<s;)(i=u[l])?(t.push(r[l]=e=n.call(u.parentNode,i.__data__,l,a)),e.__data__=i.__data__):t.push(null)}return A(o)},Sa.insert=function(n,t){return arguments.length<2&&(t=V(this)),_a.insert.call(this,n,t)},ta.select=function(t){var e;return"string"==typeof t?(e=[Ma(t,ua)],e.parentNode=ua.documentElement):(e=[t],e.parentNode=n(t)),A([e])},ta.selectAll=function(n){var t;return"string"==typeof n?(t=ra(xa(n,ua)),t.parentNode=ua.documentElement):(t=n,t.parentNode=null),A([t])},_a.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var ka=ta.map({mouseenter:"mouseover",mouseleave:"mouseout"});ua&&ka.forEach(function(n){"on"+n in ua&&ka.remove(n)});var Ea,Aa=0;ta.mouse=function(n){return J(n,k())};var Na=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ta.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return J(n,r)},ta.behavior.drag=function(){function n(){this.on("mousedown.drag",i).on("touchstart.drag",o)}function e(n,t,e,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],p|=n|e,M=r,g({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&ta.event.target===f),g({type:"dragend"}))}var l,s=this,f=ta.event.target,h=s.parentNode,g=r.of(s,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=ta.select(e(f)).on(i+d,a).on(o+d,c),y=W(f),M=t(h,v);u?(l=u.apply(s,arguments),l=[l.x-M[0],l.y-M[1]]):l=[0,0],g({type:"dragstart"})}}var r=E(n,"drag","dragstart","dragend"),u=null,i=e(b,ta.mouse,t,"mousemove","mouseup"),o=e(G,ta.touch,y,"touchmove","touchend");return n.origin=function(t){return arguments.length?(u=t,n):u},ta.rebind(n,r,"on")},ta.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?ra(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Ca=1e-6,za=Ca*Ca,qa=Math.PI,La=2*qa,Ta=La-Ca,Ra=qa/2,Da=qa/180,Pa=180/qa,Ua=Math.SQRT2,ja=2,Fa=4;ta.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=rt(v),o=i/(ja*h)*(e*ut(Ua*t+v)-et(v));return[r+o*l,u+o*s,i*e/rt(Ua*t+v)]}return[r+n*l,u+n*s,i*Math.exp(Ua*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],l=o-r,s=a-u,f=l*l+s*s,h=Math.sqrt(f),g=(c*c-i*i+Fa*f)/(2*i*ja*h),p=(c*c-i*i-Fa*f)/(2*c*ja*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Ua;return e.duration=1e3*y,e},ta.behavior.zoom=function(){function n(n){n.on(q,f).on(Oa+".zoom",g).on("dblclick.zoom",p).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function u(n){k.k=Math.max(N[0],Math.min(N[1],n))}function i(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},u(Math.pow(2,o)),i(d=e,r),t=ta.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function c(n){z++||n({type:"zoomstart"})}function l(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function s(n){--z||(n({type:"zoomend"}),d=null)}function f(){function n(){f=1,i(ta.mouse(u),g),l(a)}function r(){h.on(L,null).on(T,null),p(f&&ta.event.target===o),s(a)}var u=this,o=ta.event.target,a=D.of(u,arguments),f=0,h=ta.select(t(u)).on(L,n).on(T,r),g=e(ta.mouse(u)),p=W(u);Dl.call(u),c(a)}function h(){function n(){var n=ta.touches(p);return g=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ta.event.target;ta.select(t).on(x,r).on(b,a),_.push(t);for(var e=ta.event.changedTouches,u=0,i=e.length;i>u;++u)d[e[u].identifier]=null;var c=n(),l=Date.now();if(1===c.length){if(500>l-M){var s=c[0];o(p,s,d[s.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=l}else if(c.length>1){var s=c[0],f=c[1],h=s[0]-f[0],g=s[1]-f[1];m=h*h+g*g}}function r(){var n,t,e,r,o=ta.touches(p);Dl.call(p);for(var a=0,c=o.length;c>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var s=(s=e[0]-n[0])*s+(s=e[1]-n[1])*s,f=m&&Math.sqrt(s/m);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],u(f*g)}M=null,i(n,t),l(v)}function a(){if(ta.event.touches.length){for(var t=ta.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var u in d)return void n()}ta.selectAll(_).on(y,null),w.on(q,f).on(R,h),E(),s(v)}var g,p=this,v=D.of(p,arguments),d={},m=0,y=".zoom-"+ta.event.changedTouches[0].identifier,x="touchmove"+y,b="touchend"+y,_=[],w=ta.select(p),E=W(p);t(),c(v),w.on(q,null).on(R,t)}function g(){var n=D.of(this,arguments);y?clearTimeout(y):(Dl.call(this),v=e(d=m||ta.mouse(this)),c(n)),y=setTimeout(function(){y=null,s(n)},50),S(),u(Math.pow(2,.002*Ha())*k.k),i(d,v),l(n)}function p(){var n=ta.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ta.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,m,y,M,x,b,_,w,k={x:0,y:0,k:1},A=[960,500],N=Ia,C=250,z=0,q="mousedown.zoom",L="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=E(n,"zoomstart","zoom","zoomend");return Oa||(Oa="onwheel"in ua?(Ha=function(){return-ta.event.deltaY*(ta.event.deltaMode?120:1)},"wheel"):"onmousewheel"in ua?(Ha=function(){return ta.event.wheelDelta},"mousewheel"):(Ha=function(){return-ta.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Tl?ta.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},c(n)}).tween("zoom:zoom",function(){var e=A[0],r=A[1],u=d?d[0]:e/2,i=d?d[1]:r/2,o=ta.interpolateZoom([(u-k.x)/k.k,(i-k.y)/k.k,e/k.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:u-r[0]*a,y:i-r[1]*a,k:a},l(n)}}).each("interrupt.zoom",function(){s(n)}).each("end.zoom",function(){s(n)}):(this.__chart__=k,c(n),l(n),s(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:+t},a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(N=null==t?Ia:[+t[0],+t[1]],n):N},n.center=function(t){return arguments.length?(m=t&&[+t[0],+t[1]],n):m},n.size=function(t){return arguments.length?(A=t&&[+t[0],+t[1]],n):A},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ta.rebind(n,D,"on")};var Ha,Oa,Ia=[0,1/0];ta.color=ot,ot.prototype.toString=function(){return this.rgb()+""},ta.hsl=at;var Ya=at.prototype=new ot;Ya.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,this.l/n)},Ya.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,n*this.l)},Ya.rgb=function(){return ct(this.h,this.s,this.l)},ta.hcl=lt;var Za=lt.prototype=new ot;Za.brighter=function(n){return new lt(this.h,this.c,Math.min(100,this.l+Va*(arguments.length?n:1)))},Za.darker=function(n){return new lt(this.h,this.c,Math.max(0,this.l-Va*(arguments.length?n:1)))},Za.rgb=function(){return st(this.h,this.c,this.l).rgb()},ta.lab=ft;var Va=18,Xa=.95047,$a=1,Ba=1.08883,Wa=ft.prototype=new ot;Wa.brighter=function(n){return new ft(Math.min(100,this.l+Va*(arguments.length?n:1)),this.a,this.b)},Wa.darker=function(n){return new ft(Math.max(0,this.l-Va*(arguments.length?n:1)),this.a,this.b)},Wa.rgb=function(){return ht(this.l,this.a,this.b)},ta.rgb=mt;var Ja=mt.prototype=new ot;Ja.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new mt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mt(u,u,u)},Ja.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mt(n*this.r,n*this.g,n*this.b)},Ja.hsl=function(){return _t(this.r,this.g,this.b)},Ja.toString=function(){return"#"+xt(this.r)+xt(this.g)+xt(this.b)};var Ga=ta.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Ga.forEach(function(n,t){Ga.set(n,yt(t))}),ta.functor=Et,ta.xhr=At(y),ta.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=Nt(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(s>=l)return o;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++<l;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}s=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++s):10===r&&(u=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;l>s;){var r=n.charCodeAt(s++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(s)&&(++s,++a);else if(r!==c)continue;return n.slice(t,s-a)}return n.slice(t)}for(var r,u,i={},o={},a=[],l=n.length,s=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,f++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new m,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},ta.csv=ta.dsv(",","text/csv"),ta.tsv=ta.dsv(" ","text/tab-separated-values");var Ka,Qa,nc,tc,ec,rc=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ta.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Qa?Qa.n=i:Ka=i,Qa=i,nc||(tc=clearTimeout(tc),nc=1,rc(qt))},ta.timer.flush=function(){Lt(),Tt()},ta.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var uc=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Dt);ta.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=ta.round(n,Rt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),uc[8+e/3]};var ic=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,oc=ta.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ta.round(n,Rt(n,t))).toFixed(Math.max(0,Math.min(20,Rt(n*(1+1e-15),t))))}}),ac=ta.time={},cc=Date;jt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){lc.setUTCDate.apply(this._,arguments)},setDay:function(){lc.setUTCDay.apply(this._,arguments)},setFullYear:function(){lc.setUTCFullYear.apply(this._,arguments)},setHours:function(){lc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){lc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){lc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){lc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){lc.setUTCSeconds.apply(this._,arguments)},setTime:function(){lc.setTime.apply(this._,arguments)}};var lc=Date.prototype;ac.year=Ft(function(n){return n=ac.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ac.years=ac.year.range,ac.years.utc=ac.year.utc.range,ac.day=Ft(function(n){var t=new cc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ac.days=ac.day.range,ac.days.utc=ac.day.utc.range,ac.dayOfYear=function(n){var t=ac.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ac[n]=Ft(function(n){return(n=ac.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ac[n+"s"]=e.range,ac[n+"s"].utc=e.utc.range,ac[n+"OfYear"]=function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)}}),ac.week=ac.sunday,ac.weeks=ac.sunday.range,ac.weeks.utc=ac.sunday.utc.range,ac.weekOfYear=ac.sundayOfYear;var sc={"-":"",_:" ",0:"0"},fc=/^\s*\d+/,hc=/^%/;ta.locale=function(n){return{numberFormat:Pt(n),timeFormat:Ot(n)}};var gc=ta.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ta.format=gc.numberFormat,ta.geo={},ce.prototype={s:0,t:0,add:function(n){le(n,this.t,pc),le(pc.s,this.s,this),this.s?this.t+=pc.t:this.s=pc.t +},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var pc=new ce;ta.geo.stream=function(n,t){n&&vc.hasOwnProperty(n.type)?vc[n.type](n,t):se(n,t)};var vc={Feature:function(n,t){se(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)se(e[r].geometry,t)}},dc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){fe(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)fe(e[r],t,0)},Polygon:function(n,t){he(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)he(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)se(e[r],t)}};ta.geo.area=function(n){return mc=0,ta.geo.stream(n,Mc),mc};var mc,yc=new ce,Mc={sphere:function(){mc+=4*qa},point:b,lineStart:b,lineEnd:b,polygonStart:function(){yc.reset(),Mc.lineStart=ge},polygonEnd:function(){var n=2*yc;mc+=0>n?4*qa+n:n,Mc.lineStart=Mc.lineEnd=Mc.point=b}};ta.geo.bounds=function(){function n(n,t){M.push(x=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=pe([t*Da,e*Da]);if(m){var u=de(m,r),i=[u[1],-u[0],0],o=de(i,u);Me(o),o=xe(o);var c=t-p,l=c>0?1:-1,v=o[0]*Pa*l,d=ga(c)>180;if(d^(v>l*p&&l*t>v)){var y=o[1]*Pa;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>l*p&&l*t>v)){var y=-o[1]*Pa;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t)}else n(t,e);m=r,p=t}function e(){b.point=t}function r(){x[0]=s,x[1]=h,b.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ga(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Mc.point(n,e),t(n,e)}function i(){Mc.lineStart()}function o(){u(v,d),Mc.lineEnd(),ga(y)>Ca&&(s=-(h=180)),x[0]=s,x[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var s,f,h,g,p,v,d,m,y,M,x,b={point:n,lineStart:e,lineEnd:r,polygonStart:function(){b.point=u,b.lineStart=i,b.lineEnd=o,y=0,Mc.polygonStart()},polygonEnd:function(){Mc.polygonEnd(),b.point=n,b.lineStart=e,b.lineEnd=r,0>yc?(s=-(h=180),f=-(g=90)):y>Ca?g=90:-Ca>y&&(f=-90),x[0]=s,x[1]=h}};return function(n){g=h=-(s=f=1/0),M=[],ta.geo.stream(n,b);var t=M.length;if(t){M.sort(c);for(var e,r=1,u=M[0],i=[u];t>r;++r)e=M[r],l(e[0],u)||l(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,s=e[0],h=u[1])}return M=x=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),ta.geo.centroid=function(n){xc=bc=_c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,qc);var t=Nc,e=Cc,r=zc,u=t*t+e*e+r*r;return za>u&&(t=kc,e=Ec,r=Ac,Ca>bc&&(t=_c,e=wc,r=Sc),u=t*t+e*e+r*r,za>u)?[0/0,0/0]:[Math.atan2(e,t)*Pa,tt(r/Math.sqrt(u))*Pa]};var xc,bc,_c,wc,Sc,kc,Ec,Ac,Nc,Cc,zc,qc={sphere:b,point:_e,lineStart:Se,lineEnd:ke,polygonStart:function(){qc.lineStart=Ee},polygonEnd:function(){qc.lineStart=Se}},Lc=Le(Ne,Pe,je,[-qa,-qa/2]),Tc=1e9;ta.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ie(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ta.geo.conicEqualArea=function(){return Ye(Ze)}).raw=Ze,ta.geo.albers=function(){return ta.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ta.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=ta.geo.albers(),o=ta.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ta.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),s=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,r=o.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+Ca,f+.12*l+Ca],[s-.214*l-Ca,f+.234*l-Ca]]).stream(c).point,u=a.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+Ca,f+.166*l+Ca],[s-.115*l-Ca,f+.234*l-Ca]]).stream(c).point,n},n.scale(1070)};var Rc,Dc,Pc,Uc,jc,Fc,Hc={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Dc=0,Hc.lineStart=Ve},polygonEnd:function(){Hc.lineStart=Hc.lineEnd=Hc.point=b,Rc+=ga(Dc/2)}},Oc={point:Xe,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Ic={point:We,lineStart:Je,lineEnd:Ge,polygonStart:function(){Ic.lineStart=Ke},polygonEnd:function(){Ic.point=We,Ic.lineStart=Je,Ic.lineEnd=Ge}};ta.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),ta.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Rc=0,ta.geo.stream(n,u(Hc)),Rc},n.centroid=function(n){return _c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,u(Ic)),zc?[Nc/zc,Cc/zc]:Ac?[kc/Ac,Ec/Ac]:Sc?[_c/Sc,wc/Sc]:[0/0,0/0]},n.bounds=function(n){return jc=Fc=-(Pc=Uc=1/0),ta.geo.stream(n,u(Oc)),[[Pc,Uc],[jc,Fc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||tr(n):y,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new $e:new Qe(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(ta.geo.albersUsa()).context(null)},ta.geo.transform=function(n){return{stream:function(t){var e=new er(t);for(var r in n)e[r]=n[r];return e}}},er.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ta.geo.projection=ur,ta.geo.projectionMutator=ir,(ta.geo.equirectangular=function(){return ur(ar)}).raw=ar.invert=ar,ta.geo.rotation=function(n){function t(t){return t=n(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t}return n=lr(n[0]%360*Da,n[1]*Da,n.length>2?n[2]*Da:0),t.invert=function(t){return t=n.invert(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t},t},cr.invert=ar,ta.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=lr(-n[0]*Da,-n[1]*Da,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Pa,n[1]*=Pa}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=gr((t=+r)*Da,u*Da),n):t},n.precision=function(r){return arguments.length?(e=gr(t*Da,(u=+r)*Da),n):u},n.angle(90)},ta.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Da,u=n[1]*Da,i=t[1]*Da,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),l=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=l*s-c*f*a)*e),c*s+l*f*a)},ta.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ta.range(Math.ceil(i/d)*d,u,d).map(h).concat(ta.range(Math.ceil(l/m)*m,c,m).map(g)).concat(ta.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ga(n%d)>Ca}).map(s)).concat(ta.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ga(n%m)>Ca}).map(f))}var e,r,u,i,o,a,c,l,s,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],l=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[i,l],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,s=vr(a,o,90),f=dr(r,e,y),h=vr(l,c,90),g=dr(i,u,y),n):y},n.majorExtent([[-180,-90+Ca],[180,90-Ca]]).minorExtent([[-180,-80-Ca],[180,80+Ca]])},ta.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=mr,u=yr;return n.distance=function(){return ta.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},ta.geo.interpolate=function(n,t){return Mr(n[0]*Da,n[1]*Da,t[0]*Da,t[1]*Da)},ta.geo.length=function(n){return Yc=0,ta.geo.stream(n,Zc),Yc};var Yc,Zc={sphere:b,point:b,lineStart:xr,lineEnd:b,polygonStart:b,polygonEnd:b},Vc=br(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ta.geo.azimuthalEqualArea=function(){return ur(Vc)}).raw=Vc;var Xc=br(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},y);(ta.geo.azimuthalEquidistant=function(){return ur(Xc)}).raw=Xc,(ta.geo.conicConformal=function(){return Ye(_r)}).raw=_r,(ta.geo.conicEquidistant=function(){return Ye(wr)}).raw=wr;var $c=br(function(n){return 1/n},Math.atan);(ta.geo.gnomonic=function(){return ur($c)}).raw=$c,Sr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ra]},(ta.geo.mercator=function(){return kr(Sr)}).raw=Sr;var Bc=br(function(){return 1},Math.asin);(ta.geo.orthographic=function(){return ur(Bc)}).raw=Bc;var Wc=br(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ta.geo.stereographic=function(){return ur(Wc)}).raw=Wc,Er.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ra]},(ta.geo.transverseMercator=function(){var n=kr(Er),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Er,ta.geom={},ta.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=Et(e),i=Et(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(zr),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var l=Cr(a),s=Cr(c),f=s[0]===l[0],h=s[s.length-1]===l[l.length-1],g=[];for(t=l.length-1;t>=0;--t)g.push(n[a[l[t]][2]]);for(t=+f;t<s.length-h;++t)g.push(n[a[s[t]][2]]);return g}var e=Ar,r=Nr;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},ta.geom.polygon=function(n){return ya(n,Jc),n};var Jc=ta.geom.polygon.prototype=[];Jc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},Jc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},Jc.clip=function(n){for(var t,e,r,u,i,o,a=Tr(n),c=-1,l=this.length-Tr(this),s=this[l-1];++c<l;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],qr(o,s,u)?(qr(i,s,u)||n.push(Lr(i,o,s,u)),n.push(o)):qr(i,s,u)&&n.push(Lr(i,o,s,u)),i=o;a&&n.push(n[0]),s=u}return n};var Gc,Kc,Qc,nl,tl,el=[],rl=[];Or.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Yr),t.length},Qr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},nu.prototype={insert:function(n,t){var e,r,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=uu(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(u=r.R,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.R&&(eu(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ru(this,r))):(u=r.L,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.L&&(ru(this,e),n=e,e=n.U),e.C=!1,r.C=!0,eu(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,u=n.U,i=n.L,o=n.R;if(e=i?o?uu(o):i:o,u?u.L===n?u.L=e:u.R=e:this._=e,i&&o?(r=e.C,e.C=n.C,e.L=i,i.U=e,e!==o?(u=e.U,e.U=n.U,n=e.R,u.L=n,e.R=o,o.U=e):(e.U=u,u=e,n=e.R)):(r=n.C,n=e),n&&(n.U=u),!r){if(n&&n.C)return void(n.C=!1);do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,eu(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ru(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,eu(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,ru(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,eu(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,ru(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},ta.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return iu(e(n),a).cells.forEach(function(e,a){var c=e.edges,l=e.site,s=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):l.x>=r&&l.x<=i&&l.y>=u&&l.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];s.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Ca)*Ca,y:Math.round(o(n,t)/Ca)*Ca,i:t}})}var r=Ar,u=Nr,i=r,o=u,a=ul;return n?t(n):(t.links=function(n){return iu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return iu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Yr),c=-1,l=a.length,s=a[l-1].edge,f=s.l===o?s.r:s.l;++c<l;)u=s,i=f,s=a[c].edge,f=s.l===o?s.r:s.l,r<i.i&&r<f.i&&au(o,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=Et(r=n),t):r},t.y=function(n){return arguments.length?(o=Et(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?ul:n,t):a===ul?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===ul?null:a&&a[1]},t)};var ul=[[-1e6,-1e6],[1e6,1e6]];ta.geom.delaunay=function(n){return ta.geom.voronoi().triangles(n)},ta.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,s=n.y;if(null!=c)if(ga(c-e)+ga(s-r)<.01)l(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,l(n,f,c,s,u,i,o,a),l(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else l(n,t,e,r,u,i,o,a)}function l(n,t,e,r,u,o,a,c){var l=.5*(u+a),s=.5*(o+c),f=e>=l,h=r>=s,g=h<<1|f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=su()),f?u=l:a=l,h?o=s:c=s,i(n,t,e,r,u,o,a,c)}var s,f,h,g,p,v,d,m,y,M=Et(a),x=Et(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)s=n[g],s.x<v&&(v=s.x),s.y<d&&(d=s.y),s.x>m&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var b=+M(s=n[g],g),_=+x(s,g);v>b&&(v=b),d>_&&(d=_),b>m&&(m=b),_>y&&(y=_),f.push(b),h.push(_)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=su();if(k.add=function(n){i(k,n,+M(n,++g),+x(n,g),v,d,m,y)},k.visit=function(n){fu(n,k,v,d,m,y)},k.find=function(n){return hu(k,n[0],n[1],v,d,m,y)},g=-1,null==t){for(;++g<p;)i(k,n[g],f[g],h[g],v,d,m,y);--g}else n.forEach(k.add);return f=h=n=s=null,k}var o,a=Ar,c=Nr;return(o=arguments.length)?(a=cu,c=lu,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},ta.interpolateRgb=gu,ta.interpolateObject=pu,ta.interpolateNumber=vu,ta.interpolateString=du;var il=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ol=new RegExp(il.source,"g");ta.interpolate=mu,ta.interpolators=[function(n,t){var e=typeof t;return("string"===e?Ga.has(t.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(t)?gu:du:t instanceof ot?gu:Array.isArray(t)?yu:"object"===e&&isNaN(t)?pu:vu)(n,t)}],ta.interpolateArray=yu;var al=function(){return y},cl=ta.map({linear:al,poly:ku,quad:function(){return _u},cubic:function(){return wu},sin:function(){return Eu},exp:function(){return Au},circle:function(){return Nu},elastic:Cu,back:zu,bounce:function(){return qu}}),ll=ta.map({"in":y,out:xu,"in-out":bu,"out-in":function(n){return bu(xu(n))}});ta.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=cl.get(e)||al,r=ll.get(r)||y,Mu(r(e.apply(null,ea.call(arguments,1))))},ta.interpolateHcl=Lu,ta.interpolateHsl=Tu,ta.interpolateLab=Ru,ta.interpolateRound=Du,ta.transform=function(n){var t=ua.createElementNS(ta.ns.prefix.svg,"g");return(ta.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Pu(e?e.matrix:sl)})(n)},Pu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var sl={a:1,b:0,c:0,d:1,e:0,f:0};ta.interpolateTransform=Hu,ta.layout={},ta.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Yu(n[e]));return t}},ta.layout.chord=function(){function n(){var n,l,f,h,g,p={},v=[],d=ta.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(l=0,g=-1;++g<i;)l+=u[h][g];v.push(l),m.push(ta.range(i)),n+=l}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(La-s*i)/n,l=0,h=-1;++h<i;){for(f=l,g=-1;++g<i;){var y=d[h],M=m[y][g],x=u[y][M],b=l,_=l+=x*n;p[y+"-"+M]={index:y,subindex:M,startAngle:b,endAngle:_,value:x}}r[y]={index:y,startAngle:f,endAngle:l,value:(l-f)/n},l+=s}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,l={},s=0;return l.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,l):u},l.padding=function(n){return arguments.length?(s=n,e=r=null,l):s},l.sortGroups=function(n){return arguments.length?(o=n,e=r=null,l):o},l.sortSubgroups=function(n){return arguments.length?(a=n,e=null,l):a},l.sortChords=function(n){return arguments.length?(c=n,e&&t(),l):c},l.chords=function(){return e||n(),e},l.groups=function(){return r||n(),r},l},ta.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=u-e,c=i*i+o*o;if(c>a*a/d){if(p>c){var l=t.charge/c;n.px-=i*l,n.py-=o*l}return!0}if(t.point&&c&&p>c){var l=t.pointCharge/c;n.px-=i*l,n.py-=o*l}}return!t.charge}}function t(n){n.px=ta.event.x,n.py=ta.event.y,a.resume()}var e,r,u,i,o,a={},c=ta.dispatch("start","tick","end"),l=[1,1],s=.9,f=fl,h=hl,g=-30,p=gl,v=.1,d=.64,m=[],M=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,y,x,b=m.length,_=M.length;for(e=0;_>e;++e)a=M[e],f=a.source,h=a.target,y=h.x-f.x,x=h.y-f.y,(p=y*y+x*x)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,y*=p,x*=p,h.x-=y*(d=f.weight/(h.weight+f.weight)),h.y-=x*d,f.x+=y*(d=1-d),f.y+=x*d);if((d=r*v)&&(y=l[0]/2,x=l[1]/2,e=-1,d))for(;++e<b;)a=m[e],a.x+=(y-a.x)*d,a.y+=(x-a.y)*d;if(g)for(Ju(t=ta.geom.quadtree(m),r,o),e=-1;++e<b;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<b;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*s,a.y-=(a.py-(a.py=a.y))*s);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(M=n,a):M},a.size=function(n){return arguments.length?(l=n,a):l},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(s=+n,a):s},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),ta.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=M[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,l=o.length;++a<l;)if(!isNaN(i=o[a][n]))return i;return Math.random()*r}var t,e,r,c=m.length,s=M.length,p=l[0],v=l[1];for(t=0;c>t;++t)(r=m[t]).index=t,r.weight=0;for(t=0;s>t;++t)r=M[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;s>t;++t)u[t]=+f.call(this,M[t],t);else for(t=0;s>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;s>t;++t)i[t]=+h.call(this,M[t],t);else for(t=0;s>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=ta.behavior.drag().origin(y).on("dragstart.force",Xu).on("drag.force",t).on("dragend.force",$u)),arguments.length?void this.on("mouseover.force",Bu).on("mouseout.force",Wu).call(e):e},ta.rebind(a,c,"on")};var fl=20,hl=1,gl=1/0;ta.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(l=e.call(n,i,i.depth))&&(c=l.length)){for(var c,l,s;--c>=0;)o.push(s=l[c]),s.parent=i,s.depth=i.depth+1;r&&(i.value=0),i.children=l}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Qu(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=ei,e=ni,r=ti;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Ku(t,function(n){n.children&&(n.value=0)}),Qu(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ta.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,l=-1;for(r=t.value?r/t.value:0;++l<o;)n(a=i[l],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=ta.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},Gu(e,r)},ta.layout.pie=function(){function n(o){var a,c=o.length,l=o.map(function(e,r){return+t.call(n,e,r)}),s=+("function"==typeof r?r.apply(this,arguments):r),f=("function"==typeof u?u.apply(this,arguments):u)-s,h=Math.min(Math.abs(f)/c,+("function"==typeof i?i.apply(this,arguments):i)),g=h*(0>f?-1:1),p=(f-c*g)/ta.sum(l),v=ta.range(c),d=[];return null!=e&&v.sort(e===pl?function(n,t){return l[t]-l[n]}:function(n,t){return e(o[n],o[t])}),v.forEach(function(n){d[n]={data:o[n],value:a=l[n],startAngle:s,endAngle:s+=a*p+g,padAngle:h}}),d}var t=Number,e=pl,r=0,u=La,i=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n.padAngle=function(t){return arguments.length?(i=t,n):i},n};var pl={};ta.layout.stack=function(){function n(a,c){if(!(h=a.length))return a;var l=a.map(function(e,r){return t.call(n,e,r)}),s=l.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,s,c);l=ta.permute(l,f),s=ta.permute(s,f);var h,g,p,v,d=r.call(n,s,c),m=l[0].length;for(p=0;m>p;++p)for(u.call(n,l[0][p],v=d[p],s[0][p][1]),g=1;h>g;++g)u.call(n,l[g][p],v+=s[g-1][p][1],s[g][p][1]);return a}var t=y,e=ai,r=ci,u=oi,i=ui,o=ii;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:vl.get(t)||ai,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:dl.get(t)||ci,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var vl=ta.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(li),i=n.map(si),o=ta.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,l=[],s=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],l.push(e)):(c+=i[e],s.push(e));return s.reverse().concat(l)},reverse:function(n){return ta.range(n.length).reverse()},"default":ai}),dl=ta.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];s>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ci});ta.layout.histogram=function(){function n(n,i){for(var o,a,c=[],l=n.map(e,this),s=r.call(this,l,i),f=u.call(this,s,l,i),i=-1,h=l.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=l[i],a>=s[0]&&a<=s[1]&&(o=c[ta.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=pi,u=hi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=Et(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return gi(n,t)}:Et(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ta.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],l=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Qu(a,function(n){n.r=+s(n.value)}),Qu(a,Mi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/l))/2;Qu(a,function(n){n.r+=f}),Qu(a,Mi),Qu(a,function(n){n.r-=f})}return _i(a,c/2,l/2,t?1:1/Math.max(2*a.r/c,2*a.r/l)),o}var t,e=ta.layout.hierarchy().sort(vi),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Gu(n,e)},ta.layout.tree=function(){function n(n,u){var s=o.call(this,n,u),f=s[0],h=t(f);if(Qu(h,e),h.parent.m=-h.z,Ku(h,r),l)Ku(f,i);else{var g=f,p=f,v=f;Ku(f,function(n){n.x<g.x&&(g=n),n.x>p.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);Ku(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return s}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Ni(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],l=u.m,s=i.m,f=o.m,h=c.m;o=Ei(o),u=ki(u),o&&u;)c=ki(c),i=Ei(i),i.a=n,r=o.z+f-u.z-l+a(o._,u._),r>0&&(Ai(Ci(o,n,e),n,r),l+=r,s+=r),f+=o.m,l+=u.m,h+=c.m,s+=i.m;o&&!Ei(i)&&(i.t=o,i.m+=f-s),u&&!ki(c)&&(c.t=u,c.m+=l-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=ta.layout.hierarchy().sort(null).value(null),a=Si,c=[1,1],l=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(l=null==(c=t)?i:null,n):l?null:c},n.nodeSize=function(t){return arguments.length?(l=null==(c=t)?null:i,n):l?c:null},Gu(n,o)},ta.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],l=0;Qu(c,function(n){var t=n.children;t&&t.length?(n.x=qi(t),n.y=zi(t)):(n.x=o?l+=e(n,o):0,n.y=0,o=n)});var s=Li(c),f=Ti(c),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return Qu(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=ta.layout.hierarchy().sort(null).value(null),e=Si,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Gu(n,t)},ta.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,l=f(e),s=[],h=i.slice(),p=1/0,v="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/e.value),s.area=0;(c=h.length)>0;)s.push(o=h[c-1]),s.area+=o.area,"squarify"!==g||(a=r(s,v))<=p?(h.pop(),p=a):(s.area-=s.pop().area,u(s,v,l,!1),v=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,v,l,!0),s.length=s.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,l=e.y,s=t?c(n.area/t):0;if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++i<o;)u=n[i],u.x=a,u.y=l,u.dy=s,a+=u.dx=Math.min(e.x+e.dx-a,s?c(u.area/s):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=s,e.dy-=s}else{for((r||s>e.dx)&&(s=e.dx);++i<o;)u=n[i],u.x=a,u.y=l,u.dx=s,l+=u.dy=Math.min(e.y+e.dy-l,s?c(u.area/s):0);u.z=!1,u.dy+=e.y+e.dy-l,e.x+=s,e.dx-=s}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=l[0],i.dy=l[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=ta.layout.hierarchy(),c=Math.round,l=[1,1],s=null,f=Ri,h=!1,g="squarify",p=.5*(1+Math.sqrt(5)); +return i.size=function(n){return arguments.length?(l=n,i):l},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?Ri(t):Di(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Di(t,n)}if(!arguments.length)return s;var r;return f=null==(s=n)?Ri:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},Gu(i,a)},ta.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=ta.random.normal.apply(ta,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ta.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ta.scale={};var ml={floor:y,ceil:y};ta.scale.linear=function(){return Ii([0,1],[0,1],mu,!1)};var yl={s:1,g:1,p:1,r:1,e:1};ta.scale.log=function(){return Ji(ta.scale.linear().domain([0,1]),10,!0,[1,10])};var Ml=ta.format(".0e"),xl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ta.scale.pow=function(){return Gi(ta.scale.linear(),1,[0,1])},ta.scale.sqrt=function(){return ta.scale.pow().exponent(.5)},ta.scale.ordinal=function(){return Qi([],{t:"range",a:[[]]})},ta.scale.category10=function(){return ta.scale.ordinal().range(bl)},ta.scale.category20=function(){return ta.scale.ordinal().range(_l)},ta.scale.category20b=function(){return ta.scale.ordinal().range(wl)},ta.scale.category20c=function(){return ta.scale.ordinal().range(Sl)};var bl=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(Mt),_l=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(Mt),wl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(Mt),Sl=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(Mt);ta.scale.quantile=function(){return no([],[])},ta.scale.quantize=function(){return to(0,1,[0,1])},ta.scale.threshold=function(){return eo([.5],[0,1])},ta.scale.identity=function(){return ro([0,1])},ta.svg={},ta.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),l=Math.max(0,+r.apply(this,arguments)),s=o.apply(this,arguments)-Ra,f=a.apply(this,arguments)-Ra,h=Math.abs(f-s),g=s>f?0:1;if(n>l&&(p=l,l=n,n=p),h>=Ta)return t(l,g)+(n?t(n,1-g):"")+"Z";var p,v,d,m,y,M,x,b,_,w,S,k,E=0,A=0,N=[];if((m=(+c.apply(this,arguments)||0)/2)&&(d=i===kl?Math.sqrt(n*n+l*l):+i.apply(this,arguments),g||(A*=-1),l&&(A=tt(d/l*Math.sin(m))),n&&(E=tt(d/n*Math.sin(m)))),l){y=l*Math.cos(s+A),M=l*Math.sin(s+A),x=l*Math.cos(f-A),b=l*Math.sin(f-A);var C=Math.abs(f-s-2*A)<=qa?0:1;if(A&&so(y,M,x,b)===g^C){var z=(s+f)/2;y=l*Math.cos(z),M=l*Math.sin(z),x=b=null}}else y=M=0;if(n){_=n*Math.cos(f-E),w=n*Math.sin(f-E),S=n*Math.cos(s+E),k=n*Math.sin(s+E);var q=Math.abs(s-f+2*E)<=qa?0:1;if(E&&so(_,w,S,k)===1-g^q){var L=(s+f)/2;_=n*Math.cos(L),w=n*Math.sin(L),S=k=null}}else _=w=0;if((p=Math.min(Math.abs(l-n)/2,+u.apply(this,arguments)))>.001){v=l>n^g?0:1;var T=null==S?[_,w]:null==x?[y,M]:Lr([y,M],[S,k],[x,b],[_,w]),R=y-T[0],D=M-T[1],P=x-T[0],U=b-T[1],j=1/Math.sin(Math.acos((R*P+D*U)/(Math.sqrt(R*R+D*D)*Math.sqrt(P*P+U*U)))/2),F=Math.sqrt(T[0]*T[0]+T[1]*T[1]);if(null!=x){var H=Math.min(p,(l-F)/(j+1)),O=fo(null==S?[_,w]:[S,k],[y,M],l,H,g),I=fo([x,b],[_,w],l,H,g);p===H?N.push("M",O[0],"A",H,",",H," 0 0,",v," ",O[1],"A",l,",",l," 0 ",1-g^so(O[1][0],O[1][1],I[1][0],I[1][1]),",",g," ",I[1],"A",H,",",H," 0 0,",v," ",I[0]):N.push("M",O[0],"A",H,",",H," 0 1,",v," ",I[0])}else N.push("M",y,",",M);if(null!=S){var Y=Math.min(p,(n-F)/(j-1)),Z=fo([y,M],[S,k],n,-Y,g),V=fo([_,w],null==x?[y,M]:[x,b],n,-Y,g);p===Y?N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",V[1],"A",n,",",n," 0 ",g^so(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-g," ",Z[1],"A",Y,",",Y," 0 0,",v," ",Z[0]):N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",Z[0])}else N.push("L",_,",",w)}else N.push("M",y,",",M),null!=x&&N.push("A",l,",",l," 0 ",C,",",g," ",x,",",b),N.push("L",_,",",w),null!=S&&N.push("A",n,",",n," 0 ",q,",",1-g," ",S,",",k);return N.push("Z"),N.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=io,r=oo,u=uo,i=kl,o=ao,a=co,c=lo;return n.innerRadius=function(t){return arguments.length?(e=Et(t),n):e},n.outerRadius=function(t){return arguments.length?(r=Et(t),n):r},n.cornerRadius=function(t){return arguments.length?(u=Et(t),n):u},n.padRadius=function(t){return arguments.length?(i=t==kl?kl:Et(t),n):i},n.startAngle=function(t){return arguments.length?(o=Et(t),n):o},n.endAngle=function(t){return arguments.length?(a=Et(t),n):a},n.padAngle=function(t){return arguments.length?(c=Et(t),n):c},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Ra;return[Math.cos(t)*n,Math.sin(t)*n]},n};var kl="auto";ta.svg.line=function(){return ho(y)};var El=ta.map({linear:go,"linear-closed":po,step:vo,"step-before":mo,"step-after":yo,basis:So,"basis-open":ko,"basis-closed":Eo,bundle:Ao,cardinal:bo,"cardinal-open":Mo,"cardinal-closed":xo,monotone:To});El.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Al=[0,2/3,1/3,0],Nl=[0,1/3,2/3,0],Cl=[0,1/6,2/3,1/6];ta.svg.line.radial=function(){var n=ho(Ro);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},mo.reverse=yo,yo.reverse=mo,ta.svg.area=function(){return Do(y)},ta.svg.area.radial=function(){var n=Do(Ro);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ta.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),l=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,l)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+u(l.r,l.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)-Ra,s=l.call(n,u,r)-Ra;return{r:i,a0:o,a1:s,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>qa)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=mr,o=yr,a=Po,c=ao,l=co;return n.radius=function(t){return arguments.length?(a=Et(t),n):a},n.source=function(t){return arguments.length?(i=Et(t),n):i},n.target=function(t){return arguments.length?(o=Et(t),n):o},n.startAngle=function(t){return arguments.length?(c=Et(t),n):c},n.endAngle=function(t){return arguments.length?(l=Et(t),n):l},n},ta.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=mr,e=yr,r=Uo;return n.source=function(e){return arguments.length?(t=Et(e),n):t},n.target=function(t){return arguments.length?(e=Et(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ta.svg.diagonal.radial=function(){var n=ta.svg.diagonal(),t=Uo,e=n.projection;return n.projection=function(n){return arguments.length?e(jo(t=n)):t},n},ta.svg.symbol=function(){function n(n,r){return(zl.get(t.call(this,n,r))||Oo)(e.call(this,n,r))}var t=Ho,e=Fo;return n.type=function(e){return arguments.length?(t=Et(e),n):t},n.size=function(t){return arguments.length?(e=Et(t),n):e},n};var zl=ta.map({circle:Oo,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Ll)),e=t*Ll;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ta.svg.symbolTypes=zl.keys();var ql=Math.sqrt(3),Ll=Math.tan(30*Da);_a.transition=function(n){for(var t,e,r=Tl||++Ul,u=Xo(n),i=[],o=Rl||{time:Date.now(),ease:Su,delay:0,duration:250},a=-1,c=this.length;++a<c;){i.push(t=[]);for(var l=this[a],s=-1,f=l.length;++s<f;)(e=l[s])&&$o(e,s,u,r,o),t.push(e)}return Yo(i,u,r)},_a.interrupt=function(n){return this.each(null==n?Dl:Io(Xo(n)))};var Tl,Rl,Dl=Io(Xo()),Pl=[],Ul=0;Pl.call=_a.call,Pl.empty=_a.empty,Pl.node=_a.node,Pl.size=_a.size,ta.transition=function(n,t){return n&&n.transition?Tl?n.transition(t):n:ta.selection().transition(n)},ta.transition.prototype=Pl,Pl.select=function(n){var t,e,r,u=this.id,i=this.namespace,o=[];n=N(n);for(var a=-1,c=this.length;++a<c;){o.push(t=[]);for(var l=this[a],s=-1,f=l.length;++s<f;)(r=l[s])&&(e=n.call(r,r.__data__,s,a))?("__data__"in r&&(e.__data__=r.__data__),$o(e,s,i,u,r[i][u]),t.push(e)):t.push(null)}return Yo(o,i,u)},Pl.selectAll=function(n){var t,e,r,u,i,o=this.id,a=this.namespace,c=[];n=C(n);for(var l=-1,s=this.length;++l<s;)for(var f=this[l],h=-1,g=f.length;++h<g;)if(r=f[h]){i=r[a][o],e=n.call(r,r.__data__,h,l),c.push(t=[]);for(var p=-1,v=e.length;++p<v;)(u=e[p])&&$o(u,p,a,o,i),t.push(u)}return Yo(c,a,o)},Pl.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=O(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return Yo(u,this.namespace,this.id)},Pl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(u){u[r][e].tween.set(n,t)})},Pl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Hu:mu,a=ta.ns.qualify(n);return Zo(this,"attr."+n,t,a.local?i:u)},Pl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=ta.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Pl.style=function(n,e,r){function u(){this.style.removeProperty(n)}function i(e){return null==e?u:(e+="",function(){var u,i=t(this).getComputedStyle(this,null).getPropertyValue(n);return i!==e&&(u=mu(i,e),function(t){this.style.setProperty(n,u(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Zo(this,"style."+n,e,i)},Pl.styleTween=function(n,e,r){function u(u,i){var o=e.call(this,u,i,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,u)},Pl.text=function(n){return Zo(this,"text",n,Vo)},Pl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Pl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ta.ease.apply(ta,arguments)),Y(this,function(r){r[e][t].ease=n}))},Pl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,u,i){r[e][t].delay=+n.call(r,r.__data__,u,i)}:(n=+n,function(r){r[e][t].delay=n}))},Pl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,u,i){r[e][t].duration=Math.max(1,n.call(r,r.__data__,u,i))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Pl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var u=Rl,i=Tl;try{Tl=e,Y(this,function(t,u,i){Rl=t[r][e],n.call(t,t.__data__,u,i)})}finally{Rl=u,Tl=i}}else Y(this,function(u){var i=u[r][e];(i.event||(i.event=ta.dispatch("start","end","interrupt"))).on(n,t)});return this},Pl.transition=function(){for(var n,t,e,r,u=this.id,i=++Ul,o=this.namespace,a=[],c=0,l=this.length;l>c;c++){a.push(n=[]);for(var t=this[c],s=0,f=t.length;f>s;s++)(e=t[s])&&(r=e[o][u],$o(e,s,o,i,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Yo(a,o,i)},ta.svg.axis=function(){function n(n){n.each(function(){var n,l=ta.select(this),s=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):y:t,p=l.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Ca),d=ta.transition(p.exit()).style("opacity",Ca).remove(),m=ta.transition(p.order()).style("opacity",1),M=Math.max(u,0)+o,x=Ui(f),b=l.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ta.transition(b));v.append("line"),v.append("text");var w,S,k,E,A=v.select("line"),N=m.select("line"),C=p.select("text").text(g),z=v.select("text"),q=m.select("text"),L="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=Bo,w="x",k="y",S="x2",E="y2",C.attr("dy",0>L?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+L*i+"V0H"+x[1]+"V"+L*i)):(n=Wo,w="y",k="x",S="y2",E="x2",C.attr("dy",".32em").style("text-anchor",0>L?"end":"start"),_.attr("d","M"+L*i+","+x[0]+"H0V"+x[1]+"H"+L*i)),A.attr(E,L*u),z.attr(k,L*M),N.attr(S,0).attr(E,L*u),q.attr(w,0).attr(k,L*M),f.rangeBand){var T=f,R=T.rangeBand()/2;s=f=function(n){return T(n)+R}}else s.rangeBand?s=f:d.call(n,f,s);v.call(n,s,f),m.call(n,f,f)})}var t,e=ta.scale.linear(),r=jl,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Fl?t+"":jl,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var jl="bottom",Fl={top:1,right:1,bottom:1,left:1};ta.svg.brush=function(){function n(t){t.each(function(){var t=ta.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",i).on("touchstart.brush",i),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,y);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Hl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var c,f=ta.transition(t),h=ta.transition(o);l&&(c=Ui(l),h.attr("x",c[0]).attr("width",c[1]-c[0]),r(f)),s&&(c=Ui(s),h.attr("y",c[0]).attr("height",c[1]-c[0]),u(f)),e(f)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+f[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",f[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1]-f[0])}function u(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function i(){function i(){32==ta.event.keyCode&&(C||(M=null,q[0]-=f[1],q[1]-=h[1],C=2),S())}function v(){32==ta.event.keyCode&&2==C&&(q[0]+=f[1],q[1]+=h[1],C=0,S())}function d(){var n=ta.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ta.event.altKey?(M||(M=[(f[0]+f[1])/2,(h[0]+h[1])/2]),q[0]=f[+(n[0]<M[0])],q[1]=h[+(n[1]<M[1])]):M=null),A&&m(n,l,0)&&(r(k),t=!0),N&&m(n,s,1)&&(u(k),t=!0),t&&(e(k),w({type:"brush",mode:C?"move":"resize"}))}function m(n,t,e){var r,u,i=Ui(t),c=i[0],l=i[1],s=q[e],v=e?h:f,d=v[1]-v[0];return C&&(c-=s,l-=d+s),r=(e?p:g)?Math.max(c,Math.min(l,n[e])):n[e],C?u=(r+=s)+d:(M&&(s=Math.max(c,Math.min(l,2*M[e]-r))),r>s?(u=r,r=s):u=s),v[0]!=r||v[1]!=u?(e?a=null:o=null,v[0]=r,v[1]=u,!0):void 0}function y(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ta.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ta.select(ta.event.target),w=c.of(b,arguments),k=ta.select(b),E=_.datum(),A=!/^(n|s)$/.test(E)&&l,N=!/^(e|w)$/.test(E)&&s,C=_.classed("extent"),z=W(b),q=ta.mouse(b),L=ta.select(t(b)).on("keydown.brush",i).on("keyup.brush",v);if(ta.event.changedTouches?L.on("touchmove.brush",d).on("touchend.brush",y):L.on("mousemove.brush",d).on("mouseup.brush",y),k.interrupt().selectAll("*").interrupt(),C)q[0]=f[0]-q[0],q[1]=h[0]-q[1];else if(E){var T=+/w$/.test(E),R=+/^n/.test(E);x=[f[1-T]-q[0],h[1-R]-q[1]],q[0]=f[T],q[1]=h[R]}else ta.event.altKey&&(M=q.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ta.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,c=E(n,"brushstart","brush","brushend"),l=null,s=null,f=[0,0],h=[0,0],g=!0,p=!0,v=Ol[0];return n.event=function(n){n.each(function(){var n=c.of(this,arguments),t={x:f,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Tl?ta.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,f=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=yu(f,t.x),r=yu(h,t.y);return o=a=null,function(u){f=t.x=e(u),h=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(l=t,v=Ol[!l<<1|!s],n):l},n.y=function(t){return arguments.length?(s=t,v=Ol[!l<<1|!s],n):s},n.clamp=function(t){return arguments.length?(l&&s?(g=!!t[0],p=!!t[1]):l?g=!!t:s&&(p=!!t),n):l&&s?[g,p]:l?g:s?p:null},n.extent=function(t){var e,r,u,i,c;return arguments.length?(l&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),o=[e,r],l.invert&&(e=l(e),r=l(r)),e>r&&(c=e,e=r,r=c),(e!=f[0]||r!=f[1])&&(f=[e,r])),s&&(u=t[0],i=t[1],l&&(u=u[1],i=i[1]),a=[u,i],s.invert&&(u=s(u),i=s(i)),u>i&&(c=u,u=i,i=c),(u!=h[0]||i!=h[1])&&(h=[u,i])),n):(l&&(o?(e=o[0],r=o[1]):(e=f[0],r=f[1],l.invert&&(e=l.invert(e),r=l.invert(r)),e>r&&(c=e,e=r,r=c))),s&&(a?(u=a[0],i=a[1]):(u=h[0],i=h[1],s.invert&&(u=s.invert(u),i=s.invert(i)),u>i&&(c=u,u=i,i=c))),l&&s?[[e,u],[r,i]]:l?[e,r]:s&&[u,i])},n.clear=function(){return n.empty()||(f=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!l&&f[0]==f[1]||!!s&&h[0]==h[1]},ta.rebind(n,c,"on")};var Hl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ol=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Il=ac.format=gc.timeFormat,Yl=Il.utc,Zl=Yl("%Y-%m-%dT%H:%M:%S.%LZ");Il.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Jo:Zl,Jo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Jo.toString=Zl.toString,ac.second=Ft(function(n){return new cc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ac.seconds=ac.second.range,ac.seconds.utc=ac.second.utc.range,ac.minute=Ft(function(n){return new cc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ac.minutes=ac.minute.range,ac.minutes.utc=ac.minute.utc.range,ac.hour=Ft(function(n){var t=n.getTimezoneOffset()/60;return new cc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ac.hours=ac.hour.range,ac.hours.utc=ac.hour.utc.range,ac.month=Ft(function(n){return n=ac.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ac.months=ac.month.range,ac.months.utc=ac.month.utc.range;var Vl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Xl=[[ac.second,1],[ac.second,5],[ac.second,15],[ac.second,30],[ac.minute,1],[ac.minute,5],[ac.minute,15],[ac.minute,30],[ac.hour,1],[ac.hour,3],[ac.hour,6],[ac.hour,12],[ac.day,1],[ac.day,2],[ac.week,1],[ac.month,1],[ac.month,3],[ac.year,1]],$l=Il.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",Ne]]),Bl={range:function(n,t,e){return ta.range(Math.ceil(n/e)*e,+t,e).map(Ko)},floor:y,ceil:y};Xl.year=ac.year,ac.scale=function(){return Go(ta.scale.linear(),Xl,$l)};var Wl=Xl.map(function(n){return[n[0].utc,n[1]]}),Jl=Yl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",Ne]]);Wl.year=ac.year.utc,ac.scale.utc=function(){return Go(ta.scale.linear(),Wl,Jl)},ta.text=At(function(n){return n.responseText}),ta.json=function(n,t){return Nt(n,"application/json",Qo,t)},ta.html=function(n,t){return Nt(n,"text/html",na,t)},ta.xml=At(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(ta):"object"==typeof module&&module.exports&&(module.exports=ta),this.d3=ta}(); \ No newline at end of file diff --git a/src/goaccess++/resources/js/d3.v3.min.js.tmp b/src/goaccess++/resources/js/d3.v3.min.js.tmp new file mode 100644 index 0000000..e0383a1 --- /dev/null +++ b/src/goaccess++/resources/js/d3.v3.min.js.tmp @@ -0,0 +1 @@ +!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function r(n){return null===n?0/0:+n}function u(n){return!isNaN(n)}function i(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function c(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function l(){this._=Object.create(null)}function s(n){return(n+="")===pa||n[0]===va?va+n:n}function f(n){return(n+="")[0]===va?n.slice(1):n}function h(n){return s(n)in this._}function g(n){return(n=s(n))in this._&&delete this._[n]}function p(){var n=[];for(var t in this._)n.push(f(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function m(){this._=Object.create(null)}function y(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=da.length;r>e;++e){var u=da[e]+t;if(u in n)return u}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,u=-1,i=r.length;++u<i;)(t=r[u].on)&&t.apply(this,arguments);return n}var e=[],r=new l;return t.on=function(t,u){var i,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(t)),u&&e.push(r.set(t,{on:u})),n)},t}function S(){ta.event.preventDefault()}function k(){for(var n,t=ta.event;n=t.sourceEvent;)t=n;return t}function E(n){for(var t=new _,e=0,r=arguments.length;++e<r;)t[arguments[e]]=w(t);return t.of=function(e,r){return function(u){try{var i=u.sourceEvent=ta.event;u.target=n,ta.event=u,t[u.type].apply(e,r)}finally{ta.event=i}}},t}function A(n){return ya(n,_a),n}function N(n){return"function"==typeof n?n:function(){return Ma(n,this)}}function C(n){return"function"==typeof n?n:function(){return xa(n,this)}}function z(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function u(){this.setAttribute(n,t)}function i(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=ta.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?i:u}function q(n){return n.trim().replace(/\s+/g," ")}function L(n){return new RegExp("(?:^|\\s+)"+ta.requote(n)+"(?:\\s+|$)","g")}function T(n){return(n+"").trim().split(/^|\s+/)}function R(n,t){function e(){for(var e=-1;++e<u;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<u;)n[e](this,r)}n=T(n).map(D);var u=n.length;return"function"==typeof t?r:e}function D(n){var t=L(n);return function(e,r){if(u=e.classList)return r?u.add(n):u.remove(n);var u=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(u)||e.setAttribute("class",q(u+" "+n))):e.setAttribute("class",q(u.replace(t," ")))}}function P(n,t,e){function r(){this.style.removeProperty(n)}function u(){this.style.setProperty(n,t,e)}function i(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?i:u}function U(n,t){function e(){delete this[n]}function r(){this[n]=t}function u(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?u:r}function j(n){function t(){var t=this.ownerDocument,e=this.namespaceURI;return e?t.createElementNS(e,n):t.createElement(n)}function e(){return this.ownerDocument.createElementNS(n.space,n.local)}return"function"==typeof n?n:(n=ta.ns.qualify(n)).local?e:t}function F(){var n=this.parentNode;n&&n.removeChild(this)}function H(n){return{__data__:n}}function O(n){return function(){return ba(this,n)}}function I(n){return arguments.length||(n=e),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function Y(n,t){for(var e=0,r=n.length;r>e;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function Z(n){return ya(n,Sa),n}function V(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t<c;);return o}}function X(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function u(){var u=c(t,ra(arguments));r.call(this),this.addEventListener(n,this[o]=u,u.$=e),u._=t}function i(){var t,e=new RegExp("^__on([^.]+)"+ta.requote(n)+"$");for(var r in this)if(t=r.match(e)){var u=this[r];this.removeEventListener(t[1],u,u.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),c=$;a>0&&(n=n.slice(0,a));var l=ka.get(n);return l&&(n=l,c=B),a?t?u:r:t?b:i}function $(n,t){return function(e){var r=ta.event;ta.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ta.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Aa,u="click"+r,i=ta.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ea&&(Ea="onselectstart"in e?!1:x(e.style,"userSelect")),Ea){var o=n(e).style,a=o[Ea];o[Ea]="none"}return function(n){if(i.on(r,null),Ea&&(o[Ea]=a),n){var t=function(){i.on(u,null)};i.on(u,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var u=r.createSVGPoint();if(0>Na){var i=t(n);if(i.scrollX||i.scrollY){r=ta.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Na=!(o.f||o.e),r.remove()}}return Na?(u.x=e.pageX,u.y=e.pageY):(u.x=e.clientX,u.y=e.clientY),u=u.matrixTransform(n.getScreenCTM().inverse()),[u.x,u.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ta.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nt(n){return n>1?0:-1>n?qa:Math.acos(n)}function tt(n){return n>1?Ra:-1>n?-Ra:Math.asin(n)}function et(n){return((n=Math.exp(n))-1/n)/2}function rt(n){return((n=Math.exp(n))+1/n)/2}function ut(n){return((n=Math.exp(2*n))-1)/(n+1)}function it(n){return(n=Math.sin(n/2))*n}function ot(){}function at(n,t,e){return this instanceof at?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof at?new at(n.h,n.s,n.l):bt(""+n,_t,at):new at(n,t,e)}function ct(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new mt(u(n+120),u(n),u(n-120))}function lt(n,t,e){return this instanceof lt?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof lt?new lt(n.h,n.c,n.l):n instanceof ft?gt(n.l,n.a,n.b):gt((n=wt((n=ta.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new lt(n,t,e)}function st(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new ft(e,Math.cos(n*=Da)*t,Math.sin(n)*t)}function ft(n,t,e){return this instanceof ft?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof ft?new ft(n.l,n.a,n.b):n instanceof lt?st(n.h,n.c,n.l):wt((n=mt(n)).r,n.g,n.b):new ft(n,t,e)}function ht(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=pt(u)*Xa,r=pt(r)*$a,i=pt(i)*Ba,new mt(dt(3.2404542*u-1.5371385*r-.4985314*i),dt(-.969266*u+1.8760108*r+.041556*i),dt(.0556434*u-.2040259*r+1.0572252*i))}function gt(n,t,e){return n>0?new lt(Math.atan2(e,t)*Pa,Math.sqrt(t*t+e*e),n):new lt(0/0,0/0,n)}function pt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function vt(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function dt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mt(n,t,e){return this instanceof mt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mt?new mt(n.r,n.g,n.b):bt(""+n,mt,ct):new mt(n,t,e)}function yt(n){return new mt(n>>16,n>>8&255,255&n)}function Mt(n){return yt(n)+""}function xt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function bt(n,t,e){var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(kt(u[0]),kt(u[1]),kt(u[2]))}return(i=Ga.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function _t(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new at(r,u,c)}function wt(n,t,e){n=St(n),t=St(t),e=St(e);var r=vt((.4124564*n+.3575761*t+.1804375*e)/Xa),u=vt((.2126729*n+.7151522*t+.072175*e)/$a),i=vt((.0193339*n+.119192*t+.9503041*e)/Ba);return ft(116*u-16,500*(r-u),200*(u-i))}function St(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function kt(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function Et(n){return"function"==typeof n?n:function(){return n}}function At(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Nt(t,e,n,r)}}function Nt(n,t,e,r){function u(){var n,t=c.status;if(!t&&zt(c)||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return void o.error.call(i,r)}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=ta.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,l=null;return!this.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=ta.event;ta.event=n;try{o.progress.call(i,c)}finally{ta.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(l=n,i):l},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(ra(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var s in a)c.setRequestHeader(s,a[s]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},ta.rebind(i,o,"on"),null==r?i:i.get(Ct(r))}function Ct(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function zt(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qt(){var n=Lt(),t=Tt()-n;t>24?(isFinite(t)&&(clearTimeout(tc),tc=setTimeout(qt,t)),nc=0):(nc=1,rc(qt))}function Lt(){var n=Date.now();for(ec=Ka;ec;)n>=ec.t&&(ec.f=ec.c(n-ec.t)),ec=ec.n;return n}function Tt(){for(var n,t=Ka,e=1/0;t;)t.f?t=n?n.n=t.n:Ka=t.n:(t.t<e&&(e=t.t),t=(n=t).n);return Qa=n,e}function Rt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Dt(n,t){var e=Math.pow(10,3*ga(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Pt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r&&e?function(n,t){for(var u=n.length,i=[],o=0,a=r[0],c=0;u>0&&a>0&&(c+a+1>t&&(a=Math.max(1,t-c)),i.push(n.substring(u-=a,u+a)),!((c+=a+1)>t));)a=r[o=(o+1)%r.length];return i.reverse().join(e)}:y;return function(n){var e=ic.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",c=e[4]||"",l=e[5],s=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1,y=!0;switch(h&&(h=+h.substring(1)),(l||"0"===r&&"="===o)&&(l=r="0",o="="),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":y=!1;case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=oc.get(g)||Ut;var M=l&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>p){var c=ta.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=y?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!l&&f&&(x=i(x,1/0));var S=v.length+x.length+b.length+(M?0:u.length),k=s>S?new Array(S=s-S+1).join(r):"";return M&&(x=i(k+x,k.length?s-b.length:1/0)),u+=v,n=x+b,("<"===o?u+n+k:">"===o?k+u+n:"^"===o?k.substring(0,S>>=1)+u+n+k.substring(S):u+(M?n:k+n))+e}}}function Ut(n){return n+""}function jt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ft(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new cc(e-1)),1),e}function i(n,e){return t(n=new cc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{cc=jt;var r=new jt;return r._=n,o(r,t,e)}finally{cc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Ht(n);return c.floor=c,c.round=Ht(r),c.ceil=Ht(u),c.offset=Ht(i),c.range=a,n}function Ht(n){return function(t,e){try{cc=jt;var r=new jt;return r._=t,n(r,e)._}finally{cc=Date}}}function Ot(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(c,a)),null!=(u=sc[e=n.charAt(++a)])&&(e=n.charAt(++a)),(i=N[e])&&(e=i(t,null==u?"e"===e?" ":"0":u)),o.push(e),c=a+1);return o.push(n.slice(c,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},u=e(r,n,t,0);if(u!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var i=null!=r.Z&&cc!==jt,o=new(i?jt:cc);return"j"in r?o.setFullYear(r.y,0,r.j):"w"in r&&("W"in r||"U"in r)?(o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),i?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var u,i,o,a=0,c=t.length,l=e.length;c>a;){if(r>=l)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=C[o in sc?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.slice(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,N.c.toString(),t,r)}function c(n,t,r){return e(n,N.x.toString(),t,r)}function l(n,t,r){return e(n,N.X.toString(),t,r)}function s(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{cc=jt;var t=new cc;return t._=n,r(t)}finally{cc=Date}}var r=t(n);return e.parse=function(n){try{cc=jt;var t=r.parse(n);return t&&t._}finally{cc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ae;var M=ta.map(),x=Yt(v),b=Zt(v),_=Yt(d),w=Zt(d),S=Yt(m),k=Zt(m),E=Yt(y),A=Zt(y);p.forEach(function(n,t){M.set(n.toLowerCase(),t)});var N={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return It(n.getDate(),t,2)},e:function(n,t){return It(n.getDate(),t,2)},H:function(n,t){return It(n.getHours(),t,2)},I:function(n,t){return It(n.getHours()%12||12,t,2)},j:function(n,t){return It(1+ac.dayOfYear(n),t,3)},L:function(n,t){return It(n.getMilliseconds(),t,3)},m:function(n,t){return It(n.getMonth()+1,t,2)},M:function(n,t){return It(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return It(n.getSeconds(),t,2)},U:function(n,t){return It(ac.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return It(ac.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return It(n.getFullYear()%100,t,2)},Y:function(n,t){return It(n.getFullYear()%1e4,t,4)},Z:ie,"%":function(){return"%"}},C={a:r,A:u,b:i,B:o,c:a,d:Qt,e:Qt,H:te,I:te,j:ne,L:ue,m:Kt,M:ee,p:s,S:re,U:Xt,w:Vt,W:$t,x:c,X:l,y:Wt,Y:Bt,Z:Jt,"%":oe};return t}function It(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Yt(n){return new RegExp("^(?:"+n.map(ta.requote).join("|")+")","i")}function Zt(n){for(var t=new l,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function Vt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Xt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function $t(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Bt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Wt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.y=Gt(+r[0]),e+r[0].length):-1}function Jt(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Gt(n){return n+(n>68?1900:2e3)}function Kt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Qt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function ne(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function te(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function ee(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function re(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ue(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function ie(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=ga(t)/60|0,u=ga(t)%60;return e+It(r,"0",2)+It(u,"0",2)}function oe(n,t,e){hc.lastIndex=0;var r=hc.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ae(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ce(){}function le(n,t,e){var r=e.s=n+t,u=r-n,i=r-u;e.t=n-i+(t-u)}function se(n,t){n&&dc.hasOwnProperty(n.type)&&dc[n.type](n,t)}function fe(n,t,e){var r,u=-1,i=n.length-e;for(t.lineStart();++u<i;)r=n[u],t.point(r[0],r[1],r[2]);t.lineEnd()}function he(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)fe(n[e],t,1);t.polygonEnd()}function ge(){function n(n,t){n*=Da,t=t*Da/2+qa/4;var e=n-r,o=e>=0?1:-1,a=o*e,c=Math.cos(t),l=Math.sin(t),s=i*l,f=u*c+s*Math.cos(a),h=s*o*Math.sin(a);yc.add(Math.atan2(h,f)),r=n,u=c,i=l}var t,e,r,u,i;Mc.point=function(o,a){Mc.point=n,r=(t=o)*Da,u=Math.cos(a=(e=a)*Da/2+qa/4),i=Math.sin(a)},Mc.lineEnd=function(){n(t,e)}}function pe(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function ve(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function de(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function me(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function ye(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function Me(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function xe(n){return[Math.atan2(n[1],n[0]),tt(n[2])]}function be(n,t){return ga(n[0]-t[0])<Ca&&ga(n[1]-t[1])<Ca}function _e(n,t){n*=Da;var e=Math.cos(t*=Da);we(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function we(n,t,e){++xc,_c+=(n-_c)/xc,wc+=(t-wc)/xc,Sc+=(e-Sc)/xc}function Se(){function n(n,u){n*=Da;var i=Math.cos(u*=Da),o=i*Math.cos(n),a=i*Math.sin(n),c=Math.sin(u),l=Math.atan2(Math.sqrt((l=e*c-r*a)*l+(l=r*o-t*c)*l+(l=t*a-e*o)*l),t*o+e*a+r*c);bc+=l,kc+=l*(t+(t=o)),Ec+=l*(e+(e=a)),Ac+=l*(r+(r=c)),we(t,e,r)}var t,e,r;qc.point=function(u,i){u*=Da;var o=Math.cos(i*=Da);t=o*Math.cos(u),e=o*Math.sin(u),r=Math.sin(i),qc.point=n,we(t,e,r)}}function ke(){qc.point=_e}function Ee(){function n(n,t){n*=Da;var e=Math.cos(t*=Da),o=e*Math.cos(n),a=e*Math.sin(n),c=Math.sin(t),l=u*c-i*a,s=i*o-r*c,f=r*a-u*o,h=Math.sqrt(l*l+s*s+f*f),g=r*o+u*a+i*c,p=h&&-nt(g)/h,v=Math.atan2(h,g);Nc+=p*l,Cc+=p*s,zc+=p*f,bc+=v,kc+=v*(r+(r=o)),Ec+=v*(u+(u=a)),Ac+=v*(i+(i=c)),we(r,u,i)}var t,e,r,u,i;qc.point=function(o,a){t=o,e=a,qc.point=n,o*=Da;var c=Math.cos(a*=Da);r=c*Math.cos(o),u=c*Math.sin(o),i=Math.sin(a),we(r,u,i)},qc.lineEnd=function(){n(t,e),qc.lineEnd=ke,qc.point=_e}}function Ae(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function Ne(){return!0}function Ce(n,t,e,r,u){var i=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(be(e,r)){u.lineStart();for(var a=0;t>a;++a)u.point((e=n[a])[0],e[1]);return void u.lineEnd()}var c=new qe(e,n,null,!0),l=new qe(e,null,c,!1);c.o=l,i.push(c),o.push(l),c=new qe(r,n,null,!1),l=new qe(r,null,c,!0),c.o=l,i.push(c),o.push(l)}}),o.sort(t),ze(i),ze(o),i.length){for(var a=0,c=e,l=o.length;l>a;++a)o[a].e=c=!c;for(var s,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;s=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,l=s.length;l>a;++a)u.point((f=s[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){s=g.p.z;for(var a=s.length-1;a>=0;--a)u.point((f=s[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,s=g.z,p=!p}while(!g.v);u.lineEnd()}}}function ze(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r<t;)u.n=e=n[r],e.p=u,u=e;u.n=e=n[0],e.p=u}}function qe(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Le(n,t,e,r){return function(u,i){function o(t,e){var r=u(t,e);n(t=r[0],e=r[1])&&i.point(t,e)}function a(n,t){var e=u(n,t);d.point(e[0],e[1])}function c(){y.point=a,d.lineStart()}function l(){y.point=o,d.lineEnd()}function s(n,t){v.push([n,t]);var e=u(n,t);x.point(e[0],e[1])}function f(){x.lineStart(),v=[]}function h(){s(v[0][0],v[0][1]),x.lineEnd();var n,t=x.clean(),e=M.buffer(),r=e.length;if(v.pop(),p.push(v),v=null,r)if(1&t){n=e[0];var u,r=n.length-1,o=-1;if(r>0){for(b||(i.polygonStart(),b=!0),i.lineStart();++o<r;)i.point((u=n[o])[0],u[1]);i.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Te))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:l,polygonStart:function(){y.point=s,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=l,g=ta.merge(g);var n=Fe(m,p);g.length?(b||(i.polygonStart(),b=!0),Ce(g,De,n,e,i)):n&&(b||(i.polygonStart(),b=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),b&&(i.polygonEnd(),b=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},M=Re(),x=t(M),b=!1;return y}}function Te(n){return n.length>1}function Re(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function De(n,t){return((n=n.x)[0]<0?n[1]-Ra-Ca:Ra-n[1])-((t=t.x)[0]<0?t[1]-Ra-Ca:Ra-t[1])}function Pe(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?qa:-qa,c=ga(i-e);ga(c-qa)<Ca?(n.point(e,r=(r+o)/2>0?Ra:-Ra),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=qa&&(ga(e-u)<Ca&&(e-=u*Ca),ga(i-a)<Ca&&(i-=a*Ca),r=Ue(e,r,i,o),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=i,r=o),u=a},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function Ue(n,t,e,r){var u,i,o=Math.sin(n-e);return ga(o)>Ca?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function je(n,t,e,r){var u;if(null==n)u=e*Ra,r.point(-qa,u),r.point(0,u),r.point(qa,u),r.point(qa,0),r.point(qa,-u),r.point(0,-u),r.point(-qa,-u),r.point(-qa,0),r.point(-qa,u);else if(ga(n[0]-t[0])>Ca){var i=n[0]<t[0]?qa:-qa;u=e*i/2,r.point(-i,u),r.point(0,u),r.point(i,u)}else r.point(t[0],t[1])}function Fe(n,t){var e=n[0],r=n[1],u=[Math.sin(e),-Math.cos(e),0],i=0,o=0;yc.reset();for(var a=0,c=t.length;c>a;++a){var l=t[a],s=l.length;if(s)for(var f=l[0],h=f[0],g=f[1]/2+qa/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===s&&(d=0),n=l[d];var m=n[0],y=n[1]/2+qa/4,M=Math.sin(y),x=Math.cos(y),b=m-h,_=b>=0?1:-1,w=_*b,S=w>qa,k=p*M;if(yc.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),i+=S?b+_*La:b,S^h>=e^m>=e){var E=de(pe(f),pe(n));Me(E);var A=de(u,E);Me(A);var N=(S^b>=0?-1:1)*tt(A[2]);(r>N||r===N&&(E[0]||E[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=m,p=M,v=x,f=n}}return(-Ca>i||Ca>i&&0>yc)^1&o}function He(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,l,s;return{lineStart:function(){l=c=!1,s=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?qa:-qa),h):0;if(!e&&(l=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(be(e,g)||be(p,g))&&(p[0]+=Ca,p[1]+=Ca,v=t(p[0],p[1]))),v!==c)s=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(s=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&be(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return s|(l&&c)<<1}}}function r(n,t,e){var r=pe(n),u=pe(t),o=[1,0,0],a=de(r,u),c=ve(a,a),l=a[0],s=c-l*l;if(!s)return!e&&n;var f=i*c/s,h=-i*l/s,g=de(o,a),p=ye(o,f),v=ye(a,h);me(p,v);var d=g,m=ve(p,d),y=ve(d,d),M=m*m-y*(ve(p,p)-1);if(!(0>M)){var x=Math.sqrt(M),b=ye(d,(-m-x)/y);if(me(b,p),b=xe(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(_=w,w=S,S=_);var A=S-w,N=ga(A-qa)<Ca,C=N||Ca>A;if(!N&&k>E&&(_=k,k=E,E=_),C?N?k+E>0^b[1]<(ga(b[0]-w)<Ca?k:E):k<=b[1]&&b[1]<=E:A>qa^(w<=b[0]&&b[0]<=S)){var z=ye(d,(-m+x)/y);return me(z,p),[b,xe(z)]}}}function u(t,e){var r=o?n:qa-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ga(i)>Ca,c=gr(n,6*Da);return Le(t,e,c,o?[0,-n]:[-qa,n-qa])}function Oe(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,l=o.y,s=a.x,f=a.y,h=0,g=1,p=s-c,v=f-l;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-l,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-l,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:l+h*v}),1>g&&(u.b={x:c+g*p,y:l+g*v}),u}}}}}}function Ie(n,t,e,r){function u(r,u){return ga(r[0]-n)<Ca?u>0?0:3:ga(r[0]-e)<Ca?u>0?2:1:ga(r[1]-t)<Ca?u>0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&Q(l,i,n)>0&&++t:i[1]<=r&&Q(l,i,n)<0&&--t,l=i;return 0!==t}function l(i,a,c,l){var s=0,f=0;if(null==i||(s=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do l.point(0===s||3===s?n:e,s>1?r:t);while((s=(s+c+4)%4)!==f)}else l.point(a[0],a[1])}function s(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){s(n,t)&&a.point(n,t)}function h(){C.point=p,d&&d.push(m=[]),S=!0,w=!1,b=_=0/0}function g(){v&&(p(y,M),x&&w&&A.rejoin(),v.push(A.buffer())),C.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-Tc,Math.min(Tc,n)),t=Math.max(-Tc,Math.min(Tc,t));var e=s(n,t);if(d&&m.push([n,t]),S)y=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};N(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,m,y,M,x,b,_,w,S,k,E=a,A=Re(),N=Oe(n,t,e,r),C={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=ta.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Ce(v,i,t,l,a),a.polygonEnd()),v=d=m=null}};return C}}function Ye(n){var t=0,e=qa/3,r=ir(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*qa/180,e=n[1]*qa/180):[t/qa*180,e/qa*180]},u}function Ze(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,tt((i-(n*n+e*e)*u*u)/(2*u))]},e}function Ve(){function n(n,t){Dc+=u*n-r*t,r=n,u=t}var t,e,r,u;Hc.point=function(i,o){Hc.point=n,t=r=i,e=u=o},Hc.lineEnd=function(){n(t,e)}}function Xe(n,t){Pc>n&&(Pc=n),n>jc&&(jc=n),Uc>t&&(Uc=t),t>Fc&&(Fc=t)}function $e(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Be(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Be(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Be(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function We(n,t){_c+=n,wc+=t,++Sc}function Je(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);kc+=o*(t+n)/2,Ec+=o*(e+r)/2,Ac+=o,We(t=n,e=r)}var t,e;Ic.point=function(r,u){Ic.point=n,We(t=r,e=u)}}function Ge(){Ic.point=We}function Ke(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);kc+=o*(r+n)/2,Ec+=o*(u+t)/2,Ac+=o,o=u*n-r*t,Nc+=o*(r+n),Cc+=o*(u+t),zc+=3*o,We(r=n,u=t)}var t,e,r,u;Ic.point=function(i,o){Ic.point=n,We(t=r=i,e=u=o)},Ic.lineEnd=function(){n(t,e)}}function Qe(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,La)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function nr(n){function t(n){return(a?r:e)(n)}function e(t){return rr(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=0/0,S.point=i,t.lineStart()}function i(e,r){var i=pe([e,r]),o=n(e,r);u(M,x,y,b,_,w,M=o[0],x=o[1],y=e,b=i[0],_=i[1],w=i[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=l,S.lineEnd=s}function l(n,t){i(f=n,h=t),g=M,p=x,v=b,d=_,m=w,S.point=i}function s(){u(M,x,y,b,_,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,l,s,f,h,g,p,v,d,m){var y=s-t,M=f-e,x=y*y+M*M;if(x>4*i&&d--){var b=a+g,_=c+p,w=l+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),E=ga(ga(w)-1)<Ca||ga(r-h)<Ca?(r+h)/2:Math.atan2(_,b),A=n(E,k),N=A[0],C=A[1],z=N-t,q=C-e,L=M*z-y*q;(L*L/x>i||ga((y*z+M*q)/x-.5)>.3||o>a*g+c*p+l*v)&&(u(t,e,r,a,c,l,N,C,E,b/=S,_/=S,w,d,m),m.point(N,C),u(N,C,E,b,_,w,s,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Da),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function tr(n){var t=nr(function(t,e){return n([t*Pa,e*Pa])});return function(n){return or(t(n))}}function er(n){this.stream=n}function rr(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function ur(n){return ir(function(){return n})()}function ir(n){function t(n){return n=a(n[0]*Da,n[1]*Da),[n[0]*h+c,l-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Pa,n[1]*Pa]}function r(){a=Ae(o=lr(m,M,x),i);var n=i(v,d);return c=g-n[0]*h,l=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,o,a,c,l,s,f=nr(function(n,t){return n=i(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,M=0,x=0,b=Lc,_=y,w=null,S=null;return t.stream=function(n){return s&&(s.valid=!1),s=or(b(o,f(_(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Lc):He((w=+n)*Da),u()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Ie(n[0][0],n[0][1],n[1][0],n[1][1]):y,u()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Da,d=n[1]%360*Da,r()):[v*Pa,d*Pa]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Da,M=n[1]%360*Da,x=n.length>2?n[2]%360*Da:0,r()):[m*Pa,M*Pa,x*Pa]},ta.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function or(n){return rr(n,function(t,e){n.point(t*Da,e*Da)})}function ar(n,t){return[n,t]}function cr(n,t){return[n>qa?n-La:-qa>n?n+La:n,t]}function lr(n,t,e){return n?t||e?Ae(fr(n),hr(t,e)):fr(n):t||e?hr(t,e):cr}function sr(n){return function(t,e){return t+=n,[t>qa?t-La:-qa>t?t+La:t,e]}}function fr(n){var t=sr(n);return t.invert=sr(-n),t}function hr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*r+a*u;return[Math.atan2(c*i-s*o,a*r-l*u),tt(s*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*i-c*o;return[Math.atan2(c*i+l*o,a*r+s*u),tt(s*r-a*u)]},e}function gr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=pr(e,u),i=pr(e,i),(o>0?i>u:u>i)&&(u+=o*La)):(u=n+o*La,i=n-.5*c);for(var l,s=u;o>0?s>i:i>s;s-=c)a.point((l=xe([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],l[1])}}function pr(n,t){var e=pe(t);e[0]-=n,Me(e);var r=nt(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Ca)%(2*Math.PI)}function vr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function dr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function mr(n){return n.source}function yr(n){return n.target}function Mr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),l=u*Math.sin(n),s=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(it(r-t)+u*o*it(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*s,u=e*l+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Pa,Math.atan2(o,Math.sqrt(r*r+u*u))*Pa]}:function(){return[n*Pa,t*Pa]};return p.distance=h,p}function xr(){function n(n,u){var i=Math.sin(u*=Da),o=Math.cos(u),a=ga((n*=Da)-t),c=Math.cos(a);Yc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Zc.point=function(u,i){t=u*Da,e=Math.sin(i*=Da),r=Math.cos(i),Zc.point=n},Zc.lineEnd=function(){Zc.point=Zc.lineEnd=b}}function br(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function _r(n,t){function e(n,t){o>0?-Ra+Ca>t&&(t=-Ra+Ca):t>Ra-Ca&&(t=Ra-Ca);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(qa/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=K(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Ra]},e):Sr}function wr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ga(u)<Ca?ar:(e.invert=function(n,t){var e=i-t;return[Math.atan2(n,e)/u,i-K(u)*Math.sqrt(n*n+e*e)]},e)}function Sr(n,t){return[n,Math.log(Math.tan(qa/4+t/2))]}function kr(n){var t,e=ur(n),r=e.scale,u=e.translate,i=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=u.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=i.apply(e,arguments);if(o===e){if(t=null==n){var a=qa*r(),c=u();i([[c[0]-a,c[1]-a],[c[0]+a,c[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Er(n,t){return[Math.log(Math.tan(qa/4+t/2)),-n]}function Ar(n){return n[0]}function Nr(n){return n[1]}function Cr(n){for(var t=n.length,e=[0,1],r=2,u=2;t>u;u++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function zr(n,t){return n[0]-t[0]||n[1]-t[1]}function qr(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Lr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],l=e[1],s=t[1]-c,f=r[1]-l,h=(a*(c-l)-f*(u-i))/(f*o-a*s);return[u+h*o,c+h*s]}function Tr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Rr(){tu(this),this.edge=this.site=this.circle=null}function Dr(n){var t=el.pop()||new Rr;return t.site=n,t}function Pr(n){Xr(n),Qc.remove(n),el.push(n),tu(n)}function Ur(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Pr(n);for(var c=i;c.circle&&ga(e-c.circle.x)<Ca&&ga(r-c.circle.cy)<Ca;)i=c.P,a.unshift(c),Pr(c),c=i;a.unshift(c),Xr(c);for(var l=o;l.circle&&ga(e-l.circle.x)<Ca&&ga(r-l.circle.cy)<Ca;)o=l.N,a.push(l),Pr(l),l=o;a.push(l),Xr(l);var s,f=a.length;for(s=1;f>s;++s)l=a[s],c=a[s-1],Kr(l.edge,c.site,l.site,u);c=a[0],l=a[f-1],l.edge=Jr(c.site,l.site,null,u),Vr(c),Vr(l)}function jr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Qc._;a;)if(r=Fr(a,o)-i,r>Ca)a=a.L;else{if(u=i-Hr(a,o),!(u>Ca)){r>-Ca?(t=a.P,e=a):u>-Ca?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Dr(n);if(Qc.insert(t,c),t||e){if(t===e)return Xr(t),e=Dr(t.site),Qc.insert(c,e),c.edge=e.edge=Jr(t.site,c.site),Vr(t),void Vr(e);if(!e)return void(c.edge=Jr(t.site,c.site));Xr(t),Xr(e);var l=t.site,s=l.x,f=l.y,h=n.x-s,g=n.y-f,p=e.site,v=p.x-s,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,M=v*v+d*d,x={x:(d*y-g*M)/m+s,y:(h*M-v*y)/m+f};Kr(e.edge,l,p,x),c.edge=Jr(l,n,null,x),e.edge=Jr(n,p,null,x),Vr(t),Vr(e)}}function Fr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,l=c-t;if(!l)return a;var s=a-r,f=1/i-1/l,h=s/l;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*l)-c+l/2+u-i/2)))/f+r:(r+a)/2}function Hr(n,t){var e=n.N;if(e)return Fr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Or(n){this.site=n,this.edges=[]}function Ir(n){for(var t,e,r,u,i,o,a,c,l,s,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Kc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)s=a[o].end(),r=s.x,u=s.y,l=a[++o%c].start(),t=l.x,e=l.y,(ga(r-t)>Ca||ga(u-e)>Ca)&&(a.splice(o,0,new Qr(Gr(i.site,s,ga(r-f)<Ca&&p-u>Ca?{x:f,y:ga(t-f)<Ca?e:p}:ga(u-p)<Ca&&h-r>Ca?{x:ga(e-p)<Ca?t:h,y:p}:ga(r-h)<Ca&&u-g>Ca?{x:h,y:ga(t-h)<Ca?e:g}:ga(u-g)<Ca&&r-f>Ca?{x:ga(e-g)<Ca?t:f,y:g}:null),i.site,null)),++c)}function Yr(n,t){return t.angle-n.angle}function Zr(){tu(this),this.x=this.y=this.arc=this.site=this.cy=null}function Vr(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,u=n.site,i=e.site;if(r!==i){var o=u.x,a=u.y,c=r.x-o,l=r.y-a,s=i.x-o,f=i.y-a,h=2*(c*f-l*s);if(!(h>=-za)){var g=c*c+l*l,p=s*s+f*f,v=(f*g-l*p)/h,d=(c*p-s*g)/h,f=d+a,m=rl.pop()||new Zr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,M=tl._;M;)if(m.y<M.y||m.y===M.y&&m.x<=M.x){if(!M.L){y=M.P;break}M=M.L}else{if(!M.R){y=M;break}M=M.R}tl.insert(y,m),y||(nl=m)}}}}function Xr(n){var t=n.circle;t&&(t.P||(nl=t.N),tl.remove(t),rl.push(t),tu(t),n.circle=null)}function $r(n){for(var t,e=Gc,r=Oe(n[0][0],n[0][1],n[1][0],n[1][1]),u=e.length;u--;)t=e[u],(!Br(t,n)||!r(t)||ga(t.a.x-t.b.x)<Ca&&ga(t.a.y-t.b.y)<Ca)&&(t.a=t.b=null,e.splice(u,1))}function Br(n,t){var e=n.b;if(e)return!0;var r,u,i=n.a,o=t[0][0],a=t[1][0],c=t[0][1],l=t[1][1],s=n.l,f=n.r,h=s.x,g=s.y,p=f.x,v=f.y,d=(h+p)/2,m=(g+v)/2;if(v===g){if(o>d||d>=a)return;if(h>p){if(i){if(i.y>=l)return}else i={x:d,y:c};e={x:d,y:l}}else{if(i){if(i.y<c)return}else i={x:d,y:l};e={x:d,y:c}}}else if(r=(h-p)/(v-g),u=m-r*d,-1>r||r>1)if(h>p){if(i){if(i.y>=l)return}else i={x:(c-u)/r,y:c};e={x:(l-u)/r,y:l}}else{if(i){if(i.y<c)return}else i={x:(l-u)/r,y:l};e={x:(c-u)/r,y:c}}else if(v>g){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.x<o)return}else i={x:a,y:r*a+u};e={x:o,y:r*o+u}}return n.a=i,n.b=e,!0}function Wr(n,t){this.l=n,this.r=t,this.a=this.b=null}function Jr(n,t,e,r){var u=new Wr(n,t);return Gc.push(u),e&&Kr(u,n,t,e),r&&Kr(u,t,n,r),Kc[n.i].edges.push(new Qr(u,n,t)),Kc[t.i].edges.push(new Qr(u,t,n)),u}function Gr(n,t,e){var r=new Wr(n,null);return r.a=t,r.b=e,Gc.push(r),r}function Kr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function Qr(n,t,e){var r=n.a,u=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(u.x-r.x,r.y-u.y):Math.atan2(r.x-u.x,u.y-r.y)}function nu(){this._=null}function tu(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function eu(n,t){var e=t,r=t.R,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ru(n,t){var e=t,r=t.L,u=e.U;u?u.L===e?u.L=r:u.R=r:n._=r,r.U=u,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function uu(n){for(;n.L;)n=n.L;return n}function iu(n,t){var e,r,u,i=n.sort(ou).pop();for(Gc=[],Kc=new Array(n.length),Qc=new nu,tl=new nu;;)if(u=nl,i&&(!u||i.y<u.y||i.y===u.y&&i.x<u.x))(i.x!==e||i.y!==r)&&(Kc[i.i]=new Or(i),jr(i),e=i.x,r=i.y),i=n.pop();else{if(!u)break;Ur(u.arc)}t&&($r(t),Ir(t));var o={cells:Kc,edges:Gc};return Qc=tl=Gc=Kc=null,o}function ou(n,t){return t.y-n.y||t.x-n.x}function au(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function cu(n){return n.x}function lu(n){return n.y}function su(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function fu(n,t,e,r,u,i){if(!n(t,e,r,u,i)){var o=.5*(e+u),a=.5*(r+i),c=t.nodes;c[0]&&fu(n,c[0],e,r,o,a),c[1]&&fu(n,c[1],o,r,u,a),c[2]&&fu(n,c[2],e,a,o,i),c[3]&&fu(n,c[3],o,a,u,i)}}function hu(n,t,e,r,u,i,o){var a,c=1/0;return function l(n,s,f,h,g){if(!(s>i||f>o||r>h||u>g)){if(p=n.point){var p,v=t-n.x,d=e-n.y,m=v*v+d*d;if(c>m){var y=Math.sqrt(c=m);r=t-y,u=e-y,i=t+y,o=e+y,a=p}}for(var M=n.nodes,x=.5*(s+h),b=.5*(f+g),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:l(n,s,f,x,b);break;case 1:l(n,x,f,h,b);break;case 2:l(n,s,b,x,g);break;case 3:l(n,x,b,h,g)}}}(n,r,u,i,o),a}function gu(n,t){n=ta.rgb(n),t=ta.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+xt(Math.round(e+i*n))+xt(Math.round(r+o*n))+xt(Math.round(u+a*n))}}function pu(n,t){var e,r={},u={};for(e in n)e in t?r[e]=mu(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function vu(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function du(n,t){var e,r,u,i=il.lastIndex=ol.lastIndex=0,o=-1,a=[],c=[];for(n+="",t+="";(e=il.exec(n))&&(r=ol.exec(t));)(u=r.index)>i&&(u=t.slice(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:vu(e,r)})),i=ol.lastIndex;return i<t.length&&(u=t.slice(i),a[o]?a[o]+=u:a[++o]=u),a.length<2?c[0]?(t=c[0].x,function(n){return t(n)+""}):function(){return t}:(t=c.length,function(n){for(var e,r=0;t>r;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function mu(n,t){for(var e,r=ta.interpolators.length;--r>=0&&!(e=ta.interpolators[r](n,t)););return e}function yu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(mu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function Mu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function xu(n){return function(t){return 1-n(1-t)}}function bu(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function _u(n){return n*n}function wu(n){return n*n*n}function Su(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function ku(n){return function(t){return Math.pow(t,n)}}function Eu(n){return 1-Math.cos(n*Ra)}function Au(n){return Math.pow(2,10*(n-1))}function Nu(n){return 1-Math.sqrt(1-n*n)}function Cu(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/La*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*La/t)}}function zu(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function qu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Lu(n,t){n=ta.hcl(n),t=ta.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return st(e+i*n,r+o*n,u+a*n)+""}}function Tu(n,t){n=ta.hsl(n),t=ta.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ct(e+i*n,r+o*n,u+a*n)+""}}function Ru(n,t){n=ta.lab(n),t=ta.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ht(e+i*n,r+o*n,u+a*n)+""}}function Du(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Pu(n){var t=[n.a,n.b],e=[n.c,n.d],r=ju(t),u=Uu(t,e),i=ju(Fu(e,t,-u))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,u*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Pa,this.translate=[n.e,n.f],this.scale=[r,i],this.skew=i?Math.atan2(u,i)*Pa:0}function Uu(n,t){return n[0]*t[0]+n[1]*t[1]}function ju(n){var t=Math.sqrt(Uu(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Fu(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Hu(n,t){var e,r=[],u=[],i=ta.transform(n),o=ta.transform(t),a=i.translate,c=o.translate,l=i.rotate,s=o.rotate,f=i.skew,h=o.skew,g=i.scale,p=o.scale;return a[0]!=c[0]||a[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:vu(a[0],c[0])},{i:3,x:vu(a[1],c[1])})):r.push(c[0]||c[1]?"translate("+c+")":""),l!=s?(l-s>180?s+=360:s-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:vu(l,s)})):s&&r.push(r.pop()+"rotate("+s+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:vu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:vu(g[0],p[0])},{i:e-2,x:vu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i<e;)r[(t=u[i]).i]=t.x(n);return r.join("")}}function Ou(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Iu(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Yu(n){for(var t=n.source,e=n.target,r=Vu(t,e),u=[t];t!==r;)t=t.parent,u.push(t);for(var i=u.length;e!==r;)u.splice(i,0,e),e=e.parent;return u}function Zu(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Vu(n,t){if(n===t)return n;for(var e=Zu(n),r=Zu(t),u=e.pop(),i=r.pop(),o=null;u===i;)o=u,u=e.pop(),i=r.pop();return o}function Xu(n){n.fixed|=2}function $u(n){n.fixed&=-7}function Bu(n){n.fixed|=4,n.px=n.x,n.py=n.y}function Wu(n){n.fixed&=-5}function Ju(n,t,e){var r=0,u=0;if(n.charge=0,!n.leaf)for(var i,o=n.nodes,a=o.length,c=-1;++c<a;)i=o[c],null!=i&&(Ju(i,t,e),n.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var l=t*e[n.point.index];n.charge+=n.pointCharge=l,r+=l*n.point.x,u+=l*n.point.y}n.cx=r/n.charge,n.cy=u/n.charge}function Gu(n,t){return ta.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=ri,n}function Ku(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(u=n.children)&&(r=u.length))for(var r,u;--r>=0;)e.push(u[r])}function Qu(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++o<u;)e.push(i[o]);for(;null!=(n=r.pop());)t(n)}function ni(n){return n.children}function ti(n){return n.value}function ei(n,t){return t.value-n.value}function ri(n){return ta.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function ui(n){return n.x}function ii(n){return n.y}function oi(n,t,e){n.y0=t,n.y=e}function ai(n){return ta.range(n.length)}function ci(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function li(n){for(var t,e=1,r=0,u=n[0][1],i=n.length;i>e;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function si(n){return n.reduce(fi,0)}function fi(n,t){return n+t[1]}function hi(n,t){return gi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function gi(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function pi(n){return[ta.min(n),ta.max(n)]}function vi(n,t){return n.value-t.value}function di(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function mi(n,t){n._pack_next=t,t._pack_prev=n}function yi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function Mi(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(l=e.length)){var e,r,u,i,o,a,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(xi),r=e[0],r.x=-r.r,r.y=0,t(r),l>1&&(u=e[1],u.x=u.r,u.y=0,t(u),l>2))for(i=e[2],wi(r,u,i),t(i),di(r,i),r._pack_prev=i,di(i,u),u=r._pack_next,o=3;l>o;o++){wi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(yi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!yi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.r<r.r?mi(r,u=a):mi(r=c,u),o--):(di(r,i),u=i,t(i))}var m=(s+f)/2,y=(h+g)/2,M=0;for(o=0;l>o;o++)i=e[o],i.x-=m,i.y-=y,M=Math.max(M,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=M,e.forEach(bi)}}function xi(n){n._pack_next=n._pack_prev=n}function bi(n){delete n._pack_next,delete n._pack_prev}function _i(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i<o;)_i(u[i],t,e,r)}function wi(n,t,e){var r=n.r+e.r,u=t.x-n.x,i=t.y-n.y;if(r&&(u||i)){var o=t.r+e.r,a=u*u+i*i;o*=o,r*=r;var c=.5+(r-o)/(2*a),l=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+c*u+l*i,e.y=n.y+c*i-l*u}else e.x=n.x+r,e.y=n.y}function Si(n,t){return n.parent==t.parent?1:2}function ki(n){var t=n.children;return t.length?t[0]:n.t}function Ei(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function Ai(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function Ni(n){for(var t,e=0,r=0,u=n.children,i=u.length;--i>=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Ci(n,t,e){return n.a.parent===t.parent?n.a:e}function zi(n){return 1+ta.max(n,function(n){return n.y})}function qi(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Li(n){var t=n.children;return t&&t.length?Li(t[0]):n}function Ti(n){var t,e=n.children;return e&&(t=e.length)?Ti(e[t-1]):n}function Ri(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Di(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Pi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ui(n){return n.rangeExtent?n.rangeExtent():Pi(n.range())}function ji(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Fi(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Hi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ml}function Oi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)u.push(e(n[o-1],n[o])),i.push(r(t[o-1],t[o]));return function(t){var e=ta.bisect(n,t,1,a)-1;return i[e](u[e](t))}}function Ii(n,t,e,r){function u(){var u=Math.min(n.length,t.length)>2?Oi:ji,c=r?Iu:Ou;return o=u(n,t,c,e),a=u(t,n,c,mu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Du)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Xi(n,t)},i.tickFormat=function(t,e){return $i(n,t,e)},i.nice=function(t){return Zi(n,t),u()},i.copy=function(){return Ii(n,t,e,r)},u()}function Yi(n,t){return ta.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Zi(n,t){return Fi(n,Hi(Vi(n,t)[2]))}function Vi(n,t){null==t&&(t=10);var e=Pi(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Xi(n,t){return ta.range.apply(ta,Vi(n,t))}function $i(n,t,e){var r=Vi(n,t);if(e){var u=ic.exec(e);if(u.shift(),"s"===u[8]){var i=ta.formatPrefix(Math.max(ga(r[0]),ga(r[1])));return u[7]||(u[7]="."+Bi(i.scale(r[2]))),u[8]="f",e=ta.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Wi(u[8],r)),e=u.join("")}else e=",."+Bi(r[2])+"f";return ta.format(e)}function Bi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Wi(n,t){var e=Bi(t[2]);return n in yl?Math.abs(e-Bi(Math.max(ga(t[0]),ga(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Ji(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Fi(r.map(u),e?Math:xl);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Pi(r),o=[],a=n[0],c=n[1],l=Math.floor(u(a)),s=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(s-l)){if(e){for(;s>l;l++)for(var h=1;f>h;h++)o.push(i(l)*h);o.push(i(l))}else for(o.push(i(l));l++<s;)for(var h=f-1;h>0;h--)o.push(i(l)*h);for(l=0;o[l]<a;l++);for(s=o.length;o[s-1]>c;s--);o=o.slice(l,s)}return o},o.tickFormat=function(n,t){if(!arguments.length)return Ml;arguments.length<2?t=Ml:"function"!=typeof t&&(t=ta.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Ji(n.copy(),t,e,r)},Yi(o,n)}function Gi(n,t,e){function r(t){return n(u(t))}var u=Ki(t),i=Ki(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Xi(e,n)},r.tickFormat=function(n,t){return $i(e,n,t)},r.nice=function(n){return r.domain(Zi(e,n))},r.exponent=function(o){return arguments.length?(u=Ki(t=o),i=Ki(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Gi(n.copy(),t,e)},Yi(r,n)}function Ki(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Qi(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return ta.range(n.length).map(function(n){return t+e*n})}var u,i,o;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new l;for(var i,o=-1,a=r.length;++o<a;)u.has(i=r[o])||u.set(i,n.push(i));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(i=n,o=0,t={t:"range",a:arguments},e):i},e.rangePoints=function(u,a){arguments.length<2&&(a=0);var c=u[0],l=u[1],s=n.length<2?(c=(c+l)/2,0):(l-c)/(n.length-1+a);return i=r(c+s*a/2,s),o=0,t={t:"rangePoints",a:arguments},e},e.rangeRoundPoints=function(u,a){arguments.length<2&&(a=0);var c=u[0],l=u[1],s=n.length<2?(c=l=Math.round((c+l)/2),0):(l-c)/(n.length-1+a)|0;return i=r(c+Math.round(s*a/2+(l-c-(n.length-1+a)*s)/2),s),o=0,t={t:"rangeRoundPoints",a:arguments},e},e.rangeBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=(f-s)/(n.length-a+2*c);return i=r(s+h*c,h),l&&i.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(u,a,c){arguments.length<2&&(a=0),arguments.length<3&&(c=a);var l=u[1]<u[0],s=u[l-0],f=u[1-l],h=Math.floor((f-s)/(n.length-a+2*c));return i=r(s+Math.round((f-s-(n.length-a)*h)/2),h),l&&i.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Pi(t.a[0])},e.copy=function(){return Qi(n,t)},e.domain(n)}function no(n,t){function i(){var e=0,r=t.length;for(a=[];++e<r;)a[e-1]=ta.quantile(n,e/r);return o}function o(n){return isNaN(n=+n)?void 0:t[ta.bisect(a,n)]}var a;return o.domain=function(t){return arguments.length?(n=t.map(r).filter(u).sort(e),i()):n},o.range=function(n){return arguments.length?(t=n,i()):t},o.quantiles=function(){return a},o.invertExtent=function(e){return e=t.indexOf(e),0>e?[0/0,0/0]:[e>0?a[e-1]:n[0],e<a.length?a[e]:n[n.length-1]]},o.copy=function(){return no(n,t)},i()}function to(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(i*(t-n))))]}function u(){return i=e.length/(t-n),o=e.length-1,r}var i,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],u()):[n,t]},r.range=function(n){return arguments.length?(e=n,u()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return to(n,t,e)},u()}function eo(n,t){function e(e){return e>=e?t[ta.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return eo(n,t)},e}function ro(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Xi(n,t)},t.tickFormat=function(t,e){return $i(n,t,e)},t.copy=function(){return ro(n)},t}function uo(){return 0}function io(n){return n.innerRadius}function oo(n){return n.outerRadius}function ao(n){return n.startAngle}function co(n){return n.endAngle}function lo(n){return n&&n.padAngle}function so(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function fo(n,t,e,r,u){var i=n[0]-t[0],o=n[1]-t[1],a=(u?r:-r)/Math.sqrt(i*i+o*o),c=a*o,l=-a*i,s=n[0]+c,f=n[1]+l,h=t[0]+c,g=t[1]+l,p=(s+h)/2,v=(f+g)/2,d=h-s,m=g-f,y=d*d+m*m,M=e-r,x=s*g-h*f,b=(0>m?-1:1)*Math.sqrt(M*M*y-x*x),_=(x*m-d*b)/y,w=(-x*d-m*b)/y,S=(x*m+d*b)/y,k=(-x*d+m*b)/y,E=_-p,A=w-v,N=S-p,C=k-v;return E*E+A*A>N*N+C*C&&(_=S,w=k),[[_-c,w-l],[_*e/M,w*e/M]]}function ho(n){function t(t){function o(){l.push("M",i(n(s),a))}for(var c,l=[],s=[],f=-1,h=t.length,g=Et(e),p=Et(r);++f<h;)u.call(this,c=t[f],f)?s.push([+g.call(this,c,f),+p.call(this,c,f)]):s.length&&(o(),s=[]);return s.length&&o(),l.length?l.join(""):null}var e=Ar,r=Nr,u=Ne,i=go,o=i.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(u=n,t):u},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?i=n:(i=El.get(n)||go).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function go(n){return n.join("L")}function po(n){return go(n)+"Z"}function vo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&u.push("H",r[0]),u.join("")}function mo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("V",(r=n[t])[1],"H",r[0]);return u.join("")}function yo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t<e;)u.push("H",(r=n[t])[0],"V",r[1]);return u.join("")}function Mo(n,t){return n.length<4?go(n):n[1]+_o(n.slice(1,-1),wo(n,t))}function xo(n,t){return n.length<3?go(n):n[0]+_o((n.push(n[0]),n),wo([n[n.length-2]].concat(n,[n[1]]),t))}function bo(n,t){return n.length<3?go(n):n[0]+_o(n,wo(n,t))}function _o(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return go(n);var e=n.length!=t.length,r="",u=n[0],i=n[1],o=t[0],a=o,c=1;if(e&&(r+="Q"+(i[0]-2*o[0]/3)+","+(i[1]-2*o[1]/3)+","+i[0]+","+i[1],u=n[1],c=2),t.length>1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var l=2;l<t.length;l++,c++)i=n[c],a=t[l],r+="S"+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1]}if(e){var s=n[c];r+="Q"+(i[0]+2*a[0]/3)+","+(i[1]+2*a[1]/3)+","+s[0]+","+s[1]}return r}function wo(n,t){for(var e,r=[],u=(1-t)/2,i=n[0],o=n[1],a=1,c=n.length;++a<c;)e=i,i=o,o=n[a],r.push([u*(o[0]-e[0]),u*(o[1]-e[1])]);return r}function So(n){if(n.length<3)return go(n);var t=1,e=n.length,r=n[0],u=r[0],i=r[1],o=[u,u,u,(r=n[1])[0]],a=[i,i,i,r[1]],c=[u,",",i,"L",No(Cl,o),",",No(Cl,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Co(c,o,a);return n.pop(),c.push("L",r),c.join("")}function ko(n){if(n.length<4)return go(n);for(var t,e=[],r=-1,u=n.length,i=[0],o=[0];++r<3;)t=n[r],i.push(t[0]),o.push(t[1]);for(e.push(No(Cl,i)+","+No(Cl,o)),--r;++r<u;)t=n[r],i.shift(),i.push(t[0]),o.shift(),o.push(t[1]),Co(e,i,o);return e.join("")}function Eo(n){for(var t,e,r=-1,u=n.length,i=u+4,o=[],a=[];++r<4;)e=n[r%u],o.push(e[0]),a.push(e[1]);for(t=[No(Cl,o),",",No(Cl,a)],--r;++r<i;)e=n[r%u],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Co(t,o,a);return t.join("")}function Ao(n,t){var e=n.length-1;if(e)for(var r,u,i=n[0][0],o=n[0][1],a=n[e][0]-i,c=n[e][1]-o,l=-1;++l<=e;)r=n[l],u=l/e,r[0]=t*r[0]+(1-t)*(i+u*a),r[1]=t*r[1]+(1-t)*(o+u*c);return So(n)}function No(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Co(n,t,e){n.push("C",No(Al,t),",",No(Al,e),",",No(Nl,t),",",No(Nl,e),",",No(Cl,t),",",No(Cl,e))}function zo(n,t){return(t[1]-n[1])/(t[0]-n[0])}function qo(n){for(var t=0,e=n.length-1,r=[],u=n[0],i=n[1],o=r[0]=zo(u,i);++t<e;)r[t]=(o+(o=zo(u=i,i=n[t+1])))/2;return r[t]=o,r}function Lo(n){for(var t,e,r,u,i=[],o=qo(n),a=-1,c=n.length-1;++a<c;)t=zo(n[a],n[a+1]),ga(t)<Ca?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,u=e*e+r*r,u>9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function To(n){return n.length<3?go(n):n[0]+_o(n,Lo(n))}function Ro(n){for(var t,e,r,u=-1,i=n.length;++u<i;)t=n[u],e=t[0],r=t[1]-Ra,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Do(n){function t(t){function c(){v.push("M",a(n(m),f),s,l(n(d.reverse()),f),"Z")}for(var h,g,p,v=[],d=[],m=[],y=-1,M=t.length,x=Et(e),b=Et(u),_=e===r?function(){return g}:Et(r),w=u===i?function(){return p}:Et(i);++y<M;)o.call(this,h=t[y],y)?(d.push([g=+x.call(this,h,y),p=+b.call(this,h,y)]),m.push([+_.call(this,h,y),+w.call(this,h,y)])):d.length&&(c(),d=[],m=[]);return d.length&&c(),v.length?v.join(""):null}var e=Ar,r=Ar,u=0,i=Nr,o=Ne,a=go,c=a.key,l=a,s="L",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(u=i=n,t):i},t.y0=function(n){return arguments.length?(u=n,t):u},t.y1=function(n){return arguments.length?(i=n,t):i},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(c="function"==typeof n?a=n:(a=El.get(n)||go).key,l=a.reverse||a,s=a.closed?"M":"L",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function Po(n){return n.radius}function Uo(n){return[n.x,n.y]}function jo(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]-Ra;return[e*Math.cos(r),e*Math.sin(r)]}}function Fo(){return 64}function Ho(){return"circle"}function Oo(n){var t=Math.sqrt(n/qa);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Io(n){return function(){var t,e;(t=this[n])&&(e=t[t.active])&&(--t.count?delete t[t.active]:delete this[n],t.active+=.5,e.event&&e.event.interrupt.call(this,this.__data__,e.index))}}function Yo(n,t,e){return ya(n,Pl),n.namespace=t,n.id=e,n}function Zo(n,t,e,r){var u=n.id,i=n.namespace;return Y(n,"function"==typeof e?function(n,o,a){n[i][u].tween.set(t,r(e.call(n,n.__data__,o,a)))}:(e=r(e),function(n){n[i][u].tween.set(t,e)}))}function Vo(n){return null==n&&(n=""),function(){this.textContent=n}}function Xo(n){return null==n?"__transition__":"__transition_"+n+"__"}function $o(n,t,e,r,u){var i=n[e]||(n[e]={active:0,count:0}),o=i[r];if(!o){var a=u.time;o=i[r]={tween:new l,time:a,delay:u.delay,duration:u.duration,ease:u.ease,index:t},u=null,++i.count,ta.timer(function(u){function c(e){if(i.active>r)return s();var u=i[i.active];u&&(--i.count,delete i[i.active],u.event&&u.event.interrupt.call(n,n.__data__,u.index)),i.active=r,o.event&&o.event.start.call(n,n.__data__,t),o.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&v.push(r)}),h=o.ease,f=o.duration,ta.timer(function(){return p.c=l(e||1)?Ne:l,1},0,a)}function l(e){if(i.active!==r)return 1;for(var u=e/f,a=h(u),c=v.length;c>0;)v[--c].call(n,a);return u>=1?(o.event&&o.event.end.call(n,n.__data__,t),s()):void 0}function s(){return--i.count?delete i[r]:delete n[e],1}var f,h,g=o.delay,p=ec,v=[];return p.t=g+a,u>=g?c(u-g):void(p.c=c)},0,a)}}function Bo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Wo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Jo(n){return n.toISOString()}function Go(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=ta.bisect(Vl,u);return i==Vl.length?[t.year,Vi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Vl[i-1]<Vl[i]/u?i-1:i]:[Bl,Vi(n,e)[2]]}return r.invert=function(t){return Ko(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(Ko)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,Ko(+e+1),t).length}var i=r.domain(),o=Pi(i),a=null==n?u(o,10):"number"==typeof n&&u(o,n);return a&&(n=a[0],t=a[1]),r.domain(Fi(i,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=Ko(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Ko(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Pi(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Ko(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Go(n.copy(),t,e)},Yi(r,n)}function Ko(n){return new Date(n)}function Qo(n){return JSON.parse(n.responseText)}function na(n){var t=ua.createRange();return t.selectNode(ua.body),t.createContextualFragment(n.responseText)}var ta={version:"3.5.6"},ea=[].slice,ra=function(n){return ea.call(n)},ua=this.document;if(ua)try{ra(ua.documentElement.childNodes)[0].nodeType}catch(ia){ra=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),ua)try{ua.createElement("DIV").style.setProperty("opacity",0,"")}catch(oa){var aa=this.Element.prototype,ca=aa.setAttribute,la=aa.setAttributeNS,sa=this.CSSStyleDeclaration.prototype,fa=sa.setProperty;aa.setAttribute=function(n,t){ca.call(this,n,t+"")},aa.setAttributeNS=function(n,t,e){la.call(this,n,t,e+"")},sa.setProperty=function(n,t,e){fa.call(this,n,t+"",e)}}ta.ascending=e,ta.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},ta.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i;)if(null!=(r=n[u])&&r>=r){e=r;break}for(;++u<i;)null!=(r=n[u])&&e>r&&(e=r)}else{for(;++u<i;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=r;break}for(;++u<i;)null!=(r=t.call(n,n[u],u))&&e>r&&(e=r)}return e},ta.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u<i;)if(null!=(r=n[u])&&r>=r){e=r;break}for(;++u<i;)null!=(r=n[u])&&r>e&&(e=r)}else{for(;++u<i;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=r;break}for(;++u<i;)null!=(r=t.call(n,n[u],u))&&r>e&&(e=r)}return e},ta.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i<o;)if(null!=(r=n[i])&&r>=r){e=u=r;break}for(;++i<o;)null!=(r=n[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;++i<o;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=u=r;break}for(;++i<o;)null!=(r=t.call(n,n[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},ta.sum=function(n,t){var e,r=0,i=n.length,o=-1;if(1===arguments.length)for(;++o<i;)u(e=+n[o])&&(r+=e);else for(;++o<i;)u(e=+t.call(n,n[o],o))&&(r+=e);return r},ta.mean=function(n,t){var e,i=0,o=n.length,a=-1,c=o;if(1===arguments.length)for(;++a<o;)u(e=r(n[a]))?i+=e:--c;else for(;++a<o;)u(e=r(t.call(n,n[a],a)))?i+=e:--c;return c?i/c:void 0},ta.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),u=+n[r-1],i=e-r;return i?u+i*(n[r]-u):u},ta.median=function(n,t){var i,o=[],a=n.length,c=-1;if(1===arguments.length)for(;++c<a;)u(i=r(n[c]))&&o.push(i);else for(;++c<a;)u(i=r(t.call(n,n[c],c)))&&o.push(i);return o.length?ta.quantile(o.sort(e),.5):void 0},ta.variance=function(n,t){var e,i,o=n.length,a=0,c=0,l=-1,s=0;if(1===arguments.length)for(;++l<o;)u(e=r(n[l]))&&(i=e-a,a+=i/++s,c+=i*(e-a));else for(;++l<o;)u(e=r(t.call(n,n[l],l)))&&(i=e-a,a+=i/++s,c+=i*(e-a));return s>1?c/(s-1):void 0},ta.deviation=function(){var n=ta.variance.apply(this,arguments);return n?Math.sqrt(n):n};var ha=i(e);ta.bisectLeft=ha.left,ta.bisect=ta.bisectRight=ha.right,ta.bisector=function(n){return i(1===n.length?function(t,r){return e(n(t),r)}:n)},ta.shuffle=function(n,t,e){(i=arguments.length)<3&&(e=n.length,2>i&&(t=0));for(var r,u,i=e-t;i;)u=Math.random()*i--|0,r=n[i+t],n[i+t]=n[u+t],n[u+t]=r;return n},ta.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ta.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},ta.zip=function(){if(!(r=arguments.length))return[];for(var n=-1,t=ta.min(arguments,o),e=new Array(t);++n<t;)for(var r,u=-1,i=e[n]=new Array(r);++u<r;)i[u]=arguments[u][n];return e},ta.transpose=function(n){return ta.zip.apply(ta,n)},ta.keys=function(n){var t=[];for(var e in n)t.push(e);return t},ta.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},ta.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},ta.merge=function(n){for(var t,e,r,u=n.length,i=-1,o=0;++i<u;)o+=n[i].length;for(e=new Array(o);--u>=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ga=Math.abs;ta.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,u=[],i=a(ga(e)),o=-1;if(n*=i,t*=i,e*=i,0>e)for(;(r=n+e*++o)>t;)u.push(r/i);else for(;(r=n+e*++o)<t;)u.push(r/i);return u},ta.map=function(n,t){var e=new l;if(n instanceof l)n.forEach(function(n,t){e.set(n,t)});else if(Array.isArray(n)){var r,u=-1,i=n.length;if(1===arguments.length)for(;++u<i;)e.set(u,n[u]);else for(;++u<i;)e.set(t.call(n,r=n[u],u),r)}else for(var o in n)e.set(o,n[o]);return e};var pa="__proto__",va="\x00";c(l,{has:h,get:function(n){return this._[s(n)]},set:function(n,t){return this._[s(n)]=t},remove:g,keys:p,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:f(t),value:this._[t]});return n},size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t),this._[t])}}),ta.nest=function(){function n(t,o,a){if(a>=i.length)return r?r.call(u,o):e?o.sort(e):o;for(var c,s,f,h,g=-1,p=o.length,v=i[a++],d=new l;++g<p;)(h=d.get(c=v(s=o[g])))?h.push(s):d.set(c,[s]);return t?(s=t(),f=function(e,r){s.set(e,n(t,r,a))}):(s={},f=function(e,r){s[e]=n(t,r,a)}),d.forEach(f),s}function t(n,e){if(e>=i.length)return n;var r=[],u=o[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],o=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(ta.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return o[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},ta.set=function(n){var t=new m;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},c(m,{has:h,add:function(n){return this._[s(n+="")]=!0,n},remove:g,values:p,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t))}}),ta.behavior={},ta.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r<u;)n[e=arguments[r]]=M(n,t,t[e]);return n};var da=["webkit","ms","moz","Moz","o","O"];ta.dispatch=function(){for(var n=new _,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=w(n);return n},_.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ta.event=null,ta.requote=function(n){return n.replace(ma,"\\$&")};var ma=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ya={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},Ma=function(n,t){return t.querySelector(n)},xa=function(n,t){return t.querySelectorAll(n)},ba=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(ba=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(Ma=function(n,t){return Sizzle(n,t)[0]||null},xa=Sizzle,ba=Sizzle.matchesSelector),ta.selection=function(){return ta.select(ua.documentElement)};var _a=ta.selection.prototype=[];_a.select=function(n){var t,e,r,u,i=[];n=N(n);for(var o=-1,a=this.length;++o<a;){i.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var c=-1,l=r.length;++c<l;)(u=r[c])?(t.push(e=n.call(u,u.__data__,c,o)),e&&"__data__"in u&&(e.__data__=u.__data__)):t.push(null)}return A(i)},_a.selectAll=function(n){var t,e,r=[];n=C(n);for(var u=-1,i=this.length;++u<i;)for(var o=this[u],a=-1,c=o.length;++a<c;)(e=o[a])&&(r.push(t=ra(n.call(e,e.__data__,a,u))),t.parentNode=e);return A(r)};var wa={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};ta.ns={prefix:wa,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&(e=n.slice(0,t),n=n.slice(t+1)),wa.hasOwnProperty(e)?{space:wa[e],local:n}:n}},_a.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ta.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},_a.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,u=-1;if(t=e.classList){for(;++u<r;)if(!t.contains(n[u]))return!1}else for(t=e.getAttribute("class");++u<r;)if(!L(n[u]).test(t))return!1;return!0}for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},_a.style=function(n,e,r){var u=arguments.length;if(3>u){if("string"!=typeof n){2>u&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>u){var i=this.node();return t(i).getComputedStyle(i,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},_a.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},_a.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},_a.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},_a.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},_a.insert=function(n,t){return n=j(n),t=N(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},_a.remove=function(){return this.each(F)},_a.data=function(n,t){function e(n,e){var r,u,i,o=n.length,f=e.length,h=Math.min(o,f),g=new Array(f),p=new Array(f),v=new Array(o);if(t){var d,m=new l,y=new Array(o);for(r=-1;++r<o;)m.has(d=t.call(u=n[r],u.__data__,r))?v[r]=u:m.set(d,u),y[r]=d;for(r=-1;++r<f;)(u=m.get(d=t.call(e,i=e[r],r)))?u!==!0&&(g[r]=u,u.__data__=i):p[r]=H(i),m.set(d,!0);for(r=-1;++r<o;)m.get(y[r])!==!0&&(v[r]=n[r])}else{for(r=-1;++r<h;)u=n[r],i=e[r],u?(u.__data__=i,g[r]=u):p[r]=H(i);for(;f>r;++r)p[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,a.push(p),c.push(g),s.push(v)}var r,u,i=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++i<o;)(u=r[i])&&(n[i]=u.__data__);return n}var a=Z([]),c=A([]),s=A([]);if("function"==typeof n)for(;++i<o;)e(r=this[i],n.call(r,r.parentNode.__data__,i));else for(;++i<o;)e(r=this[i],n);return c.enter=function(){return a},c.exit=function(){return s},c},_a.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},_a.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=O(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return A(u)},_a.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},_a.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},_a.each=function(n){return Y(this,function(t,e,r){n.call(t,t.__data__,e,r)})},_a.call=function(n){var t=ra(arguments);return n.apply(t[0]=this,t),this},_a.empty=function(){return!this.node()},_a.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},_a.size=function(){var n=0;return Y(this,function(){++n}),n};var Sa=[];ta.selection.enter=Z,ta.selection.enter.prototype=Sa,Sa.append=_a.append,Sa.empty=_a.empty,Sa.node=_a.node,Sa.call=_a.call,Sa.size=_a.size,Sa.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++a<c;){r=(u=this[a]).update,o.push(t=[]),t.parentNode=u.parentNode;for(var l=-1,s=u.length;++l<s;)(i=u[l])?(t.push(r[l]=e=n.call(u.parentNode,i.__data__,l,a)),e.__data__=i.__data__):t.push(null)}return A(o)},Sa.insert=function(n,t){return arguments.length<2&&(t=V(this)),_a.insert.call(this,n,t)},ta.select=function(t){var e;return"string"==typeof t?(e=[Ma(t,ua)],e.parentNode=ua.documentElement):(e=[t],e.parentNode=n(t)),A([e])},ta.selectAll=function(n){var t;return"string"==typeof n?(t=ra(xa(n,ua)),t.parentNode=ua.documentElement):(t=n,t.parentNode=null),A([t])},_a.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var ka=ta.map({mouseenter:"mouseover",mouseleave:"mouseout"});ua&&ka.forEach(function(n){"on"+n in ua&&ka.remove(n)});var Ea,Aa=0;ta.mouse=function(n){return J(n,k())};var Na=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ta.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return J(n,r)},ta.behavior.drag=function(){function n(){this.on("mousedown.drag",i).on("touchstart.drag",o)}function e(n,t,e,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],p|=n|e,M=r,g({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&ta.event.target===f),g({type:"dragend"}))}var l,s=this,f=ta.event.target,h=s.parentNode,g=r.of(s,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=ta.select(e(f)).on(i+d,a).on(o+d,c),y=W(f),M=t(h,v);u?(l=u.apply(s,arguments),l=[l.x-M[0],l.y-M[1]]):l=[0,0],g({type:"dragstart"})}}var r=E(n,"drag","dragstart","dragend"),u=null,i=e(b,ta.mouse,t,"mousemove","mouseup"),o=e(G,ta.touch,y,"touchmove","touchend");return n.origin=function(t){return arguments.length?(u=t,n):u},ta.rebind(n,r,"on")},ta.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?ra(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Ca=1e-6,za=Ca*Ca,qa=Math.PI,La=2*qa,Ta=La-Ca,Ra=qa/2,Da=qa/180,Pa=180/qa,Ua=Math.SQRT2,ja=2,Fa=4;ta.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=rt(v),o=i/(ja*h)*(e*ut(Ua*t+v)-et(v));return[r+o*l,u+o*s,i*e/rt(Ua*t+v)]}return[r+n*l,u+n*s,i*Math.exp(Ua*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],l=o-r,s=a-u,f=l*l+s*s,h=Math.sqrt(f),g=(c*c-i*i+Fa*f)/(2*i*ja*h),p=(c*c-i*i-Fa*f)/(2*c*ja*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Ua;return e.duration=1e3*y,e},ta.behavior.zoom=function(){function n(n){n.on(q,f).on(Oa+".zoom",g).on("dblclick.zoom",p).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function u(n){k.k=Math.max(N[0],Math.min(N[1],n))}function i(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},u(Math.pow(2,o)),i(d=e,r),t=ta.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function c(n){z++||n({type:"zoomstart"})}function l(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function s(n){--z||(n({type:"zoomend"}),d=null)}function f(){function n(){f=1,i(ta.mouse(u),g),l(a)}function r(){h.on(L,null).on(T,null),p(f&&ta.event.target===o),s(a)}var u=this,o=ta.event.target,a=D.of(u,arguments),f=0,h=ta.select(t(u)).on(L,n).on(T,r),g=e(ta.mouse(u)),p=W(u);Dl.call(u),c(a)}function h(){function n(){var n=ta.touches(p);return g=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ta.event.target;ta.select(t).on(x,r).on(b,a),_.push(t);for(var e=ta.event.changedTouches,u=0,i=e.length;i>u;++u)d[e[u].identifier]=null;var c=n(),l=Date.now();if(1===c.length){if(500>l-M){var s=c[0];o(p,s,d[s.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=l}else if(c.length>1){var s=c[0],f=c[1],h=s[0]-f[0],g=s[1]-f[1];m=h*h+g*g}}function r(){var n,t,e,r,o=ta.touches(p);Dl.call(p);for(var a=0,c=o.length;c>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var s=(s=e[0]-n[0])*s+(s=e[1]-n[1])*s,f=m&&Math.sqrt(s/m);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],u(f*g)}M=null,i(n,t),l(v)}function a(){if(ta.event.touches.length){for(var t=ta.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var u in d)return void n()}ta.selectAll(_).on(y,null),w.on(q,f).on(R,h),E(),s(v)}var g,p=this,v=D.of(p,arguments),d={},m=0,y=".zoom-"+ta.event.changedTouches[0].identifier,x="touchmove"+y,b="touchend"+y,_=[],w=ta.select(p),E=W(p);t(),c(v),w.on(q,null).on(R,t)}function g(){var n=D.of(this,arguments);y?clearTimeout(y):(Dl.call(this),v=e(d=m||ta.mouse(this)),c(n)),y=setTimeout(function(){y=null,s(n)},50),S(),u(Math.pow(2,.002*Ha())*k.k),i(d,v),l(n)}function p(){var n=ta.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ta.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,m,y,M,x,b,_,w,k={x:0,y:0,k:1},A=[960,500],N=Ia,C=250,z=0,q="mousedown.zoom",L="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=E(n,"zoomstart","zoom","zoomend");return Oa||(Oa="onwheel"in ua?(Ha=function(){return-ta.event.deltaY*(ta.event.deltaMode?120:1)},"wheel"):"onmousewheel"in ua?(Ha=function(){return ta.event.wheelDelta},"mousewheel"):(Ha=function(){return-ta.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Tl?ta.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},c(n)}).tween("zoom:zoom",function(){var e=A[0],r=A[1],u=d?d[0]:e/2,i=d?d[1]:r/2,o=ta.interpolateZoom([(u-k.x)/k.k,(i-k.y)/k.k,e/k.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:u-r[0]*a,y:i-r[1]*a,k:a},l(n)}}).each("interrupt.zoom",function(){s(n)}).each("end.zoom",function(){s(n)}):(this.__chart__=k,c(n),l(n),s(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:+t},a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(N=null==t?Ia:[+t[0],+t[1]],n):N},n.center=function(t){return arguments.length?(m=t&&[+t[0],+t[1]],n):m},n.size=function(t){return arguments.length?(A=t&&[+t[0],+t[1]],n):A},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ta.rebind(n,D,"on")};var Ha,Oa,Ia=[0,1/0];ta.color=ot,ot.prototype.toString=function(){return this.rgb()+""},ta.hsl=at;var Ya=at.prototype=new ot;Ya.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,this.l/n)},Ya.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,n*this.l)},Ya.rgb=function(){return ct(this.h,this.s,this.l)},ta.hcl=lt;var Za=lt.prototype=new ot;Za.brighter=function(n){return new lt(this.h,this.c,Math.min(100,this.l+Va*(arguments.length?n:1)))},Za.darker=function(n){return new lt(this.h,this.c,Math.max(0,this.l-Va*(arguments.length?n:1)))},Za.rgb=function(){return st(this.h,this.c,this.l).rgb()},ta.lab=ft;var Va=18,Xa=.95047,$a=1,Ba=1.08883,Wa=ft.prototype=new ot;Wa.brighter=function(n){return new ft(Math.min(100,this.l+Va*(arguments.length?n:1)),this.a,this.b)},Wa.darker=function(n){return new ft(Math.max(0,this.l-Va*(arguments.length?n:1)),this.a,this.b)},Wa.rgb=function(){return ht(this.l,this.a,this.b)},ta.rgb=mt;var Ja=mt.prototype=new ot;Ja.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new mt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mt(u,u,u)},Ja.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mt(n*this.r,n*this.g,n*this.b)},Ja.hsl=function(){return _t(this.r,this.g,this.b)},Ja.toString=function(){return"#"+xt(this.r)+xt(this.g)+xt(this.b)};var Ga=ta.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Ga.forEach(function(n,t){Ga.set(n,yt(t))}),ta.functor=Et,ta.xhr=At(y),ta.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=Nt(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(s>=l)return o;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++<l;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}s=e+2;var r=n.charCodeAt(e+1);return 13===r?(u=!0,10===n.charCodeAt(e+2)&&++s):10===r&&(u=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;l>s;){var r=n.charCodeAt(s++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(s)&&(++s,++a);else if(r!==c)continue;return n.slice(t,s-a)}return n.slice(t)}for(var r,u,i={},o={},a=[],l=n.length,s=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,f++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new m,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},ta.csv=ta.dsv(",","text/csv"),ta.tsv=ta.dsv(" ","text/tab-separated-values");var Ka,Qa,nc,tc,ec,rc=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ta.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Qa?Qa.n=i:Ka=i,Qa=i,nc||(tc=clearTimeout(tc),nc=1,rc(qt))},ta.timer.flush=function(){Lt(),Tt()},ta.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var uc=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Dt);ta.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=ta.round(n,Rt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),uc[8+e/3]};var ic=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,oc=ta.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ta.round(n,Rt(n,t))).toFixed(Math.max(0,Math.min(20,Rt(n*(1+1e-15),t))))}}),ac=ta.time={},cc=Date;jt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){lc.setUTCDate.apply(this._,arguments)},setDay:function(){lc.setUTCDay.apply(this._,arguments)},setFullYear:function(){lc.setUTCFullYear.apply(this._,arguments)},setHours:function(){lc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){lc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){lc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){lc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){lc.setUTCSeconds.apply(this._,arguments)},setTime:function(){lc.setTime.apply(this._,arguments)}};var lc=Date.prototype;ac.year=Ft(function(n){return n=ac.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ac.years=ac.year.range,ac.years.utc=ac.year.utc.range,ac.day=Ft(function(n){var t=new cc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ac.days=ac.day.range,ac.days.utc=ac.day.utc.range,ac.dayOfYear=function(n){var t=ac.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ac[n]=Ft(function(n){return(n=ac.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ac[n+"s"]=e.range,ac[n+"s"].utc=e.utc.range,ac[n+"OfYear"]=function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)}}),ac.week=ac.sunday,ac.weeks=ac.sunday.range,ac.weeks.utc=ac.sunday.utc.range,ac.weekOfYear=ac.sundayOfYear;var sc={"-":"",_:" ",0:"0"},fc=/^\s*\d+/,hc=/^%/;ta.locale=function(n){return{numberFormat:Pt(n),timeFormat:Ot(n)}};var gc=ta.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ta.format=gc.numberFormat,ta.geo={},ce.prototype={s:0,t:0,add:function(n){le(n,this.t,pc),le(pc.s,this.s,this),this.s?this.t+=pc.t:this.s=pc.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var pc=new ce;ta.geo.stream=function(n,t){n&&vc.hasOwnProperty(n.type)?vc[n.type](n,t):se(n,t)};var vc={Feature:function(n,t){se(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++r<u;)se(e[r].geometry,t)}},dc={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){fe(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)fe(e[r],t,0)},Polygon:function(n,t){he(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,u=e.length;++r<u;)he(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,u=e.length;++r<u;)se(e[r],t)}};ta.geo.area=function(n){return mc=0,ta.geo.stream(n,Mc),mc};var mc,yc=new ce,Mc={sphere:function(){mc+=4*qa},point:b,lineStart:b,lineEnd:b,polygonStart:function(){yc.reset(),Mc.lineStart=ge},polygonEnd:function(){var n=2*yc;mc+=0>n?4*qa+n:n,Mc.lineStart=Mc.lineEnd=Mc.point=b}};ta.geo.bounds=function(){function n(n,t){M.push(x=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=pe([t*Da,e*Da]);if(m){var u=de(m,r),i=[u[1],-u[0],0],o=de(i,u);Me(o),o=xe(o);var c=t-p,l=c>0?1:-1,v=o[0]*Pa*l,d=ga(c)>180;if(d^(v>l*p&&l*t>v)){var y=o[1]*Pa;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>l*p&&l*t>v)){var y=-o[1]*Pa;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t)}else n(t,e);m=r,p=t}function e(){b.point=t}function r(){x[0]=s,x[1]=h,b.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ga(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Mc.point(n,e),t(n,e)}function i(){Mc.lineStart()}function o(){u(v,d),Mc.lineEnd(),ga(y)>Ca&&(s=-(h=180)),x[0]=s,x[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var s,f,h,g,p,v,d,m,y,M,x,b={point:n,lineStart:e,lineEnd:r,polygonStart:function(){b.point=u,b.lineStart=i,b.lineEnd=o,y=0,Mc.polygonStart()},polygonEnd:function(){Mc.polygonEnd(),b.point=n,b.lineStart=e,b.lineEnd=r,0>yc?(s=-(h=180),f=-(g=90)):y>Ca?g=90:-Ca>y&&(f=-90),x[0]=s,x[1]=h}};return function(n){g=h=-(s=f=1/0),M=[],ta.geo.stream(n,b);var t=M.length;if(t){M.sort(c);for(var e,r=1,u=M[0],i=[u];t>r;++r)e=M[r],l(e[0],u)||l(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,s=e[0],h=u[1])}return M=x=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),ta.geo.centroid=function(n){xc=bc=_c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,qc);var t=Nc,e=Cc,r=zc,u=t*t+e*e+r*r;return za>u&&(t=kc,e=Ec,r=Ac,Ca>bc&&(t=_c,e=wc,r=Sc),u=t*t+e*e+r*r,za>u)?[0/0,0/0]:[Math.atan2(e,t)*Pa,tt(r/Math.sqrt(u))*Pa]};var xc,bc,_c,wc,Sc,kc,Ec,Ac,Nc,Cc,zc,qc={sphere:b,point:_e,lineStart:Se,lineEnd:ke,polygonStart:function(){qc.lineStart=Ee},polygonEnd:function(){qc.lineStart=Se}},Lc=Le(Ne,Pe,je,[-qa,-qa/2]),Tc=1e9;ta.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ie(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ta.geo.conicEqualArea=function(){return Ye(Ze)}).raw=Ze,ta.geo.albers=function(){return ta.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ta.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=ta.geo.albers(),o=ta.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ta.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),s=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,r=o.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+Ca,f+.12*l+Ca],[s-.214*l-Ca,f+.234*l-Ca]]).stream(c).point,u=a.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+Ca,f+.166*l+Ca],[s-.115*l-Ca,f+.234*l-Ca]]).stream(c).point,n},n.scale(1070)};var Rc,Dc,Pc,Uc,jc,Fc,Hc={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Dc=0,Hc.lineStart=Ve},polygonEnd:function(){Hc.lineStart=Hc.lineEnd=Hc.point=b,Rc+=ga(Dc/2)}},Oc={point:Xe,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Ic={point:We,lineStart:Je,lineEnd:Ge,polygonStart:function(){Ic.lineStart=Ke},polygonEnd:function(){Ic.point=We,Ic.lineStart=Je,Ic.lineEnd=Ge}};ta.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),ta.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Rc=0,ta.geo.stream(n,u(Hc)),Rc},n.centroid=function(n){return _c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,u(Ic)),zc?[Nc/zc,Cc/zc]:Ac?[kc/Ac,Ec/Ac]:Sc?[_c/Sc,wc/Sc]:[0/0,0/0]},n.bounds=function(n){return jc=Fc=-(Pc=Uc=1/0),ta.geo.stream(n,u(Oc)),[[Pc,Uc],[jc,Fc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||tr(n):y,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new $e:new Qe(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(ta.geo.albersUsa()).context(null)},ta.geo.transform=function(n){return{stream:function(t){var e=new er(t);for(var r in n)e[r]=n[r];return e}}},er.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ta.geo.projection=ur,ta.geo.projectionMutator=ir,(ta.geo.equirectangular=function(){return ur(ar)}).raw=ar.invert=ar,ta.geo.rotation=function(n){function t(t){return t=n(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t}return n=lr(n[0]%360*Da,n[1]*Da,n.length>2?n[2]*Da:0),t.invert=function(t){return t=n.invert(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t},t},cr.invert=ar,ta.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=lr(-n[0]*Da,-n[1]*Da,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Pa,n[1]*=Pa}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=gr((t=+r)*Da,u*Da),n):t},n.precision=function(r){return arguments.length?(e=gr(t*Da,(u=+r)*Da),n):u},n.angle(90)},ta.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Da,u=n[1]*Da,i=t[1]*Da,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),l=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=l*s-c*f*a)*e),c*s+l*f*a)},ta.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ta.range(Math.ceil(i/d)*d,u,d).map(h).concat(ta.range(Math.ceil(l/m)*m,c,m).map(g)).concat(ta.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ga(n%d)>Ca}).map(s)).concat(ta.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ga(n%m)>Ca}).map(f))}var e,r,u,i,o,a,c,l,s,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],l=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[i,l],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,s=vr(a,o,90),f=dr(r,e,y),h=vr(l,c,90),g=dr(i,u,y),n):y},n.majorExtent([[-180,-90+Ca],[180,90-Ca]]).minorExtent([[-180,-80-Ca],[180,80+Ca]])},ta.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=mr,u=yr;return n.distance=function(){return ta.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},ta.geo.interpolate=function(n,t){return Mr(n[0]*Da,n[1]*Da,t[0]*Da,t[1]*Da)},ta.geo.length=function(n){return Yc=0,ta.geo.stream(n,Zc),Yc};var Yc,Zc={sphere:b,point:b,lineStart:xr,lineEnd:b,polygonStart:b,polygonEnd:b},Vc=br(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ta.geo.azimuthalEqualArea=function(){return ur(Vc)}).raw=Vc;var Xc=br(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},y);(ta.geo.azimuthalEquidistant=function(){return ur(Xc)}).raw=Xc,(ta.geo.conicConformal=function(){return Ye(_r)}).raw=_r,(ta.geo.conicEquidistant=function(){return Ye(wr)}).raw=wr;var $c=br(function(n){return 1/n},Math.atan);(ta.geo.gnomonic=function(){return ur($c)}).raw=$c,Sr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ra]},(ta.geo.mercator=function(){return kr(Sr)}).raw=Sr;var Bc=br(function(){return 1},Math.asin);(ta.geo.orthographic=function(){return ur(Bc)}).raw=Bc;var Wc=br(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ta.geo.stereographic=function(){return ur(Wc)}).raw=Wc,Er.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ra]},(ta.geo.transverseMercator=function(){var n=kr(Er),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Er,ta.geom={},ta.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=Et(e),i=Et(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(zr),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var l=Cr(a),s=Cr(c),f=s[0]===l[0],h=s[s.length-1]===l[l.length-1],g=[];for(t=l.length-1;t>=0;--t)g.push(n[a[l[t]][2]]);for(t=+f;t<s.length-h;++t)g.push(n[a[s[t]][2]]);return g}var e=Ar,r=Nr;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},ta.geom.polygon=function(n){return ya(n,Jc),n};var Jc=ta.geom.polygon.prototype=[];Jc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],u=0;++t<e;)n=r,r=this[t],u+=n[1]*r[0]-n[0]*r[1];return.5*u},Jc.centroid=function(n){var t,e,r=-1,u=this.length,i=0,o=0,a=this[u-1];for(arguments.length||(n=-1/(6*this.area()));++r<u;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],i+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[i*n,o*n]},Jc.clip=function(n){for(var t,e,r,u,i,o,a=Tr(n),c=-1,l=this.length-Tr(this),s=this[l-1];++c<l;){for(t=n.slice(),n.length=0,u=this[c],i=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],qr(o,s,u)?(qr(i,s,u)||n.push(Lr(i,o,s,u)),n.push(o)):qr(i,s,u)&&n.push(Lr(i,o,s,u)),i=o;a&&n.push(n[0]),s=u}return n};var Gc,Kc,Qc,nl,tl,el=[],rl=[];Or.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Yr),t.length},Qr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},nu.prototype={insert:function(n,t){var e,r,u;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=uu(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(u=r.R,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.R&&(eu(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ru(this,r))):(u=r.L,u&&u.C?(e.C=u.C=!1,r.C=!0,n=r):(n===e.L&&(ru(this,e),n=e,e=n.U),e.C=!1,r.C=!0,eu(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,u=n.U,i=n.L,o=n.R;if(e=i?o?uu(o):i:o,u?u.L===n?u.L=e:u.R=e:this._=e,i&&o?(r=e.C,e.C=n.C,e.L=i,i.U=e,e!==o?(u=e.U,e.U=n.U,n=e.R,u.L=n,e.R=o,o.U=e):(e.U=u,u=e,n=e.R)):(r=n.C,n=e),n&&(n.U=u),!r){if(n&&n.C)return void(n.C=!1);do{if(n===this._)break;if(n===u.L){if(t=u.R,t.C&&(t.C=!1,u.C=!0,eu(this,u),t=u.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ru(this,t),t=u.R),t.C=u.C,u.C=t.R.C=!1,eu(this,u),n=this._;break}}else if(t=u.L,t.C&&(t.C=!1,u.C=!0,ru(this,u),t=u.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,eu(this,t),t=u.L),t.C=u.C,u.C=t.L.C=!1,ru(this,u),n=this._;break}t.C=!0,n=u,u=u.U}while(!n.C);n&&(n.C=!1)}}},ta.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],u=a[0][1],i=a[1][0],o=a[1][1];return iu(e(n),a).cells.forEach(function(e,a){var c=e.edges,l=e.site,s=t[a]=c.length?c.map(function(n){var t=n.start();return[t.x,t.y]}):l.x>=r&&l.x<=i&&l.y>=u&&l.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];s.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Ca)*Ca,y:Math.round(o(n,t)/Ca)*Ca,i:t}})}var r=Ar,u=Nr,i=r,o=u,a=ul;return n?t(n):(t.links=function(n){return iu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return iu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Yr),c=-1,l=a.length,s=a[l-1].edge,f=s.l===o?s.r:s.l;++c<l;)u=s,i=f,s=a[c].edge,f=s.l===o?s.r:s.l,r<i.i&&r<f.i&&au(o,i,f)<0&&t.push([n[r],n[i.i],n[f.i]])}),t},t.x=function(n){return arguments.length?(i=Et(r=n),t):r},t.y=function(n){return arguments.length?(o=Et(u=n),t):u},t.clipExtent=function(n){return arguments.length?(a=null==n?ul:n,t):a===ul?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===ul?null:a&&a[1]},t)};var ul=[[-1e6,-1e6],[1e6,1e6]];ta.geom.delaunay=function(n){return ta.geom.voronoi().triangles(n)},ta.geom.quadtree=function(n,t,e,r,u){function i(n){function i(n,t,e,r,u,i,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,s=n.y;if(null!=c)if(ga(c-e)+ga(s-r)<.01)l(n,t,e,r,u,i,o,a);else{var f=n.point;n.x=n.y=n.point=null,l(n,f,c,s,u,i,o,a),l(n,t,e,r,u,i,o,a)}else n.x=e,n.y=r,n.point=t}else l(n,t,e,r,u,i,o,a)}function l(n,t,e,r,u,o,a,c){var l=.5*(u+a),s=.5*(o+c),f=e>=l,h=r>=s,g=h<<1|f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=su()),f?u=l:a=l,h?o=s:c=s,i(n,t,e,r,u,o,a,c)}var s,f,h,g,p,v,d,m,y,M=Et(a),x=Et(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)s=n[g],s.x<v&&(v=s.x),s.y<d&&(d=s.y),s.x>m&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var b=+M(s=n[g],g),_=+x(s,g);v>b&&(v=b),d>_&&(d=_),b>m&&(m=b),_>y&&(y=_),f.push(b),h.push(_)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=su();if(k.add=function(n){i(k,n,+M(n,++g),+x(n,g),v,d,m,y)},k.visit=function(n){fu(n,k,v,d,m,y)},k.find=function(n){return hu(k,n[0],n[1],v,d,m,y)},g=-1,null==t){for(;++g<p;)i(k,n[g],f[g],h[g],v,d,m,y);--g}else n.forEach(k.add);return f=h=n=s=null,k}var o,a=Ar,c=Nr;return(o=arguments.length)?(a=cu,c=lu,3===o&&(u=e,r=t,e=t=0),i(n)):(i.x=function(n){return arguments.length?(a=n,i):a},i.y=function(n){return arguments.length?(c=n,i):c},i.extent=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],u=+n[1][1]),i):null==t?null:[[t,e],[r,u]]},i.size=function(n){return arguments.length?(null==n?t=e=r=u=null:(t=e=0,r=+n[0],u=+n[1]),i):null==t?null:[r-t,u-e]},i)},ta.interpolateRgb=gu,ta.interpolateObject=pu,ta.interpolateNumber=vu,ta.interpolateString=du;var il=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ol=new RegExp(il.source,"g");ta.interpolate=mu,ta.interpolators=[function(n,t){var e=typeof t;return("string"===e?Ga.has(t.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(t)?gu:du:t instanceof ot?gu:Array.isArray(t)?yu:"object"===e&&isNaN(t)?pu:vu)(n,t)}],ta.interpolateArray=yu;var al=function(){return y},cl=ta.map({linear:al,poly:ku,quad:function(){return _u},cubic:function(){return wu},sin:function(){return Eu},exp:function(){return Au},circle:function(){return Nu},elastic:Cu,back:zu,bounce:function(){return qu}}),ll=ta.map({"in":y,out:xu,"in-out":bu,"out-in":function(n){return bu(xu(n))}});ta.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=cl.get(e)||al,r=ll.get(r)||y,Mu(r(e.apply(null,ea.call(arguments,1))))},ta.interpolateHcl=Lu,ta.interpolateHsl=Tu,ta.interpolateLab=Ru,ta.interpolateRound=Du,ta.transform=function(n){var t=ua.createElementNS(ta.ns.prefix.svg,"g");return(ta.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Pu(e?e.matrix:sl)})(n)},Pu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var sl={a:1,b:0,c:0,d:1,e:0,f:0};ta.interpolateTransform=Hu,ta.layout={},ta.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Yu(n[e]));return t}},ta.layout.chord=function(){function n(){var n,l,f,h,g,p={},v=[],d=ta.range(i),m=[];for(e=[],r=[],n=0,h=-1;++h<i;){for(l=0,g=-1;++g<i;)l+=u[h][g];v.push(l),m.push(ta.range(i)),n+=l}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&m.forEach(function(n,t){n.sort(function(n,e){return a(u[t][n],u[t][e])})}),n=(La-s*i)/n,l=0,h=-1;++h<i;){for(f=l,g=-1;++g<i;){var y=d[h],M=m[y][g],x=u[y][M],b=l,_=l+=x*n;p[y+"-"+M]={index:y,subindex:M,startAngle:b,endAngle:_,value:x}}r[y]={index:y,startAngle:f,endAngle:l,value:(l-f)/n},l+=s}for(h=-1;++h<i;)for(g=h-1;++g<i;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,u,i,o,a,c,l={},s=0;return l.matrix=function(n){return arguments.length?(i=(u=n)&&u.length,e=r=null,l):u},l.padding=function(n){return arguments.length?(s=n,e=r=null,l):s},l.sortGroups=function(n){return arguments.length?(o=n,e=r=null,l):o},l.sortSubgroups=function(n){return arguments.length?(a=n,e=null,l):a},l.sortChords=function(n){return arguments.length?(c=n,e&&t(),l):c},l.chords=function(){return e||n(),e},l.groups=function(){return r||n(),r},l},ta.layout.force=function(){function n(n){return function(t,e,r,u){if(t.point!==n){var i=t.cx-n.x,o=t.cy-n.y,a=u-e,c=i*i+o*o;if(c>a*a/d){if(p>c){var l=t.charge/c;n.px-=i*l,n.py-=o*l}return!0}if(t.point&&c&&p>c){var l=t.pointCharge/c;n.px-=i*l,n.py-=o*l}}return!t.charge}}function t(n){n.px=ta.event.x,n.py=ta.event.y,a.resume()}var e,r,u,i,o,a={},c=ta.dispatch("start","tick","end"),l=[1,1],s=.9,f=fl,h=hl,g=-30,p=gl,v=.1,d=.64,m=[],M=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,y,x,b=m.length,_=M.length;for(e=0;_>e;++e)a=M[e],f=a.source,h=a.target,y=h.x-f.x,x=h.y-f.y,(p=y*y+x*x)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,y*=p,x*=p,h.x-=y*(d=f.weight/(h.weight+f.weight)),h.y-=x*d,f.x+=y*(d=1-d),f.y+=x*d);if((d=r*v)&&(y=l[0]/2,x=l[1]/2,e=-1,d))for(;++e<b;)a=m[e],a.x+=(y-a.x)*d,a.y+=(x-a.y)*d;if(g)for(Ju(t=ta.geom.quadtree(m),r,o),e=-1;++e<b;)(a=m[e]).fixed||t.visit(n(a));for(e=-1;++e<b;)a=m[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*s,a.y-=(a.py-(a.py=a.y))*s);c.tick({type:"tick",alpha:r})},a.nodes=function(n){return arguments.length?(m=n,a):m},a.links=function(n){return arguments.length?(M=n,a):M},a.size=function(n){return arguments.length?(l=n,a):l},a.linkDistance=function(n){return arguments.length?(f="function"==typeof n?n:+n,a):f},a.distance=a.linkDistance,a.linkStrength=function(n){return arguments.length?(h="function"==typeof n?n:+n,a):h},a.friction=function(n){return arguments.length?(s=+n,a):s},a.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,a):g},a.chargeDistance=function(n){return arguments.length?(p=n*n,a):Math.sqrt(p)},a.gravity=function(n){return arguments.length?(v=+n,a):v},a.theta=function(n){return arguments.length?(d=n*n,a):Math.sqrt(d)},a.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),ta.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=M[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,l=o.length;++a<l;)if(!isNaN(i=o[a][n]))return i;return Math.random()*r}var t,e,r,c=m.length,s=M.length,p=l[0],v=l[1];for(t=0;c>t;++t)(r=m[t]).index=t,r.weight=0;for(t=0;s>t;++t)r=M[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;s>t;++t)u[t]=+f.call(this,M[t],t);else for(t=0;s>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;s>t;++t)i[t]=+h.call(this,M[t],t);else for(t=0;s>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=ta.behavior.drag().origin(y).on("dragstart.force",Xu).on("drag.force",t).on("dragend.force",$u)),arguments.length?void this.on("mouseover.force",Bu).on("mouseout.force",Wu).call(e):e},ta.rebind(a,c,"on")};var fl=20,hl=1,gl=1/0;ta.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(l=e.call(n,i,i.depth))&&(c=l.length)){for(var c,l,s;--c>=0;)o.push(s=l[c]),s.parent=i,s.depth=i.depth+1;r&&(i.value=0),i.children=l}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Qu(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=ei,e=ni,r=ti;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Ku(t,function(n){n.children&&(n.value=0)}),Qu(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ta.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,l=-1;for(r=t.value?r/t.value:0;++l<o;)n(a=i[l],e,c=a.value*r,u),e+=c}}function t(n){var e=n.children,r=0;if(e&&(u=e.length))for(var u,i=-1;++i<u;)r=Math.max(r,t(e[i]));return 1+r}function e(e,i){var o=r.call(this,e,i);return n(o[0],0,u[0],u[1]/t(o[0])),o}var r=ta.layout.hierarchy(),u=[1,1];return e.size=function(n){return arguments.length?(u=n,e):u},Gu(e,r)},ta.layout.pie=function(){function n(o){var a,c=o.length,l=o.map(function(e,r){return+t.call(n,e,r)}),s=+("function"==typeof r?r.apply(this,arguments):r),f=("function"==typeof u?u.apply(this,arguments):u)-s,h=Math.min(Math.abs(f)/c,+("function"==typeof i?i.apply(this,arguments):i)),g=h*(0>f?-1:1),p=(f-c*g)/ta.sum(l),v=ta.range(c),d=[];return null!=e&&v.sort(e===pl?function(n,t){return l[t]-l[n]}:function(n,t){return e(o[n],o[t])}),v.forEach(function(n){d[n]={data:o[n],value:a=l[n],startAngle:s,endAngle:s+=a*p+g,padAngle:h}}),d}var t=Number,e=pl,r=0,u=La,i=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n.padAngle=function(t){return arguments.length?(i=t,n):i},n};var pl={};ta.layout.stack=function(){function n(a,c){if(!(h=a.length))return a;var l=a.map(function(e,r){return t.call(n,e,r)}),s=l.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,s,c);l=ta.permute(l,f),s=ta.permute(s,f);var h,g,p,v,d=r.call(n,s,c),m=l[0].length;for(p=0;m>p;++p)for(u.call(n,l[0][p],v=d[p],s[0][p][1]),g=1;h>g;++g)u.call(n,l[g][p],v+=s[g-1][p][1],s[g][p][1]);return a}var t=y,e=ai,r=ci,u=oi,i=ui,o=ii;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:vl.get(t)||ai,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:dl.get(t)||ci,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var vl=ta.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(li),i=n.map(si),o=ta.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,l=[],s=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],l.push(e)):(c+=i[e],s.push(e));return s.reverse().concat(l)},reverse:function(n){return ta.range(n.length).reverse()},"default":ai}),dl=ta.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];s>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ci});ta.layout.histogram=function(){function n(n,i){for(var o,a,c=[],l=n.map(e,this),s=r.call(this,l,i),f=u.call(this,s,l,i),i=-1,h=l.length,g=f.length-1,p=t?1:1/h;++i<g;)o=c[i]=[],o.dx=f[i+1]-(o.x=f[i]),o.y=0;if(g>0)for(i=-1;++i<h;)a=l[i],a>=s[0]&&a<=s[1]&&(o=c[ta.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=pi,u=hi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=Et(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return gi(n,t)}:Et(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ta.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],l=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Qu(a,function(n){n.r=+s(n.value)}),Qu(a,Mi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/l))/2;Qu(a,function(n){n.r+=f}),Qu(a,Mi),Qu(a,function(n){n.r-=f})}return _i(a,c/2,l/2,t?1:1/Math.max(2*a.r/c,2*a.r/l)),o}var t,e=ta.layout.hierarchy().sort(vi),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Gu(n,e)},ta.layout.tree=function(){function n(n,u){var s=o.call(this,n,u),f=s[0],h=t(f);if(Qu(h,e),h.parent.m=-h.z,Ku(h,r),l)Ku(f,i);else{var g=f,p=f,v=f;Ku(f,function(n){n.x<g.x&&(g=n),n.x>p.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);Ku(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return s}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Ni(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],l=u.m,s=i.m,f=o.m,h=c.m;o=Ei(o),u=ki(u),o&&u;)c=ki(c),i=Ei(i),i.a=n,r=o.z+f-u.z-l+a(o._,u._),r>0&&(Ai(Ci(o,n,e),n,r),l+=r,s+=r),f+=o.m,l+=u.m,h+=c.m,s+=i.m;o&&!Ei(i)&&(i.t=o,i.m+=f-s),u&&!ki(c)&&(c.t=u,c.m+=l-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=ta.layout.hierarchy().sort(null).value(null),a=Si,c=[1,1],l=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(l=null==(c=t)?i:null,n):l?null:c},n.nodeSize=function(t){return arguments.length?(l=null==(c=t)?null:i,n):l?c:null},Gu(n,o)},ta.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],l=0;Qu(c,function(n){var t=n.children;t&&t.length?(n.x=qi(t),n.y=zi(t)):(n.x=o?l+=e(n,o):0,n.y=0,o=n)});var s=Li(c),f=Ti(c),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return Qu(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=ta.layout.hierarchy().sort(null).value(null),e=Si,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Gu(n,t)},ta.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++u<i;)r=(e=n[u]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,l=f(e),s=[],h=i.slice(),p=1/0,v="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/e.value),s.area=0;(c=h.length)>0;)s.push(o=h[c-1]),s.area+=o.area,"squarify"!==g||(a=r(s,v))<=p?(h.pop(),p=a):(s.area-=s.pop().area,u(s,v,l,!1),v=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,v,l,!0),s.length=s.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,l=e.y,s=t?c(n.area/t):0;if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++i<o;)u=n[i],u.x=a,u.y=l,u.dy=s,a+=u.dx=Math.min(e.x+e.dx-a,s?c(u.area/s):0);u.z=!0,u.dx+=e.x+e.dx-a,e.y+=s,e.dy-=s}else{for((r||s>e.dx)&&(s=e.dx);++i<o;)u=n[i],u.x=a,u.y=l,u.dx=s,l+=u.dy=Math.min(e.y+e.dy-l,s?c(u.area/s):0);u.z=!1,u.dy+=e.y+e.dy-l,e.x+=s,e.dx-=s}}function i(r){var u=o||a(r),i=u[0];return i.x=0,i.y=0,i.dx=l[0],i.dy=l[1],o&&a.revalue(i),n([i],i.dx*i.dy/i.value),(o?e:t)(i),h&&(o=u),u}var o,a=ta.layout.hierarchy(),c=Math.round,l=[1,1],s=null,f=Ri,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(n){return arguments.length?(l=n,i):l},i.padding=function(n){function t(t){var e=n.call(i,t,t.depth);return null==e?Ri(t):Di(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Di(t,n)}if(!arguments.length)return s;var r;return f=null==(s=n)?Ri:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,i},i.round=function(n){return arguments.length?(c=n?Math.round:Number,i):c!=Number},i.sticky=function(n){return arguments.length?(h=n,o=null,i):h},i.ratio=function(n){return arguments.length?(p=n,i):p},i.mode=function(n){return arguments.length?(g=n+"",i):g},Gu(i,a)},ta.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=ta.random.normal.apply(ta,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ta.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ta.scale={};var ml={floor:y,ceil:y};ta.scale.linear=function(){return Ii([0,1],[0,1],mu,!1)};var yl={s:1,g:1,p:1,r:1,e:1};ta.scale.log=function(){return Ji(ta.scale.linear().domain([0,1]),10,!0,[1,10])};var Ml=ta.format(".0e"),xl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ta.scale.pow=function(){return Gi(ta.scale.linear(),1,[0,1])},ta.scale.sqrt=function(){return ta.scale.pow().exponent(.5)},ta.scale.ordinal=function(){return Qi([],{t:"range",a:[[]]})},ta.scale.category10=function(){return ta.scale.ordinal().range(bl)},ta.scale.category20=function(){return ta.scale.ordinal().range(_l)},ta.scale.category20b=function(){return ta.scale.ordinal().range(wl)},ta.scale.category20c=function(){return ta.scale.ordinal().range(Sl)};var bl=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(Mt),_l=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(Mt),wl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(Mt),Sl=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(Mt);ta.scale.quantile=function(){return no([],[])},ta.scale.quantize=function(){return to(0,1,[0,1])},ta.scale.threshold=function(){return eo([.5],[0,1])},ta.scale.identity=function(){return ro([0,1])},ta.svg={},ta.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),l=Math.max(0,+r.apply(this,arguments)),s=o.apply(this,arguments)-Ra,f=a.apply(this,arguments)-Ra,h=Math.abs(f-s),g=s>f?0:1;if(n>l&&(p=l,l=n,n=p),h>=Ta)return t(l,g)+(n?t(n,1-g):"")+"Z";var p,v,d,m,y,M,x,b,_,w,S,k,E=0,A=0,N=[];if((m=(+c.apply(this,arguments)||0)/2)&&(d=i===kl?Math.sqrt(n*n+l*l):+i.apply(this,arguments),g||(A*=-1),l&&(A=tt(d/l*Math.sin(m))),n&&(E=tt(d/n*Math.sin(m)))),l){y=l*Math.cos(s+A),M=l*Math.sin(s+A),x=l*Math.cos(f-A),b=l*Math.sin(f-A);var C=Math.abs(f-s-2*A)<=qa?0:1;if(A&&so(y,M,x,b)===g^C){var z=(s+f)/2;y=l*Math.cos(z),M=l*Math.sin(z),x=b=null}}else y=M=0;if(n){_=n*Math.cos(f-E),w=n*Math.sin(f-E),S=n*Math.cos(s+E),k=n*Math.sin(s+E);var q=Math.abs(s-f+2*E)<=qa?0:1;if(E&&so(_,w,S,k)===1-g^q){var L=(s+f)/2;_=n*Math.cos(L),w=n*Math.sin(L),S=k=null}}else _=w=0;if((p=Math.min(Math.abs(l-n)/2,+u.apply(this,arguments)))>.001){v=l>n^g?0:1;var T=null==S?[_,w]:null==x?[y,M]:Lr([y,M],[S,k],[x,b],[_,w]),R=y-T[0],D=M-T[1],P=x-T[0],U=b-T[1],j=1/Math.sin(Math.acos((R*P+D*U)/(Math.sqrt(R*R+D*D)*Math.sqrt(P*P+U*U)))/2),F=Math.sqrt(T[0]*T[0]+T[1]*T[1]);if(null!=x){var H=Math.min(p,(l-F)/(j+1)),O=fo(null==S?[_,w]:[S,k],[y,M],l,H,g),I=fo([x,b],[_,w],l,H,g);p===H?N.push("M",O[0],"A",H,",",H," 0 0,",v," ",O[1],"A",l,",",l," 0 ",1-g^so(O[1][0],O[1][1],I[1][0],I[1][1]),",",g," ",I[1],"A",H,",",H," 0 0,",v," ",I[0]):N.push("M",O[0],"A",H,",",H," 0 1,",v," ",I[0])}else N.push("M",y,",",M);if(null!=S){var Y=Math.min(p,(n-F)/(j-1)),Z=fo([y,M],[S,k],n,-Y,g),V=fo([_,w],null==x?[y,M]:[x,b],n,-Y,g);p===Y?N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",V[1],"A",n,",",n," 0 ",g^so(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-g," ",Z[1],"A",Y,",",Y," 0 0,",v," ",Z[0]):N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",Z[0])}else N.push("L",_,",",w)}else N.push("M",y,",",M),null!=x&&N.push("A",l,",",l," 0 ",C,",",g," ",x,",",b),N.push("L",_,",",w),null!=S&&N.push("A",n,",",n," 0 ",q,",",1-g," ",S,",",k);return N.push("Z"),N.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=io,r=oo,u=uo,i=kl,o=ao,a=co,c=lo;return n.innerRadius=function(t){return arguments.length?(e=Et(t),n):e},n.outerRadius=function(t){return arguments.length?(r=Et(t),n):r},n.cornerRadius=function(t){return arguments.length?(u=Et(t),n):u},n.padRadius=function(t){return arguments.length?(i=t==kl?kl:Et(t),n):i},n.startAngle=function(t){return arguments.length?(o=Et(t),n):o},n.endAngle=function(t){return arguments.length?(a=Et(t),n):a},n.padAngle=function(t){return arguments.length?(c=Et(t),n):c},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Ra;return[Math.cos(t)*n,Math.sin(t)*n]},n};var kl="auto";ta.svg.line=function(){return ho(y)};var El=ta.map({linear:go,"linear-closed":po,step:vo,"step-before":mo,"step-after":yo,basis:So,"basis-open":ko,"basis-closed":Eo,bundle:Ao,cardinal:bo,"cardinal-open":Mo,"cardinal-closed":xo,monotone:To});El.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Al=[0,2/3,1/3,0],Nl=[0,1/3,2/3,0],Cl=[0,1/6,2/3,1/6];ta.svg.line.radial=function(){var n=ho(Ro);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},mo.reverse=yo,yo.reverse=mo,ta.svg.area=function(){return Do(y)},ta.svg.area.radial=function(){var n=Do(Ro);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ta.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),l=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,l)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+u(l.r,l.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)-Ra,s=l.call(n,u,r)-Ra;return{r:i,a0:o,a1:s,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>qa)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=mr,o=yr,a=Po,c=ao,l=co;return n.radius=function(t){return arguments.length?(a=Et(t),n):a},n.source=function(t){return arguments.length?(i=Et(t),n):i},n.target=function(t){return arguments.length?(o=Et(t),n):o},n.startAngle=function(t){return arguments.length?(c=Et(t),n):c},n.endAngle=function(t){return arguments.length?(l=Et(t),n):l},n},ta.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=mr,e=yr,r=Uo;return n.source=function(e){return arguments.length?(t=Et(e),n):t},n.target=function(t){return arguments.length?(e=Et(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ta.svg.diagonal.radial=function(){var n=ta.svg.diagonal(),t=Uo,e=n.projection;return n.projection=function(n){return arguments.length?e(jo(t=n)):t},n},ta.svg.symbol=function(){function n(n,r){return(zl.get(t.call(this,n,r))||Oo)(e.call(this,n,r))}var t=Ho,e=Fo;return n.type=function(e){return arguments.length?(t=Et(e),n):t},n.size=function(t){return arguments.length?(e=Et(t),n):e},n};var zl=ta.map({circle:Oo,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Ll)),e=t*Ll;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ta.svg.symbolTypes=zl.keys();var ql=Math.sqrt(3),Ll=Math.tan(30*Da);_a.transition=function(n){for(var t,e,r=Tl||++Ul,u=Xo(n),i=[],o=Rl||{time:Date.now(),ease:Su,delay:0,duration:250},a=-1,c=this.length;++a<c;){i.push(t=[]);for(var l=this[a],s=-1,f=l.length;++s<f;)(e=l[s])&&$o(e,s,u,r,o),t.push(e)}return Yo(i,u,r)},_a.interrupt=function(n){return this.each(null==n?Dl:Io(Xo(n)))};var Tl,Rl,Dl=Io(Xo()),Pl=[],Ul=0;Pl.call=_a.call,Pl.empty=_a.empty,Pl.node=_a.node,Pl.size=_a.size,ta.transition=function(n,t){return n&&n.transition?Tl?n.transition(t):n:ta.selection().transition(n)},ta.transition.prototype=Pl,Pl.select=function(n){var t,e,r,u=this.id,i=this.namespace,o=[];n=N(n);for(var a=-1,c=this.length;++a<c;){o.push(t=[]);for(var l=this[a],s=-1,f=l.length;++s<f;)(r=l[s])&&(e=n.call(r,r.__data__,s,a))?("__data__"in r&&(e.__data__=r.__data__),$o(e,s,i,u,r[i][u]),t.push(e)):t.push(null)}return Yo(o,i,u)},Pl.selectAll=function(n){var t,e,r,u,i,o=this.id,a=this.namespace,c=[];n=C(n);for(var l=-1,s=this.length;++l<s;)for(var f=this[l],h=-1,g=f.length;++h<g;)if(r=f[h]){i=r[a][o],e=n.call(r,r.__data__,h,l),c.push(t=[]);for(var p=-1,v=e.length;++p<v;)(u=e[p])&&$o(u,p,a,o,i),t.push(u)}return Yo(c,a,o)},Pl.filter=function(n){var t,e,r,u=[];"function"!=typeof n&&(n=O(n));for(var i=0,o=this.length;o>i;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return Yo(u,this.namespace,this.id)},Pl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(u){u[r][e].tween.set(n,t)})},Pl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Hu:mu,a=ta.ns.qualify(n);return Zo(this,"attr."+n,t,a.local?i:u)},Pl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=ta.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Pl.style=function(n,e,r){function u(){this.style.removeProperty(n)}function i(e){return null==e?u:(e+="",function(){var u,i=t(this).getComputedStyle(this,null).getPropertyValue(n);return i!==e&&(u=mu(i,e),function(t){this.style.setProperty(n,u(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Zo(this,"style."+n,e,i)},Pl.styleTween=function(n,e,r){function u(u,i){var o=e.call(this,u,i,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,u)},Pl.text=function(n){return Zo(this,"text",n,Vo)},Pl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Pl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ta.ease.apply(ta,arguments)),Y(this,function(r){r[e][t].ease=n}))},Pl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,u,i){r[e][t].delay=+n.call(r,r.__data__,u,i)}:(n=+n,function(r){r[e][t].delay=n}))},Pl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,u,i){r[e][t].duration=Math.max(1,n.call(r,r.__data__,u,i))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Pl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var u=Rl,i=Tl;try{Tl=e,Y(this,function(t,u,i){Rl=t[r][e],n.call(t,t.__data__,u,i)})}finally{Rl=u,Tl=i}}else Y(this,function(u){var i=u[r][e];(i.event||(i.event=ta.dispatch("start","end","interrupt"))).on(n,t)});return this},Pl.transition=function(){for(var n,t,e,r,u=this.id,i=++Ul,o=this.namespace,a=[],c=0,l=this.length;l>c;c++){a.push(n=[]);for(var t=this[c],s=0,f=t.length;f>s;s++)(e=t[s])&&(r=e[o][u],$o(e,s,o,i,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Yo(a,o,i)},ta.svg.axis=function(){function n(n){n.each(function(){var n,l=ta.select(this),s=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):y:t,p=l.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Ca),d=ta.transition(p.exit()).style("opacity",Ca).remove(),m=ta.transition(p.order()).style("opacity",1),M=Math.max(u,0)+o,x=Ui(f),b=l.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ta.transition(b));v.append("line"),v.append("text");var w,S,k,E,A=v.select("line"),N=m.select("line"),C=p.select("text").text(g),z=v.select("text"),q=m.select("text"),L="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=Bo,w="x",k="y",S="x2",E="y2",C.attr("dy",0>L?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+L*i+"V0H"+x[1]+"V"+L*i)):(n=Wo,w="y",k="x",S="y2",E="x2",C.attr("dy",".32em").style("text-anchor",0>L?"end":"start"),_.attr("d","M"+L*i+","+x[0]+"H0V"+x[1]+"H"+L*i)),A.attr(E,L*u),z.attr(k,L*M),N.attr(S,0).attr(E,L*u),q.attr(w,0).attr(k,L*M),f.rangeBand){var T=f,R=T.rangeBand()/2;s=f=function(n){return T(n)+R}}else s.rangeBand?s=f:d.call(n,f,s);v.call(n,s,f),m.call(n,f,f)})}var t,e=ta.scale.linear(),r=jl,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Fl?t+"":jl,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var jl="bottom",Fl={top:1,right:1,bottom:1,left:1};ta.svg.brush=function(){function n(t){t.each(function(){var t=ta.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",i).on("touchstart.brush",i),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,y);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Hl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var c,f=ta.transition(t),h=ta.transition(o);l&&(c=Ui(l),h.attr("x",c[0]).attr("width",c[1]-c[0]),r(f)),s&&(c=Ui(s),h.attr("y",c[0]).attr("height",c[1]-c[0]),u(f)),e(f)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+f[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",f[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1]-f[0])}function u(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function i(){function i(){32==ta.event.keyCode&&(C||(M=null,q[0]-=f[1],q[1]-=h[1],C=2),S())}function v(){32==ta.event.keyCode&&2==C&&(q[0]+=f[1],q[1]+=h[1],C=0,S())}function d(){var n=ta.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ta.event.altKey?(M||(M=[(f[0]+f[1])/2,(h[0]+h[1])/2]),q[0]=f[+(n[0]<M[0])],q[1]=h[+(n[1]<M[1])]):M=null),A&&m(n,l,0)&&(r(k),t=!0),N&&m(n,s,1)&&(u(k),t=!0),t&&(e(k),w({type:"brush",mode:C?"move":"resize"}))}function m(n,t,e){var r,u,i=Ui(t),c=i[0],l=i[1],s=q[e],v=e?h:f,d=v[1]-v[0];return C&&(c-=s,l-=d+s),r=(e?p:g)?Math.max(c,Math.min(l,n[e])):n[e],C?u=(r+=s)+d:(M&&(s=Math.max(c,Math.min(l,2*M[e]-r))),r>s?(u=r,r=s):u=s),v[0]!=r||v[1]!=u?(e?a=null:o=null,v[0]=r,v[1]=u,!0):void 0}function y(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ta.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ta.select(ta.event.target),w=c.of(b,arguments),k=ta.select(b),E=_.datum(),A=!/^(n|s)$/.test(E)&&l,N=!/^(e|w)$/.test(E)&&s,C=_.classed("extent"),z=W(b),q=ta.mouse(b),L=ta.select(t(b)).on("keydown.brush",i).on("keyup.brush",v);if(ta.event.changedTouches?L.on("touchmove.brush",d).on("touchend.brush",y):L.on("mousemove.brush",d).on("mouseup.brush",y),k.interrupt().selectAll("*").interrupt(),C)q[0]=f[0]-q[0],q[1]=h[0]-q[1];else if(E){var T=+/w$/.test(E),R=+/^n/.test(E);x=[f[1-T]-q[0],h[1-R]-q[1]],q[0]=f[T],q[1]=h[R]}else ta.event.altKey&&(M=q.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ta.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,c=E(n,"brushstart","brush","brushend"),l=null,s=null,f=[0,0],h=[0,0],g=!0,p=!0,v=Ol[0];return n.event=function(n){n.each(function(){var n=c.of(this,arguments),t={x:f,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Tl?ta.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,f=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=yu(f,t.x),r=yu(h,t.y);return o=a=null,function(u){f=t.x=e(u),h=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(l=t,v=Ol[!l<<1|!s],n):l},n.y=function(t){return arguments.length?(s=t,v=Ol[!l<<1|!s],n):s},n.clamp=function(t){return arguments.length?(l&&s?(g=!!t[0],p=!!t[1]):l?g=!!t:s&&(p=!!t),n):l&&s?[g,p]:l?g:s?p:null},n.extent=function(t){var e,r,u,i,c;return arguments.length?(l&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),o=[e,r],l.invert&&(e=l(e),r=l(r)),e>r&&(c=e,e=r,r=c),(e!=f[0]||r!=f[1])&&(f=[e,r])),s&&(u=t[0],i=t[1],l&&(u=u[1],i=i[1]),a=[u,i],s.invert&&(u=s(u),i=s(i)),u>i&&(c=u,u=i,i=c),(u!=h[0]||i!=h[1])&&(h=[u,i])),n):(l&&(o?(e=o[0],r=o[1]):(e=f[0],r=f[1],l.invert&&(e=l.invert(e),r=l.invert(r)),e>r&&(c=e,e=r,r=c))),s&&(a?(u=a[0],i=a[1]):(u=h[0],i=h[1],s.invert&&(u=s.invert(u),i=s.invert(i)),u>i&&(c=u,u=i,i=c))),l&&s?[[e,u],[r,i]]:l?[e,r]:s&&[u,i])},n.clear=function(){return n.empty()||(f=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!l&&f[0]==f[1]||!!s&&h[0]==h[1]},ta.rebind(n,c,"on")};var Hl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ol=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Il=ac.format=gc.timeFormat,Yl=Il.utc,Zl=Yl("%Y-%m-%dT%H:%M:%S.%LZ");Il.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Jo:Zl,Jo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Jo.toString=Zl.toString,ac.second=Ft(function(n){return new cc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ac.seconds=ac.second.range,ac.seconds.utc=ac.second.utc.range,ac.minute=Ft(function(n){return new cc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ac.minutes=ac.minute.range,ac.minutes.utc=ac.minute.utc.range,ac.hour=Ft(function(n){var t=n.getTimezoneOffset()/60;return new cc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ac.hours=ac.hour.range,ac.hours.utc=ac.hour.utc.range,ac.month=Ft(function(n){return n=ac.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ac.months=ac.month.range,ac.months.utc=ac.month.utc.range;var Vl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Xl=[[ac.second,1],[ac.second,5],[ac.second,15],[ac.second,30],[ac.minute,1],[ac.minute,5],[ac.minute,15],[ac.minute,30],[ac.hour,1],[ac.hour,3],[ac.hour,6],[ac.hour,12],[ac.day,1],[ac.day,2],[ac.week,1],[ac.month,1],[ac.month,3],[ac.year,1]],$l=Il.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",Ne]]),Bl={range:function(n,t,e){return ta.range(Math.ceil(n/e)*e,+t,e).map(Ko)},floor:y,ceil:y};Xl.year=ac.year,ac.scale=function(){return Go(ta.scale.linear(),Xl,$l)};var Wl=Xl.map(function(n){return[n[0].utc,n[1]]}),Jl=Yl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",Ne]]);Wl.year=ac.year.utc,ac.scale.utc=function(){return Go(ta.scale.linear(),Wl,Jl)},ta.text=At(function(n){return n.responseText}),ta.json=function(n,t){return Nt(n,"application/json",Qo,t)},ta.html=function(n,t){return Nt(n,"text/html",na,t)},ta.xml=At(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(ta):"object"==typeof module&&module.exports&&(module.exports=ta),this.d3=ta}(); \ No newline at end of file diff --git a/src/goaccess++/resources/js/hogan.min.js b/src/goaccess++/resources/js/hogan.min.js new file mode 100644 index 0000000..437c5d4 --- /dev/null +++ b/src/goaccess++/resources/js/hogan.min.js @@ -0,0 +1,5 @@ +/** +* @preserve Copyright 2012 Twitter, Inc. +* @license http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +var Hogan={};!function(t){function n(t,n,e){var i;return n&&"object"==typeof n&&(void 0!==n[t]?i=n[t]:e&&n.get&&"function"==typeof n.get&&(i=n.get(t))),i}function e(t,n,e,i,r,s){function a(){}function o(){}a.prototype=t,o.prototype=t.subs;var u,c=new a;c.subs=new o,c.subsText={},c.buf="",i=i||{},c.stackSubs=i,c.subsText=s;for(u in n)i[u]||(i[u]=n[u]);for(u in i)c.subs[u]=i[u];r=r||{},c.stackPartials=r;for(u in e)r[u]||(r[u]=e[u]);for(u in r)c.partials[u]=r[u];return c}function i(t){return String(null===t||void 0===t?"":t)}function r(t){return t=i(t),l.test(t)?t.replace(s,"&").replace(a,"<").replace(o,">").replace(u,"'").replace(c,"""):t}t.Template=function(t,n,e,i){t=t||{},this.r=t.code||this.r,this.c=e,this.options=i||{},this.text=n||"",this.partials=t.partials||{},this.subs=t.subs||{},this.buf=""},t.Template.prototype={r:function(){return""},v:r,t:i,render:function(t,n,e){return this.ri([t],n||{},e)},ri:function(t,n,e){return this.r(t,n,e)},ep:function(t,n){var i=this.partials[t],r=n[i.name];if(i.instance&&i.base==r)return i.instance;if("string"==typeof r){if(!this.c)throw new Error("No compiler available.");r=this.c.compile(r,this.options)}if(!r)return null;if(this.partials[t].base=r,i.subs){n.stackText||(n.stackText={});for(key in i.subs)n.stackText[key]||(n.stackText[key]=void 0!==this.activeSub&&n.stackText[this.activeSub]?n.stackText[this.activeSub]:this.text);r=e(r,i.subs,i.partials,this.stackSubs,this.stackPartials,n.stackText)}return this.partials[t].instance=r,r},rp:function(t,n,e,i){var r=this.ep(t,e);return r?r.ri(n,e,i):""},rs:function(t,n,e){var i=t[t.length-1];if(!f(i))return void e(t,n,this);for(var r=0;r<i.length;r++)t.push(i[r]),e(t,n,this),t.pop()},s:function(t,n,e,i,r,s,a){var o;return f(t)&&0===t.length?!1:("function"==typeof t&&(t=this.ms(t,n,e,i,r,s,a)),o=!!t,!i&&o&&n&&n.push("object"==typeof t?t:n[n.length-1]),o)},d:function(t,e,i,r){var s,a=t.split("."),o=this.f(a[0],e,i,r),u=this.options.modelGet,c=null;if("."===t&&f(e[e.length-2]))o=e[e.length-1];else for(var l=1;l<a.length;l++)s=n(a[l],o,u),void 0!==s?(c=o,o=s):o="";return r&&!o?!1:(r||"function"!=typeof o||(e.push(c),o=this.mv(o,e,i),e.pop()),o)},f:function(t,e,i,r){for(var s=!1,a=null,o=!1,u=this.options.modelGet,c=e.length-1;c>=0;c--)if(a=e[c],s=n(t,a,u),void 0!==s){o=!0;break}return o?(r||"function"!=typeof s||(s=this.mv(s,e,i)),s):r?!1:""},ls:function(t,n,e,r,s){var a=this.options.delimiters;return this.options.delimiters=s,this.b(this.ct(i(t.call(n,r)),n,e)),this.options.delimiters=a,!1},ct:function(t,n,e){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(t,this.options).render(n,e)},b:function(t){this.buf+=t},fl:function(){var t=this.buf;return this.buf="",t},ms:function(t,n,e,i,r,s,a){var o,u=n[n.length-1],c=t.call(u);return"function"==typeof c?i?!0:(o=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,u,e,o.substring(r,s),a)):c},mv:function(t,n,e){var r=n[n.length-1],s=t.call(r);return"function"==typeof s?this.ct(i(s.call(r)),r,e):s},sub:function(t,n,e,i){var r=this.subs[t];r&&(this.activeSub=t,r(n,e,this,i),this.activeSub=!1)}};var s=/&/g,a=/</g,o=/>/g,u=/\'/g,c=/\"/g,l=/[&<>\"\']/,f=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}}("undefined"!=typeof exports?exports:Hogan),function(t){function n(t){"}"===t.n.substr(t.n.length-1)&&(t.n=t.n.substring(0,t.n.length-1))}function e(t){return t.trim?t.trim():t.replace(/^\s*|\s*$/g,"")}function i(t,n,e){if(n.charAt(e)!=t.charAt(0))return!1;for(var i=1,r=t.length;r>i;i++)if(n.charAt(e+i)!=t.charAt(i))return!1;return!0}function r(n,e,i,o){var u=[],c=null,l=null,f=null;for(l=i[i.length-1];n.length>0;){if(f=n.shift(),l&&"<"==l.tag&&!(f.tag in k))throw new Error("Illegal content in < super tag.");if(t.tags[f.tag]<=t.tags.$||s(f,o))i.push(f),f.nodes=r(n,f.tag,i,o);else{if("/"==f.tag){if(0===i.length)throw new Error("Closing tag without opener: /"+f.n);if(c=i.pop(),f.n!=c.n&&!a(f.n,c.n,o))throw new Error("Nesting error: "+c.n+" vs. "+f.n);return c.end=f.i,u}"\n"==f.tag&&(f.last=0==n.length||"\n"==n[0].tag)}u.push(f)}if(i.length>0)throw new Error("missing closing tag: "+i.pop().n);return u}function s(t,n){for(var e=0,i=n.length;i>e;e++)if(n[e].o==t.n)return t.tag="#",!0}function a(t,n,e){for(var i=0,r=e.length;r>i;i++)if(e[i].c==t&&e[i].o==n)return!0}function o(t){var n=[];for(var e in t)n.push('"'+c(e)+'": function(c,p,t,i) {'+t[e]+"}");return"{ "+n.join(",")+" }"}function u(t){var n=[];for(var e in t.partials)n.push('"'+c(e)+'":{name:"'+c(t.partials[e].name)+'", '+u(t.partials[e])+"}");return"partials: {"+n.join(",")+"}, subs: "+o(t.subs)}function c(t){return t.replace(m,"\\\\").replace(v,'\\"').replace(b,"\\n").replace(d,"\\r").replace(x,"\\u2028").replace(w,"\\u2029")}function l(t){return~t.indexOf(".")?"d":"f"}function f(t,n){var e="<"+(n.prefix||""),i=e+t.n+y++;return n.partials[i]={name:t.n,partials:{}},n.code+='t.b(t.rp("'+c(i)+'",c,p,"'+(t.indent||"")+'"));',i}function h(t,n){n.code+="t.b(t.t(t."+l(t.n)+'("'+c(t.n)+'",c,p,0)));'}function p(t){return"t.b("+t+");"}var g=/\S/,v=/\"/g,b=/\n/g,d=/\r/g,m=/\\/g,x=/\u2028/,w=/\u2029/;t.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},t.scan=function(r,s){function a(){m.length>0&&(x.push({tag:"_t",text:new String(m)}),m="")}function o(){for(var n=!0,e=y;e<x.length;e++)if(n=t.tags[x[e].tag]<t.tags._v||"_t"==x[e].tag&&null===x[e].text.match(g),!n)return!1;return n}function u(t,n){if(a(),t&&o())for(var e,i=y;i<x.length;i++)x[i].text&&((e=x[i+1])&&">"==e.tag&&(e.indent=x[i].text.toString()),x.splice(i,1));else n||x.push({tag:"\n"});w=!1,y=x.length}function c(t,n){var i="="+S,r=t.indexOf(i,n),s=e(t.substring(t.indexOf("=",n)+1,r)).split(" ");return T=s[0],S=s[s.length-1],r+i.length-1}var l=r.length,f=0,h=1,p=2,v=f,b=null,d=null,m="",x=[],w=!1,k=0,y=0,T="{{",S="}}";for(s&&(s=s.split(" "),T=s[0],S=s[1]),k=0;l>k;k++)v==f?i(T,r,k)?(--k,a(),v=h):"\n"==r.charAt(k)?u(w):m+=r.charAt(k):v==h?(k+=T.length-1,d=t.tags[r.charAt(k+1)],b=d?r.charAt(k+1):"_v","="==b?(k=c(r,k),v=f):(d&&k++,v=p),w=k):i(S,r,k)?(x.push({tag:b,n:e(m),otag:T,ctag:S,i:"/"==b?w-T.length:k+S.length}),m="",k+=S.length-1,v=f,"{"==b&&("}}"==S?k++:n(x[x.length-1]))):m+=r.charAt(k);return u(w,!0),x};var k={_t:!0,"\n":!0,$:!0,"/":!0};t.stringify=function(n){return"{code: function (c,p,i) { "+t.wrapMain(n.code)+" },"+u(n)+"}"};var y=0;t.generate=function(n,e,i){y=0;var r={code:"",subs:{},partials:{}};return t.walk(n,r),i.asString?this.stringify(r,e,i):this.makeTemplate(r,e,i)},t.wrapMain=function(t){return'var t=this;t.b(i=i||"");'+t+"return t.fl();"},t.template=t.Template,t.makeTemplate=function(t,n,e){var i=this.makePartials(t);return i.code=new Function("c","p","i",this.wrapMain(t.code)),new this.template(i,n,this,e)},t.makePartials=function(t){var n,e={subs:{},partials:t.partials,name:t.name};for(n in e.partials)e.partials[n]=this.makePartials(e.partials[n]);for(n in t.subs)e.subs[n]=new Function("c","p","t","i",t.subs[n]);return e},t.codegen={"#":function(n,e){e.code+="if(t.s(t."+l(n.n)+'("'+c(n.n)+'",c,p,1),c,p,0,'+n.i+","+n.end+',"'+n.otag+" "+n.ctag+'")){t.rs(c,p,function(c,p,t){',t.walk(n.nodes,e),e.code+="});c.pop();}"},"^":function(n,e){e.code+="if(!t.s(t."+l(n.n)+'("'+c(n.n)+'",c,p,1),c,p,1,0,0,"")){',t.walk(n.nodes,e),e.code+="};"},">":f,"<":function(n,e){var i={partials:{},code:"",subs:{},inPartial:!0};t.walk(n.nodes,i);var r=e.partials[f(n,e)];r.subs=i.subs,r.partials=i.partials},$:function(n,e){var i={subs:{},code:"",partials:e.partials,prefix:n.n};t.walk(n.nodes,i),e.subs[n.n]=i.code,e.inPartial||(e.code+='t.sub("'+c(n.n)+'",c,p,i);')},"\n":function(t,n){n.code+=p('"\\n"'+(t.last?"":" + i"))},_v:function(t,n){n.code+="t.b(t.v(t."+l(t.n)+'("'+c(t.n)+'",c,p,0)));'},_t:function(t,n){n.code+=p('"'+c(t.text)+'"')},"{":h,"&":h},t.walk=function(n,e){for(var i,r=0,s=n.length;s>r;r++)i=t.codegen[n[r].tag],i&&i(n[r],e);return e},t.parse=function(t,n,e){return e=e||{},r(t,"",[],e.sectionTags||[])},t.cache={},t.cacheKey=function(t,n){return[t,!!n.asString,!!n.disableLambda,n.delimiters,!!n.modelGet].join("||")},t.compile=function(n,e){e=e||{};var i=t.cacheKey(n,e),r=this.cache[i];if(r){var s=r.partials;for(var a in s)delete s[a].instance;return r}return r=this.generate(this.parse(this.scan(n,e.delimiters),n,e),n,e),this.cache[i]=r}}("undefined"!=typeof exports?exports:Hogan); \ No newline at end of file diff --git a/src/goaccess++/resources/js/hogan.min.js.tmp b/src/goaccess++/resources/js/hogan.min.js.tmp new file mode 100644 index 0000000..9d0688e --- /dev/null +++ b/src/goaccess++/resources/js/hogan.min.js.tmp @@ -0,0 +1 @@ +/*** @preserve Copyright 2012 Twitter, Inc.* @license http://www.apache.org/licenses/LICENSE-2.0.txt*/var Hogan={};!function(t){function n(t,n,e){var i;return n&&"object"==typeof n&&(void 0!==n[t]?i=n[t]:e&&n.get&&"function"==typeof n.get&&(i=n.get(t))),i}function e(t,n,e,i,r,s){function a(){}function o(){}a.prototype=t,o.prototype=t.subs;var u,c=new a;c.subs=new o,c.subsText={},c.buf="",i=i||{},c.stackSubs=i,c.subsText=s;for(u in n)i[u]||(i[u]=n[u]);for(u in i)c.subs[u]=i[u];r=r||{},c.stackPartials=r;for(u in e)r[u]||(r[u]=e[u]);for(u in r)c.partials[u]=r[u];return c}function i(t){return String(null===t||void 0===t?"":t)}function r(t){return t=i(t),l.test(t)?t.replace(s,"&").replace(a,"<").replace(o,">").replace(u,"'").replace(c,"""):t}t.Template=function(t,n,e,i){t=t||{},this.r=t.code||this.r,this.c=e,this.options=i||{},this.text=n||"",this.partials=t.partials||{},this.subs=t.subs||{},this.buf=""},t.Template.prototype={r:function(){return""},v:r,t:i,render:function(t,n,e){return this.ri([t],n||{},e)},ri:function(t,n,e){return this.r(t,n,e)},ep:function(t,n){var i=this.partials[t],r=n[i.name];if(i.instance&&i.base==r)return i.instance;if("string"==typeof r){if(!this.c)throw new Error("No compiler available.");r=this.c.compile(r,this.options)}if(!r)return null;if(this.partials[t].base=r,i.subs){n.stackText||(n.stackText={});for(key in i.subs)n.stackText[key]||(n.stackText[key]=void 0!==this.activeSub&&n.stackText[this.activeSub]?n.stackText[this.activeSub]:this.text);r=e(r,i.subs,i.partials,this.stackSubs,this.stackPartials,n.stackText)}return this.partials[t].instance=r,r},rp:function(t,n,e,i){var r=this.ep(t,e);return r?r.ri(n,e,i):""},rs:function(t,n,e){var i=t[t.length-1];if(!f(i))return void e(t,n,this);for(var r=0;r<i.length;r++)t.push(i[r]),e(t,n,this),t.pop()},s:function(t,n,e,i,r,s,a){var o;return f(t)&&0===t.length?!1:("function"==typeof t&&(t=this.ms(t,n,e,i,r,s,a)),o=!!t,!i&&o&&n&&n.push("object"==typeof t?t:n[n.length-1]),o)},d:function(t,e,i,r){var s,a=t.split("."),o=this.f(a[0],e,i,r),u=this.options.modelGet,c=null;if("."===t&&f(e[e.length-2]))o=e[e.length-1];else for(var l=1;l<a.length;l++)s=n(a[l],o,u),void 0!==s?(c=o,o=s):o="";return r&&!o?!1:(r||"function"!=typeof o||(e.push(c),o=this.mv(o,e,i),e.pop()),o)},f:function(t,e,i,r){for(var s=!1,a=null,o=!1,u=this.options.modelGet,c=e.length-1;c>=0;c--)if(a=e[c],s=n(t,a,u),void 0!==s){o=!0;break}return o?(r||"function"!=typeof s||(s=this.mv(s,e,i)),s):r?!1:""},ls:function(t,n,e,r,s){var a=this.options.delimiters;return this.options.delimiters=s,this.b(this.ct(i(t.call(n,r)),n,e)),this.options.delimiters=a,!1},ct:function(t,n,e){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(t,this.options).render(n,e)},b:function(t){this.buf+=t},fl:function(){var t=this.buf;return this.buf="",t},ms:function(t,n,e,i,r,s,a){var o,u=n[n.length-1],c=t.call(u);return"function"==typeof c?i?!0:(o=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,u,e,o.substring(r,s),a)):c},mv:function(t,n,e){var r=n[n.length-1],s=t.call(r);return"function"==typeof s?this.ct(i(s.call(r)),r,e):s},sub:function(t,n,e,i){var r=this.subs[t];r&&(this.activeSub=t,r(n,e,this,i),this.activeSub=!1)}};var s=/&/g,a=/</g,o=/>/g,u=/\'/g,c=/\"/g,l=/[&<>\"\']/,f=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}}("undefined"!=typeof exports?exports:Hogan),function(t){function n(t){"}"===t.n.substr(t.n.length-1)&&(t.n=t.n.substring(0,t.n.length-1))}function e(t){return t.trim?t.trim():t.replace(/^\s*|\s*$/g,"")}function i(t,n,e){if(n.charAt(e)!=t.charAt(0))return!1;for(var i=1,r=t.length;r>i;i++)if(n.charAt(e+i)!=t.charAt(i))return!1;return!0}function r(n,e,i,o){var u=[],c=null,l=null,f=null;for(l=i[i.length-1];n.length>0;){if(f=n.shift(),l&&"<"==l.tag&&!(f.tag in k))throw new Error("Illegal content in < super tag.");if(t.tags[f.tag]<=t.tags.$||s(f,o))i.push(f),f.nodes=r(n,f.tag,i,o);else{if("/"==f.tag){if(0===i.length)throw new Error("Closing tag without opener: /"+f.n);if(c=i.pop(),f.n!=c.n&&!a(f.n,c.n,o))throw new Error("Nesting error: "+c.n+" vs. "+f.n);return c.end=f.i,u}"\n"==f.tag&&(f.last=0==n.length||"\n"==n[0].tag)}u.push(f)}if(i.length>0)throw new Error("missing closing tag: "+i.pop().n);return u}function s(t,n){for(var e=0,i=n.length;i>e;e++)if(n[e].o==t.n)return t.tag="#",!0}function a(t,n,e){for(var i=0,r=e.length;r>i;i++)if(e[i].c==t&&e[i].o==n)return!0}function o(t){var n=[];for(var e in t)n.push('"'+c(e)+'": function(c,p,t,i) {'+t[e]+"}");return"{ "+n.join(",")+" }"}function u(t){var n=[];for(var e in t.partials)n.push('"'+c(e)+'":{name:"'+c(t.partials[e].name)+'", '+u(t.partials[e])+"}");return"partials: {"+n.join(",")+"}, subs: "+o(t.subs)}function c(t){return t.replace(m,"\\\\").replace(v,'\\"').replace(b,"\\n").replace(d,"\\r").replace(x,"\\u2028").replace(w,"\\u2029")}function l(t){return~t.indexOf(".")?"d":"f"}function f(t,n){var e="<"+(n.prefix||""),i=e+t.n+y++;return n.partials[i]={name:t.n,partials:{}},n.code+='t.b(t.rp("'+c(i)+'",c,p,"'+(t.indent||"")+'"));',i}function h(t,n){n.code+="t.b(t.t(t."+l(t.n)+'("'+c(t.n)+'",c,p,0)));'}function p(t){return"t.b("+t+");"}var g=/\S/,v=/\"/g,b=/\n/g,d=/\r/g,m=/\\/g,x=/\u2028/,w=/\u2029/;t.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},t.scan=function(r,s){function a(){m.length>0&&(x.push({tag:"_t",text:new String(m)}),m="")}function o(){for(var n=!0,e=y;e<x.length;e++)if(n=t.tags[x[e].tag]<t.tags._v||"_t"==x[e].tag&&null===x[e].text.match(g),!n)return!1;return n}function u(t,n){if(a(),t&&o())for(var e,i=y;i<x.length;i++)x[i].text&&((e=x[i+1])&&">"==e.tag&&(e.indent=x[i].text.toString()),x.splice(i,1));else n||x.push({tag:"\n"});w=!1,y=x.length}function c(t,n){var i="="+S,r=t.indexOf(i,n),s=e(t.substring(t.indexOf("=",n)+1,r)).split(" ");return T=s[0],S=s[s.length-1],r+i.length-1}var l=r.length,f=0,h=1,p=2,v=f,b=null,d=null,m="",x=[],w=!1,k=0,y=0,T="{{",S="}}";for(s&&(s=s.split(" "),T=s[0],S=s[1]),k=0;l>k;k++)v==f?i(T,r,k)?(--k,a(),v=h):"\n"==r.charAt(k)?u(w):m+=r.charAt(k):v==h?(k+=T.length-1,d=t.tags[r.charAt(k+1)],b=d?r.charAt(k+1):"_v","="==b?(k=c(r,k),v=f):(d&&k++,v=p),w=k):i(S,r,k)?(x.push({tag:b,n:e(m),otag:T,ctag:S,i:"/"==b?w-T.length:k+S.length}),m="",k+=S.length-1,v=f,"{"==b&&("}}"==S?k++:n(x[x.length-1]))):m+=r.charAt(k);return u(w,!0),x};var k={_t:!0,"\n":!0,$:!0,"/":!0};t.stringify=function(n){return"{code: function (c,p,i) { "+t.wrapMain(n.code)+" },"+u(n)+"}"};var y=0;t.generate=function(n,e,i){y=0;var r={code:"",subs:{},partials:{}};return t.walk(n,r),i.asString?this.stringify(r,e,i):this.makeTemplate(r,e,i)},t.wrapMain=function(t){return'var t=this;t.b(i=i||"");'+t+"return t.fl();"},t.template=t.Template,t.makeTemplate=function(t,n,e){var i=this.makePartials(t);return i.code=new Function("c","p","i",this.wrapMain(t.code)),new this.template(i,n,this,e)},t.makePartials=function(t){var n,e={subs:{},partials:t.partials,name:t.name};for(n in e.partials)e.partials[n]=this.makePartials(e.partials[n]);for(n in t.subs)e.subs[n]=new Function("c","p","t","i",t.subs[n]);return e},t.codegen={"#":function(n,e){e.code+="if(t.s(t."+l(n.n)+'("'+c(n.n)+'",c,p,1),c,p,0,'+n.i+","+n.end+',"'+n.otag+" "+n.ctag+'")){t.rs(c,p,function(c,p,t){',t.walk(n.nodes,e),e.code+="});c.pop();}"},"^":function(n,e){e.code+="if(!t.s(t."+l(n.n)+'("'+c(n.n)+'",c,p,1),c,p,1,0,0,"")){',t.walk(n.nodes,e),e.code+="};"},">":f,"<":function(n,e){var i={partials:{},code:"",subs:{},inPartial:!0};t.walk(n.nodes,i);var r=e.partials[f(n,e)];r.subs=i.subs,r.partials=i.partials},$:function(n,e){var i={subs:{},code:"",partials:e.partials,prefix:n.n};t.walk(n.nodes,i),e.subs[n.n]=i.code,e.inPartial||(e.code+='t.sub("'+c(n.n)+'",c,p,i);')},"\n":function(t,n){n.code+=p('"\\n"'+(t.last?"":" + i"))},_v:function(t,n){n.code+="t.b(t.v(t."+l(t.n)+'("'+c(t.n)+'",c,p,0)));'},_t:function(t,n){n.code+=p('"'+c(t.text)+'"')},"{":h,"&":h},t.walk=function(n,e){for(var i,r=0,s=n.length;s>r;r++)i=t.codegen[n[r].tag],i&&i(n[r],e);return e},t.parse=function(t,n,e){return e=e||{},r(t,"",[],e.sectionTags||[])},t.cache={},t.cacheKey=function(t,n){return[t,!!n.asString,!!n.disableLambda,n.delimiters,!!n.modelGet].join("||")},t.compile=function(n,e){e=e||{};var i=t.cacheKey(n,e),r=this.cache[i];if(r){var s=r.partials;for(var a in s)delete s[a].instance;return r}return r=this.generate(this.parse(this.scan(n,e.delimiters),n,e),n,e),this.cache[i]=r}}("undefined"!=typeof exports?exports:Hogan); \ No newline at end of file diff --git a/src/goaccess++/resources/tpls.html b/src/goaccess++/resources/tpls.html new file mode 100644 index 0000000..584b3e0 --- /dev/null +++ b/src/goaccess++/resources/tpls.html @@ -0,0 +1,276 @@ +<!-- TPL General --> +<script id="tpl-general" type="text/template"> + <h4 class="hidden-xs gheader">{{head}}<span class="pull-right">{{#from}}<span class="from">{{from}}</span>{{/from}}{{#to}} — <span class="to">{{to}}</span>{{/to}}</span></h4> + <h5 class="visible-xs hidden-sm hidden-md hidden-lg gheader">{{head}}  {{#from}}<span class="from">{{from}}</span>{{/from}}{{#to}} — <span class="to">{{to}}</span>{{/to}}</h5> + <div class="wrap-general-items"></div> +</script> + +<!-- TPL General Items --> +<script id="tpl-general-items" type="text/template"> + <div class="col-md-2"> + <div class="grid-module {{#className}}{{className}}{{/className}}{{^className}}gray{{/className}}"> + <div class="col-title"> + <i class="fa fa-bar-chart"></i> {{#label}}{{label}}{{/label}} + </div> + <h3 id="{{id}}" style="padding-top: 0;">{{value}}</h3> + </div> + </div> +</script> + +<!-- TPL Panel Table --> +<script id="tpl-table-row" type="text/template"> + {{#rows}} + <tr class="{{#className}}{{className}}{{/className}} {{#hasSubItems}}{{#items}}expandable{{/items}}{{/hasSubItems}}" {{#idx}}data-pid="{{idx}}"{{/idx}} data-panel="{{panel}}" {{#key}}data-key="{{key}}"{{/key}}> + {{#hasSubItems}} + <td class="row-expandable text-center {{#items}}clickable{{/items}}"> + {{#items}}<i class="fa {{#expanded}}fa-caret-down{{/expanded}}{{^expanded}}fa fa-caret-right{{/expanded}}"></i>{{/items}} + {{^items}}<i></i>{{/items}} + </td> + {{/hasSubItems}} + <td class="row-idx text-right"> + {{#idx}}{{idx}}{{/idx}} + </td> + {{#cells}} + <td class="{{className}}" {{#colspan}}colspan="{{colspan}}"{{/colspan}}> + <span class="value">{{{value}}}</span>{{#percent}}<span class="percent"> ({{percent}})</span>{{/percent}} + </td> + {{/cells}} + </tr> + {{/rows}} +</script> + +<!-- TPL Panel Table Meta --> +<script id="tpl-table-row-meta" type="text/template"> + {{#row}} + <tr> + {{#hasSubItems}} + <td class=""></td> + {{/hasSubItems}} + <td class=""></td> + {{#cells}} + <td class="{{className}}" {{#colspan}}colspan="{{colspan}}"{{/colspan}}> + {{#value}} + <h4 class="value"><span title="{{title}}">{{value}}</span>{{#label}}<small> {{label}}</small>{{/label}}{{#max}}<br><small>Max: {{max}}</small>{{/max}}{{#min}}<br><small>Min: {{min}}</small>{{/min}}</h4> + {{/value}} + </td> + {{/cells}} + </tr> + {{/row}} +</script> + +<!-- TPL Table thead --> +<script id="tpl-table-thead" type="text/template"> + <tr> + {{#hasSubItems}} + <th></th> + {{/hasSubItems}} + <th>#</th> + {{#items}} + <th class="{{dataType}} {{#key}}sortable{{/key}}" data-key="{{key}}" {{#sort}}data-order="{{#asc}}asc{{/asc}}{{^asc}}desc{{/asc}}"{{/sort}}> + {{label}} <i class="fa fa-{{^sort}}sort{{/sort}}{{#sort}}{{#asc}}caret-up{{/asc}}{{^asc}}caret-down{{/asc}}{{/sort}}"></i> + </th> + {{/items}} + </tr> +</script> + +<!-- TPL Panel Options DropDown --> +<script id="tpl-panel-opts" type="text/template"> + <li class="dropdown-header">{{ labels.chart_opts }}</li> + <li><a href="javascript:void(0);" data-panel="{{id}}" data-chart="{{showChart}}"><i class="fa fa-{{#showChart}}check-{{/showChart}}square-o"></i> {{labels.chart}}</a></li> + + {{#plot.length}} + <li class="dropdown-header">{{ labels.type }}</li> + <li><a href="javascript:void(0);" data-panel="{{id}}" data-chart-type="area-spline"><i class="fa fa-circle{{^area-spline}}-o{{/area-spline}}"></i> {{labels.area_spline}}</a></li> + <li><a href="javascript:void(0);" data-panel="{{id}}" data-chart-type="bar"><i class="fa fa-circle{{^bar}}-o{{/bar}}"></i> {{labels.bar}}</a></li> + <li class="dropdown-header">{{labels.plot_metric}}</li> + {{#plot}} + <li><a href="javascript:void(0);" data-panel="{{id}}" data-plot="{{className}}" class="panel-plot-{{className}}"><i class="fa fa-circle{{^selected}}-o{{/selected}}"></i> {{label}}</a></li> + {{/plot}} + {{/plot.length}} + + <li class="dropdown-header">{{labels.table_columns}}</li> + {{#items}} + <li><a href="javascript:void(0);" data-panel="{{id}}" data-metric="{{key}}"><i class="fa fa-{{^hide}}check-{{/hide}}square-o"></i> {{label}}</a></li> + {{/items}} +</script> + +<!-- TPL Table colgroup --> +<script id="tpl-table-colgroup" type="text/template"> + {{#hasSubItems}} + <col style="width: 2%;"> <!-- right-caret --> + {{/hasSubItems}} + <col style="width: 3%;"> <!-- row # --> + {{#items}} + <col style="width:{{colWidth}}"> + {{/items}} +</script> + +<!-- TPL Panel --> +<script id="tpl-panel" type="text/template"> + <div class="row"> + <div class="col-md-12"> + <div class="form-group clearfix panel-header"> + <h4 class="pull-left hidden-xs gheader" id="{{id}}">{{head}}<br><small>{{desc}}</small></h4> + <h5 class="pull-left visible-xs hidden-sm hidden-md hidden-lg gheader" id="{{id}}">{{head}}<br><small>{{desc}}</small></h5> + <div class="panel-plot-wrap"> + <div class="dropdown"> + <button class="btn btn-default btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true" data-panel="{{id}}"> + <i class="fa fa-gear"></i> {{labels.panel_opts}} <span class="fa fa-caret-down"></span> + </button> + <ul class="dropdown-menu dropdown-menu-right panel-opts-{{id}}"> + </ul> + </div> + </div> + </div> + </div> + </div> + {{#chart}} + <div class="row"> + <div class="col-md-12"> + <div id="chart-{{id}}" class="chart-wrap"></div> + </div> + </div> + {{/chart}} + {{#table}} + <div class="row clearfix table-wrapper {{#autoHideTables}}hidden-xs{{/autoHideTables}}"> + <div class="col-md-12"> + <div class="table-responsive"> + <table data-panel="{{id}}" class="table table-borderless table-hover table-{{id}}"> + <colgroup> + </colgroup> + <thead> + </thead> + <tbody class="tbody-meta"> + </tbody> + <tbody class="tbody-data"> + </tbody> + </table> + </div> + + <ul class="pagination pagination-sm pull-left"> + <li class="disabled"> + <a class="panel-first" href="javascript:void(0);" aria-label="{{labels.first}}" data-panel="{{id}}" title="{{labels.first}}"> + <i class="fa fa-angle-double-left"></i> + </a> + </li> + <li class="disabled"> + <a class="panel-prev" href="javascript:void(0);" aria-label="{{labels.previous}}" data-panel="{{id}}" title="{{labels.previous}}"> + <i class="fa fa-angle-left"></i> + </a> + </li> + <li> + <a class="panel-next" href="javascript:void(0);" aria-label="{{labels.next}}" data-panel="{{id}}" title="{{labels.next}}"> + <i class="fa fa-angle-right"></i> + </a> + </li> + <li> + <a class="panel-last" href="javascript:void(0);" aria-label="{{labels.last}}" data-panel="{{id}}" title="{{labels.last}}"> + <i class="fa fa-angle-double-right"></i> + </a> + </li> + </ul> + </div> + </div> + {{/table}} +</script> + +<!-- TPL Nav Bar wrapper --> +<script id="tpl-nav-wrap" type="text/template"> + <div class="nav-bars fa fa-bars"></div> + <div class="nav-gears fa fa-cog"></div> + <div class="nav-ws-status fa fa-circle"></div> + <div class="nav-list"></div> + <div class="powered hidden-xs hidden-sm">by <a href="https://goaccess.io/">GoAccess</a> <span>v{{version}}</span> and <a href="http://gwsocket.io/">GWSocket</a></div> +</script> + +<!-- TPL Nav Bar items --> +<script id="tpl-nav-menu" type="text/template"> + <h3>{{labels.panels}}</h3> + <ul> + <li {{#overall}}class="active"{{/overall}}><a href="#"><i class="fa fa-bar-chart"></i> {{labels.thead}}</a></li> + {{#nav}} + <li {{#current}}class="active"{{/current}}><a href="#{{key}}"><i class="fa fa-{{icon}}"></i> {{head}}</a></li> + {{/nav}} + </ul> +</script> + +<!-- TPL Nav Bar options --> +<script id="tpl-nav-opts" type="text/template"> + <h3><i class="fa fa-hashtag"></i> {{labels.theme}}</h3> + <ul> + <li {{#darkGray}}class="active"{{/darkGray}}> + <a href="javascript:void(0);" class="theme-dark-gray"><i class="fa fa-circle{{^darkGray}}-o{{/darkGray}}"></i> {{labels.dark_gray}}</a> + </li> + <li {{#bright}}class="active"{{/bright}}> + <a href="javascript:void(0);" class="theme-bright"><i class="fa fa-circle{{^bright}}-o{{/bright}}"></i> {{labels.bright}}</a> + </li> + <li {{#darkBlue}}class="active"{{/darkBlue}}> + <a href="javascript:void(0);" class="theme-dark-blue"><i class="fa fa-circle{{^darkBlue}}-o{{/darkBlue}}"></i> {{labels.dark_blue}}</a> + </li> + <li {{#darkPurple}}class="active"{{/darkPurple}}> + <a href="javascript:void(0);" class="theme-dark-purple"><i class="fa fa-circle{{^darkPurple}}-o{{/darkPurple}}"></i> {{labels.dark_purple}}</a> + </li> + </ul> + <h3><i class="fa fa-list-alt"></i> {{labels.panels}}</h3> + <ul class="perpage-wrap"> + <li class="dropdown-header"><i class="fa fa-list"></i> {{labels.items_per_page}}</li> + <li {{#perPage5}}class="active"{{/perPage5}}> + <a href="javascript:void(0);" data-perpage="5"><i class="fa fa-circle{{^perPage5}}-o{{/perPage5}}"></i> 5</a> + </li> + <li {{#perPage7}}class="active"{{/perPage7}}> + <a href="javascript:void(0);" data-perpage="7"><i class="fa fa-circle{{^perPage7}}-o{{/perPage7}}"></i> 7</a> + </li> + <li {{#perPage10}}class="active"{{/perPage10}}> + <a href="javascript:void(0);" data-perpage="10"><i class="fa fa-circle{{^perPage10}}-o{{/perPage10}}"></i> 10</a> + </li> + <li {{#perPage15}}class="active"{{/perPage15}}> + <a href="javascript:void(0);" data-perpage="15"><i class="fa fa-circle{{^perPage15}}-o{{/perPage15}}"></i> 15</a> + </li> + <li {{#perPage20}}class="active"{{/perPage20}}> + <a href="javascript:void(0);" data-perpage="20"><i class="fa fa-circle{{^perPage20}}-o{{/perPage20}}"></i> 20</a> + </li> + <li class="dropdown-header"><i class="fa fa-table"></i> {{labels.tables}}</li> + <li {{#showTables}}class="active"{{/showTables}}> + <a href="javascript:void(0);" data-show-tables="1"><i class="fa fa-{{#showTables}}check-{{/showTables}}square-o"></i> {{labels.display_tables}}</a> + </li> + <li {{#autoHideTables}}class="active"{{/autoHideTables}}> + <a href="javascript:void(0);" data-autohide-tables="1" title="{{labels.ah_small_title}}"> + <i class="fa fa-{{#autoHideTables}}check-{{/autoHideTables}}square-o"></i> {{labels.ah_small}} + </a> + </li> + </ul> + <h3><i class="fa fa-th-large"></i> {{labels.layout}}</h3> + <ul> + <li {{#horizontal}}class="active"{{/horizontal}}> + <a href="javascript:void(0);" class="layout-horizontal"><i class="fa fa-circle{{^horizontal}}-o{{/horizontal}}"></i> {{labels.horizontal}}</a> + </li> + <li {{#vertical}}class="active"{{/vertical}}> + <a href="javascript:void(0);" class="layout-vertical"><i class="fa fa-circle{{^vertical}}-o{{/vertical}}"></i> {{labels.vertical}}</a> + </li> + </ul> + <h3><i class="fa fa-cog"></i> {{labels.file_opts}}</h3> + <ul> + <li><a href="javascript:void(0);" class="export-json"><i class="fa fa-code"></i> {{labels.export_json}}</a></li> + </ul> +</script> + +<!-- TPL Chart tooltip --> +<script id="tpl-chart-tooltip" type="text/template"> + <table class="chart-tooltip"> + <tbody> + <tr> + <th colspan="2">{{data.0}}</th> + </tr> + <tr> + <td class="name"><span class="blue"></span>hits</td> + <td class="value">{{data.1}}</td> + </tr> + {{#data.2}} + <tr> + <td class="name"><span class="red"></span>visitors</td> + <td class="value">{{data.2}}</td> + </tr> + {{/data.2}} + </tbody> + </table> +</script> diff --git a/src/goaccess++/resources/tpls.html.tmp b/src/goaccess++/resources/tpls.html.tmp new file mode 100644 index 0000000..e864ed3 --- /dev/null +++ b/src/goaccess++/resources/tpls.html.tmp @@ -0,0 +1 @@ +<!-- TPL General --><script id="tpl-general" type="text/template"><h4 class="hidden-xs gheader">{{head}}<span class="pull-right">{{#from}}<span class="from">{{from}}</span>{{/from}}{{#to}} — <span class="to">{{to}}</span>{{/to}}</span></h4><h5 class="visible-xs hidden-sm hidden-md hidden-lg gheader">{{head}}  {{#from}}<span class="from">{{from}}</span>{{/from}}{{#to}} — <span class="to">{{to}}</span>{{/to}}</h5><div class="wrap-general-items"></div></script><!-- TPL General Items --><script id="tpl-general-items" type="text/template"><div class="col-md-2"><div class="grid-module {{#className}}{{className}}{{/className}}{{^className}}gray{{/className}}"><div class="col-title"><i class="fa fa-bar-chart"></i> {{#label}}{{label}}{{/label}}</div><h3 id="{{id}}" style="padding-top: 0;">{{value}}</h3></div></div></script><!-- TPL Panel Table --><script id="tpl-table-row" type="text/template">{{#rows}}<tr class="{{#className}}{{className}}{{/className}} {{#hasSubItems}}{{#items}}expandable{{/items}}{{/hasSubItems}}" {{#idx}}data-pid="{{idx}}"{{/idx}} data-panel="{{panel}}" {{#key}}data-key="{{key}}"{{/key}}>{{#hasSubItems}}<td class="row-expandable text-center {{#items}}clickable{{/items}}">{{#items}}<i class="fa {{#expanded}}fa-caret-down{{/expanded}}{{^expanded}}fa fa-caret-right{{/expanded}}"></i>{{/items}}{{^items}}<i></i>{{/items}}</td>{{/hasSubItems}}<td class="row-idx text-right">{{#idx}}{{idx}}{{/idx}}</td>{{#cells}}<td class="{{className}}" {{#colspan}}colspan="{{colspan}}"{{/colspan}}><span class="value">{{{value}}}</span>{{#percent}}<span class="percent"> ({{percent}})</span>{{/percent}}</td>{{/cells}}</tr>{{/rows}}</script><!-- TPL Panel Table Meta --><script id="tpl-table-row-meta" type="text/template">{{#row}}<tr>{{#hasSubItems}}<td class=""></td>{{/hasSubItems}}<td class=""></td>{{#cells}}<td class="{{className}}" {{#colspan}}colspan="{{colspan}}"{{/colspan}}>{{#value}}<h4 class="value"><span title="{{title}}">{{value}}</span>{{#label}}<small> {{label}}</small>{{/label}}{{#max}}<br><small>Max: {{max}}</small>{{/max}}{{#min}}<br><small>Min: {{min}}</small>{{/min}}</h4>{{/value}}</td>{{/cells}}</tr>{{/row}}</script><!-- TPL Table thead --><script id="tpl-table-thead" type="text/template"><tr>{{#hasSubItems}}<th></th>{{/hasSubItems}}<th>#</th>{{#items}}<th class="{{dataType}} {{#key}}sortable{{/key}}" data-key="{{key}}" {{#sort}}data-order="{{#asc}}asc{{/asc}}{{^asc}}desc{{/asc}}"{{/sort}}>{{label}} <i class="fa fa-{{^sort}}sort{{/sort}}{{#sort}}{{#asc}}caret-up{{/asc}}{{^asc}}caret-down{{/asc}}{{/sort}}"></i></th>{{/items}}</tr></script><!-- TPL Panel Options DropDown --><script id="tpl-panel-opts" type="text/template"><li class="dropdown-header">{{ labels.chart_opts }}</li><li><a href="javascript:void(0);" data-panel="{{id}}" data-chart="{{showChart}}"><i class="fa fa-{{#showChart}}check-{{/showChart}}square-o"></i> {{labels.chart}}</a></li>{{#plot.length}}<li class="dropdown-header">{{ labels.type }}</li><li><a href="javascript:void(0);" data-panel="{{id}}" data-chart-type="area-spline"><i class="fa fa-circle{{^area-spline}}-o{{/area-spline}}"></i> {{labels.area_spline}}</a></li><li><a href="javascript:void(0);" data-panel="{{id}}" data-chart-type="bar"><i class="fa fa-circle{{^bar}}-o{{/bar}}"></i> {{labels.bar}}</a></li><li class="dropdown-header">{{labels.plot_metric}}</li>{{#plot}}<li><a href="javascript:void(0);" data-panel="{{id}}" data-plot="{{className}}" class="panel-plot-{{className}}"><i class="fa fa-circle{{^selected}}-o{{/selected}}"></i> {{label}}</a></li>{{/plot}}{{/plot.length}}<li class="dropdown-header">{{labels.table_columns}}</li>{{#items}}<li><a href="javascript:void(0);" data-panel="{{id}}" data-metric="{{key}}"><i class="fa fa-{{^hide}}check-{{/hide}}square-o"></i> {{label}}</a></li>{{/items}}</script><!-- TPL Table colgroup --><script id="tpl-table-colgroup" type="text/template">{{#hasSubItems}}<col style="width: 2%;"> <!-- right-caret -->{{/hasSubItems}}<col style="width: 3%;"> <!-- row # -->{{#items}}<col style="width:{{colWidth}}">{{/items}}</script><!-- TPL Panel --><script id="tpl-panel" type="text/template"><div class="row"><div class="col-md-12"><div class="form-group clearfix panel-header"><h4 class="pull-left hidden-xs gheader" id="{{id}}">{{head}}<br><small>{{desc}}</small></h4><h5 class="pull-left visible-xs hidden-sm hidden-md hidden-lg gheader" id="{{id}}">{{head}}<br><small>{{desc}}</small></h5><div class="panel-plot-wrap"><div class="dropdown"><button class="btn btn-default btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true" data-panel="{{id}}"><i class="fa fa-gear"></i> {{labels.panel_opts}} <span class="fa fa-caret-down"></span></button><ul class="dropdown-menu dropdown-menu-right panel-opts-{{id}}"></ul></div></div></div></div></div>{{#chart}}<div class="row"><div class="col-md-12"><div id="chart-{{id}}" class="chart-wrap"></div></div></div>{{/chart}}{{#table}}<div class="row clearfix table-wrapper {{#autoHideTables}}hidden-xs{{/autoHideTables}}"><div class="col-md-12"><div class="table-responsive"><table data-panel="{{id}}" class="table table-borderless table-hover table-{{id}}"><colgroup></colgroup><thead></thead><tbody class="tbody-meta"></tbody><tbody class="tbody-data"></tbody></table></div><ul class="pagination pagination-sm pull-left"><li class="disabled"><a class="panel-first" href="javascript:void(0);" aria-label="{{labels.first}}" data-panel="{{id}}" title="{{labels.first}}"><i class="fa fa-angle-double-left"></i></a></li><li class="disabled"><a class="panel-prev" href="javascript:void(0);" aria-label="{{labels.previous}}" data-panel="{{id}}" title="{{labels.previous}}"><i class="fa fa-angle-left"></i></a></li><li><a class="panel-next" href="javascript:void(0);" aria-label="{{labels.next}}" data-panel="{{id}}" title="{{labels.next}}"><i class="fa fa-angle-right"></i></a></li><li><a class="panel-last" href="javascript:void(0);" aria-label="{{labels.last}}" data-panel="{{id}}" title="{{labels.last}}"><i class="fa fa-angle-double-right"></i></a></li></ul></div></div>{{/table}}</script><!-- TPL Nav Bar wrapper --><script id="tpl-nav-wrap" type="text/template"><div class="nav-bars fa fa-bars"></div><div class="nav-gears fa fa-cog"></div><div class="nav-ws-status fa fa-circle"></div><div class="nav-list"></div><div class="powered hidden-xs hidden-sm">by <a href="https://goaccess.io/">GoAccess</a> <span>v{{version}}</span> and <a href="http://gwsocket.io/">GWSocket</a></div></script><!-- TPL Nav Bar items --><script id="tpl-nav-menu" type="text/template"><h3>{{labels.panels}}</h3><ul><li {{#overall}}class="active"{{/overall}}><a href="#"><i class="fa fa-bar-chart"></i> {{labels.thead}}</a></li>{{#nav}}<li {{#current}}class="active"{{/current}}><a href="#{{key}}"><i class="fa fa-{{icon}}"></i> {{head}}</a></li>{{/nav}}</ul></script><!-- TPL Nav Bar options --><script id="tpl-nav-opts" type="text/template"><h3><i class="fa fa-hashtag"></i> {{labels.theme}}</h3><ul><li {{#darkGray}}class="active"{{/darkGray}}><a href="javascript:void(0);" class="theme-dark-gray"><i class="fa fa-circle{{^darkGray}}-o{{/darkGray}}"></i> {{labels.dark_gray}}</a></li><li {{#bright}}class="active"{{/bright}}><a href="javascript:void(0);" class="theme-bright"><i class="fa fa-circle{{^bright}}-o{{/bright}}"></i> {{labels.bright}}</a></li><li {{#darkBlue}}class="active"{{/darkBlue}}><a href="javascript:void(0);" class="theme-dark-blue"><i class="fa fa-circle{{^darkBlue}}-o{{/darkBlue}}"></i> {{labels.dark_blue}}</a></li><li {{#darkPurple}}class="active"{{/darkPurple}}><a href="javascript:void(0);" class="theme-dark-purple"><i class="fa fa-circle{{^darkPurple}}-o{{/darkPurple}}"></i> {{labels.dark_purple}}</a></li></ul><h3><i class="fa fa-list-alt"></i> {{labels.panels}}</h3><ul class="perpage-wrap"><li class="dropdown-header"><i class="fa fa-list"></i> {{labels.items_per_page}}</li><li {{#perPage5}}class="active"{{/perPage5}}><a href="javascript:void(0);" data-perpage="5"><i class="fa fa-circle{{^perPage5}}-o{{/perPage5}}"></i> 5</a></li><li {{#perPage7}}class="active"{{/perPage7}}><a href="javascript:void(0);" data-perpage="7"><i class="fa fa-circle{{^perPage7}}-o{{/perPage7}}"></i> 7</a></li><li {{#perPage10}}class="active"{{/perPage10}}><a href="javascript:void(0);" data-perpage="10"><i class="fa fa-circle{{^perPage10}}-o{{/perPage10}}"></i> 10</a></li><li {{#perPage15}}class="active"{{/perPage15}}><a href="javascript:void(0);" data-perpage="15"><i class="fa fa-circle{{^perPage15}}-o{{/perPage15}}"></i> 15</a></li><li {{#perPage20}}class="active"{{/perPage20}}><a href="javascript:void(0);" data-perpage="20"><i class="fa fa-circle{{^perPage20}}-o{{/perPage20}}"></i> 20</a></li><li class="dropdown-header"><i class="fa fa-table"></i> {{labels.tables}}</li><li {{#showTables}}class="active"{{/showTables}}><a href="javascript:void(0);" data-show-tables="1"><i class="fa fa-{{#showTables}}check-{{/showTables}}square-o"></i> {{labels.display_tables}}</a></li><li {{#autoHideTables}}class="active"{{/autoHideTables}}><a href="javascript:void(0);" data-autohide-tables="1" title="{{labels.ah_small_title}}"><i class="fa fa-{{#autoHideTables}}check-{{/autoHideTables}}square-o"></i> {{labels.ah_small}}</a></li></ul><h3><i class="fa fa-th-large"></i> {{labels.layout}}</h3><ul><li {{#horizontal}}class="active"{{/horizontal}}><a href="javascript:void(0);" class="layout-horizontal"><i class="fa fa-circle{{^horizontal}}-o{{/horizontal}}"></i> {{labels.horizontal}}</a></li><li {{#vertical}}class="active"{{/vertical}}><a href="javascript:void(0);" class="layout-vertical"><i class="fa fa-circle{{^vertical}}-o{{/vertical}}"></i> {{labels.vertical}}</a></li></ul><h3><i class="fa fa-cog"></i> {{labels.file_opts}}</h3><ul><li><a href="javascript:void(0);" class="export-json"><i class="fa fa-code"></i> {{labels.export_json}}</a></li></ul></script><!-- TPL Chart tooltip --><script id="tpl-chart-tooltip" type="text/template"><table class="chart-tooltip"><tbody><tr><th colspan="2">{{data.0}}</th></tr><tr><td class="name"><span class="blue"></span>hits</td><td class="value">{{data.1}}</td></tr>{{#data.2}}<tr><td class="name"><span class="red"></span>visitors</td><td class="value">{{data.2}}</td></tr>{{/data.2}}</tbody></table></script> \ No newline at end of file diff --git a/src/goaccess++/src/.deps/.dirstamp b/src/goaccess++/src/.deps/.dirstamp new file mode 100644 index 0000000..e69de29 diff --git a/src/goaccess++/src/.deps/base64.Po b/src/goaccess++/src/.deps/base64.Po new file mode 100644 index 0000000..9cd55dd --- /dev/null +++ b/src/goaccess++/src/.deps/base64.Po @@ -0,0 +1,151 @@ +src/base64.o: src/base64.c /usr/include/stdc-predef.h \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/base64.h + +/usr/include/stdc-predef.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +src/base64.h: diff --git a/src/goaccess++/src/.deps/bin2c.Po b/src/goaccess++/src/.deps/bin2c.Po new file mode 100644 index 0000000..d42955d --- /dev/null +++ b/src/goaccess++/src/.deps/bin2c.Po @@ -0,0 +1,185 @@ +src/bin2c.o: src/bin2c.c /usr/include/stdc-predef.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/assert.h + +/usr/include/stdc-predef.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/assert.h: diff --git a/src/goaccess++/src/.deps/browsers.Po b/src/goaccess++/src/.deps/browsers.Po new file mode 100644 index 0000000..d512671 --- /dev/null +++ b/src/goaccess++/src/.deps/browsers.Po @@ -0,0 +1,250 @@ +src/browsers.o: src/browsers.c /usr/include/stdc-predef.h \ + /usr/include/errno.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/browsers.h \ + src/error.h src/commons.h src/config.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/curses.h \ + /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/util.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/errno.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +src/browsers.h: + +src/error.h: + +src/commons.h: + +src/config.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/color.Po b/src/goaccess++/src/.deps/color.Po new file mode 100644 index 0000000..5299254 --- /dev/null +++ b/src/goaccess++/src/.deps/color.Po @@ -0,0 +1,253 @@ +src/color.o: src/color.c /usr/include/stdc-predef.h src/config.h \ + /usr/include/errno.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/color.h \ + src/commons.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/gslist.h src/util.h \ + src/xmalloc.h + +/usr/include/stdc-predef.h: + +src/config.h: + +/usr/include/errno.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +src/color.h: + +src/commons.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/gslist.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/commons.Po b/src/goaccess++/src/.deps/commons.Po new file mode 100644 index 0000000..38334b5 --- /dev/null +++ b/src/goaccess++/src/.deps/commons.Po @@ -0,0 +1,264 @@ +src/commons.o: src/commons.c /usr/include/stdc-predef.h src/config.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/time.h /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h src/commons.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/labels.h /usr/include/libintl.h \ + /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \ + src/util.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +src/config.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +src/commons.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/csv.Po b/src/goaccess++/src/.deps/csv.Po new file mode 100644 index 0000000..2ff32fa --- /dev/null +++ b/src/goaccess++/src/.deps/csv.Po @@ -0,0 +1,344 @@ +src/csv.o: src/csv.c /usr/include/stdc-predef.h /usr/include/ctype.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h /usr/include/inttypes.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h src/csv.h src/config.h \ + src/parser.h src/commons.h src/settings.h src/gkhash.h src/gslist.h \ + src/gstorage.h src/khash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/ui.h /usr/include/pthread.h \ + /usr/include/sched.h /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h src/labels.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h src/color.h src/sort.h \ + src/util.h + +/usr/include/stdc-predef.h: + +/usr/include/ctype.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +/usr/include/inttypes.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +src/csv.h: + +src/config.h: + +src/parser.h: + +src/commons.h: + +src/settings.h: + +src/gkhash.h: + +src/gslist.h: + +src/gstorage.h: + +src/khash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/ui.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: + +/usr/include/x86_64-linux-gnu/bits/cpu-set.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/color.h: + +src/sort.h: + +src/util.h: diff --git a/src/goaccess++/src/.deps/error.Po b/src/goaccess++/src/.deps/error.Po new file mode 100644 index 0000000..38cff93 --- /dev/null +++ b/src/goaccess++/src/.deps/error.Po @@ -0,0 +1,313 @@ +src/error.o: src/error.c /usr/include/stdc-predef.h src/config.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/signal.h \ + /usr/include/x86_64-linux-gnu/bits/signum.h \ + /usr/include/x86_64-linux-gnu/bits/signum-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-arch.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h \ + /usr/include/x86_64-linux-gnu/bits/sigevent-consts.h \ + /usr/include/x86_64-linux-gnu/bits/sigaction.h \ + /usr/include/x86_64-linux-gnu/bits/sigcontext.h \ + /usr/include/x86_64-linux-gnu/bits/types/stack_t.h \ + /usr/include/x86_64-linux-gnu/sys/ucontext.h \ + /usr/include/x86_64-linux-gnu/bits/sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/ss_flags.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigthread.h \ + /usr/include/x86_64-linux-gnu/bits/signal_ext.h /usr/include/execinfo.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h src/error.h \ + src/commons.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/curses.h \ + /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/labels.h /usr/include/libintl.h \ + /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \ + src/parser.h + +/usr/include/stdc-predef.h: + +src/config.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/signal.h: + +/usr/include/x86_64-linux-gnu/bits/signum.h: + +/usr/include/x86_64-linux-gnu/bits/signum-generic.h: + +/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h: + +/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h: + +/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h: + +/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h: + +/usr/include/x86_64-linux-gnu/bits/sigaction.h: + +/usr/include/x86_64-linux-gnu/bits/sigcontext.h: + +/usr/include/x86_64-linux-gnu/bits/types/stack_t.h: + +/usr/include/x86_64-linux-gnu/sys/ucontext.h: + +/usr/include/x86_64-linux-gnu/bits/sigstack.h: + +/usr/include/x86_64-linux-gnu/bits/ss_flags.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h: + +/usr/include/x86_64-linux-gnu/bits/sigthread.h: + +/usr/include/x86_64-linux-gnu/bits/signal_ext.h: + +/usr/include/execinfo.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +src/error.h: + +src/commons.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/parser.h: diff --git a/src/goaccess++/src/.deps/gdashboard.Po b/src/goaccess++/src/.deps/gdashboard.Po new file mode 100644 index 0000000..b095058 --- /dev/null +++ b/src/goaccess++/src/.deps/gdashboard.Po @@ -0,0 +1,312 @@ +src/gdashboard.o: src/gdashboard.c /usr/include/stdc-predef.h \ + /usr/include/ctype.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h /usr/include/regex.h \ + src/gdashboard.h src/config.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h src/ui.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/unctrl.h \ + /usr/include/curses.h /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h src/labels.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h src/color.h src/commons.h \ + src/sort.h src/parser.h src/gkhash.h src/gslist.h src/gstorage.h \ + src/khash.h /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h src/error.h src/settings.h \ + src/util.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/ctype.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +/usr/include/regex.h: + +src/gdashboard.h: + +src/config.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +src/ui.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/types/wint_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: + +/usr/include/x86_64-linux-gnu/bits/cpu-set.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/color.h: + +src/commons.h: + +src/sort.h: + +src/parser.h: + +src/gkhash.h: + +src/gslist.h: + +src/gstorage.h: + +src/khash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/x86_64-linux-gnu/bits/xopen_lim.h: + +/usr/include/x86_64-linux-gnu/bits/uio_lim.h: + +src/error.h: + +src/settings.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/gdns.Po b/src/goaccess++/src/.deps/gdns.Po new file mode 100644 index 0000000..404afec --- /dev/null +++ b/src/goaccess++/src/.deps/gdns.Po @@ -0,0 +1,414 @@ +src/gdns.o: src/gdns.c /usr/include/stdc-predef.h src/config.h \ + /usr/include/pthread.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h /usr/include/arpa/inet.h \ + /usr/include/ctype.h /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/netdb.h /usr/include/rpc/netdb.h \ + /usr/include/x86_64-linux-gnu/bits/netdb.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h src/gdns.h src/gkhash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h src/gslist.h src/gstorage.h \ + src/commons.h src/khash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h src/parser.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/goaccess.h src/ui.h \ + src/labels.h /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h src/color.h src/sort.h \ + src/util.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +src/config.h: + +/usr/include/pthread.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: + +/usr/include/x86_64-linux-gnu/bits/cpu-set.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/netinet/in.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/x86_64-linux-gnu/sys/socket.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h: + +/usr/include/x86_64-linux-gnu/bits/socket.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/socket_type.h: + +/usr/include/x86_64-linux-gnu/bits/sockaddr.h: + +/usr/include/x86_64-linux-gnu/asm/socket.h: + +/usr/include/asm-generic/socket.h: + +/usr/include/linux/posix_types.h: + +/usr/include/linux/stddef.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types_64.h: + +/usr/include/asm-generic/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/bitsperlong.h: + +/usr/include/asm-generic/bitsperlong.h: + +/usr/include/x86_64-linux-gnu/asm/sockios.h: + +/usr/include/asm-generic/sockios.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h: + +/usr/include/x86_64-linux-gnu/bits/socket2.h: + +/usr/include/x86_64-linux-gnu/bits/in.h: + +/usr/include/arpa/inet.h: + +/usr/include/ctype.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/netdb.h: + +/usr/include/rpc/netdb.h: + +/usr/include/x86_64-linux-gnu/bits/netdb.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +src/gdns.h: + +src/gkhash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +src/gslist.h: + +src/gstorage.h: + +src/commons.h: + +src/khash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +src/parser.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/goaccess.h: + +src/ui.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/color.h: + +src/sort.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/geoip1.Po b/src/goaccess++/src/.deps/geoip1.Po new file mode 100644 index 0000000..8539f92 --- /dev/null +++ b/src/goaccess++/src/.deps/geoip1.Po @@ -0,0 +1,304 @@ +src/geoip1.o: src/geoip1.c /usr/include/stdc-predef.h src/config.h \ + /usr/include/GeoIP.h /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/arpa/inet.h /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h /usr/include/GeoIPCity.h \ + /usr/include/GeoIP.h src/geoip1.h src/commons.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/util.h + +/usr/include/stdc-predef.h: + +src/config.h: + +/usr/include/GeoIP.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/arpa/inet.h: + +/usr/include/netinet/in.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/x86_64-linux-gnu/sys/socket.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h: + +/usr/include/x86_64-linux-gnu/bits/socket.h: + +/usr/include/x86_64-linux-gnu/bits/socket_type.h: + +/usr/include/x86_64-linux-gnu/bits/sockaddr.h: + +/usr/include/x86_64-linux-gnu/asm/socket.h: + +/usr/include/asm-generic/socket.h: + +/usr/include/linux/posix_types.h: + +/usr/include/linux/stddef.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types_64.h: + +/usr/include/asm-generic/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/bitsperlong.h: + +/usr/include/asm-generic/bitsperlong.h: + +/usr/include/x86_64-linux-gnu/asm/sockios.h: + +/usr/include/asm-generic/sockios.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h: + +/usr/include/x86_64-linux-gnu/bits/socket2.h: + +/usr/include/x86_64-linux-gnu/bits/in.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +/usr/include/GeoIPCity.h: + +/usr/include/GeoIP.h: + +src/geoip1.h: + +src/commons.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/util.h: diff --git a/src/goaccess++/src/.deps/geoip2.Po b/src/goaccess++/src/.deps/geoip2.Po new file mode 100644 index 0000000..9ce06a8 --- /dev/null +++ b/src/goaccess++/src/.deps/geoip2.Po @@ -0,0 +1 @@ +# dummy diff --git a/src/goaccess++/src/.deps/gholder.Po b/src/goaccess++/src/.deps/gholder.Po new file mode 100644 index 0000000..4df1970 --- /dev/null +++ b/src/goaccess++/src/.deps/gholder.Po @@ -0,0 +1,348 @@ +src/gholder.o: src/gholder.c /usr/include/stdc-predef.h \ + /usr/include/pthread.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h /usr/include/arpa/inet.h \ + src/gkhash.h /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \ + src/gslist.h src/gstorage.h src/commons.h src/config.h src/khash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h src/parser.h \ + src/geoip1.h src/gholder.h src/sort.h src/error.h /usr/include/curses.h \ + /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/gdns.h src/util.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/pthread.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: + +/usr/include/x86_64-linux-gnu/bits/cpu-set.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/netinet/in.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/x86_64-linux-gnu/sys/socket.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h: + +/usr/include/x86_64-linux-gnu/bits/socket.h: + +/usr/include/x86_64-linux-gnu/bits/socket_type.h: + +/usr/include/x86_64-linux-gnu/bits/sockaddr.h: + +/usr/include/x86_64-linux-gnu/asm/socket.h: + +/usr/include/asm-generic/socket.h: + +/usr/include/linux/posix_types.h: + +/usr/include/linux/stddef.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types_64.h: + +/usr/include/asm-generic/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/bitsperlong.h: + +/usr/include/asm-generic/bitsperlong.h: + +/usr/include/x86_64-linux-gnu/asm/sockios.h: + +/usr/include/asm-generic/sockios.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h: + +/usr/include/x86_64-linux-gnu/bits/socket2.h: + +/usr/include/x86_64-linux-gnu/bits/in.h: + +/usr/include/arpa/inet.h: + +src/gkhash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +src/gslist.h: + +src/gstorage.h: + +src/commons.h: + +src/config.h: + +src/khash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +src/parser.h: + +src/geoip1.h: + +src/gholder.h: + +src/sort.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/gdns.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/gkhash.Po b/src/goaccess++/src/.deps/gkhash.Po new file mode 100644 index 0000000..2409eab --- /dev/null +++ b/src/goaccess++/src/.deps/gkhash.Po @@ -0,0 +1,280 @@ +src/gkhash.o: src/gkhash.c /usr/include/stdc-predef.h src/config.h \ + /usr/include/errno.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/gkhash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h src/gslist.h \ + src/gstorage.h src/commons.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h src/khash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h src/parser.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/sort.h src/util.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +src/config.h: + +/usr/include/errno.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +src/gkhash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +src/gslist.h: + +src/gstorage.h: + +src/commons.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +src/khash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +src/parser.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/sort.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/gmenu.Po b/src/goaccess++/src/.deps/gmenu.Po new file mode 100644 index 0000000..75a2ac0 --- /dev/null +++ b/src/goaccess++/src/.deps/gmenu.Po @@ -0,0 +1,264 @@ +src/gmenu.o: src/gmenu.c /usr/include/stdc-predef.h /usr/include/ctype.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/gmenu.h \ + src/config.h /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/xmalloc.h src/ui.h /usr/include/pthread.h \ + /usr/include/sched.h /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h src/labels.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h src/color.h src/commons.h \ + src/sort.h src/parser.h + +/usr/include/stdc-predef.h: + +/usr/include/ctype.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +src/gmenu.h: + +src/config.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/xmalloc.h: + +src/ui.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: + +/usr/include/x86_64-linux-gnu/bits/cpu-set.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/color.h: + +src/commons.h: + +src/sort.h: + +src/parser.h: diff --git a/src/goaccess++/src/.deps/goaccess.Po b/src/goaccess++/src/.deps/goaccess.Po new file mode 100644 index 0000000..a4246bb --- /dev/null +++ b/src/goaccess++/src/.deps/goaccess.Po @@ -0,0 +1,497 @@ +src/goaccess.o: src/goaccess.c /usr/include/stdc-predef.h \ + /usr/include/assert.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/locale.h /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h src/config.h \ + /usr/include/fcntl.h /usr/include/x86_64-linux-gnu/bits/fcntl.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl2.h /usr/include/pthread.h \ + /usr/include/sched.h /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/signal.h \ + /usr/include/x86_64-linux-gnu/bits/signum.h \ + /usr/include/x86_64-linux-gnu/bits/signum-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-arch.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h \ + /usr/include/x86_64-linux-gnu/bits/sigevent-consts.h \ + /usr/include/x86_64-linux-gnu/bits/sigaction.h \ + /usr/include/x86_64-linux-gnu/bits/sigcontext.h \ + /usr/include/x86_64-linux-gnu/bits/types/stack_t.h \ + /usr/include/x86_64-linux-gnu/sys/ucontext.h \ + /usr/include/x86_64-linux-gnu/bits/sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/ss_flags.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigthread.h \ + /usr/include/x86_64-linux-gnu/bits/signal_ext.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h src/gkhash.h \ + src/gslist.h src/gstorage.h src/commons.h src/khash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h src/parser.h \ + src/geoip1.h src/browsers.h src/csv.h src/settings.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/gdashboard.h src/ui.h src/labels.h \ + /usr/include/libintl.h src/color.h src/sort.h src/gdns.h src/gholder.h \ + src/goaccess.h src/gwsocket.h src/websocket.h /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h src/json.h src/options.h \ + src/output.h src/util.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/assert.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/locale.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/config.h: + +/usr/include/fcntl.h: + +/usr/include/x86_64-linux-gnu/bits/fcntl.h: + +/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +/usr/include/x86_64-linux-gnu/bits/fcntl2.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: + +/usr/include/x86_64-linux-gnu/bits/cpu-set.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/signal.h: + +/usr/include/x86_64-linux-gnu/bits/signum.h: + +/usr/include/x86_64-linux-gnu/bits/signum-generic.h: + +/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h: + +/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h: + +/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h: + +/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h: + +/usr/include/x86_64-linux-gnu/bits/sigaction.h: + +/usr/include/x86_64-linux-gnu/bits/sigcontext.h: + +/usr/include/x86_64-linux-gnu/bits/types/stack_t.h: + +/usr/include/x86_64-linux-gnu/sys/ucontext.h: + +/usr/include/x86_64-linux-gnu/bits/sigstack.h: + +/usr/include/x86_64-linux-gnu/bits/ss_flags.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h: + +/usr/include/x86_64-linux-gnu/bits/sigthread.h: + +/usr/include/x86_64-linux-gnu/bits/signal_ext.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +src/gkhash.h: + +src/gslist.h: + +src/gstorage.h: + +src/commons.h: + +src/khash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +src/parser.h: + +src/geoip1.h: + +src/browsers.h: + +src/csv.h: + +src/settings.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/gdashboard.h: + +src/ui.h: + +src/labels.h: + +/usr/include/libintl.h: + +src/color.h: + +src/sort.h: + +src/gdns.h: + +src/gholder.h: + +src/goaccess.h: + +src/gwsocket.h: + +src/websocket.h: + +/usr/include/netinet/in.h: + +/usr/include/x86_64-linux-gnu/sys/socket.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h: + +/usr/include/x86_64-linux-gnu/bits/socket.h: + +/usr/include/x86_64-linux-gnu/bits/socket_type.h: + +/usr/include/x86_64-linux-gnu/bits/sockaddr.h: + +/usr/include/x86_64-linux-gnu/asm/socket.h: + +/usr/include/asm-generic/socket.h: + +/usr/include/linux/posix_types.h: + +/usr/include/linux/stddef.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types_64.h: + +/usr/include/asm-generic/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/bitsperlong.h: + +/usr/include/asm-generic/bitsperlong.h: + +/usr/include/x86_64-linux-gnu/asm/sockios.h: + +/usr/include/asm-generic/sockios.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h: + +/usr/include/x86_64-linux-gnu/bits/socket2.h: + +/usr/include/x86_64-linux-gnu/bits/in.h: + +src/json.h: + +src/options.h: + +src/output.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/gslist.Po b/src/goaccess++/src/.deps/gslist.Po new file mode 100644 index 0000000..3e7e4bb --- /dev/null +++ b/src/goaccess++/src/.deps/gslist.Po @@ -0,0 +1,191 @@ +src/gslist.o: src/gslist.c /usr/include/stdc-predef.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/ctype.h src/gslist.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/ctype.h: + +src/gslist.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/gstorage.Po b/src/goaccess++/src/.deps/gstorage.Po new file mode 100644 index 0000000..fc5ad28 --- /dev/null +++ b/src/goaccess++/src/.deps/gstorage.Po @@ -0,0 +1,260 @@ +src/gstorage.o: src/gstorage.c /usr/include/stdc-predef.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/gkhash.h \ + src/gslist.h src/gstorage.h src/commons.h src/config.h \ + /usr/include/time.h /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h src/khash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h src/parser.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +src/gkhash.h: + +src/gslist.h: + +src/gstorage.h: + +src/commons.h: + +src/config.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +src/khash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +src/parser.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/gwsocket.Po b/src/goaccess++/src/.deps/gwsocket.Po new file mode 100644 index 0000000..50e1d7f --- /dev/null +++ b/src/goaccess++/src/.deps/gwsocket.Po @@ -0,0 +1,469 @@ +src/gwsocket.o: src/gwsocket.c /usr/include/stdc-predef.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/signal.h \ + /usr/include/x86_64-linux-gnu/bits/signum.h \ + /usr/include/x86_64-linux-gnu/bits/signum-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-arch.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h \ + /usr/include/x86_64-linux-gnu/bits/sigevent-consts.h \ + /usr/include/x86_64-linux-gnu/bits/sigaction.h \ + /usr/include/x86_64-linux-gnu/bits/sigcontext.h \ + /usr/include/x86_64-linux-gnu/bits/types/stack_t.h \ + /usr/include/x86_64-linux-gnu/sys/ucontext.h \ + /usr/include/x86_64-linux-gnu/bits/sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/ss_flags.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/sigthread.h \ + /usr/include/x86_64-linux-gnu/bits/signal_ext.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/fcntl.h /usr/include/x86_64-linux-gnu/bits/fcntl.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl2.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h src/gwsocket.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h src/websocket.h \ + /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h src/gslist.h \ + src/commons.h src/config.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/goaccess.h src/ui.h \ + src/labels.h /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h src/color.h src/sort.h \ + src/parser.h src/json.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/signal.h: + +/usr/include/x86_64-linux-gnu/bits/signum.h: + +/usr/include/x86_64-linux-gnu/bits/signum-generic.h: + +/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h: + +/usr/include/x86_64-linux-gnu/bits/siginfo-arch.h: + +/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h: + +/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h: + +/usr/include/x86_64-linux-gnu/bits/sigaction.h: + +/usr/include/x86_64-linux-gnu/bits/sigcontext.h: + +/usr/include/x86_64-linux-gnu/bits/types/stack_t.h: + +/usr/include/x86_64-linux-gnu/sys/ucontext.h: + +/usr/include/x86_64-linux-gnu/bits/sigstack.h: + +/usr/include/x86_64-linux-gnu/bits/ss_flags.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/x86_64-linux-gnu/bits/sigthread.h: + +/usr/include/x86_64-linux-gnu/bits/signal_ext.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/fcntl.h: + +/usr/include/x86_64-linux-gnu/bits/fcntl.h: + +/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +/usr/include/x86_64-linux-gnu/bits/fcntl2.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +src/gwsocket.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: + +/usr/include/x86_64-linux-gnu/bits/cpu-set.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +src/websocket.h: + +/usr/include/netinet/in.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/x86_64-linux-gnu/sys/socket.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h: + +/usr/include/x86_64-linux-gnu/bits/socket.h: + +/usr/include/x86_64-linux-gnu/bits/socket_type.h: + +/usr/include/x86_64-linux-gnu/bits/sockaddr.h: + +/usr/include/x86_64-linux-gnu/asm/socket.h: + +/usr/include/asm-generic/socket.h: + +/usr/include/linux/posix_types.h: + +/usr/include/linux/stddef.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types_64.h: + +/usr/include/asm-generic/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/bitsperlong.h: + +/usr/include/asm-generic/bitsperlong.h: + +/usr/include/x86_64-linux-gnu/asm/sockios.h: + +/usr/include/asm-generic/sockios.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h: + +/usr/include/x86_64-linux-gnu/bits/socket2.h: + +/usr/include/x86_64-linux-gnu/bits/in.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +src/gslist.h: + +src/commons.h: + +src/config.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/goaccess.h: + +src/ui.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/color.h: + +src/sort.h: + +src/parser.h: + +src/json.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/json.Po b/src/goaccess++/src/.deps/json.Po new file mode 100644 index 0000000..3a2c909 --- /dev/null +++ b/src/goaccess++/src/.deps/json.Po @@ -0,0 +1,406 @@ +src/json.o: src/json.c /usr/include/stdc-predef.h /usr/include/errno.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h /usr/include/inttypes.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h src/json.h \ + src/config.h src/parser.h src/commons.h src/gkhash.h src/gslist.h \ + src/gstorage.h src/khash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/ui.h /usr/include/pthread.h \ + /usr/include/sched.h /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h src/labels.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h src/color.h src/sort.h \ + src/util.h src/websocket.h /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/errno.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +/usr/include/inttypes.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +src/json.h: + +src/config.h: + +src/parser.h: + +src/commons.h: + +src/gkhash.h: + +src/gslist.h: + +src/gstorage.h: + +src/khash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/ui.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: + +/usr/include/x86_64-linux-gnu/bits/cpu-set.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/color.h: + +src/sort.h: + +src/util.h: + +src/websocket.h: + +/usr/include/netinet/in.h: + +/usr/include/x86_64-linux-gnu/sys/socket.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h: + +/usr/include/x86_64-linux-gnu/bits/socket.h: + +/usr/include/x86_64-linux-gnu/bits/socket_type.h: + +/usr/include/x86_64-linux-gnu/bits/sockaddr.h: + +/usr/include/x86_64-linux-gnu/asm/socket.h: + +/usr/include/asm-generic/socket.h: + +/usr/include/linux/posix_types.h: + +/usr/include/linux/stddef.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types_64.h: + +/usr/include/asm-generic/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/bitsperlong.h: + +/usr/include/asm-generic/bitsperlong.h: + +/usr/include/x86_64-linux-gnu/asm/sockios.h: + +/usr/include/asm-generic/sockios.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h: + +/usr/include/x86_64-linux-gnu/bits/socket2.h: + +/usr/include/x86_64-linux-gnu/bits/in.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/opesys.Po b/src/goaccess++/src/.deps/opesys.Po new file mode 100644 index 0000000..726c11a --- /dev/null +++ b/src/goaccess++/src/.deps/opesys.Po @@ -0,0 +1,238 @@ +src/opesys.o: src/opesys.c /usr/include/stdc-predef.h \ + /usr/include/ctype.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/opesys.h \ + src/settings.h /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h src/commons.h \ + src/config.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h src/util.h \ + src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/ctype.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +src/opesys.h: + +src/settings.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +src/commons.h: + +src/config.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/options.Po b/src/goaccess++/src/.deps/options.Po new file mode 100644 index 0000000..bda2d63 --- /dev/null +++ b/src/goaccess++/src/.deps/options.Po @@ -0,0 +1,336 @@ +src/options.o: src/options.c /usr/include/stdc-predef.h src/config.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/getopt.h /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_ext.h /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/GeoIP.h /usr/include/arpa/inet.h /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h src/options.h src/error.h \ + src/commons.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h /usr/include/curses.h \ + /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/labels.h /usr/include/libintl.h \ + /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \ + src/util.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +src/config.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/getopt.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_ext.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/GeoIP.h: + +/usr/include/arpa/inet.h: + +/usr/include/netinet/in.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/x86_64-linux-gnu/sys/socket.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h: + +/usr/include/x86_64-linux-gnu/bits/socket.h: + +/usr/include/x86_64-linux-gnu/bits/socket_type.h: + +/usr/include/x86_64-linux-gnu/bits/sockaddr.h: + +/usr/include/x86_64-linux-gnu/asm/socket.h: + +/usr/include/asm-generic/socket.h: + +/usr/include/linux/posix_types.h: + +/usr/include/linux/stddef.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types_64.h: + +/usr/include/asm-generic/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/bitsperlong.h: + +/usr/include/asm-generic/bitsperlong.h: + +/usr/include/x86_64-linux-gnu/asm/sockios.h: + +/usr/include/asm-generic/sockios.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h: + +/usr/include/x86_64-linux-gnu/bits/socket2.h: + +/usr/include/x86_64-linux-gnu/bits/in.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +src/options.h: + +src/error.h: + +src/commons.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/output.Po b/src/goaccess++/src/.deps/output.Po new file mode 100644 index 0000000..84dea80 --- /dev/null +++ b/src/goaccess++/src/.deps/output.Po @@ -0,0 +1,398 @@ +src/output.o: src/output.c /usr/include/stdc-predef.h \ + /usr/include/errno.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/output.h \ + src/config.h src/commons.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h src/parser.h \ + src/gkhash.h src/gslist.h src/gstorage.h src/khash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/gwsocket.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h src/websocket.h \ + /usr/include/netinet/in.h /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h src/json.h src/ui.h src/labels.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h src/color.h src/sort.h \ + src/util.h src/xmalloc.h src/tpls.h src/bootstrapcss.h src/facss.h \ + src/appcss.h src/d3js.h src/hoganjs.h src/chartsjs.h src/appjs.h + +/usr/include/stdc-predef.h: + +/usr/include/errno.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +src/output.h: + +src/config.h: + +src/commons.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +src/parser.h: + +src/gkhash.h: + +src/gslist.h: + +src/gstorage.h: + +src/khash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/gwsocket.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: + +/usr/include/x86_64-linux-gnu/bits/cpu-set.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +src/websocket.h: + +/usr/include/netinet/in.h: + +/usr/include/x86_64-linux-gnu/sys/socket.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h: + +/usr/include/x86_64-linux-gnu/bits/socket.h: + +/usr/include/x86_64-linux-gnu/bits/socket_type.h: + +/usr/include/x86_64-linux-gnu/bits/sockaddr.h: + +/usr/include/x86_64-linux-gnu/asm/socket.h: + +/usr/include/asm-generic/socket.h: + +/usr/include/linux/posix_types.h: + +/usr/include/linux/stddef.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types_64.h: + +/usr/include/asm-generic/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/bitsperlong.h: + +/usr/include/asm-generic/bitsperlong.h: + +/usr/include/x86_64-linux-gnu/asm/sockios.h: + +/usr/include/asm-generic/sockios.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h: + +/usr/include/x86_64-linux-gnu/bits/socket2.h: + +/usr/include/x86_64-linux-gnu/bits/in.h: + +src/json.h: + +src/ui.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/color.h: + +src/sort.h: + +src/util.h: + +src/xmalloc.h: + +src/tpls.h: + +src/bootstrapcss.h: + +src/facss.h: + +src/appcss.h: + +src/d3js.h: + +src/hoganjs.h: + +src/chartsjs.h: + +src/appjs.h: diff --git a/src/goaccess++/src/.deps/parser.Po b/src/goaccess++/src/.deps/parser.Po new file mode 100644 index 0000000..fddf0f5 --- /dev/null +++ b/src/goaccess++/src/.deps/parser.Po @@ -0,0 +1,375 @@ +src/parser.o: src/parser.c /usr/include/stdc-predef.h \ + /usr/include/ctype.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + src/config.h /usr/include/arpa/inet.h /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket-constants.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/strings.h /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h src/gkhash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h src/gslist.h src/gstorage.h \ + src/commons.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h src/khash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h src/parser.h src/geoip1.h \ + src/browsers.h src/goaccess.h src/ui.h /usr/include/curses.h \ + /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/unctrl.h \ + /usr/include/curses.h /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h src/labels.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h src/color.h src/sort.h \ + src/error.h src/settings.h src/opesys.h src/util.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/ctype.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +src/config.h: + +/usr/include/arpa/inet.h: + +/usr/include/netinet/in.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/x86_64-linux-gnu/sys/socket.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/socket.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/x86_64-linux-gnu/bits/socket_type.h: + +/usr/include/x86_64-linux-gnu/bits/sockaddr.h: + +/usr/include/x86_64-linux-gnu/bits/socket-constants.h: + +/usr/include/x86_64-linux-gnu/bits/socket2.h: + +/usr/include/x86_64-linux-gnu/bits/in.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +src/gkhash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +src/gslist.h: + +src/gstorage.h: + +src/commons.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +src/khash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/x86_64-linux-gnu/bits/xopen_lim.h: + +/usr/include/x86_64-linux-gnu/bits/uio_lim.h: + +src/parser.h: + +src/geoip1.h: + +src/browsers.h: + +src/goaccess.h: + +src/ui.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/types/wint_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +/usr/include/pthread.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: + +/usr/include/x86_64-linux-gnu/bits/cpu-set.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/color.h: + +src/sort.h: + +src/error.h: + +src/settings.h: + +src/opesys.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/settings.Po b/src/goaccess++/src/.deps/settings.Po new file mode 100644 index 0000000..ab8fecd --- /dev/null +++ b/src/goaccess++/src/.deps/settings.Po @@ -0,0 +1,283 @@ +src/settings.o: src/settings.c /usr/include/stdc-predef.h \ + /usr/include/ctype.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + src/settings.h /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h src/commons.h \ + src/config.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h src/error.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/labels.h /usr/include/libintl.h \ + /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \ + src/util.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/ctype.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +src/settings.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +src/commons.h: + +src/config.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +src/error.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/sha1.Po b/src/goaccess++/src/.deps/sha1.Po new file mode 100644 index 0000000..e7756bb --- /dev/null +++ b/src/goaccess++/src/.deps/sha1.Po @@ -0,0 +1,171 @@ +src/sha1.o: src/sha1.c /usr/include/stdc-predef.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/sha1.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h + +/usr/include/stdc-predef.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +src/sha1.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: diff --git a/src/goaccess++/src/.deps/sort.Po b/src/goaccess++/src/.deps/sort.Po new file mode 100644 index 0000000..a93cd26 --- /dev/null +++ b/src/goaccess++/src/.deps/sort.Po @@ -0,0 +1,257 @@ +src/sort.o: src/sort.c /usr/include/stdc-predef.h src/config.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/getopt.h /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_ext.h /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + src/error.h src/commons.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/curses.h \ + /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/util.h src/sort.h src/parser.h + +/usr/include/stdc-predef.h: + +src/config.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/getopt.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_ext.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +src/error.h: + +src/commons.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/util.h: + +src/sort.h: + +src/parser.h: diff --git a/src/goaccess++/src/.deps/tcabdb.Po b/src/goaccess++/src/.deps/tcabdb.Po new file mode 100644 index 0000000..9ce06a8 --- /dev/null +++ b/src/goaccess++/src/.deps/tcabdb.Po @@ -0,0 +1 @@ +# dummy diff --git a/src/goaccess++/src/.deps/tcbtdb.Po b/src/goaccess++/src/.deps/tcbtdb.Po new file mode 100644 index 0000000..9ce06a8 --- /dev/null +++ b/src/goaccess++/src/.deps/tcbtdb.Po @@ -0,0 +1 @@ +# dummy diff --git a/src/goaccess++/src/.deps/ui.Po b/src/goaccess++/src/.deps/ui.Po new file mode 100644 index 0000000..869248a --- /dev/null +++ b/src/goaccess++/src/.deps/ui.Po @@ -0,0 +1,348 @@ +src/ui.o: src/ui.c /usr/include/stdc-predef.h src/config.h \ + /usr/include/pthread.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/ctype.h \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/inttypes.h /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h \ + /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h src/ui.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/labels.h /usr/include/libintl.h src/color.h \ + src/commons.h src/sort.h src/parser.h src/gkhash.h src/gslist.h \ + src/gstorage.h src/khash.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h src/error.h \ + src/settings.h src/gmenu.h src/goaccess.h src/util.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +src/config.h: + +/usr/include/pthread.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/sched.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h: + +/usr/include/x86_64-linux-gnu/bits/cpu-set.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/x86_64-linux-gnu/bits/setjmp.h: + +/usr/include/ctype.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/inttypes.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +src/ui.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/include/stdio.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/labels.h: + +/usr/include/libintl.h: + +src/color.h: + +src/commons.h: + +src/sort.h: + +src/parser.h: + +src/gkhash.h: + +src/gslist.h: + +src/gstorage.h: + +src/khash.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +src/error.h: + +src/settings.h: + +src/gmenu.h: + +src/goaccess.h: + +src/util.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/util.Po b/src/goaccess++/src/.deps/util.Po new file mode 100644 index 0000000..18271a0 --- /dev/null +++ b/src/goaccess++/src/.deps/util.Po @@ -0,0 +1,310 @@ +src/util.o: src/util.c /usr/include/stdc-predef.h \ + /usr/include/arpa/inet.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket-constants.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/netdb.h /usr/include/x86_64-linux-gnu/bits/netdb.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h src/util.h src/error.h \ + src/commons.h src/config.h /usr/include/curses.h \ + /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/labels.h /usr/include/libintl.h \ + /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \ + src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/arpa/inet.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/netinet/in.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/sys/socket.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/socket.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/x86_64-linux-gnu/bits/socket_type.h: + +/usr/include/x86_64-linux-gnu/bits/sockaddr.h: + +/usr/include/x86_64-linux-gnu/bits/socket-constants.h: + +/usr/include/x86_64-linux-gnu/bits/socket2.h: + +/usr/include/x86_64-linux-gnu/bits/in.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/ctype.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/netdb.h: + +/usr/include/x86_64-linux-gnu/bits/netdb.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +src/util.h: + +src/error.h: + +src/commons.h: + +src/config.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/types/wint_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/labels.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/websocket.Po b/src/goaccess++/src/.deps/websocket.Po new file mode 100644 index 0000000..0b5e6d2 --- /dev/null +++ b/src/goaccess++/src/.deps/websocket.Po @@ -0,0 +1,412 @@ +src/websocket.o: src/websocket.c /usr/include/stdc-predef.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/arpa/inet.h /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h /usr/include/ctype.h \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/fcntl.h /usr/include/x86_64-linux-gnu/bits/fcntl.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl2.h /usr/include/netdb.h \ + /usr/include/rpc/netdb.h /usr/include/x86_64-linux-gnu/bits/netdb.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/sys/time.h \ + /usr/include/x86_64-linux-gnu/sys/ioctl.h \ + /usr/include/x86_64-linux-gnu/bits/ioctls.h \ + /usr/include/x86_64-linux-gnu/asm/ioctls.h \ + /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \ + /usr/include/x86_64-linux-gnu/asm/ioctl.h \ + /usr/include/asm-generic/ioctl.h \ + /usr/include/x86_64-linux-gnu/bits/ioctl-types.h \ + /usr/include/x86_64-linux-gnu/sys/ttydefaults.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h src/config.h \ + src/websocket.h /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h src/gslist.h \ + src/base64.h src/error.h src/commons.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h /usr/include/curses.h \ + /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/sha1.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +/usr/include/arpa/inet.h: + +/usr/include/netinet/in.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/x86_64-linux-gnu/sys/socket.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h: + +/usr/include/x86_64-linux-gnu/bits/socket.h: + +/usr/include/x86_64-linux-gnu/bits/socket_type.h: + +/usr/include/x86_64-linux-gnu/bits/sockaddr.h: + +/usr/include/x86_64-linux-gnu/asm/socket.h: + +/usr/include/asm-generic/socket.h: + +/usr/include/linux/posix_types.h: + +/usr/include/linux/stddef.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/posix_types_64.h: + +/usr/include/asm-generic/posix_types.h: + +/usr/include/x86_64-linux-gnu/asm/bitsperlong.h: + +/usr/include/asm-generic/bitsperlong.h: + +/usr/include/x86_64-linux-gnu/asm/sockios.h: + +/usr/include/asm-generic/sockios.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h: + +/usr/include/x86_64-linux-gnu/bits/socket2.h: + +/usr/include/x86_64-linux-gnu/bits/in.h: + +/usr/include/ctype.h: + +/usr/include/errno.h: + +/usr/include/x86_64-linux-gnu/bits/errno.h: + +/usr/include/linux/errno.h: + +/usr/include/x86_64-linux-gnu/asm/errno.h: + +/usr/include/asm-generic/errno.h: + +/usr/include/asm-generic/errno-base.h: + +/usr/include/fcntl.h: + +/usr/include/x86_64-linux-gnu/bits/fcntl.h: + +/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h: + +/usr/include/x86_64-linux-gnu/bits/stat.h: + +/usr/include/x86_64-linux-gnu/bits/fcntl2.h: + +/usr/include/netdb.h: + +/usr/include/rpc/netdb.h: + +/usr/include/x86_64-linux-gnu/bits/netdb.h: + +/usr/include/x86_64-linux-gnu/sys/stat.h: + +/usr/include/x86_64-linux-gnu/sys/time.h: + +/usr/include/x86_64-linux-gnu/sys/ioctl.h: + +/usr/include/x86_64-linux-gnu/bits/ioctls.h: + +/usr/include/x86_64-linux-gnu/asm/ioctls.h: + +/usr/include/asm-generic/ioctls.h: + +/usr/include/linux/ioctl.h: + +/usr/include/x86_64-linux-gnu/asm/ioctl.h: + +/usr/include/asm-generic/ioctl.h: + +/usr/include/x86_64-linux-gnu/bits/ioctl-types.h: + +/usr/include/x86_64-linux-gnu/sys/ttydefaults.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/posix_opt.h: + +/usr/include/x86_64-linux-gnu/bits/environments.h: + +/usr/include/x86_64-linux-gnu/bits/confname.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_posix.h: + +/usr/include/x86_64-linux-gnu/bits/getopt_core.h: + +/usr/include/x86_64-linux-gnu/bits/unistd.h: + +/usr/include/x86_64-linux-gnu/bits/unistd_ext.h: + +src/config.h: + +src/websocket.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +src/gslist.h: + +src/base64.h: + +src/error.h: + +src/commons.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/sha1.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.deps/xmalloc.Po b/src/goaccess++/src/.deps/xmalloc.Po new file mode 100644 index 0000000..7241dfa --- /dev/null +++ b/src/goaccess++/src/.deps/xmalloc.Po @@ -0,0 +1,230 @@ +src/xmalloc.o: src/xmalloc.c /usr/include/stdc-predef.h \ + /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h src/error.h \ + src/commons.h src/config.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/curses.h /usr/include/ncurses_dll.h \ + /usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h /usr/include/unctrl.h \ + /usr/include/curses.h src/settings.h src/xmalloc.h + +/usr/include/stdc-predef.h: + +/usr/include/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/libc-header-start.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/bits/long-double.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/timesize.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/time64.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/FILE.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h: + +/usr/include/stdint.h: + +/usr/include/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-intn.h: + +/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h: + +/usr/include/stdlib.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/x86_64-linux-gnu/bits/floatn.h: + +/usr/include/x86_64-linux-gnu/bits/floatn-common.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/x86_64-linux-gnu/bits/types/clock_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/time_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/timer_t.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endianness.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/uintn-identity.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h: + +/usr/include/x86_64-linux-gnu/bits/struct_mutex.h: + +/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/string.h: + +/usr/include/x86_64-linux-gnu/bits/types/locale_t.h: + +/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h: + +/usr/include/strings.h: + +/usr/include/x86_64-linux-gnu/bits/strings_fortified.h: + +/usr/include/x86_64-linux-gnu/bits/string_fortified.h: + +src/error.h: + +src/commons.h: + +src/config.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h: + +/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h: + +/usr/include/curses.h: + +/usr/include/ncurses_dll.h: + +/usr/lib/gcc/x86_64-linux-gnu/9/include/stdbool.h: + +/usr/include/unctrl.h: + +/usr/include/curses.h: + +src/settings.h: + +src/xmalloc.h: diff --git a/src/goaccess++/src/.dirstamp b/src/goaccess++/src/.dirstamp new file mode 100644 index 0000000..e69de29 diff --git a/src/goaccess++/src/appcss.h b/src/goaccess++/src/appcss.h new file mode 100644 index 0000000..f819816 --- /dev/null +++ b/src/goaccess++/src/appcss.h @@ -0,0 +1,1512 @@ +const char app_css[16588] = { + 0x2f, 0x2a, 0x20, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x20, 0x2a, + 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x2c, 0x62, 0x6f, 0x64, 0x79, 0x20, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x3a, 0x20, 0x23, 0x66, 0x30, 0x66, 0x30, 0x66, 0x30, 0x3b, 0x6f, + 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2d, 0x78, 0x3a, 0x20, + 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x7d, 0x68, 0x31, 0x20, + 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x20, 0x62, 0x6f, 0x6c, 0x64, 0x3b, 0x6c, 0x65, 0x74, + 0x74, 0x65, 0x72, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x2d, 0x33, 0x70, 0x78, 0x3b, 0x7d, 0x68, 0x33, 0x20, + 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x20, 0x32, 0x31, 0x70, 0x78, 0x3b, 0x6c, 0x65, 0x74, 0x74, 0x65, + 0x72, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, + 0x2d, 0x31, 0x70, 0x78, 0x3b, 0x7d, 0x2e, 0x70, 0x61, 0x67, 0x65, + 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, + 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, + 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x20, 0x30, 0x2c, + 0x20, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x35, 0x29, 0x3b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x32, 0x35, 0x70, 0x78, + 0x20, 0x30, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3b, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x3b, 0x7d, 0x2e, 0x70, 0x61, 0x67, 0x65, + 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x68, 0x31, 0x20, + 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x30, 0x3b, + 0x7d, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x20, + 0x35, 0x70, 0x78, 0x20, 0x30, 0x3b, 0x7d, 0x2e, 0x63, 0x6c, 0x69, + 0x63, 0x6b, 0x61, 0x62, 0x6c, 0x65, 0x2c, 0x2e, 0x65, 0x78, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x64, 0x20, + 0x7b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x20, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x7d, 0x2e, 0x73, 0x70, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x39, 0x39, 0x39, 0x3b, 0x6c, 0x65, 0x66, 0x74, + 0x3a, 0x20, 0x35, 0x30, 0x25, 0x3b, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, + 0x74, 0x65, 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x35, 0x30, 0x25, + 0x3b, 0x7d, 0x2e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x7b, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x31, 0x39, + 0x30, 0x70, 0x78, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, 0x3b, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x65, 0x72, 0x3b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x20, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, + 0x65, 0x3b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x32, 0x30, + 0x70, 0x78, 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, + 0x6d, 0x2d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x31, + 0x30, 0x30, 0x25, 0x20, 0x30, 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x20, 0x72, 0x6f, 0x74, 0x61, 0x74, + 0x65, 0x28, 0x2d, 0x39, 0x30, 0x64, 0x65, 0x67, 0x29, 0x3b, 0x7d, + 0x2e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x65, 0x64, 0x20, 0x61, 0x20, + 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x36, 0x33, + 0x36, 0x33, 0x36, 0x33, 0x3b, 0x7d, 0x2e, 0x70, 0x6f, 0x77, 0x65, + 0x72, 0x65, 0x64, 0x20, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x7b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x30, 0x30, 0x37, 0x62, + 0x63, 0x33, 0x3b, 0x7d, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x7b, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x30, 0x30, 0x37, + 0x62, 0x63, 0x33, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x20, 0x33, 0x70, 0x78, 0x20, 0x32, 0x35, 0x70, 0x78, 0x3b, + 0x74, 0x65, 0x78, 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x3a, 0x20, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, + 0x61, 0x73, 0x65, 0x3b, 0x7d, 0x2e, 0x67, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x20, 0x7b, 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x2d, + 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x2d, 0x31, + 0x70, 0x78, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x20, 0x75, 0x70, 0x70, + 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x3b, 0x7d, 0x68, 0x35, 0x2e, + 0x67, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x6c, 0x65, + 0x74, 0x74, 0x65, 0x72, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x68, 0x34, + 0x2e, 0x67, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, + 0x32, 0x30, 0x70, 0x78, 0x3b, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x2e, 0x67, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x73, 0x6d, 0x61, 0x6c, + 0x6c, 0x20, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, + 0x65, 0x3a, 0x20, 0x36, 0x39, 0x25, 0x3b, 0x7d, 0x2f, 0x2a, 0x20, + 0x4e, 0x41, 0x56, 0x49, 0x47, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x20, + 0x2a, 0x2f, 0x6e, 0x61, 0x76, 0x20, 0x7b, 0x2d, 0x77, 0x65, 0x62, + 0x6b, 0x69, 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x2e, + 0x32, 0x73, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x31, 0x43, 0x31, 0x43, 0x31, 0x43, + 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x33, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, + 0x69, 0x64, 0x20, 0x23, 0x35, 0x62, 0x63, 0x30, 0x64, 0x65, 0x3b, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x30, 0x30, + 0x25, 0x3b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x2d, 0x32, 0x33, + 0x36, 0x70, 0x78, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, + 0x77, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x30, 0x3b, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x2e, 0x32, 0x73, 0x3b, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x33, 0x30, 0x30, 0x70, 0x78, + 0x3b, 0x7a, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x20, 0x32, + 0x3b, 0x7d, 0x6e, 0x61, 0x76, 0x20, 0x2e, 0x6e, 0x61, 0x76, 0x2d, + 0x6c, 0x69, 0x73, 0x74, 0x20, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x6f, 0x76, 0x65, + 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2d, 0x79, 0x3a, 0x20, 0x61, 0x75, + 0x74, 0x6f, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x33, + 0x35, 0x30, 0x70, 0x78, 0x3b, 0x7d, 0x6e, 0x61, 0x76, 0x20, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x3a, 0x20, 0x34, 0x30, 0x70, 0x78, 0x20, 0x32, 0x30, + 0x70, 0x78, 0x20, 0x33, 0x30, 0x70, 0x78, 0x3b, 0x7d, 0x6e, 0x61, + 0x76, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x61, 0x20, + 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x72, 0x67, 0x62, + 0x61, 0x28, 0x32, 0x34, 0x30, 0x2c, 0x32, 0x34, 0x30, 0x2c, 0x32, + 0x34, 0x30, 0x2c, 0x2e, 0x37, 0x29, 0x3b, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x32, 0x2e, 0x37, 0x65, + 0x6d, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x33, 0x30, 0x30, 0x3b, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x3a, 0x20, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, + 0x3b, 0x7d, 0x6e, 0x61, 0x76, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x20, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x65, 0x65, 0x65, + 0x3b, 0x7d, 0x6e, 0x61, 0x76, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x20, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x21, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x3b, 0x6c, 0x65, 0x66, 0x74, + 0x3a, 0x20, 0x30, 0x3b, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, + 0x3a, 0x20, 0x2e, 0x39, 0x37, 0x3b, 0x7d, 0x6e, 0x61, 0x76, 0x3a, + 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7e, 0x20, 0x23, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x7b, 0x6f, 0x70, 0x61, 0x63, + 0x69, 0x74, 0x79, 0x3a, 0x20, 0x2e, 0x33, 0x3b, 0x7d, 0x6e, 0x61, + 0x76, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x2e, 0x6e, + 0x61, 0x76, 0x2d, 0x62, 0x61, 0x72, 0x73, 0x2c, 0x6e, 0x61, 0x76, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x2e, 0x6e, 0x61, + 0x76, 0x2d, 0x67, 0x65, 0x61, 0x72, 0x73, 0x2c, 0x6e, 0x61, 0x76, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x2e, 0x6e, 0x61, + 0x76, 0x2d, 0x77, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x20, 0x7b, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x3a, 0x20, + 0x30, 0x3b, 0x7d, 0x6e, 0x61, 0x76, 0x20, 0x2e, 0x6e, 0x61, 0x76, + 0x2d, 0x62, 0x61, 0x72, 0x73, 0x2c, 0x6e, 0x61, 0x76, 0x20, 0x2e, + 0x6e, 0x61, 0x76, 0x2d, 0x67, 0x65, 0x61, 0x72, 0x73, 0x2c, 0x6e, + 0x61, 0x76, 0x20, 0x2e, 0x6e, 0x61, 0x76, 0x2d, 0x77, 0x73, 0x2d, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x7b, 0x2d, 0x77, 0x65, + 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6f, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x20, 0x2e, 0x32, 0x73, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, 0x3b, + 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x20, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x33, 0x36, 0x70, 0x78, + 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x33, 0x32, + 0x70, 0x78, 0x3b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x31, 0x33, + 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x20, 0x33, 0x32, 0x70, 0x78, 0x3b, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x33, 0x30, 0x70, 0x78, 0x3b, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x20, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x20, 0x2e, 0x32, + 0x73, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x33, 0x32, + 0x70, 0x78, 0x3b, 0x7d, 0x6e, 0x61, 0x76, 0x20, 0x2e, 0x6e, 0x61, + 0x76, 0x2d, 0x67, 0x65, 0x61, 0x72, 0x73, 0x20, 0x7b, 0x74, 0x6f, + 0x70, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x70, 0x78, 0x3b, 0x6f, 0x70, + 0x61, 0x63, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x30, 0x2e, 0x36, 0x3b, + 0x7d, 0x6e, 0x61, 0x76, 0x20, 0x2e, 0x6e, 0x61, 0x76, 0x2d, 0x77, + 0x73, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2c, 0x2e, 0x6e, + 0x61, 0x76, 0x2d, 0x77, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x69, 0x20, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x36, 0x41, 0x36, 0x41, 0x36, 0x41, + 0x3b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x20, 0x68, 0x65, + 0x6c, 0x70, 0x3b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, 0x32, 0x70, 0x78, 0x3b, + 0x7d, 0x6e, 0x61, 0x76, 0x20, 0x2e, 0x6e, 0x61, 0x76, 0x2d, 0x77, + 0x73, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x7b, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x20, 0x32, 0x35, 0x70, 0x78, 0x3b, 0x74, + 0x6f, 0x70, 0x3a, 0x20, 0x31, 0x32, 0x35, 0x70, 0x78, 0x3b, 0x7d, + 0x2e, 0x6e, 0x61, 0x76, 0x2d, 0x77, 0x73, 0x2d, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x69, 0x20, 0x7b, 0x74, + 0x6f, 0x70, 0x3a, 0x20, 0x31, 0x34, 0x70, 0x78, 0x3b, 0x6c, 0x65, + 0x66, 0x74, 0x3a, 0x20, 0x35, 0x30, 0x70, 0x78, 0x3b, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, 0x62, 0x73, + 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x7d, 0x2e, 0x6e, 0x61, 0x76, + 0x2d, 0x77, 0x73, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x7b, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x35, 0x44, 0x42, + 0x35, 0x36, 0x41, 0x3b, 0x7d, 0x6e, 0x61, 0x76, 0x20, 0x6c, 0x69, + 0x20, 0x61, 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x33, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x32, 0x30, 0x30, 0x2c, + 0x32, 0x30, 0x30, 0x2c, 0x32, 0x30, 0x30, 0x2c, 0x2e, 0x35, 0x29, + 0x3b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x20, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, + 0x72, 0x3b, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x32, 0x33, 0x35, 0x70, 0x78, 0x3b, 0x6f, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x30, 0x3b, 0x6f, 0x76, 0x65, + 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x39, 0x70, 0x78, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3b, 0x74, + 0x65, 0x78, 0x74, 0x2d, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, + 0x77, 0x3a, 0x20, 0x65, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x69, 0x73, + 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x20, 0x75, 0x70, 0x70, 0x65, 0x72, + 0x63, 0x61, 0x73, 0x65, 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6f, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x20, 0x2e, 0x32, 0x73, 0x3b, 0x77, 0x68, 0x69, 0x74, + 0x65, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x20, 0x6e, 0x6f, + 0x77, 0x72, 0x61, 0x70, 0x3b, 0x7d, 0x6e, 0x61, 0x76, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x6c, 0x69, 0x20, 0x61, 0x20, + 0x7b, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x20, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x6f, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x3a, 0x20, 0x31, 0x3b, 0x7d, 0x6e, 0x61, 0x76, 0x20, + 0x6c, 0x69, 0x20, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x6e, 0x61, 0x76, 0x20, 0x6c, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x20, 0x61, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x72, 0x67, 0x62, 0x61, + 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, 0x2e, 0x31, 0x29, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x35, 0x42, 0x43, 0x30, 0x44, 0x45, 0x3b, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x65, 0x65, 0x65, + 0x3b, 0x7d, 0x6e, 0x61, 0x76, 0x20, 0x75, 0x6c, 0x20, 0x7b, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x6c, 0x65, 0x66, 0x74, + 0x3a, 0x20, 0x30, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x2d, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x7d, + 0x2f, 0x2a, 0x20, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x49, 0x63, 0x6f, 0x6e, + 0x20, 0x2a, 0x2f, 0x6e, 0x61, 0x76, 0x20, 0x61, 0x2c, 0x6e, 0x61, + 0x76, 0x20, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, + 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, + 0x7d, 0x6e, 0x61, 0x76, 0x20, 0x68, 0x33, 0x20, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x46, 0x46, 0x46, 0x20, 0x21, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x3b, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x6d, + 0x65, 0x64, 0x69, 0x75, 0x6d, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x62, 0x6f, 0x6c, + 0x64, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x32, + 0x30, 0x70, 0x78, 0x20, 0x32, 0x35, 0x70, 0x78, 0x20, 0x31, 0x30, + 0x70, 0x78, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x20, 0x75, 0x70, 0x70, + 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x3b, 0x7d, 0x2f, 0x2a, 0x20, + 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x20, 0x2a, + 0x2f, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x73, 0x63, 0x72, + 0x65, 0x65, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x6d, 0x61, + 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x37, 0x36, + 0x37, 0x70, 0x78, 0x29, 0x20, 0x7b, 0x2e, 0x72, 0x6f, 0x77, 0x2d, + 0x6f, 0x66, 0x66, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x20, 0x7b, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x2e, 0x32, 0x35, 0x73, 0x20, 0x65, 0x61, 0x73, 0x65, + 0x2d, 0x6f, 0x75, 0x74, 0x3b, 0x2d, 0x6f, 0x2d, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, 0x6c, + 0x6c, 0x20, 0x2e, 0x32, 0x35, 0x73, 0x20, 0x65, 0x61, 0x73, 0x65, + 0x2d, 0x6f, 0x75, 0x74, 0x3b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x2e, 0x32, 0x35, 0x73, + 0x20, 0x65, 0x61, 0x73, 0x65, 0x2d, 0x6f, 0x75, 0x74, 0x3b, 0x7d, + 0x2e, 0x72, 0x6f, 0x77, 0x2d, 0x6f, 0x66, 0x66, 0x63, 0x61, 0x6e, + 0x76, 0x61, 0x73, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x7b, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x30, 0x3b, 0x7d, 0x2e, + 0x72, 0x6f, 0x77, 0x2d, 0x6f, 0x66, 0x66, 0x63, 0x61, 0x6e, 0x76, + 0x61, 0x73, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x7b, 0x6c, 0x65, + 0x66, 0x74, 0x3a, 0x20, 0x30, 0x3b, 0x7d, 0x2e, 0x72, 0x6f, 0x77, + 0x2d, 0x6f, 0x66, 0x66, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2d, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x73, 0x69, 0x64, 0x65, 0x62, + 0x61, 0x72, 0x2d, 0x6f, 0x66, 0x66, 0x63, 0x61, 0x6e, 0x76, 0x61, + 0x73, 0x20, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x2d, + 0x35, 0x30, 0x25, 0x3b, 0x7d, 0x2e, 0x72, 0x6f, 0x77, 0x2d, 0x6f, + 0x66, 0x66, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x2e, 0x73, 0x69, 0x64, 0x65, 0x62, 0x61, 0x72, 0x2d, + 0x6f, 0x66, 0x66, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x20, 0x7b, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x2d, 0x35, 0x30, 0x25, 0x3b, + 0x7d, 0x2e, 0x72, 0x6f, 0x77, 0x2d, 0x6f, 0x66, 0x66, 0x63, 0x61, + 0x6e, 0x76, 0x61, 0x73, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x20, 0x7b, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x35, 0x30, 0x25, 0x3b, 0x7d, 0x2e, 0x72, + 0x6f, 0x77, 0x2d, 0x6f, 0x66, 0x66, 0x63, 0x61, 0x6e, 0x76, 0x61, + 0x73, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x20, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x35, + 0x30, 0x25, 0x3b, 0x7d, 0x2e, 0x73, 0x69, 0x64, 0x65, 0x62, 0x61, + 0x72, 0x2d, 0x6f, 0x66, 0x66, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, + 0x20, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x20, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x74, + 0x6f, 0x70, 0x3a, 0x20, 0x30, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x35, 0x30, 0x25, 0x3b, 0x7d, 0x3b, 0x7d, 0x40, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x37, 0x36, 0x38, 0x70, 0x78, + 0x29, 0x20, 0x7b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x20, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x37, 0x35, 0x30, 0x70, 0x78, 0x3b, 0x7d, 0x3b, 0x7d, 0x40, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x34, 0x38, 0x30, 0x70, 0x78, + 0x29, 0x20, 0x7b, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x68, 0x35, 0x2c, 0x2e, 0x77, + 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x68, + 0x35, 0x20, 0x7b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x3a, 0x20, 0x6e, 0x6f, 0x77, 0x72, 0x61, 0x70, + 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x20, + 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x74, 0x65, 0x78, 0x74, + 0x2d, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x20, + 0x65, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x69, 0x73, 0x3b, 0x7d, 0x2e, + 0x77, 0x72, 0x61, 0x70, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x20, 0x68, 0x35, 0x20, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x77, 0x72, 0x61, + 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x68, 0x35, 0x20, + 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x37, 0x30, 0x25, + 0x7d, 0x7d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x2d, 0x66, 0x6c, 0x75, 0x69, 0x64, 0x20, 0x7b, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, + 0x37, 0x35, 0x70, 0x78, 0x3b, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x31, 0x32, 0x30, 0x70, 0x78, 0x29, 0x20, + 0x7b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x20, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x39, 0x37, + 0x30, 0x70, 0x78, 0x3b, 0x7d, 0x3b, 0x7d, 0x40, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x20, 0x31, 0x33, 0x32, 0x30, 0x70, 0x78, 0x29, + 0x20, 0x7b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x20, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x31, 0x37, 0x30, 0x70, 0x78, 0x3b, 0x7d, 0x3b, 0x7d, 0x40, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x39, 0x39, 0x32, 0x70, 0x78, + 0x29, 0x20, 0x7b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x2d, 0x66, 0x6c, 0x75, 0x69, 0x64, 0x20, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x20, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x7d, 0x3b, 0x7d, 0x40, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x37, 0x36, 0x38, 0x70, 0x78, + 0x29, 0x20, 0x7b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x2d, 0x66, 0x6c, 0x75, 0x69, 0x64, 0x20, 0x7b, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x6c, 0x65, 0x66, 0x74, + 0x3a, 0x20, 0x35, 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x35, + 0x70, 0x78, 0x3b, 0x7d, 0x2e, 0x70, 0x61, 0x67, 0x65, 0x2d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, 0x31, 0x30, 0x70, 0x78, + 0x3b, 0x7d, 0x7d, 0x2f, 0x2a, 0x20, 0x50, 0x41, 0x4e, 0x45, 0x4c, + 0x20, 0x53, 0x54, 0x59, 0x4c, 0x45, 0x53, 0x20, 0x2a, 0x2f, 0x2e, + 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, + 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x20, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x3b, 0x7d, 0x64, 0x69, 0x76, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x64, 0x69, 0x76, + 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x3a, 0x20, 0x23, 0x46, 0x46, 0x46, 0x3b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x31, 0x30, + 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x30, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x31, 0x70, + 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x72, 0x67, 0x62, + 0x61, 0x28, 0x30, 0x2c, 0x20, 0x30, 0x2c, 0x20, 0x30, 0x2c, 0x20, + 0x30, 0x2e, 0x31, 0x35, 0x29, 0x3b, 0x7d, 0x2f, 0x2a, 0x20, 0x50, + 0x41, 0x4e, 0x45, 0x4c, 0x20, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x53, + 0x20, 0x2a, 0x2f, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x20, + 0x74, 0x72, 0x20, 0x74, 0x64, 0x2c, 0x2e, 0x77, 0x72, 0x61, 0x70, + 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x20, 0x74, 0x72, 0x20, 0x74, 0x68, 0x2c, 0x2e, 0x77, + 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x61, 0x64, 0x20, 0x74, 0x72, 0x20, 0x74, 0x68, + 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x6e, + 0x6f, 0x6e, 0x65, 0x3b, 0x7d, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x61, 0x64, 0x20, 0x74, 0x72, 0x20, 0x74, + 0x68, 0x20, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x3a, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x70, + 0x78, 0x3b, 0x7d, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x2e, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x2e, 0x77, 0x72, 0x61, + 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x2e, 0x64, 0x61, 0x74, 0x65, 0x20, 0x7b, 0x74, + 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, + 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x7d, 0x2e, 0x77, 0x72, 0x61, 0x70, + 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x2e, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x20, + 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x39, + 0x38, 0x39, 0x38, 0x39, 0x3b, 0x7d, 0x2e, 0x77, 0x72, 0x61, 0x70, + 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x74, 0x64, 0x2c, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x74, 0x68, 0x20, 0x7b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x2d, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x20, 0x6e, 0x6f, 0x77, 0x72, + 0x61, 0x70, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, + 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x7d, 0x2e, + 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x2e, 0x73, 0x6f, + 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x7b, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x3a, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x3b, 0x7d, 0x2f, 0x2a, 0x20, 0x74, 0x68, 0x65, 0x61, 0x64, + 0x20, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x2a, 0x2f, 0x2e, 0x77, 0x72, + 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x7b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, + 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, + 0x23, 0x43, 0x37, 0x43, 0x37, 0x43, 0x37, 0x3b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, + 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, + 0x23, 0x43, 0x37, 0x43, 0x37, 0x43, 0x37, 0x3b, 0x7d, 0x2e, 0x77, + 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x20, + 0x74, 0x72, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x46, 0x31, 0x46, 0x31, 0x46, 0x31, 0x3b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x32, 0x3b, 0x7d, 0x2e, + 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, + 0x2e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x6d, 0x65, 0x74, 0x61, + 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x7b, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x36, 0x35, 0x25, + 0x3b, 0x7d, 0x2f, 0x2a, 0x20, 0x74, 0x68, 0x65, 0x61, 0x64, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x2f, 0x2e, 0x77, 0x72, 0x61, + 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x72, + 0x20, 0x74, 0x64, 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x70, 0x78, + 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x46, 0x31, 0x46, + 0x31, 0x46, 0x31, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x65, 0x72, + 0x3b, 0x7d, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x2e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x64, + 0x61, 0x74, 0x61, 0x20, 0x74, 0x64, 0x3a, 0x6c, 0x61, 0x73, 0x74, + 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, + 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x7d, 0x2e, 0x77, 0x72, 0x61, 0x70, + 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x64, 0x2e, + 0x72, 0x6f, 0x77, 0x2d, 0x69, 0x64, 0x78, 0x20, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x38, 0x39, 0x38, 0x39, 0x38, + 0x39, 0x3b, 0x7d, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x2b, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x20, + 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x70, 0x78, + 0x3b, 0x7d, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x2e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x64, + 0x61, 0x74, 0x61, 0x20, 0x74, 0x72, 0x2e, 0x73, 0x68, 0x61, 0x64, + 0x65, 0x64, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x46, 0x37, 0x46, 0x37, 0x46, 0x37, 0x3b, 0x7d, 0x2e, 0x77, + 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x20, + 0x74, 0x72, 0x2e, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x46, 0x37, 0x46, 0x37, 0x46, 0x37, 0x3b, 0x7d, 0x2e, + 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, + 0x2e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x64, 0x61, 0x74, 0x61, + 0x20, 0x74, 0x72, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x74, + 0x64, 0x3a, 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x28, 0x31, 0x29, 0x2c, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x74, 0x62, 0x6f, 0x64, 0x79, + 0x2d, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x72, 0x2e, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x20, 0x74, 0x64, 0x3a, 0x6e, 0x74, 0x68, 0x2d, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x32, 0x29, 0x20, 0x7b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x7d, 0x2e, 0x77, 0x72, + 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0x74, 0x72, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x45, 0x45, 0x45, 0x3b, + 0x7d, 0x2f, 0x2a, 0x20, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x4c, + 0x20, 0x2a, 0x2f, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x7b, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x3b, 0x7d, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, 0x7b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, + 0x46, 0x46, 0x46, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x70, 0x78, + 0x3b, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x2d, 0x31, + 0x30, 0x70, 0x78, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, 0x3b, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x20, 0x30, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, 0x62, 0x73, 0x6f, + 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x20, 0x30, 0x3b, 0x7a, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, + 0x20, 0x31, 0x3b, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, + 0x70, 0x6c, 0x6f, 0x74, 0x2d, 0x77, 0x72, 0x61, 0x70, 0x20, 0x7b, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, + 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x30, 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x20, + 0x31, 0x38, 0x70, 0x78, 0x3b, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, 0x7b, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x38, 0x35, 0x25, 0x3b, + 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x20, 0x68, + 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, + 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x20, 0x65, + 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x69, 0x73, 0x3b, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x20, 0x31, + 0x70, 0x78, 0x20, 0x31, 0x70, 0x78, 0x20, 0x30, 0x20, 0x23, 0x46, + 0x46, 0x46, 0x3b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x3a, 0x20, 0x6e, 0x6f, 0x77, 0x72, 0x61, 0x70, + 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, + 0x25, 0x3b, 0x7d, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2d, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x46, 0x46, 0x46, + 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x72, 0x67, 0x62, + 0x28, 0x33, 0x36, 0x2c, 0x20, 0x33, 0x36, 0x2c, 0x20, 0x33, 0x36, + 0x29, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, + 0x20, 0x35, 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x37, 0x70, 0x78, 0x3b, 0x7d, 0x2e, 0x67, 0x72, + 0x69, 0x64, 0x2d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x68, + 0x33, 0x20, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, + 0x65, 0x3a, 0x20, 0x32, 0x35, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x30, 0x3b, 0x6f, 0x76, 0x65, 0x72, + 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x6f, 0x76, 0x65, 0x72, + 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x20, 0x65, 0x6c, 0x6c, 0x69, 0x70, + 0x73, 0x69, 0x73, 0x3b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x2d, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x3a, 0x20, 0x6e, 0x6f, 0x77, 0x72, 0x61, + 0x70, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, + 0x30, 0x25, 0x3b, 0x7d, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2d, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x62, 0x6c, 0x61, 0x63, 0x6b, + 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, + 0x70, 0x3a, 0x20, 0x34, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, + 0x64, 0x20, 0x23, 0x30, 0x46, 0x31, 0x32, 0x31, 0x34, 0x3b, 0x7d, + 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x70, + 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x39, 0x45, + 0x39, 0x45, 0x39, 0x45, 0x3b, 0x7d, 0x2e, 0x67, 0x72, 0x69, 0x64, + 0x2d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x72, 0x65, 0x64, + 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, + 0x70, 0x3a, 0x20, 0x34, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, + 0x64, 0x20, 0x23, 0x46, 0x46, 0x33, 0x30, 0x33, 0x45, 0x3b, 0x7d, + 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x70, 0x78, + 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x30, 0x30, 0x44, + 0x34, 0x45, 0x31, 0x3b, 0x7d, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2d, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x67, 0x72, 0x65, 0x65, + 0x6e, 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, + 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, + 0x69, 0x64, 0x20, 0x23, 0x35, 0x44, 0x42, 0x35, 0x36, 0x41, 0x3b, + 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x61, + 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x37, 0x36, + 0x37, 0x70, 0x78, 0x29, 0x20, 0x7b, 0x2e, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2d, 0x70, 0x6c, 0x6f, 0x74, 0x2d, 0x77, 0x72, 0x61, 0x70, + 0x20, 0x7b, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x31, 0x30, 0x70, 0x78, + 0x3b, 0x7d, 0x2e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x7b, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x31, 0x30, + 0x70, 0x78, 0x3b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x32, 0x35, + 0x70, 0x78, 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, + 0x6d, 0x3a, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x3b, + 0x7d, 0x7d, 0x2f, 0x2a, 0x20, 0x43, 0x48, 0x41, 0x52, 0x54, 0x53, + 0x20, 0x2a, 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x77, + 0x72, 0x61, 0x70, 0x20, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x31, 0x35, + 0x70, 0x78, 0x3b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x3a, 0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, + 0x7d, 0x73, 0x76, 0x67, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, + 0x7d, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x20, 0x7b, 0x66, 0x69, 0x6c, 0x6c, 0x3a, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x73, 0x74, + 0x72, 0x6f, 0x6b, 0x65, 0x3a, 0x20, 0x62, 0x6c, 0x61, 0x63, 0x6b, + 0x3b, 0x73, 0x68, 0x61, 0x70, 0x65, 0x2d, 0x72, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x72, 0x69, 0x73, + 0x70, 0x45, 0x64, 0x67, 0x65, 0x73, 0x3b, 0x73, 0x74, 0x72, 0x6f, + 0x6b, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x3b, 0x7d, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2e, 0x79, 0x20, 0x2e, + 0x74, 0x69, 0x63, 0x6b, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, + 0x67, 0x72, 0x69, 0x64, 0x2e, 0x78, 0x20, 0x2e, 0x74, 0x69, 0x63, + 0x6b, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x7b, 0x73, 0x68, 0x61, + 0x70, 0x65, 0x2d, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x3a, 0x20, 0x63, 0x72, 0x69, 0x73, 0x70, 0x45, 0x64, 0x67, + 0x65, 0x73, 0x3b, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3a, 0x20, + 0x23, 0x39, 0x39, 0x39, 0x3b, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, + 0x2d, 0x64, 0x61, 0x73, 0x68, 0x61, 0x72, 0x72, 0x61, 0x79, 0x3a, + 0x20, 0x33, 0x20, 0x33, 0x3b, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x7d, + 0x2e, 0x61, 0x78, 0x69, 0x73, 0x2e, 0x78, 0x20, 0x2e, 0x74, 0x69, + 0x63, 0x6b, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x61, 0x78, + 0x69, 0x73, 0x2e, 0x79, 0x30, 0x20, 0x2e, 0x74, 0x69, 0x63, 0x6b, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x61, 0x78, 0x69, 0x73, + 0x2e, 0x79, 0x31, 0x20, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2e, 0x79, + 0x20, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x3a, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x7b, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3a, 0x20, + 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x3b, 0x73, 0x74, 0x72, 0x6f, 0x6b, + 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x3b, + 0x73, 0x68, 0x61, 0x70, 0x65, 0x2d, 0x72, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x72, 0x69, 0x73, 0x70, + 0x45, 0x64, 0x67, 0x65, 0x73, 0x3b, 0x7d, 0x2e, 0x62, 0x61, 0x72, + 0x73, 0x20, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x62, 0x61, 0x72, 0x20, + 0x7b, 0x73, 0x68, 0x61, 0x70, 0x65, 0x2d, 0x72, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x72, 0x69, 0x73, + 0x70, 0x45, 0x64, 0x67, 0x65, 0x73, 0x3b, 0x7d, 0x2e, 0x72, 0x65, + 0x63, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x66, + 0x69, 0x6c, 0x6c, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x7d, 0x2e, 0x61, 0x72, 0x65, + 0x61, 0x20, 0x7b, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x3a, + 0x20, 0x30, 0x2e, 0x32, 0x3b, 0x7d, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x20, 0x7b, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3a, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3b, 0x7d, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x69, 0x6e, 0x64, + 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x20, 0x7b, 0x66, 0x69, 0x6c, + 0x6c, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x20, 0x6e, 0x6f, + 0x6e, 0x65, 0x3b, 0x73, 0x68, 0x61, 0x70, 0x65, 0x2d, 0x72, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x63, 0x72, + 0x69, 0x73, 0x70, 0x45, 0x64, 0x67, 0x65, 0x73, 0x3b, 0x73, 0x74, + 0x72, 0x6f, 0x6b, 0x65, 0x3a, 0x20, 0x23, 0x39, 0x39, 0x39, 0x3b, + 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x7d, 0x2e, 0x61, 0x72, 0x65, 0x61, + 0x30, 0x2c, 0x2e, 0x62, 0x61, 0x72, 0x73, 0x2e, 0x79, 0x30, 0x20, + 0x2e, 0x62, 0x61, 0x72, 0x2c, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x2e, 0x79, 0x30, 0x2c, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x6c, + 0x65, 0x67, 0x65, 0x6e, 0x64, 0x2e, 0x79, 0x30, 0x20, 0x7b, 0x66, + 0x69, 0x6c, 0x6c, 0x3a, 0x20, 0x23, 0x34, 0x34, 0x37, 0x46, 0x42, + 0x33, 0x3b, 0x7d, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x31, 0x2c, 0x2e, + 0x62, 0x61, 0x72, 0x73, 0x2e, 0x79, 0x31, 0x20, 0x2e, 0x62, 0x61, + 0x72, 0x2c, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x79, + 0x31, 0x2c, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x6c, 0x65, 0x67, 0x65, + 0x6e, 0x64, 0x2e, 0x79, 0x31, 0x20, 0x7b, 0x66, 0x69, 0x6c, 0x6c, + 0x3a, 0x20, 0x23, 0x46, 0x46, 0x36, 0x38, 0x35, 0x34, 0x3b, 0x7d, + 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x30, 0x2c, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x31, 0x20, 0x7b, 0x66, 0x69, 0x6c, 0x6c, 0x3a, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, + 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x20, 0x31, 0x3b, 0x7d, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x30, 0x20, 0x7b, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3a, 0x20, + 0x23, 0x30, 0x30, 0x37, 0x42, 0x43, 0x33, 0x3b, 0x7d, 0x2e, 0x6c, + 0x69, 0x6e, 0x65, 0x31, 0x20, 0x7b, 0x73, 0x74, 0x72, 0x6f, 0x6b, + 0x65, 0x3a, 0x20, 0x23, 0x46, 0x46, 0x33, 0x30, 0x33, 0x45, 0x3b, + 0x7d, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2c, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x2d, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x2c, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6c, 0x65, 0x67, 0x65, + 0x6e, 0x64, 0x20, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x3a, 0x20, 0x31, + 0x30, 0x70, 0x78, 0x20, 0x73, 0x61, 0x6e, 0x73, 0x2d, 0x73, 0x65, + 0x72, 0x69, 0x66, 0x3b, 0x7d, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x2d, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x79, 0x30, 0x2c, 0x2e, 0x61, + 0x78, 0x69, 0x73, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x79, + 0x31, 0x20, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6e, 0x63, + 0x68, 0x6f, 0x72, 0x3a, 0x20, 0x65, 0x6e, 0x64, 0x3b, 0x7d, 0x72, + 0x65, 0x63, 0x74, 0x2e, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x20, + 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x30, + 0x70, 0x78, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x30, 0x70, 0x78, 0x3b, 0x7d, 0x2e, 0x6c, 0x65, 0x67, 0x65, 0x6e, + 0x64, 0x20, 0x7b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x20, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x7d, 0x2e, 0x77, + 0x72, 0x61, 0x70, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x20, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x3a, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x3b, + 0x7d, 0x2f, 0x2a, 0x20, 0x43, 0x48, 0x41, 0x52, 0x54, 0x20, 0x54, + 0x4f, 0x4f, 0x4c, 0x54, 0x49, 0x50, 0x20, 0x2a, 0x2f, 0x2e, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, + 0x70, 0x2d, 0x77, 0x72, 0x61, 0x70, 0x20, 0x7b, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x20, 0x30, 0x3b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x20, 0x6e, + 0x6f, 0x6e, 0x65, 0x3b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x20, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, + 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, + 0x7a, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x20, 0x31, 0x30, + 0x3b, 0x7d, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, + 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x7b, 0x2d, 0x6d, 0x6f, 0x7a, + 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, + 0x3a, 0x20, 0x37, 0x70, 0x78, 0x20, 0x37, 0x70, 0x78, 0x20, 0x31, + 0x32, 0x70, 0x78, 0x20, 0x2d, 0x39, 0x70, 0x78, 0x20, 0x23, 0x37, + 0x37, 0x37, 0x37, 0x37, 0x37, 0x3b, 0x2d, 0x77, 0x65, 0x62, 0x6b, + 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, + 0x6f, 0x77, 0x3a, 0x20, 0x37, 0x70, 0x78, 0x20, 0x37, 0x70, 0x78, + 0x20, 0x31, 0x32, 0x70, 0x78, 0x20, 0x2d, 0x39, 0x70, 0x78, 0x20, + 0x23, 0x37, 0x37, 0x37, 0x37, 0x37, 0x37, 0x3b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x3a, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, + 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x73, 0x70, + 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x62, 0x6f, + 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x20, 0x37, + 0x70, 0x78, 0x20, 0x37, 0x70, 0x78, 0x20, 0x31, 0x32, 0x70, 0x78, + 0x20, 0x2d, 0x39, 0x70, 0x78, 0x20, 0x23, 0x37, 0x37, 0x37, 0x37, + 0x37, 0x37, 0x3b, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2d, 0x63, 0x65, + 0x6c, 0x6c, 0x73, 0x3a, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x3b, 0x6f, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x30, 0x2e, 0x39, + 0x3b, 0x7d, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, + 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x74, 0x72, 0x20, 0x7b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, + 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x43, 0x43, 0x43, 0x3b, + 0x7d, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, + 0x6c, 0x74, 0x69, 0x70, 0x20, 0x74, 0x68, 0x20, 0x7b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x61, 0x61, 0x3b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x46, 0x46, 0x46, 0x3b, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, + 0x31, 0x34, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x20, 0x33, 0x38, 0x30, 0x70, 0x78, 0x3b, + 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x20, 0x68, + 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x70, 0x78, 0x20, 0x35, 0x70, 0x78, + 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3a, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x74, 0x65, 0x78, 0x74, + 0x2d, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x20, + 0x65, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x69, 0x73, 0x3b, 0x77, 0x68, + 0x69, 0x74, 0x65, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x20, + 0x6e, 0x6f, 0x77, 0x72, 0x61, 0x70, 0x3b, 0x7d, 0x2e, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, + 0x20, 0x74, 0x64, 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, + 0x64, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x20, 0x23, 0x39, 0x39, 0x39, + 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x20, 0x31, 0x33, 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x20, 0x33, 0x70, 0x78, 0x20, 0x36, 0x70, 0x78, + 0x3b, 0x7d, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, + 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x74, 0x64, 0x20, 0x3e, 0x20, + 0x73, 0x70, 0x61, 0x6e, 0x20, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x3a, 0x20, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, + 0x36, 0x70, 0x78, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x31, 0x30, 0x70, 0x78, 0x3b, 0x7d, 0x2e, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x74, + 0x64, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7b, 0x74, 0x65, + 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3b, 0x7d, 0x2e, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x2e, + 0x62, 0x6c, 0x75, 0x65, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x30, 0x30, 0x37, 0x42, 0x43, 0x33, 0x3b, 0x7d, + 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, + 0x74, 0x69, 0x70, 0x20, 0x2e, 0x72, 0x65, 0x64, 0x20, 0x7b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x46, 0x46, 0x33, 0x30, + 0x33, 0x45, 0x3b, 0x7d, 0x2f, 0x2a, 0x20, 0x44, 0x41, 0x52, 0x4b, + 0x20, 0x54, 0x48, 0x45, 0x4d, 0x45, 0x20, 0x2a, 0x2f, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x20, 0x68, 0x31, 0x20, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x32, 0x35, + 0x35, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x32, 0x35, 0x35, + 0x2c, 0x20, 0x30, 0x2e, 0x36, 0x29, 0x3b, 0x7d, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x20, 0x68, 0x33, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, + 0x20, 0x68, 0x34, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x68, + 0x35, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x72, + 0x67, 0x62, 0x61, 0x28, 0x32, 0x35, 0x35, 0x2c, 0x32, 0x35, 0x35, + 0x2c, 0x32, 0x35, 0x35, 0x2c, 0x30, 0x2e, 0x34, 0x29, 0x3b, 0x7d, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, + 0x65, 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, + 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, + 0x20, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x20, 0x3e, 0x20, 0x64, 0x69, 0x76, 0x20, 0x3e, 0x20, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x44, 0x32, 0x44, 0x32, 0x44, 0x32, 0x3b, 0x7d, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x77, 0x72, 0x61, 0x70, + 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x74, 0x72, 0x20, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x46, 0x37, 0x46, 0x37, 0x46, + 0x37, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x77, + 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x20, + 0x74, 0x72, 0x20, 0x74, 0x64, 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x6e, + 0x6f, 0x6e, 0x65, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, + 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x2e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x64, 0x61, + 0x74, 0x61, 0x3e, 0x74, 0x72, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x72, 0x67, + 0x62, 0x61, 0x28, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x32, 0x35, 0x35, + 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x38, + 0x29, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, + 0x74, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, 0x7b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x39, 0x65, 0x39, 0x65, + 0x39, 0x65, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x73, 0x68, 0x61, + 0x64, 0x6f, 0x77, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2d, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, 0x68, 0x33, 0x20, 0x7b, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x46, 0x46, 0x46, + 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, + 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x46, 0x46, 0x46, 0x3b, 0x7d, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x20, 0x64, 0x69, 0x76, 0x2e, 0x77, 0x72, 0x61, + 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x64, + 0x69, 0x76, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x45, 0x45, 0x45, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x20, + 0x31, 0x30, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x32, + 0x35, 0x35, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x32, 0x35, + 0x35, 0x2c, 0x20, 0x30, 0x2e, 0x31, 0x35, 0x29, 0x3b, 0x7d, 0x2f, + 0x2a, 0x20, 0x44, 0x41, 0x52, 0x4b, 0x20, 0x42, 0x4c, 0x55, 0x45, + 0x20, 0x54, 0x48, 0x45, 0x4d, 0x45, 0x20, 0x2a, 0x2f, 0x68, 0x74, + 0x6d, 0x6c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, + 0x65, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, + 0x65, 0x20, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x32, + 0x35, 0x32, 0x42, 0x33, 0x30, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x32, + 0x35, 0x32, 0x42, 0x33, 0x30, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x70, 0x61, 0x67, + 0x65, 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, + 0x64, 0x20, 0x23, 0x33, 0x42, 0x34, 0x34, 0x34, 0x43, 0x3b, 0x7d, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, + 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x69, 0x6e, 0x66, 0x6f, + 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, + 0x35, 0x32, 0x42, 0x33, 0x30, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x6e, 0x61, 0x76, 0x20, + 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, + 0x69, 0x64, 0x20, 0x23, 0x31, 0x38, 0x31, 0x42, 0x31, 0x46, 0x3b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, + 0x20, 0x23, 0x31, 0x46, 0x32, 0x33, 0x32, 0x38, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x64, + 0x69, 0x76, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x64, 0x69, 0x76, 0x20, 0x7b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, + 0x23, 0x31, 0x46, 0x32, 0x33, 0x32, 0x38, 0x3b, 0x7d, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x77, + 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x20, + 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, + 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, + 0x20, 0x23, 0x33, 0x42, 0x34, 0x34, 0x34, 0x43, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, + 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, + 0x20, 0x23, 0x33, 0x42, 0x34, 0x34, 0x34, 0x43, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, + 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, + 0x2e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x64, 0x61, 0x74, 0x61, + 0x20, 0x74, 0x72, 0x2e, 0x73, 0x68, 0x61, 0x64, 0x65, 0x64, 0x20, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x31, 0x38, + 0x31, 0x42, 0x31, 0x46, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, + 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x79, + 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, + 0x70, 0x3a, 0x20, 0x34, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, + 0x64, 0x20, 0x23, 0x33, 0x42, 0x34, 0x34, 0x34, 0x43, 0x3b, 0x7d, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, + 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x31, 0x46, 0x32, 0x33, 0x32, 0x38, + 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, + 0x65, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x31, 0x46, 0x32, 0x33, 0x32, + 0x38, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x33, 0x42, 0x34, 0x34, 0x34, + 0x43, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, + 0x75, 0x65, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, + 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x7b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x33, 0x42, 0x34, 0x34, + 0x34, 0x43, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x31, 0x46, 0x32, 0x33, 0x32, 0x38, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x30, 0x46, 0x31, 0x32, 0x31, 0x34, 0x3b, 0x7d, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, 0x2c, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, + 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x37, 0x37, 0x37, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, + 0x61, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x31, 0x46, 0x32, 0x33, 0x32, 0x38, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, + 0x69, 0x64, 0x20, 0x23, 0x33, 0x42, 0x34, 0x34, 0x34, 0x43, 0x3b, + 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, + 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, + 0x65, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, + 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x66, + 0x6f, 0x63, 0x75, 0x73, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x30, 0x33, 0x37, 0x30, 0x42, 0x30, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x31, 0x46, 0x32, 0x33, + 0x32, 0x38, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x33, 0x42, 0x34, 0x34, + 0x34, 0x43, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, + 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x3e, 0x6c, 0x69, 0x3e, + 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, + 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, + 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x46, + 0x46, 0x46, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x33, 0x42, 0x34, 0x34, 0x34, 0x43, 0x3b, 0x7d, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, + 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, + 0x35, 0x32, 0x42, 0x33, 0x30, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x3a, 0x2d, 0x77, 0x65, + 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, + 0x62, 0x61, 0x72, 0x2d, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x2c, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, + 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, + 0x61, 0x72, 0x2d, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x20, 0x7b, 0x2d, + 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, + 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x20, 0x69, 0x6e, 0x73, + 0x65, 0x74, 0x20, 0x30, 0x20, 0x30, 0x20, 0x36, 0x70, 0x78, 0x20, + 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, + 0x30, 0x2e, 0x33, 0x29, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x3a, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x63, 0x72, + 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2c, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, + 0x76, 0x65, 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, + 0x2d, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x20, + 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x70, + 0x78, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, + 0x30, 0x70, 0x78, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, 0x3b, 0x7d, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x3a, 0x2d, + 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x63, 0x72, 0x6f, + 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2d, 0x74, 0x68, 0x75, 0x6d, 0x62, + 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x62, 0x6c, 0x75, 0x65, + 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3a, 0x3a, 0x2d, 0x77, + 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x63, 0x72, 0x6f, 0x6c, + 0x6c, 0x62, 0x61, 0x72, 0x2d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x20, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x33, 0x42, + 0x34, 0x34, 0x34, 0x43, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, + 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x7b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x35, 0x32, + 0x42, 0x33, 0x30, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, + 0x62, 0x6c, 0x75, 0x65, 0x20, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x2d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, 0x7b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, + 0x31, 0x46, 0x32, 0x33, 0x32, 0x38, 0x3b, 0x7d, 0x2f, 0x2a, 0x20, + 0x44, 0x41, 0x52, 0x4b, 0x20, 0x47, 0x52, 0x45, 0x59, 0x20, 0x54, + 0x48, 0x45, 0x4d, 0x45, 0x20, 0x2a, 0x2f, 0x68, 0x74, 0x6d, 0x6c, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x2c, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, + 0x62, 0x6f, 0x64, 0x79, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x32, 0x31, 0x32, + 0x31, 0x32, 0x31, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, + 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x32, 0x31, 0x32, + 0x31, 0x32, 0x31, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, + 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x65, 0x2d, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, + 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, + 0x23, 0x33, 0x30, 0x33, 0x30, 0x33, 0x30, 0x3b, 0x7d, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x7b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x33, 0x30, 0x33, + 0x30, 0x33, 0x30, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, + 0x67, 0x72, 0x61, 0x79, 0x20, 0x6e, 0x61, 0x76, 0x20, 0x7b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, + 0x20, 0x23, 0x33, 0x36, 0x33, 0x37, 0x33, 0x37, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, + 0x31, 0x43, 0x31, 0x43, 0x31, 0x43, 0x3b, 0x7d, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x64, 0x69, 0x76, + 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x3e, 0x20, 0x64, 0x69, 0x76, 0x20, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x31, + 0x43, 0x31, 0x43, 0x31, 0x43, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x77, 0x72, 0x61, + 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x7b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, + 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, + 0x33, 0x36, 0x33, 0x37, 0x33, 0x37, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, + 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, + 0x33, 0x36, 0x33, 0x37, 0x33, 0x37, 0x3b, 0x7d, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x77, 0x72, + 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, + 0x72, 0x2e, 0x73, 0x68, 0x61, 0x64, 0x65, 0x64, 0x20, 0x7b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, + 0x34, 0x38, 0x2c, 0x20, 0x34, 0x38, 0x2c, 0x20, 0x34, 0x38, 0x2c, + 0x20, 0x30, 0x2e, 0x34, 0x38, 0x29, 0x3b, 0x7d, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x67, 0x72, + 0x61, 0x79, 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x70, 0x78, 0x20, 0x73, 0x6f, + 0x6c, 0x69, 0x64, 0x20, 0x23, 0x33, 0x30, 0x33, 0x30, 0x33, 0x30, + 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, + 0x79, 0x20, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2d, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x31, 0x43, 0x31, 0x43, + 0x31, 0x43, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, + 0x72, 0x61, 0x79, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, 0x3b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x31, 0x32, + 0x31, 0x32, 0x31, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x33, 0x30, 0x33, + 0x30, 0x33, 0x30, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, + 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, + 0x61, 0x79, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, + 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x33, 0x36, + 0x33, 0x37, 0x33, 0x37, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x31, 0x43, 0x31, 0x43, 0x31, 0x43, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x30, 0x46, 0x31, 0x32, 0x31, 0x34, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, + 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, + 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, + 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x3e, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x3e, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x37, 0x37, 0x37, 0x3b, 0x7d, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x6c, + 0x69, 0x3e, 0x61, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x32, 0x31, 0x32, 0x31, 0x32, 0x31, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x33, 0x30, 0x33, 0x30, 0x33, + 0x30, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, + 0x61, 0x79, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, + 0x72, 0x61, 0x79, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, + 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, 0x61, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x20, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x30, 0x33, 0x37, 0x30, 0x42, 0x30, + 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x31, + 0x32, 0x31, 0x32, 0x31, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x33, 0x30, + 0x33, 0x30, 0x33, 0x30, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, + 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x64, 0x72, 0x6f, 0x70, + 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x3e, 0x6c, + 0x69, 0x3e, 0x61, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x46, 0x46, 0x46, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x64, 0x72, 0x6f, + 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x3e, + 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, + 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, + 0x65, 0x6e, 0x75, 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x46, 0x46, 0x46, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x33, 0x30, 0x33, 0x30, 0x33, 0x30, 0x3b, 0x7d, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, + 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, + 0x65, 0x6e, 0x75, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x32, 0x31, 0x32, 0x31, 0x32, 0x31, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x3a, 0x3a, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x63, 0x72, + 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2d, 0x74, 0x72, 0x61, 0x63, + 0x6b, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, + 0x79, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3a, 0x3a, 0x2d, + 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x63, 0x72, 0x6f, + 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2d, 0x74, 0x72, 0x61, 0x63, 0x6b, + 0x20, 0x7b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, + 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x20, + 0x69, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x30, 0x20, 0x30, 0x20, 0x36, + 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, + 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x33, 0x29, 0x3b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, + 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, + 0x79, 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, + 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2c, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, + 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, + 0x61, 0x72, 0x20, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, + 0x31, 0x30, 0x70, 0x78, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, 0x3b, + 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, + 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x73, + 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2d, 0x74, 0x68, + 0x75, 0x6d, 0x62, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x67, + 0x72, 0x61, 0x79, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3a, + 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2d, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x33, 0x30, 0x33, 0x30, 0x33, 0x30, 0x3b, 0x7d, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, + 0x70, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x33, 0x30, 0x33, 0x30, 0x33, 0x30, 0x3b, 0x7d, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x3a, 0x20, 0x23, 0x33, 0x30, 0x33, 0x30, 0x33, 0x30, 0x3b, 0x7d, + 0x2f, 0x2a, 0x20, 0x44, 0x41, 0x52, 0x4b, 0x20, 0x43, 0x48, 0x41, + 0x52, 0x54, 0x53, 0x20, 0x2a, 0x2f, 0x2e, 0x64, 0x61, 0x72, 0x6b, + 0x20, 0x73, 0x76, 0x67, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, + 0x61, 0x72, 0x65, 0x61, 0x20, 0x7b, 0x6f, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x3a, 0x20, 0x30, 0x2e, 0x31, 0x3b, 0x7d, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x30, 0x2c, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x31, 0x20, 0x7b, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x32, 0x3b, 0x7d, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x30, 0x2c, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x73, + 0x2e, 0x79, 0x30, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x2c, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x20, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x6c, 0x65, + 0x67, 0x65, 0x6e, 0x64, 0x2e, 0x79, 0x30, 0x20, 0x7b, 0x66, 0x69, + 0x6c, 0x6c, 0x3a, 0x20, 0x23, 0x30, 0x30, 0x37, 0x42, 0x43, 0x33, + 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x61, 0x72, + 0x65, 0x61, 0x31, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, + 0x62, 0x61, 0x72, 0x73, 0x2e, 0x79, 0x31, 0x20, 0x2e, 0x62, 0x61, + 0x72, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x79, 0x31, 0x2c, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x20, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x6c, 0x65, 0x67, + 0x65, 0x6e, 0x64, 0x2e, 0x79, 0x31, 0x20, 0x7b, 0x66, 0x69, 0x6c, + 0x6c, 0x3a, 0x20, 0x23, 0x46, 0x46, 0x33, 0x30, 0x33, 0x45, 0x3b, + 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x2e, 0x79, 0x30, 0x20, 0x7b, 0x66, 0x69, 0x6c, + 0x6c, 0x3a, 0x20, 0x23, 0x30, 0x30, 0x44, 0x34, 0x45, 0x31, 0x3b, + 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x30, 0x20, 0x7b, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3a, + 0x20, 0x23, 0x30, 0x30, 0x37, 0x42, 0x43, 0x33, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x31, + 0x20, 0x7b, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3a, 0x20, 0x23, + 0x46, 0x46, 0x33, 0x30, 0x33, 0x45, 0x3b, 0x7d, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x20, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2e, 0x79, 0x20, + 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x67, 0x72, 0x69, 0x64, + 0x2e, 0x78, 0x20, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x20, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x7b, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3a, + 0x20, 0x23, 0x34, 0x34, 0x34, 0x37, 0x34, 0x42, 0x3b, 0x73, 0x74, + 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x64, 0x61, 0x73, 0x68, 0x61, 0x72, + 0x72, 0x61, 0x79, 0x3a, 0x20, 0x31, 0x20, 0x31, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, + 0x2e, 0x61, 0x78, 0x69, 0x73, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x74, 0x65, 0x78, 0x74, + 0x2e, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x20, 0x7b, 0x66, 0x69, + 0x6c, 0x6c, 0x3a, 0x20, 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, + 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x61, 0x78, + 0x69, 0x73, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x7b, 0x73, 0x74, + 0x72, 0x6f, 0x6b, 0x65, 0x3a, 0x20, 0x23, 0x39, 0x39, 0x39, 0x39, + 0x39, 0x39, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, + 0x61, 0x78, 0x69, 0x73, 0x2e, 0x78, 0x20, 0x2e, 0x74, 0x69, 0x63, + 0x6b, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x20, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x2e, 0x79, 0x30, 0x20, + 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2c, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x61, 0x78, 0x69, 0x73, + 0x2e, 0x79, 0x31, 0x20, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, + 0x67, 0x72, 0x69, 0x64, 0x2e, 0x79, 0x20, 0x2e, 0x74, 0x69, 0x63, + 0x6b, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x7b, 0x73, 0x74, + 0x72, 0x6f, 0x6b, 0x65, 0x3a, 0x20, 0x23, 0x33, 0x42, 0x34, 0x34, + 0x34, 0x43, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, + 0x69, 0x70, 0x20, 0x74, 0x68, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x31, 0x63, 0x31, 0x63, 0x31, 0x63, 0x3b, + 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x20, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, + 0x74, 0x72, 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, + 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, + 0x23, 0x33, 0x36, 0x33, 0x37, 0x33, 0x37, 0x3b, 0x7d, 0x2f, 0x2a, + 0x20, 0x44, 0x41, 0x52, 0x4b, 0x20, 0x50, 0x55, 0x52, 0x50, 0x4c, + 0x45, 0x20, 0x54, 0x48, 0x45, 0x4d, 0x45, 0x20, 0x2a, 0x2f, 0x68, + 0x74, 0x6d, 0x6c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, + 0x72, 0x70, 0x6c, 0x65, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, + 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x62, 0x6f, 0x64, 0x79, + 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x3a, 0x20, 0x23, 0x31, 0x65, 0x31, 0x65, 0x32, 0x66, 0x3b, + 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x31, 0x65, 0x31, 0x65, 0x32, + 0x66, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, + 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x65, 0x2d, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, + 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, + 0x23, 0x32, 0x62, 0x33, 0x35, 0x35, 0x33, 0x3b, 0x7d, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, + 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x69, 0x6e, 0x66, 0x6f, + 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x31, + 0x38, 0x31, 0x38, 0x32, 0x33, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x6e, 0x61, + 0x76, 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x65, 0x31, 0x34, 0x65, 0x63, + 0x61, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x3a, 0x20, 0x23, 0x31, 0x38, 0x31, 0x38, 0x32, 0x33, 0x3b, + 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x20, 0x64, 0x69, 0x76, 0x2e, 0x77, 0x72, 0x61, 0x70, + 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3e, 0x20, 0x64, 0x69, + 0x76, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x32, 0x37, 0x32, 0x39, 0x33, 0x64, + 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, + 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, + 0x20, 0x23, 0x32, 0x62, 0x33, 0x35, 0x35, 0x33, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, + 0x20, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x2e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x6d, 0x65, + 0x74, 0x61, 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, + 0x6c, 0x69, 0x64, 0x20, 0x23, 0x32, 0x62, 0x33, 0x35, 0x35, 0x33, + 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, + 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, + 0x6c, 0x69, 0x64, 0x20, 0x23, 0x32, 0x62, 0x33, 0x35, 0x35, 0x33, + 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, + 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x74, 0x62, 0x6f, 0x64, 0x79, + 0x2d, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x72, 0x2e, 0x73, 0x68, + 0x61, 0x64, 0x65, 0x64, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x31, 0x65, 0x31, 0x65, 0x32, 0x66, 0x3b, 0x7d, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, + 0x65, 0x20, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x20, 0x7b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, + 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x32, + 0x62, 0x33, 0x35, 0x35, 0x33, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x72, + 0x65, 0x64, 0x20, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x70, 0x78, 0x20, 0x73, 0x6f, + 0x6c, 0x69, 0x64, 0x20, 0x23, 0x66, 0x64, 0x35, 0x64, 0x39, 0x33, + 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, + 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x20, + 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, + 0x3a, 0x20, 0x34, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, + 0x20, 0x23, 0x30, 0x30, 0x66, 0x32, 0x63, 0x33, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, + 0x20, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x20, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x34, 0x70, + 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x31, 0x66, + 0x38, 0x65, 0x66, 0x31, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, + 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x68, 0x33, 0x2c, + 0x20, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x20, 0x68, 0x34, 0x2c, 0x20, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x68, 0x35, + 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x39, + 0x61, 0x39, 0x61, 0x39, 0x61, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x67, + 0x72, 0x69, 0x64, 0x2d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x20, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x3a, 0x20, 0x23, 0x32, 0x37, 0x32, 0x39, 0x33, 0x64, 0x3b, 0x7d, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, + 0x65, 0x20, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x2d, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x20, 0x68, 0x33, 0x20, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x46, 0x46, 0x46, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, + 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, + 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, 0x3b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x31, 0x65, 0x31, 0x65, 0x32, 0x66, + 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x62, 0x33, 0x35, 0x35, 0x33, + 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, + 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, + 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, + 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x35, 0x39, 0x35, 0x39, 0x35, 0x66, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x31, 0x65, 0x31, 0x65, + 0x32, 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x32, 0x62, 0x33, 0x35, + 0x35, 0x33, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, + 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, 0x2c, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, + 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x37, 0x37, 0x37, 0x3b, 0x7d, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, + 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x31, 0x65, 0x31, 0x65, 0x32, 0x66, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x31, 0x70, 0x78, + 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x33, 0x42, 0x34, + 0x34, 0x34, 0x43, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, + 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, + 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, + 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x30, 0x33, 0x37, 0x30, 0x42, 0x30, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x31, 0x38, 0x31, 0x38, 0x32, + 0x33, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, + 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, + 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x3e, 0x6c, 0x69, + 0x3e, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, + 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, + 0x65, 0x6e, 0x75, 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x20, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x20, 0x23, 0x46, 0x46, 0x46, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x31, 0x38, 0x31, 0x38, 0x32, 0x33, 0x3b, 0x7d, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, + 0x65, 0x20, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x31, 0x65, 0x31, 0x65, 0x32, 0x66, 0x3b, + 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, + 0x2d, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2d, + 0x74, 0x72, 0x61, 0x63, 0x6b, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, + 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x69, 0x76, 0x65, 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, + 0x74, 0x2d, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, + 0x2d, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x20, 0x7b, 0x2d, 0x77, 0x65, + 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, + 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x20, 0x69, 0x6e, 0x73, 0x65, 0x74, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x36, 0x70, 0x78, 0x20, 0x72, 0x67, + 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2e, + 0x33, 0x29, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, + 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, 0x3b, 0x7d, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x3a, 0x3a, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x63, 0x72, + 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2c, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x69, 0x76, 0x65, 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, + 0x69, 0x74, 0x2d, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, + 0x72, 0x20, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, + 0x30, 0x70, 0x78, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x20, 0x23, 0x39, 0x45, 0x39, 0x45, 0x39, 0x45, 0x3b, 0x7d, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, + 0x65, 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, + 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2d, 0x74, + 0x68, 0x75, 0x6d, 0x62, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, + 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, + 0x76, 0x65, 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, + 0x2d, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x2d, + 0x74, 0x68, 0x75, 0x6d, 0x62, 0x20, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x20, 0x23, 0x31, 0x65, 0x31, 0x65, 0x32, 0x66, 0x3b, + 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, + 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x31, 0x38, 0x31, 0x38, 0x32, 0x33, + 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, + 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x2d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x23, 0x31, + 0x38, 0x31, 0x38, 0x32, 0x33, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, + 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x61, + 0x72, 0x65, 0x61, 0x30, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, + 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x62, 0x61, 0x72, + 0x73, 0x2e, 0x79, 0x30, 0x20, 0x2e, 0x62, 0x61, 0x72, 0x2c, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, + 0x20, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x6c, 0x65, 0x67, 0x65, 0x6e, + 0x64, 0x2e, 0x79, 0x30, 0x20, 0x7b, 0x66, 0x69, 0x6c, 0x6c, 0x3a, + 0x20, 0x23, 0x30, 0x30, 0x37, 0x42, 0x43, 0x33, 0x3b, 0x7d, 0x2e, + 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, + 0x20, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x31, 0x2c, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, + 0x62, 0x61, 0x72, 0x73, 0x2e, 0x79, 0x31, 0x20, 0x2e, 0x62, 0x61, + 0x72, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, + 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x2e, 0x79, 0x31, 0x2c, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, + 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x65, 0x63, 0x74, 0x2e, + 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x2e, 0x79, 0x31, 0x20, 0x7b, + 0x66, 0x69, 0x6c, 0x6c, 0x3a, 0x20, 0x23, 0x64, 0x30, 0x34, 0x38, + 0x62, 0x36, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, + 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x2e, 0x79, 0x30, 0x20, 0x7b, 0x66, 0x69, 0x6c, 0x6c, + 0x3a, 0x20, 0x23, 0x30, 0x30, 0x44, 0x34, 0x45, 0x31, 0x3b, 0x7d, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, 0x70, 0x75, 0x72, 0x70, 0x6c, + 0x65, 0x20, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x30, 0x20, 0x7b, 0x73, + 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3a, 0x20, 0x23, 0x30, 0x30, 0x37, + 0x42, 0x43, 0x33, 0x3b, 0x7d, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x2e, + 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x20, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x31, 0x20, 0x7b, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3a, + 0x20, 0x23, 0x64, 0x30, 0x34, 0x38, 0x62, 0x36, 0x3b, 0x7d, 0x00 +}; + +const int app_css_length = 16588; diff --git a/src/goaccess++/src/appjs.h b/src/goaccess++/src/appjs.h new file mode 100644 index 0000000..6b90833 --- /dev/null +++ b/src/goaccess++/src/appjs.h @@ -0,0 +1,3613 @@ +const char app_js[39696] = { + 0x2f, 0x2a, 0x6a, 0x73, 0x68, 0x69, 0x6e, 0x74, 0x20, 0x73, 0x75, + 0x62, 0x3a, 0x74, 0x72, 0x75, 0x65, 0x2a, 0x2f, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, + 0x27, 0x75, 0x73, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, + 0x27, 0x3b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x24, 0x28, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x29, + 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x29, 0x3b, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x24, 0x24, 0x28, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2c, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x20, 0x3d, 0x20, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x41, 0x6c, 0x6c, 0x28, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, + 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x20, 0x2b, 0x2b, 0x69, 0x29, 0x20, 0x7b, 0x69, + 0x66, 0x20, 0x28, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x20, 0x26, 0x26, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x3d, + 0x20, 0x27, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x27, + 0x29, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, 0x65, + 0x6c, 0x65, 0x6d, 0x73, 0x5b, 0x69, 0x5d, 0x29, 0x3b, 0x7d, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x64, 0x65, 0x62, 0x6f, 0x75, 0x6e, 0x63, + 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x77, 0x61, + 0x69, 0x74, 0x2c, 0x20, 0x6e, 0x6f, 0x77, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x65, 0x62, 0x6f, 0x75, 0x6e, + 0x63, 0x65, 0x64, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x73, 0x20, 0x3d, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x65, 0x64, 0x28, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, + 0x21, 0x6e, 0x6f, 0x77, 0x29, 0x66, 0x75, 0x6e, 0x63, 0x2e, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x61, 0x74, 0x2c, 0x20, + 0x61, 0x72, 0x67, 0x73, 0x29, 0x3b, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x7d, + 0x69, 0x66, 0x20, 0x28, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x29, 0x20, 0x7b, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x28, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x29, 0x3b, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, + 0x66, 0x20, 0x28, 0x6e, 0x6f, 0x77, 0x29, 0x20, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x6f, 0x62, + 0x6a, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x73, 0x29, 0x3b, 0x7d, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x65, 0x64, 0x2c, 0x20, 0x77, 0x61, 0x69, 0x74, + 0x20, 0x7c, 0x7c, 0x20, 0x32, 0x35, 0x30, 0x29, 0x3b, 0x7d, 0x3b, + 0x7d, 0x3b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x3d, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x6f, 0x70, 0x74, 0x73, 0x20, 0x3d, 0x20, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, 0x70, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x7b, + 0x7d, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x54, + 0x70, 0x6c, 0x73, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, + 0x72, 0x74, 0x73, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x55, 0x49, 0x44, 0x61, 0x74, + 0x61, 0x20, 0x3d, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6f, + 0x70, 0x74, 0x73, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, + 0x75, 0x69, 0x44, 0x61, 0x74, 0x61, 0x20, 0x7c, 0x7c, 0x20, 0x7b, + 0x7d, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x44, + 0x61, 0x74, 0x61, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x74, 0x73, 0x20, 0x7c, 0x7c, 0x20, + 0x7b, 0x7d, 0x29, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x3b, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x57, 0x53, 0x43, 0x6f, 0x6e, + 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6f, + 0x70, 0x74, 0x73, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, + 0x77, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x3b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x69, 0x31, 0x38, 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x74, 0x73, 0x20, 0x7c, 0x7c, + 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x69, 0x31, 0x38, 0x6e, 0x20, 0x7c, + 0x7c, 0x20, 0x7b, 0x7d, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, + 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x20, 0x20, 0x3d, 0x20, + 0x7b, 0x27, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x69, 0x64, 0x65, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x27, 0x3a, 0x20, 0x74, 0x72, 0x75, + 0x65, 0x2c, 0x27, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x27, 0x3a, + 0x20, 0x27, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, + 0x6c, 0x27, 0x2c, 0x27, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, + 0x27, 0x3a, 0x20, 0x37, 0x2c, 0x27, 0x74, 0x68, 0x65, 0x6d, 0x65, + 0x27, 0x3a, 0x20, 0x27, 0x64, 0x61, 0x72, 0x6b, 0x50, 0x75, 0x72, + 0x70, 0x6c, 0x65, 0x27, 0x2c, 0x7d, 0x3b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x20, 0x3d, + 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, + 0x74, 0x69, 0x6c, 0x2e, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, + 0x73, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x74, + 0x73, 0x2e, 0x70, 0x72, 0x65, 0x66, 0x73, 0x29, 0x3b, 0x69, 0x66, + 0x20, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x68, 0x61, 0x73, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x28, 0x29, + 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x73, 0x20, 0x3d, + 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, + 0x28, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x28, + 0x27, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x27, 0x29, + 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, + 0x72, 0x65, 0x66, 0x73, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x6d, + 0x65, 0x72, 0x67, 0x65, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, + 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x2c, 0x20, 0x6c, 0x73, + 0x29, 0x3b, 0x7d, 0x69, 0x66, 0x20, 0x28, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x41, 0x70, 0x70, 0x57, 0x53, 0x43, 0x6f, 0x6e, 0x6e, + 0x29, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, + 0x63, 0x6b, 0x65, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, + 0x70, 0x70, 0x57, 0x53, 0x43, 0x6f, 0x6e, 0x6e, 0x29, 0x3b, 0x7d, + 0x2c, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, + 0x3f, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x55, + 0x49, 0x44, 0x61, 0x74, 0x61, 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x5d, 0x20, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, 0x70, + 0x70, 0x55, 0x49, 0x44, 0x61, 0x74, 0x61, 0x3b, 0x7d, 0x2c, 0x67, + 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3f, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, + 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x20, 0x3a, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, + 0x73, 0x3b, 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, + 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, + 0x2e, 0x68, 0x61, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x28, 0x29, 0x29, 0x20, 0x7b, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x73, 0x65, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x28, 0x27, 0x41, + 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x27, 0x2c, 0x20, 0x4a, + 0x53, 0x4f, 0x4e, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x69, + 0x66, 0x79, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, 0x29, + 0x29, 0x29, 0x3b, 0x7d, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3f, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x5b, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x20, 0x3a, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, 0x61, 0x3b, + 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, + 0x6b, 0x65, 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x77, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x20, + 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x68, 0x6f, 0x73, 0x74, + 0x20, 0x3d, 0x20, 0x77, 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x2e, 0x75, + 0x72, 0x6c, 0x20, 0x3f, 0x20, 0x77, 0x73, 0x43, 0x6f, 0x6e, 0x6e, + 0x2e, 0x75, 0x72, 0x6c, 0x20, 0x3a, 0x20, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3f, + 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x6e, + 0x61, 0x6d, 0x65, 0x20, 0x3a, 0x20, 0x22, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x22, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x73, 0x74, 0x72, 0x20, 0x3d, 0x20, 0x2f, 0x5e, 0x28, 0x77, 0x73, + 0x73, 0x3f, 0x3a, 0x5c, 0x2f, 0x5c, 0x2f, 0x29, 0x3f, 0x5b, 0x5e, + 0x5c, 0x2f, 0x5d, 0x2b, 0x3a, 0x5b, 0x30, 0x2d, 0x39, 0x5d, 0x7b, + 0x31, 0x2c, 0x35, 0x7d, 0x5c, 0x2f, 0x2f, 0x2e, 0x74, 0x65, 0x73, + 0x74, 0x28, 0x68, 0x6f, 0x73, 0x74, 0x20, 0x2b, 0x20, 0x22, 0x2f, + 0x22, 0x29, 0x20, 0x3f, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x20, 0x3a, + 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x68, 0x6f, 0x73, + 0x74, 0x20, 0x2b, 0x20, 0x27, 0x3a, 0x27, 0x20, 0x2b, 0x20, 0x77, + 0x73, 0x43, 0x6f, 0x6e, 0x6e, 0x2e, 0x70, 0x6f, 0x72, 0x74, 0x29, + 0x3b, 0x73, 0x74, 0x72, 0x20, 0x3d, 0x20, 0x21, 0x2f, 0x5e, 0x77, + 0x73, 0x73, 0x3f, 0x3a, 0x5c, 0x2f, 0x5c, 0x2f, 0x2f, 0x69, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x28, 0x73, 0x74, 0x72, 0x29, 0x20, 0x3f, + 0x20, 0x28, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x68, + 0x74, 0x74, 0x70, 0x73, 0x3a, 0x22, 0x20, 0x3f, 0x20, 0x27, 0x77, + 0x73, 0x73, 0x3a, 0x2f, 0x2f, 0x27, 0x20, 0x3a, 0x20, 0x27, 0x77, + 0x73, 0x3a, 0x2f, 0x2f, 0x27, 0x29, 0x20, 0x2b, 0x20, 0x73, 0x74, + 0x72, 0x20, 0x3a, 0x20, 0x73, 0x74, 0x72, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x6e, + 0x65, 0x77, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x28, 0x73, 0x74, 0x72, 0x29, 0x3b, 0x73, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x4e, 0x61, 0x76, 0x2e, 0x57, + 0x53, 0x4f, 0x70, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x7d, 0x2e, 0x62, + 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x73, + 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x5b, 0x27, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x27, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, + 0x65, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x44, + 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, + 0x70, 0x61, 0x72, 0x73, 0x65, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x41, 0x70, 0x70, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x28, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, + 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x73, 0x6f, + 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x4e, 0x61, + 0x76, 0x2e, 0x57, 0x53, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, + 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x29, 0x3b, 0x7d, 0x2c, 0x7d, 0x3b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x20, 0x3d, + 0x20, 0x7b, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x3a, 0x20, 0x5b, + 0x22, 0x4a, 0x61, 0x6e, 0x22, 0x2c, 0x20, 0x22, 0x46, 0x65, 0x62, + 0x22, 0x2c, 0x20, 0x22, 0x4d, 0x61, 0x72, 0x22, 0x2c, 0x20, 0x22, + 0x41, 0x70, 0x72, 0x22, 0x2c, 0x20, 0x22, 0x4d, 0x61, 0x79, 0x22, + 0x2c, 0x20, 0x22, 0x4a, 0x75, 0x6e, 0x22, 0x2c, 0x20, 0x22, 0x4a, + 0x75, 0x6c, 0x22, 0x2c, 0x22, 0x41, 0x75, 0x67, 0x22, 0x2c, 0x20, + 0x22, 0x53, 0x65, 0x70, 0x22, 0x2c, 0x20, 0x22, 0x4f, 0x63, 0x74, + 0x22, 0x2c, 0x20, 0x22, 0x4e, 0x6f, 0x76, 0x22, 0x2c, 0x20, 0x22, + 0x44, 0x65, 0x63, 0x22, 0x5d, 0x2c, 0x6d, 0x65, 0x72, 0x67, 0x65, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x6f, 0x2c, 0x20, 0x6e, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x6f, 0x62, 0x6a, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x2c, 0x20, + 0x69, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x69, 0x6c, 0x20, 0x3d, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x6b, 0x65, 0x79, + 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x3b, 0x20, 0x69, 0x20, 0x3c, + 0x20, 0x69, 0x6c, 0x3b, 0x20, 0x69, 0x2b, 0x2b, 0x29, 0x20, 0x7b, + 0x66, 0x6f, 0x72, 0x20, 0x28, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5b, + 0x69, 0x5d, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5b, 0x69, 0x5d, 0x2e, + 0x68, 0x61, 0x73, 0x4f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x28, 0x6b, 0x65, 0x79, 0x29, 0x29, 0x20, 0x7b, + 0x6f, 0x62, 0x6a, 0x5b, 0x6b, 0x65, 0x79, 0x5d, 0x20, 0x3d, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5b, 0x69, + 0x5d, 0x5b, 0x6b, 0x65, 0x79, 0x5d, 0x3b, 0x7d, 0x7d, 0x7d, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x62, 0x6a, 0x3b, 0x7d, + 0x2c, 0x68, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x73, + 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, + 0x73, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x27, 0x27, 0x29, + 0x2e, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, + 0x29, 0x20, 0x7b, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x61, 0x20, + 0x3c, 0x3c, 0x20, 0x35, 0x29, 0x20, 0x2d, 0x20, 0x61, 0x29, 0x20, + 0x2b, 0x20, 0x62, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6f, 0x64, + 0x65, 0x41, 0x74, 0x28, 0x30, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x26, 0x61, 0x3b, 0x7d, 0x2c, 0x20, 0x30, + 0x29, 0x20, 0x3e, 0x3e, 0x3e, 0x20, 0x30, 0x29, 0x2e, 0x74, 0x6f, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x31, 0x36, 0x29, 0x3b, + 0x7d, 0x2c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x64, + 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x2c, 0x20, 0x6e, 0x75, + 0x6d, 0x4f, 0x6e, 0x6c, 0x79, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, + 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, 0x20, 0x3d, 0x3d, 0x20, 0x30, + 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x75, 0x6d, + 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x3f, 0x20, 0x30, 0x20, 0x3a, 0x20, + 0x27, 0x30, 0x20, 0x42, 0x79, 0x74, 0x65, 0x27, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x6b, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x32, 0x34, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x64, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x65, + 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x20, 0x2b, 0x20, 0x31, 0x20, + 0x7c, 0x7c, 0x20, 0x32, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x73, 0x69, + 0x7a, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x27, 0x42, 0x27, 0x2c, + 0x20, 0x27, 0x4b, 0x69, 0x42, 0x27, 0x2c, 0x20, 0x27, 0x4d, 0x69, + 0x42, 0x27, 0x2c, 0x20, 0x27, 0x47, 0x69, 0x42, 0x27, 0x2c, 0x20, + 0x27, 0x54, 0x69, 0x42, 0x27, 0x2c, 0x20, 0x27, 0x50, 0x69, 0x42, + 0x27, 0x5d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x29, 0x20, 0x2f, 0x20, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x6b, 0x29, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x28, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x20, 0x2f, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, + 0x28, 0x6b, 0x2c, 0x20, 0x69, 0x29, 0x29, 0x2e, 0x74, 0x6f, 0x46, + 0x69, 0x78, 0x65, 0x64, 0x28, 0x64, 0x6d, 0x29, 0x29, 0x20, 0x2b, + 0x20, 0x28, 0x6e, 0x75, 0x6d, 0x4f, 0x6e, 0x6c, 0x79, 0x20, 0x3f, + 0x20, 0x27, 0x27, 0x20, 0x3a, 0x20, 0x28, 0x27, 0x20, 0x27, 0x20, + 0x2b, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x5b, 0x69, 0x5d, 0x29, + 0x29, 0x3b, 0x7d, 0x2c, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x6e, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x21, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x70, + 0x61, 0x72, 0x73, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x6e, + 0x29, 0x29, 0x20, 0x26, 0x26, 0x20, 0x69, 0x73, 0x46, 0x69, 0x6e, + 0x69, 0x74, 0x65, 0x28, 0x6e, 0x29, 0x3b, 0x7d, 0x2c, 0x75, 0x74, + 0x69, 0x6d, 0x65, 0x32, 0x73, 0x74, 0x72, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x75, 0x73, 0x65, + 0x63, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x75, 0x73, 0x65, + 0x63, 0x20, 0x3e, 0x3d, 0x20, 0x38, 0x36, 0x34, 0x45, 0x38, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x75, 0x73, + 0x65, 0x63, 0x29, 0x20, 0x2f, 0x20, 0x38, 0x36, 0x34, 0x45, 0x38, + 0x29, 0x2e, 0x74, 0x6f, 0x46, 0x69, 0x78, 0x65, 0x64, 0x28, 0x32, + 0x29, 0x20, 0x2b, 0x20, 0x27, 0x20, 0x64, 0x27, 0x3b, 0x65, 0x6c, + 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x73, 0x65, 0x63, + 0x20, 0x3e, 0x3d, 0x20, 0x33, 0x36, 0x45, 0x38, 0x29, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x75, 0x73, 0x65, 0x63, + 0x29, 0x20, 0x2f, 0x20, 0x33, 0x36, 0x45, 0x38, 0x29, 0x2e, 0x74, + 0x6f, 0x46, 0x69, 0x78, 0x65, 0x64, 0x28, 0x32, 0x29, 0x20, 0x2b, + 0x20, 0x27, 0x20, 0x68, 0x27, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, + 0x69, 0x66, 0x20, 0x28, 0x75, 0x73, 0x65, 0x63, 0x20, 0x3e, 0x3d, + 0x20, 0x36, 0x45, 0x37, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x28, 0x28, 0x75, 0x73, 0x65, 0x63, 0x29, 0x20, 0x2f, 0x20, + 0x36, 0x45, 0x37, 0x29, 0x2e, 0x74, 0x6f, 0x46, 0x69, 0x78, 0x65, + 0x64, 0x28, 0x32, 0x29, 0x20, 0x2b, 0x20, 0x27, 0x20, 0x6d, 0x27, + 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, + 0x73, 0x65, 0x63, 0x20, 0x3e, 0x3d, 0x20, 0x31, 0x45, 0x36, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x75, 0x73, + 0x65, 0x63, 0x29, 0x20, 0x2f, 0x20, 0x31, 0x45, 0x36, 0x29, 0x2e, + 0x74, 0x6f, 0x46, 0x69, 0x78, 0x65, 0x64, 0x28, 0x32, 0x29, 0x20, + 0x2b, 0x20, 0x27, 0x20, 0x73, 0x27, 0x3b, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x69, 0x66, 0x20, 0x28, 0x75, 0x73, 0x65, 0x63, 0x20, 0x3e, + 0x3d, 0x20, 0x31, 0x45, 0x33, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x28, 0x28, 0x75, 0x73, 0x65, 0x63, 0x29, 0x20, 0x2f, + 0x20, 0x31, 0x45, 0x33, 0x29, 0x2e, 0x74, 0x6f, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x28, 0x32, 0x29, 0x20, 0x2b, 0x20, 0x27, 0x20, 0x6d, + 0x73, 0x27, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, + 0x75, 0x73, 0x65, 0x63, 0x29, 0x2e, 0x74, 0x6f, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x28, 0x32, 0x29, 0x20, 0x2b, 0x20, 0x27, 0x20, 0x75, + 0x73, 0x27, 0x3b, 0x7d, 0x2c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x44, 0x61, 0x74, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x73, 0x74, 0x72, 0x29, 0x20, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x79, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x30, 0x2c, 0x34, + 0x29, 0x2c, 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x34, 0x2c, 0x32, 0x29, + 0x20, 0x2d, 0x20, 0x31, 0x2c, 0x20, 0x64, 0x20, 0x3d, 0x20, 0x73, + 0x74, 0x72, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x36, + 0x2c, 0x32, 0x29, 0x2c, 0x68, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x38, 0x2c, 0x32, + 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x30, 0x2c, 0x20, 0x69, 0x20, 0x3d, + 0x20, 0x73, 0x74, 0x72, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x28, 0x31, 0x30, 0x2c, 0x20, 0x32, 0x29, 0x20, 0x20, 0x7c, 0x7c, + 0x20, 0x30, 0x2c, 0x20, 0x73, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x31, 0x32, 0x2c, + 0x20, 0x32, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x30, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x64, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x65, + 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x28, 0x79, 0x2c, 0x6d, 0x2c, + 0x64, 0x2c, 0x68, 0x2c, 0x69, 0x2c, 0x73, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x28, 0x27, 0x30, + 0x27, 0x20, 0x2b, 0x20, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x67, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x29, 0x2e, 0x73, 0x6c, + 0x69, 0x63, 0x65, 0x28, 0x2d, 0x32, 0x29, 0x20, 0x2b, 0x20, 0x27, + 0x2f, 0x27, 0x20, 0x2b, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6d, + 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x5b, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x67, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x28, 0x29, 0x5d, + 0x20, 0x2b, 0x20, 0x27, 0x2f, 0x27, 0x20, 0x2b, 0x20, 0x64, 0x61, + 0x74, 0x65, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x59, + 0x65, 0x61, 0x72, 0x28, 0x29, 0x3b, 0x31, 0x30, 0x20, 0x3c, 0x3d, + 0x20, 0x73, 0x74, 0x72, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x6f, 0x75, 0x74, 0x20, 0x2b, 0x3d, + 0x20, 0x22, 0x3a, 0x22, 0x20, 0x2b, 0x20, 0x68, 0x29, 0x3b, 0x31, + 0x32, 0x20, 0x3c, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x26, 0x26, 0x20, 0x28, 0x6f, 0x75, + 0x74, 0x20, 0x2b, 0x3d, 0x20, 0x22, 0x3a, 0x22, 0x20, 0x2b, 0x20, + 0x69, 0x29, 0x3b, 0x31, 0x34, 0x20, 0x3c, 0x3d, 0x20, 0x73, 0x74, + 0x72, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x6f, 0x75, 0x74, 0x20, 0x2b, 0x3d, 0x20, 0x22, 0x3a, + 0x22, 0x20, 0x2b, 0x20, 0x73, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x7d, 0x2c, 0x66, 0x6d, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x2c, 0x20, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x3d, + 0x20, 0x30, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x64, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x29, 0x76, 0x61, 0x6c, 0x20, 0x3d, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3b, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x20, 0x28, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x29, 0x20, 0x7b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x75, + 0x74, 0x69, 0x6d, 0x65, 0x27, 0x3a, 0x76, 0x61, 0x6c, 0x20, 0x3d, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6d, 0x65, + 0x32, 0x73, 0x74, 0x72, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, + 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x63, 0x61, 0x73, 0x65, + 0x20, 0x27, 0x64, 0x61, 0x74, 0x65, 0x27, 0x3a, 0x76, 0x61, 0x6c, + 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x29, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x63, + 0x61, 0x73, 0x65, 0x20, 0x27, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x27, 0x3a, 0x69, 0x66, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x28, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x29, 0x76, 0x61, 0x6c, 0x20, + 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x74, 0x6f, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x29, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x63, 0x61, + 0x73, 0x65, 0x20, 0x27, 0x62, 0x79, 0x74, 0x65, 0x73, 0x27, 0x3a, + 0x76, 0x61, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x64, 0x65, 0x63, + 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x29, 0x3b, 0x62, 0x72, 0x65, 0x61, + 0x6b, 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x27, 0x3a, 0x76, 0x61, 0x6c, 0x20, 0x3d, + 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x28, 0x27, 0x2c, 0x27, 0x2c, 0x20, 0x27, 0x2e, + 0x27, 0x29, 0x29, 0x2e, 0x74, 0x6f, 0x46, 0x69, 0x78, 0x65, 0x64, + 0x28, 0x32, 0x29, 0x20, 0x2b, 0x20, 0x27, 0x25, 0x27, 0x3b, 0x62, + 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, + 0x74, 0x69, 0x6d, 0x65, 0x27, 0x3a, 0x69, 0x66, 0x20, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4e, 0x75, 0x6d, 0x65, 0x72, + 0x69, 0x63, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x29, 0x76, + 0x61, 0x6c, 0x20, 0x3d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x74, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x29, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, + 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x73, 0x65, 0x63, 0x73, + 0x27, 0x3a, 0x76, 0x61, 0x6c, 0x20, 0x3d, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x2b, 0x20, 0x27, 0x20, 0x73, 0x65, 0x63, 0x73, + 0x27, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x76, 0x61, 0x6c, 0x20, 0x3d, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3b, 0x7d, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x3d, + 0x20, 0x30, 0x20, 0x3f, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x76, 0x61, 0x6c, 0x29, 0x20, 0x3a, 0x20, 0x76, 0x61, 0x6c, + 0x3b, 0x7d, 0x2c, 0x69, 0x73, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, + 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x28, 0x29, 0x2c, 0x20, 0x75, 0x69, 0x20, 0x3d, 0x20, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x21, 0x75, 0x69, 0x2e, + 0x68, 0x61, 0x73, 0x4f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, + 0x7c, 0x7c, 0x20, 0x21, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x68, 0x61, + 0x73, 0x4f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7c, 0x7c, + 0x20, 0x21, 0x75, 0x69, 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, + 0x2e, 0x69, 0x64, 0x29, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, + 0x7b, 0x69, 0x66, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, + 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x28, 0x69, 0x74, 0x65, + 0x6d, 0x29, 0x20, 0x26, 0x26, 0x20, 0x27, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x27, 0x20, 0x69, 0x6e, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x74, 0x65, 0x6d, + 0x2e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x3b, 0x7d, 0x2c, 0x67, + 0x65, 0x74, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, + 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x27, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x27, 0x20, 0x69, + 0x6e, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x66, 0x6d, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x2e, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x27, 0x70, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x27, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x7d, + 0x2c, 0x69, 0x73, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x6f, + 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, + 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x28, 0x6f, 0x29, 0x3b, 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x70, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x6f, 0x2c, 0x20, 0x73, 0x2c, 0x20, 0x76, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x20, 0x3d, 0x20, 0x6f, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x61, + 0x20, 0x3d, 0x20, 0x73, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, + 0x27, 0x2e, 0x27, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, + 0x61, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x6e, + 0x20, 0x3d, 0x20, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x6e, 0x2d, 0x31, 0x3b, 0x20, + 0x2b, 0x2b, 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6b, + 0x20, 0x3d, 0x20, 0x61, 0x5b, 0x69, 0x5d, 0x3b, 0x69, 0x66, 0x20, + 0x28, 0x21, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5b, 0x6b, 0x5d, + 0x29, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5b, 0x6b, 0x5d, 0x20, + 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x20, 0x3d, 0x20, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5b, 0x6b, + 0x5d, 0x3b, 0x7d, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5b, 0x61, + 0x5b, 0x6e, 0x2d, 0x31, 0x5d, 0x5d, 0x20, 0x3d, 0x20, 0x76, 0x3b, + 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x6f, + 0x2c, 0x20, 0x73, 0x29, 0x20, 0x7b, 0x73, 0x20, 0x3d, 0x20, 0x73, + 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x2f, 0x5c, + 0x5b, 0x28, 0x5c, 0x77, 0x2b, 0x29, 0x5c, 0x5d, 0x2f, 0x67, 0x2c, + 0x20, 0x27, 0x2e, 0x24, 0x31, 0x27, 0x29, 0x3b, 0x73, 0x20, 0x3d, + 0x20, 0x73, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, + 0x2f, 0x5e, 0x5c, 0x2e, 0x2f, 0x2c, 0x20, 0x27, 0x27, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x73, 0x2e, 0x73, + 0x70, 0x6c, 0x69, 0x74, 0x28, 0x27, 0x2e, 0x27, 0x29, 0x3b, 0x66, + 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, 0x20, 0x3d, + 0x20, 0x30, 0x2c, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x61, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, + 0x6e, 0x3b, 0x20, 0x2b, 0x2b, 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x6b, 0x20, 0x3d, 0x20, 0x61, 0x5b, 0x69, 0x5d, 0x3b, + 0x69, 0x66, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x28, 0x6f, 0x29, 0x20, 0x26, + 0x26, 0x20, 0x6b, 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x29, 0x20, 0x7b, + 0x6f, 0x20, 0x3d, 0x20, 0x6f, 0x5b, 0x6b, 0x5d, 0x3b, 0x7d, 0x20, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x3b, 0x7d, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6f, 0x3b, 0x7d, 0x2c, 0x68, 0x61, 0x73, 0x4c, 0x6f, 0x63, 0x61, + 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, + 0x7b, 0x74, 0x72, 0x79, 0x20, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x73, 0x65, 0x74, + 0x49, 0x74, 0x65, 0x6d, 0x28, 0x27, 0x74, 0x65, 0x73, 0x74, 0x27, + 0x2c, 0x20, 0x27, 0x74, 0x65, 0x73, 0x74, 0x27, 0x29, 0x3b, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x28, 0x27, 0x74, 0x65, 0x73, 0x74, 0x27, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x7d, + 0x20, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28, 0x65, 0x29, 0x20, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x3b, 0x7d, 0x7d, 0x2c, 0x69, 0x73, 0x57, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x6c, + 0x65, 0x6d, 0x54, 0x6f, 0x70, 0x20, 0x3d, 0x20, 0x65, 0x6c, 0x2e, + 0x67, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x74, 0x28, + 0x29, 0x2e, 0x74, 0x6f, 0x70, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x65, + 0x6c, 0x65, 0x6d, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x20, 0x3d, + 0x20, 0x65, 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x63, 0x74, 0x28, 0x29, 0x2e, 0x62, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x6c, + 0x65, 0x6d, 0x54, 0x6f, 0x70, 0x20, 0x3c, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x26, 0x26, 0x20, 0x65, 0x6c, 0x65, + 0x6d, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x20, 0x3e, 0x3d, 0x20, + 0x30, 0x3b, 0x7d, 0x2c, 0x7d, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x20, 0x3d, 0x20, 0x7b, 0x72, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x42, 0x6f, 0x78, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x61, 0x74, + 0x61, 0x2c, 0x20, 0x75, 0x69, 0x2c, 0x20, 0x72, 0x6f, 0x77, 0x2c, + 0x20, 0x78, 0x2c, 0x20, 0x69, 0x64, 0x78, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x77, 0x72, 0x61, 0x70, 0x20, 0x3d, 0x20, 0x24, + 0x28, 0x27, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x6c, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x27, + 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x69, 0x64, 0x78, 0x20, 0x25, + 0x20, 0x36, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x7b, 0x72, + 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x27, 0x64, 0x69, 0x76, 0x27, + 0x29, 0x3b, 0x72, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x72, 0x6f, 0x77, 0x27, + 0x29, 0x3b, 0x77, 0x72, 0x61, 0x70, 0x2e, 0x61, 0x70, 0x70, 0x65, + 0x6e, 0x64, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x72, 0x6f, 0x77, + 0x29, 0x3b, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x62, 0x6f, 0x78, 0x20, + 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x28, 0x27, 0x64, 0x69, 0x76, 0x27, 0x29, 0x3b, 0x62, + 0x6f, 0x78, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, + 0x4c, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x70, 0x6c, 0x73, 0x2e, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x28, 0x7b, 0x27, + 0x69, 0x64, 0x27, 0x3a, 0x20, 0x78, 0x2c, 0x27, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x27, 0x3a, 0x20, 0x75, 0x69, + 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5b, 0x78, 0x5d, 0x2e, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x27, 0x3a, 0x20, 0x75, 0x69, 0x2e, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x5b, 0x78, 0x5d, 0x2e, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x2c, 0x27, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x27, 0x3a, + 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, + 0x74, 0x69, 0x6c, 0x2e, 0x66, 0x6d, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x28, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x78, 0x5d, 0x2c, 0x20, + 0x75, 0x69, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5b, 0x78, 0x5d, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x29, 0x2c, + 0x7d, 0x29, 0x3b, 0x72, 0x6f, 0x77, 0x2e, 0x61, 0x70, 0x70, 0x65, + 0x6e, 0x64, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x62, 0x6f, 0x78, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x6f, + 0x77, 0x3b, 0x7d, 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x75, + 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x64, 0x78, + 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, + 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x24, 0x28, 0x27, 0x2e, 0x77, + 0x72, 0x61, 0x70, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, + 0x27, 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, + 0x4c, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x70, 0x6c, 0x73, 0x2e, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x2e, 0x77, 0x72, 0x61, 0x70, + 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x28, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, + 0x6d, 0x65, 0x72, 0x67, 0x65, 0x28, 0x75, 0x69, 0x2c, 0x20, 0x7b, + 0x27, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x27, 0x3a, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x2c, 0x27, 0x66, 0x72, + 0x6f, 0x6d, 0x27, 0x3a, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x2c, 0x27, + 0x74, 0x6f, 0x27, 0x3a, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x65, + 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x2c, 0x7d, 0x29, 0x29, + 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x78, + 0x20, 0x69, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, + 0x69, 0x66, 0x20, 0x28, 0x21, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x68, + 0x61, 0x73, 0x4f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x28, 0x78, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x21, 0x75, + 0x69, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x68, 0x61, 0x73, + 0x4f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x28, 0x78, 0x29, 0x29, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, + 0x65, 0x3b, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x42, 0x6f, 0x78, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x75, 0x69, 0x2c, 0x20, + 0x72, 0x6f, 0x77, 0x2c, 0x20, 0x78, 0x2c, 0x20, 0x69, 0x64, 0x78, + 0x29, 0x3b, 0x69, 0x64, 0x78, 0x2b, 0x2b, 0x3b, 0x7d, 0x7d, 0x2c, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x69, 0x20, 0x3d, + 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, + 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, 0x27, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x27, 0x29, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x28, 0x27, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x27, 0x29, 0x2c, 0x20, + 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x28, + 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x75, 0x69, 0x29, 0x3b, 0x7d, + 0x7d, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x4e, 0x61, 0x76, 0x20, 0x3d, 0x20, 0x7b, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x24, 0x28, 0x27, 0x2e, 0x6e, + 0x61, 0x76, 0x2d, 0x62, 0x61, 0x72, 0x73, 0x27, 0x29, 0x2e, 0x6f, + 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, + 0x7b, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x70, + 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x3b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4d, + 0x65, 0x6e, 0x75, 0x28, 0x65, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, + 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x24, 0x28, + 0x27, 0x2e, 0x6e, 0x61, 0x76, 0x2d, 0x67, 0x65, 0x61, 0x72, 0x73, + 0x27, 0x29, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, + 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x65, 0x29, 0x20, 0x7b, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x70, + 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x73, 0x28, 0x65, 0x29, 0x3b, + 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x3b, 0x24, 0x28, 0x27, 0x2e, 0x6e, 0x61, 0x76, 0x2d, 0x6d, + 0x69, 0x6e, 0x69, 0x62, 0x61, 0x72, 0x73, 0x27, 0x29, 0x2e, 0x6f, + 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, + 0x7b, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x70, + 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x3b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4f, + 0x70, 0x74, 0x73, 0x28, 0x65, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, + 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x24, 0x28, + 0x27, 0x62, 0x6f, 0x64, 0x79, 0x27, 0x29, 0x2e, 0x6f, 0x6e, 0x63, + 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x24, + 0x28, 0x27, 0x6e, 0x61, 0x76, 0x27, 0x29, 0x2e, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x28, 0x27, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x27, + 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, 0x2e, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x6a, 0x73, 0x6f, 0x6e, 0x27, 0x2c, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, + 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, + 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4a, 0x53, 0x4f, 0x4e, 0x28, 0x65, + 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, + 0x2e, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x2d, 0x62, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, + 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, + 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x65, 0x74, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x28, 0x27, + 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x27, 0x29, 0x3b, 0x7d, 0x2e, + 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, + 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, 0x2e, 0x74, 0x68, 0x65, + 0x6d, 0x65, 0x2d, 0x64, 0x61, 0x72, 0x6b, 0x2d, 0x62, 0x6c, 0x75, + 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, + 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, + 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x73, 0x65, 0x74, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x28, 0x27, 0x64, + 0x61, 0x72, 0x6b, 0x42, 0x6c, 0x75, 0x65, 0x27, 0x29, 0x3b, 0x7d, + 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, + 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, 0x2e, 0x74, 0x68, + 0x65, 0x6d, 0x65, 0x2d, 0x64, 0x61, 0x72, 0x6b, 0x2d, 0x67, 0x72, + 0x61, 0x79, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, + 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, + 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x65, 0x74, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x28, 0x27, + 0x64, 0x61, 0x72, 0x6b, 0x47, 0x72, 0x61, 0x79, 0x27, 0x29, 0x3b, + 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, 0x2e, 0x74, + 0x68, 0x65, 0x6d, 0x65, 0x2d, 0x64, 0x61, 0x72, 0x6b, 0x2d, 0x70, + 0x75, 0x72, 0x70, 0x6c, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, + 0x29, 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, + 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x54, 0x68, 0x65, 0x6d, + 0x65, 0x28, 0x27, 0x64, 0x61, 0x72, 0x6b, 0x50, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x27, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, + 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x24, + 0x24, 0x28, 0x27, 0x2e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2d, + 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x27, + 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, 0x74, 0x65, + 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x65, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, + 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x28, 0x27, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x27, 0x29, 0x3b, + 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, 0x2e, 0x6c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2d, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, + 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, + 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x65, 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, + 0x28, 0x27, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x27, + 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, + 0x5b, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x65, 0x72, 0x70, 0x61, + 0x67, 0x65, 0x5d, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, + 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, + 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x65, 0x72, 0x50, 0x61, 0x67, + 0x65, 0x28, 0x65, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, + 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x24, + 0x24, 0x28, 0x27, 0x5b, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x73, 0x68, + 0x6f, 0x77, 0x2d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x5d, 0x27, + 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, 0x74, 0x65, + 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x65, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x28, + 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, + 0x5b, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x61, 0x75, 0x74, 0x6f, 0x68, + 0x69, 0x64, 0x65, 0x2d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x5d, + 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, 0x74, + 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, + 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x65, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x69, + 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x28, 0x29, 0x3b, + 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x29, 0x29, 0x3b, 0x7d, 0x2c, 0x64, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x4a, 0x53, 0x4f, 0x4e, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x61, 0x72, 0x67, 0x20, + 0x3d, 0x20, 0x65, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x22, 0x74, 0x65, 0x78, + 0x74, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3b, 0x63, 0x68, 0x61, 0x72, + 0x73, 0x65, 0x74, 0x3d, 0x75, 0x74, 0x66, 0x2d, 0x38, 0x2c, 0x22, + 0x20, 0x2b, 0x20, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x55, 0x52, + 0x49, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x28, + 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x69, 0x66, 0x79, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x44, + 0x61, 0x74, 0x61, 0x28, 0x29, 0x29, 0x29, 0x3b, 0x74, 0x61, 0x72, + 0x67, 0x2e, 0x68, 0x72, 0x65, 0x66, 0x20, 0x3d, 0x20, 0x27, 0x64, + 0x61, 0x74, 0x61, 0x3a, 0x27, 0x20, 0x2b, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x3b, 0x74, 0x61, 0x72, 0x67, 0x2e, 0x64, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x3d, 0x20, 0x27, 0x67, 0x6f, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x28, + 0x2b, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, + 0x29, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x6a, 0x73, 0x6f, 0x6e, 0x27, + 0x3b, 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x29, 0x20, 0x7b, + 0x69, 0x66, 0x20, 0x28, 0x27, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, + 0x6e, 0x74, 0x61, 0x6c, 0x27, 0x20, 0x3d, 0x3d, 0x20, 0x6c, 0x61, + 0x79, 0x6f, 0x75, 0x74, 0x29, 0x20, 0x7b, 0x24, 0x28, 0x27, 0x2e, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x27, 0x29, + 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, + 0x61, 0x64, 0x64, 0x28, 0x27, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x2d, 0x66, 0x6c, 0x75, 0x69, 0x64, 0x27, 0x29, + 0x3b, 0x24, 0x28, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x27, 0x29, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x28, 0x27, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x27, 0x29, 0x3b, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, + 0x66, 0x20, 0x28, 0x27, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x27, 0x20, 0x3d, 0x3d, 0x20, 0x6c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x29, 0x20, 0x7b, 0x24, 0x28, 0x27, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2d, 0x66, 0x6c, 0x75, 0x69, + 0x64, 0x27, 0x29, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x28, 0x27, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x27, 0x29, 0x3b, 0x24, 0x28, + 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x27, 0x29, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x27, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2d, 0x66, 0x6c, + 0x75, 0x69, 0x64, 0x27, 0x29, 0x3b, 0x7d, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x73, 0x5b, 0x27, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x27, + 0x5d, 0x20, 0x3d, 0x20, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x3b, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x73, 0x65, + 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, 0x29, 0x3b, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x73, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x28, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x2e, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x29, + 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x3b, 0x7d, 0x2c, 0x74, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x69, + 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x48, + 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x3d, + 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x48, + 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x28, 0x29, + 0x3b, 0x24, 0x24, 0x28, 0x27, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x27, 0x2c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, + 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x61, + 0x75, 0x74, 0x6f, 0x48, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x73, 0x29, 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x27, 0x68, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x2d, 0x78, 0x73, 0x27, 0x29, 0x3b, 0x7d, 0x20, 0x65, 0x6c, + 0x73, 0x65, 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x61, 0x64, 0x64, + 0x28, 0x27, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x2d, 0x78, 0x73, + 0x27, 0x29, 0x3b, 0x7d, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x73, 0x5b, 0x27, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x69, 0x64, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x27, 0x5d, 0x20, 0x3d, + 0x20, 0x21, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x69, 0x64, 0x65, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, + 0x73, 0x28, 0x29, 0x3b, 0x7d, 0x2c, 0x74, 0x6f, 0x67, 0x67, 0x6c, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x75, 0x69, 0x20, 0x3d, 0x20, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x68, + 0x6f, 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x28, 0x29, 0x3b, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x73, + 0x28, 0x75, 0x69, 0x29, 0x2e, 0x66, 0x6f, 0x72, 0x45, 0x61, 0x63, + 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x69, 0x64, 0x78, + 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, + 0x69, 0x73, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x75, 0x69, + 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x5b, 0x27, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x27, 0x5d, 0x20, 0x3d, 0x20, 0x21, 0x73, 0x68, + 0x6f, 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x3b, 0x7d, 0x2e, + 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, + 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, + 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x5b, 0x27, 0x73, 0x68, + 0x6f, 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x27, 0x5d, 0x20, + 0x3d, 0x20, 0x21, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x73, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, 0x29, + 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x3b, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, + 0x73, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x28, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x3b, + 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x74, 0x68, 0x65, 0x6d, 0x65, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, + 0x28, 0x21, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x29, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x3b, 0x24, 0x28, 0x27, 0x68, 0x74, 0x6d, 0x6c, + 0x27, 0x29, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x20, 0x3d, 0x20, 0x27, 0x27, 0x3b, 0x73, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x28, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x29, 0x20, 0x7b, + 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x64, 0x61, 0x72, 0x6b, 0x47, + 0x72, 0x61, 0x79, 0x27, 0x3a, 0x24, 0x28, 0x27, 0x68, 0x74, 0x6d, + 0x6c, 0x27, 0x29, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x28, 0x27, 0x64, 0x61, 0x72, + 0x6b, 0x27, 0x29, 0x3b, 0x24, 0x28, 0x27, 0x68, 0x74, 0x6d, 0x6c, + 0x27, 0x29, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x2e, 0x61, 0x64, 0x64, 0x28, 0x27, 0x67, 0x72, 0x61, 0x79, + 0x27, 0x29, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x63, 0x61, + 0x73, 0x65, 0x20, 0x27, 0x64, 0x61, 0x72, 0x6b, 0x42, 0x6c, 0x75, + 0x65, 0x27, 0x3a, 0x24, 0x28, 0x27, 0x68, 0x74, 0x6d, 0x6c, 0x27, + 0x29, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x2e, 0x61, 0x64, 0x64, 0x28, 0x27, 0x64, 0x61, 0x72, 0x6b, 0x27, + 0x29, 0x3b, 0x24, 0x28, 0x27, 0x68, 0x74, 0x6d, 0x6c, 0x27, 0x29, + 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, + 0x61, 0x64, 0x64, 0x28, 0x27, 0x62, 0x6c, 0x75, 0x65, 0x27, 0x29, + 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x63, 0x61, 0x73, 0x65, + 0x20, 0x27, 0x64, 0x61, 0x72, 0x6b, 0x50, 0x75, 0x72, 0x70, 0x6c, + 0x65, 0x27, 0x3a, 0x24, 0x28, 0x27, 0x68, 0x74, 0x6d, 0x6c, 0x27, + 0x29, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x2e, 0x61, 0x64, 0x64, 0x28, 0x27, 0x64, 0x61, 0x72, 0x6b, 0x27, + 0x29, 0x3b, 0x24, 0x28, 0x27, 0x68, 0x74, 0x6d, 0x6c, 0x27, 0x29, + 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, + 0x61, 0x64, 0x64, 0x28, 0x27, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, + 0x27, 0x29, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x7d, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x73, 0x5b, 0x27, 0x74, 0x68, 0x65, 0x6d, + 0x65, 0x27, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x65, + 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x73, + 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, 0x29, 0x3b, 0x7d, + 0x2c, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x6b, 0x65, + 0x79, 0x29, 0x20, 0x7b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x28, + 0x6b, 0x65, 0x79, 0x29, 0x20, 0x7b, 0x63, 0x61, 0x73, 0x65, 0x20, + 0x27, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x73, 0x27, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x27, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x27, 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x73, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3a, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x27, 0x66, 0x69, 0x6c, 0x65, 0x27, 0x3b, 0x63, 0x61, 0x73, + 0x65, 0x20, 0x27, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x27, 0x20, 0x3a, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x27, 0x66, 0x69, 0x6c, + 0x65, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x27, 0x3b, 0x63, 0x61, 0x73, + 0x65, 0x20, 0x27, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, + 0x64, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x27, 0x66, 0x69, 0x6c, + 0x65, 0x2d, 0x6f, 0x27, 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, + 0x68, 0x6f, 0x73, 0x74, 0x73, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x27, 0x75, 0x73, 0x65, 0x72, 0x27, 0x3b, + 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x6f, 0x73, 0x27, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3a, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x27, + 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x27, 0x3b, 0x63, 0x61, + 0x73, 0x65, 0x20, 0x27, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, + 0x73, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x27, 0x63, 0x68, + 0x72, 0x6f, 0x6d, 0x65, 0x27, 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, + 0x27, 0x76, 0x69, 0x73, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x27, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x2d, 0x6f, 0x27, 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x76, + 0x68, 0x6f, 0x73, 0x74, 0x73, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x27, 0x74, 0x68, 0x2d, 0x6c, 0x69, 0x73, 0x74, + 0x27, 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x72, 0x73, 0x27, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3a, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x27, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2d, + 0x6c, 0x69, 0x6e, 0x6b, 0x27, 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, + 0x27, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x73, 0x69, 0x74, 0x65, 0x73, 0x27, 0x20, 0x3a, 0x20, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x27, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x27, 0x3b, 0x63, + 0x61, 0x73, 0x65, 0x20, 0x27, 0x6b, 0x65, 0x79, 0x70, 0x68, 0x72, + 0x61, 0x73, 0x65, 0x73, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x3a, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x27, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x27, 0x3b, 0x63, 0x61, 0x73, 0x65, + 0x20, 0x27, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x73, 0x27, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x27, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x27, 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, + 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x27, 0x75, 0x73, 0x65, 0x72, 0x73, 0x27, + 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x67, 0x65, 0x6f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3a, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x27, 0x6d, 0x61, 0x70, 0x2d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, + 0x27, 0x3b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x3a, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x27, 0x70, 0x69, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x27, 0x3b, 0x7d, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, + 0x69, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, + 0x49, 0x28, 0x29, 0x2c, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x20, 0x3d, + 0x20, 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x69, 0x6e, 0x20, + 0x75, 0x69, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, + 0x2e, 0x69, 0x73, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x63, + 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x3b, 0x6d, 0x65, 0x6e, + 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x7b, 0x27, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x27, 0x3a, 0x20, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x68, 0x61, 0x73, 0x68, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x28, 0x31, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2c, 0x27, 0x68, 0x65, 0x61, 0x64, 0x27, 0x3a, + 0x20, 0x75, 0x69, 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x2e, + 0x68, 0x65, 0x61, 0x64, 0x2c, 0x27, 0x6b, 0x65, 0x79, 0x27, 0x3a, + 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x27, 0x69, 0x63, 0x6f, + 0x6e, 0x27, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, + 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x2c, 0x7d, 0x29, 0x3b, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6d, 0x65, 0x6e, 0x75, 0x3b, 0x7d, 0x2c, 0x73, 0x65, + 0x74, 0x50, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, + 0x20, 0x7b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x5b, 0x27, 0x70, + 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x27, 0x5d, 0x20, 0x3d, 0x20, + 0x2b, 0x65, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, + 0x74, 0x61, 0x2d, 0x70, 0x65, 0x72, 0x70, 0x61, 0x67, 0x65, 0x27, + 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x41, 0x70, 0x70, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x28, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, + 0x73, 0x28, 0x29, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x54, 0x68, + 0x65, 0x6d, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x74, + 0x68, 0x65, 0x6d, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x27, 0x64, 0x61, + 0x72, 0x6b, 0x47, 0x72, 0x61, 0x79, 0x27, 0x3b, 0x7d, 0x2c, 0x67, + 0x65, 0x74, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, + 0x65, 0x66, 0x73, 0x2e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x20, + 0x7c, 0x7c, 0x20, 0x27, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, + 0x74, 0x61, 0x6c, 0x27, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x50, + 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, + 0x73, 0x2e, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x20, 0x7c, + 0x7c, 0x20, 0x37, 0x3b, 0x7d, 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x4f, 0x70, 0x74, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x6f, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x6f, 0x5b, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x4c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x28, 0x29, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x3b, 0x6f, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, + 0x65, 0x74, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x28, 0x29, 0x5d, 0x20, + 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x6f, 0x5b, 0x27, 0x70, + 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x27, 0x20, 0x2b, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x65, 0x72, 0x50, + 0x61, 0x67, 0x65, 0x28, 0x29, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x3b, 0x6f, 0x5b, 0x27, 0x61, 0x75, 0x74, 0x6f, 0x48, + 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x27, 0x5d, + 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x6f, 0x48, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x28, 0x29, 0x3b, 0x6f, 0x5b, 0x27, 0x73, 0x68, 0x6f, 0x77, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x27, 0x5d, 0x20, 0x3d, 0x20, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x28, 0x29, 0x3b, 0x6f, 0x5b, 0x27, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x27, 0x5d, 0x20, 0x3d, 0x20, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x31, 0x38, 0x6e, + 0x3b, 0x24, 0x28, 0x27, 0x2e, 0x6e, 0x61, 0x76, 0x2d, 0x6c, 0x69, + 0x73, 0x74, 0x27, 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, + 0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x70, 0x6c, 0x73, + 0x2e, 0x4e, 0x61, 0x76, 0x2e, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x72, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x28, 0x6f, 0x29, 0x3b, 0x24, 0x28, + 0x27, 0x6e, 0x61, 0x76, 0x27, 0x29, 0x2e, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x74, 0x6f, 0x67, 0x67, 0x6c, + 0x65, 0x28, 0x27, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x27, 0x29, + 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x28, 0x29, 0x3b, 0x7d, 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x4d, 0x65, 0x6e, 0x75, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x24, + 0x28, 0x27, 0x2e, 0x6e, 0x61, 0x76, 0x2d, 0x6c, 0x69, 0x73, 0x74, + 0x27, 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, + 0x4c, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x70, 0x6c, 0x73, 0x2e, 0x4e, + 0x61, 0x76, 0x2e, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x72, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x28, 0x7b, 0x27, 0x6e, 0x61, 0x76, 0x27, 0x3a, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x28, 0x29, 0x2c, 0x27, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x6c, 0x6c, 0x27, 0x3a, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x68, 0x61, 0x73, 0x68, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x28, 0x31, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x2c, 0x27, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x27, 0x3a, 0x20, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x31, 0x38, 0x6e, + 0x2c, 0x7d, 0x29, 0x3b, 0x24, 0x28, 0x27, 0x6e, 0x61, 0x76, 0x27, + 0x29, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x2e, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x28, 0x27, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x27, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x28, 0x29, 0x3b, 0x7d, + 0x2c, 0x57, 0x53, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, + 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x28, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x57, 0x53, 0x43, + 0x6f, 0x6e, 0x6e, 0x29, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x24, 0x24, 0x28, 0x27, 0x2e, 0x6e, 0x61, 0x76, 0x2d, 0x77, + 0x73, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x27, 0x2c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, + 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x20, 0x69, 0x74, 0x65, 0x6d, + 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x27, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x27, 0x3b, 0x20, 0x7d, 0x29, 0x3b, 0x7d, 0x2c, 0x57, 0x53, + 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x24, 0x24, + 0x28, 0x27, 0x2e, 0x6e, 0x61, 0x76, 0x2d, 0x77, 0x73, 0x2d, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, + 0x29, 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x28, 0x27, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x27, 0x29, 0x3b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x73, + 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x28, 0x27, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x27, 0x2c, 0x20, 0x27, + 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x27, 0x29, 0x3b, 0x7d, 0x29, 0x3b, 0x7d, 0x2c, 0x57, 0x53, + 0x4f, 0x70, 0x65, 0x6e, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x24, 0x24, 0x28, + 0x27, 0x2e, 0x6e, 0x61, 0x76, 0x2d, 0x77, 0x73, 0x2d, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, + 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x28, 0x27, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x27, 0x29, + 0x3b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x27, 0x2c, 0x20, 0x27, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x27, 0x20, + 0x2b, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x41, 0x70, 0x70, 0x57, 0x53, 0x43, 0x6f, 0x6e, 0x6e, 0x2e, 0x75, + 0x72, 0x6c, 0x29, 0x3b, 0x7d, 0x29, 0x3b, 0x7d, 0x2c, 0x72, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x57, 0x72, 0x61, 0x70, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x6e, 0x61, + 0x76, 0x29, 0x20, 0x7b, 0x24, 0x28, 0x27, 0x6e, 0x61, 0x76, 0x27, + 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, + 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x41, 0x70, 0x70, 0x54, 0x70, 0x6c, 0x73, 0x2e, 0x4e, 0x61, + 0x76, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2e, 0x72, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x69, 0x31, 0x38, 0x6e, 0x29, 0x3b, 0x7d, 0x2c, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, + 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x54, 0x68, + 0x65, 0x6d, 0x65, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x2e, + 0x74, 0x68, 0x65, 0x6d, 0x65, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x57, 0x72, 0x61, 0x70, + 0x28, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x57, 0x53, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x28, 0x29, 0x3b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x28, 0x29, 0x3b, + 0x7d, 0x7d, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x7b, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x24, + 0x24, 0x28, 0x27, 0x5b, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x74, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x3d, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x5d, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, + 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, + 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x4f, 0x70, 0x74, 0x73, 0x28, + 0x65, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, + 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x69, 0x74, 0x65, + 0x6d, 0x2e, 0x6f, 0x6e, 0x62, 0x6c, 0x75, 0x72, 0x20, 0x3d, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, + 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x6c, 0x6f, + 0x73, 0x65, 0x4f, 0x70, 0x74, 0x73, 0x28, 0x65, 0x29, 0x3b, 0x7d, + 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, + 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, 0x5b, 0x64, 0x61, + 0x74, 0x61, 0x2d, 0x70, 0x6c, 0x6f, 0x74, 0x5d, 0x27, 0x2c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, + 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, + 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, + 0x20, 0x7b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x2e, 0x72, 0x65, 0x64, 0x72, + 0x61, 0x77, 0x43, 0x68, 0x61, 0x72, 0x74, 0x28, 0x65, 0x2e, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, + 0x27, 0x5b, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x5d, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, + 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, + 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, + 0x2e, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x28, 0x65, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x29, 0x3b, 0x7d, 0x2e, 0x62, + 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x7d, + 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, + 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, 0x5b, 0x64, 0x61, 0x74, 0x61, + 0x2d, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, + 0x5d, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, + 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, + 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x2e, + 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x72, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x28, 0x65, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x29, 0x3b, 0x7d, 0x2e, 0x62, + 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x7d, + 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, + 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, 0x5b, 0x64, 0x61, 0x74, 0x61, + 0x2d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5d, 0x27, 0x2c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, + 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, + 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, + 0x20, 0x7b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x74, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x28, 0x65, 0x2e, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, + 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x7d, 0x2c, + 0x6f, 0x70, 0x65, 0x6e, 0x4f, 0x70, 0x74, 0x73, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x74, 0x61, + 0x72, 0x67, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x61, 0x72, 0x67, 0x2e, + 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x27, 0x29, 0x3b, 0x74, 0x61, 0x72, 0x67, 0x2e, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x2e, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x28, 0x27, 0x6f, 0x70, + 0x65, 0x6e, 0x27, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x73, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x7d, 0x2c, 0x63, 0x6c, 0x6f, + 0x73, 0x65, 0x4f, 0x70, 0x74, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, + 0x65, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x28, 0x27, 0x6f, 0x70, 0x65, 0x6e, 0x27, 0x29, 0x3b, + 0x69, 0x66, 0x20, 0x28, 0x65, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x26, 0x26, + 0x20, 0x65, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, + 0x74, 0x61, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x27, 0x29, + 0x20, 0x21, 0x3d, 0x3d, 0x20, 0x27, 0x64, 0x72, 0x6f, 0x70, 0x64, + 0x6f, 0x77, 0x6e, 0x27, 0x29, 0x65, 0x2e, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x63, + 0x6c, 0x69, 0x63, 0x6b, 0x28, 0x29, 0x3b, 0x7d, 0x2c, 0x73, 0x65, + 0x74, 0x50, 0x6c, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x75, 0x69, 0x2c, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x73, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x28, + 0x28, 0x70, 0x72, 0x65, 0x66, 0x73, 0x20, 0x7c, 0x7c, 0x20, 0x7b, + 0x7d, 0x29, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x20, 0x7c, 0x7c, 0x20, + 0x7b, 0x7d, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x75, 0x69, 0x2e, 0x70, 0x6c, + 0x6f, 0x74, 0x5b, 0x30, 0x5d, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x70, 0x72, + 0x65, 0x66, 0x73, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, + 0x70, 0x6c, 0x6f, 0x74, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, + 0x2e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x20, 0x7c, 0x7c, 0x20, + 0x75, 0x69, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x5b, 0x30, 0x5d, 0x2e, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x3b, 0x75, + 0x69, 0x5b, 0x63, 0x68, 0x61, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x66, 0x6f, + 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, + 0x30, 0x2c, 0x20, 0x6c, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x75, 0x69, + 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x6c, 0x65, 0x6e, 0x3b, + 0x20, 0x2b, 0x2b, 0x69, 0x29, 0x69, 0x66, 0x20, 0x28, 0x75, 0x69, + 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x5b, 0x69, 0x5d, 0x2e, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x3d, 0x20, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x29, 0x75, 0x69, 0x2e, 0x70, + 0x6c, 0x6f, 0x74, 0x5b, 0x69, 0x5d, 0x5b, 0x27, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x27, 0x5d, 0x20, 0x3d, 0x20, 0x74, + 0x72, 0x75, 0x65, 0x3b, 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x43, 0x6f, + 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2c, 0x20, 0x70, 0x72, 0x65, 0x66, + 0x73, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x73, 0x20, 0x3d, 0x20, 0x28, 0x70, 0x72, 0x65, + 0x66, 0x73, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x20, 0x7c, 0x7c, 0x20, 0x7b, + 0x7d, 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x69, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x6c, 0x65, 0x6e, 0x20, + 0x3d, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x6c, 0x65, + 0x6e, 0x3b, 0x20, 0x2b, 0x2b, 0x69, 0x29, 0x69, 0x66, 0x20, 0x28, + 0x28, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5b, 0x69, 0x5d, 0x2e, 0x6b, + 0x65, 0x79, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x73, 0x29, 0x20, 0x26, 0x26, 0x20, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x73, 0x5b, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5b, 0x69, + 0x5d, 0x2e, 0x6b, 0x65, 0x79, 0x5d, 0x5b, 0x27, 0x68, 0x69, 0x64, + 0x65, 0x27, 0x5d, 0x29, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5b, 0x69, + 0x5d, 0x5b, 0x27, 0x68, 0x69, 0x64, 0x65, 0x27, 0x5d, 0x20, 0x3d, + 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x7d, 0x2c, 0x73, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x72, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x75, 0x69, 0x2c, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x73, 0x29, 0x20, 0x7b, 0x75, 0x69, 0x5b, 0x27, 0x73, 0x68, + 0x6f, 0x77, 0x43, 0x68, 0x61, 0x72, 0x74, 0x27, 0x5d, 0x20, 0x3d, + 0x20, 0x70, 0x72, 0x65, 0x66, 0x73, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x27, 0x63, 0x68, 0x61, 0x72, 0x74, 0x27, 0x20, 0x69, 0x6e, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x73, 0x29, 0x20, 0x3f, 0x20, 0x70, 0x72, + 0x65, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x20, 0x3a, + 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x7d, 0x2c, 0x73, 0x65, 0x74, + 0x4f, 0x70, 0x74, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x69, 0x20, 0x3d, 0x20, + 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x28, + 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x69, 0x66, 0x79, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, + 0x49, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x29, 0x2c, + 0x20, 0x70, 0x72, 0x65, 0x66, 0x73, 0x20, 0x3d, 0x20, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, + 0x72, 0x65, 0x66, 0x73, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x72, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x75, 0x69, 0x2c, 0x20, 0x70, 0x72, 0x65, 0x66, 0x73, + 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x50, + 0x6c, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x75, 0x69, 0x2c, 0x20, 0x70, 0x72, 0x65, 0x66, 0x73, + 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x43, + 0x6f, 0x6c, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x75, 0x69, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2c, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x73, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x6d, 0x65, 0x72, 0x67, 0x65, + 0x28, 0x75, 0x69, 0x2c, 0x20, 0x7b, 0x27, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x27, 0x3a, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x69, 0x31, 0x38, 0x6e, 0x7d, 0x29, 0x3b, 0x7d, + 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x73, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x24, 0x28, + 0x27, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x6f, 0x70, 0x74, + 0x73, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, + 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x41, 0x70, 0x70, 0x54, 0x70, 0x6c, 0x73, 0x2e, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x72, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x73, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x73, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x29, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x28, 0x29, 0x3b, 0x7d, 0x2c, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x65, 0x76, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x24, 0x28, 0x27, 0x23, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x2b, 0x20, 0x27, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x2e, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2d, 0x70, 0x72, 0x65, 0x76, 0x27, 0x29, 0x3b, 0x69, + 0x66, 0x20, 0x28, 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x29, 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, + 0x27, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x27, 0x29, + 0x3b, 0x7d, 0x2c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, + 0x72, 0x65, 0x76, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x24, 0x28, 0x27, + 0x23, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x27, 0x20, 0x2b, 0x20, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x20, 0x2e, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x70, 0x72, 0x65, + 0x76, 0x27, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x24, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x24, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x61, 0x64, + 0x64, 0x28, 0x27, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x27, 0x29, 0x3b, 0x7d, 0x2c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x4e, 0x65, 0x78, 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x24, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x24, 0x28, + 0x27, 0x23, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x27, 0x20, 0x2b, + 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x20, + 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x61, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x6e, 0x65, + 0x78, 0x74, 0x27, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x24, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x24, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x2e, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x27, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x27, 0x29, 0x3b, 0x7d, 0x2c, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x24, 0x28, 0x27, 0x23, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x2b, 0x20, 0x27, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x2e, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2d, 0x6e, 0x65, 0x78, 0x74, 0x27, 0x29, 0x3b, 0x69, + 0x66, 0x20, 0x28, 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x29, 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x28, 0x27, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x27, 0x29, 0x3b, 0x7d, 0x2c, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x24, 0x28, 0x27, 0x23, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x20, 0x2e, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x2e, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x27, + 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x24, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x24, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x28, 0x27, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x27, 0x29, 0x3b, 0x7d, 0x2c, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x24, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x24, 0x28, 0x27, 0x23, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, + 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, + 0x20, 0x27, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x27, 0x29, 0x3b, 0x69, 0x66, + 0x20, 0x28, 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x29, 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, + 0x73, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x28, 0x27, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x27, 0x29, 0x3b, 0x7d, 0x2c, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x3d, 0x20, 0x24, 0x28, 0x27, 0x23, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x2b, 0x20, 0x27, 0x20, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x2e, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2d, 0x6c, 0x61, 0x73, 0x74, 0x27, 0x29, 0x3b, 0x69, + 0x66, 0x20, 0x28, 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x29, 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, + 0x27, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x27, 0x29, + 0x3b, 0x7d, 0x2c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4c, + 0x61, 0x73, 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x24, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x24, 0x28, 0x27, + 0x23, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x27, 0x20, 0x2b, 0x20, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x20, 0x2e, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x6c, 0x61, 0x73, + 0x74, 0x27, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x24, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x24, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x61, 0x64, + 0x64, 0x28, 0x27, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x27, 0x29, 0x3b, 0x7d, 0x2c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x65, + 0x76, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x65, + 0x78, 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, + 0x69, 0x72, 0x73, 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x4c, 0x61, 0x73, 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x3b, 0x7d, 0x2c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, + 0x65, 0x76, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x4e, 0x65, 0x78, 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x7d, 0x2c, 0x68, 0x61, 0x73, + 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x75, 0x69, + 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x66, 0x6f, + 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, + 0x30, 0x2c, 0x20, 0x6c, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x20, + 0x69, 0x20, 0x3c, 0x20, 0x6c, 0x65, 0x6e, 0x3b, 0x20, 0x2b, 0x2b, + 0x69, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x64, 0x61, + 0x74, 0x61, 0x5b, 0x69, 0x5d, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x75, 0x69, + 0x5b, 0x27, 0x68, 0x61, 0x73, 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x27, 0x5d, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x64, 0x61, 0x74, 0x61, + 0x5b, 0x69, 0x5d, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x28, 0x75, 0x69, 0x5b, 0x27, 0x68, 0x61, + 0x73, 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x27, 0x5d, + 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x3b, 0x7d, 0x7d, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x3b, 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x2c, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x68, + 0x61, 0x73, 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x28, + 0x75, 0x69, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x2e, 0x68, 0x61, + 0x73, 0x43, 0x68, 0x61, 0x72, 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x2e, 0x68, 0x61, 0x73, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x75, + 0x69, 0x29, 0x3b, 0x7d, 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2c, 0x20, 0x75, 0x69, 0x2c, 0x20, 0x63, 0x6f, 0x6c, 0x29, 0x20, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, + 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, + 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x62, 0x6f, 0x78, 0x20, 0x3d, + 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x28, 0x27, 0x64, 0x69, 0x76, 0x27, 0x29, 0x3b, 0x62, 0x6f, + 0x78, 0x2e, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x27, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x3b, 0x62, 0x6f, 0x78, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x70, 0x6c, + 0x73, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x77, 0x72, + 0x61, 0x70, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x28, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, + 0x6c, 0x2e, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x28, 0x75, 0x69, 0x2c, + 0x20, 0x7b, 0x27, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x27, 0x3a, + 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x69, + 0x31, 0x38, 0x6e, 0x7d, 0x29, 0x29, 0x3b, 0x63, 0x6f, 0x6c, 0x2e, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x69, 0x6c, 0x64, + 0x28, 0x62, 0x6f, 0x78, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3c, 0x3d, 0x20, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, + 0x65, 0x66, 0x73, 0x28, 0x29, 0x2e, 0x70, 0x65, 0x72, 0x50, 0x61, + 0x67, 0x65, 0x29, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x54, 0x68, 0x65, 0x61, 0x64, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2c, 0x20, 0x75, 0x69, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x3b, 0x7d, 0x2c, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x72, 0x6f, 0x77, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x65, 0x72, 0x52, 0x6f, + 0x77, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x5b, + 0x27, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x27, 0x5d, 0x20, 0x3d, + 0x3d, 0x20, 0x27, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, + 0x61, 0x6c, 0x27, 0x20, 0x3f, 0x20, 0x36, 0x20, 0x3a, 0x20, 0x31, + 0x32, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x20, 0x3d, + 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x28, 0x27, 0x64, 0x69, 0x76, 0x27, 0x29, 0x3b, 0x63, 0x6f, + 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, + 0x2c, 0x20, 0x27, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x27, + 0x20, 0x2b, 0x20, 0x70, 0x65, 0x72, 0x52, 0x6f, 0x77, 0x20, 0x2b, + 0x20, 0x27, 0x20, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x27, 0x29, 0x3b, 0x72, 0x6f, 0x77, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x63, + 0x6f, 0x6c, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x63, 0x6f, 0x6c, 0x3b, 0x7d, 0x2c, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x6f, 0x77, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x72, 0x6f, 0x77, 0x2c, 0x20, 0x69, + 0x64, 0x78, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x77, 0x72, + 0x61, 0x70, 0x20, 0x3d, 0x20, 0x24, 0x28, 0x27, 0x2e, 0x77, 0x72, + 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x73, 0x27, 0x29, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, + 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x5b, 0x27, 0x6c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x27, 0x5d, 0x20, 0x3d, 0x3d, 0x20, + 0x27, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, + 0x27, 0x20, 0x3f, 0x20, 0x32, 0x20, 0x3a, 0x20, 0x31, 0x3b, 0x69, + 0x66, 0x20, 0x28, 0x69, 0x64, 0x78, 0x20, 0x25, 0x20, 0x65, 0x76, + 0x65, 0x72, 0x79, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0x20, 0x7b, + 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x27, 0x64, 0x69, 0x76, + 0x27, 0x29, 0x3b, 0x72, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x72, 0x6f, 0x77, + 0x27, 0x20, 0x2b, 0x20, 0x28, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, + 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x3f, 0x20, 0x27, 0x20, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x27, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x29, 0x29, + 0x3b, 0x77, 0x72, 0x61, 0x70, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, + 0x64, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x72, 0x6f, 0x77, 0x29, + 0x3b, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x6f, + 0x77, 0x3b, 0x7d, 0x2c, 0x72, 0x65, 0x73, 0x65, 0x74, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x69, 0x20, 0x3d, 0x20, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, 0x29, 0x2c, 0x20, + 0x69, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x72, 0x6f, + 0x77, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x24, 0x28, 0x27, + 0x23, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x27, 0x20, 0x2b, 0x20, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, + 0x69, 0x6c, 0x2e, 0x69, 0x73, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, + 0x73, 0x65, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x20, + 0x3d, 0x20, 0x65, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x3b, 0x63, 0x6f, 0x6c, 0x2e, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x28, + 0x65, 0x6c, 0x65, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x5b, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6c, 0x29, + 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x28, 0x29, 0x3b, 0x7d, 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x73, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x75, 0x69, 0x20, 0x3d, 0x20, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, 0x29, 0x2c, 0x20, 0x69, + 0x64, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x72, 0x6f, 0x77, + 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x63, 0x6f, + 0x6c, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x24, 0x28, + 0x27, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x2d, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x73, 0x27, 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, + 0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x27, 0x27, 0x3b, 0x66, 0x6f, + 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x75, 0x69, 0x29, 0x20, 0x7b, 0x69, + 0x66, 0x20, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x69, 0x73, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x29, 0x29, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, + 0x65, 0x3b, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, + 0x28, 0x72, 0x6f, 0x77, 0x2c, 0x20, 0x69, 0x64, 0x78, 0x2b, 0x2b, + 0x29, 0x3b, 0x63, 0x6f, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, + 0x28, 0x72, 0x6f, 0x77, 0x29, 0x3b, 0x63, 0x6f, 0x6c, 0x20, 0x3d, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6c, 0x29, 0x3b, 0x7d, 0x7d, 0x2c, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x73, 0x28, 0x29, + 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x28, 0x29, 0x3b, 0x7d, 0x7d, 0x3b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, + 0x20, 0x3d, 0x20, 0x7b, 0x69, 0x74, 0x65, 0x72, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x61, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x29, 0x20, 0x7b, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x28, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, + 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x29, 0x2e, 0x66, 0x6f, 0x72, + 0x45, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, + 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x69, 0x73, + 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x50, + 0x6f, 0x72, 0x74, 0x28, 0x24, 0x28, 0x27, 0x23, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x29, 0x29, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, + 0x69, 0x66, 0x20, 0x28, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x20, 0x26, 0x26, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, + 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, + 0x3d, 0x3d, 0x20, 0x27, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x27, 0x29, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, + 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, + 0x70, 0x70, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x5b, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x5d, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x3b, 0x7d, 0x29, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x29, 0x20, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x5b, 0x27, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x27, 0x5d, 0x2e, + 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x61, 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x5b, 0x6b, 0x65, 0x79, 0x5d, 0x3b, + 0x20, 0x7d, 0x29, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x20, 0x3d, 0x20, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, + 0x69, 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x70, 0x6c, 0x6f, 0x74, + 0x27, 0x29, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x20, 0x7c, 0x7c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, + 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x28, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x2e, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, + 0x20, 0x3f, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x72, 0x65, 0x76, + 0x65, 0x72, 0x73, 0x65, 0x28, 0x29, 0x20, 0x3a, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x3b, 0x7d, 0x2c, 0x64, 0x72, 0x61, 0x77, 0x50, 0x6c, + 0x6f, 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x70, + 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, + 0x74, 0x43, 0x68, 0x61, 0x72, 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2c, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x2c, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x43, 0x68, 0x61, 0x72, 0x74, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2c, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x73, 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x20, 0x3d, + 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x73, 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x20, 0x3d, + 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x2c, 0x73, 0x65, + 0x74, 0x43, 0x68, 0x61, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x74, 0x61, 0x72, 0x67, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x61, 0x72, + 0x67, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x27, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x74, 0x61, 0x72, 0x67, + 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x27, 0x29, 0x3b, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, + 0x69, 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, + 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x70, 0x6c, 0x6f, 0x74, + 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x27, + 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x29, 0x3b, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, + 0x65, 0x66, 0x73, 0x28, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x70, + 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, + 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, + 0x2b, 0x20, 0x27, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x27, 0x29, 0x3b, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x50, 0x6c, + 0x6f, 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x70, + 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x3b, + 0x7d, 0x2c, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, + 0x72, 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x74, 0x61, 0x72, 0x67, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3d, 0x20, + 0x74, 0x61, 0x72, 0x67, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, + 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x27, 0x29, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x70, 0x72, 0x65, 0x66, 0x73, 0x20, 0x3d, 0x20, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, + 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x29, 0x2c, 0x63, 0x68, 0x61, 0x72, 0x74, 0x20, 0x3d, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x73, 0x20, 0x26, 0x26, 0x20, 0x28, 0x27, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x27, 0x20, 0x69, 0x6e, 0x20, 0x70, + 0x72, 0x65, 0x66, 0x73, 0x29, 0x20, 0x3f, 0x20, 0x70, 0x72, 0x65, + 0x66, 0x73, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x20, 0x3a, 0x20, + 0x74, 0x72, 0x75, 0x65, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x73, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, + 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, + 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20, 0x21, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, + 0x73, 0x28, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x72, 0x65, + 0x73, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x2e, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x72, 0x74, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, + 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x3b, 0x7d, 0x2c, 0x68, 0x61, 0x73, 0x43, 0x68, 0x61, 0x72, 0x74, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x72, 0x65, 0x66, 0x73, + 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x2c, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x20, 0x3d, 0x20, 0x70, 0x72, 0x65, 0x66, 0x73, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x27, 0x63, 0x68, 0x61, 0x72, 0x74, 0x27, 0x20, 0x69, + 0x6e, 0x20, 0x70, 0x72, 0x65, 0x66, 0x73, 0x29, 0x20, 0x3f, 0x20, + 0x70, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x20, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x75, 0x69, 0x5b, + 0x27, 0x63, 0x68, 0x61, 0x72, 0x74, 0x27, 0x5d, 0x20, 0x3d, 0x20, + 0x75, 0x69, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x26, 0x26, 0x20, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x20, 0x26, 0x26, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, + 0x7d, 0x2c, 0x72, 0x65, 0x64, 0x72, 0x61, 0x77, 0x43, 0x68, 0x61, + 0x72, 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x74, 0x61, 0x72, 0x67, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x20, 0x3d, 0x20, 0x74, + 0x61, 0x72, 0x67, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, + 0x2d, 0x70, 0x6c, 0x6f, 0x74, 0x27, 0x29, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x61, + 0x72, 0x67, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x27, 0x29, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x75, 0x69, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x55, 0x49, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x20, + 0x3d, 0x20, 0x75, 0x69, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x3b, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, + 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x2e, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x27, 0x2c, 0x20, 0x70, 0x6c, + 0x6f, 0x74, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, + 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x78, 0x20, 0x69, 0x6e, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, + 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x70, 0x6c, 0x6f, + 0x74, 0x55, 0x49, 0x2e, 0x68, 0x61, 0x73, 0x4f, 0x77, 0x6e, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x78, 0x29, 0x20, + 0x7c, 0x7c, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x5b, 0x78, + 0x5d, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, + 0x20, 0x21, 0x3d, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x29, 0x63, 0x6f, + 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x3b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x73, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, + 0x20, 0x27, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x27, 0x2c, 0x20, 0x70, + 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x5b, 0x78, 0x5d, 0x29, 0x3b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x50, 0x6c, 0x6f, + 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x70, 0x6c, + 0x6f, 0x74, 0x55, 0x49, 0x5b, 0x78, 0x5d, 0x2c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x29, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x7d, 0x7d, 0x2c, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x6f, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x66, 0x6f, + 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x70, + 0x20, 0x69, 0x6e, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x6f, 0x5b, + 0x70, 0x72, 0x6f, 0x70, 0x5d, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, + 0x67, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x28, 0x69, 0x74, + 0x65, 0x6d, 0x5b, 0x70, 0x72, 0x6f, 0x70, 0x5d, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x3b, 0x7d, 0x2c, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x72, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, + 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x20, 0x2b, 0x2b, 0x69, 0x29, 0x6f, 0x75, 0x74, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x69, 0x5d, 0x29, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, + 0x7d, 0x2c, 0x66, 0x69, 0x6e, 0x64, 0x55, 0x49, 0x49, 0x74, 0x65, + 0x6d, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x6b, 0x65, + 0x79, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, + 0x55, 0x49, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x2c, 0x20, 0x6f, 0x20, 0x3d, 0x20, 0x7b, + 0x7d, 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x20, 0x2b, 0x2b, 0x69, 0x29, 0x20, 0x7b, 0x69, 0x66, + 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5b, 0x69, 0x5d, 0x2e, + 0x6b, 0x65, 0x79, 0x20, 0x3d, 0x3d, 0x20, 0x6b, 0x65, 0x79, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x5b, 0x69, 0x5d, 0x3b, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x7d, 0x2c, 0x67, 0x65, + 0x74, 0x58, 0x4b, 0x65, 0x79, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x61, 0x74, 0x75, 0x6d, + 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x61, 0x72, 0x72, 0x20, 0x3d, 0x20, 0x5b, 0x5d, 0x3b, 0x69, + 0x66, 0x20, 0x28, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6b, + 0x65, 0x79, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x27, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x27, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x64, 0x61, 0x74, 0x75, 0x6d, 0x5b, 0x6b, 0x65, 0x79, 0x5d, + 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x70, + 0x72, 0x6f, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x6b, 0x65, 0x79, 0x29, + 0x61, 0x72, 0x72, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x64, 0x61, + 0x74, 0x75, 0x6d, 0x5b, 0x6b, 0x65, 0x79, 0x5b, 0x70, 0x72, 0x6f, + 0x70, 0x5d, 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x72, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x27, + 0x20, 0x27, 0x29, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x41, 0x72, + 0x65, 0x61, 0x53, 0x70, 0x6c, 0x69, 0x6e, 0x65, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, + 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, + 0x20, 0x3d, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x5b, 0x27, + 0x64, 0x33, 0x27, 0x5d, 0x5b, 0x27, 0x79, 0x31, 0x27, 0x5d, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x20, 0x3d, + 0x20, 0x41, 0x72, 0x65, 0x61, 0x43, 0x68, 0x61, 0x72, 0x74, 0x28, + 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x29, 0x2e, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x28, 0x7b, 0x79, 0x30, 0x3a, + 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x5b, 0x27, 0x64, 0x33, + 0x27, 0x5d, 0x5b, 0x27, 0x79, 0x30, 0x27, 0x5d, 0x2e, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x2c, 0x79, 0x31, 0x3a, 0x20, 0x64, 0x75, 0x61, + 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x20, 0x3f, 0x20, 0x70, 0x6c, + 0x6f, 0x74, 0x55, 0x49, 0x5b, 0x27, 0x64, 0x33, 0x27, 0x5d, 0x5b, + 0x27, 0x79, 0x31, 0x27, 0x5d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x20, 0x3a, 0x20, 0x27, 0x27, 0x7d, 0x29, 0x2e, 0x78, 0x28, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, + 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x28, 0x28, 0x28, 0x70, 0x6c, + 0x6f, 0x74, 0x55, 0x49, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, + 0x2e, 0x64, 0x33, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, + 0x78, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x6b, 0x65, + 0x79, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x58, 0x4b, 0x65, 0x79, 0x28, + 0x64, 0x2c, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x5b, 0x27, + 0x64, 0x33, 0x27, 0x5d, 0x5b, 0x27, 0x78, 0x27, 0x5d, 0x5b, 0x27, + 0x6b, 0x65, 0x79, 0x27, 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x3b, 0x7d, + 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, + 0x29, 0x2e, 0x79, 0x30, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x2b, 0x64, 0x5b, 0x70, 0x6c, 0x6f, 0x74, + 0x55, 0x49, 0x5b, 0x27, 0x64, 0x33, 0x27, 0x5d, 0x5b, 0x27, 0x79, + 0x30, 0x27, 0x5d, 0x5b, 0x27, 0x6b, 0x65, 0x79, 0x27, 0x5d, 0x5d, + 0x3b, 0x7d, 0x29, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x28, 0x24, + 0x28, 0x22, 0x23, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x22, 0x20, + 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x67, 0x65, + 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x74, 0x28, 0x29, 0x2e, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x29, 0x2e, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x28, 0x31, 0x37, 0x35, 0x29, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x28, 0x7b, 0x78, 0x3a, 0x20, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x66, 0x69, 0x6e, 0x64, 0x55, 0x49, 0x49, 0x74, + 0x65, 0x6d, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x27, + 0x64, 0x61, 0x74, 0x61, 0x27, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x7b, + 0x7d, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x7c, 0x7c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x79, 0x30, + 0x3a, 0x20, 0x28, 0x28, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x2e, + 0x64, 0x33, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x79, + 0x30, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x79, 0x31, 0x3a, 0x20, 0x28, 0x28, + 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x2e, 0x64, 0x33, 0x20, 0x7c, + 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x79, 0x31, 0x20, 0x7c, 0x7c, + 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x2c, 0x7d, 0x29, 0x2e, 0x6f, 0x70, 0x74, 0x73, 0x28, 0x70, 0x6c, + 0x6f, 0x74, 0x55, 0x49, 0x29, 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, + 0x61, 0x78, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x2e, 0x79, 0x31, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x2b, 0x64, 0x5b, 0x70, 0x6c, 0x6f, + 0x74, 0x55, 0x49, 0x5b, 0x27, 0x64, 0x33, 0x27, 0x5d, 0x5b, 0x27, + 0x79, 0x31, 0x27, 0x5d, 0x5b, 0x27, 0x6b, 0x65, 0x79, 0x27, 0x5d, + 0x5d, 0x3b, 0x7d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x2c, 0x67, 0x65, + 0x74, 0x56, 0x42, 0x61, 0x72, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2c, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x2c, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x64, + 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x20, 0x3d, 0x20, + 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x5b, 0x27, 0x64, 0x33, 0x27, + 0x5d, 0x5b, 0x27, 0x79, 0x31, 0x27, 0x5d, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x20, 0x3d, 0x20, 0x42, 0x61, + 0x72, 0x43, 0x68, 0x61, 0x72, 0x74, 0x28, 0x64, 0x75, 0x61, 0x6c, + 0x59, 0x61, 0x78, 0x69, 0x73, 0x29, 0x2e, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x28, 0x7b, 0x79, 0x30, 0x3a, 0x20, 0x70, 0x6c, 0x6f, + 0x74, 0x55, 0x49, 0x5b, 0x27, 0x64, 0x33, 0x27, 0x5d, 0x5b, 0x27, + 0x79, 0x30, 0x27, 0x5d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2c, + 0x79, 0x31, 0x3a, 0x20, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, + 0x69, 0x73, 0x20, 0x3f, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, + 0x5b, 0x27, 0x64, 0x33, 0x27, 0x5d, 0x5b, 0x27, 0x79, 0x31, 0x27, + 0x5d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x3a, 0x20, 0x27, + 0x27, 0x7d, 0x29, 0x2e, 0x78, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x69, 0x66, + 0x20, 0x28, 0x28, 0x28, 0x28, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, + 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x64, 0x33, 0x20, + 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x78, 0x20, 0x7c, 0x7c, + 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x6b, 0x65, 0x79, 0x29, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, + 0x65, 0x74, 0x58, 0x4b, 0x65, 0x79, 0x28, 0x64, 0x2c, 0x20, 0x70, + 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x5b, 0x27, 0x64, 0x33, 0x27, 0x5d, + 0x5b, 0x27, 0x78, 0x27, 0x5d, 0x5b, 0x27, 0x6b, 0x65, 0x79, 0x27, + 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, + 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x2e, 0x79, 0x30, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x2b, 0x64, 0x5b, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x5b, 0x27, + 0x64, 0x33, 0x27, 0x5d, 0x5b, 0x27, 0x79, 0x30, 0x27, 0x5d, 0x5b, + 0x27, 0x6b, 0x65, 0x79, 0x27, 0x5d, 0x5d, 0x3b, 0x7d, 0x29, 0x2e, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x28, 0x24, 0x28, 0x22, 0x23, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x2d, 0x22, 0x20, 0x2b, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x67, 0x65, 0x74, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x63, 0x74, 0x28, 0x29, 0x2e, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x29, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x28, 0x31, + 0x37, 0x35, 0x29, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x7b, 0x78, 0x3a, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x66, + 0x69, 0x6e, 0x64, 0x55, 0x49, 0x49, 0x74, 0x65, 0x6d, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x27, 0x64, 0x61, 0x74, 0x61, + 0x27, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7c, 0x7c, 0x20, + 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x79, 0x30, 0x3a, 0x20, 0x28, 0x28, + 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x2e, 0x64, 0x33, 0x20, 0x7c, + 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x79, 0x30, 0x20, 0x7c, 0x7c, + 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x2c, 0x79, 0x31, 0x3a, 0x20, 0x28, 0x28, 0x70, 0x6c, 0x6f, 0x74, + 0x55, 0x49, 0x2e, 0x64, 0x33, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, + 0x29, 0x2e, 0x79, 0x31, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x7d, 0x29, 0x2e, + 0x6f, 0x70, 0x74, 0x73, 0x28, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, + 0x29, 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, + 0x20, 0x26, 0x26, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2e, 0x79, + 0x31, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x2b, 0x64, 0x5b, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x5b, + 0x27, 0x64, 0x33, 0x27, 0x5d, 0x5b, 0x27, 0x79, 0x31, 0x27, 0x5d, + 0x5b, 0x27, 0x6b, 0x65, 0x79, 0x27, 0x5d, 0x5d, 0x3b, 0x7d, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x69, 0x20, + 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, + 0x21, 0x75, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x29, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x27, 0x27, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x67, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, + 0x28, 0x29, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, + 0x20, 0x27, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x27, 0x29, 0x20, 0x7c, 0x7c, + 0x20, 0x75, 0x69, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x5b, 0x30, 0x5d, + 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x3b, + 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x6f, 0x74, 0x55, 0x49, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x70, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, + 0x29, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, + 0x27, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x2e, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x27, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x75, 0x69, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x5b, 0x30, + 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x69, + 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x76, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x76, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x3b, 0x7d, 0x29, 0x5b, 0x30, 0x5d, 0x3b, 0x7d, 0x2c, 0x67, 0x65, + 0x74, 0x43, 0x68, 0x61, 0x72, 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2c, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x2c, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, + 0x6c, 0x3b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x29, 0x20, 0x7b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x61, + 0x72, 0x65, 0x61, 0x2d, 0x73, 0x70, 0x6c, 0x69, 0x6e, 0x65, 0x27, + 0x3a, 0x63, 0x68, 0x61, 0x72, 0x74, 0x20, 0x3d, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x72, 0x65, 0x61, 0x53, + 0x70, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2c, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x2c, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x29, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, + 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x62, 0x61, 0x72, 0x27, 0x3a, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x56, 0x42, 0x61, 0x72, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, + 0x49, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x62, 0x72, + 0x65, 0x61, 0x6b, 0x3b, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x2c, 0x72, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x72, 0x74, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x64, 0x33, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x23, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x3e, 0x2e, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, + 0x2d, 0x77, 0x72, 0x61, 0x70, 0x27, 0x29, 0x2e, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x28, 0x29, 0x3b, 0x64, 0x33, 0x2e, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x23, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x73, + 0x76, 0x67, 0x27, 0x29, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x28, 0x29, 0x3b, 0x64, 0x33, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x28, 0x22, 0x23, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x22, + 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x64, + 0x61, 0x74, 0x75, 0x6d, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x2e, + 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x29, + 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x22, 0x64, 0x69, + 0x76, 0x22, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x22, 0x2c, 0x20, 0x22, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x2d, + 0x77, 0x72, 0x61, 0x70, 0x22, 0x29, 0x3b, 0x7d, 0x2c, 0x61, 0x64, + 0x64, 0x43, 0x68, 0x61, 0x72, 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x20, 0x3d, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x20, + 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x69, 0x66, 0x20, 0x28, + 0x21, 0x75, 0x69, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x20, 0x7c, 0x7c, + 0x20, 0x21, 0x75, 0x69, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x3b, 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x20, 0x3d, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x6c, 0x6f, + 0x74, 0x55, 0x49, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, + 0x75, 0x69, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x70, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2c, + 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x2e, + 0x70, 0x6c, 0x6f, 0x74, 0x27, 0x2c, 0x20, 0x70, 0x6c, 0x6f, 0x74, + 0x55, 0x49, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, + 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, + 0x21, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x20, 0x3d, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x70, 0x6c, + 0x6f, 0x74, 0x55, 0x49, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, + 0x29, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x72, 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x5b, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x20, 0x3d, 0x20, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x3b, 0x7d, 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x75, 0x69, 0x29, 0x20, + 0x7b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x75, 0x69, 0x29, + 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x75, 0x69, 0x2e, 0x68, + 0x61, 0x73, 0x4f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x63, + 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x3b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x61, 0x64, 0x64, 0x43, 0x68, 0x61, 0x72, 0x74, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x5b, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x29, 0x3b, 0x7d, 0x7d, 0x2c, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x72, 0x74, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x75, 0x69, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x69, 0x66, 0x20, + 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, + 0x74, 0x69, 0x6c, 0x2e, 0x69, 0x73, 0x50, 0x61, 0x6e, 0x65, 0x6c, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x3b, 0x75, 0x69, 0x20, 0x3d, 0x20, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, 0x64, 0x64, + 0x43, 0x68, 0x61, 0x72, 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2c, 0x20, 0x75, 0x69, 0x29, 0x3b, 0x7d, 0x2c, 0x72, 0x65, 0x6c, + 0x6f, 0x61, 0x64, 0x43, 0x68, 0x61, 0x72, 0x74, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x73, 0x75, 0x62, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, + 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, + 0x20, 0x28, 0x73, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3f, 0x20, 0x73, 0x75, + 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x3a, 0x20, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x29, 0x2e, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x30, 0x29, 0x3b, 0x64, 0x33, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x2d, 0x22, 0x20, 0x2b, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x75, 0x6d, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x43, 0x68, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x29, 0x29, 0x2e, + 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2e, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x28, 0x24, 0x28, 0x22, 0x23, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x2d, 0x22, 0x20, 0x2b, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x29, 0x29, 0x3b, 0x7d, 0x2c, 0x72, + 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x74, + 0x65, 0x72, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2c, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x68, 0x61, 0x72, 0x74, + 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2c, 0x20, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, + 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x7d, 0x2c, 0x72, + 0x65, 0x64, 0x72, 0x61, 0x77, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x74, + 0x65, 0x72, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2c, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x64, 0x33, 0x2e, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x2d, 0x22, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x28, 0x24, 0x28, 0x22, + 0x23, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x22, 0x20, 0x2b, 0x20, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x57, 0x69, 0x64, 0x74, 0x68, 0x29, 0x29, 0x3b, 0x7d, + 0x29, 0x3b, 0x7d, 0x2c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x73, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, + 0x28, 0x29, 0x29, 0x3b, 0x64, 0x33, 0x2e, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x28, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x29, 0x2e, + 0x6f, 0x6e, 0x28, 0x27, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x2e, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x73, 0x27, 0x2c, 0x20, 0x64, 0x65, + 0x62, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x28, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x68, + 0x61, 0x72, 0x74, 0x73, 0x28, 0x29, 0x3b, 0x7d, 0x2c, 0x20, 0x32, + 0x35, 0x30, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x2e, + 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, + 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, + 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x73, 0x27, 0x2c, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, + 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x64, 0x72, 0x61, + 0x77, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x28, 0x29, 0x3b, 0x7d, + 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, + 0x29, 0x3b, 0x7d, 0x7d, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x3d, + 0x20, 0x7b, 0x63, 0x68, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x3a, 0x20, 0x7b, 0x7d, 0x2c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x29, 0x20, 0x7b, 0x24, 0x24, 0x28, 0x27, 0x2e, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2d, 0x6e, 0x65, 0x78, 0x74, 0x27, 0x2c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, + 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, + 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x3d, 0x20, 0x65, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x67, 0x65, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x27, + 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x65, + 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x29, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, + 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x24, 0x24, + 0x28, 0x27, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x70, 0x72, + 0x65, 0x76, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, + 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, + 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x65, 0x2e, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x27, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x50, 0x61, 0x67, 0x65, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x3b, 0x7d, 0x2e, + 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, + 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, 0x2e, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x27, 0x2c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, + 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, + 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x3d, 0x20, 0x65, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x67, 0x65, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x27, + 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x20, 0x22, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, + 0x50, 0x41, 0x47, 0x45, 0x22, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, + 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, + 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, + 0x3b, 0x24, 0x24, 0x28, 0x27, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2d, 0x6c, 0x61, 0x73, 0x74, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, + 0x29, 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, + 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3d, 0x20, + 0x65, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, + 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x27, 0x29, 0x3b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, + 0x20, 0x22, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x50, 0x41, 0x47, 0x45, + 0x22, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, + 0x27, 0x2e, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x62, 0x6c, + 0x65, 0x3e, 0x74, 0x64, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, + 0x20, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, + 0x69, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x69, 0x66, + 0x20, 0x28, 0x21, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x67, + 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x2e, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x29, 0x29, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x28, 0x65, 0x2e, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x24, 0x24, 0x28, 0x27, + 0x2e, 0x72, 0x6f, 0x77, 0x2d, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x61, + 0x62, 0x6c, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, + 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, + 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x6f, 0x77, + 0x28, 0x65, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x29, 0x3b, 0x7d, 0x2e, 0x62, 0x69, + 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x7d, 0x2e, + 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, + 0x3b, 0x24, 0x24, 0x28, 0x27, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x20, + 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, + 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x28, 0x65, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x29, 0x3b, 0x7d, 0x2e, 0x62, + 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x7d, + 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, + 0x29, 0x3b, 0x7d, 0x2c, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x74, 0x61, 0x72, 0x67, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x3d, 0x20, 0x74, 0x61, 0x72, 0x67, 0x2e, 0x67, 0x65, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x27, + 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x20, 0x3d, 0x20, 0x74, 0x61, 0x72, 0x67, 0x2e, 0x67, 0x65, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, + 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x27, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x73, 0x20, 0x3d, 0x20, 0x28, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, + 0x65, 0x66, 0x73, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, + 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x73, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x3b, 0x69, + 0x66, 0x20, 0x28, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x20, 0x69, + 0x6e, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x29, 0x20, + 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x73, 0x5b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5d, 0x3b, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, + 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x2c, 0x20, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x68, 0x69, 0x64, + 0x65, 0x27, 0x2c, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x3b, 0x7d, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, + 0x69, 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, + 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x73, 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x73, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, + 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x68, 0x65, 0x61, 0x64, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, + 0x49, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x3b, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, + 0x75, 0x6c, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x7d, 0x2c, 0x73, 0x6f, 0x72, 0x74, + 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, 0x6c, 0x65, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x20, 0x3d, 0x20, 0x65, 0x6c, 0x65, 0x2e, 0x67, 0x65, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, + 0x61, 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, 0x27, 0x29, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x3d, 0x20, + 0x65, 0x6c, 0x65, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, + 0x2d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x27, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x65, + 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x27, 0x29, 0x3b, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x3d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x3f, 0x20, + 0x27, 0x61, 0x73, 0x63, 0x27, 0x20, 0x3d, 0x3d, 0x20, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x20, 0x3f, 0x20, 0x27, 0x64, 0x65, 0x73, 0x63, + 0x27, 0x20, 0x3a, 0x20, 0x27, 0x61, 0x73, 0x63, 0x27, 0x20, 0x3a, + 0x20, 0x27, 0x61, 0x73, 0x63, 0x27, 0x3b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x2e, 0x73, 0x6f, + 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2c, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x73, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, + 0x27, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x27, 0x2c, 0x20, 0x7b, 0x27, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x27, 0x3a, 0x20, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x2c, 0x27, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x27, 0x3a, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2c, 0x7d, 0x29, 0x3b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x68, 0x65, 0x61, 0x64, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, + 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, + 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x43, 0x75, 0x72, 0x50, 0x61, + 0x67, 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x3b, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, + 0x61, 0x72, 0x74, 0x73, 0x2e, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, + 0x43, 0x68, 0x61, 0x72, 0x74, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x73, 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x2c, 0x20, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x7d, 0x2c, 0x67, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x4b, 0x65, 0x79, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, + 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x6e, 0x20, 0x3d, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x6e, 0x3b, 0x20, 0x2b, + 0x2b, 0x69, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, + 0x2e, 0x68, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x28, 0x64, + 0x61, 0x74, 0x61, 0x5b, 0x69, 0x5d, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x6b, 0x65, 0x79, 0x29, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x69, + 0x5d, 0x3b, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x53, 0x75, + 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x44, 0x61, 0x74, 0x61, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x5b, 0x5d, 0x2c, 0x20, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x3b, 0x66, 0x6f, 0x72, + 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x78, 0x20, 0x69, 0x6e, 0x20, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, + 0x28, 0x21, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x68, 0x61, 0x73, + 0x4f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x28, 0x78, 0x29, 0x29, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, + 0x65, 0x3b, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x6f, 0x75, 0x74, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x28, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x5b, 0x78, 0x5d, 0x29, 0x3b, 0x7d, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x7d, 0x2c, 0x61, + 0x64, 0x64, 0x43, 0x68, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x6b, 0x65, 0x79, + 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x4b, 0x65, 0x79, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x3d, 0x20, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x27, + 0x20, 0x2b, 0x20, 0x6b, 0x65, 0x79, 0x3b, 0x69, 0x66, 0x20, 0x28, + 0x21, 0x64, 0x61, 0x74, 0x61, 0x20, 0x7c, 0x7c, 0x20, 0x21, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x29, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5b, 0x5d, 0x3b, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, + 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x2c, 0x20, 0x70, 0x61, 0x74, 0x68, 0x2c, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, + 0x3b, 0x7d, 0x2c, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, + 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x29, 0x20, 0x7b, 0x69, + 0x66, 0x20, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x70, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x27, 0x20, 0x2b, 0x20, + 0x6b, 0x65, 0x79, 0x29, 0x29, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, + 0x5b, 0x6b, 0x65, 0x79, 0x5d, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x20, + 0x7c, 0x7c, 0x20, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x6b, + 0x65, 0x79, 0x73, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x5b, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x5d, 0x29, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x7d, 0x2c, 0x69, 0x73, 0x45, 0x78, + 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x65, 0x78, 0x70, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x2e, 0x27, 0x20, 0x2b, 0x20, 0x6b, + 0x65, 0x79, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, + 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x74, 0x68, + 0x29, 0x3b, 0x7d, 0x2c, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x45, + 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x65, 0x78, + 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x2e, 0x27, 0x20, 0x2b, 0x20, + 0x6b, 0x65, 0x79, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, 0x20, + 0x74, 0x72, 0x75, 0x65, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x69, 0x73, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, + 0x65, 0x64, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x6b, + 0x65, 0x79, 0x29, 0x29, 0x20, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x5b, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x5d, 0x5b, 0x27, 0x65, 0x78, 0x70, 0x61, 0x6e, + 0x64, 0x65, 0x64, 0x27, 0x5d, 0x5b, 0x6b, 0x65, 0x79, 0x5d, 0x3b, + 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, + 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x74, 0x68, 0x2c, 0x20, + 0x74, 0x72, 0x75, 0x65, 0x29, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x20, + 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x7d, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x74, 0x3b, 0x7d, 0x2c, + 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x65, + 0x6c, 0x65, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x68, 0x69, + 0x64, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x2c, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x5b, 0x5d, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x65, + 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, + 0x64, 0x65, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x20, 0x3d, 0x20, 0x72, 0x6f, 0x77, 0x2e, 0x67, 0x65, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x27, + 0x29, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x3d, 0x20, 0x72, 0x6f, + 0x77, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6b, + 0x65, 0x79, 0x27, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x6c, + 0x6f, 0x74, 0x55, 0x49, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, + 0x72, 0x74, 0x73, 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x2e, + 0x6f, 0x70, 0x74, 0x73, 0x28, 0x29, 0x3b, 0x68, 0x69, 0x64, 0x65, + 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x6b, 0x65, 0x79, + 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, + 0x74, 0x43, 0x75, 0x72, 0x50, 0x61, 0x67, 0x65, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, + 0x70, 0x6c, 0x6f, 0x74, 0x55, 0x49, 0x2e, 0x72, 0x65, 0x64, 0x72, + 0x61, 0x77, 0x4f, 0x6e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x69, 0x66, 0x20, 0x28, + 0x21, 0x68, 0x69, 0x64, 0x65, 0x29, 0x20, 0x7b, 0x64, 0x61, 0x74, + 0x61, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x72, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, 0x64, + 0x64, 0x43, 0x68, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x29, + 0x29, 0x3b, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x64, + 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, + 0x20, 0x6b, 0x65, 0x79, 0x29, 0x29, 0x3b, 0x7d, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, + 0x73, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x50, 0x6c, 0x6f, 0x74, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x70, 0x6c, 0x6f, 0x74, + 0x55, 0x49, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x7d, + 0x2c, 0x67, 0x65, 0x74, 0x43, 0x75, 0x72, 0x50, 0x61, 0x67, 0x65, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x67, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, + 0x2e, 0x63, 0x75, 0x72, 0x50, 0x61, 0x67, 0x65, 0x27, 0x29, 0x20, + 0x7c, 0x7c, 0x20, 0x30, 0x3b, 0x7d, 0x2c, 0x70, 0x61, 0x67, 0x65, + 0x4f, 0x66, 0x66, 0x53, 0x65, 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x28, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x43, + 0x75, 0x72, 0x50, 0x61, 0x67, 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, + 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, 0x29, 0x2e, 0x70, 0x65, 0x72, + 0x50, 0x61, 0x67, 0x65, 0x29, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x73, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x29, 0x20, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x64, 0x61, 0x74, 0x61, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x2f, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, + 0x29, 0x2e, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x29, 0x3b, + 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x65, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x50, 0x61, 0x67, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, + 0x61, 0x67, 0x65, 0x73, 0x28, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x70, 0x61, + 0x67, 0x65, 0x20, 0x3c, 0x20, 0x31, 0x29, 0x70, 0x61, 0x67, 0x65, + 0x20, 0x3d, 0x20, 0x31, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x70, 0x61, + 0x67, 0x65, 0x20, 0x3e, 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, + 0x61, 0x67, 0x65, 0x73, 0x29, 0x70, 0x61, 0x67, 0x65, 0x20, 0x3d, + 0x20, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x73, + 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, + 0x74, 0x69, 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, + 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, + 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2c, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x63, 0x75, 0x72, + 0x50, 0x61, 0x67, 0x65, 0x27, 0x2c, 0x20, 0x70, 0x61, 0x67, 0x65, + 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, 0x61, 0x67, + 0x65, 0x4f, 0x66, 0x66, 0x53, 0x65, 0x74, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x6e, 0x64, + 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x2b, 0x20, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, + 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, 0x29, 0x2e, 0x70, 0x65, + 0x72, 0x50, 0x61, 0x67, 0x65, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x2c, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x3b, 0x7d, 0x2c, 0x70, + 0x72, 0x65, 0x76, 0x50, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x43, 0x75, + 0x72, 0x50, 0x61, 0x67, 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x20, 0x2d, 0x20, 0x31, 0x3b, 0x7d, 0x2c, 0x6e, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x67, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x43, 0x75, 0x72, 0x50, + 0x61, 0x67, 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, + 0x2b, 0x20, 0x31, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x75, 0x69, 0x2c, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x7b, 0x69, 0x66, + 0x20, 0x28, 0x27, 0x6d, 0x65, 0x74, 0x61, 0x27, 0x20, 0x69, 0x6e, + 0x20, 0x75, 0x69, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5b, 0x75, 0x69, 0x2e, 0x6d, 0x65, + 0x74, 0x61, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x43, 0x65, 0x6c, 0x6c, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x75, 0x69, 0x2c, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x28, 0x75, 0x69, 0x2c, 0x20, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6d, 0x61, 0x78, + 0x20, 0x3d, 0x20, 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7c, + 0x7c, 0x20, 0x7b, 0x7d, 0x29, 0x2e, 0x6d, 0x61, 0x78, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x3d, 0x20, 0x28, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, 0x29, + 0x2e, 0x6d, 0x69, 0x6e, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x76, 0x74, + 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x75, 0x69, 0x2e, 0x6d, 0x65, + 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x75, + 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x75, 0x69, 0x2e, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x27, + 0x27, 0x3b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, + 0x20, 0x2b, 0x3d, 0x20, 0x75, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x20, 0x21, 0x3d, 0x20, 0x27, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x27, 0x20, 0x3f, 0x20, 0x27, 0x74, 0x65, + 0x78, 0x74, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x27, 0x20, 0x3a, + 0x20, 0x27, 0x27, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x7b, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, + 0x27, 0x3a, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x2c, 0x27, 0x6d, 0x61, 0x78, 0x27, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3a, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x21, 0x3d, 0x20, + 0x75, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x3f, + 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, + 0x74, 0x69, 0x6c, 0x2e, 0x66, 0x6d, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x28, 0x6d, 0x61, 0x78, 0x2c, 0x20, 0x76, 0x74, 0x79, 0x70, + 0x65, 0x29, 0x20, 0x3a, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x27, + 0x6d, 0x69, 0x6e, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, + 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x21, 0x3d, 0x20, 0x75, 0x6e, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x3f, 0x20, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, + 0x2e, 0x66, 0x6d, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, 0x6d, + 0x69, 0x6e, 0x2c, 0x20, 0x76, 0x74, 0x79, 0x70, 0x65, 0x29, 0x20, + 0x3a, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x27, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x27, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x76, 0x61, + 0x6c, 0x20, 0x21, 0x3d, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x20, 0x3f, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x66, 0x6d, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, 0x76, 0x61, 0x6c, 0x2c, + 0x20, 0x76, 0x74, 0x79, 0x70, 0x65, 0x29, 0x20, 0x3a, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x27, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x27, + 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x75, 0x69, 0x2e, 0x6d, 0x65, + 0x74, 0x61, 0x2c, 0x27, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x27, 0x20, + 0x20, 0x20, 0x20, 0x3a, 0x20, 0x75, 0x69, 0x2e, 0x6d, 0x65, 0x74, + 0x61, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x7c, 0x7c, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x7d, 0x3b, 0x7d, 0x2c, 0x68, 0x69, 0x64, + 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x20, 0x63, 0x6f, 0x6c, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x20, + 0x3d, 0x20, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, 0x73, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x7b, 0x7d, + 0x29, 0x2e, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x20, 0x7c, + 0x7c, 0x20, 0x7b, 0x7d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x28, 0x28, 0x63, 0x6f, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x29, 0x20, 0x26, 0x26, 0x20, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x5b, 0x63, 0x6f, 0x6c, + 0x5d, 0x5b, 0x27, 0x68, 0x69, 0x64, 0x65, 0x27, 0x5d, 0x29, 0x3b, + 0x7d, 0x2c, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x28, 0x27, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x73, 0x27, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x65, + 0x66, 0x73, 0x28, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, + 0x65, 0x66, 0x73, 0x28, 0x29, 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x3a, 0x20, 0x74, 0x72, 0x75, + 0x65, 0x3b, 0x7d, 0x2c, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x69, 0x64, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x27, 0x61, 0x75, + 0x74, 0x6f, 0x48, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x27, 0x20, 0x69, 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x65, 0x66, + 0x73, 0x28, 0x29, 0x29, 0x20, 0x3f, 0x20, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x65, + 0x66, 0x73, 0x28, 0x29, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x69, + 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x3a, 0x20, + 0x74, 0x72, 0x75, 0x65, 0x3b, 0x7d, 0x2c, 0x68, 0x61, 0x73, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x75, 0x69, 0x29, 0x20, 0x7b, 0x75, + 0x69, 0x5b, 0x27, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x27, 0x5d, 0x20, + 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x77, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x28, 0x29, 0x3b, 0x75, 0x69, + 0x5b, 0x27, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x69, 0x64, 0x65, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x27, 0x5d, 0x20, 0x3d, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x69, 0x64, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x28, 0x29, 0x3b, 0x7d, + 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, + 0x52, 0x6f, 0x77, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, + 0x75, 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x24, 0x28, 0x27, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x20, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x2e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x6d, 0x65, + 0x74, 0x61, 0x27, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x20, + 0x3d, 0x20, 0x5b, 0x5d, 0x2c, 0x20, 0x75, 0x69, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x20, 0x3d, 0x20, 0x75, 0x69, 0x2e, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3b, 0x66, 0x6f, 0x72, + 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, + 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x75, 0x69, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x20, + 0x2b, 0x2b, 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, + 0x74, 0x65, 0x6d, 0x20, 0x3d, 0x20, 0x75, 0x69, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x5b, 0x69, 0x5d, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x68, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, + 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6b, 0x65, 0x79, 0x29, 0x29, 0x63, + 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x5b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6b, 0x65, 0x79, + 0x5d, 0x3b, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x43, 0x65, 0x6c, 0x6c, 0x28, 0x69, 0x74, 0x65, + 0x6d, 0x2c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x29, 0x3b, + 0x7d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x70, + 0x6c, 0x73, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x6d, + 0x65, 0x74, 0x61, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x28, + 0x7b, 0x72, 0x6f, 0x77, 0x3a, 0x20, 0x5b, 0x7b, 0x27, 0x68, 0x61, + 0x73, 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x27, 0x3a, + 0x20, 0x75, 0x69, 0x2e, 0x68, 0x61, 0x73, 0x53, 0x75, 0x62, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x2c, 0x27, 0x63, 0x65, 0x6c, 0x6c, 0x73, + 0x27, 0x3a, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x7d, 0x5d, 0x7d, + 0x29, 0x3b, 0x7d, 0x2c, 0x69, 0x74, 0x65, 0x72, 0x55, 0x49, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, + 0x20, 0x75, 0x69, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2c, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2c, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x5b, 0x5d, + 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, + 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x75, + 0x69, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x20, 0x2b, 0x2b, 0x69, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x75, 0x69, 0x49, 0x74, 0x65, 0x6d, 0x20, 0x3d, + 0x20, 0x75, 0x69, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x5b, 0x69, 0x5d, + 0x3b, 0x69, 0x66, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x68, + 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x49, 0x74, 0x65, + 0x6d, 0x2e, 0x6b, 0x65, 0x79, 0x29, 0x29, 0x63, 0x6f, 0x6e, 0x74, + 0x69, 0x6e, 0x75, 0x65, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x5b, 0x75, 0x69, 0x49, + 0x74, 0x65, 0x6d, 0x2e, 0x6b, 0x65, 0x79, 0x5d, 0x3b, 0x69, 0x66, + 0x20, 0x28, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, + 0x26, 0x26, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x3d, 0x20, + 0x27, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x65, 0x74, 0x20, 0x3d, + 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x49, 0x74, 0x65, + 0x6d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, + 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x72, 0x65, 0x74, 0x29, 0x20, + 0x6f, 0x75, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x65, + 0x74, 0x29, 0x3b, 0x7d, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x3a, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x2c, 0x20, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x20, 0x3d, + 0x20, 0x75, 0x69, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x20, 0x7c, 0x7c, 0x20, 0x27, 0x27, 0x3b, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x20, 0x2b, 0x3d, 0x20, + 0x75, 0x69, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x20, 0x21, 0x3d, 0x20, 0x27, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x27, 0x20, 0x3f, 0x20, 0x27, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x27, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x7b, 0x27, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x27, 0x3a, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x70, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x27, 0x3a, 0x20, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, + 0x2e, 0x67, 0x65, 0x74, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x28, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x2c, 0x27, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x27, 0x3a, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x66, 0x6d, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x67, + 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x28, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x29, 0x2c, 0x20, 0x75, 0x69, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x29, 0x7d, 0x3b, 0x7d, 0x2c, 0x72, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x6f, 0x77, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x2c, 0x20, 0x75, 0x69, 0x2c, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x49, 0x74, 0x65, 0x6d, 0x2c, 0x20, 0x69, 0x64, 0x78, 0x2c, + 0x20, 0x73, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x2c, 0x20, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x2c, 0x20, 0x65, 0x78, + 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x73, 0x68, 0x61, 0x64, 0x65, 0x50, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x21, 0x73, 0x75, 0x62, + 0x49, 0x74, 0x65, 0x6d, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, + 0x20, 0x25, 0x20, 0x32, 0x20, 0x21, 0x3d, 0x20, 0x30, 0x29, 0x20, + 0x3f, 0x20, 0x27, 0x73, 0x68, 0x61, 0x64, 0x65, 0x64, 0x27, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x3d, + 0x20, 0x28, 0x28, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x20, 0x25, 0x20, 0x32, 0x20, 0x21, 0x3d, 0x20, 0x30, 0x29, 0x20, + 0x3f, 0x20, 0x27, 0x73, 0x68, 0x61, 0x64, 0x65, 0x64, 0x27, 0x20, + 0x3a, 0x20, 0x27, 0x27, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x7b, 0x27, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x27, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x27, 0x69, 0x64, 0x78, 0x27, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x21, 0x73, 0x75, + 0x62, 0x49, 0x74, 0x65, 0x6d, 0x20, 0x26, 0x26, 0x20, 0x28, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x28, 0x69, 0x64, 0x78, 0x20, + 0x2b, 0x20, 0x31, 0x29, 0x20, 0x2b, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x70, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x66, 0x53, 0x65, 0x74, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x29, 0x2c, 0x27, + 0x6b, 0x65, 0x79, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3a, 0x20, 0x21, 0x73, 0x75, 0x62, 0x49, 0x74, 0x65, + 0x6d, 0x20, 0x3f, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x68, 0x61, 0x73, 0x68, + 0x43, 0x6f, 0x64, 0x65, 0x28, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, + 0x65, 0x6d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x3a, 0x20, + 0x27, 0x27, 0x2c, 0x27, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x27, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x21, 0x73, 0x75, + 0x62, 0x49, 0x74, 0x65, 0x6d, 0x20, 0x26, 0x26, 0x20, 0x65, 0x78, + 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x2c, 0x27, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x27, 0x20, 0x20, 0x20, 0x20, 0x3a, + 0x20, 0x73, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x20, 0x3f, 0x20, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x29, 0x20, 0x3a, 0x20, 0x27, 0x27, 0x2c, + 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x27, + 0x20, 0x20, 0x20, 0x3a, 0x20, 0x73, 0x75, 0x62, 0x49, 0x74, 0x65, + 0x6d, 0x20, 0x3f, 0x20, 0x27, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x20, + 0x27, 0x20, 0x2b, 0x20, 0x73, 0x68, 0x61, 0x64, 0x65, 0x43, 0x68, + 0x69, 0x6c, 0x64, 0x20, 0x3a, 0x20, 0x27, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x27, 0x20, 0x2b, 0x20, 0x73, 0x68, 0x61, 0x64, + 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x27, 0x68, 0x61, + 0x73, 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x27, 0x20, + 0x3a, 0x20, 0x75, 0x69, 0x2e, 0x68, 0x61, 0x73, 0x53, 0x75, 0x62, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2c, 0x27, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x20, 0x3f, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, + 0x74, 0x65, 0x6d, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3a, 0x20, 0x30, 0x2c, 0x27, + 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x3a, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x2c, 0x7d, 0x3b, 0x7d, 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x52, 0x6f, 0x77, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x72, 0x6f, 0x77, 0x73, 0x2c, + 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x2c, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2c, + 0x20, 0x73, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x2c, 0x20, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x29, 0x20, 0x7b, 0x73, + 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x20, 0x3d, 0x20, 0x73, 0x75, + 0x62, 0x49, 0x74, 0x65, 0x6d, 0x20, 0x7c, 0x7c, 0x20, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x64, 0x61, 0x74, + 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, + 0x75, 0x69, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x29, 0x20, 0x7b, 0x72, 0x6f, 0x77, 0x73, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x7b, 0x63, 0x65, 0x6c, 0x6c, + 0x73, 0x3a, 0x20, 0x5b, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, + 0x61, 0x6d, 0x65, 0x3a, 0x20, 0x27, 0x74, 0x65, 0x78, 0x74, 0x2d, + 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x27, 0x2c, 0x63, 0x6f, 0x6c, + 0x73, 0x70, 0x61, 0x6e, 0x3a, 0x20, 0x75, 0x69, 0x2e, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x2b, 0x20, 0x31, 0x2c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x20, + 0x27, 0x4e, 0x6f, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x27, 0x7d, 0x5d, 0x7d, 0x29, 0x3b, 0x7d, 0x76, 0x61, 0x72, + 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, + 0x3c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x20, 0x2b, 0x2b, + 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x49, 0x74, 0x65, 0x6d, 0x20, 0x3d, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x5b, 0x69, 0x5d, 0x2c, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, + 0x2c, 0x20, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x20, + 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x28, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x29, 0x20, 0x7b, + 0x63, 0x61, 0x73, 0x65, 0x20, 0x27, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x27, 0x3a, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x3b, 0x63, 0x65, 0x6c, + 0x6c, 0x63, 0x62, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x7b, 0x27, 0x63, 0x6f, 0x6c, 0x73, 0x70, + 0x61, 0x6e, 0x27, 0x3a, 0x20, 0x75, 0x69, 0x2e, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x27, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x27, 0x3a, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x7d, 0x3b, 0x7d, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x64, 0x61, 0x74, + 0x61, 0x20, 0x3d, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, + 0x6d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x3b, 0x63, 0x65, 0x6c, 0x6c, + 0x63, 0x62, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, + 0x74, 0x65, 0x72, 0x55, 0x49, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x2e, + 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x2e, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, + 0x74, 0x65, 0x6d, 0x2c, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, + 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x65, 0x6c, + 0x6c, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x29, 0x3b, 0x7d, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x73, + 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x68, 0x61, 0x73, + 0x68, 0x43, 0x6f, 0x64, 0x65, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, + 0x29, 0x3b, 0x72, 0x6f, 0x77, 0x73, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x52, 0x6f, 0x77, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, + 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x63, 0x62, 0x2c, 0x20, 0x75, 0x69, + 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x2c, + 0x20, 0x69, 0x2c, 0x20, 0x73, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, + 0x2c, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x2c, + 0x20, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x29, 0x29, + 0x3b, 0x69, 0x66, 0x20, 0x28, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, + 0x65, 0x6d, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x26, 0x26, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x26, 0x26, 0x20, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x29, 0x20, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x52, 0x6f, 0x77, 0x73, 0x28, 0x72, 0x6f, + 0x77, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, + 0x75, 0x69, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, + 0x6d, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2c, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x2c, 0x20, 0x69, 0x2c, 0x20, 0x65, 0x78, 0x70, 0x61, + 0x6e, 0x64, 0x65, 0x64, 0x29, 0x3b, 0x7d, 0x7d, 0x7d, 0x2c, 0x72, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x6f, + 0x77, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, + 0x69, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x2c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x3d, 0x20, + 0x24, 0x28, 0x27, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x27, + 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, + 0x27, 0x20, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x27, 0x29, 0x3b, 0x69, + 0x66, 0x20, 0x28, 0x21, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x29, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x67, 0x65, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x20, 0x3d, 0x20, + 0x5b, 0x5d, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x52, 0x6f, 0x77, 0x73, 0x28, 0x72, 0x6f, 0x77, + 0x73, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, + 0x69, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x72, 0x6f, 0x77, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3d, 0x3d, 0x20, + 0x30, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, + 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x70, 0x6c, 0x73, 0x2e, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x28, 0x7b, 0x72, 0x6f, + 0x77, 0x73, 0x3a, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x7d, 0x29, 0x3b, + 0x7d, 0x2c, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x29, 0x20, 0x7b, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, + 0x70, 0x61, 0x67, 0x65, 0x20, 0x3e, 0x3d, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, + 0x61, 0x67, 0x65, 0x73, 0x28, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x29, 0x29, 0x20, 0x7b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x73, + 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x65, 0x78, + 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4c, + 0x61, 0x73, 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, + 0x7d, 0x69, 0x66, 0x20, 0x28, 0x70, 0x61, 0x67, 0x65, 0x20, 0x3c, + 0x3d, 0x20, 0x31, 0x29, 0x20, 0x7b, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x73, 0x2e, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x65, 0x76, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, + 0x73, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, + 0x72, 0x73, 0x74, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, + 0x7d, 0x7d, 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x3d, + 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, + 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x69, 0x20, 0x3d, 0x20, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, + 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x70, 0x61, + 0x67, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x4c, 0x41, 0x53, + 0x54, 0x5f, 0x50, 0x41, 0x47, 0x45, 0x22, 0x29, 0x20, 0x7b, 0x70, + 0x61, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x67, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x61, 0x67, + 0x65, 0x73, 0x28, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x29, 0x3b, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, + 0x66, 0x20, 0x28, 0x70, 0x61, 0x67, 0x65, 0x20, 0x3d, 0x3d, 0x3d, + 0x20, 0x22, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x50, 0x41, 0x47, + 0x45, 0x22, 0x29, 0x20, 0x7b, 0x70, 0x61, 0x67, 0x65, 0x20, 0x3d, + 0x20, 0x31, 0x3b, 0x7d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, + 0x70, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x6f, 0x77, 0x73, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, + 0x75, 0x69, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x2c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x29, 0x3b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x28, + 0x29, 0x3b, 0x7d, 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, + 0x75, 0x6c, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, + 0x69, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, + 0x49, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x2c, 0x20, 0x70, + 0x61, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x68, 0x61, 0x73, 0x4f, 0x77, 0x6e, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x27, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x27, 0x29, 0x29, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, + 0x52, 0x6f, 0x77, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, + 0x75, 0x69, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x68, 0x61, 0x73, 0x4f, 0x77, 0x6e, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, + 0x27, 0x29, 0x29, 0x20, 0x7b, 0x70, 0x61, 0x67, 0x65, 0x20, 0x3d, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x43, 0x75, + 0x72, 0x50, 0x61, 0x67, 0x65, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x70, 0x61, + 0x67, 0x65, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x6f, 0x77, + 0x73, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, + 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x2c, 0x20, 0x70, 0x61, 0x67, 0x65, 0x29, 0x3b, 0x7d, 0x7d, 0x2c, + 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x75, 0x69, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x69, 0x6e, 0x20, 0x75, 0x69, 0x29, 0x20, 0x7b, 0x69, 0x66, + 0x20, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x69, 0x73, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x28, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x21, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x28, 0x29, 0x29, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, + 0x3b, 0x69, 0x66, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, + 0x7c, 0x7c, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x69, 0x73, 0x57, 0x69, 0x74, + 0x68, 0x69, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x50, 0x6f, 0x72, 0x74, + 0x28, 0x24, 0x28, 0x27, 0x23, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, + 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, + 0x29, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x28, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x3b, 0x7d, 0x7d, 0x2c, 0x73, + 0x6f, 0x72, 0x74, 0x32, 0x54, 0x70, 0x6c, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x75, 0x69, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x20, 0x3d, + 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, + 0x28, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x69, 0x66, 0x79, 0x28, 0x75, 0x69, 0x29, 0x29, 0x2c, 0x20, + 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x5b, 0x5d, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x20, 0x3d, 0x20, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, + 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x27, 0x29, + 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, + 0x20, 0x3d, 0x20, 0x30, 0x2c, 0x20, 0x6c, 0x65, 0x6e, 0x20, 0x3d, + 0x20, 0x75, 0x69, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x2e, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, + 0x20, 0x69, 0x20, 0x3c, 0x20, 0x6c, 0x65, 0x6e, 0x3b, 0x20, 0x2b, + 0x2b, 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x74, + 0x65, 0x6d, 0x20, 0x3d, 0x20, 0x75, 0x69, 0x43, 0x6c, 0x6f, 0x6e, + 0x65, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5b, 0x69, 0x5d, 0x3b, + 0x69, 0x66, 0x20, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x68, 0x69, + 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6b, + 0x65, 0x79, 0x29, 0x29, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, + 0x65, 0x3b, 0x69, 0x74, 0x65, 0x6d, 0x5b, 0x27, 0x73, 0x6f, 0x72, + 0x74, 0x27, 0x5d, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x3b, 0x69, 0x66, 0x20, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x6b, + 0x65, 0x79, 0x20, 0x3d, 0x3d, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x2e, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x26, 0x26, 0x20, 0x73, 0x6f, + 0x72, 0x74, 0x2e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x29, 0x20, 0x7b, + 0x69, 0x74, 0x65, 0x6d, 0x5b, 0x27, 0x73, 0x6f, 0x72, 0x74, 0x27, + 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x69, 0x74, + 0x65, 0x6d, 0x5b, 0x73, 0x6f, 0x72, 0x74, 0x2e, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x43, + 0x61, 0x73, 0x65, 0x28, 0x29, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x3b, 0x7d, 0x6f, 0x75, 0x74, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x3b, 0x7d, 0x75, 0x69, + 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x20, 0x3d, 0x20, 0x6f, 0x75, 0x74, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x75, 0x69, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x3b, + 0x7d, 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x68, 0x65, + 0x61, 0x64, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, + 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x24, 0x74, 0x68, + 0x65, 0x61, 0x64, 0x20, 0x3d, 0x20, 0x24, 0x28, 0x27, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x3e, 0x74, 0x68, 0x65, + 0x61, 0x64, 0x27, 0x29, 0x2c, 0x20, 0x24, 0x63, 0x6f, 0x6c, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x20, 0x3d, 0x20, 0x24, 0x28, 0x27, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x27, 0x20, 0x2b, 0x20, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x3e, 0x63, 0x6f, + 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x27, 0x29, 0x3b, 0x69, 0x66, + 0x20, 0x28, 0x24, 0x74, 0x68, 0x65, 0x61, 0x64, 0x20, 0x26, 0x26, + 0x20, 0x24, 0x63, 0x6f, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, + 0x26, 0x26, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x68, 0x6f, + 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x28, 0x29, 0x29, 0x20, + 0x7b, 0x75, 0x69, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x73, 0x6f, 0x72, 0x74, 0x32, 0x54, 0x70, 0x6c, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x75, 0x69, 0x29, 0x3b, 0x24, 0x74, + 0x68, 0x65, 0x61, 0x64, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, + 0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x70, 0x6c, 0x73, + 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x68, 0x65, 0x61, + 0x64, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x28, 0x75, 0x69, + 0x29, 0x3b, 0x24, 0x63, 0x6f, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, + 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x41, 0x70, 0x70, 0x54, 0x70, 0x6c, 0x73, 0x2e, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6c, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x28, 0x75, 0x69, + 0x29, 0x3b, 0x7d, 0x7d, 0x2c, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x28, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x28, 0x29, 0x3b, 0x7d, 0x2c, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x28, 0x74, 0x72, 0x75, 0x65, 0x29, + 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x28, 0x29, 0x3b, 0x64, 0x33, 0x2e, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x28, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x29, 0x2e, + 0x6f, 0x6e, 0x28, 0x27, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x27, 0x2c, 0x20, 0x64, 0x65, + 0x62, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x28, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x28, 0x29, 0x3b, 0x7d, 0x2c, 0x20, 0x32, + 0x35, 0x30, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x2e, + 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, + 0x3b, 0x7d, 0x2c, 0x7d, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x20, 0x3d, 0x20, 0x7b, 0x68, + 0x61, 0x73, 0x46, 0x6f, 0x63, 0x75, 0x73, 0x3a, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x2c, 0x74, 0x70, 0x6c, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x74, 0x70, 0x6c, 0x29, + 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x48, 0x6f, + 0x67, 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, + 0x28, 0x74, 0x70, 0x6c, 0x29, 0x3b, 0x7d, 0x2c, 0x73, 0x65, 0x74, + 0x54, 0x70, 0x6c, 0x73, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x54, 0x70, + 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x7b, 0x27, 0x4e, 0x61, 0x76, 0x27, + 0x3a, 0x20, 0x7b, 0x27, 0x77, 0x72, 0x61, 0x70, 0x27, 0x3a, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x70, 0x6c, 0x28, 0x24, 0x28, + 0x27, 0x23, 0x74, 0x70, 0x6c, 0x2d, 0x6e, 0x61, 0x76, 0x2d, 0x77, + 0x72, 0x61, 0x70, 0x27, 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x48, 0x54, 0x4d, 0x4c, 0x29, 0x2c, 0x27, 0x6d, 0x65, 0x6e, 0x75, + 0x27, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x70, 0x6c, + 0x28, 0x24, 0x28, 0x27, 0x23, 0x74, 0x70, 0x6c, 0x2d, 0x6e, 0x61, + 0x76, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x27, 0x29, 0x2e, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x29, 0x2c, 0x27, 0x6f, + 0x70, 0x74, 0x73, 0x27, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x74, 0x70, 0x6c, 0x28, 0x24, 0x28, 0x27, 0x23, 0x74, 0x70, 0x6c, + 0x2d, 0x6e, 0x61, 0x76, 0x2d, 0x6f, 0x70, 0x74, 0x73, 0x27, 0x29, + 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x29, + 0x2c, 0x7d, 0x2c, 0x27, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x73, 0x27, + 0x3a, 0x20, 0x7b, 0x27, 0x77, 0x72, 0x61, 0x70, 0x27, 0x3a, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x70, 0x6c, 0x28, 0x24, 0x28, + 0x27, 0x23, 0x74, 0x70, 0x6c, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x27, 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, + 0x4c, 0x29, 0x2c, 0x27, 0x6f, 0x70, 0x74, 0x73, 0x27, 0x3a, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x70, 0x6c, 0x28, 0x24, 0x28, + 0x27, 0x23, 0x74, 0x70, 0x6c, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2d, 0x6f, 0x70, 0x74, 0x73, 0x27, 0x29, 0x2e, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x29, 0x2c, 0x7d, 0x2c, 0x27, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x27, 0x3a, 0x20, 0x7b, + 0x27, 0x77, 0x72, 0x61, 0x70, 0x27, 0x3a, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x74, 0x70, 0x6c, 0x28, 0x24, 0x28, 0x27, 0x23, 0x74, + 0x70, 0x6c, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x27, + 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, + 0x29, 0x2c, 0x27, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x27, 0x3a, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x70, 0x6c, 0x28, 0x24, 0x28, + 0x27, 0x23, 0x74, 0x70, 0x6c, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x6c, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x27, 0x29, 0x2e, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x29, 0x2c, + 0x7d, 0x2c, 0x27, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x27, 0x3a, + 0x20, 0x7b, 0x27, 0x63, 0x6f, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x27, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x70, 0x6c, + 0x28, 0x24, 0x28, 0x27, 0x23, 0x74, 0x70, 0x6c, 0x2d, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x2d, 0x63, 0x6f, 0x6c, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x27, 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, + 0x4d, 0x4c, 0x29, 0x2c, 0x27, 0x68, 0x65, 0x61, 0x64, 0x27, 0x3a, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x70, 0x6c, 0x28, 0x24, + 0x28, 0x27, 0x23, 0x74, 0x70, 0x6c, 0x2d, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x74, 0x68, 0x65, 0x61, 0x64, 0x27, 0x29, 0x2e, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x29, 0x2c, 0x27, + 0x6d, 0x65, 0x74, 0x61, 0x27, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x74, 0x70, 0x6c, 0x28, 0x24, 0x28, 0x27, 0x23, 0x74, 0x70, + 0x6c, 0x2d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x6f, 0x77, + 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x27, 0x29, 0x2e, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x29, 0x2c, 0x27, 0x64, 0x61, + 0x74, 0x61, 0x27, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, + 0x70, 0x6c, 0x28, 0x24, 0x28, 0x27, 0x23, 0x74, 0x70, 0x6c, 0x2d, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x6f, 0x77, 0x27, 0x29, + 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x29, + 0x2c, 0x7d, 0x2c, 0x7d, 0x3b, 0x7d, 0x2c, 0x73, 0x6f, 0x72, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x6f, 0x2c, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x66, + 0x20, 0x3d, 0x20, 0x6f, 0x5b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5d, + 0x3b, 0x69, 0x66, 0x20, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x69, 0x73, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x28, 0x66, 0x29, 0x20, 0x26, 0x26, + 0x20, 0x28, 0x66, 0x20, 0x21, 0x3d, 0x3d, 0x20, 0x6e, 0x75, 0x6c, + 0x6c, 0x29, 0x29, 0x66, 0x20, 0x3d, 0x20, 0x6f, 0x5b, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5d, 0x2e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x3b, 0x7d, 0x2c, + 0x73, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x3a, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, + 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x3b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, + 0x29, 0x20, 0x7b, 0x61, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, + 0x61, 0x2c, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x29, 0x3b, 0x62, + 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x6f, 0x72, + 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x28, 0x62, 0x2c, 0x20, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x74, + 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x3d, 0x3d, 0x3d, + 0x20, 0x27, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x27, 0x20, 0x26, + 0x26, 0x20, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x62, 0x20, + 0x3d, 0x3d, 0x3d, 0x20, 0x27, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x27, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x27, 0x61, + 0x73, 0x63, 0x27, 0x20, 0x3d, 0x3d, 0x20, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x20, 0x3f, 0x20, 0x61, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x28, 0x62, 0x29, + 0x20, 0x3a, 0x20, 0x62, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, + 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x28, 0x61, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x20, 0x27, 0x61, 0x73, + 0x63, 0x27, 0x20, 0x3d, 0x3d, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x20, 0x3f, 0x20, 0x61, 0x20, 0x2d, 0x20, 0x62, 0x20, 0x3a, 0x20, + 0x62, 0x20, 0x2d, 0x20, 0x61, 0x3b, 0x7d, 0x2e, 0x62, 0x69, 0x6e, + 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x7d, 0x2c, + 0x73, 0x65, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x6f, 0x72, 0x74, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x69, 0x20, + 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x55, 0x49, 0x28, + 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x69, 0x6e, 0x20, 0x75, 0x69, + 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x69, + 0x73, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x29, 0x29, 0x63, 0x6f, 0x6e, + 0x74, 0x69, 0x6e, 0x75, 0x65, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x73, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x2c, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x2b, 0x20, + 0x27, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x27, 0x2c, 0x20, 0x75, 0x69, + 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5d, 0x2e, 0x73, 0x6f, 0x72, + 0x74, 0x29, 0x3b, 0x7d, 0x7d, 0x2c, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x53, 0x6f, 0x72, 0x74, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x75, 0x69, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x61, 0x6e, + 0x65, 0x6c, 0x55, 0x49, 0x28, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x20, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, + 0x69, 0x6e, 0x20, 0x75, 0x69, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, + 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, + 0x74, 0x69, 0x6c, 0x2e, 0x69, 0x73, 0x50, 0x61, 0x6e, 0x65, 0x6c, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x28, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x29, 0x29, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x20, 0x3d, 0x20, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, + 0x69, 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x28, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2c, 0x20, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x2e, 0x73, 0x6f, 0x72, 0x74, + 0x27, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x4a, 0x53, 0x4f, 0x4e, + 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x66, 0x79, 0x28, + 0x73, 0x6f, 0x72, 0x74, 0x29, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x4a, + 0x53, 0x4f, 0x4e, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x69, + 0x66, 0x79, 0x28, 0x75, 0x69, 0x5b, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x5d, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x29, 0x29, 0x63, 0x6f, 0x6e, + 0x74, 0x69, 0x6e, 0x75, 0x65, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x73, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x28, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2c, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x2e, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x2e, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x29, 0x3b, 0x7d, 0x7d, 0x2c, 0x69, + 0x6e, 0x69, 0x74, 0x44, 0x6f, 0x6d, 0x3a, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x24, + 0x28, 0x27, 0x6e, 0x61, 0x76, 0x27, 0x29, 0x2e, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x28, 0x27, 0x68, 0x69, 0x64, 0x65, 0x27, 0x29, 0x3b, + 0x24, 0x28, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x27, 0x29, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, + 0x27, 0x68, 0x69, 0x64, 0x65, 0x27, 0x29, 0x3b, 0x24, 0x28, 0x27, + 0x2e, 0x73, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x27, 0x29, 0x2e, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x61, + 0x64, 0x64, 0x28, 0x27, 0x68, 0x69, 0x64, 0x65, 0x27, 0x29, 0x3b, + 0x69, 0x66, 0x20, 0x28, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x72, 0x65, 0x66, 0x73, 0x5b, + 0x27, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x27, 0x5d, 0x20, 0x3d, + 0x3d, 0x20, 0x27, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, + 0x61, 0x6c, 0x27, 0x29, 0x20, 0x7b, 0x24, 0x28, 0x27, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x27, 0x29, 0x2e, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x61, + 0x64, 0x64, 0x28, 0x27, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x2d, 0x66, 0x6c, 0x75, 0x69, 0x64, 0x27, 0x29, 0x3b, + 0x24, 0x28, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x2d, 0x66, 0x6c, 0x75, 0x69, 0x64, 0x27, 0x29, 0x2e, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x27, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x27, 0x29, 0x3b, 0x7d, 0x7d, 0x2c, + 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x3a, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x68, 0x61, 0x73, 0x46, 0x6f, 0x63, 0x75, 0x73, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x53, 0x6f, 0x72, 0x74, + 0x28, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x28, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x61, + 0x72, 0x74, 0x73, 0x2e, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x43, + 0x68, 0x61, 0x72, 0x74, 0x73, 0x28, 0x29, 0x3b, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x2e, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x28, 0x29, 0x3b, 0x7d, 0x2c, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x69, + 0x74, 0x53, 0x6f, 0x72, 0x74, 0x28, 0x29, 0x3b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x65, 0x74, 0x54, 0x70, 0x6c, 0x73, 0x28, 0x29, + 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x4e, + 0x61, 0x76, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x28, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, + 0x6e, 0x69, 0x74, 0x44, 0x6f, 0x6d, 0x28, 0x29, 0x3b, 0x47, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x4f, 0x76, 0x65, 0x72, + 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x3b, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x73, + 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x28, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2e, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x3b, 0x7d, + 0x2c, 0x7d, 0x3b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x27, 0x68, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x27, 0x29, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x2e, 0x68, 0x61, 0x73, 0x46, + 0x6f, 0x63, 0x75, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x3d, + 0x3d, 0x20, 0x27, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x27, + 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x68, 0x61, 0x73, 0x46, + 0x6f, 0x63, 0x75, 0x73, 0x20, 0x3d, 0x20, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x2e, 0x68, 0x61, + 0x73, 0x46, 0x6f, 0x63, 0x75, 0x73, 0x3b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x2e, 0x68, 0x61, + 0x73, 0x46, 0x6f, 0x63, 0x75, 0x73, 0x20, 0x3d, 0x20, 0x74, 0x72, + 0x75, 0x65, 0x3b, 0x68, 0x61, 0x73, 0x46, 0x6f, 0x63, 0x75, 0x73, + 0x20, 0x7c, 0x7c, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x41, 0x70, 0x70, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x28, 0x29, 0x3b, 0x7d, 0x7d, 0x29, + 0x3b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6f, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x47, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x7b, 0x27, 0x69, 0x31, 0x38, + 0x6e, 0x27, 0x3a, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, + 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x69, 0x31, 0x38, 0x6e, 0x2c, 0x27, + 0x75, 0x69, 0x44, 0x61, 0x74, 0x61, 0x27, 0x3a, 0x20, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2c, 0x27, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x27, 0x3a, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6a, 0x73, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x27, 0x77, 0x73, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x27, 0x3a, 0x20, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7c, 0x7c, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x27, 0x70, 0x72, 0x65, 0x66, 0x73, 0x27, + 0x3a, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x68, 0x74, + 0x6d, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x73, 0x20, 0x7c, 0x7c, + 0x20, 0x7b, 0x7d, 0x2c, 0x7d, 0x29, 0x3b, 0x47, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x2e, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x28, 0x29, 0x3b, + 0x7d, 0x3b, 0x7d, 0x28, 0x29, 0x29, 0x3b, 0x00 +}; + +const int app_js_length = 39696; diff --git a/src/goaccess++/src/base64.c b/src/goaccess++/src/base64.c new file mode 100644 index 0000000..698235e --- /dev/null +++ b/src/goaccess++/src/base64.c @@ -0,0 +1,80 @@ +/** + * base64.c -- A basic base64 encode implementation + * _______ _______ __ __ + * / ____/ | / / ___/____ _____/ /_____ / /_ + * / / __ | | /| / /\__ \/ __ \/ ___/ //_/ _ \/ __/ + * / /_/ / | |/ |/ /___/ / /_/ / /__/ ,< / __/ /_ + * \____/ |__/|__//____/\____/\___/_/|_|\___/\__/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include <stdlib.h> +#include <string.h> + +#include "base64.h" + +/* Encodes the given data with base64.. + * + * On success, the encoded nul-terminated data, as a string is returned. */ +char * +base64_encode (const void *buf, size_t size) +{ + static const char base64[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + char *str = (char *) malloc ((size + 3) * 4 / 3 + 1); + + char *p = str; + const unsigned char *q = (const unsigned char *) buf; + size_t i = 0; + + while (i < size) { + int c = q[i++]; + c *= 256; + if (i < size) + c += q[i]; + i++; + + c *= 256; + if (i < size) + c += q[i]; + i++; + + *p++ = base64[(c & 0x00fc0000) >> 18]; + *p++ = base64[(c & 0x0003f000) >> 12]; + + if (i > size + 1) + *p++ = '='; + else + *p++ = base64[(c & 0x00000fc0) >> 6]; + + if (i > size) + *p++ = '='; + else + *p++ = base64[c & 0x0000003f]; + } + + *p = 0; + + return str; +} diff --git a/src/goaccess++/src/base64.h b/src/goaccess++/src/base64.h new file mode 100644 index 0000000..7f36936 --- /dev/null +++ b/src/goaccess++/src/base64.h @@ -0,0 +1,37 @@ +/** + * _______ _______ __ __ + * / ____/ | / / ___/____ _____/ /_____ / /_ + * / / __ | | /| / /\__ \/ __ \/ ___/ //_/ _ \/ __/ + * / /_/ / | |/ |/ /___/ / /_/ / /__/ ,< / __/ /_ + * \____/ |__/|__//____/\____/\___/_/|_|\___/\__/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BASE64_H_INCLUDED +#define BASE64_H_INCLUDED + +#include <stddef.h> + +char *base64_encode (const void *buf, size_t size); + +#endif // for #ifndef BASE64_H diff --git a/src/goaccess++/src/base64.o b/src/goaccess++/src/base64.o new file mode 100644 index 0000000000000000000000000000000000000000..0088ffaa101c57619971b5d1279eae10bc379e68 GIT binary patch literal 2040 zcmbtVOHUI~6u#3zsYo9hVn{UFg)tgsY_S40Q9B^?iscPHW149hK&35Cr}9{6Oi}5g ziN8Z*Vqzq2d=QPqxWNq@cPx|`H$tL`5$ieAd&@A+N>6fgzw@2*-Pbvt-fE4uIRt@l z6UYg&?s1loiHda`Hei^ziHodycK@V>ny1yk4bc1=efjV~$!LC|kLFkDkIyvs)k!~m zp@k`78Kv~jN6+*V0MWu3f#&C<g-u8Y-g)*A&uqVo(86_LZpleQt2Zh=v${(VR)BJt zDTlC<U!=J?aqjnan)ohzW`q9lOk;j=?ss+W(@Ex!3onl2KB0HxE(~opg&Z_DUtxr4 z=)LC5Eg2$jcxJo^gy)`CEEeBZ5}JGCyma}sXU{aAk-%}+N$}<7mQ$^55qi4)Otho3 ztGlPSuYcg|x$_q;D)GdiIy5|T<?6N3WGX#&UCZd%8{-p`Q~p5xk>JsW#-`B0!-Pay zT8{bl55%)6J?jfeLCIei$QoYYX1!nX2c`N0B_8+3GI(L&i$yvIh=Y(<$cZq}YDyCk zrh17m;T3jPS32)QL4&~WVzD)xJKWy8jvjYyPHcDk9M7xVwX)kQyPc=EwsXkRZ71xJ z3i7RJ7Zhzf2+zn*xltt=x7x^6fh!odEb+1_ESh)|4Xan0-7*%5vy9C^BwNgG8H;3d z8FR1$z;@HUj5h>sFAS`Q)s6vS$CJ2{Q5%9%f`j^|h9JW+HI+yYsw5VPb~Ve<SXWzH zUu%D?Uv7@J#z;~b9Ze_rK7IzU_AVH|pj*)*jEBB3Zozq<iN{#kq|9VeSK>s<=vrwW z;Yd?Q6-ieobRrEZx<aIQCPO4GU2+oXWKvB*ES1((33{<EqbrGP%pXo=r7<l%rfT{m zXmBNUBsQceNwvK7{{SC|u?MY{3Im76>r?XnuEkCW;M;|H0-K+)7Ul1|6?oi-cTg?M z+sAloM<2&z8?(}fAP3j{SA77qxaNjhf*)oZ$$-t~GdqAoFff(hlZS6JJ)X~Oj5ajL zH^bnZIq#7jX_MOv9R6CZ=YP!fK8Tr(zdz@$0>D(Oeu3$`c_N#wdh9~G`Y*GB@H%7t z@hidgoVVK>xAL(Ab+dEe|01qo)#IAh+5<(#7%8J;GPYcq*#^i?&p)MlIkN<;`adN) B?QQ@7 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/bin2c.c b/src/goaccess++/src/bin2c.c new file mode 100644 index 0000000..bc635f8 --- /dev/null +++ b/src/goaccess++/src/bin2c.c @@ -0,0 +1,117 @@ +/* + * This is bin2c program, which allows you to convert binary file to + * C language array, for use as embedded resource, for instance you can + * embed graphics or audio file directly into your program. + * This is public domain software, use it on your own risk. + * Contact Serge Fukanchik at fuxx@mail.ru if you have any questions. + * + * Some modifications were made by Gwilym Kuiper (kuiper.gwilym@gmail.com) + * I have decided not to change the licence. + */ + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <assert.h> + +#ifdef USE_BZ2 +#include <bzlib.h> +#endif + +int +main (int argc, char *argv[]) +{ + char *buf; + char *ident; + unsigned int i, file_size, need_comma; + FILE *f_input, *f_output; + +#ifdef USE_BZ2 + int status; + char *bz2_buf; + unsigned int uncompressed_size, bz2_size; +#endif + + if (argc < 4) { + fprintf (stderr, "Usage: %s binary_file output_file array_name\n", argv[0]); + return -1; + } + + f_input = fopen (argv[1], "rb"); + if (f_input == NULL) { + fprintf (stderr, "%s: can't open %s for reading\n", argv[0], argv[1]); + return -1; + } + // Get the file length + fseek (f_input, 0, SEEK_END); + file_size = ftell (f_input); + fseek (f_input, 0, SEEK_SET); + file_size++; + + if ((buf = malloc (file_size)) == NULL) { + fprintf (stderr, "Unable to malloc bin2c.c buffer\n"); + fclose (f_input); + return -1; + } + + fread (buf, file_size, 1, f_input); + fclose (f_input); + +#ifdef USE_BZ2 + // allocate for bz2. + bz2_size = ((file_size) * 1.01) + 600; // as per the documentation + + if ((bz2_buf = malloc (bz2_size)) == NULL) { + fprintf (stderr, "Unable to malloc bin2c.c buffer\n"); + free (buf); + return -1; + } + // compress the data + status = + BZ2_bzBuffToBuffCompress (bz2_buf, &bz2_size, buf, file_size, 9, 1, 0); + if (status != BZ_OK) { + fprintf (stderr, "Failed to compress data: error %i\n", status); + free (buf); + free (bz2_buf); + return -1; + } + // and be very lazy + free (buf); + uncompressed_size = file_size; + file_size = bz2_size; + buf = bz2_buf; +#endif + + f_output = fopen (argv[2], "w"); + if (f_output == NULL) { + fprintf (stderr, "%s: can't open %s for writing\n", argv[0], argv[1]); + free (buf); + return -1; + } + + ident = argv[3]; + need_comma = 0; + + fprintf (f_output, "const char %s[%u] = {", ident, file_size); + for (i = 0; i < file_size; ++i) { + if (need_comma) + fprintf (f_output, ", "); + else + need_comma = 1; + if ((i % 11) == 0) + fprintf (f_output, "\n\t"); + fprintf (f_output, "0x%.2x", buf[i] & 0xff); + } + fprintf (f_output, "\n};\n\n"); + fprintf (f_output, "const int %s_length = %u;\n", ident, file_size); + +#ifdef USE_BZ2 + fprintf (f_output, "const int %s_length_uncompressed = %u;\n", ident, + uncompressed_size); +#endif + + fclose (f_output); + free (buf); + + return 0; +} diff --git a/src/goaccess++/src/bin2c.o b/src/goaccess++/src/bin2c.o new file mode 100644 index 0000000000000000000000000000000000000000..506493a3a9f4701c4c01840686fe87035854f1a1 GIT binary patch literal 4224 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 DOUT|* literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/bootstrapcss.h b/src/goaccess++/src/bootstrapcss.h new file mode 100644 index 0000000..53092fa --- /dev/null +++ b/src/goaccess++/src/bootstrapcss.h @@ -0,0 +1,4696 @@ +const char bootstrap_css[51609] = { + 0x2f, 0x2a, 0x21, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, + 0x67, 0x65, 0x74, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, + 0x70, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x69, 0x7a, 0x65, 0x2f, 0x3f, 0x69, 0x64, 0x3d, 0x66, 0x38, + 0x61, 0x62, 0x63, 0x30, 0x38, 0x63, 0x38, 0x38, 0x38, 0x61, 0x66, + 0x38, 0x39, 0x62, 0x32, 0x65, 0x64, 0x38, 0x63, 0x64, 0x36, 0x34, + 0x66, 0x34, 0x38, 0x61, 0x31, 0x66, 0x65, 0x33, 0x20, 0x2a, 0x2f, + 0x68, 0x74, 0x6d, 0x6c, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x73, 0x61, 0x6e, 0x73, 0x2d, + 0x73, 0x65, 0x72, 0x69, 0x66, 0x3b, 0x2d, 0x6d, 0x73, 0x2d, 0x74, + 0x65, 0x78, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x2d, 0x61, 0x64, + 0x6a, 0x75, 0x73, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x2d, + 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x74, 0x65, 0x78, 0x74, + 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x2d, 0x61, 0x64, 0x6a, 0x75, 0x73, + 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x62, 0x6f, 0x64, 0x79, + 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x7d, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x2c, 0x61, 0x73, 0x69, 0x64, + 0x65, 0x2c, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2c, 0x66, + 0x69, 0x67, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x65, 0x2c, 0x66, 0x6f, 0x6f, 0x74, 0x65, + 0x72, 0x2c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2c, 0x68, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x6d, 0x61, 0x69, 0x6e, 0x2c, 0x6d, + 0x65, 0x6e, 0x75, 0x2c, 0x6e, 0x61, 0x76, 0x2c, 0x73, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x7d, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2c, + 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2c, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x2c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x7b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x3a, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x7d, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x3a, 0x6e, 0x6f, 0x74, 0x28, + 0x5b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x73, 0x5d, 0x29, + 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, + 0x6e, 0x65, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x30, + 0x7d, 0x5b, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5d, 0x2c, 0x74, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x61, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x7d, 0x61, 0x3a, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x61, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x7b, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x3a, + 0x30, 0x7d, 0x61, 0x62, 0x62, 0x72, 0x5b, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x5d, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, + 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x64, + 0x6f, 0x74, 0x74, 0x65, 0x64, 0x7d, 0x62, 0x2c, 0x73, 0x74, 0x72, + 0x6f, 0x6e, 0x67, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 0x6f, 0x6c, 0x64, 0x7d, 0x64, + 0x66, 0x6e, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x3a, 0x69, 0x74, 0x61, 0x6c, 0x69, 0x63, 0x7d, 0x68, + 0x31, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, + 0x3a, 0x32, 0x65, 0x6d, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x3a, 0x30, 0x2e, 0x36, 0x37, 0x65, 0x6d, 0x20, 0x30, 0x7d, 0x6d, + 0x61, 0x72, 0x6b, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x3a, 0x23, 0x66, 0x66, 0x30, 0x3b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x30, 0x7d, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x38, 0x30, 0x25, 0x7d, 0x73, 0x75, 0x62, 0x2c, + 0x73, 0x75, 0x70, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x37, 0x35, 0x25, 0x3b, 0x6c, 0x69, 0x6e, 0x65, + 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x30, 0x3b, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x62, + 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x7d, 0x73, 0x75, 0x70, + 0x7b, 0x74, 0x6f, 0x70, 0x3a, 0x2d, 0x30, 0x2e, 0x35, 0x65, 0x6d, + 0x7d, 0x73, 0x75, 0x62, 0x7b, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, + 0x3a, 0x2d, 0x30, 0x2e, 0x32, 0x35, 0x65, 0x6d, 0x7d, 0x69, 0x6d, + 0x67, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x30, 0x7d, + 0x73, 0x76, 0x67, 0x3a, 0x6e, 0x6f, 0x74, 0x28, 0x3a, 0x72, 0x6f, + 0x6f, 0x74, 0x29, 0x7b, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, + 0x77, 0x3a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x7d, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x3a, 0x31, 0x65, 0x6d, 0x20, 0x34, 0x30, 0x70, 0x78, 0x7d, 0x68, + 0x72, 0x7b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, + 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x3b, + 0x2d, 0x6d, 0x6f, 0x7a, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x30, 0x7d, 0x70, 0x72, 0x65, 0x7b, 0x6f, 0x76, + 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x61, 0x75, 0x74, 0x6f, + 0x7d, 0x63, 0x6f, 0x64, 0x65, 0x2c, 0x6b, 0x62, 0x64, 0x2c, 0x70, + 0x72, 0x65, 0x2c, 0x73, 0x61, 0x6d, 0x70, 0x7b, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x6d, 0x6f, + 0x6e, 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, 0x20, 0x6d, 0x6f, + 0x6e, 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3b, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x65, 0x6d, 0x7d, + 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2c, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x2c, 0x6f, 0x70, 0x74, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2c, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2c, 0x74, 0x65, 0x78, 0x74, + 0x61, 0x72, 0x65, 0x61, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x3b, 0x66, 0x6f, 0x6e, + 0x74, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x3b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x7d, 0x62, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x7b, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, + 0x77, 0x3a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x7d, 0x62, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, + 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2c, 0x68, 0x74, 0x6d, 0x6c, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, + 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x5d, 0x2c, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x22, 0x72, 0x65, 0x73, 0x65, 0x74, 0x22, 0x5d, 0x2c, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x22, 0x5d, 0x7b, 0x2d, 0x77, 0x65, + 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, + 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x3b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x7d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2c, + 0x68, 0x74, 0x6d, 0x6c, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x7b, 0x63, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x7d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x3a, + 0x2d, 0x6d, 0x6f, 0x7a, 0x2d, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2d, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x3a, 0x3a, 0x2d, 0x6d, 0x6f, 0x7a, 0x2d, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2d, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x3a, 0x30, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x30, 0x7d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x7b, + 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x7d, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x22, 0x5d, 0x2c, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x22, 0x5d, 0x7b, 0x2d, 0x77, 0x65, 0x62, + 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x62, 0x6f, 0x78, 0x3b, 0x2d, 0x6d, 0x6f, 0x7a, 0x2d, 0x62, 0x6f, + 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x62, 0x6f, + 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x7d, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5d, 0x3a, 0x3a, 0x2d, 0x77, 0x65, + 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x2d, + 0x73, 0x70, 0x69, 0x6e, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, + 0x3d, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x5d, 0x3a, + 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x2d, 0x73, 0x70, 0x69, 0x6e, 0x2d, 0x62, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x22, 0x5d, 0x7b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, + 0x74, 0x2d, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x61, 0x6e, 0x63, + 0x65, 0x3a, 0x74, 0x65, 0x78, 0x74, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x3b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, + 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x2d, + 0x6d, 0x6f, 0x7a, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x7d, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x22, 0x5d, 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, + 0x69, 0x74, 0x2d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2d, 0x63, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, + 0x6e, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, + 0x65, 0x3d, 0x22, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x5d, + 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7b, 0x2d, 0x77, 0x65, 0x62, 0x6b, + 0x69, 0x74, 0x2d, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x61, 0x6e, + 0x63, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x65, 0x74, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, + 0x20, 0x23, 0x63, 0x30, 0x63, 0x30, 0x63, 0x30, 0x3b, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x20, 0x32, 0x70, 0x78, 0x3b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x2e, 0x33, + 0x35, 0x65, 0x6d, 0x20, 0x30, 0x2e, 0x36, 0x32, 0x35, 0x65, 0x6d, + 0x20, 0x30, 0x2e, 0x37, 0x35, 0x65, 0x6d, 0x7d, 0x6c, 0x65, 0x67, + 0x65, 0x6e, 0x64, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, + 0x30, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x30, + 0x7d, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x7b, 0x6f, + 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x61, 0x75, 0x74, + 0x6f, 0x7d, 0x6f, 0x70, 0x74, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7b, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x62, 0x6f, 0x6c, 0x64, 0x7d, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x3a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x7d, 0x74, + 0x64, 0x2c, 0x74, 0x68, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x30, 0x7d, 0x2f, 0x2a, 0x21, 0x20, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x3a, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, + 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x68, 0x35, 0x62, 0x70, 0x2f, 0x68, 0x74, 0x6d, 0x6c, + 0x35, 0x2d, 0x62, 0x6f, 0x69, 0x6c, 0x65, 0x72, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x63, 0x73, 0x73, + 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x73, 0x73, 0x20, 0x2a, + 0x2f, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x7b, 0x2a, 0x2c, 0x2a, 0x3a, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x2c, 0x2a, 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x7b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, + 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x30, + 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, + 0x3b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, + 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x6e, 0x6f, + 0x6e, 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, + 0x6e, 0x74, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, + 0x6f, 0x77, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x20, 0x21, 0x69, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x3b, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x6e, 0x6f, + 0x6e, 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, + 0x6e, 0x74, 0x7d, 0x61, 0x2c, 0x61, 0x3a, 0x76, 0x69, 0x73, 0x69, + 0x74, 0x65, 0x64, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, + 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x75, 0x6e, + 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x7d, 0x61, 0x5b, 0x68, + 0x72, 0x65, 0x66, 0x5d, 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x7b, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x20, 0x28, + 0x22, 0x20, 0x61, 0x74, 0x74, 0x72, 0x28, 0x68, 0x72, 0x65, 0x66, + 0x29, 0x20, 0x22, 0x29, 0x22, 0x7d, 0x61, 0x62, 0x62, 0x72, 0x5b, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5d, 0x3a, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, + 0x20, 0x28, 0x22, 0x20, 0x61, 0x74, 0x74, 0x72, 0x28, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x29, 0x20, 0x22, 0x29, 0x22, 0x7d, 0x61, 0x5b, + 0x68, 0x72, 0x65, 0x66, 0x5e, 0x3d, 0x22, 0x23, 0x22, 0x5d, 0x3a, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x2c, 0x61, 0x5b, 0x68, 0x72, 0x65, + 0x66, 0x5e, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x3a, 0x22, 0x5d, 0x3a, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, + 0x22, 0x7d, 0x70, 0x72, 0x65, 0x2c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x71, 0x75, 0x6f, 0x74, 0x65, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, + 0x20, 0x23, 0x39, 0x39, 0x39, 0x3b, 0x70, 0x61, 0x67, 0x65, 0x2d, + 0x62, 0x72, 0x65, 0x61, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x3a, 0x61, 0x76, 0x6f, 0x69, 0x64, 0x7d, 0x74, 0x68, 0x65, + 0x61, 0x64, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x74, 0x72, 0x2c, + 0x69, 0x6d, 0x67, 0x7b, 0x70, 0x61, 0x67, 0x65, 0x2d, 0x62, 0x72, + 0x65, 0x61, 0x6b, 0x2d, 0x69, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x3a, + 0x61, 0x76, 0x6f, 0x69, 0x64, 0x7d, 0x69, 0x6d, 0x67, 0x7b, 0x6d, + 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, + 0x30, 0x25, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, + 0x6e, 0x74, 0x7d, 0x70, 0x2c, 0x68, 0x32, 0x2c, 0x68, 0x33, 0x7b, + 0x6f, 0x72, 0x70, 0x68, 0x61, 0x6e, 0x73, 0x3a, 0x33, 0x3b, 0x77, + 0x69, 0x64, 0x6f, 0x77, 0x73, 0x3a, 0x33, 0x7d, 0x68, 0x32, 0x2c, + 0x68, 0x33, 0x7b, 0x70, 0x61, 0x67, 0x65, 0x2d, 0x62, 0x72, 0x65, + 0x61, 0x6b, 0x2d, 0x61, 0x66, 0x74, 0x65, 0x72, 0x3a, 0x61, 0x76, + 0x6f, 0x69, 0x64, 0x7d, 0x2e, 0x6e, 0x61, 0x76, 0x62, 0x61, 0x72, + 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, + 0x6e, 0x65, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x3e, 0x2e, 0x63, 0x61, + 0x72, 0x65, 0x74, 0x2c, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x75, 0x70, + 0x3e, 0x2e, 0x62, 0x74, 0x6e, 0x3e, 0x2e, 0x63, 0x61, 0x72, 0x65, + 0x74, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, + 0x70, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, + 0x30, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, + 0x74, 0x7d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, + 0x6c, 0x69, 0x64, 0x20, 0x23, 0x30, 0x30, 0x30, 0x7d, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x3a, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x20, 0x21, 0x69, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x74, 0x68, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x66, 0x66, 0x66, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, + 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x74, 0x64, 0x7b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, + 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x64, 0x64, 0x64, 0x20, + 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, + 0x7d, 0x2a, 0x7b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, + 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, + 0x2d, 0x6d, 0x6f, 0x7a, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, + 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x62, 0x6f, 0x78, 0x7d, 0x2a, 0x3a, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x2c, 0x2a, 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x7b, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, + 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x2d, 0x6d, 0x6f, + 0x7a, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, + 0x78, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, + 0x67, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, + 0x78, 0x7d, 0x68, 0x74, 0x6d, 0x6c, 0x7b, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x74, 0x61, 0x70, + 0x2d, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x72, 0x67, 0x62, 0x61, 0x28, + 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x29, 0x7d, 0x62, 0x6f, + 0x64, 0x79, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x3a, 0x22, 0x48, 0x65, 0x6c, 0x76, 0x65, 0x74, + 0x69, 0x63, 0x61, 0x20, 0x4e, 0x65, 0x75, 0x65, 0x22, 0x2c, 0x48, + 0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, 0x63, 0x61, 0x2c, 0x41, 0x72, + 0x69, 0x61, 0x6c, 0x2c, 0x73, 0x61, 0x6e, 0x73, 0x2d, 0x73, 0x65, + 0x72, 0x69, 0x66, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x31, 0x34, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, + 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, + 0x34, 0x32, 0x38, 0x35, 0x37, 0x31, 0x34, 0x33, 0x3b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, 0x33, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x2c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2c, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2c, 0x74, 0x65, 0x78, 0x74, + 0x61, 0x72, 0x65, 0x61, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, + 0x69, 0x74, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, + 0x65, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x3b, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x7d, 0x61, 0x7b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, 0x37, 0x61, 0x62, + 0x37, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, + 0x7d, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x61, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x32, 0x33, 0x35, 0x32, 0x37, 0x63, 0x3b, 0x74, 0x65, + 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, + 0x65, 0x7d, 0x61, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x6f, + 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x3a, 0x35, 0x70, 0x78, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x20, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, + 0x74, 0x2d, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2d, 0x72, 0x69, 0x6e, + 0x67, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x6f, 0x75, 0x74, + 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x3a, 0x2d, 0x32, 0x70, 0x78, 0x7d, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x7d, + 0x69, 0x6d, 0x67, 0x7b, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x6d, 0x69, 0x64, + 0x64, 0x6c, 0x65, 0x7d, 0x2e, 0x69, 0x6d, 0x67, 0x2d, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x7b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x3b, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x31, 0x30, 0x30, 0x25, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x69, 0x6d, 0x67, 0x2d, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x36, 0x70, 0x78, 0x7d, 0x2e, 0x69, 0x6d, 0x67, 0x2d, 0x74, 0x68, + 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x7b, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x34, 0x70, 0x78, 0x3b, 0x6c, 0x69, + 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, + 0x2e, 0x34, 0x32, 0x38, 0x35, 0x37, 0x31, 0x34, 0x33, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x64, 0x64, 0x64, 0x3b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x3a, 0x34, 0x70, 0x78, 0x3b, 0x2d, 0x77, 0x65, 0x62, 0x6b, + 0x69, 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x61, 0x6c, 0x6c, 0x20, 0x2e, 0x32, 0x73, 0x20, + 0x65, 0x61, 0x73, 0x65, 0x2d, 0x69, 0x6e, 0x2d, 0x6f, 0x75, 0x74, + 0x3b, 0x2d, 0x6f, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x6c, 0x6c, 0x20, 0x2e, 0x32, 0x73, + 0x20, 0x65, 0x61, 0x73, 0x65, 0x2d, 0x69, 0x6e, 0x2d, 0x6f, 0x75, + 0x74, 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x61, 0x6c, 0x6c, 0x20, 0x2e, 0x32, 0x73, 0x20, 0x65, + 0x61, 0x73, 0x65, 0x2d, 0x69, 0x6e, 0x2d, 0x6f, 0x75, 0x74, 0x3b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x6d, + 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, + 0x30, 0x25, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, + 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x69, 0x6d, 0x67, 0x2d, 0x63, 0x69, + 0x72, 0x63, 0x6c, 0x65, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x35, 0x30, 0x25, + 0x7d, 0x68, 0x72, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, + 0x74, 0x6f, 0x70, 0x3a, 0x32, 0x30, 0x70, 0x78, 0x3b, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, + 0x3a, 0x32, 0x30, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x3a, 0x30, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x74, 0x6f, 0x70, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, + 0x69, 0x64, 0x20, 0x23, 0x65, 0x65, 0x65, 0x7d, 0x2e, 0x73, 0x72, + 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, + 0x65, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x70, 0x78, + 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x70, 0x78, + 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x2d, 0x31, 0x70, + 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x30, + 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x68, + 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x63, 0x6c, 0x69, 0x70, 0x3a, + 0x72, 0x65, 0x63, 0x74, 0x28, 0x30, 0x2c, 0x20, 0x30, 0x2c, 0x20, + 0x30, 0x2c, 0x20, 0x30, 0x29, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x3a, 0x30, 0x7d, 0x2e, 0x73, 0x72, 0x2d, 0x6f, 0x6e, 0x6c, + 0x79, 0x2d, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x73, 0x72, + 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x2d, 0x66, 0x6f, 0x63, 0x75, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x63, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x3a, 0x30, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, + 0x77, 0x3a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3b, 0x63, + 0x6c, 0x69, 0x70, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x5b, 0x72, + 0x6f, 0x6c, 0x65, 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x22, 0x5d, 0x7b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x7d, 0x68, 0x31, 0x2c, 0x68, + 0x32, 0x2c, 0x68, 0x33, 0x2c, 0x68, 0x34, 0x2c, 0x68, 0x35, 0x2c, + 0x68, 0x36, 0x2c, 0x2e, 0x68, 0x31, 0x2c, 0x2e, 0x68, 0x32, 0x2c, + 0x2e, 0x68, 0x33, 0x2c, 0x2e, 0x68, 0x34, 0x2c, 0x2e, 0x68, 0x35, + 0x2c, 0x2e, 0x68, 0x36, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, + 0x69, 0x74, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x35, 0x30, 0x30, 0x3b, 0x6c, 0x69, 0x6e, + 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, + 0x31, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x69, 0x6e, 0x68, + 0x65, 0x72, 0x69, 0x74, 0x7d, 0x68, 0x31, 0x20, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x2c, 0x68, 0x32, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x2c, 0x68, 0x33, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, + 0x34, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x35, 0x20, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x36, 0x20, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x31, 0x20, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x32, 0x20, 0x73, 0x6d, 0x61, 0x6c, + 0x6c, 0x2c, 0x2e, 0x68, 0x33, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x2c, 0x2e, 0x68, 0x34, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, + 0x2e, 0x68, 0x35, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x2e, + 0x68, 0x36, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x31, + 0x20, 0x2e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x32, 0x20, + 0x2e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x33, 0x20, 0x2e, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x34, 0x20, 0x2e, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x35, 0x20, 0x2e, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x36, 0x20, 0x2e, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x31, 0x20, 0x2e, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x32, 0x20, 0x2e, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x33, 0x20, 0x2e, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x34, 0x20, 0x2e, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x35, 0x20, 0x2e, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x36, 0x20, 0x2e, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, + 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x31, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x37, + 0x37, 0x37, 0x7d, 0x68, 0x31, 0x2c, 0x2e, 0x68, 0x31, 0x2c, 0x68, + 0x32, 0x2c, 0x2e, 0x68, 0x32, 0x2c, 0x68, 0x33, 0x2c, 0x2e, 0x68, + 0x33, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, + 0x70, 0x3a, 0x32, 0x30, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, + 0x30, 0x70, 0x78, 0x7d, 0x68, 0x31, 0x20, 0x73, 0x6d, 0x61, 0x6c, + 0x6c, 0x2c, 0x2e, 0x68, 0x31, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x2c, 0x68, 0x32, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x2e, + 0x68, 0x32, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x33, + 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x33, 0x20, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x31, 0x20, 0x2e, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x31, 0x20, 0x2e, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x32, 0x20, 0x2e, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x32, 0x20, 0x2e, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x33, 0x20, 0x2e, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x33, 0x20, 0x2e, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, + 0x65, 0x3a, 0x36, 0x35, 0x25, 0x7d, 0x68, 0x34, 0x2c, 0x2e, 0x68, + 0x34, 0x2c, 0x68, 0x35, 0x2c, 0x2e, 0x68, 0x35, 0x2c, 0x68, 0x36, + 0x2c, 0x2e, 0x68, 0x36, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x7d, 0x68, 0x34, 0x20, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x34, 0x20, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x35, 0x20, 0x73, 0x6d, 0x61, 0x6c, + 0x6c, 0x2c, 0x2e, 0x68, 0x35, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x2c, 0x68, 0x36, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x2e, + 0x68, 0x36, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x34, + 0x20, 0x2e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x34, + 0x20, 0x2e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x35, 0x20, + 0x2e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x35, 0x20, + 0x2e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x68, 0x36, 0x20, 0x2e, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x2e, 0x68, 0x36, 0x20, 0x2e, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x37, 0x35, 0x25, 0x7d, 0x68, 0x31, + 0x2c, 0x2e, 0x68, 0x31, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x33, 0x36, 0x70, 0x78, 0x7d, 0x68, 0x32, + 0x2c, 0x2e, 0x68, 0x32, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x33, 0x30, 0x70, 0x78, 0x7d, 0x68, 0x33, + 0x2c, 0x2e, 0x68, 0x33, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x32, 0x34, 0x70, 0x78, 0x7d, 0x68, 0x34, + 0x2c, 0x2e, 0x68, 0x34, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x38, 0x70, 0x78, 0x7d, 0x68, 0x35, + 0x2c, 0x2e, 0x68, 0x35, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x34, 0x70, 0x78, 0x7d, 0x68, 0x36, + 0x2c, 0x2e, 0x68, 0x36, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x32, 0x70, 0x78, 0x7d, 0x70, 0x7b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x20, 0x30, 0x20, + 0x31, 0x30, 0x70, 0x78, 0x7d, 0x2e, 0x6c, 0x65, 0x61, 0x64, 0x7b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x32, 0x30, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x36, 0x70, 0x78, + 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x33, 0x30, 0x30, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x34, 0x7d, + 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x37, 0x36, 0x38, 0x70, + 0x78, 0x29, 0x7b, 0x2e, 0x6c, 0x65, 0x61, 0x64, 0x7b, 0x66, 0x6f, + 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x32, 0x31, 0x70, + 0x78, 0x7d, 0x7d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x2c, 0x2e, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x38, 0x35, 0x25, 0x7d, 0x6d, 0x61, 0x72, + 0x6b, 0x2c, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x63, 0x66, 0x38, 0x65, 0x33, 0x3b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x2e, 0x32, 0x65, + 0x6d, 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, 0x2e, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7b, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x63, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x6a, 0x75, 0x73, 0x74, + 0x69, 0x66, 0x79, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, + 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x6e, 0x6f, 0x77, 0x72, + 0x61, 0x70, 0x7b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x3a, 0x6e, 0x6f, 0x77, 0x72, 0x61, 0x70, 0x7d, + 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x6c, 0x6f, 0x77, 0x65, 0x72, + 0x63, 0x61, 0x73, 0x65, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x6c, 0x6f, + 0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x2d, 0x75, 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, + 0x65, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x75, 0x70, 0x70, 0x65, 0x72, + 0x63, 0x61, 0x73, 0x65, 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, + 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x7b, + 0x74, 0x65, 0x78, 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x3a, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x6d, + 0x75, 0x74, 0x65, 0x64, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x23, 0x37, 0x37, 0x37, 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, 0x37, 0x61, 0x62, 0x37, 0x7d, + 0x61, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x61, + 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x38, 0x36, 0x30, 0x39, 0x30, + 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x33, 0x63, 0x37, 0x36, 0x33, 0x64, 0x7d, 0x61, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, + 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x61, 0x2e, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x66, + 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x23, 0x32, 0x62, 0x35, 0x34, 0x32, 0x63, 0x7d, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x31, 0x37, 0x30, 0x38, 0x66, 0x7d, + 0x61, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x69, 0x6e, 0x66, 0x6f, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x61, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x32, + 0x34, 0x35, 0x32, 0x36, 0x39, 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, + 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x38, 0x61, 0x36, 0x64, 0x33, 0x62, + 0x7d, 0x61, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x61, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x36, 0x36, 0x35, 0x31, 0x32, + 0x63, 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x61, 0x39, 0x34, 0x34, 0x34, 0x32, 0x7d, 0x61, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x61, 0x2e, 0x74, 0x65, 0x78, 0x74, + 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x38, + 0x34, 0x33, 0x35, 0x33, 0x34, 0x7d, 0x2e, 0x62, 0x67, 0x2d, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x33, 0x33, 0x37, 0x61, 0x62, 0x37, 0x7d, 0x61, + 0x2e, 0x62, 0x67, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x61, 0x2e, 0x62, 0x67, + 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x32, 0x38, 0x36, 0x30, 0x39, 0x30, 0x7d, 0x2e, 0x62, 0x67, 0x2d, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x66, 0x66, 0x30, 0x64, 0x38, 0x7d, + 0x61, 0x2e, 0x62, 0x67, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x61, 0x2e, 0x62, + 0x67, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x66, + 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x23, 0x63, 0x31, 0x65, 0x32, 0x62, 0x33, 0x7d, 0x2e, 0x62, 0x67, + 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x64, 0x39, 0x65, 0x64, 0x66, 0x37, 0x7d, 0x61, 0x2e, + 0x62, 0x67, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x2c, 0x61, 0x2e, 0x62, 0x67, 0x2d, 0x69, 0x6e, 0x66, + 0x6f, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x61, 0x66, 0x64, 0x39, 0x65, 0x65, 0x7d, + 0x2e, 0x62, 0x67, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x63, 0x66, + 0x38, 0x65, 0x33, 0x7d, 0x61, 0x2e, 0x62, 0x67, 0x2d, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x2c, 0x61, 0x2e, 0x62, 0x67, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x37, 0x65, 0x63, 0x62, 0x35, + 0x7d, 0x2e, 0x62, 0x67, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x32, 0x64, + 0x65, 0x64, 0x65, 0x7d, 0x61, 0x2e, 0x62, 0x67, 0x2d, 0x64, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x61, 0x2e, 0x62, 0x67, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x65, 0x34, 0x62, 0x39, 0x62, 0x39, 0x7d, 0x2e, + 0x70, 0x61, 0x67, 0x65, 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x62, 0x6f, + 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x39, 0x70, 0x78, 0x3b, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x34, 0x30, 0x70, 0x78, 0x20, 0x30, + 0x20, 0x32, 0x30, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x70, + 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x65, 0x65, + 0x65, 0x7d, 0x75, 0x6c, 0x2c, 0x6f, 0x6c, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x30, 0x3b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x7d, 0x75, 0x6c, 0x20, 0x75, + 0x6c, 0x2c, 0x6f, 0x6c, 0x20, 0x75, 0x6c, 0x2c, 0x75, 0x6c, 0x20, + 0x6f, 0x6c, 0x2c, 0x6f, 0x6c, 0x20, 0x6f, 0x6c, 0x7b, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, + 0x3a, 0x30, 0x7d, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x2d, 0x75, 0x6e, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x64, 0x7b, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x30, 0x3b, + 0x6c, 0x69, 0x73, 0x74, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, + 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x2d, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x7b, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x30, 0x3b, + 0x6c, 0x69, 0x73, 0x74, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, + 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x2d, 0x35, 0x70, 0x78, 0x7d, + 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x3e, 0x6c, 0x69, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x35, 0x70, 0x78, 0x3b, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x35, 0x70, 0x78, 0x7d, 0x64, 0x6c, 0x7b, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x30, 0x3b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x32, 0x30, 0x70, 0x78, 0x7d, 0x64, 0x74, 0x2c, + 0x64, 0x64, 0x7b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x34, 0x32, 0x38, 0x35, 0x37, + 0x31, 0x34, 0x33, 0x7d, 0x64, 0x74, 0x7b, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 0x6f, 0x6c, + 0x64, 0x7d, 0x64, 0x64, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x30, 0x7d, 0x40, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x37, 0x36, 0x38, 0x70, 0x78, 0x29, 0x7b, + 0x2e, 0x64, 0x6c, 0x2d, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, + 0x74, 0x61, 0x6c, 0x20, 0x64, 0x74, 0x7b, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x31, 0x36, 0x30, 0x70, 0x78, 0x3b, 0x63, 0x6c, 0x65, + 0x61, 0x72, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, + 0x3a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, + 0x65, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x69, 0x73, 0x3b, 0x77, 0x68, + 0x69, 0x74, 0x65, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x6e, + 0x6f, 0x77, 0x72, 0x61, 0x70, 0x7d, 0x2e, 0x64, 0x6c, 0x2d, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x64, + 0x64, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x3a, 0x31, 0x38, 0x30, 0x70, 0x78, 0x7d, 0x7d, 0x61, + 0x62, 0x62, 0x72, 0x5b, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5d, 0x2c, + 0x61, 0x62, 0x62, 0x72, 0x5b, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x2d, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x5d, 0x7b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, + 0x68, 0x65, 0x6c, 0x70, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x70, 0x78, + 0x20, 0x64, 0x6f, 0x74, 0x74, 0x65, 0x64, 0x20, 0x23, 0x37, 0x37, + 0x37, 0x7d, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, + 0x73, 0x6d, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, + 0x65, 0x3a, 0x39, 0x30, 0x25, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x75, + 0x70, 0x70, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x7d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x7b, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x20, + 0x32, 0x30, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x3a, 0x30, 0x20, 0x30, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3b, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x37, + 0x2e, 0x35, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x35, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x65, 0x65, 0x65, 0x7d, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x20, 0x70, + 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x2c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, + 0x20, 0x75, 0x6c, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x2c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, + 0x6f, 0x74, 0x65, 0x20, 0x6f, 0x6c, 0x3a, 0x6c, 0x61, 0x73, 0x74, + 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x7b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x30, + 0x7d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, + 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2c, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x20, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x2c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x20, 0x2e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x7b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, + 0x3a, 0x38, 0x30, 0x25, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x34, 0x32, 0x38, + 0x35, 0x37, 0x31, 0x34, 0x33, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x37, 0x37, 0x37, 0x7d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x71, 0x75, 0x6f, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, + 0x72, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x2c, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x20, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x2c, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x20, + 0x2e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, + 0x27, 0x5c, 0x32, 0x30, 0x31, 0x34, 0x20, 0x5c, 0x30, 0x30, 0x41, + 0x30, 0x27, 0x7d, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, + 0x6f, 0x74, 0x65, 0x2d, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, + 0x2c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, + 0x2e, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x31, 0x35, 0x70, 0x78, 0x3b, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x30, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x35, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, + 0x69, 0x64, 0x20, 0x23, 0x65, 0x65, 0x65, 0x3b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x30, 0x3b, + 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x2e, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2d, 0x72, 0x65, 0x76, 0x65, + 0x72, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x3a, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x2c, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x70, 0x75, 0x6c, 0x6c, + 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6f, 0x6f, 0x74, + 0x65, 0x72, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x2c, 0x2e, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2d, + 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x2c, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x70, + 0x75, 0x6c, 0x6c, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x2c, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, + 0x65, 0x2d, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x2e, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x2c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, + 0x65, 0x2e, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x20, 0x2e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3a, 0x27, 0x27, 0x7d, 0x2e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2d, 0x72, 0x65, 0x76, 0x65, 0x72, + 0x73, 0x65, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x3a, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x2c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x71, + 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, + 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2d, 0x72, 0x65, 0x76, + 0x65, 0x72, 0x73, 0x65, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3a, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x2c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x70, 0x75, 0x6c, 0x6c, 0x2d, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2d, 0x72, 0x65, 0x76, + 0x65, 0x72, 0x73, 0x65, 0x20, 0x2e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x2c, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x70, 0x75, 0x6c, 0x6c, + 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x2e, 0x73, 0x6d, 0x61, + 0x6c, 0x6c, 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x7b, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x27, 0x5c, 0x30, 0x30, 0x41, + 0x30, 0x20, 0x5c, 0x32, 0x30, 0x31, 0x34, 0x27, 0x7d, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x32, 0x30, + 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x3a, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x31, 0x2e, 0x34, 0x32, 0x38, 0x35, 0x37, 0x31, 0x34, 0x33, 0x7d, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x61, 0x75, 0x74, + 0x6f, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x31, 0x35, 0x70, 0x78, 0x3b, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x31, 0x35, 0x70, 0x78, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x37, 0x36, 0x38, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7b, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x37, 0x35, 0x30, 0x70, 0x78, 0x7d, 0x7d, + 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x39, 0x39, 0x32, 0x70, + 0x78, 0x29, 0x7b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x39, 0x37, + 0x30, 0x70, 0x78, 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x31, 0x32, 0x30, 0x30, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7b, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x31, 0x31, 0x37, 0x30, 0x70, 0x78, 0x7d, + 0x7d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x2d, 0x66, 0x6c, 0x75, 0x69, 0x64, 0x7b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x75, + 0x74, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x31, 0x35, 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x35, 0x70, + 0x78, 0x7d, 0x2e, 0x72, 0x6f, 0x77, 0x7b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x2d, 0x31, 0x35, + 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x2d, 0x31, 0x35, 0x70, 0x78, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x31, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x31, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x31, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x31, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x32, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x32, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x32, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x32, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x33, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x33, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x33, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x33, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x34, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x34, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x34, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x34, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x35, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x35, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x35, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x35, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x36, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x36, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x36, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x36, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x37, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x37, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x37, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x37, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x38, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x38, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x38, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x38, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x39, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x39, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x39, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x39, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x31, 0x30, 0x2c, + 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x31, 0x30, + 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x31, + 0x30, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, + 0x31, 0x30, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x31, 0x31, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, + 0x6d, 0x2d, 0x31, 0x31, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6d, 0x64, 0x2d, 0x31, 0x31, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x6c, 0x67, 0x2d, 0x31, 0x31, 0x2c, 0x20, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x31, 0x32, 0x2c, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x31, 0x32, 0x2c, 0x20, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x31, 0x32, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x31, 0x32, 0x7b, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, 0x6d, 0x69, 0x6e, 0x2d, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x70, 0x78, 0x3b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x31, 0x35, 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, + 0x35, 0x70, 0x78, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x31, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x32, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x33, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x34, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x35, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x36, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x37, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x38, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x39, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x31, 0x30, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, + 0x73, 0x2d, 0x31, 0x31, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x78, 0x73, 0x2d, 0x31, 0x32, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x78, 0x73, 0x2d, 0x31, 0x32, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x78, 0x73, 0x2d, 0x31, 0x31, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x39, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, + 0x31, 0x30, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x38, 0x33, + 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x39, 0x7b, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x37, 0x35, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x38, 0x7b, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x36, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, + 0x73, 0x2d, 0x37, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x35, + 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x36, 0x7b, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x35, 0x30, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x35, 0x7b, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x34, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x78, 0x73, 0x2d, 0x34, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x33, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x33, + 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x32, 0x35, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x32, 0x7b, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x36, 0x2e, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x78, 0x73, 0x2d, 0x31, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, + 0x75, 0x6c, 0x6c, 0x2d, 0x31, 0x32, 0x7b, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x31, 0x31, + 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x39, 0x31, 0x2e, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, + 0x31, 0x30, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x38, 0x33, + 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, 0x6c, + 0x6c, 0x2d, 0x39, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x37, + 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, + 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x38, 0x7b, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x36, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x37, 0x7b, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x35, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, + 0x73, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x36, 0x7b, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x35, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x35, + 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x34, 0x31, 0x2e, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, + 0x34, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x33, 0x2e, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, 0x6c, 0x6c, + 0x2d, 0x33, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x32, 0x35, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, + 0x75, 0x6c, 0x6c, 0x2d, 0x32, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x31, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, + 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x31, 0x7b, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, + 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x30, 0x7b, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x31, 0x32, + 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, 0x73, + 0x68, 0x2d, 0x31, 0x31, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x39, + 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, + 0x73, 0x68, 0x2d, 0x31, 0x30, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x38, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, + 0x75, 0x73, 0x68, 0x2d, 0x39, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x37, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x38, 0x7b, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x36, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x37, 0x7b, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x35, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x36, 0x7b, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x35, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x78, 0x73, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x35, 0x7b, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x34, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x78, 0x73, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x34, 0x7b, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x33, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x78, 0x73, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x33, 0x7b, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x32, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x32, + 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x36, 0x2e, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x31, + 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x38, 0x2e, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x78, 0x73, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x30, 0x7b, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x2d, 0x31, 0x32, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x2d, 0x31, 0x31, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x39, 0x31, + 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x2d, 0x31, 0x30, 0x7b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x38, 0x33, 0x2e, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x2d, 0x39, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x37, 0x35, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x2d, 0x38, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x36, 0x36, 0x2e, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x2d, 0x37, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x35, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x78, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x36, + 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x35, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x78, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x35, + 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x34, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, + 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x34, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x33, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x33, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x32, 0x35, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x32, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x36, + 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x2d, 0x31, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x38, 0x2e, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x78, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x2d, 0x30, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x30, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x37, 0x36, 0x38, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x31, 0x2c, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x32, 0x2c, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x33, 0x2c, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x34, 0x2c, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x35, 0x2c, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x36, 0x2c, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x37, 0x2c, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x38, 0x2c, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x39, 0x2c, 0x20, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x31, 0x30, 0x2c, 0x20, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x31, 0x31, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x31, 0x32, 0x7b, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x31, 0x32, 0x7b, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x31, 0x31, 0x7b, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x39, 0x31, 0x2e, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x31, 0x30, 0x7b, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x38, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, + 0x6d, 0x2d, 0x39, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x37, + 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, + 0x38, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x36, 0x36, 0x2e, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x37, 0x7b, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x35, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x73, 0x6d, 0x2d, 0x36, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x35, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, + 0x2d, 0x35, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x34, 0x31, + 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x34, 0x7b, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x33, 0x33, 0x2e, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x73, 0x6d, 0x2d, 0x33, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x32, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, + 0x6d, 0x2d, 0x32, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, + 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x31, 0x7b, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x38, 0x2e, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x31, 0x32, + 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, + 0x6c, 0x6c, 0x2d, 0x31, 0x31, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x39, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, + 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x31, 0x30, 0x7b, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x38, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, + 0x6d, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x39, 0x7b, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x37, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x38, + 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x36, 0x36, 0x2e, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, + 0x37, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x35, 0x38, 0x2e, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x6c, 0x6c, + 0x2d, 0x36, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x35, 0x30, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, + 0x75, 0x6c, 0x6c, 0x2d, 0x35, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x34, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, + 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x34, 0x7b, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x33, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, + 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x33, 0x7b, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x32, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x32, 0x7b, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x36, 0x2e, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x31, + 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x38, 0x2e, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x30, + 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x75, 0x74, 0x6f, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, + 0x73, 0x68, 0x2d, 0x31, 0x32, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, + 0x6d, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x31, 0x31, 0x7b, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x39, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x31, 0x30, 0x7b, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x38, 0x33, 0x2e, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x39, 0x7b, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x37, 0x35, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, + 0x38, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x36, 0x36, 0x2e, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, + 0x37, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x35, 0x38, 0x2e, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, + 0x36, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x35, 0x30, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x73, + 0x68, 0x2d, 0x35, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x34, 0x31, + 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x73, + 0x68, 0x2d, 0x34, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x33, 0x33, + 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, 0x73, + 0x68, 0x2d, 0x33, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x32, 0x35, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, + 0x75, 0x73, 0x68, 0x2d, 0x32, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x31, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, + 0x75, 0x73, 0x68, 0x2d, 0x31, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x70, 0x75, + 0x73, 0x68, 0x2d, 0x30, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x61, + 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, + 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x31, 0x32, 0x7b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, + 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x73, 0x6d, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x31, + 0x31, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x3a, 0x39, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, + 0x6d, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x31, 0x30, + 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x38, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, + 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x39, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x37, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, + 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x38, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x36, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x37, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x35, 0x38, + 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x2d, 0x36, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x35, 0x30, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x2d, 0x35, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x34, 0x31, 0x2e, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x2d, 0x34, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x33, 0x33, 0x2e, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x73, 0x6d, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, + 0x33, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x3a, 0x32, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x73, 0x6d, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, + 0x32, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x3a, 0x31, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, + 0x6d, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x31, 0x7b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, + 0x3a, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x73, 0x6d, 0x2d, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x30, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x30, 0x7d, + 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, + 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x39, 0x39, 0x32, + 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x31, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x32, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x33, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x34, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x35, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x36, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x37, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x38, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x39, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x31, 0x30, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, + 0x64, 0x2d, 0x31, 0x31, 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6d, 0x64, 0x2d, 0x31, 0x32, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6d, 0x64, 0x2d, 0x31, 0x32, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6d, 0x64, 0x2d, 0x31, 0x31, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x39, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, + 0x31, 0x30, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x38, 0x33, + 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x39, 0x7b, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x37, 0x35, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x38, 0x7b, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x36, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, + 0x64, 0x2d, 0x37, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x35, + 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x36, 0x7b, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x35, 0x30, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x35, 0x7b, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x34, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6d, 0x64, 0x2d, 0x34, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x33, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x33, + 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x32, 0x35, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x32, 0x7b, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x36, 0x2e, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x6d, 0x64, 0x2d, 0x31, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, + 0x75, 0x6c, 0x6c, 0x2d, 0x31, 0x32, 0x7b, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x31, 0x31, + 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x39, 0x31, 0x2e, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, + 0x31, 0x30, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x38, 0x33, + 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x6c, + 0x6c, 0x2d, 0x39, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x37, + 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, + 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x38, 0x7b, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x36, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x37, 0x7b, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x35, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, + 0x64, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x36, 0x7b, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x35, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x35, + 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x34, 0x31, 0x2e, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, + 0x34, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x33, 0x2e, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x6c, 0x6c, + 0x2d, 0x33, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x32, 0x35, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, + 0x75, 0x6c, 0x6c, 0x2d, 0x32, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x31, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, + 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x31, 0x7b, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, + 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x30, 0x7b, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x31, 0x32, + 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x73, + 0x68, 0x2d, 0x31, 0x31, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x39, + 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, + 0x73, 0x68, 0x2d, 0x31, 0x30, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x38, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, + 0x75, 0x73, 0x68, 0x2d, 0x39, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x37, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x38, 0x7b, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x36, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x37, 0x7b, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x35, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x36, 0x7b, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x35, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x35, 0x7b, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x34, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x34, 0x7b, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x33, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x33, 0x7b, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x32, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x32, + 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x36, 0x2e, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x31, + 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x38, 0x2e, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x6d, 0x64, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x30, 0x7b, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x2d, 0x31, 0x32, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x2d, 0x31, 0x31, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x39, 0x31, + 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x2d, 0x31, 0x30, 0x7b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x38, 0x33, 0x2e, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x2d, 0x39, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x37, 0x35, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x2d, 0x38, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x36, 0x36, 0x2e, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x2d, 0x37, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x35, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6d, 0x64, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x36, + 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x35, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6d, 0x64, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x35, + 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x34, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, + 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x34, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x33, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x33, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x32, 0x35, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x32, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x36, + 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x2d, 0x31, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x38, 0x2e, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x2d, 0x30, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x30, 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x31, 0x32, 0x30, 0x30, 0x70, 0x78, 0x29, 0x7b, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x31, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x32, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x33, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x34, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x35, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x36, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x37, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x38, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x39, 0x2c, 0x20, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x31, 0x30, 0x2c, + 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x31, 0x31, + 0x2c, 0x20, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x31, + 0x32, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x6c, 0x65, 0x66, + 0x74, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x31, + 0x32, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x31, + 0x31, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x39, 0x31, 0x2e, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x31, 0x30, 0x7b, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x38, 0x33, 0x2e, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x6c, 0x67, 0x2d, 0x39, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x37, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, + 0x67, 0x2d, 0x38, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x36, + 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x37, 0x7b, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x35, 0x38, 0x2e, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x36, 0x7b, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x35, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6c, 0x67, 0x2d, 0x35, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x34, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x34, + 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x33, 0x33, 0x2e, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x33, 0x7b, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x32, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x6c, 0x67, 0x2d, 0x32, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x31, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, + 0x31, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x38, 0x2e, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, + 0x31, 0x32, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x30, + 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, + 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x31, 0x31, 0x7b, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x39, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, + 0x67, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x31, 0x30, 0x7b, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x38, 0x33, 0x2e, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x39, 0x7b, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x37, 0x35, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x6c, 0x6c, + 0x2d, 0x38, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x36, 0x36, + 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x6c, + 0x6c, 0x2d, 0x37, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x35, + 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, + 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, + 0x6c, 0x6c, 0x2d, 0x36, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x35, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, + 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x35, 0x7b, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x34, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, + 0x67, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x34, 0x7b, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x33, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x33, 0x7b, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x32, 0x35, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x6c, 0x6c, 0x2d, + 0x32, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x36, 0x2e, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x6c, 0x6c, + 0x2d, 0x31, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x38, 0x2e, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, + 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x6c, 0x6c, + 0x2d, 0x30, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x75, + 0x74, 0x6f, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, + 0x70, 0x75, 0x73, 0x68, 0x2d, 0x31, 0x32, 0x7b, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x31, 0x31, + 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x39, 0x31, 0x2e, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x31, + 0x30, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x38, 0x33, 0x2e, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, + 0x39, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x37, 0x35, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x73, + 0x68, 0x2d, 0x38, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x36, 0x36, + 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x73, + 0x68, 0x2d, 0x37, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x35, 0x38, + 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, 0x75, 0x73, + 0x68, 0x2d, 0x36, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x35, 0x30, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, + 0x75, 0x73, 0x68, 0x2d, 0x35, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x34, 0x31, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, + 0x75, 0x73, 0x68, 0x2d, 0x34, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x33, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x70, + 0x75, 0x73, 0x68, 0x2d, 0x33, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x32, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, + 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x32, 0x7b, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x31, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, + 0x2d, 0x70, 0x75, 0x73, 0x68, 0x2d, 0x31, 0x7b, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, + 0x70, 0x75, 0x73, 0x68, 0x2d, 0x30, 0x7b, 0x6c, 0x65, 0x66, 0x74, + 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6c, 0x67, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x31, + 0x32, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x6f, + 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x2d, 0x31, 0x31, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x39, 0x31, 0x2e, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x6c, 0x67, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, + 0x31, 0x30, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x38, 0x33, 0x2e, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6c, 0x67, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x39, + 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x37, 0x35, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, + 0x6c, 0x67, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x38, + 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x36, 0x36, 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, + 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x37, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x35, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x36, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x35, 0x30, + 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x35, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x34, 0x31, + 0x2e, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, + 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x2d, 0x34, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x33, 0x33, 0x2e, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x2d, 0x33, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x32, 0x35, 0x25, 0x7d, 0x2e, 0x63, + 0x6f, 0x6c, 0x2d, 0x6c, 0x67, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x2d, 0x32, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x36, 0x2e, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x37, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, + 0x2d, 0x6c, 0x67, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, + 0x31, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x3a, 0x38, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x25, 0x7d, 0x2e, 0x63, 0x6f, 0x6c, 0x2d, 0x6c, 0x67, + 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2d, 0x30, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x30, 0x7d, 0x7d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x7b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x7d, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x74, + 0x6f, 0x70, 0x3a, 0x38, 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, + 0x38, 0x70, 0x78, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x37, 0x37, 0x37, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, 0x74, 0x68, + 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, + 0x25, 0x3b, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x32, 0x30, + 0x70, 0x78, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, + 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2c, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, + 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, + 0x72, 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, + 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, + 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x7b, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x38, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, + 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, + 0x34, 0x32, 0x38, 0x35, 0x37, 0x31, 0x34, 0x33, 0x3b, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x3a, 0x74, 0x6f, 0x70, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x64, 0x64, 0x64, 0x7d, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, + 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x7b, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, + 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x32, + 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x64, + 0x64, 0x64, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x63, + 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x74, 0x68, 0x65, 0x61, + 0x64, 0x3e, 0x74, 0x72, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x63, 0x6f, 0x6c, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2b, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, + 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3a, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x74, 0x72, 0x3a, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, + 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x74, 0x68, 0x65, + 0x61, 0x64, 0x3e, 0x74, 0x72, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x74, 0x64, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x63, 0x6f, 0x6c, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2b, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, + 0x72, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3a, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x74, 0x72, + 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x3e, 0x74, 0x64, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x30, 0x7d, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2b, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x74, 0x6f, 0x70, 0x3a, 0x32, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, + 0x69, 0x64, 0x20, 0x23, 0x64, 0x64, 0x64, 0x7d, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x7b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x64, + 0x65, 0x6e, 0x73, 0x65, 0x64, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, + 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x64, 0x65, 0x6e, 0x73, 0x65, + 0x64, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, + 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x63, + 0x6f, 0x6e, 0x64, 0x65, 0x6e, 0x73, 0x65, 0x64, 0x3e, 0x74, 0x66, + 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x64, 0x65, + 0x6e, 0x73, 0x65, 0x64, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, + 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x64, 0x65, 0x6e, 0x73, 0x65, 0x64, + 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, + 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x63, 0x6f, + 0x6e, 0x64, 0x65, 0x6e, 0x73, 0x65, 0x64, 0x3e, 0x74, 0x66, 0x6f, + 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x7b, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, 0x70, 0x78, 0x7d, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, + 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, + 0x64, 0x64, 0x64, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, + 0x72, 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, + 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2c, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, + 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, + 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, + 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x7b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, + 0x64, 0x20, 0x23, 0x64, 0x64, 0x64, 0x7d, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, + 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, 0x68, 0x65, 0x61, + 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x2d, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x32, 0x70, 0x78, 0x7d, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x73, 0x74, 0x72, 0x69, 0x70, + 0x65, 0x64, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, + 0x3a, 0x6e, 0x74, 0x68, 0x2d, 0x6f, 0x66, 0x2d, 0x74, 0x79, 0x70, + 0x65, 0x28, 0x6f, 0x64, 0x64, 0x29, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x66, 0x39, 0x66, 0x39, 0x66, 0x39, 0x7d, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x23, 0x66, 0x35, 0x66, 0x35, 0x66, 0x35, 0x7d, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x63, 0x6f, 0x6c, 0x5b, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x2a, 0x3d, 0x22, 0x63, 0x6f, 0x6c, 0x2d, 0x22, 0x5d, 0x7b, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x63, 0x3b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x7d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, + 0x64, 0x5b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2a, 0x3d, 0x22, 0x63, + 0x6f, 0x6c, 0x2d, 0x22, 0x5d, 0x2c, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x74, 0x68, 0x5b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2a, 0x3d, + 0x22, 0x63, 0x6f, 0x6c, 0x2d, 0x22, 0x5d, 0x7b, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x63, 0x3b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x6e, 0x6f, 0x6e, + 0x65, 0x3b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x7d, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, + 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, + 0x3e, 0x74, 0x64, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, + 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, + 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, + 0x61, 0x64, 0x3e, 0x74, 0x72, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, + 0x74, 0x72, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3e, 0x74, + 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3e, 0x74, 0x68, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, + 0x3e, 0x74, 0x72, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3e, + 0x74, 0x68, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, + 0x35, 0x66, 0x35, 0x66, 0x35, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, + 0x74, 0x68, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, + 0x79, 0x3e, 0x74, 0x72, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x64, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, + 0x72, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x3e, 0x74, 0x68, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x65, 0x38, 0x65, 0x38, 0x65, 0x38, 0x7d, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, + 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, + 0x2e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2c, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, + 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, + 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2e, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2c, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, + 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, + 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, + 0x2e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3e, 0x74, 0x64, + 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x3e, 0x74, 0x72, 0x2e, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x2e, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3e, 0x74, 0x64, 0x2c, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, + 0x64, 0x3e, 0x74, 0x72, 0x2e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x2e, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3e, 0x74, 0x68, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, + 0x3e, 0x74, 0x72, 0x2e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x3e, 0x74, 0x68, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x64, 0x66, 0x66, 0x30, 0x64, 0x38, 0x7d, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, + 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x2e, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, + 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0x74, 0x72, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x2e, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x2e, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, + 0x68, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x30, + 0x65, 0x39, 0x63, 0x36, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, + 0x64, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, + 0x3e, 0x74, 0x64, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2c, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, + 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2c, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, + 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, + 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, + 0x72, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x3e, 0x74, 0x64, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, + 0x3e, 0x74, 0x72, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x3e, 0x74, 0x64, + 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, + 0x61, 0x64, 0x3e, 0x74, 0x72, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x3e, + 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x3e, 0x74, 0x68, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x64, 0x39, 0x65, 0x64, 0x66, 0x37, 0x7d, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, + 0x64, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, + 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, + 0x79, 0x3e, 0x74, 0x72, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x3e, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2c, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x68, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x63, 0x34, 0x65, + 0x33, 0x66, 0x33, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, + 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, + 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x2c, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, + 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x2c, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, + 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, + 0x3e, 0x74, 0x68, 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, + 0x61, 0x64, 0x3e, 0x74, 0x72, 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x2e, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3e, 0x74, 0x64, 0x2c, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, + 0x74, 0x3e, 0x74, 0x72, 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x2e, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3e, 0x74, 0x68, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, + 0x3e, 0x74, 0x72, 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, + 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x2e, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3e, 0x74, 0x68, 0x7b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x63, 0x66, 0x38, 0x65, 0x33, + 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, + 0x3e, 0x74, 0x64, 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, + 0x72, 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x3e, 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, + 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x3e, 0x74, 0x68, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x66, 0x61, 0x66, 0x32, 0x63, 0x63, 0x7d, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, + 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, 0x64, 0x61, 0x6e, 0x67, + 0x65, 0x72, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, + 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, + 0x3e, 0x74, 0x64, 0x2e, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, 0x61, + 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x64, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, + 0x2e, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2c, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, + 0x72, 0x3e, 0x74, 0x68, 0x2e, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, 0x65, + 0x61, 0x64, 0x3e, 0x74, 0x72, 0x2e, 0x64, 0x61, 0x6e, 0x67, 0x65, + 0x72, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x2e, 0x64, + 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, + 0x74, 0x72, 0x2e, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3e, 0x74, + 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x2e, 0x64, 0x61, 0x6e, 0x67, + 0x65, 0x72, 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x2e, + 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3e, 0x74, 0x68, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, + 0x3e, 0x74, 0x72, 0x2e, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3e, + 0x74, 0x68, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, + 0x32, 0x64, 0x65, 0x64, 0x65, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2e, 0x64, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, + 0x74, 0x68, 0x2e, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, + 0x79, 0x3e, 0x74, 0x72, 0x2e, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x74, 0x64, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x3e, 0x2e, 0x64, 0x61, 0x6e, 0x67, 0x65, + 0x72, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, + 0x72, 0x2e, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x3e, 0x74, 0x68, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x65, 0x62, 0x63, 0x63, 0x63, 0x63, 0x7d, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x69, 0x76, 0x65, 0x7b, 0x6f, 0x76, 0x65, 0x72, 0x66, + 0x6c, 0x6f, 0x77, 0x2d, 0x78, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x3b, + 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x30, 0x2e, 0x30, 0x31, 0x25, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x20, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x37, 0x36, 0x37, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x69, 0x76, 0x65, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x31, 0x30, 0x30, 0x25, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x35, 0x70, + 0x78, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2d, + 0x79, 0x3a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x2d, 0x6d, + 0x73, 0x2d, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2d, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x2d, 0x6d, 0x73, 0x2d, 0x61, + 0x75, 0x74, 0x6f, 0x68, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x73, + 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, + 0x6c, 0x69, 0x64, 0x20, 0x23, 0x64, 0x64, 0x64, 0x7d, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, + 0x74, 0x6f, 0x6d, 0x3a, 0x30, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, + 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x68, + 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, + 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, + 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, + 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, + 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x2c, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, + 0x3e, 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x74, 0x66, 0x6f, 0x6f, + 0x74, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x7b, 0x77, 0x68, 0x69, + 0x74, 0x65, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x6e, 0x6f, + 0x77, 0x72, 0x61, 0x70, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, + 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x3a, 0x30, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, + 0x74, 0x72, 0x3e, 0x74, 0x68, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, + 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, 0x62, 0x6f, + 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x3a, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, + 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, + 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, + 0x3e, 0x74, 0x64, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, + 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, + 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x3a, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2c, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, 0x66, + 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x3a, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x7b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x6c, 0x65, 0x66, 0x74, + 0x3a, 0x30, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x3e, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, + 0x72, 0x3e, 0x74, 0x68, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, + 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, + 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x3a, 0x6c, 0x61, 0x73, 0x74, + 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, + 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, 0x66, 0x6f, + 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x68, 0x3a, 0x6c, 0x61, + 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2c, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, + 0x68, 0x65, 0x61, 0x64, 0x3e, 0x74, 0x72, 0x3e, 0x74, 0x64, 0x3a, + 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x2c, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, + 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3e, 0x74, + 0x64, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x65, 0x64, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, + 0x3e, 0x74, 0x64, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x30, 0x7d, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, 0x74, 0x62, + 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3a, 0x6c, 0x61, 0x73, 0x74, + 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x74, 0x68, 0x2c, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x3e, + 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, 0x72, 0x3a, 0x6c, 0x61, + 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x74, 0x68, + 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, + 0x64, 0x3e, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x74, 0x72, 0x3a, + 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, + 0x74, 0x64, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3e, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x65, 0x64, 0x3e, 0x74, 0x66, 0x6f, 0x6f, 0x74, 0x3e, 0x74, + 0x72, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x3e, 0x74, 0x64, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x30, 0x7d, 0x7d, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x7b, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x3b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x3a, 0x30, 0x3b, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x30, 0x7d, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, + 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, + 0x30, 0x30, 0x25, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x30, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, + 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x32, 0x30, 0x70, 0x78, 0x3b, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x32, + 0x31, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, + 0x74, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, + 0x33, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x30, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, + 0x64, 0x20, 0x23, 0x65, 0x35, 0x65, 0x35, 0x65, 0x35, 0x7d, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x3b, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, + 0x35, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 0x6f, 0x6c, 0x64, 0x7d, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x5d, 0x7b, 0x2d, 0x77, + 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x2d, 0x6d, 0x6f, 0x7a, 0x2d, + 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, + 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x7d, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x22, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x5d, 0x2c, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x22, 0x5d, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x34, 0x70, 0x78, 0x20, 0x30, + 0x20, 0x30, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, + 0x6f, 0x70, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x5c, 0x39, 0x3b, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x7d, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, + 0x65, 0x22, 0x5d, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7d, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x22, 0x5d, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x5b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x5d, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5b, 0x73, + 0x69, 0x7a, 0x65, 0x5d, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x66, 0x69, 0x6c, 0x65, + 0x22, 0x5d, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x22, 0x5d, 0x3a, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, + 0x65, 0x3d, 0x22, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, + 0x22, 0x5d, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x6f, 0x75, + 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x3a, 0x35, 0x70, 0x78, 0x20, 0x61, + 0x75, 0x74, 0x6f, 0x20, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, + 0x2d, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2d, 0x72, 0x69, 0x6e, 0x67, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x6f, 0x75, 0x74, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, + 0x2d, 0x32, 0x70, 0x78, 0x7d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x37, 0x70, 0x78, 0x3b, 0x66, 0x6f, + 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x34, 0x70, + 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x34, 0x32, 0x38, 0x35, 0x37, 0x31, + 0x34, 0x33, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, + 0x35, 0x35, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x34, 0x70, 0x78, 0x3b, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x36, 0x70, 0x78, 0x20, + 0x31, 0x32, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, + 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x34, 0x70, 0x78, 0x3b, 0x6c, 0x69, + 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, + 0x2e, 0x34, 0x32, 0x38, 0x35, 0x37, 0x31, 0x34, 0x33, 0x3b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x35, 0x35, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x63, 0x63, 0x63, 0x3b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x3a, 0x34, 0x70, 0x78, 0x3b, 0x2d, 0x77, 0x65, 0x62, 0x6b, + 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, + 0x6f, 0x77, 0x3a, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x30, 0x20, + 0x31, 0x70, 0x78, 0x20, 0x31, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, + 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x30, + 0x37, 0x35, 0x29, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, + 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x30, + 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, 0x70, 0x78, 0x20, 0x72, 0x67, + 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2e, + 0x30, 0x37, 0x35, 0x29, 0x3b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, + 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x73, 0x65, 0x2d, 0x69, 0x6e, + 0x2d, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x31, 0x35, 0x73, 0x2c, 0x20, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, + 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x65, 0x61, 0x73, + 0x65, 0x2d, 0x69, 0x6e, 0x2d, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x31, + 0x35, 0x73, 0x3b, 0x2d, 0x6f, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x65, 0x61, 0x73, + 0x65, 0x2d, 0x69, 0x6e, 0x2d, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x31, + 0x35, 0x73, 0x2c, 0x20, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, + 0x64, 0x6f, 0x77, 0x20, 0x65, 0x61, 0x73, 0x65, 0x2d, 0x69, 0x6e, + 0x2d, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x31, 0x35, 0x73, 0x3b, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x20, 0x65, 0x61, 0x73, 0x65, 0x2d, 0x69, 0x6e, 0x2d, 0x6f, 0x75, + 0x74, 0x20, 0x2e, 0x31, 0x35, 0x73, 0x2c, 0x20, 0x62, 0x6f, 0x78, + 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x65, 0x61, 0x73, + 0x65, 0x2d, 0x69, 0x6e, 0x2d, 0x6f, 0x75, 0x74, 0x20, 0x2e, 0x31, + 0x35, 0x73, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, + 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x36, 0x36, 0x61, 0x66, 0x65, 0x39, 0x3b, + 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x3a, 0x30, 0x3b, 0x2d, + 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, + 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, 0x73, 0x65, + 0x74, 0x20, 0x30, 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, 0x70, 0x78, + 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, + 0x2c, 0x2e, 0x30, 0x37, 0x35, 0x29, 0x2c, 0x20, 0x30, 0x20, 0x30, + 0x20, 0x38, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x31, + 0x30, 0x32, 0x2c, 0x20, 0x31, 0x37, 0x35, 0x2c, 0x20, 0x32, 0x33, + 0x33, 0x2c, 0x20, 0x30, 0x2e, 0x36, 0x29, 0x3b, 0x62, 0x6f, 0x78, + 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, 0x73, + 0x65, 0x74, 0x20, 0x30, 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, 0x70, + 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, + 0x30, 0x2c, 0x2e, 0x30, 0x37, 0x35, 0x29, 0x2c, 0x20, 0x30, 0x20, + 0x30, 0x20, 0x38, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, + 0x31, 0x30, 0x32, 0x2c, 0x20, 0x31, 0x37, 0x35, 0x2c, 0x20, 0x32, + 0x33, 0x33, 0x2c, 0x20, 0x30, 0x2e, 0x36, 0x29, 0x7d, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x3a, 0x3a, 0x2d, 0x6d, 0x6f, 0x7a, 0x2d, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x39, 0x39, 0x39, 0x3b, 0x6f, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x3a, 0x31, 0x7d, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x2d, + 0x6d, 0x73, 0x2d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x7b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x39, 0x39, 0x39, 0x7d, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x3a, 0x3a, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x39, 0x39, 0x39, 0x7d, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x3a, + 0x2d, 0x6d, 0x73, 0x2d, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x7b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x30, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2c, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5b, 0x72, + 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x5d, 0x2c, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x7b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, 0x65, 0x65, 0x3b, 0x6f, 0x70, + 0x61, 0x63, 0x69, 0x74, 0x79, 0x3a, 0x31, 0x7d, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5b, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2c, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x7b, 0x63, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x74, 0x2d, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x7d, 0x74, 0x65, 0x78, 0x74, + 0x61, 0x72, 0x65, 0x61, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x7b, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x22, 0x5d, 0x7b, 0x2d, 0x77, 0x65, 0x62, + 0x6b, 0x69, 0x74, 0x2d, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x61, + 0x6e, 0x63, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x40, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x20, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x2d, 0x77, 0x65, 0x62, 0x6b, + 0x69, 0x74, 0x2d, 0x6d, 0x69, 0x6e, 0x2d, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2d, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x2d, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x3a, 0x30, 0x29, 0x7b, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x64, 0x61, 0x74, + 0x65, 0x22, 0x5d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x69, 0x6d, 0x65, + 0x22, 0x5d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, + 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x64, 0x61, 0x74, 0x65, 0x74, + 0x69, 0x6d, 0x65, 0x2d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x22, 0x5d, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x22, 0x5d, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x7b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x33, 0x34, 0x70, 0x78, 0x7d, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x64, + 0x61, 0x74, 0x65, 0x22, 0x5d, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x2d, 0x73, 0x6d, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, + 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x5d, + 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x73, 0x6d, 0x2c, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, + 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x22, 0x5d, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x2d, 0x73, 0x6d, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, + 0x79, 0x70, 0x65, 0x3d, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x22, + 0x5d, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x73, 0x6d, 0x2c, + 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2d, 0x73, 0x6d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, + 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x64, 0x61, 0x74, 0x65, 0x22, + 0x5d, 0x2c, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2d, 0x73, 0x6d, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x69, 0x6d, + 0x65, 0x22, 0x5d, 0x2c, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x73, 0x6d, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x64, + 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x2d, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x22, 0x5d, 0x2c, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x73, 0x6d, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x22, 0x5d, 0x7b, 0x6c, 0x69, 0x6e, + 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x30, + 0x70, 0x78, 0x7d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x22, 0x64, 0x61, 0x74, 0x65, 0x22, 0x5d, 0x2e, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x6c, 0x67, 0x2c, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, + 0x69, 0x6d, 0x65, 0x22, 0x5d, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x2d, 0x6c, 0x67, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, + 0x79, 0x70, 0x65, 0x3d, 0x22, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, + 0x6d, 0x65, 0x2d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x22, 0x5d, 0x2e, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x6c, 0x67, 0x2c, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x6d, + 0x6f, 0x6e, 0x74, 0x68, 0x22, 0x5d, 0x2e, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x2d, 0x6c, 0x67, 0x2c, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x6c, 0x67, 0x20, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, + 0x64, 0x61, 0x74, 0x65, 0x22, 0x5d, 0x2c, 0x2e, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x6c, 0x67, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, + 0x3d, 0x22, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x5d, 0x2c, 0x2e, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, + 0x6c, 0x67, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x22, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, + 0x65, 0x2d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x22, 0x5d, 0x2c, 0x2e, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2d, 0x6c, 0x67, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, + 0x79, 0x70, 0x65, 0x3d, 0x22, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x22, + 0x5d, 0x7b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x34, 0x36, 0x70, 0x78, 0x7d, 0x7d, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x3a, 0x31, 0x35, 0x70, 0x78, 0x7d, 0x2e, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, + 0x78, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, + 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x30, + 0x70, 0x78, 0x7d, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x20, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x62, 0x6f, 0x78, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7b, 0x6d, + 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x32, + 0x30, 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x32, 0x30, 0x70, 0x78, 0x3b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x30, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x3b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x7d, 0x2e, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, + 0x65, 0x3d, 0x22, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x5d, 0x2c, + 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2d, 0x69, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x22, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x5d, + 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x22, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x22, 0x5d, + 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x2d, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x22, 0x5d, 0x7b, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x62, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x65, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x2d, 0x32, 0x30, 0x70, 0x78, 0x3b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, + 0x34, 0x70, 0x78, 0x20, 0x5c, 0x39, 0x7d, 0x2e, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x2b, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2c, 0x2e, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x2b, 0x2e, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x2d, 0x35, 0x70, + 0x78, 0x7d, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2d, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x62, 0x6f, 0x78, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x7b, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x32, 0x30, 0x70, + 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, + 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x30, 0x3b, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, + 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x3b, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x6e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x3b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x7d, 0x2e, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2b, + 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2d, 0x69, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, + 0x78, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2b, 0x2e, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x2d, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, + 0x74, 0x6f, 0x70, 0x3a, 0x30, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x30, 0x70, 0x78, + 0x7d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, + 0x3d, 0x22, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x5d, 0x5b, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2c, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x22, 0x5d, 0x5b, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2c, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x22, 0x5d, 0x2e, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, + 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x62, 0x6f, 0x78, 0x22, 0x5d, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, + 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, + 0x3d, 0x22, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x5d, 0x2c, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x22, 0x5d, 0x7b, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x74, 0x2d, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x7d, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2c, 0x2e, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x62, 0x6f, 0x78, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2c, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x7b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, + 0x74, 0x2d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x7d, 0x2e, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2c, 0x2e, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x7b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x6e, + 0x6f, 0x74, 0x2d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x7d, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x7b, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x74, 0x6f, 0x70, 0x3a, + 0x37, 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x37, 0x70, 0x78, + 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, + 0x74, 0x6f, 0x6d, 0x3a, 0x30, 0x3b, 0x6d, 0x69, 0x6e, 0x2d, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x34, 0x70, 0x78, 0x7d, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x2e, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x6c, 0x67, 0x2c, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x2e, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x2d, 0x73, 0x6d, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x30, 0x3b, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x30, 0x7d, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x73, + 0x6d, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x30, + 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x35, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x66, 0x6f, + 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x32, 0x70, + 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x35, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x33, + 0x70, 0x78, 0x7d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x73, 0x6d, 0x7b, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x33, 0x30, 0x70, 0x78, 0x3b, 0x6c, 0x69, + 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, + 0x30, 0x70, 0x78, 0x7d, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, + 0x61, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x73, 0x6d, 0x2c, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5b, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x65, 0x5d, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x2d, 0x73, 0x6d, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x73, 0x6d, 0x20, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x30, 0x70, + 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, + 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x32, 0x70, 0x78, + 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x31, 0x2e, 0x35, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x33, 0x70, + 0x78, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2d, 0x73, 0x6d, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x33, 0x30, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x30, 0x70, 0x78, 0x7d, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2d, 0x73, 0x6d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, + 0x61, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x73, 0x6d, 0x20, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x5b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x5d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x73, 0x6d, 0x20, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x7b, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x30, 0x70, 0x78, 0x3b, 0x6d, + 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, + 0x32, 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x36, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x32, + 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x35, 0x7d, 0x2e, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x2d, 0x6c, 0x67, 0x7b, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x34, 0x36, 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x20, 0x31, + 0x36, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x31, 0x38, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, + 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x36, 0x70, 0x78, 0x7d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2e, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x6c, 0x67, 0x7b, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x34, 0x36, 0x70, 0x78, 0x3b, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x34, 0x36, 0x70, 0x78, 0x7d, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, + 0x65, 0x61, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x6c, 0x67, + 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5b, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5d, 0x2e, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x2d, 0x6c, 0x67, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x6c, 0x67, 0x20, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x34, 0x36, + 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, + 0x31, 0x30, 0x70, 0x78, 0x20, 0x31, 0x36, 0x70, 0x78, 0x3b, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x38, + 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x36, 0x70, 0x78, 0x7d, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, + 0x6c, 0x67, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x34, 0x36, 0x70, + 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x34, 0x36, 0x70, 0x78, 0x7d, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x6c, 0x67, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2d, 0x6c, 0x67, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x5b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5d, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x75, + 0x74, 0x6f, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2d, 0x6c, 0x67, 0x20, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x63, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x34, 0x36, 0x70, 0x78, 0x3b, 0x6d, 0x69, 0x6e, 0x2d, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x38, 0x70, 0x78, + 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x31, 0x31, + 0x70, 0x78, 0x20, 0x31, 0x36, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x38, 0x70, 0x78, + 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x31, 0x2e, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x7d, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, + 0x61, 0x63, 0x6b, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x7d, + 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, + 0x63, 0x6b, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x34, 0x32, + 0x2e, 0x35, 0x70, 0x78, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x66, 0x65, 0x65, + 0x64, 0x62, 0x61, 0x63, 0x6b, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, + 0x65, 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x30, 0x3b, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x30, 0x3b, 0x7a, 0x2d, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x3a, 0x32, 0x3b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x33, 0x34, 0x70, 0x78, 0x3b, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x33, 0x34, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, + 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x34, + 0x70, 0x78, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2d, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2e, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x2d, 0x6c, 0x67, 0x2b, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x66, + 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x2c, 0x2e, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x6c, + 0x67, 0x2b, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, + 0x63, 0x6b, 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2d, 0x6c, 0x67, 0x20, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2b, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x7b, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x34, 0x36, 0x70, 0x78, 0x3b, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x34, 0x36, 0x70, 0x78, + 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x34, 0x36, 0x70, 0x78, 0x7d, 0x2e, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x2d, 0x73, 0x6d, 0x2b, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x66, 0x65, + 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x2c, 0x2e, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x73, 0x6d, + 0x2b, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, + 0x6b, 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2d, 0x73, 0x6d, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2b, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x7b, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x33, 0x30, 0x70, 0x78, 0x3b, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x30, 0x70, 0x78, 0x3b, + 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x33, 0x30, 0x70, 0x78, 0x7d, 0x2e, 0x68, 0x61, 0x73, 0x2d, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x68, 0x65, + 0x6c, 0x70, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, 0x2e, 0x68, + 0x61, 0x73, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x20, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, + 0x6f, 0x78, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x68, 0x61, + 0x73, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x2e, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x2d, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2c, 0x2e, 0x68, 0x61, + 0x73, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2d, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, + 0x78, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x33, 0x63, 0x37, 0x36, 0x33, 0x64, 0x7d, 0x2e, 0x68, 0x61, 0x73, + 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x63, 0x37, 0x36, 0x33, 0x64, 0x3b, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, + 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, 0x73, + 0x65, 0x74, 0x20, 0x30, 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, 0x70, + 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, + 0x30, 0x2c, 0x30, 0x2e, 0x30, 0x37, 0x35, 0x29, 0x3b, 0x62, 0x6f, + 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, + 0x73, 0x65, 0x74, 0x20, 0x30, 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, + 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, + 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x30, 0x37, 0x35, 0x29, 0x7d, 0x2e, + 0x68, 0x61, 0x73, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x32, 0x62, 0x35, 0x34, 0x32, 0x63, 0x3b, 0x2d, 0x77, + 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, + 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, 0x73, 0x65, 0x74, + 0x20, 0x30, 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, 0x70, 0x78, 0x20, + 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, + 0x30, 0x2e, 0x30, 0x37, 0x35, 0x29, 0x2c, 0x30, 0x20, 0x30, 0x20, + 0x36, 0x70, 0x78, 0x20, 0x23, 0x36, 0x37, 0x62, 0x31, 0x36, 0x38, + 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, + 0x3a, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x30, 0x20, 0x31, 0x70, + 0x78, 0x20, 0x31, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, + 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x30, 0x37, 0x35, + 0x29, 0x2c, 0x30, 0x20, 0x30, 0x20, 0x36, 0x70, 0x78, 0x20, 0x23, + 0x36, 0x37, 0x62, 0x31, 0x36, 0x38, 0x7d, 0x2e, 0x68, 0x61, 0x73, + 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, + 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x33, 0x63, 0x37, 0x36, 0x33, 0x64, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x23, 0x33, 0x63, 0x37, 0x36, 0x33, 0x64, 0x3b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x66, 0x66, 0x30, 0x64, 0x38, 0x7d, + 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, + 0x63, 0x6b, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, + 0x63, 0x37, 0x36, 0x33, 0x64, 0x7d, 0x2e, 0x68, 0x61, 0x73, 0x2d, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x2e, 0x68, 0x65, + 0x6c, 0x70, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, 0x2e, 0x68, + 0x61, 0x73, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x2e, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x20, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, + 0x6f, 0x78, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x68, 0x61, + 0x73, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x2e, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x2d, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2c, 0x2e, 0x68, 0x61, + 0x73, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2d, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, + 0x78, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x38, 0x61, 0x36, 0x64, 0x33, 0x62, 0x7d, 0x2e, 0x68, 0x61, 0x73, + 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x38, 0x61, 0x36, 0x64, 0x33, 0x62, 0x3b, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, + 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, 0x73, + 0x65, 0x74, 0x20, 0x30, 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, 0x70, + 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, + 0x30, 0x2c, 0x30, 0x2e, 0x30, 0x37, 0x35, 0x29, 0x3b, 0x62, 0x6f, + 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, + 0x73, 0x65, 0x74, 0x20, 0x30, 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, + 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, + 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x30, 0x37, 0x35, 0x29, 0x7d, 0x2e, + 0x68, 0x61, 0x73, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x36, 0x36, 0x35, 0x31, 0x32, 0x63, 0x3b, 0x2d, 0x77, + 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, + 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, 0x73, 0x65, 0x74, + 0x20, 0x30, 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, 0x70, 0x78, 0x20, + 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, + 0x30, 0x2e, 0x30, 0x37, 0x35, 0x29, 0x2c, 0x30, 0x20, 0x30, 0x20, + 0x36, 0x70, 0x78, 0x20, 0x23, 0x63, 0x30, 0x61, 0x31, 0x36, 0x62, + 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, + 0x3a, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x30, 0x20, 0x31, 0x70, + 0x78, 0x20, 0x31, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, + 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x30, 0x37, 0x35, + 0x29, 0x2c, 0x30, 0x20, 0x30, 0x20, 0x36, 0x70, 0x78, 0x20, 0x23, + 0x63, 0x30, 0x61, 0x31, 0x36, 0x62, 0x7d, 0x2e, 0x68, 0x61, 0x73, + 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x2e, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, + 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x38, 0x61, 0x36, 0x64, 0x33, 0x62, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x23, 0x38, 0x61, 0x36, 0x64, 0x33, 0x62, 0x3b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x63, 0x66, 0x38, 0x65, 0x33, 0x7d, + 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, + 0x63, 0x6b, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x38, + 0x61, 0x36, 0x64, 0x33, 0x62, 0x7d, 0x2e, 0x68, 0x61, 0x73, 0x2d, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, 0x68, 0x65, 0x6c, 0x70, + 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, 0x2e, 0x68, 0x61, 0x73, + 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2c, + 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, + 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2c, 0x2e, 0x68, 0x61, 0x73, + 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x68, + 0x61, 0x73, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x2d, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x20, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, + 0x6f, 0x78, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2c, 0x2e, 0x68, + 0x61, 0x73, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2c, 0x2e, 0x68, 0x61, 0x73, 0x2d, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x62, 0x6f, 0x78, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x61, 0x39, 0x34, 0x34, 0x34, 0x32, 0x7d, 0x2e, 0x68, + 0x61, 0x73, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x61, 0x39, 0x34, 0x34, 0x34, 0x32, 0x3b, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, + 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, 0x73, + 0x65, 0x74, 0x20, 0x30, 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, 0x70, + 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, + 0x30, 0x2c, 0x30, 0x2e, 0x30, 0x37, 0x35, 0x29, 0x3b, 0x62, 0x6f, + 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, + 0x73, 0x65, 0x74, 0x20, 0x30, 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, + 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, + 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x30, 0x37, 0x35, 0x29, 0x7d, 0x2e, + 0x68, 0x61, 0x73, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x38, 0x34, 0x33, 0x35, 0x33, 0x34, 0x3b, 0x2d, 0x77, 0x65, 0x62, + 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, + 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x20, 0x30, + 0x20, 0x31, 0x70, 0x78, 0x20, 0x31, 0x70, 0x78, 0x20, 0x72, 0x67, + 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2e, + 0x30, 0x37, 0x35, 0x29, 0x2c, 0x30, 0x20, 0x30, 0x20, 0x36, 0x70, + 0x78, 0x20, 0x23, 0x63, 0x65, 0x38, 0x34, 0x38, 0x33, 0x3b, 0x62, + 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, + 0x6e, 0x73, 0x65, 0x74, 0x20, 0x30, 0x20, 0x31, 0x70, 0x78, 0x20, + 0x31, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, + 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x30, 0x37, 0x35, 0x29, 0x2c, + 0x30, 0x20, 0x30, 0x20, 0x36, 0x70, 0x78, 0x20, 0x23, 0x63, 0x65, + 0x38, 0x34, 0x38, 0x33, 0x7d, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x61, 0x64, 0x64, 0x6f, + 0x6e, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x61, 0x39, + 0x34, 0x34, 0x34, 0x32, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x61, 0x39, 0x34, + 0x34, 0x34, 0x32, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x66, 0x32, 0x64, 0x65, 0x64, 0x65, 0x7d, 0x2e, 0x68, 0x61, 0x73, + 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x66, + 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x61, 0x39, 0x34, 0x34, 0x34, 0x32, 0x7d, + 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, + 0x63, 0x6b, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7e, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x7b, 0x74, + 0x6f, 0x70, 0x3a, 0x32, 0x35, 0x70, 0x78, 0x7d, 0x2e, 0x68, 0x61, + 0x73, 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, 0x61, 0x63, 0x6b, 0x20, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x73, 0x72, 0x2d, 0x6f, 0x6e, + 0x6c, 0x79, 0x7e, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x66, 0x65, 0x65, 0x64, 0x62, + 0x61, 0x63, 0x6b, 0x7b, 0x74, 0x6f, 0x70, 0x3a, 0x30, 0x7d, 0x2e, + 0x68, 0x65, 0x6c, 0x70, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, + 0x6f, 0x70, 0x3a, 0x35, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, + 0x30, 0x70, 0x78, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x37, 0x33, 0x37, 0x33, 0x37, 0x33, 0x7d, 0x40, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x37, 0x36, 0x38, 0x70, 0x78, 0x29, 0x7b, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, + 0x74, 0x6f, 0x6d, 0x3a, 0x30, 0x3b, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x7b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x3a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x7d, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x7b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7d, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x3b, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2d, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x6d, 0x69, 0x64, 0x64, 0x6c, + 0x65, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x2e, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x61, 0x64, 0x64, + 0x6f, 0x6e, 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x2e, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x62, 0x74, + 0x6e, 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x7b, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, + 0x2e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x3e, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x30, 0x3b, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x6d, 0x69, + 0x64, 0x64, 0x6c, 0x65, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x2e, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x62, 0x6f, 0x78, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, + 0x6f, 0x70, 0x3a, 0x30, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x30, 0x3b, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x3a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x7d, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x20, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x62, 0x6f, 0x78, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7b, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x6c, 0x65, 0x66, 0x74, + 0x3a, 0x30, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, + 0x3d, 0x22, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x22, 0x5d, 0x2c, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x22, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x22, 0x5d, + 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x30, 0x7d, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x20, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x66, 0x65, 0x65, 0x64, + 0x62, 0x61, 0x63, 0x6b, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x66, 0x65, 0x65, + 0x64, 0x62, 0x61, 0x63, 0x6b, 0x7b, 0x74, 0x6f, 0x70, 0x3a, 0x30, + 0x7d, 0x7d, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x2e, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x2e, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x2c, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, + 0x74, 0x61, 0x6c, 0x20, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2d, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x2d, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, + 0x6c, 0x20, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, + 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x30, 0x3b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x3a, 0x30, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x37, 0x70, 0x78, 0x7d, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, + 0x74, 0x61, 0x6c, 0x20, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2c, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x68, 0x6f, 0x72, 0x69, 0x7a, + 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x2e, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x62, 0x6f, 0x78, 0x7b, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x32, 0x37, 0x70, 0x78, 0x7d, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, + 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x2d, 0x31, 0x35, 0x70, + 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x2d, 0x31, 0x35, 0x70, 0x78, 0x7d, 0x40, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x37, 0x36, 0x38, 0x70, 0x78, + 0x29, 0x7b, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x30, + 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x74, 0x6f, + 0x70, 0x3a, 0x37, 0x70, 0x78, 0x7d, 0x7d, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x2d, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, + 0x6c, 0x20, 0x2e, 0x68, 0x61, 0x73, 0x2d, 0x66, 0x65, 0x65, 0x64, + 0x62, 0x61, 0x63, 0x6b, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x66, 0x65, 0x65, + 0x64, 0x62, 0x61, 0x63, 0x6b, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x31, 0x35, 0x70, 0x78, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x37, 0x36, 0x38, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, + 0x74, 0x61, 0x6c, 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x6c, 0x67, 0x20, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x74, 0x6f, + 0x70, 0x3a, 0x31, 0x31, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x38, 0x70, 0x78, 0x7d, + 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, + 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x37, 0x36, 0x38, + 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, + 0x73, 0x6d, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7b, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x36, 0x70, 0x78, + 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x31, 0x32, 0x70, 0x78, 0x7d, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x7b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x3a, 0x30, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, + 0x3a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x3b, 0x2d, 0x6d, 0x73, + 0x2d, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x2d, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x6d, 0x61, 0x6e, 0x69, 0x70, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x2d, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6d, 0x61, 0x6e, 0x69, + 0x70, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x63, 0x75, + 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, + 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x31, 0x70, + 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x77, 0x68, + 0x69, 0x74, 0x65, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x6e, + 0x6f, 0x77, 0x72, 0x61, 0x70, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x36, 0x70, 0x78, 0x20, 0x31, 0x32, 0x70, 0x78, + 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x31, 0x34, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x34, 0x32, 0x38, + 0x35, 0x37, 0x31, 0x34, 0x33, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x34, 0x70, + 0x78, 0x3b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x75, + 0x73, 0x65, 0x72, 0x2d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3a, + 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x2d, 0x6d, 0x6f, 0x7a, 0x2d, 0x75, + 0x73, 0x65, 0x72, 0x2d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3a, + 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x2d, 0x6d, 0x73, 0x2d, 0x75, 0x73, + 0x65, 0x72, 0x2d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3a, 0x6e, + 0x6f, 0x6e, 0x65, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2e, + 0x62, 0x74, 0x6e, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, + 0x62, 0x74, 0x6e, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2e, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x3a, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, + 0x74, 0x6e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2e, 0x66, + 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x6e, + 0x65, 0x3a, 0x35, 0x70, 0x78, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x20, + 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2d, 0x72, 0x69, 0x6e, 0x67, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3b, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x2d, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, 0x2d, 0x32, 0x70, 0x78, + 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, + 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, + 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, 0x33, + 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, + 0x2e, 0x62, 0x74, 0x6e, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x7b, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x3a, 0x30, + 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, + 0x3b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, + 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, 0x6e, + 0x73, 0x65, 0x74, 0x20, 0x30, 0x20, 0x33, 0x70, 0x78, 0x20, 0x35, + 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, + 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x31, 0x32, 0x35, 0x29, 0x3b, 0x62, + 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x69, + 0x6e, 0x73, 0x65, 0x74, 0x20, 0x30, 0x20, 0x33, 0x70, 0x78, 0x20, + 0x35, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, + 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x31, 0x32, 0x35, 0x29, 0x7d, + 0x2e, 0x62, 0x74, 0x6e, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x5b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2c, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x7b, 0x63, 0x75, + 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x74, 0x2d, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x3b, 0x6f, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x3a, 0x2e, 0x36, 0x35, 0x3b, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x3a, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x28, 0x6f, 0x70, + 0x61, 0x63, 0x69, 0x74, 0x79, 0x3d, 0x36, 0x35, 0x29, 0x3b, 0x2d, + 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, + 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, + 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, + 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x61, 0x2e, 0x62, 0x74, 0x6e, + 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2c, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x61, 0x2e, 0x62, 0x74, + 0x6e, 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2d, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, + 0x33, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, + 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x63, 0x63, 0x63, 0x7d, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, + 0x33, 0x33, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, + 0x36, 0x65, 0x36, 0x65, 0x36, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x38, 0x63, + 0x38, 0x63, 0x38, 0x63, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, + 0x33, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, 0x36, + 0x65, 0x36, 0x65, 0x36, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x61, 0x64, 0x61, + 0x64, 0x61, 0x64, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, + 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, + 0x33, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, 0x36, + 0x65, 0x36, 0x65, 0x36, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x61, 0x64, 0x61, + 0x64, 0x61, 0x64, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, + 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, + 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, + 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, + 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, 0x33, 0x3b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x34, 0x64, 0x34, 0x64, 0x34, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x38, 0x63, 0x38, 0x63, 0x38, 0x63, 0x7d, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, + 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2e, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2e, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x63, + 0x63, 0x63, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x2e, 0x62, 0x61, 0x64, 0x67, 0x65, + 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, + 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, 0x33, + 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, + 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, + 0x33, 0x37, 0x61, 0x62, 0x37, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x65, + 0x36, 0x64, 0x61, 0x34, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x38, 0x36, 0x30, 0x39, + 0x30, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x31, 0x32, 0x32, 0x62, 0x34, 0x30, + 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x38, 0x36, 0x30, 0x39, 0x30, + 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x30, 0x34, 0x64, 0x37, 0x34, 0x7d, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x38, 0x36, 0x30, 0x39, 0x30, + 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x30, 0x34, 0x64, 0x37, 0x34, 0x7d, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, + 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2e, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x32, 0x30, 0x34, 0x64, 0x37, 0x34, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x31, + 0x32, 0x32, 0x62, 0x34, 0x30, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x6e, + 0x6f, 0x6e, 0x65, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x3a, + 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x3a, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2e, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x5d, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, + 0x33, 0x37, 0x61, 0x62, 0x37, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x65, + 0x36, 0x64, 0x61, 0x34, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x2e, 0x62, 0x61, 0x64, + 0x67, 0x65, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, + 0x33, 0x37, 0x61, 0x62, 0x37, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x63, 0x62, 0x38, 0x35, 0x63, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x34, 0x63, 0x61, 0x65, 0x34, 0x63, 0x7d, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x34, 0x34, 0x39, 0x64, 0x34, 0x34, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x32, + 0x35, 0x35, 0x36, 0x32, 0x35, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, + 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x34, + 0x34, 0x39, 0x64, 0x34, 0x34, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x39, + 0x38, 0x34, 0x33, 0x39, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, + 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, + 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, + 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x34, + 0x34, 0x39, 0x64, 0x34, 0x34, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x39, + 0x38, 0x34, 0x33, 0x39, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, + 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, + 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, + 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x39, 0x38, 0x34, 0x33, 0x39, + 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x35, 0x35, 0x36, 0x32, 0x35, 0x7d, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x7b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, + 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5b, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2e, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, + 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x63, 0x62, 0x38, 0x35, 0x63, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x34, 0x63, 0x61, 0x65, 0x34, 0x63, 0x7d, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x20, 0x2e, 0x62, 0x61, 0x64, 0x67, 0x65, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x63, 0x62, 0x38, 0x35, 0x63, 0x3b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x7b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x62, 0x63, 0x30, 0x64, + 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x34, 0x36, 0x62, 0x38, 0x64, 0x61, + 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x31, 0x62, 0x30, + 0x64, 0x35, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x31, 0x62, 0x36, 0x64, 0x38, + 0x35, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x33, 0x31, 0x62, 0x30, 0x64, 0x35, 0x3b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x32, 0x36, 0x39, 0x61, 0x62, 0x63, 0x7d, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, + 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x31, 0x62, 0x30, 0x64, 0x35, + 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x36, 0x39, 0x61, 0x62, 0x63, 0x7d, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, + 0x6f, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2e, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2e, 0x66, + 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, + 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x36, 0x39, 0x61, 0x62, + 0x63, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x31, 0x62, 0x36, 0x64, 0x38, 0x35, + 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x3a, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, + 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, + 0x66, 0x6f, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, + 0x6e, 0x66, 0x6f, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, + 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, + 0x6f, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x5b, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2e, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, + 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, + 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x35, 0x62, 0x63, 0x30, 0x64, 0x65, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x23, 0x34, 0x36, 0x62, 0x38, 0x64, 0x61, 0x7d, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x2e, 0x62, 0x61, 0x64, + 0x67, 0x65, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, + 0x62, 0x63, 0x30, 0x64, 0x65, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x30, 0x61, 0x64, 0x34, 0x65, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x65, 0x65, 0x61, 0x32, 0x33, 0x36, 0x7d, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x65, 0x63, 0x39, 0x37, 0x31, 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x39, + 0x38, 0x35, 0x66, 0x30, 0x64, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, + 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, + 0x63, 0x39, 0x37, 0x31, 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x35, + 0x38, 0x35, 0x31, 0x32, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, + 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, + 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, + 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, + 0x63, 0x39, 0x37, 0x31, 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x35, + 0x38, 0x35, 0x31, 0x32, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, + 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, + 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, + 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x35, 0x38, 0x35, 0x31, 0x32, + 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x39, 0x38, 0x35, 0x66, 0x30, 0x64, 0x7d, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x7b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, + 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5b, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2e, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, + 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x30, 0x61, 0x64, 0x34, 0x65, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x65, 0x65, 0x61, 0x32, 0x33, 0x36, 0x7d, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x20, 0x2e, 0x62, 0x61, 0x64, 0x67, 0x65, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x30, 0x61, 0x64, 0x34, 0x65, 0x3b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, + 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x39, 0x35, + 0x33, 0x34, 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x34, 0x33, 0x66, + 0x33, 0x61, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2e, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x63, 0x39, 0x33, 0x30, 0x32, 0x63, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x23, 0x37, 0x36, 0x31, 0x63, 0x31, 0x39, 0x7d, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x63, 0x39, 0x33, 0x30, 0x32, 0x63, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x61, + 0x63, 0x32, 0x39, 0x32, 0x35, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, + 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, + 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x63, 0x39, 0x33, + 0x30, 0x32, 0x63, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x61, 0x63, 0x32, 0x39, + 0x32, 0x35, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, + 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, + 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, + 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2e, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, + 0x65, 0x72, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x61, 0x63, 0x32, 0x39, 0x32, 0x35, + 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x37, 0x36, 0x31, 0x63, 0x31, 0x39, 0x7d, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x3a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x3e, + 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, + 0x61, 0x6e, 0x67, 0x65, 0x72, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2e, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x3a, + 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2e, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x5d, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x5b, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2e, 0x66, 0x6f, 0x63, + 0x75, 0x73, 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, + 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x64, 0x39, 0x35, 0x33, 0x34, 0x66, 0x3b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x64, 0x34, 0x33, 0x66, 0x33, 0x61, 0x7d, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x2e, + 0x62, 0x61, 0x64, 0x67, 0x65, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x64, 0x39, 0x35, 0x33, 0x34, 0x66, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, 0x37, 0x61, 0x62, 0x37, 0x3b, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x30, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, + 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x3a, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, + 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2c, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, + 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, + 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, + 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x2c, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, + 0x6b, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x3a, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, + 0x6c, 0x69, 0x6e, 0x6b, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x3a, 0x66, + 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x23, 0x32, 0x33, 0x35, 0x32, 0x37, 0x63, 0x3b, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, + 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x7d, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x5b, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x2c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x2c, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, + 0x6b, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x65, 0x74, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x5d, 0x20, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x6c, 0x69, + 0x6e, 0x6b, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x37, 0x37, 0x37, 0x3b, 0x74, 0x65, + 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x6c, 0x67, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x20, 0x31, 0x36, 0x70, 0x78, + 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x31, 0x38, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x36, 0x70, 0x78, + 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x6d, 0x7b, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, 0x70, 0x78, 0x20, 0x31, + 0x30, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x31, 0x32, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, + 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, + 0x35, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x3a, 0x33, 0x70, 0x78, 0x7d, 0x2e, 0x62, + 0x74, 0x6e, 0x2d, 0x78, 0x73, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x35, 0x70, 0x78, 0x3b, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, + 0x32, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x35, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x3a, 0x33, 0x70, 0x78, 0x7d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2b, 0x2e, 0x62, 0x74, + 0x6e, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x35, 0x70, 0x78, + 0x7d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, + 0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x22, 0x5d, 0x2e, + 0x62, 0x74, 0x6e, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, + 0x72, 0x65, 0x73, 0x65, 0x74, 0x22, 0x5d, 0x2e, 0x62, 0x74, 0x6e, + 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x62, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x22, 0x5d, 0x2e, 0x62, 0x74, 0x6e, 0x2d, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x63, 0x61, 0x72, 0x65, 0x74, + 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x30, 0x3b, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x30, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x32, 0x70, 0x78, 0x3b, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, + 0x34, 0x70, 0x78, 0x20, 0x64, 0x61, 0x73, 0x68, 0x65, 0x64, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, + 0x34, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x5c, + 0x39, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x34, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, + 0x69, 0x64, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x34, 0x70, 0x78, 0x20, 0x73, 0x6f, + 0x6c, 0x69, 0x64, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x7d, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x75, + 0x70, 0x2c, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x7d, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x6f, 0x75, + 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x3a, 0x30, 0x7d, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, + 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x61, + 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x74, 0x6f, 0x70, + 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x30, 0x3b, 0x7a, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x31, + 0x30, 0x30, 0x30, 0x3b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x6d, 0x69, 0x6e, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x36, 0x30, 0x70, 0x78, 0x3b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, 0x70, 0x78, + 0x20, 0x30, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x32, + 0x70, 0x78, 0x20, 0x30, 0x20, 0x30, 0x3b, 0x6c, 0x69, 0x73, 0x74, + 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, + 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x31, 0x34, 0x70, 0x78, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x63, 0x63, 0x63, 0x3b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, + 0x2c, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x31, 0x35, 0x29, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3a, 0x34, 0x70, 0x78, 0x3b, 0x2d, 0x77, 0x65, 0x62, + 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, + 0x64, 0x6f, 0x77, 0x3a, 0x30, 0x20, 0x36, 0x70, 0x78, 0x20, 0x31, + 0x32, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, + 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2e, 0x31, 0x37, 0x35, 0x29, 0x3b, + 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, + 0x30, 0x20, 0x36, 0x70, 0x78, 0x20, 0x31, 0x32, 0x70, 0x78, 0x20, + 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, + 0x30, 0x2e, 0x31, 0x37, 0x35, 0x29, 0x3b, 0x2d, 0x77, 0x65, 0x62, + 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6c, 0x69, 0x70, 0x3a, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6c, 0x69, 0x70, 0x3a, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x2d, 0x62, 0x6f, 0x78, 0x7d, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, + 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x2e, 0x70, 0x75, + 0x6c, 0x6c, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7b, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x30, 0x3b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, + 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x20, 0x2e, 0x64, + 0x69, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7b, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x31, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x3a, 0x39, 0x70, 0x78, 0x20, 0x30, 0x3b, 0x6f, 0x76, + 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x68, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, + 0x35, 0x65, 0x35, 0x65, 0x35, 0x7d, 0x2e, 0x64, 0x72, 0x6f, 0x70, + 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x3e, 0x6c, + 0x69, 0x3e, 0x61, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x33, 0x70, 0x78, 0x20, 0x32, 0x30, 0x70, + 0x78, 0x3b, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x3a, 0x62, 0x6f, 0x74, + 0x68, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x31, 0x2e, 0x34, 0x32, 0x38, 0x35, 0x37, 0x31, 0x34, 0x33, 0x3b, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, 0x33, 0x3b, + 0x77, 0x68, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x3a, 0x6e, 0x6f, 0x77, 0x72, 0x61, 0x70, 0x7d, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, + 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x2c, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, + 0x6d, 0x65, 0x6e, 0x75, 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x66, + 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, + 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, + 0x6f, 0x6e, 0x65, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x32, 0x36, 0x32, 0x36, 0x32, 0x36, 0x3b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x66, 0x35, 0x66, 0x35, 0x66, 0x35, 0x7d, 0x2e, + 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, + 0x6e, 0x75, 0x3e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3e, + 0x61, 0x2c, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x3e, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x3e, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, + 0x65, 0x6e, 0x75, 0x3e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x3e, 0x61, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x74, 0x65, + 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x6f, 0x75, 0x74, + 0x6c, 0x69, 0x6e, 0x65, 0x3a, 0x30, 0x3b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x33, 0x33, 0x37, 0x61, 0x62, 0x37, 0x7d, 0x2e, + 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, + 0x6e, 0x75, 0x3e, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x3e, 0x61, 0x2c, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x3e, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x3e, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x37, 0x37, 0x37, 0x7d, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x3e, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, 0x3a, 0x68, 0x6f, + 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x3e, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, + 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, + 0x6e, 0x65, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x70, 0x72, 0x6f, 0x67, 0x69, + 0x64, 0x3a, 0x44, 0x58, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x4d, 0x69, 0x63, + 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x67, 0x72, 0x61, 0x64, + 0x69, 0x65, 0x6e, 0x74, 0x28, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, + 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x74, 0x2d, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x7d, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, + 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x7b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7d, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x3e, 0x61, 0x7b, 0x6f, 0x75, 0x74, 0x6c, + 0x69, 0x6e, 0x65, 0x3a, 0x30, 0x7d, 0x2e, 0x64, 0x72, 0x6f, 0x70, + 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x2d, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x61, + 0x75, 0x74, 0x6f, 0x3b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x30, + 0x7d, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, + 0x6d, 0x65, 0x6e, 0x75, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x7b, 0x6c, + 0x65, 0x66, 0x74, 0x3a, 0x30, 0x3b, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x2e, 0x64, 0x72, 0x6f, 0x70, + 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x33, 0x70, 0x78, 0x20, 0x32, 0x30, 0x70, 0x78, 0x3b, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x32, + 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x34, 0x32, 0x38, 0x35, 0x37, + 0x31, 0x34, 0x33, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x37, 0x37, 0x37, 0x3b, 0x77, 0x68, 0x69, 0x74, 0x65, 0x2d, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x3a, 0x6e, 0x6f, 0x77, 0x72, 0x61, 0x70, + 0x7d, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, + 0x62, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x6f, 0x70, 0x7b, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x3b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x30, 0x3b, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x30, 0x3b, 0x62, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x3a, 0x30, 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x30, 0x3b, 0x7a, + 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x39, 0x39, 0x30, 0x7d, + 0x2e, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3e, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, + 0x6d, 0x65, 0x6e, 0x75, 0x7b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x30, 0x3b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x61, 0x75, 0x74, 0x6f, + 0x7d, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x2e, 0x63, + 0x61, 0x72, 0x65, 0x74, 0x2c, 0x2e, 0x6e, 0x61, 0x76, 0x62, 0x61, + 0x72, 0x2d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x2d, 0x62, 0x6f, 0x74, + 0x74, 0x6f, 0x6d, 0x20, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, + 0x77, 0x6e, 0x20, 0x2e, 0x63, 0x61, 0x72, 0x65, 0x74, 0x7b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x30, + 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, + 0x74, 0x6f, 0x6d, 0x3a, 0x34, 0x70, 0x78, 0x20, 0x64, 0x61, 0x73, + 0x68, 0x65, 0x64, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x34, 0x70, 0x78, 0x20, + 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x5c, 0x39, 0x3b, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x22, 0x7d, 0x2e, 0x64, + 0x72, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x2e, 0x64, 0x72, 0x6f, 0x70, + 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x2c, 0x2e, + 0x6e, 0x61, 0x76, 0x62, 0x61, 0x72, 0x2d, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x20, 0x2e, 0x64, + 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x2e, 0x64, 0x72, + 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, + 0x7b, 0x74, 0x6f, 0x70, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x62, + 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x32, 0x70, 0x78, 0x7d, 0x40, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x37, 0x36, 0x38, 0x70, 0x78, 0x29, 0x7b, 0x2e, + 0x6e, 0x61, 0x76, 0x62, 0x61, 0x72, 0x2d, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x20, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x30, 0x7d, 0x2e, 0x6e, 0x61, 0x76, 0x62, 0x61, 0x72, 0x2d, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x2e, 0x64, 0x72, 0x6f, 0x70, 0x64, + 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x30, 0x3b, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x7d, 0x7d, + 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x30, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, + 0x32, 0x30, 0x70, 0x78, 0x20, 0x30, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x34, + 0x70, 0x78, 0x7d, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x7b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x7d, + 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x2c, 0x2e, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, 0x73, + 0x70, 0x61, 0x6e, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x3b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x36, 0x70, 0x78, + 0x20, 0x31, 0x32, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, 0x2d, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x34, 0x32, + 0x38, 0x35, 0x37, 0x31, 0x34, 0x33, 0x3b, 0x74, 0x65, 0x78, 0x74, + 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x33, 0x33, 0x37, 0x61, 0x62, 0x37, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, + 0x6c, 0x69, 0x64, 0x20, 0x23, 0x64, 0x64, 0x64, 0x3b, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x2d, + 0x31, 0x70, 0x78, 0x7d, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3a, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x61, 0x2c, + 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x3e, 0x6c, 0x69, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x30, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, + 0x74, 0x74, 0x6f, 0x6d, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x2d, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x34, 0x70, 0x78, 0x3b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x34, 0x70, 0x78, 0x7d, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3a, 0x6c, 0x61, 0x73, + 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x61, 0x2c, 0x2e, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, + 0x6c, 0x69, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x2d, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x3a, 0x34, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x34, 0x70, 0x78, + 0x7d, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x2c, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x3a, + 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, 0x61, + 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x6c, 0x69, 0x3e, + 0x73, 0x70, 0x61, 0x6e, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, + 0x7a, 0x2d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x32, 0x3b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x33, 0x35, 0x32, 0x37, + 0x63, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, 0x65, + 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x64, 0x64, 0x7d, 0x2e, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3e, 0x61, 0x2c, 0x2e, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3e, 0x73, 0x70, 0x61, 0x6e, + 0x2c, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x3e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3e, 0x61, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x3a, 0x68, + 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x3e, 0x61, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, + 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x3e, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3e, 0x73, 0x70, + 0x61, 0x6e, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x7a, 0x2d, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x33, 0x3b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, 0x37, 0x61, 0x62, 0x37, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x33, 0x33, 0x37, 0x61, 0x62, 0x37, 0x3b, 0x63, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x7d, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3e, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x2c, 0x2e, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x73, 0x70, 0x61, + 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x73, 0x70, 0x61, + 0x6e, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x2e, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, 0x2c, 0x2e, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, + 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, + 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x2e, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3e, 0x61, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x37, 0x37, 0x37, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x66, 0x66, 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x64, 0x64, 0x3b, + 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x74, 0x2d, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x7d, 0x2e, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x67, + 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x2c, 0x2e, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x67, 0x3e, 0x6c, + 0x69, 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x7b, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x20, 0x31, 0x36, + 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, + 0x65, 0x3a, 0x31, 0x38, 0x70, 0x78, 0x3b, 0x6c, 0x69, 0x6e, 0x65, + 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x2e, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x7d, 0x2e, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x67, 0x3e, + 0x6c, 0x69, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x3e, 0x61, 0x2c, 0x2e, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x67, 0x3e, 0x6c, + 0x69, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x2d, + 0x6c, 0x65, 0x66, 0x74, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x3a, 0x36, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x74, 0x6f, 0x70, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x2d, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x36, 0x70, 0x78, 0x7d, 0x2e, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, + 0x6c, 0x67, 0x3e, 0x6c, 0x69, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x2d, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x3e, 0x61, 0x2c, 0x2e, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x67, + 0x3e, 0x6c, 0x69, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x7b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, + 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2d, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3a, 0x36, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x2d, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x36, 0x70, + 0x78, 0x7d, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2d, 0x73, 0x6d, 0x3e, 0x6c, 0x69, 0x3e, 0x61, 0x2c, + 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2d, 0x73, 0x6d, 0x3e, 0x6c, 0x69, 0x3e, 0x73, 0x70, 0x61, 0x6e, + 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, 0x70, + 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, 0x74, + 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 0x32, 0x70, 0x78, 0x3b, + 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x31, 0x2e, 0x35, 0x7d, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x73, 0x6d, 0x3e, 0x6c, 0x69, + 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x3e, 0x61, 0x2c, 0x2e, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x73, 0x6d, 0x3e, 0x6c, 0x69, 0x3a, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x33, + 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, + 0x6f, 0x70, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x2d, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3a, 0x33, 0x70, 0x78, 0x7d, 0x2e, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x73, 0x6d, + 0x3e, 0x6c, 0x69, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x3e, 0x61, 0x2c, 0x2e, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x73, 0x6d, 0x3e, 0x6c, + 0x69, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x7b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x2d, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x3a, 0x33, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x74, 0x6f, 0x70, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2d, + 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x33, 0x70, 0x78, 0x7d, + 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x3b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x2e, 0x32, 0x65, + 0x6d, 0x20, 0x2e, 0x36, 0x65, 0x6d, 0x20, 0x2e, 0x33, 0x65, 0x6d, + 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x37, 0x35, 0x25, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 0x6f, 0x6c, 0x64, 0x3b, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x31, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, + 0x66, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, + 0x6e, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x77, 0x68, + 0x69, 0x74, 0x65, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x6e, + 0x6f, 0x77, 0x72, 0x61, 0x70, 0x3b, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x62, + 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x3b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x2e, 0x32, 0x35, 0x65, 0x6d, 0x7d, 0x61, 0x2e, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x61, 0x2e, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, + 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, + 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, + 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x7d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x3a, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2e, 0x62, 0x74, + 0x6e, 0x20, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7b, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x2d, 0x31, + 0x70, 0x78, 0x7d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x37, 0x37, 0x37, 0x7d, 0x2e, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x2d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5b, + 0x68, 0x72, 0x65, 0x66, 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x2c, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5b, 0x68, 0x72, 0x65, 0x66, 0x5d, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x35, 0x65, 0x35, 0x65, 0x35, 0x65, 0x7d, 0x2e, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x33, + 0x37, 0x61, 0x62, 0x37, 0x7d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5b, 0x68, 0x72, + 0x65, 0x66, 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x5b, 0x68, 0x72, 0x65, 0x66, 0x5d, 0x3a, 0x66, 0x6f, + 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x32, 0x38, 0x36, 0x30, 0x39, 0x30, 0x7d, 0x2e, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x7b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x63, 0x62, 0x38, + 0x35, 0x63, 0x7d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5b, 0x68, 0x72, 0x65, 0x66, + 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x5b, 0x68, 0x72, 0x65, 0x66, 0x5d, 0x3a, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x34, 0x34, + 0x39, 0x64, 0x34, 0x34, 0x7d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x35, 0x62, 0x63, 0x30, 0x64, 0x65, 0x7d, 0x2e, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x5b, 0x68, + 0x72, 0x65, 0x66, 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, + 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x69, 0x6e, 0x66, 0x6f, + 0x5b, 0x68, 0x72, 0x65, 0x66, 0x5d, 0x3a, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x31, + 0x62, 0x30, 0x64, 0x35, 0x7d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x7b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x30, 0x61, 0x64, 0x34, 0x65, + 0x7d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x5b, 0x68, 0x72, 0x65, 0x66, 0x5d, 0x3a, + 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x2e, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5b, 0x68, + 0x72, 0x65, 0x66, 0x5d, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, 0x63, 0x39, 0x37, + 0x31, 0x66, 0x7d, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x64, + 0x61, 0x6e, 0x67, 0x65, 0x72, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x64, 0x39, 0x35, 0x33, 0x34, 0x66, 0x7d, 0x2e, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x5b, 0x68, 0x72, 0x65, 0x66, 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, + 0x72, 0x2c, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2d, 0x64, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x5b, 0x68, 0x72, 0x65, 0x66, 0x5d, 0x3a, + 0x66, 0x6f, 0x63, 0x75, 0x73, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x63, 0x39, 0x33, 0x30, 0x32, 0x63, 0x7d, 0x2e, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x31, 0x35, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x32, + 0x30, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, + 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3a, 0x34, 0x70, 0x78, 0x7d, 0x2e, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x20, 0x68, 0x34, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x30, 0x3b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x7d, + 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x20, 0x2e, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x7b, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 0x6f, + 0x6c, 0x64, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x3e, 0x70, + 0x2c, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x3e, 0x75, 0x6c, 0x7b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x30, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, + 0x3e, 0x70, 0x2b, 0x70, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x35, 0x70, 0x78, 0x7d, 0x2e, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x2d, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x2c, 0x2e, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x2d, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x62, + 0x6c, 0x65, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x35, 0x70, 0x78, 0x7d, + 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, 0x64, 0x69, 0x73, 0x6d, + 0x69, 0x73, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x2e, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x2c, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, + 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x20, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x7b, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x2d, 0x32, 0x70, + 0x78, 0x3b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x2d, 0x32, 0x31, + 0x70, 0x78, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x69, 0x6e, + 0x68, 0x65, 0x72, 0x69, 0x74, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x2d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x7b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x66, 0x66, 0x30, 0x64, + 0x38, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x36, 0x65, 0x39, 0x63, 0x36, + 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x63, 0x37, + 0x36, 0x33, 0x64, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x68, 0x72, 0x7b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x63, 0x39, 0x65, 0x32, + 0x62, 0x33, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x2e, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x7b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x32, 0x62, 0x35, 0x34, 0x32, 0x63, 0x7d, + 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, 0x69, 0x6e, 0x66, 0x6f, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x39, 0x65, + 0x64, 0x66, 0x37, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x62, 0x63, 0x65, 0x38, + 0x66, 0x31, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, + 0x31, 0x37, 0x30, 0x38, 0x66, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x68, 0x72, 0x7b, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x61, 0x36, 0x65, 0x31, 0x65, + 0x63, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, 0x69, 0x6e, + 0x66, 0x6f, 0x20, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, 0x6c, + 0x69, 0x6e, 0x6b, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x32, 0x34, 0x35, 0x32, 0x36, 0x39, 0x7d, 0x2e, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x7b, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x63, 0x66, 0x38, + 0x65, 0x33, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x61, 0x65, 0x62, 0x63, + 0x63, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x38, 0x61, + 0x36, 0x64, 0x33, 0x62, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, + 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x72, + 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x37, 0x65, + 0x31, 0x62, 0x35, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x2e, 0x61, 0x6c, + 0x65, 0x72, 0x74, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x7b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x36, 0x36, 0x35, 0x31, 0x32, 0x63, + 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, 0x64, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x66, 0x32, 0x64, 0x65, 0x64, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, + 0x62, 0x63, 0x63, 0x64, 0x31, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x61, 0x39, 0x34, 0x34, 0x34, 0x32, 0x7d, 0x2e, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x20, 0x68, 0x72, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x74, 0x6f, 0x70, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x65, 0x34, 0x62, 0x39, 0x63, 0x30, 0x7d, 0x2e, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x2d, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x2e, + 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x7b, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x38, 0x34, 0x33, 0x35, + 0x33, 0x34, 0x7d, 0x2e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x66, 0x69, + 0x78, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x2c, 0x2e, 0x63, + 0x6c, 0x65, 0x61, 0x72, 0x66, 0x69, 0x78, 0x3a, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x2c, 0x2e, 0x64, 0x6c, 0x2d, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x64, 0x64, 0x3a, 0x62, + 0x65, 0x66, 0x6f, 0x72, 0x65, 0x2c, 0x2e, 0x64, 0x6c, 0x2d, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x64, + 0x64, 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x2c, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x3a, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x2c, 0x2e, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2d, 0x66, + 0x6c, 0x75, 0x69, 0x64, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x2d, 0x66, 0x6c, 0x75, 0x69, 0x64, 0x3a, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x2c, 0x2e, 0x72, 0x6f, 0x77, 0x3a, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x2c, 0x2e, 0x72, 0x6f, 0x77, 0x3a, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x62, + 0x65, 0x66, 0x6f, 0x72, 0x65, 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x2d, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, + 0x20, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x7b, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x20, 0x22, 0x3b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x7d, 0x2e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x66, 0x69, 0x78, 0x3a, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x2c, 0x2e, 0x64, 0x6c, 0x2d, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x64, + 0x64, 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x2c, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x3a, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x2d, 0x66, 0x6c, 0x75, 0x69, 0x64, 0x3a, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x2c, 0x2e, 0x72, 0x6f, 0x77, 0x3a, 0x61, 0x66, + 0x74, 0x65, 0x72, 0x2c, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x20, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3a, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x7b, 0x63, 0x6c, 0x65, 0x61, 0x72, + 0x3a, 0x62, 0x6f, 0x74, 0x68, 0x7d, 0x2e, 0x63, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, + 0x74, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x75, + 0x74, 0x6f, 0x7d, 0x2e, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x2e, 0x70, 0x75, 0x6c, 0x6c, 0x2d, + 0x6c, 0x65, 0x66, 0x74, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, + 0x6c, 0x65, 0x66, 0x74, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x2e, 0x68, 0x69, 0x64, 0x65, 0x7b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, + 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, + 0x74, 0x7d, 0x2e, 0x73, 0x68, 0x6f, 0x77, 0x7b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, + 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, + 0x2e, 0x69, 0x6e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x7b, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, + 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x7d, 0x2e, 0x74, 0x65, 0x78, + 0x74, 0x2d, 0x68, 0x69, 0x64, 0x65, 0x7b, 0x66, 0x6f, 0x6e, 0x74, + 0x3a, 0x30, 0x2f, 0x30, 0x20, 0x61, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x73, 0x68, 0x61, + 0x64, 0x6f, 0x77, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x3a, 0x30, 0x7d, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x7b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, + 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, + 0x74, 0x7d, 0x2e, 0x61, 0x66, 0x66, 0x69, 0x78, 0x7b, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x7d, 0x40, 0x2d, 0x6d, 0x73, 0x2d, 0x76, 0x69, 0x65, 0x77, + 0x70, 0x6f, 0x72, 0x74, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x7d, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, + 0x78, 0x73, 0x2c, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x2d, 0x73, 0x6d, 0x2c, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x2d, 0x6d, 0x64, 0x2c, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x6c, 0x65, 0x2d, 0x6c, 0x67, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x20, 0x21, 0x69, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x78, 0x73, 0x2d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2c, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x2d, 0x78, 0x73, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x2c, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x78, + 0x73, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x2c, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x2d, 0x73, 0x6d, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x73, 0x6d, + 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x73, 0x6d, 0x2d, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6d, 0x64, + 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6d, 0x64, 0x2d, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x2c, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x2d, 0x6d, 0x64, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6c, 0x67, 0x2d, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2c, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x2d, 0x6c, 0x67, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2c, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6c, 0x67, + 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x6e, 0x6f, 0x6e, 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x37, 0x36, 0x37, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x78, 0x73, 0x7b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, + 0x7d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x2d, 0x78, 0x73, 0x7b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x21, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x74, + 0x72, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x78, + 0x73, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x6f, 0x77, 0x20, 0x21, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x74, 0x68, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x78, 0x73, + 0x2c, 0x74, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x2d, 0x78, 0x73, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, + 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, + 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, + 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x37, 0x36, + 0x37, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x6c, 0x65, 0x2d, 0x78, 0x73, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x37, 0x36, 0x37, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x78, 0x73, 0x2d, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x21, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x37, 0x36, 0x37, 0x70, 0x78, + 0x29, 0x7b, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, + 0x78, 0x73, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x37, 0x36, 0x38, 0x70, 0x78, 0x29, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x39, 0x39, 0x31, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x73, 0x6d, 0x7b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, + 0x7d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x2d, 0x73, 0x6d, 0x7b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x21, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x74, + 0x72, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x73, + 0x6d, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x6f, 0x77, 0x20, 0x21, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x74, 0x68, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x73, 0x6d, + 0x2c, 0x74, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x2d, 0x73, 0x6d, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, + 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, + 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, + 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x37, 0x36, + 0x38, 0x70, 0x78, 0x29, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x6d, + 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x39, 0x39, + 0x31, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x6c, 0x65, 0x2d, 0x73, 0x6d, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x37, 0x36, 0x38, 0x70, 0x78, 0x29, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x39, 0x39, 0x31, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x73, 0x6d, 0x2d, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x21, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x37, 0x36, 0x38, 0x70, 0x78, + 0x29, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x39, 0x39, 0x31, 0x70, 0x78, + 0x29, 0x7b, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, + 0x73, 0x6d, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x39, 0x39, 0x32, 0x70, 0x78, 0x29, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x31, 0x31, 0x39, 0x39, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6d, 0x64, 0x7b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, + 0x74, 0x7d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6d, 0x64, 0x7b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, + 0x74, 0x72, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, + 0x6d, 0x64, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x6f, 0x77, 0x20, 0x21, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x74, + 0x68, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6d, + 0x64, 0x2c, 0x74, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x2d, 0x6d, 0x64, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, + 0x6c, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, + 0x74, 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, + 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x39, + 0x39, 0x32, 0x70, 0x78, 0x29, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, + 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, + 0x31, 0x39, 0x39, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6d, 0x64, 0x2d, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x39, 0x39, 0x32, 0x70, 0x78, 0x29, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x31, 0x31, 0x39, 0x39, 0x70, 0x78, 0x29, 0x7b, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6d, 0x64, + 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x7b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, + 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, + 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x39, 0x39, + 0x32, 0x70, 0x78, 0x29, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x6d, + 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x31, + 0x39, 0x39, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x2d, 0x6d, 0x64, 0x2d, 0x69, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x21, 0x69, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x32, 0x30, 0x30, 0x70, 0x78, + 0x29, 0x7b, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, + 0x6c, 0x67, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6c, 0x67, + 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x61, 0x6e, 0x74, 0x7d, 0x74, 0x72, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x2d, 0x6c, 0x67, 0x7b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, + 0x6f, 0x77, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, + 0x6e, 0x74, 0x7d, 0x74, 0x68, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x6c, 0x65, 0x2d, 0x6c, 0x67, 0x2c, 0x74, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6c, 0x67, 0x7b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x31, 0x32, 0x30, 0x30, 0x70, 0x78, 0x29, 0x7b, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6c, 0x67, + 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x21, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, + 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, + 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x32, 0x30, 0x30, + 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x2d, 0x6c, 0x67, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x31, 0x32, 0x30, 0x30, 0x70, 0x78, 0x29, 0x7b, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x6c, 0x67, 0x2d, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, + 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, + 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x37, 0x36, + 0x37, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x2d, 0x78, 0x73, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x37, 0x36, 0x38, 0x70, 0x78, 0x29, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x39, 0x39, 0x31, 0x70, 0x78, 0x29, 0x7b, + 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x2d, 0x73, 0x6d, 0x7b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, + 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, + 0x74, 0x7d, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, + 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x39, + 0x39, 0x32, 0x70, 0x78, 0x29, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, + 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, + 0x31, 0x39, 0x39, 0x70, 0x78, 0x29, 0x7b, 0x2e, 0x68, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x2d, 0x6d, 0x64, 0x7b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x20, 0x21, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x2d, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x32, 0x30, 0x30, 0x70, + 0x78, 0x29, 0x7b, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x2d, + 0x6c, 0x67, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x6e, 0x6f, 0x6e, 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x2d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x7b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, + 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, + 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x7b, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x2d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x7b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x21, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x2d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x7b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, + 0x74, 0x72, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, + 0x70, 0x72, 0x69, 0x6e, 0x74, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x6f, + 0x77, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, + 0x74, 0x7d, 0x74, 0x68, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x2d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x2c, 0x74, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x20, + 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, + 0x7d, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x70, + 0x72, 0x69, 0x6e, 0x74, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, + 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, + 0x74, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x70, 0x72, + 0x69, 0x6e, 0x74, 0x7b, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x2d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x2d, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x2d, + 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x7b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x20, 0x21, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x40, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x20, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x7b, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x70, 0x72, + 0x69, 0x6e, 0x74, 0x2d, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x7b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x6c, 0x65, 0x2d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x2d, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, + 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, + 0x74, 0x7d, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x70, 0x72, + 0x69, 0x6e, 0x74, 0x7b, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x2d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x2d, 0x69, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x21, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x40, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x70, 0x72, 0x69, 0x6e, 0x74, + 0x7b, 0x2e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x2d, 0x70, 0x72, + 0x69, 0x6e, 0x74, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x20, 0x21, 0x69, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x61, 0x6e, 0x74, 0x7d, 0x7d, 0x00 +}; + +const int bootstrap_css_length = 51609; diff --git a/src/goaccess++/src/browsers.c b/src/goaccess++/src/browsers.c new file mode 100644 index 0000000..3985b33 --- /dev/null +++ b/src/goaccess++/src/browsers.c @@ -0,0 +1,522 @@ +/** + 6 browsers.c -- functions for dealing with browsers + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <stddef.h> + +#include "browsers.h" + +#include "error.h" +#include "settings.h" +#include "util.h" +#include "xmalloc.h" + +/* ###NOTE: The size of the list is proportional to the run time, + * which makes this pretty slow */ + +static char ***browsers_hash = NULL; + +/* {"search string", "belongs to"} */ +static const char *browsers[][2] = { + /* Game systems: most of them are based of major browsers, + * thus they need to go before. */ + {"Xbox One", "Game Systems"}, + {"Xbox", "Game Systems"}, + {"PlayStation", "Game Systems"}, + {"NintendoBrowser", "Game Systems"}, + {"Valve Steam", "Game Systems"}, + {"Origin", "Game Systems"}, + {"Raptr", "Game Systems"}, + + /* Based on Internet Explorer */ + {"America Online Browser", "Others"}, + {"Avant Browser", "Others"}, + /* Internet Explorer */ + {"IEMobile", "MSIE"}, + {"MSIE", "MSIE"}, + /* IE11 */ + {"Trident/7.0", "MSIE"}, + /* Microsoft Edge */ + {"Edge", "MSIE"}, + + /* Opera */ + {"Opera Mini", "Opera"}, + {"Opera Mobi", "Opera"}, + {"Opera", "Opera"}, + {"OPR", "Opera"}, + {"OPiOS", "Opera"}, + {"Coast", "Opera"}, + + /* Others */ + {"Homebrew", "Others"}, + {"APT-HTTP", "Others"}, + {"Apt-Cacher", "Others"}, + {"Chef Client", "Others"}, + {"Huawei", "Others"}, + {"HUAWEI", "Others"}, + {"BlackBerry", "Others"}, + {"BrowserX", "Others"}, + {"Dalvik", "Others"}, + {"Dillo", "Others"}, + {"ELinks", "Others"}, + {"Epiphany", "Others"}, + {"Firebird", "Others"}, + {"Galeon", "Others"}, + {"google-cloud-sdk", "Others"}, + {"GranParadiso", "Others"}, + {"IBrowse", "Others"}, + {"K-Meleon", "Others"}, + {"Kazehakase", "Others"}, + {"Konqueror", "Others"}, + {"Links", "Others"}, + {"Lynx", "Others"}, + {"Midori", "Others"}, + {"Minefield", "Others"}, + {"Mosaic", "Others"}, + {"Netscape", "Others"}, + {"SeaMonkey", "Others"}, + {"UCBrowser", "Others"}, + {"Wget", "Others"}, + {"libfetch", "Others"}, + {"check_http", "Others"}, + {"Go-http-client", "Others"}, + {"curl", "Others"}, + {"midori", "Others"}, + {"w3m", "Others"}, + {"MicroMessenger", "Others"}, + {"Apache", "Others"}, + {"JOSM", "Others"}, + + /* Feed-reader-as-a-service */ + {"AppleNewsBot", "Feeds"}, + {"Bloglines", "Feeds"}, + {"Digg Feed Fetcher", "Feeds"}, + {"Feedbin", "Feeds"}, + {"FeedHQ", "Feeds"}, + {"Feedly", "Feeds"}, + {"Flipboard", "Feeds"}, + {"Netvibes", "Feeds"}, + {"NewsBlur", "Feeds"}, + {"PinRSS", "Feeds"}, + {"WordPress.com Reader", "Feeds"}, + {"YandexBlogs", "Feeds"}, + + /* Google crawlers (some based on Chrome, + * therefore up on the list) */ + {"AdsBot-Google", "Crawlers"}, + {"AppEngine-Google", "Crawlers"}, + {"Mediapartners-Google", "Crawlers"}, + {"Google", "Crawlers"}, + {"WhatsApp", "Crawlers"}, + + /* Based on Firefox */ + {"Camino", "Others"}, + /* Rebranded Firefox but is really unmodified + * Firefox (Debian trademark policy) */ + {"Iceweasel", "Firefox"}, + {"Firefox", "Firefox"}, + + /* Based on Chromium */ + {"Vivaldi", "Others"}, + {"YaBrowser", "Others"}, + {"Flock", "Others"}, + /* Chrome has to go before Safari */ + {"HeadlessChrome", "Chrome"}, + {"Chrome", "Chrome"}, + {"CriOS", "Chrome"}, + + /* Crawlers/Bots (Possible Safari based) */ + {"AppleBot", "Crawlers"}, + {"Twitter", "Crawlers"}, + + {"Safari", "Safari"}, + + /* Crawlers/Bots */ + {"Sogou", "Crawlers"}, + {"Java", "Crawlers"}, + {"Jakarta Commons-HttpClient", "Crawlers"}, + {"netEstate", "Crawlers"}, + {"PiplBot", "Crawlers"}, + {"IstellaBot", "Crawlers"}, + {"heritrix", "Crawlers"}, + {"PagesInventory", "Crawlers"}, + {"rogerbot", "Crawlers"}, + {"fastbot", "Crawlers"}, + {"yacybot", "Crawlers"}, + {"PycURL", "Crawlers"}, + {"PHP", "Crawlers"}, + {"AndroidDownloadManager", "Crawlers"}, + {"Embedly", "Crawlers"}, + {"ruby", "Crawlers"}, + {"Ruby", "Crawlers"}, + {"python", "Crawlers"}, + {"Python", "Crawlers"}, + {"LinkedIn", "Crawlers"}, + {"Microsoft-WebDAV", "Crawlers"}, + + /* Podcast fetchers */ + {"Downcast", "Podcasts"}, + {"gPodder", "Podcasts"}, + {"Instacast", "Podcasts"}, + {"iTunes", "Podcasts"}, + {"Miro", "Podcasts"}, + {"Pocket Casts", "Podcasts"}, + {"BashPodder", "Podcasts"}, + + /* Feed reader clients */ + {"Akregator", "Feeds"}, + {"Apple-PubSub", "Feeds"}, + {"com.apple.Safari.WebFeedParser", "Feeds"}, + {"FeedDemon", "Feeds"}, + {"Feedy", "Feeds"}, + {"Liferea", "Feeds"}, + {"NetNewsWire", "Feeds"}, + {"RSSOwl", "Feeds"}, + {"Thunderbird", "Feeds"}, + + {"Pingdom.com", "Uptime"}, + {"jetmon", "Uptime"}, + {"NodeUptime", "Uptime"}, + {"NewRelicPinger", "Uptime"}, + {"StatusCake", "Uptime"}, + {"internetVista", "Uptime"}, + {"Server Density Service Monitoring v2", "Uptime"}, + + {"Mozilla", "Others"} +}; + +/* Free all browser entries from our array of key/value pairs. */ +void +free_browsers_hash (void) +{ + size_t i; + int j; + + for (i = 0; i < ARRAY_SIZE (browsers); ++i) { + free (browsers_hash[i][0]); + free (browsers_hash[i][1]); + free (browsers_hash[i]); + } + free (browsers_hash); + + + for (j = 0; j < conf.browsers_hash_idx; ++j) { + free (conf.user_browsers_hash[j][0]); + free (conf.user_browsers_hash[j][1]); + free (conf.user_browsers_hash[j]); + } + if (conf.browsers_file) { + free (conf.user_browsers_hash); + } +} + +static int +is_dup (char ***list, int len, const char *browser) +{ + int i; + /* check for dups */ + for (i = 0; i < len; ++i) { + if (strcmp (browser, list[i][0]) == 0) + return 1; + } + return 0; +} + +/* Set a browser/type pair into our multidimensional array of browsers. + * + * On duplicate functions returns void. + * Otherwise memory is mallo'd for our array entry. */ +static void +set_browser (char ***list, int idx, const char *browser, const char *type) +{ + list[idx] = xcalloc (2, sizeof (char *)); + list[idx][0] = xstrdup (browser); + list[idx][1] = xstrdup (type); +} + +/* Parse the key/value pair from the browser list file. */ +static void +parse_browser_token (char ***list, char *line, int n) +{ + char *val; + size_t idx = 0; + + /* key */ + idx = strcspn (line, "\t"); + if (strlen (line) == idx) + FATAL ("Malformed browser name at line: %d", n); + + line[idx] = '\0'; + + /* value */ + val = line + (idx + 1); + idx = strspn (val, "\t"); + if (strlen (val) == idx) + FATAL ("Malformed browser category at line: %d", n); + val = val + idx; + val = trim_str (val); + + if (is_dup (list, conf.browsers_hash_idx, line)) { + LOG_INVALID (("Duplicate browser entry: %s", line)); + return; + } + + set_browser (list, conf.browsers_hash_idx, line, val); + conf.browsers_hash_idx++; +} + +/* Parse our default array of browsers and put them on our hash including those + * from the custom parsed browsers file. + * + * On error functions returns void. + * Otherwise browser entries are put into the hash. */ +void +parse_browsers_file (void) +{ + char line[MAX_LINE_BROWSERS + 1]; + FILE *file; + int n = 0; + size_t i, len = ARRAY_SIZE (browsers); + + browsers_hash = xmalloc (ARRAY_SIZE (browsers) * sizeof (char **)); + /* load hash from the browser's array (default) */ + for (i = 0; i < len; ++i) { + set_browser (browsers_hash, i, browsers[i][0], browsers[i][1]); + } + + if (!conf.browsers_file) + return; + + /* could not open browsers file */ + if ((file = fopen (conf.browsers_file, "r")) == NULL) + FATAL ("Unable to open browser's file: %s", strerror (errno)); + + conf.user_browsers_hash = xmalloc (MAX_CUSTOM_BROWSERS * sizeof (char **)); + /* load hash from the user's given browsers file */ + while (fgets (line, sizeof line, file) != NULL) { + while (line[0] == ' ' || line[0] == '\t') + memmove (line, line + 1, strlen (line)); + n++; + + if (line[0] == '\n' || line[0] == '\r' || line[0] == '#') + continue; + if (conf.browsers_hash_idx >= MAX_CUSTOM_BROWSERS) + FATAL ("Maximum number of custom browsers has been reached"); + parse_browser_token (conf.user_browsers_hash, line, n); + } + fclose (file); +} + +/* Determine if the user-agent is a crawler. + * + * On error or is not a crawler, 0 is returned. + * If it is a crawler, 1 is returned . */ +int +is_crawler (const char *agent) +{ + char type[BROWSER_TYPE_LEN]; + char *browser, *a; + + if (agent == NULL || *agent == '\0') + return 0; + + if ((a = xstrdup (agent), browser = verify_browser (a, type)) != NULL) + free (browser); + free (a); + + return strcmp (type, "Crawlers") == 0 ? 1 : 0; +} + +/* Return the Opera 15 and beyond. + * + * On success, the opera string and version is returned. */ +static char * +parse_opera (char *token) +{ + char *val = xmalloc (snprintf (NULL, 0, "Opera%s", token) + 1); + sprintf (val, "Opera%s", token); + + return val; +} + +/* Given the original user agent string, and a partial crawler match, iterate + * back until the next delimiter is found and return occurrence. + * + * On error when attempting to extract crawler, NULL is returned. + * If a possible crawler string is matched, then possible bot is returned . */ +static char * +parse_crawler (char *str, char *match, char *type) +{ + char *ptr = NULL; + int found = 0; + + while (match != str) { + match--; + if (*match == ' ' || *match == '+') { + found = 1; + break; + } + } + + /* same addr */ + if (match == str) + return NULL; + + /* account for the previous +|space */ + if (found) + match++; + + if ((ptr = strpbrk (match, "; "))) + *ptr = '\0'; + /* empty string after parsing it */ + if (*match == '\0') + return NULL; + + xstrncpy (type, "Crawlers", BROWSER_TYPE_LEN); + + return xstrdup (match); +} + +/* If the following string matches are found within user agent, then it's + * highly likely it's a possible crawler. + * Note that this could certainly return false positives. + * + * If no occurrences are found, NULL is returned. + * If an occurrence is found, a pointer to the match is returned . */ +static char * +check_http_crawler (const char *str) +{ + char *match = NULL; + + /* e.g., compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm */ + if ((match = strstr (str, "; +http"))) + return match; + /* compatible; UptimeRobot/2.0; http://www.uptimerobot.com/ */ + if ((match = strstr (str, "; http"))) + return match; + /* Slack-ImgProxy (+https://api.slack.com/robots) */ + if ((match = strstr (str, " (+http"))) + return match; + /* TurnitinBot/3.0 (http://www.turnitin.com/robot/crawlerinfo.html) */ + if ((match = strstr (str, " (http"))) + return match; + /* w3c e.g., (compatible;+Googlebot/2.1;++http://www.google.com/bot.html) */ + if ((match = strstr (str, ";++http"))) + return match; + return NULL; +} + +/* Parse the given user agent match and extract the browser string. + * + * If no match, the original match is returned. + * Otherwise the parsed browser is returned. */ +static char * +parse_browser (char *match, char *type, int i, char ***hash) +{ + char *b = NULL, *ptr = NULL, *slh = NULL; + size_t cnt = 0, space = 0; + + /* Check if there are spaces in the token string, that way strpbrk + * does not stop at the first space within the token string */ + if ((cnt = count_matches (hash[i][0], ' ')) && (b = match)) { + while (space++ < cnt && (b = strchr (b, ' '))) + b++; + } else + b = match; + + xstrncpy (type, hash[i][1], BROWSER_TYPE_LEN); + /* Internet Explorer 11 */ + if (strstr (match, "rv:11") && strstr (match, "Trident/7.0")) { + return alloc_string ("MSIE/11.0"); + } + /* Opera +15 uses OPR/# */ + if (strstr (match, "OPR") != NULL && (slh = strrchr (match, '/'))) { + return parse_opera (slh); + } + /* Opera has the version number at the end */ + if (strstr (match, "Opera") && (slh = strrchr (match, '/')) && match < slh) { + memmove (match + 5, slh, strlen (slh) + 1); + } + /* IE Old */ + if (strstr (match, "MSIE") != NULL) { + if ((ptr = strpbrk (match, ";)-")) != NULL) + *ptr = '\0'; + match = char_replace (match, ' ', '/'); + } + /* all others */ + else if ((ptr = strpbrk (b, ";) ")) != NULL) { + *ptr = '\0'; + } + + return alloc_string (match); +} + +/* Given a user agent, determine the browser used. + * + * ###NOTE: The size of the list is proportional to the run time, + * which makes this pretty slow + * + * On error, NULL is returned. + * On success, a malloc'd string containing the browser is returned. */ +char * +verify_browser (char *str, char *type) +{ + char *match = NULL, *token = NULL; + int i = 0; + size_t j = 0; + + if (str == NULL || *str == '\0') + return NULL; + + /* check user's list */ + for (i = 0; i < conf.browsers_hash_idx; ++i) { + if ((match = strstr (str, conf.user_browsers_hash[i][0])) == NULL) + continue; + return parse_browser (match, type, i, conf.user_browsers_hash); + } + + if ((match = check_http_crawler (str)) && + (token = parse_crawler (str, match, type))) + return token; + + /* fallback to default browser list */ + for (j = 0; j < ARRAY_SIZE (browsers); ++j) { + if ((match = strstr (str, browsers_hash[j][0])) == NULL) + continue; + return parse_browser (match, type, j, browsers_hash); + } + + xstrncpy (type, "Unknown", BROWSER_TYPE_LEN); + + return alloc_string ("Unknown"); +} diff --git a/src/goaccess++/src/browsers.h b/src/goaccess++/src/browsers.h new file mode 100644 index 0000000..959999b --- /dev/null +++ b/src/goaccess++/src/browsers.h @@ -0,0 +1,49 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BROWSERS_H_INCLUDED +#define BROWSERS_H_INCLUDED + +#define BROWSER_TYPE_LEN 13 +#define MAX_LINE_BROWSERS 128 +#define MAX_CUSTOM_BROWSERS 256 + +/* Each Browser contains the number of hits and the Browser's type */ +typedef struct GBrowser_ +{ + char browser_type[BROWSER_TYPE_LEN]; + int hits; +} GBrowser; + +char *verify_browser (char *str, char *browser_type); +int is_crawler (const char *agent); +void free_browsers_hash (void); +void parse_browsers_file (void); + +#endif diff --git a/src/goaccess++/src/browsers.o b/src/goaccess++/src/browsers.o new file mode 100644 index 0000000000000000000000000000000000000000..59e584049febf46649c8f113c471776ed22ee7d8 GIT binary patch literal 24128 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/chartsjs.h b/src/goaccess++/src/chartsjs.h new file mode 100644 index 0000000..1f201e1 --- /dev/null +++ b/src/goaccess++/src/chartsjs.h @@ -0,0 +1,1861 @@ +const char charts_js[20421] = { + 0x2f, 0x2a, 0x2a, 0x2a, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x5f, 0x5f, + 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5f, 0x5f, + 0x5f, 0x2a, 0x20, 0x20, 0x20, 0x2f, 0x20, 0x5f, 0x5f, 0x5f, 0x5f, + 0x2f, 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x2f, 0x20, 0x20, 0x20, 0x7c, + 0x20, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, + 0x5f, 0x5f, 0x5f, 0x20, 0x20, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, + 0x5f, 0x5f, 0x5f, 0x5f, 0x2a, 0x20, 0x20, 0x2f, 0x20, 0x2f, 0x20, + 0x5f, 0x5f, 0x2f, 0x20, 0x5f, 0x5f, 0x20, 0x5c, 0x2f, 0x20, 0x2f, + 0x7c, 0x20, 0x7c, 0x2f, 0x20, 0x5f, 0x5f, 0x5f, 0x2f, 0x20, 0x5f, + 0x5f, 0x5f, 0x2f, 0x20, 0x5f, 0x20, 0x5c, 0x2f, 0x20, 0x5f, 0x5f, + 0x5f, 0x2f, 0x20, 0x5f, 0x5f, 0x5f, 0x2f, 0x2a, 0x20, 0x2f, 0x20, + 0x2f, 0x5f, 0x2f, 0x20, 0x2f, 0x20, 0x2f, 0x5f, 0x2f, 0x20, 0x2f, + 0x20, 0x5f, 0x5f, 0x5f, 0x20, 0x2f, 0x20, 0x2f, 0x5f, 0x5f, 0x2f, + 0x20, 0x2f, 0x5f, 0x5f, 0x2f, 0x20, 0x20, 0x5f, 0x5f, 0x28, 0x5f, + 0x5f, 0x20, 0x20, 0x7c, 0x5f, 0x5f, 0x20, 0x20, 0x29, 0x2a, 0x20, + 0x5c, 0x5f, 0x5f, 0x5f, 0x5f, 0x2f, 0x5c, 0x5f, 0x5f, 0x5f, 0x5f, + 0x2f, 0x5f, 0x2f, 0x20, 0x20, 0x7c, 0x5f, 0x5c, 0x5f, 0x5f, 0x5f, + 0x2f, 0x5c, 0x5f, 0x5f, 0x5f, 0x2f, 0x5c, 0x5f, 0x5f, 0x5f, 0x2f, + 0x5f, 0x5f, 0x5f, 0x5f, 0x2f, 0x5f, 0x5f, 0x5f, 0x5f, 0x2f, 0x2a, + 0x2a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x4d, 0x49, 0x54, 0x20, 0x4c, + 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x28, 0x4d, 0x49, 0x54, + 0x29, 0x2a, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x39, 0x2d, + 0x32, 0x30, 0x31, 0x38, 0x20, 0x47, 0x65, 0x72, 0x61, 0x72, 0x64, + 0x6f, 0x20, 0x4f, 0x72, 0x65, 0x6c, 0x6c, 0x61, 0x6e, 0x61, 0x20, + 0x3c, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x40, 0x20, 0x67, 0x6f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x3e, 0x2a, + 0x2f, 0x27, 0x75, 0x73, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x27, 0x3b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x28, 0x74, + 0x65, 0x78, 0x74, 0x2c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x29, + 0x20, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x65, 0x61, 0x63, 0x68, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x2c, 0x20, + 0x24, 0x64, 0x33, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x3d, + 0x20, 0x64, 0x33, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x29, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x67, 0x77, 0x20, 0x3d, 0x20, 0x24, 0x64, 0x33, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x28, 0x29, + 0x2e, 0x67, 0x65, 0x74, 0x42, 0x42, 0x6f, 0x78, 0x28, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x78, 0x20, 0x3d, 0x20, 0x28, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x67, 0x77, 0x2e, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x29, 0x20, 0x2f, 0x20, 0x32, 0x29, 0x20, 0x2a, 0x20, 0x2d, 0x31, + 0x3b, 0x69, 0x66, 0x20, 0x28, 0x27, 0x73, 0x76, 0x67, 0x27, 0x20, + 0x3d, 0x3d, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x6e, + 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x29, 0x20, 0x7b, 0x24, + 0x64, 0x33, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x77, 0x69, 0x64, 0x74, 0x68, 0x27, 0x2c, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x27, 0x78, 0x27, 0x2c, 0x20, 0x78, 0x29, 0x3b, 0x7d, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x24, 0x64, 0x33, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x28, 0x27, 0x73, 0x76, 0x67, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x3b, + 0x7d, 0x2e, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x77, 0x72, 0x61, 0x70, + 0x2d, 0x74, 0x65, 0x78, 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x27, 0x77, 0x69, 0x64, 0x74, 0x68, 0x27, 0x2c, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x78, 0x27, 0x2c, 0x20, 0x78, 0x29, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x3b, 0x7d, 0x2e, 0x62, + 0x69, 0x6e, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, + 0x7d, 0x7d, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x41, 0x72, 0x65, 0x61, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x28, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, + 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x70, 0x74, 0x73, + 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x20, 0x3d, 0x20, 0x7b, 0x74, 0x6f, + 0x70, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x32, 0x30, 0x2c, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x3a, 0x20, 0x35, 0x30, 0x2c, + 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x20, 0x3a, 0x20, 0x34, 0x30, + 0x2c, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x35, + 0x30, 0x2c, 0x7d, 0x2c, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, + 0x3d, 0x20, 0x31, 0x37, 0x30, 0x2c, 0x6e, 0x54, 0x69, 0x63, 0x6b, + 0x73, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x2c, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x2c, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x37, 0x36, 0x30, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x20, 0x3d, + 0x20, 0x7b, 0x20, 0x78, 0x3a, 0x20, 0x27, 0x55, 0x6e, 0x6e, 0x61, + 0x6d, 0x65, 0x64, 0x27, 0x2c, 0x20, 0x79, 0x30, 0x3a, 0x20, 0x27, + 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x27, 0x2c, 0x20, 0x79, + 0x31, 0x3a, 0x20, 0x27, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, + 0x27, 0x20, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x78, 0x3a, 0x20, + 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x79, 0x30, 0x3a, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x79, 0x31, 0x3a, 0x20, 0x6e, 0x75, + 0x6c, 0x6c, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x78, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x5b, 0x30, 0x5d, 0x3b, 0x7d, + 0x2c, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x30, 0x20, 0x3d, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, + 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, + 0x5b, 0x31, 0x5d, 0x3b, 0x7d, 0x2c, 0x79, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x31, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x64, 0x5b, 0x32, 0x5d, 0x3b, 0x7d, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x20, + 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x28, 0x29, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x30, 0x20, + 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x28, 0x29, 0x2e, 0x6e, 0x69, + 0x63, 0x65, 0x28, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x79, 0x53, + 0x63, 0x61, 0x6c, 0x65, 0x31, 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x61, + 0x72, 0x28, 0x29, 0x2e, 0x6e, 0x69, 0x63, 0x65, 0x28, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x78, 0x41, 0x78, 0x69, 0x73, 0x20, 0x3d, + 0x20, 0x64, 0x33, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x61, 0x78, 0x69, + 0x73, 0x28, 0x29, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x78, + 0x53, 0x63, 0x61, 0x6c, 0x65, 0x29, 0x2e, 0x6f, 0x72, 0x69, 0x65, + 0x6e, 0x74, 0x28, 0x27, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x27, + 0x29, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x64, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x78, 0x29, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x66, 0x6d, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x28, 0x64, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x2e, 0x78, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x64, 0x3b, 0x7d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x79, 0x41, 0x78, 0x69, 0x73, 0x30, 0x20, 0x3d, 0x20, 0x64, 0x33, + 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x28, 0x29, + 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x79, 0x53, 0x63, 0x61, + 0x6c, 0x65, 0x30, 0x29, 0x2e, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, + 0x28, 0x27, 0x6c, 0x65, 0x66, 0x74, 0x27, 0x29, 0x2e, 0x74, 0x69, + 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x33, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x27, 0x2e, 0x32, 0x73, + 0x27, 0x29, 0x28, 0x64, 0x29, 0x3b, 0x7d, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x79, 0x41, 0x78, 0x69, 0x73, 0x31, 0x20, 0x3d, 0x20, + 0x64, 0x33, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x61, 0x78, 0x69, 0x73, + 0x28, 0x29, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x79, 0x53, + 0x63, 0x61, 0x6c, 0x65, 0x31, 0x29, 0x2e, 0x6f, 0x72, 0x69, 0x65, + 0x6e, 0x74, 0x28, 0x27, 0x72, 0x69, 0x67, 0x68, 0x74, 0x27, 0x29, + 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x64, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x2e, 0x79, 0x31, 0x29, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x66, 0x6d, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x28, 0x64, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x2e, 0x79, 0x31, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x64, 0x33, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x27, 0x2e, 0x32, 0x73, 0x27, 0x29, 0x28, 0x64, 0x29, + 0x3b, 0x7d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x78, 0x47, 0x72, + 0x69, 0x64, 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x76, 0x67, + 0x2e, 0x61, 0x78, 0x69, 0x73, 0x28, 0x29, 0x2e, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x28, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x29, 0x2e, + 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x28, 0x27, 0x62, 0x6f, 0x74, + 0x74, 0x6f, 0x6d, 0x27, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x79, + 0x47, 0x72, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, + 0x76, 0x67, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x28, 0x29, 0x2e, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x28, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, + 0x30, 0x29, 0x2e, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x28, 0x27, + 0x6c, 0x65, 0x66, 0x74, 0x27, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x61, 0x72, 0x65, 0x61, 0x30, 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, + 0x73, 0x76, 0x67, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x28, 0x29, 0x2e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, + 0x28, 0x27, 0x63, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x27, + 0x29, 0x2e, 0x78, 0x28, 0x58, 0x29, 0x2e, 0x79, 0x28, 0x59, 0x30, + 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x61, 0x72, 0x65, 0x61, 0x31, + 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x61, + 0x72, 0x65, 0x61, 0x28, 0x29, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x27, 0x63, 0x61, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x27, 0x29, 0x2e, 0x78, 0x28, 0x58, + 0x29, 0x2e, 0x79, 0x28, 0x59, 0x31, 0x29, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x30, 0x20, 0x3d, 0x20, 0x64, 0x33, + 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x29, + 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, + 0x65, 0x28, 0x27, 0x63, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, + 0x27, 0x29, 0x2e, 0x78, 0x28, 0x58, 0x29, 0x2e, 0x79, 0x28, 0x59, + 0x30, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x31, 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x76, 0x67, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x29, 0x2e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x27, 0x63, 0x61, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x27, 0x29, 0x2e, 0x78, 0x28, + 0x58, 0x29, 0x2e, 0x79, 0x28, 0x59, 0x31, 0x29, 0x3b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x58, 0x28, 0x64, 0x29, + 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x78, 0x53, + 0x63, 0x61, 0x6c, 0x65, 0x28, 0x64, 0x5b, 0x30, 0x5d, 0x29, 0x3b, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x59, + 0x30, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x30, 0x28, 0x64, + 0x5b, 0x31, 0x5d, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x59, 0x31, 0x28, 0x64, 0x29, 0x20, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x79, 0x53, 0x63, 0x61, + 0x6c, 0x65, 0x31, 0x28, 0x64, 0x5b, 0x32, 0x5d, 0x29, 0x3b, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x57, 0x28, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x2d, + 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2e, 0x6c, 0x65, 0x66, + 0x74, 0x20, 0x2d, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2e, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, + 0x28, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x2d, 0x20, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2e, 0x74, 0x6f, 0x70, 0x20, 0x2d, 0x20, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2e, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x67, 0x65, 0x74, 0x58, 0x54, 0x69, 0x63, 0x6b, 0x73, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x3c, 0x20, 0x6e, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x78, 0x53, 0x63, 0x61, + 0x6c, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x33, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x30, 0x2c, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, + 0x2f, 0x20, 0x6e, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x29, 0x29, 0x2e, + 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x5b, 0x64, 0x5d, 0x3b, + 0x7d, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x67, 0x65, 0x74, 0x59, 0x54, 0x69, 0x63, 0x6b, 0x73, + 0x28, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x3d, 0x20, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x28, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x64, 0x33, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x5b, 0x31, 0x5d, 0x20, 0x2f, 0x20, 0x6e, 0x54, + 0x69, 0x63, 0x6b, 0x73, 0x29, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x61, 0x70, 0x44, 0x61, + 0x74, 0x61, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x5f, 0x64, 0x61, 0x74, 0x75, 0x6d, 0x20, 0x3d, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x64, 0x61, 0x74, 0x75, 0x6d, 0x20, 0x3d, 0x20, 0x5b, 0x78, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x64, + 0x61, 0x74, 0x61, 0x2c, 0x20, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x2c, + 0x20, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x30, 0x2e, 0x63, 0x61, + 0x6c, 0x6c, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x64, 0x2c, + 0x20, 0x69, 0x29, 0x5d, 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, + 0x78, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x64, 0x61, 0x74, 0x75, + 0x6d, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x31, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x64, 0x61, + 0x74, 0x61, 0x2c, 0x20, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x75, + 0x6d, 0x3b, 0x7d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, + 0x69, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x5f, 0x64, 0x61, 0x74, 0x75, 0x6d, 0x28, 0x64, 0x2c, 0x20, 0x69, + 0x29, 0x3b, 0x7d, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x63, 0x61, 0x6c, 0x65, 0x73, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, + 0x20, 0x7b, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6d, + 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x64, 0x5b, 0x30, 0x5d, 0x3b, 0x7d, 0x29, 0x29, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x28, 0x5b, 0x30, 0x2c, 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x57, + 0x28, 0x29, 0x5d, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0x79, 0x53, 0x63, + 0x61, 0x6c, 0x65, 0x30, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x28, 0x5b, 0x30, 0x2c, 0x20, 0x64, 0x33, 0x2e, 0x6d, 0x61, 0x78, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x5b, 0x31, 0x5d, 0x3b, + 0x7d, 0x29, 0x5d, 0x29, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, + 0x5b, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x28, 0x29, 0x2c, 0x20, + 0x30, 0x5d, 0x29, 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, + 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x79, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x31, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x5b, + 0x30, 0x2c, 0x20, 0x64, 0x33, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x64, + 0x61, 0x74, 0x61, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x64, 0x5b, 0x32, 0x5d, 0x3b, 0x7d, 0x29, + 0x5d, 0x29, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x5b, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x28, 0x29, 0x2c, 0x20, 0x30, 0x5d, + 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, 0x63, + 0x69, 0x74, 0x79, 0x28, 0x65, 0x6c, 0x65, 0x2c, 0x20, 0x6f, 0x70, + 0x29, 0x20, 0x7b, 0x64, 0x33, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x28, 0x65, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x2e, 0x27, 0x20, 0x2b, + 0x20, 0x28, 0x65, 0x6c, 0x65, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, + 0x74, 0x61, 0x2d, 0x79, 0x61, 0x78, 0x69, 0x73, 0x27, 0x29, 0x20, + 0x3d, 0x3d, 0x20, 0x27, 0x79, 0x30, 0x27, 0x20, 0x3f, 0x20, 0x27, + 0x79, 0x31, 0x27, 0x20, 0x3a, 0x20, 0x27, 0x79, 0x30, 0x27, 0x29, + 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x27, 0x2c, 0x20, 0x6f, 0x70, 0x29, 0x3b, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x74, + 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x28, 0x73, 0x76, 0x67, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x72, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x76, 0x67, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, + 0x27, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x6c, 0x65, 0x67, 0x65, 0x6e, + 0x64, 0x2e, 0x79, 0x30, 0x27, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x28, 0x5b, 0x6e, 0x75, 0x6c, 0x6c, 0x5d, 0x29, 0x3b, 0x72, 0x65, + 0x63, 0x74, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x72, 0x65, 0x63, + 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x6c, 0x65, 0x67, + 0x65, 0x6e, 0x64, 0x20, 0x79, 0x30, 0x27, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x79, 0x61, + 0x78, 0x69, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x79, 0x30, 0x27, 0x29, + 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, + 0x7b, 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, + 0x27, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x3a, 0x30, 0x2e, + 0x31, 0x27, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x6f, 0x6e, 0x28, + 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x65, 0x61, 0x76, 0x65, + 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x74, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, 0x63, 0x69, 0x74, + 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, 0x6e, 0x75, 0x6c, + 0x6c, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x79, 0x27, 0x2c, 0x20, 0x28, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x20, 0x2d, 0x20, 0x31, 0x35, 0x29, 0x29, 0x3b, 0x72, + 0x65, 0x63, 0x74, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x78, + 0x27, 0x2c, 0x20, 0x28, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x2f, + 0x20, 0x32, 0x29, 0x20, 0x2d, 0x20, 0x31, 0x30, 0x30, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x3d, 0x20, + 0x73, 0x76, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, + 0x6c, 0x6c, 0x28, 0x27, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6c, 0x65, + 0x67, 0x65, 0x6e, 0x64, 0x2e, 0x79, 0x30, 0x27, 0x29, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x28, 0x5b, 0x6e, 0x75, 0x6c, 0x6c, 0x5d, 0x29, + 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x28, 0x29, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, + 0x74, 0x65, 0x78, 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, + 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x20, 0x79, 0x30, 0x27, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, + 0x2d, 0x79, 0x61, 0x78, 0x69, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x79, + 0x30, 0x27, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x6d, 0x6f, 0x75, + 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, + 0x69, 0x29, 0x20, 0x7b, 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x4f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x20, 0x27, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, + 0x3a, 0x30, 0x2e, 0x31, 0x27, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, + 0x6f, 0x6e, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x65, + 0x61, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, + 0x7b, 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, + 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x79, 0x27, 0x2c, 0x20, 0x28, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x2d, 0x20, 0x36, 0x29, 0x29, + 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, + 0x27, 0x78, 0x27, 0x2c, 0x20, 0x28, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x20, 0x2f, 0x20, 0x32, 0x29, 0x20, 0x2d, 0x20, 0x38, 0x35, 0x29, + 0x2e, 0x74, 0x65, 0x78, 0x74, 0x28, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x2e, 0x79, 0x30, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, + 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x29, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x72, 0x65, 0x63, 0x74, 0x20, + 0x3d, 0x20, 0x73, 0x76, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x72, 0x65, 0x63, 0x74, 0x2e, + 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x2e, 0x79, 0x31, 0x27, 0x29, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, 0x5b, 0x6e, 0x75, 0x6c, 0x6c, + 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, + 0x28, 0x27, 0x72, 0x65, 0x63, 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, + 0x20, 0x27, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x20, 0x79, 0x31, + 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x64, 0x61, + 0x74, 0x61, 0x2d, 0x79, 0x61, 0x78, 0x69, 0x73, 0x27, 0x2c, 0x20, + 0x27, 0x79, 0x31, 0x27, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x6d, + 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, + 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x74, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x4f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x20, 0x27, 0x6f, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x3a, 0x30, 0x2e, 0x31, 0x27, 0x29, 0x3b, 0x20, 0x7d, + 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, + 0x6c, 0x65, 0x61, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, + 0x29, 0x20, 0x7b, 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x20, 0x7d, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x79, 0x27, 0x2c, 0x20, + 0x28, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x2d, 0x20, 0x31, + 0x35, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x78, 0x27, 0x2c, 0x20, 0x28, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x20, 0x2f, 0x20, 0x32, 0x29, 0x29, 0x3b, 0x74, + 0x65, 0x78, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x76, 0x67, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x74, + 0x65, 0x78, 0x74, 0x2e, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x2e, + 0x79, 0x31, 0x27, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, 0x5b, + 0x6e, 0x75, 0x6c, 0x6c, 0x5d, 0x29, 0x3b, 0x74, 0x65, 0x78, 0x74, + 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x74, 0x65, 0x78, 0x74, 0x27, + 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x6c, 0x65, 0x67, 0x65, 0x6e, + 0x64, 0x20, 0x79, 0x31, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x79, 0x61, 0x78, 0x69, + 0x73, 0x27, 0x2c, 0x20, 0x27, 0x79, 0x31, 0x27, 0x29, 0x2e, 0x6f, + 0x6e, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, + 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, 0x27, 0x6f, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x3a, 0x30, 0x2e, 0x31, 0x27, + 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x6d, + 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x27, 0x2c, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x74, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, + 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, + 0x79, 0x27, 0x2c, 0x20, 0x28, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x2d, 0x20, 0x36, 0x29, 0x29, 0x3b, 0x74, 0x65, 0x78, 0x74, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x78, 0x27, 0x2c, 0x20, + 0x28, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x2f, 0x20, 0x32, 0x29, + 0x20, 0x2b, 0x20, 0x31, 0x35, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, + 0x28, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x79, 0x31, 0x29, + 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x73, 0x65, 0x74, 0x41, 0x78, 0x69, 0x73, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x28, 0x73, 0x76, 0x67, 0x29, 0x20, 0x7b, 0x73, 0x76, + 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, + 0x28, 0x27, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x61, 0x78, 0x69, 0x73, + 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x79, 0x30, 0x27, 0x29, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, 0x5b, 0x6e, 0x75, 0x6c, 0x6c, + 0x5d, 0x29, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x74, 0x65, 0x78, + 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x61, 0x78, 0x69, + 0x73, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x79, 0x30, 0x27, + 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x79, 0x27, 0x2c, + 0x20, 0x31, 0x30, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, + 0x78, 0x27, 0x2c, 0x20, 0x35, 0x33, 0x29, 0x2e, 0x74, 0x65, 0x78, + 0x74, 0x28, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x79, 0x30, + 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x64, 0x75, 0x61, 0x6c, + 0x59, 0x61, 0x78, 0x69, 0x73, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x45, 0x6e, 0x74, 0x65, + 0x72, 0x20, 0x3d, 0x20, 0x73, 0x76, 0x67, 0x2e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x74, 0x65, 0x78, + 0x74, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x2d, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x2e, 0x79, 0x31, 0x27, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x28, 0x5b, 0x6e, 0x75, 0x6c, 0x6c, 0x5d, 0x29, 0x3b, 0x74, 0x45, + 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, + 0x29, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x74, + 0x65, 0x78, 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, + 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x61, + 0x78, 0x69, 0x73, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x79, + 0x31, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x79, + 0x27, 0x2c, 0x20, 0x31, 0x30, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, + 0x28, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x79, 0x31, 0x29, + 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x20, + 0x26, 0x26, 0x20, 0x74, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x78, 0x27, 0x2c, 0x20, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x32, 0x35, 0x29, 0x3b, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, + 0x6e, 0x28, 0x73, 0x76, 0x67, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x73, + 0x76, 0x67, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x73, 0x76, 0x67, + 0x27, 0x29, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, + 0x67, 0x27, 0x29, 0x3b, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x27, 0x2c, 0x20, 0x27, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x30, 0x20, 0x79, 0x30, 0x27, 0x29, 0x3b, 0x64, + 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x20, 0x26, 0x26, + 0x20, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, + 0x20, 0x27, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x65, + 0x31, 0x20, 0x79, 0x31, 0x27, 0x29, 0x3b, 0x67, 0x45, 0x6e, 0x74, + 0x65, 0x72, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, + 0x67, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x61, 0x72, 0x65, + 0x61, 0x20, 0x61, 0x72, 0x65, 0x61, 0x30, 0x20, 0x79, 0x30, 0x27, + 0x29, 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, + 0x20, 0x26, 0x26, 0x20, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x27, 0x2c, 0x20, 0x27, 0x61, 0x72, 0x65, 0x61, 0x20, 0x61, + 0x72, 0x65, 0x61, 0x31, 0x20, 0x79, 0x31, 0x27, 0x29, 0x3b, 0x67, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, + 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, 0x79, 0x30, 0x27, 0x29, + 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x20, + 0x26, 0x26, 0x20, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, + 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x27, 0x2c, 0x20, 0x27, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, + 0x79, 0x31, 0x27, 0x29, 0x3b, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, + 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, + 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x78, 0x20, 0x67, 0x72, 0x69, + 0x64, 0x27, 0x29, 0x3b, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x27, 0x2c, 0x20, 0x27, 0x79, 0x20, 0x67, 0x72, 0x69, 0x64, + 0x27, 0x29, 0x3b, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, + 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x27, 0x2c, 0x20, 0x27, 0x78, 0x20, 0x61, 0x78, 0x69, 0x73, 0x27, + 0x29, 0x3b, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, + 0x2c, 0x20, 0x27, 0x79, 0x30, 0x20, 0x61, 0x78, 0x69, 0x73, 0x27, + 0x29, 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, + 0x20, 0x26, 0x26, 0x20, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x27, 0x2c, 0x20, 0x27, 0x79, 0x31, 0x20, 0x61, 0x78, 0x69, + 0x73, 0x27, 0x29, 0x3b, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x27, 0x2c, 0x20, 0x27, 0x72, 0x65, 0x63, 0x74, 0x73, 0x27, + 0x29, 0x3b, 0x73, 0x65, 0x74, 0x41, 0x78, 0x69, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x28, 0x73, 0x76, 0x67, 0x29, 0x3b, 0x73, + 0x65, 0x74, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x28, 0x73, 0x76, 0x67, 0x29, 0x3b, 0x67, 0x45, + 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, + 0x28, 0x27, 0x6c, 0x69, 0x6e, 0x65, 0x27, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x79, 0x32, 0x27, 0x2c, 0x20, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x48, 0x28, 0x29, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x27, 0x79, 0x31, 0x27, 0x2c, 0x20, 0x30, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x27, 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, + 0x6f, 0x72, 0x27, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x74, 0x68, 0x4c, 0x65, 0x6e, + 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x64, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x28, 0x29, 0x2e, 0x67, + 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x28, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x4c, 0x69, 0x6e, 0x65, + 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x6c, + 0x69, 0x6e, 0x65, 0x2c, 0x20, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, + 0x3d, 0x20, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x27, 0x67, 0x2e, 0x27, 0x20, 0x2b, 0x20, 0x63, 0x4e, 0x61, 0x6d, + 0x65, 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, + 0x6c, 0x28, 0x27, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x27, 0x20, 0x2b, + 0x20, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x29, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x28, 0x5b, 0x64, 0x61, 0x74, 0x61, 0x5d, 0x29, 0x3b, 0x70, + 0x61, 0x74, 0x68, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, + 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x73, 0x76, + 0x67, 0x3a, 0x70, 0x61, 0x74, 0x68, 0x27, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x64, 0x27, 0x2c, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x63, 0x4e, 0x61, 0x6d, 0x65, + 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x73, 0x74, 0x72, + 0x6f, 0x6b, 0x65, 0x2d, 0x64, 0x61, 0x73, 0x68, 0x61, 0x72, 0x72, + 0x61, 0x79, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x70, 0x6c, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x74, 0x68, 0x4c, + 0x65, 0x6e, 0x28, 0x64, 0x33, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x6c, 0x20, 0x2b, 0x20, 0x27, + 0x20, 0x27, 0x20, 0x2b, 0x20, 0x70, 0x6c, 0x3b, 0x7d, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x73, 0x74, 0x72, 0x6f, 0x6b, + 0x65, 0x2d, 0x64, 0x61, 0x73, 0x68, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x70, 0x61, 0x74, 0x68, 0x4c, 0x65, 0x6e, 0x28, + 0x64, 0x33, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x7d, 0x29, 0x3b, 0x70, 0x61, + 0x74, 0x68, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x64, 0x27, + 0x2c, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x29, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, + 0x2d, 0x64, 0x61, 0x73, 0x68, 0x61, 0x72, 0x72, 0x61, 0x79, 0x27, + 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x64, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x6c, + 0x20, 0x3d, 0x20, 0x70, 0x61, 0x74, 0x68, 0x4c, 0x65, 0x6e, 0x28, + 0x64, 0x33, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x70, 0x6c, 0x20, 0x2b, 0x20, 0x27, 0x20, 0x27, 0x20, + 0x2b, 0x20, 0x70, 0x6c, 0x3b, 0x7d, 0x29, 0x2e, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x32, 0x30, 0x30, 0x30, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x73, 0x74, 0x72, 0x6f, + 0x6b, 0x65, 0x2d, 0x64, 0x61, 0x73, 0x68, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x27, 0x2c, 0x20, 0x30, 0x29, 0x3b, 0x70, 0x61, 0x74, + 0x68, 0x2e, 0x65, 0x78, 0x69, 0x74, 0x28, 0x29, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x41, 0x72, + 0x65, 0x61, 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, + 0x20, 0x63, 0x62, 0x2c, 0x20, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x29, + 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x61, 0x72, 0x65, 0x61, 0x20, + 0x3d, 0x20, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x27, 0x67, 0x2e, 0x27, 0x20, 0x2b, 0x20, 0x63, 0x4e, 0x61, 0x6d, + 0x65, 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, + 0x6c, 0x28, 0x27, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x27, 0x20, 0x2b, + 0x20, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x29, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x28, 0x5b, 0x64, 0x61, 0x74, 0x61, 0x5d, 0x29, 0x3b, 0x61, + 0x72, 0x65, 0x61, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, + 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x73, 0x76, + 0x67, 0x3a, 0x70, 0x61, 0x74, 0x68, 0x27, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, + 0x20, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x29, 0x3b, 0x61, 0x72, 0x65, + 0x61, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x64, 0x27, 0x2c, + 0x20, 0x63, 0x62, 0x29, 0x3b, 0x61, 0x72, 0x65, 0x61, 0x2e, 0x65, + 0x78, 0x69, 0x74, 0x28, 0x29, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x28, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x41, 0x72, 0x65, 0x61, 0x4c, + 0x69, 0x6e, 0x65, 0x73, 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x29, 0x20, 0x7b, 0x61, 0x64, 0x64, 0x41, 0x72, 0x65, 0x61, + 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x61, + 0x72, 0x65, 0x61, 0x30, 0x2e, 0x79, 0x30, 0x28, 0x79, 0x53, 0x63, + 0x61, 0x6c, 0x65, 0x30, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, + 0x29, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x20, 0x27, 0x61, 0x72, 0x65, + 0x61, 0x30, 0x27, 0x29, 0x3b, 0x61, 0x64, 0x64, 0x4c, 0x69, 0x6e, + 0x65, 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, + 0x6c, 0x69, 0x6e, 0x65, 0x30, 0x2c, 0x20, 0x27, 0x6c, 0x69, 0x6e, + 0x65, 0x30, 0x27, 0x29, 0x3b, 0x61, 0x64, 0x64, 0x41, 0x72, 0x65, + 0x61, 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, + 0x61, 0x72, 0x65, 0x61, 0x31, 0x2e, 0x79, 0x31, 0x28, 0x79, 0x53, + 0x63, 0x61, 0x6c, 0x65, 0x31, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x28, 0x29, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x20, 0x27, 0x61, 0x72, + 0x65, 0x61, 0x31, 0x27, 0x29, 0x3b, 0x61, 0x64, 0x64, 0x4c, 0x69, + 0x6e, 0x65, 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x31, 0x2c, 0x20, 0x27, 0x6c, 0x69, + 0x6e, 0x65, 0x31, 0x27, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x20, 0x3d, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3e, 0x20, 0x31, 0x30, 0x30, + 0x20, 0x3f, 0x20, 0x31, 0x20, 0x3a, 0x20, 0x32, 0x2e, 0x35, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, + 0x3d, 0x20, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x27, 0x67, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x79, + 0x30, 0x27, 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, + 0x6c, 0x6c, 0x28, 0x27, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x27, 0x29, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, + 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x73, 0x76, + 0x67, 0x3a, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x27, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x72, 0x27, 0x2c, 0x20, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x27, 0x29, 0x3b, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, + 0x78, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x28, + 0x64, 0x5b, 0x30, 0x5d, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x79, 0x27, 0x2c, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, + 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x79, + 0x53, 0x63, 0x61, 0x6c, 0x65, 0x30, 0x28, 0x64, 0x5b, 0x31, 0x5d, + 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x3b, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x2e, 0x65, 0x78, 0x69, 0x74, 0x28, 0x29, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, + 0x21, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x20, 0x3d, 0x20, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x28, 0x27, 0x67, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x2e, 0x79, 0x31, 0x27, 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x63, 0x69, 0x72, 0x63, + 0x6c, 0x65, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x27, 0x29, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, + 0x27, 0x73, 0x76, 0x67, 0x3a, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, + 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x72, 0x27, + 0x2c, 0x20, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, + 0x2c, 0x20, 0x27, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x27, 0x29, 0x3b, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x63, 0x78, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x78, 0x53, 0x63, 0x61, + 0x6c, 0x65, 0x28, 0x64, 0x5b, 0x30, 0x5d, 0x29, 0x3b, 0x20, 0x7d, + 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x79, 0x27, + 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x64, 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x31, 0x28, 0x64, + 0x5b, 0x32, 0x5d, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x3b, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x65, 0x78, 0x69, 0x74, 0x28, 0x29, + 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x29, 0x3b, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x41, 0x78, 0x69, 0x73, 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x78, 0x54, + 0x69, 0x63, 0x6b, 0x73, 0x20, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x58, + 0x54, 0x69, 0x63, 0x6b, 0x73, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x69, 0x63, 0x6b, 0x44, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x78, 0x54, + 0x69, 0x63, 0x6b, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x3e, 0x20, 0x31, 0x20, 0x3f, 0x20, 0x28, 0x78, 0x53, 0x63, + 0x61, 0x6c, 0x65, 0x28, 0x78, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x5b, + 0x31, 0x5d, 0x29, 0x20, 0x2d, 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x28, 0x78, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x5b, 0x30, 0x5d, + 0x29, 0x29, 0x20, 0x3a, 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x57, + 0x28, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x57, 0x20, 0x3d, 0x20, 0x74, 0x69, 0x63, 0x6b, 0x44, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x2d, 0x20, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3b, 0x67, 0x2e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x28, 0x27, 0x2e, 0x78, 0x2e, 0x61, 0x78, 0x69, + 0x73, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x27, 0x2c, 0x20, + 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x28, + 0x30, 0x2c, 0x27, 0x20, 0x2b, 0x20, 0x79, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x30, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x29, 0x5b, + 0x30, 0x5d, 0x20, 0x2b, 0x20, 0x27, 0x29, 0x27, 0x29, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x78, 0x41, 0x78, 0x69, 0x73, 0x2e, 0x74, + 0x69, 0x63, 0x6b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x28, 0x78, + 0x54, 0x69, 0x63, 0x6b, 0x73, 0x29, 0x29, 0x2e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x22, 0x2e, 0x74, 0x69, + 0x63, 0x6b, 0x20, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, + 0x65, 0x2c, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x57, 0x20, 0x3e, + 0x20, 0x30, 0x20, 0x3f, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x57, + 0x20, 0x3a, 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x57, 0x28, 0x29, + 0x29, 0x3b, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x27, 0x2e, 0x79, 0x30, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x27, 0x29, + 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x79, 0x41, 0x78, 0x69, 0x73, + 0x30, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x28, 0x67, 0x65, 0x74, 0x59, 0x54, 0x69, 0x63, 0x6b, 0x73, + 0x28, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x30, 0x29, 0x29, 0x29, + 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x64, 0x75, 0x61, 0x6c, 0x59, + 0x61, 0x78, 0x69, 0x73, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x3b, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, + 0x2e, 0x79, 0x31, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x27, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x27, 0x2c, 0x20, 0x27, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x27, 0x20, 0x2b, 0x20, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x57, 0x28, 0x29, 0x20, 0x2b, 0x20, + 0x27, 0x2c, 0x20, 0x30, 0x29, 0x27, 0x29, 0x2e, 0x63, 0x61, 0x6c, + 0x6c, 0x28, 0x79, 0x41, 0x78, 0x69, 0x73, 0x31, 0x2e, 0x74, 0x69, + 0x63, 0x6b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x28, 0x67, 0x65, + 0x74, 0x59, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x28, 0x79, 0x53, 0x63, + 0x61, 0x6c, 0x65, 0x31, 0x29, 0x29, 0x29, 0x3b, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x47, + 0x72, 0x69, 0x64, 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x29, 0x20, 0x7b, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x28, 0x27, 0x2e, 0x78, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x27, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x27, 0x2c, 0x20, 0x27, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x30, 0x2c, 0x27, + 0x20, 0x2b, 0x20, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x30, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x29, 0x5b, 0x30, 0x5d, 0x20, + 0x2b, 0x20, 0x27, 0x29, 0x27, 0x29, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x28, 0x78, 0x47, 0x72, 0x69, 0x64, 0x2e, 0x74, 0x69, 0x63, 0x6b, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x28, 0x67, 0x65, 0x74, 0x58, + 0x54, 0x69, 0x63, 0x6b, 0x73, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, + 0x29, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x28, + 0x2d, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x28, 0x29, 0x2c, 0x20, + 0x30, 0x2c, 0x20, 0x30, 0x29, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x27, 0x27, 0x29, 0x29, 0x3b, + 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x2e, + 0x79, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x27, 0x29, 0x2e, 0x63, 0x61, + 0x6c, 0x6c, 0x28, 0x79, 0x47, 0x72, 0x69, 0x64, 0x2e, 0x74, 0x69, + 0x63, 0x6b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x28, 0x67, 0x65, + 0x74, 0x59, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x28, 0x79, 0x53, 0x63, + 0x61, 0x6c, 0x65, 0x30, 0x29, 0x29, 0x2e, 0x74, 0x69, 0x63, 0x6b, + 0x53, 0x69, 0x7a, 0x65, 0x28, 0x2d, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x57, 0x28, 0x29, 0x2c, 0x20, 0x30, 0x2c, 0x20, 0x30, 0x29, 0x2e, + 0x74, 0x69, 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, + 0x27, 0x27, 0x29, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x54, + 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x28, 0x64, 0x61, 0x74, 0x61, + 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x64, + 0x20, 0x3d, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x73, 0x6c, 0x69, + 0x63, 0x65, 0x28, 0x30, 0x29, 0x3b, 0x64, 0x5b, 0x30, 0x5d, 0x20, + 0x3d, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x78, + 0x29, 0x20, 0x3f, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x66, 0x6d, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x28, 0x64, 0x5b, 0x30, 0x5d, 0x2c, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x78, 0x29, 0x20, 0x3a, + 0x20, 0x64, 0x5b, 0x30, 0x5d, 0x3b, 0x64, 0x5b, 0x31, 0x5d, 0x20, + 0x3d, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x79, + 0x30, 0x29, 0x20, 0x3f, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x66, 0x6d, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, 0x64, 0x5b, 0x31, 0x5d, 0x2c, + 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x79, 0x30, 0x29, + 0x20, 0x3a, 0x20, 0x64, 0x33, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x27, 0x2c, 0x27, 0x29, 0x28, 0x64, 0x5b, 0x31, 0x5d, + 0x29, 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, + 0x20, 0x26, 0x26, 0x20, 0x28, 0x64, 0x5b, 0x32, 0x5d, 0x20, 0x3d, + 0x20, 0x28, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x79, 0x31, + 0x29, 0x20, 0x3f, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x66, 0x6d, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x28, 0x64, 0x5b, 0x32, 0x5d, 0x2c, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x79, 0x31, 0x29, 0x20, + 0x3a, 0x20, 0x64, 0x33, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x27, 0x2c, 0x27, 0x29, 0x28, 0x64, 0x5b, 0x32, 0x5d, 0x29, + 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x23, 0x74, 0x70, 0x6c, 0x2d, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, + 0x69, 0x70, 0x27, 0x29, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x28, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x48, 0x6f, 0x67, + 0x61, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x28, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x29, 0x2e, 0x72, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x28, 0x7b, 0x27, 0x64, 0x61, 0x74, + 0x61, 0x27, 0x3a, 0x20, 0x64, 0x7d, 0x29, 0x3b, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x75, 0x73, + 0x65, 0x6f, 0x76, 0x65, 0x72, 0x28, 0x5f, 0x73, 0x65, 0x6c, 0x66, + 0x2c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x69, 0x64, 0x78, + 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x6f, 0x6f, 0x6c, + 0x74, 0x69, 0x70, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x28, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, + 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x2d, 0x77, 0x72, 0x61, 0x70, 0x27, + 0x29, 0x3b, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x2e, 0x68, + 0x74, 0x6d, 0x6c, 0x28, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x54, + 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x28, 0x64, 0x61, 0x74, 0x61, + 0x2c, 0x20, 0x69, 0x64, 0x78, 0x29, 0x29, 0x2e, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x28, 0x27, 0x6c, 0x65, 0x66, 0x74, 0x27, 0x2c, 0x20, + 0x28, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x64, 0x61, 0x74, + 0x61, 0x5b, 0x30, 0x5d, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x27, 0x70, + 0x78, 0x27, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x27, + 0x74, 0x6f, 0x70, 0x27, 0x2c, 0x20, 0x20, 0x28, 0x64, 0x33, 0x2e, + 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x5f, 0x73, 0x65, 0x6c, 0x66, + 0x29, 0x5b, 0x31, 0x5d, 0x20, 0x2b, 0x20, 0x31, 0x30, 0x29, 0x20, + 0x2b, 0x20, 0x27, 0x70, 0x78, 0x27, 0x29, 0x2e, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x28, 0x27, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x27, 0x2c, 0x20, 0x27, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x27, 0x29, + 0x3b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x6c, 0x69, 0x6e, + 0x65, 0x2e, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, + 0x27, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x27, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x27, 0x2c, 0x20, 0x27, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x27, 0x2c, 0x20, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, + 0x74, 0x65, 0x28, 0x27, 0x20, 0x2b, 0x20, 0x78, 0x53, 0x63, 0x61, + 0x6c, 0x65, 0x28, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x5d, 0x29, + 0x20, 0x2b, 0x20, 0x27, 0x2c, 0x27, 0x20, 0x2b, 0x20, 0x30, 0x20, + 0x2b, 0x20, 0x27, 0x29, 0x27, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, + 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x67, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x3d, 0x20, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x2d, + 0x77, 0x72, 0x61, 0x70, 0x27, 0x29, 0x3b, 0x74, 0x6f, 0x6f, 0x6c, + 0x74, 0x69, 0x70, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x27, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x27, 0x2c, 0x20, 0x27, + 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x29, 0x3b, 0x67, 0x2e, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x27, 0x29, + 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x27, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x27, 0x2c, 0x20, 0x27, 0x6e, 0x6f, 0x6e, + 0x65, 0x27, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x52, 0x65, 0x63, 0x74, 0x73, + 0x28, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, + 0x20, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x28, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x57, 0x28, 0x29, 0x20, 0x2f, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x65, 0x63, 0x74, 0x73, 0x20, 0x3d, + 0x20, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, + 0x67, 0x2e, 0x72, 0x65, 0x63, 0x74, 0x73, 0x27, 0x29, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x72, + 0x65, 0x63, 0x74, 0x27, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, + 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x72, 0x65, 0x63, 0x74, 0x73, + 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x73, 0x76, 0x67, 0x3a, 0x72, + 0x65, 0x63, 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, + 0x27, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x27, 0x2c, 0x20, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x28, 0x29, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, + 0x20, 0x27, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x27, 0x29, 0x3b, 0x72, + 0x65, 0x63, 0x74, 0x73, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x27, 0x2c, 0x20, 0x64, 0x33, 0x2e, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x77, 0x29, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x78, 0x27, 0x2c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, + 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x28, 0x77, 0x20, 0x2a, 0x20, 0x69, 0x29, 0x3b, + 0x20, 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x79, + 0x27, 0x2c, 0x20, 0x30, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x6d, + 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, + 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x6d, 0x6f, 0x75, 0x73, 0x65, + 0x6f, 0x76, 0x65, 0x72, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x64, 0x2c, 0x20, 0x69, 0x29, 0x3b, 0x7d, 0x29, 0x2e, 0x6f, 0x6e, + 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x65, 0x61, 0x76, + 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x6d, + 0x6f, 0x75, 0x73, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x67, 0x29, 0x3b, + 0x7d, 0x29, 0x3b, 0x72, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x65, 0x78, + 0x69, 0x74, 0x28, 0x29, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x28, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x28, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, 0x7b, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x61, 0x63, + 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x64, 0x61, 0x74, + 0x61, 0x20, 0x3d, 0x20, 0x6d, 0x61, 0x70, 0x44, 0x61, 0x74, 0x61, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x73, 0x28, 0x64, 0x61, + 0x74, 0x61, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x73, 0x76, 0x67, + 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x2e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x73, 0x76, 0x67, + 0x27, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, 0x5b, 0x64, 0x61, + 0x74, 0x61, 0x5d, 0x29, 0x3b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x53, 0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0x28, 0x73, 0x76, + 0x67, 0x29, 0x3b, 0x73, 0x76, 0x67, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x7b, 0x27, 0x77, 0x69, 0x64, 0x74, 0x68, 0x27, 0x3a, 0x20, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x27, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x27, 0x3a, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x7d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x67, 0x20, 0x3d, 0x20, + 0x73, 0x76, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x27, 0x67, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x27, 0x2c, + 0x20, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, + 0x28, 0x27, 0x20, 0x2b, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2e, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x2b, 0x20, 0x27, 0x2c, 0x27, + 0x20, 0x2b, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2e, 0x74, + 0x6f, 0x70, 0x20, 0x2b, 0x20, 0x27, 0x29, 0x27, 0x29, 0x3b, 0x61, + 0x64, 0x64, 0x47, 0x72, 0x69, 0x64, 0x28, 0x67, 0x2c, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x29, 0x3b, 0x61, 0x64, 0x64, 0x41, 0x72, 0x65, + 0x61, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x67, 0x2c, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x29, 0x3b, 0x61, 0x64, 0x64, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x29, 0x3b, 0x61, 0x64, 0x64, 0x41, 0x78, 0x69, 0x73, 0x28, 0x67, + 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x61, 0x64, 0x64, + 0x52, 0x65, 0x63, 0x74, 0x73, 0x28, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x67, 0x2c, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x29, 0x3b, 0x7d, 0x29, 0x3b, 0x7d, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x2e, 0x6f, 0x70, 0x74, 0x73, 0x20, 0x3d, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, 0x29, + 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, + 0x70, 0x74, 0x73, 0x3b, 0x6f, 0x70, 0x74, 0x73, 0x20, 0x3d, 0x20, + 0x5f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x3b, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x3d, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, 0x29, + 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x3b, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x20, 0x3d, 0x20, 0x5f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x3b, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x5f, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x3b, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x5f, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x3b, 0x7d, 0x3b, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2e, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, 0x29, 0x20, 0x7b, 0x69, + 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x20, 0x3d, + 0x20, 0x5f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x3b, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, 0x29, + 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, + 0x3d, 0x20, 0x5f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x3b, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x5f, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20, 0x5f, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, + 0x3b, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2e, 0x78, 0x20, 0x3d, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, + 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x3b, 0x78, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x3d, 0x20, 0x5f, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x3b, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x2e, 0x79, 0x30, 0x20, 0x3d, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, + 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x30, 0x3b, 0x79, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, + 0x7d, 0x3b, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2e, 0x79, 0x31, 0x20, + 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x5f, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x3b, 0x79, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x20, 0x3d, 0x20, 0x5f, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x3b, 0x7d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x61, 0x72, 0x43, 0x68, 0x61, + 0x72, 0x74, 0x28, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, + 0x73, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x70, 0x74, + 0x73, 0x20, 0x3d, 0x20, 0x7b, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x20, 0x3d, 0x20, 0x7b, 0x74, + 0x6f, 0x70, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x20, 0x32, 0x30, 0x2c, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x20, 0x3a, 0x20, 0x35, 0x30, + 0x2c, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x20, 0x3a, 0x20, 0x34, + 0x30, 0x2c, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x20, 0x20, 0x3a, 0x20, + 0x35, 0x30, 0x2c, 0x7d, 0x2c, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x3d, 0x20, 0x31, 0x37, 0x30, 0x2c, 0x6e, 0x54, 0x69, 0x63, + 0x6b, 0x73, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x2c, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x2c, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x37, 0x36, 0x30, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x20, + 0x3d, 0x20, 0x7b, 0x20, 0x78, 0x3a, 0x20, 0x27, 0x55, 0x6e, 0x6e, + 0x61, 0x6d, 0x65, 0x64, 0x27, 0x2c, 0x20, 0x79, 0x30, 0x3a, 0x20, + 0x27, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x64, 0x27, 0x2c, 0x20, + 0x79, 0x31, 0x3a, 0x20, 0x27, 0x55, 0x6e, 0x6e, 0x61, 0x6d, 0x65, + 0x64, 0x27, 0x20, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x78, 0x3a, + 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x79, 0x30, 0x3a, 0x20, + 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x20, 0x79, 0x31, 0x3a, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x78, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x5b, 0x30, 0x5d, 0x3b, + 0x7d, 0x2c, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x30, 0x20, 0x3d, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x64, 0x5b, 0x31, 0x5d, 0x3b, 0x7d, 0x2c, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x31, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x5b, 0x32, 0x5d, 0x3b, 0x7d, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, + 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2e, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x28, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x30, + 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x28, 0x29, 0x2e, 0x6e, + 0x69, 0x63, 0x65, 0x28, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x79, + 0x53, 0x63, 0x61, 0x6c, 0x65, 0x31, 0x20, 0x3d, 0x20, 0x64, 0x33, + 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x61, 0x72, 0x28, 0x29, 0x2e, 0x6e, 0x69, 0x63, 0x65, 0x28, 0x29, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x78, 0x41, 0x78, 0x69, 0x73, 0x20, + 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x61, 0x78, + 0x69, 0x73, 0x28, 0x29, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, + 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x29, 0x2e, 0x6f, 0x72, 0x69, + 0x65, 0x6e, 0x74, 0x28, 0x27, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, + 0x27, 0x29, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x78, 0x29, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x66, 0x6d, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x28, 0x64, 0x2c, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x2e, 0x78, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x64, 0x3b, 0x7d, 0x29, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x79, 0x41, 0x78, 0x69, 0x73, 0x30, 0x20, 0x3d, 0x20, 0x64, + 0x33, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x28, + 0x29, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x79, 0x53, 0x63, + 0x61, 0x6c, 0x65, 0x30, 0x29, 0x2e, 0x6f, 0x72, 0x69, 0x65, 0x6e, + 0x74, 0x28, 0x27, 0x6c, 0x65, 0x66, 0x74, 0x27, 0x29, 0x2e, 0x74, + 0x69, 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, + 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x33, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x27, 0x2e, 0x32, + 0x73, 0x27, 0x29, 0x28, 0x64, 0x29, 0x3b, 0x7d, 0x29, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x79, 0x41, 0x78, 0x69, 0x73, 0x31, 0x20, 0x3d, + 0x20, 0x64, 0x33, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x61, 0x78, 0x69, + 0x73, 0x28, 0x29, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x79, + 0x53, 0x63, 0x61, 0x6c, 0x65, 0x31, 0x29, 0x2e, 0x6f, 0x72, 0x69, + 0x65, 0x6e, 0x74, 0x28, 0x27, 0x72, 0x69, 0x67, 0x68, 0x74, 0x27, + 0x29, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x64, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x79, 0x31, 0x29, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x66, 0x6d, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x28, 0x64, 0x2c, 0x20, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x2e, 0x79, 0x31, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x64, 0x33, 0x2e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x28, 0x27, 0x2e, 0x32, 0x73, 0x27, 0x29, 0x28, 0x64, + 0x29, 0x3b, 0x7d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x78, 0x47, + 0x72, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x76, + 0x67, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x28, 0x29, 0x2e, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x28, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x29, + 0x2e, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x28, 0x27, 0x62, 0x6f, + 0x74, 0x74, 0x6f, 0x6d, 0x27, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x79, 0x47, 0x72, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, + 0x73, 0x76, 0x67, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x28, 0x29, 0x2e, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x79, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x30, 0x29, 0x2e, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x28, + 0x27, 0x6c, 0x65, 0x66, 0x74, 0x27, 0x29, 0x3b, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x57, 0x28, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x2e, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x2d, + 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2e, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x28, 0x29, 0x20, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x20, 0x2d, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2e, 0x74, 0x6f, 0x70, 0x20, 0x2d, 0x20, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2e, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3b, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, + 0x65, 0x74, 0x58, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x28, 0x64, 0x61, + 0x74, 0x61, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3c, + 0x20, 0x6e, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x29, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x33, 0x2e, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x28, 0x30, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2f, 0x20, 0x6e, + 0x54, 0x69, 0x63, 0x6b, 0x73, 0x29, 0x29, 0x2e, 0x6d, 0x61, 0x70, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x28, 0x29, 0x5b, 0x64, 0x5d, 0x3b, 0x7d, 0x29, 0x3b, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, + 0x65, 0x74, 0x59, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x28, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x3d, 0x20, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x33, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x63, 0x65, 0x69, 0x6c, 0x28, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x5b, 0x31, 0x5d, 0x20, 0x2f, 0x20, 0x6e, 0x54, 0x69, 0x63, 0x6b, + 0x73, 0x29, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6d, 0x61, 0x70, 0x44, 0x61, 0x74, 0x61, 0x28, + 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x5f, 0x64, 0x61, 0x74, 0x75, 0x6d, 0x20, 0x3d, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, + 0x69, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x61, 0x74, + 0x75, 0x6d, 0x20, 0x3d, 0x20, 0x5b, 0x78, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x64, 0x61, 0x74, 0x61, + 0x2c, 0x20, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x2c, 0x20, 0x79, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x30, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x64, 0x2c, 0x20, 0x69, 0x29, + 0x5d, 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, + 0x20, 0x26, 0x26, 0x20, 0x64, 0x61, 0x74, 0x75, 0x6d, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31, + 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2c, + 0x20, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x75, 0x6d, 0x3b, 0x7d, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5f, 0x64, 0x61, + 0x74, 0x75, 0x6d, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x3b, 0x7d, + 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x73, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x78, + 0x53, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x28, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, + 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, + 0x5b, 0x30, 0x5d, 0x3b, 0x7d, 0x29, 0x29, 0x2e, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x73, 0x28, 0x5b, 0x30, 0x2c, + 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x57, 0x28, 0x29, 0x5d, 0x2c, + 0x20, 0x30, 0x2e, 0x31, 0x29, 0x3b, 0x79, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x30, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x5b, + 0x30, 0x2c, 0x20, 0x64, 0x33, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x64, + 0x61, 0x74, 0x61, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x64, 0x5b, 0x31, 0x5d, 0x3b, 0x7d, 0x29, + 0x5d, 0x29, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x5b, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x28, 0x29, 0x2c, 0x20, 0x30, 0x5d, + 0x29, 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, + 0x20, 0x26, 0x26, 0x20, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x31, + 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x5b, 0x30, 0x2c, + 0x20, 0x64, 0x33, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x64, 0x61, 0x74, + 0x61, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x64, 0x5b, 0x32, 0x5d, 0x3b, 0x7d, 0x29, 0x5d, 0x29, + 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x5b, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x48, 0x28, 0x29, 0x2c, 0x20, 0x30, 0x5d, 0x29, 0x3b, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, 0x63, 0x69, 0x74, + 0x79, 0x28, 0x65, 0x6c, 0x65, 0x2c, 0x20, 0x6f, 0x70, 0x29, 0x20, + 0x7b, 0x64, 0x33, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x65, 0x6c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x2e, 0x27, 0x20, 0x2b, 0x20, 0x28, + 0x65, 0x6c, 0x65, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, + 0x2d, 0x79, 0x61, 0x78, 0x69, 0x73, 0x27, 0x29, 0x20, 0x3d, 0x3d, + 0x20, 0x27, 0x79, 0x30, 0x27, 0x20, 0x3f, 0x20, 0x27, 0x79, 0x31, + 0x27, 0x20, 0x3a, 0x20, 0x27, 0x79, 0x30, 0x27, 0x29, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x73, 0x74, 0x79, 0x6c, 0x65, + 0x27, 0x2c, 0x20, 0x6f, 0x70, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x4c, 0x65, + 0x67, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x28, + 0x73, 0x76, 0x67, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, + 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x76, 0x67, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x72, + 0x65, 0x63, 0x74, 0x2e, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x2e, + 0x79, 0x30, 0x27, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, 0x5b, + 0x6e, 0x75, 0x6c, 0x6c, 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x63, 0x74, + 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x72, 0x65, 0x63, 0x74, 0x27, + 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x6c, 0x65, 0x67, 0x65, 0x6e, + 0x64, 0x20, 0x79, 0x30, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x79, 0x61, 0x78, 0x69, + 0x73, 0x27, 0x2c, 0x20, 0x27, 0x79, 0x30, 0x27, 0x29, 0x2e, 0x6f, + 0x6e, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, + 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, 0x27, 0x6f, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x3a, 0x30, 0x2e, 0x31, 0x27, + 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x6d, + 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x27, 0x2c, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x74, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, + 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, + 0x79, 0x27, 0x2c, 0x20, 0x28, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x2d, 0x20, 0x31, 0x35, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x63, + 0x74, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x78, 0x27, 0x2c, + 0x20, 0x28, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x2f, 0x20, 0x32, + 0x29, 0x20, 0x2d, 0x20, 0x31, 0x30, 0x30, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x76, + 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, + 0x28, 0x27, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x6c, 0x65, 0x67, 0x65, + 0x6e, 0x64, 0x2e, 0x79, 0x30, 0x27, 0x29, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x28, 0x5b, 0x6e, 0x75, 0x6c, 0x6c, 0x5d, 0x29, 0x3b, 0x74, + 0x65, 0x78, 0x74, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, + 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x74, 0x65, + 0x78, 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x6c, 0x65, + 0x67, 0x65, 0x6e, 0x64, 0x20, 0x79, 0x30, 0x27, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x79, + 0x61, 0x78, 0x69, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x79, 0x30, 0x27, + 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, + 0x20, 0x7b, 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x70, + 0x61, 0x63, 0x69, 0x74, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, + 0x20, 0x27, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x3a, 0x30, + 0x2e, 0x31, 0x27, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x6f, 0x6e, + 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x65, 0x61, 0x76, + 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, + 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, 0x6e, 0x75, + 0x6c, 0x6c, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x27, 0x79, 0x27, 0x2c, 0x20, 0x28, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x20, 0x2d, 0x20, 0x36, 0x29, 0x29, 0x3b, 0x74, + 0x65, 0x78, 0x74, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x78, + 0x27, 0x2c, 0x20, 0x28, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x2f, + 0x20, 0x32, 0x29, 0x20, 0x2d, 0x20, 0x38, 0x35, 0x29, 0x2e, 0x74, + 0x65, 0x78, 0x74, 0x28, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, + 0x79, 0x30, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x64, 0x75, + 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x29, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x3b, 0x72, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, + 0x73, 0x76, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, + 0x6c, 0x6c, 0x28, 0x27, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x6c, 0x65, + 0x67, 0x65, 0x6e, 0x64, 0x2e, 0x79, 0x31, 0x27, 0x29, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x28, 0x5b, 0x6e, 0x75, 0x6c, 0x6c, 0x5d, 0x29, + 0x3b, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x28, 0x29, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, + 0x72, 0x65, 0x63, 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, + 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x20, 0x79, 0x31, 0x27, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x64, 0x61, 0x74, 0x61, + 0x2d, 0x79, 0x61, 0x78, 0x69, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x79, + 0x31, 0x27, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x6d, 0x6f, 0x75, + 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, + 0x69, 0x29, 0x20, 0x7b, 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x4f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x20, 0x27, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, + 0x3a, 0x30, 0x2e, 0x31, 0x27, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, + 0x6f, 0x6e, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x65, + 0x61, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, + 0x7b, 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, + 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x79, 0x27, 0x2c, 0x20, 0x28, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x2d, 0x20, 0x31, 0x35, 0x29, + 0x29, 0x3b, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x78, 0x27, 0x2c, 0x20, 0x28, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x20, 0x2f, 0x20, 0x32, 0x29, 0x29, 0x3b, 0x74, 0x65, 0x78, + 0x74, 0x20, 0x3d, 0x20, 0x73, 0x76, 0x67, 0x2e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x74, 0x65, 0x78, + 0x74, 0x2e, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x2e, 0x79, 0x31, + 0x27, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, 0x5b, 0x6e, 0x75, + 0x6c, 0x6c, 0x5d, 0x29, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, 0x70, 0x65, + 0x6e, 0x64, 0x28, 0x27, 0x74, 0x65, 0x78, 0x74, 0x27, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x27, 0x2c, 0x20, 0x27, 0x6c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x20, + 0x79, 0x31, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x79, 0x61, 0x78, 0x69, 0x73, 0x27, + 0x2c, 0x20, 0x27, 0x79, 0x31, 0x27, 0x29, 0x2e, 0x6f, 0x6e, 0x28, + 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x27, + 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x74, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x4f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x20, 0x27, 0x6f, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x3a, 0x30, 0x2e, 0x31, 0x27, 0x29, 0x3b, + 0x20, 0x7d, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x6d, 0x6f, 0x75, + 0x73, 0x65, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, + 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, + 0x65, 0x4f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x20, + 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x79, 0x27, + 0x2c, 0x20, 0x28, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x2d, + 0x20, 0x36, 0x29, 0x29, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x78, 0x27, 0x2c, 0x20, 0x28, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x20, 0x2f, 0x20, 0x32, 0x29, 0x20, 0x2b, + 0x20, 0x31, 0x35, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x28, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x79, 0x31, 0x29, 0x3b, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, + 0x74, 0x41, 0x78, 0x69, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x28, 0x73, 0x76, 0x67, 0x29, 0x20, 0x7b, 0x73, 0x76, 0x67, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, + 0x74, 0x65, 0x78, 0x74, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x2d, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x79, 0x30, 0x27, 0x29, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x28, 0x5b, 0x6e, 0x75, 0x6c, 0x6c, 0x5d, 0x29, + 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x74, 0x65, 0x78, 0x74, 0x27, + 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x61, 0x78, 0x69, 0x73, 0x2d, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x79, 0x30, 0x27, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x79, 0x27, 0x2c, 0x20, 0x31, + 0x30, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x78, 0x27, + 0x2c, 0x20, 0x35, 0x33, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x28, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x79, 0x30, 0x29, 0x3b, + 0x69, 0x66, 0x20, 0x28, 0x21, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, + 0x78, 0x69, 0x73, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x20, + 0x3d, 0x20, 0x73, 0x76, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x74, 0x65, 0x78, 0x74, 0x2e, + 0x61, 0x78, 0x69, 0x73, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x2e, + 0x79, 0x31, 0x27, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, 0x5b, + 0x6e, 0x75, 0x6c, 0x6c, 0x5d, 0x29, 0x3b, 0x74, 0x45, 0x6e, 0x74, + 0x65, 0x72, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x74, 0x65, 0x78, + 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, 0x61, 0x78, 0x69, + 0x73, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x79, 0x31, 0x27, + 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x79, 0x27, 0x2c, + 0x20, 0x31, 0x30, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x28, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x79, 0x31, 0x29, 0x3b, 0x64, + 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x20, 0x26, 0x26, + 0x20, 0x74, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x27, 0x78, 0x27, 0x2c, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x20, 0x2d, 0x20, 0x32, 0x35, 0x29, 0x3b, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x53, 0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0x28, + 0x73, 0x76, 0x67, 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x67, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x73, 0x76, 0x67, + 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x73, 0x76, 0x67, 0x27, 0x29, + 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, + 0x29, 0x3b, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, + 0x2c, 0x20, 0x27, 0x78, 0x20, 0x67, 0x72, 0x69, 0x64, 0x27, 0x29, + 0x3b, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, + 0x20, 0x27, 0x79, 0x20, 0x67, 0x72, 0x69, 0x64, 0x27, 0x29, 0x3b, + 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x70, 0x65, + 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, + 0x27, 0x78, 0x20, 0x61, 0x78, 0x69, 0x73, 0x27, 0x29, 0x3b, 0x67, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, + 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x27, + 0x79, 0x30, 0x20, 0x61, 0x78, 0x69, 0x73, 0x27, 0x29, 0x3b, 0x64, + 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x20, 0x26, 0x26, + 0x20, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, + 0x20, 0x27, 0x79, 0x31, 0x20, 0x61, 0x78, 0x69, 0x73, 0x27, 0x29, + 0x3b, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, + 0x20, 0x27, 0x62, 0x61, 0x72, 0x73, 0x20, 0x79, 0x30, 0x27, 0x29, + 0x3b, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x20, + 0x26, 0x26, 0x20, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, + 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x27, 0x2c, 0x20, 0x27, 0x62, 0x61, 0x72, 0x73, 0x20, 0x79, 0x31, + 0x27, 0x29, 0x3b, 0x67, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x61, + 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x27, 0x2c, 0x20, 0x27, 0x72, 0x65, 0x63, 0x74, 0x73, 0x27, 0x29, + 0x3b, 0x73, 0x65, 0x74, 0x41, 0x78, 0x69, 0x73, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x28, 0x73, 0x76, 0x67, 0x29, 0x3b, 0x73, 0x65, + 0x74, 0x4c, 0x65, 0x67, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x28, 0x73, 0x76, 0x67, 0x29, 0x3b, 0x67, 0x45, 0x6e, + 0x74, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, + 0x27, 0x6c, 0x69, 0x6e, 0x65, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x27, 0x79, 0x32, 0x27, 0x2c, 0x20, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x48, 0x28, 0x29, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x79, 0x31, 0x27, 0x2c, 0x20, 0x30, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, + 0x2c, 0x20, 0x27, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, + 0x72, 0x27, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x42, 0x61, 0x72, 0x73, 0x28, + 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x62, 0x61, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x67, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x67, 0x2e, + 0x62, 0x61, 0x72, 0x73, 0x2e, 0x79, 0x30, 0x27, 0x29, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x72, + 0x65, 0x63, 0x74, 0x2e, 0x62, 0x61, 0x72, 0x27, 0x29, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x62, + 0x61, 0x72, 0x73, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, + 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x73, 0x76, + 0x67, 0x3a, 0x72, 0x65, 0x63, 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x27, 0x2c, + 0x20, 0x27, 0x62, 0x61, 0x72, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x27, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x27, 0x2c, + 0x20, 0x30, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, + 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x78, + 0x53, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x42, 0x61, 0x6e, 0x64, 0x28, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x3b, + 0x20, 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x78, + 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x28, 0x64, 0x5b, 0x30, 0x5d, 0x29, 0x3b, 0x20, 0x7d, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x79, 0x27, 0x2c, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, + 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x28, 0x29, + 0x3b, 0x20, 0x7d, 0x29, 0x3b, 0x62, 0x61, 0x72, 0x73, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x77, 0x69, 0x64, 0x74, 0x68, 0x27, + 0x2c, 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x28, 0x29, 0x20, 0x2f, + 0x20, 0x32, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x78, + 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x64, + 0x5b, 0x30, 0x5d, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x2e, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, + 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x20, + 0x2f, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x20, 0x2a, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, + 0x7d, 0x29, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x35, 0x30, 0x30, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, + 0x27, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x27, 0x2c, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, + 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x28, 0x29, 0x20, + 0x2d, 0x20, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x30, 0x28, 0x64, + 0x5b, 0x31, 0x5d, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x79, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, + 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x30, 0x28, 0x64, 0x5b, 0x31, + 0x5d, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x3b, 0x62, 0x61, 0x72, 0x73, + 0x2e, 0x65, 0x78, 0x69, 0x74, 0x28, 0x29, 0x2e, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x28, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, 0x21, + 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x29, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x62, 0x61, 0x72, 0x73, 0x20, + 0x3d, 0x20, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x27, 0x67, 0x2e, 0x62, 0x61, 0x72, 0x73, 0x2e, 0x79, 0x31, 0x27, + 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, + 0x28, 0x27, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x62, 0x61, 0x72, 0x27, + 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, 0x64, 0x61, 0x74, 0x61, + 0x29, 0x3b, 0x62, 0x61, 0x72, 0x73, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, + 0x27, 0x73, 0x76, 0x67, 0x3a, 0x72, 0x65, 0x63, 0x74, 0x27, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x27, 0x2c, 0x20, 0x27, 0x62, 0x61, 0x72, 0x27, 0x29, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x27, 0x2c, 0x20, 0x30, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x77, 0x69, 0x64, 0x74, 0x68, 0x27, 0x2c, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, + 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x28, 0x29, 0x20, 0x2f, + 0x20, 0x32, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x78, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x78, 0x53, 0x63, 0x61, + 0x6c, 0x65, 0x28, 0x64, 0x5b, 0x30, 0x5d, 0x29, 0x20, 0x2b, 0x20, + 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x42, 0x61, 0x6e, 0x64, 0x28, 0x29, 0x20, 0x2f, 0x20, 0x32, + 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, + 0x27, 0x79, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x48, 0x28, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x3b, 0x62, + 0x61, 0x72, 0x73, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x27, 0x2c, 0x20, 0x78, 0x53, 0x63, 0x61, + 0x6c, 0x65, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, + 0x64, 0x28, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x78, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x29, 0x20, 0x7b, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x78, 0x53, + 0x63, 0x61, 0x6c, 0x65, 0x28, 0x64, 0x5b, 0x30, 0x5d, 0x29, 0x20, + 0x2b, 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x28, 0x29, 0x20, 0x2f, + 0x20, 0x32, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x2e, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x20, 0x2f, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x2a, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x20, 0x7d, + 0x29, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x35, 0x30, 0x30, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x27, 0x2c, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, + 0x69, 0x29, 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x28, 0x29, 0x20, 0x2d, + 0x20, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x31, 0x28, 0x64, 0x5b, + 0x32, 0x5d, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x27, 0x79, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, + 0x20, 0x7b, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x79, + 0x53, 0x63, 0x61, 0x6c, 0x65, 0x31, 0x28, 0x64, 0x5b, 0x32, 0x5d, + 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x3b, 0x62, 0x61, 0x72, 0x73, 0x2e, + 0x65, 0x78, 0x69, 0x74, 0x28, 0x29, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x28, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x41, 0x78, 0x69, 0x73, + 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x78, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x20, + 0x3d, 0x20, 0x67, 0x65, 0x74, 0x58, 0x54, 0x69, 0x63, 0x6b, 0x73, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x69, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x20, 0x3d, 0x20, 0x78, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3e, 0x20, 0x31, 0x20, + 0x3f, 0x20, 0x28, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x78, + 0x54, 0x69, 0x63, 0x6b, 0x73, 0x5b, 0x31, 0x5d, 0x29, 0x20, 0x2d, + 0x20, 0x78, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x78, 0x54, 0x69, + 0x63, 0x6b, 0x73, 0x5b, 0x30, 0x5d, 0x29, 0x29, 0x20, 0x3a, 0x20, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x57, 0x28, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x57, 0x20, 0x3d, 0x20, + 0x74, 0x69, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x20, 0x2d, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3b, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, + 0x2e, 0x78, 0x2e, 0x61, 0x78, 0x69, 0x73, 0x27, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x27, 0x2c, 0x20, 0x27, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x30, 0x2c, 0x27, 0x20, 0x2b, + 0x20, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x30, 0x2e, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x28, 0x29, 0x5b, 0x30, 0x5d, 0x20, 0x2b, 0x20, + 0x27, 0x29, 0x27, 0x29, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x78, + 0x41, 0x78, 0x69, 0x73, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x28, 0x78, 0x54, 0x69, 0x63, 0x6b, 0x73, + 0x29, 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, + 0x6c, 0x28, 0x22, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x20, 0x74, 0x65, + 0x78, 0x74, 0x22, 0x29, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, + 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x2c, 0x20, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x57, 0x20, 0x3e, 0x20, 0x30, 0x20, 0x3f, 0x20, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x57, 0x20, 0x3a, 0x20, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x57, 0x28, 0x29, 0x29, 0x3b, 0x67, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x2e, 0x79, 0x30, 0x2e, + 0x61, 0x78, 0x69, 0x73, 0x27, 0x29, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x28, 0x79, 0x41, 0x78, 0x69, 0x73, 0x30, 0x2e, 0x74, 0x69, 0x63, + 0x6b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x28, 0x67, 0x65, 0x74, + 0x59, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x28, 0x79, 0x53, 0x63, 0x61, + 0x6c, 0x65, 0x30, 0x29, 0x29, 0x29, 0x3b, 0x69, 0x66, 0x20, 0x28, + 0x21, 0x64, 0x75, 0x61, 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x67, 0x2e, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x2e, 0x79, 0x31, 0x2e, 0x61, + 0x78, 0x69, 0x73, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, + 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x27, + 0x2c, 0x20, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, + 0x65, 0x28, 0x27, 0x20, 0x2b, 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x57, 0x28, 0x29, 0x20, 0x2b, 0x20, 0x27, 0x2c, 0x20, 0x30, 0x29, + 0x27, 0x29, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x79, 0x41, 0x78, + 0x69, 0x73, 0x31, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x28, 0x67, 0x65, 0x74, 0x59, 0x54, 0x69, 0x63, + 0x6b, 0x73, 0x28, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x31, 0x29, + 0x29, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x61, 0x64, 0x64, 0x47, 0x72, 0x69, 0x64, 0x28, 0x67, + 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, 0x67, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x2e, 0x78, 0x2e, + 0x67, 0x72, 0x69, 0x64, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x27, 0x2c, 0x20, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, + 0x74, 0x65, 0x28, 0x30, 0x2c, 0x27, 0x20, 0x2b, 0x20, 0x79, 0x53, + 0x63, 0x61, 0x6c, 0x65, 0x30, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x28, 0x29, 0x5b, 0x30, 0x5d, 0x20, 0x2b, 0x20, 0x27, 0x29, 0x27, + 0x29, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x78, 0x47, 0x72, 0x69, + 0x64, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x28, 0x67, 0x65, 0x74, 0x58, 0x54, 0x69, 0x63, 0x6b, 0x73, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x29, 0x2e, 0x74, 0x69, 0x63, + 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x28, 0x2d, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x48, 0x28, 0x29, 0x2c, 0x20, 0x30, 0x2c, 0x20, 0x30, 0x29, + 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x27, 0x27, 0x29, 0x29, 0x3b, 0x67, 0x2e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x28, 0x27, 0x2e, 0x79, 0x2e, 0x67, 0x72, 0x69, + 0x64, 0x27, 0x29, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x79, 0x47, + 0x72, 0x69, 0x64, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x28, 0x67, 0x65, 0x74, 0x59, 0x54, 0x69, 0x63, + 0x6b, 0x73, 0x28, 0x79, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x30, 0x29, + 0x29, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x28, + 0x2d, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x57, 0x28, 0x29, 0x2c, 0x20, + 0x30, 0x2c, 0x20, 0x30, 0x29, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x27, 0x27, 0x29, 0x29, 0x3b, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69, + 0x70, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x69, 0x29, 0x20, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x20, 0x3d, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x30, 0x29, + 0x3b, 0x64, 0x5b, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x78, 0x29, 0x20, 0x3f, 0x20, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, + 0x6c, 0x2e, 0x66, 0x6d, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, + 0x64, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x2e, 0x78, 0x29, 0x20, 0x3a, 0x20, 0x64, 0x5b, 0x30, 0x5d, + 0x3b, 0x64, 0x5b, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x79, 0x30, 0x29, 0x20, 0x3f, 0x20, + 0x47, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, + 0x69, 0x6c, 0x2e, 0x66, 0x6d, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x28, 0x64, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x2e, 0x79, 0x30, 0x29, 0x20, 0x3a, 0x20, 0x64, 0x33, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x27, 0x2c, 0x27, + 0x29, 0x28, 0x64, 0x5b, 0x31, 0x5d, 0x29, 0x3b, 0x64, 0x75, 0x61, + 0x6c, 0x59, 0x61, 0x78, 0x69, 0x73, 0x20, 0x26, 0x26, 0x20, 0x28, + 0x64, 0x5b, 0x32, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x2e, 0x79, 0x31, 0x29, 0x20, 0x3f, 0x20, 0x47, + 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x55, 0x74, 0x69, + 0x6c, 0x2e, 0x66, 0x6d, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, + 0x64, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x2e, 0x79, 0x31, 0x29, 0x20, 0x3a, 0x20, 0x64, 0x33, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x27, 0x2c, 0x27, 0x29, + 0x28, 0x64, 0x5b, 0x32, 0x5d, 0x29, 0x29, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x3d, + 0x20, 0x64, 0x33, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x27, 0x23, 0x74, 0x70, 0x6c, 0x2d, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x27, 0x29, 0x2e, + 0x68, 0x74, 0x6d, 0x6c, 0x28, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x48, 0x6f, 0x67, 0x61, 0x6e, 0x2e, 0x63, 0x6f, + 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x28, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x29, 0x2e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x28, 0x7b, 0x27, 0x64, 0x61, 0x74, 0x61, 0x27, 0x3a, 0x20, 0x64, + 0x7d, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6f, 0x76, 0x65, 0x72, + 0x28, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x2c, 0x20, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x2c, 0x20, 0x69, 0x64, 0x78, 0x29, 0x20, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x78, 0x53, + 0x63, 0x61, 0x6c, 0x65, 0x28, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, + 0x5d, 0x29, 0x20, 0x2b, 0x20, 0x28, 0x78, 0x53, 0x63, 0x61, 0x6c, + 0x65, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x64, + 0x28, 0x29, 0x20, 0x2f, 0x20, 0x32, 0x29, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x3d, 0x20, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x2d, + 0x77, 0x72, 0x61, 0x70, 0x27, 0x29, 0x3b, 0x74, 0x6f, 0x6f, 0x6c, + 0x74, 0x69, 0x70, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x28, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x69, 0x64, 0x78, 0x29, + 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x27, 0x6c, 0x65, + 0x66, 0x74, 0x27, 0x2c, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x2b, + 0x20, 0x27, 0x70, 0x78, 0x27, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x28, 0x27, 0x74, 0x6f, 0x70, 0x27, 0x2c, 0x20, 0x20, 0x28, + 0x64, 0x33, 0x2e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x5f, 0x73, + 0x65, 0x6c, 0x66, 0x29, 0x5b, 0x31, 0x5d, 0x20, 0x2b, 0x20, 0x31, + 0x30, 0x29, 0x20, 0x2b, 0x20, 0x27, 0x70, 0x78, 0x27, 0x29, 0x2e, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x27, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x27, 0x2c, 0x20, 0x27, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x27, 0x29, 0x3b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, + 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, + 0x74, 0x6f, 0x72, 0x27, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, + 0x28, 0x27, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x27, 0x2c, + 0x20, 0x27, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x27, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x27, 0x2c, 0x20, 0x27, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x27, 0x20, 0x2b, 0x20, 0x6c, + 0x65, 0x66, 0x74, 0x20, 0x2b, 0x20, 0x27, 0x2c, 0x27, 0x20, 0x2b, + 0x20, 0x30, 0x20, 0x2b, 0x20, 0x27, 0x29, 0x27, 0x29, 0x3b, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, + 0x75, 0x73, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x67, 0x29, 0x20, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, + 0x20, 0x3d, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x2e, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, + 0x69, 0x70, 0x2d, 0x77, 0x72, 0x61, 0x70, 0x27, 0x29, 0x3b, 0x74, + 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x2e, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x28, 0x27, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x27, + 0x2c, 0x20, 0x27, 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x29, 0x3b, 0x67, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x27, 0x6c, 0x69, + 0x6e, 0x65, 0x2e, 0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x6f, + 0x72, 0x27, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x27, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x27, 0x2c, 0x20, 0x27, + 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x52, 0x65, + 0x63, 0x74, 0x73, 0x28, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2c, 0x20, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x29, 0x20, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x77, 0x20, 0x3d, 0x20, + 0x28, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x57, 0x28, 0x29, 0x20, 0x2f, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x65, 0x63, 0x74, + 0x73, 0x20, 0x3d, 0x20, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x28, 0x27, 0x67, 0x2e, 0x72, 0x65, 0x63, 0x74, 0x73, 0x27, + 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, + 0x28, 0x27, 0x72, 0x65, 0x63, 0x74, 0x27, 0x29, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x72, 0x65, + 0x63, 0x74, 0x73, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, + 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x27, 0x73, 0x76, + 0x67, 0x3a, 0x72, 0x65, 0x63, 0x74, 0x27, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x27, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x27, + 0x2c, 0x20, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x28, 0x29, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x27, 0x2c, 0x20, 0x27, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x27, + 0x29, 0x3b, 0x72, 0x65, 0x63, 0x74, 0x73, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x27, 0x77, 0x69, 0x64, 0x74, 0x68, 0x27, 0x2c, 0x20, + 0x64, 0x33, 0x2e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x6f, 0x72, 0x28, + 0x77, 0x29, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x27, 0x78, + 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x20, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x77, 0x20, 0x2a, 0x20, + 0x69, 0x29, 0x3b, 0x20, 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x27, 0x79, 0x27, 0x2c, 0x20, 0x30, 0x29, 0x2e, 0x6f, 0x6e, + 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x20, 0x7b, 0x6d, 0x6f, + 0x75, 0x73, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2c, 0x20, 0x64, 0x2c, 0x20, 0x69, 0x29, 0x3b, 0x7d, 0x29, + 0x2e, 0x6f, 0x6e, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6c, + 0x65, 0x61, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x2c, 0x20, 0x69, 0x29, + 0x20, 0x7b, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6f, 0x75, 0x74, 0x28, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, + 0x67, 0x29, 0x3b, 0x7d, 0x29, 0x3b, 0x72, 0x65, 0x63, 0x74, 0x73, + 0x2e, 0x65, 0x78, 0x69, 0x74, 0x28, 0x29, 0x2e, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x28, 0x29, 0x3b, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x28, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x20, + 0x7b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x65, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x20, 0x7b, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x6d, 0x61, 0x70, 0x44, + 0x61, 0x74, 0x61, 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x73, + 0x28, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x73, 0x76, 0x67, 0x20, 0x3d, 0x20, 0x64, 0x33, 0x2e, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x27, + 0x73, 0x76, 0x67, 0x27, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, + 0x5b, 0x64, 0x61, 0x74, 0x61, 0x5d, 0x29, 0x3b, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, + 0x28, 0x73, 0x76, 0x67, 0x29, 0x3b, 0x73, 0x76, 0x67, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x7b, 0x27, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x27, 0x3a, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x27, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x27, 0x3a, 0x20, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x7d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x67, + 0x20, 0x3d, 0x20, 0x73, 0x76, 0x67, 0x2e, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x28, 0x27, 0x67, 0x27, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, + 0x6d, 0x27, 0x2c, 0x20, 0x27, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, + 0x61, 0x74, 0x65, 0x28, 0x27, 0x20, 0x2b, 0x20, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2e, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x2b, 0x20, + 0x27, 0x2c, 0x27, 0x20, 0x2b, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2e, 0x74, 0x6f, 0x70, 0x20, 0x2b, 0x20, 0x27, 0x29, 0x27, + 0x29, 0x3b, 0x61, 0x64, 0x64, 0x47, 0x72, 0x69, 0x64, 0x28, 0x67, + 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x61, 0x64, 0x64, + 0x41, 0x78, 0x69, 0x73, 0x28, 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x29, 0x3b, 0x61, 0x64, 0x64, 0x42, 0x61, 0x72, 0x73, 0x28, + 0x67, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x61, 0x64, + 0x64, 0x52, 0x65, 0x63, 0x74, 0x73, 0x28, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x67, 0x2c, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x29, 0x3b, 0x7d, 0x29, 0x3b, 0x7d, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x2e, 0x6f, 0x70, 0x74, 0x73, 0x20, 0x3d, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, + 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6f, 0x70, 0x74, 0x73, 0x3b, 0x6f, 0x70, 0x74, 0x73, 0x20, 0x3d, + 0x20, 0x5f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x3b, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x3d, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, + 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x3b, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x20, 0x3d, 0x20, 0x5f, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x3b, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x2e, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x28, 0x5f, 0x29, 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, + 0x21, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x3b, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x20, 0x3d, 0x20, 0x5f, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x3b, 0x7d, 0x3b, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2e, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, 0x29, 0x20, 0x7b, 0x69, + 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x5f, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x3b, 0x7d, 0x3b, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2e, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, 0x29, 0x20, + 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x20, 0x3d, 0x20, 0x5f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x3b, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, 0x29, 0x20, 0x7b, + 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x78, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x3b, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, + 0x3d, 0x20, 0x5f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x3b, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x2e, 0x79, 0x30, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, 0x29, 0x20, 0x7b, + 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, + 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x79, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x30, 0x3b, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x30, 0x20, 0x3d, 0x20, 0x5f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, 0x3b, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x2e, 0x79, 0x31, 0x20, 0x3d, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x5f, 0x29, + 0x20, 0x7b, 0x69, 0x66, 0x20, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x79, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x3b, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x31, 0x20, 0x3d, 0x20, 0x5f, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3b, 0x7d, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x3b, 0x7d, 0x00 +}; + +const int charts_js_length = 20421; diff --git a/src/goaccess++/src/color.c b/src/goaccess++/src/color.c new file mode 100644 index 0000000..dbc7ff6 --- /dev/null +++ b/src/goaccess++/src/color.c @@ -0,0 +1,840 @@ +/** + * color.c -- functions related to custom color + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> + +#include "color.h" + +#include "error.h" +#include "gslist.h" +#include "util.h" +#include "xmalloc.h" + +static GSLList *color_list = NULL; +static GSLList *pair_list = NULL; + +/* *INDENT-OFF* */ +static GEnum CSTM_COLORS[] = { + {"COLOR_MTRC_HITS" , COLOR_MTRC_HITS}, + {"COLOR_MTRC_VISITORS" , COLOR_MTRC_VISITORS}, + {"COLOR_MTRC_HITS_PERC" , COLOR_MTRC_HITS_PERC}, + {"COLOR_MTRC_VISITORS_PERC" , COLOR_MTRC_VISITORS_PERC}, + {"COLOR_MTRC_BW" , COLOR_MTRC_BW}, + {"COLOR_MTRC_AVGTS" , COLOR_MTRC_AVGTS}, + {"COLOR_MTRC_CUMTS" , COLOR_MTRC_CUMTS}, + {"COLOR_MTRC_MAXTS" , COLOR_MTRC_MAXTS}, + {"COLOR_MTRC_PROT" , COLOR_MTRC_PROT}, + {"COLOR_MTRC_MTHD" , COLOR_MTRC_MTHD}, + {"COLOR_MTRC_DATA" , COLOR_MTRC_DATA}, + {"COLOR_MTRC_HITS_PERC_MAX" , COLOR_MTRC_HITS_PERC_MAX}, + {"COLOR_MTRC_VISITORS_PERC_MAX" , COLOR_MTRC_VISITORS_PERC_MAX}, + {"COLOR_PANEL_COLS" , COLOR_PANEL_COLS}, + {"COLOR_BARS" , COLOR_BARS}, + {"COLOR_ERROR" , COLOR_ERROR}, + {"COLOR_SELECTED" , COLOR_SELECTED}, + {"COLOR_PANEL_ACTIVE" , COLOR_PANEL_ACTIVE}, + {"COLOR_PANEL_HEADER" , COLOR_PANEL_HEADER}, + {"COLOR_PANEL_DESC" , COLOR_PANEL_DESC}, + {"COLOR_OVERALL_LBLS" , COLOR_OVERALL_LBLS}, + {"COLOR_OVERALL_VALS" , COLOR_OVERALL_VALS}, + {"COLOR_OVERALL_PATH" , COLOR_OVERALL_PATH}, + {"COLOR_ACTIVE_LABEL" , COLOR_ACTIVE_LABEL}, + {"COLOR_BG" , COLOR_BG}, + {"COLOR_DEFAULT" , COLOR_DEFAULT}, + {"COLOR_PROGRESS" , COLOR_PROGRESS}, +}; + +static const char *colors256_mono[] = { + "COLOR_MTRC_HITS color7:color-1", + "COLOR_MTRC_VISITORS color8:color-1", + "COLOR_MTRC_DATA color7:color-1", + "COLOR_MTRC_BW color8:color-1", + "COLOR_MTRC_AVGTS color8:color-1", + "COLOR_MTRC_CUMTS color8:color-1", + "COLOR_MTRC_MAXTS color8:color-1", + "COLOR_MTRC_PROT color8:color-1", + "COLOR_MTRC_MTHD color7:color-1", + "COLOR_MTRC_HITS_PERC color0:color-1 bold", + "COLOR_MTRC_HITS_PERC color1:color-1 bold VISITORS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold OS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold BROWSERS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold VISIT_TIMES", + "COLOR_MTRC_HITS_PERC_MAX color0:color-1 bold", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold VISITORS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold OS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold BROWSERS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold VISIT_TIMES", + "COLOR_MTRC_VISITORS_PERC color0:color-1 bold", + "COLOR_MTRC_VISITORS_PERC_MAX color0:color-1 bold", + "COLOR_PANEL_COLS color7:color-1", + "COLOR_BARS color7:color-1", + "COLOR_ERROR color7:color1", + "COLOR_SELECTED color7:color8", + "COLOR_PANEL_ACTIVE color0:color3", + "COLOR_PANEL_HEADER color0:color7", + "COLOR_PANEL_DESC color7:color-1", + "COLOR_OVERALL_LBLS color7:color-1 bold", + "COLOR_OVERALL_VALS color6:color-1 bold", + "COLOR_OVERALL_PATH color3:color-1", + "COLOR_ACTIVE_LABEL color4:color7", + "COLOR_BG color7:color-1", + "COLOR_DEFAULT color7:color-1", + "COLOR_PROGRESS color0:color6", +}; + +static const char *colors256_green[] = { + "COLOR_MTRC_HITS color7:color-1", + "COLOR_MTRC_VISITORS color8:color-1", + "COLOR_MTRC_DATA color7:color-1", + "COLOR_MTRC_BW color8:color-1", + "COLOR_MTRC_AVGTS color8:color-1", + "COLOR_MTRC_CUMTS color8:color-1", + "COLOR_MTRC_MAXTS color8:color-1", + "COLOR_MTRC_PROT color8:color-1", + "COLOR_MTRC_MTHD color7:color-1", + "COLOR_MTRC_HITS_PERC color0:color-1 bold", + "COLOR_MTRC_HITS_PERC color1:color-1 bold VISITORS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold OS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold BROWSERS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold VISIT_TIMES", + "COLOR_MTRC_HITS_PERC_MAX color0:color-1 bold", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold VISITORS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold OS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold BROWSERS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold VISIT_TIMES", + "COLOR_MTRC_VISITORS_PERC color0:color-1 bold", + "COLOR_MTRC_VISITORS_PERC_MAX color0:color-1 bold", + "COLOR_PANEL_COLS color7:color-1", + "COLOR_BARS color7:color-1", + "COLOR_ERROR color7:color1", + "COLOR_SELECTED color7:color8", + "COLOR_PANEL_ACTIVE color0:color3", + "COLOR_PANEL_HEADER color0:color35", + "COLOR_PANEL_DESC color7:color-1", + "COLOR_OVERALL_LBLS color7:color-1 bold", + "COLOR_OVERALL_VALS color6:color-1 bold", + "COLOR_OVERALL_PATH color3:color-1", + "COLOR_ACTIVE_LABEL color7:color35", + "COLOR_BG color7:color-1", + "COLOR_DEFAULT color7:color-1", + "COLOR_PROGRESS color0:color6", +}; + +static const char *colors256_monokai[] = { + "COLOR_MTRC_HITS color197:color-1", + "COLOR_MTRC_VISITORS color148:color-1", + "COLOR_MTRC_DATA color7:color-1", + "COLOR_MTRC_BW color81:color-1", + "COLOR_MTRC_AVGTS color247:color-1", + "COLOR_MTRC_CUMTS color95:color-1", + "COLOR_MTRC_MAXTS color186:color-1", + "COLOR_MTRC_PROT color141:color-1", + "COLOR_MTRC_MTHD color81:color-1", + "COLOR_MTRC_HITS_PERC color186:color-1", + "COLOR_MTRC_HITS_PERC color186:color-1 VISITORS", + "COLOR_MTRC_HITS_PERC color186:color-1 OS", + "COLOR_MTRC_HITS_PERC color186:color-1 BROWSERS", + "COLOR_MTRC_HITS_PERC color186:color-1 VISIT_TIMES", + "COLOR_MTRC_HITS_PERC_MAX color208:color-1", + "COLOR_MTRC_HITS_PERC_MAX color208:color-1 VISITORS", + "COLOR_MTRC_HITS_PERC_MAX color208:color-1 OS", + "COLOR_MTRC_HITS_PERC_MAX color208:color-1 BROWSERS", + "COLOR_MTRC_HITS_PERC_MAX color208:color-1 VISIT_TIMES", + "COLOR_MTRC_VISITORS_PERC color187:color-1", + "COLOR_MTRC_VISITORS_PERC_MAX color208:color-1", + "COLOR_PANEL_COLS color242:color-1", + "COLOR_BARS color186:color-1", + "COLOR_ERROR color231:color197", + "COLOR_SELECTED color0:color215", + "COLOR_PANEL_ACTIVE color7:color240", + "COLOR_PANEL_HEADER color7:color237", + "COLOR_PANEL_DESC color242:color-1", + "COLOR_OVERALL_LBLS color251:color-1", + "COLOR_OVERALL_VALS color148:color-1", + "COLOR_OVERALL_PATH color186:color-1", + "COLOR_ACTIVE_LABEL color7:color237", + "COLOR_BG color7:color-1", + "COLOR_DEFAULT color7:color-1", + "COLOR_PROGRESS color7:color141", +}; + +static const char *colors8_mono[] = { + "COLOR_MTRC_HITS color7:color-1", + "COLOR_MTRC_VISITORS color0:color-1 bold", + "COLOR_MTRC_DATA color7:color-1", + "COLOR_MTRC_BW color0:color-1 bold", + "COLOR_MTRC_AVGTS color0:color-1 bold", + "COLOR_MTRC_CUMTS color0:color-1 bold", + "COLOR_MTRC_MAXTS color0:color-1 bold", + "COLOR_MTRC_PROT color0:color-1 bold", + "COLOR_MTRC_MTHD color7:color-1 ", + "COLOR_MTRC_HITS_PERC color0:color-1 bold", + "COLOR_MTRC_HITS_PERC color1:color-1 bold VISITORS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold OS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold BROWSERS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold VISIT_TIMES", + "COLOR_MTRC_HITS_PERC_MAX color0:color-1 bold", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold VISITORS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold OS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold BROWSERS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold VISIT_TIMES", + "COLOR_MTRC_VISITORS_PERC color0:color-1 bold", + "COLOR_MTRC_VISITORS_PERC_MAX color0:color-1 bold", + "COLOR_PANEL_COLS color7:color-1", + "COLOR_BARS color7:color-1", + "COLOR_ERROR color7:color1", + "COLOR_SELECTED color0:color7", + "COLOR_PANEL_ACTIVE color0:color3", + "COLOR_PANEL_HEADER color0:color7", + "COLOR_PANEL_DESC color7:color-1", + "COLOR_OVERALL_LBLS color7:color-1 bold", + "COLOR_OVERALL_VALS color6:color-1", + "COLOR_OVERALL_PATH color3:color-1", + "COLOR_ACTIVE_LABEL color4:color7", + "COLOR_BG color7:color-1", + "COLOR_DEFAULT color7:color-1", + "COLOR_PROGRESS color0:color6", +}; + +static const char *colors8_green[] = { + "COLOR_MTRC_HITS color7:color-1", + "COLOR_MTRC_VISITORS color0:color-1 bold", + "COLOR_MTRC_DATA color7:color-1", + "COLOR_MTRC_BW color0:color-1 bold", + "COLOR_MTRC_AVGTS color0:color-1 bold", + "COLOR_MTRC_CUMTS color0:color-1 bold", + "COLOR_MTRC_MAXTS color0:color-1 bold", + "COLOR_MTRC_PROT color0:color-1 bold", + "COLOR_MTRC_MTHD color7:color-1 ", + "COLOR_MTRC_HITS_PERC color0:color-1 bold", + "COLOR_MTRC_HITS_PERC color1:color-1 bold VISITORS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold OS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold BROWSERS", + "COLOR_MTRC_HITS_PERC color1:color-1 bold VISIT_TIMES", + "COLOR_MTRC_HITS_PERC_MAX color0:color-1 bold", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold VISITORS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold OS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold BROWSERS", + "COLOR_MTRC_HITS_PERC_MAX color3:color-1 bold VISIT_TIMES", + "COLOR_MTRC_VISITORS_PERC color0:color-1 bold", + "COLOR_MTRC_VISITORS_PERC_MAX color0:color-1 bold", + "COLOR_PANEL_COLS color7:color-1", + "COLOR_BARS color2:color-1", + "COLOR_ERROR color7:color1", + "COLOR_SELECTED color0:color7", + "COLOR_PANEL_ACTIVE color0:color3", + "COLOR_PANEL_HEADER color0:color2", + "COLOR_PANEL_DESC color7:color-1", + "COLOR_OVERALL_LBLS color7:color-1 bold", + "COLOR_OVERALL_VALS color6:color-1", + "COLOR_OVERALL_PATH color3:color-1", + "COLOR_ACTIVE_LABEL color0:color2", + "COLOR_BG color7:color-1", + "COLOR_DEFAULT color7:color-1", + "COLOR_PROGRESS color0:color6", +}; + +static const char *nocolors[] = { + "COLOR_MTRC_HITS color0:color-1", + "COLOR_MTRC_VISITORS color0:color-1", + "COLOR_MTRC_DATA color0:color-1", + "COLOR_MTRC_BW color0:color-1", + "COLOR_MTRC_AVGTS color0:color-1", + "COLOR_MTRC_CUMTS color0:color-1", + "COLOR_MTRC_MAXTS color0:color-1", + "COLOR_MTRC_PROT color0:color-1", + "COLOR_MTRC_MTHD color0:color-1", + "COLOR_MTRC_HITS_PERC color0:color-1", + "COLOR_MTRC_HITS_PERC_MAX color0:color-1", + "COLOR_MTRC_VISITORS_PERC color0:color-1", + "COLOR_MTRC_VISITORS_PERC_MAX color0:color-1", + "COLOR_PANEL_COLS color0:color-1", + "COLOR_BARS color0:color-1", + "COLOR_ERROR color0:color-1", + "COLOR_SELECTED color0:color-1 reverse", + "COLOR_PANEL_ACTIVE color0:color-1 reverse", + "COLOR_PANEL_HEADER color0:color-1 reverse", + "COLOR_PANEL_DESC color0:color-1", + "COLOR_OVERALL_LBLS color0:color-1", + "COLOR_OVERALL_VALS color0:color-1", + "COLOR_OVERALL_PATH color0:color-1", + "COLOR_ACTIVE_LABEL color0:color-1 reverse", + "COLOR_BG color0:color-1", + "COLOR_DEFAULT color0:color-1", + "COLOR_PROGRESS color0:color-1 reverse", +}; + +/* *INDENT-ON* */ + +/* Allocate memory for color elements */ +static GColors * +new_gcolors (void) +{ + GColors *color = xcalloc (1, sizeof (GColors)); + color->module = -1; + + return color; +} + +/* Allocate memory for a color element properties */ +static GColorPair * +new_gcolorpair (void) +{ + GColorPair *pair = xcalloc (1, sizeof (GColorPair)); + /* Must be between 2 and COLOR_PAIRS-1. + * Starts at 2 since COLOR_NORMAL has already been set */ + pair->idx = 2; + + return pair; +} + +/* Free malloc'd memory for color elements */ +void +free_color_lists (void) +{ + if (pair_list) + list_remove_nodes (pair_list); + if (color_list) + list_remove_nodes (color_list); + color_list = NULL; + pair_list = NULL; +} + +/* Set a default color - COLOR_NORMAL, this will be used if + * no colors are supported by the terminal */ +void +set_normal_color (void) +{ + GColorPair *pair = new_gcolorpair (); + GColors *color = new_gcolors (); + + pair->idx = 1; + pair->fg = COLOR_WHITE; + pair->bg = -1; + + color->pair = pair; + color->item = COLOR_NORMAL; + + pair_list = list_create (pair); + color_list = list_create (color); + + init_pair (pair->idx, pair->fg, pair->bg); +} + +/* Get color properties for COLOR_OVERALL_LBLS */ +GColors * +color_overall_lbls (void) +{ + return get_color (COLOR_OVERALL_LBLS); +} + +/* Get color properties for COLOR_OVERALL_VALS */ +GColors * +color_overall_vals (void) +{ + return get_color (COLOR_OVERALL_VALS); +} + +/* Get color properties for COLOR_OVERALL_PATH */ +GColors * +color_overall_path (void) +{ + return get_color (COLOR_OVERALL_PATH); +} + +/* Get color properties for COLOR_PANEL_HEADER */ +GColors * +color_panel_header (void) +{ + return get_color (COLOR_PANEL_HEADER); +} + +/* Get color properties for COLOR_PANEL_DESC */ +GColors * +color_panel_desc (void) +{ + return get_color (COLOR_PANEL_DESC); +} + +/* Get color properties for COLOR_PANEL_ACTIVE*/ +GColors * +color_panel_active (void) +{ + return get_color (COLOR_PANEL_ACTIVE); +} + +/* Get color properties for COLOR_SELECTED */ +GColors * +color_selected (void) +{ + return get_color (COLOR_SELECTED); +} + +/* Get color properties for COLOR_PROGRESS */ +GColors * +color_progress (void) +{ + return get_color (COLOR_PROGRESS); +} + +/* Get color properties for COLOR_DEFAULT */ +GColors * +color_default (void) +{ + return get_color (COLOR_DEFAULT); +} + +/* Get color properties for COLOR_ERROR */ +GColors * +color_error (void) +{ + return get_color (COLOR_ERROR); +} + +/* Get the enumerated color given its equivalent color string. + * + * On error, -1 is returned. + * On success, the enumerated color is returned. */ +static int +get_color_item_enum (const char *str) +{ + return str2enum (CSTM_COLORS, ARRAY_SIZE (CSTM_COLORS), str); +} + +/* Extract color number from the given config string. + * + * On error, -2 is returned. If color is greater than max colors, it aborts. + * On success, the color number is returned. */ +static int +extract_color (char *color) +{ + char *sEnd; + int col = 0; + + if (strncasecmp (color, "color", 5) != 0) + return -2; + + color += 5; + col = strtol (color, &sEnd, 10); + if (color == sEnd || *sEnd != '\0' || errno == ERANGE) + return -2; + /* ensure used color is supported by the terminal */ + if (col > COLORS) + FATAL ("Terminal doesn't support color: %d - max colors: %d", col, COLORS); + + return col; +} + +/* Assign the background and foreground color number from the given + * config string to GColorPair. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +static int +parse_bg_fg_color (GColorPair * pair, const char *value) +{ + char bgcolor[COLOR_STR_LEN] = "", fgcolor[COLOR_STR_LEN] = ""; + int ret = 0; + + if (sscanf (value, "%8[^:]:%8[^ ]", fgcolor, bgcolor) != 2) + return 1; + + if ((pair->bg = extract_color (bgcolor)) == -2) + ret = 1; + + if ((pair->fg = extract_color (fgcolor)) == -2) + ret = 1; + + return ret; +} + +/* Assign color attributes from the given config string to GColors. */ +static void +locate_attr_color (GColors * color, const char *attr) +{ + if (strstr (attr, "bold")) + color->attr |= A_BOLD; + if (strstr (attr, "underline")) + color->attr |= A_UNDERLINE; + if (strstr (attr, "normal")) + color->attr |= A_NORMAL; + if (strstr (attr, "reverse")) + color->attr |= A_REVERSE; + if (strstr (attr, "standout")) + color->attr |= A_REVERSE; + if (strstr (attr, "blink")) + color->attr |= A_BLINK; +} + +/* Parse color attributes from the given config string. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +static int +parse_attr_color (GColors * color, const char *value) +{ + char *line, *ptr, *start; + int ret = 0; + + line = xstrdup (value); + + start = strchr (line, ' '); + if ((!start) || (!*(start + 1))) { + LOG_DEBUG (("attempted to parse color attr: %s\n", value)); + goto clean; + } + + start++; + while (1) { + if ((ptr = strpbrk (start, ", ")) != NULL) + *ptr = 0; + locate_attr_color (color, start); + if (ptr == NULL) + break; + start = ptr + 1; + } + +clean: + free (line); + + return ret; +} + +/* Parse color module from the given config string. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +static int +parse_module_color (GColors * color, const char *value) +{ + char *line = xstrdup (value), *p; + + p = strrchr (line, ' '); + if (!p || !*(p + 1)) { + LOG_DEBUG (("attempted to parse color module: %s\n", value)); + goto clean; + } + + if ((color->module = get_module_enum (p + 1)) == -1) + LOG_DEBUG (("attempted to parse color module: %s\n", value)); + +clean: + free (line); + + return 0; +} + +/* Find a color by item and module attributes on the list of already + * parsed colors. + * + * If color exists, 1 is returned. + * If color does not exist, 1 is returned. */ +static int +find_color_in_list (void *data, void *color) +{ + GColors *new_color = color; + GColors *old_color = data; + + if (old_color->item != new_color->item) + return 0; + if (old_color->module != new_color->module) + return 0; + return 1; +} + +/* Find a color by foreground and background attributes on the list of + * already parsed colors. + * + * If color exists, 1 is returned. + * If color does not exist, 1 is returned. */ +static int +find_pair_in_list (void *data, void *color) +{ + GColorPair *new_color = color; + GColorPair *old_color = data; + + if (old_color->fg != new_color->fg) + return 0; + if (old_color->bg != new_color->bg) + return 0; + return 1; +} + +/* Compare a color item (GColorItem) that has no module with the given needle + * item. + * + * If the items match and with no module, 1 is returned. + * If condition is not satisfied, 0 is returned. */ +static int +find_color_item_in_list (void *data, void *needle) +{ + GColors *color = data; + GColorItem *item = needle; + + return color->item == (GColorItem) (*(int *) item) && color->module == -1; +} + +/* Compare a color item (GColorItem) and module with the given needle item. + * + * If the items match and with no module, 1 is returned. + * If condition is not satisfied, 0 is returned. */ +static int +find_color_item_module_in_list (void *data, void *needle) +{ + GColors *color = data; + GColors *item = needle; + + return color->item == item->item && color->module == item->module; +} + +/* Get color item properties given an item (enumerated). + * + * On error, it aborts. + * On success, the color item properties are returned, or NULL if no match + * found. */ +GColors * +get_color (GColorItem item) +{ + GColorItem normal = COLOR_NORMAL; + GSLList *match = NULL; + + if ((match = list_find (color_list, find_color_item_in_list, &item))) + return (GColors *) match->data; + + if ((match = list_find (color_list, find_color_item_in_list, &normal))) + return (GColors *) match->data; + + /* should not get here */ + FATAL ("Unable to find color item %d", item); +} + +/* Get color item properties given an item (enumerated) and its module. + * + * On error, it aborts. + * On success, the color item properties are returned, or NULL if no match + * found. */ +GColors * +get_color_by_item_module (GColorItem item, GModule module) +{ + GColors *needle = new_gcolors (), *color = NULL; + GSLList *match = NULL; + + needle->module = module; + needle->item = item; + + /* find color for specific item/module pair */ + if ((match = list_find (color_list, find_color_item_module_in_list, needle))) + color = match->data; + + /* attempt to find color by item (fallback) */ + if (!color) + color = get_color (item); + free (needle); + + return color; +} + +/* Parse a color definition line from the config file. + * + * On error, it aborts. + * On success, the color properties are assigned */ +static void +parse_color_line (GColorPair * pair, GColors * color, char *line) +{ + char *val; + int item = 0; + size_t idx; + + /* key */ + idx = strcspn (line, " \t"); + if (strlen (line) == idx) + FATAL ("Malformed color key at line: %s", line); + + line[idx] = '\0'; + if ((item = get_color_item_enum (line)) == -1) + FATAL ("Unable to find color key: %s", line); + + /* value */ + val = line + (idx + 1); + idx = strspn (val, " \t"); + if (strlen (val) == idx) + FATAL ("Malformed color value at line: %s", line); + val = val + idx; + + /* get background/foreground color */ + if (parse_bg_fg_color (pair, val) == 1) + FATAL ("Invalid bg/fg color pairs at: %s %s", line, val); + + if (parse_attr_color (color, val) == 1) + FATAL ("Invalid color attrs at: %s %s", line, val); + + if (parse_module_color (color, val) == 1) + FATAL ("Invalid color module at: %s %s", line, val); + + color->item = item; +} + +/* Attempt to prepend the given color on our color linked list. + * + * On error, or if color already exists, the given color is freed. + * On success, or if not color found, store color properties */ +static void +prepend_color (GColors ** color) +{ + GSLList *match = NULL; + + /* create a list of colors if one does not exist */ + if (color_list == NULL) { + color_list = list_create (*color); + } + /* attempt to find the given color data type (by item and attributes) in + * our color list */ + else if ((match = list_find (color_list, find_color_in_list, *color))) { + /* if found, free the recently malloc'd color data type and use + * existing color */ + free (*color); + *color = NULL; + } else { + /* not a dup, so insert the new color in our color list */ + color_list = list_insert_prepend (color_list, *color); + } +} + +/* Parse a color definition line from the config file and store it on a signle + * linked-list. + * + * On error, it aborts. + * On success, the color properties are stored */ +static void +parse_color (char *line) +{ + GSLList *match = NULL; + GColors *color = NULL; + GColorPair *pair = NULL; + + color = new_gcolors (); + pair = new_gcolorpair (); + + /* extract a color pair and color attributes from the given config line */ + parse_color_line (pair, color, line); + + /* create a pair color list if one doesn't exist */ + if (pair_list == NULL) { + pair_list = list_create (pair); + } + /* attempt to find the given color pair in our pair list */ + else if ((match = list_find (pair_list, find_pair_in_list, pair))) { + /* pair found, use new pair and free existing one */ + free (pair); + pair = (GColorPair *) match->data; + } + /* pair not found, use it then */ + else { + pair->idx += list_count (pair_list); + pair_list = list_insert_prepend (pair_list, pair); + } + /* set color pair */ + color->pair = pair; + prepend_color (&color); + + /* if no color pair was found, then we init the color pair */ + if (!match && color) + init_pair (color->pair->idx, color->pair->fg, color->pair->bg); + + free (line); +} + +/* Iterate over all color definitions in the config file. + * + * On error, it aborts. + * On success, the color properties are parsed and stored */ +static void +parse_colors (const char *colors[], size_t n) +{ + char *line; + size_t i; + + for (i = 0; i < n; ++i) { + line = strdup (colors[i]); + /* did not find a valid format */ + if (strchr (line, ':') == NULL) { + free (line); + continue; + } + parse_color (line); + } +} + +/* Use default color definitions if necessary. */ +static void +add_default_colors (void) +{ + /* no colors */ + if (COLORS < 8) + parse_colors (nocolors, ARRAY_SIZE (nocolors)); + + /* 256 colors, and no color scheme set or set to monokai */ + if (COLORS == 256 && (!conf.color_scheme || conf.color_scheme == MONOKAI)) + parse_colors (colors256_monokai, ARRAY_SIZE (colors256_monokai)); + /* otherwise use 16 colors scheme */ + else if (COLORS > 16) { + if (conf.color_scheme == STD_GREEN) + parse_colors (colors256_green, ARRAY_SIZE (colors256_green)); + else + parse_colors (colors256_mono, ARRAY_SIZE (colors256_mono)); + } + + /* 8 colors */ + if (COLORS >= 8 && COLORS <= 16) { + if (conf.color_scheme == STD_GREEN) + parse_colors (colors8_green, ARRAY_SIZE (colors8_green)); + else + parse_colors (colors8_mono, ARRAY_SIZE (colors8_mono)); + } +} + +/* Entry point to parse color definitions or use default colors */ +void +set_colors (int force) +{ + errno = 0; + if (conf.color_idx > 0 && !force) + parse_colors (conf.colors, conf.color_idx); + else + add_default_colors (); +} diff --git a/src/goaccess++/src/color.h b/src/goaccess++/src/color.h new file mode 100644 index 0000000..5f54354 --- /dev/null +++ b/src/goaccess++/src/color.h @@ -0,0 +1,113 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef COLOR_H_INCLUDED +#define COLOR_H_INCLUDED + +#define COLOR_STR_LEN 9 + +/* Color Items/Fields */ +typedef enum CSTM_COLORS +{ + COLOR_NORMAL, + COLOR_MTRC_HITS, + COLOR_MTRC_VISITORS, + COLOR_MTRC_DATA, + COLOR_MTRC_BW, + COLOR_MTRC_AVGTS, + COLOR_MTRC_CUMTS, + COLOR_MTRC_MAXTS, + COLOR_MTRC_PROT, + COLOR_MTRC_MTHD, + COLOR_MTRC_HITS_PERC, + COLOR_MTRC_HITS_PERC_MAX, + COLOR_MTRC_VISITORS_PERC, + COLOR_MTRC_VISITORS_PERC_MAX, + COLOR_PANEL_COLS, + COLOR_BARS, + COLOR_ERROR, + COLOR_SELECTED, + COLOR_PANEL_ACTIVE, + COLOR_PANEL_HEADER, + COLOR_PANEL_DESC, + COLOR_OVERALL_LBLS, + COLOR_OVERALL_VALS, + COLOR_OVERALL_PATH, + COLOR_ACTIVE_LABEL, + COLOR_BG, + COLOR_DEFAULT, + COLOR_PROGRESS, +} GColorItem; + +/* Default Color Schemes */ +typedef enum SCHEMES +{ + NO_COLOR, + MONOCHROME, + STD_GREEN, + MONOKAI, +} GShemes; + +#include "commons.h" + +/* Each color properties */ +typedef struct GColorPair_ +{ + short idx; /* color pair index identifier */ + short fg; /* foreground color */ + short bg; /* background color */ +} GColorPair; + +/* Color */ +typedef struct GColors_ +{ + GColorItem item; /* screen item */ + GColorPair *pair; /* color pair */ + int attr; /* color attributes, e.g., bold */ + short module; /* panel */ +} GColors; + +GColors *color_default (void); +GColors *color_error (void); +GColors *color_overall_lbls (void); +GColors *color_overall_path (void); +GColors *color_overall_vals (void); +GColors *color_panel_active (void); +GColors *color_panel_desc (void); +GColors *color_panel_header (void); +GColors *color_progress (void); +GColors *color_selected (void); +GColors *get_color_by_item_module (GColorItem item, GModule module); +GColors *get_color (GColorItem item); +GColors *get_color_normal (void); +void free_color_lists (void); +void set_colors (int force); +void set_normal_color (void); + +#endif // for #ifndef COLOR_H diff --git a/src/goaccess++/src/color.o b/src/goaccess++/src/color.o new file mode 100644 index 0000000000000000000000000000000000000000..a37de4a533be0b8a5a3e3a8a6a5e8acfbf4faee7 GIT binary patch literal 31096 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 W?RPPxWy;?Yw=;cJ<i%5+|9=2&p3~d_ literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/commons.c b/src/goaccess++/src/commons.c new file mode 100644 index 0000000..cc7d45d --- /dev/null +++ b/src/goaccess++/src/commons.c @@ -0,0 +1,504 @@ +/** + * commons.c -- holds different data types + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <unistd.h> + +#include "commons.h" + +#include "error.h" +#include "labels.h" +#include "settings.h" +#include "util.h" +#include "xmalloc.h" + +/* processing time */ +time_t end_proc; +time_t timestamp; +time_t start_proc; + +/* list of available modules/panels */ +int module_list[TOTAL_MODULES] = {[0 ... TOTAL_MODULES - 1] = -1 }; + +/* Get number of items per panel to parse. + * + * The number of items per panel is returned. */ +int +get_max_choices (void) +{ + char *csv = NULL, *json = NULL, *html = NULL; + int max = MAX_CHOICES; + + /* no max choices, return defaults */ + if (conf.max_items <= 0) + return conf.real_time_html ? MAX_CHOICES_RT : MAX_CHOICES; + + /* TERM */ + if (!conf.output_stdout) + return conf.max_items > MAX_CHOICES ? MAX_CHOICES : conf.max_items; + + /* REAL-TIME STDOUT */ + /* real time HTML, display max rt choices */ + if (conf.real_time_html) + return conf.max_items > MAX_CHOICES_RT ? MAX_CHOICES_RT : conf.max_items; + + /* STDOUT */ + /* CSV - allow n amount of choices */ + if (find_output_type (&csv, "csv", 1) == 0) + max = conf.max_items; + /* JSON - allow n amount of choices */ + if (find_output_type (&json, "json", 1) == 0 && conf.max_items > 0) + max = conf.max_items; + /* HTML - takes priority on cases where multiple outputs were given. Note that + * we check either for an .html extension or we assume not extension was passed + * via -o and therefore we are redirecting the output to a file. */ + if (find_output_type (&html, "html", 1) == 0 || conf.output_format_idx == 0) + max = conf.max_items > MAX_CHOICES ? MAX_CHOICES : conf.max_items; + + free (csv); + free (html); + free (json); + + return max; +} + +/* Calculate a percentage. + * + * The percentage is returned. */ +float +get_percentage (unsigned long long total, unsigned long long hit) +{ + return (total == 0 ? 0 : (((float) hit) / total) * 100); +} + +/* Display the storage being used. */ +void +display_storage (void) +{ +#ifdef TCB_BTREE + fprintf (stdout, "%s\n", BUILT_WITH_TCBTREE); +#elif TCB_MEMHASH + fprintf (stdout, "%s\n", BUILT_WITH_TCMEMHASH); +#else + fprintf (stdout, "%s\n", BUILT_WITH_DEFHASH); +#endif +} + +/* Display the path of the default configuration file when `-p` is not used */ +void +display_default_config_file (void) +{ + char *path = get_config_file_path (); + + if (!path) { + fprintf (stdout, "%s\n", ERR_NODEF_CONF_FILE); + fprintf (stdout, "%s `-p /path/goaccess.conf`\n", ERR_NODEF_CONF_FILE_DESC); + } else { + fprintf (stdout, "%s\n", path); + free (path); + } +} + +/* Display the current version. */ +void +display_version (void) +{ + fprintf (stdout, "GoAccess - %s.\n", GO_VERSION); + fprintf (stdout, "%s: http://goaccess.io\n", INFO_MORE_INFO); + fprintf (stdout, "Copyright (C) 2009-2016 by Gerardo Orellana\n"); + fprintf (stdout, "\nBuild configure arguments:\n"); +#ifdef DEBUG + fprintf (stdout, " --enable-debug\n"); +#endif +#ifdef HAVE_NCURSESW_NCURSES_H + fprintf (stdout, " --enable-utf8\n"); +#endif +#ifdef HAVE_LIBGEOIP + fprintf (stdout, " --enable-geoip=legacy\n"); +#endif +#ifdef HAVE_LIBMAXMINDDB + fprintf (stdout, " --enable-geoip=mmdb\n"); +#endif +#ifdef TCB_MEMHASH + fprintf (stdout, " --enable-tcb=memhash\n"); +#endif +#ifdef TCB_BTREE + fprintf (stdout, " --enable-tcb=btree\n"); +#endif +#if defined(TCB_MEMHASH) || defined(TCB_BTREE) +#ifndef HAVE_ZLIB + fprintf (stdout, " --disable-zlib\n"); +#endif +#ifndef HAVE_BZ2 + fprintf (stdout, " --disable-bzip\n"); +#endif +#endif +#ifdef WITH_GETLINE + fprintf (stdout, " --with-getline\n"); +#endif +#ifdef HAVE_LIBSSL + fprintf (stdout, " --with-openssl\n"); +#endif +} + +/* Get the enumerated value given a string. + * + * On error, -1 is returned. + * On success, the enumerated module value is returned. */ +int +str2enum (const GEnum map[], int len, const char *str) +{ + int i; + + for (i = 0; i < len; ++i) { + if (!strcmp (str, map[i].str)) + return map[i].idx; + } + + return -1; +} + +/* Get the enumerated module value given a module string. + * + * On error, -1 is returned. + * On success, the enumerated module value is returned. */ +int +get_module_enum (const char *str) +{ + /* *INDENT-OFF* */ + /* String modules to enumerated modules */ + GEnum enum_modules[] = { + {"VISITORS" , VISITORS} , + {"REQUESTS" , REQUESTS} , + {"REQUESTS_STATIC" , REQUESTS_STATIC} , + {"NOT_FOUND" , NOT_FOUND} , + {"HOSTS" , HOSTS} , + {"OS" , OS} , + {"BROWSERS" , BROWSERS} , + {"VISIT_TIMES" , VISIT_TIMES} , + {"VIRTUAL_HOSTS" , VIRTUAL_HOSTS} , + {"REFERRERS" , REFERRERS} , + {"REFERRING_SITES" , REFERRING_SITES} , + {"KEYPHRASES" , KEYPHRASES} , + {"STATUS_CODES" , STATUS_CODES} , + {"REMOTE_USER" , REMOTE_USER} , +#ifdef HAVE_GEOLOCATION + {"GEO_LOCATION" , GEO_LOCATION} , +#endif + }; + /* *INDENT-ON* */ + + return str2enum (enum_modules, ARRAY_SIZE (enum_modules), str); +} + +/* Instantiate a new GAgents structure. + * + * On success, the newly malloc'd structure is returned. */ +GAgents * +new_gagents (void) +{ + GAgents *agents = xmalloc (sizeof (GAgents)); + memset (agents, 0, sizeof *agents); + + return agents; +} + +/* Instantiate a new GAgentItem structure. + * + * On success, the newly malloc'd structure is returned. */ +GAgentItem * +new_gagent_item (uint32_t size) +{ + GAgentItem *item = xcalloc (size, sizeof (GAgentItem)); + + return item; +} + +/* Clean the array of agents. */ +void +free_agents_array (GAgents * agents) +{ + int i; + + if (agents == NULL) + return; + + /* clean stuff up */ + for (i = 0; i < agents->size; ++i) + free (agents->items[i].agent); + if (agents->items) + free (agents->items); + free (agents); +} + +/* Determine if the given date format is a timestamp. + * + * On error, 0 is returned. + * On success, 1 is returned. */ +int +has_timestamp (const char *fmt) +{ + if (strcmp ("%s", fmt) == 0 || strcmp ("%f", fmt) == 0) + return 1; + return 0; +} + +/* Determine if the given module is set to be enabled. + * + * If enabled, 1 is returned, else 0 is returned. */ +int +enable_panel (GModule mod) +{ + int i, module; + + for (i = 0; i < conf.enable_panel_idx; ++i) { + if ((module = get_module_enum (conf.enable_panels[i])) == -1) + continue; + if (mod == (unsigned int) module) { + return 1; + } + } + + return 0; +} + +/* Determine if the given module is set to be ignored. + * + * If ignored, 1 is returned, else 0 is returned. */ +int +ignore_panel (GModule mod) +{ + int i, module; + + for (i = 0; i < conf.ignore_panel_idx; ++i) { + if ((module = get_module_enum (conf.ignore_panels[i])) == -1) + continue; + if (mod == (unsigned int) module) { + return 1; + } + } + + return 0; +} + +/* Get the number of available modules/panels. + * + * The number of modules available is returned. */ +uint32_t +get_num_modules (void) +{ + size_t idx = 0; + uint32_t num = 0; + + FOREACH_MODULE (idx, module_list) { + num++; + } + + return num; +} + +/* Get the index from the module_list given a module. + * + * If the module is not within the array, -1 is returned. + * If the module is within the array, the index is returned. */ +int +get_module_index (int module) +{ + size_t idx = 0; + + FOREACH_MODULE (idx, module_list) { + if (module_list[idx] == module) + return idx; + } + + return -1; +} + +/* Remove the given module from the module_list array. + * + * If the module is not within the array, 1 is returned. + * If the module is within the array, it is removed from the array and + * 0 is returned. */ +int +remove_module (GModule module) +{ + int idx = get_module_index (module); + if (idx == -1) + return 1; + + if (idx < TOTAL_MODULES - 1) + memmove (&module_list[idx], &module_list[idx + 1], + ((TOTAL_MODULES - 1) - idx) * sizeof (module_list[0])); + module_list[TOTAL_MODULES - 1] = -1; + + return 0; +} + +/* Find the next module given the current module. + * + * The next available module in the array is returned. */ +int +get_next_module (GModule module) +{ + int next = get_module_index (module) + 1; + + if (next == TOTAL_MODULES || module_list[next] == -1) + return module_list[0]; + + return module_list[next]; +} + +/* Find the previous module given the current module. + * + * The previous available module in the array is returned. */ +int +get_prev_module (GModule module) +{ + int i; + int next = get_module_index (module) - 1; + + if (next >= 0 && module_list[next] != -1) + return module_list[next]; + + for (i = TOTAL_MODULES - 1; i >= 0; i--) { + if (module_list[i] != -1) { + return module_list[i]; + } + } + + return 0; +} + +/* Perform some additional tasks to panels before they are being + * parsed. + * + * Note: This overwrites --enable-panel since it assumes there's + * truly nothing to do with the panel */ +void +verify_panels (void) +{ + int ignore_panel_idx = conf.ignore_panel_idx; + + /* Remove virtual host panel if no '%v' within log format */ + if (!conf.log_format) + return; + + if (!strstr (conf.log_format, "%v") && ignore_panel_idx < TOTAL_MODULES) { + if (str_inarray ("VIRTUAL_HOSTS", conf.ignore_panels, ignore_panel_idx) < 0) + remove_module (VIRTUAL_HOSTS); + } + if (!strstr (conf.log_format, "%e") && ignore_panel_idx < TOTAL_MODULES) { + if (str_inarray ("REMOTE_USER", conf.ignore_panels, ignore_panel_idx) < 0) + remove_module (REMOTE_USER); + } +} + +/* Build an array of available modules (ignores listed panels). + * + * If there are no modules enabled, 0 is returned. + * On success, the first enabled module is returned. */ +int +init_modules (void) +{ + GModule module; + int i; + + /* init - terminating with -1 */ + for (module = 0; module < TOTAL_MODULES; ++module) + module_list[module] = -1; + + for (i = 0, module = 0; module < TOTAL_MODULES; ++module) { + if (!ignore_panel (module) || enable_panel (module)) { + module_list[i++] = module; + } + } + + return module_list[0] > -1 ? module_list[0] : 0; +} + +/* Get the logs size. + * + * If log was piped (from stdin), 0 is returned. + * On success, it adds up all log sizes and its value is returned. + * if --log-size was specified, it will be returned explicitly */ +intmax_t +get_log_sizes (void) +{ + int i; + off_t size = 0; + + /* --log-size */ + if (conf.log_size > 0) + return (intmax_t) conf.log_size; + + for (i = 0; i < conf.filenames_idx; ++i) { + if (conf.filenames[i][0] == '-' && conf.filenames[i][1] == '\0') + size += 0; + else + size += file_size (conf.filenames[i]); + } + + return (intmax_t) size; +} + +/* Get the log sources used. + * + * On success, a newly malloc'd string containing the log source either + * from filename(s) and/or STDIN is returned. */ +char * +get_log_source_str (int max_len) +{ + char *str = xstrdup (""); + int i, len = 0; + + for (i = 0; i < conf.filenames_idx; ++i) { + if (conf.filenames[i][0] == '-' && conf.filenames[i][1] == '\0') + append_str (&str, "STDIN"); + else + append_str (&str, conf.filenames[i]); + if (i != conf.filenames_idx - 1) + append_str (&str, "; "); + } + + len = strlen (str); + if (max_len > 0 && len > 0 && len > max_len) { + str[max_len - 3] = 0; + append_str (&str, "..."); + } + + return str; +} diff --git a/src/goaccess++/src/commons.h b/src/goaccess++/src/commons.h new file mode 100644 index 0000000..9b01dc3 --- /dev/null +++ b/src/goaccess++/src/commons.h @@ -0,0 +1,272 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#ifndef COMMONS_H_INCLUDED +#define COMMONS_H_INCLUDED + +#include <time.h> +#include <stdint.h> + +/* Remove the __attribute__ stuff when the compiler is not GCC. */ +#if !__GNUC__ +#define __attribute__(x) /**/ +#endif +#define GO_UNUSED __attribute__((unused)) +#define GO_VERSION "1.3" +#define GO_WEBSITE "http://goaccess.io/" +struct tm *now_tm; + +/* common char array buffer size */ +#define INIT_BUF_SIZE 1024 + +/* total number of modules */ +#ifdef HAVE_GEOLOCATION +#define TOTAL_MODULES 15 +#else +#define TOTAL_MODULES 14 +#endif + +/* maximum number of items within a panel */ +#define MAX_CHOICES 366 +/* real-time */ +#define MAX_CHOICES_RT 50 + +/* date and time length - e.g., 2016/12/12 12:12:12 -0600 */ +#define DATE_TIME 25 + 1 +/* date length - e.g., 2016/12/12 */ +#define DATE_LEN 10 + 1 +/* date length - e.g., 12:12:12 */ +#define TIME_LEN 8 + 1 +/* hour + ':' + min length - e.g., 12:12 */ +#define HRMI_LEN 4 + 1 + 1 + +#define YR_FMT "%Y" +#define MO_FMT "%M" +#define DT_FMT "%d" + +/* maximum protocol string length */ +#define REQ_PROTO_LEN 9 + +#define IGNORE_LEVEL_PANEL 1 +#define IGNORE_LEVEL_REQ 2 + +/* Type of IP */ +typedef enum +{ + TYPE_IPINV, + TYPE_IPV4, + TYPE_IPV6 +} GTypeIP; + +/* Type of Modules */ +typedef enum MODULES +{ + VISITORS, + REQUESTS, + REQUESTS_STATIC, + NOT_FOUND, + HOSTS, + OS, + BROWSERS, + VISIT_TIMES, + VIRTUAL_HOSTS, + REFERRERS, + REFERRING_SITES, + KEYPHRASES, + STATUS_CODES, + REMOTE_USER, +#ifdef HAVE_GEOLOCATION + GEO_LOCATION, +#endif +} GModule; + +/* Metric totals. These are metrics that have a percent value and are + * calculated values. */ +typedef struct GPercTotals_ +{ + int hits; /* total valid hits */ + int visitors; /* total visitors */ + uint64_t bw; /* total bandwidth */ +} GPercTotals; + +/* Metrics within GHolder or GDashData */ +typedef struct GMetrics +{ + /* metric id can be used to identify + * a specific data field */ + uint8_t id; + char *data; + char *method; + char *protocol; + + float hits_perc; + float visitors_perc; + float bw_perc; + + int hits; + int visitors; + + /* holder has a numeric value, while + * dashboard has a displayable string value */ + union + { + char *sbw; + uint64_t nbw; + } bw; + + /* holder has a numeric value, while + * dashboard has a displayable string value */ + union + { + char *sts; + uint64_t nts; + } avgts; + + /* holder has a numeric value, while + * dashboard has a displayable string value */ + union + { + char *sts; + uint64_t nts; + } cumts; + + /* holder has a numeric value, while + * dashboard has a displayable string value */ + union + { + char *sts; + uint64_t nts; + } maxts; +} GMetrics; + +/* Holder sub item */ +typedef struct GSubItem_ +{ + GModule module; + GMetrics *metrics; + struct GSubItem_ *prev; + struct GSubItem_ *next; +} GSubItem; + +/* Double linked-list of sub items */ +typedef struct GSubList_ +{ + int size; + struct GSubItem_ *head; + struct GSubItem_ *tail; +} GSubList; + +/* Holder item */ +typedef struct GHolderItem_ +{ + GSubList *sub_list; + GMetrics *metrics; +} GHolderItem; + +/* Holder of GRawData */ +typedef struct GHolder_ +{ + GHolderItem *items; /* holder items */ + GModule module; /* current module */ + int idx; /* holder index */ + int holder_size; /* number of allocated items */ + int ht_size; /* size of the hash table/store */ + int sub_items_size; /* number of sub items */ +} GHolder; + +/* Enum-to-string */ +typedef struct GEnum_ +{ + const char *str; + int idx; +} GEnum; + +/* A metric can contain a root/data/uniq node id */ +typedef struct GDataMap_ +{ + int data; + int root; +} GDataMap; + +typedef struct GAgentItem_ +{ + char *agent; +} GAgentItem; + +typedef struct GAgents_ +{ + int size; + struct GAgentItem_ *items; +} GAgents; + +#define FOREACH_MODULE(item, array) \ + for (; (item < ARRAY_SIZE(array)) && array[item] != -1; ++item) + +/* Processing time */ +extern time_t end_proc; +extern time_t timestamp; +extern time_t start_proc; + +/* list of available modules/panels */ +extern int module_list[TOTAL_MODULES]; + +/* *INDENT-OFF* */ +GAgentItem *new_gagent_item (uint32_t size); +GAgents *new_gagents (void); +void free_agents_array (GAgents *agents); + +float get_percentage (unsigned long long total, unsigned long long hit); +int get_max_choices (void); +int get_module_enum (const char *str); +int has_timestamp (const char *fmt); +int str2enum (const GEnum map[], int len, const char *str); + +int enable_panel (GModule mod); +int get_module_index (int module); +int get_next_module (GModule module); +int get_prev_module (GModule module); +int ignore_panel (GModule mod); +int init_modules (void); +int remove_module(GModule module); +uint32_t get_num_modules (void); +void verify_panels (void); + +char *get_log_source_str (int max_len); +intmax_t get_log_sizes (void); + +void display_default_config_file (void); +void display_storage (void); +void display_version (void); +/* *INDENT-ON* */ + +#endif diff --git a/src/goaccess++/src/commons.o b/src/goaccess++/src/commons.o new file mode 100644 index 0000000000000000000000000000000000000000..f0716b9621b6e77b866e23a018a3bac24c62657b GIT binary patch literal 13024 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/config.h b/src/goaccess++/src/config.h new file mode 100644 index 0000000..ae8e1c5 --- /dev/null +++ b/src/goaccess++/src/config.h @@ -0,0 +1,325 @@ +/* src/config.h. Generated from config.h.in by configure. */ +/* src/config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#define ENABLE_NLS 1 + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define to 1 if you have the <arpa/inet.h> header file. */ +#define HAVE_ARPA_INET_H 1 + +/* "Build using BZ2" */ +/* #undef HAVE_BZ2 */ + +/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYCURRENT */ + +/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ + +/* Define to 1 if you have the <curses.h> header file. */ +/* #undef HAVE_CURSES_H */ + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#define HAVE_DCGETTEXT 1 + +/* Define to 1 if you have the <fcntl.h> header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `floor' function. */ +/* #undef HAVE_FLOOR */ + +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +#define HAVE_FSEEKO 1 + +/* Build using GeoIP. */ +#define HAVE_GEOLOCATION 1 + +/* Define to 1 if you have the `gethostbyaddr' function. */ +#define HAVE_GETHOSTBYADDR 1 + +/* Define to 1 if you have the `gethostbyname' function. */ +#define HAVE_GETHOSTBYNAME 1 + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#define HAVE_GETTEXT 1 + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define if you have the iconv() function and it works. */ +/* #undef HAVE_ICONV */ + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `crypto' library (-lcrypto). */ +/* #undef HAVE_LIBCRYPTO */ + +/* Define to 1 if you have the `GeoIP' library (-lGeoIP). */ +#define HAVE_LIBGEOIP 1 + +/* Define to 1 if you have the `intl' library (-lintl). */ +/* #undef HAVE_LIBINTL */ + +/* Define to 1 if you have the `maxminddb' library (-lmaxminddb). */ +/* #undef HAVE_LIBMAXMINDDB */ + +/* Define to 1 if you have the `ncurses' library (-lncurses). */ +/* #undef HAVE_LIBNCURSES */ + +/* "ncursesw is present." */ +#define HAVE_LIBNCURSESW 1 + +/* Define to 1 if you have the `nsl' library (-lnsl). */ +#define HAVE_LIBNSL 1 + +/* Define to 1 if you have the `pthread' library (-lpthread). */ +#define HAVE_LIBPTHREAD 1 + +/* Define to 1 if you have the `socket' library (-lsocket). */ +/* #undef HAVE_LIBSOCKET */ + +/* Define to 1 if you have the `ssl' library (-lssl). */ +/* #undef HAVE_LIBSSL */ + +/* Define to 1 if you have the `tokyocabinet' library (-ltokyocabinet). */ +/* #undef HAVE_LIBTOKYOCABINET */ + +/* Define to 1 if you have the <limits.h> header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the <locale.h> header file. */ +#define HAVE_LOCALE_H 1 + +/* Define to 1 if you have the `malloc' function. */ +#define HAVE_MALLOC 1 + +/* Define to 1 if you have the `memmove' function. */ +#define HAVE_MEMMOVE 1 + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `memset' function. */ +#define HAVE_MEMSET 1 + +/* Define to 1 if you have the `mkfifo' function. */ +#define HAVE_MKFIFO 1 + +/* Define to 1 if you have the <ncursesw/ncurses.h> header file. */ +#define HAVE_NCURSESW_NCURSES_H 1 + +/* Define to 1 if you have the <ncurses.h> header file. */ +#define HAVE_NCURSES_H 1 + +/* Define to 1 if you have the <ncurses/ncurses.h> header file. */ +/* #undef HAVE_NCURSES_NCURSES_H */ + +/* Define to 1 if you have the <netdb.h> header file. */ +#define HAVE_NETDB_H 1 + +/* Define to 1 if you have the <netinet/in.h> header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if the system has the type `ptrdiff_t'. */ +#define HAVE_PTRDIFF_T 1 + +/* Define to 1 if you have the `realloc' function. */ +#define HAVE_REALLOC 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define to 1 if you have the `regcomp' function. */ +#define HAVE_REGCOMP 1 + +/* Define to 1 if you have the `select' function. */ +#define HAVE_SELECT 1 + +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 + +/* Define to 1 if you have the `socket' function. */ +#define HAVE_SOCKET 1 + +/* Define to 1 if `stat' has the bug that it succeeds when given the + zero-length file name argument. */ +/* #undef HAVE_STAT_EMPTY_STRING_BUG */ + +/* Define to 1 if you have the <stddef.h> header file. */ +#define HAVE_STDDEF_H 1 + +/* Define to 1 if you have the <stdint.h> header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strcasecmp' function. */ +#define HAVE_STRCASECMP 1 + +/* Define to 1 if you have the `strchr' function. */ +#define HAVE_STRCHR 1 + +/* Define to 1 if you have the `strcspn' function. */ +#define HAVE_STRCSPN 1 + +/* Define to 1 if you have the `strdup' function. */ +#define HAVE_STRDUP 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the `strftime' function. */ +#define HAVE_STRFTIME 1 + +/* Define to 1 if you have the <strings.h> header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strncasecmp' function. */ +#define HAVE_STRNCASECMP 1 + +/* Define to 1 if you have the `strpbrk' function. */ +#define HAVE_STRPBRK 1 + +/* Define to 1 if you have the `strrchr' function. */ +#define HAVE_STRRCHR 1 + +/* Define to 1 if you have the `strspn' function. */ +#define HAVE_STRSPN 1 + +/* Define to 1 if you have the `strstr' function. */ +#define HAVE_STRSTR 1 + +/* Define to 1 if you have the `strtol' function. */ +#define HAVE_STRTOL 1 + +/* Define to 1 if you have the `strtoull' function. */ +#define HAVE_STRTOULL 1 + +/* Define to 1 if you have the <sys/socket.h> header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/time.h> header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +/* "Build using ZLIB" */ +/* #undef HAVE_ZLIB */ + +/* Define to 1 if `lstat' dereferences a symlink specified with a trailing + slash. */ +#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +/* #undef NO_MINUS_C_MINUS_O */ + +/* Name of package */ +#define PACKAGE "goaccess" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "goaccess@prosoftcorp.com" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "goaccess" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "goaccess 1.3" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "goaccess" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "http://goaccess.io" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "1.3" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* "Build using on-disk B+ Tree database" */ +/* #undef TCB_BTREE */ + +/* "Build using on-memory hash database" */ +/* #undef TCB_MEMHASH */ + +/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ +#define TIME_WITH_SYS_TIME 1 + +/* Define to 1 if your <sys/time.h> declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Version number of package */ +#define VERSION "1.3" + +/* Build using GNU getline. */ +/* #undef WITH_GETLINE */ + +/* Debug option */ +/* #undef _DEBUG */ + +/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +/* #undef _LARGEFILE_SOURCE */ + +/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT32_T */ + +/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT64_T */ + +/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT8_T */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to the type of a signed integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +/* #undef int64_t */ + +/* Define to the type of a signed integer type of width exactly 8 bits if such + a type exists and the standard includes do not define it. */ +/* #undef int8_t */ + +/* Define to `long int' if <sys/types.h> does not define. */ +/* #undef off_t */ + +/* Define to `unsigned int' if <sys/types.h> does not define. */ +/* #undef size_t */ + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint32_t */ + +/* Define to the type of an unsigned integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint64_t */ + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint8_t */ diff --git a/src/goaccess++/src/config.h.in b/src/goaccess++/src/config.h.in new file mode 100644 index 0000000..5d81edc --- /dev/null +++ b/src/goaccess++/src/config.h.in @@ -0,0 +1,324 @@ +/* src/config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* Define to 1 if you have the `alarm' function. */ +#undef HAVE_ALARM + +/* Define to 1 if you have the <arpa/inet.h> header file. */ +#undef HAVE_ARPA_INET_H + +/* "Build using BZ2" */ +#undef HAVE_BZ2 + +/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT + +/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + +/* Define to 1 if you have the <curses.h> header file. */ +#undef HAVE_CURSES_H + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the <fcntl.h> header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if you have the `floor' function. */ +#undef HAVE_FLOOR + +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +#undef HAVE_FSEEKO + +/* Build using GeoIP. */ +#undef HAVE_GEOLOCATION + +/* Define to 1 if you have the `gethostbyaddr' function. */ +#undef HAVE_GETHOSTBYADDR + +/* Define to 1 if you have the `gethostbyname' function. */ +#undef HAVE_GETHOSTBYNAME + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define to 1 if you have the `gettimeofday' function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the `crypto' library (-lcrypto). */ +#undef HAVE_LIBCRYPTO + +/* Define to 1 if you have the `GeoIP' library (-lGeoIP). */ +#undef HAVE_LIBGEOIP + +/* Define to 1 if you have the `intl' library (-lintl). */ +#undef HAVE_LIBINTL + +/* Define to 1 if you have the `maxminddb' library (-lmaxminddb). */ +#undef HAVE_LIBMAXMINDDB + +/* Define to 1 if you have the `ncurses' library (-lncurses). */ +#undef HAVE_LIBNCURSES + +/* "ncursesw is present." */ +#undef HAVE_LIBNCURSESW + +/* Define to 1 if you have the `nsl' library (-lnsl). */ +#undef HAVE_LIBNSL + +/* Define to 1 if you have the `pthread' library (-lpthread). */ +#undef HAVE_LIBPTHREAD + +/* Define to 1 if you have the `socket' library (-lsocket). */ +#undef HAVE_LIBSOCKET + +/* Define to 1 if you have the `ssl' library (-lssl). */ +#undef HAVE_LIBSSL + +/* Define to 1 if you have the `tokyocabinet' library (-ltokyocabinet). */ +#undef HAVE_LIBTOKYOCABINET + +/* Define to 1 if you have the <limits.h> header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if you have the <locale.h> header file. */ +#undef HAVE_LOCALE_H + +/* Define to 1 if you have the `malloc' function. */ +#undef HAVE_MALLOC + +/* Define to 1 if you have the `memmove' function. */ +#undef HAVE_MEMMOVE + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `memset' function. */ +#undef HAVE_MEMSET + +/* Define to 1 if you have the `mkfifo' function. */ +#undef HAVE_MKFIFO + +/* Define to 1 if you have the <ncursesw/ncurses.h> header file. */ +#undef HAVE_NCURSESW_NCURSES_H + +/* Define to 1 if you have the <ncurses.h> header file. */ +#undef HAVE_NCURSES_H + +/* Define to 1 if you have the <ncurses/ncurses.h> header file. */ +#undef HAVE_NCURSES_NCURSES_H + +/* Define to 1 if you have the <netdb.h> header file. */ +#undef HAVE_NETDB_H + +/* Define to 1 if you have the <netinet/in.h> header file. */ +#undef HAVE_NETINET_IN_H + +/* Define to 1 if the system has the type `ptrdiff_t'. */ +#undef HAVE_PTRDIFF_T + +/* Define to 1 if you have the `realloc' function. */ +#undef HAVE_REALLOC + +/* Define to 1 if you have the `realpath' function. */ +#undef HAVE_REALPATH + +/* Define to 1 if you have the `regcomp' function. */ +#undef HAVE_REGCOMP + +/* Define to 1 if you have the `select' function. */ +#undef HAVE_SELECT + +/* Define to 1 if you have the `setlocale' function. */ +#undef HAVE_SETLOCALE + +/* Define to 1 if you have the `socket' function. */ +#undef HAVE_SOCKET + +/* Define to 1 if `stat' has the bug that it succeeds when given the + zero-length file name argument. */ +#undef HAVE_STAT_EMPTY_STRING_BUG + +/* Define to 1 if you have the <stddef.h> header file. */ +#undef HAVE_STDDEF_H + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `strcasecmp' function. */ +#undef HAVE_STRCASECMP + +/* Define to 1 if you have the `strchr' function. */ +#undef HAVE_STRCHR + +/* Define to 1 if you have the `strcspn' function. */ +#undef HAVE_STRCSPN + +/* Define to 1 if you have the `strdup' function. */ +#undef HAVE_STRDUP + +/* Define to 1 if you have the `strerror' function. */ +#undef HAVE_STRERROR + +/* Define to 1 if you have the `strftime' function. */ +#undef HAVE_STRFTIME + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the `strncasecmp' function. */ +#undef HAVE_STRNCASECMP + +/* Define to 1 if you have the `strpbrk' function. */ +#undef HAVE_STRPBRK + +/* Define to 1 if you have the `strrchr' function. */ +#undef HAVE_STRRCHR + +/* Define to 1 if you have the `strspn' function. */ +#undef HAVE_STRSPN + +/* Define to 1 if you have the `strstr' function. */ +#undef HAVE_STRSTR + +/* Define to 1 if you have the `strtol' function. */ +#undef HAVE_STRTOL + +/* Define to 1 if you have the `strtoull' function. */ +#undef HAVE_STRTOULL + +/* Define to 1 if you have the <sys/socket.h> header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/time.h> header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* "Build using ZLIB" */ +#undef HAVE_ZLIB + +/* Define to 1 if `lstat' dereferences a symlink specified with a trailing + slash. */ +#undef LSTAT_FOLLOWS_SLASHED_SYMLINK + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +#undef NO_MINUS_C_MINUS_O + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* "Build using on-disk B+ Tree database" */ +#undef TCB_BTREE + +/* "Build using on-memory hash database" */ +#undef TCB_MEMHASH + +/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ +#undef TIME_WITH_SYS_TIME + +/* Define to 1 if your <sys/time.h> declares `struct tm'. */ +#undef TM_IN_SYS_TIME + +/* Version number of package */ +#undef VERSION + +/* Build using GNU getline. */ +#undef WITH_GETLINE + +/* Debug option */ +#undef _DEBUG + +/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +#undef _LARGEFILE_SOURCE + +/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT32_T + +/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT64_T + +/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT8_T + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to the type of a signed integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +#undef int64_t + +/* Define to the type of a signed integer type of width exactly 8 bits if such + a type exists and the standard includes do not define it. */ +#undef int8_t + +/* Define to `long int' if <sys/types.h> does not define. */ +#undef off_t + +/* Define to `unsigned int' if <sys/types.h> does not define. */ +#undef size_t + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +#undef uint32_t + +/* Define to the type of an unsigned integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +#undef uint64_t + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +#undef uint8_t diff --git a/src/goaccess++/src/csv.c b/src/goaccess++/src/csv.c new file mode 100644 index 0000000..5ccce0b --- /dev/null +++ b/src/goaccess++/src/csv.c @@ -0,0 +1,327 @@ +/** + * output.c -- output csv to the standard output stream + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#define _LARGEFILE_SOURCE +#define _LARGEFILE64_SOURCE +#define _FILE_OFFSET_BITS 64 + +#include <ctype.h> + +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <time.h> +#include <unistd.h> +#include <inttypes.h> + +#include "csv.h" + +#ifdef HAVE_LIBTOKYOCABINET +#include "tcabdb.h" +#else +#include "gkhash.h" +#endif + +#include "error.h" +#include "ui.h" +#include "util.h" + +/* Panel output */ +typedef struct GPanel_ +{ + GModule module; + void (*render) (FILE * fp, GHolder * h, GPercTotals totals); +} GPanel; + +static void print_csv_data (FILE * fp, GHolder * h, GPercTotals totals); + +/* *INDENT-OFF* */ +/* A function pointer for each panel */ +static GPanel paneling[] = { + {VISITORS , print_csv_data} , + {REQUESTS , print_csv_data} , + {REQUESTS_STATIC , print_csv_data} , + {NOT_FOUND , print_csv_data} , + {HOSTS , print_csv_data} , + {OS , print_csv_data} , + {BROWSERS , print_csv_data} , + {VISIT_TIMES , print_csv_data} , + {VIRTUAL_HOSTS , print_csv_data} , + {REFERRERS , print_csv_data} , + {REFERRING_SITES , print_csv_data} , + {KEYPHRASES , print_csv_data} , + {STATUS_CODES , print_csv_data} , + {REMOTE_USER , print_csv_data} , +#ifdef HAVE_GEOLOCATION + {GEO_LOCATION , print_csv_data} , +#endif +}; +/* *INDENT-ON* */ + +/* Get a panel from the GPanel structure given a module. + * + * On error, or if not found, NULL is returned. + * On success, the panel value is returned. */ +static GPanel * +panel_lookup (GModule module) +{ + int i, num_panels = ARRAY_SIZE (paneling); + + for (i = 0; i < num_panels; i++) { + if (paneling[i].module == module) + return &paneling[i]; + } + return NULL; +} + +/* Iterate over the string and escape CSV output. */ +static void +escape_cvs_output (FILE * fp, char *s) +{ + while (*s) { + switch (*s) { + case '"': + fprintf (fp, "\"\""); + break; + default: + fputc (*s, fp); + break; + } + s++; + } +} + +/* Output metrics. + * + * On success, outputs item value. */ +static void +print_csv_metric_block (FILE * fp, GMetrics * nmetrics) +{ + /* basic metrics */ + fprintf (fp, "\"%d\",", nmetrics->hits); + fprintf (fp, "\"%4.2f%%\",", nmetrics->hits_perc); + fprintf (fp, "\"%d\",", nmetrics->visitors); + fprintf (fp, "\"%4.2f%%\",", nmetrics->visitors_perc); + + /* bandwidth */ + if (conf.bandwidth) { + fprintf (fp, "\"%lld\",", (long long) nmetrics->bw.nbw); + fprintf (fp, "\"%4.2f%%\",", nmetrics->bw_perc); + } + + /* time served metrics */ + if (conf.serve_usecs) { + fprintf (fp, "\"%lld\",", (long long) nmetrics->avgts.nts); + fprintf (fp, "\"%lld\",", (long long) nmetrics->cumts.nts); + fprintf (fp, "\"%lld\",", (long long) nmetrics->maxts.nts); + } + + /* request method */ + if (conf.append_method && nmetrics->method) + fprintf (fp, "\"%s\"", nmetrics->method); + fprintf (fp, ","); + + /* request protocol */ + if (conf.append_protocol && nmetrics->protocol) + fprintf (fp, "\"%s\"", nmetrics->protocol); + fprintf (fp, ","); + + /* data field */ + fprintf (fp, "\""); + escape_cvs_output (fp, nmetrics->data); + fprintf (fp, "\"\r\n"); +} + +/* Output a sublist (double linked-list) items for a particular parent node. + * + * On error, it exits early. + * On success, outputs item value. */ +static void +print_csv_sub_items (FILE * fp, GHolder * h, int idx, GPercTotals totals) +{ + GMetrics *nmetrics; + GSubList *sub_list = h->items[idx].sub_list; + GSubItem *iter; + + int i = 0; + + if (sub_list == NULL) + return; + + for (iter = sub_list->head; iter; iter = iter->next, i++) { + set_data_metrics (iter->metrics, &nmetrics, totals); + + fprintf (fp, "\"%d\",", i); /* idx */ + fprintf (fp, "\"%d\",", idx); /* parent idx */ + fprintf (fp, "\"%s\",", module_to_id (h->module)); + + /* output metrics */ + print_csv_metric_block (fp, nmetrics); + free (nmetrics); + } +} + +/* Output first-level items. + * + * On success, outputs item value. */ +static void +print_csv_data (FILE * fp, GHolder * h, GPercTotals totals) +{ + GMetrics *nmetrics; + int i; + + for (i = 0; i < h->idx; i++) { + set_data_metrics (h->items[i].metrics, &nmetrics, totals); + + fprintf (fp, "\"%d\",", i); /* idx */ + fprintf (fp, ","); /* no parent */ + fprintf (fp, "\"%s\",", module_to_id (h->module)); + + /* output metrics */ + print_csv_metric_block (fp, nmetrics); + + if (h->sub_items_size) + print_csv_sub_items (fp, h, i, totals); + + free (nmetrics); + } +} + +#pragma GCC diagnostic ignored "-Wformat-nonliteral" +/* Output general statistics information. */ +static void +print_csv_summary (FILE * fp, GLog * glog) +{ + char now[DATE_TIME]; + char *source = NULL; + const char *fmt; + int i = 0, total = 0; + long long t = 0LL; + + generate_time (); + strftime (now, DATE_TIME, "%Y-%m-%d %H:%M:%S %z", now_tm); + + /* generated date time */ + fmt = "\"%d\",,\"%s\",,,,,,,,\"%s\",\"%s\"\r\n"; + fprintf (fp, fmt, i++, GENER_ID, now, OVERALL_DATETIME); + + /* total requests */ + fmt = "\"%d\",,\"%s\",,,,,,,,\"%d\",\"%s\"\r\n"; + total = glog->processed; + fprintf (fp, fmt, i++, GENER_ID, total, OVERALL_REQ); + + /* valid requests */ + fmt = "\"%d\",,\"%s\",,,,,,,,\"%d\",\"%s\"\r\n"; + total = glog->valid; + fprintf (fp, fmt, i++, GENER_ID, total, OVERALL_VALID); + + /* invalid requests */ + total = glog->invalid; + fprintf (fp, fmt, i++, GENER_ID, total, OVERALL_FAILED); + + /* generated time */ + fmt = "\"%d\",,\"%s\",,,,,,,,\"%lld\",\"%s\"\r\n"; + t = (long long) end_proc - start_proc; + fprintf (fp, fmt, i++, GENER_ID, t, OVERALL_GENTIME); + + /* visitors */ + fmt = "\"%d\",,\"%s\",,,,,,,,\"%d\",\"%s\"\r\n"; + total = ht_get_size_uniqmap (VISITORS); + fprintf (fp, fmt, i++, GENER_ID, total, OVERALL_VISITORS); + + /* files */ + total = ht_get_size_datamap (REQUESTS); + fprintf (fp, fmt, i++, GENER_ID, total, OVERALL_FILES); + + /* excluded hits */ + total = glog->excluded_ip; + fprintf (fp, fmt, i++, GENER_ID, total, OVERALL_EXCL_HITS); + + /* referrers */ + total = ht_get_size_datamap (REFERRERS); + fprintf (fp, fmt, i++, GENER_ID, total, OVERALL_REF); + + /* not found */ + total = ht_get_size_datamap (NOT_FOUND); + fprintf (fp, fmt, i++, GENER_ID, total, OVERALL_NOTFOUND); + + /* static files */ + total = ht_get_size_datamap (REQUESTS_STATIC); + fprintf (fp, fmt, i++, GENER_ID, total, OVERALL_STATIC); + + /* log size */ + fmt = "\"%d\",,\"%s\",,,,,,,,\"%jd\",\"%s\"\r\n"; + fprintf (fp, fmt, i++, GENER_ID, (intmax_t) get_log_sizes (), + OVERALL_LOGSIZE); + + /* bandwidth */ + fmt = "\"%d\",,\"%s\",,,,,,,,\"%llu\",\"%s\"\r\n"; + fprintf (fp, fmt, i++, GENER_ID, glog->resp_size, OVERALL_BANDWIDTH); + + /* log path */ + source = get_log_source_str (0); + fmt = "\"%d\",,\"%s\",,,,,,,,\"%s\",\"%s\"\r\n"; + fprintf (fp, fmt, i++, GENER_ID, source, OVERALL_LOG); + free (source); +} + +#pragma GCC diagnostic warning "-Wformat-nonliteral" + +/* Entry point to generate a a csv report writing it to the fp */ +void +output_csv (GLog * glog, GHolder * holder, const char *filename) +{ + GModule module; + GPercTotals totals; + const GPanel *panel = NULL; + size_t idx = 0; + FILE *fp; + + fp = (filename != NULL) ? fopen (filename, "w") : stdout; + if (!fp) + FATAL ("Unable to open CSV file: %s.", strerror (errno)); + + if (!conf.no_csv_summary) + print_csv_summary (fp, glog); + + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + + if (!(panel = panel_lookup (module))) + continue; + + set_module_totals (module, &totals); + panel->render (fp, holder + module, totals); + } + + fclose (fp); +} diff --git a/src/goaccess++/src/csv.h b/src/goaccess++/src/csv.h new file mode 100644 index 0000000..bde8143 --- /dev/null +++ b/src/goaccess++/src/csv.h @@ -0,0 +1,43 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#ifndef CSV_H_INCLUDED +#define CSV_H_INCLUDED + +#include <stdio.h> +#include "parser.h" +#include "settings.h" + +void output_csv (GLog * glog, GHolder * holder, const char *filename); + +#endif diff --git a/src/goaccess++/src/csv.o b/src/goaccess++/src/csv.o new file mode 100644 index 0000000000000000000000000000000000000000..83d7a530763f71d1fe2cd411549f32f292a392de GIT binary patch literal 12168 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/d3js.h b/src/goaccess++/src/d3js.h new file mode 100644 index 0000000..cc55532 --- /dev/null +++ b/src/goaccess++/src/d3js.h @@ -0,0 +1,13744 @@ +const char d3_js[151140] = { + 0x21, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x26, 0x26, 0x28, 0x6e, 0x2e, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x7c, 0x7c, 0x6e, + 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x7c, 0x7c, + 0x6e, 0x29, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x26, 0x26, 0x28, + 0x6e, 0x2e, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x44, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x26, 0x26, 0x6e, 0x2e, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x69, 0x65, 0x77, + 0x7c, 0x7c, 0x6e, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x26, 0x26, 0x6e, 0x7c, 0x7c, 0x6e, 0x2e, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x56, 0x69, 0x65, 0x77, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x3e, 0x6e, 0x3f, 0x2d, 0x31, 0x3a, 0x6e, 0x3e, 0x74, 0x3f, + 0x31, 0x3a, 0x6e, 0x3e, 0x3d, 0x74, 0x3f, 0x30, 0x3a, 0x30, 0x2f, + 0x30, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x3d, 0x6e, 0x3f, 0x30, + 0x2f, 0x30, 0x3a, 0x2b, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x21, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, + 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x7b, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, + 0x75, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3c, 0x33, 0x26, 0x26, 0x28, 0x72, 0x3d, 0x30, 0x29, 0x2c, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x34, 0x26, 0x26, 0x28, 0x75, + 0x3d, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3b, + 0x75, 0x3e, 0x72, 0x3b, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, + 0x3d, 0x72, 0x2b, 0x75, 0x3e, 0x3e, 0x3e, 0x31, 0x3b, 0x6e, 0x28, + 0x74, 0x5b, 0x69, 0x5d, 0x2c, 0x65, 0x29, 0x3c, 0x30, 0x3f, 0x72, + 0x3d, 0x69, 0x2b, 0x31, 0x3a, 0x75, 0x3d, 0x69, 0x7d, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x7d, 0x2c, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x33, 0x26, + 0x26, 0x28, 0x72, 0x3d, 0x30, 0x29, 0x2c, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3c, 0x34, 0x26, 0x26, 0x28, 0x75, 0x3d, 0x74, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3b, 0x75, 0x3e, 0x72, 0x3b, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x72, 0x2b, 0x75, + 0x3e, 0x3e, 0x3e, 0x31, 0x3b, 0x6e, 0x28, 0x74, 0x5b, 0x69, 0x5d, + 0x2c, 0x65, 0x29, 0x3e, 0x30, 0x3f, 0x75, 0x3d, 0x69, 0x3a, 0x72, + 0x3d, 0x69, 0x2b, 0x31, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x72, 0x7d, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x31, 0x3b, 0x6e, 0x2a, 0x74, 0x25, 0x31, + 0x3b, 0x29, 0x74, 0x2a, 0x3d, 0x31, 0x30, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x29, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x28, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x74, 0x79, 0x70, 0x65, 0x2c, 0x65, 0x2c, 0x7b, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x74, 0x5b, 0x65, 0x5d, 0x2c, 0x65, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x21, 0x31, 0x7d, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6c, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x3d, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x6e, 0x2b, 0x3d, + 0x22, 0x22, 0x29, 0x3d, 0x3d, 0x3d, 0x70, 0x61, 0x7c, 0x7c, 0x6e, + 0x5b, 0x30, 0x5d, 0x3d, 0x3d, 0x3d, 0x76, 0x61, 0x3f, 0x76, 0x61, + 0x2b, 0x6e, 0x3a, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x66, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x28, 0x6e, 0x2b, 0x3d, 0x22, 0x22, 0x29, 0x5b, + 0x30, 0x5d, 0x3d, 0x3d, 0x3d, 0x76, 0x61, 0x3f, 0x6e, 0x2e, 0x73, + 0x6c, 0x69, 0x63, 0x65, 0x28, 0x31, 0x29, 0x3a, 0x6e, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x68, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x28, + 0x6e, 0x29, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, + 0x6e, 0x3d, 0x73, 0x28, 0x6e, 0x29, 0x29, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x26, 0x26, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x5b, 0x6e, + 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x70, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x5b, + 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x29, + 0x6e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x66, 0x28, 0x74, 0x29, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x28, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x30, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x29, 0x2b, 0x2b, 0x6e, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x28, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x20, + 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x29, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, 0x31, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x21, 0x30, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x5f, 0x3d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x28, 0x6e, 0x75, 0x6c, 0x6c, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x79, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x4d, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, + 0x3d, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x2c, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3d, 0x3d, 0x3d, + 0x74, 0x3f, 0x6e, 0x3a, 0x72, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x78, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x3b, 0x74, 0x3d, + 0x74, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x41, 0x74, 0x28, 0x30, 0x29, + 0x2e, 0x74, 0x6f, 0x55, 0x70, 0x70, 0x65, 0x72, 0x43, 0x61, 0x73, + 0x65, 0x28, 0x29, 0x2b, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, + 0x28, 0x31, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x65, 0x3d, 0x30, 0x2c, 0x72, 0x3d, 0x64, 0x61, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x72, 0x3e, 0x65, 0x3b, 0x2b, + 0x2b, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x64, + 0x61, 0x5b, 0x65, 0x5d, 0x2b, 0x74, 0x3b, 0x69, 0x66, 0x28, 0x75, + 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x75, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x62, 0x28, 0x29, 0x7b, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x28, 0x29, 0x7b, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x28, + 0x6e, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x28, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x2c, 0x72, 0x3d, 0x65, 0x2c, 0x75, 0x3d, 0x2d, + 0x31, 0x2c, 0x69, 0x3d, 0x72, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x2b, 0x2b, 0x75, 0x3c, 0x69, 0x3b, 0x29, 0x28, 0x74, + 0x3d, 0x72, 0x5b, 0x75, 0x5d, 0x2e, 0x6f, 0x6e, 0x29, 0x26, 0x26, + 0x74, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x5b, 0x5d, 0x2c, 0x72, 0x3d, + 0x6e, 0x65, 0x77, 0x20, 0x6c, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x2e, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x75, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x69, 0x2c, 0x6f, 0x3d, 0x72, 0x2e, 0x67, 0x65, + 0x74, 0x28, 0x74, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x3f, 0x6f, 0x26, + 0x26, 0x6f, 0x2e, 0x6f, 0x6e, 0x3a, 0x28, 0x6f, 0x26, 0x26, 0x28, + 0x6f, 0x2e, 0x6f, 0x6e, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x65, + 0x3d, 0x65, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x30, 0x2c, + 0x69, 0x3d, 0x65, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x66, + 0x28, 0x6f, 0x29, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, + 0x28, 0x65, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x69, 0x2b, + 0x31, 0x29, 0x29, 0x2c, 0x72, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x28, 0x74, 0x29, 0x29, 0x2c, 0x75, 0x26, 0x26, 0x65, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x2e, 0x73, 0x65, 0x74, 0x28, + 0x74, 0x2c, 0x7b, 0x6f, 0x6e, 0x3a, 0x75, 0x7d, 0x29, 0x29, 0x2c, + 0x6e, 0x29, 0x7d, 0x2c, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x28, 0x29, 0x7b, 0x74, 0x61, 0x2e, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6b, + 0x28, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x6e, 0x2c, 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x3b, 0x6e, 0x3d, 0x74, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x3b, 0x29, 0x74, 0x3d, 0x6e, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x45, 0x28, 0x6e, + 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x5f, 0x2c, 0x65, 0x3d, 0x30, 0x2c, + 0x72, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x65, + 0x3c, 0x72, 0x3b, 0x29, 0x74, 0x5b, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x5b, 0x65, 0x5d, 0x5d, 0x3d, 0x77, 0x28, + 0x74, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x2e, 0x6f, 0x66, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x75, 0x29, 0x7b, 0x74, 0x72, 0x79, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x3d, 0x75, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x3b, 0x75, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x3d, 0x6e, 0x2c, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x3d, 0x75, 0x2c, 0x74, 0x5b, 0x75, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x5d, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x65, 0x2c, + 0x72, 0x29, 0x7d, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x7b, + 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x3d, 0x69, 0x7d, + 0x7d, 0x7d, 0x2c, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x41, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x79, 0x61, 0x28, 0x6e, 0x2c, 0x5f, 0x61, + 0x29, 0x2c, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x4e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, + 0x3f, 0x6e, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, + 0x61, 0x28, 0x6e, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x29, 0x7d, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, + 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x3f, 0x6e, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x78, 0x61, 0x28, 0x6e, 0x2c, + 0x74, 0x68, 0x69, 0x73, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7a, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x28, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x53, 0x28, 0x6e, 0x2e, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x2c, 0x6e, 0x2e, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x75, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, + 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x4e, 0x53, 0x28, 0x6e, 0x2e, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x2c, 0x6e, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2c, + 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, + 0x74, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x65, 0x3f, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x6e, 0x29, + 0x3a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x6e, 0x2c, 0x65, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x74, + 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x3b, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x65, 0x3f, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x53, 0x28, 0x6e, + 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, 0x6e, 0x2e, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x29, 0x3a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, + 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x4e, 0x53, 0x28, 0x6e, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, + 0x6e, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2c, 0x65, 0x29, 0x7d, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3d, 0x74, 0x61, + 0x2e, 0x6e, 0x73, 0x2e, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x79, + 0x28, 0x6e, 0x29, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x74, + 0x3f, 0x6e, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x3f, 0x72, 0x3a, + 0x65, 0x3a, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x74, + 0x3f, 0x6e, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x3f, 0x61, 0x3a, + 0x6f, 0x3a, 0x6e, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x3f, 0x69, + 0x3a, 0x75, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x71, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2e, 0x74, 0x72, 0x69, 0x6d, 0x28, 0x29, 0x2e, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x2f, 0x5c, 0x73, + 0x2b, 0x2f, 0x67, 0x2c, 0x22, 0x20, 0x22, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x65, 0x77, + 0x20, 0x52, 0x65, 0x67, 0x45, 0x78, 0x70, 0x28, 0x22, 0x28, 0x3f, + 0x3a, 0x5e, 0x7c, 0x5c, 0x5c, 0x73, 0x2b, 0x29, 0x22, 0x2b, 0x74, + 0x61, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x28, 0x6e, + 0x29, 0x2b, 0x22, 0x28, 0x3f, 0x3a, 0x5c, 0x5c, 0x73, 0x2b, 0x7c, + 0x24, 0x29, 0x22, 0x2c, 0x22, 0x67, 0x22, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x6e, 0x2b, 0x22, + 0x22, 0x29, 0x2e, 0x74, 0x72, 0x69, 0x6d, 0x28, 0x29, 0x2e, 0x73, + 0x70, 0x6c, 0x69, 0x74, 0x28, 0x2f, 0x5e, 0x7c, 0x5c, 0x73, 0x2b, + 0x2f, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x52, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x2d, 0x31, + 0x3b, 0x2b, 0x2b, 0x65, 0x3c, 0x75, 0x3b, 0x29, 0x6e, 0x5b, 0x65, + 0x5d, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x74, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, + 0x2d, 0x31, 0x2c, 0x72, 0x3d, 0x74, 0x2e, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3b, 0x2b, 0x2b, 0x65, 0x3c, + 0x75, 0x3b, 0x29, 0x6e, 0x5b, 0x65, 0x5d, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x72, 0x29, 0x7d, 0x6e, 0x3d, 0x54, 0x28, 0x6e, 0x29, + 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x44, 0x29, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x75, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, + 0x65, 0x6f, 0x66, 0x20, 0x74, 0x3f, 0x72, 0x3a, 0x65, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x44, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x4c, 0x28, 0x6e, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x2c, 0x72, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x75, 0x3d, 0x65, 0x2e, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x29, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x72, 0x3f, 0x75, 0x2e, 0x61, 0x64, 0x64, 0x28, + 0x6e, 0x29, 0x3a, 0x75, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x28, 0x6e, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x65, + 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x28, 0x22, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x29, + 0x7c, 0x7c, 0x22, 0x22, 0x3b, 0x72, 0x3f, 0x28, 0x74, 0x2e, 0x6c, + 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x2c, + 0x74, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x28, 0x75, 0x29, 0x7c, 0x7c, + 0x65, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x28, 0x22, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, + 0x2c, 0x71, 0x28, 0x75, 0x2b, 0x22, 0x20, 0x22, 0x2b, 0x6e, 0x29, + 0x29, 0x29, 0x3a, 0x65, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x22, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x22, 0x2c, 0x71, 0x28, 0x75, 0x2e, 0x72, 0x65, 0x70, + 0x6c, 0x61, 0x63, 0x65, 0x28, 0x74, 0x2c, 0x22, 0x20, 0x22, 0x29, + 0x29, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x50, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, + 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x6e, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x29, 0x7b, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, + 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3d, 0x74, 0x2e, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, + 0x3d, 0x3d, 0x72, 0x3f, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x6e, 0x29, 0x3a, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, + 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x28, 0x6e, 0x2c, 0x72, 0x2c, 0x65, 0x29, 0x7d, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x74, + 0x3f, 0x72, 0x3a, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x74, 0x3f, 0x69, 0x3a, 0x75, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x55, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, + 0x29, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x5b, 0x6e, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x5b, 0x6e, 0x5d, 0x3d, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3d, 0x74, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, + 0x3d, 0x65, 0x3f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x5b, 0x6e, 0x5d, 0x3a, 0x74, 0x68, 0x69, 0x73, + 0x5b, 0x6e, 0x5d, 0x3d, 0x65, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x74, 0x3f, 0x65, + 0x3a, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x74, 0x3f, + 0x75, 0x3a, 0x72, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6a, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2c, 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x55, 0x52, 0x49, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3f, 0x74, 0x2e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x4e, 0x53, 0x28, 0x65, 0x2c, 0x6e, 0x29, 0x3a, 0x74, 0x2e, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x28, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x4e, 0x53, 0x28, 0x6e, 0x2e, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x2c, 0x6e, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x29, + 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, + 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x3f, 0x6e, 0x3a, 0x28, 0x6e, 0x3d, + 0x74, 0x61, 0x2e, 0x6e, 0x73, 0x2e, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x66, 0x79, 0x28, 0x6e, 0x29, 0x29, 0x2e, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x3f, 0x65, 0x3a, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x46, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x6e, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x3b, 0x6e, 0x26, 0x26, + 0x6e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x69, + 0x6c, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x48, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x7b, 0x5f, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x3a, 0x6e, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4f, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2c, 0x6e, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x49, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x7c, 0x7c, + 0x28, 0x6e, 0x3d, 0x65, 0x29, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x26, 0x26, 0x65, 0x3f, 0x6e, + 0x28, 0x74, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, + 0x2c, 0x65, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, + 0x29, 0x3a, 0x21, 0x74, 0x2d, 0x21, 0x65, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x59, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x3d, 0x30, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3b, 0x72, 0x3e, 0x65, 0x3b, 0x65, 0x2b, 0x2b, + 0x29, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x75, 0x2c, + 0x69, 0x3d, 0x6e, 0x5b, 0x65, 0x5d, 0x2c, 0x6f, 0x3d, 0x30, 0x2c, + 0x61, 0x3d, 0x69, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, + 0x61, 0x3e, 0x6f, 0x3b, 0x6f, 0x2b, 0x2b, 0x29, 0x28, 0x75, 0x3d, + 0x69, 0x5b, 0x6f, 0x5d, 0x29, 0x26, 0x26, 0x74, 0x28, 0x75, 0x2c, + 0x6f, 0x2c, 0x65, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x5a, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x79, 0x61, 0x28, 0x6e, 0x2c, 0x53, 0x61, 0x29, 0x2c, + 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x56, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, + 0x65, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x72, 0x2c, 0x75, 0x2c, + 0x69, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x2c, 0x61, 0x3d, + 0x6e, 0x5b, 0x69, 0x5d, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x2c, 0x63, 0x3d, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x69, 0x21, 0x3d, 0x65, 0x26, 0x26, + 0x28, 0x65, 0x3d, 0x69, 0x2c, 0x74, 0x3d, 0x30, 0x29, 0x2c, 0x75, + 0x3e, 0x3d, 0x74, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x75, 0x2b, 0x31, + 0x29, 0x3b, 0x21, 0x28, 0x6f, 0x3d, 0x61, 0x5b, 0x74, 0x5d, 0x29, + 0x26, 0x26, 0x2b, 0x2b, 0x74, 0x3c, 0x63, 0x3b, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x58, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x6f, 0x5d, 0x3b, 0x74, + 0x26, 0x26, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x74, + 0x2e, 0x24, 0x29, 0x2c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x5b, 0x6f, 0x5d, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x63, 0x28, 0x74, 0x2c, 0x72, + 0x61, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x29, 0x3b, 0x72, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, + 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x65, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x68, 0x69, 0x73, + 0x5b, 0x6f, 0x5d, 0x3d, 0x75, 0x2c, 0x75, 0x2e, 0x24, 0x3d, 0x65, + 0x29, 0x2c, 0x75, 0x2e, 0x5f, 0x3d, 0x74, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x3d, 0x6e, 0x65, 0x77, 0x20, + 0x52, 0x65, 0x67, 0x45, 0x78, 0x70, 0x28, 0x22, 0x5e, 0x5f, 0x5f, + 0x6f, 0x6e, 0x28, 0x5b, 0x5e, 0x2e, 0x5d, 0x2b, 0x29, 0x22, 0x2b, + 0x74, 0x61, 0x2e, 0x72, 0x65, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x28, + 0x6e, 0x29, 0x2b, 0x22, 0x24, 0x22, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x69, 0x66, 0x28, 0x74, 0x3d, 0x72, 0x2e, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x28, 0x65, 0x29, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x75, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x72, + 0x5d, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x65, 0x72, 0x28, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x75, + 0x2c, 0x75, 0x2e, 0x24, 0x29, 0x2c, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x72, 0x5d, 0x7d, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x22, 0x5f, 0x5f, 0x6f, 0x6e, + 0x22, 0x2b, 0x6e, 0x2c, 0x61, 0x3d, 0x6e, 0x2e, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x4f, 0x66, 0x28, 0x22, 0x2e, 0x22, 0x29, 0x2c, 0x63, + 0x3d, 0x24, 0x3b, 0x61, 0x3e, 0x30, 0x26, 0x26, 0x28, 0x6e, 0x3d, + 0x6e, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x30, 0x2c, 0x61, + 0x29, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x6b, 0x61, + 0x2e, 0x67, 0x65, 0x74, 0x28, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6c, 0x26, 0x26, 0x28, 0x6e, 0x3d, 0x6c, + 0x2c, 0x63, 0x3d, 0x42, 0x29, 0x2c, 0x61, 0x3f, 0x74, 0x3f, 0x75, + 0x3a, 0x72, 0x3a, 0x74, 0x3f, 0x62, 0x3a, 0x69, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x24, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x74, 0x61, 0x2e, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x3b, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x3d, 0x65, 0x2c, 0x74, 0x5b, 0x30, 0x5d, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, + 0x3b, 0x74, 0x72, 0x79, 0x7b, 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x74, 0x29, 0x7d, 0x66, + 0x69, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x7b, 0x74, 0x61, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x3d, 0x72, 0x7d, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x24, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3b, 0x72, 0x26, + 0x26, 0x28, 0x72, 0x3d, 0x3d, 0x3d, 0x74, 0x7c, 0x7c, 0x38, 0x26, + 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x44, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x29, 0x7c, 0x7c, 0x65, 0x2e, + 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x2c, 0x6e, 0x29, 0x7d, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x28, + 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x22, 0x2e, + 0x64, 0x72, 0x61, 0x67, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x2d, 0x22, 0x2b, 0x20, 0x2b, 0x2b, 0x41, 0x61, 0x2c, 0x75, + 0x3d, 0x22, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x22, 0x2b, 0x72, 0x2c, + 0x69, 0x3d, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x28, 0x74, 0x28, 0x65, 0x29, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, + 0x74, 0x6f, 0x75, 0x63, 0x68, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x2b, + 0x72, 0x2c, 0x53, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x64, 0x72, + 0x61, 0x67, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x2b, 0x72, 0x2c, + 0x53, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x2b, 0x72, 0x2c, + 0x53, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, + 0x3d, 0x45, 0x61, 0x26, 0x26, 0x28, 0x45, 0x61, 0x3d, 0x22, 0x6f, + 0x6e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x22, 0x69, 0x6e, 0x20, 0x65, 0x3f, 0x21, 0x31, 0x3a, 0x78, + 0x28, 0x65, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2c, 0x22, 0x75, + 0x73, 0x65, 0x72, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x22, 0x29, + 0x29, 0x2c, 0x45, 0x61, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6f, + 0x3d, 0x6e, 0x28, 0x65, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, + 0x2c, 0x61, 0x3d, 0x6f, 0x5b, 0x45, 0x61, 0x5d, 0x3b, 0x6f, 0x5b, + 0x45, 0x61, 0x5d, 0x3d, 0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x7d, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x69, 0x66, 0x28, + 0x69, 0x2e, 0x6f, 0x6e, 0x28, 0x72, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, + 0x29, 0x2c, 0x45, 0x61, 0x26, 0x26, 0x28, 0x6f, 0x5b, 0x45, 0x61, + 0x5d, 0x3d, 0x61, 0x29, 0x2c, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x69, 0x2e, 0x6f, 0x6e, 0x28, 0x75, 0x2c, 0x6e, + 0x75, 0x6c, 0x6c, 0x29, 0x7d, 0x3b, 0x69, 0x2e, 0x6f, 0x6e, 0x28, + 0x75, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x53, 0x28, 0x29, 0x2c, 0x74, 0x28, 0x29, 0x7d, 0x2c, + 0x21, 0x30, 0x29, 0x2c, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x28, 0x74, 0x2c, 0x30, 0x29, 0x7d, 0x7d, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4a, 0x28, + 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x73, 0x26, + 0x26, 0x28, 0x65, 0x3d, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x73, 0x5b, 0x30, + 0x5d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x6e, 0x2e, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x53, 0x56, 0x47, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x7c, 0x7c, 0x6e, 0x3b, 0x69, 0x66, 0x28, + 0x72, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x56, 0x47, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x75, 0x3d, 0x72, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, + 0x56, 0x47, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x29, 0x3b, 0x69, + 0x66, 0x28, 0x30, 0x3e, 0x4e, 0x61, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x3d, 0x74, 0x28, 0x6e, 0x29, 0x3b, 0x69, 0x66, 0x28, + 0x69, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x58, 0x7c, 0x7c, + 0x69, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x59, 0x29, 0x7b, + 0x72, 0x3d, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x28, 0x22, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x29, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x28, 0x22, 0x73, 0x76, 0x67, 0x22, 0x29, + 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x7b, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x22, 0x61, 0x62, 0x73, 0x6f, + 0x6c, 0x75, 0x74, 0x65, 0x22, 0x2c, 0x74, 0x6f, 0x70, 0x3a, 0x30, + 0x2c, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x30, 0x2c, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x2c, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x30, 0x2c, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x3a, 0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x7d, 0x2c, 0x22, 0x69, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x72, 0x5b, 0x30, 0x5d, 0x5b, + 0x30, 0x5d, 0x2e, 0x67, 0x65, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, + 0x6e, 0x43, 0x54, 0x4d, 0x28, 0x29, 0x3b, 0x4e, 0x61, 0x3d, 0x21, + 0x28, 0x6f, 0x2e, 0x66, 0x7c, 0x7c, 0x6f, 0x2e, 0x65, 0x29, 0x2c, + 0x72, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x29, 0x7d, + 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4e, 0x61, 0x3f, + 0x28, 0x75, 0x2e, 0x78, 0x3d, 0x65, 0x2e, 0x70, 0x61, 0x67, 0x65, + 0x58, 0x2c, 0x75, 0x2e, 0x79, 0x3d, 0x65, 0x2e, 0x70, 0x61, 0x67, + 0x65, 0x59, 0x29, 0x3a, 0x28, 0x75, 0x2e, 0x78, 0x3d, 0x65, 0x2e, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x58, 0x2c, 0x75, 0x2e, 0x79, + 0x3d, 0x65, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x59, 0x29, + 0x2c, 0x75, 0x3d, 0x75, 0x2e, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x28, 0x6e, + 0x2e, 0x67, 0x65, 0x74, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, + 0x54, 0x4d, 0x28, 0x29, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x65, 0x28, 0x29, 0x29, 0x2c, 0x5b, 0x75, 0x2e, 0x78, 0x2c, 0x75, + 0x2e, 0x79, 0x5d, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, 0x6e, + 0x2e, 0x67, 0x65, 0x74, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x74, + 0x28, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x65, + 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x58, 0x2d, 0x61, 0x2e, + 0x6c, 0x65, 0x66, 0x74, 0x2d, 0x6e, 0x2e, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x2c, 0x65, 0x2e, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x59, 0x2d, 0x61, 0x2e, 0x74, 0x6f, 0x70, + 0x2d, 0x6e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, + 0x70, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x47, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, + 0x65, 0x73, 0x5b, 0x30, 0x5d, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x4b, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3e, 0x30, 0x3f, 0x31, 0x3a, + 0x30, 0x3e, 0x6e, 0x3f, 0x2d, 0x31, 0x3a, 0x30, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x51, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x28, 0x74, 0x5b, 0x30, 0x5d, 0x2d, 0x6e, 0x5b, 0x30, 0x5d, 0x29, + 0x2a, 0x28, 0x65, 0x5b, 0x31, 0x5d, 0x2d, 0x6e, 0x5b, 0x31, 0x5d, + 0x29, 0x2d, 0x28, 0x74, 0x5b, 0x31, 0x5d, 0x2d, 0x6e, 0x5b, 0x31, + 0x5d, 0x29, 0x2a, 0x28, 0x65, 0x5b, 0x30, 0x5d, 0x2d, 0x6e, 0x5b, + 0x30, 0x5d, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6e, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3e, 0x31, 0x3f, 0x30, 0x3a, 0x2d, + 0x31, 0x3e, 0x6e, 0x3f, 0x71, 0x61, 0x3a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x61, 0x63, 0x6f, 0x73, 0x28, 0x6e, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x74, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3e, + 0x31, 0x3f, 0x52, 0x61, 0x3a, 0x2d, 0x31, 0x3e, 0x6e, 0x3f, 0x2d, + 0x52, 0x61, 0x3a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x73, 0x69, + 0x6e, 0x28, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x65, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x28, 0x28, 0x6e, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x65, 0x78, 0x70, 0x28, 0x6e, 0x29, 0x29, 0x2d, 0x31, + 0x2f, 0x6e, 0x29, 0x2f, 0x32, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x28, 0x6e, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x65, 0x78, 0x70, 0x28, 0x6e, 0x29, 0x29, 0x2b, + 0x31, 0x2f, 0x6e, 0x29, 0x2f, 0x32, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x74, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x28, 0x6e, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x65, 0x78, 0x70, 0x28, 0x32, 0x2a, 0x6e, + 0x29, 0x29, 0x2d, 0x31, 0x29, 0x2f, 0x28, 0x6e, 0x2b, 0x31, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, + 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x28, 0x6e, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, + 0x28, 0x6e, 0x2f, 0x32, 0x29, 0x29, 0x2a, 0x6e, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x74, 0x28, 0x29, + 0x7b, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x6f, 0x66, 0x20, + 0x61, 0x74, 0x3f, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x68, 0x3d, + 0x2b, 0x6e, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x3d, 0x2b, + 0x74, 0x2c, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x6c, 0x3d, 0x2b, 0x65, 0x29, 0x29, 0x3a, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3c, 0x32, 0x3f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x6f, 0x66, 0x20, 0x61, 0x74, 0x3f, 0x6e, + 0x65, 0x77, 0x20, 0x61, 0x74, 0x28, 0x6e, 0x2e, 0x68, 0x2c, 0x6e, + 0x2e, 0x73, 0x2c, 0x6e, 0x2e, 0x6c, 0x29, 0x3a, 0x62, 0x74, 0x28, + 0x22, 0x22, 0x2b, 0x6e, 0x2c, 0x5f, 0x74, 0x2c, 0x61, 0x74, 0x29, + 0x3a, 0x6e, 0x65, 0x77, 0x20, 0x61, 0x74, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x3e, 0x33, 0x36, 0x30, 0x3f, 0x6e, 0x2d, 0x3d, 0x33, 0x36, + 0x30, 0x3a, 0x30, 0x3e, 0x6e, 0x26, 0x26, 0x28, 0x6e, 0x2b, 0x3d, + 0x33, 0x36, 0x30, 0x29, 0x2c, 0x36, 0x30, 0x3e, 0x6e, 0x3f, 0x69, + 0x2b, 0x28, 0x6f, 0x2d, 0x69, 0x29, 0x2a, 0x6e, 0x2f, 0x36, 0x30, + 0x3a, 0x31, 0x38, 0x30, 0x3e, 0x6e, 0x3f, 0x6f, 0x3a, 0x32, 0x34, + 0x30, 0x3e, 0x6e, 0x3f, 0x69, 0x2b, 0x28, 0x6f, 0x2d, 0x69, 0x29, + 0x2a, 0x28, 0x32, 0x34, 0x30, 0x2d, 0x6e, 0x29, 0x2f, 0x36, 0x30, + 0x3a, 0x69, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x28, 0x32, 0x35, 0x35, 0x2a, 0x72, 0x28, 0x6e, 0x29, 0x29, + 0x7d, 0x76, 0x61, 0x72, 0x20, 0x69, 0x2c, 0x6f, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3d, 0x69, 0x73, 0x4e, 0x61, + 0x4e, 0x28, 0x6e, 0x29, 0x3f, 0x30, 0x3a, 0x28, 0x6e, 0x25, 0x3d, + 0x33, 0x36, 0x30, 0x29, 0x3c, 0x30, 0x3f, 0x6e, 0x2b, 0x33, 0x36, + 0x30, 0x3a, 0x6e, 0x2c, 0x74, 0x3d, 0x69, 0x73, 0x4e, 0x61, 0x4e, + 0x28, 0x74, 0x29, 0x3f, 0x30, 0x3a, 0x30, 0x3e, 0x74, 0x3f, 0x30, + 0x3a, 0x74, 0x3e, 0x31, 0x3f, 0x31, 0x3a, 0x74, 0x2c, 0x65, 0x3d, + 0x30, 0x3e, 0x65, 0x3f, 0x30, 0x3a, 0x65, 0x3e, 0x31, 0x3f, 0x31, + 0x3a, 0x65, 0x2c, 0x6f, 0x3d, 0x2e, 0x35, 0x3e, 0x3d, 0x65, 0x3f, + 0x65, 0x2a, 0x28, 0x31, 0x2b, 0x74, 0x29, 0x3a, 0x65, 0x2b, 0x74, + 0x2d, 0x65, 0x2a, 0x74, 0x2c, 0x69, 0x3d, 0x32, 0x2a, 0x65, 0x2d, + 0x6f, 0x2c, 0x6e, 0x65, 0x77, 0x20, 0x6d, 0x74, 0x28, 0x75, 0x28, + 0x6e, 0x2b, 0x31, 0x32, 0x30, 0x29, 0x2c, 0x75, 0x28, 0x6e, 0x29, + 0x2c, 0x75, 0x28, 0x6e, 0x2d, 0x31, 0x32, 0x30, 0x29, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x74, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x6f, 0x66, 0x20, 0x6c, 0x74, + 0x3f, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x68, 0x3d, 0x2b, 0x6e, + 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x3d, 0x2b, 0x74, 0x2c, + 0x76, 0x6f, 0x69, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, + 0x3d, 0x2b, 0x65, 0x29, 0x29, 0x3a, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3c, 0x32, 0x3f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x6f, 0x66, 0x20, 0x6c, 0x74, 0x3f, 0x6e, 0x65, 0x77, + 0x20, 0x6c, 0x74, 0x28, 0x6e, 0x2e, 0x68, 0x2c, 0x6e, 0x2e, 0x63, + 0x2c, 0x6e, 0x2e, 0x6c, 0x29, 0x3a, 0x6e, 0x20, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x6f, 0x66, 0x20, 0x66, 0x74, 0x3f, + 0x67, 0x74, 0x28, 0x6e, 0x2e, 0x6c, 0x2c, 0x6e, 0x2e, 0x61, 0x2c, + 0x6e, 0x2e, 0x62, 0x29, 0x3a, 0x67, 0x74, 0x28, 0x28, 0x6e, 0x3d, + 0x77, 0x74, 0x28, 0x28, 0x6e, 0x3d, 0x74, 0x61, 0x2e, 0x72, 0x67, + 0x62, 0x28, 0x6e, 0x29, 0x29, 0x2e, 0x72, 0x2c, 0x6e, 0x2e, 0x67, + 0x2c, 0x6e, 0x2e, 0x62, 0x29, 0x29, 0x2e, 0x6c, 0x2c, 0x6e, 0x2e, + 0x61, 0x2c, 0x6e, 0x2e, 0x62, 0x29, 0x3a, 0x6e, 0x65, 0x77, 0x20, + 0x6c, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x6e, 0x29, + 0x26, 0x26, 0x28, 0x6e, 0x3d, 0x30, 0x29, 0x2c, 0x69, 0x73, 0x4e, + 0x61, 0x4e, 0x28, 0x74, 0x29, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x30, + 0x29, 0x2c, 0x6e, 0x65, 0x77, 0x20, 0x66, 0x74, 0x28, 0x65, 0x2c, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x6e, 0x2a, + 0x3d, 0x44, 0x61, 0x29, 0x2a, 0x74, 0x2c, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6e, 0x29, 0x2a, 0x74, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x74, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x6f, 0x66, 0x20, 0x66, 0x74, + 0x3f, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x3d, 0x2b, 0x6e, + 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, 0x3d, 0x2b, 0x74, 0x2c, + 0x76, 0x6f, 0x69, 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x62, + 0x3d, 0x2b, 0x65, 0x29, 0x29, 0x3a, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3c, 0x32, 0x3f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x6f, 0x66, 0x20, 0x66, 0x74, 0x3f, 0x6e, 0x65, 0x77, + 0x20, 0x66, 0x74, 0x28, 0x6e, 0x2e, 0x6c, 0x2c, 0x6e, 0x2e, 0x61, + 0x2c, 0x6e, 0x2e, 0x62, 0x29, 0x3a, 0x6e, 0x20, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x6f, 0x66, 0x20, 0x6c, 0x74, 0x3f, + 0x73, 0x74, 0x28, 0x6e, 0x2e, 0x68, 0x2c, 0x6e, 0x2e, 0x63, 0x2c, + 0x6e, 0x2e, 0x6c, 0x29, 0x3a, 0x77, 0x74, 0x28, 0x28, 0x6e, 0x3d, + 0x6d, 0x74, 0x28, 0x6e, 0x29, 0x29, 0x2e, 0x72, 0x2c, 0x6e, 0x2e, + 0x67, 0x2c, 0x6e, 0x2e, 0x62, 0x29, 0x3a, 0x6e, 0x65, 0x77, 0x20, + 0x66, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x68, 0x74, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x28, 0x6e, 0x2b, 0x31, 0x36, 0x29, 0x2f, 0x31, 0x31, + 0x36, 0x2c, 0x75, 0x3d, 0x72, 0x2b, 0x74, 0x2f, 0x35, 0x30, 0x30, + 0x2c, 0x69, 0x3d, 0x72, 0x2d, 0x65, 0x2f, 0x32, 0x30, 0x30, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x3d, 0x70, 0x74, + 0x28, 0x75, 0x29, 0x2a, 0x58, 0x61, 0x2c, 0x72, 0x3d, 0x70, 0x74, + 0x28, 0x72, 0x29, 0x2a, 0x24, 0x61, 0x2c, 0x69, 0x3d, 0x70, 0x74, + 0x28, 0x69, 0x29, 0x2a, 0x42, 0x61, 0x2c, 0x6e, 0x65, 0x77, 0x20, + 0x6d, 0x74, 0x28, 0x64, 0x74, 0x28, 0x33, 0x2e, 0x32, 0x34, 0x30, + 0x34, 0x35, 0x34, 0x32, 0x2a, 0x75, 0x2d, 0x31, 0x2e, 0x35, 0x33, + 0x37, 0x31, 0x33, 0x38, 0x35, 0x2a, 0x72, 0x2d, 0x2e, 0x34, 0x39, + 0x38, 0x35, 0x33, 0x31, 0x34, 0x2a, 0x69, 0x29, 0x2c, 0x64, 0x74, + 0x28, 0x2d, 0x2e, 0x39, 0x36, 0x39, 0x32, 0x36, 0x36, 0x2a, 0x75, + 0x2b, 0x31, 0x2e, 0x38, 0x37, 0x36, 0x30, 0x31, 0x30, 0x38, 0x2a, + 0x72, 0x2b, 0x2e, 0x30, 0x34, 0x31, 0x35, 0x35, 0x36, 0x2a, 0x69, + 0x29, 0x2c, 0x64, 0x74, 0x28, 0x2e, 0x30, 0x35, 0x35, 0x36, 0x34, + 0x33, 0x34, 0x2a, 0x75, 0x2d, 0x2e, 0x32, 0x30, 0x34, 0x30, 0x32, + 0x35, 0x39, 0x2a, 0x72, 0x2b, 0x31, 0x2e, 0x30, 0x35, 0x37, 0x32, + 0x32, 0x35, 0x32, 0x2a, 0x69, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, 0x74, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x3e, 0x30, 0x3f, 0x6e, 0x65, 0x77, 0x20, 0x6c, 0x74, + 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, + 0x28, 0x65, 0x2c, 0x74, 0x29, 0x2a, 0x50, 0x61, 0x2c, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x74, 0x2a, 0x74, + 0x2b, 0x65, 0x2a, 0x65, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x6e, 0x65, + 0x77, 0x20, 0x6c, 0x74, 0x28, 0x30, 0x2f, 0x30, 0x2c, 0x30, 0x2f, + 0x30, 0x2c, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3e, 0x2e, 0x32, 0x30, 0x36, + 0x38, 0x39, 0x33, 0x30, 0x33, 0x34, 0x3f, 0x6e, 0x2a, 0x6e, 0x2a, + 0x6e, 0x3a, 0x28, 0x6e, 0x2d, 0x34, 0x2f, 0x32, 0x39, 0x29, 0x2f, + 0x37, 0x2e, 0x37, 0x38, 0x37, 0x30, 0x33, 0x37, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x74, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3e, + 0x2e, 0x30, 0x30, 0x38, 0x38, 0x35, 0x36, 0x3f, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x6e, 0x2c, 0x31, 0x2f, 0x33, + 0x29, 0x3a, 0x37, 0x2e, 0x37, 0x38, 0x37, 0x30, 0x33, 0x37, 0x2a, + 0x6e, 0x2b, 0x34, 0x2f, 0x32, 0x39, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x74, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x32, 0x35, 0x35, 0x2a, + 0x28, 0x2e, 0x30, 0x30, 0x33, 0x30, 0x34, 0x3e, 0x3d, 0x6e, 0x3f, + 0x31, 0x32, 0x2e, 0x39, 0x32, 0x2a, 0x6e, 0x3a, 0x31, 0x2e, 0x30, + 0x35, 0x35, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, + 0x28, 0x6e, 0x2c, 0x31, 0x2f, 0x32, 0x2e, 0x34, 0x29, 0x2d, 0x2e, + 0x30, 0x35, 0x35, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x2c, + 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x6f, 0x66, 0x20, 0x6d, 0x74, 0x3f, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x72, 0x3d, 0x7e, 0x7e, 0x6e, 0x2c, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x67, 0x3d, 0x7e, 0x7e, 0x74, 0x2c, 0x76, 0x6f, 0x69, + 0x64, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x62, 0x3d, 0x7e, 0x7e, + 0x65, 0x29, 0x29, 0x3a, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, + 0x3f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x6f, 0x66, 0x20, 0x6d, 0x74, 0x3f, 0x6e, 0x65, 0x77, 0x20, 0x6d, + 0x74, 0x28, 0x6e, 0x2e, 0x72, 0x2c, 0x6e, 0x2e, 0x67, 0x2c, 0x6e, + 0x2e, 0x62, 0x29, 0x3a, 0x62, 0x74, 0x28, 0x22, 0x22, 0x2b, 0x6e, + 0x2c, 0x6d, 0x74, 0x2c, 0x63, 0x74, 0x29, 0x3a, 0x6e, 0x65, 0x77, + 0x20, 0x6d, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x79, 0x74, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x65, 0x77, 0x20, 0x6d, 0x74, 0x28, 0x6e, 0x3e, 0x3e, 0x31, + 0x36, 0x2c, 0x6e, 0x3e, 0x3e, 0x38, 0x26, 0x32, 0x35, 0x35, 0x2c, + 0x32, 0x35, 0x35, 0x26, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4d, 0x74, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x79, 0x74, 0x28, 0x6e, + 0x29, 0x2b, 0x22, 0x22, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x78, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x36, 0x3e, 0x6e, 0x3f, 0x22, + 0x30, 0x22, 0x2b, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, + 0x28, 0x30, 0x2c, 0x6e, 0x29, 0x2e, 0x74, 0x6f, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x31, 0x36, 0x29, 0x3a, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x32, 0x35, 0x35, 0x2c, 0x6e, + 0x29, 0x2e, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x31, 0x36, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x62, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, + 0x6f, 0x3d, 0x30, 0x2c, 0x61, 0x3d, 0x30, 0x2c, 0x63, 0x3d, 0x30, + 0x3b, 0x69, 0x66, 0x28, 0x72, 0x3d, 0x2f, 0x28, 0x5b, 0x61, 0x2d, + 0x7a, 0x5d, 0x2b, 0x29, 0x5c, 0x28, 0x28, 0x2e, 0x2a, 0x29, 0x5c, + 0x29, 0x2f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x28, 0x6e, 0x3d, 0x6e, + 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, + 0x65, 0x28, 0x29, 0x29, 0x29, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x28, 0x75, 0x3d, 0x72, 0x5b, 0x32, 0x5d, 0x2e, 0x73, 0x70, 0x6c, + 0x69, 0x74, 0x28, 0x22, 0x2c, 0x22, 0x29, 0x2c, 0x72, 0x5b, 0x31, + 0x5d, 0x29, 0x7b, 0x63, 0x61, 0x73, 0x65, 0x22, 0x68, 0x73, 0x6c, + 0x22, 0x3a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x28, + 0x70, 0x61, 0x72, 0x73, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x28, + 0x75, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x70, 0x61, 0x72, 0x73, 0x65, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x75, 0x5b, 0x31, 0x5d, 0x29, + 0x2f, 0x31, 0x30, 0x30, 0x2c, 0x70, 0x61, 0x72, 0x73, 0x65, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x28, 0x75, 0x5b, 0x32, 0x5d, 0x29, 0x2f, + 0x31, 0x30, 0x30, 0x29, 0x3b, 0x63, 0x61, 0x73, 0x65, 0x22, 0x72, + 0x67, 0x62, 0x22, 0x3a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x28, 0x6b, 0x74, 0x28, 0x75, 0x5b, 0x30, 0x5d, 0x29, 0x2c, + 0x6b, 0x74, 0x28, 0x75, 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x6b, 0x74, + 0x28, 0x75, 0x5b, 0x32, 0x5d, 0x29, 0x29, 0x7d, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x28, 0x69, 0x3d, 0x47, 0x61, 0x2e, 0x67, 0x65, + 0x74, 0x28, 0x6e, 0x29, 0x29, 0x3f, 0x74, 0x28, 0x69, 0x2e, 0x72, + 0x2c, 0x69, 0x2e, 0x67, 0x2c, 0x69, 0x2e, 0x62, 0x29, 0x3a, 0x28, + 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x7c, 0x7c, 0x22, 0x23, + 0x22, 0x21, 0x3d, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x41, + 0x74, 0x28, 0x30, 0x29, 0x7c, 0x7c, 0x69, 0x73, 0x4e, 0x61, 0x4e, + 0x28, 0x69, 0x3d, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6e, 0x74, + 0x28, 0x6e, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x31, 0x29, + 0x2c, 0x31, 0x36, 0x29, 0x29, 0x7c, 0x7c, 0x28, 0x34, 0x3d, 0x3d, + 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x6f, 0x3d, 0x28, 0x33, 0x38, 0x34, 0x30, 0x26, 0x69, 0x29, 0x3e, + 0x3e, 0x34, 0x2c, 0x6f, 0x3d, 0x6f, 0x3e, 0x3e, 0x34, 0x7c, 0x6f, + 0x2c, 0x61, 0x3d, 0x32, 0x34, 0x30, 0x26, 0x69, 0x2c, 0x61, 0x3d, + 0x61, 0x3e, 0x3e, 0x34, 0x7c, 0x61, 0x2c, 0x63, 0x3d, 0x31, 0x35, + 0x26, 0x69, 0x2c, 0x63, 0x3d, 0x63, 0x3c, 0x3c, 0x34, 0x7c, 0x63, + 0x29, 0x3a, 0x37, 0x3d, 0x3d, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x26, 0x26, 0x28, 0x6f, 0x3d, 0x28, 0x31, 0x36, + 0x37, 0x31, 0x31, 0x36, 0x38, 0x30, 0x26, 0x69, 0x29, 0x3e, 0x3e, + 0x31, 0x36, 0x2c, 0x61, 0x3d, 0x28, 0x36, 0x35, 0x32, 0x38, 0x30, + 0x26, 0x69, 0x29, 0x3e, 0x3e, 0x38, 0x2c, 0x63, 0x3d, 0x32, 0x35, + 0x35, 0x26, 0x69, 0x29, 0x29, 0x2c, 0x74, 0x28, 0x6f, 0x2c, 0x61, + 0x2c, 0x63, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x5f, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, 0x2c, 0x69, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x6e, + 0x2f, 0x3d, 0x32, 0x35, 0x35, 0x2c, 0x74, 0x2f, 0x3d, 0x32, 0x35, + 0x35, 0x2c, 0x65, 0x2f, 0x3d, 0x32, 0x35, 0x35, 0x29, 0x2c, 0x6f, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x2c, 0x61, 0x3d, 0x6f, 0x2d, 0x69, + 0x2c, 0x63, 0x3d, 0x28, 0x6f, 0x2b, 0x69, 0x29, 0x2f, 0x32, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x3f, 0x28, 0x75, + 0x3d, 0x2e, 0x35, 0x3e, 0x63, 0x3f, 0x61, 0x2f, 0x28, 0x6f, 0x2b, + 0x69, 0x29, 0x3a, 0x61, 0x2f, 0x28, 0x32, 0x2d, 0x6f, 0x2d, 0x69, + 0x29, 0x2c, 0x72, 0x3d, 0x6e, 0x3d, 0x3d, 0x6f, 0x3f, 0x28, 0x74, + 0x2d, 0x65, 0x29, 0x2f, 0x61, 0x2b, 0x28, 0x65, 0x3e, 0x74, 0x3f, + 0x36, 0x3a, 0x30, 0x29, 0x3a, 0x74, 0x3d, 0x3d, 0x6f, 0x3f, 0x28, + 0x65, 0x2d, 0x6e, 0x29, 0x2f, 0x61, 0x2b, 0x32, 0x3a, 0x28, 0x6e, + 0x2d, 0x74, 0x29, 0x2f, 0x61, 0x2b, 0x34, 0x2c, 0x72, 0x2a, 0x3d, + 0x36, 0x30, 0x29, 0x3a, 0x28, 0x72, 0x3d, 0x30, 0x2f, 0x30, 0x2c, + 0x75, 0x3d, 0x63, 0x3e, 0x30, 0x26, 0x26, 0x31, 0x3e, 0x63, 0x3f, + 0x30, 0x3a, 0x72, 0x29, 0x2c, 0x6e, 0x65, 0x77, 0x20, 0x61, 0x74, + 0x28, 0x72, 0x2c, 0x75, 0x2c, 0x63, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x74, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x6e, 0x3d, 0x53, 0x74, 0x28, 0x6e, + 0x29, 0x2c, 0x74, 0x3d, 0x53, 0x74, 0x28, 0x74, 0x29, 0x2c, 0x65, + 0x3d, 0x53, 0x74, 0x28, 0x65, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x76, 0x74, 0x28, 0x28, 0x2e, 0x34, 0x31, 0x32, 0x34, + 0x35, 0x36, 0x34, 0x2a, 0x6e, 0x2b, 0x2e, 0x33, 0x35, 0x37, 0x35, + 0x37, 0x36, 0x31, 0x2a, 0x74, 0x2b, 0x2e, 0x31, 0x38, 0x30, 0x34, + 0x33, 0x37, 0x35, 0x2a, 0x65, 0x29, 0x2f, 0x58, 0x61, 0x29, 0x2c, + 0x75, 0x3d, 0x76, 0x74, 0x28, 0x28, 0x2e, 0x32, 0x31, 0x32, 0x36, + 0x37, 0x32, 0x39, 0x2a, 0x6e, 0x2b, 0x2e, 0x37, 0x31, 0x35, 0x31, + 0x35, 0x32, 0x32, 0x2a, 0x74, 0x2b, 0x2e, 0x30, 0x37, 0x32, 0x31, + 0x37, 0x35, 0x2a, 0x65, 0x29, 0x2f, 0x24, 0x61, 0x29, 0x2c, 0x69, + 0x3d, 0x76, 0x74, 0x28, 0x28, 0x2e, 0x30, 0x31, 0x39, 0x33, 0x33, + 0x33, 0x39, 0x2a, 0x6e, 0x2b, 0x2e, 0x31, 0x31, 0x39, 0x31, 0x39, + 0x32, 0x2a, 0x74, 0x2b, 0x2e, 0x39, 0x35, 0x30, 0x33, 0x30, 0x34, + 0x31, 0x2a, 0x65, 0x29, 0x2f, 0x42, 0x61, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x74, 0x28, 0x31, 0x31, 0x36, + 0x2a, 0x75, 0x2d, 0x31, 0x36, 0x2c, 0x35, 0x30, 0x30, 0x2a, 0x28, + 0x72, 0x2d, 0x75, 0x29, 0x2c, 0x32, 0x30, 0x30, 0x2a, 0x28, 0x75, + 0x2d, 0x69, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x53, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x28, 0x6e, 0x2f, 0x3d, 0x32, 0x35, 0x35, + 0x29, 0x3c, 0x3d, 0x2e, 0x30, 0x34, 0x30, 0x34, 0x35, 0x3f, 0x6e, + 0x2f, 0x31, 0x32, 0x2e, 0x39, 0x32, 0x3a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x28, 0x6e, 0x2b, 0x2e, 0x30, 0x35, + 0x35, 0x29, 0x2f, 0x31, 0x2e, 0x30, 0x35, 0x35, 0x2c, 0x32, 0x2e, + 0x34, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6b, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3d, 0x70, 0x61, 0x72, 0x73, 0x65, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x28, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x22, 0x25, 0x22, 0x3d, 0x3d, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x41, 0x74, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2d, 0x31, 0x29, 0x3f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x32, 0x2e, 0x35, 0x35, 0x2a, 0x74, + 0x29, 0x3a, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x45, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x6e, 0x3f, 0x6e, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x41, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x32, 0x3d, 0x3d, 0x3d, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x26, 0x26, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, + 0x20, 0x65, 0x26, 0x26, 0x28, 0x72, 0x3d, 0x65, 0x2c, 0x65, 0x3d, + 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2c, 0x4e, 0x74, 0x28, 0x74, 0x2c, + 0x65, 0x2c, 0x6e, 0x2c, 0x72, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4e, 0x74, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x6e, 0x2c, 0x74, 0x3d, 0x63, 0x2e, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x3b, 0x69, 0x66, 0x28, 0x21, 0x74, 0x26, 0x26, + 0x7a, 0x74, 0x28, 0x63, 0x29, 0x7c, 0x7c, 0x74, 0x3e, 0x3d, 0x32, + 0x30, 0x30, 0x26, 0x26, 0x33, 0x30, 0x30, 0x3e, 0x74, 0x7c, 0x7c, + 0x33, 0x30, 0x34, 0x3d, 0x3d, 0x3d, 0x74, 0x29, 0x7b, 0x74, 0x72, + 0x79, 0x7b, 0x6e, 0x3d, 0x65, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x69, 0x2c, 0x63, 0x29, 0x7d, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28, + 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x76, + 0x6f, 0x69, 0x64, 0x20, 0x6f, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x69, 0x2c, 0x72, 0x29, 0x7d, + 0x6f, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x28, 0x69, 0x2c, 0x6e, 0x29, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, + 0x6f, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x63, 0x61, 0x6c, + 0x6c, 0x28, 0x69, 0x2c, 0x63, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x69, 0x3d, 0x7b, 0x7d, 0x2c, 0x6f, 0x3d, 0x74, 0x61, 0x2e, 0x64, + 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x28, 0x22, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x22, 0x2c, 0x22, + 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x2c, 0x22, + 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x2c, 0x22, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x22, 0x29, 0x2c, 0x61, 0x3d, 0x7b, 0x7d, 0x2c, 0x63, 0x3d, + 0x6e, 0x65, 0x77, 0x20, 0x58, 0x4d, 0x4c, 0x48, 0x74, 0x74, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2c, 0x6c, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x58, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x7c, 0x7c, 0x22, + 0x77, 0x69, 0x74, 0x68, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x22, 0x69, 0x6e, 0x20, 0x63, 0x7c, 0x7c, + 0x21, 0x2f, 0x5e, 0x28, 0x68, 0x74, 0x74, 0x70, 0x28, 0x73, 0x29, + 0x3f, 0x3a, 0x29, 0x3f, 0x5c, 0x2f, 0x5c, 0x2f, 0x2f, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x28, 0x6e, 0x29, 0x7c, 0x7c, 0x28, 0x63, 0x3d, + 0x6e, 0x65, 0x77, 0x20, 0x58, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x29, 0x2c, 0x22, 0x6f, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x69, 0x6e, 0x20, 0x63, 0x3f, + 0x63, 0x2e, 0x6f, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x3d, 0x63, 0x2e, + 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3d, 0x75, 0x3a, 0x63, + 0x2e, 0x6f, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x63, 0x2e, + 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3e, + 0x33, 0x26, 0x26, 0x75, 0x28, 0x29, 0x7d, 0x2c, 0x63, 0x2e, 0x6f, + 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x3b, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x3d, 0x6e, 0x3b, 0x74, 0x72, 0x79, 0x7b, 0x6f, 0x2e, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x63, 0x61, 0x6c, + 0x6c, 0x28, 0x69, 0x2c, 0x63, 0x29, 0x7d, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x6c, 0x79, 0x7b, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x3d, 0x74, 0x7d, 0x7d, 0x2c, 0x69, 0x2e, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x3d, 0x28, 0x6e, 0x2b, 0x22, 0x22, 0x29, + 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, + 0x65, 0x28, 0x29, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, + 0x3f, 0x61, 0x5b, 0x6e, 0x5d, 0x3a, 0x28, 0x6e, 0x75, 0x6c, 0x6c, + 0x3d, 0x3d, 0x74, 0x3f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, + 0x61, 0x5b, 0x6e, 0x5d, 0x3a, 0x61, 0x5b, 0x6e, 0x5d, 0x3d, 0x74, + 0x2b, 0x22, 0x22, 0x2c, 0x69, 0x29, 0x7d, 0x2c, 0x69, 0x2e, 0x6d, + 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x74, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x3f, + 0x6e, 0x75, 0x6c, 0x6c, 0x3a, 0x6e, 0x2b, 0x22, 0x22, 0x2c, 0x69, + 0x29, 0x3a, 0x74, 0x7d, 0x2c, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x6c, 0x3d, 0x6e, 0x2c, 0x69, 0x29, 0x3a, 0x6c, 0x7d, + 0x2c, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3d, + 0x6e, 0x2c, 0x69, 0x7d, 0x2c, 0x5b, 0x22, 0x67, 0x65, 0x74, 0x22, + 0x2c, 0x22, 0x70, 0x6f, 0x73, 0x74, 0x22, 0x5d, 0x2e, 0x66, 0x6f, + 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x69, 0x5b, 0x6e, 0x5d, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x2e, 0x73, + 0x65, 0x6e, 0x64, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x69, + 0x2c, 0x5b, 0x6e, 0x5d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, + 0x28, 0x72, 0x61, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x29, 0x29, 0x29, 0x7d, 0x7d, 0x29, 0x2c, 0x69, 0x2e, + 0x73, 0x65, 0x6e, 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x29, 0x7b, 0x69, + 0x66, 0x28, 0x32, 0x3d, 0x3d, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x26, 0x26, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x72, + 0x26, 0x26, 0x28, 0x75, 0x3d, 0x72, 0x2c, 0x72, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x29, 0x2c, 0x63, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x28, + 0x65, 0x2c, 0x6e, 0x2c, 0x21, 0x30, 0x29, 0x2c, 0x6e, 0x75, 0x6c, + 0x6c, 0x3d, 0x3d, 0x74, 0x7c, 0x7c, 0x22, 0x61, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x22, 0x69, 0x6e, 0x20, 0x61, 0x7c, 0x7c, 0x28, 0x61, + 0x2e, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x3d, 0x74, 0x2b, 0x22, + 0x2c, 0x2a, 0x2f, 0x2a, 0x22, 0x29, 0x2c, 0x63, 0x2e, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x29, 0x63, 0x2e, 0x73, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x28, 0x73, 0x2c, 0x61, 0x5b, 0x73, 0x5d, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x75, + 0x6c, 0x6c, 0x21, 0x3d, 0x74, 0x26, 0x26, 0x63, 0x2e, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x4d, 0x69, 0x6d, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x26, 0x26, 0x63, 0x2e, 0x6f, 0x76, 0x65, 0x72, + 0x72, 0x69, 0x64, 0x65, 0x4d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, + 0x6c, 0x26, 0x26, 0x28, 0x63, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3d, 0x6c, 0x29, 0x2c, + 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x75, 0x26, 0x26, 0x69, 0x2e, + 0x6f, 0x6e, 0x28, 0x22, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2c, + 0x75, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x6c, 0x6f, 0x61, 0x64, + 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x75, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x6e, + 0x29, 0x7d, 0x29, 0x2c, 0x6f, 0x2e, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x64, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x69, 0x2c, 0x63, 0x29, 0x2c, 0x63, 0x2e, 0x73, 0x65, 0x6e, 0x64, + 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x72, 0x3f, 0x6e, 0x75, + 0x6c, 0x6c, 0x3a, 0x72, 0x29, 0x2c, 0x69, 0x7d, 0x2c, 0x69, 0x2e, + 0x61, 0x62, 0x6f, 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x63, 0x2e, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x28, 0x29, + 0x2c, 0x69, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x72, 0x65, 0x62, 0x69, + 0x6e, 0x64, 0x28, 0x69, 0x2c, 0x6f, 0x2c, 0x22, 0x6f, 0x6e, 0x22, + 0x29, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x72, 0x3f, 0x69, + 0x3a, 0x69, 0x2e, 0x67, 0x65, 0x74, 0x28, 0x43, 0x74, 0x28, 0x72, + 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x43, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x31, 0x3d, 0x3d, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x6e, 0x28, 0x6e, + 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x74, 0x3f, 0x65, 0x3a, 0x6e, 0x75, + 0x6c, 0x6c, 0x29, 0x7d, 0x3a, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7a, 0x74, 0x28, 0x6e, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x26, 0x26, 0x22, 0x74, + 0x65, 0x78, 0x74, 0x22, 0x21, 0x3d, 0x3d, 0x74, 0x3f, 0x6e, 0x2e, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x3a, 0x6e, 0x2e, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x65, 0x78, + 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x71, 0x74, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, + 0x4c, 0x74, 0x28, 0x29, 0x2c, 0x74, 0x3d, 0x54, 0x74, 0x28, 0x29, + 0x2d, 0x6e, 0x3b, 0x74, 0x3e, 0x32, 0x34, 0x3f, 0x28, 0x69, 0x73, + 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x28, 0x74, 0x29, 0x26, 0x26, + 0x28, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x28, 0x74, 0x63, 0x29, 0x2c, 0x74, 0x63, 0x3d, 0x73, + 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x71, + 0x74, 0x2c, 0x74, 0x29, 0x29, 0x2c, 0x6e, 0x63, 0x3d, 0x30, 0x29, + 0x3a, 0x28, 0x6e, 0x63, 0x3d, 0x31, 0x2c, 0x72, 0x63, 0x28, 0x71, + 0x74, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x4c, 0x74, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x6e, 0x3d, 0x44, 0x61, 0x74, 0x65, 0x2e, 0x6e, 0x6f, 0x77, 0x28, + 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x63, 0x3d, 0x4b, 0x61, + 0x3b, 0x65, 0x63, 0x3b, 0x29, 0x6e, 0x3e, 0x3d, 0x65, 0x63, 0x2e, + 0x74, 0x26, 0x26, 0x28, 0x65, 0x63, 0x2e, 0x66, 0x3d, 0x65, 0x63, + 0x2e, 0x63, 0x28, 0x6e, 0x2d, 0x65, 0x63, 0x2e, 0x74, 0x29, 0x29, + 0x2c, 0x65, 0x63, 0x3d, 0x65, 0x63, 0x2e, 0x6e, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x74, 0x28, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x2c, 0x74, 0x3d, + 0x4b, 0x61, 0x2c, 0x65, 0x3d, 0x31, 0x2f, 0x30, 0x3b, 0x74, 0x3b, + 0x29, 0x74, 0x2e, 0x66, 0x3f, 0x74, 0x3d, 0x6e, 0x3f, 0x6e, 0x2e, + 0x6e, 0x3d, 0x74, 0x2e, 0x6e, 0x3a, 0x4b, 0x61, 0x3d, 0x74, 0x2e, + 0x6e, 0x3a, 0x28, 0x74, 0x2e, 0x74, 0x3c, 0x65, 0x26, 0x26, 0x28, + 0x65, 0x3d, 0x74, 0x2e, 0x74, 0x29, 0x2c, 0x74, 0x3d, 0x28, 0x6e, + 0x3d, 0x74, 0x29, 0x2e, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x51, 0x61, 0x3d, 0x6e, 0x2c, 0x65, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x74, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x2d, 0x28, 0x6e, 0x3f, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x63, 0x65, 0x69, 0x6c, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6c, + 0x6f, 0x67, 0x28, 0x6e, 0x29, 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x4c, 0x4e, 0x31, 0x30, 0x29, 0x3a, 0x31, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x44, 0x74, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x31, 0x30, 0x2c, + 0x33, 0x2a, 0x67, 0x61, 0x28, 0x38, 0x2d, 0x74, 0x29, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x7b, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x3a, 0x74, 0x3e, 0x38, 0x3f, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x2f, 0x65, 0x7d, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2a, 0x65, 0x7d, 0x2c, 0x73, + 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x3a, 0x6e, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x50, 0x74, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x64, + 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, + 0x74, 0x68, 0x6f, 0x75, 0x73, 0x61, 0x6e, 0x64, 0x73, 0x2c, 0x72, + 0x3d, 0x6e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x67, + 0x2c, 0x75, 0x3d, 0x6e, 0x2e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x63, 0x79, 0x2c, 0x69, 0x3d, 0x72, 0x26, 0x26, 0x65, 0x3f, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x75, + 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x69, + 0x3d, 0x5b, 0x5d, 0x2c, 0x6f, 0x3d, 0x30, 0x2c, 0x61, 0x3d, 0x72, + 0x5b, 0x30, 0x5d, 0x2c, 0x63, 0x3d, 0x30, 0x3b, 0x75, 0x3e, 0x30, + 0x26, 0x26, 0x61, 0x3e, 0x30, 0x26, 0x26, 0x28, 0x63, 0x2b, 0x61, + 0x2b, 0x31, 0x3e, 0x74, 0x26, 0x26, 0x28, 0x61, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x31, 0x2c, 0x74, 0x2d, + 0x63, 0x29, 0x29, 0x2c, 0x69, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x6e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x75, 0x2d, 0x3d, 0x61, 0x2c, 0x75, 0x2b, 0x61, 0x29, 0x29, + 0x2c, 0x21, 0x28, 0x28, 0x63, 0x2b, 0x3d, 0x61, 0x2b, 0x31, 0x29, + 0x3e, 0x74, 0x29, 0x29, 0x3b, 0x29, 0x61, 0x3d, 0x72, 0x5b, 0x6f, + 0x3d, 0x28, 0x6f, 0x2b, 0x31, 0x29, 0x25, 0x72, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x69, 0x2e, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, + 0x28, 0x29, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x65, 0x29, 0x7d, + 0x3a, 0x79, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x69, 0x63, 0x2e, 0x65, 0x78, + 0x65, 0x63, 0x28, 0x6e, 0x29, 0x2c, 0x72, 0x3d, 0x65, 0x5b, 0x31, + 0x5d, 0x7c, 0x7c, 0x22, 0x20, 0x22, 0x2c, 0x6f, 0x3d, 0x65, 0x5b, + 0x32, 0x5d, 0x7c, 0x7c, 0x22, 0x3e, 0x22, 0x2c, 0x61, 0x3d, 0x65, + 0x5b, 0x33, 0x5d, 0x7c, 0x7c, 0x22, 0x2d, 0x22, 0x2c, 0x63, 0x3d, + 0x65, 0x5b, 0x34, 0x5d, 0x7c, 0x7c, 0x22, 0x22, 0x2c, 0x6c, 0x3d, + 0x65, 0x5b, 0x35, 0x5d, 0x2c, 0x73, 0x3d, 0x2b, 0x65, 0x5b, 0x36, + 0x5d, 0x2c, 0x66, 0x3d, 0x65, 0x5b, 0x37, 0x5d, 0x2c, 0x68, 0x3d, + 0x65, 0x5b, 0x38, 0x5d, 0x2c, 0x67, 0x3d, 0x65, 0x5b, 0x39, 0x5d, + 0x2c, 0x70, 0x3d, 0x31, 0x2c, 0x76, 0x3d, 0x22, 0x22, 0x2c, 0x64, + 0x3d, 0x22, 0x22, 0x2c, 0x6d, 0x3d, 0x21, 0x31, 0x2c, 0x79, 0x3d, + 0x21, 0x30, 0x3b, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x28, 0x68, + 0x26, 0x26, 0x28, 0x68, 0x3d, 0x2b, 0x68, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x31, 0x29, 0x29, 0x2c, + 0x28, 0x6c, 0x7c, 0x7c, 0x22, 0x30, 0x22, 0x3d, 0x3d, 0x3d, 0x72, + 0x26, 0x26, 0x22, 0x3d, 0x22, 0x3d, 0x3d, 0x3d, 0x6f, 0x29, 0x26, + 0x26, 0x28, 0x6c, 0x3d, 0x72, 0x3d, 0x22, 0x30, 0x22, 0x2c, 0x6f, + 0x3d, 0x22, 0x3d, 0x22, 0x29, 0x2c, 0x67, 0x29, 0x7b, 0x63, 0x61, + 0x73, 0x65, 0x22, 0x6e, 0x22, 0x3a, 0x66, 0x3d, 0x21, 0x30, 0x2c, + 0x67, 0x3d, 0x22, 0x67, 0x22, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, + 0x3b, 0x63, 0x61, 0x73, 0x65, 0x22, 0x25, 0x22, 0x3a, 0x70, 0x3d, + 0x31, 0x30, 0x30, 0x2c, 0x64, 0x3d, 0x22, 0x25, 0x22, 0x2c, 0x67, + 0x3d, 0x22, 0x66, 0x22, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, + 0x63, 0x61, 0x73, 0x65, 0x22, 0x70, 0x22, 0x3a, 0x70, 0x3d, 0x31, + 0x30, 0x30, 0x2c, 0x64, 0x3d, 0x22, 0x25, 0x22, 0x2c, 0x67, 0x3d, + 0x22, 0x72, 0x22, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x63, + 0x61, 0x73, 0x65, 0x22, 0x62, 0x22, 0x3a, 0x63, 0x61, 0x73, 0x65, + 0x22, 0x6f, 0x22, 0x3a, 0x63, 0x61, 0x73, 0x65, 0x22, 0x78, 0x22, + 0x3a, 0x63, 0x61, 0x73, 0x65, 0x22, 0x58, 0x22, 0x3a, 0x22, 0x23, + 0x22, 0x3d, 0x3d, 0x3d, 0x63, 0x26, 0x26, 0x28, 0x76, 0x3d, 0x22, + 0x30, 0x22, 0x2b, 0x67, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x77, 0x65, + 0x72, 0x43, 0x61, 0x73, 0x65, 0x28, 0x29, 0x29, 0x3b, 0x63, 0x61, + 0x73, 0x65, 0x22, 0x63, 0x22, 0x3a, 0x79, 0x3d, 0x21, 0x31, 0x3b, + 0x63, 0x61, 0x73, 0x65, 0x22, 0x64, 0x22, 0x3a, 0x6d, 0x3d, 0x21, + 0x30, 0x2c, 0x68, 0x3d, 0x30, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, + 0x3b, 0x63, 0x61, 0x73, 0x65, 0x22, 0x73, 0x22, 0x3a, 0x70, 0x3d, + 0x2d, 0x31, 0x2c, 0x67, 0x3d, 0x22, 0x72, 0x22, 0x7d, 0x22, 0x24, + 0x22, 0x3d, 0x3d, 0x3d, 0x63, 0x26, 0x26, 0x28, 0x76, 0x3d, 0x75, + 0x5b, 0x30, 0x5d, 0x2c, 0x64, 0x3d, 0x75, 0x5b, 0x31, 0x5d, 0x29, + 0x2c, 0x22, 0x72, 0x22, 0x21, 0x3d, 0x67, 0x7c, 0x7c, 0x68, 0x7c, + 0x7c, 0x28, 0x67, 0x3d, 0x22, 0x67, 0x22, 0x29, 0x2c, 0x6e, 0x75, + 0x6c, 0x6c, 0x21, 0x3d, 0x68, 0x26, 0x26, 0x28, 0x22, 0x67, 0x22, + 0x3d, 0x3d, 0x67, 0x3f, 0x68, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x6d, 0x61, 0x78, 0x28, 0x31, 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x6d, 0x69, 0x6e, 0x28, 0x32, 0x31, 0x2c, 0x68, 0x29, 0x29, 0x3a, + 0x28, 0x22, 0x65, 0x22, 0x3d, 0x3d, 0x67, 0x7c, 0x7c, 0x22, 0x66, + 0x22, 0x3d, 0x3d, 0x67, 0x29, 0x26, 0x26, 0x28, 0x68, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x30, 0x2c, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x32, 0x30, 0x2c, + 0x68, 0x29, 0x29, 0x29, 0x29, 0x2c, 0x67, 0x3d, 0x6f, 0x63, 0x2e, + 0x67, 0x65, 0x74, 0x28, 0x67, 0x29, 0x7c, 0x7c, 0x55, 0x74, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x4d, 0x3d, 0x6c, 0x26, 0x26, 0x66, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x65, 0x3d, 0x64, 0x3b, 0x69, 0x66, 0x28, 0x6d, 0x26, 0x26, + 0x6e, 0x25, 0x31, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, + 0x22, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x30, 0x3e, 0x6e, + 0x7c, 0x7c, 0x30, 0x3d, 0x3d, 0x3d, 0x6e, 0x26, 0x26, 0x30, 0x3e, + 0x31, 0x2f, 0x6e, 0x3f, 0x28, 0x6e, 0x3d, 0x2d, 0x6e, 0x2c, 0x22, + 0x2d, 0x22, 0x29, 0x3a, 0x22, 0x2d, 0x22, 0x3d, 0x3d, 0x3d, 0x61, + 0x3f, 0x22, 0x22, 0x3a, 0x61, 0x3b, 0x69, 0x66, 0x28, 0x30, 0x3e, + 0x70, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x3d, 0x74, 0x61, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x28, 0x6e, 0x2c, 0x68, 0x29, 0x3b, 0x6e, 0x3d, 0x63, + 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x6e, 0x29, 0x2c, 0x65, + 0x3d, 0x63, 0x2e, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x2b, 0x64, + 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x6e, 0x2a, 0x3d, 0x70, 0x3b, + 0x6e, 0x3d, 0x67, 0x28, 0x6e, 0x2c, 0x68, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x78, 0x2c, 0x62, 0x2c, 0x5f, 0x3d, 0x6e, 0x2e, 0x6c, + 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x66, 0x28, + 0x22, 0x2e, 0x22, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x30, 0x3e, 0x5f, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x77, 0x3d, 0x79, 0x3f, 0x6e, + 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4f, + 0x66, 0x28, 0x22, 0x65, 0x22, 0x29, 0x3a, 0x2d, 0x31, 0x3b, 0x30, + 0x3e, 0x77, 0x3f, 0x28, 0x78, 0x3d, 0x6e, 0x2c, 0x62, 0x3d, 0x22, + 0x22, 0x29, 0x3a, 0x28, 0x78, 0x3d, 0x6e, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x30, 0x2c, 0x77, 0x29, + 0x2c, 0x62, 0x3d, 0x6e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x77, 0x29, 0x29, 0x7d, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x78, 0x3d, 0x6e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x30, 0x2c, 0x5f, 0x29, 0x2c, 0x62, + 0x3d, 0x74, 0x2b, 0x6e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x5f, 0x2b, 0x31, 0x29, 0x3b, 0x21, 0x6c, + 0x26, 0x26, 0x66, 0x26, 0x26, 0x28, 0x78, 0x3d, 0x69, 0x28, 0x78, + 0x2c, 0x31, 0x2f, 0x30, 0x29, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x53, 0x3d, 0x76, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2b, + 0x78, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2b, 0x62, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2b, 0x28, 0x4d, 0x3f, 0x30, + 0x3a, 0x75, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x2c, + 0x6b, 0x3d, 0x73, 0x3e, 0x53, 0x3f, 0x6e, 0x65, 0x77, 0x20, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x28, 0x53, 0x3d, 0x73, 0x2d, 0x53, 0x2b, + 0x31, 0x29, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x72, 0x29, 0x3a, + 0x22, 0x22, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, + 0x26, 0x26, 0x28, 0x78, 0x3d, 0x69, 0x28, 0x6b, 0x2b, 0x78, 0x2c, + 0x6b, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x73, 0x2d, + 0x62, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3a, 0x31, 0x2f, + 0x30, 0x29, 0x29, 0x2c, 0x75, 0x2b, 0x3d, 0x76, 0x2c, 0x6e, 0x3d, + 0x78, 0x2b, 0x62, 0x2c, 0x28, 0x22, 0x3c, 0x22, 0x3d, 0x3d, 0x3d, + 0x6f, 0x3f, 0x75, 0x2b, 0x6e, 0x2b, 0x6b, 0x3a, 0x22, 0x3e, 0x22, + 0x3d, 0x3d, 0x3d, 0x6f, 0x3f, 0x6b, 0x2b, 0x75, 0x2b, 0x6e, 0x3a, + 0x22, 0x5e, 0x22, 0x3d, 0x3d, 0x3d, 0x6f, 0x3f, 0x6b, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x30, 0x2c, + 0x53, 0x3e, 0x3e, 0x3d, 0x31, 0x29, 0x2b, 0x75, 0x2b, 0x6e, 0x2b, + 0x6b, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x53, 0x29, 0x3a, 0x75, 0x2b, 0x28, 0x4d, 0x3f, 0x6e, 0x3a, + 0x6b, 0x2b, 0x6e, 0x29, 0x29, 0x2b, 0x65, 0x7d, 0x7d, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x55, 0x74, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2b, 0x22, 0x22, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6a, 0x74, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x5f, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, + 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x31, 0x3f, 0x44, 0x61, + 0x74, 0x65, 0x2e, 0x55, 0x54, 0x43, 0x2e, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3a, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5b, 0x30, 0x5d, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x46, 0x74, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x74, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x28, 0x74, 0x29, 0x2c, 0x72, + 0x3d, 0x69, 0x28, 0x65, 0x2c, 0x31, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x72, 0x2d, 0x74, 0x3e, 0x74, 0x2d, 0x65, + 0x3f, 0x65, 0x3a, 0x72, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x28, 0x65, 0x3d, 0x6e, 0x28, 0x6e, + 0x65, 0x77, 0x20, 0x63, 0x63, 0x28, 0x65, 0x2d, 0x31, 0x29, 0x29, + 0x2c, 0x31, 0x29, 0x2c, 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x3d, + 0x6e, 0x65, 0x77, 0x20, 0x63, 0x63, 0x28, 0x2b, 0x6e, 0x29, 0x2c, + 0x65, 0x29, 0x2c, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x28, 0x6e, 0x2c, 0x72, 0x2c, 0x69, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x75, 0x28, 0x6e, 0x29, + 0x2c, 0x61, 0x3d, 0x5b, 0x5d, 0x3b, 0x69, 0x66, 0x28, 0x69, 0x3e, + 0x31, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x72, 0x3e, 0x6f, 0x3b, + 0x29, 0x65, 0x28, 0x6f, 0x29, 0x25, 0x69, 0x7c, 0x7c, 0x61, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, + 0x74, 0x65, 0x28, 0x2b, 0x6f, 0x29, 0x29, 0x2c, 0x74, 0x28, 0x6f, + 0x2c, 0x31, 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x28, 0x3b, 0x72, 0x3e, 0x6f, 0x3b, 0x29, 0x61, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, + 0x65, 0x28, 0x2b, 0x6f, 0x29, 0x29, 0x2c, 0x74, 0x28, 0x6f, 0x2c, + 0x31, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x74, 0x72, 0x79, + 0x7b, 0x63, 0x63, 0x3d, 0x6a, 0x74, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x6a, 0x74, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x2e, 0x5f, 0x3d, 0x6e, 0x2c, + 0x6f, 0x28, 0x72, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7d, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x7b, 0x63, 0x63, 0x3d, 0x44, 0x61, + 0x74, 0x65, 0x7d, 0x7d, 0x6e, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, + 0x3d, 0x6e, 0x2c, 0x6e, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3d, + 0x72, 0x2c, 0x6e, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x3d, 0x75, 0x2c, + 0x6e, 0x2e, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3d, 0x69, 0x2c, + 0x6e, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3d, 0x6f, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x63, 0x3d, 0x6e, 0x2e, 0x75, 0x74, 0x63, 0x3d, + 0x48, 0x74, 0x28, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x63, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x3d, 0x63, + 0x2c, 0x63, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3d, 0x48, 0x74, + 0x28, 0x72, 0x29, 0x2c, 0x63, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x3d, + 0x48, 0x74, 0x28, 0x75, 0x29, 0x2c, 0x63, 0x2e, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x3d, 0x48, 0x74, 0x28, 0x69, 0x29, 0x2c, 0x63, + 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3d, 0x61, 0x2c, 0x6e, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x48, 0x74, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, + 0x65, 0x29, 0x7b, 0x74, 0x72, 0x79, 0x7b, 0x63, 0x63, 0x3d, 0x6a, + 0x74, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x6e, 0x65, 0x77, + 0x20, 0x6a, 0x74, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x72, 0x2e, 0x5f, 0x3d, 0x74, 0x2c, 0x6e, 0x28, 0x72, 0x2c, 0x65, + 0x29, 0x2e, 0x5f, 0x7d, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x6c, 0x79, + 0x7b, 0x63, 0x63, 0x3d, 0x44, 0x61, 0x74, 0x65, 0x7d, 0x7d, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4f, 0x74, + 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x74, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x75, 0x2c, + 0x69, 0x2c, 0x6f, 0x3d, 0x5b, 0x5d, 0x2c, 0x61, 0x3d, 0x2d, 0x31, + 0x2c, 0x63, 0x3d, 0x30, 0x3b, 0x2b, 0x2b, 0x61, 0x3c, 0x72, 0x3b, + 0x29, 0x33, 0x37, 0x3d, 0x3d, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x28, 0x61, 0x29, 0x26, + 0x26, 0x28, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, 0x2e, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x63, 0x2c, 0x61, 0x29, 0x29, + 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x28, 0x75, 0x3d, 0x73, + 0x63, 0x5b, 0x65, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x41, + 0x74, 0x28, 0x2b, 0x2b, 0x61, 0x29, 0x5d, 0x29, 0x26, 0x26, 0x28, + 0x65, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x41, 0x74, 0x28, + 0x2b, 0x2b, 0x61, 0x29, 0x29, 0x2c, 0x28, 0x69, 0x3d, 0x4e, 0x5b, + 0x65, 0x5d, 0x29, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x69, 0x28, 0x74, + 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x75, 0x3f, 0x22, 0x65, + 0x22, 0x3d, 0x3d, 0x3d, 0x65, 0x3f, 0x22, 0x20, 0x22, 0x3a, 0x22, + 0x30, 0x22, 0x3a, 0x75, 0x29, 0x29, 0x2c, 0x6f, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x65, 0x29, 0x2c, 0x63, 0x3d, 0x61, 0x2b, 0x31, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, 0x2e, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x28, 0x63, 0x2c, 0x61, 0x29, 0x29, 0x2c, 0x6f, 0x2e, 0x6a, + 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, 0x29, 0x7d, 0x76, 0x61, 0x72, + 0x20, 0x72, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x70, + 0x61, 0x72, 0x73, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, + 0x3d, 0x7b, 0x79, 0x3a, 0x31, 0x39, 0x30, 0x30, 0x2c, 0x6d, 0x3a, + 0x30, 0x2c, 0x64, 0x3a, 0x31, 0x2c, 0x48, 0x3a, 0x30, 0x2c, 0x4d, + 0x3a, 0x30, 0x2c, 0x53, 0x3a, 0x30, 0x2c, 0x4c, 0x3a, 0x30, 0x2c, + 0x5a, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x2c, 0x75, 0x3d, 0x65, + 0x28, 0x72, 0x2c, 0x6e, 0x2c, 0x74, 0x2c, 0x30, 0x29, 0x3b, 0x69, + 0x66, 0x28, 0x75, 0x21, 0x3d, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x3b, 0x22, 0x70, 0x22, 0x69, 0x6e, 0x20, 0x72, + 0x26, 0x26, 0x28, 0x72, 0x2e, 0x48, 0x3d, 0x72, 0x2e, 0x48, 0x25, + 0x31, 0x32, 0x2b, 0x31, 0x32, 0x2a, 0x72, 0x2e, 0x70, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x21, + 0x3d, 0x72, 0x2e, 0x5a, 0x26, 0x26, 0x63, 0x63, 0x21, 0x3d, 0x3d, + 0x6a, 0x74, 0x2c, 0x6f, 0x3d, 0x6e, 0x65, 0x77, 0x28, 0x69, 0x3f, + 0x6a, 0x74, 0x3a, 0x63, 0x63, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x22, 0x6a, 0x22, 0x69, 0x6e, 0x20, 0x72, 0x3f, 0x6f, + 0x2e, 0x73, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x59, 0x65, 0x61, + 0x72, 0x28, 0x72, 0x2e, 0x79, 0x2c, 0x30, 0x2c, 0x72, 0x2e, 0x6a, + 0x29, 0x3a, 0x22, 0x77, 0x22, 0x69, 0x6e, 0x20, 0x72, 0x26, 0x26, + 0x28, 0x22, 0x57, 0x22, 0x69, 0x6e, 0x20, 0x72, 0x7c, 0x7c, 0x22, + 0x55, 0x22, 0x69, 0x6e, 0x20, 0x72, 0x29, 0x3f, 0x28, 0x6f, 0x2e, + 0x73, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x28, 0x72, 0x2e, 0x79, 0x2c, 0x30, 0x2c, 0x31, 0x29, 0x2c, 0x6f, + 0x2e, 0x73, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x59, 0x65, 0x61, + 0x72, 0x28, 0x72, 0x2e, 0x79, 0x2c, 0x30, 0x2c, 0x22, 0x57, 0x22, + 0x69, 0x6e, 0x20, 0x72, 0x3f, 0x28, 0x72, 0x2e, 0x77, 0x2b, 0x36, + 0x29, 0x25, 0x37, 0x2b, 0x37, 0x2a, 0x72, 0x2e, 0x57, 0x2d, 0x28, + 0x6f, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x61, 0x79, 0x28, 0x29, 0x2b, + 0x35, 0x29, 0x25, 0x37, 0x3a, 0x72, 0x2e, 0x77, 0x2b, 0x37, 0x2a, + 0x72, 0x2e, 0x55, 0x2d, 0x28, 0x6f, 0x2e, 0x67, 0x65, 0x74, 0x44, + 0x61, 0x79, 0x28, 0x29, 0x2b, 0x36, 0x29, 0x25, 0x37, 0x29, 0x29, + 0x3a, 0x6f, 0x2e, 0x73, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x59, + 0x65, 0x61, 0x72, 0x28, 0x72, 0x2e, 0x79, 0x2c, 0x72, 0x2e, 0x6d, + 0x2c, 0x72, 0x2e, 0x64, 0x29, 0x2c, 0x6f, 0x2e, 0x73, 0x65, 0x74, + 0x48, 0x6f, 0x75, 0x72, 0x73, 0x28, 0x72, 0x2e, 0x48, 0x2b, 0x28, + 0x72, 0x2e, 0x5a, 0x2f, 0x31, 0x30, 0x30, 0x7c, 0x30, 0x29, 0x2c, + 0x72, 0x2e, 0x4d, 0x2b, 0x72, 0x2e, 0x5a, 0x25, 0x31, 0x30, 0x30, + 0x2c, 0x72, 0x2e, 0x53, 0x2c, 0x72, 0x2e, 0x4c, 0x29, 0x2c, 0x69, + 0x3f, 0x6f, 0x2e, 0x5f, 0x3a, 0x6f, 0x7d, 0x2c, 0x74, 0x2e, 0x74, + 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x7d, 0x2c, 0x74, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x2c, 0x61, + 0x3d, 0x30, 0x2c, 0x63, 0x3d, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2c, 0x6c, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x63, 0x3e, 0x61, 0x3b, 0x29, 0x7b, 0x69, 0x66, + 0x28, 0x72, 0x3e, 0x3d, 0x6c, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x2d, 0x31, 0x3b, 0x69, 0x66, 0x28, 0x75, 0x3d, 0x74, 0x2e, + 0x63, 0x68, 0x61, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x28, + 0x61, 0x2b, 0x2b, 0x29, 0x2c, 0x33, 0x37, 0x3d, 0x3d, 0x3d, 0x75, + 0x29, 0x7b, 0x69, 0x66, 0x28, 0x6f, 0x3d, 0x74, 0x2e, 0x63, 0x68, + 0x61, 0x72, 0x41, 0x74, 0x28, 0x61, 0x2b, 0x2b, 0x29, 0x2c, 0x69, + 0x3d, 0x43, 0x5b, 0x6f, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x63, 0x3f, + 0x74, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x41, 0x74, 0x28, 0x61, 0x2b, + 0x2b, 0x29, 0x3a, 0x6f, 0x5d, 0x2c, 0x21, 0x69, 0x7c, 0x7c, 0x28, + 0x72, 0x3d, 0x69, 0x28, 0x6e, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x29, + 0x3c, 0x30, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2d, 0x31, + 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x75, 0x21, + 0x3d, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x41, 0x74, 0x28, 0x72, 0x2b, 0x2b, 0x29, 0x29, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x2d, 0x31, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x72, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, + 0x5f, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x3d, 0x30, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x5f, 0x2e, + 0x65, 0x78, 0x65, 0x63, 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x28, 0x65, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x72, 0x3f, 0x28, 0x6e, 0x2e, 0x77, 0x3d, 0x77, 0x2e, + 0x67, 0x65, 0x74, 0x28, 0x72, 0x5b, 0x30, 0x5d, 0x2e, 0x74, 0x6f, + 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, 0x28, 0x29, + 0x29, 0x2c, 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3a, 0x2d, 0x31, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x78, 0x2e, 0x6c, 0x61, 0x73, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x72, 0x3d, 0x78, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x28, 0x74, + 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x65, 0x29, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3f, 0x28, 0x6e, + 0x2e, 0x77, 0x3d, 0x62, 0x2e, 0x67, 0x65, 0x74, 0x28, 0x72, 0x5b, + 0x30, 0x5d, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x43, + 0x61, 0x73, 0x65, 0x28, 0x29, 0x29, 0x2c, 0x65, 0x2b, 0x72, 0x5b, + 0x30, 0x5d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3a, + 0x2d, 0x31, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x45, + 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, + 0x30, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x45, 0x2e, 0x65, + 0x78, 0x65, 0x63, 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, + 0x28, 0x65, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x72, 0x3f, 0x28, 0x6e, 0x2e, 0x6d, 0x3d, 0x41, 0x2e, 0x67, + 0x65, 0x74, 0x28, 0x72, 0x5b, 0x30, 0x5d, 0x2e, 0x74, 0x6f, 0x4c, + 0x6f, 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, 0x28, 0x29, 0x29, + 0x2c, 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x3a, 0x2d, 0x31, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x7b, 0x53, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x53, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x28, 0x74, 0x2e, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x65, 0x29, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3f, 0x28, 0x6e, 0x2e, + 0x6d, 0x3d, 0x6b, 0x2e, 0x67, 0x65, 0x74, 0x28, 0x72, 0x5b, 0x30, + 0x5d, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x61, + 0x73, 0x65, 0x28, 0x29, 0x29, 0x2c, 0x65, 0x2b, 0x72, 0x5b, 0x30, + 0x5d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3a, 0x2d, + 0x31, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x72, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x2c, 0x4e, 0x2e, + 0x63, 0x2e, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x29, 0x2c, 0x74, 0x2c, 0x72, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x28, 0x6e, 0x2c, 0x74, 0x2c, + 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, + 0x28, 0x6e, 0x2c, 0x4e, 0x2e, 0x78, 0x2e, 0x74, 0x6f, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x2c, 0x74, 0x2c, 0x72, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x2c, 0x4e, 0x2e, 0x58, + 0x2e, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, + 0x2c, 0x74, 0x2c, 0x72, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x4d, 0x2e, 0x67, + 0x65, 0x74, 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, + 0x65, 0x2c, 0x65, 0x2b, 0x3d, 0x32, 0x29, 0x2e, 0x74, 0x6f, 0x4c, + 0x6f, 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, 0x28, 0x29, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x75, 0x6c, + 0x6c, 0x3d, 0x3d, 0x72, 0x3f, 0x2d, 0x31, 0x3a, 0x28, 0x6e, 0x2e, + 0x70, 0x3d, 0x72, 0x2c, 0x65, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x66, 0x3d, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x2c, 0x68, 0x3d, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x65, 0x2c, + 0x67, 0x3d, 0x6e, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2c, 0x70, 0x3d, + 0x6e, 0x2e, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x2c, 0x76, + 0x3d, 0x6e, 0x2e, 0x64, 0x61, 0x79, 0x73, 0x2c, 0x64, 0x3d, 0x6e, + 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x79, 0x73, 0x2c, + 0x6d, 0x3d, 0x6e, 0x2e, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x2c, + 0x79, 0x3d, 0x6e, 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x4d, 0x6f, + 0x6e, 0x74, 0x68, 0x73, 0x3b, 0x74, 0x2e, 0x75, 0x74, 0x63, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x28, 0x6e, 0x29, 0x7b, 0x74, 0x72, 0x79, 0x7b, 0x63, 0x63, 0x3d, + 0x6a, 0x74, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x65, + 0x77, 0x20, 0x63, 0x63, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x2e, 0x5f, 0x3d, 0x6e, 0x2c, 0x72, 0x28, 0x74, 0x29, + 0x7d, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x7b, 0x63, 0x63, + 0x3d, 0x44, 0x61, 0x74, 0x65, 0x7d, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x74, 0x28, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x74, 0x72, 0x79, 0x7b, 0x63, 0x63, 0x3d, 0x6a, 0x74, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x72, 0x2e, 0x70, 0x61, 0x72, + 0x73, 0x65, 0x28, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x26, 0x26, 0x74, 0x2e, 0x5f, 0x7d, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x7b, 0x63, 0x63, 0x3d, 0x44, 0x61, + 0x74, 0x65, 0x7d, 0x7d, 0x2c, 0x65, 0x2e, 0x74, 0x6f, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3d, 0x72, 0x2e, 0x74, 0x6f, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x2c, 0x65, 0x7d, 0x2c, 0x74, 0x2e, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x3d, 0x74, 0x2e, 0x75, 0x74, 0x63, 0x2e, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x3d, 0x61, 0x65, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x4d, 0x3d, 0x74, 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x28, + 0x29, 0x2c, 0x78, 0x3d, 0x59, 0x74, 0x28, 0x76, 0x29, 0x2c, 0x62, + 0x3d, 0x5a, 0x74, 0x28, 0x76, 0x29, 0x2c, 0x5f, 0x3d, 0x59, 0x74, + 0x28, 0x64, 0x29, 0x2c, 0x77, 0x3d, 0x5a, 0x74, 0x28, 0x64, 0x29, + 0x2c, 0x53, 0x3d, 0x59, 0x74, 0x28, 0x6d, 0x29, 0x2c, 0x6b, 0x3d, + 0x5a, 0x74, 0x28, 0x6d, 0x29, 0x2c, 0x45, 0x3d, 0x59, 0x74, 0x28, + 0x79, 0x29, 0x2c, 0x41, 0x3d, 0x5a, 0x74, 0x28, 0x79, 0x29, 0x3b, + 0x70, 0x2e, 0x66, 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x4d, 0x2e, 0x73, 0x65, 0x74, 0x28, 0x6e, 0x2e, 0x74, + 0x6f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, 0x28, + 0x29, 0x2c, 0x74, 0x29, 0x7d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x4e, 0x3d, 0x7b, 0x61, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x64, 0x5b, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x61, + 0x79, 0x28, 0x29, 0x5d, 0x7d, 0x2c, 0x41, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x76, 0x5b, 0x6e, 0x2e, 0x67, 0x65, + 0x74, 0x44, 0x61, 0x79, 0x28, 0x29, 0x5d, 0x7d, 0x2c, 0x62, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x79, 0x5b, 0x6e, + 0x2e, 0x67, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x28, 0x29, + 0x5d, 0x7d, 0x2c, 0x42, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6d, 0x5b, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x4d, 0x6f, + 0x6e, 0x74, 0x68, 0x28, 0x29, 0x5d, 0x7d, 0x2c, 0x63, 0x3a, 0x74, + 0x28, 0x66, 0x29, 0x2c, 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x74, 0x28, 0x6e, 0x2e, 0x67, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x2c, 0x74, 0x2c, + 0x32, 0x29, 0x7d, 0x2c, 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x74, 0x28, 0x6e, 0x2e, 0x67, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x2c, 0x74, 0x2c, + 0x32, 0x29, 0x7d, 0x2c, 0x48, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x74, 0x28, 0x6e, 0x2e, 0x67, + 0x65, 0x74, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x28, 0x29, 0x2c, 0x74, + 0x2c, 0x32, 0x29, 0x7d, 0x2c, 0x49, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x74, 0x28, 0x6e, 0x2e, + 0x67, 0x65, 0x74, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x28, 0x29, 0x25, + 0x31, 0x32, 0x7c, 0x7c, 0x31, 0x32, 0x2c, 0x74, 0x2c, 0x32, 0x29, + 0x7d, 0x2c, 0x6a, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x49, 0x74, 0x28, 0x31, 0x2b, 0x61, 0x63, 0x2e, + 0x64, 0x61, 0x79, 0x4f, 0x66, 0x59, 0x65, 0x61, 0x72, 0x28, 0x6e, + 0x29, 0x2c, 0x74, 0x2c, 0x33, 0x29, 0x7d, 0x2c, 0x4c, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x74, + 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x4d, 0x69, 0x6c, 0x6c, 0x69, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x28, 0x29, 0x2c, 0x74, + 0x2c, 0x33, 0x29, 0x7d, 0x2c, 0x6d, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x74, 0x28, 0x6e, 0x2e, + 0x67, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x28, 0x29, 0x2b, + 0x31, 0x2c, 0x74, 0x2c, 0x32, 0x29, 0x7d, 0x2c, 0x4d, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x74, + 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x75, 0x74, + 0x65, 0x73, 0x28, 0x29, 0x2c, 0x74, 0x2c, 0x32, 0x29, 0x7d, 0x2c, + 0x70, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, + 0x5b, 0x2b, 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x48, 0x6f, 0x75, + 0x72, 0x73, 0x28, 0x29, 0x3e, 0x3d, 0x31, 0x32, 0x29, 0x5d, 0x7d, + 0x2c, 0x53, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x49, 0x74, 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x28, 0x29, 0x2c, 0x74, 0x2c, + 0x32, 0x29, 0x7d, 0x2c, 0x55, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x74, 0x28, 0x61, 0x63, 0x2e, + 0x73, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x59, 0x65, 0x61, + 0x72, 0x28, 0x6e, 0x29, 0x2c, 0x74, 0x2c, 0x32, 0x29, 0x7d, 0x2c, + 0x77, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x67, 0x65, 0x74, 0x44, 0x61, 0x79, 0x28, 0x29, 0x7d, 0x2c, + 0x57, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x49, 0x74, 0x28, 0x61, 0x63, 0x2e, 0x6d, 0x6f, 0x6e, 0x64, + 0x61, 0x79, 0x4f, 0x66, 0x59, 0x65, 0x61, 0x72, 0x28, 0x6e, 0x29, + 0x2c, 0x74, 0x2c, 0x32, 0x29, 0x7d, 0x2c, 0x78, 0x3a, 0x74, 0x28, + 0x68, 0x29, 0x2c, 0x58, 0x3a, 0x74, 0x28, 0x67, 0x29, 0x2c, 0x79, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x49, 0x74, 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, + 0x6c, 0x59, 0x65, 0x61, 0x72, 0x28, 0x29, 0x25, 0x31, 0x30, 0x30, + 0x2c, 0x74, 0x2c, 0x32, 0x29, 0x7d, 0x2c, 0x59, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x49, 0x74, 0x28, + 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x28, 0x29, 0x25, 0x31, 0x65, 0x34, 0x2c, 0x74, 0x2c, + 0x34, 0x29, 0x7d, 0x2c, 0x5a, 0x3a, 0x69, 0x65, 0x2c, 0x22, 0x25, + 0x22, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x25, 0x22, + 0x7d, 0x7d, 0x2c, 0x43, 0x3d, 0x7b, 0x61, 0x3a, 0x72, 0x2c, 0x41, + 0x3a, 0x75, 0x2c, 0x62, 0x3a, 0x69, 0x2c, 0x42, 0x3a, 0x6f, 0x2c, + 0x63, 0x3a, 0x61, 0x2c, 0x64, 0x3a, 0x51, 0x74, 0x2c, 0x65, 0x3a, + 0x51, 0x74, 0x2c, 0x48, 0x3a, 0x74, 0x65, 0x2c, 0x49, 0x3a, 0x74, + 0x65, 0x2c, 0x6a, 0x3a, 0x6e, 0x65, 0x2c, 0x4c, 0x3a, 0x75, 0x65, + 0x2c, 0x6d, 0x3a, 0x4b, 0x74, 0x2c, 0x4d, 0x3a, 0x65, 0x65, 0x2c, + 0x70, 0x3a, 0x73, 0x2c, 0x53, 0x3a, 0x72, 0x65, 0x2c, 0x55, 0x3a, + 0x58, 0x74, 0x2c, 0x77, 0x3a, 0x56, 0x74, 0x2c, 0x57, 0x3a, 0x24, + 0x74, 0x2c, 0x78, 0x3a, 0x63, 0x2c, 0x58, 0x3a, 0x6c, 0x2c, 0x79, + 0x3a, 0x57, 0x74, 0x2c, 0x59, 0x3a, 0x42, 0x74, 0x2c, 0x5a, 0x3a, + 0x4a, 0x74, 0x2c, 0x22, 0x25, 0x22, 0x3a, 0x6f, 0x65, 0x7d, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x49, 0x74, 0x28, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, + 0x3d, 0x30, 0x3e, 0x6e, 0x3f, 0x22, 0x2d, 0x22, 0x3a, 0x22, 0x22, + 0x2c, 0x75, 0x3d, 0x28, 0x72, 0x3f, 0x2d, 0x6e, 0x3a, 0x6e, 0x29, + 0x2b, 0x22, 0x22, 0x2c, 0x69, 0x3d, 0x75, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x72, 0x2b, 0x28, 0x65, 0x3e, 0x69, 0x3f, 0x6e, 0x65, 0x77, 0x20, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x65, 0x2d, 0x69, 0x2b, 0x31, + 0x29, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x74, 0x29, 0x2b, 0x75, + 0x3a, 0x75, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x59, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x52, 0x65, 0x67, + 0x45, 0x78, 0x70, 0x28, 0x22, 0x5e, 0x28, 0x3f, 0x3a, 0x22, 0x2b, + 0x6e, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x74, 0x61, 0x2e, 0x72, 0x65, + 0x71, 0x75, 0x6f, 0x74, 0x65, 0x29, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, + 0x28, 0x22, 0x7c, 0x22, 0x29, 0x2b, 0x22, 0x29, 0x22, 0x2c, 0x22, + 0x69, 0x22, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x5a, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x65, 0x77, 0x20, + 0x6c, 0x2c, 0x65, 0x3d, 0x2d, 0x31, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x65, 0x3c, + 0x72, 0x3b, 0x29, 0x74, 0x2e, 0x73, 0x65, 0x74, 0x28, 0x6e, 0x5b, + 0x65, 0x5d, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x43, + 0x61, 0x73, 0x65, 0x28, 0x29, 0x2c, 0x65, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56, 0x74, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x63, 0x2e, 0x6c, 0x61, 0x73, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x72, 0x3d, 0x66, 0x63, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x28, + 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x65, 0x2c, 0x65, + 0x2b, 0x31, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x72, 0x3f, 0x28, 0x6e, 0x2e, 0x77, 0x3d, 0x2b, 0x72, 0x5b, + 0x30, 0x5d, 0x2c, 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3a, 0x2d, 0x31, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x58, 0x74, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x63, 0x2e, 0x6c, + 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x66, 0x63, 0x2e, 0x65, 0x78, + 0x65, 0x63, 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, + 0x65, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x72, 0x3f, 0x28, 0x6e, 0x2e, 0x55, 0x3d, 0x2b, 0x72, 0x5b, 0x30, + 0x5d, 0x2c, 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3a, 0x2d, 0x31, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x24, 0x74, 0x28, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x63, 0x2e, 0x6c, 0x61, + 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3d, 0x66, 0x63, 0x2e, 0x65, 0x78, 0x65, + 0x63, 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x65, + 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, + 0x3f, 0x28, 0x6e, 0x2e, 0x57, 0x3d, 0x2b, 0x72, 0x5b, 0x30, 0x5d, + 0x2c, 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x3a, 0x2d, 0x31, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x74, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x63, 0x2e, 0x6c, 0x61, 0x73, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x72, 0x3d, 0x66, 0x63, 0x2e, 0x65, 0x78, 0x65, 0x63, + 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x65, 0x2c, + 0x65, 0x2b, 0x34, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x72, 0x3f, 0x28, 0x6e, 0x2e, 0x79, 0x3d, 0x2b, 0x72, + 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3a, 0x2d, 0x31, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x74, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x63, 0x2e, + 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x66, 0x63, 0x2e, 0x65, + 0x78, 0x65, 0x63, 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, + 0x28, 0x65, 0x2c, 0x65, 0x2b, 0x32, 0x29, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3f, 0x28, 0x6e, 0x2e, 0x79, + 0x3d, 0x47, 0x74, 0x28, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x29, 0x2c, + 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x3a, 0x2d, 0x31, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4a, 0x74, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2f, + 0x5e, 0x5b, 0x2b, 0x2d, 0x5d, 0x5c, 0x64, 0x7b, 0x34, 0x7d, 0x24, + 0x2f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x28, 0x74, 0x3d, 0x74, 0x2e, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x65, 0x2c, 0x65, 0x2b, 0x35, + 0x29, 0x29, 0x3f, 0x28, 0x6e, 0x2e, 0x5a, 0x3d, 0x2d, 0x74, 0x2c, + 0x65, 0x2b, 0x35, 0x29, 0x3a, 0x2d, 0x31, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x47, 0x74, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2b, 0x28, + 0x6e, 0x3e, 0x36, 0x38, 0x3f, 0x31, 0x39, 0x30, 0x30, 0x3a, 0x32, + 0x65, 0x33, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x4b, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, + 0x7b, 0x66, 0x63, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x3d, 0x30, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, + 0x66, 0x63, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x28, 0x74, 0x2e, 0x73, + 0x6c, 0x69, 0x63, 0x65, 0x28, 0x65, 0x2c, 0x65, 0x2b, 0x32, 0x29, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3f, + 0x28, 0x6e, 0x2e, 0x6d, 0x3d, 0x72, 0x5b, 0x30, 0x5d, 0x2d, 0x31, + 0x2c, 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x3a, 0x2d, 0x31, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x51, 0x74, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x63, 0x2e, 0x6c, 0x61, 0x73, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x72, 0x3d, 0x66, 0x63, 0x2e, 0x65, 0x78, 0x65, 0x63, + 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x65, 0x2c, + 0x65, 0x2b, 0x32, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x72, 0x3f, 0x28, 0x6e, 0x2e, 0x64, 0x3d, 0x2b, 0x72, + 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3a, 0x2d, 0x31, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x65, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x63, 0x2e, + 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x66, 0x63, 0x2e, 0x65, + 0x78, 0x65, 0x63, 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, + 0x28, 0x65, 0x2c, 0x65, 0x2b, 0x33, 0x29, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3f, 0x28, 0x6e, 0x2e, 0x6a, + 0x3d, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x2b, 0x72, 0x5b, + 0x30, 0x5d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3a, + 0x2d, 0x31, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, + 0x66, 0x63, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x3d, 0x30, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x66, + 0x63, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x28, 0x74, 0x2e, 0x73, 0x6c, + 0x69, 0x63, 0x65, 0x28, 0x65, 0x2c, 0x65, 0x2b, 0x32, 0x29, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3f, 0x28, + 0x6e, 0x2e, 0x48, 0x3d, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x65, + 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x3a, 0x2d, 0x31, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2c, + 0x65, 0x29, 0x7b, 0x66, 0x63, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x66, 0x63, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x28, 0x74, + 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x65, 0x2c, 0x65, 0x2b, + 0x32, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x72, 0x3f, 0x28, 0x6e, 0x2e, 0x4d, 0x3d, 0x2b, 0x72, 0x5b, 0x30, + 0x5d, 0x2c, 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3a, 0x2d, 0x31, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x28, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x63, 0x2e, 0x6c, 0x61, + 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3d, 0x66, 0x63, 0x2e, 0x65, 0x78, 0x65, + 0x63, 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x65, + 0x2c, 0x65, 0x2b, 0x32, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x72, 0x3f, 0x28, 0x6e, 0x2e, 0x53, 0x3d, 0x2b, + 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3a, 0x2d, 0x31, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, + 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x63, + 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, + 0x30, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x66, 0x63, 0x2e, + 0x65, 0x78, 0x65, 0x63, 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x28, 0x65, 0x2c, 0x65, 0x2b, 0x33, 0x29, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3f, 0x28, 0x6e, 0x2e, + 0x4c, 0x3d, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x2b, 0x72, + 0x5b, 0x30, 0x5d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, + 0x3a, 0x2d, 0x31, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x69, 0x65, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x28, 0x29, 0x2c, 0x65, 0x3d, 0x74, 0x3e, 0x30, 0x3f, 0x22, 0x2d, + 0x22, 0x3a, 0x22, 0x2b, 0x22, 0x2c, 0x72, 0x3d, 0x67, 0x61, 0x28, + 0x74, 0x29, 0x2f, 0x36, 0x30, 0x7c, 0x30, 0x2c, 0x75, 0x3d, 0x67, + 0x61, 0x28, 0x74, 0x29, 0x25, 0x36, 0x30, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x65, 0x2b, 0x49, 0x74, 0x28, 0x72, 0x2c, + 0x22, 0x30, 0x22, 0x2c, 0x32, 0x29, 0x2b, 0x49, 0x74, 0x28, 0x75, + 0x2c, 0x22, 0x30, 0x22, 0x2c, 0x32, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x65, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x68, 0x63, 0x2e, 0x6c, 0x61, 0x73, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x72, 0x3d, 0x68, 0x63, 0x2e, 0x65, 0x78, 0x65, 0x63, + 0x28, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x65, 0x2c, + 0x65, 0x2b, 0x31, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x72, 0x3f, 0x65, 0x2b, 0x72, 0x5b, 0x30, 0x5d, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3a, 0x2d, 0x31, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x65, 0x28, + 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, + 0x65, 0x3d, 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x65, 0x3c, 0x74, 0x3b, + 0x29, 0x6e, 0x5b, 0x65, 0x5d, 0x5b, 0x30, 0x5d, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x28, 0x6e, 0x5b, 0x65, 0x5d, 0x5b, 0x30, 0x5d, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x30, 0x2c, 0x72, + 0x3d, 0x6e, 0x5b, 0x65, 0x5d, 0x3b, 0x21, 0x72, 0x5b, 0x31, 0x5d, + 0x28, 0x74, 0x29, 0x3b, 0x29, 0x72, 0x3d, 0x6e, 0x5b, 0x2b, 0x2b, + 0x65, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, + 0x5b, 0x30, 0x5d, 0x28, 0x74, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x65, 0x28, 0x29, 0x7b, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, + 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x72, 0x3d, 0x65, 0x2e, 0x73, 0x3d, 0x6e, 0x2b, 0x74, + 0x2c, 0x75, 0x3d, 0x72, 0x2d, 0x6e, 0x2c, 0x69, 0x3d, 0x72, 0x2d, + 0x75, 0x3b, 0x65, 0x2e, 0x74, 0x3d, 0x6e, 0x2d, 0x69, 0x2b, 0x28, + 0x74, 0x2d, 0x75, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x6e, 0x26, 0x26, 0x64, 0x63, 0x2e, 0x68, 0x61, 0x73, 0x4f, 0x77, + 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x6e, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x29, 0x26, 0x26, 0x64, 0x63, 0x5b, + 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x5d, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, 0x3d, 0x2d, 0x31, 0x2c, 0x69, + 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x65, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x3b, 0x2b, 0x2b, 0x75, + 0x3c, 0x69, 0x3b, 0x29, 0x72, 0x3d, 0x6e, 0x5b, 0x75, 0x5d, 0x2c, + 0x74, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x72, 0x5b, 0x30, + 0x5d, 0x2c, 0x72, 0x5b, 0x31, 0x5d, 0x2c, 0x72, 0x5b, 0x32, 0x5d, + 0x29, 0x3b, 0x74, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, + 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x68, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3d, 0x2d, 0x31, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x66, 0x6f, 0x72, 0x28, + 0x74, 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x28, 0x29, 0x3b, 0x2b, 0x2b, 0x65, 0x3c, 0x72, + 0x3b, 0x29, 0x66, 0x65, 0x28, 0x6e, 0x5b, 0x65, 0x5d, 0x2c, 0x74, + 0x2c, 0x31, 0x29, 0x3b, 0x74, 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x67, + 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, 0x65, 0x28, 0x29, 0x7b, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x2a, 0x3d, 0x44, 0x61, 0x2c, + 0x74, 0x3d, 0x74, 0x2a, 0x44, 0x61, 0x2f, 0x32, 0x2b, 0x71, 0x61, + 0x2f, 0x34, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x2d, + 0x72, 0x2c, 0x6f, 0x3d, 0x65, 0x3e, 0x3d, 0x30, 0x3f, 0x31, 0x3a, + 0x2d, 0x31, 0x2c, 0x61, 0x3d, 0x6f, 0x2a, 0x65, 0x2c, 0x63, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x74, 0x29, + 0x2c, 0x6c, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, + 0x28, 0x74, 0x29, 0x2c, 0x73, 0x3d, 0x69, 0x2a, 0x6c, 0x2c, 0x66, + 0x3d, 0x75, 0x2a, 0x63, 0x2b, 0x73, 0x2a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x61, 0x29, 0x2c, 0x68, 0x3d, 0x73, + 0x2a, 0x6f, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, + 0x28, 0x61, 0x29, 0x3b, 0x79, 0x63, 0x2e, 0x61, 0x64, 0x64, 0x28, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, + 0x68, 0x2c, 0x66, 0x29, 0x29, 0x2c, 0x72, 0x3d, 0x6e, 0x2c, 0x75, + 0x3d, 0x63, 0x2c, 0x69, 0x3d, 0x6c, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x3b, 0x4d, + 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6f, 0x2c, 0x61, 0x29, 0x7b, + 0x4d, 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x6e, 0x2c, + 0x72, 0x3d, 0x28, 0x74, 0x3d, 0x6f, 0x29, 0x2a, 0x44, 0x61, 0x2c, + 0x75, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, + 0x61, 0x3d, 0x28, 0x65, 0x3d, 0x61, 0x29, 0x2a, 0x44, 0x61, 0x2f, + 0x32, 0x2b, 0x71, 0x61, 0x2f, 0x34, 0x29, 0x2c, 0x69, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x61, 0x29, 0x7d, + 0x2c, 0x4d, 0x63, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x65, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x5b, 0x30, + 0x5d, 0x2c, 0x65, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x2c, 0x72, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x65, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x72, 0x2a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x74, 0x29, 0x2c, + 0x72, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, + 0x74, 0x29, 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, + 0x28, 0x65, 0x29, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x76, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x5b, 0x30, 0x5d, + 0x2a, 0x74, 0x5b, 0x30, 0x5d, 0x2b, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, + 0x74, 0x5b, 0x31, 0x5d, 0x2b, 0x6e, 0x5b, 0x32, 0x5d, 0x2a, 0x74, + 0x5b, 0x32, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x64, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, + 0x74, 0x5b, 0x32, 0x5d, 0x2d, 0x6e, 0x5b, 0x32, 0x5d, 0x2a, 0x74, + 0x5b, 0x31, 0x5d, 0x2c, 0x6e, 0x5b, 0x32, 0x5d, 0x2a, 0x74, 0x5b, + 0x30, 0x5d, 0x2d, 0x6e, 0x5b, 0x30, 0x5d, 0x2a, 0x74, 0x5b, 0x32, + 0x5d, 0x2c, 0x6e, 0x5b, 0x30, 0x5d, 0x2a, 0x74, 0x5b, 0x31, 0x5d, + 0x2d, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, 0x74, 0x5b, 0x30, 0x5d, 0x5d, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, + 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x5b, 0x30, 0x5d, + 0x2b, 0x3d, 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, + 0x2b, 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x6e, 0x5b, 0x32, 0x5d, + 0x2b, 0x3d, 0x74, 0x5b, 0x32, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x79, 0x65, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x6e, 0x5b, + 0x30, 0x5d, 0x2a, 0x74, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, 0x74, + 0x2c, 0x6e, 0x5b, 0x32, 0x5d, 0x2a, 0x74, 0x5d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4d, 0x65, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x6e, 0x5b, 0x30, 0x5d, + 0x2a, 0x6e, 0x5b, 0x30, 0x5d, 0x2b, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, + 0x6e, 0x5b, 0x31, 0x5d, 0x2b, 0x6e, 0x5b, 0x32, 0x5d, 0x2a, 0x6e, + 0x5b, 0x32, 0x5d, 0x29, 0x3b, 0x6e, 0x5b, 0x30, 0x5d, 0x2f, 0x3d, + 0x74, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, 0x2f, 0x3d, 0x74, 0x2c, 0x6e, + 0x5b, 0x32, 0x5d, 0x2f, 0x3d, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x78, 0x65, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x6e, 0x5b, 0x31, 0x5d, + 0x2c, 0x6e, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x74, 0x74, 0x28, 0x6e, + 0x5b, 0x32, 0x5d, 0x29, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x67, 0x61, 0x28, + 0x6e, 0x5b, 0x30, 0x5d, 0x2d, 0x74, 0x5b, 0x30, 0x5d, 0x29, 0x3c, + 0x43, 0x61, 0x26, 0x26, 0x67, 0x61, 0x28, 0x6e, 0x5b, 0x31, 0x5d, + 0x2d, 0x74, 0x5b, 0x31, 0x5d, 0x29, 0x3c, 0x43, 0x61, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x65, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x2a, 0x3d, 0x44, 0x61, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x63, 0x6f, 0x73, 0x28, 0x74, 0x2a, 0x3d, 0x44, 0x61, 0x29, 0x3b, + 0x77, 0x65, 0x28, 0x65, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, + 0x6f, 0x73, 0x28, 0x6e, 0x29, 0x2c, 0x65, 0x2a, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6e, 0x29, 0x2c, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x74, 0x29, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x65, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x2b, 0x2b, 0x78, + 0x63, 0x2c, 0x5f, 0x63, 0x2b, 0x3d, 0x28, 0x6e, 0x2d, 0x5f, 0x63, + 0x29, 0x2f, 0x78, 0x63, 0x2c, 0x77, 0x63, 0x2b, 0x3d, 0x28, 0x74, + 0x2d, 0x77, 0x63, 0x29, 0x2f, 0x78, 0x63, 0x2c, 0x53, 0x63, 0x2b, + 0x3d, 0x28, 0x65, 0x2d, 0x53, 0x63, 0x29, 0x2f, 0x78, 0x63, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x65, + 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6e, 0x28, 0x6e, 0x2c, 0x75, 0x29, 0x7b, 0x6e, 0x2a, 0x3d, + 0x44, 0x61, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x75, 0x2a, 0x3d, 0x44, + 0x61, 0x29, 0x2c, 0x6f, 0x3d, 0x69, 0x2a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x6e, 0x29, 0x2c, 0x61, 0x3d, 0x69, + 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6e, + 0x29, 0x2c, 0x63, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, + 0x6e, 0x28, 0x75, 0x29, 0x2c, 0x6c, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x28, 0x6c, 0x3d, 0x65, 0x2a, + 0x63, 0x2d, 0x72, 0x2a, 0x61, 0x29, 0x2a, 0x6c, 0x2b, 0x28, 0x6c, + 0x3d, 0x72, 0x2a, 0x6f, 0x2d, 0x74, 0x2a, 0x63, 0x29, 0x2a, 0x6c, + 0x2b, 0x28, 0x6c, 0x3d, 0x74, 0x2a, 0x61, 0x2d, 0x65, 0x2a, 0x6f, + 0x29, 0x2a, 0x6c, 0x29, 0x2c, 0x74, 0x2a, 0x6f, 0x2b, 0x65, 0x2a, + 0x61, 0x2b, 0x72, 0x2a, 0x63, 0x29, 0x3b, 0x62, 0x63, 0x2b, 0x3d, + 0x6c, 0x2c, 0x6b, 0x63, 0x2b, 0x3d, 0x6c, 0x2a, 0x28, 0x74, 0x2b, + 0x28, 0x74, 0x3d, 0x6f, 0x29, 0x29, 0x2c, 0x45, 0x63, 0x2b, 0x3d, + 0x6c, 0x2a, 0x28, 0x65, 0x2b, 0x28, 0x65, 0x3d, 0x61, 0x29, 0x29, + 0x2c, 0x41, 0x63, 0x2b, 0x3d, 0x6c, 0x2a, 0x28, 0x72, 0x2b, 0x28, + 0x72, 0x3d, 0x63, 0x29, 0x29, 0x2c, 0x77, 0x65, 0x28, 0x74, 0x2c, + 0x65, 0x2c, 0x72, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, + 0x65, 0x2c, 0x72, 0x3b, 0x71, 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x75, 0x2c, 0x69, 0x29, 0x7b, 0x75, 0x2a, 0x3d, 0x44, 0x61, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x63, 0x6f, 0x73, 0x28, 0x69, 0x2a, 0x3d, 0x44, 0x61, 0x29, 0x3b, + 0x74, 0x3d, 0x6f, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, + 0x73, 0x28, 0x75, 0x29, 0x2c, 0x65, 0x3d, 0x6f, 0x2a, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x75, 0x29, 0x2c, 0x72, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x69, + 0x29, 0x2c, 0x71, 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, + 0x6e, 0x2c, 0x77, 0x65, 0x28, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, + 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6b, 0x65, 0x28, 0x29, 0x7b, 0x71, 0x63, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x3d, 0x5f, 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x45, 0x65, 0x28, 0x29, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x6e, 0x2a, 0x3d, 0x44, 0x61, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, + 0x73, 0x28, 0x74, 0x2a, 0x3d, 0x44, 0x61, 0x29, 0x2c, 0x6f, 0x3d, + 0x65, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, + 0x6e, 0x29, 0x2c, 0x61, 0x3d, 0x65, 0x2a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6e, 0x29, 0x2c, 0x63, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x74, 0x29, 0x2c, + 0x6c, 0x3d, 0x75, 0x2a, 0x63, 0x2d, 0x69, 0x2a, 0x61, 0x2c, 0x73, + 0x3d, 0x69, 0x2a, 0x6f, 0x2d, 0x72, 0x2a, 0x63, 0x2c, 0x66, 0x3d, + 0x72, 0x2a, 0x61, 0x2d, 0x75, 0x2a, 0x6f, 0x2c, 0x68, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x6c, 0x2a, + 0x6c, 0x2b, 0x73, 0x2a, 0x73, 0x2b, 0x66, 0x2a, 0x66, 0x29, 0x2c, + 0x67, 0x3d, 0x72, 0x2a, 0x6f, 0x2b, 0x75, 0x2a, 0x61, 0x2b, 0x69, + 0x2a, 0x63, 0x2c, 0x70, 0x3d, 0x68, 0x26, 0x26, 0x2d, 0x6e, 0x74, + 0x28, 0x67, 0x29, 0x2f, 0x68, 0x2c, 0x76, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x68, 0x2c, 0x67, + 0x29, 0x3b, 0x4e, 0x63, 0x2b, 0x3d, 0x70, 0x2a, 0x6c, 0x2c, 0x43, + 0x63, 0x2b, 0x3d, 0x70, 0x2a, 0x73, 0x2c, 0x7a, 0x63, 0x2b, 0x3d, + 0x70, 0x2a, 0x66, 0x2c, 0x62, 0x63, 0x2b, 0x3d, 0x76, 0x2c, 0x6b, + 0x63, 0x2b, 0x3d, 0x76, 0x2a, 0x28, 0x72, 0x2b, 0x28, 0x72, 0x3d, + 0x6f, 0x29, 0x29, 0x2c, 0x45, 0x63, 0x2b, 0x3d, 0x76, 0x2a, 0x28, + 0x75, 0x2b, 0x28, 0x75, 0x3d, 0x61, 0x29, 0x29, 0x2c, 0x41, 0x63, + 0x2b, 0x3d, 0x76, 0x2a, 0x28, 0x69, 0x2b, 0x28, 0x69, 0x3d, 0x63, + 0x29, 0x29, 0x2c, 0x77, 0x65, 0x28, 0x72, 0x2c, 0x75, 0x2c, 0x69, + 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, + 0x2c, 0x75, 0x2c, 0x69, 0x3b, 0x71, 0x63, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6f, 0x2c, 0x61, 0x29, 0x7b, 0x74, 0x3d, 0x6f, 0x2c, 0x65, + 0x3d, 0x61, 0x2c, 0x71, 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x3d, 0x6e, 0x2c, 0x6f, 0x2a, 0x3d, 0x44, 0x61, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x63, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, + 0x73, 0x28, 0x61, 0x2a, 0x3d, 0x44, 0x61, 0x29, 0x3b, 0x72, 0x3d, + 0x63, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, + 0x6f, 0x29, 0x2c, 0x75, 0x3d, 0x63, 0x2a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6f, 0x29, 0x2c, 0x69, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x61, 0x29, 0x2c, + 0x77, 0x65, 0x28, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x29, 0x7d, 0x2c, + 0x71, 0x63, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x2c, 0x71, 0x63, 0x2e, 0x6c, + 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x6b, 0x65, 0x2c, 0x71, + 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x5f, 0x65, 0x7d, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, + 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x65, 0x2c, 0x72, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3d, 0x6e, + 0x28, 0x65, 0x2c, 0x72, 0x29, 0x2c, 0x74, 0x28, 0x65, 0x5b, 0x30, + 0x5d, 0x2c, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x7d, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, + 0x74, 0x26, 0x26, 0x74, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, + 0x26, 0x26, 0x28, 0x65, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, + 0x2c, 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x65, 0x3d, 0x74, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x28, + 0x65, 0x2c, 0x72, 0x29, 0x2c, 0x65, 0x26, 0x26, 0x6e, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x72, 0x74, 0x28, 0x65, 0x5b, 0x30, 0x5d, 0x2c, + 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x7d, 0x29, 0x2c, 0x65, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4e, 0x65, 0x28, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, 0x30, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x65, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x5b, 0x5d, 0x2c, 0x6f, + 0x3d, 0x5b, 0x5d, 0x3b, 0x69, 0x66, 0x28, 0x6e, 0x2e, 0x66, 0x6f, + 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x21, + 0x28, 0x28, 0x74, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2d, 0x31, 0x29, 0x3c, 0x3d, 0x30, 0x29, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, + 0x2c, 0x72, 0x3d, 0x6e, 0x5b, 0x74, 0x5d, 0x3b, 0x69, 0x66, 0x28, + 0x62, 0x65, 0x28, 0x65, 0x2c, 0x72, 0x29, 0x29, 0x7b, 0x75, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, + 0x30, 0x3b, 0x74, 0x3e, 0x61, 0x3b, 0x2b, 0x2b, 0x61, 0x29, 0x75, + 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x28, 0x65, 0x3d, 0x6e, + 0x5b, 0x61, 0x5d, 0x29, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x5b, 0x31, + 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x76, + 0x6f, 0x69, 0x64, 0x20, 0x75, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, + 0x6e, 0x64, 0x28, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x63, 0x3d, + 0x6e, 0x65, 0x77, 0x20, 0x71, 0x65, 0x28, 0x65, 0x2c, 0x6e, 0x2c, + 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x21, 0x30, 0x29, 0x2c, 0x6c, 0x3d, + 0x6e, 0x65, 0x77, 0x20, 0x71, 0x65, 0x28, 0x65, 0x2c, 0x6e, 0x75, + 0x6c, 0x6c, 0x2c, 0x63, 0x2c, 0x21, 0x31, 0x29, 0x3b, 0x63, 0x2e, + 0x6f, 0x3d, 0x6c, 0x2c, 0x69, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x63, 0x29, 0x2c, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x6c, + 0x29, 0x2c, 0x63, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x71, 0x65, 0x28, + 0x72, 0x2c, 0x6e, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x21, 0x31, + 0x29, 0x2c, 0x6c, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x71, 0x65, 0x28, + 0x72, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x63, 0x2c, 0x21, 0x30, + 0x29, 0x2c, 0x63, 0x2e, 0x6f, 0x3d, 0x6c, 0x2c, 0x69, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x63, 0x29, 0x2c, 0x6f, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x6c, 0x29, 0x7d, 0x7d, 0x29, 0x2c, 0x6f, 0x2e, + 0x73, 0x6f, 0x72, 0x74, 0x28, 0x74, 0x29, 0x2c, 0x7a, 0x65, 0x28, + 0x69, 0x29, 0x2c, 0x7a, 0x65, 0x28, 0x6f, 0x29, 0x2c, 0x69, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, 0x30, 0x2c, 0x63, 0x3d, + 0x65, 0x2c, 0x6c, 0x3d, 0x6f, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x6c, 0x3e, 0x61, 0x3b, 0x2b, 0x2b, 0x61, 0x29, 0x6f, + 0x5b, 0x61, 0x5d, 0x2e, 0x65, 0x3d, 0x63, 0x3d, 0x21, 0x63, 0x3b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x73, 0x2c, 0x66, + 0x2c, 0x68, 0x3d, 0x69, 0x5b, 0x30, 0x5d, 0x3b, 0x3b, 0x29, 0x7b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x67, 0x3d, 0x68, + 0x2c, 0x70, 0x3d, 0x21, 0x30, 0x3b, 0x67, 0x2e, 0x76, 0x3b, 0x29, + 0x69, 0x66, 0x28, 0x28, 0x67, 0x3d, 0x67, 0x2e, 0x6e, 0x29, 0x3d, + 0x3d, 0x3d, 0x68, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, + 0x73, 0x3d, 0x67, 0x2e, 0x7a, 0x2c, 0x75, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x3b, 0x64, 0x6f, + 0x7b, 0x69, 0x66, 0x28, 0x67, 0x2e, 0x76, 0x3d, 0x67, 0x2e, 0x6f, + 0x2e, 0x76, 0x3d, 0x21, 0x30, 0x2c, 0x67, 0x2e, 0x65, 0x29, 0x7b, + 0x69, 0x66, 0x28, 0x70, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x61, 0x3d, 0x30, 0x2c, 0x6c, 0x3d, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x6c, 0x3e, 0x61, 0x3b, 0x2b, + 0x2b, 0x61, 0x29, 0x75, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, + 0x28, 0x66, 0x3d, 0x73, 0x5b, 0x61, 0x5d, 0x29, 0x5b, 0x30, 0x5d, + 0x2c, 0x66, 0x5b, 0x31, 0x5d, 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x72, 0x28, 0x67, 0x2e, 0x78, 0x2c, 0x67, 0x2e, 0x6e, 0x2e, + 0x78, 0x2c, 0x31, 0x2c, 0x75, 0x29, 0x3b, 0x67, 0x3d, 0x67, 0x2e, + 0x6e, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x7b, 0x69, 0x66, 0x28, 0x70, + 0x29, 0x7b, 0x73, 0x3d, 0x67, 0x2e, 0x70, 0x2e, 0x7a, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x3b, 0x61, 0x3e, + 0x3d, 0x30, 0x3b, 0x2d, 0x2d, 0x61, 0x29, 0x75, 0x2e, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x28, 0x28, 0x66, 0x3d, 0x73, 0x5b, 0x61, 0x5d, + 0x29, 0x5b, 0x30, 0x5d, 0x2c, 0x66, 0x5b, 0x31, 0x5d, 0x29, 0x7d, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x72, 0x28, 0x67, 0x2e, 0x78, 0x2c, + 0x67, 0x2e, 0x70, 0x2e, 0x78, 0x2c, 0x2d, 0x31, 0x2c, 0x75, 0x29, + 0x3b, 0x67, 0x3d, 0x67, 0x2e, 0x70, 0x7d, 0x67, 0x3d, 0x67, 0x2e, + 0x6f, 0x2c, 0x73, 0x3d, 0x67, 0x2e, 0x7a, 0x2c, 0x70, 0x3d, 0x21, + 0x70, 0x7d, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x21, 0x67, 0x2e, + 0x76, 0x29, 0x3b, 0x75, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, + 0x64, 0x28, 0x29, 0x7d, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x7a, 0x65, 0x28, 0x6e, 0x29, 0x7b, 0x69, + 0x66, 0x28, 0x74, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x3d, 0x30, 0x2c, 0x75, 0x3d, 0x6e, + 0x5b, 0x30, 0x5d, 0x3b, 0x2b, 0x2b, 0x72, 0x3c, 0x74, 0x3b, 0x29, + 0x75, 0x2e, 0x6e, 0x3d, 0x65, 0x3d, 0x6e, 0x5b, 0x72, 0x5d, 0x2c, + 0x65, 0x2e, 0x70, 0x3d, 0x75, 0x2c, 0x75, 0x3d, 0x65, 0x3b, 0x75, + 0x2e, 0x6e, 0x3d, 0x65, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x65, + 0x2e, 0x70, 0x3d, 0x75, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x71, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2c, + 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x78, + 0x3d, 0x6e, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x7a, 0x3d, 0x74, + 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6f, 0x3d, 0x65, 0x2c, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x65, 0x3d, 0x72, 0x2c, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x76, 0x3d, 0x21, 0x31, 0x2c, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x6e, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x4c, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, + 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x75, 0x2c, 0x69, + 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x75, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x3b, 0x6e, 0x28, + 0x74, 0x3d, 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x3d, 0x72, 0x5b, + 0x31, 0x5d, 0x29, 0x26, 0x26, 0x69, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x75, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x3b, 0x64, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, + 0x65, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x28, + 0x29, 0x7b, 0x79, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x61, + 0x2c, 0x64, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6c, 0x28, 0x29, 0x7b, 0x79, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x3d, 0x6f, 0x2c, 0x64, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x45, 0x6e, 0x64, 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x76, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x5b, 0x6e, 0x2c, 0x74, + 0x5d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x75, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x3b, 0x78, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x28, 0x65, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x5b, 0x31, 0x5d, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x66, 0x28, 0x29, 0x7b, 0x78, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, 0x76, 0x3d, 0x5b, 0x5d, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x68, + 0x28, 0x29, 0x7b, 0x73, 0x28, 0x76, 0x5b, 0x30, 0x5d, 0x5b, 0x30, + 0x5d, 0x2c, 0x76, 0x5b, 0x30, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x2c, + 0x78, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x28, 0x29, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x2c, 0x74, 0x3d, 0x78, 0x2e, + 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x28, 0x29, 0x2c, 0x65, 0x3d, 0x4d, + 0x2e, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x29, 0x2c, 0x72, + 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x69, + 0x66, 0x28, 0x76, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2c, 0x70, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x76, 0x29, 0x2c, 0x76, 0x3d, + 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x72, 0x29, 0x69, 0x66, 0x28, 0x31, + 0x26, 0x74, 0x29, 0x7b, 0x6e, 0x3d, 0x65, 0x5b, 0x30, 0x5d, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x75, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x2c, 0x6f, 0x3d, 0x2d, + 0x31, 0x3b, 0x69, 0x66, 0x28, 0x72, 0x3e, 0x30, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x62, 0x7c, 0x7c, 0x28, 0x69, 0x2e, 0x70, 0x6f, + 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, + 0x29, 0x2c, 0x62, 0x3d, 0x21, 0x30, 0x29, 0x2c, 0x69, 0x2e, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x3b, + 0x2b, 0x2b, 0x6f, 0x3c, 0x72, 0x3b, 0x29, 0x69, 0x2e, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x28, 0x28, 0x75, 0x3d, 0x6e, 0x5b, 0x6f, 0x5d, + 0x29, 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x5b, 0x31, 0x5d, 0x29, 0x3b, + 0x69, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x28, 0x29, + 0x7d, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x72, 0x3e, 0x31, 0x26, + 0x26, 0x32, 0x26, 0x74, 0x26, 0x26, 0x65, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x65, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x28, 0x65, 0x2e, 0x73, 0x68, 0x69, + 0x66, 0x74, 0x28, 0x29, 0x29, 0x29, 0x2c, 0x67, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x65, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x28, 0x54, 0x65, 0x29, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x67, + 0x2c, 0x70, 0x2c, 0x76, 0x2c, 0x64, 0x3d, 0x74, 0x28, 0x69, 0x29, + 0x2c, 0x6d, 0x3d, 0x75, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, + 0x28, 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x72, 0x5b, 0x31, 0x5d, 0x29, + 0x2c, 0x79, 0x3d, 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x6f, + 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, + 0x63, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3a, 0x6c, + 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x79, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, + 0x73, 0x2c, 0x79, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x3d, 0x66, 0x2c, 0x79, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x45, 0x6e, 0x64, 0x3d, 0x68, 0x2c, 0x67, 0x3d, 0x5b, 0x5d, 0x2c, + 0x70, 0x3d, 0x5b, 0x5d, 0x7d, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, + 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x79, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x3d, 0x6f, 0x2c, 0x79, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x3d, 0x63, 0x2c, 0x79, 0x2e, 0x6c, + 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x6c, 0x2c, 0x67, 0x3d, + 0x74, 0x61, 0x2e, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x28, 0x67, 0x29, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x46, 0x65, 0x28, 0x6d, + 0x2c, 0x70, 0x29, 0x3b, 0x67, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x62, 0x7c, 0x7c, 0x28, 0x69, 0x2e, 0x70, 0x6f, + 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, + 0x29, 0x2c, 0x62, 0x3d, 0x21, 0x30, 0x29, 0x2c, 0x43, 0x65, 0x28, + 0x67, 0x2c, 0x44, 0x65, 0x2c, 0x6e, 0x2c, 0x65, 0x2c, 0x69, 0x29, + 0x29, 0x3a, 0x6e, 0x26, 0x26, 0x28, 0x62, 0x7c, 0x7c, 0x28, 0x69, + 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x28, 0x29, 0x2c, 0x62, 0x3d, 0x21, 0x30, 0x29, 0x2c, + 0x69, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x28, 0x29, 0x2c, 0x65, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x31, 0x2c, 0x69, 0x29, 0x2c, 0x69, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x29, 0x2c, + 0x62, 0x26, 0x26, 0x28, 0x69, 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x67, + 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x2c, 0x62, 0x3d, 0x21, + 0x31, 0x29, 0x2c, 0x67, 0x3d, 0x70, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, + 0x7d, 0x2c, 0x73, 0x70, 0x68, 0x65, 0x72, 0x65, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x69, 0x2e, + 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x28, 0x29, 0x2c, 0x69, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, 0x65, 0x28, 0x6e, 0x75, + 0x6c, 0x6c, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x31, 0x2c, 0x69, + 0x29, 0x2c, 0x69, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, + 0x28, 0x29, 0x2c, 0x69, 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, + 0x6e, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x7d, 0x7d, 0x2c, 0x4d, 0x3d, + 0x52, 0x65, 0x28, 0x29, 0x2c, 0x78, 0x3d, 0x74, 0x28, 0x4d, 0x29, + 0x2c, 0x62, 0x3d, 0x21, 0x31, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x79, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x54, 0x65, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3e, 0x31, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x52, 0x65, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x6e, 0x2c, 0x74, 0x3d, 0x5b, 0x5d, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x7b, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, + 0x3d, 0x5b, 0x5d, 0x29, 0x7d, 0x2c, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x2c, 0x65, 0x29, 0x7b, 0x6e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x5b, 0x74, 0x2c, 0x65, 0x5d, 0x29, 0x7d, 0x2c, 0x6c, 0x69, 0x6e, + 0x65, 0x45, 0x6e, 0x64, 0x3a, 0x62, 0x2c, 0x62, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x74, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x3d, 0x5b, 0x5d, + 0x2c, 0x6e, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x65, 0x7d, 0x2c, + 0x72, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x31, 0x26, 0x26, 0x74, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x74, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x28, 0x74, 0x2e, 0x73, + 0x68, 0x69, 0x66, 0x74, 0x28, 0x29, 0x29, 0x29, 0x7d, 0x7d, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x44, 0x65, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x28, 0x28, 0x6e, 0x3d, 0x6e, 0x2e, 0x78, 0x29, 0x5b, 0x30, + 0x5d, 0x3c, 0x30, 0x3f, 0x6e, 0x5b, 0x31, 0x5d, 0x2d, 0x52, 0x61, + 0x2d, 0x43, 0x61, 0x3a, 0x52, 0x61, 0x2d, 0x6e, 0x5b, 0x31, 0x5d, + 0x29, 0x2d, 0x28, 0x28, 0x74, 0x3d, 0x74, 0x2e, 0x78, 0x29, 0x5b, + 0x30, 0x5d, 0x3c, 0x30, 0x3f, 0x74, 0x5b, 0x31, 0x5d, 0x2d, 0x52, + 0x61, 0x2d, 0x43, 0x61, 0x3a, 0x52, 0x61, 0x2d, 0x74, 0x5b, 0x31, + 0x5d, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x50, 0x65, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x2c, 0x65, 0x3d, 0x30, 0x2f, 0x30, 0x2c, 0x72, 0x3d, 0x30, + 0x2f, 0x30, 0x2c, 0x75, 0x3d, 0x30, 0x2f, 0x30, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x7b, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, 0x74, 0x3d, 0x31, 0x7d, + 0x2c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x69, 0x2c, 0x6f, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x61, 0x3d, 0x69, 0x3e, 0x30, 0x3f, 0x71, 0x61, + 0x3a, 0x2d, 0x71, 0x61, 0x2c, 0x63, 0x3d, 0x67, 0x61, 0x28, 0x69, + 0x2d, 0x65, 0x29, 0x3b, 0x67, 0x61, 0x28, 0x63, 0x2d, 0x71, 0x61, + 0x29, 0x3c, 0x43, 0x61, 0x3f, 0x28, 0x6e, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x28, 0x65, 0x2c, 0x72, 0x3d, 0x28, 0x72, 0x2b, 0x6f, + 0x29, 0x2f, 0x32, 0x3e, 0x30, 0x3f, 0x52, 0x61, 0x3a, 0x2d, 0x52, + 0x61, 0x29, 0x2c, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, + 0x75, 0x2c, 0x72, 0x29, 0x2c, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x45, 0x6e, 0x64, 0x28, 0x29, 0x2c, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, 0x6e, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x61, 0x2c, 0x72, 0x29, 0x2c, + 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x69, 0x2c, 0x72, + 0x29, 0x2c, 0x74, 0x3d, 0x30, 0x29, 0x3a, 0x75, 0x21, 0x3d, 0x3d, + 0x61, 0x26, 0x26, 0x63, 0x3e, 0x3d, 0x71, 0x61, 0x26, 0x26, 0x28, + 0x67, 0x61, 0x28, 0x65, 0x2d, 0x75, 0x29, 0x3c, 0x43, 0x61, 0x26, + 0x26, 0x28, 0x65, 0x2d, 0x3d, 0x75, 0x2a, 0x43, 0x61, 0x29, 0x2c, + 0x67, 0x61, 0x28, 0x69, 0x2d, 0x61, 0x29, 0x3c, 0x43, 0x61, 0x26, + 0x26, 0x28, 0x69, 0x2d, 0x3d, 0x61, 0x2a, 0x43, 0x61, 0x29, 0x2c, + 0x72, 0x3d, 0x55, 0x65, 0x28, 0x65, 0x2c, 0x72, 0x2c, 0x69, 0x2c, + 0x6f, 0x29, 0x2c, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, + 0x75, 0x2c, 0x72, 0x29, 0x2c, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x45, 0x6e, 0x64, 0x28, 0x29, 0x2c, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, 0x6e, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x61, 0x2c, 0x72, 0x29, 0x2c, + 0x74, 0x3d, 0x30, 0x29, 0x2c, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x28, 0x65, 0x3d, 0x69, 0x2c, 0x72, 0x3d, 0x6f, 0x29, 0x2c, + 0x75, 0x3d, 0x61, 0x7d, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, + 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, + 0x28, 0x29, 0x2c, 0x65, 0x3d, 0x72, 0x3d, 0x30, 0x2f, 0x30, 0x7d, + 0x2c, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x32, 0x2d, 0x74, 0x7d, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x55, 0x65, 0x28, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6e, 0x2d, 0x65, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x67, 0x61, 0x28, 0x6f, 0x29, + 0x3e, 0x43, 0x61, 0x3f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, + 0x61, 0x6e, 0x28, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, + 0x6e, 0x28, 0x74, 0x29, 0x2a, 0x28, 0x69, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x72, 0x29, 0x29, 0x2a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x65, 0x29, 0x2d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x72, 0x29, + 0x2a, 0x28, 0x75, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, + 0x73, 0x28, 0x74, 0x29, 0x29, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x73, 0x69, 0x6e, 0x28, 0x6e, 0x29, 0x29, 0x2f, 0x28, 0x75, 0x2a, + 0x69, 0x2a, 0x6f, 0x29, 0x29, 0x3a, 0x28, 0x74, 0x2b, 0x72, 0x29, + 0x2f, 0x32, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6a, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3b, 0x69, 0x66, 0x28, + 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x29, 0x75, 0x3d, 0x65, + 0x2a, 0x52, 0x61, 0x2c, 0x72, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x28, 0x2d, 0x71, 0x61, 0x2c, 0x75, 0x29, 0x2c, 0x72, 0x2e, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x30, 0x2c, 0x75, 0x29, 0x2c, 0x72, + 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x71, 0x61, 0x2c, 0x75, + 0x29, 0x2c, 0x72, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x71, + 0x61, 0x2c, 0x30, 0x29, 0x2c, 0x72, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x28, 0x71, 0x61, 0x2c, 0x2d, 0x75, 0x29, 0x2c, 0x72, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x30, 0x2c, 0x2d, 0x75, 0x29, + 0x2c, 0x72, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x2d, 0x71, + 0x61, 0x2c, 0x2d, 0x75, 0x29, 0x2c, 0x72, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x28, 0x2d, 0x71, 0x61, 0x2c, 0x30, 0x29, 0x2c, 0x72, + 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x2d, 0x71, 0x61, 0x2c, + 0x75, 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, + 0x67, 0x61, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x2d, 0x74, 0x5b, 0x30, + 0x5d, 0x29, 0x3e, 0x43, 0x61, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x69, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x3c, 0x74, 0x5b, 0x30, 0x5d, + 0x3f, 0x71, 0x61, 0x3a, 0x2d, 0x71, 0x61, 0x3b, 0x75, 0x3d, 0x65, + 0x2a, 0x69, 0x2f, 0x32, 0x2c, 0x72, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x28, 0x2d, 0x69, 0x2c, 0x75, 0x29, 0x2c, 0x72, 0x2e, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x30, 0x2c, 0x75, 0x29, 0x2c, 0x72, + 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x69, 0x2c, 0x75, 0x29, + 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x72, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x28, 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x74, 0x5b, 0x31, + 0x5d, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x46, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x72, 0x3d, + 0x6e, 0x5b, 0x31, 0x5d, 0x2c, 0x75, 0x3d, 0x5b, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x65, 0x29, 0x2c, 0x2d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x65, 0x29, 0x2c, + 0x30, 0x5d, 0x2c, 0x69, 0x3d, 0x30, 0x2c, 0x6f, 0x3d, 0x30, 0x3b, + 0x79, 0x63, 0x2e, 0x72, 0x65, 0x73, 0x65, 0x74, 0x28, 0x29, 0x3b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, 0x30, + 0x2c, 0x63, 0x3d, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x63, 0x3e, 0x61, 0x3b, 0x2b, 0x2b, 0x61, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x74, 0x5b, 0x61, 0x5d, 0x2c, 0x73, + 0x3d, 0x6c, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x69, + 0x66, 0x28, 0x73, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x66, 0x3d, 0x6c, 0x5b, 0x30, 0x5d, 0x2c, 0x68, 0x3d, 0x66, + 0x5b, 0x30, 0x5d, 0x2c, 0x67, 0x3d, 0x66, 0x5b, 0x31, 0x5d, 0x2f, + 0x32, 0x2b, 0x71, 0x61, 0x2f, 0x34, 0x2c, 0x70, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x67, 0x29, 0x2c, 0x76, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x67, + 0x29, 0x2c, 0x64, 0x3d, 0x31, 0x3b, 0x3b, 0x29, 0x7b, 0x64, 0x3d, + 0x3d, 0x3d, 0x73, 0x26, 0x26, 0x28, 0x64, 0x3d, 0x30, 0x29, 0x2c, + 0x6e, 0x3d, 0x6c, 0x5b, 0x64, 0x5d, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x6d, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x79, 0x3d, 0x6e, 0x5b, + 0x31, 0x5d, 0x2f, 0x32, 0x2b, 0x71, 0x61, 0x2f, 0x34, 0x2c, 0x4d, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x79, + 0x29, 0x2c, 0x78, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, + 0x73, 0x28, 0x79, 0x29, 0x2c, 0x62, 0x3d, 0x6d, 0x2d, 0x68, 0x2c, + 0x5f, 0x3d, 0x62, 0x3e, 0x3d, 0x30, 0x3f, 0x31, 0x3a, 0x2d, 0x31, + 0x2c, 0x77, 0x3d, 0x5f, 0x2a, 0x62, 0x2c, 0x53, 0x3d, 0x77, 0x3e, + 0x71, 0x61, 0x2c, 0x6b, 0x3d, 0x70, 0x2a, 0x4d, 0x3b, 0x69, 0x66, + 0x28, 0x79, 0x63, 0x2e, 0x61, 0x64, 0x64, 0x28, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x6b, 0x2a, 0x5f, + 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x77, + 0x29, 0x2c, 0x76, 0x2a, 0x78, 0x2b, 0x6b, 0x2a, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x77, 0x29, 0x29, 0x29, 0x2c, + 0x69, 0x2b, 0x3d, 0x53, 0x3f, 0x62, 0x2b, 0x5f, 0x2a, 0x4c, 0x61, + 0x3a, 0x62, 0x2c, 0x53, 0x5e, 0x68, 0x3e, 0x3d, 0x65, 0x5e, 0x6d, + 0x3e, 0x3d, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x45, 0x3d, + 0x64, 0x65, 0x28, 0x70, 0x65, 0x28, 0x66, 0x29, 0x2c, 0x70, 0x65, + 0x28, 0x6e, 0x29, 0x29, 0x3b, 0x4d, 0x65, 0x28, 0x45, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x41, 0x3d, 0x64, 0x65, 0x28, 0x75, 0x2c, + 0x45, 0x29, 0x3b, 0x4d, 0x65, 0x28, 0x41, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x4e, 0x3d, 0x28, 0x53, 0x5e, 0x62, 0x3e, 0x3d, 0x30, + 0x3f, 0x2d, 0x31, 0x3a, 0x31, 0x29, 0x2a, 0x74, 0x74, 0x28, 0x41, + 0x5b, 0x32, 0x5d, 0x29, 0x3b, 0x28, 0x72, 0x3e, 0x4e, 0x7c, 0x7c, + 0x72, 0x3d, 0x3d, 0x3d, 0x4e, 0x26, 0x26, 0x28, 0x45, 0x5b, 0x30, + 0x5d, 0x7c, 0x7c, 0x45, 0x5b, 0x31, 0x5d, 0x29, 0x29, 0x26, 0x26, + 0x28, 0x6f, 0x2b, 0x3d, 0x53, 0x5e, 0x62, 0x3e, 0x3d, 0x30, 0x3f, + 0x31, 0x3a, 0x2d, 0x31, 0x29, 0x7d, 0x69, 0x66, 0x28, 0x21, 0x64, + 0x2b, 0x2b, 0x29, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x68, 0x3d, + 0x6d, 0x2c, 0x70, 0x3d, 0x4d, 0x2c, 0x76, 0x3d, 0x78, 0x2c, 0x66, + 0x3d, 0x6e, 0x7d, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, + 0x2d, 0x43, 0x61, 0x3e, 0x69, 0x7c, 0x7c, 0x43, 0x61, 0x3e, 0x69, + 0x26, 0x26, 0x30, 0x3e, 0x79, 0x63, 0x29, 0x5e, 0x31, 0x26, 0x6f, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x48, + 0x65, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x63, 0x6f, 0x73, 0x28, 0x6e, 0x29, 0x2a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x74, 0x29, 0x3e, 0x69, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x69, 0x2c, 0x63, + 0x2c, 0x6c, 0x2c, 0x73, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x7b, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x6c, 0x3d, 0x63, 0x3d, 0x21, 0x31, 0x2c, 0x73, 0x3d, 0x31, 0x7d, + 0x2c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x66, 0x2c, 0x68, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x67, 0x2c, 0x70, 0x3d, 0x5b, 0x66, 0x2c, 0x68, + 0x5d, 0x2c, 0x76, 0x3d, 0x74, 0x28, 0x66, 0x2c, 0x68, 0x29, 0x2c, + 0x64, 0x3d, 0x6f, 0x3f, 0x76, 0x3f, 0x30, 0x3a, 0x75, 0x28, 0x66, + 0x2c, 0x68, 0x29, 0x3a, 0x76, 0x3f, 0x75, 0x28, 0x66, 0x2b, 0x28, + 0x30, 0x3e, 0x66, 0x3f, 0x71, 0x61, 0x3a, 0x2d, 0x71, 0x61, 0x29, + 0x2c, 0x68, 0x29, 0x3a, 0x30, 0x3b, 0x69, 0x66, 0x28, 0x21, 0x65, + 0x26, 0x26, 0x28, 0x6c, 0x3d, 0x63, 0x3d, 0x76, 0x29, 0x26, 0x26, + 0x6e, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x28, 0x29, 0x2c, 0x76, 0x21, 0x3d, 0x3d, 0x63, 0x26, 0x26, 0x28, + 0x67, 0x3d, 0x72, 0x28, 0x65, 0x2c, 0x70, 0x29, 0x2c, 0x28, 0x62, + 0x65, 0x28, 0x65, 0x2c, 0x67, 0x29, 0x7c, 0x7c, 0x62, 0x65, 0x28, + 0x70, 0x2c, 0x67, 0x29, 0x29, 0x26, 0x26, 0x28, 0x70, 0x5b, 0x30, + 0x5d, 0x2b, 0x3d, 0x43, 0x61, 0x2c, 0x70, 0x5b, 0x31, 0x5d, 0x2b, + 0x3d, 0x43, 0x61, 0x2c, 0x76, 0x3d, 0x74, 0x28, 0x70, 0x5b, 0x30, + 0x5d, 0x2c, 0x70, 0x5b, 0x31, 0x5d, 0x29, 0x29, 0x29, 0x2c, 0x76, + 0x21, 0x3d, 0x3d, 0x63, 0x29, 0x73, 0x3d, 0x30, 0x2c, 0x76, 0x3f, + 0x28, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x28, 0x29, 0x2c, 0x67, 0x3d, 0x72, 0x28, 0x70, 0x2c, 0x65, + 0x29, 0x2c, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x67, + 0x5b, 0x30, 0x5d, 0x2c, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x29, 0x3a, + 0x28, 0x67, 0x3d, 0x72, 0x28, 0x65, 0x2c, 0x70, 0x29, 0x2c, 0x6e, + 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x67, 0x5b, 0x30, 0x5d, + 0x2c, 0x67, 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x6e, 0x2e, 0x6c, 0x69, + 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x29, 0x2c, 0x65, 0x3d, + 0x67, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x61, + 0x26, 0x26, 0x65, 0x26, 0x26, 0x6f, 0x5e, 0x76, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x6d, 0x3b, 0x64, 0x26, 0x69, 0x7c, 0x7c, 0x21, + 0x28, 0x6d, 0x3d, 0x72, 0x28, 0x70, 0x2c, 0x65, 0x2c, 0x21, 0x30, + 0x29, 0x29, 0x7c, 0x7c, 0x28, 0x73, 0x3d, 0x30, 0x2c, 0x6f, 0x3f, + 0x28, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x28, 0x29, 0x2c, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x28, 0x6d, 0x5b, 0x30, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x6d, 0x5b, + 0x30, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x6e, 0x2e, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x28, 0x6d, 0x5b, 0x31, 0x5d, 0x5b, 0x30, 0x5d, + 0x2c, 0x6d, 0x5b, 0x31, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x6e, + 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x29, + 0x3a, 0x28, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x6d, + 0x5b, 0x31, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x6d, 0x5b, 0x31, 0x5d, + 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x45, 0x6e, 0x64, 0x28, 0x29, 0x2c, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, 0x6e, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x6d, 0x5b, 0x30, 0x5d, 0x5b, + 0x30, 0x5d, 0x2c, 0x6d, 0x5b, 0x30, 0x5d, 0x5b, 0x31, 0x5d, 0x29, + 0x29, 0x29, 0x7d, 0x21, 0x76, 0x7c, 0x7c, 0x65, 0x26, 0x26, 0x62, + 0x65, 0x28, 0x65, 0x2c, 0x70, 0x29, 0x7c, 0x7c, 0x6e, 0x2e, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x70, 0x5b, 0x30, 0x5d, 0x2c, 0x70, + 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x65, 0x3d, 0x70, 0x2c, 0x63, 0x3d, + 0x76, 0x2c, 0x69, 0x3d, 0x64, 0x7d, 0x2c, 0x6c, 0x69, 0x6e, 0x65, + 0x45, 0x6e, 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x63, 0x26, 0x26, 0x6e, 0x2e, 0x6c, 0x69, + 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x2c, 0x65, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x7d, 0x2c, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x7c, 0x28, 0x6c, + 0x26, 0x26, 0x63, 0x29, 0x3c, 0x3c, 0x31, 0x7d, 0x7d, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, + 0x3d, 0x70, 0x65, 0x28, 0x6e, 0x29, 0x2c, 0x75, 0x3d, 0x70, 0x65, + 0x28, 0x74, 0x29, 0x2c, 0x6f, 0x3d, 0x5b, 0x31, 0x2c, 0x30, 0x2c, + 0x30, 0x5d, 0x2c, 0x61, 0x3d, 0x64, 0x65, 0x28, 0x72, 0x2c, 0x75, + 0x29, 0x2c, 0x63, 0x3d, 0x76, 0x65, 0x28, 0x61, 0x2c, 0x61, 0x29, + 0x2c, 0x6c, 0x3d, 0x61, 0x5b, 0x30, 0x5d, 0x2c, 0x73, 0x3d, 0x63, + 0x2d, 0x6c, 0x2a, 0x6c, 0x3b, 0x69, 0x66, 0x28, 0x21, 0x73, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, 0x65, 0x26, 0x26, 0x6e, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x66, 0x3d, 0x69, 0x2a, 0x63, 0x2f, + 0x73, 0x2c, 0x68, 0x3d, 0x2d, 0x69, 0x2a, 0x6c, 0x2f, 0x73, 0x2c, + 0x67, 0x3d, 0x64, 0x65, 0x28, 0x6f, 0x2c, 0x61, 0x29, 0x2c, 0x70, + 0x3d, 0x79, 0x65, 0x28, 0x6f, 0x2c, 0x66, 0x29, 0x2c, 0x76, 0x3d, + 0x79, 0x65, 0x28, 0x61, 0x2c, 0x68, 0x29, 0x3b, 0x6d, 0x65, 0x28, + 0x70, 0x2c, 0x76, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x3d, + 0x67, 0x2c, 0x6d, 0x3d, 0x76, 0x65, 0x28, 0x70, 0x2c, 0x64, 0x29, + 0x2c, 0x79, 0x3d, 0x76, 0x65, 0x28, 0x64, 0x2c, 0x64, 0x29, 0x2c, + 0x4d, 0x3d, 0x6d, 0x2a, 0x6d, 0x2d, 0x79, 0x2a, 0x28, 0x76, 0x65, + 0x28, 0x70, 0x2c, 0x70, 0x29, 0x2d, 0x31, 0x29, 0x3b, 0x69, 0x66, + 0x28, 0x21, 0x28, 0x30, 0x3e, 0x4d, 0x29, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x78, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, + 0x72, 0x74, 0x28, 0x4d, 0x29, 0x2c, 0x62, 0x3d, 0x79, 0x65, 0x28, + 0x64, 0x2c, 0x28, 0x2d, 0x6d, 0x2d, 0x78, 0x29, 0x2f, 0x79, 0x29, + 0x3b, 0x69, 0x66, 0x28, 0x6d, 0x65, 0x28, 0x62, 0x2c, 0x70, 0x29, + 0x2c, 0x62, 0x3d, 0x78, 0x65, 0x28, 0x62, 0x29, 0x2c, 0x21, 0x65, + 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x5f, 0x2c, 0x77, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, + 0x2c, 0x53, 0x3d, 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x6b, 0x3d, 0x6e, + 0x5b, 0x31, 0x5d, 0x2c, 0x45, 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x3b, + 0x77, 0x3e, 0x53, 0x26, 0x26, 0x28, 0x5f, 0x3d, 0x77, 0x2c, 0x77, + 0x3d, 0x53, 0x2c, 0x53, 0x3d, 0x5f, 0x29, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x41, 0x3d, 0x53, 0x2d, 0x77, 0x2c, 0x4e, 0x3d, 0x67, 0x61, + 0x28, 0x41, 0x2d, 0x71, 0x61, 0x29, 0x3c, 0x43, 0x61, 0x2c, 0x43, + 0x3d, 0x4e, 0x7c, 0x7c, 0x43, 0x61, 0x3e, 0x41, 0x3b, 0x69, 0x66, + 0x28, 0x21, 0x4e, 0x26, 0x26, 0x6b, 0x3e, 0x45, 0x26, 0x26, 0x28, + 0x5f, 0x3d, 0x6b, 0x2c, 0x6b, 0x3d, 0x45, 0x2c, 0x45, 0x3d, 0x5f, + 0x29, 0x2c, 0x43, 0x3f, 0x4e, 0x3f, 0x6b, 0x2b, 0x45, 0x3e, 0x30, + 0x5e, 0x62, 0x5b, 0x31, 0x5d, 0x3c, 0x28, 0x67, 0x61, 0x28, 0x62, + 0x5b, 0x30, 0x5d, 0x2d, 0x77, 0x29, 0x3c, 0x43, 0x61, 0x3f, 0x6b, + 0x3a, 0x45, 0x29, 0x3a, 0x6b, 0x3c, 0x3d, 0x62, 0x5b, 0x31, 0x5d, + 0x26, 0x26, 0x62, 0x5b, 0x31, 0x5d, 0x3c, 0x3d, 0x45, 0x3a, 0x41, + 0x3e, 0x71, 0x61, 0x5e, 0x28, 0x77, 0x3c, 0x3d, 0x62, 0x5b, 0x30, + 0x5d, 0x26, 0x26, 0x62, 0x5b, 0x30, 0x5d, 0x3c, 0x3d, 0x53, 0x29, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x7a, 0x3d, 0x79, 0x65, 0x28, + 0x64, 0x2c, 0x28, 0x2d, 0x6d, 0x2b, 0x78, 0x29, 0x2f, 0x79, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x65, 0x28, + 0x7a, 0x2c, 0x70, 0x29, 0x2c, 0x5b, 0x62, 0x2c, 0x78, 0x65, 0x28, + 0x7a, 0x29, 0x5d, 0x7d, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x6f, 0x3f, 0x6e, 0x3a, 0x71, + 0x61, 0x2d, 0x6e, 0x2c, 0x75, 0x3d, 0x30, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x2d, 0x72, 0x3e, 0x74, 0x3f, 0x75, 0x7c, 0x3d, + 0x31, 0x3a, 0x74, 0x3e, 0x72, 0x26, 0x26, 0x28, 0x75, 0x7c, 0x3d, + 0x32, 0x29, 0x2c, 0x2d, 0x72, 0x3e, 0x65, 0x3f, 0x75, 0x7c, 0x3d, + 0x34, 0x3a, 0x65, 0x3e, 0x72, 0x26, 0x26, 0x28, 0x75, 0x7c, 0x3d, + 0x38, 0x29, 0x2c, 0x75, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x6e, 0x29, + 0x2c, 0x6f, 0x3d, 0x69, 0x3e, 0x30, 0x2c, 0x61, 0x3d, 0x67, 0x61, + 0x28, 0x69, 0x29, 0x3e, 0x43, 0x61, 0x2c, 0x63, 0x3d, 0x67, 0x72, + 0x28, 0x6e, 0x2c, 0x36, 0x2a, 0x44, 0x61, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4c, 0x65, 0x28, 0x74, 0x2c, 0x65, + 0x2c, 0x63, 0x2c, 0x6f, 0x3f, 0x5b, 0x30, 0x2c, 0x2d, 0x6e, 0x5d, + 0x3a, 0x5b, 0x2d, 0x71, 0x61, 0x2c, 0x6e, 0x2d, 0x71, 0x61, 0x5d, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x4f, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x75, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x69, 0x2c, 0x6f, 0x3d, 0x75, 0x2e, 0x61, 0x2c, 0x61, + 0x3d, 0x75, 0x2e, 0x62, 0x2c, 0x63, 0x3d, 0x6f, 0x2e, 0x78, 0x2c, + 0x6c, 0x3d, 0x6f, 0x2e, 0x79, 0x2c, 0x73, 0x3d, 0x61, 0x2e, 0x78, + 0x2c, 0x66, 0x3d, 0x61, 0x2e, 0x79, 0x2c, 0x68, 0x3d, 0x30, 0x2c, + 0x67, 0x3d, 0x31, 0x2c, 0x70, 0x3d, 0x73, 0x2d, 0x63, 0x2c, 0x76, + 0x3d, 0x66, 0x2d, 0x6c, 0x3b, 0x69, 0x66, 0x28, 0x69, 0x3d, 0x6e, + 0x2d, 0x63, 0x2c, 0x70, 0x7c, 0x7c, 0x21, 0x28, 0x69, 0x3e, 0x30, + 0x29, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x69, 0x2f, 0x3d, 0x70, 0x2c, + 0x30, 0x3e, 0x70, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x68, 0x3e, 0x69, + 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x67, 0x3e, 0x69, + 0x26, 0x26, 0x28, 0x67, 0x3d, 0x69, 0x29, 0x7d, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x69, 0x66, 0x28, 0x70, 0x3e, 0x30, 0x29, 0x7b, 0x69, + 0x66, 0x28, 0x69, 0x3e, 0x67, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x3b, 0x69, 0x3e, 0x68, 0x26, 0x26, 0x28, 0x68, 0x3d, 0x69, + 0x29, 0x7d, 0x69, 0x66, 0x28, 0x69, 0x3d, 0x65, 0x2d, 0x63, 0x2c, + 0x70, 0x7c, 0x7c, 0x21, 0x28, 0x30, 0x3e, 0x69, 0x29, 0x29, 0x7b, + 0x69, 0x66, 0x28, 0x69, 0x2f, 0x3d, 0x70, 0x2c, 0x30, 0x3e, 0x70, + 0x29, 0x7b, 0x69, 0x66, 0x28, 0x69, 0x3e, 0x67, 0x29, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x69, 0x3e, 0x68, 0x26, 0x26, 0x28, + 0x68, 0x3d, 0x69, 0x29, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, + 0x66, 0x28, 0x70, 0x3e, 0x30, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x68, + 0x3e, 0x69, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x67, + 0x3e, 0x69, 0x26, 0x26, 0x28, 0x67, 0x3d, 0x69, 0x29, 0x7d, 0x69, + 0x66, 0x28, 0x69, 0x3d, 0x74, 0x2d, 0x6c, 0x2c, 0x76, 0x7c, 0x7c, + 0x21, 0x28, 0x69, 0x3e, 0x30, 0x29, 0x29, 0x7b, 0x69, 0x66, 0x28, + 0x69, 0x2f, 0x3d, 0x76, 0x2c, 0x30, 0x3e, 0x76, 0x29, 0x7b, 0x69, + 0x66, 0x28, 0x68, 0x3e, 0x69, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x3b, 0x67, 0x3e, 0x69, 0x26, 0x26, 0x28, 0x67, 0x3d, 0x69, + 0x29, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x76, + 0x3e, 0x30, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x69, 0x3e, 0x67, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x69, 0x3e, 0x68, 0x26, + 0x26, 0x28, 0x68, 0x3d, 0x69, 0x29, 0x7d, 0x69, 0x66, 0x28, 0x69, + 0x3d, 0x72, 0x2d, 0x6c, 0x2c, 0x76, 0x7c, 0x7c, 0x21, 0x28, 0x30, + 0x3e, 0x69, 0x29, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x69, 0x2f, 0x3d, + 0x76, 0x2c, 0x30, 0x3e, 0x76, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x69, + 0x3e, 0x67, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x69, + 0x3e, 0x68, 0x26, 0x26, 0x28, 0x68, 0x3d, 0x69, 0x29, 0x7d, 0x65, + 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x76, 0x3e, 0x30, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x68, 0x3e, 0x69, 0x29, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x3b, 0x67, 0x3e, 0x69, 0x26, 0x26, 0x28, 0x67, + 0x3d, 0x69, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x68, 0x3e, 0x30, 0x26, 0x26, 0x28, 0x75, 0x2e, 0x61, 0x3d, 0x7b, + 0x78, 0x3a, 0x63, 0x2b, 0x68, 0x2a, 0x70, 0x2c, 0x79, 0x3a, 0x6c, + 0x2b, 0x68, 0x2a, 0x76, 0x7d, 0x29, 0x2c, 0x31, 0x3e, 0x67, 0x26, + 0x26, 0x28, 0x75, 0x2e, 0x62, 0x3d, 0x7b, 0x78, 0x3a, 0x63, 0x2b, + 0x67, 0x2a, 0x70, 0x2c, 0x79, 0x3a, 0x6c, 0x2b, 0x67, 0x2a, 0x76, + 0x7d, 0x29, 0x2c, 0x75, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x49, 0x65, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x72, 0x2c, + 0x75, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x67, + 0x61, 0x28, 0x72, 0x5b, 0x30, 0x5d, 0x2d, 0x6e, 0x29, 0x3c, 0x43, + 0x61, 0x3f, 0x75, 0x3e, 0x30, 0x3f, 0x30, 0x3a, 0x33, 0x3a, 0x67, + 0x61, 0x28, 0x72, 0x5b, 0x30, 0x5d, 0x2d, 0x65, 0x29, 0x3c, 0x43, + 0x61, 0x3f, 0x75, 0x3e, 0x30, 0x3f, 0x32, 0x3a, 0x31, 0x3a, 0x67, + 0x61, 0x28, 0x72, 0x5b, 0x31, 0x5d, 0x2d, 0x74, 0x29, 0x3c, 0x43, + 0x61, 0x3f, 0x75, 0x3e, 0x30, 0x3f, 0x31, 0x3a, 0x30, 0x3a, 0x75, + 0x3e, 0x30, 0x3f, 0x33, 0x3a, 0x32, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x28, 0x6e, + 0x2e, 0x78, 0x2c, 0x74, 0x2e, 0x78, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x75, 0x28, 0x6e, + 0x2c, 0x31, 0x29, 0x2c, 0x72, 0x3d, 0x75, 0x28, 0x74, 0x2c, 0x31, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x21, + 0x3d, 0x3d, 0x72, 0x3f, 0x65, 0x2d, 0x72, 0x3a, 0x30, 0x3d, 0x3d, + 0x3d, 0x65, 0x3f, 0x74, 0x5b, 0x31, 0x5d, 0x2d, 0x6e, 0x5b, 0x31, + 0x5d, 0x3a, 0x31, 0x3d, 0x3d, 0x3d, 0x65, 0x3f, 0x6e, 0x5b, 0x30, + 0x5d, 0x2d, 0x74, 0x5b, 0x30, 0x5d, 0x3a, 0x32, 0x3d, 0x3d, 0x3d, + 0x65, 0x3f, 0x6e, 0x5b, 0x31, 0x5d, 0x2d, 0x74, 0x5b, 0x31, 0x5d, + 0x3a, 0x74, 0x5b, 0x30, 0x5d, 0x2d, 0x6e, 0x5b, 0x30, 0x5d, 0x7d, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x29, 0x7b, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x28, 0x6e, 0x29, 0x7b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x30, + 0x2c, 0x65, 0x3d, 0x64, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2c, 0x72, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x2c, 0x75, 0x3d, 0x30, + 0x3b, 0x65, 0x3e, 0x75, 0x3b, 0x2b, 0x2b, 0x75, 0x29, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, 0x2c, 0x6f, 0x3d, 0x31, + 0x2c, 0x61, 0x3d, 0x64, 0x5b, 0x75, 0x5d, 0x2c, 0x63, 0x3d, 0x61, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x6c, 0x3d, 0x61, + 0x5b, 0x30, 0x5d, 0x3b, 0x63, 0x3e, 0x6f, 0x3b, 0x2b, 0x2b, 0x6f, + 0x29, 0x69, 0x3d, 0x61, 0x5b, 0x6f, 0x5d, 0x2c, 0x6c, 0x5b, 0x31, + 0x5d, 0x3c, 0x3d, 0x72, 0x3f, 0x69, 0x5b, 0x31, 0x5d, 0x3e, 0x72, + 0x26, 0x26, 0x51, 0x28, 0x6c, 0x2c, 0x69, 0x2c, 0x6e, 0x29, 0x3e, + 0x30, 0x26, 0x26, 0x2b, 0x2b, 0x74, 0x3a, 0x69, 0x5b, 0x31, 0x5d, + 0x3c, 0x3d, 0x72, 0x26, 0x26, 0x51, 0x28, 0x6c, 0x2c, 0x69, 0x2c, + 0x6e, 0x29, 0x3c, 0x30, 0x26, 0x26, 0x2d, 0x2d, 0x74, 0x2c, 0x6c, + 0x3d, 0x69, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30, + 0x21, 0x3d, 0x3d, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x28, 0x69, 0x2c, 0x61, 0x2c, 0x63, 0x2c, + 0x6c, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x73, 0x3d, 0x30, 0x2c, + 0x66, 0x3d, 0x30, 0x3b, 0x69, 0x66, 0x28, 0x6e, 0x75, 0x6c, 0x6c, + 0x3d, 0x3d, 0x69, 0x7c, 0x7c, 0x28, 0x73, 0x3d, 0x75, 0x28, 0x69, + 0x2c, 0x63, 0x29, 0x29, 0x21, 0x3d, 0x3d, 0x28, 0x66, 0x3d, 0x75, + 0x28, 0x61, 0x2c, 0x63, 0x29, 0x29, 0x7c, 0x7c, 0x6f, 0x28, 0x69, + 0x2c, 0x61, 0x29, 0x3c, 0x30, 0x5e, 0x63, 0x3e, 0x30, 0x29, 0x7b, + 0x64, 0x6f, 0x20, 0x6c, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, + 0x30, 0x3d, 0x3d, 0x3d, 0x73, 0x7c, 0x7c, 0x33, 0x3d, 0x3d, 0x3d, + 0x73, 0x3f, 0x6e, 0x3a, 0x65, 0x2c, 0x73, 0x3e, 0x31, 0x3f, 0x72, + 0x3a, 0x74, 0x29, 0x3b, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x28, + 0x73, 0x3d, 0x28, 0x73, 0x2b, 0x63, 0x2b, 0x34, 0x29, 0x25, 0x34, + 0x29, 0x21, 0x3d, 0x3d, 0x66, 0x29, 0x7d, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x6c, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x61, 0x5b, + 0x30, 0x5d, 0x2c, 0x61, 0x5b, 0x31, 0x5d, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x28, 0x75, 0x2c, + 0x69, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, + 0x3e, 0x3d, 0x6e, 0x26, 0x26, 0x65, 0x3e, 0x3d, 0x75, 0x26, 0x26, + 0x69, 0x3e, 0x3d, 0x74, 0x26, 0x26, 0x72, 0x3e, 0x3d, 0x69, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x73, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x26, 0x26, 0x61, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x68, 0x28, 0x29, 0x7b, 0x43, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x3d, 0x70, 0x2c, 0x64, 0x26, 0x26, 0x64, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x6d, 0x3d, 0x5b, 0x5d, 0x29, 0x2c, 0x53, + 0x3d, 0x21, 0x30, 0x2c, 0x77, 0x3d, 0x21, 0x31, 0x2c, 0x62, 0x3d, + 0x5f, 0x3d, 0x30, 0x2f, 0x30, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x67, 0x28, 0x29, 0x7b, 0x76, 0x26, 0x26, + 0x28, 0x70, 0x28, 0x79, 0x2c, 0x4d, 0x29, 0x2c, 0x78, 0x26, 0x26, + 0x77, 0x26, 0x26, 0x41, 0x2e, 0x72, 0x65, 0x6a, 0x6f, 0x69, 0x6e, + 0x28, 0x29, 0x2c, 0x76, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x41, + 0x2e, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x28, 0x29, 0x29, 0x29, + 0x2c, 0x43, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x66, 0x2c, + 0x77, 0x26, 0x26, 0x61, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, + 0x64, 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x70, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x2d, 0x54, + 0x63, 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, + 0x54, 0x63, 0x2c, 0x6e, 0x29, 0x29, 0x2c, 0x74, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x2d, 0x54, 0x63, 0x2c, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x54, 0x63, + 0x2c, 0x74, 0x29, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, + 0x73, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x64, + 0x26, 0x26, 0x6d, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x5b, 0x6e, + 0x2c, 0x74, 0x5d, 0x29, 0x2c, 0x53, 0x29, 0x79, 0x3d, 0x6e, 0x2c, + 0x4d, 0x3d, 0x74, 0x2c, 0x78, 0x3d, 0x65, 0x2c, 0x53, 0x3d, 0x21, + 0x31, 0x2c, 0x65, 0x26, 0x26, 0x28, 0x61, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, 0x61, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x29, + 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x65, 0x26, + 0x26, 0x77, 0x29, 0x61, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3d, 0x7b, 0x61, 0x3a, 0x7b, 0x78, 0x3a, + 0x62, 0x2c, 0x79, 0x3a, 0x5f, 0x7d, 0x2c, 0x62, 0x3a, 0x7b, 0x78, + 0x3a, 0x6e, 0x2c, 0x79, 0x3a, 0x74, 0x7d, 0x7d, 0x3b, 0x4e, 0x28, + 0x72, 0x29, 0x3f, 0x28, 0x77, 0x7c, 0x7c, 0x28, 0x61, 0x2e, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, + 0x61, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x72, 0x2e, 0x61, + 0x2e, 0x78, 0x2c, 0x72, 0x2e, 0x61, 0x2e, 0x79, 0x29, 0x29, 0x2c, + 0x61, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x72, 0x2e, 0x62, + 0x2e, 0x78, 0x2c, 0x72, 0x2e, 0x62, 0x2e, 0x79, 0x29, 0x2c, 0x65, + 0x7c, 0x7c, 0x61, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, + 0x28, 0x29, 0x2c, 0x6b, 0x3d, 0x21, 0x31, 0x29, 0x3a, 0x65, 0x26, + 0x26, 0x28, 0x61, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x28, 0x29, 0x2c, 0x61, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x2c, 0x6b, 0x3d, 0x21, 0x31, + 0x29, 0x7d, 0x62, 0x3d, 0x6e, 0x2c, 0x5f, 0x3d, 0x74, 0x2c, 0x77, + 0x3d, 0x65, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x76, 0x2c, 0x64, 0x2c, + 0x6d, 0x2c, 0x79, 0x2c, 0x4d, 0x2c, 0x78, 0x2c, 0x62, 0x2c, 0x5f, + 0x2c, 0x77, 0x2c, 0x53, 0x2c, 0x6b, 0x2c, 0x45, 0x3d, 0x61, 0x2c, + 0x41, 0x3d, 0x52, 0x65, 0x28, 0x29, 0x2c, 0x4e, 0x3d, 0x4f, 0x65, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x2c, 0x43, + 0x3d, 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x66, 0x2c, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x68, 0x2c, + 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3a, 0x67, 0x2c, 0x70, + 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x61, 0x3d, 0x41, 0x2c, 0x76, 0x3d, 0x5b, 0x5d, 0x2c, 0x64, + 0x3d, 0x5b, 0x5d, 0x2c, 0x6b, 0x3d, 0x21, 0x30, 0x7d, 0x2c, 0x70, + 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x61, + 0x3d, 0x45, 0x2c, 0x76, 0x3d, 0x74, 0x61, 0x2e, 0x6d, 0x65, 0x72, + 0x67, 0x65, 0x28, 0x76, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x3d, 0x63, 0x28, 0x5b, 0x6e, 0x2c, 0x72, 0x5d, 0x29, 0x2c, 0x65, + 0x3d, 0x6b, 0x26, 0x26, 0x74, 0x2c, 0x75, 0x3d, 0x76, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x28, 0x65, 0x7c, 0x7c, 0x75, + 0x29, 0x26, 0x26, 0x28, 0x61, 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x67, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, 0x65, + 0x26, 0x26, 0x28, 0x61, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, 0x6c, 0x28, 0x6e, 0x75, 0x6c, + 0x6c, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x31, 0x2c, 0x61, 0x29, + 0x2c, 0x61, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x28, + 0x29, 0x29, 0x2c, 0x75, 0x26, 0x26, 0x43, 0x65, 0x28, 0x76, 0x2c, + 0x69, 0x2c, 0x74, 0x2c, 0x6c, 0x2c, 0x61, 0x29, 0x2c, 0x61, 0x2e, + 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x28, + 0x29, 0x29, 0x2c, 0x76, 0x3d, 0x64, 0x3d, 0x6d, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x7d, 0x7d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x43, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x59, 0x65, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x3d, 0x30, 0x2c, 0x65, 0x3d, 0x71, 0x61, 0x2f, 0x33, + 0x2c, 0x72, 0x3d, 0x69, 0x72, 0x28, 0x6e, 0x29, 0x2c, 0x75, 0x3d, + 0x72, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x75, 0x2e, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, + 0x65, 0x6c, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x72, 0x28, 0x74, 0x3d, + 0x6e, 0x5b, 0x30, 0x5d, 0x2a, 0x71, 0x61, 0x2f, 0x31, 0x38, 0x30, + 0x2c, 0x65, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, 0x71, 0x61, 0x2f, + 0x31, 0x38, 0x30, 0x29, 0x3a, 0x5b, 0x74, 0x2f, 0x71, 0x61, 0x2a, + 0x31, 0x38, 0x30, 0x2c, 0x65, 0x2f, 0x71, 0x61, 0x2a, 0x31, 0x38, + 0x30, 0x5d, 0x7d, 0x2c, 0x75, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x5a, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, + 0x69, 0x2d, 0x32, 0x2a, 0x75, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x73, 0x69, 0x6e, 0x28, 0x74, 0x29, 0x29, 0x2f, 0x75, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x65, 0x2a, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6e, 0x2a, 0x3d, 0x75, 0x29, + 0x2c, 0x6f, 0x2d, 0x65, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, + 0x6f, 0x73, 0x28, 0x6e, 0x29, 0x5d, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, + 0x6e, 0x29, 0x2c, 0x75, 0x3d, 0x28, 0x72, 0x2b, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x74, 0x29, 0x29, 0x2f, 0x32, + 0x2c, 0x69, 0x3d, 0x31, 0x2b, 0x72, 0x2a, 0x28, 0x32, 0x2a, 0x75, + 0x2d, 0x72, 0x29, 0x2c, 0x6f, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x73, 0x71, 0x72, 0x74, 0x28, 0x69, 0x29, 0x2f, 0x75, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x3d, 0x6f, 0x2d, 0x74, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x5b, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, + 0x32, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x2f, 0x75, 0x2c, 0x74, 0x74, + 0x28, 0x28, 0x69, 0x2d, 0x28, 0x6e, 0x2a, 0x6e, 0x2b, 0x65, 0x2a, + 0x65, 0x29, 0x2a, 0x75, 0x2a, 0x75, 0x29, 0x2f, 0x28, 0x32, 0x2a, + 0x75, 0x29, 0x29, 0x5d, 0x7d, 0x2c, 0x65, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56, 0x65, 0x28, 0x29, 0x7b, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x44, 0x63, 0x2b, 0x3d, 0x75, 0x2a, + 0x6e, 0x2d, 0x72, 0x2a, 0x74, 0x2c, 0x72, 0x3d, 0x6e, 0x2c, 0x75, + 0x3d, 0x74, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, + 0x72, 0x2c, 0x75, 0x3b, 0x48, 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x69, 0x2c, 0x6f, 0x29, 0x7b, 0x48, 0x63, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x3d, 0x6e, 0x2c, 0x74, 0x3d, 0x72, 0x3d, 0x69, 0x2c, + 0x65, 0x3d, 0x75, 0x3d, 0x6f, 0x7d, 0x2c, 0x48, 0x63, 0x2e, 0x6c, + 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x6e, 0x28, 0x74, 0x2c, + 0x65, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x58, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x50, + 0x63, 0x3e, 0x6e, 0x26, 0x26, 0x28, 0x50, 0x63, 0x3d, 0x6e, 0x29, + 0x2c, 0x6e, 0x3e, 0x6a, 0x63, 0x26, 0x26, 0x28, 0x6a, 0x63, 0x3d, + 0x6e, 0x29, 0x2c, 0x55, 0x63, 0x3e, 0x74, 0x26, 0x26, 0x28, 0x55, + 0x63, 0x3d, 0x74, 0x29, 0x2c, 0x74, 0x3e, 0x46, 0x63, 0x26, 0x26, + 0x28, 0x46, 0x63, 0x3d, 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x24, 0x65, 0x28, 0x29, 0x7b, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x22, 0x4d, 0x22, 0x2c, 0x6e, 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x74, + 0x2c, 0x69, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6f, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x4d, 0x22, 0x2c, 0x6e, 0x2c, + 0x22, 0x2c, 0x22, 0x2c, 0x74, 0x29, 0x2c, 0x61, 0x2e, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x3d, 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x4c, 0x22, 0x2c, + 0x6e, 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x74, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x29, 0x7b, + 0x61, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x6e, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x29, + 0x7b, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x5a, 0x22, + 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x42, 0x65, 0x28, + 0x34, 0x2e, 0x35, 0x29, 0x2c, 0x6f, 0x3d, 0x5b, 0x5d, 0x2c, 0x61, + 0x3d, 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x6e, 0x2c, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x61, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x74, 0x7d, 0x2c, 0x6c, 0x69, + 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3a, 0x72, 0x2c, 0x70, 0x6f, 0x6c, + 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x61, + 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x75, 0x7d, + 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x61, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, + 0x72, 0x2c, 0x61, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x6e, + 0x7d, 0x2c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x69, 0x3d, 0x42, 0x65, 0x28, 0x6e, 0x29, 0x2c, 0x61, 0x7d, 0x2c, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x6f, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x6e, 0x3d, 0x6f, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, + 0x22, 0x22, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6f, 0x3d, 0x5b, 0x5d, 0x2c, 0x6e, 0x7d, 0x7d, 0x7d, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x65, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x6d, 0x30, 0x2c, + 0x22, 0x2b, 0x6e, 0x2b, 0x22, 0x61, 0x22, 0x2b, 0x6e, 0x2b, 0x22, + 0x2c, 0x22, 0x2b, 0x6e, 0x2b, 0x22, 0x20, 0x30, 0x20, 0x31, 0x2c, + 0x31, 0x20, 0x30, 0x2c, 0x22, 0x2b, 0x2d, 0x32, 0x2a, 0x6e, 0x2b, + 0x22, 0x61, 0x22, 0x2b, 0x6e, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x6e, + 0x2b, 0x22, 0x20, 0x30, 0x20, 0x31, 0x2c, 0x31, 0x20, 0x30, 0x2c, + 0x22, 0x2b, 0x32, 0x2a, 0x6e, 0x2b, 0x22, 0x7a, 0x22, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x65, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x5f, 0x63, 0x2b, 0x3d, 0x6e, 0x2c, + 0x77, 0x63, 0x2b, 0x3d, 0x74, 0x2c, 0x2b, 0x2b, 0x53, 0x63, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4a, 0x65, + 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6e, 0x28, 0x6e, 0x2c, 0x72, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x75, 0x3d, 0x6e, 0x2d, 0x74, 0x2c, 0x69, 0x3d, 0x72, 0x2d, + 0x65, 0x2c, 0x6f, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, + 0x72, 0x74, 0x28, 0x75, 0x2a, 0x75, 0x2b, 0x69, 0x2a, 0x69, 0x29, + 0x3b, 0x6b, 0x63, 0x2b, 0x3d, 0x6f, 0x2a, 0x28, 0x74, 0x2b, 0x6e, + 0x29, 0x2f, 0x32, 0x2c, 0x45, 0x63, 0x2b, 0x3d, 0x6f, 0x2a, 0x28, + 0x65, 0x2b, 0x72, 0x29, 0x2f, 0x32, 0x2c, 0x41, 0x63, 0x2b, 0x3d, + 0x6f, 0x2c, 0x57, 0x65, 0x28, 0x74, 0x3d, 0x6e, 0x2c, 0x65, 0x3d, + 0x72, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x3b, + 0x49, 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x72, 0x2c, 0x75, 0x29, + 0x7b, 0x49, 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x6e, + 0x2c, 0x57, 0x65, 0x28, 0x74, 0x3d, 0x72, 0x2c, 0x65, 0x3d, 0x75, + 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x47, 0x65, 0x28, 0x29, 0x7b, 0x49, 0x63, 0x2e, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x3d, 0x57, 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4b, 0x65, 0x28, 0x29, 0x7b, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, + 0x2d, 0x72, 0x2c, 0x69, 0x3d, 0x74, 0x2d, 0x75, 0x2c, 0x6f, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x65, + 0x2a, 0x65, 0x2b, 0x69, 0x2a, 0x69, 0x29, 0x3b, 0x6b, 0x63, 0x2b, + 0x3d, 0x6f, 0x2a, 0x28, 0x72, 0x2b, 0x6e, 0x29, 0x2f, 0x32, 0x2c, + 0x45, 0x63, 0x2b, 0x3d, 0x6f, 0x2a, 0x28, 0x75, 0x2b, 0x74, 0x29, + 0x2f, 0x32, 0x2c, 0x41, 0x63, 0x2b, 0x3d, 0x6f, 0x2c, 0x6f, 0x3d, + 0x75, 0x2a, 0x6e, 0x2d, 0x72, 0x2a, 0x74, 0x2c, 0x4e, 0x63, 0x2b, + 0x3d, 0x6f, 0x2a, 0x28, 0x72, 0x2b, 0x6e, 0x29, 0x2c, 0x43, 0x63, + 0x2b, 0x3d, 0x6f, 0x2a, 0x28, 0x75, 0x2b, 0x74, 0x29, 0x2c, 0x7a, + 0x63, 0x2b, 0x3d, 0x33, 0x2a, 0x6f, 0x2c, 0x57, 0x65, 0x28, 0x72, + 0x3d, 0x6e, 0x2c, 0x75, 0x3d, 0x74, 0x29, 0x7d, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x3b, 0x49, 0x63, + 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x69, 0x2c, 0x6f, 0x29, 0x7b, 0x49, + 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x6e, 0x2c, 0x57, + 0x65, 0x28, 0x74, 0x3d, 0x72, 0x3d, 0x69, 0x2c, 0x65, 0x3d, 0x75, + 0x3d, 0x6f, 0x29, 0x7d, 0x2c, 0x49, 0x63, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x29, + 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x51, 0x65, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, + 0x6e, 0x2e, 0x6d, 0x6f, 0x76, 0x65, 0x54, 0x6f, 0x28, 0x74, 0x2b, + 0x6f, 0x2c, 0x65, 0x29, 0x2c, 0x6e, 0x2e, 0x61, 0x72, 0x63, 0x28, + 0x74, 0x2c, 0x65, 0x2c, 0x6f, 0x2c, 0x30, 0x2c, 0x4c, 0x61, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x6e, 0x2e, 0x6d, 0x6f, 0x76, + 0x65, 0x54, 0x6f, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x2c, 0x61, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x72, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x74, 0x2c, 0x65, + 0x29, 0x7b, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x28, + 0x74, 0x2c, 0x65, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x29, 0x7b, 0x61, 0x2e, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x3d, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x29, 0x7b, 0x6e, 0x2e, 0x63, + 0x6c, 0x6f, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x28, 0x29, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x34, 0x2e, 0x35, 0x2c, 0x61, + 0x3d, 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x74, 0x2c, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x61, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x65, 0x7d, 0x2c, 0x6c, 0x69, + 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3a, 0x75, 0x2c, 0x70, 0x6f, 0x6c, + 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x61, + 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x69, 0x7d, + 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x61, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, + 0x75, 0x2c, 0x61, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x74, + 0x7d, 0x2c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6f, 0x3d, 0x6e, 0x2c, 0x61, 0x7d, 0x2c, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x3a, 0x62, 0x7d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6e, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x61, 0x3f, 0x72, 0x3a, + 0x65, 0x29, 0x28, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x72, 0x28, 0x74, 0x2c, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x2c, 0x72, + 0x29, 0x7b, 0x65, 0x3d, 0x6e, 0x28, 0x65, 0x2c, 0x72, 0x29, 0x2c, + 0x74, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x65, 0x5b, 0x30, + 0x5d, 0x2c, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x7d, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x74, + 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x65, 0x28, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x65, 0x3d, 0x6e, 0x28, + 0x65, 0x2c, 0x72, 0x29, 0x2c, 0x74, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x28, 0x65, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x5b, 0x31, 0x5d, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x72, 0x28, 0x29, 0x7b, 0x4d, 0x3d, 0x30, 0x2f, 0x30, 0x2c, 0x53, + 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x69, 0x2c, 0x74, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, + 0x28, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, + 0x3d, 0x70, 0x65, 0x28, 0x5b, 0x65, 0x2c, 0x72, 0x5d, 0x29, 0x2c, + 0x6f, 0x3d, 0x6e, 0x28, 0x65, 0x2c, 0x72, 0x29, 0x3b, 0x75, 0x28, + 0x4d, 0x2c, 0x78, 0x2c, 0x79, 0x2c, 0x62, 0x2c, 0x5f, 0x2c, 0x77, + 0x2c, 0x4d, 0x3d, 0x6f, 0x5b, 0x30, 0x5d, 0x2c, 0x78, 0x3d, 0x6f, + 0x5b, 0x31, 0x5d, 0x2c, 0x79, 0x3d, 0x65, 0x2c, 0x62, 0x3d, 0x69, + 0x5b, 0x30, 0x5d, 0x2c, 0x5f, 0x3d, 0x69, 0x5b, 0x31, 0x5d, 0x2c, + 0x77, 0x3d, 0x69, 0x5b, 0x32, 0x5d, 0x2c, 0x61, 0x2c, 0x74, 0x29, + 0x2c, 0x74, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x4d, 0x2c, + 0x78, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x28, 0x29, 0x7b, 0x53, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x3d, 0x65, 0x2c, 0x74, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, + 0x6e, 0x64, 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x63, 0x28, 0x29, 0x7b, 0x72, 0x28, 0x29, 0x2c, + 0x53, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x6c, 0x2c, 0x53, + 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x73, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x69, 0x28, 0x66, 0x3d, 0x6e, 0x2c, + 0x68, 0x3d, 0x74, 0x29, 0x2c, 0x67, 0x3d, 0x4d, 0x2c, 0x70, 0x3d, + 0x78, 0x2c, 0x76, 0x3d, 0x62, 0x2c, 0x64, 0x3d, 0x5f, 0x2c, 0x6d, + 0x3d, 0x77, 0x2c, 0x53, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, + 0x69, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x73, 0x28, 0x29, 0x7b, 0x75, 0x28, 0x4d, 0x2c, 0x78, 0x2c, 0x79, + 0x2c, 0x62, 0x2c, 0x5f, 0x2c, 0x77, 0x2c, 0x67, 0x2c, 0x70, 0x2c, + 0x66, 0x2c, 0x76, 0x2c, 0x64, 0x2c, 0x6d, 0x2c, 0x61, 0x2c, 0x74, + 0x29, 0x2c, 0x53, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, + 0x3d, 0x6f, 0x2c, 0x6f, 0x28, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x66, 0x2c, 0x68, 0x2c, 0x67, 0x2c, 0x70, 0x2c, 0x76, 0x2c, 0x64, + 0x2c, 0x6d, 0x2c, 0x79, 0x2c, 0x4d, 0x2c, 0x78, 0x2c, 0x62, 0x2c, + 0x5f, 0x2c, 0x77, 0x2c, 0x53, 0x3d, 0x7b, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x3a, 0x65, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x3a, 0x72, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, + 0x64, 0x3a, 0x6f, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x2e, 0x70, 0x6f, 0x6c, + 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, + 0x2c, 0x53, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x3d, 0x63, 0x7d, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, + 0x6e, 0x45, 0x6e, 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x2e, 0x70, 0x6f, 0x6c, 0x79, + 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x2c, 0x53, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3d, 0x72, + 0x7d, 0x7d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, + 0x28, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x61, 0x2c, 0x63, 0x2c, + 0x6c, 0x2c, 0x73, 0x2c, 0x66, 0x2c, 0x68, 0x2c, 0x67, 0x2c, 0x70, + 0x2c, 0x76, 0x2c, 0x64, 0x2c, 0x6d, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x79, 0x3d, 0x73, 0x2d, 0x74, 0x2c, 0x4d, 0x3d, 0x66, 0x2d, + 0x65, 0x2c, 0x78, 0x3d, 0x79, 0x2a, 0x79, 0x2b, 0x4d, 0x2a, 0x4d, + 0x3b, 0x69, 0x66, 0x28, 0x78, 0x3e, 0x34, 0x2a, 0x69, 0x26, 0x26, + 0x64, 0x2d, 0x2d, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x62, 0x3d, + 0x61, 0x2b, 0x67, 0x2c, 0x5f, 0x3d, 0x63, 0x2b, 0x70, 0x2c, 0x77, + 0x3d, 0x6c, 0x2b, 0x76, 0x2c, 0x53, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x62, 0x2a, 0x62, 0x2b, 0x5f, + 0x2a, 0x5f, 0x2b, 0x77, 0x2a, 0x77, 0x29, 0x2c, 0x6b, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x61, 0x73, 0x69, 0x6e, 0x28, 0x77, 0x2f, + 0x3d, 0x53, 0x29, 0x2c, 0x45, 0x3d, 0x67, 0x61, 0x28, 0x67, 0x61, + 0x28, 0x77, 0x29, 0x2d, 0x31, 0x29, 0x3c, 0x43, 0x61, 0x7c, 0x7c, + 0x67, 0x61, 0x28, 0x72, 0x2d, 0x68, 0x29, 0x3c, 0x43, 0x61, 0x3f, + 0x28, 0x72, 0x2b, 0x68, 0x29, 0x2f, 0x32, 0x3a, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x5f, 0x2c, 0x62, + 0x29, 0x2c, 0x41, 0x3d, 0x6e, 0x28, 0x45, 0x2c, 0x6b, 0x29, 0x2c, + 0x4e, 0x3d, 0x41, 0x5b, 0x30, 0x5d, 0x2c, 0x43, 0x3d, 0x41, 0x5b, + 0x31, 0x5d, 0x2c, 0x7a, 0x3d, 0x4e, 0x2d, 0x74, 0x2c, 0x71, 0x3d, + 0x43, 0x2d, 0x65, 0x2c, 0x4c, 0x3d, 0x4d, 0x2a, 0x7a, 0x2d, 0x79, + 0x2a, 0x71, 0x3b, 0x28, 0x4c, 0x2a, 0x4c, 0x2f, 0x78, 0x3e, 0x69, + 0x7c, 0x7c, 0x67, 0x61, 0x28, 0x28, 0x79, 0x2a, 0x7a, 0x2b, 0x4d, + 0x2a, 0x71, 0x29, 0x2f, 0x78, 0x2d, 0x2e, 0x35, 0x29, 0x3e, 0x2e, + 0x33, 0x7c, 0x7c, 0x6f, 0x3e, 0x61, 0x2a, 0x67, 0x2b, 0x63, 0x2a, + 0x70, 0x2b, 0x6c, 0x2a, 0x76, 0x29, 0x26, 0x26, 0x28, 0x75, 0x28, + 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x61, 0x2c, 0x63, 0x2c, 0x6c, + 0x2c, 0x4e, 0x2c, 0x43, 0x2c, 0x45, 0x2c, 0x62, 0x2f, 0x3d, 0x53, + 0x2c, 0x5f, 0x2f, 0x3d, 0x53, 0x2c, 0x77, 0x2c, 0x64, 0x2c, 0x6d, + 0x29, 0x2c, 0x6d, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x4e, + 0x2c, 0x43, 0x29, 0x2c, 0x75, 0x28, 0x4e, 0x2c, 0x43, 0x2c, 0x45, + 0x2c, 0x62, 0x2c, 0x5f, 0x2c, 0x77, 0x2c, 0x73, 0x2c, 0x66, 0x2c, + 0x68, 0x2c, 0x67, 0x2c, 0x70, 0x2c, 0x76, 0x2c, 0x64, 0x2c, 0x6d, + 0x29, 0x29, 0x7d, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x2e, + 0x35, 0x2c, 0x6f, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, + 0x73, 0x28, 0x33, 0x30, 0x2a, 0x44, 0x61, 0x29, 0x2c, 0x61, 0x3d, + 0x31, 0x36, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x2e, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x61, 0x3d, 0x28, 0x69, 0x3d, 0x6e, 0x2a, + 0x6e, 0x29, 0x3e, 0x30, 0x26, 0x26, 0x31, 0x36, 0x2c, 0x74, 0x29, + 0x3a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, + 0x69, 0x29, 0x7d, 0x2c, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x72, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x28, 0x5b, 0x74, + 0x2a, 0x50, 0x61, 0x2c, 0x65, 0x2a, 0x50, 0x61, 0x5d, 0x29, 0x7d, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x72, 0x28, 0x74, 0x28, + 0x6e, 0x29, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x65, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x3d, 0x6e, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, + 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x74, 0x2c, + 0x73, 0x70, 0x68, 0x65, 0x72, 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x6e, 0x2e, 0x73, 0x70, + 0x68, 0x65, 0x72, 0x65, 0x28, 0x29, 0x7d, 0x2c, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x6e, 0x2e, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x7d, 0x2c, + 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x6e, 0x2e, 0x6c, + 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x7d, 0x2c, 0x70, + 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x6e, 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x7d, 0x2c, 0x70, 0x6f, 0x6c, + 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x6e, 0x2e, 0x70, + 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x28, 0x29, + 0x7d, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x75, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x72, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x7d, 0x29, 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x72, 0x28, 0x6e, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x3d, 0x61, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x2a, 0x44, 0x61, + 0x2c, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, 0x44, 0x61, 0x29, 0x2c, 0x5b, + 0x6e, 0x5b, 0x30, 0x5d, 0x2a, 0x68, 0x2b, 0x63, 0x2c, 0x6c, 0x2d, + 0x6e, 0x5b, 0x31, 0x5d, 0x2a, 0x68, 0x5d, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3d, 0x61, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x28, 0x28, 0x6e, 0x5b, 0x30, + 0x5d, 0x2d, 0x63, 0x29, 0x2f, 0x68, 0x2c, 0x28, 0x6c, 0x2d, 0x6e, + 0x5b, 0x31, 0x5d, 0x29, 0x2f, 0x68, 0x29, 0x2c, 0x6e, 0x26, 0x26, + 0x5b, 0x6e, 0x5b, 0x30, 0x5d, 0x2a, 0x50, 0x61, 0x2c, 0x6e, 0x5b, + 0x31, 0x5d, 0x2a, 0x50, 0x61, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x29, 0x7b, 0x61, 0x3d, + 0x41, 0x65, 0x28, 0x6f, 0x3d, 0x6c, 0x72, 0x28, 0x6d, 0x2c, 0x4d, + 0x2c, 0x78, 0x29, 0x2c, 0x69, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x6e, 0x3d, 0x69, 0x28, 0x76, 0x2c, 0x64, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x3d, 0x67, 0x2d, 0x6e, 0x5b, + 0x30, 0x5d, 0x2a, 0x68, 0x2c, 0x6c, 0x3d, 0x70, 0x2b, 0x6e, 0x5b, + 0x31, 0x5d, 0x2a, 0x68, 0x2c, 0x75, 0x28, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x26, 0x26, 0x28, + 0x73, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x3d, 0x21, 0x31, 0x2c, + 0x73, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2c, 0x74, 0x7d, 0x76, + 0x61, 0x72, 0x20, 0x69, 0x2c, 0x6f, 0x2c, 0x61, 0x2c, 0x63, 0x2c, + 0x6c, 0x2c, 0x73, 0x2c, 0x66, 0x3d, 0x6e, 0x72, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3d, 0x69, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x2c, 0x5b, 0x6e, 0x5b, 0x30, 0x5d, + 0x2a, 0x68, 0x2b, 0x63, 0x2c, 0x6c, 0x2d, 0x6e, 0x5b, 0x31, 0x5d, + 0x2a, 0x68, 0x5d, 0x7d, 0x29, 0x2c, 0x68, 0x3d, 0x31, 0x35, 0x30, + 0x2c, 0x67, 0x3d, 0x34, 0x38, 0x30, 0x2c, 0x70, 0x3d, 0x32, 0x35, + 0x30, 0x2c, 0x76, 0x3d, 0x30, 0x2c, 0x64, 0x3d, 0x30, 0x2c, 0x6d, + 0x3d, 0x30, 0x2c, 0x4d, 0x3d, 0x30, 0x2c, 0x78, 0x3d, 0x30, 0x2c, + 0x62, 0x3d, 0x4c, 0x63, 0x2c, 0x5f, 0x3d, 0x79, 0x2c, 0x77, 0x3d, + 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x53, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x73, 0x26, 0x26, 0x28, 0x73, 0x2e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x3d, 0x21, 0x31, 0x29, 0x2c, 0x73, 0x3d, 0x6f, + 0x72, 0x28, 0x62, 0x28, 0x6f, 0x2c, 0x66, 0x28, 0x5f, 0x28, 0x6e, + 0x29, 0x29, 0x29, 0x29, 0x2c, 0x73, 0x2e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x3d, 0x21, 0x30, 0x2c, 0x73, 0x7d, 0x2c, 0x74, 0x2e, 0x63, + 0x6c, 0x69, 0x70, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x62, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, + 0x3f, 0x28, 0x77, 0x3d, 0x6e, 0x2c, 0x4c, 0x63, 0x29, 0x3a, 0x48, + 0x65, 0x28, 0x28, 0x77, 0x3d, 0x2b, 0x6e, 0x29, 0x2a, 0x44, 0x61, + 0x29, 0x2c, 0x75, 0x28, 0x29, 0x29, 0x3a, 0x77, 0x7d, 0x2c, 0x74, + 0x2e, 0x63, 0x6c, 0x69, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x53, 0x3d, 0x6e, 0x2c, 0x5f, 0x3d, + 0x6e, 0x3f, 0x49, 0x65, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x5b, 0x30, + 0x5d, 0x2c, 0x6e, 0x5b, 0x30, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x6e, + 0x5b, 0x31, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, + 0x5b, 0x31, 0x5d, 0x29, 0x3a, 0x79, 0x2c, 0x75, 0x28, 0x29, 0x29, + 0x3a, 0x53, 0x7d, 0x2c, 0x74, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x68, 0x3d, 0x2b, 0x6e, 0x2c, 0x72, + 0x28, 0x29, 0x29, 0x3a, 0x68, 0x7d, 0x2c, 0x74, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x67, 0x3d, 0x2b, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x70, 0x3d, + 0x2b, 0x6e, 0x5b, 0x31, 0x5d, 0x2c, 0x72, 0x28, 0x29, 0x29, 0x3a, + 0x5b, 0x67, 0x2c, 0x70, 0x5d, 0x7d, 0x2c, 0x74, 0x2e, 0x63, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x76, 0x3d, + 0x6e, 0x5b, 0x30, 0x5d, 0x25, 0x33, 0x36, 0x30, 0x2a, 0x44, 0x61, + 0x2c, 0x64, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x25, 0x33, 0x36, 0x30, + 0x2a, 0x44, 0x61, 0x2c, 0x72, 0x28, 0x29, 0x29, 0x3a, 0x5b, 0x76, + 0x2a, 0x50, 0x61, 0x2c, 0x64, 0x2a, 0x50, 0x61, 0x5d, 0x7d, 0x2c, + 0x74, 0x2e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x6d, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x25, 0x33, 0x36, + 0x30, 0x2a, 0x44, 0x61, 0x2c, 0x4d, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, + 0x25, 0x33, 0x36, 0x30, 0x2a, 0x44, 0x61, 0x2c, 0x78, 0x3d, 0x6e, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x32, 0x3f, 0x6e, + 0x5b, 0x32, 0x5d, 0x25, 0x33, 0x36, 0x30, 0x2a, 0x44, 0x61, 0x3a, + 0x30, 0x2c, 0x72, 0x28, 0x29, 0x29, 0x3a, 0x5b, 0x6d, 0x2a, 0x50, + 0x61, 0x2c, 0x4d, 0x2a, 0x50, 0x61, 0x2c, 0x78, 0x2a, 0x50, 0x61, + 0x5d, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x72, 0x65, 0x62, 0x69, 0x6e, + 0x64, 0x28, 0x74, 0x2c, 0x66, 0x2c, 0x22, 0x70, 0x72, 0x65, 0x63, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x29, 0x2c, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x69, 0x3d, 0x6e, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x2c, 0x74, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3d, 0x69, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x26, 0x26, 0x65, 0x2c, 0x72, 0x28, 0x29, 0x7d, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x72, 0x72, 0x28, 0x6e, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x6e, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x74, 0x2a, 0x44, 0x61, 0x2c, + 0x65, 0x2a, 0x44, 0x61, 0x29, 0x7d, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x72, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x6e, + 0x2c, 0x74, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x6e, 0x3e, 0x71, 0x61, 0x3f, + 0x6e, 0x2d, 0x4c, 0x61, 0x3a, 0x2d, 0x71, 0x61, 0x3e, 0x6e, 0x3f, + 0x6e, 0x2b, 0x4c, 0x61, 0x3a, 0x6e, 0x2c, 0x74, 0x5d, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x72, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x3f, 0x74, 0x7c, 0x7c, 0x65, 0x3f, 0x41, + 0x65, 0x28, 0x66, 0x72, 0x28, 0x6e, 0x29, 0x2c, 0x68, 0x72, 0x28, + 0x74, 0x2c, 0x65, 0x29, 0x29, 0x3a, 0x66, 0x72, 0x28, 0x6e, 0x29, + 0x3a, 0x74, 0x7c, 0x7c, 0x65, 0x3f, 0x68, 0x72, 0x28, 0x74, 0x2c, + 0x65, 0x29, 0x3a, 0x63, 0x72, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2b, 0x3d, 0x6e, 0x2c, 0x5b, + 0x74, 0x3e, 0x71, 0x61, 0x3f, 0x74, 0x2d, 0x4c, 0x61, 0x3a, 0x2d, + 0x71, 0x61, 0x3e, 0x74, 0x3f, 0x74, 0x2b, 0x4c, 0x61, 0x3a, 0x74, + 0x2c, 0x65, 0x5d, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x66, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x73, 0x72, 0x28, 0x6e, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x3d, 0x73, 0x72, 0x28, 0x2d, 0x6e, 0x29, 0x2c, + 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x68, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x74, 0x29, 0x2c, 0x61, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x6e, 0x29, + 0x2a, 0x65, 0x2c, 0x63, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x69, 0x6e, 0x28, 0x6e, 0x29, 0x2a, 0x65, 0x2c, 0x6c, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x74, 0x29, 0x2c, + 0x73, 0x3d, 0x6c, 0x2a, 0x72, 0x2b, 0x61, 0x2a, 0x75, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x63, 0x2a, 0x69, 0x2d, 0x73, + 0x2a, 0x6f, 0x2c, 0x61, 0x2a, 0x72, 0x2d, 0x6c, 0x2a, 0x75, 0x29, + 0x2c, 0x74, 0x74, 0x28, 0x73, 0x2a, 0x69, 0x2b, 0x63, 0x2a, 0x6f, + 0x29, 0x5d, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x6e, 0x29, 0x2c, 0x75, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6e, + 0x29, 0x2c, 0x69, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, + 0x73, 0x28, 0x74, 0x29, 0x2c, 0x6f, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x74, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x65, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, + 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x74, 0x29, + 0x2c, 0x61, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, + 0x28, 0x6e, 0x29, 0x2a, 0x65, 0x2c, 0x63, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6e, 0x29, 0x2a, 0x65, 0x2c, + 0x6c, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, + 0x74, 0x29, 0x2c, 0x73, 0x3d, 0x6c, 0x2a, 0x69, 0x2d, 0x63, 0x2a, + 0x6f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x63, 0x2a, + 0x69, 0x2b, 0x6c, 0x2a, 0x6f, 0x2c, 0x61, 0x2a, 0x72, 0x2b, 0x73, + 0x2a, 0x75, 0x29, 0x2c, 0x74, 0x74, 0x28, 0x73, 0x2a, 0x72, 0x2d, + 0x61, 0x2a, 0x75, 0x29, 0x5d, 0x7d, 0x2c, 0x65, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, 0x72, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x6e, 0x29, 0x2c, + 0x72, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, + 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x75, 0x2c, 0x69, + 0x2c, 0x6f, 0x2c, 0x61, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x63, + 0x3d, 0x6f, 0x2a, 0x74, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, + 0x75, 0x3f, 0x28, 0x75, 0x3d, 0x70, 0x72, 0x28, 0x65, 0x2c, 0x75, + 0x29, 0x2c, 0x69, 0x3d, 0x70, 0x72, 0x28, 0x65, 0x2c, 0x69, 0x29, + 0x2c, 0x28, 0x6f, 0x3e, 0x30, 0x3f, 0x69, 0x3e, 0x75, 0x3a, 0x75, + 0x3e, 0x69, 0x29, 0x26, 0x26, 0x28, 0x75, 0x2b, 0x3d, 0x6f, 0x2a, + 0x4c, 0x61, 0x29, 0x29, 0x3a, 0x28, 0x75, 0x3d, 0x6e, 0x2b, 0x6f, + 0x2a, 0x4c, 0x61, 0x2c, 0x69, 0x3d, 0x6e, 0x2d, 0x2e, 0x35, 0x2a, + 0x63, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x6c, 0x2c, 0x73, 0x3d, 0x75, 0x3b, 0x6f, 0x3e, 0x30, 0x3f, 0x73, + 0x3e, 0x69, 0x3a, 0x69, 0x3e, 0x73, 0x3b, 0x73, 0x2d, 0x3d, 0x63, + 0x29, 0x61, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x28, 0x6c, + 0x3d, 0x78, 0x65, 0x28, 0x5b, 0x65, 0x2c, 0x2d, 0x72, 0x2a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x73, 0x29, 0x2c, + 0x2d, 0x72, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, + 0x28, 0x73, 0x29, 0x5d, 0x29, 0x29, 0x5b, 0x30, 0x5d, 0x2c, 0x6c, + 0x5b, 0x31, 0x5d, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x70, 0x65, 0x28, 0x74, + 0x29, 0x3b, 0x65, 0x5b, 0x30, 0x5d, 0x2d, 0x3d, 0x6e, 0x2c, 0x4d, + 0x65, 0x28, 0x65, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, + 0x6e, 0x74, 0x28, 0x2d, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x28, 0x2d, 0x65, 0x5b, 0x32, + 0x5d, 0x3c, 0x30, 0x3f, 0x2d, 0x72, 0x3a, 0x72, 0x29, 0x2b, 0x32, + 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x50, 0x49, 0x2d, 0x43, 0x61, + 0x29, 0x25, 0x28, 0x32, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x50, + 0x49, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x76, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x74, 0x61, 0x2e, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2d, 0x43, 0x61, 0x2c, + 0x65, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x28, 0x74, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x2e, 0x6d, 0x61, 0x70, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x6e, 0x2c, + 0x74, 0x5d, 0x7d, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x2c, + 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x74, 0x61, + 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2d, + 0x43, 0x61, 0x2c, 0x65, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x61, + 0x74, 0x28, 0x74, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x2e, + 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x5b, 0x74, 0x2c, 0x6e, 0x5d, 0x7d, 0x29, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x72, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x79, 0x72, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x4d, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, + 0x2c, 0x72, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x74, 0x29, 0x2c, + 0x69, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, + 0x74, 0x29, 0x2c, 0x6f, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, + 0x6f, 0x73, 0x28, 0x72, 0x29, 0x2c, 0x61, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x72, 0x29, 0x2c, 0x63, 0x3d, + 0x75, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, + 0x6e, 0x29, 0x2c, 0x6c, 0x3d, 0x75, 0x2a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6e, 0x29, 0x2c, 0x73, 0x3d, 0x6f, + 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x65, + 0x29, 0x2c, 0x66, 0x3d, 0x6f, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x73, 0x69, 0x6e, 0x28, 0x65, 0x29, 0x2c, 0x68, 0x3d, 0x32, 0x2a, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x73, 0x69, 0x6e, 0x28, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x69, 0x74, + 0x28, 0x72, 0x2d, 0x74, 0x29, 0x2b, 0x75, 0x2a, 0x6f, 0x2a, 0x69, + 0x74, 0x28, 0x65, 0x2d, 0x6e, 0x29, 0x29, 0x29, 0x2c, 0x67, 0x3d, + 0x31, 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, + 0x68, 0x29, 0x2c, 0x70, 0x3d, 0x68, 0x3f, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, + 0x28, 0x6e, 0x2a, 0x3d, 0x68, 0x29, 0x2a, 0x67, 0x2c, 0x65, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x68, 0x2d, + 0x6e, 0x29, 0x2a, 0x67, 0x2c, 0x72, 0x3d, 0x65, 0x2a, 0x63, 0x2b, + 0x74, 0x2a, 0x73, 0x2c, 0x75, 0x3d, 0x65, 0x2a, 0x6c, 0x2b, 0x74, + 0x2a, 0x66, 0x2c, 0x6f, 0x3d, 0x65, 0x2a, 0x69, 0x2b, 0x74, 0x2a, + 0x61, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x75, 0x2c, + 0x72, 0x29, 0x2a, 0x50, 0x61, 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x6f, 0x2c, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x72, 0x2a, 0x72, 0x2b, + 0x75, 0x2a, 0x75, 0x29, 0x29, 0x2a, 0x50, 0x61, 0x5d, 0x7d, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x6e, 0x2a, 0x50, 0x61, + 0x2c, 0x74, 0x2a, 0x50, 0x61, 0x5d, 0x7d, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x70, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x3d, 0x68, 0x2c, 0x70, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x78, 0x72, 0x28, 0x29, 0x7b, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, + 0x6e, 0x2c, 0x75, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x75, 0x2a, + 0x3d, 0x44, 0x61, 0x29, 0x2c, 0x6f, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x75, 0x29, 0x2c, 0x61, 0x3d, 0x67, + 0x61, 0x28, 0x28, 0x6e, 0x2a, 0x3d, 0x44, 0x61, 0x29, 0x2d, 0x74, + 0x29, 0x2c, 0x63, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, + 0x73, 0x28, 0x61, 0x29, 0x3b, 0x59, 0x63, 0x2b, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x28, 0x61, 0x3d, + 0x6f, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, + 0x61, 0x29, 0x29, 0x2a, 0x61, 0x2b, 0x28, 0x61, 0x3d, 0x72, 0x2a, + 0x69, 0x2d, 0x65, 0x2a, 0x6f, 0x2a, 0x63, 0x29, 0x2a, 0x61, 0x29, + 0x2c, 0x65, 0x2a, 0x69, 0x2b, 0x72, 0x2a, 0x6f, 0x2a, 0x63, 0x29, + 0x2c, 0x74, 0x3d, 0x6e, 0x2c, 0x65, 0x3d, 0x69, 0x2c, 0x72, 0x3d, + 0x6f, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, + 0x3b, 0x5a, 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x75, 0x2c, 0x69, + 0x29, 0x7b, 0x74, 0x3d, 0x75, 0x2a, 0x44, 0x61, 0x2c, 0x65, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x69, 0x2a, + 0x3d, 0x44, 0x61, 0x29, 0x2c, 0x72, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x69, 0x29, 0x2c, 0x5a, 0x63, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x6e, 0x7d, 0x2c, 0x5a, 0x63, + 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x5a, 0x63, + 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x5a, 0x63, 0x2e, 0x6c, + 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x62, 0x7d, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x72, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, + 0x6f, 0x73, 0x28, 0x74, 0x29, 0x2c, 0x75, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x65, 0x29, 0x2c, 0x69, 0x3d, + 0x6e, 0x28, 0x72, 0x2a, 0x75, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x5b, 0x69, 0x2a, 0x75, 0x2a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x74, 0x29, 0x2c, 0x69, 0x2a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x65, 0x29, 0x5d, + 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x72, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, + 0x72, 0x74, 0x28, 0x6e, 0x2a, 0x6e, 0x2b, 0x65, 0x2a, 0x65, 0x29, + 0x2c, 0x75, 0x3d, 0x74, 0x28, 0x72, 0x29, 0x2c, 0x69, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x75, 0x29, 0x2c, + 0x6f, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, + 0x75, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x6e, + 0x2a, 0x69, 0x2c, 0x72, 0x2a, 0x6f, 0x29, 0x2c, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x61, 0x73, 0x69, 0x6e, 0x28, 0x72, 0x26, 0x26, 0x65, + 0x2a, 0x69, 0x2f, 0x72, 0x29, 0x5d, 0x7d, 0x2c, 0x65, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x72, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6f, + 0x3e, 0x30, 0x3f, 0x2d, 0x52, 0x61, 0x2b, 0x43, 0x61, 0x3e, 0x74, + 0x26, 0x26, 0x28, 0x74, 0x3d, 0x2d, 0x52, 0x61, 0x2b, 0x43, 0x61, + 0x29, 0x3a, 0x74, 0x3e, 0x52, 0x61, 0x2d, 0x43, 0x61, 0x26, 0x26, + 0x28, 0x74, 0x3d, 0x52, 0x61, 0x2d, 0x43, 0x61, 0x29, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6f, 0x2f, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x75, 0x28, 0x74, 0x29, 0x2c, 0x69, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x65, 0x2a, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x69, 0x2a, + 0x6e, 0x29, 0x2c, 0x6f, 0x2d, 0x65, 0x2a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x69, 0x2a, 0x6e, 0x29, 0x5d, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x63, 0x6f, 0x73, 0x28, 0x6e, 0x29, 0x2c, 0x75, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x74, 0x61, 0x6e, 0x28, 0x71, 0x61, 0x2f, 0x34, 0x2b, 0x6e, 0x2f, + 0x32, 0x29, 0x7d, 0x2c, 0x69, 0x3d, 0x6e, 0x3d, 0x3d, 0x3d, 0x74, + 0x3f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6e, + 0x29, 0x3a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, + 0x72, 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, + 0x74, 0x29, 0x29, 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6c, 0x6f, + 0x67, 0x28, 0x75, 0x28, 0x74, 0x29, 0x2f, 0x75, 0x28, 0x6e, 0x29, + 0x29, 0x2c, 0x6f, 0x3d, 0x72, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x70, 0x6f, 0x77, 0x28, 0x75, 0x28, 0x6e, 0x29, 0x2c, 0x69, 0x29, + 0x2f, 0x69, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x3f, 0x28, 0x65, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6f, 0x2d, + 0x74, 0x2c, 0x72, 0x3d, 0x4b, 0x28, 0x69, 0x29, 0x2a, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x6e, 0x2a, 0x6e, + 0x2b, 0x65, 0x2a, 0x65, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x5b, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, + 0x32, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x2f, 0x69, 0x2c, 0x32, 0x2a, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x28, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x6f, 0x2f, 0x72, + 0x2c, 0x31, 0x2f, 0x69, 0x29, 0x29, 0x2d, 0x52, 0x61, 0x5d, 0x7d, + 0x2c, 0x65, 0x29, 0x3a, 0x53, 0x72, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x72, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x3d, 0x69, 0x2d, 0x74, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x5b, 0x65, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, + 0x6e, 0x28, 0x75, 0x2a, 0x6e, 0x29, 0x2c, 0x69, 0x2d, 0x65, 0x2a, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x75, 0x2a, + 0x6e, 0x29, 0x5d, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x6e, 0x29, 0x2c, + 0x75, 0x3d, 0x6e, 0x3d, 0x3d, 0x3d, 0x74, 0x3f, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6e, 0x29, 0x3a, 0x28, 0x72, + 0x2d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x74, + 0x29, 0x29, 0x2f, 0x28, 0x74, 0x2d, 0x6e, 0x29, 0x2c, 0x69, 0x3d, + 0x72, 0x2f, 0x75, 0x2b, 0x6e, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x67, 0x61, 0x28, 0x75, 0x29, 0x3c, 0x43, 0x61, 0x3f, + 0x61, 0x72, 0x3a, 0x28, 0x65, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, + 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, + 0x69, 0x2d, 0x74, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, + 0x6e, 0x2c, 0x65, 0x29, 0x2f, 0x75, 0x2c, 0x69, 0x2d, 0x4b, 0x28, + 0x75, 0x29, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, + 0x74, 0x28, 0x6e, 0x2a, 0x6e, 0x2b, 0x65, 0x2a, 0x65, 0x29, 0x5d, + 0x7d, 0x2c, 0x65, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x53, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x6e, 0x2c, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x74, 0x61, 0x6e, 0x28, 0x71, 0x61, 0x2f, 0x34, 0x2b, 0x74, + 0x2f, 0x32, 0x29, 0x29, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6b, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x3d, 0x75, 0x72, 0x28, 0x6e, + 0x29, 0x2c, 0x72, 0x3d, 0x65, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2c, 0x75, 0x3d, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, + 0x61, 0x74, 0x65, 0x2c, 0x69, 0x3d, 0x65, 0x2e, 0x63, 0x6c, 0x69, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x65, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x72, 0x2e, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x28, 0x65, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x3d, 0x3d, 0x3d, 0x65, 0x3f, 0x74, 0x3f, 0x65, + 0x2e, 0x63, 0x6c, 0x69, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, + 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3a, 0x65, 0x3a, 0x6e, 0x7d, + 0x2c, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x75, 0x2e, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x28, 0x65, 0x2c, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x3d, 0x3d, 0x3d, 0x65, 0x3f, 0x74, 0x3f, + 0x65, 0x2e, 0x63, 0x6c, 0x69, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x74, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3a, 0x65, 0x3a, 0x6e, + 0x7d, 0x2c, 0x65, 0x2e, 0x63, 0x6c, 0x69, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, + 0x69, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x65, 0x2c, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3b, 0x69, + 0x66, 0x28, 0x6f, 0x3d, 0x3d, 0x3d, 0x65, 0x29, 0x7b, 0x69, 0x66, + 0x28, 0x74, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, 0x71, 0x61, 0x2a, 0x72, + 0x28, 0x29, 0x2c, 0x63, 0x3d, 0x75, 0x28, 0x29, 0x3b, 0x69, 0x28, + 0x5b, 0x5b, 0x63, 0x5b, 0x30, 0x5d, 0x2d, 0x61, 0x2c, 0x63, 0x5b, + 0x31, 0x5d, 0x2d, 0x61, 0x5d, 0x2c, 0x5b, 0x63, 0x5b, 0x30, 0x5d, + 0x2b, 0x61, 0x2c, 0x63, 0x5b, 0x31, 0x5d, 0x2b, 0x61, 0x5d, 0x5d, + 0x29, 0x7d, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x74, 0x26, 0x26, + 0x28, 0x6f, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x7d, 0x2c, 0x65, 0x2e, 0x63, + 0x6c, 0x69, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x28, 0x6e, + 0x75, 0x6c, 0x6c, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x45, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x74, + 0x61, 0x6e, 0x28, 0x71, 0x61, 0x2f, 0x34, 0x2b, 0x74, 0x2f, 0x32, + 0x29, 0x29, 0x2c, 0x2d, 0x6e, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x72, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x5b, 0x30, 0x5d, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4e, + 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x5b, 0x31, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x65, 0x3d, 0x5b, 0x30, + 0x2c, 0x31, 0x5d, 0x2c, 0x72, 0x3d, 0x32, 0x2c, 0x75, 0x3d, 0x32, + 0x3b, 0x74, 0x3e, 0x75, 0x3b, 0x75, 0x2b, 0x2b, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x3b, 0x72, 0x3e, 0x31, 0x26, 0x26, 0x51, 0x28, + 0x6e, 0x5b, 0x65, 0x5b, 0x72, 0x2d, 0x32, 0x5d, 0x5d, 0x2c, 0x6e, + 0x5b, 0x65, 0x5b, 0x72, 0x2d, 0x31, 0x5d, 0x5d, 0x2c, 0x6e, 0x5b, + 0x75, 0x5d, 0x29, 0x3c, 0x3d, 0x30, 0x3b, 0x29, 0x2d, 0x2d, 0x72, + 0x3b, 0x65, 0x5b, 0x72, 0x2b, 0x2b, 0x5d, 0x3d, 0x75, 0x7d, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x2e, 0x73, 0x6c, 0x69, + 0x63, 0x65, 0x28, 0x30, 0x2c, 0x72, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7a, 0x72, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x5b, 0x30, 0x5d, 0x2d, 0x74, 0x5b, 0x30, 0x5d, 0x7c, 0x7c, 0x6e, + 0x5b, 0x31, 0x5d, 0x2d, 0x74, 0x5b, 0x31, 0x5d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x71, 0x72, 0x28, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x28, 0x65, 0x5b, 0x30, 0x5d, 0x2d, 0x74, 0x5b, 0x30, 0x5d, + 0x29, 0x2a, 0x28, 0x6e, 0x5b, 0x31, 0x5d, 0x2d, 0x74, 0x5b, 0x31, + 0x5d, 0x29, 0x3c, 0x28, 0x65, 0x5b, 0x31, 0x5d, 0x2d, 0x74, 0x5b, + 0x31, 0x5d, 0x29, 0x2a, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x2d, 0x74, + 0x5b, 0x30, 0x5d, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x4c, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, + 0x2c, 0x72, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x6e, + 0x5b, 0x30, 0x5d, 0x2c, 0x69, 0x3d, 0x65, 0x5b, 0x30, 0x5d, 0x2c, + 0x6f, 0x3d, 0x74, 0x5b, 0x30, 0x5d, 0x2d, 0x75, 0x2c, 0x61, 0x3d, + 0x72, 0x5b, 0x30, 0x5d, 0x2d, 0x69, 0x2c, 0x63, 0x3d, 0x6e, 0x5b, + 0x31, 0x5d, 0x2c, 0x6c, 0x3d, 0x65, 0x5b, 0x31, 0x5d, 0x2c, 0x73, + 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x2d, 0x63, 0x2c, 0x66, 0x3d, 0x72, + 0x5b, 0x31, 0x5d, 0x2d, 0x6c, 0x2c, 0x68, 0x3d, 0x28, 0x61, 0x2a, + 0x28, 0x63, 0x2d, 0x6c, 0x29, 0x2d, 0x66, 0x2a, 0x28, 0x75, 0x2d, + 0x69, 0x29, 0x29, 0x2f, 0x28, 0x66, 0x2a, 0x6f, 0x2d, 0x61, 0x2a, + 0x73, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x75, + 0x2b, 0x68, 0x2a, 0x6f, 0x2c, 0x63, 0x2b, 0x68, 0x2a, 0x73, 0x5d, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x54, + 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, + 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x3d, 0x6e, 0x5b, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, 0x28, 0x74, 0x5b, 0x30, 0x5d, + 0x2d, 0x65, 0x5b, 0x30, 0x5d, 0x7c, 0x7c, 0x74, 0x5b, 0x31, 0x5d, + 0x2d, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x72, 0x28, 0x29, 0x7b, 0x74, + 0x75, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x2c, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x69, 0x74, 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x44, + 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, + 0x65, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x7c, 0x7c, 0x6e, + 0x65, 0x77, 0x20, 0x52, 0x72, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x3d, 0x6e, 0x2c, + 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x50, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x58, 0x72, 0x28, 0x6e, 0x29, + 0x2c, 0x51, 0x63, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, + 0x6e, 0x29, 0x2c, 0x65, 0x6c, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x6e, 0x29, 0x2c, 0x74, 0x75, 0x28, 0x6e, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x55, 0x72, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x63, + 0x69, 0x72, 0x63, 0x6c, 0x65, 0x2c, 0x65, 0x3d, 0x74, 0x2e, 0x78, + 0x2c, 0x72, 0x3d, 0x74, 0x2e, 0x63, 0x79, 0x2c, 0x75, 0x3d, 0x7b, + 0x78, 0x3a, 0x65, 0x2c, 0x79, 0x3a, 0x72, 0x7d, 0x2c, 0x69, 0x3d, + 0x6e, 0x2e, 0x50, 0x2c, 0x6f, 0x3d, 0x6e, 0x2e, 0x4e, 0x2c, 0x61, + 0x3d, 0x5b, 0x6e, 0x5d, 0x3b, 0x50, 0x72, 0x28, 0x6e, 0x29, 0x3b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x63, 0x3d, 0x69, + 0x3b, 0x63, 0x2e, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x26, 0x26, + 0x67, 0x61, 0x28, 0x65, 0x2d, 0x63, 0x2e, 0x63, 0x69, 0x72, 0x63, + 0x6c, 0x65, 0x2e, 0x78, 0x29, 0x3c, 0x43, 0x61, 0x26, 0x26, 0x67, + 0x61, 0x28, 0x72, 0x2d, 0x63, 0x2e, 0x63, 0x69, 0x72, 0x63, 0x6c, + 0x65, 0x2e, 0x63, 0x79, 0x29, 0x3c, 0x43, 0x61, 0x3b, 0x29, 0x69, + 0x3d, 0x63, 0x2e, 0x50, 0x2c, 0x61, 0x2e, 0x75, 0x6e, 0x73, 0x68, + 0x69, 0x66, 0x74, 0x28, 0x63, 0x29, 0x2c, 0x50, 0x72, 0x28, 0x63, + 0x29, 0x2c, 0x63, 0x3d, 0x69, 0x3b, 0x61, 0x2e, 0x75, 0x6e, 0x73, + 0x68, 0x69, 0x66, 0x74, 0x28, 0x63, 0x29, 0x2c, 0x58, 0x72, 0x28, + 0x63, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x6c, 0x3d, 0x6f, 0x3b, 0x6c, 0x2e, 0x63, 0x69, 0x72, 0x63, 0x6c, + 0x65, 0x26, 0x26, 0x67, 0x61, 0x28, 0x65, 0x2d, 0x6c, 0x2e, 0x63, + 0x69, 0x72, 0x63, 0x6c, 0x65, 0x2e, 0x78, 0x29, 0x3c, 0x43, 0x61, + 0x26, 0x26, 0x67, 0x61, 0x28, 0x72, 0x2d, 0x6c, 0x2e, 0x63, 0x69, + 0x72, 0x63, 0x6c, 0x65, 0x2e, 0x63, 0x79, 0x29, 0x3c, 0x43, 0x61, + 0x3b, 0x29, 0x6f, 0x3d, 0x6c, 0x2e, 0x4e, 0x2c, 0x61, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x6c, 0x29, 0x2c, 0x50, 0x72, 0x28, 0x6c, + 0x29, 0x2c, 0x6c, 0x3d, 0x6f, 0x3b, 0x61, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x6c, 0x29, 0x2c, 0x58, 0x72, 0x28, 0x6c, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x73, 0x2c, 0x66, 0x3d, 0x61, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x73, + 0x3d, 0x31, 0x3b, 0x66, 0x3e, 0x73, 0x3b, 0x2b, 0x2b, 0x73, 0x29, + 0x6c, 0x3d, 0x61, 0x5b, 0x73, 0x5d, 0x2c, 0x63, 0x3d, 0x61, 0x5b, + 0x73, 0x2d, 0x31, 0x5d, 0x2c, 0x4b, 0x72, 0x28, 0x6c, 0x2e, 0x65, + 0x64, 0x67, 0x65, 0x2c, 0x63, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x2c, + 0x6c, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x2c, 0x75, 0x29, 0x3b, 0x63, + 0x3d, 0x61, 0x5b, 0x30, 0x5d, 0x2c, 0x6c, 0x3d, 0x61, 0x5b, 0x66, + 0x2d, 0x31, 0x5d, 0x2c, 0x6c, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x3d, + 0x4a, 0x72, 0x28, 0x63, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x2c, 0x6c, + 0x2e, 0x73, 0x69, 0x74, 0x65, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, + 0x75, 0x29, 0x2c, 0x56, 0x72, 0x28, 0x63, 0x29, 0x2c, 0x56, 0x72, + 0x28, 0x6c, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6a, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, + 0x75, 0x2c, 0x69, 0x3d, 0x6e, 0x2e, 0x78, 0x2c, 0x6f, 0x3d, 0x6e, + 0x2e, 0x79, 0x2c, 0x61, 0x3d, 0x51, 0x63, 0x2e, 0x5f, 0x3b, 0x61, + 0x3b, 0x29, 0x69, 0x66, 0x28, 0x72, 0x3d, 0x46, 0x72, 0x28, 0x61, + 0x2c, 0x6f, 0x29, 0x2d, 0x69, 0x2c, 0x72, 0x3e, 0x43, 0x61, 0x29, + 0x61, 0x3d, 0x61, 0x2e, 0x4c, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x7b, + 0x69, 0x66, 0x28, 0x75, 0x3d, 0x69, 0x2d, 0x48, 0x72, 0x28, 0x61, + 0x2c, 0x6f, 0x29, 0x2c, 0x21, 0x28, 0x75, 0x3e, 0x43, 0x61, 0x29, + 0x29, 0x7b, 0x72, 0x3e, 0x2d, 0x43, 0x61, 0x3f, 0x28, 0x74, 0x3d, + 0x61, 0x2e, 0x50, 0x2c, 0x65, 0x3d, 0x61, 0x29, 0x3a, 0x75, 0x3e, + 0x2d, 0x43, 0x61, 0x3f, 0x28, 0x74, 0x3d, 0x61, 0x2c, 0x65, 0x3d, + 0x61, 0x2e, 0x4e, 0x29, 0x3a, 0x74, 0x3d, 0x65, 0x3d, 0x61, 0x3b, + 0x62, 0x72, 0x65, 0x61, 0x6b, 0x7d, 0x69, 0x66, 0x28, 0x21, 0x61, + 0x2e, 0x52, 0x29, 0x7b, 0x74, 0x3d, 0x61, 0x3b, 0x62, 0x72, 0x65, + 0x61, 0x6b, 0x7d, 0x61, 0x3d, 0x61, 0x2e, 0x52, 0x7d, 0x76, 0x61, + 0x72, 0x20, 0x63, 0x3d, 0x44, 0x72, 0x28, 0x6e, 0x29, 0x3b, 0x69, + 0x66, 0x28, 0x51, 0x63, 0x2e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, + 0x28, 0x74, 0x2c, 0x63, 0x29, 0x2c, 0x74, 0x7c, 0x7c, 0x65, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x74, 0x3d, 0x3d, 0x3d, 0x65, 0x29, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x58, 0x72, 0x28, 0x74, 0x29, + 0x2c, 0x65, 0x3d, 0x44, 0x72, 0x28, 0x74, 0x2e, 0x73, 0x69, 0x74, + 0x65, 0x29, 0x2c, 0x51, 0x63, 0x2e, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x28, 0x63, 0x2c, 0x65, 0x29, 0x2c, 0x63, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x3d, 0x65, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x3d, 0x4a, + 0x72, 0x28, 0x74, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x2c, 0x63, 0x2e, + 0x73, 0x69, 0x74, 0x65, 0x29, 0x2c, 0x56, 0x72, 0x28, 0x74, 0x29, + 0x2c, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x56, 0x72, 0x28, 0x65, 0x29, + 0x3b, 0x69, 0x66, 0x28, 0x21, 0x65, 0x29, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x63, 0x2e, 0x65, + 0x64, 0x67, 0x65, 0x3d, 0x4a, 0x72, 0x28, 0x74, 0x2e, 0x73, 0x69, + 0x74, 0x65, 0x2c, 0x63, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x29, 0x29, + 0x3b, 0x58, 0x72, 0x28, 0x74, 0x29, 0x2c, 0x58, 0x72, 0x28, 0x65, + 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x74, 0x2e, 0x73, + 0x69, 0x74, 0x65, 0x2c, 0x73, 0x3d, 0x6c, 0x2e, 0x78, 0x2c, 0x66, + 0x3d, 0x6c, 0x2e, 0x79, 0x2c, 0x68, 0x3d, 0x6e, 0x2e, 0x78, 0x2d, + 0x73, 0x2c, 0x67, 0x3d, 0x6e, 0x2e, 0x79, 0x2d, 0x66, 0x2c, 0x70, + 0x3d, 0x65, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x2c, 0x76, 0x3d, 0x70, + 0x2e, 0x78, 0x2d, 0x73, 0x2c, 0x64, 0x3d, 0x70, 0x2e, 0x79, 0x2d, + 0x66, 0x2c, 0x6d, 0x3d, 0x32, 0x2a, 0x28, 0x68, 0x2a, 0x64, 0x2d, + 0x67, 0x2a, 0x76, 0x29, 0x2c, 0x79, 0x3d, 0x68, 0x2a, 0x68, 0x2b, + 0x67, 0x2a, 0x67, 0x2c, 0x4d, 0x3d, 0x76, 0x2a, 0x76, 0x2b, 0x64, + 0x2a, 0x64, 0x2c, 0x78, 0x3d, 0x7b, 0x78, 0x3a, 0x28, 0x64, 0x2a, + 0x79, 0x2d, 0x67, 0x2a, 0x4d, 0x29, 0x2f, 0x6d, 0x2b, 0x73, 0x2c, + 0x79, 0x3a, 0x28, 0x68, 0x2a, 0x4d, 0x2d, 0x76, 0x2a, 0x79, 0x29, + 0x2f, 0x6d, 0x2b, 0x66, 0x7d, 0x3b, 0x4b, 0x72, 0x28, 0x65, 0x2e, + 0x65, 0x64, 0x67, 0x65, 0x2c, 0x6c, 0x2c, 0x70, 0x2c, 0x78, 0x29, + 0x2c, 0x63, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x3d, 0x4a, 0x72, 0x28, + 0x6c, 0x2c, 0x6e, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x78, 0x29, + 0x2c, 0x65, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x3d, 0x4a, 0x72, 0x28, + 0x6e, 0x2c, 0x70, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x78, 0x29, + 0x2c, 0x56, 0x72, 0x28, 0x74, 0x29, 0x2c, 0x56, 0x72, 0x28, 0x65, + 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x46, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x2c, + 0x72, 0x3d, 0x65, 0x2e, 0x78, 0x2c, 0x75, 0x3d, 0x65, 0x2e, 0x79, + 0x2c, 0x69, 0x3d, 0x75, 0x2d, 0x74, 0x3b, 0x69, 0x66, 0x28, 0x21, + 0x69, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x6e, 0x2e, 0x50, 0x3b, 0x69, + 0x66, 0x28, 0x21, 0x6f, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x2d, 0x31, 0x2f, 0x30, 0x3b, 0x65, 0x3d, 0x6f, 0x2e, 0x73, 0x69, + 0x74, 0x65, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, 0x65, 0x2e, + 0x78, 0x2c, 0x63, 0x3d, 0x65, 0x2e, 0x79, 0x2c, 0x6c, 0x3d, 0x63, + 0x2d, 0x74, 0x3b, 0x69, 0x66, 0x28, 0x21, 0x6c, 0x29, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x73, 0x3d, 0x61, 0x2d, 0x72, 0x2c, 0x66, 0x3d, 0x31, 0x2f, 0x69, + 0x2d, 0x31, 0x2f, 0x6c, 0x2c, 0x68, 0x3d, 0x73, 0x2f, 0x6c, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x3f, 0x28, 0x2d, + 0x68, 0x2b, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, + 0x28, 0x68, 0x2a, 0x68, 0x2d, 0x32, 0x2a, 0x66, 0x2a, 0x28, 0x73, + 0x2a, 0x73, 0x2f, 0x28, 0x2d, 0x32, 0x2a, 0x6c, 0x29, 0x2d, 0x63, + 0x2b, 0x6c, 0x2f, 0x32, 0x2b, 0x75, 0x2d, 0x69, 0x2f, 0x32, 0x29, + 0x29, 0x29, 0x2f, 0x66, 0x2b, 0x72, 0x3a, 0x28, 0x72, 0x2b, 0x61, + 0x29, 0x2f, 0x32, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x48, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x2e, 0x4e, 0x3b, 0x69, 0x66, + 0x28, 0x65, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x46, + 0x72, 0x28, 0x65, 0x2c, 0x74, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x6e, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x2e, 0x79, 0x3d, 0x3d, 0x3d, + 0x74, 0x3f, 0x72, 0x2e, 0x78, 0x3a, 0x31, 0x2f, 0x30, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4f, 0x72, 0x28, + 0x6e, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x74, + 0x65, 0x3d, 0x6e, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x73, 0x3d, 0x5b, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x49, 0x72, 0x28, 0x6e, 0x29, 0x7b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, + 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x2c, 0x61, 0x2c, + 0x63, 0x2c, 0x6c, 0x2c, 0x73, 0x2c, 0x66, 0x3d, 0x6e, 0x5b, 0x30, + 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x68, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, + 0x5b, 0x30, 0x5d, 0x2c, 0x67, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x5b, + 0x31, 0x5d, 0x2c, 0x70, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x5b, 0x31, + 0x5d, 0x2c, 0x76, 0x3d, 0x4b, 0x63, 0x2c, 0x64, 0x3d, 0x76, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x64, 0x2d, 0x2d, 0x3b, + 0x29, 0x69, 0x66, 0x28, 0x69, 0x3d, 0x76, 0x5b, 0x64, 0x5d, 0x2c, + 0x69, 0x26, 0x26, 0x69, 0x2e, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, + 0x65, 0x28, 0x29, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x61, 0x3d, 0x69, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x73, 0x2c, 0x63, 0x3d, 0x61, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x6f, 0x3d, 0x30, 0x3b, + 0x63, 0x3e, 0x6f, 0x3b, 0x29, 0x73, 0x3d, 0x61, 0x5b, 0x6f, 0x5d, + 0x2e, 0x65, 0x6e, 0x64, 0x28, 0x29, 0x2c, 0x72, 0x3d, 0x73, 0x2e, + 0x78, 0x2c, 0x75, 0x3d, 0x73, 0x2e, 0x79, 0x2c, 0x6c, 0x3d, 0x61, + 0x5b, 0x2b, 0x2b, 0x6f, 0x25, 0x63, 0x5d, 0x2e, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x28, 0x29, 0x2c, 0x74, 0x3d, 0x6c, 0x2e, 0x78, 0x2c, + 0x65, 0x3d, 0x6c, 0x2e, 0x79, 0x2c, 0x28, 0x67, 0x61, 0x28, 0x72, + 0x2d, 0x74, 0x29, 0x3e, 0x43, 0x61, 0x7c, 0x7c, 0x67, 0x61, 0x28, + 0x75, 0x2d, 0x65, 0x29, 0x3e, 0x43, 0x61, 0x29, 0x26, 0x26, 0x28, + 0x61, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x6f, 0x2c, + 0x30, 0x2c, 0x6e, 0x65, 0x77, 0x20, 0x51, 0x72, 0x28, 0x47, 0x72, + 0x28, 0x69, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x2c, 0x73, 0x2c, 0x67, + 0x61, 0x28, 0x72, 0x2d, 0x66, 0x29, 0x3c, 0x43, 0x61, 0x26, 0x26, + 0x70, 0x2d, 0x75, 0x3e, 0x43, 0x61, 0x3f, 0x7b, 0x78, 0x3a, 0x66, + 0x2c, 0x79, 0x3a, 0x67, 0x61, 0x28, 0x74, 0x2d, 0x66, 0x29, 0x3c, + 0x43, 0x61, 0x3f, 0x65, 0x3a, 0x70, 0x7d, 0x3a, 0x67, 0x61, 0x28, + 0x75, 0x2d, 0x70, 0x29, 0x3c, 0x43, 0x61, 0x26, 0x26, 0x68, 0x2d, + 0x72, 0x3e, 0x43, 0x61, 0x3f, 0x7b, 0x78, 0x3a, 0x67, 0x61, 0x28, + 0x65, 0x2d, 0x70, 0x29, 0x3c, 0x43, 0x61, 0x3f, 0x74, 0x3a, 0x68, + 0x2c, 0x79, 0x3a, 0x70, 0x7d, 0x3a, 0x67, 0x61, 0x28, 0x72, 0x2d, + 0x68, 0x29, 0x3c, 0x43, 0x61, 0x26, 0x26, 0x75, 0x2d, 0x67, 0x3e, + 0x43, 0x61, 0x3f, 0x7b, 0x78, 0x3a, 0x68, 0x2c, 0x79, 0x3a, 0x67, + 0x61, 0x28, 0x74, 0x2d, 0x68, 0x29, 0x3c, 0x43, 0x61, 0x3f, 0x65, + 0x3a, 0x67, 0x7d, 0x3a, 0x67, 0x61, 0x28, 0x75, 0x2d, 0x67, 0x29, + 0x3c, 0x43, 0x61, 0x26, 0x26, 0x72, 0x2d, 0x66, 0x3e, 0x43, 0x61, + 0x3f, 0x7b, 0x78, 0x3a, 0x67, 0x61, 0x28, 0x65, 0x2d, 0x67, 0x29, + 0x3c, 0x43, 0x61, 0x3f, 0x74, 0x3a, 0x66, 0x2c, 0x79, 0x3a, 0x67, + 0x7d, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2c, 0x69, 0x2e, 0x73, + 0x69, 0x74, 0x65, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x29, 0x2c, + 0x2b, 0x2b, 0x63, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x59, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x61, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x6e, 0x2e, 0x61, 0x6e, 0x67, 0x6c, 0x65, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5a, + 0x72, 0x28, 0x29, 0x7b, 0x74, 0x75, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x78, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x79, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, + 0x72, 0x63, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x74, + 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x79, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x56, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x50, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, + 0x4e, 0x3b, 0x69, 0x66, 0x28, 0x74, 0x26, 0x26, 0x65, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x74, 0x2e, 0x73, 0x69, 0x74, + 0x65, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x2c, + 0x69, 0x3d, 0x65, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x3b, 0x69, 0x66, + 0x28, 0x72, 0x21, 0x3d, 0x3d, 0x69, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x6f, 0x3d, 0x75, 0x2e, 0x78, 0x2c, 0x61, 0x3d, 0x75, 0x2e, + 0x79, 0x2c, 0x63, 0x3d, 0x72, 0x2e, 0x78, 0x2d, 0x6f, 0x2c, 0x6c, + 0x3d, 0x72, 0x2e, 0x79, 0x2d, 0x61, 0x2c, 0x73, 0x3d, 0x69, 0x2e, + 0x78, 0x2d, 0x6f, 0x2c, 0x66, 0x3d, 0x69, 0x2e, 0x79, 0x2d, 0x61, + 0x2c, 0x68, 0x3d, 0x32, 0x2a, 0x28, 0x63, 0x2a, 0x66, 0x2d, 0x6c, + 0x2a, 0x73, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x21, 0x28, 0x68, 0x3e, + 0x3d, 0x2d, 0x7a, 0x61, 0x29, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x67, 0x3d, 0x63, 0x2a, 0x63, 0x2b, 0x6c, 0x2a, 0x6c, 0x2c, 0x70, + 0x3d, 0x73, 0x2a, 0x73, 0x2b, 0x66, 0x2a, 0x66, 0x2c, 0x76, 0x3d, + 0x28, 0x66, 0x2a, 0x67, 0x2d, 0x6c, 0x2a, 0x70, 0x29, 0x2f, 0x68, + 0x2c, 0x64, 0x3d, 0x28, 0x63, 0x2a, 0x70, 0x2d, 0x73, 0x2a, 0x67, + 0x29, 0x2f, 0x68, 0x2c, 0x66, 0x3d, 0x64, 0x2b, 0x61, 0x2c, 0x6d, + 0x3d, 0x72, 0x6c, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x7c, 0x7c, + 0x6e, 0x65, 0x77, 0x20, 0x5a, 0x72, 0x3b, 0x6d, 0x2e, 0x61, 0x72, + 0x63, 0x3d, 0x6e, 0x2c, 0x6d, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x3d, + 0x75, 0x2c, 0x6d, 0x2e, 0x78, 0x3d, 0x76, 0x2b, 0x6f, 0x2c, 0x6d, + 0x2e, 0x79, 0x3d, 0x66, 0x2b, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x71, 0x72, 0x74, 0x28, 0x76, 0x2a, 0x76, 0x2b, 0x64, 0x2a, 0x64, + 0x29, 0x2c, 0x6d, 0x2e, 0x63, 0x79, 0x3d, 0x66, 0x2c, 0x6e, 0x2e, + 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x3d, 0x6d, 0x3b, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x79, 0x3d, 0x6e, 0x75, 0x6c, + 0x6c, 0x2c, 0x4d, 0x3d, 0x74, 0x6c, 0x2e, 0x5f, 0x3b, 0x4d, 0x3b, + 0x29, 0x69, 0x66, 0x28, 0x6d, 0x2e, 0x79, 0x3c, 0x4d, 0x2e, 0x79, + 0x7c, 0x7c, 0x6d, 0x2e, 0x79, 0x3d, 0x3d, 0x3d, 0x4d, 0x2e, 0x79, + 0x26, 0x26, 0x6d, 0x2e, 0x78, 0x3c, 0x3d, 0x4d, 0x2e, 0x78, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x21, 0x4d, 0x2e, 0x4c, 0x29, 0x7b, 0x79, + 0x3d, 0x4d, 0x2e, 0x50, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x7d, + 0x4d, 0x3d, 0x4d, 0x2e, 0x4c, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x7b, + 0x69, 0x66, 0x28, 0x21, 0x4d, 0x2e, 0x52, 0x29, 0x7b, 0x79, 0x3d, + 0x4d, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x7d, 0x4d, 0x3d, 0x4d, + 0x2e, 0x52, 0x7d, 0x74, 0x6c, 0x2e, 0x69, 0x6e, 0x73, 0x65, 0x72, + 0x74, 0x28, 0x79, 0x2c, 0x6d, 0x29, 0x2c, 0x79, 0x7c, 0x7c, 0x28, + 0x6e, 0x6c, 0x3d, 0x6d, 0x29, 0x7d, 0x7d, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x58, 0x72, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x63, + 0x69, 0x72, 0x63, 0x6c, 0x65, 0x3b, 0x74, 0x26, 0x26, 0x28, 0x74, + 0x2e, 0x50, 0x7c, 0x7c, 0x28, 0x6e, 0x6c, 0x3d, 0x74, 0x2e, 0x4e, + 0x29, 0x2c, 0x74, 0x6c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x28, 0x74, 0x29, 0x2c, 0x72, 0x6c, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x74, 0x29, 0x2c, 0x74, 0x75, 0x28, 0x74, 0x29, 0x2c, 0x6e, + 0x2e, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x3d, 0x6e, 0x75, 0x6c, + 0x6c, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x24, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x3d, 0x47, 0x63, 0x2c, + 0x72, 0x3d, 0x4f, 0x65, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x5b, 0x30, + 0x5d, 0x2c, 0x6e, 0x5b, 0x30, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x6e, + 0x5b, 0x31, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, + 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x75, 0x3d, 0x65, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x75, 0x2d, 0x2d, 0x3b, 0x29, 0x74, + 0x3d, 0x65, 0x5b, 0x75, 0x5d, 0x2c, 0x28, 0x21, 0x42, 0x72, 0x28, + 0x74, 0x2c, 0x6e, 0x29, 0x7c, 0x7c, 0x21, 0x72, 0x28, 0x74, 0x29, + 0x7c, 0x7c, 0x67, 0x61, 0x28, 0x74, 0x2e, 0x61, 0x2e, 0x78, 0x2d, + 0x74, 0x2e, 0x62, 0x2e, 0x78, 0x29, 0x3c, 0x43, 0x61, 0x26, 0x26, + 0x67, 0x61, 0x28, 0x74, 0x2e, 0x61, 0x2e, 0x79, 0x2d, 0x74, 0x2e, + 0x62, 0x2e, 0x79, 0x29, 0x3c, 0x43, 0x61, 0x29, 0x26, 0x26, 0x28, + 0x74, 0x2e, 0x61, 0x3d, 0x74, 0x2e, 0x62, 0x3d, 0x6e, 0x75, 0x6c, + 0x6c, 0x2c, 0x65, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x28, + 0x75, 0x2c, 0x31, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x2e, 0x62, 0x3b, + 0x69, 0x66, 0x28, 0x65, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x21, 0x30, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, 0x2c, + 0x69, 0x3d, 0x6e, 0x2e, 0x61, 0x2c, 0x6f, 0x3d, 0x74, 0x5b, 0x30, + 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x61, 0x3d, 0x74, 0x5b, 0x31, 0x5d, + 0x5b, 0x30, 0x5d, 0x2c, 0x63, 0x3d, 0x74, 0x5b, 0x30, 0x5d, 0x5b, + 0x31, 0x5d, 0x2c, 0x6c, 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x5b, 0x31, + 0x5d, 0x2c, 0x73, 0x3d, 0x6e, 0x2e, 0x6c, 0x2c, 0x66, 0x3d, 0x6e, + 0x2e, 0x72, 0x2c, 0x68, 0x3d, 0x73, 0x2e, 0x78, 0x2c, 0x67, 0x3d, + 0x73, 0x2e, 0x79, 0x2c, 0x70, 0x3d, 0x66, 0x2e, 0x78, 0x2c, 0x76, + 0x3d, 0x66, 0x2e, 0x79, 0x2c, 0x64, 0x3d, 0x28, 0x68, 0x2b, 0x70, + 0x29, 0x2f, 0x32, 0x2c, 0x6d, 0x3d, 0x28, 0x67, 0x2b, 0x76, 0x29, + 0x2f, 0x32, 0x3b, 0x69, 0x66, 0x28, 0x76, 0x3d, 0x3d, 0x3d, 0x67, + 0x29, 0x7b, 0x69, 0x66, 0x28, 0x6f, 0x3e, 0x64, 0x7c, 0x7c, 0x64, + 0x3e, 0x3d, 0x61, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, + 0x69, 0x66, 0x28, 0x68, 0x3e, 0x70, 0x29, 0x7b, 0x69, 0x66, 0x28, + 0x69, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x69, 0x2e, 0x79, 0x3e, 0x3d, + 0x6c, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x7d, 0x65, 0x6c, + 0x73, 0x65, 0x20, 0x69, 0x3d, 0x7b, 0x78, 0x3a, 0x64, 0x2c, 0x79, + 0x3a, 0x63, 0x7d, 0x3b, 0x65, 0x3d, 0x7b, 0x78, 0x3a, 0x64, 0x2c, + 0x79, 0x3a, 0x6c, 0x7d, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x7b, 0x69, + 0x66, 0x28, 0x69, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x69, 0x2e, 0x79, + 0x3c, 0x63, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x7d, 0x65, + 0x6c, 0x73, 0x65, 0x20, 0x69, 0x3d, 0x7b, 0x78, 0x3a, 0x64, 0x2c, + 0x79, 0x3a, 0x6c, 0x7d, 0x3b, 0x65, 0x3d, 0x7b, 0x78, 0x3a, 0x64, + 0x2c, 0x79, 0x3a, 0x63, 0x7d, 0x7d, 0x7d, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x69, 0x66, 0x28, 0x72, 0x3d, 0x28, 0x68, 0x2d, 0x70, 0x29, + 0x2f, 0x28, 0x76, 0x2d, 0x67, 0x29, 0x2c, 0x75, 0x3d, 0x6d, 0x2d, + 0x72, 0x2a, 0x64, 0x2c, 0x2d, 0x31, 0x3e, 0x72, 0x7c, 0x7c, 0x72, + 0x3e, 0x31, 0x29, 0x69, 0x66, 0x28, 0x68, 0x3e, 0x70, 0x29, 0x7b, + 0x69, 0x66, 0x28, 0x69, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x69, 0x2e, + 0x79, 0x3e, 0x3d, 0x6c, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x3d, 0x7b, 0x78, 0x3a, + 0x28, 0x63, 0x2d, 0x75, 0x29, 0x2f, 0x72, 0x2c, 0x79, 0x3a, 0x63, + 0x7d, 0x3b, 0x65, 0x3d, 0x7b, 0x78, 0x3a, 0x28, 0x6c, 0x2d, 0x75, + 0x29, 0x2f, 0x72, 0x2c, 0x79, 0x3a, 0x6c, 0x7d, 0x7d, 0x65, 0x6c, + 0x73, 0x65, 0x7b, 0x69, 0x66, 0x28, 0x69, 0x29, 0x7b, 0x69, 0x66, + 0x28, 0x69, 0x2e, 0x79, 0x3c, 0x63, 0x29, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x3d, 0x7b, + 0x78, 0x3a, 0x28, 0x6c, 0x2d, 0x75, 0x29, 0x2f, 0x72, 0x2c, 0x79, + 0x3a, 0x6c, 0x7d, 0x3b, 0x65, 0x3d, 0x7b, 0x78, 0x3a, 0x28, 0x63, + 0x2d, 0x75, 0x29, 0x2f, 0x72, 0x2c, 0x79, 0x3a, 0x63, 0x7d, 0x7d, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x76, 0x3e, 0x67, + 0x29, 0x7b, 0x69, 0x66, 0x28, 0x69, 0x29, 0x7b, 0x69, 0x66, 0x28, + 0x69, 0x2e, 0x78, 0x3e, 0x3d, 0x61, 0x29, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x3d, 0x7b, + 0x78, 0x3a, 0x6f, 0x2c, 0x79, 0x3a, 0x72, 0x2a, 0x6f, 0x2b, 0x75, + 0x7d, 0x3b, 0x65, 0x3d, 0x7b, 0x78, 0x3a, 0x61, 0x2c, 0x79, 0x3a, + 0x72, 0x2a, 0x61, 0x2b, 0x75, 0x7d, 0x7d, 0x65, 0x6c, 0x73, 0x65, + 0x7b, 0x69, 0x66, 0x28, 0x69, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x69, + 0x2e, 0x78, 0x3c, 0x6f, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x3d, 0x7b, 0x78, 0x3a, + 0x61, 0x2c, 0x79, 0x3a, 0x72, 0x2a, 0x61, 0x2b, 0x75, 0x7d, 0x3b, + 0x65, 0x3d, 0x7b, 0x78, 0x3a, 0x6f, 0x2c, 0x79, 0x3a, 0x72, 0x2a, + 0x6f, 0x2b, 0x75, 0x7d, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x2e, 0x61, 0x3d, 0x69, 0x2c, 0x6e, 0x2e, 0x62, 0x3d, + 0x65, 0x2c, 0x21, 0x30, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x57, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x3d, 0x6e, 0x2c, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x72, 0x3d, 0x74, 0x2c, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x61, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x62, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x4a, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, + 0x72, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x6e, 0x65, + 0x77, 0x20, 0x57, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x63, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x75, 0x29, 0x2c, 0x65, 0x26, 0x26, 0x4b, 0x72, + 0x28, 0x75, 0x2c, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x2c, 0x72, + 0x26, 0x26, 0x4b, 0x72, 0x28, 0x75, 0x2c, 0x74, 0x2c, 0x6e, 0x2c, + 0x72, 0x29, 0x2c, 0x4b, 0x63, 0x5b, 0x6e, 0x2e, 0x69, 0x5d, 0x2e, + 0x65, 0x64, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x6e, 0x65, 0x77, 0x20, 0x51, 0x72, 0x28, 0x75, 0x2c, 0x6e, 0x2c, + 0x74, 0x29, 0x29, 0x2c, 0x4b, 0x63, 0x5b, 0x74, 0x2e, 0x69, 0x5d, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x6e, 0x65, 0x77, 0x20, 0x51, 0x72, 0x28, 0x75, 0x2c, 0x74, + 0x2c, 0x6e, 0x29, 0x29, 0x2c, 0x75, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x47, 0x72, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x6e, + 0x65, 0x77, 0x20, 0x57, 0x72, 0x28, 0x6e, 0x2c, 0x6e, 0x75, 0x6c, + 0x6c, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, + 0x2e, 0x61, 0x3d, 0x74, 0x2c, 0x72, 0x2e, 0x62, 0x3d, 0x65, 0x2c, + 0x47, 0x63, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x29, 0x2c, + 0x72, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x4b, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, + 0x7b, 0x6e, 0x2e, 0x61, 0x7c, 0x7c, 0x6e, 0x2e, 0x62, 0x3f, 0x6e, + 0x2e, 0x6c, 0x3d, 0x3d, 0x3d, 0x65, 0x3f, 0x6e, 0x2e, 0x62, 0x3d, + 0x72, 0x3a, 0x6e, 0x2e, 0x61, 0x3d, 0x72, 0x3a, 0x28, 0x6e, 0x2e, + 0x61, 0x3d, 0x72, 0x2c, 0x6e, 0x2e, 0x6c, 0x3d, 0x74, 0x2c, 0x6e, + 0x2e, 0x72, 0x3d, 0x65, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x51, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x2c, + 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x6e, 0x2e, + 0x61, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, 0x62, 0x3b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x3d, 0x6e, 0x2c, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x3d, 0x74, 0x2c, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x3d, 0x65, + 0x3f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, + 0x28, 0x65, 0x2e, 0x79, 0x2d, 0x74, 0x2e, 0x79, 0x2c, 0x65, 0x2e, + 0x78, 0x2d, 0x74, 0x2e, 0x78, 0x29, 0x3a, 0x6e, 0x2e, 0x6c, 0x3d, + 0x3d, 0x3d, 0x74, 0x3f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, + 0x61, 0x6e, 0x32, 0x28, 0x75, 0x2e, 0x78, 0x2d, 0x72, 0x2e, 0x78, + 0x2c, 0x72, 0x2e, 0x79, 0x2d, 0x75, 0x2e, 0x79, 0x29, 0x3a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x72, + 0x2e, 0x78, 0x2d, 0x75, 0x2e, 0x78, 0x2c, 0x75, 0x2e, 0x79, 0x2d, + 0x72, 0x2e, 0x79, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6e, 0x75, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x5f, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x75, 0x28, 0x6e, + 0x29, 0x7b, 0x6e, 0x2e, 0x55, 0x3d, 0x6e, 0x2e, 0x43, 0x3d, 0x6e, + 0x2e, 0x4c, 0x3d, 0x6e, 0x2e, 0x52, 0x3d, 0x6e, 0x2e, 0x50, 0x3d, + 0x6e, 0x2e, 0x4e, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x75, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x74, + 0x2c, 0x72, 0x3d, 0x74, 0x2e, 0x52, 0x2c, 0x75, 0x3d, 0x65, 0x2e, + 0x55, 0x3b, 0x75, 0x3f, 0x75, 0x2e, 0x4c, 0x3d, 0x3d, 0x3d, 0x65, + 0x3f, 0x75, 0x2e, 0x4c, 0x3d, 0x72, 0x3a, 0x75, 0x2e, 0x52, 0x3d, + 0x72, 0x3a, 0x6e, 0x2e, 0x5f, 0x3d, 0x72, 0x2c, 0x72, 0x2e, 0x55, + 0x3d, 0x75, 0x2c, 0x65, 0x2e, 0x55, 0x3d, 0x72, 0x2c, 0x65, 0x2e, + 0x52, 0x3d, 0x72, 0x2e, 0x4c, 0x2c, 0x65, 0x2e, 0x52, 0x26, 0x26, + 0x28, 0x65, 0x2e, 0x52, 0x2e, 0x55, 0x3d, 0x65, 0x29, 0x2c, 0x72, + 0x2e, 0x4c, 0x3d, 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x72, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x74, 0x2c, 0x72, 0x3d, 0x74, + 0x2e, 0x4c, 0x2c, 0x75, 0x3d, 0x65, 0x2e, 0x55, 0x3b, 0x75, 0x3f, + 0x75, 0x2e, 0x4c, 0x3d, 0x3d, 0x3d, 0x65, 0x3f, 0x75, 0x2e, 0x4c, + 0x3d, 0x72, 0x3a, 0x75, 0x2e, 0x52, 0x3d, 0x72, 0x3a, 0x6e, 0x2e, + 0x5f, 0x3d, 0x72, 0x2c, 0x72, 0x2e, 0x55, 0x3d, 0x75, 0x2c, 0x65, + 0x2e, 0x55, 0x3d, 0x72, 0x2c, 0x65, 0x2e, 0x4c, 0x3d, 0x72, 0x2e, + 0x52, 0x2c, 0x65, 0x2e, 0x4c, 0x26, 0x26, 0x28, 0x65, 0x2e, 0x4c, + 0x2e, 0x55, 0x3d, 0x65, 0x29, 0x2c, 0x72, 0x2e, 0x52, 0x3d, 0x65, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, + 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x6e, + 0x2e, 0x4c, 0x3b, 0x29, 0x6e, 0x3d, 0x6e, 0x2e, 0x4c, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x75, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x2c, + 0x75, 0x2c, 0x69, 0x3d, 0x6e, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x28, + 0x6f, 0x75, 0x29, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x47, 0x63, 0x3d, 0x5b, 0x5d, 0x2c, 0x4b, 0x63, + 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, + 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x2c, 0x51, + 0x63, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x6e, 0x75, 0x2c, 0x74, 0x6c, + 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x6e, 0x75, 0x3b, 0x3b, 0x29, 0x69, + 0x66, 0x28, 0x75, 0x3d, 0x6e, 0x6c, 0x2c, 0x69, 0x26, 0x26, 0x28, + 0x21, 0x75, 0x7c, 0x7c, 0x69, 0x2e, 0x79, 0x3c, 0x75, 0x2e, 0x79, + 0x7c, 0x7c, 0x69, 0x2e, 0x79, 0x3d, 0x3d, 0x3d, 0x75, 0x2e, 0x79, + 0x26, 0x26, 0x69, 0x2e, 0x78, 0x3c, 0x75, 0x2e, 0x78, 0x29, 0x29, + 0x28, 0x69, 0x2e, 0x78, 0x21, 0x3d, 0x3d, 0x65, 0x7c, 0x7c, 0x69, + 0x2e, 0x79, 0x21, 0x3d, 0x3d, 0x72, 0x29, 0x26, 0x26, 0x28, 0x4b, + 0x63, 0x5b, 0x69, 0x2e, 0x69, 0x5d, 0x3d, 0x6e, 0x65, 0x77, 0x20, + 0x4f, 0x72, 0x28, 0x69, 0x29, 0x2c, 0x6a, 0x72, 0x28, 0x69, 0x29, + 0x2c, 0x65, 0x3d, 0x69, 0x2e, 0x78, 0x2c, 0x72, 0x3d, 0x69, 0x2e, + 0x79, 0x29, 0x2c, 0x69, 0x3d, 0x6e, 0x2e, 0x70, 0x6f, 0x70, 0x28, + 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x7b, 0x69, 0x66, 0x28, 0x21, + 0x75, 0x29, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x55, 0x72, 0x28, + 0x75, 0x2e, 0x61, 0x72, 0x63, 0x29, 0x7d, 0x74, 0x26, 0x26, 0x28, + 0x24, 0x72, 0x28, 0x74, 0x29, 0x2c, 0x49, 0x72, 0x28, 0x74, 0x29, + 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x7b, 0x63, 0x65, + 0x6c, 0x6c, 0x73, 0x3a, 0x4b, 0x63, 0x2c, 0x65, 0x64, 0x67, 0x65, + 0x73, 0x3a, 0x47, 0x63, 0x7d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x51, 0x63, 0x3d, 0x74, 0x6c, 0x3d, 0x47, 0x63, 0x3d, + 0x4b, 0x63, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x6f, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x75, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x2e, 0x79, 0x2d, 0x6e, 0x2e, 0x79, 0x7c, 0x7c, 0x74, + 0x2e, 0x78, 0x2d, 0x6e, 0x2e, 0x78, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x75, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, + 0x6e, 0x2e, 0x78, 0x2d, 0x65, 0x2e, 0x78, 0x29, 0x2a, 0x28, 0x74, + 0x2e, 0x79, 0x2d, 0x6e, 0x2e, 0x79, 0x29, 0x2d, 0x28, 0x6e, 0x2e, + 0x78, 0x2d, 0x74, 0x2e, 0x78, 0x29, 0x2a, 0x28, 0x65, 0x2e, 0x79, + 0x2d, 0x6e, 0x2e, 0x79, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x78, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x79, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x73, 0x75, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x7b, 0x6c, 0x65, 0x61, 0x66, 0x3a, 0x21, 0x30, 0x2c, 0x6e, + 0x6f, 0x64, 0x65, 0x73, 0x3a, 0x5b, 0x5d, 0x2c, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x78, 0x3a, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x79, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, + 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, + 0x2c, 0x69, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x21, 0x6e, 0x28, 0x74, + 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x29, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x2e, 0x35, 0x2a, 0x28, 0x65, + 0x2b, 0x75, 0x29, 0x2c, 0x61, 0x3d, 0x2e, 0x35, 0x2a, 0x28, 0x72, + 0x2b, 0x69, 0x29, 0x2c, 0x63, 0x3d, 0x74, 0x2e, 0x6e, 0x6f, 0x64, + 0x65, 0x73, 0x3b, 0x63, 0x5b, 0x30, 0x5d, 0x26, 0x26, 0x66, 0x75, + 0x28, 0x6e, 0x2c, 0x63, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x2c, 0x72, + 0x2c, 0x6f, 0x2c, 0x61, 0x29, 0x2c, 0x63, 0x5b, 0x31, 0x5d, 0x26, + 0x26, 0x66, 0x75, 0x28, 0x6e, 0x2c, 0x63, 0x5b, 0x31, 0x5d, 0x2c, + 0x6f, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x61, 0x29, 0x2c, 0x63, 0x5b, + 0x32, 0x5d, 0x26, 0x26, 0x66, 0x75, 0x28, 0x6e, 0x2c, 0x63, 0x5b, + 0x32, 0x5d, 0x2c, 0x65, 0x2c, 0x61, 0x2c, 0x6f, 0x2c, 0x69, 0x29, + 0x2c, 0x63, 0x5b, 0x33, 0x5d, 0x26, 0x26, 0x66, 0x75, 0x28, 0x6e, + 0x2c, 0x63, 0x5b, 0x33, 0x5d, 0x2c, 0x6f, 0x2c, 0x61, 0x2c, 0x75, + 0x2c, 0x69, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x68, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, + 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x61, 0x2c, 0x63, 0x3d, 0x31, 0x2f, 0x30, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x28, 0x6e, 0x2c, 0x73, 0x2c, + 0x66, 0x2c, 0x68, 0x2c, 0x67, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x21, + 0x28, 0x73, 0x3e, 0x69, 0x7c, 0x7c, 0x66, 0x3e, 0x6f, 0x7c, 0x7c, + 0x72, 0x3e, 0x68, 0x7c, 0x7c, 0x75, 0x3e, 0x67, 0x29, 0x29, 0x7b, + 0x69, 0x66, 0x28, 0x70, 0x3d, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x70, 0x2c, 0x76, 0x3d, + 0x74, 0x2d, 0x6e, 0x2e, 0x78, 0x2c, 0x64, 0x3d, 0x65, 0x2d, 0x6e, + 0x2e, 0x79, 0x2c, 0x6d, 0x3d, 0x76, 0x2a, 0x76, 0x2b, 0x64, 0x2a, + 0x64, 0x3b, 0x69, 0x66, 0x28, 0x63, 0x3e, 0x6d, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x79, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x71, 0x72, 0x74, 0x28, 0x63, 0x3d, 0x6d, 0x29, 0x3b, 0x72, 0x3d, + 0x74, 0x2d, 0x79, 0x2c, 0x75, 0x3d, 0x65, 0x2d, 0x79, 0x2c, 0x69, + 0x3d, 0x74, 0x2b, 0x79, 0x2c, 0x6f, 0x3d, 0x65, 0x2b, 0x79, 0x2c, + 0x61, 0x3d, 0x70, 0x7d, 0x7d, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x4d, 0x3d, 0x6e, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x2c, 0x78, 0x3d, 0x2e, 0x35, 0x2a, 0x28, 0x73, 0x2b, 0x68, 0x29, + 0x2c, 0x62, 0x3d, 0x2e, 0x35, 0x2a, 0x28, 0x66, 0x2b, 0x67, 0x29, + 0x2c, 0x5f, 0x3d, 0x74, 0x3e, 0x3d, 0x78, 0x2c, 0x77, 0x3d, 0x65, + 0x3e, 0x3d, 0x62, 0x2c, 0x53, 0x3d, 0x77, 0x3c, 0x3c, 0x31, 0x7c, + 0x5f, 0x2c, 0x6b, 0x3d, 0x53, 0x2b, 0x34, 0x3b, 0x6b, 0x3e, 0x53, + 0x3b, 0x2b, 0x2b, 0x53, 0x29, 0x69, 0x66, 0x28, 0x6e, 0x3d, 0x4d, + 0x5b, 0x33, 0x26, 0x53, 0x5d, 0x29, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x28, 0x33, 0x26, 0x53, 0x29, 0x7b, 0x63, 0x61, 0x73, 0x65, + 0x20, 0x30, 0x3a, 0x6c, 0x28, 0x6e, 0x2c, 0x73, 0x2c, 0x66, 0x2c, + 0x78, 0x2c, 0x62, 0x29, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, + 0x63, 0x61, 0x73, 0x65, 0x20, 0x31, 0x3a, 0x6c, 0x28, 0x6e, 0x2c, + 0x78, 0x2c, 0x66, 0x2c, 0x68, 0x2c, 0x62, 0x29, 0x3b, 0x62, 0x72, + 0x65, 0x61, 0x6b, 0x3b, 0x63, 0x61, 0x73, 0x65, 0x20, 0x32, 0x3a, + 0x6c, 0x28, 0x6e, 0x2c, 0x73, 0x2c, 0x62, 0x2c, 0x78, 0x2c, 0x67, + 0x29, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x63, 0x61, 0x73, + 0x65, 0x20, 0x33, 0x3a, 0x6c, 0x28, 0x6e, 0x2c, 0x78, 0x2c, 0x62, + 0x2c, 0x68, 0x2c, 0x67, 0x29, 0x7d, 0x7d, 0x7d, 0x28, 0x6e, 0x2c, + 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x29, 0x2c, 0x61, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, 0x75, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x3d, 0x74, 0x61, 0x2e, + 0x72, 0x67, 0x62, 0x28, 0x6e, 0x29, 0x2c, 0x74, 0x3d, 0x74, 0x61, + 0x2e, 0x72, 0x67, 0x62, 0x28, 0x74, 0x29, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x65, 0x3d, 0x6e, 0x2e, 0x72, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, + 0x67, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, 0x62, 0x2c, 0x69, 0x3d, 0x74, + 0x2e, 0x72, 0x2d, 0x65, 0x2c, 0x6f, 0x3d, 0x74, 0x2e, 0x67, 0x2d, + 0x72, 0x2c, 0x61, 0x3d, 0x74, 0x2e, 0x62, 0x2d, 0x75, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x22, 0x23, 0x22, 0x2b, 0x78, 0x74, 0x28, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x65, 0x2b, + 0x69, 0x2a, 0x6e, 0x29, 0x29, 0x2b, 0x78, 0x74, 0x28, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x72, 0x2b, + 0x6f, 0x2a, 0x6e, 0x29, 0x29, 0x2b, 0x78, 0x74, 0x28, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x75, 0x2b, + 0x61, 0x2a, 0x6e, 0x29, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x75, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x3d, 0x7b, + 0x7d, 0x2c, 0x75, 0x3d, 0x7b, 0x7d, 0x3b, 0x66, 0x6f, 0x72, 0x28, + 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x29, 0x65, 0x20, 0x69, 0x6e, + 0x20, 0x74, 0x3f, 0x72, 0x5b, 0x65, 0x5d, 0x3d, 0x6d, 0x75, 0x28, + 0x6e, 0x5b, 0x65, 0x5d, 0x2c, 0x74, 0x5b, 0x65, 0x5d, 0x29, 0x3a, + 0x75, 0x5b, 0x65, 0x5d, 0x3d, 0x6e, 0x5b, 0x65, 0x5d, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x29, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x7c, 0x7c, 0x28, 0x75, 0x5b, 0x65, + 0x5d, 0x3d, 0x74, 0x5b, 0x65, 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x20, + 0x69, 0x6e, 0x20, 0x72, 0x29, 0x75, 0x5b, 0x65, 0x5d, 0x3d, 0x72, + 0x5b, 0x65, 0x5d, 0x28, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x75, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3d, 0x2b, + 0x6e, 0x2c, 0x74, 0x3d, 0x2b, 0x74, 0x2c, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2a, 0x28, 0x31, 0x2d, 0x65, 0x29, + 0x2b, 0x74, 0x2a, 0x65, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, + 0x69, 0x3d, 0x69, 0x6c, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x3d, 0x6f, 0x6c, 0x2e, 0x6c, 0x61, 0x73, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x30, 0x2c, 0x6f, 0x3d, 0x2d, + 0x31, 0x2c, 0x61, 0x3d, 0x5b, 0x5d, 0x2c, 0x63, 0x3d, 0x5b, 0x5d, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x6e, 0x2b, 0x3d, 0x22, 0x22, 0x2c, + 0x74, 0x2b, 0x3d, 0x22, 0x22, 0x3b, 0x28, 0x65, 0x3d, 0x69, 0x6c, + 0x2e, 0x65, 0x78, 0x65, 0x63, 0x28, 0x6e, 0x29, 0x29, 0x26, 0x26, + 0x28, 0x72, 0x3d, 0x6f, 0x6c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x28, + 0x74, 0x29, 0x29, 0x3b, 0x29, 0x28, 0x75, 0x3d, 0x72, 0x2e, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x29, 0x3e, 0x69, 0x26, 0x26, 0x28, 0x75, + 0x3d, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x69, 0x2c, + 0x75, 0x29, 0x2c, 0x61, 0x5b, 0x6f, 0x5d, 0x3f, 0x61, 0x5b, 0x6f, + 0x5d, 0x2b, 0x3d, 0x75, 0x3a, 0x61, 0x5b, 0x2b, 0x2b, 0x6f, 0x5d, + 0x3d, 0x75, 0x29, 0x2c, 0x28, 0x65, 0x3d, 0x65, 0x5b, 0x30, 0x5d, + 0x29, 0x3d, 0x3d, 0x3d, 0x28, 0x72, 0x3d, 0x72, 0x5b, 0x30, 0x5d, + 0x29, 0x3f, 0x61, 0x5b, 0x6f, 0x5d, 0x3f, 0x61, 0x5b, 0x6f, 0x5d, + 0x2b, 0x3d, 0x72, 0x3a, 0x61, 0x5b, 0x2b, 0x2b, 0x6f, 0x5d, 0x3d, + 0x72, 0x3a, 0x28, 0x61, 0x5b, 0x2b, 0x2b, 0x6f, 0x5d, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x63, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x7b, 0x69, 0x3a, 0x6f, 0x2c, 0x78, 0x3a, 0x76, 0x75, 0x28, 0x65, + 0x2c, 0x72, 0x29, 0x7d, 0x29, 0x29, 0x2c, 0x69, 0x3d, 0x6f, 0x6c, + 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x3c, 0x74, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x26, 0x26, 0x28, 0x75, 0x3d, + 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x69, 0x29, 0x2c, + 0x61, 0x5b, 0x6f, 0x5d, 0x3f, 0x61, 0x5b, 0x6f, 0x5d, 0x2b, 0x3d, + 0x75, 0x3a, 0x61, 0x5b, 0x2b, 0x2b, 0x6f, 0x5d, 0x3d, 0x75, 0x29, + 0x2c, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, + 0x3f, 0x63, 0x5b, 0x30, 0x5d, 0x3f, 0x28, 0x74, 0x3d, 0x63, 0x5b, + 0x30, 0x5d, 0x2e, 0x78, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x29, 0x2b, 0x22, 0x22, 0x7d, 0x29, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x3a, + 0x28, 0x74, 0x3d, 0x63, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, + 0x2c, 0x72, 0x3d, 0x30, 0x3b, 0x74, 0x3e, 0x72, 0x3b, 0x2b, 0x2b, + 0x72, 0x29, 0x61, 0x5b, 0x28, 0x65, 0x3d, 0x63, 0x5b, 0x72, 0x5d, + 0x29, 0x2e, 0x69, 0x5d, 0x3d, 0x65, 0x2e, 0x78, 0x28, 0x6e, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x2e, 0x6a, + 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, 0x29, 0x7d, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x75, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x2c, 0x72, 0x3d, 0x74, 0x61, 0x2e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2d, 0x2d, 0x72, + 0x3e, 0x3d, 0x30, 0x26, 0x26, 0x21, 0x28, 0x65, 0x3d, 0x74, 0x61, + 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x5b, 0x72, 0x5d, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x29, 0x3b, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x79, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x65, 0x2c, 0x72, 0x3d, 0x5b, 0x5d, 0x2c, 0x75, 0x3d, 0x5b, + 0x5d, 0x2c, 0x69, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x6f, 0x3d, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x61, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, + 0x6e, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, + 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x65, 0x3d, 0x30, 0x3b, 0x61, 0x3e, 0x65, 0x3b, + 0x2b, 0x2b, 0x65, 0x29, 0x72, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x6d, 0x75, 0x28, 0x6e, 0x5b, 0x65, 0x5d, 0x2c, 0x74, 0x5b, 0x65, + 0x5d, 0x29, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x69, 0x3e, + 0x65, 0x3b, 0x2b, 0x2b, 0x65, 0x29, 0x75, 0x5b, 0x65, 0x5d, 0x3d, + 0x6e, 0x5b, 0x65, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x6f, + 0x3e, 0x65, 0x3b, 0x2b, 0x2b, 0x65, 0x29, 0x75, 0x5b, 0x65, 0x5d, + 0x3d, 0x74, 0x5b, 0x65, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x3d, 0x30, 0x3b, + 0x61, 0x3e, 0x65, 0x3b, 0x2b, 0x2b, 0x65, 0x29, 0x75, 0x5b, 0x65, + 0x5d, 0x3d, 0x72, 0x5b, 0x65, 0x5d, 0x28, 0x6e, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4d, 0x75, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30, 0x3e, 0x3d, 0x74, 0x3f, + 0x30, 0x3a, 0x74, 0x3e, 0x3d, 0x31, 0x3f, 0x31, 0x3a, 0x6e, 0x28, + 0x74, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x78, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x31, 0x2d, 0x6e, 0x28, 0x31, 0x2d, 0x74, 0x29, 0x7d, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x75, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, 0x35, 0x2a, 0x28, + 0x2e, 0x35, 0x3e, 0x74, 0x3f, 0x6e, 0x28, 0x32, 0x2a, 0x74, 0x29, + 0x3a, 0x32, 0x2d, 0x6e, 0x28, 0x32, 0x2d, 0x32, 0x2a, 0x74, 0x29, + 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x5f, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x2a, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x75, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2a, 0x6e, 0x2a, + 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x53, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x30, 0x3e, + 0x3d, 0x6e, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30, + 0x3b, 0x69, 0x66, 0x28, 0x6e, 0x3e, 0x3d, 0x31, 0x29, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3d, 0x6e, 0x2a, 0x6e, 0x2c, 0x65, 0x3d, 0x74, 0x2a, 0x6e, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x34, 0x2a, 0x28, + 0x2e, 0x35, 0x3e, 0x6e, 0x3f, 0x65, 0x3a, 0x33, 0x2a, 0x28, 0x6e, + 0x2d, 0x74, 0x29, 0x2b, 0x65, 0x2d, 0x2e, 0x37, 0x35, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6b, 0x75, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x74, 0x2c, 0x6e, 0x29, 0x7d, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x45, + 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x31, 0x2d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, + 0x28, 0x6e, 0x2a, 0x52, 0x61, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x32, 0x2c, 0x31, 0x30, 0x2a, 0x28, + 0x6e, 0x2d, 0x31, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x4e, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x2d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x31, 0x2d, 0x6e, 0x2a, + 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x43, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x26, 0x26, 0x28, 0x74, + 0x3d, 0x2e, 0x34, 0x35, 0x29, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x65, 0x3d, 0x74, 0x2f, 0x4c, 0x61, 0x2a, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x61, 0x73, 0x69, 0x6e, 0x28, 0x31, 0x2f, 0x6e, 0x29, + 0x3a, 0x28, 0x6e, 0x3d, 0x31, 0x2c, 0x65, 0x3d, 0x74, 0x2f, 0x34, + 0x29, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, + 0x2b, 0x6e, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, + 0x28, 0x32, 0x2c, 0x2d, 0x31, 0x30, 0x2a, 0x72, 0x29, 0x2a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x28, 0x72, 0x2d, + 0x65, 0x29, 0x2a, 0x4c, 0x61, 0x2f, 0x74, 0x29, 0x7d, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7a, 0x75, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x7c, 0x7c, 0x28, 0x6e, 0x3d, 0x31, 0x2e, 0x37, 0x30, 0x31, 0x35, + 0x38, 0x29, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x2a, 0x74, 0x2a, 0x28, 0x28, 0x6e, 0x2b, 0x31, 0x29, 0x2a, + 0x74, 0x2d, 0x6e, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x71, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x2f, 0x32, 0x2e, 0x37, + 0x35, 0x3e, 0x6e, 0x3f, 0x37, 0x2e, 0x35, 0x36, 0x32, 0x35, 0x2a, + 0x6e, 0x2a, 0x6e, 0x3a, 0x32, 0x2f, 0x32, 0x2e, 0x37, 0x35, 0x3e, + 0x6e, 0x3f, 0x37, 0x2e, 0x35, 0x36, 0x32, 0x35, 0x2a, 0x28, 0x6e, + 0x2d, 0x3d, 0x31, 0x2e, 0x35, 0x2f, 0x32, 0x2e, 0x37, 0x35, 0x29, + 0x2a, 0x6e, 0x2b, 0x2e, 0x37, 0x35, 0x3a, 0x32, 0x2e, 0x35, 0x2f, + 0x32, 0x2e, 0x37, 0x35, 0x3e, 0x6e, 0x3f, 0x37, 0x2e, 0x35, 0x36, + 0x32, 0x35, 0x2a, 0x28, 0x6e, 0x2d, 0x3d, 0x32, 0x2e, 0x32, 0x35, + 0x2f, 0x32, 0x2e, 0x37, 0x35, 0x29, 0x2a, 0x6e, 0x2b, 0x2e, 0x39, + 0x33, 0x37, 0x35, 0x3a, 0x37, 0x2e, 0x35, 0x36, 0x32, 0x35, 0x2a, + 0x28, 0x6e, 0x2d, 0x3d, 0x32, 0x2e, 0x36, 0x32, 0x35, 0x2f, 0x32, + 0x2e, 0x37, 0x35, 0x29, 0x2a, 0x6e, 0x2b, 0x2e, 0x39, 0x38, 0x34, + 0x33, 0x37, 0x35, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x4c, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, + 0x3d, 0x74, 0x61, 0x2e, 0x68, 0x63, 0x6c, 0x28, 0x6e, 0x29, 0x2c, + 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x68, 0x63, 0x6c, 0x28, 0x74, 0x29, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x2e, 0x68, 0x2c, + 0x72, 0x3d, 0x6e, 0x2e, 0x63, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, 0x6c, + 0x2c, 0x69, 0x3d, 0x74, 0x2e, 0x68, 0x2d, 0x65, 0x2c, 0x6f, 0x3d, + 0x74, 0x2e, 0x63, 0x2d, 0x72, 0x2c, 0x61, 0x3d, 0x74, 0x2e, 0x6c, + 0x2d, 0x75, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x6f, 0x29, 0x26, 0x26, 0x28, 0x6f, + 0x3d, 0x30, 0x2c, 0x72, 0x3d, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, + 0x72, 0x29, 0x3f, 0x74, 0x2e, 0x63, 0x3a, 0x72, 0x29, 0x2c, 0x69, + 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x69, 0x29, 0x3f, 0x28, 0x69, 0x3d, + 0x30, 0x2c, 0x65, 0x3d, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x65, + 0x29, 0x3f, 0x74, 0x2e, 0x68, 0x3a, 0x65, 0x29, 0x3a, 0x69, 0x3e, + 0x31, 0x38, 0x30, 0x3f, 0x69, 0x2d, 0x3d, 0x33, 0x36, 0x30, 0x3a, + 0x2d, 0x31, 0x38, 0x30, 0x3e, 0x69, 0x26, 0x26, 0x28, 0x69, 0x2b, + 0x3d, 0x33, 0x36, 0x30, 0x29, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x73, 0x74, 0x28, 0x65, 0x2b, 0x69, 0x2a, 0x6e, + 0x2c, 0x72, 0x2b, 0x6f, 0x2a, 0x6e, 0x2c, 0x75, 0x2b, 0x61, 0x2a, + 0x6e, 0x29, 0x2b, 0x22, 0x22, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x75, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x6e, 0x3d, 0x74, 0x61, 0x2e, 0x68, 0x73, 0x6c, 0x28, + 0x6e, 0x29, 0x2c, 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x68, 0x73, 0x6c, + 0x28, 0x74, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, + 0x2e, 0x68, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, 0x73, 0x2c, 0x75, 0x3d, + 0x6e, 0x2e, 0x6c, 0x2c, 0x69, 0x3d, 0x74, 0x2e, 0x68, 0x2d, 0x65, + 0x2c, 0x6f, 0x3d, 0x74, 0x2e, 0x73, 0x2d, 0x72, 0x2c, 0x61, 0x3d, + 0x74, 0x2e, 0x6c, 0x2d, 0x75, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x6f, 0x29, 0x26, + 0x26, 0x28, 0x6f, 0x3d, 0x30, 0x2c, 0x72, 0x3d, 0x69, 0x73, 0x4e, + 0x61, 0x4e, 0x28, 0x72, 0x29, 0x3f, 0x74, 0x2e, 0x73, 0x3a, 0x72, + 0x29, 0x2c, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x69, 0x29, 0x3f, + 0x28, 0x69, 0x3d, 0x30, 0x2c, 0x65, 0x3d, 0x69, 0x73, 0x4e, 0x61, + 0x4e, 0x28, 0x65, 0x29, 0x3f, 0x74, 0x2e, 0x68, 0x3a, 0x65, 0x29, + 0x3a, 0x69, 0x3e, 0x31, 0x38, 0x30, 0x3f, 0x69, 0x2d, 0x3d, 0x33, + 0x36, 0x30, 0x3a, 0x2d, 0x31, 0x38, 0x30, 0x3e, 0x69, 0x26, 0x26, + 0x28, 0x69, 0x2b, 0x3d, 0x33, 0x36, 0x30, 0x29, 0x2c, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x74, 0x28, 0x65, 0x2b, + 0x69, 0x2a, 0x6e, 0x2c, 0x72, 0x2b, 0x6f, 0x2a, 0x6e, 0x2c, 0x75, + 0x2b, 0x61, 0x2a, 0x6e, 0x29, 0x2b, 0x22, 0x22, 0x7d, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x75, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x3d, 0x74, 0x61, 0x2e, 0x6c, + 0x61, 0x62, 0x28, 0x6e, 0x29, 0x2c, 0x74, 0x3d, 0x74, 0x61, 0x2e, + 0x6c, 0x61, 0x62, 0x28, 0x74, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x3d, 0x6e, 0x2e, 0x6c, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, 0x61, + 0x2c, 0x75, 0x3d, 0x6e, 0x2e, 0x62, 0x2c, 0x69, 0x3d, 0x74, 0x2e, + 0x6c, 0x2d, 0x65, 0x2c, 0x6f, 0x3d, 0x74, 0x2e, 0x61, 0x2d, 0x72, + 0x2c, 0x61, 0x3d, 0x74, 0x2e, 0x62, 0x2d, 0x75, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x68, 0x74, 0x28, 0x65, 0x2b, 0x69, 0x2a, 0x6e, 0x2c, + 0x72, 0x2b, 0x6f, 0x2a, 0x6e, 0x2c, 0x75, 0x2b, 0x61, 0x2a, 0x6e, + 0x29, 0x2b, 0x22, 0x22, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x44, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2d, 0x3d, + 0x6e, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x6e, + 0x2b, 0x74, 0x2a, 0x65, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x50, 0x75, 0x28, 0x6e, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x5b, 0x6e, 0x2e, 0x61, 0x2c, + 0x6e, 0x2e, 0x62, 0x5d, 0x2c, 0x65, 0x3d, 0x5b, 0x6e, 0x2e, 0x63, + 0x2c, 0x6e, 0x2e, 0x64, 0x5d, 0x2c, 0x72, 0x3d, 0x6a, 0x75, 0x28, + 0x74, 0x29, 0x2c, 0x75, 0x3d, 0x55, 0x75, 0x28, 0x74, 0x2c, 0x65, + 0x29, 0x2c, 0x69, 0x3d, 0x6a, 0x75, 0x28, 0x46, 0x75, 0x28, 0x65, + 0x2c, 0x74, 0x2c, 0x2d, 0x75, 0x29, 0x29, 0x7c, 0x7c, 0x30, 0x3b, + 0x74, 0x5b, 0x30, 0x5d, 0x2a, 0x65, 0x5b, 0x31, 0x5d, 0x3c, 0x65, + 0x5b, 0x30, 0x5d, 0x2a, 0x74, 0x5b, 0x31, 0x5d, 0x26, 0x26, 0x28, + 0x74, 0x5b, 0x30, 0x5d, 0x2a, 0x3d, 0x2d, 0x31, 0x2c, 0x74, 0x5b, + 0x31, 0x5d, 0x2a, 0x3d, 0x2d, 0x31, 0x2c, 0x72, 0x2a, 0x3d, 0x2d, + 0x31, 0x2c, 0x75, 0x2a, 0x3d, 0x2d, 0x31, 0x29, 0x2c, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x3d, 0x28, + 0x72, 0x3f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, + 0x32, 0x28, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x74, 0x5b, 0x30, 0x5d, + 0x29, 0x3a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, + 0x32, 0x28, 0x2d, 0x65, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x5b, 0x31, + 0x5d, 0x29, 0x29, 0x2a, 0x50, 0x61, 0x2c, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x3d, + 0x5b, 0x6e, 0x2e, 0x65, 0x2c, 0x6e, 0x2e, 0x66, 0x5d, 0x2c, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3d, 0x5b, + 0x72, 0x2c, 0x69, 0x5d, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, + 0x6b, 0x65, 0x77, 0x3d, 0x69, 0x3f, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x75, 0x2c, 0x69, 0x29, 0x2a, + 0x50, 0x61, 0x3a, 0x30, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x55, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x5b, 0x30, 0x5d, + 0x2a, 0x74, 0x5b, 0x30, 0x5d, 0x2b, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, + 0x74, 0x5b, 0x31, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6a, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, + 0x72, 0x74, 0x28, 0x55, 0x75, 0x28, 0x6e, 0x2c, 0x6e, 0x29, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x26, 0x26, + 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x2f, 0x3d, 0x74, 0x2c, 0x6e, 0x5b, + 0x31, 0x5d, 0x2f, 0x3d, 0x74, 0x29, 0x2c, 0x74, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x46, 0x75, 0x28, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x5b, 0x30, 0x5d, 0x2b, 0x3d, 0x65, 0x2a, 0x74, + 0x5b, 0x30, 0x5d, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, 0x2b, 0x3d, 0x65, + 0x2a, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x6e, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x48, 0x75, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x3d, + 0x5b, 0x5d, 0x2c, 0x75, 0x3d, 0x5b, 0x5d, 0x2c, 0x69, 0x3d, 0x74, + 0x61, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x28, 0x6e, 0x29, 0x2c, 0x6f, 0x3d, 0x74, 0x61, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x28, 0x74, 0x29, 0x2c, + 0x61, 0x3d, 0x69, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, + 0x74, 0x65, 0x2c, 0x63, 0x3d, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x6c, 0x61, 0x74, 0x65, 0x2c, 0x6c, 0x3d, 0x69, 0x2e, 0x72, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x2c, 0x73, 0x3d, 0x6f, 0x2e, 0x72, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x2c, 0x66, 0x3d, 0x69, 0x2e, 0x73, + 0x6b, 0x65, 0x77, 0x2c, 0x68, 0x3d, 0x6f, 0x2e, 0x73, 0x6b, 0x65, + 0x77, 0x2c, 0x67, 0x3d, 0x69, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2c, 0x70, 0x3d, 0x6f, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x5b, 0x30, 0x5d, + 0x21, 0x3d, 0x63, 0x5b, 0x30, 0x5d, 0x7c, 0x7c, 0x61, 0x5b, 0x31, + 0x5d, 0x21, 0x3d, 0x63, 0x5b, 0x31, 0x5d, 0x3f, 0x28, 0x72, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x6c, 0x61, 0x74, 0x65, 0x28, 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, + 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x22, + 0x29, 0x22, 0x29, 0x2c, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x7b, 0x69, 0x3a, 0x31, 0x2c, 0x78, 0x3a, 0x76, 0x75, 0x28, 0x61, + 0x5b, 0x30, 0x5d, 0x2c, 0x63, 0x5b, 0x30, 0x5d, 0x29, 0x7d, 0x2c, + 0x7b, 0x69, 0x3a, 0x33, 0x2c, 0x78, 0x3a, 0x76, 0x75, 0x28, 0x61, + 0x5b, 0x31, 0x5d, 0x2c, 0x63, 0x5b, 0x31, 0x5d, 0x29, 0x7d, 0x29, + 0x29, 0x3a, 0x72, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x63, 0x5b, + 0x30, 0x5d, 0x7c, 0x7c, 0x63, 0x5b, 0x31, 0x5d, 0x3f, 0x22, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x22, 0x2b, + 0x63, 0x2b, 0x22, 0x29, 0x22, 0x3a, 0x22, 0x22, 0x29, 0x2c, 0x6c, + 0x21, 0x3d, 0x73, 0x3f, 0x28, 0x6c, 0x2d, 0x73, 0x3e, 0x31, 0x38, + 0x30, 0x3f, 0x73, 0x2b, 0x3d, 0x33, 0x36, 0x30, 0x3a, 0x73, 0x2d, + 0x6c, 0x3e, 0x31, 0x38, 0x30, 0x26, 0x26, 0x28, 0x6c, 0x2b, 0x3d, + 0x33, 0x36, 0x30, 0x29, 0x2c, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x7b, 0x69, 0x3a, 0x72, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x72, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2b, 0x22, 0x72, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x28, 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, + 0x2c, 0x22, 0x29, 0x22, 0x29, 0x2d, 0x32, 0x2c, 0x78, 0x3a, 0x76, + 0x75, 0x28, 0x6c, 0x2c, 0x73, 0x29, 0x7d, 0x29, 0x29, 0x3a, 0x73, + 0x26, 0x26, 0x72, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x2e, + 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2b, 0x22, 0x72, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x28, 0x22, 0x2b, 0x73, 0x2b, 0x22, 0x29, 0x22, 0x29, + 0x2c, 0x66, 0x21, 0x3d, 0x68, 0x3f, 0x75, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x7b, 0x69, 0x3a, 0x72, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x72, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2b, 0x22, 0x73, + 0x6b, 0x65, 0x77, 0x58, 0x28, 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, + 0x2c, 0x22, 0x29, 0x22, 0x29, 0x2d, 0x32, 0x2c, 0x78, 0x3a, 0x76, + 0x75, 0x28, 0x66, 0x2c, 0x68, 0x29, 0x7d, 0x29, 0x3a, 0x68, 0x26, + 0x26, 0x72, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x2e, 0x70, + 0x6f, 0x70, 0x28, 0x29, 0x2b, 0x22, 0x73, 0x6b, 0x65, 0x77, 0x58, + 0x28, 0x22, 0x2b, 0x68, 0x2b, 0x22, 0x29, 0x22, 0x29, 0x2c, 0x67, + 0x5b, 0x30, 0x5d, 0x21, 0x3d, 0x70, 0x5b, 0x30, 0x5d, 0x7c, 0x7c, + 0x67, 0x5b, 0x31, 0x5d, 0x21, 0x3d, 0x70, 0x5b, 0x31, 0x5d, 0x3f, + 0x28, 0x65, 0x3d, 0x72, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, + 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2b, 0x22, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x28, 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x22, + 0x2c, 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x22, 0x29, 0x22, + 0x29, 0x2c, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x7b, 0x69, + 0x3a, 0x65, 0x2d, 0x34, 0x2c, 0x78, 0x3a, 0x76, 0x75, 0x28, 0x67, + 0x5b, 0x30, 0x5d, 0x2c, 0x70, 0x5b, 0x30, 0x5d, 0x29, 0x7d, 0x2c, + 0x7b, 0x69, 0x3a, 0x65, 0x2d, 0x32, 0x2c, 0x78, 0x3a, 0x76, 0x75, + 0x28, 0x67, 0x5b, 0x31, 0x5d, 0x2c, 0x70, 0x5b, 0x31, 0x5d, 0x29, + 0x7d, 0x29, 0x29, 0x3a, 0x28, 0x31, 0x21, 0x3d, 0x70, 0x5b, 0x30, + 0x5d, 0x7c, 0x7c, 0x31, 0x21, 0x3d, 0x70, 0x5b, 0x31, 0x5d, 0x29, + 0x26, 0x26, 0x72, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x2e, + 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2b, 0x22, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x28, 0x22, 0x2b, 0x70, 0x2b, 0x22, 0x29, 0x22, 0x29, 0x2c, + 0x65, 0x3d, 0x75, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, + 0x69, 0x3d, 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x69, 0x3c, 0x65, 0x3b, + 0x29, 0x72, 0x5b, 0x28, 0x74, 0x3d, 0x75, 0x5b, 0x69, 0x5d, 0x29, + 0x2e, 0x69, 0x5d, 0x3d, 0x74, 0x2e, 0x78, 0x28, 0x6e, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x2e, 0x6a, 0x6f, + 0x69, 0x6e, 0x28, 0x22, 0x22, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4f, 0x75, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x3d, 0x28, 0x74, 0x2d, 0x3d, 0x6e, 0x3d, 0x2b, 0x6e, 0x29, 0x7c, + 0x7c, 0x31, 0x2f, 0x74, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x28, 0x65, 0x2d, 0x6e, 0x29, 0x2f, 0x74, 0x7d, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x49, 0x75, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x3d, 0x28, 0x74, 0x2d, 0x3d, 0x6e, 0x3d, 0x2b, 0x6e, + 0x29, 0x7c, 0x7c, 0x31, 0x2f, 0x74, 0x2c, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, + 0x78, 0x28, 0x30, 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, + 0x6e, 0x28, 0x31, 0x2c, 0x28, 0x65, 0x2d, 0x6e, 0x29, 0x2f, 0x74, + 0x29, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x59, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x2c, 0x72, 0x3d, 0x56, 0x75, 0x28, 0x74, + 0x2c, 0x65, 0x29, 0x2c, 0x75, 0x3d, 0x5b, 0x74, 0x5d, 0x3b, 0x74, + 0x21, 0x3d, 0x3d, 0x72, 0x3b, 0x29, 0x74, 0x3d, 0x74, 0x2e, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x75, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x74, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x69, 0x3d, 0x75, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x65, 0x21, 0x3d, 0x3d, 0x72, 0x3b, 0x29, 0x75, 0x2e, + 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x69, 0x2c, 0x30, 0x2c, + 0x65, 0x29, 0x2c, 0x65, 0x3d, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5a, + 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x5b, 0x5d, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, + 0x21, 0x3d, 0x65, 0x3b, 0x29, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x6e, 0x29, 0x2c, 0x6e, 0x3d, 0x65, 0x2c, 0x65, 0x3d, 0x65, + 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x6e, 0x29, 0x2c, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x56, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x69, 0x66, 0x28, 0x6e, 0x3d, 0x3d, 0x3d, 0x74, 0x29, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x5a, 0x75, 0x28, 0x6e, 0x29, + 0x2c, 0x72, 0x3d, 0x5a, 0x75, 0x28, 0x74, 0x29, 0x2c, 0x75, 0x3d, + 0x65, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2c, 0x69, 0x3d, 0x72, + 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2c, 0x6f, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x3b, 0x75, 0x3d, 0x3d, 0x3d, 0x69, 0x3b, 0x29, 0x6f, + 0x3d, 0x75, 0x2c, 0x75, 0x3d, 0x65, 0x2e, 0x70, 0x6f, 0x70, 0x28, + 0x29, 0x2c, 0x69, 0x3d, 0x72, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x58, 0x75, 0x28, + 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x66, 0x69, 0x78, 0x65, 0x64, 0x7c, + 0x3d, 0x32, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x24, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x26, 0x3d, 0x2d, 0x37, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x75, 0x28, 0x6e, 0x29, + 0x7b, 0x6e, 0x2e, 0x66, 0x69, 0x78, 0x65, 0x64, 0x7c, 0x3d, 0x34, + 0x2c, 0x6e, 0x2e, 0x70, 0x78, 0x3d, 0x6e, 0x2e, 0x78, 0x2c, 0x6e, + 0x2e, 0x70, 0x79, 0x3d, 0x6e, 0x2e, 0x79, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x75, 0x28, 0x6e, 0x29, + 0x7b, 0x6e, 0x2e, 0x66, 0x69, 0x78, 0x65, 0x64, 0x26, 0x3d, 0x2d, + 0x35, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x4a, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3d, 0x30, 0x2c, 0x75, 0x3d, 0x30, 0x3b, + 0x69, 0x66, 0x28, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x3d, 0x30, 0x2c, 0x21, 0x6e, 0x2e, 0x6c, 0x65, 0x61, 0x66, 0x29, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, 0x2c, 0x6f, + 0x3d, 0x6e, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2c, 0x61, 0x3d, + 0x6f, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x63, 0x3d, + 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x63, 0x3c, 0x61, 0x3b, 0x29, 0x69, + 0x3d, 0x6f, 0x5b, 0x63, 0x5d, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x21, + 0x3d, 0x69, 0x26, 0x26, 0x28, 0x4a, 0x75, 0x28, 0x69, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x2c, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x2b, 0x3d, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x2c, 0x72, 0x2b, 0x3d, 0x69, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x2a, 0x69, 0x2e, 0x63, 0x78, 0x2c, 0x75, 0x2b, 0x3d, 0x69, + 0x2e, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2a, 0x69, 0x2e, 0x63, + 0x79, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x6e, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x29, 0x7b, 0x6e, 0x2e, 0x6c, 0x65, 0x61, 0x66, 0x7c, + 0x7c, 0x28, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x78, + 0x2b, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x28, 0x29, 0x2d, 0x2e, 0x35, 0x2c, 0x6e, 0x2e, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x79, 0x2b, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x28, 0x29, 0x2d, + 0x2e, 0x35, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x74, + 0x2a, 0x65, 0x5b, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x3b, 0x6e, 0x2e, 0x63, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x2b, 0x3d, 0x6e, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x3d, 0x6c, 0x2c, + 0x72, 0x2b, 0x3d, 0x6c, 0x2a, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x2e, 0x78, 0x2c, 0x75, 0x2b, 0x3d, 0x6c, 0x2a, 0x6e, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x79, 0x7d, 0x6e, 0x2e, 0x63, + 0x78, 0x3d, 0x72, 0x2f, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x2c, 0x6e, 0x2e, 0x63, 0x79, 0x3d, 0x75, 0x2f, 0x6e, 0x2e, + 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x47, 0x75, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, + 0x2e, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x22, 0x73, 0x6f, 0x72, 0x74, 0x22, 0x2c, 0x22, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0x2c, 0x22, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x29, 0x2c, 0x6e, 0x2e, 0x6e, 0x6f, 0x64, + 0x65, 0x73, 0x3d, 0x6e, 0x2c, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x3d, 0x72, 0x69, 0x2c, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4b, 0x75, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, + 0x3d, 0x5b, 0x6e, 0x5d, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, + 0x28, 0x6e, 0x3d, 0x65, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x29, + 0x3b, 0x29, 0x69, 0x66, 0x28, 0x74, 0x28, 0x6e, 0x29, 0x2c, 0x28, + 0x75, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, + 0x6e, 0x29, 0x26, 0x26, 0x28, 0x72, 0x3d, 0x75, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x29, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, 0x3b, 0x2d, 0x2d, 0x72, 0x3e, + 0x3d, 0x30, 0x3b, 0x29, 0x65, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x75, 0x5b, 0x72, 0x5d, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x51, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, + 0x5b, 0x6e, 0x5d, 0x2c, 0x72, 0x3d, 0x5b, 0x5d, 0x3b, 0x6e, 0x75, + 0x6c, 0x6c, 0x21, 0x3d, 0x28, 0x6e, 0x3d, 0x65, 0x2e, 0x70, 0x6f, + 0x70, 0x28, 0x29, 0x29, 0x3b, 0x29, 0x69, 0x66, 0x28, 0x72, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, 0x29, 0x2c, 0x28, 0x69, 0x3d, + 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x29, + 0x26, 0x26, 0x28, 0x75, 0x3d, 0x69, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x3d, 0x2d, 0x31, 0x3b, 0x2b, + 0x2b, 0x6f, 0x3c, 0x75, 0x3b, 0x29, 0x65, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x69, 0x5b, 0x6f, 0x5d, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x28, 0x6e, 0x3d, + 0x72, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x29, 0x3b, 0x29, 0x74, + 0x28, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6e, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x72, 0x65, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2d, + 0x6e, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x69, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x2e, + 0x6d, 0x65, 0x72, 0x67, 0x65, 0x28, 0x6e, 0x2e, 0x6d, 0x61, 0x70, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x6e, 0x2e, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x7c, 0x7c, 0x5b, + 0x5d, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x7b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, + 0x6e, 0x2c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3a, 0x74, 0x7d, + 0x7d, 0x29, 0x7d, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x78, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x69, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x79, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, + 0x6e, 0x2e, 0x79, 0x30, 0x3d, 0x74, 0x2c, 0x6e, 0x2e, 0x79, 0x3d, + 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x61, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, + 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x69, 0x28, + 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3d, 0x2d, 0x31, 0x2c, 0x65, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x72, 0x3d, 0x5b, + 0x5d, 0x3b, 0x2b, 0x2b, 0x74, 0x3c, 0x65, 0x3b, 0x29, 0x72, 0x5b, + 0x74, 0x5d, 0x3d, 0x30, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x72, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6c, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x3d, 0x31, 0x2c, 0x72, + 0x3d, 0x30, 0x2c, 0x75, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x5b, 0x31, + 0x5d, 0x2c, 0x69, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x69, 0x3e, 0x65, 0x3b, 0x2b, 0x2b, 0x65, 0x29, 0x28, + 0x74, 0x3d, 0x6e, 0x5b, 0x65, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x3e, + 0x75, 0x26, 0x26, 0x28, 0x72, 0x3d, 0x65, 0x2c, 0x75, 0x3d, 0x74, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x69, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x2e, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x28, 0x66, 0x69, + 0x2c, 0x30, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x66, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2b, 0x74, 0x5b, 0x31, + 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x68, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x67, 0x69, 0x28, 0x6e, 0x2c, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x74, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x4c, + 0x4e, 0x32, 0x2b, 0x31, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, 0x69, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, + 0x3d, 0x2d, 0x31, 0x2c, 0x72, 0x3d, 0x2b, 0x6e, 0x5b, 0x30, 0x5d, + 0x2c, 0x75, 0x3d, 0x28, 0x6e, 0x5b, 0x31, 0x5d, 0x2d, 0x72, 0x29, + 0x2f, 0x74, 0x2c, 0x69, 0x3d, 0x5b, 0x5d, 0x3b, 0x2b, 0x2b, 0x65, + 0x3c, 0x3d, 0x74, 0x3b, 0x29, 0x69, 0x5b, 0x65, 0x5d, 0x3d, 0x75, + 0x2a, 0x65, 0x2b, 0x72, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x69, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x5b, 0x74, 0x61, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x6e, + 0x29, 0x2c, 0x74, 0x61, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x6e, 0x29, + 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x76, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2d, 0x74, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x69, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, + 0x2e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x65, 0x78, 0x74, + 0x3b, 0x6e, 0x2e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x3d, 0x74, 0x2c, 0x74, 0x2e, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x3d, 0x6e, 0x2c, 0x74, 0x2e, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x3d, + 0x65, 0x2c, 0x65, 0x2e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x70, + 0x72, 0x65, 0x76, 0x3d, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x6e, 0x2e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x3d, 0x74, 0x2c, 0x74, 0x2e, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x3d, 0x6e, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x79, 0x69, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x74, + 0x2e, 0x78, 0x2d, 0x6e, 0x2e, 0x78, 0x2c, 0x72, 0x3d, 0x74, 0x2e, + 0x79, 0x2d, 0x6e, 0x2e, 0x79, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, 0x72, + 0x2b, 0x74, 0x2e, 0x72, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x2e, 0x39, 0x39, 0x39, 0x2a, 0x75, 0x2a, 0x75, 0x3e, 0x65, 0x2a, + 0x65, 0x2b, 0x72, 0x2a, 0x72, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x4d, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6e, + 0x29, 0x7b, 0x73, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, + 0x6e, 0x28, 0x6e, 0x2e, 0x78, 0x2d, 0x6e, 0x2e, 0x72, 0x2c, 0x73, + 0x29, 0x2c, 0x66, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, + 0x78, 0x28, 0x6e, 0x2e, 0x78, 0x2b, 0x6e, 0x2e, 0x72, 0x2c, 0x66, + 0x29, 0x2c, 0x68, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, + 0x6e, 0x28, 0x6e, 0x2e, 0x79, 0x2d, 0x6e, 0x2e, 0x72, 0x2c, 0x68, + 0x29, 0x2c, 0x67, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, + 0x78, 0x28, 0x6e, 0x2e, 0x79, 0x2b, 0x6e, 0x2e, 0x72, 0x2c, 0x67, + 0x29, 0x7d, 0x69, 0x66, 0x28, 0x28, 0x65, 0x3d, 0x6e, 0x2e, 0x63, + 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x29, 0x26, 0x26, 0x28, + 0x6c, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x2c, 0x75, + 0x2c, 0x69, 0x2c, 0x6f, 0x2c, 0x61, 0x2c, 0x63, 0x2c, 0x6c, 0x2c, + 0x73, 0x3d, 0x31, 0x2f, 0x30, 0x2c, 0x66, 0x3d, 0x2d, 0x31, 0x2f, + 0x30, 0x2c, 0x68, 0x3d, 0x31, 0x2f, 0x30, 0x2c, 0x67, 0x3d, 0x2d, + 0x31, 0x2f, 0x30, 0x3b, 0x69, 0x66, 0x28, 0x65, 0x2e, 0x66, 0x6f, + 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x78, 0x69, 0x29, 0x2c, 0x72, + 0x3d, 0x65, 0x5b, 0x30, 0x5d, 0x2c, 0x72, 0x2e, 0x78, 0x3d, 0x2d, + 0x72, 0x2e, 0x72, 0x2c, 0x72, 0x2e, 0x79, 0x3d, 0x30, 0x2c, 0x74, + 0x28, 0x72, 0x29, 0x2c, 0x6c, 0x3e, 0x31, 0x26, 0x26, 0x28, 0x75, + 0x3d, 0x65, 0x5b, 0x31, 0x5d, 0x2c, 0x75, 0x2e, 0x78, 0x3d, 0x75, + 0x2e, 0x72, 0x2c, 0x75, 0x2e, 0x79, 0x3d, 0x30, 0x2c, 0x74, 0x28, + 0x75, 0x29, 0x2c, 0x6c, 0x3e, 0x32, 0x29, 0x29, 0x66, 0x6f, 0x72, + 0x28, 0x69, 0x3d, 0x65, 0x5b, 0x32, 0x5d, 0x2c, 0x77, 0x69, 0x28, + 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x29, 0x2c, 0x74, 0x28, 0x69, 0x29, + 0x2c, 0x64, 0x69, 0x28, 0x72, 0x2c, 0x69, 0x29, 0x2c, 0x72, 0x2e, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x3d, + 0x69, 0x2c, 0x64, 0x69, 0x28, 0x69, 0x2c, 0x75, 0x29, 0x2c, 0x75, + 0x3d, 0x72, 0x2e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x2c, 0x6f, 0x3d, 0x33, 0x3b, 0x6c, 0x3e, 0x6f, 0x3b, + 0x6f, 0x2b, 0x2b, 0x29, 0x7b, 0x77, 0x69, 0x28, 0x72, 0x2c, 0x75, + 0x2c, 0x69, 0x3d, 0x65, 0x5b, 0x6f, 0x5d, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x70, 0x3d, 0x30, 0x2c, 0x76, 0x3d, 0x31, 0x2c, 0x64, + 0x3d, 0x31, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x61, 0x3d, 0x75, 0x2e, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x3b, + 0x61, 0x21, 0x3d, 0x3d, 0x75, 0x3b, 0x61, 0x3d, 0x61, 0x2e, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x2c, 0x76, + 0x2b, 0x2b, 0x29, 0x69, 0x66, 0x28, 0x79, 0x69, 0x28, 0x61, 0x2c, + 0x69, 0x29, 0x29, 0x7b, 0x70, 0x3d, 0x31, 0x3b, 0x62, 0x72, 0x65, + 0x61, 0x6b, 0x7d, 0x69, 0x66, 0x28, 0x31, 0x3d, 0x3d, 0x70, 0x29, + 0x66, 0x6f, 0x72, 0x28, 0x63, 0x3d, 0x72, 0x2e, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x3b, 0x63, 0x21, 0x3d, + 0x3d, 0x61, 0x2e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x72, + 0x65, 0x76, 0x26, 0x26, 0x21, 0x79, 0x69, 0x28, 0x63, 0x2c, 0x69, + 0x29, 0x3b, 0x63, 0x3d, 0x63, 0x2e, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x5f, 0x70, 0x72, 0x65, 0x76, 0x2c, 0x64, 0x2b, 0x2b, 0x29, 0x3b, + 0x70, 0x3f, 0x28, 0x64, 0x3e, 0x76, 0x7c, 0x7c, 0x76, 0x3d, 0x3d, + 0x64, 0x26, 0x26, 0x75, 0x2e, 0x72, 0x3c, 0x72, 0x2e, 0x72, 0x3f, + 0x6d, 0x69, 0x28, 0x72, 0x2c, 0x75, 0x3d, 0x61, 0x29, 0x3a, 0x6d, + 0x69, 0x28, 0x72, 0x3d, 0x63, 0x2c, 0x75, 0x29, 0x2c, 0x6f, 0x2d, + 0x2d, 0x29, 0x3a, 0x28, 0x64, 0x69, 0x28, 0x72, 0x2c, 0x69, 0x29, + 0x2c, 0x75, 0x3d, 0x69, 0x2c, 0x74, 0x28, 0x69, 0x29, 0x29, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x6d, 0x3d, 0x28, 0x73, 0x2b, 0x66, 0x29, + 0x2f, 0x32, 0x2c, 0x79, 0x3d, 0x28, 0x68, 0x2b, 0x67, 0x29, 0x2f, + 0x32, 0x2c, 0x4d, 0x3d, 0x30, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x6f, + 0x3d, 0x30, 0x3b, 0x6c, 0x3e, 0x6f, 0x3b, 0x6f, 0x2b, 0x2b, 0x29, + 0x69, 0x3d, 0x65, 0x5b, 0x6f, 0x5d, 0x2c, 0x69, 0x2e, 0x78, 0x2d, + 0x3d, 0x6d, 0x2c, 0x69, 0x2e, 0x79, 0x2d, 0x3d, 0x79, 0x2c, 0x4d, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x4d, + 0x2c, 0x69, 0x2e, 0x72, 0x2b, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x71, 0x72, 0x74, 0x28, 0x69, 0x2e, 0x78, 0x2a, 0x69, 0x2e, 0x78, + 0x2b, 0x69, 0x2e, 0x79, 0x2a, 0x69, 0x2e, 0x79, 0x29, 0x29, 0x3b, + 0x6e, 0x2e, 0x72, 0x3d, 0x4d, 0x2c, 0x65, 0x2e, 0x66, 0x6f, 0x72, + 0x45, 0x61, 0x63, 0x68, 0x28, 0x62, 0x69, 0x29, 0x7d, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x78, 0x69, 0x28, + 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x3d, 0x6e, 0x2e, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x3d, 0x6e, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x69, 0x28, 0x6e, + 0x29, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x6e, 0x2e, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x2c, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x6e, 0x2e, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5f, 0x69, 0x28, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x75, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, + 0x65, 0x6e, 0x3b, 0x69, 0x66, 0x28, 0x6e, 0x2e, 0x78, 0x3d, 0x74, + 0x2b, 0x3d, 0x72, 0x2a, 0x6e, 0x2e, 0x78, 0x2c, 0x6e, 0x2e, 0x79, + 0x3d, 0x65, 0x2b, 0x3d, 0x72, 0x2a, 0x6e, 0x2e, 0x79, 0x2c, 0x6e, + 0x2e, 0x72, 0x2a, 0x3d, 0x72, 0x2c, 0x75, 0x29, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x2d, 0x31, 0x2c, 0x6f, + 0x3d, 0x75, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, + 0x2b, 0x69, 0x3c, 0x6f, 0x3b, 0x29, 0x5f, 0x69, 0x28, 0x75, 0x5b, + 0x69, 0x5d, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x6e, 0x2e, 0x72, 0x2b, 0x65, 0x2e, 0x72, 0x2c, 0x75, + 0x3d, 0x74, 0x2e, 0x78, 0x2d, 0x6e, 0x2e, 0x78, 0x2c, 0x69, 0x3d, + 0x74, 0x2e, 0x79, 0x2d, 0x6e, 0x2e, 0x79, 0x3b, 0x69, 0x66, 0x28, + 0x72, 0x26, 0x26, 0x28, 0x75, 0x7c, 0x7c, 0x69, 0x29, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x74, 0x2e, 0x72, 0x2b, 0x65, + 0x2e, 0x72, 0x2c, 0x61, 0x3d, 0x75, 0x2a, 0x75, 0x2b, 0x69, 0x2a, + 0x69, 0x3b, 0x6f, 0x2a, 0x3d, 0x6f, 0x2c, 0x72, 0x2a, 0x3d, 0x72, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x3d, 0x2e, 0x35, 0x2b, 0x28, + 0x72, 0x2d, 0x6f, 0x29, 0x2f, 0x28, 0x32, 0x2a, 0x61, 0x29, 0x2c, + 0x6c, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, + 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x30, + 0x2c, 0x32, 0x2a, 0x6f, 0x2a, 0x28, 0x72, 0x2b, 0x61, 0x29, 0x2d, + 0x28, 0x72, 0x2d, 0x3d, 0x61, 0x29, 0x2a, 0x72, 0x2d, 0x6f, 0x2a, + 0x6f, 0x29, 0x29, 0x2f, 0x28, 0x32, 0x2a, 0x61, 0x29, 0x3b, 0x65, + 0x2e, 0x78, 0x3d, 0x6e, 0x2e, 0x78, 0x2b, 0x63, 0x2a, 0x75, 0x2b, + 0x6c, 0x2a, 0x69, 0x2c, 0x65, 0x2e, 0x79, 0x3d, 0x6e, 0x2e, 0x79, + 0x2b, 0x63, 0x2a, 0x69, 0x2d, 0x6c, 0x2a, 0x75, 0x7d, 0x65, 0x6c, + 0x73, 0x65, 0x20, 0x65, 0x2e, 0x78, 0x3d, 0x6e, 0x2e, 0x78, 0x2b, + 0x72, 0x2c, 0x65, 0x2e, 0x79, 0x3d, 0x6e, 0x2e, 0x79, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x69, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x3d, + 0x74, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3f, 0x31, 0x3a, + 0x32, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6b, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x74, 0x5b, 0x30, 0x5d, 0x3a, + 0x6e, 0x2e, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x45, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x72, 0x65, 0x6e, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x28, 0x74, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x3f, 0x65, 0x5b, 0x74, 0x2d, 0x31, 0x5d, 0x3a, 0x6e, 0x2e, + 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x41, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3d, 0x65, 0x2f, 0x28, 0x74, 0x2e, 0x69, + 0x2d, 0x6e, 0x2e, 0x69, 0x29, 0x3b, 0x74, 0x2e, 0x63, 0x2d, 0x3d, + 0x72, 0x2c, 0x74, 0x2e, 0x73, 0x2b, 0x3d, 0x65, 0x2c, 0x6e, 0x2e, + 0x63, 0x2b, 0x3d, 0x72, 0x2c, 0x74, 0x2e, 0x7a, 0x2b, 0x3d, 0x65, + 0x2c, 0x74, 0x2e, 0x6d, 0x2b, 0x3d, 0x65, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4e, 0x69, 0x28, 0x6e, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, + 0x65, 0x3d, 0x30, 0x2c, 0x72, 0x3d, 0x30, 0x2c, 0x75, 0x3d, 0x6e, + 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x2c, 0x69, + 0x3d, 0x75, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2d, + 0x2d, 0x69, 0x3e, 0x3d, 0x30, 0x3b, 0x29, 0x74, 0x3d, 0x75, 0x5b, + 0x69, 0x5d, 0x2c, 0x74, 0x2e, 0x7a, 0x2b, 0x3d, 0x65, 0x2c, 0x74, + 0x2e, 0x6d, 0x2b, 0x3d, 0x65, 0x2c, 0x65, 0x2b, 0x3d, 0x74, 0x2e, + 0x73, 0x2b, 0x28, 0x72, 0x2b, 0x3d, 0x74, 0x2e, 0x63, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x69, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x61, 0x2e, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x3d, 0x3d, 0x74, 0x2e, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3f, 0x6e, 0x2e, 0x61, 0x3a, 0x65, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7a, 0x69, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, + 0x2b, 0x74, 0x61, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x6e, 0x2c, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x79, 0x7d, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x71, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2e, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x28, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2b, 0x74, 0x2e, 0x78, 0x7d, 0x2c, 0x30, 0x29, 0x2f, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4c, 0x69, 0x28, 0x6e, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x26, 0x26, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x4c, 0x69, 0x28, 0x74, 0x5b, 0x30, 0x5d, 0x29, + 0x3a, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x54, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x72, 0x65, 0x6e, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x65, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x3f, 0x54, 0x69, 0x28, 0x65, 0x5b, 0x74, + 0x2d, 0x31, 0x5d, 0x29, 0x3a, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x69, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x7b, 0x78, 0x3a, 0x6e, 0x2e, + 0x78, 0x2c, 0x79, 0x3a, 0x6e, 0x2e, 0x79, 0x2c, 0x64, 0x78, 0x3a, + 0x6e, 0x2e, 0x64, 0x78, 0x2c, 0x64, 0x79, 0x3a, 0x6e, 0x2e, 0x64, + 0x79, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x44, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x2e, 0x78, 0x2b, 0x74, 0x5b, 0x33, + 0x5d, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, 0x79, 0x2b, 0x74, 0x5b, 0x30, + 0x5d, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, 0x64, 0x78, 0x2d, 0x74, 0x5b, + 0x31, 0x5d, 0x2d, 0x74, 0x5b, 0x33, 0x5d, 0x2c, 0x69, 0x3d, 0x6e, + 0x2e, 0x64, 0x79, 0x2d, 0x74, 0x5b, 0x30, 0x5d, 0x2d, 0x74, 0x5b, + 0x32, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30, + 0x3e, 0x75, 0x26, 0x26, 0x28, 0x65, 0x2b, 0x3d, 0x75, 0x2f, 0x32, + 0x2c, 0x75, 0x3d, 0x30, 0x29, 0x2c, 0x30, 0x3e, 0x69, 0x26, 0x26, + 0x28, 0x72, 0x2b, 0x3d, 0x69, 0x2f, 0x32, 0x2c, 0x69, 0x3d, 0x30, + 0x29, 0x2c, 0x7b, 0x78, 0x3a, 0x65, 0x2c, 0x79, 0x3a, 0x72, 0x2c, + 0x64, 0x78, 0x3a, 0x75, 0x2c, 0x64, 0x79, 0x3a, 0x69, 0x7d, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x50, 0x69, + 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, + 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x3d, 0x6e, 0x5b, 0x6e, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3e, 0x74, 0x3f, 0x5b, 0x74, + 0x2c, 0x65, 0x5d, 0x3a, 0x5b, 0x65, 0x2c, 0x74, 0x5d, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x55, 0x69, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x74, 0x3f, 0x6e, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x74, 0x28, 0x29, 0x3a, 0x50, 0x69, 0x28, 0x6e, + 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x29, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6a, 0x69, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x75, 0x3d, 0x65, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, + 0x6e, 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x69, 0x3d, 0x72, 0x28, 0x74, + 0x5b, 0x30, 0x5d, 0x2c, 0x74, 0x5b, 0x31, 0x5d, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x28, 0x75, 0x28, 0x6e, 0x29, 0x29, 0x7d, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x46, + 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x2c, 0x72, 0x3d, 0x30, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x2c, 0x69, 0x3d, 0x6e, + 0x5b, 0x72, 0x5d, 0x2c, 0x6f, 0x3d, 0x6e, 0x5b, 0x75, 0x5d, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x3e, 0x6f, 0x26, + 0x26, 0x28, 0x65, 0x3d, 0x72, 0x2c, 0x72, 0x3d, 0x75, 0x2c, 0x75, + 0x3d, 0x65, 0x2c, 0x65, 0x3d, 0x69, 0x2c, 0x69, 0x3d, 0x6f, 0x2c, + 0x6f, 0x3d, 0x65, 0x29, 0x2c, 0x6e, 0x5b, 0x72, 0x5d, 0x3d, 0x74, + 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x69, 0x29, 0x2c, 0x6e, + 0x5b, 0x75, 0x5d, 0x3d, 0x74, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, + 0x6f, 0x29, 0x2c, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x48, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3f, 0x7b, 0x66, 0x6c, 0x6f, + 0x6f, 0x72, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, + 0x74, 0x2f, 0x6e, 0x29, 0x2a, 0x6e, 0x7d, 0x2c, 0x63, 0x65, 0x69, + 0x6c, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x74, 0x2f, + 0x6e, 0x29, 0x2a, 0x6e, 0x7d, 0x7d, 0x3a, 0x6d, 0x6c, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4f, 0x69, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x75, 0x3d, 0x5b, 0x5d, 0x2c, 0x69, 0x3d, 0x5b, 0x5d, + 0x2c, 0x6f, 0x3d, 0x30, 0x2c, 0x61, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2c, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x2d, 0x31, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x6e, 0x5b, 0x61, + 0x5d, 0x3c, 0x6e, 0x5b, 0x30, 0x5d, 0x26, 0x26, 0x28, 0x6e, 0x3d, + 0x6e, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x29, 0x2e, 0x72, + 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x28, 0x29, 0x2c, 0x74, 0x3d, + 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x29, 0x2e, 0x72, + 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x28, 0x29, 0x29, 0x3b, 0x2b, + 0x2b, 0x6f, 0x3c, 0x3d, 0x61, 0x3b, 0x29, 0x75, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x65, 0x28, 0x6e, 0x5b, 0x6f, 0x2d, 0x31, 0x5d, + 0x2c, 0x6e, 0x5b, 0x6f, 0x5d, 0x29, 0x29, 0x2c, 0x69, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x72, 0x28, 0x74, 0x5b, 0x6f, 0x2d, 0x31, + 0x5d, 0x2c, 0x74, 0x5b, 0x6f, 0x5d, 0x29, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, + 0x3d, 0x74, 0x61, 0x2e, 0x62, 0x69, 0x73, 0x65, 0x63, 0x74, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x31, 0x2c, 0x61, 0x29, 0x2d, 0x31, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x5b, 0x65, 0x5d, + 0x28, 0x75, 0x5b, 0x65, 0x5d, 0x28, 0x74, 0x29, 0x29, 0x7d, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x49, 0x69, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2c, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x3e, 0x32, 0x3f, 0x4f, 0x69, 0x3a, 0x6a, 0x69, 0x2c, 0x63, + 0x3d, 0x72, 0x3f, 0x49, 0x75, 0x3a, 0x4f, 0x75, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x3d, 0x75, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x63, 0x2c, 0x65, 0x29, 0x2c, 0x61, 0x3d, 0x75, 0x28, + 0x74, 0x2c, 0x6e, 0x2c, 0x63, 0x2c, 0x6d, 0x75, 0x29, 0x2c, 0x69, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6f, 0x28, 0x6e, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x2c, + 0x61, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x28, 0x6e, 0x29, 0x7d, 0x2c, 0x69, + 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x6e, 0x3d, 0x74, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x29, 0x2c, 0x75, 0x28, 0x29, 0x29, 0x3a, + 0x6e, 0x7d, 0x2c, 0x69, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x74, 0x3d, 0x6e, 0x2c, 0x75, 0x28, 0x29, + 0x29, 0x3a, 0x74, 0x7d, 0x2c, 0x69, 0x2e, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x69, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x28, 0x6e, 0x29, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, + 0x6c, 0x61, 0x74, 0x65, 0x28, 0x44, 0x75, 0x29, 0x7d, 0x2c, 0x69, + 0x2e, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x72, 0x3d, 0x6e, 0x2c, 0x75, 0x28, 0x29, 0x29, 0x3a, 0x72, 0x7d, + 0x2c, 0x69, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, + 0x61, 0x74, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, 0x3d, 0x6e, + 0x2c, 0x75, 0x28, 0x29, 0x29, 0x3a, 0x65, 0x7d, 0x2c, 0x69, 0x2e, + 0x74, 0x69, 0x63, 0x6b, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x58, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7d, + 0x2c, 0x69, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x24, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, + 0x7d, 0x2c, 0x69, 0x2e, 0x6e, 0x69, 0x63, 0x65, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5a, 0x69, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x2c, 0x75, 0x28, 0x29, 0x7d, 0x2c, 0x69, 0x2e, 0x63, + 0x6f, 0x70, 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x49, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, + 0x7d, 0x2c, 0x75, 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x59, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x2e, + 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x6e, 0x2c, 0x74, 0x2c, + 0x22, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x2c, 0x22, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x2c, 0x22, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, + 0x22, 0x2c, 0x22, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x22, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5a, 0x69, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x46, 0x69, 0x28, 0x6e, 0x2c, 0x48, 0x69, 0x28, 0x56, + 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x5b, 0x32, 0x5d, 0x29, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56, + 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x75, 0x6c, 0x6c, + 0x3d, 0x3d, 0x74, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x31, 0x30, 0x29, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x50, 0x69, 0x28, 0x6e, + 0x29, 0x2c, 0x72, 0x3d, 0x65, 0x5b, 0x31, 0x5d, 0x2d, 0x65, 0x5b, + 0x30, 0x5d, 0x2c, 0x75, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, + 0x6f, 0x77, 0x28, 0x31, 0x30, 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x6c, 0x6f, 0x67, 0x28, 0x72, 0x2f, 0x74, 0x29, 0x2f, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x4c, 0x4e, 0x31, 0x30, 0x29, 0x29, 0x2c, 0x69, + 0x3d, 0x74, 0x2f, 0x72, 0x2a, 0x75, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x2e, 0x31, 0x35, 0x3e, 0x3d, 0x69, 0x3f, 0x75, 0x2a, + 0x3d, 0x31, 0x30, 0x3a, 0x2e, 0x33, 0x35, 0x3e, 0x3d, 0x69, 0x3f, + 0x75, 0x2a, 0x3d, 0x35, 0x3a, 0x2e, 0x37, 0x35, 0x3e, 0x3d, 0x69, + 0x26, 0x26, 0x28, 0x75, 0x2a, 0x3d, 0x32, 0x29, 0x2c, 0x65, 0x5b, + 0x30, 0x5d, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x65, 0x69, + 0x6c, 0x28, 0x65, 0x5b, 0x30, 0x5d, 0x2f, 0x75, 0x29, 0x2a, 0x75, + 0x2c, 0x65, 0x5b, 0x31, 0x5d, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x65, 0x5b, 0x31, 0x5d, 0x2f, + 0x75, 0x29, 0x2a, 0x75, 0x2b, 0x2e, 0x35, 0x2a, 0x75, 0x2c, 0x65, + 0x5b, 0x32, 0x5d, 0x3d, 0x75, 0x2c, 0x65, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x58, 0x69, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x61, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x28, 0x74, 0x61, 0x2c, 0x56, 0x69, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x24, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x56, 0x69, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x65, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x75, 0x3d, 0x69, 0x63, 0x2e, 0x65, 0x78, 0x65, + 0x63, 0x28, 0x65, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x75, 0x2e, 0x73, + 0x68, 0x69, 0x66, 0x74, 0x28, 0x29, 0x2c, 0x22, 0x73, 0x22, 0x3d, + 0x3d, 0x3d, 0x75, 0x5b, 0x38, 0x5d, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x3d, 0x74, 0x61, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x28, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x67, 0x61, 0x28, 0x72, 0x5b, + 0x30, 0x5d, 0x29, 0x2c, 0x67, 0x61, 0x28, 0x72, 0x5b, 0x31, 0x5d, + 0x29, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x75, 0x5b, 0x37, 0x5d, 0x7c, 0x7c, 0x28, 0x75, 0x5b, 0x37, 0x5d, + 0x3d, 0x22, 0x2e, 0x22, 0x2b, 0x42, 0x69, 0x28, 0x69, 0x2e, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x28, 0x72, 0x5b, 0x32, 0x5d, 0x29, 0x29, + 0x29, 0x2c, 0x75, 0x5b, 0x38, 0x5d, 0x3d, 0x22, 0x66, 0x22, 0x2c, + 0x65, 0x3d, 0x74, 0x61, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x28, 0x75, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, 0x29, + 0x29, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, + 0x28, 0x69, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x6e, 0x29, + 0x29, 0x2b, 0x69, 0x2e, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x7d, + 0x7d, 0x75, 0x5b, 0x37, 0x5d, 0x7c, 0x7c, 0x28, 0x75, 0x5b, 0x37, + 0x5d, 0x3d, 0x22, 0x2e, 0x22, 0x2b, 0x57, 0x69, 0x28, 0x75, 0x5b, + 0x38, 0x5d, 0x2c, 0x72, 0x29, 0x29, 0x2c, 0x65, 0x3d, 0x75, 0x2e, + 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, 0x29, 0x7d, 0x65, 0x6c, + 0x73, 0x65, 0x20, 0x65, 0x3d, 0x22, 0x2c, 0x2e, 0x22, 0x2b, 0x42, + 0x69, 0x28, 0x72, 0x5b, 0x32, 0x5d, 0x29, 0x2b, 0x22, 0x66, 0x22, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x2e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x65, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x42, 0x69, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x6e, 0x29, 0x2f, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x4e, 0x31, 0x30, 0x2b, 0x2e, + 0x30, 0x31, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x57, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x3d, 0x42, 0x69, 0x28, 0x74, 0x5b, 0x32, + 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x20, 0x69, 0x6e, 0x20, 0x79, 0x6c, 0x3f, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x61, 0x62, 0x73, 0x28, 0x65, 0x2d, 0x42, 0x69, 0x28, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x67, 0x61, 0x28, + 0x74, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x67, 0x61, 0x28, 0x74, 0x5b, + 0x31, 0x5d, 0x29, 0x29, 0x29, 0x29, 0x2b, 0x20, 0x2b, 0x28, 0x22, + 0x65, 0x22, 0x21, 0x3d, 0x3d, 0x6e, 0x29, 0x3a, 0x65, 0x2d, 0x32, + 0x2a, 0x28, 0x22, 0x25, 0x22, 0x3d, 0x3d, 0x3d, 0x6e, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4a, 0x69, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x65, 0x3f, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x30, 0x3e, + 0x6e, 0x3f, 0x30, 0x3a, 0x6e, 0x29, 0x3a, 0x2d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x6e, 0x3e, 0x30, 0x3f, 0x30, + 0x3a, 0x2d, 0x6e, 0x29, 0x29, 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x6c, 0x6f, 0x67, 0x28, 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3f, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x74, 0x2c, 0x6e, 0x29, 0x3a, + 0x2d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x74, + 0x2c, 0x2d, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x28, 0x75, 0x28, 0x74, 0x29, 0x29, + 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x28, 0x6e, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x72, 0x74, 0x28, 0x74, 0x29, 0x29, 0x7d, 0x2c, 0x6f, 0x2e, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, + 0x3d, 0x74, 0x5b, 0x30, 0x5d, 0x3e, 0x3d, 0x30, 0x2c, 0x6e, 0x2e, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x28, 0x72, 0x3d, 0x74, + 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x29, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x75, 0x29, 0x29, 0x2c, + 0x6f, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x6f, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x74, 0x3d, 0x2b, 0x65, 0x2c, + 0x6e, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x72, 0x2e, + 0x6d, 0x61, 0x70, 0x28, 0x75, 0x29, 0x29, 0x2c, 0x6f, 0x29, 0x3a, + 0x74, 0x7d, 0x2c, 0x6f, 0x2e, 0x6e, 0x69, 0x63, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x3d, 0x46, 0x69, 0x28, 0x72, 0x2e, 0x6d, + 0x61, 0x70, 0x28, 0x75, 0x29, 0x2c, 0x65, 0x3f, 0x4d, 0x61, 0x74, + 0x68, 0x3a, 0x78, 0x6c, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, + 0x74, 0x29, 0x2c, 0x72, 0x3d, 0x74, 0x2e, 0x6d, 0x61, 0x70, 0x28, + 0x69, 0x29, 0x2c, 0x6f, 0x7d, 0x2c, 0x6f, 0x2e, 0x74, 0x69, 0x63, + 0x6b, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x50, 0x69, + 0x28, 0x72, 0x29, 0x2c, 0x6f, 0x3d, 0x5b, 0x5d, 0x2c, 0x61, 0x3d, + 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x63, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, + 0x2c, 0x6c, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, + 0x6f, 0x72, 0x28, 0x75, 0x28, 0x61, 0x29, 0x29, 0x2c, 0x73, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x75, + 0x28, 0x63, 0x29, 0x29, 0x2c, 0x66, 0x3d, 0x74, 0x25, 0x31, 0x3f, + 0x32, 0x3a, 0x74, 0x3b, 0x69, 0x66, 0x28, 0x69, 0x73, 0x46, 0x69, + 0x6e, 0x69, 0x74, 0x65, 0x28, 0x73, 0x2d, 0x6c, 0x29, 0x29, 0x7b, + 0x69, 0x66, 0x28, 0x65, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x3b, + 0x73, 0x3e, 0x6c, 0x3b, 0x6c, 0x2b, 0x2b, 0x29, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x68, 0x3d, 0x31, 0x3b, 0x66, 0x3e, + 0x68, 0x3b, 0x68, 0x2b, 0x2b, 0x29, 0x6f, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x69, 0x28, 0x6c, 0x29, 0x2a, 0x68, 0x29, 0x3b, 0x6f, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x69, 0x28, 0x6c, 0x29, 0x29, + 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x6f, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x69, 0x28, 0x6c, 0x29, 0x29, + 0x3b, 0x6c, 0x2b, 0x2b, 0x3c, 0x73, 0x3b, 0x29, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x68, 0x3d, 0x66, 0x2d, 0x31, 0x3b, + 0x68, 0x3e, 0x30, 0x3b, 0x68, 0x2d, 0x2d, 0x29, 0x6f, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x69, 0x28, 0x6c, 0x29, 0x2a, 0x68, 0x29, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x6c, 0x3d, 0x30, 0x3b, 0x6f, 0x5b, + 0x6c, 0x5d, 0x3c, 0x61, 0x3b, 0x6c, 0x2b, 0x2b, 0x29, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x73, 0x3d, 0x6f, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x6f, 0x5b, 0x73, 0x2d, 0x31, 0x5d, 0x3e, 0x63, + 0x3b, 0x73, 0x2d, 0x2d, 0x29, 0x3b, 0x6f, 0x3d, 0x6f, 0x2e, 0x73, + 0x6c, 0x69, 0x63, 0x65, 0x28, 0x6c, 0x2c, 0x73, 0x29, 0x7d, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x7d, 0x2c, 0x6f, 0x2e, + 0x74, 0x69, 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x6c, + 0x3b, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x3f, 0x74, 0x3d, + 0x4d, 0x6c, 0x3a, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x21, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x74, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x28, 0x74, 0x29, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x72, 0x2c, 0x61, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x6d, 0x61, 0x78, 0x28, 0x2e, 0x31, 0x2c, 0x6e, 0x2f, 0x6f, 0x2e, + 0x74, 0x69, 0x63, 0x6b, 0x73, 0x28, 0x29, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x2c, 0x63, 0x3d, 0x65, 0x3f, 0x28, 0x72, + 0x3d, 0x31, 0x65, 0x2d, 0x31, 0x32, 0x2c, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x29, 0x3a, 0x28, 0x72, 0x3d, 0x2d, + 0x31, 0x65, 0x2d, 0x31, 0x32, 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x2f, 0x69, 0x28, 0x63, 0x28, 0x75, 0x28, 0x6e, 0x29, 0x2b, + 0x72, 0x29, 0x29, 0x3c, 0x3d, 0x61, 0x3f, 0x74, 0x28, 0x6e, 0x29, + 0x3a, 0x22, 0x22, 0x7d, 0x7d, 0x2c, 0x6f, 0x2e, 0x63, 0x6f, 0x70, + 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4a, 0x69, + 0x28, 0x6e, 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x28, 0x29, 0x2c, 0x74, + 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7d, 0x2c, 0x59, 0x69, 0x28, 0x6f, + 0x2c, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x47, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, + 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x28, 0x75, 0x28, 0x74, 0x29, 0x29, 0x7d, 0x76, 0x61, 0x72, + 0x20, 0x75, 0x3d, 0x4b, 0x69, 0x28, 0x74, 0x29, 0x2c, 0x69, 0x3d, + 0x4b, 0x69, 0x28, 0x31, 0x2f, 0x74, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x72, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, + 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x28, 0x6e, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x28, 0x74, + 0x29, 0x29, 0x7d, 0x2c, 0x72, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6e, 0x2e, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x28, 0x28, 0x65, 0x3d, 0x74, 0x2e, 0x6d, 0x61, + 0x70, 0x28, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x29, 0x29, 0x2e, + 0x6d, 0x61, 0x70, 0x28, 0x75, 0x29, 0x29, 0x2c, 0x72, 0x29, 0x3a, + 0x65, 0x7d, 0x2c, 0x72, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x58, 0x69, 0x28, + 0x65, 0x2c, 0x6e, 0x29, 0x7d, 0x2c, 0x72, 0x2e, 0x74, 0x69, 0x63, + 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x24, 0x69, 0x28, 0x65, + 0x2c, 0x6e, 0x2c, 0x74, 0x29, 0x7d, 0x2c, 0x72, 0x2e, 0x6e, 0x69, + 0x63, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x72, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x5a, 0x69, + 0x28, 0x65, 0x2c, 0x6e, 0x29, 0x29, 0x7d, 0x2c, 0x72, 0x2e, 0x65, + 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6f, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x75, 0x3d, 0x4b, 0x69, 0x28, 0x74, 0x3d, 0x6f, 0x29, 0x2c, + 0x69, 0x3d, 0x4b, 0x69, 0x28, 0x31, 0x2f, 0x74, 0x29, 0x2c, 0x6e, + 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x65, 0x2e, 0x6d, + 0x61, 0x70, 0x28, 0x75, 0x29, 0x29, 0x2c, 0x72, 0x29, 0x3a, 0x74, + 0x7d, 0x2c, 0x72, 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x69, 0x28, 0x6e, 0x2e, 0x63, + 0x6f, 0x70, 0x79, 0x28, 0x29, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7d, + 0x2c, 0x59, 0x69, 0x28, 0x72, 0x2c, 0x6e, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4b, 0x69, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30, 0x3e, 0x74, 0x3f, 0x2d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x2d, 0x74, + 0x2c, 0x6e, 0x29, 0x3a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, + 0x77, 0x28, 0x74, 0x2c, 0x6e, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x51, 0x69, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x65, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x69, 0x5b, 0x28, 0x28, 0x75, 0x2e, 0x67, 0x65, 0x74, + 0x28, 0x65, 0x29, 0x7c, 0x7c, 0x28, 0x22, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x22, 0x3d, 0x3d, 0x3d, 0x74, 0x2e, 0x74, 0x3f, 0x75, 0x2e, + 0x73, 0x65, 0x74, 0x28, 0x65, 0x2c, 0x6e, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x65, 0x29, 0x29, 0x3a, 0x30, 0x2f, 0x30, 0x29, 0x29, + 0x2d, 0x31, 0x29, 0x25, 0x69, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x72, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x2e, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, + 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x2b, 0x65, 0x2a, 0x6e, 0x7d, 0x29, 0x7d, 0x76, + 0x61, 0x72, 0x20, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x72, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x21, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x3b, 0x6e, 0x3d, 0x5b, 0x5d, 0x2c, 0x75, 0x3d, 0x6e, 0x65, 0x77, + 0x20, 0x6c, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x69, 0x2c, 0x6f, 0x3d, 0x2d, 0x31, 0x2c, 0x61, 0x3d, 0x72, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x6f, 0x3c, + 0x61, 0x3b, 0x29, 0x75, 0x2e, 0x68, 0x61, 0x73, 0x28, 0x69, 0x3d, + 0x72, 0x5b, 0x6f, 0x5d, 0x29, 0x7c, 0x7c, 0x75, 0x2e, 0x73, 0x65, + 0x74, 0x28, 0x69, 0x2c, 0x6e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x69, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x65, 0x5b, 0x74, 0x2e, 0x74, 0x5d, 0x2e, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x28, 0x65, 0x2c, 0x74, 0x2e, 0x61, 0x29, 0x7d, 0x2c, 0x65, + 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x69, 0x3d, 0x6e, 0x2c, 0x6f, 0x3d, 0x30, 0x2c, 0x74, 0x3d, 0x7b, + 0x74, 0x3a, 0x22, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x2c, 0x61, + 0x3a, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x7d, + 0x2c, 0x65, 0x29, 0x3a, 0x69, 0x7d, 0x2c, 0x65, 0x2e, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x75, 0x2c, 0x61, + 0x29, 0x7b, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x26, 0x26, + 0x28, 0x61, 0x3d, 0x30, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x63, + 0x3d, 0x75, 0x5b, 0x30, 0x5d, 0x2c, 0x6c, 0x3d, 0x75, 0x5b, 0x31, + 0x5d, 0x2c, 0x73, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3c, 0x32, 0x3f, 0x28, 0x63, 0x3d, 0x28, 0x63, 0x2b, 0x6c, + 0x29, 0x2f, 0x32, 0x2c, 0x30, 0x29, 0x3a, 0x28, 0x6c, 0x2d, 0x63, + 0x29, 0x2f, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2d, 0x31, 0x2b, 0x61, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x69, 0x3d, 0x72, 0x28, 0x63, 0x2b, 0x73, 0x2a, 0x61, + 0x2f, 0x32, 0x2c, 0x73, 0x29, 0x2c, 0x6f, 0x3d, 0x30, 0x2c, 0x74, + 0x3d, 0x7b, 0x74, 0x3a, 0x22, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x2c, 0x61, 0x3a, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x7d, 0x2c, 0x65, 0x7d, + 0x2c, 0x65, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x6f, 0x75, + 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x75, 0x2c, 0x61, 0x29, + 0x7b, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x26, 0x26, 0x28, + 0x61, 0x3d, 0x30, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x3d, + 0x75, 0x5b, 0x30, 0x5d, 0x2c, 0x6c, 0x3d, 0x75, 0x5b, 0x31, 0x5d, + 0x2c, 0x73, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3c, 0x32, 0x3f, 0x28, 0x63, 0x3d, 0x6c, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x28, 0x63, 0x2b, + 0x6c, 0x29, 0x2f, 0x32, 0x29, 0x2c, 0x30, 0x29, 0x3a, 0x28, 0x6c, + 0x2d, 0x63, 0x29, 0x2f, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2d, 0x31, 0x2b, 0x61, 0x29, 0x7c, 0x30, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x3d, 0x72, 0x28, 0x63, + 0x2b, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x28, 0x73, 0x2a, 0x61, 0x2f, 0x32, 0x2b, 0x28, 0x6c, 0x2d, 0x63, + 0x2d, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, + 0x31, 0x2b, 0x61, 0x29, 0x2a, 0x73, 0x29, 0x2f, 0x32, 0x29, 0x2c, + 0x73, 0x29, 0x2c, 0x6f, 0x3d, 0x30, 0x2c, 0x74, 0x3d, 0x7b, 0x74, + 0x3a, 0x22, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x2c, 0x61, 0x3a, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x7d, 0x2c, + 0x65, 0x7d, 0x2c, 0x65, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, + 0x61, 0x6e, 0x64, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x75, 0x2c, 0x61, 0x2c, 0x63, 0x29, 0x7b, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x26, 0x26, 0x28, 0x61, 0x3d, + 0x30, 0x29, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x33, 0x26, + 0x26, 0x28, 0x63, 0x3d, 0x61, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x6c, 0x3d, 0x75, 0x5b, 0x31, 0x5d, 0x3c, 0x75, 0x5b, 0x30, 0x5d, + 0x2c, 0x73, 0x3d, 0x75, 0x5b, 0x6c, 0x2d, 0x30, 0x5d, 0x2c, 0x66, + 0x3d, 0x75, 0x5b, 0x31, 0x2d, 0x6c, 0x5d, 0x2c, 0x68, 0x3d, 0x28, + 0x66, 0x2d, 0x73, 0x29, 0x2f, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2d, 0x61, 0x2b, 0x32, 0x2a, 0x63, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x3d, 0x72, 0x28, + 0x73, 0x2b, 0x68, 0x2a, 0x63, 0x2c, 0x68, 0x29, 0x2c, 0x6c, 0x26, + 0x26, 0x69, 0x2e, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x28, + 0x29, 0x2c, 0x6f, 0x3d, 0x68, 0x2a, 0x28, 0x31, 0x2d, 0x61, 0x29, + 0x2c, 0x74, 0x3d, 0x7b, 0x74, 0x3a, 0x22, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x42, 0x61, 0x6e, 0x64, 0x73, 0x22, 0x2c, 0x61, 0x3a, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x7d, 0x2c, 0x65, + 0x7d, 0x2c, 0x65, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x6f, + 0x75, 0x6e, 0x64, 0x42, 0x61, 0x6e, 0x64, 0x73, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x75, 0x2c, 0x61, 0x2c, + 0x63, 0x29, 0x7b, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x26, + 0x26, 0x28, 0x61, 0x3d, 0x30, 0x29, 0x2c, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3c, 0x33, 0x26, 0x26, 0x28, 0x63, 0x3d, 0x61, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x75, 0x5b, 0x31, 0x5d, 0x3c, + 0x75, 0x5b, 0x30, 0x5d, 0x2c, 0x73, 0x3d, 0x75, 0x5b, 0x6c, 0x2d, + 0x30, 0x5d, 0x2c, 0x66, 0x3d, 0x75, 0x5b, 0x31, 0x2d, 0x6c, 0x5d, + 0x2c, 0x68, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, + 0x6f, 0x72, 0x28, 0x28, 0x66, 0x2d, 0x73, 0x29, 0x2f, 0x28, 0x6e, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x61, 0x2b, 0x32, + 0x2a, 0x63, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x69, 0x3d, 0x72, 0x28, 0x73, 0x2b, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x28, 0x66, 0x2d, 0x73, + 0x2d, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, + 0x61, 0x29, 0x2a, 0x68, 0x29, 0x2f, 0x32, 0x29, 0x2c, 0x68, 0x29, + 0x2c, 0x6c, 0x26, 0x26, 0x69, 0x2e, 0x72, 0x65, 0x76, 0x65, 0x72, + 0x73, 0x65, 0x28, 0x29, 0x2c, 0x6f, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x68, 0x2a, 0x28, 0x31, + 0x2d, 0x61, 0x29, 0x29, 0x2c, 0x74, 0x3d, 0x7b, 0x74, 0x3a, 0x22, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x42, + 0x61, 0x6e, 0x64, 0x73, 0x22, 0x2c, 0x61, 0x3a, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x7d, 0x2c, 0x65, 0x7d, 0x2c, + 0x65, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x64, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x7d, 0x2c, + 0x65, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x50, + 0x69, 0x28, 0x74, 0x2e, 0x61, 0x5b, 0x30, 0x5d, 0x29, 0x7d, 0x2c, + 0x65, 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x51, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7d, + 0x2c, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x6e, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6e, 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x3d, 0x30, 0x2c, 0x72, 0x3d, 0x74, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x66, 0x6f, 0x72, 0x28, + 0x61, 0x3d, 0x5b, 0x5d, 0x3b, 0x2b, 0x2b, 0x65, 0x3c, 0x72, 0x3b, + 0x29, 0x61, 0x5b, 0x65, 0x2d, 0x31, 0x5d, 0x3d, 0x74, 0x61, 0x2e, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x2c, + 0x65, 0x2f, 0x72, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6f, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x6e, 0x3d, 0x2b, + 0x6e, 0x29, 0x3f, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x30, 0x3a, 0x74, + 0x5b, 0x74, 0x61, 0x2e, 0x62, 0x69, 0x73, 0x65, 0x63, 0x74, 0x28, + 0x61, 0x2c, 0x6e, 0x29, 0x5d, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x61, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x2e, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6e, + 0x3d, 0x74, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x72, 0x29, 0x2e, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x28, 0x75, 0x29, 0x2e, 0x73, 0x6f, + 0x72, 0x74, 0x28, 0x65, 0x29, 0x2c, 0x69, 0x28, 0x29, 0x29, 0x3a, + 0x6e, 0x7d, 0x2c, 0x6f, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x74, 0x3d, 0x6e, 0x2c, 0x69, 0x28, 0x29, + 0x29, 0x3a, 0x74, 0x7d, 0x2c, 0x6f, 0x2e, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x6c, 0x65, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x7d, 0x2c, 0x6f, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x72, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3d, 0x74, 0x2e, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x66, 0x28, 0x65, 0x29, 0x2c, 0x30, + 0x3e, 0x65, 0x3f, 0x5b, 0x30, 0x2f, 0x30, 0x2c, 0x30, 0x2f, 0x30, + 0x5d, 0x3a, 0x5b, 0x65, 0x3e, 0x30, 0x3f, 0x61, 0x5b, 0x65, 0x2d, + 0x31, 0x5d, 0x3a, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x3c, 0x61, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x61, 0x5b, 0x65, + 0x5d, 0x3a, 0x6e, 0x5b, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2d, 0x31, 0x5d, 0x5d, 0x7d, 0x2c, 0x6f, 0x2e, 0x63, 0x6f, + 0x70, 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7d, 0x2c, 0x69, 0x28, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x5b, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x30, 0x2c, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x6f, 0x2c, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x69, + 0x2a, 0x28, 0x74, 0x2d, 0x6e, 0x29, 0x29, 0x29, 0x29, 0x5d, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x3d, + 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2f, 0x28, 0x74, + 0x2d, 0x6e, 0x29, 0x2c, 0x6f, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2d, 0x31, 0x2c, 0x72, 0x7d, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x2c, 0x6f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x72, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x6e, 0x3d, 0x2b, 0x65, 0x5b, 0x30, 0x5d, 0x2c, + 0x74, 0x3d, 0x2b, 0x65, 0x5b, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x2c, 0x75, 0x28, 0x29, 0x29, 0x3a, + 0x5b, 0x6e, 0x2c, 0x74, 0x5d, 0x7d, 0x2c, 0x72, 0x2e, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, 0x3d, 0x6e, + 0x2c, 0x75, 0x28, 0x29, 0x29, 0x3a, 0x65, 0x7d, 0x2c, 0x72, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x3d, 0x65, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x66, 0x28, + 0x74, 0x29, 0x2c, 0x74, 0x3d, 0x30, 0x3e, 0x74, 0x3f, 0x30, 0x2f, + 0x30, 0x3a, 0x74, 0x2f, 0x69, 0x2b, 0x6e, 0x2c, 0x5b, 0x74, 0x2c, + 0x74, 0x2b, 0x31, 0x2f, 0x69, 0x5d, 0x7d, 0x2c, 0x72, 0x2e, 0x63, + 0x6f, 0x70, 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7d, 0x2c, + 0x75, 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x65, 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x65, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3e, + 0x3d, 0x65, 0x3f, 0x74, 0x5b, 0x74, 0x61, 0x2e, 0x62, 0x69, 0x73, + 0x65, 0x63, 0x74, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x5d, 0x3a, 0x76, + 0x6f, 0x69, 0x64, 0x20, 0x30, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x65, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x6e, 0x3d, 0x74, 0x2c, 0x65, 0x29, 0x3a, + 0x6e, 0x7d, 0x2c, 0x65, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x74, 0x3d, 0x6e, 0x2c, 0x65, 0x29, 0x3a, + 0x74, 0x7d, 0x2c, 0x65, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3d, 0x74, 0x2e, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x4f, 0x66, 0x28, 0x65, 0x29, 0x2c, 0x5b, 0x6e, 0x5b, + 0x65, 0x2d, 0x31, 0x5d, 0x2c, 0x6e, 0x5b, 0x65, 0x5d, 0x5d, 0x7d, + 0x2c, 0x65, 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x65, 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7d, 0x2c, 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x72, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2b, 0x6e, 0x7d, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x72, 0x74, 0x3d, 0x74, 0x2c, 0x74, 0x2e, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x3d, 0x74, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x6e, 0x3d, 0x65, 0x2e, 0x6d, 0x61, 0x70, + 0x28, 0x74, 0x29, 0x2c, 0x74, 0x29, 0x3a, 0x6e, 0x7d, 0x2c, 0x74, + 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x58, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7d, 0x2c, 0x74, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x24, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, + 0x29, 0x7d, 0x2c, 0x74, 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x6f, 0x28, 0x6e, 0x29, + 0x7d, 0x2c, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x75, 0x6f, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x30, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x69, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6f, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6f, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6e, 0x67, 0x6c, + 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x63, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2e, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x67, 0x6c, + 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6c, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x26, 0x26, 0x6e, 0x2e, 0x70, 0x61, 0x64, 0x41, + 0x6e, 0x67, 0x6c, 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x73, 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, + 0x2c, 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, + 0x6e, 0x2d, 0x65, 0x29, 0x2a, 0x74, 0x2d, 0x28, 0x74, 0x2d, 0x72, + 0x29, 0x2a, 0x6e, 0x3e, 0x30, 0x3f, 0x30, 0x3a, 0x31, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2d, + 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x6f, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, + 0x2d, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x61, 0x3d, 0x28, 0x75, 0x3f, + 0x72, 0x3a, 0x2d, 0x72, 0x29, 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x73, 0x71, 0x72, 0x74, 0x28, 0x69, 0x2a, 0x69, 0x2b, 0x6f, 0x2a, + 0x6f, 0x29, 0x2c, 0x63, 0x3d, 0x61, 0x2a, 0x6f, 0x2c, 0x6c, 0x3d, + 0x2d, 0x61, 0x2a, 0x69, 0x2c, 0x73, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, + 0x2b, 0x63, 0x2c, 0x66, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x2b, 0x6c, + 0x2c, 0x68, 0x3d, 0x74, 0x5b, 0x30, 0x5d, 0x2b, 0x63, 0x2c, 0x67, + 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x2b, 0x6c, 0x2c, 0x70, 0x3d, 0x28, + 0x73, 0x2b, 0x68, 0x29, 0x2f, 0x32, 0x2c, 0x76, 0x3d, 0x28, 0x66, + 0x2b, 0x67, 0x29, 0x2f, 0x32, 0x2c, 0x64, 0x3d, 0x68, 0x2d, 0x73, + 0x2c, 0x6d, 0x3d, 0x67, 0x2d, 0x66, 0x2c, 0x79, 0x3d, 0x64, 0x2a, + 0x64, 0x2b, 0x6d, 0x2a, 0x6d, 0x2c, 0x4d, 0x3d, 0x65, 0x2d, 0x72, + 0x2c, 0x78, 0x3d, 0x73, 0x2a, 0x67, 0x2d, 0x68, 0x2a, 0x66, 0x2c, + 0x62, 0x3d, 0x28, 0x30, 0x3e, 0x6d, 0x3f, 0x2d, 0x31, 0x3a, 0x31, + 0x29, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, + 0x28, 0x4d, 0x2a, 0x4d, 0x2a, 0x79, 0x2d, 0x78, 0x2a, 0x78, 0x29, + 0x2c, 0x5f, 0x3d, 0x28, 0x78, 0x2a, 0x6d, 0x2d, 0x64, 0x2a, 0x62, + 0x29, 0x2f, 0x79, 0x2c, 0x77, 0x3d, 0x28, 0x2d, 0x78, 0x2a, 0x64, + 0x2d, 0x6d, 0x2a, 0x62, 0x29, 0x2f, 0x79, 0x2c, 0x53, 0x3d, 0x28, + 0x78, 0x2a, 0x6d, 0x2b, 0x64, 0x2a, 0x62, 0x29, 0x2f, 0x79, 0x2c, + 0x6b, 0x3d, 0x28, 0x2d, 0x78, 0x2a, 0x64, 0x2b, 0x6d, 0x2a, 0x62, + 0x29, 0x2f, 0x79, 0x2c, 0x45, 0x3d, 0x5f, 0x2d, 0x70, 0x2c, 0x41, + 0x3d, 0x77, 0x2d, 0x76, 0x2c, 0x4e, 0x3d, 0x53, 0x2d, 0x70, 0x2c, + 0x43, 0x3d, 0x6b, 0x2d, 0x76, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x45, 0x2a, 0x45, 0x2b, 0x41, 0x2a, 0x41, 0x3e, 0x4e, + 0x2a, 0x4e, 0x2b, 0x43, 0x2a, 0x43, 0x26, 0x26, 0x28, 0x5f, 0x3d, + 0x53, 0x2c, 0x77, 0x3d, 0x6b, 0x29, 0x2c, 0x5b, 0x5b, 0x5f, 0x2d, + 0x63, 0x2c, 0x77, 0x2d, 0x6c, 0x5d, 0x2c, 0x5b, 0x5f, 0x2a, 0x65, + 0x2f, 0x4d, 0x2c, 0x77, 0x2a, 0x65, 0x2f, 0x4d, 0x5d, 0x5d, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x68, 0x6f, + 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x28, 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x28, 0x29, 0x7b, 0x6c, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x4d, 0x22, 0x2c, 0x69, 0x28, + 0x6e, 0x28, 0x73, 0x29, 0x2c, 0x61, 0x29, 0x29, 0x7d, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x63, 0x2c, 0x6c, 0x3d, 0x5b, + 0x5d, 0x2c, 0x73, 0x3d, 0x5b, 0x5d, 0x2c, 0x66, 0x3d, 0x2d, 0x31, + 0x2c, 0x68, 0x3d, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2c, 0x67, 0x3d, 0x45, 0x74, 0x28, 0x65, 0x29, 0x2c, 0x70, 0x3d, + 0x45, 0x74, 0x28, 0x72, 0x29, 0x3b, 0x2b, 0x2b, 0x66, 0x3c, 0x68, + 0x3b, 0x29, 0x75, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x63, 0x3d, 0x74, 0x5b, 0x66, 0x5d, 0x2c, 0x66, + 0x29, 0x3f, 0x73, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x5b, 0x2b, + 0x67, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2c, 0x63, 0x2c, 0x66, 0x29, 0x2c, 0x2b, 0x70, 0x2e, 0x63, 0x61, + 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x63, 0x2c, 0x66, + 0x29, 0x5d, 0x29, 0x3a, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x26, 0x26, 0x28, 0x6f, 0x28, 0x29, 0x2c, 0x73, 0x3d, 0x5b, + 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x26, 0x26, 0x6f, 0x28, + 0x29, 0x2c, 0x6c, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x6c, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, 0x29, 0x3a, + 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, + 0x41, 0x72, 0x2c, 0x72, 0x3d, 0x4e, 0x72, 0x2c, 0x75, 0x3d, 0x4e, + 0x65, 0x2c, 0x69, 0x3d, 0x67, 0x6f, 0x2c, 0x6f, 0x3d, 0x69, 0x2e, + 0x6b, 0x65, 0x79, 0x2c, 0x61, 0x3d, 0x2e, 0x37, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x78, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x65, 0x3d, 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x65, 0x7d, + 0x2c, 0x74, 0x2e, 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x72, 0x3d, + 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x74, 0x2e, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x75, 0x3d, 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x75, 0x7d, 0x2c, 0x74, + 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6f, 0x3d, 0x22, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, + 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x3f, 0x69, 0x3d, 0x6e, 0x3a, + 0x28, 0x69, 0x3d, 0x45, 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x28, 0x6e, + 0x29, 0x7c, 0x7c, 0x67, 0x6f, 0x29, 0x2e, 0x6b, 0x65, 0x79, 0x2c, + 0x74, 0x29, 0x3a, 0x6f, 0x7d, 0x2c, 0x74, 0x2e, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x61, 0x3d, + 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x61, 0x7d, 0x2c, 0x74, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, 0x6f, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x4c, 0x22, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x6f, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x67, 0x6f, 0x28, 0x6e, 0x29, 0x2b, 0x22, 0x5a, 0x22, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, 0x6f, 0x28, + 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3d, 0x30, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2c, 0x72, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, + 0x75, 0x3d, 0x5b, 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x22, 0x2c, 0x22, + 0x2c, 0x72, 0x5b, 0x31, 0x5d, 0x5d, 0x3b, 0x2b, 0x2b, 0x74, 0x3c, + 0x65, 0x3b, 0x29, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, + 0x48, 0x22, 0x2c, 0x28, 0x72, 0x5b, 0x30, 0x5d, 0x2b, 0x28, 0x72, + 0x3d, 0x6e, 0x5b, 0x74, 0x5d, 0x29, 0x5b, 0x30, 0x5d, 0x29, 0x2f, + 0x32, 0x2c, 0x22, 0x56, 0x22, 0x2c, 0x72, 0x5b, 0x31, 0x5d, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3e, 0x31, + 0x26, 0x26, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x48, + 0x22, 0x2c, 0x72, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x75, 0x2e, 0x6a, + 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x6f, 0x28, 0x6e, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, + 0x30, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x72, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x3d, + 0x5b, 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x72, + 0x5b, 0x31, 0x5d, 0x5d, 0x3b, 0x2b, 0x2b, 0x74, 0x3c, 0x65, 0x3b, + 0x29, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x56, 0x22, + 0x2c, 0x28, 0x72, 0x3d, 0x6e, 0x5b, 0x74, 0x5d, 0x29, 0x5b, 0x31, + 0x5d, 0x2c, 0x22, 0x48, 0x22, 0x2c, 0x72, 0x5b, 0x30, 0x5d, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x2e, 0x6a, + 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x79, 0x6f, 0x28, 0x6e, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, + 0x30, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x72, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x3d, + 0x5b, 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x72, + 0x5b, 0x31, 0x5d, 0x5d, 0x3b, 0x2b, 0x2b, 0x74, 0x3c, 0x65, 0x3b, + 0x29, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x48, 0x22, + 0x2c, 0x28, 0x72, 0x3d, 0x6e, 0x5b, 0x74, 0x5d, 0x29, 0x5b, 0x30, + 0x5d, 0x2c, 0x22, 0x56, 0x22, 0x2c, 0x72, 0x5b, 0x31, 0x5d, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x2e, 0x6a, + 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4d, 0x6f, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x34, 0x3f, 0x67, + 0x6f, 0x28, 0x6e, 0x29, 0x3a, 0x6e, 0x5b, 0x31, 0x5d, 0x2b, 0x5f, + 0x6f, 0x28, 0x6e, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x31, + 0x2c, 0x2d, 0x31, 0x29, 0x2c, 0x77, 0x6f, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x78, 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3c, 0x33, 0x3f, 0x67, 0x6f, 0x28, 0x6e, 0x29, 0x3a, + 0x6e, 0x5b, 0x30, 0x5d, 0x2b, 0x5f, 0x6f, 0x28, 0x28, 0x6e, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x29, 0x2c, + 0x6e, 0x29, 0x2c, 0x77, 0x6f, 0x28, 0x5b, 0x6e, 0x5b, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x32, 0x5d, 0x5d, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x28, 0x6e, 0x2c, 0x5b, 0x6e, + 0x5b, 0x31, 0x5d, 0x5d, 0x29, 0x2c, 0x74, 0x29, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x33, + 0x3f, 0x67, 0x6f, 0x28, 0x6e, 0x29, 0x3a, 0x6e, 0x5b, 0x30, 0x5d, + 0x2b, 0x5f, 0x6f, 0x28, 0x6e, 0x2c, 0x77, 0x6f, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x5f, 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x69, + 0x66, 0x28, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, + 0x31, 0x7c, 0x7c, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x21, 0x3d, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x26, + 0x26, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x21, 0x3d, + 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2b, 0x32, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x67, 0x6f, 0x28, 0x6e, + 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x21, 0x3d, 0x74, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x72, 0x3d, 0x22, 0x22, 0x2c, 0x75, + 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x69, 0x3d, 0x6e, 0x5b, 0x31, + 0x5d, 0x2c, 0x6f, 0x3d, 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x61, 0x3d, + 0x6f, 0x2c, 0x63, 0x3d, 0x31, 0x3b, 0x69, 0x66, 0x28, 0x65, 0x26, + 0x26, 0x28, 0x72, 0x2b, 0x3d, 0x22, 0x51, 0x22, 0x2b, 0x28, 0x69, + 0x5b, 0x30, 0x5d, 0x2d, 0x32, 0x2a, 0x6f, 0x5b, 0x30, 0x5d, 0x2f, + 0x33, 0x29, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x28, 0x69, 0x5b, 0x31, + 0x5d, 0x2d, 0x32, 0x2a, 0x6f, 0x5b, 0x31, 0x5d, 0x2f, 0x33, 0x29, + 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x69, 0x5b, 0x30, 0x5d, 0x2b, 0x22, + 0x2c, 0x22, 0x2b, 0x69, 0x5b, 0x31, 0x5d, 0x2c, 0x75, 0x3d, 0x6e, + 0x5b, 0x31, 0x5d, 0x2c, 0x63, 0x3d, 0x32, 0x29, 0x2c, 0x74, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x31, 0x29, 0x7b, 0x61, + 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x69, 0x3d, 0x6e, 0x5b, 0x63, + 0x5d, 0x2c, 0x63, 0x2b, 0x2b, 0x2c, 0x72, 0x2b, 0x3d, 0x22, 0x43, + 0x22, 0x2b, 0x28, 0x75, 0x5b, 0x30, 0x5d, 0x2b, 0x6f, 0x5b, 0x30, + 0x5d, 0x29, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x28, 0x75, 0x5b, 0x31, + 0x5d, 0x2b, 0x6f, 0x5b, 0x31, 0x5d, 0x29, 0x2b, 0x22, 0x2c, 0x22, + 0x2b, 0x28, 0x69, 0x5b, 0x30, 0x5d, 0x2d, 0x61, 0x5b, 0x30, 0x5d, + 0x29, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x28, 0x69, 0x5b, 0x31, 0x5d, + 0x2d, 0x61, 0x5b, 0x31, 0x5d, 0x29, 0x2b, 0x22, 0x2c, 0x22, 0x2b, + 0x69, 0x5b, 0x30, 0x5d, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x69, 0x5b, + 0x31, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x6c, 0x3d, 0x32, 0x3b, 0x6c, 0x3c, 0x74, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3b, 0x6c, 0x2b, 0x2b, 0x2c, 0x63, 0x2b, 0x2b, + 0x29, 0x69, 0x3d, 0x6e, 0x5b, 0x63, 0x5d, 0x2c, 0x61, 0x3d, 0x74, + 0x5b, 0x6c, 0x5d, 0x2c, 0x72, 0x2b, 0x3d, 0x22, 0x53, 0x22, 0x2b, + 0x28, 0x69, 0x5b, 0x30, 0x5d, 0x2d, 0x61, 0x5b, 0x30, 0x5d, 0x29, + 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x28, 0x69, 0x5b, 0x31, 0x5d, 0x2d, + 0x61, 0x5b, 0x31, 0x5d, 0x29, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x69, + 0x5b, 0x30, 0x5d, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x69, 0x5b, 0x31, + 0x5d, 0x7d, 0x69, 0x66, 0x28, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x73, 0x3d, 0x6e, 0x5b, 0x63, 0x5d, 0x3b, 0x72, 0x2b, 0x3d, + 0x22, 0x51, 0x22, 0x2b, 0x28, 0x69, 0x5b, 0x30, 0x5d, 0x2b, 0x32, + 0x2a, 0x61, 0x5b, 0x30, 0x5d, 0x2f, 0x33, 0x29, 0x2b, 0x22, 0x2c, + 0x22, 0x2b, 0x28, 0x69, 0x5b, 0x31, 0x5d, 0x2b, 0x32, 0x2a, 0x61, + 0x5b, 0x31, 0x5d, 0x2f, 0x33, 0x29, 0x2b, 0x22, 0x2c, 0x22, 0x2b, + 0x73, 0x5b, 0x30, 0x5d, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x73, 0x5b, + 0x31, 0x5d, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, + 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x3d, 0x5b, 0x5d, 0x2c, + 0x75, 0x3d, 0x28, 0x31, 0x2d, 0x74, 0x29, 0x2f, 0x32, 0x2c, 0x69, + 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x6f, 0x3d, 0x6e, 0x5b, 0x31, + 0x5d, 0x2c, 0x61, 0x3d, 0x31, 0x2c, 0x63, 0x3d, 0x6e, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x61, 0x3c, 0x63, + 0x3b, 0x29, 0x65, 0x3d, 0x69, 0x2c, 0x69, 0x3d, 0x6f, 0x2c, 0x6f, + 0x3d, 0x6e, 0x5b, 0x61, 0x5d, 0x2c, 0x72, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x5b, 0x75, 0x2a, 0x28, 0x6f, 0x5b, 0x30, 0x5d, 0x2d, + 0x65, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x75, 0x2a, 0x28, 0x6f, 0x5b, + 0x31, 0x5d, 0x2d, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x5d, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, 0x6f, 0x28, 0x6e, + 0x29, 0x7b, 0x69, 0x66, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3c, 0x33, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x67, 0x6f, 0x28, 0x6e, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3d, 0x31, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2c, 0x72, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, + 0x75, 0x3d, 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x69, 0x3d, 0x72, 0x5b, + 0x31, 0x5d, 0x2c, 0x6f, 0x3d, 0x5b, 0x75, 0x2c, 0x75, 0x2c, 0x75, + 0x2c, 0x28, 0x72, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x29, 0x5b, 0x30, + 0x5d, 0x5d, 0x2c, 0x61, 0x3d, 0x5b, 0x69, 0x2c, 0x69, 0x2c, 0x69, + 0x2c, 0x72, 0x5b, 0x31, 0x5d, 0x5d, 0x2c, 0x63, 0x3d, 0x5b, 0x75, + 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x69, 0x2c, 0x22, 0x4c, 0x22, 0x2c, + 0x4e, 0x6f, 0x28, 0x43, 0x6c, 0x2c, 0x6f, 0x29, 0x2c, 0x22, 0x2c, + 0x22, 0x2c, 0x4e, 0x6f, 0x28, 0x43, 0x6c, 0x2c, 0x61, 0x29, 0x5d, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x6e, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x6e, 0x5b, 0x65, 0x2d, 0x31, 0x5d, 0x29, 0x3b, 0x2b, 0x2b, + 0x74, 0x3c, 0x3d, 0x65, 0x3b, 0x29, 0x72, 0x3d, 0x6e, 0x5b, 0x74, + 0x5d, 0x2c, 0x6f, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, 0x29, + 0x2c, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x5b, 0x30, + 0x5d, 0x29, 0x2c, 0x61, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, + 0x29, 0x2c, 0x61, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x5b, + 0x31, 0x5d, 0x29, 0x2c, 0x43, 0x6f, 0x28, 0x63, 0x2c, 0x6f, 0x2c, + 0x61, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2c, 0x63, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x22, 0x4c, 0x22, 0x2c, 0x72, 0x29, 0x2c, 0x63, + 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6b, 0x6f, 0x28, + 0x6e, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3c, 0x34, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x67, 0x6f, 0x28, 0x6e, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x3d, 0x5b, 0x5d, + 0x2c, 0x72, 0x3d, 0x2d, 0x31, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x69, 0x3d, 0x5b, 0x30, 0x5d, + 0x2c, 0x6f, 0x3d, 0x5b, 0x30, 0x5d, 0x3b, 0x2b, 0x2b, 0x72, 0x3c, + 0x33, 0x3b, 0x29, 0x74, 0x3d, 0x6e, 0x5b, 0x72, 0x5d, 0x2c, 0x69, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x5b, 0x30, 0x5d, 0x29, + 0x2c, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x5b, 0x31, + 0x5d, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x4e, 0x6f, 0x28, 0x43, 0x6c, 0x2c, 0x69, 0x29, + 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x4e, 0x6f, 0x28, 0x43, 0x6c, 0x2c, + 0x6f, 0x29, 0x29, 0x2c, 0x2d, 0x2d, 0x72, 0x3b, 0x2b, 0x2b, 0x72, + 0x3c, 0x75, 0x3b, 0x29, 0x74, 0x3d, 0x6e, 0x5b, 0x72, 0x5d, 0x2c, + 0x69, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, 0x29, 0x2c, 0x69, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x5b, 0x30, 0x5d, 0x29, + 0x2c, 0x6f, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, 0x29, 0x2c, + 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x5b, 0x31, 0x5d, + 0x29, 0x2c, 0x43, 0x6f, 0x28, 0x65, 0x2c, 0x69, 0x2c, 0x6f, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x2e, 0x6a, + 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x45, 0x6f, 0x28, 0x6e, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, + 0x65, 0x2c, 0x72, 0x3d, 0x2d, 0x31, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x69, 0x3d, 0x75, 0x2b, + 0x34, 0x2c, 0x6f, 0x3d, 0x5b, 0x5d, 0x2c, 0x61, 0x3d, 0x5b, 0x5d, + 0x3b, 0x2b, 0x2b, 0x72, 0x3c, 0x34, 0x3b, 0x29, 0x65, 0x3d, 0x6e, + 0x5b, 0x72, 0x25, 0x75, 0x5d, 0x2c, 0x6f, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x65, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x61, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x5b, 0x4e, 0x6f, 0x28, 0x43, 0x6c, + 0x2c, 0x6f, 0x29, 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x4e, 0x6f, 0x28, + 0x43, 0x6c, 0x2c, 0x61, 0x29, 0x5d, 0x2c, 0x2d, 0x2d, 0x72, 0x3b, + 0x2b, 0x2b, 0x72, 0x3c, 0x69, 0x3b, 0x29, 0x65, 0x3d, 0x6e, 0x5b, + 0x72, 0x25, 0x75, 0x5d, 0x2c, 0x6f, 0x2e, 0x73, 0x68, 0x69, 0x66, + 0x74, 0x28, 0x29, 0x2c, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x65, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x61, 0x2e, 0x73, 0x68, 0x69, + 0x66, 0x74, 0x28, 0x29, 0x2c, 0x61, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x43, 0x6f, 0x28, 0x74, + 0x2c, 0x6f, 0x2c, 0x61, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x41, 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x65, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2d, 0x31, 0x3b, 0x69, 0x66, 0x28, 0x65, 0x29, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x3d, + 0x6e, 0x5b, 0x30, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x6f, 0x3d, 0x6e, + 0x5b, 0x30, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x61, 0x3d, 0x6e, 0x5b, + 0x65, 0x5d, 0x5b, 0x30, 0x5d, 0x2d, 0x69, 0x2c, 0x63, 0x3d, 0x6e, + 0x5b, 0x65, 0x5d, 0x5b, 0x31, 0x5d, 0x2d, 0x6f, 0x2c, 0x6c, 0x3d, + 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x6c, 0x3c, 0x3d, 0x65, 0x3b, 0x29, + 0x72, 0x3d, 0x6e, 0x5b, 0x6c, 0x5d, 0x2c, 0x75, 0x3d, 0x6c, 0x2f, + 0x65, 0x2c, 0x72, 0x5b, 0x30, 0x5d, 0x3d, 0x74, 0x2a, 0x72, 0x5b, + 0x30, 0x5d, 0x2b, 0x28, 0x31, 0x2d, 0x74, 0x29, 0x2a, 0x28, 0x69, + 0x2b, 0x75, 0x2a, 0x61, 0x29, 0x2c, 0x72, 0x5b, 0x31, 0x5d, 0x3d, + 0x74, 0x2a, 0x72, 0x5b, 0x31, 0x5d, 0x2b, 0x28, 0x31, 0x2d, 0x74, + 0x29, 0x2a, 0x28, 0x6f, 0x2b, 0x75, 0x2a, 0x63, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x6f, 0x28, 0x6e, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4e, + 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x5b, 0x30, 0x5d, 0x2a, 0x74, 0x5b, 0x30, + 0x5d, 0x2b, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, 0x74, 0x5b, 0x31, 0x5d, + 0x2b, 0x6e, 0x5b, 0x32, 0x5d, 0x2a, 0x74, 0x5b, 0x32, 0x5d, 0x2b, + 0x6e, 0x5b, 0x33, 0x5d, 0x2a, 0x74, 0x5b, 0x33, 0x5d, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x43, 0x6f, 0x28, + 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x6e, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x22, 0x43, 0x22, 0x2c, 0x4e, 0x6f, 0x28, 0x41, + 0x6c, 0x2c, 0x74, 0x29, 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x4e, 0x6f, + 0x28, 0x41, 0x6c, 0x2c, 0x65, 0x29, 0x2c, 0x22, 0x2c, 0x22, 0x2c, + 0x4e, 0x6f, 0x28, 0x4e, 0x6c, 0x2c, 0x74, 0x29, 0x2c, 0x22, 0x2c, + 0x22, 0x2c, 0x4e, 0x6f, 0x28, 0x4e, 0x6c, 0x2c, 0x65, 0x29, 0x2c, + 0x22, 0x2c, 0x22, 0x2c, 0x4e, 0x6f, 0x28, 0x43, 0x6c, 0x2c, 0x74, + 0x29, 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x4e, 0x6f, 0x28, 0x43, 0x6c, + 0x2c, 0x65, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x7a, 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x74, 0x5b, 0x31, 0x5d, + 0x2d, 0x6e, 0x5b, 0x31, 0x5d, 0x29, 0x2f, 0x28, 0x74, 0x5b, 0x30, + 0x5d, 0x2d, 0x6e, 0x5b, 0x30, 0x5d, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x71, 0x6f, 0x28, 0x6e, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, + 0x30, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2d, 0x31, 0x2c, 0x72, 0x3d, 0x5b, 0x5d, 0x2c, 0x75, 0x3d, + 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x69, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, + 0x2c, 0x6f, 0x3d, 0x72, 0x5b, 0x30, 0x5d, 0x3d, 0x7a, 0x6f, 0x28, + 0x75, 0x2c, 0x69, 0x29, 0x3b, 0x2b, 0x2b, 0x74, 0x3c, 0x65, 0x3b, + 0x29, 0x72, 0x5b, 0x74, 0x5d, 0x3d, 0x28, 0x6f, 0x2b, 0x28, 0x6f, + 0x3d, 0x7a, 0x6f, 0x28, 0x75, 0x3d, 0x69, 0x2c, 0x69, 0x3d, 0x6e, + 0x5b, 0x74, 0x2b, 0x31, 0x5d, 0x29, 0x29, 0x29, 0x2f, 0x32, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x5b, 0x74, 0x5d, + 0x3d, 0x6f, 0x2c, 0x72, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x4c, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, + 0x2c, 0x75, 0x2c, 0x69, 0x3d, 0x5b, 0x5d, 0x2c, 0x6f, 0x3d, 0x71, + 0x6f, 0x28, 0x6e, 0x29, 0x2c, 0x61, 0x3d, 0x2d, 0x31, 0x2c, 0x63, + 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, + 0x3b, 0x2b, 0x2b, 0x61, 0x3c, 0x63, 0x3b, 0x29, 0x74, 0x3d, 0x7a, + 0x6f, 0x28, 0x6e, 0x5b, 0x61, 0x5d, 0x2c, 0x6e, 0x5b, 0x61, 0x2b, + 0x31, 0x5d, 0x29, 0x2c, 0x67, 0x61, 0x28, 0x74, 0x29, 0x3c, 0x43, + 0x61, 0x3f, 0x6f, 0x5b, 0x61, 0x5d, 0x3d, 0x6f, 0x5b, 0x61, 0x2b, + 0x31, 0x5d, 0x3d, 0x30, 0x3a, 0x28, 0x65, 0x3d, 0x6f, 0x5b, 0x61, + 0x5d, 0x2f, 0x74, 0x2c, 0x72, 0x3d, 0x6f, 0x5b, 0x61, 0x2b, 0x31, + 0x5d, 0x2f, 0x74, 0x2c, 0x75, 0x3d, 0x65, 0x2a, 0x65, 0x2b, 0x72, + 0x2a, 0x72, 0x2c, 0x75, 0x3e, 0x39, 0x26, 0x26, 0x28, 0x75, 0x3d, + 0x33, 0x2a, 0x74, 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, + 0x72, 0x74, 0x28, 0x75, 0x29, 0x2c, 0x6f, 0x5b, 0x61, 0x5d, 0x3d, + 0x75, 0x2a, 0x65, 0x2c, 0x6f, 0x5b, 0x61, 0x2b, 0x31, 0x5d, 0x3d, + 0x75, 0x2a, 0x72, 0x29, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x61, + 0x3d, 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x61, 0x3c, 0x3d, 0x63, 0x3b, + 0x29, 0x75, 0x3d, 0x28, 0x6e, 0x5b, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x6d, 0x69, 0x6e, 0x28, 0x63, 0x2c, 0x61, 0x2b, 0x31, 0x29, 0x5d, + 0x5b, 0x30, 0x5d, 0x2d, 0x6e, 0x5b, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x6d, 0x61, 0x78, 0x28, 0x30, 0x2c, 0x61, 0x2d, 0x31, 0x29, 0x5d, + 0x5b, 0x30, 0x5d, 0x29, 0x2f, 0x28, 0x36, 0x2a, 0x28, 0x31, 0x2b, + 0x6f, 0x5b, 0x61, 0x5d, 0x2a, 0x6f, 0x5b, 0x61, 0x5d, 0x29, 0x29, + 0x2c, 0x69, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x5b, 0x75, 0x7c, + 0x7c, 0x30, 0x2c, 0x6f, 0x5b, 0x61, 0x5d, 0x2a, 0x75, 0x7c, 0x7c, + 0x30, 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x69, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x54, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, + 0x33, 0x3f, 0x67, 0x6f, 0x28, 0x6e, 0x29, 0x3a, 0x6e, 0x5b, 0x30, + 0x5d, 0x2b, 0x5f, 0x6f, 0x28, 0x6e, 0x2c, 0x4c, 0x6f, 0x28, 0x6e, + 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x52, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, + 0x3d, 0x2d, 0x31, 0x2c, 0x69, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x75, 0x3c, 0x69, 0x3b, 0x29, + 0x74, 0x3d, 0x6e, 0x5b, 0x75, 0x5d, 0x2c, 0x65, 0x3d, 0x74, 0x5b, + 0x30, 0x5d, 0x2c, 0x72, 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x2d, 0x52, + 0x61, 0x2c, 0x74, 0x5b, 0x30, 0x5d, 0x3d, 0x65, 0x2a, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x72, 0x29, 0x2c, 0x74, + 0x5b, 0x31, 0x5d, 0x3d, 0x65, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x73, 0x69, 0x6e, 0x28, 0x72, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x44, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x74, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, + 0x28, 0x29, 0x7b, 0x76, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, + 0x4d, 0x22, 0x2c, 0x61, 0x28, 0x6e, 0x28, 0x6d, 0x29, 0x2c, 0x66, + 0x29, 0x2c, 0x73, 0x2c, 0x6c, 0x28, 0x6e, 0x28, 0x64, 0x2e, 0x72, + 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x28, 0x29, 0x29, 0x2c, 0x66, + 0x29, 0x2c, 0x22, 0x5a, 0x22, 0x29, 0x7d, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x68, 0x2c, 0x67, 0x2c, 0x70, 0x2c, 0x76, + 0x3d, 0x5b, 0x5d, 0x2c, 0x64, 0x3d, 0x5b, 0x5d, 0x2c, 0x6d, 0x3d, + 0x5b, 0x5d, 0x2c, 0x79, 0x3d, 0x2d, 0x31, 0x2c, 0x4d, 0x3d, 0x74, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x78, 0x3d, 0x45, + 0x74, 0x28, 0x65, 0x29, 0x2c, 0x62, 0x3d, 0x45, 0x74, 0x28, 0x75, + 0x29, 0x2c, 0x5f, 0x3d, 0x65, 0x3d, 0x3d, 0x3d, 0x72, 0x3f, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x67, 0x7d, 0x3a, 0x45, 0x74, + 0x28, 0x72, 0x29, 0x2c, 0x77, 0x3d, 0x75, 0x3d, 0x3d, 0x3d, 0x69, + 0x3f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x7d, 0x3a, + 0x45, 0x74, 0x28, 0x69, 0x29, 0x3b, 0x2b, 0x2b, 0x79, 0x3c, 0x4d, + 0x3b, 0x29, 0x6f, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x68, 0x3d, 0x74, 0x5b, 0x79, 0x5d, 0x2c, 0x79, + 0x29, 0x3f, 0x28, 0x64, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x5b, + 0x67, 0x3d, 0x2b, 0x78, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x68, 0x2c, 0x79, 0x29, 0x2c, 0x70, 0x3d, + 0x2b, 0x62, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x68, 0x2c, 0x79, 0x29, 0x5d, 0x29, 0x2c, 0x6d, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x5b, 0x2b, 0x5f, 0x2e, 0x63, 0x61, + 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x68, 0x2c, 0x79, + 0x29, 0x2c, 0x2b, 0x77, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x68, 0x2c, 0x79, 0x29, 0x5d, 0x29, 0x29, + 0x3a, 0x64, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x26, 0x26, + 0x28, 0x63, 0x28, 0x29, 0x2c, 0x64, 0x3d, 0x5b, 0x5d, 0x2c, 0x6d, + 0x3d, 0x5b, 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x64, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x26, 0x26, + 0x63, 0x28, 0x29, 0x2c, 0x76, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x76, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x22, + 0x29, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x3d, 0x41, 0x72, 0x2c, 0x72, 0x3d, 0x41, 0x72, 0x2c, 0x75, + 0x3d, 0x30, 0x2c, 0x69, 0x3d, 0x4e, 0x72, 0x2c, 0x6f, 0x3d, 0x4e, + 0x65, 0x2c, 0x61, 0x3d, 0x67, 0x6f, 0x2c, 0x63, 0x3d, 0x61, 0x2e, + 0x6b, 0x65, 0x79, 0x2c, 0x6c, 0x3d, 0x61, 0x2c, 0x73, 0x3d, 0x22, + 0x4c, 0x22, 0x2c, 0x66, 0x3d, 0x2e, 0x37, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x78, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x65, 0x3d, 0x72, 0x3d, 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x72, + 0x7d, 0x2c, 0x74, 0x2e, 0x78, 0x30, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x65, 0x3d, 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x65, 0x7d, 0x2c, 0x74, + 0x2e, 0x78, 0x31, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x72, 0x3d, 0x6e, + 0x2c, 0x74, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x74, 0x2e, 0x79, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x75, 0x3d, 0x69, 0x3d, 0x6e, 0x2c, 0x74, + 0x29, 0x3a, 0x69, 0x7d, 0x2c, 0x74, 0x2e, 0x79, 0x30, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x75, 0x3d, 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x75, + 0x7d, 0x2c, 0x74, 0x2e, 0x79, 0x31, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x69, 0x3d, 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x69, 0x7d, 0x2c, 0x74, + 0x2e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x6f, 0x3d, 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x6f, 0x7d, + 0x2c, 0x74, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, + 0x61, 0x74, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x63, 0x3d, 0x22, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, + 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x3f, 0x61, 0x3d, + 0x6e, 0x3a, 0x28, 0x61, 0x3d, 0x45, 0x6c, 0x2e, 0x67, 0x65, 0x74, + 0x28, 0x6e, 0x29, 0x7c, 0x7c, 0x67, 0x6f, 0x29, 0x2e, 0x6b, 0x65, + 0x79, 0x2c, 0x6c, 0x3d, 0x61, 0x2e, 0x72, 0x65, 0x76, 0x65, 0x72, + 0x73, 0x65, 0x7c, 0x7c, 0x61, 0x2c, 0x73, 0x3d, 0x61, 0x2e, 0x63, + 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x3f, 0x22, 0x4d, 0x22, 0x3a, 0x22, + 0x4c, 0x22, 0x2c, 0x74, 0x29, 0x3a, 0x63, 0x7d, 0x2c, 0x74, 0x2e, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x66, 0x3d, 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x66, 0x7d, 0x2c, + 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x50, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x55, 0x6f, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, + 0x6e, 0x2e, 0x78, 0x2c, 0x6e, 0x2e, 0x79, 0x5d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6a, 0x6f, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x29, 0x2c, 0x65, 0x3d, 0x74, 0x5b, 0x30, + 0x5d, 0x2c, 0x72, 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x2d, 0x52, 0x61, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x65, 0x2a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x72, 0x29, 0x2c, + 0x65, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, + 0x72, 0x29, 0x5d, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x46, 0x6f, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x36, 0x34, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x48, 0x6f, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x63, 0x69, 0x72, 0x63, 0x6c, + 0x65, 0x22, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x4f, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, + 0x28, 0x6e, 0x2f, 0x71, 0x61, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x22, 0x4d, 0x30, 0x2c, 0x22, 0x2b, 0x74, 0x2b, 0x22, + 0x41, 0x22, 0x2b, 0x74, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x74, 0x2b, + 0x22, 0x20, 0x30, 0x20, 0x31, 0x2c, 0x31, 0x20, 0x30, 0x2c, 0x22, + 0x2b, 0x2d, 0x74, 0x2b, 0x22, 0x41, 0x22, 0x2b, 0x74, 0x2b, 0x22, + 0x2c, 0x22, 0x2b, 0x74, 0x2b, 0x22, 0x20, 0x30, 0x20, 0x31, 0x2c, + 0x31, 0x20, 0x30, 0x2c, 0x22, 0x2b, 0x74, 0x2b, 0x22, 0x5a, 0x22, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x49, + 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x3b, 0x28, 0x74, + 0x3d, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x6e, 0x5d, 0x29, 0x26, 0x26, + 0x28, 0x65, 0x3d, 0x74, 0x5b, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5d, 0x29, 0x26, 0x26, 0x28, 0x2d, 0x2d, 0x74, 0x2e, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3f, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x20, 0x74, 0x5b, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5d, 0x3a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x5b, 0x6e, 0x5d, 0x2c, 0x74, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x2b, 0x3d, 0x2e, 0x35, 0x2c, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x26, 0x26, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, + 0x70, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x65, 0x2e, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x29, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x59, 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x79, 0x61, + 0x28, 0x6e, 0x2c, 0x50, 0x6c, 0x29, 0x2c, 0x6e, 0x2e, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3d, 0x74, 0x2c, 0x6e, + 0x2e, 0x69, 0x64, 0x3d, 0x65, 0x2c, 0x6e, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x5a, 0x6f, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x75, 0x3d, 0x6e, 0x2e, 0x69, 0x64, 0x2c, 0x69, 0x3d, 0x6e, 0x2e, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x59, 0x28, 0x6e, 0x2c, 0x22, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, + 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x65, 0x3f, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x6f, 0x2c, + 0x61, 0x29, 0x7b, 0x6e, 0x5b, 0x69, 0x5d, 0x5b, 0x75, 0x5d, 0x2e, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x2e, 0x73, 0x65, 0x74, 0x28, 0x74, + 0x2c, 0x72, 0x28, 0x65, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, + 0x2c, 0x6e, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, + 0x2c, 0x6f, 0x2c, 0x61, 0x29, 0x29, 0x29, 0x7d, 0x3a, 0x28, 0x65, + 0x3d, 0x72, 0x28, 0x65, 0x29, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x5b, 0x69, 0x5d, + 0x5b, 0x75, 0x5d, 0x2e, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x2e, 0x73, + 0x65, 0x74, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7d, 0x29, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x56, 0x6f, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x26, 0x26, 0x28, 0x6e, + 0x3d, 0x22, 0x22, 0x29, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, + 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, + 0x6e, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x58, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x3f, + 0x22, 0x5f, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x5f, 0x22, 0x3a, 0x22, 0x5f, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x22, 0x2b, + 0x6e, 0x2b, 0x22, 0x5f, 0x5f, 0x22, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x24, 0x6f, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x3d, 0x6e, 0x5b, 0x65, 0x5d, 0x7c, 0x7c, 0x28, 0x6e, + 0x5b, 0x65, 0x5d, 0x3d, 0x7b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x3a, 0x30, 0x2c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x30, 0x7d, + 0x29, 0x2c, 0x6f, 0x3d, 0x69, 0x5b, 0x72, 0x5d, 0x3b, 0x69, 0x66, + 0x28, 0x21, 0x6f, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, + 0x75, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x3b, 0x6f, 0x3d, 0x69, 0x5b, + 0x72, 0x5d, 0x3d, 0x7b, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x3a, 0x6e, + 0x65, 0x77, 0x20, 0x6c, 0x2c, 0x74, 0x69, 0x6d, 0x65, 0x3a, 0x61, + 0x2c, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x3a, 0x75, 0x2e, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x2c, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x75, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2c, 0x65, 0x61, 0x73, 0x65, 0x3a, 0x75, 0x2e, 0x65, 0x61, + 0x73, 0x65, 0x2c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x74, 0x7d, + 0x2c, 0x75, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x2b, 0x2b, 0x69, + 0x2e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2c, 0x74, 0x61, 0x2e, 0x74, + 0x69, 0x6d, 0x65, 0x72, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x75, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x28, 0x65, 0x29, 0x7b, 0x69, 0x66, + 0x28, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3e, 0x72, + 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x28, 0x29, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x69, 0x5b, 0x69, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5d, 0x3b, 0x75, 0x26, 0x26, + 0x28, 0x2d, 0x2d, 0x69, 0x2e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2c, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x69, 0x5b, 0x69, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5d, 0x2c, 0x75, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x26, 0x26, 0x75, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, + 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x6e, 0x2e, + 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x75, 0x2e, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x29, 0x2c, 0x69, 0x2e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x3d, 0x72, 0x2c, 0x6f, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x26, 0x26, 0x6f, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x2e, 0x63, 0x61, + 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x6e, 0x2e, 0x5f, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x74, 0x29, 0x2c, 0x6f, 0x2e, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x2e, 0x66, 0x6f, 0x72, 0x45, 0x61, 0x63, + 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x28, 0x72, 0x3d, 0x72, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x6e, 0x2e, 0x5f, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x74, 0x29, 0x29, 0x26, 0x26, + 0x76, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x29, 0x7d, 0x29, + 0x2c, 0x68, 0x3d, 0x6f, 0x2e, 0x65, 0x61, 0x73, 0x65, 0x2c, 0x66, + 0x3d, 0x6f, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x74, 0x61, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x28, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x2e, 0x63, 0x3d, 0x6c, + 0x28, 0x65, 0x7c, 0x7c, 0x31, 0x29, 0x3f, 0x4e, 0x65, 0x3a, 0x6c, + 0x2c, 0x31, 0x7d, 0x2c, 0x30, 0x2c, 0x61, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x28, 0x65, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x69, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x21, 0x3d, 0x3d, 0x72, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x31, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x75, 0x3d, 0x65, 0x2f, 0x66, 0x2c, 0x61, 0x3d, 0x68, 0x28, + 0x75, 0x29, 0x2c, 0x63, 0x3d, 0x76, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x63, 0x3e, 0x30, 0x3b, 0x29, 0x76, 0x5b, 0x2d, + 0x2d, 0x63, 0x5d, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, + 0x61, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, + 0x3e, 0x3d, 0x31, 0x3f, 0x28, 0x6f, 0x2e, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x26, 0x26, 0x6f, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x65, 0x6e, 0x64, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, + 0x6e, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, + 0x74, 0x29, 0x2c, 0x73, 0x28, 0x29, 0x29, 0x3a, 0x76, 0x6f, 0x69, + 0x64, 0x20, 0x30, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x73, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x2d, 0x2d, 0x69, 0x2e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3f, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x69, 0x5b, 0x72, 0x5d, + 0x3a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x6e, 0x5b, 0x65, + 0x5d, 0x2c, 0x31, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x66, 0x2c, 0x68, + 0x2c, 0x67, 0x3d, 0x6f, 0x2e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x2c, + 0x70, 0x3d, 0x65, 0x63, 0x2c, 0x76, 0x3d, 0x5b, 0x5d, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x70, 0x2e, 0x74, 0x3d, 0x67, + 0x2b, 0x61, 0x2c, 0x75, 0x3e, 0x3d, 0x67, 0x3f, 0x63, 0x28, 0x75, + 0x2d, 0x67, 0x29, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x70, 0x2e, + 0x63, 0x3d, 0x63, 0x29, 0x7d, 0x2c, 0x30, 0x2c, 0x61, 0x29, 0x7d, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x42, + 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x6e, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x74, 0x28, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, + 0x65, 0x28, 0x22, 0x2b, 0x28, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x69, + 0x74, 0x65, 0x28, 0x72, 0x29, 0x3f, 0x72, 0x3a, 0x65, 0x28, 0x6e, + 0x29, 0x29, 0x2b, 0x22, 0x2c, 0x30, 0x29, 0x22, 0x7d, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x57, 0x6f, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x6e, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, + 0x3d, 0x74, 0x28, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, + 0x28, 0x30, 0x2c, 0x22, 0x2b, 0x28, 0x69, 0x73, 0x46, 0x69, 0x6e, + 0x69, 0x74, 0x65, 0x28, 0x72, 0x29, 0x3f, 0x72, 0x3a, 0x65, 0x28, + 0x6e, 0x29, 0x29, 0x2b, 0x22, 0x29, 0x22, 0x7d, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x4a, 0x6f, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x74, 0x6f, 0x49, 0x53, 0x4f, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x47, 0x6f, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, + 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x28, 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x2d, 0x6e, + 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x3d, 0x72, 0x2f, 0x65, 0x2c, 0x69, + 0x3d, 0x74, 0x61, 0x2e, 0x62, 0x69, 0x73, 0x65, 0x63, 0x74, 0x28, + 0x56, 0x6c, 0x2c, 0x75, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x69, 0x3d, 0x3d, 0x56, 0x6c, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x5b, 0x74, 0x2e, 0x79, 0x65, 0x61, 0x72, + 0x2c, 0x56, 0x69, 0x28, 0x6e, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2f, 0x33, 0x31, + 0x35, 0x33, 0x36, 0x65, 0x36, 0x7d, 0x29, 0x2c, 0x65, 0x29, 0x5b, + 0x32, 0x5d, 0x5d, 0x3a, 0x69, 0x3f, 0x74, 0x5b, 0x75, 0x2f, 0x56, + 0x6c, 0x5b, 0x69, 0x2d, 0x31, 0x5d, 0x3c, 0x56, 0x6c, 0x5b, 0x69, + 0x5d, 0x2f, 0x75, 0x3f, 0x69, 0x2d, 0x31, 0x3a, 0x69, 0x5d, 0x3a, + 0x5b, 0x42, 0x6c, 0x2c, 0x56, 0x69, 0x28, 0x6e, 0x2c, 0x65, 0x29, + 0x5b, 0x32, 0x5d, 0x5d, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x72, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4b, 0x6f, 0x28, 0x6e, + 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x28, 0x74, 0x29, 0x29, + 0x7d, 0x2c, 0x72, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x6e, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x28, 0x74, 0x29, 0x2c, 0x72, 0x29, 0x3a, 0x6e, 0x2e, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x2e, 0x6d, 0x61, 0x70, + 0x28, 0x4b, 0x6f, 0x29, 0x7d, 0x2c, 0x72, 0x2e, 0x6e, 0x69, 0x63, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x21, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x65, + 0x29, 0x26, 0x26, 0x21, 0x6e, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x28, 0x65, 0x2c, 0x4b, 0x6f, 0x28, 0x2b, 0x65, 0x2b, 0x31, 0x29, + 0x2c, 0x74, 0x29, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x72, 0x2e, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x28, 0x29, 0x2c, 0x6f, 0x3d, 0x50, 0x69, 0x28, + 0x69, 0x29, 0x2c, 0x61, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, + 0x6e, 0x3f, 0x75, 0x28, 0x6f, 0x2c, 0x31, 0x30, 0x29, 0x3a, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3d, 0x3d, 0x74, 0x79, + 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x26, 0x26, 0x75, 0x28, 0x6f, + 0x2c, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x26, 0x26, 0x28, 0x6e, 0x3d, 0x61, 0x5b, 0x30, 0x5d, 0x2c, + 0x74, 0x3d, 0x61, 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x72, 0x2e, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x46, 0x69, 0x28, 0x69, 0x2c, + 0x74, 0x3e, 0x31, 0x3f, 0x7b, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x65, 0x28, 0x74, 0x3d, 0x6e, + 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x74, 0x29, 0x29, 0x3b, + 0x29, 0x74, 0x3d, 0x4b, 0x6f, 0x28, 0x74, 0x2d, 0x31, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x2c, 0x63, + 0x65, 0x69, 0x6c, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x65, + 0x28, 0x74, 0x3d, 0x6e, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x74, + 0x29, 0x29, 0x3b, 0x29, 0x74, 0x3d, 0x4b, 0x6f, 0x28, 0x2b, 0x74, + 0x2b, 0x31, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x7d, 0x7d, 0x3a, 0x6e, 0x29, 0x29, 0x7d, 0x2c, 0x72, 0x2e, + 0x74, 0x69, 0x63, 0x6b, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3d, 0x50, 0x69, 0x28, 0x72, 0x2e, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x29, 0x2c, 0x69, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x3f, 0x75, 0x28, 0x65, 0x2c, + 0x31, 0x30, 0x29, 0x3a, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, + 0x3f, 0x75, 0x28, 0x65, 0x2c, 0x6e, 0x29, 0x3a, 0x21, 0x6e, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x26, 0x26, 0x5b, 0x7b, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x3a, 0x6e, 0x7d, 0x2c, 0x74, 0x5d, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x26, 0x26, 0x28, 0x6e, + 0x3d, 0x69, 0x5b, 0x30, 0x5d, 0x2c, 0x74, 0x3d, 0x69, 0x5b, 0x31, + 0x5d, 0x29, 0x2c, 0x6e, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, + 0x65, 0x5b, 0x30, 0x5d, 0x2c, 0x4b, 0x6f, 0x28, 0x2b, 0x65, 0x5b, + 0x31, 0x5d, 0x2b, 0x31, 0x29, 0x2c, 0x31, 0x3e, 0x74, 0x3f, 0x31, + 0x3a, 0x74, 0x29, 0x7d, 0x2c, 0x72, 0x2e, 0x74, 0x69, 0x63, 0x6b, + 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x65, 0x7d, 0x2c, 0x72, 0x2e, 0x63, 0x6f, 0x70, + 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, 0x6f, + 0x28, 0x6e, 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x28, 0x29, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x7d, 0x2c, 0x59, 0x69, 0x28, 0x72, 0x2c, 0x6e, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x4b, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x28, + 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x51, 0x6f, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x70, 0x61, 0x72, + 0x73, 0x65, 0x28, 0x6e, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x54, 0x65, 0x78, 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x61, 0x28, 0x6e, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x75, 0x61, 0x2e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x28, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x28, + 0x75, 0x61, 0x2e, 0x62, 0x6f, 0x64, 0x79, 0x29, 0x2c, 0x74, 0x2e, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x28, 0x6e, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x54, 0x65, 0x78, 0x74, 0x29, 0x7d, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x61, 0x3d, 0x7b, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x3a, 0x22, 0x33, 0x2e, 0x35, 0x2e, 0x36, 0x22, 0x7d, 0x2c, + 0x65, 0x61, 0x3d, 0x5b, 0x5d, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, + 0x2c, 0x72, 0x61, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x65, 0x61, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x29, + 0x7d, 0x2c, 0x75, 0x61, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x3b, 0x69, 0x66, 0x28, + 0x75, 0x61, 0x29, 0x74, 0x72, 0x79, 0x7b, 0x72, 0x61, 0x28, 0x75, + 0x61, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x29, 0x5b, 0x30, 0x5d, 0x2e, + 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x7d, 0x63, 0x61, + 0x74, 0x63, 0x68, 0x28, 0x69, 0x61, 0x29, 0x7b, 0x72, 0x61, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, + 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x65, 0x3d, + 0x6e, 0x65, 0x77, 0x20, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x74, + 0x29, 0x3b, 0x74, 0x2d, 0x2d, 0x3b, 0x29, 0x65, 0x5b, 0x74, 0x5d, + 0x3d, 0x6e, 0x5b, 0x74, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x65, 0x7d, 0x7d, 0x69, 0x66, 0x28, 0x44, 0x61, 0x74, + 0x65, 0x2e, 0x6e, 0x6f, 0x77, 0x7c, 0x7c, 0x28, 0x44, 0x61, 0x74, + 0x65, 0x2e, 0x6e, 0x6f, 0x77, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x2b, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x7d, + 0x29, 0x2c, 0x75, 0x61, 0x29, 0x74, 0x72, 0x79, 0x7b, 0x75, 0x61, + 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x28, 0x22, 0x44, 0x49, 0x56, 0x22, 0x29, 0x2e, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x22, 0x6f, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x22, 0x2c, 0x30, 0x2c, 0x22, 0x22, 0x29, + 0x7d, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28, 0x6f, 0x61, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x61, 0x61, 0x3d, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x63, 0x61, 0x3d, + 0x61, 0x61, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x2c, 0x6c, 0x61, 0x3d, 0x61, 0x61, 0x2e, + 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x4e, 0x53, 0x2c, 0x73, 0x61, 0x3d, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x43, 0x53, 0x53, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x44, 0x65, + 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x66, 0x61, + 0x3d, 0x73, 0x61, 0x2e, 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x3b, 0x61, 0x61, 0x2e, 0x73, 0x65, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x63, 0x61, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x74, 0x2b, 0x22, 0x22, 0x29, + 0x7d, 0x2c, 0x61, 0x61, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x53, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x2c, + 0x65, 0x29, 0x7b, 0x6c, 0x61, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2b, + 0x22, 0x22, 0x29, 0x7d, 0x2c, 0x73, 0x61, 0x2e, 0x73, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x2c, + 0x65, 0x29, 0x7b, 0x66, 0x61, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x74, 0x2b, 0x22, 0x22, + 0x2c, 0x65, 0x29, 0x7d, 0x7d, 0x74, 0x61, 0x2e, 0x61, 0x73, 0x63, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x65, 0x2c, 0x74, 0x61, + 0x2e, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x3e, 0x74, 0x3f, 0x2d, 0x31, 0x3a, 0x74, 0x3e, 0x6e, 0x3f, + 0x31, 0x3a, 0x74, 0x3e, 0x3d, 0x6e, 0x3f, 0x30, 0x3a, 0x30, 0x2f, + 0x30, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x6d, 0x69, 0x6e, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x2c, 0x75, + 0x3d, 0x2d, 0x31, 0x2c, 0x69, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3b, 0x69, 0x66, 0x28, 0x31, 0x3d, 0x3d, 0x3d, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, + 0x3b, 0x2b, 0x2b, 0x75, 0x3c, 0x69, 0x3b, 0x29, 0x69, 0x66, 0x28, + 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x28, 0x72, 0x3d, 0x6e, 0x5b, + 0x75, 0x5d, 0x29, 0x26, 0x26, 0x72, 0x3e, 0x3d, 0x72, 0x29, 0x7b, + 0x65, 0x3d, 0x72, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x7d, 0x66, + 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x75, 0x3c, 0x69, 0x3b, 0x29, + 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x28, 0x72, 0x3d, 0x6e, 0x5b, + 0x75, 0x5d, 0x29, 0x26, 0x26, 0x65, 0x3e, 0x72, 0x26, 0x26, 0x28, + 0x65, 0x3d, 0x72, 0x29, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x75, 0x3c, 0x69, 0x3b, 0x29, + 0x69, 0x66, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x28, 0x72, + 0x3d, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x6e, + 0x5b, 0x75, 0x5d, 0x2c, 0x75, 0x29, 0x29, 0x26, 0x26, 0x72, 0x3e, + 0x3d, 0x72, 0x29, 0x7b, 0x65, 0x3d, 0x72, 0x3b, 0x62, 0x72, 0x65, + 0x61, 0x6b, 0x7d, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x75, + 0x3c, 0x69, 0x3b, 0x29, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x28, + 0x72, 0x3d, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, + 0x6e, 0x5b, 0x75, 0x5d, 0x2c, 0x75, 0x29, 0x29, 0x26, 0x26, 0x65, + 0x3e, 0x72, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x72, 0x29, 0x7d, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x6d, 0x61, 0x78, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x3d, 0x2d, 0x31, 0x2c, 0x69, + 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x69, + 0x66, 0x28, 0x31, 0x3d, 0x3d, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x75, 0x3c, + 0x69, 0x3b, 0x29, 0x69, 0x66, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x21, + 0x3d, 0x28, 0x72, 0x3d, 0x6e, 0x5b, 0x75, 0x5d, 0x29, 0x26, 0x26, + 0x72, 0x3e, 0x3d, 0x72, 0x29, 0x7b, 0x65, 0x3d, 0x72, 0x3b, 0x62, + 0x72, 0x65, 0x61, 0x6b, 0x7d, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, + 0x2b, 0x75, 0x3c, 0x69, 0x3b, 0x29, 0x6e, 0x75, 0x6c, 0x6c, 0x21, + 0x3d, 0x28, 0x72, 0x3d, 0x6e, 0x5b, 0x75, 0x5d, 0x29, 0x26, 0x26, + 0x72, 0x3e, 0x65, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x72, 0x29, 0x7d, + 0x65, 0x6c, 0x73, 0x65, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, + 0x2b, 0x75, 0x3c, 0x69, 0x3b, 0x29, 0x69, 0x66, 0x28, 0x6e, 0x75, + 0x6c, 0x6c, 0x21, 0x3d, 0x28, 0x72, 0x3d, 0x74, 0x2e, 0x63, 0x61, + 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x6e, 0x5b, 0x75, 0x5d, 0x2c, 0x75, + 0x29, 0x29, 0x26, 0x26, 0x72, 0x3e, 0x3d, 0x72, 0x29, 0x7b, 0x65, + 0x3d, 0x72, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x7d, 0x66, 0x6f, + 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x75, 0x3c, 0x69, 0x3b, 0x29, 0x6e, + 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x28, 0x72, 0x3d, 0x74, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x6e, 0x5b, 0x75, 0x5d, 0x2c, + 0x75, 0x29, 0x29, 0x26, 0x26, 0x72, 0x3e, 0x65, 0x26, 0x26, 0x28, + 0x65, 0x3d, 0x72, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x65, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, + 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x3d, 0x2d, 0x31, 0x2c, 0x6f, + 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x69, + 0x66, 0x28, 0x31, 0x3d, 0x3d, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x69, 0x3c, + 0x6f, 0x3b, 0x29, 0x69, 0x66, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x21, + 0x3d, 0x28, 0x72, 0x3d, 0x6e, 0x5b, 0x69, 0x5d, 0x29, 0x26, 0x26, + 0x72, 0x3e, 0x3d, 0x72, 0x29, 0x7b, 0x65, 0x3d, 0x75, 0x3d, 0x72, + 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x7d, 0x66, 0x6f, 0x72, 0x28, + 0x3b, 0x2b, 0x2b, 0x69, 0x3c, 0x6f, 0x3b, 0x29, 0x6e, 0x75, 0x6c, + 0x6c, 0x21, 0x3d, 0x28, 0x72, 0x3d, 0x6e, 0x5b, 0x69, 0x5d, 0x29, + 0x26, 0x26, 0x28, 0x65, 0x3e, 0x72, 0x26, 0x26, 0x28, 0x65, 0x3d, + 0x72, 0x29, 0x2c, 0x72, 0x3e, 0x75, 0x26, 0x26, 0x28, 0x75, 0x3d, + 0x72, 0x29, 0x29, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x7b, 0x66, 0x6f, + 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x69, 0x3c, 0x6f, 0x3b, 0x29, 0x69, + 0x66, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x28, 0x72, 0x3d, + 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x6e, 0x5b, + 0x69, 0x5d, 0x2c, 0x69, 0x29, 0x29, 0x26, 0x26, 0x72, 0x3e, 0x3d, + 0x72, 0x29, 0x7b, 0x65, 0x3d, 0x75, 0x3d, 0x72, 0x3b, 0x62, 0x72, + 0x65, 0x61, 0x6b, 0x7d, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, + 0x69, 0x3c, 0x6f, 0x3b, 0x29, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, + 0x28, 0x72, 0x3d, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, + 0x2c, 0x6e, 0x5b, 0x69, 0x5d, 0x2c, 0x69, 0x29, 0x29, 0x26, 0x26, + 0x28, 0x65, 0x3e, 0x72, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x72, 0x29, + 0x2c, 0x72, 0x3e, 0x75, 0x26, 0x26, 0x28, 0x75, 0x3d, 0x72, 0x29, + 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x65, 0x2c, + 0x75, 0x5d, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x73, 0x75, 0x6d, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x3d, + 0x30, 0x2c, 0x69, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x6f, 0x3d, 0x2d, 0x31, 0x3b, 0x69, 0x66, 0x28, 0x31, + 0x3d, 0x3d, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x66, 0x6f, + 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x6f, 0x3c, 0x69, 0x3b, 0x29, 0x75, + 0x28, 0x65, 0x3d, 0x2b, 0x6e, 0x5b, 0x6f, 0x5d, 0x29, 0x26, 0x26, + 0x28, 0x72, 0x2b, 0x3d, 0x65, 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x6f, 0x3c, 0x69, + 0x3b, 0x29, 0x75, 0x28, 0x65, 0x3d, 0x2b, 0x74, 0x2e, 0x63, 0x61, + 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x6e, 0x5b, 0x6f, 0x5d, 0x2c, 0x6f, + 0x29, 0x29, 0x26, 0x26, 0x28, 0x72, 0x2b, 0x3d, 0x65, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x7d, 0x2c, 0x74, + 0x61, 0x2e, 0x6d, 0x65, 0x61, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x2c, 0x69, 0x3d, 0x30, 0x2c, 0x6f, 0x3d, + 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x61, 0x3d, + 0x2d, 0x31, 0x2c, 0x63, 0x3d, 0x6f, 0x3b, 0x69, 0x66, 0x28, 0x31, + 0x3d, 0x3d, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x66, 0x6f, + 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x61, 0x3c, 0x6f, 0x3b, 0x29, 0x75, + 0x28, 0x65, 0x3d, 0x72, 0x28, 0x6e, 0x5b, 0x61, 0x5d, 0x29, 0x29, + 0x3f, 0x69, 0x2b, 0x3d, 0x65, 0x3a, 0x2d, 0x2d, 0x63, 0x3b, 0x65, + 0x6c, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, + 0x61, 0x3c, 0x6f, 0x3b, 0x29, 0x75, 0x28, 0x65, 0x3d, 0x72, 0x28, + 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x6e, 0x5b, + 0x61, 0x5d, 0x2c, 0x61, 0x29, 0x29, 0x29, 0x3f, 0x69, 0x2b, 0x3d, + 0x65, 0x3a, 0x2d, 0x2d, 0x63, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x63, 0x3f, 0x69, 0x2f, 0x63, 0x3a, 0x76, 0x6f, 0x69, + 0x64, 0x20, 0x30, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3d, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2d, 0x31, 0x29, 0x2a, 0x74, 0x2b, 0x31, 0x2c, 0x72, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, + 0x28, 0x65, 0x29, 0x2c, 0x75, 0x3d, 0x2b, 0x6e, 0x5b, 0x72, 0x2d, + 0x31, 0x5d, 0x2c, 0x69, 0x3d, 0x65, 0x2d, 0x72, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x3f, 0x75, 0x2b, 0x69, 0x2a, + 0x28, 0x6e, 0x5b, 0x72, 0x5d, 0x2d, 0x75, 0x29, 0x3a, 0x75, 0x7d, + 0x2c, 0x74, 0x61, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x2c, 0x6f, 0x3d, + 0x5b, 0x5d, 0x2c, 0x61, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2c, 0x63, 0x3d, 0x2d, 0x31, 0x3b, 0x69, 0x66, 0x28, + 0x31, 0x3d, 0x3d, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x66, + 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x63, 0x3c, 0x61, 0x3b, 0x29, + 0x75, 0x28, 0x69, 0x3d, 0x72, 0x28, 0x6e, 0x5b, 0x63, 0x5d, 0x29, + 0x29, 0x26, 0x26, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x69, + 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x28, + 0x3b, 0x2b, 0x2b, 0x63, 0x3c, 0x61, 0x3b, 0x29, 0x75, 0x28, 0x69, + 0x3d, 0x72, 0x28, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, + 0x2c, 0x6e, 0x5b, 0x63, 0x5d, 0x2c, 0x63, 0x29, 0x29, 0x29, 0x26, + 0x26, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x69, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x74, 0x61, 0x2e, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x28, 0x6f, 0x2e, 0x73, 0x6f, 0x72, + 0x74, 0x28, 0x65, 0x29, 0x2c, 0x2e, 0x35, 0x29, 0x3a, 0x76, 0x6f, + 0x69, 0x64, 0x20, 0x30, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x2c, 0x69, 0x2c, 0x6f, 0x3d, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x61, 0x3d, 0x30, 0x2c, + 0x63, 0x3d, 0x30, 0x2c, 0x6c, 0x3d, 0x2d, 0x31, 0x2c, 0x73, 0x3d, + 0x30, 0x3b, 0x69, 0x66, 0x28, 0x31, 0x3d, 0x3d, 0x3d, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, + 0x6c, 0x3c, 0x6f, 0x3b, 0x29, 0x75, 0x28, 0x65, 0x3d, 0x72, 0x28, + 0x6e, 0x5b, 0x6c, 0x5d, 0x29, 0x29, 0x26, 0x26, 0x28, 0x69, 0x3d, + 0x65, 0x2d, 0x61, 0x2c, 0x61, 0x2b, 0x3d, 0x69, 0x2f, 0x2b, 0x2b, + 0x73, 0x2c, 0x63, 0x2b, 0x3d, 0x69, 0x2a, 0x28, 0x65, 0x2d, 0x61, + 0x29, 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x28, 0x3b, 0x2b, 0x2b, 0x6c, 0x3c, 0x6f, 0x3b, 0x29, 0x75, 0x28, + 0x65, 0x3d, 0x72, 0x28, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x6e, 0x2c, 0x6e, 0x5b, 0x6c, 0x5d, 0x2c, 0x6c, 0x29, 0x29, 0x29, + 0x26, 0x26, 0x28, 0x69, 0x3d, 0x65, 0x2d, 0x61, 0x2c, 0x61, 0x2b, + 0x3d, 0x69, 0x2f, 0x2b, 0x2b, 0x73, 0x2c, 0x63, 0x2b, 0x3d, 0x69, + 0x2a, 0x28, 0x65, 0x2d, 0x61, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x73, 0x3e, 0x31, 0x3f, 0x63, 0x2f, 0x28, + 0x73, 0x2d, 0x31, 0x29, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x30, + 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x74, + 0x61, 0x2e, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3f, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x6e, 0x29, 0x3a, + 0x6e, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x68, 0x61, 0x3d, 0x69, + 0x28, 0x65, 0x29, 0x3b, 0x74, 0x61, 0x2e, 0x62, 0x69, 0x73, 0x65, + 0x63, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x3d, 0x68, 0x61, 0x2e, 0x6c, + 0x65, 0x66, 0x74, 0x2c, 0x74, 0x61, 0x2e, 0x62, 0x69, 0x73, 0x65, + 0x63, 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x62, 0x69, 0x73, 0x65, 0x63, + 0x74, 0x52, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x68, 0x61, 0x2e, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x2c, 0x74, 0x61, 0x2e, 0x62, 0x69, 0x73, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x28, 0x31, 0x3d, 0x3d, 0x3d, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x72, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x28, 0x74, + 0x29, 0x2c, 0x72, 0x29, 0x7d, 0x3a, 0x6e, 0x29, 0x7d, 0x2c, 0x74, + 0x61, 0x2e, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x7b, 0x28, 0x69, 0x3d, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x3c, 0x33, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x32, 0x3e, 0x69, 0x26, + 0x26, 0x28, 0x74, 0x3d, 0x30, 0x29, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x3d, + 0x65, 0x2d, 0x74, 0x3b, 0x69, 0x3b, 0x29, 0x75, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x28, 0x29, + 0x2a, 0x69, 0x2d, 0x2d, 0x7c, 0x30, 0x2c, 0x72, 0x3d, 0x6e, 0x5b, + 0x69, 0x2b, 0x74, 0x5d, 0x2c, 0x6e, 0x5b, 0x69, 0x2b, 0x74, 0x5d, + 0x3d, 0x6e, 0x5b, 0x75, 0x2b, 0x74, 0x5d, 0x2c, 0x6e, 0x5b, 0x75, + 0x2b, 0x74, 0x5d, 0x3d, 0x72, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x70, 0x65, 0x72, + 0x6d, 0x75, 0x74, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x74, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x72, 0x3d, 0x6e, 0x65, 0x77, 0x20, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x65, 0x29, 0x3b, 0x65, 0x2d, + 0x2d, 0x3b, 0x29, 0x72, 0x5b, 0x65, 0x5d, 0x3d, 0x6e, 0x5b, 0x74, + 0x5b, 0x65, 0x5d, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x72, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x70, 0x61, 0x69, 0x72, + 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x2c, 0x65, 0x3d, 0x30, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x2c, 0x75, 0x3d, 0x6e, + 0x5b, 0x30, 0x5d, 0x2c, 0x69, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x28, 0x30, 0x3e, 0x72, 0x3f, 0x30, 0x3a, + 0x72, 0x29, 0x3b, 0x72, 0x3e, 0x65, 0x3b, 0x29, 0x69, 0x5b, 0x65, + 0x5d, 0x3d, 0x5b, 0x74, 0x3d, 0x75, 0x2c, 0x75, 0x3d, 0x6e, 0x5b, + 0x2b, 0x2b, 0x65, 0x5d, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x69, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x7a, 0x69, 0x70, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x21, 0x28, 0x72, 0x3d, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, + 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6e, + 0x3d, 0x2d, 0x31, 0x2c, 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x6d, 0x69, + 0x6e, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2c, 0x6f, 0x29, 0x2c, 0x65, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x28, 0x74, 0x29, 0x3b, 0x2b, 0x2b, 0x6e, + 0x3c, 0x74, 0x3b, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x72, 0x2c, 0x75, 0x3d, 0x2d, 0x31, 0x2c, 0x69, 0x3d, 0x65, + 0x5b, 0x6e, 0x5d, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x28, 0x72, 0x29, 0x3b, 0x2b, 0x2b, 0x75, 0x3c, 0x72, + 0x3b, 0x29, 0x69, 0x5b, 0x75, 0x5d, 0x3d, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5b, 0x75, 0x5d, 0x5b, 0x6e, 0x5d, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x7d, 0x2c, + 0x74, 0x61, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x73, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x61, 0x2e, 0x7a, 0x69, 0x70, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x28, 0x74, 0x61, 0x2c, 0x6e, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, + 0x6b, 0x65, 0x79, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x3d, 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x29, 0x74, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x65, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x3d, 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x29, 0x74, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x6e, 0x5b, 0x65, 0x5d, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x3d, 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x6e, + 0x29, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x7b, 0x6b, 0x65, + 0x79, 0x3a, 0x65, 0x2c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x6e, + 0x5b, 0x65, 0x5d, 0x7d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x6d, 0x65, 0x72, + 0x67, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x69, 0x3d, 0x2d, 0x31, + 0x2c, 0x6f, 0x3d, 0x30, 0x3b, 0x2b, 0x2b, 0x69, 0x3c, 0x75, 0x3b, + 0x29, 0x6f, 0x2b, 0x3d, 0x6e, 0x5b, 0x69, 0x5d, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x3d, + 0x6e, 0x65, 0x77, 0x20, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x6f, + 0x29, 0x3b, 0x2d, 0x2d, 0x75, 0x3e, 0x3d, 0x30, 0x3b, 0x29, 0x66, + 0x6f, 0x72, 0x28, 0x72, 0x3d, 0x6e, 0x5b, 0x75, 0x5d, 0x2c, 0x74, + 0x3d, 0x72, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2d, + 0x2d, 0x74, 0x3e, 0x3d, 0x30, 0x3b, 0x29, 0x65, 0x5b, 0x2d, 0x2d, + 0x6f, 0x5d, 0x3d, 0x72, 0x5b, 0x74, 0x5d, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x65, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x67, 0x61, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x62, 0x73, + 0x3b, 0x74, 0x61, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3c, 0x33, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x31, 0x2c, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x26, 0x26, 0x28, 0x74, 0x3d, + 0x6e, 0x2c, 0x6e, 0x3d, 0x30, 0x29, 0x29, 0x2c, 0x28, 0x74, 0x2d, + 0x6e, 0x29, 0x2f, 0x65, 0x3d, 0x3d, 0x3d, 0x31, 0x2f, 0x30, 0x29, + 0x74, 0x68, 0x72, 0x6f, 0x77, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x69, 0x6e, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x65, 0x20, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x29, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, 0x3d, 0x5b, 0x5d, + 0x2c, 0x69, 0x3d, 0x61, 0x28, 0x67, 0x61, 0x28, 0x65, 0x29, 0x29, + 0x2c, 0x6f, 0x3d, 0x2d, 0x31, 0x3b, 0x69, 0x66, 0x28, 0x6e, 0x2a, + 0x3d, 0x69, 0x2c, 0x74, 0x2a, 0x3d, 0x69, 0x2c, 0x65, 0x2a, 0x3d, + 0x69, 0x2c, 0x30, 0x3e, 0x65, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x3b, + 0x28, 0x72, 0x3d, 0x6e, 0x2b, 0x65, 0x2a, 0x2b, 0x2b, 0x6f, 0x29, + 0x3e, 0x74, 0x3b, 0x29, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x72, 0x2f, 0x69, 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x28, 0x3b, 0x28, 0x72, 0x3d, 0x6e, 0x2b, 0x65, 0x2a, + 0x2b, 0x2b, 0x6f, 0x29, 0x3c, 0x74, 0x3b, 0x29, 0x75, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x72, 0x2f, 0x69, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x7d, 0x2c, 0x74, 0x61, 0x2e, + 0x6d, 0x61, 0x70, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x6c, 0x3b, 0x69, 0x66, 0x28, + 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x6f, + 0x66, 0x20, 0x6c, 0x29, 0x6e, 0x2e, 0x66, 0x6f, 0x72, 0x45, 0x61, + 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x65, 0x2e, 0x73, 0x65, 0x74, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7d, 0x29, 0x3b, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x69, 0x66, 0x28, 0x41, 0x72, 0x72, 0x61, 0x79, 0x2e, + 0x69, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x6e, 0x29, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, 0x3d, 0x2d, 0x31, + 0x2c, 0x69, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x69, 0x66, 0x28, 0x31, 0x3d, 0x3d, 0x3d, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x75, + 0x3c, 0x69, 0x3b, 0x29, 0x65, 0x2e, 0x73, 0x65, 0x74, 0x28, 0x75, + 0x2c, 0x6e, 0x5b, 0x75, 0x5d, 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x75, 0x3c, 0x69, + 0x3b, 0x29, 0x65, 0x2e, 0x73, 0x65, 0x74, 0x28, 0x74, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x72, 0x3d, 0x6e, 0x5b, 0x75, + 0x5d, 0x2c, 0x75, 0x29, 0x2c, 0x72, 0x29, 0x7d, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6f, + 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x29, 0x65, 0x2e, 0x73, 0x65, 0x74, + 0x28, 0x6f, 0x2c, 0x6e, 0x5b, 0x6f, 0x5d, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x7d, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x70, 0x61, 0x3d, 0x22, 0x5f, 0x5f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x5f, 0x5f, 0x22, 0x2c, 0x76, 0x61, 0x3d, 0x22, 0x5c, 0x78, + 0x30, 0x30, 0x22, 0x3b, 0x63, 0x28, 0x6c, 0x2c, 0x7b, 0x68, 0x61, + 0x73, 0x3a, 0x68, 0x2c, 0x67, 0x65, 0x74, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, + 0x5b, 0x73, 0x28, 0x6e, 0x29, 0x5d, 0x7d, 0x2c, 0x73, 0x65, 0x74, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x5b, 0x73, 0x28, 0x6e, 0x29, + 0x5d, 0x3d, 0x74, 0x7d, 0x2c, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x3a, 0x67, 0x2c, 0x6b, 0x65, 0x79, 0x73, 0x3a, 0x70, 0x2c, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, + 0x3d, 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x5f, 0x29, 0x6e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x5f, 0x5b, 0x74, 0x5d, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x7d, 0x2c, 0x65, 0x6e, 0x74, + 0x72, 0x69, 0x65, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, + 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, + 0x29, 0x6e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x7b, 0x6b, 0x65, + 0x79, 0x3a, 0x66, 0x28, 0x74, 0x29, 0x2c, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x5b, 0x74, 0x5d, + 0x7d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x7d, 0x2c, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x76, 0x2c, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x3a, 0x64, 0x2c, 0x66, 0x6f, 0x72, 0x45, 0x61, + 0x63, 0x68, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x5f, 0x29, 0x6e, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x66, 0x28, 0x74, 0x29, 0x2c, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x5f, 0x5b, 0x74, 0x5d, 0x29, 0x7d, 0x7d, 0x29, 0x2c, + 0x74, 0x61, 0x2e, 0x6e, 0x65, 0x73, 0x74, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x74, 0x2c, 0x6f, + 0x2c, 0x61, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x61, 0x3e, 0x3d, 0x69, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3f, 0x72, 0x2e, 0x63, 0x61, 0x6c, + 0x6c, 0x28, 0x75, 0x2c, 0x6f, 0x29, 0x3a, 0x65, 0x3f, 0x6f, 0x2e, + 0x73, 0x6f, 0x72, 0x74, 0x28, 0x65, 0x29, 0x3a, 0x6f, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x63, 0x2c, 0x73, 0x2c, + 0x66, 0x2c, 0x68, 0x2c, 0x67, 0x3d, 0x2d, 0x31, 0x2c, 0x70, 0x3d, + 0x6f, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x76, 0x3d, + 0x69, 0x5b, 0x61, 0x2b, 0x2b, 0x5d, 0x2c, 0x64, 0x3d, 0x6e, 0x65, + 0x77, 0x20, 0x6c, 0x3b, 0x2b, 0x2b, 0x67, 0x3c, 0x70, 0x3b, 0x29, + 0x28, 0x68, 0x3d, 0x64, 0x2e, 0x67, 0x65, 0x74, 0x28, 0x63, 0x3d, + 0x76, 0x28, 0x73, 0x3d, 0x6f, 0x5b, 0x67, 0x5d, 0x29, 0x29, 0x29, + 0x3f, 0x68, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x73, 0x29, 0x3a, + 0x64, 0x2e, 0x73, 0x65, 0x74, 0x28, 0x63, 0x2c, 0x5b, 0x73, 0x5d, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x3f, + 0x28, 0x73, 0x3d, 0x74, 0x28, 0x29, 0x2c, 0x66, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x2c, 0x72, 0x29, + 0x7b, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x28, 0x65, 0x2c, 0x6e, 0x28, + 0x74, 0x2c, 0x72, 0x2c, 0x61, 0x29, 0x29, 0x7d, 0x29, 0x3a, 0x28, + 0x73, 0x3d, 0x7b, 0x7d, 0x2c, 0x66, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x73, + 0x5b, 0x65, 0x5d, 0x3d, 0x6e, 0x28, 0x74, 0x2c, 0x72, 0x2c, 0x61, + 0x29, 0x7d, 0x29, 0x2c, 0x64, 0x2e, 0x66, 0x6f, 0x72, 0x45, 0x61, + 0x63, 0x68, 0x28, 0x66, 0x29, 0x2c, 0x73, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x2c, 0x65, + 0x29, 0x7b, 0x69, 0x66, 0x28, 0x65, 0x3e, 0x3d, 0x69, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x5b, + 0x5d, 0x2c, 0x75, 0x3d, 0x6f, 0x5b, 0x65, 0x2b, 0x2b, 0x5d, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x66, 0x6f, + 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x75, 0x29, 0x7b, 0x72, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x7b, 0x6b, 0x65, 0x79, 0x3a, 0x6e, + 0x2c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x3a, 0x74, 0x28, 0x75, + 0x2c, 0x65, 0x29, 0x7d, 0x29, 0x7d, 0x29, 0x2c, 0x75, 0x3f, 0x72, + 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x28, 0x6e, 0x2e, 0x6b, 0x65, + 0x79, 0x2c, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x29, 0x7d, 0x29, 0x3a, + 0x72, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x2c, 0x75, + 0x3d, 0x7b, 0x7d, 0x2c, 0x69, 0x3d, 0x5b, 0x5d, 0x2c, 0x6f, 0x3d, + 0x5b, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, + 0x2e, 0x6d, 0x61, 0x70, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x28, 0x65, 0x2c, 0x74, 0x2c, 0x30, + 0x29, 0x7d, 0x2c, 0x75, 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x28, 0x6e, 0x28, 0x74, 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x2c, 0x65, + 0x2c, 0x30, 0x29, 0x2c, 0x30, 0x29, 0x7d, 0x2c, 0x75, 0x2e, 0x6b, + 0x65, 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x69, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, 0x29, 0x2c, 0x75, + 0x7d, 0x2c, 0x75, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x4b, 0x65, 0x79, + 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, + 0x5b, 0x69, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, + 0x5d, 0x3d, 0x6e, 0x2c, 0x75, 0x7d, 0x2c, 0x75, 0x2e, 0x73, 0x6f, + 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3d, 0x6e, 0x2c, 0x75, + 0x7d, 0x2c, 0x75, 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3d, 0x6e, + 0x2c, 0x75, 0x7d, 0x2c, 0x75, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x73, + 0x65, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, + 0x65, 0x77, 0x20, 0x6d, 0x3b, 0x69, 0x66, 0x28, 0x6e, 0x29, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x30, 0x2c, + 0x72, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, + 0x72, 0x3e, 0x65, 0x3b, 0x2b, 0x2b, 0x65, 0x29, 0x74, 0x2e, 0x61, + 0x64, 0x64, 0x28, 0x6e, 0x5b, 0x65, 0x5d, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x2c, 0x63, 0x28, 0x6d, + 0x2c, 0x7b, 0x68, 0x61, 0x73, 0x3a, 0x68, 0x2c, 0x61, 0x64, 0x64, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x5f, 0x5b, 0x73, 0x28, 0x6e, 0x2b, 0x3d, 0x22, + 0x22, 0x29, 0x5d, 0x3d, 0x21, 0x30, 0x2c, 0x6e, 0x7d, 0x2c, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x3a, 0x67, 0x2c, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x3a, 0x70, 0x2c, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x76, 0x2c, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x64, 0x2c, 0x66, + 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x29, 0x6e, 0x2e, 0x63, 0x61, 0x6c, + 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x66, 0x28, 0x74, 0x29, + 0x29, 0x7d, 0x7d, 0x29, 0x2c, 0x74, 0x61, 0x2e, 0x62, 0x65, 0x68, + 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3d, 0x7b, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, + 0x3d, 0x31, 0x2c, 0x75, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, + 0x2b, 0x2b, 0x72, 0x3c, 0x75, 0x3b, 0x29, 0x6e, 0x5b, 0x65, 0x3d, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5b, 0x72, + 0x5d, 0x5d, 0x3d, 0x4d, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x74, 0x5b, + 0x65, 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x64, 0x61, 0x3d, 0x5b, + 0x22, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x22, 0x2c, 0x22, 0x6d, + 0x73, 0x22, 0x2c, 0x22, 0x6d, 0x6f, 0x7a, 0x22, 0x2c, 0x22, 0x4d, + 0x6f, 0x7a, 0x22, 0x2c, 0x22, 0x6f, 0x22, 0x2c, 0x22, 0x4f, 0x22, + 0x5d, 0x3b, 0x74, 0x61, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, + 0x63, 0x68, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x6e, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x5f, 0x2c, 0x74, 0x3d, 0x2d, + 0x31, 0x2c, 0x65, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, + 0x2b, 0x74, 0x3c, 0x65, 0x3b, 0x29, 0x6e, 0x5b, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5b, 0x74, 0x5d, 0x5d, 0x3d, + 0x77, 0x28, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x7d, 0x2c, 0x5f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x2e, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x4f, 0x66, 0x28, 0x22, 0x2e, 0x22, 0x29, 0x2c, 0x72, + 0x3d, 0x22, 0x22, 0x3b, 0x69, 0x66, 0x28, 0x65, 0x3e, 0x3d, 0x30, + 0x26, 0x26, 0x28, 0x72, 0x3d, 0x6e, 0x2e, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x28, 0x65, 0x2b, 0x31, 0x29, 0x2c, 0x6e, 0x3d, 0x6e, 0x2e, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x30, 0x2c, 0x65, 0x29, 0x29, + 0x2c, 0x6e, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x3f, 0x74, 0x68, 0x69, 0x73, + 0x5b, 0x6e, 0x5d, 0x2e, 0x6f, 0x6e, 0x28, 0x72, 0x29, 0x3a, 0x74, + 0x68, 0x69, 0x73, 0x5b, 0x6e, 0x5d, 0x2e, 0x6f, 0x6e, 0x28, 0x72, + 0x2c, 0x74, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x32, 0x3d, 0x3d, 0x3d, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x6e, + 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x74, 0x29, 0x66, 0x6f, 0x72, 0x28, + 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x29, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x68, 0x61, 0x73, 0x4f, 0x77, 0x6e, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x6e, 0x29, 0x26, + 0x26, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x6e, 0x5d, 0x2e, 0x6f, 0x6e, + 0x28, 0x72, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x7d, 0x7d, + 0x2c, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x74, 0x61, 0x2e, 0x72, 0x65, 0x71, 0x75, + 0x6f, 0x74, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, + 0x6d, 0x61, 0x2c, 0x22, 0x5c, 0x5c, 0x24, 0x26, 0x22, 0x29, 0x7d, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6d, 0x61, 0x3d, 0x2f, 0x5b, 0x5c, + 0x5c, 0x5c, 0x5e, 0x5c, 0x24, 0x5c, 0x2a, 0x5c, 0x2b, 0x5c, 0x3f, + 0x5c, 0x7c, 0x5c, 0x5b, 0x5c, 0x5d, 0x5c, 0x28, 0x5c, 0x29, 0x5c, + 0x2e, 0x5c, 0x7b, 0x5c, 0x7d, 0x5d, 0x2f, 0x67, 0x2c, 0x79, 0x61, + 0x3d, 0x7b, 0x7d, 0x2e, 0x5f, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x5f, 0x5f, 0x3f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x2e, 0x5f, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x5f, 0x3d, 0x74, 0x7d, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x29, 0x6e, 0x5b, 0x65, 0x5d, 0x3d, + 0x74, 0x5b, 0x65, 0x5d, 0x7d, 0x2c, 0x4d, 0x61, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x28, 0x6e, 0x29, 0x7d, 0x2c, 0x78, 0x61, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x41, 0x6c, 0x6c, 0x28, 0x6e, 0x29, 0x7d, 0x2c, 0x62, 0x61, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, + 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x7c, 0x7c, 0x6e, + 0x5b, 0x78, 0x28, 0x6e, 0x2c, 0x22, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, + 0x29, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x62, + 0x61, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x65, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7d, 0x29, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7d, 0x3b, 0x22, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, + 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x53, 0x69, 0x7a, 0x7a, + 0x6c, 0x65, 0x26, 0x26, 0x28, 0x4d, 0x61, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x69, 0x7a, 0x7a, + 0x6c, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x5b, 0x30, 0x5d, 0x7c, + 0x7c, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x2c, 0x78, 0x61, 0x3d, 0x53, + 0x69, 0x7a, 0x7a, 0x6c, 0x65, 0x2c, 0x62, 0x61, 0x3d, 0x53, 0x69, + 0x7a, 0x7a, 0x6c, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x29, 0x2c, + 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x75, 0x61, 0x2e, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x5f, 0x61, 0x3d, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, + 0x79, 0x70, 0x65, 0x3d, 0x5b, 0x5d, 0x3b, 0x5f, 0x61, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x3d, 0x5b, + 0x5d, 0x3b, 0x6e, 0x3d, 0x4e, 0x28, 0x6e, 0x29, 0x3b, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x2d, 0x31, 0x2c, + 0x61, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x6f, 0x3c, 0x61, 0x3b, 0x29, 0x7b, + 0x69, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x3d, 0x5b, 0x5d, + 0x29, 0x2c, 0x74, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x3d, 0x28, 0x72, 0x3d, 0x74, 0x68, 0x69, 0x73, + 0x5b, 0x6f, 0x5d, 0x29, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x4e, 0x6f, 0x64, 0x65, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x63, 0x3d, 0x2d, 0x31, 0x2c, 0x6c, 0x3d, 0x72, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x63, 0x3c, + 0x6c, 0x3b, 0x29, 0x28, 0x75, 0x3d, 0x72, 0x5b, 0x63, 0x5d, 0x29, + 0x3f, 0x28, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x65, 0x3d, + 0x6e, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x75, 0x2c, 0x75, 0x2e, + 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x63, 0x2c, + 0x6f, 0x29, 0x29, 0x2c, 0x65, 0x26, 0x26, 0x22, 0x5f, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x22, 0x69, 0x6e, 0x20, 0x75, 0x26, + 0x26, 0x28, 0x65, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x5f, 0x3d, 0x75, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x5f, 0x29, 0x29, 0x3a, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x41, 0x28, 0x69, 0x29, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x3d, 0x5b, + 0x5d, 0x3b, 0x6e, 0x3d, 0x43, 0x28, 0x6e, 0x29, 0x3b, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x2d, 0x31, 0x2c, + 0x69, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x75, 0x3c, 0x69, 0x3b, 0x29, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x5b, 0x75, 0x5d, 0x2c, 0x61, 0x3d, 0x2d, 0x31, 0x2c, + 0x63, 0x3d, 0x6f, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, + 0x2b, 0x2b, 0x61, 0x3c, 0x63, 0x3b, 0x29, 0x28, 0x65, 0x3d, 0x6f, + 0x5b, 0x61, 0x5d, 0x29, 0x26, 0x26, 0x28, 0x72, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x74, 0x3d, 0x72, 0x61, 0x28, 0x6e, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x65, 0x2c, 0x65, 0x2e, 0x5f, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x61, 0x2c, 0x75, 0x29, 0x29, + 0x29, 0x2c, 0x74, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x3d, 0x65, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x41, 0x28, 0x72, 0x29, 0x7d, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x77, 0x61, 0x3d, 0x7b, 0x73, 0x76, 0x67, 0x3a, 0x22, + 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, + 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x32, 0x30, 0x30, 0x30, + 0x2f, 0x73, 0x76, 0x67, 0x22, 0x2c, 0x78, 0x68, 0x74, 0x6d, 0x6c, + 0x3a, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, + 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x31, 0x39, + 0x39, 0x39, 0x2f, 0x78, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x2c, 0x78, + 0x6c, 0x69, 0x6e, 0x6b, 0x3a, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x31, 0x39, 0x39, 0x39, 0x2f, 0x78, 0x6c, 0x69, 0x6e, + 0x6b, 0x22, 0x2c, 0x78, 0x6d, 0x6c, 0x3a, 0x22, 0x68, 0x74, 0x74, + 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, + 0x6f, 0x72, 0x67, 0x2f, 0x58, 0x4d, 0x4c, 0x2f, 0x31, 0x39, 0x39, + 0x38, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x22, 0x2c, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x3a, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, + 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x32, 0x30, 0x30, 0x30, 0x2f, 0x78, + 0x6d, 0x6c, 0x6e, 0x73, 0x2f, 0x22, 0x7d, 0x3b, 0x74, 0x61, 0x2e, + 0x6e, 0x73, 0x3d, 0x7b, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x3a, + 0x77, 0x61, 0x2c, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x79, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x4f, 0x66, 0x28, 0x22, 0x3a, 0x22, 0x29, 0x2c, + 0x65, 0x3d, 0x6e, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x3e, 0x3d, 0x30, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x6e, 0x2e, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x30, 0x2c, 0x74, 0x29, 0x2c, + 0x6e, 0x3d, 0x6e, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x74, + 0x2b, 0x31, 0x29, 0x29, 0x2c, 0x77, 0x61, 0x2e, 0x68, 0x61, 0x73, + 0x4f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x28, 0x65, 0x29, 0x3f, 0x7b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, + 0x77, 0x61, 0x5b, 0x65, 0x5d, 0x2c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x3a, 0x6e, 0x7d, 0x3a, 0x6e, 0x7d, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, + 0x61, 0x74, 0x74, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x69, 0x66, 0x28, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x29, 0x7b, 0x69, 0x66, + 0x28, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3d, 0x3d, + 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, + 0x6f, 0x64, 0x65, 0x28, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x3d, 0x74, 0x61, 0x2e, 0x6e, 0x73, 0x2e, 0x71, + 0x75, 0x61, 0x6c, 0x69, 0x66, 0x79, 0x28, 0x6e, 0x29, 0x2c, 0x6e, + 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x3f, 0x65, 0x2e, 0x67, 0x65, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, + 0x53, 0x28, 0x6e, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, 0x6e, + 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x29, 0x3a, 0x65, 0x2e, 0x67, + 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x28, 0x6e, 0x29, 0x7d, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x20, 0x69, + 0x6e, 0x20, 0x6e, 0x29, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x61, + 0x63, 0x68, 0x28, 0x7a, 0x28, 0x74, 0x2c, 0x6e, 0x5b, 0x74, 0x5d, + 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, 0x7a, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x29, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x64, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x69, 0x66, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x28, 0x29, 0x2c, 0x72, 0x3d, + 0x28, 0x6e, 0x3d, 0x54, 0x28, 0x6e, 0x29, 0x29, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x75, 0x3d, 0x2d, 0x31, 0x3b, 0x69, + 0x66, 0x28, 0x74, 0x3d, 0x65, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x3b, + 0x2b, 0x2b, 0x75, 0x3c, 0x72, 0x3b, 0x29, 0x69, 0x66, 0x28, 0x21, + 0x74, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x28, + 0x6e, 0x5b, 0x75, 0x5d, 0x29, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x21, 0x31, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x28, 0x74, 0x3d, 0x65, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x22, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x22, 0x29, 0x3b, 0x2b, 0x2b, 0x75, 0x3c, 0x72, + 0x3b, 0x29, 0x69, 0x66, 0x28, 0x21, 0x4c, 0x28, 0x6e, 0x5b, 0x75, + 0x5d, 0x29, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x28, 0x74, 0x29, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, 0x31, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x21, 0x30, 0x7d, 0x66, 0x6f, 0x72, 0x28, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x29, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, 0x52, 0x28, 0x74, 0x2c, 0x6e, + 0x5b, 0x74, 0x5d, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x7d, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x61, 0x63, + 0x68, 0x28, 0x52, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x29, 0x7d, 0x2c, + 0x5f, 0x61, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x2c, + 0x72, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3b, 0x69, 0x66, 0x28, 0x33, 0x3e, 0x75, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x22, 0x21, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, + 0x29, 0x7b, 0x32, 0x3e, 0x75, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x22, + 0x22, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x72, 0x20, 0x69, 0x6e, + 0x20, 0x6e, 0x29, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x61, 0x63, + 0x68, 0x28, 0x50, 0x28, 0x72, 0x2c, 0x6e, 0x5b, 0x72, 0x5d, 0x2c, + 0x65, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x7d, 0x69, 0x66, 0x28, 0x32, 0x3e, 0x75, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x28, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x28, 0x69, 0x29, 0x2e, 0x67, + 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x53, + 0x74, 0x79, 0x6c, 0x65, 0x28, 0x69, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, + 0x29, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, 0x6e, 0x29, 0x7d, + 0x72, 0x3d, 0x22, 0x22, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, + 0x50, 0x28, 0x6e, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x29, 0x7d, 0x2c, + 0x5f, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3c, 0x32, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x22, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, + 0x6f, 0x66, 0x20, 0x6e, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x28, + 0x29, 0x5b, 0x6e, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x20, + 0x69, 0x6e, 0x20, 0x6e, 0x29, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, + 0x61, 0x63, 0x68, 0x28, 0x55, 0x28, 0x74, 0x2c, 0x6e, 0x5b, 0x74, + 0x5d, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, + 0x55, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x29, 0x7d, 0x2c, 0x5f, 0x61, + 0x2e, 0x74, 0x65, 0x78, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, 0x22, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, + 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x3f, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3d, 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x74, 0x3f, 0x22, 0x22, 0x3a, 0x74, + 0x7d, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x3f, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x22, 0x7d, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x3d, 0x6e, 0x7d, 0x29, 0x3a, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x28, 0x29, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x7d, 0x2c, + 0x5f, 0x61, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, 0x22, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, + 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x3f, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x74, 0x3f, 0x22, 0x22, 0x3a, 0x74, + 0x7d, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x3f, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, + 0x4d, 0x4c, 0x3d, 0x22, 0x22, 0x7d, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, + 0x6e, 0x7d, 0x29, 0x3a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x6f, + 0x64, 0x65, 0x28, 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, + 0x54, 0x4d, 0x4c, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, 0x61, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x3d, 0x6a, 0x28, 0x6e, 0x29, 0x2c, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, + 0x70, 0x70, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x28, + 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x29, 0x7d, 0x29, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3d, 0x6a, 0x28, 0x6e, 0x29, 0x2c, + 0x74, 0x3d, 0x4e, 0x28, 0x74, 0x29, 0x2c, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x28, + 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x2c, 0x74, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x29, 0x7c, 0x7c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x7d, + 0x29, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, 0x46, 0x29, 0x7d, + 0x2c, 0x5f, 0x61, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, + 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x66, 0x3d, 0x65, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x68, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x6f, 0x2c, 0x66, 0x29, 0x2c, 0x67, + 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, + 0x66, 0x29, 0x2c, 0x70, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x28, 0x66, 0x29, 0x2c, 0x76, 0x3d, 0x6e, 0x65, + 0x77, 0x20, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x6f, 0x29, 0x3b, + 0x69, 0x66, 0x28, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x64, + 0x2c, 0x6d, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x6c, 0x2c, 0x79, 0x3d, + 0x6e, 0x65, 0x77, 0x20, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x6f, + 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x72, 0x3d, 0x2d, 0x31, 0x3b, + 0x2b, 0x2b, 0x72, 0x3c, 0x6f, 0x3b, 0x29, 0x6d, 0x2e, 0x68, 0x61, + 0x73, 0x28, 0x64, 0x3d, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x75, 0x3d, 0x6e, 0x5b, 0x72, 0x5d, 0x2c, 0x75, 0x2e, 0x5f, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x72, 0x29, 0x29, 0x3f, + 0x76, 0x5b, 0x72, 0x5d, 0x3d, 0x75, 0x3a, 0x6d, 0x2e, 0x73, 0x65, + 0x74, 0x28, 0x64, 0x2c, 0x75, 0x29, 0x2c, 0x79, 0x5b, 0x72, 0x5d, + 0x3d, 0x64, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x72, 0x3d, 0x2d, 0x31, + 0x3b, 0x2b, 0x2b, 0x72, 0x3c, 0x66, 0x3b, 0x29, 0x28, 0x75, 0x3d, + 0x6d, 0x2e, 0x67, 0x65, 0x74, 0x28, 0x64, 0x3d, 0x74, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x65, 0x2c, 0x69, 0x3d, 0x65, 0x5b, 0x72, + 0x5d, 0x2c, 0x72, 0x29, 0x29, 0x29, 0x3f, 0x75, 0x21, 0x3d, 0x3d, + 0x21, 0x30, 0x26, 0x26, 0x28, 0x67, 0x5b, 0x72, 0x5d, 0x3d, 0x75, + 0x2c, 0x75, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, + 0x3d, 0x69, 0x29, 0x3a, 0x70, 0x5b, 0x72, 0x5d, 0x3d, 0x48, 0x28, + 0x69, 0x29, 0x2c, 0x6d, 0x2e, 0x73, 0x65, 0x74, 0x28, 0x64, 0x2c, + 0x21, 0x30, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x72, 0x3d, 0x2d, + 0x31, 0x3b, 0x2b, 0x2b, 0x72, 0x3c, 0x6f, 0x3b, 0x29, 0x6d, 0x2e, + 0x67, 0x65, 0x74, 0x28, 0x79, 0x5b, 0x72, 0x5d, 0x29, 0x21, 0x3d, + 0x3d, 0x21, 0x30, 0x26, 0x26, 0x28, 0x76, 0x5b, 0x72, 0x5d, 0x3d, + 0x6e, 0x5b, 0x72, 0x5d, 0x29, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x7b, + 0x66, 0x6f, 0x72, 0x28, 0x72, 0x3d, 0x2d, 0x31, 0x3b, 0x2b, 0x2b, + 0x72, 0x3c, 0x68, 0x3b, 0x29, 0x75, 0x3d, 0x6e, 0x5b, 0x72, 0x5d, + 0x2c, 0x69, 0x3d, 0x65, 0x5b, 0x72, 0x5d, 0x2c, 0x75, 0x3f, 0x28, + 0x75, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x3d, + 0x69, 0x2c, 0x67, 0x5b, 0x72, 0x5d, 0x3d, 0x75, 0x29, 0x3a, 0x70, + 0x5b, 0x72, 0x5d, 0x3d, 0x48, 0x28, 0x69, 0x29, 0x3b, 0x66, 0x6f, + 0x72, 0x28, 0x3b, 0x66, 0x3e, 0x72, 0x3b, 0x2b, 0x2b, 0x72, 0x29, + 0x70, 0x5b, 0x72, 0x5d, 0x3d, 0x48, 0x28, 0x65, 0x5b, 0x72, 0x5d, + 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x6f, 0x3e, 0x72, 0x3b, + 0x2b, 0x2b, 0x72, 0x29, 0x76, 0x5b, 0x72, 0x5d, 0x3d, 0x6e, 0x5b, + 0x72, 0x5d, 0x7d, 0x70, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x3d, 0x67, 0x2c, 0x70, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x4e, 0x6f, 0x64, 0x65, 0x3d, 0x67, 0x2e, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x3d, 0x76, 0x2e, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x3d, 0x6e, 0x2e, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x2c, + 0x61, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x70, 0x29, 0x2c, 0x63, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x67, 0x29, 0x2c, 0x73, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x76, 0x29, 0x7d, 0x76, 0x61, 0x72, + 0x20, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x3d, 0x2d, 0x31, 0x2c, 0x6f, + 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x69, 0x66, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x6e, 0x3d, 0x6e, 0x65, 0x77, + 0x20, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x6f, 0x3d, 0x28, 0x72, + 0x3d, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x30, 0x5d, 0x29, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3b, 0x2b, 0x2b, 0x69, 0x3c, + 0x6f, 0x3b, 0x29, 0x28, 0x75, 0x3d, 0x72, 0x5b, 0x69, 0x5d, 0x29, + 0x26, 0x26, 0x28, 0x6e, 0x5b, 0x69, 0x5d, 0x3d, 0x75, 0x2e, 0x5f, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x61, 0x3d, 0x5a, 0x28, 0x5b, 0x5d, 0x29, 0x2c, 0x63, 0x3d, 0x41, + 0x28, 0x5b, 0x5d, 0x29, 0x2c, 0x73, 0x3d, 0x41, 0x28, 0x5b, 0x5d, + 0x29, 0x3b, 0x69, 0x66, 0x28, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, + 0x66, 0x20, 0x6e, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, + 0x69, 0x3c, 0x6f, 0x3b, 0x29, 0x65, 0x28, 0x72, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x5b, 0x69, 0x5d, 0x2c, 0x6e, 0x2e, 0x63, 0x61, 0x6c, + 0x6c, 0x28, 0x72, 0x2c, 0x72, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x5f, 0x2c, 0x69, 0x29, 0x29, 0x3b, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x69, 0x3c, + 0x6f, 0x3b, 0x29, 0x65, 0x28, 0x72, 0x3d, 0x74, 0x68, 0x69, 0x73, + 0x5b, 0x69, 0x5d, 0x2c, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x63, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x7d, 0x2c, 0x63, + 0x2e, 0x65, 0x78, 0x69, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x73, 0x7d, 0x2c, 0x63, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, + 0x64, 0x61, 0x74, 0x75, 0x6d, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x28, 0x22, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x22, + 0x2c, 0x6e, 0x29, 0x3a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x22, 0x5f, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x22, 0x29, 0x7d, 0x2c, 0x5f, 0x61, + 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x3d, 0x5b, + 0x5d, 0x3b, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x21, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, + 0x26, 0x26, 0x28, 0x6e, 0x3d, 0x4f, 0x28, 0x6e, 0x29, 0x29, 0x3b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x30, + 0x2c, 0x6f, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3b, 0x6f, 0x3e, 0x69, 0x3b, 0x69, 0x2b, 0x2b, + 0x29, 0x7b, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x3d, + 0x5b, 0x5d, 0x29, 0x2c, 0x74, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x3d, 0x28, 0x65, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x5b, 0x69, 0x5d, 0x29, 0x2e, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x3b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, 0x30, 0x2c, 0x63, 0x3d, 0x65, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x63, 0x3e, 0x61, + 0x3b, 0x61, 0x2b, 0x2b, 0x29, 0x28, 0x72, 0x3d, 0x65, 0x5b, 0x61, + 0x5d, 0x29, 0x26, 0x26, 0x6e, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x72, 0x2c, 0x72, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x5f, 0x2c, 0x61, 0x2c, 0x69, 0x29, 0x26, 0x26, 0x74, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x72, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x41, 0x28, 0x75, 0x29, 0x7d, 0x2c, 0x5f, 0x61, + 0x2e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x2d, 0x31, 0x2c, 0x74, 0x3d, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x2b, 0x2b, 0x6e, 0x3c, 0x74, 0x3b, 0x29, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x5b, 0x6e, 0x5d, 0x2c, 0x75, 0x3d, 0x72, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x2c, 0x69, 0x3d, 0x72, + 0x5b, 0x75, 0x5d, 0x3b, 0x2d, 0x2d, 0x75, 0x3e, 0x3d, 0x30, 0x3b, + 0x29, 0x28, 0x65, 0x3d, 0x72, 0x5b, 0x75, 0x5d, 0x29, 0x26, 0x26, + 0x28, 0x69, 0x26, 0x26, 0x69, 0x21, 0x3d, 0x3d, 0x65, 0x2e, 0x6e, + 0x65, 0x78, 0x74, 0x53, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x26, + 0x26, 0x69, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, + 0x64, 0x65, 0x2e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x28, 0x65, 0x2c, 0x69, 0x29, 0x2c, 0x69, + 0x3d, 0x65, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, 0x73, 0x6f, + 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x3d, 0x49, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x2d, 0x31, 0x2c, 0x65, + 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x2b, 0x2b, 0x74, 0x3c, 0x65, 0x3b, 0x29, 0x74, 0x68, + 0x69, 0x73, 0x5b, 0x74, 0x5d, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x28, + 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x28, 0x29, + 0x7d, 0x2c, 0x5f, 0x61, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x59, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x6e, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x2c, 0x74, 0x2e, 0x5f, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7d, + 0x29, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x72, 0x61, 0x28, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x28, 0x74, 0x5b, 0x30, 0x5d, 0x3d, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x74, 0x29, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x7d, 0x2c, + 0x5f, 0x61, 0x2e, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x21, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, + 0x6f, 0x64, 0x65, 0x28, 0x29, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, 0x6e, + 0x6f, 0x64, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x6e, 0x3d, 0x30, 0x2c, 0x74, 0x3d, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x74, 0x3e, 0x6e, + 0x3b, 0x6e, 0x2b, 0x2b, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x6e, 0x5d, + 0x2c, 0x72, 0x3d, 0x30, 0x2c, 0x75, 0x3d, 0x65, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x75, 0x3e, 0x72, 0x3b, 0x72, 0x2b, + 0x2b, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x65, 0x5b, + 0x72, 0x5d, 0x3b, 0x69, 0x66, 0x28, 0x69, 0x29, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x69, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, + 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, + 0x30, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x59, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x2b, 0x2b, 0x6e, 0x7d, 0x29, 0x2c, + 0x6e, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x53, 0x61, 0x3d, 0x5b, + 0x5d, 0x3b, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3d, 0x5a, + 0x2c, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x53, 0x61, 0x2c, + 0x53, 0x61, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x3d, 0x5f, + 0x61, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x2c, 0x53, 0x61, + 0x2e, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3d, 0x5f, 0x61, 0x2e, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x53, 0x61, 0x2e, 0x6e, 0x6f, 0x64, + 0x65, 0x3d, 0x5f, 0x61, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x2c, 0x53, + 0x61, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x3d, 0x5f, 0x61, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x2c, 0x53, 0x61, 0x2e, 0x73, 0x69, 0x7a, 0x65, + 0x3d, 0x5f, 0x61, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x53, 0x61, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, + 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x3d, 0x5b, 0x5d, 0x2c, 0x61, + 0x3d, 0x2d, 0x31, 0x2c, 0x63, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x61, 0x3c, + 0x63, 0x3b, 0x29, 0x7b, 0x72, 0x3d, 0x28, 0x75, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x5b, 0x61, 0x5d, 0x29, 0x2e, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x2c, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, + 0x3d, 0x5b, 0x5d, 0x29, 0x2c, 0x74, 0x2e, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x3d, 0x75, 0x2e, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x3b, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x2d, 0x31, 0x2c, + 0x73, 0x3d, 0x75, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, + 0x2b, 0x2b, 0x6c, 0x3c, 0x73, 0x3b, 0x29, 0x28, 0x69, 0x3d, 0x75, + 0x5b, 0x6c, 0x5d, 0x29, 0x3f, 0x28, 0x74, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x72, 0x5b, 0x6c, 0x5d, 0x3d, 0x65, 0x3d, 0x6e, 0x2e, + 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x75, 0x2e, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x2c, 0x69, 0x2e, 0x5f, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x6c, 0x2c, 0x61, 0x29, + 0x29, 0x2c, 0x65, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x5f, 0x3d, 0x69, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x5f, 0x29, 0x3a, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, + 0x75, 0x6c, 0x6c, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x41, 0x28, 0x6f, 0x29, 0x7d, 0x2c, 0x53, 0x61, 0x2e, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, + 0x32, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x56, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x29, 0x29, 0x2c, 0x5f, 0x61, 0x2e, 0x69, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x6e, 0x2c, 0x74, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x65, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, + 0x65, 0x6f, 0x66, 0x20, 0x74, 0x3f, 0x28, 0x65, 0x3d, 0x5b, 0x4d, + 0x61, 0x28, 0x74, 0x2c, 0x75, 0x61, 0x29, 0x5d, 0x2c, 0x65, 0x2e, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x3d, + 0x75, 0x61, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x29, 0x3a, 0x28, 0x65, + 0x3d, 0x5b, 0x74, 0x5d, 0x2c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x3d, 0x6e, 0x28, 0x74, 0x29, + 0x29, 0x2c, 0x41, 0x28, 0x5b, 0x65, 0x5d, 0x29, 0x7d, 0x2c, 0x74, + 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, + 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x3f, + 0x28, 0x74, 0x3d, 0x72, 0x61, 0x28, 0x78, 0x61, 0x28, 0x6e, 0x2c, + 0x75, 0x61, 0x29, 0x29, 0x2c, 0x74, 0x2e, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x3d, 0x75, 0x61, 0x2e, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x29, 0x3a, 0x28, 0x74, 0x3d, 0x6e, 0x2c, 0x74, + 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, + 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2c, 0x41, 0x28, 0x5b, 0x74, + 0x5d, 0x29, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, 0x6f, 0x6e, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x69, 0x66, 0x28, 0x33, 0x3e, 0x72, + 0x29, 0x7b, 0x69, 0x66, 0x28, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x22, 0x21, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x6e, 0x29, 0x7b, 0x32, 0x3e, 0x72, 0x26, 0x26, 0x28, 0x74, 0x3d, + 0x21, 0x31, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x6e, 0x29, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x61, + 0x63, 0x68, 0x28, 0x58, 0x28, 0x65, 0x2c, 0x6e, 0x5b, 0x65, 0x5d, + 0x2c, 0x74, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x7d, 0x69, 0x66, 0x28, 0x32, 0x3e, + 0x72, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x72, 0x3d, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x28, 0x29, + 0x5b, 0x22, 0x5f, 0x5f, 0x6f, 0x6e, 0x22, 0x2b, 0x6e, 0x5d, 0x29, + 0x26, 0x26, 0x72, 0x2e, 0x5f, 0x3b, 0x65, 0x3d, 0x21, 0x31, 0x7d, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, 0x58, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x29, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6b, + 0x61, 0x3d, 0x74, 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x7b, 0x6d, + 0x6f, 0x75, 0x73, 0x65, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3a, 0x22, + 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x22, 0x2c, + 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x3a, + 0x22, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x7d, + 0x29, 0x3b, 0x75, 0x61, 0x26, 0x26, 0x6b, 0x61, 0x2e, 0x66, 0x6f, + 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x22, 0x6f, 0x6e, 0x22, + 0x2b, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x75, 0x61, 0x26, 0x26, 0x6b, + 0x61, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x6e, 0x29, + 0x7d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x45, 0x61, 0x2c, 0x41, + 0x61, 0x3d, 0x30, 0x3b, 0x74, 0x61, 0x2e, 0x6d, 0x6f, 0x75, 0x73, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4a, + 0x28, 0x6e, 0x2c, 0x6b, 0x28, 0x29, 0x29, 0x7d, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x4e, 0x61, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, + 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x26, 0x26, 0x2f, + 0x57, 0x65, 0x62, 0x4b, 0x69, 0x74, 0x2f, 0x2e, 0x74, 0x65, 0x73, + 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x61, 0x76, 0x69, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x29, 0x3f, 0x2d, 0x31, 0x3a, 0x30, 0x3b, + 0x74, 0x61, 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x2c, + 0x65, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3c, 0x33, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x74, 0x2c, 0x74, 0x3d, + 0x6b, 0x28, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x73, 0x29, 0x2c, 0x74, 0x29, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, + 0x3d, 0x30, 0x2c, 0x69, 0x3d, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x69, 0x3e, 0x75, 0x3b, 0x2b, 0x2b, 0x75, 0x29, + 0x69, 0x66, 0x28, 0x28, 0x72, 0x3d, 0x74, 0x5b, 0x75, 0x5d, 0x29, + 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x3d, 0x3d, 0x3d, 0x65, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x4a, 0x28, 0x6e, 0x2c, 0x72, 0x29, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x64, + 0x72, 0x61, 0x67, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x6f, 0x6e, 0x28, 0x22, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, + 0x77, 0x6e, 0x2e, 0x64, 0x72, 0x61, 0x67, 0x22, 0x2c, 0x69, 0x29, + 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x2e, 0x64, 0x72, 0x61, 0x67, 0x22, 0x2c, + 0x6f, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x69, 0x2c, + 0x6f, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x28, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x2c, 0x65, 0x2c, 0x72, 0x3d, + 0x74, 0x28, 0x68, 0x2c, 0x76, 0x29, 0x3b, 0x72, 0x26, 0x26, 0x28, + 0x6e, 0x3d, 0x72, 0x5b, 0x30, 0x5d, 0x2d, 0x4d, 0x5b, 0x30, 0x5d, + 0x2c, 0x65, 0x3d, 0x72, 0x5b, 0x31, 0x5d, 0x2d, 0x4d, 0x5b, 0x31, + 0x5d, 0x2c, 0x70, 0x7c, 0x3d, 0x6e, 0x7c, 0x65, 0x2c, 0x4d, 0x3d, + 0x72, 0x2c, 0x67, 0x28, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x22, + 0x64, 0x72, 0x61, 0x67, 0x22, 0x2c, 0x78, 0x3a, 0x72, 0x5b, 0x30, + 0x5d, 0x2b, 0x6c, 0x5b, 0x30, 0x5d, 0x2c, 0x79, 0x3a, 0x72, 0x5b, + 0x31, 0x5d, 0x2b, 0x6c, 0x5b, 0x31, 0x5d, 0x2c, 0x64, 0x78, 0x3a, + 0x6e, 0x2c, 0x64, 0x79, 0x3a, 0x65, 0x7d, 0x29, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x28, 0x29, + 0x7b, 0x74, 0x28, 0x68, 0x2c, 0x76, 0x29, 0x26, 0x26, 0x28, 0x6d, + 0x2e, 0x6f, 0x6e, 0x28, 0x69, 0x2b, 0x64, 0x2c, 0x6e, 0x75, 0x6c, + 0x6c, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x6f, 0x2b, 0x64, 0x2c, 0x6e, + 0x75, 0x6c, 0x6c, 0x29, 0x2c, 0x79, 0x28, 0x70, 0x26, 0x26, 0x74, + 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x3d, 0x3d, 0x3d, 0x66, 0x29, 0x2c, 0x67, 0x28, + 0x7b, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x22, 0x64, 0x72, 0x61, 0x67, + 0x65, 0x6e, 0x64, 0x22, 0x7d, 0x29, 0x29, 0x7d, 0x76, 0x61, 0x72, + 0x20, 0x6c, 0x2c, 0x73, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x66, + 0x3d, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x68, 0x3d, 0x73, 0x2e, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x2c, 0x67, + 0x3d, 0x72, 0x2e, 0x6f, 0x66, 0x28, 0x73, 0x2c, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x2c, 0x70, 0x3d, 0x30, + 0x2c, 0x76, 0x3d, 0x6e, 0x28, 0x29, 0x2c, 0x64, 0x3d, 0x22, 0x2e, + 0x64, 0x72, 0x61, 0x67, 0x22, 0x2b, 0x28, 0x6e, 0x75, 0x6c, 0x6c, + 0x3d, 0x3d, 0x76, 0x3f, 0x22, 0x22, 0x3a, 0x22, 0x2d, 0x22, 0x2b, + 0x76, 0x29, 0x2c, 0x6d, 0x3d, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x28, 0x65, 0x28, 0x66, 0x29, 0x29, 0x2e, 0x6f, + 0x6e, 0x28, 0x69, 0x2b, 0x64, 0x2c, 0x61, 0x29, 0x2e, 0x6f, 0x6e, + 0x28, 0x6f, 0x2b, 0x64, 0x2c, 0x63, 0x29, 0x2c, 0x79, 0x3d, 0x57, + 0x28, 0x66, 0x29, 0x2c, 0x4d, 0x3d, 0x74, 0x28, 0x68, 0x2c, 0x76, + 0x29, 0x3b, 0x75, 0x3f, 0x28, 0x6c, 0x3d, 0x75, 0x2e, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x28, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x29, 0x2c, 0x6c, 0x3d, 0x5b, 0x6c, 0x2e, + 0x78, 0x2d, 0x4d, 0x5b, 0x30, 0x5d, 0x2c, 0x6c, 0x2e, 0x79, 0x2d, + 0x4d, 0x5b, 0x31, 0x5d, 0x5d, 0x29, 0x3a, 0x6c, 0x3d, 0x5b, 0x30, + 0x2c, 0x30, 0x5d, 0x2c, 0x67, 0x28, 0x7b, 0x74, 0x79, 0x70, 0x65, + 0x3a, 0x22, 0x64, 0x72, 0x61, 0x67, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x22, 0x7d, 0x29, 0x7d, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, + 0x45, 0x28, 0x6e, 0x2c, 0x22, 0x64, 0x72, 0x61, 0x67, 0x22, 0x2c, + 0x22, 0x64, 0x72, 0x61, 0x67, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, + 0x2c, 0x22, 0x64, 0x72, 0x61, 0x67, 0x65, 0x6e, 0x64, 0x22, 0x29, + 0x2c, 0x75, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x69, 0x3d, 0x65, + 0x28, 0x62, 0x2c, 0x74, 0x61, 0x2e, 0x6d, 0x6f, 0x75, 0x73, 0x65, + 0x2c, 0x74, 0x2c, 0x22, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x22, 0x2c, 0x22, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x75, + 0x70, 0x22, 0x29, 0x2c, 0x6f, 0x3d, 0x65, 0x28, 0x47, 0x2c, 0x74, + 0x61, 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x2c, 0x79, 0x2c, 0x22, + 0x74, 0x6f, 0x75, 0x63, 0x68, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x2c, + 0x22, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x6e, 0x64, 0x22, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x75, + 0x3d, 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x75, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x6e, 0x2c, 0x72, + 0x2c, 0x22, 0x6f, 0x6e, 0x22, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, + 0x74, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x73, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3c, 0x32, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x6b, 0x28, 0x29, + 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x73, 0x29, 0x2c, 0x74, + 0x3f, 0x72, 0x61, 0x28, 0x74, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x28, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x4a, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, + 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x3d, 0x74, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x2c, 0x65, 0x7d, 0x29, 0x3a, 0x5b, 0x5d, 0x7d, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x43, 0x61, 0x3d, 0x31, 0x65, 0x2d, 0x36, + 0x2c, 0x7a, 0x61, 0x3d, 0x43, 0x61, 0x2a, 0x43, 0x61, 0x2c, 0x71, + 0x61, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x50, 0x49, 0x2c, 0x4c, + 0x61, 0x3d, 0x32, 0x2a, 0x71, 0x61, 0x2c, 0x54, 0x61, 0x3d, 0x4c, + 0x61, 0x2d, 0x43, 0x61, 0x2c, 0x52, 0x61, 0x3d, 0x71, 0x61, 0x2f, + 0x32, 0x2c, 0x44, 0x61, 0x3d, 0x71, 0x61, 0x2f, 0x31, 0x38, 0x30, + 0x2c, 0x50, 0x61, 0x3d, 0x31, 0x38, 0x30, 0x2f, 0x71, 0x61, 0x2c, + 0x55, 0x61, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x53, 0x51, 0x52, + 0x54, 0x32, 0x2c, 0x6a, 0x61, 0x3d, 0x32, 0x2c, 0x46, 0x61, 0x3d, + 0x34, 0x3b, 0x74, 0x61, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x5a, 0x6f, 0x6f, 0x6d, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x65, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, + 0x6e, 0x2a, 0x79, 0x3b, 0x69, 0x66, 0x28, 0x6d, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x3d, 0x72, 0x74, 0x28, 0x76, 0x29, 0x2c, + 0x6f, 0x3d, 0x69, 0x2f, 0x28, 0x6a, 0x61, 0x2a, 0x68, 0x29, 0x2a, + 0x28, 0x65, 0x2a, 0x75, 0x74, 0x28, 0x55, 0x61, 0x2a, 0x74, 0x2b, + 0x76, 0x29, 0x2d, 0x65, 0x74, 0x28, 0x76, 0x29, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x72, 0x2b, 0x6f, 0x2a, 0x6c, + 0x2c, 0x75, 0x2b, 0x6f, 0x2a, 0x73, 0x2c, 0x69, 0x2a, 0x65, 0x2f, + 0x72, 0x74, 0x28, 0x55, 0x61, 0x2a, 0x74, 0x2b, 0x76, 0x29, 0x5d, + 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x72, 0x2b, 0x6e, + 0x2a, 0x6c, 0x2c, 0x75, 0x2b, 0x6e, 0x2a, 0x73, 0x2c, 0x69, 0x2a, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x65, 0x78, 0x70, 0x28, 0x55, 0x61, + 0x2a, 0x74, 0x29, 0x5d, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, + 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, + 0x2c, 0x69, 0x3d, 0x6e, 0x5b, 0x32, 0x5d, 0x2c, 0x6f, 0x3d, 0x74, + 0x5b, 0x30, 0x5d, 0x2c, 0x61, 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x2c, + 0x63, 0x3d, 0x74, 0x5b, 0x32, 0x5d, 0x2c, 0x6c, 0x3d, 0x6f, 0x2d, + 0x72, 0x2c, 0x73, 0x3d, 0x61, 0x2d, 0x75, 0x2c, 0x66, 0x3d, 0x6c, + 0x2a, 0x6c, 0x2b, 0x73, 0x2a, 0x73, 0x2c, 0x68, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x66, 0x29, 0x2c, + 0x67, 0x3d, 0x28, 0x63, 0x2a, 0x63, 0x2d, 0x69, 0x2a, 0x69, 0x2b, + 0x46, 0x61, 0x2a, 0x66, 0x29, 0x2f, 0x28, 0x32, 0x2a, 0x69, 0x2a, + 0x6a, 0x61, 0x2a, 0x68, 0x29, 0x2c, 0x70, 0x3d, 0x28, 0x63, 0x2a, + 0x63, 0x2d, 0x69, 0x2a, 0x69, 0x2d, 0x46, 0x61, 0x2a, 0x66, 0x29, + 0x2f, 0x28, 0x32, 0x2a, 0x63, 0x2a, 0x6a, 0x61, 0x2a, 0x68, 0x29, + 0x2c, 0x76, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, + 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, + 0x67, 0x2a, 0x67, 0x2b, 0x31, 0x29, 0x2d, 0x67, 0x29, 0x2c, 0x64, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x70, 0x2a, + 0x70, 0x2b, 0x31, 0x29, 0x2d, 0x70, 0x29, 0x2c, 0x6d, 0x3d, 0x64, + 0x2d, 0x76, 0x2c, 0x79, 0x3d, 0x28, 0x6d, 0x7c, 0x7c, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x63, 0x2f, 0x69, 0x29, + 0x29, 0x2f, 0x55, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x65, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x3d, 0x31, 0x65, 0x33, 0x2a, 0x79, 0x2c, 0x65, 0x7d, 0x2c, 0x74, + 0x61, 0x2e, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, + 0x7a, 0x6f, 0x6f, 0x6d, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x6f, + 0x6e, 0x28, 0x71, 0x2c, 0x66, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x4f, + 0x61, 0x2b, 0x22, 0x2e, 0x7a, 0x6f, 0x6f, 0x6d, 0x22, 0x2c, 0x67, + 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x64, 0x62, 0x6c, 0x63, 0x6c, + 0x69, 0x63, 0x6b, 0x2e, 0x7a, 0x6f, 0x6f, 0x6d, 0x22, 0x2c, 0x70, + 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x52, 0x2c, 0x68, 0x29, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x28, 0x6e, + 0x5b, 0x30, 0x5d, 0x2d, 0x6b, 0x2e, 0x78, 0x29, 0x2f, 0x6b, 0x2e, + 0x6b, 0x2c, 0x28, 0x6e, 0x5b, 0x31, 0x5d, 0x2d, 0x6b, 0x2e, 0x79, + 0x29, 0x2f, 0x6b, 0x2e, 0x6b, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x6e, 0x5b, 0x30, 0x5d, 0x2a, + 0x6b, 0x2e, 0x6b, 0x2b, 0x6b, 0x2e, 0x78, 0x2c, 0x6e, 0x5b, 0x31, + 0x5d, 0x2a, 0x6b, 0x2e, 0x6b, 0x2b, 0x6b, 0x2e, 0x79, 0x5d, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, + 0x6e, 0x29, 0x7b, 0x6b, 0x2e, 0x6b, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x4e, 0x5b, 0x30, 0x5d, 0x2c, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x4e, 0x5b, 0x31, + 0x5d, 0x2c, 0x6e, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x74, 0x3d, 0x72, 0x28, 0x74, 0x29, 0x2c, 0x6b, 0x2e, 0x78, 0x2b, + 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2d, 0x74, 0x5b, 0x30, 0x5d, 0x2c, + 0x6b, 0x2e, 0x79, 0x2b, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x2d, 0x74, + 0x5b, 0x31, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x28, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x6f, + 0x29, 0x7b, 0x74, 0x2e, 0x5f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x74, + 0x5f, 0x5f, 0x3d, 0x7b, 0x78, 0x3a, 0x6b, 0x2e, 0x78, 0x2c, 0x79, + 0x3a, 0x6b, 0x2e, 0x79, 0x2c, 0x6b, 0x3a, 0x6b, 0x2e, 0x6b, 0x7d, + 0x2c, 0x75, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, + 0x28, 0x32, 0x2c, 0x6f, 0x29, 0x29, 0x2c, 0x69, 0x28, 0x64, 0x3d, + 0x65, 0x2c, 0x72, 0x29, 0x2c, 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x74, 0x29, 0x2c, 0x43, 0x3e, + 0x30, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x74, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x2e, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x43, 0x29, 0x29, + 0x2c, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x28, 0x29, 0x7b, 0x62, 0x26, 0x26, + 0x62, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x78, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x29, 0x2e, 0x6d, 0x61, 0x70, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x6e, 0x2d, + 0x6b, 0x2e, 0x78, 0x29, 0x2f, 0x6b, 0x2e, 0x6b, 0x7d, 0x29, 0x2e, + 0x6d, 0x61, 0x70, 0x28, 0x78, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, + 0x74, 0x29, 0x29, 0x2c, 0x77, 0x26, 0x26, 0x77, 0x2e, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x5f, 0x2e, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x28, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x28, 0x6e, 0x2d, 0x6b, 0x2e, 0x79, 0x29, + 0x2f, 0x6b, 0x2e, 0x6b, 0x7d, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x28, + 0x5f, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x29, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x28, + 0x6e, 0x29, 0x7b, 0x7a, 0x2b, 0x2b, 0x7c, 0x7c, 0x6e, 0x28, 0x7b, + 0x74, 0x79, 0x70, 0x65, 0x3a, 0x22, 0x7a, 0x6f, 0x6f, 0x6d, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x22, 0x7d, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x28, 0x6e, 0x29, 0x7b, + 0x61, 0x28, 0x29, 0x2c, 0x6e, 0x28, 0x7b, 0x74, 0x79, 0x70, 0x65, + 0x3a, 0x22, 0x7a, 0x6f, 0x6f, 0x6d, 0x22, 0x2c, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x3a, 0x6b, 0x2e, 0x6b, 0x2c, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x6c, 0x61, 0x74, 0x65, 0x3a, 0x5b, 0x6b, 0x2e, 0x78, 0x2c, + 0x6b, 0x2e, 0x79, 0x5d, 0x7d, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x28, 0x6e, 0x29, 0x7b, 0x2d, + 0x2d, 0x7a, 0x7c, 0x7c, 0x28, 0x6e, 0x28, 0x7b, 0x74, 0x79, 0x70, + 0x65, 0x3a, 0x22, 0x7a, 0x6f, 0x6f, 0x6d, 0x65, 0x6e, 0x64, 0x22, + 0x7d, 0x29, 0x2c, 0x64, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x28, + 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x3d, 0x31, 0x2c, 0x69, 0x28, 0x74, + 0x61, 0x2e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x75, 0x29, 0x2c, + 0x67, 0x29, 0x2c, 0x6c, 0x28, 0x61, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x29, 0x7b, 0x68, + 0x2e, 0x6f, 0x6e, 0x28, 0x4c, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, + 0x2e, 0x6f, 0x6e, 0x28, 0x54, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, + 0x2c, 0x70, 0x28, 0x66, 0x26, 0x26, 0x74, 0x61, 0x2e, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, + 0x3d, 0x3d, 0x6f, 0x29, 0x2c, 0x73, 0x28, 0x61, 0x29, 0x7d, 0x76, + 0x61, 0x72, 0x20, 0x75, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6f, + 0x3d, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x61, 0x3d, 0x44, 0x2e, 0x6f, + 0x66, 0x28, 0x75, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x29, 0x2c, 0x66, 0x3d, 0x30, 0x2c, 0x68, 0x3d, 0x74, + 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x74, 0x28, + 0x75, 0x29, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x4c, 0x2c, 0x6e, 0x29, + 0x2e, 0x6f, 0x6e, 0x28, 0x54, 0x2c, 0x72, 0x29, 0x2c, 0x67, 0x3d, + 0x65, 0x28, 0x74, 0x61, 0x2e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x28, + 0x75, 0x29, 0x29, 0x2c, 0x70, 0x3d, 0x57, 0x28, 0x75, 0x29, 0x3b, + 0x44, 0x6c, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x75, 0x29, 0x2c, + 0x63, 0x28, 0x61, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x68, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x6e, 0x3d, 0x74, 0x61, 0x2e, 0x74, 0x6f, 0x75, 0x63, + 0x68, 0x65, 0x73, 0x28, 0x70, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x67, 0x3d, 0x6b, 0x2e, 0x6b, 0x2c, 0x6e, 0x2e, + 0x66, 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, + 0x69, 0x6e, 0x20, 0x64, 0x26, 0x26, 0x28, 0x64, 0x5b, 0x6e, 0x2e, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5d, + 0x3d, 0x65, 0x28, 0x6e, 0x29, 0x29, 0x7d, 0x29, 0x2c, 0x6e, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x74, 0x61, 0x2e, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x3b, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x28, 0x74, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x78, 0x2c, 0x72, 0x29, + 0x2e, 0x6f, 0x6e, 0x28, 0x62, 0x2c, 0x61, 0x29, 0x2c, 0x5f, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x74, 0x61, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x73, 0x2c, 0x75, 0x3d, + 0x30, 0x2c, 0x69, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x69, 0x3e, 0x75, 0x3b, 0x2b, 0x2b, 0x75, 0x29, 0x64, + 0x5b, 0x65, 0x5b, 0x75, 0x5d, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x5d, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x3d, 0x6e, 0x28, 0x29, 0x2c, + 0x6c, 0x3d, 0x44, 0x61, 0x74, 0x65, 0x2e, 0x6e, 0x6f, 0x77, 0x28, + 0x29, 0x3b, 0x69, 0x66, 0x28, 0x31, 0x3d, 0x3d, 0x3d, 0x63, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x7b, 0x69, 0x66, 0x28, + 0x35, 0x30, 0x30, 0x3e, 0x6c, 0x2d, 0x4d, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x73, 0x3d, 0x63, 0x5b, 0x30, 0x5d, 0x3b, 0x6f, 0x28, + 0x70, 0x2c, 0x73, 0x2c, 0x64, 0x5b, 0x73, 0x2e, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5d, 0x2c, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x6b, 0x2e, 0x6b, 0x29, + 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x4e, 0x32, 0x29, 0x2b, + 0x31, 0x29, 0x2c, 0x53, 0x28, 0x29, 0x7d, 0x4d, 0x3d, 0x6c, 0x7d, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x63, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x31, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x73, 0x3d, 0x63, 0x5b, 0x30, 0x5d, 0x2c, 0x66, 0x3d, + 0x63, 0x5b, 0x31, 0x5d, 0x2c, 0x68, 0x3d, 0x73, 0x5b, 0x30, 0x5d, + 0x2d, 0x66, 0x5b, 0x30, 0x5d, 0x2c, 0x67, 0x3d, 0x73, 0x5b, 0x31, + 0x5d, 0x2d, 0x66, 0x5b, 0x31, 0x5d, 0x3b, 0x6d, 0x3d, 0x68, 0x2a, + 0x68, 0x2b, 0x67, 0x2a, 0x67, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x6f, + 0x3d, 0x74, 0x61, 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x73, + 0x28, 0x70, 0x29, 0x3b, 0x44, 0x6c, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x28, 0x70, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x61, 0x3d, 0x30, 0x2c, 0x63, 0x3d, 0x6f, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x63, 0x3e, 0x61, 0x3b, 0x2b, 0x2b, + 0x61, 0x2c, 0x72, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x69, 0x66, + 0x28, 0x65, 0x3d, 0x6f, 0x5b, 0x61, 0x5d, 0x2c, 0x72, 0x3d, 0x64, + 0x5b, 0x65, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x5d, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x74, 0x29, 0x62, + 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x6e, 0x3d, 0x65, 0x2c, 0x74, 0x3d, + 0x72, 0x7d, 0x69, 0x66, 0x28, 0x72, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x73, 0x3d, 0x28, 0x73, 0x3d, 0x65, 0x5b, 0x30, 0x5d, 0x2d, + 0x6e, 0x5b, 0x30, 0x5d, 0x29, 0x2a, 0x73, 0x2b, 0x28, 0x73, 0x3d, + 0x65, 0x5b, 0x31, 0x5d, 0x2d, 0x6e, 0x5b, 0x31, 0x5d, 0x29, 0x2a, + 0x73, 0x2c, 0x66, 0x3d, 0x6d, 0x26, 0x26, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x73, 0x2f, 0x6d, 0x29, 0x3b, + 0x6e, 0x3d, 0x5b, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x2b, 0x65, 0x5b, + 0x30, 0x5d, 0x29, 0x2f, 0x32, 0x2c, 0x28, 0x6e, 0x5b, 0x31, 0x5d, + 0x2b, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x2f, 0x32, 0x5d, 0x2c, 0x74, + 0x3d, 0x5b, 0x28, 0x74, 0x5b, 0x30, 0x5d, 0x2b, 0x72, 0x5b, 0x30, + 0x5d, 0x29, 0x2f, 0x32, 0x2c, 0x28, 0x74, 0x5b, 0x31, 0x5d, 0x2b, + 0x72, 0x5b, 0x31, 0x5d, 0x29, 0x2f, 0x32, 0x5d, 0x2c, 0x75, 0x28, + 0x66, 0x2a, 0x67, 0x29, 0x7d, 0x4d, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, + 0x2c, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x2c, 0x6c, 0x28, 0x76, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x28, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x74, 0x61, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x65, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x74, 0x61, + 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x73, 0x2c, + 0x65, 0x3d, 0x30, 0x2c, 0x72, 0x3d, 0x74, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3b, 0x72, 0x3e, 0x65, 0x3b, 0x2b, 0x2b, 0x65, + 0x29, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x64, 0x5b, 0x74, + 0x5b, 0x65, 0x5d, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x75, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x29, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6e, + 0x28, 0x29, 0x7d, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x5f, 0x29, 0x2e, 0x6f, 0x6e, 0x28, + 0x79, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2c, 0x77, 0x2e, 0x6f, + 0x6e, 0x28, 0x71, 0x2c, 0x66, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x52, + 0x2c, 0x68, 0x29, 0x2c, 0x45, 0x28, 0x29, 0x2c, 0x73, 0x28, 0x76, + 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x67, 0x2c, 0x70, 0x3d, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x76, 0x3d, 0x44, 0x2e, 0x6f, 0x66, 0x28, + 0x70, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x2c, 0x64, 0x3d, 0x7b, 0x7d, 0x2c, 0x6d, 0x3d, 0x30, 0x2c, + 0x79, 0x3d, 0x22, 0x2e, 0x7a, 0x6f, 0x6f, 0x6d, 0x2d, 0x22, 0x2b, + 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65, + 0x73, 0x5b, 0x30, 0x5d, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x2c, 0x78, 0x3d, 0x22, 0x74, 0x6f, 0x75, + 0x63, 0x68, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x2b, 0x79, 0x2c, 0x62, + 0x3d, 0x22, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x6e, 0x64, 0x22, + 0x2b, 0x79, 0x2c, 0x5f, 0x3d, 0x5b, 0x5d, 0x2c, 0x77, 0x3d, 0x74, + 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x70, 0x29, + 0x2c, 0x45, 0x3d, 0x57, 0x28, 0x70, 0x29, 0x3b, 0x74, 0x28, 0x29, + 0x2c, 0x63, 0x28, 0x76, 0x29, 0x2c, 0x77, 0x2e, 0x6f, 0x6e, 0x28, + 0x71, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2e, 0x6f, 0x6e, 0x28, + 0x52, 0x2c, 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x67, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x6e, 0x3d, 0x44, 0x2e, 0x6f, 0x66, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x3b, 0x79, 0x3f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x28, 0x79, 0x29, 0x3a, 0x28, 0x44, 0x6c, + 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, + 0x2c, 0x76, 0x3d, 0x65, 0x28, 0x64, 0x3d, 0x6d, 0x7c, 0x7c, 0x74, + 0x61, 0x2e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x29, 0x29, 0x2c, 0x63, 0x28, 0x6e, 0x29, 0x29, 0x2c, 0x79, + 0x3d, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x79, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x73, 0x28, 0x6e, + 0x29, 0x7d, 0x2c, 0x35, 0x30, 0x29, 0x2c, 0x53, 0x28, 0x29, 0x2c, + 0x75, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, 0x28, + 0x32, 0x2c, 0x2e, 0x30, 0x30, 0x32, 0x2a, 0x48, 0x61, 0x28, 0x29, + 0x29, 0x2a, 0x6b, 0x2e, 0x6b, 0x29, 0x2c, 0x69, 0x28, 0x64, 0x2c, + 0x76, 0x29, 0x2c, 0x6c, 0x28, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x28, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x74, 0x61, 0x2e, 0x6d, 0x6f, 0x75, + 0x73, 0x65, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x2c, 0x74, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x6b, 0x2e, + 0x6b, 0x29, 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x4c, 0x4e, 0x32, + 0x3b, 0x6f, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x65, + 0x28, 0x6e, 0x29, 0x2c, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x2e, 0x73, 0x68, 0x69, 0x66, 0x74, 0x4b, 0x65, 0x79, 0x3f, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x74, + 0x29, 0x2d, 0x31, 0x3a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, + 0x6f, 0x6f, 0x72, 0x28, 0x74, 0x29, 0x2b, 0x31, 0x29, 0x7d, 0x76, + 0x61, 0x72, 0x20, 0x76, 0x2c, 0x64, 0x2c, 0x6d, 0x2c, 0x79, 0x2c, + 0x4d, 0x2c, 0x78, 0x2c, 0x62, 0x2c, 0x5f, 0x2c, 0x77, 0x2c, 0x6b, + 0x3d, 0x7b, 0x78, 0x3a, 0x30, 0x2c, 0x79, 0x3a, 0x30, 0x2c, 0x6b, + 0x3a, 0x31, 0x7d, 0x2c, 0x41, 0x3d, 0x5b, 0x39, 0x36, 0x30, 0x2c, + 0x35, 0x30, 0x30, 0x5d, 0x2c, 0x4e, 0x3d, 0x49, 0x61, 0x2c, 0x43, + 0x3d, 0x32, 0x35, 0x30, 0x2c, 0x7a, 0x3d, 0x30, 0x2c, 0x71, 0x3d, + 0x22, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x2e, + 0x7a, 0x6f, 0x6f, 0x6d, 0x22, 0x2c, 0x4c, 0x3d, 0x22, 0x6d, 0x6f, + 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x2e, 0x7a, 0x6f, 0x6f, + 0x6d, 0x22, 0x2c, 0x54, 0x3d, 0x22, 0x6d, 0x6f, 0x75, 0x73, 0x65, + 0x75, 0x70, 0x2e, 0x7a, 0x6f, 0x6f, 0x6d, 0x22, 0x2c, 0x52, 0x3d, + 0x22, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x2e, 0x7a, 0x6f, 0x6f, 0x6d, 0x22, 0x2c, 0x44, 0x3d, 0x45, 0x28, + 0x6e, 0x2c, 0x22, 0x7a, 0x6f, 0x6f, 0x6d, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x22, 0x2c, 0x22, 0x7a, 0x6f, 0x6f, 0x6d, 0x22, 0x2c, 0x22, + 0x7a, 0x6f, 0x6f, 0x6d, 0x65, 0x6e, 0x64, 0x22, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4f, 0x61, 0x7c, 0x7c, 0x28, + 0x4f, 0x61, 0x3d, 0x22, 0x6f, 0x6e, 0x77, 0x68, 0x65, 0x65, 0x6c, + 0x22, 0x69, 0x6e, 0x20, 0x75, 0x61, 0x3f, 0x28, 0x48, 0x61, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2d, 0x74, 0x61, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x59, + 0x2a, 0x28, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x65, 0x3f, 0x31, + 0x32, 0x30, 0x3a, 0x31, 0x29, 0x7d, 0x2c, 0x22, 0x77, 0x68, 0x65, + 0x65, 0x6c, 0x22, 0x29, 0x3a, 0x22, 0x6f, 0x6e, 0x6d, 0x6f, 0x75, + 0x73, 0x65, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x22, 0x69, 0x6e, 0x20, + 0x75, 0x61, 0x3f, 0x28, 0x48, 0x61, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x44, 0x65, 0x6c, 0x74, 0x61, + 0x7d, 0x2c, 0x22, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x77, 0x68, 0x65, + 0x65, 0x6c, 0x22, 0x29, 0x3a, 0x28, 0x48, 0x61, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x2d, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x7d, 0x2c, + 0x22, 0x4d, 0x6f, 0x7a, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x50, 0x69, + 0x78, 0x65, 0x6c, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x22, 0x29, + 0x29, 0x2c, 0x6e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x6e, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x6e, 0x3d, 0x44, 0x2e, 0x6f, 0x66, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x2c, 0x74, 0x3d, 0x6b, 0x3b, 0x54, 0x6c, 0x3f, 0x74, 0x61, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x29, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, 0x22, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x2e, 0x7a, 0x6f, 0x6f, 0x6d, 0x22, 0x2c, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x6b, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x5f, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x5f, 0x5f, 0x7c, 0x7c, 0x7b, 0x78, 0x3a, 0x30, + 0x2c, 0x79, 0x3a, 0x30, 0x2c, 0x6b, 0x3a, 0x31, 0x7d, 0x2c, 0x63, + 0x28, 0x6e, 0x29, 0x7d, 0x29, 0x2e, 0x74, 0x77, 0x65, 0x65, 0x6e, + 0x28, 0x22, 0x7a, 0x6f, 0x6f, 0x6d, 0x3a, 0x7a, 0x6f, 0x6f, 0x6d, + 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x41, 0x5b, 0x30, + 0x5d, 0x2c, 0x72, 0x3d, 0x41, 0x5b, 0x31, 0x5d, 0x2c, 0x75, 0x3d, + 0x64, 0x3f, 0x64, 0x5b, 0x30, 0x5d, 0x3a, 0x65, 0x2f, 0x32, 0x2c, + 0x69, 0x3d, 0x64, 0x3f, 0x64, 0x5b, 0x31, 0x5d, 0x3a, 0x72, 0x2f, + 0x32, 0x2c, 0x6f, 0x3d, 0x74, 0x61, 0x2e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x5a, 0x6f, 0x6f, 0x6d, + 0x28, 0x5b, 0x28, 0x75, 0x2d, 0x6b, 0x2e, 0x78, 0x29, 0x2f, 0x6b, + 0x2e, 0x6b, 0x2c, 0x28, 0x69, 0x2d, 0x6b, 0x2e, 0x79, 0x29, 0x2f, + 0x6b, 0x2e, 0x6b, 0x2c, 0x65, 0x2f, 0x6b, 0x2e, 0x6b, 0x5d, 0x2c, + 0x5b, 0x28, 0x75, 0x2d, 0x74, 0x2e, 0x78, 0x29, 0x2f, 0x74, 0x2e, + 0x6b, 0x2c, 0x28, 0x69, 0x2d, 0x74, 0x2e, 0x79, 0x29, 0x2f, 0x74, + 0x2e, 0x6b, 0x2c, 0x65, 0x2f, 0x74, 0x2e, 0x6b, 0x5d, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x72, 0x3d, 0x6f, 0x28, 0x74, 0x29, 0x2c, 0x61, 0x3d, 0x65, + 0x2f, 0x72, 0x5b, 0x32, 0x5d, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x5f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x5f, 0x3d, 0x6b, + 0x3d, 0x7b, 0x78, 0x3a, 0x75, 0x2d, 0x72, 0x5b, 0x30, 0x5d, 0x2a, + 0x61, 0x2c, 0x79, 0x3a, 0x69, 0x2d, 0x72, 0x5b, 0x31, 0x5d, 0x2a, + 0x61, 0x2c, 0x6b, 0x3a, 0x61, 0x7d, 0x2c, 0x6c, 0x28, 0x6e, 0x29, + 0x7d, 0x7d, 0x29, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, 0x22, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x2e, 0x7a, 0x6f, + 0x6f, 0x6d, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x73, 0x28, 0x6e, 0x29, 0x7d, 0x29, 0x2e, + 0x65, 0x61, 0x63, 0x68, 0x28, 0x22, 0x65, 0x6e, 0x64, 0x2e, 0x7a, + 0x6f, 0x6f, 0x6d, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x73, 0x28, 0x6e, 0x29, 0x7d, 0x29, + 0x3a, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x5f, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x5f, 0x5f, 0x3d, 0x6b, 0x2c, 0x63, 0x28, 0x6e, + 0x29, 0x2c, 0x6c, 0x28, 0x6e, 0x29, 0x2c, 0x73, 0x28, 0x6e, 0x29, + 0x29, 0x7d, 0x29, 0x7d, 0x2c, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x6c, 0x61, 0x74, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6b, + 0x3d, 0x7b, 0x78, 0x3a, 0x2b, 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x79, + 0x3a, 0x2b, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x6b, 0x3a, 0x6b, 0x2e, + 0x6b, 0x7d, 0x2c, 0x61, 0x28, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x5b, + 0x6b, 0x2e, 0x78, 0x2c, 0x6b, 0x2e, 0x79, 0x5d, 0x7d, 0x2c, 0x6e, + 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x6b, 0x3d, 0x7b, 0x78, 0x3a, 0x6b, 0x2e, 0x78, 0x2c, 0x79, 0x3a, + 0x6b, 0x2e, 0x79, 0x2c, 0x6b, 0x3a, 0x2b, 0x74, 0x7d, 0x2c, 0x61, + 0x28, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x6b, 0x2e, 0x6b, 0x7d, 0x2c, + 0x6e, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x4e, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x3d, 0x3d, 0x74, 0x3f, 0x49, 0x61, 0x3a, 0x5b, 0x2b, + 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x2b, 0x74, 0x5b, 0x31, 0x5d, 0x5d, + 0x2c, 0x6e, 0x29, 0x3a, 0x4e, 0x7d, 0x2c, 0x6e, 0x2e, 0x63, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6d, 0x3d, + 0x74, 0x26, 0x26, 0x5b, 0x2b, 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x2b, + 0x74, 0x5b, 0x31, 0x5d, 0x5d, 0x2c, 0x6e, 0x29, 0x3a, 0x6d, 0x7d, + 0x2c, 0x6e, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x41, 0x3d, 0x74, 0x26, 0x26, 0x5b, 0x2b, 0x74, 0x5b, 0x30, + 0x5d, 0x2c, 0x2b, 0x74, 0x5b, 0x31, 0x5d, 0x5d, 0x2c, 0x6e, 0x29, + 0x3a, 0x41, 0x7d, 0x2c, 0x6e, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x43, 0x3d, 0x2b, + 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x43, 0x7d, 0x2c, 0x6e, 0x2e, 0x78, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x62, 0x3d, 0x74, 0x2c, 0x78, 0x3d, + 0x74, 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x28, 0x29, 0x2c, 0x6b, 0x3d, + 0x7b, 0x78, 0x3a, 0x30, 0x2c, 0x79, 0x3a, 0x30, 0x2c, 0x6b, 0x3a, + 0x31, 0x7d, 0x2c, 0x6e, 0x29, 0x3a, 0x62, 0x7d, 0x2c, 0x6e, 0x2e, + 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x77, 0x3d, 0x74, 0x2c, 0x5f, + 0x3d, 0x74, 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x28, 0x29, 0x2c, 0x6b, + 0x3d, 0x7b, 0x78, 0x3a, 0x30, 0x2c, 0x79, 0x3a, 0x30, 0x2c, 0x6b, + 0x3a, 0x31, 0x7d, 0x2c, 0x6e, 0x29, 0x3a, 0x77, 0x7d, 0x2c, 0x74, + 0x61, 0x2e, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x6e, 0x2c, + 0x44, 0x2c, 0x22, 0x6f, 0x6e, 0x22, 0x29, 0x7d, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x48, 0x61, 0x2c, 0x4f, 0x61, 0x2c, 0x49, 0x61, 0x3d, + 0x5b, 0x30, 0x2c, 0x31, 0x2f, 0x30, 0x5d, 0x3b, 0x74, 0x61, 0x2e, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x6f, 0x74, 0x2c, 0x6f, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x2e, + 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, + 0x67, 0x62, 0x28, 0x29, 0x2b, 0x22, 0x22, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x68, 0x73, 0x6c, 0x3d, 0x61, 0x74, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x59, 0x61, 0x3d, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x6f, + 0x74, 0x3b, 0x59, 0x61, 0x2e, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, 0x28, + 0x2e, 0x37, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x6e, 0x3a, + 0x31, 0x29, 0x2c, 0x6e, 0x65, 0x77, 0x20, 0x61, 0x74, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x68, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x73, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x2f, 0x6e, 0x29, + 0x7d, 0x2c, 0x59, 0x61, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x65, 0x72, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x2e, 0x37, + 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x6e, 0x3a, 0x31, 0x29, + 0x2c, 0x6e, 0x65, 0x77, 0x20, 0x61, 0x74, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x68, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x2c, + 0x6e, 0x2a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x29, 0x7d, 0x2c, + 0x59, 0x61, 0x2e, 0x72, 0x67, 0x62, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x63, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x68, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x2c, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x6c, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x68, + 0x63, 0x6c, 0x3d, 0x6c, 0x74, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x5a, + 0x61, 0x3d, 0x6c, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, + 0x79, 0x70, 0x65, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x6f, 0x74, 0x3b, + 0x5a, 0x61, 0x2e, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x65, 0x72, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x65, + 0x77, 0x20, 0x6c, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x68, + 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x2c, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x30, 0x30, 0x2c, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x2b, 0x56, 0x61, 0x2a, 0x28, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x6e, 0x3a, 0x31, 0x29, 0x29, 0x29, + 0x7d, 0x2c, 0x5a, 0x61, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x65, 0x72, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x65, + 0x77, 0x20, 0x6c, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x68, + 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x2c, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x30, 0x2c, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x6c, 0x2d, 0x56, 0x61, 0x2a, 0x28, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x6e, 0x3a, 0x31, 0x29, 0x29, 0x29, 0x7d, 0x2c, + 0x5a, 0x61, 0x2e, 0x72, 0x67, 0x62, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x73, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x68, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x2c, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x6c, 0x29, 0x2e, 0x72, 0x67, 0x62, 0x28, 0x29, + 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x6c, 0x61, 0x62, 0x3d, 0x66, 0x74, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x56, 0x61, 0x3d, 0x31, 0x38, 0x2c, + 0x58, 0x61, 0x3d, 0x2e, 0x39, 0x35, 0x30, 0x34, 0x37, 0x2c, 0x24, + 0x61, 0x3d, 0x31, 0x2c, 0x42, 0x61, 0x3d, 0x31, 0x2e, 0x30, 0x38, + 0x38, 0x38, 0x33, 0x2c, 0x57, 0x61, 0x3d, 0x66, 0x74, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x6e, 0x65, + 0x77, 0x20, 0x6f, 0x74, 0x3b, 0x57, 0x61, 0x2e, 0x62, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x66, 0x74, 0x28, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x31, 0x30, 0x30, + 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x2b, 0x56, 0x61, 0x2a, + 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x6e, 0x3a, 0x31, 0x29, + 0x29, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, 0x2c, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x62, 0x29, 0x7d, 0x2c, 0x57, 0x61, 0x2e, 0x64, + 0x61, 0x72, 0x6b, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x66, 0x74, 0x28, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x30, 0x2c, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x2d, 0x56, 0x61, 0x2a, 0x28, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x6e, 0x3a, 0x31, 0x29, 0x29, 0x2c, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, 0x2c, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x62, 0x29, 0x7d, 0x2c, 0x57, 0x61, 0x2e, 0x72, 0x67, 0x62, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, 0x74, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x2c, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x61, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x62, 0x29, 0x7d, + 0x2c, 0x74, 0x61, 0x2e, 0x72, 0x67, 0x62, 0x3d, 0x6d, 0x74, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x4a, 0x61, 0x3d, 0x6d, 0x74, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x6e, 0x65, + 0x77, 0x20, 0x6f, 0x74, 0x3b, 0x4a, 0x61, 0x2e, 0x62, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x2e, 0x37, 0x2c, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x6e, 0x3a, 0x31, 0x29, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, + 0x2c, 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x2c, 0x72, + 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x62, 0x2c, 0x75, 0x3d, 0x33, + 0x30, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x7c, + 0x7c, 0x65, 0x7c, 0x7c, 0x72, 0x3f, 0x28, 0x74, 0x26, 0x26, 0x75, + 0x3e, 0x74, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x75, 0x29, 0x2c, 0x65, + 0x26, 0x26, 0x75, 0x3e, 0x65, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x75, + 0x29, 0x2c, 0x72, 0x26, 0x26, 0x75, 0x3e, 0x72, 0x26, 0x26, 0x28, + 0x72, 0x3d, 0x75, 0x29, 0x2c, 0x6e, 0x65, 0x77, 0x20, 0x6d, 0x74, + 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x32, + 0x35, 0x35, 0x2c, 0x74, 0x2f, 0x6e, 0x29, 0x2c, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x32, 0x35, 0x35, 0x2c, 0x65, + 0x2f, 0x6e, 0x29, 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, + 0x6e, 0x28, 0x32, 0x35, 0x35, 0x2c, 0x72, 0x2f, 0x6e, 0x29, 0x29, + 0x29, 0x3a, 0x6e, 0x65, 0x77, 0x20, 0x6d, 0x74, 0x28, 0x75, 0x2c, + 0x75, 0x2c, 0x75, 0x29, 0x7d, 0x2c, 0x4a, 0x61, 0x2e, 0x64, 0x61, + 0x72, 0x6b, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, 0x6f, + 0x77, 0x28, 0x2e, 0x37, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x6e, 0x3a, 0x31, 0x29, 0x2c, 0x6e, 0x65, 0x77, 0x20, 0x6d, 0x74, + 0x28, 0x6e, 0x2a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x2c, 0x6e, + 0x2a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x2c, 0x6e, 0x2a, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x62, 0x29, 0x7d, 0x2c, 0x4a, 0x61, 0x2e, + 0x68, 0x73, 0x6c, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x5f, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x2c, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x67, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x62, 0x29, 0x7d, 0x2c, 0x4a, 0x61, 0x2e, 0x74, 0x6f, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x22, 0x23, 0x22, 0x2b, 0x78, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x72, 0x29, 0x2b, 0x78, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x67, 0x29, 0x2b, 0x78, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x62, 0x29, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x47, 0x61, + 0x3d, 0x74, 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x7b, 0x61, 0x6c, + 0x69, 0x63, 0x65, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x31, 0x35, 0x37, + 0x39, 0x32, 0x33, 0x38, 0x33, 0x2c, 0x61, 0x6e, 0x74, 0x69, 0x71, + 0x75, 0x65, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3a, 0x31, 0x36, 0x34, + 0x34, 0x34, 0x33, 0x37, 0x35, 0x2c, 0x61, 0x71, 0x75, 0x61, 0x3a, + 0x36, 0x35, 0x35, 0x33, 0x35, 0x2c, 0x61, 0x71, 0x75, 0x61, 0x6d, + 0x61, 0x72, 0x69, 0x6e, 0x65, 0x3a, 0x38, 0x33, 0x38, 0x38, 0x35, + 0x36, 0x34, 0x2c, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x3a, 0x31, 0x35, + 0x37, 0x39, 0x34, 0x31, 0x37, 0x35, 0x2c, 0x62, 0x65, 0x69, 0x67, + 0x65, 0x3a, 0x31, 0x36, 0x31, 0x31, 0x39, 0x32, 0x36, 0x30, 0x2c, + 0x62, 0x69, 0x73, 0x71, 0x75, 0x65, 0x3a, 0x31, 0x36, 0x37, 0x37, + 0x30, 0x32, 0x34, 0x34, 0x2c, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x3a, + 0x30, 0x2c, 0x62, 0x6c, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x64, 0x61, + 0x6c, 0x6d, 0x6f, 0x6e, 0x64, 0x3a, 0x31, 0x36, 0x37, 0x37, 0x32, + 0x30, 0x34, 0x35, 0x2c, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x32, 0x35, + 0x35, 0x2c, 0x62, 0x6c, 0x75, 0x65, 0x76, 0x69, 0x6f, 0x6c, 0x65, + 0x74, 0x3a, 0x39, 0x30, 0x35, 0x35, 0x32, 0x30, 0x32, 0x2c, 0x62, + 0x72, 0x6f, 0x77, 0x6e, 0x3a, 0x31, 0x30, 0x38, 0x32, 0x34, 0x32, + 0x33, 0x34, 0x2c, 0x62, 0x75, 0x72, 0x6c, 0x79, 0x77, 0x6f, 0x6f, + 0x64, 0x3a, 0x31, 0x34, 0x35, 0x39, 0x36, 0x32, 0x33, 0x31, 0x2c, + 0x63, 0x61, 0x64, 0x65, 0x74, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x36, + 0x32, 0x36, 0x36, 0x35, 0x32, 0x38, 0x2c, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x72, 0x65, 0x75, 0x73, 0x65, 0x3a, 0x38, 0x33, 0x38, 0x38, + 0x33, 0x35, 0x32, 0x2c, 0x63, 0x68, 0x6f, 0x63, 0x6f, 0x6c, 0x61, + 0x74, 0x65, 0x3a, 0x31, 0x33, 0x37, 0x38, 0x39, 0x34, 0x37, 0x30, + 0x2c, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x3a, 0x31, 0x36, 0x37, 0x34, + 0x34, 0x32, 0x37, 0x32, 0x2c, 0x63, 0x6f, 0x72, 0x6e, 0x66, 0x6c, + 0x6f, 0x77, 0x65, 0x72, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x36, 0x35, + 0x39, 0x31, 0x39, 0x38, 0x31, 0x2c, 0x63, 0x6f, 0x72, 0x6e, 0x73, + 0x69, 0x6c, 0x6b, 0x3a, 0x31, 0x36, 0x37, 0x37, 0x35, 0x33, 0x38, + 0x38, 0x2c, 0x63, 0x72, 0x69, 0x6d, 0x73, 0x6f, 0x6e, 0x3a, 0x31, + 0x34, 0x34, 0x32, 0x33, 0x31, 0x30, 0x30, 0x2c, 0x63, 0x79, 0x61, + 0x6e, 0x3a, 0x36, 0x35, 0x35, 0x33, 0x35, 0x2c, 0x64, 0x61, 0x72, + 0x6b, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x31, 0x33, 0x39, 0x2c, 0x64, + 0x61, 0x72, 0x6b, 0x63, 0x79, 0x61, 0x6e, 0x3a, 0x33, 0x35, 0x37, + 0x32, 0x33, 0x2c, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x6f, 0x6c, 0x64, + 0x65, 0x6e, 0x72, 0x6f, 0x64, 0x3a, 0x31, 0x32, 0x30, 0x39, 0x32, + 0x39, 0x33, 0x39, 0x2c, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x61, + 0x79, 0x3a, 0x31, 0x31, 0x31, 0x31, 0x39, 0x30, 0x31, 0x37, 0x2c, + 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x3a, 0x32, + 0x35, 0x36, 0x30, 0x30, 0x2c, 0x64, 0x61, 0x72, 0x6b, 0x67, 0x72, + 0x65, 0x79, 0x3a, 0x31, 0x31, 0x31, 0x31, 0x39, 0x30, 0x31, 0x37, + 0x2c, 0x64, 0x61, 0x72, 0x6b, 0x6b, 0x68, 0x61, 0x6b, 0x69, 0x3a, + 0x31, 0x32, 0x34, 0x33, 0x33, 0x32, 0x35, 0x39, 0x2c, 0x64, 0x61, + 0x72, 0x6b, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x61, 0x3a, 0x39, + 0x31, 0x30, 0x39, 0x36, 0x34, 0x33, 0x2c, 0x64, 0x61, 0x72, 0x6b, + 0x6f, 0x6c, 0x69, 0x76, 0x65, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x3a, + 0x35, 0x35, 0x39, 0x37, 0x39, 0x39, 0x39, 0x2c, 0x64, 0x61, 0x72, + 0x6b, 0x6f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x31, 0x36, 0x37, + 0x34, 0x37, 0x35, 0x32, 0x30, 0x2c, 0x64, 0x61, 0x72, 0x6b, 0x6f, + 0x72, 0x63, 0x68, 0x69, 0x64, 0x3a, 0x31, 0x30, 0x30, 0x34, 0x30, + 0x30, 0x31, 0x32, 0x2c, 0x64, 0x61, 0x72, 0x6b, 0x72, 0x65, 0x64, + 0x3a, 0x39, 0x31, 0x30, 0x39, 0x35, 0x30, 0x34, 0x2c, 0x64, 0x61, + 0x72, 0x6b, 0x73, 0x61, 0x6c, 0x6d, 0x6f, 0x6e, 0x3a, 0x31, 0x35, + 0x33, 0x30, 0x38, 0x34, 0x31, 0x30, 0x2c, 0x64, 0x61, 0x72, 0x6b, + 0x73, 0x65, 0x61, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x3a, 0x39, 0x34, + 0x31, 0x39, 0x39, 0x31, 0x39, 0x2c, 0x64, 0x61, 0x72, 0x6b, 0x73, + 0x6c, 0x61, 0x74, 0x65, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x34, 0x37, + 0x33, 0x34, 0x33, 0x34, 0x37, 0x2c, 0x64, 0x61, 0x72, 0x6b, 0x73, + 0x6c, 0x61, 0x74, 0x65, 0x67, 0x72, 0x61, 0x79, 0x3a, 0x33, 0x31, + 0x30, 0x30, 0x34, 0x39, 0x35, 0x2c, 0x64, 0x61, 0x72, 0x6b, 0x73, + 0x6c, 0x61, 0x74, 0x65, 0x67, 0x72, 0x65, 0x79, 0x3a, 0x33, 0x31, + 0x30, 0x30, 0x34, 0x39, 0x35, 0x2c, 0x64, 0x61, 0x72, 0x6b, 0x74, + 0x75, 0x72, 0x71, 0x75, 0x6f, 0x69, 0x73, 0x65, 0x3a, 0x35, 0x32, + 0x39, 0x34, 0x35, 0x2c, 0x64, 0x61, 0x72, 0x6b, 0x76, 0x69, 0x6f, + 0x6c, 0x65, 0x74, 0x3a, 0x39, 0x36, 0x39, 0x39, 0x35, 0x33, 0x39, + 0x2c, 0x64, 0x65, 0x65, 0x70, 0x70, 0x69, 0x6e, 0x6b, 0x3a, 0x31, + 0x36, 0x37, 0x31, 0x36, 0x39, 0x34, 0x37, 0x2c, 0x64, 0x65, 0x65, + 0x70, 0x73, 0x6b, 0x79, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x34, 0x39, + 0x31, 0x35, 0x31, 0x2c, 0x64, 0x69, 0x6d, 0x67, 0x72, 0x61, 0x79, + 0x3a, 0x36, 0x39, 0x30, 0x38, 0x32, 0x36, 0x35, 0x2c, 0x64, 0x69, + 0x6d, 0x67, 0x72, 0x65, 0x79, 0x3a, 0x36, 0x39, 0x30, 0x38, 0x32, + 0x36, 0x35, 0x2c, 0x64, 0x6f, 0x64, 0x67, 0x65, 0x72, 0x62, 0x6c, + 0x75, 0x65, 0x3a, 0x32, 0x30, 0x30, 0x33, 0x31, 0x39, 0x39, 0x2c, + 0x66, 0x69, 0x72, 0x65, 0x62, 0x72, 0x69, 0x63, 0x6b, 0x3a, 0x31, + 0x31, 0x36, 0x37, 0x34, 0x31, 0x34, 0x36, 0x2c, 0x66, 0x6c, 0x6f, + 0x72, 0x61, 0x6c, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3a, 0x31, 0x36, + 0x37, 0x37, 0x35, 0x39, 0x32, 0x30, 0x2c, 0x66, 0x6f, 0x72, 0x65, + 0x73, 0x74, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x3a, 0x32, 0x32, 0x36, + 0x33, 0x38, 0x34, 0x32, 0x2c, 0x66, 0x75, 0x63, 0x68, 0x73, 0x69, + 0x61, 0x3a, 0x31, 0x36, 0x37, 0x31, 0x31, 0x39, 0x33, 0x35, 0x2c, + 0x67, 0x61, 0x69, 0x6e, 0x73, 0x62, 0x6f, 0x72, 0x6f, 0x3a, 0x31, + 0x34, 0x34, 0x37, 0x34, 0x34, 0x36, 0x30, 0x2c, 0x67, 0x68, 0x6f, + 0x73, 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3a, 0x31, 0x36, 0x33, + 0x31, 0x36, 0x36, 0x37, 0x31, 0x2c, 0x67, 0x6f, 0x6c, 0x64, 0x3a, + 0x31, 0x36, 0x37, 0x36, 0x36, 0x37, 0x32, 0x30, 0x2c, 0x67, 0x6f, + 0x6c, 0x64, 0x65, 0x6e, 0x72, 0x6f, 0x64, 0x3a, 0x31, 0x34, 0x33, + 0x32, 0x39, 0x31, 0x32, 0x30, 0x2c, 0x67, 0x72, 0x61, 0x79, 0x3a, + 0x38, 0x34, 0x32, 0x31, 0x35, 0x30, 0x34, 0x2c, 0x67, 0x72, 0x65, + 0x65, 0x6e, 0x3a, 0x33, 0x32, 0x37, 0x36, 0x38, 0x2c, 0x67, 0x72, + 0x65, 0x65, 0x6e, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x3a, 0x31, + 0x31, 0x34, 0x30, 0x33, 0x30, 0x35, 0x35, 0x2c, 0x67, 0x72, 0x65, + 0x79, 0x3a, 0x38, 0x34, 0x32, 0x31, 0x35, 0x30, 0x34, 0x2c, 0x68, + 0x6f, 0x6e, 0x65, 0x79, 0x64, 0x65, 0x77, 0x3a, 0x31, 0x35, 0x37, + 0x39, 0x34, 0x31, 0x36, 0x30, 0x2c, 0x68, 0x6f, 0x74, 0x70, 0x69, + 0x6e, 0x6b, 0x3a, 0x31, 0x36, 0x37, 0x33, 0x38, 0x37, 0x34, 0x30, + 0x2c, 0x69, 0x6e, 0x64, 0x69, 0x61, 0x6e, 0x72, 0x65, 0x64, 0x3a, + 0x31, 0x33, 0x34, 0x35, 0x38, 0x35, 0x32, 0x34, 0x2c, 0x69, 0x6e, + 0x64, 0x69, 0x67, 0x6f, 0x3a, 0x34, 0x39, 0x31, 0x35, 0x33, 0x33, + 0x30, 0x2c, 0x69, 0x76, 0x6f, 0x72, 0x79, 0x3a, 0x31, 0x36, 0x37, + 0x37, 0x37, 0x32, 0x30, 0x30, 0x2c, 0x6b, 0x68, 0x61, 0x6b, 0x69, + 0x3a, 0x31, 0x35, 0x37, 0x38, 0x37, 0x36, 0x36, 0x30, 0x2c, 0x6c, + 0x61, 0x76, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x3a, 0x31, 0x35, 0x31, + 0x33, 0x32, 0x34, 0x31, 0x30, 0x2c, 0x6c, 0x61, 0x76, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x62, 0x6c, 0x75, 0x73, 0x68, 0x3a, 0x31, 0x36, + 0x37, 0x37, 0x33, 0x33, 0x36, 0x35, 0x2c, 0x6c, 0x61, 0x77, 0x6e, + 0x67, 0x72, 0x65, 0x65, 0x6e, 0x3a, 0x38, 0x31, 0x39, 0x30, 0x39, + 0x37, 0x36, 0x2c, 0x6c, 0x65, 0x6d, 0x6f, 0x6e, 0x63, 0x68, 0x69, + 0x66, 0x66, 0x6f, 0x6e, 0x3a, 0x31, 0x36, 0x37, 0x37, 0x35, 0x38, + 0x38, 0x35, 0x2c, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x62, 0x6c, 0x75, + 0x65, 0x3a, 0x31, 0x31, 0x33, 0x39, 0x33, 0x32, 0x35, 0x34, 0x2c, + 0x6c, 0x69, 0x67, 0x68, 0x74, 0x63, 0x6f, 0x72, 0x61, 0x6c, 0x3a, + 0x31, 0x35, 0x37, 0x36, 0x31, 0x35, 0x33, 0x36, 0x2c, 0x6c, 0x69, + 0x67, 0x68, 0x74, 0x63, 0x79, 0x61, 0x6e, 0x3a, 0x31, 0x34, 0x37, + 0x34, 0x35, 0x35, 0x39, 0x39, 0x2c, 0x6c, 0x69, 0x67, 0x68, 0x74, + 0x67, 0x6f, 0x6c, 0x64, 0x65, 0x6e, 0x72, 0x6f, 0x64, 0x79, 0x65, + 0x6c, 0x6c, 0x6f, 0x77, 0x3a, 0x31, 0x36, 0x34, 0x34, 0x38, 0x32, + 0x31, 0x30, 0x2c, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x67, 0x72, 0x61, + 0x79, 0x3a, 0x31, 0x33, 0x38, 0x38, 0x32, 0x33, 0x32, 0x33, 0x2c, + 0x6c, 0x69, 0x67, 0x68, 0x74, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x3a, + 0x39, 0x34, 0x39, 0x38, 0x32, 0x35, 0x36, 0x2c, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x67, 0x72, 0x65, 0x79, 0x3a, 0x31, 0x33, 0x38, 0x38, + 0x32, 0x33, 0x32, 0x33, 0x2c, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x70, + 0x69, 0x6e, 0x6b, 0x3a, 0x31, 0x36, 0x37, 0x35, 0x38, 0x34, 0x36, + 0x35, 0x2c, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x61, 0x6c, 0x6d, + 0x6f, 0x6e, 0x3a, 0x31, 0x36, 0x37, 0x35, 0x32, 0x37, 0x36, 0x32, + 0x2c, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x65, 0x61, 0x67, 0x72, + 0x65, 0x65, 0x6e, 0x3a, 0x32, 0x31, 0x34, 0x32, 0x38, 0x39, 0x30, + 0x2c, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x6b, 0x79, 0x62, 0x6c, + 0x75, 0x65, 0x3a, 0x38, 0x39, 0x30, 0x30, 0x33, 0x34, 0x36, 0x2c, + 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x67, + 0x72, 0x61, 0x79, 0x3a, 0x37, 0x38, 0x33, 0x33, 0x37, 0x35, 0x33, + 0x2c, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x6c, 0x61, 0x74, 0x65, + 0x67, 0x72, 0x65, 0x79, 0x3a, 0x37, 0x38, 0x33, 0x33, 0x37, 0x35, + 0x33, 0x2c, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x73, 0x74, 0x65, 0x65, + 0x6c, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x31, 0x31, 0x35, 0x38, 0x34, + 0x37, 0x33, 0x34, 0x2c, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x79, 0x65, + 0x6c, 0x6c, 0x6f, 0x77, 0x3a, 0x31, 0x36, 0x37, 0x37, 0x37, 0x31, + 0x38, 0x34, 0x2c, 0x6c, 0x69, 0x6d, 0x65, 0x3a, 0x36, 0x35, 0x32, + 0x38, 0x30, 0x2c, 0x6c, 0x69, 0x6d, 0x65, 0x67, 0x72, 0x65, 0x65, + 0x6e, 0x3a, 0x33, 0x33, 0x32, 0x39, 0x33, 0x33, 0x30, 0x2c, 0x6c, + 0x69, 0x6e, 0x65, 0x6e, 0x3a, 0x31, 0x36, 0x34, 0x34, 0x35, 0x36, + 0x37, 0x30, 0x2c, 0x6d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x61, 0x3a, + 0x31, 0x36, 0x37, 0x31, 0x31, 0x39, 0x33, 0x35, 0x2c, 0x6d, 0x61, + 0x72, 0x6f, 0x6f, 0x6e, 0x3a, 0x38, 0x33, 0x38, 0x38, 0x36, 0x30, + 0x38, 0x2c, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x61, 0x71, 0x75, + 0x61, 0x6d, 0x61, 0x72, 0x69, 0x6e, 0x65, 0x3a, 0x36, 0x37, 0x33, + 0x37, 0x33, 0x32, 0x32, 0x2c, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, + 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x32, 0x30, 0x35, 0x2c, 0x6d, 0x65, + 0x64, 0x69, 0x75, 0x6d, 0x6f, 0x72, 0x63, 0x68, 0x69, 0x64, 0x3a, + 0x31, 0x32, 0x32, 0x31, 0x31, 0x36, 0x36, 0x37, 0x2c, 0x6d, 0x65, + 0x64, 0x69, 0x75, 0x6d, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x3a, + 0x39, 0x36, 0x36, 0x32, 0x36, 0x38, 0x33, 0x2c, 0x6d, 0x65, 0x64, + 0x69, 0x75, 0x6d, 0x73, 0x65, 0x61, 0x67, 0x72, 0x65, 0x65, 0x6e, + 0x3a, 0x33, 0x39, 0x37, 0x38, 0x30, 0x39, 0x37, 0x2c, 0x6d, 0x65, + 0x64, 0x69, 0x75, 0x6d, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x62, 0x6c, + 0x75, 0x65, 0x3a, 0x38, 0x30, 0x38, 0x37, 0x37, 0x39, 0x30, 0x2c, + 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x73, 0x70, 0x72, 0x69, 0x6e, + 0x67, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x3a, 0x36, 0x34, 0x31, 0x35, + 0x34, 0x2c, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x74, 0x75, 0x72, + 0x71, 0x75, 0x6f, 0x69, 0x73, 0x65, 0x3a, 0x34, 0x37, 0x37, 0x32, + 0x33, 0x30, 0x30, 0x2c, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x76, + 0x69, 0x6f, 0x6c, 0x65, 0x74, 0x72, 0x65, 0x64, 0x3a, 0x31, 0x33, + 0x30, 0x34, 0x37, 0x31, 0x37, 0x33, 0x2c, 0x6d, 0x69, 0x64, 0x6e, + 0x69, 0x67, 0x68, 0x74, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x31, 0x36, + 0x34, 0x34, 0x39, 0x31, 0x32, 0x2c, 0x6d, 0x69, 0x6e, 0x74, 0x63, + 0x72, 0x65, 0x61, 0x6d, 0x3a, 0x31, 0x36, 0x31, 0x32, 0x31, 0x38, + 0x35, 0x30, 0x2c, 0x6d, 0x69, 0x73, 0x74, 0x79, 0x72, 0x6f, 0x73, + 0x65, 0x3a, 0x31, 0x36, 0x37, 0x37, 0x30, 0x32, 0x37, 0x33, 0x2c, + 0x6d, 0x6f, 0x63, 0x63, 0x61, 0x73, 0x69, 0x6e, 0x3a, 0x31, 0x36, + 0x37, 0x37, 0x30, 0x32, 0x32, 0x39, 0x2c, 0x6e, 0x61, 0x76, 0x61, + 0x6a, 0x6f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3a, 0x31, 0x36, 0x37, + 0x36, 0x38, 0x36, 0x38, 0x35, 0x2c, 0x6e, 0x61, 0x76, 0x79, 0x3a, + 0x31, 0x32, 0x38, 0x2c, 0x6f, 0x6c, 0x64, 0x6c, 0x61, 0x63, 0x65, + 0x3a, 0x31, 0x36, 0x36, 0x34, 0x33, 0x35, 0x35, 0x38, 0x2c, 0x6f, + 0x6c, 0x69, 0x76, 0x65, 0x3a, 0x38, 0x34, 0x32, 0x31, 0x33, 0x37, + 0x36, 0x2c, 0x6f, 0x6c, 0x69, 0x76, 0x65, 0x64, 0x72, 0x61, 0x62, + 0x3a, 0x37, 0x30, 0x34, 0x38, 0x37, 0x33, 0x39, 0x2c, 0x6f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x31, 0x36, 0x37, 0x35, 0x33, 0x39, + 0x32, 0x30, 0x2c, 0x6f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x65, + 0x64, 0x3a, 0x31, 0x36, 0x37, 0x32, 0x39, 0x33, 0x34, 0x34, 0x2c, + 0x6f, 0x72, 0x63, 0x68, 0x69, 0x64, 0x3a, 0x31, 0x34, 0x33, 0x31, + 0x35, 0x37, 0x33, 0x34, 0x2c, 0x70, 0x61, 0x6c, 0x65, 0x67, 0x6f, + 0x6c, 0x64, 0x65, 0x6e, 0x72, 0x6f, 0x64, 0x3a, 0x31, 0x35, 0x36, + 0x35, 0x37, 0x31, 0x33, 0x30, 0x2c, 0x70, 0x61, 0x6c, 0x65, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0x3a, 0x31, 0x30, 0x30, 0x32, 0x35, 0x38, + 0x38, 0x30, 0x2c, 0x70, 0x61, 0x6c, 0x65, 0x74, 0x75, 0x72, 0x71, + 0x75, 0x6f, 0x69, 0x73, 0x65, 0x3a, 0x31, 0x31, 0x35, 0x32, 0x39, + 0x39, 0x36, 0x36, 0x2c, 0x70, 0x61, 0x6c, 0x65, 0x76, 0x69, 0x6f, + 0x6c, 0x65, 0x74, 0x72, 0x65, 0x64, 0x3a, 0x31, 0x34, 0x33, 0x38, + 0x31, 0x32, 0x30, 0x33, 0x2c, 0x70, 0x61, 0x70, 0x61, 0x79, 0x61, + 0x77, 0x68, 0x69, 0x70, 0x3a, 0x31, 0x36, 0x37, 0x37, 0x33, 0x30, + 0x37, 0x37, 0x2c, 0x70, 0x65, 0x61, 0x63, 0x68, 0x70, 0x75, 0x66, + 0x66, 0x3a, 0x31, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x33, 0x2c, + 0x70, 0x65, 0x72, 0x75, 0x3a, 0x31, 0x33, 0x34, 0x36, 0x38, 0x39, + 0x39, 0x31, 0x2c, 0x70, 0x69, 0x6e, 0x6b, 0x3a, 0x31, 0x36, 0x37, + 0x36, 0x31, 0x30, 0x33, 0x35, 0x2c, 0x70, 0x6c, 0x75, 0x6d, 0x3a, + 0x31, 0x34, 0x35, 0x32, 0x34, 0x36, 0x33, 0x37, 0x2c, 0x70, 0x6f, + 0x77, 0x64, 0x65, 0x72, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x31, 0x31, + 0x35, 0x39, 0x31, 0x39, 0x31, 0x30, 0x2c, 0x70, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x3a, 0x38, 0x33, 0x38, 0x38, 0x37, 0x33, 0x36, 0x2c, + 0x72, 0x65, 0x62, 0x65, 0x63, 0x63, 0x61, 0x70, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x3a, 0x36, 0x36, 0x39, 0x37, 0x38, 0x38, 0x31, 0x2c, + 0x72, 0x65, 0x64, 0x3a, 0x31, 0x36, 0x37, 0x31, 0x31, 0x36, 0x38, + 0x30, 0x2c, 0x72, 0x6f, 0x73, 0x79, 0x62, 0x72, 0x6f, 0x77, 0x6e, + 0x3a, 0x31, 0x32, 0x33, 0x35, 0x37, 0x35, 0x31, 0x39, 0x2c, 0x72, + 0x6f, 0x79, 0x61, 0x6c, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x34, 0x32, + 0x38, 0x36, 0x39, 0x34, 0x35, 0x2c, 0x73, 0x61, 0x64, 0x64, 0x6c, + 0x65, 0x62, 0x72, 0x6f, 0x77, 0x6e, 0x3a, 0x39, 0x31, 0x32, 0x37, + 0x31, 0x38, 0x37, 0x2c, 0x73, 0x61, 0x6c, 0x6d, 0x6f, 0x6e, 0x3a, + 0x31, 0x36, 0x34, 0x31, 0x36, 0x38, 0x38, 0x32, 0x2c, 0x73, 0x61, + 0x6e, 0x64, 0x79, 0x62, 0x72, 0x6f, 0x77, 0x6e, 0x3a, 0x31, 0x36, + 0x30, 0x33, 0x32, 0x38, 0x36, 0x34, 0x2c, 0x73, 0x65, 0x61, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0x3a, 0x33, 0x30, 0x35, 0x30, 0x33, 0x32, + 0x37, 0x2c, 0x73, 0x65, 0x61, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x3a, + 0x31, 0x36, 0x37, 0x37, 0x34, 0x36, 0x33, 0x38, 0x2c, 0x73, 0x69, + 0x65, 0x6e, 0x6e, 0x61, 0x3a, 0x31, 0x30, 0x35, 0x30, 0x36, 0x37, + 0x39, 0x37, 0x2c, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x3a, 0x31, + 0x32, 0x36, 0x33, 0x32, 0x32, 0x35, 0x36, 0x2c, 0x73, 0x6b, 0x79, + 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x38, 0x39, 0x30, 0x30, 0x33, 0x33, + 0x31, 0x2c, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x62, 0x6c, 0x75, 0x65, + 0x3a, 0x36, 0x39, 0x37, 0x30, 0x30, 0x36, 0x31, 0x2c, 0x73, 0x6c, + 0x61, 0x74, 0x65, 0x67, 0x72, 0x61, 0x79, 0x3a, 0x37, 0x33, 0x37, + 0x32, 0x39, 0x34, 0x34, 0x2c, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x67, + 0x72, 0x65, 0x79, 0x3a, 0x37, 0x33, 0x37, 0x32, 0x39, 0x34, 0x34, + 0x2c, 0x73, 0x6e, 0x6f, 0x77, 0x3a, 0x31, 0x36, 0x37, 0x37, 0x35, + 0x39, 0x33, 0x30, 0x2c, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x67, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0x3a, 0x36, 0x35, 0x34, 0x30, 0x37, 0x2c, + 0x73, 0x74, 0x65, 0x65, 0x6c, 0x62, 0x6c, 0x75, 0x65, 0x3a, 0x34, + 0x36, 0x32, 0x30, 0x39, 0x38, 0x30, 0x2c, 0x74, 0x61, 0x6e, 0x3a, + 0x31, 0x33, 0x38, 0x30, 0x38, 0x37, 0x38, 0x30, 0x2c, 0x74, 0x65, + 0x61, 0x6c, 0x3a, 0x33, 0x32, 0x38, 0x39, 0x36, 0x2c, 0x74, 0x68, + 0x69, 0x73, 0x74, 0x6c, 0x65, 0x3a, 0x31, 0x34, 0x32, 0x30, 0x34, + 0x38, 0x38, 0x38, 0x2c, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x6f, 0x3a, + 0x31, 0x36, 0x37, 0x33, 0x37, 0x30, 0x39, 0x35, 0x2c, 0x74, 0x75, + 0x72, 0x71, 0x75, 0x6f, 0x69, 0x73, 0x65, 0x3a, 0x34, 0x32, 0x35, + 0x31, 0x38, 0x35, 0x36, 0x2c, 0x76, 0x69, 0x6f, 0x6c, 0x65, 0x74, + 0x3a, 0x31, 0x35, 0x36, 0x33, 0x31, 0x30, 0x38, 0x36, 0x2c, 0x77, + 0x68, 0x65, 0x61, 0x74, 0x3a, 0x31, 0x36, 0x31, 0x31, 0x33, 0x33, + 0x33, 0x31, 0x2c, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3a, 0x31, 0x36, + 0x37, 0x37, 0x37, 0x32, 0x31, 0x35, 0x2c, 0x77, 0x68, 0x69, 0x74, + 0x65, 0x73, 0x6d, 0x6f, 0x6b, 0x65, 0x3a, 0x31, 0x36, 0x31, 0x31, + 0x39, 0x32, 0x38, 0x35, 0x2c, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, + 0x3a, 0x31, 0x36, 0x37, 0x37, 0x36, 0x39, 0x36, 0x30, 0x2c, 0x79, + 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x3a, + 0x31, 0x30, 0x31, 0x34, 0x35, 0x30, 0x37, 0x34, 0x7d, 0x29, 0x3b, + 0x47, 0x61, 0x2e, 0x66, 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x47, 0x61, 0x2e, 0x73, 0x65, 0x74, 0x28, 0x6e, + 0x2c, 0x79, 0x74, 0x28, 0x74, 0x29, 0x29, 0x7d, 0x29, 0x2c, 0x74, + 0x61, 0x2e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x6f, 0x72, 0x3d, 0x45, + 0x74, 0x2c, 0x74, 0x61, 0x2e, 0x78, 0x68, 0x72, 0x3d, 0x41, 0x74, + 0x28, 0x79, 0x29, 0x2c, 0x74, 0x61, 0x2e, 0x64, 0x73, 0x76, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x65, 0x28, 0x6e, 0x2c, 0x65, 0x2c, 0x69, 0x29, 0x7b, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x33, 0x26, 0x26, 0x28, 0x69, 0x3d, + 0x65, 0x2c, 0x65, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x4e, 0x74, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x65, 0x3f, 0x72, 0x3a, + 0x75, 0x28, 0x65, 0x29, 0x2c, 0x69, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x2e, 0x72, 0x6f, 0x77, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x6f, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x28, 0x65, 0x3d, + 0x6e, 0x29, 0x3f, 0x72, 0x3a, 0x75, 0x28, 0x6e, 0x29, 0x29, 0x3a, + 0x65, 0x7d, 0x2c, 0x6f, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, + 0x28, 0x6e, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x54, 0x65, 0x78, 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x28, 0x74, + 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x2c, 0x6e, 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x6d, 0x61, 0x70, + 0x28, 0x6f, 0x29, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x6e, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x28, 0x6e, 0x29, 0x3f, 0x27, + 0x22, 0x27, 0x2b, 0x6e, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x28, 0x2f, 0x5c, 0x22, 0x2f, 0x67, 0x2c, 0x27, 0x22, 0x22, + 0x27, 0x29, 0x2b, 0x27, 0x22, 0x27, 0x3a, 0x6e, 0x7d, 0x76, 0x61, + 0x72, 0x20, 0x61, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x52, 0x65, 0x67, + 0x45, 0x78, 0x70, 0x28, 0x27, 0x5b, 0x22, 0x27, 0x2b, 0x6e, 0x2b, + 0x22, 0x5c, 0x6e, 0x5d, 0x22, 0x29, 0x2c, 0x63, 0x3d, 0x6e, 0x2e, + 0x63, 0x68, 0x61, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x28, + 0x30, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, + 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x52, 0x6f, 0x77, + 0x73, 0x28, 0x6e, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x72, + 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x28, 0x6e, + 0x2c, 0x65, 0x2d, 0x31, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x75, + 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x22, 0x64, 0x22, 0x2c, 0x22, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x7b, 0x22, 0x2b, 0x6e, 0x2e, 0x6d, 0x61, + 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x69, 0x66, 0x79, 0x28, 0x6e, 0x29, 0x2b, 0x22, 0x3a, 0x20, + 0x64, 0x5b, 0x22, 0x2b, 0x74, 0x2b, 0x22, 0x5d, 0x22, 0x7d, 0x29, + 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x2c, 0x22, 0x29, 0x2b, + 0x22, 0x7d, 0x22, 0x29, 0x3b, 0x72, 0x3d, 0x74, 0x3f, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x28, 0x75, + 0x28, 0x6e, 0x29, 0x2c, 0x65, 0x29, 0x7d, 0x3a, 0x75, 0x7d, 0x29, + 0x7d, 0x2c, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x52, 0x6f, + 0x77, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x29, 0x7b, 0x69, 0x66, 0x28, + 0x73, 0x3e, 0x3d, 0x6c, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6f, 0x3b, 0x69, 0x66, 0x28, 0x75, 0x29, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x75, 0x3d, 0x21, 0x31, 0x2c, 0x69, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x73, 0x3b, 0x69, 0x66, 0x28, + 0x33, 0x34, 0x3d, 0x3d, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, + 0x43, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x28, 0x74, 0x29, 0x29, 0x7b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x74, + 0x3b, 0x65, 0x2b, 0x2b, 0x3c, 0x6c, 0x3b, 0x29, 0x69, 0x66, 0x28, + 0x33, 0x34, 0x3d, 0x3d, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, + 0x43, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x28, 0x65, 0x29, 0x29, 0x7b, + 0x69, 0x66, 0x28, 0x33, 0x34, 0x21, 0x3d, 0x3d, 0x6e, 0x2e, 0x63, + 0x68, 0x61, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x28, 0x65, + 0x2b, 0x31, 0x29, 0x29, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x2b, + 0x2b, 0x65, 0x7d, 0x73, 0x3d, 0x65, 0x2b, 0x32, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x72, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x43, + 0x6f, 0x64, 0x65, 0x41, 0x74, 0x28, 0x65, 0x2b, 0x31, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x33, 0x3d, 0x3d, + 0x3d, 0x72, 0x3f, 0x28, 0x75, 0x3d, 0x21, 0x30, 0x2c, 0x31, 0x30, + 0x3d, 0x3d, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x41, 0x74, 0x28, 0x65, 0x2b, 0x32, 0x29, 0x26, 0x26, + 0x2b, 0x2b, 0x73, 0x29, 0x3a, 0x31, 0x30, 0x3d, 0x3d, 0x3d, 0x72, + 0x26, 0x26, 0x28, 0x75, 0x3d, 0x21, 0x30, 0x29, 0x2c, 0x6e, 0x2e, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x74, 0x2b, 0x31, 0x2c, 0x65, + 0x29, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x2f, + 0x22, 0x22, 0x2f, 0x67, 0x2c, 0x27, 0x22, 0x27, 0x29, 0x7d, 0x66, + 0x6f, 0x72, 0x28, 0x3b, 0x6c, 0x3e, 0x73, 0x3b, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, + 0x43, 0x6f, 0x64, 0x65, 0x41, 0x74, 0x28, 0x73, 0x2b, 0x2b, 0x29, + 0x2c, 0x61, 0x3d, 0x31, 0x3b, 0x69, 0x66, 0x28, 0x31, 0x30, 0x3d, + 0x3d, 0x3d, 0x72, 0x29, 0x75, 0x3d, 0x21, 0x30, 0x3b, 0x65, 0x6c, + 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x31, 0x33, 0x3d, 0x3d, 0x3d, + 0x72, 0x29, 0x75, 0x3d, 0x21, 0x30, 0x2c, 0x31, 0x30, 0x3d, 0x3d, + 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x41, 0x74, 0x28, 0x73, 0x29, 0x26, 0x26, 0x28, 0x2b, 0x2b, 0x73, + 0x2c, 0x2b, 0x2b, 0x61, 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, + 0x69, 0x66, 0x28, 0x72, 0x21, 0x3d, 0x3d, 0x63, 0x29, 0x63, 0x6f, + 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, + 0x74, 0x2c, 0x73, 0x2d, 0x61, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, + 0x74, 0x29, 0x7d, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x3d, 0x7b, 0x7d, 0x2c, 0x6f, 0x3d, + 0x7b, 0x7d, 0x2c, 0x61, 0x3d, 0x5b, 0x5d, 0x2c, 0x6c, 0x3d, 0x6e, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x73, 0x3d, 0x30, + 0x2c, 0x66, 0x3d, 0x30, 0x3b, 0x28, 0x72, 0x3d, 0x65, 0x28, 0x29, + 0x29, 0x21, 0x3d, 0x3d, 0x6f, 0x3b, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x68, 0x3d, 0x5b, 0x5d, 0x3b, 0x72, + 0x21, 0x3d, 0x3d, 0x69, 0x26, 0x26, 0x72, 0x21, 0x3d, 0x3d, 0x6f, + 0x3b, 0x29, 0x68, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x29, + 0x2c, 0x72, 0x3d, 0x65, 0x28, 0x29, 0x3b, 0x74, 0x26, 0x26, 0x6e, + 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x28, 0x68, 0x3d, 0x74, 0x28, 0x68, + 0x2c, 0x66, 0x2b, 0x2b, 0x29, 0x29, 0x7c, 0x7c, 0x61, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x68, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x7d, 0x2c, 0x65, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x2e, 0x69, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, + 0x74, 0x5b, 0x30, 0x5d, 0x29, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x65, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, + 0x6f, 0x77, 0x73, 0x28, 0x74, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x6d, 0x2c, 0x75, 0x3d, 0x5b, + 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, + 0x66, 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x6e, 0x29, 0x72, 0x2e, 0x68, 0x61, 0x73, 0x28, 0x74, 0x29, 0x7c, + 0x7c, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x2e, 0x61, + 0x64, 0x64, 0x28, 0x74, 0x29, 0x29, 0x7d, 0x29, 0x2c, 0x5b, 0x75, + 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x6f, 0x29, 0x2e, 0x6a, 0x6f, 0x69, + 0x6e, 0x28, 0x6e, 0x29, 0x5d, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x61, + 0x74, 0x28, 0x74, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x2e, 0x6d, 0x61, 0x70, 0x28, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x28, 0x74, + 0x5b, 0x6e, 0x5d, 0x29, 0x7d, 0x29, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, + 0x28, 0x6e, 0x29, 0x7d, 0x29, 0x29, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, + 0x28, 0x22, 0x5c, 0x6e, 0x22, 0x29, 0x7d, 0x2c, 0x65, 0x2e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x6f, 0x77, 0x73, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x6d, 0x61, + 0x70, 0x28, 0x69, 0x29, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x22, + 0x5c, 0x6e, 0x22, 0x29, 0x7d, 0x2c, 0x65, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x63, 0x73, 0x76, 0x3d, 0x74, 0x61, 0x2e, 0x64, 0x73, 0x76, + 0x28, 0x22, 0x2c, 0x22, 0x2c, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, + 0x63, 0x73, 0x76, 0x22, 0x29, 0x2c, 0x74, 0x61, 0x2e, 0x74, 0x73, + 0x76, 0x3d, 0x74, 0x61, 0x2e, 0x64, 0x73, 0x76, 0x28, 0x22, 0x09, + 0x22, 0x2c, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x74, 0x61, 0x62, + 0x2d, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2d, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x4b, 0x61, 0x2c, 0x51, 0x61, 0x2c, 0x6e, 0x63, 0x2c, + 0x74, 0x63, 0x2c, 0x65, 0x63, 0x2c, 0x72, 0x63, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x5b, 0x78, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x22, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x6e, 0x69, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x22, + 0x29, 0x5d, 0x7c, 0x7c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x28, 0x6e, 0x2c, 0x31, 0x37, 0x29, 0x7d, + 0x3b, 0x74, 0x61, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x32, 0x3e, 0x72, 0x26, 0x26, 0x28, + 0x74, 0x3d, 0x30, 0x29, 0x2c, 0x33, 0x3e, 0x72, 0x26, 0x26, 0x28, + 0x65, 0x3d, 0x44, 0x61, 0x74, 0x65, 0x2e, 0x6e, 0x6f, 0x77, 0x28, + 0x29, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x65, 0x2b, + 0x74, 0x2c, 0x69, 0x3d, 0x7b, 0x63, 0x3a, 0x6e, 0x2c, 0x74, 0x3a, + 0x75, 0x2c, 0x66, 0x3a, 0x21, 0x31, 0x2c, 0x6e, 0x3a, 0x6e, 0x75, + 0x6c, 0x6c, 0x7d, 0x3b, 0x51, 0x61, 0x3f, 0x51, 0x61, 0x2e, 0x6e, + 0x3d, 0x69, 0x3a, 0x4b, 0x61, 0x3d, 0x69, 0x2c, 0x51, 0x61, 0x3d, + 0x69, 0x2c, 0x6e, 0x63, 0x7c, 0x7c, 0x28, 0x74, 0x63, 0x3d, 0x63, + 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x28, 0x74, 0x63, 0x29, 0x2c, 0x6e, 0x63, 0x3d, 0x31, 0x2c, 0x72, + 0x63, 0x28, 0x71, 0x74, 0x29, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, + 0x74, 0x69, 0x6d, 0x65, 0x72, 0x2e, 0x66, 0x6c, 0x75, 0x73, 0x68, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x4c, 0x74, 0x28, 0x29, 0x2c, 0x54, 0x74, 0x28, 0x29, 0x7d, + 0x2c, 0x74, 0x61, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x3f, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, + 0x6e, 0x2a, 0x28, 0x74, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x70, + 0x6f, 0x77, 0x28, 0x31, 0x30, 0x2c, 0x74, 0x29, 0x29, 0x29, 0x2f, + 0x74, 0x3a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x28, 0x6e, 0x29, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x75, + 0x63, 0x3d, 0x5b, 0x22, 0x79, 0x22, 0x2c, 0x22, 0x7a, 0x22, 0x2c, + 0x22, 0x61, 0x22, 0x2c, 0x22, 0x66, 0x22, 0x2c, 0x22, 0x70, 0x22, + 0x2c, 0x22, 0x6e, 0x22, 0x2c, 0x22, 0x5c, 0x78, 0x62, 0x35, 0x22, + 0x2c, 0x22, 0x6d, 0x22, 0x2c, 0x22, 0x22, 0x2c, 0x22, 0x6b, 0x22, + 0x2c, 0x22, 0x4d, 0x22, 0x2c, 0x22, 0x47, 0x22, 0x2c, 0x22, 0x54, + 0x22, 0x2c, 0x22, 0x50, 0x22, 0x2c, 0x22, 0x45, 0x22, 0x2c, 0x22, + 0x5a, 0x22, 0x2c, 0x22, 0x59, 0x22, 0x5d, 0x2e, 0x6d, 0x61, 0x70, + 0x28, 0x44, 0x74, 0x29, 0x3b, 0x74, 0x61, 0x2e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x30, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x26, 0x26, 0x28, 0x30, + 0x3e, 0x6e, 0x26, 0x26, 0x28, 0x6e, 0x2a, 0x3d, 0x2d, 0x31, 0x29, + 0x2c, 0x74, 0x26, 0x26, 0x28, 0x6e, 0x3d, 0x74, 0x61, 0x2e, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x6e, 0x2c, 0x52, 0x74, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x29, 0x29, 0x2c, 0x65, 0x3d, 0x31, 0x2b, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x31, + 0x65, 0x2d, 0x31, 0x32, 0x2b, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6c, + 0x6f, 0x67, 0x28, 0x6e, 0x29, 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x4c, 0x4e, 0x31, 0x30, 0x29, 0x2c, 0x65, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x2d, 0x32, 0x34, 0x2c, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x32, 0x34, 0x2c, + 0x33, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, + 0x72, 0x28, 0x28, 0x65, 0x2d, 0x31, 0x29, 0x2f, 0x33, 0x29, 0x29, + 0x29, 0x29, 0x2c, 0x75, 0x63, 0x5b, 0x38, 0x2b, 0x65, 0x2f, 0x33, + 0x5d, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x63, 0x3d, 0x2f, + 0x28, 0x3f, 0x3a, 0x28, 0x5b, 0x5e, 0x7b, 0x5d, 0x29, 0x3f, 0x28, + 0x5b, 0x3c, 0x3e, 0x3d, 0x5e, 0x5d, 0x29, 0x29, 0x3f, 0x28, 0x5b, + 0x2b, 0x5c, 0x2d, 0x20, 0x5d, 0x29, 0x3f, 0x28, 0x5b, 0x24, 0x23, + 0x5d, 0x29, 0x3f, 0x28, 0x30, 0x29, 0x3f, 0x28, 0x5c, 0x64, 0x2b, + 0x29, 0x3f, 0x28, 0x2c, 0x29, 0x3f, 0x28, 0x5c, 0x2e, 0x2d, 0x3f, + 0x5c, 0x64, 0x2b, 0x29, 0x3f, 0x28, 0x5b, 0x61, 0x2d, 0x7a, 0x25, + 0x5d, 0x29, 0x3f, 0x2f, 0x69, 0x2c, 0x6f, 0x63, 0x3d, 0x74, 0x61, + 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x7b, 0x62, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x74, 0x6f, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x32, 0x29, 0x7d, 0x2c, 0x63, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x28, 0x6e, 0x29, 0x7d, 0x2c, 0x6f, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, + 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x38, 0x29, + 0x7d, 0x2c, 0x78, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x2e, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x31, 0x36, 0x29, 0x7d, 0x2c, 0x58, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x74, 0x6f, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x28, 0x31, 0x36, 0x29, 0x2e, 0x74, 0x6f, + 0x55, 0x70, 0x70, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, 0x28, 0x29, + 0x7d, 0x2c, 0x67, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x74, 0x6f, 0x50, 0x72, 0x65, 0x63, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7d, 0x2c, 0x65, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x2e, 0x74, 0x6f, 0x45, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x28, 0x74, 0x29, 0x7d, 0x2c, 0x66, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x74, 0x6f, 0x46, 0x69, 0x78, 0x65, 0x64, 0x28, 0x74, 0x29, + 0x7d, 0x2c, 0x72, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x28, 0x6e, 0x3d, 0x74, 0x61, 0x2e, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x28, 0x6e, 0x2c, 0x52, 0x74, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x29, 0x29, 0x2e, 0x74, 0x6f, 0x46, 0x69, 0x78, 0x65, 0x64, + 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x30, + 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x32, + 0x30, 0x2c, 0x52, 0x74, 0x28, 0x6e, 0x2a, 0x28, 0x31, 0x2b, 0x31, + 0x65, 0x2d, 0x31, 0x35, 0x29, 0x2c, 0x74, 0x29, 0x29, 0x29, 0x29, + 0x7d, 0x7d, 0x29, 0x2c, 0x61, 0x63, 0x3d, 0x74, 0x61, 0x2e, 0x74, + 0x69, 0x6d, 0x65, 0x3d, 0x7b, 0x7d, 0x2c, 0x63, 0x63, 0x3d, 0x44, + 0x61, 0x74, 0x65, 0x3b, 0x6a, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x7b, 0x67, 0x65, 0x74, 0x44, + 0x61, 0x74, 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x2e, 0x67, 0x65, 0x74, 0x55, + 0x54, 0x43, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x7d, 0x2c, 0x67, + 0x65, 0x74, 0x44, 0x61, 0x79, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x2e, 0x67, 0x65, + 0x74, 0x55, 0x54, 0x43, 0x44, 0x61, 0x79, 0x28, 0x29, 0x7d, 0x2c, + 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x5f, 0x2e, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x46, + 0x75, 0x6c, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x28, 0x29, 0x7d, 0x2c, + 0x67, 0x65, 0x74, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, + 0x2e, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x48, 0x6f, 0x75, 0x72, + 0x73, 0x28, 0x29, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x4d, 0x69, 0x6c, + 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x5f, 0x2e, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4d, 0x69, 0x6c, + 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x28, 0x29, + 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, + 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x5f, 0x2e, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, + 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x28, 0x29, 0x7d, 0x2c, + 0x67, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, + 0x2e, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4d, 0x6f, 0x6e, 0x74, + 0x68, 0x28, 0x29, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x53, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x2e, 0x67, 0x65, 0x74, + 0x55, 0x54, 0x43, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x28, + 0x29, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x5f, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x28, + 0x29, 0x7d, 0x2c, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x7a, + 0x6f, 0x6e, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x30, 0x7d, 0x2c, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x4f, 0x66, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x2e, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x4f, 0x66, 0x28, 0x29, 0x7d, 0x2c, 0x73, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x6c, 0x63, 0x2e, 0x73, 0x65, + 0x74, 0x55, 0x54, 0x43, 0x44, 0x61, 0x74, 0x65, 0x2e, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x2c, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x7d, + 0x2c, 0x73, 0x65, 0x74, 0x44, 0x61, 0x79, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x6c, 0x63, 0x2e, + 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x44, 0x61, 0x79, 0x2e, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, + 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x6c, 0x63, 0x2e, 0x73, 0x65, 0x74, 0x55, 0x54, + 0x43, 0x46, 0x75, 0x6c, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x2e, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, + 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x6c, 0x63, 0x2e, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x48, 0x6f, + 0x75, 0x72, 0x73, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x29, 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x4d, + 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x6c, 0x63, 0x2e, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4d, + 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x5f, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x29, 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x4d, 0x69, 0x6e, 0x75, + 0x74, 0x65, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x6c, 0x63, 0x2e, 0x73, 0x65, 0x74, 0x55, + 0x54, 0x43, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, + 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x6c, 0x63, 0x2e, 0x73, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4d, 0x6f, + 0x6e, 0x74, 0x68, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x29, 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x6c, 0x63, 0x2e, 0x73, + 0x65, 0x74, 0x55, 0x54, 0x43, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x5f, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x29, 0x7d, 0x2c, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x6c, 0x63, 0x2e, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x5f, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x29, 0x7d, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6c, + 0x63, 0x3d, 0x44, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x74, 0x79, 0x70, 0x65, 0x3b, 0x61, 0x63, 0x2e, 0x79, 0x65, + 0x61, 0x72, 0x3d, 0x46, 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x3d, 0x61, 0x63, 0x2e, 0x64, 0x61, 0x79, + 0x28, 0x6e, 0x29, 0x2c, 0x6e, 0x2e, 0x73, 0x65, 0x74, 0x4d, 0x6f, + 0x6e, 0x74, 0x68, 0x28, 0x30, 0x2c, 0x31, 0x29, 0x2c, 0x6e, 0x7d, + 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x2e, 0x73, 0x65, 0x74, 0x46, 0x75, + 0x6c, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x28, 0x6e, 0x2e, 0x67, 0x65, + 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x28, 0x29, + 0x2b, 0x74, 0x29, 0x7d, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, + 0x59, 0x65, 0x61, 0x72, 0x28, 0x29, 0x7d, 0x29, 0x2c, 0x61, 0x63, + 0x2e, 0x79, 0x65, 0x61, 0x72, 0x73, 0x3d, 0x61, 0x63, 0x2e, 0x79, + 0x65, 0x61, 0x72, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, 0x61, + 0x63, 0x2e, 0x79, 0x65, 0x61, 0x72, 0x73, 0x2e, 0x75, 0x74, 0x63, + 0x3d, 0x61, 0x63, 0x2e, 0x79, 0x65, 0x61, 0x72, 0x2e, 0x75, 0x74, + 0x63, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, 0x61, 0x63, 0x2e, + 0x64, 0x61, 0x79, 0x3d, 0x46, 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x63, 0x63, 0x28, 0x32, + 0x65, 0x33, 0x2c, 0x30, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x2e, 0x73, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, + 0x59, 0x65, 0x61, 0x72, 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x46, + 0x75, 0x6c, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x28, 0x29, 0x2c, 0x6e, + 0x2e, 0x67, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x28, 0x29, + 0x2c, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, + 0x29, 0x29, 0x2c, 0x74, 0x7d, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x2e, + 0x73, 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, 0x6e, 0x2e, 0x67, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x2b, 0x74, 0x29, + 0x7d, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x2d, + 0x31, 0x7d, 0x29, 0x2c, 0x61, 0x63, 0x2e, 0x64, 0x61, 0x79, 0x73, + 0x3d, 0x61, 0x63, 0x2e, 0x64, 0x61, 0x79, 0x2e, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x2c, 0x61, 0x63, 0x2e, 0x64, 0x61, 0x79, 0x73, 0x2e, + 0x75, 0x74, 0x63, 0x3d, 0x61, 0x63, 0x2e, 0x64, 0x61, 0x79, 0x2e, + 0x75, 0x74, 0x63, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, 0x61, + 0x63, 0x2e, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x59, 0x65, 0x61, 0x72, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x61, 0x63, 0x2e, + 0x79, 0x65, 0x61, 0x72, 0x28, 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, + 0x6f, 0x6f, 0x72, 0x28, 0x28, 0x6e, 0x2d, 0x74, 0x2d, 0x36, 0x65, + 0x34, 0x2a, 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x28, 0x29, 0x2d, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x28, 0x29, 0x29, 0x29, 0x2f, 0x38, 0x36, 0x34, 0x65, 0x35, 0x29, + 0x7d, 0x2c, 0x5b, 0x22, 0x73, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x22, + 0x2c, 0x22, 0x6d, 0x6f, 0x6e, 0x64, 0x61, 0x79, 0x22, 0x2c, 0x22, + 0x74, 0x75, 0x65, 0x73, 0x64, 0x61, 0x79, 0x22, 0x2c, 0x22, 0x77, + 0x65, 0x64, 0x6e, 0x65, 0x73, 0x64, 0x61, 0x79, 0x22, 0x2c, 0x22, + 0x74, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x22, 0x2c, 0x22, + 0x66, 0x72, 0x69, 0x64, 0x61, 0x79, 0x22, 0x2c, 0x22, 0x73, 0x61, + 0x74, 0x75, 0x72, 0x64, 0x61, 0x79, 0x22, 0x5d, 0x2e, 0x66, 0x6f, + 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x74, 0x3d, + 0x37, 0x2d, 0x74, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x61, + 0x63, 0x5b, 0x6e, 0x5d, 0x3d, 0x46, 0x74, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x28, 0x6e, 0x3d, 0x61, 0x63, 0x2e, 0x64, + 0x61, 0x79, 0x28, 0x6e, 0x29, 0x29, 0x2e, 0x73, 0x65, 0x74, 0x44, + 0x61, 0x74, 0x65, 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x61, + 0x74, 0x65, 0x28, 0x29, 0x2d, 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x74, + 0x44, 0x61, 0x79, 0x28, 0x29, 0x2b, 0x74, 0x29, 0x25, 0x37, 0x29, + 0x2c, 0x6e, 0x7d, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x2e, 0x73, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x74, + 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x2b, 0x37, 0x2a, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x74, 0x29, + 0x29, 0x7d, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x61, + 0x63, 0x2e, 0x79, 0x65, 0x61, 0x72, 0x28, 0x6e, 0x29, 0x2e, 0x67, + 0x65, 0x74, 0x44, 0x61, 0x79, 0x28, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, + 0x6f, 0x6f, 0x72, 0x28, 0x28, 0x61, 0x63, 0x2e, 0x64, 0x61, 0x79, + 0x4f, 0x66, 0x59, 0x65, 0x61, 0x72, 0x28, 0x6e, 0x29, 0x2b, 0x28, + 0x65, 0x2b, 0x74, 0x29, 0x25, 0x37, 0x29, 0x2f, 0x37, 0x29, 0x2d, + 0x28, 0x65, 0x21, 0x3d, 0x3d, 0x74, 0x29, 0x7d, 0x29, 0x3b, 0x61, + 0x63, 0x5b, 0x6e, 0x2b, 0x22, 0x73, 0x22, 0x5d, 0x3d, 0x65, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, 0x61, 0x63, 0x5b, 0x6e, 0x2b, + 0x22, 0x73, 0x22, 0x5d, 0x2e, 0x75, 0x74, 0x63, 0x3d, 0x65, 0x2e, + 0x75, 0x74, 0x63, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, 0x61, + 0x63, 0x5b, 0x6e, 0x2b, 0x22, 0x4f, 0x66, 0x59, 0x65, 0x61, 0x72, + 0x22, 0x5d, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x61, + 0x63, 0x2e, 0x79, 0x65, 0x61, 0x72, 0x28, 0x6e, 0x29, 0x2e, 0x67, + 0x65, 0x74, 0x44, 0x61, 0x79, 0x28, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, + 0x6f, 0x6f, 0x72, 0x28, 0x28, 0x61, 0x63, 0x2e, 0x64, 0x61, 0x79, + 0x4f, 0x66, 0x59, 0x65, 0x61, 0x72, 0x28, 0x6e, 0x29, 0x2b, 0x28, + 0x65, 0x2b, 0x74, 0x29, 0x25, 0x37, 0x29, 0x2f, 0x37, 0x29, 0x7d, + 0x7d, 0x29, 0x2c, 0x61, 0x63, 0x2e, 0x77, 0x65, 0x65, 0x6b, 0x3d, + 0x61, 0x63, 0x2e, 0x73, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x2c, 0x61, + 0x63, 0x2e, 0x77, 0x65, 0x65, 0x6b, 0x73, 0x3d, 0x61, 0x63, 0x2e, + 0x73, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x2e, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x2c, 0x61, 0x63, 0x2e, 0x77, 0x65, 0x65, 0x6b, 0x73, 0x2e, + 0x75, 0x74, 0x63, 0x3d, 0x61, 0x63, 0x2e, 0x73, 0x75, 0x6e, 0x64, + 0x61, 0x79, 0x2e, 0x75, 0x74, 0x63, 0x2e, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x2c, 0x61, 0x63, 0x2e, 0x77, 0x65, 0x65, 0x6b, 0x4f, 0x66, + 0x59, 0x65, 0x61, 0x72, 0x3d, 0x61, 0x63, 0x2e, 0x73, 0x75, 0x6e, + 0x64, 0x61, 0x79, 0x4f, 0x66, 0x59, 0x65, 0x61, 0x72, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x73, 0x63, 0x3d, 0x7b, 0x22, 0x2d, 0x22, 0x3a, + 0x22, 0x22, 0x2c, 0x5f, 0x3a, 0x22, 0x20, 0x22, 0x2c, 0x30, 0x3a, + 0x22, 0x30, 0x22, 0x7d, 0x2c, 0x66, 0x63, 0x3d, 0x2f, 0x5e, 0x5c, + 0x73, 0x2a, 0x5c, 0x64, 0x2b, 0x2f, 0x2c, 0x68, 0x63, 0x3d, 0x2f, + 0x5e, 0x25, 0x2f, 0x3b, 0x74, 0x61, 0x2e, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x7b, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x3a, 0x50, 0x74, 0x28, 0x6e, 0x29, 0x2c, 0x74, 0x69, 0x6d, + 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x3a, 0x4f, 0x74, 0x28, + 0x6e, 0x29, 0x7d, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x67, 0x63, + 0x3d, 0x74, 0x61, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x28, + 0x7b, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x3a, 0x22, 0x2e, + 0x22, 0x2c, 0x74, 0x68, 0x6f, 0x75, 0x73, 0x61, 0x6e, 0x64, 0x73, + 0x3a, 0x22, 0x2c, 0x22, 0x2c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, + 0x6e, 0x67, 0x3a, 0x5b, 0x33, 0x5d, 0x2c, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x79, 0x3a, 0x5b, 0x22, 0x24, 0x22, 0x2c, 0x22, + 0x22, 0x5d, 0x2c, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x3a, 0x22, 0x25, 0x61, 0x20, 0x25, 0x62, 0x20, 0x25, 0x65, 0x20, + 0x25, 0x58, 0x20, 0x25, 0x59, 0x22, 0x2c, 0x64, 0x61, 0x74, 0x65, + 0x3a, 0x22, 0x25, 0x6d, 0x2f, 0x25, 0x64, 0x2f, 0x25, 0x59, 0x22, + 0x2c, 0x74, 0x69, 0x6d, 0x65, 0x3a, 0x22, 0x25, 0x48, 0x3a, 0x25, + 0x4d, 0x3a, 0x25, 0x53, 0x22, 0x2c, 0x70, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x73, 0x3a, 0x5b, 0x22, 0x41, 0x4d, 0x22, 0x2c, 0x22, 0x50, + 0x4d, 0x22, 0x5d, 0x2c, 0x64, 0x61, 0x79, 0x73, 0x3a, 0x5b, 0x22, + 0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x22, 0x2c, 0x22, 0x4d, 0x6f, + 0x6e, 0x64, 0x61, 0x79, 0x22, 0x2c, 0x22, 0x54, 0x75, 0x65, 0x73, + 0x64, 0x61, 0x79, 0x22, 0x2c, 0x22, 0x57, 0x65, 0x64, 0x6e, 0x65, + 0x73, 0x64, 0x61, 0x79, 0x22, 0x2c, 0x22, 0x54, 0x68, 0x75, 0x72, + 0x73, 0x64, 0x61, 0x79, 0x22, 0x2c, 0x22, 0x46, 0x72, 0x69, 0x64, + 0x61, 0x79, 0x22, 0x2c, 0x22, 0x53, 0x61, 0x74, 0x75, 0x72, 0x64, + 0x61, 0x79, 0x22, 0x5d, 0x2c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x44, + 0x61, 0x79, 0x73, 0x3a, 0x5b, 0x22, 0x53, 0x75, 0x6e, 0x22, 0x2c, + 0x22, 0x4d, 0x6f, 0x6e, 0x22, 0x2c, 0x22, 0x54, 0x75, 0x65, 0x22, + 0x2c, 0x22, 0x57, 0x65, 0x64, 0x22, 0x2c, 0x22, 0x54, 0x68, 0x75, + 0x22, 0x2c, 0x22, 0x46, 0x72, 0x69, 0x22, 0x2c, 0x22, 0x53, 0x61, + 0x74, 0x22, 0x5d, 0x2c, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x3a, + 0x5b, 0x22, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x22, 0x2c, + 0x22, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x79, 0x22, 0x2c, + 0x22, 0x4d, 0x61, 0x72, 0x63, 0x68, 0x22, 0x2c, 0x22, 0x41, 0x70, + 0x72, 0x69, 0x6c, 0x22, 0x2c, 0x22, 0x4d, 0x61, 0x79, 0x22, 0x2c, + 0x22, 0x4a, 0x75, 0x6e, 0x65, 0x22, 0x2c, 0x22, 0x4a, 0x75, 0x6c, + 0x79, 0x22, 0x2c, 0x22, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x22, + 0x2c, 0x22, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x2c, 0x22, 0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x22, + 0x2c, 0x22, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x2c, 0x22, 0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x5d, 0x2c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x4d, 0x6f, 0x6e, 0x74, + 0x68, 0x73, 0x3a, 0x5b, 0x22, 0x4a, 0x61, 0x6e, 0x22, 0x2c, 0x22, + 0x46, 0x65, 0x62, 0x22, 0x2c, 0x22, 0x4d, 0x61, 0x72, 0x22, 0x2c, + 0x22, 0x41, 0x70, 0x72, 0x22, 0x2c, 0x22, 0x4d, 0x61, 0x79, 0x22, + 0x2c, 0x22, 0x4a, 0x75, 0x6e, 0x22, 0x2c, 0x22, 0x4a, 0x75, 0x6c, + 0x22, 0x2c, 0x22, 0x41, 0x75, 0x67, 0x22, 0x2c, 0x22, 0x53, 0x65, + 0x70, 0x22, 0x2c, 0x22, 0x4f, 0x63, 0x74, 0x22, 0x2c, 0x22, 0x4e, + 0x6f, 0x76, 0x22, 0x2c, 0x22, 0x44, 0x65, 0x63, 0x22, 0x5d, 0x7d, + 0x29, 0x3b, 0x74, 0x61, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x3d, 0x67, 0x63, 0x2e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, + 0x6f, 0x3d, 0x7b, 0x7d, 0x2c, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x7b, 0x73, 0x3a, 0x30, + 0x2c, 0x74, 0x3a, 0x30, 0x2c, 0x61, 0x64, 0x64, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6c, + 0x65, 0x28, 0x6e, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x2c, + 0x70, 0x63, 0x29, 0x2c, 0x6c, 0x65, 0x28, 0x70, 0x63, 0x2e, 0x73, + 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x2c, 0x74, 0x68, 0x69, + 0x73, 0x29, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x3f, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x74, 0x2b, 0x3d, 0x70, 0x63, 0x2e, 0x74, + 0x3a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x3d, 0x70, 0x63, 0x2e, + 0x74, 0x7d, 0x2c, 0x72, 0x65, 0x73, 0x65, 0x74, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x73, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, + 0x3d, 0x30, 0x7d, 0x2c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x66, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x7d, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x70, + 0x63, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x63, 0x65, 0x3b, 0x74, 0x61, + 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x26, 0x26, 0x76, 0x63, 0x2e, 0x68, + 0x61, 0x73, 0x4f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x28, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x29, 0x3f, + 0x76, 0x63, 0x5b, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x5d, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x73, 0x65, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x76, 0x63, 0x3d, 0x7b, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x73, 0x65, 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x6f, 0x6d, 0x65, 0x74, + 0x72, 0x79, 0x2c, 0x74, 0x29, 0x7d, 0x2c, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x2e, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x73, 0x2c, 0x72, 0x3d, 0x2d, 0x31, 0x2c, 0x75, + 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, + 0x2b, 0x72, 0x3c, 0x75, 0x3b, 0x29, 0x73, 0x65, 0x28, 0x65, 0x5b, + 0x72, 0x5d, 0x2e, 0x67, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x2c, 0x74, 0x29, 0x7d, 0x7d, 0x2c, 0x64, 0x63, 0x3d, 0x7b, 0x53, + 0x70, 0x68, 0x65, 0x72, 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x74, 0x2e, + 0x73, 0x70, 0x68, 0x65, 0x72, 0x65, 0x28, 0x29, 0x7d, 0x2c, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x3d, 0x6e, + 0x2e, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x73, 0x2c, 0x74, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x6e, + 0x5b, 0x30, 0x5d, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, 0x2c, 0x6e, 0x5b, + 0x32, 0x5d, 0x29, 0x7d, 0x2c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x2e, 0x63, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x72, + 0x3d, 0x2d, 0x31, 0x2c, 0x75, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x72, 0x3c, 0x75, 0x3b, 0x29, + 0x6e, 0x3d, 0x65, 0x5b, 0x72, 0x5d, 0x2c, 0x74, 0x2e, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x6e, 0x5b, + 0x31, 0x5d, 0x2c, 0x6e, 0x5b, 0x32, 0x5d, 0x29, 0x7d, 0x2c, 0x4c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x66, 0x65, 0x28, 0x6e, 0x2e, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x2c, 0x74, 0x2c, 0x30, + 0x29, 0x7d, 0x2c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, + 0x2e, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x73, 0x2c, 0x72, 0x3d, 0x2d, 0x31, 0x2c, 0x75, 0x3d, 0x65, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x72, 0x3c, + 0x75, 0x3b, 0x29, 0x66, 0x65, 0x28, 0x65, 0x5b, 0x72, 0x5d, 0x2c, + 0x74, 0x2c, 0x30, 0x29, 0x7d, 0x2c, 0x50, 0x6f, 0x6c, 0x79, 0x67, + 0x6f, 0x6e, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x68, 0x65, 0x28, 0x6e, 0x2e, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x74, 0x29, 0x7d, 0x2c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x50, + 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x2e, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x2c, 0x72, 0x3d, 0x2d, 0x31, 0x2c, 0x75, 0x3d, 0x65, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x72, 0x3c, 0x75, + 0x3b, 0x29, 0x68, 0x65, 0x28, 0x65, 0x5b, 0x72, 0x5d, 0x2c, 0x74, + 0x29, 0x7d, 0x2c, 0x47, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x3d, 0x6e, 0x2e, 0x67, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x2c, 0x72, 0x3d, 0x2d, 0x31, 0x2c, 0x75, 0x3d, + 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, + 0x72, 0x3c, 0x75, 0x3b, 0x29, 0x73, 0x65, 0x28, 0x65, 0x5b, 0x72, + 0x5d, 0x2c, 0x74, 0x29, 0x7d, 0x7d, 0x3b, 0x74, 0x61, 0x2e, 0x67, + 0x65, 0x6f, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x63, 0x3d, 0x30, 0x2c, 0x74, + 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x28, 0x6e, 0x2c, 0x4d, 0x63, 0x29, 0x2c, 0x6d, 0x63, 0x7d, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6d, 0x63, 0x2c, 0x79, 0x63, 0x3d, + 0x6e, 0x65, 0x77, 0x20, 0x63, 0x65, 0x2c, 0x4d, 0x63, 0x3d, 0x7b, + 0x73, 0x70, 0x68, 0x65, 0x72, 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x6d, 0x63, 0x2b, 0x3d, + 0x34, 0x2a, 0x71, 0x61, 0x7d, 0x2c, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x3a, 0x62, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x3a, 0x62, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, + 0x3a, 0x62, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x79, 0x63, 0x2e, 0x72, 0x65, 0x73, + 0x65, 0x74, 0x28, 0x29, 0x2c, 0x4d, 0x63, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3d, 0x67, 0x65, 0x7d, 0x2c, + 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x32, 0x2a, 0x79, 0x63, 0x3b, + 0x6d, 0x63, 0x2b, 0x3d, 0x30, 0x3e, 0x6e, 0x3f, 0x34, 0x2a, 0x71, + 0x61, 0x2b, 0x6e, 0x3a, 0x6e, 0x2c, 0x4d, 0x63, 0x2e, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3d, 0x4d, 0x63, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x4d, 0x63, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x62, 0x7d, 0x7d, 0x3b, 0x74, + 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x4d, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x78, 0x3d, 0x5b, 0x73, 0x3d, 0x6e, 0x2c, 0x68, + 0x3d, 0x6e, 0x5d, 0x29, 0x2c, 0x66, 0x3e, 0x74, 0x26, 0x26, 0x28, + 0x66, 0x3d, 0x74, 0x29, 0x2c, 0x74, 0x3e, 0x67, 0x26, 0x26, 0x28, + 0x67, 0x3d, 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3d, 0x70, 0x65, 0x28, 0x5b, 0x74, 0x2a, + 0x44, 0x61, 0x2c, 0x65, 0x2a, 0x44, 0x61, 0x5d, 0x29, 0x3b, 0x69, + 0x66, 0x28, 0x6d, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, + 0x64, 0x65, 0x28, 0x6d, 0x2c, 0x72, 0x29, 0x2c, 0x69, 0x3d, 0x5b, + 0x75, 0x5b, 0x31, 0x5d, 0x2c, 0x2d, 0x75, 0x5b, 0x30, 0x5d, 0x2c, + 0x30, 0x5d, 0x2c, 0x6f, 0x3d, 0x64, 0x65, 0x28, 0x69, 0x2c, 0x75, + 0x29, 0x3b, 0x4d, 0x65, 0x28, 0x6f, 0x29, 0x2c, 0x6f, 0x3d, 0x78, + 0x65, 0x28, 0x6f, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x3d, + 0x74, 0x2d, 0x70, 0x2c, 0x6c, 0x3d, 0x63, 0x3e, 0x30, 0x3f, 0x31, + 0x3a, 0x2d, 0x31, 0x2c, 0x76, 0x3d, 0x6f, 0x5b, 0x30, 0x5d, 0x2a, + 0x50, 0x61, 0x2a, 0x6c, 0x2c, 0x64, 0x3d, 0x67, 0x61, 0x28, 0x63, + 0x29, 0x3e, 0x31, 0x38, 0x30, 0x3b, 0x69, 0x66, 0x28, 0x64, 0x5e, + 0x28, 0x76, 0x3e, 0x6c, 0x2a, 0x70, 0x26, 0x26, 0x6c, 0x2a, 0x74, + 0x3e, 0x76, 0x29, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x79, 0x3d, + 0x6f, 0x5b, 0x31, 0x5d, 0x2a, 0x50, 0x61, 0x3b, 0x79, 0x3e, 0x67, + 0x26, 0x26, 0x28, 0x67, 0x3d, 0x79, 0x29, 0x7d, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x69, 0x66, 0x28, 0x76, 0x3d, 0x28, 0x76, 0x2b, 0x33, + 0x36, 0x30, 0x29, 0x25, 0x33, 0x36, 0x30, 0x2d, 0x31, 0x38, 0x30, + 0x2c, 0x64, 0x5e, 0x28, 0x76, 0x3e, 0x6c, 0x2a, 0x70, 0x26, 0x26, + 0x6c, 0x2a, 0x74, 0x3e, 0x76, 0x29, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x79, 0x3d, 0x2d, 0x6f, 0x5b, 0x31, 0x5d, 0x2a, 0x50, 0x61, + 0x3b, 0x66, 0x3e, 0x79, 0x26, 0x26, 0x28, 0x66, 0x3d, 0x79, 0x29, + 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x66, 0x3e, 0x65, 0x26, 0x26, + 0x28, 0x66, 0x3d, 0x65, 0x29, 0x2c, 0x65, 0x3e, 0x67, 0x26, 0x26, + 0x28, 0x67, 0x3d, 0x65, 0x29, 0x3b, 0x64, 0x3f, 0x70, 0x3e, 0x74, + 0x3f, 0x61, 0x28, 0x73, 0x2c, 0x74, 0x29, 0x3e, 0x61, 0x28, 0x73, + 0x2c, 0x68, 0x29, 0x26, 0x26, 0x28, 0x68, 0x3d, 0x74, 0x29, 0x3a, + 0x61, 0x28, 0x74, 0x2c, 0x68, 0x29, 0x3e, 0x61, 0x28, 0x73, 0x2c, + 0x68, 0x29, 0x26, 0x26, 0x28, 0x73, 0x3d, 0x74, 0x29, 0x3a, 0x68, + 0x3e, 0x3d, 0x73, 0x3f, 0x28, 0x73, 0x3e, 0x74, 0x26, 0x26, 0x28, + 0x73, 0x3d, 0x74, 0x29, 0x2c, 0x74, 0x3e, 0x68, 0x26, 0x26, 0x28, + 0x68, 0x3d, 0x74, 0x29, 0x29, 0x3a, 0x74, 0x3e, 0x70, 0x3f, 0x61, + 0x28, 0x73, 0x2c, 0x74, 0x29, 0x3e, 0x61, 0x28, 0x73, 0x2c, 0x68, + 0x29, 0x26, 0x26, 0x28, 0x68, 0x3d, 0x74, 0x29, 0x3a, 0x61, 0x28, + 0x74, 0x2c, 0x68, 0x29, 0x3e, 0x61, 0x28, 0x73, 0x2c, 0x68, 0x29, + 0x26, 0x26, 0x28, 0x73, 0x3d, 0x74, 0x29, 0x7d, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x3b, 0x6d, 0x3d, + 0x72, 0x2c, 0x70, 0x3d, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x29, 0x7b, 0x62, 0x2e, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x29, 0x7b, 0x78, 0x5b, + 0x30, 0x5d, 0x3d, 0x73, 0x2c, 0x78, 0x5b, 0x31, 0x5d, 0x3d, 0x68, + 0x2c, 0x62, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x6e, 0x2c, + 0x6d, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x6e, 0x2c, 0x65, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x6d, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x6e, 0x2d, 0x70, 0x3b, 0x79, 0x2b, 0x3d, 0x67, 0x61, + 0x28, 0x72, 0x29, 0x3e, 0x31, 0x38, 0x30, 0x3f, 0x72, 0x2b, 0x28, + 0x72, 0x3e, 0x30, 0x3f, 0x33, 0x36, 0x30, 0x3a, 0x2d, 0x33, 0x36, + 0x30, 0x29, 0x3a, 0x72, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x76, + 0x3d, 0x6e, 0x2c, 0x64, 0x3d, 0x65, 0x3b, 0x4d, 0x63, 0x2e, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x2c, 0x74, + 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x29, 0x7b, 0x4d, 0x63, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x28, 0x29, 0x7b, 0x75, 0x28, 0x76, 0x2c, 0x64, 0x29, 0x2c, 0x4d, + 0x63, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x28, 0x29, + 0x2c, 0x67, 0x61, 0x28, 0x79, 0x29, 0x3e, 0x43, 0x61, 0x26, 0x26, + 0x28, 0x73, 0x3d, 0x2d, 0x28, 0x68, 0x3d, 0x31, 0x38, 0x30, 0x29, + 0x29, 0x2c, 0x78, 0x5b, 0x30, 0x5d, 0x3d, 0x73, 0x2c, 0x78, 0x5b, + 0x31, 0x5d, 0x3d, 0x68, 0x2c, 0x6d, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x28, 0x74, 0x2d, 0x3d, 0x6e, 0x29, 0x3c, 0x30, 0x3f, 0x74, + 0x2b, 0x33, 0x36, 0x30, 0x3a, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x5b, 0x30, + 0x5d, 0x2d, 0x74, 0x5b, 0x30, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x5b, 0x30, + 0x5d, 0x3c, 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x3f, 0x74, 0x5b, 0x30, + 0x5d, 0x3c, 0x3d, 0x6e, 0x26, 0x26, 0x6e, 0x3c, 0x3d, 0x74, 0x5b, + 0x31, 0x5d, 0x3a, 0x6e, 0x3c, 0x74, 0x5b, 0x30, 0x5d, 0x7c, 0x7c, + 0x74, 0x5b, 0x31, 0x5d, 0x3c, 0x6e, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x73, 0x2c, 0x66, 0x2c, 0x68, 0x2c, 0x67, 0x2c, 0x70, 0x2c, 0x76, + 0x2c, 0x64, 0x2c, 0x6d, 0x2c, 0x79, 0x2c, 0x4d, 0x2c, 0x78, 0x2c, + 0x62, 0x3d, 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x6e, 0x2c, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x65, + 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3a, 0x72, 0x2c, + 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x62, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x75, + 0x2c, 0x62, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x3d, 0x69, 0x2c, 0x62, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, + 0x6e, 0x64, 0x3d, 0x6f, 0x2c, 0x79, 0x3d, 0x30, 0x2c, 0x4d, 0x63, + 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x28, 0x29, 0x7d, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, + 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x4d, 0x63, 0x2e, 0x70, 0x6f, + 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x2c, + 0x62, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x6e, 0x2c, 0x62, + 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3d, + 0x65, 0x2c, 0x62, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, + 0x3d, 0x72, 0x2c, 0x30, 0x3e, 0x79, 0x63, 0x3f, 0x28, 0x73, 0x3d, + 0x2d, 0x28, 0x68, 0x3d, 0x31, 0x38, 0x30, 0x29, 0x2c, 0x66, 0x3d, + 0x2d, 0x28, 0x67, 0x3d, 0x39, 0x30, 0x29, 0x29, 0x3a, 0x79, 0x3e, + 0x43, 0x61, 0x3f, 0x67, 0x3d, 0x39, 0x30, 0x3a, 0x2d, 0x43, 0x61, + 0x3e, 0x79, 0x26, 0x26, 0x28, 0x66, 0x3d, 0x2d, 0x39, 0x30, 0x29, + 0x2c, 0x78, 0x5b, 0x30, 0x5d, 0x3d, 0x73, 0x2c, 0x78, 0x5b, 0x31, + 0x5d, 0x3d, 0x68, 0x7d, 0x7d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x67, 0x3d, 0x68, 0x3d, 0x2d, 0x28, 0x73, 0x3d, + 0x66, 0x3d, 0x31, 0x2f, 0x30, 0x29, 0x2c, 0x4d, 0x3d, 0x5b, 0x5d, + 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x28, 0x6e, 0x2c, 0x62, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x4d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x69, 0x66, 0x28, 0x74, 0x29, 0x7b, 0x4d, 0x2e, 0x73, + 0x6f, 0x72, 0x74, 0x28, 0x63, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x3d, 0x31, 0x2c, 0x75, + 0x3d, 0x4d, 0x5b, 0x30, 0x5d, 0x2c, 0x69, 0x3d, 0x5b, 0x75, 0x5d, + 0x3b, 0x74, 0x3e, 0x72, 0x3b, 0x2b, 0x2b, 0x72, 0x29, 0x65, 0x3d, + 0x4d, 0x5b, 0x72, 0x5d, 0x2c, 0x6c, 0x28, 0x65, 0x5b, 0x30, 0x5d, + 0x2c, 0x75, 0x29, 0x7c, 0x7c, 0x6c, 0x28, 0x65, 0x5b, 0x31, 0x5d, + 0x2c, 0x75, 0x29, 0x3f, 0x28, 0x61, 0x28, 0x75, 0x5b, 0x30, 0x5d, + 0x2c, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x3e, 0x61, 0x28, 0x75, 0x5b, + 0x30, 0x5d, 0x2c, 0x75, 0x5b, 0x31, 0x5d, 0x29, 0x26, 0x26, 0x28, + 0x75, 0x5b, 0x31, 0x5d, 0x3d, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x2c, + 0x61, 0x28, 0x65, 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x5b, 0x31, 0x5d, + 0x29, 0x3e, 0x61, 0x28, 0x75, 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x5b, + 0x31, 0x5d, 0x29, 0x26, 0x26, 0x28, 0x75, 0x5b, 0x30, 0x5d, 0x3d, + 0x65, 0x5b, 0x30, 0x5d, 0x29, 0x29, 0x3a, 0x69, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x75, 0x3d, 0x65, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x2c, 0x65, 0x2c, 0x70, 0x3d, + 0x2d, 0x31, 0x2f, 0x30, 0x2c, 0x74, 0x3d, 0x69, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x2c, 0x72, 0x3d, 0x30, 0x2c, + 0x75, 0x3d, 0x69, 0x5b, 0x74, 0x5d, 0x3b, 0x74, 0x3e, 0x3d, 0x72, + 0x3b, 0x75, 0x3d, 0x65, 0x2c, 0x2b, 0x2b, 0x72, 0x29, 0x65, 0x3d, + 0x69, 0x5b, 0x72, 0x5d, 0x2c, 0x28, 0x6f, 0x3d, 0x61, 0x28, 0x75, + 0x5b, 0x31, 0x5d, 0x2c, 0x65, 0x5b, 0x30, 0x5d, 0x29, 0x29, 0x3e, + 0x70, 0x26, 0x26, 0x28, 0x70, 0x3d, 0x6f, 0x2c, 0x73, 0x3d, 0x65, + 0x5b, 0x30, 0x5d, 0x2c, 0x68, 0x3d, 0x75, 0x5b, 0x31, 0x5d, 0x29, + 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x3d, 0x78, + 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x31, 0x2f, 0x30, 0x3d, 0x3d, + 0x3d, 0x73, 0x7c, 0x7c, 0x31, 0x2f, 0x30, 0x3d, 0x3d, 0x3d, 0x66, + 0x3f, 0x5b, 0x5b, 0x30, 0x2f, 0x30, 0x2c, 0x30, 0x2f, 0x30, 0x5d, + 0x2c, 0x5b, 0x30, 0x2f, 0x30, 0x2c, 0x30, 0x2f, 0x30, 0x5d, 0x5d, + 0x3a, 0x5b, 0x5b, 0x73, 0x2c, 0x66, 0x5d, 0x2c, 0x5b, 0x68, 0x2c, + 0x67, 0x5d, 0x5d, 0x7d, 0x7d, 0x28, 0x29, 0x2c, 0x74, 0x61, 0x2e, + 0x67, 0x65, 0x6f, 0x2e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x69, + 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x78, 0x63, 0x3d, 0x62, 0x63, 0x3d, 0x5f, 0x63, + 0x3d, 0x77, 0x63, 0x3d, 0x53, 0x63, 0x3d, 0x6b, 0x63, 0x3d, 0x45, + 0x63, 0x3d, 0x41, 0x63, 0x3d, 0x4e, 0x63, 0x3d, 0x43, 0x63, 0x3d, + 0x7a, 0x63, 0x3d, 0x30, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x28, 0x6e, 0x2c, 0x71, + 0x63, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x4e, 0x63, + 0x2c, 0x65, 0x3d, 0x43, 0x63, 0x2c, 0x72, 0x3d, 0x7a, 0x63, 0x2c, + 0x75, 0x3d, 0x74, 0x2a, 0x74, 0x2b, 0x65, 0x2a, 0x65, 0x2b, 0x72, + 0x2a, 0x72, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x7a, + 0x61, 0x3e, 0x75, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x6b, 0x63, 0x2c, + 0x65, 0x3d, 0x45, 0x63, 0x2c, 0x72, 0x3d, 0x41, 0x63, 0x2c, 0x43, + 0x61, 0x3e, 0x62, 0x63, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x5f, 0x63, + 0x2c, 0x65, 0x3d, 0x77, 0x63, 0x2c, 0x72, 0x3d, 0x53, 0x63, 0x29, + 0x2c, 0x75, 0x3d, 0x74, 0x2a, 0x74, 0x2b, 0x65, 0x2a, 0x65, 0x2b, + 0x72, 0x2a, 0x72, 0x2c, 0x7a, 0x61, 0x3e, 0x75, 0x29, 0x3f, 0x5b, + 0x30, 0x2f, 0x30, 0x2c, 0x30, 0x2f, 0x30, 0x5d, 0x3a, 0x5b, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x32, 0x28, 0x65, + 0x2c, 0x74, 0x29, 0x2a, 0x50, 0x61, 0x2c, 0x74, 0x74, 0x28, 0x72, + 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, + 0x75, 0x29, 0x29, 0x2a, 0x50, 0x61, 0x5d, 0x7d, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x78, 0x63, 0x2c, 0x62, 0x63, 0x2c, 0x5f, 0x63, 0x2c, + 0x77, 0x63, 0x2c, 0x53, 0x63, 0x2c, 0x6b, 0x63, 0x2c, 0x45, 0x63, + 0x2c, 0x41, 0x63, 0x2c, 0x4e, 0x63, 0x2c, 0x43, 0x63, 0x2c, 0x7a, + 0x63, 0x2c, 0x71, 0x63, 0x3d, 0x7b, 0x73, 0x70, 0x68, 0x65, 0x72, + 0x65, 0x3a, 0x62, 0x2c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x5f, + 0x65, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x3a, 0x53, 0x65, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, + 0x3a, 0x6b, 0x65, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x71, 0x63, 0x2e, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3d, 0x45, 0x65, 0x7d, + 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x71, 0x63, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x3d, 0x53, 0x65, 0x7d, 0x7d, 0x2c, 0x4c, 0x63, 0x3d, + 0x4c, 0x65, 0x28, 0x4e, 0x65, 0x2c, 0x50, 0x65, 0x2c, 0x6a, 0x65, + 0x2c, 0x5b, 0x2d, 0x71, 0x61, 0x2c, 0x2d, 0x71, 0x61, 0x2f, 0x32, + 0x5d, 0x29, 0x2c, 0x54, 0x63, 0x3d, 0x31, 0x65, 0x39, 0x3b, 0x74, + 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x63, 0x6c, 0x69, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, + 0x6f, 0x3d, 0x7b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x26, 0x26, 0x28, + 0x75, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x3d, 0x21, 0x31, 0x29, + 0x2c, 0x75, 0x3d, 0x69, 0x28, 0x6e, 0x29, 0x2c, 0x75, 0x2e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x3d, 0x21, 0x30, 0x2c, 0x75, 0x7d, 0x2c, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x69, 0x3d, 0x49, 0x65, 0x28, 0x6e, 0x3d, 0x2b, 0x61, 0x5b, 0x30, + 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x74, 0x3d, 0x2b, 0x61, 0x5b, 0x30, + 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x65, 0x3d, 0x2b, 0x61, 0x5b, 0x31, + 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x72, 0x3d, 0x2b, 0x61, 0x5b, 0x31, + 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x75, 0x26, 0x26, 0x28, 0x75, + 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x3d, 0x21, 0x31, 0x2c, 0x75, + 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2c, 0x6f, 0x29, 0x3a, 0x5b, + 0x5b, 0x6e, 0x2c, 0x74, 0x5d, 0x2c, 0x5b, 0x65, 0x2c, 0x72, 0x5d, + 0x5d, 0x7d, 0x7d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6f, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x28, 0x5b, 0x5b, + 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x5b, 0x39, 0x36, 0x30, 0x2c, 0x35, + 0x30, 0x30, 0x5d, 0x5d, 0x29, 0x7d, 0x2c, 0x28, 0x74, 0x61, 0x2e, + 0x67, 0x65, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x69, 0x63, 0x45, 0x71, + 0x75, 0x61, 0x6c, 0x41, 0x72, 0x65, 0x61, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x59, 0x65, 0x28, 0x5a, 0x65, 0x29, 0x7d, + 0x29, 0x2e, 0x72, 0x61, 0x77, 0x3d, 0x5a, 0x65, 0x2c, 0x74, 0x61, + 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x61, 0x6c, 0x62, 0x65, 0x72, 0x73, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x2e, + 0x67, 0x65, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x69, 0x63, 0x45, 0x71, + 0x75, 0x61, 0x6c, 0x41, 0x72, 0x65, 0x61, 0x28, 0x29, 0x2e, 0x72, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x28, 0x5b, 0x39, 0x36, 0x2c, 0x30, + 0x5d, 0x29, 0x2e, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x5b, + 0x2d, 0x2e, 0x36, 0x2c, 0x33, 0x38, 0x2e, 0x37, 0x5d, 0x29, 0x2e, + 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x73, 0x28, 0x5b, + 0x32, 0x39, 0x2e, 0x35, 0x2c, 0x34, 0x35, 0x2e, 0x35, 0x5d, 0x29, + 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x31, 0x30, 0x37, 0x30, + 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x61, + 0x6c, 0x62, 0x65, 0x72, 0x73, 0x55, 0x73, 0x61, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, + 0x2c, 0x6f, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, + 0x65, 0x28, 0x69, 0x2c, 0x6f, 0x29, 0x2c, 0x74, 0x7c, 0x7c, 0x28, + 0x72, 0x28, 0x69, 0x2c, 0x6f, 0x29, 0x2c, 0x74, 0x29, 0x7c, 0x7c, + 0x75, 0x28, 0x69, 0x2c, 0x6f, 0x29, 0x2c, 0x74, 0x7d, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, + 0x3d, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x61, 0x6c, 0x62, + 0x65, 0x72, 0x73, 0x28, 0x29, 0x2c, 0x6f, 0x3d, 0x74, 0x61, 0x2e, + 0x67, 0x65, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x69, 0x63, 0x45, 0x71, + 0x75, 0x61, 0x6c, 0x41, 0x72, 0x65, 0x61, 0x28, 0x29, 0x2e, 0x72, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x28, 0x5b, 0x31, 0x35, 0x34, 0x2c, + 0x30, 0x5d, 0x29, 0x2e, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, + 0x5b, 0x2d, 0x32, 0x2c, 0x35, 0x38, 0x2e, 0x35, 0x5d, 0x29, 0x2e, + 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x73, 0x28, 0x5b, + 0x35, 0x35, 0x2c, 0x36, 0x35, 0x5d, 0x29, 0x2c, 0x61, 0x3d, 0x74, + 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x69, 0x63, + 0x45, 0x71, 0x75, 0x61, 0x6c, 0x41, 0x72, 0x65, 0x61, 0x28, 0x29, + 0x2e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x28, 0x5b, 0x31, 0x35, + 0x37, 0x2c, 0x30, 0x5d, 0x29, 0x2e, 0x63, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x28, 0x5b, 0x2d, 0x33, 0x2c, 0x31, 0x39, 0x2e, 0x39, 0x5d, + 0x29, 0x2e, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x73, + 0x28, 0x5b, 0x38, 0x2c, 0x31, 0x38, 0x5d, 0x29, 0x2c, 0x63, 0x3d, + 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x74, + 0x3d, 0x5b, 0x6e, 0x2c, 0x65, 0x5d, 0x7d, 0x7d, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x69, 0x6e, 0x76, 0x65, + 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x69, + 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x29, 0x2c, 0x65, 0x3d, + 0x69, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, + 0x28, 0x29, 0x2c, 0x72, 0x3d, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x2d, + 0x65, 0x5b, 0x30, 0x5d, 0x29, 0x2f, 0x74, 0x2c, 0x75, 0x3d, 0x28, + 0x6e, 0x5b, 0x31, 0x5d, 0x2d, 0x65, 0x5b, 0x31, 0x5d, 0x29, 0x2f, + 0x74, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x75, 0x3e, + 0x3d, 0x2e, 0x31, 0x32, 0x26, 0x26, 0x2e, 0x32, 0x33, 0x34, 0x3e, + 0x75, 0x26, 0x26, 0x72, 0x3e, 0x3d, 0x2d, 0x2e, 0x34, 0x32, 0x35, + 0x26, 0x26, 0x2d, 0x2e, 0x32, 0x31, 0x34, 0x3e, 0x72, 0x3f, 0x6f, + 0x3a, 0x75, 0x3e, 0x3d, 0x2e, 0x31, 0x36, 0x36, 0x26, 0x26, 0x2e, + 0x32, 0x33, 0x34, 0x3e, 0x75, 0x26, 0x26, 0x72, 0x3e, 0x3d, 0x2d, + 0x2e, 0x32, 0x31, 0x34, 0x26, 0x26, 0x2d, 0x2e, 0x31, 0x31, 0x35, + 0x3e, 0x72, 0x3f, 0x61, 0x3a, 0x69, 0x29, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x28, 0x6e, 0x29, 0x7d, 0x2c, 0x6e, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3d, 0x69, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x28, + 0x6e, 0x29, 0x2c, 0x65, 0x3d, 0x6f, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x28, 0x6e, 0x29, 0x2c, 0x72, 0x3d, 0x61, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x28, 0x6e, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x75, 0x29, 0x7b, 0x74, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, + 0x6e, 0x2c, 0x75, 0x29, 0x2c, 0x65, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x28, 0x6e, 0x2c, 0x75, 0x29, 0x2c, 0x72, 0x2e, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x28, 0x6e, 0x2c, 0x75, 0x29, 0x7d, 0x2c, 0x73, + 0x70, 0x68, 0x65, 0x72, 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x2e, 0x73, 0x70, 0x68, + 0x65, 0x72, 0x65, 0x28, 0x29, 0x2c, 0x65, 0x2e, 0x73, 0x70, 0x68, + 0x65, 0x72, 0x65, 0x28, 0x29, 0x2c, 0x72, 0x2e, 0x73, 0x70, 0x68, + 0x65, 0x72, 0x65, 0x28, 0x29, 0x7d, 0x2c, 0x6c, 0x69, 0x6e, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, 0x65, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, + 0x2c, 0x72, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x28, 0x29, 0x7d, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, + 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x74, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, + 0x28, 0x29, 0x2c, 0x65, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, + 0x64, 0x28, 0x29, 0x2c, 0x72, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x45, + 0x6e, 0x64, 0x28, 0x29, 0x7d, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x2e, 0x70, + 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x28, 0x29, 0x2c, 0x65, 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x2c, 0x72, 0x2e, + 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x28, 0x29, 0x7d, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, + 0x6e, 0x45, 0x6e, 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x2e, 0x70, 0x6f, 0x6c, 0x79, + 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x2c, 0x65, 0x2e, + 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x28, + 0x29, 0x2c, 0x72, 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, + 0x45, 0x6e, 0x64, 0x28, 0x29, 0x7d, 0x7d, 0x7d, 0x2c, 0x6e, 0x2e, + 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x69, 0x2e, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x2c, 0x6f, 0x2e, 0x70, 0x72, + 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x2c, + 0x61, 0x2e, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x69, 0x2e, 0x70, 0x72, + 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7d, 0x2c, + 0x6e, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x69, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x74, 0x29, + 0x2c, 0x6f, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x2e, 0x33, + 0x35, 0x2a, 0x74, 0x29, 0x2c, 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x69, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x29, 0x29, 0x29, 0x3a, + 0x69, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x29, 0x7d, 0x2c, + 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x69, 0x66, 0x28, 0x21, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x69, 0x2e, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x28, 0x29, 0x2c, 0x73, 0x3d, 0x2b, 0x74, 0x5b, 0x30, + 0x5d, 0x2c, 0x66, 0x3d, 0x2b, 0x74, 0x5b, 0x31, 0x5d, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3d, 0x69, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x74, 0x29, + 0x2e, 0x63, 0x6c, 0x69, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, + 0x28, 0x5b, 0x5b, 0x73, 0x2d, 0x2e, 0x34, 0x35, 0x35, 0x2a, 0x6c, + 0x2c, 0x66, 0x2d, 0x2e, 0x32, 0x33, 0x38, 0x2a, 0x6c, 0x5d, 0x2c, + 0x5b, 0x73, 0x2b, 0x2e, 0x34, 0x35, 0x35, 0x2a, 0x6c, 0x2c, 0x66, + 0x2b, 0x2e, 0x32, 0x33, 0x38, 0x2a, 0x6c, 0x5d, 0x5d, 0x29, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x28, 0x63, 0x29, 0x2e, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x72, 0x3d, 0x6f, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x5b, 0x73, 0x2d, + 0x2e, 0x33, 0x30, 0x37, 0x2a, 0x6c, 0x2c, 0x66, 0x2b, 0x2e, 0x32, + 0x30, 0x31, 0x2a, 0x6c, 0x5d, 0x29, 0x2e, 0x63, 0x6c, 0x69, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x28, 0x5b, 0x5b, 0x73, 0x2d, + 0x2e, 0x34, 0x32, 0x35, 0x2a, 0x6c, 0x2b, 0x43, 0x61, 0x2c, 0x66, + 0x2b, 0x2e, 0x31, 0x32, 0x2a, 0x6c, 0x2b, 0x43, 0x61, 0x5d, 0x2c, + 0x5b, 0x73, 0x2d, 0x2e, 0x32, 0x31, 0x34, 0x2a, 0x6c, 0x2d, 0x43, + 0x61, 0x2c, 0x66, 0x2b, 0x2e, 0x32, 0x33, 0x34, 0x2a, 0x6c, 0x2d, + 0x43, 0x61, 0x5d, 0x5d, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x28, 0x63, 0x29, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, + 0x75, 0x3d, 0x61, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, + 0x74, 0x65, 0x28, 0x5b, 0x73, 0x2d, 0x2e, 0x32, 0x30, 0x35, 0x2a, + 0x6c, 0x2c, 0x66, 0x2b, 0x2e, 0x32, 0x31, 0x32, 0x2a, 0x6c, 0x5d, + 0x29, 0x2e, 0x63, 0x6c, 0x69, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x74, 0x28, 0x5b, 0x5b, 0x73, 0x2d, 0x2e, 0x32, 0x31, 0x34, 0x2a, + 0x6c, 0x2b, 0x43, 0x61, 0x2c, 0x66, 0x2b, 0x2e, 0x31, 0x36, 0x36, + 0x2a, 0x6c, 0x2b, 0x43, 0x61, 0x5d, 0x2c, 0x5b, 0x73, 0x2d, 0x2e, + 0x31, 0x31, 0x35, 0x2a, 0x6c, 0x2d, 0x43, 0x61, 0x2c, 0x66, 0x2b, + 0x2e, 0x32, 0x33, 0x34, 0x2a, 0x6c, 0x2d, 0x43, 0x61, 0x5d, 0x5d, + 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x28, 0x63, 0x29, + 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x6e, 0x7d, 0x2c, 0x6e, + 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x28, 0x31, 0x30, 0x37, 0x30, + 0x29, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x52, 0x63, 0x2c, 0x44, + 0x63, 0x2c, 0x50, 0x63, 0x2c, 0x55, 0x63, 0x2c, 0x6a, 0x63, 0x2c, + 0x46, 0x63, 0x2c, 0x48, 0x63, 0x3d, 0x7b, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x3a, 0x62, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x3a, 0x62, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, + 0x64, 0x3a, 0x62, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x44, 0x63, 0x3d, 0x30, 0x2c, + 0x48, 0x63, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x3d, 0x56, 0x65, 0x7d, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, + 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x48, 0x63, 0x2e, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3d, 0x48, 0x63, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x48, 0x63, 0x2e, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x62, 0x2c, 0x52, 0x63, 0x2b, + 0x3d, 0x67, 0x61, 0x28, 0x44, 0x63, 0x2f, 0x32, 0x29, 0x7d, 0x7d, + 0x2c, 0x4f, 0x63, 0x3d, 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, + 0x58, 0x65, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x3a, 0x62, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, + 0x3a, 0x62, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x3a, 0x62, 0x2c, 0x70, 0x6f, 0x6c, 0x79, + 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x3a, 0x62, 0x7d, 0x2c, 0x49, + 0x63, 0x3d, 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x57, 0x65, + 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, + 0x4a, 0x65, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3a, + 0x47, 0x65, 0x2c, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x49, 0x63, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3d, 0x4b, 0x65, 0x7d, 0x2c, + 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x49, 0x63, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x57, 0x65, + 0x2c, 0x49, 0x63, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x3d, 0x4a, 0x65, 0x2c, 0x49, 0x63, 0x2e, 0x6c, 0x69, + 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3d, 0x47, 0x65, 0x7d, 0x7d, 0x3b, + 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x70, 0x61, 0x74, 0x68, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x26, 0x26, 0x28, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, + 0x20, 0x61, 0x26, 0x26, 0x69, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x28, 0x2b, 0x61, 0x2e, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x29, 0x2c, + 0x6f, 0x26, 0x26, 0x6f, 0x2e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x7c, + 0x7c, 0x28, 0x6f, 0x3d, 0x75, 0x28, 0x69, 0x29, 0x29, 0x2c, 0x74, + 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x28, 0x6e, 0x2c, 0x6f, 0x29, 0x29, 0x2c, 0x69, 0x2e, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x3d, 0x6e, 0x75, 0x6c, + 0x6c, 0x2c, 0x6e, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, + 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x2c, 0x61, 0x3d, 0x34, 0x2e, + 0x35, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, + 0x61, 0x72, 0x65, 0x61, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x52, 0x63, 0x3d, 0x30, 0x2c, 0x74, 0x61, 0x2e, 0x67, + 0x65, 0x6f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x28, 0x6e, + 0x2c, 0x75, 0x28, 0x48, 0x63, 0x29, 0x29, 0x2c, 0x52, 0x63, 0x7d, + 0x2c, 0x6e, 0x2e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x69, 0x64, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5f, 0x63, + 0x3d, 0x77, 0x63, 0x3d, 0x53, 0x63, 0x3d, 0x6b, 0x63, 0x3d, 0x45, + 0x63, 0x3d, 0x41, 0x63, 0x3d, 0x4e, 0x63, 0x3d, 0x43, 0x63, 0x3d, + 0x7a, 0x63, 0x3d, 0x30, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x28, 0x6e, 0x2c, 0x75, + 0x28, 0x49, 0x63, 0x29, 0x29, 0x2c, 0x7a, 0x63, 0x3f, 0x5b, 0x4e, + 0x63, 0x2f, 0x7a, 0x63, 0x2c, 0x43, 0x63, 0x2f, 0x7a, 0x63, 0x5d, + 0x3a, 0x41, 0x63, 0x3f, 0x5b, 0x6b, 0x63, 0x2f, 0x41, 0x63, 0x2c, + 0x45, 0x63, 0x2f, 0x41, 0x63, 0x5d, 0x3a, 0x53, 0x63, 0x3f, 0x5b, + 0x5f, 0x63, 0x2f, 0x53, 0x63, 0x2c, 0x77, 0x63, 0x2f, 0x53, 0x63, + 0x5d, 0x3a, 0x5b, 0x30, 0x2f, 0x30, 0x2c, 0x30, 0x2f, 0x30, 0x5d, + 0x7d, 0x2c, 0x6e, 0x2e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6a, 0x63, 0x3d, + 0x46, 0x63, 0x3d, 0x2d, 0x28, 0x50, 0x63, 0x3d, 0x55, 0x63, 0x3d, + 0x31, 0x2f, 0x30, 0x29, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x28, 0x6e, 0x2c, 0x75, + 0x28, 0x4f, 0x63, 0x29, 0x29, 0x2c, 0x5b, 0x5b, 0x50, 0x63, 0x2c, + 0x55, 0x63, 0x5d, 0x2c, 0x5b, 0x6a, 0x63, 0x2c, 0x46, 0x63, 0x5d, + 0x5d, 0x7d, 0x2c, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x75, 0x3d, + 0x28, 0x65, 0x3d, 0x6e, 0x29, 0x3f, 0x6e, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x7c, 0x7c, 0x74, 0x72, 0x28, 0x6e, 0x29, 0x3a, + 0x79, 0x2c, 0x74, 0x28, 0x29, 0x29, 0x3a, 0x65, 0x7d, 0x2c, 0x6e, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x69, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x28, + 0x72, 0x3d, 0x6e, 0x29, 0x3f, 0x6e, 0x65, 0x77, 0x20, 0x24, 0x65, + 0x3a, 0x6e, 0x65, 0x77, 0x20, 0x51, 0x65, 0x28, 0x6e, 0x29, 0x2c, + 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x21, + 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x61, 0x26, 0x26, + 0x69, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x28, 0x61, 0x29, 0x2c, 0x74, 0x28, 0x29, 0x29, 0x3a, + 0x72, 0x7d, 0x2c, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x61, + 0x3d, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x74, 0x3f, + 0x74, 0x3a, 0x28, 0x69, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x28, 0x2b, 0x74, 0x29, 0x2c, 0x2b, + 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x61, 0x7d, 0x2c, 0x6e, 0x2e, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x61, 0x6c, 0x62, 0x65, + 0x72, 0x73, 0x55, 0x73, 0x61, 0x28, 0x29, 0x29, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x29, + 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x7b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x6e, 0x65, 0x77, + 0x20, 0x65, 0x72, 0x28, 0x74, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x29, + 0x65, 0x5b, 0x72, 0x5d, 0x3d, 0x6e, 0x5b, 0x72, 0x5d, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x7d, 0x7d, 0x7d, 0x2c, + 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, + 0x65, 0x3d, 0x7b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7d, 0x2c, 0x73, 0x70, 0x68, 0x65, 0x72, 0x65, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x73, 0x70, 0x68, 0x65, 0x72, 0x65, 0x28, 0x29, 0x7d, 0x2c, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x7d, + 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x6c, + 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x7d, 0x2c, 0x70, + 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x28, 0x29, 0x7d, 0x2c, 0x70, 0x6f, 0x6c, 0x79, + 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, + 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x28, 0x29, 0x7d, 0x7d, + 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x75, 0x72, 0x2c, + 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x74, 0x61, 0x74, + 0x6f, 0x72, 0x3d, 0x69, 0x72, 0x2c, 0x28, 0x74, 0x61, 0x2e, 0x67, + 0x65, 0x6f, 0x2e, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x75, 0x72, 0x28, 0x61, 0x72, 0x29, 0x7d, + 0x29, 0x2e, 0x72, 0x61, 0x77, 0x3d, 0x61, 0x72, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x72, 0x74, 0x3d, 0x61, 0x72, 0x2c, 0x74, 0x61, 0x2e, + 0x67, 0x65, 0x6f, 0x2e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x3d, 0x6e, 0x28, 0x74, 0x5b, 0x30, 0x5d, 0x2a, + 0x44, 0x61, 0x2c, 0x74, 0x5b, 0x31, 0x5d, 0x2a, 0x44, 0x61, 0x29, + 0x2c, 0x74, 0x5b, 0x30, 0x5d, 0x2a, 0x3d, 0x50, 0x61, 0x2c, 0x74, + 0x5b, 0x31, 0x5d, 0x2a, 0x3d, 0x50, 0x61, 0x2c, 0x74, 0x7d, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3d, 0x6c, 0x72, 0x28, + 0x6e, 0x5b, 0x30, 0x5d, 0x25, 0x33, 0x36, 0x30, 0x2a, 0x44, 0x61, + 0x2c, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, 0x44, 0x61, 0x2c, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x32, 0x3f, 0x6e, 0x5b, + 0x32, 0x5d, 0x2a, 0x44, 0x61, 0x3a, 0x30, 0x29, 0x2c, 0x74, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x28, 0x74, 0x5b, 0x30, 0x5d, 0x2a, 0x44, 0x61, + 0x2c, 0x74, 0x5b, 0x31, 0x5d, 0x2a, 0x44, 0x61, 0x29, 0x2c, 0x74, + 0x5b, 0x30, 0x5d, 0x2a, 0x3d, 0x50, 0x61, 0x2c, 0x74, 0x5b, 0x31, + 0x5d, 0x2a, 0x3d, 0x50, 0x61, 0x2c, 0x74, 0x7d, 0x2c, 0x74, 0x7d, + 0x2c, 0x63, 0x72, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3d, + 0x61, 0x72, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x63, + 0x69, 0x72, 0x63, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x6e, 0x3d, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x72, 0x3f, 0x72, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x29, 0x3a, 0x72, 0x2c, 0x74, 0x3d, 0x6c, 0x72, 0x28, + 0x2d, 0x6e, 0x5b, 0x30, 0x5d, 0x2a, 0x44, 0x61, 0x2c, 0x2d, 0x6e, + 0x5b, 0x31, 0x5d, 0x2a, 0x44, 0x61, 0x2c, 0x30, 0x29, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x72, 0x74, 0x2c, 0x75, 0x3d, 0x5b, 0x5d, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x75, + 0x6c, 0x6c, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x31, 0x2c, 0x7b, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x75, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, 0x3d, 0x74, 0x28, 0x6e, 0x2c, + 0x65, 0x29, 0x29, 0x2c, 0x6e, 0x5b, 0x30, 0x5d, 0x2a, 0x3d, 0x50, + 0x61, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, 0x3d, 0x50, 0x61, 0x7d, + 0x7d, 0x29, 0x2c, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x22, 0x50, + 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x22, 0x2c, 0x63, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x5b, 0x75, + 0x5d, 0x7d, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, + 0x72, 0x3d, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x75, 0x3d, 0x36, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x72, + 0x3d, 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x6e, 0x2e, + 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, + 0x3d, 0x67, 0x72, 0x28, 0x28, 0x74, 0x3d, 0x2b, 0x72, 0x29, 0x2a, + 0x44, 0x61, 0x2c, 0x75, 0x2a, 0x44, 0x61, 0x29, 0x2c, 0x6e, 0x29, + 0x3a, 0x74, 0x7d, 0x2c, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x63, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, 0x3d, + 0x67, 0x72, 0x28, 0x74, 0x2a, 0x44, 0x61, 0x2c, 0x28, 0x75, 0x3d, + 0x2b, 0x72, 0x29, 0x2a, 0x44, 0x61, 0x29, 0x2c, 0x6e, 0x29, 0x3a, + 0x75, 0x7d, 0x2c, 0x6e, 0x2e, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x28, + 0x39, 0x30, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, + 0x2e, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x3d, 0x28, + 0x74, 0x5b, 0x30, 0x5d, 0x2d, 0x6e, 0x5b, 0x30, 0x5d, 0x29, 0x2a, + 0x44, 0x61, 0x2c, 0x75, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, 0x44, + 0x61, 0x2c, 0x69, 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x2a, 0x44, 0x61, + 0x2c, 0x6f, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, + 0x28, 0x72, 0x29, 0x2c, 0x61, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x63, 0x6f, 0x73, 0x28, 0x72, 0x29, 0x2c, 0x63, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x75, 0x29, 0x2c, 0x6c, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x75, + 0x29, 0x2c, 0x73, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, + 0x6e, 0x28, 0x69, 0x29, 0x2c, 0x66, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x69, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, + 0x61, 0x6e, 0x32, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, + 0x72, 0x74, 0x28, 0x28, 0x65, 0x3d, 0x66, 0x2a, 0x6f, 0x29, 0x2a, + 0x65, 0x2b, 0x28, 0x65, 0x3d, 0x6c, 0x2a, 0x73, 0x2d, 0x63, 0x2a, + 0x66, 0x2a, 0x61, 0x29, 0x2a, 0x65, 0x29, 0x2c, 0x63, 0x2a, 0x73, + 0x2b, 0x6c, 0x2a, 0x66, 0x2a, 0x61, 0x29, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x67, 0x72, 0x61, 0x74, 0x69, 0x63, + 0x75, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x22, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x22, 0x2c, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x73, 0x3a, 0x74, 0x28, 0x29, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x2e, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, + 0x65, 0x69, 0x6c, 0x28, 0x69, 0x2f, 0x64, 0x29, 0x2a, 0x64, 0x2c, + 0x75, 0x2c, 0x64, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x68, 0x29, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x28, 0x74, 0x61, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x63, 0x65, 0x69, 0x6c, 0x28, 0x6c, 0x2f, 0x6d, 0x29, 0x2a, 0x6d, + 0x2c, 0x63, 0x2c, 0x6d, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x67, + 0x29, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x28, 0x74, + 0x61, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x72, 0x2f, 0x70, 0x29, + 0x2a, 0x70, 0x2c, 0x65, 0x2c, 0x70, 0x29, 0x2e, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x67, 0x61, 0x28, 0x6e, 0x25, 0x64, 0x29, 0x3e, 0x43, 0x61, + 0x7d, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x73, 0x29, 0x29, 0x2e, + 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x28, 0x74, 0x61, 0x2e, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, + 0x65, 0x69, 0x6c, 0x28, 0x61, 0x2f, 0x76, 0x29, 0x2a, 0x76, 0x2c, + 0x6f, 0x2c, 0x76, 0x29, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x67, 0x61, + 0x28, 0x6e, 0x25, 0x6d, 0x29, 0x3e, 0x43, 0x61, 0x7d, 0x29, 0x2e, + 0x6d, 0x61, 0x70, 0x28, 0x66, 0x29, 0x29, 0x7d, 0x76, 0x61, 0x72, + 0x20, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x2c, + 0x61, 0x2c, 0x63, 0x2c, 0x6c, 0x2c, 0x73, 0x2c, 0x66, 0x2c, 0x68, + 0x2c, 0x67, 0x2c, 0x70, 0x3d, 0x31, 0x30, 0x2c, 0x76, 0x3d, 0x70, + 0x2c, 0x64, 0x3d, 0x39, 0x30, 0x2c, 0x6d, 0x3d, 0x33, 0x36, 0x30, + 0x2c, 0x79, 0x3d, 0x32, 0x2e, 0x35, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x28, 0x29, 0x2e, + 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x7b, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x22, 0x4c, 0x69, 0x6e, 0x65, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x63, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x6e, 0x7d, + 0x7d, 0x29, 0x7d, 0x2c, 0x6e, 0x2e, 0x6f, 0x75, 0x74, 0x6c, 0x69, + 0x6e, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x7b, 0x74, + 0x79, 0x70, 0x65, 0x3a, 0x22, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, + 0x6e, 0x22, 0x2c, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x73, 0x3a, 0x5b, 0x68, 0x28, 0x69, 0x29, 0x2e, 0x63, + 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x28, 0x67, 0x28, 0x63, 0x29, 0x2e, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x31, 0x29, 0x2c, 0x68, 0x28, + 0x75, 0x29, 0x2e, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x28, + 0x29, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x31, 0x29, 0x2c, + 0x67, 0x28, 0x6c, 0x29, 0x2e, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, + 0x65, 0x28, 0x29, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x31, + 0x29, 0x29, 0x5d, 0x7d, 0x7d, 0x2c, 0x6e, 0x2e, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x6e, 0x2e, 0x6d, 0x61, + 0x6a, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x28, 0x74, + 0x29, 0x2e, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x74, 0x28, 0x74, 0x29, 0x3a, 0x6e, 0x2e, 0x6d, 0x69, 0x6e, + 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x28, 0x29, 0x7d, + 0x2c, 0x6e, 0x2e, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x69, 0x3d, 0x2b, + 0x74, 0x5b, 0x30, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x3d, 0x2b, + 0x74, 0x5b, 0x31, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x6c, 0x3d, 0x2b, + 0x74, 0x5b, 0x30, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x63, 0x3d, 0x2b, + 0x74, 0x5b, 0x31, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x69, 0x3e, 0x75, + 0x26, 0x26, 0x28, 0x74, 0x3d, 0x69, 0x2c, 0x69, 0x3d, 0x75, 0x2c, + 0x75, 0x3d, 0x74, 0x29, 0x2c, 0x6c, 0x3e, 0x63, 0x26, 0x26, 0x28, + 0x74, 0x3d, 0x6c, 0x2c, 0x6c, 0x3d, 0x63, 0x2c, 0x63, 0x3d, 0x74, + 0x29, 0x2c, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x28, 0x79, 0x29, 0x29, 0x3a, 0x5b, 0x5b, 0x69, 0x2c, + 0x6c, 0x5d, 0x2c, 0x5b, 0x75, 0x2c, 0x63, 0x5d, 0x5d, 0x7d, 0x2c, + 0x6e, 0x2e, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x72, 0x3d, 0x2b, 0x74, + 0x5b, 0x30, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x3d, 0x2b, 0x74, + 0x5b, 0x31, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x61, 0x3d, 0x2b, 0x74, + 0x5b, 0x30, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x6f, 0x3d, 0x2b, 0x74, + 0x5b, 0x31, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x72, 0x3e, 0x65, 0x26, + 0x26, 0x28, 0x74, 0x3d, 0x72, 0x2c, 0x72, 0x3d, 0x65, 0x2c, 0x65, + 0x3d, 0x74, 0x29, 0x2c, 0x61, 0x3e, 0x6f, 0x26, 0x26, 0x28, 0x74, + 0x3d, 0x61, 0x2c, 0x61, 0x3d, 0x6f, 0x2c, 0x6f, 0x3d, 0x74, 0x29, + 0x2c, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x28, 0x79, 0x29, 0x29, 0x3a, 0x5b, 0x5b, 0x72, 0x2c, 0x61, + 0x5d, 0x2c, 0x5b, 0x65, 0x2c, 0x6f, 0x5d, 0x5d, 0x7d, 0x2c, 0x6e, + 0x2e, 0x73, 0x74, 0x65, 0x70, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x6e, 0x2e, + 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x53, 0x74, 0x65, 0x70, 0x28, 0x74, + 0x29, 0x2e, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x53, 0x74, 0x65, 0x70, + 0x28, 0x74, 0x29, 0x3a, 0x6e, 0x2e, 0x6d, 0x69, 0x6e, 0x6f, 0x72, + 0x53, 0x74, 0x65, 0x70, 0x28, 0x29, 0x7d, 0x2c, 0x6e, 0x2e, 0x6d, + 0x61, 0x6a, 0x6f, 0x72, 0x53, 0x74, 0x65, 0x70, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x64, 0x3d, 0x2b, 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x6d, + 0x3d, 0x2b, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x6e, 0x29, 0x3a, 0x5b, + 0x64, 0x2c, 0x6d, 0x5d, 0x7d, 0x2c, 0x6e, 0x2e, 0x6d, 0x69, 0x6e, + 0x6f, 0x72, 0x53, 0x74, 0x65, 0x70, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x70, 0x3d, 0x2b, 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x76, 0x3d, 0x2b, + 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x6e, 0x29, 0x3a, 0x5b, 0x70, 0x2c, + 0x76, 0x5d, 0x7d, 0x2c, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x63, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x79, 0x3d, + 0x2b, 0x74, 0x2c, 0x73, 0x3d, 0x76, 0x72, 0x28, 0x61, 0x2c, 0x6f, + 0x2c, 0x39, 0x30, 0x29, 0x2c, 0x66, 0x3d, 0x64, 0x72, 0x28, 0x72, + 0x2c, 0x65, 0x2c, 0x79, 0x29, 0x2c, 0x68, 0x3d, 0x76, 0x72, 0x28, + 0x6c, 0x2c, 0x63, 0x2c, 0x39, 0x30, 0x29, 0x2c, 0x67, 0x3d, 0x64, + 0x72, 0x28, 0x69, 0x2c, 0x75, 0x2c, 0x79, 0x29, 0x2c, 0x6e, 0x29, + 0x3a, 0x79, 0x7d, 0x2c, 0x6e, 0x2e, 0x6d, 0x61, 0x6a, 0x6f, 0x72, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x28, 0x5b, 0x5b, 0x2d, 0x31, + 0x38, 0x30, 0x2c, 0x2d, 0x39, 0x30, 0x2b, 0x43, 0x61, 0x5d, 0x2c, + 0x5b, 0x31, 0x38, 0x30, 0x2c, 0x39, 0x30, 0x2d, 0x43, 0x61, 0x5d, + 0x5d, 0x29, 0x2e, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x74, 0x28, 0x5b, 0x5b, 0x2d, 0x31, 0x38, 0x30, 0x2c, + 0x2d, 0x38, 0x30, 0x2d, 0x43, 0x61, 0x5d, 0x2c, 0x5b, 0x31, 0x38, + 0x30, 0x2c, 0x38, 0x30, 0x2b, 0x43, 0x61, 0x5d, 0x5d, 0x29, 0x7d, + 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x67, 0x72, 0x65, + 0x61, 0x74, 0x41, 0x72, 0x63, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x22, 0x4c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2c, + 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x3a, 0x5b, 0x74, 0x7c, 0x7c, 0x72, 0x2e, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x2c, 0x65, 0x7c, 0x7c, 0x75, + 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x5d, 0x7d, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, + 0x72, 0x3d, 0x6d, 0x72, 0x2c, 0x75, 0x3d, 0x79, 0x72, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x64, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x64, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x28, 0x74, 0x7c, 0x7c, 0x72, + 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, + 0x2c, 0x65, 0x7c, 0x7c, 0x75, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x29, 0x29, 0x7d, 0x2c, 0x6e, 0x2e, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x72, + 0x3d, 0x65, 0x2c, 0x74, 0x3d, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, + 0x66, 0x20, 0x65, 0x3f, 0x6e, 0x75, 0x6c, 0x6c, 0x3a, 0x65, 0x2c, + 0x6e, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x6e, 0x2e, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x75, 0x3d, 0x74, + 0x2c, 0x65, 0x3d, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x74, 0x3f, 0x6e, 0x75, 0x6c, 0x6c, 0x3a, 0x74, 0x2c, 0x6e, 0x29, + 0x3a, 0x75, 0x7d, 0x2c, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x63, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x6e, 0x3a, 0x30, 0x7d, + 0x2c, 0x6e, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x4d, 0x72, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x2a, 0x44, 0x61, 0x2c, + 0x6e, 0x5b, 0x31, 0x5d, 0x2a, 0x44, 0x61, 0x2c, 0x74, 0x5b, 0x30, + 0x5d, 0x2a, 0x44, 0x61, 0x2c, 0x74, 0x5b, 0x31, 0x5d, 0x2a, 0x44, + 0x61, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x59, 0x63, 0x3d, 0x30, 0x2c, 0x74, 0x61, + 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x28, 0x6e, 0x2c, 0x5a, 0x63, 0x29, 0x2c, 0x59, 0x63, 0x7d, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x59, 0x63, 0x2c, 0x5a, 0x63, 0x3d, 0x7b, + 0x73, 0x70, 0x68, 0x65, 0x72, 0x65, 0x3a, 0x62, 0x2c, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x3a, 0x62, 0x2c, 0x6c, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x3a, 0x78, 0x72, 0x2c, 0x6c, 0x69, 0x6e, + 0x65, 0x45, 0x6e, 0x64, 0x3a, 0x62, 0x2c, 0x70, 0x6f, 0x6c, 0x79, + 0x67, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x3a, 0x62, 0x2c, + 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x3a, + 0x62, 0x7d, 0x2c, 0x56, 0x63, 0x3d, 0x62, 0x72, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x73, 0x71, 0x72, 0x74, 0x28, 0x32, 0x2f, 0x28, 0x31, 0x2b, 0x6e, + 0x29, 0x29, 0x7d, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x32, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x73, 0x69, + 0x6e, 0x28, 0x6e, 0x2f, 0x32, 0x29, 0x7d, 0x29, 0x3b, 0x28, 0x74, + 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x61, 0x7a, 0x69, 0x6d, 0x75, + 0x74, 0x68, 0x61, 0x6c, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x41, 0x72, + 0x65, 0x61, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, + 0x72, 0x28, 0x56, 0x63, 0x29, 0x7d, 0x29, 0x2e, 0x72, 0x61, 0x77, + 0x3d, 0x56, 0x63, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x58, 0x63, 0x3d, + 0x62, 0x72, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x61, 0x63, 0x6f, 0x73, 0x28, 0x6e, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x26, 0x26, + 0x74, 0x2f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, + 0x74, 0x29, 0x7d, 0x2c, 0x79, 0x29, 0x3b, 0x28, 0x74, 0x61, 0x2e, + 0x67, 0x65, 0x6f, 0x2e, 0x61, 0x7a, 0x69, 0x6d, 0x75, 0x74, 0x68, + 0x61, 0x6c, 0x45, 0x71, 0x75, 0x69, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, + 0x72, 0x28, 0x58, 0x63, 0x29, 0x7d, 0x29, 0x2e, 0x72, 0x61, 0x77, + 0x3d, 0x58, 0x63, 0x2c, 0x28, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, + 0x2e, 0x63, 0x6f, 0x6e, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x59, 0x65, 0x28, 0x5f, 0x72, 0x29, 0x7d, 0x29, 0x2e, 0x72, + 0x61, 0x77, 0x3d, 0x5f, 0x72, 0x2c, 0x28, 0x74, 0x61, 0x2e, 0x67, + 0x65, 0x6f, 0x2e, 0x63, 0x6f, 0x6e, 0x69, 0x63, 0x45, 0x71, 0x75, + 0x69, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x59, 0x65, 0x28, 0x77, 0x72, 0x29, + 0x7d, 0x29, 0x2e, 0x72, 0x61, 0x77, 0x3d, 0x77, 0x72, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x24, 0x63, 0x3d, 0x62, 0x72, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x2f, 0x6e, 0x7d, 0x2c, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x29, 0x3b, + 0x28, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x67, 0x6e, 0x6f, + 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x75, 0x72, 0x28, 0x24, 0x63, 0x29, 0x7d, 0x29, 0x2e, + 0x72, 0x61, 0x77, 0x3d, 0x24, 0x63, 0x2c, 0x53, 0x72, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x6e, 0x2c, 0x32, 0x2a, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x28, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x65, 0x78, 0x70, 0x28, 0x74, 0x29, 0x29, 0x2d, 0x52, + 0x61, 0x5d, 0x7d, 0x2c, 0x28, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, + 0x2e, 0x6d, 0x65, 0x72, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6b, 0x72, 0x28, 0x53, 0x72, + 0x29, 0x7d, 0x29, 0x2e, 0x72, 0x61, 0x77, 0x3d, 0x53, 0x72, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x42, 0x63, 0x3d, 0x62, 0x72, 0x28, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x7d, 0x2c, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x61, 0x73, 0x69, 0x6e, 0x29, 0x3b, 0x28, 0x74, + 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x2e, 0x6f, 0x72, 0x74, 0x68, 0x6f, + 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x75, 0x72, 0x28, 0x42, 0x63, 0x29, 0x7d, + 0x29, 0x2e, 0x72, 0x61, 0x77, 0x3d, 0x42, 0x63, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x57, 0x63, 0x3d, 0x62, 0x72, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x2f, 0x28, 0x31, 0x2b, 0x6e, + 0x29, 0x7d, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x32, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, + 0x28, 0x6e, 0x29, 0x7d, 0x29, 0x3b, 0x28, 0x74, 0x61, 0x2e, 0x67, + 0x65, 0x6f, 0x2e, 0x73, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x69, 0x63, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x75, 0x72, 0x28, 0x57, 0x63, 0x29, 0x7d, 0x29, 0x2e, + 0x72, 0x61, 0x77, 0x3d, 0x57, 0x63, 0x2c, 0x45, 0x72, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x2d, 0x74, 0x2c, 0x32, 0x2a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x61, 0x74, 0x61, 0x6e, 0x28, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x65, 0x78, 0x70, 0x28, 0x6e, 0x29, 0x29, 0x2d, + 0x52, 0x61, 0x5d, 0x7d, 0x2c, 0x28, 0x74, 0x61, 0x2e, 0x67, 0x65, + 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x76, 0x65, 0x72, 0x73, + 0x65, 0x4d, 0x65, 0x72, 0x63, 0x61, 0x74, 0x6f, 0x72, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x6b, 0x72, 0x28, 0x45, 0x72, 0x29, + 0x2c, 0x74, 0x3d, 0x6e, 0x2e, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x3f, 0x74, 0x28, 0x5b, 0x2d, 0x6e, 0x5b, + 0x31, 0x5d, 0x2c, 0x6e, 0x5b, 0x30, 0x5d, 0x5d, 0x29, 0x3a, 0x28, + 0x6e, 0x3d, 0x74, 0x28, 0x29, 0x2c, 0x5b, 0x6e, 0x5b, 0x31, 0x5d, + 0x2c, 0x2d, 0x6e, 0x5b, 0x30, 0x5d, 0x5d, 0x29, 0x7d, 0x2c, 0x6e, + 0x2e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3f, 0x65, 0x28, 0x5b, 0x6e, + 0x5b, 0x30, 0x5d, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, 0x2c, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x32, 0x3f, 0x6e, 0x5b, + 0x32, 0x5d, 0x2b, 0x39, 0x30, 0x3a, 0x39, 0x30, 0x5d, 0x29, 0x3a, + 0x28, 0x6e, 0x3d, 0x65, 0x28, 0x29, 0x2c, 0x5b, 0x6e, 0x5b, 0x30, + 0x5d, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, 0x2c, 0x6e, 0x5b, 0x32, 0x5d, + 0x2d, 0x39, 0x30, 0x5d, 0x29, 0x7d, 0x2c, 0x65, 0x28, 0x5b, 0x30, + 0x2c, 0x30, 0x2c, 0x39, 0x30, 0x5d, 0x29, 0x7d, 0x29, 0x2e, 0x72, + 0x61, 0x77, 0x3d, 0x45, 0x72, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, + 0x6f, 0x6d, 0x3d, 0x7b, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, + 0x6f, 0x6d, 0x2e, 0x68, 0x75, 0x6c, 0x6c, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3c, 0x33, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, + 0x5d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x75, 0x3d, 0x45, + 0x74, 0x28, 0x65, 0x29, 0x2c, 0x69, 0x3d, 0x45, 0x74, 0x28, 0x72, + 0x29, 0x2c, 0x6f, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x61, 0x3d, 0x5b, 0x5d, 0x2c, 0x63, 0x3d, 0x5b, 0x5d, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x30, 0x3b, 0x6f, 0x3e, + 0x74, 0x3b, 0x74, 0x2b, 0x2b, 0x29, 0x61, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x5b, 0x2b, 0x75, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x5b, 0x74, 0x5d, 0x2c, 0x74, + 0x29, 0x2c, 0x2b, 0x69, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x5b, 0x74, 0x5d, 0x2c, 0x74, 0x29, + 0x2c, 0x74, 0x5d, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x61, 0x2e, + 0x73, 0x6f, 0x72, 0x74, 0x28, 0x7a, 0x72, 0x29, 0x2c, 0x74, 0x3d, + 0x30, 0x3b, 0x6f, 0x3e, 0x74, 0x3b, 0x74, 0x2b, 0x2b, 0x29, 0x63, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x5b, 0x61, 0x5b, 0x74, 0x5d, + 0x5b, 0x30, 0x5d, 0x2c, 0x2d, 0x61, 0x5b, 0x74, 0x5d, 0x5b, 0x31, + 0x5d, 0x5d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x43, + 0x72, 0x28, 0x61, 0x29, 0x2c, 0x73, 0x3d, 0x43, 0x72, 0x28, 0x63, + 0x29, 0x2c, 0x66, 0x3d, 0x73, 0x5b, 0x30, 0x5d, 0x3d, 0x3d, 0x3d, + 0x6c, 0x5b, 0x30, 0x5d, 0x2c, 0x68, 0x3d, 0x73, 0x5b, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x3d, 0x3d, + 0x3d, 0x6c, 0x5b, 0x6c, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2d, 0x31, 0x5d, 0x2c, 0x67, 0x3d, 0x5b, 0x5d, 0x3b, 0x66, 0x6f, + 0x72, 0x28, 0x74, 0x3d, 0x6c, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2d, 0x31, 0x3b, 0x74, 0x3e, 0x3d, 0x30, 0x3b, 0x2d, 0x2d, + 0x74, 0x29, 0x67, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, 0x5b, + 0x61, 0x5b, 0x6c, 0x5b, 0x74, 0x5d, 0x5d, 0x5b, 0x32, 0x5d, 0x5d, + 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x2b, 0x66, 0x3b, + 0x74, 0x3c, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, + 0x68, 0x3b, 0x2b, 0x2b, 0x74, 0x29, 0x67, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x6e, 0x5b, 0x61, 0x5b, 0x73, 0x5b, 0x74, 0x5d, 0x5d, + 0x5b, 0x32, 0x5d, 0x5d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x67, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x41, + 0x72, 0x2c, 0x72, 0x3d, 0x4e, 0x72, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x74, 0x28, + 0x6e, 0x29, 0x3a, 0x28, 0x74, 0x2e, 0x78, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x65, 0x3d, 0x6e, 0x2c, 0x74, 0x29, 0x3a, 0x65, 0x7d, 0x2c, + 0x74, 0x2e, 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x72, 0x3d, 0x6e, + 0x2c, 0x74, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x74, 0x29, 0x7d, 0x2c, + 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, + 0x79, 0x67, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x79, 0x61, 0x28, 0x6e, 0x2c, 0x4a, 0x63, 0x29, 0x2c, + 0x6e, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x4a, 0x63, 0x3d, 0x74, + 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x6d, 0x2e, 0x70, 0x6f, 0x6c, 0x79, + 0x67, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x5b, 0x5d, 0x3b, 0x4a, 0x63, 0x2e, 0x61, 0x72, + 0x65, 0x61, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x6e, 0x2c, 0x74, 0x3d, 0x2d, 0x31, 0x2c, 0x65, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x72, + 0x3d, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x65, 0x2d, 0x31, 0x5d, 0x2c, + 0x75, 0x3d, 0x30, 0x3b, 0x2b, 0x2b, 0x74, 0x3c, 0x65, 0x3b, 0x29, + 0x6e, 0x3d, 0x72, 0x2c, 0x72, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x5b, + 0x74, 0x5d, 0x2c, 0x75, 0x2b, 0x3d, 0x6e, 0x5b, 0x31, 0x5d, 0x2a, + 0x72, 0x5b, 0x30, 0x5d, 0x2d, 0x6e, 0x5b, 0x30, 0x5d, 0x2a, 0x72, + 0x5b, 0x31, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2e, + 0x35, 0x2a, 0x75, 0x7d, 0x2c, 0x4a, 0x63, 0x2e, 0x63, 0x65, 0x6e, + 0x74, 0x72, 0x6f, 0x69, 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x3d, 0x2d, 0x31, 0x2c, 0x75, 0x3d, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2c, 0x69, 0x3d, 0x30, 0x2c, 0x6f, 0x3d, 0x30, 0x2c, 0x61, 0x3d, + 0x74, 0x68, 0x69, 0x73, 0x5b, 0x75, 0x2d, 0x31, 0x5d, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x7c, 0x7c, 0x28, + 0x6e, 0x3d, 0x2d, 0x31, 0x2f, 0x28, 0x36, 0x2a, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x28, 0x29, 0x29, 0x29, 0x3b, + 0x2b, 0x2b, 0x72, 0x3c, 0x75, 0x3b, 0x29, 0x74, 0x3d, 0x61, 0x2c, + 0x61, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x72, 0x5d, 0x2c, 0x65, + 0x3d, 0x74, 0x5b, 0x30, 0x5d, 0x2a, 0x61, 0x5b, 0x31, 0x5d, 0x2d, + 0x61, 0x5b, 0x30, 0x5d, 0x2a, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x69, + 0x2b, 0x3d, 0x28, 0x74, 0x5b, 0x30, 0x5d, 0x2b, 0x61, 0x5b, 0x30, + 0x5d, 0x29, 0x2a, 0x65, 0x2c, 0x6f, 0x2b, 0x3d, 0x28, 0x74, 0x5b, + 0x31, 0x5d, 0x2b, 0x61, 0x5b, 0x31, 0x5d, 0x29, 0x2a, 0x65, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x69, 0x2a, 0x6e, 0x2c, + 0x6f, 0x2a, 0x6e, 0x5d, 0x7d, 0x2c, 0x4a, 0x63, 0x2e, 0x63, 0x6c, + 0x69, 0x70, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, + 0x6f, 0x2c, 0x61, 0x3d, 0x54, 0x72, 0x28, 0x6e, 0x29, 0x2c, 0x63, + 0x3d, 0x2d, 0x31, 0x2c, 0x6c, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x54, 0x72, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x2c, 0x73, 0x3d, 0x74, 0x68, 0x69, 0x73, + 0x5b, 0x6c, 0x2d, 0x31, 0x5d, 0x3b, 0x2b, 0x2b, 0x63, 0x3c, 0x6c, + 0x3b, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x6e, 0x2e, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x29, 0x2c, 0x6e, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3d, 0x30, 0x2c, 0x75, 0x3d, 0x74, + 0x68, 0x69, 0x73, 0x5b, 0x63, 0x5d, 0x2c, 0x69, 0x3d, 0x74, 0x5b, + 0x28, 0x72, 0x3d, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2d, 0x61, 0x29, 0x2d, 0x31, 0x5d, 0x2c, 0x65, 0x3d, 0x2d, 0x31, + 0x3b, 0x2b, 0x2b, 0x65, 0x3c, 0x72, 0x3b, 0x29, 0x6f, 0x3d, 0x74, + 0x5b, 0x65, 0x5d, 0x2c, 0x71, 0x72, 0x28, 0x6f, 0x2c, 0x73, 0x2c, + 0x75, 0x29, 0x3f, 0x28, 0x71, 0x72, 0x28, 0x69, 0x2c, 0x73, 0x2c, + 0x75, 0x29, 0x7c, 0x7c, 0x6e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x4c, 0x72, 0x28, 0x69, 0x2c, 0x6f, 0x2c, 0x73, 0x2c, 0x75, 0x29, + 0x29, 0x2c, 0x6e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x6f, 0x29, + 0x29, 0x3a, 0x71, 0x72, 0x28, 0x69, 0x2c, 0x73, 0x2c, 0x75, 0x29, + 0x26, 0x26, 0x6e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x4c, 0x72, + 0x28, 0x69, 0x2c, 0x6f, 0x2c, 0x73, 0x2c, 0x75, 0x29, 0x29, 0x2c, + 0x69, 0x3d, 0x6f, 0x3b, 0x61, 0x26, 0x26, 0x6e, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x73, 0x3d, + 0x75, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x7d, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x47, 0x63, 0x2c, 0x4b, 0x63, 0x2c, + 0x51, 0x63, 0x2c, 0x6e, 0x6c, 0x2c, 0x74, 0x6c, 0x2c, 0x65, 0x6c, + 0x3d, 0x5b, 0x5d, 0x2c, 0x72, 0x6c, 0x3d, 0x5b, 0x5d, 0x3b, 0x4f, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, + 0x2e, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x2c, 0x74, 0x3d, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x73, 0x2c, 0x65, + 0x3d, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x65, + 0x2d, 0x2d, 0x3b, 0x29, 0x6e, 0x3d, 0x74, 0x5b, 0x65, 0x5d, 0x2e, + 0x65, 0x64, 0x67, 0x65, 0x2c, 0x6e, 0x2e, 0x62, 0x26, 0x26, 0x6e, + 0x2e, 0x61, 0x7c, 0x7c, 0x74, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x63, + 0x65, 0x28, 0x65, 0x2c, 0x31, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x28, 0x59, + 0x72, 0x29, 0x2c, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x7d, 0x2c, 0x51, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, + 0x79, 0x70, 0x65, 0x3d, 0x7b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x6c, 0x3d, 0x3d, 0x3d, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x3f, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x61, 0x3a, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x62, 0x7d, + 0x2c, 0x65, 0x6e, 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x6c, 0x3d, 0x3d, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x69, + 0x74, 0x65, 0x3f, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x62, 0x3a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x61, 0x7d, 0x7d, 0x2c, 0x6e, 0x75, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x7b, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x3b, 0x69, 0x66, 0x28, + 0x6e, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x74, 0x2e, 0x50, 0x3d, 0x6e, + 0x2c, 0x74, 0x2e, 0x4e, 0x3d, 0x6e, 0x2e, 0x4e, 0x2c, 0x6e, 0x2e, + 0x4e, 0x26, 0x26, 0x28, 0x6e, 0x2e, 0x4e, 0x2e, 0x50, 0x3d, 0x74, + 0x29, 0x2c, 0x6e, 0x2e, 0x4e, 0x3d, 0x74, 0x2c, 0x6e, 0x2e, 0x52, + 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x6e, 0x3d, 0x6e, 0x2e, 0x52, + 0x3b, 0x6e, 0x2e, 0x4c, 0x3b, 0x29, 0x6e, 0x3d, 0x6e, 0x2e, 0x4c, + 0x3b, 0x6e, 0x2e, 0x4c, 0x3d, 0x74, 0x7d, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x6e, 0x2e, 0x52, 0x3d, 0x74, 0x3b, 0x65, 0x3d, 0x6e, 0x7d, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, + 0x3f, 0x28, 0x6e, 0x3d, 0x75, 0x75, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x5f, 0x29, 0x2c, 0x74, 0x2e, 0x50, 0x3d, 0x6e, 0x75, 0x6c, + 0x6c, 0x2c, 0x74, 0x2e, 0x4e, 0x3d, 0x6e, 0x2c, 0x6e, 0x2e, 0x50, + 0x3d, 0x6e, 0x2e, 0x4c, 0x3d, 0x74, 0x2c, 0x65, 0x3d, 0x6e, 0x29, + 0x3a, 0x28, 0x74, 0x2e, 0x50, 0x3d, 0x74, 0x2e, 0x4e, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x3d, + 0x74, 0x2c, 0x65, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x74, 0x2e, 0x4c, 0x3d, 0x74, 0x2e, 0x52, 0x3d, + 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x74, 0x2e, 0x55, 0x3d, 0x65, 0x2c, + 0x74, 0x2e, 0x43, 0x3d, 0x21, 0x30, 0x2c, 0x6e, 0x3d, 0x74, 0x3b, + 0x65, 0x26, 0x26, 0x65, 0x2e, 0x43, 0x3b, 0x29, 0x72, 0x3d, 0x65, + 0x2e, 0x55, 0x2c, 0x65, 0x3d, 0x3d, 0x3d, 0x72, 0x2e, 0x4c, 0x3f, + 0x28, 0x75, 0x3d, 0x72, 0x2e, 0x52, 0x2c, 0x75, 0x26, 0x26, 0x75, + 0x2e, 0x43, 0x3f, 0x28, 0x65, 0x2e, 0x43, 0x3d, 0x75, 0x2e, 0x43, + 0x3d, 0x21, 0x31, 0x2c, 0x72, 0x2e, 0x43, 0x3d, 0x21, 0x30, 0x2c, + 0x6e, 0x3d, 0x72, 0x29, 0x3a, 0x28, 0x6e, 0x3d, 0x3d, 0x3d, 0x65, + 0x2e, 0x52, 0x26, 0x26, 0x28, 0x65, 0x75, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x65, 0x29, 0x2c, 0x6e, 0x3d, 0x65, 0x2c, 0x65, 0x3d, + 0x6e, 0x2e, 0x55, 0x29, 0x2c, 0x65, 0x2e, 0x43, 0x3d, 0x21, 0x31, + 0x2c, 0x72, 0x2e, 0x43, 0x3d, 0x21, 0x30, 0x2c, 0x72, 0x75, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2c, 0x72, 0x29, 0x29, 0x29, 0x3a, 0x28, + 0x75, 0x3d, 0x72, 0x2e, 0x4c, 0x2c, 0x75, 0x26, 0x26, 0x75, 0x2e, + 0x43, 0x3f, 0x28, 0x65, 0x2e, 0x43, 0x3d, 0x75, 0x2e, 0x43, 0x3d, + 0x21, 0x31, 0x2c, 0x72, 0x2e, 0x43, 0x3d, 0x21, 0x30, 0x2c, 0x6e, + 0x3d, 0x72, 0x29, 0x3a, 0x28, 0x6e, 0x3d, 0x3d, 0x3d, 0x65, 0x2e, + 0x4c, 0x26, 0x26, 0x28, 0x72, 0x75, 0x28, 0x74, 0x68, 0x69, 0x73, + 0x2c, 0x65, 0x29, 0x2c, 0x6e, 0x3d, 0x65, 0x2c, 0x65, 0x3d, 0x6e, + 0x2e, 0x55, 0x29, 0x2c, 0x65, 0x2e, 0x43, 0x3d, 0x21, 0x31, 0x2c, + 0x72, 0x2e, 0x43, 0x3d, 0x21, 0x30, 0x2c, 0x65, 0x75, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x72, 0x29, 0x29, 0x29, 0x2c, 0x65, 0x3d, + 0x6e, 0x2e, 0x55, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x2e, + 0x43, 0x3d, 0x21, 0x31, 0x7d, 0x2c, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x4e, 0x26, 0x26, 0x28, 0x6e, 0x2e, + 0x4e, 0x2e, 0x50, 0x3d, 0x6e, 0x2e, 0x50, 0x29, 0x2c, 0x6e, 0x2e, + 0x50, 0x26, 0x26, 0x28, 0x6e, 0x2e, 0x50, 0x2e, 0x4e, 0x3d, 0x6e, + 0x2e, 0x4e, 0x29, 0x2c, 0x6e, 0x2e, 0x4e, 0x3d, 0x6e, 0x2e, 0x50, + 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, 0x55, 0x2c, + 0x69, 0x3d, 0x6e, 0x2e, 0x4c, 0x2c, 0x6f, 0x3d, 0x6e, 0x2e, 0x52, + 0x3b, 0x69, 0x66, 0x28, 0x65, 0x3d, 0x69, 0x3f, 0x6f, 0x3f, 0x75, + 0x75, 0x28, 0x6f, 0x29, 0x3a, 0x69, 0x3a, 0x6f, 0x2c, 0x75, 0x3f, + 0x75, 0x2e, 0x4c, 0x3d, 0x3d, 0x3d, 0x6e, 0x3f, 0x75, 0x2e, 0x4c, + 0x3d, 0x65, 0x3a, 0x75, 0x2e, 0x52, 0x3d, 0x65, 0x3a, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x5f, 0x3d, 0x65, 0x2c, 0x69, 0x26, 0x26, 0x6f, + 0x3f, 0x28, 0x72, 0x3d, 0x65, 0x2e, 0x43, 0x2c, 0x65, 0x2e, 0x43, + 0x3d, 0x6e, 0x2e, 0x43, 0x2c, 0x65, 0x2e, 0x4c, 0x3d, 0x69, 0x2c, + 0x69, 0x2e, 0x55, 0x3d, 0x65, 0x2c, 0x65, 0x21, 0x3d, 0x3d, 0x6f, + 0x3f, 0x28, 0x75, 0x3d, 0x65, 0x2e, 0x55, 0x2c, 0x65, 0x2e, 0x55, + 0x3d, 0x6e, 0x2e, 0x55, 0x2c, 0x6e, 0x3d, 0x65, 0x2e, 0x52, 0x2c, + 0x75, 0x2e, 0x4c, 0x3d, 0x6e, 0x2c, 0x65, 0x2e, 0x52, 0x3d, 0x6f, + 0x2c, 0x6f, 0x2e, 0x55, 0x3d, 0x65, 0x29, 0x3a, 0x28, 0x65, 0x2e, + 0x55, 0x3d, 0x75, 0x2c, 0x75, 0x3d, 0x65, 0x2c, 0x6e, 0x3d, 0x65, + 0x2e, 0x52, 0x29, 0x29, 0x3a, 0x28, 0x72, 0x3d, 0x6e, 0x2e, 0x43, + 0x2c, 0x6e, 0x3d, 0x65, 0x29, 0x2c, 0x6e, 0x26, 0x26, 0x28, 0x6e, + 0x2e, 0x55, 0x3d, 0x75, 0x29, 0x2c, 0x21, 0x72, 0x29, 0x7b, 0x69, + 0x66, 0x28, 0x6e, 0x26, 0x26, 0x6e, 0x2e, 0x43, 0x29, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x6e, + 0x2e, 0x43, 0x3d, 0x21, 0x31, 0x29, 0x3b, 0x64, 0x6f, 0x7b, 0x69, + 0x66, 0x28, 0x6e, 0x3d, 0x3d, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x5f, 0x29, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3b, 0x69, 0x66, 0x28, + 0x6e, 0x3d, 0x3d, 0x3d, 0x75, 0x2e, 0x4c, 0x29, 0x7b, 0x69, 0x66, + 0x28, 0x74, 0x3d, 0x75, 0x2e, 0x52, 0x2c, 0x74, 0x2e, 0x43, 0x26, + 0x26, 0x28, 0x74, 0x2e, 0x43, 0x3d, 0x21, 0x31, 0x2c, 0x75, 0x2e, + 0x43, 0x3d, 0x21, 0x30, 0x2c, 0x65, 0x75, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x75, 0x29, 0x2c, 0x74, 0x3d, 0x75, 0x2e, 0x52, 0x29, + 0x2c, 0x74, 0x2e, 0x4c, 0x26, 0x26, 0x74, 0x2e, 0x4c, 0x2e, 0x43, + 0x7c, 0x7c, 0x74, 0x2e, 0x52, 0x26, 0x26, 0x74, 0x2e, 0x52, 0x2e, + 0x43, 0x29, 0x7b, 0x74, 0x2e, 0x52, 0x26, 0x26, 0x74, 0x2e, 0x52, + 0x2e, 0x43, 0x7c, 0x7c, 0x28, 0x74, 0x2e, 0x4c, 0x2e, 0x43, 0x3d, + 0x21, 0x31, 0x2c, 0x74, 0x2e, 0x43, 0x3d, 0x21, 0x30, 0x2c, 0x72, + 0x75, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x74, 0x29, 0x2c, 0x74, + 0x3d, 0x75, 0x2e, 0x52, 0x29, 0x2c, 0x74, 0x2e, 0x43, 0x3d, 0x75, + 0x2e, 0x43, 0x2c, 0x75, 0x2e, 0x43, 0x3d, 0x74, 0x2e, 0x52, 0x2e, + 0x43, 0x3d, 0x21, 0x31, 0x2c, 0x65, 0x75, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x75, 0x29, 0x2c, 0x6e, 0x3d, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x5f, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x7d, 0x7d, 0x65, + 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x74, 0x3d, 0x75, 0x2e, + 0x4c, 0x2c, 0x74, 0x2e, 0x43, 0x26, 0x26, 0x28, 0x74, 0x2e, 0x43, + 0x3d, 0x21, 0x31, 0x2c, 0x75, 0x2e, 0x43, 0x3d, 0x21, 0x30, 0x2c, + 0x72, 0x75, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x75, 0x29, 0x2c, + 0x74, 0x3d, 0x75, 0x2e, 0x4c, 0x29, 0x2c, 0x74, 0x2e, 0x4c, 0x26, + 0x26, 0x74, 0x2e, 0x4c, 0x2e, 0x43, 0x7c, 0x7c, 0x74, 0x2e, 0x52, + 0x26, 0x26, 0x74, 0x2e, 0x52, 0x2e, 0x43, 0x29, 0x7b, 0x74, 0x2e, + 0x4c, 0x26, 0x26, 0x74, 0x2e, 0x4c, 0x2e, 0x43, 0x7c, 0x7c, 0x28, + 0x74, 0x2e, 0x52, 0x2e, 0x43, 0x3d, 0x21, 0x31, 0x2c, 0x74, 0x2e, + 0x43, 0x3d, 0x21, 0x30, 0x2c, 0x65, 0x75, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x74, 0x29, 0x2c, 0x74, 0x3d, 0x75, 0x2e, 0x4c, 0x29, + 0x2c, 0x74, 0x2e, 0x43, 0x3d, 0x75, 0x2e, 0x43, 0x2c, 0x75, 0x2e, + 0x43, 0x3d, 0x74, 0x2e, 0x4c, 0x2e, 0x43, 0x3d, 0x21, 0x31, 0x2c, + 0x72, 0x75, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x75, 0x29, 0x2c, + 0x6e, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x3b, 0x62, 0x72, + 0x65, 0x61, 0x6b, 0x7d, 0x74, 0x2e, 0x43, 0x3d, 0x21, 0x30, 0x2c, + 0x6e, 0x3d, 0x75, 0x2c, 0x75, 0x3d, 0x75, 0x2e, 0x55, 0x7d, 0x77, + 0x68, 0x69, 0x6c, 0x65, 0x28, 0x21, 0x6e, 0x2e, 0x43, 0x29, 0x3b, + 0x6e, 0x26, 0x26, 0x28, 0x6e, 0x2e, 0x43, 0x3d, 0x21, 0x31, 0x29, + 0x7d, 0x7d, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x6d, + 0x2e, 0x76, 0x6f, 0x72, 0x6f, 0x6e, 0x6f, 0x69, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x65, 0x77, + 0x20, 0x41, 0x72, 0x72, 0x61, 0x79, 0x28, 0x6e, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x29, 0x2c, 0x72, 0x3d, 0x61, 0x5b, 0x30, + 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x3d, 0x61, 0x5b, 0x30, 0x5d, + 0x5b, 0x31, 0x5d, 0x2c, 0x69, 0x3d, 0x61, 0x5b, 0x31, 0x5d, 0x5b, + 0x30, 0x5d, 0x2c, 0x6f, 0x3d, 0x61, 0x5b, 0x31, 0x5d, 0x5b, 0x31, + 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, + 0x28, 0x65, 0x28, 0x6e, 0x29, 0x2c, 0x61, 0x29, 0x2e, 0x63, 0x65, + 0x6c, 0x6c, 0x73, 0x2e, 0x66, 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, + 0x2c, 0x61, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x3d, 0x65, + 0x2e, 0x65, 0x64, 0x67, 0x65, 0x73, 0x2c, 0x6c, 0x3d, 0x65, 0x2e, + 0x73, 0x69, 0x74, 0x65, 0x2c, 0x73, 0x3d, 0x74, 0x5b, 0x61, 0x5d, + 0x3d, 0x63, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x63, + 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x3d, 0x6e, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x28, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x74, 0x2e, 0x78, 0x2c, + 0x74, 0x2e, 0x79, 0x5d, 0x7d, 0x29, 0x3a, 0x6c, 0x2e, 0x78, 0x3e, + 0x3d, 0x72, 0x26, 0x26, 0x6c, 0x2e, 0x78, 0x3c, 0x3d, 0x69, 0x26, + 0x26, 0x6c, 0x2e, 0x79, 0x3e, 0x3d, 0x75, 0x26, 0x26, 0x6c, 0x2e, + 0x79, 0x3c, 0x3d, 0x6f, 0x3f, 0x5b, 0x5b, 0x72, 0x2c, 0x6f, 0x5d, + 0x2c, 0x5b, 0x69, 0x2c, 0x6f, 0x5d, 0x2c, 0x5b, 0x69, 0x2c, 0x75, + 0x5d, 0x2c, 0x5b, 0x72, 0x2c, 0x75, 0x5d, 0x5d, 0x3a, 0x5b, 0x5d, + 0x3b, 0x73, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x6e, 0x5b, + 0x61, 0x5d, 0x7d, 0x29, 0x2c, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x6d, 0x61, 0x70, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x7b, + 0x78, 0x3a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x28, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x2f, 0x43, 0x61, + 0x29, 0x2a, 0x43, 0x61, 0x2c, 0x79, 0x3a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x6f, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x2f, 0x43, 0x61, 0x29, 0x2a, 0x43, 0x61, 0x2c, 0x69, + 0x3a, 0x74, 0x7d, 0x7d, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x72, + 0x3d, 0x41, 0x72, 0x2c, 0x75, 0x3d, 0x4e, 0x72, 0x2c, 0x69, 0x3d, + 0x72, 0x2c, 0x6f, 0x3d, 0x75, 0x2c, 0x61, 0x3d, 0x75, 0x6c, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3f, 0x74, 0x28, + 0x6e, 0x29, 0x3a, 0x28, 0x74, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x73, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, + 0x28, 0x65, 0x28, 0x6e, 0x29, 0x29, 0x2e, 0x65, 0x64, 0x67, 0x65, + 0x73, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x6c, 0x26, 0x26, + 0x6e, 0x2e, 0x72, 0x7d, 0x29, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x7b, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x3a, 0x6e, 0x5b, 0x74, 0x2e, 0x6c, 0x2e, 0x69, 0x5d, + 0x2c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3a, 0x6e, 0x5b, 0x74, + 0x2e, 0x72, 0x2e, 0x69, 0x5d, 0x7d, 0x7d, 0x29, 0x7d, 0x2c, 0x74, + 0x2e, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x5b, 0x5d, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x75, 0x28, 0x65, 0x28, + 0x6e, 0x29, 0x29, 0x2e, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x2e, 0x66, + 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x75, 0x2c, 0x69, 0x2c, + 0x6f, 0x3d, 0x65, 0x2e, 0x73, 0x69, 0x74, 0x65, 0x2c, 0x61, 0x3d, + 0x65, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x73, 0x2e, 0x73, 0x6f, 0x72, + 0x74, 0x28, 0x59, 0x72, 0x29, 0x2c, 0x63, 0x3d, 0x2d, 0x31, 0x2c, + 0x6c, 0x3d, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, + 0x73, 0x3d, 0x61, 0x5b, 0x6c, 0x2d, 0x31, 0x5d, 0x2e, 0x65, 0x64, + 0x67, 0x65, 0x2c, 0x66, 0x3d, 0x73, 0x2e, 0x6c, 0x3d, 0x3d, 0x3d, + 0x6f, 0x3f, 0x73, 0x2e, 0x72, 0x3a, 0x73, 0x2e, 0x6c, 0x3b, 0x2b, + 0x2b, 0x63, 0x3c, 0x6c, 0x3b, 0x29, 0x75, 0x3d, 0x73, 0x2c, 0x69, + 0x3d, 0x66, 0x2c, 0x73, 0x3d, 0x61, 0x5b, 0x63, 0x5d, 0x2e, 0x65, + 0x64, 0x67, 0x65, 0x2c, 0x66, 0x3d, 0x73, 0x2e, 0x6c, 0x3d, 0x3d, + 0x3d, 0x6f, 0x3f, 0x73, 0x2e, 0x72, 0x3a, 0x73, 0x2e, 0x6c, 0x2c, + 0x72, 0x3c, 0x69, 0x2e, 0x69, 0x26, 0x26, 0x72, 0x3c, 0x66, 0x2e, + 0x69, 0x26, 0x26, 0x61, 0x75, 0x28, 0x6f, 0x2c, 0x69, 0x2c, 0x66, + 0x29, 0x3c, 0x30, 0x26, 0x26, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x5b, 0x6e, 0x5b, 0x72, 0x5d, 0x2c, 0x6e, 0x5b, 0x69, 0x2e, + 0x69, 0x5d, 0x2c, 0x6e, 0x5b, 0x66, 0x2e, 0x69, 0x5d, 0x5d, 0x29, + 0x7d, 0x29, 0x2c, 0x74, 0x7d, 0x2c, 0x74, 0x2e, 0x78, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x69, 0x3d, 0x45, 0x74, 0x28, 0x72, 0x3d, 0x6e, + 0x29, 0x2c, 0x74, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x74, 0x2e, 0x79, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6f, 0x3d, 0x45, 0x74, 0x28, 0x75, + 0x3d, 0x6e, 0x29, 0x2c, 0x74, 0x29, 0x3a, 0x75, 0x7d, 0x2c, 0x74, + 0x2e, 0x63, 0x6c, 0x69, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x74, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x61, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, + 0x3d, 0x3d, 0x6e, 0x3f, 0x75, 0x6c, 0x3a, 0x6e, 0x2c, 0x74, 0x29, + 0x3a, 0x61, 0x3d, 0x3d, 0x3d, 0x75, 0x6c, 0x3f, 0x6e, 0x75, 0x6c, + 0x6c, 0x3a, 0x61, 0x7d, 0x2c, 0x74, 0x2e, 0x73, 0x69, 0x7a, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x74, 0x2e, 0x63, 0x6c, 0x69, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x74, 0x28, 0x6e, 0x26, 0x26, 0x5b, 0x5b, + 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x6e, 0x5d, 0x29, 0x3a, 0x61, 0x3d, + 0x3d, 0x3d, 0x75, 0x6c, 0x3f, 0x6e, 0x75, 0x6c, 0x6c, 0x3a, 0x61, + 0x26, 0x26, 0x61, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, 0x74, 0x29, 0x7d, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x6c, 0x3d, 0x5b, 0x5b, 0x2d, + 0x31, 0x65, 0x36, 0x2c, 0x2d, 0x31, 0x65, 0x36, 0x5d, 0x2c, 0x5b, + 0x31, 0x65, 0x36, 0x2c, 0x31, 0x65, 0x36, 0x5d, 0x5d, 0x3b, 0x74, + 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x6d, 0x2e, 0x64, 0x65, 0x6c, 0x61, + 0x75, 0x6e, 0x61, 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x6d, 0x2e, 0x76, + 0x6f, 0x72, 0x6f, 0x6e, 0x6f, 0x69, 0x28, 0x29, 0x2e, 0x74, 0x72, + 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x73, 0x28, 0x6e, 0x29, 0x7d, + 0x2c, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x6d, 0x2e, 0x71, 0x75, + 0x61, 0x64, 0x74, 0x72, 0x65, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, + 0x72, 0x2c, 0x75, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x6e, 0x2c, 0x74, + 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x2c, + 0x61, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x21, 0x69, 0x73, 0x4e, 0x61, + 0x4e, 0x28, 0x65, 0x29, 0x26, 0x26, 0x21, 0x69, 0x73, 0x4e, 0x61, + 0x4e, 0x28, 0x72, 0x29, 0x29, 0x69, 0x66, 0x28, 0x6e, 0x2e, 0x6c, + 0x65, 0x61, 0x66, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x3d, + 0x6e, 0x2e, 0x78, 0x2c, 0x73, 0x3d, 0x6e, 0x2e, 0x79, 0x3b, 0x69, + 0x66, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x63, 0x29, 0x69, + 0x66, 0x28, 0x67, 0x61, 0x28, 0x63, 0x2d, 0x65, 0x29, 0x2b, 0x67, + 0x61, 0x28, 0x73, 0x2d, 0x72, 0x29, 0x3c, 0x2e, 0x30, 0x31, 0x29, + 0x6c, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, + 0x2c, 0x69, 0x2c, 0x6f, 0x2c, 0x61, 0x29, 0x3b, 0x65, 0x6c, 0x73, + 0x65, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x66, 0x3d, 0x6e, 0x2e, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x3b, 0x6e, 0x2e, 0x78, 0x3d, 0x6e, 0x2e, + 0x79, 0x3d, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x6c, 0x28, 0x6e, 0x2c, 0x66, 0x2c, 0x63, + 0x2c, 0x73, 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x2c, 0x61, 0x29, + 0x2c, 0x6c, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, + 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x2c, 0x61, 0x29, 0x7d, 0x65, 0x6c, + 0x73, 0x65, 0x20, 0x6e, 0x2e, 0x78, 0x3d, 0x65, 0x2c, 0x6e, 0x2e, + 0x79, 0x3d, 0x72, 0x2c, 0x6e, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x3d, 0x74, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x6c, 0x28, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, + 0x6f, 0x2c, 0x61, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6c, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, + 0x72, 0x2c, 0x75, 0x2c, 0x6f, 0x2c, 0x61, 0x2c, 0x63, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x2e, 0x35, 0x2a, 0x28, 0x75, + 0x2b, 0x61, 0x29, 0x2c, 0x73, 0x3d, 0x2e, 0x35, 0x2a, 0x28, 0x6f, + 0x2b, 0x63, 0x29, 0x2c, 0x66, 0x3d, 0x65, 0x3e, 0x3d, 0x6c, 0x2c, + 0x68, 0x3d, 0x72, 0x3e, 0x3d, 0x73, 0x2c, 0x67, 0x3d, 0x68, 0x3c, + 0x3c, 0x31, 0x7c, 0x66, 0x3b, 0x6e, 0x2e, 0x6c, 0x65, 0x61, 0x66, + 0x3d, 0x21, 0x31, 0x2c, 0x6e, 0x3d, 0x6e, 0x2e, 0x6e, 0x6f, 0x64, + 0x65, 0x73, 0x5b, 0x67, 0x5d, 0x7c, 0x7c, 0x28, 0x6e, 0x2e, 0x6e, + 0x6f, 0x64, 0x65, 0x73, 0x5b, 0x67, 0x5d, 0x3d, 0x73, 0x75, 0x28, + 0x29, 0x29, 0x2c, 0x66, 0x3f, 0x75, 0x3d, 0x6c, 0x3a, 0x61, 0x3d, + 0x6c, 0x2c, 0x68, 0x3f, 0x6f, 0x3d, 0x73, 0x3a, 0x63, 0x3d, 0x73, + 0x2c, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, + 0x75, 0x2c, 0x6f, 0x2c, 0x61, 0x2c, 0x63, 0x29, 0x7d, 0x76, 0x61, + 0x72, 0x20, 0x73, 0x2c, 0x66, 0x2c, 0x68, 0x2c, 0x67, 0x2c, 0x70, + 0x2c, 0x76, 0x2c, 0x64, 0x2c, 0x6d, 0x2c, 0x79, 0x2c, 0x4d, 0x3d, + 0x45, 0x74, 0x28, 0x61, 0x29, 0x2c, 0x78, 0x3d, 0x45, 0x74, 0x28, + 0x63, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x21, + 0x3d, 0x74, 0x29, 0x76, 0x3d, 0x74, 0x2c, 0x64, 0x3d, 0x65, 0x2c, + 0x6d, 0x3d, 0x72, 0x2c, 0x79, 0x3d, 0x75, 0x3b, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x69, 0x66, 0x28, 0x6d, 0x3d, 0x79, 0x3d, 0x2d, 0x28, + 0x76, 0x3d, 0x64, 0x3d, 0x31, 0x2f, 0x30, 0x29, 0x2c, 0x66, 0x3d, + 0x5b, 0x5d, 0x2c, 0x68, 0x3d, 0x5b, 0x5d, 0x2c, 0x70, 0x3d, 0x6e, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x6f, 0x29, 0x66, + 0x6f, 0x72, 0x28, 0x67, 0x3d, 0x30, 0x3b, 0x70, 0x3e, 0x67, 0x3b, + 0x2b, 0x2b, 0x67, 0x29, 0x73, 0x3d, 0x6e, 0x5b, 0x67, 0x5d, 0x2c, + 0x73, 0x2e, 0x78, 0x3c, 0x76, 0x26, 0x26, 0x28, 0x76, 0x3d, 0x73, + 0x2e, 0x78, 0x29, 0x2c, 0x73, 0x2e, 0x79, 0x3c, 0x64, 0x26, 0x26, + 0x28, 0x64, 0x3d, 0x73, 0x2e, 0x79, 0x29, 0x2c, 0x73, 0x2e, 0x78, + 0x3e, 0x6d, 0x26, 0x26, 0x28, 0x6d, 0x3d, 0x73, 0x2e, 0x78, 0x29, + 0x2c, 0x73, 0x2e, 0x79, 0x3e, 0x79, 0x26, 0x26, 0x28, 0x79, 0x3d, + 0x73, 0x2e, 0x79, 0x29, 0x2c, 0x66, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x73, 0x2e, 0x78, 0x29, 0x2c, 0x68, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x73, 0x2e, 0x79, 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x28, 0x67, 0x3d, 0x30, 0x3b, 0x70, 0x3e, + 0x67, 0x3b, 0x2b, 0x2b, 0x67, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x62, 0x3d, 0x2b, 0x4d, 0x28, 0x73, 0x3d, 0x6e, 0x5b, 0x67, 0x5d, + 0x2c, 0x67, 0x29, 0x2c, 0x5f, 0x3d, 0x2b, 0x78, 0x28, 0x73, 0x2c, + 0x67, 0x29, 0x3b, 0x76, 0x3e, 0x62, 0x26, 0x26, 0x28, 0x76, 0x3d, + 0x62, 0x29, 0x2c, 0x64, 0x3e, 0x5f, 0x26, 0x26, 0x28, 0x64, 0x3d, + 0x5f, 0x29, 0x2c, 0x62, 0x3e, 0x6d, 0x26, 0x26, 0x28, 0x6d, 0x3d, + 0x62, 0x29, 0x2c, 0x5f, 0x3e, 0x79, 0x26, 0x26, 0x28, 0x79, 0x3d, + 0x5f, 0x29, 0x2c, 0x66, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x62, + 0x29, 0x2c, 0x68, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x5f, 0x29, + 0x7d, 0x76, 0x61, 0x72, 0x20, 0x77, 0x3d, 0x6d, 0x2d, 0x76, 0x2c, + 0x53, 0x3d, 0x79, 0x2d, 0x64, 0x3b, 0x77, 0x3e, 0x53, 0x3f, 0x79, + 0x3d, 0x64, 0x2b, 0x77, 0x3a, 0x6d, 0x3d, 0x76, 0x2b, 0x53, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x6b, 0x3d, 0x73, 0x75, 0x28, 0x29, 0x3b, + 0x69, 0x66, 0x28, 0x6b, 0x2e, 0x61, 0x64, 0x64, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x69, + 0x28, 0x6b, 0x2c, 0x6e, 0x2c, 0x2b, 0x4d, 0x28, 0x6e, 0x2c, 0x2b, + 0x2b, 0x67, 0x29, 0x2c, 0x2b, 0x78, 0x28, 0x6e, 0x2c, 0x67, 0x29, + 0x2c, 0x76, 0x2c, 0x64, 0x2c, 0x6d, 0x2c, 0x79, 0x29, 0x7d, 0x2c, + 0x6b, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x74, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x75, + 0x28, 0x6e, 0x2c, 0x6b, 0x2c, 0x76, 0x2c, 0x64, 0x2c, 0x6d, 0x2c, + 0x79, 0x29, 0x7d, 0x2c, 0x6b, 0x2e, 0x66, 0x69, 0x6e, 0x64, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, 0x75, 0x28, + 0x6b, 0x2c, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, + 0x2c, 0x76, 0x2c, 0x64, 0x2c, 0x6d, 0x2c, 0x79, 0x29, 0x7d, 0x2c, + 0x67, 0x3d, 0x2d, 0x31, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, + 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x3b, 0x2b, 0x2b, 0x67, + 0x3c, 0x70, 0x3b, 0x29, 0x69, 0x28, 0x6b, 0x2c, 0x6e, 0x5b, 0x67, + 0x5d, 0x2c, 0x66, 0x5b, 0x67, 0x5d, 0x2c, 0x68, 0x5b, 0x67, 0x5d, + 0x2c, 0x76, 0x2c, 0x64, 0x2c, 0x6d, 0x2c, 0x79, 0x29, 0x3b, 0x2d, + 0x2d, 0x67, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x6e, 0x2e, 0x66, + 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x6b, 0x2e, 0x61, 0x64, + 0x64, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x3d, 0x68, 0x3d, 0x6e, 0x3d, 0x73, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, + 0x2c, 0x6b, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x2c, 0x61, 0x3d, + 0x41, 0x72, 0x2c, 0x63, 0x3d, 0x4e, 0x72, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x28, 0x6f, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x3f, 0x28, 0x61, 0x3d, 0x63, 0x75, 0x2c, 0x63, 0x3d, 0x6c, + 0x75, 0x2c, 0x33, 0x3d, 0x3d, 0x3d, 0x6f, 0x26, 0x26, 0x28, 0x75, + 0x3d, 0x65, 0x2c, 0x72, 0x3d, 0x74, 0x2c, 0x65, 0x3d, 0x74, 0x3d, + 0x30, 0x29, 0x2c, 0x69, 0x28, 0x6e, 0x29, 0x29, 0x3a, 0x28, 0x69, + 0x2e, 0x78, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x61, 0x3d, 0x6e, 0x2c, + 0x69, 0x29, 0x3a, 0x61, 0x7d, 0x2c, 0x69, 0x2e, 0x79, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x63, 0x3d, 0x6e, 0x2c, 0x69, 0x29, 0x3a, 0x63, + 0x7d, 0x2c, 0x69, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, + 0x3f, 0x74, 0x3d, 0x65, 0x3d, 0x72, 0x3d, 0x75, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x3a, 0x28, 0x74, 0x3d, 0x2b, 0x6e, 0x5b, 0x30, 0x5d, + 0x5b, 0x30, 0x5d, 0x2c, 0x65, 0x3d, 0x2b, 0x6e, 0x5b, 0x30, 0x5d, + 0x5b, 0x31, 0x5d, 0x2c, 0x72, 0x3d, 0x2b, 0x6e, 0x5b, 0x31, 0x5d, + 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x3d, 0x2b, 0x6e, 0x5b, 0x31, 0x5d, + 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x69, 0x29, 0x3a, 0x6e, 0x75, 0x6c, + 0x6c, 0x3d, 0x3d, 0x74, 0x3f, 0x6e, 0x75, 0x6c, 0x6c, 0x3a, 0x5b, + 0x5b, 0x74, 0x2c, 0x65, 0x5d, 0x2c, 0x5b, 0x72, 0x2c, 0x75, 0x5d, + 0x5d, 0x7d, 0x2c, 0x69, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x3f, + 0x74, 0x3d, 0x65, 0x3d, 0x72, 0x3d, 0x75, 0x3d, 0x6e, 0x75, 0x6c, + 0x6c, 0x3a, 0x28, 0x74, 0x3d, 0x65, 0x3d, 0x30, 0x2c, 0x72, 0x3d, + 0x2b, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x3d, 0x2b, 0x6e, 0x5b, + 0x31, 0x5d, 0x29, 0x2c, 0x69, 0x29, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, + 0x3d, 0x3d, 0x74, 0x3f, 0x6e, 0x75, 0x6c, 0x6c, 0x3a, 0x5b, 0x72, + 0x2d, 0x74, 0x2c, 0x75, 0x2d, 0x65, 0x5d, 0x7d, 0x2c, 0x69, 0x29, + 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x67, 0x62, 0x3d, 0x67, 0x75, + 0x2c, 0x74, 0x61, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, + 0x6c, 0x61, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3d, + 0x70, 0x75, 0x2c, 0x74, 0x61, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x3d, 0x76, 0x75, 0x2c, 0x74, 0x61, 0x2e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x3d, 0x64, 0x75, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x69, 0x6c, 0x3d, 0x2f, 0x5b, 0x2d, 0x2b, 0x5d, 0x3f, 0x28, 0x3f, + 0x3a, 0x5c, 0x64, 0x2b, 0x5c, 0x2e, 0x3f, 0x5c, 0x64, 0x2a, 0x7c, + 0x5c, 0x2e, 0x3f, 0x5c, 0x64, 0x2b, 0x29, 0x28, 0x3f, 0x3a, 0x5b, + 0x65, 0x45, 0x5d, 0x5b, 0x2d, 0x2b, 0x5d, 0x3f, 0x5c, 0x64, 0x2b, + 0x29, 0x3f, 0x2f, 0x67, 0x2c, 0x6f, 0x6c, 0x3d, 0x6e, 0x65, 0x77, + 0x20, 0x52, 0x65, 0x67, 0x45, 0x78, 0x70, 0x28, 0x69, 0x6c, 0x2e, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2c, 0x22, 0x67, 0x22, 0x29, + 0x3b, 0x74, 0x61, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, + 0x6c, 0x61, 0x74, 0x65, 0x3d, 0x6d, 0x75, 0x2c, 0x74, 0x61, 0x2e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x3d, 0x5b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x74, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x22, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x22, 0x3d, 0x3d, 0x3d, 0x65, 0x3f, 0x47, 0x61, + 0x2e, 0x68, 0x61, 0x73, 0x28, 0x74, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, + 0x77, 0x65, 0x72, 0x43, 0x61, 0x73, 0x65, 0x28, 0x29, 0x29, 0x7c, + 0x7c, 0x2f, 0x5e, 0x28, 0x23, 0x7c, 0x72, 0x67, 0x62, 0x5c, 0x28, + 0x7c, 0x68, 0x73, 0x6c, 0x5c, 0x28, 0x29, 0x2f, 0x69, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x28, 0x74, 0x29, 0x3f, 0x67, 0x75, 0x3a, 0x64, + 0x75, 0x3a, 0x74, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x6f, 0x66, 0x20, 0x6f, 0x74, 0x3f, 0x67, 0x75, 0x3a, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x2e, 0x69, 0x73, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x28, 0x74, 0x29, 0x3f, 0x79, 0x75, 0x3a, 0x22, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x22, 0x3d, 0x3d, 0x3d, 0x65, 0x26, 0x26, + 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x74, 0x29, 0x3f, 0x70, 0x75, + 0x3a, 0x76, 0x75, 0x29, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7d, 0x5d, + 0x2c, 0x74, 0x61, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, + 0x6c, 0x61, 0x74, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x3d, 0x79, + 0x75, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x61, 0x6c, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x79, 0x7d, 0x2c, 0x63, 0x6c, 0x3d, + 0x74, 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x7b, 0x6c, 0x69, 0x6e, + 0x65, 0x61, 0x72, 0x3a, 0x61, 0x6c, 0x2c, 0x70, 0x6f, 0x6c, 0x79, + 0x3a, 0x6b, 0x75, 0x2c, 0x71, 0x75, 0x61, 0x64, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5f, 0x75, 0x7d, 0x2c, 0x63, 0x75, + 0x62, 0x69, 0x63, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x77, 0x75, 0x7d, 0x2c, 0x73, 0x69, 0x6e, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x45, 0x75, 0x7d, 0x2c, 0x65, 0x78, 0x70, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x41, 0x75, 0x7d, + 0x2c, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x4e, 0x75, 0x7d, 0x2c, 0x65, 0x6c, 0x61, + 0x73, 0x74, 0x69, 0x63, 0x3a, 0x43, 0x75, 0x2c, 0x62, 0x61, 0x63, + 0x6b, 0x3a, 0x7a, 0x75, 0x2c, 0x62, 0x6f, 0x75, 0x6e, 0x63, 0x65, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x71, 0x75, 0x7d, + 0x7d, 0x29, 0x2c, 0x6c, 0x6c, 0x3d, 0x74, 0x61, 0x2e, 0x6d, 0x61, + 0x70, 0x28, 0x7b, 0x22, 0x69, 0x6e, 0x22, 0x3a, 0x79, 0x2c, 0x6f, + 0x75, 0x74, 0x3a, 0x78, 0x75, 0x2c, 0x22, 0x69, 0x6e, 0x2d, 0x6f, + 0x75, 0x74, 0x22, 0x3a, 0x62, 0x75, 0x2c, 0x22, 0x6f, 0x75, 0x74, + 0x2d, 0x69, 0x6e, 0x22, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x62, 0x75, 0x28, 0x78, 0x75, 0x28, 0x6e, 0x29, 0x29, + 0x7d, 0x7d, 0x29, 0x3b, 0x74, 0x61, 0x2e, 0x65, 0x61, 0x73, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x66, 0x28, 0x22, 0x2d, 0x22, 0x29, + 0x2c, 0x65, 0x3d, 0x74, 0x3e, 0x3d, 0x30, 0x3f, 0x6e, 0x2e, 0x73, + 0x6c, 0x69, 0x63, 0x65, 0x28, 0x30, 0x2c, 0x74, 0x29, 0x3a, 0x6e, + 0x2c, 0x72, 0x3d, 0x74, 0x3e, 0x3d, 0x30, 0x3f, 0x6e, 0x2e, 0x73, + 0x6c, 0x69, 0x63, 0x65, 0x28, 0x74, 0x2b, 0x31, 0x29, 0x3a, 0x22, + 0x69, 0x6e, 0x22, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x65, 0x3d, 0x63, 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x28, 0x65, 0x29, + 0x7c, 0x7c, 0x61, 0x6c, 0x2c, 0x72, 0x3d, 0x6c, 0x6c, 0x2e, 0x67, + 0x65, 0x74, 0x28, 0x72, 0x29, 0x7c, 0x7c, 0x79, 0x2c, 0x4d, 0x75, + 0x28, 0x72, 0x28, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, + 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x65, 0x61, 0x2e, 0x63, 0x61, 0x6c, + 0x6c, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2c, 0x31, 0x29, 0x29, 0x29, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, + 0x48, 0x63, 0x6c, 0x3d, 0x4c, 0x75, 0x2c, 0x74, 0x61, 0x2e, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x48, + 0x73, 0x6c, 0x3d, 0x54, 0x75, 0x2c, 0x74, 0x61, 0x2e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x61, + 0x62, 0x3d, 0x52, 0x75, 0x2c, 0x74, 0x61, 0x2e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x75, + 0x6e, 0x64, 0x3d, 0x44, 0x75, 0x2c, 0x74, 0x61, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x75, 0x61, 0x2e, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x53, + 0x28, 0x74, 0x61, 0x2e, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x2e, 0x73, 0x76, 0x67, 0x2c, 0x22, 0x67, 0x22, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x74, 0x61, 0x2e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x69, 0x66, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x6e, 0x29, + 0x7b, 0x74, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x28, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x2c, 0x6e, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3d, 0x74, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x56, 0x61, + 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x28, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x6e, 0x65, 0x77, 0x20, 0x50, 0x75, 0x28, 0x65, 0x3f, 0x65, + 0x2e, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x3a, 0x73, 0x6c, 0x29, + 0x7d, 0x29, 0x28, 0x6e, 0x29, 0x7d, 0x2c, 0x50, 0x75, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x74, 0x6f, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, + 0x65, 0x28, 0x22, 0x2b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x2b, 0x22, 0x29, 0x72, + 0x6f, 0x74, 0x61, 0x74, 0x65, 0x28, 0x22, 0x2b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x2b, 0x22, 0x29, + 0x73, 0x6b, 0x65, 0x77, 0x58, 0x28, 0x22, 0x2b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x6b, 0x65, 0x77, 0x2b, 0x22, 0x29, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x28, 0x22, 0x2b, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2b, 0x22, 0x29, 0x22, 0x7d, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x73, 0x6c, 0x3d, 0x7b, 0x61, 0x3a, 0x31, + 0x2c, 0x62, 0x3a, 0x30, 0x2c, 0x63, 0x3a, 0x30, 0x2c, 0x64, 0x3a, + 0x31, 0x2c, 0x65, 0x3a, 0x30, 0x2c, 0x66, 0x3a, 0x30, 0x7d, 0x3b, + 0x74, 0x61, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, + 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, + 0x6d, 0x3d, 0x48, 0x75, 0x2c, 0x74, 0x61, 0x2e, 0x6c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x3d, 0x7b, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x6c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x5b, 0x5d, + 0x2c, 0x65, 0x3d, 0x2d, 0x31, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x65, 0x3c, 0x72, + 0x3b, 0x29, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x59, 0x75, + 0x28, 0x6e, 0x5b, 0x65, 0x5d, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x7d, 0x2c, 0x74, 0x61, 0x2e, + 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x63, 0x68, 0x6f, 0x72, + 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x2c, 0x6c, + 0x2c, 0x66, 0x2c, 0x68, 0x2c, 0x67, 0x2c, 0x70, 0x3d, 0x7b, 0x7d, + 0x2c, 0x76, 0x3d, 0x5b, 0x5d, 0x2c, 0x64, 0x3d, 0x74, 0x61, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x69, 0x29, 0x2c, 0x6d, 0x3d, + 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x3d, 0x5b, 0x5d, + 0x2c, 0x72, 0x3d, 0x5b, 0x5d, 0x2c, 0x6e, 0x3d, 0x30, 0x2c, 0x68, + 0x3d, 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x68, 0x3c, 0x69, 0x3b, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x6c, 0x3d, 0x30, 0x2c, 0x67, 0x3d, + 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x67, 0x3c, 0x69, 0x3b, 0x29, 0x6c, + 0x2b, 0x3d, 0x75, 0x5b, 0x68, 0x5d, 0x5b, 0x67, 0x5d, 0x3b, 0x76, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x6c, 0x29, 0x2c, 0x6d, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x61, 0x2e, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x28, 0x69, 0x29, 0x29, 0x2c, 0x6e, 0x2b, 0x3d, 0x6c, + 0x7d, 0x66, 0x6f, 0x72, 0x28, 0x6f, 0x26, 0x26, 0x64, 0x2e, 0x73, + 0x6f, 0x72, 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6f, 0x28, 0x76, 0x5b, 0x6e, 0x5d, 0x2c, 0x76, + 0x5b, 0x74, 0x5d, 0x29, 0x7d, 0x29, 0x2c, 0x61, 0x26, 0x26, 0x6d, + 0x2e, 0x66, 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x6e, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x28, 0x75, 0x5b, + 0x74, 0x5d, 0x5b, 0x6e, 0x5d, 0x2c, 0x75, 0x5b, 0x74, 0x5d, 0x5b, + 0x65, 0x5d, 0x29, 0x7d, 0x29, 0x7d, 0x29, 0x2c, 0x6e, 0x3d, 0x28, + 0x4c, 0x61, 0x2d, 0x73, 0x2a, 0x69, 0x29, 0x2f, 0x6e, 0x2c, 0x6c, + 0x3d, 0x30, 0x2c, 0x68, 0x3d, 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x68, + 0x3c, 0x69, 0x3b, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x66, 0x3d, + 0x6c, 0x2c, 0x67, 0x3d, 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x67, 0x3c, + 0x69, 0x3b, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x79, 0x3d, 0x64, + 0x5b, 0x68, 0x5d, 0x2c, 0x4d, 0x3d, 0x6d, 0x5b, 0x79, 0x5d, 0x5b, + 0x67, 0x5d, 0x2c, 0x78, 0x3d, 0x75, 0x5b, 0x79, 0x5d, 0x5b, 0x4d, + 0x5d, 0x2c, 0x62, 0x3d, 0x6c, 0x2c, 0x5f, 0x3d, 0x6c, 0x2b, 0x3d, + 0x78, 0x2a, 0x6e, 0x3b, 0x70, 0x5b, 0x79, 0x2b, 0x22, 0x2d, 0x22, + 0x2b, 0x4d, 0x5d, 0x3d, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, + 0x79, 0x2c, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, + 0x4d, 0x2c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6e, 0x67, 0x6c, + 0x65, 0x3a, 0x62, 0x2c, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x67, 0x6c, + 0x65, 0x3a, 0x5f, 0x2c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x78, + 0x7d, 0x7d, 0x72, 0x5b, 0x79, 0x5d, 0x3d, 0x7b, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x3a, 0x79, 0x2c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, + 0x6e, 0x67, 0x6c, 0x65, 0x3a, 0x66, 0x2c, 0x65, 0x6e, 0x64, 0x41, + 0x6e, 0x67, 0x6c, 0x65, 0x3a, 0x6c, 0x2c, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x28, 0x6c, 0x2d, 0x66, 0x29, 0x2f, 0x6e, 0x7d, 0x2c, + 0x6c, 0x2b, 0x3d, 0x73, 0x7d, 0x66, 0x6f, 0x72, 0x28, 0x68, 0x3d, + 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x68, 0x3c, 0x69, 0x3b, 0x29, 0x66, + 0x6f, 0x72, 0x28, 0x67, 0x3d, 0x68, 0x2d, 0x31, 0x3b, 0x2b, 0x2b, + 0x67, 0x3c, 0x69, 0x3b, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x77, + 0x3d, 0x70, 0x5b, 0x68, 0x2b, 0x22, 0x2d, 0x22, 0x2b, 0x67, 0x5d, + 0x2c, 0x53, 0x3d, 0x70, 0x5b, 0x67, 0x2b, 0x22, 0x2d, 0x22, 0x2b, + 0x68, 0x5d, 0x3b, 0x28, 0x77, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x7c, 0x7c, 0x53, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x26, + 0x26, 0x65, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x77, 0x2e, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3c, 0x53, 0x2e, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3f, 0x7b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x53, + 0x2c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3a, 0x77, 0x7d, 0x3a, + 0x7b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x77, 0x2c, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x3a, 0x53, 0x7d, 0x29, 0x7d, 0x63, + 0x26, 0x26, 0x74, 0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x29, 0x7b, 0x65, 0x2e, 0x73, + 0x6f, 0x72, 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x63, 0x28, 0x28, 0x6e, 0x2e, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2b, 0x6e, + 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x29, 0x2f, 0x32, 0x2c, 0x28, 0x74, 0x2e, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2b, + 0x74, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x29, 0x2f, 0x32, 0x29, 0x7d, 0x29, 0x7d, 0x76, + 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, + 0x6f, 0x2c, 0x61, 0x2c, 0x63, 0x2c, 0x6c, 0x3d, 0x7b, 0x7d, 0x2c, + 0x73, 0x3d, 0x30, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6c, 0x2e, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x69, 0x3d, 0x28, 0x75, 0x3d, 0x6e, 0x29, 0x26, 0x26, + 0x75, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x65, 0x3d, + 0x72, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x6c, 0x29, 0x3a, 0x75, + 0x7d, 0x2c, 0x6c, 0x2e, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x73, 0x3d, 0x6e, 0x2c, 0x65, 0x3d, + 0x72, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x6c, 0x29, 0x3a, 0x73, + 0x7d, 0x2c, 0x6c, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6f, 0x3d, 0x6e, + 0x2c, 0x65, 0x3d, 0x72, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x6c, + 0x29, 0x3a, 0x6f, 0x7d, 0x2c, 0x6c, 0x2e, 0x73, 0x6f, 0x72, 0x74, + 0x53, 0x75, 0x62, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x61, 0x3d, 0x6e, 0x2c, 0x65, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x2c, 0x6c, 0x29, 0x3a, 0x61, 0x7d, 0x2c, 0x6c, 0x2e, + 0x73, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x6f, 0x72, 0x64, 0x73, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x63, 0x3d, 0x6e, 0x2c, 0x65, 0x26, 0x26, + 0x74, 0x28, 0x29, 0x2c, 0x6c, 0x29, 0x3a, 0x63, 0x7d, 0x2c, 0x6c, + 0x2e, 0x63, 0x68, 0x6f, 0x72, 0x64, 0x73, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x65, 0x7c, 0x7c, 0x6e, 0x28, 0x29, 0x2c, + 0x65, 0x7d, 0x2c, 0x6c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x7c, 0x7c, + 0x6e, 0x28, 0x29, 0x2c, 0x72, 0x7d, 0x2c, 0x6c, 0x7d, 0x2c, 0x74, + 0x61, 0x2e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x29, 0x7b, 0x69, + 0x66, 0x28, 0x74, 0x2e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x21, 0x3d, + 0x3d, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x74, + 0x2e, 0x63, 0x78, 0x2d, 0x6e, 0x2e, 0x78, 0x2c, 0x6f, 0x3d, 0x74, + 0x2e, 0x63, 0x79, 0x2d, 0x6e, 0x2e, 0x79, 0x2c, 0x61, 0x3d, 0x75, + 0x2d, 0x65, 0x2c, 0x63, 0x3d, 0x69, 0x2a, 0x69, 0x2b, 0x6f, 0x2a, + 0x6f, 0x3b, 0x69, 0x66, 0x28, 0x63, 0x3e, 0x61, 0x2a, 0x61, 0x2f, + 0x64, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x70, 0x3e, 0x63, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x74, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x2f, 0x63, 0x3b, 0x6e, 0x2e, 0x70, 0x78, 0x2d, + 0x3d, 0x69, 0x2a, 0x6c, 0x2c, 0x6e, 0x2e, 0x70, 0x79, 0x2d, 0x3d, + 0x6f, 0x2a, 0x6c, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, + 0x30, 0x7d, 0x69, 0x66, 0x28, 0x74, 0x2e, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x26, 0x26, 0x63, 0x26, 0x26, 0x70, 0x3e, 0x63, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x74, 0x2e, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2f, 0x63, 0x3b, + 0x6e, 0x2e, 0x70, 0x78, 0x2d, 0x3d, 0x69, 0x2a, 0x6c, 0x2c, 0x6e, + 0x2e, 0x70, 0x79, 0x2d, 0x3d, 0x6f, 0x2a, 0x6c, 0x7d, 0x7d, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, 0x74, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x70, + 0x78, 0x3d, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x78, 0x2c, 0x6e, 0x2e, 0x70, 0x79, 0x3d, 0x74, 0x61, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x79, 0x2c, 0x61, 0x2e, 0x72, 0x65, + 0x73, 0x75, 0x6d, 0x65, 0x28, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x2c, 0x61, + 0x3d, 0x7b, 0x7d, 0x2c, 0x63, 0x3d, 0x74, 0x61, 0x2e, 0x64, 0x69, + 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x28, 0x22, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x22, 0x2c, 0x22, 0x74, 0x69, 0x63, 0x6b, 0x22, 0x2c, + 0x22, 0x65, 0x6e, 0x64, 0x22, 0x29, 0x2c, 0x6c, 0x3d, 0x5b, 0x31, + 0x2c, 0x31, 0x5d, 0x2c, 0x73, 0x3d, 0x2e, 0x39, 0x2c, 0x66, 0x3d, + 0x66, 0x6c, 0x2c, 0x68, 0x3d, 0x68, 0x6c, 0x2c, 0x67, 0x3d, 0x2d, + 0x33, 0x30, 0x2c, 0x70, 0x3d, 0x67, 0x6c, 0x2c, 0x76, 0x3d, 0x2e, + 0x31, 0x2c, 0x64, 0x3d, 0x2e, 0x36, 0x34, 0x2c, 0x6d, 0x3d, 0x5b, + 0x5d, 0x2c, 0x4d, 0x3d, 0x5b, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x69, + 0x66, 0x28, 0x28, 0x72, 0x2a, 0x3d, 0x2e, 0x39, 0x39, 0x29, 0x3c, + 0x2e, 0x30, 0x30, 0x35, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x63, 0x2e, 0x65, 0x6e, 0x64, 0x28, 0x7b, 0x74, 0x79, 0x70, + 0x65, 0x3a, 0x22, 0x65, 0x6e, 0x64, 0x22, 0x2c, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x3a, 0x72, 0x3d, 0x30, 0x7d, 0x29, 0x2c, 0x21, 0x30, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x61, 0x2c, + 0x66, 0x2c, 0x68, 0x2c, 0x70, 0x2c, 0x64, 0x2c, 0x79, 0x2c, 0x78, + 0x2c, 0x62, 0x3d, 0x6d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2c, 0x5f, 0x3d, 0x4d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x3d, 0x30, 0x3b, 0x5f, 0x3e, + 0x65, 0x3b, 0x2b, 0x2b, 0x65, 0x29, 0x61, 0x3d, 0x4d, 0x5b, 0x65, + 0x5d, 0x2c, 0x66, 0x3d, 0x61, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x2c, 0x68, 0x3d, 0x61, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x2c, 0x79, 0x3d, 0x68, 0x2e, 0x78, 0x2d, 0x66, 0x2e, 0x78, + 0x2c, 0x78, 0x3d, 0x68, 0x2e, 0x79, 0x2d, 0x66, 0x2e, 0x79, 0x2c, + 0x28, 0x70, 0x3d, 0x79, 0x2a, 0x79, 0x2b, 0x78, 0x2a, 0x78, 0x29, + 0x26, 0x26, 0x28, 0x70, 0x3d, 0x72, 0x2a, 0x69, 0x5b, 0x65, 0x5d, + 0x2a, 0x28, 0x28, 0x70, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x71, 0x72, 0x74, 0x28, 0x70, 0x29, 0x29, 0x2d, 0x75, 0x5b, 0x65, + 0x5d, 0x29, 0x2f, 0x70, 0x2c, 0x79, 0x2a, 0x3d, 0x70, 0x2c, 0x78, + 0x2a, 0x3d, 0x70, 0x2c, 0x68, 0x2e, 0x78, 0x2d, 0x3d, 0x79, 0x2a, + 0x28, 0x64, 0x3d, 0x66, 0x2e, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x2f, 0x28, 0x68, 0x2e, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2b, + 0x66, 0x2e, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x29, 0x29, 0x2c, + 0x68, 0x2e, 0x79, 0x2d, 0x3d, 0x78, 0x2a, 0x64, 0x2c, 0x66, 0x2e, + 0x78, 0x2b, 0x3d, 0x79, 0x2a, 0x28, 0x64, 0x3d, 0x31, 0x2d, 0x64, + 0x29, 0x2c, 0x66, 0x2e, 0x79, 0x2b, 0x3d, 0x78, 0x2a, 0x64, 0x29, + 0x3b, 0x69, 0x66, 0x28, 0x28, 0x64, 0x3d, 0x72, 0x2a, 0x76, 0x29, + 0x26, 0x26, 0x28, 0x79, 0x3d, 0x6c, 0x5b, 0x30, 0x5d, 0x2f, 0x32, + 0x2c, 0x78, 0x3d, 0x6c, 0x5b, 0x31, 0x5d, 0x2f, 0x32, 0x2c, 0x65, + 0x3d, 0x2d, 0x31, 0x2c, 0x64, 0x29, 0x29, 0x66, 0x6f, 0x72, 0x28, + 0x3b, 0x2b, 0x2b, 0x65, 0x3c, 0x62, 0x3b, 0x29, 0x61, 0x3d, 0x6d, + 0x5b, 0x65, 0x5d, 0x2c, 0x61, 0x2e, 0x78, 0x2b, 0x3d, 0x28, 0x79, + 0x2d, 0x61, 0x2e, 0x78, 0x29, 0x2a, 0x64, 0x2c, 0x61, 0x2e, 0x79, + 0x2b, 0x3d, 0x28, 0x78, 0x2d, 0x61, 0x2e, 0x79, 0x29, 0x2a, 0x64, + 0x3b, 0x69, 0x66, 0x28, 0x67, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x4a, + 0x75, 0x28, 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x67, 0x65, 0x6f, 0x6d, + 0x2e, 0x71, 0x75, 0x61, 0x64, 0x74, 0x72, 0x65, 0x65, 0x28, 0x6d, + 0x29, 0x2c, 0x72, 0x2c, 0x6f, 0x29, 0x2c, 0x65, 0x3d, 0x2d, 0x31, + 0x3b, 0x2b, 0x2b, 0x65, 0x3c, 0x62, 0x3b, 0x29, 0x28, 0x61, 0x3d, + 0x6d, 0x5b, 0x65, 0x5d, 0x29, 0x2e, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x7c, 0x7c, 0x74, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x74, 0x28, 0x6e, + 0x28, 0x61, 0x29, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x3d, + 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x65, 0x3c, 0x62, 0x3b, 0x29, 0x61, + 0x3d, 0x6d, 0x5b, 0x65, 0x5d, 0x2c, 0x61, 0x2e, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x3f, 0x28, 0x61, 0x2e, 0x78, 0x3d, 0x61, 0x2e, 0x70, + 0x78, 0x2c, 0x61, 0x2e, 0x79, 0x3d, 0x61, 0x2e, 0x70, 0x79, 0x29, + 0x3a, 0x28, 0x61, 0x2e, 0x78, 0x2d, 0x3d, 0x28, 0x61, 0x2e, 0x70, + 0x78, 0x2d, 0x28, 0x61, 0x2e, 0x70, 0x78, 0x3d, 0x61, 0x2e, 0x78, + 0x29, 0x29, 0x2a, 0x73, 0x2c, 0x61, 0x2e, 0x79, 0x2d, 0x3d, 0x28, + 0x61, 0x2e, 0x70, 0x79, 0x2d, 0x28, 0x61, 0x2e, 0x70, 0x79, 0x3d, + 0x61, 0x2e, 0x79, 0x29, 0x29, 0x2a, 0x73, 0x29, 0x3b, 0x63, 0x2e, + 0x74, 0x69, 0x63, 0x6b, 0x28, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x3a, + 0x22, 0x74, 0x69, 0x63, 0x6b, 0x22, 0x2c, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x3a, 0x72, 0x7d, 0x29, 0x7d, 0x2c, 0x61, 0x2e, 0x6e, 0x6f, + 0x64, 0x65, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6d, 0x3d, 0x6e, + 0x2c, 0x61, 0x29, 0x3a, 0x6d, 0x7d, 0x2c, 0x61, 0x2e, 0x6c, 0x69, + 0x6e, 0x6b, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x4d, 0x3d, 0x6e, + 0x2c, 0x61, 0x29, 0x3a, 0x4d, 0x7d, 0x2c, 0x61, 0x2e, 0x73, 0x69, + 0x7a, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6c, 0x3d, 0x6e, 0x2c, + 0x61, 0x29, 0x3a, 0x6c, 0x7d, 0x2c, 0x61, 0x2e, 0x6c, 0x69, 0x6e, + 0x6b, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x66, 0x3d, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, + 0x66, 0x20, 0x6e, 0x3f, 0x6e, 0x3a, 0x2b, 0x6e, 0x2c, 0x61, 0x29, + 0x3a, 0x66, 0x7d, 0x2c, 0x61, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x3d, 0x61, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x44, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2c, 0x61, 0x2e, 0x6c, + 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x68, 0x3d, 0x22, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, + 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x3f, 0x6e, 0x3a, 0x2b, 0x6e, 0x2c, + 0x61, 0x29, 0x3a, 0x68, 0x7d, 0x2c, 0x61, 0x2e, 0x66, 0x72, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x73, + 0x3d, 0x2b, 0x6e, 0x2c, 0x61, 0x29, 0x3a, 0x73, 0x7d, 0x2c, 0x61, + 0x2e, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x67, 0x3d, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x6e, 0x3f, 0x6e, 0x3a, 0x2b, 0x6e, 0x2c, 0x61, 0x29, 0x3a, 0x67, + 0x7d, 0x2c, 0x61, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x44, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x70, 0x3d, 0x6e, 0x2a, 0x6e, 0x2c, 0x61, 0x29, 0x3a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x70, 0x29, + 0x7d, 0x2c, 0x61, 0x2e, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x79, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x76, 0x3d, 0x2b, 0x6e, 0x2c, 0x61, + 0x29, 0x3a, 0x76, 0x7d, 0x2c, 0x61, 0x2e, 0x74, 0x68, 0x65, 0x74, + 0x61, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x64, 0x3d, 0x6e, 0x2a, 0x6e, + 0x2c, 0x61, 0x29, 0x3a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, + 0x72, 0x74, 0x28, 0x64, 0x29, 0x7d, 0x2c, 0x61, 0x2e, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6e, 0x3d, 0x2b, + 0x6e, 0x2c, 0x72, 0x3f, 0x72, 0x3d, 0x6e, 0x3e, 0x30, 0x3f, 0x6e, + 0x3a, 0x30, 0x3a, 0x6e, 0x3e, 0x30, 0x26, 0x26, 0x28, 0x63, 0x2e, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x28, 0x7b, 0x74, 0x79, 0x70, 0x65, + 0x3a, 0x22, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x2c, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x3a, 0x72, 0x3d, 0x6e, 0x7d, 0x29, 0x2c, 0x74, + 0x61, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x28, 0x61, 0x2e, 0x74, + 0x69, 0x63, 0x6b, 0x29, 0x29, 0x2c, 0x61, 0x29, 0x3a, 0x72, 0x7d, + 0x2c, 0x61, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6e, 0x2c, + 0x72, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x21, 0x65, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x65, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x28, 0x63, 0x29, 0x2c, 0x61, 0x3d, 0x30, 0x3b, + 0x63, 0x3e, 0x61, 0x3b, 0x2b, 0x2b, 0x61, 0x29, 0x65, 0x5b, 0x61, + 0x5d, 0x3d, 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x61, 0x3d, + 0x30, 0x3b, 0x73, 0x3e, 0x61, 0x3b, 0x2b, 0x2b, 0x61, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x4d, 0x5b, 0x61, 0x5d, 0x3b, + 0x65, 0x5b, 0x75, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x75, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x29, 0x2c, + 0x65, 0x5b, 0x75, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5d, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x75, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x29, 0x7d, + 0x7d, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, 0x2c, + 0x6f, 0x3d, 0x65, 0x5b, 0x74, 0x5d, 0x2c, 0x61, 0x3d, 0x2d, 0x31, + 0x2c, 0x6c, 0x3d, 0x6f, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x2b, 0x2b, 0x61, 0x3c, 0x6c, 0x3b, 0x29, 0x69, 0x66, 0x28, + 0x21, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x69, 0x3d, 0x6f, 0x5b, + 0x61, 0x5d, 0x5b, 0x6e, 0x5d, 0x29, 0x29, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x28, 0x29, 0x2a, 0x72, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x63, 0x3d, 0x6d, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x73, 0x3d, 0x4d, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x70, 0x3d, 0x6c, 0x5b, 0x30, 0x5d, + 0x2c, 0x76, 0x3d, 0x6c, 0x5b, 0x31, 0x5d, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x74, 0x3d, 0x30, 0x3b, 0x63, 0x3e, 0x74, 0x3b, 0x2b, 0x2b, + 0x74, 0x29, 0x28, 0x72, 0x3d, 0x6d, 0x5b, 0x74, 0x5d, 0x29, 0x2e, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x74, 0x2c, 0x72, 0x2e, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x30, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x74, 0x3d, 0x30, 0x3b, 0x73, 0x3e, 0x74, 0x3b, 0x2b, 0x2b, + 0x74, 0x29, 0x72, 0x3d, 0x4d, 0x5b, 0x74, 0x5d, 0x2c, 0x22, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, + 0x65, 0x6f, 0x66, 0x20, 0x72, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x26, 0x26, 0x28, 0x72, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x3d, 0x6d, 0x5b, 0x72, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5d, 0x29, 0x2c, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x72, + 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x26, 0x26, 0x28, 0x72, + 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x6d, 0x5b, 0x72, + 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5d, 0x29, 0x2c, 0x2b, + 0x2b, 0x72, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x2c, 0x2b, 0x2b, 0x72, 0x2e, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x30, 0x3b, 0x63, + 0x3e, 0x74, 0x3b, 0x2b, 0x2b, 0x74, 0x29, 0x72, 0x3d, 0x6d, 0x5b, + 0x74, 0x5d, 0x2c, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x72, 0x2e, + 0x78, 0x29, 0x26, 0x26, 0x28, 0x72, 0x2e, 0x78, 0x3d, 0x6e, 0x28, + 0x22, 0x78, 0x22, 0x2c, 0x70, 0x29, 0x29, 0x2c, 0x69, 0x73, 0x4e, + 0x61, 0x4e, 0x28, 0x72, 0x2e, 0x79, 0x29, 0x26, 0x26, 0x28, 0x72, + 0x2e, 0x79, 0x3d, 0x6e, 0x28, 0x22, 0x79, 0x22, 0x2c, 0x76, 0x29, + 0x29, 0x2c, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x72, 0x2e, 0x70, + 0x78, 0x29, 0x26, 0x26, 0x28, 0x72, 0x2e, 0x70, 0x78, 0x3d, 0x72, + 0x2e, 0x78, 0x29, 0x2c, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x72, + 0x2e, 0x70, 0x79, 0x29, 0x26, 0x26, 0x28, 0x72, 0x2e, 0x70, 0x79, + 0x3d, 0x72, 0x2e, 0x79, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x75, 0x3d, + 0x5b, 0x5d, 0x2c, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x66, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x30, 0x3b, 0x73, + 0x3e, 0x74, 0x3b, 0x2b, 0x2b, 0x74, 0x29, 0x75, 0x5b, 0x74, 0x5d, + 0x3d, 0x2b, 0x66, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x4d, 0x5b, 0x74, 0x5d, 0x2c, 0x74, 0x29, 0x3b, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, + 0x30, 0x3b, 0x73, 0x3e, 0x74, 0x3b, 0x2b, 0x2b, 0x74, 0x29, 0x75, + 0x5b, 0x74, 0x5d, 0x3d, 0x66, 0x3b, 0x69, 0x66, 0x28, 0x69, 0x3d, + 0x5b, 0x5d, 0x2c, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x68, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x30, 0x3b, 0x73, + 0x3e, 0x74, 0x3b, 0x2b, 0x2b, 0x74, 0x29, 0x69, 0x5b, 0x74, 0x5d, + 0x3d, 0x2b, 0x68, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x4d, 0x5b, 0x74, 0x5d, 0x2c, 0x74, 0x29, 0x3b, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, + 0x30, 0x3b, 0x73, 0x3e, 0x74, 0x3b, 0x2b, 0x2b, 0x74, 0x29, 0x69, + 0x5b, 0x74, 0x5d, 0x3d, 0x68, 0x3b, 0x69, 0x66, 0x28, 0x6f, 0x3d, + 0x5b, 0x5d, 0x2c, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x67, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x30, 0x3b, 0x63, + 0x3e, 0x74, 0x3b, 0x2b, 0x2b, 0x74, 0x29, 0x6f, 0x5b, 0x74, 0x5d, + 0x3d, 0x2b, 0x67, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x6d, 0x5b, 0x74, 0x5d, 0x2c, 0x74, 0x29, 0x3b, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, + 0x30, 0x3b, 0x63, 0x3e, 0x74, 0x3b, 0x2b, 0x2b, 0x74, 0x29, 0x6f, + 0x5b, 0x74, 0x5d, 0x3d, 0x67, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x28, + 0x29, 0x7d, 0x2c, 0x61, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x2e, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x28, 0x2e, 0x31, 0x29, 0x7d, 0x2c, 0x61, + 0x2e, 0x73, 0x74, 0x6f, 0x70, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x2e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x28, 0x30, + 0x29, 0x7d, 0x2c, 0x61, 0x2e, 0x64, 0x72, 0x61, 0x67, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x7c, 0x7c, 0x28, 0x65, + 0x3d, 0x74, 0x61, 0x2e, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, + 0x72, 0x2e, 0x64, 0x72, 0x61, 0x67, 0x28, 0x29, 0x2e, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x28, 0x79, 0x29, 0x2e, 0x6f, 0x6e, 0x28, + 0x22, 0x64, 0x72, 0x61, 0x67, 0x73, 0x74, 0x61, 0x72, 0x74, 0x2e, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x2c, 0x58, 0x75, 0x29, 0x2e, + 0x6f, 0x6e, 0x28, 0x22, 0x64, 0x72, 0x61, 0x67, 0x2e, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x22, 0x2c, 0x74, 0x29, 0x2e, 0x6f, 0x6e, 0x28, + 0x22, 0x64, 0x72, 0x61, 0x67, 0x65, 0x6e, 0x64, 0x2e, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x22, 0x2c, 0x24, 0x75, 0x29, 0x29, 0x2c, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x6d, 0x6f, 0x75, + 0x73, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x2e, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x22, 0x2c, 0x42, 0x75, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, + 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x22, 0x2c, 0x57, 0x75, 0x29, 0x2e, 0x63, 0x61, + 0x6c, 0x6c, 0x28, 0x65, 0x29, 0x3a, 0x65, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x61, 0x2c, 0x63, + 0x2c, 0x22, 0x6f, 0x6e, 0x22, 0x29, 0x7d, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x66, 0x6c, 0x3d, 0x32, 0x30, 0x2c, 0x68, 0x6c, 0x3d, 0x31, + 0x2c, 0x67, 0x6c, 0x3d, 0x31, 0x2f, 0x30, 0x3b, 0x74, 0x61, 0x2e, + 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x69, 0x65, 0x72, + 0x61, 0x72, 0x63, 0x68, 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x75, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x69, 0x2c, 0x6f, 0x3d, 0x5b, 0x75, 0x5d, 0x2c, 0x61, + 0x3d, 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x75, 0x2e, 0x64, + 0x65, 0x70, 0x74, 0x68, 0x3d, 0x30, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, + 0x21, 0x3d, 0x28, 0x69, 0x3d, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x28, + 0x29, 0x29, 0x3b, 0x29, 0x69, 0x66, 0x28, 0x61, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x69, 0x29, 0x2c, 0x28, 0x6c, 0x3d, 0x65, 0x2e, + 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x69, 0x2c, 0x69, 0x2e, + 0x64, 0x65, 0x70, 0x74, 0x68, 0x29, 0x29, 0x26, 0x26, 0x28, 0x63, + 0x3d, 0x6c, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x63, 0x2c, + 0x6c, 0x2c, 0x73, 0x3b, 0x2d, 0x2d, 0x63, 0x3e, 0x3d, 0x30, 0x3b, + 0x29, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x73, 0x3d, 0x6c, + 0x5b, 0x63, 0x5d, 0x29, 0x2c, 0x73, 0x2e, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x69, 0x2c, 0x73, 0x2e, 0x64, 0x65, 0x70, 0x74, + 0x68, 0x3d, 0x69, 0x2e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x2b, 0x31, + 0x3b, 0x72, 0x26, 0x26, 0x28, 0x69, 0x2e, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3d, 0x30, 0x29, 0x2c, 0x69, 0x2e, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x72, 0x65, 0x6e, 0x3d, 0x6c, 0x7d, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x72, 0x26, 0x26, 0x28, 0x69, 0x2e, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3d, 0x2b, 0x72, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, + 0x2c, 0x69, 0x2c, 0x69, 0x2e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x29, + 0x7c, 0x7c, 0x30, 0x29, 0x2c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x20, 0x69, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x51, 0x75, 0x28, + 0x75, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x75, 0x3b, + 0x74, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x29, 0x26, 0x26, 0x65, 0x2e, 0x73, + 0x6f, 0x72, 0x74, 0x28, 0x74, 0x29, 0x2c, 0x72, 0x26, 0x26, 0x28, + 0x75, 0x3d, 0x6e, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x29, + 0x26, 0x26, 0x28, 0x75, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2b, + 0x3d, 0x6e, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x7d, 0x29, + 0x2c, 0x61, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x65, 0x69, + 0x2c, 0x65, 0x3d, 0x6e, 0x69, 0x2c, 0x72, 0x3d, 0x74, 0x69, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x73, 0x6f, + 0x72, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x74, 0x3d, 0x65, 0x2c, + 0x6e, 0x29, 0x3a, 0x74, 0x7d, 0x2c, 0x6e, 0x2e, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, + 0x3d, 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x65, 0x7d, 0x2c, 0x6e, 0x2e, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x72, + 0x3d, 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x6e, 0x2e, + 0x72, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x26, 0x26, 0x28, 0x4b, 0x75, + 0x28, 0x74, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x72, 0x65, 0x6e, 0x26, 0x26, 0x28, 0x6e, 0x2e, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3d, 0x30, 0x29, 0x7d, 0x29, 0x2c, 0x51, 0x75, 0x28, + 0x74, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3b, 0x74, 0x2e, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x7c, 0x7c, 0x28, + 0x74, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x2b, 0x72, 0x2e, + 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x74, 0x2e, + 0x64, 0x65, 0x70, 0x74, 0x68, 0x29, 0x7c, 0x7c, 0x30, 0x29, 0x2c, + 0x28, 0x65, 0x3d, 0x74, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x29, 0x26, 0x26, 0x28, 0x65, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x2b, 0x3d, 0x74, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x7d, + 0x29, 0x29, 0x2c, 0x74, 0x7d, 0x2c, 0x6e, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x74, 0x2c, 0x65, 0x2c, + 0x72, 0x2c, 0x75, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, + 0x74, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x3b, + 0x69, 0x66, 0x28, 0x74, 0x2e, 0x78, 0x3d, 0x65, 0x2c, 0x74, 0x2e, + 0x79, 0x3d, 0x74, 0x2e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x2a, 0x75, + 0x2c, 0x74, 0x2e, 0x64, 0x78, 0x3d, 0x72, 0x2c, 0x74, 0x2e, 0x64, + 0x79, 0x3d, 0x75, 0x2c, 0x69, 0x26, 0x26, 0x28, 0x6f, 0x3d, 0x69, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x6f, 0x2c, 0x61, 0x2c, 0x63, 0x2c, 0x6c, 0x3d, + 0x2d, 0x31, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x72, 0x3d, 0x74, 0x2e, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3f, 0x72, 0x2f, 0x74, 0x2e, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x30, 0x3b, 0x2b, 0x2b, 0x6c, 0x3c, + 0x6f, 0x3b, 0x29, 0x6e, 0x28, 0x61, 0x3d, 0x69, 0x5b, 0x6c, 0x5d, + 0x2c, 0x65, 0x2c, 0x63, 0x3d, 0x61, 0x2e, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2a, 0x72, 0x2c, 0x75, 0x29, 0x2c, 0x65, 0x2b, 0x3d, 0x63, + 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, + 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x2c, + 0x72, 0x3d, 0x30, 0x3b, 0x69, 0x66, 0x28, 0x65, 0x26, 0x26, 0x28, + 0x75, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, + 0x29, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x75, 0x2c, + 0x69, 0x3d, 0x2d, 0x31, 0x3b, 0x2b, 0x2b, 0x69, 0x3c, 0x75, 0x3b, + 0x29, 0x72, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, + 0x28, 0x72, 0x2c, 0x74, 0x28, 0x65, 0x5b, 0x69, 0x5d, 0x29, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x2b, 0x72, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x28, 0x65, 0x2c, 0x69, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6f, + 0x3d, 0x72, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x65, 0x2c, 0x69, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x28, 0x6f, 0x5b, 0x30, 0x5d, 0x2c, 0x30, + 0x2c, 0x75, 0x5b, 0x30, 0x5d, 0x2c, 0x75, 0x5b, 0x31, 0x5d, 0x2f, + 0x74, 0x28, 0x6f, 0x5b, 0x30, 0x5d, 0x29, 0x29, 0x2c, 0x6f, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x74, 0x61, 0x2e, 0x6c, 0x61, + 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, + 0x63, 0x68, 0x79, 0x28, 0x29, 0x2c, 0x75, 0x3d, 0x5b, 0x31, 0x2c, + 0x31, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, + 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x75, + 0x3d, 0x6e, 0x2c, 0x65, 0x29, 0x3a, 0x75, 0x7d, 0x2c, 0x47, 0x75, + 0x28, 0x65, 0x2c, 0x72, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x6c, + 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x70, 0x69, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6f, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x61, 0x2c, 0x63, 0x3d, 0x6f, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x6c, 0x3d, 0x6f, + 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x2b, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x6e, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7d, 0x29, 0x2c, 0x73, 0x3d, + 0x2b, 0x28, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x72, + 0x3f, 0x72, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x29, 0x3a, 0x72, 0x29, 0x2c, 0x66, 0x3d, 0x28, 0x22, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, + 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x75, 0x3f, 0x75, 0x2e, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3a, 0x75, + 0x29, 0x2d, 0x73, 0x2c, 0x68, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x6d, 0x69, 0x6e, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x62, + 0x73, 0x28, 0x66, 0x29, 0x2f, 0x63, 0x2c, 0x2b, 0x28, 0x22, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, + 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x69, 0x3f, 0x69, 0x2e, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x3a, 0x69, + 0x29, 0x29, 0x2c, 0x67, 0x3d, 0x68, 0x2a, 0x28, 0x30, 0x3e, 0x66, + 0x3f, 0x2d, 0x31, 0x3a, 0x31, 0x29, 0x2c, 0x70, 0x3d, 0x28, 0x66, + 0x2d, 0x63, 0x2a, 0x67, 0x29, 0x2f, 0x74, 0x61, 0x2e, 0x73, 0x75, + 0x6d, 0x28, 0x6c, 0x29, 0x2c, 0x76, 0x3d, 0x74, 0x61, 0x2e, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x28, 0x63, 0x29, 0x2c, 0x64, 0x3d, 0x5b, + 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x75, + 0x6c, 0x6c, 0x21, 0x3d, 0x65, 0x26, 0x26, 0x76, 0x2e, 0x73, 0x6f, + 0x72, 0x74, 0x28, 0x65, 0x3d, 0x3d, 0x3d, 0x70, 0x6c, 0x3f, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6c, 0x5b, + 0x74, 0x5d, 0x2d, 0x6c, 0x5b, 0x6e, 0x5d, 0x7d, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x28, 0x6f, + 0x5b, 0x6e, 0x5d, 0x2c, 0x6f, 0x5b, 0x74, 0x5d, 0x29, 0x7d, 0x29, + 0x2c, 0x76, 0x2e, 0x66, 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x64, 0x5b, 0x6e, 0x5d, 0x3d, 0x7b, 0x64, 0x61, 0x74, 0x61, + 0x3a, 0x6f, 0x5b, 0x6e, 0x5d, 0x2c, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x61, 0x3d, 0x6c, 0x5b, 0x6e, 0x5d, 0x2c, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x3a, 0x73, 0x2c, 0x65, + 0x6e, 0x64, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x3a, 0x73, 0x2b, 0x3d, + 0x61, 0x2a, 0x70, 0x2b, 0x67, 0x2c, 0x70, 0x61, 0x64, 0x41, 0x6e, + 0x67, 0x6c, 0x65, 0x3a, 0x68, 0x7d, 0x7d, 0x29, 0x2c, 0x64, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x2c, 0x65, 0x3d, 0x70, 0x6c, 0x2c, 0x72, 0x3d, 0x30, 0x2c, + 0x75, 0x3d, 0x4c, 0x61, 0x2c, 0x69, 0x3d, 0x30, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x74, 0x3d, 0x65, 0x2c, 0x6e, + 0x29, 0x3a, 0x74, 0x7d, 0x2c, 0x6e, 0x2e, 0x73, 0x6f, 0x72, 0x74, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, 0x3d, 0x74, 0x2c, 0x6e, 0x29, + 0x3a, 0x65, 0x7d, 0x2c, 0x6e, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x72, + 0x3d, 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x6e, 0x2e, + 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x75, 0x3d, 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x75, 0x7d, + 0x2c, 0x6e, 0x2e, 0x70, 0x61, 0x64, 0x41, 0x6e, 0x67, 0x6c, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x69, 0x3d, 0x74, 0x2c, 0x6e, 0x29, + 0x3a, 0x69, 0x7d, 0x2c, 0x6e, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x70, 0x6c, 0x3d, 0x7b, 0x7d, 0x3b, 0x74, 0x61, 0x2e, 0x6c, 0x61, + 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, + 0x61, 0x2c, 0x63, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x21, 0x28, 0x68, + 0x3d, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x6c, 0x3d, 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x2c, 0x72, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, + 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x65, 0x2c, 0x72, 0x29, + 0x7d, 0x29, 0x2c, 0x73, 0x3d, 0x6c, 0x2e, 0x6d, 0x61, 0x70, 0x28, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x6d, + 0x61, 0x70, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x5b, 0x69, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, + 0x74, 0x2c, 0x65, 0x29, 0x2c, 0x6f, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x5d, 0x7d, 0x29, 0x7d, + 0x29, 0x2c, 0x66, 0x3d, 0x65, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x6e, 0x2c, 0x73, 0x2c, 0x63, 0x29, 0x3b, 0x6c, 0x3d, 0x74, 0x61, + 0x2e, 0x70, 0x65, 0x72, 0x6d, 0x75, 0x74, 0x65, 0x28, 0x6c, 0x2c, + 0x66, 0x29, 0x2c, 0x73, 0x3d, 0x74, 0x61, 0x2e, 0x70, 0x65, 0x72, + 0x6d, 0x75, 0x74, 0x65, 0x28, 0x73, 0x2c, 0x66, 0x29, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x68, 0x2c, 0x67, 0x2c, 0x70, 0x2c, 0x76, 0x2c, + 0x64, 0x3d, 0x72, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, + 0x73, 0x2c, 0x63, 0x29, 0x2c, 0x6d, 0x3d, 0x6c, 0x5b, 0x30, 0x5d, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x70, 0x3d, 0x30, 0x3b, 0x6d, 0x3e, 0x70, 0x3b, 0x2b, 0x2b, + 0x70, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x75, 0x2e, 0x63, 0x61, 0x6c, + 0x6c, 0x28, 0x6e, 0x2c, 0x6c, 0x5b, 0x30, 0x5d, 0x5b, 0x70, 0x5d, + 0x2c, 0x76, 0x3d, 0x64, 0x5b, 0x70, 0x5d, 0x2c, 0x73, 0x5b, 0x30, + 0x5d, 0x5b, 0x70, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x67, 0x3d, + 0x31, 0x3b, 0x68, 0x3e, 0x67, 0x3b, 0x2b, 0x2b, 0x67, 0x29, 0x75, + 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x6c, 0x5b, 0x67, + 0x5d, 0x5b, 0x70, 0x5d, 0x2c, 0x76, 0x2b, 0x3d, 0x73, 0x5b, 0x67, + 0x2d, 0x31, 0x5d, 0x5b, 0x70, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x73, + 0x5b, 0x67, 0x5d, 0x5b, 0x70, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x7d, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x79, 0x2c, 0x65, 0x3d, 0x61, 0x69, 0x2c, + 0x72, 0x3d, 0x63, 0x69, 0x2c, 0x75, 0x3d, 0x6f, 0x69, 0x2c, 0x69, + 0x3d, 0x75, 0x69, 0x2c, 0x6f, 0x3d, 0x69, 0x69, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x74, 0x3d, 0x65, 0x2c, + 0x6e, 0x29, 0x3a, 0x74, 0x7d, 0x2c, 0x6e, 0x2e, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, 0x3d, 0x22, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, + 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x74, 0x3f, 0x74, 0x3a, 0x76, + 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x28, 0x74, 0x29, 0x7c, 0x7c, 0x61, + 0x69, 0x2c, 0x6e, 0x29, 0x3a, 0x65, 0x7d, 0x2c, 0x6e, 0x2e, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x72, + 0x3d, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x74, 0x3f, + 0x74, 0x3a, 0x64, 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x28, 0x74, 0x29, + 0x7c, 0x7c, 0x63, 0x69, 0x2c, 0x6e, 0x29, 0x3a, 0x72, 0x7d, 0x2c, + 0x6e, 0x2e, 0x78, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x69, 0x3d, 0x74, + 0x2c, 0x6e, 0x29, 0x3a, 0x69, 0x7d, 0x2c, 0x6e, 0x2e, 0x79, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x6f, 0x3d, 0x74, 0x2c, 0x6e, 0x29, 0x3a, + 0x6f, 0x7d, 0x2c, 0x6e, 0x2e, 0x6f, 0x75, 0x74, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x75, 0x3d, 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x75, 0x7d, + 0x2c, 0x6e, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x76, 0x6c, 0x3d, + 0x74, 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x7b, 0x22, 0x69, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x2d, 0x6f, 0x75, 0x74, 0x22, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x3d, 0x6e, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x75, 0x3d, 0x6e, + 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x6c, 0x69, 0x29, 0x2c, 0x69, 0x3d, + 0x6e, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x73, 0x69, 0x29, 0x2c, 0x6f, + 0x3d, 0x74, 0x61, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x72, + 0x29, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x5b, 0x6e, 0x5d, 0x2d, + 0x75, 0x5b, 0x74, 0x5d, 0x7d, 0x29, 0x2c, 0x61, 0x3d, 0x30, 0x2c, + 0x63, 0x3d, 0x30, 0x2c, 0x6c, 0x3d, 0x5b, 0x5d, 0x2c, 0x73, 0x3d, + 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x30, 0x3b, + 0x72, 0x3e, 0x74, 0x3b, 0x2b, 0x2b, 0x74, 0x29, 0x65, 0x3d, 0x6f, + 0x5b, 0x74, 0x5d, 0x2c, 0x63, 0x3e, 0x61, 0x3f, 0x28, 0x61, 0x2b, + 0x3d, 0x69, 0x5b, 0x65, 0x5d, 0x2c, 0x6c, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x65, 0x29, 0x29, 0x3a, 0x28, 0x63, 0x2b, 0x3d, 0x69, + 0x5b, 0x65, 0x5d, 0x2c, 0x73, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x65, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x73, 0x2e, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x28, 0x29, + 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x61, 0x74, 0x28, 0x6c, 0x29, 0x7d, + 0x2c, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x2e, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x28, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x2e, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x28, + 0x29, 0x7d, 0x2c, 0x22, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x22, 0x3a, 0x61, 0x69, 0x7d, 0x29, 0x2c, 0x64, 0x6c, 0x3d, 0x74, + 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x7b, 0x73, 0x69, 0x6c, 0x68, + 0x6f, 0x75, 0x65, 0x74, 0x74, 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x3d, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x69, 0x3d, 0x6e, 0x5b, + 0x30, 0x5d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x6f, + 0x3d, 0x5b, 0x5d, 0x2c, 0x61, 0x3d, 0x30, 0x2c, 0x63, 0x3d, 0x5b, + 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x3d, 0x30, 0x3b, 0x69, + 0x3e, 0x65, 0x3b, 0x2b, 0x2b, 0x65, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x74, 0x3d, 0x30, 0x2c, 0x72, 0x3d, 0x30, 0x3b, 0x75, 0x3e, + 0x74, 0x3b, 0x74, 0x2b, 0x2b, 0x29, 0x72, 0x2b, 0x3d, 0x6e, 0x5b, + 0x74, 0x5d, 0x5b, 0x65, 0x5d, 0x5b, 0x31, 0x5d, 0x3b, 0x72, 0x3e, + 0x61, 0x26, 0x26, 0x28, 0x61, 0x3d, 0x72, 0x29, 0x2c, 0x6f, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, 0x29, 0x7d, 0x66, 0x6f, 0x72, + 0x28, 0x65, 0x3d, 0x30, 0x3b, 0x69, 0x3e, 0x65, 0x3b, 0x2b, 0x2b, + 0x65, 0x29, 0x63, 0x5b, 0x65, 0x5d, 0x3d, 0x28, 0x61, 0x2d, 0x6f, + 0x5b, 0x65, 0x5d, 0x29, 0x2f, 0x32, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x63, 0x7d, 0x2c, 0x77, 0x69, 0x67, 0x67, 0x6c, + 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, + 0x72, 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x6f, 0x2c, 0x61, 0x2c, 0x63, + 0x2c, 0x6c, 0x2c, 0x73, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2c, 0x66, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x68, + 0x3d, 0x66, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x67, + 0x3d, 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x67, 0x5b, 0x30, + 0x5d, 0x3d, 0x63, 0x3d, 0x6c, 0x3d, 0x30, 0x2c, 0x65, 0x3d, 0x31, + 0x3b, 0x68, 0x3e, 0x65, 0x3b, 0x2b, 0x2b, 0x65, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x30, 0x2c, 0x75, 0x3d, 0x30, 0x3b, + 0x73, 0x3e, 0x74, 0x3b, 0x2b, 0x2b, 0x74, 0x29, 0x75, 0x2b, 0x3d, + 0x6e, 0x5b, 0x74, 0x5d, 0x5b, 0x65, 0x5d, 0x5b, 0x31, 0x5d, 0x3b, + 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x30, 0x2c, 0x69, 0x3d, 0x30, + 0x2c, 0x61, 0x3d, 0x66, 0x5b, 0x65, 0x5d, 0x5b, 0x30, 0x5d, 0x2d, + 0x66, 0x5b, 0x65, 0x2d, 0x31, 0x5d, 0x5b, 0x30, 0x5d, 0x3b, 0x73, + 0x3e, 0x74, 0x3b, 0x2b, 0x2b, 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x72, 0x3d, 0x30, 0x2c, 0x6f, 0x3d, 0x28, 0x6e, 0x5b, 0x74, + 0x5d, 0x5b, 0x65, 0x5d, 0x5b, 0x31, 0x5d, 0x2d, 0x6e, 0x5b, 0x74, + 0x5d, 0x5b, 0x65, 0x2d, 0x31, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x2f, + 0x28, 0x32, 0x2a, 0x61, 0x29, 0x3b, 0x74, 0x3e, 0x72, 0x3b, 0x2b, + 0x2b, 0x72, 0x29, 0x6f, 0x2b, 0x3d, 0x28, 0x6e, 0x5b, 0x72, 0x5d, + 0x5b, 0x65, 0x5d, 0x5b, 0x31, 0x5d, 0x2d, 0x6e, 0x5b, 0x72, 0x5d, + 0x5b, 0x65, 0x2d, 0x31, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x2f, 0x61, + 0x3b, 0x69, 0x2b, 0x3d, 0x6f, 0x2a, 0x6e, 0x5b, 0x74, 0x5d, 0x5b, + 0x65, 0x5d, 0x5b, 0x31, 0x5d, 0x7d, 0x67, 0x5b, 0x65, 0x5d, 0x3d, + 0x63, 0x2d, 0x3d, 0x75, 0x3f, 0x69, 0x2f, 0x75, 0x2a, 0x61, 0x3a, + 0x30, 0x2c, 0x6c, 0x3e, 0x63, 0x26, 0x26, 0x28, 0x6c, 0x3d, 0x63, + 0x29, 0x7d, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x3d, 0x30, 0x3b, 0x68, + 0x3e, 0x65, 0x3b, 0x2b, 0x2b, 0x65, 0x29, 0x67, 0x5b, 0x65, 0x5d, + 0x2d, 0x3d, 0x6c, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x67, 0x7d, 0x2c, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, + 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x69, + 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x6f, 0x3d, 0x31, 0x2f, 0x75, 0x2c, 0x61, 0x3d, 0x5b, + 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x3d, 0x30, 0x3b, 0x69, + 0x3e, 0x65, 0x3b, 0x2b, 0x2b, 0x65, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x74, 0x3d, 0x30, 0x2c, 0x72, 0x3d, 0x30, 0x3b, 0x75, 0x3e, + 0x74, 0x3b, 0x74, 0x2b, 0x2b, 0x29, 0x72, 0x2b, 0x3d, 0x6e, 0x5b, + 0x74, 0x5d, 0x5b, 0x65, 0x5d, 0x5b, 0x31, 0x5d, 0x3b, 0x69, 0x66, + 0x28, 0x72, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x30, 0x3b, + 0x75, 0x3e, 0x74, 0x3b, 0x74, 0x2b, 0x2b, 0x29, 0x6e, 0x5b, 0x74, + 0x5d, 0x5b, 0x65, 0x5d, 0x5b, 0x31, 0x5d, 0x2f, 0x3d, 0x72, 0x3b, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, + 0x30, 0x3b, 0x75, 0x3e, 0x74, 0x3b, 0x74, 0x2b, 0x2b, 0x29, 0x6e, + 0x5b, 0x74, 0x5d, 0x5b, 0x65, 0x5d, 0x5b, 0x31, 0x5d, 0x3d, 0x6f, + 0x7d, 0x66, 0x6f, 0x72, 0x28, 0x65, 0x3d, 0x30, 0x3b, 0x69, 0x3e, + 0x65, 0x3b, 0x2b, 0x2b, 0x65, 0x29, 0x61, 0x5b, 0x65, 0x5d, 0x3d, + 0x30, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x7d, + 0x2c, 0x7a, 0x65, 0x72, 0x6f, 0x3a, 0x63, 0x69, 0x7d, 0x29, 0x3b, + 0x74, 0x61, 0x2e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x68, + 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6e, 0x2c, + 0x69, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x6f, 0x2c, 0x61, 0x2c, 0x63, 0x3d, 0x5b, 0x5d, 0x2c, 0x6c, 0x3d, + 0x6e, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x65, 0x2c, 0x74, 0x68, 0x69, + 0x73, 0x29, 0x2c, 0x73, 0x3d, 0x72, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6c, 0x2c, 0x69, 0x29, 0x2c, + 0x66, 0x3d, 0x75, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x73, 0x2c, 0x6c, 0x2c, 0x69, 0x29, 0x2c, 0x69, + 0x3d, 0x2d, 0x31, 0x2c, 0x68, 0x3d, 0x6c, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2c, 0x67, 0x3d, 0x66, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2d, 0x31, 0x2c, 0x70, 0x3d, 0x74, 0x3f, 0x31, + 0x3a, 0x31, 0x2f, 0x68, 0x3b, 0x2b, 0x2b, 0x69, 0x3c, 0x67, 0x3b, + 0x29, 0x6f, 0x3d, 0x63, 0x5b, 0x69, 0x5d, 0x3d, 0x5b, 0x5d, 0x2c, + 0x6f, 0x2e, 0x64, 0x78, 0x3d, 0x66, 0x5b, 0x69, 0x2b, 0x31, 0x5d, + 0x2d, 0x28, 0x6f, 0x2e, 0x78, 0x3d, 0x66, 0x5b, 0x69, 0x5d, 0x29, + 0x2c, 0x6f, 0x2e, 0x79, 0x3d, 0x30, 0x3b, 0x69, 0x66, 0x28, 0x67, + 0x3e, 0x30, 0x29, 0x66, 0x6f, 0x72, 0x28, 0x69, 0x3d, 0x2d, 0x31, + 0x3b, 0x2b, 0x2b, 0x69, 0x3c, 0x68, 0x3b, 0x29, 0x61, 0x3d, 0x6c, + 0x5b, 0x69, 0x5d, 0x2c, 0x61, 0x3e, 0x3d, 0x73, 0x5b, 0x30, 0x5d, + 0x26, 0x26, 0x61, 0x3c, 0x3d, 0x73, 0x5b, 0x31, 0x5d, 0x26, 0x26, + 0x28, 0x6f, 0x3d, 0x63, 0x5b, 0x74, 0x61, 0x2e, 0x62, 0x69, 0x73, + 0x65, 0x63, 0x74, 0x28, 0x66, 0x2c, 0x61, 0x2c, 0x31, 0x2c, 0x67, + 0x29, 0x2d, 0x31, 0x5d, 0x2c, 0x6f, 0x2e, 0x79, 0x2b, 0x3d, 0x70, + 0x2c, 0x6f, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, 0x5b, 0x69, + 0x5d, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x63, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x21, 0x30, 0x2c, + 0x65, 0x3d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2c, 0x72, 0x3d, + 0x70, 0x69, 0x2c, 0x75, 0x3d, 0x68, 0x69, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, 0x3d, 0x74, 0x2c, 0x6e, 0x29, + 0x3a, 0x65, 0x7d, 0x2c, 0x6e, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x72, 0x3d, 0x45, 0x74, 0x28, 0x74, + 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x6e, 0x2e, 0x62, + 0x69, 0x6e, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x75, 0x3d, 0x22, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3d, 0x3d, 0x74, 0x79, + 0x70, 0x65, 0x6f, 0x66, 0x20, 0x74, 0x3f, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x67, 0x69, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7d, 0x3a, 0x45, 0x74, 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, + 0x75, 0x7d, 0x2c, 0x6e, 0x2e, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x74, 0x3d, 0x21, + 0x21, 0x65, 0x2c, 0x6e, 0x29, 0x3a, 0x74, 0x7d, 0x2c, 0x6e, 0x7d, + 0x2c, 0x74, 0x61, 0x2e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, + 0x70, 0x61, 0x63, 0x6b, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6e, 0x2c, 0x69, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x65, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x69, 0x29, 0x2c, + 0x61, 0x3d, 0x6f, 0x5b, 0x30, 0x5d, 0x2c, 0x63, 0x3d, 0x75, 0x5b, + 0x30, 0x5d, 0x2c, 0x6c, 0x3d, 0x75, 0x5b, 0x31, 0x5d, 0x2c, 0x73, + 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x74, 0x3f, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x3a, 0x22, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, + 0x70, 0x65, 0x6f, 0x66, 0x20, 0x74, 0x3f, 0x74, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x3b, 0x69, 0x66, 0x28, + 0x61, 0x2e, 0x78, 0x3d, 0x61, 0x2e, 0x79, 0x3d, 0x30, 0x2c, 0x51, + 0x75, 0x28, 0x61, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x72, 0x3d, 0x2b, 0x73, + 0x28, 0x6e, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x7d, 0x29, + 0x2c, 0x51, 0x75, 0x28, 0x61, 0x2c, 0x4d, 0x69, 0x29, 0x2c, 0x72, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x66, 0x3d, 0x72, 0x2a, 0x28, + 0x74, 0x3f, 0x31, 0x3a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, + 0x78, 0x28, 0x32, 0x2a, 0x61, 0x2e, 0x72, 0x2f, 0x63, 0x2c, 0x32, + 0x2a, 0x61, 0x2e, 0x72, 0x2f, 0x6c, 0x29, 0x29, 0x2f, 0x32, 0x3b, + 0x51, 0x75, 0x28, 0x61, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x72, 0x2b, 0x3d, + 0x66, 0x7d, 0x29, 0x2c, 0x51, 0x75, 0x28, 0x61, 0x2c, 0x4d, 0x69, + 0x29, 0x2c, 0x51, 0x75, 0x28, 0x61, 0x2c, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x72, + 0x2d, 0x3d, 0x66, 0x7d, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x5f, 0x69, 0x28, 0x61, 0x2c, 0x63, 0x2f, 0x32, 0x2c, + 0x6c, 0x2f, 0x32, 0x2c, 0x74, 0x3f, 0x31, 0x3a, 0x31, 0x2f, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x32, 0x2a, 0x61, + 0x2e, 0x72, 0x2f, 0x63, 0x2c, 0x32, 0x2a, 0x61, 0x2e, 0x72, 0x2f, + 0x6c, 0x29, 0x29, 0x2c, 0x6f, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x2c, 0x65, 0x3d, 0x74, 0x61, 0x2e, 0x6c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x2e, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, + 0x28, 0x29, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x28, 0x76, 0x69, 0x29, + 0x2c, 0x72, 0x3d, 0x30, 0x2c, 0x75, 0x3d, 0x5b, 0x31, 0x2c, 0x31, + 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, + 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x75, 0x3d, + 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x75, 0x7d, 0x2c, 0x6e, 0x2e, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x74, + 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x65, 0x7c, 0x7c, 0x22, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, + 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x65, 0x3f, 0x65, 0x3a, + 0x2b, 0x65, 0x2c, 0x6e, 0x29, 0x3a, 0x74, 0x7d, 0x2c, 0x6e, 0x2e, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x72, 0x3d, 0x2b, 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x72, 0x7d, + 0x2c, 0x47, 0x75, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7d, 0x2c, 0x74, + 0x61, 0x2e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x74, 0x72, + 0x65, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x6e, 0x28, 0x6e, 0x2c, 0x75, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x73, 0x3d, 0x6f, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x75, 0x29, 0x2c, 0x66, 0x3d, + 0x73, 0x5b, 0x30, 0x5d, 0x2c, 0x68, 0x3d, 0x74, 0x28, 0x66, 0x29, + 0x3b, 0x69, 0x66, 0x28, 0x51, 0x75, 0x28, 0x68, 0x2c, 0x65, 0x29, + 0x2c, 0x68, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x6d, + 0x3d, 0x2d, 0x68, 0x2e, 0x7a, 0x2c, 0x4b, 0x75, 0x28, 0x68, 0x2c, + 0x72, 0x29, 0x2c, 0x6c, 0x29, 0x4b, 0x75, 0x28, 0x66, 0x2c, 0x69, + 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x67, 0x3d, 0x66, 0x2c, 0x70, 0x3d, 0x66, 0x2c, 0x76, 0x3d, 0x66, + 0x3b, 0x4b, 0x75, 0x28, 0x66, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x78, 0x3c, + 0x67, 0x2e, 0x78, 0x26, 0x26, 0x28, 0x67, 0x3d, 0x6e, 0x29, 0x2c, + 0x6e, 0x2e, 0x78, 0x3e, 0x70, 0x2e, 0x78, 0x26, 0x26, 0x28, 0x70, + 0x3d, 0x6e, 0x29, 0x2c, 0x6e, 0x2e, 0x64, 0x65, 0x70, 0x74, 0x68, + 0x3e, 0x76, 0x2e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x26, 0x26, 0x28, + 0x76, 0x3d, 0x6e, 0x29, 0x7d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x64, 0x3d, 0x61, 0x28, 0x67, 0x2c, 0x70, 0x29, 0x2f, 0x32, 0x2d, + 0x67, 0x2e, 0x78, 0x2c, 0x6d, 0x3d, 0x63, 0x5b, 0x30, 0x5d, 0x2f, + 0x28, 0x70, 0x2e, 0x78, 0x2b, 0x61, 0x28, 0x70, 0x2c, 0x67, 0x29, + 0x2f, 0x32, 0x2b, 0x64, 0x29, 0x2c, 0x79, 0x3d, 0x63, 0x5b, 0x31, + 0x5d, 0x2f, 0x28, 0x76, 0x2e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x7c, + 0x7c, 0x31, 0x29, 0x3b, 0x4b, 0x75, 0x28, 0x66, 0x2c, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6e, + 0x2e, 0x78, 0x3d, 0x28, 0x6e, 0x2e, 0x78, 0x2b, 0x64, 0x29, 0x2a, + 0x6d, 0x2c, 0x6e, 0x2e, 0x79, 0x3d, 0x6e, 0x2e, 0x64, 0x65, 0x70, + 0x74, 0x68, 0x2a, 0x79, 0x7d, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x73, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x3d, 0x7b, 0x41, + 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x72, 0x65, 0x6e, 0x3a, 0x5b, 0x6e, 0x5d, 0x7d, 0x2c, 0x72, 0x3d, + 0x5b, 0x65, 0x5d, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x28, + 0x74, 0x3d, 0x72, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x29, 0x3b, + 0x29, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x75, 0x2c, + 0x69, 0x3d, 0x74, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, + 0x6e, 0x2c, 0x6f, 0x3d, 0x30, 0x2c, 0x61, 0x3d, 0x69, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x61, 0x3e, 0x6f, 0x3b, 0x2b, + 0x2b, 0x6f, 0x29, 0x72, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x28, + 0x69, 0x5b, 0x6f, 0x5d, 0x3d, 0x75, 0x3d, 0x7b, 0x5f, 0x3a, 0x69, + 0x5b, 0x6f, 0x5d, 0x2c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3a, + 0x74, 0x2c, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x3a, + 0x28, 0x75, 0x3d, 0x69, 0x5b, 0x6f, 0x5d, 0x2e, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x29, 0x26, 0x26, 0x75, 0x2e, 0x73, + 0x6c, 0x69, 0x63, 0x65, 0x28, 0x29, 0x7c, 0x7c, 0x5b, 0x5d, 0x2c, + 0x41, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x61, 0x3a, 0x6e, 0x75, + 0x6c, 0x6c, 0x2c, 0x7a, 0x3a, 0x30, 0x2c, 0x6d, 0x3a, 0x30, 0x2c, + 0x63, 0x3a, 0x30, 0x2c, 0x73, 0x3a, 0x30, 0x2c, 0x74, 0x3a, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x69, 0x3a, 0x6f, 0x7d, 0x29, 0x2e, 0x61, + 0x3d, 0x75, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x65, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x5b, + 0x30, 0x5d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x65, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, + 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x2c, 0x72, + 0x3d, 0x6e, 0x2e, 0x69, 0x3f, 0x65, 0x5b, 0x6e, 0x2e, 0x69, 0x2d, + 0x31, 0x5d, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x69, 0x66, 0x28, + 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x7b, 0x4e, + 0x69, 0x28, 0x6e, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, + 0x28, 0x74, 0x5b, 0x30, 0x5d, 0x2e, 0x7a, 0x2b, 0x74, 0x5b, 0x74, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x2e, + 0x7a, 0x29, 0x2f, 0x32, 0x3b, 0x72, 0x3f, 0x28, 0x6e, 0x2e, 0x7a, + 0x3d, 0x72, 0x2e, 0x7a, 0x2b, 0x61, 0x28, 0x6e, 0x2e, 0x5f, 0x2c, + 0x72, 0x2e, 0x5f, 0x29, 0x2c, 0x6e, 0x2e, 0x6d, 0x3d, 0x6e, 0x2e, + 0x7a, 0x2d, 0x69, 0x29, 0x3a, 0x6e, 0x2e, 0x7a, 0x3d, 0x69, 0x7d, + 0x65, 0x6c, 0x73, 0x65, 0x20, 0x72, 0x26, 0x26, 0x28, 0x6e, 0x2e, + 0x7a, 0x3d, 0x72, 0x2e, 0x7a, 0x2b, 0x61, 0x28, 0x6e, 0x2e, 0x5f, + 0x2c, 0x72, 0x2e, 0x5f, 0x29, 0x29, 0x3b, 0x6e, 0x2e, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x3d, 0x75, 0x28, 0x6e, 0x2c, + 0x72, 0x2c, 0x6e, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, + 0x41, 0x7c, 0x7c, 0x65, 0x5b, 0x30, 0x5d, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x6e, 0x29, + 0x7b, 0x6e, 0x2e, 0x5f, 0x2e, 0x78, 0x3d, 0x6e, 0x2e, 0x7a, 0x2b, + 0x6e, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x6d, 0x2c, + 0x6e, 0x2e, 0x6d, 0x2b, 0x3d, 0x6e, 0x2e, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x2e, 0x6d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, 0x3d, 0x6e, 0x2c, 0x69, + 0x3d, 0x6e, 0x2c, 0x6f, 0x3d, 0x74, 0x2c, 0x63, 0x3d, 0x75, 0x2e, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x72, 0x65, 0x6e, 0x5b, 0x30, 0x5d, 0x2c, 0x6c, 0x3d, 0x75, + 0x2e, 0x6d, 0x2c, 0x73, 0x3d, 0x69, 0x2e, 0x6d, 0x2c, 0x66, 0x3d, + 0x6f, 0x2e, 0x6d, 0x2c, 0x68, 0x3d, 0x63, 0x2e, 0x6d, 0x3b, 0x6f, + 0x3d, 0x45, 0x69, 0x28, 0x6f, 0x29, 0x2c, 0x75, 0x3d, 0x6b, 0x69, + 0x28, 0x75, 0x29, 0x2c, 0x6f, 0x26, 0x26, 0x75, 0x3b, 0x29, 0x63, + 0x3d, 0x6b, 0x69, 0x28, 0x63, 0x29, 0x2c, 0x69, 0x3d, 0x45, 0x69, + 0x28, 0x69, 0x29, 0x2c, 0x69, 0x2e, 0x61, 0x3d, 0x6e, 0x2c, 0x72, + 0x3d, 0x6f, 0x2e, 0x7a, 0x2b, 0x66, 0x2d, 0x75, 0x2e, 0x7a, 0x2d, + 0x6c, 0x2b, 0x61, 0x28, 0x6f, 0x2e, 0x5f, 0x2c, 0x75, 0x2e, 0x5f, + 0x29, 0x2c, 0x72, 0x3e, 0x30, 0x26, 0x26, 0x28, 0x41, 0x69, 0x28, + 0x43, 0x69, 0x28, 0x6f, 0x2c, 0x6e, 0x2c, 0x65, 0x29, 0x2c, 0x6e, + 0x2c, 0x72, 0x29, 0x2c, 0x6c, 0x2b, 0x3d, 0x72, 0x2c, 0x73, 0x2b, + 0x3d, 0x72, 0x29, 0x2c, 0x66, 0x2b, 0x3d, 0x6f, 0x2e, 0x6d, 0x2c, + 0x6c, 0x2b, 0x3d, 0x75, 0x2e, 0x6d, 0x2c, 0x68, 0x2b, 0x3d, 0x63, + 0x2e, 0x6d, 0x2c, 0x73, 0x2b, 0x3d, 0x69, 0x2e, 0x6d, 0x3b, 0x6f, + 0x26, 0x26, 0x21, 0x45, 0x69, 0x28, 0x69, 0x29, 0x26, 0x26, 0x28, + 0x69, 0x2e, 0x74, 0x3d, 0x6f, 0x2c, 0x69, 0x2e, 0x6d, 0x2b, 0x3d, + 0x66, 0x2d, 0x73, 0x29, 0x2c, 0x75, 0x26, 0x26, 0x21, 0x6b, 0x69, + 0x28, 0x63, 0x29, 0x26, 0x26, 0x28, 0x63, 0x2e, 0x74, 0x3d, 0x75, + 0x2c, 0x63, 0x2e, 0x6d, 0x2b, 0x3d, 0x6c, 0x2d, 0x68, 0x2c, 0x65, + 0x3d, 0x6e, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x65, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x78, 0x2a, 0x3d, 0x63, + 0x5b, 0x30, 0x5d, 0x2c, 0x6e, 0x2e, 0x79, 0x3d, 0x6e, 0x2e, 0x64, + 0x65, 0x70, 0x74, 0x68, 0x2a, 0x63, 0x5b, 0x31, 0x5d, 0x7d, 0x76, + 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x74, 0x61, 0x2e, 0x6c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, + 0x68, 0x79, 0x28, 0x29, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x28, 0x6e, + 0x75, 0x6c, 0x6c, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x28, + 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2c, 0x61, 0x3d, 0x53, 0x69, 0x2c, + 0x63, 0x3d, 0x5b, 0x31, 0x2c, 0x31, 0x5d, 0x2c, 0x6c, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x2e, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x61, 0x3d, 0x74, 0x2c, 0x6e, + 0x29, 0x3a, 0x61, 0x7d, 0x2c, 0x6e, 0x2e, 0x73, 0x69, 0x7a, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6c, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, + 0x3d, 0x3d, 0x28, 0x63, 0x3d, 0x74, 0x29, 0x3f, 0x69, 0x3a, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x6e, 0x29, 0x3a, 0x6c, 0x3f, 0x6e, 0x75, + 0x6c, 0x6c, 0x3a, 0x63, 0x7d, 0x2c, 0x6e, 0x2e, 0x6e, 0x6f, 0x64, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6c, + 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x28, 0x63, 0x3d, 0x74, + 0x29, 0x3f, 0x6e, 0x75, 0x6c, 0x6c, 0x3a, 0x69, 0x2c, 0x6e, 0x29, + 0x3a, 0x6c, 0x3f, 0x63, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x2c, + 0x47, 0x75, 0x28, 0x6e, 0x2c, 0x6f, 0x29, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6e, 0x2c, 0x69, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x6f, 0x2c, 0x61, 0x3d, 0x74, 0x2e, 0x63, 0x61, + 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x69, + 0x29, 0x2c, 0x63, 0x3d, 0x61, 0x5b, 0x30, 0x5d, 0x2c, 0x6c, 0x3d, + 0x30, 0x3b, 0x51, 0x75, 0x28, 0x63, 0x2c, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, + 0x65, 0x6e, 0x3b, 0x74, 0x26, 0x26, 0x74, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6e, 0x2e, 0x78, 0x3d, 0x71, 0x69, + 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x2e, 0x79, 0x3d, 0x7a, 0x69, 0x28, + 0x74, 0x29, 0x29, 0x3a, 0x28, 0x6e, 0x2e, 0x78, 0x3d, 0x6f, 0x3f, + 0x6c, 0x2b, 0x3d, 0x65, 0x28, 0x6e, 0x2c, 0x6f, 0x29, 0x3a, 0x30, + 0x2c, 0x6e, 0x2e, 0x79, 0x3d, 0x30, 0x2c, 0x6f, 0x3d, 0x6e, 0x29, + 0x7d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x73, 0x3d, 0x4c, 0x69, + 0x28, 0x63, 0x29, 0x2c, 0x66, 0x3d, 0x54, 0x69, 0x28, 0x63, 0x29, + 0x2c, 0x68, 0x3d, 0x73, 0x2e, 0x78, 0x2d, 0x65, 0x28, 0x73, 0x2c, + 0x66, 0x29, 0x2f, 0x32, 0x2c, 0x67, 0x3d, 0x66, 0x2e, 0x78, 0x2b, + 0x65, 0x28, 0x66, 0x2c, 0x73, 0x29, 0x2f, 0x32, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x51, 0x75, 0x28, 0x63, 0x2c, 0x75, + 0x3f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x6e, 0x2e, 0x78, 0x3d, 0x28, 0x6e, 0x2e, 0x78, 0x2d, + 0x63, 0x2e, 0x78, 0x29, 0x2a, 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x6e, + 0x2e, 0x79, 0x3d, 0x28, 0x63, 0x2e, 0x79, 0x2d, 0x6e, 0x2e, 0x79, + 0x29, 0x2a, 0x72, 0x5b, 0x31, 0x5d, 0x7d, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, + 0x78, 0x3d, 0x28, 0x6e, 0x2e, 0x78, 0x2d, 0x68, 0x29, 0x2f, 0x28, + 0x67, 0x2d, 0x68, 0x29, 0x2a, 0x72, 0x5b, 0x30, 0x5d, 0x2c, 0x6e, + 0x2e, 0x79, 0x3d, 0x28, 0x31, 0x2d, 0x28, 0x63, 0x2e, 0x79, 0x3f, + 0x6e, 0x2e, 0x79, 0x2f, 0x63, 0x2e, 0x79, 0x3a, 0x31, 0x29, 0x29, + 0x2a, 0x72, 0x5b, 0x31, 0x5d, 0x7d, 0x29, 0x2c, 0x61, 0x7d, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x6c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, + 0x68, 0x79, 0x28, 0x29, 0x2e, 0x73, 0x6f, 0x72, 0x74, 0x28, 0x6e, + 0x75, 0x6c, 0x6c, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x28, + 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2c, 0x65, 0x3d, 0x53, 0x69, 0x2c, + 0x72, 0x3d, 0x5b, 0x31, 0x2c, 0x31, 0x5d, 0x2c, 0x75, 0x3d, 0x21, + 0x31, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, + 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x65, 0x3d, 0x74, 0x2c, 0x6e, 0x29, 0x3a, + 0x65, 0x7d, 0x2c, 0x6e, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x75, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, + 0x28, 0x72, 0x3d, 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x75, 0x3f, + 0x6e, 0x75, 0x6c, 0x6c, 0x3a, 0x72, 0x7d, 0x2c, 0x6e, 0x2e, 0x6e, + 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x75, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x28, 0x72, + 0x3d, 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x75, 0x3f, 0x72, 0x3a, + 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x2c, 0x47, 0x75, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x6c, 0x61, 0x79, 0x6f, + 0x75, 0x74, 0x2e, 0x74, 0x72, 0x65, 0x65, 0x6d, 0x61, 0x70, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, + 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x3d, 0x2d, 0x31, 0x2c, + 0x69, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, + 0x2b, 0x2b, 0x75, 0x3c, 0x69, 0x3b, 0x29, 0x72, 0x3d, 0x28, 0x65, + 0x3d, 0x6e, 0x5b, 0x75, 0x5d, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2a, 0x28, 0x30, 0x3e, 0x74, 0x3f, 0x30, 0x3a, 0x74, 0x29, + 0x2c, 0x65, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x3d, 0x69, 0x73, 0x4e, + 0x61, 0x4e, 0x28, 0x72, 0x29, 0x7c, 0x7c, 0x30, 0x3e, 0x3d, 0x72, + 0x3f, 0x30, 0x3a, 0x72, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x3d, 0x65, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, + 0x65, 0x6e, 0x3b, 0x69, 0x66, 0x28, 0x69, 0x26, 0x26, 0x69, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x6f, 0x2c, 0x61, 0x2c, 0x63, 0x2c, 0x6c, 0x3d, 0x66, 0x28, + 0x65, 0x29, 0x2c, 0x73, 0x3d, 0x5b, 0x5d, 0x2c, 0x68, 0x3d, 0x69, + 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x29, 0x2c, 0x70, 0x3d, + 0x31, 0x2f, 0x30, 0x2c, 0x76, 0x3d, 0x22, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x22, 0x3d, 0x3d, 0x3d, 0x67, 0x3f, 0x6c, 0x2e, 0x64, 0x78, + 0x3a, 0x22, 0x64, 0x69, 0x63, 0x65, 0x22, 0x3d, 0x3d, 0x3d, 0x67, + 0x3f, 0x6c, 0x2e, 0x64, 0x79, 0x3a, 0x22, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x2d, 0x64, 0x69, 0x63, 0x65, 0x22, 0x3d, 0x3d, 0x3d, 0x67, + 0x3f, 0x31, 0x26, 0x65, 0x2e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x3f, + 0x6c, 0x2e, 0x64, 0x79, 0x3a, 0x6c, 0x2e, 0x64, 0x78, 0x3a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x6c, 0x2e, 0x64, + 0x78, 0x2c, 0x6c, 0x2e, 0x64, 0x79, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x6e, 0x28, 0x68, 0x2c, 0x6c, 0x2e, 0x64, 0x78, 0x2a, 0x6c, + 0x2e, 0x64, 0x79, 0x2f, 0x65, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x29, 0x2c, 0x73, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x3d, 0x30, 0x3b, + 0x28, 0x63, 0x3d, 0x68, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x29, 0x3e, 0x30, 0x3b, 0x29, 0x73, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x6f, 0x3d, 0x68, 0x5b, 0x63, 0x2d, 0x31, 0x5d, 0x29, 0x2c, + 0x73, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x2b, 0x3d, 0x6f, 0x2e, 0x61, + 0x72, 0x65, 0x61, 0x2c, 0x22, 0x73, 0x71, 0x75, 0x61, 0x72, 0x69, + 0x66, 0x79, 0x22, 0x21, 0x3d, 0x3d, 0x67, 0x7c, 0x7c, 0x28, 0x61, + 0x3d, 0x72, 0x28, 0x73, 0x2c, 0x76, 0x29, 0x29, 0x3c, 0x3d, 0x70, + 0x3f, 0x28, 0x68, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2c, 0x70, + 0x3d, 0x61, 0x29, 0x3a, 0x28, 0x73, 0x2e, 0x61, 0x72, 0x65, 0x61, + 0x2d, 0x3d, 0x73, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2e, 0x61, + 0x72, 0x65, 0x61, 0x2c, 0x75, 0x28, 0x73, 0x2c, 0x76, 0x2c, 0x6c, + 0x2c, 0x21, 0x31, 0x29, 0x2c, 0x76, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x6c, 0x2e, 0x64, 0x78, 0x2c, 0x6c, + 0x2e, 0x64, 0x79, 0x29, 0x2c, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3d, 0x73, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x3d, 0x30, + 0x2c, 0x70, 0x3d, 0x31, 0x2f, 0x30, 0x29, 0x3b, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x26, 0x26, 0x28, 0x75, 0x28, 0x73, + 0x2c, 0x76, 0x2c, 0x6c, 0x2c, 0x21, 0x30, 0x29, 0x2c, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3d, 0x73, 0x2e, 0x61, 0x72, + 0x65, 0x61, 0x3d, 0x30, 0x29, 0x2c, 0x69, 0x2e, 0x66, 0x6f, 0x72, + 0x45, 0x61, 0x63, 0x68, 0x28, 0x74, 0x29, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x74, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x74, 0x2e, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x3b, 0x69, 0x66, 0x28, 0x72, + 0x26, 0x26, 0x72, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x2c, 0x6f, 0x3d, 0x66, 0x28, + 0x74, 0x29, 0x2c, 0x61, 0x3d, 0x72, 0x2e, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x28, 0x29, 0x2c, 0x63, 0x3d, 0x5b, 0x5d, 0x3b, 0x66, 0x6f, + 0x72, 0x28, 0x6e, 0x28, 0x61, 0x2c, 0x6f, 0x2e, 0x64, 0x78, 0x2a, + 0x6f, 0x2e, 0x64, 0x79, 0x2f, 0x74, 0x2e, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x29, 0x2c, 0x63, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x3d, 0x30, + 0x3b, 0x69, 0x3d, 0x61, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x3b, + 0x29, 0x63, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x69, 0x29, 0x2c, + 0x63, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x2b, 0x3d, 0x69, 0x2e, 0x61, + 0x72, 0x65, 0x61, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x69, + 0x2e, 0x7a, 0x26, 0x26, 0x28, 0x75, 0x28, 0x63, 0x2c, 0x69, 0x2e, + 0x7a, 0x3f, 0x6f, 0x2e, 0x64, 0x78, 0x3a, 0x6f, 0x2e, 0x64, 0x79, + 0x2c, 0x6f, 0x2c, 0x21, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x2c, 0x63, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3d, 0x63, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x3d, 0x30, 0x29, 0x3b, + 0x72, 0x2e, 0x66, 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, 0x28, 0x65, + 0x29, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x72, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, 0x3d, 0x6e, 0x2e, + 0x61, 0x72, 0x65, 0x61, 0x2c, 0x75, 0x3d, 0x30, 0x2c, 0x69, 0x3d, + 0x31, 0x2f, 0x30, 0x2c, 0x6f, 0x3d, 0x2d, 0x31, 0x2c, 0x61, 0x3d, + 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, + 0x6f, 0x3c, 0x61, 0x3b, 0x29, 0x28, 0x65, 0x3d, 0x6e, 0x5b, 0x6f, + 0x5d, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x29, 0x26, 0x26, 0x28, 0x69, + 0x3e, 0x65, 0x26, 0x26, 0x28, 0x69, 0x3d, 0x65, 0x29, 0x2c, 0x65, + 0x3e, 0x75, 0x26, 0x26, 0x28, 0x75, 0x3d, 0x65, 0x29, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x2a, 0x3d, 0x72, + 0x2c, 0x74, 0x2a, 0x3d, 0x74, 0x2c, 0x72, 0x3f, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x74, 0x2a, 0x75, 0x2a, 0x70, + 0x2f, 0x72, 0x2c, 0x72, 0x2f, 0x28, 0x74, 0x2a, 0x69, 0x2a, 0x70, + 0x29, 0x29, 0x3a, 0x31, 0x2f, 0x30, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x2c, + 0x65, 0x2c, 0x72, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x2c, + 0x69, 0x3d, 0x2d, 0x31, 0x2c, 0x6f, 0x3d, 0x6e, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x61, 0x3d, 0x65, 0x2e, 0x78, 0x2c, + 0x6c, 0x3d, 0x65, 0x2e, 0x79, 0x2c, 0x73, 0x3d, 0x74, 0x3f, 0x63, + 0x28, 0x6e, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x2f, 0x74, 0x29, 0x3a, + 0x30, 0x3b, 0x69, 0x66, 0x28, 0x74, 0x3d, 0x3d, 0x65, 0x2e, 0x64, + 0x78, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x28, 0x72, 0x7c, 0x7c, + 0x73, 0x3e, 0x65, 0x2e, 0x64, 0x79, 0x29, 0x26, 0x26, 0x28, 0x73, + 0x3d, 0x65, 0x2e, 0x64, 0x79, 0x29, 0x3b, 0x2b, 0x2b, 0x69, 0x3c, + 0x6f, 0x3b, 0x29, 0x75, 0x3d, 0x6e, 0x5b, 0x69, 0x5d, 0x2c, 0x75, + 0x2e, 0x78, 0x3d, 0x61, 0x2c, 0x75, 0x2e, 0x79, 0x3d, 0x6c, 0x2c, + 0x75, 0x2e, 0x64, 0x79, 0x3d, 0x73, 0x2c, 0x61, 0x2b, 0x3d, 0x75, + 0x2e, 0x64, 0x78, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, + 0x6e, 0x28, 0x65, 0x2e, 0x78, 0x2b, 0x65, 0x2e, 0x64, 0x78, 0x2d, + 0x61, 0x2c, 0x73, 0x3f, 0x63, 0x28, 0x75, 0x2e, 0x61, 0x72, 0x65, + 0x61, 0x2f, 0x73, 0x29, 0x3a, 0x30, 0x29, 0x3b, 0x75, 0x2e, 0x7a, + 0x3d, 0x21, 0x30, 0x2c, 0x75, 0x2e, 0x64, 0x78, 0x2b, 0x3d, 0x65, + 0x2e, 0x78, 0x2b, 0x65, 0x2e, 0x64, 0x78, 0x2d, 0x61, 0x2c, 0x65, + 0x2e, 0x79, 0x2b, 0x3d, 0x73, 0x2c, 0x65, 0x2e, 0x64, 0x79, 0x2d, + 0x3d, 0x73, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x7b, 0x66, 0x6f, 0x72, + 0x28, 0x28, 0x72, 0x7c, 0x7c, 0x73, 0x3e, 0x65, 0x2e, 0x64, 0x78, + 0x29, 0x26, 0x26, 0x28, 0x73, 0x3d, 0x65, 0x2e, 0x64, 0x78, 0x29, + 0x3b, 0x2b, 0x2b, 0x69, 0x3c, 0x6f, 0x3b, 0x29, 0x75, 0x3d, 0x6e, + 0x5b, 0x69, 0x5d, 0x2c, 0x75, 0x2e, 0x78, 0x3d, 0x61, 0x2c, 0x75, + 0x2e, 0x79, 0x3d, 0x6c, 0x2c, 0x75, 0x2e, 0x64, 0x78, 0x3d, 0x73, + 0x2c, 0x6c, 0x2b, 0x3d, 0x75, 0x2e, 0x64, 0x79, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x65, 0x2e, 0x79, 0x2b, + 0x65, 0x2e, 0x64, 0x79, 0x2d, 0x6c, 0x2c, 0x73, 0x3f, 0x63, 0x28, + 0x75, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x2f, 0x73, 0x29, 0x3a, 0x30, + 0x29, 0x3b, 0x75, 0x2e, 0x7a, 0x3d, 0x21, 0x31, 0x2c, 0x75, 0x2e, + 0x64, 0x79, 0x2b, 0x3d, 0x65, 0x2e, 0x79, 0x2b, 0x65, 0x2e, 0x64, + 0x79, 0x2d, 0x6c, 0x2c, 0x65, 0x2e, 0x78, 0x2b, 0x3d, 0x73, 0x2c, + 0x65, 0x2e, 0x64, 0x78, 0x2d, 0x3d, 0x73, 0x7d, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x72, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x6f, 0x7c, 0x7c, 0x61, + 0x28, 0x72, 0x29, 0x2c, 0x69, 0x3d, 0x75, 0x5b, 0x30, 0x5d, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x2e, 0x78, 0x3d, + 0x30, 0x2c, 0x69, 0x2e, 0x79, 0x3d, 0x30, 0x2c, 0x69, 0x2e, 0x64, + 0x78, 0x3d, 0x6c, 0x5b, 0x30, 0x5d, 0x2c, 0x69, 0x2e, 0x64, 0x79, + 0x3d, 0x6c, 0x5b, 0x31, 0x5d, 0x2c, 0x6f, 0x26, 0x26, 0x61, 0x2e, + 0x72, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x28, 0x69, 0x29, 0x2c, + 0x6e, 0x28, 0x5b, 0x69, 0x5d, 0x2c, 0x69, 0x2e, 0x64, 0x78, 0x2a, + 0x69, 0x2e, 0x64, 0x79, 0x2f, 0x69, 0x2e, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x29, 0x2c, 0x28, 0x6f, 0x3f, 0x65, 0x3a, 0x74, 0x29, 0x28, + 0x69, 0x29, 0x2c, 0x68, 0x26, 0x26, 0x28, 0x6f, 0x3d, 0x75, 0x29, + 0x2c, 0x75, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x2c, 0x61, 0x3d, + 0x74, 0x61, 0x2e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2e, 0x68, + 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x28, 0x29, 0x2c, + 0x63, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2c, 0x6c, 0x3d, 0x5b, 0x31, 0x2c, 0x31, 0x5d, 0x2c, 0x73, + 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x66, 0x3d, 0x52, 0x69, 0x2c, + 0x68, 0x3d, 0x21, 0x31, 0x2c, 0x67, 0x3d, 0x22, 0x73, 0x71, 0x75, + 0x61, 0x72, 0x69, 0x66, 0x79, 0x22, 0x2c, 0x70, 0x3d, 0x2e, 0x35, + 0x2a, 0x28, 0x31, 0x2b, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, + 0x72, 0x74, 0x28, 0x35, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x6c, 0x3d, 0x6e, 0x2c, 0x69, 0x29, 0x3a, 0x6c, + 0x7d, 0x2c, 0x69, 0x2e, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x28, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, + 0x6e, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x69, 0x2c, 0x74, 0x2c, + 0x74, 0x2e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, + 0x65, 0x3f, 0x52, 0x69, 0x28, 0x74, 0x29, 0x3a, 0x44, 0x69, 0x28, + 0x74, 0x2c, 0x22, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x3d, + 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x65, 0x3f, 0x5b, + 0x65, 0x2c, 0x65, 0x2c, 0x65, 0x2c, 0x65, 0x5d, 0x3a, 0x65, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, + 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x44, 0x69, 0x28, 0x74, 0x2c, 0x6e, 0x29, 0x7d, 0x69, 0x66, 0x28, + 0x21, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x73, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x3d, 0x3d, 0x28, 0x73, 0x3d, 0x6e, 0x29, 0x3f, 0x52, + 0x69, 0x3a, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x3d, 0x3d, 0x28, 0x72, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, + 0x66, 0x20, 0x6e, 0x29, 0x3f, 0x74, 0x3a, 0x22, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x3d, 0x3d, 0x3d, 0x72, 0x3f, 0x28, 0x6e, + 0x3d, 0x5b, 0x6e, 0x2c, 0x6e, 0x2c, 0x6e, 0x2c, 0x6e, 0x5d, 0x2c, + 0x65, 0x29, 0x3a, 0x65, 0x2c, 0x69, 0x7d, 0x2c, 0x69, 0x2e, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x63, 0x3d, + 0x6e, 0x3f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x3a, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2c, 0x69, 0x29, + 0x3a, 0x63, 0x21, 0x3d, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x7d, + 0x2c, 0x69, 0x2e, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x68, 0x3d, 0x6e, 0x2c, 0x6f, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x2c, 0x69, 0x29, 0x3a, 0x68, 0x7d, 0x2c, 0x69, 0x2e, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x70, + 0x3d, 0x6e, 0x2c, 0x69, 0x29, 0x3a, 0x70, 0x7d, 0x2c, 0x69, 0x2e, + 0x6d, 0x6f, 0x64, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x67, 0x3d, + 0x6e, 0x2b, 0x22, 0x22, 0x2c, 0x69, 0x29, 0x3a, 0x67, 0x7d, 0x2c, + 0x47, 0x75, 0x28, 0x69, 0x2c, 0x61, 0x29, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x3d, 0x7b, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x65, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x32, 0x3e, 0x65, 0x26, 0x26, 0x28, + 0x74, 0x3d, 0x31, 0x29, 0x2c, 0x31, 0x3e, 0x65, 0x26, 0x26, 0x28, + 0x6e, 0x3d, 0x30, 0x29, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, + 0x72, 0x2c, 0x75, 0x3b, 0x64, 0x6f, 0x20, 0x65, 0x3d, 0x32, 0x2a, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, + 0x28, 0x29, 0x2d, 0x31, 0x2c, 0x72, 0x3d, 0x32, 0x2a, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x28, 0x29, + 0x2d, 0x31, 0x2c, 0x75, 0x3d, 0x65, 0x2a, 0x65, 0x2b, 0x72, 0x2a, + 0x72, 0x3b, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x28, 0x21, 0x75, 0x7c, + 0x7c, 0x75, 0x3e, 0x31, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2b, 0x74, 0x2a, 0x65, 0x2a, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x2d, 0x32, 0x2a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x75, 0x29, 0x2f, + 0x75, 0x29, 0x7d, 0x7d, 0x2c, 0x6c, 0x6f, 0x67, 0x4e, 0x6f, 0x72, + 0x6d, 0x61, 0x6c, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x74, + 0x61, 0x2e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x2e, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, + 0x74, 0x61, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x65, 0x78, 0x70, 0x28, 0x6e, 0x28, 0x29, 0x29, 0x7d, 0x7d, 0x2c, + 0x62, 0x61, 0x74, 0x65, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, + 0x2e, 0x69, 0x72, 0x77, 0x69, 0x6e, 0x48, 0x61, 0x6c, 0x6c, 0x28, + 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x28, 0x29, 0x2f, 0x6e, + 0x7d, 0x7d, 0x2c, 0x69, 0x72, 0x77, 0x69, 0x6e, 0x48, 0x61, 0x6c, + 0x6c, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x30, 0x2c, + 0x65, 0x3d, 0x30, 0x3b, 0x6e, 0x3e, 0x65, 0x3b, 0x65, 0x2b, 0x2b, + 0x29, 0x74, 0x2b, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x28, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x74, 0x7d, 0x7d, 0x7d, 0x2c, 0x74, 0x61, 0x2e, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3d, 0x7b, 0x7d, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x6d, 0x6c, 0x3d, 0x7b, 0x66, 0x6c, 0x6f, 0x6f, 0x72, + 0x3a, 0x79, 0x2c, 0x63, 0x65, 0x69, 0x6c, 0x3a, 0x79, 0x7d, 0x3b, + 0x74, 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x6c, 0x69, + 0x6e, 0x65, 0x61, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x49, 0x69, 0x28, 0x5b, 0x30, 0x2c, 0x31, 0x5d, 0x2c, 0x5b, + 0x30, 0x2c, 0x31, 0x5d, 0x2c, 0x6d, 0x75, 0x2c, 0x21, 0x31, 0x29, + 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x79, 0x6c, 0x3d, 0x7b, 0x73, + 0x3a, 0x31, 0x2c, 0x67, 0x3a, 0x31, 0x2c, 0x70, 0x3a, 0x31, 0x2c, + 0x72, 0x3a, 0x31, 0x2c, 0x65, 0x3a, 0x31, 0x7d, 0x3b, 0x74, 0x61, + 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4a, 0x69, 0x28, 0x74, + 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x61, 0x72, 0x28, 0x29, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x28, 0x5b, 0x30, 0x2c, 0x31, 0x5d, 0x29, 0x2c, 0x31, 0x30, + 0x2c, 0x21, 0x30, 0x2c, 0x5b, 0x31, 0x2c, 0x31, 0x30, 0x5d, 0x29, + 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x4d, 0x6c, 0x3d, 0x74, 0x61, + 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x2e, 0x30, + 0x65, 0x22, 0x29, 0x2c, 0x78, 0x6c, 0x3d, 0x7b, 0x66, 0x6c, 0x6f, + 0x6f, 0x72, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x2d, + 0x6e, 0x29, 0x7d, 0x2c, 0x63, 0x65, 0x69, 0x6c, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2d, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x2d, 0x6e, 0x29, 0x7d, 0x7d, + 0x3b, 0x74, 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x70, + 0x6f, 0x77, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, + 0x69, 0x28, 0x74, 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x28, 0x29, 0x2c, 0x31, 0x2c, + 0x5b, 0x30, 0x2c, 0x31, 0x5d, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x2e, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x70, 0x6f, 0x77, 0x28, 0x29, 0x2e, + 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x28, 0x2e, 0x35, + 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2e, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x51, 0x69, 0x28, 0x5b, 0x5d, 0x2c, + 0x7b, 0x74, 0x3a, 0x22, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x2c, + 0x61, 0x3a, 0x5b, 0x5b, 0x5d, 0x5d, 0x7d, 0x29, 0x7d, 0x2c, 0x74, + 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x63, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x31, 0x30, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x2e, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x28, 0x29, + 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x62, 0x6c, 0x29, 0x7d, + 0x2c, 0x74, 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x63, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x32, 0x30, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, 0x2e, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x2e, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, + 0x28, 0x29, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x5f, 0x6c, + 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2e, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x32, 0x30, + 0x62, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, + 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x6c, 0x28, 0x29, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x28, 0x77, 0x6c, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x2e, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x32, 0x30, 0x63, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x28, 0x29, 0x2e, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x28, 0x53, 0x6c, 0x29, 0x7d, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x62, 0x6c, 0x3d, 0x5b, 0x32, 0x30, 0x36, 0x32, 0x32, + 0x36, 0x30, 0x2c, 0x31, 0x36, 0x37, 0x34, 0x34, 0x32, 0x30, 0x36, + 0x2c, 0x32, 0x39, 0x32, 0x34, 0x35, 0x38, 0x38, 0x2c, 0x31, 0x34, + 0x30, 0x33, 0x34, 0x37, 0x32, 0x38, 0x2c, 0x39, 0x37, 0x32, 0x35, + 0x38, 0x38, 0x35, 0x2c, 0x39, 0x31, 0x39, 0x37, 0x31, 0x33, 0x31, + 0x2c, 0x31, 0x34, 0x39, 0x30, 0x37, 0x33, 0x33, 0x30, 0x2c, 0x38, + 0x33, 0x35, 0x35, 0x37, 0x31, 0x31, 0x2c, 0x31, 0x32, 0x33, 0x36, + 0x39, 0x31, 0x38, 0x36, 0x2c, 0x31, 0x35, 0x35, 0x36, 0x31, 0x37, + 0x35, 0x5d, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x4d, 0x74, 0x29, 0x2c, + 0x5f, 0x6c, 0x3d, 0x5b, 0x32, 0x30, 0x36, 0x32, 0x32, 0x36, 0x30, + 0x2c, 0x31, 0x31, 0x34, 0x35, 0x34, 0x34, 0x34, 0x30, 0x2c, 0x31, + 0x36, 0x37, 0x34, 0x34, 0x32, 0x30, 0x36, 0x2c, 0x31, 0x36, 0x37, + 0x35, 0x39, 0x36, 0x37, 0x32, 0x2c, 0x32, 0x39, 0x32, 0x34, 0x35, + 0x38, 0x38, 0x2c, 0x31, 0x30, 0x30, 0x31, 0x38, 0x36, 0x39, 0x38, + 0x2c, 0x31, 0x34, 0x30, 0x33, 0x34, 0x37, 0x32, 0x38, 0x2c, 0x31, + 0x36, 0x37, 0x35, 0x30, 0x37, 0x34, 0x32, 0x2c, 0x39, 0x37, 0x32, + 0x35, 0x38, 0x38, 0x35, 0x2c, 0x31, 0x32, 0x39, 0x35, 0x35, 0x38, + 0x36, 0x31, 0x2c, 0x39, 0x31, 0x39, 0x37, 0x31, 0x33, 0x31, 0x2c, + 0x31, 0x32, 0x38, 0x38, 0x35, 0x31, 0x34, 0x30, 0x2c, 0x31, 0x34, + 0x39, 0x30, 0x37, 0x33, 0x33, 0x30, 0x2c, 0x31, 0x36, 0x32, 0x33, + 0x34, 0x31, 0x39, 0x34, 0x2c, 0x38, 0x33, 0x35, 0x35, 0x37, 0x31, + 0x31, 0x2c, 0x31, 0x33, 0x30, 0x39, 0x32, 0x38, 0x30, 0x37, 0x2c, + 0x31, 0x32, 0x33, 0x36, 0x39, 0x31, 0x38, 0x36, 0x2c, 0x31, 0x34, + 0x34, 0x30, 0x38, 0x35, 0x38, 0x39, 0x2c, 0x31, 0x35, 0x35, 0x36, + 0x31, 0x37, 0x35, 0x2c, 0x31, 0x30, 0x34, 0x31, 0x30, 0x37, 0x32, + 0x35, 0x5d, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x4d, 0x74, 0x29, 0x2c, + 0x77, 0x6c, 0x3d, 0x5b, 0x33, 0x37, 0x35, 0x30, 0x37, 0x37, 0x37, + 0x2c, 0x35, 0x33, 0x39, 0x35, 0x36, 0x31, 0x39, 0x2c, 0x37, 0x30, + 0x34, 0x30, 0x37, 0x31, 0x39, 0x2c, 0x31, 0x30, 0x32, 0x36, 0x34, + 0x32, 0x38, 0x36, 0x2c, 0x36, 0x35, 0x31, 0x39, 0x30, 0x39, 0x37, + 0x2c, 0x39, 0x32, 0x31, 0x36, 0x35, 0x39, 0x34, 0x2c, 0x31, 0x31, + 0x39, 0x31, 0x35, 0x31, 0x31, 0x35, 0x2c, 0x31, 0x33, 0x35, 0x35, + 0x36, 0x36, 0x33, 0x36, 0x2c, 0x39, 0x32, 0x30, 0x32, 0x39, 0x39, + 0x33, 0x2c, 0x31, 0x32, 0x34, 0x32, 0x36, 0x38, 0x30, 0x39, 0x2c, + 0x31, 0x35, 0x31, 0x38, 0x36, 0x35, 0x31, 0x34, 0x2c, 0x31, 0x35, + 0x31, 0x39, 0x30, 0x39, 0x33, 0x32, 0x2c, 0x38, 0x36, 0x36, 0x36, + 0x31, 0x36, 0x39, 0x2c, 0x31, 0x31, 0x33, 0x35, 0x36, 0x34, 0x39, + 0x30, 0x2c, 0x31, 0x34, 0x30, 0x34, 0x39, 0x36, 0x34, 0x33, 0x2c, + 0x31, 0x35, 0x31, 0x37, 0x37, 0x33, 0x37, 0x32, 0x2c, 0x38, 0x30, + 0x37, 0x37, 0x36, 0x38, 0x33, 0x2c, 0x31, 0x30, 0x38, 0x33, 0x34, + 0x33, 0x32, 0x34, 0x2c, 0x31, 0x33, 0x35, 0x32, 0x38, 0x35, 0x30, + 0x39, 0x2c, 0x31, 0x34, 0x35, 0x38, 0x39, 0x36, 0x35, 0x34, 0x5d, + 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x4d, 0x74, 0x29, 0x2c, 0x53, 0x6c, + 0x3d, 0x5b, 0x33, 0x32, 0x34, 0x34, 0x37, 0x33, 0x33, 0x2c, 0x37, + 0x30, 0x35, 0x37, 0x31, 0x31, 0x30, 0x2c, 0x31, 0x30, 0x34, 0x30, + 0x36, 0x36, 0x32, 0x35, 0x2c, 0x31, 0x33, 0x30, 0x33, 0x32, 0x34, + 0x33, 0x31, 0x2c, 0x31, 0x35, 0x30, 0x39, 0x35, 0x30, 0x35, 0x33, + 0x2c, 0x31, 0x36, 0x36, 0x31, 0x36, 0x37, 0x36, 0x34, 0x2c, 0x31, + 0x36, 0x36, 0x32, 0x35, 0x32, 0x35, 0x39, 0x2c, 0x31, 0x36, 0x36, + 0x33, 0x34, 0x30, 0x31, 0x38, 0x2c, 0x33, 0x32, 0x35, 0x33, 0x30, + 0x37, 0x36, 0x2c, 0x37, 0x36, 0x35, 0x32, 0x34, 0x37, 0x30, 0x2c, + 0x31, 0x30, 0x36, 0x30, 0x37, 0x30, 0x30, 0x33, 0x2c, 0x31, 0x33, + 0x31, 0x30, 0x31, 0x35, 0x30, 0x34, 0x2c, 0x37, 0x36, 0x39, 0x35, + 0x32, 0x38, 0x31, 0x2c, 0x31, 0x30, 0x33, 0x39, 0x34, 0x33, 0x31, + 0x32, 0x2c, 0x31, 0x32, 0x33, 0x36, 0x39, 0x33, 0x37, 0x32, 0x2c, + 0x31, 0x34, 0x33, 0x34, 0x32, 0x38, 0x39, 0x31, 0x2c, 0x36, 0x35, + 0x31, 0x33, 0x35, 0x30, 0x37, 0x2c, 0x39, 0x38, 0x36, 0x38, 0x39, + 0x35, 0x30, 0x2c, 0x31, 0x32, 0x34, 0x33, 0x34, 0x38, 0x37, 0x37, + 0x2c, 0x31, 0x34, 0x32, 0x37, 0x37, 0x30, 0x38, 0x31, 0x5d, 0x2e, + 0x6d, 0x61, 0x70, 0x28, 0x4d, 0x74, 0x29, 0x3b, 0x74, 0x61, 0x2e, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x6f, 0x28, 0x5b, 0x5d, 0x2c, 0x5b, 0x5d, 0x29, 0x7d, 0x2c, + 0x74, 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x7a, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x74, 0x6f, 0x28, 0x30, 0x2c, 0x31, 0x2c, 0x5b, + 0x30, 0x2c, 0x31, 0x5d, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x65, 0x6f, 0x28, 0x5b, 0x2e, 0x35, 0x5d, 0x2c, 0x5b, 0x30, 0x2c, + 0x31, 0x5d, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x2e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x6f, 0x28, + 0x5b, 0x30, 0x2c, 0x31, 0x5d, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, + 0x73, 0x76, 0x67, 0x3d, 0x7b, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x73, + 0x76, 0x67, 0x2e, 0x61, 0x72, 0x63, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x6e, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, + 0x78, 0x28, 0x30, 0x2c, 0x2b, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x29, 0x2c, 0x6c, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x30, 0x2c, 0x2b, + 0x72, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x29, 0x2c, 0x73, 0x3d, 0x6f, 0x2e, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x2d, 0x52, 0x61, 0x2c, 0x66, + 0x3d, 0x61, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x29, 0x2d, 0x52, 0x61, 0x2c, 0x68, 0x3d, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x61, 0x62, 0x73, 0x28, 0x66, 0x2d, 0x73, 0x29, 0x2c, + 0x67, 0x3d, 0x73, 0x3e, 0x66, 0x3f, 0x30, 0x3a, 0x31, 0x3b, 0x69, + 0x66, 0x28, 0x6e, 0x3e, 0x6c, 0x26, 0x26, 0x28, 0x70, 0x3d, 0x6c, + 0x2c, 0x6c, 0x3d, 0x6e, 0x2c, 0x6e, 0x3d, 0x70, 0x29, 0x2c, 0x68, + 0x3e, 0x3d, 0x54, 0x61, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x74, 0x28, 0x6c, 0x2c, 0x67, 0x29, 0x2b, 0x28, 0x6e, 0x3f, + 0x74, 0x28, 0x6e, 0x2c, 0x31, 0x2d, 0x67, 0x29, 0x3a, 0x22, 0x22, + 0x29, 0x2b, 0x22, 0x5a, 0x22, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x70, + 0x2c, 0x76, 0x2c, 0x64, 0x2c, 0x6d, 0x2c, 0x79, 0x2c, 0x4d, 0x2c, + 0x78, 0x2c, 0x62, 0x2c, 0x5f, 0x2c, 0x77, 0x2c, 0x53, 0x2c, 0x6b, + 0x2c, 0x45, 0x3d, 0x30, 0x2c, 0x41, 0x3d, 0x30, 0x2c, 0x4e, 0x3d, + 0x5b, 0x5d, 0x3b, 0x69, 0x66, 0x28, 0x28, 0x6d, 0x3d, 0x28, 0x2b, + 0x63, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x7c, 0x7c, 0x30, 0x29, 0x2f, 0x32, 0x29, 0x26, 0x26, 0x28, + 0x64, 0x3d, 0x69, 0x3d, 0x3d, 0x3d, 0x6b, 0x6c, 0x3f, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x6e, 0x2a, 0x6e, + 0x2b, 0x6c, 0x2a, 0x6c, 0x29, 0x3a, 0x2b, 0x69, 0x2e, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x2c, 0x67, 0x7c, + 0x7c, 0x28, 0x41, 0x2a, 0x3d, 0x2d, 0x31, 0x29, 0x2c, 0x6c, 0x26, + 0x26, 0x28, 0x41, 0x3d, 0x74, 0x74, 0x28, 0x64, 0x2f, 0x6c, 0x2a, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x6d, 0x29, + 0x29, 0x29, 0x2c, 0x6e, 0x26, 0x26, 0x28, 0x45, 0x3d, 0x74, 0x74, + 0x28, 0x64, 0x2f, 0x6e, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x69, 0x6e, 0x28, 0x6d, 0x29, 0x29, 0x29, 0x29, 0x2c, 0x6c, 0x29, + 0x7b, 0x79, 0x3d, 0x6c, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, + 0x6f, 0x73, 0x28, 0x73, 0x2b, 0x41, 0x29, 0x2c, 0x4d, 0x3d, 0x6c, + 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x73, + 0x2b, 0x41, 0x29, 0x2c, 0x78, 0x3d, 0x6c, 0x2a, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x66, 0x2d, 0x41, 0x29, 0x2c, + 0x62, 0x3d, 0x6c, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, + 0x6e, 0x28, 0x66, 0x2d, 0x41, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x43, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, 0x62, 0x73, 0x28, + 0x66, 0x2d, 0x73, 0x2d, 0x32, 0x2a, 0x41, 0x29, 0x3c, 0x3d, 0x71, + 0x61, 0x3f, 0x30, 0x3a, 0x31, 0x3b, 0x69, 0x66, 0x28, 0x41, 0x26, + 0x26, 0x73, 0x6f, 0x28, 0x79, 0x2c, 0x4d, 0x2c, 0x78, 0x2c, 0x62, + 0x29, 0x3d, 0x3d, 0x3d, 0x67, 0x5e, 0x43, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x7a, 0x3d, 0x28, 0x73, 0x2b, 0x66, 0x29, 0x2f, 0x32, + 0x3b, 0x79, 0x3d, 0x6c, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, + 0x6f, 0x73, 0x28, 0x7a, 0x29, 0x2c, 0x4d, 0x3d, 0x6c, 0x2a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x7a, 0x29, 0x2c, + 0x78, 0x3d, 0x62, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x7d, 0x65, + 0x6c, 0x73, 0x65, 0x20, 0x79, 0x3d, 0x4d, 0x3d, 0x30, 0x3b, 0x69, + 0x66, 0x28, 0x6e, 0x29, 0x7b, 0x5f, 0x3d, 0x6e, 0x2a, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x66, 0x2d, 0x45, 0x29, + 0x2c, 0x77, 0x3d, 0x6e, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x69, 0x6e, 0x28, 0x66, 0x2d, 0x45, 0x29, 0x2c, 0x53, 0x3d, 0x6e, + 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x73, + 0x2b, 0x45, 0x29, 0x2c, 0x6b, 0x3d, 0x6e, 0x2a, 0x4d, 0x61, 0x74, + 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x73, 0x2b, 0x45, 0x29, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x71, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x61, 0x62, 0x73, 0x28, 0x73, 0x2d, 0x66, 0x2b, 0x32, 0x2a, 0x45, + 0x29, 0x3c, 0x3d, 0x71, 0x61, 0x3f, 0x30, 0x3a, 0x31, 0x3b, 0x69, + 0x66, 0x28, 0x45, 0x26, 0x26, 0x73, 0x6f, 0x28, 0x5f, 0x2c, 0x77, + 0x2c, 0x53, 0x2c, 0x6b, 0x29, 0x3d, 0x3d, 0x3d, 0x31, 0x2d, 0x67, + 0x5e, 0x71, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x4c, 0x3d, 0x28, + 0x73, 0x2b, 0x66, 0x29, 0x2f, 0x32, 0x3b, 0x5f, 0x3d, 0x6e, 0x2a, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x4c, 0x29, + 0x2c, 0x77, 0x3d, 0x6e, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x69, 0x6e, 0x28, 0x4c, 0x29, 0x2c, 0x53, 0x3d, 0x6b, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x7d, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x5f, + 0x3d, 0x77, 0x3d, 0x30, 0x3b, 0x69, 0x66, 0x28, 0x28, 0x70, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x61, 0x62, 0x73, 0x28, 0x6c, 0x2d, 0x6e, 0x29, + 0x2f, 0x32, 0x2c, 0x2b, 0x75, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x29, 0x29, 0x29, 0x3e, 0x2e, 0x30, 0x30, + 0x31, 0x29, 0x7b, 0x76, 0x3d, 0x6c, 0x3e, 0x6e, 0x5e, 0x67, 0x3f, + 0x30, 0x3a, 0x31, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x54, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x53, 0x3f, 0x5b, 0x5f, 0x2c, 0x77, + 0x5d, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x78, 0x3f, 0x5b, + 0x79, 0x2c, 0x4d, 0x5d, 0x3a, 0x4c, 0x72, 0x28, 0x5b, 0x79, 0x2c, + 0x4d, 0x5d, 0x2c, 0x5b, 0x53, 0x2c, 0x6b, 0x5d, 0x2c, 0x5b, 0x78, + 0x2c, 0x62, 0x5d, 0x2c, 0x5b, 0x5f, 0x2c, 0x77, 0x5d, 0x29, 0x2c, + 0x52, 0x3d, 0x79, 0x2d, 0x54, 0x5b, 0x30, 0x5d, 0x2c, 0x44, 0x3d, + 0x4d, 0x2d, 0x54, 0x5b, 0x31, 0x5d, 0x2c, 0x50, 0x3d, 0x78, 0x2d, + 0x54, 0x5b, 0x30, 0x5d, 0x2c, 0x55, 0x3d, 0x62, 0x2d, 0x54, 0x5b, + 0x31, 0x5d, 0x2c, 0x6a, 0x3d, 0x31, 0x2f, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x73, 0x69, 0x6e, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x61, + 0x63, 0x6f, 0x73, 0x28, 0x28, 0x52, 0x2a, 0x50, 0x2b, 0x44, 0x2a, + 0x55, 0x29, 0x2f, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, + 0x72, 0x74, 0x28, 0x52, 0x2a, 0x52, 0x2b, 0x44, 0x2a, 0x44, 0x29, + 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, + 0x50, 0x2a, 0x50, 0x2b, 0x55, 0x2a, 0x55, 0x29, 0x29, 0x29, 0x2f, + 0x32, 0x29, 0x2c, 0x46, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x71, 0x72, 0x74, 0x28, 0x54, 0x5b, 0x30, 0x5d, 0x2a, 0x54, 0x5b, + 0x30, 0x5d, 0x2b, 0x54, 0x5b, 0x31, 0x5d, 0x2a, 0x54, 0x5b, 0x31, + 0x5d, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x21, + 0x3d, 0x78, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x48, 0x3d, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, 0x6e, 0x28, 0x70, 0x2c, 0x28, + 0x6c, 0x2d, 0x46, 0x29, 0x2f, 0x28, 0x6a, 0x2b, 0x31, 0x29, 0x29, + 0x2c, 0x4f, 0x3d, 0x66, 0x6f, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, + 0x3d, 0x53, 0x3f, 0x5b, 0x5f, 0x2c, 0x77, 0x5d, 0x3a, 0x5b, 0x53, + 0x2c, 0x6b, 0x5d, 0x2c, 0x5b, 0x79, 0x2c, 0x4d, 0x5d, 0x2c, 0x6c, + 0x2c, 0x48, 0x2c, 0x67, 0x29, 0x2c, 0x49, 0x3d, 0x66, 0x6f, 0x28, + 0x5b, 0x78, 0x2c, 0x62, 0x5d, 0x2c, 0x5b, 0x5f, 0x2c, 0x77, 0x5d, + 0x2c, 0x6c, 0x2c, 0x48, 0x2c, 0x67, 0x29, 0x3b, 0x70, 0x3d, 0x3d, + 0x3d, 0x48, 0x3f, 0x4e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, + 0x4d, 0x22, 0x2c, 0x4f, 0x5b, 0x30, 0x5d, 0x2c, 0x22, 0x41, 0x22, + 0x2c, 0x48, 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x48, 0x2c, 0x22, 0x20, + 0x30, 0x20, 0x30, 0x2c, 0x22, 0x2c, 0x76, 0x2c, 0x22, 0x20, 0x22, + 0x2c, 0x4f, 0x5b, 0x31, 0x5d, 0x2c, 0x22, 0x41, 0x22, 0x2c, 0x6c, + 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x6c, 0x2c, 0x22, 0x20, 0x30, 0x20, + 0x22, 0x2c, 0x31, 0x2d, 0x67, 0x5e, 0x73, 0x6f, 0x28, 0x4f, 0x5b, + 0x31, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x4f, 0x5b, 0x31, 0x5d, 0x5b, + 0x31, 0x5d, 0x2c, 0x49, 0x5b, 0x31, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, + 0x49, 0x5b, 0x31, 0x5d, 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x22, 0x2c, + 0x22, 0x2c, 0x67, 0x2c, 0x22, 0x20, 0x22, 0x2c, 0x49, 0x5b, 0x31, + 0x5d, 0x2c, 0x22, 0x41, 0x22, 0x2c, 0x48, 0x2c, 0x22, 0x2c, 0x22, + 0x2c, 0x48, 0x2c, 0x22, 0x20, 0x30, 0x20, 0x30, 0x2c, 0x22, 0x2c, + 0x76, 0x2c, 0x22, 0x20, 0x22, 0x2c, 0x49, 0x5b, 0x30, 0x5d, 0x29, + 0x3a, 0x4e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x4d, 0x22, + 0x2c, 0x4f, 0x5b, 0x30, 0x5d, 0x2c, 0x22, 0x41, 0x22, 0x2c, 0x48, + 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x48, 0x2c, 0x22, 0x20, 0x30, 0x20, + 0x31, 0x2c, 0x22, 0x2c, 0x76, 0x2c, 0x22, 0x20, 0x22, 0x2c, 0x49, + 0x5b, 0x30, 0x5d, 0x29, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x4e, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x4d, 0x22, 0x2c, 0x79, + 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x4d, 0x29, 0x3b, 0x69, 0x66, 0x28, + 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, 0x53, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x59, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, + 0x6e, 0x28, 0x70, 0x2c, 0x28, 0x6e, 0x2d, 0x46, 0x29, 0x2f, 0x28, + 0x6a, 0x2d, 0x31, 0x29, 0x29, 0x2c, 0x5a, 0x3d, 0x66, 0x6f, 0x28, + 0x5b, 0x79, 0x2c, 0x4d, 0x5d, 0x2c, 0x5b, 0x53, 0x2c, 0x6b, 0x5d, + 0x2c, 0x6e, 0x2c, 0x2d, 0x59, 0x2c, 0x67, 0x29, 0x2c, 0x56, 0x3d, + 0x66, 0x6f, 0x28, 0x5b, 0x5f, 0x2c, 0x77, 0x5d, 0x2c, 0x6e, 0x75, + 0x6c, 0x6c, 0x3d, 0x3d, 0x78, 0x3f, 0x5b, 0x79, 0x2c, 0x4d, 0x5d, + 0x3a, 0x5b, 0x78, 0x2c, 0x62, 0x5d, 0x2c, 0x6e, 0x2c, 0x2d, 0x59, + 0x2c, 0x67, 0x29, 0x3b, 0x70, 0x3d, 0x3d, 0x3d, 0x59, 0x3f, 0x4e, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x4c, 0x22, 0x2c, 0x56, + 0x5b, 0x30, 0x5d, 0x2c, 0x22, 0x41, 0x22, 0x2c, 0x59, 0x2c, 0x22, + 0x2c, 0x22, 0x2c, 0x59, 0x2c, 0x22, 0x20, 0x30, 0x20, 0x30, 0x2c, + 0x22, 0x2c, 0x76, 0x2c, 0x22, 0x20, 0x22, 0x2c, 0x56, 0x5b, 0x31, + 0x5d, 0x2c, 0x22, 0x41, 0x22, 0x2c, 0x6e, 0x2c, 0x22, 0x2c, 0x22, + 0x2c, 0x6e, 0x2c, 0x22, 0x20, 0x30, 0x20, 0x22, 0x2c, 0x67, 0x5e, + 0x73, 0x6f, 0x28, 0x56, 0x5b, 0x31, 0x5d, 0x5b, 0x30, 0x5d, 0x2c, + 0x56, 0x5b, 0x31, 0x5d, 0x5b, 0x31, 0x5d, 0x2c, 0x5a, 0x5b, 0x31, + 0x5d, 0x5b, 0x30, 0x5d, 0x2c, 0x5a, 0x5b, 0x31, 0x5d, 0x5b, 0x31, + 0x5d, 0x29, 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x31, 0x2d, 0x67, 0x2c, + 0x22, 0x20, 0x22, 0x2c, 0x5a, 0x5b, 0x31, 0x5d, 0x2c, 0x22, 0x41, + 0x22, 0x2c, 0x59, 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x59, 0x2c, 0x22, + 0x20, 0x30, 0x20, 0x30, 0x2c, 0x22, 0x2c, 0x76, 0x2c, 0x22, 0x20, + 0x22, 0x2c, 0x5a, 0x5b, 0x30, 0x5d, 0x29, 0x3a, 0x4e, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x22, 0x4c, 0x22, 0x2c, 0x56, 0x5b, 0x30, + 0x5d, 0x2c, 0x22, 0x41, 0x22, 0x2c, 0x59, 0x2c, 0x22, 0x2c, 0x22, + 0x2c, 0x59, 0x2c, 0x22, 0x20, 0x30, 0x20, 0x30, 0x2c, 0x22, 0x2c, + 0x76, 0x2c, 0x22, 0x20, 0x22, 0x2c, 0x5a, 0x5b, 0x30, 0x5d, 0x29, + 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x4e, 0x2e, 0x70, 0x75, 0x73, + 0x68, 0x28, 0x22, 0x4c, 0x22, 0x2c, 0x5f, 0x2c, 0x22, 0x2c, 0x22, + 0x2c, 0x77, 0x29, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x4e, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x4d, 0x22, 0x2c, 0x79, 0x2c, + 0x22, 0x2c, 0x22, 0x2c, 0x4d, 0x29, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, + 0x21, 0x3d, 0x78, 0x26, 0x26, 0x4e, 0x2e, 0x70, 0x75, 0x73, 0x68, + 0x28, 0x22, 0x41, 0x22, 0x2c, 0x6c, 0x2c, 0x22, 0x2c, 0x22, 0x2c, + 0x6c, 0x2c, 0x22, 0x20, 0x30, 0x20, 0x22, 0x2c, 0x43, 0x2c, 0x22, + 0x2c, 0x22, 0x2c, 0x67, 0x2c, 0x22, 0x20, 0x22, 0x2c, 0x78, 0x2c, + 0x22, 0x2c, 0x22, 0x2c, 0x62, 0x29, 0x2c, 0x4e, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x22, 0x4c, 0x22, 0x2c, 0x5f, 0x2c, 0x22, 0x2c, + 0x22, 0x2c, 0x77, 0x29, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x21, 0x3d, + 0x53, 0x26, 0x26, 0x4e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, + 0x41, 0x22, 0x2c, 0x6e, 0x2c, 0x22, 0x2c, 0x22, 0x2c, 0x6e, 0x2c, + 0x22, 0x20, 0x30, 0x20, 0x22, 0x2c, 0x71, 0x2c, 0x22, 0x2c, 0x22, + 0x2c, 0x31, 0x2d, 0x67, 0x2c, 0x22, 0x20, 0x22, 0x2c, 0x53, 0x2c, + 0x22, 0x2c, 0x22, 0x2c, 0x6b, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x4e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, + 0x5a, 0x22, 0x29, 0x2c, 0x4e, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, + 0x22, 0x22, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x22, 0x4d, 0x30, 0x2c, 0x22, 0x2b, 0x6e, + 0x2b, 0x22, 0x41, 0x22, 0x2b, 0x6e, 0x2b, 0x22, 0x2c, 0x22, 0x2b, + 0x6e, 0x2b, 0x22, 0x20, 0x30, 0x20, 0x31, 0x2c, 0x22, 0x2b, 0x74, + 0x2b, 0x22, 0x20, 0x30, 0x2c, 0x22, 0x2b, 0x2d, 0x6e, 0x2b, 0x22, + 0x41, 0x22, 0x2b, 0x6e, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x6e, 0x2b, + 0x22, 0x20, 0x30, 0x20, 0x31, 0x2c, 0x22, 0x2b, 0x74, 0x2b, 0x22, + 0x20, 0x30, 0x2c, 0x22, 0x2b, 0x6e, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x3d, 0x69, 0x6f, 0x2c, 0x72, 0x3d, 0x6f, 0x6f, 0x2c, 0x75, + 0x3d, 0x75, 0x6f, 0x2c, 0x69, 0x3d, 0x6b, 0x6c, 0x2c, 0x6f, 0x3d, + 0x61, 0x6f, 0x2c, 0x61, 0x3d, 0x63, 0x6f, 0x2c, 0x63, 0x3d, 0x6c, + 0x6f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, 0x3d, 0x45, 0x74, 0x28, 0x74, + 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x65, 0x7d, 0x2c, 0x6e, 0x2e, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x72, 0x3d, 0x45, 0x74, 0x28, 0x74, 0x29, + 0x2c, 0x6e, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x6e, 0x2e, 0x63, 0x6f, + 0x72, 0x6e, 0x65, 0x72, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x75, 0x3d, 0x45, 0x74, 0x28, 0x74, 0x29, + 0x2c, 0x6e, 0x29, 0x3a, 0x75, 0x7d, 0x2c, 0x6e, 0x2e, 0x70, 0x61, + 0x64, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x69, 0x3d, 0x74, 0x3d, 0x3d, 0x6b, 0x6c, 0x3f, 0x6b, 0x6c, + 0x3a, 0x45, 0x74, 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x69, + 0x7d, 0x2c, 0x6e, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6e, + 0x67, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6f, 0x3d, 0x45, + 0x74, 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x6f, 0x7d, 0x2c, + 0x6e, 0x2e, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x61, 0x3d, 0x45, 0x74, 0x28, 0x74, 0x29, + 0x2c, 0x6e, 0x29, 0x3a, 0x61, 0x7d, 0x2c, 0x6e, 0x2e, 0x70, 0x61, + 0x64, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x63, 0x3d, 0x45, 0x74, 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, + 0x63, 0x7d, 0x2c, 0x6e, 0x2e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x6f, + 0x69, 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x28, 0x2b, + 0x65, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x2b, 0x20, 0x2b, 0x72, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x29, 0x29, 0x2f, 0x32, 0x2c, 0x74, 0x3d, + 0x28, 0x2b, 0x6f, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x29, 0x2b, 0x20, 0x2b, 0x61, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x29, 0x2f, 0x32, 0x2d, + 0x52, 0x61, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, 0x74, 0x29, 0x2a, + 0x6e, 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x69, 0x6e, 0x28, + 0x74, 0x29, 0x2a, 0x6e, 0x5d, 0x7d, 0x2c, 0x6e, 0x7d, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x6b, 0x6c, 0x3d, 0x22, 0x61, 0x75, 0x74, 0x6f, + 0x22, 0x3b, 0x74, 0x61, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x6c, 0x69, + 0x6e, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x68, + 0x6f, 0x28, 0x79, 0x29, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x45, + 0x6c, 0x3d, 0x74, 0x61, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x7b, 0x6c, + 0x69, 0x6e, 0x65, 0x61, 0x72, 0x3a, 0x67, 0x6f, 0x2c, 0x22, 0x6c, + 0x69, 0x6e, 0x65, 0x61, 0x72, 0x2d, 0x63, 0x6c, 0x6f, 0x73, 0x65, + 0x64, 0x22, 0x3a, 0x70, 0x6f, 0x2c, 0x73, 0x74, 0x65, 0x70, 0x3a, + 0x76, 0x6f, 0x2c, 0x22, 0x73, 0x74, 0x65, 0x70, 0x2d, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x22, 0x3a, 0x6d, 0x6f, 0x2c, 0x22, 0x73, + 0x74, 0x65, 0x70, 0x2d, 0x61, 0x66, 0x74, 0x65, 0x72, 0x22, 0x3a, + 0x79, 0x6f, 0x2c, 0x62, 0x61, 0x73, 0x69, 0x73, 0x3a, 0x53, 0x6f, + 0x2c, 0x22, 0x62, 0x61, 0x73, 0x69, 0x73, 0x2d, 0x6f, 0x70, 0x65, + 0x6e, 0x22, 0x3a, 0x6b, 0x6f, 0x2c, 0x22, 0x62, 0x61, 0x73, 0x69, + 0x73, 0x2d, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x22, 0x3a, 0x45, + 0x6f, 0x2c, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x41, 0x6f, + 0x2c, 0x63, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x3a, 0x62, + 0x6f, 0x2c, 0x22, 0x63, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, + 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x3a, 0x4d, 0x6f, 0x2c, 0x22, + 0x63, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x2d, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x64, 0x22, 0x3a, 0x78, 0x6f, 0x2c, 0x6d, 0x6f, + 0x6e, 0x6f, 0x74, 0x6f, 0x6e, 0x65, 0x3a, 0x54, 0x6f, 0x7d, 0x29, + 0x3b, 0x45, 0x6c, 0x2e, 0x66, 0x6f, 0x72, 0x45, 0x61, 0x63, 0x68, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x74, 0x29, 0x7b, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x3d, 0x6e, + 0x2c, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x3d, 0x2f, + 0x2d, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x24, 0x2f, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x28, 0x6e, 0x29, 0x7d, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x41, 0x6c, 0x3d, 0x5b, 0x30, 0x2c, 0x32, 0x2f, 0x33, + 0x2c, 0x31, 0x2f, 0x33, 0x2c, 0x30, 0x5d, 0x2c, 0x4e, 0x6c, 0x3d, + 0x5b, 0x30, 0x2c, 0x31, 0x2f, 0x33, 0x2c, 0x32, 0x2f, 0x33, 0x2c, + 0x30, 0x5d, 0x2c, 0x43, 0x6c, 0x3d, 0x5b, 0x30, 0x2c, 0x31, 0x2f, + 0x36, 0x2c, 0x32, 0x2f, 0x33, 0x2c, 0x31, 0x2f, 0x36, 0x5d, 0x3b, + 0x74, 0x61, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x6c, 0x69, 0x6e, 0x65, + 0x2e, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6c, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x6e, 0x3d, 0x68, 0x6f, 0x28, 0x52, 0x6f, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3d, 0x6e, 0x2e, 0x78, 0x2c, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x20, 0x6e, 0x2e, 0x78, 0x2c, 0x6e, 0x2e, 0x61, + 0x6e, 0x67, 0x6c, 0x65, 0x3d, 0x6e, 0x2e, 0x79, 0x2c, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x20, 0x6e, 0x2e, 0x79, 0x2c, 0x6e, 0x7d, + 0x2c, 0x6d, 0x6f, 0x2e, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, + 0x3d, 0x79, 0x6f, 0x2c, 0x79, 0x6f, 0x2e, 0x72, 0x65, 0x76, 0x65, + 0x72, 0x73, 0x65, 0x3d, 0x6d, 0x6f, 0x2c, 0x74, 0x61, 0x2e, 0x73, + 0x76, 0x67, 0x2e, 0x61, 0x72, 0x65, 0x61, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x44, 0x6f, 0x28, 0x79, 0x29, 0x7d, 0x2c, + 0x74, 0x61, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x61, 0x72, 0x65, 0x61, + 0x2e, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6c, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x6e, 0x3d, 0x44, 0x6f, 0x28, 0x52, 0x6f, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x3d, 0x6e, 0x2e, 0x78, 0x2c, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x20, 0x6e, 0x2e, 0x78, 0x2c, 0x6e, 0x2e, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3d, + 0x6e, 0x2e, 0x78, 0x30, 0x2c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x20, 0x6e, 0x2e, 0x78, 0x30, 0x2c, 0x6e, 0x2e, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3d, 0x6e, 0x2e, + 0x78, 0x31, 0x2c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x6e, + 0x2e, 0x78, 0x31, 0x2c, 0x6e, 0x2e, 0x61, 0x6e, 0x67, 0x6c, 0x65, + 0x3d, 0x6e, 0x2e, 0x79, 0x2c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x20, 0x6e, 0x2e, 0x79, 0x2c, 0x6e, 0x2e, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x3d, 0x6e, 0x2e, 0x79, 0x30, + 0x2c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x6e, 0x2e, 0x79, + 0x30, 0x2c, 0x6e, 0x2e, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x67, 0x6c, + 0x65, 0x3d, 0x6e, 0x2e, 0x79, 0x31, 0x2c, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x20, 0x6e, 0x2e, 0x79, 0x31, 0x2c, 0x6e, 0x7d, 0x2c, + 0x74, 0x61, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x63, 0x68, 0x6f, 0x72, + 0x64, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6e, 0x28, 0x6e, 0x2c, 0x61, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x63, 0x3d, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x69, 0x2c, + 0x6e, 0x2c, 0x61, 0x29, 0x2c, 0x6c, 0x3d, 0x74, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x6f, 0x2c, 0x6e, 0x2c, 0x61, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x4d, 0x22, 0x2b, 0x63, 0x2e, + 0x70, 0x30, 0x2b, 0x72, 0x28, 0x63, 0x2e, 0x72, 0x2c, 0x63, 0x2e, + 0x70, 0x31, 0x2c, 0x63, 0x2e, 0x61, 0x31, 0x2d, 0x63, 0x2e, 0x61, + 0x30, 0x29, 0x2b, 0x28, 0x65, 0x28, 0x63, 0x2c, 0x6c, 0x29, 0x3f, + 0x75, 0x28, 0x63, 0x2e, 0x72, 0x2c, 0x63, 0x2e, 0x70, 0x31, 0x2c, + 0x63, 0x2e, 0x72, 0x2c, 0x63, 0x2e, 0x70, 0x30, 0x29, 0x3a, 0x75, + 0x28, 0x63, 0x2e, 0x72, 0x2c, 0x63, 0x2e, 0x70, 0x31, 0x2c, 0x6c, + 0x2e, 0x72, 0x2c, 0x6c, 0x2e, 0x70, 0x30, 0x29, 0x2b, 0x72, 0x28, + 0x6c, 0x2e, 0x72, 0x2c, 0x6c, 0x2e, 0x70, 0x31, 0x2c, 0x6c, 0x2e, + 0x61, 0x31, 0x2d, 0x6c, 0x2e, 0x61, 0x30, 0x29, 0x2b, 0x75, 0x28, + 0x6c, 0x2e, 0x72, 0x2c, 0x6c, 0x2e, 0x70, 0x31, 0x2c, 0x63, 0x2e, + 0x72, 0x2c, 0x63, 0x2e, 0x70, 0x30, 0x29, 0x29, 0x2b, 0x22, 0x5a, + 0x22, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x74, 0x2e, 0x63, 0x61, 0x6c, + 0x6c, 0x28, 0x6e, 0x2c, 0x65, 0x2c, 0x72, 0x29, 0x2c, 0x69, 0x3d, + 0x61, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x75, 0x2c, + 0x72, 0x29, 0x2c, 0x6f, 0x3d, 0x63, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x28, 0x6e, 0x2c, 0x75, 0x2c, 0x72, 0x29, 0x2d, 0x52, 0x61, 0x2c, + 0x73, 0x3d, 0x6c, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, + 0x75, 0x2c, 0x72, 0x29, 0x2d, 0x52, 0x61, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x7b, 0x72, 0x3a, 0x69, 0x2c, 0x61, 0x30, 0x3a, + 0x6f, 0x2c, 0x61, 0x31, 0x3a, 0x73, 0x2c, 0x70, 0x30, 0x3a, 0x5b, + 0x69, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, + 0x6f, 0x29, 0x2c, 0x69, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x69, 0x6e, 0x28, 0x6f, 0x29, 0x5d, 0x2c, 0x70, 0x31, 0x3a, 0x5b, + 0x69, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x63, 0x6f, 0x73, 0x28, + 0x73, 0x29, 0x2c, 0x69, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x69, 0x6e, 0x28, 0x73, 0x29, 0x5d, 0x7d, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, + 0x61, 0x30, 0x3d, 0x3d, 0x74, 0x2e, 0x61, 0x30, 0x26, 0x26, 0x6e, + 0x2e, 0x61, 0x31, 0x3d, 0x3d, 0x74, 0x2e, 0x61, 0x31, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x6e, + 0x2c, 0x74, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x22, 0x41, 0x22, 0x2b, 0x6e, 0x2b, 0x22, 0x2c, 0x22, 0x2b, + 0x6e, 0x2b, 0x22, 0x20, 0x30, 0x20, 0x22, 0x2b, 0x20, 0x2b, 0x28, + 0x65, 0x3e, 0x71, 0x61, 0x29, 0x2b, 0x22, 0x2c, 0x31, 0x20, 0x22, + 0x2b, 0x74, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x75, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x51, 0x20, 0x30, + 0x2c, 0x30, 0x20, 0x22, 0x2b, 0x72, 0x7d, 0x76, 0x61, 0x72, 0x20, + 0x69, 0x3d, 0x6d, 0x72, 0x2c, 0x6f, 0x3d, 0x79, 0x72, 0x2c, 0x61, + 0x3d, 0x50, 0x6f, 0x2c, 0x63, 0x3d, 0x61, 0x6f, 0x2c, 0x6c, 0x3d, + 0x63, 0x6f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x61, 0x3d, 0x45, 0x74, 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x29, + 0x3a, 0x61, 0x7d, 0x2c, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x69, 0x3d, 0x45, 0x74, 0x28, + 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x69, 0x7d, 0x2c, 0x6e, 0x2e, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x6f, 0x3d, 0x45, 0x74, 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, + 0x6f, 0x7d, 0x2c, 0x6e, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, + 0x6e, 0x67, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x63, 0x3d, + 0x45, 0x74, 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x63, 0x7d, + 0x2c, 0x6e, 0x2e, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x67, 0x6c, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6c, 0x3d, 0x45, 0x74, 0x28, 0x74, + 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x6c, 0x7d, 0x2c, 0x6e, 0x7d, 0x2c, + 0x74, 0x61, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x64, 0x69, 0x61, 0x67, + 0x6f, 0x6e, 0x61, 0x6c, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6e, 0x2c, 0x75, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x69, 0x3d, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x75, 0x29, 0x2c, + 0x6f, 0x3d, 0x65, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x75, 0x29, 0x2c, 0x61, 0x3d, 0x28, + 0x69, 0x2e, 0x79, 0x2b, 0x6f, 0x2e, 0x79, 0x29, 0x2f, 0x32, 0x2c, + 0x63, 0x3d, 0x5b, 0x69, 0x2c, 0x7b, 0x78, 0x3a, 0x69, 0x2e, 0x78, + 0x2c, 0x79, 0x3a, 0x61, 0x7d, 0x2c, 0x7b, 0x78, 0x3a, 0x6f, 0x2e, + 0x78, 0x2c, 0x79, 0x3a, 0x61, 0x7d, 0x2c, 0x6f, 0x5d, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x3d, 0x63, 0x2e, 0x6d, + 0x61, 0x70, 0x28, 0x72, 0x29, 0x2c, 0x22, 0x4d, 0x22, 0x2b, 0x63, + 0x5b, 0x30, 0x5d, 0x2b, 0x22, 0x43, 0x22, 0x2b, 0x63, 0x5b, 0x31, + 0x5d, 0x2b, 0x22, 0x20, 0x22, 0x2b, 0x63, 0x5b, 0x32, 0x5d, 0x2b, + 0x22, 0x20, 0x22, 0x2b, 0x63, 0x5b, 0x33, 0x5d, 0x7d, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x6d, 0x72, 0x2c, 0x65, 0x3d, 0x79, 0x72, + 0x2c, 0x72, 0x3d, 0x55, 0x6f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x74, 0x3d, 0x45, 0x74, 0x28, 0x65, 0x29, + 0x2c, 0x6e, 0x29, 0x3a, 0x74, 0x7d, 0x2c, 0x6e, 0x2e, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, 0x3d, + 0x45, 0x74, 0x28, 0x74, 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x65, 0x7d, + 0x2c, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x72, 0x3d, 0x74, 0x2c, + 0x6e, 0x29, 0x3a, 0x72, 0x7d, 0x2c, 0x6e, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x6f, 0x6e, + 0x61, 0x6c, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6c, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x74, 0x61, 0x2e, 0x73, 0x76, 0x67, + 0x2e, 0x64, 0x69, 0x61, 0x67, 0x6f, 0x6e, 0x61, 0x6c, 0x28, 0x29, + 0x2c, 0x74, 0x3d, 0x55, 0x6f, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x65, 0x28, 0x6a, 0x6f, 0x28, 0x74, 0x3d, 0x6e, 0x29, 0x29, 0x3a, + 0x74, 0x7d, 0x2c, 0x6e, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x73, 0x76, + 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x6e, 0x2c, + 0x72, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x28, 0x7a, + 0x6c, 0x2e, 0x67, 0x65, 0x74, 0x28, 0x74, 0x2e, 0x63, 0x61, 0x6c, + 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x72, 0x29, + 0x29, 0x7c, 0x7c, 0x4f, 0x6f, 0x29, 0x28, 0x65, 0x2e, 0x63, 0x61, + 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x72, + 0x29, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x48, 0x6f, + 0x2c, 0x65, 0x3d, 0x46, 0x6f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x74, 0x3d, 0x45, 0x74, 0x28, 0x65, 0x29, 0x2c, 0x6e, + 0x29, 0x3a, 0x74, 0x7d, 0x2c, 0x6e, 0x2e, 0x73, 0x69, 0x7a, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x65, 0x3d, 0x45, 0x74, 0x28, 0x74, + 0x29, 0x2c, 0x6e, 0x29, 0x3a, 0x65, 0x7d, 0x2c, 0x6e, 0x7d, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x7a, 0x6c, 0x3d, 0x74, 0x61, 0x2e, 0x6d, + 0x61, 0x70, 0x28, 0x7b, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x3a, + 0x4f, 0x6f, 0x2c, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x3a, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, + 0x71, 0x72, 0x74, 0x28, 0x6e, 0x2f, 0x35, 0x29, 0x2f, 0x32, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x4d, 0x22, 0x2b, 0x2d, + 0x33, 0x2a, 0x74, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x2d, 0x74, 0x2b, + 0x22, 0x48, 0x22, 0x2b, 0x2d, 0x74, 0x2b, 0x22, 0x56, 0x22, 0x2b, + 0x2d, 0x33, 0x2a, 0x74, 0x2b, 0x22, 0x48, 0x22, 0x2b, 0x74, 0x2b, + 0x22, 0x56, 0x22, 0x2b, 0x2d, 0x74, 0x2b, 0x22, 0x48, 0x22, 0x2b, + 0x33, 0x2a, 0x74, 0x2b, 0x22, 0x56, 0x22, 0x2b, 0x74, 0x2b, 0x22, + 0x48, 0x22, 0x2b, 0x74, 0x2b, 0x22, 0x56, 0x22, 0x2b, 0x33, 0x2a, + 0x74, 0x2b, 0x22, 0x48, 0x22, 0x2b, 0x2d, 0x74, 0x2b, 0x22, 0x56, + 0x22, 0x2b, 0x74, 0x2b, 0x22, 0x48, 0x22, 0x2b, 0x2d, 0x33, 0x2a, + 0x74, 0x2b, 0x22, 0x5a, 0x22, 0x7d, 0x2c, 0x64, 0x69, 0x61, 0x6d, + 0x6f, 0x6e, 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x6e, + 0x2f, 0x28, 0x32, 0x2a, 0x4c, 0x6c, 0x29, 0x29, 0x2c, 0x65, 0x3d, + 0x74, 0x2a, 0x4c, 0x6c, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x22, 0x4d, 0x30, 0x2c, 0x22, 0x2b, 0x2d, 0x74, 0x2b, 0x22, 0x4c, + 0x22, 0x2b, 0x65, 0x2b, 0x22, 0x2c, 0x30, 0x20, 0x30, 0x2c, 0x22, + 0x2b, 0x74, 0x2b, 0x22, 0x20, 0x22, 0x2b, 0x2d, 0x65, 0x2b, 0x22, + 0x2c, 0x30, 0x5a, 0x22, 0x7d, 0x2c, 0x73, 0x71, 0x75, 0x61, 0x72, + 0x65, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x6e, 0x29, 0x2f, + 0x32, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x4d, 0x22, + 0x2b, 0x2d, 0x74, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x2d, 0x74, 0x2b, + 0x22, 0x4c, 0x22, 0x2b, 0x74, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x2d, + 0x74, 0x2b, 0x22, 0x20, 0x22, 0x2b, 0x74, 0x2b, 0x22, 0x2c, 0x22, + 0x2b, 0x74, 0x2b, 0x22, 0x20, 0x22, 0x2b, 0x2d, 0x74, 0x2b, 0x22, + 0x2c, 0x22, 0x2b, 0x74, 0x2b, 0x22, 0x5a, 0x22, 0x7d, 0x2c, 0x22, + 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x64, 0x6f, + 0x77, 0x6e, 0x22, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, 0x28, 0x6e, + 0x2f, 0x71, 0x6c, 0x29, 0x2c, 0x65, 0x3d, 0x74, 0x2a, 0x71, 0x6c, + 0x2f, 0x32, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x4d, + 0x30, 0x2c, 0x22, 0x2b, 0x65, 0x2b, 0x22, 0x4c, 0x22, 0x2b, 0x74, + 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x2d, 0x65, 0x2b, 0x22, 0x20, 0x22, + 0x2b, 0x2d, 0x74, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x2d, 0x65, 0x2b, + 0x22, 0x5a, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x72, 0x69, 0x61, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x75, 0x70, 0x22, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, + 0x72, 0x74, 0x28, 0x6e, 0x2f, 0x71, 0x6c, 0x29, 0x2c, 0x65, 0x3d, + 0x74, 0x2a, 0x71, 0x6c, 0x2f, 0x32, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x22, 0x4d, 0x30, 0x2c, 0x22, 0x2b, 0x2d, 0x65, 0x2b, + 0x22, 0x4c, 0x22, 0x2b, 0x74, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x65, + 0x2b, 0x22, 0x20, 0x22, 0x2b, 0x2d, 0x74, 0x2b, 0x22, 0x2c, 0x22, + 0x2b, 0x65, 0x2b, 0x22, 0x5a, 0x22, 0x7d, 0x7d, 0x29, 0x3b, 0x74, + 0x61, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x73, 0x79, 0x6d, 0x62, 0x6f, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x3d, 0x7a, 0x6c, 0x2e, 0x6b, + 0x65, 0x79, 0x73, 0x28, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x71, + 0x6c, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x73, 0x71, 0x72, 0x74, + 0x28, 0x33, 0x29, 0x2c, 0x4c, 0x6c, 0x3d, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x74, 0x61, 0x6e, 0x28, 0x33, 0x30, 0x2a, 0x44, 0x61, 0x29, + 0x3b, 0x5f, 0x61, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x3d, 0x54, 0x6c, 0x7c, + 0x7c, 0x2b, 0x2b, 0x55, 0x6c, 0x2c, 0x75, 0x3d, 0x58, 0x6f, 0x28, + 0x6e, 0x29, 0x2c, 0x69, 0x3d, 0x5b, 0x5d, 0x2c, 0x6f, 0x3d, 0x52, + 0x6c, 0x7c, 0x7c, 0x7b, 0x74, 0x69, 0x6d, 0x65, 0x3a, 0x44, 0x61, + 0x74, 0x65, 0x2e, 0x6e, 0x6f, 0x77, 0x28, 0x29, 0x2c, 0x65, 0x61, + 0x73, 0x65, 0x3a, 0x53, 0x75, 0x2c, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x3a, 0x30, 0x2c, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x3a, 0x32, 0x35, 0x30, 0x7d, 0x2c, 0x61, 0x3d, 0x2d, 0x31, 0x2c, + 0x63, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x61, 0x3c, 0x63, 0x3b, 0x29, 0x7b, + 0x69, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x3d, 0x5b, 0x5d, + 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6c, + 0x3d, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x61, 0x5d, 0x2c, 0x73, 0x3d, + 0x2d, 0x31, 0x2c, 0x66, 0x3d, 0x6c, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x73, 0x3c, 0x66, 0x3b, 0x29, 0x28, + 0x65, 0x3d, 0x6c, 0x5b, 0x73, 0x5d, 0x29, 0x26, 0x26, 0x24, 0x6f, + 0x28, 0x65, 0x2c, 0x73, 0x2c, 0x75, 0x2c, 0x72, 0x2c, 0x6f, 0x29, + 0x2c, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x65, 0x29, 0x7d, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x59, 0x6f, 0x28, 0x69, + 0x2c, 0x75, 0x2c, 0x72, 0x29, 0x7d, 0x2c, 0x5f, 0x61, 0x2e, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x65, 0x61, 0x63, 0x68, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, + 0x6e, 0x3f, 0x44, 0x6c, 0x3a, 0x49, 0x6f, 0x28, 0x58, 0x6f, 0x28, + 0x6e, 0x29, 0x29, 0x29, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x54, + 0x6c, 0x2c, 0x52, 0x6c, 0x2c, 0x44, 0x6c, 0x3d, 0x49, 0x6f, 0x28, + 0x58, 0x6f, 0x28, 0x29, 0x29, 0x2c, 0x50, 0x6c, 0x3d, 0x5b, 0x5d, + 0x2c, 0x55, 0x6c, 0x3d, 0x30, 0x3b, 0x50, 0x6c, 0x2e, 0x63, 0x61, + 0x6c, 0x6c, 0x3d, 0x5f, 0x61, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x2c, + 0x50, 0x6c, 0x2e, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3d, 0x5f, 0x61, + 0x2e, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2c, 0x50, 0x6c, 0x2e, 0x6e, + 0x6f, 0x64, 0x65, 0x3d, 0x5f, 0x61, 0x2e, 0x6e, 0x6f, 0x64, 0x65, + 0x2c, 0x50, 0x6c, 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x3d, 0x5f, 0x61, + 0x2e, 0x73, 0x69, 0x7a, 0x65, 0x2c, 0x74, 0x61, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x26, 0x26, + 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x3f, 0x54, 0x6c, 0x3f, 0x6e, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x3a, 0x6e, + 0x3a, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7d, 0x2c, 0x74, 0x61, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x50, 0x6c, 0x2c, 0x50, 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, + 0x72, 0x2c, 0x75, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x64, + 0x2c, 0x69, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, 0x6f, 0x3d, 0x5b, 0x5d, + 0x3b, 0x6e, 0x3d, 0x4e, 0x28, 0x6e, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, 0x2d, 0x31, 0x2c, 0x63, + 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x2b, 0x2b, 0x61, 0x3c, 0x63, 0x3b, 0x29, 0x7b, 0x6f, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x3d, 0x5b, 0x5d, 0x29, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, + 0x74, 0x68, 0x69, 0x73, 0x5b, 0x61, 0x5d, 0x2c, 0x73, 0x3d, 0x2d, + 0x31, 0x2c, 0x66, 0x3d, 0x6c, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x2b, 0x2b, 0x73, 0x3c, 0x66, 0x3b, 0x29, 0x28, 0x72, + 0x3d, 0x6c, 0x5b, 0x73, 0x5d, 0x29, 0x26, 0x26, 0x28, 0x65, 0x3d, + 0x6e, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x72, 0x2c, 0x72, 0x2e, + 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x73, 0x2c, + 0x61, 0x29, 0x29, 0x3f, 0x28, 0x22, 0x5f, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x5f, 0x22, 0x69, 0x6e, 0x20, 0x72, 0x26, 0x26, 0x28, + 0x65, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x3d, + 0x72, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x29, + 0x2c, 0x24, 0x6f, 0x28, 0x65, 0x2c, 0x73, 0x2c, 0x69, 0x2c, 0x75, + 0x2c, 0x72, 0x5b, 0x69, 0x5d, 0x5b, 0x75, 0x5d, 0x29, 0x2c, 0x74, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x65, 0x29, 0x29, 0x3a, 0x74, + 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x29, + 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x59, 0x6f, 0x28, + 0x6f, 0x2c, 0x69, 0x2c, 0x75, 0x29, 0x7d, 0x2c, 0x50, 0x6c, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, + 0x2c, 0x69, 0x2c, 0x6f, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, + 0x64, 0x2c, 0x61, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, 0x63, 0x3d, 0x5b, + 0x5d, 0x3b, 0x6e, 0x3d, 0x43, 0x28, 0x6e, 0x29, 0x3b, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x2d, 0x31, 0x2c, + 0x73, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x6c, 0x3c, 0x73, 0x3b, 0x29, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x66, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x5b, 0x6c, 0x5d, 0x2c, 0x68, 0x3d, 0x2d, 0x31, 0x2c, + 0x67, 0x3d, 0x66, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, + 0x2b, 0x2b, 0x68, 0x3c, 0x67, 0x3b, 0x29, 0x69, 0x66, 0x28, 0x72, + 0x3d, 0x66, 0x5b, 0x68, 0x5d, 0x29, 0x7b, 0x69, 0x3d, 0x72, 0x5b, + 0x61, 0x5d, 0x5b, 0x6f, 0x5d, 0x2c, 0x65, 0x3d, 0x6e, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x72, 0x2c, 0x72, 0x2e, 0x5f, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x68, 0x2c, 0x6c, 0x29, 0x2c, + 0x63, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x3d, 0x5b, 0x5d, + 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x70, + 0x3d, 0x2d, 0x31, 0x2c, 0x76, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3b, 0x2b, 0x2b, 0x70, 0x3c, 0x76, 0x3b, 0x29, + 0x28, 0x75, 0x3d, 0x65, 0x5b, 0x70, 0x5d, 0x29, 0x26, 0x26, 0x24, + 0x6f, 0x28, 0x75, 0x2c, 0x70, 0x2c, 0x61, 0x2c, 0x6f, 0x2c, 0x69, + 0x29, 0x2c, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x75, 0x29, + 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x59, 0x6f, 0x28, + 0x63, 0x2c, 0x61, 0x2c, 0x6f, 0x29, 0x7d, 0x2c, 0x50, 0x6c, 0x2e, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x75, 0x3d, 0x5b, 0x5d, + 0x3b, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x21, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x26, + 0x26, 0x28, 0x6e, 0x3d, 0x4f, 0x28, 0x6e, 0x29, 0x29, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x30, 0x2c, + 0x6f, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x6f, 0x3e, 0x69, 0x3b, 0x69, 0x2b, 0x2b, 0x29, + 0x7b, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x74, 0x3d, 0x5b, + 0x5d, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x69, 0x5d, 0x2c, 0x61, + 0x3d, 0x30, 0x2c, 0x63, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3b, 0x63, 0x3e, 0x61, 0x3b, 0x61, 0x2b, 0x2b, 0x29, + 0x28, 0x72, 0x3d, 0x65, 0x5b, 0x61, 0x5d, 0x29, 0x26, 0x26, 0x6e, + 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x72, 0x2c, 0x72, 0x2e, 0x5f, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x61, 0x2c, 0x69, + 0x29, 0x26, 0x26, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x72, + 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x59, 0x6f, + 0x28, 0x75, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x69, 0x64, 0x29, 0x7d, 0x2c, 0x50, 0x6c, 0x2e, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x64, 0x2c, 0x72, + 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, 0x3f, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x28, 0x29, 0x5b, 0x72, + 0x5d, 0x5b, 0x65, 0x5d, 0x2e, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x2e, + 0x67, 0x65, 0x74, 0x28, 0x6e, 0x29, 0x3a, 0x59, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x74, 0x3f, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, + 0x7b, 0x74, 0x5b, 0x72, 0x5d, 0x5b, 0x65, 0x5d, 0x2e, 0x74, 0x77, + 0x65, 0x65, 0x6e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, + 0x6e, 0x29, 0x7d, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x75, 0x29, 0x7b, 0x75, 0x5b, 0x72, 0x5d, 0x5b, 0x65, + 0x5d, 0x2e, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x2e, 0x73, 0x65, 0x74, + 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7d, 0x29, 0x7d, 0x2c, 0x50, 0x6c, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x29, 0x7b, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x61, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x72, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x4e, 0x53, 0x28, 0x61, 0x2e, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x2c, 0x61, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x3f, 0x65, 0x3a, 0x28, 0x6e, + 0x2b, 0x3d, 0x22, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, + 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, 0x61, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x21, 0x3d, + 0x3d, 0x6e, 0x26, 0x26, 0x28, 0x74, 0x3d, 0x6f, 0x28, 0x65, 0x2c, + 0x6e, 0x29, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, + 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x28, + 0x61, 0x2c, 0x74, 0x28, 0x6e, 0x29, 0x29, 0x7d, 0x29, 0x7d, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x6e, 0x3f, 0x72, 0x3a, 0x28, + 0x6e, 0x2b, 0x3d, 0x22, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x2c, 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x67, 0x65, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x53, + 0x28, 0x61, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, 0x61, 0x2e, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x65, 0x21, 0x3d, 0x3d, 0x6e, 0x26, 0x26, 0x28, + 0x74, 0x3d, 0x6f, 0x28, 0x65, 0x2c, 0x6e, 0x29, 0x2c, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x53, 0x28, 0x61, 0x2e, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x2c, 0x61, 0x2e, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x2c, 0x74, 0x28, 0x6e, 0x29, 0x29, 0x7d, 0x29, 0x7d, 0x29, + 0x7d, 0x69, 0x66, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, + 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x20, 0x69, 0x6e, 0x20, + 0x6e, 0x29, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x74, 0x2c, 0x6e, 0x5b, 0x74, 0x5d, 0x29, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x7d, 0x76, + 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x3d, 0x3d, 0x6e, 0x3f, 0x48, 0x75, + 0x3a, 0x6d, 0x75, 0x2c, 0x61, 0x3d, 0x74, 0x61, 0x2e, 0x6e, 0x73, + 0x2e, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x79, 0x28, 0x6e, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5a, 0x6f, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2c, 0x22, 0x61, 0x74, 0x74, 0x72, 0x2e, + 0x22, 0x2b, 0x6e, 0x2c, 0x74, 0x2c, 0x61, 0x2e, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x3f, 0x69, 0x3a, 0x75, 0x29, 0x7d, 0x2c, 0x50, 0x6c, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x54, 0x77, 0x65, 0x65, 0x6e, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x65, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x72, 0x3d, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x65, 0x2c, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x28, 0x75, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x72, 0x26, 0x26, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x28, 0x75, 0x2c, 0x72, 0x28, 0x6e, 0x29, 0x29, + 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x72, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x72, 0x3d, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x6e, 0x2c, 0x65, 0x2c, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x67, 0x65, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x4e, 0x53, 0x28, 0x75, 0x2e, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x2c, 0x75, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x29, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x26, 0x26, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x53, 0x28, 0x75, + 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, 0x75, 0x2e, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x2c, 0x72, 0x28, 0x6e, 0x29, 0x29, 0x7d, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x74, 0x61, 0x2e, 0x6e, 0x73, + 0x2e, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x79, 0x28, 0x6e, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x28, 0x22, 0x61, 0x74, + 0x74, 0x72, 0x2e, 0x22, 0x2b, 0x6e, 0x2c, 0x75, 0x2e, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x3f, 0x72, 0x3a, 0x65, 0x29, 0x7d, 0x2c, 0x50, + 0x6c, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x2c, 0x72, + 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x75, 0x28, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x6e, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, + 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x65, 0x3f, 0x75, 0x3a, 0x28, 0x65, + 0x2b, 0x3d, 0x22, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x2c, + 0x69, 0x3d, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x2e, 0x67, + 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x53, + 0x74, 0x79, 0x6c, 0x65, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x6e, + 0x75, 0x6c, 0x6c, 0x29, 0x2e, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x28, + 0x6e, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, + 0x21, 0x3d, 0x3d, 0x65, 0x26, 0x26, 0x28, 0x75, 0x3d, 0x6d, 0x75, + 0x28, 0x69, 0x2c, 0x65, 0x29, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x73, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x6e, 0x2c, 0x75, + 0x28, 0x74, 0x29, 0x2c, 0x72, 0x29, 0x7d, 0x29, 0x7d, 0x29, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x6f, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x69, 0x66, 0x28, 0x33, 0x3e, 0x6f, 0x29, 0x7b, 0x69, 0x66, + 0x28, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x21, 0x3d, + 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x29, 0x7b, 0x32, + 0x3e, 0x6f, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x22, 0x22, 0x29, 0x3b, + 0x66, 0x6f, 0x72, 0x28, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x29, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, + 0x72, 0x2c, 0x6e, 0x5b, 0x72, 0x5d, 0x2c, 0x65, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x7d, + 0x72, 0x3d, 0x22, 0x22, 0x7d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x5a, 0x6f, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x22, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x22, 0x2b, 0x6e, 0x2c, 0x65, 0x2c, + 0x69, 0x29, 0x7d, 0x2c, 0x50, 0x6c, 0x2e, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x54, 0x77, 0x65, 0x65, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x2c, 0x72, 0x29, + 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, + 0x28, 0x75, 0x2c, 0x69, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6f, + 0x3d, 0x65, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x74, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x29, 0x2e, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, + 0x74, 0x65, 0x64, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2e, 0x67, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x28, 0x6e, 0x29, 0x29, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x26, 0x26, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x73, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x28, 0x6e, 0x2c, + 0x6f, 0x28, 0x74, 0x29, 0x2c, 0x72, 0x29, 0x7d, 0x7d, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, + 0x33, 0x26, 0x26, 0x28, 0x72, 0x3d, 0x22, 0x22, 0x29, 0x2c, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x28, 0x22, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x22, 0x2b, 0x6e, 0x2c, 0x75, + 0x29, 0x7d, 0x2c, 0x50, 0x6c, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5a, 0x6f, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2c, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, + 0x2c, 0x6e, 0x2c, 0x56, 0x6f, 0x29, 0x7d, 0x2c, 0x50, 0x6c, 0x2e, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x6e, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x65, 0x61, 0x63, 0x68, + 0x28, 0x22, 0x65, 0x6e, 0x64, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x74, 0x3b, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x6e, 0x5d, 0x2e, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x3c, 0x32, 0x26, 0x26, 0x28, 0x74, 0x3d, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x4e, 0x6f, 0x64, 0x65, 0x29, 0x26, 0x26, 0x74, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x7d, 0x29, 0x7d, 0x2c, 0x50, 0x6c, 0x2e, + 0x65, 0x61, 0x73, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, + 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, 0x64, 0x2c, 0x65, 0x3d, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x31, 0x3f, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x28, 0x29, 0x5b, 0x65, 0x5d, + 0x5b, 0x74, 0x5d, 0x2e, 0x65, 0x61, 0x73, 0x65, 0x3a, 0x28, 0x22, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x21, 0x3d, + 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, 0x26, 0x26, 0x28, + 0x6e, 0x3d, 0x74, 0x61, 0x2e, 0x65, 0x61, 0x73, 0x65, 0x2e, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x28, 0x74, 0x61, 0x2c, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x29, 0x2c, 0x59, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x72, 0x29, 0x7b, 0x72, 0x5b, 0x65, 0x5d, 0x5b, + 0x74, 0x5d, 0x2e, 0x65, 0x61, 0x73, 0x65, 0x3d, 0x6e, 0x7d, 0x29, + 0x29, 0x7d, 0x2c, 0x50, 0x6c, 0x2e, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x69, 0x64, 0x2c, 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3c, 0x31, 0x3f, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x6f, + 0x64, 0x65, 0x28, 0x29, 0x5b, 0x65, 0x5d, 0x5b, 0x74, 0x5d, 0x2e, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x3a, 0x59, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, + 0x3f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x72, + 0x2c, 0x75, 0x2c, 0x69, 0x29, 0x7b, 0x72, 0x5b, 0x65, 0x5d, 0x5b, + 0x74, 0x5d, 0x2e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x3d, 0x2b, 0x6e, + 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x72, 0x2c, 0x72, 0x2e, 0x5f, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x75, 0x2c, 0x69, + 0x29, 0x7d, 0x3a, 0x28, 0x6e, 0x3d, 0x2b, 0x6e, 0x2c, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x72, 0x29, 0x7b, 0x72, + 0x5b, 0x65, 0x5d, 0x5b, 0x74, 0x5d, 0x2e, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x3d, 0x6e, 0x7d, 0x29, 0x29, 0x7d, 0x2c, 0x50, 0x6c, 0x2e, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, + 0x64, 0x2c, 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x31, + 0x3f, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x28, + 0x29, 0x5b, 0x65, 0x5d, 0x5b, 0x74, 0x5d, 0x2e, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x59, 0x28, 0x74, 0x68, 0x69, + 0x73, 0x2c, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6e, + 0x3f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x72, + 0x2c, 0x75, 0x2c, 0x69, 0x29, 0x7b, 0x72, 0x5b, 0x65, 0x5d, 0x5b, + 0x74, 0x5d, 0x2e, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x31, + 0x2c, 0x6e, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x72, 0x2c, 0x72, + 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x5f, 0x2c, 0x75, + 0x2c, 0x69, 0x29, 0x29, 0x7d, 0x3a, 0x28, 0x6e, 0x3d, 0x4d, 0x61, + 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x31, 0x2c, 0x6e, 0x29, + 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x72, + 0x29, 0x7b, 0x72, 0x5b, 0x65, 0x5d, 0x5b, 0x74, 0x5d, 0x2e, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x6e, 0x7d, 0x29, + 0x29, 0x7d, 0x2c, 0x50, 0x6c, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x69, 0x64, 0x2c, 0x72, 0x3d, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x3b, 0x69, 0x66, 0x28, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3c, 0x32, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, 0x52, 0x6c, 0x2c, + 0x69, 0x3d, 0x54, 0x6c, 0x3b, 0x74, 0x72, 0x79, 0x7b, 0x54, 0x6c, + 0x3d, 0x65, 0x2c, 0x59, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x75, + 0x2c, 0x69, 0x29, 0x7b, 0x52, 0x6c, 0x3d, 0x74, 0x5b, 0x72, 0x5d, + 0x5b, 0x65, 0x5d, 0x2c, 0x6e, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x74, 0x2c, 0x74, 0x2e, 0x5f, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x5f, 0x2c, 0x75, 0x2c, 0x69, 0x29, 0x7d, 0x29, 0x7d, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x7b, 0x52, 0x6c, 0x3d, 0x75, 0x2c, + 0x54, 0x6c, 0x3d, 0x69, 0x7d, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, + 0x59, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x75, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x3d, 0x75, 0x5b, 0x72, 0x5d, 0x5b, 0x65, 0x5d, 0x3b, + 0x28, 0x69, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x7c, 0x7c, 0x28, + 0x69, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x3d, 0x74, 0x61, 0x2e, + 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x28, 0x22, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x22, 0x2c, 0x22, 0x65, 0x6e, 0x64, 0x22, + 0x2c, 0x22, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, + 0x22, 0x29, 0x29, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, + 0x29, 0x7d, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x7d, 0x2c, 0x50, 0x6c, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x6f, + 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x2c, 0x74, 0x2c, 0x65, + 0x2c, 0x72, 0x2c, 0x75, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x69, + 0x64, 0x2c, 0x69, 0x3d, 0x2b, 0x2b, 0x55, 0x6c, 0x2c, 0x6f, 0x3d, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x2c, 0x61, 0x3d, 0x5b, 0x5d, 0x2c, 0x63, 0x3d, + 0x30, 0x2c, 0x6c, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x6c, 0x3e, 0x63, 0x3b, 0x63, 0x2b, + 0x2b, 0x29, 0x7b, 0x61, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x6e, + 0x3d, 0x5b, 0x5d, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x5b, 0x63, 0x5d, + 0x2c, 0x73, 0x3d, 0x30, 0x2c, 0x66, 0x3d, 0x74, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x66, 0x3e, 0x73, 0x3b, 0x73, 0x2b, + 0x2b, 0x29, 0x28, 0x65, 0x3d, 0x74, 0x5b, 0x73, 0x5d, 0x29, 0x26, + 0x26, 0x28, 0x72, 0x3d, 0x65, 0x5b, 0x6f, 0x5d, 0x5b, 0x75, 0x5d, + 0x2c, 0x24, 0x6f, 0x28, 0x65, 0x2c, 0x73, 0x2c, 0x6f, 0x2c, 0x69, + 0x2c, 0x7b, 0x74, 0x69, 0x6d, 0x65, 0x3a, 0x72, 0x2e, 0x74, 0x69, + 0x6d, 0x65, 0x2c, 0x65, 0x61, 0x73, 0x65, 0x3a, 0x72, 0x2e, 0x65, + 0x61, 0x73, 0x65, 0x2c, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x3a, 0x72, + 0x2e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x2b, 0x72, 0x2e, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, 0x2e, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x29, 0x29, 0x2c, 0x6e, 0x2e, 0x70, + 0x75, 0x73, 0x68, 0x28, 0x65, 0x29, 0x7d, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x59, 0x6f, 0x28, 0x61, 0x2c, 0x6f, 0x2c, 0x69, + 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x61, + 0x78, 0x69, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x65, 0x61, + 0x63, 0x68, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x2c, 0x6c, 0x3d, + 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x2c, 0x73, 0x3d, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x5f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x5f, 0x7c, + 0x7c, 0x65, 0x2c, 0x66, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, + 0x5f, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x5f, 0x3d, 0x65, 0x2e, + 0x63, 0x6f, 0x70, 0x79, 0x28, 0x29, 0x2c, 0x68, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x3d, 0x3d, 0x63, 0x3f, 0x66, 0x2e, 0x74, 0x69, 0x63, + 0x6b, 0x73, 0x3f, 0x66, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x2e, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, 0x66, 0x2c, 0x61, 0x29, 0x3a, + 0x66, 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x28, 0x29, 0x3a, + 0x63, 0x2c, 0x67, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3d, 0x3d, 0x74, + 0x3f, 0x66, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x3f, 0x66, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x46, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x28, + 0x66, 0x2c, 0x61, 0x29, 0x3a, 0x79, 0x3a, 0x74, 0x2c, 0x70, 0x3d, + 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, + 0x28, 0x22, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x22, 0x29, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x28, 0x68, 0x2c, 0x66, 0x29, 0x2c, 0x76, 0x3d, + 0x70, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, 0x69, + 0x6e, 0x73, 0x65, 0x72, 0x74, 0x28, 0x22, 0x67, 0x22, 0x2c, 0x22, + 0x2e, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x22, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, + 0x2c, 0x22, 0x74, 0x69, 0x63, 0x6b, 0x22, 0x29, 0x2e, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x28, 0x22, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, + 0x79, 0x22, 0x2c, 0x43, 0x61, 0x29, 0x2c, 0x64, 0x3d, 0x74, 0x61, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x70, 0x2e, 0x65, 0x78, 0x69, 0x74, 0x28, 0x29, 0x29, 0x2e, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x6f, 0x70, 0x61, 0x63, + 0x69, 0x74, 0x79, 0x22, 0x2c, 0x43, 0x61, 0x29, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x29, 0x2c, 0x6d, 0x3d, 0x74, 0x61, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x70, 0x2e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x28, 0x29, 0x29, + 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x6f, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x22, 0x2c, 0x31, 0x29, 0x2c, 0x4d, 0x3d, + 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, 0x78, 0x28, 0x75, 0x2c, + 0x30, 0x29, 0x2b, 0x6f, 0x2c, 0x78, 0x3d, 0x55, 0x69, 0x28, 0x66, + 0x29, 0x2c, 0x62, 0x3d, 0x6c, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x22, 0x2e, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x22, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, 0x5b, + 0x30, 0x5d, 0x29, 0x2c, 0x5f, 0x3d, 0x28, 0x62, 0x2e, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, + 0x64, 0x28, 0x22, 0x70, 0x61, 0x74, 0x68, 0x22, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x22, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, + 0x2c, 0x22, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x29, 0x2c, + 0x74, 0x61, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x62, 0x29, 0x29, 0x3b, 0x76, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x28, 0x22, 0x6c, 0x69, 0x6e, 0x65, 0x22, + 0x29, 0x2c, 0x76, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, + 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x3b, 0x76, 0x61, 0x72, + 0x20, 0x77, 0x2c, 0x53, 0x2c, 0x6b, 0x2c, 0x45, 0x2c, 0x41, 0x3d, + 0x76, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x6c, + 0x69, 0x6e, 0x65, 0x22, 0x29, 0x2c, 0x4e, 0x3d, 0x6d, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x6c, 0x69, 0x6e, 0x65, + 0x22, 0x29, 0x2c, 0x43, 0x3d, 0x70, 0x2e, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x28, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, + 0x74, 0x65, 0x78, 0x74, 0x28, 0x67, 0x29, 0x2c, 0x7a, 0x3d, 0x76, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x22, 0x29, 0x2c, 0x71, 0x3d, 0x6d, 0x2e, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, + 0x29, 0x2c, 0x4c, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, 0x3d, 0x3d, + 0x3d, 0x72, 0x7c, 0x7c, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x22, 0x3d, + 0x3d, 0x3d, 0x72, 0x3f, 0x2d, 0x31, 0x3a, 0x31, 0x3b, 0x69, 0x66, + 0x28, 0x22, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x22, 0x3d, 0x3d, + 0x3d, 0x72, 0x7c, 0x7c, 0x22, 0x74, 0x6f, 0x70, 0x22, 0x3d, 0x3d, + 0x3d, 0x72, 0x3f, 0x28, 0x6e, 0x3d, 0x42, 0x6f, 0x2c, 0x77, 0x3d, + 0x22, 0x78, 0x22, 0x2c, 0x6b, 0x3d, 0x22, 0x79, 0x22, 0x2c, 0x53, + 0x3d, 0x22, 0x78, 0x32, 0x22, 0x2c, 0x45, 0x3d, 0x22, 0x79, 0x32, + 0x22, 0x2c, 0x43, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, 0x64, + 0x79, 0x22, 0x2c, 0x30, 0x3e, 0x4c, 0x3f, 0x22, 0x30, 0x65, 0x6d, + 0x22, 0x3a, 0x22, 0x2e, 0x37, 0x31, 0x65, 0x6d, 0x22, 0x29, 0x2e, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x74, 0x65, 0x78, 0x74, + 0x2d, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x22, 0x2c, 0x22, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x22, 0x29, 0x2c, 0x5f, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x22, 0x64, 0x22, 0x2c, 0x22, 0x4d, 0x22, + 0x2b, 0x78, 0x5b, 0x30, 0x5d, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x4c, + 0x2a, 0x69, 0x2b, 0x22, 0x56, 0x30, 0x48, 0x22, 0x2b, 0x78, 0x5b, + 0x31, 0x5d, 0x2b, 0x22, 0x56, 0x22, 0x2b, 0x4c, 0x2a, 0x69, 0x29, + 0x29, 0x3a, 0x28, 0x6e, 0x3d, 0x57, 0x6f, 0x2c, 0x77, 0x3d, 0x22, + 0x79, 0x22, 0x2c, 0x6b, 0x3d, 0x22, 0x78, 0x22, 0x2c, 0x53, 0x3d, + 0x22, 0x79, 0x32, 0x22, 0x2c, 0x45, 0x3d, 0x22, 0x78, 0x32, 0x22, + 0x2c, 0x43, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, 0x64, 0x79, + 0x22, 0x2c, 0x22, 0x2e, 0x33, 0x32, 0x65, 0x6d, 0x22, 0x29, 0x2e, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x74, 0x65, 0x78, 0x74, + 0x2d, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x22, 0x2c, 0x30, 0x3e, + 0x4c, 0x3f, 0x22, 0x65, 0x6e, 0x64, 0x22, 0x3a, 0x22, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x22, 0x29, 0x2c, 0x5f, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x22, 0x64, 0x22, 0x2c, 0x22, 0x4d, 0x22, 0x2b, 0x4c, + 0x2a, 0x69, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x78, 0x5b, 0x30, 0x5d, + 0x2b, 0x22, 0x48, 0x30, 0x56, 0x22, 0x2b, 0x78, 0x5b, 0x31, 0x5d, + 0x2b, 0x22, 0x48, 0x22, 0x2b, 0x4c, 0x2a, 0x69, 0x29, 0x29, 0x2c, + 0x41, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x45, 0x2c, 0x4c, 0x2a, + 0x75, 0x29, 0x2c, 0x7a, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x6b, + 0x2c, 0x4c, 0x2a, 0x4d, 0x29, 0x2c, 0x4e, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x53, 0x2c, 0x30, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, + 0x28, 0x45, 0x2c, 0x4c, 0x2a, 0x75, 0x29, 0x2c, 0x71, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x77, 0x2c, 0x30, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x6b, 0x2c, 0x4c, 0x2a, 0x4d, 0x29, 0x2c, 0x66, + 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x54, 0x3d, 0x66, 0x2c, 0x52, 0x3d, + 0x54, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x64, + 0x28, 0x29, 0x2f, 0x32, 0x3b, 0x73, 0x3d, 0x66, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x54, 0x28, 0x6e, 0x29, 0x2b, + 0x52, 0x7d, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x73, 0x2e, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x3f, 0x73, 0x3d, + 0x66, 0x3a, 0x64, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, + 0x66, 0x2c, 0x73, 0x29, 0x3b, 0x76, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x28, 0x6e, 0x2c, 0x73, 0x2c, 0x66, 0x29, 0x2c, 0x6d, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x6e, 0x2c, 0x66, 0x2c, 0x66, 0x29, 0x7d, + 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x65, 0x3d, 0x74, + 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x6c, 0x69, 0x6e, + 0x65, 0x61, 0x72, 0x28, 0x29, 0x2c, 0x72, 0x3d, 0x6a, 0x6c, 0x2c, + 0x75, 0x3d, 0x36, 0x2c, 0x69, 0x3d, 0x36, 0x2c, 0x6f, 0x3d, 0x33, + 0x2c, 0x61, 0x3d, 0x5b, 0x31, 0x30, 0x5d, 0x2c, 0x63, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, + 0x28, 0x65, 0x3d, 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x65, 0x7d, 0x2c, + 0x6e, 0x2e, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3f, 0x28, 0x72, 0x3d, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x46, 0x6c, + 0x3f, 0x74, 0x2b, 0x22, 0x22, 0x3a, 0x6a, 0x6c, 0x2c, 0x6e, 0x29, + 0x3a, 0x72, 0x7d, 0x2c, 0x6e, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x73, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x3f, 0x28, 0x61, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x6e, 0x29, 0x3a, 0x61, 0x7d, 0x2c, + 0x6e, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x63, 0x3d, 0x74, 0x2c, 0x6e, + 0x29, 0x3a, 0x63, 0x7d, 0x2c, 0x6e, 0x2e, 0x74, 0x69, 0x63, 0x6b, + 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, + 0x74, 0x3d, 0x65, 0x2c, 0x6e, 0x29, 0x3a, 0x74, 0x7d, 0x2c, 0x6e, + 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x61, 0x72, 0x67, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x3f, 0x28, + 0x75, 0x3d, 0x2b, 0x74, 0x2c, 0x69, 0x3d, 0x2b, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5b, 0x65, 0x2d, 0x31, 0x5d, + 0x2c, 0x6e, 0x29, 0x3a, 0x75, 0x7d, 0x2c, 0x6e, 0x2e, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x54, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, + 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3f, 0x28, 0x75, 0x3d, 0x2b, 0x74, 0x2c, 0x6e, + 0x29, 0x3a, 0x75, 0x7d, 0x2c, 0x6e, 0x2e, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x54, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x3d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3f, 0x28, 0x69, 0x3d, 0x2b, 0x74, 0x2c, 0x6e, 0x29, 0x3a, + 0x69, 0x7d, 0x2c, 0x6e, 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x50, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6f, + 0x3d, 0x2b, 0x74, 0x2c, 0x6e, 0x29, 0x3a, 0x6f, 0x7d, 0x2c, 0x6e, + 0x2e, 0x74, 0x69, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x64, 0x69, 0x76, + 0x69, 0x64, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x26, 0x26, 0x6e, 0x7d, 0x2c, 0x6e, + 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6a, 0x6c, 0x3d, 0x22, 0x62, + 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x22, 0x2c, 0x46, 0x6c, 0x3d, 0x7b, + 0x74, 0x6f, 0x70, 0x3a, 0x31, 0x2c, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x31, 0x2c, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, + 0x2c, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x7d, 0x3b, 0x74, 0x61, + 0x2e, 0x73, 0x76, 0x67, 0x2e, 0x62, 0x72, 0x75, 0x73, 0x68, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x74, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x74, 0x3d, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x28, 0x74, 0x68, 0x69, 0x73, 0x29, 0x2e, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x2c, + 0x22, 0x61, 0x6c, 0x6c, 0x22, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x28, 0x22, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, + 0x74, 0x61, 0x70, 0x2d, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x2c, 0x22, + 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, + 0x30, 0x29, 0x22, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x6d, 0x6f, + 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x2e, 0x62, 0x72, 0x75, + 0x73, 0x68, 0x22, 0x2c, 0x69, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, + 0x74, 0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x2e, + 0x62, 0x72, 0x75, 0x73, 0x68, 0x22, 0x2c, 0x69, 0x29, 0x2c, 0x6f, + 0x3d, 0x74, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, + 0x6c, 0x28, 0x22, 0x2e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x22, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, + 0x5b, 0x30, 0x5d, 0x29, 0x3b, 0x6f, 0x2e, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, + 0x22, 0x72, 0x65, 0x63, 0x74, 0x22, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x22, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x2c, 0x22, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, + 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x2c, 0x22, + 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0x29, 0x2e, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x28, 0x22, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, + 0x22, 0x2c, 0x22, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x68, 0x61, 0x69, + 0x72, 0x22, 0x29, 0x2c, 0x74, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x22, 0x2e, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x74, 0x22, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, 0x5b, + 0x30, 0x5d, 0x29, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, + 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x28, 0x22, 0x72, 0x65, + 0x63, 0x74, 0x22, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x2c, 0x22, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x74, 0x22, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, + 0x28, 0x22, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x2c, 0x22, + 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x61, 0x3d, 0x74, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, + 0x6c, 0x6c, 0x28, 0x22, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, + 0x22, 0x29, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x28, 0x76, 0x2c, 0x79, + 0x29, 0x3b, 0x61, 0x2e, 0x65, 0x78, 0x69, 0x74, 0x28, 0x29, 0x2e, + 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x29, 0x2c, 0x61, 0x2e, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x28, 0x29, 0x2e, 0x61, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x28, 0x22, 0x67, 0x22, 0x29, 0x2e, 0x61, 0x74, + 0x74, 0x72, 0x28, 0x22, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x2c, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x65, 0x20, 0x22, 0x2b, 0x6e, 0x7d, 0x29, 0x2e, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x63, 0x75, 0x72, 0x73, 0x6f, + 0x72, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x48, 0x6c, 0x5b, 0x6e, 0x5d, 0x7d, 0x29, 0x2e, 0x61, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x28, 0x22, 0x72, 0x65, 0x63, 0x74, 0x22, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, 0x78, 0x22, 0x2c, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2f, 0x5b, 0x65, 0x77, 0x5d, + 0x24, 0x2f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x28, 0x6e, 0x29, 0x3f, + 0x2d, 0x33, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x22, 0x79, 0x22, 0x2c, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x2f, 0x5e, 0x5b, 0x6e, 0x73, 0x5d, 0x2f, + 0x2e, 0x74, 0x65, 0x73, 0x74, 0x28, 0x6e, 0x29, 0x3f, 0x2d, 0x33, + 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x7d, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x2c, 0x36, + 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x22, 0x2c, 0x36, 0x29, 0x2e, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x28, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x22, 0x2c, 0x22, 0x68, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x22, 0x29, 0x2c, 0x61, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, + 0x28, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x22, 0x2c, + 0x6e, 0x2e, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x28, 0x29, 0x3f, 0x22, + 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, 0x29, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x2c, 0x66, 0x3d, 0x74, 0x61, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x29, 0x2c, 0x68, 0x3d, 0x74, 0x61, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6f, 0x29, + 0x3b, 0x6c, 0x26, 0x26, 0x28, 0x63, 0x3d, 0x55, 0x69, 0x28, 0x6c, + 0x29, 0x2c, 0x68, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, 0x78, + 0x22, 0x2c, 0x63, 0x5b, 0x30, 0x5d, 0x29, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x2c, 0x63, + 0x5b, 0x31, 0x5d, 0x2d, 0x63, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x72, + 0x28, 0x66, 0x29, 0x29, 0x2c, 0x73, 0x26, 0x26, 0x28, 0x63, 0x3d, + 0x55, 0x69, 0x28, 0x73, 0x29, 0x2c, 0x68, 0x2e, 0x61, 0x74, 0x74, + 0x72, 0x28, 0x22, 0x79, 0x22, 0x2c, 0x63, 0x5b, 0x30, 0x5d, 0x29, + 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x22, 0x2c, 0x63, 0x5b, 0x31, 0x5d, 0x2d, 0x63, 0x5b, + 0x30, 0x5d, 0x29, 0x2c, 0x75, 0x28, 0x66, 0x29, 0x29, 0x2c, 0x65, + 0x28, 0x66, 0x29, 0x7d, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x22, + 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x29, 0x2e, 0x61, + 0x74, 0x74, 0x72, 0x28, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x22, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x65, + 0x28, 0x22, 0x2b, 0x66, 0x5b, 0x2b, 0x2f, 0x65, 0x24, 0x2f, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x28, 0x6e, 0x29, 0x5d, 0x2b, 0x22, 0x2c, + 0x22, 0x2b, 0x68, 0x5b, 0x2b, 0x2f, 0x5e, 0x73, 0x2f, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x28, 0x6e, 0x29, 0x5d, 0x2b, 0x22, 0x29, 0x22, + 0x7d, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x72, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x28, 0x22, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x74, 0x22, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, 0x78, + 0x22, 0x2c, 0x66, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x6e, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x22, 0x2e, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x2c, 0x2e, 0x6e, 0x3e, 0x72, + 0x65, 0x63, 0x74, 0x2c, 0x2e, 0x73, 0x3e, 0x72, 0x65, 0x63, 0x74, + 0x22, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x22, 0x2c, 0x66, 0x5b, 0x31, 0x5d, 0x2d, 0x66, + 0x5b, 0x30, 0x5d, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x2e, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x74, 0x22, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, + 0x22, 0x79, 0x22, 0x2c, 0x68, 0x5b, 0x30, 0x5d, 0x29, 0x2c, 0x6e, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, + 0x22, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x2c, 0x2e, 0x65, + 0x3e, 0x72, 0x65, 0x63, 0x74, 0x2c, 0x2e, 0x77, 0x3e, 0x72, 0x65, + 0x63, 0x74, 0x22, 0x29, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x28, 0x22, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x2c, 0x68, 0x5b, 0x31, + 0x5d, 0x2d, 0x68, 0x5b, 0x30, 0x5d, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x29, 0x7b, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x29, + 0x7b, 0x33, 0x32, 0x3d, 0x3d, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x26, + 0x26, 0x28, 0x43, 0x7c, 0x7c, 0x28, 0x4d, 0x3d, 0x6e, 0x75, 0x6c, + 0x6c, 0x2c, 0x71, 0x5b, 0x30, 0x5d, 0x2d, 0x3d, 0x66, 0x5b, 0x31, + 0x5d, 0x2c, 0x71, 0x5b, 0x31, 0x5d, 0x2d, 0x3d, 0x68, 0x5b, 0x31, + 0x5d, 0x2c, 0x43, 0x3d, 0x32, 0x29, 0x2c, 0x53, 0x28, 0x29, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x76, + 0x28, 0x29, 0x7b, 0x33, 0x32, 0x3d, 0x3d, 0x74, 0x61, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, + 0x65, 0x26, 0x26, 0x32, 0x3d, 0x3d, 0x43, 0x26, 0x26, 0x28, 0x71, + 0x5b, 0x30, 0x5d, 0x2b, 0x3d, 0x66, 0x5b, 0x31, 0x5d, 0x2c, 0x71, + 0x5b, 0x31, 0x5d, 0x2b, 0x3d, 0x68, 0x5b, 0x31, 0x5d, 0x2c, 0x43, + 0x3d, 0x30, 0x2c, 0x53, 0x28, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x28, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x74, 0x61, 0x2e, 0x6d, 0x6f, 0x75, + 0x73, 0x65, 0x28, 0x62, 0x29, 0x2c, 0x74, 0x3d, 0x21, 0x31, 0x3b, + 0x78, 0x26, 0x26, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x2b, 0x3d, 0x78, + 0x5b, 0x30, 0x5d, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, 0x2b, 0x3d, 0x78, + 0x5b, 0x31, 0x5d, 0x29, 0x2c, 0x43, 0x7c, 0x7c, 0x28, 0x74, 0x61, + 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x6c, 0x74, 0x4b, + 0x65, 0x79, 0x3f, 0x28, 0x4d, 0x7c, 0x7c, 0x28, 0x4d, 0x3d, 0x5b, + 0x28, 0x66, 0x5b, 0x30, 0x5d, 0x2b, 0x66, 0x5b, 0x31, 0x5d, 0x29, + 0x2f, 0x32, 0x2c, 0x28, 0x68, 0x5b, 0x30, 0x5d, 0x2b, 0x68, 0x5b, + 0x31, 0x5d, 0x29, 0x2f, 0x32, 0x5d, 0x29, 0x2c, 0x71, 0x5b, 0x30, + 0x5d, 0x3d, 0x66, 0x5b, 0x2b, 0x28, 0x6e, 0x5b, 0x30, 0x5d, 0x3c, + 0x4d, 0x5b, 0x30, 0x5d, 0x29, 0x5d, 0x2c, 0x71, 0x5b, 0x31, 0x5d, + 0x3d, 0x68, 0x5b, 0x2b, 0x28, 0x6e, 0x5b, 0x31, 0x5d, 0x3c, 0x4d, + 0x5b, 0x31, 0x5d, 0x29, 0x5d, 0x29, 0x3a, 0x4d, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x29, 0x2c, 0x41, 0x26, 0x26, 0x6d, 0x28, 0x6e, 0x2c, + 0x6c, 0x2c, 0x30, 0x29, 0x26, 0x26, 0x28, 0x72, 0x28, 0x6b, 0x29, + 0x2c, 0x74, 0x3d, 0x21, 0x30, 0x29, 0x2c, 0x4e, 0x26, 0x26, 0x6d, + 0x28, 0x6e, 0x2c, 0x73, 0x2c, 0x31, 0x29, 0x26, 0x26, 0x28, 0x75, + 0x28, 0x6b, 0x29, 0x2c, 0x74, 0x3d, 0x21, 0x30, 0x29, 0x2c, 0x74, + 0x26, 0x26, 0x28, 0x65, 0x28, 0x6b, 0x29, 0x2c, 0x77, 0x28, 0x7b, + 0x74, 0x79, 0x70, 0x65, 0x3a, 0x22, 0x62, 0x72, 0x75, 0x73, 0x68, + 0x22, 0x2c, 0x6d, 0x6f, 0x64, 0x65, 0x3a, 0x43, 0x3f, 0x22, 0x6d, + 0x6f, 0x76, 0x65, 0x22, 0x3a, 0x22, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x65, 0x22, 0x7d, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x2c, 0x75, 0x2c, 0x69, + 0x3d, 0x55, 0x69, 0x28, 0x74, 0x29, 0x2c, 0x63, 0x3d, 0x69, 0x5b, + 0x30, 0x5d, 0x2c, 0x6c, 0x3d, 0x69, 0x5b, 0x31, 0x5d, 0x2c, 0x73, + 0x3d, 0x71, 0x5b, 0x65, 0x5d, 0x2c, 0x76, 0x3d, 0x65, 0x3f, 0x68, + 0x3a, 0x66, 0x2c, 0x64, 0x3d, 0x76, 0x5b, 0x31, 0x5d, 0x2d, 0x76, + 0x5b, 0x30, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x43, 0x26, 0x26, 0x28, 0x63, 0x2d, 0x3d, 0x73, 0x2c, 0x6c, 0x2d, + 0x3d, 0x64, 0x2b, 0x73, 0x29, 0x2c, 0x72, 0x3d, 0x28, 0x65, 0x3f, + 0x70, 0x3a, 0x67, 0x29, 0x3f, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, + 0x61, 0x78, 0x28, 0x63, 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, + 0x69, 0x6e, 0x28, 0x6c, 0x2c, 0x6e, 0x5b, 0x65, 0x5d, 0x29, 0x29, + 0x3a, 0x6e, 0x5b, 0x65, 0x5d, 0x2c, 0x43, 0x3f, 0x75, 0x3d, 0x28, + 0x72, 0x2b, 0x3d, 0x73, 0x29, 0x2b, 0x64, 0x3a, 0x28, 0x4d, 0x26, + 0x26, 0x28, 0x73, 0x3d, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x61, + 0x78, 0x28, 0x63, 0x2c, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x6d, 0x69, + 0x6e, 0x28, 0x6c, 0x2c, 0x32, 0x2a, 0x4d, 0x5b, 0x65, 0x5d, 0x2d, + 0x72, 0x29, 0x29, 0x29, 0x2c, 0x72, 0x3e, 0x73, 0x3f, 0x28, 0x75, + 0x3d, 0x72, 0x2c, 0x72, 0x3d, 0x73, 0x29, 0x3a, 0x75, 0x3d, 0x73, + 0x29, 0x2c, 0x76, 0x5b, 0x30, 0x5d, 0x21, 0x3d, 0x72, 0x7c, 0x7c, + 0x76, 0x5b, 0x31, 0x5d, 0x21, 0x3d, 0x75, 0x3f, 0x28, 0x65, 0x3f, + 0x61, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3a, 0x6f, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x2c, 0x76, 0x5b, 0x30, 0x5d, 0x3d, 0x72, 0x2c, 0x76, + 0x5b, 0x31, 0x5d, 0x3d, 0x75, 0x2c, 0x21, 0x30, 0x29, 0x3a, 0x76, + 0x6f, 0x69, 0x64, 0x20, 0x30, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x79, 0x28, 0x29, 0x7b, 0x64, 0x28, 0x29, + 0x2c, 0x6b, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2d, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x22, 0x2c, 0x22, 0x61, 0x6c, 0x6c, 0x22, 0x29, 0x2e, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x22, + 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x29, 0x2e, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x22, 0x2c, 0x6e, 0x2e, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x28, 0x29, 0x3f, 0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x3a, 0x6e, + 0x75, 0x6c, 0x6c, 0x29, 0x2c, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x28, 0x22, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x29, + 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2c, + 0x4c, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x6d, 0x6f, 0x75, 0x73, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x2e, 0x62, 0x72, 0x75, 0x73, 0x68, 0x22, + 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, + 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x75, 0x70, 0x2e, 0x62, 0x72, 0x75, + 0x73, 0x68, 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2e, 0x6f, + 0x6e, 0x28, 0x22, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x6d, 0x6f, 0x76, + 0x65, 0x2e, 0x62, 0x72, 0x75, 0x73, 0x68, 0x22, 0x2c, 0x6e, 0x75, + 0x6c, 0x6c, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x74, 0x6f, 0x75, + 0x63, 0x68, 0x65, 0x6e, 0x64, 0x2e, 0x62, 0x72, 0x75, 0x73, 0x68, + 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2e, 0x6f, 0x6e, 0x28, + 0x22, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x2e, 0x62, 0x72, + 0x75, 0x73, 0x68, 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x2e, + 0x6f, 0x6e, 0x28, 0x22, 0x6b, 0x65, 0x79, 0x75, 0x70, 0x2e, 0x62, + 0x72, 0x75, 0x73, 0x68, 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, + 0x2c, 0x7a, 0x28, 0x29, 0x2c, 0x77, 0x28, 0x7b, 0x74, 0x79, 0x70, + 0x65, 0x3a, 0x22, 0x62, 0x72, 0x75, 0x73, 0x68, 0x65, 0x6e, 0x64, + 0x22, 0x7d, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x4d, 0x2c, 0x78, + 0x2c, 0x62, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x5f, 0x3d, 0x74, + 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x74, 0x61, + 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x29, 0x2c, 0x77, 0x3d, 0x63, 0x2e, 0x6f, 0x66, 0x28, + 0x62, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x29, 0x2c, 0x6b, 0x3d, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x28, 0x62, 0x29, 0x2c, 0x45, 0x3d, 0x5f, 0x2e, 0x64, + 0x61, 0x74, 0x75, 0x6d, 0x28, 0x29, 0x2c, 0x41, 0x3d, 0x21, 0x2f, + 0x5e, 0x28, 0x6e, 0x7c, 0x73, 0x29, 0x24, 0x2f, 0x2e, 0x74, 0x65, + 0x73, 0x74, 0x28, 0x45, 0x29, 0x26, 0x26, 0x6c, 0x2c, 0x4e, 0x3d, + 0x21, 0x2f, 0x5e, 0x28, 0x65, 0x7c, 0x77, 0x29, 0x24, 0x2f, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x28, 0x45, 0x29, 0x26, 0x26, 0x73, 0x2c, + 0x43, 0x3d, 0x5f, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x64, + 0x28, 0x22, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x29, 0x2c, + 0x7a, 0x3d, 0x57, 0x28, 0x62, 0x29, 0x2c, 0x71, 0x3d, 0x74, 0x61, + 0x2e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x62, 0x29, 0x2c, 0x4c, + 0x3d, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x74, 0x28, 0x62, 0x29, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x6b, + 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x2e, 0x62, 0x72, 0x75, 0x73, + 0x68, 0x22, 0x2c, 0x69, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x6b, + 0x65, 0x79, 0x75, 0x70, 0x2e, 0x62, 0x72, 0x75, 0x73, 0x68, 0x22, + 0x2c, 0x76, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x74, 0x61, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x73, 0x3f, 0x4c, 0x2e, + 0x6f, 0x6e, 0x28, 0x22, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x6d, 0x6f, + 0x76, 0x65, 0x2e, 0x62, 0x72, 0x75, 0x73, 0x68, 0x22, 0x2c, 0x64, + 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x74, 0x6f, 0x75, 0x63, 0x68, + 0x65, 0x6e, 0x64, 0x2e, 0x62, 0x72, 0x75, 0x73, 0x68, 0x22, 0x2c, + 0x79, 0x29, 0x3a, 0x4c, 0x2e, 0x6f, 0x6e, 0x28, 0x22, 0x6d, 0x6f, + 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x2e, 0x62, 0x72, 0x75, + 0x73, 0x68, 0x22, 0x2c, 0x64, 0x29, 0x2e, 0x6f, 0x6e, 0x28, 0x22, + 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x75, 0x70, 0x2e, 0x62, 0x72, 0x75, + 0x73, 0x68, 0x22, 0x2c, 0x79, 0x29, 0x2c, 0x6b, 0x2e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x28, 0x29, 0x2e, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, 0x28, 0x22, 0x2a, + 0x22, 0x29, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, + 0x74, 0x28, 0x29, 0x2c, 0x43, 0x29, 0x71, 0x5b, 0x30, 0x5d, 0x3d, + 0x66, 0x5b, 0x30, 0x5d, 0x2d, 0x71, 0x5b, 0x30, 0x5d, 0x2c, 0x71, + 0x5b, 0x31, 0x5d, 0x3d, 0x68, 0x5b, 0x30, 0x5d, 0x2d, 0x71, 0x5b, + 0x31, 0x5d, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, + 0x45, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x54, 0x3d, 0x2b, 0x2f, + 0x77, 0x24, 0x2f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x28, 0x45, 0x29, + 0x2c, 0x52, 0x3d, 0x2b, 0x2f, 0x5e, 0x6e, 0x2f, 0x2e, 0x74, 0x65, + 0x73, 0x74, 0x28, 0x45, 0x29, 0x3b, 0x78, 0x3d, 0x5b, 0x66, 0x5b, + 0x31, 0x2d, 0x54, 0x5d, 0x2d, 0x71, 0x5b, 0x30, 0x5d, 0x2c, 0x68, + 0x5b, 0x31, 0x2d, 0x52, 0x5d, 0x2d, 0x71, 0x5b, 0x31, 0x5d, 0x5d, + 0x2c, 0x71, 0x5b, 0x30, 0x5d, 0x3d, 0x66, 0x5b, 0x54, 0x5d, 0x2c, + 0x71, 0x5b, 0x31, 0x5d, 0x3d, 0x68, 0x5b, 0x52, 0x5d, 0x7d, 0x65, + 0x6c, 0x73, 0x65, 0x20, 0x74, 0x61, 0x2e, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x2e, 0x61, 0x6c, 0x74, 0x4b, 0x65, 0x79, 0x26, 0x26, 0x28, + 0x4d, 0x3d, 0x71, 0x2e, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x29, + 0x29, 0x3b, 0x6b, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x2d, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x22, 0x2c, 0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, + 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x41, 0x6c, 0x6c, + 0x28, 0x22, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x29, + 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x22, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x29, + 0x2c, 0x74, 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, + 0x22, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x29, 0x2e, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x28, 0x22, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, + 0x2c, 0x5f, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x28, 0x22, 0x63, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x29, 0x29, 0x2c, 0x77, 0x28, + 0x7b, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x22, 0x62, 0x72, 0x75, 0x73, + 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x7d, 0x29, 0x2c, 0x64, + 0x28, 0x29, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x6f, 0x2c, 0x61, 0x2c, + 0x63, 0x3d, 0x45, 0x28, 0x6e, 0x2c, 0x22, 0x62, 0x72, 0x75, 0x73, + 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x2c, 0x22, 0x62, 0x72, + 0x75, 0x73, 0x68, 0x22, 0x2c, 0x22, 0x62, 0x72, 0x75, 0x73, 0x68, + 0x65, 0x6e, 0x64, 0x22, 0x29, 0x2c, 0x6c, 0x3d, 0x6e, 0x75, 0x6c, + 0x6c, 0x2c, 0x73, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x66, 0x3d, + 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x68, 0x3d, 0x5b, 0x30, 0x2c, + 0x30, 0x5d, 0x2c, 0x67, 0x3d, 0x21, 0x30, 0x2c, 0x70, 0x3d, 0x21, + 0x30, 0x2c, 0x76, 0x3d, 0x4f, 0x6c, 0x5b, 0x30, 0x5d, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x63, 0x2e, 0x6f, 0x66, 0x28, + 0x74, 0x68, 0x69, 0x73, 0x2c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x29, 0x2c, 0x74, 0x3d, 0x7b, 0x78, 0x3a, 0x66, + 0x2c, 0x79, 0x3a, 0x68, 0x2c, 0x69, 0x3a, 0x6f, 0x2c, 0x6a, 0x3a, + 0x61, 0x7d, 0x2c, 0x65, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, + 0x5f, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x5f, 0x7c, 0x7c, 0x74, + 0x3b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x5f, 0x5f, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x5f, 0x5f, 0x3d, 0x74, 0x2c, 0x54, 0x6c, 0x3f, 0x74, + 0x61, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x29, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x28, + 0x22, 0x73, 0x74, 0x61, 0x72, 0x74, 0x2e, 0x62, 0x72, 0x75, 0x73, + 0x68, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x6f, 0x3d, 0x65, 0x2e, 0x69, 0x2c, 0x61, 0x3d, + 0x65, 0x2e, 0x6a, 0x2c, 0x66, 0x3d, 0x65, 0x2e, 0x78, 0x2c, 0x68, + 0x3d, 0x65, 0x2e, 0x79, 0x2c, 0x6e, 0x28, 0x7b, 0x74, 0x79, 0x70, + 0x65, 0x3a, 0x22, 0x62, 0x72, 0x75, 0x73, 0x68, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x22, 0x7d, 0x29, 0x7d, 0x29, 0x2e, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x28, 0x22, 0x62, 0x72, 0x75, 0x73, 0x68, 0x3a, 0x62, + 0x72, 0x75, 0x73, 0x68, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, + 0x3d, 0x79, 0x75, 0x28, 0x66, 0x2c, 0x74, 0x2e, 0x78, 0x29, 0x2c, + 0x72, 0x3d, 0x79, 0x75, 0x28, 0x68, 0x2c, 0x74, 0x2e, 0x79, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x3d, 0x61, + 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x75, 0x29, 0x7b, 0x66, 0x3d, 0x74, 0x2e, + 0x78, 0x3d, 0x65, 0x28, 0x75, 0x29, 0x2c, 0x68, 0x3d, 0x74, 0x2e, + 0x79, 0x3d, 0x72, 0x28, 0x75, 0x29, 0x2c, 0x6e, 0x28, 0x7b, 0x74, + 0x79, 0x70, 0x65, 0x3a, 0x22, 0x62, 0x72, 0x75, 0x73, 0x68, 0x22, + 0x2c, 0x6d, 0x6f, 0x64, 0x65, 0x3a, 0x22, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x65, 0x22, 0x7d, 0x29, 0x7d, 0x7d, 0x29, 0x2e, 0x65, 0x61, + 0x63, 0x68, 0x28, 0x22, 0x65, 0x6e, 0x64, 0x2e, 0x62, 0x72, 0x75, + 0x73, 0x68, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x6f, 0x3d, 0x74, 0x2e, 0x69, 0x2c, 0x61, + 0x3d, 0x74, 0x2e, 0x6a, 0x2c, 0x6e, 0x28, 0x7b, 0x74, 0x79, 0x70, + 0x65, 0x3a, 0x22, 0x62, 0x72, 0x75, 0x73, 0x68, 0x22, 0x2c, 0x6d, + 0x6f, 0x64, 0x65, 0x3a, 0x22, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, + 0x22, 0x7d, 0x29, 0x2c, 0x6e, 0x28, 0x7b, 0x74, 0x79, 0x70, 0x65, + 0x3a, 0x22, 0x62, 0x72, 0x75, 0x73, 0x68, 0x65, 0x6e, 0x64, 0x22, + 0x7d, 0x29, 0x7d, 0x29, 0x3a, 0x28, 0x6e, 0x28, 0x7b, 0x74, 0x79, + 0x70, 0x65, 0x3a, 0x22, 0x62, 0x72, 0x75, 0x73, 0x68, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x22, 0x7d, 0x29, 0x2c, 0x6e, 0x28, 0x7b, 0x74, + 0x79, 0x70, 0x65, 0x3a, 0x22, 0x62, 0x72, 0x75, 0x73, 0x68, 0x22, + 0x2c, 0x6d, 0x6f, 0x64, 0x65, 0x3a, 0x22, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x65, 0x22, 0x7d, 0x29, 0x2c, 0x6e, 0x28, 0x7b, 0x74, 0x79, + 0x70, 0x65, 0x3a, 0x22, 0x62, 0x72, 0x75, 0x73, 0x68, 0x65, 0x6e, + 0x64, 0x22, 0x7d, 0x29, 0x29, 0x7d, 0x29, 0x7d, 0x2c, 0x6e, 0x2e, + 0x78, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6c, 0x3d, 0x74, 0x2c, 0x76, + 0x3d, 0x4f, 0x6c, 0x5b, 0x21, 0x6c, 0x3c, 0x3c, 0x31, 0x7c, 0x21, + 0x73, 0x5d, 0x2c, 0x6e, 0x29, 0x3a, 0x6c, 0x7d, 0x2c, 0x6e, 0x2e, + 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x73, 0x3d, 0x74, 0x2c, 0x76, + 0x3d, 0x4f, 0x6c, 0x5b, 0x21, 0x6c, 0x3c, 0x3c, 0x31, 0x7c, 0x21, + 0x73, 0x5d, 0x2c, 0x6e, 0x29, 0x3a, 0x73, 0x7d, 0x2c, 0x6e, 0x2e, + 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6c, + 0x26, 0x26, 0x73, 0x3f, 0x28, 0x67, 0x3d, 0x21, 0x21, 0x74, 0x5b, + 0x30, 0x5d, 0x2c, 0x70, 0x3d, 0x21, 0x21, 0x74, 0x5b, 0x31, 0x5d, + 0x29, 0x3a, 0x6c, 0x3f, 0x67, 0x3d, 0x21, 0x21, 0x74, 0x3a, 0x73, + 0x26, 0x26, 0x28, 0x70, 0x3d, 0x21, 0x21, 0x74, 0x29, 0x2c, 0x6e, + 0x29, 0x3a, 0x6c, 0x26, 0x26, 0x73, 0x3f, 0x5b, 0x67, 0x2c, 0x70, + 0x5d, 0x3a, 0x6c, 0x3f, 0x67, 0x3a, 0x73, 0x3f, 0x70, 0x3a, 0x6e, + 0x75, 0x6c, 0x6c, 0x7d, 0x2c, 0x6e, 0x2e, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x74, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x72, + 0x2c, 0x75, 0x2c, 0x69, 0x2c, 0x63, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x28, 0x6c, + 0x26, 0x26, 0x28, 0x65, 0x3d, 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x72, + 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x73, 0x26, 0x26, 0x28, 0x65, + 0x3d, 0x65, 0x5b, 0x30, 0x5d, 0x2c, 0x72, 0x3d, 0x72, 0x5b, 0x30, + 0x5d, 0x29, 0x2c, 0x6f, 0x3d, 0x5b, 0x65, 0x2c, 0x72, 0x5d, 0x2c, + 0x6c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x26, 0x26, 0x28, + 0x65, 0x3d, 0x6c, 0x28, 0x65, 0x29, 0x2c, 0x72, 0x3d, 0x6c, 0x28, + 0x72, 0x29, 0x29, 0x2c, 0x65, 0x3e, 0x72, 0x26, 0x26, 0x28, 0x63, + 0x3d, 0x65, 0x2c, 0x65, 0x3d, 0x72, 0x2c, 0x72, 0x3d, 0x63, 0x29, + 0x2c, 0x28, 0x65, 0x21, 0x3d, 0x66, 0x5b, 0x30, 0x5d, 0x7c, 0x7c, + 0x72, 0x21, 0x3d, 0x66, 0x5b, 0x31, 0x5d, 0x29, 0x26, 0x26, 0x28, + 0x66, 0x3d, 0x5b, 0x65, 0x2c, 0x72, 0x5d, 0x29, 0x29, 0x2c, 0x73, + 0x26, 0x26, 0x28, 0x75, 0x3d, 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x69, + 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x6c, 0x26, 0x26, 0x28, 0x75, + 0x3d, 0x75, 0x5b, 0x31, 0x5d, 0x2c, 0x69, 0x3d, 0x69, 0x5b, 0x31, + 0x5d, 0x29, 0x2c, 0x61, 0x3d, 0x5b, 0x75, 0x2c, 0x69, 0x5d, 0x2c, + 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x26, 0x26, 0x28, + 0x75, 0x3d, 0x73, 0x28, 0x75, 0x29, 0x2c, 0x69, 0x3d, 0x73, 0x28, + 0x69, 0x29, 0x29, 0x2c, 0x75, 0x3e, 0x69, 0x26, 0x26, 0x28, 0x63, + 0x3d, 0x75, 0x2c, 0x75, 0x3d, 0x69, 0x2c, 0x69, 0x3d, 0x63, 0x29, + 0x2c, 0x28, 0x75, 0x21, 0x3d, 0x68, 0x5b, 0x30, 0x5d, 0x7c, 0x7c, + 0x69, 0x21, 0x3d, 0x68, 0x5b, 0x31, 0x5d, 0x29, 0x26, 0x26, 0x28, + 0x68, 0x3d, 0x5b, 0x75, 0x2c, 0x69, 0x5d, 0x29, 0x29, 0x2c, 0x6e, + 0x29, 0x3a, 0x28, 0x6c, 0x26, 0x26, 0x28, 0x6f, 0x3f, 0x28, 0x65, + 0x3d, 0x6f, 0x5b, 0x30, 0x5d, 0x2c, 0x72, 0x3d, 0x6f, 0x5b, 0x31, + 0x5d, 0x29, 0x3a, 0x28, 0x65, 0x3d, 0x66, 0x5b, 0x30, 0x5d, 0x2c, + 0x72, 0x3d, 0x66, 0x5b, 0x31, 0x5d, 0x2c, 0x6c, 0x2e, 0x69, 0x6e, + 0x76, 0x65, 0x72, 0x74, 0x26, 0x26, 0x28, 0x65, 0x3d, 0x6c, 0x2e, + 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x28, 0x65, 0x29, 0x2c, 0x72, + 0x3d, 0x6c, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x28, 0x72, + 0x29, 0x29, 0x2c, 0x65, 0x3e, 0x72, 0x26, 0x26, 0x28, 0x63, 0x3d, + 0x65, 0x2c, 0x65, 0x3d, 0x72, 0x2c, 0x72, 0x3d, 0x63, 0x29, 0x29, + 0x29, 0x2c, 0x73, 0x26, 0x26, 0x28, 0x61, 0x3f, 0x28, 0x75, 0x3d, + 0x61, 0x5b, 0x30, 0x5d, 0x2c, 0x69, 0x3d, 0x61, 0x5b, 0x31, 0x5d, + 0x29, 0x3a, 0x28, 0x75, 0x3d, 0x68, 0x5b, 0x30, 0x5d, 0x2c, 0x69, + 0x3d, 0x68, 0x5b, 0x31, 0x5d, 0x2c, 0x73, 0x2e, 0x69, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x26, 0x26, 0x28, 0x75, 0x3d, 0x73, 0x2e, 0x69, + 0x6e, 0x76, 0x65, 0x72, 0x74, 0x28, 0x75, 0x29, 0x2c, 0x69, 0x3d, + 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x28, 0x69, 0x29, + 0x29, 0x2c, 0x75, 0x3e, 0x69, 0x26, 0x26, 0x28, 0x63, 0x3d, 0x75, + 0x2c, 0x75, 0x3d, 0x69, 0x2c, 0x69, 0x3d, 0x63, 0x29, 0x29, 0x29, + 0x2c, 0x6c, 0x26, 0x26, 0x73, 0x3f, 0x5b, 0x5b, 0x65, 0x2c, 0x75, + 0x5d, 0x2c, 0x5b, 0x72, 0x2c, 0x69, 0x5d, 0x5d, 0x3a, 0x6c, 0x3f, + 0x5b, 0x65, 0x2c, 0x72, 0x5d, 0x3a, 0x73, 0x26, 0x26, 0x5b, 0x75, + 0x2c, 0x69, 0x5d, 0x29, 0x7d, 0x2c, 0x6e, 0x2e, 0x63, 0x6c, 0x65, + 0x61, 0x72, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x28, 0x29, 0x7c, 0x7c, 0x28, + 0x66, 0x3d, 0x5b, 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x68, 0x3d, 0x5b, + 0x30, 0x2c, 0x30, 0x5d, 0x2c, 0x6f, 0x3d, 0x61, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x29, 0x2c, 0x6e, 0x7d, 0x2c, 0x6e, 0x2e, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, + 0x21, 0x6c, 0x26, 0x26, 0x66, 0x5b, 0x30, 0x5d, 0x3d, 0x3d, 0x66, + 0x5b, 0x31, 0x5d, 0x7c, 0x7c, 0x21, 0x21, 0x73, 0x26, 0x26, 0x68, + 0x5b, 0x30, 0x5d, 0x3d, 0x3d, 0x68, 0x5b, 0x31, 0x5d, 0x7d, 0x2c, + 0x74, 0x61, 0x2e, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x28, 0x6e, + 0x2c, 0x63, 0x2c, 0x22, 0x6f, 0x6e, 0x22, 0x29, 0x7d, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x48, 0x6c, 0x3d, 0x7b, 0x6e, 0x3a, 0x22, 0x6e, + 0x73, 0x2d, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x2c, 0x65, + 0x3a, 0x22, 0x65, 0x77, 0x2d, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, + 0x22, 0x2c, 0x73, 0x3a, 0x22, 0x6e, 0x73, 0x2d, 0x72, 0x65, 0x73, + 0x69, 0x7a, 0x65, 0x22, 0x2c, 0x77, 0x3a, 0x22, 0x65, 0x77, 0x2d, + 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x2c, 0x6e, 0x77, 0x3a, + 0x22, 0x6e, 0x77, 0x73, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x69, 0x7a, + 0x65, 0x22, 0x2c, 0x6e, 0x65, 0x3a, 0x22, 0x6e, 0x65, 0x73, 0x77, + 0x2d, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x2c, 0x73, 0x65, + 0x3a, 0x22, 0x6e, 0x77, 0x73, 0x65, 0x2d, 0x72, 0x65, 0x73, 0x69, + 0x7a, 0x65, 0x22, 0x2c, 0x73, 0x77, 0x3a, 0x22, 0x6e, 0x65, 0x73, + 0x77, 0x2d, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x7d, 0x2c, + 0x4f, 0x6c, 0x3d, 0x5b, 0x5b, 0x22, 0x6e, 0x22, 0x2c, 0x22, 0x65, + 0x22, 0x2c, 0x22, 0x73, 0x22, 0x2c, 0x22, 0x77, 0x22, 0x2c, 0x22, + 0x6e, 0x77, 0x22, 0x2c, 0x22, 0x6e, 0x65, 0x22, 0x2c, 0x22, 0x73, + 0x65, 0x22, 0x2c, 0x22, 0x73, 0x77, 0x22, 0x5d, 0x2c, 0x5b, 0x22, + 0x65, 0x22, 0x2c, 0x22, 0x77, 0x22, 0x5d, 0x2c, 0x5b, 0x22, 0x6e, + 0x22, 0x2c, 0x22, 0x73, 0x22, 0x5d, 0x2c, 0x5b, 0x5d, 0x5d, 0x2c, + 0x49, 0x6c, 0x3d, 0x61, 0x63, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x3d, 0x67, 0x63, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x2c, 0x59, 0x6c, 0x3d, 0x49, 0x6c, 0x2e, + 0x75, 0x74, 0x63, 0x2c, 0x5a, 0x6c, 0x3d, 0x59, 0x6c, 0x28, 0x22, + 0x25, 0x59, 0x2d, 0x25, 0x6d, 0x2d, 0x25, 0x64, 0x54, 0x25, 0x48, + 0x3a, 0x25, 0x4d, 0x3a, 0x25, 0x53, 0x2e, 0x25, 0x4c, 0x5a, 0x22, + 0x29, 0x3b, 0x49, 0x6c, 0x2e, 0x69, 0x73, 0x6f, 0x3d, 0x44, 0x61, + 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, + 0x65, 0x2e, 0x74, 0x6f, 0x49, 0x53, 0x4f, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x26, 0x26, 0x2b, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, + 0x74, 0x65, 0x28, 0x22, 0x32, 0x30, 0x30, 0x30, 0x2d, 0x30, 0x31, + 0x2d, 0x30, 0x31, 0x54, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x3a, 0x30, + 0x30, 0x2e, 0x30, 0x30, 0x30, 0x5a, 0x22, 0x29, 0x3f, 0x4a, 0x6f, + 0x3a, 0x5a, 0x6c, 0x2c, 0x4a, 0x6f, 0x2e, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x65, + 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x28, 0x6e, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x73, 0x4e, 0x61, 0x4e, + 0x28, 0x74, 0x29, 0x3f, 0x6e, 0x75, 0x6c, 0x6c, 0x3a, 0x74, 0x7d, + 0x2c, 0x4a, 0x6f, 0x2e, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x3d, 0x5a, 0x6c, 0x2e, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x2c, 0x61, 0x63, 0x2e, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x3d, 0x46, 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x63, 0x63, 0x28, 0x31, 0x65, + 0x33, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, + 0x72, 0x28, 0x6e, 0x2f, 0x31, 0x65, 0x33, 0x29, 0x29, 0x7d, 0x2c, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x6e, 0x2e, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x28, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x28, 0x29, 0x2b, 0x31, 0x65, 0x33, 0x2a, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x74, 0x29, 0x29, 0x7d, + 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, + 0x67, 0x65, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x28, + 0x29, 0x7d, 0x29, 0x2c, 0x61, 0x63, 0x2e, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x3d, 0x61, 0x63, 0x2e, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, 0x61, 0x63, + 0x2e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x75, 0x74, + 0x63, 0x3d, 0x61, 0x63, 0x2e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x2e, 0x75, 0x74, 0x63, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, + 0x61, 0x63, 0x2e, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x3d, 0x46, + 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x65, 0x77, 0x20, 0x63, 0x63, 0x28, 0x36, 0x65, 0x34, 0x2a, 0x4d, + 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x6e, + 0x2f, 0x36, 0x65, 0x34, 0x29, 0x29, 0x7d, 0x2c, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, + 0x6e, 0x2e, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x28, 0x6e, + 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x28, 0x29, 0x2b, + 0x36, 0x65, 0x34, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, 0x6c, + 0x6f, 0x6f, 0x72, 0x28, 0x74, 0x29, 0x29, 0x7d, 0x2c, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x67, 0x65, 0x74, + 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x28, 0x29, 0x7d, 0x29, + 0x2c, 0x61, 0x63, 0x2e, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, + 0x3d, 0x61, 0x63, 0x2e, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, 0x61, 0x63, 0x2e, 0x6d, 0x69, + 0x6e, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x75, 0x74, 0x63, 0x3d, 0x61, + 0x63, 0x2e, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x2e, 0x75, 0x74, + 0x63, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, 0x61, 0x63, 0x2e, + 0x68, 0x6f, 0x75, 0x72, 0x3d, 0x46, 0x74, 0x28, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x3d, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x28, 0x29, 0x2f, 0x36, 0x30, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x63, 0x63, 0x28, 0x33, + 0x36, 0x65, 0x35, 0x2a, 0x28, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x66, + 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x6e, 0x2f, 0x33, 0x36, 0x65, 0x35, + 0x2d, 0x74, 0x29, 0x2b, 0x74, 0x29, 0x29, 0x7d, 0x2c, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, + 0x7b, 0x6e, 0x2e, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x28, + 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x28, 0x29, + 0x2b, 0x33, 0x36, 0x65, 0x35, 0x2a, 0x4d, 0x61, 0x74, 0x68, 0x2e, + 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x28, 0x74, 0x29, 0x29, 0x7d, 0x2c, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x67, + 0x65, 0x74, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x28, 0x29, 0x7d, 0x29, + 0x2c, 0x61, 0x63, 0x2e, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x3d, 0x61, + 0x63, 0x2e, 0x68, 0x6f, 0x75, 0x72, 0x2e, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x2c, 0x61, 0x63, 0x2e, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x2e, + 0x75, 0x74, 0x63, 0x3d, 0x61, 0x63, 0x2e, 0x68, 0x6f, 0x75, 0x72, + 0x2e, 0x75, 0x74, 0x63, 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, + 0x61, 0x63, 0x2e, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x3d, 0x46, 0x74, + 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x3d, + 0x61, 0x63, 0x2e, 0x64, 0x61, 0x79, 0x28, 0x6e, 0x29, 0x2c, 0x6e, + 0x2e, 0x73, 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, 0x31, 0x29, + 0x2c, 0x6e, 0x7d, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x6e, 0x2e, 0x73, 0x65, + 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x28, 0x6e, 0x2e, 0x67, 0x65, + 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x28, 0x29, 0x2b, 0x74, 0x29, + 0x7d, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x67, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x28, 0x29, + 0x7d, 0x29, 0x2c, 0x61, 0x63, 0x2e, 0x6d, 0x6f, 0x6e, 0x74, 0x68, + 0x73, 0x3d, 0x61, 0x63, 0x2e, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x2c, 0x61, 0x63, 0x2e, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x73, 0x2e, 0x75, 0x74, 0x63, 0x3d, 0x61, 0x63, + 0x2e, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x2e, 0x75, 0x74, 0x63, 0x2e, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x56, + 0x6c, 0x3d, 0x5b, 0x31, 0x65, 0x33, 0x2c, 0x35, 0x65, 0x33, 0x2c, + 0x31, 0x35, 0x65, 0x33, 0x2c, 0x33, 0x65, 0x34, 0x2c, 0x36, 0x65, + 0x34, 0x2c, 0x33, 0x65, 0x35, 0x2c, 0x39, 0x65, 0x35, 0x2c, 0x31, + 0x38, 0x65, 0x35, 0x2c, 0x33, 0x36, 0x65, 0x35, 0x2c, 0x31, 0x30, + 0x38, 0x65, 0x35, 0x2c, 0x32, 0x31, 0x36, 0x65, 0x35, 0x2c, 0x34, + 0x33, 0x32, 0x65, 0x35, 0x2c, 0x38, 0x36, 0x34, 0x65, 0x35, 0x2c, + 0x31, 0x37, 0x32, 0x38, 0x65, 0x35, 0x2c, 0x36, 0x30, 0x34, 0x38, + 0x65, 0x35, 0x2c, 0x32, 0x35, 0x39, 0x32, 0x65, 0x36, 0x2c, 0x37, + 0x37, 0x37, 0x36, 0x65, 0x36, 0x2c, 0x33, 0x31, 0x35, 0x33, 0x36, + 0x65, 0x36, 0x5d, 0x2c, 0x58, 0x6c, 0x3d, 0x5b, 0x5b, 0x61, 0x63, + 0x2e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x2c, 0x31, 0x5d, 0x2c, + 0x5b, 0x61, 0x63, 0x2e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x2c, + 0x35, 0x5d, 0x2c, 0x5b, 0x61, 0x63, 0x2e, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x2c, 0x31, 0x35, 0x5d, 0x2c, 0x5b, 0x61, 0x63, 0x2e, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x2c, 0x33, 0x30, 0x5d, 0x2c, + 0x5b, 0x61, 0x63, 0x2e, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x2c, + 0x31, 0x5d, 0x2c, 0x5b, 0x61, 0x63, 0x2e, 0x6d, 0x69, 0x6e, 0x75, + 0x74, 0x65, 0x2c, 0x35, 0x5d, 0x2c, 0x5b, 0x61, 0x63, 0x2e, 0x6d, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x2c, 0x31, 0x35, 0x5d, 0x2c, 0x5b, + 0x61, 0x63, 0x2e, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x2c, 0x33, + 0x30, 0x5d, 0x2c, 0x5b, 0x61, 0x63, 0x2e, 0x68, 0x6f, 0x75, 0x72, + 0x2c, 0x31, 0x5d, 0x2c, 0x5b, 0x61, 0x63, 0x2e, 0x68, 0x6f, 0x75, + 0x72, 0x2c, 0x33, 0x5d, 0x2c, 0x5b, 0x61, 0x63, 0x2e, 0x68, 0x6f, + 0x75, 0x72, 0x2c, 0x36, 0x5d, 0x2c, 0x5b, 0x61, 0x63, 0x2e, 0x68, + 0x6f, 0x75, 0x72, 0x2c, 0x31, 0x32, 0x5d, 0x2c, 0x5b, 0x61, 0x63, + 0x2e, 0x64, 0x61, 0x79, 0x2c, 0x31, 0x5d, 0x2c, 0x5b, 0x61, 0x63, + 0x2e, 0x64, 0x61, 0x79, 0x2c, 0x32, 0x5d, 0x2c, 0x5b, 0x61, 0x63, + 0x2e, 0x77, 0x65, 0x65, 0x6b, 0x2c, 0x31, 0x5d, 0x2c, 0x5b, 0x61, + 0x63, 0x2e, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x2c, 0x31, 0x5d, 0x2c, + 0x5b, 0x61, 0x63, 0x2e, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x2c, 0x33, + 0x5d, 0x2c, 0x5b, 0x61, 0x63, 0x2e, 0x79, 0x65, 0x61, 0x72, 0x2c, + 0x31, 0x5d, 0x5d, 0x2c, 0x24, 0x6c, 0x3d, 0x49, 0x6c, 0x2e, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x28, 0x5b, 0x5b, 0x22, 0x2e, 0x25, 0x4c, + 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, + 0x2e, 0x67, 0x65, 0x74, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x28, 0x29, 0x7d, 0x5d, 0x2c, 0x5b, + 0x22, 0x3a, 0x25, 0x53, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x53, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x28, 0x29, 0x7d, 0x5d, 0x2c, 0x5b, 0x22, + 0x25, 0x49, 0x3a, 0x25, 0x4d, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x4d, 0x69, + 0x6e, 0x75, 0x74, 0x65, 0x73, 0x28, 0x29, 0x7d, 0x5d, 0x2c, 0x5b, + 0x22, 0x25, 0x49, 0x20, 0x25, 0x70, 0x22, 0x2c, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x48, + 0x6f, 0x75, 0x72, 0x73, 0x28, 0x29, 0x7d, 0x5d, 0x2c, 0x5b, 0x22, + 0x25, 0x61, 0x20, 0x25, 0x64, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x61, + 0x79, 0x28, 0x29, 0x26, 0x26, 0x31, 0x21, 0x3d, 0x6e, 0x2e, 0x67, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x7d, 0x5d, 0x2c, + 0x5b, 0x22, 0x25, 0x62, 0x20, 0x25, 0x64, 0x22, 0x2c, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, 0x21, 0x3d, 0x6e, 0x2e, + 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x7d, 0x5d, + 0x2c, 0x5b, 0x22, 0x25, 0x42, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x4d, 0x6f, + 0x6e, 0x74, 0x68, 0x28, 0x29, 0x7d, 0x5d, 0x2c, 0x5b, 0x22, 0x25, + 0x59, 0x22, 0x2c, 0x4e, 0x65, 0x5d, 0x5d, 0x29, 0x2c, 0x42, 0x6c, + 0x3d, 0x7b, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x2c, 0x65, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x61, + 0x2e, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x28, 0x4d, 0x61, 0x74, 0x68, + 0x2e, 0x63, 0x65, 0x69, 0x6c, 0x28, 0x6e, 0x2f, 0x65, 0x29, 0x2a, + 0x65, 0x2c, 0x2b, 0x74, 0x2c, 0x65, 0x29, 0x2e, 0x6d, 0x61, 0x70, + 0x28, 0x4b, 0x6f, 0x29, 0x7d, 0x2c, 0x66, 0x6c, 0x6f, 0x6f, 0x72, + 0x3a, 0x79, 0x2c, 0x63, 0x65, 0x69, 0x6c, 0x3a, 0x79, 0x7d, 0x3b, + 0x58, 0x6c, 0x2e, 0x79, 0x65, 0x61, 0x72, 0x3d, 0x61, 0x63, 0x2e, + 0x79, 0x65, 0x61, 0x72, 0x2c, 0x61, 0x63, 0x2e, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x47, + 0x6f, 0x28, 0x74, 0x61, 0x2e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, + 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x28, 0x29, 0x2c, 0x58, 0x6c, + 0x2c, 0x24, 0x6c, 0x29, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x57, + 0x6c, 0x3d, 0x58, 0x6c, 0x2e, 0x6d, 0x61, 0x70, 0x28, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x6e, 0x5b, 0x30, 0x5d, 0x2e, + 0x75, 0x74, 0x63, 0x2c, 0x6e, 0x5b, 0x31, 0x5d, 0x5d, 0x7d, 0x29, + 0x2c, 0x4a, 0x6c, 0x3d, 0x59, 0x6c, 0x2e, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x28, 0x5b, 0x5b, 0x22, 0x2e, 0x25, 0x4c, 0x22, 0x2c, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x67, 0x65, + 0x74, 0x55, 0x54, 0x43, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x28, 0x29, 0x7d, 0x5d, 0x2c, 0x5b, + 0x22, 0x3a, 0x25, 0x53, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, + 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x28, 0x29, 0x7d, 0x5d, + 0x2c, 0x5b, 0x22, 0x25, 0x49, 0x3a, 0x25, 0x4d, 0x22, 0x2c, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x67, 0x65, + 0x74, 0x55, 0x54, 0x43, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, + 0x28, 0x29, 0x7d, 0x5d, 0x2c, 0x5b, 0x22, 0x25, 0x49, 0x20, 0x25, + 0x70, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x48, 0x6f, 0x75, + 0x72, 0x73, 0x28, 0x29, 0x7d, 0x5d, 0x2c, 0x5b, 0x22, 0x25, 0x61, + 0x20, 0x25, 0x64, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x44, + 0x61, 0x79, 0x28, 0x29, 0x26, 0x26, 0x31, 0x21, 0x3d, 0x6e, 0x2e, + 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x44, 0x61, 0x74, 0x65, 0x28, + 0x29, 0x7d, 0x5d, 0x2c, 0x5b, 0x22, 0x25, 0x62, 0x20, 0x25, 0x64, + 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x31, + 0x21, 0x3d, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x44, + 0x61, 0x74, 0x65, 0x28, 0x29, 0x7d, 0x5d, 0x2c, 0x5b, 0x22, 0x25, + 0x42, 0x22, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x55, 0x54, 0x43, 0x4d, 0x6f, 0x6e, + 0x74, 0x68, 0x28, 0x29, 0x7d, 0x5d, 0x2c, 0x5b, 0x22, 0x25, 0x59, + 0x22, 0x2c, 0x4e, 0x65, 0x5d, 0x5d, 0x29, 0x3b, 0x57, 0x6c, 0x2e, + 0x79, 0x65, 0x61, 0x72, 0x3d, 0x61, 0x63, 0x2e, 0x79, 0x65, 0x61, + 0x72, 0x2e, 0x75, 0x74, 0x63, 0x2c, 0x61, 0x63, 0x2e, 0x73, 0x63, + 0x61, 0x6c, 0x65, 0x2e, 0x75, 0x74, 0x63, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x47, 0x6f, 0x28, 0x74, 0x61, 0x2e, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, + 0x28, 0x29, 0x2c, 0x57, 0x6c, 0x2c, 0x4a, 0x6c, 0x29, 0x7d, 0x2c, + 0x74, 0x61, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x3d, 0x41, 0x74, 0x28, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x65, 0x78, 0x74, + 0x7d, 0x29, 0x2c, 0x74, 0x61, 0x2e, 0x6a, 0x73, 0x6f, 0x6e, 0x3d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x4e, + 0x74, 0x28, 0x6e, 0x2c, 0x22, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x22, + 0x2c, 0x51, 0x6f, 0x2c, 0x74, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, + 0x68, 0x74, 0x6d, 0x6c, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x4e, 0x74, 0x28, 0x6e, 0x2c, 0x22, 0x74, + 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x2c, 0x6e, + 0x61, 0x2c, 0x74, 0x29, 0x7d, 0x2c, 0x74, 0x61, 0x2e, 0x78, 0x6d, + 0x6c, 0x3d, 0x41, 0x74, 0x28, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x6e, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x58, 0x4d, 0x4c, 0x7d, 0x29, 0x2c, 0x22, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, + 0x65, 0x6f, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x26, + 0x26, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x2e, 0x61, 0x6d, 0x64, + 0x3f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x28, 0x74, 0x61, 0x29, + 0x3a, 0x22, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x3d, 0x3d, + 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x26, 0x26, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x26, 0x26, 0x28, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x3d, 0x74, 0x61, 0x29, 0x2c, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x64, 0x33, 0x3d, 0x74, 0x61, 0x7d, 0x28, 0x29, 0x3b, 0x00 +}; + +const int d3_js_length = 151140; diff --git a/src/goaccess++/src/error.c b/src/goaccess++/src/error.c new file mode 100644 index 0000000..7738eed --- /dev/null +++ b/src/goaccess++/src/error.c @@ -0,0 +1,237 @@ +/** + * error.c -- error handling + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <signal.h> +#if defined(__GLIBC__) +#include <execinfo.h> +#endif +#include <sys/types.h> +#include <unistd.h> + +#include "error.h" +#include "labels.h" +#include "parser.h" + +static FILE *access_log; +static FILE *log_file; +static FILE *log_invalid; +static GLog *log_data; + +/* Open a debug file whose name is specified in the given path. */ +void +dbg_log_open (const char *path) +{ + if (path != NULL) { + log_file = fopen (path, "w"); + if (log_file == NULL) + return; + } +} + +/* Close the debug file. */ +void +dbg_log_close (void) +{ + if (log_file != NULL) + fclose (log_file); +} + +/* Open the invalid requests log file whose name is specified in the + * given path. */ +void +invalid_log_open (const char *path) +{ + if (path != NULL) { + log_invalid = fopen (path, "w"); + if (log_invalid == NULL) + return; + } +} + +/* Close the invalid requests log file. */ +void +invalid_log_close (void) +{ + if (log_invalid != NULL) + fclose (log_invalid); +} + +/* Set current overall parsed log data. */ +void +set_signal_data (void *p) +{ + log_data = p; +} + +/* Open the WebSocket access log file whose name is specified in the + * given path. */ +int +access_log_open (const char *path) +{ + if (path == NULL) + return 0; + + if (access (path, F_OK) != -1) + access_log = fopen (path, "a"); + else + access_log = fopen (path, "w"); + if (access_log == NULL) + return 1; + + return 0; +} + +/* Close the WebSocket access log file. */ +void +access_log_close (void) +{ + if (access_log != NULL) + fclose (access_log); +} + +/* Dump to the standard output the values of the overall parsed log + * data. */ +static void +dump_struct (FILE * fp) +{ + int pid = getpid (); + if (!log_data) + return; + + fprintf (fp, "==%d== VALUES AT CRASH POINT\n", pid); + fprintf (fp, "==%d==\n", pid); + fprintf (fp, "==%d== Line number: %u\n", pid, log_data->processed); + fprintf (fp, "==%d== Offset: %u\n", pid, log_data->offset); + fprintf (fp, "==%d== Invalid data: %u\n", pid, log_data->invalid); + fprintf (fp, "==%d== Piping: %d\n", pid, log_data->piping); + fprintf (fp, "==%d== Response size: %llu bytes\n", pid, log_data->resp_size); + fprintf (fp, "==%d==\n", pid); +} + +/* Custom SIGSEGV handler. */ +void +sigsegv_handler (int sig) +{ + FILE *fp = stderr; + int pid = getpid (); + +#if defined(__GLIBC__) + char **messages; + size_t size, i; + void *trace_stack[TRACE_SIZE]; +#endif + + (void) endwin (); + fprintf (fp, "\n"); + fprintf (fp, "==%d== GoAccess %s crashed by Sig %d\n", pid, GO_VERSION, sig); + fprintf (fp, "==%d==\n", pid); + + dump_struct (fp); + +#if defined(__GLIBC__) + size = backtrace (trace_stack, TRACE_SIZE); + messages = backtrace_symbols (trace_stack, size); + + fprintf (fp, "==%d== STACK TRACE:\n", pid); + fprintf (fp, "==%d==\n", pid); + + for (i = 0; i < size; i++) + fprintf (fp, "==%d== %zu %s\n", pid, i, messages[i]); +#endif + + fprintf (fp, "==%d==\n", pid); + fprintf (fp, "==%d== %s:\n", pid, ERR_PLEASE_REPORT); + fprintf (fp, "==%d== https://github.com/allinurl/goaccess/issues\n\n", pid); + exit (EXIT_FAILURE); +} + +#pragma GCC diagnostic ignored "-Wformat-nonliteral" +/* Write formatted debug log data to the logfile. */ +void +dbg_fprintf (const char *fmt, ...) +{ + va_list args; + + if (!log_file) + return; + + va_start (args, fmt); + vfprintf (log_file, fmt, args); + fflush (log_file); + va_end (args); +} + +/* Write formatted invalid requests log data to the logfile. */ +void +invalid_fprintf (const char *fmt, ...) +{ + va_list args; + + if (!log_invalid) + return; + + va_start (args, fmt); + vfprintf (log_invalid, fmt, args); + fflush (log_invalid); + va_end (args); +} + +/* Debug otuput */ +void +dbg_printf (const char *fmt, ...) +{ + va_list args; + va_start (args, fmt); + vfprintf (stderr, fmt, args); + va_end (args); +} + +/* Write formatted access log data to the logfile. */ +void +access_fprintf (const char *fmt, ...) +{ + va_list args; + + if (!access_log) + return; + + va_start (args, fmt); + vfprintf (access_log, fmt, args); + fflush (access_log); + va_end (args); +} + +#pragma GCC diagnostic warning "-Wformat-nonliteral" diff --git a/src/goaccess++/src/error.h b/src/goaccess++/src/error.h new file mode 100644 index 0000000..08b754e --- /dev/null +++ b/src/goaccess++/src/error.h @@ -0,0 +1,94 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef ERROR_H_INCLUDED +#define ERROR_H_INCLUDED + +#ifndef COMMONS +#include "commons.h" +#endif + +#ifdef HAVE_NCURSESW_NCURSES_H +#include <ncursesw/ncurses.h> +#elif HAVE_NCURSES_NCURSES_H +#include <ncurses/ncurses.h> +#elif HAVE_NCURSES_H +#include <ncurses.h> +#elif HAVE_CURSES_H +#include <curses.h> +#endif + +#include "settings.h" + +#define TRACE_SIZE 128 + +#define FATAL(fmt, ...) do { \ + (void) endwin (); \ + fprintf (stderr, "\nGoAccess - version %s - %s %s\n", GO_VERSION, __DATE__, \ + __TIME__); \ + fprintf (stderr, "Config file: %s\n", conf.iconfigfile ?: NO_CONFIG_FILE); \ + fprintf (stderr, "\nFatal error has occurred"); \ + fprintf (stderr, "\nError occurred at: %s - %s - %d\n", __FILE__, \ + __FUNCTION__, __LINE__); \ + fprintf (stderr, fmt, ##__VA_ARGS__); \ + fprintf (stderr, "\n\n"); \ + LOG_DEBUG ((fmt, ##__VA_ARGS__)); \ + exit(EXIT_FAILURE); \ +} while (0) + +#ifdef DEBUG +#define DEBUG_TEST 1 +#else +#define DEBUG_TEST 0 +#endif + +/* access requests log */ +#define ACCESS_LOG(x, ...) do { access_fprintf x; } while (0) +/* debug log */ +#define LOG_DEBUG(x, ...) do { dbg_fprintf x; } while (0) +/* invalid requests log */ +#define LOG_INVALID(x, ...) do { invalid_fprintf x; } while (0) +/* log debug wrapper */ +#define LOG(x) do { if (DEBUG_TEST) dbg_printf x; } while (0) + +int access_log_open (const char *path); +void access_fprintf (const char *fmt, ...); +void access_log_close (void); +void dbg_printf (const char *fmt, ...); + +void dbg_fprintf (const char *fmt, ...); +void dbg_log_close (void); +void dbg_log_open (const char *file); +void invalid_fprintf (const char *fmt, ...); +void invalid_log_close (void); +void invalid_log_open (const char *path); +void set_signal_data (void *p); +void sigsegv_handler (int sig); + +#endif diff --git a/src/goaccess++/src/error.o b/src/goaccess++/src/error.o new file mode 100644 index 0000000000000000000000000000000000000000..67efa2a14d7c0588508bd81200b091948a4f8bbc GIT binary patch literal 8208 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 Q@m1UyU{Bgf?d^>JC)Q9mNdN!< literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/facss.h b/src/goaccess++/src/facss.h new file mode 100644 index 0000000..af7a141 --- /dev/null +++ b/src/goaccess++/src/facss.h @@ -0,0 +1,1683 @@ +const char fa_css[18459] = { + 0x40, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x63, 0x65, 0x20, + 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x3a, 0x20, 0x27, 0x66, 0x61, 0x27, 0x3b, 0x73, 0x72, 0x63, + 0x3a, 0x20, 0x75, 0x72, 0x6c, 0x28, 0x64, 0x61, 0x74, 0x61, 0x3a, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x6f, 0x66, 0x66, 0x3b, + 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x75, 0x74, 0x66, + 0x2d, 0x38, 0x3b, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x2c, 0x64, + 0x30, 0x39, 0x47, 0x52, 0x67, 0x41, 0x42, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x43, 0x32, 0x73, 0x41, 0x41, 0x73, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x4c, 0x57, 0x41, 0x41, 0x41, 0x51, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x42, 0x50, 0x55, 0x79, 0x38, 0x79, 0x41, 0x41, 0x41, + 0x42, 0x43, 0x41, 0x41, 0x41, 0x41, 0x47, 0x41, 0x41, 0x41, 0x41, + 0x42, 0x67, 0x44, 0x78, 0x49, 0x50, 0x48, 0x47, 0x4e, 0x74, 0x59, + 0x58, 0x41, 0x41, 0x41, 0x41, 0x46, 0x6f, 0x41, 0x41, 0x41, 0x42, + 0x62, 0x41, 0x41, 0x41, 0x41, 0x57, 0x7a, 0x7a, 0x59, 0x50, 0x4e, + 0x38, 0x5a, 0x32, 0x46, 0x7a, 0x63, 0x41, 0x41, 0x41, 0x41, 0x74, + 0x51, 0x41, 0x41, 0x41, 0x41, 0x49, 0x41, 0x41, 0x41, 0x41, 0x43, + 0x41, 0x41, 0x41, 0x41, 0x42, 0x42, 0x6e, 0x62, 0x48, 0x6c, 0x6d, + 0x41, 0x41, 0x41, 0x43, 0x33, 0x41, 0x41, 0x41, 0x4a, 0x37, 0x51, + 0x41, 0x41, 0x43, 0x65, 0x30, 0x50, 0x71, 0x52, 0x50, 0x66, 0x32, + 0x68, 0x6c, 0x59, 0x57, 0x51, 0x41, 0x41, 0x43, 0x71, 0x51, 0x41, + 0x41, 0x41, 0x41, 0x4e, 0x67, 0x41, 0x41, 0x41, 0x44, 0x59, 0x53, + 0x42, 0x68, 0x72, 0x48, 0x61, 0x47, 0x68, 0x6c, 0x59, 0x51, 0x41, + 0x41, 0x4b, 0x73, 0x67, 0x41, 0x41, 0x41, 0x41, 0x6b, 0x41, 0x41, + 0x41, 0x41, 0x4a, 0x41, 0x68, 0x55, 0x42, 0x49, 0x5a, 0x6f, 0x62, + 0x58, 0x52, 0x34, 0x41, 0x41, 0x41, 0x71, 0x37, 0x41, 0x41, 0x41, + 0x41, 0x4d, 0x77, 0x41, 0x41, 0x41, 0x44, 0x4d, 0x70, 0x43, 0x6f, + 0x43, 0x43, 0x32, 0x78, 0x76, 0x59, 0x32, 0x45, 0x41, 0x41, 0x43, + 0x75, 0x34, 0x41, 0x41, 0x41, 0x41, 0x61, 0x41, 0x41, 0x41, 0x41, + 0x47, 0x6a, 0x79, 0x72, 0x76, 0x75, 0x65, 0x62, 0x57, 0x46, 0x34, + 0x63, 0x41, 0x41, 0x41, 0x4c, 0x43, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x67, 0x41, 0x41, 0x41, 0x41, 0x49, 0x41, 0x41, 0x2b, 0x41, 0x56, + 0x64, 0x75, 0x59, 0x57, 0x31, 0x6c, 0x41, 0x41, 0x41, 0x73, 0x51, + 0x41, 0x41, 0x41, 0x41, 0x55, 0x6f, 0x41, 0x41, 0x41, 0x46, 0x4b, + 0x49, 0x68, 0x57, 0x54, 0x73, 0x6e, 0x42, 0x76, 0x63, 0x33, 0x51, + 0x41, 0x41, 0x43, 0x32, 0x4d, 0x41, 0x41, 0x41, 0x41, 0x49, 0x41, + 0x41, 0x41, 0x41, 0x43, 0x41, 0x41, 0x41, 0x77, 0x41, 0x41, 0x41, + 0x41, 0x4d, 0x44, 0x56, 0x67, 0x47, 0x51, 0x41, 0x41, 0x55, 0x41, + 0x41, 0x41, 0x4b, 0x5a, 0x41, 0x73, 0x77, 0x41, 0x41, 0x41, 0x43, + 0x50, 0x41, 0x70, 0x6b, 0x43, 0x7a, 0x41, 0x41, 0x41, 0x41, 0x65, + 0x73, 0x41, 0x4d, 0x77, 0x45, 0x4a, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x52, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x51, 0x41, 0x41, 0x41, 0x38, + 0x70, 0x77, 0x44, 0x77, 0x50, 0x2f, 0x41, 0x41, 0x45, 0x41, 0x44, + 0x77, 0x41, 0x42, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x51, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x49, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x77, 0x41, 0x41, 0x41, 0x41, 0x4d, 0x41, 0x41, 0x41, 0x41, 0x63, + 0x41, 0x41, 0x45, 0x41, 0x41, 0x77, 0x41, 0x41, 0x41, 0x42, 0x77, + 0x41, 0x41, 0x77, 0x41, 0x42, 0x41, 0x41, 0x41, 0x41, 0x48, 0x41, + 0x41, 0x45, 0x41, 0x56, 0x41, 0x41, 0x41, 0x41, 0x42, 0x51, 0x41, + 0x45, 0x41, 0x41, 0x42, 0x51, 0x41, 0x51, 0x41, 0x41, 0x45, 0x41, + 0x49, 0x50, 0x41, 0x48, 0x38, 0x41, 0x6e, 0x77, 0x44, 0x66, 0x41, + 0x54, 0x38, 0x42, 0x66, 0x77, 0x49, 0x76, 0x41, 0x36, 0x38, 0x45, + 0x48, 0x77, 0x52, 0x76, 0x42, 0x55, 0x38, 0x48, 0x48, 0x77, 0x67, + 0x50, 0x43, 0x46, 0x38, 0x49, 0x37, 0x77, 0x6c, 0x76, 0x43, 0x69, + 0x38, 0x4d, 0x44, 0x77, 0x79, 0x66, 0x44, 0x4f, 0x38, 0x4e, 0x72, + 0x77, 0x33, 0x50, 0x44, 0x6b, 0x38, 0x51, 0x48, 0x78, 0x42, 0x66, + 0x45, 0x49, 0x38, 0x51, 0x7a, 0x78, 0x45, 0x66, 0x45, 0x68, 0x38, + 0x56, 0x7a, 0x78, 0x6f, 0x50, 0x48, 0x4f, 0x38, 0x66, 0x66, 0x78, + 0x2f, 0x76, 0x4a, 0x6f, 0x38, 0x70, 0x4c, 0x79, 0x6e, 0x50, 0x2f, + 0x39, 0x2f, 0x2f, 0x38, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, + 0x44, 0x77, 0x42, 0x2f, 0x41, 0x4a, 0x38, 0x41, 0x76, 0x77, 0x45, + 0x2f, 0x41, 0x57, 0x38, 0x43, 0x48, 0x77, 0x4f, 0x76, 0x42, 0x42, + 0x38, 0x45, 0x62, 0x77, 0x55, 0x2f, 0x42, 0x78, 0x38, 0x49, 0x44, + 0x77, 0x68, 0x66, 0x43, 0x4f, 0x38, 0x4a, 0x62, 0x77, 0x6f, 0x76, + 0x44, 0x41, 0x38, 0x4d, 0x6e, 0x77, 0x7a, 0x76, 0x44, 0x58, 0x38, + 0x4e, 0x7a, 0x77, 0x35, 0x50, 0x45, 0x41, 0x38, 0x51, 0x54, 0x78, + 0x43, 0x50, 0x45, 0x4d, 0x38, 0x52, 0x48, 0x78, 0x49, 0x66, 0x46, + 0x62, 0x38, 0x61, 0x44, 0x78, 0x7a, 0x76, 0x48, 0x33, 0x38, 0x66, + 0x37, 0x79, 0x61, 0x50, 0x4b, 0x53, 0x38, 0x70, 0x7a, 0x2f, 0x2f, + 0x66, 0x2f, 0x2f, 0x41, 0x41, 0x48, 0x2f, 0x34, 0x77, 0x2f, 0x39, + 0x44, 0x2f, 0x77, 0x50, 0x2b, 0x77, 0x2f, 0x32, 0x44, 0x2f, 0x51, + 0x50, 0x36, 0x77, 0x2f, 0x55, 0x44, 0x38, 0x34, 0x50, 0x79, 0x67, + 0x2b, 0x2b, 0x44, 0x36, 0x49, 0x50, 0x6c, 0x41, 0x2b, 0x51, 0x44, + 0x34, 0x67, 0x50, 0x67, 0x51, 0x39, 0x32, 0x44, 0x31, 0x6b, 0x50, + 0x55, 0x51, 0x39, 0x4e, 0x44, 0x30, 0x55, 0x50, 0x52, 0x41, 0x38, + 0x39, 0x44, 0x79, 0x49, 0x50, 0x49, 0x41, 0x38, 0x65, 0x44, 0x78, + 0x73, 0x50, 0x46, 0x77, 0x38, 0x49, 0x44, 0x73, 0x38, 0x4f, 0x6a, + 0x41, 0x35, 0x66, 0x44, 0x6a, 0x63, 0x4f, 0x4d, 0x51, 0x33, 0x49, + 0x44, 0x5a, 0x38, 0x4e, 0x6c, 0x67, 0x41, 0x44, 0x41, 0x41, 0x45, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x41, 0x48, 0x2f, 0x2f, 0x77, 0x41, 0x50, 0x41, 0x41, 0x45, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x43, 0x41, 0x41, 0x41, 0x33, 0x4f, 0x51, 0x45, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x51, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x49, 0x41, 0x41, 0x44, 0x63, 0x35, + 0x41, 0x51, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x67, + 0x41, 0x41, 0x4e, 0x7a, 0x6b, 0x42, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x49, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x74, 0x73, 0x44, + 0x62, 0x67, 0x41, 0x62, 0x41, 0x44, 0x63, 0x41, 0x41, 0x43, 0x55, + 0x55, 0x42, 0x69, 0x4d, 0x68, 0x49, 0x69, 0x59, 0x31, 0x4e, 0x44, + 0x63, 0x2b, 0x41, 0x54, 0x63, 0x32, 0x4d, 0x78, 0x34, 0x42, 0x4d, + 0x7a, 0x49, 0x32, 0x4e, 0x7a, 0x49, 0x58, 0x48, 0x67, 0x45, 0x58, + 0x46, 0x68, 0x55, 0x44, 0x46, 0x41, 0x63, 0x4f, 0x41, 0x51, 0x63, + 0x47, 0x49, 0x79, 0x49, 0x6e, 0x4c, 0x67, 0x45, 0x6e, 0x4a, 0x6a, + 0x55, 0x30, 0x4e, 0x7a, 0x34, 0x42, 0x4e, 0x7a, 0x59, 0x7a, 0x4d, + 0x68, 0x63, 0x65, 0x41, 0x52, 0x63, 0x57, 0x41, 0x74, 0x74, 0x48, + 0x4d, 0x76, 0x34, 0x59, 0x4d, 0x6b, 0x67, 0x49, 0x43, 0x43, 0x6f, + 0x6c, 0x4a, 0x44, 0x67, 0x6a, 0x57, 0x7a, 0x55, 0x30, 0x58, 0x43, + 0x4d, 0x34, 0x4a, 0x43, 0x51, 0x71, 0x43, 0x41, 0x69, 0x53, 0x45, + 0x52, 0x45, 0x38, 0x4b, 0x43, 0x67, 0x74, 0x4c, 0x69, 0x67, 0x6f, + 0x4f, 0x78, 0x45, 0x53, 0x45, 0x68, 0x45, 0x37, 0x4b, 0x43, 0x67, + 0x75, 0x4c, 0x53, 0x67, 0x6f, 0x50, 0x42, 0x45, 0x52, 0x6c, 0x7a, + 0x35, 0x5a, 0x57, 0x54, 0x34, 0x35, 0x4f, 0x54, 0x70, 0x64, 0x48, + 0x68, 0x30, 0x68, 0x4b, 0x43, 0x67, 0x68, 0x48, 0x52, 0x35, 0x64, + 0x4f, 0x6a, 0x6b, 0x35, 0x41, 0x66, 0x73, 0x74, 0x4b, 0x43, 0x67, + 0x38, 0x45, 0x52, 0x45, 0x52, 0x45, 0x54, 0x77, 0x6f, 0x4b, 0x43, + 0x30, 0x75, 0x4b, 0x43, 0x67, 0x37, 0x45, 0x52, 0x49, 0x53, 0x45, + 0x54, 0x73, 0x6f, 0x4b, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x45, + 0x41, 0x41, 0x41, 0x41, 0x53, 0x51, 0x4f, 0x33, 0x41, 0x32, 0x34, + 0x41, 0x45, 0x41, 0x41, 0x68, 0x41, 0x44, 0x45, 0x41, 0x51, 0x51, + 0x41, 0x41, 0x41, 0x52, 0x55, 0x55, 0x42, 0x69, 0x4d, 0x68, 0x49, + 0x69, 0x59, 0x39, 0x41, 0x54, 0x51, 0x32, 0x4d, 0x79, 0x45, 0x79, + 0x46, 0x68, 0x55, 0x52, 0x46, 0x52, 0x51, 0x47, 0x49, 0x79, 0x45, + 0x69, 0x4a, 0x6a, 0x30, 0x42, 0x4e, 0x44, 0x59, 0x7a, 0x49, 0x54, + 0x49, 0x57, 0x46, 0x51, 0x45, 0x56, 0x46, 0x41, 0x59, 0x6a, 0x49, + 0x53, 0x49, 0x6d, 0x50, 0x51, 0x45, 0x30, 0x4e, 0x6a, 0x4d, 0x68, + 0x4d, 0x68, 0x59, 0x52, 0x46, 0x52, 0x51, 0x47, 0x49, 0x79, 0x45, + 0x69, 0x4a, 0x6a, 0x30, 0x42, 0x4e, 0x44, 0x59, 0x7a, 0x49, 0x54, + 0x49, 0x57, 0x41, 0x62, 0x63, 0x72, 0x48, 0x76, 0x37, 0x62, 0x48, + 0x69, 0x73, 0x72, 0x48, 0x67, 0x45, 0x6c, 0x48, 0x69, 0x73, 0x72, + 0x48, 0x76, 0x37, 0x62, 0x48, 0x69, 0x73, 0x72, 0x48, 0x67, 0x45, + 0x6c, 0x48, 0x69, 0x73, 0x43, 0x41, 0x43, 0x73, 0x65, 0x2f, 0x74, + 0x73, 0x65, 0x4b, 0x79, 0x73, 0x65, 0x41, 0x53, 0x55, 0x65, 0x4b, + 0x79, 0x73, 0x65, 0x2f, 0x74, 0x73, 0x65, 0x4b, 0x79, 0x73, 0x65, + 0x41, 0x53, 0x55, 0x65, 0x4b, 0x77, 0x46, 0x75, 0x33, 0x42, 0x34, + 0x72, 0x4b, 0x78, 0x37, 0x63, 0x48, 0x69, 0x73, 0x72, 0x48, 0x67, + 0x47, 0x33, 0x33, 0x42, 0x34, 0x72, 0x4b, 0x78, 0x37, 0x63, 0x48, + 0x69, 0x73, 0x72, 0x48, 0x76, 0x35, 0x4a, 0x33, 0x42, 0x34, 0x72, + 0x4b, 0x78, 0x37, 0x63, 0x48, 0x69, 0x73, 0x72, 0x41, 0x5a, 0x6e, + 0x63, 0x48, 0x69, 0x73, 0x72, 0x48, 0x74, 0x77, 0x65, 0x4b, 0x79, + 0x73, 0x41, 0x42, 0x67, 0x41, 0x41, 0x41, 0x45, 0x6b, 0x45, 0x41, + 0x41, 0x4e, 0x75, 0x41, 0x41, 0x38, 0x41, 0x48, 0x77, 0x41, 0x76, + 0x41, 0x44, 0x38, 0x41, 0x54, 0x77, 0x42, 0x66, 0x41, 0x41, 0x41, + 0x6c, 0x46, 0x52, 0x51, 0x47, 0x4b, 0x77, 0x45, 0x69, 0x4a, 0x6a, + 0x30, 0x42, 0x4e, 0x44, 0x59, 0x37, 0x41, 0x54, 0x49, 0x57, 0x45, + 0x52, 0x55, 0x55, 0x42, 0x69, 0x73, 0x42, 0x49, 0x69, 0x59, 0x39, + 0x41, 0x54, 0x51, 0x32, 0x4f, 0x77, 0x45, 0x79, 0x46, 0x67, 0x45, + 0x56, 0x46, 0x41, 0x59, 0x6a, 0x49, 0x53, 0x49, 0x6d, 0x50, 0x51, + 0x45, 0x30, 0x4e, 0x6a, 0x4d, 0x68, 0x4d, 0x68, 0x59, 0x42, 0x46, + 0x52, 0x51, 0x47, 0x4b, 0x77, 0x45, 0x69, 0x4a, 0x6a, 0x30, 0x42, + 0x4e, 0x44, 0x59, 0x37, 0x41, 0x54, 0x49, 0x57, 0x41, 0x52, 0x55, + 0x55, 0x42, 0x69, 0x4d, 0x68, 0x49, 0x69, 0x59, 0x39, 0x41, 0x54, + 0x51, 0x32, 0x4d, 0x79, 0x45, 0x79, 0x46, 0x68, 0x45, 0x56, 0x46, + 0x41, 0x59, 0x6a, 0x49, 0x53, 0x49, 0x6d, 0x50, 0x51, 0x45, 0x30, + 0x4e, 0x6a, 0x4d, 0x68, 0x4d, 0x68, 0x59, 0x42, 0x4a, 0x53, 0x45, + 0x57, 0x74, 0x78, 0x63, 0x67, 0x49, 0x42, 0x65, 0x33, 0x46, 0x69, + 0x45, 0x68, 0x46, 0x72, 0x63, 0x58, 0x49, 0x43, 0x41, 0x58, 0x74, + 0x78, 0x59, 0x68, 0x41, 0x74, 0x73, 0x67, 0x46, 0x2f, 0x33, 0x63, + 0x46, 0x79, 0x41, 0x67, 0x46, 0x77, 0x49, 0x6b, 0x46, 0x79, 0x44, + 0x39, 0x4a, 0x53, 0x45, 0x57, 0x74, 0x78, 0x63, 0x67, 0x49, 0x42, + 0x65, 0x33, 0x46, 0x69, 0x45, 0x43, 0x32, 0x79, 0x41, 0x58, 0x2f, + 0x64, 0x77, 0x58, 0x49, 0x43, 0x41, 0x58, 0x41, 0x69, 0x51, 0x58, + 0x49, 0x43, 0x41, 0x58, 0x2f, 0x64, 0x77, 0x58, 0x49, 0x43, 0x41, + 0x58, 0x41, 0x69, 0x51, 0x58, 0x49, 0x4f, 0x35, 0x75, 0x46, 0x79, + 0x41, 0x67, 0x46, 0x32, 0x34, 0x57, 0x49, 0x53, 0x45, 0x42, 0x44, + 0x6d, 0x30, 0x58, 0x49, 0x43, 0x41, 0x58, 0x62, 0x52, 0x63, 0x67, + 0x49, 0x50, 0x37, 0x46, 0x62, 0x68, 0x63, 0x67, 0x49, 0x42, 0x64, + 0x75, 0x46, 0x69, 0x45, 0x68, 0x41, 0x6a, 0x4e, 0x75, 0x46, 0x79, + 0x41, 0x67, 0x46, 0x32, 0x34, 0x58, 0x49, 0x43, 0x44, 0x2b, 0x78, + 0x47, 0x30, 0x58, 0x49, 0x43, 0x41, 0x58, 0x62, 0x52, 0x63, 0x67, + 0x49, 0x41, 0x45, 0x4f, 0x62, 0x68, 0x63, 0x67, 0x49, 0x42, 0x64, + 0x75, 0x46, 0x79, 0x41, 0x67, 0x41, 0x41, 0x41, 0x42, 0x41, 0x45, + 0x55, 0x41, 0x55, 0x51, 0x4f, 0x37, 0x41, 0x76, 0x67, 0x41, 0x4a, + 0x41, 0x41, 0x41, 0x41, 0x52, 0x51, 0x47, 0x42, 0x77, 0x45, 0x4f, + 0x41, 0x53, 0x4d, 0x69, 0x4a, 0x69, 0x63, 0x42, 0x4c, 0x67, 0x45, + 0x31, 0x4e, 0x44, 0x59, 0x2f, 0x41, 0x54, 0x34, 0x42, 0x4d, 0x7a, + 0x49, 0x57, 0x48, 0x77, 0x45, 0x42, 0x50, 0x67, 0x45, 0x7a, 0x4d, + 0x68, 0x59, 0x66, 0x41, 0x52, 0x34, 0x42, 0x46, 0x51, 0x4f, 0x37, + 0x43, 0x41, 0x6a, 0x2b, 0x46, 0x41, 0x63, 0x56, 0x43, 0x67, 0x73, + 0x56, 0x42, 0x2f, 0x37, 0x6a, 0x43, 0x41, 0x67, 0x49, 0x43, 0x45, + 0x34, 0x49, 0x46, 0x41, 0x73, 0x4b, 0x46, 0x51, 0x69, 0x6f, 0x41, + 0x58, 0x59, 0x49, 0x46, 0x51, 0x6f, 0x4c, 0x46, 0x41, 0x68, 0x4f, + 0x43, 0x41, 0x67, 0x43, 0x63, 0x77, 0x6f, 0x56, 0x42, 0x2f, 0x34, + 0x55, 0x43, 0x41, 0x67, 0x49, 0x43, 0x41, 0x45, 0x64, 0x42, 0x78, + 0x55, 0x4c, 0x43, 0x68, 0x55, 0x48, 0x54, 0x67, 0x67, 0x49, 0x43, + 0x41, 0x69, 0x6f, 0x41, 0x58, 0x63, 0x49, 0x43, 0x41, 0x67, 0x49, + 0x54, 0x67, 0x63, 0x56, 0x43, 0x77, 0x41, 0x41, 0x41, 0x51, 0x41, + 0x2f, 0x41, 0x44, 0x38, 0x43, 0x35, 0x67, 0x4c, 0x6d, 0x41, 0x44, + 0x77, 0x41, 0x41, 0x43, 0x55, 0x55, 0x42, 0x67, 0x38, 0x42, 0x44, + 0x67, 0x45, 0x6a, 0x49, 0x69, 0x59, 0x76, 0x41, 0x51, 0x63, 0x4f, + 0x41, 0x53, 0x4d, 0x69, 0x4a, 0x69, 0x38, 0x42, 0x4c, 0x67, 0x45, + 0x31, 0x4e, 0x44, 0x59, 0x2f, 0x41, 0x53, 0x63, 0x75, 0x41, 0x54, + 0x55, 0x30, 0x4e, 0x6a, 0x38, 0x42, 0x50, 0x67, 0x45, 0x7a, 0x4d, + 0x68, 0x59, 0x66, 0x41, 0x54, 0x63, 0x2b, 0x41, 0x54, 0x4d, 0x79, + 0x46, 0x68, 0x38, 0x42, 0x48, 0x67, 0x45, 0x56, 0x46, 0x41, 0x59, + 0x50, 0x41, 0x52, 0x63, 0x65, 0x41, 0x52, 0x55, 0x43, 0x35, 0x67, + 0x6b, 0x48, 0x54, 0x67, 0x67, 0x55, 0x43, 0x77, 0x73, 0x55, 0x43, + 0x4b, 0x69, 0x6f, 0x42, 0x78, 0x55, 0x4c, 0x43, 0x68, 0x55, 0x48, + 0x54, 0x67, 0x67, 0x49, 0x43, 0x41, 0x69, 0x6f, 0x71, 0x41, 0x67, + 0x49, 0x43, 0x41, 0x68, 0x4f, 0x42, 0x78, 0x55, 0x4b, 0x43, 0x78, + 0x55, 0x48, 0x71, 0x4b, 0x67, 0x49, 0x46, 0x41, 0x73, 0x4c, 0x46, + 0x41, 0x68, 0x4f, 0x42, 0x77, 0x6b, 0x4a, 0x42, 0x36, 0x69, 0x6f, + 0x42, 0x77, 0x6e, 0x44, 0x43, 0x68, 0x55, 0x48, 0x54, 0x67, 0x67, + 0x49, 0x43, 0x41, 0x69, 0x6f, 0x71, 0x41, 0x67, 0x49, 0x43, 0x41, + 0x68, 0x4f, 0x42, 0x78, 0x55, 0x4b, 0x43, 0x78, 0x55, 0x48, 0x71, + 0x4b, 0x67, 0x49, 0x46, 0x41, 0x73, 0x4c, 0x46, 0x41, 0x68, 0x4f, + 0x42, 0x77, 0x6b, 0x4a, 0x42, 0x36, 0x69, 0x6f, 0x42, 0x77, 0x6b, + 0x4a, 0x42, 0x30, 0x34, 0x49, 0x46, 0x41, 0x73, 0x4c, 0x46, 0x41, + 0x69, 0x6f, 0x71, 0x41, 0x63, 0x56, 0x43, 0x77, 0x41, 0x41, 0x41, + 0x41, 0x49, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x32, 0x34, 0x44, + 0x62, 0x67, 0x41, 0x4c, 0x41, 0x4a, 0x49, 0x41, 0x41, 0x41, 0x45, + 0x30, 0x4a, 0x69, 0x4d, 0x69, 0x42, 0x68, 0x55, 0x55, 0x46, 0x6a, + 0x4d, 0x79, 0x4e, 0x69, 0x55, 0x56, 0x46, 0x41, 0x59, 0x50, 0x41, + 0x51, 0x34, 0x42, 0x42, 0x78, 0x34, 0x42, 0x46, 0x78, 0x34, 0x42, + 0x46, 0x52, 0x51, 0x47, 0x42, 0x77, 0x34, 0x42, 0x49, 0x79, 0x49, + 0x6d, 0x4c, 0x77, 0x45, 0x4f, 0x41, 0x51, 0x63, 0x4f, 0x41, 0x51, + 0x63, 0x4f, 0x41, 0x53, 0x73, 0x42, 0x49, 0x69, 0x59, 0x76, 0x41, + 0x53, 0x34, 0x42, 0x4a, 0x77, 0x63, 0x4f, 0x41, 0x53, 0x4d, 0x69, + 0x4a, 0x69, 0x63, 0x75, 0x41, 0x53, 0x63, 0x75, 0x41, 0x54, 0x55, + 0x30, 0x4e, 0x6a, 0x63, 0x2b, 0x41, 0x54, 0x63, 0x75, 0x41, 0x53, + 0x38, 0x42, 0x4c, 0x67, 0x45, 0x39, 0x41, 0x54, 0x51, 0x32, 0x50, + 0x77, 0x45, 0x2b, 0x41, 0x54, 0x63, 0x75, 0x41, 0x53, 0x63, 0x75, + 0x41, 0x54, 0x55, 0x30, 0x4e, 0x6a, 0x63, 0x2b, 0x41, 0x54, 0x4d, + 0x79, 0x46, 0x68, 0x38, 0x42, 0x50, 0x67, 0x45, 0x33, 0x50, 0x67, + 0x45, 0x33, 0x50, 0x67, 0x45, 0x37, 0x41, 0x54, 0x49, 0x57, 0x48, + 0x77, 0x45, 0x65, 0x41, 0x52, 0x63, 0x33, 0x50, 0x67, 0x45, 0x7a, + 0x4d, 0x68, 0x59, 0x58, 0x48, 0x67, 0x45, 0x58, 0x48, 0x67, 0x45, + 0x56, 0x46, 0x41, 0x59, 0x48, 0x44, 0x67, 0x45, 0x48, 0x48, 0x67, + 0x45, 0x66, 0x41, 0x52, 0x34, 0x42, 0x46, 0x51, 0x4a, 0x4a, 0x56, + 0x6a, 0x77, 0x39, 0x56, 0x56, 0x55, 0x39, 0x50, 0x46, 0x59, 0x42, + 0x4a, 0x51, 0x6b, 0x48, 0x61, 0x67, 0x55, 0x4b, 0x42, 0x77, 0x34, + 0x66, 0x45, 0x41, 0x49, 0x45, 0x41, 0x77, 0x4d, 0x4b, 0x56, 0x51, + 0x38, 0x45, 0x42, 0x77, 0x52, 0x50, 0x44, 0x42, 0x6f, 0x4f, 0x41, + 0x77, 0x59, 0x48, 0x41, 0x67, 0x73, 0x49, 0x66, 0x77, 0x63, 0x4d, + 0x41, 0x52, 0x41, 0x4e, 0x47, 0x67, 0x31, 0x51, 0x41, 0x77, 0x67, + 0x44, 0x42, 0x41, 0x67, 0x44, 0x46, 0x6a, 0x59, 0x53, 0x41, 0x67, + 0x49, 0x43, 0x41, 0x77, 0x34, 0x66, 0x44, 0x77, 0x67, 0x4d, 0x42, + 0x47, 0x67, 0x49, 0x43, 0x51, 0x6b, 0x47, 0x61, 0x77, 0x51, 0x4c, + 0x42, 0x77, 0x38, 0x65, 0x45, 0x41, 0x4d, 0x44, 0x41, 0x77, 0x49, + 0x4c, 0x56, 0x51, 0x38, 0x44, 0x43, 0x41, 0x4e, 0x50, 0x44, 0x52, + 0x6f, 0x4e, 0x41, 0x77, 0x63, 0x48, 0x41, 0x67, 0x73, 0x48, 0x66, + 0x77, 0x67, 0x4d, 0x41, 0x52, 0x41, 0x4e, 0x47, 0x67, 0x78, 0x52, + 0x41, 0x77, 0x63, 0x45, 0x42, 0x41, 0x63, 0x44, 0x46, 0x7a, 0x59, + 0x53, 0x41, 0x67, 0x49, 0x44, 0x41, 0x67, 0x34, 0x66, 0x44, 0x77, + 0x63, 0x4d, 0x42, 0x57, 0x67, 0x48, 0x43, 0x67, 0x47, 0x33, 0x50, + 0x46, 0x5a, 0x57, 0x50, 0x44, 0x31, 0x56, 0x56, 0x58, 0x74, 0x2f, + 0x42, 0x67, 0x30, 0x42, 0x45, 0x41, 0x34, 0x61, 0x44, 0x42, 0x55, + 0x6e, 0x45, 0x77, 0x4d, 0x49, 0x41, 0x77, 0x51, 0x48, 0x41, 0x77, + 0x31, 0x5a, 0x41, 0x77, 0x49, 0x2b, 0x42, 0x67, 0x73, 0x46, 0x47, + 0x6a, 0x59, 0x61, 0x42, 0x77, 0x6b, 0x4b, 0x42, 0x32, 0x6b, 0x46, + 0x43, 0x67, 0x59, 0x39, 0x41, 0x67, 0x4d, 0x44, 0x41, 0x78, 0x55, + 0x7a, 0x47, 0x41, 0x4d, 0x48, 0x42, 0x41, 0x4d, 0x48, 0x41, 0x78, + 0x4d, 0x6e, 0x46, 0x41, 0x34, 0x63, 0x44, 0x77, 0x38, 0x42, 0x44, + 0x41, 0x68, 0x2b, 0x42, 0x77, 0x30, 0x42, 0x45, 0x41, 0x34, 0x61, + 0x44, 0x52, 0x51, 0x6e, 0x45, 0x77, 0x4d, 0x48, 0x42, 0x41, 0x51, + 0x47, 0x41, 0x77, 0x35, 0x5a, 0x42, 0x41, 0x49, 0x39, 0x42, 0x67, + 0x73, 0x45, 0x47, 0x7a, 0x59, 0x61, 0x42, 0x77, 0x6b, 0x4b, 0x42, + 0x32, 0x6f, 0x45, 0x43, 0x67, 0x63, 0x39, 0x41, 0x77, 0x4d, 0x45, + 0x41, 0x68, 0x55, 0x7a, 0x47, 0x51, 0x4d, 0x47, 0x42, 0x41, 0x51, + 0x47, 0x41, 0x78, 0x51, 0x6d, 0x46, 0x41, 0x34, 0x63, 0x44, 0x68, + 0x41, 0x43, 0x44, 0x41, 0x63, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x77, 0x41, 0x41, 0x2f, 0x37, 0x63, 0x44, 0x62, 0x67, 0x4f, 0x33, + 0x41, 0x42, 0x4d, 0x41, 0x48, 0x41, 0x41, 0x6d, 0x41, 0x41, 0x41, + 0x42, 0x48, 0x67, 0x45, 0x56, 0x45, 0x52, 0x51, 0x47, 0x49, 0x79, + 0x45, 0x69, 0x4a, 0x6a, 0x55, 0x52, 0x4e, 0x44, 0x59, 0x7a, 0x49, + 0x54, 0x49, 0x57, 0x46, 0x77, 0x63, 0x56, 0x4d, 0x79, 0x34, 0x42, + 0x4c, 0x77, 0x45, 0x75, 0x41, 0x52, 0x4d, 0x52, 0x49, 0x79, 0x49, + 0x6d, 0x50, 0x51, 0x45, 0x68, 0x45, 0x53, 0x45, 0x44, 0x52, 0x78, + 0x41, 0x58, 0x49, 0x42, 0x66, 0x39, 0x41, 0x42, 0x63, 0x67, 0x49, + 0x42, 0x63, 0x43, 0x41, 0x42, 0x63, 0x33, 0x45, 0x45, 0x7a, 0x58, + 0x41, 0x77, 0x63, 0x44, 0x73, 0x67, 0x4d, 0x4f, 0x31, 0x65, 0x34, + 0x58, 0x49, 0x50, 0x35, 0x4a, 0x41, 0x74, 0x77, 0x43, 0x33, 0x68, + 0x41, 0x33, 0x46, 0x2f, 0x31, 0x75, 0x46, 0x79, 0x41, 0x67, 0x46, + 0x77, 0x4f, 0x53, 0x46, 0x79, 0x41, 0x58, 0x45, 0x43, 0x66, 0x58, + 0x43, 0x41, 0x30, 0x44, 0x73, 0x77, 0x4d, 0x48, 0x2f, 0x4a, 0x6b, + 0x43, 0x53, 0x53, 0x41, 0x58, 0x37, 0x76, 0x79, 0x53, 0x41, 0x41, + 0x4d, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x32, 0x34, 0x44, 0x62, + 0x67, 0x41, 0x56, 0x41, 0x44, 0x45, 0x41, 0x54, 0x51, 0x41, 0x41, + 0x41, 0x52, 0x45, 0x55, 0x42, 0x69, 0x73, 0x42, 0x49, 0x69, 0x59, + 0x39, 0x41, 0x54, 0x51, 0x32, 0x4f, 0x77, 0x45, 0x31, 0x4e, 0x44, + 0x59, 0x37, 0x41, 0x54, 0x49, 0x57, 0x46, 0x52, 0x63, 0x30, 0x4a, + 0x79, 0x34, 0x42, 0x4a, 0x79, 0x59, 0x6a, 0x49, 0x67, 0x63, 0x4f, + 0x41, 0x51, 0x63, 0x47, 0x46, 0x52, 0x51, 0x58, 0x48, 0x67, 0x45, + 0x58, 0x46, 0x6a, 0x4d, 0x79, 0x4e, 0x7a, 0x34, 0x42, 0x4e, 0x7a, + 0x59, 0x33, 0x46, 0x41, 0x63, 0x4f, 0x41, 0x51, 0x63, 0x47, 0x49, + 0x79, 0x49, 0x6e, 0x4c, 0x67, 0x45, 0x6e, 0x4a, 0x6a, 0x55, 0x30, + 0x4e, 0x7a, 0x34, 0x42, 0x4e, 0x7a, 0x59, 0x7a, 0x4d, 0x68, 0x63, + 0x65, 0x41, 0x52, 0x63, 0x57, 0x41, 0x67, 0x41, 0x4c, 0x42, 0x37, + 0x63, 0x49, 0x43, 0x67, 0x6f, 0x49, 0x67, 0x41, 0x6f, 0x49, 0x4a, + 0x51, 0x63, 0x4c, 0x37, 0x68, 0x6b, 0x59, 0x56, 0x54, 0x67, 0x35, + 0x51, 0x45, 0x41, 0x35, 0x4f, 0x56, 0x51, 0x5a, 0x47, 0x42, 0x67, + 0x5a, 0x56, 0x44, 0x6b, 0x35, 0x51, 0x45, 0x41, 0x35, 0x4f, 0x46, + 0x55, 0x59, 0x47, 0x59, 0x41, 0x6a, 0x49, 0x6e, 0x64, 0x51, 0x55, + 0x46, 0x74, 0x62, 0x55, 0x46, 0x42, 0x33, 0x49, 0x79, 0x49, 0x69, + 0x49, 0x33, 0x64, 0x51, 0x55, 0x46, 0x74, 0x62, 0x55, 0x46, 0x42, + 0x33, 0x49, 0x69, 0x4d, 0x43, 0x67, 0x50, 0x38, 0x41, 0x43, 0x41, + 0x6f, 0x4b, 0x43, 0x43, 0x55, 0x48, 0x43, 0x38, 0x6b, 0x49, 0x43, + 0x67, 0x6f, 0x49, 0x79, 0x55, 0x41, 0x35, 0x4f, 0x46, 0x55, 0x59, + 0x47, 0x52, 0x6b, 0x59, 0x56, 0x54, 0x67, 0x35, 0x51, 0x45, 0x41, + 0x35, 0x4f, 0x56, 0x51, 0x5a, 0x47, 0x42, 0x67, 0x5a, 0x56, 0x44, + 0x6b, 0x35, 0x51, 0x46, 0x74, 0x51, 0x55, 0x48, 0x63, 0x69, 0x49, + 0x79, 0x4d, 0x69, 0x64, 0x31, 0x42, 0x51, 0x57, 0x31, 0x74, 0x51, + 0x55, 0x48, 0x63, 0x69, 0x49, 0x79, 0x4d, 0x69, 0x64, 0x31, 0x42, + 0x51, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x49, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x32, 0x34, 0x44, 0x62, 0x67, 0x41, 0x30, 0x41, + 0x47, 0x63, 0x41, 0x41, 0x41, 0x45, 0x77, 0x46, 0x42, 0x55, 0x47, + 0x42, 0x77, 0x34, 0x42, 0x42, 0x77, 0x59, 0x6a, 0x49, 0x69, 0x63, + 0x75, 0x41, 0x53, 0x63, 0x6d, 0x4a, 0x77, 0x63, 0x4f, 0x41, 0x53, + 0x4d, 0x69, 0x4a, 0x6a, 0x55, 0x52, 0x4e, 0x44, 0x59, 0x7a, 0x49, + 0x54, 0x49, 0x57, 0x46, 0x52, 0x51, 0x47, 0x44, 0x77, 0x45, 0x65, + 0x41, 0x54, 0x4d, 0x79, 0x4e, 0x6a, 0x63, 0x2b, 0x41, 0x54, 0x63, + 0x2b, 0x41, 0x54, 0x73, 0x42, 0x4d, 0x68, 0x59, 0x56, 0x45, 0x78, + 0x45, 0x55, 0x42, 0x69, 0x4d, 0x68, 0x49, 0x69, 0x59, 0x31, 0x4e, + 0x44, 0x59, 0x2f, 0x41, 0x53, 0x34, 0x42, 0x49, 0x79, 0x49, 0x47, + 0x42, 0x77, 0x34, 0x42, 0x42, 0x77, 0x34, 0x42, 0x4b, 0x77, 0x45, + 0x69, 0x4a, 0x6a, 0x30, 0x42, 0x4e, 0x6a, 0x63, 0x2b, 0x41, 0x54, + 0x63, 0x32, 0x4d, 0x7a, 0x49, 0x58, 0x48, 0x67, 0x45, 0x58, 0x46, + 0x68, 0x63, 0x33, 0x50, 0x67, 0x45, 0x7a, 0x4d, 0x68, 0x59, 0x56, + 0x41, 0x31, 0x38, 0x53, 0x4b, 0x43, 0x64, 0x76, 0x52, 0x6b, 0x56, + 0x50, 0x4b, 0x69, 0x6b, 0x70, 0x54, 0x43, 0x4d, 0x6b, 0x48, 0x6b, + 0x6f, 0x46, 0x44, 0x51, 0x63, 0x50, 0x46, 0x68, 0x59, 0x50, 0x41, + 0x51, 0x41, 0x50, 0x46, 0x51, 0x59, 0x46, 0x54, 0x69, 0x68, 0x6f, + 0x4e, 0x30, 0x79, 0x46, 0x4b, 0x41, 0x6f, 0x4e, 0x42, 0x77, 0x49, + 0x4a, 0x42, 0x6d, 0x34, 0x49, 0x43, 0x67, 0x38, 0x57, 0x44, 0x2f, + 0x38, 0x41, 0x44, 0x78, 0x55, 0x46, 0x42, 0x55, 0x38, 0x6f, 0x61, + 0x44, 0x64, 0x4d, 0x68, 0x53, 0x67, 0x4c, 0x44, 0x41, 0x67, 0x43, + 0x43, 0x41, 0x64, 0x78, 0x43, 0x41, 0x73, 0x54, 0x4a, 0x79, 0x68, + 0x77, 0x52, 0x6b, 0x5a, 0x50, 0x4b, 0x69, 0x6b, 0x70, 0x54, 0x53, + 0x4d, 0x6b, 0x48, 0x6b, 0x6f, 0x47, 0x44, 0x51, 0x63, 0x50, 0x46, + 0x67, 0x46, 0x62, 0x41, 0x77, 0x46, 0x4c, 0x51, 0x44, 0x39, 0x62, + 0x47, 0x52, 0x6b, 0x49, 0x43, 0x42, 0x38, 0x58, 0x46, 0x68, 0x31, + 0x4b, 0x42, 0x51, 0x55, 0x56, 0x44, 0x77, 0x45, 0x41, 0x44, 0x78, + 0x59, 0x57, 0x44, 0x77, 0x63, 0x4e, 0x42, 0x6b, 0x34, 0x6d, 0x4b, + 0x55, 0x74, 0x42, 0x45, 0x43, 0x45, 0x53, 0x42, 0x67, 0x63, 0x4c, + 0x43, 0x41, 0x48, 0x4b, 0x2f, 0x77, 0x41, 0x50, 0x46, 0x68, 0x59, + 0x50, 0x42, 0x77, 0x30, 0x46, 0x54, 0x79, 0x59, 0x6f, 0x53, 0x6b, + 0x45, 0x52, 0x49, 0x52, 0x45, 0x47, 0x42, 0x77, 0x73, 0x48, 0x42, + 0x45, 0x78, 0x41, 0x50, 0x31, 0x6f, 0x61, 0x47, 0x51, 0x67, 0x4a, + 0x48, 0x78, 0x59, 0x58, 0x48, 0x45, 0x6b, 0x46, 0x42, 0x68, 0x55, + 0x50, 0x41, 0x41, 0x41, 0x41, 0x43, 0x41, 0x41, 0x41, 0x41, 0x45, + 0x6b, 0x45, 0x41, 0x41, 0x4e, 0x75, 0x41, 0x42, 0x41, 0x41, 0x49, + 0x41, 0x41, 0x77, 0x41, 0x45, 0x45, 0x41, 0x55, 0x67, 0x42, 0x6a, + 0x41, 0x48, 0x51, 0x41, 0x68, 0x41, 0x41, 0x41, 0x45, 0x78, 0x55, + 0x55, 0x42, 0x69, 0x73, 0x42, 0x49, 0x69, 0x59, 0x39, 0x41, 0x54, + 0x51, 0x32, 0x4f, 0x77, 0x45, 0x79, 0x46, 0x68, 0x55, 0x31, 0x46, + 0x52, 0x51, 0x47, 0x4b, 0x77, 0x45, 0x69, 0x4a, 0x6a, 0x30, 0x42, + 0x4e, 0x44, 0x59, 0x37, 0x41, 0x54, 0x49, 0x57, 0x4e, 0x52, 0x55, + 0x55, 0x42, 0x69, 0x73, 0x42, 0x49, 0x69, 0x59, 0x39, 0x41, 0x54, + 0x51, 0x32, 0x4f, 0x77, 0x45, 0x79, 0x46, 0x67, 0x45, 0x56, 0x46, + 0x41, 0x59, 0x6a, 0x49, 0x53, 0x49, 0x6d, 0x50, 0x51, 0x45, 0x30, + 0x4e, 0x6a, 0x4d, 0x68, 0x4d, 0x68, 0x59, 0x56, 0x4e, 0x52, 0x55, + 0x55, 0x42, 0x69, 0x4d, 0x68, 0x49, 0x69, 0x59, 0x39, 0x41, 0x54, + 0x51, 0x32, 0x4d, 0x79, 0x45, 0x79, 0x46, 0x68, 0x55, 0x31, 0x46, + 0x52, 0x51, 0x47, 0x49, 0x79, 0x45, 0x69, 0x4a, 0x6a, 0x30, 0x42, + 0x4e, 0x44, 0x59, 0x7a, 0x49, 0x54, 0x49, 0x57, 0x46, 0x52, 0x4d, + 0x52, 0x4e, 0x43, 0x59, 0x6a, 0x49, 0x53, 0x49, 0x47, 0x46, 0x52, + 0x45, 0x55, 0x46, 0x6a, 0x4d, 0x68, 0x4d, 0x6a, 0x59, 0x31, 0x45, + 0x78, 0x45, 0x55, 0x42, 0x69, 0x4d, 0x68, 0x49, 0x69, 0x59, 0x31, + 0x45, 0x54, 0x51, 0x32, 0x4d, 0x79, 0x45, 0x79, 0x46, 0x74, 0x73, + 0x4c, 0x42, 0x79, 0x51, 0x49, 0x43, 0x77, 0x73, 0x49, 0x4a, 0x41, + 0x63, 0x4c, 0x43, 0x77, 0x63, 0x6b, 0x43, 0x41, 0x73, 0x4c, 0x43, + 0x43, 0x51, 0x48, 0x43, 0x77, 0x73, 0x48, 0x4a, 0x41, 0x67, 0x4c, + 0x43, 0x77, 0x67, 0x6b, 0x42, 0x77, 0x73, 0x43, 0x6b, 0x77, 0x73, + 0x49, 0x2f, 0x64, 0x77, 0x48, 0x43, 0x77, 0x73, 0x48, 0x41, 0x69, + 0x51, 0x49, 0x43, 0x77, 0x73, 0x49, 0x2f, 0x64, 0x77, 0x48, 0x43, + 0x77, 0x73, 0x48, 0x41, 0x69, 0x51, 0x49, 0x43, 0x77, 0x73, 0x49, + 0x2f, 0x64, 0x77, 0x48, 0x43, 0x77, 0x73, 0x48, 0x41, 0x69, 0x51, + 0x49, 0x43, 0x30, 0x6b, 0x4c, 0x42, 0x2f, 0x79, 0x32, 0x42, 0x77, + 0x73, 0x4c, 0x42, 0x77, 0x4e, 0x4b, 0x42, 0x77, 0x74, 0x4a, 0x4e, + 0x69, 0x58, 0x38, 0x74, 0x69, 0x55, 0x32, 0x4e, 0x69, 0x55, 0x44, + 0x53, 0x69, 0x55, 0x32, 0x41, 0x52, 0x49, 0x6b, 0x43, 0x41, 0x73, + 0x4c, 0x43, 0x43, 0x51, 0x49, 0x43, 0x77, 0x73, 0x49, 0x6b, 0x79, + 0x55, 0x48, 0x43, 0x77, 0x73, 0x48, 0x4a, 0x51, 0x63, 0x4c, 0x43, + 0x34, 0x73, 0x6c, 0x42, 0x77, 0x73, 0x4c, 0x42, 0x79, 0x55, 0x48, + 0x43, 0x77, 0x76, 0x2b, 0x31, 0x43, 0x51, 0x49, 0x43, 0x77, 0x73, + 0x49, 0x4a, 0x41, 0x67, 0x4c, 0x43, 0x77, 0x69, 0x54, 0x4a, 0x51, + 0x63, 0x4c, 0x43, 0x77, 0x63, 0x6c, 0x42, 0x77, 0x73, 0x4c, 0x42, + 0x35, 0x49, 0x6c, 0x42, 0x77, 0x73, 0x4c, 0x42, 0x79, 0x55, 0x48, + 0x43, 0x77, 0x73, 0x48, 0x2f, 0x6d, 0x34, 0x42, 0x32, 0x77, 0x63, + 0x4c, 0x43, 0x77, 0x66, 0x2b, 0x4a, 0x51, 0x67, 0x4c, 0x43, 0x77, + 0x67, 0x43, 0x62, 0x66, 0x32, 0x54, 0x4a, 0x6a, 0x59, 0x32, 0x4a, + 0x67, 0x4a, 0x74, 0x4a, 0x6a, 0x59, 0x32, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x67, 0x41, 0x41, 0x41, 0x42, 0x4a, 0x42, 0x41, 0x41, + 0x44, 0x62, 0x67, 0x41, 0x51, 0x41, 0x43, 0x45, 0x41, 0x4d, 0x51, + 0x42, 0x43, 0x41, 0x46, 0x49, 0x41, 0x59, 0x77, 0x42, 0x7a, 0x41, + 0x49, 0x4d, 0x41, 0x41, 0x44, 0x63, 0x56, 0x46, 0x41, 0x59, 0x72, + 0x41, 0x53, 0x49, 0x6d, 0x50, 0x51, 0x45, 0x30, 0x4e, 0x6a, 0x73, + 0x42, 0x4d, 0x68, 0x59, 0x56, 0x4e, 0x52, 0x55, 0x55, 0x42, 0x69, + 0x73, 0x42, 0x49, 0x69, 0x59, 0x39, 0x41, 0x54, 0x51, 0x32, 0x4f, + 0x77, 0x45, 0x79, 0x46, 0x68, 0x55, 0x31, 0x46, 0x52, 0x51, 0x47, + 0x4b, 0x77, 0x45, 0x69, 0x4a, 0x6a, 0x30, 0x42, 0x4e, 0x44, 0x59, + 0x37, 0x41, 0x54, 0x49, 0x57, 0x41, 0x52, 0x55, 0x55, 0x42, 0x69, + 0x4d, 0x68, 0x49, 0x69, 0x59, 0x39, 0x41, 0x54, 0x51, 0x32, 0x4d, + 0x79, 0x45, 0x79, 0x46, 0x68, 0x55, 0x42, 0x46, 0x52, 0x51, 0x47, + 0x4b, 0x77, 0x45, 0x69, 0x4a, 0x6a, 0x30, 0x42, 0x4e, 0x44, 0x59, + 0x37, 0x41, 0x54, 0x49, 0x57, 0x41, 0x52, 0x55, 0x55, 0x42, 0x69, + 0x4d, 0x68, 0x49, 0x69, 0x59, 0x39, 0x41, 0x54, 0x51, 0x32, 0x4d, + 0x79, 0x45, 0x79, 0x46, 0x68, 0x55, 0x31, 0x46, 0x52, 0x51, 0x47, + 0x49, 0x79, 0x45, 0x69, 0x4a, 0x6a, 0x30, 0x42, 0x4e, 0x44, 0x59, + 0x7a, 0x49, 0x54, 0x49, 0x57, 0x4e, 0x52, 0x55, 0x55, 0x42, 0x69, + 0x4d, 0x68, 0x49, 0x69, 0x59, 0x39, 0x41, 0x54, 0x51, 0x32, 0x4d, + 0x79, 0x45, 0x79, 0x46, 0x70, 0x49, 0x4c, 0x42, 0x32, 0x34, 0x48, + 0x43, 0x77, 0x73, 0x48, 0x62, 0x67, 0x63, 0x4c, 0x43, 0x77, 0x64, + 0x75, 0x42, 0x77, 0x73, 0x4c, 0x42, 0x32, 0x34, 0x48, 0x43, 0x77, + 0x73, 0x48, 0x62, 0x67, 0x63, 0x4c, 0x43, 0x77, 0x64, 0x75, 0x42, + 0x77, 0x73, 0x44, 0x62, 0x67, 0x73, 0x48, 0x2f, 0x51, 0x41, 0x49, + 0x43, 0x77, 0x73, 0x49, 0x41, 0x77, 0x41, 0x48, 0x43, 0x2f, 0x79, + 0x53, 0x43, 0x77, 0x64, 0x75, 0x42, 0x77, 0x73, 0x4c, 0x42, 0x32, + 0x34, 0x48, 0x43, 0x77, 0x4e, 0x75, 0x43, 0x77, 0x66, 0x39, 0x41, + 0x41, 0x67, 0x4c, 0x43, 0x77, 0x67, 0x44, 0x41, 0x41, 0x63, 0x4c, + 0x43, 0x77, 0x66, 0x39, 0x41, 0x41, 0x67, 0x4c, 0x43, 0x77, 0x67, + 0x44, 0x41, 0x41, 0x63, 0x4c, 0x43, 0x77, 0x66, 0x39, 0x41, 0x41, + 0x67, 0x4c, 0x43, 0x77, 0x67, 0x44, 0x41, 0x41, 0x63, 0x4c, 0x79, + 0x57, 0x34, 0x48, 0x43, 0x77, 0x73, 0x48, 0x62, 0x67, 0x63, 0x4c, + 0x43, 0x77, 0x66, 0x63, 0x62, 0x67, 0x63, 0x4c, 0x43, 0x77, 0x64, + 0x75, 0x42, 0x77, 0x73, 0x4c, 0x42, 0x39, 0x74, 0x75, 0x42, 0x77, + 0x73, 0x4c, 0x42, 0x32, 0x34, 0x48, 0x43, 0x77, 0x76, 0x2b, 0x51, + 0x6d, 0x34, 0x48, 0x43, 0x77, 0x73, 0x48, 0x62, 0x67, 0x63, 0x4c, + 0x43, 0x77, 0x63, 0x43, 0x6b, 0x6d, 0x30, 0x49, 0x43, 0x77, 0x73, + 0x49, 0x62, 0x51, 0x67, 0x4c, 0x43, 0x2f, 0x35, 0x43, 0x62, 0x67, + 0x63, 0x4c, 0x43, 0x77, 0x64, 0x75, 0x42, 0x77, 0x73, 0x4c, 0x42, + 0x39, 0x74, 0x75, 0x42, 0x77, 0x73, 0x4c, 0x42, 0x32, 0x34, 0x48, + 0x43, 0x77, 0x76, 0x55, 0x62, 0x51, 0x67, 0x4c, 0x43, 0x77, 0x68, + 0x74, 0x43, 0x41, 0x73, 0x4c, 0x41, 0x41, 0x41, 0x41, 0x41, 0x67, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x53, 0x51, 0x4e, 0x75, 0x41, + 0x41, 0x73, 0x41, 0x4b, 0x41, 0x41, 0x41, 0x41, 0x54, 0x51, 0x6d, + 0x49, 0x79, 0x49, 0x47, 0x46, 0x52, 0x51, 0x57, 0x4d, 0x7a, 0x49, + 0x32, 0x4e, 0x78, 0x51, 0x47, 0x42, 0x77, 0x4d, 0x4f, 0x41, 0x53, + 0x4d, 0x69, 0x4a, 0x69, 0x63, 0x44, 0x4c, 0x67, 0x45, 0x31, 0x4e, + 0x44, 0x63, 0x2b, 0x41, 0x54, 0x63, 0x32, 0x4d, 0x7a, 0x49, 0x58, + 0x48, 0x67, 0x45, 0x58, 0x46, 0x68, 0x55, 0x42, 0x74, 0x31, 0x59, + 0x38, 0x50, 0x56, 0x5a, 0x57, 0x50, 0x54, 0x78, 0x57, 0x6b, 0x67, + 0x67, 0x4c, 0x30, 0x41, 0x6b, 0x6b, 0x46, 0x42, 0x55, 0x6b, 0x43, + 0x64, 0x41, 0x4c, 0x43, 0x42, 0x63, 0x58, 0x54, 0x7a, 0x59, 0x31, + 0x50, 0x54, 0x77, 0x32, 0x4e, 0x55, 0x38, 0x58, 0x46, 0x77, 0x4a, + 0x4a, 0x50, 0x56, 0x56, 0x56, 0x50, 0x54, 0x78, 0x57, 0x56, 0x6a, + 0x77, 0x61, 0x4e, 0x52, 0x66, 0x2b, 0x52, 0x68, 0x4d, 0x57, 0x46, + 0x68, 0x4d, 0x42, 0x75, 0x68, 0x63, 0x31, 0x47, 0x6a, 0x30, 0x31, + 0x4e, 0x56, 0x41, 0x58, 0x46, 0x78, 0x63, 0x58, 0x55, 0x44, 0x55, + 0x31, 0x50, 0x51, 0x41, 0x43, 0x41, 0x41, 0x41, 0x41, 0x53, 0x51, + 0x4f, 0x70, 0x41, 0x32, 0x34, 0x41, 0x4f, 0x67, 0x42, 0x51, 0x41, + 0x41, 0x41, 0x42, 0x46, 0x52, 0x51, 0x47, 0x49, 0x79, 0x45, 0x69, + 0x4a, 0x6a, 0x55, 0x52, 0x4e, 0x44, 0x59, 0x7a, 0x49, 0x54, 0x49, + 0x57, 0x46, 0x78, 0x34, 0x42, 0x46, 0x78, 0x59, 0x47, 0x44, 0x77, + 0x45, 0x4f, 0x41, 0x53, 0x4d, 0x69, 0x4a, 0x69, 0x4d, 0x75, 0x41, + 0x53, 0x4d, 0x68, 0x49, 0x67, 0x59, 0x56, 0x45, 0x52, 0x51, 0x57, + 0x4d, 0x79, 0x45, 0x79, 0x4e, 0x6a, 0x30, 0x42, 0x4e, 0x44, 0x59, + 0x2f, 0x41, 0x54, 0x34, 0x42, 0x4d, 0x7a, 0x49, 0x57, 0x46, 0x78, + 0x34, 0x42, 0x46, 0x52, 0x4d, 0x42, 0x42, 0x69, 0x49, 0x76, 0x41, + 0x53, 0x59, 0x30, 0x50, 0x77, 0x45, 0x32, 0x4d, 0x68, 0x38, 0x42, + 0x41, 0x54, 0x59, 0x79, 0x48, 0x77, 0x45, 0x57, 0x46, 0x41, 0x63, + 0x44, 0x4a, 0x57, 0x46, 0x45, 0x2f, 0x69, 0x56, 0x46, 0x59, 0x47, + 0x42, 0x46, 0x41, 0x64, 0x73, 0x52, 0x49, 0x68, 0x41, 0x45, 0x42, + 0x51, 0x45, 0x42, 0x41, 0x77, 0x4d, 0x63, 0x41, 0x77, 0x63, 0x44, + 0x41, 0x51, 0x4d, 0x42, 0x42, 0x77, 0x30, 0x47, 0x2f, 0x69, 0x55, + 0x6d, 0x4e, 0x6a, 0x59, 0x6d, 0x41, 0x64, 0x73, 0x6d, 0x4e, 0x51, + 0x4d, 0x44, 0x4a, 0x41, 0x4d, 0x48, 0x41, 0x77, 0x49, 0x44, 0x41, + 0x67, 0x55, 0x48, 0x68, 0x50, 0x34, 0x75, 0x44, 0x53, 0x59, 0x4f, + 0x39, 0x51, 0x34, 0x4f, 0x50, 0x67, 0x34, 0x6d, 0x44, 0x70, 0x59, + 0x42, 0x63, 0x67, 0x30, 0x6d, 0x44, 0x6a, 0x38, 0x4e, 0x44, 0x51, + 0x47, 0x6a, 0x74, 0x55, 0x52, 0x68, 0x59, 0x55, 0x51, 0x42, 0x32, + 0x30, 0x52, 0x68, 0x42, 0x77, 0x67, 0x42, 0x42, 0x77, 0x55, 0x45, + 0x43, 0x51, 0x4d, 0x63, 0x41, 0x77, 0x4d, 0x42, 0x41, 0x67, 0x49, + 0x32, 0x4a, 0x76, 0x34, 0x6c, 0x4a, 0x6a, 0x59, 0x32, 0x4a, 0x70, + 0x45, 0x44, 0x42, 0x77, 0x49, 0x6c, 0x41, 0x77, 0x4d, 0x42, 0x41, + 0x51, 0x49, 0x4a, 0x42, 0x67, 0x45, 0x59, 0x2f, 0x69, 0x38, 0x4f, + 0x44, 0x76, 0x55, 0x4f, 0x4a, 0x67, 0x34, 0x2b, 0x44, 0x67, 0x36, + 0x57, 0x41, 0x58, 0x49, 0x4f, 0x44, 0x6a, 0x38, 0x4f, 0x4a, 0x51, + 0x34, 0x41, 0x41, 0x41, 0x41, 0x42, 0x41, 0x47, 0x4d, 0x41, 0x47, + 0x67, 0x4b, 0x64, 0x41, 0x35, 0x30, 0x41, 0x46, 0x51, 0x41, 0x41, + 0x43, 0x51, 0x49, 0x57, 0x46, 0x41, 0x38, 0x42, 0x42, 0x69, 0x49, + 0x6e, 0x41, 0x53, 0x59, 0x30, 0x4e, 0x77, 0x45, 0x32, 0x4d, 0x68, + 0x38, 0x42, 0x46, 0x68, 0x51, 0x48, 0x41, 0x70, 0x33, 0x2b, 0x30, + 0x51, 0x45, 0x76, 0x43, 0x77, 0x74, 0x66, 0x43, 0x68, 0x34, 0x4c, + 0x2f, 0x6c, 0x67, 0x4c, 0x43, 0x77, 0x47, 0x6f, 0x43, 0x78, 0x34, + 0x4b, 0x58, 0x77, 0x73, 0x4c, 0x41, 0x77, 0x76, 0x2b, 0x30, 0x50, + 0x37, 0x52, 0x43, 0x78, 0x34, 0x4b, 0x58, 0x77, 0x73, 0x4c, 0x41, + 0x61, 0x67, 0x4b, 0x48, 0x67, 0x73, 0x42, 0x71, 0x41, 0x73, 0x4c, + 0x58, 0x77, 0x6f, 0x65, 0x43, 0x77, 0x41, 0x42, 0x41, 0x44, 0x34, + 0x41, 0x47, 0x67, 0x4a, 0x35, 0x41, 0x35, 0x30, 0x41, 0x46, 0x51, + 0x41, 0x41, 0x43, 0x51, 0x45, 0x47, 0x49, 0x69, 0x38, 0x42, 0x4a, + 0x6a, 0x51, 0x33, 0x43, 0x51, 0x45, 0x6d, 0x4e, 0x44, 0x38, 0x42, + 0x4e, 0x6a, 0x49, 0x58, 0x41, 0x52, 0x59, 0x55, 0x42, 0x77, 0x4a, + 0x35, 0x2f, 0x6c, 0x67, 0x4c, 0x48, 0x67, 0x74, 0x66, 0x43, 0x67, + 0x6f, 0x42, 0x4d, 0x50, 0x37, 0x51, 0x43, 0x67, 0x70, 0x66, 0x43, + 0x78, 0x34, 0x4c, 0x41, 0x61, 0x67, 0x4b, 0x43, 0x67, 0x48, 0x43, + 0x2f, 0x6c, 0x67, 0x4c, 0x43, 0x31, 0x38, 0x4b, 0x48, 0x67, 0x73, + 0x42, 0x4c, 0x77, 0x45, 0x77, 0x43, 0x78, 0x34, 0x4b, 0x58, 0x77, + 0x73, 0x4c, 0x2f, 0x6c, 0x67, 0x4c, 0x48, 0x67, 0x6f, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x77, 0x41, 0x4a, 0x41, 0x41, 0x41, 0x44, + 0x39, 0x77, 0x4f, 0x33, 0x41, 0x41, 0x38, 0x41, 0x4a, 0x67, 0x41, + 0x38, 0x41, 0x41, 0x41, 0x6c, 0x4e, 0x54, 0x51, 0x6d, 0x4b, 0x77, + 0x45, 0x69, 0x42, 0x68, 0x30, 0x42, 0x46, 0x42, 0x59, 0x37, 0x41, + 0x54, 0x49, 0x32, 0x4a, 0x78, 0x4d, 0x30, 0x4a, 0x69, 0x63, 0x75, + 0x41, 0x53, 0x73, 0x42, 0x49, 0x67, 0x59, 0x48, 0x44, 0x67, 0x45, + 0x56, 0x45, 0x78, 0x51, 0x57, 0x4f, 0x77, 0x45, 0x79, 0x4e, 0x6a, + 0x55, 0x44, 0x41, 0x52, 0x59, 0x55, 0x42, 0x77, 0x34, 0x42, 0x49, + 0x79, 0x45, 0x69, 0x4a, 0x69, 0x63, 0x6d, 0x4e, 0x44, 0x63, 0x42, + 0x50, 0x67, 0x45, 0x7a, 0x4d, 0x68, 0x59, 0x58, 0x41, 0x6b, 0x6b, + 0x4b, 0x43, 0x47, 0x34, 0x49, 0x43, 0x67, 0x6f, 0x49, 0x62, 0x67, + 0x67, 0x4b, 0x41, 0x51, 0x6f, 0x43, 0x41, 0x77, 0x4d, 0x48, 0x42, + 0x48, 0x34, 0x45, 0x42, 0x77, 0x4d, 0x44, 0x41, 0x67, 0x6b, 0x4d, + 0x43, 0x47, 0x6f, 0x48, 0x44, 0x41, 0x67, 0x42, 0x74, 0x77, 0x6b, + 0x4b, 0x43, 0x69, 0x49, 0x54, 0x2f, 0x4a, 0x49, 0x54, 0x49, 0x67, + 0x6f, 0x4b, 0x43, 0x51, 0x47, 0x33, 0x43, 0x53, 0x4d, 0x55, 0x46, + 0x43, 0x4d, 0x4a, 0x70, 0x57, 0x30, 0x48, 0x44, 0x41, 0x77, 0x48, + 0x62, 0x51, 0x67, 0x4c, 0x43, 0x39, 0x34, 0x42, 0x42, 0x67, 0x4d, + 0x47, 0x41, 0x67, 0x49, 0x45, 0x42, 0x41, 0x49, 0x43, 0x42, 0x77, + 0x50, 0x2b, 0x2b, 0x77, 0x59, 0x48, 0x42, 0x77, 0x59, 0x43, 0x46, + 0x76, 0x7a, 0x62, 0x45, 0x53, 0x59, 0x52, 0x45, 0x52, 0x4d, 0x54, + 0x45, 0x52, 0x45, 0x6d, 0x45, 0x51, 0x4d, 0x6c, 0x45, 0x52, 0x55, + 0x56, 0x45, 0x51, 0x41, 0x41, 0x41, 0x41, 0x55, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x42, 0x4a, 0x49, 0x44, 0x62, 0x67, 0x41, 0x44, 0x41, + 0x41, 0x67, 0x41, 0x44, 0x67, 0x41, 0x54, 0x41, 0x42, 0x67, 0x41, + 0x41, 0x41, 0x45, 0x52, 0x49, 0x78, 0x45, 0x42, 0x45, 0x53, 0x4d, + 0x52, 0x4d, 0x77, 0x45, 0x56, 0x49, 0x52, 0x45, 0x7a, 0x45, 0x51, + 0x45, 0x52, 0x49, 0x78, 0x45, 0x7a, 0x4e, 0x78, 0x45, 0x6a, 0x45, + 0x54, 0x4d, 0x42, 0x62, 0x70, 0x4d, 0x42, 0x62, 0x70, 0x4b, 0x53, + 0x41, 0x6b, 0x6e, 0x37, 0x62, 0x6b, 0x6b, 0x43, 0x33, 0x4a, 0x4f, + 0x54, 0x32, 0x35, 0x4b, 0x53, 0x41, 0x62, 0x66, 0x2b, 0x32, 0x77, + 0x45, 0x6c, 0x41, 0x53, 0x54, 0x39, 0x74, 0x77, 0x4a, 0x4a, 0x2f, + 0x57, 0x35, 0x4a, 0x41, 0x32, 0x37, 0x38, 0x32, 0x77, 0x49, 0x41, + 0x2f, 0x6b, 0x6b, 0x42, 0x74, 0x39, 0x7a, 0x39, 0x62, 0x51, 0x4b, + 0x54, 0x41, 0x41, 0x59, 0x41, 0x41, 0x50, 0x2b, 0x2f, 0x42, 0x45, + 0x6b, 0x44, 0x72, 0x67, 0x41, 0x4c, 0x41, 0x42, 0x63, 0x41, 0x49, + 0x77, 0x43, 0x6b, 0x41, 0x50, 0x77, 0x42, 0x56, 0x41, 0x41, 0x41, + 0x41, 0x54, 0x51, 0x6d, 0x49, 0x79, 0x49, 0x47, 0x46, 0x52, 0x51, + 0x57, 0x4d, 0x7a, 0x49, 0x32, 0x42, 0x54, 0x51, 0x6d, 0x49, 0x79, + 0x49, 0x47, 0x46, 0x52, 0x51, 0x57, 0x4d, 0x7a, 0x49, 0x32, 0x45, + 0x54, 0x51, 0x6d, 0x49, 0x79, 0x49, 0x47, 0x46, 0x52, 0x51, 0x57, + 0x4d, 0x7a, 0x49, 0x32, 0x42, 0x78, 0x55, 0x55, 0x42, 0x67, 0x38, + 0x42, 0x44, 0x67, 0x45, 0x48, 0x48, 0x67, 0x45, 0x58, 0x48, 0x67, + 0x45, 0x56, 0x46, 0x41, 0x59, 0x48, 0x44, 0x67, 0x45, 0x6a, 0x49, + 0x69, 0x59, 0x76, 0x41, 0x51, 0x34, 0x42, 0x42, 0x77, 0x34, 0x42, + 0x42, 0x77, 0x34, 0x42, 0x4b, 0x77, 0x45, 0x69, 0x4a, 0x69, 0x38, + 0x42, 0x4c, 0x67, 0x45, 0x6e, 0x42, 0x77, 0x34, 0x42, 0x49, 0x79, + 0x49, 0x6d, 0x4a, 0x79, 0x34, 0x42, 0x4e, 0x54, 0x51, 0x32, 0x4e, + 0x7a, 0x34, 0x42, 0x4e, 0x79, 0x34, 0x42, 0x4c, 0x77, 0x45, 0x75, + 0x41, 0x54, 0x30, 0x42, 0x4e, 0x44, 0x59, 0x2f, 0x41, 0x54, 0x34, + 0x42, 0x4e, 0x79, 0x34, 0x42, 0x4a, 0x79, 0x34, 0x42, 0x4e, 0x54, + 0x51, 0x32, 0x4e, 0x7a, 0x34, 0x42, 0x4d, 0x7a, 0x49, 0x57, 0x48, + 0x77, 0x45, 0x2b, 0x41, 0x54, 0x63, 0x2b, 0x41, 0x54, 0x63, 0x2b, + 0x41, 0x54, 0x73, 0x42, 0x4d, 0x68, 0x59, 0x66, 0x41, 0x52, 0x34, + 0x42, 0x46, 0x7a, 0x63, 0x2b, 0x41, 0x54, 0x4d, 0x79, 0x46, 0x68, + 0x63, 0x65, 0x41, 0x52, 0x55, 0x55, 0x42, 0x67, 0x63, 0x4f, 0x41, + 0x51, 0x63, 0x65, 0x41, 0x52, 0x38, 0x42, 0x48, 0x67, 0x45, 0x56, + 0x41, 0x52, 0x55, 0x55, 0x42, 0x69, 0x4d, 0x4f, 0x41, 0x51, 0x63, + 0x65, 0x41, 0x52, 0x55, 0x55, 0x42, 0x67, 0x63, 0x4f, 0x41, 0x53, + 0x4d, 0x69, 0x4a, 0x69, 0x63, 0x69, 0x42, 0x69, 0x4d, 0x69, 0x4a, + 0x69, 0x4d, 0x4f, 0x41, 0x53, 0x4d, 0x69, 0x4a, 0x69, 0x63, 0x75, + 0x41, 0x54, 0x55, 0x30, 0x4e, 0x6a, 0x63, 0x75, 0x41, 0x53, 0x63, + 0x69, 0x4a, 0x6a, 0x30, 0x42, 0x4e, 0x44, 0x59, 0x33, 0x50, 0x67, + 0x45, 0x33, 0x4c, 0x67, 0x45, 0x31, 0x4d, 0x44, 0x59, 0x33, 0x50, + 0x67, 0x45, 0x7a, 0x4d, 0x68, 0x59, 0x58, 0x50, 0x67, 0x45, 0x7a, + 0x4d, 0x68, 0x59, 0x58, 0x50, 0x67, 0x45, 0x2f, 0x41, 0x54, 0x49, + 0x57, 0x46, 0x78, 0x34, 0x42, 0x4d, 0x52, 0x51, 0x47, 0x42, 0x78, + 0x34, 0x42, 0x46, 0x78, 0x34, 0x42, 0x46, 0x52, 0x45, 0x56, 0x46, + 0x41, 0x59, 0x48, 0x44, 0x67, 0x45, 0x48, 0x48, 0x67, 0x45, 0x56, + 0x46, 0x41, 0x59, 0x48, 0x44, 0x67, 0x45, 0x6a, 0x49, 0x69, 0x59, + 0x6e, 0x49, 0x67, 0x59, 0x6a, 0x49, 0x69, 0x59, 0x6a, 0x44, 0x67, + 0x45, 0x6a, 0x49, 0x69, 0x59, 0x6e, 0x4c, 0x67, 0x45, 0x31, 0x4e, + 0x44, 0x59, 0x33, 0x4c, 0x67, 0x45, 0x6e, 0x4c, 0x67, 0x45, 0x39, + 0x41, 0x54, 0x51, 0x32, 0x4e, 0x7a, 0x34, 0x42, 0x4e, 0x79, 0x34, + 0x42, 0x4e, 0x54, 0x51, 0x32, 0x4e, 0x7a, 0x34, 0x42, 0x4d, 0x7a, + 0x49, 0x57, 0x46, 0x7a, 0x49, 0x32, 0x4d, 0x7a, 0x49, 0x57, 0x4d, + 0x7a, 0x34, 0x42, 0x50, 0x77, 0x45, 0x79, 0x46, 0x68, 0x63, 0x65, + 0x41, 0x52, 0x55, 0x55, 0x42, 0x67, 0x63, 0x65, 0x41, 0x52, 0x63, + 0x65, 0x41, 0x52, 0x55, 0x43, 0x41, 0x46, 0x59, 0x38, 0x50, 0x56, + 0x5a, 0x57, 0x50, 0x54, 0x78, 0x57, 0x41, 0x62, 0x63, 0x72, 0x48, + 0x68, 0x34, 0x72, 0x4b, 0x78, 0x34, 0x65, 0x4b, 0x79, 0x73, 0x65, + 0x48, 0x69, 0x73, 0x72, 0x48, 0x68, 0x34, 0x72, 0x33, 0x41, 0x63, + 0x47, 0x57, 0x41, 0x51, 0x4a, 0x42, 0x67, 0x77, 0x61, 0x44, 0x67, + 0x49, 0x43, 0x41, 0x67, 0x49, 0x4a, 0x52, 0x77, 0x77, 0x45, 0x42, + 0x67, 0x4a, 0x43, 0x43, 0x78, 0x55, 0x4d, 0x41, 0x67, 0x55, 0x47, + 0x41, 0x67, 0x6b, 0x47, 0x61, 0x67, 0x59, 0x4c, 0x41, 0x51, 0x30, + 0x4c, 0x46, 0x51, 0x74, 0x44, 0x41, 0x67, 0x59, 0x44, 0x42, 0x41, + 0x59, 0x43, 0x44, 0x45, 0x63, 0x44, 0x41, 0x51, 0x30, 0x5a, 0x44, + 0x51, 0x59, 0x4c, 0x41, 0x31, 0x63, 0x47, 0x43, 0x41, 0x67, 0x46, + 0x57, 0x51, 0x4d, 0x4a, 0x42, 0x67, 0x77, 0x61, 0x44, 0x51, 0x49, + 0x43, 0x41, 0x51, 0x4d, 0x49, 0x52, 0x77, 0x30, 0x44, 0x42, 0x67, + 0x4e, 0x42, 0x43, 0x78, 0x59, 0x4c, 0x41, 0x67, 0x59, 0x46, 0x41, + 0x67, 0x6f, 0x47, 0x61, 0x67, 0x59, 0x4b, 0x41, 0x51, 0x30, 0x4c, + 0x46, 0x67, 0x70, 0x44, 0x41, 0x77, 0x59, 0x44, 0x41, 0x77, 0x59, + 0x44, 0x43, 0x30, 0x63, 0x43, 0x41, 0x67, 0x77, 0x61, 0x44, 0x41, + 0x59, 0x4b, 0x42, 0x46, 0x63, 0x47, 0x42, 0x77, 0x46, 0x75, 0x54, + 0x41, 0x6b, 0x44, 0x43, 0x51, 0x55, 0x45, 0x47, 0x51, 0x45, 0x42, + 0x42, 0x55, 0x41, 0x43, 0x42, 0x69, 0x34, 0x45, 0x42, 0x41, 0x6b, + 0x45, 0x42, 0x51, 0x67, 0x45, 0x42, 0x53, 0x34, 0x46, 0x41, 0x7a, + 0x38, 0x46, 0x41, 0x67, 0x45, 0x61, 0x42, 0x41, 0x59, 0x49, 0x42, + 0x41, 0x68, 0x4e, 0x54, 0x51, 0x67, 0x45, 0x43, 0x41, 0x59, 0x45, + 0x47, 0x67, 0x45, 0x43, 0x42, 0x54, 0x38, 0x44, 0x42, 0x53, 0x34, + 0x46, 0x42, 0x41, 0x67, 0x46, 0x42, 0x41, 0x6b, 0x45, 0x44, 0x42, + 0x6f, 0x4f, 0x42, 0x41, 0x4a, 0x41, 0x42, 0x51, 0x45, 0x42, 0x47, + 0x51, 0x51, 0x46, 0x43, 0x51, 0x4d, 0x4a, 0x54, 0x45, 0x77, 0x4a, + 0x41, 0x77, 0x6b, 0x46, 0x42, 0x42, 0x6b, 0x42, 0x41, 0x51, 0x56, + 0x41, 0x41, 0x67, 0x59, 0x75, 0x42, 0x41, 0x51, 0x4a, 0x42, 0x41, + 0x55, 0x49, 0x42, 0x41, 0x55, 0x75, 0x42, 0x51, 0x4d, 0x2f, 0x42, + 0x51, 0x49, 0x42, 0x47, 0x67, 0x51, 0x47, 0x43, 0x41, 0x51, 0x49, + 0x54, 0x55, 0x30, 0x49, 0x42, 0x41, 0x67, 0x47, 0x42, 0x42, 0x6f, + 0x42, 0x41, 0x67, 0x55, 0x2f, 0x41, 0x77, 0x55, 0x75, 0x42, 0x51, + 0x51, 0x49, 0x42, 0x51, 0x51, 0x4a, 0x42, 0x41, 0x77, 0x61, 0x44, + 0x67, 0x51, 0x43, 0x51, 0x41, 0x55, 0x42, 0x41, 0x52, 0x6b, 0x45, + 0x42, 0x51, 0x6b, 0x44, 0x43, 0x55, 0x77, 0x42, 0x74, 0x7a, 0x78, + 0x57, 0x56, 0x6a, 0x77, 0x39, 0x56, 0x56, 0x58, 0x6f, 0x48, 0x69, + 0x73, 0x72, 0x48, 0x68, 0x34, 0x72, 0x4b, 0x77, 0x4a, 0x6e, 0x48, + 0x69, 0x77, 0x73, 0x48, 0x68, 0x34, 0x72, 0x4b, 0x39, 0x4a, 0x71, + 0x42, 0x51, 0x73, 0x42, 0x44, 0x67, 0x73, 0x56, 0x43, 0x78, 0x45, + 0x68, 0x45, 0x41, 0x49, 0x47, 0x41, 0x77, 0x4d, 0x47, 0x41, 0x67, + 0x78, 0x4a, 0x41, 0x67, 0x49, 0x7a, 0x42, 0x51, 0x6b, 0x45, 0x46, + 0x53, 0x34, 0x56, 0x42, 0x67, 0x67, 0x49, 0x42, 0x6c, 0x67, 0x44, + 0x43, 0x51, 0x59, 0x7a, 0x41, 0x67, 0x49, 0x43, 0x41, 0x67, 0x74, + 0x45, 0x44, 0x51, 0x4d, 0x46, 0x41, 0x78, 0x41, 0x67, 0x45, 0x51, + 0x73, 0x59, 0x44, 0x41, 0x30, 0x42, 0x43, 0x67, 0x5a, 0x71, 0x42, + 0x51, 0x73, 0x42, 0x44, 0x51, 0x77, 0x56, 0x43, 0x78, 0x45, 0x67, + 0x45, 0x51, 0x49, 0x47, 0x41, 0x77, 0x4d, 0x47, 0x41, 0x67, 0x78, + 0x4a, 0x41, 0x67, 0x49, 0x7a, 0x42, 0x51, 0x6b, 0x45, 0x46, 0x53, + 0x34, 0x56, 0x42, 0x67, 0x67, 0x4a, 0x42, 0x6c, 0x63, 0x45, 0x43, + 0x51, 0x55, 0x7a, 0x41, 0x67, 0x49, 0x43, 0x41, 0x77, 0x70, 0x46, + 0x44, 0x41, 0x4d, 0x46, 0x41, 0x78, 0x45, 0x66, 0x45, 0x51, 0x77, + 0x58, 0x44, 0x41, 0x30, 0x42, 0x43, 0x67, 0x62, 0x2b, 0x7a, 0x31, + 0x41, 0x47, 0x43, 0x77, 0x6b, 0x4f, 0x42, 0x77, 0x6b, 0x2b, 0x43, + 0x41, 0x45, 0x43, 0x41, 0x51, 0x4d, 0x6d, 0x50, 0x41, 0x59, 0x42, + 0x41, 0x51, 0x59, 0x38, 0x4a, 0x67, 0x4d, 0x42, 0x41, 0x67, 0x45, + 0x48, 0x50, 0x77, 0x6b, 0x48, 0x44, 0x67, 0x6b, 0x4c, 0x42, 0x6c, + 0x41, 0x48, 0x43, 0x67, 0x45, 0x49, 0x44, 0x77, 0x63, 0x49, 0x50, + 0x77, 0x67, 0x44, 0x41, 0x51, 0x49, 0x6d, 0x4f, 0x77, 0x63, 0x42, + 0x41, 0x51, 0x45, 0x42, 0x45, 0x53, 0x45, 0x4f, 0x41, 0x69, 0x55, + 0x44, 0x41, 0x51, 0x4d, 0x49, 0x50, 0x77, 0x67, 0x48, 0x44, 0x77, + 0x67, 0x42, 0x43, 0x67, 0x63, 0x43, 0x53, 0x56, 0x41, 0x47, 0x43, + 0x67, 0x45, 0x49, 0x44, 0x77, 0x63, 0x4a, 0x50, 0x67, 0x67, 0x42, + 0x41, 0x67, 0x45, 0x44, 0x4a, 0x54, 0x73, 0x47, 0x41, 0x51, 0x45, + 0x47, 0x4f, 0x79, 0x55, 0x44, 0x41, 0x51, 0x49, 0x42, 0x42, 0x7a, + 0x38, 0x4a, 0x42, 0x77, 0x38, 0x49, 0x41, 0x51, 0x6f, 0x47, 0x55, + 0x41, 0x63, 0x4b, 0x41, 0x51, 0x67, 0x50, 0x42, 0x77, 0x67, 0x2f, + 0x43, 0x41, 0x45, 0x43, 0x41, 0x51, 0x49, 0x6d, 0x4f, 0x77, 0x59, + 0x42, 0x41, 0x52, 0x41, 0x68, 0x44, 0x77, 0x45, 0x6c, 0x41, 0x77, + 0x45, 0x43, 0x41, 0x51, 0x67, 0x2f, 0x43, 0x41, 0x63, 0x50, 0x43, + 0x41, 0x45, 0x4b, 0x42, 0x77, 0x41, 0x41, 0x41, 0x67, 0x41, 0x41, + 0x41, 0x45, 0x6b, 0x45, 0x41, 0x41, 0x4f, 0x33, 0x41, 0x43, 0x67, + 0x41, 0x53, 0x77, 0x41, 0x41, 0x41, 0x52, 0x55, 0x55, 0x42, 0x69, + 0x4d, 0x68, 0x49, 0x69, 0x59, 0x31, 0x45, 0x54, 0x51, 0x32, 0x4d, + 0x79, 0x45, 0x79, 0x46, 0x68, 0x30, 0x42, 0x46, 0x41, 0x59, 0x6a, + 0x49, 0x53, 0x49, 0x47, 0x46, 0x52, 0x45, 0x55, 0x46, 0x6a, 0x4d, + 0x68, 0x4d, 0x6a, 0x59, 0x39, 0x41, 0x54, 0x51, 0x32, 0x4f, 0x77, + 0x45, 0x79, 0x46, 0x68, 0x55, 0x54, 0x45, 0x52, 0x51, 0x47, 0x49, + 0x79, 0x49, 0x6d, 0x4c, 0x77, 0x45, 0x42, 0x44, 0x67, 0x45, 0x6a, + 0x49, 0x69, 0x59, 0x76, 0x41, 0x53, 0x34, 0x42, 0x4e, 0x54, 0x51, + 0x32, 0x4e, 0x77, 0x45, 0x6e, 0x4c, 0x67, 0x45, 0x31, 0x4e, 0x44, + 0x59, 0x7a, 0x49, 0x54, 0x49, 0x57, 0x46, 0x51, 0x4d, 0x6c, 0x59, + 0x55, 0x54, 0x2b, 0x4a, 0x55, 0x56, 0x67, 0x59, 0x45, 0x55, 0x42, + 0x6b, 0x67, 0x67, 0x4b, 0x43, 0x67, 0x6a, 0x2b, 0x62, 0x69, 0x59, + 0x32, 0x4e, 0x69, 0x59, 0x42, 0x32, 0x79, 0x59, 0x31, 0x43, 0x77, + 0x67, 0x6b, 0x43, 0x41, 0x76, 0x62, 0x46, 0x67, 0x38, 0x48, 0x44, + 0x51, 0x56, 0x6c, 0x2f, 0x6f, 0x77, 0x44, 0x42, 0x77, 0x51, 0x44, + 0x42, 0x77, 0x4e, 0x42, 0x41, 0x67, 0x51, 0x45, 0x41, 0x67, 0x46, + 0x31, 0x5a, 0x51, 0x55, 0x47, 0x46, 0x67, 0x38, 0x42, 0x4a, 0x41, + 0x38, 0x57, 0x41, 0x61, 0x57, 0x33, 0x52, 0x47, 0x46, 0x68, 0x52, + 0x41, 0x48, 0x62, 0x52, 0x47, 0x45, 0x4c, 0x43, 0x43, 0x51, 0x49, + 0x43, 0x6a, 0x59, 0x6d, 0x2f, 0x69, 0x55, 0x6d, 0x4e, 0x6a, 0x59, + 0x6d, 0x74, 0x77, 0x63, 0x4c, 0x43, 0x77, 0x63, 0x42, 0x37, 0x66, + 0x37, 0x63, 0x44, 0x78, 0x59, 0x47, 0x42, 0x57, 0x58, 0x2b, 0x69, + 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4e, 0x42, 0x41, 0x77, 0x63, 0x44, + 0x42, 0x41, 0x63, 0x43, 0x41, 0x58, 0x56, 0x6c, 0x42, 0x51, 0x30, + 0x48, 0x44, 0x78, 0x59, 0x57, 0x44, 0x77, 0x41, 0x41, 0x41, 0x67, + 0x41, 0x41, 0x41, 0x45, 0x6b, 0x44, 0x4a, 0x51, 0x4e, 0x75, 0x41, + 0x41, 0x38, 0x41, 0x48, 0x77, 0x41, 0x41, 0x41, 0x53, 0x45, 0x69, + 0x42, 0x68, 0x55, 0x52, 0x46, 0x42, 0x59, 0x7a, 0x49, 0x54, 0x49, + 0x32, 0x4e, 0x52, 0x45, 0x30, 0x4a, 0x68, 0x63, 0x52, 0x46, 0x41, + 0x59, 0x6a, 0x49, 0x53, 0x49, 0x6d, 0x4e, 0x52, 0x45, 0x30, 0x4e, + 0x6a, 0x4d, 0x68, 0x4d, 0x68, 0x59, 0x43, 0x67, 0x50, 0x34, 0x6c, + 0x4a, 0x6a, 0x59, 0x32, 0x4a, 0x67, 0x48, 0x62, 0x4a, 0x6a, 0x55, + 0x31, 0x66, 0x32, 0x46, 0x45, 0x2f, 0x69, 0x56, 0x46, 0x59, 0x47, + 0x42, 0x46, 0x41, 0x64, 0x74, 0x45, 0x59, 0x51, 0x4d, 0x6c, 0x4e, + 0x69, 0x62, 0x2b, 0x4a, 0x53, 0x59, 0x32, 0x4e, 0x69, 0x59, 0x42, + 0x32, 0x79, 0x59, 0x32, 0x58, 0x50, 0x34, 0x6c, 0x52, 0x47, 0x46, + 0x68, 0x52, 0x41, 0x48, 0x62, 0x52, 0x47, 0x46, 0x68, 0x41, 0x41, + 0x4d, 0x41, 0x4a, 0x66, 0x2b, 0x33, 0x41, 0x39, 0x73, 0x44, 0x74, + 0x77, 0x41, 0x53, 0x41, 0x44, 0x41, 0x41, 0x5a, 0x77, 0x41, 0x41, + 0x42, 0x54, 0x51, 0x6d, 0x49, 0x79, 0x49, 0x6d, 0x4e, 0x54, 0x51, + 0x6d, 0x49, 0x79, 0x49, 0x47, 0x46, 0x52, 0x51, 0x57, 0x4d, 0x7a, + 0x49, 0x32, 0x4e, 0x53, 0x55, 0x68, 0x4a, 0x69, 0x63, 0x75, 0x41, + 0x53, 0x63, 0x6d, 0x4e, 0x54, 0x51, 0x6e, 0x4c, 0x67, 0x45, 0x6e, + 0x4a, 0x69, 0x4d, 0x69, 0x42, 0x77, 0x34, 0x42, 0x42, 0x77, 0x59, + 0x56, 0x46, 0x41, 0x63, 0x4f, 0x41, 0x51, 0x63, 0x47, 0x42, 0x79, + 0x45, 0x55, 0x42, 0x69, 0x4d, 0x68, 0x46, 0x41, 0x59, 0x6a, 0x49, + 0x69, 0x59, 0x31, 0x49, 0x53, 0x49, 0x6d, 0x4e, 0x54, 0x59, 0x33, + 0x50, 0x67, 0x45, 0x33, 0x4e, 0x6a, 0x55, 0x30, 0x4e, 0x7a, 0x34, + 0x42, 0x4e, 0x7a, 0x59, 0x33, 0x4c, 0x67, 0x45, 0x31, 0x4e, 0x44, + 0x59, 0x7a, 0x4d, 0x68, 0x59, 0x56, 0x46, 0x41, 0x59, 0x48, 0x46, + 0x68, 0x63, 0x65, 0x41, 0x52, 0x63, 0x57, 0x46, 0x52, 0x51, 0x58, + 0x48, 0x67, 0x45, 0x58, 0x46, 0x68, 0x63, 0x43, 0x43, 0x51, 0x55, + 0x45, 0x49, 0x6a, 0x41, 0x47, 0x41, 0x77, 0x51, 0x47, 0x4f, 0x79, + 0x6f, 0x45, 0x42, 0x66, 0x36, 0x45, 0x41, 0x75, 0x59, 0x6d, 0x48, + 0x42, 0x30, 0x6d, 0x43, 0x51, 0x6f, 0x4e, 0x44, 0x54, 0x59, 0x71, + 0x4b, 0x54, 0x67, 0x34, 0x4b, 0x53, 0x6f, 0x32, 0x44, 0x51, 0x30, + 0x4b, 0x43, 0x53, 0x59, 0x64, 0x48, 0x43, 0x59, 0x44, 0x54, 0x69, + 0x73, 0x65, 0x2f, 0x77, 0x42, 0x57, 0x50, 0x44, 0x78, 0x57, 0x2f, + 0x77, 0x41, 0x65, 0x4b, 0x78, 0x38, 0x68, 0x49, 0x44, 0x55, 0x52, + 0x45, 0x42, 0x45, 0x52, 0x50, 0x69, 0x30, 0x74, 0x4f, 0x51, 0x49, + 0x44, 0x49, 0x42, 0x63, 0x58, 0x49, 0x41, 0x4d, 0x43, 0x4f, 0x53, + 0x30, 0x74, 0x50, 0x68, 0x45, 0x52, 0x45, 0x42, 0x45, 0x31, 0x49, + 0x43, 0x45, 0x66, 0x45, 0x67, 0x51, 0x46, 0x4d, 0x43, 0x49, 0x45, + 0x42, 0x51, 0x55, 0x45, 0x4b, 0x54, 0x73, 0x46, 0x42, 0x4b, 0x51, + 0x73, 0x4d, 0x7a, 0x4e, 0x32, 0x52, 0x45, 0x4e, 0x4e, 0x47, 0x79, + 0x41, 0x67, 0x4e, 0x78, 0x49, 0x54, 0x45, 0x78, 0x49, 0x33, 0x49, + 0x43, 0x41, 0x62, 0x54, 0x55, 0x4e, 0x45, 0x64, 0x6a, 0x4d, 0x7a, + 0x4c, 0x42, 0x34, 0x72, 0x50, 0x46, 0x5a, 0x57, 0x50, 0x43, 0x73, + 0x65, 0x47, 0x79, 0x63, 0x6e, 0x63, 0x55, 0x31, 0x4e, 0x61, 0x43, + 0x6b, 0x70, 0x4b, 0x6b, 0x55, 0x5a, 0x47, 0x51, 0x6b, 0x46, 0x43, + 0x77, 0x59, 0x58, 0x49, 0x43, 0x41, 0x58, 0x42, 0x67, 0x73, 0x46, + 0x43, 0x52, 0x6b, 0x5a, 0x52, 0x53, 0x6f, 0x70, 0x4b, 0x57, 0x68, + 0x4e, 0x54, 0x58, 0x45, 0x6e, 0x4a, 0x78, 0x73, 0x41, 0x42, 0x67, + 0x41, 0x41, 0x2f, 0x37, 0x63, 0x45, 0x53, 0x51, 0x4f, 0x33, 0x41, + 0x42, 0x6f, 0x41, 0x4e, 0x67, 0x42, 0x43, 0x41, 0x46, 0x34, 0x41, + 0x65, 0x41, 0x43, 0x45, 0x41, 0x41, 0x41, 0x42, 0x44, 0x67, 0x45, + 0x48, 0x49, 0x79, 0x49, 0x6d, 0x4e, 0x54, 0x51, 0x33, 0x50, 0x67, + 0x45, 0x33, 0x4e, 0x6a, 0x4d, 0x79, 0x46, 0x6a, 0x4d, 0x79, 0x4e, + 0x6a, 0x63, 0x4f, 0x41, 0x52, 0x55, 0x55, 0x46, 0x68, 0x63, 0x42, + 0x46, 0x41, 0x59, 0x6a, 0x49, 0x53, 0x49, 0x6d, 0x4e, 0x54, 0x51, + 0x33, 0x50, 0x67, 0x45, 0x33, 0x4e, 0x6a, 0x4d, 0x79, 0x46, 0x6a, + 0x4d, 0x79, 0x4e, 0x6a, 0x4d, 0x79, 0x46, 0x78, 0x34, 0x42, 0x46, + 0x78, 0x59, 0x56, 0x41, 0x52, 0x51, 0x47, 0x49, 0x79, 0x49, 0x6d, + 0x4e, 0x54, 0x51, 0x32, 0x4d, 0x7a, 0x49, 0x57, 0x41, 0x52, 0x51, + 0x48, 0x44, 0x67, 0x45, 0x48, 0x42, 0x69, 0x4d, 0x69, 0x4a, 0x79, + 0x34, 0x42, 0x4a, 0x79, 0x59, 0x31, 0x4e, 0x44, 0x63, 0x2b, 0x41, + 0x54, 0x63, 0x32, 0x4d, 0x7a, 0x49, 0x58, 0x48, 0x67, 0x45, 0x58, + 0x46, 0x67, 0x55, 0x55, 0x42, 0x69, 0x73, 0x42, 0x4c, 0x67, 0x45, + 0x6e, 0x50, 0x67, 0x45, 0x31, 0x4e, 0x43, 0x59, 0x6e, 0x48, 0x67, + 0x45, 0x7a, 0x4d, 0x6a, 0x59, 0x7a, 0x4d, 0x68, 0x63, 0x65, 0x41, + 0x52, 0x63, 0x57, 0x41, 0x78, 0x51, 0x47, 0x49, 0x79, 0x49, 0x6d, + 0x4e, 0x54, 0x51, 0x32, 0x4d, 0x7a, 0x49, 0x57, 0x41, 0x56, 0x4d, + 0x74, 0x54, 0x68, 0x31, 0x4d, 0x4b, 0x30, 0x51, 0x42, 0x41, 0x51, + 0x30, 0x4f, 0x44, 0x78, 0x73, 0x4a, 0x55, 0x6a, 0x6b, 0x55, 0x4a, + 0x68, 0x49, 0x42, 0x41, 0x52, 0x67, 0x57, 0x41, 0x6d, 0x52, 0x55, + 0x52, 0x66, 0x34, 0x4e, 0x52, 0x56, 0x51, 0x49, 0x42, 0x79, 0x73, + 0x6d, 0x4a, 0x7a, 0x38, 0x50, 0x61, 0x46, 0x5a, 0x56, 0x61, 0x51, + 0x34, 0x2f, 0x4a, 0x79, 0x59, 0x72, 0x43, 0x41, 0x66, 0x39, 0x74, + 0x31, 0x59, 0x39, 0x50, 0x46, 0x5a, 0x57, 0x50, 0x44, 0x31, 0x57, + 0x41, 0x5a, 0x49, 0x52, 0x45, 0x6a, 0x73, 0x6f, 0x4b, 0x43, 0x30, + 0x75, 0x4b, 0x43, 0x67, 0x37, 0x45, 0x68, 0x45, 0x52, 0x45, 0x6a, + 0x73, 0x6f, 0x4b, 0x43, 0x34, 0x74, 0x4b, 0x43, 0x67, 0x37, 0x45, + 0x68, 0x45, 0x42, 0x53, 0x55, 0x51, 0x72, 0x54, 0x42, 0x31, 0x4f, + 0x4c, 0x52, 0x63, 0x59, 0x41, 0x67, 0x45, 0x53, 0x4a, 0x68, 0x51, + 0x36, 0x55, 0x51, 0x6b, 0x63, 0x44, 0x67, 0x34, 0x4e, 0x41, 0x51, + 0x46, 0x4a, 0x56, 0x6a, 0x77, 0x39, 0x56, 0x6c, 0x59, 0x39, 0x50, + 0x46, 0x59, 0x42, 0x74, 0x77, 0x45, 0x6d, 0x49, 0x69, 0x73, 0x77, + 0x45, 0x53, 0x49, 0x68, 0x51, 0x78, 0x6b, 0x5a, 0x4d, 0x41, 0x59, + 0x48, 0x43, 0x68, 0x49, 0x4b, 0x4a, 0x30, 0x73, 0x67, 0x2f, 0x70, + 0x52, 0x47, 0x54, 0x6b, 0x35, 0x47, 0x4d, 0x44, 0x6f, 0x35, 0x59, + 0x69, 0x45, 0x68, 0x54, 0x30, 0x38, 0x68, 0x49, 0x57, 0x49, 0x35, + 0x4f, 0x6a, 0x41, 0x43, 0x32, 0x6a, 0x31, 0x57, 0x56, 0x6a, 0x30, + 0x38, 0x56, 0x6c, 0x62, 0x2b, 0x36, 0x43, 0x30, 0x6f, 0x4b, 0x44, + 0x77, 0x52, 0x45, 0x52, 0x45, 0x52, 0x50, 0x43, 0x67, 0x6f, 0x4c, + 0x53, 0x34, 0x6f, 0x4b, 0x44, 0x73, 0x52, 0x45, 0x68, 0x49, 0x52, + 0x4f, 0x79, 0x67, 0x6f, 0x72, 0x6a, 0x41, 0x72, 0x49, 0x69, 0x59, + 0x42, 0x49, 0x45, 0x73, 0x6e, 0x43, 0x68, 0x49, 0x4b, 0x42, 0x77, + 0x59, 0x77, 0x47, 0x52, 0x6c, 0x44, 0x49, 0x53, 0x49, 0x42, 0x53, + 0x7a, 0x31, 0x57, 0x56, 0x6a, 0x30, 0x38, 0x56, 0x6c, 0x59, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x77, 0x41, 0x41, 0x41, 0x45, 0x6b, + 0x44, 0x62, 0x67, 0x4d, 0x6c, 0x41, 0x41, 0x38, 0x41, 0x48, 0x77, + 0x41, 0x76, 0x41, 0x41, 0x41, 0x6c, 0x46, 0x52, 0x51, 0x47, 0x49, + 0x79, 0x45, 0x69, 0x4a, 0x6a, 0x30, 0x42, 0x4e, 0x44, 0x59, 0x7a, + 0x49, 0x54, 0x49, 0x57, 0x45, 0x52, 0x55, 0x55, 0x42, 0x69, 0x4d, + 0x68, 0x49, 0x69, 0x59, 0x39, 0x41, 0x54, 0x51, 0x32, 0x4d, 0x79, + 0x45, 0x79, 0x46, 0x68, 0x45, 0x56, 0x46, 0x41, 0x59, 0x6a, 0x49, + 0x53, 0x49, 0x6d, 0x50, 0x51, 0x45, 0x30, 0x4e, 0x6a, 0x4d, 0x68, + 0x4d, 0x68, 0x59, 0x44, 0x62, 0x68, 0x59, 0x50, 0x2f, 0x4e, 0x77, + 0x50, 0x46, 0x68, 0x59, 0x50, 0x41, 0x79, 0x51, 0x50, 0x46, 0x68, + 0x59, 0x50, 0x2f, 0x4e, 0x77, 0x50, 0x46, 0x68, 0x59, 0x50, 0x41, + 0x79, 0x51, 0x50, 0x46, 0x68, 0x59, 0x50, 0x2f, 0x4e, 0x77, 0x50, + 0x46, 0x68, 0x59, 0x50, 0x41, 0x79, 0x51, 0x50, 0x46, 0x72, 0x64, + 0x4a, 0x44, 0x78, 0x59, 0x57, 0x44, 0x30, 0x6b, 0x50, 0x46, 0x52, + 0x55, 0x42, 0x46, 0x55, 0x6b, 0x50, 0x46, 0x52, 0x55, 0x50, 0x53, + 0x51, 0x38, 0x57, 0x46, 0x67, 0x45, 0x57, 0x53, 0x51, 0x38, 0x57, + 0x46, 0x67, 0x39, 0x4a, 0x44, 0x78, 0x59, 0x57, 0x41, 0x41, 0x6f, + 0x41, 0x41, 0x41, 0x42, 0x4a, 0x41, 0x37, 0x63, 0x44, 0x62, 0x67, + 0x41, 0x51, 0x41, 0x43, 0x41, 0x41, 0x4d, 0x51, 0x42, 0x42, 0x41, + 0x46, 0x45, 0x41, 0x59, 0x67, 0x42, 0x79, 0x41, 0x49, 0x4d, 0x41, + 0x6c, 0x41, 0x43, 0x6b, 0x41, 0x41, 0x41, 0x6c, 0x4e, 0x54, 0x51, + 0x6d, 0x4b, 0x77, 0x45, 0x69, 0x42, 0x68, 0x30, 0x42, 0x46, 0x42, + 0x59, 0x37, 0x41, 0x54, 0x49, 0x32, 0x4e, 0x54, 0x30, 0x42, 0x4e, + 0x43, 0x59, 0x72, 0x41, 0x53, 0x49, 0x47, 0x48, 0x51, 0x45, 0x55, + 0x46, 0x6a, 0x73, 0x42, 0x4d, 0x6a, 0x59, 0x46, 0x4e, 0x54, 0x51, + 0x6d, 0x4b, 0x77, 0x45, 0x69, 0x42, 0x68, 0x30, 0x42, 0x46, 0x42, + 0x59, 0x37, 0x41, 0x54, 0x49, 0x32, 0x4e, 0x51, 0x45, 0x31, 0x4e, + 0x43, 0x59, 0x72, 0x41, 0x53, 0x49, 0x47, 0x48, 0x51, 0x45, 0x55, + 0x46, 0x6a, 0x73, 0x42, 0x4d, 0x6a, 0x59, 0x46, 0x4e, 0x54, 0x51, + 0x6d, 0x4b, 0x77, 0x45, 0x69, 0x42, 0x68, 0x30, 0x42, 0x46, 0x42, + 0x59, 0x37, 0x41, 0x54, 0x49, 0x32, 0x42, 0x54, 0x55, 0x30, 0x4a, + 0x69, 0x73, 0x42, 0x49, 0x67, 0x59, 0x64, 0x41, 0x52, 0x51, 0x57, + 0x4f, 0x77, 0x45, 0x79, 0x4e, 0x6a, 0x55, 0x42, 0x4e, 0x54, 0x51, + 0x6d, 0x4b, 0x77, 0x45, 0x69, 0x42, 0x68, 0x30, 0x42, 0x46, 0x42, + 0x59, 0x37, 0x41, 0x54, 0x49, 0x32, 0x42, 0x54, 0x55, 0x30, 0x4a, + 0x69, 0x73, 0x42, 0x49, 0x67, 0x59, 0x64, 0x41, 0x52, 0x51, 0x57, + 0x4f, 0x77, 0x45, 0x79, 0x4e, 0x6a, 0x55, 0x39, 0x41, 0x54, 0x51, + 0x6d, 0x4b, 0x77, 0x45, 0x69, 0x42, 0x68, 0x30, 0x42, 0x46, 0x42, + 0x59, 0x37, 0x41, 0x54, 0x49, 0x32, 0x4e, 0x54, 0x63, 0x52, 0x46, + 0x41, 0x59, 0x6a, 0x49, 0x53, 0x49, 0x6d, 0x4e, 0x52, 0x45, 0x30, + 0x4e, 0x6a, 0x4d, 0x68, 0x4d, 0x68, 0x59, 0x42, 0x4a, 0x51, 0x73, + 0x49, 0x74, 0x77, 0x63, 0x4c, 0x43, 0x77, 0x65, 0x33, 0x43, 0x41, + 0x73, 0x4c, 0x43, 0x4c, 0x63, 0x48, 0x43, 0x77, 0x73, 0x48, 0x74, + 0x77, 0x67, 0x4c, 0x41, 0x53, 0x51, 0x4b, 0x43, 0x4c, 0x63, 0x49, + 0x43, 0x67, 0x6f, 0x49, 0x74, 0x77, 0x67, 0x4b, 0x2f, 0x74, 0x77, + 0x4c, 0x43, 0x4c, 0x63, 0x48, 0x43, 0x77, 0x73, 0x48, 0x74, 0x77, + 0x67, 0x4c, 0x41, 0x53, 0x51, 0x4b, 0x43, 0x4c, 0x63, 0x49, 0x43, + 0x67, 0x6f, 0x49, 0x74, 0x77, 0x67, 0x4b, 0x41, 0x53, 0x55, 0x4c, + 0x43, 0x4c, 0x59, 0x49, 0x43, 0x77, 0x73, 0x49, 0x74, 0x67, 0x67, + 0x4c, 0x2f, 0x74, 0x73, 0x4b, 0x43, 0x4c, 0x63, 0x49, 0x43, 0x67, + 0x6f, 0x49, 0x74, 0x77, 0x67, 0x4b, 0x41, 0x53, 0x55, 0x4c, 0x43, + 0x4c, 0x59, 0x49, 0x43, 0x77, 0x73, 0x49, 0x74, 0x67, 0x67, 0x4c, + 0x43, 0x77, 0x69, 0x32, 0x43, 0x41, 0x73, 0x4c, 0x43, 0x4c, 0x59, + 0x49, 0x43, 0x30, 0x6b, 0x32, 0x4a, 0x76, 0x30, 0x41, 0x4a, 0x54, + 0x59, 0x32, 0x4a, 0x51, 0x4d, 0x41, 0x4a, 0x6a, 0x61, 0x6c, 0x62, + 0x51, 0x67, 0x4c, 0x43, 0x77, 0x68, 0x74, 0x43, 0x41, 0x73, 0x4c, + 0x43, 0x4e, 0x74, 0x75, 0x42, 0x77, 0x73, 0x4c, 0x42, 0x32, 0x34, + 0x49, 0x43, 0x67, 0x72, 0x54, 0x62, 0x51, 0x67, 0x4c, 0x43, 0x77, + 0x68, 0x74, 0x43, 0x41, 0x73, 0x4c, 0x43, 0x41, 0x47, 0x32, 0x62, + 0x67, 0x67, 0x4b, 0x43, 0x67, 0x68, 0x75, 0x42, 0x77, 0x73, 0x4c, + 0x31, 0x47, 0x34, 0x48, 0x43, 0x77, 0x73, 0x48, 0x62, 0x67, 0x67, + 0x4b, 0x43, 0x74, 0x4e, 0x74, 0x43, 0x41, 0x73, 0x4c, 0x43, 0x47, + 0x30, 0x49, 0x43, 0x77, 0x73, 0x49, 0x41, 0x62, 0x5a, 0x75, 0x43, + 0x41, 0x6f, 0x4b, 0x43, 0x47, 0x34, 0x48, 0x43, 0x77, 0x76, 0x55, + 0x62, 0x67, 0x63, 0x4c, 0x43, 0x77, 0x64, 0x75, 0x43, 0x41, 0x6f, + 0x4b, 0x43, 0x4e, 0x74, 0x75, 0x43, 0x41, 0x6f, 0x4b, 0x43, 0x47, + 0x34, 0x48, 0x43, 0x77, 0x73, 0x48, 0x74, 0x2f, 0x32, 0x54, 0x4a, + 0x6a, 0x59, 0x32, 0x4a, 0x67, 0x4a, 0x74, 0x4a, 0x6a, 0x59, 0x32, + 0x41, 0x41, 0x41, 0x42, 0x41, 0x41, 0x41, 0x42, 0x41, 0x41, 0x4a, + 0x4a, 0x41, 0x6b, 0x6b, 0x41, 0x46, 0x51, 0x41, 0x41, 0x41, 0x52, + 0x51, 0x47, 0x42, 0x77, 0x45, 0x4f, 0x41, 0x53, 0x4d, 0x69, 0x4a, + 0x69, 0x63, 0x42, 0x4c, 0x67, 0x45, 0x31, 0x4e, 0x44, 0x59, 0x7a, + 0x49, 0x54, 0x49, 0x57, 0x46, 0x51, 0x4a, 0x4a, 0x42, 0x67, 0x58, + 0x2f, 0x41, 0x41, 0x55, 0x4e, 0x42, 0x77, 0x67, 0x4e, 0x42, 0x66, + 0x38, 0x41, 0x42, 0x51, 0x59, 0x57, 0x44, 0x77, 0x49, 0x41, 0x44, + 0x78, 0x55, 0x43, 0x4a, 0x51, 0x67, 0x4e, 0x42, 0x66, 0x38, 0x41, + 0x42, 0x51, 0x59, 0x47, 0x42, 0x51, 0x45, 0x41, 0x42, 0x51, 0x30, + 0x49, 0x44, 0x78, 0x55, 0x56, 0x44, 0x77, 0x41, 0x41, 0x41, 0x41, + 0x45, 0x41, 0x41, 0x41, 0x44, 0x62, 0x41, 0x6b, 0x6b, 0x43, 0x4a, + 0x51, 0x41, 0x55, 0x41, 0x41, 0x41, 0x42, 0x46, 0x41, 0x59, 0x6a, + 0x49, 0x53, 0x49, 0x6d, 0x4e, 0x54, 0x51, 0x32, 0x4e, 0x77, 0x45, + 0x2b, 0x41, 0x54, 0x4d, 0x79, 0x46, 0x68, 0x63, 0x42, 0x48, 0x67, + 0x45, 0x43, 0x53, 0x52, 0x55, 0x50, 0x2f, 0x67, 0x41, 0x50, 0x46, + 0x67, 0x59, 0x46, 0x41, 0x51, 0x41, 0x46, 0x44, 0x51, 0x67, 0x48, + 0x44, 0x51, 0x55, 0x42, 0x41, 0x41, 0x55, 0x47, 0x41, 0x51, 0x41, + 0x50, 0x46, 0x68, 0x59, 0x50, 0x42, 0x77, 0x34, 0x46, 0x41, 0x51, + 0x41, 0x46, 0x42, 0x67, 0x59, 0x46, 0x2f, 0x77, 0x41, 0x46, 0x44, + 0x67, 0x41, 0x42, 0x41, 0x43, 0x55, 0x41, 0x6b, 0x67, 0x46, 0x75, + 0x41, 0x74, 0x73, 0x41, 0x46, 0x51, 0x41, 0x41, 0x41, 0x52, 0x45, + 0x55, 0x42, 0x69, 0x4d, 0x69, 0x4a, 0x69, 0x63, 0x42, 0x4c, 0x67, + 0x45, 0x31, 0x4e, 0x44, 0x59, 0x33, 0x41, 0x54, 0x34, 0x42, 0x4d, + 0x7a, 0x49, 0x57, 0x46, 0x51, 0x46, 0x75, 0x46, 0x67, 0x38, 0x48, + 0x44, 0x51, 0x62, 0x2f, 0x41, 0x41, 0x55, 0x46, 0x42, 0x51, 0x55, + 0x42, 0x41, 0x41, 0x59, 0x4e, 0x42, 0x77, 0x38, 0x57, 0x41, 0x72, + 0x66, 0x2b, 0x41, 0x41, 0x38, 0x57, 0x42, 0x67, 0x55, 0x42, 0x41, + 0x41, 0x55, 0x4f, 0x42, 0x77, 0x63, 0x4e, 0x42, 0x67, 0x45, 0x41, + 0x42, 0x51, 0x55, 0x56, 0x44, 0x77, 0x41, 0x41, 0x41, 0x41, 0x45, + 0x41, 0x41, 0x41, 0x43, 0x53, 0x41, 0x55, 0x6b, 0x43, 0x32, 0x77, + 0x41, 0x56, 0x41, 0x41, 0x41, 0x42, 0x46, 0x41, 0x59, 0x48, 0x41, + 0x51, 0x34, 0x42, 0x49, 0x79, 0x49, 0x6d, 0x4e, 0x52, 0x45, 0x30, + 0x4e, 0x6a, 0x4d, 0x79, 0x46, 0x68, 0x63, 0x42, 0x48, 0x67, 0x45, + 0x56, 0x41, 0x55, 0x6b, 0x47, 0x42, 0x66, 0x38, 0x41, 0x42, 0x51, + 0x30, 0x48, 0x44, 0x78, 0x59, 0x57, 0x44, 0x77, 0x63, 0x4e, 0x42, + 0x51, 0x45, 0x41, 0x42, 0x51, 0x59, 0x42, 0x74, 0x77, 0x63, 0x4f, + 0x42, 0x66, 0x38, 0x41, 0x42, 0x51, 0x59, 0x57, 0x44, 0x77, 0x49, + 0x41, 0x44, 0x78, 0x55, 0x46, 0x42, 0x66, 0x38, 0x41, 0x42, 0x67, + 0x30, 0x48, 0x41, 0x41, 0x41, 0x41, 0x41, 0x67, 0x41, 0x41, 0x41, + 0x43, 0x55, 0x43, 0x53, 0x51, 0x4e, 0x4a, 0x41, 0x42, 0x55, 0x41, + 0x4b, 0x77, 0x41, 0x41, 0x41, 0x52, 0x51, 0x47, 0x42, 0x77, 0x45, + 0x4f, 0x41, 0x53, 0x4d, 0x69, 0x4a, 0x69, 0x63, 0x42, 0x4c, 0x67, + 0x45, 0x31, 0x4e, 0x44, 0x59, 0x7a, 0x49, 0x54, 0x49, 0x57, 0x46, + 0x54, 0x55, 0x55, 0x42, 0x69, 0x4d, 0x68, 0x49, 0x69, 0x59, 0x31, + 0x4e, 0x44, 0x59, 0x33, 0x41, 0x54, 0x34, 0x42, 0x4d, 0x7a, 0x49, + 0x57, 0x46, 0x77, 0x45, 0x65, 0x41, 0x52, 0x55, 0x43, 0x53, 0x51, + 0x59, 0x46, 0x2f, 0x77, 0x41, 0x46, 0x44, 0x51, 0x63, 0x49, 0x44, + 0x51, 0x58, 0x2f, 0x41, 0x41, 0x55, 0x47, 0x46, 0x67, 0x38, 0x43, + 0x41, 0x41, 0x38, 0x56, 0x46, 0x51, 0x2f, 0x2b, 0x41, 0x41, 0x38, + 0x57, 0x42, 0x67, 0x55, 0x42, 0x41, 0x41, 0x55, 0x4e, 0x43, 0x41, + 0x63, 0x4e, 0x42, 0x51, 0x45, 0x41, 0x42, 0x51, 0x59, 0x42, 0x53, + 0x51, 0x63, 0x4e, 0x42, 0x76, 0x38, 0x41, 0x42, 0x51, 0x55, 0x46, + 0x42, 0x51, 0x45, 0x41, 0x42, 0x67, 0x30, 0x48, 0x44, 0x78, 0x59, + 0x57, 0x44, 0x39, 0x77, 0x50, 0x46, 0x68, 0x59, 0x50, 0x42, 0x77, + 0x30, 0x46, 0x41, 0x51, 0x41, 0x46, 0x42, 0x67, 0x59, 0x46, 0x2f, + 0x77, 0x41, 0x46, 0x44, 0x51, 0x63, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x42, 0x77, 0x41, 0x41, 0x41, 0x41, 0x41, 0x45, 0x41, 0x41, 0x4d, + 0x6c, 0x41, 0x41, 0x73, 0x41, 0x46, 0x77, 0x41, 0x74, 0x41, 0x44, + 0x6b, 0x41, 0x52, 0x51, 0x42, 0x52, 0x41, 0x47, 0x30, 0x41, 0x41, + 0x42, 0x4d, 0x30, 0x4a, 0x69, 0x4d, 0x69, 0x42, 0x68, 0x55, 0x55, + 0x46, 0x6a, 0x4d, 0x79, 0x4e, 0x68, 0x4d, 0x30, 0x4a, 0x69, 0x4d, + 0x69, 0x42, 0x68, 0x55, 0x55, 0x46, 0x6a, 0x4d, 0x79, 0x4e, 0x68, + 0x63, 0x33, 0x4e, 0x69, 0x59, 0x6e, 0x4d, 0x53, 0x59, 0x47, 0x44, + 0x77, 0x45, 0x4f, 0x41, 0x51, 0x63, 0x47, 0x46, 0x68, 0x63, 0x57, + 0x4e, 0x6a, 0x63, 0x32, 0x4a, 0x69, 0x63, 0x6c, 0x4e, 0x43, 0x59, + 0x6a, 0x49, 0x67, 0x59, 0x56, 0x46, 0x42, 0x59, 0x7a, 0x4d, 0x6a, + 0x59, 0x42, 0x4e, 0x43, 0x59, 0x6a, 0x49, 0x67, 0x59, 0x56, 0x46, + 0x42, 0x59, 0x7a, 0x4d, 0x6a, 0x59, 0x46, 0x4e, 0x43, 0x59, 0x6a, + 0x49, 0x67, 0x59, 0x56, 0x46, 0x42, 0x59, 0x7a, 0x4d, 0x6a, 0x59, + 0x58, 0x46, 0x41, 0x59, 0x48, 0x44, 0x67, 0x45, 0x6a, 0x49, 0x53, + 0x49, 0x6d, 0x4a, 0x79, 0x34, 0x42, 0x4e, 0x54, 0x51, 0x33, 0x50, + 0x67, 0x45, 0x33, 0x4e, 0x6a, 0x4d, 0x79, 0x46, 0x78, 0x34, 0x42, + 0x46, 0x78, 0x59, 0x56, 0x32, 0x79, 0x6f, 0x66, 0x48, 0x69, 0x73, + 0x72, 0x48, 0x68, 0x38, 0x71, 0x62, 0x69, 0x73, 0x65, 0x48, 0x69, + 0x73, 0x72, 0x48, 0x68, 0x34, 0x72, 0x39, 0x54, 0x6b, 0x45, 0x44, + 0x77, 0x38, 0x4f, 0x47, 0x77, 0x4d, 0x36, 0x49, 0x6a, 0x59, 0x4a, + 0x44, 0x43, 0x34, 0x73, 0x4c, 0x45, 0x38, 0x4c, 0x43, 0x52, 0x6b, + 0x63, 0x41, 0x58, 0x6b, 0x72, 0x48, 0x68, 0x38, 0x71, 0x4b, 0x68, + 0x38, 0x65, 0x4b, 0x2f, 0x36, 0x53, 0x4b, 0x78, 0x34, 0x65, 0x4b, + 0x79, 0x73, 0x65, 0x48, 0x69, 0x73, 0x42, 0x41, 0x43, 0x73, 0x65, + 0x48, 0x69, 0x73, 0x72, 0x48, 0x68, 0x34, 0x72, 0x74, 0x79, 0x6b, + 0x6f, 0x42, 0x52, 0x41, 0x4a, 0x2f, 0x4e, 0x34, 0x4a, 0x45, 0x41, + 0x55, 0x6f, 0x4b, 0x53, 0x67, 0x70, 0x69, 0x31, 0x31, 0x64, 0x61, + 0x6d, 0x70, 0x64, 0x58, 0x59, 0x73, 0x70, 0x4b, 0x41, 0x45, 0x6c, + 0x48, 0x69, 0x73, 0x72, 0x48, 0x68, 0x38, 0x72, 0x4b, 0x77, 0x45, + 0x66, 0x48, 0x69, 0x73, 0x72, 0x48, 0x68, 0x38, 0x72, 0x4b, 0x2f, + 0x54, 0x61, 0x44, 0x78, 0x6f, 0x45, 0x41, 0x77, 0x38, 0x50, 0x32, + 0x67, 0x4d, 0x72, 0x49, 0x79, 0x78, 0x50, 0x43, 0x77, 0x77, 0x75, + 0x4c, 0x43, 0x4e, 0x41, 0x46, 0x42, 0x4d, 0x65, 0x4b, 0x79, 0x73, + 0x65, 0x48, 0x79, 0x73, 0x72, 0x41, 0x59, 0x77, 0x66, 0x4b, 0x69, + 0x6f, 0x66, 0x48, 0x69, 0x73, 0x72, 0x54, 0x78, 0x34, 0x72, 0x4b, + 0x78, 0x34, 0x66, 0x4b, 0x79, 0x76, 0x68, 0x53, 0x6f, 0x77, 0x2b, + 0x43, 0x41, 0x6b, 0x4a, 0x43, 0x44, 0x32, 0x4e, 0x53, 0x6d, 0x6c, + 0x65, 0x58, 0x59, 0x73, 0x6f, 0x4b, 0x53, 0x6b, 0x6f, 0x69, 0x31, + 0x31, 0x65, 0x61, 0x51, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x41, + 0x42, 0x6f, 0x41, 0x64, 0x51, 0x4a, 0x43, 0x41, 0x71, 0x38, 0x41, + 0x4a, 0x41, 0x42, 0x4a, 0x41, 0x41, 0x41, 0x6c, 0x46, 0x41, 0x59, + 0x50, 0x41, 0x51, 0x34, 0x42, 0x49, 0x79, 0x49, 0x6d, 0x4a, 0x77, + 0x45, 0x75, 0x41, 0x54, 0x55, 0x30, 0x4e, 0x6a, 0x63, 0x42, 0x50, + 0x67, 0x45, 0x7a, 0x4d, 0x68, 0x59, 0x66, 0x41, 0x52, 0x34, 0x42, + 0x46, 0x52, 0x51, 0x47, 0x44, 0x77, 0x45, 0x58, 0x48, 0x67, 0x45, + 0x56, 0x4d, 0x78, 0x51, 0x47, 0x44, 0x77, 0x45, 0x4f, 0x41, 0x53, + 0x4d, 0x69, 0x4a, 0x69, 0x63, 0x42, 0x4c, 0x67, 0x45, 0x31, 0x4e, + 0x44, 0x59, 0x33, 0x41, 0x54, 0x34, 0x42, 0x4d, 0x7a, 0x49, 0x57, + 0x48, 0x77, 0x45, 0x65, 0x41, 0x52, 0x55, 0x55, 0x42, 0x67, 0x38, + 0x42, 0x46, 0x78, 0x34, 0x42, 0x46, 0x51, 0x46, 0x6d, 0x41, 0x77, + 0x49, 0x64, 0x41, 0x77, 0x63, 0x44, 0x42, 0x41, 0x63, 0x43, 0x2f, + 0x76, 0x55, 0x43, 0x41, 0x77, 0x4d, 0x43, 0x41, 0x51, 0x73, 0x43, + 0x42, 0x77, 0x51, 0x44, 0x42, 0x77, 0x4d, 0x64, 0x41, 0x67, 0x4d, + 0x44, 0x41, 0x75, 0x48, 0x68, 0x41, 0x67, 0x50, 0x63, 0x41, 0x77, + 0x4d, 0x64, 0x41, 0x67, 0x63, 0x45, 0x41, 0x77, 0x63, 0x44, 0x2f, + 0x76, 0x59, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x51, 0x6f, 0x44, + 0x42, 0x77, 0x4d, 0x45, 0x42, 0x77, 0x49, 0x64, 0x41, 0x77, 0x4d, + 0x44, 0x41, 0x2b, 0x48, 0x68, 0x41, 0x77, 0x4f, 0x6c, 0x42, 0x41, + 0x63, 0x44, 0x48, 0x41, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x42, 0x43, + 0x67, 0x4d, 0x48, 0x41, 0x77, 0x51, 0x48, 0x41, 0x67, 0x45, 0x4c, + 0x41, 0x67, 0x4d, 0x44, 0x41, 0x68, 0x30, 0x43, 0x43, 0x41, 0x4d, + 0x44, 0x43, 0x41, 0x4c, 0x68, 0x34, 0x41, 0x4d, 0x48, 0x41, 0x77, + 0x51, 0x48, 0x41, 0x78, 0x77, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, + 0x51, 0x6f, 0x44, 0x42, 0x77, 0x4d, 0x45, 0x42, 0x77, 0x49, 0x42, + 0x43, 0x77, 0x49, 0x44, 0x41, 0x77, 0x49, 0x64, 0x41, 0x67, 0x67, + 0x44, 0x41, 0x77, 0x67, 0x43, 0x34, 0x65, 0x41, 0x44, 0x42, 0x77, + 0x4d, 0x41, 0x41, 0x41, 0x41, 0x43, 0x41, 0x41, 0x63, 0x41, 0x64, + 0x51, 0x49, 0x76, 0x41, 0x71, 0x38, 0x41, 0x4a, 0x41, 0x42, 0x4a, + 0x41, 0x41, 0x41, 0x42, 0x46, 0x41, 0x59, 0x48, 0x41, 0x51, 0x34, + 0x42, 0x49, 0x79, 0x49, 0x6d, 0x4c, 0x77, 0x45, 0x75, 0x41, 0x54, + 0x55, 0x30, 0x4e, 0x6a, 0x38, 0x42, 0x4a, 0x79, 0x34, 0x42, 0x4e, + 0x54, 0x51, 0x32, 0x50, 0x77, 0x45, 0x2b, 0x41, 0x54, 0x4d, 0x79, + 0x46, 0x68, 0x63, 0x42, 0x48, 0x67, 0x45, 0x56, 0x4d, 0x78, 0x51, + 0x47, 0x42, 0x77, 0x45, 0x4f, 0x41, 0x53, 0x4d, 0x69, 0x4a, 0x69, + 0x38, 0x42, 0x4c, 0x67, 0x45, 0x31, 0x4e, 0x44, 0x59, 0x2f, 0x41, + 0x53, 0x63, 0x75, 0x41, 0x54, 0x55, 0x30, 0x4e, 0x6a, 0x38, 0x42, + 0x50, 0x67, 0x45, 0x7a, 0x4d, 0x68, 0x59, 0x58, 0x41, 0x52, 0x34, + 0x42, 0x46, 0x51, 0x46, 0x55, 0x41, 0x77, 0x50, 0x2b, 0x39, 0x67, + 0x4d, 0x48, 0x41, 0x77, 0x51, 0x48, 0x41, 0x68, 0x30, 0x43, 0x42, + 0x41, 0x51, 0x43, 0x34, 0x65, 0x45, 0x43, 0x42, 0x41, 0x51, 0x43, + 0x48, 0x51, 0x49, 0x48, 0x42, 0x41, 0x4d, 0x48, 0x41, 0x77, 0x45, + 0x4b, 0x41, 0x77, 0x50, 0x62, 0x41, 0x77, 0x4c, 0x2b, 0x39, 0x51, + 0x49, 0x48, 0x42, 0x41, 0x4d, 0x48, 0x41, 0x78, 0x77, 0x44, 0x41, + 0x77, 0x4d, 0x44, 0x34, 0x4f, 0x41, 0x44, 0x41, 0x77, 0x4d, 0x44, + 0x48, 0x41, 0x4d, 0x48, 0x41, 0x77, 0x51, 0x48, 0x41, 0x67, 0x45, + 0x4c, 0x41, 0x67, 0x4d, 0x42, 0x6b, 0x67, 0x4d, 0x48, 0x41, 0x2f, + 0x37, 0x32, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x78, 0x77, 0x44, 0x42, + 0x77, 0x51, 0x44, 0x42, 0x77, 0x50, 0x67, 0x34, 0x51, 0x49, 0x49, + 0x41, 0x77, 0x4d, 0x49, 0x41, 0x68, 0x30, 0x43, 0x41, 0x77, 0x4d, + 0x43, 0x2f, 0x76, 0x55, 0x43, 0x42, 0x77, 0x51, 0x44, 0x42, 0x77, + 0x50, 0x2b, 0x39, 0x67, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x63, 0x41, + 0x77, 0x63, 0x45, 0x41, 0x77, 0x63, 0x44, 0x34, 0x4f, 0x45, 0x43, + 0x43, 0x41, 0x4d, 0x44, 0x43, 0x41, 0x49, 0x64, 0x41, 0x67, 0x4d, + 0x44, 0x41, 0x76, 0x37, 0x31, 0x41, 0x67, 0x63, 0x45, 0x41, 0x41, + 0x41, 0x42, 0x41, 0x42, 0x6f, 0x41, 0x64, 0x51, 0x46, 0x6d, 0x41, + 0x71, 0x38, 0x41, 0x4a, 0x41, 0x41, 0x41, 0x41, 0x52, 0x51, 0x47, + 0x44, 0x77, 0x45, 0x58, 0x48, 0x67, 0x45, 0x56, 0x46, 0x41, 0x59, + 0x50, 0x41, 0x51, 0x34, 0x42, 0x49, 0x79, 0x49, 0x6d, 0x4a, 0x77, + 0x45, 0x75, 0x41, 0x54, 0x55, 0x30, 0x4e, 0x6a, 0x63, 0x42, 0x50, + 0x67, 0x45, 0x7a, 0x4d, 0x68, 0x59, 0x66, 0x41, 0x52, 0x34, 0x42, + 0x46, 0x51, 0x46, 0x6d, 0x41, 0x77, 0x4c, 0x68, 0x34, 0x51, 0x49, + 0x44, 0x41, 0x77, 0x49, 0x64, 0x41, 0x77, 0x63, 0x44, 0x42, 0x41, + 0x63, 0x43, 0x2f, 0x76, 0x55, 0x43, 0x41, 0x77, 0x4d, 0x43, 0x41, + 0x51, 0x73, 0x43, 0x42, 0x77, 0x51, 0x44, 0x42, 0x77, 0x4d, 0x64, + 0x41, 0x67, 0x4d, 0x43, 0x67, 0x41, 0x4d, 0x49, 0x41, 0x75, 0x48, + 0x67, 0x41, 0x77, 0x63, 0x44, 0x42, 0x41, 0x63, 0x44, 0x48, 0x41, + 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x42, 0x43, 0x67, 0x4d, 0x48, 0x41, + 0x77, 0x51, 0x48, 0x41, 0x67, 0x45, 0x4c, 0x41, 0x67, 0x4d, 0x44, + 0x41, 0x68, 0x30, 0x43, 0x42, 0x77, 0x51, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x51, 0x41, 0x48, 0x41, 0x48, 0x55, 0x42, 0x56, 0x41, + 0x4b, 0x76, 0x41, 0x43, 0x51, 0x41, 0x41, 0x41, 0x45, 0x55, 0x42, + 0x67, 0x63, 0x42, 0x44, 0x67, 0x45, 0x6a, 0x49, 0x69, 0x59, 0x76, + 0x41, 0x53, 0x34, 0x42, 0x4e, 0x54, 0x51, 0x32, 0x50, 0x77, 0x45, + 0x6e, 0x4c, 0x67, 0x45, 0x31, 0x4e, 0x44, 0x59, 0x2f, 0x41, 0x54, + 0x34, 0x42, 0x4d, 0x7a, 0x49, 0x57, 0x46, 0x77, 0x45, 0x65, 0x41, + 0x52, 0x55, 0x42, 0x56, 0x41, 0x4d, 0x44, 0x2f, 0x76, 0x59, 0x44, + 0x42, 0x77, 0x4d, 0x45, 0x42, 0x77, 0x49, 0x64, 0x41, 0x67, 0x51, + 0x45, 0x41, 0x75, 0x48, 0x68, 0x41, 0x67, 0x51, 0x45, 0x41, 0x68, + 0x30, 0x43, 0x42, 0x77, 0x51, 0x44, 0x42, 0x77, 0x4d, 0x42, 0x43, + 0x67, 0x4d, 0x44, 0x41, 0x5a, 0x49, 0x44, 0x42, 0x77, 0x50, 0x2b, + 0x39, 0x67, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x63, 0x41, 0x77, 0x63, + 0x45, 0x41, 0x77, 0x63, 0x44, 0x34, 0x4f, 0x45, 0x43, 0x43, 0x41, + 0x4d, 0x44, 0x43, 0x41, 0x49, 0x64, 0x41, 0x67, 0x4d, 0x44, 0x41, + 0x76, 0x37, 0x31, 0x41, 0x67, 0x63, 0x45, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x49, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0x45, 0x6b, + 0x44, 0x74, 0x77, 0x41, 0x50, 0x41, 0x43, 0x34, 0x41, 0x41, 0x41, + 0x45, 0x52, 0x4e, 0x43, 0x59, 0x6a, 0x49, 0x53, 0x49, 0x47, 0x46, + 0x52, 0x45, 0x55, 0x46, 0x6a, 0x4d, 0x68, 0x4d, 0x6a, 0x59, 0x54, + 0x45, 0x52, 0x51, 0x47, 0x49, 0x79, 0x45, 0x55, 0x46, 0x68, 0x55, + 0x55, 0x42, 0x69, 0x4d, 0x68, 0x49, 0x69, 0x59, 0x31, 0x4e, 0x44, + 0x59, 0x31, 0x49, 0x53, 0x49, 0x6d, 0x4e, 0x52, 0x45, 0x30, 0x4e, + 0x6a, 0x4d, 0x68, 0x4d, 0x68, 0x59, 0x56, 0x42, 0x41, 0x41, 0x4c, + 0x42, 0x2f, 0x78, 0x74, 0x42, 0x77, 0x73, 0x4c, 0x42, 0x77, 0x4f, + 0x54, 0x42, 0x77, 0x74, 0x4a, 0x4e, 0x69, 0x58, 0x2b, 0x79, 0x53, + 0x51, 0x56, 0x44, 0x2f, 0x37, 0x62, 0x44, 0x78, 0x55, 0x6b, 0x2f, + 0x73, 0x6b, 0x6c, 0x4e, 0x6a, 0x59, 0x6c, 0x41, 0x35, 0x4d, 0x6c, + 0x4e, 0x67, 0x47, 0x41, 0x41, 0x64, 0x73, 0x49, 0x43, 0x77, 0x73, + 0x49, 0x2f, 0x69, 0x55, 0x48, 0x43, 0x77, 0x73, 0x42, 0x34, 0x76, + 0x32, 0x54, 0x4a, 0x6a, 0x59, 0x6b, 0x4f, 0x67, 0x38, 0x50, 0x46, + 0x68, 0x59, 0x50, 0x44, 0x7a, 0x6b, 0x6c, 0x4e, 0x69, 0x59, 0x43, + 0x62, 0x53, 0x59, 0x32, 0x4e, 0x69, 0x59, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x67, 0x41, 0x41, 0x41, 0x41, 0x41, 0x44, 0x62, 0x67, + 0x4e, 0x75, 0x41, 0x42, 0x77, 0x41, 0x4f, 0x51, 0x41, 0x41, 0x41, + 0x53, 0x49, 0x48, 0x44, 0x67, 0x45, 0x48, 0x42, 0x68, 0x55, 0x55, + 0x46, 0x78, 0x34, 0x42, 0x46, 0x78, 0x59, 0x7a, 0x4d, 0x6a, 0x63, + 0x2b, 0x41, 0x54, 0x63, 0x32, 0x4e, 0x54, 0x51, 0x6e, 0x4c, 0x67, + 0x45, 0x6e, 0x4a, 0x69, 0x4d, 0x42, 0x46, 0x41, 0x63, 0x4f, 0x41, + 0x51, 0x63, 0x47, 0x49, 0x79, 0x49, 0x6e, 0x4c, 0x67, 0x45, 0x6e, + 0x4a, 0x6a, 0x55, 0x30, 0x4e, 0x7a, 0x34, 0x42, 0x4e, 0x7a, 0x59, + 0x7a, 0x4d, 0x54, 0x49, 0x58, 0x48, 0x67, 0x45, 0x58, 0x46, 0x67, + 0x47, 0x33, 0x51, 0x44, 0x6b, 0x35, 0x56, 0x42, 0x6b, 0x59, 0x47, + 0x42, 0x6c, 0x55, 0x4f, 0x54, 0x6c, 0x41, 0x51, 0x44, 0x6b, 0x34, + 0x56, 0x52, 0x67, 0x5a, 0x47, 0x52, 0x68, 0x56, 0x4f, 0x44, 0x6c, + 0x41, 0x41, 0x62, 0x63, 0x6a, 0x49, 0x6e, 0x64, 0x51, 0x55, 0x46, + 0x74, 0x62, 0x55, 0x46, 0x42, 0x33, 0x49, 0x79, 0x49, 0x69, 0x49, + 0x33, 0x64, 0x51, 0x55, 0x46, 0x74, 0x62, 0x55, 0x46, 0x42, 0x33, + 0x49, 0x69, 0x4d, 0x43, 0x37, 0x68, 0x6b, 0x59, 0x56, 0x54, 0x67, + 0x35, 0x51, 0x45, 0x41, 0x35, 0x4f, 0x56, 0x51, 0x5a, 0x47, 0x42, + 0x67, 0x5a, 0x56, 0x44, 0x6b, 0x35, 0x51, 0x45, 0x41, 0x35, 0x4f, + 0x46, 0x55, 0x59, 0x47, 0x66, 0x37, 0x4a, 0x57, 0x31, 0x42, 0x51, + 0x64, 0x79, 0x49, 0x6a, 0x49, 0x79, 0x4a, 0x33, 0x55, 0x46, 0x42, + 0x62, 0x57, 0x31, 0x42, 0x51, 0x64, 0x79, 0x49, 0x6a, 0x49, 0x79, + 0x4a, 0x33, 0x55, 0x46, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x51, 0x41, 0x41, 0x41, 0x41, 0x41, 0x44, 0x62, 0x67, 0x4e, 0x75, + 0x41, 0x42, 0x73, 0x41, 0x41, 0x41, 0x45, 0x55, 0x42, 0x77, 0x34, + 0x42, 0x42, 0x77, 0x59, 0x6a, 0x49, 0x69, 0x63, 0x75, 0x41, 0x53, + 0x63, 0x6d, 0x4e, 0x54, 0x51, 0x33, 0x50, 0x67, 0x45, 0x33, 0x4e, + 0x6a, 0x4d, 0x79, 0x46, 0x78, 0x34, 0x42, 0x46, 0x78, 0x59, 0x44, + 0x62, 0x69, 0x4d, 0x69, 0x64, 0x31, 0x42, 0x51, 0x57, 0x31, 0x74, + 0x51, 0x55, 0x48, 0x63, 0x6a, 0x49, 0x69, 0x49, 0x6a, 0x64, 0x31, + 0x42, 0x51, 0x57, 0x31, 0x74, 0x51, 0x55, 0x48, 0x63, 0x69, 0x49, + 0x77, 0x47, 0x33, 0x57, 0x31, 0x42, 0x51, 0x64, 0x79, 0x49, 0x6a, + 0x49, 0x79, 0x4a, 0x33, 0x55, 0x46, 0x42, 0x62, 0x57, 0x31, 0x42, + 0x51, 0x64, 0x79, 0x49, 0x6a, 0x49, 0x79, 0x4a, 0x33, 0x55, 0x46, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x77, 0x41, 0x66, 0x41, + 0x41, 0x73, 0x45, 0x4b, 0x67, 0x4d, 0x61, 0x41, 0x42, 0x55, 0x41, + 0x4a, 0x67, 0x41, 0x38, 0x41, 0x41, 0x41, 0x6c, 0x42, 0x77, 0x59, + 0x69, 0x4a, 0x77, 0x45, 0x6d, 0x4e, 0x44, 0x63, 0x42, 0x4e, 0x6a, + 0x49, 0x66, 0x41, 0x52, 0x59, 0x55, 0x44, 0x77, 0x45, 0x58, 0x46, + 0x68, 0x51, 0x48, 0x41, 0x51, 0x4d, 0x4f, 0x41, 0x53, 0x38, 0x42, + 0x4c, 0x67, 0x45, 0x33, 0x45, 0x7a, 0x34, 0x42, 0x48, 0x77, 0x45, + 0x65, 0x41, 0x51, 0x63, 0x4a, 0x41, 0x51, 0x59, 0x69, 0x4c, 0x77, + 0x45, 0x6d, 0x4e, 0x44, 0x38, 0x42, 0x4a, 0x79, 0x59, 0x30, 0x50, + 0x77, 0x45, 0x32, 0x4d, 0x68, 0x63, 0x42, 0x46, 0x68, 0x51, 0x48, + 0x41, 0x57, 0x45, 0x64, 0x42, 0x67, 0x38, 0x46, 0x2f, 0x76, 0x55, + 0x46, 0x42, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x38, 0x47, 0x48, 0x51, + 0x55, 0x46, 0x34, 0x65, 0x45, 0x46, 0x42, 0x51, 0x46, 0x52, 0x31, + 0x51, 0x49, 0x4e, 0x42, 0x79, 0x51, 0x48, 0x42, 0x77, 0x4c, 0x56, + 0x41, 0x67, 0x30, 0x48, 0x4a, 0x41, 0x63, 0x48, 0x41, 0x67, 0x46, + 0x34, 0x2f, 0x76, 0x55, 0x46, 0x44, 0x77, 0x59, 0x63, 0x42, 0x67, + 0x62, 0x67, 0x34, 0x41, 0x59, 0x47, 0x48, 0x41, 0x59, 0x50, 0x42, + 0x51, 0x45, 0x4c, 0x42, 0x51, 0x57, 0x58, 0x48, 0x41, 0x59, 0x47, + 0x41, 0x51, 0x6f, 0x47, 0x44, 0x77, 0x55, 0x42, 0x43, 0x77, 0x55, + 0x46, 0x48, 0x51, 0x55, 0x51, 0x42, 0x65, 0x48, 0x67, 0x42, 0x67, + 0x38, 0x47, 0x41, 0x6d, 0x4c, 0x39, 0x48, 0x67, 0x63, 0x48, 0x41, + 0x67, 0x6f, 0x43, 0x44, 0x51, 0x63, 0x43, 0x34, 0x67, 0x63, 0x49, + 0x41, 0x67, 0x6f, 0x43, 0x44, 0x67, 0x66, 0x2b, 0x6a, 0x50, 0x37, + 0x32, 0x42, 0x67, 0x59, 0x63, 0x42, 0x67, 0x38, 0x47, 0x34, 0x4f, + 0x45, 0x46, 0x45, 0x41, 0x55, 0x64, 0x42, 0x51, 0x58, 0x2b, 0x39, + 0x51, 0x55, 0x50, 0x42, 0x67, 0x41, 0x41, 0x41, 0x41, 0x49, 0x41, + 0x41, 0x50, 0x2b, 0x33, 0x41, 0x32, 0x34, 0x44, 0x74, 0x77, 0x41, + 0x49, 0x41, 0x42, 0x73, 0x41, 0x41, 0x41, 0x45, 0x52, 0x48, 0x67, + 0x45, 0x66, 0x41, 0x52, 0x34, 0x42, 0x46, 0x77, 0x55, 0x55, 0x46, + 0x6a, 0x4d, 0x68, 0x45, 0x52, 0x51, 0x47, 0x49, 0x79, 0x45, 0x69, + 0x4a, 0x6a, 0x55, 0x52, 0x4e, 0x44, 0x59, 0x7a, 0x49, 0x52, 0x45, + 0x43, 0x53, 0x51, 0x59, 0x4b, 0x42, 0x65, 0x6b, 0x45, 0x43, 0x41, + 0x54, 0x2b, 0x71, 0x53, 0x41, 0x58, 0x41, 0x54, 0x63, 0x67, 0x46, + 0x2f, 0x30, 0x41, 0x46, 0x79, 0x41, 0x67, 0x46, 0x77, 0x48, 0x4a, + 0x41, 0x70, 0x49, 0x42, 0x44, 0x67, 0x51, 0x49, 0x42, 0x4f, 0x6b, + 0x45, 0x43, 0x77, 0x59, 0x53, 0x46, 0x79, 0x44, 0x39, 0x70, 0x52, + 0x63, 0x67, 0x49, 0x42, 0x63, 0x44, 0x6b, 0x68, 0x63, 0x67, 0x2f, + 0x73, 0x6b, 0x41, 0x41, 0x41, 0x55, 0x41, 0x41, 0x50, 0x2b, 0x33, + 0x41, 0x32, 0x34, 0x44, 0x74, 0x77, 0x41, 0x49, 0x41, 0x42, 0x6f, + 0x41, 0x4b, 0x77, 0x41, 0x38, 0x41, 0x45, 0x30, 0x41, 0x41, 0x41, + 0x45, 0x65, 0x41, 0x52, 0x63, 0x68, 0x45, 0x52, 0x34, 0x42, 0x46, + 0x77, 0x4d, 0x68, 0x45, 0x52, 0x51, 0x47, 0x49, 0x79, 0x45, 0x69, + 0x4a, 0x6a, 0x55, 0x52, 0x4e, 0x44, 0x59, 0x7a, 0x49, 0x52, 0x45, + 0x55, 0x46, 0x68, 0x4d, 0x31, 0x4e, 0x43, 0x59, 0x6a, 0x49, 0x53, + 0x49, 0x47, 0x48, 0x51, 0x45, 0x55, 0x46, 0x6a, 0x4d, 0x68, 0x4d, + 0x6a, 0x59, 0x31, 0x50, 0x51, 0x45, 0x30, 0x4a, 0x69, 0x4d, 0x68, + 0x49, 0x67, 0x59, 0x64, 0x41, 0x52, 0x51, 0x57, 0x4d, 0x79, 0x45, + 0x79, 0x4e, 0x6a, 0x55, 0x39, 0x41, 0x54, 0x51, 0x6d, 0x49, 0x79, + 0x45, 0x69, 0x42, 0x68, 0x30, 0x42, 0x46, 0x42, 0x59, 0x7a, 0x49, + 0x54, 0x49, 0x32, 0x4e, 0x51, 0x4e, 0x48, 0x42, 0x41, 0x67, 0x45, + 0x2f, 0x76, 0x49, 0x47, 0x43, 0x67, 0x55, 0x6e, 0x41, 0x54, 0x63, + 0x67, 0x46, 0x2f, 0x30, 0x41, 0x46, 0x79, 0x41, 0x67, 0x46, 0x77, + 0x48, 0x4a, 0x49, 0x48, 0x49, 0x4b, 0x43, 0x50, 0x35, 0x75, 0x43, + 0x41, 0x73, 0x4c, 0x43, 0x41, 0x47, 0x53, 0x43, 0x41, 0x6f, 0x4b, + 0x43, 0x50, 0x35, 0x75, 0x43, 0x41, 0x73, 0x4c, 0x43, 0x41, 0x47, + 0x53, 0x43, 0x41, 0x6f, 0x4b, 0x43, 0x50, 0x35, 0x75, 0x43, 0x41, + 0x73, 0x4c, 0x43, 0x41, 0x47, 0x53, 0x43, 0x41, 0x6f, 0x43, 0x70, + 0x77, 0x51, 0x4c, 0x42, 0x67, 0x45, 0x4f, 0x42, 0x41, 0x67, 0x45, + 0x2f, 0x72, 0x6e, 0x39, 0x70, 0x52, 0x63, 0x67, 0x49, 0x42, 0x63, + 0x44, 0x6b, 0x68, 0x63, 0x67, 0x2f, 0x73, 0x6b, 0x58, 0x49, 0x50, + 0x35, 0x63, 0x4a, 0x41, 0x67, 0x4b, 0x43, 0x67, 0x67, 0x6b, 0x43, + 0x41, 0x73, 0x4c, 0x43, 0x4a, 0x49, 0x6b, 0x43, 0x41, 0x73, 0x4c, + 0x43, 0x43, 0x51, 0x49, 0x43, 0x67, 0x6f, 0x49, 0x6b, 0x69, 0x55, + 0x48, 0x43, 0x77, 0x73, 0x48, 0x4a, 0x51, 0x67, 0x4b, 0x43, 0x67, + 0x67, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x51, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x44, 0x58, 0x41, 0x4e, 0x75, 0x41, 0x44, 0x73, 0x41, + 0x41, 0x41, 0x45, 0x68, 0x48, 0x67, 0x45, 0x56, 0x46, 0x41, 0x63, + 0x4f, 0x41, 0x51, 0x63, 0x47, 0x49, 0x79, 0x49, 0x6e, 0x4c, 0x67, + 0x45, 0x6e, 0x4a, 0x6a, 0x55, 0x30, 0x4e, 0x7a, 0x34, 0x42, 0x4e, + 0x7a, 0x59, 0x7a, 0x4d, 0x68, 0x63, 0x65, 0x41, 0x52, 0x63, 0x57, + 0x46, 0x77, 0x63, 0x75, 0x41, 0x53, 0x4d, 0x69, 0x42, 0x77, 0x34, + 0x42, 0x42, 0x77, 0x59, 0x56, 0x46, 0x42, 0x63, 0x65, 0x41, 0x52, + 0x63, 0x57, 0x4d, 0x7a, 0x49, 0x33, 0x50, 0x67, 0x45, 0x33, 0x4e, + 0x6a, 0x63, 0x6a, 0x4e, 0x51, 0x47, 0x33, 0x41, 0x5a, 0x34, 0x44, + 0x42, 0x42, 0x34, 0x65, 0x62, 0x30, 0x35, 0x4e, 0x58, 0x31, 0x74, + 0x51, 0x55, 0x48, 0x63, 0x6a, 0x49, 0x69, 0x49, 0x6a, 0x64, 0x31, + 0x42, 0x51, 0x57, 0x79, 0x77, 0x70, 0x4b, 0x55, 0x6f, 0x67, 0x49, + 0x52, 0x31, 0x33, 0x47, 0x56, 0x5a, 0x41, 0x4f, 0x44, 0x49, 0x78, + 0x53, 0x68, 0x59, 0x56, 0x46, 0x52, 0x5a, 0x4b, 0x4d, 0x54, 0x49, + 0x34, 0x51, 0x53, 0x34, 0x74, 0x4f, 0x77, 0x38, 0x50, 0x42, 0x50, + 0x6b, 0x42, 0x39, 0x68, 0x45, 0x6a, 0x46, 0x56, 0x35, 0x50, 0x54, + 0x33, 0x45, 0x67, 0x49, 0x43, 0x49, 0x6a, 0x64, 0x31, 0x42, 0x51, + 0x57, 0x31, 0x74, 0x51, 0x55, 0x48, 0x63, 0x69, 0x49, 0x77, 0x67, + 0x49, 0x48, 0x68, 0x55, 0x56, 0x47, 0x33, 0x4d, 0x59, 0x4c, 0x42, + 0x59, 0x57, 0x53, 0x7a, 0x49, 0x7a, 0x4f, 0x54, 0x6f, 0x79, 0x4d, + 0x30, 0x73, 0x57, 0x46, 0x52, 0x51, 0x56, 0x4f, 0x69, 0x45, 0x68, + 0x47, 0x4a, 0x63, 0x41, 0x41, 0x51, 0x41, 0x53, 0x2f, 0x38, 0x6b, + 0x44, 0x37, 0x67, 0x4f, 0x66, 0x41, 0x44, 0x6f, 0x41, 0x41, 0x41, + 0x45, 0x55, 0x42, 0x77, 0x34, 0x42, 0x42, 0x77, 0x59, 0x6a, 0x49, + 0x69, 0x63, 0x75, 0x41, 0x53, 0x63, 0x6d, 0x4e, 0x54, 0x51, 0x33, + 0x50, 0x67, 0x45, 0x33, 0x4e, 0x6a, 0x63, 0x56, 0x42, 0x67, 0x63, + 0x4f, 0x41, 0x51, 0x63, 0x47, 0x46, 0x52, 0x51, 0x58, 0x48, 0x67, + 0x45, 0x58, 0x46, 0x6a, 0x4d, 0x79, 0x4e, 0x7a, 0x34, 0x42, 0x4e, + 0x7a, 0x59, 0x31, 0x4e, 0x43, 0x63, 0x75, 0x41, 0x53, 0x63, 0x6d, + 0x4a, 0x7a, 0x55, 0x57, 0x46, 0x78, 0x34, 0x42, 0x46, 0x78, 0x59, + 0x56, 0x41, 0x2b, 0x34, 0x6e, 0x4a, 0x34, 0x5a, 0x61, 0x57, 0x6d, + 0x5a, 0x6d, 0x57, 0x6c, 0x71, 0x47, 0x4a, 0x79, 0x63, 0x68, 0x49, + 0x48, 0x46, 0x4e, 0x54, 0x56, 0x6b, 0x2f, 0x4e, 0x54, 0x5a, 0x4f, + 0x46, 0x68, 0x63, 0x64, 0x48, 0x57, 0x4e, 0x44, 0x51, 0x6b, 0x78, + 0x4d, 0x51, 0x6b, 0x4e, 0x6a, 0x48, 0x52, 0x30, 0x58, 0x46, 0x6b, + 0x34, 0x32, 0x4e, 0x54, 0x39, 0x5a, 0x54, 0x55, 0x31, 0x78, 0x49, + 0x43, 0x45, 0x42, 0x74, 0x32, 0x5a, 0x61, 0x57, 0x6f, 0x59, 0x6e, + 0x4a, 0x79, 0x63, 0x6e, 0x68, 0x6c, 0x70, 0x61, 0x5a, 0x6c, 0x31, + 0x54, 0x55, 0x34, 0x49, 0x72, 0x4b, 0x77, 0x32, 0x43, 0x44, 0x53, + 0x41, 0x68, 0x58, 0x7a, 0x73, 0x38, 0x51, 0x6b, 0x78, 0x43, 0x51, + 0x32, 0x4d, 0x64, 0x48, 0x52, 0x30, 0x64, 0x59, 0x30, 0x4e, 0x43, + 0x54, 0x45, 0x49, 0x38, 0x4f, 0x31, 0x38, 0x68, 0x49, 0x41, 0x32, + 0x43, 0x44, 0x53, 0x73, 0x72, 0x67, 0x6c, 0x4e, 0x54, 0x58, 0x51, + 0x41, 0x41, 0x42, 0x41, 0x41, 0x4e, 0x2f, 0x37, 0x63, 0x45, 0x68, + 0x67, 0x4f, 0x33, 0x41, 0x42, 0x49, 0x41, 0x4a, 0x51, 0x41, 0x39, + 0x41, 0x47, 0x38, 0x41, 0x41, 0x41, 0x55, 0x30, 0x4a, 0x69, 0x4d, + 0x69, 0x4a, 0x6a, 0x55, 0x30, 0x4a, 0x69, 0x4d, 0x69, 0x42, 0x68, + 0x55, 0x55, 0x46, 0x6a, 0x4d, 0x79, 0x4e, 0x6a, 0x55, 0x4a, 0x41, + 0x53, 0x34, 0x42, 0x49, 0x79, 0x49, 0x48, 0x44, 0x67, 0x45, 0x48, + 0x42, 0x68, 0x55, 0x55, 0x42, 0x77, 0x34, 0x42, 0x42, 0x77, 0x59, + 0x48, 0x42, 0x52, 0x51, 0x47, 0x49, 0x79, 0x45, 0x55, 0x42, 0x69, + 0x4d, 0x69, 0x4a, 0x6a, 0x55, 0x33, 0x49, 0x53, 0x34, 0x42, 0x4a, + 0x7a, 0x63, 0x57, 0x46, 0x78, 0x34, 0x42, 0x46, 0x78, 0x59, 0x58, + 0x45, 0x78, 0x63, 0x57, 0x46, 0x41, 0x63, 0x42, 0x42, 0x69, 0x59, + 0x76, 0x41, 0x53, 0x59, 0x32, 0x50, 0x77, 0x45, 0x75, 0x41, 0x54, + 0x55, 0x32, 0x4e, 0x7a, 0x34, 0x42, 0x4e, 0x7a, 0x59, 0x31, 0x4e, + 0x44, 0x63, 0x2b, 0x41, 0x54, 0x63, 0x32, 0x4e, 0x79, 0x34, 0x42, + 0x4e, 0x54, 0x51, 0x32, 0x4d, 0x7a, 0x49, 0x57, 0x46, 0x52, 0x51, + 0x47, 0x42, 0x78, 0x34, 0x42, 0x46, 0x7a, 0x63, 0x32, 0x46, 0x68, + 0x63, 0x43, 0x55, 0x67, 0x55, 0x45, 0x49, 0x6a, 0x41, 0x46, 0x42, + 0x41, 0x51, 0x46, 0x4f, 0x79, 0x6b, 0x45, 0x42, 0x66, 0x37, 0x4e, + 0x41, 0x66, 0x59, 0x57, 0x5a, 0x46, 0x49, 0x34, 0x4b, 0x53, 0x6f, + 0x32, 0x44, 0x51, 0x30, 0x46, 0x42, 0x52, 0x4d, 0x50, 0x44, 0x78, + 0x51, 0x44, 0x42, 0x69, 0x77, 0x65, 0x2f, 0x77, 0x42, 0x56, 0x50, + 0x54, 0x78, 0x57, 0x56, 0x51, 0x47, 0x78, 0x4d, 0x45, 0x45, 0x52, + 0x50, 0x77, 0x73, 0x54, 0x45, 0x79, 0x30, 0x61, 0x47, 0x68, 0x6b, + 0x78, 0x4d, 0x41, 0x51, 0x47, 0x2b, 0x39, 0x49, 0x46, 0x45, 0x41, + 0x51, 0x77, 0x42, 0x51, 0x45, 0x46, 0x61, 0x77, 0x59, 0x46, 0x48, + 0x79, 0x45, 0x68, 0x4e, 0x42, 0x45, 0x52, 0x45, 0x42, 0x45, 0x2b, + 0x4c, 0x53, 0x30, 0x35, 0x41, 0x67, 0x4d, 0x67, 0x46, 0x78, 0x63, + 0x67, 0x41, 0x67, 0x4e, 0x4b, 0x61, 0x78, 0x33, 0x76, 0x42, 0x67, + 0x38, 0x46, 0x45, 0x67, 0x51, 0x46, 0x4d, 0x43, 0x49, 0x45, 0x42, + 0x51, 0x55, 0x45, 0x4b, 0x54, 0x73, 0x46, 0x42, 0x41, 0x45, 0x50, + 0x41, 0x62, 0x49, 0x74, 0x53, 0x52, 0x4d, 0x53, 0x4e, 0x79, 0x41, + 0x67, 0x47, 0x7a, 0x63, 0x7a, 0x4d, 0x6c, 0x77, 0x71, 0x4b, 0x53, + 0x5a, 0x72, 0x48, 0x69, 0x73, 0x38, 0x56, 0x6c, 0x55, 0x39, 0x53, + 0x54, 0x61, 0x44, 0x54, 0x6a, 0x64, 0x41, 0x4d, 0x6a, 0x46, 0x4e, + 0x48, 0x42, 0x30, 0x56, 0x41, 0x78, 0x77, 0x33, 0x42, 0x67, 0x38, + 0x46, 0x2f, 0x47, 0x45, 0x46, 0x41, 0x51, 0x59, 0x33, 0x42, 0x67, + 0x38, 0x46, 0x58, 0x41, 0x67, 0x54, 0x43, 0x68, 0x73, 0x6e, 0x4a, + 0x33, 0x46, 0x4e, 0x54, 0x57, 0x67, 0x70, 0x4b, 0x53, 0x70, 0x46, + 0x47, 0x52, 0x6b, 0x4a, 0x42, 0x51, 0x73, 0x47, 0x46, 0x79, 0x41, + 0x67, 0x46, 0x77, 0x59, 0x4c, 0x42, 0x51, 0x74, 0x4d, 0x4d, 0x73, + 0x38, 0x46, 0x41, 0x51, 0x59, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x67, 0x41, 0x41, 0x41, 0x41, 0x41, 0x45, 0x6b, 0x67, 0x4e, 0x75, + 0x41, 0x41, 0x55, 0x41, 0x43, 0x77, 0x41, 0x41, 0x4a, 0x52, 0x55, + 0x68, 0x45, 0x54, 0x4d, 0x52, 0x41, 0x52, 0x4d, 0x68, 0x45, 0x51, + 0x6b, 0x42, 0x42, 0x4a, 0x4c, 0x37, 0x62, 0x6b, 0x6b, 0x44, 0x62, + 0x70, 0x4c, 0x38, 0x53, 0x51, 0x45, 0x41, 0x41, 0x55, 0x6c, 0x4a, + 0x53, 0x51, 0x4e, 0x75, 0x2f, 0x4e, 0x73, 0x43, 0x53, 0x66, 0x34, + 0x41, 0x41, 0x55, 0x6b, 0x42, 0x53, 0x76, 0x36, 0x32, 0x41, 0x41, + 0x41, 0x41, 0x42, 0x41, 0x41, 0x41, 0x2f, 0x37, 0x63, 0x45, 0x41, + 0x41, 0x4f, 0x33, 0x41, 0x42, 0x59, 0x41, 0x4b, 0x67, 0x41, 0x39, + 0x41, 0x45, 0x6b, 0x41, 0x41, 0x41, 0x45, 0x79, 0x46, 0x68, 0x63, + 0x65, 0x41, 0x52, 0x63, 0x6c, 0x4a, 0x67, 0x63, 0x4f, 0x41, 0x51, + 0x63, 0x47, 0x42, 0x79, 0x63, 0x32, 0x4e, 0x7a, 0x34, 0x42, 0x4e, + 0x7a, 0x59, 0x7a, 0x42, 0x52, 0x4d, 0x57, 0x46, 0x78, 0x34, 0x42, + 0x46, 0x78, 0x59, 0x33, 0x41, 0x79, 0x59, 0x6e, 0x4c, 0x67, 0x45, + 0x6e, 0x4a, 0x6a, 0x55, 0x30, 0x4e, 0x6a, 0x63, 0x46, 0x46, 0x68, + 0x63, 0x57, 0x42, 0x67, 0x63, 0x47, 0x42, 0x77, 0x34, 0x42, 0x4a, + 0x78, 0x4d, 0x32, 0x4e, 0x7a, 0x59, 0x6d, 0x4a, 0x79, 0x59, 0x6e, + 0x4a, 0x7a, 0x49, 0x57, 0x46, 0x52, 0x51, 0x47, 0x49, 0x79, 0x49, + 0x6d, 0x4e, 0x54, 0x51, 0x32, 0x41, 0x66, 0x35, 0x43, 0x67, 0x7a, + 0x31, 0x44, 0x5a, 0x69, 0x44, 0x2b, 0x57, 0x43, 0x30, 0x72, 0x4b, + 0x30, 0x67, 0x63, 0x48, 0x41, 0x2b, 0x64, 0x4a, 0x53, 0x30, 0x74, + 0x5a, 0x6a, 0x67, 0x33, 0x4f, 0x50, 0x35, 0x56, 0x77, 0x52, 0x51, + 0x66, 0x48, 0x30, 0x77, 0x71, 0x4b, 0x79, 0x32, 0x44, 0x58, 0x45, + 0x39, 0x51, 0x64, 0x43, 0x45, 0x68, 0x4c, 0x43, 0x63, 0x44, 0x69, + 0x79, 0x45, 0x42, 0x41, 0x54, 0x73, 0x35, 0x4f, 0x6c, 0x4e, 0x44, + 0x6b, 0x6b, 0x6a, 0x6f, 0x47, 0x51, 0x73, 0x4d, 0x41, 0x67, 0x38, + 0x50, 0x48, 0x72, 0x31, 0x49, 0x5a, 0x57, 0x56, 0x49, 0x53, 0x47, + 0x56, 0x6c, 0x41, 0x37, 0x63, 0x69, 0x49, 0x79, 0x64, 0x74, 0x51, + 0x42, 0x59, 0x44, 0x43, 0x77, 0x73, 0x74, 0x49, 0x69, 0x45, 0x72, + 0x38, 0x79, 0x30, 0x6b, 0x49, 0x7a, 0x45, 0x4d, 0x44, 0x65, 0x6a, + 0x2b, 0x68, 0x69, 0x6b, 0x66, 0x49, 0x43, 0x67, 0x48, 0x43, 0x41, + 0x6e, 0x2b, 0x2f, 0x67, 0x34, 0x74, 0x4c, 0x59, 0x5a, 0x57, 0x56, + 0x6d, 0x42, 0x4e, 0x6a, 0x7a, 0x78, 0x67, 0x56, 0x31, 0x74, 0x61, + 0x71, 0x45, 0x68, 0x49, 0x4d, 0x43, 0x63, 0x67, 0x41, 0x77, 0x46, + 0x6b, 0x4a, 0x69, 0x73, 0x72, 0x56, 0x53, 0x6b, 0x70, 0x49, 0x67, + 0x4e, 0x6c, 0x52, 0x30, 0x68, 0x6c, 0x5a, 0x55, 0x68, 0x48, 0x5a, + 0x51, 0x41, 0x41, 0x41, 0x67, 0x41, 0x54, 0x41, 0x41, 0x41, 0x44, + 0x37, 0x51, 0x4e, 0x75, 0x41, 0x41, 0x4d, 0x41, 0x61, 0x41, 0x41, + 0x41, 0x41, 0x54, 0x63, 0x6a, 0x42, 0x77, 0x45, 0x48, 0x44, 0x67, + 0x45, 0x72, 0x41, 0x51, 0x63, 0x7a, 0x4d, 0x68, 0x59, 0x58, 0x48, + 0x67, 0x45, 0x50, 0x41, 0x51, 0x34, 0x42, 0x4b, 0x77, 0x45, 0x48, + 0x44, 0x67, 0x45, 0x72, 0x41, 0x53, 0x49, 0x6d, 0x4a, 0x79, 0x34, + 0x42, 0x50, 0x77, 0x45, 0x6a, 0x42, 0x77, 0x34, 0x42, 0x4b, 0x77, + 0x45, 0x69, 0x4a, 0x69, 0x63, 0x75, 0x41, 0x54, 0x38, 0x42, 0x49, + 0x79, 0x49, 0x6d, 0x4a, 0x79, 0x34, 0x42, 0x50, 0x77, 0x45, 0x2b, + 0x41, 0x54, 0x73, 0x42, 0x4e, 0x79, 0x4d, 0x69, 0x4a, 0x69, 0x63, + 0x75, 0x41, 0x54, 0x38, 0x42, 0x50, 0x67, 0x45, 0x37, 0x41, 0x54, + 0x63, 0x2b, 0x41, 0x54, 0x73, 0x42, 0x4d, 0x68, 0x59, 0x58, 0x48, + 0x67, 0x45, 0x50, 0x41, 0x54, 0x4d, 0x33, 0x50, 0x67, 0x45, 0x37, + 0x41, 0x54, 0x49, 0x57, 0x46, 0x78, 0x34, 0x42, 0x44, 0x77, 0x45, + 0x7a, 0x4d, 0x68, 0x59, 0x58, 0x48, 0x67, 0x45, 0x48, 0x41, 0x6a, + 0x59, 0x6c, 0x6b, 0x53, 0x55, 0x43, 0x53, 0x43, 0x41, 0x43, 0x43, + 0x51, 0x65, 0x36, 0x4a, 0x62, 0x49, 0x45, 0x42, 0x77, 0x4d, 0x44, + 0x41, 0x67, 0x49, 0x67, 0x41, 0x51, 0x6f, 0x47, 0x75, 0x79, 0x34, + 0x43, 0x43, 0x67, 0x61, 0x41, 0x42, 0x41, 0x67, 0x44, 0x41, 0x77, + 0x45, 0x42, 0x4c, 0x4a, 0x45, 0x75, 0x41, 0x67, 0x6f, 0x47, 0x67, + 0x51, 0x4d, 0x49, 0x41, 0x77, 0x49, 0x43, 0x41, 0x53, 0x79, 0x78, + 0x42, 0x51, 0x63, 0x44, 0x41, 0x67, 0x49, 0x42, 0x49, 0x41, 0x49, + 0x4a, 0x42, 0x37, 0x6f, 0x6c, 0x73, 0x67, 0x51, 0x48, 0x41, 0x77, + 0x4d, 0x43, 0x41, 0x69, 0x41, 0x42, 0x43, 0x67, 0x61, 0x37, 0x4c, + 0x67, 0x49, 0x4b, 0x42, 0x34, 0x41, 0x45, 0x42, 0x77, 0x4d, 0x44, + 0x41, 0x51, 0x45, 0x73, 0x6b, 0x53, 0x34, 0x43, 0x43, 0x67, 0x65, + 0x41, 0x41, 0x77, 0x67, 0x44, 0x41, 0x67, 0x49, 0x42, 0x4c, 0x4c, + 0x45, 0x46, 0x42, 0x77, 0x4d, 0x43, 0x41, 0x67, 0x45, 0x42, 0x62, + 0x70, 0x4b, 0x53, 0x41, 0x53, 0x43, 0x41, 0x42, 0x67, 0x69, 0x53, + 0x42, 0x41, 0x4d, 0x45, 0x43, 0x41, 0x53, 0x41, 0x42, 0x67, 0x69, + 0x37, 0x42, 0x67, 0x67, 0x45, 0x41, 0x77, 0x4d, 0x4a, 0x42, 0x4c, + 0x4b, 0x37, 0x42, 0x67, 0x67, 0x45, 0x41, 0x77, 0x4d, 0x4a, 0x42, + 0x4c, 0x49, 0x45, 0x41, 0x77, 0x4d, 0x4a, 0x42, 0x49, 0x41, 0x47, + 0x43, 0x4a, 0x49, 0x45, 0x41, 0x77, 0x4d, 0x4a, 0x42, 0x49, 0x41, + 0x47, 0x43, 0x4c, 0x73, 0x47, 0x43, 0x41, 0x51, 0x44, 0x42, 0x41, + 0x67, 0x45, 0x73, 0x72, 0x73, 0x47, 0x43, 0x41, 0x51, 0x44, 0x42, + 0x41, 0x67, 0x45, 0x73, 0x67, 0x51, 0x44, 0x42, 0x41, 0x67, 0x45, + 0x41, 0x41, 0x51, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x32, 0x34, + 0x44, 0x62, 0x67, 0x41, 0x51, 0x41, 0x45, 0x51, 0x41, 0x59, 0x51, + 0x42, 0x2b, 0x41, 0x41, 0x41, 0x42, 0x46, 0x52, 0x51, 0x47, 0x4b, + 0x77, 0x45, 0x69, 0x4a, 0x6a, 0x30, 0x42, 0x4e, 0x44, 0x59, 0x37, + 0x41, 0x54, 0x49, 0x57, 0x46, 0x52, 0x4d, 0x55, 0x42, 0x67, 0x63, + 0x4f, 0x41, 0x52, 0x30, 0x42, 0x46, 0x41, 0x59, 0x72, 0x41, 0x53, + 0x49, 0x6d, 0x50, 0x51, 0x45, 0x30, 0x4e, 0x6a, 0x63, 0x2b, 0x41, + 0x54, 0x55, 0x30, 0x4a, 0x69, 0x4d, 0x69, 0x42, 0x67, 0x63, 0x4f, + 0x41, 0x51, 0x63, 0x4f, 0x41, 0x53, 0x4d, 0x69, 0x4a, 0x69, 0x38, + 0x42, 0x4c, 0x67, 0x45, 0x33, 0x50, 0x67, 0x45, 0x7a, 0x4d, 0x54, + 0x49, 0x58, 0x48, 0x67, 0x45, 0x58, 0x46, 0x68, 0x55, 0x44, 0x49, + 0x67, 0x63, 0x4f, 0x41, 0x51, 0x63, 0x47, 0x46, 0x52, 0x51, 0x58, + 0x48, 0x67, 0x45, 0x58, 0x46, 0x6a, 0x4d, 0x79, 0x4e, 0x7a, 0x34, + 0x42, 0x4e, 0x7a, 0x59, 0x31, 0x4e, 0x43, 0x63, 0x75, 0x41, 0x53, + 0x63, 0x6d, 0x49, 0x77, 0x45, 0x55, 0x42, 0x77, 0x34, 0x42, 0x42, + 0x77, 0x59, 0x6a, 0x49, 0x69, 0x63, 0x75, 0x41, 0x53, 0x63, 0x6d, + 0x4e, 0x54, 0x51, 0x33, 0x50, 0x67, 0x45, 0x33, 0x4e, 0x6a, 0x4d, + 0x78, 0x4d, 0x68, 0x63, 0x65, 0x41, 0x52, 0x63, 0x57, 0x41, 0x66, + 0x63, 0x4c, 0x42, 0x31, 0x77, 0x49, 0x43, 0x67, 0x6f, 0x49, 0x58, + 0x41, 0x63, 0x4c, 0x6b, 0x6b, 0x4d, 0x66, 0x46, 0x68, 0x6f, 0x4c, + 0x42, 0x31, 0x77, 0x49, 0x43, 0x6a, 0x77, 0x66, 0x47, 0x52, 0x34, + 0x7a, 0x48, 0x41, 0x38, 0x65, 0x43, 0x67, 0x6b, 0x55, 0x45, 0x41, + 0x4d, 0x48, 0x42, 0x51, 0x4d, 0x46, 0x41, 0x6a, 0x34, 0x47, 0x41, + 0x67, 0x51, 0x6a, 0x59, 0x30, 0x45, 0x6a, 0x4a, 0x43, 0x4d, 0x35, + 0x45, 0x68, 0x4c, 0x53, 0x54, 0x45, 0x4a, 0x44, 0x59, 0x78, 0x30, + 0x64, 0x48, 0x52, 0x31, 0x6a, 0x51, 0x30, 0x4a, 0x4d, 0x53, 0x30, + 0x4e, 0x44, 0x59, 0x78, 0x30, 0x64, 0x48, 0x52, 0x31, 0x6a, 0x51, + 0x30, 0x4e, 0x4c, 0x41, 0x62, 0x63, 0x6a, 0x49, 0x6e, 0x64, 0x51, + 0x55, 0x46, 0x74, 0x62, 0x55, 0x46, 0x42, 0x33, 0x49, 0x79, 0x49, + 0x69, 0x49, 0x33, 0x64, 0x51, 0x55, 0x46, 0x74, 0x62, 0x55, 0x46, + 0x42, 0x33, 0x49, 0x69, 0x4d, 0x42, 0x43, 0x56, 0x73, 0x49, 0x43, + 0x77, 0x73, 0x49, 0x57, 0x77, 0x67, 0x4b, 0x43, 0x67, 0x67, 0x42, + 0x48, 0x44, 0x30, 0x36, 0x45, 0x67, 0x30, 0x55, 0x44, 0x52, 0x4d, + 0x48, 0x43, 0x77, 0x73, 0x48, 0x4a, 0x7a, 0x55, 0x73, 0x44, 0x67, + 0x77, 0x56, 0x46, 0x42, 0x6b, 0x67, 0x43, 0x41, 0x63, 0x47, 0x46, + 0x68, 0x4d, 0x45, 0x41, 0x77, 0x45, 0x43, 0x4c, 0x77, 0x51, 0x50, + 0x42, 0x6a, 0x63, 0x32, 0x44, 0x51, 0x30, 0x76, 0x48, 0x79, 0x41, + 0x6c, 0x41, 0x51, 0x41, 0x64, 0x48, 0x57, 0x4e, 0x44, 0x51, 0x30, + 0x74, 0x4d, 0x51, 0x6b, 0x4e, 0x6a, 0x48, 0x52, 0x30, 0x64, 0x48, + 0x57, 0x4e, 0x44, 0x51, 0x6b, 0x78, 0x4c, 0x51, 0x30, 0x4e, 0x6a, + 0x48, 0x52, 0x33, 0x2b, 0x6b, 0x6c, 0x74, 0x51, 0x55, 0x48, 0x63, + 0x69, 0x49, 0x79, 0x4d, 0x69, 0x64, 0x31, 0x42, 0x51, 0x57, 0x31, + 0x74, 0x51, 0x55, 0x48, 0x63, 0x69, 0x49, 0x79, 0x4d, 0x69, 0x64, + 0x31, 0x42, 0x51, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x45, 0x41, + 0x41, 0x41, 0x41, 0x42, 0x41, 0x41, 0x41, 0x55, 0x38, 0x73, 0x33, + 0x37, 0x58, 0x77, 0x38, 0x38, 0x39, 0x51, 0x41, 0x4c, 0x42, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x31, 0x79, 0x70, 0x72, 0x4c, + 0x67, 0x41, 0x41, 0x41, 0x41, 0x44, 0x58, 0x4b, 0x6d, 0x73, 0x75, + 0x41, 0x41, 0x44, 0x2f, 0x74, 0x77, 0x53, 0x53, 0x41, 0x37, 0x63, + 0x41, 0x41, 0x41, 0x41, 0x49, 0x41, 0x41, 0x49, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x51, 0x41, 0x41, 0x41, + 0x38, 0x44, 0x2f, 0x77, 0x41, 0x41, 0x41, 0x42, 0x4a, 0x49, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x42, 0x4a, 0x49, 0x41, 0x41, 0x51, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x44, 0x4d, 0x45, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x43, 0x41, 0x41, 0x41, 0x41, 0x41, 0x74, 0x73, + 0x41, 0x41, 0x41, 0x4f, 0x33, 0x41, 0x41, 0x41, 0x45, 0x41, 0x41, + 0x41, 0x41, 0x42, 0x41, 0x41, 0x41, 0x52, 0x51, 0x4d, 0x6c, 0x41, + 0x44, 0x38, 0x44, 0x62, 0x67, 0x41, 0x41, 0x41, 0x32, 0x34, 0x41, + 0x41, 0x41, 0x4e, 0x75, 0x41, 0x41, 0x41, 0x44, 0x62, 0x67, 0x41, + 0x41, 0x42, 0x41, 0x41, 0x41, 0x41, 0x41, 0x51, 0x41, 0x41, 0x41, + 0x41, 0x43, 0x53, 0x51, 0x41, 0x41, 0x41, 0x37, 0x73, 0x41, 0x41, + 0x41, 0x4d, 0x41, 0x41, 0x47, 0x4d, 0x43, 0x74, 0x77, 0x41, 0x2b, + 0x42, 0x41, 0x41, 0x41, 0x43, 0x51, 0x53, 0x53, 0x41, 0x41, 0x41, + 0x45, 0x53, 0x51, 0x41, 0x41, 0x42, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x4d, 0x6c, 0x41, 0x41, 0x41, 0x45, 0x41, 0x41, 0x41, 0x6c, 0x42, + 0x45, 0x6b, 0x41, 0x41, 0x41, 0x4e, 0x75, 0x41, 0x41, 0x41, 0x44, + 0x74, 0x77, 0x41, 0x41, 0x41, 0x6b, 0x6b, 0x41, 0x41, 0x41, 0x4a, + 0x4a, 0x41, 0x41, 0x41, 0x42, 0x6b, 0x67, 0x41, 0x6c, 0x41, 0x55, + 0x6b, 0x41, 0x41, 0x41, 0x4a, 0x4a, 0x41, 0x41, 0x41, 0x45, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x6c, 0x73, 0x41, 0x47, 0x67, 0x49, 0x33, + 0x41, 0x41, 0x63, 0x42, 0x67, 0x41, 0x41, 0x61, 0x41, 0x56, 0x73, + 0x41, 0x42, 0x77, 0x52, 0x4a, 0x41, 0x41, 0x41, 0x44, 0x62, 0x67, + 0x41, 0x41, 0x41, 0x32, 0x34, 0x41, 0x41, 0x41, 0x52, 0x4a, 0x41, + 0x42, 0x38, 0x44, 0x62, 0x67, 0x41, 0x41, 0x41, 0x32, 0x34, 0x41, + 0x41, 0x41, 0x4e, 0x63, 0x41, 0x41, 0x41, 0x45, 0x41, 0x41, 0x41, + 0x53, 0x42, 0x4a, 0x49, 0x41, 0x44, 0x51, 0x53, 0x53, 0x41, 0x41, + 0x41, 0x45, 0x4e, 0x77, 0x41, 0x41, 0x42, 0x41, 0x41, 0x41, 0x45, + 0x77, 0x4e, 0x75, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x6f, 0x41, 0x46, 0x41, 0x41, 0x65, 0x41, 0x48, 0x51, + 0x41, 0x30, 0x41, 0x46, 0x53, 0x41, 0x5a, 0x41, 0x42, 0x37, 0x41, + 0x4c, 0x43, 0x41, 0x77, 0x41, 0x44, 0x63, 0x67, 0x51, 0x47, 0x42, + 0x4c, 0x59, 0x46, 0x59, 0x67, 0x57, 0x69, 0x42, 0x68, 0x6f, 0x47, + 0x52, 0x41, 0x5a, 0x77, 0x42, 0x73, 0x77, 0x47, 0x2f, 0x41, 0x6a, + 0x55, 0x43, 0x55, 0x41, 0x4a, 0x63, 0x67, 0x6f, 0x47, 0x43, 0x73, + 0x59, 0x4c, 0x43, 0x67, 0x76, 0x65, 0x44, 0x41, 0x59, 0x4d, 0x4c, + 0x41, 0x78, 0x55, 0x44, 0x48, 0x77, 0x4d, 0x78, 0x41, 0x31, 0x6b, + 0x44, 0x64, 0x59, 0x4f, 0x53, 0x41, 0x36, 0x47, 0x44, 0x73, 0x51, + 0x50, 0x43, 0x67, 0x39, 0x6b, 0x44, 0x35, 0x51, 0x50, 0x2f, 0x42, + 0x41, 0x73, 0x45, 0x4a, 0x77, 0x51, 0x39, 0x68, 0x46, 0x51, 0x45, + 0x66, 0x67, 0x53, 0x46, 0x68, 0x4b, 0x4f, 0x45, 0x79, 0x59, 0x54, + 0x32, 0x67, 0x41, 0x42, 0x41, 0x41, 0x41, 0x41, 0x4d, 0x77, 0x46, + 0x56, 0x41, 0x41, 0x6f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x49, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x44, 0x67, 0x43, 0x75, 0x41, 0x41, 0x45, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x45, 0x41, 0x41, 0x67, + 0x41, 0x41, 0x41, 0x41, 0x45, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x49, 0x41, 0x42, 0x77, 0x41, 0x7a, 0x41, 0x41, 0x45, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x4d, 0x41, 0x41, 0x67, 0x41, + 0x6e, 0x41, 0x41, 0x45, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x51, 0x41, 0x41, 0x67, 0x42, 0x49, 0x41, 0x41, 0x45, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x55, 0x41, 0x43, 0x77, 0x41, 0x47, + 0x41, 0x41, 0x45, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x59, + 0x41, 0x41, 0x67, 0x41, 0x74, 0x41, 0x41, 0x45, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x6f, 0x41, 0x47, 0x67, 0x42, 0x4f, 0x41, + 0x41, 0x4d, 0x41, 0x41, 0x51, 0x51, 0x4a, 0x41, 0x41, 0x45, 0x41, + 0x42, 0x41, 0x41, 0x43, 0x41, 0x41, 0x4d, 0x41, 0x41, 0x51, 0x51, + 0x4a, 0x41, 0x41, 0x49, 0x41, 0x44, 0x67, 0x41, 0x36, 0x41, 0x41, + 0x4d, 0x41, 0x41, 0x51, 0x51, 0x4a, 0x41, 0x41, 0x4d, 0x41, 0x42, + 0x41, 0x41, 0x70, 0x41, 0x41, 0x4d, 0x41, 0x41, 0x51, 0x51, 0x4a, + 0x41, 0x41, 0x51, 0x41, 0x42, 0x41, 0x42, 0x4b, 0x41, 0x41, 0x4d, + 0x41, 0x41, 0x51, 0x51, 0x4a, 0x41, 0x41, 0x55, 0x41, 0x46, 0x67, + 0x41, 0x52, 0x41, 0x41, 0x4d, 0x41, 0x41, 0x51, 0x51, 0x4a, 0x41, + 0x41, 0x59, 0x41, 0x42, 0x41, 0x41, 0x76, 0x41, 0x41, 0x4d, 0x41, + 0x41, 0x51, 0x51, 0x4a, 0x41, 0x41, 0x6f, 0x41, 0x4e, 0x41, 0x42, + 0x6f, 0x5a, 0x6d, 0x45, 0x41, 0x5a, 0x67, 0x42, 0x68, 0x56, 0x6d, + 0x56, 0x79, 0x63, 0x32, 0x6c, 0x76, 0x62, 0x69, 0x41, 0x78, 0x4c, + 0x6a, 0x41, 0x41, 0x56, 0x67, 0x42, 0x6c, 0x41, 0x48, 0x49, 0x41, + 0x63, 0x77, 0x42, 0x70, 0x41, 0x47, 0x38, 0x41, 0x62, 0x67, 0x41, + 0x67, 0x41, 0x44, 0x45, 0x41, 0x4c, 0x67, 0x41, 0x77, 0x5a, 0x6d, + 0x45, 0x41, 0x5a, 0x67, 0x42, 0x68, 0x5a, 0x6d, 0x45, 0x41, 0x5a, + 0x67, 0x42, 0x68, 0x55, 0x6d, 0x56, 0x6e, 0x64, 0x57, 0x78, 0x68, + 0x63, 0x67, 0x42, 0x53, 0x41, 0x47, 0x55, 0x41, 0x5a, 0x77, 0x42, + 0x31, 0x41, 0x47, 0x77, 0x41, 0x59, 0x51, 0x42, 0x79, 0x5a, 0x6d, + 0x45, 0x41, 0x5a, 0x67, 0x42, 0x68, 0x52, 0x6d, 0x39, 0x75, 0x64, + 0x43, 0x42, 0x6e, 0x5a, 0x57, 0x35, 0x6c, 0x63, 0x6d, 0x46, 0x30, + 0x5a, 0x57, 0x51, 0x67, 0x59, 0x6e, 0x6b, 0x67, 0x53, 0x57, 0x4e, + 0x76, 0x54, 0x57, 0x39, 0x76, 0x62, 0x69, 0x34, 0x41, 0x52, 0x67, + 0x42, 0x76, 0x41, 0x47, 0x34, 0x41, 0x64, 0x41, 0x41, 0x67, 0x41, + 0x47, 0x63, 0x41, 0x5a, 0x51, 0x42, 0x75, 0x41, 0x47, 0x55, 0x41, + 0x63, 0x67, 0x42, 0x68, 0x41, 0x48, 0x51, 0x41, 0x5a, 0x51, 0x42, + 0x6b, 0x41, 0x43, 0x41, 0x41, 0x59, 0x67, 0x42, 0x35, 0x41, 0x43, + 0x41, 0x41, 0x53, 0x51, 0x42, 0x6a, 0x41, 0x47, 0x38, 0x41, 0x54, + 0x51, 0x42, 0x76, 0x41, 0x47, 0x38, 0x41, 0x62, 0x67, 0x41, 0x75, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x77, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x3d, 0x3d, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x28, 0x27, 0x77, 0x6f, 0x66, 0x66, 0x27, 0x29, 0x3b, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x20, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x20, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x7d, 0x5b, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x5e, 0x3d, 0x22, 0x66, 0x61, 0x2d, 0x22, 0x5d, 0x2c, 0x5b, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2a, 0x3d, 0x22, 0x20, 0x66, 0x61, + 0x2d, 0x22, 0x5d, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x27, 0x66, 0x61, 0x27, 0x20, 0x21, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x3b, 0x73, + 0x70, 0x65, 0x61, 0x6b, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x6e, + 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x6e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x6e, 0x74, 0x3a, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x6c, + 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x31, 0x3b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x69, + 0x6e, 0x67, 0x3a, 0x61, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x65, 0x64, 0x3b, 0x2d, 0x6d, 0x6f, 0x7a, 0x2d, 0x6f, 0x73, + 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x6d, 0x6f, 0x6f, + 0x74, 0x68, 0x69, 0x6e, 0x67, 0x3a, 0x67, 0x72, 0x61, 0x79, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x73, 0x70, + 0x69, 0x6e, 0x7b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, + 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x66, + 0x61, 0x2d, 0x73, 0x70, 0x69, 0x6e, 0x20, 0x32, 0x73, 0x20, 0x69, + 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x20, 0x6c, 0x69, 0x6e, + 0x65, 0x61, 0x72, 0x3b, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x66, 0x61, 0x2d, 0x73, 0x70, 0x69, 0x6e, 0x20, + 0x32, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, + 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x7d, 0x40, 0x2d, 0x77, + 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x6b, 0x65, 0x79, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x20, 0x22, 0x66, 0x61, 0x2d, 0x73, 0x70, + 0x69, 0x6e, 0x22, 0x7b, 0x30, 0x25, 0x7b, 0x2d, 0x77, 0x65, 0x62, + 0x6b, 0x69, 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, + 0x72, 0x6d, 0x3a, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x28, 0x30, + 0x64, 0x65, 0x67, 0x29, 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x3a, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x28, + 0x30, 0x64, 0x65, 0x67, 0x29, 0x3b, 0x7d, 0x31, 0x30, 0x30, 0x25, + 0x7b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x72, 0x6f, 0x74, + 0x61, 0x74, 0x65, 0x28, 0x33, 0x35, 0x39, 0x64, 0x65, 0x67, 0x29, + 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3a, + 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x28, 0x33, 0x35, 0x39, 0x64, + 0x65, 0x67, 0x29, 0x3b, 0x7d, 0x7d, 0x40, 0x6b, 0x65, 0x79, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x22, 0x66, 0x61, 0x2d, 0x73, + 0x70, 0x69, 0x6e, 0x22, 0x7b, 0x30, 0x25, 0x7b, 0x2d, 0x77, 0x65, + 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x6f, 0x72, 0x6d, 0x3a, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x28, + 0x30, 0x64, 0x65, 0x67, 0x29, 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x28, 0x30, 0x64, 0x65, 0x67, 0x29, 0x3b, 0x7d, 0x31, 0x30, 0x30, + 0x25, 0x7b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x72, 0x6f, + 0x74, 0x61, 0x74, 0x65, 0x28, 0x33, 0x35, 0x39, 0x64, 0x65, 0x67, + 0x29, 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, + 0x3a, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x28, 0x33, 0x35, 0x39, + 0x64, 0x65, 0x67, 0x29, 0x3b, 0x7d, 0x7d, 0x2e, 0x66, 0x61, 0x2d, + 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x2d, 0x6f, 0x3a, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x39, 0x36, 0x22, 0x3b, 0x7d, + 0x2e, 0x66, 0x61, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x3a, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x30, 0x37, 0x22, 0x7d, 0x2e, + 0x66, 0x61, 0x2d, 0x74, 0x68, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, + 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x30, 0x39, + 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x74, 0x68, 0x2d, 0x6c, 0x69, + 0x73, 0x74, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, + 0x30, 0x62, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, + 0x30, 0x63, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x63, 0x6c, 0x6f, + 0x73, 0x65, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, + 0x30, 0x64, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, + 0x30, 0x30, 0x64, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, + 0x30, 0x30, 0x64, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x63, 0x6f, + 0x67, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x31, + 0x33, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x67, 0x65, 0x61, 0x72, + 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x31, 0x33, + 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x2d, + 0x6f, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x31, + 0x36, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x2d, 0x6f, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, + 0x30, 0x31, 0x37, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x72, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, + 0x5c, 0x66, 0x30, 0x32, 0x31, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, + 0x6c, 0x69, 0x73, 0x74, 0x2d, 0x61, 0x6c, 0x74, 0x3a, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x32, 0x32, 0x22, 0x7d, 0x2e, + 0x66, 0x61, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x33, 0x61, 0x22, 0x7d, 0x2e, 0x66, + 0x61, 0x2d, 0x6d, 0x61, 0x70, 0x2d, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x72, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x34, + 0x31, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x2d, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x2d, 0x6f, 0x3a, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x34, 0x36, 0x22, + 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x63, 0x68, 0x65, 0x76, 0x72, 0x6f, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, + 0x22, 0x5c, 0x66, 0x30, 0x35, 0x33, 0x22, 0x7d, 0x2e, 0x66, 0x61, + 0x2d, 0x63, 0x68, 0x65, 0x76, 0x72, 0x6f, 0x6e, 0x2d, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, + 0x30, 0x35, 0x34, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x65, 0x78, + 0x63, 0x6c, 0x61, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x74, + 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x3a, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x37, 0x31, 0x22, 0x7d, 0x2e, 0x66, + 0x61, 0x2d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x62, + 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x37, 0x31, 0x22, 0x7d, + 0x2e, 0x66, 0x61, 0x2d, 0x62, 0x61, 0x72, 0x2d, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, + 0x38, 0x30, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x62, 0x61, 0x72, + 0x2d, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x6f, 0x3a, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x38, 0x30, 0x22, 0x7d, 0x2e, + 0x66, 0x61, 0x2d, 0x63, 0x6f, 0x67, 0x73, 0x3a, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x38, 0x35, 0x22, 0x7d, 0x2e, 0x66, + 0x61, 0x2d, 0x67, 0x65, 0x61, 0x72, 0x73, 0x3a, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x38, 0x35, 0x22, 0x7d, 0x2e, 0x66, + 0x61, 0x2d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2d, + 0x6c, 0x69, 0x6e, 0x6b, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, + 0x66, 0x30, 0x38, 0x65, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x62, + 0x65, 0x6c, 0x6c, 0x2d, 0x6f, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, + 0x5c, 0x66, 0x30, 0x61, 0x32, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, + 0x5c, 0x66, 0x30, 0x63, 0x30, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, + 0x75, 0x73, 0x65, 0x72, 0x73, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, + 0x5c, 0x66, 0x30, 0x63, 0x30, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, + 0x62, 0x61, 0x72, 0x73, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, + 0x66, 0x30, 0x63, 0x39, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x6e, + 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x3a, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, + 0x22, 0x5c, 0x66, 0x30, 0x63, 0x39, 0x22, 0x7d, 0x2e, 0x66, 0x61, + 0x2d, 0x72, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x63, 0x39, 0x22, 0x7d, 0x2e, + 0x66, 0x61, 0x2d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x63, 0x65, 0x22, 0x7d, 0x2e, + 0x66, 0x61, 0x2d, 0x63, 0x61, 0x72, 0x65, 0x74, 0x2d, 0x64, 0x6f, + 0x77, 0x6e, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, + 0x64, 0x37, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x63, 0x61, 0x72, + 0x65, 0x74, 0x2d, 0x75, 0x70, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, + 0x5c, 0x66, 0x30, 0x64, 0x38, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, + 0x63, 0x61, 0x72, 0x65, 0x74, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x64, 0x39, 0x22, + 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x63, 0x61, 0x72, 0x65, 0x74, 0x2d, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, + 0x5c, 0x66, 0x30, 0x64, 0x61, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, + 0x73, 0x6f, 0x72, 0x74, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, + 0x66, 0x30, 0x64, 0x63, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x75, + 0x6e, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x3a, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x64, 0x63, 0x22, 0x7d, 0x2e, 0x66, + 0x61, 0x2d, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x30, 0x65, 0x34, + 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x74, 0x61, 0x63, 0x68, 0x6f, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, + 0x5c, 0x66, 0x30, 0x65, 0x34, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, + 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x64, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, + 0x22, 0x5c, 0x66, 0x31, 0x30, 0x30, 0x22, 0x7d, 0x2e, 0x66, 0x61, + 0x2d, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x64, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x31, 0x30, 0x31, 0x22, 0x7d, 0x2e, + 0x66, 0x61, 0x2d, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x6c, 0x65, + 0x66, 0x74, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x31, + 0x30, 0x34, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x61, 0x6e, 0x67, + 0x6c, 0x65, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x31, 0x30, 0x35, 0x22, 0x7d, 0x2e, + 0x66, 0x61, 0x2d, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x3a, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x31, 0x30, 0x38, 0x22, + 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, + 0x2d, 0x6f, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x31, + 0x30, 0x63, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x63, 0x69, 0x72, + 0x63, 0x6c, 0x65, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, + 0x31, 0x31, 0x31, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x63, 0x6f, + 0x64, 0x65, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x31, + 0x32, 0x31, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x66, 0x69, 0x6c, + 0x65, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x31, 0x35, + 0x62, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x66, 0x69, 0x6c, 0x65, + 0x2d, 0x74, 0x65, 0x78, 0x74, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, + 0x5c, 0x66, 0x31, 0x35, 0x63, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, + 0x22, 0x5c, 0x66, 0x31, 0x61, 0x30, 0x22, 0x7d, 0x2e, 0x66, 0x61, + 0x2d, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x2d, 0x6f, 0x2d, 0x6e, + 0x6f, 0x74, 0x63, 0x68, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, + 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, + 0x66, 0x31, 0x63, 0x65, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x62, + 0x65, 0x6c, 0x6c, 0x2d, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x2d, 0x6f, + 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x31, 0x66, 0x37, + 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, 0x61, 0x72, 0x65, 0x61, 0x2d, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, + 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x22, + 0x5c, 0x66, 0x31, 0x66, 0x65, 0x22, 0x7d, 0x2e, 0x66, 0x61, 0x2d, + 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x3a, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, + 0x22, 0x5c, 0x66, 0x32, 0x36, 0x38, 0x22, 0x7d, 0x2e, 0x66, 0x61, + 0x2d, 0x68, 0x61, 0x73, 0x68, 0x74, 0x61, 0x67, 0x3a, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x32, 0x39, 0x32, 0x22, 0x7d, 0x2e, + 0x66, 0x61, 0x2d, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, + 0x2d, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x2d, 0x6f, 0x3a, 0x62, + 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x3a, 0x22, 0x5c, 0x66, 0x32, 0x39, 0x63, 0x22, 0x7d, + 0x00 +}; + +const int fa_css_length = 18459; diff --git a/src/goaccess++/src/gdashboard.c b/src/goaccess++/src/gdashboard.c new file mode 100644 index 0000000..64d15ff --- /dev/null +++ b/src/goaccess++/src/gdashboard.c @@ -0,0 +1,1510 @@ +/** + * gdashboard.c -- goaccess main dashboard + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#define _XOPEN_SOURCE 700 + +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <sys/types.h> +#include <regex.h> + +#include "gdashboard.h" + +#ifdef HAVE_LIBTOKYOCABINET +#include "tcabdb.h" +#else +#include "gkhash.h" +#endif + +#include "color.h" +#include "error.h" +#include "gstorage.h" +#include "util.h" +#include "xmalloc.h" + +static GFind find_t; + +/* Reset find indices */ +void +reset_find (void) +{ + if (find_t.pattern != NULL && *find_t.pattern != '\0') + free (find_t.pattern); + + find_t.look_in_sub = 0; + find_t.module = 0; + find_t.next_idx = 0; /* next total index */ + find_t.next_parent_idx = 0; /* next parent index */ + find_t.next_sub_idx = 0; /* next sub item index */ + find_t.pattern = NULL; +} + +/* Allocate memory for a new GDash instance. + * + * On success, the newly allocated GDash is returned . */ +GDash * +new_gdash (void) +{ + GDash *dash = xmalloc (sizeof (GDash)); + memset (dash, 0, sizeof *dash); + dash->total_alloc = 0; + + return dash; +} + +/* Allocate memory for a new GDashData instance. + * + * On success, the newly allocated GDashData is returned . */ +GDashData * +new_gdata (uint32_t size) +{ + GDashData *data = xcalloc (size, sizeof (GDashData)); + + return data; +} + +/* Free memory allocated for a GDashData instance. Includes malloc'd + * strings. */ +static void +free_dashboard_data (GDashData item) +{ + if (item.metrics == NULL) + return; + + if (item.metrics->data) + free (item.metrics->data); + if (item.metrics->bw.sbw) + free (item.metrics->bw.sbw); + if (conf.serve_usecs && item.metrics->avgts.sts) + free (item.metrics->avgts.sts); + if (conf.serve_usecs && item.metrics->cumts.sts) + free (item.metrics->cumts.sts); + if (conf.serve_usecs && item.metrics->maxts.sts) + free (item.metrics->maxts.sts); + free (item.metrics); +} + +/* Free memory allocated for a GDash instance, and nested structure + * data. */ +void +free_dashboard (GDash * dash) +{ + GModule module; + int j; + size_t idx = 0; + + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + for (j = 0; j < dash->module[module].alloc_data; j++) { + free_dashboard_data (dash->module[module].data[j]); + } + free (dash->module[module].data); + } + free (dash); +} + +/* Get the current panel/module given the `Y` offset (position) in the + * terminal dashboard. + * + * If not found, 0 is returned. + * If found, the module number is returned . */ +static GModule +get_find_current_module (GDash * dash, int offset) +{ + GModule module; + size_t idx = 0; + + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + + /* set current module */ + if (dash->module[module].pos_y == offset) + return module; + /* we went over by one module, set current - 1 */ + if (dash->module[module].pos_y > offset) + return module - 1; + } + + return 0; +} + +/* Get the number of rows that a collapsed dashboard panel contains. + * + * On success, the number of rows is returned. */ +int +get_num_collapsed_data_rows (void) +{ + /* The default number of rows is fixed */ + int size = DASH_COLLAPSED - DASH_NON_DATA; + /* If no column names, then add the number of rows occupied by the + * column values to the default number */ + return conf.no_column_names ? size + DASH_COL_ROWS : size; +} + +/* Get the number of rows that an expanded dashboard panel contains. + * + * On success, the number of rows is returned. */ +int +get_num_expanded_data_rows (void) +{ + /* The default number of rows is fixed */ + int size = DASH_EXPANDED - DASH_NON_DATA; + /* If no column names, then add the number of rows occupied by the + * column values to the default number */ + return conf.no_column_names ? size + DASH_COL_ROWS : size; +} + +/* Get the Y position of the terminal dashboard where data rows + * (metrics) start. + * + * On success, the Y position is returned. */ +static int +get_data_pos_rows (void) +{ + return conf.no_column_names ? DASH_DATA_POS - DASH_COL_ROWS : DASH_DATA_POS; +} + +/* Get the initial X position of the terminal dashboard where metrics + * and data columns start. + * + * On success, the X position is returned. */ +static int +get_xpos (void) +{ + return DASH_INIT_X; +} + +/* Determine which module should be expanded given the current mouse + * position. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +int +set_module_from_mouse_event (GScroll * gscroll, GDash * dash, int y) +{ + int module = 0; + int offset = y - MAX_HEIGHT_HEADER - MAX_HEIGHT_FOOTER + 1; + if (gscroll->expanded) { + module = get_find_current_module (dash, offset); + } else { + offset += gscroll->dash; + module = offset / DASH_COLLAPSED; + } + + if (module >= TOTAL_MODULES) + module = TOTAL_MODULES - 1; + else if (module < 0) + module = 0; + + if ((int) gscroll->current == module) + return 1; + + gscroll->current = module; + return 0; +} + +/* Allocate a new string for a sub item on the terminal dashboard. + * + * On error, NULL is returned. + * On success, the newly allocated string is returned. */ +static char * +render_child_node (const char *data) +{ + char *buf; + int len = 0; + + /* chars to use based on encoding used */ +#ifdef HAVE_LIBNCURSESW + const char *bend = "\xe2\x94\x9c"; + const char *horz = "\xe2\x94\x80"; +#else + const char *bend = "|"; + const char *horz = "`-"; +#endif + + if (data == NULL || *data == '\0') + return NULL; + + len = snprintf (NULL, 0, " %s%s %s", bend, horz, data); + buf = xmalloc (len + 3); + sprintf (buf, " %s%s %s", bend, horz, data); + + return buf; +} + +/* Get a string of bars given current hits, maximum hit & xpos. + * + * On success, the newly allocated string representing the chart is + * returned. */ +static char * +get_bars (int n, int max, int x) +{ + int w, h; + float len = 0.0; + + getmaxyx (stdscr, h, w); + (void) h; /* avoid lint warning */ + + len = ((((float) n) / max)); + len *= (w - x); + if (len < 1) + len = 1; + return char_repeat (len, '|'); +} + +/* Set largest hits metric (length of the integer). */ +static void +set_max_hit_len (GDashMeta * meta, GDashData * idata) +{ + int vlen = intlen (idata->metrics->hits); + int llen = strlen (MTRC_HITS_LBL); + + if (vlen > meta->hits_len) + meta->hits_len = vlen; + + /* if outputting with column names, then determine if the value is + * longer than the length of the column name */ + if (llen > meta->hits_len) + meta->hits_len = llen; +} + +/* Get the percent integer length. */ +static void +set_max_hit_perc_len (GDashMeta * meta, GDashData * idata) +{ + int vlen = intlen (idata->metrics->hits_perc); + int llen = strlen (MTRC_HITS_PERC_LBL); + + if (vlen > meta->hits_perc_len) + meta->hits_perc_len = vlen; + + /* if outputting with column names, then determine if the value is + * longer than the length of the column name */ + if (llen > meta->hits_perc_len) + meta->hits_perc_len = llen; +} + +/* Set largest hits metric (length of the integer). */ +static void +set_max_visitors_len (GDashMeta * meta, GDashData * idata) +{ + int vlen = intlen (idata->metrics->visitors); + int llen = strlen (MTRC_VISITORS_SHORT_LBL); + + if (vlen > meta->visitors_len) + meta->visitors_len = vlen; + + /* if outputting with column names, then determine if the value is + * longer than the length of the column name */ + if (llen > meta->visitors_len) + meta->visitors_len = llen; +} + +/* Get the percent integer length. */ +static void +set_max_visitors_perc_len (GDashMeta * meta, GDashData * idata) +{ + int vlen = intlen (idata->metrics->visitors_perc); + int llen = strlen (MTRC_VISITORS_PERC_LBL); + + if (vlen > meta->visitors_perc_len) + meta->visitors_perc_len = vlen; + + /* if outputting with column names, then determine if the value is + * longer than the length of the column name */ + if (llen > meta->visitors_perc_len) + meta->visitors_perc_len = llen; +} + +/* Get the percent integer length. */ +static void +set_max_bw_len (GDashMeta * meta, GDashData * idata) +{ + int vlen = strlen (idata->metrics->bw.sbw); + int llen = strlen (MTRC_BW_LBL); + + if (vlen > meta->bw_len) + meta->bw_len = vlen; + + /* if outputting with column names, then determine if the value is + * longer than the length of the column name */ + if (llen > meta->bw_len) + meta->bw_len = llen; +} + +/* Get the percent integer length. */ +static void +set_max_avgts_len (GDashMeta * meta, GDashData * idata) +{ + int vlen = 0, llen = 0; + + if (!conf.serve_usecs || !idata->metrics->avgts.sts) + return; + + vlen = strlen (idata->metrics->avgts.sts); + llen = strlen (MTRC_AVGTS_LBL); + + if (vlen > meta->avgts_len) + meta->avgts_len = vlen; + + /* if outputting with column names, then determine if the value is + * longer than the length of the column name */ + if (llen > meta->avgts_len) + meta->avgts_len = llen; +} + +/* Get the percent integer length. */ +static void +set_max_cumts_len (GDashMeta * meta, GDashData * idata) +{ + int vlen = 0, llen = 0; + + if (!conf.serve_usecs || !idata->metrics->cumts.sts) + return; + + vlen = strlen (idata->metrics->cumts.sts); + llen = strlen (MTRC_AVGTS_LBL); + + if (vlen > meta->cumts_len) + meta->cumts_len = vlen; + + /* if outputting with column names, then determine if the value is + * longer than the length of the column name */ + if (llen > meta->cumts_len) + meta->cumts_len = llen; +} + +/* Get the percent integer length. */ +static void +set_max_maxts_len (GDashMeta * meta, GDashData * idata) +{ + int vlen = 0, llen = 0; + + if (!conf.serve_usecs || !idata->metrics->maxts.sts) + return; + + vlen = strlen (idata->metrics->maxts.sts); + llen = strlen (MTRC_AVGTS_LBL); + + if (vlen > meta->maxts_len) + meta->maxts_len = vlen; + + /* if outputting with column names, then determine if the value is + * longer than the length of the column name */ + if (llen > meta->maxts_len) + meta->maxts_len = llen; +} + +/* Get the percent integer length. */ +static void +set_max_method_len (GDashMeta * meta, GDashData * idata) +{ + int vlen = 0, llen = 0; + + if (!conf.append_method || !idata->metrics->method) + return; + + vlen = strlen (idata->metrics->method); + llen = strlen (MTRC_METHODS_SHORT_LBL); + + if (vlen > meta->method_len) + meta->method_len = vlen; + + /* if outputting with column names, then determine if the value is + * longer than the length of the column name */ + if (llen > meta->method_len) + meta->method_len = llen; +} + +/* Get the percent integer length. */ +static void +set_max_protocol_len (GDashMeta * meta, GDashData * idata) +{ + int vlen = 0, llen = 0; + + if (!conf.append_protocol || !idata->metrics->protocol) + return; + + vlen = strlen (idata->metrics->protocol); + llen = strlen (MTRC_PROTOCOLS_SHORT_LBL); + + if (vlen > meta->protocol_len) + meta->protocol_len = vlen; + + /* if outputting with column names, then determine if the value is + * longer than the length of the column name */ + if (llen > meta->protocol_len) + meta->protocol_len = llen; +} + +/* Get the percent integer length. */ +static void +set_max_data_len (GDashMeta * meta, GDashData * idata) +{ + int vlen = 0, llen = 0; + + vlen = strlen (idata->metrics->data); + llen = strlen (MTRC_DATA_LBL); + + if (vlen > meta->data_len) + meta->data_len = vlen; + + /* if outputting with column names, then determine if the value is + * longer than the length of the column name */ + if (llen > meta->data_len) + meta->data_len = llen; +} + +static void +set_max_values (GDashMeta * meta, GMetrics * metrics) +{ + if (metrics->hits > meta->max_hits) + meta->max_hits = metrics->hits; + if (metrics->visitors > meta->max_visitors) + meta->max_visitors = metrics->visitors; +} + +static void +set_metrics_len (GDashMeta * meta, GDashData * idata) +{ + /* integer-based length */ + set_max_hit_len (meta, idata); + set_max_hit_perc_len (meta, idata); + set_max_visitors_len (meta, idata); + set_max_visitors_perc_len (meta, idata); + + /* string-based length */ + set_max_bw_len (meta, idata); + set_max_avgts_len (meta, idata); + set_max_cumts_len (meta, idata); + set_max_maxts_len (meta, idata); + + set_max_method_len (meta, idata); + set_max_protocol_len (meta, idata); + set_max_data_len (meta, idata); +} + +/* Render host's panel selected row */ +static void +render_data_hosts (WINDOW * win, GDashRender render, char *value, int x) +{ + char *padded_data; + + padded_data = left_pad_str (value, x); + draw_header (win, padded_data, "%s", render.y, 0, render.w, color_selected); + free (padded_data); +} + +/* Set panel's date on the given buffer + * + * On error, '---' placeholder is returned. + * On success, the formatted date is returned. */ +static char * +set_visitors_date (const char *value) +{ + return get_visitors_date (value, conf.spec_date_time_num_format, + conf.spec_date_time_format); +} + +static char * +get_fixed_fmt_width (int w, char type) +{ + char *fmt = xmalloc (snprintf (NULL, 0, "%%%d%c", w, type) + 1); + sprintf (fmt, "%%%d%c", w, type); + + return fmt; +} + +/* Render the 'total' label on each panel */ +static void +render_total_label (WINDOW * win, GDashModule * data, int y, + GColors * (*func) (void)) +{ + char *s; + int win_h, win_w, total, ht_size; + + total = data->holder_size; + ht_size = data->ht_size; + + s = xmalloc (snprintf (NULL, 0, "%s: %d/%d", GEN_TOTAL, total, ht_size) + 1); + getmaxyx (win, win_h, win_w); + (void) win_h; + + sprintf (s, "%s: %d/%d", GEN_TOTAL, total, ht_size); + draw_header (win, s, "%s", y, win_w - strlen (s) - 2, win_w, func); + free (s); +} + +/* Render panel bar graph */ +static void +render_bars (GDashModule * data, GDashRender render, int *x) +{ + GColors *color = get_color (COLOR_BARS); + WINDOW *win = render.win; + char *bar; + int y = render.y, w = render.w, idx = render.idx, sel = render.sel; + + bar = get_bars (data->data[idx].metrics->hits, data->meta.max_hits, *x); + if (sel) + draw_header (win, bar, "%s", y, *x, w, color_selected); + else { + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, "%s", bar); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + } + free (bar); +} + +/* Render the data metric for each panel */ +static void +render_data (GDashModule * data, GDashRender render, int *x) +{ + GColors *color = get_color_by_item_module (COLOR_MTRC_DATA, data->module); + WINDOW *win = render.win; + + char *date = NULL, *value = NULL, *buf = NULL; + int y = render.y, w = render.w, idx = render.idx, sel = render.sel; + int date_len = 0; + + value = substring (data->data[idx].metrics->data, 0, w - *x); + if (data->module == VISITORS) { + date = set_visitors_date (value); + date_len = strlen (date); + } + + if (sel && data->module == HOSTS && data->data[idx].is_subitem) { + render_data_hosts (win, render, value, *x); + } else if (sel) { + buf = data->module == VISITORS ? date : value; + draw_header (win, buf, "%s", y, *x, w, color_selected); + } else { + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, "%s", data->module == VISITORS ? date : value); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + } + + *x += data->module == VISITORS ? date_len : data->meta.data_len; + *x += DASH_SPACE; + free (value); + free (date); +} + +/* Render the method metric for each panel + * + * On error, no method is rendered and it returns. + * On success, method is rendered. */ +static void +render_method (GDashModule * data, GDashRender render, int *x) +{ + GColors *color = get_color_by_item_module (COLOR_MTRC_MTHD, data->module); + WINDOW *win = render.win; + + int y = render.y, w = render.w, idx = render.idx, sel = render.sel; + char *method = data->data[idx].metrics->method; + + if (method == NULL || *method == '\0') + return; + + if (sel) { + /* selected state */ + draw_header (win, method, "%s", y, *x, w, color_selected); + } else { + /* regular state */ + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, "%s", method); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + } + + *x += data->meta.method_len + DASH_SPACE; +} + +/* Render the protocol metric for each panel + * + * On error, no protocol is rendered and it returns. + * On success, protocol is rendered. */ +static void +render_proto (GDashModule * data, GDashRender render, int *x) +{ + GColors *color = get_color_by_item_module (COLOR_MTRC_PROT, data->module); + WINDOW *win = render.win; + + int y = render.y, w = render.w, idx = render.idx, sel = render.sel; + char *protocol = data->data[idx].metrics->protocol; + + if (protocol == NULL || *protocol == '\0') + return; + + if (sel) { + /* selected state */ + draw_header (win, protocol, "%s", y, *x, w, color_selected); + } else { + /* regular state */ + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, "%s", protocol); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + } + + *x += REQ_PROTO_LEN - 1 + DASH_SPACE; +} + +/* Render the average time served metric for each panel */ +static void +render_avgts (GDashModule * data, GDashRender render, int *x) +{ + GColors *color = get_color_by_item_module (COLOR_MTRC_AVGTS, data->module); + WINDOW *win = render.win; + + int y = render.y, w = render.w, idx = render.idx, sel = render.sel; + char *avgts = data->data[idx].metrics->avgts.sts; + + if (data->module == HOSTS && data->data[idx].is_subitem) + goto out; + + if (sel) { + /* selected state */ + draw_header (win, avgts, "%9s", y, *x, w, color_selected); + } else { + /* regular state */ + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, "%9s", avgts); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + } + +out: + *x += DASH_SRV_TM_LEN + DASH_SPACE; +} + +/* Render the cumulative time served metric for each panel */ +static void +render_cumts (GDashModule * data, GDashRender render, int *x) +{ + GColors *color = get_color_by_item_module (COLOR_MTRC_CUMTS, data->module); + WINDOW *win = render.win; + + int y = render.y, w = render.w, idx = render.idx, sel = render.sel; + char *cumts = data->data[idx].metrics->cumts.sts; + + if (data->module == HOSTS && data->data[idx].is_subitem) + goto out; + + if (sel) { + /* selected state */ + draw_header (win, cumts, "%9s", y, *x, w, color_selected); + } else { + /* regular state */ + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, "%9s", cumts); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + } + +out: + *x += DASH_SRV_TM_LEN + DASH_SPACE; +} + +/* Render the maximum time served metric for each panel */ +static void +render_maxts (GDashModule * data, GDashRender render, int *x) +{ + GColors *color = get_color_by_item_module (COLOR_MTRC_MAXTS, data->module); + WINDOW *win = render.win; + + int y = render.y, w = render.w, idx = render.idx, sel = render.sel; + char *maxts = data->data[idx].metrics->maxts.sts; + + if (data->module == HOSTS && data->data[idx].is_subitem) + goto out; + + if (sel) { + /* selected state */ + draw_header (win, maxts, "%9s", y, *x, w, color_selected); + } else { + /* regular state */ + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, "%9s", maxts); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + } + +out: + *x += DASH_SRV_TM_LEN + DASH_SPACE; +} + +/* Render the bandwidth metric for each panel */ +static void +render_bw (GDashModule * data, GDashRender render, int *x) +{ + GColors *color = get_color_by_item_module (COLOR_MTRC_BW, data->module); + WINDOW *win = render.win; + + int y = render.y, w = render.w, idx = render.idx, sel = render.sel; + char *bw = data->data[idx].metrics->bw.sbw; + + if (data->module == HOSTS && data->data[idx].is_subitem) + goto out; + + if (sel) { + char *fw = get_fixed_fmt_width (data->meta.bw_len, 's'); + /* selected state */ + draw_header (win, bw, fw, y, *x, w, color_selected); + free (fw); + } else { + /* regular state */ + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, "%*s", data->meta.bw_len, bw); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + } + +out: + *x += data->meta.bw_len + DASH_SPACE; +} + +/* Render a percent metric */ +static void +render_percent (GDashRender render, GColors * color, float perc, int len, int x) +{ + WINDOW *win = render.win; + char *percent; + int y = render.y, w = render.w, sel = render.sel; + + if (sel) { + /* selected state */ + percent = float2str (perc, len); + draw_header (win, percent, "%s%%", y, x, w, color_selected); + free (percent); + } else { + /* regular state */ + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, x, "%*.2f%%", len, perc); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + } +} + +/* Render the hits percent metric for each panel */ +static void +render_hits_percent (GDashModule * data, GDashRender render, int *x) +{ + GColorItem item = COLOR_MTRC_HITS_PERC; + GColors *color; + int l = data->meta.hits_perc_len + 3, idx = render.idx; + + if (data->module == HOSTS && data->data[idx].is_subitem) + goto out; + + if (data->meta.max_hits == data->data[idx].metrics->hits) + item = COLOR_MTRC_HITS_PERC_MAX; + + color = get_color_by_item_module (item, data->module); + render_percent (render, color, data->data[idx].metrics->hits_perc, l, *x); + +out: + *x += l + 1 + DASH_SPACE; +} + +/* Render the visitors percent metric for each panel */ +static void +render_visitors_percent (GDashModule * data, GDashRender render, int *x) +{ + GColorItem item = COLOR_MTRC_VISITORS_PERC; + GColors *color; + int l = data->meta.visitors_perc_len + 3, idx = render.idx; + + if (data->module == HOSTS && data->data[idx].is_subitem) + goto out; + + if (data->meta.max_visitors == data->data[idx].metrics->visitors) + item = COLOR_MTRC_VISITORS_PERC_MAX; + + color = get_color_by_item_module (item, data->module); + render_percent (render, color, data->data[idx].metrics->visitors_perc, l, *x); + +out: + *x += l + 1 + DASH_SPACE; +} + +/* Render the hits metric for each panel */ +static void +render_hits (GDashModule * data, GDashRender render, int *x) +{ + GColors *color = get_color_by_item_module (COLOR_MTRC_HITS, data->module); + WINDOW *win = render.win; + + char *hits; + int y = render.y, w = render.w, idx = render.idx, sel = render.sel; + int len = data->meta.hits_len; + + if (data->module == HOSTS && data->data[idx].is_subitem) + goto out; + + if (sel) { + /* selected state */ + hits = int2str (data->data[idx].metrics->hits, len); + draw_header (win, hits, " %s", y, 0, w, color_selected); + free (hits); + } else { + /* regular state */ + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, "%*d", len, data->data[idx].metrics->hits); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + } + +out: + *x += len + DASH_SPACE; +} + +/* Render the visitors metric for each panel */ +static void +render_visitors (GDashModule * data, GDashRender render, int *x) +{ + GColors *color = get_color_by_item_module (COLOR_MTRC_VISITORS, data->module); + WINDOW *win = render.win; + + char *visitors; + int y = render.y, w = render.w, idx = render.idx, sel = render.sel; + int len = data->meta.visitors_len; + + if (data->module == HOSTS && data->data[idx].is_subitem) + goto out; + + if (sel) { + /* selected state */ + visitors = int2str (data->data[idx].metrics->visitors, len); + draw_header (win, visitors, "%s", y, *x, w, color_selected); + free (visitors); + } else { + /* regular state */ + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, "%*d", len, data->data[idx].metrics->visitors); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + } + +out: + *x += len + DASH_SPACE; +} + +/* Render the header row for each panel */ +static void +render_header (WINDOW * win, GDashModule * data, GModule cur_module, int *y) +{ + GColors *(*func) (void); + char ind; + char *hd; + int k, w, h; + + getmaxyx (win, h, w); + (void) h; + + k = data->module + 1; + ind = cur_module == data->module ? '>' : ' '; + func = cur_module == data->module && + conf.hl_header ? color_panel_active : color_panel_header; + hd = xmalloc (snprintf (NULL, 0, "%c %d - %s", ind, k, data->head) + 1); + sprintf (hd, "%c %d - %s", ind, k, data->head); + + draw_header (win, hd, " %s", (*y), 0, w, func); + free (hd); + + render_total_label (win, data, (*y), func); + data->pos_y = (*y); + (*y)++; +} + +/* Render the description row for each panel */ +static void +render_description (WINDOW * win, GDashModule * data, int *y) +{ + int w, h; + + getmaxyx (win, h, w); + (void) h; + + draw_header (win, data->desc, " %s", (*y), 0, w, color_panel_desc); + + data->pos_y = (*y); + (*y)++; + (*y)++; /* add empty line underneath description */ +} + +/* Render available metrics per panel. + * ###TODO: Have the abilitity to display metrics in specific order */ +static void +render_metrics (GDashModule * data, GDashRender render, int expanded) +{ + int x = get_xpos (); + GModule module = data->module; + const GOutput *output = output_lookup (module); + + /* basic metrics */ + if (output->hits) + render_hits (data, render, &x); + if (output->percent) + render_hits_percent (data, render, &x); + if (output->visitors) + render_visitors (data, render, &x); + if (output->percent) + render_visitors_percent (data, render, &x); + + /* render bandwidth if available */ + if (conf.bandwidth && output->bw) + render_bw (data, render, &x); + + /* render avgts, cumts and maxts if available */ + if (output->avgts && conf.serve_usecs) + render_avgts (data, render, &x); + if (output->cumts && conf.serve_usecs) + render_cumts (data, render, &x); + if (output->maxts && conf.serve_usecs) + render_maxts (data, render, &x); + + /* render request method if available */ + if (output->method && conf.append_method) + render_method (data, render, &x); + /* render request protocol if available */ + if (output->protocol && conf.append_protocol) + render_proto (data, render, &x); + if (output->data) + render_data (data, render, &x); + + /* skip graph bars if module is expanded and we have sub nodes */ + if ((output->graph && !expanded) || (output->sub_graph && expanded)) + render_bars (data, render, &x); +} + +/* Render a dashboard row. */ +static void +render_data_line (WINDOW * win, GDashModule * data, int *y, int j, + GScroll * gscroll) +{ + GDashRender render; + GModule module = data->module; + int expanded = 0, sel = 0; + int w, h; + + getmaxyx (win, h, w); + (void) h; + + if (gscroll->expanded && module == gscroll->current) + expanded = 1; + + if (j >= data->idx_data) + goto out; + + sel = expanded && j == gscroll->module[module].scroll ? 1 : 0; + + render.win = win; + render.y = *y; + render.w = w; + render.idx = j; + render.sel = sel; + + render_metrics (data, render, expanded); + +out: + (*y)++; +} + +/* Render a dashed line underneath the metric label. */ +static void +print_horizontal_dash (WINDOW * win, int y, int x, int len) +{ + mvwprintw (win, y, x, "%.*s", len, "----------------"); +} + +/* Render left-aligned column label. */ +static void +lprint_col (WINDOW * win, int y, int *x, int len, const char *fmt, + const char *str) +{ + GColors *color = get_color (COLOR_PANEL_COLS); + + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, fmt, str); + print_horizontal_dash (win, y + 1, *x, len); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + + *x += len + DASH_SPACE; +} + +/* Render right-aligned column label. */ +static void +rprint_col (WINDOW * win, int y, int *x, int len, const char *fmt, + const char *str) +{ + GColors *color = get_color (COLOR_PANEL_COLS); + + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, *x, fmt, len, str); + print_horizontal_dash (win, y + 1, *x, len); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + + *x += len + DASH_SPACE; +} + +/* Render column names for available metrics. + * ###TODO: Have the abilitity to display metrics in specific order */ +static void +render_cols (WINDOW * win, GDashModule * data, int *y) +{ + GModule module = data->module; + const GOutput *output = output_lookup (module); + int x = get_xpos (); + + if (data->idx_data == 0 || conf.no_column_names) + return; + + if (output->hits) + lprint_col (win, *y, &x, data->meta.hits_len, "%s", MTRC_HITS_LBL); + + if (output->percent) + rprint_col (win, *y, &x, data->meta.hits_perc_len + 4, "%*s", + MTRC_HITS_PERC_LBL); + + if (output->visitors) + rprint_col (win, *y, &x, data->meta.visitors_len, "%*s", + MTRC_VISITORS_SHORT_LBL); + + if (output->percent) + rprint_col (win, *y, &x, data->meta.visitors_perc_len + 4, "%*s", + MTRC_VISITORS_PERC_LBL); + + if (output->bw && conf.bandwidth) + rprint_col (win, *y, &x, data->meta.bw_len, "%*s", MTRC_BW_LBL); + + if (output->avgts && conf.serve_usecs) + rprint_col (win, *y, &x, DASH_SRV_TM_LEN, "%*s", MTRC_AVGTS_LBL); + + if (output->cumts && conf.serve_usecs) + rprint_col (win, *y, &x, DASH_SRV_TM_LEN, "%*s", MTRC_CUMTS_LBL); + + if (output->maxts && conf.serve_usecs) + rprint_col (win, *y, &x, DASH_SRV_TM_LEN, "%*s", MTRC_MAXTS_LBL); + + if (output->method && conf.append_method) + lprint_col (win, *y, &x, data->meta.method_len, "%s", + MTRC_METHODS_SHORT_LBL); + + if (output->protocol && conf.append_protocol) + lprint_col (win, *y, &x, 8, "%s", MTRC_PROTOCOLS_SHORT_LBL); + + if (output->data) + lprint_col (win, *y, &x, 4, "%s", MTRC_DATA_LBL); +} + +/* Iterate over all dashboard data and render its content. */ +static void +render_content (WINDOW * win, GDashModule * data, int *y, int *offset, + int *total, GScroll * gscroll) +{ + GModule module = data->module; + int i, j, size, h, w, data_pos = get_data_pos_rows (); + + getmaxyx (win, h, w); + (void) w; + + size = data->dash_size; + for (i = *offset, j = 0; i < size; i++) { + /* header */ + if ((i % size) == DASH_HEAD_POS) { + render_header (win, data, gscroll->current, y); + } else if ((i % size) == DASH_EMPTY_POS && conf.no_column_names) { + /* if no column names, print panel description */ + render_description (win, data, y); + } else if ((i % size) == DASH_EMPTY_POS || (i % size) == size - 1) { + /* blank lines */ + (*y)++; + } else if ((i % size) == DASH_DASHES_POS && !conf.no_column_names) { + /* account for already printed dash lines under columns */ + (*y)++; + } else if ((i % size) == DASH_COLS_POS && !conf.no_column_names) { + /* column headers lines */ + render_cols (win, data, y); + (*y)++; + } else if ((i % size) >= data_pos || (i % size) <= size - 2) { + /* account for 2 lines at the header and 2 blank lines */ + j = ((i % size) - data_pos) + gscroll->module[module].offset; + /* actual data */ + render_data_line (win, data, y, j, gscroll); + } else { + /* everything else should be empty */ + (*y)++; + } + (*total)++; + if (*y >= h) + break; + } +} + +/* Entry point to render the terminal dashboard. */ +void +display_content (WINDOW * win, GDash * dash, GScroll * gscroll) +{ + GModule module; + int j = 0; + size_t idx = 0; + + int y = 0, offset = 0, total = 0; + int dash_scroll = gscroll->dash; + + werase (win); + + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + + offset = 0; + for (j = 0; j < dash->module[module].dash_size; j++) { + if (dash_scroll > total) { + offset++; + total++; + } + } + /* used module */ + dash->module[module].module = module; + + render_content (win, &dash->module[module], &y, &offset, &total, gscroll); + } + wrefresh (win); +} + +/* Reset the scroll and offset fields for each panel/module. */ +void +reset_scroll_offsets (GScroll * gscroll) +{ + GModule module; + size_t idx = 0; + + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + + gscroll->module[module].scroll = 0; + gscroll->module[module].offset = 0; + } +} + +/* Compile the regular expression and see if it's valid. + * + * If unable to compile, an error as described in <regex.h>. + * Upon successful completion, function returns 0. */ +static int +regexp_init (regex_t * regex, const char *pattern) +{ + int y, x, rc; + char buf[REGEX_ERROR]; + + getmaxyx (stdscr, y, x); + rc = regcomp (regex, pattern, REG_EXTENDED | (find_t.icase ? REG_ICASE : 0)); + /* something went wrong */ + if (rc != 0) { + regerror (rc, regex, buf, sizeof (buf)); + draw_header (stdscr, buf, "%s", y - 1, 0, x, color_error); + refresh (); + return 1; + } + return 0; +} + +/* Set the dashboard scroll and offset based on the search index. */ +static void +perform_find_dash_scroll (GScroll * gscroll, GModule module) +{ + int *scrll, *offset; + int exp_size = get_num_expanded_data_rows (); + + /* reset gscroll offsets if we are changing module */ + if (gscroll->current != module) + reset_scroll_offsets (gscroll); + + scrll = &gscroll->module[module].scroll; + offset = &gscroll->module[module].offset; + + (*scrll) = find_t.next_idx; + if (*scrll >= exp_size && *scrll >= *offset + exp_size) + (*offset) = (*scrll) < exp_size - 1 ? 0 : (*scrll) - exp_size + 1; + + gscroll->current = module; + gscroll->dash = get_module_index (module) * DASH_COLLAPSED; + gscroll->expanded = 1; + find_t.module = module; +} + +/* Find the searched item within the given sub list. + * + * If not found, the GFind structure is reset and 1 is returned. + * If found, a GFind structure is set and 0 is returned. */ +static int +find_next_sub_item (GSubList * sub_list, regex_t * regex) +{ + GSubItem *iter; + int i = 0, rc; + + if (sub_list == NULL) + goto out; + + for (iter = sub_list->head; iter; iter = iter->next) { + if (i >= find_t.next_sub_idx) { + rc = regexec (regex, iter->metrics->data, 0, NULL, 0); + if (rc == 0) { + find_t.next_idx++; + find_t.next_sub_idx = (1 + i); + return 0; + } + find_t.next_idx++; + } + i++; + } +out: + find_t.next_parent_idx++; + find_t.next_sub_idx = 0; + find_t.look_in_sub = 0; + + return 1; +} + +/* Perform a forward search across all modules. + * + * On error or if not found, 1 is returned. + * On success or if found, a GFind structure is set and 0 is returned. */ +int +perform_next_find (GHolder * h, GScroll * gscroll) +{ + GModule module; + GSubList *sub_list; + regex_t regex; + char buf[REGEX_ERROR], *data; + int y, x, j, n, rc; + size_t idx = 0; + + getmaxyx (stdscr, y, x); + + if (find_t.pattern == NULL || *find_t.pattern == '\0') + return 1; + + /* compile and initialize regexp */ + if (regexp_init (®ex, find_t.pattern)) + return 1; + + /* use last find_t.module and start search */ + idx = find_t.module; + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + + n = h[module].idx; + for (j = find_t.next_parent_idx; j < n; j++, find_t.next_idx++) { + data = h[module].items[j].metrics->data; + + rc = regexec (®ex, data, 0, NULL, 0); + /* error matching against the precompiled pattern buffer */ + if (rc != 0 && rc != REG_NOMATCH) { + regerror (rc, ®ex, buf, sizeof (buf)); + draw_header (stdscr, buf, "%s", y - 1, 0, x, color_error); + refresh (); + regfree (®ex); + return 1; + } + /* a match was found (data level) */ + else if (rc == 0 && !find_t.look_in_sub) { + find_t.look_in_sub = 1; + perform_find_dash_scroll (gscroll, module); + goto out; + } + /* look at sub list nodes */ + else { + sub_list = h[module].items[j].sub_list; + if (find_next_sub_item (sub_list, ®ex) == 0) { + perform_find_dash_scroll (gscroll, module); + goto out; + } + } + } + + /* reset find */ + find_t.next_idx = 0; + find_t.next_parent_idx = 0; + find_t.next_sub_idx = 0; + + if (find_t.module != module) { + reset_scroll_offsets (gscroll); + gscroll->expanded = 0; + } + if (module == TOTAL_MODULES - 1) { + find_t.module = 0; + goto out; + } + } + +out: + regfree (®ex); + return 0; +} + +/* Render a find dialog. + * + * On error or if no query is set, 1 is returned. + * On success, the dialog is rendered and 0 is returned. */ +int +render_find_dialog (WINDOW * main_win, GScroll * gscroll) +{ + int y, x, valid = 1; + int w = FIND_DLG_WIDTH; + int h = FIND_DLG_HEIGHT; + char *query = NULL; + WINDOW *win; + + getmaxyx (stdscr, y, x); + + win = newwin (h, w, (y - h) / 2, (x - w) / 2); + keypad (win, TRUE); + wborder (win, '|', '|', '-', '-', '+', '+', '+', '+'); + draw_header (win, FIND_HEAD, " %s", 1, 1, w - 2, color_panel_header); + mvwprintw (win, 2, 1, " %s", FIND_DESC); + + find_t.icase = 0; + query = input_string (win, 4, 2, w - 3, "", 1, &find_t.icase); + if (query != NULL && *query != '\0') { + reset_scroll_offsets (gscroll); + reset_find (); + find_t.pattern = xstrdup (query); + valid = 0; + } + if (query != NULL) + free (query); + touchwin (main_win); + close_win (win); + wrefresh (main_win); + + return valid; +} + +static void +set_dash_metrics (GDash ** dash, GMetrics * metrics, GModule module, + int is_subitem) +{ + GDashData *idata = NULL; + GDashMeta *meta = NULL; + char *data = NULL; + int *idx; + + if (!metrics->data) + return; + + idx = &(*dash)->module[module].idx_data; + idata = &(*dash)->module[module].data[(*idx)]; + meta = &(*dash)->module[module].meta; + + idata->metrics = new_gmetrics (); + idata->is_subitem = is_subitem; + + data = is_subitem ? render_child_node (metrics->data) : metrics->data; + + /* set maximum values so far for hits/visitors */ + set_max_values (meta, metrics); + + idata->metrics->hits = metrics->hits; + idata->metrics->hits_perc = get_percentage (meta->max_hits, metrics->hits); + idata->metrics->visitors = metrics->visitors; + idata->metrics->visitors_perc = + get_percentage (meta->max_visitors, metrics->visitors); + idata->metrics->bw.sbw = filesize_str (metrics->bw.nbw); + idata->metrics->data = xstrdup (data); + + if (conf.append_method && metrics->method) + idata->metrics->method = metrics->method; + if (conf.append_protocol && metrics->protocol) + idata->metrics->protocol = metrics->protocol; + + if (!conf.serve_usecs) + goto out; + + idata->metrics->avgts.sts = usecs_to_str (metrics->avgts.nts); + idata->metrics->cumts.sts = usecs_to_str (metrics->cumts.nts); + idata->metrics->maxts.sts = usecs_to_str (metrics->maxts.nts); + +out: + if (is_subitem) + free (data); + + set_metrics_len (meta, idata); + + (*idx)++; +} + +/* Add an item from a sub list to the dashboard. + * + * If no items on the sub list, the function returns. + * On success, sub list data is set into the dashboard structure. */ +static void +add_sub_item_to_dash (GDash ** dash, GHolderItem item, GModule module, int *i) +{ + GSubList *sub_list = item.sub_list; + GSubItem *iter; + + if (sub_list == NULL) + return; + + for (iter = sub_list->head; iter; iter = iter->next, (*i)++) { + set_dash_metrics (dash, iter->metrics, module, 1); + } +} + +/* Add a first level item to dashboard. + * + * On success, data is set into the dashboard structure. */ +static void +add_item_to_dash (GDash ** dash, GHolderItem item, GModule module) +{ + set_dash_metrics (dash, item.metrics, module, 0); +} + +/* Load holder's data into the dashboard structure. */ +void +load_data_to_dash (GHolder * h, GDash * dash, GModule module, GScroll * gscroll) +{ + int alloc_size = 0; + int i, j; + + alloc_size = dash->module[module].alloc_data; + if (gscroll->expanded && module == gscroll->current) + alloc_size += h->sub_items_size; + + dash->module[module].alloc_data = alloc_size; + dash->module[module].data = new_gdata (alloc_size); + dash->module[module].holder_size = h->holder_size; + memset (&dash->module[module].meta, 0, sizeof (GDashData)); + + for (i = 0, j = 0; i < alloc_size; i++) { + if (h->items[j].metrics->data == NULL) + continue; + + add_item_to_dash (&dash, h->items[j], module); + if (gscroll->expanded && module == gscroll->current && h->sub_items_size) + add_sub_item_to_dash (&dash, h->items[j], module, &i); + j++; + } +} diff --git a/src/goaccess++/src/gdashboard.h b/src/goaccess++/src/gdashboard.h new file mode 100644 index 0000000..314651a --- /dev/null +++ b/src/goaccess++/src/gdashboard.h @@ -0,0 +1,142 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#ifndef GDASHBOARD_H_INCLUDED +#define GDASHBOARD_H_INCLUDED + +#include <stdint.h> + +#include "ui.h" + +/* *INDENT-OFF* */ +#define DASH_HEAD_POS 0 /* position of header line */ +#define DASH_EMPTY_POS 1 /* empty line position */ +#define DASH_COLS_POS 2 /* position of column names */ +#define DASH_DASHES_POS 3 /* position of dashes under column names */ +#define DASH_DATA_POS 4 /* data line position */ + +#define DASH_NON_DATA 5 /* number of rows without data stats */ +#define DASH_COL_ROWS 2 /* number of rows for column values + dashed lines */ + +#define DASH_COLLAPSED 12 /* number of rows per panel (collapsed) */ +#define DASH_EXPANDED 32 /* number of rows per panel (expanded) */ + +#define DASH_INIT_X 1 /* start position (x-axis) */ + +#define DASH_BW_LEN 11 /* max bandwidth string length, e.g., 151.69 MiB */ +#define DASH_SRV_TM_LEN 9 /* max time served length, e.g., 483.00 us */ +#define DASH_SPACE 1 /* space between columns (metrics) */ + +/* Common render data line fields */ +typedef struct GDashRender_ +{ + WINDOW *win; + int y; + int w; + int idx; + int sel; +} GDashRender; + +/* Dashboard panel item */ +typedef struct GDashData_ +{ + GMetrics *metrics; + short is_subitem; +} GDashData; + +/* Dashboard panel meta data */ +typedef struct GDashMeta_ +{ + int max_hits; /* maximum value on the hits column */ + int max_visitors; /* maximum value on the visitors column */ + + /* determine the maximum metric's length of these metrics */ + /* for instance, 1022 is the max value for the hits column and its length = 4 */ + int hits_len; + int hits_perc_len; + int visitors_len; + int visitors_perc_len; + int bw_len; + int avgts_len; + int cumts_len; + int maxts_len; + int method_len; + int protocol_len; + int data_len; +} GDashMeta; + +/* Dashboard panel */ +typedef struct GDashModule_ +{ + GDashData *data; /* data metrics */ + GModule module; /* module */ + GDashMeta meta; /* meta data */ + + const char *head; /* panel header */ + const char *desc; /* panel description */ + + int alloc_data; /* number of data items allocated. */ + /* e.g., MAX_CHOICES or holder size */ + int dash_size; /* dashboard size */ + int holder_size; /* hash table size */ + int ht_size; /* hash table size */ + int idx_data; /* idx data */ + + unsigned short pos_y; /* dashboard current Y position */ +} GDashModule; + +/* Dashboard */ +typedef struct GDash_ +{ + int total_alloc; /* number of allocated dashboard lines */ + GDashModule module[TOTAL_MODULES]; +} GDash; + +/* Function Prototypes */ +GDashData *new_gdata (uint32_t size); +GDash *new_gdash (void); +int get_num_collapsed_data_rows(void); +int get_num_expanded_data_rows(void); +int perform_next_find (GHolder * h, GScroll * scroll); +int render_find_dialog (WINDOW * main_win, GScroll * scroll); +int set_module_from_mouse_event (GScroll *scroll, GDash *dash, int y); +uint32_t get_ht_size_by_module (GModule module); +void display_content (WINDOW * win, GDash * dash, GScroll * scroll); +void free_dashboard (GDash * dash); +void load_data_to_dash (GHolder * h, GDash * dash, GModule module, GScroll * scroll); +void reset_find (void); +void reset_scroll_offsets (GScroll * scroll); + +/* *INDENT-ON* */ + +#endif diff --git a/src/goaccess++/src/gdashboard.o b/src/goaccess++/src/gdashboard.o new file mode 100644 index 0000000000000000000000000000000000000000..a1351c7f1c51d60ab0a4d59f1bf9948055d765a6 GIT binary patch literal 27808 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/gdns.c b/src/goaccess++/src/gdns.c new file mode 100644 index 0000000..3287394 --- /dev/null +++ b/src/goaccess++/src/gdns.c @@ -0,0 +1,296 @@ +/** + * gdns.c -- hosts resolver + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#define _MULTI_THREADED +#ifdef __FreeBSD__ +#include <sys/socket.h> +#endif + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#include <pthread.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#include <ctype.h> +#include <errno.h> +#include <netdb.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <time.h> +#include <unistd.h> + +#include "gdns.h" + +#ifdef HAVE_LIBTOKYOCABINET +#include "tcabdb.h" +#else +#include "gkhash.h" +#endif + +#include "error.h" +#include "goaccess.h" +#include "util.h" +#include "xmalloc.h" + +GDnsThread gdns_thread; +static GDnsQueue *gdns_queue; + +/* Initialize the queue. */ +void +gqueue_init (GDnsQueue * q, int capacity) +{ + q->head = 0; + q->tail = -1; + q->size = 0; + q->capacity = capacity; +} + +/* Get the current size of queue. + * + * Returns the size of the queue. */ +int +gqueue_size (GDnsQueue * q) +{ + return q->size; +} + +/* Determine if the queue is empty. + * + * Returns true if empty, otherwise false. */ +int +gqueue_empty (GDnsQueue * q) +{ + return q->size == 0; +} + +/* Determine if the queue is full. + * + * Returns true if full, otherwise false. */ +int +gqueue_full (GDnsQueue * q) +{ + return q->size == q->capacity; +} + +/* Free the queue. */ +void +gqueue_destroy (GDnsQueue * q) +{ + free (q); +} + +/* Add at the end of the queue a string item. + * + * If the queue is full, -1 is returned. + * If added to the queue, 0 is returned. */ +int +gqueue_enqueue (GDnsQueue * q, char *item) +{ + if (gqueue_full (q)) + return -1; + + q->tail = (q->tail + 1) % q->capacity; + strcpy (q->buffer[q->tail], item); + q->size++; + return 0; +} + +/* Find a string item in the queue. + * + * If the queue is empty, or the item is not in the queue, 0 is returned. + * If found, 1 is returned. */ +int +gqueue_find (GDnsQueue * q, const char *item) +{ + int i; + if (gqueue_empty (q)) + return 0; + + for (i = 0; i < q->size; i++) { + if (strcmp (item, q->buffer[i]) == 0) + return 1; + } + return 0; +} + +/* Remove a string item from the head of the queue. + * + * If the queue is empty, NULL is returned. + * If removed, the string item is returned. */ +char * +gqueue_dequeue (GDnsQueue * q) +{ + char *item; + if (gqueue_empty (q)) + return NULL; + + item = q->buffer[q->head]; + q->head = (q->head + 1) % q->capacity; + q->size--; + return item; +} + +/* Get the corresponding hostname given an IP address. + * + * On error, a string error message is returned. + * On success, a malloc'd hostname is returned. */ +static char * +reverse_host (const struct sockaddr *a, socklen_t length) +{ + char h[H_SIZE]; + int flags, st; + + flags = NI_NAMEREQD; + st = getnameinfo (a, length, h, H_SIZE, NULL, 0, flags); + if (!st) + return alloc_string (h); + return alloc_string (gai_strerror (st)); +} + +/* Determine if IPv4 or IPv6 and resolve. + * + * On error, NULL is returned. + * On success, a malloc'd hostname is returned. */ +char * +reverse_ip (char *str) +{ + union + { + struct sockaddr addr; + struct sockaddr_in6 addr6; + struct sockaddr_in addr4; + } a; + + if (str == NULL || *str == '\0') + return NULL; + + memset (&a, 0, sizeof (a)); + if (1 == inet_pton (AF_INET, str, &a.addr4.sin_addr)) { + a.addr4.sin_family = AF_INET; + return reverse_host (&a.addr, sizeof (a.addr4)); + } else if (1 == inet_pton (AF_INET6, str, &a.addr6.sin6_addr)) { + a.addr6.sin6_family = AF_INET6; + return reverse_host (&a.addr, sizeof (a.addr6)); + } + return NULL; +} + +/* Producer - Resolve an IP address and add it to the queue. */ +void +dns_resolver (char *addr) +{ + pthread_mutex_lock (&gdns_thread.mutex); + /* queue is not full and the IP address is not in the queue */ + if (!gqueue_full (gdns_queue) && !gqueue_find (gdns_queue, addr)) { + /* add the IP to the queue */ + gqueue_enqueue (gdns_queue, addr); + pthread_cond_broadcast (&gdns_thread.not_empty); + } + pthread_mutex_unlock (&gdns_thread.mutex); +} + +/* Consumer - Once an IP has been resolved, add it to dwithe hostnames + * hash structure. */ +static void +dns_worker (void GO_UNUSED (*ptr_data)) +{ + char *ip = NULL, *host = NULL; + + while (1) { + pthread_mutex_lock (&gdns_thread.mutex); + /* wait until an item has been added to the queue */ + while (gqueue_empty (gdns_queue)) + pthread_cond_wait (&gdns_thread.not_empty, &gdns_thread.mutex); + + ip = gqueue_dequeue (gdns_queue); + + pthread_mutex_unlock (&gdns_thread.mutex); + host = reverse_ip (ip); + pthread_mutex_lock (&gdns_thread.mutex); + + if (!active_gdns) { + if (host) + free (host); + break; + } + + /* insert the corresponding IP -> hostname map */ + if (host != NULL && active_gdns) { + ht_insert_hostname (ip, host); + free (host); + } + + pthread_cond_signal (&gdns_thread.not_full); + pthread_mutex_unlock (&gdns_thread.mutex); + } +} + +/* Initialize queue and dns thread */ +void +gdns_init (void) +{ + gdns_queue = xmalloc (sizeof (GDnsQueue)); + gqueue_init (gdns_queue, QUEUE_SIZE); + + if (pthread_cond_init (&(gdns_thread.not_empty), NULL)) + FATAL ("Failed init thread condition"); + + if (pthread_cond_init (&(gdns_thread.not_full), NULL)) + FATAL ("Failed init thread condition"); + + if (pthread_mutex_init (&(gdns_thread.mutex), NULL)) + FATAL ("Failed init thread mutex"); +} + +/* Destroy (free) queue */ +void +gdns_free_queue (void) +{ + gqueue_destroy (gdns_queue); +} + +/* Create a DNS thread and make it active */ +void +gdns_thread_create (void) +{ + int th; + + active_gdns = 1; + th = pthread_create (&(gdns_thread.thread), NULL, (void *) &dns_worker, NULL); + if (th) + FATAL ("Return code from pthread_create(): %d", th); + pthread_detach (gdns_thread.thread); +} diff --git a/src/goaccess++/src/gdns.h b/src/goaccess++/src/gdns.h new file mode 100644 index 0000000..97d8b25 --- /dev/null +++ b/src/goaccess++/src/gdns.h @@ -0,0 +1,70 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef GDNS_H_INCLUDED +#define GDNS_H_INCLUDED + +#define H_SIZE 1025 +#define QUEUE_SIZE 400 + +typedef struct GDnsThread_ +{ + pthread_cond_t not_empty; /* not empty queue condition */ + pthread_cond_t not_full; /* not full queue condition */ + pthread_mutex_t mutex; + pthread_t thread; +} GDnsThread; + +typedef struct GDnsQueue_ +{ + int head; /* index to head of queue */ + int tail; /* index to tail of queue */ + int size; /* queue size */ + int capacity; /* length at most */ + char buffer[QUEUE_SIZE][H_SIZE]; /* data item */ +} GDnsQueue; + +extern GDnsThread gdns_thread; + +char *gqueue_dequeue (GDnsQueue * q); +char *reverse_ip (char *str); +int gqueue_empty (GDnsQueue * q); +int gqueue_enqueue (GDnsQueue * q, char *item); +int gqueue_find (GDnsQueue * q, const char *item); +int gqueue_full (GDnsQueue * q); +int gqueue_size (GDnsQueue * q); +void dns_resolver (char *addr); +void gdns_free_queue (void); +void gdns_init (void); +void gdns_queue_free (void); +void gdns_thread_create (void); +void gqueue_destroy (GDnsQueue * q); +void gqueue_init (GDnsQueue * q, int capacity); + +#endif diff --git a/src/goaccess++/src/gdns.o b/src/goaccess++/src/gdns.o new file mode 100644 index 0000000000000000000000000000000000000000..465c8b5f03270645a6b383ace583ad3dd28cd7f6 GIT binary patch literal 10968 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/geoip1.c b/src/goaccess++/src/geoip1.c new file mode 100644 index 0000000..588d994 --- /dev/null +++ b/src/goaccess++/src/geoip1.c @@ -0,0 +1,439 @@ +/** + * geoip.c -- implementation of GeoIP + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#ifdef HAVE_LIBGEOIP +#include <GeoIP.h> +#include <GeoIPCity.h> +#endif + +#include "geoip1.h" + +#include "error.h" +#include "util.h" + +static GeoIP *geo_location_data; + +/* Determine if we have a valid geoip resource. + * + * If the geoip resource is NULL, 0 is returned. + * If the geoip resource is valid and malloc'd, 1 is returned. */ +int +is_geoip_resource (void) +{ + return geo_location_data != NULL ? 1 : 0; +} + +/* Free up GeoIP resources */ +void +geoip_free (void) +{ + if (!is_geoip_resource ()) + return; + + GeoIP_delete (geo_location_data); + GeoIP_cleanup (); +} + +/* Open the given GeoLocation database and set its charset. + * + * On error, it aborts. + * On success, a new geolocation structure is returned. */ +static GeoIP * +geoip_open_db (const char *db) +{ + GeoIP *geoip; + geoip = GeoIP_open (db, GEOIP_MEMORY_CACHE); + + if (geoip == NULL) + FATAL ("Unable to open GeoIP database: %s\n", db); + + GeoIP_set_charset (geoip, GEOIP_CHARSET_UTF8); + LOG_DEBUG (("Opened GeoIP City database: %s\n", db)); + + return geoip; +} + +/* Set up and open GeoIP database */ +void +init_geoip (void) +{ + /* open custom city GeoIP database */ + if (conf.geoip_database != NULL) + geo_location_data = geoip_open_db (conf.geoip_database); + /* fall back to legacy GeoIP database */ + else + geo_location_data = GeoIP_new (conf.geo_db); +} + +/* Get continent name concatenated with code. + * + * If continent not found, "Unknown" is returned. + * On success, the continent code & name is returned . */ +static const char * +get_continent_name_and_code (const char *continentid) +{ + if (memcmp (continentid, "NA", 2) == 0) + return "NA North America"; + else if (memcmp (continentid, "OC", 2) == 0) + return "OC Oceania"; + else if (memcmp (continentid, "EU", 2) == 0) + return "EU Europe"; + else if (memcmp (continentid, "SA", 2) == 0) + return "SA South America"; + else if (memcmp (continentid, "AF", 2) == 0) + return "AF Africa"; + else if (memcmp (continentid, "AN", 2) == 0) + return "AN Antarctica"; + else if (memcmp (continentid, "AS", 2) == 0) + return "AS Asia"; + else + return "-- Unknown"; +} + +/* Compose a string with the country name and code and store it in the + * given buffer. */ +static void +geoip_set_country (const char *country, const char *code, char *loc) +{ + if (country && code) + snprintf (loc, COUNTRY_LEN, "%s %s", code, country); + else + snprintf (loc, COUNTRY_LEN, "%s", "Unknown"); +} + +/* Compose a string with the city name and state/region and store it + * in the given buffer. */ +static void +geoip_set_city (const char *city, const char *region, char *loc) +{ + snprintf (loc, CITY_LEN, "%s, %s", city ? city : "N/A City", + region ? region : "N/A Region"); +} + +/* Compose a string with the continent name and store it in the given + * buffer. */ +static void +geoip_set_continent (const char *continent, char *loc) +{ + if (continent) + snprintf (loc, CONTINENT_LEN, "%s", + get_continent_name_and_code (continent)); + else + snprintf (loc, CONTINENT_LEN, "%s", "Unknown"); +} + +/* Get detailed information found in the GeoIP Database about the + * given IPv4 or IPv6. + * + * On error, NULL is returned + * On success, GeoIPRecord structure is returned */ +static GeoIPRecord * +get_geoip_record (const char *addr, GTypeIP type_ip) +{ + GeoIPRecord *rec = NULL; + + if (TYPE_IPV4 == type_ip) + rec = GeoIP_record_by_name (geo_location_data, addr); + else if (TYPE_IPV6 == type_ip) + rec = GeoIP_record_by_name_v6 (geo_location_data, addr); + + return rec; +} + +/* Set country data by record into the given `location` buffer based + * on the IP version. */ +static void +geoip_set_country_by_record (const char *ip, char *location, GTypeIP type_ip) +{ + GeoIPRecord *rec = NULL; + const char *country = NULL, *code = NULL, *addr = ip; + + if (conf.geoip_database == NULL || geo_location_data == NULL) + return; + + /* Custom GeoIP database */ + if ((rec = get_geoip_record (addr, type_ip))) { + country = rec->country_name; + code = rec->country_code; + } + + geoip_set_country (country, code, location); + if (rec != NULL) { + GeoIPRecord_delete (rec); + } +} + +/* Get the GeoIP location id by name. + * + * On error, 0 is returned + * On success, the GeoIP location id is returned */ +static int +geoip_get_geoid (const char *addr, GTypeIP type_ip) +{ + int geoid = 0; + + if (TYPE_IPV4 == type_ip) + geoid = GeoIP_id_by_name (geo_location_data, addr); + else if (TYPE_IPV6 == type_ip) + geoid = GeoIP_id_by_name_v6 (geo_location_data, addr); + + return geoid; +} + +/* Get the country name by GeoIP location id. + * + * On error, NULL is returned + * On success, the country name is returned */ +static const char * +geoip_get_country_by_geoid (const char *addr, GTypeIP type_ip) +{ + const char *country = NULL; + + if (TYPE_IPV4 == type_ip) + country = GeoIP_country_name_by_name (geo_location_data, addr); + else if (TYPE_IPV6 == type_ip) + country = GeoIP_country_name_by_name_v6 (geo_location_data, addr); + + return country; +} + +/* Set country data by geoid into the given `location` buffer based on + * the IP version. */ +static void +geoip_set_country_by_geoid (const char *ip, char *location, GTypeIP type_ip) +{ + const char *country = NULL, *code = NULL, *addr = ip; + int geoid = 0; + + if (!is_geoip_resource ()) + return; + + if (!(country = geoip_get_country_by_geoid (addr, type_ip))) + goto out; + + /* return two letter country code */ + if (!(geoid = geoip_get_geoid (addr, type_ip))) + goto out; + code = GeoIP_code_by_id (geoid); + +out: + geoip_set_country (country, code, location); +} + +/* Set country data by geoid or record into the given `location` buffer + * based on the IP version and currently used database edition. */ +void +geoip_get_country (const char *ip, char *location, GTypeIP type_ip) +{ + unsigned char rec = GeoIP_database_edition (geo_location_data); + + switch (rec) { + case GEOIP_COUNTRY_EDITION: + if (TYPE_IPV4 == type_ip) + geoip_set_country_by_geoid (ip, location, TYPE_IPV4); + else + geoip_set_country (NULL, NULL, location); + break; + case GEOIP_COUNTRY_EDITION_V6: + if (TYPE_IPV6 == type_ip) + geoip_set_country_by_geoid (ip, location, TYPE_IPV6); + else + geoip_set_country (NULL, NULL, location); + break; + case GEOIP_CITY_EDITION_REV0: + case GEOIP_CITY_EDITION_REV1: + if (TYPE_IPV4 == type_ip) + geoip_set_country_by_record (ip, location, TYPE_IPV4); + else + geoip_set_country (NULL, NULL, location); + break; + case GEOIP_CITY_EDITION_REV0_V6: + case GEOIP_CITY_EDITION_REV1_V6: + if (TYPE_IPV6 == type_ip) + geoip_set_country_by_record (ip, location, TYPE_IPV6); + else + geoip_set_country (NULL, NULL, location); + break; + } +} + +/* Set continent data by record into the given `location` buffer based + * on the IP version. */ +static void +geoip_set_continent_by_record (const char *ip, char *location, GTypeIP type_ip) +{ + GeoIPRecord *rec = NULL; + const char *continent = NULL, *addr = ip; + + if (conf.geoip_database == NULL || geo_location_data == NULL) + return; + + /* Custom GeoIP database */ + if ((rec = get_geoip_record (addr, type_ip))) + continent = rec->continent_code; + + geoip_set_continent (continent, location); + if (rec != NULL) { + GeoIPRecord_delete (rec); + } +} + +/* Set continent data by geoid into the given `location` buffer based + * on the IP version. */ +static void +geoip_set_continent_by_geoid (const char *ip, char *location, GTypeIP type_ip) +{ + const char *continent = NULL, *addr = ip; + int geoid = 0; + + if (!is_geoip_resource ()) + return; + + if (!(geoid = geoip_get_geoid (addr, type_ip))) + goto out; + continent = GeoIP_continent_by_id (geoid); + +out: + geoip_set_continent (continent, location); +} + +/* Set continent data by geoid or record into the given `location` buffer + * based on the IP version and currently used database edition. */ +void +geoip_get_continent (const char *ip, char *location, GTypeIP type_ip) +{ + unsigned char rec = GeoIP_database_edition (geo_location_data); + + switch (rec) { + case GEOIP_COUNTRY_EDITION: + if (TYPE_IPV4 == type_ip) + geoip_set_continent_by_geoid (ip, location, TYPE_IPV4); + else + geoip_set_continent (NULL, location); + break; + case GEOIP_COUNTRY_EDITION_V6: + if (TYPE_IPV6 == type_ip) + geoip_set_continent_by_geoid (ip, location, TYPE_IPV6); + else + geoip_set_continent (NULL, location); + break; + case GEOIP_CITY_EDITION_REV0: + case GEOIP_CITY_EDITION_REV1: + if (TYPE_IPV4 == type_ip) + geoip_set_continent_by_record (ip, location, TYPE_IPV4); + else + geoip_set_continent (NULL, location); + break; + case GEOIP_CITY_EDITION_REV0_V6: + case GEOIP_CITY_EDITION_REV1_V6: + if (TYPE_IPV6 == type_ip) + geoip_set_continent_by_record (ip, location, TYPE_IPV6); + else + geoip_set_continent (NULL, location); + break; + } +} + +/* Set city data by record into the given `location` buffer based on + * the IP version. */ +static void +geoip_set_city_by_record (const char *ip, char *location, GTypeIP type_ip) +{ + GeoIPRecord *rec = NULL; + const char *city = NULL, *region = NULL, *addr = ip; + + /* Custom GeoIP database */ + if ((rec = get_geoip_record (addr, type_ip))) { + city = rec->city; + region = rec->region; + } + + geoip_set_city (city, region, location); + if (rec != NULL) { + GeoIPRecord_delete (rec); + } +} + +/* Set city data by geoid or record into the given `location` buffer + * based on the IP version and currently used database edition. + * It uses the custom GeoIP database - i.e., GeoLiteCity.dat */ +void +geoip_get_city (const char *ip, char *location, GTypeIP type_ip) +{ + unsigned char rec = GeoIP_database_edition (geo_location_data); + + if (conf.geoip_database == NULL || geo_location_data == NULL) + return; + + switch (rec) { + case GEOIP_CITY_EDITION_REV0: + case GEOIP_CITY_EDITION_REV1: + if (TYPE_IPV4 == type_ip) + geoip_set_city_by_record (ip, location, TYPE_IPV4); + else + geoip_set_city (NULL, NULL, location); + break; + case GEOIP_CITY_EDITION_REV0_V6: + case GEOIP_CITY_EDITION_REV1_V6: + if (TYPE_IPV6 == type_ip) + geoip_set_city_by_record (ip, location, TYPE_IPV6); + else + geoip_set_city (NULL, NULL, location); + break; + } +} + +/* Entry point to set GeoIP location into the corresponding buffers, + * (continent, country, city). + * + * On error, 1 is returned + * On success, buffers are set and 0 is returned */ +int +set_geolocation (char *host, char *continent, char *country, char *city) +{ + int type_ip = 0; + + if (!is_geoip_resource ()) + return 1; + + if (invalid_ipaddr (host, &type_ip)) + return 1; + + geoip_get_country (host, country, type_ip); + geoip_get_continent (host, continent, type_ip); + if (conf.geoip_database) + geoip_get_city (host, city, type_ip); + + return 0; +} diff --git a/src/goaccess++/src/geoip1.h b/src/goaccess++/src/geoip1.h new file mode 100644 index 0000000..6fbb100 --- /dev/null +++ b/src/goaccess++/src/geoip1.h @@ -0,0 +1,58 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#ifndef GEOIP_H_INCLUDED +#define GEOIP_H_INCLUDED + +#include "commons.h" + +#define CITY_LEN 47 + 1 /* max string length for a city */ +#define CONTINENT_LEN 47 + 1 /* max string length for a country */ +#define COUNTRY_LEN 48 + 3 /* Country + two-letter Code */ + +typedef struct GLocation_ +{ + char city[CITY_LEN]; + char continent[CONTINENT_LEN]; + int hits; +} GLocation; + +int is_geoip_resource (void); +int set_geolocation (char *host, char *continent, char *country, char *city); +void geoip_free (void); +void geoip_get_city (const char *ip, char *location, GTypeIP type_ip); +void geoip_get_continent (const char *ip, char *location, GTypeIP type_ip); +void geoip_get_country (const char *ip, char *location, GTypeIP type_ip); +void init_geoip (void); + +#endif // for #ifndef GEOIP_H diff --git a/src/goaccess++/src/geoip1.o b/src/goaccess++/src/geoip1.o new file mode 100644 index 0000000000000000000000000000000000000000..a3dce92b3f11a5187f75e8295d25de1b8c23eda5 GIT binary patch literal 12288 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 YY5Na<Ker^hT-yqLQC~He(%CNm7t59fU;qFB literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/geoip2.c b/src/goaccess++/src/geoip2.c new file mode 100644 index 0000000..724998d --- /dev/null +++ b/src/goaccess++/src/geoip2.c @@ -0,0 +1,297 @@ +/** + * geoip2.c -- implementation of GeoIP2 + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdlib.h> +#include <string.h> +#include <errno.h> + +#ifdef HAVE_LIBMAXMINDDB +#include <maxminddb.h> +#endif + +#include "geoip1.h" + +#include "error.h" +#include "util.h" +#include "xmalloc.h" + +/* should be reused across lookups */ +int geoip_city_type = 0; +static MMDB_s *mmdb = NULL; + +/* Determine if we have a valid geoip resource. + * + * If the geoip resource is NULL, 0 is returned. + * If the geoip resource is valid and malloc'd, 1 is returned. */ +int +is_geoip_resource (void) +{ + return mmdb != NULL ? 1 : 0; +} + +/* Free up GeoIP resources */ +void +geoip_free (void) +{ + if (!is_geoip_resource ()) + return; + + MMDB_close (mmdb); + free (mmdb); + mmdb = NULL; +} + +/* Open the given GeoIP2 database. + * + * On error, it aborts. + * On success, a new geolocation structure is set. */ +void +init_geoip (void) +{ + const char *fn = conf.geoip_database; + int status = 0; + + if (fn == NULL) + return; + + /* open custom city GeoIP database */ + mmdb = xcalloc (1, sizeof (MMDB_s)); + if ((status = MMDB_open (fn, MMDB_MODE_MMAP, mmdb)) != MMDB_SUCCESS) { + free (mmdb); + FATAL ("Unable to open GeoIP2 database: %s\n", fn); + } + + if (strcmp (mmdb->metadata.database_type, "GeoLite2-City") == 0) + geoip_city_type = 1; +} + +/* Look up an IP address that is passed in as a null-terminated string. + * + * On error, it aborts. + * If no entry is found, 1 is returned. + * On success, MMDB_lookup_result_s struct is set and 0 is returned. */ +static int +geoip_lookup (MMDB_lookup_result_s * res, const char *ip) +{ + int gai_err, mmdb_err; + + *res = MMDB_lookup_string (mmdb, ip, &gai_err, &mmdb_err); + if (0 != gai_err) + return 1; + + if (MMDB_SUCCESS != mmdb_err) + FATAL ("Error from libmaxminddb: %s\n", MMDB_strerror (mmdb_err)); + + if (!(*res).found_entry) + return 1; + + return 0; +} + +/* Get continent name concatenated with code. + * + * If continent not found, "Unknown" is returned. + * On success, the continent code & name is returned . */ +static const char * +get_continent_name_and_code (const char *continentid) +{ + if (memcmp (continentid, "NA", 2) == 0) + return "NA North America"; + else if (memcmp (continentid, "OC", 2) == 0) + return "OC Oceania"; + else if (memcmp (continentid, "EU", 2) == 0) + return "EU Europe"; + else if (memcmp (continentid, "SA", 2) == 0) + return "SA South America"; + else if (memcmp (continentid, "AF", 2) == 0) + return "AF Africa"; + else if (memcmp (continentid, "AN", 2) == 0) + return "AN Antarctica"; + else if (memcmp (continentid, "AS", 2) == 0) + return "AS Asia"; + else + return "-- Unknown"; +} + +/* Compose a string with the country name and code and store it in the + * given buffer. */ +static void +geoip_set_country (const char *country, const char *code, char *loc) +{ + if (country && code) + snprintf (loc, COUNTRY_LEN, "%s %s", code, country); + else + snprintf (loc, COUNTRY_LEN, "%s", "Unknown"); +} + +/* Compose a string with the city name and state/region and store it + * in the given buffer. */ +static void +geoip_set_city (const char *city, const char *region, char *loc) +{ + snprintf (loc, CITY_LEN, "%s, %s", city ? city : "N/A City", + region ? region : "N/A Region"); +} + +/* Compose a string with the continent name and store it in the given + * buffer. */ +static void +geoip_set_continent (const char *continent, char *loc) +{ + if (continent) + snprintf (loc, CONTINENT_LEN, "%s", + get_continent_name_and_code (continent)); + else + snprintf (loc, CONTINENT_LEN, "%s", "Unknown"); +} + +/* A wrapper to fetch the looked up result set. + * + * On error, it aborts. + * If no data is found, NULL is returned. + * On success, the fetched value is returned. */ +static char * +get_value (MMDB_lookup_result_s res, ...) +{ + MMDB_entry_data_s entry_data; + char *value = NULL; + int status = 0; + va_list keys; + va_start (keys, res); + + status = MMDB_vget_value (&res.entry, &entry_data, keys); + va_end (keys); + + if (status != MMDB_SUCCESS) + return NULL; + + if (!entry_data.has_data) + return NULL; + + if (entry_data.type != MMDB_DATA_TYPE_UTF8_STRING) + FATAL ("Invalid data UTF8 GeoIP2 data %d:\n", entry_data.type); + + if ((value = strndup (entry_data.utf8_string, entry_data.data_size)) == NULL) + FATAL ("Unable to allocate buffer %s: ", strerror (errno)); + + return value; +} + +/* A wrapper to fetch the looked up result and set the city and region. + * + * If no data is found, NULL is set. + * On success, the fetched value is set. */ +static void +geoip_query_city (MMDB_lookup_result_s res, char *location) +{ + char *city = NULL, *region = NULL; + + if (res.found_entry) { + city = get_value (res, "city", "names", "en", NULL); + region = get_value (res, "subdivisions", "0", "names", "en", NULL); + } + geoip_set_city (city, region, location); +} + +/* A wrapper to fetch the looked up result and set the country and code. + * + * If no data is found, NULL is set. + * On success, the fetched value is set. */ +static void +geoip_query_country (MMDB_lookup_result_s res, char *location) +{ + char *country = NULL, *code = NULL; + + if (res.found_entry) { + country = get_value (res, "country", "names", "en", NULL); + code = get_value (res, "country", "iso_code", NULL); + } + geoip_set_country (country, code, location); +} + +/* A wrapper to fetch the looked up result and set the continent code. + * + * If no data is found, NULL is set. + * On success, the fetched value is set. */ +static void +geoip_query_continent (MMDB_lookup_result_s res, char *location) +{ + char *code = NULL; + + if (res.found_entry) + code = get_value (res, "continent", "code", NULL); + geoip_set_continent (code, location); +} + +/* Set country data by record into the given `location` buffer */ +void +geoip_get_country (const char *ip, char *location, GO_UNUSED GTypeIP type_ip) +{ + MMDB_lookup_result_s res; + + geoip_lookup (&res, ip); + geoip_query_country (res, location); +} + +/* A wrapper to fetch the looked up result and set the continent. */ +void +geoip_get_continent (const char *ip, char *location, GO_UNUSED GTypeIP type_ip) +{ + MMDB_lookup_result_s res; + + geoip_lookup (&res, ip); + geoip_query_continent (res, location); +} + +/* Entry point to set GeoIP location into the corresponding buffers, + * (continent, country, city). + * + * On error, 1 is returned + * On success, buffers are set and 0 is returned */ +int +set_geolocation (char *host, char *continent, char *country, char *city) +{ + MMDB_lookup_result_s res; + + if (!is_geoip_resource ()) + return 1; + + geoip_lookup (&res, host); + geoip_query_country (res, country); + geoip_query_continent (res, continent); + if (geoip_city_type) + geoip_query_city (res, city); + + return 0; +} diff --git a/src/goaccess++/src/gholder.c b/src/goaccess++/src/gholder.c new file mode 100644 index 0000000..27939c6 --- /dev/null +++ b/src/goaccess++/src/gholder.c @@ -0,0 +1,673 @@ +/** + * gholder.c -- data structure to hold raw data + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include <pthread.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <netinet/in.h> +#include <arpa/inet.h> + +#ifdef HAVE_LIBTOKYOCABINET +#include "tcabdb.h" +#else +#include "gkhash.h" +#endif + +#ifdef HAVE_GEOLOCATION +#include "geoip1.h" +#endif + +#include "gholder.h" + +#include "error.h" +#include "gdns.h" +#include "util.h" +#include "xmalloc.h" + +typedef struct GPanel_ +{ + GModule module; + void (*insert) (GRawDataItem item, GHolder * h, GRawDataType type, + const struct GPanel_ *); + void (*holder_callback) (GHolder * h); + void (*lookup) (GRawDataItem item); +} GPanel; + +static void add_data_to_holder (GRawDataItem item, GHolder * h, + GRawDataType type, const GPanel * panel); +static void add_host_to_holder (GRawDataItem item, GHolder * h, + GRawDataType type, const GPanel * panel); +static void add_root_to_holder (GRawDataItem item, GHolder * h, + GRawDataType type, const GPanel * panel); +static void add_host_child_to_holder (GHolder * h); + +/* *INDENT-OFF* */ +static GPanel paneling[] = { + {VISITORS , add_data_to_holder, NULL} , + {REQUESTS , add_data_to_holder, NULL} , + {REQUESTS_STATIC , add_data_to_holder, NULL} , + {NOT_FOUND , add_data_to_holder, NULL} , + {HOSTS , add_host_to_holder, add_host_child_to_holder} , + {OS , add_root_to_holder, NULL} , + {BROWSERS , add_root_to_holder, NULL} , + {VISIT_TIMES , add_data_to_holder, NULL} , + {VIRTUAL_HOSTS , add_data_to_holder, NULL} , + {REFERRERS , add_data_to_holder, NULL} , + {REFERRING_SITES , add_data_to_holder, NULL} , + {KEYPHRASES , add_data_to_holder, NULL} , + {STATUS_CODES , add_root_to_holder, NULL} , + {REMOTE_USER , add_data_to_holder, NULL} , +#ifdef HAVE_GEOLOCATION + {GEO_LOCATION , add_root_to_holder, NULL} , +#endif +}; +/* *INDENT-ON* */ + +/* Get a panel from the GPanel structure given a module. + * + * On error, or if not found, NULL is returned. + * On success, the panel value is returned. */ +static GPanel * +panel_lookup (GModule module) +{ + int i, num_panels = ARRAY_SIZE (paneling); + + for (i = 0; i < num_panels; i++) { + if (paneling[i].module == module) + return &paneling[i]; + } + return NULL; +} + +/* Allocate memory for a new GHolder instance. + * + * On success, the newly allocated GHolder is returned . */ +GHolder * +new_gholder (uint32_t size) +{ + GHolder *holder = xmalloc (size * sizeof (GHolder)); + memset (holder, 0, size * sizeof *holder); + + return holder; +} + +/* Allocate memory for a new GHolderItem instance. + * + * On success, the newly allocated GHolderItem is returned . */ +static GHolderItem * +new_gholder_item (uint32_t size) +{ + GHolderItem *item = xcalloc (size, sizeof (GHolderItem)); + + return item; +} + +/* Allocate memory for a new double linked-list GSubList instance. + * + * On success, the newly allocated GSubList is returned . */ +static GSubList * +new_gsublist (void) +{ + GSubList *sub_list = xmalloc (sizeof (GSubList)); + sub_list->head = NULL; + sub_list->tail = NULL; + sub_list->size = 0; + + return sub_list; +} + +/* Allocate memory for a new double linked-list GSubItem node. + * + * On success, the newly allocated GSubItem is returned . */ +static GSubItem * +new_gsubitem (GModule module, GMetrics * nmetrics) +{ + GSubItem *sub_item = xmalloc (sizeof (GSubItem)); + + sub_item->metrics = nmetrics; + sub_item->module = module; + sub_item->prev = NULL; + sub_item->next = NULL; + + return sub_item; +} + +/* Add an item to the end of a given sub list. */ +static void +add_sub_item_back (GSubList * sub_list, GModule module, GMetrics * nmetrics) +{ + GSubItem *sub_item = new_gsubitem (module, nmetrics); + if (sub_list->tail) { + sub_list->tail->next = sub_item; + sub_item->prev = sub_list->tail; + sub_list->tail = sub_item; + } else { + sub_list->head = sub_item; + sub_list->tail = sub_item; + } + sub_list->size++; +} + +/* Delete the entire given sub list. */ +static void +delete_sub_list (GSubList * sub_list) +{ + GSubItem *item = NULL; + GSubItem *next = NULL; + + if (sub_list != NULL && sub_list->size == 0) + goto clear; + if (sub_list->size == 0) + return; + + for (item = sub_list->head; item; item = next) { + next = item->next; + free (item->metrics->data); + free (item->metrics); + free (item); + } +clear: + sub_list->head = NULL; + sub_list->size = 0; + free (sub_list); +} + +/* Free malloc'd holder fields. */ +static void +free_holder_data (GHolderItem item) +{ + if (item.sub_list != NULL) + delete_sub_list (item.sub_list); + if (item.metrics->data != NULL) + free (item.metrics->data); + if (item.metrics->method != NULL) + free (item.metrics->method); + if (item.metrics->protocol != NULL) + free (item.metrics->protocol); + if (item.metrics != NULL) + free (item.metrics); +} + +/* Free all memory allocated in holder for a given module. */ +void +free_holder_by_module (GHolder ** holder, GModule module) +{ + int j; + + if ((*holder) == NULL) + return; + + for (j = 0; j < (*holder)[module].idx; j++) { + free_holder_data ((*holder)[module].items[j]); + } + free ((*holder)[module].items); + + (*holder)[module].holder_size = 0; + (*holder)[module].idx = 0; + (*holder)[module].sub_items_size = 0; +} + +/* Free all memory allocated in holder for all modules. */ +void +free_holder (GHolder ** holder) +{ + GModule module; + int j; + size_t idx = 0; + + if ((*holder) == NULL) + return; + + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + + for (j = 0; j < (*holder)[module].idx; j++) { + free_holder_data ((*holder)[module].items[j]); + } + free ((*holder)[module].items); + } + free (*holder); + (*holder) = NULL; +} + +/* Iterate over holder and get the key index. + * + * If the key does not exist, -1 is returned. + * On success, the key in holder is returned . */ +static int +get_item_idx_in_holder (GHolder * holder, const char *k) +{ + int i; + if (holder == NULL) + return KEY_NOT_FOUND; + if (holder->idx == 0) + return KEY_NOT_FOUND; + if (k == NULL || *k == '\0') + return KEY_NOT_FOUND; + + for (i = 0; i < holder->idx; i++) { + if (strcmp (k, holder->items[i].metrics->data) == 0) + return i; + } + + return KEY_NOT_FOUND; +} + +/* Copy linked-list items to an array, sort, and move them back to the + * list. Should be faster than sorting the list */ +static void +sort_sub_list (GHolder * h, GSort sort) +{ + GHolderItem *arr; + GSubItem *iter; + GSubList *sub_list; + int i, j, k; + + /* iterate over root-level nodes */ + for (i = 0; i < h->idx; i++) { + sub_list = h->items[i].sub_list; + if (sub_list == NULL) + continue; + + arr = new_gholder_item (sub_list->size); + + /* copy items from the linked-list into an array */ + for (j = 0, iter = sub_list->head; iter; iter = iter->next, j++) { + arr[j].metrics = new_gmetrics (); + + arr[j].metrics->bw.nbw = iter->metrics->bw.nbw; + arr[j].metrics->data = xstrdup (iter->metrics->data); + arr[j].metrics->hits = iter->metrics->hits; + arr[j].metrics->id = iter->metrics->id; + arr[j].metrics->visitors = iter->metrics->visitors; + if (conf.serve_usecs) { + arr[j].metrics->avgts.nts = iter->metrics->avgts.nts; + arr[j].metrics->cumts.nts = iter->metrics->cumts.nts; + arr[j].metrics->maxts.nts = iter->metrics->maxts.nts; + } + } + sort_holder_items (arr, j, sort); + delete_sub_list (sub_list); + + sub_list = new_gsublist (); + for (k = 0; k < j; k++) { + if (k > 0) + sub_list = h->items[i].sub_list; + + add_sub_item_back (sub_list, h->module, arr[k].metrics); + h->items[i].sub_list = sub_list; + } + free (arr); + } +} + +/* Set the data metric field for the host panel. + * + * On success, the data field/metric is set. */ +static int +set_host_child_metrics (char *data, uint8_t id, GMetrics ** nmetrics) +{ + GMetrics *metrics; + + metrics = new_gmetrics (); + metrics->data = xstrdup (data); + metrics->id = id; + *nmetrics = metrics; + + return 0; +} + +/* Set host panel data, including sub items. + * + * On success, the host panel data is set. */ +static void +set_host_sub_list (GHolder * h, GSubList * sub_list) +{ + GMetrics *nmetrics; +#ifdef HAVE_GEOLOCATION + char city[CITY_LEN] = ""; + char continent[CONTINENT_LEN] = ""; + char country[COUNTRY_LEN] = ""; +#endif + + char *host = h->items[h->idx].metrics->data, *hostname = NULL; +#ifdef HAVE_GEOLOCATION + /* add geolocation child nodes */ + set_geolocation (host, continent, country, city); + + /* country */ + if (country[0] != '\0') { + set_host_child_metrics (country, MTRC_ID_COUNTRY, &nmetrics); + add_sub_item_back (sub_list, h->module, nmetrics); + h->items[h->idx].sub_list = sub_list; + h->sub_items_size++; + + /* flag only */ + conf.has_geocountry = 1; + } + + /* city */ + if (city[0] != '\0') { + set_host_child_metrics (city, MTRC_ID_CITY, &nmetrics); + add_sub_item_back (sub_list, h->module, nmetrics); + h->items[h->idx].sub_list = sub_list; + h->sub_items_size++; + + /* flag only */ + conf.has_geocity = 1; + } +#endif + + /* hostname */ + if (conf.enable_html_resolver && conf.output_stdout) { + hostname = reverse_ip (host); + set_host_child_metrics (hostname, MTRC_ID_HOSTNAME, &nmetrics); + add_sub_item_back (sub_list, h->module, nmetrics); + h->items[h->idx].sub_list = sub_list; + h->sub_items_size++; + free (hostname); + } +} + +/* Set host panel data, including sub items. + * + * On success, the host panel data is set. */ +static void +add_host_child_to_holder (GHolder * h) +{ + GMetrics *nmetrics; + GSubList *sub_list = new_gsublist (); + + char *ip = h->items[h->idx].metrics->data; + char *hostname = NULL; + int n = h->sub_items_size; + + /* add child nodes */ + set_host_sub_list (h, sub_list); + + pthread_mutex_lock (&gdns_thread.mutex); + hostname = ht_get_hostname (ip); + pthread_mutex_unlock (&gdns_thread.mutex); + + /* determine if we have the IP's hostname */ + if (!hostname) { + dns_resolver (ip); + } else if (hostname) { + set_host_child_metrics (hostname, MTRC_ID_HOSTNAME, &nmetrics); + add_sub_item_back (sub_list, h->module, nmetrics); + h->items[h->idx].sub_list = sub_list; + h->sub_items_size++; + free (hostname); + } + + /* did not add any items */ + if (n == h->sub_items_size) + free (sub_list); +} + +/* Given a GRawDataType, set the data and hits value. + * + * On error, no values are set and 1 is returned. + * On success, the data and hits values are set and 0 is returned. */ +static int +set_data_hits_keys (GModule module, GRawDataItem item, GRawDataType type, + char **data, int *hits) +{ + if (type == INTEGER) { + if (!(*data = ht_get_datamap (module, item.key))) + return 1; + *hits = item.value.ivalue; + } else if (type == STRING) { + if (!(*hits = ht_get_hits (module, item.key))) + return 1; + *data = xstrdup (item.value.svalue); + } + return 0; +} + +/* Given a data item, store it into a holder structure. */ +static void +set_data_holder_metrics (GRawDataItem item, GHolder * h, char *data, int hits) +{ + char *method = NULL, *protocol = NULL; + int visitors = 0; + uint64_t bw = 0, cumts = 0, maxts = 0; + + bw = ht_get_bw (h->module, item.key); + cumts = ht_get_cumts (h->module, item.key); + maxts = ht_get_maxts (h->module, item.key); + visitors = ht_get_visitors (h->module, item.key); + + h->items[h->idx].metrics = new_gmetrics (); + h->items[h->idx].metrics->hits = hits; + h->items[h->idx].metrics->data = data; + h->items[h->idx].metrics->visitors = visitors; + h->items[h->idx].metrics->bw.nbw = bw; + h->items[h->idx].metrics->avgts.nts = cumts / hits; + h->items[h->idx].metrics->cumts.nts = cumts; + h->items[h->idx].metrics->maxts.nts = maxts; + + if (conf.append_method) { + method = ht_get_method (h->module, item.key); + h->items[h->idx].metrics->method = method; + } + + if (conf.append_protocol) { + protocol = ht_get_protocol (h->module, item.key); + h->items[h->idx].metrics->protocol = protocol; + } +} + +/* A wrapper to set a host item */ +static void +set_host (GRawDataItem item, GHolder * h, const GPanel * panel, char *data, + int hits) +{ + set_data_holder_metrics (item, h, xstrdup (data), hits); + if (panel->holder_callback) + panel->holder_callback (h); + h->idx++; +} + +/* Set all panel data. This will set data for panels that do not + * contain sub items. A function pointer is used for post data set. */ +static void +add_data_to_holder (GRawDataItem item, GHolder * h, GRawDataType type, + const GPanel * panel) +{ + char *data = NULL; + int hits = 0; + + if (set_data_hits_keys (h->module, item, type, &data, &hits) == 1) + return; + + set_data_holder_metrics (item, h, data, hits); + if (panel->holder_callback) + panel->holder_callback (h); + + h->idx++; +} + +/* Set all panel data. This will set data for panels that do not + * contain sub items. A function pointer is used for post data set. */ +static void +add_host_to_holder (GRawDataItem item, GHolder * h, GRawDataType type, + const GPanel * panel) +{ + char buf4[INET_ADDRSTRLEN]; + char buf6[INET6_ADDRSTRLEN]; + char *data = NULL; + int hits = 0; + unsigned i; + + struct in6_addr addr6, mask6, nwork6; + struct in_addr addr4, mask4, nwork4; + + const char *m4 = "255.255.255.0"; + const char *m6 = "ffff:ffff:ffff:ffff:0000:0000:0000:0000"; + + if (set_data_hits_keys (h->module, item, type, &data, &hits) == 1) + return; + + if (!conf.anonymize_ip) { + add_data_to_holder (item, h, type, panel); + free (data); + return; + } + + if (1 == inet_pton (AF_INET, data, &addr4)) { + if (1 == inet_pton (AF_INET, m4, &mask4)) { + memset (buf4, 0, sizeof *buf4); + nwork4.s_addr = addr4.s_addr & mask4.s_addr; + + if (inet_ntop (AF_INET, &nwork4, buf4, INET_ADDRSTRLEN) != NULL) { + set_host (item, h, panel, buf4, hits); + free (data); + } + } + } else if (1 == inet_pton (AF_INET6, data, &addr6)) { + if (1 == inet_pton (AF_INET6, m6, &mask6)) { + memset (buf6, 0, sizeof *buf6); + for (i = 0; i < 16; i++) { + nwork6.s6_addr[i] = addr6.s6_addr[i] & mask6.s6_addr[i]; + } + + if (inet_ntop (AF_INET6, &nwork6, buf6, INET6_ADDRSTRLEN) != NULL) { + set_host (item, h, panel, buf6, hits); + free (data); + } + } + } +} + +/* Set all root panel data. This will set the root nodes. */ +static int +set_root_metrics (GRawDataItem item, GRawDataType type, GModule module, + GMetrics ** nmetrics) +{ + GMetrics *metrics; + char *data = NULL; + uint64_t bw = 0, cumts = 0, maxts = 0; + int hits = 0, visitors = 0; + + if (set_data_hits_keys (module, item, type, &data, &hits) == 1) + return 1; + + bw = ht_get_bw (module, item.key); + cumts = ht_get_cumts (module, item.key); + maxts = ht_get_maxts (module, item.key); + visitors = ht_get_visitors (module, item.key); + + metrics = new_gmetrics (); + metrics->avgts.nts = cumts / hits; + metrics->cumts.nts = cumts; + metrics->maxts.nts = maxts; + metrics->bw.nbw = bw; + metrics->data = data; + metrics->hits = hits; + metrics->visitors = visitors; + *nmetrics = metrics; + + return 0; +} + +/* Set all root panel data, including sub list items. */ +static void +add_root_to_holder (GRawDataItem item, GHolder * h, GRawDataType type, + GO_UNUSED const GPanel * panel) +{ + GSubList *sub_list; + GMetrics *metrics, *nmetrics; + char *root = NULL; + int root_idx = KEY_NOT_FOUND, idx = 0; + + if (set_root_metrics (item, type, h->module, &nmetrics) == 1) + return; + + if (!(root = (ht_get_root (h->module, item.key)))) + return; + + /* add data as a child node into holder */ + if (KEY_NOT_FOUND == (root_idx = get_item_idx_in_holder (h, root))) { + idx = h->idx; + sub_list = new_gsublist (); + metrics = new_gmetrics (); + + h->items[idx].metrics = metrics; + h->items[idx].metrics->data = root; + h->idx++; + } else { + sub_list = h->items[root_idx].sub_list; + metrics = h->items[root_idx].metrics; + + idx = root_idx; + free (root); + } + + add_sub_item_back (sub_list, h->module, nmetrics); + h->items[idx].sub_list = sub_list; + + h->items[idx].metrics = metrics; + h->items[idx].metrics->cumts.nts += nmetrics->cumts.nts; + h->items[idx].metrics->bw.nbw += nmetrics->bw.nbw; + h->items[idx].metrics->hits += nmetrics->hits; + h->items[idx].metrics->visitors += nmetrics->visitors; + h->items[idx].metrics->avgts.nts = + h->items[idx].metrics->cumts.nts / h->items[idx].metrics->hits; + if (nmetrics->maxts.nts > h->items[idx].metrics->maxts.nts) + h->items[idx].metrics->maxts.nts = nmetrics->maxts.nts; + + h->sub_items_size++; +} + +/* Load raw data into our holder structure */ +void +load_holder_data (GRawData * raw_data, GHolder * h, GModule module, GSort sort) +{ + int i, size = 0, max_choices = get_max_choices (); + const GPanel *panel = panel_lookup (module); + + size = raw_data->size; + h->holder_size = size > max_choices ? max_choices : size; + h->ht_size = size; + h->idx = 0; + h->module = module; + h->sub_items_size = 0; + h->items = new_gholder_item (h->holder_size); + + for (i = 0; i < h->holder_size; i++) { + panel->insert (raw_data->items[i], h, raw_data->type, panel); + } + sort_holder_items (h->items, h->idx, sort); + if (h->sub_items_size) + sort_sub_list (h, sort); + free_raw_data (raw_data); +} diff --git a/src/goaccess++/src/gholder.h b/src/goaccess++/src/gholder.h new file mode 100644 index 0000000..b5c05bc --- /dev/null +++ b/src/goaccess++/src/gholder.h @@ -0,0 +1,49 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef GHOLDER_H_INCLUDED +#define GHOLDER_H_INCLUDED + +#define MTRC_ID_COUNTRY 0 +#define MTRC_ID_CITY 1 +#define MTRC_ID_HOSTNAME 2 + +#include "commons.h" +#include "sort.h" + +/* Function Prototypes */ +GHolder *new_gholder (uint32_t size); +void *add_hostname_node (void *ptr_holder); +void free_holder_by_module (GHolder ** holder, GModule module); +void free_holder (GHolder ** holder); +void load_holder_data (GRawData * raw_data, GHolder * h, GModule module, + GSort sort); +void load_host_to_holder (GHolder * h, char *ip); + +#endif // for #ifndef GHOLDER_H diff --git a/src/goaccess++/src/gholder.o b/src/goaccess++/src/gholder.o new file mode 100644 index 0000000000000000000000000000000000000000..672f809791d55a55aa4e69d05eb9d8d1cbbd344f GIT binary patch literal 11832 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/gkhash.c b/src/goaccess++/src/gkhash.c new file mode 100644 index 0000000..8dcfba8 --- /dev/null +++ b/src/goaccess++/src/gkhash.c @@ -0,0 +1,1610 @@ +/** + * gkhash.c -- default hash table functions + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "gkhash.h" + +#include "error.h" +#include "sort.h" +#include "util.h" +#include "xmalloc.h" + +/* Hash tables storage */ +static GKHashStorage *gkh_storage; + +/* *INDENT-OFF* */ +/* Hash tables used across the whole app */ +static khash_t (is32) *ht_agent_vals = NULL; +static khash_t (si32) *ht_agent_keys = NULL; +static khash_t (si32) *ht_unique_keys = NULL; +static khash_t (ss32) *ht_hostnames = NULL; +/* *INDENT-ON* */ +static GKHashStorage * +new_gkhstorage (uint32_t size) +{ + GKHashStorage *storage = xcalloc (size, sizeof (GKHashStorage)); + return storage; +} + +/* Initialize a new int key - int value hash table */ +static +khash_t (ii32) * +new_ii32_ht (void) +{ + khash_t (ii32) * h = kh_init (ii32); + return h; +} + +/* Initialize a new int key - string value hash table */ +static +khash_t (is32) * +new_is32_ht (void) +{ + khash_t (is32) * h = kh_init (is32); + return h; +} + +/* Initialize a new int key - uint64_t value hash table */ +static +khash_t (iu64) * +new_iu64_ht (void) +{ + khash_t (iu64) * h = kh_init (iu64); + return h; +} + +/* Initialize a new string key - int value hash table */ +static +khash_t (si32) * +new_si32_ht (void) +{ + khash_t (si32) * h = kh_init (si32); + return h; +} + +/* Initialize a new string key - string value hash table */ +static +khash_t (ss32) * +new_ss32_ht (void) +{ + khash_t (ss32) * h = kh_init (ss32); + return h; +} + +/* Initialize a new int key - int value hash table */ +static +khash_t (igsl) * +new_igsl_ht (void) +{ + khash_t (igsl) * h = kh_init (igsl); + return h; +} + +/* Initialize a new int key - uint64_t value hash table */ +static +khash_t (su64) * +new_su64_ht (void) +{ + khash_t (su64) * h = kh_init (su64); + return h; +} + +/* Destroys both the hash structure and the keys for a + * string key - int value hash */ +static void +des_si32_free (khash_t (si32) * hash) +{ + khint_t k; + if (!hash) + return; + + for (k = 0; k < kh_end (hash); ++k) { + if (kh_exist (hash, k)) { + free ((char *) kh_key (hash, k)); + } + } + + kh_destroy (si32, hash); +} + +/* Destroys both the hash structure and its string values */ +static void +des_is32_free (khash_t (is32) * hash) +{ + khint_t k; + if (!hash) + return; + + for (k = 0; k < kh_end (hash); ++k) { + if (kh_exist (hash, k)) { + free ((char *) kh_value (hash, k)); + } + } + + kh_destroy (is32, hash); +} + +/* Destroys both the hash structure and its string + * keys and string values */ +static void +des_ss32_free (khash_t (ss32) * hash) +{ + khint_t k; + if (!hash) + return; + + for (k = 0; k < kh_end (hash); ++k) { + if (kh_exist (hash, k)) { + free ((char *) kh_key (hash, k)); + free ((char *) kh_value (hash, k)); + } + } + + kh_destroy (ss32, hash); +} + +/* Destroys the hash structure */ +static void +des_ii32 (khash_t (ii32) * hash) +{ + if (!hash) + return; + kh_destroy (ii32, hash); +} + +/* Destroys both the hash structure and its GSLList + * values */ +static void +des_igsl_free (khash_t (igsl) * hash) +{ + khint_t k; + void *list = NULL; + if (!hash) + return; + + for (k = 0; k < kh_end (hash); ++k) { + if (kh_exist (hash, k) && (list = kh_value (hash, k))) { + list_remove_nodes (list); + } + } + + kh_destroy (igsl, hash); +} + +/* Destroys both the hash structure and the keys for a + * string key - uint64_t value hash */ +static void +des_su64_free (khash_t (su64) * hash) +{ + if (!hash) + return; + + kh_destroy (su64, hash); +} + +/* Destroys the hash structure */ +static void +des_iu64 (khash_t (iu64) * hash) +{ + if (!hash) + return; + kh_destroy (iu64, hash); +} + +/* Initialize map & metric hashes */ +static void +init_tables (GModule module) +{ + int n = 0, i; + /* *INDENT-OFF* */ + GKHashMetric metrics[] = { + {MTRC_KEYMAP , MTRC_TYPE_SI32 , {.si32 = new_si32_ht ()}} , + {MTRC_ROOTMAP , MTRC_TYPE_IS32 , {.is32 = new_is32_ht ()}} , + {MTRC_DATAMAP , MTRC_TYPE_IS32 , {.is32 = new_is32_ht ()}} , + {MTRC_UNIQMAP , MTRC_TYPE_SI32 , {.si32 = new_si32_ht ()}} , + {MTRC_ROOT , MTRC_TYPE_II32 , {.ii32 = new_ii32_ht ()}} , + {MTRC_HITS , MTRC_TYPE_II32 , {.ii32 = new_ii32_ht ()}} , + {MTRC_VISITORS , MTRC_TYPE_II32 , {.ii32 = new_ii32_ht ()}} , + {MTRC_BW , MTRC_TYPE_IU64 , {.iu64 = new_iu64_ht ()}} , + {MTRC_CUMTS , MTRC_TYPE_IU64 , {.iu64 = new_iu64_ht ()}} , + {MTRC_MAXTS , MTRC_TYPE_IU64 , {.iu64 = new_iu64_ht ()}} , + {MTRC_METHODS , MTRC_TYPE_IS32 , {.is32 = new_is32_ht ()}} , + {MTRC_PROTOCOLS , MTRC_TYPE_IS32 , {.is32 = new_is32_ht ()}} , + {MTRC_AGENTS , MTRC_TYPE_IGSL , {.igsl = new_igsl_ht ()}} , + {MTRC_METADATA , MTRC_TYPE_SU64 , {.su64 = new_su64_ht ()}} , + }; + /* *INDENT-ON* */ + + n = ARRAY_SIZE (metrics); + for (i = 0; i < n; i++) { + gkh_storage[module].metrics[i] = metrics[i]; + } +} + +/* Initialize hash tables */ +void +init_storage (void) +{ + GModule module; + size_t idx = 0; + + /* Hashes used across the whole app (not per module) */ + ht_agent_keys = (khash_t (si32) *) new_si32_ht (); + ht_agent_vals = (khash_t (is32) *) new_is32_ht (); + ht_hostnames = (khash_t (ss32) *) new_ss32_ht (); + ht_unique_keys = (khash_t (si32) *) new_si32_ht (); + + gkh_storage = new_gkhstorage (TOTAL_MODULES); + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + + gkh_storage[module].module = module; + init_tables (module); + } +} + +static void +free_metric_type (GKHashMetric mtrc) +{ + /* Determine the hash structure type */ + switch (mtrc.type) { + case MTRC_TYPE_II32: + des_ii32 (mtrc.ii32); + break; + case MTRC_TYPE_IS32: + des_is32_free (mtrc.is32); + break; + case MTRC_TYPE_IU64: + des_iu64 (mtrc.iu64); + break; + case MTRC_TYPE_SI32: + des_si32_free (mtrc.si32); + break; + case MTRC_TYPE_SS32: + des_ss32_free (mtrc.ss32); + break; + case MTRC_TYPE_IGSL: + des_igsl_free (mtrc.igsl); + break; + case MTRC_TYPE_SU64: + des_su64_free (mtrc.su64); + break; + } +} + +/* Destroys the hash structure allocated metrics */ +static void +free_metrics (GModule module) +{ + int i; + GKHashMetric mtrc; + + for (i = 0; i < GSMTRC_TOTAL; i++) { + mtrc = gkh_storage[module].metrics[i]; + free_metric_type (mtrc); + } +} + +/* Destroys the hash structure and its content */ +void +free_storage (void) +{ + size_t idx = 0; + + des_is32_free (ht_agent_vals); + des_si32_free (ht_agent_keys); + des_si32_free (ht_unique_keys); + des_ss32_free (ht_hostnames); + + if (!gkh_storage) + return; + + FOREACH_MODULE (idx, module_list) { + free_metrics (module_list[idx]); + } + free (gkh_storage); +} + +/* Given a module and a metric, get the hash table + * + * On error, or if table is not found, NULL is returned. + * On success the hash structure pointer is returned. */ +static void * +get_hash (GModule module, GSMetric metric) +{ + void *hash = NULL; + int i; + GKHashMetric mtrc; + + for (i = 0; i < GSMTRC_TOTAL; i++) { + if (hash != NULL) + break; + + mtrc = gkh_storage[module].metrics[i]; + if (mtrc.metric != metric) + continue; + + /* Determine the hash structure type */ + switch (mtrc.type) { + case MTRC_TYPE_II32: + hash = mtrc.ii32; + break; + case MTRC_TYPE_IS32: + hash = mtrc.is32; + break; + case MTRC_TYPE_IU64: + hash = mtrc.iu64; + break; + case MTRC_TYPE_SI32: + hash = mtrc.si32; + break; + case MTRC_TYPE_SS32: + hash = mtrc.ss32; + break; + case MTRC_TYPE_IGSL: + hash = mtrc.igsl; + break; + case MTRC_TYPE_SU64: + hash = mtrc.su64; + break; + } + } + + return hash; +} + +/* Insert a string key and the corresponding int value. + * Note: If the key exists, the value is not replaced. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +static int +ins_si32 (khash_t (si32) * hash, const char *key, int value) +{ + khint_t k; + int ret; + char *dupkey = NULL; + + if (!hash) + return -1; + + dupkey = xstrdup (key); + k = kh_put (si32, hash, dupkey, &ret); + /* operation failed, or key exists */ + if (ret == -1 || ret == 0) { + free (dupkey); + return -1; + } + + kh_val (hash, k) = value; + + return 0; +} + +/* Insert an int key and the corresponding string value. + * Note: If the key exists, the value is not replaced. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +static int +ins_is32 (khash_t (is32) * hash, int key, const char *value) +{ + khint_t k; + int ret; + + if (!hash) + return -1; + + k = kh_put (is32, hash, key, &ret); + if (ret == -1 || ret == 0) + return -1; + + kh_val (hash, k) = xstrdup (value); + + return 0; +} + +/* Insert a string key and the corresponding string value. + * Note: If the key exists, the value is not replaced. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +static int +ins_ss32 (khash_t (ss32) * hash, const char *key, const char *value) +{ + khint_t k; + int ret; + char *dupkey = NULL; + + if (!hash) + return -1; + + dupkey = xstrdup (key); + k = kh_put (ss32, hash, dupkey, &ret); + /* operation failed, or key exists */ + if (ret == -1 || ret == 0) { + free (dupkey); + return -1; + } + + kh_val (hash, k) = xstrdup (value); + + return 0; +} + +/* Insert an int key and an int value + * Note: If the key exists, its value is replaced by the given value. + * + * On error, -1 is returned. + * On success 0 is returned */ +static int +ins_ii32 (khash_t (ii32) * hash, int key, int value) +{ + khint_t k; + int ret; + + if (!hash) + return -1; + + k = kh_put (ii32, hash, key, &ret); + if (ret == -1) + return -1; + + kh_val (hash, k) = value; + + return 0; +} + +/* Insert an int key and a uint64_t value + * Note: If the key exists, its value is replaced by the given value. + * + * On error, -1 is returned. + * On success 0 is returned */ +static int +ins_iu64 (khash_t (iu64) * hash, int key, uint64_t value) +{ + khint_t k; + int ret; + + if (!hash) + return -1; + + k = kh_put (iu64, hash, key, &ret); + if (ret == -1) + return -1; + + kh_val (hash, k) = value; + + return 0; +} + +/* Increase an int value given an int key. + * Note: If the key exists, its value is increased by the given inc. + * + * On error, -1 is returned. + * On success the inserted value is returned */ +static int +inc_ii32 (khash_t (ii32) * hash, int key, int inc) +{ + khint_t k; + int ret, value = inc; + + if (!hash) + return -1; + + k = kh_get (ii32, hash, key); + /* key found, increment current value by the given `inc` */ + if (k != kh_end (hash)) + value = kh_val (hash, k) + inc; + + k = kh_put (ii32, hash, key, &ret); + if (ret == -1) + return -1; + + kh_val (hash, k) = value; + + return value; +} + +/* Increase a uint64_t value given a string key. + * + * On error, -1 is returned. + * On success 0 is returned */ +static int +inc_su64 (khash_t (su64) * hash, const char *key, uint64_t inc) +{ + khint_t k; + int ret; + uint64_t value = inc; + + if (!hash) + return -1; + + k = kh_get (su64, hash, key); + /* key not found, set new value to the given `inc` */ + if (k == kh_end (hash)) { + k = kh_put (su64, hash, key, &ret); + /* operation failed */ + if (ret == -1) + return -1; + } else { + value = kh_val (hash, k) + inc; + } + + kh_val (hash, k) = value; + + return 0; +} + +/* Increase a uint64_t value given an int key. + * Note: If the key exists, its value is increased by the given inc. + * + * On error, -1 is returned. + * On success 0 is returned */ +static int +inc_iu64 (khash_t (iu64) * hash, int key, uint64_t inc) +{ + khint_t k; + int ret; + uint64_t value = inc; + + if (!hash) + return -1; + + k = kh_get (iu64, hash, key); + /* key found, increment current value by the given `inc` */ + if (k != kh_end (hash)) + value = (uint64_t) kh_val (hash, k) + inc; + + k = kh_put (iu64, hash, key, &ret); + if (ret == -1) + return -1; + + kh_val (hash, k) = value; + + return 0; +} + +/* Insert a string key and auto increment int value. + * + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +static int +ins_si32_ai (khash_t (si32) * hash, const char *key) +{ + int size = 0, value = 0; + + if (!hash) + return -1; + + size = kh_size (hash); + /* the auto increment value starts at SIZE (hash table) + 1 */ + value = size > 0 ? size + 1 : 1; + + if (ins_si32 (hash, key, value) == -1) + return -1; + + return value; +} + +/* Compare if the given needle is in the haystack + * + * if equal, 1 is returned, else 0 */ +static int +find_int_key_in_list (void *data, void *needle) +{ + return (*(int *) data) == (*(int *) needle) ? 1 : 0; +} + +/* Insert an int key and the corresponding GSLList (Single linked-list) value. + * Note: If the key exists within the list, the value is not appended. + * + * On error, -1 is returned. + * On success 0 is returned */ +static int +ins_igsl (khash_t (igsl) * hash, int key, int value) +{ + khint_t k; + GSLList *list, *match; + int ret; + + if (!hash) + return -1; + + k = kh_get (igsl, hash, key); + /* key found, check if key exists within the list */ + if (k != kh_end (hash) && (list = kh_val (hash, k))) { + if ((match = list_find (list, find_int_key_in_list, &value))) + return 0; + list = list_insert_prepend (list, int2ptr (value)); + } else { + list = list_create (int2ptr (value)); + } + + k = kh_put (igsl, hash, key, &ret); + if (ret == -1) + return -1; + + kh_val (hash, k) = list; + + return 0; +} + +/* Get the int value of a given string key. + * + * On error, -1 is returned. + * On success the int value for the given key is returned */ +static int +get_si32 (khash_t (si32) * hash, const char *key) +{ + khint_t k; + + if (!hash) + return -1; + + k = kh_get (si32, hash, key); + /* key found, return current value */ + if (k != kh_end (hash)) + return kh_val (hash, k); + + return -1; +} + +/* Get the string value of a given int key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +static char * +get_is32 (khash_t (is32) * hash, int key) +{ + khint_t k; + char *value = NULL; + + if (!hash) + return NULL; + + k = kh_get (is32, hash, key); + /* key found, return current value */ + if (k != kh_end (hash) && (value = kh_val (hash, k))) + return xstrdup (value); + + return NULL; +} + +/* Get the string value of a given string key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +static char * +get_ss32 (khash_t (ss32) * hash, const char *key) +{ + khint_t k; + char *value = NULL; + + if (!hash) + return NULL; + + k = kh_get (ss32, hash, key); + /* key found, return current value */ + if (k != kh_end (hash) && (value = kh_val (hash, k))) + return xstrdup (value); + + return NULL; +} + +/* Get the int value of a given int key. + * + * If key is not found, 0 is returned. + * On error, -1 is returned. + * On success the int value for the given key is returned */ +static int +get_ii32 (khash_t (ii32) * hash, int key) +{ + khint_t k; + int value = 0; + + if (!hash) + return -1; + + k = kh_get (ii32, hash, key); + /* key found, return current value */ + if (k != kh_end (hash) && (value = kh_val (hash, k))) + return value; + + return 0; +} + +/* Get the uint64_t value of a given int key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +static uint64_t +get_iu64 (khash_t (iu64) * hash, int key) +{ + khint_t k; + uint64_t value = 0; + + if (!hash) + return 0; + + k = kh_get (iu64, hash, key); + /* key found, return current value */ + if (k != kh_end (hash) && (value = kh_val (hash, k))) + return value; + + return 0; +} + +/* Get the GSLList value of a given int key. + * + * On error, or if key is not found, NULL is returned. + * On success the GSLList value for the given key is returned */ +static GSLList * +get_igsl (khash_t (igsl) * hash, int key) +{ + khint_t k; + GSLList *list = NULL; + + if (!hash) + return NULL; + + k = kh_get (igsl, hash, key); + /* key found, return current value */ + if (k != kh_end (hash) && (list = kh_val (hash, k))) + return list; + + return NULL; +} + +/* Get the uint64_t value of a given string key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +static uint64_t +get_su64 (khash_t (su64) * hash, const char *key) +{ + khint_t k; + uint64_t val = 0; + + if (!hash) + return 0; + + k = kh_get (su64, hash, key); + /* key found, return current value */ + if (k != kh_end (hash) && (val = kh_val (hash, k))) + return val; + + return 0; +} + +/* Iterate over all the key/value pairs for the given hash structure + * and set the maximum and minimum values found on an integer key and + * integer value. + * + * Note: This are expensive calls since it has to iterate over all + * key-value pairs + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +static void +get_ii32_min_max (khash_t (ii32) * hash, int *min, int *max) +{ + khint_t k; + int curvalue = 0, i; + + for (i = 0, k = kh_begin (hash); k != kh_end (hash); ++k) { + if (!kh_exist (hash, k)) + continue; + + curvalue = kh_value (hash, k); + if (i++ == 0) + *min = curvalue; + if (curvalue > *max) + *max = curvalue; + if (curvalue < *min) + *min = curvalue; + } +} + +/* Iterate over all the key/value pairs for the given hash structure + * and set the maximum and minimum values found on an integer key and + * a uint64_t value. + * + * Note: This are expensive calls since it has to iterate over all + * key-value pairs + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +static void +get_iu64_min_max (khash_t (iu64) * hash, uint64_t * min, uint64_t * max) +{ + khint_t k; + uint64_t curvalue = 0; + int i; + + for (i = 0, k = kh_begin (hash); k != kh_end (hash); ++k) { + if (!kh_exist (hash, k)) + continue; + + curvalue = kh_value (hash, k); + if (i++ == 0) + *min = curvalue; + if (curvalue > *max) + *max = curvalue; + if (curvalue < *min) + *min = curvalue; + } +} + +/* Insert a unique visitor key string (IP/DATE/UA), mapped to an auto + * incremented value. + * + * If the given key exists, its value is returned. + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +int +ht_insert_unique_key (const char *key) +{ + int value = -1; + khash_t (si32) * hash = ht_unique_keys; + + if (!hash) + return -1; + + if ((value = get_si32 (hash, key)) != -1) + return value; + + return ins_si32_ai (hash, key); +} + +/* Insert a user agent key string, mapped to an auto incremented value. + * + * If the given key exists, its value is returned. + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +int +ht_insert_agent_key (const char *key) +{ + int value = -1; + khash_t (si32) * hash = ht_agent_keys; + + if (!hash) + return -1; + + if ((value = get_si32 (hash, key)) != -1) + return value; + + return ins_si32_ai (hash, key); +} + +/* Insert a user agent int key, mapped to a user agent string value. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_agent_value (int key, const char *value) +{ + khash_t (is32) * hash = ht_agent_vals; + + if (!hash) + return -1; + + return ins_is32 (hash, key, value); +} + +/* Insert a keymap string key. + * + * If the given key exists, its value is returned. + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +int +ht_insert_keymap (GModule module, const char *key) +{ + int value = -1; + khash_t (si32) * hash = get_hash (module, MTRC_KEYMAP); + + if (!hash) + return -1; + + if ((value = get_si32 (hash, key)) != -1) + return value; + + return ins_si32_ai (hash, key); +} + +/* Insert a datamap int key and string value. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_datamap (GModule module, int key, const char *value) +{ + khash_t (is32) * hash = get_hash (module, MTRC_DATAMAP); + + if (!hash) + return -1; + + return ins_is32 (hash, key, value); +} + +/* Insert a rootmap int key from the keymap store mapped to its string value. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_rootmap (GModule module, int key, const char *value) +{ + khash_t (is32) * hash = get_hash (module, MTRC_ROOTMAP); + + if (!hash) + return -1; + + return ins_is32 (hash, key, value); +} + +/* Insert a uniqmap string key. + * + * If the given key exists, 0 is returned. + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +int +ht_insert_uniqmap (GModule module, const char *key) +{ + int value = -1; + khash_t (si32) * hash = get_hash (module, MTRC_UNIQMAP); + + if (!hash) + return -1; + + if ((value = get_si32 (hash, key)) != -1) + return 0; + + return ins_si32_ai (hash, key); +} + +/* Insert a data int key mapped to the corresponding int root key. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_root (GModule module, int key, int value) +{ + khash_t (ii32) * hash = get_hash (module, MTRC_ROOT); + + if (!hash) + return -1; + + return ins_ii32 (hash, key, value); +} + +/* Insert meta data counters from a string key. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_meta_data (GModule module, const char *key, uint64_t value) +{ + khash_t (su64) * hash = get_hash (module, MTRC_METADATA); + + if (!hash) + return -1; + + return inc_su64 (hash, key, value); +} + +/* Increases hits counter from an int key. + * + * On error, -1 is returned. + * On success the inserted value is returned */ +int +ht_insert_hits (GModule module, int key, int inc) +{ + khash_t (ii32) * hash = get_hash (module, MTRC_HITS); + + if (!hash) + return -1; + + return inc_ii32 (hash, key, inc); +} + +/* Increases visitors counter from an int key. + * + * On error, -1 is returned. + * On success the inserted value is returned */ +int +ht_insert_visitor (GModule module, int key, int inc) +{ + khash_t (ii32) * hash = get_hash (module, MTRC_VISITORS); + + if (!hash) + return -1; + + return inc_ii32 (hash, key, inc); +} + +/* Increases bandwidth counter from an int key. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_bw (GModule module, int key, uint64_t inc) +{ + khash_t (iu64) * hash = get_hash (module, MTRC_BW); + + if (!hash) + return -1; + + return inc_iu64 (hash, key, inc); +} + +/* Increases cumulative time served counter from an int key. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_cumts (GModule module, int key, uint64_t inc) +{ + khash_t (iu64) * hash = get_hash (module, MTRC_CUMTS); + + if (!hash) + return -1; + + return inc_iu64 (hash, key, inc); +} + +/* Insert the maximum time served counter from an int key. + * Note: it compares the current value with the given value. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_maxts (GModule module, int key, uint64_t value) +{ + uint64_t curvalue = 0; + khash_t (iu64) * hash = get_hash (module, MTRC_MAXTS); + + if (!hash) + return -1; + + if ((curvalue = get_iu64 (hash, key)) < value) + ins_iu64 (hash, key, value); + + return 0; +} + +/* Insert a method given an int key and string value. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +int +ht_insert_method (GModule module, int key, const char *value) +{ + khash_t (is32) * hash = get_hash (module, MTRC_METHODS); + + if (!hash) + return -1; + + return ins_is32 (hash, key, value); +} + +/* Insert a protocol given an int key and string value. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +int +ht_insert_protocol (GModule module, int key, const char *value) +{ + khash_t (is32) * hash = get_hash (module, MTRC_PROTOCOLS); + + if (!hash) + return -1; + + return ins_is32 (hash, key, value); +} + +/* Insert an agent for a hostname given an int key and int value. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_agent (GModule module, int key, int value) +{ + khash_t (igsl) * hash = get_hash (module, MTRC_AGENTS); + + if (!hash) + return -1; + + return ins_igsl (hash, key, value); +} + +/* Insert an IP hostname mapped to the corresponding hostname. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +int +ht_insert_hostname (const char *ip, const char *host) +{ + khash_t (ss32) * hash = ht_hostnames; + + if (!hash) + return -1; + + return ins_ss32 (hash, ip, host); +} + +/* Get the number of elements in a datamap. + * + * Return -1 if the operation fails, else number of elements. */ +uint32_t +ht_get_size_datamap (GModule module) +{ + khash_t (is32) * hash = get_hash (module, MTRC_DATAMAP); + + if (!hash) + return 0; + + return kh_size (hash); +} + +/* Get the number of elements in a uniqmap. + * + * On error, 0 is returned. + * On success the number of elements in MTRC_UNIQMAP is returned */ +uint32_t +ht_get_size_uniqmap (GModule module) +{ + khash_t (is32) * hash = get_hash (module, MTRC_UNIQMAP); + + if (!hash) + return 0; + + return kh_size (hash); +} + +/* Get the string data value of a given int key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +char * +ht_get_datamap (GModule module, int key) +{ + khash_t (is32) * hash = get_hash (module, MTRC_DATAMAP); + + if (!hash) + return NULL; + + return get_is32 (hash, key); +} + +/* Get the int value from MTRC_KEYMAP given a string key. + * + * On error, -1 is returned. + * On success the int value for the given key is returned */ +int +ht_get_keymap (GModule module, const char *key) +{ + khash_t (si32) * hash = get_hash (module, MTRC_KEYMAP); + + if (!hash) + return -1; + + return get_si32 (hash, key); +} + +/* Get the int value from MTRC_UNIQMAP given a string key. + * + * On error, -1 is returned. + * On success the int value for the given key is returned */ +int +ht_get_uniqmap (GModule module, const char *key) +{ + khash_t (si32) * hash = get_hash (module, MTRC_UNIQMAP); + + if (!hash) + return -1; + + return get_si32 (hash, key); +} + +/* Get the string root from MTRC_ROOTMAP given an int data key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +char * +ht_get_root (GModule module, int key) +{ + int root_key = 0; + khash_t (ii32) * hashroot = get_hash (module, MTRC_ROOT); + khash_t (is32) * hashrootmap = get_hash (module, MTRC_ROOTMAP); + + if (!hashroot || !hashrootmap) + return NULL; + + /* not found */ + if ((root_key = get_ii32 (hashroot, key)) == 0) + return NULL; + + return get_is32 (hashrootmap, root_key); +} + +/* Get the int visitors value from MTRC_VISITORS given an int key. + * + * If key is not found, 0 is returned. + * On error, -1 is returned. + * On success the int value for the given key is returned */ +int +ht_get_visitors (GModule module, int key) +{ + khash_t (ii32) * hash = get_hash (module, MTRC_VISITORS); + + if (!hash) + return -1; + + return get_ii32 (hash, key); +} + +/* Get the int visitors value from MTRC_VISITORS given an int key. + * + * If key is not found, 0 is returned. + * On error, -1 is returned. + * On success the int value for the given key is returned */ +int +ht_get_hits (GModule module, int key) +{ + khash_t (ii32) * hash = get_hash (module, MTRC_HITS); + + if (!hash) + return -1; + + return get_ii32 (hash, key); +} + +/* Get the uint64_t value from MTRC_BW given an int key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +uint64_t +ht_get_bw (GModule module, int key) +{ + khash_t (iu64) * hash = get_hash (module, MTRC_BW); + + if (!hash) + return 0; + + return get_iu64 (hash, key); +} + +/* Get the uint64_t value from MTRC_CUMTS given an int key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +uint64_t +ht_get_cumts (GModule module, int key) +{ + khash_t (iu64) * hash = get_hash (module, MTRC_CUMTS); + + if (!hash) + return 0; + + return get_iu64 (hash, key); +} + +/* Get the uint64_t value from MTRC_MAXTS given an int key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +uint64_t +ht_get_maxts (GModule module, int key) +{ + khash_t (iu64) * hash = get_hash (module, MTRC_MAXTS); + + if (!hash) + return 0; + + return get_iu64 (hash, key); +} + +/* Get the string value from MTRC_METHODS given an int key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +char * +ht_get_method (GModule module, int key) +{ + khash_t (is32) * hash = get_hash (module, MTRC_METHODS); + + if (!hash) + return NULL; + + return get_is32 (hash, key); +} + +/* Get the string value from MTRC_PROTOCOLS given an int key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +char * +ht_get_protocol (GModule module, int key) +{ + khash_t (is32) * hash = get_hash (module, MTRC_PROTOCOLS); + + if (!hash) + return NULL; + + return get_is32 (hash, key); +} + +/* Get the string value from ht_hostnames given a string key (IP). + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +char * +ht_get_hostname (const char *host) +{ + khash_t (ss32) * hash = ht_hostnames; + + if (!hash) + return NULL; + + return get_ss32 (hash, host); +} + +/* Get the string value from ht_agent_vals (user agent) given an int key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +char * +ht_get_host_agent_val (int key) +{ + khash_t (is32) * hash = ht_agent_vals; + + if (!hash) + return NULL; + + return get_is32 (hash, key); +} + +/* Get the list value from MTRC_AGENTS given an int key. + * + * On error, or if key is not found, NULL is returned. + * On success the GSLList value for the given key is returned */ +GSLList * +ht_get_host_agent_list (GModule module, int key) +{ + khash_t (igsl) * hash = get_hash (module, MTRC_AGENTS); + GSLList *list; + + if ((list = get_igsl (hash, key))) + return list; + return NULL; +} + +/* Get the meta data uint64_t from MTRC_METADATA given a string key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +uint64_t +ht_get_meta_data (GModule module, const char *key) +{ + khash_t (su64) * hash = get_hash (module, MTRC_METADATA); + + return get_su64 (hash, key); +} + +/* Set the maximum and minimum values found on an integer key and + * integer value found on the MTRC_VISITORS hash structure. + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +void +ht_get_hits_min_max (GModule module, int *min, int *max) +{ + khash_t (ii32) * hash = get_hash (module, MTRC_HITS); + + if (!hash) + return; + + get_ii32_min_max (hash, min, max); +} + +/* Set the maximum and minimum values found on an integer key and + * integer value found on the MTRC_VISITORS hash structure. + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +void +ht_get_visitors_min_max (GModule module, int *min, int *max) +{ + khash_t (ii32) * hash = get_hash (module, MTRC_VISITORS); + + if (!hash) + return; + + get_ii32_min_max (hash, min, max); +} + +/* Set the maximum and minimum values found on an integer key and + * a uint64_t value found on the MTRC_BW hash structure. + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +void +ht_get_bw_min_max (GModule module, uint64_t * min, uint64_t * max) +{ + khash_t (iu64) * hash = get_hash (module, MTRC_BW); + + if (!hash) + return; + + get_iu64_min_max (hash, min, max); +} + +/* Set the maximum and minimum values found on an integer key and + * a uint64_t value found on the MTRC_CUMTS hash structure. + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +void +ht_get_cumts_min_max (GModule module, uint64_t * min, uint64_t * max) +{ + khash_t (iu64) * hash = get_hash (module, MTRC_CUMTS); + + if (!hash) + return; + + get_iu64_min_max (hash, min, max); +} + +/* Set the maximum and minimum values found on an integer key and + * a uint64_t value found on the MTRC_MAXTS hash structure. + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +void +ht_get_maxts_min_max (GModule module, uint64_t * min, uint64_t * max) +{ + khash_t (iu64) * hash = get_hash (module, MTRC_MAXTS); + + if (!hash) + return; + + get_iu64_min_max (hash, min, max); +} + +/* A wrapper to initialize a raw data structure. + * + * On success a GRawData structure is returned. */ +static GRawData * +init_new_raw_data (GModule module, uint32_t ht_size) +{ + GRawData *raw_data; + + raw_data = new_grawdata (); + raw_data->idx = 0; + raw_data->module = module; + raw_data->size = ht_size; + raw_data->items = new_grawdata_item (ht_size); + + return raw_data; +} + +/* Store the key/value pairs from a hash table into raw_data and sorts + * the hits (numeric) value. + * + * On error, NULL is returned. + * On success the GRawData sorted is returned */ +static GRawData * +parse_raw_num_data (GModule module) +{ + GRawData *raw_data; + khiter_t key; + uint32_t ht_size = 0; + + khash_t (ii32) * hash = get_hash (module, MTRC_HITS); + if (!hash) + return NULL; + + ht_size = kh_size (hash); + raw_data = init_new_raw_data (module, ht_size); + raw_data->type = INTEGER; + for (key = kh_begin (hash); key != kh_end (hash); ++key) { + if (!kh_exist (hash, key)) + continue; + + raw_data->items[raw_data->idx].key = kh_key (hash, key); + raw_data->items[raw_data->idx].value.ivalue = kh_value (hash, key); + raw_data->idx++; + } + + sort_raw_num_data (raw_data, raw_data->idx); + + return raw_data; +} + +/* Store the key/value pairs from a hash table into raw_data and sorts + * the data (string) value. + * + * On error, NULL is returned. + * On success the GRawData sorted is returned */ +static GRawData * +parse_raw_str_data (GModule module) +{ + GRawData *raw_data; + khiter_t key; + uint32_t ht_size = 0; + + khash_t (is32) * hash = get_hash (module, MTRC_DATAMAP); + if (!hash) + return NULL; + + ht_size = kh_size (hash); + raw_data = init_new_raw_data (module, ht_size); + raw_data->type = STRING; + for (key = kh_begin (hash); key != kh_end (hash); ++key) { + if (!kh_exist (hash, key)) + continue; + + raw_data->items[raw_data->idx].key = kh_key (hash, key); + raw_data->items[raw_data->idx].value.svalue = kh_value (hash, key); + raw_data->idx++; + } + + sort_raw_str_data (raw_data, raw_data->idx); + + return raw_data; +} + +/* Entry point to load the raw data from the data store into our + * GRawData structure. + * + * On error, NULL is returned. + * On success the GRawData sorted is returned */ +GRawData * +parse_raw_data (GModule module) +{ + GRawData *raw_data; + + switch (module) { + case VISITORS: + raw_data = parse_raw_str_data (module); + break; + default: + raw_data = parse_raw_num_data (module); + } + return raw_data; +} diff --git a/src/goaccess++/src/gkhash.h b/src/goaccess++/src/gkhash.h new file mode 100644 index 0000000..38e36d2 --- /dev/null +++ b/src/goaccess++/src/gkhash.h @@ -0,0 +1,250 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef GKHASH_H_INCLUDED +#define GKHASH_H_INCLUDED + +#include <stdint.h> + +#include "gslist.h" +#include "gstorage.h" +#include "khash.h" +#include "parser.h" + +/* int keys, int payload */ +KHASH_MAP_INIT_INT (ii32, int); +/* int keys, string payload */ +KHASH_MAP_INIT_INT (is32, char *); +/* int keys, uint64_t payload */ +KHASH_MAP_INIT_INT (iu64, uint64_t); +/* string keys, int payload */ +KHASH_MAP_INIT_STR (si32, int); +/* string keys, string payload */ +KHASH_MAP_INIT_STR (ss32, char *); +/* int keys, GSLList payload */ +KHASH_MAP_INIT_INT (igsl, GSLList *); +/* string keys, uint64_t payload */ +KHASH_MAP_INIT_STR (su64, uint64_t); + +/* Metrics Storage */ + +/* Maps keys (string) to numeric values (integer). + * This mitigates the issue of having multiple stores + * with the same string key, and therefore, avoids unnecessary + * memory usage (in most cases). + * + * HEAD|/index.php -> 1 + * POST|/index.php -> 2 + * Windows XP -> 3 + * Ubuntu 10.10 -> 4 + * GET|Ubuntu 10.10 -> 5 + * Linux -> 6 + * 26/Dec/2014 -> 7 + * Windows -> 8 + */ +/*khash_t(si32) MTRC_KEYMAP */ + +/* Maps integer keys of root elements from the keymap hash + * to actual string values. + * + * 6 -> Linux + * 8 -> Windows + */ +/*khash_t(is32) MTRC_ROOTMAP */ + +/* Maps integer keys of data elements from the keymap hash + * to actual string values. + * + * 1 -> /index.php + * 2 -> /index.php + * 3 -> Windows XP + * 4 -> Ubuntu 10.10 + * 5 -> Ubuntu 10.10 + * 7 -> 26/Dec/2014 + */ +/*khash_t(is32) MTRC_DATAMAP */ + +/* Maps a string key made from the integer key of the + * IP/date/UA and the integer key from the data field of + * each module to numeric autoincremented values. e.g., "1|4" + * => 1 -> unique visitor key (concatenated) with 4 -> data + * key. + * + * "1|4" -> 1 + * "1|5" -> 2 + */ +/*khash_t(si32) MTRC_UNIQMAP */ + +/* Maps integer key from the keymap hash to the number of + * hits. + * + * 1 -> 10934 + * 2 -> 3231 + * 3 -> 500 + * 4 -> 201 + * 5 -> 206 + */ +/*khash_t(ii32) MTRC_HITS */ + +/* Maps numeric keys made from the uniqmap store to autoincremented values + * (counter). + * 10 -> 100 + * 40 -> 56 + */ +/*khash_t(ii32) MTRC_VISITORS */ + +/* Maps numeric data keys to bandwidth (in bytes). + * 1 -> 1024 + * 2 -> 2048 + */ +/*khash_t(iu64) MTRC_BW */ + +/* Maps numeric data keys to cumulative time served (in usecs/msecs). + * 1 -> 187 + * 2 -> 208 + */ +/*khash_t(iu64) MTRC_CUMTS */ + +/* Maps numeric data keys to max time served (in usecs/msecs). + * 1 -> 1287 + * 2 -> 2308 + */ +/*khash_t(iu64) MTRC_MAXTS */ + +/* Maps numeric data keys to string values. + * 1 -> GET + * 2 -> POST + */ +/*khash_t(is32) MTRC_METHODS */ + +/* Maps numeric data keys to string values. + * 1 -> HTTP/1.1 + * 2 -> HTTP/1.0 + */ +/*khash_t(is32) MTRC_PROTOCOLS */ + +/* Maps numeric unique user-agent keys to the + * corresponding numeric value. + * 1 -> 3 + * 2 -> 4 + */ +/*khash_t(igsl) MTRC_AGENTS */ + +/* Enumerated Storage Metrics */ +typedef enum GSMetricType_ +{ + /* int key - int val */ + MTRC_TYPE_II32, + /* int key - string val */ + MTRC_TYPE_IS32, + /* int key - uint64_t val */ + MTRC_TYPE_IU64, + /* string key - int val */ + MTRC_TYPE_SI32, + /* string key - string val */ + MTRC_TYPE_SS32, + /* int key - GSLList val */ + MTRC_TYPE_IGSL, + /* string key - uint64_t val */ + MTRC_TYPE_SU64, +} GSMetricType; + +typedef struct GKHashMetric_ +{ + GSMetric metric; + GSMetricType type; + union + { + khash_t (ii32) * ii32; + khash_t (is32) * is32; + khash_t (iu64) * iu64; + khash_t (si32) * si32; + khash_t (ss32) * ss32; + khash_t (igsl) * igsl; + khash_t (su64) * su64; + }; +} GKHashMetric; + +/* Data Storage per module */ +typedef struct GKHashStorage_ +{ + GModule module; + GKHashMetric metrics[GSMTRC_TOTAL]; +} GKHashStorage; + +void free_storage (void); +void init_storage (void); + +int ht_insert_agent_key (const char *key); +int ht_insert_agent_value (int key, const char *value); +int ht_insert_unique_key (const char *key); + +int ht_insert_agent (GModule module, int key, int value); +int ht_insert_bw (GModule module, int key, uint64_t inc); +int ht_insert_cumts (GModule module, int key, uint64_t inc); +int ht_insert_datamap (GModule module, int key, const char *value); +int ht_insert_hits (GModule module, int key, int inc); +int ht_insert_hostname (const char *ip, const char *host); +int ht_insert_keymap (GModule module, const char *key); +int ht_insert_maxts (GModule module, int key, uint64_t value); +int ht_insert_meta_data (GModule module, const char *key, uint64_t value); +int ht_insert_method (GModule module, int key, const char *value); +int ht_insert_protocol (GModule module, int key, const char *value); +int ht_insert_root (GModule module, int key, int value); +int ht_insert_rootmap (GModule module, int key, const char *value); +int ht_insert_uniqmap (GModule module, const char *key); +int ht_insert_visitor (GModule module, int key, int inc); + +uint32_t ht_get_size_datamap (GModule module); +uint32_t ht_get_size_uniqmap (GModule module); + +char *ht_get_datamap (GModule module, int key); +char *ht_get_host_agent_val (int key); +char *ht_get_hostname (const char *host); +char *ht_get_method (GModule module, int key); +char *ht_get_protocol (GModule module, int key); +char *ht_get_root (GModule module, int key); +GSLList *ht_get_host_agent_list (GModule module, int key); +int ht_get_hits (GModule module, int key); +int ht_get_keymap (GModule module, const char *key); +int ht_get_uniqmap (GModule module, const char *key); +int ht_get_visitors (GModule module, int key); +uint64_t ht_get_bw (GModule module, int key); +uint64_t ht_get_cumts (GModule module, int key); +uint64_t ht_get_maxts (GModule module, int key); +uint64_t ht_get_meta_data (GModule module, const char *key); +void ht_get_bw_min_max (GModule module, uint64_t * min, uint64_t * max); +void ht_get_cumts_min_max (GModule module, uint64_t * min, uint64_t * max); +void ht_get_hits_min_max (GModule module, int *min, int *max); +void ht_get_maxts_min_max (GModule module, uint64_t * min, uint64_t * max); +void ht_get_visitors_min_max (GModule module, int *min, int *max); + +GRawData *parse_raw_data (GModule module); + +#endif // for #ifndef GKHASH_H diff --git a/src/goaccess++/src/gkhash.o b/src/goaccess++/src/gkhash.o new file mode 100644 index 0000000000000000000000000000000000000000..b6609c69a0c1672b979fd33770adde595e560164 GIT binary patch literal 38520 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/gmenu.c b/src/goaccess++/src/gmenu.c new file mode 100644 index 0000000..80eed29 --- /dev/null +++ b/src/goaccess++/src/gmenu.c @@ -0,0 +1,150 @@ +/** + * gmenu.c -- goaccess menus + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "gmenu.h" + +#include "xmalloc.h" +#include "ui.h" + +/* Allocate memory for a new GMenu instance. + * + * On success, the newly allocated GMenu is returned . */ +GMenu * +new_gmenu (WINDOW * parent, int h, int w, int y, int x) +{ + GMenu *menu = xmalloc (sizeof (GMenu)); + + memset (menu, 0, sizeof *menu); + menu->count = 0; + menu->idx = 0; + menu->multiple = 0; + menu->selectable = 0; + menu->start = 0; + menu->status = 0; + + menu->h = h; + menu->w = w; + menu->x = x; + menu->y = y; + menu->win = derwin (parent, menu->h, menu->w, menu->y, menu->x); + + return menu; +} + +/* Render actual menu item */ +static void +draw_menu_item (GMenu * menu, char *s, int x, int y, int w, int checked, + GColors * (*func) (void)) +{ + char check, *lbl = NULL; + + if (menu->selectable) { + check = checked ? 'x' : ' '; + lbl = xmalloc (snprintf (NULL, 0, "[%c] %s", check, s) + 1); + sprintf (lbl, "[%c] %s", check, s); + draw_header (menu->win, lbl, "%s", y, x, w, (*func)); + free (lbl); + } else { + draw_header (menu->win, s, "%s", y, x, w, (*func)); + } +} + +/* Displays a menu to its associated window. + * + * On error, 1 is returned. + * On success, the newly created menu is added to the window and 0 is + * returned. */ +int +post_gmenu (GMenu * menu) +{ + GColors *(*func) (void); + int i = 0, j = 0, start, end, height, total, checked = 0; + + if (menu == NULL) + return 1; + + werase (menu->win); + + height = menu->h; + start = menu->start; + total = menu->size; + end = height < total ? start + height : total; + + for (i = start; i < end; i++, j++) { + func = i == menu->idx ? color_selected : color_default; + checked = menu->items[i].checked ? 1 : 0; + draw_menu_item (menu, menu->items[i].name, 0, j, menu->w, checked, func); + } + wrefresh (menu->win); + + return 0; +} + +/* Main work horse of the menu system processing input events */ +void +gmenu_driver (GMenu * menu, int c) +{ + int i; + + switch (c) { + case REQ_DOWN: + if (menu->idx >= menu->size - 1) + break; + ++menu->idx; + if (menu->idx >= menu->h && menu->idx >= menu->start + menu->h) + menu->start++; + post_gmenu (menu); + break; + case REQ_UP: + if (menu->idx <= 0) + break; + --menu->idx; + if (menu->idx < menu->start) + --menu->start; + post_gmenu (menu); + break; + case REQ_SEL: + if (!menu->multiple) { + for (i = 0; i < menu->size; i++) + menu->items[i].checked = 0; + } + if (menu->items[menu->idx].checked) + menu->items[menu->idx].checked = 0; + else + menu->items[menu->idx].checked = 1; + post_gmenu (menu); + break; + } +} diff --git a/src/goaccess++/src/gmenu.h b/src/goaccess++/src/gmenu.h new file mode 100644 index 0000000..0ab7383 --- /dev/null +++ b/src/goaccess++/src/gmenu.h @@ -0,0 +1,87 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#ifdef HAVE_NCURSESW_NCURSES_H +#include <ncursesw/ncurses.h> +#elif HAVE_NCURSES_NCURSES_H +#include <ncurses/ncurses.h> +#elif HAVE_NCURSES_H +#include <ncurses.h> +#elif HAVE_CURSES_H +#include <curses.h> +#endif + +#ifndef GMENU_H_INCLUDED +#define GMENU_H_INCLUDED + +enum ACTION +{ + REQ_DOWN, + REQ_UP, + REQ_SEL +}; + +typedef struct GMenu_ GMenu; +typedef struct GItem_ GItem; + +/* Menu Item */ +struct GItem_ +{ + char *name; + int checked; +}; + +/* Menu Panel */ +struct GMenu_ +{ + WINDOW *win; + + int count; + int size; + int idx; + int start; + int h; + int w; + int x; + int y; + unsigned short multiple; + unsigned short selectable; + unsigned short status; + GItem *items; +}; + +GMenu *new_gmenu (WINDOW * parent, int h, int w, int y, int x); +int post_gmenu (GMenu * menu); +void gmenu_driver (GMenu * menu, int c); + +#endif diff --git a/src/goaccess++/src/gmenu.o b/src/goaccess++/src/gmenu.o new file mode 100644 index 0000000000000000000000000000000000000000..c8313d3cc974f0de5dbc9c69d80e9a14d6352e5d GIT binary patch literal 3568 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/goaccess.c b/src/goaccess++/src/goaccess.c new file mode 100644 index 0000000..60d610f --- /dev/null +++ b/src/goaccess++/src/goaccess.c @@ -0,0 +1,1537 @@ +/** + * goaccess.c -- main log analyzer + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#define _LARGEFILE_SOURCE +#define _LARGEFILE64_SOURCE +#define _FILE_OFFSET_BITS 64 + +#include <assert.h> +#include <ctype.h> +#include <errno.h> + +#include <locale.h> + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#include <fcntl.h> +#include <pthread.h> +#include <signal.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <unistd.h> + +#ifdef HAVE_LIBTOKYOCABINET +#include "tcabdb.h" +#else +#include "gkhash.h" +#endif + +#ifdef HAVE_GEOLOCATION +#include "geoip1.h" +#endif + +#include "browsers.h" +#include "csv.h" +#include "error.h" +#include "gdashboard.h" +#include "gdns.h" +#include "gholder.h" +#include "goaccess.h" +#include "gwsocket.h" +#include "json.h" +#include "options.h" +#include "output.h" +#include "util.h" +#include "websocket.h" +#include "xmalloc.h" + +GConf conf = { + .append_method = 1, + .append_protocol = 1, + .hl_header = 1, + .num_tests = 10, +}; + +/* Loading/Spinner */ +GSpinner *parsing_spinner; +/* active reverse dns flag */ +int active_gdns = 0; + +/* WebSocket server - writer and reader threads */ +static GWSWriter *gwswriter; +static GWSReader *gwsreader; +/* Dashboard data structure */ +static GDash *dash; +/* Data holder structure */ +static GHolder *holder; +/* Log line properties structure */ +static GLog *glog; +/* Old signal mask */ +static sigset_t oldset; +/* Curses windows */ +static WINDOW *header_win, *main_win; + +static int main_win_height = 0; + +/* *INDENT-OFF* */ +static GScroll gscroll = { + { + {0, 0}, /* visitors {scroll, offset} */ + {0, 0}, /* requests {scroll, offset} */ + {0, 0}, /* req static {scroll, offset} */ + {0, 0}, /* not found {scroll, offset} */ + {0, 0}, /* hosts {scroll, offset} */ + {0, 0}, /* os {scroll, offset} */ + {0, 0}, /* browsers {scroll, offset} */ + {0, 0}, /* visit times {scroll, offset} */ + {0, 0}, /* referrers {scroll, offset} */ + {0, 0}, /* ref sites {scroll, offset} */ + {0, 0}, /* keywords {scroll, offset} */ +#ifdef HAVE_GEOLOCATION + {0, 0}, /* geolocation {scroll, offset} */ +#endif + {0, 0}, /* status {scroll, offset} */ + }, + 0, /* current module */ + 0, /* main dashboard scroll */ + 0, /* expanded flag */ +}; +/* *INDENT-ON* */ + +/* Free malloc'd holder */ +static void +house_keeping_holder (void) +{ + /* REVERSE DNS THREAD */ + pthread_mutex_lock (&gdns_thread.mutex); + + /* kill dns pthread */ + active_gdns = 0; + /* clear holder structure */ + free_holder (&holder); + /* clear reverse dns queue */ + gdns_free_queue (); + /* clear the whole storage */ + free_storage (); + + pthread_mutex_unlock (&gdns_thread.mutex); +} + +/* Free malloc'd data across the whole program */ +static void +house_keeping (void) +{ +#ifdef TCB_MEMHASH + /* free malloc'd int values on the agent list */ + if (conf.list_agents) + free_agent_list (); +#endif + + house_keeping_holder (); + + /* DASHBOARD */ + if (dash && !conf.output_stdout) { + free_dashboard (dash); + reset_find (); + } + + /* GEOLOCATION */ +#ifdef HAVE_GEOLOCATION + geoip_free (); +#endif + + /* LOGGER */ + if (glog->pipe) + fclose (glog->pipe); + free_logerrors (glog); + free (glog); + + /* INVALID REQUESTS */ + if (conf.invalid_requests_log) { + LOG_DEBUG (("Closing invalid requests log.\n")); + invalid_log_close (); + } + + /* CONFIGURATION */ + free_formats (); + free_browsers_hash (); + if (conf.debug_log) { + LOG_DEBUG (("Bye.\n")); + dbg_log_close (); + } + + /* clear spinner */ + free (parsing_spinner); + /* free colors */ + free_color_lists (); + /* free cmd arguments */ + free_cmd_args (); + /* WebSocket writer */ + free (gwswriter); + /* WebSocket reader */ + free (gwsreader); +} + +/* Open the pidfile whose name is specified in the given path and write + * the daemonized given pid. */ +static void +write_pid_file (const char *path, pid_t pid) +{ + FILE *pidfile; + + if (!path) + return; + + if ((pidfile = fopen (path, "w"))) { + fprintf (pidfile, "%d", pid); + fclose (pidfile); + } else { + FATAL ("Unable to open the specified pid file. %s", strerror (errno)); + } +} + +/* Set GoAccess to run as a daemon */ +static void +daemonize (void) +{ + pid_t pid, sid; + int fd; + + /* Clone ourselves to make a child */ + pid = fork (); + + if (pid < 0) + exit (EXIT_FAILURE); + if (pid > 0) { + write_pid_file (conf.pidfile, pid); + printf ("Daemonized GoAccess: %d\n", pid); + exit (EXIT_SUCCESS); + } + + umask (0); + /* attempt to create our own process group */ + sid = setsid (); + if (sid < 0) { + LOG_DEBUG (("Unable to setsid: %s.\n", strerror (errno))); + exit (EXIT_FAILURE); + } + + /* set the working directory to the root directory. + * requires the user to specify absolute paths */ + if (chdir ("/") < 0) { + LOG_DEBUG (("Unable to set chdir: %s.\n", strerror (errno))); + exit (EXIT_FAILURE); + } + + /* redirect fd's 0,1,2 to /dev/null */ + /* Note that the user will need to use --debug-file for log output */ + if ((fd = open ("/dev/null", O_RDWR, 0)) == -1) { + LOG_DEBUG (("Unable to open /dev/null: %s.\n", strerror (errno))); + exit (EXIT_FAILURE); + } + + dup2 (fd, STDIN_FILENO); + dup2 (fd, STDOUT_FILENO); + dup2 (fd, STDERR_FILENO); + if (fd > STDERR_FILENO) { + close (fd); + } +} + +/* Extract data from the given module hash structure and allocate + + * load data from the hash table into an instance of GHolder */ +static void +allocate_holder_by_module (GModule module) +{ + GRawData *raw_data; + + /* extract data from the corresponding hash table */ + raw_data = parse_raw_data (module); + if (!raw_data) { + LOG_DEBUG (("raw data is NULL for module: %d.\n", module)); + return; + } + + load_holder_data (raw_data, holder + module, module, module_sort[module]); +} + +/* Iterate over all modules/panels and extract data from hash + * structures and load it into an instance of GHolder */ +static void +allocate_holder (void) +{ + size_t idx = 0; + + holder = new_gholder (TOTAL_MODULES); + FOREACH_MODULE (idx, module_list) { + allocate_holder_by_module (module_list[idx]); + } +} + +/* Extract data from the modules GHolder structure and load it into + * the terminal dashboard */ +static void +allocate_data_by_module (GModule module, int col_data) +{ + int size = 0, max_choices = get_max_choices (); + + dash->module[module].head = module_to_head (module); + dash->module[module].desc = module_to_desc (module); + + size = holder[module].idx; + if (gscroll.expanded && module == gscroll.current) { + size = size > max_choices ? max_choices : holder[module].idx; + } else { + size = holder[module].idx > col_data ? col_data : holder[module].idx; + } + + dash->module[module].alloc_data = size; /* data allocated */ + dash->module[module].ht_size = holder[module].ht_size; /* hash table size */ + dash->module[module].idx_data = 0; + dash->module[module].pos_y = 0; + + if (gscroll.expanded && module == gscroll.current) + dash->module[module].dash_size = DASH_EXPANDED; + else + dash->module[module].dash_size = DASH_COLLAPSED; + dash->total_alloc += dash->module[module].dash_size; + + pthread_mutex_lock (&gdns_thread.mutex); + load_data_to_dash (&holder[module], dash, module, &gscroll); + pthread_mutex_unlock (&gdns_thread.mutex); +} + +/* Iterate over all modules/panels and extract data from GHolder + * structure and load it into the terminal dashboard */ +static void +allocate_data (void) +{ + GModule module; + int col_data = get_num_collapsed_data_rows (); + size_t idx = 0; + + dash = new_gdash (); + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + allocate_data_by_module (module, col_data); + } +} + +/* A wrapper to render all windows within the dashboard. */ +static void +render_screens (void) +{ + GColors *color = get_color (COLOR_DEFAULT); + int row, col, chg = 0; + + getmaxyx (stdscr, row, col); + term_size (main_win, &main_win_height); + + generate_time (); + chg = glog->processed - glog->offset; + + draw_header (stdscr, "", "%s", row - 1, 0, col, color_default); + + wattron (stdscr, color->attr | COLOR_PAIR (color->pair->idx)); + mvaddstr (row - 1, 1, T_HELP_ENTER); + mvprintw (row - 1, 30, "%d - %s", chg, asctime (now_tm)); + mvaddstr (row - 1, col - 21, T_QUIT); + mvprintw (row - 1, col - 5, "%s", GO_VERSION); + wattroff (stdscr, color->attr | COLOR_PAIR (color->pair->idx)); + + refresh (); + + /* call general stats header */ + display_general (header_win, glog, holder); + wrefresh (header_win); + + /* display active label based on current module */ + update_active_module (header_win, gscroll.current); + + display_content (main_win, dash, &gscroll); +} + +/* Collapse the current expanded module */ +static void +collapse_current_module (void) +{ + if (!gscroll.expanded) + return; + + gscroll.expanded = 0; + reset_scroll_offsets (&gscroll); + free_dashboard (dash); + allocate_data (); + render_screens (); +} + +/* Display message a the bottom of the terminal dashboard that panel + * is disabled */ +static void +disabled_panel_msg (GModule module) +{ + const char *lbl = module_to_label (module); + int row, col; + + getmaxyx (stdscr, row, col); + draw_header (stdscr, lbl, ERR_PANEL_DISABLED, row - 1, 0, col, color_error); +} + +/* Set the current module/panel */ +static void +set_module_to (GScroll * scrll, GModule module) +{ + if (get_module_index (module) == -1) { + disabled_panel_msg (module); + return; + } + + /* scroll to panel */ + if (!conf.no_tab_scroll) + gscroll.dash = get_module_index (module) * DASH_COLLAPSED; + + /* reset expanded module */ + collapse_current_module (); + scrll->current = module; + render_screens (); +} + +/* Scroll expanded module or terminal dashboard to the top */ +static void +scroll_to_first_line (void) +{ + if (!gscroll.expanded) + gscroll.dash = 0; + else { + gscroll.module[gscroll.current].scroll = 0; + gscroll.module[gscroll.current].offset = 0; + } +} + +/* Scroll expanded module or terminal dashboard to the last row */ +static void +scroll_to_last_line (void) +{ + int exp_size = get_num_expanded_data_rows (); + int scrll = 0, offset = 0; + + if (!gscroll.expanded) + gscroll.dash = dash->total_alloc - main_win_height; + else { + scrll = dash->module[gscroll.current].idx_data - 1; + if (scrll >= exp_size && scrll >= offset + exp_size) + offset = scrll < exp_size - 1 ? 0 : scrll - exp_size + 1; + gscroll.module[gscroll.current].scroll = scrll; + gscroll.module[gscroll.current].offset = offset; + } +} + +/* Load the user-agent window given the selected IP */ +static void +load_ip_agent_list (void) +{ + int type_ip = 0; + /* make sure we have a valid IP */ + int sel = gscroll.module[gscroll.current].scroll; + GDashData item = dash->module[HOSTS].data[sel]; + + if (!invalid_ipaddr (item.metrics->data, &type_ip)) + load_agent_list (main_win, item.metrics->data); +} + +/* Expand the selected module */ +static void +expand_current_module (void) +{ + if (gscroll.expanded && gscroll.current == HOSTS) { + load_ip_agent_list (); + return; + } + + /* expanded, nothing to do... */ + if (gscroll.expanded) + return; + + reset_scroll_offsets (&gscroll); + gscroll.expanded = 1; + + free_holder_by_module (&holder, gscroll.current); + free_dashboard (dash); + allocate_holder_by_module (gscroll.current); + allocate_data (); +} + +/* Expand the clicked module/panel given the Y event coordinate. */ +static void +expand_module_from_ypos (int y) +{ + /* ignore header/footer clicks */ + if (y < MAX_HEIGHT_HEADER || y == LINES - 1) + return; + + if (set_module_from_mouse_event (&gscroll, dash, y)) + return; + + reset_scroll_offsets (&gscroll); + gscroll.expanded = 1; + + free_holder_by_module (&holder, gscroll.current); + free_dashboard (dash); + allocate_holder_by_module (gscroll.current); + allocate_data (); + + render_screens (); +} + +/* Expand the clicked module/panel */ +static void +expand_on_mouse_click (void) +{ + int ok_mouse; + MEVENT event; + + ok_mouse = getmouse (&event); + if (!conf.mouse_support || ok_mouse != OK) + return; + + if (event.bstate & BUTTON1_CLICKED) + expand_module_from_ypos (event.y); +} + +/* Scroll dowm expanded module to the last row */ +static void +scroll_down_expanded_module (void) +{ + int exp_size = get_num_expanded_data_rows (); + int *scroll_ptr, *offset_ptr; + + scroll_ptr = &gscroll.module[gscroll.current].scroll; + offset_ptr = &gscroll.module[gscroll.current].offset; + + if (!gscroll.expanded) + return; + if (*scroll_ptr >= dash->module[gscroll.current].idx_data - 1) + return; + ++(*scroll_ptr); + if (*scroll_ptr >= exp_size && *scroll_ptr >= *offset_ptr + exp_size) + ++(*offset_ptr); +} + +/* Scroll up expanded module */ +static void +scroll_up_expanded_module (void) +{ + int *scroll_ptr, *offset_ptr; + + scroll_ptr = &gscroll.module[gscroll.current].scroll; + offset_ptr = &gscroll.module[gscroll.current].offset; + + if (!gscroll.expanded) + return; + if (*scroll_ptr <= 0) + return; + --(*scroll_ptr); + if (*scroll_ptr < *offset_ptr) + --(*offset_ptr); +} + +/* Scroll up terminal dashboard */ +static void +scroll_up_dashboard (void) +{ + gscroll.dash--; +} + +/* Page up expanded module */ +static void +page_up_module (void) +{ + int exp_size = get_num_expanded_data_rows (); + int *scroll_ptr, *offset_ptr; + + scroll_ptr = &gscroll.module[gscroll.current].scroll; + offset_ptr = &gscroll.module[gscroll.current].offset; + + if (!gscroll.expanded) + return; + /* decrease scroll and offset by exp_size */ + *scroll_ptr -= exp_size; + if (*scroll_ptr < 0) + *scroll_ptr = 0; + + if (*scroll_ptr < *offset_ptr) + *offset_ptr -= exp_size; + if (*offset_ptr <= 0) + *offset_ptr = 0; +} + +/* Page down expanded module */ +static void +page_down_module (void) +{ + int exp_size = get_num_expanded_data_rows (); + int *scroll_ptr, *offset_ptr; + + scroll_ptr = &gscroll.module[gscroll.current].scroll; + offset_ptr = &gscroll.module[gscroll.current].offset; + + if (!gscroll.expanded) + return; + + *scroll_ptr += exp_size; + if (*scroll_ptr >= dash->module[gscroll.current].idx_data - 1) + *scroll_ptr = dash->module[gscroll.current].idx_data - 1; + if (*scroll_ptr >= exp_size && *scroll_ptr >= *offset_ptr + exp_size) + *offset_ptr += exp_size; + if (*offset_ptr + exp_size >= dash->module[gscroll.current].idx_data - 1) + *offset_ptr = dash->module[gscroll.current].idx_data - exp_size; + if (*scroll_ptr < exp_size - 1) + *offset_ptr = 0; +} + +/* Create a new find dialog window and render it. Upon closing the + * window, dashboard is refreshed. */ +static void +render_search_dialog (int search) +{ + if (render_find_dialog (main_win, &gscroll)) + return; + + pthread_mutex_lock (&gdns_thread.mutex); + search = perform_next_find (holder, &gscroll); + pthread_mutex_unlock (&gdns_thread.mutex); + if (search != 0) + return; + + free_dashboard (dash); + allocate_data (); + render_screens (); +} + +/* Search for the next occurrence within the dashboard structure */ +static void +search_next_match (int search) +{ + pthread_mutex_lock (&gdns_thread.mutex); + search = perform_next_find (holder, &gscroll); + pthread_mutex_unlock (&gdns_thread.mutex); + if (search != 0) + return; + + free_dashboard (dash); + allocate_data (); + render_screens (); +} + +/* Update holder structure and dashboard screen */ +static void +tail_term (void) +{ + pthread_mutex_lock (&gdns_thread.mutex); + free_holder (&holder); + pthread_cond_broadcast (&gdns_thread.not_empty); + pthread_mutex_unlock (&gdns_thread.mutex); + + free_dashboard (dash); + allocate_holder (); + allocate_data (); + + term_size (main_win, &main_win_height); + render_screens (); +} + +static void +tail_html (void) +{ + char *json = NULL; + + pthread_mutex_lock (&gdns_thread.mutex); + free_holder (&holder); + pthread_cond_broadcast (&gdns_thread.not_empty); + pthread_mutex_unlock (&gdns_thread.mutex); + + allocate_holder (); + + pthread_mutex_lock (&gdns_thread.mutex); + json = get_json (glog, holder, 0); + pthread_mutex_unlock (&gdns_thread.mutex); + + if (json == NULL) + return; + + broadcast_holder (gwswriter->fd, json, strlen (json)); + free (json); +} + +/* Fast-forward latest JSON data when client connection is opened. */ +static void +fast_forward_client (int listener) +{ + char *json = NULL; + + pthread_mutex_lock (&gdns_thread.mutex); + json = get_json (glog, holder, 0); + pthread_mutex_unlock (&gdns_thread.mutex); + + if (json == NULL) + return; + + pthread_mutex_lock (&gwswriter->mutex); + send_holder_to_client (gwswriter->fd, listener, json, strlen (json)); + pthread_mutex_unlock (&gwswriter->mutex); + free (json); +} + +/* Start reading data coming from the client side through the + * WebSocket server. */ +void +read_client (void *ptr_data) +{ + GWSReader *reader = (GWSReader *) ptr_data; + fd_set rfds, wfds; + + FD_ZERO (&rfds); + FD_ZERO (&wfds); + + /* check we have a fifo for reading */ + if (reader->fd == -1) + return; + + pthread_mutex_lock (&reader->mutex); + set_self_pipe (reader->self_pipe); + pthread_mutex_unlock (&reader->mutex); + + while (1) { + /* select(2) will block */ + if (read_fifo (reader, rfds, wfds, fast_forward_client)) + break; + } + close (reader->fd); +} + +/* Parse tailed lines */ +static void +parse_tail_follow (FILE * fp) +{ +#ifdef WITH_GETLINE + char *buf = NULL; +#else + char buf[LINE_BUFFER] = { 0 }; +#endif + +#ifdef WITH_GETLINE + while ((buf = fgetline (fp)) != NULL) { +#else + while (fgets (buf, LINE_BUFFER, fp) != NULL) { +#endif + pthread_mutex_lock (&gdns_thread.mutex); + parse_log (&glog, buf, 0); + pthread_mutex_unlock (&gdns_thread.mutex); +#ifdef WITH_GETLINE + free (buf); +#endif + } +} + +/* Process appended log data */ +static void +perform_tail_follow (uint64_t * size1, const char *fn) +{ + FILE *fp = NULL; + uint64_t size2 = 0; + + if (fn[0] == '-' && fn[1] == '\0') { + parse_tail_follow (glog->pipe); + goto out; + } + if (glog->load_from_disk_only) + return; + + size2 = file_size (fn); + + /* file hasn't changed */ + if (size2 == *size1) + return; + + if (!(fp = fopen (fn, "r"))) + FATAL ("Unable to read log file %s.", strerror (errno)); + + if (!fseeko (fp, *size1, SEEK_SET)) + parse_tail_follow (fp); + fclose (fp); + + *size1 = size2; + +out: + + if (!conf.output_stdout) + tail_term (); + else + tail_html (); + + usleep (200000); /* 0.2 seconds */ +} + +/* Entry point to start processing the HTML output */ +static void +process_html (const char *filename) +{ + uint64_t *size1 = NULL; + int i = 0; + + /* render report */ + pthread_mutex_lock (&gdns_thread.mutex); + output_html (glog, holder, filename); + pthread_mutex_unlock (&gdns_thread.mutex); + /* not real time? */ + if (!conf.real_time_html) + return; + /* ignore loading from disk */ + if (glog->load_from_disk_only) + return; + + pthread_mutex_lock (&gwswriter->mutex); + gwswriter->fd = open_fifoin (); + pthread_mutex_unlock (&gwswriter->mutex); + + /* open fifo for write */ + if (gwswriter->fd == -1) + return; + + size1 = xcalloc (conf.filenames_idx, sizeof (uint64_t)); + for (i = 0; i < conf.filenames_idx; ++i) { + if (conf.filenames[i][0] == '-' && conf.filenames[i][1] == '\0') + size1[i] = 0; + else + size1[i] = file_size (conf.filenames[i]); + } + + set_ready_state (); + while (1) { + if (conf.stop_processing) + break; + + for (i = 0; i < conf.filenames_idx; ++i) + perform_tail_follow (&size1[i], conf.filenames[i]); /* 0.2 secs */ + usleep (800000); /* 0.8 secs */ + } + close (gwswriter->fd); + free (size1); +} + +/* Iterate over available panels and advance the panel pointer. */ +static int +next_module (void) +{ + int next = -1; + + if ((next = get_next_module (gscroll.current)) == -1) + return 1; + + gscroll.current = next; + if (!conf.no_tab_scroll) + gscroll.dash = get_module_index (gscroll.current) * DASH_COLLAPSED; + + return 0; +} + +/* Iterate over available panels and rewind the panel pointer. */ +static int +previous_module (void) +{ + int prev = -1; + + if ((prev = get_prev_module (gscroll.current)) == -1) + return 1; + + gscroll.current = prev; + if (!conf.no_tab_scroll) + gscroll.dash = get_module_index (gscroll.current) * DASH_COLLAPSED; + + return 0; +} + +/* Perform several curses operations upon resizing the terminal. */ +static void +window_resize (void) +{ + endwin (); + refresh (); + werase (header_win); + werase (main_win); + werase (stdscr); + term_size (main_win, &main_win_height); + refresh (); + render_screens (); +} + +/* Create a new sort dialog window and render it. Upon closing the + * window, dashboard is refreshed. */ +static void +render_sort_dialog (void) +{ + load_sort_win (main_win, gscroll.current, &module_sort[gscroll.current]); + + pthread_mutex_lock (&gdns_thread.mutex); + free_holder (&holder); + pthread_cond_broadcast (&gdns_thread.not_empty); + pthread_mutex_unlock (&gdns_thread.mutex); + + free_dashboard (dash); + allocate_holder (); + allocate_data (); + render_screens (); +} + +/* Interfacing with the keyboard */ +static void +get_keys (void) +{ + int search = 0; + int c, quit = 1, i; + uint64_t *size1 = NULL; + + if (!glog->load_from_disk_only && conf.filenames_idx) { + size1 = xcalloc (conf.filenames_idx, sizeof (uint64_t)); + for (i = 0; i < conf.filenames_idx; ++i) { + if (conf.filenames[i][0] == '-' && conf.filenames[i][1] == '\0') + size1[i] = 0; + else + size1[i] = file_size (conf.filenames[i]); + } + } + + while (quit) { + if (conf.stop_processing) + break; + c = wgetch (stdscr); + switch (c) { + case 'q': /* quit */ + if (!gscroll.expanded) { + quit = 0; + break; + } + collapse_current_module (); + break; + case KEY_F (1): + case '?': + case 'h': + load_help_popup (main_win); + render_screens (); + break; + case 49: /* 1 */ + /* reset expanded module */ + set_module_to (&gscroll, VISITORS); + break; + case 50: /* 2 */ + /* reset expanded module */ + set_module_to (&gscroll, REQUESTS); + break; + case 51: /* 3 */ + /* reset expanded module */ + set_module_to (&gscroll, REQUESTS_STATIC); + break; + case 52: /* 4 */ + /* reset expanded module */ + set_module_to (&gscroll, NOT_FOUND); + break; + case 53: /* 5 */ + /* reset expanded module */ + set_module_to (&gscroll, HOSTS); + break; + case 54: /* 6 */ + /* reset expanded module */ + set_module_to (&gscroll, OS); + break; + case 55: /* 7 */ + /* reset expanded module */ + set_module_to (&gscroll, BROWSERS); + break; + case 56: /* 8 */ + /* reset expanded module */ + set_module_to (&gscroll, VISIT_TIMES); + break; + case 57: /* 9 */ + /* reset expanded module */ + set_module_to (&gscroll, VIRTUAL_HOSTS); + break; + case 48: /* 0 */ + /* reset expanded module */ + set_module_to (&gscroll, REFERRERS); + break; + case 33: /* shift + 1 */ + /* reset expanded module */ + set_module_to (&gscroll, REFERRING_SITES); + break; + case 34: /* shift + 2 */ + /* reset expanded module */ + set_module_to (&gscroll, KEYPHRASES); + break; + case 35: /* Shift + 3 */ + /* reset expanded module */ + set_module_to (&gscroll, STATUS_CODES); + break; + case 36: /* Shift + 3 */ + /* reset expanded module */ + set_module_to (&gscroll, REMOTE_USER); + break; +#ifdef HAVE_GEOLOCATION + case 37: /* Shift + 4 */ + /* reset expanded module */ + set_module_to (&gscroll, GEO_LOCATION); + break; +#endif + case 9: /* TAB */ + /* reset expanded module */ + collapse_current_module (); + if (next_module () == 0) + render_screens (); + break; + case 353: /* Shift TAB */ + /* reset expanded module */ + collapse_current_module (); + if (previous_module () == 0) + render_screens (); + break; + case 'g': /* g = top */ + scroll_to_first_line (); + display_content (main_win, dash, &gscroll); + break; + case 'G': /* G = down */ + scroll_to_last_line (); + display_content (main_win, dash, &gscroll); + break; + /* expand dashboard module */ + case KEY_RIGHT: + case 0x0a: + case 0x0d: + case 32: /* ENTER */ + case 79: /* o */ + case 111: /* O */ + case KEY_ENTER: + expand_current_module (); + display_content (main_win, dash, &gscroll); + break; + case KEY_DOWN: /* scroll main dashboard */ + if ((gscroll.dash + main_win_height) < dash->total_alloc) { + gscroll.dash++; + display_content (main_win, dash, &gscroll); + } + break; + case KEY_MOUSE: /* handles mouse events */ + expand_on_mouse_click (); + break; + case 106: /* j - DOWN expanded module */ + scroll_down_expanded_module (); + display_content (main_win, dash, &gscroll); + break; + /* scroll up main_win */ + case KEY_UP: + if (gscroll.dash > 0) { + scroll_up_dashboard (); + display_content (main_win, dash, &gscroll); + } + break; + case 2: /* ^ b - page up */ + case 339: /* ^ PG UP */ + page_up_module (); + display_content (main_win, dash, &gscroll); + break; + case 6: /* ^ f - page down */ + case 338: /* ^ PG DOWN */ + page_down_module (); + display_content (main_win, dash, &gscroll); + break; + case 107: /* k - UP expanded module */ + scroll_up_expanded_module (); + display_content (main_win, dash, &gscroll); + break; + case 'n': + search_next_match (search); + break; + case '/': + render_search_dialog (search); + break; + case 99: /* c */ + if (conf.no_color) + break; + load_schemes_win (main_win); + free_dashboard (dash); + allocate_data (); + set_wbkgd (main_win, header_win); + render_screens (); + break; + case 115: /* s */ + render_sort_dialog (); + break; + case 269: + case KEY_RESIZE: + window_resize (); + break; + default: + for (i = 0; i < conf.filenames_idx; ++i) + perform_tail_follow (&size1[i], conf.filenames[i]); + break; + } + } + free (size1); +} + +/* Set general/overall statistics when loading data from the on-disk + * storage. i.e., --load-from-disk */ +static void +set_general_stats (void) +{ + glog->valid = glog->processed = glog->invalid = glog->excluded_ip = 0; + +#ifdef TCB_BTREE + glog->excluded_ip = ht_get_genstats ("excluded_ip"); + glog->invalid = ht_get_genstats ("failed_requests"); + glog->processed = ht_get_genstats ("total_requests"); + glog->resp_size = ht_get_genstats_bw ("bandwidth"); + glog->valid = ht_get_genstats ("valid_requests"); + + if (glog->resp_size > 0) + conf.bandwidth = 1; + if (ht_get_genstats ("serve_usecs")) + conf.serve_usecs = 1; +#endif +} + +/* Store accumulated processing time + * Note: As we store with time_t second resolution, + * if elapsed time == 0, we will bump it to 1. + */ +#ifdef TCB_BTREE +static void +set_accumulated_time (void) +{ + if (conf.store_accumulated_time) { + time_t elapsed = end_proc - start_proc; + elapsed = (!elapsed) ? !elapsed : elapsed; + ht_insert_genstats_accumulated_time (elapsed); + } +} +#endif + +/* Execute the following calls right before we start the main + * processing/parsing loop */ +static void +init_processing (void) +{ + /* perform some additional checks before parsing panels */ + verify_panels (); + /* initialize storage */ + init_storage (); + if (conf.load_from_disk) + set_general_stats (); + set_spec_date_format (); +} + +/* Determine the type of output, i.e., JSON, CSV, HTML */ +static void +standard_output (void) +{ + char *csv = NULL, *json = NULL, *html = NULL; + + /* CSV */ + if (find_output_type (&csv, "csv", 1) == 0) + output_csv (glog, holder, csv); + /* JSON */ + if (find_output_type (&json, "json", 1) == 0) + output_json (glog, holder, json); + /* HTML */ + if (find_output_type (&html, "html", 1) == 0 || conf.output_format_idx == 0) + process_html (html); + + free (csv); + free (html); + free (json); +} + +/* Output to a terminal */ +static void +curses_output (void) +{ + allocate_data (); + if (!conf.skip_term_resolver) + gdns_thread_create (); + + render_screens (); + /* will loop in here */ + get_keys (); +} + +/* Set locale */ +static void +set_locale (void) +{ + char *loc_ctype; + + setlocale (LC_ALL, ""); + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); + + loc_ctype = getenv ("LC_CTYPE"); + if (loc_ctype != NULL) + setlocale (LC_CTYPE, loc_ctype); + else if ((loc_ctype = getenv ("LC_ALL"))) + setlocale (LC_CTYPE, loc_ctype); + else + setlocale (LC_CTYPE, ""); +} + +/* Attempt to get the current name of a terminal or fallback to /dev/tty + * + * On error, -1 is returned + * On success, the new file descriptor is returned */ +static int +open_term (char **buf) +{ + const char *term = "/dev/tty"; + + if (!isatty (STDERR_FILENO) || (term = ttyname (STDERR_FILENO)) == 0) { + if (!isatty (STDOUT_FILENO) || (term = ttyname (STDOUT_FILENO)) == 0) { + if (!isatty (STDIN_FILENO) || (term = ttyname (STDIN_FILENO)) == 0) { + term = "/dev/tty"; + } + } + } + *buf = xstrdup (term); + + return open (term, O_RDONLY); +} + +/* Determine if reading from a pipe, and duplicate file descriptors so + * it doesn't get in the way of curses' normal reading stdin for + * wgetch() */ +static void +set_pipe_stdin (void) +{ + char *term = NULL; + FILE *pipe = stdin; + int fd1, fd2; + + /* If unable to open a terminal, yet data is being piped, then it's + * probably from the cron. + * + * Note: If used from the cron, it will require the + * user to use a single dash to parse piped data such as: + * cat access.log | goaccess - */ + if ((fd1 = open_term (&term)) == -1) + goto out; + + if ((fd2 = dup (fileno (stdin))) == -1) + FATAL ("Unable to dup stdin: %s", strerror (errno)); + + pipe = fdopen (fd2, "r"); + if (freopen (term, "r", stdin) == 0) + FATAL ("Unable to open input from TTY"); + if (fileno (stdin) != 0) + (void) dup2 (fileno (stdin), 0); + + add_dash_filename (); + /* no need to set it as non-blocking since we are simply outputting a + * static report */ + if (conf.output_stdout && !conf.real_time_html) + goto out; + + /* Using select(), poll(), or epoll(), etc may be a better choice... */ + if (fcntl (fd2, F_SETFL, fcntl (fd2, F_GETFL, 0) | O_NONBLOCK) == -1) + FATAL ("Unable to set fd as non-blocking: %s.", strerror (errno)); +out: + + glog->pipe = pipe; + free (term); +} + +/* Determine if we are getting data from the stdin, and where are we + * outputting to. */ +static void +set_io (void) +{ + /* For backwards compatibility, check if we are not outputting to a + * terminal or if an output format was supplied */ + if (!isatty (STDOUT_FILENO) || conf.output_format_idx > 0) + conf.output_stdout = 1; + /* dup fd if data piped */ + if (!isatty (STDIN_FILENO)) + set_pipe_stdin (); + /* No data piped, no file was used and not loading from disk */ + if (!conf.filenames_idx && !conf.read_stdin && !conf.load_from_disk) + cmd_help (); +} + +/* Process command line options and set some default options. */ +static void +parse_cmd_line (int argc, char **argv) +{ + read_option_args (argc, argv); + set_default_static_files (); +} + +/* Set up signal handlers. */ +static void +setup_signal_handlers (void) +{ + struct sigaction act; + + sigemptyset (&act.sa_mask); + act.sa_flags = 0; + act.sa_handler = sigsegv_handler; + + sigaction (SIGSEGV, &act, NULL); +} + +static void +handle_signal_action (int sig_number) +{ + switch (sig_number) { + case SIGTERM: + case SIGINT: + fprintf (stderr, "\nSIGINT caught!\n"); + fprintf (stderr, "Closing GoAccess...\n"); + + stop_ws_server (gwswriter, gwsreader); + conf.stop_processing = 1; + break; + case SIGPIPE: + fprintf (stderr, "SIGPIPE caught!\n"); + /* ignore it */ + break; + } +} + +static void +setup_thread_signals (void) +{ + struct sigaction act; + + act.sa_handler = handle_signal_action; + sigemptyset (&act.sa_mask); + act.sa_flags = 0; + + sigaction (SIGINT, &act, NULL); + sigaction (SIGPIPE, &act, NULL); + sigaction (SIGTERM, &act, NULL); + + /* Restore old signal mask for the main thread */ + pthread_sigmask (SIG_SETMASK, &oldset, NULL); +} + +static void +block_thread_signals (void) +{ + /* Avoid threads catching SIGINT/SIGPIPE/SIGTERM and handle them in + * main thread */ + sigset_t sigset; + sigemptyset (&sigset); + sigaddset (&sigset, SIGINT); + sigaddset (&sigset, SIGPIPE); + sigaddset (&sigset, SIGTERM); + pthread_sigmask (SIG_BLOCK, &sigset, &oldset); +} + +/* Initialize various types of data. */ +static void +initializer (void) +{ + /* initialize modules and set first */ + gscroll.current = init_modules (); + /* setup to use the current locale */ + set_locale (); + + parse_browsers_file (); + +#ifdef HAVE_GEOLOCATION + init_geoip (); +#endif + + /* init glog */ + glog = init_log (); + + set_io (); + set_signal_data (glog); + + /* init parsing spinner */ + parsing_spinner = new_gspinner (); + parsing_spinner->processed = &glog->processed; +} + +static void +set_standard_output (void) +{ + int html = 0; + gwswriter = new_gwswriter (); + gwsreader = new_gwsreader (); + + /* HTML */ + if (find_output_type (NULL, "html", 0) == 0 || conf.output_format_idx == 0) + html = 1; + + /* Spawn WebSocket server threads */ + if (html && conf.real_time_html) { + /* open fifo for read */ + if ((gwsreader->fd = open_fifoout ()) == -1) { + LOG (("Unable to open FIFO for read.\n")); + return; + } + + if (conf.daemonize) + daemonize (); + setup_ws_server (gwswriter, gwsreader); + } + setup_thread_signals (); + + /* Spawn progress spinner thread */ + ui_spinner_create (parsing_spinner); +} + +/* Set up curses. */ +static void +set_curses (int *quit) +{ + const char *err_log = NULL; + + setup_thread_signals (); + set_input_opts (); + if (conf.no_color || has_colors () == FALSE) { + conf.color_scheme = NO_COLOR; + conf.no_color = 1; + } else { + start_color (); + } + init_colors (0); + init_windows (&header_win, &main_win); + set_curses_spinner (parsing_spinner); + + /* Display configuration dialog if missing formats and not piping data in */ + if (!conf.read_stdin && (verify_formats () || conf.load_conf_dlg)) { + refresh (); + *quit = render_confdlg (glog, parsing_spinner); + clear (); + } + /* Piping data in without log/date/time format */ + else if (conf.read_stdin && (err_log = verify_formats ())) { + FATAL ("%s", err_log); + } + /* straight parsing */ + else { + ui_spinner_create (parsing_spinner); + } +} + +/* Where all begins... */ +int +main (int argc, char **argv) +{ + int quit = 0, ret = 0; + + block_thread_signals (); + setup_signal_handlers (); + + /* command line/config options */ + verify_global_config (argc, argv); + parse_conf_file (&argc, &argv); + parse_cmd_line (argc, argv); + + initializer (); + + /* ignore outputting, process only */ + if (conf.process_and_exit) { + } + /* set stdout */ + else if (conf.output_stdout) { + set_standard_output (); + } + /* set curses */ + else { + set_curses (&quit); + } + + /* no log/date/time format set */ + if (quit) + goto clean; + + init_processing (); + /* main processing event */ + time (&start_proc); + if ((ret = parse_log (&glog, NULL, 0))) { + end_spinner (); + goto clean; + } + if (conf.stop_processing) + goto clean; + glog->offset = glog->processed; + + /* init reverse lookup thread */ + gdns_init (); + parse_initial_sort (); + allocate_holder (); + + end_spinner (); + time (&end_proc); + + /* ignore outputting, process only */ + if (conf.process_and_exit) { +#ifdef TCB_BTREE + set_accumulated_time (); +#endif + } + /* stdout */ + else if (conf.output_stdout) { + standard_output (); + } + /* curses */ + else { + curses_output (); + } + + /* clean */ +clean: + /* done, restore tty modes and reset terminal into + * non-visual mode */ + if (!conf.output_stdout) + endwin (); + + /* unable to process valid data */ + if (ret) + output_logerrors (glog); + + house_keeping (); + + return ret ? EXIT_FAILURE : EXIT_SUCCESS; +} diff --git a/src/goaccess++/src/goaccess.h b/src/goaccess++/src/goaccess.h new file mode 100644 index 0000000..7772d3e --- /dev/null +++ b/src/goaccess++/src/goaccess.h @@ -0,0 +1,40 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef GOACCESS_H_INCLUDED +#define GOACCESS_H_INCLUDED + +#include "ui.h" + +extern GSpinner *parsing_spinner; +extern int active_gdns; /* kill dns pthread flag */ + +void read_client (void *ptr_data); + +#endif diff --git a/src/goaccess++/src/goaccess.o b/src/goaccess++/src/goaccess.o new file mode 100644 index 0000000000000000000000000000000000000000..15664fe53f6451410b72d797cf49aafe4a549874 GIT binary patch literal 66416 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/gslist.c b/src/goaccess++/src/gslist.c new file mode 100644 index 0000000..e73d7b7 --- /dev/null +++ b/src/goaccess++/src/gslist.c @@ -0,0 +1,166 @@ +/** + * gslist.c -- A Singly link list implementation + * _______ _______ __ __ + * / ____/ | / / ___/____ _____/ /_____ / /_ + * / / __ | | /| / /\__ \/ __ \/ ___/ //_/ _ \/ __/ + * / /_/ / | |/ |/ /___/ / /_/ / /__/ ,< / __/ /_ + * \____/ |__/|__//____/\____/\___/_/|_|\___/\__/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <ctype.h> + +#include "gslist.h" +#include "xmalloc.h" + +/* Instantiate a new Single linked-list node. + * + * On error, aborts if node can't be malloc'd. + * On success, the GSLList node. */ +GSLList * +list_create (void *data) +{ + GSLList *node = xmalloc (sizeof (GSLList)); + node->data = data; + node->next = NULL; + + return node; +} + +/* Create and insert a node after a given node. + * + * On error, aborts if node can't be malloc'd. + * On success, the newly created node. */ +GSLList * +list_insert_append (GSLList * node, void *data) +{ + GSLList *newnode; + newnode = list_create (data); + newnode->next = node->next; + node->next = newnode; + + return newnode; +} + +/* Create and insert a node in front of the list. + * + * On error, aborts if node can't be malloc'd. + * On success, the newly created node. */ +GSLList * +list_insert_prepend (GSLList * list, void *data) +{ + GSLList *newnode; + newnode = list_create (data); + newnode->next = list; + + return newnode; +} + +/* Find a node given a pointer to a function that compares them. + * + * If comparison fails, NULL is returned. + * On success, the existing node is returned. */ +GSLList * +list_find (GSLList * node, int (*func) (void *, void *), void *data) +{ + while (node) { + if (func (node->data, data) > 0) + return node; + node = node->next; + } + + return NULL; +} + +/* Remove all nodes from the list. + * + * On success, 0 is returned. */ +int +list_remove_nodes (GSLList * list) +{ + GSLList *tmp; + while (list != NULL) { + tmp = list->next; + if (list->data) + free (list->data); + free (list); + list = tmp; + } + + return 0; +} + +/* Remove the given node from the list. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +int +list_remove_node (GSLList ** list, GSLList * node) +{ + GSLList **current = list, *next = NULL; + for (; *current; current = &(*current)->next) { + if ((*current) != node) + continue; + + next = (*current)->next; + if ((*current)->data) + free ((*current)->data); + free (*current); + *current = next; + return 0; + } + return 1; +} + +/* Iterate over the single linked-list and call function pointer. + * + * If function pointer does not return 0, -1 is returned. + * On success, 0 is returned. */ +int +list_foreach (GSLList * node, int (*func) (void *, void *), void *user_data) +{ + while (node) { + if (func (node->data, user_data) != 0) + return -1; + node = node->next; + } + + return 0; +} + +/* Count the number of elements on the linked-list. + * + * On success, the number of elements is returned. */ +int +list_count (GSLList * node) +{ + int count = 0; + while (node != 0) { + count++; + node = node->next; + } + return count; +} diff --git a/src/goaccess++/src/gslist.h b/src/goaccess++/src/gslist.h new file mode 100644 index 0000000..6108051 --- /dev/null +++ b/src/goaccess++/src/gslist.h @@ -0,0 +1,51 @@ +/** + * _______ _______ __ __ + * / ____/ | / / ___/____ _____/ /_____ / /_ + * / / __ | | /| / /\__ \/ __ \/ ___/ //_/ _ \/ __/ + * / /_/ / | |/ |/ /___/ / /_/ / /__/ ,< / __/ /_ + * \____/ |__/|__//____/\____/\___/_/|_|\___/\__/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef GSLIST_H_INCLUDED +#define GSLIST_H_INCLUDED + +/* Generic Single linked-list */ +typedef struct GSLList_ +{ + void *data; + struct GSLList_ *next; +} GSLList; + +/* single linked-list */ +GSLList *list_create (void *data); +GSLList *list_find (GSLList * node, int (*func) (void *, void *), void *data); +GSLList *list_insert_append (GSLList * node, void *data); +GSLList *list_insert_prepend (GSLList * list, void *data); +int list_count (GSLList * list); +int list_foreach (GSLList * node, int (*func) (void *, void *), + void *user_data); +int list_remove_node (GSLList ** list, GSLList * node); +int list_remove_nodes (GSLList * list); + +#endif // for #ifndef GSLIST_H diff --git a/src/goaccess++/src/gslist.o b/src/goaccess++/src/gslist.o new file mode 100644 index 0000000000000000000000000000000000000000..c5e675fbf9e45b382905166b9cd40b66e640a2ce GIT binary patch literal 2992 zcmbtW|7%-S6u)UY_qNX0RQwW{m^T<w!99{u#7(J5(<aw7xM^E(#G0hZOIyr0US4J^ zZWCjNk8IE%#h><z;GeMH3}jS)@J9t<DE(13**dJh_=S4Tedi|W>&x)Vf&1>cpY!$J zb8_0NGpWRo&&MSB*d*(nB+6J#>G4s)M%m-+82fefx!>ow{l`}U0DndSw}bras8COL zHc`I7?ccgOy!ngb=#dg{%_-a-=k^8I;tFrxR?>@|(a<L%$|LO2=4~&1zOiRb#^ztQ zcOmlk82R3q^v7Fig>T%kp5d)mxP3pi_uWSO%3W^%kY0?v(<yGIBW+|N?M`ttG|j~Q z(BEqd=m(Q`aBlx7T(vGU6d$6iKXCSqJB^?4B9XSZ3ittsU4P&T{P0!?6A5zrF9<K3 zo!PQN{Kg6<*tm!Gx3Co8qNw-spX`eV(JAmE>&7egw2R{X|LuENchk4_fbb!_-XqdR zk57sF@YYqO+4cd@*o7Oi4ok-4XSMN#rAEbSXlL{ZJ$x$C5U0qM(_uY4p`U)i!Lh)@ zu&{Lw!Aicdz=jxWBj$&N^rW*f-v@6o-&(+T{Mcb-6J8|<__HJn;Xb1VnnM>=1=y3Y zUPcT^>>#@~G_3}k{*<a^)nH5w#6T1EvZw?!j-P#c7rJ`r<5QFaox{(p8n}-BuKA}` ztvS4WRH#m=N_-@y2IFb~*jQ)lTTn&6x6uY@7C+}O7tm_@ld4t{+K@}4v&C2##5<@1 zl*f<AN9aPF0z^rO#Aip|m3HEOC+P?4l^a=MLI-lgch8dT35@p$LbYM`aL-G{?>RBB zhO&zLt^A_u`!PKE*<%Mmfgc`#W3>;GUv$%c{3sls=*v^|3}8>g!gp}fivW1x6M&;1 zjSOU;B?-?GF8T@hG~t_siy8rM5WY>g=ndfChvgObL%=a^nCd0^1F#!}-y~f6|D5n0 z!cV|i&~m-BTDSB(!!46Hjhtn$Ofq$TDwfKePbB7M<}>rLsnkq{t(9}7Qk67UD|N%P zGPzpKs1zJyf@-GG!-}g?Y8vJ0B_mU*7K}P8nug&R^}!BMtU?a?70RayV*~S4ooq#? zi~#>94kVzL2H=+l;792GI8*RlrJu0@`1%0+;{muvaba%Z?CR31#7SJEbHRmY>3rRV z%YOOBg>Tb&*M-Zz7^ggCT-g@|7cTpP>Gk!pm0N<{GM#-za;8zr>6Wo(F};wpa!g;U z*O{KLmdgedNv~8bLx-7ts&3`-@6ma=($H&WwFbSi&UE3ySjiO4Tp2t5|C0tT@G9;} z5d{ostiK3wcK?=+1BSg2h1E}=k;5+u#Cd^n<b(+l{ygFC$@ZozE~yJ2lE)qA3i|x7 z_7Skfyuz^hNybP2{X}K&=5ZE;66@Ey{15ZT`GV8ft^N@KTEA1^<@-r^2^fs;w!cY0 z&6S+nei3ZF>KCOy5p9qoVg1ln+ROTR#YX)AItALM_&9Tpz;fFo=B^z;YzO~=0s6w( Wx?k6I*ceE>>}8-**V19!_J0G>XS*~2 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/gstorage.c b/src/goaccess++/src/gstorage.c new file mode 100644 index 0000000..b6934c1 --- /dev/null +++ b/src/goaccess++/src/gstorage.c @@ -0,0 +1,140 @@ +/** + * gstorage.c -- common storage handling + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include <stdio.h> +#if !defined __SUNPRO_C +#include <stdint.h> +#endif +#include <stdlib.h> +#include <string.h> + +#ifdef HAVE_LIBTOKYOCABINET +#include "tcabdb.h" +#else +#include "gkhash.h" +#endif + +#include "gstorage.h" + +#include "error.h" +#include "xmalloc.h" + +/* Allocate memory for a new GMetrics instance. + * + * On success, the newly allocated GMetrics is returned . */ +GMetrics * +new_gmetrics (void) +{ + GMetrics *metrics = xcalloc (1, sizeof (GMetrics)); + + return metrics; +} + +/* Allocate space off the heap to store an int. + * + * On success, the newly allocated pointer is returned . */ +int * +int2ptr (int val) +{ + int *ptr = xmalloc (sizeof (int)); + *ptr = val; + + return ptr; +} + +/* Allocate space off the heap to store a uint64_t. + * + * On success, the newly allocated pointer is returned . */ +uint64_t * +uint642ptr (uint64_t val) +{ + uint64_t *ptr = xmalloc (sizeof (uint64_t)); + *ptr = val; + + return ptr; +} + +/* Set the module totals to calculate percentages. */ +void +set_module_totals (GModule module, GPercTotals * totals) +{ + totals->bw = ht_get_meta_data (module, "bytes"); + totals->hits = ht_get_meta_data (module, "hits"); + totals->visitors = ht_get_meta_data (module, "visitors"); +} + +/* Set numeric metrics for each request given raw data. + * + * On success, numeric metrics are set into the given structure. */ +void +set_data_metrics (GMetrics * ometrics, GMetrics ** nmetrics, GPercTotals totals) +{ + GMetrics *metrics; + + /* determine percentages for certain fields */ + float hits_perc = get_percentage (totals.hits, ometrics->hits); + float visitors_perc = get_percentage (totals.visitors, ometrics->visitors); + float bw_perc = get_percentage (totals.bw, ometrics->bw.nbw); + + metrics = new_gmetrics (); + + /* basic fields */ + metrics->id = ometrics->id; + metrics->hits = ometrics->hits; + metrics->visitors = ometrics->visitors; + + /* percentage fields */ + metrics->hits_perc = hits_perc < 0 ? 0 : hits_perc; + metrics->bw_perc = bw_perc < 0 ? 0 : bw_perc; + metrics->visitors_perc = visitors_perc < 0 ? 0 : visitors_perc; + + /* bandwidth field */ + metrics->bw.nbw = ometrics->bw.nbw; + + /* time served fields */ + if (conf.serve_usecs && ometrics->hits > 0) { + metrics->avgts.nts = ometrics->avgts.nts; + metrics->cumts.nts = ometrics->cumts.nts; + metrics->maxts.nts = ometrics->maxts.nts; + } + + /* method field */ + if (conf.append_method && ometrics->method) + metrics->method = ometrics->method; + + /* protocol field */ + if (conf.append_protocol && ometrics->protocol) + metrics->protocol = ometrics->protocol; + + /* data field */ + metrics->data = ometrics->data; + + *nmetrics = metrics; +} diff --git a/src/goaccess++/src/gstorage.h b/src/goaccess++/src/gstorage.h new file mode 100644 index 0000000..ea826f0 --- /dev/null +++ b/src/goaccess++/src/gstorage.h @@ -0,0 +1,68 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef GSTORAGE_H_INCLUDED +#define GSTORAGE_H_INCLUDED + +#include "commons.h" + +/* Total number of storage metrics (GSMetric) */ +#define GSMTRC_TOTAL 14 + +/* Enumerated Storage Metrics */ +typedef enum GSMetric_ +{ + MTRC_KEYMAP, + MTRC_ROOTMAP, + MTRC_DATAMAP, + MTRC_UNIQMAP, + MTRC_ROOT, + MTRC_HITS, + MTRC_VISITORS, + MTRC_BW, + MTRC_CUMTS, + MTRC_MAXTS, + MTRC_METHODS, + MTRC_PROTOCOLS, + MTRC_AGENTS, + MTRC_METADATA, +} GSMetric; + +GMetrics *new_gmetrics (void); + +int *int2ptr (int val); +uint64_t *uint642ptr (uint64_t val); + +void *get_storage_metric_by_module (GModule module, GSMetric metric); +void *get_storage_metric (GModule module, GSMetric metric); +void set_data_metrics (GMetrics * ometrics, GMetrics ** nmetrics, + GPercTotals totals); +void set_module_totals (GModule module, GPercTotals * totals); + +#endif // for #ifndef GSTORAGE_H diff --git a/src/goaccess++/src/gstorage.o b/src/goaccess++/src/gstorage.o new file mode 100644 index 0000000000000000000000000000000000000000..6f134657c53756983508e6ba1c107f9320af538b GIT binary patch literal 3136 zcmbuBUuYvm7{Dig>P2mLQ_nwv6K{nm5!xjURjS~zX_|Hmq0O0ADz$94dz&_xKQ%kC zsls{C>){eliYVy2KKSO7kDgK=&IcbX_#nRNOGTk*4<C9;{l3{5yWON9`oZLz`F($8 zcIKPiyqPadhC?ADBt$NelaZi=d=We8Ypkmgi42fK`LUzV7XaMCsGreNF01mz>)0dZ z9kiF+ySJh++DGIj7I%Ff%&vn2=4TE%^AH)(KJWfj(%nP-=F^x!-}*J?WjYYV%>{@X z@jP--ee0{(;?i!}pD#N<?S7M;n|ANa>+W}u`Yz;5=+?%NZXJ1Ru$;8+9_U{lD~Iyn zM6%zb9cQfI9x&of$R3(KK7&!_CVzImEFb)ED97iL{qQ@HjKXgr8Iw~#$*Eu7ig!vw zhqCb_w0&sbcb><`a*IQqQX0}MD{e8ZcS>W>UrXt35jzXX?PGee;|y*8aWw%(4Y&qc z2d#rHf-ZIjFwyqcbO1<P-`=B9!12yQ4DT_V5E!$>z#N-)qe<AM#Ntx+<?Pb#$|kiP zvR0uEd9C79Xrt*6GL_3cr=;drT6Nk|o>fQH^zcZFjYh6!(rS8C%{=9CoC*ccI}WW6 z+SJTE2}21Xi$Ftp&{HJz`U@n~j)yMvpNs8431Q5m+;*Pp1n4yHvuDXm@vZQz6a$8~ z0=GSan%OQhTM~wA+&0B+H^Mn7u@#w-l)9A2O7Sdsj)855`#p|jJSoL*hVxS5?Z||r z+=xy{sja>#NsEw>l*&p<R!WRZ@o_c>59?BxCQ5!g?lJ&?JiRb*u{)>D5w@GB8IB@s zcYE=3-H`d?j&)0f+}j2F8Nt&#ErV>>NA5X|$-|uAAK*BQba@kU0r&&HeGq4z0**Bh zluH15@k!vAN8tgiKA=AXt(X6cz|mg=jlyaMv<VIQGH4W5FQB3Ld*-<g9Q{89jl${% z^!w0y&HK?A{1f1V<o9E7GD4G82d<vEYO5Ae3%NA@jNng()a?ypwPw?1#d3%-RhS*m z7L3`+$x?pKn9GhA@&;*JX0_U|NTp6Q>$FMQHE-Mk@XRPfj!lhP<4UV)8?-^qD%^Q$ ztRl3jX<RX>Nzes5h}dLkUbmZ;U8k@zVm0bzQg3V+v_^*EIZ*J9V~zZI><OL&N|4t* zjPC_jeZqf(bM(h|gy7dWNB{eL+~qvz|E|v;Yf|L-@C^SwAIDl2{`+U}qcgb7uQskn z_T|ZQj_b#oyE6_yAnyctk@JrOe2#O>i4x4OFiO~d;v7Ooc?TIbg^!C|3$F2THNcno z_`LuZbx%}hvqsGo(6s64HPLI@Ra2#Qn-Z1Ple*$KL~S;3fbJtIRJ7Ho)u5h;T5nKW zg-^w>Lrv=yK3=W2)b(ZqijHnVC?>SmjB?Yg*?d9&Qz;OSTOE9#X~0mv<>%myy6-l= z$M7sP;lQ=d6JF!-ScBLV_Zz=kC{IE|9(?l;;=%Ngz;ehC_+ZZe8b1QDm@@;-FJgZ2 zofbARzt9>Ou%8wVTtC6rkL&Y`h!c7mjH2)NyZkSo|0M{*uU*i6fdj>#6#8QS1%4Ge zIDas{&B1Nq$aOFt?@O=qzs*0vZ61f`k6&34FV4T$+!&(q0~OEF4-Eg_1>-Si@azGR e5BR71pL>cBB)Hf3uI?4D@rmAGQ71pa_`d-z?y@=n literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/gwsocket.c b/src/goaccess++/src/gwsocket.c new file mode 100644 index 0000000..4b809e0 --- /dev/null +++ b/src/goaccess++/src/gwsocket.c @@ -0,0 +1,410 @@ +/** + * gwsocket.c -- An interface to send/recv data from/to Web Socket Server + * _______ _______ __ __ + * / ____/ | / / ___/____ _____/ /_____ / /_ + * / / __ | | /| / /\__ \/ __ \/ ___/ //_/ _ \/ __/ + * / /_/ / | |/ |/ /___/ / /_/ / /__/ ,< / __/ /_ + * \____/ |__/|__//____/\____/\___/_/|_|\___/\__/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include <stdio.h> +#include <signal.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> +#include <fcntl.h> +#include <sys/stat.h> +#include <unistd.h> + +#include "gwsocket.h" + +#include "commons.h" +#include "error.h" +#include "goaccess.h" +#include "json.h" +#include "parser.h" +#include "settings.h" +#include "websocket.h" +#include "xmalloc.h" + +/* Allocate memory for a new GWSReader instance. + * + * On success, the newly allocated GWSReader is returned. */ +GWSReader * +new_gwsreader (void) +{ + GWSReader *reader = xmalloc (sizeof (GWSReader)); + memset (reader, 0, sizeof *reader); + + return reader; +} + +/* Allocate memory for a new GWSWriter instance. + * + * On success, the newly allocated GWSWriter is returned. */ +GWSWriter * +new_gwswriter (void) +{ + GWSWriter *writer = xmalloc (sizeof (GWSWriter)); + memset (writer, 0, sizeof *writer); + + return writer; +} + +/* Write the JSON data to a pipe. + * + * If unable to write bytes, -1 is returned. + * On success, the number of written bytes is returned . */ +static int +write_holder (int fd, const char *buf, int len) +{ + int i, ret = 0; + + for (i = 0; i < len;) { + ret = write (fd, buf + i, len - i); + if (ret < 0) { + if (errno == EINTR || errno == EAGAIN) + continue; + return -1; + } else { + i += ret; + } + } + + return i; +} + +/* Clear an incoming FIFO packet and header data. */ +static void +clear_fifo_packet (GWSReader * gwserver) +{ + memset (gwserver->hdr, 0, sizeof (gwserver->hdr)); + gwserver->hlen = 0; + + if (gwserver->packet == NULL) + return; + + if (gwserver->packet->data) + free (gwserver->packet->data); + free (gwserver->packet); + gwserver->packet = NULL; +} + +/* Pack the JSON data into a network byte order and writes it to a + * pipe. + * + * On success, 0 is returned . */ +int +broadcast_holder (int fd, const char *buf, int len) +{ + char *p = NULL, *ptr = NULL; + + p = calloc (sizeof (uint32_t) * 3, sizeof (char)); + + ptr = p; + ptr += pack_uint32 (ptr, 0); + ptr += pack_uint32 (ptr, 0x01); + ptr += pack_uint32 (ptr, len); + + write_holder (fd, p, sizeof (uint32_t) * 3); + write_holder (fd, buf, len); + free (p); + + return 0; +} + +/* Pack the JSON data into a network byte order and write it to a + * pipe. + * + * On success, 0 is returned . */ +int +send_holder_to_client (int fd, int listener, const char *buf, int len) +{ + char *p = NULL, *ptr = NULL; + + p = calloc (sizeof (uint32_t) * 3, sizeof (char)); + + ptr = p; + ptr += pack_uint32 (ptr, listener); + ptr += pack_uint32 (ptr, 0x01); + ptr += pack_uint32 (ptr, len); + + write_holder (fd, p, sizeof (uint32_t) * 3); + write_holder (fd, buf, len); + free (p); + + return 0; +} + +/* Attempt to read data from the named pipe on strict mode. + * Note: For now it only reads on new connections, i.e., onopen. + * + * If there's less data than requested, 0 is returned + * If the thread is done, 1 is returned */ +int +read_fifo (GWSReader * gwsreader, fd_set rfds, fd_set wfds, void (*f) (int)) +{ + WSPacket **pa = &gwsreader->packet; + char *ptr; + int bytes = 0, readh = 0, need = 0, fd = gwsreader->fd, max = 0; + uint32_t listener = 0, type = 0, size = 0; + + FD_ZERO (&rfds); + FD_ZERO (&wfds); + /* self-pipe trick to stop the event loop */ + FD_SET (gwsreader->self_pipe[0], &rfds); + /* fifo */ + FD_SET (fd, &rfds); + max = MAX (fd, gwsreader->self_pipe[0]); + + if (select (max + 1, &rfds, &wfds, NULL, NULL) == -1) { + switch (errno) { + case EINTR: + break; + default: + FATAL ("Unable to select: %s.", strerror (errno)); + } + } + /* handle self-pipe trick */ + if (FD_ISSET (gwsreader->self_pipe[0], &rfds)) + return 1; + if (!FD_ISSET (fd, &rfds)) { + LOG (("No file descriptor set on read_message()\n")); + return 0; + } + + readh = gwsreader->hlen; /* read from header so far */ + need = HDR_SIZE - readh; /* need to read */ + if (need > 0) { + if ((bytes = + ws_read_fifo (fd, gwsreader->hdr, &gwsreader->hlen, readh, need)) < 0) + return 0; + if (bytes != need) + return 0; + } + + /* unpack size, and type */ + ptr = gwsreader->hdr; + ptr += unpack_uint32 (ptr, &listener); + ptr += unpack_uint32 (ptr, &type); + ptr += unpack_uint32 (ptr, &size); + + if ((*pa) == NULL) { + (*pa) = xcalloc (1, sizeof (WSPacket)); + (*pa)->type = type; + (*pa)->size = size; + (*pa)->data = xcalloc (size, sizeof (char)); + } + + readh = (*pa)->len; /* read from payload so far */ + need = (*pa)->size - readh; /* need to read */ + if (need > 0) { + if ((bytes = ws_read_fifo (fd, (*pa)->data, &(*pa)->len, readh, need)) < 0) + return 0; + if (bytes != need) + return 0; + } + clear_fifo_packet (gwsreader); + /* fast forward JSON data to the given client */ + (*f) (listener); + + return 0; +} + +/* Callback once a new connection is established + * + * It writes to a named pipe a header containing the socket, the + * message type, the payload's length and the actual payload */ +static int +onopen (WSPipeOut * pipeout, WSClient * client) +{ + uint32_t hsize = sizeof (uint32_t) * 3; + char *hdr = calloc (hsize, sizeof (char)); + char *ptr = hdr; + + ptr += pack_uint32 (ptr, client->listener); + ptr += pack_uint32 (ptr, WS_OPCODE_TEXT); + ptr += pack_uint32 (ptr, INET6_ADDRSTRLEN); + + ws_write_fifo (pipeout, hdr, hsize); + ws_write_fifo (pipeout, client->remote_ip, INET6_ADDRSTRLEN); + free (hdr); + + return 0; +} + +/* Done parsing, clear out line and set status message. */ +void +set_ready_state (void) +{ + fprintf (stderr, "\33[2K\r"); + fprintf (stderr, "%s\n", INFO_WS_READY_FOR_CONN); +} + +/* Open the named pipe where the websocket server writes to. + * + * If unable to open, -1 is returned. + * On success, return the new file descriptor is returned . */ +int +open_fifoout (void) +{ + const char *fifo = conf.fifo_out ? conf.fifo_out : WS_PIPEOUT; + int fdfifo; + + /* open fifo for reading before writing */ + ws_setfifo (fifo); + if ((fdfifo = open (fifo, O_RDWR | O_NONBLOCK)) == -1) + return -1; + + return fdfifo; +} + +/* Open the named pipe where the websocket server reads from. + * + * If unable to open, -1 is returned. + * On success, return the new file descriptor is returned . */ +int +open_fifoin (void) +{ + const char *fifo = conf.fifo_in ? conf.fifo_in : WS_PIPEIN; + int fdfifo; + + if ((fdfifo = open (fifo, O_WRONLY | O_NONBLOCK)) == -1) + return -1; + + return fdfifo; +} + +/* Set the self-pipe trick to handle select(2). */ +void +set_self_pipe (int *self_pipe) +{ + /* Initialize self pipe. */ + if (pipe (self_pipe) == -1) + FATAL ("Unable to create pipe: %s.", strerror (errno)); + + /* make the read and write pipe non-blocking */ + set_nonblocking (self_pipe[0]); + set_nonblocking (self_pipe[1]); +} + +/* Close the WebSocket server and clean up. */ +void +stop_ws_server (GWSWriter * gwswriter, GWSReader * gwsreader) +{ + pthread_t writer, reader; + WSServer *server = NULL; + + if (!gwsreader || !gwswriter) + return; + if (!(server = gwswriter->server)) + return; + + pthread_mutex_lock (&gwsreader->mutex); + if ((write (gwsreader->self_pipe[1], "x", 1)) == -1 && errno != EAGAIN) + LOG (("Unable to write to self pipe on pipeout.\n")); + pthread_mutex_unlock (&gwsreader->mutex); + + pthread_mutex_lock (&gwswriter->mutex); + /* if it fails to write, force stop */ + if ((write (server->self_pipe[1], "x", 1)) == -1 && errno != EAGAIN) + ws_stop (server); + pthread_mutex_unlock (&gwswriter->mutex); + + reader = gwsreader->thread; + if (pthread_join (reader, NULL) != 0) + LOG (("Unable to join thread: %d %s\n", reader, strerror (errno))); + + writer = gwswriter->thread; + if (pthread_join (writer, NULL) != 0) + LOG (("Unable to join thread: %d %s\n", writer, strerror (errno))); +} + +/* Start the WebSocket server and initialize default options. */ +static void +start_server (void *ptr_data) +{ + GWSWriter *writer = (GWSWriter *) ptr_data; + + writer->server->onopen = onopen; + set_self_pipe (writer->server->self_pipe); + + /* select(2) will block in here */ + ws_start (writer->server); + fprintf (stderr, "Stopping WebSocket server...\n"); + ws_stop (writer->server); +} + +/* Read and set the WebSocket config options. */ +static void +set_ws_opts (void) +{ + ws_set_config_strict (1); + if (conf.addr) + ws_set_config_host (conf.addr); + if (conf.fifo_in) + ws_set_config_pipein (conf.fifo_in); + if (conf.fifo_out) + ws_set_config_pipeout (conf.fifo_out); + if (conf.origin) + ws_set_config_origin (conf.origin); + if (conf.port) + ws_set_config_port (conf.port); + if (conf.sslcert) + ws_set_config_sslcert (conf.sslcert); + if (conf.sslkey) + ws_set_config_sslkey (conf.sslkey); +} + +/* Setup and start the WebSocket threads. */ +int +setup_ws_server (GWSWriter * gwswriter, GWSReader * gwsreader) +{ + int id; + pthread_t *thread; + + if (pthread_mutex_init (&gwswriter->mutex, NULL)) + FATAL ("Failed init gwswriter mutex"); + if (pthread_mutex_init (&gwsreader->mutex, NULL)) + FATAL ("Failed init gwsreader mutex"); + + /* send WS data thread */ + thread = &gwswriter->thread; + + /* pre-init the websocket server, to ensure the FIFOs are created */ + if ((gwswriter->server = ws_init ("0.0.0.0", "7890", set_ws_opts)) == NULL) + FATAL ("Failed init websocket"); + + id = pthread_create (&(*thread), NULL, (void *) &start_server, gwswriter); + if (id) + FATAL ("Return code from pthread_create(): %d", id); + + /* read WS data thread */ + thread = &gwsreader->thread; + id = pthread_create (&(*thread), NULL, (void *) &read_client, gwsreader); + if (id) + FATAL ("Return code from pthread_create(): %d", id); + + return 0; +} diff --git a/src/goaccess++/src/gwsocket.h b/src/goaccess++/src/gwsocket.h new file mode 100644 index 0000000..267f60c --- /dev/null +++ b/src/goaccess++/src/gwsocket.h @@ -0,0 +1,74 @@ +/** + * _______ _______ __ __ + * / ____/ | / / ___/____ _____/ /_____ / /_ + * / / __ | | /| / /\__ \/ __ \/ ___/ //_/ _ \/ __/ + * / /_/ / | |/ |/ /___/ / /_/ / /__/ ,< / __/ /_ + * \____/ |__/|__//____/\____/\___/_/|_|\___/\__/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef GWSOCKET_H_INCLUDED +#define GWSOCKET_H_INCLUDED + +#define GW_VERSION "0.1" + +#include <pthread.h> +#include "websocket.h" + +typedef struct GWSReader_ +{ + int fd; + int self_pipe[2]; /* self-pipe */ + + pthread_mutex_t mutex; /* Mutex fifo out */ + pthread_t thread; /* Thread fifo in */ + + WSPacket *packet; /* FIFO data's buffer */ + char hdr[HDR_SIZE]; /* FIFO header's buffer */ + int hlen; /* header length */ +} GWSReader; + +typedef struct GWSWriter_ +{ + int fd; + + pthread_mutex_t mutex; /* Mutex fifo in */ + pthread_t thread; /* Thread fifo out */ + + WSServer *server; /* WebSocket server */ +} GWSWriter; + +GWSReader *new_gwsreader (void); +GWSWriter *new_gwswriter (void); +int broadcast_holder (int fd, const char *buf, int len); +int open_fifoin (void); +int open_fifoout (void); +int read_fifo (GWSReader * gwsreader, fd_set rfds, fd_set wfds, + void (*f) (int)); +int send_holder_to_client (int fd, int listener, const char *buf, int len); +int setup_ws_server (GWSWriter * gwswriter, GWSReader * gwsreader); +void set_ready_state (void); +void set_self_pipe (int *self_pipe); +void stop_ws_server (GWSWriter * gwswriter, GWSReader * gwsreader); + +#endif // for #ifndef GWSOCKET_H diff --git a/src/goaccess++/src/gwsocket.o b/src/goaccess++/src/gwsocket.o new file mode 100644 index 0000000000000000000000000000000000000000..0ef04bb2f026521b1576c54c94e6fa8c718027ed GIT binary patch literal 17272 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/hoganjs.h b/src/goaccess++/src/hoganjs.h new file mode 100644 index 0000000..bd36089 --- /dev/null +++ b/src/goaccess++/src/hoganjs.h @@ -0,0 +1,782 @@ +const char hogan_js[8555] = { + 0x2f, 0x2a, 0x2a, 0x2a, 0x20, 0x40, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x20, 0x32, 0x30, 0x31, 0x32, 0x20, 0x54, 0x77, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x2a, + 0x20, 0x40, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x68, + 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x61, + 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, + 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x2f, 0x4c, 0x49, 0x43, + 0x45, 0x4e, 0x53, 0x45, 0x2d, 0x32, 0x2e, 0x30, 0x2e, 0x74, 0x78, + 0x74, 0x2a, 0x2f, 0x76, 0x61, 0x72, 0x20, 0x48, 0x6f, 0x67, 0x61, + 0x6e, 0x3d, 0x7b, 0x7d, 0x3b, 0x21, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x2c, + 0x65, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x26, 0x26, 0x22, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, + 0x6f, 0x66, 0x20, 0x6e, 0x26, 0x26, 0x28, 0x76, 0x6f, 0x69, 0x64, + 0x20, 0x30, 0x21, 0x3d, 0x3d, 0x6e, 0x5b, 0x74, 0x5d, 0x3f, 0x69, + 0x3d, 0x6e, 0x5b, 0x74, 0x5d, 0x3a, 0x65, 0x26, 0x26, 0x6e, 0x2e, + 0x67, 0x65, 0x74, 0x26, 0x26, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, + 0x66, 0x20, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x26, 0x26, 0x28, 0x69, + 0x3d, 0x6e, 0x2e, 0x67, 0x65, 0x74, 0x28, 0x74, 0x29, 0x29, 0x29, + 0x2c, 0x69, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x65, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x2c, 0x69, 0x2c, + 0x72, 0x2c, 0x73, 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x28, 0x29, 0x7b, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x28, 0x29, 0x7b, 0x7d, + 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, + 0x3d, 0x74, 0x2c, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, + 0x79, 0x70, 0x65, 0x3d, 0x74, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x75, 0x2c, 0x63, 0x3d, 0x6e, 0x65, 0x77, + 0x20, 0x61, 0x3b, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x3d, 0x6e, + 0x65, 0x77, 0x20, 0x6f, 0x2c, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x54, 0x65, 0x78, 0x74, 0x3d, 0x7b, 0x7d, 0x2c, 0x63, 0x2e, 0x62, + 0x75, 0x66, 0x3d, 0x22, 0x22, 0x2c, 0x69, 0x3d, 0x69, 0x7c, 0x7c, + 0x7b, 0x7d, 0x2c, 0x63, 0x2e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x53, + 0x75, 0x62, 0x73, 0x3d, 0x69, 0x2c, 0x63, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x54, 0x65, 0x78, 0x74, 0x3d, 0x73, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x75, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x29, 0x69, 0x5b, 0x75, + 0x5d, 0x7c, 0x7c, 0x28, 0x69, 0x5b, 0x75, 0x5d, 0x3d, 0x6e, 0x5b, + 0x75, 0x5d, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x75, 0x20, 0x69, + 0x6e, 0x20, 0x69, 0x29, 0x63, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x5b, + 0x75, 0x5d, 0x3d, 0x69, 0x5b, 0x75, 0x5d, 0x3b, 0x72, 0x3d, 0x72, + 0x7c, 0x7c, 0x7b, 0x7d, 0x2c, 0x63, 0x2e, 0x73, 0x74, 0x61, 0x63, + 0x6b, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x3d, 0x72, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x75, 0x20, 0x69, 0x6e, 0x20, 0x65, + 0x29, 0x72, 0x5b, 0x75, 0x5d, 0x7c, 0x7c, 0x28, 0x72, 0x5b, 0x75, + 0x5d, 0x3d, 0x65, 0x5b, 0x75, 0x5d, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x75, 0x20, 0x69, 0x6e, 0x20, 0x72, 0x29, 0x63, 0x2e, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5b, 0x75, 0x5d, 0x3d, + 0x72, 0x5b, 0x75, 0x5d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x63, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x69, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x6e, 0x75, + 0x6c, 0x6c, 0x3d, 0x3d, 0x3d, 0x74, 0x7c, 0x7c, 0x76, 0x6f, 0x69, + 0x64, 0x20, 0x30, 0x3d, 0x3d, 0x3d, 0x74, 0x3f, 0x22, 0x22, 0x3a, + 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x72, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x74, 0x3d, 0x69, 0x28, 0x74, 0x29, 0x2c, 0x6c, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x28, 0x74, 0x29, 0x3f, 0x74, 0x2e, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x73, 0x2c, 0x22, 0x26, + 0x61, 0x6d, 0x70, 0x3b, 0x22, 0x29, 0x2e, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x28, 0x61, 0x2c, 0x22, 0x26, 0x6c, 0x74, 0x3b, + 0x22, 0x29, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, + 0x6f, 0x2c, 0x22, 0x26, 0x67, 0x74, 0x3b, 0x22, 0x29, 0x2e, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x75, 0x2c, 0x22, 0x26, + 0x23, 0x33, 0x39, 0x3b, 0x22, 0x29, 0x2e, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x28, 0x63, 0x2c, 0x22, 0x26, 0x71, 0x75, 0x6f, + 0x74, 0x3b, 0x22, 0x29, 0x3a, 0x74, 0x7d, 0x74, 0x2e, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x2c, + 0x69, 0x29, 0x7b, 0x74, 0x3d, 0x74, 0x7c, 0x7c, 0x7b, 0x7d, 0x2c, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x3d, 0x74, 0x2e, 0x63, 0x6f, + 0x64, 0x65, 0x7c, 0x7c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x2c, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x3d, 0x65, 0x2c, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3d, + 0x69, 0x7c, 0x7c, 0x7b, 0x7d, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x74, 0x65, 0x78, 0x74, 0x3d, 0x6e, 0x7c, 0x7c, 0x22, 0x22, 0x2c, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x3d, 0x74, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x7c, 0x7c, 0x7b, 0x7d, 0x2c, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x3d, 0x74, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x7c, 0x7c, 0x7b, 0x7d, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x62, 0x75, 0x66, 0x3d, 0x22, 0x22, 0x7d, 0x2c, 0x74, 0x2e, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x7b, 0x72, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x22, 0x7d, 0x2c, 0x76, 0x3a, + 0x72, 0x2c, 0x74, 0x3a, 0x69, 0x2c, 0x72, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x72, 0x69, 0x28, + 0x5b, 0x74, 0x5d, 0x2c, 0x6e, 0x7c, 0x7c, 0x7b, 0x7d, 0x2c, 0x65, + 0x29, 0x7d, 0x2c, 0x72, 0x69, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x72, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x29, 0x7d, 0x2c, + 0x65, 0x70, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x2c, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, + 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x61, 0x6c, 0x73, 0x5b, 0x74, 0x5d, 0x2c, 0x72, 0x3d, 0x6e, 0x5b, + 0x69, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x5d, 0x3b, 0x69, 0x66, 0x28, + 0x69, 0x2e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x26, + 0x26, 0x69, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x3d, 0x3d, 0x72, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x2e, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x3b, 0x69, 0x66, 0x28, 0x22, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x3d, 0x3d, 0x74, 0x79, + 0x70, 0x65, 0x6f, 0x66, 0x20, 0x72, 0x29, 0x7b, 0x69, 0x66, 0x28, + 0x21, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x29, 0x74, 0x68, 0x72, + 0x6f, 0x77, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x28, 0x22, 0x4e, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x69, + 0x6c, 0x65, 0x72, 0x20, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x2e, 0x22, 0x29, 0x3b, 0x72, 0x3d, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x63, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, + 0x28, 0x72, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x7d, 0x69, 0x66, 0x28, 0x21, 0x72, + 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x75, 0x6c, + 0x6c, 0x3b, 0x69, 0x66, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5b, 0x74, 0x5d, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x3d, 0x72, 0x2c, 0x69, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x29, 0x7b, 0x6e, 0x2e, 0x73, 0x74, 0x61, 0x63, 0x6b, + 0x54, 0x65, 0x78, 0x74, 0x7c, 0x7c, 0x28, 0x6e, 0x2e, 0x73, 0x74, + 0x61, 0x63, 0x6b, 0x54, 0x65, 0x78, 0x74, 0x3d, 0x7b, 0x7d, 0x29, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x6e, + 0x20, 0x69, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x29, 0x6e, 0x2e, 0x73, + 0x74, 0x61, 0x63, 0x6b, 0x54, 0x65, 0x78, 0x74, 0x5b, 0x6b, 0x65, + 0x79, 0x5d, 0x7c, 0x7c, 0x28, 0x6e, 0x2e, 0x73, 0x74, 0x61, 0x63, + 0x6b, 0x54, 0x65, 0x78, 0x74, 0x5b, 0x6b, 0x65, 0x79, 0x5d, 0x3d, + 0x76, 0x6f, 0x69, 0x64, 0x20, 0x30, 0x21, 0x3d, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, + 0x62, 0x26, 0x26, 0x6e, 0x2e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x54, + 0x65, 0x78, 0x74, 0x5b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x62, 0x5d, 0x3f, 0x6e, 0x2e, + 0x73, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x65, 0x78, 0x74, 0x5b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, + 0x75, 0x62, 0x5d, 0x3a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x29, 0x3b, 0x72, 0x3d, 0x65, 0x28, 0x72, 0x2c, 0x69, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x2c, 0x69, 0x2e, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, 0x2c, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2c, 0x6e, 0x2e, 0x73, 0x74, + 0x61, 0x63, 0x6b, 0x54, 0x65, 0x78, 0x74, 0x29, 0x7d, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5b, 0x74, 0x5d, 0x2e, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x3d, 0x72, 0x2c, + 0x72, 0x7d, 0x2c, 0x72, 0x70, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x2c, 0x69, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x65, 0x70, 0x28, 0x74, 0x2c, 0x65, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3f, 0x72, 0x2e, 0x72, + 0x69, 0x28, 0x6e, 0x2c, 0x65, 0x2c, 0x69, 0x29, 0x3a, 0x22, 0x22, + 0x7d, 0x2c, 0x72, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x69, 0x3d, 0x74, 0x5b, 0x74, 0x2e, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x3b, 0x69, 0x66, 0x28, + 0x21, 0x66, 0x28, 0x69, 0x29, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x65, 0x28, 0x74, 0x2c, + 0x6e, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x29, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x30, 0x3b, 0x72, 0x3c, + 0x69, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x72, 0x2b, + 0x2b, 0x29, 0x74, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x69, 0x5b, + 0x72, 0x5d, 0x29, 0x2c, 0x65, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x74, + 0x68, 0x69, 0x73, 0x29, 0x2c, 0x74, 0x2e, 0x70, 0x6f, 0x70, 0x28, + 0x29, 0x7d, 0x2c, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x2c, 0x69, 0x2c, + 0x72, 0x2c, 0x73, 0x2c, 0x61, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, + 0x6f, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x28, + 0x74, 0x29, 0x26, 0x26, 0x30, 0x3d, 0x3d, 0x3d, 0x74, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3f, 0x21, 0x31, 0x3a, 0x28, 0x22, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, + 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x74, 0x26, 0x26, 0x28, + 0x74, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6d, 0x73, 0x28, 0x74, + 0x2c, 0x6e, 0x2c, 0x65, 0x2c, 0x69, 0x2c, 0x72, 0x2c, 0x73, 0x2c, + 0x61, 0x29, 0x29, 0x2c, 0x6f, 0x3d, 0x21, 0x21, 0x74, 0x2c, 0x21, + 0x69, 0x26, 0x26, 0x6f, 0x26, 0x26, 0x6e, 0x26, 0x26, 0x6e, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x22, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x74, 0x3f, 0x74, 0x3a, 0x6e, 0x5b, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x29, 0x2c, 0x6f, 0x29, 0x7d, + 0x2c, 0x64, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x2c, 0x65, 0x2c, 0x69, 0x2c, 0x72, 0x29, 0x7b, 0x76, + 0x61, 0x72, 0x20, 0x73, 0x2c, 0x61, 0x3d, 0x74, 0x2e, 0x73, 0x70, + 0x6c, 0x69, 0x74, 0x28, 0x22, 0x2e, 0x22, 0x29, 0x2c, 0x6f, 0x3d, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x66, 0x28, 0x61, 0x5b, 0x30, 0x5d, + 0x2c, 0x65, 0x2c, 0x69, 0x2c, 0x72, 0x29, 0x2c, 0x75, 0x3d, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x47, 0x65, 0x74, 0x2c, 0x63, + 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x69, 0x66, 0x28, 0x22, 0x2e, + 0x22, 0x3d, 0x3d, 0x3d, 0x74, 0x26, 0x26, 0x66, 0x28, 0x65, 0x5b, + 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x32, 0x5d, + 0x29, 0x29, 0x6f, 0x3d, 0x65, 0x5b, 0x65, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x3b, 0x65, 0x6c, 0x73, 0x65, + 0x20, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, + 0x31, 0x3b, 0x6c, 0x3c, 0x61, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x6c, 0x2b, 0x2b, 0x29, 0x73, 0x3d, 0x6e, 0x28, 0x61, + 0x5b, 0x6c, 0x5d, 0x2c, 0x6f, 0x2c, 0x75, 0x29, 0x2c, 0x76, 0x6f, + 0x69, 0x64, 0x20, 0x30, 0x21, 0x3d, 0x3d, 0x73, 0x3f, 0x28, 0x63, + 0x3d, 0x6f, 0x2c, 0x6f, 0x3d, 0x73, 0x29, 0x3a, 0x6f, 0x3d, 0x22, + 0x22, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x26, + 0x26, 0x21, 0x6f, 0x3f, 0x21, 0x31, 0x3a, 0x28, 0x72, 0x7c, 0x7c, + 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x21, + 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x6f, 0x7c, 0x7c, + 0x28, 0x65, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x63, 0x29, 0x2c, + 0x6f, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6d, 0x76, 0x28, 0x6f, + 0x2c, 0x65, 0x2c, 0x69, 0x29, 0x2c, 0x65, 0x2e, 0x70, 0x6f, 0x70, + 0x28, 0x29, 0x29, 0x2c, 0x6f, 0x29, 0x7d, 0x2c, 0x66, 0x3a, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x65, + 0x2c, 0x69, 0x2c, 0x72, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, + 0x61, 0x72, 0x20, 0x73, 0x3d, 0x21, 0x31, 0x2c, 0x61, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x2c, 0x6f, 0x3d, 0x21, 0x31, 0x2c, 0x75, 0x3d, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x47, 0x65, 0x74, 0x2c, + 0x63, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, + 0x31, 0x3b, 0x63, 0x3e, 0x3d, 0x30, 0x3b, 0x63, 0x2d, 0x2d, 0x29, + 0x69, 0x66, 0x28, 0x61, 0x3d, 0x65, 0x5b, 0x63, 0x5d, 0x2c, 0x73, + 0x3d, 0x6e, 0x28, 0x74, 0x2c, 0x61, 0x2c, 0x75, 0x29, 0x2c, 0x76, + 0x6f, 0x69, 0x64, 0x20, 0x30, 0x21, 0x3d, 0x3d, 0x73, 0x29, 0x7b, + 0x6f, 0x3d, 0x21, 0x30, 0x3b, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x7d, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6f, 0x3f, 0x28, 0x72, + 0x7c, 0x7c, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x21, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x73, + 0x7c, 0x7c, 0x28, 0x73, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6d, + 0x76, 0x28, 0x73, 0x2c, 0x65, 0x2c, 0x69, 0x29, 0x29, 0x2c, 0x73, + 0x29, 0x3a, 0x72, 0x3f, 0x21, 0x31, 0x3a, 0x22, 0x22, 0x7d, 0x2c, + 0x6c, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x2c, 0x72, 0x2c, 0x73, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x64, 0x65, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x73, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x64, 0x65, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x65, 0x72, 0x73, 0x3d, 0x73, 0x2c, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x62, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, + 0x74, 0x28, 0x69, 0x28, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, + 0x6e, 0x2c, 0x72, 0x29, 0x29, 0x2c, 0x6e, 0x2c, 0x65, 0x29, 0x29, + 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, + 0x72, 0x73, 0x3d, 0x61, 0x2c, 0x21, 0x31, 0x7d, 0x2c, 0x63, 0x74, + 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x2c, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x61, 0x6d, 0x62, + 0x64, 0x61, 0x29, 0x74, 0x68, 0x72, 0x6f, 0x77, 0x20, 0x6e, 0x65, + 0x77, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x4c, 0x61, + 0x6d, 0x62, 0x64, 0x61, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x2e, 0x22, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x2e, 0x63, 0x6f, 0x6d, 0x70, + 0x69, 0x6c, 0x65, 0x28, 0x74, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x29, 0x2e, 0x72, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7d, 0x2c, + 0x62, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x29, 0x7b, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x62, 0x75, 0x66, + 0x2b, 0x3d, 0x74, 0x7d, 0x2c, 0x66, 0x6c, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x62, 0x75, 0x66, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x62, 0x75, 0x66, 0x3d, 0x22, 0x22, 0x2c, 0x74, 0x7d, + 0x2c, 0x6d, 0x73, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x2c, 0x69, 0x2c, 0x72, + 0x2c, 0x73, 0x2c, 0x61, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6f, + 0x2c, 0x75, 0x3d, 0x6e, 0x5b, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x2c, 0x63, 0x3d, 0x74, 0x2e, 0x63, + 0x61, 0x6c, 0x6c, 0x28, 0x75, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x63, + 0x3f, 0x69, 0x3f, 0x21, 0x30, 0x3a, 0x28, 0x6f, 0x3d, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, + 0x62, 0x26, 0x26, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x54, 0x65, 0x78, 0x74, 0x26, 0x26, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x54, 0x65, 0x78, 0x74, 0x5b, 0x74, + 0x68, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, + 0x75, 0x62, 0x5d, 0x3f, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x54, 0x65, 0x78, 0x74, 0x5b, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x75, 0x62, 0x5d, + 0x3a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2c, + 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6c, 0x73, 0x28, 0x63, 0x2c, 0x75, + 0x2c, 0x65, 0x2c, 0x6f, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x72, 0x2c, 0x73, 0x29, 0x2c, 0x61, 0x29, + 0x29, 0x3a, 0x63, 0x7d, 0x2c, 0x6d, 0x76, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x6e, 0x5b, 0x6e, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x2c, + 0x73, 0x3d, 0x74, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x72, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3d, 0x3d, 0x74, 0x79, 0x70, + 0x65, 0x6f, 0x66, 0x20, 0x73, 0x3f, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x63, 0x74, 0x28, 0x69, 0x28, 0x73, 0x2e, 0x63, 0x61, 0x6c, 0x6c, + 0x28, 0x72, 0x29, 0x29, 0x2c, 0x72, 0x2c, 0x65, 0x29, 0x3a, 0x73, + 0x7d, 0x2c, 0x73, 0x75, 0x62, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x2c, 0x69, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x5b, 0x74, 0x5d, 0x3b, 0x72, + 0x26, 0x26, 0x28, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x53, 0x75, 0x62, 0x3d, 0x74, 0x2c, 0x72, 0x28, + 0x6e, 0x2c, 0x65, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x69, 0x29, + 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x75, 0x62, 0x3d, 0x21, 0x31, 0x29, 0x7d, 0x7d, 0x3b, + 0x76, 0x61, 0x72, 0x20, 0x73, 0x3d, 0x2f, 0x26, 0x2f, 0x67, 0x2c, + 0x61, 0x3d, 0x2f, 0x3c, 0x2f, 0x67, 0x2c, 0x6f, 0x3d, 0x2f, 0x3e, + 0x2f, 0x67, 0x2c, 0x75, 0x3d, 0x2f, 0x5c, 0x27, 0x2f, 0x67, 0x2c, + 0x63, 0x3d, 0x2f, 0x5c, 0x22, 0x2f, 0x67, 0x2c, 0x6c, 0x3d, 0x2f, + 0x5b, 0x26, 0x3c, 0x3e, 0x5c, 0x22, 0x5c, 0x27, 0x5d, 0x2f, 0x2c, + 0x66, 0x3d, 0x41, 0x72, 0x72, 0x61, 0x79, 0x2e, 0x69, 0x73, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x7c, 0x7c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x22, 0x5b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x5d, 0x22, 0x3d, 0x3d, 0x3d, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x74, 0x79, 0x70, 0x65, 0x2e, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x2e, 0x63, 0x61, 0x6c, 0x6c, 0x28, 0x74, 0x29, 0x7d, + 0x7d, 0x28, 0x22, 0x75, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x22, 0x21, 0x3d, 0x74, 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x3a, 0x48, 0x6f, 0x67, 0x61, 0x6e, 0x29, + 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, + 0x29, 0x7b, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x22, 0x7d, 0x22, 0x3d, 0x3d, 0x3d, + 0x74, 0x2e, 0x6e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, + 0x74, 0x2e, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, + 0x31, 0x29, 0x26, 0x26, 0x28, 0x74, 0x2e, 0x6e, 0x3d, 0x74, 0x2e, + 0x6e, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x28, 0x30, 0x2c, 0x74, 0x2e, 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2d, 0x31, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x74, 0x72, 0x69, + 0x6d, 0x3f, 0x74, 0x2e, 0x74, 0x72, 0x69, 0x6d, 0x28, 0x29, 0x3a, + 0x74, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x2f, + 0x5e, 0x5c, 0x73, 0x2a, 0x7c, 0x5c, 0x73, 0x2a, 0x24, 0x2f, 0x67, + 0x2c, 0x22, 0x22, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x29, + 0x7b, 0x69, 0x66, 0x28, 0x6e, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x41, + 0x74, 0x28, 0x65, 0x29, 0x21, 0x3d, 0x74, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x41, 0x74, 0x28, 0x30, 0x29, 0x29, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x21, 0x31, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x72, 0x3d, 0x74, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x72, 0x3e, 0x69, 0x3b, 0x69, + 0x2b, 0x2b, 0x29, 0x69, 0x66, 0x28, 0x6e, 0x2e, 0x63, 0x68, 0x61, + 0x72, 0x41, 0x74, 0x28, 0x65, 0x2b, 0x69, 0x29, 0x21, 0x3d, 0x74, + 0x2e, 0x63, 0x68, 0x61, 0x72, 0x41, 0x74, 0x28, 0x69, 0x29, 0x29, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, 0x31, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x21, 0x30, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x28, 0x6e, 0x2c, 0x65, 0x2c, + 0x69, 0x2c, 0x6f, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, + 0x5b, 0x5d, 0x2c, 0x63, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x6c, + 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x66, 0x3d, 0x6e, 0x75, 0x6c, + 0x6c, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x6c, 0x3d, 0x69, 0x5b, 0x69, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x3b, + 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x30, 0x3b, + 0x29, 0x7b, 0x69, 0x66, 0x28, 0x66, 0x3d, 0x6e, 0x2e, 0x73, 0x68, + 0x69, 0x66, 0x74, 0x28, 0x29, 0x2c, 0x6c, 0x26, 0x26, 0x22, 0x3c, + 0x22, 0x3d, 0x3d, 0x6c, 0x2e, 0x74, 0x61, 0x67, 0x26, 0x26, 0x21, + 0x28, 0x66, 0x2e, 0x74, 0x61, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x6b, + 0x29, 0x29, 0x74, 0x68, 0x72, 0x6f, 0x77, 0x20, 0x6e, 0x65, 0x77, + 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x49, 0x6c, 0x6c, + 0x65, 0x67, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x20, 0x69, 0x6e, 0x20, 0x3c, 0x20, 0x73, 0x75, 0x70, 0x65, + 0x72, 0x20, 0x74, 0x61, 0x67, 0x2e, 0x22, 0x29, 0x3b, 0x69, 0x66, + 0x28, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x5b, 0x66, 0x2e, 0x74, + 0x61, 0x67, 0x5d, 0x3c, 0x3d, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, + 0x2e, 0x24, 0x7c, 0x7c, 0x73, 0x28, 0x66, 0x2c, 0x6f, 0x29, 0x29, + 0x69, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x66, 0x29, 0x2c, 0x66, + 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x3d, 0x72, 0x28, 0x6e, 0x2c, + 0x66, 0x2e, 0x74, 0x61, 0x67, 0x2c, 0x69, 0x2c, 0x6f, 0x29, 0x3b, + 0x65, 0x6c, 0x73, 0x65, 0x7b, 0x69, 0x66, 0x28, 0x22, 0x2f, 0x22, + 0x3d, 0x3d, 0x66, 0x2e, 0x74, 0x61, 0x67, 0x29, 0x7b, 0x69, 0x66, + 0x28, 0x30, 0x3d, 0x3d, 0x3d, 0x69, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x74, 0x68, 0x72, 0x6f, 0x77, 0x20, 0x6e, 0x65, + 0x77, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x43, 0x6c, + 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x61, 0x67, 0x20, 0x77, + 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x70, 0x65, 0x6e, + 0x65, 0x72, 0x3a, 0x20, 0x2f, 0x22, 0x2b, 0x66, 0x2e, 0x6e, 0x29, + 0x3b, 0x69, 0x66, 0x28, 0x63, 0x3d, 0x69, 0x2e, 0x70, 0x6f, 0x70, + 0x28, 0x29, 0x2c, 0x66, 0x2e, 0x6e, 0x21, 0x3d, 0x63, 0x2e, 0x6e, + 0x26, 0x26, 0x21, 0x61, 0x28, 0x66, 0x2e, 0x6e, 0x2c, 0x63, 0x2e, + 0x6e, 0x2c, 0x6f, 0x29, 0x29, 0x74, 0x68, 0x72, 0x6f, 0x77, 0x20, + 0x6e, 0x65, 0x77, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, + 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x3a, 0x20, 0x22, 0x2b, 0x63, 0x2e, 0x6e, 0x2b, 0x22, + 0x20, 0x76, 0x73, 0x2e, 0x20, 0x22, 0x2b, 0x66, 0x2e, 0x6e, 0x29, + 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x63, 0x2e, 0x65, + 0x6e, 0x64, 0x3d, 0x66, 0x2e, 0x69, 0x2c, 0x75, 0x7d, 0x22, 0x5c, + 0x6e, 0x22, 0x3d, 0x3d, 0x66, 0x2e, 0x74, 0x61, 0x67, 0x26, 0x26, + 0x28, 0x66, 0x2e, 0x6c, 0x61, 0x73, 0x74, 0x3d, 0x30, 0x3d, 0x3d, + 0x6e, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x7c, 0x7c, 0x22, + 0x5c, 0x6e, 0x22, 0x3d, 0x3d, 0x6e, 0x5b, 0x30, 0x5d, 0x2e, 0x74, + 0x61, 0x67, 0x29, 0x7d, 0x75, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x66, 0x29, 0x7d, 0x69, 0x66, 0x28, 0x69, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x3e, 0x30, 0x29, 0x74, 0x68, 0x72, 0x6f, 0x77, + 0x20, 0x6e, 0x65, 0x77, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x28, + 0x22, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6c, + 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x61, 0x67, 0x3a, 0x20, + 0x22, 0x2b, 0x69, 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x2e, 0x6e, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x28, + 0x74, 0x2c, 0x6e, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, + 0x72, 0x20, 0x65, 0x3d, 0x30, 0x2c, 0x69, 0x3d, 0x6e, 0x2e, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x69, 0x3e, 0x65, 0x3b, 0x65, + 0x2b, 0x2b, 0x29, 0x69, 0x66, 0x28, 0x6e, 0x5b, 0x65, 0x5d, 0x2e, + 0x6f, 0x3d, 0x3d, 0x74, 0x2e, 0x6e, 0x29, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x3d, 0x22, 0x23, + 0x22, 0x2c, 0x21, 0x30, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x29, + 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, + 0x30, 0x2c, 0x72, 0x3d, 0x65, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x3b, 0x72, 0x3e, 0x69, 0x3b, 0x69, 0x2b, 0x2b, 0x29, 0x69, + 0x66, 0x28, 0x65, 0x5b, 0x69, 0x5d, 0x2e, 0x63, 0x3d, 0x3d, 0x74, + 0x26, 0x26, 0x65, 0x5b, 0x69, 0x5d, 0x2e, 0x6f, 0x3d, 0x3d, 0x6e, + 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, 0x30, 0x7d, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x28, 0x74, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x3d, 0x5b, 0x5d, 0x3b, + 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x29, 0x6e, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, + 0x27, 0x22, 0x27, 0x2b, 0x63, 0x28, 0x65, 0x29, 0x2b, 0x27, 0x22, + 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x63, 0x2c, 0x70, 0x2c, 0x74, 0x2c, 0x69, 0x29, 0x20, 0x7b, 0x27, + 0x2b, 0x74, 0x5b, 0x65, 0x5d, 0x2b, 0x22, 0x7d, 0x22, 0x29, 0x3b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x7b, 0x20, 0x22, 0x2b, + 0x6e, 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x2c, 0x22, 0x29, + 0x2b, 0x22, 0x20, 0x7d, 0x22, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, 0x74, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x6e, 0x3d, 0x5b, 0x5d, 0x3b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x2e, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x29, 0x6e, 0x2e, + 0x70, 0x75, 0x73, 0x68, 0x28, 0x27, 0x22, 0x27, 0x2b, 0x63, 0x28, + 0x65, 0x29, 0x2b, 0x27, 0x22, 0x3a, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3a, 0x22, 0x27, 0x2b, 0x63, 0x28, 0x74, 0x2e, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5b, 0x65, 0x5d, 0x2e, 0x6e, 0x61, + 0x6d, 0x65, 0x29, 0x2b, 0x27, 0x22, 0x2c, 0x20, 0x27, 0x2b, 0x75, + 0x28, 0x74, 0x2e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, + 0x5b, 0x65, 0x5d, 0x29, 0x2b, 0x22, 0x7d, 0x22, 0x29, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x61, 0x6c, 0x73, 0x3a, 0x20, 0x7b, 0x22, 0x2b, 0x6e, 0x2e, 0x6a, + 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x2c, 0x22, 0x29, 0x2b, 0x22, 0x7d, + 0x2c, 0x20, 0x73, 0x75, 0x62, 0x73, 0x3a, 0x20, 0x22, 0x2b, 0x6f, + 0x28, 0x74, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x29, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x28, 0x74, 0x29, + 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x6d, 0x2c, 0x22, 0x5c, + 0x5c, 0x5c, 0x5c, 0x22, 0x29, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x28, 0x76, 0x2c, 0x27, 0x5c, 0x5c, 0x22, 0x27, 0x29, + 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x62, 0x2c, + 0x22, 0x5c, 0x5c, 0x6e, 0x22, 0x29, 0x2e, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x28, 0x64, 0x2c, 0x22, 0x5c, 0x5c, 0x72, 0x22, + 0x29, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x78, + 0x2c, 0x22, 0x5c, 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x22, 0x29, + 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x28, 0x77, 0x2c, + 0x22, 0x5c, 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x22, 0x29, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x28, + 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x7e, 0x74, + 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x66, 0x28, 0x22, 0x2e, + 0x22, 0x29, 0x3f, 0x22, 0x64, 0x22, 0x3a, 0x22, 0x66, 0x22, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x28, + 0x74, 0x2c, 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, + 0x22, 0x3c, 0x22, 0x2b, 0x28, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x7c, 0x7c, 0x22, 0x22, 0x29, 0x2c, 0x69, 0x3d, 0x65, + 0x2b, 0x74, 0x2e, 0x6e, 0x2b, 0x79, 0x2b, 0x2b, 0x3b, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x5b, 0x69, 0x5d, 0x3d, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x3a, 0x74, 0x2e, 0x6e, 0x2c, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x3a, 0x7b, 0x7d, 0x7d, 0x2c, 0x6e, 0x2e, + 0x63, 0x6f, 0x64, 0x65, 0x2b, 0x3d, 0x27, 0x74, 0x2e, 0x62, 0x28, + 0x74, 0x2e, 0x72, 0x70, 0x28, 0x22, 0x27, 0x2b, 0x63, 0x28, 0x69, + 0x29, 0x2b, 0x27, 0x22, 0x2c, 0x63, 0x2c, 0x70, 0x2c, 0x22, 0x27, + 0x2b, 0x28, 0x74, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x7c, + 0x7c, 0x22, 0x22, 0x29, 0x2b, 0x27, 0x22, 0x29, 0x29, 0x3b, 0x27, + 0x2c, 0x69, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x68, 0x28, 0x74, 0x2c, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x63, + 0x6f, 0x64, 0x65, 0x2b, 0x3d, 0x22, 0x74, 0x2e, 0x62, 0x28, 0x74, + 0x2e, 0x74, 0x28, 0x74, 0x2e, 0x22, 0x2b, 0x6c, 0x28, 0x74, 0x2e, + 0x6e, 0x29, 0x2b, 0x27, 0x28, 0x22, 0x27, 0x2b, 0x63, 0x28, 0x74, + 0x2e, 0x6e, 0x29, 0x2b, 0x27, 0x22, 0x2c, 0x63, 0x2c, 0x70, 0x2c, + 0x30, 0x29, 0x29, 0x29, 0x3b, 0x27, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x28, 0x74, 0x29, 0x7b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x74, 0x2e, 0x62, 0x28, 0x22, + 0x2b, 0x74, 0x2b, 0x22, 0x29, 0x3b, 0x22, 0x7d, 0x76, 0x61, 0x72, + 0x20, 0x67, 0x3d, 0x2f, 0x5c, 0x53, 0x2f, 0x2c, 0x76, 0x3d, 0x2f, + 0x5c, 0x22, 0x2f, 0x67, 0x2c, 0x62, 0x3d, 0x2f, 0x5c, 0x6e, 0x2f, + 0x67, 0x2c, 0x64, 0x3d, 0x2f, 0x5c, 0x72, 0x2f, 0x67, 0x2c, 0x6d, + 0x3d, 0x2f, 0x5c, 0x5c, 0x2f, 0x67, 0x2c, 0x78, 0x3d, 0x2f, 0x5c, + 0x75, 0x32, 0x30, 0x32, 0x38, 0x2f, 0x2c, 0x77, 0x3d, 0x2f, 0x5c, + 0x75, 0x32, 0x30, 0x32, 0x39, 0x2f, 0x3b, 0x74, 0x2e, 0x74, 0x61, + 0x67, 0x73, 0x3d, 0x7b, 0x22, 0x23, 0x22, 0x3a, 0x31, 0x2c, 0x22, + 0x5e, 0x22, 0x3a, 0x32, 0x2c, 0x22, 0x3c, 0x22, 0x3a, 0x33, 0x2c, + 0x24, 0x3a, 0x34, 0x2c, 0x22, 0x2f, 0x22, 0x3a, 0x35, 0x2c, 0x22, + 0x21, 0x22, 0x3a, 0x36, 0x2c, 0x22, 0x3e, 0x22, 0x3a, 0x37, 0x2c, + 0x22, 0x3d, 0x22, 0x3a, 0x38, 0x2c, 0x5f, 0x76, 0x3a, 0x39, 0x2c, + 0x22, 0x7b, 0x22, 0x3a, 0x31, 0x30, 0x2c, 0x22, 0x26, 0x22, 0x3a, + 0x31, 0x31, 0x2c, 0x5f, 0x74, 0x3a, 0x31, 0x32, 0x7d, 0x2c, 0x74, + 0x2e, 0x73, 0x63, 0x61, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x72, 0x2c, 0x73, 0x29, 0x7b, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x28, 0x29, 0x7b, + 0x6d, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x30, 0x26, + 0x26, 0x28, 0x78, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x7b, 0x74, + 0x61, 0x67, 0x3a, 0x22, 0x5f, 0x74, 0x22, 0x2c, 0x74, 0x65, 0x78, + 0x74, 0x3a, 0x6e, 0x65, 0x77, 0x20, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x6d, 0x29, 0x7d, 0x29, 0x2c, 0x6d, 0x3d, 0x22, 0x22, + 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x28, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x6e, 0x3d, 0x21, 0x30, 0x2c, 0x65, 0x3d, 0x79, 0x3b, 0x65, + 0x3c, 0x78, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x65, + 0x2b, 0x2b, 0x29, 0x69, 0x66, 0x28, 0x6e, 0x3d, 0x74, 0x2e, 0x74, + 0x61, 0x67, 0x73, 0x5b, 0x78, 0x5b, 0x65, 0x5d, 0x2e, 0x74, 0x61, + 0x67, 0x5d, 0x3c, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2e, 0x5f, + 0x76, 0x7c, 0x7c, 0x22, 0x5f, 0x74, 0x22, 0x3d, 0x3d, 0x78, 0x5b, + 0x65, 0x5d, 0x2e, 0x74, 0x61, 0x67, 0x26, 0x26, 0x6e, 0x75, 0x6c, + 0x6c, 0x3d, 0x3d, 0x3d, 0x78, 0x5b, 0x65, 0x5d, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x28, 0x67, 0x29, + 0x2c, 0x21, 0x6e, 0x29, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x21, + 0x31, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x7d, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75, 0x28, + 0x74, 0x2c, 0x6e, 0x29, 0x7b, 0x69, 0x66, 0x28, 0x61, 0x28, 0x29, + 0x2c, 0x74, 0x26, 0x26, 0x6f, 0x28, 0x29, 0x29, 0x66, 0x6f, 0x72, + 0x28, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x69, 0x3d, 0x79, 0x3b, + 0x69, 0x3c, 0x78, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, + 0x69, 0x2b, 0x2b, 0x29, 0x78, 0x5b, 0x69, 0x5d, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x26, 0x26, 0x28, 0x28, 0x65, 0x3d, 0x78, 0x5b, 0x69, + 0x2b, 0x31, 0x5d, 0x29, 0x26, 0x26, 0x22, 0x3e, 0x22, 0x3d, 0x3d, + 0x65, 0x2e, 0x74, 0x61, 0x67, 0x26, 0x26, 0x28, 0x65, 0x2e, 0x69, + 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x3d, 0x78, 0x5b, 0x69, 0x5d, 0x2e, + 0x74, 0x65, 0x78, 0x74, 0x2e, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x29, 0x29, 0x2c, 0x78, 0x2e, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x28, 0x69, 0x2c, 0x31, 0x29, 0x29, 0x3b, 0x65, + 0x6c, 0x73, 0x65, 0x20, 0x6e, 0x7c, 0x7c, 0x78, 0x2e, 0x70, 0x75, + 0x73, 0x68, 0x28, 0x7b, 0x74, 0x61, 0x67, 0x3a, 0x22, 0x5c, 0x6e, + 0x22, 0x7d, 0x29, 0x3b, 0x77, 0x3d, 0x21, 0x31, 0x2c, 0x79, 0x3d, + 0x78, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x28, 0x74, 0x2c, + 0x6e, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x22, 0x3d, + 0x22, 0x2b, 0x53, 0x2c, 0x72, 0x3d, 0x74, 0x2e, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x4f, 0x66, 0x28, 0x69, 0x2c, 0x6e, 0x29, 0x2c, 0x73, + 0x3d, 0x65, 0x28, 0x74, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x74, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x4f, 0x66, 0x28, 0x22, 0x3d, 0x22, 0x2c, 0x6e, 0x29, 0x2b, 0x31, + 0x2c, 0x72, 0x29, 0x29, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, + 0x22, 0x20, 0x22, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x20, 0x54, 0x3d, 0x73, 0x5b, 0x30, 0x5d, 0x2c, 0x53, 0x3d, 0x73, + 0x5b, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, + 0x5d, 0x2c, 0x72, 0x2b, 0x69, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2d, 0x31, 0x7d, 0x76, 0x61, 0x72, 0x20, 0x6c, 0x3d, 0x72, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x66, 0x3d, 0x30, + 0x2c, 0x68, 0x3d, 0x31, 0x2c, 0x70, 0x3d, 0x32, 0x2c, 0x76, 0x3d, + 0x66, 0x2c, 0x62, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x64, 0x3d, + 0x6e, 0x75, 0x6c, 0x6c, 0x2c, 0x6d, 0x3d, 0x22, 0x22, 0x2c, 0x78, + 0x3d, 0x5b, 0x5d, 0x2c, 0x77, 0x3d, 0x21, 0x31, 0x2c, 0x6b, 0x3d, + 0x30, 0x2c, 0x79, 0x3d, 0x30, 0x2c, 0x54, 0x3d, 0x22, 0x7b, 0x7b, + 0x22, 0x2c, 0x53, 0x3d, 0x22, 0x7d, 0x7d, 0x22, 0x3b, 0x66, 0x6f, + 0x72, 0x28, 0x73, 0x26, 0x26, 0x28, 0x73, 0x3d, 0x73, 0x2e, 0x73, + 0x70, 0x6c, 0x69, 0x74, 0x28, 0x22, 0x20, 0x22, 0x29, 0x2c, 0x54, + 0x3d, 0x73, 0x5b, 0x30, 0x5d, 0x2c, 0x53, 0x3d, 0x73, 0x5b, 0x31, + 0x5d, 0x29, 0x2c, 0x6b, 0x3d, 0x30, 0x3b, 0x6c, 0x3e, 0x6b, 0x3b, + 0x6b, 0x2b, 0x2b, 0x29, 0x76, 0x3d, 0x3d, 0x66, 0x3f, 0x69, 0x28, + 0x54, 0x2c, 0x72, 0x2c, 0x6b, 0x29, 0x3f, 0x28, 0x2d, 0x2d, 0x6b, + 0x2c, 0x61, 0x28, 0x29, 0x2c, 0x76, 0x3d, 0x68, 0x29, 0x3a, 0x22, + 0x5c, 0x6e, 0x22, 0x3d, 0x3d, 0x72, 0x2e, 0x63, 0x68, 0x61, 0x72, + 0x41, 0x74, 0x28, 0x6b, 0x29, 0x3f, 0x75, 0x28, 0x77, 0x29, 0x3a, + 0x6d, 0x2b, 0x3d, 0x72, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x41, 0x74, + 0x28, 0x6b, 0x29, 0x3a, 0x76, 0x3d, 0x3d, 0x68, 0x3f, 0x28, 0x6b, + 0x2b, 0x3d, 0x54, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, + 0x31, 0x2c, 0x64, 0x3d, 0x74, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x5b, + 0x72, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x41, 0x74, 0x28, 0x6b, 0x2b, + 0x31, 0x29, 0x5d, 0x2c, 0x62, 0x3d, 0x64, 0x3f, 0x72, 0x2e, 0x63, + 0x68, 0x61, 0x72, 0x41, 0x74, 0x28, 0x6b, 0x2b, 0x31, 0x29, 0x3a, + 0x22, 0x5f, 0x76, 0x22, 0x2c, 0x22, 0x3d, 0x22, 0x3d, 0x3d, 0x62, + 0x3f, 0x28, 0x6b, 0x3d, 0x63, 0x28, 0x72, 0x2c, 0x6b, 0x29, 0x2c, + 0x76, 0x3d, 0x66, 0x29, 0x3a, 0x28, 0x64, 0x26, 0x26, 0x6b, 0x2b, + 0x2b, 0x2c, 0x76, 0x3d, 0x70, 0x29, 0x2c, 0x77, 0x3d, 0x6b, 0x29, + 0x3a, 0x69, 0x28, 0x53, 0x2c, 0x72, 0x2c, 0x6b, 0x29, 0x3f, 0x28, + 0x78, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x7b, 0x74, 0x61, 0x67, + 0x3a, 0x62, 0x2c, 0x6e, 0x3a, 0x65, 0x28, 0x6d, 0x29, 0x2c, 0x6f, + 0x74, 0x61, 0x67, 0x3a, 0x54, 0x2c, 0x63, 0x74, 0x61, 0x67, 0x3a, + 0x53, 0x2c, 0x69, 0x3a, 0x22, 0x2f, 0x22, 0x3d, 0x3d, 0x62, 0x3f, + 0x77, 0x2d, 0x54, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3a, + 0x6b, 0x2b, 0x53, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x7d, + 0x29, 0x2c, 0x6d, 0x3d, 0x22, 0x22, 0x2c, 0x6b, 0x2b, 0x3d, 0x53, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x31, 0x2c, 0x76, + 0x3d, 0x66, 0x2c, 0x22, 0x7b, 0x22, 0x3d, 0x3d, 0x62, 0x26, 0x26, + 0x28, 0x22, 0x7d, 0x7d, 0x22, 0x3d, 0x3d, 0x53, 0x3f, 0x6b, 0x2b, + 0x2b, 0x3a, 0x6e, 0x28, 0x78, 0x5b, 0x78, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2d, 0x31, 0x5d, 0x29, 0x29, 0x29, 0x3a, 0x6d, + 0x2b, 0x3d, 0x72, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x41, 0x74, 0x28, + 0x6b, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x75, + 0x28, 0x77, 0x2c, 0x21, 0x30, 0x29, 0x2c, 0x78, 0x7d, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x6b, 0x3d, 0x7b, 0x5f, 0x74, 0x3a, 0x21, 0x30, + 0x2c, 0x22, 0x5c, 0x6e, 0x22, 0x3a, 0x21, 0x30, 0x2c, 0x24, 0x3a, + 0x21, 0x30, 0x2c, 0x22, 0x2f, 0x22, 0x3a, 0x21, 0x30, 0x7d, 0x3b, + 0x74, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x66, 0x79, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, 0x7b, 0x63, + 0x6f, 0x64, 0x65, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x28, 0x63, 0x2c, 0x70, 0x2c, 0x69, 0x29, 0x20, + 0x7b, 0x20, 0x22, 0x2b, 0x74, 0x2e, 0x77, 0x72, 0x61, 0x70, 0x4d, + 0x61, 0x69, 0x6e, 0x28, 0x6e, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x29, + 0x2b, 0x22, 0x20, 0x7d, 0x2c, 0x22, 0x2b, 0x75, 0x28, 0x6e, 0x29, + 0x2b, 0x22, 0x7d, 0x22, 0x7d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x79, + 0x3d, 0x30, 0x3b, 0x74, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x6e, 0x2c, 0x65, 0x2c, 0x69, 0x29, 0x7b, 0x79, 0x3d, 0x30, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3d, 0x7b, 0x63, 0x6f, 0x64, + 0x65, 0x3a, 0x22, 0x22, 0x2c, 0x73, 0x75, 0x62, 0x73, 0x3a, 0x7b, + 0x7d, 0x2c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x3a, + 0x7b, 0x7d, 0x7d, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, + 0x74, 0x2e, 0x77, 0x61, 0x6c, 0x6b, 0x28, 0x6e, 0x2c, 0x72, 0x29, + 0x2c, 0x69, 0x2e, 0x61, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x3f, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x69, 0x66, 0x79, 0x28, 0x72, 0x2c, 0x65, 0x2c, 0x69, 0x29, + 0x3a, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6d, 0x61, 0x6b, 0x65, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x72, 0x2c, 0x65, + 0x2c, 0x69, 0x29, 0x7d, 0x2c, 0x74, 0x2e, 0x77, 0x72, 0x61, 0x70, + 0x4d, 0x61, 0x69, 0x6e, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x27, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x74, 0x68, 0x69, + 0x73, 0x3b, 0x74, 0x2e, 0x62, 0x28, 0x69, 0x3d, 0x69, 0x7c, 0x7c, + 0x22, 0x22, 0x29, 0x3b, 0x27, 0x2b, 0x74, 0x2b, 0x22, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x20, 0x74, 0x2e, 0x66, 0x6c, 0x28, 0x29, + 0x3b, 0x22, 0x7d, 0x2c, 0x74, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x3d, 0x74, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x2c, 0x74, 0x2e, 0x6d, 0x61, 0x6b, 0x65, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x2c, 0x65, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x74, 0x68, 0x69, + 0x73, 0x2e, 0x6d, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x61, 0x6c, 0x73, 0x28, 0x74, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x69, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x3d, 0x6e, + 0x65, 0x77, 0x20, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x22, 0x63, 0x22, 0x2c, 0x22, 0x70, 0x22, 0x2c, 0x22, 0x69, + 0x22, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x77, 0x72, 0x61, 0x70, + 0x4d, 0x61, 0x69, 0x6e, 0x28, 0x74, 0x2e, 0x63, 0x6f, 0x64, 0x65, + 0x29, 0x29, 0x2c, 0x6e, 0x65, 0x77, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x28, 0x69, + 0x2c, 0x6e, 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2c, 0x65, 0x29, 0x7d, + 0x2c, 0x74, 0x2e, 0x6d, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, + 0x2c, 0x65, 0x3d, 0x7b, 0x73, 0x75, 0x62, 0x73, 0x3a, 0x7b, 0x7d, + 0x2c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x3a, 0x74, + 0x2e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2c, 0x6e, + 0x61, 0x6d, 0x65, 0x3a, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x65, + 0x2e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x29, 0x65, + 0x2e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5b, 0x6e, + 0x5d, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x6d, 0x61, 0x6b, 0x65, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x28, 0x65, 0x2e, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5b, 0x6e, 0x5d, + 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x6e, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x29, 0x65, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x5b, 0x6e, 0x5d, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x22, 0x63, 0x22, + 0x2c, 0x22, 0x70, 0x22, 0x2c, 0x22, 0x74, 0x22, 0x2c, 0x22, 0x69, + 0x22, 0x2c, 0x74, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x5b, 0x6e, 0x5d, + 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x65, 0x7d, + 0x2c, 0x74, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x67, 0x65, 0x6e, 0x3d, + 0x7b, 0x22, 0x23, 0x22, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x65, 0x2e, 0x63, + 0x6f, 0x64, 0x65, 0x2b, 0x3d, 0x22, 0x69, 0x66, 0x28, 0x74, 0x2e, + 0x73, 0x28, 0x74, 0x2e, 0x22, 0x2b, 0x6c, 0x28, 0x6e, 0x2e, 0x6e, + 0x29, 0x2b, 0x27, 0x28, 0x22, 0x27, 0x2b, 0x63, 0x28, 0x6e, 0x2e, + 0x6e, 0x29, 0x2b, 0x27, 0x22, 0x2c, 0x63, 0x2c, 0x70, 0x2c, 0x31, + 0x29, 0x2c, 0x63, 0x2c, 0x70, 0x2c, 0x30, 0x2c, 0x27, 0x2b, 0x6e, + 0x2e, 0x69, 0x2b, 0x22, 0x2c, 0x22, 0x2b, 0x6e, 0x2e, 0x65, 0x6e, + 0x64, 0x2b, 0x27, 0x2c, 0x22, 0x27, 0x2b, 0x6e, 0x2e, 0x6f, 0x74, + 0x61, 0x67, 0x2b, 0x22, 0x20, 0x22, 0x2b, 0x6e, 0x2e, 0x63, 0x74, + 0x61, 0x67, 0x2b, 0x27, 0x22, 0x29, 0x29, 0x7b, 0x74, 0x2e, 0x72, + 0x73, 0x28, 0x63, 0x2c, 0x70, 0x2c, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x2c, 0x70, 0x2c, 0x74, 0x29, 0x7b, + 0x27, 0x2c, 0x74, 0x2e, 0x77, 0x61, 0x6c, 0x6b, 0x28, 0x6e, 0x2e, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2c, 0x65, 0x29, 0x2c, 0x65, 0x2e, + 0x63, 0x6f, 0x64, 0x65, 0x2b, 0x3d, 0x22, 0x7d, 0x29, 0x3b, 0x63, + 0x2e, 0x70, 0x6f, 0x70, 0x28, 0x29, 0x3b, 0x7d, 0x22, 0x7d, 0x2c, + 0x22, 0x5e, 0x22, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x65, 0x2e, 0x63, 0x6f, + 0x64, 0x65, 0x2b, 0x3d, 0x22, 0x69, 0x66, 0x28, 0x21, 0x74, 0x2e, + 0x73, 0x28, 0x74, 0x2e, 0x22, 0x2b, 0x6c, 0x28, 0x6e, 0x2e, 0x6e, + 0x29, 0x2b, 0x27, 0x28, 0x22, 0x27, 0x2b, 0x63, 0x28, 0x6e, 0x2e, + 0x6e, 0x29, 0x2b, 0x27, 0x22, 0x2c, 0x63, 0x2c, 0x70, 0x2c, 0x31, + 0x29, 0x2c, 0x63, 0x2c, 0x70, 0x2c, 0x31, 0x2c, 0x30, 0x2c, 0x30, + 0x2c, 0x22, 0x22, 0x29, 0x29, 0x7b, 0x27, 0x2c, 0x74, 0x2e, 0x77, + 0x61, 0x6c, 0x6b, 0x28, 0x6e, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x2c, 0x65, 0x29, 0x2c, 0x65, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x2b, + 0x3d, 0x22, 0x7d, 0x3b, 0x22, 0x7d, 0x2c, 0x22, 0x3e, 0x22, 0x3a, + 0x66, 0x2c, 0x22, 0x3c, 0x22, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x69, 0x3d, 0x7b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x3a, 0x7b, 0x7d, 0x2c, 0x63, 0x6f, 0x64, 0x65, 0x3a, + 0x22, 0x22, 0x2c, 0x73, 0x75, 0x62, 0x73, 0x3a, 0x7b, 0x7d, 0x2c, + 0x69, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x3a, 0x21, + 0x30, 0x7d, 0x3b, 0x74, 0x2e, 0x77, 0x61, 0x6c, 0x6b, 0x28, 0x6e, + 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2c, 0x69, 0x29, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x72, 0x3d, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x5b, 0x66, 0x28, 0x6e, 0x2c, 0x65, 0x29, + 0x5d, 0x3b, 0x72, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x3d, 0x69, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x2c, 0x72, 0x2e, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x3d, 0x69, 0x2e, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x7d, 0x2c, 0x24, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x2c, 0x65, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x7b, 0x73, 0x75, 0x62, 0x73, + 0x3a, 0x7b, 0x7d, 0x2c, 0x63, 0x6f, 0x64, 0x65, 0x3a, 0x22, 0x22, + 0x2c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x3a, 0x65, + 0x2e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x2c, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x3a, 0x6e, 0x2e, 0x6e, 0x7d, 0x3b, + 0x74, 0x2e, 0x77, 0x61, 0x6c, 0x6b, 0x28, 0x6e, 0x2e, 0x6e, 0x6f, + 0x64, 0x65, 0x73, 0x2c, 0x69, 0x29, 0x2c, 0x65, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x5b, 0x6e, 0x2e, 0x6e, 0x5d, 0x3d, 0x69, 0x2e, 0x63, + 0x6f, 0x64, 0x65, 0x2c, 0x65, 0x2e, 0x69, 0x6e, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x61, 0x6c, 0x7c, 0x7c, 0x28, 0x65, 0x2e, 0x63, 0x6f, + 0x64, 0x65, 0x2b, 0x3d, 0x27, 0x74, 0x2e, 0x73, 0x75, 0x62, 0x28, + 0x22, 0x27, 0x2b, 0x63, 0x28, 0x6e, 0x2e, 0x6e, 0x29, 0x2b, 0x27, + 0x22, 0x2c, 0x63, 0x2c, 0x70, 0x2c, 0x69, 0x29, 0x3b, 0x27, 0x29, + 0x7d, 0x2c, 0x22, 0x5c, 0x6e, 0x22, 0x3a, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x29, 0x7b, 0x6e, + 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x2b, 0x3d, 0x70, 0x28, 0x27, 0x22, + 0x5c, 0x5c, 0x6e, 0x22, 0x27, 0x2b, 0x28, 0x74, 0x2e, 0x6c, 0x61, + 0x73, 0x74, 0x3f, 0x22, 0x22, 0x3a, 0x22, 0x20, 0x2b, 0x20, 0x69, + 0x22, 0x29, 0x29, 0x7d, 0x2c, 0x5f, 0x76, 0x3a, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x29, 0x7b, + 0x6e, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x2b, 0x3d, 0x22, 0x74, 0x2e, + 0x62, 0x28, 0x74, 0x2e, 0x76, 0x28, 0x74, 0x2e, 0x22, 0x2b, 0x6c, + 0x28, 0x74, 0x2e, 0x6e, 0x29, 0x2b, 0x27, 0x28, 0x22, 0x27, 0x2b, + 0x63, 0x28, 0x74, 0x2e, 0x6e, 0x29, 0x2b, 0x27, 0x22, 0x2c, 0x63, + 0x2c, 0x70, 0x2c, 0x30, 0x29, 0x29, 0x29, 0x3b, 0x27, 0x7d, 0x2c, + 0x5f, 0x74, 0x3a, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x28, 0x74, 0x2c, 0x6e, 0x29, 0x7b, 0x6e, 0x2e, 0x63, 0x6f, 0x64, + 0x65, 0x2b, 0x3d, 0x70, 0x28, 0x27, 0x22, 0x27, 0x2b, 0x63, 0x28, + 0x74, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x29, 0x2b, 0x27, 0x22, 0x27, + 0x29, 0x7d, 0x2c, 0x22, 0x7b, 0x22, 0x3a, 0x68, 0x2c, 0x22, 0x26, + 0x22, 0x3a, 0x68, 0x7d, 0x2c, 0x74, 0x2e, 0x77, 0x61, 0x6c, 0x6b, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x65, 0x29, 0x7b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x2c, 0x72, 0x3d, 0x30, 0x2c, 0x73, 0x3d, 0x6e, 0x2e, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x73, 0x3e, 0x72, 0x3b, + 0x72, 0x2b, 0x2b, 0x29, 0x69, 0x3d, 0x74, 0x2e, 0x63, 0x6f, 0x64, + 0x65, 0x67, 0x65, 0x6e, 0x5b, 0x6e, 0x5b, 0x72, 0x5d, 0x2e, 0x74, + 0x61, 0x67, 0x5d, 0x2c, 0x69, 0x26, 0x26, 0x69, 0x28, 0x6e, 0x5b, + 0x72, 0x5d, 0x2c, 0x65, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x20, 0x65, 0x7d, 0x2c, 0x74, 0x2e, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x74, 0x2c, 0x6e, 0x2c, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x65, 0x3d, 0x65, 0x7c, 0x7c, 0x7b, 0x7d, 0x2c, + 0x72, 0x28, 0x74, 0x2c, 0x22, 0x22, 0x2c, 0x5b, 0x5d, 0x2c, 0x65, + 0x2e, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, + 0x73, 0x7c, 0x7c, 0x5b, 0x5d, 0x29, 0x7d, 0x2c, 0x74, 0x2e, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x3d, 0x7b, 0x7d, 0x2c, 0x74, 0x2e, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, 0x3d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x74, 0x2c, 0x6e, 0x29, 0x7b, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5b, 0x74, 0x2c, 0x21, 0x21, + 0x6e, 0x2e, 0x61, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2c, + 0x21, 0x21, 0x6e, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x4c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x2c, 0x6e, 0x2e, 0x64, 0x65, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x73, 0x2c, 0x21, 0x21, + 0x6e, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x47, 0x65, 0x74, 0x5d, + 0x2e, 0x6a, 0x6f, 0x69, 0x6e, 0x28, 0x22, 0x7c, 0x7c, 0x22, 0x29, + 0x7d, 0x2c, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x6e, + 0x2c, 0x65, 0x29, 0x7b, 0x65, 0x3d, 0x65, 0x7c, 0x7c, 0x7b, 0x7d, + 0x3b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x74, 0x2e, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, 0x28, 0x6e, 0x2c, 0x65, 0x29, + 0x2c, 0x72, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x63, + 0x68, 0x65, 0x5b, 0x69, 0x5d, 0x3b, 0x69, 0x66, 0x28, 0x72, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x73, 0x3d, 0x72, 0x2e, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x3b, 0x66, 0x6f, 0x72, 0x28, + 0x76, 0x61, 0x72, 0x20, 0x61, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x29, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x73, 0x5b, 0x61, 0x5d, + 0x2e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x3b, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x7d, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x72, 0x3d, 0x74, 0x68, 0x69, 0x73, 0x2e, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x28, 0x74, 0x68, + 0x69, 0x73, 0x2e, 0x73, 0x63, 0x61, 0x6e, 0x28, 0x6e, 0x2c, 0x65, + 0x2e, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x73, + 0x29, 0x2c, 0x6e, 0x2c, 0x65, 0x29, 0x2c, 0x6e, 0x2c, 0x65, 0x29, + 0x2c, 0x74, 0x68, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, + 0x5b, 0x69, 0x5d, 0x3d, 0x72, 0x7d, 0x7d, 0x28, 0x22, 0x75, 0x6e, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x21, 0x3d, 0x74, + 0x79, 0x70, 0x65, 0x6f, 0x66, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x3f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x3a, + 0x48, 0x6f, 0x67, 0x61, 0x6e, 0x29, 0x3b, 0x00 +}; + +const int hogan_js_length = 8555; diff --git a/src/goaccess++/src/json.c b/src/goaccess++/src/json.c new file mode 100644 index 0000000..cefbde1 --- /dev/null +++ b/src/goaccess++/src/json.c @@ -0,0 +1,1251 @@ +/** + * output.c -- output json to the standard output stream + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#define _LARGEFILE_SOURCE +#define _LARGEFILE64_SOURCE +#define _FILE_OFFSET_BITS 64 + +#include <errno.h> +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <time.h> +#include <unistd.h> +#include <inttypes.h> + +#include "json.h" + +#ifdef HAVE_LIBTOKYOCABINET +#include "tcabdb.h" +#else +#include "gkhash.h" +#endif + +#include "error.h" +#include "settings.h" +#include "ui.h" +#include "util.h" +#include "websocket.h" +#include "xmalloc.h" + +typedef struct GPanel_ +{ + GModule module; + void (*render) (GJSON * json, GHolder * h, GPercTotals totals, + const struct GPanel_ *); + void (*subitems) (GJSON * json, GHolderItem * item, GPercTotals totals, + int size, int iisp); +} GPanel; + +/* number of new lines (applicable fields) */ +static int nlines = 0; +/* escape HTML in JSON data values */ +static int escape_html_output = 0; + +static void print_json_data (GJSON * json, GHolder * h, GPercTotals totals, + const struct GPanel_ *); +static void print_json_host_items (GJSON * json, GHolderItem * item, + GPercTotals totals, int size, int iisp); +static void print_json_sub_items (GJSON * json, GHolderItem * item, + GPercTotals totals, int size, int iisp); + +/* *INDENT-OFF* */ +static GPanel paneling[] = { + {VISITORS , print_json_data , NULL } , + {REQUESTS , print_json_data , NULL } , + {REQUESTS_STATIC , print_json_data , NULL } , + {NOT_FOUND , print_json_data , NULL } , + {HOSTS , print_json_data , print_json_host_items } , + {OS , print_json_data , print_json_sub_items } , + {BROWSERS , print_json_data , print_json_sub_items } , + {VISIT_TIMES , print_json_data , NULL } , + {VIRTUAL_HOSTS , print_json_data , NULL } , + {REFERRERS , print_json_data , NULL } , + {REFERRING_SITES , print_json_data , NULL } , + {KEYPHRASES , print_json_data , NULL } , + {STATUS_CODES , print_json_data , print_json_sub_items } , + {REMOTE_USER , print_json_data , NULL } , +#ifdef HAVE_GEOLOCATION + {GEO_LOCATION , print_json_data , print_json_sub_items } , +#endif +}; +/* *INDENT-ON* */ + +/* Get panel output data for the given module. + * + * If not found, NULL is returned. + * On success, panel data is returned . */ +static GPanel * +panel_lookup (GModule module) +{ + int i, num_panels = ARRAY_SIZE (paneling); + + for (i = 0; i < num_panels; i++) { + if (paneling[i].module == module) + return &paneling[i]; + } + return NULL; +} + +/* Allocate memory for a new GJSON instance. + * + * On success, the newly allocated GJSON is returned . */ +static GJSON * +new_gjson (void) +{ + GJSON *json = xcalloc (1, sizeof (GJSON)); + + return json; +} + +/* Free malloc'd GJSON resources. */ +static void +free_json (GJSON * json) +{ + if (!json) + return; + + free (json->buf); + free (json); +} + +/* Set number of new lines when --json-pretty-print is used. */ +void +set_json_nlines (int newline) +{ + nlines = newline; +} + +/* Make sure that we have enough storage to write "len" bytes at the + * current offset. */ +static void +set_json_buffer (GJSON * json, int len) +{ + char *tmp = NULL; + /* Maintain a null byte at the end of the buffer */ + size_t need = json->offset + len + 1, newlen = 0; + + if (need <= json->size) + return; + + if (json->size == 0) { + newlen = INIT_BUF_SIZE; + } else { + newlen = json->size; + newlen += newlen / 2; /* resize by 3/2 */ + } + + if (newlen < need) + newlen = need; + + tmp = realloc (json->buf, newlen); + if (tmp == NULL) { + free_json (json); + FATAL (("Unable to realloc JSON buffer.\n")); + } + json->buf = tmp; + json->size = newlen; +} + +#pragma GCC diagnostic ignored "-Wformat-nonliteral" +/* A wrapper function to write a formatted string and expand the + * buffer if necessary. + * + * On success, data is outputted. */ +static void +pjson (GJSON * json, const char *fmt, ...) +{ + int len = 0; + va_list args; + + va_start (args, fmt); + if ((len = vsnprintf (NULL, 0, fmt, args)) < 0) + FATAL (("Unable to write JSON formatted data.\n")); + va_end (args); + + /* malloc/realloc buffer as needed */ + set_json_buffer (json, len); + + va_start (args, fmt); /* restart args */ + vsprintf (json->buf + json->offset, fmt, args); + va_end (args); + json->offset += len; +} + +/* A wrapper function to output a formatted string to a file pointer. + * + * On success, data is outputted. */ +void +fpjson (FILE * fp, const char *fmt, ...) +{ + va_list args; + + va_start (args, fmt); + vfprintf (fp, fmt, args); + va_end (args); +} + +#pragma GCC diagnostic warning "-Wformat-nonliteral" + +/* Escape all other characters accordingly. */ +static void +escape_json_other (GJSON * json, char **s) +{ + /* Since JSON data is bootstrapped into the HTML document of a report, + * then we perform the following four translations in case weird stuff + * is put into the document. + * + * Note: The following scenario assumes that the user manually makes + * the HTML report a PHP file (GoAccess doesn't allow the creation of a + * PHP file): + * + * /index.html<?php eval(base_decode('iZWNobyAiPGgxPkhFTExPPC9oMT4iOw=='));?> + */ + if (escape_html_output) { + switch (**s) { + case '\'': + pjson (json, "'"); + return; + case '&': + pjson (json, "&"); + return; + case '<': + pjson (json, "<"); + return; + case '>': + pjson (json, ">"); + return; + } + } + + if ((uint8_t) ** s <= 0x1f) { + /* Control characters (U+0000 through U+001F) */ + char buf[8]; + snprintf (buf, sizeof buf, "\\u%04x", **s); + pjson (json, "%s", buf); + } else if ((uint8_t) ** s == 0xe2 && (uint8_t) * (*s + 1) == 0x80 && + (uint8_t) * (*s + 2) == 0xa8) { + /* Line separator (U+2028) - 0xE2 0x80 0xA8 */ + pjson (json, "\\u2028"); + *s += 2; + } else if ((uint8_t) ** s == 0xe2 && (uint8_t) * (*s + 1) == 0x80 && + (uint8_t) * (*s + 2) == 0xa9) { + /* Paragraph separator (U+2019) - 0xE2 0x80 0xA9 */ + pjson (json, "\\u2029"); + *s += 2; + } else { + char buf[2]; + snprintf (buf, sizeof buf, "%c", **s); + pjson (json, "%s", buf); + } +} + +/* Escape and write to a valid JSON buffer. + * + * On success, escaped JSON data is outputted. */ +static void +escape_json_output (GJSON * json, char *s) +{ + while (*s) { + switch (*s) { + /* These are required JSON special characters that need to be escaped. */ + case '"': + pjson (json, "\\\""); + break; + case '\\': + pjson (json, "\\\\"); + break; + case '\b': + pjson (json, "\\b"); + break; + case '\f': + pjson (json, "\\f"); + break; + case '\n': + pjson (json, "\\n"); + break; + case '\r': + pjson (json, "\\r"); + break; + case '\t': + pjson (json, "\\t"); + break; + case '/': + pjson (json, "\\/"); + break; + default: + escape_json_other (json, &s); + break; + } + s++; + } +} + +/* Write to a buffer a JSON a key/value pair. */ +static void +pskeysval (GJSON * json, const char *key, const char *val, int sp, int last) +{ + if (!last) + pjson (json, "%.*s\"%s\": \"%s\",%.*s", sp, TAB, key, val, nlines, NL); + else + pjson (json, "%.*s\"%s\": \"%s\"", sp, TAB, key, val); +} + +/* Output a JSON string key, array value pair. */ +void +fpskeyaval (FILE * fp, const char *key, const char *val, int sp, int last) +{ + if (!last) + fpjson (fp, "%.*s\"%s\": %s,%.*s", sp, TAB, key, val, nlines, NL); + else + fpjson (fp, "%.*s\"%s\": %s", sp, TAB, key, val); +} + +/* Output a JSON a key/value pair. */ +void +fpskeysval (FILE * fp, const char *key, const char *val, int sp, int last) +{ + if (!last) + fpjson (fp, "%.*s\"%s\": \"%s\",%.*s", sp, TAB, key, val, nlines, NL); + else + fpjson (fp, "%.*s\"%s\": \"%s\"", sp, TAB, key, val); +} + +/* Write to a buffer a JSON string key, int value pair. */ +static void +pskeyival (GJSON * json, const char *key, int val, int sp, int last) +{ + if (!last) + pjson (json, "%.*s\"%s\": %d,%.*s", sp, TAB, key, val, nlines, NL); + else + pjson (json, "%.*s\"%s\": %d", sp, TAB, key, val); +} + +/* Output a JSON string key, int value pair. */ +void +fpskeyival (FILE * fp, const char *key, int val, int sp, int last) +{ + if (!last) + fpjson (fp, "%.*s\"%s\": %d,%.*s", sp, TAB, key, val, nlines, NL); + else + fpjson (fp, "%.*s\"%s\": %d", sp, TAB, key, val); +} + +/* Write to a buffer a JSON string key, uint64_t value pair. */ +static void +pskeyu64val (GJSON * json, const char *key, uint64_t val, int sp, int last) +{ + if (!last) + pjson (json, "%.*s\"%s\": %" PRIu64 ",%.*s", sp, TAB, key, val, nlines, NL); + else + pjson (json, "%.*s\"%s\": %" PRIu64 "", sp, TAB, key, val); +} + +/* Write to a buffer a JSON string key, int value pair. */ +static void +pskeyfval (GJSON * json, const char *key, float val, int sp, int last) +{ + if (!last) + pjson (json, "%.*s\"%s\": \"%4.2f\",%.*s", sp, TAB, key, val, nlines, NL); + else + pjson (json, "%.*s\"%s\": \"%4.2f\"", sp, TAB, key, val); +} + +/* Write to a buffer the open block item object. */ +static void +popen_obj (GJSON * json, int iisp) +{ + /* open data metric block */ + pjson (json, "%.*s{%.*s", iisp, TAB, nlines, NL); +} + +/* Output the open block item object. */ +void +fpopen_obj (FILE * fp, int iisp) +{ + /* open data metric block */ + fpjson (fp, "%.*s{%.*s", iisp, TAB, nlines, NL); +} + +/* Write to a buffer a JSON open object attribute. */ +static void +popen_obj_attr (GJSON * json, const char *attr, int sp) +{ + /* open object attribute */ + pjson (json, "%.*s\"%s\": {%.*s", sp, TAB, attr, nlines, NL); +} + +/* Output a JSON open object attribute. */ +void +fpopen_obj_attr (FILE * fp, const char *attr, int sp) +{ + /* open object attribute */ + fpjson (fp, "%.*s\"%s\": {%.*s", sp, TAB, attr, nlines, NL); +} + +/* Close JSON object. */ +static void +pclose_obj (GJSON * json, int iisp, int last) +{ + if (!last) + pjson (json, "%.*s%.*s},%.*s", nlines, NL, iisp, TAB, nlines, NL); + else + pjson (json, "%.*s%.*s}", nlines, NL, iisp, TAB); +} + +/* Close JSON object. */ +void +fpclose_obj (FILE * fp, int iisp, int last) +{ + if (!last) + fpjson (fp, "%.*s%.*s},%.*s", nlines, NL, iisp, TAB, nlines, NL); + else + fpjson (fp, "%.*s%.*s}", nlines, NL, iisp, TAB); +} + +/* Write to a buffer a JSON open array attribute. */ +static void +popen_arr_attr (GJSON * json, const char *attr, int sp) +{ + /* open object attribute */ + pjson (json, "%.*s\"%s\": [%.*s", sp, TAB, attr, nlines, NL); +} + +/* Output a JSON open array attribute. */ +void +fpopen_arr_attr (FILE * fp, const char *attr, int sp) +{ + /* open object attribute */ + fpjson (fp, "%.*s\"%s\": [%.*s", sp, TAB, attr, nlines, NL); +} + +/* Close the data array. */ +static void +pclose_arr (GJSON * json, int sp, int last) +{ + if (!last) + pjson (json, "%.*s%.*s],%.*s", nlines, NL, sp, TAB, nlines, NL); + else + pjson (json, "%.*s%.*s]", nlines, NL, sp, TAB); +} + +/* Close the data array. */ +void +fpclose_arr (FILE * fp, int sp, int last) +{ + if (!last) + fpjson (fp, "%.*s%.*s],%.*s", nlines, NL, sp, TAB, nlines, NL); + else + fpjson (fp, "%.*s%.*s]", nlines, NL, sp, TAB); +} + +/* Write to a buffer the date and time for the overall object. */ +static void +poverall_datetime (GJSON * json, int sp) +{ + char now[DATE_TIME]; + + generate_time (); + strftime (now, DATE_TIME, "%Y-%m-%d %H:%M:%S %z", now_tm); + + pskeysval (json, OVERALL_DATETIME, now, sp, 0); +} + +/* Write to a buffer the date and time for the overall object. */ +static void +poverall_start_end_date (GJSON * json, GHolder * h, int sp) +{ + char *start = NULL, *end = NULL; + + if (h->idx == 0 || get_start_end_parsing_dates (h, &start, &end, "%d/%b/%Y")) + return; + + pskeysval (json, OVERALL_STARTDATE, start, sp, 0); + pskeysval (json, OVERALL_ENDDATE, end, sp, 0); + + free (end); + free (start); +} + +/* Write to a buffer date and time for the overall object. */ +static void +poverall_requests (GJSON * json, GLog * glog, int sp) +{ + pskeyival (json, OVERALL_REQ, glog->processed, sp, 0); +} + +/* Write to a buffer the number of valid requests under the overall + * object. */ +static void +poverall_valid_reqs (GJSON * json, GLog * glog, int sp) +{ + pskeyival (json, OVERALL_VALID, glog->valid, sp, 0); +} + +/* Write to a buffer the number of invalid requests under the overall + * object. */ +static void +poverall_invalid_reqs (GJSON * json, GLog * glog, int sp) +{ + pskeyival (json, OVERALL_FAILED, glog->invalid, sp, 0); +} + +/* Write to a buffer the total processed time under the overall + * object. */ +static void +poverall_processed_time (GJSON * json, int sp) +{ + uint64_t elapsed_proc = end_proc - start_proc; + +#ifdef TCB_BTREE + if (conf.store_accumulated_time) + elapsed_proc = (uint64_t) ht_get_genstats ("accumulated_time"); +#endif + + pskeyu64val (json, OVERALL_GENTIME, elapsed_proc, sp, 0); +} + +/* Write to a buffer the total number of unique visitors under the + * overall object. */ +static void +poverall_visitors (GJSON * json, int sp) +{ + pskeyival (json, OVERALL_VISITORS, ht_get_size_uniqmap (VISITORS), sp, 0); +} + +/* Write to a buffer the total number of unique files under the + * overall object. */ +static void +poverall_files (GJSON * json, int sp) +{ + pskeyival (json, OVERALL_FILES, ht_get_size_datamap (REQUESTS), sp, 0); +} + +/* Write to a buffer the total number of excluded requests under the + * overall object. */ +static void +poverall_excluded (GJSON * json, GLog * glog, int sp) +{ + pskeyival (json, OVERALL_EXCL_HITS, glog->excluded_ip, sp, 0); +} + +/* Write to a buffer the number of referrers under the overall object. */ +static void +poverall_refs (GJSON * json, int sp) +{ + pskeyival (json, OVERALL_REF, ht_get_size_datamap (REFERRERS), sp, 0); +} + +/* Write to a buffer the number of not found (404s) under the overall + * object. */ +static void +poverall_notfound (GJSON * json, int sp) +{ + pskeyival (json, OVERALL_NOTFOUND, ht_get_size_datamap (NOT_FOUND), sp, 0); +} + +/* Write to a buffer the number of static files (jpg, pdf, etc) under + * the overall object. */ +static void +poverall_static_files (GJSON * json, int sp) +{ + pskeyival (json, OVERALL_STATIC, ht_get_size_datamap (REQUESTS_STATIC), sp, + 0); +} + +/* Write to a buffer the size of the log being parsed under the + * overall object. */ +static void +poverall_log_size (GJSON * json, int sp) +{ + pjson (json, "%.*s\"%s\": %jd,%.*s", sp, TAB, OVERALL_LOGSIZE, + (intmax_t) get_log_sizes (), nlines, NL); +} + +/* Write to a buffer the total bandwidth consumed under the overall + * object. */ +static void +poverall_bandwidth (GJSON * json, GLog * glog, int sp) +{ + pskeyu64val (json, OVERALL_BANDWIDTH, glog->resp_size, sp, 0); +} + +static void +poverall_log_path (GJSON * json, int idx, int isp) +{ + pjson (json, "%.*s\"", isp, TAB); + if (conf.filenames[idx][0] == '-' && conf.filenames[idx][1] == '\0') + pjson (json, "STDIN"); + else + escape_json_output (json, (char *) conf.filenames[idx]); + pjson (json, conf.filenames_idx - 1 != idx ? "\",\n" : "\""); +} + +/* Write to a buffer the path of the log being parsed under the + * overall object. */ +static void +poverall_log (GJSON * json, int sp) +{ + int idx, isp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + popen_arr_attr (json, OVERALL_LOG, sp); + for (idx = 0; idx < conf.filenames_idx; ++idx) + poverall_log_path (json, idx, isp); + pclose_arr (json, sp, 1); +} + +/* Write to a buffer hits data. */ +static void +phits (GJSON * json, GMetrics * nmetrics, int sp) +{ + int isp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + popen_obj_attr (json, "hits", sp); + /* print hits */ + pskeyival (json, "count", nmetrics->hits, isp, 0); + /* print hits percent */ + pskeyfval (json, "percent", nmetrics->hits_perc, isp, 1); + pclose_obj (json, sp, 0); +} + +/* Write to a buffer visitors data. */ +static void +pvisitors (GJSON * json, GMetrics * nmetrics, int sp) +{ + int isp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + popen_obj_attr (json, "visitors", sp); + /* print visitors */ + pskeyival (json, "count", nmetrics->visitors, isp, 0); + /* print visitors percent */ + pskeyfval (json, "percent", nmetrics->visitors_perc, isp, 1); + pclose_obj (json, sp, 0); +} + +/* Write to a buffer bandwidth data. */ +static void +pbw (GJSON * json, GMetrics * nmetrics, int sp) +{ + int isp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + if (!conf.bandwidth) + return; + + popen_obj_attr (json, "bytes", sp); + /* print bandwidth */ + pskeyu64val (json, "count", nmetrics->bw.nbw, isp, 0); + /* print bandwidth percent */ + pskeyfval (json, "percent", nmetrics->bw_perc, isp, 1); + pclose_obj (json, sp, 0); +} + +/* Write to a buffer average time served data. */ +static void +pavgts (GJSON * json, GMetrics * nmetrics, int sp) +{ + if (!conf.serve_usecs) + return; + pskeyu64val (json, "avgts", nmetrics->avgts.nts, sp, 0); +} + +/* Write to a buffer cumulative time served data. */ +static void +pcumts (GJSON * json, GMetrics * nmetrics, int sp) +{ + if (!conf.serve_usecs) + return; + pskeyu64val (json, "cumts", nmetrics->cumts.nts, sp, 0); +} + +/* Write to a buffer maximum time served data. */ +static void +pmaxts (GJSON * json, GMetrics * nmetrics, int sp) +{ + if (!conf.serve_usecs) + return; + pskeyu64val (json, "maxts", nmetrics->maxts.nts, sp, 0); +} + +/* Write to a buffer request method data. */ +static void +pmethod (GJSON * json, GMetrics * nmetrics, int sp) +{ + /* request method */ + if (conf.append_method && nmetrics->method) { + pskeysval (json, "method", nmetrics->method, sp, 0); + } +} + +/* Write to a buffer protocol method data. */ +static void +pprotocol (GJSON * json, GMetrics * nmetrics, int sp) +{ + /* request protocol */ + if (conf.append_protocol && nmetrics->protocol) { + pskeysval (json, "protocol", nmetrics->protocol, sp, 0); + } +} + +/* Write to a buffer the hits meta data object. */ +static void +pmeta_data_unique (GJSON * json, int ht_size, int sp) +{ + int isp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + popen_obj_attr (json, "data", sp); + pskeyu64val (json, "unique", ht_size, isp, 1); + pclose_obj (json, sp, 1); +} + +/* Write to a buffer the hits meta data object. */ +static void +pmeta_data_hits (GJSON * json, GModule module, int sp) +{ + int isp = 0; + int max = 0, min = 0; + + ht_get_hits_min_max (module, &min, &max); + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + popen_obj_attr (json, "hits", sp); + pskeyu64val (json, "count", ht_get_meta_data (module, "hits"), isp, 0); + pskeyival (json, "max", max, isp, 0); + pskeyival (json, "min", min, isp, 1); + pclose_obj (json, sp, 0); +} + +/* Write to a buffer the visitors meta data object. */ +static void +pmeta_data_visitors (GJSON * json, GModule module, int sp) +{ + int isp = 0; + int max = 0, min = 0; + + ht_get_visitors_min_max (module, &min, &max); + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + popen_obj_attr (json, "visitors", sp); + pskeyu64val (json, "count", ht_get_meta_data (module, "visitors"), isp, 0); + pskeyival (json, "max", max, isp, 0); + pskeyival (json, "min", min, isp, 1); + pclose_obj (json, sp, 0); +} + +/* Write to a buffer the bytes meta data object. */ +static void +pmeta_data_bw (GJSON * json, GModule module, int sp) +{ + int isp = 0; + uint64_t max = 0, min = 0; + + if (!conf.bandwidth) + return; + + ht_get_bw_min_max (module, &min, &max); + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + popen_obj_attr (json, "bytes", sp); + pskeyu64val (json, "count", ht_get_meta_data (module, "bytes"), isp, 0); + pskeyu64val (json, "max", max, isp, 0); + pskeyu64val (json, "min", min, isp, 1); + pclose_obj (json, sp, 0); +} + +/* Write to a buffer the average of the average time served meta data + * object. */ +static void +pmeta_data_avgts (GJSON * json, GModule module, int sp) +{ + int isp = 0; + uint64_t avg = 0, hits = 0, cumts = 0; + + if (!conf.serve_usecs) + return; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + cumts = ht_get_meta_data (module, "cumts"); + hits = ht_get_meta_data (module, "hits"); + if (hits > 0) + avg = cumts / hits; + + popen_obj_attr (json, "avgts", sp); + pskeyu64val (json, "avg", avg, isp, 1); + pclose_obj (json, sp, 0); +} + +/* Write to a buffer the cumulative time served meta data object. */ +static void +pmeta_data_cumts (GJSON * json, GModule module, int sp) +{ + int isp = 0; + uint64_t max = 0, min = 0; + + if (!conf.serve_usecs) + return; + + ht_get_cumts_min_max (module, &min, &max); + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + popen_obj_attr (json, "cumts", sp); + pskeyu64val (json, "count", ht_get_meta_data (module, "cumts"), isp, 0); + pskeyu64val (json, "max", max, isp, 0); + pskeyu64val (json, "min", min, isp, 1); + pclose_obj (json, sp, 0); +} + +/* Write to a buffer the maximum time served meta data object. */ +static void +pmeta_data_maxts (GJSON * json, GModule module, int sp) +{ + int isp = 0; + uint64_t max = 0, min = 0; + + if (!conf.serve_usecs) + return; + + ht_get_maxts_min_max (module, &min, &max); + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + popen_obj_attr (json, "maxts", sp); + pskeyu64val (json, "count", ht_get_meta_data (module, "maxts"), isp, 0); + pskeyu64val (json, "max", max, isp, 0); + pskeyu64val (json, "min", min, isp, 1); + pclose_obj (json, sp, 0); +} + +/* Entry point to output panel's metadata. */ +static void +print_meta_data (GJSON * json, GHolder * h, int sp) +{ + int isp = 0, iisp = 0; + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1, iisp = sp + 2; + + popen_obj_attr (json, "metadata", isp); + + pmeta_data_avgts (json, h->module, iisp); + pmeta_data_cumts (json, h->module, iisp); + pmeta_data_maxts (json, h->module, iisp); + pmeta_data_bw (json, h->module, iisp); + pmeta_data_visitors (json, h->module, iisp); + pmeta_data_hits (json, h->module, iisp); + pmeta_data_unique (json, h->ht_size, iisp); + + pclose_obj (json, isp, 0); +} + +/* A wrapper function to ouput data metrics per panel. */ +static void +print_json_block (GJSON * json, GMetrics * nmetrics, int sp) +{ + /* print hits */ + phits (json, nmetrics, sp); + /* print visitors */ + pvisitors (json, nmetrics, sp); + /* print bandwidth */ + pbw (json, nmetrics, sp); + + /* print time served metrics */ + pavgts (json, nmetrics, sp); + pcumts (json, nmetrics, sp); + pmaxts (json, nmetrics, sp); + + /* print protocol/method */ + pmethod (json, nmetrics, sp); + pprotocol (json, nmetrics, sp); + + /* data metric */ + pjson (json, "%.*s\"data\": \"", sp, TAB); + escape_json_output (json, nmetrics->data); + pjson (json, "\""); +} + +/* Add the given user agent value into our array of GAgents. + * + * On error, 1 is returned. + * On success, the user agent is added to the array and 0 is returned. */ +static int +fill_host_agents (void *val, void *user_data) +{ + GAgents *agents = user_data; + char *agent = ht_get_host_agent_val ((*(int *) val)); + + if (agent == NULL) + return 1; + + agents->items[agents->size].agent = agent; + agents->size++; + + return 0; +} + +/* Iterate over the list of agents */ +static void +load_host_agents (void *list, void *user_data, GO_UNUSED int count) +{ + GSLList *lst = list; + GAgents *agents = user_data; + + agents->items = new_gagent_item (count); + list_foreach (lst, fill_host_agents, agents); +} + +/* A wrapper function to ouput an array of user agents for each host. */ +static void +process_host_agents (GJSON * json, GHolderItem * item, int iisp) +{ + GAgents *agents = new_gagents (); + int i, n = 0, iiisp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + iiisp = iisp + 1; + + if (set_host_agents (item->metrics->data, load_host_agents, agents) == 1) + return; + + pjson (json, ",%.*s%.*s\"items\": [%.*s", nlines, NL, iisp, TAB, nlines, NL); + + n = agents->size > 10 ? 10 : agents->size; + for (i = 0; i < n; ++i) { + pjson (json, "%.*s\"", iiisp, TAB); + escape_json_output (json, agents->items[i].agent); + if (i == n - 1) + pjson (json, "\""); + else + pjson (json, "\",%.*s", nlines, NL); + } + + pclose_arr (json, iisp, 1); + + /* clean stuff up */ + free_agents_array (agents); +} + +/* A wrapper function to ouput children nodes. */ +static void +print_json_sub_items (GJSON * json, GHolderItem * item, GPercTotals totals, + int size, int iisp) +{ + GMetrics *nmetrics; + GSubItem *iter; + GSubList *sl = item->sub_list; + int i = 0, iiisp = 0, iiiisp = 0; + + /* no sub items, nothing to output */ + if (size == 0) + return; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + iiisp = iisp + 1, iiiisp = iiisp + 1; + + if (sl == NULL) + return; + + pjson (json, ",%.*s%.*s\"items\": [%.*s", nlines, NL, iisp, TAB, nlines, NL); + for (iter = sl->head; iter; iter = iter->next, i++) { + set_data_metrics (iter->metrics, &nmetrics, totals); + + popen_obj (json, iiisp); + print_json_block (json, nmetrics, iiiisp); + pclose_obj (json, iiisp, (i == sl->size - 1)); + free (nmetrics); + } + pclose_arr (json, iisp, 1); +} + +/* A wrapper function to ouput geolocation fields for the given host. */ +static void +print_json_host_geo (GJSON * json, GSubList * sl, int iisp) +{ + GSubItem *iter; + int i; + static const char *key[] = { + "country", + "city", + "hostname", + }; + + pjson (json, ",%.*s", nlines, NL); + + /* Iterate over child properties (country, city, etc) and print them out */ + for (i = 0, iter = sl->head; iter; iter = iter->next, i++) { + pjson (json, "%.*s\"%s\": \"", iisp, TAB, key[iter->metrics->id]); + escape_json_output (json, iter->metrics->data); + pjson (json, (i != sl->size - 1) ? "\",%.*s" : "\"", nlines, NL); + } +} + +/* Ouput Geolocation data and the IP's hostname. */ +static void +print_json_host_items (GJSON * json, GHolderItem * item, GPercTotals totals, + int size, int iisp) +{ + (void) totals; + /* print geolocation fields */ + if (size > 0 && item->sub_list != NULL) + print_json_host_geo (json, item->sub_list, iisp); + + /* print list of user agents */ + if (conf.list_agents) + process_host_agents (json, item, iisp); +} + +/* Ouput data and determine if there are children nodes. */ +static void +print_data_metrics (GJSON * json, GHolder * h, GPercTotals totals, int sp, + const struct GPanel_ *panel) +{ + GMetrics *nmetrics; + int i, isp = 0, iisp = 0, iiisp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1, iisp = sp + 2, iiisp = sp + 3; + + popen_arr_attr (json, "data", isp); + /* output data metrics */ + for (i = 0; i < h->idx; i++) { + set_data_metrics (h->items[i].metrics, &nmetrics, totals); + + /* open data metric block */ + popen_obj (json, iisp); + /* output data metric block */ + print_json_block (json, nmetrics, iiisp); + /* if there are children nodes, spit them out */ + if (panel->subitems) + panel->subitems (json, h->items + i, totals, h->sub_items_size, iiisp); + /* close data metric block */ + pclose_obj (json, iisp, (i == h->idx - 1)); + + free (nmetrics); + } + pclose_arr (json, isp, 1); +} + +/* Entry point to ouput data metrics per panel. */ +static void +print_json_data (GJSON * json, GHolder * h, GPercTotals totals, + const struct GPanel_ *panel) +{ + int sp = 0; + /* use tabs to prettify output */ + if (conf.json_pretty_print) + sp = 1; + + /* output open panel attribute */ + popen_obj_attr (json, module_to_id (h->module), sp); + /* output panel metadata */ + print_meta_data (json, h, sp); + /* output panel data */ + print_data_metrics (json, h, totals, sp, panel); + /* output close panel attribute */ + pclose_obj (json, sp, 1); +} + +/* Get the number of available panels. + * + * On success, the total number of available panels is returned . */ +static int +num_panels (void) +{ + size_t idx = 0, npanels = 0; + + FOREACH_MODULE (idx, module_list) + npanels++; + + return npanels; +} + +/* Write to a buffer overall data. */ +static void +print_json_summary (GJSON * json, GLog * glog, GHolder * holder) +{ + int sp = 0, isp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + sp = 1, isp = 2; + + popen_obj_attr (json, GENER_ID, sp); + /* generated start/end date */ + poverall_start_end_date (json, holder, isp); + /* generated date time */ + poverall_datetime (json, isp); + /* total requests */ + poverall_requests (json, glog, isp); + /* valid requests */ + poverall_valid_reqs (json, glog, isp); + /* invalid requests */ + poverall_invalid_reqs (json, glog, isp); + /* generated time */ + poverall_processed_time (json, isp); + /* visitors */ + poverall_visitors (json, isp); + /* files */ + poverall_files (json, isp); + /* excluded hits */ + poverall_excluded (json, glog, isp); + /* referrers */ + poverall_refs (json, isp); + /* not found */ + poverall_notfound (json, isp); + /* static files */ + poverall_static_files (json, isp); + /* log size */ + poverall_log_size (json, isp); + /* bandwidth */ + poverall_bandwidth (json, glog, isp); + /* log path */ + poverall_log (json, isp); + pclose_obj (json, sp, num_panels () > 0 ? 0 : 1); +} + +/* Iterate over all panels and generate json output. */ +static GJSON * +init_json_output (GLog * glog, GHolder * holder) +{ + GJSON *json = NULL; + GModule module; + GPercTotals totals; + const GPanel *panel = NULL; + size_t idx = 0, npanels = num_panels (), cnt = 0; + + json = new_gjson (); + + popen_obj (json, 0); + print_json_summary (json, glog, holder); + + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + + if (!(panel = panel_lookup (module))) + continue; + + set_module_totals (module, &totals); + panel->render (json, holder + module, totals, panel); + pjson (json, (cnt++ != npanels - 1) ? ",%.*s" : "%.*s", nlines, NL); + } + + pclose_obj (json, 0, 1); + + return json; +} + +/* Open and write to a dynamically sized output buffer. + * + * On success, the newly allocated buffer is returned . */ +char * +get_json (GLog * glog, GHolder * holder, int escape_html) +{ + GJSON *json = NULL; + char *buf = NULL; + + if (holder == NULL) + return NULL; + + escape_html_output = escape_html; + if ((json = init_json_output (glog, holder)) && json->size > 0) { + buf = xstrdup (json->buf); + free_json (json); + } + + return buf; +} + +/* Entry point to generate a json report writing it to the fp */ +void +output_json (GLog * glog, GHolder * holder, const char *filename) +{ + GJSON *json = NULL; + FILE *fp; + + if (filename != NULL) + fp = fopen (filename, "w"); + else + fp = stdout; + + if (!fp) + FATAL ("Unable to open JSON file: %s.", strerror (errno)); + + /* use new lines to prettify output */ + if (conf.json_pretty_print) + nlines = 1; + + /* spit it out */ + if ((json = init_json_output (glog, holder)) && json->size > 0) { + fprintf (fp, "%s", json->buf); + free_json (json); + } + + fclose (fp); +} diff --git a/src/goaccess++/src/json.h b/src/goaccess++/src/json.h new file mode 100644 index 0000000..2d042f2 --- /dev/null +++ b/src/goaccess++/src/json.h @@ -0,0 +1,65 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#ifndef JSON_H_INCLUDED +#define JSON_H_INCLUDED + +#define TAB "\t\t\t\t\t\t\t\t\t\t\t" +#define NL "\n\n\n" + +#include "parser.h" + +typedef struct GJSON_ +{ + char *buf; /* pointer to buffer */ + size_t size; /* size of malloc'd buffer */ + size_t offset; /* current write offset */ +} GJSON; + +char *get_json (GLog * glog, GHolder * holder, int escape_html); + +void output_json (GLog * glog, GHolder * holder, const char *filename); +void set_json_nlines (int nl); + +void fpskeyival (FILE * fp, const char *key, int val, int sp, int last); +void fpskeysval (FILE * fp, const char *key, const char *val, int sp, int last); +void fpskeyaval (FILE * fp, const char *key, const char *val, int sp, int last); + +void fpclose_arr (FILE * fp, int sp, int last); +void fpclose_obj (FILE * fp, int iisp, int last); +void fpjson (FILE * fp, const char *fmt, ...); +void fpopen_arr_attr (FILE * fp, const char *attr, int sp); +void fpopen_obj_attr (FILE * fp, const char *attr, int sp); +void fpopen_obj (FILE * fp, int iisp); + +#endif diff --git a/src/goaccess++/src/json.o b/src/goaccess++/src/json.o new file mode 100644 index 0000000000000000000000000000000000000000..1094e7c4dad5e510e5283eff982bbe40c05f57f2 GIT binary patch literal 34256 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/khash.h b/src/goaccess++/src/khash.h new file mode 100644 index 0000000..0708bd5 --- /dev/null +++ b/src/goaccess++/src/khash.h @@ -0,0 +1,675 @@ +/* The MIT License + + Copyright (c) 2008, 2009, 2011 by Attractive Chaos <attractor@live.co.uk> + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +/* + An example: + +#include "khash.h" +KHASH_MAP_INIT_INT(32, char) +int main() { + int ret, is_missing; + khiter_t k; + khash_t(32) *h = kh_init(32); + k = kh_put(32, h, 5, &ret); + kh_value(h, k) = 10; + k = kh_get(32, h, 10); + is_missing = (k == kh_end(h)); + k = kh_get(32, h, 5); + kh_del(32, h, k); + for (k = kh_begin(h); k != kh_end(h); ++k) + if (kh_exist(h, k)) kh_value(h, k) = 1; + kh_destroy(32, h); + return 0; +} +*/ + +/* + 2013-05-02 (0.2.8): + + * Use quadratic probing. When the capacity is power of 2, stepping function + i*(i+1)/2 guarantees to traverse each bucket. It is better than double + hashing on cache performance and is more robust than linear probing. + + In theory, double hashing should be more robust than quadratic probing. + However, my implementation is probably not for large hash tables, because + the second hash function is closely tied to the first hash function, + which reduce the effectiveness of double hashing. + + Reference: http://research.cs.vt.edu/AVresearch/hashing/quadratic.php + + 2011-12-29 (0.2.7): + + * Minor code clean up; no actual effect. + + 2011-09-16 (0.2.6): + + * The capacity is a power of 2. This seems to dramatically improve the + speed for simple keys. Thank Zilong Tan for the suggestion. Reference: + + - http://code.google.com/p/ulib/ + - http://nothings.org/computer/judy/ + + * Allow to optionally use linear probing which usually has better + performance for random input. Double hashing is still the default as it + is more robust to certain non-random input. + + * Added Wang's integer hash function (not used by default). This hash + function is more robust to certain non-random input. + + 2011-02-14 (0.2.5): + + * Allow to declare global functions. + + 2009-09-26 (0.2.4): + + * Improve portability + + 2008-09-19 (0.2.3): + + * Corrected the example + * Improved interfaces + + 2008-09-11 (0.2.2): + + * Improved speed a little in kh_put() + + 2008-09-10 (0.2.1): + + * Added kh_clear() + * Fixed a compiling error + + 2008-09-02 (0.2.0): + + * Changed to token concatenation which increases flexibility. + + 2008-08-31 (0.1.2): + + * Fixed a bug in kh_get(), which has not been tested previously. + + 2008-08-31 (0.1.1): + + * Added destructor +*/ + + +#ifndef __AC_KHASH_H +#define __AC_KHASH_H + +/*! + @header + + Generic hash table library. + */ + +#define AC_VERSION_KHASH_H "0.2.8" + +#include <stdlib.h> +#include <string.h> +#include <limits.h> + +/* compiler specific configuration */ + +#if UINT_MAX == 0xffffffffu +typedef unsigned int khint32_t; +#elif ULONG_MAX == 0xffffffffu +typedef unsigned long khint32_t; +#endif + +#if ULONG_MAX == ULLONG_MAX +typedef unsigned long khint64_t; +#else +typedef unsigned long long khint64_t; +#endif + +#ifndef kh_inline +#ifdef _MSC_VER +#define kh_inline __inline +#else +#define kh_inline inline +#endif +#endif /* kh_inline */ + +#ifndef klib_unused +#if (defined __clang__ && __clang_major__ >= 3) || (defined __GNUC__ && __GNUC__ >= 3) +#define klib_unused __attribute__ ((__unused__)) +#else +#define klib_unused +#endif +#endif /* klib_unused */ + +typedef khint32_t khint_t; +typedef khint_t khiter_t; + +#define __ac_isempty(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&2) +#define __ac_isdel(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&1) +#define __ac_iseither(flag, i) ((flag[i>>4]>>((i&0xfU)<<1))&3) +#define __ac_set_isdel_false(flag, i) (flag[i>>4]&=~(1ul<<((i&0xfU)<<1))) +#define __ac_set_isempty_false(flag, i) (flag[i>>4]&=~(2ul<<((i&0xfU)<<1))) +#define __ac_set_isboth_false(flag, i) (flag[i>>4]&=~(3ul<<((i&0xfU)<<1))) +#define __ac_set_isdel_true(flag, i) (flag[i>>4]|=1ul<<((i&0xfU)<<1)) + +#define __ac_fsize(m) ((m) < 16? 1 : (m)>>4) + +#ifndef kroundup32 +#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x)) +#endif + +#ifndef kcalloc +#define kcalloc(N,Z) calloc(N,Z) +#endif +#ifndef kmalloc +#define kmalloc(Z) malloc(Z) +#endif +#ifndef krealloc +#define krealloc(P,Z) realloc(P,Z) +#endif +#ifndef kfree +#define kfree(P) free(P) +#endif + +static const double __ac_HASH_UPPER = 0.77; + +#define __KHASH_TYPE(name, khkey_t, khval_t) \ + typedef struct kh_##name##_s { \ + khint_t n_buckets, size, n_occupied, upper_bound; \ + khint32_t *flags; \ + khkey_t *keys; \ + khval_t *vals; \ + } kh_##name##_t; + +#define __KHASH_PROTOTYPES(name, khkey_t, khval_t) \ + extern kh_##name##_t *kh_init_##name(void); \ + extern void kh_destroy_##name(kh_##name##_t *h); \ + extern void kh_clear_##name(kh_##name##_t *h); \ + extern khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key); \ + extern int kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets); \ + extern khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret); \ + extern void kh_del_##name(kh_##name##_t *h, khint_t x); \ + +#define __KHASH_IMPL(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \ + SCOPE kh_##name##_t *kh_init_##name(void) { \ + return (kh_##name##_t*) kcalloc(1, sizeof(kh_##name##_t)); \ + } \ + SCOPE void kh_destroy_##name(kh_##name##_t *h) \ + { \ + if (h) { \ + kfree ((void *) h->keys); \ + kfree (h->flags); \ + kfree ((void *) h->vals); \ + kfree (h); \ + } \ + } \ + SCOPE void kh_clear_##name(kh_##name##_t *h) \ + { \ + if (h && h->flags) { \ + memset (h->flags, 0xaa, __ac_fsize (h->n_buckets) * sizeof (khint32_t)); \ + h->size = h->n_occupied = 0; \ + } \ + } \ + SCOPE khint_t kh_get_##name(const kh_##name##_t *h, khkey_t key) \ + { \ + if (h->n_buckets) { \ + khint_t k, i, last, mask, step = 0; \ + mask = h->n_buckets - 1; \ + k = __hash_func (key); \ + i = k & mask; \ + last = i; \ + while (!__ac_isempty (h->flags, i) && \ + (__ac_isdel (h->flags, i) || !__hash_equal (h->keys[i], key))) { \ + i = (i + (++step)) & mask; \ + if (i == last) \ + return h->n_buckets; \ + } \ + return __ac_iseither (h->flags, i) ? h->n_buckets : i; \ + } else \ + return 0; \ + } \ + SCOPE int kh_resize_##name(kh_##name##_t *h, khint_t new_n_buckets) \ + { \ + /* This function uses 0.25*n_buckets bytes of working space instead of */ \ + /* [sizeof(key_t+val_t)+.25]*n_buckets. */ \ + khint32_t *new_flags = 0; \ + khint_t j = 1; \ + { \ + kroundup32 (new_n_buckets); \ + if (new_n_buckets < 4) \ + new_n_buckets = 4; \ + if (h->size >= (khint_t) (new_n_buckets * __ac_HASH_UPPER + 0.5)) \ + j = 0; /* requested size is too small */ \ + else { /* hash table size to be changed (shrink or expand); rehash */ \ + new_flags = (khint32_t *) kmalloc (__ac_fsize (new_n_buckets) * sizeof (khint32_t)); \ + if (!new_flags) \ + return -1; \ + memset (new_flags, 0xaa, __ac_fsize (new_n_buckets) * sizeof (khint32_t)); \ + if (h->n_buckets < new_n_buckets) { /* expand */ \ + khkey_t *new_keys = (khkey_t *) krealloc ((void *) h->keys, new_n_buckets * sizeof (khkey_t)); \ + if (!new_keys) { \ + kfree (new_flags); \ + return -1; \ + } \ + h->keys = new_keys; \ + if (kh_is_map) { \ + khval_t *new_vals = (khval_t *) krealloc ((void *) h->vals, new_n_buckets * sizeof (khval_t)); \ + if (!new_vals) { \ + kfree (new_flags); \ + return -1; \ + } \ + h->vals = new_vals; \ + } \ + } /* otherwise shrink */ \ + } \ + } \ + if (j) { /* rehashing is needed */ \ + for (j = 0; j != h->n_buckets; ++j) { \ + if (__ac_iseither (h->flags, j) == 0) { \ + khkey_t key = h->keys[j]; \ + khval_t val; \ + khint_t new_mask; \ + new_mask = new_n_buckets - 1; \ + if (kh_is_map) \ + val = h->vals[j]; \ + __ac_set_isdel_true (h->flags, j); \ + while (1) { /* kick-out process; sort of like in Cuckoo hashing */ \ + khint_t k, i, step = 0; \ + k = __hash_func (key); \ + i = k & new_mask; \ + while (!__ac_isempty (new_flags, i)) \ + i = (i + (++step)) & new_mask; \ + __ac_set_isempty_false (new_flags, i); \ + if (i < h->n_buckets && __ac_iseither (h->flags, i) == 0) { /* kick out the existing element */ \ + { \ + khkey_t tmp = h->keys[i]; \ + h->keys[i] = key; \ + key = tmp; \ + } \ + if (kh_is_map) { \ + khval_t tmp = h->vals[i]; \ + h->vals[i] = val; \ + val = tmp; \ + } \ + __ac_set_isdel_true (h->flags, i); /* mark it as deleted in the old hash table */ \ + } else { /* write the element and jump out of the loop */ \ + h->keys[i] = key; \ + if (kh_is_map) \ + h->vals[i] = val; \ + break; \ + } \ + } \ + } \ + } \ + if (h->n_buckets > new_n_buckets) { /* shrink the hash table */ \ + h->keys = (khkey_t *) krealloc ((void *) h->keys, new_n_buckets * sizeof (khkey_t)); \ + if (kh_is_map) \ + h->vals = (khval_t *) krealloc ((void *) h->vals, new_n_buckets * sizeof (khval_t)); \ + } \ + kfree (h->flags); /* free the working space */ \ + h->flags = new_flags; \ + h->n_buckets = new_n_buckets; \ + h->n_occupied = h->size; \ + h->upper_bound = (khint_t) (h->n_buckets * __ac_HASH_UPPER + 0.5); \ + } \ + return 0; \ + } \ + SCOPE khint_t kh_put_##name(kh_##name##_t *h, khkey_t key, int *ret) \ + { \ + khint_t x; \ + if (h->n_occupied >= h->upper_bound) { /* update the hash table */ \ + if (h->n_buckets > (h->size << 1)) { \ + if (kh_resize_##name (h, h->n_buckets - 1) < 0) { /* clear "deleted" elements */ \ + *ret = -1; \ + return h->n_buckets; \ + } \ + } else if (kh_resize_##name (h, h->n_buckets + 1) < 0) { /* expand the hash table */ \ + *ret = -1; \ + return h->n_buckets; \ + } \ + } /* TODO: to implement automatically shrinking; resize() already support shrinking */ \ + { \ + khint_t k, i, site, last, mask = h->n_buckets - 1, step = 0; \ + x = site = h->n_buckets; \ + k = __hash_func (key); \ + i = k & mask; \ + if (__ac_isempty (h->flags, i)) \ + x = i; /* for speed up */ \ + else { \ + last = i; \ + while (!__ac_isempty (h->flags, i) && (__ac_isdel (h->flags, i) || !__hash_equal (h->keys[i], key))) { \ + if (__ac_isdel (h->flags, i)) \ + site = i; \ + i = (i + (++step)) & mask; \ + if (i == last) { \ + x = site; \ + break; \ + } \ + } \ + if (x == h->n_buckets) { \ + if (__ac_isempty (h->flags, i) && site != h->n_buckets) \ + x = site; \ + else \ + x = i; \ + } \ + } \ + } \ + if (__ac_isempty (h->flags, x)) { /* not present at all */ \ + h->keys[x] = key; \ + __ac_set_isboth_false (h->flags, x); \ + ++h->size; \ + ++h->n_occupied; \ + *ret = 1; \ + } else if (__ac_isdel (h->flags, x)) { /* deleted */ \ + h->keys[x] = key; \ + __ac_set_isboth_false (h->flags, x); \ + ++h->size; \ + *ret = 2; \ + } else \ + *ret = 0; /* Don't touch h->keys[x] if present and not deleted */ \ + return x; \ + } \ + SCOPE void kh_del_##name(kh_##name##_t *h, khint_t x) \ + { \ + if (x != h->n_buckets && !__ac_iseither (h->flags, x)) { \ + __ac_set_isdel_true (h->flags, x); \ + --h->size; \ + } \ + } \ + +#define KHASH_DECLARE(name, khkey_t, khval_t) \ + __KHASH_TYPE(name, khkey_t, khval_t) \ + __KHASH_PROTOTYPES(name, khkey_t, khval_t) + +#define KHASH_INIT2(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \ + __KHASH_TYPE(name, khkey_t, khval_t) \ + __KHASH_IMPL(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) + +#define KHASH_INIT(name, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \ + KHASH_INIT2(name, static kh_inline klib_unused, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \ + +/* --- BEGIN OF HASH FUNCTIONS --- */ + +/*! @function + @abstract Integer hash function + @param key The integer [khint32_t] + @return The hash value [khint_t] + */ +#define kh_int_hash_func(key) (khint32_t)(key) +/*! @function + @abstract Integer comparison function + */ +#define kh_int_hash_equal(a, b) ((a) == (b)) +/*! @function + @abstract 64-bit integer hash function + @param key The integer [khint64_t] + @return The hash value [khint_t] + */ +#define kh_int64_hash_func(key) (khint32_t)((key)>>33^(key)^(key)<<11) +/*! @function + @abstract 64-bit integer comparison function + */ +#define kh_int64_hash_equal(a, b) ((a) == (b)) +/*! @function + @abstract const char* hash function + @param s Pointer to a null terminated string + @return The hash value + */ +static kh_inline khint_t +__ac_X31_hash_string (const char *s) +{ + khint_t h = (khint_t) * s; + if (h) + for (++s; *s; ++s) + h = (h << 5) - h + (khint_t) * s; + return h; +} + +/*! @function + @abstract Another interface to const char* hash function + @param key Pointer to a null terminated string [const char*] + @return The hash value [khint_t] + */ +#define kh_str_hash_func(key) __ac_X31_hash_string(key) +/*! @function + @abstract Const char* comparison function + */ +#define kh_str_hash_equal(a, b) (strcmp(a, b) == 0) + +static kh_inline khint_t +__ac_Wang_hash (khint_t key) +{ + key += ~(key << 15); + key ^= (key >> 10); + key += (key << 3); + key ^= (key >> 6); + key += ~(key << 11); + key ^= (key >> 16); + return key; +} + +#define kh_int_hash_func2(k) __ac_Wang_hash((khint_t)key) + +/* --- END OF HASH FUNCTIONS --- */ + +/* Other convenient macros... */ + +/*! + @abstract Type of the hash table. + @param name Name of the hash table [symbol] + */ +#define khash_t(name) kh_##name##_t + +/*! @function + @abstract Initiate a hash table. + @param name Name of the hash table [symbol] + @return Pointer to the hash table [khash_t(name)*] + */ +#define kh_init(name) kh_init_##name() + +/*! @function + @abstract Destroy a hash table. + @param name Name of the hash table [symbol] + @param h Pointer to the hash table [khash_t(name)*] + */ +#define kh_destroy(name, h) kh_destroy_##name(h) + +/*! @function + @abstract Reset a hash table without deallocating memory. + @param name Name of the hash table [symbol] + @param h Pointer to the hash table [khash_t(name)*] + */ +#define kh_clear(name, h) kh_clear_##name(h) + +/*! @function + @abstract Resize a hash table. + @param name Name of the hash table [symbol] + @param h Pointer to the hash table [khash_t(name)*] + @param s New size [khint_t] + */ +#define kh_resize(name, h, s) kh_resize_##name(h, s) + +/*! @function + @abstract Insert a key to the hash table. + @param name Name of the hash table [symbol] + @param h Pointer to the hash table [khash_t(name)*] + @param k Key [type of keys] + @param r Extra return code: -1 if the operation failed; + 0 if the key is present in the hash table; + 1 if the bucket is empty (never used); 2 if the element in + the bucket has been deleted [int*] + @return Iterator to the inserted element [khint_t] + */ +#define kh_put(name, h, k, r) kh_put_##name(h, k, r) + +/*! @function + @abstract Retrieve a key from the hash table. + @param name Name of the hash table [symbol] + @param h Pointer to the hash table [khash_t(name)*] + @param k Key [type of keys] + @return Iterator to the found element, or kh_end(h) if the element is absent [khint_t] + */ +#define kh_get(name, h, k) kh_get_##name(h, k) + +/*! @function + @abstract Remove a key from the hash table. + @param name Name of the hash table [symbol] + @param h Pointer to the hash table [khash_t(name)*] + @param k Iterator to the element to be deleted [khint_t] + */ +#define kh_del(name, h, k) kh_del_##name(h, k) + +/*! @function + @abstract Test whether a bucket contains data. + @param h Pointer to the hash table [khash_t(name)*] + @param x Iterator to the bucket [khint_t] + @return 1 if containing data; 0 otherwise [int] + */ +#define kh_exist(h, x) (!__ac_iseither((h)->flags, (x))) + +/*! @function + @abstract Get key given an iterator + @param h Pointer to the hash table [khash_t(name)*] + @param x Iterator to the bucket [khint_t] + @return Key [type of keys] + */ +#define kh_key(h, x) ((h)->keys[x]) + +/*! @function + @abstract Get value given an iterator + @param h Pointer to the hash table [khash_t(name)*] + @param x Iterator to the bucket [khint_t] + @return Value [type of values] + @discussion For hash sets, calling this results in segfault. + */ +#define kh_val(h, x) ((h)->vals[x]) + +/*! @function + @abstract Alias of kh_val() + */ +#define kh_value(h, x) ((h)->vals[x]) + +/*! @function + @abstract Get the start iterator + @param h Pointer to the hash table [khash_t(name)*] + @return The start iterator [khint_t] + */ +#define kh_begin(h) (khint_t)(0) + +/*! @function + @abstract Get the end iterator + @param h Pointer to the hash table [khash_t(name)*] + @return The end iterator [khint_t] + */ +#define kh_end(h) ((h)->n_buckets) + +/*! @function + @abstract Get the number of elements in the hash table + @param h Pointer to the hash table [khash_t(name)*] + @return Number of elements in the hash table [khint_t] + */ +#define kh_size(h) ((h)->size) + +/*! @function + @abstract Get the number of buckets in the hash table + @param h Pointer to the hash table [khash_t(name)*] + @return Number of buckets in the hash table [khint_t] + */ +#define kh_n_buckets(h) ((h)->n_buckets) + +/*! @function + @abstract Iterate over the entries in the hash table + @param h Pointer to the hash table [khash_t(name)*] + @param kvar Variable to which key will be assigned + @param vvar Variable to which value will be assigned + @param code Block of code to execute + */ +#define kh_foreach(h, kvar, vvar, code) { khint_t __i; \ + for (__i = kh_begin(h); __i != kh_end(h); ++__i) { \ + if (!kh_exist(h,__i)) continue; \ + (kvar) = kh_key(h,__i); \ + (vvar) = kh_val(h,__i); \ + code; \ + } } + +/*! @function + @abstract Iterate over the values in the hash table + @param h Pointer to the hash table [khash_t(name)*] + @param vvar Variable to which value will be assigned + @param code Block of code to execute + */ +#define kh_foreach_value(h, vvar, code) { khint_t __i; \ + for (__i = kh_begin (h); __i != kh_end (h); ++__i) { \ + if (!kh_exist (h, __i)) \ + continue; \ + (vvar) = kh_val (h, __i); \ + code; \ + } } + +/* More conenient interfaces */ + +/*! @function + @abstract Instantiate a hash set containing integer keys + @param name Name of the hash table [symbol] + */ +#define KHASH_SET_INIT_INT(name) \ + KHASH_INIT(name, khint32_t, char, 0, kh_int_hash_func, kh_int_hash_equal) + +/*! @function + @abstract Instantiate a hash map containing integer keys + @param name Name of the hash table [symbol] + @param khval_t Type of values [type] + */ +#define KHASH_MAP_INIT_INT(name, khval_t) \ + KHASH_INIT(name, khint32_t, khval_t, 1, kh_int_hash_func, kh_int_hash_equal) + +/*! @function + @abstract Instantiate a hash map containing 64-bit integer keys + @param name Name of the hash table [symbol] + */ +#define KHASH_SET_INIT_INT64(name) \ + KHASH_INIT(name, khint64_t, char, 0, kh_int64_hash_func, kh_int64_hash_equal) + +/*! @function + @abstract Instantiate a hash map containing 64-bit integer keys + @param name Name of the hash table [symbol] + @param khval_t Type of values [type] + */ +#define KHASH_MAP_INIT_INT64(name, khval_t) \ + KHASH_INIT(name, khint64_t, khval_t, 1, kh_int64_hash_func, kh_int64_hash_equal) + +typedef const char *kh_cstr_t; +/*! @function + @abstract Instantiate a hash map containing const char* keys + @param name Name of the hash table [symbol] + */ +#define KHASH_SET_INIT_STR(name) \ + KHASH_INIT(name, kh_cstr_t, char, 0, kh_str_hash_func, kh_str_hash_equal) + +/*! @function + @abstract Instantiate a hash map containing const char* keys + @param name Name of the hash table [symbol] + @param khval_t Type of values [type] + */ +#define KHASH_MAP_INIT_STR(name, khval_t) \ + KHASH_INIT(name, kh_cstr_t, khval_t, 1, kh_str_hash_func, kh_str_hash_equal) + +#endif /* __AC_KHASH_H */ diff --git a/src/goaccess++/src/labels.h b/src/goaccess++/src/labels.h new file mode 100644 index 0000000..1022d83 --- /dev/null +++ b/src/goaccess++/src/labels.h @@ -0,0 +1,497 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef LABELS_H_INCLUDED +#define LABELS_H_INCLUDED + +#include <libintl.h> + +#define _(String) dgettext (PACKAGE , String) +#define gettext_noop(String) String +#define N_(String) gettext_noop (String) + +/* global lang attribute */ +#define DOC_LANG _( "en") + +/* General */ +#define GEN_EXPAND_PANEL _( "Exp. Panel") +#define GEN_HELP _( "Help") +#define GEN_QUIT _( "Quit") +#define GEN_TOTAL _( "Total") + +/* Sort Labels */ +#define SORT_ASC_SEL _( "[x] ASC [ ] DESC") +#define SORT_DESC_SEL _( "[ ] ASC [x] DESC") + +/* Overall Stats Labels */ +#define T_ACTIVE_PANEL _("[Active Panel: %1$s]") +#define T_QUIT _("[q]uit GoAccess") +#define T_HELP_ENTER _("[?] Help [Enter] Exp. Panel") +#define T_DASH _( "Dashboard") +#define T_DASH_HEAD _( "Dashboard - Overall Analyzed Requests") +#define T_HEAD N_( "Overall Analyzed Requests") + +#define T_BW _( "Tx. Amount") +#define T_DATETIME _( "Date/Time") +#define T_EXCLUDE_IP _( "Excl. IP Hits") +#define T_FAILED _( "Failed Requests") +#define T_GEN_TIME _( "Init. Proc. Time") +#define T_LOG _( "Log Size") +#define T_LOG_PATH _( "Log Source") +#define T_REFERRER _( "Referrers") +#define T_REQUESTS _( "Total Requests") +#define T_STATIC_FILES _( "Static Files") +#define T_UNIQUE404 _( "Not Found") +#define T_UNIQUE_FILES _( "Requested Files") +#define T_UNIQUE_VISITORS _( "Unique Visitors") +#define T_VALID _( "Valid Requests") + +/* Metric Labels */ +#define MTRC_HITS_LBL _( "Hits") +#define MTRC_HITS_PERC_LBL _( "h%") +#define MTRC_VISITORS_LBL _( "Visitors") +#define MTRC_VISITORS_SHORT_LBL _( "Vis.") +#define MTRC_VISITORS_PERC_LBL _( "v%") +#define MTRC_BW_LBL _( "Tx. Amount") +#define MTRC_AVGTS_LBL _( "Avg. T.S.") +#define MTRC_CUMTS_LBL _( "Cum. T.S.") +#define MTRC_MAXTS_LBL _( "Max. T.S.") +#define MTRC_METHODS_LBL _( "Method") +#define MTRC_METHODS_SHORT_LBL _( "Mtd") +#define MTRC_PROTOCOLS_LBL _( "Protocol") +#define MTRC_PROTOCOLS_SHORT_LBL _( "Proto") +#define MTRC_CITY_LBL _( "City") +#define MTRC_COUNTRY_LBL _( "Country") +#define MTRC_HOSTNAME_LBL _( "Hostname") +#define MTRC_DATA_LBL _( "Data") + +#define HTML_PLOT_HITS_VIS _( "Hits/Visitors") + +/* Panel Labels and Descriptions */ +#define VISITORS_HEAD \ + N_("Unique visitors per day") +#define VISITORS_HEAD_BOTS \ + N_("Unique visitors per day - Including spiders") +#define VISITORS_DESC \ + N_("Hits having the same IP, date and agent are a unique visit.") +#define VISITORS_LABEL \ + N_("Visitors") + +#define REQUESTS_HEAD \ + N_("Requested Files (URLs)") +#define REQUESTS_DESC \ + N_("Top requests sorted by hits [, avgts, cumts, maxts, mthd, proto]") +#define REQUESTS_LABEL \ + N_("Requests") + +#define REQUESTS_STATIC_HEAD \ + N_("Static Requests") +#define REQUESTS_STATIC_DESC \ + N_("Top static requests sorted by hits [, avgts, cumts, maxts, mthd, proto]") +#define REQUESTS_STATIC_LABEL \ + N_("Static Requests") + +#define VISIT_TIMES_HEAD \ + N_("Time Distribution") +#define VISIT_TIMES_DESC \ + N_("Data sorted by hour [, avgts, cumts, maxts]") +#define VISIT_TIMES_LABEL \ + N_("Time") + +#define VIRTUAL_HOSTS_HEAD \ + N_("Virtual Hosts") +#define VIRTUAL_HOSTS_DESC \ + N_("Data sorted by hits [, avgts, cumts, maxts]") +#define VIRTUAL_HOSTS_LABEL \ + N_("Virtual Hosts") + +#define REMOTE_USER_HEAD \ + N_("Remote User (HTTP authentication)") +#define REMOTE_USER_DESC \ + N_("Data sorted by hits [, avgts, cumts, maxts]") +#define REMOTE_USER_LABEL \ + N_("Remote User") + +#define NOT_FOUND_HEAD \ + N_("Not Found URLs (404s)") +#define NOT_FOUND_DESC \ + N_("Top not found URLs sorted by hits [, avgts, cumts, maxts, mthd, proto]") +#define NOT_FOUND_LABEL \ + N_("Not Found") + +#define HOSTS_HEAD \ + N_("Visitor Hostnames and IPs") +#define HOSTS_DESC \ + N_("Top visitor hosts sorted by hits [, avgts, cumts, maxts]") +#define HOSTS_LABEL \ + N_("Hosts") + +#define OS_HEAD \ + N_("Operating Systems") +#define OS_DESC \ + N_("Top Operating Systems sorted by hits [, avgts, cumts, maxts]") +#define OS_LABEL \ + N_("OS") + +#define BROWSERS_HEAD \ + N_("Browsers") +#define BROWSERS_DESC \ + N_("Top Browsers sorted by hits [, avgts, cumts, maxts]") +#define BROWSERS_LABEL \ + N_("Browsers") + +#define REFERRERS_HEAD \ + N_("Referrers URLs") +#define REFERRERS_DESC \ + N_("Top Requested Referrers sorted by hits [, avgts, cumts, maxts]") +#define REFERRERS_LABEL \ + N_("Referrers") + +#define REFERRING_SITES_HEAD \ + N_("Referring Sites") +#define REFERRING_SITES_DESC \ + N_("Top Referring Sites sorted by hits [, avgts, cumts, maxts]") +#define REFERRING_SITES_LABEL \ + N_("Referring Sites") + +#define KEYPHRASES_HEAD \ + N_("Keyphrases from Google's search engine") +#define KEYPHRASES_DESC \ + N_("Top Keyphrases sorted by hits [, avgts, cumts, maxts]") +#define KEYPHRASES_LABEL \ + N_("Keyphrases") + +#define GEO_LOCATION_HEAD \ + N_("Geo Location") +#define GEO_LOCATION_DESC \ + N_("Continent > Country sorted by unique hits [, avgts, cumts, maxts]") +#define GEO_LOCATION_LABEL \ + N_("Geo Location") + +#define STATUS_CODES_HEAD \ + N_("HTTP Status Codes") +#define STATUS_CODES_DESC \ + N_("Top HTTP Status Codes sorted by hits [, avgts, cumts, maxts]") +#define STATUS_CODES_LABEL \ + N_("Status Codes") + +/* Find Labels */ +#define CISENSITIVE \ + _("[ ] case sensitive") +#define CSENSITIVE \ + _("[x] case sensitive") +#define FIND_DESC \ + _("Regex allowed - ^g to cancel - TAB switch case") +#define FIND_HEAD \ + _("Find pattern in all views") + +/* Config Dialog */ +#define CONFDLG_HEAD \ + _("Log Format Configuration") +#define CONFDLG_KEY_HINTS \ + _("[SPACE] to toggle - [ENTER] to proceed - [q] to quit") +#define CONFDLG_LOG_FORMAT \ + _("Log Format - [c] to add/edit format") +#define CONFDLG_DATE_FORMAT \ + _("Date Format - [d] to add/edit format") +#define CONFDLG_TIME_FORMAT \ + _("Time Format - [t] to add/edit format") +#define CONFDLG_DESC \ + _("[UP/DOWN] to scroll - [q] to close window") + +/* Agents Dialog */ +#define AGENTSDLG_DESC \ + _("[UP/DOWN] to scroll - [q] to close window") +#define AGENTSDLG_HEAD \ + _("User Agents for %1$s") + +/* Color Scheme Dialog */ +#define SCHEMEDLG_HEAD \ + _("Scheme Configuration") +#define SCHEMEDLG_DESC \ + _("[ENTER] to use scheme - [q]uit") + +/* Sort Dialog */ +#define SORTDLG_HEAD \ + _("Sort active module by") +#define SORTDLG_DESC \ + _("[ENTER] select - [TAB] sort - [q]uit") + +/* Help TUI Dialog */ +#define HELPDLG_HEAD \ + _("GoAccess Quick Help") +#define HELPDLG_DESC \ + _("[UP/DOWN] to scroll - [q] to quit") + +/* Storage Built-in Option */ +#define BUILT_WITH_TCBTREE \ + _("Built using Tokyo Cabinet on-disk B+ Tree.") +#define BUILT_WITH_TCMEMHASH \ + _("Built using Tokyo Cabinet in-memory hash database.") +#define BUILT_WITH_DEFHASH \ + _("Built using the default in-memory hash database.") + +/* Common UI Errors */ +#define ERR_FORMAT_HEADER \ + _("Format Errors - Verify your log/date/time format") +#define ERR_FORMAT_NO_DATE_FMT \ + _("No date format was found on your conf file.") +#define ERR_FORMAT_NO_LOG_FMT \ + _("No log format was found on your conf file.") +#define ERR_FORMAT_NO_TIME_FMT \ + _("No time format was found on your conf file.") +#define ERR_NODEF_CONF_FILE \ + _("No default config file found.") +#define ERR_NODEF_CONF_FILE_DESC \ + _("You may specify one with") +#define ERR_PARSED_NLINES_DESC \ + _("producing the following errors") +#define ERR_PARSED_NLINES \ + _("Parsed %1$d lines") +#define ERR_PLEASE_REPORT \ + _("Please report it by opening an issue on GitHub") +#define ERR_FORMAT_NO_TIME_FMT_DLG \ + _("Select a time format.") +#define ERR_FORMAT_NO_DATE_FMT_DLG \ + _("Select a date format.") +#define ERR_FORMAT_NO_LOG_FMT_DLG \ + _("Select a log format.") +#define ERR_PANEL_DISABLED \ + _("'%1$s' panel is disabled") + +/* Other */ +#define INFO_MORE_INFO \ + _("For more details visit") +#define INFO_LAST_UPDATED \ + _("Last Updated") +#define INFO_WS_READY_FOR_CONN \ + _("WebSocket server ready to accept new client connections") + +#define INFO_HELP_FOLLOWING_OPTS \ + _("The following options can also be supplied to the command") +#define INFO_HELP_EXAMPLES \ + _("Examples can be found by running") + +#define HTML_REPORT_TITLE \ + _( "Server Statistics") +#define HTML_REPORT_NAV_THEME \ + N_("Theme") +#define HTML_REPORT_NAV_DARK_GRAY \ + N_("Dark Gray") +#define HTML_REPORT_NAV_BRIGHT \ + N_("Bright") +#define HTML_REPORT_NAV_DARK_BLUE \ + N_("Dark Blue") +#define HTML_REPORT_NAV_DARK_PURPLE \ + N_("Dark Purple") +#define HTML_REPORT_NAV_PANELS \ + N_("Panels") +#define HTML_REPORT_NAV_ITEMS_PER_PAGE \ + N_("Items per Page") +#define HTML_REPORT_NAV_TABLES \ + N_("Tables") +#define HTML_REPORT_NAV_DISPLAY_TABLES \ + N_("Display Tables") +#define HTML_REPORT_NAV_AH_SMALL \ + N_("Auto-Hide on Small Devices") +#define HTML_REPORT_NAV_AH_SMALL_TITLE \ + N_("Automatically hide tables on small screen devices") +#define HTML_REPORT_NAV_LAYOUT \ + N_("Layout") +#define HTML_REPORT_NAV_HOR \ + N_("Horizontal") +#define HTML_REPORT_NAV_VER \ + N_("Vertical") +#define HTML_REPORT_NAV_FILE_OPTS \ + N_("File Options") +#define HTML_REPORT_NAV_EXPORT_JSON \ + N_("Export as JSON") +#define HTML_REPORT_PANEL_PANEL_OPTS \ + N_("Panel Options") +#define HTML_REPORT_PANEL_PREVIOUS \ + N_("Previous") +#define HTML_REPORT_PANEL_NEXT \ + N_("Next") +#define HTML_REPORT_PANEL_FIRST \ + N_("First") +#define HTML_REPORT_PANEL_LAST \ + N_("Last") +#define HTML_REPORT_PANEL_CHART_OPTS \ + N_("Chart Options") +#define HTML_REPORT_PANEL_CHART \ + N_("Chart") +#define HTML_REPORT_PANEL_TYPE \ + N_("Type") +#define HTML_REPORT_PANEL_AREA_SPLINE \ + N_("Area Spline") +#define HTML_REPORT_PANEL_BAR \ + N_("Bar") +#define HTML_REPORT_PANEL_PLOT_METRIC \ + N_("Plot Metric") +#define HTML_REPORT_PANEL_TABLE_COLS \ + N_("Table Columns") + +/* Status Codes */ +#define STATUS_CODE_1XX \ + N_("1xx Informational") +#define STATUS_CODE_2XX \ + N_("2xx Success") +#define STATUS_CODE_3XX \ + N_("3xx Redirection") +#define STATUS_CODE_4XX \ + N_("4xx Client Errors") +#define STATUS_CODE_5XX \ + N_("5xx Server Errors") + +#define STATUS_CODE_100 \ + N_("100 - Continue: Server received the initial part of the request") +#define STATUS_CODE_101 \ + N_("101 - Switching Protocols: Client asked to switch protocols") +#define STATUS_CODE_200 \ + N_("200 - OK: The request sent by the client was successful") +#define STATUS_CODE_201 \ + N_("201 - Created: The request has been fulfilled and created") +#define STATUS_CODE_202 \ + N_("202 - Accepted: The request has been accepted for processing") +#define STATUS_CODE_203 \ + N_("203 - Non-authoritative Information: Response from a third party") +#define STATUS_CODE_204 \ + N_("204 - No Content: Request did not return any content") +#define STATUS_CODE_205 \ + N_("205 - Reset Content: Server asked the client to reset the document") +#define STATUS_CODE_206 \ + N_("206 - Partial Content: The partial GET has been successful") +#define STATUS_CODE_207 \ + N_("207 - Multi-Status: WebDAV; RFC 4918") +#define STATUS_CODE_208 \ + N_("208 - Already Reported: WebDAV; RFC 5842") +#define STATUS_CODE_300 \ + N_("300 - Multiple Choices: Multiple options for the resource") +#define STATUS_CODE_301 \ + N_("301 - Moved Permanently: Resource has permanently moved") +#define STATUS_CODE_302 \ + N_("302 - Moved Temporarily (redirect)") +#define STATUS_CODE_303 \ + N_("303 - See Other Document: The response is at a different URI") +#define STATUS_CODE_304 \ + N_("304 - Not Modified: Resource has not been modified") +#define STATUS_CODE_305 \ + N_("305 - Use Proxy: Can only be accessed through the proxy") +#define STATUS_CODE_307 \ + N_("307 - Temporary Redirect: Resource temporarily moved") +#define STATUS_CODE_400 \ + N_("400 - Bad Request: The syntax of the request is invalid") +#define STATUS_CODE_401 \ + N_("401 - Unauthorized: Request needs user authentication") +#define STATUS_CODE_402 \ + N_("402 - Payment Required") +#define STATUS_CODE_403 \ + N_("403 - Forbidden: Server is refusing to respond to it") +#define STATUS_CODE_404 \ + N_("404 - Not Found: Requested resource could not be found") +#define STATUS_CODE_405 \ + N_("405 - Method Not Allowed: Request method not supported") +#define STATUS_CODE_406 \ + N_("406 - Not Acceptable") +#define STATUS_CODE_407 \ + N_("407 - Proxy Authentication Required") +#define STATUS_CODE_408 \ + N_("408 - Request Timeout: Server timed out waiting for the request") +#define STATUS_CODE_409 \ + N_("409 - Conflict: Conflict in the request") +#define STATUS_CODE_410 \ + N_("410 - Gone: Resource requested is no longer available") +#define STATUS_CODE_411 \ + N_("411 - Length Required: Invalid Content-Length") +#define STATUS_CODE_412 \ + N_("412 - Precondition Failed: Server does not meet preconditions") +#define STATUS_CODE_413 \ + N_("413 - Payload Too Large") +#define STATUS_CODE_414 \ + N_("414 - Request-URI Too Long") +#define STATUS_CODE_415 \ + N_("415 - Unsupported Media Type: Media type is not supported") +#define STATUS_CODE_416 \ + N_("416 - Requested Range Not Satisfiable: Cannot supply that portion") +#define STATUS_CODE_417 \ + N_("417 - Expectation Failed") +#define STATUS_CODE_421 \ + N_("421 - Misdirected Request") +#define STATUS_CODE_422 \ + N_("422 - Unprocessable Entity due to semantic errors: WebDAV") +#define STATUS_CODE_423 \ + N_("423 - The resource that is being accessed is locked") +#define STATUS_CODE_424 \ + N_("424 - Failed Dependency: WebDAV") +#define STATUS_CODE_426 \ + N_("426 - Upgrade Required: Client should switch to a different protocol") +#define STATUS_CODE_428 \ + N_("428 - Precondition Required") +#define STATUS_CODE_429 \ + N_("429 - Too Many Requests: The user has sent too many requests") +#define STATUS_CODE_431 \ + N_("431 - Request Header Fields Too Large") +#define STATUS_CODE_451 \ + N_("451 - Unavailable For Legal Reasons") +#define STATUS_CODE_444 \ + N_("444 - (Nginx) Connection closed without sending any headers") +#define STATUS_CODE_494 \ + N_("494 - (Nginx) Request Header Too Large") +#define STATUS_CODE_495 \ + N_("495 - (Nginx) SSL client certificate error") +#define STATUS_CODE_496 \ + N_("496 - (Nginx) Client didn't provide certificate") +#define STATUS_CODE_497 \ + N_("497 - (Nginx) HTTP request sent to HTTPS port") +#define STATUS_CODE_499 \ + N_("499 - (Nginx) Connection closed by client while processing request") +#define STATUS_CODE_500 \ + N_("500 - Internal Server Error") +#define STATUS_CODE_501 \ + N_("501 - Not Implemented") +#define STATUS_CODE_502 \ + N_("502 - Bad Gateway: Received an invalid response from the upstream") +#define STATUS_CODE_503 \ + N_("503 - Service Unavailable: The server is currently unavailable") +#define STATUS_CODE_504 \ + N_("504 - Gateway Timeout: The upstream server failed to send request") +#define STATUS_CODE_505 \ + N_("505 - HTTP Version Not Supported") +#define STATUS_CODE_520 \ + N_("520 - CloudFlare - Web server is returning an unknown error") +#define STATUS_CODE_521 \ + N_("521 - CloudFlare - Web server is down") +#define STATUS_CODE_522 \ + N_("522 - CloudFlare - Connection timed out") +#define STATUS_CODE_523 \ + N_("523 - CloudFlare - Origin is unreachable") +#define STATUS_CODE_524 \ + N_("524 - CloudFlare - A timeout occurred") + +#endif // for #ifndef LABELS_H diff --git a/src/goaccess++/src/opesys.c b/src/goaccess++/src/opesys.c new file mode 100644 index 0000000..98c6c02 --- /dev/null +++ b/src/goaccess++/src/opesys.c @@ -0,0 +1,398 @@ +/** + * opesys.c -- functions for dealing with operating systems + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include <ctype.h> +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <stddef.h> + +#include "opesys.h" + +#include "settings.h" +#include "util.h" +#include "xmalloc.h" + +/* ###NOTE: The size of the list is proportional to the run time, + * which makes this pretty slow */ + +/* {"search string", "belongs to"} */ +static const char *os[][2] = { + {"Android", "Android"}, + {"Windows NT 10.0", "Windows"}, + {"Windows NT 6.3; ARM", "Windows"}, + {"Windows NT 6.3", "Windows"}, + {"Windows NT 6.2; ARM", "Windows"}, + {"Windows NT 6.2", "Windows"}, + {"Windows NT 6.1", "Windows"}, + {"Windows NT 6.0", "Windows"}, + {"Windows NT 5.2", "Windows"}, + {"Windows NT 5.1", "Windows"}, + {"Windows NT 5.01", "Windows"}, + {"Windows NT 5.0", "Windows"}, + {"Windows NT 4.0", "Windows"}, + {"Windows NT", "Windows"}, + {"Win 9x 4.90", "Windows"}, + {"Windows 98", "Windows"}, + {"Windows 95", "Windows"}, + {"Windows CE", "Windows"}, + {"Windows Phone 8.1", "Windows"}, + {"Windows Phone 8.0", "Windows"}, + + {"Googlebot", "Unix-like"}, + {"Mastodon", "Unix-like"}, + {"bingbot", "Windows"}, + + {"iPad", "iOS"}, + {"iPod", "iOS"}, + {"iPhone", "iOS"}, + {"AppleTV", "iOS"}, + {"iTunes", "Macintosh"}, + {"OS X", "Macintosh"}, + {"Darwin", "Darwin"}, + + {"Debian", "Linux"}, + {"Ubuntu", "Linux"}, + {"Fedora", "Linux"}, + {"Mint", "Linux"}, + {"SUSE", "Linux"}, + {"Mandriva", "Linux"}, + {"Red Hat", "Linux"}, + {"Gentoo", "Linux"}, + {"CentOS", "Linux"}, + {"PCLinuxOS", "Linux"}, + {"Linux", "Linux"}, + + {"FreeBSD", "BSD"}, + {"NetBSD", "BSD"}, + {"OpenBSD", "BSD"}, + {"DragonFly", "BSD"}, + {"PlayStation", "BSD"}, + + {"CrOS", "Chrome OS"}, + {"SunOS", "Unix-like"}, + {"QNX", "Unix-like"}, + {"BB10", "Unix-like"}, + + {"BlackBerry", "Others"}, + {"Sony", "Others"}, + {"AmigaOS", "Others"}, + {"SymbianOS", "Others"}, + {"Nokia", "Others"}, + {"Nintendo", "Others"}, + {"Apache", "Others"}, + {"Xbox One", "Windows"}, + {"Xbox", "Windows"}, +}; + +/* Get the Android code name (if applicable). + * + * On error, the given name is allocated and returned. + * On success, the matching Android codename is allocated and + * returned. */ +static char * +get_real_android (const char *droid) +{ + if (strstr (droid, "9")) + return alloc_string ("Pie 9"); + else if (strstr (droid, "8.1")) + return alloc_string ("Oreo 8.1"); + else if (strstr (droid, "8.0")) + return alloc_string ("Oreo 8.0"); + else if (strstr (droid, "7.1")) + return alloc_string ("Nougat 7.1"); + else if (strstr (droid, "7.0")) + return alloc_string ("Nougat 7.0"); + else if (strstr (droid, "6.0.1")) + return alloc_string ("Marshmallow 6.0.1"); + else if (strstr (droid, "6.0")) + return alloc_string ("Marshmallow 6.0"); + else if (strstr (droid, "5.1")) + return alloc_string ("Lollipop 5.1"); + else if (strstr (droid, "5.0")) + return alloc_string ("Lollipop 5.0"); + else if (strstr (droid, "4.4")) + return alloc_string ("KitKat 4.4"); + else if (strstr (droid, "4.3")) + return alloc_string ("Jelly Bean 4.3"); + else if (strstr (droid, "4.2")) + return alloc_string ("Jelly Bean 4.2"); + else if (strstr (droid, "4.1")) + return alloc_string ("Jelly Bean 4.1"); + else if (strstr (droid, "4.0")) + return alloc_string ("Ice Cream Sandwich 4.0"); + else if (strstr (droid, "3.")) + return alloc_string ("Honeycomb 3"); + else if (strstr (droid, "2.3")) + return alloc_string ("Gingerbread 2.3"); + else if (strstr (droid, "2.2")) + return alloc_string ("Froyo 2.2"); + else if (strstr (droid, "2.0") || strstr (droid, "2.1")) + return alloc_string ("Eclair 2"); + else if (strstr (droid, "1.6")) + return alloc_string ("Donut 1.6"); + else if (strstr (droid, "1.5")) + return alloc_string ("Cupcake 1.5"); + return alloc_string (droid); +} + +/* Get the Windows marketing name (if applicable). + * + * On error, the given name is allocated and returned. + * On success, the matching Windows marketing name is allocated and + * returned. */ +static char * +get_real_win (const char *win) +{ + if (strstr (win, "10.0")) + return alloc_string ("Windows 10"); + else if (strstr (win, "6.3")) + return alloc_string ("Windows 8.1"); + else if (strstr (win, "6.3; ARM")) + return alloc_string ("Windows RT"); + else if (strstr (win, "6.2; ARM")) + return alloc_string ("Windows RT"); + else if (strstr (win, "6.2")) + return alloc_string ("Windows 8"); + else if (strstr (win, "6.1")) + return alloc_string ("Windows 7"); + else if (strstr (win, "6.0")) + return alloc_string ("Windows Vista"); + else if (strstr (win, "5.2")) + return alloc_string ("Windows XP x64"); + else if (strstr (win, "5.1")) + return alloc_string ("Windows XP"); + else if (strstr (win, "5.0")) + return alloc_string ("Windows 2000"); + return NULL; +} + +/* Get the Mac OS X code name (if applicable). + * + * On error, the given name is allocated and returned. + * On success, the matching Mac OS X codename is allocated and + * returned. */ +static char * +get_real_mac_osx (const char *osx) +{ + if (strstr (osx, "10.14")) + return alloc_string ("macOS 10.14 Mojave"); + else if (strstr (osx, "10.13")) + return alloc_string ("macOS 10.13 High Sierra"); + else if (strstr (osx, "10.12")) + return alloc_string ("macOS 10.12 Sierra"); + else if (strstr (osx, "10.11")) + return alloc_string ("OS X 10.11 El Capitan"); + else if (strstr (osx, "10.10")) + return alloc_string ("OS X 10.10 Yosemite"); + else if (strstr (osx, "10.9")) + return alloc_string ("OS X 10.9 Mavericks"); + else if (strstr (osx, "10.8")) + return alloc_string ("OS X 10.8 Mountain Lion"); + else if (strstr (osx, "10.7")) + return alloc_string ("OS X 10.7 Lion"); + else if (strstr (osx, "10.6")) + return alloc_string ("OS X 10.6 Snow Leopard"); + else if (strstr (osx, "10.5")) + return alloc_string ("OS X 10.5 Leopard"); + else if (strstr (osx, "10.4")) + return alloc_string ("OS X 10.4 Tiger"); + else if (strstr (osx, "10.3")) + return alloc_string ("OS X 10.3 Panther"); + else if (strstr (osx, "10.2")) + return alloc_string ("OS X 10.2 Jaguar"); + else if (strstr (osx, "10.1")) + return alloc_string ("OS X 10.1 Puma"); + else if (strstr (osx, "10.0")) + return alloc_string ("OS X 10.0 Cheetah"); + return alloc_string (osx); +} + +/* Parse all other operating systems. + * + * On error, the given name is returned. + * On success, the parsed OS is returned. */ +static char * +parse_others (char *agent, int spaces) +{ + char *p; + int space = 0; + p = agent; + /* assume the following chars are within the given agent */ + while (*p != ';' && *p != ')' && *p != '(' && *p != '\0') { + if (*p == ' ') + space++; + if (space > spaces) + break; + p++; + } + *p = 0; + + return agent; +} + +/* Parse iOS string including version number. + * + * On error, the matching token is returned (no version). + * On success, the parsed iOS is returned. */ +static char * +parse_ios (char *agent, int tlen) +{ + char *p = NULL, *q = NULL; + ptrdiff_t offset; + + p = agent; + if ((p = strstr (agent, " OS ")) == NULL) + goto out; + + if ((offset = p - agent) <= 0) + goto out; + + if ((q = strstr (p, " like Mac")) == NULL) + goto out; + + *q = 0; + memmove (agent + tlen, agent + offset, offset); + return char_replace (agent, '_', '.'); + +out: + agent[tlen] = 0; + return agent; +} + +/* Parse a Mac OS X string. + * + * On error, the given name is returned. + * On success, the parsed Mac OS X is returned. */ +static char * +parse_osx (char *agent) +{ + int space = 0; + char *p; + + p = agent; + /* assume the following chars are within the given agent */ + while (*p != ';' && *p != ')' && *p != '(' && *p != '\0') { + if (*p == '_') + *p = '.'; + if (*p == ' ') + space++; + if (space > 3) + break; + p++; + } + *p = 0; + + return agent; +} + +/* Parse an Android string. + * + * On error, the given name is returned. + * On success, the parsed Android is returned. */ +static char * +parse_android (char *agent) +{ + char *p; + p = agent; + /* assume the following chars are within the given agent */ + while (*p != ';' && *p != ')' && *p != '(' && *p != '\0') + p++; + *p = 0; + + return agent; +} + +/* Attempt to parse specific OS. + * + * On success, a malloc'd string containing the OS is returned. */ +static char * +parse_os (const char *str, char *tkn, char *os_type, int idx) +{ + char *b; + int spaces = 0; + + xstrncpy (os_type, os[idx][1], OPESYS_TYPE_LEN); + /* Windows */ + if ((strstr (str, "Windows")) != NULL) + return conf.real_os && (b = get_real_win (tkn)) ? b : xstrdup (os[idx][0]); + /* Android */ + if ((strstr (tkn, "Android")) != NULL) { + tkn = parse_android (tkn); + return conf.real_os ? get_real_android (tkn) : xstrdup (tkn); + } + /* iOS */ + if (strstr (tkn, "iPad") || strstr (tkn, "iPod")) + return xstrdup (parse_ios (tkn, 4)); + if (strstr (tkn, "iPhone")) + return xstrdup (parse_ios (tkn, 6)); + /* Mac OS X */ + if ((strstr (tkn, "OS X")) != NULL) { + tkn = parse_osx (tkn); + return conf.real_os ? get_real_mac_osx (tkn) : xstrdup (tkn); + } + /* Darwin - capture the first part of agents such as: + * Slack/248000 CFNetwork/808.0.2 Darwin/16.0.0 */ + if ((strstr (tkn, "Darwin")) != NULL) { + if ((b = strchr (str, ' '))) + *b = 0; + return xstrdup (str); + } + /* all others */ + spaces = count_matches (os[idx][0], ' '); + + return alloc_string (parse_others (tkn, spaces)); +} + +/* Given a user agent, determine the operating system used. + * + * ###NOTE: The size of the list is proportional to the run time, + * which makes this pretty slow + * + * On error, NULL is returned. + * On success, a malloc'd string containing the OS is returned. */ +char * +verify_os (const char *str, char *os_type) +{ + char *a; + size_t i; + + if (str == NULL || *str == '\0') + return NULL; + + for (i = 0; i < ARRAY_SIZE (os); i++) { + if ((a = strstr (str, os[i][0])) != NULL) + return parse_os (str, a, os_type, i); + } + xstrncpy (os_type, "Unknown", OPESYS_TYPE_LEN); + + return alloc_string ("Unknown"); +} diff --git a/src/goaccess++/src/opesys.h b/src/goaccess++/src/opesys.h new file mode 100644 index 0000000..15f8fd7 --- /dev/null +++ b/src/goaccess++/src/opesys.h @@ -0,0 +1,44 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef OPESYS_H_INCLUDED +#define OPESYS_H_INCLUDED + +#define OPESYS_TYPE_LEN 10 + +/* Each OS contains the number of hits and the OS's type */ +typedef struct GOpeSys_ +{ + char os_type[OPESYS_TYPE_LEN]; + int hits; +} GOpeSys; + +char *verify_os (const char *str, char *os_type); + +#endif diff --git a/src/goaccess++/src/opesys.o b/src/goaccess++/src/opesys.o new file mode 100644 index 0000000000000000000000000000000000000000..c16473f8a821e764f21cf4fd0d8dfd7c285a2003 GIT binary patch literal 17184 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 TTlY-<+o=72<Alj>rT_l`s!yG_ literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/options.c b/src/goaccess++/src/options.c new file mode 100644 index 0000000..f1ea1ff --- /dev/null +++ b/src/goaccess++/src/options.c @@ -0,0 +1,839 @@ +/** + * options.c -- functions related to parsing program options + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <getopt.h> +#include <errno.h> + +#ifdef HAVE_LIBTOKYOCABINET +#include "tcabdb.h" +#include "tcbtdb.h" +#endif + +#ifdef HAVE_LIBGEOIP +#include <GeoIP.h> +#endif + +#include "options.h" + +#include "error.h" +#include "labels.h" +#include "util.h" +#include "xmalloc.h" + +static char short_options[] = "f:e:p:o:l:H:M:S:b:" +#ifdef HAVE_LIBGEOIP + "g" +#endif + "acirmMhHqdsV"; + +/* *INDENT-OFF* */ +struct option long_opts[] = { + {"agent-list" , no_argument , 0 , 'a' } , + {"browsers-file" , required_argument , 0 , 'b' } , + {"config-dialog" , no_argument , 0 , 'c' } , + {"config-file" , required_argument , 0 , 'p' } , + {"debug-file" , required_argument , 0 , 'l' } , + {"exclude-ip" , required_argument , 0 , 'e' } , +#ifdef HAVE_LIBGEOIP + {"std-geoip" , no_argument , 0 , 'g' } , +#endif + {"help" , no_argument , 0 , 'h' } , + {"hl-header" , no_argument , 0 , 'i' } , + {"http-method" , required_argument , 0 , 'M' } , + {"http-protocol" , required_argument , 0 , 'H' } , + {"log-file" , required_argument , 0 , 'f' } , + {"log-size" , required_argument , 0 , 'S' } , + {"no-query-string" , no_argument , 0 , 'q' } , + {"no-term-resolver" , no_argument , 0 , 'r' } , + {"output-format" , required_argument , 0 , 'o' } , + {"storage" , no_argument , 0 , 's' } , + {"version" , no_argument , 0 , 'V' } , + {"with-mouse" , no_argument , 0 , 'm' } , + {"with-output-resolver" , no_argument , 0 , 'd' } , + {"444-as-404" , no_argument , 0 , 0 } , + {"4xx-to-unique-count" , no_argument , 0 , 0 } , + {"anonymize-ip" , no_argument , 0 , 0 } , + {"addr" , required_argument , 0 , 0 } , + {"all-static-files" , no_argument , 0 , 0 } , + {"color" , required_argument , 0 , 0 } , + {"color-scheme" , required_argument , 0 , 0 } , + {"crawlers-only" , no_argument , 0 , 0 } , + {"daemonize" , no_argument , 0 , 0 } , + {"date-format" , required_argument , 0 , 0 } , + {"date-spec" , required_argument , 0 , 0 } , + {"dcf" , no_argument , 0 , 0 } , + {"double-decode" , no_argument , 0 , 0 } , + {"enable-panel" , required_argument , 0 , 0 } , + {"fifo-in" , required_argument , 0 , 0 } , + {"fifo-out" , required_argument , 0 , 0 } , + {"hide-referer" , required_argument , 0 , 0 } , + {"hour-spec" , required_argument , 0 , 0 } , + {"html-custom-css" , required_argument , 0 , 0 } , + {"html-custom-js" , required_argument , 0 , 0 } , + {"html-prefs" , required_argument , 0 , 0 } , + {"html-report-title" , required_argument , 0 , 0 } , + {"ignore-crawlers" , no_argument , 0 , 0 } , + {"ignore-statics" , required_argument , 0 , 0 } , + {"ignore-panel" , required_argument , 0 , 0 } , + {"ignore-referer" , required_argument , 0 , 0 } , + {"ignore-status" , required_argument , 0 , 0 } , + {"invalid-requests" , required_argument , 0 , 0 } , + {"json-pretty-print" , no_argument , 0 , 0 } , + {"log-format" , required_argument , 0 , 0 } , + {"max-items" , required_argument , 0 , 0 } , + {"no-color" , no_argument , 0 , 0 } , + {"no-column-names" , no_argument , 0 , 0 } , + {"no-csv-summary" , no_argument , 0 , 0 } , + {"no-global-config" , no_argument , 0 , 0 } , + {"no-html-last-updated" , no_argument , 0 , 0 } , + {"no-parsing-spinner" , no_argument , 0 , 0 } , + {"no-progress" , no_argument , 0 , 0 } , + {"no-tab-scroll" , no_argument , 0 , 0 } , + {"num-tests" , required_argument , 0 , 0 } , + {"origin" , required_argument , 0 , 0 } , + {"output" , required_argument , 0 , 0 } , + {"pid-file" , required_argument , 0 , 0 } , + {"port" , required_argument , 0 , 0 } , + {"process-and-exit" , no_argument , 0 , 0 } , + {"real-os" , no_argument , 0 , 0 } , + {"real-time-html" , no_argument , 0 , 0 } , + {"sort-panel" , required_argument , 0 , 0 } , + {"static-file" , required_argument , 0 , 0 } , +#ifdef HAVE_LIBSSL + {"ssl-cert" , required_argument , 0 , 0 } , + {"ssl-key" , required_argument , 0 , 0 } , +#endif + {"time-format" , required_argument , 0 , 0 } , + {"ws-url" , required_argument , 0 , 0 } , +#ifdef HAVE_GEOLOCATION + {"geoip-database" , required_argument , 0 , 0 } , +#endif +#ifdef HAVE_LIBGEOIP + {"geoip-city-data" , required_argument , 0 , 0 } , +#endif +#ifdef TCB_BTREE + {"accumulated-time" , no_argument , 0 , 0 } , + {"cache-lcnum" , required_argument , 0 , 0 } , + {"cache-ncnum" , required_argument , 0 , 0 } , + {"compression" , required_argument , 0 , 0 } , + {"db-path" , required_argument , 0 , 0 } , + {"keep-db-files" , no_argument , 0 , 0 } , + {"load-from-disk" , no_argument , 0 , 0 } , + {"tune-bnum" , required_argument , 0 , 0 } , + {"tune-lmemb" , required_argument , 0 , 0 } , + {"tune-nmemb" , required_argument , 0 , 0 } , + {"xmmap" , required_argument , 0 , 0 } , +#endif + {0, 0, 0, 0} +}; + +/* Command line help. */ +void +cmd_help (void) +{ + printf ("\nGoAccess - %s\n\n", GO_VERSION); + printf ( + "Usage: " + "goaccess [filename] [ options ... ] [-c][-M][-H][-S][-q][-d][...]\n" + "%s:\n\n", INFO_HELP_FOLLOWING_OPTS); + + printf ( + /* Log & Date Format Options */ + "Log & Date Format Options\n\n" + " --date-format=<dateformat> - Specify log date format. e.g., %%d/%%b/%%Y\n" + " --log-format=<logformat> - Specify log format. Inner quotes need to be\n" + " escaped, or use single quotes.\n" + " --time-format=<timeformat> - Specify log time format. e.g., %%H:%%M:%%S\n\n" + + /* User Interface Options */ + "User Interface Options\n\n" + " -c --config-dialog - Prompt log/date/time configuration window.\n" + " -i --hl-header - Color highlight active panel.\n" + " -m --with-mouse - Enable mouse support on main dashboard.\n" + " --color=<fg:bg[attrs, PANEL]> - Specify custom colors. See manpage for more\n" + " details and options.\n" + " --color-scheme=<1|2|3> - Schemes: 1 => Grey, 2 => Green, 3 => Monokai.\n" + " --html-custom-css=<path.css> - Specify a custom CSS file in the HTML report.\n" + " --html-custom-js=<path.js> - Specify a custom JS file in the HTML report.\n" + " --html-prefs=<json_obj> - Set default HTML report preferences.\n" + " --html-report-title=<title> - Set HTML report page title and header.\n" + " --json-pretty-print - Format JSON output w/ tabs & newlines.\n" + " --max-items - Maximum number of items to show per panel.\n" + " See man page for limits.\n" + " --no-color - Disable colored output.\n" + " --no-column-names - Don't write column names in term output.\n" + " --no-csv-summary - Disable summary metrics on the CSV output.\n" + " --no-html-last-updated - Hide HTML last updated field.\n" + " --no-parsing-spinner - Disable progress metrics and parsing spinner.\n" + " --no-progress - Disable progress metrics.\n" + " --no-tab-scroll - Disable scrolling through panels on TAB.\n" + "\n" + + /* Server Options */ + "Server Options\n\n" + " --addr=<addr> - Specify IP address to bind server to.\n" + " --daemonize - Run as daemon (if --real-time-html enabled).\n" + " --fifo-in=<path> - Path to read named pipe (FIFO).\n" + " --fifo-out=<path> - Path to write named pipe (FIFO).\n" + " --origin=<addr> - Ensure clients send the specified origin header\n" + " upon the WebSocket handshake.\n" + " --pid-file=<path> - Write PID to a file when --daemonize is used.\n" + " --port=<port> - Specify the port to use.\n" + " --real-time-html - Enable real-time HTML output.\n" + " --ssl-cert=<cert.crt> - Path to TLS/SSL certificate.\n" + " --ssl-key=<priv.key> - Path to TLS/SSL private key.\n" + " --ws-url=<url> - URL to which the WebSocket server responds.\n" + "\n" + + /* File Options */ + "File Options\n\n" + " - - The log file to parse is read from stdin.\n" + " -f --log-file=<filename> - Path to input log file.\n" + " -S --log-size=<number> - Specify the log size, useful when piping in logs.\n" + " -l --debug-file=<filename> - Send all debug messages to the specified\n" + " file.\n" + " -p --config-file=<filename> - Custom configuration file.\n" + " --invalid-requests=<filename> - Log invalid requests to the specified file.\n" + " --no-global-config - Don't load global configuration file.\n" + "\n" + + /* Parse Options */ + "Parse Options\n\n" + " -a --agent-list - Enable a list of user-agents by host.\n" + " -b --browsers-file=<path> - Use additional custom list of browsers.\n" + " -d --with-output-resolver - Enable IP resolver on HTML|JSON output.\n" + " -e --exclude-ip=<IP> - Exclude one or multiple IPv4/6. Allows IP\n" + " ranges e.g. 192.168.0.1-192.168.0.10\n" + " -H --http-protocol=<yes|no> - Set/unset HTTP request protocol if found.\n" + " -M --http-method=<yes|no> - Set/unset HTTP request method if found.\n" + " -o --output=file.html|json|csv - Output either an HTML, JSON or a CSV file.\n" + " -q --no-query-string - Ignore request's query string. Removing the\n" + " query string can greatly decrease memory\n" + " consumption.\n" + " -r --no-term-resolver - Disable IP resolver on terminal output.\n" + " --444-as-404 - Treat non-standard status code 444 as 404.\n" + " --4xx-to-unique-count - Add 4xx client errors to the unique visitors\n" + " count.\n" +#ifdef TCB_BTREE + " --accumulated-time - Store accumulated time from parsing day-by-day logs.\n" +#endif + " --anonymize-ip - Anonymize IP addresses before outputting to report.\n" + " --all-static-files - Include static files with a query string.\n" + " --crawlers-only - Parse and display only crawlers.\n" + " --date-spec=<date|hr> - Date specificity. Possible values: `date`\n" + " (default), or `hr`.\n" + " --double-decode - Decode double-encoded values.\n" + " --enable-panel=<PANEL> - Enable parsing/displaying the given panel.\n" + " --hide-referer=<NEEDLE> - Hide a referer but still count it. Wild cards\n" + " are allowed. i.e., *.bing.com\n" + " --hour-spec=<hr|min> - Hour specificity. Possible values: `hr`\n" + " (default), or `min` (tenth of a min).\n" + " --ignore-crawlers - Ignore crawlers.\n" + " --ignore-panel=<PANEL> - Ignore parsing/displaying the given panel.\n" + " --ignore-referer=<NEEDLE> - Ignore a referer from being counted. Wild cards\n" + " are allowed. i.e., *.bing.com\n" + " --ignore-statics=<req|panel> - Ignore static requests.\n" + " req => Ignore from valid requests.\n" + " panel => Ignore from valid requests and panels.\n" + " --ignore-status=<CODE> - Ignore parsing the given status code.\n" + " --num-tests=<number> - Number of lines to test. >= 0 (10 default)\n" + " --process-and-exit - Parse log and exit without outputting data.\n" + " --real-os - Display real OS names. e.g, Windows XP, Snow\n" + " Leopard.\n" + " --sort-panel=PANEL,METRIC,ORDER - Sort panel on initial load. For example:\n" + " --sort-panel=VISITORS,BY_HITS,ASC. See\n" + " manpage for a list of panels/fields.\n" + " --static-file=<extension> - Add static file extension. e.g.: .mp3.\n" + " Extensions are case sensitive.\n" + "\n" + +/* GeoIP Options */ +#ifdef HAVE_GEOLOCATION + "GeoIP Options\n\n" +#ifdef HAVE_LIBGEOIP + " -g --std-geoip - Standard GeoIP database for less memory\n" + " consumption.\n" +#endif + " --geoip-database=<path> - Specify path to GeoIP database file. i.e.,\n" + " GeoLiteCity.dat, GeoIPv6.dat ...\n" + "\n" +#endif + +/* On-Disk Database Options */ +#ifdef TCB_BTREE + "On-Disk Database Options\n\n" + " --keep-db-files - Persist parsed data into disk.\n" + " --load-from-disk - Load previously stored data from disk.\n" + " --db-path=<path> - Path of the database file. Default [%s]\n" + " --cache-lcnum=<number> - Max number of leaf nodes to be cached. Default\n" + " [%d]\n" + " --cache-ncnum=<number> - Max number of non-leaf nodes to be cached.\n" + " Default [%d]\n" + " --tune-bnum=<number> - Number of elements of the bucket array. Default\n" + " [%d]\n" + " --tune-lmemb=<number> - Number of members in each leaf page. Default\n" + " [%d]\n" + " --tune-nmemb=<number> - Number of members in each non-leaf page.\n" + " Default [%d]\n" + " --xmmap=<number> - Set the size in bytes of the extra mapped\n" + " memory. Default [%d]\n" +#if defined(HAVE_ZLIB) || defined(HAVE_BZ2) + " --compression=<zlib|bz2> - Specifies that each page is compressed with\n" + " ZLIB|BZ2 encoding.\n" + "\n" +#endif +#endif + +/* Other Options */ + "Other Options\n\n" + " -h --help - This help.\n" + " -V --version - Display version information and exit.\n" + " -s --storage - Display current storage method. e.g., B+\n" + " Tree, Hash.\n" + " --dcf - Display the path of the default config\n" + " file when `-p` is not used.\n" + "\n" + + "%s `man goaccess`.\n\n" + "%s: http://goaccess.io\n" + "GoAccess Copyright (C) 2009-2017 by Gerardo Orellana" + "\n\n" +#ifdef TCB_BTREE + , TC_DBPATH, TC_MMAP, TC_LCNUM, TC_NCNUM, TC_LMEMB, TC_NMEMB, TC_BNUM +#endif + , INFO_HELP_EXAMPLES, INFO_MORE_INFO + ); + exit (EXIT_FAILURE); +} +/* *INDENT-ON* */ + +/* Push a command line option to the given array if within bounds and if it's + * not in the array. */ +static void +set_array_opt (const char *oarg, const char *arr[], int *size, int max) +{ + if (str_inarray (oarg, arr, *size) < 0 && *size < max) + arr[(*size)++] = oarg; +} + +/* Parse command line long options. */ +static void +parse_long_opt (const char *name, const char *oarg) +{ + if (!strcmp ("no-global-config", name)) + return; + + /* LOG & DATE FORMAT OPTIONS + * ========================= */ + /* log format */ + if (!strcmp ("log-format", name)) + set_log_format_str (oarg); + + /* time format */ + if (!strcmp ("time-format", name)) + set_time_format_str (oarg); + + /* date format */ + if (!strcmp ("date-format", name)) + set_date_format_str (oarg); + + /* USER INTERFACE OPTIONS + * ========================= */ + /* colors */ + if (!strcmp ("color", name)) + set_array_opt (oarg, conf.colors, &conf.color_idx, MAX_CUSTOM_COLORS); + + /* color scheme */ + if (!strcmp ("color-scheme", name)) + conf.color_scheme = atoi (oarg); + + /* html custom CSS */ + if (!strcmp ("html-custom-css", name)) + conf.html_custom_css = oarg; + + /* html custom JS */ + if (!strcmp ("html-custom-js", name)) + conf.html_custom_js = oarg; + + /* html JSON object containing default preferences */ + if (!strcmp ("html-prefs", name)) + conf.html_prefs = oarg; + + /* html report title */ + if (!strcmp ("html-report-title", name)) + conf.html_report_title = oarg; + + /* json pretty print */ + if (!strcmp ("json-pretty-print", name)) + conf.json_pretty_print = 1; + + /* max items */ + if (!strcmp ("max-items", name)) { + char *sEnd; + int max = strtol (oarg, &sEnd, 10); + if (oarg == sEnd || *sEnd != '\0' || errno == ERANGE) + conf.max_items = 1; + else + conf.max_items = max; + } + + /* no color */ + if (!strcmp ("no-color", name)) + conf.no_color = 1; + + /* no columns */ + if (!strcmp ("no-column-names", name)) + conf.no_column_names = 1; + + /* no csv summary */ + if (!strcmp ("no-csv-summary", name)) + conf.no_csv_summary = 1; + + /* no parsing spinner */ + if (!strcmp ("no-parsing-spinner", name)) + conf.no_parsing_spinner = 1; + + /* no progress */ + if (!strcmp ("no-progress", name)) + conf.no_progress = 1; + + /* no tab scroll */ + if (!strcmp ("no-tab-scroll", name)) + conf.no_tab_scroll = 1; + + /* no html last updated field */ + if (!strcmp ("no-html-last-updated", name)) + conf.no_html_last_updated = 1; + + /* SERVER OPTIONS + * ========================= */ + /* address to bind to */ + if (!strcmp ("addr", name)) + conf.addr = oarg; + + /* FIFO in (read) */ + if (!strcmp ("fifo-in", name)) + conf.fifo_in = oarg; + + /* FIFO out (write) */ + if (!strcmp ("fifo-out", name)) + conf.fifo_out = oarg; + + /* run program as a Unix daemon */ + if (!strcmp ("daemonize", name)) + conf.daemonize = 1; + + /* WebSocket origin */ + if (!strcmp ("origin", name)) + conf.origin = oarg; + + /* PID file to write */ + if (!strcmp ("pid-file", name)) + conf.pidfile = oarg; + + /* port to use */ + if (!strcmp ("port", name)) { + int port = strtol (oarg, NULL, 10); + if (port < 0 || port > 65535) + LOG_DEBUG (("Invalid port.")); + else + conf.port = oarg; + } + + /* real time HTML */ + if (!strcmp ("real-time-html", name)) + conf.real_time_html = 1; + + /* TLS/SSL certificate */ + if (!strcmp ("ssl-cert", name)) + conf.sslcert = oarg; + + /* TLS/SSL private key */ + if (!strcmp ("ssl-key", name)) + conf.sslkey = oarg; + + /* URL to which the WebSocket server responds. */ + if (!strcmp ("ws-url", name)) + conf.ws_url = oarg; + + /* FILE OPTIONS + * ========================= */ + /* invalid requests */ + if (!strcmp ("invalid-requests", name)) { + conf.invalid_requests_log = oarg; + invalid_log_open (conf.invalid_requests_log); + } + + /* output file */ + if (!strcmp ("output", name)) + set_array_opt (oarg, conf.output_formats, &conf.output_format_idx, + MAX_OUTFORMATS); + + /* PARSE OPTIONS + * ========================= */ + /* 444 as 404 */ + if (!strcmp ("444-as-404", name)) + conf.code444_as_404 = 1; + + /* 4xx to unique count */ + if (!strcmp ("4xx-to-unique-count", name)) + conf.client_err_to_unique_count = 1; + + /* anonymize ip */ + if (!strcmp ("anonymize-ip", name)) + conf.anonymize_ip = 1; + + /* store accumulated time in tcb */ + if (!strcmp ("accumulated-time", name)) + conf.store_accumulated_time = 1; + + /* all static files */ + if (!strcmp ("all-static-files", name)) + conf.all_static_files = 1; + + /* crawlers only */ + if (!strcmp ("crawlers-only", name)) + conf.crawlers_only = 1; + + /* date specificity */ + if (!strcmp ("date-spec", name) && !strcmp (oarg, "hr")) + conf.date_spec_hr = 1; + + /* double decode */ + if (!strcmp ("double-decode", name)) + conf.double_decode = 1; + + /* enable panel */ + if (!strcmp ("enable-panel", name)) + set_array_opt (oarg, conf.enable_panels, &conf.enable_panel_idx, + TOTAL_MODULES); + + /* hour specificity */ + if (!strcmp ("hour-spec", name) && !strcmp (oarg, "min")) + conf.hour_spec_min = 1; + + /* ignore crawlers */ + if (!strcmp ("ignore-crawlers", name)) + conf.ignore_crawlers = 1; + + /* ignore panel */ + if (!strcmp ("ignore-panel", name)) + set_array_opt (oarg, conf.ignore_panels, &conf.ignore_panel_idx, + TOTAL_MODULES); + + /* ignore referer */ + if (!strcmp ("ignore-referer", name)) + set_array_opt (oarg, conf.ignore_referers, &conf.ignore_referer_idx, + MAX_IGNORE_REF); + + /* hide referer from report (e.g. within same site) */ + if (!strcmp ("hide-referer", name)) + set_array_opt (oarg, conf.hide_referers, &conf.hide_referer_idx, + MAX_IGNORE_REF); + + /* ignore status code */ + if (!strcmp ("ignore-status", name)) + set_array_opt (oarg, conf.ignore_status, &conf.ignore_status_idx, + MAX_IGNORE_STATUS); + + /* ignore static requests */ + if (!strcmp ("ignore-statics", name)) { + if (!strcmp ("req", oarg)) + conf.ignore_statics = IGNORE_LEVEL_REQ; + else if (!strcmp ("panel", oarg)) + conf.ignore_statics = IGNORE_LEVEL_PANEL; + else + LOG_DEBUG (("Invalid statics ignore option.")); + } + + /* number of line tests */ + if (!strcmp ("num-tests", name)) { + char *sEnd; + int tests = strtol (oarg, &sEnd, 10); + if (oarg == sEnd || *sEnd != '\0' || errno == ERANGE) + return; + conf.num_tests = tests >= 0 ? tests : 0; + } + + /* process and exit */ + if (!strcmp ("process-and-exit", name)) + conf.process_and_exit = 1; + + /* real os */ + if (!strcmp ("real-os", name)) + conf.real_os = 1; + + /* sort view */ + if (!strcmp ("sort-panel", name)) + set_array_opt (oarg, conf.sort_panels, &conf.sort_panel_idx, TOTAL_MODULES); + + /* static file */ + if (!strcmp ("static-file", name) && conf.static_file_idx < MAX_EXTENSIONS) { + if (conf.static_file_max_len < strlen (oarg)) + conf.static_file_max_len = strlen (oarg); + set_array_opt (oarg, conf.static_files, &conf.static_file_idx, + MAX_EXTENSIONS); + } + + /* GEOIP OPTIONS + * ========================= */ + /* specifies the path of the GeoIP City database file */ + if (!strcmp ("geoip-city-data", name) || !strcmp ("geoip-database", name)) + conf.geoip_database = oarg; + + /* BTREE OPTIONS + * ========================= */ + /* keep database files */ + if (!strcmp ("keep-db-files", name)) + conf.keep_db_files = 1; + + /* load data from disk */ + if (!strcmp ("load-from-disk", name)) + conf.load_from_disk = 1; + + /* specifies the path of the database file */ + if (!strcmp ("db-path", name)) + conf.db_path = oarg; + + /* specifies the maximum number of leaf nodes to be cached */ + if (!strcmp ("cache-lcnum", name)) + conf.cache_lcnum = atoi (oarg); + + /* specifies the maximum number of non-leaf nodes to be cached */ + if (!strcmp ("cache-ncnum", name)) + conf.cache_ncnum = atoi (oarg); + + /* number of elements of the bucket array */ + if (!strcmp ("tune-bnum", name)) + conf.tune_bnum = atoi (oarg); + + /* number of members in each non-leaf page */ + if (!strcmp ("tune-nmemb", name)) + conf.tune_nmemb = atoi (oarg); + + /* number of members in each leaf page */ + if (!strcmp ("tune-lmemb", name)) + conf.tune_lmemb = atoi (oarg); + + /* set the size in bytes of the extra mapped memory */ + if (!strcmp ("xmmap", name)) + conf.xmmap = atoi (oarg); + + /* specifies that each page is compressed with X encoding */ + if (!strcmp ("compression", name)) { +#ifdef HAVE_ZLIB + if (!strcmp ("zlib", oarg)) + conf.compression = TC_ZLIB; +#endif +#ifdef HAVE_BZ2 + if (!strcmp ("bz2", oarg)) + conf.compression = TC_BZ2; +#endif + } + + /* default config file --dwf */ + if (!strcmp ("dcf", name)) { + display_default_config_file (); + exit (EXIT_SUCCESS); + } +} + +/* Determine if the '--no-global-config' command line option needs to be + * enabled or not. */ +void +verify_global_config (int argc, char **argv) +{ + int o, idx = 0; + + conf.load_global_config = 1; + while ((o = getopt_long (argc, argv, short_options, long_opts, &idx)) >= 0) { + if (-1 == o || EOF == o) + break; + + switch (o) { + case 'p': + conf.iconfigfile = xstrdup (optarg); + break; + case 0: + if (!strcmp ("no-global-config", long_opts[idx].name)) + conf.load_global_config = 0; + break; + case '?': + exit (EXIT_FAILURE); + } + } + + /* reset it to 1 */ + optind = 1; +} + +/* Attempt to add - to the array of filenames if it hasn't been added it yet. */ +void +add_dash_filename (void) +{ + int i; + // pre-scan for '-' and don't add if already exists: github.com/allinurl/goaccess/issues/907 + for (i = 0; i < conf.filenames_idx; ++i) { + if (conf.filenames[i][0] == '-' && conf.filenames[i][1] == '\0') + return; + } + + if (conf.filenames_idx < MAX_FILENAMES && !conf.read_stdin) { + conf.read_stdin = 1; + conf.filenames[conf.filenames_idx++] = "-"; + } +} + +/* Read the user's supplied command line options. */ +void +read_option_args (int argc, char **argv) +{ + int o, idx = 0; + +#ifdef HAVE_LIBGEOIP + conf.geo_db = GEOIP_MEMORY_CACHE; +#endif + + while ((o = getopt_long (argc, argv, short_options, long_opts, &idx)) >= 0) { + if (-1 == o || EOF == o) + break; + switch (o) { + case 'f': + if (conf.filenames_idx < MAX_FILENAMES) + conf.filenames[conf.filenames_idx++] = optarg; + break; + case 'S': + if (strchr (optarg, '-')) { + printf ("[ERROR] log-size must be a positive integer\n"); + exit (EXIT_FAILURE); + } + conf.log_size = (uint64_t) atoll (optarg); + break; + case 'p': + /* ignore it */ + break; +#ifdef HAVE_LIBGEOIP + case 'g': + conf.geo_db = GEOIP_STANDARD; + break; +#endif + case 'e': + if (conf.ignore_ip_idx < MAX_IGNORE_IPS) + conf.ignore_ips[conf.ignore_ip_idx++] = optarg; + else + LOG_DEBUG (("Max num of (%d) IPs to ignore reached.", MAX_IGNORE_IPS)); + break; + case 'a': + conf.list_agents = 1; + break; + case 'b': + conf.browsers_file = optarg; + break; + case 'c': + conf.load_conf_dlg = 1; + break; + case 'i': + conf.hl_header = 1; + break; + case 'q': + conf.ignore_qstr = 1; + break; + case 'o': + if (!valid_output_type (optarg)) { + printf + ("[ERROR] Invalid filename extension used, must be any of .csv, .json, or .html\n"); + exit (EXIT_FAILURE); + } + if (conf.output_format_idx < MAX_OUTFORMATS) + conf.output_formats[conf.output_format_idx++] = optarg; + break; + case 'l': + conf.debug_log = optarg; + dbg_log_open (conf.debug_log); + break; + case 'r': + conf.skip_term_resolver = 1; + break; + case 'd': + conf.enable_html_resolver = 1; + break; + case 'm': + conf.mouse_support = 1; + break; + case 'M': + if (strcmp ("no", optarg) == 0) + conf.append_method = 0; + else + conf.append_method = 1; + break; + case 'h': + cmd_help (); + break; + case 'H': + if (strcmp ("no", optarg) == 0) + conf.append_protocol = 0; + else + conf.append_protocol = 1; + break; + case 'V': + display_version (); + exit (EXIT_SUCCESS); + break; + case 0: + parse_long_opt (long_opts[idx].name, optarg); + break; + case 's': + display_storage (); + exit (EXIT_SUCCESS); + case '?': + exit (EXIT_FAILURE); + default: + exit (EXIT_FAILURE); + } + } + + for (idx = optind; idx < argc; ++idx) { + /* read from standard input */ + if (!conf.read_stdin && strcmp ("-", argv[idx]) == 0) + add_dash_filename (); + /* read filenames */ + else { + if (conf.filenames_idx < MAX_FILENAMES) + conf.filenames[conf.filenames_idx++] = argv[idx]; + } + } +} diff --git a/src/goaccess++/src/options.h b/src/goaccess++/src/options.h new file mode 100644 index 0000000..fad12b4 --- /dev/null +++ b/src/goaccess++/src/options.h @@ -0,0 +1,38 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef OPTIONS_H_INCLUDED +#define OPTIONS_H_INCLUDED + +void add_dash_filename (void); +void cmd_help (void); +void read_option_args (int argc, char **argv); +void verify_global_config (int argc, char **argv); + +#endif diff --git a/src/goaccess++/src/options.o b/src/goaccess++/src/options.o new file mode 100644 index 0000000000000000000000000000000000000000..1b22a3e15e39dcd5c10cdd429a52474a9885b77a GIT binary patch literal 33032 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�LaFKzv;A2Z<jP{1M{Qf<Hn0h~Uo=w<upGoi7o$1%HKji{Nh%9}xU! z#K#4Hm-s=!@n0mNn-)Akc0MAwZS0Q?7aV${okPTJ!PgLP5!{>;4+w6~iN^&u&*vW$ z+&rH@Ex36;|A^o%lpphIkxBn);x^gC@LiZma4mx0tg$s9xOtv`TyXO~#X-SwjfZYp z@JlJ(M+8sNy+w94=``;JnDQ}v4e4nS^5%Vz0l~Y-4&#EG=lKr`Zr(4L797{)=#B_} zx5oZ@)THwP;x_d+hMRe9i{R!xg#p3Mdj#WxoA(zE3Z5qWObdRevA^K{dnH)u!I^YE zp>Hi)@G$Wf!OgsOK=8jK`EkMDAbwErw}?**j%R7;jtK6*H$>-~CjB31amyCmyqDA> zxOp#WKydS3#<<`E7!kOGf}8horUf_e6CDxU%p1&u%O?Hiy$^E^Yq)vuqoqQ}Z@78? zXh3lDKFGM>=6#TZg7<2**0kW}y`&?8`|nNAxt>YSn^fOy(ucQ%6iEu+L-!Mcs|pEh zT5?h**GJ<fl8`r+f<Gf=h49H&^&2-=@OOD4A@yi4{!ylg6&mzBE0lHd2F2?_@K7<o zg(r$t7|rNLNdpeyL#;^*|FU2T{zQ@$g1;=}gy7v?{L`G#U35R3&WGS{s=?pX&yA4+ z2cG)P!k_A)oc(q`HUu}e=bBpRW{}n)#&4;)pkI7e2D`Qvx;H;P*XpZf%k(dX!+59~ zScKIx8pus|uBD;e%=*Uw`nAP<4cwzn8Q!e(gt(~|KCXi+jKAI|`oe@a&tDmDltpKL zTj*MbZ^4Hu!98+`{x#nw|0aANc;L0Een##@gT6X!1j&Pj5hG@G!&NE!#}iuQ2%QU~ z{jm!%@f-U`fMFEUe$)7{0XXwsjlQ!i+g#A^4e(nk{%}qUyhi;l#*a;1#*gy{jK3B> zMXp8PVfk{0vgph&o|Tzv<w0LHE&Q%<EoJWnFSLuae{G8nW9uLP+oa!sFTe%rl;L|? zw8SzIp$w1XeJT6dc&G<%RR5@F&hhBYgg50^DsBuCZ`A>7m+0Sf;U@wg86L|-mOX|z f(1qWY^`C{O$c}pEU5Kb~2PpjytGmLN4FA6X1YxiY literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/output.c b/src/goaccess++/src/output.c new file mode 100644 index 0000000..b57786b --- /dev/null +++ b/src/goaccess++/src/output.c @@ -0,0 +1,1240 @@ +/** + * output.c -- output to the standard output stream + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana <hello @ goaccess.io> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#define _LARGEFILE_SOURCE +#define _LARGEFILE64_SOURCE +#define _FILE_OFFSET_BITS 64 + +#include <errno.h> +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "output.h" + +#ifdef HAVE_LIBTOKYOCABINET +#include "tcabdb.h" +#else +#include "gkhash.h" +#endif + +#include "error.h" +#include "gwsocket.h" +#include "json.h" +#include "settings.h" +#include "ui.h" +#include "util.h" +#include "xmalloc.h" + +#include "tpls.h" +#include "bootstrapcss.h" +#include "facss.h" +#include "appcss.h" +#include "d3js.h" +#include "hoganjs.h" +#include "chartsjs.h" +#include "appjs.h" + +static void hits_bw_plot (FILE * fp, GHTMLPlot plot, int sp); +static void hits_bw_req_plot (FILE * fp, GHTMLPlot plot, int sp); +static void hits_visitors_plot (FILE * fp, GHTMLPlot plot, int sp); +static void hits_visitors_req_plot (FILE * fp, GHTMLPlot plot, int sp); + +static void print_metrics (FILE * fp, const GHTML * def, int sp); +static void print_host_metrics (FILE * fp, const GHTML * def, int sp); + +/* *INDENT-OFF* */ +static GHTML htmldef[] = { + {VISITORS, 1, print_metrics, { + {CHART_AREASPLINE, hits_visitors_plot, 1, 1} , + {CHART_AREASPLINE, hits_bw_plot, 1, 1} , + }}, + {REQUESTS, 1, print_metrics, { + {CHART_VBAR, hits_visitors_req_plot, 0, 0}, + {CHART_VBAR, hits_bw_req_plot, 0, 0}, + }}, + {REQUESTS_STATIC, 1, print_metrics, { + {CHART_VBAR, hits_visitors_req_plot, 0, 0}, + {CHART_VBAR, hits_bw_req_plot, 0, 0}, + }}, + {NOT_FOUND, 1, print_metrics, { + {CHART_VBAR, hits_visitors_req_plot, 0, 0}, + {CHART_VBAR, hits_bw_req_plot, 0, 0}, + }}, + {HOSTS, 1, print_host_metrics, { + {CHART_VBAR, hits_visitors_plot, 0, 0}, + {CHART_VBAR, hits_bw_plot, 0, 0}, + }}, + {OS, 1, print_metrics, { + {CHART_VBAR, hits_visitors_plot, 0, 1}, + {CHART_VBAR, hits_bw_plot, 0, 1}, + }}, + {BROWSERS, 1, print_metrics, { + {CHART_VBAR, hits_visitors_plot, 0, 1}, + {CHART_VBAR, hits_bw_plot, 0, 1}, + }}, + {VISIT_TIMES, 1, print_metrics, { + {CHART_AREASPLINE, hits_visitors_plot, 0, 1}, + {CHART_AREASPLINE, hits_bw_plot, 0, 1}, + }}, + {VIRTUAL_HOSTS, 1, print_metrics, { + {CHART_VBAR, hits_visitors_plot, 0, 0}, + {CHART_VBAR, hits_bw_plot, 0, 0}, + }}, + {REFERRERS, 1, print_metrics, { + {CHART_VBAR, hits_visitors_plot, 0, 0}, + {CHART_VBAR, hits_bw_plot, 0, 0}, + }}, + {REFERRING_SITES, 1, print_metrics, { + {CHART_VBAR, hits_visitors_plot, 0, 0}, + {CHART_VBAR, hits_bw_plot, 0, 0}, + }}, + {KEYPHRASES, 1, print_metrics, { + {CHART_VBAR, hits_visitors_plot, 0, 0}, + {CHART_VBAR, hits_bw_plot, 0, 0}, + }}, + {STATUS_CODES, 1, print_metrics, { + {CHART_VBAR, hits_visitors_plot, 0, 1}, + {CHART_VBAR, hits_bw_plot, 0, 1}, + }}, + {REMOTE_USER, 1, print_metrics, { + {CHART_VBAR, hits_visitors_plot, 0, 0}, + {CHART_VBAR, hits_bw_plot, 0, 0}, + }}, +#ifdef HAVE_GEOLOCATION + {GEO_LOCATION, 1, print_metrics, { + {CHART_VBAR, hits_visitors_plot, 0, 1}, + {CHART_VBAR, hits_bw_plot, 0, 1}, + }}, +#endif +}; +/* *INDENT-ON* */ + +/* number of new lines (applicable fields) */ +static int nlines = 0; + +/* Get the chart type for the JSON definition. + * + * On success, the chart type string is returned. */ +static const char * +chart2str (GChartType type) +{ + static const char *strings[] = { "null", "bar", "area-spline" }; + return strings[type]; +} + +/* Get panel output data for the given module. + * + * If not found, NULL is returned. + * On success, panel data is returned . */ +static GHTML * +panel_lookup (GModule module) +{ + int i, num_panels = ARRAY_SIZE (htmldef); + + for (i = 0; i < num_panels; i++) { + if (htmldef[i].module == module) + return &htmldef[i]; + } + return NULL; +} + +/* Sanitize output with html entities for special chars */ +static void +clean_output (FILE * fp, char *s) +{ + if (!s) { + LOG_DEBUG (("NULL data on clean_output.\n")); + return; + } + + while (*s) { + switch (*s) { + case '\'': + fprintf (fp, "'"); + break; + case '"': + fprintf (fp, """); + break; + case '&': + fprintf (fp, "&"); + break; + case '<': + fprintf (fp, "<"); + break; + case '>': + fprintf (fp, ">"); + break; + case ' ': + fprintf (fp, " "); + break; + default: + fputc (*s, fp); + break; + } + s++; + } +} + +/* Set the HTML document title and the generated date/time */ +static void +print_html_title (FILE * fp) +{ + const char *title = + conf.html_report_title ? conf.html_report_title : HTML_REPORT_TITLE; + + fprintf (fp, "<title>"); + clean_output (fp, (char *) title); + fprintf (fp, ""); +} + +/* *INDENT-OFF* */ +/* Output all the document head elements. */ +static void +print_html_header (FILE * fp) +{ + fprintf (fp, + "" + "" + "" + "" + "" + "" + "" + "" + "", _(DOC_LANG)); + + print_html_title (fp); + + fprintf (fp, "", fa_css); + fprintf (fp, "", bootstrap_css); + fprintf (fp, "", app_css); + /* load custom CSS file, if any */ + if (conf.html_custom_css) + fprintf (fp, "", conf.html_custom_css); + + fprintf (fp, + "" + ""); +} + +/* Output all structural elements of the HTML document. */ +static void +print_html_body (FILE * fp, const char *now) +{ + fprintf (fp, + "

    " + + "" + "
    " + "
    " + "
    " + "
    " + "" + "
    " + "
    " + "
    " + "
    " + "
    " + "
    ", conf.html_report_title ? conf.html_report_title : ""); + + fprintf (fp, "%s", tpls); +} + +/* Output all the document footer elements such as script and closing + * tags. */ +static void +print_html_footer (FILE * fp) +{ + fprintf (fp, "", d3_js); + fprintf (fp, "", hogan_js); + fprintf (fp, "", app_js); + fprintf (fp, "", charts_js); + + /* load custom JS file, if any */ + if (conf.html_custom_js) + fprintf (fp, "", conf.html_custom_js); + + fprintf (fp, ""); + fprintf (fp, ""); +} +/* *INDENT-ON* */ + +static const GChartDef ChartDefStopper = { NULL, NULL }; + +/* Get the number of chart definitions per panel. + * + * The number of chart definitions is returned . */ +static int +get_chartdef_cnt (GChart * chart) +{ + GChartDef *def = chart->def; + + while (memcmp (def, &ChartDefStopper, sizeof ChartDefStopper)) + ++def; + + return def - chart->def; +} + +/* Output the given JSON chart axis definition for the given panel. */ +static void +print_d3_chart_def_axis (FILE * fp, GChart * chart, size_t cnt, int isp) +{ + GChartDef *def = chart->def; + size_t j = 0; + + for (j = 0; j < cnt; ++j) { + if (strchr (def[j].value, '[') != NULL) + fpskeyaval (fp, def[j].key, def[j].value, isp, j == cnt - 1); + else + fpskeysval (fp, def[j].key, def[j].value, isp, j == cnt - 1); + } +} + +/* Output the given JSON chart definition for the given panel. */ +static void +print_d3_chart_def (FILE * fp, GChart * chart, size_t n, int sp) +{ + size_t i = 0, cnt = 0; + int isp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + for (i = 0; i < n; ++i) { + cnt = get_chartdef_cnt (chart + i); + + fpopen_obj_attr (fp, chart[i].key, sp); + print_d3_chart_def_axis (fp, chart + i, cnt, isp); + fpclose_obj (fp, sp, (i == n - 1)); + } +} + +static void +print_plot_def (FILE * fp, const GHTMLPlot plot, GChart * chart, int n, int sp) +{ + int isp = 0, iisp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1, iisp = sp + 2; + + fpskeysval (fp, "className", plot.chart_key, isp, 0); + fpskeysval (fp, "label", plot.chart_lbl, isp, 0); + fpskeysval (fp, "chartType", chart2str (plot.chart_type), isp, 0); + fpskeyival (fp, "chartReverse", plot.chart_reverse, isp, 0); + fpskeyival (fp, "redrawOnExpand", plot.redraw_expand, isp, 0); + + /* D3.js data */ + fpopen_obj_attr (fp, "d3", isp); + /* print chart definitions */ + print_d3_chart_def (fp, chart, n, iisp); + /* close D3 */ + fpclose_obj (fp, isp, 1); +} + +/* Output D3.js hits/visitors plot definitions. */ +static void +hits_visitors_plot (FILE * fp, GHTMLPlot plot, int sp) +{ + /* *INDENT-OFF* */ + GChart def[] = { + {"y0", (GChartDef[]) { + {"key", "hits"}, {"label", MTRC_HITS_LBL}, ChartDefStopper + }}, + {"y1", (GChartDef[]) { + {"key", "visitors"}, {"label", MTRC_VISITORS_LBL}, ChartDefStopper + }}, + }; + + plot.chart_key = (char[]) {"hits-visitors"}; + plot.chart_lbl = (char *) {HTML_PLOT_HITS_VIS}; + /* *INDENT-ON* */ + print_plot_def (fp, plot, def, ARRAY_SIZE (def), sp); +} + +/* Output D3.js hits/visitors plot definitions. */ +static void +hits_visitors_req_plot (FILE * fp, GHTMLPlot plot, int sp) +{ + /* *INDENT-OFF* */ + GChart def[] = { + {"x", (GChartDef[]) { + {"key", "[\"method\", \"data\", \"protocol\"]"}, ChartDefStopper + }}, + {"y0", (GChartDef[]) { + {"key", "hits"}, {"label", MTRC_HITS_LBL}, ChartDefStopper + }}, + {"y1", (GChartDef[]) { + {"key", "visitors"}, {"label", MTRC_VISITORS_LBL}, ChartDefStopper + }}, + }; + + plot.chart_key = (char[]) {"hits-visitors"}; + plot.chart_lbl = (char *) {HTML_PLOT_HITS_VIS}; + /* *INDENT-ON* */ + print_plot_def (fp, plot, def, ARRAY_SIZE (def), sp); +} + +/* Output C3.js bandwidth plot definitions. */ +static void +hits_bw_plot (FILE * fp, GHTMLPlot plot, int sp) +{ + /* *INDENT-OFF* */ + GChart def[] = { + {"y0", (GChartDef[]) { + {"key", "bytes"}, {"label", MTRC_BW_LBL}, {"format", "bytes"}, ChartDefStopper + }}, + }; + + if (!conf.bandwidth) + return; + + plot.chart_key = (char[]) {"bandwidth"}; + plot.chart_lbl = (char *) {MTRC_BW_LBL}; + /* *INDENT-ON* */ + print_plot_def (fp, plot, def, ARRAY_SIZE (def), sp); +} + +/* Output C3.js bandwidth plot definitions. */ +static void +hits_bw_req_plot (FILE * fp, GHTMLPlot plot, int sp) +{ + /* *INDENT-OFF* */ + GChart def[] = { + {"x", (GChartDef[]) { + {"key", "[\"method\", \"protocol\", \"data\"]"}, ChartDefStopper + }}, + {"y0", (GChartDef[]) { + {"key", "bytes"}, {"label", MTRC_BW_LBL}, {"format", "bytes"}, ChartDefStopper + }}, + }; + + if (!conf.bandwidth) + return; + + plot.chart_key = (char[]) {"bandwidth"}; + plot.chart_lbl = (char *) {MTRC_BW_LBL}; + /* *INDENT-ON* */ + print_plot_def (fp, plot, def, ARRAY_SIZE (def), sp); +} + +/* Output JSON data definitions. */ +static void +print_json_data (FILE * fp, GLog * glog, GHolder * holder) +{ + char *json = NULL; + + if ((json = get_json (glog, holder, 1)) == NULL) + return; + + fprintf (fp, ""); + + free (json); +} + +/* Output WebSocket connection definition. */ +static void +print_conn_def (FILE * fp) +{ + int sp = 0; + /* use tabs to prettify output */ + if (conf.json_pretty_print) + sp += 1; + + if (!conf.real_time_html) + return; + + fprintf (fp, ""); +} + +/* Output JSON per panel metric definitions. */ +static void +print_def_metric (FILE * fp, const GDefMetric def, int sp) +{ + int isp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + if (def.cname) + fpskeysval (fp, "className", def.cname, isp, 0); + if (def.cwidth) + fpskeysval (fp, "colWidth", def.cwidth, isp, 0); + if (def.metakey) + fpskeysval (fp, "meta", def.metakey, isp, 0); + if (def.metatype) + fpskeysval (fp, "metaType", def.metatype, isp, 0); + if (def.metalbl) + fpskeysval (fp, "metaLabel", def.metalbl, isp, 0); + if (def.datatype) + fpskeysval (fp, "dataType", def.datatype, isp, 0); + if (def.datakey) + fpskeysval (fp, "key", def.datakey, isp, 0); + if (def.lbl) + fpskeysval (fp, "label", def.lbl, isp, 1); +} + +/* Output JSON metric definition block. */ +static void +print_def_block (FILE * fp, const GDefMetric def, int sp, int last) +{ + fpopen_obj (fp, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, last); +} + +/* Output JSON overall requests definition block. */ +static void +print_def_overall_requests (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_REQUESTS, + .datatype = "numeric", + .cname = "black" + }; + fpopen_obj_attr (fp, OVERALL_REQ, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 0); +} + +/* Output JSON overall valid requests definition block. */ +static void +print_def_overall_valid_reqs (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_VALID, + .datatype = "numeric", + .cname = "green" + }; + fpopen_obj_attr (fp, OVERALL_VALID, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 0); +} + +/* Output JSON overall invalid requests definition block. */ +static void +print_def_overall_invalid_reqs (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_FAILED, + .datatype = "numeric", + .cname = "red" + }; + fpopen_obj_attr (fp, OVERALL_FAILED, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 0); +} + +/* Output JSON process time definition block. */ +static void +print_def_overall_processed_time (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_GEN_TIME, + .datatype = "secs", + .cname = "gray" + }; + fpopen_obj_attr (fp, OVERALL_GENTIME, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 0); +} + +/* Output JSON overall visitors definition block. */ +static void +print_def_overall_visitors (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_UNIQUE_VISITORS, + .datatype = "numeric", + .cname = "blue" + }; + fpopen_obj_attr (fp, OVERALL_VISITORS, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 0); +} + +/* Output JSON overall files definition block. */ +static void +print_def_overall_files (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_UNIQUE_FILES, + .datatype = "numeric", + }; + fpopen_obj_attr (fp, OVERALL_FILES, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 0); +} + +/* Output JSON overall excluded requests definition block. */ +static void +print_def_overall_excluded (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_EXCLUDE_IP, + .datatype = "numeric", + }; + fpopen_obj_attr (fp, OVERALL_EXCL_HITS, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 0); +} + +/* Output JSON overall referrers definition block. */ +static void +print_def_overall_refs (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_REFERRER, + .datatype = "numeric", + }; + fpopen_obj_attr (fp, OVERALL_REF, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 0); +} + +/* Output JSON overall not found definition block. */ +static void +print_def_overall_notfound (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_UNIQUE404, + .datatype = "numeric", + }; + fpopen_obj_attr (fp, OVERALL_NOTFOUND, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 0); +} + +/* Output JSON overall static files definition block. */ +static void +print_def_overall_static_files (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_STATIC_FILES, + .datatype = "numeric", + }; + fpopen_obj_attr (fp, OVERALL_STATIC, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 0); +} + +/* Output JSON log size definition block. */ +static void +print_def_overall_log_size (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_LOG, + .datatype = "bytes", + }; + fpopen_obj_attr (fp, OVERALL_LOGSIZE, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 0); +} + +/* Output JSON overall bandwidth definition block. */ +static void +print_def_overall_bandwidth (FILE * fp, int sp) +{ + GDefMetric def = { + .lbl = T_BW, + .datatype = "bytes", + }; + fpopen_obj_attr (fp, OVERALL_BANDWIDTH, sp); + print_def_metric (fp, def, sp); + fpclose_obj (fp, sp, 1); +} + +/* Output JSON hits definition block. */ +static void +print_def_hits (FILE * fp, int sp) +{ + GDefMetric def = { + .datakey = "hits", + .lbl = MTRC_HITS_LBL, + .datatype = "numeric", + .metakey = "count", + .cwidth = "12%", + }; + print_def_block (fp, def, sp, 0); +} + +/* Output JSON visitors definition block. */ +static void +print_def_visitors (FILE * fp, int sp) +{ + GDefMetric def = { + .datakey = "visitors", + .lbl = MTRC_VISITORS_LBL, + .datatype = "numeric", + .metakey = "count", + .cwidth = "12%", + }; + print_def_block (fp, def, sp, 0); +} + +/* Output JSON bandwidth definition block. */ +static void +print_def_bw (FILE * fp, int sp) +{ + GDefMetric def = { + .datakey = "bytes", + .lbl = MTRC_BW_LBL, + .datatype = "bytes", + .metakey = "count", + .cwidth = "12%", + }; + + if (!conf.bandwidth) + return; + + print_def_block (fp, def, sp, 0); +} + +/* Output JSON Avg. T.S. definition block. */ +static void +print_def_avgts (FILE * fp, int sp) +{ + GDefMetric def = { + .datakey = "avgts", + .lbl = MTRC_AVGTS_LBL, + .datatype = "utime", + .metakey = "avg", + .cwidth = "8%", + }; + + if (!conf.serve_usecs) + return; + + print_def_block (fp, def, sp, 0); +} + +/* Output JSON Cum. T.S. definition block. */ +static void +print_def_cumts (FILE * fp, int sp) +{ + GDefMetric def = { + .datakey = "cumts", + .lbl = MTRC_CUMTS_LBL, + .datatype = "utime", + .metakey = "count", + .cwidth = "8%", + }; + + if (!conf.serve_usecs) + return; + + print_def_block (fp, def, sp, 0); +} + +/* Output JSON Max. T.S. definition block. */ +static void +print_def_maxts (FILE * fp, int sp) +{ + GDefMetric def = { + .datakey = "maxts", + .lbl = MTRC_MAXTS_LBL, + .datatype = "utime", + .metakey = "count", + .cwidth = "8%", + }; + + if (!conf.serve_usecs) + return; + print_def_block (fp, def, sp, 0); +} + +/* Output JSON method definition block. */ +static void +print_def_method (FILE * fp, int sp) +{ + GDefMetric def = { + .datakey = "method", + .lbl = MTRC_METHODS_LBL, + .datatype = "string", + .cwidth = "6%", + }; + + if (!conf.append_method) + return; + + print_def_block (fp, def, sp, 0); +} + +/* Output JSON protocol definition block. */ +static void +print_def_protocol (FILE * fp, int sp) +{ + GDefMetric def = { + .datakey = "protocol", + .lbl = MTRC_PROTOCOLS_LBL, + .datatype = "string", + .cwidth = "7%", + }; + + if (!conf.append_protocol) + return; + + print_def_block (fp, def, sp, 0); +} + +/* Output JSON city definition block. */ +static void +print_def_city (FILE * fp, int sp) +{ + GDefMetric def = { + .datakey = "city", + .lbl = MTRC_CITY_LBL, + .datatype = "string", + }; + + if (!conf.has_geocity) + return; + + print_def_block (fp, def, sp, 0); +} + +/* Output JSON country definition block. */ +static void +print_def_country (FILE * fp, int sp) +{ + GDefMetric def = { + .datakey = "country", + .lbl = MTRC_COUNTRY_LBL, + .datatype = "string", + }; + + if (!conf.has_geocountry) + return; + + print_def_block (fp, def, sp, 0); +} + +/* Output JSON hostname definition block. */ +static void +print_def_hostname (FILE * fp, int sp) +{ + GDefMetric def = { + .datakey = "hostname", + .lbl = MTRC_HOSTNAME_LBL, + .datatype = "string", + .cname = "light", + }; + + if (!conf.enable_html_resolver) + return; + + print_def_block (fp, def, sp, 0); +} + +/* Output JSON data definition block. */ +static void +print_def_data (FILE * fp, GModule module, int sp) +{ + GDefMetric def = { + .cname = "trunc", + .cwidth = "100%", + .datakey = "data", + .datatype = module == VISITORS ? "date" : "string", + .lbl = MTRC_DATA_LBL, + .metakey = "unique", + .metalbl = "Total", + .metatype = "numeric", + }; + + print_def_block (fp, def, sp, 1); +} + +/* Get the number of plots for the given panel definition. + * + * The number of plots for the given panel is returned. */ +static int +count_plot_fp (const GHTML * def) +{ + int i = 0; + for (i = 0; def->chart[i].plot != 0; ++i); + return i; +} + +/* Entry function to output JSON plot definition block. */ +static void +print_def_plot (FILE * fp, const GHTML * def, int sp) +{ + int i, isp = 0, n = count_plot_fp (def); + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + fpopen_arr_attr (fp, "plot", sp); + + for (i = 0; i < n; ++i) { + fpopen_obj (fp, isp); + def->chart[i].plot (fp, def->chart[i], isp); + fpclose_obj (fp, isp, (i == n - 1)); + } + + fpclose_arr (fp, sp, 0); +} + +/* Output JSON host panel definitions. */ +static void +print_host_metrics (FILE * fp, const GHTML * def, int sp) +{ + const GOutput *output = output_lookup (def->module); + + print_def_hits (fp, sp); + print_def_visitors (fp, sp); + print_def_bw (fp, sp); + print_def_avgts (fp, sp); + print_def_cumts (fp, sp); + print_def_maxts (fp, sp); + + if (output->method) + print_def_method (fp, sp); + if (output->protocol) + print_def_protocol (fp, sp); + + print_def_city (fp, sp); + print_def_country (fp, sp); + print_def_hostname (fp, sp); + + print_def_data (fp, def->module, sp); +} + +/* Output JSON panel definitions. */ +static void +print_metrics (FILE * fp, const GHTML * def, int sp) +{ + const GOutput *output = output_lookup (def->module); + + print_def_hits (fp, sp); + print_def_visitors (fp, sp); + print_def_bw (fp, sp); + print_def_avgts (fp, sp); + print_def_cumts (fp, sp); + print_def_maxts (fp, sp); + + if (output->method) + print_def_method (fp, sp); + if (output->protocol) + print_def_protocol (fp, sp); + + print_def_data (fp, def->module, sp); +} + +/* Entry point to output JSON metric definitions. */ +static void +print_def_metrics (FILE * fp, const GHTML * def, int sp) +{ + int isp = 0; + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + /* open data metric data */ + fpopen_arr_attr (fp, "items", sp); + /* definition metrics */ + def->metrics (fp, def, isp); + /* close metrics block */ + fpclose_arr (fp, sp, 1); +} + +/* Output panel header and description metadata definitions. */ +static void +print_def_meta (FILE * fp, const char *head, const char *desc, int sp) +{ + int isp = 0; + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + fpskeysval (fp, "head", head, isp, 0); + fpskeysval (fp, "desc", desc, isp, 0); +} + +/* Output panel sort metadata definitions. */ +static void +print_def_sort (FILE * fp, const GHTML * def, int sp) +{ + GSort sort = module_sort[def->module]; + int isp = 0; + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + /* output open sort attribute */ + fpopen_obj_attr (fp, "sort", sp); + fpskeysval (fp, "field", get_sort_field_key (sort.field), isp, 0); + fpskeysval (fp, "order", get_sort_order_str (sort.sort), isp, 1); + /* output close sort attribute */ + fpclose_obj (fp, sp, 0); +} + +/* Output panel metadata definitions. */ +static void +print_panel_def_meta (FILE * fp, const GHTML * def, int sp) +{ + const char *desc = module_to_desc (def->module); + const char *head = module_to_head (def->module); + const char *id = module_to_id (def->module); + + int isp = 0; + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1; + + print_def_meta (fp, head, desc, sp); + + fpskeysval (fp, "id", id, isp, 0); + fpskeyival (fp, "table", def->table, isp, 0); + + print_def_sort (fp, def, isp); + print_def_plot (fp, def, isp); + print_def_metrics (fp, def, isp); +} + +/* Output definitions for the given panel. */ +static void +print_json_def (FILE * fp, const GHTML * def) +{ + int sp = 0; + /* use tabs to prettify output */ + if (conf.json_pretty_print) + sp = 1; + + /* output open panel attribute */ + fpopen_obj_attr (fp, module_to_id (def->module), sp); + /* output panel data definitions */ + print_panel_def_meta (fp, def, sp); + /* output close panel attribute */ + fpclose_obj (fp, sp, 1); + + fpjson (fp, (def->module != TOTAL_MODULES - 1) ? ",%.*s" : "%.*s", nlines, + NL); +} + +/* Output overall definitions. */ +static void +print_def_summary (FILE * fp, int sp) +{ + int isp = 0, iisp = 0; + /* use tabs to prettify output */ + if (conf.json_pretty_print) + isp = sp + 1, iisp = sp + 2; + + /* open metrics block */ + fpopen_obj_attr (fp, "items", isp); + + print_def_overall_requests (fp, iisp); + print_def_overall_valid_reqs (fp, iisp); + print_def_overall_invalid_reqs (fp, iisp); + print_def_overall_processed_time (fp, iisp); + print_def_overall_visitors (fp, iisp); + print_def_overall_files (fp, iisp); + print_def_overall_excluded (fp, iisp); + print_def_overall_refs (fp, iisp); + print_def_overall_notfound (fp, iisp); + print_def_overall_static_files (fp, iisp); + print_def_overall_log_size (fp, iisp); + print_def_overall_bandwidth (fp, iisp); + + /* close metrics block */ + fpclose_obj (fp, isp, 1); +} + +/* Cheap JSON internationalisation (i18n) - report labels */ +static void +print_json_i18n_def (FILE * fp) +{ + int sp = 0; + size_t i = 0; + + /* *INDENT-OFF* */ + static const char *json_i18n[][2] = { + {"theme" , HTML_REPORT_NAV_THEME} , + {"dark_gray" , HTML_REPORT_NAV_DARK_GRAY} , + {"bright" , HTML_REPORT_NAV_BRIGHT} , + {"dark_blue" , HTML_REPORT_NAV_DARK_BLUE} , + {"dark_purple" , HTML_REPORT_NAV_DARK_PURPLE} , + {"panels" , HTML_REPORT_NAV_PANELS} , + {"items_per_page" , HTML_REPORT_NAV_ITEMS_PER_PAGE} , + {"tables" , HTML_REPORT_NAV_TABLES} , + {"display_tables" , HTML_REPORT_NAV_DISPLAY_TABLES} , + {"ah_small" , HTML_REPORT_NAV_AH_SMALL} , + {"ah_small_title" , HTML_REPORT_NAV_AH_SMALL_TITLE} , + {"layout" , HTML_REPORT_NAV_LAYOUT} , + {"horizontal" , HTML_REPORT_NAV_HOR} , + {"vertical" , HTML_REPORT_NAV_VER} , + {"file_opts" , HTML_REPORT_NAV_FILE_OPTS} , + {"export_json" , HTML_REPORT_NAV_EXPORT_JSON} , + {"panel_opts" , HTML_REPORT_PANEL_PANEL_OPTS} , + {"previous" , HTML_REPORT_PANEL_PREVIOUS} , + {"next" , HTML_REPORT_PANEL_NEXT} , + {"first" , HTML_REPORT_PANEL_FIRST} , + {"last" , HTML_REPORT_PANEL_LAST} , + {"chart_opts" , HTML_REPORT_PANEL_CHART_OPTS} , + {"chart" , HTML_REPORT_PANEL_CHART} , + {"type" , HTML_REPORT_PANEL_TYPE} , + {"area_spline" , HTML_REPORT_PANEL_AREA_SPLINE} , + {"bar" , HTML_REPORT_PANEL_BAR} , + {"plot_metric" , HTML_REPORT_PANEL_PLOT_METRIC} , + {"table_columns" , HTML_REPORT_PANEL_TABLE_COLS} , + {"thead" , T_HEAD} , + {"version" , GO_VERSION} , + }; + /* *INDENT-ON* */ + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + sp = 1; + + fpopen_obj (fp, 0); + for (i = 0; i < ARRAY_SIZE (json_i18n); ++i) { + fpskeysval (fp, json_i18n[i][0], _(json_i18n[i][1]), sp, 0); + } + fpclose_obj (fp, 0, 1); +} + +/* Output definitions for the given panel. */ +static void +print_json_def_summary (FILE * fp) +{ + int sp = 0; + + /* use tabs to prettify output */ + if (conf.json_pretty_print) + sp = 1; + + /* output open panel attribute */ + fpopen_obj_attr (fp, GENER_ID, sp); + print_def_meta (fp, _(T_HEAD), "", sp); + print_def_summary (fp, sp); + /* output close panel attribute */ + fpclose_obj (fp, sp, 0); +} + +/* Entry point to output definitions for all panels. */ +static void +print_json_defs (FILE * fp) +{ + const GHTML *def; + size_t idx = 0; + + fprintf (fp, ""); +} + +/* entry point to generate a report writing it to the fp */ +void +output_html (GLog * glog, GHolder * holder, const char *filename) +{ + FILE *fp; + char now[DATE_TIME]; + + if (filename != NULL) + fp = fopen (filename, "w"); + else + fp = stdout; + + if (!fp) + FATAL ("Unable to open HTML file: %s.", strerror (errno)); + + /* use new lines to prettify output */ + if (conf.json_pretty_print) + nlines = 1; + set_json_nlines (nlines); + + generate_time (); + strftime (now, DATE_TIME, "%Y-%m-%d %H:%M:%S %z", now_tm); + + print_html_header (fp); + + print_html_body (fp, now); + print_json_defs (fp); + print_json_data (fp, glog, holder); + print_conn_def (fp); + + print_html_footer (fp); + + fclose (fp); +} diff --git a/src/goaccess++/src/output.h b/src/goaccess++/src/output.h new file mode 100644 index 0000000..35468f0 --- /dev/null +++ b/src/goaccess++/src/output.h @@ -0,0 +1,99 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#ifndef OUTPUT_H_INCLUDED +#define OUTPUT_H_INCLUDED + +#define MAX_PLOTS 5 /* number of metrics we can plot */ + +#include "commons.h" +#include "parser.h" + +/* Enumerated chart types */ +typedef enum GChartType_ +{ + CHART_NONE, + CHART_VBAR, + CHART_AREASPLINE, +} GChartType; + +/* Chart axis structure */ +typedef struct GChartDef_ +{ + const char *key; + const char *value; +} GChartDef; + +/* Chart axis structure */ +typedef struct GChart_ +{ + const char *key; + GChartDef *def; +} GChart; + +/* Chart behavior */ +typedef struct GHTMLPlot_ +{ + GChartType chart_type; + void (*plot) (FILE * fp, struct GHTMLPlot_ plot, int sp); + int8_t chart_reverse; + int8_t redraw_expand; + char *chart_key; + char *chart_lbl; +} GHTMLPlot; + +/* Controls HTML panel output. */ +typedef struct GHTML_ +{ + GModule module; + int8_t table; + void (*metrics) (FILE * fp, const struct GHTML_ * def, int sp); + GHTMLPlot chart[MAX_PLOTS]; +} GHTML; + +/* Metric definition . */ +typedef struct GDefMetric_ +{ + const char *cname; /* metric class name */ + const char *cwidth; /* metric column width */ + const char *datakey; /* metric JSON data key */ + const char *datatype; /* metric data value type */ + const char *lbl; /* metric label (column name) */ + const char *metakey; /* metric JSON meta key */ + const char *metatype; /* metric meta value type */ + const char *metalbl; /* metric meta value label */ +} GDefMetric; + +void output_html (GLog * glog, GHolder * holder, const char *filename); + +#endif diff --git a/src/goaccess++/src/output.o b/src/goaccess++/src/output.o new file mode 100644 index 0000000000000000000000000000000000000000..016c740616043e524c95238b452bb3874569f1f6 GIT binary patch literal 361872 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

    QW;zR(*B928+u7J`vbY5x-ZMQ! zQQEZ$niW$>rA>~jBo++l&pB`#;zWwB5LOmD@)ozR!l?!_s~B&IUy=;#6N7n!V}@xPgty^uw380`}~=0=YcQN zq1j}Zl_7ypI`LU2KJCO;o%pyDzwgA)@n_kIUv=WAo%rLrqxb`}qmyJoCPXby5!;cG zDO%uSq_@#4&o&Z;g^z9XGL0dgvOZVVC!L5Tb=G0f3mPW*O3B9@@VP4Rvx1Z9qhw?) zyo`x)ho(Hh3qDgC)ye*OCoLWrD|2b*RWf7Y&javXOLOCFMB95dp3E@Ovfg2c za`UrpHgeVN=BsN)_5JF89%_40eUIAMmTosDurXo=R|WiL)(1{9%;8E3L)N>)OhXTK z$%2Qe%_t*RxBy^UG2FX}*FwGHM8SDPSa={8iG5hDH@^9%ip7Oc7*WA1RWt;@`KD4u zp_x#dla}S#*;&cNS7k!KluYdwN))b_VsJ^nXO$O_>9T#&w!}q*&!{(|a;9&-gSR1s zL;mCjEsxZ2PTX}`FSr&?UXV=Px-X@7b;^ZnJEg)S2EXABl%fYUm?Q&QT!n;80(ADx zl^0Qz%xNg?2o_h?J-d?joX|VBZfF{7mNK&O<`OjKY(i4kt!|_=m5n0zn$+U@1Kw5; z953BYS6)J)K3an+(*n>qayc5x>lIC<>?<~{&>BgKTQl+4k5oSDldwBQ~I~5(>vzBlq>2Vzm4o#cfS` z;DP(+Y`pDlu9AJWUUP4QfXXNHa!4!tG$C5Ie>z}dEq3`|@Rp5GYBv6~7vx9l13e7D*p4#!HHm<9MYRpFX8K^SS9J3E<1!66T7 z6j>jLMT^8AGY0rKo#O_BZqHjCVcL`?wQhvxY5rW@kDV?A1q;zuG{0o~W z=F#RQK8xPKA>lIkth0&2%jf9Fq+h>g=`Ytw?ba1WP4a5rK1bgt<$uYR{~@K{{&_e3 z_I-9#|GINjWOKcziChs{@$VYsKcVab*+yu)oIY1TeUGGN{K;<^X+Nbd&lA78+>t>8 zTE=hMn4ZjwW%HJo)&gC7|L{=wq6^5f_`PcV*f~0R z)!BrQf2zOlT2DxL-`Rx3f3CmpTE`@ub~YjYuk@F@QMe|lKdYR!bWZ;0#NQH8toXVU z{{$gUc;Q>{To!*+A5Knee}N-xhe5sC@i6(rG22tLnO1)Le1HTo)%ZXhz8Heg6%~UP8^!D+Uz43T~WlEjN6HS>uEz z=e$eTVcLQFPCPu+ByA*1dU3R9aol7oDRUG=dMyeOcmoya_lzer9{@=#aOiEktoyaej^=6v9gqs5Yz!$WV~iyy zEwUrXjnVi`Yl$tBM7f-QMPOyJW{9ix8dOPO9SOWX{gS{1*MeFUy?Uz(y=yf>P`uuwKUTh>gg1ah_F3HwF9kT&u&z zkz`aPwS*%=-$LX0ro%nJ8vLssNRg$pX0V;%41MBssF{)C`OMb#c-`hxtmd_$ec)0q zG)(ge20M2wZ2c-HswJTfl;(1`r$k0I?Jqym!ji zjz%wFWuAxvTX6ZDXJfm;dI!kMcqeShFY`8xU5YS_p)%H47JT^D^Sk^uS|)hStO$<^ z&Yi%qrCc)>!jbf8jjL$yv@^ZL;223%B3b?88%$X zdE*4@Z%j&X|9Bd0%qyLZ{zjX3n!{D$$lj9iVg9!mc9z+hSXsz!R{R=S5wzylipZJI zVaKuElNkm5n1#P{U1HAQhMV2e2JxDZOqf3Qxt%E;xyHGjd4&JOjf&HSn{^s{5WVBCyOM!?c9qWWt+c&)S=zWH2K(h-R(g@C6kp`V|H%+> z3wPN>9@V#nHNSd{%4AImTkz ziS&%Pg$HB{^T%ZN+_56%QG7VgyteqBNw6_y3OuL@n5lLzW>>SB?P{#YkxzxC+VQD8 z;)m5(=R+vhXGgCO8+X@@kZodv)=6@L<4B|Q4Tuk~YU-=H%v6O$(O(+Ah^KTz z6(H+Nh$GO0By;_^OC&oG5H`W*`Y>Y8>%%}Fh9EsY=vJZipIM=BSWKvncn`)0;FpAb zzXq>E{Ef^qNiy!)N0)KW3W*`_sXeTm+lwa{as`wOLJp5yd;@m=3v6)$Tl)@zCBjcq zh@T*uJEJ+DBN{Fgs^cb+MB%RP)}b0YBVU$chKC%*|5fX@xaQbiWY2BLp*sl-?Ty7c zVy$;18mmP>7*DnMpces-8M^Wox>AfIHt5>>m(^;tkkK6pmoYn6clCDMsv|UHz%f=)UWm8KM*109=xp7oosv0?O)Q1bYtCw!C!K9L^<;U-D2~P1Djg)( z*pI`D<>I_Ox=&KYP3PxMxas`dF(%%xxBBD+9F7PRL6@qMV?DRnbbX}<(*CpXZNW;;!;X{YH0&k8c?d)lPvRZ{e7X5;?b zt#SKxRo`S0y3s=-r{f!pC+NpwwwG*@?3n(RjOlL(gOhtzk~gz*5i*5|qya}fD&htD z=9M?dmJ^U*vk5uEbvCIbY4QE6c$|#r*p28P`4J^~>tQ%7n{+tn2cJ(Mlc(o*4e1}r zkpAJ8$}jl_62k0J-7VUC*Q|z$fGX|4oc-OqzX!i0J@^Hd+x{ut{fKJ$a5m8O@n}#HXqlvQ!mAEcq52?>K8!KQ$oO=CI`jVio!H z^T5@(kkO$#mWW6zZeFs==tFqsy2Bgtn6YpEant)p;KFW*f-~^>!d!Uh7ofrA^?4!0 z(9FRE*ayJIE_ZUcI9Omn@2%%g%F8NJg^_o*t+;KFZRO#bL;|LnS9T<_m&RE~x9Qrsm0SE@Kr2=+-kWn%eb;#`-mZ$k)exo+OT}~Y)>UyMO}Za| zt`GG1gV|X?_guiQG(l;G#R)`z=&UgNS$AHinUOCQX%(~aNin|8rqF${3-1D15b zt;Q9nHwZ`+b#=42Sb2&Htsa-XL%$gfizWoF!)b>msz+1Q(|bHSC~+xM z0KyM5B5lu2iH^siJrZ`t?V=Z^Yhr13fz!@Hw$w^;DoC#Fw_MI4t~-!1_)nU5jbxcH zTAjw$KReOCI?=y7(HLi~qo_ydGn}UD@4=55{=2TW3gMQ*GruxzW%O`qIM)<$v8s}ccvRsw~{`2K*q`4#(8;G z8&!lbZW`x!7In5Kmfm)zC-#gB>t0?l!teQH9Cuc8mZ=7&DsG!HTlkZU@|pI}h#c)A z;|odS(j6X)>TBVWD(=UtuK>#{F6#Ux)h_9;#6GRQaWE!~cJI?bdnN{CN0c}}*O2AU`^B@O8vru$q zM>Q_5s&5#5&vh8)HMN?Htm;qFZ^@RK`8$5#DHdpqFtpIb!zE z(HpiV(eh{s^zn~mzrEIydFZ(%cnX+s(la@dBcJM1gVor6U*HO5Sk*kqtdb0kTL^O0U%`3TV%Bbc8vH{k7!0de zGlr)B#4?11?Z{8e59ij@6*tnbug-wh0a_D$r-QvFNsnzgXMV(1!2oi~G8o z4uP)H{Y+OwAADD>nrv77z%s3^bT!$On!;uEr_cD!L(1`$rs%*;p3RMftATjA#6|3Q zGEDLMEmGHL0F&LC)24*(Mcph8ny9GYaK6}4&68tOqH?XLgwl94#IK!>T4Hr}aBw)k zZS&mY+b6ZBi10$xbB<(`<3Qv(gb5;@1hqQqz);JCnWWpkqv!{5L?kB2ClG|pngXu1 zi1mqbICe1A>&NnMMaa*?7!<|tW46i33DKtD#tr@7CC_lQ-l4?s?tl=c63HX?;X=v` ze-3Amiwx<{59h@xe9D?X5XHo<(9X?{3*fi;6mbm-PB+<4c))|a44;M=Tzqz-1@ySZ zUwbtJXDBQdA=l#ND7k!b!E)#v)(e)&X&;hnub%)Sg9xZ z>!%Hpj)nx6d`t{PbR+GyB`pRno#fLG`MCJlaseEf2psoaOon!Cb7W;io<3myRUY#~0`P@QBM96yNn4{>6K%wQrnA}rYwsjp8UZWh-xqPJn z5+p&@!9y0rC+zXwPNY9#j`OG|OgoHcd{HHsQhPbZxka)v(|&|J9xN>(BJgJygk zsIPa?2gy*hjMpjlv)V$KENSfL-a;NGp38%sVP6gBuiCG;@PG4-e}sC_Ima4o_X9#B z01K;&z$r!q0_Csp@JBAhlbuShROWYHnUx+_YxR=ZO{GQ#v}4``4a4=R!!QwKAXX}@ z4gc=QGZpP4h2S#byQpwJE4>c1sLWnE|;T7>6JcwWbDR+7NW;TECdkXi^OFixM97WO0XxX@(qjnRsiw zh;PtByNtU|2d%H`kX#~Sb)-&@2a9tQ`-F`K+_$HP12D*-#KhA7XwJEE2_SOwM@9r)3|(% zLFEAU&LOufI&nq_-osNKyD`^*Gv7F=r@moQeX}I`Mo-;ga}{3@ocB1ssdNvn4v&v+ z;%@n>brD~dj}L^v-`o5MqVMHVF}D+kMIvuTbdEm&C!$|t1tj%$d~Cw^)k|EJWtic% z%gFUUm#L3`_*~8Y#5iB71t<>3-b?Ep=oar#7-yBBrs;V+#Q~|6V2=8lsB`@Z#o$;C z!j7QGa~w{)K_y;H`k2>^V?fQ~iQd~{6X$^A7^|(okdlqr3hzTUad8LvZ#-H?@=q#x ztf*^v0^Bal`JpfjWcKi(rvoTD8k+9j@S*1dhTAHFM(FUC6h1|qtDWZ->Cb{iOpNQ; z84tl=i^~GNppQ`69${)AsurtNsfg3!-sVAtxscJdjoD&x4PXJA30ISz1Rz z(`(wD!3|$lFlC`jb_isoX>W)~Gg#_m$Rz%FCbhbFx|;rKDR&+5D?C(M{q(U)r<-Q z+;--B7GJEiJ;A8zB;aS^Mu(AEU^upz^dBV_HpJXBEfH2??+B0A=j}PSkj3PM;*U5N zgV-}|{pF1s)=tL5Z4O5kfjr%3W%61*z zDF(-iL-Ube{0!il|8_GUmJrMlgjX0AK_(06BBQv|x?V=SRd_74&UogbqOVCU=?*?y z7O&0IH??Wa;7LA9-lR7q&}#1*k9oKm5|=}4`=h|hl=D(ZKQL4_73atVs-)dOwD<6_ ziU4174m|&k$Uk!LGu{dCxx_*)_+B%#*=suyMuKMG`|;oEUi^;9eX+8>d*2bj=ilxxww^n2^l^Q4 z2}!{;KpgiLPZsR4Go0lW3rUFrS_Os{#2Zagt7pv5&uyYzPsVcsGst@qign>82{w4m zjrpj@N~g-})|{wrY#TuKI>U2h`+C%qtcb9DT?eEuP{e__m>Sl$63T^=H?H(w+#AXB z_r0rMLw>y|&Fox!PJ1D-;26kE%_o8rL}xe&>hO!!*hZD~Ri@ETA}HFXHcP zf=2BdRb4q*1;Zbk*r_Nd~vB9brv}5{zCQ}8v^z-@&*rA zuG7LfzBvLk%`zlLhSpD1dn2ruoFfAD^is57R~ywSI-;?8A!fO{)YG?_{){o*!6IL5 z{`1E}FD@97C<4Vu5)wyctj^EhL5dt)I^qx0Tm(b9M`r4W?^Y(zwi^@xW#mqdikgMrj5^c_fBZWWT_U%RHTki!a)h`Npuc ziR*=Rmd>6w+ z2R(uQ=HP34d`a{Pcsfs{w2NU9tb6x(>YRhNu0MaCQE8@Rn!TT9ANlOXQKio)(C9D6 za|3L4t^{Zg|uV9jc%cIY{UGRiY+{kl{rgizEkApfw~*gqqWj@HrT32yg$Q6}rgkdPF>U!Fut+JP`C z5t$$wVZzrGB_WQ^um^o})vAc2fpA4oN;o$HDi8i+5eof{r+#EY!-xakZx zhULkI1&-((wl~_Se@hTBJxurn6v3VLptsq94=}y1Py`dW>hz`(Pc}yW{QIi*nNr@m z`kQaq5V;zR10t{7cUBYX39aQ6))|SK78-W}wXdxM={w^w%RTc{ys{~@Axw^sN*DHq z+!kFdYy9j%@X2dC2nxaqK2|;AY6Lrk;BIkWY>;z9kqVX+4?ss4ymOdTi36lV#Qe5| zeI|GMo%iXkFenyh8&tM0E>Ueeh+R5W+ADhPPBk61N7M6m3!f<9Z6Zgc*Yb)P32*yBo>5%xwku1&ovP>UE{hLb&GX zhNqhdw<bo<&XqVNKJ8QbYWgxmtBE+1;#4ZCt7kH>T182E68>{*DJD z8M-B7;~2egcECU{G|;xHEZ$W3mDxgDRTi&#z2Q~tj)9f>0ZF7*i>Y!1Rw6#V*flta zNF@B!3kN_I%a{OP>XKX;>!Ub^G3CUo+1yDlEH~@}*aBzUtP!_L{UQPBQ_#3>>0(P!!fot{vnUvnEn-?j zMcpN8xLxd}EA~>w9)9WPR;uP_UPVSf>!)2?ruUdlwGQiSkLIb`% zNNeNyJq$GG_qTVh_Hh1dP9YywBi8%YRn9qXEQaqMR&a2CR|aW)VZ;xs7d9w5HcUx& zGpjNbCohMKwJiDDivewXtK?E87w5f2#wp8v6WYDqde_#kE#`-f00%l;Z;zlM@Wh6S zb&FrHM90ewJsvfJGsUE1Fe%$zZfnt+v)u$D0t_6q@)RORg~{oeKV9+drvvaSC~SvZ z#piLNR2bxKC@aoMuu!|ylYrCTC6qq*>2~VM9asC^L64v{o{Tfv_?@FPmmVd9d&uAk zyL<*$N`_nh_Jjlj?^la=^uctWCg}~T?PE51c?POPw9Sh_mD=*Ff zE$<9~(D{OMV+)hXbGz`MVh0s-8Xl=MJifyg`*sNjFe~96t%Q4|1gdHQ=C#T(21z+GAuVq z*^Pt*tS=diX3WeJaP;lG$^uT;IcWhs|XdvWBX8(q(L)Gv~ zv067IGha+H3WW*Djh6_~TZE+%E+DvO<}Q{i7hqE@%!yaIyp``PDL(o=G{YqiO5H; z`hWQ9-G`;c)Kas*kZx+oXaz|_RzT8a9Mh)`JV-^fGP1HiiisI|KEhw%fIpixv3xvl z<$Tzi$w7AJOvqtIt`~Nl01aV$3>NaJZ&~f)D*K$Ru6yEFG3yThJ(DToKno-Xfuqay zuoM-g9b(-?z=1Hq%9XU8khpjVWa818Jtoqgj?|P()TwIbV4@Ct9M&KDjVO2wd2}7{ z6_)D<=!_ttv1`5pR-uiJW=)suFlKDiWHW#)ZuRNUKPiUTy0_>(N=t|3`0r(r;8scK z2+zKcmWs3{J>{f1hUVD-C<&=egfhP08nwBWTlUcR_1At*t+qqSac`)*>QIc`1bI6) zP`dClOrRA>))A=JY@^H)I~je_=adz3`>>ZR7^55ikS&H#-?Jiq&-dB z6BPahHJ*cC3NgNVU@&oj15jtOQjJ~i4s=U&Gio|yuC;U`iT~*rmrbO0at7>yqe7w; zq#Y>;Mb31~?*>-aVkmFm=^%2uA-Qtfp3uG8cSvYax+7A$ydmAz<^~MZYL`<%Kgh48 z2ng~Vri)(Hm~fnXD7-9Tbs*|Gcr@GePc7+;j~)}`kNXI|GO<_HCBE(QZHNaDv7S1s zw`YS|W?{0d%-67NP^E0>m_6=>rMz^|aXyFA`R3@BUr7ZEV*t1V9cCD`_44dqD{->vQsiausm z*?puaI}cq|v9SILmmVT7%WjztGqvQVdE!!#gS)G7Ioi zHwZh|KdRJQ7?4lnVjph>17hSsJTEV>8;2s)A%nVDPu3`19R~gscBcR<>k=Xi=7Cg< zr=x7x(-a%X+N3gqQvI9}kY!lpIMC)}Bx*pwywo{p0{^h$r0>%uOZ*9OOuJ>dZBt7J zMMX25XjWn1M9<4{dt+M0TXEa-rq3nP>w4ttgvKD?sU&4G5qKfb5eZW@ps1u555>d+ zNQzKWINXng(=j}(Y!(%VAwR67EMr09>=K<*4m1xd371hNheD%9YD~q6&X5-jBF`TS zz{BL(w35J^U*YhYjc-@@PCFHYts>1bam5-?VV9KO(DG+DioyPw=PP6z7}vh zm?-=94z`Q-WkSBp(W5#r0WhIZuv_h6OWxORXIF$26r7wGF>#9>P~sSUFLup^U9S9i z4dqW+V;6^0ko?q$bZ=aS1V<_yQ-npxXZV@BSMFrmto4I)uh^8yKXCaGnVbwzsH7CR zDQM{`81`$RIBr<)Z4n$DEaBq`1X{e*opYF>KWuAdc;yN3*7$VHQXp{Hv!O=Q=~%b$ z*BWLoT9-~>t>Cb9Gf*fK3q|*^H9A|zWRcIUZdx^i4^&J>|MR{MXI6ez!{@#t@Zr@8 zf(+dBAW{um;V-S$DWtvWcGzW30bxGu_MF;5QX9BYC$W(#9RB|J5)G=&F@hqOHG`h# zJkzOw(PwxGxl?$x1g*jiUa%*`4&h|1L9=kxM5`rb5zPFxA3v?S=fN|9J6eWhfoY2n zNu)e}k6Oi!PlKNKX<=QW@|*Z9LF6vKCP>sV=`hpR%y|(uuzVD_6Df=}FAnp9vn@w6BmVV|?hBRNuf<5CHFh~B5 zA=_=rjG~wJur|7alM8Eb#i0V7dRbC`L>Z3CtX(vAAxhMpf^`?J`kY*036f5H4??5V zH)UZwd_0h?WrvG~+QaP#xcFpP#>%ufk>;gtAS4q2Lf5UqVa>po+*!^g9~zMfpE_nI zjnevK9_sJx+SNG$Q=BQBD>@Yn3TB8|dQu@#ufj&eDj;*s>3Gr*E4p6n=|cj==%_qj zJs=;3&$IVzLt76kHj{F+tPcHM8#YhoK)&zPS;n_msf!F*o}kfzDQuTMw~~g89_(AF zaRSJt{k;G9|LUuR1(CaK-AxDDa&wnQPifiZQORsByES&uM*(|{ECPhknkl_5TzGFq zIB4BLJ|s9Y8Rz1&7LOCzDU=Aj21KqIwhksWaT)g^37f!Wc}Z`$@Ts4DgqB6E+vI`_ z>Z;DTb-CXWu_qe`>nbkCeGVb}qWaclsVGa(FFPHIN=6tu;-A|ocem-U(H#8iFVgOG zztlJw_sXprE>rGSegBe5?+Y{Y!u!z0;pPoC>ze68iLO;n){ZVBd5x3%dL$oQes6Hm z*PTDR_VN}aE2z#hIOkmNQ^v(uEEVT$0n`P)Fz!9mb*@VSO8CZwtX{;G^XkV4&el0= z1LY8&`Yc;R+_qFecHp=^6ny`{KIT{2_2WVH8tgQXJrKGYhf{k+ey3MsA{}13Uvd$E zhzp5bjJkwM;U3F6t55@XiVpi@vq#qqCh(v^q`Rxr0Q-x@mlJ((GQdSd$HQDBC(pcNt6V$Pz#9bRx)1nzJsDt1%K zL4!6B5fPYU2lz$fOqi4?ClawZJej;hz5UZ^OHW+k#RqOJ(neuv=}W?rgV%}_&dk@j zJaC}+UbbClKSCp1@K5THE`FjGXM{QL=Ta3tndGJfPV!7XK%7EBR+5g;23#QrTQ9JB z(=@3)4v%^#{DpwA)*ZXhUwJ>hl6iqmE1Fnxtx)}lOSNEJPnqgRBLGqMuYLrOADQDZ zp|NLGY(qGdssCd|O8k5srmXJUnK3X8OZN%>u#vD*+^^*)fBtEqAJP%ZkHpd;egFcL6ku&;0kS6&miliP||b*Sk!5>YjZnJ+tp|eyO*uXXynIHH#Du( zk~^Q=GaKi4C^F4-nV{6j5H1X0c6o)sv1pd9eIGW(TZoXUd7ggwso+}0xwiZ)9u3_t zqZ)6QXs*ts!E*fIb0%M-#?%_BW22*v)oxr}xp2=S`_70+u35Ij3ciQ5^<=G(kGQre zwE<7vt;Cv6?@o>^Fl5J~4@*{JpRh%>F|XqfL!;2ZpC9$aHCL&VBUTj1f^LFogk5zF zN)Y)xeqrmlAHTI=oTsmqf1Gwy8Q1YAlr9oNR-5(Kb**NacTI3ms;f*SGZHK0QQ^Ezc7Jf%ZK#GZ#ViO)|uoRuM`usJkBJ1Wdk{hJN@H+c1r2S^U#yRf~`;CLKQkI-E- zx&$f>MWLc=rNSn(R9C}N*}2RrKGCd6k#0QV>fpXRs5j}s{FYL zf<-(k1*i_;wA+w5S{=p3q3XWs2sB7)3w_1QM;lFtE`K~yoh{XgrS(?{7oUYd4eX~{G5bT_}h1d zUiF~ArQ(1o1k4P=ZCZaeG0-wL#X`Pwy4P-mMKr(XhrF9=5OEFlWULQ_yC4=ZFP30( ze3x@jjQES(7@bkkBydBLEkm1S)mmvsbDBg%2naUkG+8=;_L0{g72x1WGtxuE0^p18 z4eQ&;M1y+LCsSjxK3)GspRTFL=p=fV>C=t+bW?%vxVBI78q=i@>WI&%?zujpElZg2 zfF&Od;f>j^ZOmH}d*_0_R%fpUSR6wLP3@OEv6p0aeK(TQpcNz(z564Bp zRyjA632RBG1whnE?wu&Lkw-ym@z?=L=SVOnckL<1uCh^^mk{PYXpn1vK)Svef;F+4 zN4qmYJ>UbG+taB3W9`_irJ-XB4d+BSBenn0gg|K}LI63$&n0GQap;|BY~Q!r;wCIQ z91gHDEzj8ltevksn@<(WH1vIj@pWH~*q#e5Xa!IWO2qU>B=^Jm!-ZePrYd#;jr_1u za1F|Zf(pXIhVL;%*VRa27>lTS#-H%Vj#JtU(I-snmc%Md!lX33hjNa(x;*$V{l{ShHUFwIkF2i%&A^KW^o&Ja6YT*(gkekhNtpiTD|+jVFi zSK$p6&M_Aq@Nde$nVF8(v$amv=~DgxD#^FY?UgBNL-AQFEU+4eFSw530Ywk%{!5e3 z0f`F)e}!tThl$R0GNc4p$xf`;?#*d>eGaYAT*dnwoSk)Y15&I!^DXl{@l{aqc+F_qZ5 zIpY*=)OH#TB6iewcDJ^8i5mNjt?fO6r*74nTf2?DXn(iC`*yTn-`}k_S$A9ewcRF$ zUVF{$?cF*FjpojNeGgYg+uJ+!-R*ZK@p=hSeVT2czO}uzwUud!Cb#!@b{lDvwHnpz zXWCYl+U`~(=|sJ;zrDS;Q%`%-pl|dw?N)ty+Ydcv zFKrQ0w~^`k6x!u^?R&~tP{?7JR3iD%iys@>#6wzT#5H-^Aot=jI zRpXl`k;2=xZK_n`yO`~y+#FF zeA%ZTLPgDeYHc_OtH<@NCJ@@M3q(zz813)v?9rkC(cIbtsP(PJ?rv=lKCR@Vtd<0oLgbU(W6S?$IIB`hXIn!JsH7UyWjpHD^^$|ot)qlxOa$LiU3 z&>EpzSwo0Un1;9{*k)c}o%vGsnbB!<6&>Re={cwN z6aKxDIsnb!L8@5h_PcHX(oZH10^R7wL)a+qN2w&Ui0Kw#p)fSYpZMC+k(d}yHnPrpJQ z+ySI@DaBy&)J>>|H^kc$cq<>;0pd@-`DQ*TdVrP0Hu^6fLA78$#xyNP=RvMJA6GiV z`*nO~)U|i@$-UEQ0YC|yVsGZi07lZUJTFC8Aw>}qvb?J4#pm2YY951ikWq95Zvt~u>m83yi0s9{H==sWp1`(C*+WA^C>Q)cwLqgRgq zRd`v5eiRrAPYM*nVqAY8)gIM&y5vcp0ggV8>@$D)ToBIqFAH8@Ro;Hd_`QF(Uok3G zB_3=jp`?4-`JQS@t-tD5J?WR_cY?r7p&M)PWd@wb4xGQ`z&Uo{1iO@?-wjX(ItRva zRQXL1{MkNey?9S%ss2 z!b=u;8ScUp`|F;W3YJ)TQD##3t=#|Fhf9u!6G>(9ksU9QnsU^^CTYttUuOazZ8QnD zS)}9Rac}0LI;Z4P(xo-J#=TT23iCHps{OJGR<)`+li3$`!J>$GF_5|dNA62TfC7Y_ z{_jVr+SO3?e5vxkd6jkjF#X~$GXQ9(fHa}+ml*+c($Xg6y&a^&p&6VL-9;0YA7RF| z{(O_-69w-e1u1w39mvT7Dd<<%NkShiN?67xCzsyd0dIGSd_Rf{?d4)pF!~*OSNxK6 zDJCTHImC>=cRo+`i5+vLHJC&N_gLwSCi7mm(3%o9g0On6OFrqLa@K>x(JQnrLPEQb z$QoyI6PQo);k9iZ&d3*De9@QLq)_^L z5)l+?vVbemdW*u#!Shifoe3Dh;e$o>eGi2o_{Oemyy=Jaw@v475N?Viot|)8t3{1X zE>-*kQNOYTy(p1{r#^w3x#iks(M==ndxyDd2fek`{^Ck z;ed~*gO2t1~gIq5vO-rG$Y&e zh5yaL4grg8r*_^jzK{p|8-kCP6Dpt9y{-JNcBI(qjH4=THQGJfgFx_Y`LyXir#kJ3>iu}k+Gm~JouW2fWKNbZO@ zhyJOpS<{frC@D$*4FPIaZ;7Nf=JyCy(PYyl9}}#F#w7=iq+9cwi!KEw?7{ZU5(=KTgn)SWWf@ z4c}=1-)5#z!q&94FPXrHD`BlnpCh_HrWBNS)%zp3W;U6x6TziSh4JP#Yu$rg>$lR} z;AWzG2|wStpPxfA@1*M0eYCv1x;OX9($a$NldJXj!sm$jhh$n~Ba~rYjAg|10`-4@ zyWk<|p52$I@kODGS66VX5_o5qRV+a*%%!Ka#;hybz{;4Z!jG7m(-+}+`{J8OUepW@ zXI;RLN_TR#;-gq-f01o(^8;4j8q5bQ5OTwz+i9D;Xeho1yyY8OPV=sizn~d`Cut|w zjB5qr({E6>W8Sik=P{cCvUN^;88!96Gn|dV)GS3W{JUa%Hfu!UEghWVE(!q|?(TEQ zgpHd>WkpEDZ%2RrSuX#CW={Moj3yBgF!3kx8`3|?@l@*>VmZXni2WkDc5WRnMZ>jk zQ2y*LofdAZv0cLpjg*=ospRt4DNCUU)PCH-5iOb>(s^G{x6_H!DA*@t#l;g;2_&hSGl*{e(&3!D~lB#k8bTi%-?w z#T3y43HG2AX<#Zrzj`;E!n=M&ey^RIER`hUD9v>A7Nz6NyHs1oEv*x%X*(~Fho;$? zN5i{mN+w#|YwNNrm?B6ZWQ$mfg0)~^8g^L?_B3u^^zb@~XLy;49*pBxG+}CZDs<1p zduz}yop}6uyNQ=ZoWuAW(bdyaxkorXWhvms@Tgb_3HS(qB$q6`Bnv8o;bSTC%LgmB zXol95)K0no1xwwQf7F7=E-AP>P%ZeqX8H`wPez&ZD-STTqTsHT571n2%4!NU3%xpy zpJst3|0q(h%k7rY`*xv2ECGI=h=tB+@umP8J?{)Oi0jfV7<#g5a zP}15-4W+(H6rz~9ar`6DN!OGM^qGaun^)m=dDKE;^b!*BvbeNVHt} zKv=C_C>}Rl)JS2BV#yf_yXwv1J=EoIUa{YV0U47=E-8y#eitrKNFY_vf&5>(gfLGo( z1@O#O(Ai;YwWrgIce&6$_&wC3RdahrLGCuA*)=J{C|f-bXbg~JUuP>7zu~r0AKduu zvY|6tx}2vL=HWI_Z4`z?iYZ)u>sVpP>{G|j;%1b&%s8)1sbVZ4t2{WA&+pRLGdQiY zg=R1X$WVq8x%J&US`vVB-F`D`Mw{}I=H%(*Vv2*9?y=fPF_C=>ZT&2FX_+N6WJ@~V zTo+R2EJ7V(6-enHB&`1hzS|*=BtUH*PRuMXgqKN=lhUWgA?ni5 z4hV#dN`d#2>>lp=58L0td>AJudM}mgB|ahGBdw@2odpaemrS z?t1W4)_nBifW)H0!pDUUU&|fS6pN%nGTmM(X44pI9jZAJN$1wh7?uw!@yFq6& zW-wr8e#1RFon!5V%`f8}8(e zN(^I?fkn7TSssx~63vZnlzSOb-O%g(tghgMBAM@xq&h$`wP+N zuyfGSy~BHe#a1K3#6XK)_^2Z$2H}SgZ1`gR!}-Bn_YM$>zsu?dGSTfbTu61pbWE0+ zIr(-BmYJau&t$=4ub3@JlfxoOxh`p%Tz|r;b*`rZu7@k)E^P@9wtYR!I9bV@RlrsT z+=hXZ4eC)gB9esB;1FrJww|8KH~ixC6ia&zT?a^#CZ_&mdIQ%8OA@=XbdLJw!h9Zn zJs!k&O{vuns`QwwaMg7sxa3%gZ%utZ_mVApgVzMqAJbbpiuM+50R4RU1(;vr)9x~! zA~@u73a12LGmu6_qTEFV-);dP2_lyZ9U`dBN%s{vYN0TJEJVGu5D`1s1!7899Zo8G z*F%gWFlIO6D3{xlW5D4;aLg4me{$=}p$PfX>o9>}mJ#B?2^xbx4RPEdmBrjpoecs5 zu)#_ZhyX{$vt+cWA+Vu}1vc6Ftzm}3d8SnH47&SLFt(Bs|3e|933l2$UZhtRMO73> znZ_n5n!13ra`45zlJt~W2uZFIgznc1;#))?GZnZ`(T7Y0KIuhVz#q0ubFn-ujC%cr zJ)4V9QH6!G$zn0N2pK|NnOOZ}g5sjwpudmh@%)(QMgcX~!VN!9{q%SFQagNcRH*eX z3avtQx6W@evFb#nJ(h5pC2}$B5;cs0o`%9C!nwaT$rF6+7eu8g{9JJ-q0s{qi)a}bt>DNLbchrvk%r)p-W7Z5j-t!cgFfaUtFiYtI-G78G2=% ziJrLLKaXB)AbR`g-rn=}Qi@f!D~?%#xm+LI+f|b8^Y@WD;Y{@(SoS#d@fKe(Z{oLU zGB!kw1F%qvt3f>;rN0FYmEZW&1a?EH>WKWUt~+EEXqea{m*Gu*1&Ci}2e7{N!>z%) z4ayn{u?c7KAL4cIa31c!vTF+KW32<;7s?4|3;Ie_n7MM@CkO_?OZewBwq`?+Oggsv z%5jA2TJr7a2r)yUMZc)U?DvIxa){c)XO#w(5IRXyX%j@NwB5uqRovGPSoSJws!l5F zux&bq^vamDj($MBBlwJXIvU31B#U{)Q-{o5m#LS$ zU03s+FtHj#dHhoLW?xpG&KN+3Ce5Yk*Q-{k_d#>wOPki3fn<5s9bRIfkU}(B@X4S( zTwqR0sBS`tKTzKC$SnF6i!o4{tko2th+p@G2cf{0w_Zc<a3Cd3!hmx#oMsX~1sJ_U2)INy_|R&HVurp+~_fiVQ+=DE+fqBkvAFLk&+mscoHWZ-30Q@10t*kQG9L-68LP9fv{kmbF+ZUoE54KehLoM za)cbZd@@_49Kvf&z^#{N1Kvmo=!cB{Df}m9^eJ~-f{#H{L?7q@P7tY# zM{2~c3y)9Z28J^-&`zqmyt6vmcuJ+JshrkS4mH(QD(X^^aENi7EXWE3Jz74vDUx$O zInE_y9e*v7y&h$5pe`pPX^$5F>fIa_|3Bv5e5;Wh+ZXQlxc|7aR-MjlFn9zTPG)z6 zXM+vl0Wfvyp5-xYJdw5`4B6cGxQ}$#`X1{0ZB3yFM;NlYzagoD2x&{&+S=Na6jF`# zVCpUxLN~=8L81{KuE)oMggbt z; z1d32TVl=;CCn~#=M>_}xp7{^($>CH={4iZFm%epbA_VL^5|r&T7A|3L3D0UryAaCQ zzT(;jG=|ayV3}^#)8lRivm1iTuq=2+yM-`GbrZyG1{uCa4qrhbFTatq1&K$D#J-ng zVGlUmm^spdlG1?h1fwl9;gG(teHNO6G{69Z0{<;1l zrEdXKVFq`a(ueLRJS0%=LBc-SM4-w&_~ z>6EN7e&dS_k3NzFg()o-(-_6hgtF4=BWh#sF`clBo0dqG;CYN^nD)ZC#mc83t~{>> zF?9+u<6D4vbpSqZbRI6&~^~4)@gpF95n4jQ-UT{yR=R{(}I{*03XJCQ+kY zjC*ir>_VIKuxQYi4B`(U{QWa|BDCay_7Px0>&(FzV(EdUtni1n+~WYO73>}ePuxSn zFMONPE_Up^!v=bI7T;(;T^~zDxcD5YIGOe{cG!>^_|Jc?=mGr#1ZF+egc8&@Y;>Sz zuxpSSCRFg1Bt1@;fkhkpe+T}+$!!=G4e{>;e-IiyeEK$F4L>1DH$f^j{PYV9Nop7y z3YgUi2#6V~2_-Pptk+AJLHu-ee4k0^VPgYB80a(W+uK`#f#|e+3+}t<9xnfQ;wP%& zQybm_&dujNW=6fYTe42xJNXveNwmP(0p!F2(eEqtjo5-wm-vSFmNVqAtL@d2ZalW? zv+bv!u~VLg#UqTRAOW=)d$A3xYG%kPe)$DB&=7xR1pDVdfB6M1QwP5?y0e8OaV6uz zdnIET5vm1FHCso8{e3t*`!saa+uD=oc=8r_T{!EZ0>(#tpBBTlR++h5d3qfwl~SKN0+z(xA{QxSXj^Uk%Q?o3A!qUOgZ3 zSmFS{*V7SpqqFJ;Pai=DCmaP~nA75%-sJiDJA zRulLxjD4q||P23uR&HrDE zI0{~>7E~?N4%OZ7e~u56{1Y&K&eY-<3Gk}4SPiX9llQ%8fmS#u68nVM)0YEZS)3lM zmvdX9B29)1Hn+nJQK+qHFgTWcAwbKbk$U8d$o6y$cl)gT-4d)I>Hdo7)fKx*3acz9>edu7oXL|RPHbcj zryNj9if+E(4rI^pg!i7+p;h54=pENGFjk!>^jX*G!RSgvoH2#{Y5pl^muH!9@6rbGz_=JcD0ER~*$uk2tRizj2flerHZnl#Zjm@aH6! zV)^N8Vu+KUaO@QRB;#q6J^ADCj^v-3GVJI(_bm+x=f1_guSsZZ%H>QaONuuED)YRr zvLub0EXSUcyhip6+^BXAli)8HH3?6TA{F~ar!tw5()%JReS!8v1~ySJp*+W3Sd-5X z{gA*xF-@pNh?v@BHlv$zAoGYLfyE~X?QnQkBoXLu6$tro;F_A|960jZV>obGObQ0t zjr@k4E-tfrSuhXYhK&{f1>ZoR4~)Gz?!WcI3I+k2;Z4-oq!5*MJ{{JFf51F6q0HIh ztGj<(#Lt9+fEUH`xin#?6)uj4U;Z{c#M0UD3;PW7f_4J>Pj0-M9ntvF%w^+9OzB-| zRU{~3?;>IDv+K<;6Iq0l?s%(`;y(Hqx3pWi zpJf;n`6-@ZO)Q|PBs>0A*~>P7{|U|kw2ygM3T%##@{bRG4+{Y@kc-Z5y<<&sk?C+Y zqIhw=oBd;c3p)s7&UUE4FZyZ(+bk3-!Ksw%VGBSQa4^rqTE8KJwvR~*r%oR~e8LJA zjumGYNgNaGr$Y-TDDbAn8=O4qGS*I6+6r<^Kv+M*w*T;@2++U>;kq{;$lDS zv-ywz;D3+0^TFTwBjy2)Y+Lr|(_Cz95yuE4?EN$YIR6We@ewy^kQ3%jK*SHUpsiVh zB%a^!3E^M z{vH-T$^Lf!h8b2jZYm|CRk^BTmMyx^ksoR=1<{;+w0jmI#)upx*5{td7thhpxtIiE zAc<6b4*Z(#^)X22d=Zn6rC_lr4ub{5$Z4x4tvek?lkIT8c}@(!9~HJ1i=l}T>*127 z#bAippE!S`Uf?Ua=P2x~P2`8CdD&w0+6CiPPI-K(aDUN{nK6avB2voXfW5U~I;NcMb27se3zPNoJMt+Fp zud_%GUkgnmzf9&Nf^j~opf@BW-!^&{Im({0vZBua75NpWC~Y2z{BU6~Ikf5-F?;a- zpfoFI5K9Gvz4R`biV)-B?D1T&2CeDn zWQcolQFTUsaB`5E;ysJA$G5Ymm~H_hf|Q6H#&q6H1A9iE z*(8F=B_s>4*%d5|$ov}{sdM=Ji(&qW|8X3++jTZ8^u9}dgpVeoVrUXc>aR=x0O7

    ^u#c6u&QNqxLxvP51sMHG$VEYfMx*J*dammyo0$VEbS)=~x z$?4eiJa-}Pf+Q9!A4se8Izk^@(S_pY(PdQUgIxf3{wS+(e}OkI zB2gyuB0q#mCL6+oC>uUG&v$cKF&q#v7((dl-4pdi$wCaOGN=sal)xgq9jU`a<)L*; zI4Nfcg#a8~+9}z?WK>M5de*@Cn;78Fkf2fo;PiAps-zKdnF6U?AsukWJJ{zcO7M6T8r?MXa~ zoFWU3f$UFoG<$+~B0LH)i%&`L1<@lOr|CmIQx&L2v!{N7xO9vs!^_3vI|W@zX0y;q zp7sI}W`)t8*AIGz@?vix7HtL1TNVCk%8>C9tEkkJrgk$K;owBI%>>5K;urcfv_J}ebrM6$Rg$5Gk@ff@nPVsh4_xHN?3 zv|BCB5U2u)DLb0?EJCi947){{YLHS$xWRsIm3r=s4jCsc=Bg!SAqg_X+&Bt63Zcy& zXG_FTVcNj@SJBGdl3aekfI>lFB)g+wlff)?4V!n&9VUp02bT_?k|cRzoFYN8Q`l+D zEkY=6H5o*C^f`c{f?!aVpK*4fgo%@vh z9F0c)*u>ireGwm_52F#L#S-xutRuuvb00vkyNG)w*Q zv~kF~h%>acc4b=Jlg7{!7@v(ME2TpTd!XtihOfi>I`VczQA{kg^f&ahzt?bZ0mq?( z#sou#n_=}3=MmX2Y>5S-0EwkOjBnHd?7qY8&E3rs?eC7X_uB_y6z}VkY=-4E#3fk_nw@=tAU={6 z%oCurUD>GCP2v;=^3;uJ)_nO2pKu!m|1mubrALY{LZRbGl)|9DV)GCFoy)-2$Dmys z$0HMkPJ()#bsuqjQA9qSiyXCT8$-%R&|=$AqkRNX)@Ko1<>t5{)7TL?Y~CI-KZPkq zj~kH7<#s{IaoshIyWOtxXUKTd%pVpc*J6lC3LEVjM9R@88k1(>Y{=Iem`lnMTtiAl zh=MGKogTW52xl5Hs|L`DF!h-P(GjNg5QPqf-)YS*pvG?zzP_rK8YT;xtx+C!my0P( z=L*#+>`kiAJ9B*FG2mB8%elyjz}J7T9X@nN!T?4ZFIgw5uBEl?xVcmunr8#KwP&}mM1EPTb!c><2j~%5{N#S^i zeI#s&k52&=C1DNd9uSWteT&G@fQa7b6Z9i7(hG#d1A={ZU1*CA{7OzBa|3s9*{xbQ zgYd(YmFIQ6g6r6Iz(gQ`>f7s!@dY6@ENp;cN3qNoeI-GRlkTs`&Si)6!zZ5*f5J)R zm}=Imf2~3hTWv3x4;N40W|MF3dNK3tMDxKRL5T?Ylw#JnVq48h;nL~Wyc?nkrU7k5 zAg+q`TS6ob*m#Vnpz-n5xF1z&GiVh3mH4_5OP2o)wMF2}}+L51t{09Z`J5A2Km712Wcc$;}gp9d7# zug|gf6BnXu%t(5N?^V>h_Yr-*Tk2oY=K`;=O~bzm#C0V1Hz(Iv$U+VFW|$3_${a@I z|8O%h($CV2nJsCxH|jaR(~ zjE~kSro49t!4Kgv(gM*s^K~O!y?by~LlVT!yPDgzf=Fk3=Ho7Kzz_rg`S1?21p>(E zsZ5`5s#Bt?8lC|<)?*8B+WvoQ3lI(gczR~(2Qd6sY=ICIJhs43kcupbzyS*4y7z5? zpi+AlizT?U1>D6eQt6S9)hIo(!x<>DyRaecf{2Xhvl_iIdAa7~2Ajm%1BZn*x^`C} zSeh12*B2jDyp9(XOAvZ3av_4J@f8=kfR))Ue0e8mQ33>_l}c|ZchN(wOmcwGl?XQ* zp}^hs2%fF4VTn~YEyK6=CKj}??2|r}57^O((?m8okT#t^&K2CF zy@9N~Th~N=;c>G+(ct@*_OHRC%G5`gaUG1vzWo-XL3)t&4VP@l7Ee-uF#_ziQ3i zckQ=uKSK+-K$Ayq2`hbbf%l$tRP~=zy;ObS`I}54-CH@shA`}ge zEAdk#3w0)f2Fq_M1%(!anPZPb5nMpC>ZM}vZ7g~?i9#2|MEY|yT=^-gYC5# z;VxUgLn%7y&L=Z$sQc@v``7dJs(%)FTFpL_<#DE;55bB#`0DJOOkITIzdmh7(F_#A zdU%pL9K^DvhHaPz{mUiRhJpX^@A4MEEcO`k%e-#CWL}VI<_Mxhzf3#7tz4H&^-brF z-iu30?9t=x>ucw_p1DsHU;FgFVU<_tk(D>iMXx-Y(`ypHs;9`$4P)2e8`q=6c-Fb4 z_wTGw-3CCu(=^Aca<_y$q+YBk(U{V&sxfYxmHTDyu93p)_ftx&Irx>YJ?56VTw?p& zNfc1u6XhFS`c-;(Sv@}ud$+|D;djZ9GFYWR^1!$mJaum4Gi0q95^d^Q@uD)mZLJsP zb3aM=C2B}CRHvv(qn5w1OUP{F`QqMKQ)2Ggc%0^5DSNmEYK1C2?)+=)q_6~PKlAA1 zo$F)6C>VK144;3z7#>uD<3Ug88v0G|CVq*6WlFrEY}2A_{6-T6qjGJOGseQnkBnBv z966O|<0MlkJB??vohg?c`#M+5R8F1Qb8eEU<(-#N{wh;nImzq%G-H*w=BQA~Sg+f{ zs4&jlyl$7*<*UqSv^{>VE;EmpFN^Er?D27i8U{)7j(KcUGsd%1I5uuGxw3QhY?_%u z&uJf<+e{_zj7PbvOtt4MpYukhws2mb^LLs0tCPMi7#XXz&0QC2nMQeA85Mh(Zhrgv zTux?2r!U>>i)QBW_4s&n41$%9Q_gWVf9zZzILC?nv2}go9JlkC)b)#faF9Q#T+fUH zE1$BjZ7Z9|$EVkAD_hUU+Sd&ulg+|_XRaQM^eF$(zp7cuO8!1m zpV>y9(V6$`|Bc_6zvbg&$GG;jOI)11vM{Lhj~GY&19#;6X_3a~zsv*I*I%b1O>og> zo$uL34`nb`?Y23ojVqH*yq@nL7_EMywoRF}*Gi)PTDdFRg}dUooi7^wE5quSDle7A zrCnH5AKJ0{Ys##@c3x}a{?KUjZ;j2STzgJ+YE!$C%PnWsy!~+d+K%1jYN=|@`kpf; z%|fG)xyad@%Za_b+7_CHap4s2PnS)5d2JRNv)A*2-AdT2D;?62qDDL!G{aCNag?els{NzeOpx~jh$_X`e( z1Ab8_q&50in4-J&CrA{d>=@5RK4Y{TbA+53_3^?{eLTg%AGZZYkF|-hXY{yoKo2{x z-)2zxV0s3ZuQm&}n{D5&n8RdoQWzIk{kuxexZ7+yV`H!jj8Ry6SZwT)Fmun@(0_J z25S_q6fE!o?M$Q4Hrm$Jsqt(>AK@QpX*z`~qgk6&Cw&w10duEwY_!d^V%+8 zUUWuABV`s*HfKB>U=H2n?DdU#eEN_xFh>fhO3_$f6s^h9xa(Ak*7CAwjIWTF>pM%p zrP>V6C=ASP`!Y9fms>W<83fQ77pD%Q(h(=hF7&oU{m=*LKFt+l2>=?=$AE zz&GRK+w4CXEzIMGjEirJWIzq`B4dJ=X%1XtZexD8QTLSEZ|9tKJ9jZz`f>VBeFFYS zzsPOdUhl`p%AjnF(F%1g(6cTf3aIOUdiv{q1!=esgoTIX3N>Suj%FyxCq9oLa?jtg_+6@6pbI zX|Ic=hfWv#aA78<#heYnA!qlqpicp2<7>&Pl^E>SnzQ=GuuRBoqJQ9@-_%}GCivyaXw(|SJJ1VbXs~=^Yur`LQPwa?#`JUen=BMw??AKs z+OA#2hpD^Db-HS7oLq8jB#Xy!E`OY>CS=xKAve0q8L|8teLJpBbIqo4cl!L&guTg7 z75sfedaT9tSOGfQBezNZFdi#5`mrkTtiC{Z*<5FX-?<*A`M`B{@@>`f^wo`ZUo!3coBWi&7u%gu$9SkL23EVc>9z4C3FtJbB(?WR zEoWb6;3q(R=i235X3FY+X`?mei1H&JiO zRJxUyOTc~-wv(FgH%2_uyvPln8`GQXi^=p6hZauD(`7Ml^{lU9`<#93#zs=%Wi&98#nDsOvGHy7;JOKx>bD{JB{f*ue-_W zF0s1pV$X1jmsUR81AQwwGXtA0eqmbe8}t`-c5X43>*h2yzi4mFLaxv>?LOS5@&(zU zgd65yvGvkfHm9(*8U^%wT{a6_<2t_VmMptk-a?)grbWnI*sV}M^h??!us$&|j!`HW zZQFb>$`*_=WN*nH^YAg*WAPwcqyBMQ<%YwuvC{24R_~6Thq+wOF*~nRY!pamjB5{_ zxIW$mX)A8lm*$IAf&Qyh4baEwPeJ#~T+S*Ztz0#1q}fx@CN~8P>=Tv_dxe$R`yQKK zn#V5*l!aWbL)LGq^~qgkGifKF!}3l1H5wJ!9;lrJ{(w-0EIf*CX zG-)vyr_W*16%BS>KAxw{ghTxq9aJsWhg@%zXjLCNiK<=Q&|ex(gPTKD3@7PZ%g8}{ zSO^&uD@MmLUyTanRlZO9c4a8Lna`iV@e3L2V7s#Y6E-O4A^%th^2KB2(oCcn9ec#{ z&ftmBaW@Tp2CXcE(H`7f&Kpz3+%O9 z=*fKbwpcix+!Q+{vuF&~jmp?4m=??-r`9JOZ&)br#7f7L_PqYknFD5Cw`%z+*)mQA zBD!53U#Fh(&CXTUN?l#ssd@gf18X5R&p%}9d8_oWX*b55wq+(_jj`$2sIOhfSyX=w zW?UsveNN5Te0(hAp%Z2--GXkg3!URh<|_Z(zN*@(gS>rm3v1*G^W|SMJE{|u#%cW&*o4UAzY%-kZ zgV^t*kUXEgS_~$U!ET45?&%yt# z+V};(w+@~r-E59yX3=CeQlh%8!ABrF0J_KSknIiqZrzgqTYqTd^BBU5^gI0JNgw$3 zrGIn>*1pJkQ8vpd*yFHc?P)DnT9)x(ZeZi)CY9E46%hp+_KsCb z=9;y3F;}ZT-o^mql-az@!ZxvMC5$te3hEi*tOMBeuvc=$=ht4L*+Imk)JDhc7yqPd<)w(ahgdu72|k1H8q926^m4&gc|M_+z#*d4hou#{W|Y-z5&Ft|G2pFiVzIgp97X3QpB)8F#v@z(Zdz-^d)7C(E&NgghxaW!v>zguCfbQ zA?R1G$%e8j^DCzhSdwMX>#&81ACOl@JOjA)bIlvn&&yP=ZJX-LS6k~6%9O5N2)<&P zubC?19TmvyQrqZ*Z*2H9_A$qY+5kQcV+`8?x|MLGy#6)vVT(i5s`x7OOU^c$l;*~h zV|U!1ZZb-Nh9x7sD-n^hxoYjkgu zjZ$&kFv`6~sX+cqB?r4j+AkaC3-ry?5dtJzSUtCQ2NTk5R3Gde#DNgGy_uO7bQtp; z6@BtmW>2#CGmJLUyNIuwtS^ar1F^Yrzai)|r*{!oM@&H2H+H#)wT1X7q1#-WLI--U zKIt7)o2uW5JCt$zQG`obGpeJ5q>)|cH;&OHjd+i75_)G2`g-(Dz1bdfI{-SqWs#g* zu-GAw6+pi7_=)+#eSd~G)=6khpx$C~I|+M1u7i-QW#dNi0@7Ptcl2*n{AJt+soRCh z16Eia3%t23n4^<|@zj}@&DcC=E$jJK=ley=PF*yYiM$oN$Td5Ia;}qa;pUKI$3%>6 zdkdd@c(KilEBSToKeavk*s+c~r2iVl4;T0&QQk z){@MOxx8lM0vx$HRg?WW0a~l zZXj%4*7NFX=DJ(Fzv)`3W5nWCIb)QCpM-cWi<90O_pr!t--BAiqVZzyDO%$?g#zYZm5}$=WG2D`RUry|01)a^uQH zHMX{o9~-6CG+nCYm+21HKUy*H&TS=)#m-#fAr3z*mbsbr4o-5hAg|N2|Lhgj5c-Qn@F7mNMf`@R}fnT(1}uZs=D5ZdhTb<@h+Vy)|z z|IIQO!ysP*A`)Vc$2TBREYmcK1*2n|FBIRH8L)3d{E9l+nmHExD3vXWCBdG2=oCrr z_P@VE3+NMG#K8v;xEX9u?43Y5iIZ&+8j4j3j`eCx8$ z;v*Z!zJw!wk-OwEVZ2`)Z=6fKhvs9g6Zst$r`RAifHhA~d4E1)RSDiE%EYGddt*km zg*cQ2+5XU->2Zu)UByS>kF8psJfoB#{|w8=EQS&<$=C_fHgy&U$(4Bg#OU2Wv3N9t zd2Y)%3QI#9Zr-}QIo^qj(b_uxuU6q3GXFYceNgE0D(u=j>|JOhwhM!Hlz}Zt@z)B) zc5{fo$+Qw|OytEXNJpF&ta zDniGg{to&EJ7YCEz}&wzZPq62Kg5`A>XY7|T+=|PDB-YOE7YH|fwej&d%1l;J_%cw z0bGgGOWGZ%kI{(aU;oNS%OZQXV_4e3KeFF)ZHjlncyAjQ%zg`8$K~VHA|0XP{ceBR z8Xnan=w_~-Y)57yJjXBW@v;clgK4rN~qd2=~JS)5zw&_yG6h4(>YZ#|uO3!x(2)ki8O*)x~iOyNQ-qL(N<#?AogGvc1kZ&eLVCj!97C zKJCkTg@E=5OWdqnYs>uI(Z$R2xVd!T!%VBWe4^f*&xU9VZBLhId)Q?$8N@4L?+mPJ z&iIZv6zLPvd$f)&__|7Kh-}?m#g%x>0k#bM4;J^R!TxaLm}-xK;zPccOmT+{U(>dV zbHo}4(mp?ahTrbg;K!^HPaD3wIn#iv8W!r z9{|?5n$fy%nXMDo;BQe(6LCVj06!cs;~3VTYFInI9H&^k6M0+5U!R$yI4IR?!>4oX zTxw`gTg2L!Gkwqt@mH5#9y!3)T*W>G8NcD{?kqmTWCPL5-IK9*j|1Y4v?rt3HV|ja z%Ko4qFzkRAe17~bTNS<*?G!EmhxN0|gRD#w{YzcJ!vLK?8=WTb(eQqJnqV{pET=!B zzE%Zm;aCqxTlkx!F%o%%2i1jf;bW4zDhRp~&5-we8fW80x`y!=#+%U#6x8_ULwv?~ z1>*&u;R8GaZx=W}m2JUWdwBu ziKZ90FX;NQH&A|9$J=iBI^I=Ftm7TLG_9Nb@o5jbe0sc|&ah4}Gt%&B?UI4@0%jk< z|0X-iOg%FjV|rz0n2yfB0)EoT^|_~vYfBi zX#Oqc7JRI*y?iaPZjC)17S{D|%qao@v-VYMX5c+_)3EPLjq%M@9%`u9e|N3_-TeZi z)9NkO^9L`LhssMe39Z=kzO#PH{f@B9slT+Z8T`ckbhW1M@g;fx^F8Q9ZNC6uD-YWH zq~es4-u6P;cMR;KTNf_uT9@nxxxN4&Xaaf8)(Ehs0Xg1jlMH8TDHg?mnJh{c5MO07 z+v-;l_nJVav2_smhGNYL{w}S*++wenohd>#kbQ7zS{e8U?IPq7-iwX6RjFeQ8fycW zHwJ76tV2T<7gGeEcRGF3?%64$Qz}E>@bb5Jc!s^Vgg$9Q4!4V_&oYN)8|{>g`DM0j zQyt43_6p=ucE7@&?a{%*^=SfjA?nPOAdlb$wFjnk2RYcjW=jk-f36X4!F~(OpNbfl z25e8R&m6V~3!bfSt*!yv)IxlAI7OhXb?_bgT@ZuE9zd*5As$h5(5=S`WCeWbE5JA% z?32l7A89Y2+0ReMeH(KKJb-=Jp7xhy*JZE;jQE4%*JvBE-l+xQfVo^F-=BO;;e+wD zf7R8({?o)ZwObvUnbp4L+&vED5 zi}QHVUfPvLJXyNAH?H!PZIj|;jr)sQtCF&ssm&E^GV^+BX2*qx;!XOxl`PnmoPWOB zmGZcKQ%cr4muBa-`C56sYAs)Cu{FinZmtmDC{(+u8S0^`$?ql;P^%OpoiW`zzSi zgYqqwcBk8#HLX9C8?n3MG?l2gviGfae2ci8xk;e>va>+h#d!AEy`RNf?NkN!Y9g0! z8sodybq3{g*r_}~`2kjHb1iJczltM%V-U=GWn+c&4r2?wQ>S>_nC)k)81N6XMv0a{ zDRzMMD8wl}{=q}LD)ulbogv1zZ1VX^dXCB^E3_Z-6>&^1Q|}5}JR5ziA7fuBbP{wp z*|U7z4Qu^!A33eJK_;`f9Ie;0b*$HZ0<_7sZ59W`nu=Atdciu!=(KK(I=A=5ii~|0 z%|;F3PS~y!hhm?6&wy3h)(VJEIqO#8C5BH%Kw#_#JjhlcpDYJ5uh?}u#qvvGTt{pa zG0=m{W-JXG%Eq1o8_~{-?l$>MGIl2}Y80-GUS-p4)S7k3q0(#rwKj9UUo`Jm@Ldoi zYiFBqA6gFsqxMk5#E;#;)=e^bT`ItD>#*lL!*1oq>qRvQez>))+wt@YI1RmzgF^Afr92 z(*BL(`a0Jf!FFj+&F1q7+p7b9p#6;iqWz5>C3Tu1(=cm($WeK5b z19nh(6|dai-c*{Un;GJB*atY+SY{^=dudad6jqs+*tGImsO5(b2jj_fgn&>vXDkkm z?bPP7gOYP>Ie6XLH}OsPI|7=u9C*PgP7zmI-883<6}vub#KyDx_PBgcvXa)(VPBoH z^^6+-uBg?2fR91*Wd-|5?%`#A9ehllF8pE43BZbdfwb2EU)@klgZvlnyR5NB&GwJ8 zJj9`~f0JxAwgyc;;5F8tNxt%ZotS&DD`cBx1NP&zi8utlEXY~IlWGs~ee&6CY}JIW ze|kyfayCpA>;cAlmU&sl9L1WcjkPn_{5hlfvNbKNyF#N@4D2I0UC!1v><{u8C-@G` z?w(%Si1FeR3RbUGSWlZ&=Mb@7)QNJJm#|3)9?Pg~9|4dt?MV}Rc%j#u^n8l-M%u4j zH7_r;XSRpAiiS(jT|A$jFW0m_O8b@z>y`Fw^E7D$iv6(ozR5B=mWfyk-w(w01n~Vm zVlQlsugf>snw+*Ljp!`oA)fa~n-l5+O6joo!+tQ{APhZNRvt%pvm@KDXw(wHgD zR-u~jY-7+1@dqnbtu@0`PfOpjvhu zgP73NMhpw_BJ8Wi+UTWYU7Ls-VSVbk{DP3UWpG^=+elp}b>F20$x&`352iEke%;{x zyAW4Ql^N~KI(d5MWHMO`{uHI+U;O29b;;yp{_bMFhMdeJ{EXewrz}PWW0d=I44CF{ z249BZ5BA5fB=(ovLF`@q%A;T2e~3xoAL5@(enM!{E8)?=IwZccp!EUz?f}0?UbFp> zEMM>_>|3OsQhCHUO0^v9;{z(6vw$z^qkP^kis!NVXYfPu$m;_rBTFJ zjkI4EmU+{-H_TJ|n$p28PwZtdFFVDKeG7YdS!!UV)m%HJW8ik?(L(90Q+f%6E*7Z7ke(42lh@r1F^_ zF1hc})i&a;Dt`(3n^$a%v3G;gK|}Bk>SgbsuZ??I)q9QdAKiBg@8*U3-ZqLhb|EPE z4#7XW?^s7g@aKMBFz#)0d^5j+=AJ$GCdT&i!7y%Y+C5P*`i}WXwjX#D8^Q_(=8PlD z$iMCR&0=u7g(qb;4eW@(=wX+JL-O=R!ZhaDr$NqK+~1~W{dqBVe{0#D#nf)z)}LFq zS+twN(x>@slv2ikD1-g>_m=rY^`YJ|@eSUmL=mi?rRi_e!v1gI*0QJ^!;$6>UoTXn zxbNZX*Dn#e5WKtj{8#!G`me$F_weKF<^7}p$Hgwc_i-)P`hR}?H0nk_{c*@&|MvA$ zguS!NBIKvo^d+`_VEFoR*qxrSgTS?##a%)CyKH`Su%7hXT}^NmGm5eH+424C)GcOns zUEN9AT}(hNTpWKUaw3U!1czwTg*QWXj8k`Y{t=+Jf5>xYr^A=gsyiR9BScGT?bDCg zZ>mMNlj72Ler0<|@*CaV6kax&&aw;NcS_5Qx3_=%{|p~C1mB-Ayy??8zq_M*zw_;X;xifY|9LmXBM{X5E!N41~$LFu0625TwUJ`r~1L8VJxA z0J9~o-3Y)mHsAoO;T#uF?1R`$zz+KW`b#?~JD%h%(3RNx@^QmV2sPs;suTTbFu~)3 zo~z*q2Oy7w+DXKDE$m|B?ktd=iG&LiR7bMQ^XIq@7Dx9_g9kSyT4JLTUGL$OlzfvVG8El3gtR4GB| z&}llBB9L&I7;jer1rL)11FHnGQYOu-Vb`YzAtM2B4&HFJ=+2^$uYru88484OiApdo zT`|`7YWegS)K*{giRN%1wi192G6}3eOkkYGHi2~52eKOS%V`4W-_t$0S8fK)9v+RnSLgd>5eklUSc@N^am%YQ7Y3# z7m~QVi0*drn6}zQXwmsP%B<2gDvWjq52*Z%tTAPY2IjueIha5A-85&hH^_YKAQ>KZ z=~DK?!4Nm7&(?>diQVr$Qm^UpX*E0?p(Df9AzkWBf0$rBoa4InLpl`g5MuCfjeFLp z#QJHD>R*1yi>26wQg7X-!DM;Z?=GIZ>%+&@5{DnI*N4w&b*UgdH&8tf2{otzes6RS z7Bm^$yds$8o6oiRQ2EN`5*Bs0d*#}sZ?dmFEmL%}Ywn7oqtB5ZKF+KxL? zA$cLmiYFdn&nraeQu?<(q~zhWHvn4>57*d*#EB&i_L?sjOS-~tco`p@xSK^A6$zqIq3^%NXGx?&XBd^KD?|HJGK$*!F zc$NJALD!`so|h0LG2kBpk>58jkHfE@c#ZIw^+e3Q;l`JSv7AqksA!MV%V5^yDn&?8 z*1>aebGf*%P&E0wyx8WCL#=U@D6cygR|SbeILME#DP#vT;!daqWD3J?H(fE4y3{WA z#z24QJj}gxo*_EUEOan~ubV5}$h_2gsj-VXdUlt=w5;F)@@_AIoWNm$qs51-Pk*@Q z7P7uFr#q^1O(;A>4({(ICtbk*5RA+?S0B?g2CF~TdZvvZX@b#YI70}+8TO`=4Zk4r z-!ZW~G?zHI{pBf9$bH=B7}Vv^B7fE9Hf4gdxQ!B+_trh^o{<2A1Hna}%Mxc#bd54efVb}NV?+l25WP^5 zn#ku*k?v-*`b@cBBA>o|(v@~7G}GwF$`s4n z2Er0rHmp45xi^-QMW~I%+vDLlaX3!?Sgsz&xK;NoNq2cJ9X!1846Rz$X@S)dOguQl z3NJPR=>+9(N6cBo$*rs9e$9C~~E9C^V?w z(9&^}7M9ztOwr8;kp_oA$hc(kwA(x77l~?8hcUhI1|Xc6`67!XlIg^0f2W8hs06(9 zB5+M`gtT}>lAc>bkk2-!`?-LOVxy-{AwxKY5S~#G>O8un1FIoOnI{tj@lLk%S3O?ndt~B40U;zL)@k@% zaALSsA0>Y&K~qe;3x|m%2^!GN*d&A)tVWRG5W~1$MVE`&%MazHb$hsK6n3Gwg&FX2 z_~=pi5>a|qCWU)rHFv$v`?JX-+`azhbL=o8{=-dxJW>hKD;nh%I*U%qTb_1v_%u-H z;X-uC0)ZScxWtY<3-n?xM#9J8C^574cR2N$>mpqU>359dT!$UvCWCSMaC~xjgrp;= zuOnP`aD>z&Bp;1WJbs*<_e>H9Yb_m%`9x4$$Q~&XaB(#As?nl+NXmzld`QcO6Y&6i z)RQa++*Fz@2|QJrEQ_K?s!92jRB0*olvYnC@`>6NML-VsQ56Sq+*DNoNF`D|wyaqC z)CHv^58WV-cm;^e#)4?iNS}O%=}Fa~oa(fEQq(21Mekj5$tS&cs-t>8RhL0)MF;uF z`^GfhNg5NB*n}|)fFo$Hbty@rnN5L&p2{$$Ns-i26A-JS|5|E1L#Z@z(t0X`r70$+6E_)1 z6+H@aozcajY-DkN5lq(rIp?b1IPg5z=U{SY4yN9Oukv{g+0L(;KRp3_HzB$bprLd*?DC%iqjc))!Q9(|<1zsO?IeLasQ zh|K;F3&krvm#2tqiqTF+FM7U65&(-OU7+*B8N=y;*N>=Bgub=vT#D`U#{nL}=K-MWTy>-e&Z=Jn#D$y5p($(Xt!uV+{Gm;fj zj<+_J;;kx`PMl;#Rbok1)|Tm>43a%rn_O?@7bl7?%S2C|CnxE+LT`Y@Be0GzK)YF7 zE0&N|@;on!BF$4_CY4MlQ*TE-JL(%1xIO`Ge7fNDfb;%)3&aS1VG0F?u_3p7BG zdXPa+TqwN_@3`$2@8gQDUXpc*4d5=sAUhn4PI&{Kkwk;qIPMngj!+Z^7U1N7?gEXN zjNrA)L6jrw78Is^K=IRIzn5lhhyf0ONx;xXAcGL`jkKE*HU`5~FWUoOGPj+F38YC5 zH3SG91aGaFtqE!B9m((JuV1n9pBgZdgOPk;lAX4-ngl9}M->WX#4wXlWF&j3^m6PqU{kL$_$JV@F2 zn)l)z&rt96aM~eT52HIzqClGNyq`tI>X=wF7!PNU(#et56gX}G4n^dJnUhDfr;YZ? zt>>B&&tgH7A@1rrSA}UYHtFh+9m4sWlbRVPjNe_WA%1#9gD!k7#yfb|+25@=@_2^j zXhcHBli5HE>Vf4$GM0LV9B?%iw3@}5s+PhHMJ++tG}1L?Iox_;W*8RueEy3+ghFas ztB*G+L%&)EYdIjDBj8{1{_B4wV)0buzhW^X_E!kE*|I-np-#jb5R6#s(NA2ngKavD zBh_T)(=4vfJT?l-59R>gLGg@Nj5CGC?m=i^vnefG@AgYW$_EqB8E(Jtuf#*YpgKH+ z)c8op!~+9M0JbD{p#C+G!V+yBn07}%uTS)zg9IVPvEEmO4iQv?KzUykI*8jT#yb(l zM}K|8QVVSd@J$wN)(Yjow&HsHQ57?MbMNhx)o>=#q7Gc%vjmR@@Gzpwn|s7FjSZGo zV6O@HB+W$PuHTZ)!c&6Z;xCXr4Ji;$#E=tEA`X+4#I9RabToUKDAD{c_x5PDbR_B6 zY>YCx2#v+7XGw&@EV^AsBdS?uY3fo zd<3j~1T0-L0UJjUPZB~s16n-;Ts;%KK6vt(;N>&H%V&a@ z<3ocjp9x+*6MVuAQmU;a zOlJaWJCT_hc4?883PLU=GLu2LB}HZeffP9;iU2{lNje0f#>@b4h>)*3{diVfWCaqD zgTw?#ASD?{RzOgUOrp#(G9n|8rVQd#Km-z&L7Yekjk+u&EiwX0%pg(%B9P7uA}Jtr zVzUfIvLK2x2uZn6vP-(L=(6=f@|?iSwM0;UI_@hX@%BKx8?9cQBBi z;prh`0f18u5Hb`1I1vDzkwAKyr-uv#08$(vWE=pH_A#X-`#wV<{k09>~B!6_9FWf;Fm-t^n{2LC`P@Nbg7ljkf^wj>A58-)BWZ$4Y&N zN2%}dD2*9BN_~e%X^P-c>N`A2LjsRd-{Dc&0Q4;ND?MY`K!q5%=;W!~z;#)Yl@p3# zmkTL3T;CygN8ceWT;CxxT;CycN8ceWT;CxxT;CycN8ceWT;CxxRNo2}-$?+!zLV*p`c49b>N^SG z*LN~q5-NBU_UJoV!H&K|hLoT_VXF^@1o2AQz)2!Oy>d2ivIx)+edl8Kp1yM--_v(4 zWQe|V0p8PhF64Xq&V>xocP@Z$2!e)L($}M8gC?B-^o~Oe-}cUjgGo1{t>e1!kXe+x zN8#Y%Q7SwgBV6H02uZn}xhDZ6 z-CTvoasm~e$_Z6?3L;eDNeI8flj)%fPXdH0JPF`ecrray;Yol{g(m_03QwkoDm)1g z=HSWv9fgMsDMEeHRu?W3Bt*EzlMp)^ zPiBN`JP8r5@g&5K#*-Q08c#w<%I#=82_Wg_YCM(`sPR-zsK!$ep&Cy@_%)tP57l@Q zAXMW?0KdkQ>7g1=0)%Qj3Ev~V)xsdN^JQp%Viy_-$5Z;d=|&| zym~g|(w7NBQBj2Q-1oVL2&#()*rqN1eb_hlk=?h=3J>C=uWvZ4VesNhq8${zB-&%g zlH|8$T0u8S6;!+3SeJwME}Z*5-~oZ;W*4HBwlxo5$Y2X9^;++N{{tZ2Us;9hy}QFn zt3`~>fuzUTXtI*Koiy5DT-djV@4>NZymhR+uZrCJTUL~Or)35Ae#`1xCbpqZk&#CI zfQ|hR?IRrQ+K~IfTxvx)>4SEXk4BnL8Y) zXR2x?W%Nu{t;?0zVEv7ITRn# zj(zDrQ9m}8ioR(qGB}doj|u7J4yHfH9ZG+W8kVs?N7c5IqiWm95w(e`zNv4A)mQ}N zh}r^j{IyBm-mT5e@z)mk%`zW%!ERn=0nP#wv77}$jj<)k{nYxpLB zrBw66_-YF3)G$LoL0lp}2iVoggCl>I8rj_}jZyriG*0nnsS3wCZOPFUMO^wQ%E%&m zmK@)JQacs8Tp=)YD|EAVDhwj7_~0Uh7ZkDfF#{&9Y1uoj*lMo9Yuw^V*I31quId>F*25BAVz?YamFVemH2vw4H+Z@` z`jRpH>E3z*3CBN?31tbYao<1_KfDK{0l1y?4YCv;R9A@baGOD+0eY~X8YV~h9>{M5 z501pwIYDgT&r&0}TS{XFe<_V0{8_5P@eUetG({1YHZEfXWXUlN$l9rJmqS!3H*2TD zAmWOTokICU)cYQ*d;m<6NpOTxz99@FY7F5SPkX^^GwO~Kefkp6=Q|CK_!n0}T;t18 zW4u#F;~8HWjb(f}sHMb8)H8%+Uz&g0Y%Hb8RAPxizqm2U9iKK@=Lc6JzR9zYW zY)RF>pDyXr_-ETx*baWSq{7xyQu^C$m*&q>TKiD%14E=xAL}3TeW0Mi{AUYlWd4(= z4*o2vdO=BJz7zjLL>9EtS_g}NgqsDee!gH(i{X=7n?FG<%AgRy*cZ`=TdT7J<%gp& zA%gLxGY>1#C(r8qiI_YePzF=j7kB5H0Qc7;+tR*bW9PckM=*LASe{FRxD189@p*{b zK1W2>q{V@UY5IAab$i2E@F&i$_7Q<`UA>TY(a+#uhtlpnO!D7!vYFn7IEnL6Pje6L z6bk7K$B*EHbvZcdfTaJ*dWaZs{wJMXjkuU+ygY|h;;<-t2SOXsH-4_z@AIeGX7V^2 z{(%#Y=|tDx>C@XkLeJsk?eYTwJbe@W4ajkO{ckxU45wk?{8w+!)nW?;zhRAN9}&mt zkS(1f-LKf?dQ3WvBMj)A5eg>Lk;}fywP_$e^-5Bua!TOHmq;8z)1PkiJm9bd??Dzg zdIUFYurQ~Xwc0F!EhpxZJeiBIlIMwOr&8kl#o>kyu^~k9zkcA|QS3BLCu41+Yko}S z`@pgV?Z7cHli4KKk1dNF#nbCUbp)K-%np$6fU|ch+*i@Z(b`jsmmlQ$7yJ}6A<9lp zx}#xMo?-`aD(T`@ixZGTDbEOx!^!Z2r9nO>@fbGE#80s?CXvLR864sI(V_WZZN6^t zV~TOUYJWJ!!QJlpEOdb966f zW41jcn%Utb^5yw45gqeEc}av!Pyc83yCm{~1d+%G;zw+6lR+d((dltQF0qAvUp#<5 z)P6f+7R=$1G*{d;LG`h>$J!DGHMiL?2J&4P;rzrnR%e76vTn`%{f8E1VOF%~&<2*` zjhe(fMy)u$(06D(?}TRzq#??)Ai8OO1w+WLdvawWPMTM=397|~b1A3J^3=cojOu+O zgAH>$@?TgnW|$uM$KgP=Do2gV@Y9f334zQGb}kw_0~mf>l8&2nr~DgO_zAQh9u0w? z=vWxGZZ`#l-dp7$u)qOhEq%s|A=cE8p6d=w2!JSlB-N%zVz{N<`~dB#Hz?{0(uF#h zTeCa@Rac50c6FOp%pj=b<^&++sUrv-e{JE2sCN95*`E=LhA0@6FDW4eLx73k(U91d zL1)l}a2b*rXC_dM>X^g4-vJ6-gZ4>Tr)9qenw_5B0;_bwqMAL{7o3`XNA$D29H zguix9S-^PX_-$rz&1^|!(%q^Sl6(>Oj8%SEEA6b*sS=kbhxnL>i~tYw_!`mcU>1WS zrNk+WdEAP2Xa-XzkhuTeZs|OL7WeQFYj>xozVfQ$Iv09)NHy}aJmjZ`kB1m~IuB_( zY0u&;fI6z9FXU@YYceveWN608y9A&1f8hob!-D_R@M&Nf_W|k z;rT06)nK?iOPqV{M;=yUp(HtjD1f664$Gv`5Z8q9<95%*QQ=XXMz`3kS$xQyI0qhn zQ)v2)=1?$A^7#iVq>R|2%*IaiB!tbR6b`A#i{pA83Z~)cm(C$&1ddDxNoog+Q{o!2 zmnU*W2RlYtFdRoj>lq?ah&yl*qxR)7`^T3iRlF~mfr3A1(0y65L{Kg_Y@{ioA*KwP zpgg^?pnPA8(i#zwdwxiEJE#%jQHi~_@U33h1m zpTg^qf_0?Gemyzu#ZNNOFCPz^`V0H;<}-sUXq*?gT;ME0osN1y6w4@_xH}=SU*+yN zjU~L2P00gq{Tv&y(`1+JRYm~Yt2~YERhnce&f6+k=R{wYEa72$QE->-Wri%Jv$f3A z8w<*pWkri#wikzAGqzXg>rCcjdk+7n*z2d*$v0p+MuBY4599t*c)6V0k9FfGy`RF< zU)YCtDBBA1!g)s`52r-|0zcLDaPT95`a%2d-J2= z{}fglhYmBT46RT98L8f9g*{k@GPj_im$_x)E^~{$XvEwB^w?o-eLSW4%Z1wi3N{Vd zou>(A;ZhskGV-pRePyx9!ZnnBc&%I!fgqC@E%*Ww-81W_{QHk zwr%Z0ZEKZ8gj20q7s8p7h=u~=2E2Ws9y#F>C%ix3JRB&Da(?=nXDB4m_!f{qGnhg+ zdutWq*-urz+ePD46>r@i0`~QjH7PBOz=nlwA-zkv4a@_}YhfcI7Iat&h2K4J(rgI{ z*6%vJa_$AT>Y4bSK~nO7i3#j2;47>aBLNn{uuLr;<3Jsip-$2^_oyH2<-secB{A_#KWLc1H#-;azY z4^ObAub;rxB?FH8pd*>th8cmnJ`fbF@x^I^PRt4=iq;Uh_~8xt;z0;1f<+;>_D*s| zOnsl2SW?@Kw*)E=T+@v!>X%Rbag;v(!~Np(?qY&NGuW-Z=ixctB|Cjz!@li4+9&4$ zcUq_jDY>UVu^CC2AT%3s|DnEr=xI$iGqWvWd;=1@hch5`9oKkTX-$E2v)XUOs=(z8d#{{i2(fSccw=t6qI&6w zW9uSg4gZaqT8}v9ymtyM&(;-fh~=h?0DBYb91-e`XQx&?5xi3?6qu1+txqxBewS-} z!CPQx+U%}AsckPuC+Tx+0Hix7x-(p``&sM}`g#J)0=gqMt|@bxZBM~PK%0e&Rls@} zgMj|RRnFi+PmmKuv4LgO#im6SzzDlW6^1;!byAEU`}9F8uW_HOa(BRYBP_!c`tjAB z>C+FRx2%hQ(y<@Oz`D8v`tjB!zb@9$S0AY^ABVW5n64+rMaK(BB-@@1iN+F>e=831 zlNYUiId{bzdKaI7Ds}~eL|#@dX65^pyVF-zAu89zhs^Pak;9{REB^?83{v#-0si>c z##CcWSEP8DMoqB*db?skWCqMaorMCbaI4>?xK=&Se6RZ5Dpd6W!{$~mGT*6Q44XzW zArjcNaeIYCm;Zv1;kVZL zs*fiUy%fB3y?QoX_jfF?u0$*~IQ5~b^RmQMriIU{50UF9anL!{i;2v67as|z6N`5y zXh^&{?^mv|y1*|$K6x>hQ{dgoKg1tw_&&fNa{M$hd_d>OG1VrUUp~psNmC?%-tG(+ znPD?rlF+r^i5ehS^e&ysp{q6Xk>D$7n$#1FNRGcnKC)qJ?&mQCO}m9 zq?EYceYZYH3@!u2a@qdbpYHcEY4wSLKq=Ml4pYL?5w++97D*pr#8fIfNck0IBAq@- z(1ntagR=S$2&%xkl37HBv8_uP; z3Mxrq0P5-@05_4@^ttbTXURP}OjG%~r>i_9=VB`LwG*GVR%!be4gPf*EXyGtHY zP)!!@t;WIjPP*5R4Te58NuBgEgD#)?RE17jdgtBUKcAEFUTmN?Ac~I0|L^wB1wO8- z+W*spQl3M3C`Eh>Est_(9+O9tv?Zo(=mScd3q??oWRgshp-CppO!^>1@q$?7DZ&-R zM^VsT9?C`eBcfQIBBE9l;eP=EuV_^e#P?tPaM#*nW(pL_C|%sJn^ z_S$Q&{W$xav(KL1`TecZKN-apbWV|q=+~Arz0!{wMOcfCi3;Ky6N|lyJj5i8RTB(Q zT;2?o;>rct3HjY-O7Rprp)!L`TXyDdhDoa8i#U@hTZ5%EqidA)k5i*U1+T@UIj*3~ zVFR%7xc!YWFsifR0Kct@ujAS(3%kYPbpq;nwHmZqZ|@O|SJt z71n1lR8f4xvVyOt0a#T7W@x}v#;6=uxIoshq6alg5lyK%RFn~2Q$Vv;{;4!qQYCDW zIUQ3(mC!=-^IyU6$Xbm90k>C@d_{FiHV8Tmdq*g)Ra^0JF?n4^xS&9{ErTg^hYHHm zttH}n$JZ@k<#kI@g*&4P`va#h(pd3*5lv5DrwvT*E=4>z4?awm+sz!+4%T^3Dyt8? zdcn?M3EvfwFYKupRukJ3;{)==1jxZe;HDg;Z3kUOGE$Sev7xcK zp`|bMM48r@&lV^)4L;rCh)l$HmsIAsniFLaL@r;YO=KgY=6h?{M?DRvsUZ_G7i7U} zer3zvzw=%<gtiAe$@=}a9^Ucg|Vs}JOev#_WQ?B^+?fy)0DBG{DQd-Op=lbc@Zsqbe70KHW zsL?87l4Xq{iAnQ}dwgu3_pCcS#m&mVb8y>w{izrrFp?b|_ca9G-7;%R*=cg#+grry z7iwvni4Fb_%EC%o>G?dRRVzQ&RrTlsawaeLLN9pHPY~GU4XqxULses6W#kDsF#U*4 z2=@bX%xw$v*b>)2^p^ty8k|64=8u>;5fKx9U>b^j%Y~;AIWth4mvhR>d3`YSW5czf8_G@DxZ%&v~QnlvSh)e~NUlJ!rl6%a8m5ywR&a~@uyqt|xYMzQ_Ti${;QzE*` zq^>*}>TBo75@cRotKsU>KAdaMI89!QnrGpd#RK|=vzfvInqW3$JC+UE+~81&=1>(z zGQ)wl`@$n7Z9ES20=mGsq`vYH{Z#7oP59az8be^)3mjqi&tGg9> zhGgyWIa(66m>($B4sx5O_d(}oN6q3#siRW^nc-sg$c5nsBw?NZcEUMkTps7SLp$EaHBo4jppluN%ug4tKb zkKzcoe;Oa7X{>xAo>x1XSx<}D)|fP9{X^=sWD1u^O~5IZEiwJJ7!*F`LV$PHld@7nUZ*WMqjei_dqUuo@@wi$=#gd_g zhRqaQuSNyNJ9_$&)4QA&xaX!*vv}D*JEA`7cO8{ZD0f1B^4v{RFFxv5F>e_f7&++a z!<)CuJ)pk;hF7s8yA$co%RTRxEWwaq4*lYf&M7xesG-xNlM`I+Hk7MCpvj@s0dZ-d zs+xkr^$Go2?FP9v_>0JfO@J_CK`>2I!D141!<9dP%z%T6Vs%ES@h21#u~ZkMwbNzOqs-J2sU6p(Mb1sYQ;l%X&f$E zf6%UP$a6c4IyL*I({;2N?4h;7Os&_>W9P21(Xm!rphX9K5D{)t4z@RL_}bj4BhxBO zC(S?`r=WO&kyEqc|tYrbuR(P`^th$U#O)`P-h>W32X$%zS zQgb%~DvZ?)J`1`u6daLqz->;_ZrEgP)Edp+;H|bHORw(C=YNga5xCFN(tKFp;)qvh z4qh5*SLt0W*dIoe1yI6cJNGt4Z-(AoF}KldPa~)F+J@%r$YjQvEuEeo1ug=-be;QK z+G6GH1aZKE?8sPYlQ%jr?>X>&oRs)yEMLr-SA@JF01qhbiPv~gXQWSrI}UR>5)gX- zP$4_;0qwG*f^1g8y3D%TSut8?N=BqDV+llIAcY=ZbR1!x6b8kj5|!sD<2#Go9l{az(S6u&AjKl;huK)r$$!FD__|j!4&Y!}%gD?_(0f_!1Ivg~fXwPhQ6={*OV z2^Ez?emZ zs-|X|*QHWrT4&!tYgT`wK=VG3;h)Y?!*uBoo1mzQwr!v#o9?CiX+hBl^X&30Dj3^} z2h36sj@#I_e$Q>X`h!iP+qvukTiQZ1$%n{>-!L2s6BJyCu3 zKxTkm)T5h&!}R-Bh1{8R+aWWY>hJdiLje+jZ%}0DBu%$VRi#HE(5)>}t zh5QCjg!cuTmx;kPdVor+{hPPBJ@IlfMh#VPxu24ny^wkV^W4WQ$N;{P1gFli2zo9E z=c5AK#V+rTGZ{iReCVagsE1Q{m2Ph12(Vp@y(#D4)S9q2DNJDMkle^vzEH}HmT06q zK0Iu1zxcN?0s{0~P1(RuC=gm4%5U&OjhTVq-01pT(e$n6J2%Wr(A(dKq8}#WmGF#u z?(7%T*VU&o(kk(sV#MU<49pXj&_D>K<@7`i!6xGw$58{eWd^AB`<=D9dpFs^uYs@6 zWjC;cf7uoHDO~`L3Z4$!RvHtKDEeQP(neP@aa;T!2 zcI%lz4~5n3CIE}QREQO;p)MvMIs~Hg=;v!AEHV0P`sinbF{Xdhv`lWS^E^vKd8$l_ zb*`ty9`3v?k!6H1TBY}sLw4Z@_qXKQ+GwD2xqTHjX-CY0S^5rSm7B6P*d6d|=y zD8f+0_#)itJXT(?JFj{tiu=_ncg)|3O3>CuW85R%N{~*s(PLVu1ta~H)&h_$R|{OR zGPQtuXQ&0Ch!xa=iZki>F;wCG_U)Ba<+@)@J=j_8P6l?OBBUGY=?M%JIh+VXeh4;v zkStf^u2`8OrysR|A`eBZpvWV#1h6OC=W7V3^$ zA~IIK?-!NO;Z~q>imEC)q4`#z)AO6ehMEwH?VYjcj@YO_)ykEVL5mfNi4&?C!TKId zpj?%YkStT{jWkyLsOX`(AIyVOpLQbmPRx)G{9&{)ONNNCm9C7R-Ke(G2SzJSrm$JO zh7_GFqSip_LEEM71q;J<>|}zrg>w^$MTgYXq}Fz=N-fXQWi?%er)p~27tv2a<;F^> zT>sItOJl<|gEnk-sPmD6n^vyM&Td~c)RgL@CkVx(XG_`}i>X07Nn>{V z1kI_U)oCUd@sk6U^RF6NV9r1xKjKI*;xGxS$cqL?i|U4&$mV9X#UFB~#C%#lO!h|lb&u9A3uWo>(ca?NLi_&>%*9Z1`y!gJ zruOrMFD;=Onh7>iq#~&!0s3#tu{~7CD_N{eNsFGC@`l9eCSeU-y){shKnDxCep>yj ze|$KbBFC7@u{tx7ot&JQ2prS}j!uIknw+$WiW^8U2~N0_E75OSwlB)5D+V$&gQLW7#8X3!rm{~=((lCaUQ^PX z^Esw!OitQg$z!X?y~1cOAU&Jo=lW?~Jo+WA4E^#O^#kl00`y&Hc4!7K2XQ7j(Co15 zDCWBCCW%RV9B2T?G&|(QpmB>z{hC9{viy#p@te6ZWA9KIlepSWPWBDw`ql+=V7d{> zO`twdS~kb@vw4$LIm~>j8lLb==J+8K6Q}tHwi;PUb2}>_YHJm{!CFI6y@XAL^Me-E zmHN5U3OLuvEjcq~vT0JX`CvzjzgZa{imEw$J~frXb6KEC8UIt;;O>$fWp}s;JjTV~ z9Z*kCg6e!zx7h-%<$eb`XDnObav(!6hS1sVsku}IROCp%-}RWfLhY|B71%RU#X}uc z7c`#Zv!zVg7DQ9iN}00F$h4wz^^Oa*d|7!CuXhnp4b@J?KaomNSZAAljtkN3P$Q$9 zXcRreX&1MsNRx(#xzqDHI7`UcUgtN5ehryi(p#YNH{!=-Q3VxEE4t>JPfjiF+07JZdQ}x+C%dt7x5=UkE^l+N6$Vzvz{`;Bi9A%^SS=H^+zt8?VP6U>D`>Vj5013 ze!#GlHFL`fdwLFpoArsw`*pyIXN=Pv-5MHn%4owBni$JwW+;Hnq(T`R&X;P3v!jEh zAquD{%RJ(Ky)s*4hwo%unl#VN=FEu$?ljkag#LX=Sc3Y*8=hs?1 zVlj>A%2-OFVxie{Ei=$7h4NmPqT_Pvrjtq`N9`30&y?D$t#GWB>l=<~wXd-age9nU zp+KlYdIe;c+T~%5DINbX=m01UDnm|z#};O%!m21vG2LD_4IRcuMtKAxby~ZKSKkn= zqy6qPlx3=obUjABu-E+TVRXw2W?0ROIn_{h%tPI%PRowaRU)S2qE;O|r;xl}KG-+q zQVoaEl|#y0gPAd&9fNX;R1Q-`ZiLA6>}ZaS=AErVshN@9$+>>+VR)RNqtv+GJK}2J z)Ww+W;#D4By96%#$QZsDOgmSD{-blM?RG{$%GP)7;o%N~_pn$myy0E~UZPRfnJR^|b?vxqMW}og( zsJyJ*t7RqcblOv%UDo&L*(y6bl_}&hHB{fm@?+y;bQh;Eo)xH`EcIKQJYLtUi zlEI#)NbfSxY2KWlX~Yz`P{2znzWCyp=9bQ)I%{?NqVZwPwVG^RIq@^gugchWh@|@P zK!CbSv9E4?n3URU@#z25R?SJDY6#q{n6eu4)vt-CX{ntSN^yo#rnV=kQM#rt38m|| z2iw=MD!O9g@gvW!SV5iMS{`gtcPlrf=(ahXh@G%tWr}HqHibf#ihs12ThFI{gCYk= z<_tu&!Cr*(e|qVN-zOqliYcqg%$t{euMjA4)1OjF_`7DnPDH*-z4`u4>O*s2FW^{$ zgUGP31XoF}G$K)FY@lOP(tg$PXEswE(f4}z2U)$gPfB3ml`}K-`Uz&#BHL02a)n}P zcDaG2X-?+c$fqtjNt$SU8ziC$rM&AnM>y2BGNZI2H{GNdXUFrzZq7Lkbag0MQ4Yom z+4Vc00gjc+k5i4SEDs6 z{a3jK>)(ZjzLv%K#G!J1`9ZGQrV%@08|X(h=~t`AJyCOE5+}{C$VY{ZX16cTFE&Tq^6Uw%eLdZK$rg%q z$!okyy+ym3ju6nqiZ&GUee1F%QFQW&=Eyc-li$#YR7=DRS)&G|>^(jS>iItO9Hx;* zMbfvJUd#;B`9?LL8mZT#^9sMnPB)17CaQU2V;A1xn+{%xe|eDJABNKPLLgneWgJSLPBb(Dl3J4K5Gg}42=r5}v#Hvq;6DFQ z7t_eW+_Q+O^yO|;usa=}(3ondlrc5gJZ|tk!jC-cqXNGK`ZI-f%jxMxL=pHwzAqwg zYUufSC_6&u2~tQ?Q!|^wrR7~L`kKwfqJQW)QjF%1ZdL|GDMi?8`kV-}HDG6qwsFc> ztV)f&df-~C+^cnBD(7N}c~BFoZhp|tn9H%~aV(9PL!}?^u}#$Tu|0IHHa=!$VIOl) z*LY!Un6Gx-7K(v8ZTy(gI)(X~w3h(|ky)@RF%zcMMYIsJf=OoBeAit;izL5^o*_?UZ>fQ=3OB(L6d7^IBreOVf|Mg=(vq&S5)cV7h*4 z3t1_e$j4%1x<1axGG&~mu$?oqf>LIs0VC;Hjf^YkhBBVyu$?lpp#o2`QZ$l}#mI)B zC#8VBi}Sb^Xhxi(!W)hlsCNyeljeKqYvuAbRC_S6l1#IFjZNj~*=b7N=@+P}qe|~i zBEsnViA8>^n_u1N_A?=49Lb1#Js!%8D^N*>I1b}x8Obo8Ym`enbuAfG1f)C=k8$$hj~4{HbxNBvi9B6<)EoWf<|a+?giR1~fV z-su{(n-+k;wI9RW{zcb2i^zc=v{UwLv@+JKh_qh+(6!tT@$HT~P0QsNo;&H++p=;; z56iBy?9hEhdOlfmdXZL|3$@6;e1E8#*a+PmAynH!*Go(JnO&-s&kvV!V^P;j_Wqm* z#9cI*My=zHU<|ntMPKyvlb;LgbPBq`Z66NTQg3OVmC`?!;g2^lW0Yn*QMPfugp45V ztxsCEt4Q(sF^)X<7wu`IodoP`i8(ybsBIuPWkPh#%N4=gV&$9NrF>zEv{$OamuW!9MR!!$1hDR1TuNp}TB0nvVPB45?JEoQ{8H82cS< z#Qk#VRw`Fc$3HWy`c0azUEZYmnm$#&Vk%q+hrmCxmQAgD*EeatW;pqB`|m)f0&c2Q z4x+rFySq90sAGf_JZ8Qn@ z%b8WFTsa;8%&_EC`HIOv2#3Hw)9MOzFJHQJL2B+vz2l>$@l;!FQ*C`sdfXhPKiE)T zTi;aMaHQo%8IQYW(uc<>%U7S2p!3)^W<1X1?Ew3gn0Dp~iD?^WPCIz78M|Fdd8SwD z5^tBV)%?9AIrE~bR;CWc_)&b|zcTnbDc-scxONN3!+UWc}*oToPH5oJCPc*{VHBf+QCQ zF{$jJ&yDoq?IiwZ?4dL+tnOrcRwd_>I*Q$y?C4Cc=uCEXCQqT1Rwh%&s`gHb_9Dln z?Q{H(bX-_K4~U-Y!+MV089g&)pz~Vwobo#9*&=#gtABR9 zPI~I4;oRr>`2?;%tEv8MsI>lUp|~4GPY2tzjN2A90;$WL$+_oDU!EMRx-GeJRYYCv zOm3w*dGoZDB(i#Hk<+FWS++-V?($@6u{Mlzi1olt9rt5xi2_H z;;!WUnf`$CC;h=O!Tw-ba;$ovD(VkbnudQ2^asoK_ zUAmInrd9ne`2aa&`?O<{k4;;ae0tgt!T0T9GGrU=;yt@4>T{y!anW-Td5?U)g8Pr- z*ymlzv#Y9?PfKpDqNYzB*p*ewl3S{Vh?2Isi@`&Sd7Q(xb#TW@+fklvU2GfaJZG2V zssE_@vUDKFP@yfOLdz0d8?&+p^?{3)B7vY^acy{zM(c%@5k*ad?H=GXLW&#^#m%`rBtj-saTg%u`Z?R zzKV*IYjX6)LAxY=|4LM7bzlVPOH_NK44?5{HED|4s?8`R7{b>{RiNLDMTi|FoZB^T zX52yF|3V*@*Swgq0fyXrKAb zdl+o{aN2!dcn^1Aw3+^yzN@K#rzQAm+itVud#2$t5|`?+eDhazLW~5KB6*W8Us%v) z`fU163$NeD;DqUeX?KP2nfqF9`cc|FNq7hMU$mKik-n=a$!So3uqIU}#5pF0{WnB< zIA1AYPt!4P8w?jG(D7Ejz@zO$hR;ZxZH^KN!RDwM{3F4_eLX?WS0Ul8Iw4MQf~w6( zJqSN;?3Ky`LH{n?4Y^vl6uTE=i*Oz9Yru8F-=RRhuNOYs;a?Gcl*7L!yxHNm3vYM$ zox+zm{2t+YJ)yzh75-iY^8G{Mr#bu);e2kz&DOi=iGM{%`_G8{pu>M9e7(b;7e3%1x+kwLW10n6dL-J@b@++GfA8@33g6-IZsD&u zJS%)3Q$Bv+I^okDeunTp9KJ#L|MOLty-DE*IP&KRKiJ{t3qQo+mk2-H;a3RP{#28{ zT6m))e~s{k4*!zyV;z2z@Wl@Qs_+vXe!K7wIQ-kfPj~oz!u9;2_J7at@OkG)B7c^n z=TYGwboi6PKkV@T7X2wrP`-aH@|zv`7ldEn@IMLvzQg}6+}3wLk!fa}F+K4f6YldF zhVPo#>?5e#Kko3f@Mj&~BK#)D z4@V2X#oVMlWOi!$E7liNTl#7+4_T}(@h`b%gX{vM$YUHLTijF^b7yb*!{(Xeo>jq!XTZBL6$RBL@ zu89s`)a)H1@;e;)BZS-Wz8|SZ`2LQajiSHD7d3lrBA;^P-z~h|;l~KS%CU!)RVU

    -BUqXCex_`1o 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 jt$TzL+gfew*`b5RwEH_H-HB$aR*Z= + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* + * "_XOPEN_SOURCE" is required for the GNU libc to export "strptime(3)" + * correctly. + */ +#define _LARGEFILE_SOURCE +#define _LARGEFILE64_SOURCE +#define _FILE_OFFSET_BITS 64 + +#define _XOPEN_SOURCE 700 + +#include +#include + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_LIBTOKYOCABINET +#include "tcabdb.h" +#include "tcbtdb.h" +#else +#include "gkhash.h" +#endif + +#ifdef HAVE_GEOLOCATION +#include "geoip1.h" +#endif + +#include "parser.h" + +#include "browsers.h" +#include "goaccess.h" +#include "error.h" +#include "opesys.h" +#include "util.h" +#include "xmalloc.h" + +/* private prototypes */ +/* key/data generators for each module */ +static int gen_visitor_key (GKeyData * kdata, GLogItem * logitem); +static int gen_404_key (GKeyData * kdata, GLogItem * logitem); +static int gen_browser_key (GKeyData * kdata, GLogItem * logitem); +static int gen_host_key (GKeyData * kdata, GLogItem * logitem); +static int gen_keyphrase_key (GKeyData * kdata, GLogItem * logitem); +static int gen_os_key (GKeyData * kdata, GLogItem * logitem); +static int gen_vhost_key (GKeyData * kdata, GLogItem * logitem); +static int gen_remote_user_key (GKeyData * kdata, GLogItem * logitem); +static int gen_referer_key (GKeyData * kdata, GLogItem * logitem); +static int gen_ref_site_key (GKeyData * kdata, GLogItem * logitem); +static int gen_request_key (GKeyData * kdata, GLogItem * logitem); +static int gen_static_request_key (GKeyData * kdata, GLogItem * logitem); +static int gen_status_code_key (GKeyData * kdata, GLogItem * logitem); +static int gen_visit_time_key (GKeyData * kdata, GLogItem * logitem); +#ifdef HAVE_GEOLOCATION +static int gen_geolocation_key (GKeyData * kdata, GLogItem * logitem); +#endif + +/* insertion routines */ +static void insert_data (int data_nkey, const char *data, GModule module); +static void insert_rootmap (int root_nkey, const char *root, GModule module); + +/* insertion metric routines */ +static void insert_hit (int data_nkey, GModule module); +static void insert_visitor (int uniq_nkey, GModule module); +static void insert_bw (int data_nkey, uint64_t size, GModule module); +static void insert_cumts (int data_nkey, uint64_t ts, GModule module); +static void insert_maxts (int data_nkey, uint64_t ts, GModule module); +static void insert_method (int data_nkey, const char *method, GModule module); +static void insert_protocol (int data_nkey, const char *proto, GModule module); +static void insert_agent (int data_nkey, int agent_nkey, GModule module); + +/* *INDENT-OFF* */ +static GParse paneling[] = { + { + VISITORS, + gen_visitor_key, + insert_data, + NULL, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + NULL, + NULL, + NULL, + }, { + REQUESTS, + gen_request_key, + insert_data, + NULL, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + insert_method, + insert_protocol, + NULL, + }, { + REQUESTS_STATIC, + gen_static_request_key, + insert_data, + NULL, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + insert_method, + insert_protocol, + NULL, + }, { + NOT_FOUND, + gen_404_key, + insert_data, + NULL, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + insert_method, + insert_protocol, + NULL, + }, { + HOSTS, + gen_host_key, + insert_data, + NULL, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + NULL, + NULL, + insert_agent, + }, { + OS, + gen_os_key, + insert_data, + insert_rootmap, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + insert_method, + insert_protocol, + NULL, + }, { + BROWSERS, + gen_browser_key, + insert_data, + insert_rootmap, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + NULL, + NULL, + NULL, + }, { + REFERRERS, + gen_referer_key, + insert_data, + NULL, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + NULL, + NULL, + NULL, + }, { + REFERRING_SITES, + gen_ref_site_key, + insert_data, + NULL, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + NULL, + NULL, + NULL, + }, { + KEYPHRASES, + gen_keyphrase_key, + insert_data, + NULL, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + NULL, + NULL, + NULL, + }, +#ifdef HAVE_GEOLOCATION + { + GEO_LOCATION, + gen_geolocation_key, + insert_data, + insert_rootmap, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + NULL, + NULL, + NULL, + }, +#endif + { + STATUS_CODES, + gen_status_code_key, + insert_data, + insert_rootmap, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + NULL, + NULL, + NULL, + }, { + VISIT_TIMES, + gen_visit_time_key, + insert_data, + NULL, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + NULL, + NULL, + NULL, + }, { + VIRTUAL_HOSTS, + gen_vhost_key, + insert_data, + NULL, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + NULL, + NULL, + NULL, + }, { + REMOTE_USER, + gen_remote_user_key, + insert_data, + NULL, + insert_hit, + insert_visitor, + insert_bw, + insert_cumts, + insert_maxts, + NULL, + NULL, + NULL, + }, +}; +/* *INDENT-ON* */ + +/* Initialize a new GKeyData instance */ +static void +new_modulekey (GKeyData * kdata) +{ + GKeyData key = { + .data = NULL, + .data_key = NULL, + .data_nkey = 0, + .root = NULL, + .root_key = NULL, + .root_nkey = 0, + .uniq_key = NULL, + .uniq_nkey = 0, + }; + *kdata = key; +} + +/* Get a panel from the GParse structure given a module. + * + * On error, or if not found, NULL is returned. + * On success, the panel value is returned. */ +static GParse * +panel_lookup (GModule module) +{ + int i, num_panels = ARRAY_SIZE (paneling); + + for (i = 0; i < num_panels; i++) { + if (paneling[i].module == module) + return &paneling[i]; + } + return NULL; +} + +/* Allocate memory for a new GRawData instance. + * + * On success, the newly allocated GRawData is returned . */ +GRawData * +new_grawdata (void) +{ + GRawData *raw_data = xmalloc (sizeof (*raw_data)); + memset (raw_data, 0, sizeof *raw_data); + + return raw_data; +} + +/* Allocate memory for a new GRawDataItem instance. + * + * On success, the newly allocated GRawDataItem is returned . */ +GRawDataItem * +new_grawdata_item (unsigned int size) +{ + GRawDataItem *item = xcalloc (size, sizeof (*item)); + return item; +} + +#ifdef HAVE_LIBTOKYOCABINET +/* This is due to an additional allocation on tokyo's value + * retrieval :( on tcadbget() */ +static void +free_raw_data_str_value (GRawData * raw_data) +{ + int i = 0; + char *str = NULL; + + for (i = 0; i < raw_data->size; ++i) { + str = raw_data->items[i].value.svalue; + if (str) + free (str); + } +} +#endif + +/* Free memory allocated for a GRawData and GRawDataItem instance. */ +void +free_raw_data (GRawData * raw_data) +{ +#ifdef HAVE_LIBTOKYOCABINET + if (raw_data->type == STRING) + free_raw_data_str_value (raw_data); +#endif + free (raw_data->items); + free (raw_data); +} + +/* Reset an instance of GLog structure. */ +void +reset_struct (GLog * glog) +{ + glog->invalid = 0; + glog->processed = 0; + glog->resp_size = 0LL; + glog->valid = 0; +} + +/* Allocate memory for a new GLog instance. + * + * On success, the newly allocated GLog is returned . */ +GLog * +init_log (void) +{ + GLog *glog = xmalloc (sizeof (GLog)); + memset (glog, 0, sizeof *glog); + + return glog; +} + +/* Initialize a new GLogItem instance. + * + * On success, the new GLogItem instance is returned. */ +GLogItem * +init_log_item (GLog * glog) +{ + GLogItem *logitem; + glog->items = xmalloc (sizeof (GLogItem)); + logitem = glog->items; + memset (logitem, 0, sizeof *logitem); + + logitem->agent = NULL; + logitem->browser = NULL; + logitem->browser_type = NULL; + logitem->continent = NULL; + logitem->country = NULL; + logitem->date = NULL; + logitem->errstr = NULL; + logitem->host = NULL; + logitem->keyphrase = NULL; + logitem->method = NULL; + logitem->os = NULL; + logitem->os_type = NULL; + logitem->protocol = NULL; + logitem->qstr = NULL; + logitem->ref = NULL; + logitem->req_key = NULL; + logitem->req = NULL; + logitem->resp_size = 0LL; + logitem->serve_time = 0; + logitem->status = NULL; + logitem->time = NULL; + logitem->uniq_key = NULL; + logitem->vhost = NULL; + logitem->userid = NULL; + + memset (logitem->site, 0, sizeof (logitem->site)); + + return logitem; +} + +/* Free all members of a GLogItem */ +static void +free_glog (GLogItem * logitem) +{ + if (logitem->agent != NULL) + free (logitem->agent); + if (logitem->browser != NULL) + free (logitem->browser); + if (logitem->browser_type != NULL) + free (logitem->browser_type); + if (logitem->continent != NULL) + free (logitem->continent); + if (logitem->country != NULL) + free (logitem->country); + if (logitem->date != NULL) + free (logitem->date); + if (logitem->errstr != NULL) + free (logitem->errstr); + if (logitem->host != NULL) + free (logitem->host); + if (logitem->keyphrase != NULL) + free (logitem->keyphrase); + if (logitem->method != NULL) + free (logitem->method); + if (logitem->os != NULL) + free (logitem->os); + if (logitem->os_type != NULL) + free (logitem->os_type); + if (logitem->protocol != NULL) + free (logitem->protocol); + if (logitem->qstr != NULL) + free (logitem->qstr); + if (logitem->ref != NULL) + free (logitem->ref); + if (logitem->req_key != NULL) + free (logitem->req_key); + if (logitem->req != NULL) + free (logitem->req); + if (logitem->status != NULL) + free (logitem->status); + if (logitem->time != NULL) + free (logitem->time); + if (logitem->uniq_key != NULL) + free (logitem->uniq_key); + if (logitem->userid != NULL) + free (logitem->userid); + if (logitem->vhost != NULL) + free (logitem->vhost); + + free (logitem); +} + +/* Decodes the given URL-encoded string. + * + * On success, the decoded string is assigned to the output buffer. */ +#define B16210(x) (((x) >= '0' && (x) <= '9') ? ((x) - '0') : (toupper((x)) - 'A' + 10)) +static void +decode_hex (char *url, char *out) +{ + char *ptr; + const char *c; + + for (c = url, ptr = out; *c; c++) { + if (*c != '%' || !isxdigit (c[1]) || !isxdigit (c[2])) { + *ptr++ = *c; + } else { + *ptr++ = (B16210 (c[1]) * 16) + (B16210 (c[2])); + c += 2; + } + } + *ptr = 0; +} + +/* Entry point to decode the given URL-encoded string. + * + * On success, the decoded trimmed string is assigned to the output + * buffer. */ +static char * +decode_url (char *url) +{ + char *out, *decoded; + + if ((url == NULL) || (*url == '\0')) + return NULL; + + out = decoded = xstrdup (url); + decode_hex (url, out); + /* double encoded URL? */ + if (conf.double_decode) + decode_hex (decoded, out); + strip_newlines (out); + + return trim_str (out); +} + +/* Process keyphrases from Google search, cache, and translate. + * Note that the referer hasn't been decoded at the entry point + * since there could be '&' within the search query. + * + * On error, 1 is returned. + * On success, the extracted keyphrase is assigned and 0 is returned. */ +static int +extract_keyphrase (char *ref, char **keyphrase) +{ + char *r, *ptr, *pch, *referer; + int encoded = 0; + + if (!(strstr (ref, "http://www.google.")) && + !(strstr (ref, "http://webcache.googleusercontent.com/")) && + !(strstr (ref, "http://translate.googleusercontent.com/")) && + !(strstr (ref, "https://www.google.")) && + !(strstr (ref, "https://webcache.googleusercontent.com/")) && + !(strstr (ref, "https://translate.googleusercontent.com/"))) + return 1; + + /* webcache.googleusercontent */ + if ((r = strstr (ref, "/+&")) != NULL) + return 1; + /* webcache.googleusercontent */ + else if ((r = strstr (ref, "/+")) != NULL) + r += 2; + /* webcache.googleusercontent */ + else if ((r = strstr (ref, "q=cache:")) != NULL) { + pch = strchr (r, '+'); + if (pch) + r += pch - r + 1; + } + /* www.google.* or translate.googleusercontent */ + else if ((r = strstr (ref, "&q=")) != NULL || + (r = strstr (ref, "?q=")) != NULL) + r += 3; + else if ((r = strstr (ref, "%26q%3D")) != NULL || + (r = strstr (ref, "%3Fq%3D")) != NULL) + encoded = 1, r += 7; + else + return 1; + + if (!encoded && (ptr = strchr (r, '&')) != NULL) + *ptr = '\0'; + else if (encoded && (ptr = strstr (r, "%26")) != NULL) + *ptr = '\0'; + + referer = decode_url (r); + if (referer == NULL || *referer == '\0') + return 1; + + referer = char_replace (referer, '+', ' '); + *keyphrase = trim_str (referer); + + return 0; +} + +#ifdef HAVE_GEOLOCATION +/* Extract geolocation for the given host. + * + * On error, 1 is returned. + * On success, the extracted continent and country are set and 0 is + * returned. */ +static int +extract_geolocation (GLogItem * logitem, char *continent, char *country) +{ + if (!is_geoip_resource ()) + return 1; + + geoip_get_country (logitem->host, country, logitem->type_ip); + geoip_get_continent (logitem->host, continent, logitem->type_ip); + + return 0; +} +#endif + + +/* Parse a URI and extracts the *host* part from it + * i.e., //www.example.com/path?googleguy > www.example.com + * + * On error, 1 is returned. + * On success, the extracted referer is set and 0 is returned. */ +static int +extract_referer_site (const char *referer, char *host) +{ + char *url, *begin, *end; + int len = 0; + + if ((referer == NULL) || (*referer == '\0')) + return 1; + + url = strdup (referer); + if ((begin = strstr (url, "//")) == NULL) + goto clean; + + begin += 2; + if ((len = strlen (begin)) == 0) + goto clean; + + if ((end = strchr (begin, '/')) != NULL) + len = end - begin; + + if (len == 0) + goto clean; + + if (len >= REF_SITE_LEN) + len = REF_SITE_LEN; + + memcpy (host, begin, len); + host[len] = '\0'; + free (url); + return 0; +clean: + free (url); + + return 1; +} + +/* Determine if the given request is static (e.g., jpg, css, js, etc). + * + * On error, or if not static, 0 is returned. + * On success, the 1 is returned. */ +static int +verify_static_content (const char *req) +{ + const char *nul = req + strlen (req); + const char *ext = NULL, *pch = NULL; + int elen = 0, i; + + if (strlen (req) < conf.static_file_max_len) + return 0; + + for (i = 0; i < conf.static_file_idx; ++i) { + ext = conf.static_files[i]; + if (ext == NULL || *ext == '\0') + continue; + + elen = strlen (ext); + if (conf.all_static_files && (pch = strchr (req, '?')) != NULL && + pch - req > elen) { + pch -= elen; + if (0 == strncasecmp (ext, pch, elen)) + return 1; + continue; + } + + if (!strncasecmp (nul - elen, ext, elen)) + return 1; + } + + return 0; +} + +/* Extract the HTTP method. + * + * On error, or if not found, NULL is returned. + * On success, the HTTP method is returned. */ +static const char * +extract_method (const char *token) +{ + const char *methods[] = { + "OPTIONS", "GET", "HEAD", "POST", "PUT", + "DELETE", "TRACE", "CONNECT", "PATCH", "options", + "get", "head", "post", "put", "delete", + "trace", "connect", "patch", + /* WebDAV */ + "PROPFIND", "PROPPATCH", "MKCOL", "COPY", "MOVE", + "LOCK", "UNLOCK", "VERSION-CONTROL", "REPORT", "CHECKOUT", + "CHECKIN", "UNCHECKOUT", "MKWORKSPACE", "UPDATE", "LABEL", + "MERGE", "BASELINE-CONTROL", "MKACTIVITY", "ORDERPATCH", "propfind", + "propwatch", "mkcol", "copy", "move", "lock", + "unlock", "version-control", "report", "checkout", "checkin", + "uncheckout", "mkworkspace", "update", "label", "merge", + "baseline-control", "mkactivity", "orderpatch" + }; + + const int methods_count = sizeof (methods) / sizeof (*methods); + + int i; + /* Length of every string in list */ + static int list_length[sizeof (methods) / sizeof (*methods)] = { -1 }; + /* Only calculate length on first time */ + if (list_length[0] == -1) { + for (i = 0; i < methods_count; i++) { + list_length[i] = strlen (methods[i]); + } + } + + for (i = 0; i < methods_count; i++) { + if (strncmp (token, methods[i], list_length[i]) == 0) { + return methods[i]; + } + } + return NULL; +} + +/* Determine if time-served data was stored on-disk. */ +static void +contains_usecs (void) +{ + if (conf.serve_usecs) + return; + +#ifdef TCB_BTREE + ht_insert_genstats ("serve_usecs", 1); +#endif + conf.serve_usecs = 1; /* flag */ +} + +/* Determine if the given token is a valid HTTP protocol. + * + * If not valid, 1 is returned. + * If valid, 0 is returned. */ +static const char * +extract_protocol (const char *token) +{ + const char *lookfor; + + if ((lookfor = "HTTP/1.0", !strncmp (token, lookfor, 8)) || + (lookfor = "HTTP/1.1", !strncmp (token, lookfor, 8)) || + (lookfor = "HTTP/2", !strncmp (token, lookfor, 6))) + return lookfor; + return NULL; +} + +/* Parse a request containing the method and protocol. + * + * On error, or unable to parse, NULL is returned. + * On success, the HTTP request is returned and the method and + * protocol are assigned to the corresponding buffers. */ +static char * +parse_req (char *line, char **method, char **protocol) +{ + char *req = NULL, *request = NULL, *dreq = NULL, *ptr = NULL; + const char *meth, *proto; + ptrdiff_t rlen; + + meth = extract_method (line); + + /* couldn't find a method, so use the whole request line */ + if (meth == NULL) { + request = xstrdup (line); + } + /* method found, attempt to parse request */ + else { + req = line + strlen (meth); + if (!(ptr = strrchr (req, ' ')) || !(proto = extract_protocol (++ptr))) + return alloc_string ("-"); + + req++; + if ((rlen = ptr - req) <= 0) + return alloc_string ("-"); + + request = xmalloc (rlen + 1); + strncpy (request, req, rlen); + request[rlen] = 0; + + if (conf.append_method) + (*method) = strtoupper (xstrdup (meth)); + + if (conf.append_protocol) + (*protocol) = strtoupper (xstrdup (proto)); + } + + if (!(dreq = decode_url (request))) + return request; + else if (*dreq == '\0') { + free (dreq); + return request; + } + + free (request); + return dreq; +} + +/* Extract the next delimiter given a log format and copy the + * delimiter(s) to the destination buffer. + * Note that it's possible to store up to two delimiters. + * + * On error, the function returns. + * On success, the delimiter(s) are stored in the dest buffer and the + * number of extra delimiters is returned. */ +static int +get_delim (char *dest, const char *p) +{ + /* done, nothing to do */ + if (p[0] == '\0' || p[1] == '\0') { + dest[0] = '\0'; + return 0; + } + /* add the first delim */ + dest[0] = *(p + 1); + /* check if there's another possible delim */ + if (p[2] == '|' && p[3] != '%' && p[3] != '\0') { + dest[1] = *(p + 3); + return 1; + } + return 0; +} + +/* Extract and malloc a token given the parsed rule. + * + * On success, the malloc'd token is returned. */ +static char * +parsed_string (const char *pch, char **str, int move_ptr) +{ + char *p; + size_t len = (pch - *str + 1); + + p = xmalloc (len); + memcpy (p, *str, (len - 1)); + p[len - 1] = '\0'; + if (move_ptr) + *str += len - 1; + + return trim_str (p); +} + +/* Find and extract a token given a log format rule. + * + * On error, or unable to parse it, NULL is returned. + * On success, the malloc'd token is returned. */ +static char * +parse_string (char **str, const char *delims, int cnt) +{ + int idx = 0; + char *pch = *str, *p = NULL; + char end; + + if ((*delims != 0x0) && (p = strpbrk (*str, delims)) == NULL) + return NULL; + + end = !*delims ? 0x0 : *p; + do { + /* match number of delims */ + if (*pch == end) + idx++; + /* delim found, parse string then */ + if ((*pch == end && cnt == idx) || *pch == '\0') + return parsed_string (pch, str, 1); + /* advance to the first unescaped delim */ + if (*pch == '\\') + pch++; + } while (*pch++); + + return NULL; +} + +/* Move forward through the log string until a non-space (!isspace) + * char is found. */ +static void +find_alpha (char **str) +{ + char *s = *str; + while (*s) { + if (isspace (*s)) + s++; + else + break; + } + *str += s - *str; +} + +/* Format the broken-down time tm to a numeric date format. + * + * On error, or unable to format the given tm, 1 is returned. + * On success, a malloc'd format is returned. */ +#pragma GCC diagnostic ignored "-Wformat-nonliteral" +static int +set_date (char **fdate, struct tm tm) +{ + char buf[DATE_LEN] = ""; /* Ymd */ + + memset (buf, 0, sizeof (buf)); + if (strftime (buf, DATE_LEN, conf.date_num_format, &tm) <= 0) + return 1; + *fdate = xstrdup (buf); + + return 0; +} + +/* Format the broken-down time tm to a numeric time format. + * + * On error, or unable to format the given tm, 1 is returned. + * On success, a malloc'd format is returned. */ +static int +set_time (char **ftime, struct tm tm) +{ + char buf[TIME_LEN] = ""; + + memset (buf, 0, sizeof (buf)); + if (strftime (buf, TIME_LEN, "%H:%M:%S", &tm) <= 0) + return 1; + *ftime = xstrdup (buf); + + return 0; +} + +/* Determine the parsing specifier error and construct a message out + * of it. + * + * On success, a malloc'd error message is assigned to the log + * structure and 1 is returned. */ +static int +spec_err (GLogItem * logitem, int code, const char spec, const char *tkn) +{ + char *err = NULL; + const char *fmt = NULL; + + switch (code) { + case SPEC_TOKN_INV: + fmt = "Token '%s' doesn't match specifier '%%%c'"; + err = xmalloc (snprintf (NULL, 0, fmt, (tkn ? tkn : "-"), spec) + 1); + sprintf (err, fmt, (tkn ? tkn : "-"), spec); + break; + case SPEC_TOKN_SET: + fmt = "Token already set for '%%%c' specifier."; + err = xmalloc (snprintf (NULL, 0, fmt, spec) + 1); + sprintf (err, fmt, spec); + break; + case SPEC_TOKN_NUL: + fmt = "Token for '%%%c' specifier is NULL."; + err = xmalloc (snprintf (NULL, 0, fmt, spec) + 1); + sprintf (err, fmt, spec); + break; + case SPEC_SFMT_MIS: + fmt = "Missing braces '%s' and ignore chars for specifier '%%%c'"; + err = xmalloc (snprintf (NULL, 0, fmt, (tkn ? tkn : "-"), spec) + 1); + sprintf (err, fmt, (tkn ? tkn : "-"), spec); + break; + } + logitem->errstr = err; + + return 1; +} + +#pragma GCC diagnostic warning "-Wformat-nonliteral" + +/* Parse the log string given log format rule. + * + * On error, or unable to parse it, 1 is returned. + * On success, the malloc'd token is assigned to a GLogItem member. */ +static int +parse_specifier (GLogItem * logitem, char **str, const char *p, const char *end) +{ + struct tm tm; + const char *dfmt = conf.date_format; + const char *tfmt = conf.time_format; + + char *pch, *sEnd, *bEnd, *tkn = NULL; + double serve_secs = 0.0; + uint64_t bandw = 0, serve_time = 0; + long status = 0L; + + errno = 0; + memset (&tm, 0, sizeof (tm)); + + switch (*p) { + /* date */ + case 'd': + if (logitem->date) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + /* parse date format including dates containing spaces, + * i.e., syslog date format (Jul 15 20:10:56) */ + if (!(tkn = parse_string (&(*str), end, count_matches (dfmt, ' ') + 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + if (str_to_time (tkn, dfmt, &tm) != 0 || set_date (&logitem->date, tm) != 0) { + spec_err (logitem, SPEC_TOKN_INV, *p, tkn); + free (tkn); + return 1; + } + free (tkn); + break; + /* time */ + case 't': + if (logitem->time) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + if (!(tkn = parse_string (&(*str), end, 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + if (str_to_time (tkn, tfmt, &tm) != 0 || set_time (&logitem->time, tm) != 0) { + spec_err (logitem, SPEC_TOKN_INV, *p, tkn); + free (tkn); + return 1; + } + free (tkn); + break; + /* date/time as decimal, i.e., timestamps, ms/us */ + case 'x': + if (logitem->time && logitem->date) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + if (!(tkn = parse_string (&(*str), end, 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + if (str_to_time (tkn, tfmt, &tm) != 0 || set_date (&logitem->date, tm) != 0 + || set_time (&logitem->time, tm) != 0) { + spec_err (logitem, SPEC_TOKN_INV, *p, tkn); + free (tkn); + return 1; + } + break; + /* Virtual Host */ + case 'v': + if (logitem->vhost) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + tkn = parse_string (&(*str), end, 1); + if (tkn == NULL) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + logitem->vhost = tkn; + break; + /* remote user */ + case 'e': + if (logitem->userid) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + tkn = parse_string (&(*str), end, 1); + if (tkn == NULL) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + logitem->userid = tkn; + break; + /* remote hostname (IP only) */ + case 'h': + if (logitem->host) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + if (!(tkn = parse_string (&(*str), end, 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + if (invalid_ipaddr (tkn, &logitem->type_ip)) { + spec_err (logitem, SPEC_TOKN_INV, *p, tkn); + free (tkn); + return 1; + } + logitem->host = tkn; + break; + /* request method */ + case 'm': + if (logitem->method) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + if (!(tkn = parse_string (&(*str), end, 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + if (!extract_method (tkn)) { + spec_err (logitem, SPEC_TOKN_INV, *p, tkn); + free (tkn); + return 1; + } + logitem->method = tkn; + break; + /* request not including method or protocol */ + case 'U': + if (logitem->req) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + tkn = parse_string (&(*str), end, 1); + if (tkn == NULL || *tkn == '\0') + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + if ((logitem->req = decode_url (tkn)) == NULL) { + spec_err (logitem, SPEC_TOKN_INV, *p, tkn); + free (tkn); + return 1; + } + free (tkn); + break; + /* query string alone, e.g., ?param=goaccess&tbm=shop */ + case 'q': + if (logitem->qstr) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + tkn = parse_string (&(*str), end, 1); + if (tkn == NULL || *tkn == '\0') + return 0; + + if ((logitem->qstr = decode_url (tkn)) == NULL) { + spec_err (logitem, SPEC_TOKN_INV, *p, tkn); + free (tkn); + return 1; + } + free (tkn); + break; + /* request protocol */ + case 'H': + if (logitem->protocol) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + if (!(tkn = parse_string (&(*str), end, 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + if (!extract_protocol (tkn)) { + spec_err (logitem, SPEC_TOKN_INV, *p, tkn); + free (tkn); + return 1; + } + logitem->protocol = tkn; + break; + /* request, including method + protocol */ + case 'r': + if (logitem->req) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + if (!(tkn = parse_string (&(*str), end, 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + logitem->req = parse_req (tkn, &logitem->method, &logitem->protocol); + free (tkn); + break; + /* Status Code */ + case 's': + if (logitem->status) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + if (!(tkn = parse_string (&(*str), end, 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + status = strtol (tkn, &sEnd, 10); + if (tkn == sEnd || *sEnd != '\0' || errno == ERANGE || status < 100 || + status > 599) { + spec_err (logitem, SPEC_TOKN_INV, *p, tkn); + free (tkn); + return 1; + } + logitem->status = tkn; + break; + /* size of response in bytes - excluding HTTP headers */ + case 'b': + if (logitem->resp_size) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + if (!(tkn = parse_string (&(*str), end, 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + bandw = strtoull (tkn, &bEnd, 10); + if (tkn == bEnd || *bEnd != '\0' || errno == ERANGE) + bandw = 0; + logitem->resp_size = bandw; + conf.bandwidth = 1; + free (tkn); + break; + /* referrer */ + case 'R': + if (logitem->ref) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + + if (!(tkn = parse_string (&(*str), end, 1))) + tkn = alloc_string ("-"); + if (*tkn == '\0') { + free (tkn); + tkn = alloc_string ("-"); + } + if (strcmp (tkn, "-") != 0) { + extract_keyphrase (tkn, &logitem->keyphrase); + extract_referer_site (tkn, logitem->site); + + /* hide referrers from report */ + if (hide_referer (logitem->site)) { + logitem->site[0] = '\0'; + free (tkn); + } else + logitem->ref = tkn; + break; + } + logitem->ref = tkn; + + break; + /* user agent */ + case 'u': + if (logitem->agent) + return spec_err (logitem, SPEC_TOKN_SET, *p, NULL); + + tkn = parse_string (&(*str), end, 1); + if (tkn != NULL && *tkn != '\0') { + /* Make sure the user agent is decoded (i.e.: CloudFront) + * and replace all '+' with ' ' (i.e.: w3c) */ + logitem->agent = decode_url (tkn); + free (tkn); + break; + } else if (tkn != NULL && *tkn == '\0') { + free (tkn); + tkn = alloc_string ("-"); + } + /* must be null */ + else { + tkn = alloc_string ("-"); + } + logitem->agent = tkn; + break; + /* time taken to serve the request, in milliseconds as a decimal number */ + case 'L': + /* ignore it if we already have served time */ + if (logitem->serve_time) + return 0; + if (!(tkn = parse_string (&(*str), end, 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + serve_secs = strtoull (tkn, &bEnd, 10); + if (tkn == bEnd || *bEnd != '\0' || errno == ERANGE) + serve_secs = 0; + /* convert it to microseconds */ + logitem->serve_time = (serve_secs > 0) ? serve_secs * MILS : 0; + + contains_usecs (); /* set flag */ + free (tkn); + break; + /* time taken to serve the request, in seconds with a milliseconds + * resolution */ + case 'T': + /* ignore it if we already have served time */ + if (logitem->serve_time) + return 0; + if (!(tkn = parse_string (&(*str), end, 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + if (strchr (tkn, '.') != NULL) + serve_secs = strtod (tkn, &bEnd); + else + serve_secs = strtoull (tkn, &bEnd, 10); + + if (tkn == bEnd || *bEnd != '\0' || errno == ERANGE) + serve_secs = 0; + /* convert it to microseconds */ + logitem->serve_time = (serve_secs > 0) ? serve_secs * SECS : 0; + + contains_usecs (); /* set flag */ + free (tkn); + break; + /* time taken to serve the request, in microseconds */ + case 'D': + /* ignore it if we already have served time */ + if (logitem->serve_time) + return 0; + if (!(tkn = parse_string (&(*str), end, 1))) + return spec_err (logitem, SPEC_TOKN_NUL, *p, NULL); + + serve_time = strtoull (tkn, &bEnd, 10); + if (tkn == bEnd || *bEnd != '\0' || errno == ERANGE) + serve_time = 0; + logitem->serve_time = serve_time; + + contains_usecs (); /* set flag */ + free (tkn); + break; + /* move forward through str until not a space */ + case '~': + find_alpha (&(*str)); + break; + /* everything else skip it */ + default: + if ((pch = strchr (*str, p[1])) != NULL) + *str += pch - *str; + } + + return 0; +} + +/* Parse the special host specifier and extract the characters that + * need to be rejected when attempting to parse the XFF field. + * + * If no unable to find both curly braces (boundaries), NULL is returned. + * On success, the malloc'd reject set is returned. */ +static char * +extract_braces (char **p) +{ + char *b1 = NULL, *b2 = NULL, *ret = NULL, *s = *p; + int esc = 0; + ptrdiff_t len = 0; + + /* iterate over the log format */ + for (; *s; s++) { + if (*s == '\\') { + esc = 1; + } else if (*s == '{' && !esc) { + b1 = s; + } else if (*s == '}' && !esc) { + b2 = s; + break; + } else { + esc = 0; + } + } + + if ((!b1) || (!b2)) + return NULL; + if ((len = b2 - (b1 + 1)) <= 0) + return NULL; + + /* Found braces, extract 'reject' character set. */ + ret = xmalloc (len + 1); + memcpy (ret, b1 + 1, len); + ret[len] = '\0'; + (*p) = b2 + 1; + + return ret; +} + +/* Attempt to extract the client IP from an X-Forwarded-For (XFF) field. + * + * If no IP is found, 1 is returned. + * On success, the malloc'd token is assigned to a GLogItem->host and + * 0 is returned. */ +static int +find_xff_host (GLogItem * logitem, char **str, char **p) +{ + char *ptr = NULL, *tkn = NULL, *skips = NULL; + int invalid_ip = 1, len = 0, type_ip = TYPE_IPINV; + + if (!(skips = extract_braces (p))) + return spec_err (logitem, SPEC_SFMT_MIS, **p, "{}"); + + ptr = *str; + while (*ptr != '\0') { + if ((len = strcspn (ptr, skips)) == 0) { + len++, ptr++; + goto move; + } + + ptr += len; + /* extract possible IP */ + if (!(tkn = parsed_string (ptr, str, 0))) + break; + + invalid_ip = invalid_ipaddr (tkn, &type_ip); + /* done, already have IP and current token is not a host */ + if (logitem->host && invalid_ip) { + free (tkn); + break; + } + if (!logitem->host && !invalid_ip) { + logitem->host = xstrdup (tkn); + logitem->type_ip = type_ip; + } + free (tkn); + + move: + *str += len; + } + + free (skips); + + return logitem->host == NULL; +} + +/* Handle special specifiers. + * + * On error, or unable to parse it, 1 is returned. + * On success, the malloc'd token is assigned to a GLogItem member and + * 0 is returned. */ +static int +special_specifier (GLogItem * logitem, char **str, char **p) +{ + switch (**p) { + /* XFF remote hostname (IP only) */ + case 'h': + if (logitem->host) + return spec_err (logitem, SPEC_TOKN_SET, **p, NULL); + if (find_xff_host (logitem, str, p)) + return spec_err (logitem, SPEC_TOKN_NUL, 'h', NULL); + break; + } + + return 0; +} + +/* Iterate over the given log format. + * + * On error, or unable to parse it, 1 is returned. + * On success, the malloc'd token is assigned to a GLogItem member and + * 0 is returned. */ +static int +parse_format (GLogItem * logitem, char *str) +{ + char end[2 + 1] = { 0 }; + char *lfmt = conf.log_format, *p = NULL; + int perc = 0, tilde = 0, optdelim = 0; + + if (str == NULL || *str == '\0') + return 1; + + /* iterate over the log format */ + for (p = lfmt; *p; p++) { + /* advance to the first unescaped delim */ + if (*p == '\\') + continue; + if (*p == '%') { + perc++; + continue; + } + if (*p == '~' && perc == 0) { + tilde++; + continue; + } + + if (tilde && *p != '\0') { + if ((str == NULL) || (*str == '\0')) + return 0; + if (special_specifier (logitem, &str, &p) == 1) + return 1; + tilde = 0; + } + /* %h */ + else if (perc && *p != '\0') { + if ((str == NULL) || (*str == '\0')) + return 0; + + memset (end, 0, sizeof end); + optdelim = get_delim (end, p); + /* attempt to parse format specifiers */ + if (parse_specifier (logitem, &str, p, end) == 1) + return 1; + /* account for the extra delimiter */ + if (optdelim) + p++; + perc = 0; + } else if (perc && isspace (p[0])) { + return 1; + } else { + str++; + } + } + + return 0; +} + +/* Determine if the log string is valid and if it's not a comment. + * + * On error, or invalid, 1 is returned. + * On success, or valid line, 0 is returned. */ +static int +valid_line (char *line) +{ + /* invalid line */ + if ((line == NULL) || (*line == '\0')) + return 1; + /* ignore comments */ + if (*line == '#' || *line == '\n') + return 1; + + return 0; +} + +/* Determine if we need to lock the mutex. */ +static void +lock_spinner (void) +{ + if (parsing_spinner != NULL && parsing_spinner->state == SPN_RUN) + pthread_mutex_lock (&parsing_spinner->mutex); +} + +/* Determine if we need to unlock the mutex. */ +static void +unlock_spinner (void) +{ + if (parsing_spinner != NULL && parsing_spinner->state == SPN_RUN) + pthread_mutex_unlock (&parsing_spinner->mutex); +} + +/* Ignore request's query string. e.g., + * /index.php?timestamp=1454385289 */ +static void +strip_qstring (char *req) +{ + char *qmark; + if ((qmark = strchr (req, '?')) != NULL) { + if ((qmark - req) > 0) + *qmark = '\0'; + } +} + +/* Increment the overall bandwidth. */ +static void +inc_resp_size (GLog * glog, uint64_t resp_size) +{ + glog->resp_size += resp_size; +#ifdef TCB_BTREE + ht_insert_genstats_bw ("bandwidth", resp_size); +#endif +} + +/* Output all log errors stored during parsing. */ +void +output_logerrors (GLog * glog) +{ + int i; + + if (!glog->log_erridx) + return; + + fprintf (stderr, ERR_PARSED_NLINES, glog->log_erridx); + fprintf (stderr, "%s:\n\n", ERR_PARSED_NLINES_DESC); + + for (i = 0; i < glog->log_erridx; ++i) + fprintf (stderr, "%s\n", glog->errors[i]); + fprintf (stderr, "\n%s\n", ERR_FORMAT_HEADER); +} + +/* Free all log errors stored during parsing. */ +void +free_logerrors (GLog * glog) +{ + int i; + + if (!glog->log_erridx) + return; + + for (i = 0; i < glog->log_erridx; ++i) + free (glog->errors[i]); + free (glog->errors); + + glog->errors = NULL; + glog->log_erridx = 0; +} + +/* Ensure we have the following fields. */ +static int +verify_missing_fields (GLogItem * logitem) +{ + /* must have the following fields */ + if (logitem->host == NULL) + logitem->errstr = xstrdup ("IPv4/6 is required."); + else if (logitem->date == NULL) + logitem->errstr = xstrdup ("A valid date is required."); + else if (logitem->req == NULL) + logitem->errstr = xstrdup ("A request is required."); + + return logitem->errstr != NULL; +} + +/* Keep track of all invalid log strings. */ +static void +count_invalid (GLog * glog, const char *line) +{ + glog->invalid++; +#ifdef TCB_BTREE + ht_insert_genstats ("failed_requests", 1); +#endif + if (conf.invalid_requests_log) { + LOG_INVALID (("%s", line)); + } + + if (glog->items->errstr && glog->invalid < MAX_LOG_ERRORS) { + if (glog->errors == NULL) + glog->errors = xcalloc (MAX_LOG_ERRORS, sizeof (char *)); + glog->errors[glog->log_erridx++] = xstrdup (glog->items->errstr); + } +} + +/* Count down the number of invalids hits. + * Note: Upon performing a log test, invalid hits are counted, since + * no valid records were found, then we count down by the number of + * tests ran. +*/ +static void +uncount_invalid (GLog * glog) +{ + glog->invalid -= conf.num_tests; +#ifdef TCB_BTREE + ht_replace_genstats ("failed_requests", glog->invalid); +#endif +} + +/* Count down the number of processed hits. + * Note: Upon performing a log test, processed hits are counted, since + * no valid records were found, then we count down by the number of + * tests ran. +*/ +static void +uncount_processed (GLog * glog) +{ + glog->processed -= conf.num_tests; +#ifdef TCB_BTREE + ht_replace_genstats ("total_requests", glog->processed); +#endif +} + +/* Keep track of all valid log strings. */ +static void +count_valid (GLog * glog) +{ + lock_spinner (); + glog->valid++; +#ifdef TCB_BTREE + ht_insert_genstats ("valid_requests", 1); +#endif + unlock_spinner (); +} + +/* Keep track of all valid and processed log strings. */ +static void +count_process (GLog * glog) +{ + lock_spinner (); + glog->processed++; +#ifdef TCB_BTREE + ht_insert_genstats ("total_requests", 1); +#endif + unlock_spinner (); +} + +/* Keep track of all excluded log strings (IPs). + * + * If IP not range, 1 is returned. + * If IP is excluded, 0 is returned. */ +static int +excluded_ip (GLog * glog, GLogItem * logitem) +{ + if (conf.ignore_ip_idx && ip_in_range (logitem->host)) { + glog->excluded_ip++; +#ifdef TCB_BTREE + ht_insert_genstats ("excluded_ip", 1); +#endif + return 0; + } + return 1; +} + +/* Determine if the request is from a robot or spider and check if we + * need to ignore or show crawlers only. + * + * If the request line is not ignored, 0 is returned. + * If the request line is ignored, 1 is returned. */ +static int +handle_crawler (const char *agent) +{ + int bot = 0; + + if (!conf.ignore_crawlers && !conf.crawlers_only) + return 1; + + bot = is_crawler (agent); + return (conf.ignore_crawlers && bot) || (conf.crawlers_only && !bot) ? 0 : 1; +} + +/* A wrapper function to determine if the request is static. + * + * If the request is not static, 0 is returned. + * If the request is static, 1 is returned. */ +static int +is_static (const char *req) +{ + return verify_static_content (req); +} + +/* Determine if the request of the given status code needs to be + * ignored. + * + * If the status code is not within the ignore-array, 0 is returned. + * If the status code is within the ignore-array, 1 is returned. */ +static int +ignore_status_code (const char *status) +{ + if (conf.ignore_status_idx == 0) + return 0; + + if (str_inarray (status, conf.ignore_status, conf.ignore_status_idx) != -1) + return 1; + return 0; +} + +/* Determine if static file request should be ignored + * + * If the request line is not ignored, 0 is returned. + * If the request line is ignored, 1 is returned. */ +static int +ignore_static (const char *req) +{ + if (conf.ignore_statics && is_static (req)) + return 1; + return 0; +} + +/* Determine if the request status code is a 404. + * + * If the request is not a 404, 0 is returned. + * If the request is a 404, 1 is returned. */ +static int +is_404 (GLogItem * logitem) +{ + /* is this a 404? */ + if (logitem->status && !memcmp (logitem->status, "404", 3)) + return 1; + /* treat 444 as 404? */ + else if (logitem->status && !memcmp (logitem->status, "444", 3) && + conf.code444_as_404) + return 1; + return 0; +} + +/* A wrapper function to determine if a log line needs to be ignored. + * + * If the request line is not ignored, 0 is returned. + * If the request line is ignored, IGNORE_LEVEL_PANEL is returned. + * If the request line is only not counted as valid, IGNORE_LEVEL_REQ is returned. */ +static int +ignore_line (GLog * glog, GLogItem * logitem) +{ + if (excluded_ip (glog, logitem) == 0) + return IGNORE_LEVEL_PANEL; + if (handle_crawler (logitem->agent) == 0) + return IGNORE_LEVEL_PANEL; + if (ignore_referer (logitem->site)) + return IGNORE_LEVEL_PANEL; + if (ignore_status_code (logitem->status)) + return IGNORE_LEVEL_PANEL; + if (ignore_static (logitem->req)) + return conf.ignore_statics; // IGNORE_LEVEL_PANEL or IGNORE_LEVEL_REQ + + /* check if we need to remove the request's query string */ + if (conf.ignore_qstr) + strip_qstring (logitem->req); + + return 0; +} + +/* A wrapper function to insert a keymap string key. + * + * If the given key exists, its value is returned. + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +static int +insert_keymap (char *key, GModule module) +{ + return ht_insert_keymap (module, key); +} + +/* A wrapper function to insert a datamap int key and string value. */ +static void +insert_data (int nkey, const char *data, GModule module) +{ + ht_insert_datamap (module, nkey, data); +} + +/* A wrapper function to insert a uniqmap string key. + * + * If the given key exists, 0 is returned. + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +static int +insert_uniqmap (char *uniq_key, GModule module) +{ + return ht_insert_uniqmap (module, uniq_key); +} + +/* A wrapper function to insert a rootmap int key from the keymap + * store mapped to its string value. */ +static void +insert_rootmap (int root_nkey, const char *root, GModule module) +{ + ht_insert_rootmap (module, root_nkey, root); +} + +/* A wrapper function to insert a data int key mapped to the + * corresponding int root key. */ +static void +insert_root (int data_nkey, int root_nkey, GModule module) +{ + ht_insert_root (module, data_nkey, root_nkey); +} + +/* A wrapper function to increase hits counter from an int key. */ +static void +insert_hit (int data_nkey, GModule module) +{ + ht_insert_hits (module, data_nkey, 1); + ht_insert_meta_data (module, "hits", 1); +} + +/* A wrapper function to increase visitors counter from an int + * key. */ +static void +insert_visitor (int uniq_nkey, GModule module) +{ + ht_insert_visitor (module, uniq_nkey, 1); + ht_insert_meta_data (module, "visitors", 1); +} + +/* A wrapper function to increases bandwidth counter from an int + * key. */ +static void +insert_bw (int data_nkey, uint64_t size, GModule module) +{ + ht_insert_bw (module, data_nkey, size); + ht_insert_meta_data (module, "bytes", size); +} + +/* A wrapper call to increases cumulative time served counter + * from an int key. */ +static void +insert_cumts (int data_nkey, uint64_t ts, GModule module) +{ + ht_insert_cumts (module, data_nkey, ts); + ht_insert_meta_data (module, "cumts", ts); +} + +/* A wrapper call to insert the maximum time served counter from + * an int key. */ +static void +insert_maxts (int data_nkey, uint64_t ts, GModule module) +{ + ht_insert_maxts (module, data_nkey, ts); + ht_insert_meta_data (module, "maxts", ts); +} + +static void +insert_method (int nkey, const char *data, GModule module) +{ + ht_insert_method (module, nkey, data ? data : "---"); +} + +/* A wrapper call to insert a method given an int key and string + * value. */ +static void +insert_protocol (int nkey, const char *data, GModule module) +{ + ht_insert_protocol (module, nkey, data ? data : "---"); +} + +/* A wrapper call to insert an agent for a hostname given an int + * key and int value. */ +static void +insert_agent (int data_nkey, int agent_nkey, GModule module) +{ + ht_insert_agent (module, data_nkey, agent_nkey); +} + +/* The following generates a unique key to identity unique visitors. + * The key is made out of the IP, date, and user agent. + * Note that for readability, doing a simple snprintf/sprintf should + * suffice, however, memcpy is the fastest solution + * + * On success the new unique visitor key is returned */ +static char * +get_uniq_visitor_key (GLogItem * logitem) +{ + char *ua = NULL, *key = NULL; + size_t s1, s2, s3; + + ua = deblank (xstrdup (logitem->agent)); + + s1 = strlen (logitem->host); + s2 = strlen (logitem->date); + s3 = strlen (ua); + + /* includes terminating null */ + key = xcalloc (s1 + s2 + s3 + 3, sizeof (char)); + + memcpy (key, logitem->host, s1); + + key[s1] = '|'; + memcpy (key + s1 + 1, logitem->date, s2 + 1); + + key[s1 + s2 + 1] = '|'; + memcpy (key + s1 + s2 + 2, ua, s3 + 1); + + free (ua); + return key; +} + +/* The following generates a unique key to identity unique requests. + * The key is made out of the actual request, and if available, the + * method and the protocol. Note that for readability, doing a simple + * snprintf/sprintf should suffice, however, memcpy is the fastest + * solution + * + * On success the new unique request key is returned */ +static char * +gen_unique_req_key (GLogItem * logitem) +{ + char *key = NULL; + size_t s1 = 0, s2 = 0, s3 = 0, nul = 1, sep = 0; + + /* nothing to do */ + if (!conf.append_method && !conf.append_protocol) + return xstrdup (logitem->req); + /* still nothing to do */ + if (!logitem->method && !logitem->protocol) + return xstrdup (logitem->req); + + s1 = strlen (logitem->req); + if (logitem->method && conf.append_method) { + s2 = strlen (logitem->method); + nul++; + } + if (logitem->protocol && conf.append_protocol) { + s3 = strlen (logitem->protocol); + nul++; + } + + /* includes terminating null */ + key = xcalloc (s1 + s2 + s3 + nul, sizeof (char)); + /* append request */ + memcpy (key, logitem->req, s1); + + if (logitem->method && conf.append_method) { + key[s1] = '|'; + sep++; + memcpy (key + s1 + sep, logitem->method, s2 + 1); + } + if (logitem->protocol && conf.append_protocol) { + key[s1 + s2 + sep] = '|'; + sep++; + memcpy (key + s1 + s2 + sep, logitem->protocol, s3 + 1); + } + + return key; +} + +/* Append the query string to the request, and therefore, it modifies + * the original logitem->req */ +static void +append_query_string (char **req, const char *qstr) +{ + char *r; + size_t s1, s2, qm = 0; + + s1 = strlen (*req); + s2 = strlen (qstr); + + /* add '?' between the URL and the query string */ + if (*qstr != '?') + qm = 1; + + r = xmalloc (s1 + s2 + qm + 1); + memcpy (r, *req, s1); + if (qm) + r[s1] = '?'; + memcpy (r + s1 + qm, qstr, s2 + 1); + + free (*req); + *req = r; +} + +/* A wrapper to assign the given data key and the data item to the key + * data structure */ +static void +get_kdata (GKeyData * kdata, char *data_key, char *data) +{ + /* inserted in keymap */ + kdata->data_key = data_key; + /* inserted in datamap */ + kdata->data = data; +} + +/* Generate a visitor's key given the date specificity. For instance, + * if the specificity if set to hours, then a generated key would + * look like: 03/Jan/2016:09 */ +static void +set_spec_visitor_key (char **fdate, const char *ftime) +{ + size_t dlen = 0, tlen = 0; + char *key = NULL, *tkey = NULL, *pch = NULL; + + tkey = xstrdup (ftime); + if (conf.date_spec_hr && (pch = strchr (tkey, ':')) && (pch - tkey) > 0) + *pch = '\0'; + + dlen = strlen (*fdate); + tlen = strlen (tkey); + + key = xmalloc (dlen + tlen + 1); + memcpy (key, *fdate, dlen); + memcpy (key + dlen, tkey, tlen + 1); + + free (*fdate); + free (tkey); + *fdate = key; +} + +/* Generate a unique key for the visitors panel from the given logitem + * structure and assign it to the output key data structure. + * + * On error, or if no date is found, 1 is returned. + * On success, the date key is assigned to our key data structure. + */ +static int +gen_visitor_key (GKeyData * kdata, GLogItem * logitem) +{ + if (!logitem->date || !logitem->time) + return 1; + + /* Append time specificity to date */ + if (conf.date_spec_hr) + set_spec_visitor_key (&logitem->date, logitem->time); + + get_kdata (kdata, logitem->date, logitem->date); + + return 0; +} + +/* Generate a unique key for the requests panel from the given logitem + * structure and assign it to out key data structure. + * + * On success, the generated request key is assigned to our key data + * structure. + */ +static int +gen_req_key (GKeyData * kdata, GLogItem * logitem) +{ + if (logitem->req && logitem->qstr) + append_query_string (&logitem->req, logitem->qstr); + logitem->req_key = gen_unique_req_key (logitem); + + get_kdata (kdata, logitem->req_key, logitem->req); + + return 0; +} + +/* A wrapper to generate a unique key for the request panel. + * + * On error, or if the request is static or a 404, 1 is returned. + * On success, the generated request key is assigned to our key data + * structure. + */ +static int +gen_request_key (GKeyData * kdata, GLogItem * logitem) +{ + if (!logitem->req || logitem->is_404 || logitem->is_static) + return 1; + + return gen_req_key (kdata, logitem); +} + +/* A wrapper to generate a unique key for the request panel. + * + * On error, or if the request is not a 404, 1 is returned. + * On success, the generated request key is assigned to our key data + * structure. */ +static int +gen_404_key (GKeyData * kdata, GLogItem * logitem) +{ + if (logitem->req && logitem->is_404) + return gen_req_key (kdata, logitem); + return 1; +} + +/* A wrapper to generate a unique key for the request panel. + * + * On error, or if the request is not a static request, 1 is returned. + * On success, the generated request key is assigned to our key data + * structure. */ +static int +gen_static_request_key (GKeyData * kdata, GLogItem * logitem) +{ + if (logitem->req && logitem->is_static) + return gen_req_key (kdata, logitem); + return 1; +} + +/* A wrapper to generate a unique key for the virtual host panel. + * + * On error, 1 is returned. + * On success, the generated vhost key is assigned to our key data + * structure. */ +static int +gen_vhost_key (GKeyData * kdata, GLogItem * logitem) +{ + if (!logitem->vhost) + return 1; + + get_kdata (kdata, logitem->vhost, logitem->vhost); + + return 0; +} + +/* A wrapper to generate a unique key for the virtual host panel. + * + * On error, 1 is returned. + * On success, the generated userid key is assigned to our key data + * structure. */ +static int +gen_remote_user_key (GKeyData * kdata, GLogItem * logitem) +{ + if (!logitem->userid) + return 1; + + get_kdata (kdata, logitem->userid, logitem->userid); + + return 0; +} + +/* A wrapper to generate a unique key for the hosts panel. + * + * On error, 1 is returned. + * On success, the generated host key is assigned to our key data + * structure. */ +static int +gen_host_key (GKeyData * kdata, GLogItem * logitem) +{ + if (!logitem->host) + return 1; + + get_kdata (kdata, logitem->host, logitem->host); + + return 0; +} + +/* Generate a browser unique key for the browser's panel given a user + * agent and assign the browser type/category as a root element. + * + * On error, 1 is returned. + * On success, the generated browser key is assigned to our key data + * structure. */ +static int +gen_browser_key (GKeyData * kdata, GLogItem * logitem) +{ + char *agent = NULL; + char browser_type[BROWSER_TYPE_LEN] = ""; + + if (logitem->agent == NULL || *logitem->agent == '\0') + return 1; + + agent = xstrdup (logitem->agent); + logitem->browser = verify_browser (agent, browser_type); + logitem->browser_type = xstrdup (browser_type); + + /* e.g., Firefox 11.12 */ + kdata->data = logitem->browser; + kdata->data_key = logitem->browser; + + /* Firefox */ + kdata->root = logitem->browser_type; + kdata->root_key = logitem->browser_type; + + free (agent); + + return 0; +} + +/* Generate an operating system unique key for the OS' panel given a + * user agent and assign the OS type/category as a root element. + * + * On error, 1 is returned. + * On success, the generated OS key is assigned to our key data + * structure. */ +static int +gen_os_key (GKeyData * kdata, GLogItem * logitem) +{ + char *agent = NULL; + char os_type[OPESYS_TYPE_LEN] = ""; + + if (logitem->agent == NULL || *logitem->agent == '\0') + return 1; + + agent = xstrdup (logitem->agent); + logitem->os = verify_os (agent, os_type); + logitem->os_type = xstrdup (os_type); + + /* e.g., Linux,Ubuntu 10.12 */ + kdata->data = logitem->os; + kdata->data_key = logitem->os; + + /* Linux */ + kdata->root = logitem->os_type; + kdata->root_key = logitem->os_type; + + free (agent); + + return 0; +} + +/* A wrapper to generate a unique key for the referrers panel. + * + * On error, 1 is returned. + * On success, the generated referrer key is assigned to our key data + * structure. */ +static int +gen_referer_key (GKeyData * kdata, GLogItem * logitem) +{ + if (!logitem->ref) + return 1; + + get_kdata (kdata, logitem->ref, logitem->ref); + + return 0; +} + +/* A wrapper to generate a unique key for the referring sites panel. + * + * On error, 1 is returned. + * On success, the generated referring site key is assigned to our key data + * structure. */ +static int +gen_ref_site_key (GKeyData * kdata, GLogItem * logitem) +{ + if (logitem->site[0] == '\0') + return 1; + + get_kdata (kdata, logitem->site, logitem->site); + + return 0; +} + +/* A wrapper to generate a unique key for the keyphrases panel. + * + * On error, 1 is returned. + * On success, the generated keyphrase key is assigned to our key data + * structure. */ +static int +gen_keyphrase_key (GKeyData * kdata, GLogItem * logitem) +{ + if (!logitem->keyphrase) + return 1; + + get_kdata (kdata, logitem->keyphrase, logitem->keyphrase); + + return 0; +} + +/* A wrapper to generate a unique key for the geolocation panel. + * + * On error, 1 is returned. + * On success, the generated geolocation key is assigned to our key + * data structure. */ +#ifdef HAVE_GEOLOCATION +static int +gen_geolocation_key (GKeyData * kdata, GLogItem * logitem) +{ + char continent[CONTINENT_LEN] = ""; + char country[COUNTRY_LEN] = ""; + + if (extract_geolocation (logitem, continent, country) == 1) + return 1; + + if (country[0] != '\0') + logitem->country = xstrdup (country); + + if (continent[0] != '\0') + logitem->continent = xstrdup (continent); + + kdata->data_key = logitem->country; + kdata->data = logitem->country; + + kdata->root = logitem->continent; + kdata->root_key = logitem->continent; + + return 0; +} +#endif + +/* A wrapper to generate a unique key for the status code panel. + * + * On error, 1 is returned. + * On success, the generated status code key is assigned to our key + * data structure. */ +static int +gen_status_code_key (GKeyData * kdata, GLogItem * logitem) +{ + const char *status = NULL, *type = NULL; + + if (!logitem->status) + return 1; + + type = verify_status_code_type (logitem->status); + status = verify_status_code (logitem->status); + + kdata->data = (char *) status; + kdata->data_key = (char *) status; + + kdata->root = (char *) type; + kdata->root_key = (char *) type; + + return 0; +} + +/* Given a time string containing at least %H:%M, extract either the + * tenth of a minute or an hour. + * + * On error, the given string is not modified. + * On success, the conf specificity is extracted. */ +static void +parse_time_specificity_string (char *hmark, char *ftime) +{ + /* tenth of a minute specificity - e.g., 18:2 */ + if (conf.hour_spec_min && hmark[1] != '\0') { + hmark[2] = '\0'; + return; + } + + /* hour specificity (default) */ + if ((hmark - ftime) > 0) + *hmark = '\0'; +} + +/* A wrapper to generate a unique key for the time distribution panel. + * + * On error, 1 is returned. + * On success, the generated time key is assigned to our key data + * structure. */ +static int +gen_visit_time_key (GKeyData * kdata, GLogItem * logitem) +{ + char *hmark = NULL; + char hour[HRMI_LEN] = ""; /* %H:%M */ + if (!logitem->time) + return 1; + + /* if not a timestamp, then it must be a string containing the hour. + * this is faster than actual date conversion */ + if (!has_timestamp (conf.time_format) && + (hmark = strchr (logitem->time, ':'))) { + parse_time_specificity_string (hmark, logitem->time); + get_kdata (kdata, logitem->time, logitem->time); + return 0; + } + + /* otherwise it attempts to convert the date given a time format, + * though this is slower */ + memset (hour, 0, sizeof *hour); + if (convert_date (hour, logitem->time, conf.time_format, "%H:%M", HRMI_LEN) != + 0) + return 1; + + if (*hour == '\0') + return 1; + + if ((hmark = strchr (hour, ':'))) + parse_time_specificity_string (hmark, hour); + + free (logitem->time); + logitem->time = xstrdup (hour); + get_kdata (kdata, logitem->time, logitem->time); + + return 0; +} + +/* Determine if 404s need to be added to the unique visitors count. + * + * If it needs to be added, 0 is returned else 1 is returned. */ +static int +include_uniq (GLogItem * logitem) +{ + int u = conf.client_err_to_unique_count; + + if (!logitem->status || logitem->status[0] != '4' || + (u && logitem->status[0] == '4')) + return 1; + return 0; +} + +/* Convert two integers keys to to a string (concatenated). + * + * On success, the given numbers as a string are returned. */ +static char * +intkeys2str (int a, int b) +{ + char *s = xmalloc (snprintf (NULL, 0, "%d|%d", a, b) + 1); + sprintf (s, "%d|%d", a, b); + + return s; +} + +/* Determine which data metrics need to be set and set them. */ +static void +set_datamap (GLogItem * logitem, GKeyData * kdata, const GParse * parse) +{ + GModule module; + module = parse->module; + + /* insert data */ + parse->datamap (kdata->data_nkey, kdata->data, module); + + /* insert rootmap and root-data map */ + if (parse->rootmap) { + parse->rootmap (kdata->root_nkey, kdata->root, module); + insert_root (kdata->data_nkey, kdata->root_nkey, module); + } + /* insert hits */ + if (parse->hits) + parse->hits (kdata->data_nkey, module); + /* insert visitors */ + if (parse->visitor && kdata->uniq_nkey != 0) + parse->visitor (kdata->data_nkey, module); + /* insert bandwidth */ + if (parse->bw) + parse->bw (kdata->data_nkey, logitem->resp_size, module); + /* insert averages time served */ + if (parse->cumts) + parse->cumts (kdata->data_nkey, logitem->serve_time, module); + /* insert averages time served */ + if (parse->maxts) + parse->maxts (kdata->data_nkey, logitem->serve_time, module); + /* insert method */ + if (parse->method && conf.append_method) + parse->method (kdata->data_nkey, logitem->method, module); + /* insert protocol */ + if (parse->protocol && conf.append_protocol) + parse->protocol (kdata->data_nkey, logitem->protocol, module); + /* insert agent */ + if (parse->agent && conf.list_agents) + parse->agent (kdata->data_nkey, logitem->agent_nkey, module); +} + +/* Set data mapping and metrics. */ +static void +map_log (GLogItem * logitem, const GParse * parse, GModule module) +{ + GKeyData kdata; + char *uniq_key = NULL; + + new_modulekey (&kdata); + if (parse->key_data (&kdata, logitem) == 1) + return; + + /* each module requires a data key/value */ + if (parse->datamap && kdata.data_key) + kdata.data_nkey = insert_keymap (kdata.data_key, module); + + /* each module contains a uniq visitor key/value */ + if (parse->visitor && logitem->uniq_key && include_uniq (logitem)) { + uniq_key = intkeys2str (logitem->uniq_nkey, kdata.data_nkey); + /* unique key already exists? */ + kdata.uniq_nkey = insert_uniqmap (uniq_key, module); + free (uniq_key); + } + + /* root keys are optional */ + if (parse->rootmap && kdata.root_key) + kdata.root_nkey = insert_keymap (kdata.root_key, module); + + /* each module requires a root key/value */ + if (parse->datamap && kdata.data_key) + set_datamap (logitem, &kdata, parse); +} + +/* Process a log line and set the data into the corresponding data + * structure. */ +static void +process_log (GLogItem * logitem) +{ + GModule module; + const GParse *parse = NULL; + size_t idx = 0; + + /* Insert one unique visitor key per request to avoid the + * overhead of storing one key per module */ + logitem->uniq_nkey = ht_insert_unique_key (logitem->uniq_key); + + /* If we need to store user agents per IP, then we store them and retrieve + * its numeric key. + * It maintains two maps, one for key -> value, and another + * map for value -> key*/ + if (conf.list_agents) { + /* insert UA key and get a numeric value */ + logitem->agent_nkey = ht_insert_agent_key (logitem->agent); + /* insert a numeric key and map it to a UA string */ + ht_insert_agent_value (logitem->agent_nkey, logitem->agent); + } + + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + if (!(parse = panel_lookup (module))) + continue; + map_log (logitem, parse, module); + } +} + +/* Process a line from the log and store it accordingly taking into + * account multiple parsing options prior to setting data into the + * corresponding data structure. + * + * On success, 0 is returned */ +static int +pre_process_log (GLog * glog, char *line, int dry_run) +{ + GLogItem *logitem; + int ret = 0; + int ignorelevel = 0; + + /* soft ignore these lines */ + if (valid_line (line)) + return -1; + + count_process (glog); + logitem = init_log_item (glog); + /* Parse a line of log, and fill structure with appropriate values */ + if (parse_format (logitem, line) || verify_missing_fields (logitem)) { + ret = 1; + count_invalid (glog, line); + goto cleanup; + } + + /* agent will be null in cases where %u is not specified */ + if (logitem->agent == NULL) + logitem->agent = alloc_string ("-"); + + /* testing log only */ + if (dry_run) + goto cleanup; + + ignorelevel = ignore_line (glog, logitem); + /* ignore line */ + if (ignorelevel == IGNORE_LEVEL_PANEL) + goto cleanup; + + if (is_404 (logitem)) + logitem->is_404 = 1; + else if (is_static (logitem->req)) + logitem->is_static = 1; + + logitem->uniq_key = get_uniq_visitor_key (logitem); + + inc_resp_size (glog, logitem->resp_size); + process_log (logitem); + + /* don't ignore line but neither count as valid */ + if (ignorelevel != IGNORE_LEVEL_REQ) + count_valid (glog); + +cleanup: + free_glog (logitem); + + return ret; +} + +/* Entry point to process the given live from the log. + * + * On error, 1 is returned. + * On success or soft ignores, 0 is returned. */ +static int +read_line (GLog * glog, char *line, int *test, int *cnt, int dry_run) +{ + int ret = 0; + int tests = conf.num_tests; + + /* start processing log line */ + if ((ret = pre_process_log (glog, line, dry_run)) == 0 && *test) + *test = 0; + + /* soft ignores */ + if (ret == -1) + return 0; + + /* glog->processed can actually be less than conf.num_tests, so we make sure + * (cnt) compares to the right number */ + tests = MIN (conf.num_tests, glog->processed); + + /* reached num of lines to test and no valid records were found, log + * format is likely not matching */ + if (conf.num_tests && ++(*cnt) == tests && *test) { + uncount_processed (glog); + uncount_invalid (glog); + return 1; + } + + return 0; +} + +/* A replacement for GNU getline() to dynamically expand fgets buffer. + * + * On error, NULL is returned. + * On success, the malloc'd line is returned. */ +char * +fgetline (FILE * fp) +{ + char buf[LINE_BUFFER] = { 0 }; + char *line = NULL, *tmp = NULL; + size_t linelen = 0, len = 0; + + while (1) { + if (!fgets (buf, sizeof (buf), fp)) { + if (conf.process_and_exit && errno == EAGAIN) { + nanosleep ((const struct timespec[]) { { + 0, 100000000L}}, NULL); + continue; + } else + break; + } + + len = strlen (buf); + + /* overflow check */ + if (SIZE_MAX - len - 1 < linelen) + break; + + if ((tmp = realloc (line, linelen + len + 1)) == NULL) + break; + + line = tmp; + /* append */ + strcpy (line + linelen, buf); + linelen += len; + + if (feof (fp) || buf[len - 1] == '\n') + return line; + } + free (line); + + return NULL; +} + +/* Iterate over the log and read line by line (use GNU get_line to parse the + * whole line). + * + * On error, 1 is returned. + * On success, 0 is returned. */ +#ifdef WITH_GETLINE +static int +read_lines (FILE * fp, GLog ** glog, int dry_run) +{ + char *line = NULL; + int ret = 0, cnt = 0, test = conf.num_tests > 0 ? 1 : 0; + + while ((line = fgetline (fp)) != NULL) { + /* handle SIGINT */ + if (conf.stop_processing) + goto out; + if ((ret = read_line ((*glog), line, &test, &cnt, dry_run))) + goto out; + if (dry_run && NUM_TESTS == cnt) + goto out; + free (line); + } + + /* if no data was available to read from (probably from a pipe) and + * still in test mode, we simply return until data becomes available */ + if (!line && (errno == EAGAIN || errno == EWOULDBLOCK) && test) + return 0; + + return (line && test) || ret; + +out: + free (line); + return test || ret; +} +#endif + +/* Iterate over the log and read line by line (uses a buffer of fixed size). + * + * On error, 1 is returned. + * On success, 0 is returned. */ +#ifndef WITH_GETLINE +static int +read_lines (FILE * fp, GLog ** glog, int dry_run) +{ + char *s = NULL; + char line[LINE_BUFFER] = { 0 }; + int ret = 0, cnt = 0, test = conf.num_tests > 0 ? 1 : 0; + + while ((s = fgets (line, LINE_BUFFER, fp)) != NULL) { + /* handle SIGINT */ + if (conf.stop_processing) + break; + if ((ret = read_line ((*glog), line, &test, &cnt, dry_run))) + break; + if (dry_run && NUM_TESTS == cnt) + break; + } + + /* if no data was available to read from (probably from a pipe) and + * still in test mode, we simply return until data becomes available */ + if (!s && (errno == EAGAIN || errno == EWOULDBLOCK) && test) + return 0; + + return (s && test) || ret; +} +#endif + +/* Read the given log line by line and process its data. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +static int +read_log (GLog ** glog, const char *fn, int dry_run) +{ + FILE *fp = NULL; + int piping = 0; + + /* Ensure we have a valid pipe to read from stdin. Only checking for + * conf.read_stdin without verifying for a valid FILE pointer would certainly + * lead to issues. */ + if (fn[0] == '-' && fn[1] == '\0' && (*glog)->pipe) { + fp = (*glog)->pipe; + (*glog)->piping = piping = 1; + } + + /* make sure we can open the log (if not reading from stdin) */ + if (!piping && (fp = fopen (fn, "r")) == NULL) + FATAL ("Unable to open the specified log file. %s", strerror (errno)); + + /* read line by line */ + if (read_lines (fp, glog, dry_run)) { + if (!piping) + fclose (fp); + return 1; + } + + /* close log file if not a pipe */ + if (!piping) + fclose (fp); + + return 0; +} + +/* Entry point to parse the log line by line. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +int +parse_log (GLog ** glog, char *tail, int dry_run) +{ + const char *err_log = NULL; + int i; + + /* process tail data and return */ + if (tail != NULL) { + /* no line testing on tail */ + if (pre_process_log ((*glog), tail, dry_run)) + return 1; + return 0; + } + + /* verify that we have the required formats */ + if ((err_log = verify_formats ())) + FATAL ("%s", err_log); + + /* no data piped, no logs passed, load from disk only then */ + if (conf.load_from_disk && !conf.filenames_idx && !conf.read_stdin) { + (*glog)->load_from_disk_only = 1; + return 0; + } + + for (i = 0; i < conf.filenames_idx; ++i) { + if (read_log (glog, conf.filenames[i], dry_run)) { + fprintf (stderr, "%s\n", conf.filenames[i]); + return 1; + } + } + + return 0; +} + +/* Ensure we have valid hits + * + * On error, an array of pointers containing the error strings. + * On success, NULL is returned. */ +char ** +test_format (GLog * glog, int *len) +{ + char **errors = NULL; + int i; + + if (parse_log (&glog, NULL, 1) == 0) + goto clean; + + errors = xcalloc (glog->log_erridx, sizeof (char *)); + for (i = 0; i < glog->log_erridx; ++i) + errors[i] = xstrdup (glog->errors[i]); + *len = glog->log_erridx; + +clean: + free_logerrors (glog); + + return errors; +} diff --git a/src/goaccess++/src/parser.h b/src/goaccess++/src/parser.h new file mode 100644 index 0000000..e2b89c3 --- /dev/null +++ b/src/goaccess++/src/parser.h @@ -0,0 +1,185 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef PARSER_H_INCLUDED +#define PARSER_H_INCLUDED + +#define KEY_FOUND 1 +#define KEY_NOT_FOUND -1 +#define LINE_BUFFER 4096 /* read at most this num of chars */ +#define NUM_TESTS 20 /* test this many lines from the log */ +#define MAX_LOG_ERRORS 20 + +#define LINE_LEN 23 +#define ERROR_LEN 255 +#define REF_SITE_LEN 511 /* maximum length of a referring site */ + +#define SPEC_TOKN_SET 0x1 +#define SPEC_TOKN_NUL 0x2 +#define SPEC_TOKN_INV 0x3 +#define SPEC_SFMT_MIS 0x4 + +#include "commons.h" + +/* Log properties. Note: This is per line parsed */ +typedef struct GLogItem_ +{ + char *agent; + char *browser; + char *browser_type; + char *continent; + char *country; + char *date; + char *host; + char *keyphrase; + char *method; + char *os; + char *os_type; + char *protocol; + char *qstr; + char *ref; + char *req; + char *req_key; + char *status; + char *time; + char *uniq_key; + char *vhost; + char *userid; + + char site[REF_SITE_LEN + 1]; + + uint64_t resp_size; + uint64_t serve_time; + + int type_ip; + int is_404; + int is_static; + int uniq_nkey; + int agent_nkey; + + char *errstr; +} GLogItem; + +/* Overall parsed log properties */ +typedef struct GLog_ +{ + unsigned int excluded_ip; + unsigned int invalid; + unsigned int offset; + unsigned int processed; + unsigned int valid; + unsigned long long resp_size; + unsigned short load_from_disk_only; + unsigned short piping; + GLogItem *items; + + unsigned short log_erridx; + char **errors; + + FILE *pipe; +} GLog; + +/* Raw data field type */ +typedef enum +{ + INTEGER, + STRING +} GRawDataType; + +/* Raw Data extracted from table stores */ +typedef struct GRawDataItem_ +{ + int key; + union + { + char *svalue; + int ivalue; + } value; +} GRawDataItem; + +/* Raw Data per module */ +typedef struct GRawData_ +{ + GRawDataItem *items; /* data */ + GModule module; /* current module */ + GRawDataType type; /* raw data items type */ + int idx; /* first level index */ + int size; /* total num of items on ht */ +} GRawData; + +/* Each record contains a data value, i.e., Windows XP, and it may contain a + * root value, i.e., Windows, and a unique key which is the combination of + * date, IP and user agent */ +typedef struct GKeyData_ +{ + void *data; + void *data_key; + int data_nkey; + + void *root; + void *root_key; + int root_nkey; + + void *uniq_key; + int uniq_nkey; +} GKeyData; + +typedef struct GParse_ +{ + GModule module; + int (*key_data) (GKeyData * kdata, GLogItem * logitem); + + /* data field */ + void (*datamap) (int data_nkey, const char *data, GModule module); + void (*rootmap) (int root_nkey, const char *root, GModule module); + + /* metrics */ + void (*hits) (int data_nkey, GModule module); + void (*visitor) (int uniq_nkey, GModule module); + void (*bw) (int data_nkey, uint64_t size, GModule module); + void (*cumts) (int data_nkey, uint64_t ts, GModule module); + void (*maxts) (int data_nkey, uint64_t ts, GModule module); + void (*method) (int data_nkey, const char *method, GModule module); + void (*protocol) (int data_nkey, const char *proto, GModule module); + void (*agent) (int data_nkey, int agent_nkey, GModule module); +} GParse; + +char *fgetline (FILE * fp); +char **test_format (GLog * glog, int *len); +GLog *init_log (void); +GLogItem *init_log_item (GLog * glog); +GRawDataItem *new_grawdata_item (unsigned int size); +GRawData *new_grawdata (void); +int parse_log (GLog ** glog, char *tail, int dry_run); +void free_logerrors (GLog * glog); +void free_raw_data (GRawData * raw_data); +void output_logerrors (GLog * glog); +void reset_struct (GLog * glog); + +#endif diff --git a/src/goaccess++/src/parser.o b/src/goaccess++/src/parser.o new file mode 100644 index 0000000000000000000000000000000000000000..4c733e2f5315a180581fa8175e506eeab91e5e4e GIT binary patch literal 48848 zcmeIb4R}=5wf}z-BBX$sSYMjn;&rS+!&O2CQ3FMtArm-}K~e$5wY z-skuC`9IJ7|IfqBoc%fLtiATyd#}CEo}J-_^4QGmtSrYISv?N8*p-mF~L8x`u`ULQCm>NuN8+4lP4z$rcIE|y>aKa-zX zLduUHqFn16UjNL7|A~CpmJMW^QiT$%-bu+&zw0eWQO?_5pRvAvowk2w>1Wj+xh!&N zWI<&90@wR=p6k8mcE42+OV+o}>3uEH5=$w*g_ zyj>N2E01vkJs-f0ZuhQib;(V(x5m6TE4&@9w@Z<-ojGS+Ske7>*6hCNXI1oFmKF03 zv*?OebrSPxTcgQiD3kKu{*LP8`E=Sl80h(yQoSOKTy6kLo02SB_z+c|yDO)VWMLR` zoP&B;5c77qUaT;ev%pz}x6|#5Wo4yEMc|aM6H6`$&*^_srGUT z=k%SG1En3M<)Om|qU&O~hGd}UJzU4VF)zyb#F99(EZPC1lIK9u!QH)w1HFp|2M6J@ zW1THzI@?FydKIpMI~76IcB8zB(aB@!*4`&NrUEP^aH0ZxJ1X5|8SYxq8S_@55tPIE zI|@SmS6&^tDspw?8Y0*mIXsE)shFk4I$m0jk{oLsuP7lrE3|kbX5%P##G?Q;Gk-c-PgC0 z@i#pJr^1zEbf-}LFSX*+!9mf2hsgI2BR|_u{)FT|D*byqkdwYM@dcBUlR6&v1x|4y z3!;H7Z${=lBRPSdm*BDPBiV_H$401s;P$C{aJ|Rf zUE5IRK~;IK_im_PiBx#^7Vd$msDoUUp{@p0LD+fhtHUZf@Br73+xvvur<#3Cf4IB0 zQWkC?x{qvonA%C`aAZMfFw|e+J*P74>&$X%2id$-g}3i-S-9|u)MZeL^8Y`b-+^01 z{r9^5hw8e*Py2Zg;n*V`7G@R8fQ_xce#kx_C*k-7^qCU~iqj+mf0T5b`- z6;&^HKx+6g@5n`cD<_&hn$e-}@s<>&=2ATkt#j4&gh$pzE_M4<0C=brW>TcpEpPQ( zdnm5est#S}CUeFYDW~)l?gppe{yG}id+y!c9}OlJgE52>uKsvG zSYky*?fjDw(Gpkdh@?X+I@$pKt@ebt@o#w{;P%aE}y(6yo5uEzoj{@J{+Vz~% z^F*R-sK9TBULDU@UGKLKjZ_-cz1zB;cY5|d4B)td@@;a&8`{G>CiCH+8Hb~7 zS^0^_!B!S#&+$G5xDMd{NZ+M73o^<@>kvf(< z!~1n$(*@z4!NdtBCZq8Odb&}bz@}22Zr=(M%{x$i&zlahGp7K_U2fLZ4w;ui9uE7puOd6# zb2t$QY>H&ZyeHI95p|p^L;VokzRuK-ZuOX4D8HZ|hWcY)Q%yQ>BaJL31YCce+jlal z?|w5YswV+%Us-OfZ^|AuUbx9K5lj-Rx>lj#FGm;Aey-h9-aDAMWXpxP6Yg-m`RUOg zXA~9Ab-k^z39q2m)^M=4feo5s)~-bXoNB=?Rx;diktJq3cQz32_O z6;odd^fv1VFm&V<-CxhgBA22T)Fg`nV!r6@Q3`f$w+e{PF0=8RvGPOE?{&b&*F9OmH_!k`6L~ z-nGQKcjQOC{l=j@-)4jVtg8(M|GlaC#7Hu@<6;%P4`rhFe^GIjIPB23dELY??NL*o z1FJFa>6cW#$8=rj zbe!TQV}%89;aD{gbX)=V6=~n8_>AE)*4I=xMj41YL2u01hbCHPCcE=csc8RYc+x2^ zzzb$CfU6eh>!JPw|H#hJ^EqX|_o4SY*EOIh!2KP+yprP%(sZYz=U?e6QEh4`rhWte`RBnwGpX$O za(ZAvmEk;HQ)sW~dhZVOLi)h-X1=?iKJae;kZ0)5Au*sK)F0|ce_y2fM|EIAPGMj| zv@oCEg7j8GZ((|?RE3Cm{i+kuqwsj@KMm=~5a{*DH{ClrIXdWZIQiYp^aPSzQ9@y& zq{4d*K|<*gSG+$eg4kW+bd2wsUWf>e2gw3AIS*k%hYOl|E3b^SKIA(*Q^{;=I)wBnb7B0`c!e3?x)uBm()WF91LToXX5&7b21x{;Mf$Ugo=f#w?;4BQABIx#OtlXpcv%0Jj|T_MlVa$w z>s?h?TJPOo_)DeW@tr+|PmvXFFCGgLBk)-8HLN);!HJtZnJxr2jp=zJ&~rX!JfXei zq1O(aU61vkroz(Ry@B5MV0C%#YaKCK=5qVmv!dRsF+9zd1~$#kqT5E|HW=LXm#YFj zZ$ewwU&aS|ey>ih@7Ro613f=SUTKB@28CFm3iSL6G7*~Z270#PH1vcqG}iZsvc2A0 zt3H*zS3*Z%Q(0CIo(1OO9CmiC$X>aoM~MV_=(?)|T}&@cxgMerIT2I(cl%>~vBEHo z=c<~y`FUG20gBG51Di&44@9R=3*7u97BAdB^%xu2)bG~j+~{WQxnOWVj}MXV9eCWD ztvmuR^nQdjA-8)~2@3NHW(+tj!s*kbqPR9huzFxJSg6Emu18`d`8HX$2pe^tT zrkVvXFP{vi2cGA_OiaRjB8l}dntG@LA(cNQRWKwK9FoE+MdrRowE-Eh3QN2qg#}iT z3J*!SLsFGPQVWNqs)wW+hNL=&q*`T4O;3k_HE_ldKpk!fSZ@RBheCqmJgpc|ZxNGu zcbsxM7M|6*o|(|==Tp@}&qSqi3k~A5>n{z70Cj=T-qev#Xf7T`m3F{^hXXxH>OD_9 z+<-jHGTOl6w+08hKg{ZQlIky7nA;uB!D_?#5Wz#<@otj(cArY}ikp&hlVQxZH=Bx@ zs&DPgIevMuxsF;w3%UJEC@GZW1|Gb$r0*iM#c_M;y^Bk96Y)k+Yl2moX7(V~3Qdzr z-9rnG>F)>7_b6OYw@N*LvSBfmN}4)}%ZaWx0?*pH)5iyTt1*m_T%Wq8=i6Kkm31_^ zGSieX{?Zc%9%BQ&%hdx+7v&S>tT2>kQLyXj?|3e-<(Vxsh|*)Ver_E2&YOdSm`_i_O&AAJ_lf7-?wwh4 zymu-lAoeB-gZOIU`kfVh*JoAqU2T>ffMebvtS+0S2P|Nphnh(gmb!h~R($h-IPo}g zi+Xj1K{$;fc~Q)J@4%`0dF4^6%?e}|%Q~QO#u^|tF)p)x#b0fbx3c3Mz4Kj!_>7|9XsR%Adi>x|LliI-UuMwuaY^wPR{Gzrt) zq_SHtU52o%KymT5Z5U2^c7HTDXu1iiog6z5P7MyGo>h$r^$_UoL|?-!FV%)m^SrC( z>8WZEUB6_`HOMb*4(3+q;$2Yb_0p6vHILdtx_t+>v}5Trvz`#3(V;YRU3Y6WTAlV6 zsO>AuMia-lhSikRaUf>>Q1@4MmquPF89e3aRan zB_E*41$~`E?IqB=f(p~OvanQ@6xBJ9LiC_HauBtGg{45x!d%CB7*&9A>3&sGTDl?y zTp_n9STXfCiQ~GaIUQrw&D~SK8Vi&k)cq^wsa!Gp9=+=rC{kZJ8n>iA6#hn?RiicD zjUI;Tx(1@@sP^qQP+hN$qUIkqqua^&CIND7Qm&EY9!blo;0~3G5IrE;E=4aO(QiW( z&f$2{{pcDiA>DnLFV@PbTSyZin(K7o6ZERWO1#$$z@j(DRNkX)~)a3cgl{aa{x#YJGF z`{=00rQhHavHN$F4ouK3ATZ(1LK-In6YeTpk5An^s9_$#?7~zxa@m5~r8HtRMjY72 z6CQ1%HfczP$~hrZme+WwX_|2!as&U+UmuvHI@+@0LxIcH*`Yu_ zItz(R+8Vg=D!ArQ;Hs^MVu7;;DgqCGdZCUFroSrd?f$Bl3sWwp{h9uh-6GWvzPXR^fz`Jk56ORXO8jY0kk?~sK#_5K6`Rdtq z2YMaKy+D>b^(x9eogN!hJ9vPe>r|-SXm@2DM6X3q$+QE++X3A0S=zyH@fMMm@su9u+$t@%RLVU>a${L8nw*Ghc=AJ+Sp(+wJ-Pwu0fHDg^C_gQK8&TM z6N%8M{U%iER_i9OZiP${CKGseeR*IHqAJP9;P+^9Jl#M8ZSNZN13VISAqIxg23pXpGzcGsHM{uuq2WUB-(0gx0n2+gM zMyyXci`qeX^1Mj*k-@|iUfwn9PtmWzOAlhiQeR~DS9gCL=r~Z(y(@?1VpBit*xtRe zuqYdIFLEyC=CqcOKk!YAT&V|u)H-8e%kiNn=rL5y$nJaD%v13A66k#y6`h*)9$0!l zCFlDH>GZIYD*Tg(N8Zbssi0~#sRJJ2fMJRD^le%iZ6)30(12sHzA(Nw+(r9nid6Y=62yhGX+KTTmPyco%j$|EZtZ+E z(+l)m1`}cvu;j3ZI!y(oco%>PuEgh~SooT&AvJ^Cx^8F)zYlT2l>e)^PI0&A%Q&GH z{S1wFUU@Z@w|5Yb+862{Q}LLW+Jb=T4E*f(GzHhw8b51s#5Ql*gj?Y92vJ*4G=Af!fCfr}xg^N6M!X1giYPWB#hCGjw^O?-V=@FhV z-EU2pUdK3NybgcRL`gU1r&QAmqpiqxcP>Jx@%ufPXeht`E6q6I_seNq^~$m0fuh|E zXQggdqZpZN>3L^A`!}xc?WHMe>T>FU>G6I@zFQz~@;!uLfP9f-pm#^Enf(pvZsksD z>~Qw$DeW~-He^b>pQZ@IOldb_&{fqE#(NW0j-JyRmxIPo0W`5p&ouRlnwdJ9sidrw zz=TH%yHMW1gnPMC)>@TPihNDuMCG9Ut%1C*mnnyIdmd6RdVIeFL2bzRo{MsQrtux? znN*q6oIo!)u5UX z>B6anVtg1`vdB0BQ6~kdQ6I{yub_gE z|H9P1cQfOYtG`RmwQ}t1{~an3Q&+HKZR-=I_JxA0rDhZq>d(U%iRt zDwm%KiBY?zBi47;l}OSYf{u!1E(AGnR;B@$mhVD`7|=P zAeTn=p1t_KucCWZzLOZ|Chu4I(TY|e%3Bf;G$~WJFXu{k>;7XZx>ur!@JyonQDsk{ zhc+B~g6kp(C!?8yLm%Qb{z4E4(I0O-JuwM8i?8F87`*_xA9rD%O%rdC-SYq}{Mb zRas!XmAhiDIgF116`!b!$nf7E+%hN=eR;{H3p}xOGb03lO@Kc6&@bkBd^j5MB+=h zN|lU7d|yGVSJR&Eq?`m$v63{5z?H8dST;`o~Vd+m>9ssfI>F z26l{o9eZ&i_`djIHD3;k{ItGtP@o?O=)1Z+qzgGyQ_sTV*6csl*P5+b+FDq(<#c3V+6%Q++K8(c;a|qB zbfx_zs38A64WLHD$8qv-5I1f)lg#60l=&<#P5m3+jO#Q2t0H^{m6+O!x0r{$2^eB^ zL*m=@pzD<{Onp;{Kni2Nm~9KWB0bgi%EPHi5cYRT3@+K(OA#quzo|dato7&zqTb(8 z^B9Id=EHyN!*BKB%fVCM!kccl#$Br1se3SNS()qURN~U1PVVh@@w^cWlpjikG1*@I z(I9GZGrgg%Vwiyi=I)_QmF!%MDM37J?d&;GIYD_mb<@!na%Oq>E@njPjZe`)$!Eh_ z)bYZwIB_cO9hJVMBao_h`d%)z0dMJx`Y}xB*|9s-fo7fFe~Qh1tKV|+k$Lx6>}0`4 zwug?OblASE+C09F!rzE|O0%V4#Cw*Pl(CaW?$+!nEP#SgKf3t@EbT-B-`g2_0lO5` zx|#Rp7NuT%cQV;b2|G>;Y{CuGPg`E;K9q&^sa*0x;NQ2lhr2&Mp<_E%c@kU7dk=Sv zfIajLEafA=HLl*cMTdGU8n}RtrZa%*sh!i|0v>mzb<|Y))MYpsFtI z&j@z7sXrMqTY6QUETj?T9I9i^8eiCqhMUpPZ+QchcA2Zoyl`{ig035|=d&EUgRry} z4%1)n=r4AtJl?K)ukx!X+`zeLlPJ?{+C4P&WYQnF<@Nciq$q1j&=Lgf~nbJs~@_QM=naP9q2@9cxt4#G7uclu_V{F*L_9%%4oBH#2FT8|kW^=7lQfjp@l>LQu-5Z};u;`b^8R9X2O z93^h-`;2aR>TkQn)t$gRi9Y<-O3q^|Cf`RDnM;^*GyReFqhY7vyugE1CH1{8bOh99 zznyM>4J*_(QQ~4&qjBA-rE^=cDlRz5e^VC zUKkOZ@G)&em^u)+@gZ_$Ulf1ULmMhu)k;OK%E>H;Q22BEu(2xZ@$SFmw$D1eH3yLe zke&yyH)GVAa_8{YZ0xuKGYkKSp-a0~jyq*^qTWs7FRkWyAEb(rd&Z*`Nes5Dun>Pl zZA$dY9dCC6pZH*o?u4dtXl> zc~T5!E6MQHJ4!*Z?_$Vqq9_$B$Yp;Jl+$Lz=P4i5o}C9_DJe|xLVnjULREZJ24c_3TzsQ@i~|opCdZv z(Y2Y6rpIzOdEr0;Z4H0b(c6z%0NVDBToS=P7w@;J=P-91qF?O{{y?>7^#>q& zpCSsHJMc5eVn}MF#lKwj7!-K0lQ$;OHxT$nCh*`a^z{D3g3t@Jk0v=w?W1MyDv_KQ zsdEJ$ysX6AGxhl!Ui20?bi*+NEqM5WZTMp*^=BAlpZZ<{J2pt`f#>Sih4voULr(tx zkN=$>KxY{I-&rzUs=1Z(E9PE2&zV&|-*L+$QKxe5y!lS$g85FgJXSux+?jt#q^#U2 zn|txahmgaV6aXjHP#B1uD)|U2!)7p`6>f%lDMBGWV)zrqF+Lq?# zcr7l}Bx)O+%1h=}&aAi?Ip9R=nKQd=ZVb9BFL&n5y%bZ}xn;AR1sAK2OUo~r2g@cR z=lPdF>XP!xxtGj$%G~m@*>ho@I;prA;%PKz_GNP~nLV$P3|>$fjllX?WJY<+nNxnr zta4{YWL|l!;^OkO$~m(mW%Da8t(bqgGxw5c`6b$@*0z?``o?Ay3Mb2z=}VW?wltwQ zt=BqBTb9M0rk2_zPDiu)SQc+sYZNlk5{aam*HTBoJ0F5ag7 zIniC08ShRTKgXFkaiX)drZds*)OIYz`=VD*vrd$28jO-Ex}ysp@Z1eet`HP!{G z==K$oink|*;_>ayl#(gVlqpl3@pUW5*Etur1mW=d#>K(<#-@0%qdi{dl$1_8=iF)M zoafA`xi%P_8k}4*d5RM%KHDkFNKOlmZy)W9o>`NqX$r>M+FIIz4K?k-mfG5mHkjtL zx7AK+t!ZnIw-whqqenY!4#`&%sSAz|71jl*X3+9mYHDla?d`Zc4Pv87N*(iCmc*Nb zXN+$@BUslGZ*M*$5nM`bDA?W_uWhVvjJM(9`0=%8a8S|mHBD{kM%M=0m_+ManwnacQ%bcZ2+eG1LwyHT?v&l7@wUeLYlGLebhMGWNz~*gB^sB~ zy(GzM|3CLZ?Y#;PF$GthP6Bh`bN-~q9@vWaxgOY^^tm3`itxD}xu2_c$59KLpK~5*_2FB?`h0&G zeRlN}N1Rz@Wz&L13l?=WCpv;ti>DNqObm6XROtH2CB-FEiYHIdT-{3XhE^>oF3h@k zfrI$jPt3$Q`nr>jtm`guvO4p#zA|=H?m7fdbK@!?K4uBwIKP zYhrd9f0Di~J~#KeNZ-b+nu7g|y!>0UXXF*!GGazvurFsuUeVfPB6%e@jg01%c8{8s zS2<#H*66&_vb>T=UJ*nfid$yn<+@`?|9;k`)&y}*?EPU_E)QH2`C1I0IIpxKFMNGoDeP=e=Z((xX>4QE4?+63EBnf))r+AwoW z{ctTM43)XuA?VKmscvq`E>HUoRlvSOwPYVS+I85UT7=tTtfK0$mzzew$=x}f zrewHOidQGg(xwlR?V~onmSk_Dy6QeAnpdgX7KmtDs{P*2_nN*-`gSwh_}BE!L|c{m z%El;tITR3Z9IrnVD_|!3%~=*JgnXD8)vYdbl*&9OFIbURFh^G)$u)dNxpkjGt^oQr zv)lyAw>&TZrtEon6#MDgvp(0T@6+Fi&|!Q>^_D}y5y#c^hW6K;T{Ai_cjlOKyrUuF zeb$&Lw3BQJ%g!NLw8OR8s=R2wjcB}4Rbbk#Om(9F`T?<*+Z4x-OdZe4Tc4F(YgNju zF@?DIcFt!m5D#s;N-R^Dbb z!u`SQO~?Y_!HT41W2#9JPe`t%{xh6D6<5?)Lp}1XVXd7>jbxZ1Xts`db)3ftZU-Fm z&%)8NDU)@)y8>DL5U+{4U}uo~c+}L3Tr3_BEsPf@qaGVk5r)wS$VDsaQ8=hsibwc7<&1E+aR_;u?`I4Br}H&x$HYrGZTMNtt1Uj2`8tbJtS3GF z%unObE0`bTw9!vIyoEoRW&t;xJRx4IxFHSFFPJi=G z$7cQE{1)X`{y$a&YX5Xx!SZ3|8#Q(gvHU^iW{k{+zmz}ufy~s`iOjN<+XS#^L5Nkc~>&u$Xtzm(DQ8{ei!rne4Xzc z{o!n4Ud>#Mb-4CR=B*sO=Cb^L=6l$YlY)E!A0yO0q)eL5{tWpnhbtZF^(enO&~M29 z#$jqaz=bi)E7i6h$5C+|d>nWd^qc<3&C4lfPO9k0X<*y{xO%n$^2=H>-qgi=QkE##_}&%d?oXjEq){O*Dbz=IsFWaJZ@qBCyU?4{3DD1 zfccNqXGYU{=CsvN9$Ids(_zWq%ktS4|Ak5)-A?Gw8yvJB4twb=)SvKy+bx3j+LJtu zSMvC!;v=0J^_jUs8@C=I2`c1C<_? z9v_XSkC_h`z@J%aJR9l!y`^WA;-eh(!zkjOW0{v)^>sY!nQH0zGV>W0KZUvOXPFGf zGr!1^Ka=?t77sDk{V${EJmxx|48MT+sp>Ps%b7oE>DSMgBb{e0K9A-1Tl@;eM>!3a ze`;9%K})`Y`D+$$VXo^lW9KsF0ri>Tt5kZFL%-1?j~?b5EuLgO<19VjVXo^Tqv;Oj z+OHYDUhz@ReoOz4Sw5^jGxGPbJO+~?#{(=s(~>8l5yPwkJ_0$r?~?3ZAO4&Vf5nFn z`0%%V_#q$ukq^(tJZCujX}&ldKgEZi?!$|H_=P@vjt{T#;f+4L&4*v_!`J%oJAC+m z`0yP*{MSDGbszq&4X<~BR>4U zefUd0{Gbod#`Di`{yYi%ig+g9V}6jix%V9AxJeyq4F+dr%!AC$nmetd zkp3`pwFU$E%b9mES8Fifi@{A^Dg%D&^xQhd=1UxBKv?eE2>e{)!JD z@Zo><;e$T>1U#<}=g*)I|JWz4p5Y@;ziTv{{uw^J!iRs|hhOf)<34chAC@TYzFb3XiKAO4OHKkUOl_2IM@He9`Y(T9K8hX;N51Rs8m51;14!{8Jj_LS<5 zuGSWD`gI@qD_MR&Eo9*^Yl`1w?o88Mtt;ZR-AB&~AKvA|zs354)3tuJ#)#9~n0GP1 zOJ8=@gCFM{8pMY>%qKQI@-DK)@#d;!4cH)AwIqHmwoEoxwZ)gVB;r-HsVdDZf%2oS{vH1PcTieZ7zL|t#aw}_C!shu@+gXU3FucCX*f@5I8WVm-ei)Qs$|Yn z8m6jy&r^D)D#@uza;lcpGWx30f1Z*rRWhYYf2c&=h6VxE=V>9GfimJeC4@raYN=9J zs??QgMM}O@NtUX+LLsF)6jHLG5~Vg&!YOrYs6^cxD$$Z9N=K+f-(I40g-Wz-A$@yD zWgiOZ+e7;HkiIX(+3Nd3Q=O_=vAHuMv8uT{EJDp2wu;;H9 zdv%xAVm~mo4z#W2dZ)8iU+9EjT}LbGw7nIrKT%&*+pvUE%_0ez+J-jL*<8C+$tG%Q zmyl#teNAH%#A_4Rw#KU#p>frwQ;C+2)>gy?Vz{++QQH!1wQgKW{Y>jZNFaUK)2ccZ z`Vvww4?QqZrFI&NzG!+GDeoEkV@o=8QBcBa5joqI;rh8nHLM&1p?E zsGhpCBN6Yc;w{}nA)LL0oZHx1)f`{0yL4kag$a*2WPzD2Wa62waFhZ4~J< zq&a~|0JlIv)#A3A<*IBlQHAKfR5hk5T-IfWZm2`f9oR$P*xZQVi~W-3MBh|O~Xi*J{&g&^$>#KE+-d7Ais1XYzz@ny_<|U#cI+`0X^r%R>6kBJT5KA$R(Czq# zP3Rae%*{GPtL@U*VvWlQj4AlYbQN?sq+w!BTU*VwA{Pu4RK1xBr)-B3YP3Q?wNqtQ z<|fVHzz+0j?39LOtxdE`U)iGio>PxH#x8n2qUk-n?M^*y9zJ)9Q(xQE(oW*orQe2b z%e9~)K)ksQJB6M4Uy{!c!fzMr9k^jwRV(ercWw7hj4UX?TOhQoYc zVEBCIX5HSl^N7$d%Qc=9;IQROe0aSN?_o|KWT&y`heCb@xGC30!KHs5v-Ftq>UDAY z&S9$HVL!?cI}Gj#eHp-0y5^FHzig!~OqVeA}*bp<-8 zyt2Q1(TATRxU@ecxNJW&eE4j^WgM92!+V*NAE>Ds`~TJA=6k^>efVLazf0(ui05oN zjDDl%0_L`V>IGko`;0yG8)kHnp7ZfC{5HWa5d0T{UnuyQ{6IIWwaC}Y3(;hVApI-=m zr{MI<^>mQ_f5ywm=ko$2@gE8v6 z;eYbs*zKbG^luRQ-?rq9o;bru{&fMtl;eIjk?@3zA--k~le}UjD1;3m*>A6Vo zyM(;d^MK$|&#wi)QRrEA3KBSM|J=)*@|}&Bv2&B)F~PS8K1c9Z1($w)&*H|F4W%062)>fS0l7&L9#vi2ocf!=Dc#frIS77%#(L4I+VqxU}Jr+$Xp!*LI<&Qs~(&$anGSNZ_FIO8NT)e-PJdfapXNAFYV8n0HrvnT+;sI1()`J zL-5VG$JqHt!DapaS@4I1{MY^g2^^HKoVUyt{9#-(`oF>4^lP)8-(+#~eZk#AkF@`O zA3otsvPRo;4?a!4-(qg^eTymw$E`yCzmPWawP&fzs$7o z&-H?TD7f_77ba?bq+jYOVorWuCG?yv_@jc)5M26giQuwauL-_I==nu45;#nGO?|y& zaZ_J;lZMKhxILFS*)Q#h3;r0c8UHU6ykGF23NFW~7nvJ7ui|<+z63YpATIl30dulP z_Q%TwmvO8|aA|+iNB=q@FZKVskNgH7`KJZH7q%Mzd@Q)Mry>L)9CmpxW^R}FY9YS> z_Zj_hAur?q4T4MmJSzBBq33bIdj9@iKlmmO1%Z`r)gB%l7bf!R5TMUT~Rj8*|F{Dv|GXLSE*(PVm)2{`*4D z)q?+vke7Py6Y}2>@|%3*pAhm@LjD;a`9BKzY9arQk39B%se}A*9bS88=yZZP`F}fJ zre1Eanxtj{JR!UkO4S;Ab1VZ zrd-boPJS?Y-epd9J}%@>JQoQZ#CPIl^qk7vl-KYg!FLJyNrEpDyiDldEqIOKGT$Xa zkF@^>7C$%x%5eNb=y?KZW9LIcUfQ`$@LD1Ngy408?-4vM_=|$q3;qgo@~15CfRLwh z-5bFhj&}uLjI^=;u;9}EPX%uf^7-eHHeHW0-*L>T9;Kcl!5eYS&y5O>3 zyd}8o7as~P+yAG`?Rw1Ng#r^#O#44UaB1gP1efjn4Cc1}vxU6WbD`j}okxWpSzoh- zywr1r;MC4P!HbR>!DTyND!6RtZOm=^uNCq#-_=6?Y2;`6QJ;_e9fHgD`9q;cmiKNU zKTGKUxsaFb@FBrvJM0&F77INe3*Ibv_EaQrP>%am&rbMns~!SjT?^iNR8%l>Onv=I@Lvl)`fEtwAo*wUGV+Uf%vgQOg1 ziIA6Zeud!ILeA*FZq{vE;h`|w~OqhHD|@Zr5ae7)e`7x}&<_#J{@l%L60 z`sb75GF1vD5lxJ^CZff5Pc~7B_b6xA;Sx9N zwJf}j!Ruv~Gr!Mi`0LEg?|~S8fO!D{9EN|Qlj+~xGJF)v6ae+O@dRTWRrgIK9x~(>Psi@d&3IEdF&)w_4oj?X-9er@JiP$mul}PjGsj z#m)V#4Ns&d8Nh8ev$bW?_v3c z7GJ~M#C21@YnfMD^6QwJcyHuyW8PrN-_E?r;&(D{wfK7G35(ywywlelN>+ zSv>qz4SFoz#C(m#H?y9#7Jr2KI*YGoJ-1nW2g~1X@!ibtwD?oZ*IRrK^SdnmBImoo z;`>oTe51wpGr!;BC!DOoW{ZcJKVtDF=KU65&wPi)pJl$=;tucQdCKCSu$_A> zUc&OvT0Cc*2Ky|Y%lt))k7d5!;`z*9v-kg zdH!8w@e<}G7B|0>SZZJ$XFN}YT zo$D=mW9J5oo8On*Xz_e5*KUiO-w)kmaZ|4S7B}S@u(&DLL5rJmeQ0r0E{6(=!<5&Q zE7#(tT=^C^n67GjF2H)SgYbsx5g_t_F*nanv`{wcg^UTpKKI%C*trrd)C!CCk-s$(wTRv$*+P)B%f|-%&kiaby37 z77y||f^sg(O_#|YQ?6V};4s{jE8pU#Tm=^2$o(Q{aZ|1$i<|l~f5&R_&1XHXC0{*O z+gE9EQ(pbMn;H8}d8;jXQ{D!PoAS0=+?2P|;-|AegW9M#*SLbVo?yLcp&ONuiyJ!|EN<*H^Hx({ zV`rx&Z|v-{xUnk*0R$APQ`=SP5A!@Hm;GV#HS?%( z7SHGTMv2AE{3L2|)83jaZrbN<7C*@PAF;S;|NAU%`pf$kH~q`>cT=v7Jb#$N{lakb zJMyMK8g9m;J1u$hJMud$Zhn9BMT?u?-#ln>{Aiv!#*WmVCf^|QpvA+?OD*2Te7?oa z@7mvQaq~O%Ioy6tzUFu88!T>q*KfVW&F}Z!Z*jF*6-CO;waPVJr|I_y=`i`4-`#VH z+pk@ks9A(h{63KSY%phS@ur$$^%FV8>Qw#8Qt_hpcBdHsYbSmIitY&&<440}5czznGll-Achn8iiD}*f`Y||iomj0yX zLiuntq<_!-Oy(RWv@qVgIN$YDVd4mib2>d8ui^5q{-G8ObNi?KDGxh;+9pfP&OaCi z9OmFKoxVcbvWQJi6MbUtpKU2N_nXghpZiSpbPSBk2XAM4w%fE=fh|3?N z1*!gMs%YoG42<%p>+-0M=~PfcoSXa2XEzw#Ut-C1@%`L<(^pBB4)eKIoU04`b}!#A z8J(N^48Id66w2)S+sO9^jUay-yA7swTheLYzlZOyv~IAH>Te2%^M5HX2;WW@agcwh z@0 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) + +#include +#include +#include +#include +#include +#include + +#include "settings.h" + +#include "error.h" +#include "labels.h" +#include "util.h" +#include "xmalloc.h" + +static char **nargv; +static int nargc = 0; + +/* *INDENT-OFF* */ +static GEnum LOGTYPE[] = { + {"COMBINED" , COMBINED} , + {"VCOMBINED" , VCOMBINED} , + {"COMMON" , COMMON} , + {"VCOMMON" , VCOMMON} , + {"W3C" , W3C} , + {"SQUID" , SQUID} , + {"CLOUDFRONT" , CLOUDFRONT} , + {"CLOUDSTORAGE" , CLOUDSTORAGE} , + {"AWSELB" , AWSELB} , + {"AWSS3" , AWSS3} , +}; + +static const GPreConfLog logs = { + "%h %^[%d:%t %^] \"%r\" %s %b \"%R\" \"%u\"", /* NCSA */ + "%v:%^ %h %^[%d:%t %^] \"%r\" %s %b \"%R\" \"%u\"", /* NCSA + VHost */ + "%h %^[%d:%t %^] \"%r\" %s %b", /* CLF */ + "%v:%^ %h %^[%d:%t %^] \"%r\" %s %b", /* CLF+VHost */ + "%d %t %^ %m %U %q %^ %^ %h %u %R %s %^ %^ %L", /* W3C */ + "%d\\t%t\\t%^\\t%b\\t%h\\t%m\\t%^\\t%r\\t%s\\t%R\\t%u\\t%^", /* CloudFront */ + "\"%x\",\"%h\",%^,%^,\"%m\",\"%U\",\"%s\",%^,\"%b\",\"%D\",%^,\"%R\",\"%u\"", /* Cloud Storage */ + "%dT%t.%^ %^ %h:%^ %^ %T %^ %^ %^ %s %^ %b \"%r\" \"%u\"", /* AWS Elastic Load Balancing */ + "%^ %^ %^ %v %^: %x.%^ %~%L %h %^/%s %b %m %U", /* Squid Native */ + "%^ %v [%d:%t %^] %h %^\"%r\" %s %^ %b %^ %L %^ \"%R\" \"%u\"", /* Amazon S3 */ +}; + +static const GPreConfTime times = { + "%H:%M:%S", + "%f", /* Cloud Storage (usec) */ + "%s", /* Squid (sec) */ +}; + +static const GPreConfDate dates = { + "%d/%b/%Y", /* Apache */ + "%Y-%m-%d", /* W3C */ + "%f", /* Cloud Storage (usec) */ + "%s", /* Squid (sec) */ +}; +/* *INDENT-ON* */ + +/* Ignore the following options */ +static const char *ignore_cmd_opts[] = { + "help", + "storage", + "version", +}; + +/* Determine if the given command line option needs to be ignored. + * + * If needs to be ignored, 1 is returned. + * If not within the list of ignored command line options, 0 is returned. */ +static int +in_ignore_cmd_opts (const char *val) +{ + size_t i; + for (i = 0; i < ARRAY_SIZE (ignore_cmd_opts); i++) { + if (strstr (val, ignore_cmd_opts[i]) != NULL) + return 1; + } + return 0; +} + +/* Get the location of the configuration file. + * + * By default, it attempts to read it from the user supplied path, else it will + * try to open the global config file path (sysconfdir) or from the HOME + * environment variable (~/.goaccessrc). + * + * On success, the path to the configuration file is returned. */ +char * +get_config_file_path (void) +{ + char *upath = NULL, *rpath = NULL; + + /* determine which config file to open, default or custom */ + if (conf.iconfigfile != NULL) { + rpath = realpath (conf.iconfigfile, NULL); + if (rpath == NULL) + FATAL ("Unable to open the specified config file. %s", strerror (errno)); + return rpath; + } + + /* attempt to use the user's config file */ + upath = get_home (); + rpath = realpath (upath, NULL); + if (upath) { + free (upath); + } + + /* otherwise, fallback to global config file */ + if (rpath == NULL && conf.load_global_config) { + upath = get_global_config (); + rpath = realpath (upath, NULL); + if (upath) { + free (upath); + } + } + + return rpath; +} + +/* Use predefined static files when no config file is used. Note that + * the order in which are listed is from the most to the least common + * (most cases). */ +void +set_default_static_files (void) +{ + size_t i; + const char *exts[] = { + ".css", + ".js ", + ".jpg", + ".png", + ".gif", + ".ico", + ".jpeg", + ".pdf", + ".txt", + ".csv", + ".mpeg", + ".mpg", + ".swf", + ".woff", + ".woff2", + ".xls", + ".xlsx", + ".doc ", + ".docx", + ".ppt ", + ".pptx", + ".zip", + ".mp3", + ".mp4", + ".exe", + ".iso ", + ".gz ", + ".rar ", + ".svg ", + ".bmp ", + ".tar ", + ".tgz ", + ".tiff", + ".tif ", + ".ttf ", + ".flv ", + }; + + if (conf.static_file_idx > 0) + return; + + for (i = 0; i < ARRAY_SIZE (exts); i++) { + if (conf.static_file_max_len < strlen (exts[i])) + conf.static_file_max_len = strlen (exts[i]); + conf.static_files[conf.static_file_idx++] = exts[i]; + } +} + +/* Clean malloc'd log/date/time escaped formats. */ +void +free_formats (void) +{ + free (conf.log_format); + free (conf.date_format); + free (conf.date_num_format); + free (conf.spec_date_time_format); + free (conf.spec_date_time_num_format); + free (conf.time_format); +} + +/* Clean malloc'd command line arguments. */ +void +free_cmd_args (void) +{ + int i; + if (nargc == 0) + return; + for (i = 0; i < nargc; i++) + free (nargv[i]); + free (nargv); + free (conf.iconfigfile); +} + +/* Append extra value to argv */ +static void +append_to_argv (int *argc, char ***argv, char *val) +{ + char **_argv = xrealloc (*argv, (*argc + 2) * sizeof (*_argv)); + _argv[*argc] = val; + _argv[*argc + 1] = (char *) '\0'; + (*argc)++; + *argv = _argv; +} + +/* Parses the configuration file to feed getopt_long. + * + * On error, ENOENT error code is returned. + * On success, 0 is returned and config file enabled options are appended to + * argv. */ +int +parse_conf_file (int *argc, char ***argv) +{ + char line[MAX_LINE_CONF + 1]; + char *path = NULL, *val, *opt, *p; + FILE *file; + int i, n = 0; + size_t idx; + + /* assumes program name is on argv[0], though, it is not guaranteed */ + append_to_argv (&nargc, &nargv, xstrdup ((char *) *argv[0])); + + /* determine which config file to open, default or custom */ + path = get_config_file_path (); + if (path == NULL) + return ENOENT; + + /* could not open conf file, if so prompt conf dialog */ + if ((file = fopen (path, "r")) == NULL) { + free (path); + return ENOENT; + } + + while (fgets (line, sizeof line, file) != NULL) { + while (line[0] == ' ' || line[0] == '\t') + memmove (line, line + 1, strlen (line)); + n++; + if (line[0] == '\n' || line[0] == '\r' || line[0] == '#') + continue; + + /* key */ + idx = strcspn (line, " \t"); + if (strlen (line) == idx) + FATAL ("Malformed config key at line: %d", n); + + line[idx] = '\0'; + + /* make old config options backwards compatible by + * substituting underscores with dashes */ + while ((p = strpbrk (line, "_")) != NULL) + *p = '-'; + + /* Ignore the following options when reading the config file */ + if (in_ignore_cmd_opts (line)) + continue; + + /* value */ + val = line + (idx + 1); + idx = strspn (val, " \t"); + if (strlen (line) == idx) + FATAL ("Malformed config value at line: %d", n); + val = val + idx; + val = trim_str (val); + + if (strcmp ("false", val) == 0) + continue; + + /* set it as command line options */ + opt = xmalloc (snprintf (NULL, 0, "--%s", line) + 1); + sprintf (opt, "--%s", line); + + append_to_argv (&nargc, &nargv, opt); + if (strcmp ("true", val) != 0) + append_to_argv (&nargc, &nargv, xstrdup (val)); + } + + /* give priority to command line arguments */ + for (i = 1; i < *argc; i++) + append_to_argv (&nargc, &nargv, xstrdup ((char *) (*argv)[i])); + + *argc = nargc; + *argv = (char **) nargv; + + fclose (file); + + if (conf.iconfigfile == NULL) + conf.iconfigfile = xstrdup (path); + + free (path); + return 0; +} + +/* Get the enumerated log format given its equivalent format string. + * + * On error, -1 is returned. + * On success, the enumerated format is returned. */ +static int +get_log_format_item_enum (const char *str) +{ + return str2enum (LOGTYPE, ARRAY_SIZE (LOGTYPE), str); +} + +/* Determine the selected log format from the config file or command line + * option. + * + * On error, -1 is returned. + * On success, the index of the matched item is returned. */ +size_t +get_selected_format_idx (void) +{ + if (conf.log_format == NULL) + return -1; + if (strcmp (conf.log_format, logs.common) == 0) + return COMMON; + else if (strcmp (conf.log_format, logs.vcommon) == 0) + return VCOMMON; + else if (strcmp (conf.log_format, logs.combined) == 0) + return COMBINED; + else if (strcmp (conf.log_format, logs.vcombined) == 0) + return VCOMBINED; + else if (strcmp (conf.log_format, logs.w3c) == 0) + return W3C; + else if (strcmp (conf.log_format, logs.cloudfront) == 0) + return CLOUDFRONT; + else if (strcmp (conf.log_format, logs.cloudstorage) == 0) + return CLOUDSTORAGE; + else if (strcmp (conf.log_format, logs.awselb) == 0) + return AWSELB; + else if (strcmp (conf.log_format, logs.squid) == 0) + return SQUID; + else if (strcmp (conf.log_format, logs.awss3) == 0) + return AWSS3; + else + return -1; +} + +/* Determine the selected log format from the config file or command line + * option. + * + * On error, NULL is returned. + * On success, an allocated string containing the log format is returned. */ +char * +get_selected_format_str (size_t idx) +{ + char *fmt = NULL; + switch (idx) { + case COMMON: + fmt = alloc_string (logs.common); + break; + case VCOMMON: + fmt = alloc_string (logs.vcommon); + break; + case COMBINED: + fmt = alloc_string (logs.combined); + break; + case VCOMBINED: + fmt = alloc_string (logs.vcombined); + break; + case W3C: + fmt = alloc_string (logs.w3c); + break; + case CLOUDFRONT: + fmt = alloc_string (logs.cloudfront); + break; + case CLOUDSTORAGE: + fmt = alloc_string (logs.cloudstorage); + break; + case AWSELB: + fmt = alloc_string (logs.awselb); + break; + case SQUID: + fmt = alloc_string (logs.squid); + break; + case AWSS3: + fmt = alloc_string (logs.awss3); + break; + } + + return fmt; +} + +/* Determine the selected date format from the config file or command line + * option. + * + * On error, NULL is returned. + * On success, an allocated string containing the date format is returned. */ +char * +get_selected_date_str (size_t idx) +{ + char *fmt = NULL; + switch (idx) { + case COMMON: + case VCOMMON: + case COMBINED: + case VCOMBINED: + case AWSS3: + fmt = alloc_string (dates.apache); + break; + case AWSELB: + case CLOUDFRONT: + case W3C: + fmt = alloc_string (dates.w3c); + break; + case CLOUDSTORAGE: + fmt = alloc_string (dates.usec); + break; + case SQUID: + fmt = alloc_string (dates.sec); + break; + } + + return fmt; +} + +/* Determine the selected time format from the config file or command line + * option. + * + * On error, NULL is returned. + * On success, an allocated string containing the time format is returned. */ +char * +get_selected_time_str (size_t idx) +{ + char *fmt = NULL; + switch (idx) { + case AWSELB: + case CLOUDFRONT: + case COMBINED: + case COMMON: + case VCOMBINED: + case VCOMMON: + case W3C: + case AWSS3: + fmt = alloc_string (times.fmt24); + break; + case CLOUDSTORAGE: + fmt = alloc_string (times.usec); + break; + case SQUID: + fmt = alloc_string (times.sec); + break; + } + + return fmt; +} + +/* Determine if the log/date/time were set, otherwise exit the program + * execution. */ +const char * +verify_formats (void) +{ + if (conf.time_format == NULL || *conf.time_format == '\0') + return ERR_FORMAT_NO_TIME_FMT; + + if (conf.date_format == NULL || *conf.date_format == '\0') + return ERR_FORMAT_NO_DATE_FMT; + + if (conf.log_format == NULL || *conf.log_format == '\0') + return ERR_FORMAT_NO_LOG_FMT; + + return NULL; +} + +/* A wrapper function to concat the given specificity to the date + * format. */ +static char * +append_spec_date_format (const char *date_format, const char *spec_format) +{ + char *s = xmalloc (snprintf (NULL, 0, "%s%s", date_format, spec_format) + 1); + sprintf (s, "%s%s", date_format, spec_format); + + return s; +} + +/* Iterate over the given format and clean unwanted chars and keep all + * date/time specifiers such as %b%Y%d%M%S. + * + * On error NULL is returned. + * On success, a clean format containing only date/time specifiers is + * returned. */ +static char * +clean_date_time_format (const char *format) +{ + char *fmt = NULL, *pr = NULL, *pw = NULL; + int special = 0; + + if (format == NULL || *format == '\0') + return NULL; + + fmt = xstrdup (format); + pr = fmt; + pw = fmt; + while (*pr) { + *pw = *pr++; + if (*pw == '%' || special) { + special = !special; + pw++; + } + } + *pw = '\0'; + + return fmt; +} + +/* Determine if the given specifier character is an abbreviated type + * of date. + * + * If it is, 1 is returned, otherwise, 0 is returned. */ +static int +is_date_abbreviated (const char *fdate) +{ + if (strpbrk (fdate, "cDF")) + return 1; + + return 0; +} + +/* A wrapper to extract time specifiers from a time format. + * + * On error NULL is returned. + * On success, a clean format containing only time specifiers is + * returned. */ +static char * +set_format_time (void) +{ + char *ftime = NULL; + + if (has_timestamp (conf.date_format) || !strcmp ("%T", conf.time_format)) + ftime = xstrdup ("%H%M%S"); + else + ftime = clean_date_time_format (conf.time_format); + + return ftime; +} + +/* A wrapper to extract date specifiers from a date format. + * + * On error NULL is returned. + * On success, a clean format containing only date specifiers is + * returned. */ +static char * +set_format_date (void) +{ + char *fdate = NULL; + + if (has_timestamp (conf.date_format)) + fdate = xstrdup ("%Y%m%d"); + else + fdate = clean_date_time_format (conf.date_format); + + return fdate; +} + +/* Once we have a numeric date format, we attempt to read the time + * format and construct a date_time numeric specificity format (if any + * specificity is given). The result may look like Ymd[HM]. + * + * On success, the numeric date time specificity format is set. */ +static void +set_spec_date_time_num_format (void) +{ + char *buf = NULL, *tf = set_format_time (); + const char *df = conf.date_num_format; + + if (!df || !tf) + return; + + if (conf.date_spec_hr && strchr (tf, 'H')) + buf = append_spec_date_format (df, "%H"); + else + buf = xstrdup (df); + + conf.spec_date_time_num_format = buf; + free (tf); +} + +/* Set a human readable specificity date and time format. + * + * On success, the human readable date time specificity format is set. */ +static void +set_spec_date_time_format (void) +{ + char *buf = NULL; + const char *fmt = conf.spec_date_time_num_format; + int buflen = 0, flen = 0; + + if (!fmt) + return; + + flen = (strlen (fmt) * 2) + 1; + buf = xcalloc (flen, sizeof (char)); + + if (strchr (fmt, 'd')) + buflen += snprintf (buf + buflen, flen - buflen, "%%d/"); + if (strchr (fmt, 'm')) + buflen += snprintf (buf + buflen, flen - buflen, "%%b/"); + if (strchr (fmt, 'Y')) + buflen += snprintf (buf + buflen, flen - buflen, "%%Y"); + if (strchr (fmt, 'H')) + buflen += snprintf (buf + buflen, flen - buflen, ":%%H"); + + conf.spec_date_time_format = buf; +} + +/* Normalize the date format from the date format given by the user to + * Ymd so it can be sorted out properly afterwards. + * + * On error or unable to determine the format, 1 is returned. + * On success, the numeric date format as Ymd is set and 0 is + * returned. */ +static int +set_date_num_format (void) +{ + char *fdate = NULL, *buf = NULL; + int buflen = 0, flen = 0; + + fdate = set_format_date (); + if (!fdate) + return 1; + + if (is_date_abbreviated (fdate)) { + free (fdate); + conf.date_num_format = xstrdup ("%Y%m%d"); + return 0; + } + + flen = strlen (fdate) + 1; + buf = xcalloc (flen, sizeof (char)); + + if (strpbrk (fdate, "Yy")) + buflen += snprintf (buf + buflen, flen - buflen, "%%Y"); + if (strpbrk (fdate, "hbmB")) + buflen += snprintf (buf + buflen, flen - buflen, "%%m"); + if (strpbrk (fdate, "de")) + buflen += snprintf (buf + buflen, flen - buflen, "%%d"); + + conf.date_num_format = buf; + free (fdate); + + return buflen == 0 ? 1 : 0; +} + +/* If specificity is supplied, then determine which value we need to + * append to the date format. */ +void +set_spec_date_format (void) +{ + if (verify_formats ()) + return; + + if (conf.date_num_format) + free (conf.date_num_format); + if (conf.spec_date_time_format) + free (conf.spec_date_time_format); + if (conf.spec_date_time_num_format) + free (conf.spec_date_time_num_format); + + if (set_date_num_format () == 0) { + set_spec_date_time_num_format (); + set_spec_date_time_format (); + } +} + +/* Attempt to set the date format given a command line option + * argument. The supplied optarg can be either an actual format string + * or the enumerated value such as VCOMBINED */ +void +set_date_format_str (const char *oarg) +{ + char *fmt = NULL; + int type = get_log_format_item_enum (oarg); + + /* free date format if it was previously set by set_log_format_str() */ + if (conf.date_format) + free (conf.date_format); + + /* type not found, use whatever was given by the user then */ + if (type == -1) { + conf.date_format = unescape_str (oarg); + return; + } + + /* attempt to get the format string by the enum value */ + if ((fmt = get_selected_date_str (type)) == NULL) { + LOG_DEBUG (("Unable to set date format from enum: %s\n", oarg)); + return; + } + + conf.date_format = fmt; +} + +/* Attempt to set the time format given a command line option + * argument. The supplied optarg can be either an actual format string + * or the enumerated value such as VCOMBINED */ +void +set_time_format_str (const char *oarg) +{ + char *fmt = NULL; + int type = get_log_format_item_enum (oarg); + + /* free time format if it was previously set by set_log_format_str() */ + if (conf.time_format) + free (conf.time_format); + + /* type not found, use whatever was given by the user then */ + if (type == -1) { + conf.time_format = unescape_str (oarg); + return; + } + + /* attempt to get the format string by the enum value */ + if ((fmt = get_selected_time_str (type)) == NULL) { + LOG_DEBUG (("Unable to set time format from enum: %s\n", oarg)); + return; + } + + conf.time_format = fmt; +} + +/* Attempt to set the log format given a command line option argument. + * The supplied optarg can be either an actual format string or the + * enumerated value such as VCOMBINED */ +void +set_log_format_str (const char *oarg) +{ + char *fmt = NULL; + int type = get_log_format_item_enum (oarg); + + /* free log format if it was previously set */ + if (conf.log_format) + free (conf.log_format); + + /* type not found, use whatever was given by the user then */ + if (type == -1) { + conf.log_format = unescape_str (oarg); + return; + } + + /* attempt to get the format string by the enum value */ + if ((fmt = get_selected_format_str (type)) == NULL) { + LOG_DEBUG (("Unable to set log format from enum: %s\n", oarg)); + return; + } + + conf.log_format = unescape_str (fmt); + /* assume we are using the default date/time formats */ + set_time_format_str (oarg); + set_date_format_str (oarg); + free (fmt); +} diff --git a/src/goaccess++/src/settings.h b/src/goaccess++/src/settings.h new file mode 100644 index 0000000..8faf66c --- /dev/null +++ b/src/goaccess++/src/settings.h @@ -0,0 +1,237 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef SETTINGS_H_INCLUDED +#define SETTINGS_H_INCLUDED + +#include +#include "commons.h" + +#define MAX_LINE_CONF 512 +#define MAX_EXTENSIONS 128 +#define MAX_IGNORE_IPS 1024 + 128 +#define MAX_IGNORE_REF 64 +#define MAX_CUSTOM_COLORS 64 +#define MAX_IGNORE_STATUS 64 +#define MAX_OUTFORMATS 3 +#define MAX_FILENAMES 512 +#define NO_CONFIG_FILE "No config file used" + +typedef enum LOGTYPE +{ + COMBINED, + VCOMBINED, + COMMON, + VCOMMON, + W3C, + SQUID, + CLOUDFRONT, + CLOUDSTORAGE, + AWSELB, + AWSS3, +} GLogType; + +/* predefined log times */ +typedef struct GPreConfTime_ +{ + const char *fmt24; + const char *usec; + const char *sec; +} GPreConfTime; + +/* predefined log dates */ +typedef struct GPreConfDate_ +{ + const char *apache; + const char *w3c; + const char *usec; + const char *sec; +} GPreConfDate; + +/* predefined log formats */ +typedef struct GPreConfLog_ +{ + const char *combined; + const char *vcombined; + const char *common; + const char *vcommon; + const char *w3c; + const char *cloudfront; + const char *cloudstorage; + const char *awselb; + const char *squid; + const char *awss3; +} GPreConfLog; + +/* *INDENT-OFF* */ +/* All configuration properties */ +typedef struct GConf_ +{ + /* Array options */ + const char *colors[MAX_CUSTOM_COLORS]; /* colors */ + const char *enable_panels[TOTAL_MODULES]; /* array of panels to enable */ + const char *filenames[MAX_FILENAMES]; /* log files */ + const char *hide_referers[MAX_IGNORE_REF]; /* hide referrers from report */ + const char *ignore_ips[MAX_IGNORE_IPS]; /* array of ips to ignore */ + const char *ignore_panels[TOTAL_MODULES]; /* array of panels to ignore */ + const char *ignore_referers[MAX_IGNORE_REF]; /* referrers to ignore */ + const char *ignore_status[MAX_IGNORE_STATUS]; /* status to ignore */ + const char *output_formats[MAX_OUTFORMATS]; /* output format, e.g. , HTML */ + const char *sort_panels[TOTAL_MODULES]; /* sorting options for each panel */ + const char *static_files[MAX_EXTENSIONS]; /* static extensions */ + + /* Log/date/time formats */ + char *date_format; /* date format */ + char *date_num_format; /* numeric date format %Y%m%d */ + char *time_format; /* time format as given by the user */ + char *spec_date_time_format; /* date format w/ specificity */ + char *spec_date_time_num_format; /* numeric date format w/ specificity */ + char *log_format; /* log format */ + char *iconfigfile; /* config file path */ + char ***user_browsers_hash; /* custom list of browsers */ + + const char *debug_log; /* debug log path */ + const char *geoip_database; /* geoip db path */ + const char *html_custom_css; /* custom CSS */ + const char *html_custom_js; /* custom JS */ + const char *html_prefs; /* default HTML JSON preferences */ + const char *html_report_title; /* report title */ + const char *invalid_requests_log; /* invalid lines log path */ + const char *pidfile; /* daemonize pid file path */ + const char *browsers_file; /* browser's file path */ + + /* HTML real-time */ + const char *addr; /* IP address to bind to */ + const char *fifo_in; /* path FIFO in (reader) */ + const char *fifo_out; /* path FIFO out (writer) */ + const char *origin; /* WebSocket origin */ + const char *port; /* port to use */ + const char *sslcert; /* TLS/SSL path to certificate */ + const char *sslkey; /* TLS/SSL path to private key */ + const char *ws_url; /* WebSocket URL */ + + /* User flags */ + int store_accumulated_time; /* store accumulated processing time in tcb */ + int all_static_files; /* parse all static files */ + int anonymize_ip; /* anonymize ip addresses */ + int append_method; /* append method to the req key */ + int append_protocol; /* append protocol to the req key */ + int client_err_to_unique_count; /* count 400s as visitors */ + int code444_as_404; /* 444 as 404s? */ + int color_scheme; /* color scheme */ + int crawlers_only ; /* crawlers only */ + int daemonize; /* run program as a Unix daemon */ + int double_decode; /* need to double decode */ + int enable_html_resolver; /* html/json/csv resolver */ + int geo_db; /* legacy geoip db */ + int hl_header; /* highlight header on term */ + int ignore_crawlers; /* ignore crawlers */ + int ignore_qstr; /* ignore query string */ + int ignore_statics; /* ignore static files */ + int json_pretty_print; /* pretty print JSON data */ + int list_agents; /* show list of agents per host */ + int load_conf_dlg; /* load curses config dialog */ + int load_global_config; /* use global config file */ + int max_items; /* max number of items to output */ + int mouse_support; /* add curses mouse support */ + int no_color; /* no terminal colors */ + int no_column_names; /* don't show col names on termnal */ + int no_csv_summary; /* don't show overall metrics */ + int no_html_last_updated; /* don't show HTML last updated field */ + int no_parsing_spinner; /* disable parsing spinner */ + int no_progress; /* disable progress metrics */ + int no_tab_scroll; /* don't scroll dashboard on tab */ + int output_stdout; /* outputting to stdout */ + int process_and_exit; /* parse and exit without outputting */ + int real_os; /* show real OSs */ + int real_time_html; /* enable real-time HTML output */ + int skip_term_resolver; /* no terminal resolver */ + uint32_t num_tests; /* number of lines to test */ + uint64_t log_size; /* log size override */ + + /* Internal flags */ + int bandwidth; /* is there bandwidth within the req line */ + int date_spec_hr; /* date specificity - hour */ + int has_geocity; + int has_geocountry; + int hour_spec_min; /* hour specificity - min */ + int read_stdin; /* read from stdin */ + int serve_usecs; /* is there time served within req line */ + int stop_processing; /* stop all processing */ + int tailing_mode; /* in tailing-mode? */ + + /* Array indices */ + int color_idx; /* colors index */ + int enable_panel_idx; /* enable panels index */ + int filenames_idx; /* filenames index */ + int hide_referer_idx; /* hide referrers index */ + int ignore_ip_idx; /* ignored ips index */ + int ignore_panel_idx; /* ignored panels index */ + int ignore_referer_idx; /* ignored referrers index */ + int ignore_status_idx; /* ignore status index */ + int output_format_idx; /* output format index */ + int sort_panel_idx; /* sort panel index */ + int static_file_idx; /* static extensions index */ + int browsers_hash_idx; /* browsers hash index */ + + size_t static_file_max_len; + + /* TokyoCabinet */ + const char *db_path; /* db path to files */ + int64_t xmmap; /* size of the extra mapped memory */ + int cache_lcnum; /* max num of leaf nodes to cache */ + int cache_ncnum; /* max num of non-leaf nodes to cache */ + int compression; /* deflate or BZIP2 */ + int keep_db_files; /* persist parsed data into disk */ + int load_from_disk; /* load stored data */ + int tune_bnum; /* num of elems of the bucket array */ + int tune_lmemb; /* num of memb in each leaf page */ + int tune_nmemb; /* num of memb in each non-leaf page */ +} GConf; +/* *INDENT-ON* */ + +char *get_selected_date_str (size_t idx); +char *get_selected_format_str (size_t idx); +char *get_selected_time_str (size_t idx); +const char *verify_formats (void); +size_t get_selected_format_idx (void); +void set_date_format_str (const char *optarg); +void set_log_format_str (const char *optarg); +void set_spec_date_format (void); +void set_time_format_str (const char *optarg); + +extern GConf conf; + +char *get_config_file_path (void); +int parse_conf_file (int *argc, char ***argv); +void free_cmd_args (void); +void free_formats (void); +void set_default_static_files (void); + +#endif diff --git a/src/goaccess++/src/settings.o b/src/goaccess++/src/settings.o new file mode 100644 index 0000000000000000000000000000000000000000..040d79c22ef83f78ca4b1eda66fa3373bad772d0 GIT binary patch literal 23984 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 NAw8rHsl8eLe*v)K6N>-< literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/sha1.c b/src/goaccess++/src/sha1.c new file mode 100644 index 0000000..5bc4fec --- /dev/null +++ b/src/goaccess++/src/sha1.c @@ -0,0 +1,235 @@ +/* +SHA-1 in C +By Steve Reid +100% Public Domain + +Test Vectors (from FIPS PUB 180-1) +"abc" + A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D +"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" + 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 +A million repetitions of "a" + 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F +*/ + +/* #define LITTLE_ENDIAN * This should be #define'd if true. */ +#if __LITTLE_ENDIAN__ +#define LITTLE_ENDIAN +#endif +/* #define SHA1HANDSOFF * Copies data before messing with it. */ + +#include +#include + +#include "sha1.h" + +void SHA1Transform (uint32_t state[5], uint8_t buffer[64]); + +#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits)))) + +/* blk0() and blk() perform the initial expand. */ +/* I got the idea of expanding during the round function from SSLeay */ +#ifdef LITTLE_ENDIAN +#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \ + |(rol(block->l[i],8)&0x00FF00FF)) +#else +#define blk0(i) block->l[i] +#endif +#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \ + ^block->l[(i+2)&15]^block->l[i&15],1)) + +/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */ +#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30); +#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30); +#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30); +#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30); +#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30); + + +/* Hash a single 512-bit block. This is the core of the algorithm. */ + +void +SHA1Transform (uint32_t state[5], uint8_t buffer[64]) +{ + uint32_t a, b, c, d, e; + typedef union + { + uint8_t c[64]; + uint32_t l[16]; + } CHAR64LONG16; + CHAR64LONG16 *block; +#ifdef SHA1HANDSOFF + static uint8_t workspace[64]; + block = (CHAR64LONG16 *) workspace; + memcpy (block, buffer, 64); +#else + block = (CHAR64LONG16 *) buffer; +#endif + /* Copy context->state[] to working vars */ + a = state[0]; + b = state[1]; + c = state[2]; + d = state[3]; + e = state[4]; + /* 4 rounds of 20 operations each. Loop unrolled. */ + R0 (a, b, c, d, e, 0); + R0 (e, a, b, c, d, 1); + R0 (d, e, a, b, c, 2); + R0 (c, d, e, a, b, 3); + R0 (b, c, d, e, a, 4); + R0 (a, b, c, d, e, 5); + R0 (e, a, b, c, d, 6); + R0 (d, e, a, b, c, 7); + R0 (c, d, e, a, b, 8); + R0 (b, c, d, e, a, 9); + R0 (a, b, c, d, e, 10); + R0 (e, a, b, c, d, 11); + R0 (d, e, a, b, c, 12); + R0 (c, d, e, a, b, 13); + R0 (b, c, d, e, a, 14); + R0 (a, b, c, d, e, 15); + R1 (e, a, b, c, d, 16); + R1 (d, e, a, b, c, 17); + R1 (c, d, e, a, b, 18); + R1 (b, c, d, e, a, 19); + R2 (a, b, c, d, e, 20); + R2 (e, a, b, c, d, 21); + R2 (d, e, a, b, c, 22); + R2 (c, d, e, a, b, 23); + R2 (b, c, d, e, a, 24); + R2 (a, b, c, d, e, 25); + R2 (e, a, b, c, d, 26); + R2 (d, e, a, b, c, 27); + R2 (c, d, e, a, b, 28); + R2 (b, c, d, e, a, 29); + R2 (a, b, c, d, e, 30); + R2 (e, a, b, c, d, 31); + R2 (d, e, a, b, c, 32); + R2 (c, d, e, a, b, 33); + R2 (b, c, d, e, a, 34); + R2 (a, b, c, d, e, 35); + R2 (e, a, b, c, d, 36); + R2 (d, e, a, b, c, 37); + R2 (c, d, e, a, b, 38); + R2 (b, c, d, e, a, 39); + R3 (a, b, c, d, e, 40); + R3 (e, a, b, c, d, 41); + R3 (d, e, a, b, c, 42); + R3 (c, d, e, a, b, 43); + R3 (b, c, d, e, a, 44); + R3 (a, b, c, d, e, 45); + R3 (e, a, b, c, d, 46); + R3 (d, e, a, b, c, 47); + R3 (c, d, e, a, b, 48); + R3 (b, c, d, e, a, 49); + R3 (a, b, c, d, e, 50); + R3 (e, a, b, c, d, 51); + R3 (d, e, a, b, c, 52); + R3 (c, d, e, a, b, 53); + R3 (b, c, d, e, a, 54); + R3 (a, b, c, d, e, 55); + R3 (e, a, b, c, d, 56); + R3 (d, e, a, b, c, 57); + R3 (c, d, e, a, b, 58); + R3 (b, c, d, e, a, 59); + R4 (a, b, c, d, e, 60); + R4 (e, a, b, c, d, 61); + R4 (d, e, a, b, c, 62); + R4 (c, d, e, a, b, 63); + R4 (b, c, d, e, a, 64); + R4 (a, b, c, d, e, 65); + R4 (e, a, b, c, d, 66); + R4 (d, e, a, b, c, 67); + R4 (c, d, e, a, b, 68); + R4 (b, c, d, e, a, 69); + R4 (a, b, c, d, e, 70); + R4 (e, a, b, c, d, 71); + R4 (d, e, a, b, c, 72); + R4 (c, d, e, a, b, 73); + R4 (b, c, d, e, a, 74); + R4 (a, b, c, d, e, 75); + R4 (e, a, b, c, d, 76); + R4 (d, e, a, b, c, 77); + R4 (c, d, e, a, b, 78); + R4 (b, c, d, e, a, 79); + /* Add the working vars back into context.state[] */ + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; + state[4] += e; + /* Wipe variables */ + a = b = c = d = e = 0; +} + + +/* SHA1Init - Initialize new context */ + +void +SHA1Init (SHA1_CTX * context) +{ + /* SHA1 initialization constants */ + context->state[0] = 0x67452301; + context->state[1] = 0xEFCDAB89; + context->state[2] = 0x98BADCFE; + context->state[3] = 0x10325476; + context->state[4] = 0xC3D2E1F0; + context->count[0] = context->count[1] = 0; +} + + +/* Run your data through this. */ + +void +SHA1Update (SHA1_CTX * context, uint8_t * data, unsigned int len) +{ + unsigned int i, j; + + j = (context->count[0] >> 3) & 63; + if ((context->count[0] += len << 3) < (len << 3)) + context->count[1]++; + context->count[1] += (len >> 29); + if ((j + len) > 63) { + memcpy (&context->buffer[j], data, (i = 64 - j)); + SHA1Transform (context->state, context->buffer); + for (; i + 63 < len; i += 64) { + SHA1Transform (context->state, &data[i]); + } + j = 0; + } else + i = 0; + memcpy (&context->buffer[j], &data[i], len - i); +} + + +/* Add padding and return the message digest. */ + +void +SHA1Final (uint8_t digest[20], SHA1_CTX * context) +{ + uint32_t i, j; + uint8_t finalcount[8]; + + for (i = 0; i < 8; i++) { + finalcount[i] = (uint8_t) ((context->count[(i >= 4 ? 0 : 1)] + >> ((3 - (i & 3)) * 8)) & 255); /* Endian independent */ + } + SHA1Update (context, (uint8_t *) "\200", 1); + while ((context->count[0] & 504) != 448) { + SHA1Update (context, (uint8_t *) "\0", 1); + } + SHA1Update (context, finalcount, 8); /* Should cause a SHA1Transform() */ + for (i = 0; i < 20; i++) { + digest[i] = (uint8_t) + ((context->state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255); + } + /* Wipe variables */ + i = j = 0; + memset (context->buffer, 0, 64); + memset (context->state, 0, 20); + memset (context->count, 0, 8); + memset (&finalcount, 0, 8); +#ifdef SHA1HANDSOFF /* make SHA1Transform overwrite it's own static vars */ + SHA1Transform (context->state, context->buffer); +#endif +} diff --git a/src/goaccess++/src/sha1.h b/src/goaccess++/src/sha1.h new file mode 100644 index 0000000..cc07482 --- /dev/null +++ b/src/goaccess++/src/sha1.h @@ -0,0 +1,20 @@ +#ifndef SHA1_H_INCLUDED +#define SHA1_H_INCLUDED + +#include +#include + +// From http://www.mirrors.wiretapped.net/security/cryptography/hashes/sha1/sha1.c + +typedef struct +{ + uint32_t state[5]; + uint32_t count[2]; + uint8_t buffer[64]; +} SHA1_CTX; + +extern void SHA1Init (SHA1_CTX * context); +extern void SHA1Update (SHA1_CTX * context, uint8_t * data, uint32_t len); +extern void SHA1Final (uint8_t digest[20], SHA1_CTX * context); + +#endif // for #ifndef SHA1_H diff --git a/src/goaccess++/src/sha1.o b/src/goaccess++/src/sha1.o new file mode 100644 index 0000000000000000000000000000000000000000..5830f2cdf36e7a4edccef700928ffe7e6c23d00c GIT binary patch literal 7664 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 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include + +#include "error.h" +#include "settings.h" +#include "util.h" + +#include "sort.h" + +/* *INDENT-OFF* */ +const int sort_choices[][SORT_MAX_OPTS] = { + /* VISITORS */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, + /* REQUESTS */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, SORT_BY_PROT, SORT_BY_MTHD, -1}, + /* REQUESTS_STATIC */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, SORT_BY_PROT, SORT_BY_MTHD, -1}, + /* NOT_FOUND */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, SORT_BY_PROT, SORT_BY_MTHD, -1}, + /* HOSTS */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, + /* OS */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, + /* BROWSERS */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, + /* VISIT_TIMES */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, + /* VIRTUAL_HOSTS */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, + /* REFERRERS */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, + /* REFERRING_SITES */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, + /* KEYPHRASES */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, + /* STATUS_CODES */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, + /* REMOTE_USER */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, +#ifdef HAVE_GEOLOCATION + /* GEO_LOCATION */ + {SORT_BY_HITS, SORT_BY_VISITORS, SORT_BY_DATA, SORT_BY_BW, SORT_BY_AVGTS, SORT_BY_CUMTS, SORT_BY_MAXTS, -1}, +#endif +}; + +static GEnum FIELD[] = { + {"BY_HITS" , SORT_BY_HITS } , + {"BY_VISITORS" , SORT_BY_VISITORS } , + {"BY_DATA" , SORT_BY_DATA } , + {"BY_BW" , SORT_BY_BW } , + {"BY_AVGTS" , SORT_BY_AVGTS } , + {"BY_CUMTS" , SORT_BY_CUMTS } , + {"BY_MAXTS" , SORT_BY_MAXTS } , + {"BY_PROT" , SORT_BY_PROT } , + {"BY_MTHD" , SORT_BY_MTHD } , +}; + +static GEnum ORDER[] = { + {"ASC" , SORT_ASC } , + {"DESC" , SORT_DESC } , +}; + +GSort module_sort[TOTAL_MODULES] = { + {VISITORS , SORT_BY_DATA , SORT_DESC } , + {REQUESTS , SORT_BY_HITS , SORT_DESC } , + {REQUESTS_STATIC , SORT_BY_HITS , SORT_DESC } , + {NOT_FOUND , SORT_BY_HITS , SORT_DESC } , + {HOSTS , SORT_BY_HITS , SORT_DESC } , + {OS , SORT_BY_HITS , SORT_DESC } , + {BROWSERS , SORT_BY_HITS , SORT_DESC } , + {VISIT_TIMES , SORT_BY_DATA , SORT_ASC } , + {VIRTUAL_HOSTS , SORT_BY_HITS , SORT_DESC } , + {REFERRERS , SORT_BY_HITS , SORT_DESC } , + {REFERRING_SITES , SORT_BY_HITS , SORT_DESC } , + {KEYPHRASES , SORT_BY_HITS , SORT_DESC } , + {STATUS_CODES , SORT_BY_HITS , SORT_DESC } , + {REMOTE_USER , SORT_BY_HITS , SORT_DESC } , +#ifdef HAVE_GEOLOCATION + {GEO_LOCATION , SORT_BY_HITS , SORT_DESC } , +#endif +}; +/* *INDENT-ON* */ + +/* Sort an array of strings ascending */ +int +strcmp_asc (const void *a, const void *b) +{ + return strcmp (*((char **) a), *((char **) b)); +} + +/* Sort 'data' metric ascending */ +static int +cmp_data_asc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + return strcmp (ia->metrics->data, ib->metrics->data); +} + +/* Sort 'data' metric descending */ +static int +cmp_data_desc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + return strcmp (ib->metrics->data, ia->metrics->data); +} + +/* Sort 'hits' metric descending */ +static int +cmp_num_desc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + int va = ia->metrics->hits; + int vb = ib->metrics->hits; + + return (va < vb) - (va > vb); +} + +/* Sort 'hits' metric ascending */ +static int +cmp_num_asc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + int va = ia->metrics->hits; + int vb = ib->metrics->hits; + + return (va > vb) - (va < vb); +} + +/* Sort 'visitors' metric descending */ +static int +cmp_vis_desc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + int va = ia->metrics->visitors; + int vb = ib->metrics->visitors; + + return (va < vb) - (va > vb); +} + +/* Sort 'visitors' metric ascending */ +static int +cmp_vis_asc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + int va = ia->metrics->visitors; + int vb = ib->metrics->visitors; + + return (va > vb) - (va < vb); +} + +/* Sort GRawDataItem value descending */ +static int +cmp_raw_num_desc (const void *a, const void *b) +{ + const GRawDataItem *ia = a; + const GRawDataItem *ib = b; + + int va = ia->value.ivalue; + int vb = ib->value.ivalue; + + return (va < vb) - (va > vb); +} + +/* Sort GRawDataItem value descending */ +static int +cmp_raw_str_desc (const void *a, const void *b) +{ + const GRawDataItem *ia = a; + const GRawDataItem *ib = b; + + return strcmp (ib->value.svalue, ia->value.svalue); +} + +/* Sort 'bandwidth' metric descending */ +static int +cmp_bw_desc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + uint64_t va = ia->metrics->bw.nbw; + uint64_t vb = ib->metrics->bw.nbw; + + return (va < vb) - (va > vb); +} + +/* Sort 'bandwidth' metric ascending */ +static int +cmp_bw_asc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + uint64_t va = ia->metrics->bw.nbw; + uint64_t vb = ib->metrics->bw.nbw; + + return (va > vb) - (va < vb); +} + +/* Sort 'avgts' metric descending */ +static int +cmp_avgts_desc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + uint64_t va = ia->metrics->avgts.nts; + uint64_t vb = ib->metrics->avgts.nts; + + return (va < vb) - (va > vb); +} + +/* Sort 'avgts' metric ascending */ +static int +cmp_avgts_asc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + uint64_t va = ia->metrics->avgts.nts; + uint64_t vb = ib->metrics->avgts.nts; + + return (va > vb) - (va < vb); +} + +/* Sort 'cumts' metric descending */ +static int +cmp_cumts_desc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + uint64_t va = ia->metrics->cumts.nts; + uint64_t vb = ib->metrics->cumts.nts; + + return (va < vb) - (va > vb); +} + +/* Sort 'cumts' metric ascending */ +static int +cmp_cumts_asc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + uint64_t va = ia->metrics->cumts.nts; + uint64_t vb = ib->metrics->cumts.nts; + + return (va > vb) - (va < vb); +} + +/* Sort 'maxts' metric descending */ +static int +cmp_maxts_desc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + uint64_t va = ia->metrics->maxts.nts; + uint64_t vb = ib->metrics->maxts.nts; + + return (va < vb) - (va > vb); +} + +/* Sort 'maxts' metric ascending */ +static int +cmp_maxts_asc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + + uint64_t va = ia->metrics->maxts.nts; + uint64_t vb = ib->metrics->maxts.nts; + + return (va > vb) - (va < vb); +} + +/* Sort 'protocol' metric ascending */ +static int +cmp_proto_asc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + return strcmp (ia->metrics->protocol, ib->metrics->protocol); +} + +/* Sort 'protocol' metric descending */ +static int +cmp_proto_desc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + return strcmp (ib->metrics->protocol, ia->metrics->protocol); +} + +/* Sort 'method' metric ascending */ +static int +cmp_mthd_asc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + return strcmp (ia->metrics->method, ib->metrics->method); +} + +/* Sort 'method' metric descending */ +static int +cmp_mthd_desc (const void *a, const void *b) +{ + const GHolderItem *ia = a; + const GHolderItem *ib = b; + return strcmp (ib->metrics->method, ia->metrics->method); +} + +/* Given a string sort field, get the enum field value. + * + * On error, -1 is returned. + * On success, the enumerated field value is returned. */ +int +get_sort_field_enum (const char *str) +{ + return str2enum (FIELD, ARRAY_SIZE (FIELD), str); +} + +/* Given a string sort order, get the enum order value. + * + * On error, -1 is returned. + * On success, the enumerated order value is returned. */ +int +get_sort_order_enum (const char *str) +{ + return str2enum (ORDER, ARRAY_SIZE (ORDER), str); +} + +/* Given a GSortOrder enum value, return the corresponding string. + * + * The string corresponding to the enumerated order value is returned. */ +const char * +get_sort_order_str (GSortOrder order) +{ + return ORDER[order].str; +} + +/* Given a GSortField enum value, return the corresponding string. + * + * The string corresponding to the enumerated field value is returned. */ +const char * +get_sort_field_str (GSortField field) +{ + return FIELD[field].str; +} + +/* Given a GSortField enum value, return the corresponding key. + * + * The key corresponding to the enumerated field value is returned. */ +const char * +get_sort_field_key (GSortField field) +{ + static const char *field2key[][2] = { + {"BY_HITS", "hits"}, + {"BY_VISITORS", "visitors"}, + {"BY_DATA", "data"}, + {"BY_BW", "bytes"}, + {"BY_AVGTS", "avgts"}, + {"BY_CUMTS", "cumts"}, + {"BY_MAXTS", "maxts"}, + {"BY_PROT", "protocol"}, + {"BY_MTHD", "method"}, + }; + + return field2key[field][1]; +} + +/* Set the initial metric sort per module/panel. + * + * On error, function returns. + * On success, panel metrics are sorted. */ +void +set_initial_sort (const char *smod, const char *sfield, const char *ssort) +{ + int module, field, order; + if ((module = get_module_enum (smod)) == -1) + return; + + if ((field = get_sort_field_enum (sfield)) == -1) + return; + if ((order = get_sort_order_enum (ssort)) == -1) + return; + if (!can_sort_module (module, field)) + return; + + module_sort[module].field = field; + module_sort[module].sort = order; +} + +/* Determine if module/panel metric can be sorted. + * + * On error or if metric can't be sorted, 0 is returned. + * On success, 1 is returned. */ +int +can_sort_module (GModule module, int field) +{ + int i, can_sort = 0; + for (i = 0; -1 != sort_choices[module][i]; i++) { + if (sort_choices[module][i] != field) + continue; + if (SORT_BY_AVGTS == field && !conf.serve_usecs) + continue; + if (SORT_BY_CUMTS == field && !conf.serve_usecs) + continue; + if (SORT_BY_MAXTS == field && !conf.serve_usecs) + continue; + else if (SORT_BY_BW == field && !conf.bandwidth) + continue; + else if (SORT_BY_PROT == field && !conf.append_protocol) + continue; + else if (SORT_BY_MTHD == field && !conf.append_method) + continue; + + can_sort = 1; + break; + } + + return can_sort; +} + +/* Parse all initial sort options from the config file. + * + * On error, function returns. + * On success, panel metrics are sorted. */ +void +parse_initial_sort (void) +{ + int i; + char module[SORT_MODULE_LEN], field[SORT_FIELD_LEN], order[SORT_ORDER_LEN]; + for (i = 0; i < conf.sort_panel_idx; ++i) { + if (sscanf + (conf.sort_panels[i], "%15[^','],%11[^','],%4s", module, field, + order) != 3) + continue; + set_initial_sort (module, field, order); + } +} + +/* Apply user defined sort */ +void +sort_holder_items (GHolderItem * items, int size, GSort sort) +{ + switch (sort.field) { + case SORT_BY_HITS: + if (sort.sort == SORT_DESC) + qsort (items, size, sizeof (GHolderItem), cmp_num_desc); + else + qsort (items, size, sizeof (GHolderItem), cmp_num_asc); + break; + case SORT_BY_VISITORS: + if (sort.sort == SORT_DESC) + qsort (items, size, sizeof (GHolderItem), cmp_vis_desc); + else + qsort (items, size, sizeof (GHolderItem), cmp_vis_asc); + break; + case SORT_BY_DATA: + if (sort.sort == SORT_DESC) + qsort (items, size, sizeof (GHolderItem), cmp_data_desc); + else + qsort (items, size, sizeof (GHolderItem), cmp_data_asc); + break; + case SORT_BY_BW: + if (sort.sort == SORT_DESC) + qsort (items, size, sizeof (GHolderItem), cmp_bw_desc); + else + qsort (items, size, sizeof (GHolderItem), cmp_bw_asc); + break; + case SORT_BY_AVGTS: + if (sort.sort == SORT_DESC) + qsort (items, size, sizeof (GHolderItem), cmp_avgts_desc); + else + qsort (items, size, sizeof (GHolderItem), cmp_avgts_asc); + break; + case SORT_BY_CUMTS: + if (sort.sort == SORT_DESC) + qsort (items, size, sizeof (GHolderItem), cmp_cumts_desc); + else + qsort (items, size, sizeof (GHolderItem), cmp_cumts_asc); + break; + case SORT_BY_MAXTS: + if (sort.sort == SORT_DESC) + qsort (items, size, sizeof (GHolderItem), cmp_maxts_desc); + else + qsort (items, size, sizeof (GHolderItem), cmp_maxts_asc); + break; + case SORT_BY_PROT: + if (sort.sort == SORT_DESC) + qsort (items, size, sizeof (GHolderItem), cmp_proto_desc); + else + qsort (items, size, sizeof (GHolderItem), cmp_proto_asc); + break; + case SORT_BY_MTHD: + if (sort.sort == SORT_DESC) + qsort (items, size, sizeof (GHolderItem), cmp_mthd_desc); + else + qsort (items, size, sizeof (GHolderItem), cmp_mthd_asc); + break; + } +} + +/* Sort raw numeric data in a descending order for the first run + * (default sort) + * + * On success, raw data sorted in a descending order. */ +GRawData * +sort_raw_num_data (GRawData * raw_data, int ht_size) +{ + qsort (raw_data->items, ht_size, sizeof *(raw_data->items), cmp_raw_num_desc); + return raw_data; +} + +/* Sort raw string data in a descending order for the first run. + * + * On success, raw data sorted in a descending order. */ +GRawData * +sort_raw_str_data (GRawData * raw_data, int ht_size) +{ + qsort (raw_data->items, ht_size, sizeof *(raw_data->items), cmp_raw_str_desc); + return raw_data; +} diff --git a/src/goaccess++/src/sort.h b/src/goaccess++/src/sort.h new file mode 100644 index 0000000..8b63071 --- /dev/null +++ b/src/goaccess++/src/sort.h @@ -0,0 +1,92 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#ifndef SORT_H_INCLUDED +#define SORT_H_INCLUDED + +#include "commons.h" +#include "parser.h" + +#define SORT_MAX_OPTS 11 + +/* See GEnum for mapping */ +#define SORT_FIELD_LEN 11 + 1 /* longest metric name */ +#define SORT_MODULE_LEN 15 + 1 /* longest module name */ +#define SORT_ORDER_LEN 4 + 1 /* length of ASC or DESC */ + +/* Enumerated sorting metrics */ +typedef enum GSortField_ +{ + SORT_BY_HITS, + SORT_BY_VISITORS, + SORT_BY_DATA, + SORT_BY_BW, + SORT_BY_AVGTS, + SORT_BY_CUMTS, + SORT_BY_MAXTS, + SORT_BY_PROT, + SORT_BY_MTHD, +} GSortField; + +/* Enumerated sorting order */ +typedef enum GSortOrder_ +{ + SORT_ASC, + SORT_DESC +} GSortOrder; + +/* Sorting of each panel, metric and order */ +typedef struct GSort_ +{ + GModule module; + GSortField field; + GSortOrder sort; +} GSort; + +extern GSort module_sort[TOTAL_MODULES]; +extern const int sort_choices[][SORT_MAX_OPTS];; + +GRawData *sort_raw_num_data (GRawData * raw_data, int ht_size); +GRawData *sort_raw_str_data (GRawData * raw_data, int ht_size); +const char *get_sort_field_key (GSortField field); +const char *get_sort_field_str (GSortField field); +const char *get_sort_order_str (GSortOrder order); +int can_sort_module (GModule module, int field); +int get_sort_field_enum (const char *str); +int get_sort_order_enum (const char *str); +int strcmp_asc (const void *a, const void *b); +void parse_initial_sort (void); +void set_initial_sort (const char *smod, const char *sfield, const char *ssort); +void sort_holder_items (GHolderItem * items, int size, GSort sort); + +#endif diff --git a/src/goaccess++/src/sort.o b/src/goaccess++/src/sort.o new file mode 100644 index 0000000000000000000000000000000000000000..fcdf46be066f25236060c7952e9403617b7155d1 GIT binary patch literal 10976 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 wumPk)bpNh^as&M7?QxmwYY&idf + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include + +#include "tcabdb.h" +#include "tcbtdb.h" + +#ifdef HAVE_GEOLOCATION +#include "geoip1.h" +#endif + +#include "error.h" +#include "sort.h" +#include "util.h" +#include "xmalloc.h" + +/* Hash tables storage */ +static GTCStorage *tc_storage; + +/* tables for the whole app */ +static TCADB *ht_agent_keys = NULL; +static TCADB *ht_agent_vals = NULL; +static TCADB *ht_general_stats = NULL; +static TCADB *ht_hostnames = NULL; +static TCADB *ht_unique_keys = NULL; + +/* db paths for whole app hashes */ +static char *dbpath_agent_keys = NULL; +static char *dbpath_agent_vals = NULL; +static char *dbpath_general_stats = NULL; +static char *dbpath_hostnames = NULL; +static char *dbpath_unique_keys = NULL; + +/* Instantiate a new store */ +static GTCStorage * +new_tcstorage (uint32_t size) +{ + GTCStorage *storage = xcalloc (size, sizeof (GTCStorage)); + return storage; +} + +/* Open a concrete database */ +static int +tc_adb_open (TCADB * adb, const char *params) +{ + /* attempt to open the database */ + if (!tcadbopen (adb, params)) + return 1; + return 0; +} + +/* Close the database handle */ +static int +tc_db_close (TCADB * adb, char *dbname) +{ + if (adb == NULL) + return 1; + + /* close the database */ + if (!tcadbclose (adb)) + FATAL ("Unable to close DB: %s", dbname); + + /* delete the object */ + tcadbdel (adb); + +#ifdef TCB_BTREE + /* remove database file */ + if (!conf.keep_db_files && !tcremovelink (dbname)) + LOG_DEBUG (("Unable to remove DB: %s\n", dbname)); +#endif + free (dbname); + + return 0; +} + +/* Setup a database given the file path and open it up */ +static TCADB * +tc_adb_create (char *path) +{ + char params[DB_PARAMS] = ""; + TCADB *adb = tcadbnew (); + +#ifdef TCB_MEMHASH + xstrncpy (params, path, DB_PARAMS); +#endif +#ifdef TCB_BTREE + tc_db_get_params (params, path); +#endif + + if (tc_adb_open (adb, params)) { + free (path); + LOG_DEBUG (("params: %s", params)); + FATAL ("Unable to open an abstract database: %s", params); + } + + return adb; +} + +/* Get the file path for the given a database name */ +static char * +get_dbname (const char *dbname, int module) +{ + char *path = NULL; +#ifdef TCB_MEMHASH + (void) dbname; + (void) module; + path = alloc_string ("*"); +#endif + +#ifdef TCB_BTREE + path = tc_db_set_path (dbname, module); +#endif + + return path; +} + +/* Create hashes used across the whole app (not per module) */ +static void +create_prog_tables (void) +{ + ht_agent_keys = tc_adb_create (dbpath_agent_keys); + ht_agent_vals = tc_adb_create (dbpath_agent_vals); + ht_general_stats = tc_adb_create (dbpath_general_stats); + ht_hostnames = tc_adb_create (dbpath_hostnames); + ht_unique_keys = tc_adb_create (dbpath_unique_keys); +} + +/* Set db paths for hashes used across the whole app (not per module) */ +static void +set_prog_tables_dbpaths (void) +{ + dbpath_agent_keys = get_dbname (DB_AGENT_KEYS, -1); + dbpath_agent_vals = get_dbname (DB_AGENT_VALS, -1); + dbpath_general_stats = get_dbname (DB_GEN_STATS, -1); + dbpath_hostnames = get_dbname (DB_HOSTNAMES, -1); + dbpath_unique_keys = get_dbname (DB_UNIQUE_KEYS, -1); +} + +/* Free hashes used across the whole app (not per module) */ +static void +free_prog_tables (void) +{ + tc_db_close (ht_agent_keys, dbpath_agent_keys); + tc_db_close (ht_agent_vals, dbpath_agent_vals); + tc_db_close (ht_general_stats, dbpath_general_stats); + tc_db_close (ht_hostnames, dbpath_hostnames); + tc_db_close (ht_unique_keys, dbpath_unique_keys); +} + +/* Initialize map & metric hashes */ +static void +init_tables (GModule module) +{ + GTCStorageMetric mtrc; + int n = 0, i; + + /* *INDENT-OFF* */ + GTCStorageMetric metrics[] = { + {MTRC_KEYMAP , DB_KEYMAP , NULL, NULL} , + {MTRC_ROOTMAP , DB_ROOTMAP , NULL, NULL} , + {MTRC_DATAMAP , DB_DATAMAP , NULL, NULL} , + {MTRC_UNIQMAP , DB_UNIQMAP , NULL, NULL} , + {MTRC_ROOT , DB_ROOT , NULL, NULL} , + {MTRC_HITS , DB_HITS , NULL, NULL} , + {MTRC_VISITORS , DB_VISITORS , NULL, NULL} , + {MTRC_BW , DB_BW , NULL, NULL} , + {MTRC_CUMTS , DB_CUMTS , NULL, NULL} , + {MTRC_MAXTS , DB_MAXTS , NULL, NULL} , + {MTRC_METHODS , DB_METHODS , NULL, NULL} , + {MTRC_PROTOCOLS , DB_PROTOCOLS , NULL, NULL} , + {MTRC_AGENTS , DB_AGENTS , NULL, NULL} , + {MTRC_METADATA , DB_METADATA , NULL, NULL} , + }; + /* *INDENT-ON* */ + + n = ARRAY_SIZE (metrics); + for (i = 0; i < n; i++) { + mtrc = metrics[i]; +#ifdef TCB_MEMHASH + mtrc.dbpath = get_dbname (mtrc.dbname, module); + mtrc.store = tc_adb_create (mtrc.dbpath); +#endif +#ifdef TCB_BTREE + /* allow for duplicate keys */ + if (mtrc.metric == MTRC_AGENTS) { + mtrc.dbpath = tc_db_set_path (DB_AGENTS, module); + mtrc.store = tc_bdb_create (mtrc.dbpath); + } else { + mtrc.dbpath = get_dbname (mtrc.dbname, module); + mtrc.store = tc_adb_create (mtrc.dbpath); + } +#endif + tc_storage[module].metrics[i] = mtrc; + } +} + +/* Initialize hash tables */ +void +init_storage (void) +{ + GModule module; + size_t idx = 0; + + set_prog_tables_dbpaths (); + create_prog_tables (); + + tc_storage = new_tcstorage (TOTAL_MODULES); + + FOREACH_MODULE (idx, module_list) { + module = module_list[idx]; + + tc_storage[module].module = module; + init_tables (module); + } +} + +/* Destroys the hash structure allocated metrics */ +static void +free_metrics (GModule module) +{ + int i; + GTCStorageMetric mtrc; + + for (i = 0; i < GSMTRC_TOTAL; i++) { + mtrc = tc_storage[module].metrics[i]; +#ifdef TCB_MEMHASH + tc_db_close (mtrc.store, mtrc.dbpath); +#endif +#ifdef TCB_BTREE + if (mtrc.metric == MTRC_AGENTS) + tc_bdb_close (mtrc.store, mtrc.dbpath); + else + tc_db_close (mtrc.store, mtrc.dbpath); +#endif + } +} + +/* Destroys the hash structure and its content */ +void +free_storage (void) +{ + size_t idx = 0; + + if (!tc_storage) + return; + + free_prog_tables (); + FOREACH_MODULE (idx, module_list) { + free_metrics (module_list[idx]); + } + free (tc_storage); + +#ifdef TCB_BTREE + tc_db_rmdir (); +#endif + +} + +static uint32_t +ht_get_size (TCADB * adb) +{ + return tcadbrnum (adb); +} + +/* Given a module and a metric, get the hash table + * + * On error, or if table is not found, NULL is returned. + * On success the hash structure pointer is returned. */ +static void * +get_hash (GModule module, GSMetric metric) +{ + void *hash = NULL; + int i; + GTCStorageMetric mtrc; + + if (!tc_storage) + return NULL; + + for (i = 0; i < GSMTRC_TOTAL; i++) { + mtrc = tc_storage[module].metrics[i]; + if (mtrc.metric != metric) + continue; + hash = mtrc.store; + break; + } + + return hash; +} + +/* Insert a string key and the corresponding int value. + * Note: If the key exists, the value is not replaced. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +static int +ins_si32 (void *hash, const char *key, int value) +{ + if (!hash) + return -1; + + /* if key exists in the database, it is overwritten */ + if (!tcadbput (hash, key, strlen (key), &value, sizeof (int))) + LOG_DEBUG (("Unable to tcadbput\n")); + + return 0; +} + +/* Insert an int key and the corresponding string value. + * Note: If the key exists, the value is not replaced. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +static int +ins_is32 (void *hash, int key, const char *value) +{ + if (!hash) + return -1; + + /* if key exists in the database, it is overwritten */ + if (!tcadbput (hash, &key, sizeof (int), value, strlen (value))) + LOG_DEBUG (("Unable to tcadbput\n")); + + return 0; +} + +/* Insert a string key and the corresponding string value. + * Note: If the key exists, the value is not replaced. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +static int +ins_ss32 (void *hash, const char *key, const char *value) +{ + if (!hash) + return -1; + + /* if key exists in the database, it is overwritten */ + if (!tcadbput2 (hash, key, value)) + LOG_DEBUG (("Unable to tcadbput\n")); + + return 0; +} + +/* Insert an int key and an int value + * Note: If the key exists, its value is replaced by the given value. + * + * On error, -1 is returned. + * On success 0 is returned */ +static int +ins_ii32 (void *hash, int key, int value) +{ + if (!hash) + return -1; + + /* if key exists in the database, it is overwritten */ + if (!tcadbput (hash, &key, sizeof (int), &value, sizeof (int))) + LOG_DEBUG (("Unable to tcadbput\n")); + + return 0; +} + +/* Insert an int key and a uint64_t value + * Note: If the key exists, its value is replaced by the given value. + * + * On error, -1 is returned. + * On success 0 is returned */ +static int +ins_iu64 (void *hash, int key, uint64_t value) +{ + if (!hash) + return -1; + + /* if key exists in the database, it is overwritten */ + if (!tcadbput (hash, &key, sizeof (int), &value, sizeof (uint64_t))) + LOG_DEBUG (("Unable to tcadbput\n")); + + return 0; +} + +/* Increase an int value given an int key. + * Note: If the key exists, its value is increased by the given inc. + * + * On error, -1 is returned. + * On success 0 is returned */ +static int +inc_ii32 (void *hash, int key, int inc) +{ + if (!hash) + return -1; + + /* if key exists in the database, it is incremented */ + if (tcadbaddint (hash, &key, sizeof (int), inc) == INT_MIN) + LOG_DEBUG (("Unable to tcadbput\n")); + + return 0; +} + +/* Increase a uint64_t value given an int key. + * Note: If the key exists, its value is increased by the given inc. + * + * On error, -1 is returned. + * On success 0 is returned */ +static int +inc_iu64 (void *hash, int key, uint64_t inc) +{ + int sp; + uint64_t value = inc; + void *ptr; + + if (!hash) + return -1; + + if ((ptr = tcadbget (hash, &key, sizeof (int), &sp)) != NULL) { + value = (*(uint64_t *) ptr) + inc; + free (ptr); + } + + /* if key exists in the database, it is overwritten */ + if (!tcadbput (hash, &key, sizeof (int), &value, sizeof (uint64_t))) + LOG_DEBUG (("Unable to tcadbput\n")); + + return 0; +} + +/* Insert a string key and auto increment its value. + * + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +static int +inc_si32 (void *hash, const char *key, int inc) +{ + int value = inc, sp; + void *ptr; + + if (!hash) + return -1; + + if ((ptr = tcadbget (hash, key, strlen (key), &sp)) != NULL) { + value = (*(int *) ptr) + inc; + free (ptr); + } + + /* if key exists in the database, it is overwritten */ + if (!tcadbput (hash, key, strlen (key), &value, sizeof (int))) + LOG_DEBUG (("Unable to tcadbput\n")); + + return 0; +} + +/* Insert a string key and auto increment by uint64_t value. + * + * On error, -1 is returned. + * On success the value of the key is inserted and 0 is returned */ +static int +inc_su64 (void *hash, const char *key, uint64_t inc) +{ + int sp; + uint64_t value = inc; + void *ptr; + + if (!hash) + return -1; + + if ((ptr = tcadbget (hash, key, strlen (key), &sp)) != NULL) { + value = (*(uint64_t *) ptr) + inc; + free (ptr); + } + + /* if key exists in the database, it is overwritten */ + if (!tcadbput (hash, key, strlen (key), &value, sizeof (uint64_t))) + LOG_DEBUG (("Unable to tcadbput\n")); + + return 0; +} + +/* Insert a string key and auto increment int value. + * + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +static int +ins_si32_ai (void *hash, const char *key) +{ + int size = 0, value = 0; + + if (!hash) + return -1; + + size = ht_get_size (hash); + /* the auto increment value starts at SIZE (hash table) + 1 */ + value = size > 0 ? size + 1 : 1; + + if (ins_si32 (hash, key, value) == -1) + return -1; + + return value; +} + +#ifdef TCB_MEMHASH + +/* Compare if the given needle is in the haystack + * + * if equal, 1 is returned, else 0 */ +static int +find_int_key_in_list (void *data, void *needle) +{ + return (*(int *) data) == (*(int *) needle) ? 1 : 0; +} + +/* Insert an int key and the corresponding GSLList (Single linked-list) value. + * Note: If the key exists within the list, the value is not appended. + * + * On error, -1 is returned. + * On success 0 is returned */ +static int +ins_igsl (void *hash, int key, int value) +{ + GSLList *list, *match; + int sp; + + if (!hash) + return -1; + + /* key found, check if key exists within the list */ + if ((list = tcadbget (hash, &key, sizeof (int), &sp)) != NULL) { + if ((match = list_find (list, find_int_key_in_list, &value))) + goto out; + list = list_insert_prepend (list, int2ptr (value)); + } else { + list = list_create (int2ptr (value)); + } + + if (!tcadbput (hash, &key, sizeof (int), list, sizeof (GSLList))) + LOG_DEBUG (("Unable to tcadbput\n")); +out: + free (list); + + return 0; +} + +#endif + +/* Get the int value of a given string key. + * + * On error, or if key is not found, -1 is returned. + * On success the int value for the given key is returned */ +static int +get_si32 (void *hash, const char *key) +{ + int ret = 0, sp; + void *ptr; + + if (!hash) + return -1; + + /* key found, return current value */ + if ((ptr = tcadbget (hash, key, strlen (key), &sp)) != NULL) { + ret = (*(int *) ptr); + free (ptr); + return ret; + } + + return -1; +} + +/* Get the unsigned int value of a given string key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint32_t value for the given key is returned */ +static uint32_t +get_sui32 (void *hash, const char *key) +{ + int ret = 0, sp; + void *ptr; + if (!hash) + return 0; + + /* key found, return current value */ + if ((ptr = tcadbget (hash, key, strlen (key), &sp)) != NULL) { + ret = (*(uint32_t *) ptr); + free (ptr); + return ret; + } + + return 0; +} + +/* Get the uint64_t value of a given string key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +static uint64_t +get_su64 (void *hash, const char *key) +{ + int sp; + uint64_t ret = 0; + void *ptr; + if (!hash) + return 0; + + /* key found, return current value */ + if ((ptr = tcadbget (hash, key, strlen (key), &sp)) != NULL) { + ret = (*(uint64_t *) ptr); + free (ptr); + return ret; + } + + return 0; +} + +/* Iterate over all the key/value pairs for the given hash structure + * and set the maximum and minimum values found on an integer key and + * integer value. + * + * Note: This are expensive calls since it has to iterate over all + * key-value pairs + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +static void +get_ii32_min_max (void *hash, int *min, int *max) +{ + int curvalue = 0, i = 0, ksize = 0, sp = 0; + void *key, *ptr; + + tcadbiterinit (hash); + while ((key = tcadbiternext (hash, &ksize)) != NULL) { + if ((ptr = tcadbget (hash, key, ksize, &sp)) == NULL) { + free (key); + continue; + } + + curvalue = (*(int *) ptr); + if (i++ == 0) + *min = curvalue; + if (curvalue > *max) + *max = curvalue; + if (curvalue < *min) + *min = curvalue; + free (key); + free (ptr); + } +} + +/* Iterate over all the key/value pairs for the given hash structure + * and set the maximum and minimum values found on an integer key and + * a uint64_t value. + * + * Note: This are expensive calls since it has to iterate over all + * key-value pairs + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +static void +get_iu64_min_max (void *hash, uint64_t * min, uint64_t * max) +{ + int i = 0, ksize = 0, sp = 0; + uint64_t curvalue = 0; + void *key, *ptr; + + tcadbiterinit (hash); + while ((key = tcadbiternext (hash, &ksize)) != NULL) { + if ((ptr = tcadbget (hash, key, ksize, &sp)) == NULL) { + free (key); + continue; + } + + curvalue = (*(uint64_t *) ptr); + if (i++ == 0) + *min = curvalue; + if (curvalue > *max) + *max = curvalue; + if (curvalue < *min) + *min = curvalue; + free (key); + free (ptr); + } +} + +/* Get the string value of a given int key. + * + * On error, or if key is not found, NULL is returned. + * On success the string value for the given key is returned */ +static char * +get_is32 (void *hash, int key) +{ + int sp; + char *value = NULL; + + if (!hash) + return NULL; + + if ((value = tcadbget (hash, &key, sizeof (int), &sp)) != NULL) + return value; + + return NULL; +} + +/* Get the string value of a given string key. + * + * On error, or if key is not found, NULL is returned. + * On success the string value for the given key is returned */ +static char * +get_ss32 (void *hash, const char *key) +{ + char *value = NULL; + + if (!hash) + return NULL; + + if ((value = tcadbget2 (hash, key)) != NULL) + return value; + + return NULL; +} + +/* Get the int value of a given int key. + * + * If key is not found, 0 is returned. + * On error, -1 is returned. + * On success the int value for the given key is returned */ +static int +get_ii32 (void *hash, int key) +{ + int sp, ret = 0; + void *ptr = 0; + + if (!hash) + return -1; + + /* key found, return current value */ + if ((ptr = tcadbget (hash, &key, sizeof (int), &sp)) != NULL) { + ret = (*(int *) ptr); + free (ptr); + return ret; + } + + return 0; +} + +/* Get the uint64_t value of a given int key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +static uint64_t +get_iu64 (void *hash, int key) +{ + int sp; + uint64_t ret = 0; + void *ptr = 0; + + if (!hash) + return 0; + + /* key found, return current value */ + if ((ptr = tcadbget (hash, &key, sizeof (int), &sp)) != NULL) { + ret = (*(uint64_t *) ptr); + free (ptr); + return ret; + } + + return 0; +} + +/* Get the GSLList value of a given int key. + * + * On error, or if key is not found, NULL is returned. + * On success the GSLList value for the given key is returned */ +static GSLList * +get_igsl (void *hash, int key) +{ + int sp; + GSLList *list = NULL; + + if (!hash) + return NULL; + + /* key found, return current value */ + if ((list = tcadbget (hash, &key, sizeof (int), &sp)) != NULL) + return list; + + return NULL; +} + +/* Get the TCLIST value of a given int key. + * + * On error, or if key is not found, NULL is returned. + * On success the GSLList value for the given key is returned */ +static TCLIST * +get_itcli (void *hash, int key) +{ + TCLIST *list = NULL; + + if (!hash) + return NULL; + + /* key found, return current value */ + if ((list = tcbdbget4 (hash, &key, sizeof (int))) != NULL) + return list; + + return NULL; +} + +/* Insert a unique visitor key string (IP/DATE/UA), mapped to an auto + * incremented value. + * + * If the given key exists, its value is returned. + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +int +ht_insert_unique_key (const char *key) +{ + int value = -1; + void *hash = ht_unique_keys; + + if (!hash) + return -1; + + if ((value = get_si32 (hash, key)) != -1) + return value; + + return ins_si32_ai (hash, key); +} + +/* Set the maximum and minimum values found on an integer key and + * integer value found on the MTRC_VISITORS hash structure. + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +void +ht_get_hits_min_max (GModule module, int *min, int *max) +{ + void *hash = get_hash (module, MTRC_HITS); + + if (!hash) + return; + + get_ii32_min_max (hash, min, max); +} + +/* Set the maximum and minimum values found on an integer key and + * integer value found on the MTRC_VISITORS hash structure. + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +void +ht_get_visitors_min_max (GModule module, int *min, int *max) +{ + void *hash = get_hash (module, MTRC_VISITORS); + + if (!hash) + return; + + get_ii32_min_max (hash, min, max); +} + +/* Set the maximum and minimum values found on an integer key and + * a uint64_t value found on the MTRC_BW hash structure. + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +void +ht_get_bw_min_max (GModule module, uint64_t * min, uint64_t * max) +{ + void *hash = get_hash (module, MTRC_BW); + + if (!hash) + return; + + get_iu64_min_max (hash, min, max); +} + +/* Set the maximum and minimum values found on an integer key and + * a uint64_t value found on the MTRC_CUMTS hash structure. + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +void +ht_get_cumts_min_max (GModule module, uint64_t * min, uint64_t * max) +{ + void *hash = get_hash (module, MTRC_CUMTS); + + if (!hash) + return; + + get_iu64_min_max (hash, min, max); +} + +/* Set the maximum and minimum values found on an integer key and + * a uint64_t value found on the MTRC_MAXTS hash structure. + * + * If the hash structure is empty, no values are set. + * On success the minimum and maximum values are set. */ +void +ht_get_maxts_min_max (GModule module, uint64_t * min, uint64_t * max) +{ + void *hash = get_hash (module, MTRC_MAXTS); + + if (!hash) + return; + + get_iu64_min_max (hash, min, max); +} + +/* Insert a user agent key string, mapped to an auto incremented value. + * + * If the given key exists, its value is returned. + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +int +ht_insert_agent_key (const char *key) +{ + int value = -1; + void *hash = ht_agent_keys; + + if (!hash) + return -1; + + if ((value = get_si32 (hash, key)) != -1) + return value; + + return ins_si32_ai (hash, key); +} + +/* Insert a user agent int key, mapped to a user agent string value. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_agent_value (int key, const char *value) +{ + void *hash = ht_agent_vals; + + if (!hash) + return -1; + + return ins_is32 (hash, key, value); +} + +/* Insert a keymap string key. + * + * If the given key exists, its value is returned. + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +int +ht_insert_keymap (GModule module, const char *key) +{ + int value = -1; + void *hash = get_hash (module, MTRC_KEYMAP); + + if (!hash) + return -1; + + if ((value = get_si32 (hash, key)) != -1) + return value; + + return ins_si32_ai (hash, key); +} + +/* Insert a datamap int key and string value. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_datamap (GModule module, int key, const char *value) +{ + void *hash = get_hash (module, MTRC_DATAMAP); + + if (!hash) + return -1; + + return ins_is32 (hash, key, value); +} + +/* Insert a rootmap int key from the keymap store mapped to its string value. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_rootmap (GModule module, int key, const char *value) +{ + void *hash = get_hash (module, MTRC_ROOTMAP); + + if (!hash) + return -1; + + return ins_is32 (hash, key, value); +} + +/* Insert a uniqmap string key. + * + * If the given key exists, 0 is returned. + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +int +ht_insert_uniqmap (GModule module, const char *key) +{ + int value = -1; + void *hash = get_hash (module, MTRC_UNIQMAP); + + if (!hash) + return -1; + + if ((value = get_si32 (hash, key)) != -1) + return 0; + + return ins_si32_ai (hash, key); +} + +/* Insert a data int key mapped to the corresponding int root key. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_root (GModule module, int key, int value) +{ + void *hash = get_hash (module, MTRC_ROOT); + + if (!hash) + return -1; + + return ins_ii32 (hash, key, value); +} + +/* Increases hits counter from an int key. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_hits (GModule module, int key, int inc) +{ + void *hash = get_hash (module, MTRC_HITS); + + if (!hash) + return -1; + + return inc_ii32 (hash, key, inc); +} + +/* Increases visitors counter from an int key. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_visitor (GModule module, int key, int inc) +{ + void *hash = get_hash (module, MTRC_VISITORS); + + if (!hash) + return -1; + + return inc_ii32 (hash, key, inc); +} + +/* Increases bandwidth counter from an int key. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_bw (GModule module, int key, uint64_t inc) +{ + void *hash = get_hash (module, MTRC_BW); + + if (!hash) + return -1; + + return inc_iu64 (hash, key, inc); +} + +/* Increases cumulative time served counter from an int key. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_cumts (GModule module, int key, uint64_t inc) +{ + void *hash = get_hash (module, MTRC_CUMTS); + + if (!hash) + return -1; + + return inc_iu64 (hash, key, inc); +} + +/* Insert the maximum time served counter from an int key. + * Note: it compares the current value with the given value. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_maxts (GModule module, int key, uint64_t value) +{ + uint64_t curvalue = 0; + void *hash = get_hash (module, MTRC_MAXTS); + + if (!hash) + return -1; + + if ((curvalue = get_iu64 (hash, key)) < value) + ins_iu64 (hash, key, value); + + return 0; +} + +/* Insert a method given an int key and string value. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +int +ht_insert_method (GModule module, int key, const char *value) +{ + void *hash = get_hash (module, MTRC_METHODS); + + if (!hash) + return -1; + + return ins_is32 (hash, key, value); +} + +/* Insert a protocol given an int key and string value. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +int +ht_insert_protocol (GModule module, int key, const char *value) +{ + void *hash = get_hash (module, MTRC_PROTOCOLS); + + if (!hash) + return -1; + + return ins_is32 (hash, key, value); +} + +/* Insert an agent for a hostname given an int key and int value. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_agent (GModule module, int key, int value) +{ + void *hash = get_hash (module, MTRC_AGENTS); + + if (!hash) + return -1; + + return ins_igsl (hash, key, value); +} + +/* Insert an IP hostname mapped to the corresponding hostname. + * + * On error, or if key exists, -1 is returned. + * On success 0 is returned */ +int +ht_insert_hostname (const char *ip, const char *host) +{ + void *hash = ht_hostnames; + + if (!hash) + return -1; + + return ins_ss32 (hash, ip, host); +} + +/* Increases a general stats counter int from a string key. + * + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +int +ht_insert_genstats (const char *key, int inc) +{ + void *hash = ht_general_stats; + + if (!hash) + return -1; + + return inc_si32 (hash, key, inc); +} + +/* Replaces a general stats counter int from a string key. + * + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +int +ht_replace_genstats (const char *key, int value) +{ + void *hash = ht_general_stats; + + if (!hash) + return -1; + + return ins_si32 (hash, key, value); +} + +/* Increases the general stats counter accumulated_time. + * + * On error, 0 is returned + * On success 1 is returned */ +int +ht_insert_genstats_accumulated_time (time_t elapsed) +{ + void *hash = ht_general_stats; + + if (!hash) + return 0; + + return inc_si32 (hash, "accumulated_time", (int) elapsed) != -1; +} + +/* Increases a general stats counter uint64_t from a string key. + * + * On error, -1 is returned. + * On success the value of the key inserted is returned */ +int +ht_insert_genstats_bw (const char *key, uint64_t inc) +{ + void *hash = ht_general_stats; + + if (!hash) + return -1; + + return inc_su64 (hash, key, inc); +} + +/* Insert meta data counters from a string key. + * + * On error, -1 is returned. + * On success 0 is returned */ +int +ht_insert_meta_data (GModule module, const char *key, uint64_t value) +{ + void *hash = get_hash (module, MTRC_METADATA); + + if (!hash) + return -1; + + return inc_su64 (hash, key, value); +} + + +/* Get the number of elements in a datamap. + * + * Return -1 if the operation fails, else number of elements. */ +uint32_t +ht_get_size_datamap (GModule module) +{ + void *hash = get_hash (module, MTRC_DATAMAP); + + if (!hash) + return 0; + + return ht_get_size (hash); +} + +/* Get the number of elements in a uniqmap. + * + * On error, 0 is returned. + * On success the number of elements in MTRC_UNIQMAP is returned */ +uint32_t +ht_get_size_uniqmap (GModule module) +{ + void *hash = get_hash (module, MTRC_UNIQMAP); + + if (!hash) + return 0; + + return ht_get_size (hash); +} + +/* Get the string data value of a given int key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +char * +ht_get_datamap (GModule module, int key) +{ + void *hash = get_hash (module, MTRC_DATAMAP); + + if (!hash) + return NULL; + + return get_is32 (hash, key); +} + +/* Get the int value from MTRC_KEYMAP given a string key. + * + * On error, -1 is returned. + * On success the int value for the given key is returned */ +int +ht_get_keymap (GModule module, const char *key) +{ + void *hash = get_hash (module, MTRC_KEYMAP); + + if (!hash) + return -1; + + return get_si32 (hash, key); +} + +/* Get the int value from MTRC_UNIQMAP given a string key. + * + * On error, -1 is returned. + * On success the int value for the given key is returned */ +int +ht_get_uniqmap (GModule module, const char *key) +{ + void *hash = get_hash (module, MTRC_UNIQMAP); + + if (!hash) + return -1; + + return get_si32 (hash, key); +} + +/* Get the uint32_t value from ht_general_stats given a string key. + * + * On error, 0 is returned. + * On success the uint32_t value for the given key is returned */ +uint32_t +ht_get_genstats (const char *key) +{ + void *hash = ht_general_stats; + + if (!hash) + return 0; + + return get_sui32 (hash, key); +} + +/* Get the uint64_t value from ht_general_stats given a string key. + * + * On error, 0 is returned. + * On success the uint64_t value for the given key is returned */ +uint64_t +ht_get_genstats_bw (const char *key) +{ + void *hash = ht_general_stats; + + if (!hash) + return 0; + + return get_su64 (hash, key); +} + +/* Get the string root from MTRC_ROOTMAP given an int data key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +char * +ht_get_root (GModule module, int key) +{ + int root_key = 0; + void *hashroot = get_hash (module, MTRC_ROOT); + void *hashrootmap = get_hash (module, MTRC_ROOTMAP); + + if (!hashroot || !hashrootmap) + return NULL; + + /* not found */ + if ((root_key = get_ii32 (hashroot, key)) == 0) + return NULL; + + return get_is32 (hashrootmap, root_key); +} + +/* Get the int visitors value from MTRC_HITS given an int key. + * + * If key is not found, 0 is returned. + * On error, -1 is returned. + * On success the int value for the given key is returned */ +int +ht_get_hits (GModule module, int key) +{ + void *hash = get_hash (module, MTRC_HITS); + + if (!hash) + return -1; + + return get_ii32 (hash, key); +} + +/* Get the int visitors value from MTRC_VISITORS given an int key. + * + * If key is not found, 0 is returned. + * On error, -1 is returned. + * On success the int value for the given key is returned */ +int +ht_get_visitors (GModule module, int key) +{ + void *hash = get_hash (module, MTRC_VISITORS); + + if (!hash) + return -1; + + return get_ii32 (hash, key); +} + +/* Get the uint64_t value from MTRC_BW given an int key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +uint64_t +ht_get_bw (GModule module, int key) +{ + void *hash = get_hash (module, MTRC_BW); + + if (!hash) + return 0; + + return get_iu64 (hash, key); +} + +/* Get the uint64_t value from MTRC_CUMTS given an int key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +uint64_t +ht_get_cumts (GModule module, int key) +{ + void *hash = get_hash (module, MTRC_CUMTS); + + if (!hash) + return 0; + + return get_iu64 (hash, key); +} + +/* Get the uint64_t value from MTRC_MAXTS given an int key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +uint64_t +ht_get_maxts (GModule module, int key) +{ + void *hash = get_hash (module, MTRC_MAXTS); + + if (!hash) + return 0; + + return get_iu64 (hash, key); +} + +/* Get the string value from MTRC_METHODS given an int key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +char * +ht_get_method (GModule module, int key) +{ + void *hash = get_hash (module, MTRC_METHODS); + + if (!hash) + return NULL; + + return get_is32 (hash, key); +} + +char * +ht_get_protocol (GModule module, int key) +{ + void *hash = get_hash (module, MTRC_PROTOCOLS); + + if (!hash) + return NULL; + + return get_is32 (hash, key); +} + +/* Get the string value from MTRC_PROTOCOLS given an int key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +char * +ht_get_hostname (const char *host) +{ + void *hash = ht_hostnames; + + if (!hash) + return NULL; + + return get_ss32 (hash, host); +} + +/* Get the string value from ht_agent_vals (user agent) given an int key. + * + * On error, NULL is returned. + * On success the string value for the given key is returned */ +char * +ht_get_host_agent_val (int key) +{ + void *hash = ht_agent_vals; + + if (!hash) + return NULL; + + return get_is32 (hash, key); +} + +/* Get the list value from MTRC_AGENTS given an int key. + * + * On error, or if key is not found, NULL is returned. + * On success the GSLList value for the given key is returned */ +GSLList * +ht_get_host_agent_list (GModule module, int key) +{ + void *hash = get_hash (module, MTRC_AGENTS); + GSLList *list; + + if ((list = get_igsl (hash, key))) + return list; + return NULL; +} + +/* Get the meta data uint64_t from MTRC_METADATA given a string key. + * + * On error, or if key is not found, 0 is returned. + * On success the uint64_t value for the given key is returned */ +uint64_t +ht_get_meta_data (GModule module, const char *key) +{ + void *hash = get_hash (module, MTRC_METADATA); + if (!hash) + return 0; + + return get_su64 (hash, key); +} + +/* Get the list value from MTRC_AGENTS given an int key. + * + * On error, or if key is not found, NULL is returned. + * On success the TCLIST value for the given key is returned */ +TCLIST * +ht_get_host_agent_tclist (GModule module, int key) +{ + void *hash = get_hash (module, MTRC_AGENTS); + TCLIST *list; + + if ((list = get_itcli (hash, key))) + return list; + return NULL; +} + +/* Insert the values from a TCLIST into a GSLList. + * + * On success the GSLList is returned */ +GSLList * +tclist_to_gsllist (TCLIST * tclist) +{ + GSLList *list = NULL; + int i, sz; + int *val; + + for (i = 0; i < tclistnum (tclist); ++i) { + val = (int *) tclistval (tclist, i, &sz); + if (list == NULL) + list = list_create (int2ptr (*val)); + else + list = list_insert_prepend (list, int2ptr (*val)); + } + + return list; +} + +/* Calls the given function for each of the key/value pairs */ +static void +tc_db_foreach (void *db, void (*fp) (TCADB * m, void *k, int s, void *u), + void *user_data) +{ + TCADB *adb = db; + int ksize = 0; + void *key; + + tcadbiterinit (adb); + while ((key = tcadbiternext (adb, &ksize)) != NULL) { + (*fp) (adb, key, ksize, user_data); + free (key); + } +} + +/* Free the key/value pair */ +static void +free_agent_values (TCADB * adb, void *key, int ksize, GO_UNUSED void *user_data) +{ + void *list; + int sp = 0; + + list = tcadbget (adb, key, ksize, &sp); + if (list) + list_remove_nodes (list); +} + +/* Iterate over the each key/value pair under MTRC_AGENTS and free the and the + * list of values */ +void +free_agent_list (void) +{ + void *hash = get_hash (HOSTS, MTRC_AGENTS); + if (!hash) + return; + + tc_db_foreach (hash, free_agent_values, NULL); +} + +/* A wrapper to initialize a raw data structure. + * + * On success a GRawData structure is returned. */ +static GRawData * +init_new_raw_data (GModule module, uint32_t ht_size) +{ + GRawData *raw_data; + + raw_data = new_grawdata (); + raw_data->idx = 0; + raw_data->module = module; + raw_data->size = ht_size; + raw_data->items = new_grawdata_item (ht_size); + + return raw_data; +} + +/* For each key/value pair stored in MTRC_HITS/MTRC_DATAMAP, assign the + * key/value to a GRawDataItem */ +static void +set_raw_data (void *key, void *value, GRawData * raw_data) +{ + raw_data->items[raw_data->idx].key = (*(int *) key); + if (raw_data->type == STRING) + raw_data->items[raw_data->idx].value.svalue = (char *) value; + else + raw_data->items[raw_data->idx].value.ivalue = (*(int *) value); + raw_data->idx++; +} + +/* Get the value stored in MTRC_HITS */ +static void +data_iter_generic (TCADB * adb, void *key, int ksize, void *user_data) +{ + GRawData *raw_data = user_data; + void *value; + int sp = 0; + + value = tcadbget (adb, key, ksize, &sp); + if (value) { + set_raw_data (key, value, raw_data); + if (raw_data->type != STRING) + free (value); + } +} + +/* Entry point to load the raw data from the data store into our + * GRawData structure. + * + * On error, NULL is returned. + * On success the GRawData sorted is returned */ +GRawData * +parse_raw_data (GModule module) +{ + GRawData *raw_data; + GRawDataType type; + uint32_t ht_size = 0; + void *hash = NULL; + + switch (module) { + case VISITORS: + hash = get_hash (module, MTRC_DATAMAP); + type = STRING; + break; + default: + hash = get_hash (module, MTRC_HITS); + type = INTEGER; + } + + if (!hash) + return NULL; + + ht_size = ht_get_size (hash); + raw_data = init_new_raw_data (module, ht_size); + raw_data->type = type; + + tc_db_foreach (hash, data_iter_generic, raw_data); + sort_raw_num_data (raw_data, raw_data->idx); + + return raw_data; +} diff --git a/src/goaccess++/src/tcabdb.h b/src/goaccess++/src/tcabdb.h new file mode 100644 index 0000000..caa9ee8 --- /dev/null +++ b/src/goaccess++/src/tcabdb.h @@ -0,0 +1,226 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#ifndef TCABDB_H_INCLUDED +#define TCABDB_H_INCLUDED + +#include + +#include "gslist.h" +#include "gstorage.h" +#include "parser.h" + +#define DB_PARAMS 256 + +/* Metrics Storage */ + +/* Maps keys (string) to numeric values (integer). + * This mitigates the issue of having multiple stores + * with the same string key, and therefore, avoids unnecessary + * memory usage (in most cases). + * + * HEAD|/index.php -> 1 + * POST|/index.php -> 2 + * Windows XP -> 3 + * Ubuntu 10.10 -> 4 + * GET|Ubuntu 10.10 -> 5 + * Linux -> 6 + * 26/Dec/2014 -> 7 + * Windows -> 8 + */ +/* MTRC_KEYMAP */ + +/* Maps integer keys of root elements from the keymap hash + * to actual string values. + * + * 6 -> Linux + * 8 -> Windows + */ +/* MTRC_ROOTMAP */ + +/* Maps integer keys of data elements from the keymap hash + * to actual string values. + * + * 1 -> /index.php + * 2 -> /index.php + * 3 -> Windows XP + * 4 -> Ubuntu 10.10 + * 5 -> Ubuntu 10.10 + * 7 -> 26/Dec/2014 + */ +/* MTRC_DATAMAP */ + +/* Maps a string key made from the integer key of the + * IP/date/UA and the integer key from the data field of + * each module to numeric autoincremented values. e.g., "1|4" + * => 1 -> unique visitor key (concatenated) with 4 -> data + * key. + * + * "1|4" -> 1 + * "1|5" -> 2 + */ +/* MTRC_UNIQMAP */ + +/* Maps integer key from the keymap hash to the number of + * hits. + * + * 1 -> 10934 + * 2 -> 3231 + * 3 -> 500 + * 4 -> 201 + * 5 -> 206 + */ +/* MTRC_HITS */ + +/* Maps numeric keys made from the uniqmap store to autoincremented values + * (counter). + * 10 -> 100 + * 40 -> 56 + */ +/* MTRC_VISITORS */ + +/* Maps numeric data keys to bandwidth (in bytes). + * 1 -> 1024 + * 2 -> 2048 + */ +/* MTRC_BW */ + +/* Maps numeric data keys to cumulative time served (in usecs/msecs). + * 1 -> 187 + * 2 -> 208 + */ +/* MTRC_CUMTS */ + +/* Maps numeric data keys to max time served (in usecs/msecs). + * 1 -> 1287 + * 2 -> 2308 + */ +/* MTRC_MAXTS */ + +/* Maps numeric data keys to string values. + * 1 -> GET + * 2 -> POST + */ +/* MTRC_METHODS */ + +/* Maps numeric data keys to string values. + * 1 -> HTTP/1.1 + * 2 -> HTTP/1.0 + */ +/* MTRC_PROTOCOLS */ + +/* Maps numeric unique user-agent keys to the + * corresponding numeric value. + * 1 -> 3 + * 2 -> 4 + */ +/* MTRC_AGENTS */ + +/* Enumerated Storage Metrics */ +typedef struct GTCStorageMetric_ +{ + GSMetric metric; + const char *dbname; + char *dbpath; + void *store; +} GTCStorageMetric; + +/* Data Storage per module */ +typedef struct GTCStorage_ +{ + GModule module; + GTCStorageMetric metrics[GSMTRC_TOTAL]; +} GTCStorage; + +void free_agent_list (void); +void free_storage (void); +void init_storage (void); + +int ht_insert_agent_key (const char *key); +int ht_insert_agent_value (int key, const char *value); +int ht_insert_unique_key (const char *key); + +int ht_insert_agent (GModule module, int key, int value); +int ht_insert_bw (GModule module, int key, uint64_t inc); +int ht_insert_cumts (GModule module, int key, uint64_t inc); +int ht_insert_datamap (GModule module, int key, const char *value); +int ht_insert_genstats_accumulated_time (time_t elapsed); +int ht_insert_genstats_bw (const char *key, uint64_t inc); +int ht_insert_genstats (const char *key, int inc); +int ht_insert_hits (GModule module, int key, int inc); +int ht_insert_hostname (const char *ip, const char *host); +int ht_insert_keymap (GModule module, const char *key); +int ht_insert_maxts (GModule module, int key, uint64_t value); +int ht_insert_meta_data (GModule module, const char *key, uint64_t value); +int ht_insert_method (GModule module, int key, const char *value); +int ht_insert_protocol (GModule module, int key, const char *value); +int ht_insert_root (GModule module, int key, int value); +int ht_insert_rootmap (GModule module, int key, const char *value); +int ht_insert_uniqmap (GModule module, const char *key); +int ht_insert_visitor (GModule module, int key, int inc); +int ht_replace_genstats (const char *key, int value); + +uint32_t ht_get_size_datamap (GModule module); +uint32_t ht_get_size_uniqmap (GModule module); + +char *ht_get_datamap (GModule module, int key); +char *ht_get_host_agent_val (int key); +char *ht_get_hostname (const char *host); +char *ht_get_method (GModule module, int key); +char *ht_get_protocol (GModule module, int key); +char *ht_get_root (GModule module, int key); +int ht_get_hits (GModule module, int key); +int ht_get_keymap (GModule module, const char *key); +int ht_get_uniqmap (GModule module, const char *key); +int ht_get_visitors (GModule module, int key); +uint32_t ht_get_genstats (const char *key); +uint64_t ht_get_bw (GModule module, int key); +uint64_t ht_get_cumts (GModule module, int key); +uint64_t ht_get_genstats_bw (const char *key); +uint64_t ht_get_maxts (GModule module, int key); +uint64_t ht_get_meta_data (GModule module, const char *key); +void ht_get_bw_min_max (GModule module, uint64_t * min, uint64_t * max); +void ht_get_cumts_min_max (GModule module, uint64_t * min, uint64_t * max); +void ht_get_hits_min_max (GModule module, int *min, int *max); +void ht_get_maxts_min_max (GModule module, uint64_t * min, uint64_t * max); +void ht_get_visitors_min_max (GModule module, int *min, int *max); + +GSLList *tclist_to_gsllist (TCLIST * tclist); +GSLList *ht_get_host_agent_list (GModule module, int key); +TCLIST *ht_get_host_agent_tclist (GModule module, int key); + +GRawData *parse_raw_data (GModule module); + +/* *INDENT-ON* */ + +#endif diff --git a/src/goaccess++/src/tcbtdb.c b/src/goaccess++/src/tcbtdb.c new file mode 100644 index 0000000..a509038 --- /dev/null +++ b/src/goaccess++/src/tcbtdb.c @@ -0,0 +1,333 @@ +/** + * tcbtdb.c -- Tokyo Cabinet database functions + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "tcbtdb.h" +#include "tcabdb.h" + +#ifdef HAVE_GEOLOCATION +#include "geoip1.h" +#endif + +#include "error.h" +#include "util.h" +#include "xmalloc.h" + +#ifdef TCB_BTREE + +/* Get the on-disk databases path. + * + * On success, the databases path string is returned. */ +char * +tc_db_set_path (const char *dbname, int module) +{ + struct stat info; + static char default_path[sizeof (TC_DBPATH "01234567890/")]; + static char *db_path; + char *path; + char fname[RAND_FN]; + int cx; + + /* db_path is either specified explicitly, or gets the default (pid appended) */ + if (conf.db_path != NULL) + db_path = (char *) conf.db_path; + else { + sprintf (default_path, "%s%d", TC_DBPATH, getpid ()); + db_path = default_path; + mkdir (db_path, TC_DBPMODE); + } + + /* sanity check: Is db_path accessible and a directory? */ + if (stat (db_path, &info) != 0) + FATAL ("Unable to access database path: %s", strerror (errno)); + if (!(info.st_mode & S_IFDIR)) + FATAL ("Database path is not a directory."); + + /* for tc_db_rmdir(), return the pure folder path (or NULL to keep) */ + if (dbname == NULL) + return conf.db_path == NULL ? db_path : NULL; + + memset (fname, 0, sizeof (fname)); + /* tcadbopen requires the db name suffix to be ".tcb" and thus we + * don't use mkstemp(3) */ + genstr (fname, RAND_FN - 1); + + cx = snprintf (NULL, 0, "%s/%dm%s%s", db_path, module, fname, dbname) + 1; + path = xmalloc (cx); + sprintf (path, "%s/%dm%s%s", db_path, module, fname, dbname); + + return path; +} + +/* delete db folder if we used the customized (pid appended) default */ +void +tc_db_rmdir () +{ + const char *db_path = NULL; + + db_path = tc_db_set_path (NULL, 0); + if (db_path != NULL) + if (rmdir (db_path)) + LOG_DEBUG (("Unable to remove custom db folder: %s\n", db_path)); +} + + +/* Set the given database parameter into the parameters buffer. + * + * On error, a negative number is returned. + * On success, the number of characters that would have been written is + * returned. */ +static int +set_dbparam (char *params, int len, const char *fmt, ...) +{ + int n; + va_list args; + + va_start (args, fmt); + n = vsnprintf (params + len, DB_PARAMS - len, fmt, args); + va_end (args); + + if (n < 0) { + n = 0; + LOG_DEBUG (("Output error is encountered on set_dbparam\n")); + } else if (n >= DB_PARAMS - len) { + LOG_DEBUG (("Output truncated on set_dbparam\n")); + n = DB_PARAMS - len; + } + + return n; +} + +/* Set the on-disk database parameters from enabled options in the config file. */ +void +tc_db_get_params (char *params, const char *path) +{ + int len = 0; + long xmmap = conf.xmmap; + uint32_t lcnum, ncnum, lmemb, nmemb, bnum; + + /* copy path name to buffer */ + len += set_dbparam (params, len, "%s", path); + + /* caching parameters of a B+ tree database object */ + lcnum = conf.cache_lcnum > 0 ? conf.cache_lcnum : TC_LCNUM; + len += set_dbparam (params, len, "#%s=%d", "lcnum", lcnum); + + ncnum = conf.cache_ncnum > 0 ? conf.cache_ncnum : TC_NCNUM; + len += set_dbparam (params, len, "#%s=%d", "ncnum", ncnum); + + /* set the size of the extra mapped memory */ + if (xmmap > 0) + len += set_dbparam (params, len, "#%s=%ld", "xmsiz", xmmap); + + lmemb = conf.tune_lmemb > 0 ? conf.tune_lmemb : TC_LMEMB; + len += set_dbparam (params, len, "#%s=%d", "lmemb", lmemb); + + nmemb = conf.tune_nmemb > 0 ? conf.tune_nmemb : TC_NMEMB; + len += set_dbparam (params, len, "#%s=%d", "nmemb", nmemb); + + bnum = conf.tune_bnum > 0 ? conf.tune_bnum : TC_BNUM; + len += set_dbparam (params, len, "#%s=%d", "bnum", bnum); + + /* compression */ + len += set_dbparam (params, len, "#%s=%c", "opts", 'l'); + + if (conf.compression == TC_BZ2) { + len += set_dbparam (params, len, "%c", 'b'); + } else if (conf.compression == TC_ZLIB) { + len += set_dbparam (params, len, "%c", 'd'); + } + + /* open flags. create a new database if not exist, otherwise read it */ + len += set_dbparam (params, len, "#%s=%s", "mode", "wc"); + /* if not loading from disk, truncate regardless if a db file exists */ + if (!conf.load_from_disk) + len += set_dbparam (params, len, "%c", 't'); + + LOG_DEBUG (("%s\n", path)); + LOG_DEBUG (("params: %s\n", params)); +} + +/* Open the database handle. + * + * On error, the program will exit. + * On success, the opened on-disk database is returned. */ +TCBDB * +tc_bdb_create (char *dbpath) +{ + TCBDB *bdb; + int ecode; + uint32_t lcnum, ncnum, lmemb, nmemb, bnum, flags; + + bdb = tcbdbnew (); + + lcnum = conf.cache_lcnum > 0 ? conf.cache_lcnum : TC_LCNUM; + ncnum = conf.cache_ncnum > 0 ? conf.cache_ncnum : TC_NCNUM; + + /* set the caching parameters of a B+ tree database object */ + if (!tcbdbsetcache (bdb, lcnum, ncnum)) { + free (dbpath); + FATAL ("Unable to set TCB cache"); + } + + /* set the size of the extra mapped memory */ + if (conf.xmmap > 0 && !tcbdbsetxmsiz (bdb, conf.xmmap)) { + free (dbpath); + FATAL ("Unable to set TCB xmmap."); + } + + lmemb = conf.tune_lmemb > 0 ? conf.tune_lmemb : TC_LMEMB; + nmemb = conf.tune_nmemb > 0 ? conf.tune_nmemb : TC_NMEMB; + bnum = conf.tune_bnum > 0 ? conf.tune_bnum : TC_BNUM; + + /* compression */ + flags = BDBTLARGE; + if (conf.compression == TC_BZ2) { + flags |= BDBTBZIP; + } else if (conf.compression == TC_ZLIB) { + flags |= BDBTDEFLATE; + } + + /* set the tuning parameters */ + tcbdbtune (bdb, lmemb, nmemb, bnum, 8, 10, flags); + + /* open flags */ + flags = BDBOWRITER | BDBOCREAT; + if (!conf.load_from_disk) + flags |= BDBOTRUNC; + + /* attempt to open the database */ + if (!tcbdbopen (bdb, dbpath, flags)) { + free (dbpath); + ecode = tcbdbecode (bdb); + + FATAL ("%s", tcbdberrmsg (ecode)); + } + + return bdb; +} + +/* Close the database handle. + * + * On error, 1 is returned. + * On success or the database is closed, 0 is returned. */ +int +tc_bdb_close (void *db, char *dbname) +{ + TCBDB *bdb = db; + int ecode; + + if (bdb == NULL) + return 1; + + /* close the database */ + if (!tcbdbclose (bdb)) { + ecode = tcbdbecode (bdb); + FATAL ("%s", tcbdberrmsg (ecode)); + } + /* delete the object */ + tcbdbdel (bdb); + + /* remove database file */ + if (!conf.keep_db_files && !tcremovelink (dbname)) + LOG_DEBUG (("Unable to remove DB: %s\n", dbname)); + free (dbname); + + return 0; +} + +/* Compare the given integer value with one in the list object. + * + * If values are the equal, 1 is returned else 0 is returned. */ +static int +find_int_key_in_list (void *data, void *needle) +{ + return (*(int *) data) == (*(int *) needle) ? 1 : 0; +} + +/* Iterate over the list object and compare the current value with the given + * value. + * + * If the value exists, 1 is returned else 0 is returned. */ +static int +is_value_in_tclist (TCLIST * tclist, void *value) +{ + int i, sz; + int *val; + + if (!tclist) + return 0; + + for (i = 0; i < tclistnum (tclist); ++i) { + val = (int *) tclistval (tclist, i, &sz); + if (find_int_key_in_list (value, val)) + return 1; + } + + return 0; +} + +/* Insert a string key and the corresponding string value. + * Note: If the key exists, the value is not replaced. + * + * On error, or if found, 1 is returned. + * On success, or if not in the list, 0 is returned. */ +int +ins_igsl (void *hash, int key, int value) +{ + TCLIST *list; + int in_list = 0; + + if (!hash) + return -1; + + /* key found, check if key exists within the list */ + if ((list = tcbdbget4 (hash, &key, sizeof (int))) != NULL) { + if (is_value_in_tclist (list, &value)) + in_list = 1; + tclistdel (list); + } + /* if not on the list, add it */ + if (!in_list && tcbdbputdup (hash, &key, sizeof (int), &value, sizeof (int))) + return 0; + + return -1; +} +#endif diff --git a/src/goaccess++/src/tcbtdb.h b/src/goaccess++/src/tcbtdb.h new file mode 100644 index 0000000..01a2bf2 --- /dev/null +++ b/src/goaccess++/src/tcbtdb.h @@ -0,0 +1,91 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#ifndef TCBTDB_H_INCLUDED +#define TCBTDB_H_INCLUDED + +#include + +#include "commons.h" +#include "gstorage.h" +#include "parser.h" + +#define TC_MMAP 0 +#define TC_LCNUM 1024 +#define TC_NCNUM 512 +#define TC_LMEMB 128 +#define TC_NMEMB 256 +#define TC_BNUM 32749 +#define TC_DBPATH "/tmp/goaccess" +#define TC_DBPMODE 0755 +#define TC_ZLIB 1 +#define TC_BZ2 2 + +#define RAND_FN 7 + 1 + +/* B+ Tree - on-disk databases */ +#define DB_AGENT_KEYS "db_agent_keys.tcb" +#define DB_AGENT_VALS "db_agent_vals.tcb" +#define DB_GEN_STATS "db_gen_stats.tcb" +#define DB_HOSTNAMES "db_hostnames.tcb" +#define DB_UNIQUE_KEYS "db_unique_keys.tcb" + +#define DB_KEYMAP "db_keymap.tcb" +#define DB_DATAMAP "db_datamap.tcb" +#define DB_ROOTMAP "db_rootmap.tcb" +#define DB_UNIQMAP "db_uniqmap.tcb" +#define DB_VISITORS "db_visitors.tcb" +#define DB_ROOT "db_root.tcb" +#define DB_HITS "db_hits.tcb" +#define DB_BW "db_bw.tcb" +#define DB_CUMTS "db_cumts.tcb" +#define DB_MAXTS "db_maxts.tcb" +#define DB_METHODS "db_methods.tcb" +#define DB_PROTOCOLS "db_protocols.tcb" +#define DB_AGENTS "db_agents.tcb" +#define DB_METADATA "db_metadata.tcb" + +/* *INDENT-OFF* */ +TCBDB *tc_bdb_create (char *dbpath); + +char *tc_db_set_path (const char *dbname, int module); +void tc_db_rmdir(void); +int tc_bdb_close (void *db, char *dbname); +void tc_db_get_params (char *params, const char *path); + +#ifdef TCB_BTREE +int ins_igsl (void *hash, int key, int value); +#endif +/* *INDENT-ON* */ + +#endif diff --git a/src/goaccess++/src/tpls.h b/src/goaccess++/src/tpls.h new file mode 100644 index 0000000..e6d723b --- /dev/null +++ b/src/goaccess++/src/tpls.h @@ -0,0 +1,941 @@ +const char tpls[10299] = { + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x54, 0x50, 0x4c, 0x20, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x74, 0x70, 0x6c, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, + 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, + 0x74, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, + 0x3e, 0x3c, 0x68, 0x34, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x2d, 0x78, 0x73, 0x20, + 0x67, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x7b, 0x7b, + 0x68, 0x65, 0x61, 0x64, 0x7d, 0x7d, 0x3c, 0x73, 0x70, 0x61, 0x6e, + 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x70, 0x75, 0x6c, + 0x6c, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x7b, 0x7b, + 0x23, 0x66, 0x72, 0x6f, 0x6d, 0x7d, 0x7d, 0x3c, 0x73, 0x70, 0x61, + 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x72, + 0x6f, 0x6d, 0x22, 0x3e, 0x7b, 0x7b, 0x66, 0x72, 0x6f, 0x6d, 0x7d, + 0x7d, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x7b, 0x7b, 0x2f, + 0x66, 0x72, 0x6f, 0x6d, 0x7d, 0x7d, 0x7b, 0x7b, 0x23, 0x74, 0x6f, + 0x7d, 0x7d, 0x20, 0x26, 0x23, 0x38, 0x32, 0x31, 0x32, 0x3b, 0x20, + 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x74, 0x6f, 0x22, 0x3e, 0x7b, 0x7b, 0x74, 0x6f, 0x7d, + 0x7d, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x7b, 0x7b, 0x2f, + 0x74, 0x6f, 0x7d, 0x7d, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, + 0x3c, 0x2f, 0x68, 0x34, 0x3e, 0x3c, 0x68, 0x35, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x2d, 0x78, 0x73, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x2d, 0x73, 0x6d, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x2d, + 0x6d, 0x64, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x2d, 0x6c, + 0x67, 0x20, 0x67, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, + 0x7b, 0x7b, 0x68, 0x65, 0x61, 0x64, 0x7d, 0x7d, 0x26, 0x6e, 0x62, + 0x73, 0x70, 0x3b, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x7b, 0x7b, + 0x23, 0x66, 0x72, 0x6f, 0x6d, 0x7d, 0x7d, 0x3c, 0x73, 0x70, 0x61, + 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x72, + 0x6f, 0x6d, 0x22, 0x3e, 0x7b, 0x7b, 0x66, 0x72, 0x6f, 0x6d, 0x7d, + 0x7d, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x7b, 0x7b, 0x2f, + 0x66, 0x72, 0x6f, 0x6d, 0x7d, 0x7d, 0x7b, 0x7b, 0x23, 0x74, 0x6f, + 0x7d, 0x7d, 0x20, 0x26, 0x23, 0x38, 0x32, 0x31, 0x32, 0x3b, 0x20, + 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x74, 0x6f, 0x22, 0x3e, 0x7b, 0x7b, 0x74, 0x6f, 0x7d, + 0x7d, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x7b, 0x7b, 0x2f, + 0x74, 0x6f, 0x7d, 0x7d, 0x3c, 0x2f, 0x68, 0x35, 0x3e, 0x3c, 0x64, + 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x77, + 0x72, 0x61, 0x70, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, + 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3e, 0x3c, 0x2f, 0x64, + 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x54, 0x50, 0x4c, 0x20, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x49, 0x74, 0x65, 0x6d, + 0x73, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x70, 0x6c, 0x2d, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x2d, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, + 0x78, 0x74, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x32, + 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x67, 0x72, 0x69, 0x64, 0x2d, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x20, 0x7b, 0x7b, 0x23, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x7d, 0x7b, 0x7b, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x7d, 0x7b, 0x7b, + 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x7d, + 0x7d, 0x7b, 0x7b, 0x5e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x7d, 0x7d, 0x67, 0x72, 0x61, 0x79, 0x7b, 0x7b, 0x2f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x7d, + 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6c, 0x2d, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x62, 0x61, 0x72, + 0x2d, 0x63, 0x68, 0x61, 0x72, 0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x69, + 0x3e, 0x20, 0x7b, 0x7b, 0x23, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7d, + 0x7d, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7d, 0x7d, 0x7b, + 0x7b, 0x2f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7d, 0x7d, 0x3c, 0x2f, + 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x68, 0x33, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x7b, 0x7b, 0x69, 0x64, 0x7d, 0x7d, 0x22, 0x20, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x30, 0x3b, 0x22, 0x3e, + 0x7b, 0x7b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x7d, 0x7d, 0x3c, 0x2f, + 0x68, 0x33, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, + 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x54, 0x50, 0x4c, 0x20, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x70, 0x6c, 0x2d, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x2d, 0x72, 0x6f, 0x77, 0x22, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3e, 0x7b, 0x7b, 0x23, + 0x72, 0x6f, 0x77, 0x73, 0x7d, 0x7d, 0x3c, 0x74, 0x72, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x7b, 0x7b, 0x23, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x7d, 0x7b, 0x7b, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x7d, + 0x7b, 0x7b, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x7d, 0x7d, 0x20, 0x7b, 0x7b, 0x23, 0x68, 0x61, 0x73, 0x53, + 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x7b, 0x7b, + 0x23, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x65, 0x78, 0x70, + 0x61, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x7b, 0x7b, 0x2f, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x7b, 0x7b, 0x2f, 0x68, 0x61, + 0x73, 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, + 0x22, 0x20, 0x7b, 0x7b, 0x23, 0x69, 0x64, 0x78, 0x7d, 0x7d, 0x64, + 0x61, 0x74, 0x61, 0x2d, 0x70, 0x69, 0x64, 0x3d, 0x22, 0x7b, 0x7b, + 0x69, 0x64, 0x78, 0x7d, 0x7d, 0x22, 0x7b, 0x7b, 0x2f, 0x69, 0x64, + 0x78, 0x7d, 0x7d, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x3d, 0x22, 0x7b, 0x7b, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x7d, 0x7d, 0x22, 0x20, 0x7b, 0x7b, 0x23, 0x6b, 0x65, 0x79, + 0x7d, 0x7d, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6b, 0x65, 0x79, 0x3d, + 0x22, 0x7b, 0x7b, 0x6b, 0x65, 0x79, 0x7d, 0x7d, 0x22, 0x7b, 0x7b, + 0x2f, 0x6b, 0x65, 0x79, 0x7d, 0x7d, 0x3e, 0x7b, 0x7b, 0x23, 0x68, + 0x61, 0x73, 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x7d, + 0x7d, 0x3c, 0x74, 0x64, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x72, 0x6f, 0x77, 0x2d, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x63, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x7b, 0x7b, 0x23, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x61, + 0x62, 0x6c, 0x65, 0x7b, 0x7b, 0x2f, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x7d, 0x7d, 0x22, 0x3e, 0x7b, 0x7b, 0x23, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x7d, 0x7d, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x66, 0x61, 0x20, 0x7b, 0x7b, 0x23, 0x65, 0x78, 0x70, + 0x61, 0x6e, 0x64, 0x65, 0x64, 0x7d, 0x7d, 0x66, 0x61, 0x2d, 0x63, + 0x61, 0x72, 0x65, 0x74, 0x2d, 0x64, 0x6f, 0x77, 0x6e, 0x7b, 0x7b, + 0x2f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x7d, 0x7d, + 0x7b, 0x7b, 0x5e, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, + 0x7d, 0x7d, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x61, 0x72, + 0x65, 0x74, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7b, 0x7b, 0x2f, + 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x7d, 0x7d, 0x22, + 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x7b, 0x7b, 0x2f, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x7d, 0x7d, 0x7b, 0x7b, 0x5e, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x7d, 0x7d, 0x3c, 0x69, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x7b, + 0x7b, 0x2f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x3c, 0x2f, + 0x74, 0x64, 0x3e, 0x7b, 0x7b, 0x2f, 0x68, 0x61, 0x73, 0x53, 0x75, + 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x3c, 0x74, 0x64, + 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x77, + 0x2d, 0x69, 0x64, 0x78, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x7b, 0x7b, 0x23, 0x69, 0x64, + 0x78, 0x7d, 0x7d, 0x7b, 0x7b, 0x69, 0x64, 0x78, 0x7d, 0x7d, 0x7b, + 0x7b, 0x2f, 0x69, 0x64, 0x78, 0x7d, 0x7d, 0x3c, 0x2f, 0x74, 0x64, + 0x3e, 0x7b, 0x7b, 0x23, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x7d, 0x7d, + 0x3c, 0x74, 0x64, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x7b, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, + 0x7d, 0x7d, 0x22, 0x20, 0x7b, 0x7b, 0x23, 0x63, 0x6f, 0x6c, 0x73, + 0x70, 0x61, 0x6e, 0x7d, 0x7d, 0x63, 0x6f, 0x6c, 0x73, 0x70, 0x61, + 0x6e, 0x3d, 0x22, 0x7b, 0x7b, 0x63, 0x6f, 0x6c, 0x73, 0x70, 0x61, + 0x6e, 0x7d, 0x7d, 0x22, 0x7b, 0x7b, 0x2f, 0x63, 0x6f, 0x6c, 0x73, + 0x70, 0x61, 0x6e, 0x7d, 0x7d, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, + 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x3e, 0x7b, 0x7b, 0x7b, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x7d, 0x7d, 0x7d, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, + 0x7b, 0x7b, 0x23, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x7d, + 0x7d, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, + 0x3e, 0x20, 0x28, 0x7b, 0x7b, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x7d, 0x7d, 0x29, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, + 0x7b, 0x7b, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x7d, + 0x7d, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x7b, 0x7b, 0x2f, 0x63, 0x65, + 0x6c, 0x6c, 0x73, 0x7d, 0x7d, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x7b, + 0x7b, 0x2f, 0x72, 0x6f, 0x77, 0x73, 0x7d, 0x7d, 0x3c, 0x2f, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, + 0x54, 0x50, 0x4c, 0x20, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x20, 0x4d, 0x65, 0x74, 0x61, 0x20, 0x2d, + 0x2d, 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x69, + 0x64, 0x3d, 0x22, 0x74, 0x70, 0x6c, 0x2d, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x72, 0x6f, 0x77, 0x2d, 0x6d, 0x65, 0x74, 0x61, 0x22, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3e, + 0x7b, 0x7b, 0x23, 0x72, 0x6f, 0x77, 0x7d, 0x7d, 0x3c, 0x74, 0x72, + 0x3e, 0x7b, 0x7b, 0x23, 0x68, 0x61, 0x73, 0x53, 0x75, 0x62, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x3c, 0x74, 0x64, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x22, 0x3e, 0x3c, 0x2f, 0x74, + 0x64, 0x3e, 0x7b, 0x7b, 0x2f, 0x68, 0x61, 0x73, 0x53, 0x75, 0x62, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x3c, 0x74, 0x64, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x22, 0x3e, 0x3c, 0x2f, + 0x74, 0x64, 0x3e, 0x7b, 0x7b, 0x23, 0x63, 0x65, 0x6c, 0x6c, 0x73, + 0x7d, 0x7d, 0x3c, 0x74, 0x64, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x7b, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x7d, 0x7d, 0x22, 0x20, 0x7b, 0x7b, 0x23, 0x63, 0x6f, + 0x6c, 0x73, 0x70, 0x61, 0x6e, 0x7d, 0x7d, 0x63, 0x6f, 0x6c, 0x73, + 0x70, 0x61, 0x6e, 0x3d, 0x22, 0x7b, 0x7b, 0x63, 0x6f, 0x6c, 0x73, + 0x70, 0x61, 0x6e, 0x7d, 0x7d, 0x22, 0x7b, 0x7b, 0x2f, 0x63, 0x6f, + 0x6c, 0x73, 0x70, 0x61, 0x6e, 0x7d, 0x7d, 0x3e, 0x7b, 0x7b, 0x23, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x7d, 0x7d, 0x3c, 0x68, 0x34, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x3d, 0x22, 0x7b, 0x7b, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x7d, 0x7d, 0x22, 0x3e, 0x7b, 0x7b, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x7d, 0x7d, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x7b, + 0x7b, 0x23, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7d, 0x7d, 0x3c, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x7d, 0x7d, 0x3c, 0x2f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x3e, 0x7b, 0x7b, 0x2f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7d, 0x7d, + 0x7b, 0x7b, 0x23, 0x6d, 0x61, 0x78, 0x7d, 0x7d, 0x3c, 0x62, 0x72, + 0x3e, 0x3c, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x4d, 0x61, 0x78, + 0x3a, 0x20, 0x7b, 0x7b, 0x6d, 0x61, 0x78, 0x7d, 0x7d, 0x3c, 0x2f, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x7b, 0x7b, 0x2f, 0x6d, 0x61, + 0x78, 0x7d, 0x7d, 0x7b, 0x7b, 0x23, 0x6d, 0x69, 0x6e, 0x7d, 0x7d, + 0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, + 0x4d, 0x69, 0x6e, 0x3a, 0x20, 0x7b, 0x7b, 0x6d, 0x69, 0x6e, 0x7d, + 0x7d, 0x3c, 0x2f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x7b, 0x7b, + 0x2f, 0x6d, 0x69, 0x6e, 0x7d, 0x7d, 0x3c, 0x2f, 0x68, 0x34, 0x3e, + 0x7b, 0x7b, 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x7d, 0x7d, 0x3c, + 0x2f, 0x74, 0x64, 0x3e, 0x7b, 0x7b, 0x2f, 0x63, 0x65, 0x6c, 0x6c, + 0x73, 0x7d, 0x7d, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x7b, 0x7b, 0x2f, + 0x72, 0x6f, 0x77, 0x7d, 0x7d, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x54, 0x50, 0x4c, + 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, 0x61, + 0x64, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x70, 0x6c, 0x2d, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x74, 0x68, 0x65, 0x61, 0x64, 0x22, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3e, + 0x3c, 0x74, 0x72, 0x3e, 0x7b, 0x7b, 0x23, 0x68, 0x61, 0x73, 0x53, + 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x3c, 0x74, + 0x68, 0x3e, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x7b, 0x7b, 0x2f, 0x68, + 0x61, 0x73, 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x7d, + 0x7d, 0x3c, 0x74, 0x68, 0x3e, 0x23, 0x3c, 0x2f, 0x74, 0x68, 0x3e, + 0x7b, 0x7b, 0x23, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x3c, + 0x74, 0x68, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x7b, + 0x7b, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x7d, 0x7d, + 0x20, 0x7b, 0x7b, 0x23, 0x6b, 0x65, 0x79, 0x7d, 0x7d, 0x73, 0x6f, + 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x7b, 0x7b, 0x2f, 0x6b, 0x65, + 0x79, 0x7d, 0x7d, 0x22, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6b, + 0x65, 0x79, 0x3d, 0x22, 0x7b, 0x7b, 0x6b, 0x65, 0x79, 0x7d, 0x7d, + 0x22, 0x20, 0x7b, 0x7b, 0x23, 0x73, 0x6f, 0x72, 0x74, 0x7d, 0x7d, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, + 0x22, 0x7b, 0x7b, 0x23, 0x61, 0x73, 0x63, 0x7d, 0x7d, 0x61, 0x73, + 0x63, 0x7b, 0x7b, 0x2f, 0x61, 0x73, 0x63, 0x7d, 0x7d, 0x7b, 0x7b, + 0x5e, 0x61, 0x73, 0x63, 0x7d, 0x7d, 0x64, 0x65, 0x73, 0x63, 0x7b, + 0x7b, 0x2f, 0x61, 0x73, 0x63, 0x7d, 0x7d, 0x22, 0x7b, 0x7b, 0x2f, + 0x73, 0x6f, 0x72, 0x74, 0x7d, 0x7d, 0x3e, 0x7b, 0x7b, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x7d, 0x7d, 0x20, 0x3c, 0x69, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, + 0x7b, 0x7b, 0x5e, 0x73, 0x6f, 0x72, 0x74, 0x7d, 0x7d, 0x73, 0x6f, + 0x72, 0x74, 0x7b, 0x7b, 0x2f, 0x73, 0x6f, 0x72, 0x74, 0x7d, 0x7d, + 0x7b, 0x7b, 0x23, 0x73, 0x6f, 0x72, 0x74, 0x7d, 0x7d, 0x7b, 0x7b, + 0x23, 0x61, 0x73, 0x63, 0x7d, 0x7d, 0x63, 0x61, 0x72, 0x65, 0x74, + 0x2d, 0x75, 0x70, 0x7b, 0x7b, 0x2f, 0x61, 0x73, 0x63, 0x7d, 0x7d, + 0x7b, 0x7b, 0x5e, 0x61, 0x73, 0x63, 0x7d, 0x7d, 0x63, 0x61, 0x72, + 0x65, 0x74, 0x2d, 0x64, 0x6f, 0x77, 0x6e, 0x7b, 0x7b, 0x2f, 0x61, + 0x73, 0x63, 0x7d, 0x7d, 0x7b, 0x7b, 0x2f, 0x73, 0x6f, 0x72, 0x74, + 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x3c, 0x2f, 0x74, + 0x68, 0x3e, 0x7b, 0x7b, 0x2f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x7d, + 0x7d, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x54, 0x50, + 0x4c, 0x20, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x44, 0x72, 0x6f, 0x70, 0x44, 0x6f, + 0x77, 0x6e, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x70, 0x6c, 0x2d, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x6f, 0x70, 0x74, 0x73, 0x22, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, + 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3e, + 0x3c, 0x6c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x7b, 0x7b, 0x20, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, + 0x6f, 0x70, 0x74, 0x73, 0x20, 0x7d, 0x7d, 0x3c, 0x2f, 0x6c, 0x69, + 0x3e, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, + 0x22, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x3d, 0x22, 0x7b, 0x7b, 0x69, 0x64, 0x7d, 0x7d, 0x22, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3d, + 0x22, 0x7b, 0x7b, 0x73, 0x68, 0x6f, 0x77, 0x43, 0x68, 0x61, 0x72, + 0x74, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x7b, + 0x7b, 0x23, 0x73, 0x68, 0x6f, 0x77, 0x43, 0x68, 0x61, 0x72, 0x74, + 0x7d, 0x7d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x2d, 0x7b, 0x7b, 0x2f, + 0x73, 0x68, 0x6f, 0x77, 0x43, 0x68, 0x61, 0x72, 0x74, 0x7d, 0x7d, + 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x2d, 0x6f, 0x22, 0x3e, 0x3c, + 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x7d, 0x7d, 0x3c, 0x2f, + 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x7b, 0x7b, 0x23, 0x70, + 0x6c, 0x6f, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x7d, + 0x7d, 0x3c, 0x6c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x7b, 0x7b, 0x20, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x7d, 0x7d, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, 0x3e, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, + 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, + 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3d, 0x22, 0x7b, 0x7b, + 0x69, 0x64, 0x7d, 0x7d, 0x22, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, + 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x22, 0x61, 0x72, 0x65, 0x61, 0x2d, 0x73, 0x70, 0x6c, 0x69, 0x6e, + 0x65, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x69, 0x72, + 0x63, 0x6c, 0x65, 0x7b, 0x7b, 0x5e, 0x61, 0x72, 0x65, 0x61, 0x2d, + 0x73, 0x70, 0x6c, 0x69, 0x6e, 0x65, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, + 0x7b, 0x2f, 0x61, 0x72, 0x65, 0x61, 0x2d, 0x73, 0x70, 0x6c, 0x69, + 0x6e, 0x65, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, + 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x61, 0x72, + 0x65, 0x61, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x6e, 0x65, 0x7d, 0x7d, + 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, + 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, + 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3d, 0x22, + 0x7b, 0x7b, 0x69, 0x64, 0x7d, 0x7d, 0x22, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x2d, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x79, 0x70, + 0x65, 0x3d, 0x22, 0x62, 0x61, 0x72, 0x22, 0x3e, 0x3c, 0x69, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, + 0x61, 0x2d, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x7b, 0x7b, 0x5e, + 0x62, 0x61, 0x72, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, 0x7b, 0x2f, 0x62, + 0x61, 0x72, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, + 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x62, 0x61, + 0x72, 0x7d, 0x7d, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, + 0x3e, 0x3c, 0x6c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x7b, 0x7b, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x6c, 0x6f, 0x74, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x7d, 0x7d, 0x3c, 0x2f, 0x6c, 0x69, + 0x3e, 0x7b, 0x7b, 0x23, 0x70, 0x6c, 0x6f, 0x74, 0x7d, 0x7d, 0x3c, + 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3d, + 0x22, 0x7b, 0x7b, 0x69, 0x64, 0x7d, 0x7d, 0x22, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x2d, 0x70, 0x6c, 0x6f, 0x74, 0x3d, 0x22, 0x7b, 0x7b, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x7d, + 0x22, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2d, 0x70, 0x6c, 0x6f, 0x74, 0x2d, 0x7b, 0x7b, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x7d, + 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x69, 0x72, 0x63, + 0x6c, 0x65, 0x7b, 0x7b, 0x5e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, 0x7b, 0x2f, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, + 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x7d, 0x7d, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, + 0x7b, 0x7b, 0x2f, 0x70, 0x6c, 0x6f, 0x74, 0x7d, 0x7d, 0x7b, 0x7b, + 0x2f, 0x70, 0x6c, 0x6f, 0x74, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x7d, 0x7d, 0x3c, 0x6c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, + 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x7b, 0x7b, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x7d, 0x7d, + 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x7b, 0x7b, 0x23, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x7d, 0x7d, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, + 0x30, 0x29, 0x3b, 0x22, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x3d, 0x22, 0x7b, 0x7b, 0x69, 0x64, 0x7d, + 0x7d, 0x22, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x3d, 0x22, 0x7b, 0x7b, 0x6b, 0x65, 0x79, 0x7d, + 0x7d, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x7b, 0x7b, 0x5e, + 0x68, 0x69, 0x64, 0x65, 0x7d, 0x7d, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x2d, 0x7b, 0x7b, 0x2f, 0x68, 0x69, 0x64, 0x65, 0x7d, 0x7d, 0x73, + 0x71, 0x75, 0x61, 0x72, 0x65, 0x2d, 0x6f, 0x22, 0x3e, 0x3c, 0x2f, + 0x69, 0x3e, 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7d, + 0x7d, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x7b, + 0x7b, 0x2f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x3c, 0x2f, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, + 0x20, 0x54, 0x50, 0x4c, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x20, + 0x63, 0x6f, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x20, 0x2d, 0x2d, + 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x69, 0x64, + 0x3d, 0x22, 0x74, 0x70, 0x6c, 0x2d, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x63, 0x6f, 0x6c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3e, 0x7b, + 0x7b, 0x23, 0x68, 0x61, 0x73, 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x7d, 0x7d, 0x3c, 0x63, 0x6f, 0x6c, 0x20, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x20, 0x32, 0x25, 0x3b, 0x22, 0x3e, 0x20, 0x3c, 0x21, 0x2d, 0x2d, + 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2d, 0x63, 0x61, 0x72, 0x65, + 0x74, 0x20, 0x2d, 0x2d, 0x3e, 0x7b, 0x7b, 0x2f, 0x68, 0x61, 0x73, + 0x53, 0x75, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0x7d, 0x3c, + 0x63, 0x6f, 0x6c, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x33, 0x25, 0x3b, 0x22, + 0x3e, 0x20, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x72, 0x6f, 0x77, 0x20, + 0x23, 0x20, 0x2d, 0x2d, 0x3e, 0x7b, 0x7b, 0x23, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x7d, 0x7d, 0x3c, 0x63, 0x6f, 0x6c, 0x20, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x7b, 0x7b, 0x63, 0x6f, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x7d, + 0x7d, 0x22, 0x3e, 0x7b, 0x7b, 0x2f, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x7d, 0x7d, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, + 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x54, 0x50, 0x4c, 0x20, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x70, 0x6c, + 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x22, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, + 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x77, + 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x31, + 0x32, 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x66, 0x69, + 0x78, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x22, 0x3e, 0x3c, 0x68, 0x34, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x70, 0x75, 0x6c, 0x6c, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x2d, + 0x78, 0x73, 0x20, 0x67, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, + 0x20, 0x69, 0x64, 0x3d, 0x22, 0x7b, 0x7b, 0x69, 0x64, 0x7d, 0x7d, + 0x22, 0x3e, 0x7b, 0x7b, 0x68, 0x65, 0x61, 0x64, 0x7d, 0x7d, 0x3c, + 0x62, 0x72, 0x3e, 0x3c, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x7b, + 0x7b, 0x64, 0x65, 0x73, 0x63, 0x7d, 0x7d, 0x3c, 0x2f, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x3e, 0x3c, 0x2f, 0x68, 0x34, 0x3e, 0x3c, 0x68, + 0x35, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x70, 0x75, + 0x6c, 0x6c, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x2d, 0x78, 0x73, 0x20, 0x68, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x2d, 0x73, 0x6d, 0x20, 0x68, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x2d, 0x6d, 0x64, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x2d, 0x6c, 0x67, 0x20, 0x67, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x7b, 0x7b, 0x69, 0x64, + 0x7d, 0x7d, 0x22, 0x3e, 0x7b, 0x7b, 0x68, 0x65, 0x61, 0x64, 0x7d, + 0x7d, 0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x3e, 0x7b, 0x7b, 0x64, 0x65, 0x73, 0x63, 0x7d, 0x7d, 0x3c, 0x2f, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x3c, 0x2f, 0x68, 0x35, 0x3e, + 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x70, 0x6c, 0x6f, 0x74, + 0x2d, 0x77, 0x72, 0x61, 0x70, 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, + 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x64, 0x72, 0x6f, + 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x3e, 0x3c, 0x62, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x62, 0x74, 0x6e, 0x20, 0x62, 0x74, 0x6e, 0x2d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x20, 0x62, 0x74, 0x6e, 0x2d, 0x73, 0x6d, + 0x20, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x74, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, + 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x2d, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x3d, + 0x22, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x20, + 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x61, 0x73, 0x70, 0x6f, 0x70, + 0x75, 0x70, 0x3d, 0x22, 0x74, 0x72, 0x75, 0x65, 0x22, 0x20, 0x61, + 0x72, 0x69, 0x61, 0x2d, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, + 0x64, 0x3d, 0x22, 0x74, 0x72, 0x75, 0x65, 0x22, 0x20, 0x64, 0x61, + 0x74, 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3d, 0x22, 0x7b, + 0x7b, 0x69, 0x64, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, + 0x2d, 0x67, 0x65, 0x61, 0x72, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, + 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x73, 0x7d, 0x7d, + 0x20, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x61, + 0x72, 0x65, 0x74, 0x2d, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x3e, 0x3c, + 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x2f, 0x62, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x3e, 0x3c, 0x75, 0x6c, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, + 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x20, 0x64, 0x72, 0x6f, 0x70, + 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x2d, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, + 0x6f, 0x70, 0x74, 0x73, 0x2d, 0x7b, 0x7b, 0x69, 0x64, 0x7d, 0x7d, + 0x22, 0x3e, 0x3c, 0x2f, 0x75, 0x6c, 0x3e, 0x3c, 0x2f, 0x64, 0x69, + 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, + 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, + 0x64, 0x69, 0x76, 0x3e, 0x7b, 0x7b, 0x23, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x7d, 0x7d, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x77, 0x22, 0x3e, 0x3c, 0x64, + 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, + 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x31, 0x32, 0x22, 0x3e, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x68, 0x61, + 0x72, 0x74, 0x2d, 0x7b, 0x7b, 0x69, 0x64, 0x7d, 0x7d, 0x22, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x2d, 0x77, 0x72, 0x61, 0x70, 0x22, 0x3e, 0x3c, 0x2f, 0x64, + 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, + 0x64, 0x69, 0x76, 0x3e, 0x7b, 0x7b, 0x2f, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x7d, 0x7d, 0x7b, 0x7b, 0x23, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x7d, 0x7d, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x77, 0x20, 0x63, 0x6c, 0x65, 0x61, + 0x72, 0x66, 0x69, 0x78, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, + 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x20, 0x7b, 0x7b, 0x23, + 0x61, 0x75, 0x74, 0x6f, 0x48, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x7d, 0x7d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x2d, 0x78, 0x73, 0x7b, 0x7b, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x48, + 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x7d, 0x7d, + 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6c, 0x2d, 0x6d, 0x64, 0x2d, 0x31, + 0x32, 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x22, 0x3e, + 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3d, 0x22, 0x7b, 0x7b, 0x69, + 0x64, 0x7d, 0x7d, 0x22, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x2d, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x6c, 0x65, 0x73, + 0x73, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x7b, 0x7b, + 0x69, 0x64, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x63, 0x6f, 0x6c, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x3e, 0x3c, 0x2f, 0x63, 0x6f, 0x6c, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x3e, 0x3c, 0x74, 0x68, 0x65, 0x61, 0x64, + 0x3e, 0x3c, 0x2f, 0x74, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x3c, 0x74, + 0x62, 0x6f, 0x64, 0x79, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x6d, 0x65, 0x74, 0x61, + 0x22, 0x3e, 0x3c, 0x2f, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3c, + 0x74, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x2d, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x3e, 0x3c, 0x2f, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, + 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x2f, 0x64, + 0x69, 0x76, 0x3e, 0x3c, 0x75, 0x6c, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2d, 0x73, 0x6d, 0x20, 0x70, 0x75, 0x6c, 0x6c, 0x2d, + 0x6c, 0x65, 0x66, 0x74, 0x22, 0x3e, 0x3c, 0x6c, 0x69, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x22, 0x3e, 0x3c, 0x61, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, + 0x61, 0x72, 0x69, 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x3d, + 0x22, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x7d, 0x7d, 0x22, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3d, 0x22, 0x7b, 0x7b, + 0x69, 0x64, 0x7d, 0x7d, 0x22, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x3d, 0x22, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x69, + 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, + 0x66, 0x61, 0x2d, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x64, 0x6f, + 0x75, 0x62, 0x6c, 0x65, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x22, 0x3e, + 0x3c, 0x2f, 0x69, 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, + 0x69, 0x3e, 0x3c, 0x6c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, + 0x3e, 0x3c, 0x61, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x70, 0x72, 0x65, 0x76, 0x22, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, + 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, 0x61, 0x72, 0x69, 0x61, 0x2d, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x3d, 0x22, 0x7b, 0x7b, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, + 0x75, 0x73, 0x7d, 0x7d, 0x22, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3d, 0x22, 0x7b, 0x7b, 0x69, 0x64, + 0x7d, 0x7d, 0x22, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, + 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, + 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, + 0x20, 0x66, 0x61, 0x2d, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x2d, 0x6c, + 0x65, 0x66, 0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x3c, 0x2f, + 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, 0x3e, + 0x3c, 0x61, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, + 0x30, 0x29, 0x3b, 0x22, 0x20, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x3d, 0x22, 0x7b, 0x7b, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x2e, 0x6e, 0x65, 0x78, 0x74, 0x7d, 0x7d, 0x22, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x3d, 0x22, 0x7b, 0x7b, 0x69, 0x64, 0x7d, 0x7d, 0x22, 0x20, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, 0x7b, 0x7b, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x2e, 0x6e, 0x65, 0x78, 0x74, 0x7d, 0x7d, 0x22, + 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x61, 0x6e, 0x67, 0x6c, 0x65, + 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x69, + 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, + 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2d, 0x6c, 0x61, 0x73, + 0x74, 0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, + 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, + 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, 0x61, 0x72, 0x69, + 0x61, 0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x3d, 0x22, 0x7b, 0x7b, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x6c, 0x61, 0x73, 0x74, + 0x7d, 0x7d, 0x22, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x3d, 0x22, 0x7b, 0x7b, 0x69, 0x64, 0x7d, 0x7d, + 0x22, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, 0x7b, 0x7b, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x6c, 0x61, 0x73, 0x74, + 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x61, 0x6e, + 0x67, 0x6c, 0x65, 0x2d, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2d, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, + 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x2f, + 0x75, 0x6c, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, + 0x64, 0x69, 0x76, 0x3e, 0x7b, 0x7b, 0x2f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x7d, 0x7d, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, 0x54, 0x50, 0x4c, 0x20, 0x4e, + 0x61, 0x76, 0x20, 0x42, 0x61, 0x72, 0x20, 0x77, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x70, 0x6c, + 0x2d, 0x6e, 0x61, 0x76, 0x2d, 0x77, 0x72, 0x61, 0x70, 0x22, 0x20, + 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3e, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x6e, 0x61, 0x76, 0x2d, 0x62, 0x61, 0x72, 0x73, 0x20, 0x66, 0x61, + 0x20, 0x66, 0x61, 0x2d, 0x62, 0x61, 0x72, 0x73, 0x22, 0x3e, 0x3c, + 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6e, 0x61, 0x76, 0x2d, 0x67, + 0x65, 0x61, 0x72, 0x73, 0x20, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, + 0x63, 0x6f, 0x67, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, + 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x6e, 0x61, 0x76, 0x2d, 0x77, 0x73, 0x2d, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x20, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, + 0x69, 0x72, 0x63, 0x6c, 0x65, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, + 0x76, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x6e, 0x61, 0x76, 0x2d, 0x6c, 0x69, 0x73, 0x74, + 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x64, 0x69, + 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x70, 0x6f, + 0x77, 0x65, 0x72, 0x65, 0x64, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, + 0x6e, 0x2d, 0x78, 0x73, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x2d, 0x73, 0x6d, 0x22, 0x3e, 0x62, 0x79, 0x20, 0x3c, 0x61, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x73, + 0x3a, 0x2f, 0x2f, 0x67, 0x6f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2e, 0x69, 0x6f, 0x2f, 0x22, 0x3e, 0x47, 0x6f, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x3c, 0x73, 0x70, + 0x61, 0x6e, 0x3e, 0x76, 0x7b, 0x7b, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x7d, 0x7d, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x67, + 0x77, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x69, 0x6f, 0x2f, + 0x22, 0x3e, 0x47, 0x57, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x3c, + 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, + 0x20, 0x54, 0x50, 0x4c, 0x20, 0x4e, 0x61, 0x76, 0x20, 0x42, 0x61, + 0x72, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x20, 0x2d, 0x2d, 0x3e, + 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x69, 0x64, 0x3d, + 0x22, 0x74, 0x70, 0x6c, 0x2d, 0x6e, 0x61, 0x76, 0x2d, 0x6d, 0x65, + 0x6e, 0x75, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, + 0x65, 0x78, 0x74, 0x2f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x22, 0x3e, 0x3c, 0x68, 0x33, 0x3e, 0x7b, 0x7b, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x73, + 0x7d, 0x7d, 0x3c, 0x2f, 0x68, 0x33, 0x3e, 0x3c, 0x75, 0x6c, 0x3e, + 0x3c, 0x6c, 0x69, 0x20, 0x7b, 0x7b, 0x23, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x6c, 0x6c, 0x7d, 0x7d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x7d, 0x7d, 0x3e, 0x3c, + 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x23, 0x22, 0x3e, + 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, + 0x61, 0x20, 0x66, 0x61, 0x2d, 0x62, 0x61, 0x72, 0x2d, 0x63, 0x68, + 0x61, 0x72, 0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x7b, + 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x74, 0x68, 0x65, + 0x61, 0x64, 0x7d, 0x7d, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, + 0x69, 0x3e, 0x7b, 0x7b, 0x23, 0x6e, 0x61, 0x76, 0x7d, 0x7d, 0x3c, + 0x6c, 0x69, 0x20, 0x7b, 0x7b, 0x23, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x7d, 0x7d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x7d, 0x7d, 0x3e, 0x3c, 0x61, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x23, 0x7b, 0x7b, 0x6b, + 0x65, 0x79, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, + 0x7b, 0x7b, 0x69, 0x63, 0x6f, 0x6e, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, + 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, 0x68, 0x65, 0x61, 0x64, 0x7d, + 0x7d, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x7b, + 0x7b, 0x2f, 0x6e, 0x61, 0x76, 0x7d, 0x7d, 0x3c, 0x2f, 0x75, 0x6c, + 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, + 0x21, 0x2d, 0x2d, 0x20, 0x54, 0x50, 0x4c, 0x20, 0x4e, 0x61, 0x76, + 0x20, 0x42, 0x61, 0x72, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x70, 0x6c, 0x2d, 0x6e, + 0x61, 0x76, 0x2d, 0x6f, 0x70, 0x74, 0x73, 0x22, 0x20, 0x74, 0x79, + 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3e, 0x3c, 0x68, 0x33, + 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x74, + 0x61, 0x67, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x74, 0x68, 0x65, 0x6d, + 0x65, 0x7d, 0x7d, 0x3c, 0x2f, 0x68, 0x33, 0x3e, 0x3c, 0x75, 0x6c, + 0x3e, 0x3c, 0x6c, 0x69, 0x20, 0x7b, 0x7b, 0x23, 0x64, 0x61, 0x72, + 0x6b, 0x47, 0x72, 0x61, 0x79, 0x7d, 0x7d, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x7b, + 0x7b, 0x2f, 0x64, 0x61, 0x72, 0x6b, 0x47, 0x72, 0x61, 0x79, 0x7d, + 0x7d, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, + 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x74, 0x68, 0x65, 0x6d, 0x65, + 0x2d, 0x64, 0x61, 0x72, 0x6b, 0x2d, 0x67, 0x72, 0x61, 0x79, 0x22, + 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x69, 0x72, 0x63, 0x6c, + 0x65, 0x7b, 0x7b, 0x5e, 0x64, 0x61, 0x72, 0x6b, 0x47, 0x72, 0x61, + 0x79, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, 0x7b, 0x2f, 0x64, 0x61, 0x72, + 0x6b, 0x47, 0x72, 0x61, 0x79, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x2f, + 0x69, 0x3e, 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x5f, 0x67, 0x72, 0x61, 0x79, 0x7d, + 0x7d, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, + 0x6c, 0x69, 0x20, 0x7b, 0x7b, 0x23, 0x62, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x7d, 0x7d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, 0x62, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x7d, 0x7d, 0x3e, 0x3c, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, + 0x29, 0x3b, 0x22, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x74, 0x68, 0x65, 0x6d, 0x65, 0x2d, 0x62, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x69, 0x72, + 0x63, 0x6c, 0x65, 0x7b, 0x7b, 0x5e, 0x62, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, 0x7b, 0x2f, 0x62, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, + 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x62, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x7d, 0x3c, 0x2f, 0x61, 0x3e, + 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, 0x20, 0x7b, 0x7b, + 0x23, 0x64, 0x61, 0x72, 0x6b, 0x42, 0x6c, 0x75, 0x65, 0x7d, 0x7d, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, 0x64, 0x61, 0x72, 0x6b, 0x42, + 0x6c, 0x75, 0x65, 0x7d, 0x7d, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, + 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, + 0x3b, 0x22, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x74, + 0x68, 0x65, 0x6d, 0x65, 0x2d, 0x64, 0x61, 0x72, 0x6b, 0x2d, 0x62, + 0x6c, 0x75, 0x65, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, + 0x69, 0x72, 0x63, 0x6c, 0x65, 0x7b, 0x7b, 0x5e, 0x64, 0x61, 0x72, + 0x6b, 0x42, 0x6c, 0x75, 0x65, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, 0x7b, + 0x2f, 0x64, 0x61, 0x72, 0x6b, 0x42, 0x6c, 0x75, 0x65, 0x7d, 0x7d, + 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x5f, 0x62, + 0x6c, 0x75, 0x65, 0x7d, 0x7d, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, + 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, 0x20, 0x7b, 0x7b, 0x23, 0x64, + 0x61, 0x72, 0x6b, 0x50, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x7d, 0x7d, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, 0x64, 0x61, 0x72, 0x6b, 0x50, + 0x75, 0x72, 0x70, 0x6c, 0x65, 0x7d, 0x7d, 0x3e, 0x3c, 0x61, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, + 0x30, 0x29, 0x3b, 0x22, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x2d, 0x64, 0x61, 0x72, 0x6b, + 0x2d, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x22, 0x3e, 0x3c, 0x69, + 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, + 0x66, 0x61, 0x2d, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x7b, 0x7b, + 0x5e, 0x64, 0x61, 0x72, 0x6b, 0x50, 0x75, 0x72, 0x70, 0x6c, 0x65, + 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, 0x7b, 0x2f, 0x64, 0x61, 0x72, 0x6b, + 0x50, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, + 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x2e, 0x64, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x75, 0x72, 0x70, + 0x6c, 0x65, 0x7d, 0x7d, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, + 0x69, 0x3e, 0x3c, 0x2f, 0x75, 0x6c, 0x3e, 0x3c, 0x68, 0x33, 0x3e, + 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, + 0x61, 0x20, 0x66, 0x61, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x2d, 0x61, + 0x6c, 0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x73, 0x7d, 0x7d, 0x3c, 0x2f, 0x68, 0x33, 0x3e, 0x3c, 0x75, + 0x6c, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x70, 0x65, + 0x72, 0x70, 0x61, 0x67, 0x65, 0x2d, 0x77, 0x72, 0x61, 0x70, 0x22, + 0x3e, 0x3c, 0x6c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x64, 0x72, 0x6f, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, + 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, + 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, + 0x67, 0x65, 0x7d, 0x7d, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, + 0x69, 0x20, 0x7b, 0x7b, 0x23, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, + 0x65, 0x35, 0x7d, 0x7d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, 0x70, + 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x35, 0x7d, 0x7d, 0x3e, 0x3c, + 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, + 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, + 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x2d, 0x70, 0x65, 0x72, 0x70, 0x61, 0x67, 0x65, 0x3d, 0x22, 0x35, + 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x69, 0x72, 0x63, + 0x6c, 0x65, 0x7b, 0x7b, 0x5e, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, + 0x65, 0x35, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, 0x7b, 0x2f, 0x70, 0x65, + 0x72, 0x50, 0x61, 0x67, 0x65, 0x35, 0x7d, 0x7d, 0x22, 0x3e, 0x3c, + 0x2f, 0x69, 0x3e, 0x20, 0x35, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, + 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, 0x20, 0x7b, 0x7b, 0x23, 0x70, + 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x37, 0x7d, 0x7d, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x22, 0x7b, 0x7b, 0x2f, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, + 0x37, 0x7d, 0x7d, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, + 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x70, 0x65, 0x72, 0x70, 0x61, + 0x67, 0x65, 0x3d, 0x22, 0x37, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, + 0x2d, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x7b, 0x7b, 0x5e, 0x70, + 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x37, 0x7d, 0x7d, 0x2d, 0x6f, + 0x7b, 0x7b, 0x2f, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x37, + 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x37, 0x3c, + 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, + 0x20, 0x7b, 0x7b, 0x23, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, + 0x31, 0x30, 0x7d, 0x7d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, 0x70, + 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x31, 0x30, 0x7d, 0x7d, 0x3e, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, + 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, + 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x2d, 0x70, 0x65, 0x72, 0x70, 0x61, 0x67, 0x65, 0x3d, 0x22, + 0x31, 0x30, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x69, + 0x72, 0x63, 0x6c, 0x65, 0x7b, 0x7b, 0x5e, 0x70, 0x65, 0x72, 0x50, + 0x61, 0x67, 0x65, 0x31, 0x30, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, 0x7b, + 0x2f, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x31, 0x30, 0x7d, + 0x7d, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x31, 0x30, 0x3c, + 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, + 0x20, 0x7b, 0x7b, 0x23, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, + 0x31, 0x35, 0x7d, 0x7d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, 0x70, + 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x31, 0x35, 0x7d, 0x7d, 0x3e, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, + 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, + 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x2d, 0x70, 0x65, 0x72, 0x70, 0x61, 0x67, 0x65, 0x3d, 0x22, + 0x31, 0x35, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x69, + 0x72, 0x63, 0x6c, 0x65, 0x7b, 0x7b, 0x5e, 0x70, 0x65, 0x72, 0x50, + 0x61, 0x67, 0x65, 0x31, 0x35, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, 0x7b, + 0x2f, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x31, 0x35, 0x7d, + 0x7d, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x31, 0x35, 0x3c, + 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, + 0x20, 0x7b, 0x7b, 0x23, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, + 0x32, 0x30, 0x7d, 0x7d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, 0x70, + 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x32, 0x30, 0x7d, 0x7d, 0x3e, + 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, + 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, + 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x2d, 0x70, 0x65, 0x72, 0x70, 0x61, 0x67, 0x65, 0x3d, 0x22, + 0x32, 0x30, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x69, + 0x72, 0x63, 0x6c, 0x65, 0x7b, 0x7b, 0x5e, 0x70, 0x65, 0x72, 0x50, + 0x61, 0x67, 0x65, 0x32, 0x30, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, 0x7b, + 0x2f, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x32, 0x30, 0x7d, + 0x7d, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x32, 0x30, 0x3c, + 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, + 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x64, 0x72, 0x6f, + 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x73, 0x7d, 0x7d, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, + 0x69, 0x20, 0x7b, 0x7b, 0x23, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x7d, 0x7d, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x7b, 0x7b, + 0x2f, 0x73, 0x68, 0x6f, 0x77, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x7d, 0x7d, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x73, 0x68, 0x6f, 0x77, 0x2d, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x3d, 0x22, 0x31, 0x22, 0x3e, 0x3c, + 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, + 0x20, 0x66, 0x61, 0x2d, 0x7b, 0x7b, 0x23, 0x73, 0x68, 0x6f, 0x77, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x7d, 0x7d, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x2d, 0x7b, 0x7b, 0x2f, 0x73, 0x68, 0x6f, 0x77, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x7d, 0x7d, 0x73, 0x71, 0x75, 0x61, + 0x72, 0x65, 0x2d, 0x6f, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, + 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x7d, 0x7d, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, + 0x3e, 0x3c, 0x6c, 0x69, 0x20, 0x7b, 0x7b, 0x23, 0x61, 0x75, 0x74, + 0x6f, 0x48, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x7d, 0x7d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, 0x61, 0x75, 0x74, + 0x6f, 0x48, 0x69, 0x64, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x7d, 0x7d, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, + 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x61, 0x75, 0x74, 0x6f, 0x68, 0x69, + 0x64, 0x65, 0x2d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x3d, 0x22, + 0x31, 0x22, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x22, 0x7b, + 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x61, 0x68, 0x5f, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x7b, 0x7b, + 0x23, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x69, 0x64, 0x65, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x7d, 0x7d, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x2d, 0x7b, 0x7b, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x48, 0x69, 0x64, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x7d, 0x7d, 0x73, 0x71, + 0x75, 0x61, 0x72, 0x65, 0x2d, 0x6f, 0x22, 0x3e, 0x3c, 0x2f, 0x69, + 0x3e, 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, + 0x61, 0x68, 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x7d, 0x7d, 0x3c, + 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x2f, 0x75, + 0x6c, 0x3e, 0x3c, 0x68, 0x33, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, + 0x74, 0x68, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x22, 0x3e, 0x3c, + 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x2e, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x7d, 0x7d, 0x3c, + 0x2f, 0x68, 0x33, 0x3e, 0x3c, 0x75, 0x6c, 0x3e, 0x3c, 0x6c, 0x69, + 0x20, 0x7b, 0x7b, 0x23, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, + 0x74, 0x61, 0x6c, 0x7d, 0x7d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, + 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x7d, + 0x7d, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, + 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, + 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x22, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x2d, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, + 0x6c, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x69, 0x72, + 0x63, 0x6c, 0x65, 0x7b, 0x7b, 0x5e, 0x68, 0x6f, 0x72, 0x69, 0x7a, + 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, 0x7b, + 0x2f, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, + 0x7d, 0x7d, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x7d, 0x7d, 0x3c, 0x2f, 0x61, + 0x3e, 0x3c, 0x2f, 0x6c, 0x69, 0x3e, 0x3c, 0x6c, 0x69, 0x20, 0x7b, + 0x7b, 0x23, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x7d, + 0x7d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x22, 0x7b, 0x7b, 0x2f, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x7d, 0x7d, 0x3e, 0x3c, 0x61, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, + 0x29, 0x3b, 0x22, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2d, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x63, 0x61, 0x6c, 0x22, 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, + 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x7b, 0x7b, 0x5e, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x7d, 0x7d, 0x2d, 0x6f, 0x7b, + 0x7b, 0x2f, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x7d, + 0x7d, 0x22, 0x3e, 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x2e, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x7d, 0x7d, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, + 0x6c, 0x69, 0x3e, 0x3c, 0x2f, 0x75, 0x6c, 0x3e, 0x3c, 0x68, 0x33, + 0x3e, 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x66, 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x6f, 0x67, 0x22, 0x3e, + 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x70, 0x74, + 0x73, 0x7d, 0x7d, 0x3c, 0x2f, 0x68, 0x33, 0x3e, 0x3c, 0x75, 0x6c, + 0x3e, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, + 0x22, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x3e, + 0x3c, 0x69, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, + 0x61, 0x20, 0x66, 0x61, 0x2d, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3e, + 0x3c, 0x2f, 0x69, 0x3e, 0x20, 0x7b, 0x7b, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x2e, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6a, + 0x73, 0x6f, 0x6e, 0x7d, 0x7d, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, + 0x6c, 0x69, 0x3e, 0x3c, 0x2f, 0x75, 0x6c, 0x3e, 0x3c, 0x2f, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, 0x21, 0x2d, 0x2d, 0x20, + 0x54, 0x50, 0x4c, 0x20, 0x43, 0x68, 0x61, 0x72, 0x74, 0x20, 0x74, + 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x20, 0x2d, 0x2d, 0x3e, 0x3c, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x69, 0x64, 0x3d, 0x22, + 0x74, 0x70, 0x6c, 0x2d, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, + 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x22, 0x20, 0x74, 0x79, 0x70, + 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x74, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x3e, 0x3c, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, + 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, + 0x70, 0x22, 0x3e, 0x3c, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3c, + 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x68, 0x20, 0x63, 0x6f, 0x6c, 0x73, + 0x70, 0x61, 0x6e, 0x3d, 0x22, 0x32, 0x22, 0x3e, 0x7b, 0x7b, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x30, 0x7d, 0x7d, 0x3c, 0x2f, 0x74, 0x68, + 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, + 0x74, 0x64, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x62, 0x6c, 0x75, 0x65, + 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x68, 0x69, + 0x74, 0x73, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x3e, 0x7b, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x31, + 0x7d, 0x7d, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, + 0x3e, 0x7b, 0x7b, 0x23, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x32, 0x7d, + 0x7d, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3e, + 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x72, 0x65, 0x64, 0x22, 0x3e, 0x3c, 0x2f, 0x73, 0x70, + 0x61, 0x6e, 0x3e, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x73, + 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x22, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x3e, 0x7b, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x32, 0x7d, 0x7d, + 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x7b, + 0x7b, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x32, 0x7d, 0x7d, 0x3c, + 0x2f, 0x74, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3c, 0x2f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x3e, 0x00 +}; + +const int tpls_length = 10299; diff --git a/src/goaccess++/src/ui.c b/src/goaccess++/src/ui.c new file mode 100644 index 0000000..e0e9565 --- /dev/null +++ b/src/goaccess++/src/ui.c @@ -0,0 +1,1965 @@ +/** + * ui.c -- various curses interfaces + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#define _LARGEFILE_SOURCE +#define _LARGEFILE64_SOURCE +#define _FILE_OFFSET_BITS 64 + +#define STDIN_FILENO 0 +#ifndef _BSD_SOURCE +#define _BSD_SOURCE /* include stuff from 4.3 BSD */ +#endif +#ifndef _DEFAULT_SOURCE +#define _DEFAULT_SOURCE +#endif + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ui.h" + +#ifdef HAVE_LIBTOKYOCABINET +#include "tcabdb.h" +#else +#include "gkhash.h" +#endif + +#include "color.h" +#include "error.h" +#include "gmenu.h" +#include "goaccess.h" +#include "util.h" +#include "xmalloc.h" + +/* *INDENT-OFF* */ +/* Determine which metrics should be displayed per module/panel */ +static GOutput outputting[] = { + {VISITORS , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 , 1} , + {REQUESTS , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0} , + {REQUESTS_STATIC , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0} , + {NOT_FOUND , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0} , + {HOSTS , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 , 0} , + {OS , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 , 1} , + {BROWSERS , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 , 1} , + {VISIT_TIMES , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 , 1} , + {VIRTUAL_HOSTS , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 0 , 0} , + {REFERRERS , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 0 , 0} , + {REFERRING_SITES , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 0 , 0} , + {KEYPHRASES , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 0 , 0} , + {STATUS_CODES , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 0 , 0} , + {REMOTE_USER , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 0 , 0} , +#ifdef HAVE_GEOLOCATION + {GEO_LOCATION , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 0 , 0} , +#endif +}; +/* *INDENT-ON* */ + +/* Structure to display overall statistics */ +typedef struct Field_ +{ + const char *field; + /* char due to log, bw, log_file */ + char *value; + GColors *(*colorlbl) (void); + GColors *(*colorval) (void); + short oneliner; +} Field; + +/* Determine which metrics to output given a module + * + * On error, or if not found, NULL is returned. + * On success, the panel value is returned. */ +GOutput * +output_lookup (GModule module) +{ + int i, num_panels = ARRAY_SIZE (outputting); + + for (i = 0; i < num_panels; i++) { + if (outputting[i].module == module) + return &outputting[i]; + } + return NULL; +} + +/* Initialize curses colors */ +void +init_colors (int force) +{ + /* use default foreground/background colors */ + use_default_colors (); + /* first set a default normal color */ + set_normal_color (); + /* then parse custom colors and initialize them */ + set_colors (force); +} + +/* Ncurses' window handling */ +void +set_input_opts (void) +{ + initscr (); + clear (); + noecho (); + halfdelay (10); + nonl (); + intrflush (stdscr, FALSE); + keypad (stdscr, TRUE); + if (curs_set (0) == ERR) + LOG_DEBUG (("Unable to change cursor: %s\n", strerror (errno))); + + if (conf.mouse_support) + mousemask (BUTTON1_CLICKED, NULL); +} + +/* Deletes the given window, freeing all memory associated with it. */ +void +close_win (WINDOW * w) +{ + if (w == NULL) + return; + wclear (w); + wrefresh (w); + delwin (w); +} + +/* Get the current calendar time as a value of type time_t and convert + * time_t to tm as local time */ +void +generate_time (void) +{ + timestamp = time (NULL); + now_tm = localtime (×tamp); +} + +/* Set the loading spinner as ended and manage the mutex locking. */ +void +end_spinner (void) +{ + if (conf.no_parsing_spinner) + return; + + pthread_mutex_lock (&parsing_spinner->mutex); + parsing_spinner->state = SPN_END; + pthread_mutex_unlock (&parsing_spinner->mutex); +} + +/* Set background colors to all windows. */ +void +set_wbkgd (WINDOW * main_win, WINDOW * header_win) +{ + GColors *color = get_color (COLOR_BG); + + /* background colors */ + wbkgd (main_win, COLOR_PAIR (color->pair->idx)); + wbkgd (header_win, COLOR_PAIR (color->pair->idx)); + wbkgd (stdscr, COLOR_PAIR (color->pair->idx)); + wrefresh (main_win); +} + +/* Creates and the new terminal windows and set basic properties to + * each of them. e.g., background color, enable the reading of + * function keys. */ +void +init_windows (WINDOW ** header_win, WINDOW ** main_win) +{ + int row = 0, col = 0; + + /* init standard screen */ + getmaxyx (stdscr, row, col); + if (row < MIN_HEIGHT || col < MIN_WIDTH) + FATAL ("Minimum screen size - 0 columns by 7 lines"); + + /* init header screen */ + *header_win = newwin (6, col, 0, 0); + keypad (*header_win, TRUE); + if (*header_win == NULL) + FATAL ("Unable to allocate memory for header_win."); + + /* init main screen */ + *main_win = newwin (row - 8, col, 7, 0); + keypad (*main_win, TRUE); + if (*main_win == NULL) + FATAL ("Unable to allocate memory for main_win."); + set_wbkgd (*main_win, *header_win); +} + +#pragma GCC diagnostic ignored "-Wformat-nonliteral" +/* Draw a generic header with the ability to set a custom text to it. */ +void +draw_header (WINDOW * win, const char *s, const char *fmt, int y, int x, int w, + GColors * (*func) (void)) +{ + GColors *color = (*func) (); + char *buf; + + buf = xmalloc (snprintf (NULL, 0, fmt, s) + 1); + sprintf (buf, fmt, s); + + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwhline (win, y, x, ' ', w); + mvwaddnstr (win, y, x, buf, w); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); + + free (buf); +} + +#pragma GCC diagnostic warning "-Wformat-nonliteral" + +/* Determine the actual size of the main window. */ +void +term_size (WINDOW * main_win, int *main_win_height) +{ + int term_h = 0, term_w = 0; + + getmaxyx (stdscr, term_h, term_w); + + *main_win_height = term_h - (MAX_HEIGHT_HEADER + MAX_HEIGHT_FOOTER); + wresize (main_win, *main_win_height, term_w); + wmove (main_win, *main_win_height, 0); +} + +/* Get the module/panel label name for the given module enum value. + * + * On success, a string containing the label name is returned. */ +const char * +module_to_label (GModule module) +{ + static const char *modules[] = { + VISITORS_LABEL, + REQUESTS_LABEL, + REQUESTS_STATIC_LABEL, + NOT_FOUND_LABEL, + HOSTS_LABEL, + OS_LABEL, + BROWSERS_LABEL, + VISIT_TIMES_LABEL, + VIRTUAL_HOSTS_LABEL, + REFERRERS_LABEL, + REFERRING_SITES_LABEL, + KEYPHRASES_LABEL, + STATUS_CODES_LABEL, + REMOTE_USER_LABEL, +#ifdef HAVE_GEOLOCATION + GEO_LOCATION_LABEL, +#endif + }; + + return _(modules[module]); +} + +/* Get the module/panel label id for the given module enum value. + * + * On success, a string containing the label id is returned. */ +const char * +module_to_id (GModule module) +{ + static const char *modules[] = { + VISITORS_ID, + REQUESTS_ID, + REQUESTS_STATIC_ID, + NOT_FOUND_ID, + HOSTS_ID, + OS_ID, + BROWSERS_ID, + VISIT_TIMES_ID, + VIRTUAL_HOSTS_ID, + REFERRERS_ID, + REFERRING_SITES_ID, + KEYPHRASES_ID, + STATUS_CODES_ID, + REMOTE_USER_ID, +#ifdef HAVE_GEOLOCATION + GEO_LOCATION_ID, +#endif + }; + + return _(modules[module]); +} + +/* Get the module/panel label header for the given module enum value. + * + * On success, a string containing the label header is returned. */ +const char * +module_to_head (GModule module) +{ + static const char *modules[] = { + VISITORS_HEAD, + REQUESTS_HEAD, + REQUESTS_STATIC_HEAD, + NOT_FOUND_HEAD, + HOSTS_HEAD, + OS_HEAD, + BROWSERS_HEAD, + VISIT_TIMES_HEAD, + VIRTUAL_HOSTS_HEAD, + REFERRERS_HEAD, + REFERRING_SITES_HEAD, + KEYPHRASES_HEAD, + STATUS_CODES_HEAD, + REMOTE_USER_HEAD, +#ifdef HAVE_GEOLOCATION + GEO_LOCATION_HEAD, +#endif + }; + + if (!conf.ignore_crawlers) + modules[VISITORS] = VISITORS_HEAD_BOTS; + + return _(modules[module]); +} + +/* Get the module/panel label description for the given module enum + * value. + * + * On success, a string containing the label description is returned. */ +const char * +module_to_desc (GModule module) +{ + static const char *modules[] = { + VISITORS_DESC, + REQUESTS_DESC, + REQUESTS_STATIC_DESC, + NOT_FOUND_DESC, + HOSTS_DESC, + OS_DESC, + BROWSERS_DESC, + VISIT_TIMES_DESC, + VIRTUAL_HOSTS_DESC, + REFERRERS_DESC, + REFERRING_SITES_DESC, + KEYPHRASES_DESC, + STATUS_CODES_DESC, + REMOTE_USER_DESC, +#ifdef HAVE_GEOLOCATION + GEO_LOCATION_DESC, +#endif + }; + + return _(modules[module]); +} + +/* Rerender the header window to reflect active module. */ +void +update_active_module (WINDOW * header_win, GModule current) +{ + GColors *color = get_color (COLOR_ACTIVE_LABEL); + const char *module = module_to_label (current); + int col = getmaxx (stdscr); + + char *lbl = xmalloc (snprintf (NULL, 0, T_ACTIVE_PANEL, module) + 1); + sprintf (lbl, T_ACTIVE_PANEL, module); + + wmove (header_win, 0, 30); + + wattron (header_win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (header_win, 0, col - strlen (lbl) - 1, "%s", lbl); + wattroff (header_win, color->attr | COLOR_PAIR (color->pair->idx)); + + wrefresh (header_win); + + free (lbl); +} + +/* Print out (terminal) an overall field label. e.g., 'Processed Time' */ +static void +render_overall_field (WINDOW * win, const char *s, int y, int x, + GColors * color) +{ + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, x, "%s", s); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); +} + +/* Print out (terminal) an overall field value. e.g., '120 secs' */ +static void +render_overall_value (WINDOW * win, const char *s, int y, int x, + GColors * color) +{ + wattron (win, color->attr | COLOR_PAIR (color->pair->idx)); + mvwprintw (win, y, x, "%s", s); + wattroff (win, color->attr | COLOR_PAIR (color->pair->idx)); +} + +/* Convert the number of excluded ips to a string. + * + * On success, the number of excluded ips as a string is returned. */ +static char * +get_str_excluded_ips (GLog * glog) +{ + return int2str (glog->excluded_ip, 0); +} + +/* Convert the number of failed requests to a string. + * + * On success, the number of failed requests as a string is returned. */ +static char * +get_str_failed_reqs (GLog * glog) +{ + return int2str (glog->invalid, 0); +} + +/* Convert the number of processed requests to a string. + * + * On success, the number of processed requests as a string is returned. */ +static char * +get_str_processed_reqs (GLog * glog) +{ + return int2str (glog->processed, 0); +} + +/* Convert the number of valid requests to a string. + * + * On success, the number of valid requests as a string is returned. */ +static char * +get_str_valid_reqs (GLog * glog) +{ + return int2str (glog->valid, 0); +} + +/* Convert the number of not found requests to a string. + * + * On success, the number of not found requests as a string is + * returned. */ +static char * +get_str_notfound_reqs (void) +{ + return int2str (ht_get_size_datamap (NOT_FOUND), 0); +} + +/* Convert the number of referrers to a string. + * + * On success, the number of referrers as a string is returned. */ +static char * +get_str_ref_reqs (void) +{ + return int2str (ht_get_size_datamap (REFERRERS), 0); +} + +/* Convert the number of requests to a string. + * + * On success, the number of requests as a string is returned. */ +static char * +get_str_reqs (void) +{ + return int2str (ht_get_size_datamap (REQUESTS), 0); +} + +/* Convert the number of static requests to a string. + * + * On success, the number of static requests as a string is returned. */ +static char * +get_str_static_reqs (void) +{ + return int2str (ht_get_size_datamap (REQUESTS_STATIC), 0); +} + +/* Convert the number of unique visitors to a string. + * + * On success, the number of unique visitors as a string is returned. */ +static char * +get_str_visitors (void) +{ + return int2str (ht_get_size_uniqmap (VISITORS), 0); +} + +/* Convert the time taken to process the log to a string. + * + * On success, the time taken to process the log as a string is + * returned. */ +static char * +get_str_proctime (void) +{ + char *s = NULL; + uint64_t secs = (long long) end_proc - start_proc; + +#ifdef TCB_BTREE + if (conf.store_accumulated_time) + secs = (uint64_t) ht_get_genstats ("accumulated_time"); +#endif + + s = xmalloc (snprintf (NULL, 0, "%" PRIu64 "s", secs) + 1); + sprintf (s, "%" PRIu64 "s", secs); + + return s; +} + +/* Get the log file size in a human readable format. + * + * On success, the log file size as a string is returned. */ +static char * +get_str_filesize (void) +{ + return filesize_str (get_log_sizes ()); +} + +/* Get the log file path. + * + * On success, the log file path as a string is returned. */ +static char * +get_str_logfile (void) +{ + int col = getmaxx (stdscr), left_padding = 20; + return get_log_source_str (col - left_padding); +} + +/* Get the bandwidth in a human readable format. + * + * On success, the bandwidth as a string is returned. */ +static char * +get_str_bandwidth (GLog * glog) +{ + return filesize_str ((float) glog->resp_size); +} + +/* Iterate over the visitors module and sort date in an ascending + * order. + * + * On success, an array of sorted dates is returned. */ +static char ** +get_visitors_dates (GHolder * h) +{ + char **dates = malloc (sizeof (char *) * h->holder_size); + int i; + + for (i = 0; i < h->idx; i++) { + dates[i] = h->items[i].metrics->data; + } + qsort (dates, h->holder_size, sizeof (char *), strcmp_asc); + + return dates; +} + +/* Get the overall statistics start and end dates. + * + * On failure, 1 is returned + * On success, 0 is returned and an string containing the overall + * header is returned. */ +int +get_start_end_parsing_dates (GHolder * h, char **start, char **end, + const char *f) +{ + char **dates = NULL; + const char *sndfmt = conf.spec_date_time_num_format; + + if (h->idx == 0) + return 1; + + dates = get_visitors_dates (h + VISITORS); + + /* just display the actual dates - no specificity */ + *start = get_visitors_date (dates[0], sndfmt, f); + *end = get_visitors_date (dates[h->idx - 1], sndfmt, f); + + free (dates); + + return 0; +} + +/* Get the overall statistics header (label). + * + * On success, an string containing the overall header is returned. */ +char * +get_overall_header (GHolder * h) +{ + const char *head = T_DASH_HEAD; + char *hd = NULL, *start = NULL, *end = NULL; + + if (h->idx == 0 || get_start_end_parsing_dates (h, &start, &end, "%d/%b/%Y")) + return xstrdup (head); + + hd = xmalloc (snprintf (NULL, 0, "%s (%s - %s)", head, start, end) + 1); + sprintf (hd, "%s (%s - %s)", head, start, end); + + free (end); + free (start); + + return hd; +} + +/* Print out (terminal dashboard) the overall statistics header. */ +static void +render_overall_header (WINDOW * win, GHolder * h) +{ + char *hd = get_overall_header (h); + int col = getmaxx (stdscr); + + draw_header (win, hd, " %s", 0, 0, col, color_panel_header); + free (hd); +} + +/* Render the overall statistics. This will attempt to determine the + * right X and Y position given the current values. */ +static void +render_overall_statistics (WINDOW * win, Field fields[], size_t n) +{ + GColors *color = NULL; + int x_field = 2, x_value = 0; + size_t i, j, k, max_field = 0, max_value = 0, mod_val, y; + + for (i = 0, k = 0, y = 2; i < n; i++) { + /* new line every OVERALL_NUM_COLS */ + mod_val = k % OVERALL_NUM_COLS; + + /* reset position & length and increment row */ + if (k > 0 && mod_val == 0) { + max_value = max_field = 0; + x_value = x_field = 2; + y++; + } + + /* x pos = max length of field */ + x_field += max_field; + + color = (*fields[i].colorlbl) (); + render_overall_field (win, fields[i].field, y, x_field, color); + + /* get max length of field in the same column */ + max_field = 0; + for (j = 0; j < n; j++) { + size_t len = strlen (fields[j].field); + if (j % OVERALL_NUM_COLS == mod_val && len > max_field && + !fields[j].oneliner) + max_field = len; + } + /* get max length of value in the same column */ + max_value = 0; + for (j = 0; j < n; j++) { + size_t len = strlen (fields[j].value); + if (j % OVERALL_NUM_COLS == mod_val && len > max_value && + !fields[j].oneliner) + max_value = len; + } + + /* spacers */ + x_value = max_field + x_field + 1; + max_field += max_value + 2; + + color = (*fields[i].colorval) (); + render_overall_value (win, fields[i].value, y, x_value, color); + k += fields[i].oneliner ? OVERALL_NUM_COLS : 1; + } +} + +/* The entry point to render the overall statistics and free its data. */ +void +display_general (WINDOW * win, GLog * glog, GHolder * h) +{ + GColors *(*colorlbl) (void) = color_overall_lbls; + GColors *(*colorpth) (void) = color_overall_path; + GColors *(*colorval) (void) = color_overall_vals; + + size_t n, i; + + /* *INDENT-OFF* */ + Field fields[] = { + {T_REQUESTS , get_str_processed_reqs (glog), colorlbl, colorval, 0}, + {T_UNIQUE_VISITORS , get_str_visitors () , colorlbl, colorval, 0}, + {T_UNIQUE_FILES , get_str_reqs () , colorlbl, colorval, 0}, + {T_REFERRER , get_str_ref_reqs () , colorlbl, colorval, 0}, + {T_VALID , get_str_valid_reqs (glog) , colorlbl, colorval, 0}, + {T_GEN_TIME , get_str_proctime () , colorlbl, colorval, 0}, + {T_STATIC_FILES , get_str_static_reqs () , colorlbl, colorval, 0}, + {T_LOG , get_str_filesize () , colorlbl, colorval, 0}, + {T_FAILED , get_str_failed_reqs (glog) , colorlbl, colorval, 0}, + {T_EXCLUDE_IP , get_str_excluded_ips (glog) , colorlbl, colorval, 0}, + {T_UNIQUE404 , get_str_notfound_reqs () , colorlbl, colorval, 0}, + {T_BW , get_str_bandwidth (glog) , colorlbl, colorval, 0}, + {T_LOG_PATH , get_str_logfile () , colorlbl, colorpth, 1} + }; + /* *INDENT-ON* */ + + werase (win); + render_overall_header (win, h); + + n = ARRAY_SIZE (fields); + render_overall_statistics (win, fields, n); + + for (i = 0; i < n; i++) { + free (fields[i].value); + } +} + +/* Implement a basic framework to build a field input. + * + * On success, the inputted string is returned. */ +char * +input_string (WINDOW * win, int pos_y, int pos_x, size_t max_width, + const char *str, int enable_case, int *toggle_case) +{ + char *s = xmalloc (max_width + 1), *tmp; + size_t i, c, pos = 0, x = 0, quit = 1, len = 0, size_x = 0, size_y = 0; + + getmaxyx (win, size_y, size_x); + size_x -= 4; + + /* are we setting a default string */ + if (str) { + len = MIN (max_width, strlen (str)); + memcpy (s, str, len); + s[len] = '\0'; + + x = pos = 0; + /* is the default str length greater than input field? */ + if (strlen (s) > size_x) { + tmp = xstrdup (&s[0]); + tmp[size_x] = '\0'; + mvwprintw (win, pos_y, pos_x, "%s", tmp); + free (tmp); + } else { + mvwprintw (win, pos_y, pos_x, "%s", s); + } + } else { + s[0] = '\0'; + } + + if (enable_case) + mvwprintw (win, size_y - 2, 1, " %s", CSENSITIVE); + + wmove (win, pos_y, pos_x + x); + wrefresh (win); + + curs_set (1); + while (quit) { + c = wgetch (stdscr); + switch (c) { + case 1: /* ^a */ + case 262: /* HOME */ + pos = x = 0; + break; + case 5: + case 360: /* END of line */ + if (strlen (s) > size_x) { + x = size_x; + pos = strlen (s) - size_x; + } else { + pos = 0; + x = strlen (s); + } + break; + case 7: /* ^g */ + case 27: /* ESC */ + pos = x = 0; + if (str && *str == '\0') + s[0] = '\0'; + quit = 0; + break; + case 9: /* TAB */ + if (!enable_case) + break; + *toggle_case = *toggle_case == 0 ? 1 : 0; + if (*toggle_case) + mvwprintw (win, size_y - 2, 1, " %s", CISENSITIVE); + else if (!*toggle_case) + mvwprintw (win, size_y - 2, 1, " %s", CSENSITIVE); + break; + case 21: /* ^u */ + s[0] = '\0'; + pos = x = 0; + break; + case 8: /* xterm-256color */ + case 127: + case KEY_BACKSPACE: + if (pos + x > 0) { + memmove (&s[(pos + x) - 1], &s[pos + x], (max_width - (pos + x)) + 1); + if (pos <= 0) + x--; + else + pos--; + } + break; + case KEY_LEFT: + if (x > 0) + x--; + else if (pos > 0) + pos--; + break; + case KEY_RIGHT: + if ((x + pos) < strlen (s)) { + if (x < size_x) + x++; + else + pos++; + } + break; + case 0x0a: + case 0x0d: + case KEY_ENTER: + quit = 0; + break; + default: + if (strlen (s) == max_width) + break; + if (!isprint (c)) + break; + + if (strlen (s) == pos) { + s[pos + x] = c; + s[pos + x + 1] = '\0'; + waddch (win, c); + } else { + memmove (&s[pos + x + 1], &s[pos + x], strlen (&s[pos + x]) + 1); + s[pos + x] = c; + } + if ((x + pos) < max_width) { + if (x < size_x) + x++; + else + pos++; + } + } + tmp = xstrdup (&s[pos > 0 ? pos : 0]); + tmp[MIN (strlen (tmp), size_x)] = '\0'; + for (i = strlen (tmp); i < size_x; i++) + mvwprintw (win, pos_y, pos_x + i, "%s", " "); + mvwprintw (win, pos_y, pos_x, "%s", tmp); + free (tmp); + + wmove (win, pos_y, pos_x + x); + wrefresh (win); + } + curs_set (0); + + return s; +} + +/* Fill the given terminal dashboard menu with user agent data. + * + * On error, the 1 is returned. + * On success, 0 is returned. */ +static int +fill_host_agents_gmenu (void *val, void *user_data) +{ + GMenu *menu = user_data; + char *agent = ht_get_host_agent_val ((*(int *) val)); + + if (agent == NULL) + return 1; + + menu->items[menu->size].name = agent; + menu->items[menu->size].checked = 0; + menu->size++; + + return 0; +} + +/* Iterate over the linked-list of user agents for the given host and + * load its data into the given menu. */ +static void +load_host_agents_gmenu (void *list, void *user_data, int count) +{ + GSLList *lst = list; + GMenu *menu = user_data; + + menu->items = (GItem *) xcalloc (count, sizeof (GItem)); + list_foreach (lst, fill_host_agents_gmenu, menu); +} + +/* Set host data from a linked-list and load its data into a GMenu + * structure. + * + * On error, the 1 is returned. + * On success, 0 is returned. */ +#ifdef TCB_BTREE +int +set_host_agents (const char *addr, void (*func) (void *, void *, int), + void *arr) +{ + TCLIST *tclist; + GSLList *list; + int key, count = 0; + + key = ht_get_keymap (HOSTS, addr); + if (key == 0) + return 1; + + tclist = ht_get_host_agent_tclist (HOSTS, key); + if (!tclist) + return 1; + + list = tclist_to_gsllist (tclist); + if ((count = list_count (list)) == 0) { + free (list); + return 1; + } + + func (list, arr, count); + + list_remove_nodes (list); + tclistdel (tclist); + + return 0; +} +#endif + +/* Set host data from a linked-list and load its data into a GMenu + * structure. + * + * On error, the 1 is returned. + * On success, 0 is returned. */ +#ifndef TCB_BTREE +int +set_host_agents (const char *addr, void (*func) (void *, void *, int), + void *arr) +{ + GSLList *list; + int data_nkey, count = 0; + + data_nkey = ht_get_keymap (HOSTS, addr); + if (data_nkey == 0) + return 1; + + list = ht_get_host_agent_list (HOSTS, data_nkey); + if (!list) + return 1; + + if ((count = list_count (list)) == 0) { + free (list); + return 1; + } + + func (list, arr, count); + +#ifdef TCB_MEMHASH + free (list); +#endif + + return 0; +} +#endif + +/* Render a list of agents if available for the selected host/IP. */ +void +load_agent_list (WINDOW * main_win, char *addr) +{ + GMenu *menu; + WINDOW *win; + + char buf[256]; + int c, quit = 1, i; + int y, x, list_h, list_w, menu_w, menu_h; + + if (!conf.list_agents) + return; + + getmaxyx (stdscr, y, x); + list_h = y / 2; /* list window - height */ + list_w = x - 4; /* list window - width */ + menu_h = list_h - AGENTS_MENU_Y - 1; /* menu window - height */ + menu_w = list_w - AGENTS_MENU_X - AGENTS_MENU_X; /* menu window - width */ + + win = newwin (list_h, list_w, (y - list_h) / 2, (x - list_w) / 2); + keypad (win, TRUE); + wborder (win, '|', '|', '-', '-', '+', '+', '+', '+'); + + /* create a new instance of GMenu and make it selectable */ + menu = new_gmenu (win, menu_h, menu_w, AGENTS_MENU_Y, AGENTS_MENU_X); + if (set_host_agents (addr, load_host_agents_gmenu, menu) == 1) + goto out; + + post_gmenu (menu); + snprintf (buf, sizeof buf, AGENTSDLG_HEAD, addr); + draw_header (win, buf, " %s", 1, 1, list_w - 2, color_panel_header); + mvwprintw (win, 2, 2, AGENTSDLG_DESC); + wrefresh (win); + + while (quit) { + c = wgetch (stdscr); + switch (c) { + case KEY_DOWN: + gmenu_driver (menu, REQ_DOWN); + break; + case KEY_UP: + gmenu_driver (menu, REQ_UP); + break; + case KEY_RESIZE: + case 'q': + quit = 0; + break; + } + wrefresh (win); + } + + touchwin (main_win); + close_win (win); + wrefresh (main_win); + +out: + + /* clean stuff up */ + for (i = 0; i < menu->size; ++i) + free (menu->items[i].name); + if (menu->items) + free (menu->items); + free (menu); +} + +/* Render the processing spinner. This runs within its own thread. */ +static void +ui_spinner (void *ptr_data) +{ + GSpinner *sp = (GSpinner *) ptr_data; + GColors *color = NULL; + + static char const spin_chars[] = "/-\\|"; + char buf[SPIN_LBL]; + int i = 0; + long long tdiff = 0, psec = 0; + time_t begin; + + if (sp->curses) + color = (*sp->color) (); + + time (&begin); + while (1) { + pthread_mutex_lock (&sp->mutex); + if (sp->state == SPN_END) + break; + + setlocale (LC_NUMERIC, ""); + if (conf.no_progress) { + snprintf (buf, sizeof buf, SPIN_FMT, sp->label); + } else { + tdiff = (long long) (time (NULL) - begin); + psec = tdiff >= 1 ? *(sp->processed) / tdiff : 0; + snprintf (buf, sizeof buf, SPIN_FMTM, sp->label, *(sp->processed), psec); + } + setlocale (LC_NUMERIC, "POSIX"); + + if (sp->curses) { + /* CURSES */ + draw_header (sp->win, buf, " %s", sp->y, sp->x, sp->w, sp->color); + /* caret */ + wattron (sp->win, COLOR_PAIR (color->pair->idx)); + mvwaddch (sp->win, sp->y, sp->spin_x, spin_chars[i++ & 3]); + wattroff (sp->win, COLOR_PAIR (color->pair->idx)); + wrefresh (sp->win); + } else if (!conf.no_progress) { + /* STDOUT */ + fprintf (stderr, "%s\r", buf); + } + + pthread_mutex_unlock (&sp->mutex); + usleep (100000); + } +} + +/* Create the processing spinner's thread */ +void +ui_spinner_create (GSpinner * spinner) +{ + if (conf.no_parsing_spinner) + return; + + pthread_create (&(spinner->thread), NULL, (void *) &ui_spinner, spinner); + pthread_detach (spinner->thread); +} + +/* Initialize processing spinner data. */ +void +set_curses_spinner (GSpinner * spinner) +{ + int y, x; + if (spinner == NULL) + return; + + getmaxyx (stdscr, y, x); + + spinner->color = color_progress; + spinner->curses = 1; + spinner->win = stdscr; + spinner->x = 0; + spinner->w = x; + spinner->spin_x = x - 2; + spinner->y = y - 1; +} + +/* Allocate memory for a spinner instance and initialize its data. + * + * On success, the newly allocated GSpinner is returned. */ +GSpinner * +new_gspinner (void) +{ + GSpinner *spinner; + + spinner = xcalloc (1, sizeof (GSpinner)); + spinner->label = "Parsing..."; + spinner->state = SPN_RUN; + spinner->curses = 0; + if (conf.load_from_disk) + conf.no_progress = 1; + + if (pthread_mutex_init (&(spinner->mutex), NULL)) + FATAL ("Failed init thread mutex"); + + return spinner; +} + +/* A wrapper call to clear the status bar on the config dialog + * (terminal output). */ +static void +clear_confdlg_status_bar (WINDOW * win, int y, int x, int w) +{ + draw_header (win, "", "%s", y, x, w + 1, color_default); +} + +/* Escape a date format string. + * + * If no conf.date_format is given, NULL is returned. + * On success, the newly escaped allocated string is returned. */ +static char * +get_input_date_format (void) +{ + char *date_format = NULL; + + if (conf.date_format) + date_format = escape_str (conf.date_format); + return date_format; +} + +/* Escape a time format string. + * + * If no conf.time_format is given, NULL is returned. + * On success, the newly escaped allocated string is returned. */ +static char * +get_input_time_format (void) +{ + char *time_format = NULL; + + if (conf.time_format) + time_format = escape_str (conf.time_format); + return time_format; +} + +/* Escape a log format string. + * + * If no conf.log_format is given, NULL is returned. + * On success, the newly escaped allocated string is returned. */ +static char * +get_input_log_format (void) +{ + char *log_format = NULL; + + if (conf.log_format) + log_format = escape_str (conf.log_format); + return log_format; +} + +static void +draw_formats (WINDOW * win, int w2) +{ + char *date_format = NULL, *log_format = NULL, *time_format = NULL; + + draw_header (win, CONFDLG_HEAD, " %s", 1, 1, w2, color_panel_header); + mvwprintw (win, 2, 2, CONFDLG_KEY_HINTS); + + /* set log format from config file if available */ + draw_header (win, CONFDLG_LOG_FORMAT, " %s", 11, 1, w2, color_panel_header); + if ((log_format = get_input_log_format ())) { + mvwprintw (win, 12, 2, "%.*s", CONF_MENU_W, log_format); + + free (log_format); + } + + /* set log format from config file if available */ + draw_header (win, CONFDLG_DATE_FORMAT, " %s", 14, 1, w2, color_panel_header); + if ((date_format = get_input_date_format ())) { + mvwprintw (win, 15, 2, "%.*s", CONF_MENU_W, date_format); + + free (date_format); + } + + /* set log format from config file if available */ + draw_header (win, CONFDLG_TIME_FORMAT, " %s", 17, 1, w2, color_panel_header); + if ((time_format = get_input_time_format ())) { + mvwprintw (win, 18, 2, "%.*s", CONF_MENU_W, time_format); + + free (time_format); + } +} + +static const char * +set_formats (char *date_format, char *log_format, char *time_format) +{ + /* display status bar error messages */ + if (!time_format && !conf.time_format) + return ERR_FORMAT_NO_TIME_FMT_DLG; + if (!date_format && !conf.date_format) + return ERR_FORMAT_NO_DATE_FMT_DLG; + if (!log_format && !conf.log_format) + return ERR_FORMAT_NO_LOG_FMT_DLG; + + if (time_format) { + free (conf.time_format); + conf.time_format = unescape_str (time_format); + } + + if (date_format) { + free (conf.date_format); + conf.date_format = unescape_str (date_format); + } + + if (log_format) { + free (conf.log_format); + conf.log_format = unescape_str (log_format); + } + + set_spec_date_format (); + + return NULL; +} + +/* Render the help dialog. */ +static void +load_confdlg_error (WINDOW * parent_win, char **errors, int nerrors) +{ + int c, quit = 1, i = 0; + int y, x, h = ERR_WIN_HEIGHT, w = ERR_WIN_WIDTH; + WINDOW *win; + GMenu *menu; + + getmaxyx (stdscr, y, x); + + win = newwin (h, w, (y - h) / 2, (x - w) / 2); + keypad (win, TRUE); + wborder (win, '|', '|', '-', '-', '+', '+', '+', '+'); + + /* create a new instance of GMenu and make it selectable */ + menu = + new_gmenu (win, ERR_MENU_HEIGHT, ERR_MENU_WIDTH, ERR_MENU_Y, ERR_MENU_X); + menu->size = nerrors; + + /* add items to GMenu */ + menu->items = (GItem *) xcalloc (nerrors, sizeof (GItem)); + for (i = 0; i < nerrors; ++i) { + menu->items[i].name = alloc_string (errors[i]); + menu->items[i].checked = 0; + free (errors[i]); + } + free (errors); + post_gmenu (menu); + + draw_header (win, ERR_FORMAT_HEADER, " %s", 1, 1, w - 2, color_error); + mvwprintw (win, 2, 2, CONFDLG_DESC); + + wrefresh (win); + while (quit) { + c = wgetch (stdscr); + switch (c) { + case KEY_DOWN: + gmenu_driver (menu, REQ_DOWN); + break; + case KEY_UP: + gmenu_driver (menu, REQ_UP); + break; + case KEY_RESIZE: + case 'q': + quit = 0; + break; + } + wrefresh (win); + } + /* clean stuff up */ + for (i = 0; i < nerrors; ++i) + free (menu->items[i].name); + free (menu->items); + free (menu); + + touchwin (parent_win); + close_win (win); + wrefresh (parent_win); +} + +/* Render the config log date/format dialog. + * + * On error, or if the selected format is invalid, 1 is returned. + * On success, 0 is returned. */ +int +render_confdlg (GLog * glog, GSpinner * spinner) +{ + GMenu *menu; + WINDOW *win; + + const char *log_err = NULL; + char *date_format = NULL, *log_format = NULL, *time_format = NULL; + char *cstm_log, *cstm_date, *cstm_time; + int c, quit = 1, invalid = 1, y, x, h = CONF_WIN_H, w = CONF_WIN_W; + int w2 = w - 2; + size_t i, n, sel; + + /* conf dialog menu options */ + const char *choices[] = { + "NCSA Combined Log Format", + "NCSA Combined Log Format with Virtual Host", + "Common Log Format (CLF)", + "Common Log Format (CLF) with Virtual Host", + "W3C", + "Squid Native Format", + "CloudFront (Download Distribution)", + "Google Cloud Storage", + "AWS Elastic Load Balancing (HTTP/S)", + "AWS Simple Storage Service (S3)", + }; + n = ARRAY_SIZE (choices); + getmaxyx (stdscr, y, x); + + win = newwin (h, w, (y - h) / 2, (x - w) / 2); + keypad (win, TRUE); + wborder (win, '|', '|', '-', '-', '+', '+', '+', '+'); + + /* create a new instance of GMenu and make it selectable */ + menu = new_gmenu (win, CONF_MENU_H, CONF_MENU_W, CONF_MENU_Y, CONF_MENU_X); + menu->size = n; + menu->selectable = 1; + + /* add items to GMenu */ + menu->items = (GItem *) xcalloc (n, sizeof (GItem)); + for (i = 0; i < n; ++i) { + menu->items[i].name = alloc_string (choices[i]); + sel = get_selected_format_idx (); + menu->items[i].checked = sel == i ? 1 : 0; + } + post_gmenu (menu); + draw_formats (win, w2); + + wrefresh (win); + while (quit) { + c = wgetch (stdscr); + switch (c) { + case KEY_DOWN: + gmenu_driver (menu, REQ_DOWN); + clear_confdlg_status_bar (win, 3, 2, CONF_MENU_W); + break; + case KEY_UP: + gmenu_driver (menu, REQ_UP); + clear_confdlg_status_bar (win, 3, 2, CONF_MENU_W); + break; + case 32: /* space */ + gmenu_driver (menu, REQ_SEL); + clear_confdlg_status_bar (win, 12, 1, CONF_MENU_W); + clear_confdlg_status_bar (win, 15, 1, CONF_MENU_W); + clear_confdlg_status_bar (win, 18, 1, CONF_MENU_W); + + if (time_format) + free (time_format); + if (date_format) + free (date_format); + if (log_format) + free (log_format); + + for (i = 0; i < n; ++i) { + if (menu->items[i].checked != 1) + continue; + + date_format = get_selected_date_str (i); + log_format = get_selected_format_str (i); + time_format = get_selected_time_str (i); + + mvwprintw (win, 12, 1, " %s", log_format); + mvwprintw (win, 15, 1, " %s", date_format); + mvwprintw (win, 18, 1, " %s", time_format); + break; + } + break; + case 99: /* c */ + /* clear top status bar */ + clear_confdlg_status_bar (win, 3, 2, CONF_MENU_W); + wmove (win, 12, 2); + + /* get input string */ + if (!log_format) + log_format = get_input_log_format (); + + cstm_log = input_string (win, 12, 2, 70, log_format, 0, 0); + if (cstm_log != NULL && *cstm_log != '\0') { + if (log_format) + free (log_format); + + log_format = alloc_string (cstm_log); + free (cstm_log); + } + /* did not set an input string */ + else { + if (cstm_log) + free (cstm_log); + if (log_format) { + free (log_format); + log_format = NULL; + } + } + break; + case 100: /* d */ + /* clear top status bar */ + clear_confdlg_status_bar (win, 3, 2, CONF_MENU_W); + wmove (win, 15, 0); + + /* get input string */ + if (!date_format) + date_format = get_input_date_format (); + + cstm_date = input_string (win, 15, 2, 14, date_format, 0, 0); + if (cstm_date != NULL && *cstm_date != '\0') { + if (date_format) + free (date_format); + + date_format = alloc_string (cstm_date); + free (cstm_date); + } + /* did not set an input string */ + else { + if (cstm_date) + free (cstm_date); + if (date_format) { + free (date_format); + date_format = NULL; + } + } + break; + case 116: /* t */ + /* clear top status bar */ + clear_confdlg_status_bar (win, 3, 2, CONF_MENU_W); + wmove (win, 15, 0); + + /* get input string */ + if (!time_format) + time_format = get_input_time_format (); + + cstm_time = input_string (win, 18, 2, 14, time_format, 0, 0); + if (cstm_time != NULL && *cstm_time != '\0') { + if (time_format) + free (time_format); + + time_format = alloc_string (cstm_time); + free (cstm_time); + } + /* did not set an input string */ + else { + if (cstm_time) + free (cstm_time); + if (time_format) { + free (time_format); + time_format = NULL; + } + } + break; + case 274: /* F10 */ + case 0x0a: + case 0x0d: + case KEY_ENTER: + if ((log_err = set_formats (date_format, log_format, time_format))) + draw_header (win, log_err, " %s", 3, 2, CONF_MENU_W, color_error); + + if (!log_err) { + char **errors = NULL; + int nerrors = 0; + + /* test log against selected settings */ + if ((errors = test_format (glog, &nerrors))) { + invalid = 1; + load_confdlg_error (win, errors, nerrors); + } + /* valid data, reset glog & start parsing */ + else { + reset_struct (glog); + /* start spinner thread */ + spinner->win = win; + spinner->y = 3; + spinner->x = 2; + spinner->spin_x = CONF_MENU_W; + spinner->w = CONF_MENU_W; + spinner->color = color_progress; + ui_spinner_create (spinner); + + invalid = 0; + quit = 0; + } + } + break; + case KEY_RESIZE: + case 'q': + quit = 0; + break; + } + + pthread_mutex_lock (&spinner->mutex); + wrefresh (win); + pthread_mutex_unlock (&spinner->mutex); + } + + free (time_format); + free (date_format); + free (log_format); + + /* clean stuff up */ + for (i = 0; i < n; ++i) + free (menu->items[i].name); + free (menu->items); + free (menu); + + return invalid ? 1 : 0; +} + +/* Given the name of the selected scheme, set it under our config + * options. */ +static void +scheme_chosen (const char *name) +{ + int force = 0; + + free_color_lists (); + if (strcmp ("Green", name) == 0) { + conf.color_scheme = STD_GREEN; + force = 1; + } else if (strcmp ("Monochrome", name) == 0) { + conf.color_scheme = MONOCHROME; + force = 1; + } else if (strcmp ("Monokai", name) == 0) { + conf.color_scheme = MONOKAI; + force = 1; + } else if (strcmp ("Custom Scheme", name) == 0) { + force = 0; + } + init_colors (force); +} + +static const char ** +get_color_schemes (size_t * size) +{ + const char *choices[] = { + "Monokai", + "Monochrome", + "Green", + "Custom Scheme" + }; + int i, j, n = ARRAY_SIZE (choices); + const char **opts = xmalloc (sizeof (char *) * n); + + for (i = 0, j = 0; i < n; ++i) { + if (!conf.color_idx && !strcmp ("Custom Scheme", choices[i])) + continue; + if (COLORS < 256 && !strcmp ("Monokai", choices[i])) + continue; + opts[j++] = choices[i]; + } + *size = j; + + return opts; +} + +/* Render the schemes dialog. */ +void +load_schemes_win (WINDOW * main_win) +{ + GMenu *menu; + WINDOW *win; + int c, quit = 1; + size_t i, n = 0; + int y, x, h = SCHEME_WIN_H, w = SCHEME_WIN_W; + int w2 = w - 2; + const char **choices = get_color_schemes (&n); + + getmaxyx (stdscr, y, x); + + win = newwin (h, w, (y - h) / 2, (x - w) / 2); + keypad (win, TRUE); + wborder (win, '|', '|', '-', '-', '+', '+', '+', '+'); + + /* create a new instance of GMenu and make it selectable */ + menu = + new_gmenu (win, SCHEME_MENU_H, SCHEME_MENU_W, SCHEME_MENU_Y, SCHEME_MENU_X); + /* remove custom color option if no custom scheme used */ + menu->size = n; + + /* add items to GMenu */ + menu->items = (GItem *) xcalloc (n, sizeof (GItem)); + for (i = 0; i < n; ++i) { + menu->items[i].name = alloc_string (choices[i]); + menu->items[i].checked = 0; + } + post_gmenu (menu); + + draw_header (win, SCHEMEDLG_HEAD, " %s", 1, 1, w2, color_panel_header); + mvwprintw (win, 2, 2, SCHEMEDLG_DESC); + + wrefresh (win); + while (quit) { + c = wgetch (stdscr); + switch (c) { + case KEY_DOWN: + gmenu_driver (menu, REQ_DOWN); + break; + case KEY_UP: + gmenu_driver (menu, REQ_UP); + break; + case 32: + case 0x0a: + case 0x0d: + case KEY_ENTER: + gmenu_driver (menu, REQ_SEL); + for (i = 0; i < n; ++i) { + if (menu->items[i].checked != 1) + continue; + scheme_chosen (choices[i]); + break; + } + quit = 0; + break; + case KEY_RESIZE: + case 'q': + quit = 0; + break; + } + wrefresh (win); + } + /* clean stuff up */ + for (i = 0; i < n; ++i) + free (menu->items[i].name); + free (menu->items); + free (menu); + free (choices); + + touchwin (main_win); + close_win (win); + wrefresh (main_win); +} + +/* Render the sort dialog. */ +void +load_sort_win (WINDOW * main_win, GModule module, GSort * sort) +{ + GMenu *menu; + WINDOW *win; + GSortField opts[SORT_MAX_OPTS]; + + int c, quit = 1; + int i = 0, k, n = 0; + int y, x, h = SORT_WIN_H, w = SORT_WIN_W; + int w2 = w - 2; + + getmaxyx (stdscr, y, x); + + /* determine amount of sort choices */ + for (i = 0, k = 0; -1 != sort_choices[module][i]; i++) { + GSortField field = sort_choices[module][i]; + if (SORT_BY_CUMTS == field && !conf.serve_usecs) + continue; + else if (SORT_BY_MAXTS == field && !conf.serve_usecs) + continue; + else if (SORT_BY_AVGTS == field && !conf.serve_usecs) + continue; + else if (SORT_BY_BW == field && !conf.bandwidth) + continue; + else if (SORT_BY_PROT == field && !conf.append_protocol) + continue; + else if (SORT_BY_MTHD == field && !conf.append_method) + continue; + opts[k++] = field; + n++; + } + + win = newwin (h, w, (y - h) / 2, (x - w) / 2); + keypad (win, TRUE); + wborder (win, '|', '|', '-', '-', '+', '+', '+', '+'); + + /* create a new instance of GMenu and make it selectable */ + menu = new_gmenu (win, SORT_MENU_H, SORT_MENU_W, SORT_MENU_Y, SORT_MENU_X); + menu->size = n; + menu->selectable = 1; + + /* add items to GMenu */ + menu->items = (GItem *) xcalloc (n, sizeof (GItem)); + + /* set choices, checked option and index */ + for (i = 0; i < n; ++i) { + GSortField field = sort_choices[module][opts[i]]; + if (SORT_BY_HITS == field) { + menu->items[i].name = alloc_string (MTRC_HITS_LBL); + if (sort->field == SORT_BY_HITS) { + menu->items[i].checked = 1; + menu->idx = i; + } + } else if (SORT_BY_VISITORS == field) { + menu->items[i].name = alloc_string (MTRC_VISITORS_LBL); + if (sort->field == SORT_BY_VISITORS) { + menu->items[i].checked = 1; + menu->idx = i; + } + } else if (SORT_BY_DATA == field) { + menu->items[i].name = alloc_string (MTRC_DATA_LBL); + if (sort->field == SORT_BY_DATA) { + menu->items[i].checked = 1; + menu->idx = i; + } + } else if (SORT_BY_BW == field) { + menu->items[i].name = alloc_string (MTRC_BW_LBL); + if (sort->field == SORT_BY_BW) { + menu->items[i].checked = 1; + menu->idx = i; + } + } else if (SORT_BY_AVGTS == field) { + menu->items[i].name = alloc_string (MTRC_AVGTS_LBL); + if (sort->field == SORT_BY_AVGTS) { + menu->items[i].checked = 1; + menu->idx = i; + } + } else if (SORT_BY_CUMTS == field) { + menu->items[i].name = alloc_string (MTRC_CUMTS_LBL); + if (sort->field == SORT_BY_CUMTS) { + menu->items[i].checked = 1; + menu->idx = i; + } + } else if (SORT_BY_MAXTS == field) { + menu->items[i].name = alloc_string (MTRC_MAXTS_LBL); + if (sort->field == SORT_BY_MAXTS) { + menu->items[i].checked = 1; + menu->idx = i; + } + } else if (SORT_BY_PROT == field) { + menu->items[i].name = alloc_string (MTRC_PROTOCOLS_LBL); + if (sort->field == SORT_BY_PROT) { + menu->items[i].checked = 1; + menu->idx = i; + } + } else if (SORT_BY_MTHD == field) { + menu->items[i].name = alloc_string (MTRC_METHODS_LBL); + if (sort->field == SORT_BY_MTHD) { + menu->items[i].checked = 1; + menu->idx = i; + } + } + } + post_gmenu (menu); + + draw_header (win, SORTDLG_HEAD, " %s", 1, 1, w2, color_panel_header); + mvwprintw (win, 2, 2, SORTDLG_DESC); + + if (sort->sort == SORT_ASC) + mvwprintw (win, SORT_WIN_H - 2, 1, " %s", SORT_ASC_SEL); + else + mvwprintw (win, SORT_WIN_H - 2, 1, " %s", SORT_DESC_SEL); + + wrefresh (win); + while (quit) { + c = wgetch (stdscr); + switch (c) { + case KEY_DOWN: + gmenu_driver (menu, REQ_DOWN); + break; + case KEY_UP: + gmenu_driver (menu, REQ_UP); + break; + case 9: /* TAB */ + if (sort->sort == SORT_ASC) { + /* ascending */ + sort->sort = SORT_DESC; + mvwprintw (win, SORT_WIN_H - 2, 1, " %s", SORT_DESC_SEL); + } else { + /* descending */ + sort->sort = SORT_ASC; + mvwprintw (win, SORT_WIN_H - 2, 1, " %s", SORT_ASC_SEL); + } + break; + case 32: + case 0x0a: + case 0x0d: + case KEY_ENTER: + gmenu_driver (menu, REQ_SEL); + for (i = 0; i < n; ++i) { + if (menu->items[i].checked != 1) + continue; + if (strcmp ("Hits", menu->items[i].name) == 0) + sort->field = SORT_BY_HITS; + else if (strcmp ("Visitors", menu->items[i].name) == 0) + sort->field = SORT_BY_VISITORS; + else if (strcmp ("Data", menu->items[i].name) == 0) + sort->field = SORT_BY_DATA; + else if (strcmp ("Tx. Amount", menu->items[i].name) == 0) + sort->field = SORT_BY_BW; + else if (strcmp ("Avg. T.S.", menu->items[i].name) == 0) + sort->field = SORT_BY_AVGTS; + else if (strcmp ("Cum. T.S.", menu->items[i].name) == 0) + sort->field = SORT_BY_CUMTS; + else if (strcmp ("Max. T.S.", menu->items[i].name) == 0) + sort->field = SORT_BY_MAXTS; + else if (strcmp ("Protocol", menu->items[i].name) == 0) + sort->field = SORT_BY_PROT; + else if (strcmp ("Method", menu->items[i].name) == 0) + sort->field = SORT_BY_MTHD; + quit = 0; + break; + } + break; + case KEY_RESIZE: + case 'q': + quit = 0; + break; + } + wrefresh (win); + } + + /* clean stuff up */ + for (i = 0; i < n; ++i) + free (menu->items[i].name); + free (menu->items); + free (menu); + + touchwin (main_win); + close_win (win); + wrefresh (main_win); +} + +/* Help menu data (F1/h). */ +static const char *help_main[] = { + "Copyright (C) 2009-2017 by Gerardo Orellana", + "http://goaccess.io - ", + "Released under the MIT License.", + "", + "See `man` page for more details", + "", + "GoAccess is an open source real-time web log analyzer and", + "interactive viewer that runs in a terminal in *nix systems.", + "It provides fast and valuable HTTP statistics for system", + "administrators that require a visual server report on the", + "fly.", + "", + "The data collected based on the parsing of the log is", + "divided into different modules. Modules are automatically", + "generated and presented to the user.", + "", + "The main dashboard displays general statistics, top", + "visitors, requests, browsers, operating systems,", + "hosts, etc.", + "", + "The user can make use of the following keys:", + " ^F1^ or ^h^ Main help", + " ^F5^ Redraw [main window]", + " ^q^ Quit the program, current window or module", + " ^o^ or ^ENTER^ Expand selected module", + " ^[Shift]0-9^ Set selected module to active", + " ^Up^ arrow Scroll up main dashboard", + " ^Down^ arrow Scroll down main dashboard", + " ^j^ Scroll down within expanded module", + " ^k^ Scroll up within expanded module", + " ^c^ Set or change scheme color", + " ^CTRL^ + ^f^ Scroll forward one screen within", + " active module", + " ^CTRL^ + ^b^ Scroll backward one screen within", + " active module", + " ^TAB^ Iterate modules (forward)", + " ^SHIFT^ + ^TAB^ Iterate modules (backward)", + " ^s^ Sort options for current module", + " ^/^ Search across all modules", + " ^n^ Find position of the next occurrence", + " ^g^ Move to the first item or top of screen", + " ^G^ Move to the last item or bottom of screen", + "", + "Examples can be found by running `man goaccess`.", + "", + "If you believe you have found a bug, please drop me", + "an email with details.", + "", + "Feedback? Just shoot me an email to:", + "hello@goaccess.io", +}; + +/* Render the help dialog. */ +void +load_help_popup (WINDOW * main_win) +{ + int c, quit = 1; + size_t i, n; + int y, x, h = HELP_WIN_HEIGHT, w = HELP_WIN_WIDTH; + int w2 = w - 2; + WINDOW *win; + GMenu *menu; + + n = ARRAY_SIZE (help_main); + getmaxyx (stdscr, y, x); + + win = newwin (h, w, (y - h) / 2, (x - w) / 2); + keypad (win, TRUE); + wborder (win, '|', '|', '-', '-', '+', '+', '+', '+'); + + /* create a new instance of GMenu and make it selectable */ + menu = + new_gmenu (win, HELP_MENU_HEIGHT, HELP_MENU_WIDTH, HELP_MENU_Y, + HELP_MENU_X); + menu->size = n; + + /* add items to GMenu */ + menu->items = (GItem *) xcalloc (n, sizeof (GItem)); + for (i = 0; i < n; ++i) { + menu->items[i].name = alloc_string (help_main[i]); + menu->items[i].checked = 0; + } + post_gmenu (menu); + + draw_header (win, HELPDLG_HEAD, " %s", 1, 1, w2, color_panel_header); + mvwprintw (win, 2, 2, HELPDLG_DESC); + + wrefresh (win); + while (quit) { + c = wgetch (stdscr); + switch (c) { + case KEY_DOWN: + gmenu_driver (menu, REQ_DOWN); + break; + case KEY_UP: + gmenu_driver (menu, REQ_UP); + break; + case KEY_RESIZE: + case 'q': + quit = 0; + break; + } + wrefresh (win); + } + /* clean stuff up */ + for (i = 0; i < n; ++i) + free (menu->items[i].name); + free (menu->items); + free (menu); + + touchwin (main_win); + close_win (win); + wrefresh (main_win); +} diff --git a/src/goaccess++/src/ui.h b/src/goaccess++/src/ui.h new file mode 100644 index 0000000..aea69b6 --- /dev/null +++ b/src/goaccess++/src/ui.h @@ -0,0 +1,257 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef UI_H_INCLUDED +#define UI_H_INCLUDED + +#ifdef HAVE_NCURSESW_NCURSES_H +#include +#elif HAVE_NCURSES_NCURSES_H +#include +#elif HAVE_NCURSES_H +#include +#elif HAVE_CURSES_H +#include +#endif + +#ifdef HAVE_LIBPTHREAD +#include +#endif + +/* string literals and translations */ +#include "labels.h" + +/* Global UI defaults */ +#define MIN_HEIGHT 8 /* minimum window height */ +#define MIN_WIDTH 0 /* minimum window width */ +#define MAX_HEIGHT_FOOTER 1 /* height of the footer window */ +#define MAX_HEIGHT_HEADER 7 /* height of the header window */ +#define OVERALL_NUM_COLS 4 /* number of columns on the overall stats win */ + +/* Spinner Label Format */ +#define SPIN_FMT "%s" +#define SPIN_FMTM "%s [%'d] [%'lld/s]" +#define SPIN_LBL 50 /* max length of the progress spinner */ + +/* Module JSON keys */ +#define VISITORS_ID "visitors" +#define REQUESTS_ID "requests" +#define REQUESTS_STATIC_ID "static_requests" +#define VISIT_TIMES_ID "visit_time" +#define VIRTUAL_HOSTS_ID "vhosts" +#define REMOTE_USER_ID "remote_user" +#define NOT_FOUND_ID "not_found" +#define HOSTS_ID "hosts" +#define OS_ID "os" +#define BROWSERS_ID "browsers" +#define REFERRERS_ID "referrers" +#define REFERRING_SITES_ID "referring_sites" +#define KEYPHRASES_ID "keyphrases" +#define GEO_LOCATION_ID "geolocation" +#define STATUS_CODES_ID "status_codes" +#define GENER_ID "general" + +/* Overall Statistics CSV/JSON Keys */ +#define OVERALL_STARTDATE "start_date" +#define OVERALL_ENDDATE "end_date" +#define OVERALL_DATETIME "date_time" +#define OVERALL_REQ "total_requests" +#define OVERALL_VALID "valid_requests" +#define OVERALL_GENTIME "generation_time" +#define OVERALL_FAILED "failed_requests" +#define OVERALL_VISITORS "unique_visitors" +#define OVERALL_FILES "unique_files" +#define OVERALL_EXCL_HITS "excluded_hits" +#define OVERALL_REF "unique_referrers" +#define OVERALL_NOTFOUND "unique_not_found" +#define OVERALL_STATIC "unique_static_files" +#define OVERALL_LOGSIZE "log_size" +#define OVERALL_BANDWIDTH "bandwidth" +#define OVERALL_LOG "log_path" + +/* CONFIG DIALOG */ +#define CONF_MENU_H 6 +#define CONF_MENU_W 57 +#define CONF_MENU_X 2 +#define CONF_MENU_Y 4 +#define CONF_WIN_H 20 +#define CONF_WIN_W 61 + +/* FIND DIALOG */ +#define FIND_DLG_HEIGHT 8 +#define FIND_DLG_WIDTH 50 +#define FIND_MAX_MATCHES 1 + +/* COLOR SCHEME DIALOG */ +#define SCHEME_MENU_H 4 +#define SCHEME_MENU_W 38 +#define SCHEME_MENU_X 2 +#define SCHEME_MENU_Y 4 +#define SCHEME_WIN_H 10 +#define SCHEME_WIN_W 42 + +/* SORT DIALOG */ +#define SORT_MENU_H 6 +#define SORT_MENU_W 38 +#define SORT_MENU_X 2 +#define SORT_MENU_Y 4 +#define SORT_WIN_H 13 +#define SORT_WIN_W 42 + +/* AGENTS DIALOG */ +#define AGENTS_MENU_X 2 +#define AGENTS_MENU_Y 4 + +/* HELP DIALOG */ +#define HELP_MENU_HEIGHT 12 +#define HELP_MENU_WIDTH 60 +#define HELP_MENU_X 2 +#define HELP_MENU_Y 4 +#define HELP_WIN_HEIGHT 17 +#define HELP_WIN_WIDTH 64 + +/* CONF ERROR DIALOG */ +#define ERR_MENU_HEIGHT 10 +#define ERR_MENU_WIDTH 57 +#define ERR_MENU_X 2 +#define ERR_MENU_Y 4 +#define ERR_WIN_HEIGHT 15 +#define ERR_WIN_WIDTH 61 + +/* Convenient macros */ +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) + +#include "color.h" +#include "commons.h" +#include "sort.h" + +/* Curses dashboard find */ +typedef struct GFind_ +{ + GModule module; + char *pattern; + int next_idx; + int next_parent_idx; + int next_sub_idx; + int look_in_sub; + int done; + int icase; +} GFind; + +/* Each panel contains its own scrolling and offset */ +typedef struct GScrollModule_ +{ + int scroll; + int offset; +} GScrollModule; + +/* Curses Scrolling */ +typedef struct GScroll_ +{ + GScrollModule module[TOTAL_MODULES]; + GModule current; + int dash; + int expanded; +} GScroll; + +/* Spinner or Progress Indicator */ +typedef struct GSpinner_ +{ + const char *label; + GColors *(*color) (void); + int curses; + int spin_x; + int w; + int x; + int y; + pthread_mutex_t mutex; + pthread_t thread; + unsigned int *processed; + WINDOW *win; + enum + { + SPN_RUN, + SPN_END + } state; +} GSpinner; + +/* Controls metric output. + * i.e., which metrics it should display */ +typedef struct GOutput_ +{ + GModule module; + int8_t visitors; + int8_t hits; + int8_t percent; + int8_t bw; + int8_t avgts; + int8_t cumts; + int8_t maxts; + int8_t protocol; + int8_t method; + int8_t data; + int8_t graph; /* display bars when collapsed */ + int8_t sub_graph; /* display bars upon expanding it */ +} GOutput; + +/* *INDENT-OFF* */ +GOutput *output_lookup (GModule module); +GSpinner *new_gspinner (void); + +char *get_browser_type (char *line); +char *get_overall_header (GHolder *h); +char *input_string (WINDOW * win, int pos_y, int pos_x, size_t max_width, const char *str, int enable_case, int *toggle_case); +const char *module_to_desc (GModule module); +const char *module_to_head (GModule module); +const char *module_to_id (GModule module); +const char *module_to_label (GModule module); +int get_start_end_parsing_dates (GHolder * h, char **start, char **end, const char *f); +int render_confdlg (GLog * glog, GSpinner * spinner); +int set_host_agents (const char *addr, void (*func) (void *, void *, int), void *arr); +void close_win (WINDOW * w); +void display_general (WINDOW * win, GLog * glog, GHolder *h); +void draw_header (WINDOW * win, const char *s, const char *fmt, int y, int x, int w, GColors * (*func) (void)); +void end_spinner (void); +void generate_time (void); +void init_colors (int force); +void init_windows (WINDOW ** header_win, WINDOW ** main_win); +void load_agent_list (WINDOW * main_win, char *addr); +void load_help_popup (WINDOW * main_win); +void load_schemes_win (WINDOW * main_win); +void load_sort_win (WINDOW * main_win, GModule module, GSort * sort); +void set_curses_spinner (GSpinner *spinner); +void set_input_opts (void); +void set_wbkgd (WINDOW *main_win, WINDOW *header_win); +void term_size (WINDOW * main_win, int *main_win_height); +void ui_spinner_create (GSpinner * spinner); +void update_active_module (WINDOW * header_win, GModule current); +void update_header (WINDOW * header_win, int current); +/* *INDENT-ON* */ + +#endif diff --git a/src/goaccess++/src/ui.o b/src/goaccess++/src/ui.o new file mode 100644 index 0000000000000000000000000000000000000000..007bcc3a4144ce269a4d2e015b3fbe1fd16ee1e8 GIT binary patch literal 62104 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 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#define _LARGEFILE_SOURCE +#define _LARGEFILE64_SOURCE +#define _FILE_OFFSET_BITS 64 + +#define _XOPEN_SOURCE 700 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "util.h" + +#include "error.h" +#include "labels.h" +#include "xmalloc.h" + +/* HTTP status codes categories */ +static const char *code_type[][2] = { + {"1", STATUS_CODE_1XX}, + {"2", STATUS_CODE_2XX}, + {"3", STATUS_CODE_3XX}, + {"4", STATUS_CODE_4XX}, + {"5", STATUS_CODE_5XX}, +}; + +/* HTTP status codes */ +static const char *codes[][2] = { + {"100", STATUS_CODE_100}, + {"101", STATUS_CODE_101}, + {"200", STATUS_CODE_200}, + {"201", STATUS_CODE_201}, + {"202", STATUS_CODE_202}, + {"203", STATUS_CODE_203}, + {"204", STATUS_CODE_204}, + {"205", STATUS_CODE_205}, + {"206", STATUS_CODE_206}, + {"207", STATUS_CODE_207}, + {"208", STATUS_CODE_208}, + {"300", STATUS_CODE_300}, + {"301", STATUS_CODE_301}, + {"302", STATUS_CODE_302}, + {"303", STATUS_CODE_303}, + {"304", STATUS_CODE_304}, + {"305", STATUS_CODE_305}, + {"307", STATUS_CODE_307}, + {"400", STATUS_CODE_400}, + {"401", STATUS_CODE_401}, + {"402", STATUS_CODE_402}, + {"403", STATUS_CODE_403}, + {"404", STATUS_CODE_404}, + {"405", STATUS_CODE_405}, + {"406", STATUS_CODE_406}, + {"407", STATUS_CODE_407}, + {"408", STATUS_CODE_408}, + {"409", STATUS_CODE_409}, + {"410", STATUS_CODE_410}, + {"411", STATUS_CODE_411}, + {"412", STATUS_CODE_412}, + {"413", STATUS_CODE_413}, + {"414", STATUS_CODE_414}, + {"415", STATUS_CODE_415}, + {"416", STATUS_CODE_416}, + {"417", STATUS_CODE_417}, + {"421", STATUS_CODE_421}, + {"422", STATUS_CODE_422}, + {"423", STATUS_CODE_423}, + {"424", STATUS_CODE_424}, + {"426", STATUS_CODE_426}, + {"428", STATUS_CODE_428}, + {"429", STATUS_CODE_429}, + {"431", STATUS_CODE_431}, + {"444", STATUS_CODE_444}, + {"451", STATUS_CODE_451}, + {"494", STATUS_CODE_494}, + {"495", STATUS_CODE_495}, + {"496", STATUS_CODE_496}, + {"497", STATUS_CODE_497}, + {"499", STATUS_CODE_499}, + {"500", STATUS_CODE_500}, + {"501", STATUS_CODE_501}, + {"502", STATUS_CODE_502}, + {"503", STATUS_CODE_503}, + {"504", STATUS_CODE_504}, + {"505", STATUS_CODE_505}, + {"520", STATUS_CODE_520}, + {"521", STATUS_CODE_521}, + {"522", STATUS_CODE_522}, + {"523", STATUS_CODE_523}, + {"524", STATUS_CODE_524} +}; + +/* Return part of a string + * + * On error NULL is returned. + * On success the extracted part of string is returned */ +char * +substring (const char *str, int begin, int len) +{ + char *buffer; + if (str == NULL) + return NULL; + if (begin < 0) + begin = strlen (str) + begin; + if (begin < 0) + begin = 0; + if (len < 0) + len = 0; + if (((size_t) begin) > strlen (str)) + begin = strlen (str); + if (((size_t) len) > strlen (&str[begin])) + len = strlen (&str[begin]); + if ((buffer = xmalloc (len + 1)) == NULL) + return NULL; + memcpy (buffer, &(str[begin]), len); + buffer[len] = '\0'; + + return buffer; +} + +/* A pointer to the allocated memory of the new string + * + * On success, a pointer to a new string is returned */ +char * +alloc_string (const char *str) +{ + char *new = xmalloc (strlen (str) + 1); + strcpy (new, str); + return new; +} + +/* A wrapper function to copy the first num characters of source to + * destination. */ +void +xstrncpy (char *dest, const char *source, const size_t dest_size) +{ + strncpy (dest, source, dest_size); + if (dest_size > 0) { + dest[dest_size - 1] = '\0'; + } else { + dest[0] = '\0'; + } +} + +/* A random string generator. */ +void +genstr (char *dest, size_t len) +{ + char set[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + while (len-- > 0) + *dest++ = set[rand () % (sizeof (set) - 1)]; + *dest = '\0'; +} + +/* Count the number of matches on the string `s1` given a character `c` + * + * If the character is not found, 0 is returned + * On success, the number of characters found */ +int +count_matches (const char *s1, char c) +{ + const char *ptr = s1; + int n = 0; + do { + if (*ptr == c) + n++; + } while (*(ptr++)); + return n; +} + +/* String matching where one string contains wildcard characters. + * + * If no match found, 1 is returned. + * If match found, 0 is returned. */ +static int +wc_match (const char *wc, char *str) +{ + while (*wc && *str) { + if (*wc == '*') { + while (*wc && *wc == '*') + wc++; + if (!*wc) + return 1; + + while (*str && *str != *wc) + str++; + } else if (*wc == '?' || *wc == *str) { + wc++; + str++; + } else { + break; + } + } + if (!*wc && !*str) + return 1; + return 0; +} + +/* Determine if the given host needs to be ignored given the list of + * referrers to ignore. + * + * On error, or the referrer is not found, 0 is returned + * On success, or if the host needs to be ignored, 1 is returned */ +int +ignore_referer (const char *host) +{ + char *needle = NULL; + int i, ignore = 0; + + if (conf.ignore_referer_idx == 0) + return 0; + if (host == NULL || *host == '\0') + return 0; + + needle = xstrdup (host); + for (i = 0; i < conf.ignore_referer_idx; ++i) { + if (conf.ignore_referers[i] == NULL || *conf.ignore_referers[i] == '\0') + continue; + + if (wc_match (conf.ignore_referers[i], needle)) { + ignore = 1; + goto out; + } + } +out: + free (needle); + + return ignore; +} + +/* Determine if the given host needs to be hidden given the list of + * referrers to hide. + * + * On error, or the referrer is not found, 0 is returned + * On success, or if the host needs to be ignored, 1 is returned */ +int +hide_referer (const char *host) +{ + char *needle = NULL; + int i, ignore = 0; + + if (conf.hide_referer_idx == 0) + return 0; + if (host == NULL || *host == '\0') + return 0; + + needle = xstrdup (host); + for (i = 0; i < conf.hide_referer_idx; ++i) { + if (conf.hide_referers[i] == NULL || *conf.hide_referers[i] == '\0') + continue; + + if (wc_match (conf.hide_referers[i], needle)) { + ignore = 1; + goto out; + } + } +out: + free (needle); + + return ignore; +} + +/* Determine if the given ip is within a range of IPs. + * + * On error, or not within the range, 0 is returned + * On success, or if within the range, 1 is returned */ +static int +within_range (const char *ip, const char *start, const char *end) +{ + struct in6_addr addr6, start6, end6; + struct in_addr addr4, start4, end4; + + if (start == NULL || *start == '\0') + return 0; + if (end == NULL || *end == '\0') + return 0; + if (ip == NULL || *ip == '\0') + return 0; + + /* IPv4 */ + if (1 == inet_pton (AF_INET, ip, &addr4)) { + if (1 != inet_pton (AF_INET, start, &start4)) + return 0; + if (1 != inet_pton (AF_INET, end, &end4)) + return 0; + if (memcmp (&addr4, &start4, sizeof (addr4)) >= 0 && + memcmp (&addr4, &end4, sizeof (addr4)) <= 0) + return 1; + } + /* IPv6 */ + else if (1 == inet_pton (AF_INET6, ip, &addr6)) { + if (1 != inet_pton (AF_INET6, start, &start6)) + return 0; + if (1 != inet_pton (AF_INET6, end, &end6)) + return 0; + if (memcmp (&addr6, &start6, sizeof (addr6)) >= 0 && + memcmp (&addr6, &end6, sizeof (addr6)) <= 0) + return 1; + } + + return 0; +} + +/* Determine if the given IP needs to be ignored given the list of IPs + * to ignore. + * + * On error, or not within the range, 0 is returned + * On success, or if within the range, 1 is returned */ +int +ip_in_range (const char *ip) +{ + char *start = NULL, *end, *dash; + int i; + + for (i = 0; i < conf.ignore_ip_idx; ++i) { + end = NULL; + if (conf.ignore_ips[i] == NULL || *conf.ignore_ips[i] == '\0') + continue; + + start = xstrdup (conf.ignore_ips[i]); + /* split range */ + if ((dash = strchr (start, '-')) != NULL) { + *dash = '\0'; + end = dash + 1; + } + + /* matches single IP */ + if (end == NULL && start) { + if (strcmp (ip, start) == 0) { + free (start); + return 1; + } + } + /* within range */ + else if (start && end) { + if (within_range (ip, start, end)) { + free (start); + return 1; + } + } + free (start); + } + + return 0; +} + +/* Searches the array of output formats for the given extension value. + * + * If not found, 1 is returned. + * On success, the given filename is malloc'd and assigned and 0 is + * returned. */ +int +find_output_type (char **filename, const char *ext, int alloc) +{ + int i; + const char *dot = NULL; + + for (i = 0; i < conf.output_format_idx; ++i) { + /* for backwards compatibility. i.e., -o json */ + if (strcmp (conf.output_formats[i], ext) == 0) + return 0; + + if ((dot = strrchr (conf.output_formats[i], '.')) != NULL && + strcmp (dot + 1, ext) == 0) { + if (alloc) + *filename = xstrdup (conf.output_formats[i]); + return 0; + } + } + + return 1; +} + +/* Validates the '-o' filename extension for any of: + * 1) .csv + * 2) .json + * 3) .html + * + * Return Value + * 1: valid + * 0: invalid + * -1: non-existent extension + */ +int +valid_output_type (const char *filename) +{ + const char *ext = NULL; + size_t sl; + + if ((ext = strrchr (filename, '.')) == NULL) + return -1; + + ext++; + /* Is extension 3<=len<=4? */ + sl = strlen (ext); + if (sl < 3 || sl > 4) + return 0; + + if (strcmp ("html", ext) == 0) + return 1; + + if (strcmp ("json", ext) == 0) + return 1; + + if (strcmp ("csv", ext) == 0) + return 1; + + return 0; +} + +/* Search the environment HOME variable and append GoAccess' config + * file. + * + * On error, it outputs an error message and the program terminates. + * On success, the path of HOME and the config file is returned. */ +char * +get_home (void) +{ + char *user_home = NULL, *path = NULL; + + user_home = getenv ("HOME"); + if (user_home == NULL) + FATAL ("Unable to determine the HOME environment variable."); + + path = xmalloc (snprintf (NULL, 0, "%s/.goaccessrc", user_home) + 1); + sprintf (path, "%s/.goaccessrc", user_home); + + return path; +} + +/* Get the path to the global config file. + * + * On success, the path of the global config file is returned. */ +char * +get_global_config (void) +{ + char *path = NULL; + + path = xmalloc (snprintf (NULL, 0, "%s/goaccess.conf", SYSCONFDIR) + 1); + sprintf (path, "%s/goaccess.conf", SYSCONFDIR); + + return path; +} + +/* A self-checking wrapper to convert_date(). + * + * On error, a newly malloc'd '---' string is returned. + * On success, a malloc'd 'Ymd' date is returned. */ +char * +get_visitors_date (const char *odate, const char *from, const char *to) +{ + char date[DATE_TIME] = ""; /* Ymd */ + + memset (date, 0, sizeof *date); + /* verify we have a valid date conversion */ + if (convert_date (date, odate, from, to, DATE_TIME) == 0) + return xstrdup (date); + + LOG_DEBUG (("invalid date: %s", odate)); + return xstrdup ("---"); +} + +/* Format the given date/time according the given format. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +#pragma GCC diagnostic ignored "-Wformat-nonliteral" +int +str_to_time (const char *str, const char *fmt, struct tm *tm) +{ + char *end = NULL, *sEnd = NULL; + unsigned long long usecs = 0; + + if (str == NULL || *str == '\0' || fmt == NULL || *fmt == '\0') + return 1; + + /* check if char string needs to be converted from microseconds */ + if (strcmp ("%f", fmt) == 0) { + errno = 0; + tm->tm_year = 1970 - 1900; + tm->tm_mday = 1; + + usecs = strtoull (str, &sEnd, 10); + if (str == sEnd || *sEnd != '\0' || errno == ERANGE) + return 1; + + tm->tm_sec = usecs / SECS; + tm->tm_isdst = -1; + if (mktime (tm) == -1) + return 1; + + return 0; + } + + end = strptime (str, fmt, tm); + if (end == NULL || *end != '\0') + return 1; + + return 0; +} + +/* Convert a date from one format to another and store inot the given buffer. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +int +convert_date (char *res, const char *data, const char *from, const char *to, + int size) +{ + struct tm tm; + + memset (&tm, 0, sizeof (tm)); + timestamp = time (NULL); + now_tm = localtime (×tamp); + + if (str_to_time (data, from, &tm) != 0) + return 1; + + /* if not a timestamp, use current year if not passed */ + if (!has_timestamp (from) && strpbrk (from, "Yy") == NULL) + tm.tm_year = now_tm->tm_year; + + if (strftime (res, size, to, &tm) <= 0) + return 1; + + return 0; +} + +#pragma GCC diagnostic warning "-Wformat-nonliteral" + +/* Determine if the given IP is a valid IPv4/IPv6 address. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +int +invalid_ipaddr (char *str, int *ipvx) +{ + union + { + struct sockaddr addr; + struct sockaddr_in6 addr6; + struct sockaddr_in addr4; + } a; + + (*ipvx) = TYPE_IPINV; + if (str == NULL || *str == '\0') + return 1; + + memset (&a, 0, sizeof (a)); + if (1 == inet_pton (AF_INET, str, &a.addr4.sin_addr)) { + (*ipvx) = TYPE_IPV4; + return 0; + } else if (1 == inet_pton (AF_INET6, str, &a.addr6.sin6_addr)) { + (*ipvx) = TYPE_IPV6; + return 0; + } + + return 1; +} + +/* Get information about the filename. + * + * On error, -1 is returned. + * On success, the file size of the given filename. */ +off_t +file_size (const char *filename) +{ + struct stat st; + + if (stat (filename, &st) == 0) + return st.st_size; + + LOG_DEBUG (("Can't determine size of %s: %s\n", filename, strerror (errno))); + + return -1; +} + +/* Determine if the given status code is within the list of status + * codes and find out the status type/category. + * + * If not found, "Unknown" is returned. + * On success, the status code type/category is returned. */ +const char * +verify_status_code_type (const char *str) +{ + size_t i; + for (i = 0; i < ARRAY_SIZE (code_type); i++) + if (strchr (code_type[i][0], str[0]) != NULL) + return _(code_type[i][1]); + + return "Unknown"; +} + +/* Determine if the given status code is within the list of status + * codes. + * + * If not found, "Unknown" is returned. + * On success, the status code is returned. */ +const char * +verify_status_code (char *str) +{ + size_t i; + for (i = 0; i < ARRAY_SIZE (codes); i++) + if (strstr (str, codes[i][0]) != NULL) + return _(codes[i][1]); + + return "Unknown"; +} + +/* Checks if the given string is within the given array. + * + * If not found, -1 is returned. + * If found, the key for needle in the array is returned. */ +int +str_inarray (const char *s, const char *arr[], int size) +{ + int i; + for (i = 0; i < size; i++) { + if (strcmp (arr[i], s) == 0) + return i; + } + return -1; +} + +/* Strip whitespace from the beginning of a string. + * + * On success, a string with whitespace stripped from the beginning of + * the string is returned. */ +char * +ltrim (char *s) +{ + char *begin = s; + + while (isspace (*begin)) + ++begin; + memmove (s, begin, strlen (begin) + 1); + + return s; +} + +/* Strip whitespace from the end of a string. + * + * On success, a string with whitespace stripped from the end of the + * string is returned. */ +char * +rtrim (char *s) +{ + char *end = s + strlen (s); + + while ((end != s) && isspace (*(end - 1))) + --end; + *end = '\0'; + + return s; +} + +/* Strip whitespace from the beginning and end of the string. + * + * On success, the trimmed string is returned. */ +char * +trim_str (char *str) +{ + return rtrim (ltrim (str)); +} + +/* Convert the file size in bytes to a human readable format. + * + * On error, the original size of the string in bytes is returned. + * On success, the file size in a human readable format is returned. */ +char * +filesize_str (unsigned long long log_size) +{ + char *size = xmalloc (sizeof (char) * 12); + if (log_size >= (1ULL << 50)) + snprintf (size, 12, "%.2f PiB", (double) (log_size) / PIB (1ULL)); + else if (log_size >= (1ULL << 40)) + snprintf (size, 12, "%.2f TiB", (double) (log_size) / TIB (1ULL)); + else if (log_size >= (1ULL << 30)) + snprintf (size, 12, "%.2f GiB", (double) (log_size) / GIB (1ULL)); + else if (log_size >= (1ULL << 20)) + snprintf (size, 12, "%.2f MiB", (double) (log_size) / MIB (1ULL)); + else if (log_size >= (1ULL << 10)) + snprintf (size, 12, "%.2f KiB", (double) (log_size) / KIB (1ULL)); + else + snprintf (size, 12, "%.1f B", (double) (log_size)); + + return size; +} + +/* Convert microseconds to a human readable format. + * + * On error, a malloc'd string in microseconds is returned. + * On success, the time in a human readable format is returned. */ +char * +usecs_to_str (unsigned long long usec) +{ + char *size = xmalloc (sizeof (char) * 11); + if (usec >= DAY) + snprintf (size, 11, "%.2f d", (double) (usec) / DAY); + else if (usec >= HOUR) + snprintf (size, 11, "%.2f hr", (double) (usec) / HOUR); + else if (usec >= MINS) + snprintf (size, 11, "%.2f mn", (double) (usec) / MINS); + else if (usec >= SECS) + snprintf (size, 11, "%.2f s", (double) (usec) / SECS); + else if (usec >= MILS) + snprintf (size, 11, "%.2f ms", (double) (usec) / MILS); + else + snprintf (size, 11, "%.2f us", (double) (usec)); + + return size; +} + +/* Convert the given int to a string with the ability to add some + * padding. + * + * On success, the given number as a string is returned. */ +char * +int2str (int d, int width) +{ + char *s = xmalloc (snprintf (NULL, 0, "%*d", width, d) + 1); + sprintf (s, "%*d", width, d); + + return s; +} + +/* Convert the given float to a string with the ability to add some + * padding. + * + * On success, the given number as a string is returned. */ +char * +float2str (float d, int width) +{ + char *s = xmalloc (snprintf (NULL, 0, "%*.2f", width, d) + 1); + sprintf (s, "%*.2f", width, d); + + return s; +} + +/* Determine the length of an integer (number of digits). + * + * On success, the length of the number is returned. */ +int +intlen (int num) +{ + int l = 1; + while (num > 9) { + l++; + num /= 10; + } + + return l; +} + +/* Allocate a new string and fill it with the given character. + * + * On success, the newly allocated string is returned. */ +char * +char_repeat (int n, char c) +{ + char *dest = xmalloc (n + 1); + memset (dest, c, n); + dest[n] = '\0'; + + return dest; +} + +/* Replace all occurrences of the given char with the replacement + * char. + * + * On error the original string is returned. + * On success, a string with the replaced values is returned. */ +char * +char_replace (char *str, char o, char n) +{ + char *p = str; + + if (str == NULL || *str == '\0') + return str; + + while ((p = strchr (p, o)) != NULL) + *p++ = n; + + return str; +} + +/* Remove all occurrences of a new line. + * + * On success, a string with the replaced new lines is returned. */ +void +strip_newlines (char *str) +{ + char *src, *dst; + for (src = dst = str; *src != '\0'; src++) { + *dst = *src; + if (*dst != '\r' && *dst != '\n') + dst++; + } + *dst = '\0'; +} + +/* Strip blanks from a string. + * + * On success, a string without whitespace is returned. */ +char * +deblank (char *str) +{ + char *out = str, *put = str; + + for (; *str != '\0'; ++str) { + if (*str != ' ') + *put++ = *str; + } + *put = '\0'; + + return out; +} + +/* Make a string uppercase. + * + * On error the original string is returned. + * On success, the uppercased string is returned. */ +char * +strtoupper (char *str) +{ + char *p = str; + if (str == NULL || *str == '\0') + return str; + + while (*p != '\0') { + *p = toupper (*p); + p++; + } + + return str; +} + +/* Left-pad a string with n amount of spaces. + * + * On success, a left-padded string is returned. */ +char * +left_pad_str (const char *s, int indent) +{ + char *buf = NULL; + + indent = strlen (s) + indent; + buf = xmalloc (snprintf (NULL, 0, "%*s", indent, s) + 1); + sprintf (buf, "%*s", indent, s); + + return buf; +} + +/* Append the source string to destination and reallocates and + * updating the destination buffer appropriately. */ +void +append_str (char **dest, const char *src) +{ + size_t curlen = strlen (*dest); + size_t srclen = strlen (src); + size_t newlen = curlen + srclen; + + char *str = xrealloc (*dest, newlen + 1); + memcpy (str + curlen, src, srclen + 1); + *dest = str; +} + +/* Escapes the special characters, e.g., '\n', '\r', '\t', '\' + * in the string source by inserting a '\' before them. + * + * On error NULL is returned. + * On success the escaped string is returned */ +char * +escape_str (const char *src) +{ + char *dest, *q; + const unsigned char *p; + + if (src == NULL || *src == '\0') + return NULL; + + p = (unsigned char *) src; + q = dest = xmalloc (strlen (src) * 4 + 1); + + while (*p) { + switch (*p) { + case '\\': + *q++ = '\\'; + *q++ = '\\'; + break; + case '\n': + *q++ = '\\'; + *q++ = 'n'; + break; + case '\r': + *q++ = '\\'; + *q++ = 'r'; + break; + case '\t': + *q++ = '\\'; + *q++ = 't'; + break; + default: + /* not ASCII */ + if ((*p < ' ') || (*p >= 0177)) { + *q++ = '\\'; + *q++ = '0' + (((*p) >> 6) & 07); + *q++ = '0' + (((*p) >> 3) & 07); + *q++ = '0' + ((*p) & 07); + } else + *q++ = *p; + break; + } + p++; + } + *q = 0; + return dest; +} + +/* Get an unescaped malloc'd string + * + * On error NULL is returned. + * On success the unescaped string is returned */ +char * +unescape_str (const char *src) +{ + char *dest, *q; + const char *p = src; + + if (src == NULL || *src == '\0') + return NULL; + + dest = xmalloc (strlen (src) + 1); + q = dest; + + while (*p) { + if (*p == '\\') { + p++; + switch (*p) { + case '\0': + /* warning... */ + goto out; + case 'n': + *q++ = '\n'; + break; + case 'r': + *q++ = '\r'; + break; + case 't': + *q++ = '\t'; + break; + default: + *q++ = *p; + break; + } + } else + *q++ = *p; + p++; + } +out: + *q = 0; + + return dest; +} diff --git a/src/goaccess++/src/util.h b/src/goaccess++/src/util.h new file mode 100644 index 0000000..1b0bfd9 --- /dev/null +++ b/src/goaccess++/src/util.h @@ -0,0 +1,97 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef UTIL_H_INCLUDED +#define UTIL_H_INCLUDED + +#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) + +#define REGEX_ERROR 100 + +#define KIB(n) (n << 10) +#define MIB(n) (n << 20) +#define GIB(n) (n << 30) +#define TIB(n) (n << 40) +#define PIB(n) (n << 50) + +#define MILS 1000ULL +#define SECS 1000000ULL +#define MINS 60000000ULL +#define HOUR 3600000000ULL +#define DAY 86400000000ULL + +/* *INDENT-OFF* */ +#include +#include +#include + +char *alloc_string (const char *str); +char *char_repeat (int n, char c); +char *char_replace (char *str, char o, char n); +char *deblank (char *str); +char *escape_str (const char *src); +char *filesize_str (unsigned long long log_size); +char *float2str (float d, int width); +char *get_global_config (void); +char *get_home (void); +char *get_visitors_date (const char *odate, const char *from, const char *to); +char *int2str (int d, int width); +char *left_pad_str (const char *s, int indent); +char *ltrim (char *s); +char *replace_str (const char *str, const char *old, const char *new); +char *rtrim (char *s); +char *secs_to_str (int secs); +char *strtoupper(char *str); +char *substring (const char *str, int begin, int len); +char *trim_str (char *str); +char *unescape_str (const char *src); +char *usecs_to_str (unsigned long long usec); +const char *verify_status_code (char *str); +const char *verify_status_code_type (const char *str); +int convert_date (char *res, const char *data, const char *from, const char *to, int size); +int count_matches (const char *s1, char c); +int find_output_type (char **filename, const char *ext, int alloc); +int hide_referer (const char *ref); +int ignore_referer (const char *ref); +int intlen (int num); +int invalid_ipaddr (char *str, int *ipvx); +int ip_in_range (const char *ip); +int str_inarray (const char *s, const char *arr[], int size); +int str_to_time (const char *str, const char *fmt, struct tm *tm); +int valid_output_type (const char *filename); +off_t file_size (const char *filename); +uint32_t ip_to_binary (const char *ip); +void append_str (char **dest, const char *src); +void genstr(char *dest, size_t len); +void strip_newlines (char *str); +void xstrncpy (char *dest, const char *source, const size_t dest_size); + +/* *INDENT-ON* */ + +#endif diff --git a/src/goaccess++/src/util.o b/src/goaccess++/src/util.o new file mode 100644 index 0000000000000000000000000000000000000000..5b1a5a3998b3802821f94c3f007162bbbf944a4b GIT binary patch literal 28440 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 BY-Iod literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/websocket.c b/src/goaccess++/src/websocket.c new file mode 100644 index 0000000..6f0d90a --- /dev/null +++ b/src/goaccess++/src/websocket.c @@ -0,0 +1,3018 @@ +/** + * websocket.c -- An rfc6455-complaint Web Socket Server + * _______ _______ __ __ + * / ____/ | / / ___/____ _____/ /_____ / /_ + * / / __ | | /| / /\__ \/ __ \/ ___/ //_/ _ \/ __/ + * / /_/ / | |/ |/ /___/ / /_/ / /__/ ,< / __/ /_ + * \____/ |__/|__//____/\____/\___/_/|_|\___/\__/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if HAVE_CONFIG_H +#include +#endif + +#include "websocket.h" + +#include "base64.h" +#include "error.h" +#include "gslist.h" +#include "sha1.h" +#include "xmalloc.h" + +/* *INDENT-OFF* */ + +/* UTF-8 Decoder */ +/* Copyright (c) 2008-2009 Bjoern Hoehrmann + * See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details. */ +#define UTF8_VALID 0 +#define UTF8_INVAL 1 +static const uint8_t utf8d[] = { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 00..1f */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 20..3f */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 40..5f */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 60..7f */ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, /* 80..9f */ + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, /* a0..bf */ + 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, /* c0..df */ + 0xa,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x4,0x3,0x3, /* e0..ef */ + 0xb,0x6,0x6,0x6,0x5,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8, /* f0..ff */ + 0x0,0x1,0x2,0x3,0x5,0x8,0x7,0x1,0x1,0x1,0x4,0x6,0x1,0x1,0x1,0x1, /* s0..s0 */ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1, /* s1..s2 */ + 1,2,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1, /* s3..s4 */ + 1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1, /* s5..s6 */ + 1,3,1,1,1,1,1,3,1,3,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* s7..s8 */ +}; +/* *INDENT-ON* */ + +static int max_file_fd = 0; +static WSEState fdstate; +static WSConfig wsconfig = { 0 }; + +static void handle_read_close (int conn, WSClient * client, WSServer * server); +static void handle_reads (int conn, WSServer * server); +static void handle_writes (int conn, WSServer * server); +#ifdef HAVE_LIBSSL +static int shutdown_ssl (WSClient * client); +#endif + +/* Determine if the given string is valid UTF-8. + * + * The state after the by has been processed is returned. */ +static uint32_t +verify_utf8 (uint32_t * state, const char *str, int len) +{ + int i; + uint32_t type; + + for (i = 0; i < len; ++i) { + type = utf8d[(uint8_t) str[i]]; + *state = utf8d[256 + (*state) * 16 + type]; + + if (*state == UTF8_INVAL) + break; + } + + return *state; +} + +/* Decode a character maintaining state and a byte, and returns the + * state achieved after processing the byte. + * + * The state after the by has been processed is returned. */ +static uint32_t +utf8_decode (uint32_t * state, uint32_t * p, uint32_t b) +{ + uint32_t type = utf8d[(uint8_t) b]; + + *p = (*state != UTF8_VALID) ? (b & 0x3fu) | (*p << 6) : (0xff >> type) & (b); + *state = utf8d[256 + *state * 16 + type]; + + return *state; +} + +/* Replace malformed sequences with a substitute character. + * + * On success, it replaces the whole sequence and return a malloc'd buffer. */ +static char * +sanitize_utf8 (const char *str, int len) +{ + char *buf = NULL; + uint32_t state = UTF8_VALID, prev = UTF8_VALID, cp = 0; + int i = 0, j = 0, k = 0, l = 0; + + buf = xcalloc (len + 1, sizeof (char)); + for (; i < len; prev = state, ++i) { + switch (utf8_decode (&state, &cp, (unsigned char) str[i])) { + case UTF8_INVAL: + /* replace the whole sequence */ + if (k) { + for (l = i - k; l < i; ++l) + buf[j++] = '?'; + } else { + buf[j++] = '?'; + } + state = UTF8_VALID; + if (prev != UTF8_VALID) + i--; + k = 0; + break; + case UTF8_VALID: + /* fill i - k valid continuation bytes */ + if (k) + for (l = i - k; l < i; ++l) + buf[j++] = str[l]; + buf[j++] = str[i]; + k = 0; + break; + default: + /* UTF8_VALID + continuation bytes */ + k++; + break; + } + } + + return buf; +} + +/* Allocate memory for a websocket server */ +static WSServer * +new_wsserver (void) +{ + WSServer *server = xcalloc (1, sizeof (WSServer)); + + return server; +} + +/* Allocate memory for a websocket client */ +static WSClient * +new_wsclient (void) +{ + WSClient *client = xcalloc (1, sizeof (WSClient)); + client->status = WS_OK; + + return client; +} + +/* Allocate memory for a websocket header */ +static WSHeaders * +new_wsheader (void) +{ + WSHeaders *headers = xcalloc (1, sizeof (WSHeaders)); + memset (headers->buf, 0, sizeof (headers->buf)); + headers->reading = 1; + + return headers; +} + +/* Allocate memory for a websocket frame */ +static WSFrame * +new_wsframe (void) +{ + WSFrame *frame = xcalloc (1, sizeof (WSFrame)); + memset (frame->buf, 0, sizeof (frame->buf)); + frame->reading = 1; + + return frame; +} + +/* Allocate memory for a websocket message */ +static WSMessage * +new_wsmessage (void) +{ + WSMessage *msg = xcalloc (1, sizeof (WSMessage)); + + return msg; +} + +/* Allocate memory for a websocket pipeout */ +static WSPipeOut * +new_wspipeout (void) +{ + WSPipeOut *pipeout = xcalloc (1, sizeof (WSPipeOut)); + pipeout->fd = -1; + + return pipeout; +} + +/* Allocate memory for a websocket pipein */ +static WSPipeIn * +new_wspipein (void) +{ + WSPipeIn *pipein = xcalloc (1, sizeof (WSPipeIn)); + pipein->fd = -1; + + return pipein; +} + +/* Escapes the special characters, e.g., '\n', '\r', '\t', '\' + * in the string source by inserting a '\' before them. + * + * On error NULL is returned. + * On success the escaped string is returned */ +static char * +escape_http_request (const char *src) +{ + char *dest, *q; + const unsigned char *p; + + if (src == NULL || *src == '\0') + return NULL; + + p = (unsigned char *) src; + q = dest = xmalloc (strlen (src) * 4 + 1); + + while (*p) { + switch (*p) { + case '\\': + *q++ = '\\'; + *q++ = '\\'; + break; + case '\n': + *q++ = '\\'; + *q++ = 'n'; + break; + case '\r': + *q++ = '\\'; + *q++ = 'r'; + break; + case '\t': + *q++ = '\\'; + *q++ = 't'; + break; + case '"': + *q++ = '\\'; + *q++ = '"'; + break; + default: + if ((*p < ' ') || (*p >= 0177)) { + /* not ASCII */ + } else { + *q++ = *p; + } + break; + } + p++; + } + *q = 0; + return dest; +} + +/* Make a string uppercase. + * + * On error the original string is returned. + * On success, the uppercased string is returned. */ +static char * +strtoupper (char *str) +{ + char *p = str; + if (str == NULL || *str == '\0') + return str; + + while (*p != '\0') { + *p = toupper (*p); + p++; + } + + return str; +} + +/* Chop n characters from the beginning of the supplied buffer. + * + * The new length of the string is returned. */ +static size_t +chop_nchars (char *str, size_t n, size_t len) +{ + if (n == 0 || str == 0) + return 0; + + if (n > len) + n = len; + memmove (str, str + n, len - n); + + return (len - n); +} + +/* Match a client given a socket id and an item from the list. + * + * On match, 1 is returned, else 0. */ +static int +ws_find_client_sock_in_list (void *data, void *needle) +{ + WSClient *client = data; + + return client->listener == (*(int *) needle); +} + +/* Find a client given a socket id. + * + * On success, an instance of a GSLList node is returned, else NULL. */ +static GSLList * +ws_get_list_node_from_list (int listener, GSLList ** colist) +{ + GSLList *match = NULL; + + /* Find the client data for the socket in use */ + if (!(match = list_find (*colist, ws_find_client_sock_in_list, &listener))) + return NULL; + return match; +} + +/* Find a client given a socket id. + * + * On success, an instance of a WSClient is returned, else NULL. */ +static WSClient * +ws_get_client_from_list (int listener, GSLList ** colist) +{ + GSLList *match = NULL; + + /* Find the client data for the socket in use */ + if (!(match = list_find (*colist, ws_find_client_sock_in_list, &listener))) + return NULL; + return (WSClient *) match->data; +} + +/* Free a frame structure and its data for the given client. */ +static void +ws_free_frame (WSClient * client) +{ + if (client->frame) + free (client->frame); + client->frame = NULL; +} + +/* Free a message structure and its data for the given client. */ +static void +ws_free_message (WSClient * client) +{ + if (client->message && client->message->payload) + free (client->message->payload); + if (client->message) + free (client->message); + client->message = NULL; +} + +/* Free all HTTP handshake headers data for the given client. */ +static void +ws_free_header_fields (WSHeaders * headers) +{ + if (headers->connection) + free (headers->connection); + if (headers->host) + free (headers->host); + if (headers->agent) + free (headers->agent); + if (headers->method) + free (headers->method); + if (headers->origin) + free (headers->origin); + if (headers->path) + free (headers->path); + if (headers->protocol) + free (headers->protocol); + if (headers->upgrade) + free (headers->upgrade); + if (headers->ws_accept) + free (headers->ws_accept); + if (headers->ws_key) + free (headers->ws_key); + if (headers->ws_protocol) + free (headers->ws_protocol); + if (headers->ws_resp) + free (headers->ws_resp); + if (headers->ws_sock_ver) + free (headers->ws_sock_ver); + if (headers->referer) + free (headers->referer); +} + +/* Clear the client's sent queue and its data. */ +static void +ws_clear_queue (WSClient * client) +{ + WSQueue **queue = &client->sockqueue; + if (!(*queue)) + return; + + if ((*queue)->queued) + free ((*queue)->queued); + (*queue)->queued = NULL; + (*queue)->qlen = 0; + + free ((*queue)); + (*queue) = NULL; + + /* done sending the whole queue, stop throttling */ + client->status &= ~WS_THROTTLING; + /* done sending, close connection if set to close */ + if ((client->status & WS_CLOSE) && (client->status & WS_SENDING)) + client->status = WS_CLOSE; +} + +/* Free all HTTP handshake headers and structure. */ +static void +ws_clear_handshake_headers (WSHeaders * headers) +{ + ws_free_header_fields (headers); + free (headers); + headers = NULL; +} + +/* Remove the given client from the list. */ +static void +ws_remove_client_from_list (WSClient * client, WSServer * server) +{ + GSLList *node = NULL; + + if (!(node = ws_get_list_node_from_list (client->listener, &server->colist))) + return; + + if (client->headers) + ws_clear_handshake_headers (client->headers); + list_remove_node (&server->colist, node); +} + +#if HAVE_LIBSSL +/* Attempt to send the TLS/SSL "close notify" shutdown and and removes + * the SSL structure pointed to by ssl and frees up the allocated + * memory. */ +static void +ws_shutdown_dangling_clients (WSClient * client) +{ + shutdown_ssl (client); + SSL_free (client->ssl); + client->ssl = NULL; +} + +/* Attempt to remove the SSL_CTX object pointed to by ctx and frees up + * the allocated memory and cleans some more generally used TLS/SSL + * memory. */ +static void +ws_ssl_cleanup (WSServer * server) +{ + if (!wsconfig.use_ssl) + return; + + if (server->ctx) + SSL_CTX_free (server->ctx); + + CRYPTO_cleanup_all_ex_data (); + CRYPTO_set_id_callback (NULL); + CRYPTO_set_locking_callback (NULL); + ERR_free_strings (); +#if OPENSSL_VERSION_NUMBER < 0x10100000L + ERR_remove_state (0); +#endif + EVP_cleanup (); +} +#endif + +/* Remove all clients that are still hanging out. */ +static int +ws_remove_dangling_clients (void *value, void *user_data) +{ + WSClient *client = value; + (void) (user_data); + + if (client == NULL) + return 1; + + if (client->headers) + ws_clear_handshake_headers (client->headers); + if (client->sockqueue) + ws_clear_queue (client); +#ifdef HAVE_LIBSSL + if (client->ssl) + ws_shutdown_dangling_clients (client); +#endif + + return 0; +} + +/* Do some housekeeping on the named pipe data packet. */ +static void +ws_clear_fifo_packet (WSPacket * packet) +{ + if (!packet) + return; + + if (packet->data) + free (packet->data); + free (packet); +} + +/* Do some housekeeping on the named pipe. */ +static void +ws_clear_pipein (WSPipeIn * pipein) +{ + WSPacket **packet = &pipein->packet; + if (!pipein) + return; + + if (pipein->fd != -1) + close (pipein->fd); + + ws_clear_fifo_packet (*packet); + free (pipein); + + if (wsconfig.pipein && access (wsconfig.pipein, F_OK) != -1) + unlink (wsconfig.pipein); +} + +/* Do some housekeeping on the named pipe. */ +static void +ws_clear_pipeout (WSPipeOut * pipeout) +{ + if (!pipeout) + return; + + if (pipeout->fd != -1) + close (pipeout->fd); + + free (pipeout); + + if (wsconfig.pipeout && access (wsconfig.pipeout, F_OK) != -1) + unlink (wsconfig.pipeout); +} + +/* Stop the server and do some cleaning. */ +void +ws_stop (WSServer * server) +{ + WSPipeIn **pipein = &server->pipein; + WSPipeOut **pipeout = &server->pipeout; + + ws_clear_pipein (*pipein); + ws_clear_pipeout (*pipeout); + + /* close access log (if any) */ + if (wsconfig.accesslog) + access_log_close (); + + /* remove dangling clients */ + if (list_count (server->colist) > 0) + list_foreach (server->colist, ws_remove_dangling_clients, NULL); + + if (server->colist) + list_remove_nodes (server->colist); + +#ifdef HAVE_LIBSSL + ws_ssl_cleanup (server); +#endif + + free (server); +} + +/* A wrapper to close a socket. */ +static void +ws_close (int listener) +{ + close (listener); +} + +/* Set the connection status for the given client and return the given + * bytes. + * + * The given number of bytes are returned. */ +static int +ws_set_status (WSClient * client, WSStatus status, int bytes) +{ + client->status = status; + return bytes; +} + +/* Append the source string to destination and reallocates and + * updating the destination buffer appropriately. */ +static void +ws_append_str (char **dest, const char *src) +{ + size_t curlen = strlen (*dest); + size_t srclen = strlen (src); + size_t newlen = curlen + srclen; + + char *str = xrealloc (*dest, newlen + 1); + memcpy (str + curlen, src, srclen + 1); + *dest = str; +} + +#if HAVE_LIBSSL +/* Create a new SSL_CTX object as framework to establish TLS/SSL + * enabled connections. + * + * On error 1 is returned. + * On success, SSL_CTX object is malloc'd and 0 is returned. + */ +static int +initialize_ssl_ctx (WSServer * server) +{ + int ret = 1; + SSL_CTX *ctx = NULL; + +#if OPENSSL_VERSION_NUMBER < 0x10100000L + SSL_library_init (); + SSL_load_error_strings (); +#endif + + /* Ciphers and message digests */ + OpenSSL_add_ssl_algorithms (); + + /* ssl context */ + if (!(ctx = SSL_CTX_new (SSLv23_server_method ()))) + goto out; + /* set certificate */ + if (!SSL_CTX_use_certificate_file (ctx, wsconfig.sslcert, SSL_FILETYPE_PEM)) + goto out; + /* ssl private key */ + if (!SSL_CTX_use_PrivateKey_file (ctx, wsconfig.sslkey, SSL_FILETYPE_PEM)) + goto out; + if (!SSL_CTX_check_private_key (ctx)) + goto out; + + /* since we queued up the send data, a retry won't be the same buffer, + * thus we need the following flags */ + SSL_CTX_set_mode (ctx, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER | + SSL_MODE_ENABLE_PARTIAL_WRITE); + + server->ctx = ctx; + ret = 0; +out: + if (ret) { + SSL_CTX_free (ctx); + LOG (("Error: %s\n", ERR_error_string (ERR_get_error (), NULL))); + } + + return ret; +} + +/* Log result code for TLS/SSL I/O operation */ +static void +log_return_message (int ret, int err, const char *fn) +{ + unsigned long e; + + switch (err) { + case SSL_ERROR_NONE: + LOG (("SSL: %s -> SSL_ERROR_NONE\n", fn)); + LOG (("SSL: TLS/SSL I/O operation completed\n")); + break; + case SSL_ERROR_WANT_READ: + LOG (("SSL: %s -> SSL_ERROR_WANT_READ\n", fn)); + LOG (("SSL: incomplete, data available for reading\n")); + break; + case SSL_ERROR_WANT_WRITE: + LOG (("SSL: %s -> SSL_ERROR_WANT_WRITE\n", fn)); + LOG (("SSL: incomplete, data available for writing\n")); + break; + case SSL_ERROR_ZERO_RETURN: + LOG (("SSL: %s -> SSL_ERROR_ZERO_RETURN\n", fn)); + LOG (("SSL: TLS/SSL connection has been closed\n")); + break; + case SSL_ERROR_WANT_X509_LOOKUP: + LOG (("SSL: %s -> SSL_ERROR_WANT_X509_LOOKUP\n", fn)); + break; + case SSL_ERROR_SYSCALL: + LOG (("SSL: %s -> SSL_ERROR_SYSCALL\n", fn)); + + e = ERR_get_error (); + if (e > 0) + LOG (("SSL: %s -> %s\n", fn, ERR_error_string (e, NULL))); + + /* call was not successful because a fatal error occurred either at the + * protocol level or a connection failure occurred. */ + if (ret != 0) { + LOG (("SSL bogus handshake interrupt: \n", strerror (errno))); + break; + } + /* call not yet finished. */ + LOG (("SSL: handshake interrupted, got EOF\n")); + if (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN) + LOG (("SSL: %s -> not yet finished %s\n", fn, strerror (errno))); + break; + default: + LOG (("SSL: %s -> failed fatal error code: %d\n", fn, err)); + LOG (("SSL: %s\n", ERR_error_string (ERR_get_error (), NULL))); + break; + } +} + +/* Shut down the client's TLS/SSL connection + * + * On fatal error, 1 is returned. + * If data still needs to be read/written, -1 is returned. + * On success, the TLS/SSL connection is closed and 0 is returned */ +static int +shutdown_ssl (WSClient * client) +{ + int ret = -1, err = 0; + + /* all good */ + if ((ret = SSL_shutdown (client->ssl)) > 0) + return ws_set_status (client, WS_CLOSE, 0); + + err = SSL_get_error (client->ssl, ret); + log_return_message (ret, err, "SSL_shutdown"); + + switch (err) { + case SSL_ERROR_WANT_READ: + case SSL_ERROR_WANT_WRITE: + client->sslstatus = WS_TLS_SHUTTING; + break; + case SSL_ERROR_SYSCALL: + if (ret == 0) { + LOG (("SSL: SSL_shutdown, connection unexpectedly closed by peer.\n")); + /* The shutdown is not yet finished. */ + if (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN) + client->sslstatus = WS_TLS_SHUTTING; + break; + } + LOG (("SSL: SSL_shutdown, probably unrecoverable, forcing close.\n")); + case SSL_ERROR_ZERO_RETURN: + case SSL_ERROR_WANT_X509_LOOKUP: + default: + return ws_set_status (client, WS_ERR | WS_CLOSE, 1); + } + + return ret; +} + +/* Wait for a TLS/SSL client to initiate a TLS/SSL handshake + * + * On fatal error, the connection is shut down. + * If data still needs to be read/written, -1 is returned. + * On success, the TLS/SSL connection is completed and 0 is returned */ +static int +accept_ssl (WSClient * client) +{ + int ret = -1, err = 0; + + /* all good on TLS handshake */ + if ((ret = SSL_accept (client->ssl)) > 0) { + client->sslstatus &= ~WS_TLS_ACCEPTING; + return 0; + } + + err = SSL_get_error (client->ssl, ret); + log_return_message (ret, err, "SSL_accept"); + + switch (err) { + case SSL_ERROR_WANT_READ: + case SSL_ERROR_WANT_WRITE: + client->sslstatus = WS_TLS_ACCEPTING; + break; + case SSL_ERROR_SYSCALL: + /* Wait for more activity else bail out, for instance if the socket is closed + * during the handshake. */ + if (ret < 0 && (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR)) { + client->sslstatus = WS_TLS_ACCEPTING; + break; + } + /* The peer notified that it is shutting down through a SSL "close_notify" so + * we shutdown too */ + case SSL_ERROR_ZERO_RETURN: + case SSL_ERROR_WANT_X509_LOOKUP: + default: + client->sslstatus &= ~WS_TLS_ACCEPTING; + return ws_set_status (client, WS_ERR | WS_CLOSE, 1); + } + + return ret; +} + +/* Create a new SSL structure for a connection and perform handshake */ +static void +handle_accept_ssl (WSClient * client, WSServer * server) +{ + /* attempt to create SSL connection if we don't have one yet */ + if (!client->ssl) { + if (!(client->ssl = SSL_new (server->ctx))) { + LOG (("SSL: SSL_new, new SSL structure failed.\n")); + return; + } + if (!SSL_set_fd (client->ssl, client->listener)) { + LOG (("SSL: unable to set file descriptor\n")); + return; + } + } + + /* attempt to initiate the TLS/SSL handshake */ + if (accept_ssl (client) == 0) { + LOG (("SSL Accepted: %d %s\n", client->listener, client->remote_ip)); + } +} + +/* Given the current status of the SSL buffer, perform that action. + * + * On error or if no SSL pending status, 1 is returned. + * On success, the TLS/SSL pending action is called and 0 is returned */ +static int +handle_ssl_pending_rw (int conn, WSServer * server, WSClient * client) +{ + if (!wsconfig.use_ssl) + return 1; + + /* trying to write but still waiting for a successful SSL_accept */ + if (client->sslstatus & WS_TLS_ACCEPTING) { + handle_accept_ssl (client, server); + return 0; + } + /* trying to read but still waiting for a successful SSL_read */ + if (client->sslstatus & WS_TLS_READING) { + handle_reads (conn, server); + return 0; + } + /* trying to write but still waiting for a successful SSL_write */ + if (client->sslstatus & WS_TLS_WRITING) { + handle_writes (conn, server); + return 0; + } + /* trying to write but still waiting for a successful SSL_shutdown */ + if (client->sslstatus & WS_TLS_SHUTTING) { + if (shutdown_ssl (client) == 0) + handle_read_close (conn, client, server); + return 0; + } + + return 1; +} + +/* Write bytes to a TLS/SSL connection for a given client. + * + * On error or if no write is performed <=0 is returned. + * On success, the number of bytes actually written to the TLS/SSL + * connection are returned */ +static int +send_ssl_buffer (WSClient * client, const char *buffer, int len) +{ + int bytes = 0, err = 0; + +#if OPENSSL_VERSION_NUMBER < 0x10100000L + ERR_clear_error (); +#endif + if ((bytes = SSL_write (client->ssl, buffer, len)) > 0) + return bytes; + + err = SSL_get_error (client->ssl, bytes); + log_return_message (bytes, err, "SSL_write"); + + switch (err) { + case SSL_ERROR_WANT_WRITE: + break; + case SSL_ERROR_WANT_READ: + client->sslstatus = WS_TLS_WRITING; + break; + case SSL_ERROR_SYSCALL: + if ((bytes < 0 && + (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR))) + break; + /* The connection was shut down cleanly */ + case SSL_ERROR_ZERO_RETURN: + case SSL_ERROR_WANT_X509_LOOKUP: + default: + return ws_set_status (client, WS_ERR | WS_CLOSE, -1); + } + + return bytes; +} + +/* Read data from the given client's socket and set a connection + * status given the output of recv(). + * + * On error, -1 is returned and the connection status is set. + * On success, the number of bytes read is returned. */ +static int +read_ssl_socket (WSClient * client, char *buffer, int size) +{ + int bytes = 0, done = 0, err = 0; + do { +#if OPENSSL_VERSION_NUMBER < 0x10100000L + ERR_clear_error (); +#endif + + done = 0; + if ((bytes = SSL_read (client->ssl, buffer, size)) > 0) + break; + + err = SSL_get_error (client->ssl, bytes); + log_return_message (bytes, err, "SSL_read"); + + switch (err) { + case SSL_ERROR_WANT_WRITE: + client->sslstatus = WS_TLS_READING; + done = 1; + break; + case SSL_ERROR_WANT_READ: + done = 1; + break; + case SSL_ERROR_SYSCALL: + if ((bytes < 0 && + (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR))) + break; + case SSL_ERROR_ZERO_RETURN: + case SSL_ERROR_WANT_X509_LOOKUP: + default: + return ws_set_status (client, WS_ERR | WS_CLOSE, -1); + } + } while (SSL_pending (client->ssl) && !done); + + return bytes; +} +#endif + +/* Get sockaddr, either IPv4 or IPv6 */ +static void * +ws_get_raddr (struct sockaddr *sa) +{ + if (sa->sa_family == AF_INET) + return &(((struct sockaddr_in *) sa)->sin_addr); + + return &(((struct sockaddr_in6 *) sa)->sin6_addr); +} + +/* Set the given file descriptor as NON BLOCKING. */ +void +set_nonblocking (int sock) +{ + if (fcntl (sock, F_SETFL, fcntl (sock, F_GETFL, 0) | O_NONBLOCK) == -1) + FATAL ("Unable to set socket as non-blocking: %s.", strerror (errno)); +} + +/* Accept a new connection on a socket and add it to the list of + * current connected clients. + * + * The newly assigned socket is returned. */ +static int +accept_client (int listener, GSLList ** colist) +{ + WSClient *client; + struct sockaddr_storage raddr; + int newfd; + const void *src = NULL; + socklen_t alen; + + alen = sizeof (raddr); + if ((newfd = accept (listener, (struct sockaddr *) &raddr, &alen)) == -1) + FATAL ("Unable to set accept: %s.", strerror (errno)); + + if (newfd == -1) { + LOG (("Unable to accept: %s.", strerror (errno))); + return newfd; + } + src = ws_get_raddr ((struct sockaddr *) &raddr); + + /* malloc a new client */ + client = new_wsclient (); + client->listener = newfd; + inet_ntop (raddr.ss_family, src, client->remote_ip, INET6_ADDRSTRLEN); + + /* add up our new client to keep track of */ + if (*colist == NULL) + *colist = list_create (client); + else + *colist = list_insert_prepend (*colist, client); + + /* make the socket non-blocking */ + set_nonblocking (client->listener); + + return newfd; +} + +/* Extract the HTTP method. + * + * On error, or if not found, NULL is returned. + * On success, the HTTP method is returned. */ +static const char * +ws_get_method (const char *token) +{ + const char *lookfor = NULL; + + if ((lookfor = "GET", !memcmp (token, "GET ", 4)) || + (lookfor = "get", !memcmp (token, "get ", 4))) + return lookfor; + return NULL; +} + +/* Parse a request containing the method and protocol. + * + * On error, or unable to parse, NULL is returned. + * On success, the HTTP request is returned and the method and + * protocol are assigned to the corresponding buffers. */ +static char * +ws_parse_request (char *line, char **method, char **protocol) +{ + const char *meth; + char *req = NULL, *request = NULL, *proto = NULL; + ptrdiff_t rlen; + + if ((meth = ws_get_method (line)) == NULL) { + return NULL; + } else { + req = line + strlen (meth); + if ((proto = strstr (line, " HTTP/1.0")) == NULL && + (proto = strstr (line, " HTTP/1.1")) == NULL) + return NULL; + + req++; + if ((rlen = proto - req) <= 0) + return NULL; + + request = xmalloc (rlen + 1); + strncpy (request, req, rlen); + request[rlen] = 0; + + (*method) = strtoupper (xstrdup (meth)); + (*protocol) = strtoupper (xstrdup (++proto)); + } + + return request; +} + +/* Given a pair of key/values, assign it to our HTTP headers + * structure. */ +static void +ws_set_header_key_value (WSHeaders * headers, char *key, char *value) +{ + if (strcasecmp ("Host", key) == 0) + headers->host = xstrdup (value); + else if (strcasecmp ("Origin", key) == 0) + headers->origin = xstrdup (value); + else if (strcasecmp ("Upgrade", key) == 0) + headers->upgrade = xstrdup (value); + else if (strcasecmp ("Connection", key) == 0) + headers->connection = xstrdup (value); + else if (strcasecmp ("Sec-WebSocket-Protocol", key) == 0) + headers->ws_protocol = xstrdup (value); + else if (strcasecmp ("Sec-WebSocket-Key", key) == 0) + headers->ws_key = xstrdup (value); + else if (strcasecmp ("Sec-WebSocket-Version", key) == 0) + headers->ws_sock_ver = xstrdup (value); + else if (strcasecmp ("User-Agent", key) == 0) + headers->agent = xstrdup (value); + else if (strcasecmp ("Referer", key) == 0) + headers->referer = xstrdup (value); +} + +/* Verify that the given HTTP headers were passed upon doing the + * websocket handshake. + * + * On error, or header missing, 1 is returned. + * On success, 0 is returned. */ +static int +ws_verify_req_headers (WSHeaders * headers) +{ + if (!headers->host) + return 1; + if (!headers->method) + return 1; + if (!headers->protocol) + return 1; + if (!headers->path) + return 1; + if (wsconfig.origin && !headers->origin) + return 1; + if (wsconfig.origin && strcasecmp (wsconfig.origin, headers->origin) != 0) + return 1; + if (!headers->connection) + return 1; + if (!headers->ws_key) + return 1; + if (!headers->ws_sock_ver) + return 1; + return 0; +} + +/* From RFC2616, each header field consists of a name followed by a + * colon (":") and the field value. Field names are case-insensitive. + * The field value MAY be preceded by any amount of LWS, though a + * single SP is preferred */ +static int +ws_set_header_fields (char *line, WSHeaders * headers) +{ + char *path = NULL, *method = NULL, *proto = NULL, *p, *value; + + if (line[0] == '\n' || line[0] == '\r') + return 1; + + if ((strstr (line, "GET ")) || (strstr (line, "get "))) { + if ((path = ws_parse_request (line, &method, &proto)) == NULL) + return 1; + headers->path = path; + headers->method = method; + headers->protocol = proto; + + return 0; + } + + if ((p = strchr (line, ':')) == NULL) + return 1; + + value = p + 1; + while (p != line && isspace ((unsigned char) *(p - 1))) + p--; + + if (p == line) + return 1; + + *p = '\0'; + if (strpbrk (line, " \t") != NULL) { + *p = ' '; + return 1; + } + while (isspace ((unsigned char) *value)) + value++; + + ws_set_header_key_value (headers, line, value); + + return 0; +} + +/* Parse the given HTTP headers and set the expected websocket + * handshake. + * + * On error, or 1 is returned. + * On success, 0 is returned. */ +static int +parse_headers (WSHeaders * headers) +{ + char *tmp = NULL; + const char *buffer = headers->buf; + const char *line = buffer, *next = NULL; + int len = 0; + + while (line) { + if ((next = strstr (line, "\r\n")) != NULL) + len = (next - line); + else + len = strlen (line); + + if (len <= 0) + return 1; + + tmp = xmalloc (len + 1); + memcpy (tmp, line, len); + tmp[len] = '\0'; + + if (ws_set_header_fields (tmp, headers) == 1) { + free (tmp); + return 1; + } + + free (tmp); + line = next ? (next + 2) : NULL; + + if (strcmp (next, "\r\n\r\n") == 0) + break; + } + + return 0; +} + +/* Set into a queue the data that couldn't be sent. */ +static void +ws_queue_sockbuf (WSClient * client, const char *buffer, int len, int bytes) +{ + WSQueue *queue = xcalloc (1, sizeof (WSQueue)); + + if (bytes < 1) + bytes = 0; + + queue->queued = xcalloc (len - bytes, sizeof (char)); + memcpy (queue->queued, buffer + bytes, len - bytes); + queue->qlen = len - bytes; + client->sockqueue = queue; + + client->status |= WS_SENDING; +} + +/* Read data from the given client's socket and set a connection + * status given the output of recv(). + * + * On error, -1 is returned and the connection status is set. + * On success, the number of bytes read is returned. */ +static int +read_plain_socket (WSClient * client, char *buffer, int size) +{ + int bytes = 0; + + bytes = recv (client->listener, buffer, size, 0); + + if (bytes == -1 && (errno == EAGAIN || errno == EWOULDBLOCK)) + return ws_set_status (client, WS_READING, bytes); + else if (bytes == -1 || bytes == 0) + return ws_set_status (client, WS_ERR | WS_CLOSE, bytes); + + return bytes; +} + +/* Read data from the given client's socket and set a connection + * status given the output of recv(). + * + * On error, -1 is returned and the connection status is set. + * On success, the number of bytes read is returned. */ +static int +read_socket (WSClient * client, char *buffer, int size) +{ +#ifdef HAVE_LIBSSL + if (wsconfig.use_ssl) + return read_ssl_socket (client, buffer, size); + else + return read_plain_socket (client, buffer, size); +#else + return read_plain_socket (client, buffer, size); +#endif +} + +static int +send_plain_buffer (WSClient * client, const char *buffer, int len) +{ + return send (client->listener, buffer, len, 0); +} + +static int +send_buffer (WSClient * client, const char *buffer, int len) +{ +#ifdef HAVE_LIBSSL + if (wsconfig.use_ssl) + return send_ssl_buffer (client, buffer, len); + else + return send_plain_buffer (client, buffer, len); +#else + return send_plain_buffer (client, buffer, len); +#endif +} + +/* Attmpt to send the given buffer to the given socket. + * + * On error, -1 is returned and the connection status is set. + * On success, the number of bytes sent is returned. */ +static int +ws_respond_data (WSClient * client, const char *buffer, int len) +{ + int bytes = 0; + + bytes = send_buffer (client, buffer, len); + if (bytes == -1 && errno == EPIPE) + return ws_set_status (client, WS_ERR | WS_CLOSE, bytes); + + /* did not send all of it... buffer it for a later attempt */ + if (bytes < len || (bytes == -1 && (errno == EAGAIN || errno == EWOULDBLOCK))) + ws_queue_sockbuf (client, buffer, len, bytes); + + return bytes; +} + +/* Attempt to send the queued up client's data to the given socket. + * + * On error, -1 is returned and the connection status is set. + * On success, the number of bytes sent is returned. */ +static int +ws_respond_cache (WSClient * client) +{ + WSQueue *queue = client->sockqueue; + int bytes = 0; + + bytes = send_buffer (client, queue->queued, queue->qlen); + if (bytes == -1 && errno == EPIPE) + return ws_set_status (client, WS_ERR | WS_CLOSE, bytes); + + if (bytes == -1 && (errno == EAGAIN || errno == EWOULDBLOCK)) + return bytes; + + if (chop_nchars (queue->queued, bytes, queue->qlen) == 0) + ws_clear_queue (client); + else + queue->qlen -= bytes; + + return bytes; +} + +/* Attempt to realloc the current sent queue. + * + * On error, 1 is returned and the connection status is set. + * On success, 0 is returned. */ +static int +ws_realloc_send_buf (WSClient * client, const char *buf, int len) +{ + WSQueue *queue = client->sockqueue; + char *tmp = NULL; + int newlen = 0; + + newlen = queue->qlen + len; + tmp = realloc (queue->queued, newlen); + if (tmp == NULL && newlen > 0) { + ws_clear_queue (client); + return ws_set_status (client, WS_ERR | WS_CLOSE, 1); + } + queue->queued = tmp; + memcpy (queue->queued + queue->qlen, buf, len); + queue->qlen += len; + + /* client probably too slow, so stop queueing until everything is + * sent */ + if (queue->qlen >= WS_THROTTLE_THLD) + client->status |= WS_THROTTLING; + + return 0; +} + +/* An entry point to attempt to send the client's data. + * + * On error, 1 is returned and the connection status is set. + * On success, the number of bytes sent is returned. */ +static int +ws_respond (WSClient * client, const char *buffer, int len) +{ + int bytes = 0; + + /* attempt to send the whole buffer buffer */ + if (client->sockqueue == NULL) + bytes = ws_respond_data (client, buffer, len); + /* buffer not empty, just append new data iff we're not throttling the + * client */ + else if (client->sockqueue != NULL && buffer != NULL && + !(client->status & WS_THROTTLING)) { + if (ws_realloc_send_buf (client, buffer, len) == 1) + return bytes; + } + /* send from cache buffer */ + else { + bytes = ws_respond_cache (client); + } + + return bytes; +} + +/* Encode a websocket frame (header/message) and attempt to send it + * through the client's socket. + * + * On success, 0 is returned. */ +static int +ws_send_frame (WSClient * client, WSOpcode opcode, const char *p, int sz) +{ + unsigned char buf[32] = { 0 }; + char *frm = NULL; + uint64_t payloadlen = 0, u64; + int hsize = 2; + + if (sz < 126) { + payloadlen = sz; + } else if (sz < (1 << 16)) { + payloadlen = WS_PAYLOAD_EXT16; + hsize += 2; + } else { + payloadlen = WS_PAYLOAD_EXT64; + hsize += 8; + } + + buf[0] = 0x80 | ((uint8_t) opcode); + switch (payloadlen) { + case WS_PAYLOAD_EXT16: + buf[1] = WS_PAYLOAD_EXT16; + buf[2] = (sz & 0xff00) >> 8; + buf[3] = (sz & 0x00ff) >> 0; + break; + case WS_PAYLOAD_EXT64: + buf[1] = WS_PAYLOAD_EXT64; + u64 = htobe64 (sz); + memcpy (buf + 2, &u64, sizeof (uint64_t)); + break; + default: + buf[1] = (sz & 0xff); + } + frm = xcalloc (hsize + sz, sizeof (unsigned char)); + memcpy (frm, buf, hsize); + if (p != NULL && sz > 0) + memcpy (frm + hsize, p, sz); + + ws_respond (client, frm, hsize + sz); + free (frm); + + return 0; +} + +/* Send an error message to the given client. + * + * On success, the number of sent bytes is returned. */ +static int +ws_error (WSClient * client, unsigned short code, const char *err) +{ + unsigned int len; + unsigned short code_be; + char buf[128] = { 0 }; + + len = 2; + code_be = htobe16 (code); + memcpy (buf, &code_be, 2); + if (err) + len += snprintf (buf + 2, sizeof buf - 4, "%s", err); + + return ws_send_frame (client, WS_OPCODE_CLOSE, buf, len); +} + +/* Log hit to the access log. + * + * On success, the hit/entry is logged. */ +static void +access_log (WSClient * client, int status_code) +{ + WSHeaders *hdrs = client->headers; + char buf[64] = { 0 }; + uint32_t elapsed = 0; + struct timeval tv; + char *req = NULL, *ref = NULL, *ua = NULL; + + gettimeofday (&tv, NULL); + strftime (buf, sizeof (buf) - 1, "[%d/%b/%Y:%H:%M:%S %z]", + localtime (&tv.tv_sec)); + + elapsed = (client->end_proc.tv_sec - client->start_proc.tv_sec) * 1000.0; + elapsed += (client->end_proc.tv_usec - client->start_proc.tv_usec) / 1000.0; + + req = escape_http_request (hdrs->path); + ref = escape_http_request (hdrs->referer); + ua = escape_http_request (hdrs->agent); + + ACCESS_LOG (("%s ", client->remote_ip)); + ACCESS_LOG (("- - ")); + ACCESS_LOG (("%s ", buf)); + ACCESS_LOG (("\"%s ", hdrs->method)); + ACCESS_LOG (("%s ", req ? req : "-")); + ACCESS_LOG (("%s\" ", hdrs->protocol)); + ACCESS_LOG (("%d ", status_code)); + ACCESS_LOG (("%d ", hdrs->buflen)); + ACCESS_LOG (("\"%s\" ", ref ? ref : "-")); + ACCESS_LOG (("\"%s\" ", ua ? ua : "-")); + ACCESS_LOG (("%zu\n", elapsed)); + + if (req) + free (req); + if (ref) + free (ref); + if (ua) + free (ua); +} + +/* Send an HTTP error status to the given client. + * + * On success, the number of sent bytes is returned. */ +static int +http_error (WSClient * client, const char *buffer) +{ + /* do access logging */ + gettimeofday (&client->end_proc, NULL); + if (wsconfig.accesslog) + access_log (client, 400); + + return ws_respond (client, buffer, strlen (buffer)); +} + +/* Compute the SHA1 for the handshake. */ +static void +ws_sha1_digest (const char *s, int len, unsigned char *digest) +{ + SHA1_CTX sha; + + SHA1Init (&sha); + SHA1Update (&sha, (uint8_t *) s, len); + SHA1Final (digest, &sha); +} + +/* Set the parsed websocket handshake headers. */ +static void +ws_set_handshake_headers (WSHeaders * headers) +{ + size_t klen = strlen (headers->ws_key); + size_t mlen = strlen (WS_MAGIC_STR); + size_t len = klen + mlen; + char *s = xmalloc (klen + mlen + 1); + uint8_t digest[SHA_DIGEST_LENGTH]; + + memset (digest, 0, sizeof *digest); + + memcpy (s, headers->ws_key, klen); + memcpy (s + klen, WS_MAGIC_STR, mlen + 1); + + ws_sha1_digest (s, len, digest); + + /* set response headers */ + headers->ws_accept = + base64_encode ((unsigned char *) digest, sizeof (digest)); + headers->ws_resp = xstrdup (WS_SWITCH_PROTO_STR); + + if (!headers->upgrade) + headers->upgrade = xstrdup ("websocket"); + if (!headers->connection) + headers->upgrade = xstrdup ("Upgrade"); + + free (s); +} + +/* Send the websocket handshake headers to the given client. + * + * On success, the number of sent bytes is returned. */ +static int +ws_send_handshake_headers (WSClient * client, WSHeaders * headers) +{ + int bytes = 0; + char *str = xstrdup (""); + + ws_append_str (&str, headers->ws_resp); + ws_append_str (&str, CRLF); + + ws_append_str (&str, "Upgrade: "); + ws_append_str (&str, headers->upgrade); + ws_append_str (&str, CRLF); + + ws_append_str (&str, "Connection: "); + ws_append_str (&str, headers->connection); + ws_append_str (&str, CRLF); + + ws_append_str (&str, "Sec-WebSocket-Accept: "); + ws_append_str (&str, headers->ws_accept); + ws_append_str (&str, CRLF CRLF); + + bytes = ws_respond (client, str, strlen (str)); + free (str); + + return bytes; +} + +/* Given the HTTP connection headers, attempt to parse the web socket + * handshake headers. + * + * On success, the number of sent bytes is returned. */ +static int +ws_get_handshake (WSClient * client, WSServer * server) +{ + int bytes = 0, readh = 0; + char *buf = NULL; + + if (client->headers == NULL) + client->headers = new_wsheader (); + + buf = client->headers->buf; + readh = client->headers->buflen; + /* Probably the connection was closed before finishing handshake */ + if ((bytes = read_socket (client, buf + readh, BUFSIZ - readh)) < 1) { + if (client->status & WS_CLOSE) + http_error (client, WS_BAD_REQUEST_STR); + return bytes; + } + client->headers->buflen += bytes; + + buf[client->headers->buflen] = '\0'; /* null-terminate */ + + /* Must have a \r\n\r\n */ + if (strstr (buf, "\r\n\r\n") == NULL) { + if (strlen (buf) < BUFSIZ) + return ws_set_status (client, WS_READING, bytes); + + http_error (client, WS_BAD_REQUEST_STR); + return ws_set_status (client, WS_CLOSE, bytes); + } + + /* Ensure we have valid HTTP headers for the handshake */ + if (parse_headers (client->headers) != 0) { + http_error (client, WS_BAD_REQUEST_STR); + return ws_set_status (client, WS_CLOSE, bytes); + } + + /* Ensure we have the required headers */ + if (ws_verify_req_headers (client->headers) != 0) { + http_error (client, WS_BAD_REQUEST_STR); + return ws_set_status (client, WS_CLOSE, bytes); + } + + ws_set_handshake_headers (client->headers); + + /* handshake response */ + ws_send_handshake_headers (client, client->headers); + + /* upon success, call onopen() callback */ + if (server->onopen && wsconfig.strict && !wsconfig.echomode) + server->onopen (server->pipeout, client); + client->headers->reading = 0; + + /* do access logging */ + gettimeofday (&client->end_proc, NULL); + if (wsconfig.accesslog) + access_log (client, 101); + LOG (("Active: %d\n", list_count (server->colist))); + + return ws_set_status (client, WS_OK, bytes); +} + +/* Send a data message to the given client. + * + * On success, 0 is returned. */ +int +ws_send_data (WSClient * client, WSOpcode opcode, const char *p, int sz) +{ + char *buf = NULL; + + buf = sanitize_utf8 (p, sz); + ws_send_frame (client, opcode, buf, sz); + free (buf); + + return 0; +} + +/* Read a websocket frame's header. + * + * On success, the number of bytesr read is returned. */ +static int +ws_read_header (WSClient * client, WSFrame * frm, int pos, int need) +{ + char *buf = frm->buf; + int bytes = 0; + + /* read the first 2 bytes for basic frame info */ + if ((bytes = read_socket (client, buf + pos, need)) < 1) { + if (client->status & WS_CLOSE) + ws_error (client, WS_CLOSE_UNEXPECTED, "Unable to read header"); + return bytes; + } + frm->buflen += bytes; + frm->buf[frm->buflen] = '\0'; /* null-terminate */ + + return bytes; +} + +/* Read a websocket frame's payload. + * + * On success, the number of bytesr read is returned. */ +static int +ws_read_payload (WSClient * client, WSMessage * msg, int pos, int need) +{ + char *buf = msg->payload; + int bytes = 0; + + /* read the first 2 bytes for basic frame info */ + if ((bytes = read_socket (client, buf + pos, need)) < 1) { + if (client->status & WS_CLOSE) + ws_error (client, WS_CLOSE_UNEXPECTED, "Unable to read payload"); + return bytes; + } + msg->buflen += bytes; + msg->payloadsz += bytes; + + return bytes; +} + +/* Set the basic frame headers on a frame structure. + * + * On success, 0 is returned. */ +static int +ws_set_front_header_fields (WSClient * client) +{ + WSFrame **frm = &client->frame; + char *buf = (*frm)->buf; + + (*frm)->fin = WS_FRM_FIN (*(buf)); + (*frm)->masking = WS_FRM_MASK (*(buf + 1)); + (*frm)->opcode = WS_FRM_OPCODE (*(buf)); + (*frm)->res = WS_FRM_R1 (*(buf)) || WS_FRM_R2 (*(buf)) || WS_FRM_R3 (*(buf)); + + /* should be masked and can't be using RESVd bits */ + if (!(*frm)->masking || (*frm)->res) + return ws_set_status (client, WS_ERR | WS_CLOSE, 1); + + return 0; +} + +/* Unmask the payload given the current frame's masking key. */ +static void +ws_unmask_payload (char *buf, int len, int offset, unsigned char mask[]) +{ + int i, j = 0; + + /* unmask data */ + for (i = offset; i < len; ++i, ++j) { + buf[i] ^= mask[j % 4]; + } +} + +/* Close a websocket connection. */ +static int +ws_handle_close (WSClient * client) +{ + client->status = WS_ERR | WS_CLOSE; + return ws_send_frame (client, WS_OPCODE_CLOSE, NULL, 0); +} + +/* Handle a websocket error. + * + * On success, the number of bytes sent is returned. */ +static int +ws_handle_err (WSClient * client, unsigned short code, WSStatus status, + const char *m) +{ + client->status = status; + return ws_error (client, code, m); +} + +/* Handle a websocket pong. */ +static void +ws_handle_pong (WSClient * client) +{ + WSFrame **frm = &client->frame; + + if (!(*frm)->fin) { + ws_handle_err (client, WS_CLOSE_PROTO_ERR, WS_ERR | WS_CLOSE, NULL); + return; + } + ws_free_message (client); +} + +/* Handle a websocket ping from the client and it attempts to send + * back a pong as soon as possible. */ +static void +ws_handle_ping (WSClient * client) +{ + WSFrame **frm = &client->frame; + WSMessage **msg = &client->message; + char *buf = NULL, *tmp = NULL; + int pos = 0, len = (*frm)->payloadlen, newlen = 0; + + /* RFC states that Control frames themselves MUST NOT be + * fragmented. */ + if (!(*frm)->fin) { + ws_handle_err (client, WS_CLOSE_PROTO_ERR, WS_ERR | WS_CLOSE, NULL); + return; + } + + /* Control frames are only allowed to have payload up to and + * including 125 octets */ + if ((*frm)->payloadlen > 125) { + ws_handle_err (client, WS_CLOSE_PROTO_ERR, WS_ERR | WS_CLOSE, NULL); + return; + } + + /* No payload from ping */ + if (len == 0) { + ws_send_frame (client, WS_OPCODE_PONG, NULL, 0); + return; + } + + /* Copy the ping payload */ + pos = (*msg)->payloadsz - len; + buf = xcalloc (len, sizeof (char)); + memcpy (buf, (*msg)->payload + pos, len); + + /* Unmask it */ + ws_unmask_payload (buf, len, 0, (*frm)->mask); + + /* Resize the current payload (keep an eye on this realloc) */ + newlen = (*msg)->payloadsz - len; + tmp = realloc ((*msg)->payload, newlen); + if (tmp == NULL && newlen > 0) { + free ((*msg)->payload); + free (buf); + + (*msg)->payload = NULL; + client->status = WS_ERR | WS_CLOSE; + return; + } + + (*msg)->payload = tmp; + (*msg)->payloadsz -= len; + + ws_send_frame (client, WS_OPCODE_PONG, buf, len); + + (*msg)->buflen = 0; /* done with the current frame's payload */ + /* Control frame injected in the middle of a fragmented message. */ + if (!(*msg)->fragmented) { + ws_free_message (client); + } + free (buf); +} + +/* Ensure we have valid UTF-8 text payload. + * + * On error, or if the message is invalid, 1 is returned. + * On success, or if the message is valid, 0 is returned. */ +int +ws_validate_string (const char *str, int len) +{ + uint32_t state = UTF8_VALID; + + if (verify_utf8 (&state, str, len) == UTF8_INVAL) { + LOG (("Invalid UTF8 data!\n")); + return 1; + } + if (state != UTF8_VALID) { + LOG (("Invalid UTF8 data!\n")); + return 1; + } + + return 0; +} + +/* It handles a text or binary message frame from the client. */ +static void +ws_handle_text_bin (WSClient * client, WSServer * server) +{ + WSFrame **frm = &client->frame; + WSMessage **msg = &client->message; + int offset = (*msg)->mask_offset; + + /* All data frames after the initial data frame must have opcode 0 */ + if ((*msg)->fragmented && (*frm)->opcode != WS_OPCODE_CONTINUATION) { + client->status = WS_ERR | WS_CLOSE; + return; + } + + /* RFC states that there is a new masking key per frame, therefore, + * time to unmask... */ + ws_unmask_payload ((*msg)->payload, (*msg)->payloadsz, offset, (*frm)->mask); + /* Done with the current frame's payload */ + (*msg)->buflen = 0; + /* Reading a fragmented frame */ + (*msg)->fragmented = 1; + + if (!(*frm)->fin) + return; + + /* validate text data encoded as UTF-8 */ + if ((*msg)->opcode == WS_OPCODE_TEXT) { + if (ws_validate_string ((*msg)->payload, (*msg)->payloadsz) != 0) { + ws_handle_err (client, WS_CLOSE_INVALID_UTF8, WS_ERR | WS_CLOSE, NULL); + return; + } + } + + if ((*msg)->opcode != WS_OPCODE_CONTINUATION && server->onmessage) { + /* just echo the message to the client */ + if (wsconfig.echomode) + ws_send_data (client, (*msg)->opcode, (*msg)->payload, (*msg)->payloadsz); + /* just pipe out the message */ + else if (!wsconfig.strict) + ws_write_fifo (server->pipeout, (*msg)->payload, (*msg)->payloadsz); + else + server->onmessage (server->pipeout, client); + } + ws_free_message (client); +} + +/* Depending on the frame opcode, then we take certain decisions. */ +static void +ws_manage_payload_opcode (WSClient * client, WSServer * server) +{ + WSFrame **frm = &client->frame; + WSMessage **msg = &client->message; + + switch ((*frm)->opcode) { + case WS_OPCODE_CONTINUATION: + LOG (("CONTINUATION\n")); + /* first frame can't be a continuation frame */ + if (!(*msg)->fragmented) { + client->status = WS_ERR | WS_CLOSE; + break; + } + ws_handle_text_bin (client, server); + break; + case WS_OPCODE_TEXT: + case WS_OPCODE_BIN: + LOG (("TEXT\n")); + client->message->opcode = (*frm)->opcode; + ws_handle_text_bin (client, server); + break; + case WS_OPCODE_PONG: + LOG (("PONG\n")); + ws_handle_pong (client); + break; + case WS_OPCODE_PING: + LOG (("PING\n")); + ws_handle_ping (client); + break; + default: + LOG (("CLOSE\n")); + ws_handle_close (client); + } +} + +/* Set the extended payload length into the given pointer. */ +static void +ws_set_extended_header_size (const char *buf, int *extended) +{ + uint64_t payloadlen = 0; + /* determine the payload length, else read more data */ + payloadlen = WS_FRM_PAYLOAD (*(buf + 1)); + switch (payloadlen) { + case WS_PAYLOAD_EXT16: + *extended = 2; + break; + case WS_PAYLOAD_EXT64: + *extended = 8; + break; + } +} + +/* Set the extended payload length into our frame structure. */ +static void +ws_set_payloadlen (WSFrame * frm, const char *buf) +{ + uint64_t payloadlen = 0, len64; + uint16_t len16; + + /* determine the payload length, else read more data */ + payloadlen = WS_FRM_PAYLOAD (*(buf + 1)); + switch (payloadlen) { + case WS_PAYLOAD_EXT16: + memcpy (&len16, (buf + 2), sizeof (uint16_t)); + frm->payloadlen = ntohs (len16); + break; + case WS_PAYLOAD_EXT64: + memcpy (&len64, (buf + 2), sizeof (uint64_t)); + frm->payloadlen = be64toh (len64); + break; + default: + frm->payloadlen = payloadlen; + } +} + +/* Set the masking key into our frame structure. */ +static void +ws_set_masking_key (WSFrame * frm, const char *buf) +{ + uint64_t payloadlen = 0; + + /* determine the payload length, else read more data */ + payloadlen = WS_FRM_PAYLOAD (*(buf + 1)); + switch (payloadlen) { + case WS_PAYLOAD_EXT16: + memcpy (&frm->mask, buf + 4, sizeof (frm->mask)); + break; + case WS_PAYLOAD_EXT64: + memcpy (&frm->mask, buf + 10, sizeof (frm->mask)); + break; + default: + memcpy (&frm->mask, buf + 2, sizeof (frm->mask)); + } +} + +/* Attempt to read the frame's header and set the relavant data into + * our frame structure. + * + * On error, or if no data available to read, the number of bytes is + * returned and the appropriate connection status is set. + * On success, the number of bytes is returned. */ +static int +ws_get_frm_header (WSClient * client) +{ + WSFrame **frm = NULL; + int bytes = 0, readh = 0, need = 0, offset = 0, extended = 0; + + if (client->frame == NULL) + client->frame = new_wsframe (); + + frm = &client->frame; + + /* Read the first 2 bytes for basic frame info */ + readh = (*frm)->buflen; /* read from header so far */ + need = 2 - readh; /* need to read */ + if (need > 0) { + if ((bytes = ws_read_header (client, (*frm), readh, need)) < 1) + return bytes; + if (bytes != need) + return ws_set_status (client, WS_READING, bytes); + } + offset += 2; + + if (ws_set_front_header_fields (client) != 0) + return bytes; + + ws_set_extended_header_size ((*frm)->buf, &extended); + /* read the extended header */ + readh = (*frm)->buflen; /* read from header so far */ + need = (extended + offset) - readh; /* read from header field so far */ + if (need > 0) { + if ((bytes = ws_read_header (client, (*frm), readh, need)) < 1) + return bytes; + if (bytes != need) + return ws_set_status (client, WS_READING, bytes); + } + offset += extended; + + /* read the masking key */ + readh = (*frm)->buflen; /* read from header so far */ + need = (4 + offset) - readh; + if (need > 0) { + if ((bytes = ws_read_header (client, (*frm), readh, need)) < 1) + return bytes; + if (bytes != need) + return ws_set_status (client, WS_READING, bytes); + } + offset += 4; + + ws_set_payloadlen ((*frm), (*frm)->buf); + ws_set_masking_key ((*frm), (*frm)->buf); + + if ((*frm)->payloadlen > wsconfig.max_frm_size) { + ws_error (client, WS_CLOSE_TOO_LARGE, "Frame is too big"); + return ws_set_status (client, WS_ERR | WS_CLOSE, bytes); + } + + (*frm)->buflen = 0; + (*frm)->reading = 0; + (*frm)->payload_offset = offset; + + return ws_set_status (client, WS_OK, bytes); +} + +/* Attempt to realloc the message payload. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +static int +ws_realloc_frm_payload (WSFrame * frm, WSMessage * msg) +{ + char *tmp = NULL; + uint64_t newlen = 0; + + newlen = msg->payloadsz + frm->payloadlen; + tmp = realloc (msg->payload, newlen); + if (tmp == NULL && newlen > 0) { + free (msg->payload); + msg->payload = NULL; + return 1; + } + msg->payload = tmp; + + return 0; +} + +/* Attempt to read the frame's payload and set the relavant data into + * our message structure. + * + * On error, or if no data available to read, the number of bytes is + * returned and the appropriate connection status is set. + * On success, the number of bytes is returned. */ +static int +ws_get_frm_payload (WSClient * client, WSServer * server) +{ + WSFrame **frm = NULL; + WSMessage **msg = NULL; + int bytes = 0, readh = 0, need = 0; + + if (client->message == NULL) + client->message = new_wsmessage (); + + frm = &client->frame; + msg = &client->message; + + /* message within the same frame */ + if ((*msg)->payload == NULL && (*frm)->payloadlen) + (*msg)->payload = xcalloc ((*frm)->payloadlen, sizeof (char)); + /* handle a new frame */ + else if ((*msg)->buflen == 0 && (*frm)->payloadlen) { + if (ws_realloc_frm_payload ((*frm), (*msg)) == 1) + return ws_set_status (client, WS_ERR | WS_CLOSE, 0); + } + + readh = (*msg)->buflen; /* read from so far */ + need = (*frm)->payloadlen - readh; /* need to read */ + if (need > 0) { + if ((bytes = ws_read_payload (client, (*msg), (*msg)->payloadsz, need)) < 0) + return bytes; + if (bytes != need) + return ws_set_status (client, WS_READING, bytes); + } + + (*msg)->mask_offset = (*msg)->payloadsz - (*msg)->buflen; + + ws_manage_payload_opcode (client, server); + ws_free_frame (client); + + return bytes; +} + +/* Determine if we need to read a frame's header or its payload. + * + * On success, the number of bytes is returned. */ +static int +ws_get_message (WSClient * client, WSServer * server) +{ + int bytes = 0; + if ((client->frame == NULL) || (client->frame->reading)) + if ((bytes = ws_get_frm_header (client)) < 1 || client->frame->reading) + return bytes; + return ws_get_frm_payload (client, server); +} + +/* Determine if we need to read an HTTP request or a websocket frame. + * + * On success, the number of bytes is returned. */ +static int +read_client_data (WSClient * client, WSServer * server) +{ + int bytes = 0; + + /* Handshake */ + if ((!(client->headers) || (client->headers->reading))) + bytes = ws_get_handshake (client, server); + /* Message */ + else + bytes = ws_get_message (client, server); + + return bytes; +} + +/* Handle a tcp close connection. */ +static void +handle_tcp_close (int conn, WSClient * client, WSServer * server) +{ +#ifdef HAVE_LIBSSL + if (client->ssl) + shutdown_ssl (client); +#endif + + shutdown (conn, SHUT_RDWR); + /* upon close, call onclose() callback */ + if (server->onclose && wsconfig.strict && !wsconfig.echomode) + (*server->onclose) (server->pipeout, client); + + /* do access logging */ + gettimeofday (&client->end_proc, NULL); + if (wsconfig.accesslog) + access_log (client, 200); + + /* errored out while parsing a frame or a message */ + if (client->status & WS_ERR) { + ws_clear_queue (client); + ws_free_frame (client); + ws_free_message (client); + } + + server->closing = 0; + ws_close (conn); + +#ifdef HAVE_LIBSSL + if (client->ssl) + SSL_free (client->ssl); + client->ssl = NULL; +#endif + + /* remove client from our list */ + ws_remove_client_from_list (client, server); + LOG (("Active: %d\n", list_count (server->colist))); +} + +/* Handle a tcp read close connection. */ +static void +handle_read_close (int conn, WSClient * client, WSServer * server) +{ + if (client->status & WS_SENDING) { + server->closing = 1; + return; + } + handle_tcp_close (conn, client, server); +} + +/* Handle a new socket connection. */ +static void +handle_accept (int listener, WSServer * server) +{ + WSClient *client = NULL; + int newfd; + + newfd = accept_client (listener, &server->colist); + if (newfd == -1) + return; + + client = ws_get_client_from_list (newfd, &server->colist); + if (newfd > FD_SETSIZE - 1) { + LOG (("Too busy: %d %s.\n", newfd, client->remote_ip)); + + http_error (client, WS_TOO_BUSY_STR); + handle_read_close (newfd, client, server); + return; + } +#ifdef HAVE_LIBSSL + /* set flag to do TLS handshake */ + if (wsconfig.use_ssl) + client->sslstatus |= WS_TLS_ACCEPTING; +#endif + + LOG (("Accepted: %d %s\n", newfd, client->remote_ip)); +} + +/* Handle a tcp read. */ +static void +handle_reads (int conn, WSServer * server) +{ + WSClient *client = NULL; + + if (!(client = ws_get_client_from_list (conn, &server->colist))) + return; + +#ifdef HAVE_LIBSSL + if (handle_ssl_pending_rw (conn, server, client) == 0) + return; +#endif + + /* *INDENT-OFF* */ + client->start_proc = client->end_proc = (struct timeval) {0}; + /* *INDENT-ON* */ + gettimeofday (&client->start_proc, NULL); + read_client_data (client, server); + /* An error ocurred while reading data or connection closed */ + if ((client->status & WS_CLOSE)) { + handle_read_close (conn, client, server); + } +} + +/* Handle a tcp write close connection. */ +static void +handle_write_close (int conn, WSClient * client, WSServer * server) +{ + handle_tcp_close (conn, client, server); +} + +/* Handle a tcp write. */ +static void +handle_writes (int conn, WSServer * server) +{ + WSClient *client = NULL; + + if (!(client = ws_get_client_from_list (conn, &server->colist))) + return; + +#ifdef HAVE_LIBSSL + if (handle_ssl_pending_rw (conn, server, client) == 0) + return; +#endif + + ws_respond (client, NULL, 0); /* buffered data */ + /* done sending data */ + if (client->sockqueue == NULL) + client->status &= ~WS_SENDING; + + /* An error ocurred while sending data or while reading data but still + * waiting from the last send() from the server to the client. e.g., + * sending status code */ + if ((client->status & WS_CLOSE) && !(client->status & WS_SENDING)) + handle_write_close (conn, client, server); +} + +/* Handle reads/writes on a TCP connection. */ +static void +ws_listen (int listener, int conn, WSServer * server) +{ + /* handle new connections */ + if (FD_ISSET (conn, &fdstate.rfds) && conn == listener) + handle_accept (listener, server); + /* handle data from a client */ + else if (FD_ISSET (conn, &fdstate.rfds) && conn != listener) + handle_reads (conn, server); + /* handle sending data to a client */ + else if (FD_ISSET (conn, &fdstate.wfds) && conn != listener) + handle_writes (conn, server); +} + +/* Create named pipe (FIFO) with the given pipe name. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +int +ws_setfifo (const char *pipename) +{ + struct stat fistat; + const char *f = pipename; + + if (access (f, F_OK) == 0) + return 0; + + if (mkfifo (f, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) < 0) + FATAL ("Unable to set fifo: %s.", strerror (errno)); + if (stat (f, &fistat) < 0) + FATAL ("Unable to stat fifo: %s.", strerror (errno)); + if (!S_ISFIFO (fistat.st_mode)) + FATAL ("pipe is not a fifo: %s.", strerror (errno)); + + return 0; +} + +/* Open a named pipe (FIFO) for input to the server (reader). */ +static int +ws_openfifo_in (WSPipeIn * pipein) +{ + ws_setfifo (wsconfig.pipein); + /* we should be able to open it at as reader */ + if ((pipein->fd = open (wsconfig.pipein, O_RDWR | O_NONBLOCK)) < 0) + FATAL ("Unable to open fifo in: %s.", strerror (errno)); + + return pipein->fd; +} + + +/* Open a named pipe (FIFO) for output from the server (writer). */ +static int +ws_openfifo_out (WSPipeOut * pipeout) +{ + int status = 0; + + ws_setfifo (wsconfig.pipeout); + status = open (wsconfig.pipeout, O_WRONLY | O_NONBLOCK); + /* will attempt on the next write */ + if (status == -1 && errno == ENXIO) + LOG (("Unable to open fifo out: %s.\n", strerror (errno))); + else if (status < 0) + FATAL ("Unable to open fifo out: %s.", strerror (errno)); + pipeout->fd = status; + + if (status != -1 && status > max_file_fd) + max_file_fd = status; + + return status; +} + +/* Set a new named pipe for incoming messages and one for outgoing + * messages from the client. */ +static void +ws_fifo (WSServer * server) +{ + wsconfig.pipein = wsconfig.pipein ? wsconfig.pipein : WS_PIPEIN; + wsconfig.pipeout = wsconfig.pipeout ? wsconfig.pipeout : WS_PIPEOUT; + + ws_openfifo_in (server->pipein); + ws_openfifo_out (server->pipeout); +} + +/* Clear the queue for an outgoing named pipe. */ +static void +clear_fifo_queue (WSPipeOut * pipeout) +{ + WSQueue **queue = &pipeout->fifoqueue; + if (!(*queue)) + return; + + if ((*queue)->queued) + free ((*queue)->queued); + (*queue)->queued = NULL; + (*queue)->qlen = 0; + + free ((*queue)); + (*queue) = NULL; +} + +/* Attempt to realloc the current sent queue for an outgoing named pip + * (FIFO). + * + * On error, 1 is returned and the connection status is closed and + * reopened. + * On success, 0 is returned. */ +static int +ws_realloc_fifobuf (WSPipeOut * pipeout, const char *buf, int len) +{ + WSQueue *queue = pipeout->fifoqueue; + char *tmp = NULL; + int newlen = 0; + + newlen = queue->qlen + len; + tmp = realloc (queue->queued, newlen); + if (tmp == NULL && newlen > 0) { + close (pipeout->fd); + clear_fifo_queue (pipeout); + ws_openfifo_out (pipeout); + return 1; + } + + queue->queued = tmp; + memcpy (queue->queued + queue->qlen, buf, len); + queue->qlen += len; + + return 0; +} + +/* Set into a queue the data that couldn't be sent in the outgoing + * FIFO. */ +static void +ws_queue_fifobuf (WSPipeOut * pipeout, const char *buffer, int len, int bytes) +{ + WSQueue **queue = &pipeout->fifoqueue; + + if (bytes < 1) + bytes = 0; + + (*queue) = xcalloc (1, sizeof (WSQueue)); + (*queue)->queued = xcalloc (len - bytes, sizeof (char)); + memcpy ((*queue)->queued, buffer + bytes, len - bytes); + (*queue)->qlen = len - bytes; + + pipeout->status |= WS_SENDING; +} + +/* Attmpt to send the given buffer to the given outgoing FIFO. + * + * On error, the data is queued up. + * On success, the number of bytes sent is returned. */ +static int +ws_write_fifo_data (WSPipeOut * pipeout, char *buffer, int len) +{ + int bytes = 0; + + bytes = write (pipeout->fd, buffer, len); + + /* At this point, the reader probably closed the pipe, so a cheap *hack* for + * this is to close the pipe on our end and attempt to reopen it. If unable to + * do so, then let it be -1 and try on the next attempt to write. */ + if (bytes == -1 && errno == EPIPE) { + close (pipeout->fd); + ws_openfifo_out (pipeout); + return bytes; + } + if (bytes < len || (bytes == -1 && (errno == EAGAIN || errno == EWOULDBLOCK))) + ws_queue_fifobuf (pipeout, buffer, len, bytes); + + return bytes; +} + +/* Attempt to send the queued up client's data through the outgoing + * named pipe (FIFO) . + * + * On error, 1 is returned and the connection status is set. + * On success, the number of bytes sent is returned. */ +static int +ws_write_fifo_cache (WSPipeOut * pipeout) +{ + WSQueue *queue = pipeout->fifoqueue; + int bytes = 0; + + bytes = write (pipeout->fd, queue->queued, queue->qlen); + + /* At this point, the reader probably closed the pipe, so a cheap *hack* for + * this is to close the pipe on our end and attempt to reopen it. If unable to + * do so, then let it be -1 and try on the next attempt to write. */ + if (bytes == -1 && errno == EPIPE) { + close (pipeout->fd); + ws_openfifo_out (pipeout); + return bytes; + } + + if (chop_nchars (queue->queued, bytes, queue->qlen) == 0) + clear_fifo_queue (pipeout); + else + queue->qlen -= bytes; + + return bytes; +} + +/* An entry point to attempt to send the client's data into an + * outgoing named pipe (FIFO). + * + * On success, the number of bytes sent is returned. */ +int +ws_write_fifo (WSPipeOut * pipeout, char *buffer, int len) +{ + int bytes = 0; + + if (pipeout->fd == -1 && ws_openfifo_out (pipeout) == -1) + return bytes; + + /* attempt to send the whole buffer buffer */ + if (pipeout->fifoqueue == NULL) + bytes = ws_write_fifo_data (pipeout, buffer, len); + /* buffer not empty, just append new data */ + else if (pipeout->fifoqueue != NULL && buffer != NULL) { + if (ws_realloc_fifobuf (pipeout, buffer, len) == 1) + return bytes; + } + /* send from cache buffer */ + else { + bytes = ws_write_fifo_cache (pipeout); + } + + if (pipeout->fifoqueue == NULL) + pipeout->status &= ~WS_SENDING; + + return bytes; +} + +/* Clear an incoming FIFO packet and header data. */ +static void +clear_fifo_packet (WSPipeIn * pipein) +{ + memset (pipein->hdr, 0, sizeof (pipein->hdr)); + pipein->hlen = 0; + + if (pipein->packet == NULL) + return; + + if (pipein->packet->data) + free (pipein->packet->data); + free (pipein->packet); + pipein->packet = NULL; +} + +/* Broadcast to all connected clients the given message. */ +static int +ws_broadcast_fifo (void *value, void *user_data) +{ + WSClient *client = value; + WSPacket *packet = user_data; + + if (client == NULL || user_data == NULL) + return 1; + /* no handshake for this client */ + if (client->headers == NULL || client->headers->ws_accept == NULL) + return 1; + + ws_send_data (client, packet->type, packet->data, packet->size); + + return 0; +} + +/* Send a message from the incoming named pipe to specific client + * given the socket id. */ +static void +ws_send_strict_fifo_to_client (WSServer * server, int listener, WSPacket * pa) +{ + WSClient *client = NULL; + + if (!(client = ws_get_client_from_list (listener, &server->colist))) + return; + /* no handshake for this client */ + if (client->headers == NULL || client->headers->ws_accept == NULL) + return; + ws_send_data (client, pa->type, pa->data, pa->len); +} + +/* Attempt to read message from a named pipe (FIFO). + * + * On error, -1 is returned. + * On success, the number of bytes read is returned. */ +int +ws_read_fifo (int fd, char *buf, int *buflen, int pos, int need) +{ + int bytes = 0; + + bytes = read (fd, buf + pos, need); + if (bytes == -1 && (errno == EAGAIN || errno == EWOULDBLOCK)) + return bytes; + else if (bytes == -1) + return bytes; + *buflen += bytes; + + return bytes; +} + +/* Pack the given value into a network byte order. + * + * On success, the number size of uint32_t is returned. */ +size_t +pack_uint32 (void *buf, uint32_t val) +{ + uint32_t v32 = htonl (val); + memcpy (buf, &v32, sizeof (uint32_t)); + + return sizeof (uint32_t); +} + +/* Unpack the given value into a host byte order. + * + * On success, the number size of uint32_t is returned. */ +size_t +unpack_uint32 (const void *buf, uint32_t * val) +{ + uint32_t v32 = 0; + memcpy (&v32, buf, sizeof (uint32_t)); + *val = ntohl (v32); + + return sizeof (uint32_t); +} + +/* Ensure the fields coming from the named pipe are valid. + * + * On error, 1 is returned. + * On success, 0 is returned. */ +static int +validate_fifo_packet (uint32_t listener, uint32_t type, int size) +{ + if (listener > FD_SETSIZE) { + LOG (("Invalid listener\n")); + return 1; + } + + if (type != WS_OPCODE_TEXT && type != WS_OPCODE_BIN) { + LOG (("Invalid fifo packet type\n")); + return 1; + } + + if (size > wsconfig.max_frm_size) { + LOG (("Invalid fifo packet size\n")); + return 1; + } + + return 0; +} + +/* Handle reading and sending the incoming data from the named pipe on + * strict mode. */ +static void +handle_strict_fifo (WSServer * server) +{ + WSPipeIn *pi = server->pipein; + WSPacket **pa = &pi->packet; + int bytes = 0, readh = 0, need = 0; + + char *ptr = NULL; + uint32_t listener = 0, type = 0, size = 0; + + readh = pi->hlen; /* read from header so far */ + need = HDR_SIZE - readh; /* need to read */ + if (need > 0) { + if ((bytes = ws_read_fifo (pi->fd, pi->hdr, &pi->hlen, readh, need)) < 0) + return; + if (bytes != need) + return; + } + + /* unpack size, and type */ + ptr = pi->hdr; + ptr += unpack_uint32 (ptr, &listener); + ptr += unpack_uint32 (ptr, &type); + ptr += unpack_uint32 (ptr, &size); + + if (validate_fifo_packet (listener, type, size) == 1) { + close (pi->fd); + clear_fifo_packet (pi); + ws_openfifo_in (pi); + return; + } + + if ((*pa) == NULL) { + (*pa) = xcalloc (1, sizeof (WSPacket)); + (*pa)->type = type; + (*pa)->size = size; + (*pa)->data = xcalloc (size, sizeof (char)); + } + + readh = (*pa)->len; /* read from payload so far */ + need = (*pa)->size - readh; /* need to read */ + if (need > 0) { + if ((bytes = + ws_read_fifo (pi->fd, (*pa)->data, &(*pa)->len, readh, need)) < 0) + return; + if (bytes != need) + return; + } + + /* no clients to send data to */ + if (list_count (server->colist) == 0) { + clear_fifo_packet (pi); + return; + } + + /* Either send it to a specific client or brodcast message to all + * clients */ + if (listener != 0) + ws_send_strict_fifo_to_client (server, listener, *pa); + else + list_foreach (server->colist, ws_broadcast_fifo, *pa); + clear_fifo_packet (pi); +} + +/* Handle reading and sending the incoming data from the named pipe on + * a fixed buffer mode. */ +static void +handle_fixed_fifo (WSServer * server) +{ + WSPipeIn *pi = server->pipein; + WSPacket **pa = &pi->packet; + + int bytes = 0; + char buf[PIPE_BUF] = { 0 }; + + if ((bytes = read (pi->fd, buf, PIPE_BUF)) < 0) + return; + + buf[bytes] = '\0'; /* null-terminate */ + if (ws_validate_string (buf, bytes) != 0) + return; + + (*pa) = xcalloc (1, sizeof (WSPacket)); + (*pa)->type = WS_OPCODE_TEXT; + (*pa)->size = bytes; + (*pa)->data = xstrdup (buf); + + /* no clients to send data to */ + if (list_count (server->colist) == 0) { + clear_fifo_packet (pi); + return; + } + + /* brodcast message to all clients */ + list_foreach (server->colist, ws_broadcast_fifo, *pa); + clear_fifo_packet (pi); +} + +/* Determine which mode should use the incoming message from the FIFO. */ +static void +handle_fifo (WSServer * server) +{ + if (wsconfig.strict) + handle_strict_fifo (server); + else + handle_fixed_fifo (server); +} + +/* Creates an endpoint for communication and start listening for + * connections on a socket */ +static void +ws_socket (int *listener) +{ + int ov = 1; + struct addrinfo hints, *ai; + + /* get a socket and bind it */ + memset (&hints, 0, sizeof hints); + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + /*hints.ai_flags = AI_PASSIVE; */ + if (getaddrinfo (wsconfig.host, wsconfig.port, &hints, &ai) != 0) + FATAL ("Unable to set server: %s.", gai_strerror (errno)); + + /* Create a TCP socket. */ + *listener = socket (ai->ai_family, ai->ai_socktype, ai->ai_protocol); + + /* Options */ + if (setsockopt (*listener, SOL_SOCKET, SO_REUSEADDR, &ov, sizeof (ov)) == -1) + FATAL ("Unable to set setsockopt: %s.", strerror (errno)); + + /* Bind the socket to the address. */ + if (bind (*listener, ai->ai_addr, ai->ai_addrlen) != 0) + FATAL ("Unable to set bind: %s.", strerror (errno)); + freeaddrinfo (ai); + + /* Tell the socket to accept connections. */ + if (listen (*listener, SOMAXCONN) == -1) + FATAL ("Unable to listen: %s.", strerror (errno)); +} + +/* Handle incoming messages through a pipe (let gwsocket be the + * reader) and outgoing messages through the pipe (writer). */ +static void +ws_fifos (WSServer * server, WSPipeIn * pi, WSPipeOut * po) +{ + /* handle data via fifo */ + if (pi->fd != -1 && FD_ISSET (pi->fd, &fdstate.rfds)) + handle_fifo (server); + /* handle data via fifo */ + if (po->fd != -1 && FD_ISSET (po->fd, &fdstate.wfds)) + ws_write_fifo (po, NULL, 0); +} + +/* Check each client to determine if: + * 1. We want to see if it has data for reading + * 2. We want to write data to it. + * If so, set the client's socket descriptor in the descriptor set. */ +static void +set_rfds_wfds (int listener, WSServer * server, WSPipeIn * pi, WSPipeOut * po) +{ + WSClient *client = NULL; + int conn; + + /* pipe out */ + if (po->fd != -1) { + if (po->status & WS_SENDING) + FD_SET (po->fd, &fdstate.wfds); + } + /* pipe in */ + if (pi->fd != -1) + FD_SET (pi->fd, &fdstate.rfds); + + /* self-pipe trick to stop the event loop */ + FD_SET (server->self_pipe[0], &fdstate.rfds); + /* server socket, ready for accept() */ + FD_SET (listener, &fdstate.rfds); + + for (conn = 0; conn < FD_SETSIZE; ++conn) { + if (conn == pi->fd || conn == po->fd) + continue; + if (!(client = ws_get_client_from_list (conn, &server->colist))) + continue; + + /* As long as we are not closing a connection, we assume we always + * check a client for reading */ + if (!server->closing) { + FD_SET (conn, &fdstate.rfds); + if (conn > max_file_fd) + max_file_fd = conn; + } + /* Only if we have data to send the client */ + if (client->status & WS_SENDING) { + FD_SET (conn, &fdstate.wfds); + if (conn > max_file_fd) + max_file_fd = conn; + } + } +} + +/* Start the websocket server and start to monitor multiple file + * descriptors until we have something to read or write. */ +void +ws_start (WSServer * server) +{ + WSPipeIn *pipein = server->pipein; + WSPipeOut *pipeout = server->pipeout; + int listener = 0, conn = 0; + +#ifdef HAVE_LIBSSL + if (wsconfig.sslcert && wsconfig.sslkey) { + LOG (("==Using TLS/SSL==\n")); + wsconfig.use_ssl = 1; + if (initialize_ssl_ctx (server)) { + LOG (("Unable to initialize_ssl_ctx\n")); + return; + } + } +#endif + + memset (&fdstate, 0, sizeof fdstate); + ws_socket (&listener); + + while (1) { + /* If the pipeout file descriptor was opened after the server socket + * was opened, then it's possible the max file descriptor would be the + * pipeout fd, in any case we check this here */ + max_file_fd = MAX (listener, pipeout->fd); + /* Clear out the fd sets for this iteration. */ + FD_ZERO (&fdstate.rfds); + FD_ZERO (&fdstate.wfds); + + set_rfds_wfds (listener, server, pipein, pipeout); + max_file_fd += 1; + + /* yep, wait patiently */ + /* should it be using epoll/kqueue? will see... */ + if (select (max_file_fd, &fdstate.rfds, &fdstate.wfds, NULL, NULL) == -1) { + switch (errno) { + case EINTR: + LOG (("A signal was caught on select(2)\n")); + break; + default: + FATAL ("Unable to select: %s.", strerror (errno)); + } + } + /* handle self-pipe trick */ + if (FD_ISSET (server->self_pipe[0], &fdstate.rfds)) { + LOG (("Handled self-pipe to close event loop.\n")); + break; + } + + /* iterate over existing connections */ + for (conn = 0; conn < max_file_fd; ++conn) { + if (conn != pipein->fd && conn != pipeout->fd) { + ws_listen (listener, conn, server); + } + } + /* handle FIFOs */ + ws_fifos (server, pipein, pipeout); + } +} + +/* Set the origin so the server can force connections to have the + * given HTTP origin. */ +void +ws_set_config_origin (const char *origin) +{ + wsconfig.origin = origin; +} + +/* Set the the maximum websocket frame size. */ +void +ws_set_config_frame_size (int max_frm_size) +{ + wsconfig.max_frm_size = max_frm_size; +} + +/* Set specific name for the reader named pipe. */ +void +ws_set_config_pipein (const char *pipein) +{ + wsconfig.pipein = pipein; +} + +/* Set specific name for the writer named pipe. */ +void +ws_set_config_pipeout (const char *pipeout) +{ + wsconfig.pipeout = pipeout; +} + +/* Set a path and a file for the access log. */ +void +ws_set_config_accesslog (const char *accesslog) +{ + wsconfig.accesslog = accesslog; + + if (access_log_open (wsconfig.accesslog) == 1) + FATAL ("Unable to open access log: %s.", strerror (errno)); +} + +/* Set if the server should handle strict named pipe handling. */ +void +ws_set_config_strict (int strict) +{ + wsconfig.strict = strict; +} + +/* Set the server into echo mode. */ +void +ws_set_config_echomode (int echomode) +{ + wsconfig.echomode = echomode; +} + +/* Set the server host bind address. */ +void +ws_set_config_host (const char *host) +{ + wsconfig.host = host; +} + +/* Set the server port bind address. */ +void +ws_set_config_port (const char *port) +{ + wsconfig.port = port; +} + +/* Set specific name for the SSL certificate. */ +void +ws_set_config_sslcert (const char *sslcert) +{ + wsconfig.sslcert = sslcert; +} + +/* Set specific name for the SSL key. */ +void +ws_set_config_sslkey (const char *sslkey) +{ + wsconfig.sslkey = sslkey; +} + +/* Create a new websocket server context. */ +WSServer * +ws_init (const char *host, const char *port, void (*initopts) (void)) +{ + WSServer *server = new_wsserver (); + server->pipein = new_wspipein (); + server->pipeout = new_wspipeout (); + memset (server->self_pipe, 0, sizeof (server->self_pipe)); + + wsconfig.accesslog = NULL; + wsconfig.host = host; + wsconfig.max_frm_size = WS_MAX_FRM_SZ; + wsconfig.origin = NULL; + wsconfig.pipein = NULL; + wsconfig.pipeout = NULL; + wsconfig.sslcert = NULL; + wsconfig.sslkey = NULL; + wsconfig.port = port; + wsconfig.strict = 0; + wsconfig.use_ssl = 0; + + initopts (); + ws_fifo (server); + + return server; +} diff --git a/src/goaccess++/src/websocket.h b/src/goaccess++/src/websocket.h new file mode 100644 index 0000000..0b98618 --- /dev/null +++ b/src/goaccess++/src/websocket.h @@ -0,0 +1,341 @@ +/** + * _______ _______ __ __ + * / ____/ | / / ___/____ _____/ /_____ / /_ + * / / __ | | /| / /\__ \/ __ \/ ___/ //_/ _ \/ __/ + * / /_/ / | |/ |/ /___/ / /_/ / /__/ ,< / __/ /_ + * \____/ |__/|__//____/\____/\___/_/|_|\___/\__/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef WEBSOCKET_H_INCLUDED +#define WEBSOCKET_H_INCLUDED + +#include +#include +#include + +#if HAVE_LIBSSL +#include +#include +#include +#endif + +#if defined(__linux__) || defined(__CYGWIN__) +# include +#if ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 9)) +#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN) +# include +# define htobe16(x) htons(x) +# define htobe64(x) (((uint64_t)htonl(((uint32_t)(((uint64_t)(x)) >> 32)))) | \ + (((uint64_t)htonl(((uint32_t)(x)))) << 32)) +# define be16toh(x) ntohs(x) +# define be32toh(x) ntohl(x) +# define be64toh(x) (((uint64_t)ntohl(((uint32_t)(((uint64_t)(x)) >> 32)))) | \ + (((uint64_t)ntohl(((uint32_t)(x)))) << 32)) +#else +# error Byte Order not supported! +#endif +#endif +#elif defined(__sun__) +# include +# define htobe16(x) BE_16(x) +# define htobe64(x) BE_64(x) +# define be16toh(x) BE_IN16(x) +# define be32toh(x) BE_IN32(x) +# define be64toh(x) BE_IN64(x) +#elif defined(__FreeBSD__) || defined(__NetBSD__) +# include +#elif defined(__OpenBSD__) +# include +# if !defined(be16toh) +# define be16toh(x) betoh16(x) +# endif +# if !defined(be32toh) +# define be32toh(x) betoh32(x) +# endif +# if !defined(be64toh) +# define be64toh(x) betoh64(x) +# endif +#elif defined(__APPLE__) +# include +# define htobe16(x) OSSwapHostToBigInt16(x) +# define htobe64(x) OSSwapHostToBigInt64(x) +# define be16toh(x) OSSwapBigToHostInt16(x) +# define be32toh(x) OSSwapBigToHostInt32(x) +# define be64toh(x) OSSwapBigToHostInt64(x) +#else +# error Platform not supported! +#endif + +#define MAX(a,b) (((a)>(b))?(a):(b)) +#include "gslist.h" + +#define WS_PIPEIN "/tmp/wspipein.fifo" +#define WS_PIPEOUT "/tmp/wspipeout.fifo" + +#define WS_BAD_REQUEST_STR "HTTP/1.1 400 Invalid Request\r\n\r\n" +#define WS_SWITCH_PROTO_STR "HTTP/1.1 101 Switching Protocols" +#define WS_TOO_BUSY_STR "HTTP/1.1 503 Service Unavailable\r\n\r\n" + +#define CRLF "\r\n" +#define SHA_DIGEST_LENGTH 20 + +/* packet header is 3 unit32_t : type, size, listener */ +#define HDR_SIZE 3 * 4 +#define WS_MAX_FRM_SZ 1048576 /* 1 MiB max frame size */ +#define WS_THROTTLE_THLD 2097152 /* 2 MiB throttle threshold */ + +#define WS_MAGIC_STR "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" +#define WS_PAYLOAD_EXT16 126 +#define WS_PAYLOAD_EXT64 127 +#define WS_PAYLOAD_FULL 125 +#define WS_FRM_HEAD_SZ 16 /* frame header size */ + +#define WS_FRM_FIN(x) (((x) >> 7) & 0x01) +#define WS_FRM_MASK(x) (((x) >> 7) & 0x01) +#define WS_FRM_R1(x) (((x) >> 6) & 0x01) +#define WS_FRM_R2(x) (((x) >> 5) & 0x01) +#define WS_FRM_R3(x) (((x) >> 4) & 0x01) +#define WS_FRM_OPCODE(x) ((x) & 0x0F) +#define WS_FRM_PAYLOAD(x) ((x) & 0x7F) + +#define WS_CLOSE_NORMAL 1000 +#define WS_CLOSE_GOING_AWAY 1001 +#define WS_CLOSE_PROTO_ERR 1002 +#define WS_CLOSE_INVALID_UTF8 1007 +#define WS_CLOSE_TOO_LARGE 1009 +#define WS_CLOSE_UNEXPECTED 1011 + +typedef enum WSSTATUS +{ + WS_OK = 0, + WS_ERR = (1 << 0), + WS_CLOSE = (1 << 1), + WS_READING = (1 << 2), + WS_SENDING = (1 << 3), + WS_THROTTLING = (1 << 4), + WS_TLS_ACCEPTING = (1 << 5), + WS_TLS_READING = (1 << 6), + WS_TLS_WRITING = (1 << 7), + WS_TLS_SHUTTING = (1 << 8), +} WSStatus; + +typedef enum WSOPCODE +{ + WS_OPCODE_CONTINUATION = 0x00, + WS_OPCODE_TEXT = 0x01, + WS_OPCODE_BIN = 0x02, + WS_OPCODE_END = 0x03, + WS_OPCODE_CLOSE = 0x08, + WS_OPCODE_PING = 0x09, + WS_OPCODE_PONG = 0x0A, +} WSOpcode; + +typedef struct WSQueue_ +{ + char *queued; /* queue data */ + int qlen; /* queue length */ +} WSQueue; + +typedef struct WSPacket_ +{ + uint32_t type; /* packet type (fixed-size) */ + uint32_t size; /* payload size in bytes (fixed-size) */ + char *data; /* payload */ + int len; /* payload buffer len */ +} WSPacket; + +/* WS HTTP Headers */ +typedef struct WSHeaders_ +{ + int reading; + int buflen; + char buf[BUFSIZ + 1]; + + char *agent; + char *path; + char *method; + char *protocol; + char *host; + char *origin; + char *upgrade; + char *referer; + char *connection; + char *ws_protocol; + char *ws_key; + char *ws_sock_ver; + + char *ws_accept; + char *ws_resp; +} WSHeaders; + +/* A WebSocket Message */ +typedef struct WSFrame_ +{ + /* frame format */ + WSOpcode opcode; /* frame opcode */ + unsigned char fin; /* frame fin flag */ + unsigned char mask[4]; /* mask key */ + uint8_t res; /* extensions */ + int payload_offset; /* end of header/start of payload */ + int payloadlen; /* payload length (for each frame) */ + + /* status flags */ + int reading; /* still reading frame's header part? */ + int masking; /* are we masking the frame? */ + + char buf[WS_FRM_HEAD_SZ + 1]; /* frame's header */ + int buflen; /* recv'd buf length so far (for each frame) */ +} WSFrame; + +/* A WebSocket Message */ +typedef struct WSMessage_ +{ + WSOpcode opcode; /* frame opcode */ + int fragmented; /* reading a fragmented frame */ + int mask_offset; /* for fragmented frames */ + + char *payload; /* payload message */ + int payloadsz; /* total payload size (whole message) */ + int buflen; /* recv'd buf length so far (for each frame) */ +} WSMessage; + +/* FD event states */ +typedef struct WSEState_ +{ + fd_set master; + fd_set rfds; + fd_set wfds; +} WSEState; + +/* A WebSocket Client */ +typedef struct WSClient_ +{ + /* socket data */ + int listener; /* socket */ + char remote_ip[INET6_ADDRSTRLEN]; /* client IP */ + + WSQueue *sockqueue; /* sending buffer */ + WSEState *state; /* FDs states */ + WSHeaders *headers; /* HTTP headers */ + WSFrame *frame; /* frame headers */ + WSMessage *message; /* message */ + WSStatus status; /* connection status */ + + struct timeval start_proc; + struct timeval end_proc; + +#ifdef HAVE_LIBSSL + SSL *ssl; + WSStatus sslstatus; /* ssl connection status */ +#endif +} WSClient; + +/* Config OOptions */ +typedef struct WSPipeIn_ +{ + int fd; /* named pipe FD */ + + WSPacket *packet; /* FIFO data's buffer */ + WSEState *state; /* FDs states */ + + char hdr[HDR_SIZE]; /* FIFO header's buffer */ + int hlen; +} WSPipeIn; + +/* Pipe Out */ +typedef struct WSPipeOut_ +{ + int fd; /* named pipe FD */ + WSEState *state; /* FDs states */ + WSQueue *fifoqueue; /* FIFO out queue */ + WSStatus status; /* connection status */ +} WSPipeOut; + +/* Config OOptions */ +typedef struct WSConfig_ +{ + /* Config Options */ + const char *accesslog; + const char *host; + const char *origin; + const char *pipein; + const char *pipeout; + const char *port; + const char *sslcert; + const char *sslkey; + int echomode; + int strict; + int max_frm_size; + int use_ssl; +} WSConfig; + +/* A WebSocket Instance */ +typedef struct WSServer_ +{ + /* Server Status */ + int closing; + + /* Callbacks */ + int (*onclose) (WSPipeOut * pipeout, WSClient * client); + int (*onmessage) (WSPipeOut * pipeout, WSClient * client); + int (*onopen) (WSPipeOut * pipeout, WSClient * client); + + /* self-pipe */ + int self_pipe[2]; + /* FIFO reader */ + WSPipeIn *pipein; + /* FIFO writer */ + WSPipeOut *pipeout; + /* Connected Clients */ + GSLList *colist; + +#ifdef HAVE_LIBSSL + SSL_CTX *ctx; +#endif +} WSServer; + +int ws_read_fifo (int fd, char *buf, int *buflen, int pos, int need); +int ws_send_data (WSClient * client, WSOpcode opcode, const char *p, int sz); +int ws_setfifo (const char *pipename); +int ws_validate_string (const char *str, int len); +int ws_write_fifo (WSPipeOut * pipeout, char *buffer, int len); +size_t pack_uint32 (void *buf, uint32_t val); +size_t unpack_uint32 (const void *buf, uint32_t * val); +void set_nonblocking (int listener); +void ws_set_config_accesslog (const char *accesslog); +void ws_set_config_echomode (int echomode); +void ws_set_config_frame_size (int max_frm_size); +void ws_set_config_host (const char *host); +void ws_set_config_origin (const char *origin); +void ws_set_config_pipein (const char *pipein); +void ws_set_config_pipeout (const char *pipeout); +void ws_set_config_port (const char *port); +void ws_set_config_sslcert (const char *sslcert); +void ws_set_config_sslkey (const char *sslkey); +void ws_set_config_strict (int strict); +void ws_start (WSServer * server); +void ws_stop (WSServer * server); +WSServer *ws_init (const char *host, const char *port, void (*initopts) (void)); + +#endif // for #ifndef WEBSOCKET_H diff --git a/src/goaccess++/src/websocket.o b/src/goaccess++/src/websocket.o new file mode 100644 index 0000000000000000000000000000000000000000..0db519113d908566a0e8b37c2305d1dc76cfcba0 GIT binary patch literal 48424 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 literal 0 HcmV?d00001 diff --git a/src/goaccess++/src/xmalloc.c b/src/goaccess++/src/xmalloc.c new file mode 100644 index 0000000..ba4bb92 --- /dev/null +++ b/src/goaccess++/src/xmalloc.c @@ -0,0 +1,88 @@ +/** + * xmalloc.c -- *alloc functions with error handling + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#if !defined __SUNPRO_C +#include +#endif +#include +#include + +#include "error.h" +#include "xmalloc.h" + +/* Self-checking wrapper to malloc() */ +void * +xmalloc (size_t size) +{ + void *ptr; + + if ((ptr = malloc (size)) == NULL) + FATAL ("Unable to allocate memory - failed."); + + return (ptr); +} + +char * +xstrdup (const char *s) +{ + char *ptr; + size_t len; + + len = strlen (s) + 1; + ptr = xmalloc (len); + + strncpy (ptr, s, len); + return (ptr); +} + +/* Self-checking wrapper to calloc() */ +void * +xcalloc (size_t nmemb, size_t size) +{ + void *ptr; + + if ((ptr = calloc (nmemb, size)) == NULL) + FATAL ("Unable to calloc memory - failed."); + + return (ptr); +} + +/* Self-checking wrapper to realloc() */ +void * +xrealloc (void *oldptr, size_t size) +{ + void *newptr; + + if ((newptr = realloc (oldptr, size)) == NULL) + FATAL ("Unable to reallocate memory - failed"); + + return (newptr); +} diff --git a/src/goaccess++/src/xmalloc.h b/src/goaccess++/src/xmalloc.h new file mode 100644 index 0000000..dafd739 --- /dev/null +++ b/src/goaccess++/src/xmalloc.h @@ -0,0 +1,38 @@ +/** + * ______ ___ + * / ____/___ / | _____________ __________ + * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ + * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) + * \____/\____/_/ |_\___/\___/\___/____/____/ + * + * The MIT License (MIT) + * Copyright (c) 2009-2016 Gerardo Orellana + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef XMALLOC_H_INCLUDED +#define XMALLOC_H_INCLUDED + +char *xstrdup (const char *s); +void *xcalloc (size_t nmemb, size_t size); +void *xmalloc (size_t size); +void *xrealloc (void *oldptr, size_t size); + +#endif diff --git a/src/goaccess++/src/xmalloc.o b/src/goaccess++/src/xmalloc.o new file mode 100644 index 0000000000000000000000000000000000000000..d9a831108ac3a1b45a11f9146329f4d2a08fd655 GIT binary patch literal 6432 zcmd6rZEO@p7{{j^g;MZZPy_{GdDEh@+?5t6g6Yw;J>pqVTSX&YuXlTJp}i}6TWF04 z2`{0+A~C`6NfR~EsL}Yv7otD}gT}`d?9=^c`&2~V;+ zGrxJ}KQH^t?B4Baj2o zz4GXu(-o)u;=wgc!zZIdH*hAVlX5N{=We1yQdhZ4ujszds`kFeb$)Z@BHhC$rRT9* zWVLixGP0-9y+%F=ky~s?_NIm~rqg2!t|E18+*K;0Luz)i*AqM&zkh$0=hqAm52p|F z`b640qJvjPRw*{rSr!}oQ98#4zmE=Hhz_3do6^#4iadTQowlpy?j=ESeXs928sI;z z?>zE}9xVQ-{-gCBS=s9?{yMH(iFAlDTX;v)M{#x*e-8@1#U%<*NGStLhuX z{fPm~YOrcUwRIwFFB44#&sElVDYi&v7tz0tM=enekcaux|dlKE< zxul&Gm6bwNw&o(qq?6BEORVjVo6qF3q(KF`Nv&q7q7|%!$9?$qIEebdsE87NCpmCO;8nPd+Hh z`m4)kO_^A6n9h)y#AmCzIr4-IR<~6KDgqXd306NdE)tx%KhPSqlEImg zVD;Kyh1BR&ex?R%KUJbm;i3r-WxTjJT&yxs^o_xD)w3PlDnLrbEFf2FY)wE+7z1fJ zsMm>du3TB6JZ@8**Pc!DrIcrXZIg6{(g1M4#L=rz6A(ID3ygCC!J`^&5m_u3i$`P8 zqPUI&U45V8JP))DvM_cX_=w>sTO!lK?J=1xr?>fNiz~iyG!`jYo**oPXB3YbJS)rP zB5iO_aRZA12_}eMqhgohM-9%!z{t}pRPLkfG>A7D-^7OK($Bo$EyVs3{N)n-^%DG@ z68uC7e!2wzyafNc1pk&e&)4D&NGA6^r9aSBY`#C2;FpNAPN&k*>-Jj-|G$*~ZvF%! z)Bcw!U##Epq&rpoI;{7bPW1swuZeiPrK7E>eck%Dc-*dE77CjrTswxW6n3m>8Q;Qu ztL0lA-|G3coNp`mCjA;X7Y^}V-ommCsp>;K-WprKHWG`kZ)tg`xjo(d>#0Y;H%~>ygVia-#4FIESvw^p(iQ=ROkS@*n zoMU5NMVIEw8Im#Q=coBvhGfjA(xrJTLoy!EJi0V*V@SsS^XYms!X+V|@Ds@`%4>fI z_%z_#6gTyEg1-g+gTQYDen@fF;ZJ$p?-9j$oEGp`fb%J?&)+wIGt)Z!LxhcWrqiYQ zhYZQg@qg;$G3)RZ@S7>Gb-q#D9RE4+x4{1*@EO4WP~6nH0{+-9?^ibVUr3i8PZ0Pb z;L{c7b>LXl{!79C4&e6ypACE+aE@WElL3Aw@P6R9FLo(zKHmetabG+O9QVcZz;R!^ z1RVFptBUiw&4Y2i1^)Ai>wR$?xCQ>70LOjtrQ)Xkci@jY=YiwCxBxo1FMbDq)EUnU zNyZ89iz!?nn+zQH#SGxMFJ>!lj=u){Ez;G`y$(44s@J>$ba4F5;Ey^F0LOjta0#7F z;E(;Lz#sQT7C7#UKG4B^F$n&5!@Q0H$9R4bbZ}m;0mpcL8#u=EyTCD?KL(ERd`5Be zd3^!?^J)A#p3efuah?N?@qAHnQ~wJ1qt2uNbwM-@khZQ`)vn)EA;y)=qv#4fIsSN1CH^$y@bwA@W+1lg8xG3_YiQ5 z=Odtl@yugm&JXl>i7sK&XOy3A(K*-YPS~E) z?+H6a|40bCE1ws(o8tnzhi&@M!yA^mMIrmhPe$%~{#s`})o@;inRcuw_j8s8D%I^ZeuOgIKBR$4YgBt)A2i*s zPCKbm=h3fSwMWKz)3=ux|7&56f8#Zd|A5jo+xM&XN2wmooc|uGEEaz?e0Y*|%DWI8 ze;ks!J)a$HJRh@f=GAILY*5dU-);PzXttk3%#1xkqLUAGvdPAR8AbV

    ;Wv!`;ine`G7C|dU~0Y|*_D*_I4hrCtLPS3qUXv%lwz7vlj`Tnyj^cN4f;za{1Av< zi=H*%TRix%*JVe}krMqVpAX3sY+4T~HC zeZ5BQ!McesD9<-PWArMd1xI%(xr|xtzX9`Ke)EvOgoYmFvqC0+$wW_w$PJA9zK4Zo ztW#;5i_6M)y9|T<@UoC0M&yT=LB~Y0?E%&`B z)AGywRWuQdt(a*2>ic?Xih{8b5;krmW(IW^!i#$l4dUYv3tZ{x`2G;AB6|j@5HmOf zN_z?)7^ou;k0R%Z~dHacKa%>4k0pi+)c5%+v8Nl~pmqLXg|jA?ks2yij;;(SD!j_~|Rkx%&!gA~EsrmSDFiYfFuXD^98ep{y|qN{u`Yf|Jo7!@ zoJa{(Ika`@esz?fJa%!g|FleVTBcaIv%r}~QADIG>u?g4VH8R{wV;F>t_sGc28DYy zRK#1)h3}>}XvgLj< zc*sRuqYRON`M3^tEQZ>q4Doa<;Fkve`jIs7rnMc?Qne#e4c`q@@@E8Uyq=B>rdr+> zha#vg=c+PU-~WcR!uA2>%T)*8v{p-byMwPGR^>{y%yKSs8i`w7Bwqzu{brZ?aD9e# zf|4X8bCN@%J<`+DUpplC*j%81d!?0gDs`ZE!IOp%L{bMse2_4rXcQUN`)Zs54%gS8 z$X7txP+|Ttk6EfP@At}NnZFsK-rlr6C6J_Wx3kn?FTL6K2i$o-_*G>*+RyVnJIYH3 zXrlCDH9rJ%3<{xe2Yf@Yy#3)qDl!!K~WZ_)|ghVX{Oy?q#5 z2W#A^<*~m`mItr#CE>M3sqL>Vo%Fk?BOd_R#?$y{k1`VmF*v^3z${J z@6p$^##ac!jY5Yc3=#o&HxDLsNdx8b}2~ zR46Z6yJ4ePYLWhwJ}=#yu*?|u`>Ql9uQ~ebMmuwce!bAn{Qh$) zvp`-l|5IM$6K=CJKc!z!w=+MYGs^%a^S%1(VmtG%)z`c7R~Z6z{6YRHgrN=`;8-+L z_39z@)oR+qCk6-apDy=SMTQYw?RQ^Rm(@oQR9Qb#&+Fi1a0|s-B*gUeAUtaYRyzK( zvOxikV-%4y*bbcxSsNl*`X%yRahNSruavCvoP#t-e1w~cNShICtkN^9;8mSbeSC(G zn*Vm*_KEDD9=0aP2%N(A^WBjrfN0fwntgl=&To@{XNJSaIhCOZ$1fx#u(;-BwJ+#! z$%qZId_oNSwoJbgl%|(-On?God{YFLbrWAz^N6lvJ0E3_d@IZNO=NdW4lBrI*H!v;vRdC$b(LPJn)a=!keQ2TUBXal zxo~gFgH%4Y~vlxea+WZZ+&F;CVo#T^j$PrI5SRAng?#t zJVFLx{q%Jis8UZZIUen}{UOCB`&Gp6%D;yU>{Rk3E1Q za|hAxwo*i7HPqj~BIdo}kQ~kNeA6eva^n-uv8SQmOHjyuBrc)<@cn^Ri=L`FVJmex zdB+%ftJon`&#lF5wI}kZ$?@CDng#Zh$HF57xECN7VwL&6hvcl0Z{**_l5lG_Bk{*V zc|OnIeK-6|Y34V-$ajBi=`f$?3E2r}=f-pMqbe=x^?A1WCr|ivsA!ZhZMvkqK0F;y z45aoTOspZ(H}VNQ`>xAp$(IeTbM7i9U|QDNeM)b-<APF1a4IM6yOmU2?6H7LL_k_iSp|uOlRUGK8hY4&nhPLlTvvS*{~QJp5^i7Y_jgP zB5>M7*N4e;nSnw^Tct$&?PzGR>v9E8eobd$7Z=*Dh$ElIJm>l5GUih$l&r3-M`fa+ zPxQ%U%#W%mQ1Y&)^LCZ1rHc3~!^{mnbN#xvj`6Mgc)%?e<8*NGspgJ#iDNwXer#Ts zhxg{29`gco%hYv;v-|^}Y=4um3SXxao2L&{*9{he(I6S&2+?ij+Aq7mQ>$Vvx%8;> zUwl+)Xgnxxz3w8{G<1%Zsd0CY%&75aI`!Y zr2y)(xgnVGt~FB7Uk&eBDVY%%#$TR~C3)w|Bq+vT5o=~ibX}D%#@E==JoDX=n`6iL z%xE?-YCRpYUF5krhY<)CKQH=k)nP17o}0hJvkxao={p2Rqu?5UEjiYEZ)-YaT2?SE zY%CvA&B;V{^zgu>moQa$Mz`X{TpI6#*l1@OW}kz{W13q&x1Fm zc;V8ge7;E891&(zFN@5?&6I85bHEH-nYe;S;cxzLxY$JEsZZ^$?VoyOKTpRD$t3a* z@~`gFx=ep`3SVrx?qA|6R&KJ}DJCG-Zs&AXDeQKN!N|37y>^w?VQz<{s;~cZ5zic{(%bA)q&<prsbUILr|q;o1H!_dDukzX~RC~h+B94q>?$Vl$L;#VbZnToLs z)CFsVE)&%vCXv@l7m|CZ-%yIswa?h-g(5Wk1X~fR+RG#q!%E>(5{k6*R;mzSss4F7 z-US^vS~K4YZzto&AaHr?Br&{nWhwg$>%sy0}Emkaf&qIBd}(_`IvR?vq|p!j6=1;ojYa%5V$IxF%rM0Mg@FD&z=4FBqR{V%B+&@ zeDbU`?nQi9OW$l2WFB2k;cCPDM2D*HxWruMbP$=08xS}~5WKe&17D8`h_oXTo&n5sKy zwp1l137dz3x*K#V5XsTg; z&F$@buAg$9r(-Ma6z!aH{r%a};CD87{8l{oAENd8W3vkVBOfDZP3O+*!|jg@@UcrZ za+^^8tzU&TAQDftD;Y^|r(BP+z^`ZRI&*qXZ2D>DbmCkJN1sqV1ge3|OImU~w;m?X zmZ^m_Aj6a&vq1%@75ONyiRYD{qsXouGW(+eqb-}C6A(z9N;a!4Y{b2EG;ulHSq18O zSo)s0P%&$A7Cp*z$k=S@D>jc)o&?E4)Fm@|8hV&BqlI3I&V;m4Tr$OVcBIpwT{^+7 zOk#3VEYCWVqKO|flTy#q%Ce*}L+lKRe$>Nl^~jU1=b83JodlEnmuQ9eO+QV}6?pE` zfbs&U#7?Ofpat2c5a^vHi4T+La!|a77X0P`z3jnD(QmSpY$3!LV%PefYF-v`=Co{4 z2NNHmMX`{|evP${cH+bqvDq5)4=4}aLINPCgj-y}94tFabwtyiK8X;UH{U<9H4pE5 zs%B5-E$jIwgq=;FAFImTG8K~$l!mkxonH9skR9N+Tp%M*Strubrk5)PDsLmsY&kph za(sB!z6YsD&fCxcldSj|;3SDRxQbUv@w+LGk7SPZ>+QDuEZ-7PY}}claf%=rfSP&A z8`in>HxWgFlq$!#s+=!XUP_gk%7kD4jab-;31E-p?dQsyBYDS2@A;5WTCtw&2Kg|Q z57sZ9l|GfeaE!g#zAeJg;zM3st5(7H@TTW3KJ??2bnC-sB>Rv*YBQ zjI(xu)7DpY>))ep<*{M%86^7tLkeJF-W-74vz#XXAQi@j-2ajdutW3>B$`ig09NH> zrxTszbO2W3>Uk-7tof>%(&4IA-^N!G2H1vFj?%q9qoP+(8~~Wq2f!w%LISXpM>qfz{luE78)&Dvf=Tpi z3ML(_4ng(HcynO#vt`u!Bgz1iU%qI=V%V9aV^{^LWc`Eg+Kf1=cS zGi89u>KA}XJnLA=6)PP_VIXo&GIP?_HeY&pvL^k(t{&!))jC(zRr+B+Y1+4Dk8tpK z))O*&@gbX@PXT6}v^+$5d&}bvU}ovU_fgpCpb0EBU|vBta**Y_sT`#n#LMy?J^~o2 z55Ux@LIRk#3mm}QNDjI%It)cgz<-{H%QI&Sy7>Y&6}jdEHOM%?-cO}Q+gwLte>cAN*AeCeQP?jlHk7uSHy{X57)Z-cUN(D;Udq4bX!SlYWTK zk9CFJ=yh1c*#;eYB1u6rYola{Wo?ol`FH#o zOF^##-R2R_rC>~!WDaysxC>+1J-@>sJ}HKix1R()&cYWVzyM(OpJUF>wOG+HQCr4MOrNW#ZtSXoaB748f+ z9=2$Vs6SkNG%9nT*wpOyPmYV^5$++1+vvI+a!oFbyh37hA7N7^ zCb!zZ5PWpUONku=&2uFY&>KZ@rb-{>o`HVwpGkc3HmmJ^iES;0EY5 z*ZX3FZwbUPAmcW8rg@yc!fEoL>y9-C1^D|)o+T(S2%bpobp_SvX&? z44<;zx?qc-C2s(Ew2yP9{*10OFVD~Q6Or#)wX`r6;< zAHCF9@^WM@O?qRQ--o%3a2c8Hc0FqeGatW>a8!}g#C|EqtJuL^|4NpBhuH zCNc>AZ`-@h(s16tAtO4tBDOpaRGD1-%}BlvZ188S^ACT<#}rO9H-KKmMhClMx!>OP z*8UCsB9FJf+CO@luVj7XWE?`hK#stuha-cz3Oez1EG*JrPKFVpaFN9SadFp0tA#V` zP%VPUQwe%FM9nubnkHXiw2kGgW{wNSAoMQlH~ph~NcR#NkH7`AW?jrxO=NG~5sY1% zX9aoVA;-E_`|7c`cUx-qm=I3+p zgsrPS@Z?K^C&vq(fDpl0<_68z9Q<%&hr)Bg-&-{P>W*F8SI6=t|9_@mpqYKH-R@V? zKYpW4WDdO2V$bWH?P^p>e{3w?<6MaMsn0xs%Q!ydnC)I>u@#7iK+Z7idZ&N*8|FSa zPQbcl>i#W?@GfI7GBA0{gOPK6hyZ`acK`4_?DTciP}JNaFx{(Y@9Pg6yY`wNQ>u7v#A?kQsc#M3 zE*Guz(?6N|CtLsI4BW0Pvv2`!EA*6Y$18fUx!c?+5i&MNl*w=GLb{UbB~(UMCod8% zW4ol}lx~0X`-Z=V z(>zy42F&crc;AwvCwgv@h)%%_E0(kCEm*3j^FEm;ZoM_}2^iovPtz*Xt~Y$< z&Vhvib7Nwb=(q}h{75OUT){U2N6^7-qZNb*wvfkdG=TbD>n|IGJze7!4?eRj&-w-L zgnr23g|xlai4OwoGR`|R<%70MkO`j&ewJm+o{Qf+*DM=s?u!pTPeY|5UeQU{GIm+A zbxx$8O-vXb3g-J=0o9+1*hP5~9w9T%2Lp^YJsm3;4)c`p3Gga;KQh*5?f}fb^$Ee~ zX)%A?fVWfEMDqP6Bk~Y=edcyMdvr&j#KO6f3HIZ2%dGg#4P{9tLx;XghmKbgDO%M2 zYDVOeV62+sH&gmOKz#`6vr()2pf4xq7o)Ey z89;@LzW&Dh5$WsVBz+0XCh(j2wC^ENI}`iB8R0v^&LNec0B!gi3Y8QdL9?JQGz(Yi zyo#+uAyCv)7?vhbbRl74I32X!Cj<=NOUzYm>-iAg zV4ju;v6j{CLL{BflVMi8B5r`(=cIGm4&0woDEu{>I=^`ij(#2FS4Dqg4GewDaw1*m%`- zOX3-JVs(sw9D112f}kEdQk}Udj)_b_En{DHFD}_@72t1S5atfp!cO>xumLEaf$o6z z;Uc@U!ypP~``$bl^ zGhuF8ZsT3kaz$)FMK@VliL9Ih`Yc+V#*qKr+56sOuG#x9Ueado#;MGn!!HH3HIF#p zAO5Bb)F}xnAuHPVAoqR)Ir`0a%}=_@lJW^fF3;TVpIm%{r(>TCQ7y+dhy>joDeOyv zir+gDbc5tZ2xaK}(d~Y5yttEUdKKlr=@%VNsit78EDx>KEWZDKvLZS69N6v~o}naX zzIniwlV!-(UUF#pSmxz=t%E{_+15(&BQyJB22wX4=m5Y@d=N?NzK#{Xno=2iV*dy* zTnn_wIydHD39b7%9+d03IVuV->;4KNjtWOn>UTc#B2rC=z`0-B)*C-zoUX|!kLTW; zQX9F*x(zZ|l12viR>m&>$PhXJAXBNg7roKJ>LeW;g*@9PCIocM9{OSu|05q6B_}RB zuOj21ttfJJq*4<5K>S)kdsjwkB_F%h`!I=u10uiFK88y^6)X8<{ZPt@@cX{q z87B)UT>Oai&|0puL{{2j5VX=dk`{x%5K%Q<^%xsMQvTWXPqGVhY?JFvBzTnwG=$*S{(#5+*29Uv@}8W}ZtG9IgKV=_(?4 z5Rw*#WWKLhQ_-Vp@zQm+Egz?f9Sj|?I?vo3m|Xnl$k{#)H2X8Q$~tsIq|n?fD)+l; z4I25YvFly)J&N>;Y+(%=J%QC_1Xs|DnDNZ@!3;mg-AWF6Za!bAF}3{k3mkZ5ubd$@+6W(nixIt&$bwK7N0jFN*(Tzn}om3KVAn-T>PWw zy7O}wNbmfEwc#=DW#=gD#eJ2Ax-boSx7=@(3bd#(9xnUo{3kxPY* ztWL6uw(%(qHeP(UqLbOcQ%D=ac}EfiaoHuK`rWmsI+r_oPOS^Q(1%*=I`ndgY? z4gpz_u%6!>I;@n@L_0$<--lZeIzerAr0h$H!F-c5ey{vm%j0>xC;5*{9utL0mY5=q z?}m%Ssx!sQ5)d3H#(K}%esaIA z`Iypr(u};sD9yqIa1!xMw2^nLvMcv4Z=K8mb9b-y-S@@xcM_os-($UcudG+kWTl79f&8 z+M~pXug}N#_-*qaU0<>FOOel*Ox30;TX*ZN=ixlU9d?PZeuN8<-}Rq~?uL_iWC9t% z58LF-*}#rndu7AJ(|Mg_elsKTCrSj&1Fk~R$Hjs@jAOKclD(deRZ4sxq?Y84K!hEE z0pw(|`c?bUrA9g1cs01AlqwFs?zlK>KhaMzY`mC!#V0wamvrtl=qqlQ8m| zWxICdj(9Er8UT8A;rl+E&0COmow87?&3GaosFsre>v$5@t?bRx>`ZgYhLrL!e7iY7 z*4xf%8kHb-nmKHh$k1*|0jvi(k*p_R63f1~s=Ds$WnG;{+uNB6N0z@w-`s2KOqiV* zit{`-J}bNlD8idY&p|B#2&U0@{t*v(_$$UvSGQa$v=zFt76c+m4jOw=Cv-WuI^LdNKifaQhxc=3C5bV%2>Mqi7 z6McGL-`V@7@6Ad2W*Jn{-*eN?>0d?0`>}qqLG9`Mw!)`ly3zMKq3>}F0)y(!CvCSoaV5~&VL}I{3R9nd3rg`F}-W@oYk}SJTgmkZfAY1bneY0 zy2N|exk>rdTm8g^*Y&s7ihumT|4!-x?8`Yzf3Lmt{{UGDUv*Pir-UGf&vgXMeX#+F zk%;SLdqRljfy4@OC_EMYBz*v1?ri{BY5;9|-LAvKb^uVpbNu=Q0LjJqb6}>@FT~5i z(E%ij=og(*#=1{uiHQB#t5Mgze!qf)A_)ltX6qN}^-GC9 z3{{kg4L`;5{9B*}MJ9$i;}`!O-@KInVnw_(v1EY31qo}VtFS8r_eT{h2g1QUp!^}o zO&v0v8+=$k%U?B7uCn=F&pO+_>%1fXARq8Xx*GPCsvi$SALl)-`tGUYC3RN!)GSGz zD5>JA^fwRxP{RSdT&?$?k#QjfNcfBdO+UWaG3vbdS@e?Qs$g%ntMSI2QcVSm@f_@d z$D94F7k=UHT?OL8E0yM18@qj|=QJlDMp(a1`w*nWRQWK``d0b}Sauc6oc?ki(Teo= zcqIyl`Z(X3*W+Ug+KT$vU`E_hU^lWFDN58dh$%Tsnq)P@TkbGRkg>)%A1t zfTg^$Gu=PXRpZYjcqvq@)UY6+UJ{jvyzk~x682>Wxb-MXA$ zsbr77#TiWQ9mpzcBt|t0*G`-QVOAPdlgDtQCvXH;u-WCxWOYD2BCj;Pxb|$a@w!~D z+*IWvq=%oE3QND5Oc?coN(dwqPSFXYk_q1+p&~YVG6`He+teUG6YlskQSrn@qk?`Y zIT;(4-~Q?0NPV#Jc^T-#+598?A)a|IYMi+3Rm4_gFF!jrHM6`f^QMZ7ecWSl!QnkN zJR--*65)2br|Cp)jt$;$NUDlHSl+%#z%okOF4+_PHWD4*UR;wL+jye$M>2fmdSo*c z#_DDU9&6ICauspUDvMW)HniUCxI_)*6HM9?hbVEs%ChzmU00me0+YwKZehs5-2*6p zeV%nTweyf;ou(hW)=(a#!$bH@R3V2P{m;`ejW_u;hq0)`RjOZ}j&tnvNzajfswzT% zqqirH=Q+v$WoW5!IrqiR6_-&0;@^%xtOUFtj~5t`FvTV06xa+LC32jURL;0szu}Et zLvo16(rp}%R13APXI#vAqeI$;m=KHv7Mg~d0 zwuA9I^`(SFq_tBWIivRsw3sp9oQsOqM z)BSm&m+{JAv27`XU%9!{y2Wnd1nRF~UqaSEo3axbP7meH@uzhBo29&P87Uv^z5IG& z-l$G=FE4kje5h^&&_m3&%TGuRF@Og<>jeS)5Gjsktmc;cAO!WDaY}p(p96R`?=Jf1 zAb{|973-0OwYW%FKatQAvV0f@pW;khEGITqub|7|!rJCsvfb1E1Y?U&(+*Ex)Z%;q z@iij3e*V$#UG}oucuB6E@=8ATwEvxkx~-o_xYy53x2JUM2AHs0$Nm|_7wcbw(DU5< zAwv~aNh{fl)e=d>n=G)p?O&B_@pK$QD=N2%~ZqOuKjB8Qak#+gY=o)ahGc*|ISO=Ox`$-nUwgDqA4z9-M#m7_isfE zw6XzAV$Xfy7v*ACTNQ?fSW_ zKng^k^p$XE_c-ba5Jz?WKkJf3j1^jl_mrab!jr+g+ehT*`PH1=Bmnh{9?sHRu z*!2bPvq=8`0PjE7-_P0UJ%ay25B$f9T$IB7Xu(n8ebTQ8MzO`yDQBG&pOp2OY`KmQ z*FSc{WQkOchao}dtowfm+=c!n03ACrzu{f@imX^CHrA z6a3JAMzQ{h7%Lj!F9_IqJs-6l_(0-8l~JwFRO4>{qVuH#$h=m)gp!`TVVz+oULoC} zVlHW9e<^9-b(cTz16_WcyZozmqS`p6{5Dp}KJx>i2I-&qenL*k%SvqGe>rB|i|AyU z08P^`MT&{atL~h_Hz+sXD&1zwm!;@`e(r3R3s^8ZMumhuYjGfr`w(o0i7wu`gQA3A z63<@q@_ZSi7%hnd^I5>$RAF|Bw`y(xTi6uopZNQpCg%;r8is^Huf-bn#BDNF`oO_h zrMqRk8yNnEe=^&io(?&cm1Yz3$EI+AVlS2Ti`?xuKOyE!x%r~3@$+yX#c1SZOrFkf zQ7*u4sB)y1;|Me3nV8@v1~aA*`H4T1>lKm26J45`W5@BVw{-UOCR-ZUpJu1R_y=)G@`zvAb75Qp&IKhjs_^pzXSMr#r z{V}+QzAG~2oBWxkngiAbrb2>>h;|WH+6Btg``R;kzfjDz2K1Kgx%qNFVpKq%y#i4& z^{^QHb#$}({1JHbYyaep86}?*;tRZS9cRGLq&;N|!_Op?XTHSI1u=zzL%Ef)!5>z{ zau1kz2!0B_Wk_fK$!sR&3yELB9`>~ildG{Kd8^H>&U|c*5ANq#`z6d_U05QA;nYMPP+r#?G?IV(JPk-j&2h7br^8yKewEm6$mGR=@V8%RR<*3OLa0ga+VWeJHvbqYwan*zvL1n?1cZ!8o4W;n+GJ7opzUh zI05cojt@J9>rC7Kc^WG!@EkMk1?IEnK~7FFE_`u3owC2p+CvCB7lXFn{FIo{@&c9ng2{moDbgu`9Eh~&>q0P9LUZ{e5_b{hjf-fV%I;M_*7ZLsHaDJwC3sf zNZ6k#^&FBy%7P;%YJDmv<9S(`{_`{iO7mHO2`C8zC6>2f#`gW|0jM~kwZ9@!)@Yn! zKuCcte~>bQbD6#PYY*S8yP3FHb&>wSDg5SE$EW&>IAA``Y-I~)*eIOgshQdrF)fGKoDfY!)9dg45200we0N)%Ab~l8fmV-72E56mm!Jg$Kt)y|V5M)=u z{*7?3p(*;~u#q5amPmlq(YG(k#|DZFeGV9lJ>RGKmu#$jX?3srDgNObTz(+p^b7aO za&xcoj=e(c`JBh-D}SH->*=2SYxlC56&cUOa-b@kcSTDy-_lIWIgK&!ea*bg90nsJ z>y+ChigpSETbG!}b2{Fv(L&LoH=B&{$w;gLqvR~c&8DNUEIugI;TL`GT3oiZKboM` zYpbgVI=D$GQ4z66$U4)uN317Wk6P<@w zf5YdM7o)A%Ggi3DyX+zBpZT2j#pEaDC-z?chQ7*+4?sC51;ou9qlH*{<%r`%Ywtz{ z2v0{DLlZZD%s(3~b1So6vadC_7ah!qjdxrE7K)yvTmnk=dDQ|W_y{k;2@gt2jyME#i9~%klQD>n1e4*gh;RKnFc~>lwAcC(M?rKjR!_%d zkU=R(73NzE&U*42Fq!cs5ssJKd@R_&GL%I}WibRb$i04-|33FoqWK z%=ObGjK){;0cU;rj`Ym;o6oSqwU62cwSO*Ksa&-Z-Nj-C8d&1>n=dI>0oZy)Ob&Mq zzPBP)BVM{meTkrC{^4(R<0kCW!*$ zi?#eCLo6NR5qOH7*k`-Wu-yD4QLXugxzDz9?E8Xe4N?=F z_>pUZU*jchf^YmX6Py}vMXU}bwi!aV0>iDe4eZKzZig>+!mhW>-5mLfhA>+2y{p95 zH?VVTm^|uRo{p6w+Ht!(=pSxz5o4sur&Ld$Hcgeqa=)VwY2}LJ+!n&JcI`;D?<;vP z>Yp9Y{SIF7+Abk}<{QjWt5XV$Z+JiV-gt#sygjiF)+zZZPXI?qMJC#GZ9D7U%jPWF z$2(*|vqB}o)4i9fyMFD+lOv)2&p>Yn^{3Ll8}*;MIfeRiZlpKVzn=6o)c3Hz?cn_> zs?h%w?>X=A{{y~b*%+I`_2`*L!t={CoB8|#dcubEs5A0oaqqGV&&b)T$N=~+u#bb&USUr zF~^JjL$2M^cqq!N-goX)^)HmFM4gw_wKh!XEGfUX3w0J{_wX{T14?mQCB;Q5r`LCa zojK5ZT_4<{1^!vmed_un<_;x26I5GlS$NqpiV=MPp06Ag0We$H*{?3~j;-5SnUbG5(n0tirj!$E} z(_#@u`L1~Ddpb`=8n?fZ5m`rmII!?)DH46c$C>Spr}&DNmc~Er-q;NEOvOMw9b&u@ zCh9jw{jmpwPMpnG8!!Fllh!)GBx=Em!tTJh@goR6wOb?Q{wKRNDevZYzN2NITIN~2 zBxRr4t+|e7le;yZn@>mA5W?BgAzVV6ex4`IX6#&gyT$qxqEb2yr;H>&bd0;I_Jk6B z=7-F_GE|E<)N%0h_2@Ckq%xK65=g9>#1G2WVU!;f8#G?vZo4~jT2v0(sZ&PSMjU?F z%RY_mjp$Zj9Q?5Lm+mLpof0kuChdHBQi1ssi+DM2lIK&j#JZ|?)8 zaOBbda^c7(Uea;oQrM;oM@|$lfFr*^XgD|`r>fmJvKzy=gClAmvKx*_nEE7+IQp)Q zCnERL2=D(*Jn7RP{tM%WoJVuE@uKG(2`|$9;lUpa#Qb>uv8$A6vsY+d{9S}0Ep z#!lUPk9a%C9);Lgr@-~BU;bIl0{FzSnzMb@za%*W!?X!ONt(roW z&-xj>Bq>z+tmjEf=|1bj+#NMeFQ@-3|*29$lB@&fM zY=AQ5bM9K1@;8*52kjAdo{4@BvME!(-n?HWc>X`|V^86QC+@!?<8)Ic4Dukh&Zv|#a2R>#&eaaewLYg_-{1KsqQxq>>hs5?Pkty zRqY!~Zwa_eOA{2YvsZ#G{~Z$AR5N-vY-m5WdoUg?A<%H&=6ut+a@YP{DIMSNE8B5zd(@k3CEDJ~0P1g41Y1}$>6AH$_~A^~by zm`_$4MJan$ul1a57lG7Lu~ts76OXm)X_e~>kkVIw4VTQn(NA>s#Aq34s&?&Ps2u;S z|GJy}bZ!V9sS>=bgSit2-Jbr4%2m%=c+~kFdpx8={AjxvdIiRO?OFJ}KM2%T>GqU0 zKiR(HUs!Iw$9?MW-lhBKQRJx$p98B&Z3DRS>ux^SOOXTgAyuRYJg_T#pj`#ckF9Gc zuZ*j#K+DYy))L+;xh5Msinpa-=5FiTe-iyj;0MsJNNl24Vn--iN3h)#z_osa zucYivSf@+h)cJAl2RFARW>bgiR|@`0pCUinf?@6bU3&i0`_3)f z#3D?3h&%d%%)f-6Dy_RyV1nOtVjx(Vq`%(iAJZGNA%?eV>+(DGbhP+mKyh6ptSxGf z1!MCai`vevktqUj;zP9L5n6Ea;CmwlVsRp(+jDq?MT*R)#S2k~hbaC_GCIVg5*;Gf zSF%0AcE?nPoVi`Xfg*3a$5&MNtYS2kV;mH3EZg5V&-&AEgnAyqI3QEM***1ZcnNsc zhFEZ@c(0i<@#9fJ1MDqV%FGY9@zZa%x9R|JlDk9dJ&0z%{RPM@e{GV{umUoSrASMJ1gK436hfY?`B@Y&jh|w zUig=kzr1JpJCCNkv$r~|XZdH3ro6Ma`ogbz^#2D(Q(pL&8h_97mwaCNWc;seR(PF{ zQInFOMTf0fse`dyFHXyec$W45(2O?v02EvUNJq9w+#?L;+QPB4|7*qFA ztdUWS#ECV16k_jSSb?I~E@Nnl=Q;dN!836Uy_+0 zyED%Mza%{LM7~td?Id}tw%<5%wSdH+C$N=S z_=MyB3M8D~VVCUNfK>2~!>aQYIJEwp29Le6cmN(}0FR(LwepBHS>`wejK2e3g-41k z-_TGvDFt8QzvAany5YZJ!JhA?spqsW-;w5b@Kx|QPv+M;5LUCFow#6$Gw%*PNPe|> zhX3&Bo0loQC^A!f6R>#riIh}qATrBN++qcnO5(c&u)iG`u+6rZK)XTn)Iw>LeqZLg zUm{leDwSG)ZI&Ea$E9*ut&$Wg{oRl42>(BUC4*4eR0+bh^QIe&58Zkk7`#y$jScyG zRJw@w*8@yA#hWP3WYjy^>CF$w=|uRi&R#oNjtKppbk|aoij2r^)$^_k_^$8BbrGJH z1&Q}qbFXgyG$Z;NrIx7j|IJgmlvm6JD~ZO^q}G`@q^!-V-Hhm6bbA=N6@k_Xp0iN@ z9Vn=s3L``L{;%8lPI5j>z}&*^1=ZY?s%m{Td7?3~Sgrn70cx4@N2Q3+e2!gZ9ssqg z@<-JetX?BCkQMgYcy%|(3Ox!; zfT)6}7bslTCQwZ9R6;FAnR!`{{{YaIT0pH_-!v_aNrWhKm zZzkn~>aP=nm8Nsj_WZLIYy36DZJ<KT`6;Hgq7Dt-}V$;4RaQeOe zz^#dUtsfx6x_)B4zYyMQ?~ib5zb;Fi+7~xJI_Rq*syXs$bPdVX6(bKRzWs-4CSm=d z{*lv*p10*IM+nq9;!WS-+?Rtm`vgl~jJ_olqp4Q+HYG6yUSgV)U&TqtDewRL-~U43 ze1L)s5vtB{4s?_Wp#OA zY*7(Uv#aJ9vs*%~wFPbZSA8=kj~vaP*OXv}z{ER}PTx1ep1F=%>i zq_)W$YHba-dK+rnyy3dKXlpBVw6)faUDz64-WF=5tuj5t_Ci(Z4o0FUK(218d`4ns%l0DYigzj2A-Z)|D` z8-a?(<|S=Lprx^;p|*LYF}<-hw6L+Yo{4M=(?tGw0?A3{SsqFYi)B? zZEJ0PV_VoL*OeL=)Hu9crjuQri|XE($k)EgE9(jEa@bD~!s<`fzI_Kh2>< zjiIJ`qcYr9+gNAJ3PsxLYFk1^b*Q#7+`J^T(wJN3fNtL6P{e3zT(~F{scSG8Yu%Cs zYT{;uN6Rn$QiBFBnvA8oh2`Uy(n?)xxH8n%7HVD$e0(heCu8R9>PntlnnJTe%iE@f zBgXVlsJ;y#F-H2;222(&_DUlE&>}_UWg#;xzrnAlpC+Kx)Y!5xTnm`!{<6k}6jfC= zMO%%k#^yQI)yBMVYkgHKT^LgrUh16_s;#HCOKO|zLo1{`@S$G1FnWdpuyiZX3@U}3 zgvwBTV{J=qYor)JEFKYLwM3ZEObqb)n@UfZe3#ZBclIadG3a+NSzOT5@1G zy(wI`#0b)XCVErW&rW~?wYO0k-VAmLFZCqhg)h-UTl{YT~H^X3I zYnTaHNQOmVwfwHEty?L-RV(Y}&Z#h}f?#%YeQUU}-jAuHDO_7$S=&q~&ZCit#+qa}Ow78aWXvmGOiY}~uY24*?$a zw9=?(Toh^z)e3G1R?LH>3{YbB@+PCEAqobxDhdNp7T1TD3Vs+@g(6aZR=7Siw))-momDk3)kQZjt$W#Je z@3L{yGl;D%w7~Auf=GBth@1Fa|D}CzTOcA$Nus)NQ@9l|?If zv!JqOPT7KBc@4rM^?q@Ab$QL~IcaHS)P}zKQD;zKZu^Dp$h!6g&3AMuH(SYj1p|<9;Bi^=X zOG~&lqR~p|1lnC%yF$OWB?+gp)}gN?{<#PS7T4`N0wd}sKd$pt|G~6tn;N0g#bXyO zwsE`#9Grw?}w4C~- z&-{uV^(@e5eurgsE0Ufc!K!6OiVobo%~kd&%V`Gq#mfnobd@>++#HT6Ow?5(y?-vc zcJd2{{UZ5={T@wzH*fAUe=l&JHp7)W_1Nb)Y(AgLsh|4H??{4f1=92P(yyd0kX}%g zJOAJ1n_i`=s98zlw|(%>KHK>`{@GVMpT|f0D))K(w6AiX$5;C*_j&xauX26x*(4mj zDf&*%Z;A)XOn1YJKISXQZiT<^uf4&?k(a&6*JS=)@ZBlbo18tb7q~k4dy}(C`f$y|QOMb}aUV&(Cdc8b z|48z+xBN#TU(a*T+mZ0D*ZS4c^oaAEhDS$&PqBu7TK=RQNV0PEp!s=;yGJfQ=+I}X zjLu&?(KW-a{C&vliAlyS5OU@3Lr#w??xR0_$mfy?uI{+&??WyZO>|?Zt3Q3n7yzk9O1L&p0-J z6oAyqy|?!I%>OxX>AT#K;nH`xBg3Wdaz})VLx0`mYSF|#=p!w^YEyx)H#isciopHtDaA?=B^Y_kQo&4h! z$JG5fk{s;~K8}3rO^%M6(35{S`FoR}MZNG>Cx379vp4u3Nj~&CUfYtGwE-m?|2Q1fMw`S~opJzJ6lS+$jB!agirsppx2+{q*SKh< zH_T=^8;}hKyHQt;Zt;$7sf{#@bt+?jta;IugACX1RzcgCLB@2pR+ffaL$nmBZER}u zE^B0ehdL&yt^P@4Q#CY(@g|rSZETV)8R<@xVzsS{qf6P9Y@0O5@Onp&4ykRg(b34F ziD?OoL*d4j(k3?k>Q)Xi<^;YnH&D$shx4$Yx(1iZGGo^4ng!Em&z2G7oHA3m8I^SfIOAYnz4Z08rH2B1um%y&hb_AC>77GW_JVSpL~_GYXS@A zvOYFu1ZFR&m|aG*vu7Cv%Zvgx&ujeUv+Vhhfktq)kew}D50W#{*gSeEyOeC7;Y`us zt;f4!VQpJzj9m;zgO-)JGc-iJBg#hNmr+XSd4!ZgZ_| z(ce1ljDq?zMj2-m6ptCVsGvYSHZ`fFGe~VCL3}mp+Lp0D)@@(0toq{Qj^Y@j;F8e= zOGmS%Q4pL|P&uif+FNinn8oIIZ4)(76y)FWWLiMS4-L^P@=(?lLjTBsK#_oxz)oMJu}n$YKkV|!X z?DAPP$*&b`UfP?$?BPU{>9ZFtY75C8b1KQ%QWD%t`+x@l=t>g1(7JIi=wEh`w`Pv7 zEC7Yti3L|j)i#myD#U9)C;0@MH*i1=zF*2*?)+ zIonkD{)kHjrd74s))5AEiyW4xB8yPaZO2bqOq!Q+n_qbXz>_t&6w&jMrEYlsA>&I!Z`Eb15j{In=!iEe?~!_-XWyQ8o_*;6!?yn zUE}Cdr=nV_S5+3AQ*RU$6x0{g83iS6_>-`I4ep7nfw!^Q%TQpjcrzHroY3OX3P}hr z2gIYjUxm%!=vCWX7i!|Q#y8E|20O27AdT&8{#$jS?e#T5v4h3+&EmE-T~QpB1L8;n zE&_@>*EcGst6n}XjYdK%sBKOt5~Wjh_)2&e;mzW0(WMvEQAZ>+Vx$a{eA3K! zh|>S1_#WioT~zPIm9074JbIxx=4h;Es(bid2d^F0M!b%1-+WWW;=kvl=_dwnge2n*}1SbOo-)W|*DEpPHIWpd)eMfg{u>M=fYH$W@HlYiq2xp_@Lb zbq)26YO9-}CFjAIwlXC1;QTjY`k}+}cPgR&ooD%dZbs_;MxHBO@9t-JnSbY5>biix zvHW@Y%jGYdzoV&ZCjI;ue;@GoCV$WK_auKC`TNGqLx->7uZh1a`0K5{NBT&2^8Vm+ zzW*oTAZiX{F``_Ob%>EY^eZ!(ZxU(au zzdLy4z{|lw=e>=54*$UWTKwh~$Z7{YQsl4t1YcT!18iH!77WYrybLWsU}zULL%!qQ z8(N@vp`mmg#|`^D&Dxi@DUZiA){a+cs7|>EjxkQTY}`ddjIoiWEn}CrNnPlQV-__o z3cJ%9n{`r(HEMy3>}pZoJ!9}<47Z4)=fy>@T02?dqK6BE5(;jazj%3@8V3?piT!Th zMDB!~Z+Nd48iixj|7lvq^3Xy(Fa@XXZKC1T)~^)ZMOLjX5pQ#7xmPZ~{0g9}7u4)T61JBFPFfPB`xO|~;`6A=;X5;c! zwuGsl-qHqNSD+QPq05&l`sKbJ=f3X50pgID}S{ZnELO#NpRj5()G)cr|b z`FE7O8iPcgOr{sq>r_`tQ?z^18HP$xdBl}aD!fcpCjZFa6}n3Gue@KIszSXQXN=OV zUL&ur_U(7{%!OkME)i$O*2n@`q8a$m>jx>J2T^cUkKXETfa`VQ&7R7t*O+G*waXT> z#Hx!fSc)}3UL>QdctKNCvg0J)>`oQ`OIg>s)7nx)wR`CvpCqZ= z((DyFYYO9)YB95V_AJ-Zwoa6HT%YUkJ~bM`Z4q&I1z%F76sCK1F(_QL?s}zKD)k|i z4-A9q>vYbA(M7B;T?)pX9}*;wzvcY>>7zr3Yx%v%ewO$D)Zc`Eqt16eICR)vUkYI) z`Ifva&?7Ng)EDpUYOjGO@De<9YwH|eaAO|p5e|Gfzuuz42BQ1YPJIZ_I$<;&LwR$vciZr?-YzhItxi zj3e_nIuodC!mrai4oCTBl;WZ>=dna=sl(Zv=l_SjcWG`b$@cvij_{--9KK`Q1Bjee~+&@HOEtIcAoK@uddz&gpY+Rkw)!$XvN{<;s=omAUUP^qzGN`7_WT^6lBK zvQznSVU<4KV@@4#XV+v@|Ecq;YcK9*FYZ=;gI5Vd9B)X+-mYbD*YX!o8PEo9wesYY z4E*yR+0a&rJxKB0O6B*1QTGhVr8kUGc=0(b!(!4qU`Got9;O!$!Hr4S!I1r0TY7l; zS$g?ddiEeadr;Zoq=m}Y-2qET@&RNDWe$7|{F zTIFv$$CHjd&H7w$39s1>DNY9Up&Q%-GNGr>Bpf zq)THyn~SkZe6oUfSo@T;k>rPd@1iOB!31PG!Xd-W2A*TRvi&a4f6I#lHc<>lP?pV3 z@E0zu$;HAC`|!wwO&si0Vq*nG7ItvBQk)Gb?5n}^a9H_GXT0!hZDtuPJm!b+;7VUuxrre!jzLq~9-xo#R3OE4HpY9#YD;;8eKUne_SlZ@&F;;fpU2XgdQo zU_CnP9e4EZ&6!Z+>f6D~9-B$RF0|4%4>G2Iwa_0lk532toztc}x8*i$N>c<=xkcl( z7U6hpUi{{WO&KgjC*w2f+TM-k!Dv*v|5La<$D0{0-7(f2_r`31kj!rK5(}Llk&IQg zX*z`v^Vor3OwRgEEqx<<|H} zJHz*s!EH{?)v3dU&f(#3L8@1iX=1wOt=wCeB@z+%C#`*uBM&sK9^PwlEtd}H4)Pwnyo z20LFkJUCil2U&lNSYQ)a+@9pD;B$uNI!v2|aA!<%*xjEnk+jVx`1dt}7*S2@!otaE z^Tf;$CJb8cQqX#1~8nCZ)7`Q4< zR3sSEqr0FqZ>?O4lQnS%Lpi&29xQ63Sv|*b=;k5t@m!k~gQrbS+|i)2k6V$ABy60t z4I6SZq9~j(oTinbmyT#~y%OVZm0giQ6L+t&o4{ePRk&{+?Cmzc;ooogx5K|b^Y3tP zm)Cp0!r_c~T6l7Sl|z)oP@r`Sfyk*oob=^X56z+y9anBwzGQAxi0vW0D&INozxtKp zb2b%RthG0Ft{k?(HfJA6qmw?e+ z30#EqRI;h^=gEMXfVJoZ-0uSK{r`1sm+N7pf|HohBl^&1!3w}yhEgW1+nc&6Ayr06 zuV;El=uEM*Pj`Oxs~<2@D^KOvJ?fw(=9D~um?f?+Bj2nLSztep+{DWwbRlZ16-O4Wl*|nvUOCu;7-s1Pc6DgOu5GfY7f5!qcLT3FS$1skB_^|4X>V12J?y?|RMx^}x8JDT z)is+G2QNE4hd8xPw>KplTdddyx9D0YZp3`Nv*V6=$fSAxo9EwrUGe367UG{q0pOn; zUQVn8@o#Se&~%0NrrCCb{XZ4G21OzuF*6{;rlKk=M1+tCUC^?x@wuj<8G*v#z#LEs zfCkP=5TiS+xL|frGb&1n!^g~XV5e)VSMOOK!++?jreD({+;#Oo%7 zYzhQ*2ikAwZVBpB(Dvw#6bVG6oXr3$w7Dr*%(#e1Q1>bv zXcJ?SxStKZRKQA50pW8F6-d3C(kF}h;_8SHtF&pD2_tb%s7dI}G|>WLES$sg>+2z= z+Jyo;Q@yC|8m<;?qLw%rPMlYaQbbi-zxtK-F2h2(G;d1xZExytG0}=f3aRk)Sw)4k zKOA<%Bs#3PBa>UlGwI7k_3Wxy`F?^5L1@m@>PoG5#5^tQ&K$g9QMvx1l^N_< zXpmn*##|H9FcjxJ?^bGGJ^kvt90vR`A4mbine`eVuK!<0B`q)`r3AV2cLZG^js#{A ze{~2!uH0y0n2=>)KnlMzCu|%NyL?GlP%BiD89cXH%co<03iH0rn{e|^GsdMQI8 zT&Y;8&Q%EzQNe-6-x+E%k_9iQZ+0jQW%JxV$NH`Usk*lVS#-kD~F zBPK-5*C#!EWuihcIAJm{K^VA0gzT@rLhmijwJDNJ-;(nAMJiNmoN;9B#=9 z7KAZmHGNDAr7#LhP_h%+MQ=S+9pPHtolsXMMSIgvU`REmM_M&iu%WR&nw-*on24Ds zQG-P1y{{>xZ(v|Xt7ir$t-4GMOjg!#N+CB#vK36Al%~s#CWv}$ojIr3%xl2>5ga4bQjT1E(u%TBO$zoFUz;N6LQpt`j%MchH zzC+wwG7U!v1Z_8hja3a6IXtd@`&3T0WWXl$uS7D2K;%D^H)jy0`p*R40WsN8H|sg*b~y>?aGavido$><16!dT(ae zD-yN80j-i@-rjuE9lh-j96M7dmnS5Jjp^2N_0u>BwbbqS3TvGwuL{~X5t^I)WmxJY zTJAh(Uc3xz04%3_+t@~`&s%A%Z^^?GtnVx&?)6BaL&KE7hw)bDCmJRj`vY^2Moe)8!P2*T`-mUQuEe-mCs0ZhxpE zcNnu9jg#t9e(>@cYRx&Wz6i@udvthMp-c=Y6Z;@*RBM8yjyniFW0}V{Bo5w0Z##D> zW{rl+X5~?IIWmu;(#JH}mqUTnMdPTkjk0tvbApPmo72w7GHjTqZ)vVZm)?O%%#meo z!-hE{IF`{1X`ak7DDJepX>pX!jj!*V1J@7=Fix!IK+NkSHOzfJZ%;~EE*zlcKd5Q) zF_OVH7>#;5z{t)u!M^^ZVEpk$G_D2Pv~F&iKb{Q#7_i8luXDQcrFmsJsKtD=n6Yro zVL-qkQ)##6URQiGHLIV zEX6$LXxI{9-=>4l%td6voe)W@vemAvRBEd$(bZMA`GGP~3Y?U?ALXHxb;(49R!p`c zu5*!%FzYyatXHSa!Ke%--Pz)3QdQ-MHo6DL+~EzF$3URP{YEV}n^|*llUn18 z-`k;QjYm6=&4GI(P`Q)0(6gO^md%M2_{jO*;y>+8_Co3SxIvO>EV3-{VQxrsqeG#H zM;z8Gt+VsHH)HcBu_{Mv$qga32_FR8nUMP!qQCAASjclr;+WMsMWWJ}rwhm*br`QJ zu2HzneA_w)@-I=#JpN_TJi#oR9-0_26eIt%X2moPGW>iExzUhO{cAiSkF~thk%q&2 z^*}cjWe)zzj#w=b=mY|tD7$_Be=^lE%T>bI`L`4gA+~uHipdlU_4*#1fhE#(HAoz& z$jDgG?%j~=EL+y%SlF$D7_Rza=|-eMX~nGn4IvPpm4rIywHlrk-H;M$qr+;c>*$kr zL-s~Z8`GO7fjxVFl#_$~O~DsM=&$leW?Bj&qDLtlSdkGnwKFg73m{H3Z~xh6vU_Lt zpDC?=*R~|@$$ep=Rg6iDW&(^Id|N(ukUN|h*&SMl5$C+NDM>-7eR^0&H#U9T*9+D+ zJED?}7!htv5>Q9wS1e|@^|Dd4*GF|dst}2J)u^;&yqWsgvTOoASrhhOxUj&7?k3p4 z?VN>$|Kb1p_y6$U{HK5a%fD-AFquQ2FXlWG4S$tA|NH;<=5+nPDEoi%?|Td2J{dBas z>{q-}jBjgme{lF_iwwCC1YY=BL7^W)UeK$~uwr4z-s;1Cn=PNjp>eRh@CfCnqYZl` zC)*223X7Gu7rsNt%gOnO!#Ce(N6`0i&*;96)AsFj#X~$EoD}<8J1aAl4EgHme$=J^ zPtk%fP|*X~bf;k@R}H(ll1Lwl)8to>kz={>mbGNWYlIfQmo;Y_O20+Ye#OuqE*NzW zLUB1dcX0GtDh^3cI^p>Il*G402NAvfsW!h3u`FVad!=20!Ux0N`PfP9m+@JJeD-$r z(@}K`>c>~hPI!g^f^M;Cb+~};(jgB?%J2e<3jM>2^76&;u=7SKj4ugtbG2`Kj5&^6 z$pBtrp94s}#231MlH*kgjDBML2Osk2oh-#{-WRVi~soD$x!91Uw3R+0O~_ zpnp3cqx6(XmoDKO_?&0IjTf2?FOc-wP>GHhRJeuig`6%g#F~t;MPl$R$(g!fo%AZ! z(NqVXebpoJhmD`%qL0c+t|5PpIF*&t%1ilyUSg(u?^V0{WAlec&Bx@zAi&_Ftm4xr z?Jno`mmBb-^0QLtLpZ2M%JwUl)J9qjdREppe7D)c3Gd;JXZLp_8cpPoa29`iwG3l8 zAfuHXlUZl5>ADvU)G*Kfs&4rJY%-KD(Qi)MRg<0UjPBAjJ8qAhf?=FC`<+)vW7e&9 z75@?+foNW!BKy_oOjqj1GR3wwd$DAQlUI%iP0L&A;*YDj6{XKdu z2)(V%!(M7jJs^>%s~jO~A$#|F*f|ebc2vw>aKw0pf6c+s5t(hTm_4Ptrb(A_62u;{pG(75EOqF0$Z31|5Z)MRSnZgC}a&$He4bhM8-+9%<>DJSY1D$TvS;GnvrIj*_Yh6`B@zl4~ z$hY}$o0r;ij-4RZd#6EG&iKWTZa5X(tW?DhlvHbh&zx?}u_*eh=-~Yo(_|>)j z7MrQuzFiS_VEm;=?RKRak*n6@ z#R%7^yzcaHcd!#BbV#-U!?Y2|l!`|Xhel@s9rL9S0D6lYbt5vQ6K@LQA9m4ex`!Ga zb?la!5>)%3!W$5lyG7OO8=-CB=#YVpE0qt=s4XpiD4iDc(&LRQI?I@=sCOcRO=e&O zeO16_^^Q;iZcc^D+qadq`zz3l|Ap++HCv*#Q!vP>YkRWH!{Q zv8ieuKG&ed2UIS%GZ(*8P_p^(-Tt4Tyb_m2sSiF@^&m#-1|BX?iAU1~H?A7s^-M<2 z4^MN>HD;h&Ve;E;W!s4ZzRq^L_IR(tK!twz^8i)k`v90WMzbL8F%ap7UFHx$@Mfb^ z8VMjxjfAH-v^+6^Q^Jbz7IoAQ##kaWQA_hA$K*ZqQt{cY>8bZD4Nwl#XIJ1YW#hmg zCJw{3zi*L##>iwh>rq0f*IE!;s$gD4%6T&V>?`&&8!^;?t)HCkV!U=;{>d#i9Gm%6IcnBcGL zulLB00f3C`zE3o-si}={Dgin0`VdjRJmS#mj~RwEIlt|^YW;3UJML;Qg#y!uHnB1w zAzN)OoH$ub?(bGZQgL;U!V-8%D3~lR2^7Obk%&$qI$C71<9kuzYq8;rYOIVm=#!4| z;ZUP;r>+pBsqYe;K)U1roAC+Ldw20~JAGN$Uv>BO!`5W|JUX`@zPqQpznxf-znz?N z0NA6+v7YU8&-L@&!B{`v4qoYp+=j)yhRMBrCJfL^!aQIlSMyg`to*L2!(2+mRup@TD4kdBo8MC-As?|G%EX)we`K$scddm z?$-%;QMc5`^fT?7l- ztEOD}Y(!hqin&|;qS~lb|E_00-}uk3{pY#=JmY82DrwZeA=KA8Ivt>;+a*DnnqgS4 zEc;76d5Odh$l7wux9K|Lniq`a&Ihk+FX5rO==4?Z0`2thj4@t9hjao+vPh=Xsuc+@ zrM8a5Euv*_^sW2Ob4rR)L$kLi(D}BOwcZCddVFuhk!Sc6Ykh$+ulpK8Ctt z5IqYcN&_0ZvoYb1NonLP`;LKN4OAeikYiyyc@J4uOqIVCOV$0U)!hh(2-ea|tW2da zRBdur*S)N*+-bUE!GlMAL#JK5-0Tg6HKoK6Fi%o|qP@hBqHwXzK@)oB?GI0xCQ%aIn)IesiO>Qw+xYPvuP41=IJA0) zS}kbb0Ny6(A9y6V@BfOyi~qXL7jOOB!Qhm zq46A;ywp|Fz~F0F88z%dyObr+NnSbm>H5vp=$=zKDLWk$0+%fge)r{GJzeo0w@7L? zJ>R$rmz`Ze?n#?`6$p>MIo$)$x3wWn#pR!NYd^hSs{gdNe5^V7$tu`S75T$Yt!3Wv zLYRI`U$5KOr8ZYuTE9?SoXlDOO7ZvjV`>tO=SFZ9{$eoJS8Cr`p4b{?;slIM zY(`Vvwub(uYunkOat2kYpHMQh&O$bUEKBhMos@0(#o!|EjU<}nRzqQ|MujL|@9-jY zP%#ZEep0Kp^6-WqvH~M%ouYK*)5-%k2WW%nSmyTjbNHUncUF`dk*QZyqfCnde8d*{ z9{J&{Bo_PAF!G85YD|7$@O^wjvUrWhOlZ+uUweNae9E+(PHb4AbdtyTs^m&-af*)e zELsw8qhK=EE~~vme1;bd$3_`6+#;;4)b7PzD`nQm3rW;%>a{&!4urK{8%S5BV1^K>VPLI}Ya7e@ZPkqm>Ufq^A#T)8kIIz5t@nKvSo4T!f| zc*Cq;?v)h#Ttbx5IOM<3fAvY;2|ppdQB^8-d`t{3oXv-`b`YO3+;&VKM95_Cg#?L! z(JwLF+$9o@)#@2(I=zBk)a#1%a@JB;+y^;KWTgpVn%?Xz*noyhOC}F6(8wa5^5_Rj zU%Tj6V?5Aht~!ykV@Y`^%DPps;+~&ks1uINglv-IegfvDIfF_@JjiLd6&|(FXuUOH z6AdSnQ9OljO!#&2bq;X7bK)4s%i$tKTgmA2O}9UxT-gm2K_6oSj9{aWgiTt?=vvq* zs{6BpR|e5Lkfw8xjRH2~zb1zaA)&RTR`nx9kWnR1-zOr6r`9x;T7xJnNG$mw-sR_7 zG8wr!*TgH>^PmbFdjxi^0dWh!lRVbg5c3K$+^-wT&vU!ZG5L?qAxj z04eoqnxgM+S&3agN6ShJ`>>WhIqc_XJH(~lPjQcUHS=)S$8Z;8?I~onJaTs9=3|E0 zM|V9oo&deKX?YU#YZ+e9vpMRk_Rr4r8zH` zZhRhls|t52ljG-TS@|JF==9wfTs3mBlj{@Gi=}e0Rv)uwbX#HHz;o`qV^eCwiniz} zDhR%fm>;hL8|XUZ?H8a|)OT%8YJ1FAHCplPg-6 zrpTw!F-xL1GPW`I8&ML(K)s&aUAxt>2FW{KG(06u6TpISMcJ9UsdPrL^z7$mVcIZF zD<1>X--6J& z7Vk}=DtnNVX7=$=O+lQ68Z@7ehZ~fz2zj2wG75PVU9`GpcCd~;MFi)AqOdORHBJSD zd;P|#tVC4pQmMvmZtG+=Th5@e3wa)#{==|kV@^5c8+ z1#066%`MO9o}ci&E)})^it-_&K6FlFH5swv0P0xLqTuV!uuqEx3TGVA`ND`j1+v5> z$6e0G^L!j{yMV~Ku}uyqeyQP#nmWhFn zc-h@69Ns2><#<7syH=DWS|qjjy2k- zYF7p2lk9KlL8HoO@idg_(HM7THitP-4u)~a0VwcDIL-rGQA6-V(d$#vh%@nqe1cOS?^s>?~2Q(fFG^W#I1v3VPiximzw878?x zgtLklOj{IhG@+}6hy$rIf4B&xS^6=Z{oRhD8Ix%SlRBAeplSS=*Hc-rrtym^X)DM) zjo;#;n5gWhX@%`HuxZuyrdBs9k}(YcD?u)&x`-aB{!aMj3@j{y%p6n#byvot6+vKR z0>}0Pf^L;fg$Te@G@zp##GeD3XhtUZ??UBq#6!m|$n>72y^>NPSi!8n!_>+VWjLH& zo%!DxlK7TcGdCO|wo(&?)tNT|e498?4==(PQS`ffEqT6$Cv(gyM$U`(#SF}x@oqIp z(#`kB!yE4H@mbwI#OE#_#z*>@l$`1w^s;XTGUR!vHhhCV+PG493&*r%g!RobLg%{T zb2x4-2d5m{F+UvX#2Uc|;Jd=@rZ%;vjtx9&s3;=% zk#u2;9hpRb0V-jw41}@GwI77aRUuedm>EtOTylrLb$&DMrwLSpb78L|Hq*J-Q9+=iln4h?C&>C%#YPUE@xLzVL| z^=MwV9AmQ4Z=vv3k0|&enJ7jLbIQibilQ?}Fm4=h~4Fh-%Y8Y{NXS)$EOw zGi?CUX6krd6yqf^Q@z_=A;2w5Lepb*sNTJLW813Yh&td}|KEX_Sp5KZ$^&(csRpj01?V-()7GbMsYSa9_>=Bs;hBBtzGX;Wame{e4zY_lYVQ=rARUpQl6P8Y3BYxzFad}^Ch z(R}=tJNRCAKk0E^y-o(5qm#LAkqysm(@mJoaTzc77xsuF=we`c+RQ7EGlcl7#0W73 zCoNiY@*PM5AtSL+d8C76dd_u3l8R`(X$~-!EMVcC!|_dKik)VXQ2-6a(pH{HB>Kj| zAmw}q7hTQ7T@ZtXe$wz0AR*$bTy}ViK4PB`VdL0R+b?VRK7ZrrNuRSTeybI5PNh1b z0}Pi^dNe^ZAoc7z$kcCfo@A0c3RIM9Id-M+5{dGgzb;JOf10D|^wjYeKR-Qnvc}I% z&%Z8AucN1(A@cJR)D9^5xheYBhU;}S)nP0@KS`D6^>b77uM5-b=!s`Ah{<_WwUwz5 zwqa58<*1Mua~>Nz&3P`O#K(nnd_NAE9F5ftxA0u@VBYgtG(v?k9yo4yCi_pP9nD&R z#Qp~P&w zH~rQy8_oCP+*rw~Z_xWvlCb5;N)buJ5ZFPRib|9*brO@vUH!f>KF*mmyW$K;@b656b9tfS?k1{ zR?l4&CTQ1&=mL%|@dVNN2)LP+ZWGJ(bI-o#b;-A4{VI4r>`3Aa9I=Qmg4!fcxS%Y> zroHw;;Q9oVxn!_Lpg}pC-RP<;Na~LCUTs~Z(2Ue2;mnU)$`9XO3foQ9OJ}?KFvJf zz{L8-97KP|$tXEZt&p7zAhF?z90_JN9Ua(i)s&LzUW@R2meeF|Cngzme9ylJha!Y8 z=W7zCB!tC4j=4+-+T>MrVgscpg(6?hyEqw2<&8mZ9jJU{nQQ`->RF+vyrcn~W(rz0k@2nq28m8dMN-RhgytRl25I^v2F_0Pg6WC|& z$K#V$K}QG}7qyK46w084UC)##DWlqq@0Npi9a=|wBPX=IG}9wUo_{n7%Ib2G$OB(? z?MvRZJ z0hb8k{3)6=7TfjaEyo4d?`F5QDH!4JN}CjkFnL2MFDo(NwRq28VjSTgo&r879rI_u zZEL(<0QkuWC^@(vhU}xdZsWRW9B(7BA1_FOmXc-}R$Lvc-DGK8fyoLRvMQ9nF= zN>6eG!sH|-#CVGYrf}qaj8Zj)OJclYnphdS2Bd_qYj5^E#Fu1gs@Z^Ke3dMku>GFq ze?*DOafTR^v#3J}=gv?W29Qn~Vo>S;O$+FA9A%v@$AO>D=3S;CHT!M3R7x`m|D3Y4S7NIs%n)`?M0?w z^0f$4w`+uRty+xX9^Q>t7x5w+#5fBzVl_VfUT*S29i%iN#YoFTQvyqQBlXssl_^XD z;g=3~%K+cd*#MD!{`Hm}BaI2L_%}wqruG53M7?&Oyj7`_>#5z0wbjq=n*qWpx3x?5 zt9zj9D9xOxcG#vMqUnf01-UglrMBr_Y}?SdM9Q@alD%1pHDEp3XlRJ$m9qn?1UZ!B zN+G*27UX^J-qI3<8=Sx`eTznbR$2 zjM7qR#Alf_bs(OQ71xd?tK2`iOM|C}dh_#ByQNd4IKyBTfCS{b zsz#@*HB67)fo90g>9mzfeLlR4_gr~III`?b5#mrb#Fleob37R6L&COw5D#R?YhX%U zU!B9(0^rdr^r3lm<}9412ANLDxdb}X+mNaUPjqdOvsD(k<4~2_qB;6?gr*~&^4;($N1X%t7S6a)K6 zo1}EIMrvj{^kw)u!7^-&1Q8j>HH?08R2syLYhr1mYbadUgLAx2R4y zc*#$F?P+1ffhLAy9MOm%7Pu)~Xn0s$g(G2R#B&kM{tQv7EKld{%M9Yh;|TAQ-q+wK zJ|u&Z&oa)iVxX>TjBX8a_~KJVoEg4^Uhsh+-(x)bOSw9|nt8jV4^pERYsY}#w!ReL z@UrYJEfiCnn`7g|mtwa15bmZk&%m=bgkYMBWF` zMvHu9Pt>ljK6Jo&`ua#;YX zwsXZMPt&r{KJ*M5TQp37%^VgnFB95Y!fp>e($Qp@4>KISFGRE*FHGukU#A!}!ylLL zD~6`pqs^gBe2`Ens9WR14`vzDE5gQBEkmZ(*#TOd`xnn;_52bKekgQ2wddgd zq$SqeEbv67=MXPD4dFuxZBy+pKt!KH{`iJfo5(nyY5O1&q_~k)&1F^|9SCygCO-dU zsa;n%*AKp$zfTq1je%U8c88=@sj6sjz|X+3N6-uex{36a5Z}4sBoMK~{MJA^6z^0pL5Ve`@h#1VGI_*4`mkjNAo|fFa``9( zUNr+t=RO*zzO%QpOd)Pl_QotCvhgLrLm%t)uq2dAh7t7$nGN9F_o7Rl$u+l7{05X* zGJUio(e2uK5ol~6DKwu#y%FD$MThFn9-5xB!psP}M$Z^0^Bp_6K+JK3J^fI>4+9sIZ}HGd=uAOO^b07>PsRwIC3u4=6qeweIc)go zXJDfQ^!>9giZ71#k!kDER~LA&S2!DE9k@P z^PMT@oNxG2H|GnMKNq8YOLk^Ect}K4F|j)KZ47+#VRqR2U4k5Xw-@_cB*qBv6MY?WO=|VbW zOYA4}+x(a}8wVB%jBKk2Z1N-{X=nUanz5LM+=@B$J9xgn%pe+H6KJ)GyJ(YYBU zO3py?gL!m5n|(1rToS(#P$R!mcT->HO6lv$KGbT=E+ zgej5FR1;E#;{?iQc3szIxzvZYTdrNS9rxVjty)Y@DXi}7vO^?vvPgkDn=kaf4Agce zng}aD&$hv6)=w#EVW_Q5i3w|yan_b8yDo>FD`TBq-?G0=@fq5c8wXN>q9P+e2goD2 zt#<8O6SiWxc<5=BG+`jgz_ZfuO$Wf#hRPL|WtLtz>E)|xG?3N08nNcAfb8C+O&2U5 z6&n@SX&Bj88iK@}NTjKGI}t-=_BO0zSCg-~>1FLXe_yZ8Adr(=C2% zH1#j46;my#+5Reg-|f9$k4fws>wChp>klGiTJ7svU7VrkOPn|!s#TEQHns7QEDw)s zgn%)AiuW;^vVl=YC!NFYGkXg)YqeXUikQN`3ACmKl}(wb3s(3r?4UH!V^3^*q1BGf z@F}5ds|8)`(l;Cj9RNx0gU#1_qK0A1aE?zcgkow!3~f*+!keI;QG7Xp#u8(-YTJM7 zl>{hT(2V*eub<5j%^oQ#I`=S=E9e&q3gn5e_-c8eZYUHBn6*4`vV@bZrBk!xGS-9up05{@^w;$w zgKUeg;abGhMKs?xiPrA~VKtnhY$4GEk%6E3QsY!RCccWsY?4CYxTY2{=xptX+aO|J zLh3+iaVRP(Z6;1YI_NDV7iQE*%5t_e)3u!=@rqSXQa08W10C$o2-Z0)TnrFkbB+x& z4OWfaDlx2hIQD{ZD5Ejb=HvO(DAG!rH=;gkp0zcu7hf_`-vi;A6*VGcEffwA=}{2$ zCVHzN%+*^H=r}U69B@uV!lw7RD?^>7JnqaJlY!63ir6-e;iI*gXPh$!>C27OMj@1| zjnGU$O&4_6CFoywWQ=zrlW~k>V!UTkjYh3-oJ<1ZlyLO5dg)Wp)@>*?*WEM+=A2_- zrkkC2@QWyBO>&$DOXv)$@dOQ0ULuy)fGr&~li1EQ@i{!FHfc^0GmSsvonRY}K&&qr zi_ox(5!HBKa$@R~wkR!TnIn};>+5@{8~wXwFnQukf`bpr25Oou9OYSF$hlcv(~OK| zbB!%dLoe@{U75+50_`)D4K#fZg&Z;HojyAKK9e!YvFTW&dDb+9oT8CU)nF7CeJdp4 z41`cS5jC=Y*<j-TnqtGdHY)MSAh#y2|y_T@q#|=$)EhYRWwl*De zPV%h%sNs zKvJ0KQ8IWnTLn6w+R@4>Z=smyX0k=-1Ww(u&c;+D|!t}*>&tc(zVT(iV)*?UC6DswZ-=aoyFSNR`s|!f-qiF8h@_q&T}on=8cC7`$DLZL zau_@&$7NMVGI3!928ta%!*7%G?uPb_*zJ66_?iY-^5rSK)=cQ%ziLR+vkjY&Yv?NulqKk}ScqCsa0YcEcK zd89EeYo-z<0>ux!%#4;-3Q{C**F$o1#@B10aR*m;sgmgm@2WISO}Ql`V!x79&gbqR zq~L|cO7 z0QzEOZ&Vy~5(d{Q!>P1o7iOCj`1dMce ztch`^J_V}&){R%DUQAJ-AZp@S&4j232#hON_*`@yQfHx?*48fvrK2|(e^eU(_K3Os z?7MjJgldb6+Sh877CG(^u^u8h-dS*TZp%%n7&$_G)lWfIw{H?Ru%KCL_Vs5!I)c|U zZ*UW4=`)^E(q^8{!8(-zEmL0<0-F{>AfUnGBZY)P19<1 z_@mE+n);Oc3;SGEbY({-itHWc!rJPa3JeA&vYPUR=A-&WpQ{rE=@Dd>OhP2U^XA&h>ch&fkwe47LFGF{#A&DBscfEbF{u3OO8jhet2fxXv#d{f zRuls{;ERfhU*J3C!(*Y4_S9f(wEY%)j=NU3{FU3l;vwu7R4TtyVlB4u;obDIFx32! z=iMDEA2$_i^|i5}t_<8Sz8G8}a5RN1N6hjYNr$Q(zxF+`3AN?QnsOo}ZF$2u# z5X?1*`g#hu7R}hf0afc7f+C#8;}0)*Z~=GWkM8DGdJuld@dyGxC0l}hCz)E-!u)^& z&l01OS#JKV({OgdyHJQ{9i)Mg7`wJ9lL1$$?4vp7H@Q5L4F}2D{Vvk-?M*!Py5~En znk(z@QNx*vYc}rg560uc8Q1q#8mHZ(v6bOD*<5yd5p`ETTWR#4vrkWeS64`lJv`*_ zE59+~a{1W<_o@0JQareI(Pl)QUX?wX`y;7OtqF zD=&NTTjf4dHqoS}_4-n4lyXkpkwQ;FF}p6MixCky z4V?VO-mAS-;1m^$b3N*mKiX=#+lF_6))?M14R=du1EFa*TbHC ziXSpyPSbZ(yoRJ!53{n94+Xbyh^^%31AWhn&mgf>h(n>tMeRq9L96|qqaP$2R5_>X z%_>6(RTf)kE$jB?Evt0a@(nA~a+>Qu=9As$LQQiXu1RHnzmgXUWTez;xzy@xDIV>v zl}ecf^t((#yVz?60ZT>(k~7^I6K0sWyDqC8L~E)b;hb)KDrePMEq^reYbhWIIq|S` zv6u+5S#j|k+1UxwIvku~;30F0Nj8-3T;sTgta_tT-dhl%E=Q>KsdJ(;IXl(T?je#g z9|KVTy`yeo3*5y#ju;cg9$t^9mt$DL*ZRWPm9UKu(ZvD<^2RycT6%7znp%EAzbA@{ zBref`f-%q&U+((i;#oeT6z!`NizAiQEtInS@~`#bHwc z1RmM#)@H6dWsIU}2ex|wcx^Y%iAF`UwsiEMH?aDl4QQ3Vwt+${cqH|^^UeXrWR0z2 zgze5Df`m4A9FbMtJ{AwSdPGL9Z*#N)aQ5`J={H)Tu?uBwa)_id**JI;)k=4e)fG_t z4lnu;jb?Kk^Zn~C-s(fksvp%@@WW&of|8~ROP}Lsi0CO3RW&%-65+0)t?f!bf}Hl& z(z_7KopU}YiMvJ*Ddm&=E0b1I!8SAEnmJ>|vYF@$qRl zQdO!lbq7x5^_A8t4jImpwW{GLG&$YyK%ShI7Moc|S6#EZ}m=B<(_4qnkKIAY{6{xwU5BIqX@K&0` z(cz^bnI*OjR3tWh@fUNhU^uc8a*5KLYuJTO#rzQIZGHH;DqJgM@Ypc@lN!wfp%<_~&SLUb6a* znYG0Nc%1ien$#2%TZbi%>kTiSKbl$cFh7C;qt&g9?FUp}t%#^MXi%1xnOiG1@*mn@ zs(#}J&rNsxsK#Q|oAvCXa*WA)BO<)HdC`lC824sSS7O-`&%J*X->k-p?=Pz*OX$oB z3qAUJT5p@?2-&wu_P$wTibv%)PJ8$WJviPa@r=vAhpTo#h%OUZI(*{mZa+6$4>QNA zCC>8xczlBCS4cXXc3;a%KX&7B*ddTi%ec#&NDRKfg}E1&v{ z@@X&U%+qzfNOX`(P=uN8bZE?_14kPYHibB)#I}x{^HIClYSw_CMmf_$u)3~=kGX3d4jM@66<>wuk9vxSNNdzVw#p>< z$Lh`DWN05et`Q|je3Z49I)}1m=yor9V-QOx{FeCSkz7H?kx!KTpL2P#U0Mn};EahGOTiH<628^DsJbwq*NY ziLT1?-@0$UyCCArL+B4(xykIzgWm8!r>ST`i3)_^!$!8o%pF3nl%_g+j4DGzF3yBF ztknQF0`s9gkQP*)=kc>-C0Cye%1~ogGQ=8TJcHj)-!qGdPt5=e;-^I<+Av-iqUP)# zAec(^A0Dlu_wyaJDly|D*6M6(X(73Y(V{8WrLmtP6kih9@AMB8O7XH8zrw8{yixOa z^4Q`Y4PzgkF)x)*6GB}I3=;DNo$1#;Jm8cnD?9= zfGiucB0+0Ooyyt|ShFyV#a+xfI0{(f@F{p>(cV|2Cv&d3Rf}<0mO)2*i`{(N@uuh* z3TAXnRhgaDbMbe2d3LuK_{sH_T= z66YxDk#SCj&_&Dj$}qpL!RKbfqgJNy`q6#TCdfQww!n#P{~78&;4Bf;9yPe>L}|+9HNR>A4`Viiia`4 zbx}IFVk*XGZuJleqaa`P;Rz5{a|k$h;K}R4gyxP9AXE|+K*>2R5UBBx6gj}>nzf=z(gLf0qtt0~hKA$#bptq7nJ7hEWGZnxfRS?K zCn)%Ld1#u&qZk=;W8w}S)?P5rkI2n4?=cErRGiqL9hTpn>g^D>{LM~)@Z-g3- z>0BlNI1*<3hFo);xI|fTddB6E1zL)WwuV>FFX(V6N1Tab1ds67%bn|}*EQxiN*KYZ z^6Y|xq*`37`y{izL=TzmfK(r1j>%Msjm=hm_iUDQnd*S>F%i6?D`d?K{U_sE!l+S+ zKJ$;KcOX=Td!Ma8G+a#m8}v8SDVT)?=zAHFC1jmX0*fe5rj~^3a<0TVdz%qTp#qU( zIMfW&Y@vx>eu*}Z0hwo9doRmADyiD44s*E7cXv8N9fe?gF{7+mtD%SMgT*JWGGJdZPE3}B%$nRf}uwSfkQGR;5KjRc$0 z4~xOH30sULeM%TiXHeM+lg{5O1td3S!*!;_Ffb(vW_D~o!tV020p8VLB{U!*^U5%GdiGBt>Vs0rI*Na1C> z96pkIG!&FLwGpzXUcdw9HZW)eXC11`;SYrCm2?D-=Qdpf+oLHT2-_=dq`KF@PFY|d zLJzOBk?LLp+nu=|Mrx}=Ml0M%hpzz~!h0VE*(+_Ny4S!~#^Hz1!t(((QqI{mVEGc? zhrtc$1RLS^dSc+M{20iq0kUe(;9O?$M2{*v~l!x#QT$RT`B8d0ZD&eRt05d-(O2w6~b7N9??uVfr6!+S`8|xmtW$d-PF>Z(i|cX>Y;r{#TL^ zhEEiy&2$Xj`cn=U=+R7uhx*duO`Ip@vfi+w?~NIx(16#U3M8aNBr_XP6p~??^rzrd z@vx8YJCO#?Rw**~ZO4Gad}kyf28|T*%IZwzgp{KXG036v-dS%bqB}c^8R^+GJxPBS0EB)HI(QkC?mnz$fNgDmzw-*Qdf5K_D*lvddfq7PYHQ?x{ z6%I%4?~eDjd-k*5y?wi{kSTQ{*sPYnsZmx}w9O|3dWBue34Ln6(Q6DFqYN*Oc)Bb~ z4RqIO@hNA%tIPSs?Qvs}-?jLblz$*`(l}`MyRSJ)_`n|8&7k2o&)Jy*DY)C89JLo0 z8@+b#?OS`mP92nfptO5=;gM1rYZKCiEB$(Jce3~PZB0M)e1ab?z3kP!1-;VyjbVG3 zLw-hTey?*nY7dJ#eEX4-0Mt*r%byJ35P%#pXqEI@W#Z@@6olz%FoS<_heHti$2Emi zI16B)pAe{=WqywCxU{yZ6|*!uWt+@FzmKm#E z4%ZXPk@Aa+9PYe6Y>e08V%ttplnJvd43T%DS7Y`xz>!{d>wLqh_wMpxicHZJ&1wA;6PxF<*5c6%6ew~Ci4y2y4~n5dY)!#Wwo;TYiq zz5&C@?G??hC&M8VW05bWg>M0H)Y_{~k0p-$iAB=O9jgOI&p#Cac{HG5#Ohaqnvf9B zs`=@jII_b=&xWXe*=O4Y^HlSgd6V5St9|n5TOCZ+P$4U^t1pq3E7_xVl4;g>2PO4Y z7eOGQmKxhFzuVh>$GdeaD>f7ry0wTsornzRq(~wsyL}d>d?Rb1ewA}iguytcVQmi^ zL)fUy9TKX}Az>`K=P*)Nng5pcJ=`9)hP|2z-}<_EcsMGtS6UU?<6RxYBweP-0aqG1 zn5rH*$O!0iTwV8Z&~h?tuWSrAd!g#aaA~O?J`LL29kSy%tHWeF=VWyz!!!=QGBi5g zl|jTFUa8-{y&~Zj;BVhrU9ZhqfmoMn$P_W(*(iz`tv0}{HwNunx5kZIz1z13jJO8< zd@?$z&8&Xo?eThlw_lKfs$hGVQ_NN|#}nX^E9ac$Tw7#5(2iknRMVa%U+?OTi9ZZ; zg564lPJZ1TYY7Vzg1YMB?b}DS?rt}>uH9e*R*dw3QL&?5wH}G`r|s2^)6E!S**Jyr zqjsORPxl&w#-!dzOh4ML9kd6aH>$4>SP~4g#|o<6irT<{sl<+H(dr=e z?(9`q; zc5nOE%6cu#%uMhbzS0S_&fLCTx}8}G-ubpz3!GY~quN1Z0%r|uL34#oJS17Pen3}W z71YTTb1mqZ?19-s2Z!(I;Aq=$GnN`TONpU|jL`ZBK|9Gu$(8WZdLat1%4{GCoH-MT zP``(^aHs)hiFdAeeQULTkD1`hoBRyg%Uk?R+RHyx`90uwk>Aty^6u@; zt)CWus_rc}j@plO3QDUtvfsCFiz$~Bu3a}yDpq1oBGNzLQYdPCZp-!Iun!%CYKs%L zx*oBS^KdcAF+R!3*Cs~W;dkB4rFtW8GhWM9s$VW%nM7`}Ktmr+JQ;Ht7e|&P-7`Az zwKVb-R=2E7riZfv#y(ZXE!g1hyD2l*-! z8-O2ivSXdz#haD5Oy62H%frmP_9`l3TsJp{TfL1QD?|y#QZI*+7JHz$`fzI{wRysXcGFT*hf(%kTwwsv$e8eQj4Ok(Mj)!gIgM>n3S848{4FF z%z{)q(uMT9m--&zlrH-8l+)rmrzoWC0_~4gY?F@+^C|BNwIs>tA>{2Gk9G~v-X=uQ zZR?Y_Z%4HwR`fbbn%1-D5VPlowltC0ty$FgINeBx zi3@vd`xAXaZ@__--Qjv=d2xxR47me9*t)64Z?z9vC?vN!^tz8t+825=o&FZ1O_00N z$JZ;1OB7sMth^evxHh;!-8*1&>>&vE8k4KVpZXDb81|^eN7lz}dJxBg72itq(N#pC z`qd$Uy2!Vgz7$YS4=-JYk4lE%-A{7=dp-sQ_CpLuE z78{FoM(%2{Ak5?)jV5DaUh9{#{nibg!t53C^j!Fn&%6Zm1cY}qo*@>^48GMih2fQb z6q%2`EiOS6H_Qr@4@wd(dJWDRi$C#S=0|wdsB(`7JQmqkk$zU5I35HvGv$Pa>mjcl>)7xu1u_?kg1KeS=e#v)v^p(8B?ozu-;u&-rp4V(VdPaUR z1-CpGa(%2>nqpiy<)NCp$4(r%2y4+{;ihRVF40Nm!BW-X`t@Q%kP-U8DFy|@FD^3% zVR31^1P?A=iJ^~Kg?E-4ufk%y&u^b~=8)eZzi0gZ#P0>aM*QW*>u~w`@`lUL_9YW= zeYLUphsE`^1~gp1+xTStUIQ7qe!sDJYjOQSV{vP7{j&l`)ER9V3< z#LsHu#dv*nO+FV+%kH=1l8f;??G!uWzW8E{%Lk2ZUH*yS3_Gh| z)#*ZM(UdbW%7s4WL8IG#v(eqWh{7QXo3J?SUTEUb!ro?BEnd80xM;22j<2vA-RtHL zK!T&9#|J01<9g#(5+`x(tn`baVG@e_kg9k*8)%zgSC80Xfq+`CKuyc^g#?!RN&jnI zQ0Ogj{s=4O76^5PC@<`+3iwK|y>wEDWR+c*X^Mxh*C5-&ZAbi3C2}$u@u|F)P4=c8 ziBllXM32*^*JfCkc1)*;bFIfq)KnClOw-M#VtbJSOXwj=zi~6UlEh-=d3z)?d5534 zg&kd?F=QQys+RHYX?qwRpf;{FPEc&l+iURhQDfgVk3;_v3&6rCCf1>s6n?|M=k3MI z%SGB*yt-O6sXl^uqxLAni9!h(2;HFW#_86}jhBqYD^!5(UhO$b^~?Hpt=W9p&@jGg zpWsokC3F}SG2Tx&HDdj237mtb_OiYXgp=*s%cb`7)H9}@Gum!ZaA~!^N0$!q*~Gd$ zg6ChcY(W0@K0w+B%$JvH{;0lQJG^}x6uCLC(`lOO)fghfGau*uMt{9qJHt}fBzlf5 z$>Q1DPG6!;4p~%Moso+uH_}p17(w|R+;BYWyzE9#d3Yfa8F4QVO5(jLeB7W0 z^L@fDxWAfX zZ0WPm%U9tGUbV#oIQ5)=z2KOSy+A@}q>xII+h(#xq!3Sivn|c3;Aq9>GPHtXh8(|~ zp?{&`G)yOAnM4J;vbo-u_J*e_bf8{b?)LZQbg=Z^-JAv@C_!D5bgHV3%yyjR$vPj4 zC31B&5TXH`=1XZ>|Kv`&>;_F@(d-wrWn29F+2ZflzWA@!T?c4X(JXsQG|Df!|58;N zN57?cj-IKfn(L-?T%w=IHE~`TzPf>}s^T|eTQ`Tm2j`w^Hd-HuQpwS`!IZJ(|9Z@C zL8hCbzS>yfe{k*lnimU8uQ)QDqujJ}>17;TO-d68*(B}t12YA2QtBs%_W0b+Mja!Y z{^Jp`A;ee{yETT1gJix1X1YRF%|$43XhbGfSTEXXxca%ys7lIBp#}K`1Ah>l<}-~) zsW0Z2_3=UTq@=5dIfu}-Do#2RstHG1&7+=qUaOimZW^krLj@2Q$@}gxC|A8mi#@6k`C^v#E(_GL>+J`qQOM-5>##uHN*PfQHLmW33snGzKz{DZ9SxP-%cwK3Wn zTKoaI6=&LRpCE+kbq&1#1VXrFbfXNjNy*?4EX#4!d<D!hHWy9cdkPmy|sox|ndb+h%#$nF4li9_7#r-i|8f*;o1vzQcxU)f&Ah{0Yk zA(8doqzBy!%w3K+!p7G|2q6YG#?{i^~W^GF67ZO?b>bBPSpAuf};Rkv0HWn5Rzx_{A-bK79 zk|DC318_)#t852kM+co}6~|{wnfGW&CbHiZYcT)9<6s zn|bymGzb7vXidpoEt0sZAz>! zm8_9Ofm^-Nx1De4NYO3kNCa`Iyv}^`c2O-SZdXkoKDBulS~4GTa!(ygwRw*>1i`{A zt#3@2rp|M{_Hb#kwY9anf!7swWZrGAY!BNQJL{8nFL4&rPalu`Cq`v!Wg8^c4V?m& ztAbR6f>f0#go?Kvy^XSJOsuYdXZ-2vMtyvzy-LV5#9NB;2R_uXM({cXm$$pLpAGRR z4*AxPoEITW22GOr%LfG4<#%dy`>^p)VV!k?M%lQc40?>_MRcS4QEQe;l9d}3ovQVh zWK`qyJnz7w7;9X<>TJL2EcMqjhGNBxEEB4vqPThOL{H3^tinlAp`!NWUz1pRQBZ>v zmjY&6g^E(QZwGE+zX+oy{4jISs zc7Giy8|zgroc*MIO6W&_MrFK#r4j8>_CbyZKk$i);bRg^YISU^IKGKm^6U=Vhbb;S z#I?J$6q3&-yns!Y##(to##I=ENrucm-6&9dQM!9Af+VzwASB8Yup(z@(#A?fvP7+5 zX=$?A+o+Qsp!6z^Q^bwJ_m!MD3T@5Or*D3Tt~?0@<D#NDeSS0(u6Hzv1lqg5)NfyS!jyT&C=Os-^WNlz%~xC5=&lG%O5IwtR@e!ui(hop=|(w7-Y zVX}6tvZ0XIXfPQbbnTPYh_ZH?3|TWzY=DBFpCZuj1!kMLVwxsmj7?U9@ostpckH!a zXLcqeKWazhYAiu%I;4k;!g%<`N1{E+aV(IZpal*|PHfYqK!f(AG2Z1lq2j&35CVTi z^pMlA-y~YG65;C2diW@tlW&mojTaq=T~JUf>ZP;woS1Z5*TBBJ1K;bkC#Le~2Ca~L+MMo4&*9FvWDA9-Q+ zMTuF&xp`?s&vjfQ2~>iE0O+@cuYF$fOZO0vd=l4_Yv=V?!&A`jOLbZNG;WKOaao8X z;*w0OAQInBANZOt3B-u!aC_2XH!tE=cu+AVrm@S(T&?1*xN)<~Cm0I96zRg^!9LVRst~x)m|O$r3N? z>$k?uTivXg-v?&R5;0J6lXMG-7*Tpo&`2d?QE*qt@QR_ijn39!V?b~W@zvWMC^U(T zA?>vAt!4Vqf1UNr^rfA$zVutYH_mHxBU7cG;&LEXVy_2EB2}!@4;&}|C|Mc8w|A?} zHWk99J+xLl5feNl+>hH6wC0UlBms6vbpzF_4a2WYiQ(Rr8CRqs3mF0w8q-qt2E+OZ{H4%822!$&NS@r# zIGna$cFfc&)>Kl+D0)i8FYrHYkGBzW>*MYH^1jd-E$ zC-P%h7vpr=kez}1wy++h*G}6D*wsbDUwFepz1wyyW_UcZzcnVC6V}oPKn|aq&0^V^ zX0*S3`|vg_g69`m6@8Y^$UC#ovtbTum3Iy*3zy#&JzZ=a4sl&i&b2db)LdMuEG<1E zr@D;o2o}eK$-#;2P8HelX9fz(YMeduitK!dPi5@;%KW6m zP(A6i7unE*Q<-l*SSh%ztNiN=8M<1S8;g9?W4L2Q&@~!Q;?@8X!1>Ugm+7}$)O;6+NlaPRD9yauQtM6_8v>R!D@MB zacne}=e@Ho>3&S-6(o8w_J7OR!(j}`i9SSr_*@k1D*Zqm!@9@|`@BG$jc^1XeH(Y#^n$$aVq}zY|{2RLPZKsXQZXLaSJ7^)}lG6hU zhgtk>XS+6OT|mn7&T;og#NeB7{d;mF{0%(Kq8{J*-S3f@_zB3~8TKxo>+^;PzB7#4 zG6qN`K8hnhSG|Fs;6m{COnOOVQTB@g$;KpRKDIXWH3!gk+}O4eT5f8MIvO_#yIHZX zxnY40nD7qEwn?npRJ_WxbsQS3Gu*1q=R- ztyM{lzyrUs*OZsHeusT1tGXtQqsjAlt>>{!fn~oG3E5gDDA8P{wLf>(ztPt# zZ;J}!=?dR>yhf7?uR?lhsS18A=BbmmhODe z?T*2&FJrKh>K1myE^gQH4k zjO`}1;-t;0Xjh~5(%81~_>0pve$@JU(iei#hG$Vu=NyonZfdY~qD^LU)701Z*`=iQ z_608CG5+{aWXi^Zhi7fM)Zt2h>+XY_LZR-mgB? zqrv*xz5G>;+a@DMfoy$NQcf6Pd||N7P?M{+cK`kzlq#%E$qJIQ*QFG#Y<0Qs+CBR;+O7Lr?e2E>PHlAw%8&}$?A{@r zx4m|!+ZoF>v;Gs35{BYf~tBMcyOOUDsD@DVO?!O?j8 zSnp4H*WurOeVu#e&TIRNKp7tIi?S`&#n!Qvz)C7g#}=j-1ZP5-kK;Iq6{L3iy>{-Q zI&v>KWcqg-HmoKL?zF$`)S<9F@wt8{cMwv%+{W}=p>t_UP*Ss|Q>Ntp&E^V#0)8b* zl_&|d)oGhcfznPxn4(NSn^Xz;V(y=${)mf*ZE@0r`ts`P0~Vs;(s-G(5Mj4rv%Ab^ zZzGFO+UIiI-1)JCO33A~e&>@8#kgdKeZinYS#UTU*Y38MRQK-RTe~x9uD0&q{cQE_ zLncnMb?@_s_wTOWyVFArAJ>|#&mVlg_Ta%CETY!K&mOF-t~|UmTxzY{TfKk(K`7K( z;ria)dw^=Kt=wB#yZg!N@YAR7IW86;CZb!fpcthF^&6c4F0%&=UFEV z_@9x`<2&P}?j6>3`~;yqf$E0- z%H5TFTkZb#>RRh_){1oz=>DA&^tIN#dQ*>ciiv4T6r1Mlv&h@S_P_ggfw_;l%vXYa z?r*Xb04p#FCPkX&X(>2k8){ez5?TcT-sA*`V2IW~X!N(X9^OVYH~4ouAFglmDpnt7 zZvpWlf4%yE#bI$}ami?Q*12F06<*i4r>n*cac$rXWk8Khy)3}8vIUab^pe9M_$yYh z30F*YZZFq%JI#NK<@-~u*1A*wslMFmUUZ4Nqsxs4Uk_f#pk}>3V*3tx-Aql6M~hj) z?A&M!r4d~o5c^y_8J#Zj**V)~-K|*;(O0Jf*4&9SDCLHZy72*(mO1~l{E+>Cl2&$vlz@Zn&a%B)=Xb3s zO-9yuyUl)Lbb|VFXQ|djmw2$gf_Kv%ccsd7mewSR#=5%K7~W~453MU525E+yN4|_z zfUm5R6|9K_o5-zokO@*&l)%IN_72z3K))Q?(bX@0HD5ZAYPHtA)wO%bXhc@)?)}g1 zfA(M%Y1%^Fx_9@p`v}$LA2DnvZ7aLBy7u6+wa-=dv(@{n_t(}`cIC6RRWJGpMSEU! zW%cvBckf!!)z!~e5o?tE{JtdJs-S+s$Fc*7JeN>rWi)}gY~r*b30ll^CIJ#zbQnAP`UFdkpv6y# zi51))S-81ccc~xbcMCa<)XN-ZPYkf*c#Tgv>i>mFmb-f&WdI6)FREr1u3iJTY1Mu1 zaXNBhDw6@{o%t*Nf8x%BtF0qz*M9|b6EDpeoTR&j4=l%VI_VfEF`0>*CBy+vEF?t( zgR%enecoN8gs`3d`hGXvMrWu~!>(Ps_FT`USU{mJ+jIg3PYq$zLg?ID&@J+Y$U-E7 z*?cPUcMqNA>lsn}Jd@(x5@!yw#4k{q?$)q$< znG`+iXq@_Q-rU>xcTM@0YSa2|x4!%P#_t;&&R#YY9ducS7VE0F&|O*ARK;!|O_A<^ zHtHuqrkHnijY8)5S`$z@HBS-d2n6b*-sA1Q-tOQy$E+z|(P$V(p9)8O4+?;!pB$Pp z(o!TD$ifVWsw`_HXE-oaoikc3Ct2liWqxH6^2pLN!)(46Cg+$WYxXcVg)L^b>($)$ zP=5+S5Xia2fU3?pYOx=b$tjLKF;vSd0Rn62&idUI+IQ6(>S38u6DTp3%J9Q$BPdy4 z5Av^9^@By$s@}E^*3st(|3=f<`pXU&`4q?5nBZJ=r_$)+NFw0Sqk+0!C0w;A6r6Sz zRr{=6g@mYZs>OR$vO+(YIw(>f&P4l?Q3vpbAY&QaOdF|(tY=WZ*YB6(nJ^viy;=`F zjP5l*t;R-!6$ODPXMTx%WvCH@(xjMJ>nY#WQVCLK^bV$ID*Zm7=7>bUf1hrkEaQOk za?j8Ds%P5I+$Yl6YaL|sifY!q!==e|u72&~WyRX4d4dpUfGI%;r+pYhKs)LrLXwt( z4H7+q%8?Msp_XEEgcm(@le07#aZ3B{4N6{$Nl-422zi4jk_HQ#h3lqjtGe)9=%$`X zILkIF?h~eOW^B-I>^&5nR7bvFv)!_*9@gLHZjumeYH{10ECLBs0s6pwUC#4j^5FDi z8GJxuabCX-t*-qkos?=E7SFh3m-vC7Hl$={>yzDDHT|+0lF@`|()4iR@Fc3X$pAC! z7n!pAPqKr+stw_=#d5;_wI==ApFB(LsS)4a7Z5wbOD<87%FI;ui*I_{C1yArnah4h zMm2s;bPZG9)+1`C7+2BFEK{$kzwRDPXLLW)`s10NZrDZ zVhtWS8zEO3KJ5Rjo<*#Gk7~D-d2zh3T{dFItX&&AUZP)CgPKV$gOQw7H|+Y^bIu;` z=IX*Pd<6n}>G)CcIRwQ%Y@GILe}`!di|GazdHi-~JAY4TlF(?lQNB%nW7+ctQ4G`T z^P>?oGvg1wTfm;2PLgI)y75qr`?^L{6Abuz~llrHqhOIUtT$ zjRfuF4MRDcB%N(oYJ6Dh2RL}cUN{3@zu9YU?r3g%i5K5&&DyZ`EI@NxMEN<;=#wkxie zVx(nA{A*C$>(mRN1WTSMu=%vW)yic*a-!tN>s>m4xJm0Duj~EE!u#>9_mhS9 z2%;vEj{NVH|NVvNp#P)p_30GDLvlY|lAK)!`s>|m#_Vp0#0LNh+x01$+~cV_fukKf+6EBiqqY*9J8D*K?;M-))~6;+Ip!% zK=wqxf@fC#fm2ACf`Km9`Hvor`bN}GVF7=fZENA~6>L{AbJ1;dIu?(8P9(?2;kZ;> zvGm~_RWo9^5{IBFf3Sn~VHc9q9=1R$LVMd9cTa&=Jyr2wXY4SPAy+`~pOrVQjrh1LF5>!@`oSw47#`3woJu|wC`WpOPJ z!@NjI=Ww!nuyeUvyMiJfDG;Em%M58Bv@Yuk!Ok9CLi~;WUoLs5lCx%B_RzdC1Xw2J ziUgHcDCAJ6TgUf{3(s*jLr`(^C_Jg{Axh8vor1NeJNu^RvQ$AeBFfwQRPHFj1Te>p zXM4V>SIw)|D__Cxv>j^hS_dFN#YJmaTs4ncHOozd{6B9Fo3FYSf6v{kCih)ZAuxU1 zWe|AK+TYnJHtQ9 zWyFsGONQ;QKmPC}cTR{*c4jn^dMY*irEO2*MFLjix(BIu+m(_bK_Dx*OFU?N_a^Px z4$2T%mdxNdmw$mTfVKiNz53cGQwq{|ov&NjrfLZZv*M`WTwwr1S6bOFPmB#gN5TK6 zFw;v<*;!aE)y}3dtYmr_ZP!cu;{CVz^cNO(x=_OE^ zU$r15Nx9!I{&2JbKAg^T6TpKn4rzQ)@QB5Wq8J}&hTgs%5|}+gOdO()HH8GcJR2|U z1pYi&{!dQev2bDHt$YTGk*xnkBjXbN`8s_Mh#x~g~$a|;Kh>bOBC17q&0 zV2N&2+k~^2(c8+W>0Yf51mR;+RP`o>7jM$iJ~I|+mw4nX5W%NI#B{qY1%&!*W*>7)Kr%b zm~b?I#{OFs&+&9~?=0z-$qe&d+d{Ap!Xb3o^}2Hq$~OtJ;)Etb=4XFpS4KW^6OU-E zE9TxW+wheIurCCmx)n&$f$Q$(KiJF9@uWB=`^s1R?(uJ*f6w^$o5>AtVcwL4R0<(9 z%B+pK(u27)8o{Sn0NExwAIVNKw;?n&nl$nIrmYyD@tVi*3=E=Z%X z>MN+ks>l9oQaW}no1fJ`{#)~J^!MjBbs&6w!8v60=BGUF>b+k5xbR9}zzN*08Mih% zdh8qhipZ9!pwi^eZ&J;_!FW08>@~UlSp3waLvD@EGZbeYadea@fBrPhum1sP254|G-GdAV6a)(Xkt`t_Cvb?5J zf$*ip?%W_Dm4}I~U==&$KXj~j2pz+W6_x?c>%-1vacS(A#EB*LvQ;+ismE(Ll++|U zgR`o^E(A^{HhJ~FCXfD;CIvDRr44=N>QI2UmB0Ft9-_fAGuQAK*^ppx_W{&xRH8 z2`nkLWJk>mZOb1(sqW-%D21Z=wD;wk1{q5uIjk*N>-Km}s_ya0xR9?K>x$T`2|_ zo4@Xrw#N4)y`1-m#U&lnud~{PnE&7G_fYqc+)Lf_yRUl^6TQ+szfX04U2i?s{dIkN zyh0T#Rm7e)9cFN0mU%(85`pA-anoC+EIB5lM%Xi6zHL2TRpw%`OqM`3DP68z8Jpf( zoti#hRnz%$seX5+tdm(nX%IOsl&>`)>m3}vR@D|-^fIgXePzFTcUiZ?g^Iuapu(^R zZ{BQf`Of@t=Qo?pUZ3@I{q2cy0Wx2<9@711cYa|*-Kz$JihLR)v{5!>eRKYvZ?vY^ z@=+rhg!bN3yc*)C>S`B2vjpmCKF0^j2ng&wjF8~AG_CvZu6sZ0x$6G$&f-94ia*;T zfb_{__DRHqgrsjS!iPq$VH8&@9bj6C{#Ex!{#qd2ln*My%ot3Sx_2&;< zfl2`+qtn^?Dm0(YlO$D{o_?(m1Z)-^$N_y%k)K7v|%-_~)!<07Id2H`DyD z*pi#fjej3B+b@4VzWL<=#Y01gR=S%_}K&TmDV1;pI~3r>?6zC%!VKKuKw zq}T3N30)6lVeOmP>IdW7^7zgzXaL-Q$KbyIpEq;-{>d7Oy)|m`!Gn3YG+BSVzZC^o z|HW38LH5=ATPgqNt?a$OmC66SmHqd(GXLwXEYHic_qS5firYt^$l@O)KD@>gni$|>OFBsk@1vWq2#6Cm0z;0tVAAc4-e#<7C)1)P9&sJU6oU&xsY4MEWxXxA) zYaYIvST8J?h2`6`v1B`p-~4Qov3Pq7tBM6hFtikBt2n;OMx8fafv@va{Hd# zCwaGBXU95VtBU43N%azM(lAL|n+H$G;*sy!gozbHVk2;bz?LG<>G?L2N-<QZ^Hg^-0z(Arr%x;Q#80`|3Kw;+=o}6DHDj5P8~T}Y?&6JIw^B`yEJPy>Kl$6 zz@Z1v<~p#llrtLT{3U|YnAG3QD}yu-QvTq{iBPC-p5j=L(Z)01TW#{oo4Y`&$_Ce` zqhV^xGN`DVz!(^zi;RVqDnAua!z6LifrE>j@v(%@8ejA_wwizTHa;;C3jJt%B8w=; zun;!EsBxZbl<2C=#wI_0i~|FACm(+9IHapFz$Q9x^qW)X3$1c^7@if=#>hQUSsV$k z@vYLkT2{Fa$Y?A_|7b$jAj=M58(* zp^Df|yiCi2c!M}TX~gWU>&n{}Rrt9`b;~C2O(s+$p^wdoXRH*8)lg7YQ;l%7sjDqrZDn5_FMLJ9Lo2(b@GUD#|NNB? z-Lmg_X0`j!E^8;N^xRjfQk>|*Up}CHE`5Ev%)4>D+znN4AK8z(lGVRQ=>SOw48;Uk zpR7q6g|%pX*B`8(bYp{KN%Y+PZs|7x@XBg+;5)Et9b)MN8!%F-TA{M6FGmYKUxOyA zp|%EHfAoY{QF{WQGEZ6LZ+FZ*X_1yIK3v-R^&0aG(=Oq(YS zbWx|8qUM~5sQ6%9;8@XSvpTJBoT2Enj{adTv_5ku>75DRa)`1E%_gXxDJvt zS=6!VW5bnY`p3N~+xZsjQ_g+8ch%Zit>Hmx0K`sRd@f{k{mD;2dE)7gOY|uw#5;I7 zi#xXKRgSUvm)GRJ>lsEY{*Ukp^z_{}NpU{xl^isMH3@=imZlrjD;d`mI7SR&xFhyt z^R06vjqy&h){=d;9!C?TUGqtI^*ClneRh7^f2x_Gxs;k`EFQt=VBAxz03^`n2rF`1 zkDxr>6-}qyIa@LWD%K*qs_X_T58?B*@YL6Wnefh95gUQ{qt_h9V1I>v9$JZ2 zc9y`BCUB{@lNdRJz`4Z}h z{4AXashz{cgley-ZOC8F{;O|WkIcB}s=rZ(#+}!3Xua45_RgNp0c^K3WLR#-*(pOa zW14|m_3ez`s#cOyRyMXz27bSKo zd&0b+_ExxS$XR6O`n0Z}Wwm;86Q~fvBpYG4TjN}xqyyCnC9tk=yrx)T&046N{IJ~u z)a%rW*#zDCF6EPhe6@Y-OJ*c3w$+E&Tzlpnjc<;4sZwRA4TVO&(2@XShCkYMYxID2 z!7(Q)`Cf49g%ONZy*Qx(tiy@qu)!T1UM;s6?jAl1!nnKyJE=FF87;g?r4YpPk*>JLZBN^tAPbHXb`#w5tpW?EUdMESMP$f6Qc`YS43s>|ep+q1Y6hoI`zFm}) z@y@U(zBUSmVO}N3tdH{+=eIiC?jE(=vdl5Sk&5W5r^fN~G;m|lo|HPHEiWIuab?1kBFz`8|89&p|nc=Eo4nMepW!9#a@JBq&P_5RJu{_h%Rny1rj(% z0spC_O|)O4+%u`1EA&iHXv%tLozem!g20|miXV;7Y-v#cQFmPSiZDuCG9}fpt@jd= zMNEX0XJcgh)XWgnr(Gh)D8DMU+C=1~Ii;s81?L^+_5wPcR8&O6L>()G9o2V$e-zDX zPKPF`h9nD!R`y16B;H&}U@YrxCjwHAOcHDhu^g(0RBl)&<;}cNA*SQ;J!?)Da_juD z+|zBgGA$q+-0N^WjTg+M2bpk3;thCzq6#Z_!nd1G1fPU@LZjKCY*@ltJLm z8U8eK?kB}ST{tUF^mED&Iy9&4WzUTL!Ck-${pt{R#~fUMba9OMptNPjme7T|jvdp2 z&y(uI-zlqaFV%-9&sD-R?v9G{_8B1wM^USMSsXTw@B_NsVP;>UUDy*!-PR7jY8)mc zCGg;)an*d41biY7*e*G$Z1<>n*m%~1{_p?$jL@=wpYzAf!_xv~DN0<_9;V8zZ=;8N z>bCjEdN*%z$Fs-5i>S8$Z|f=UVw)tanbjVfCbBl!dH&{&GV(nKC{F>wn>SBI$juv> zPPnh6HLvS1)qBS{Odb*R`)d2FfR`xt0P_{<83MK(MX0eI?BI#1zX}w&?$`gld4H5h z#8*c41HF;|bmj~aSMty=WYZ$mcdGQgeQx_71QC|26%H+5z3mPpYi@#0o3}Ozq)rD; z7{20wJ9uRn0zC#@M!OdZ&am6=1;^o?Gzn`t@#_pjK)q`TIqoS8Ppw=4v&B8(0-~=N zBUDpJ@MAo)O=F;V94^L0Kncuapx!K=^jc#8Zx`x?p4tK-H0 z#Es!pAD-GAc2mn?drEKfy-cdY(@1OBpcvEW-xm%#=iA5knb3PRY}IN?ItWIs0 z`W$Lcz-8cL_<{?l)$z*RkojBO5FLMd*M2yCQzH!;{EPdbCj;!N{ zI8Ykp-FL>BS8i*0YWA7!%bk4|$YF6wseMT6VIXn)?aS74adVG77l%_8gbbqd*dPQo zd$se_zI_EPeu_ILfm=^@pA+!(bmzgpk3g?S+EkB#ZTr&rz*pU;_3o=jh2DWPDp5S` zK8BkAyLPF^59~4fZL#kG@LCYH5jWk4Jy*o2QPGfW@uflKr8GYJ4$iP=*V;f zU4iWt{(XksFmhk0SH!0ES-}SnT5S>`9Ejr>@(0-?Qs-}N^LPB5A6s~b@x;a;29F%? zG&t`Z(bfp9l@x#1plpxp6aHRMWl&LmYk`_S7 z&Dl;Blzpe#P@rg)XIgkWmQF#R?3{*D)sBlwrIcP2WvKrFHQla%^_Qkg$m(C+3#)(D z9<-n`i~YZ#|4>f~to}08fARkQPeT29|5N?%?tiF%buavco>_)srm(od1+jV77~_IC z;P(QR@8*sU=w)Wz%TxdI)LxX&BD<^AC5MG$IbftT;eJx3mZ12}=XCEBU;X$_|dHW{p%q`TF(#Nqs##8I%`qqRYhpa3C94nEWm1h8yPiTfne zHAZGrX;Wiu+U(L}J<7O9 zx-YiV>0t@-_Z`#2gg4ToK5=g#NgPp(YFHYYbLnu{jxa6Q0nJCnp-IVM;@3|3@Pc(S zu3fj-7_aW%zr26{F=CMPGN=x`-uH1-xWeOwhE7_PCDm@!Y{pti601J@RISQ0*Z!fO z0>8ONm zdE*FmQSP#yzcQB6?{xS~Ltl=dEr)OMo924RHQIyi=ZNvUHO>;eqmfBR`-uKtGrmy& zq;q6Xk9gYRY|9K}?D%LCyYKF{EA*DIZ=^Wm>*bOGkSXsP6s|N=WBF(pJz+*1iLcm(kv)_gZK}(sc7KSkcBn-y=`zV58 zkJ0K3#7@QJc>QAyg;nygyp@pKWxMe+r;8n_nOP6&VY0?Q{f9p+1 z+r|D^1hg03^ou%1fd~CHUmN$>pjMK`QN75rzpHl-W*dL@8ur3ppidtBgqd zd$&fMEm zAl#JaeubogK-dfyGTiya&&PLt%g_8BhHM1Moj)W~|6w;j_AMvNkHnoq`F6h4n=f^f zi1wD|iH;7OGyI~mPsJ&9+cBx2ypcb*T?`0_cEY_LTsMB&h$L}Ko2|_?y?co-Y4}0$ch+h)_xovz z{&fp~uybp{VUC1zvSh~#>y?#-3sP0zmKWGaUSP`VZa!e#;kK+hd4P>tv0a{N~mOBFT_vERm0GPQ3BDPEi~P#KH(B z3nQ45T0D*b+0T;&c~mhzl{K#_u2s@Js~+OG#aKP%h+~y=&WiCG>4+l<;|Xl(KI)O}OTzGoc>ia;Y|)yGoPVM6VHIaN zL)<3j4JWFZatVR7#=}P$W397oNZc?OP0Q~{6OZq-kZM%0^3$4U(+!rcd_jfku=RyC zKmUL=U%h|L&*S)@Cq{SfUh^bV$kzMOs)ak$HlKDA=xW%^YdxJZSLZ>3l(b#9nOAYhoa;m9+>Ka*qRE(BWP2gWZI)J$FI#Fkp z%o^{S4Z^s!Lw z2|u9P>*6^*{Az8}Lp~h>Nef_AEEs14tvXzPc zRR!cP^K5?jKw3)(;^t>zhM30*NdTu+eu8nND{Hre1Tyxa2ZZr8H3(^*Ntv8L58Kzu zsPfDRmU_a*JV|L&ZR_x)X^4x4&HyO+g9ajUFoBLFBDbbM7jE-?T1TsSN4e;iH0lp43d31Gq~bnOwto>5Gg{4##s{`l_~5R zXD?G_8RMw0gDaOarW0v!Mz%udy0U@Q50#OtjoG#Onc!5H@$dyc(Ky;p@T3xjMr<&Z z3a7XrB_BszK<92c!3Mg3V(bE6&R7E3IK>xu2*@Hm?ObqN?y)mgN}gsba7zNlB$A*7 zq|8u-!8twXN^mG_Y4cNQ;6Fi19+P4oOCsVpR&c02iJ17OGggm^XT)d}*N`Yv3hdiY zT6i8|!&GI6zBmE}P=WeKvOCodwE$4u!~s5NO_g_^8bzn=-rpk?%wMkAb2YoCKUco(n64N;Q2Eq7%_nncgm@gN;uy2D4CA=PPI-+<uPr`p}%W*)k?oShfz$l{b-${?bc~iJUowQwMf7vNa5wT=I2B zWS}fOkf0K%<1RU{%U#IMiTc?(bJ9k=Yqwo{>7RA`nNTuS=}^hyfPBp}iM$6h^=TIR zG~1o2PjujA1|e(8gx*d%opT49d%R;Q$G}YS zKX$(ynmOPUpI#$s;Ot|k>*_bEHsP7A9w!D3P;E);HEmSzEhDsC+SRiNN4o1>$6QMY z!m%H4#X%r84P6-TJN0k**MEIXRhwS=cJi1%#str0VFSi;1}ZlW#5F{&7F8?$YZ+Iz)Zr-_W^yF#;wIl8LwVi{qAt9Hl{f=N}Zpag#e zXWTc?i8OUh=^?zMBH}_k2aY<$d|RJRcStwBGu@uH37+zzYz-G0Oy!7C=on+yIXX7n zYL2EPJT&)j*}3u+OwTghGOvnl35RVE94{yo%x>;sMcWpnjm_l1h z!V_nW6DUc^8YX0P#p;$SIYGFQWuI z){!LC)Grl5m1gFOT`#fK3Yrfd9BC9Wgf@bnm2a*jSPm2g4Ct7e_!ftfU(x&7{jCsM zh1o~=KpqIqL>8MsqY0f=C@svpAVb_HcUTCd39SI($VfGNP;0XN+bwmdnRz)2+jisB zbr%C0NS$yBQWd{OgUxkNhr|V0zlkNX*GJiEI5K?B0Oys0OPdK`$uJ%Kg8(vn#BMnn za8NB;kXl(xvSQ~wrC7DUL{j5mDYOVy9NGj&)L4Ww^OcFusr_t05x%Gnq?^ok=TB78Wd&#raY!NhgSu_6B813gy{ zHpA`7xUDJ>_G))UL~FJaVUYtNzX22dLdYjCU`9SOY#$p{D^MpWiSIbntO(mn=AEXHMnm>5i)9h3(zBwU)2?p z4HAY20HIB?D2LtNr2B4AWnEkb2n)Xb4fU*mp#dV1xP1==zvkHdMOHPXb`f!7rXy}M zru!A&c_J^fitd;d#(JRUm%GYr(1Eh1XF>W1W+baF|VP9O@XkIZhK zM!R{1W{t;pfg>=Kvhuc^7%IkL%MNe<&nlMiy+TA5y5K*!s%rc@M(VGb^PtsE7AI2TF6PI|3-N58nnzn&YR7 zbNsFumS1D~@Ucy@C$y4+)2ru;uQsz+PwZ7-Vi|XE+A0eiCnbv)TVTi*k>2y|Io|OW z<49U|BCR->`k*|Rw6|VLk)W$hyPA`I10Sk-yFGzTB?s|K0&3$9;F6Rf7iV1O>xDtD zsrTlLhD);mEN8Venm?_uSX5W1JM3C+YDCM#^7TjVaBK_r&~sm9*6K4~QR3xPN-ID= zBxlw)Sd3f_vkJz*v=cg61i(zqhZpxtk~gT619-ApuR-9|px!?5$Lnp>PDrfLYfQuR zAI$MQB%vaIr`ec(uxSu_G6iZ~t{!170INryd+zXW^^XJM)T+x#5SHcI3o$`62t1+3 zupA0NE{{o0Z&y=J402cfYJ!Ki;bnsB7g--lxuOw1#{?)J;v^t1N+DIk9+1BK&c6Fa ze_P)x7)Az2-KY|a38W|5Zqg?|W=&xvwB9ge+#10*G(Kpd_Qt4YQmIVflME7gc%u8xb2uIH^qHpq4Ui97*CcqBgR_ZH<iGv>)Wn*{(51aFflhb3KWx<`M|u)fp%Nb z55vxN`vftLeOYsTQIJf57sveS#W~Vp?W}R!#*tY;4`yCV zbEQ*mQkCD@0!)OQ`U82N;#-soer*MBt<*&`3j{$lfduO8BDw;n^bGPqjJlq2by0lN z2dARnCFWjR+#EwoU||abFp=kz5~oI7aLlKhcw|HIDYFnr7v$lAd2$osB{%L)sZ@H* z`qXB9YLnGFz|Z^RKBqXl+oiA#woiRYy|g-=-MZ|a`Z`Ztopd9w)1FeNb%o;u#Uc{OZ{4<=I*wZXi~#@Y zQOeV+SqHV;0R4{pP1FC|Z5Dt$078{(_k%ysEq(x>XgZK8VciCaLF9bL}>Q}c-g(wTD5+I z@ENg8A_Ih&6z$jA9#q#UxuIBpWVRyG#-+vrOJTB3`C=@4=W)UJW7Oo98SA7thASts zZ-JlrZL)nXw@%GlrM4gOS~c{-2$hXWqObv9uC z+p{G?HIMc>*KgjazM|k#j_6m9xVo~<=iVMCl-yi%|DE5?2*>R_GqK@D1K-om#{2B; zi?_7kx1?)1AW(m8I4I5$H!>p2E|N{2>+ZHGGCJS64`ytoE$Z^T8iZN^60gRk*hl$| z`EeRDCd~L~nYtAJ?6a2TH126ipd*2@cxoaIQp~zC7bRgYSJ+4G-skKUEuG|hPn(7< zanKvYn8^v=Egvl{xyaiy2NuISw8yPxlX6bIH8imnXkIXkemKn z_CJ4(f4U^jg%2O~eYH#94YKe0U`~kFB0t0##BQT@(I%vPP6+q}R-wJQGa-nYL%cq? za|l7WUr(|w;)dX#d}v4WFWfNmT4SFth>gn!eU*Tjjha+4UCW>6N8YphUXu{7WvE>} z3JgZ}eJby|lIjbBEp!;=?hss51aU&XpFQ#!1=eB5b^-Bp7vPvkv%}!@6&xZZ#bi6W z2aRQK^K}JQ;h*S^wPs=2iF<%s<6JVct+vp2+AXV!8d~2dX>P^FizqmC-}tT4zCaI1 z2`tI0OK53=4XJbNudW><$uKaXYep(U@6Ze}NWxeENa!hj$&`9@F%A;&DSr8AmqjHt z48KRkg!6Hcz7;mj55Q&h@fUtETitB+MFWb%{8M;={dGw zc12yTp(CO^S9MxfU%YnJ>Hpcv+H7Hr>$=T`=C!Tvowhb@bv&ocb=JqBoMEgB_+cz; zv?dti&GaKZe!{>)J>Q-4tpKOr38yZ;Fz_7$ zHxAljgDd%qSGAsZp6M6z$zPr#+wdrN`Jb$4>DgayiGI+(vh&PZdKOxGk+(FLV!-K? z7(98a1%rS>ndexQ_ehS_My)Mh-)LTU$_m?%|Jj$L{Wt9GV5K`}l4-O+L`ih^cu2g6 z%MUo5lQjdf2Eq))&(`kE-@Jk3K4K2-0+4bkM)!(mSM@ps`3l~K2qcPeG0`@}^1=V& zrBx1}j%5aMnZKx}g)3riq&t?U1xl4D1>c+dWE1E^(05K?_q0v3#j*jz#)p8mQE}5R z2ZL!BcHGu*_n(k{&j>Om2E(v5W=Zf_GK!IhTI3n8;TIVg*v-XNTGBl$nCa9cXtEB_ zsIemS5xI}_OzQ$KfB!61(6@Q??JQJ1SbTGxzL_Q$u^aO5oOB5|9CBRXw95?opb!m+ zP&)lwyCd|{_b0y74jpV4xMyDS{y|_rG1L>6V3s~zPMXXNK;w{W+S-;Tm$OY(mo81Q zA$I}O?Zy{KLnEu!UTmc=@M}gz%}Z6vLB#Qkhx!6i#EXnKJ6q^;Oyfj=lkHbK`zWyXwdx4LHMbZviN*0}VytZj?(1_r7z4&I!e?w9NQjg@{JoMij$yZyvGGH|lqKs2n9L}jt z4$h?tN1U7{|3^YB_nIXcrtB^{|08N2#J;9%F37Z^G49V*Ru zpe(Lbs8j%TE9Hw$LQ!}c|B;b4&&b_WBwW1e0xL0oZ|mAK@=*oAR*yo$yTy*(*{z_8 zd9<}F8YdmAejyJL{1H3t$XA_gj0@g;*q`Bto;-PHZ%H+V*4#(-#{zy24;ZM#z!O&a zq~1FKBz=;t*0n#fqh$Eei$QWY=!B})gr0Jw3&chk%@TyPl@pw>d$ZAG8kFK#n8;6c z|NcE1SuR7HRuOX<;Fi1jEMk**2J(H$_!GDVThD%+-gigmkH^7#J=xmy#kAbZrPn=mJn(;reo(<6hKEzTe_o=eo`P-)% zQohO?Uja*_<#J4ab7Iewbj~up#Cf3T+0S|#3#jutAC&eT+UWf4!RDub&)P_s zJ8R4u)!E95{o^48eZB52Eu>oh@%K+CkS61qpA6$H&iXJnp0m((##x*hXVHfiL1&D! zIP;tZhcy^yfgUAHW;K1@drp=~rVtf7U%Cfmo4|yMzh}$cS7e`1vO+dI`=HeOGlCQG zQYCr7E}1y-mnQ|@-^sy4T~$-}8Q>EYnc`6>R;6XENz1V!+AGpXe^?mlG#e?`w?-;I z!sU@p|Jq2W|4&BRfB#5d=@kG$?XI;F`oM9n3wG;t$gd&x;@Vl|{7D zlP|@s%#`aB%`F>0d__ZE36JEZV5i}T#OPWKnY5>NF|ofmWJ2D&PRzw(aI&NI)9F-H zo{!+8@(4iO9we#p4!28rh)TPYoQdc&iJdzqd}(SQxj7XFgo1|$uS!Bv^JXNaQBgNj z+%ZU_pMhg_qsdSCNk|VEBJdoklkw1MfK?CcRkFR5P|1D4ytJ>xXVU&CbSdK2!`Gf3;P=^8mDB;qSog}bN| z2Sd6PsW;(@Hyu}OZVX~v@qFaz!|)V-IG31#twLnj&Batr>G=9z0i88Pn_$_R;F#pXbHIC1PmyfH|{@z~VG zw(gjTvi*r0qh;DuwQerTFm|=!5_@VkYMY^LyI_u1bXX`;TW^kChjCDRmw2I+6lC0Q zHmgS^2h<(Fz040PCtjeO0?z~XO_F$#*4Vd;t9qsbn((1*%KEgqu}T~@ANmavIR%2c z_Vr(`W6g+ya#j(HD6wCX#3s@r+zXsgPKSS`@+ADoAsMWltk^7+d_1WJzvr*@c1_l^v36x!`mVhBud0n9iZ*h_3$g0KrV>|Jzcxpfc)^ zYtF~hFduZldwg+X!ipNx`;6`}7^AeN5klV{`1N7zd|6og44hx+mMn?33PA>szfd<( z4iZFTc;2p)xMNkRFtSWX`iqT>-J-fGkI6-u=J})i&HbYNxAf}s{1sU%*=@#(0ld-$ z_TWyY=KMJ?OEno=_%B{LiZAL-E^_+p#FkF~OmoeXdy+VNCkrX_g8GdRgs@inZdLRj znP1!JpwA`&Jnj`@>1d~NmLYa?tGEf(c31Fn@w&l7>=%mAs^ zY}cv6OnuU%q;|hw)h??9eb?&7J5lv9u0CkdNhx{sL*?Pg+^?~ zFGI$t0j4eviQA3q^tr>s@KH4viHT;R*I=Ub=)Ru7h*q1Yoo>h7{ z?)6_C4$CV7SF;;gvi&VictpO(TNTyzo4?KW+jC$4J1a}wzFz2#Hyr{tZx{q{%xV)G zh=)$+AOHA=^6%{^&lVAWsir+@g17NnWm7bBq*!E#SU)W63CuHYHIZZDX;V+h@a+#r zbZS^xCGotm{65A~3EXTrdWw+;N(+yh*13o*p8H`HIZ+qgvg`=SHBweM8kcJ+t?BQn z-NqcNnNX8e1M1cMzMN40Df zX@LFkvhqh7@;Nm#{fMfv$-9ZS$*uI*EDy3vB#eMOKjiee(e_BO8KEZX6@?Z8jp@|| zOIim+s7?9drO&r}u#WR>xlN~stqba6z)U=m&e#{nd}}5+L6v;L?w~pO@}(Yb_o*q= zqAsJArvlCgmIFGD;fBO|(b6Fc+vDBZ@eY}#@r5EsD-e1F6n8;QKqc32U2(cF;2M!+ z2v=nf6}Bk@lgqw@TNUSH%E9Vdu2%T`Z7JJ_jZ|)@0WyL#354Zr$hi)fz~z*s+?=TGR$6BP~pa{&9n%Ptmtt$ zC}-tbD5MqJT6(4r(`Sda3Ku+r;vOdKWSL;DC7h27xD<92cXQ1Rx)z|CI7pE_Wi|Jq z1(Kyk+jUxyBqcsk)~C2kL8=8NmHL{cFd7PAZUj(EPYcu$e2;2!qVOJ@vWmL$V4h1I zxXo#x7}M#LVQ9bTe9B3rZ4M^FGJt(OBt+0eL^AMzutCeeN02UsK@pN5jCA;o`-)@5 zjR7Ya!W;+Dim5U_ocl`25}Y$vC?rRiB{qHEhMBe?FWVrG_$!PgnQ-vRrco3tN91b%Zv83H5(KJzAPTpRuwFR=NQG6@- z&ApbN#NLLj9VbpFH6o}*(4uhcW_^2Yee+*zHp6C`becI!c@0k%k@e5~OEA@Q8^Msd z#AM(C0~>;%;8sGa=9yJ<=j`f~G55(XC7pUQ69;}sU$2_tHDxKzrAB7)^^v~B^8keI_EuxM;yc2VGjNcnC z`Lh)w&9DxNuVY^4kW{47IywI(N=jPf2?m9Fi(XlXmU=W-cdATF@?8RgF{OgUL4Y(^ z9hORoNzl%O>yjNKPZjfHHhu`DvB55;6X(F}u2%1=Ezc+C{N5i1j+|yXFJ;rEN_~xs zm4G5YwKEb#S&;~PfK>XC zilXEalnb7|U_qP=M&b-~Ki9o+xVWigi1F0|V0LfplVq$t%q}j^(Bg@k}&EqKRL}YX<@FOwWz(7uZ&X=Oj3gtlLDe)unw7LDX zZlWjgT{>b|60l})1o{9USR5wNJ=RRxV}5uXU>+wEpg49KT5?oPOYA$^)Hr*9q=TWf z7=3ejLC2KO_Sf0yLyc>4UQ?AmFT!fy0J1@STXp}a(5+8)zn*u$jmA6nU+V!LebU2A zpN9il>l}tBlP>a^=9mYcM70%CZLEc?PetffhPC99Q-**JN||0YOeGS2+_LyGGi(!N zZh1aGKPq8mEg2YS19v1TG*yxa@a;<25Z#C5SoI&i7|l8Rb44fpd%Bu=c$Bp-$o?x3vi7U{{>E>WAa}0NvN=PIWxqBB z++?7UvP%#qGk2`f_bAk8gbsr9lWT|#A}6r^>5a5N?B*s}H>~dC+o5Jp%J*OrS>DdN}M*I@(Y<|i)7rU4ZHy?C655vu;T^agK z)ybGG`8l$qGtKddrjV6Q6UF+;I-5{z0Vm{; zwtS`epHtC&E$oKKM$_x_qY?2O%gy~PN#gJD9ke5JPN>xL;Kh2&^~w6uq!WI2*HTZg zO-GcZ_mSK<7n&uc!H5!3rrCMGS$^?bx{`53)Fd7!ZVy9wM_v!SCHRP=9orPKx+E1U z<_OHOlS_?90C3H7M2#-ZIA9f&we}I?C zgD!Qsk?GNp^fUNl0An{SQ*C8q%D}PaYYMJMz7}^Y*O=HmX}d%7oO&QDNbIjMo)-&oXQeC&8W(6cI6m2>1b+1x-j#wRLrqI=j&Z)koZNXJI6rE$M z^rsn^E)h?B7Gw})9kz085QFsUE~83watcV*HT!sTcdKhr&(-wHYDkny4MVhZ>_$y2 z_Gx>%GuR%WIMI#R4zyF`0yx_~GAS!E;!*yg0H z?K6}uSxHr=j|WJ8ql3XqtV`;IJ(E{}*C3262feQPoSD_(QPiRrAQms*l=0YutToQN^J2c#YRg}1YQ+h zTUgS?9xo?c$o8SdLJMwyM00wp6pv7m7!^%|C#*#ymLUjVP@6<|1zH?7M?LkjMc9ygHIex z8sChQdWPt33|FOu-}Vzw-oiQDOW#ExhTB8uz^$0Cfe|NFN|n-d5;_>@l+2hWN}lz| zpND@wvLZn=Hr^_Xw@Q2zTA9x5WlR@Ev@x@W?(@TCAv6IdBF~DOS=WQP)$2waqdNRB zW2N88YMx0RWFO*mjU~ribK2#MX-C({B*`AjUNhI0V^PT#?FNag^$CV=4x|+4jCOpT z$Osx`t@C#d&4&NKJ3gB($0n^F>e5)V=~ek`VwqMQ7lEyC1t_x5JX99Ik_LV! zYy_6Xn?`bKIo*sZI0fa3A~1=N4@nbRH+QfAo@T3rXKM4^VdxL~473!zq+>yy>OQEX zjsB4*%Nelo3+o-gx}Zz!b^e_9hO-K9I|3lch8Ykj^M;a==_cTnxr>`~+^(fHB3MKw zZm&PXMc8LkjOwVrCLIK2)1;2`)qwCGBH8hF!|Eg7VkMJD^MvQ=hf`Z=p6o+o|HEjr zbsERUL0&=ZS)Q`AONxmx*Q9T;{z?H}a+)wUVg7NTaEX}aK-)E@zkC$Jtn?VGO|I=G zljEI?pPyG0K>7IzGn;MgtZ}|`POo%Hw3mDeeR5s5lq!OEB}Fdef=n^D97Yl>O_-1< z2-y!06j02|oeW!?fhDC|xx5Z@&Wey%ovxdf2}`a1 zvg_7QkhsJ0PM}O3Uj<4rST1AcUx1eu1D~-JLfYMBXr=jE!gNjv5y?QuUcOWg(!1!D zhXf_wCL}cy5^p8=c!JU#hVjQ!3*^G$_0yP%7Z-Z!-71hcwp%l6kbzHoug=z$Sr#aA z<~3^W-qNo-X!Jzm<9!}QZ@a>A|%*aDlk|maQ{B6eQ&wUlrmoM^rIoLiD0c+8|pv|ms3k^rdChl2RIj) zu2Xg|pJx+dV(wHHz`+qkbIwDPZ$_Xv1PzV>h6&eb5M{cvl0VK6`XcMW*r#X zrV_MCiNupr%e}*svAjOC&Ewf(5$9YT7iT2EJLg;)GHMm1xNDv_IKzfO_6bqyq=Rao zk*oZuK;d@2+urOFJC?e_sa9mdyK0cP?y#s`HO|||jidU84vMMq__%%UZujja3H0pc zEBBIy?DlDK*dB8()n)sFL#g(;ep0+@Uu=5}c-nZ{eB5}v^StrA`K0j#_U}+9NfjJn zb#QP<9??tjdIyJ%a$~P`slP0}xQxzh0^=>I46}Vf_~-LC>Bvt6Kh6?BazL{5+9D1Q zl7ys0apvA6pn6^yus*dNcdTESf@bsN(V6UR_~jF_MFb5qG&>-g=A^#s)5jb%PxIGu z&T5XAo)EGVLJ1ixeYEBy(~;ik6|vhUwd@X}w%Db6kRVqUk7YD{E}xUcG5#n;08t`4D~`<4Rs!8X5rN~%hkYXZ5}%-_r42A=U&4#+-040kzbzn(i{@u`&8UG|l;jbz4$0LZoT|3<%PKK6*6 zQvI|R11_#=`1-%mumL23;x-&sHM~c|AfYGgI8(UA_UMycn>JWgDD5GIyxw+`xZQf| z(tVZbr>^d(=V7b|LQOqX_s{%bK@cLV;ttoGfbm;h85C3Q!#sKM`x-5YVOOZ z8M;j-wj07m^;``T>CtaC6(X_zges*(XsQw4gw#UZvrud)t-`|fM zIv_IxGSN8g4MUEyl6lqJtbOikqsFZ#BYb|9KPeDGMePtTN%CL=n!19utRJ`e#N)iW z1)fh9!4u{XmR)lwql{Ky02NOAHj(^g43kF><*aCqSl&s<8FT$8oYR-8^szM#CY4(T z0b2Ezve>IO!e3%-VdP8ohR1me0thS%fDZsER}B5B4Luv*iowmBpMa%|+v|2Fk3JD* zGQf}LnkA>KXYjCo;YQP`T8ZfnBU+sQI6PwJvbvT=B1vAghR1pR8sKbU#%C)A_}J5A z$IgW*!{})1KMWiO&#y-}lUkX=_a37p+JvQ6X?5zFg=R8?LO}-+U7ga!}}vQA+4WlZJ6%*a}!b zft1MWI|26DVh3dLwCM-KM}_r{d8a3d9D^>NAkWm6(PI9nDLKK+lqq(11cl}xYCSC; za4L(gUlP(oekXg#CBBy~G^I7)`3F1nym;7{Ws<3a4pa**(r^8%5*MpnVQ)c2bwDIi5y_f9yoUV(W(=F8lT;|DHr5CzN+eeiE z#?k9ZRtQVz(K7EfY#Cs)nSQYf(1I*mpQoJ+X#NNiAPNUDaef2^Q!*K(mqh z^UU-rJkp_INu8Xzs(#^`P7y!3*s2q~FZ`~6*owbmjhx1alG7GxLu$v#jA2iaEf|!? zSAXcXkn~u8&h_V7gCY&H9~5%GlWdRl%cLH1cmR>o>FBe_5tFOigkR)w3m{%mgcRWv zF}x?WGZDs_xGNRKHSLpW<=D?BXPRE+C3uP6qItCR49w*eX*sqYG!K{FwVIbpPe7RN zu^%0H3jovT$~A-u7FECpb}kp`uRpMJc{_he ze*j}DNSIXrm-Pqz)%pYWQxedv(jPF{VcC(hgL&`aggcs+$Gd2jxoB#%h&IMN~_$46O=}e@N@-43L01?N%D6=ibo!_ ziAL??t3BKG!D!k0Zg}Lr2L;@R&7$)uCIU>(Lwv9Ng;RA+=40xMYDCM%b9i`6YM;YH zvq~tvV(w}GE8Ta@lGmDEvn#Z|<7fmz@O$Uwlqfa%FXCWSoRNs%punQ{ z?5bMuZ_RnPpYmyQ-qak{juB0nYBJ!)SLJXy1tS=`NA zL@hd0RjjpYoTT$+F-HWTt;xq)svu5%Gd$m!1fgxeidvh?1@-6U$@8k ztN@X`9@YKDGO91&#hkZ>%23p$3294n0|cRWSQFDH`&@_*mR&7#Bh%n2!99 z`BDpPp;c6A_wRewY67OA?x!h1k#l4dcy9wPGDIlzi$RSn*PHd-=Vf=$+9XmA98U|5 zw+nDp4w?X27xLp^TW*}dPgs`vemY8~kFRO{;-KB;$QR%LNDbHKN=b>ss)uuc5@xMX zHd}eXh>5HR3u}PS8V_$A5s9-Ih?+1mP&45)gHvCXQutKx5njTqm3{0>xKVggH15ob zQ%)11cc;5}cXCF8HChv_hYA?0i|{_(G_J5!R`q276jqFPJYr6WnoIHqWCFVj@Zer%ihES zGVby@9Bw?^{Pf{xXUsqVGMDH?Z zgnJ?3BeD1)KC*1l!Dfk^%2&Qs=jj0@@lHn~==dvD3QY5x(e4~aWCC)!>q83-%dAmY zUCc>2ObW;Cv2jUni`RuImLmvi_}*8o+0N#wphbyx+Z;d4#_jx962R@v-2&t~=Y%O$7zK-<>LnfeY_ z1+75#vGFx>pfpgcJdPKZGVZfq^oTylz0SVROZ;p9+vf`3CSa4U!;XzOSnmh;k&F}# z6?kaCBvc&nf!yu0@`Zdm*l#^3i1Z`@LVxz06#O*`9gU8WkKq-qurW7Rvw3gu<)nA2 zoV2%E6TP1GiW>!wifLGX*!i^c**cym(vCVaR%_BL0)bJNeA^{`vKrX5OpMCf7`$Iu>3$9hB;ai;P#Vr_#Aw7W^NGJ9vvJi=+@0JmXTMLQU&z)U`;v zAJ3-1D}Sc5knl8C8uo-Nq&}xFnhhGcg!u}WX-Hv2O;xAY5H;WV2zTG_+WHq?|Fn*G z-Rye6F-axCWTP=5Ki9SO5iE5zyJkme!EE}0j2MV|-ShAX!yl9Ma3nKyt541l6vE}~ zF<0whqi74NI}SdpLD&(B)A`#QUBy z(MzibOGvhKm_|etpU%bTrdRzfmo0ac$%C>khR8IzPzgk4tAuO znB&yQf}76ISHsSfp#f|_(AlY0!p;w9B<(qDfRc$3RKlRKV{?|P9j$h&OxEWS)((x< zm-o{vHzOsn>t%8KiARAc(fJm!gWgOsx^sek2YO2LqfWYX4E6eMMJKxmVGI4tie(+e z?kyEZ`owp&zgunegY>0d2e<20pe4teM@Bfh2D}+I1~V!+jt|AjToBYr;tUesy}&RK z^G)J$G!PSxRUsZ{r)+$+?iy`H1PD%wco$*t*U7K^NGv~ zW&n~O1^~)G@*oOvlDipn5O0I4d*{}Fao$nFfC{)yZlbES%%Sf> z(m_7|0~?@nkZ}%YPgz|!RvNF40xrHbzD5 z{#6r44)-Hoz}@Kwitgt}q6&8Xa&itYmkn6kZDHMMkZEtPE4#FF9Z{dN+k+C zj*^Xg)g%kU0E(eX`EpnveZ^oh3O>n5NM5mp2RjoOC7BpGDa9pZJV3gzqNHg|%~dvv z*VQp-zL_6;tui*OZE;O&uyrzLP*07L*a7-O7Y zTo+0R4q1EvcUs9!XVetNhb*WzxB2AZiPPpJXyr0fm5w=P(qoh;Mi6^jqMjVFLKdVl zBQ2*sl)QH|6?rikKI^Mn(lAmHfjn~i6-`X)s*p}JAFZKQcgwbv(0!ZARH*6?pqW+ZnLl~0{d|N{&2A81N z`VOe=YLYX+}ENZS;!HRYVI(JW7q6=M40aUi+Y5F#7tr>loX&kN|CdFJ4 ze62WJhXJuU_(lF#>#~K8BQBl@>Pt7)&Ge?7XIi~3yBDqUd_246Xk(8WsjYm&Sm>{5 za#Ux_+K9CyoTE?bb%y0MlaDersSb)X8=sabse}9q4Hk^auD7eqq5a)*H*#y;QQR#0 z;cQ0HA02+-e2Fm{R5%Sa<(Z;IJAf{oJ{oV=YiGr=IqYKxsgXV7;1m|DzI*0?K9y^S zaH-!qm?p^2b}2eTfp?M!jG2Bo&X&UH9c7agYtC^H6y@;0TO}c{MJNVXj?>b^cJekz zkIKg@9SHy-h;11lLnD0ND{OR7GQK!}slI5{knPaB$r=U>11jQ(Bh`tFQiKFK9ys*C zmiO73v+ghKxhiikbgrc{BF)jxaAe+(52@$j1+UvgNs|b~Y?mY%&@Q z<~eDNy@fPc5hK6g!a_BU4G{XB8}W^d$|ARA{FKhD!s5nNwynb08y{dFn!1+{vMz8t1XMaareY?(y9B2Y7oE12Yi@4D5Yi8c_510@RJ;S;rplTJIp%_EbZd>XGA^R0eLmCwNgLH z3ujQ88A4kAEmZ}N!+yt(`0eE|sDK$Pc~-M_>_CeM0KIu@lW%5X=M-S5@aKHAAi=~H zBa_8=fCowKyw_U){r8XVqct|VcHS#C4u1dr_kaKX(eI7lo4@b={^s|C-(UV-`@Q~q z=l7f6-@e>9ZCzt;c#F%2-_VoDXN-$X(*6xQakf?#P|-H8y4D%4H*mdV8A=FZ^@N3m z9;KXI@0*zfrceC-)rXaREO!8kA1xObQII@&F1#$Kgv1<>GaU?e_n|G8vB$F7ttx!) zq6>`JG$Y$@w^w-7>{qW}52P)E{j2VIZ@|u}-P3Q1L|Zq}l908o*7U7bRW>m(w8HF|)=FAr>dc zB!V$m%FF?r=&?CoAwH~GZr@l4U!Cw0M+#q^rXr?@dyFv{f)ii@hOGvRAU7|#~cl~TO8+SK0E-x=Tmk&Fm$?3+{g9i^bc(>lVI-8x7W9)X3O^!I&u(uS_ zfiQO$(pw6xuIHD%XB*V@_l@YHW<`h7RrOiFsAxFdSbwV>W(c=Ol6aCrb}xG^)UJc- z<|#QquU6m5CFmL$>@BHqV(8|+Bmfsxzvlmz8G&W923)Z8+pEC=o+CLJdA^xt3uFaHFic!iB2T^XcyR494aC~e z+Y9&$zOL*@1i|mFuj2-4K@8~M^ZIUm0pJrotl!*vKSZp|<~VQ7=$PpL|NfXQQ^;38 z>^<|YNADYPD!*#H>Fx4p;~Ph_$738BR*iO8{2@APfbu+5l-MI0*jpx&I-clUGpO&% zX_e?NMgr2bka9NXeM5urR%}Nf(5|cO^Acp2W75io;R#kgcT8vKmQ$c5C@hZ8Xvdds z0Ai+6IqQCa${L-JCPl={3^cjX?j$Bz!YkM8H8M4f6!&zR84kD|FWz#(6GEd?fuh5P zQb8fq#4*uNrf4DnYN3eMzJg?-=o6X#&b5!%jxpjmJ`puJBrq|5B1gLyJS*nib5k!J z!%nrX_2k$Q(ooxpF`(xnc&S2pYL=>!dg{A#Jc93uy*RZRvv!KA-W}`VSMo6oE!`ub z;q4x)0d=4rYP0^Sdv0v8!3Z4gCmD$(RDml0zsS)`FSj8;H{Gj-^bmVeCb3yWL#xjnWQaI zGW9Cko#MMG?~L3qVGGV4u|(W(JgnUI753v=lA7e;Y16UdouddYiCsn${0`^sRft9j zc8ObIfeedp#p4+&YC${qj(qM%JJohY!i5`ee_16(I)0gHT`5J9FO=B~iP*OLJH2gm z)OF^nR3NHSVHi=+R0UzMrQ^SJ){R*O5S=`W@t9yrgX(Bd=aEOEz*{_ZetxlEgGQ+HejR0~a|J@}1 z38L0-DQg$zX;^%{dUuF(;#GC|qX2Km&B~NcH)kRj>Uj3DK7%Uj4r9Furlu1030J} z{nuq)EX}o&#ad}ksqk*x9)etghNndf~40 z%mGicE7O&p7?^mVU)|e8aj#$9+X%SVuicx5FO4ZTbp=h6**SuCB!{#QhrdBkjPrO%*xcRHwmgMr#XTY| zwB&=w3BY%9;4d;$N>8M?j7&_Ghx=BH$MbB1SNI&T^NxmuCz=Cl=Wx5E{y+|F2^cf} zizHM@@lLJx%2c{K!RY3EG@lZ32+z>PM8oxnSb_DHU2>rIMHwE?XGBtM&k0+3Wk;<% zm2M|eW0vE(^+PHIU&sjwlI@-A#nWEvG5f1@a#nppv1Bg%7ae^?oSN(BbFU*FV#GS_ z%|-xlFvKDWj>&d)!)@jphsciJL(ndTWg+)ifj+B25Q~ zU{EN=@elf(CRKw9fxfurnkb!tzR+2GI{A*+i>!mnY~h-tv2zWmY94zP5jUf7)4HyW;jh>|6g=H= zr%VG^$%1+N2-V=IlMXmj~DK1(mw{&@IXOg*X$74Ck zBpO8*MUf(7iln({@$%iz?_U6Vp(t6t&v}x|VmBIVp-?CkYH@owfkW~IIZtwsNC-Q} z$!T@mE9UIqT{zg0IgThe(3bs`+@%C7g-W4($(by@86o0Y5BZ}XL))G-fDQ-4_&2`E z{B8P20pCwwofmDsS z78smAG=v)au#O5&D=LY`HH}0?+zN3mWYy(Zgr7WJytR58Mq9OVeL0rw0h|Mre%4-l#%+SvaC`Gp^s*f{ z);_eOckTFPyTZ4(?f8QN1w6Ok`c5r+L-Cy&4h^DTe7VDazkSz;{-S8~Lp$COY0NmU z_+va?*1Qkn(Bk&zrg*e=BX;n@y|Yl~MQ{^~^7Z0hZT!5WsJynA7k_D^Nq$+XASt*^ zHkhL+&SkL`)v=5VsNvXQ#ss z0fFB8)QP3O#YcaRriV3f#H9n&`F-`ewEn*OKH?Pu{hlz)dd;{1(XF^&H#m{RFBhN7 z6oc8QhnK9&5DURY9xrwy!q;m}q`^c&xYwFb4&rIAd<+%1FV#YNKQuNRZB9D7vEfeVCnqt{Qq{K`{@z6I`THKdAvd22-_o#)+5yruo$_>|3MUdZ z{cK;7G!m<+HwQ>Un6u(DV+!pAKXSWCW)#{7Prv{E6pmG)AdA=D>U4>MB*4V)a{&Gq zm*<+*D}!fRx%&S5t5DI&Ln?C9<|{f$DoWwi(KLQ6myyJVO;6a9>;nmDkXpkh27}I< z-<%zm%@}uA0F4YdLxgj!Bf%O-qgb4_Bz4M9mC8r?vdC89_E+ia*`;^VU=P40FKn8h zdMFYR$iZ(h@+rmg8xq+oZDUHdzOepfy5YZbj}hd0)pn0|`Al_)S8>NU(U_&py&XT- zZcap)pc5pWK!vH#APPOQwMERuo!k)m%foi3Y})Z# zP;rv*@#nGNzDk={R3Y7N#6A<~y?BNzpEQ+&BvS$(%?UjLG}?~Fw%HQMaz@%k`~?KN zA0WPFc=|o%uqkyY`O#wQ3k)qxZvbMR>-CIoB8Lc!?%7cnCO6kVVZ@%sj~hBLZx}!K zCb`^6vp2~Gq!YxfIv{Ps5!+<{u`jf?2NMQ2B|Y|W1BIJ>8WDg(>Xy1l)8 z-6+Wr{1EBUt9a<{ZK*#rCMU4!mTLk`=!kg10g62JMApuEhBo#1vv)xln0}cZBjYYc zh-wq7lY_{Wpp}{6fF8_s0H_lp21QpBA|io+x3+ad@0_9r2|zMCSUWq;OQ)E3zehm? zZOnM8(;tUQHwZLWf>1m$?7#8Urhf7CECRs{yCPm5%$jJ=>Lq%0N2PC7;4+&sqI*gOO4EtQZ!NtCN z7ft2$L~6QM85#vc@&ft;R!OV5BaY5@+>l6PcnklU&H+wE9G<#vn@lIAfqORx9gg$U zcX$9Id_wUCF-*W*Wkv5C8gmxI`!F6m83bXG_8lE!(47sX!^G1hcWF9QXv_E#ZK4g# zO3d%q)mp8w_9G}#661lWxp>9_6AY4KNpN|H>s#OZeDh%E>QxW5upx42r6TcQjs%+T zRWyv9t($jqfiS>o2@W%$7&h0J5to9TY+gmz(P?xNT}AK3e=xoLd*7;miJrzsyIVB| z2Bml%|I{W}L1VKPeFOzQ#F`C$WE#AgR*ytlg0ccMC!*0BQ6cU=6q=dMyxD~Y5}UZ#t)S8>hlm~$Ve zGp9?E3^lgJu&8KXSZlK;20U_NXtOk!Xj{Mx-GR@#Y>w=14c}-($Okgt2C~c1a^k#9 z`_Mhswi+@5W0yK3H+kY-Q?$5SFmO<`QIzc{a?|1$@cUzh@yML+6CN0RGbZ^PDpuKW zRw-jzoJxJ?r*`Ye_1gNZ6IbiC>co*o?uPfi>JU)jWoNmX z3+r0$is-&dp02FqsVWHvtA_#XSzI=u&odRx_^P z`)Xr{Wvjifwktc&CjzPGULdunHT+{c`netb#O+uu!s5{E7dqo1<`rYCq_{>1j#}Uk zoujW5E`cUH8?x#7X%Y8iIO2ga^=G&fom&gP;~OSZkLjt5=X<{+FE(rI>@_l^&8$P*MFgA9FdjPC{L$tqg>it*A76nD;~wT)=%k{IdW}n2fn-?zwY_%hPT)YG=jkJ@+BEz#z4SyWzSBLGoo#({d$-YKWhmk&rbJhL48~jat&NS1=JsaP zMuEPywYk}Jj~DnH8FgDb&7Gait&OPtaWQpOY}Cno+8vy$Y`wnQ;LL!x3@YS(d%M=y z*oaOssd~@3g5ME$if8TN#dvgP-y5|JimN}GFFjziH^iEGx3;<2s5PQfOxvMFwVlRB zqe)eZ>G0-iJf`%<=I&ObiTnTdS$A$#Y&EvFHXA#U2~?+Dm}={AbF)FxnEgs}zj||f zXLn;;-f5@UB+$u?jm9=P#?uj}q^s`K)wQ`>-`$~hl4pYgAZtd1{6^g#?B?LjeZ+A`?OAfK+kHmjarTP_G)+9J+tbdsrEjzxdVBcwVjQ+D>v)5T?4xt z*s9cB12X~JK(Vpi+-O3PRh^~UXa%{A-OX$&Bh04G7gG%N22A2+V;3w@`G6c-yStl$ zUAH@#46v?Ya_U>ms-?`{-?)Z%>znoHY;a)>Zta3YTU4WWno8csXXk#-F`#KOf~Yru z3z~8r0mMO%`o>lSW`HeWjerTe01e>|SMhG_jmB1UXQP4N)=qymXj_l!yR4pb8Cjf; zr(+=uxW@W8?~iBmP*=0QMdu@7h6?dQ%^5t|Xf}31mdFM{3w2F}YqQzd-r8}`H{Bt) zOMf?NO;(N)Z(1RDpHTKUXI(zC<~Qo}pg*1mxHWgSH@MWtMO}NO*{(M?Hg`4~8(IrU?IF~B`ZF6TsV^LjUMQpK-wznES zF)WEjeWS6n>zfUTNkXj&Qn~V4DAu9vohFpm_s6dkW-*^UNAlspLMK>Su9jq&Oiz7B ziFnW!F;vqRo&Z28b~TklNV!10v9Y-YAq->#*h7IpS&03Zxe&46s_jJbqP4ithTwOB zt?lM^v(fM$tT&As#Vp@=>ZnMg!Q$E4_NkM_bix(P?iMtfJ;!BD2uE{wdk0(y$qDJ$ zsqJiU13jO8A`ik2dA2s{V1!Fg3B?Au*#tRVx+4}2r(p@}+q6448>NT^09aZij^^?! zdI3o4jrtB!t_zH&Zl-wJF@&r&RCL_ww25QlQyRMw+BfaL#$g?^6t}=z5IyH*iv{sh@DI zm0&tcZ)>+6GtOBhBHa`Kt@xmZTS?p*qh8LQ<_=lAq97?*5>9eb2-Z*{pLoERudAi zu>}(WTyUBrI>lnqOBb$&A?T7A>K&MwC9h2~=ZSO6JHv?T$udv~k0UIQa)+Z(9G z{d1Knozz_TAipJ}=my@_ZvHr`7}Jcj;e~l!yY3@Qlq6qgz_Zz9%2P|RCB2YEJ}xCN zu7tyls22>FnoT2FD^L;{hG_N6L*yF#NBWq`P?97PE zh1R39BMZNBjPjWemJ}5bW_`hml!I+*X-EfB2p2VFBz!^Ti(_DB7)zr~K#w`IMl{=x zhv9n9Tz4+Q+X7YBXyA|7vpw=QH@Iic!Iri2DcnAC{NBSMkGuk`%!_)g8fEOI&{d7C*W;QqAYyo~W0tm} zUo%;d$ipQU)~RE$DG=$DWGg)wErKFA@o}9s{5+cB2s0=hC#kNZhP)QAj+@i5u1{rL zfPw(_=oZRa9yz6>(;~#0t+*QnBm- z0b)J-=!S9(1;L2>Q7B?74y_3rkge?t#5d|(mkk8p zU@P1^rNi*n^HVb|oYTADA?63K^@f^x5eS+j1Y z0!c&T#U7zSQn1VpD}_c{fg=j28RrU_ys^Vxoa(omzvaDZ4+VQLUtU8al=yki=L7433= zF^E5PP-dRDP+)99fQZ(^PWff;-|d5cW6lx}TK|JbRmQ}hQHRUgIblz-SMPIFf=2{C zW~jvvnt6ko`bt0tPKjxcOP^lq^8X!wEYp;bQ(4nvZ4LqZ+knA44PIJU6}{3v^bRip4twS5cXw1&|v7({}3ukihh z-Wof?0AN$B(t8QC;RcAkOiK~|E)Z-q`&=nujHw3k?B8Q&qS@iVBR%-Mvx>S<$0z^1{>8nv)>sg=mg{na&vb^ z_#-4UY%T4fW$oRa^#`;A&Meb(Wu`kYhu*l72~N~97*R76Q@~MS)Fvn>Y>;Ebw#}Nz zi1w{c$0)+yU)d{yPZ(ZH)h+E#x+EpyKauJ8FYlfyj{!{CGu~(J%1ta1pxd4Q0B!jl zy`8VsAM*KPKaLmEoIlGzCbE69OuoRY!ElI>kuCo0tL3tJlj0-1d_16}WebJiC;DF- z*ehl71r8t9KcCGPlFrh-jVMDV??;gF=U$H;Wkspl7w4ey=M0iAPoeE@Kcf?C4oR1h zW7yHb&SONzn6`S7UfhO~IXuY}yt%hrK!t4glfvQSy*1pzo}{>axwmW|_vFY#TW?o-hjTHF5(KE-EREc%@UNCmEt)-_F z!%~-&^woU`nCd^~kX0o;wk9>Ycbn;1C;o)FV~ZoeNvrUP09dU;4aKD%?D3!fovp#^ zu19^ne77#%-@MFaRPz#A^~r_A`@s(2tv3>+S%_1g@Us%WI4XE;k%3V@6OisJ{OZv`0mHncduIC9Tp_hAB<__sPI%ro;RM1_w*XgWuHh0GWU4wI!phOwkboq{H00$(x5%70h+VF>Hv-LmzMZT z8~mky{!(=Ti=*_Y7@v2lS@h76_`GZ4q7I_MpjU@8N)#yO{9E?3Jd~8%lxpVDgabD3 z6PAZdaz9|3xZjy`T{ADoWSBc&H8XpbKW2zkmTPe(oVE_Kfv<9ZxZ1TvGeN|wJ*}%D zG7uul>1r)Q5^Q54`fO*}X(VSS461Q31>v#BV~woTk~o}SSN|o8@(1oDq<@l<8P#c0 zb6ULU5}i-^BcJaXD%E&Y;6S!ig2TEwqmi$Qo~v_)WDOrPi_{U0_W@1q@;;&=B@KLu z&gjkIq~E>O8Mbgs7BBn;(Rv29jv}4PU{d`x=?YZ^q?m`*JKA>|w2VBHd@~Hl1JiIx- zHCg>z{Yas+D*rdahw2@GsP&(Ijvs_L9w7*C@)gt(N}6<@wGiD3PPVwkM;hJ(Q z2i$+fvcBjz{J-c#H(`nK0lKh+ex*+r#Aw>UAo~l~uEM-iyYN4hmcM^~f%erYUkz^V zL$a1IY=LnVIY0pS3TrY$49dpmSp51jsvuKB+{Xwb@SDz_8b_>kpbnIg5az4!^-(b@_4yPo~Y!>e**Lpa8)V0So`)mb`Q2qZq8dd$cq%NFq(xW=>S8feA+C}bMRxuN9H z$%J#?rU_4{mdmQjWDi?xW@BozaWE|xr_2~YZB+zbf=3w0@uA49b@u{xT2+w*v0UIK zEez;Qc4O9y&x;mpD>rV3y3a|PA% zqQx)`aPgnc<31HZ!YnWoo=>>(TPEkHj&g8O;V%M38;rJDz`ssvPAji8Vn)m@ipUa% z7v9|@Vt(!CLl+r(!M&Oup;`+h@kAzO5+gHoWpUe!NScBx!uuAJ}S4k`w$e(lIHo%D#T_t!Ng}70jmb%2ep})m(tp3nXSNA@| zut;be?n0FSMYn#2i_2H>wX?FM9qx*WNZ=lN2S-Ol#f|uf4On<09QzT-N($(DeEj7L z%gzH|rbE;5AbW=dLFvS&o%o~^Uv=WcPW-+TzrdemCw|?DpLODotG40~%#L=FIhnX> zdB(LJ8JVIvE=Ia*-STuTQCRrcHZRi{;wkG3WqsO-K&jIXgPzkc$yZ7~WP{IDfu9we zOdlj8YvE-~f;%*Q8VXfYV!Mdu^Wt>f(#_-<%YIUi9h-37iB3BaEl~eqC!zjNh!I88$0j~Y}UcNCsz~kLdaHDZqG3&1--$5374&H{2YvhO^>PW4F2)ZERLINj9TGE@HRE*!$X1*rWAd2>hK;&OD>%rkC)Jf-PZe zfoA{<5>o&di5-Ix!*HZH^^ejl@Q*&8WUx-OWR7C#vsI8_UwI#soIT%;2hk-wb}>B*Pr8q%Z{E z9c3DLsOv6xklKtga)k>3rWK>T>v%2HJ5CgwM})Zta*^1F)q3Om@2gl`h=dUpyi!F& z@cZv8RTP>DwK;BCo~^B=Ong-)^h?RqZlOfsdMN>y^m~?N0hun_CoM}{MEHz)BPwV5 z<~w*BLOA44PSEm5jpW1~r}cts;pByzsaxlz^sG*~aBQbkc*Nj0oPkpEpazpblj9l&7*$$VHxVd4^c;~y-CUH2H+Qcltx2XzOv$l27o{JIuG0W-vdMBro z%jRELJTZ?pFY#&g76}Q5!RMWI6kfhWKPUbAPnQ33oz!Yw64WHG_U%jbQ&Rr7Z25ns z{M$e8=HGtGj_QBz92MDI?`a}egjW2!2Ki4oyTG;)+AgQh6-eJBX&Ha=3r5;csmt@k zuP$d~$biuJZ5z{*S+Q&$m2Zatfu1Oux^Z@}0^=ACfHSq#U{*Fo#^E~(wyRY!$I@kheFGu=YamFEu+g>O25EQ&v= z){mWoqt~5v82M-Vd)#_T!u!rTEdC4qJ#HP6aMD?a`M=U%&PL&wr2Z^R+R{1ss}uh~ zM6u$VPW%guIN^nF!E;gkS$#MlNN?zYIbAU8&nH?3s0>?X?P{2GIm$(muVR-klFn=BK& zW?Do>h2&1)Sn$Uv6*IH)2=LXq?9v584_Beph0uj9RedTVT}{>zadBA@oy~`yPII^_9NJqlKFt5-gU%v56HAEfX2s*k(nV_? zSH#YI2`i4}p3ErZ$1MDv>k@MYH&{O_tr4$@n+em$?%STyk!zgWnTPmKT)T)m(S^%= z?slL%a!=PMrL~D9!lkMUaEv8$Cyb4stCuDMkd<;ual{EzDoz=?f={lt=NwDD&FldnUogm?`j}CJ?6DxtLYWVz#5P9)~^^ zk!r`M@`xW+6P*uO?Kp4IJ>+oTNz;cE>5x|(RYrzz0~2|4G>CL?UPK+oq-Hw(us$Nn z71>e85b%o5=&_ylah&!M51!UX0wtM+DIIF>b54Ppwka}}{Bczur%{_ecB8TDBWAvt zsP12%qeJqu=eh~;FJXS{HJu&3K5X1)ZiFlo8?<(kBOFH>r*A-fcvTZ$)n%qCZWR5Y z;hSViH&g+!zJxh~Jm_Yw7oQQy4g!Qta9&w}iiE{3)w$k7 z@B#RB!@gTX)*<;u22GNTJND6K+_6Fu$a`)NE9dt7DTZ8uBtwwHBM09=oxegYju30# z!LUU5Neb~3#B*mf=W|TMg+g`QBsWpGtGl(ShR(>BrG()jNAZ8vx*^vL+l%bJ4Lfuv zgQ2xCU&X9-55!}&2ngf379aE?z%j#D-Xd3ual`^$dH%9mjTbV$Bat#@=jyKBj#@Pk zCz)mh6WuAt2ChWX(#E9t3SK$RSzJlrnwJ^hq%vmd1@{my+ zNwQViOOCN02N#QZzdgL~rizo!ubptx`L$z0y#L(lle^$>OqdwDRFxd-x%s;5D?O0* z-_7bC3>>0oqzTCw=)-@KKK!SXoYU-@?b&#wb9Q@`2QRMKPLgBVNqWGuf{gl}HYs|Q z6up|-xc_!*+#av$>mZ>UJuGrMzVp!-{aDQQl0}jo)8CRY{f*1uI)Y462Z4V4S3v;#BNclZ7t{Fe0KH$-mt1GO?=4OP}s z9;znIF>dbF3it~7M={`i!8wNGyuXHp;Ng+ME@;yu;ouWRPYjD{X0^&UA*eb#NDKx3jLEyhNak=FBeFr>YpXR29Q4`4$_;?6s<&8o1bI zv*iV5mHX)zL8@^fqeHhX5s_BXyadbWLwM%6!yET8Bj5a!ruUD)f!zoNd*F+?x$w|0 zKtsyw^TLRsnS%+i4}gtb?s$K`H^+e9ThAYr7gcT*hThq>;6a2L0>VNDD!jkAt!Q{1_gTk>B(D^V}rn{!ir*M2P7u8JVl5Ty^O;w5>j zs<@FR-M@gY5A^siv$KHjxjgF1Z3GJ@DDscELeK6BbH+idX+69Bf zFu=JFSkMKBjZ02%xFAu~)%D_*b55zt32E^8xp42=jCp4_AaP$oJWu<`Bqodo}^Nk%wy zh6iqh6+Wn2S|ZlHp@vv4cjV8+rbWcidF0T+%5zj`^|}SryZK8E=^HS z_sMjx#Gy<92tQ1Tv^_H=Ivxl1NZ1*-ie8$oiKW>APAiMMrB;$tL2_-q<#G;i-N7A$ z|D<`>NEV5p)oE<~vlIPKC;E3M8sV&U72}U<}uSSql-(! znWoUgVy|1N2pKiRsy+fG;{70f1}6vV$Zm+?&cLE{F+b3ac4EBnQ9QK;#(76%KUkAEcl?Y0)oL)W3;31GrW&-g%&e5%h3RwMg;i7S*rRr4gX zN;04htGOXbO#)v{4fS$YKz+!Dlo^mJhXh=#ROJzr+4HEASH@w(B1b8DjO1O&tkwK1 z_=i$37_e9~hNl16GK9r=;{7?P5NR}S70h{hD{P`_!zuKR9e#wFpfSrNJZ2X8Q++1# z0nYG;#?goh&vO2v??N+=p<&WlR!KF6iq?+Rpxl|(z-e0qdlnVwi(6Q9Tg6|l>}qJk zclG6cT}_8TSLuGHtDz6Rt5!|6tA1da)|R@OEJ{t`qWa4h{N{1X@mN!|=O)kQMwhFB zdAY}Whl>G~~J*LVQCyEUgx3EzvlSsXM`QNdwg?d)aCY0~xy!dtYEKd2MW|nSutVX+9g7B7a$;fn*7Bj<=-uuM+-kQ{sc1P~cSpuOkH1ZGAHd+IMt zlByDM@Fyp8YmI>JusS#fou-(6+dGF+go5Ia(aIXwMO(f%Zk_eL zb?tG2I4XWD3E$xPILxAhvonq$mAdCYION#IK0d%be2eG6&n>X16TXWI=d;x7z&l=Rqo)QU2YBk{*~%3~5|CuS0RjRpTfc@e zN6F#>FNO?LkK?jQ6}q^S&}i=yM?1nT=j`Yl^Dkf)UgFt; zV`9`hSj0mRhB^+$@vPO+Ld^`w^}r+q$yIA=Fs21ThpzRD35_PjAU`kRQBM|kTro|# zhg~Gz8ZY7-w9qc&GpB>r({V^H5wSW_r$^`WK8k&!M(3QjC;R76kn<7~OaG%8`^qJp z%q3*z8aS}6SZqmNxdzD7 zv%RbR!-JdntbEnFh%d{Bdm`ZPZGHsN_wuNiTZw}rkvAhc#~*+b(XWvLl6pHn7UBEq zC9cXc!f;z<C!f(t6KzigzT8y-HBi^gNm1fYeGbM?Fnc zUw=X|Bv$8PMNs4g4yWCq5-%n_%d+^ZR0TLYzOm}ba(0u{JZ52Tyba3kyJ|&#Xo#zzk z_kwv$jO*AL4ImGbcc4h?bG^4}^h3fDf{Pq{?eQTN5MeK*gAcrza3pcVB<@4k32 zL=vJ~&8TpW+s=H?;)|uW#~4)|1^O)7=qNG>hGUCy?@?l5L(DzX5&;vt2Y9^hw`ZI} z=Hr)&KjK^rV$ZbxXYv1hCQ8qLi=T-c^WS1=9SZ|FVxE@{&KIq-MN7_AowgLUkLOBV za_Cw*xLFX`&|p|lbLdvvE=e7eMeA}=vVML!UV^$+6W=%>uDtZ(E}alnK*XFo>Y5Q} zeeI!LGq&C@BJJzx`8?r$PvD0-i_<~I(_`}Oif?kUpMWs=@`5j1M6LMpRP~u+;EIp0 zRczRvp>WlDhQYDo(0t?M#%JjrL-oAiVPS?ylqF%LIGl5$9Fe-K2Oa$XAS2ZhR};vAVk zm9!g}_AWkFxxm*w2cCb2fwLT^o-$g@8| zEj_p6=;P|@5|)B#fI05YpUzohr#QN=65uwXug&B>2moFDaGd&Vpp!AIN@Z zK_GtSzQMzl(+rD|;q?>M-U#a@=ZHW(y%aBariJPh9nsjlkg!}`>gwB6 ze@2+@V398|fB(tAUl$BX6oXTN&h3mD^-sI?} z3^^*lI*t*dL!KaiGw8KFz9RYrGM%SV+Ql#l(Y<>-an3q#`!yrl#7uM{wOT$ev zO4u)!%>5g2>fi5)gUizO$N8PiQTtu+B)-w8*#%sC{i6NZ%QcS?-yq;-y8Q z1!4F2sB~d($Z65Vvc}II44=HVL!e-+kYm*&jz)+>2<{g5BnIgliBzzp_#ASC!8@Bt zl{i4!M9gnXSZ8vl-+7;|3WH*Cx<+NYk`mQ6!?jDNN_$1G-KnOd_Hfc~xA2Jq-6j%+ zZI#R@mb7eSsGt*po%rkVMOc$3sZSWUkJa{0_Pg3iOPDd}g1RSrcy}V{%iLCgpCdTw zSFbBQ5aF7q8=h_=+^XEH-ITA_uAzgxOxFffuvX;J>B)Uyw9vM^K8bGD(2Bp- zA5}(S#1%cfXewaVda>`H${`7vkeXuCI74`GU3LZP6&xSYyf%|F6ZBBabnQ}oxG|L$ zDBv{@^(@yp@FtlW$~uMugn(Os^>kY3Gcbr?Pe{mBjY%x`i zAWFoi7pn#b5y=fd^&$aK#WE(qm%47QO!QG4A((R4tJ&O1FDy6W1H=Mo23@NodbmMU zKw2f{FH6V%l75X77PN8&7bV@;2NggMeQj3S!|@`>6mZ00sYeosJ_SwcmLgk95^hsZ zoJAp!Y!TBMF6yqUhTFwnxni$W?BR!gPQ_{rTIL#ieoLYFzOMFG>EweU=;^32oGB$8K}lKea$AemoUJAZ5ny1Wm8TFnDol3I{O*cx zKW%`I;jkTXm7K?2r6M42!&$LULWSC;t}ZzJSwiVEpKiOZ+;O#!_qqhF@ob#&#>bA+ zTzHZU?ID9_?D830DH(40(-Susc)yw-(+AUi8mA|ywvXB5?=w&(qHT@@NsyjF*rwc_ zCJutf7sb-r)EG#|J#^Cj1q-*Z)l7^Sv-61*+o=gDC=i$ffq4mSgA1Kr5X5l=Ku9|E zv1ROovud;yCu?{WFj7F&e60>YmDO!fJW$&p8T*0ku zqJOIiIbw^;{f9PT+52i@d`A;**Uh5J*qS)cG$G94G@Ktrm=4Q+9j_JS+Pt3nc8#U3vy@MO+|6pntK7=&PtwIv)UP%2Lp4d{u9KYTUq?6;6<5c7V zXWm^Dn23Djs{e2|WCbK0#xZ^BAcIsyD`P8r!L+ZqlF@^Nl!Uxj-h!m07^n?lS>)jZ;jeq%PqR-`}$))yH?wg2oTIxV_nf_Q*e-PYnmc2NlyD8O6+m z9Ai_7Skj)R?FkD112>+7UkWk4dSEbdfCErxvQmv5?)G#_bTeu?WUjSzB8mU$k;^7h zD>(!9AWE^kOT++0I| zT0LV|&=2?5QUru}4pO97HFi19ITTrzs5%gJ9Xyz>`=^$4#)nS`^2d1uUzyme>JZ;{ z`PL)@h`^`L^6A;2mO)I=%6tvW235+2PT1p4SjtNWo#b;Moo}{o`IS_#Fb04-&_PB( zTQ5()1O!31$|9-SVA$$xT}hHnF9(T8cT|+`W2`z7kE82zOJW+vhW?EFHd#WJ!ltPs zdRT{2EBcthvin$3Rvx;l5@G!lDLqVHR@^cfWNOJx^Vne=WE7(2MPfr9bINS0?vvYt z${>QwL1;{EK&RsJD(6M_IGf;L9Iq-O)za1eDHf#)o|*k5u{qgnwNGb7#HO8SW&4AJ z!5x(im<8miYlNNa9aQQq49F*Ov4^*Ub7JJdJTES=8;2v*CWE?ISJo(J+6??I>~;Y# z>k=jm;ek|)C&O&m)07&>+N3gsQ~i>;Aj^ozaiGn|NZf#cd8vKSF8l+=N#Ey;Eb%9< zW7;jtZHrnuC@PwfM1zGv5QI%7Nx#C6O|!MVA+y#NHWo(-hLnp+X@F ze(9nF=xc$tLy59)$B13DE)(`;h91?PT>ujb1-sQQw&Xpnc2-45LBYvgBPMRK14$gA z@5QRQu)~!fuaW!-ICil=fyhscN%zKO+~7!sW5Q(-_cQ#=+$(1?E!O&8-zzp{@}Il> zT$vo5qfkjHa#PUKRWPjAz;WDw?`<(09W3GFF$`L~(3x|P;XiC?Wn|?E@K*SA%yJ+| z*t4NV)9F}+_$v*w=dDY3VXfe>bTe=$V+%$1FdUt(60*qW)>&FLgAZIxM*s7^4reew ztKoBB5#;b{g^LW_^l+sbmcm!9)+wa5=~mcfP61&yIO{sKgQPZSqjq9rRoMLf_9Y%v zi(?2!E^7uo&v>R&fuc|G5_0F|)dI4LGYRtn z1nFoQmIa|Lmq=pe@q5%Nc6=KAyiW^wiOO%{vxF;m`8DB29g_|-ea-9_VFAlWf!mS7 zSTpWTzC?wyZm*4Rze1}$5Uo$4HyaEIo7A0W!&GKr$8rcY3Sz9i082anIw1J5D|YL^ z3*$eDi{lV%+}6Syj!tFX$AxXz>Dupe?F%a>vr`8FxCRx=*3%&~f?{GfNCe*q0OI=T zYH+SQ)|E3JG)i?T$lN3&KqFP`7k(GRC=%n9A zs>hJEy@#c1#xY=y{T;!!+msncFYRG1bOk3D)!>Lj1={tptp1QPY?WENXzW6is51q47moVu zTmc11C%y-vQR?fmFdjTPm#t-ogNE9}?Fh8^Xi&z=v^bXLrA{Cu697WTt@HhwfiF3; z^mRWpBojV$%uX7m^(Q>kkL}piIf7E0Dx51i6$}bth*^44AyKcwLc}T{bIj>@)(|VY zZtVF(0>x;n>@RPS52NSVbGDJKhZUPjIa*eS{;Z9dC$k~nx9cq8TcXr?hAmIX=(#Cu zm%g-;hKwKVS*URW$ff4n}8$O5q#}o>i!UGew8>v0kKjxm}z<+149nF57QN=Q6$M>mWo* zX=OLqYbl8jzzdp{v5J#l-K3a^3RW<;G2a^6`aPQ&e|l>A<53WXwcr(D*<$vhARV5w zSp?~DC@OJNDnWxc5EBuEV|(~TV^0{DC?^)NI5-*~qu&1Mq@^d0@R9?!=4qpdwDctr z$sudy7S7DqIXtkT_+GYMXFtLtT<}lokS>0rkTb%Z_e-gYo=kF5f+l$(A0SSlAS+47 zXala0gQXWly=j`%9tQ{ABmTm`SnEz)=#RXgUdz0|rWH*rxmKut#HCs=uBS}(qcMOe z`&T~#$dAnNh|t*6Dz+hP%GCd{A|-yl4pLF~?aUaM2Go6uKWuJTDeiIk>F3WD`XL>m zTrQx2bHdh3Rplh7aO6Vb>#z#aBC1p8=uePX)@zt)Swuq4`KL1w#5@!YaP!2ydI4=8 z@V6&n8!Hd{(LD_228yh0(v?qKBF$|USue3OSX)37P%0sw+Bl}qf+=(+sIS-;S>GYqs_5c3Lr5T>b*tuK5-g#$4!1yKgAKr6Ihy@0HnLP^sNU{R;hs?Du9Emz|?>|C~d zM^nmuxn{)IM zO6^rTTtS-`8EXrSG|fLHfmyi|PEw@L;p@E8&lam!RPuoCuJemH*jJEVRl!U@96h^2 zPc{TY&jluh|9j-jGSCl4PUsKlW1im~7rk(%PIhtiZCL55;>Ht!D^vv8%)vB^j^68# z2ab3TPEB#xJ@Z~4P0u?}Nz>-kVM+2Cw>Pi@E~J`{Yh!2$7qEWSOHMyOAkH5bKh7DE z*Hd7pt6@FQr_B9~>^}_Y2NGpwZmhVE3j1xcDomRg7Z*Cs5v}BJ1Wdj{hJPYH+c1r&$&57?!xjy zgX2j&IY4*O_!77@6orbel?sc{Qe6!TW#=%f_+Xdmg-hCRI_Kt#a%z($Zm=rhkidOl zZ%At4k~t(N`L%&Dc)R5QfzrLAt9?|oNB4r+x#LQectB2Q?j{$qqFtB007V$b_t?qZ zLlu9hf+~M*!o?yUl>$@;NZM`4Y^{#tVpDZrwFMd^wS*q?^3g`qq01i+RA)XR*10*y6JCzI&?mQhJ6RxYD%pw5$tvTdQECr$5SgV5l-B&8U@JSo3O|1zyKIPWU zIubbjbp6&B)szJmx)RT!m zxZH)XNO-Y;lHYs!SRq|*W*>Llk*l-kInptX4HfTeRR7?Znlmt$4gsLe|Vb00Lw zwLV~7-wvRfSk0r|nUEgnfz0jeWh-bg88=hZ{1yvam?BP?Qnn>z$nqH(zA^!!1$YqU z(3!*-odLXgP>~35blYP0;H_Ae)^q;eR=w*U;CkBrKW?#hlNO9N`PF45;c8&~?~H*p z+cQEInnon;_GIKaB|4Ck;b?bthOvA@ypyN{vbo`$2xp}BKbjCItwdZv4)Ak{Sy~)= zCm!4P?e=vO79EZTSecfW>;cx!V=v}Yg)$9&pAmfBS0lFPA`8L*szHgE{)pv%SbsS1 ztJp-vF5rxlm9+MA*nZ2I#sPD~wDyX&p)|!z4^f!+R)a ztE<~1R&tz;f_%&um)!}@qd+b164td?M4$?rcRLM2?Bkz$Z$}G!Rqv-hd!sK{%?LCFE1>On;+*#1`1WlwIr0&kcqj3jNg&DK-b?wZ*PF5r7ZLWW?Pr_c_#HJ9Yy@>HE6c8Xld3i)Xu zkE@VP_ZQoBcpX>a4HeEX7d_|Sgnv^r9j#|;9k0@*{1>Do-!7+Drl<|aXRUx>H4I;H z9m4~P9@hO=c0UIsF1YwBRBK&Kbgq*jCBRBnV#OxUVpvq5K5oc&Wiz-C(1l4(VKNzC ztpLbBSM;761K05s>Q!OuisH%0shweiT;mbqs$zB1El@WdF0M<)gKaV&|7JdpqfgL1 zyCXowoj?Wn{?C@?YP5Skp5D}J_jSOxK_{%H;;C*^lkSB&8sAjM$sKi^eoIHL?xM+A*GXtJw|470xH8(@+^TPH9@~xAE12q&YyW$sa&7G}!+M5P_qpxYV>RW_VtnY55{cF~C8#}e_ zOh@U*&gRZ;=rL<)gOIw7OxLgIdQ**WZ%3QWT?V!rZPzwx+x*sRjjfFa1K!%K@78v= zquoY*Ym*l1_1*d=aTcRGpxN4LZtjLAiuG@wLziH`u27c0MYsFtsN3-JI#$|gTl?t#?GdyW3G0$HaAk3AFAVxjSZ%V z4r_v_k&bU|HPo*f-!zF7-mGm>r5fMHOpk}gW@D2o>G%c{5j7i|gt**_wzoDL8{4X7 zi?G8r$~5aWD%jx5F8vTGYVJ~N!$DX*u5UDf&~9BIY68V*cV}yd76pjr#tuNOZ#1^I zYdgqkbw3KWq|}9@=V*?9zZENEG}anFg7T&7(PhtSHzp)uJ}%PaZ3;B+qZ!{H4>O!k zQl?82)lE;;v+bZYLbtMpKuMV?WoRgL>+)Qdlv;q7=bSQft25A93tyqlXXH-<9IR>) zJpM|>Mea#*+3pBuA^8I*_{rpUXh$5Q!)D(R_fa3cR-`FIN<@1e&roZuwd#_)kM{AK zhoPf_!oWku6Bz&f_+2|#YNBw${YkkfXXvA-UOC67Mxj(L{82DULtGMUGcT~td?owL z=p?#|4snU}f?fM5|6WTSfM)O@RV;J*T{QsdCld#OZk)vf#3=8F=}l%4(=Eb6VQ7p$ z@s*_`2{E3oaV7?o)bTVX+WXo1(DP61uNQKRDqoT>+^13glWwX$aZYlnij^=cKP_R{ znyJE4I8~*2dKL2E4j`>dDF%~gZbCi0Vcwo1Tlvrq5P$mp_p@=)1FR&m(Vut(6~cUs zX-f~TYwzllbEne+fD<^u-psK9jHFk2QHriYiXu)}%3(-xqb1M# zkfJ=Z@(VYT59vr|m0r2A_98cu7d8?< z>w_ca;kbnpYI}%|z+DIgn9N^gEJbheC-zRK>F4n)9^eY!#Mdt6m-y7B{DoY`U@qv{ zLtBt7zFm7$e!lh#0%iAAcEoSj-jepbq7}ihgiFH_l%Tujx-&E%PLu zMXg%k^*Bb1qOtwx2?%XZurI0nKzo1T{H7HB9QSa|X~)Via6du~I~qnm%E#GH%9RsLMLm*saCftf-#*5IoQI1e2-f6sw)~$;(I=p4wmc%v6A4<$0M&;kR=CXCE#(9*lJ>i;wJh!L2D<9b%HU z9P@R?$kB%5aGK?Id^GA#T~z0kT}ryNLf5#PDn()bW=gf+R>87XRcAc?#x7VC5q}M& zE+CQnmJy%;VY~nPVXAgDP(9zO{BK@mT|Z2}_}dHs+9@FI()Zhp06J-DyX3tcq{5LI zoD&hu@XFBt^x9Mef7Q_;crrRG-)hS6b)esNfzeo#A-aJu9>(gpDAqUh9%idZ?Us zk#KYit&5P*?r~*}Gr2Lsr`cfEI^=^rRmPJpe&pUK@1f2YWHm2bt*5M`_7q(yBz>pk z3opLtt87vzeLao{3N@Z1m1w;~;brf|Fu9!x6v5GhdG&o4g&^d{u57&ShxNC0=Wh^c ziesIga$2iJjdc!H{DV-xwgkN>k%VVHfs?uA+B(hx8Ue-GAn#4kohbnK+i^n2P|tHJ zXIx(gV@*AB?P4Kp<>toQaOx5BzKe0tDUSj0P5K7-lYoXt9*;|? ztJQNEIFn{F%oKbzV4pnIryKDj=DdcR0RCD`mbyLH)7*A_Dvc`-{G|=M0D&xa_dm1& zO;mrx?wuCR+->^8|7K%{fyK5{D{l~A$b zy7MsHT1cxXDMw7D>%D~y=Nzhv;h`SM7| zlAz-Xrfn{WNd2xv&;+Q{x6I`-!#A0Z<^T7=iftJa$wa0VX5voD?zf1L4};`6gO_ff zVhZ{8Jy~G6rfDfWlIx1w@aPu*8e=UqDmic@-J0E8oZ@acL9!+ENKB85AH5Y@4kz$! z|M~OJV>Bd|lf6O1j~c)anJLs|YuehkOyI+nu$HFJF14$8ag{TW&_9nV%>!KFfl z(fTI1?!hkntu)s-ndn@?&yVis*O1IRsd{xEEibR`&3&@8w4nRsYW<_|C1U&iB;G-j&sBc|r` zMReZ2_$HDUHG{)h7x1HUHojW&Q7p1Q&$hSz0jqBf<^vW8x#7_5v`t<#6yF2h@(nE} zc~{8a(2T&7w3BPbwF2|$7pPk?@4(|(%%Xs8oe^I~O?~hJXA>|rOVLaJuGpT<8j*NQ zdndSy;(`o!_c>z1!cA^v#Yn{OhMzx|%fFzR6aNQ6lb8sE_~ZC3>7V3ys`Z>}Ij*6( z_KW1&xplY@57)jy`SWbyv~XLE%^F^4q|^jUC6~WWSqep<_LB~dXwmGD&ikCYolcxa z!8#!;E}q~@D2XH2wAk!P&(xuYN3&zZ%6}VUrKR8!=IG8l*+p~1Z_dAuE$p?tAuw)p zr#@XwGWVD%y|UhQAK2^IH6RsXeum`0`15*k5)w|IY-t{Z?d*$3@xg;@1X{LjBC>>|srP?xT z2~XgrZNK0?G|kRD8r@A(GSTARSeISFlt2O@Lt-HXxL{x!oPiDYG-_XT@j8iTc$tds zjpEldVQP3PbkD?lYtV0H?1iI+y4qxfvm)sqvsM>shF6>wvCP%MN5e1t!eOO|eu z1(m_@u@rgq!OAU~qBSM8Q_g?EQn%$Fg%DYkLb?Ojg5PVV&%pe2nAyMb03$03?!tV4 z=7LjJQ=nPs)lvK`3pDvhk%C=rwG5xk_RI!QVC~sQIY*JB;Eb6e%c?KaLZryVBtGgN zv%uo1e5GMWvKnA$pi293#VVYr?n_v(WXVpRT(b7iaKYH#t-S^AJKN|(4ic~dmvrrQ z^w9yTHyGx0)$>pi?xcoNj}wI`W^NS!40KYQa)Cax&>8O!u#zp8K4ENeo0ve-MNCkM zb9T(hc;x1;O))?vPj?Jx6++<`gD)Ntpd;zvaCxICN+;7^2XX)iV$83)xMNC~8awD{ z?p$|-46taq@`15hK2SVqxTuk$7{!t^6n52{!+W^P-@RhLT?S-K9yz4UbNOAkKoNmd zK?nAGk;{bBcsrL#1%rXKaUj1mjxZ_?aI~O7xQbI>^Jr%!nWlGS!pA*i%4i4Lv|~tS zrVuB#y>%2W++r0iX&xs4GH@S=cPt$&&K4VcpO9$#3HV z2!vz!nf{m|i=X?@pXs;sXT@m$cm2CvQKr8v{M+c`c6J5Hcr+^6cr~Y}Kgt9<$TG|+ zo43cwL<&&stsfUH)TB&9l!yedZbMYe0a57xAF%ZxK~zw+RmA8hU-}uvIK~r7eS5cJ zO@z5HVSrcOHwEy_QPA083)|D_#k*W+ANn3@5!T$EQHZEJ7U;6-enHBCP)fzS|*=bb;F3ADdZT2rrXv zC#6q~eblAl9k>uOE(O_7vMQ`aJb+ouylyhX>dhBis}ut5Pw?G!Q3x;hU+IM0!gC4X zva(-z&j`4!BHd9OAbjZ1WHSwG+uAm+TwcsGob2sgU{86m$0dHrVl;o!Fp6*G zo%QBx_D|c&T@RkgI>-SVY|>)7BR-8)!G7&`?ps~F1-W`|zs6I@oCuCOAZ5Isr8r49 zO|4fs!o^Tlo3|AC?LC=RNklL>4%HHDncYeQu+vux*}!7C&GG;12;9-m_a)`k634Ei z)JTtWf)G4((sir6in~(2FKnYRYiQN@T+wuZ{#f~cZH(dA`o9`x=$wgeWOAc>43l5x zjwl+l8+0~fh5}~hH=Lu>Io4Xp3_n$K4`_Oet-OOLaN7^3*#SrWz4`R!(>rW?ZXp|C z$~2d6Ig>jsF^owD7U3XedBiU1YHoO=+>40n243%H8G{p%ujf4X5b9ds1Ju3zlQu?t zp)UnAfCeB2O3v{G)N15=R@^n>5x;*461E=FQ*H{eRLmhZW%*2N0uO&)OBOn;4@Z3G z2Fjr94@ATL&R$374(|aLTaAnm11);dqmG0agdgH!!x!uA&-P|IcR*15Sym^Iu}+`i zK&lg_6S7Rr$+r`*OpT0qAqyURC2Zj~IUq?YbxG6Y`V&d5b3GMkJyH>OXiH?U?dw6t z$x3Fg0=6>XHVT|9P*1YCB1r@dj*y09>&c0H!_QAnu(a3EwSgpQ66%j9H%N`JB(Wn) z=b&dU%xB@((?NXKlv=%@N{`73M_pHfLyndB!PMt-FWIs;cuhe4F+HWDXm8O5(9cI+ zfcYgp?Jna97l#~9k(A(T2G*!Zl)I?l+b!TDLF{s&Lj<)M>AnKTEfmJEg{YSnB4Q`I zKujst;iRH_J-|2uV|HVXa=AS_1{^K~$6PVj9R!FGEm zi}cE(sEXn!)5Ii2Qx}j{4!+ozlAbXOA<0$3rTg`q_!iN}Oa<;!^dVD$PkI>_@P{qa zTr3X@!)|YG&*tJ&Tw&pKJfDv*LWYo6CRYC#qqrzH=)^u=}R z#~OWbouOCOndqtO{fp@38dq;0-P?QKUP-aaR>dJ0n9KFSyooRUMGOb>=o%1sW!{$YpqwUjgEm z*#@j{y>M#qZiBLhLM*~*{Fh|iTkMBhi0qo8`dI5g_eFBT-h#do6=sfH_gw@-;C1=u zG`6M#h)g=R`^vF}>sa!`@PKQELW_P;i`nms_T&h)htDz(s!Ql3O{MK3TBYqImZ{>t zeju_}SyOdVSx0TtF{DSvq%FV6<^6N3?BTL64Dla0K-6x#M99rE+<*c zE1o)J?z&99&Y6e!yZ3QYLFP1t{Xzec?eQu;s1S(0e(Z!USYn z3fnn04Rm|Ha*sDtKu?ynizoEX0$z2e7312pE5i4s)Ua~ZJ$*lzSLW?WrBARY8V z9vXEdmMhT-@Q=;^B?={x0CY>|`YBUSOP`MyoxTyU^n(QIxqVInO%;JmVXo4>Zf|^R zqnmOiLYDk~o-6J5X~jf39Sm(_FZ7}2sHP=j?<}VHreVx>ciV3drV!VBkJt@Z?b+Tu ztS?D9-;boJ3!)?-ve2SI5SJT0Mlr0d(AH&ynLYPS#&@JF1}UD!30pUTeDi<^_#lqY zEun&|n)^;pV1b1RUAmq9(U0conrc0FkOMbc+3h0hN8PLARKM<^(scesLf6;@R}}j5 zXf!)cl=5yBx*D9p&qQ0HlD@_6vV{Al*8=BAgoTff*#y=asfD|@E0zulBNPY=);Tu| zxXfAN+K{KaRbX9!3TgqHl!3ZaK!Lil+m% z3xrVF?e>6U|DN``zP+n_djZ^iHE8A21_#Jm6L9OL*+4cD0{U@B{|xyPGy04(F2Tp( zDWVVb04Io4#v?W2*M-MtaRb8{8E7ZfUEWz8Z9Jn=)l^PvDumQc+uib}PRM&?^ z`oW@-==CZ@l(W6AfI941xAp9RFf$NO42&J2l(Z~?teP@6Zi0%*t+ZBI%0!N&w;XW? z^pA7x2PAH~4L#_$dYtnvNv&LxBQS=V1-$a&Eu<2km07WJWOOiTotIJN4spDQ}=T3@m_sOg}9qw?7!)u)2(W;$(EY5Q{X+f~3vx zVX2YmBM{2tn+{u0JRy?VOPbh&12-!ta8Q97I88vA%XO;bUhy>Jyn$0+T7b3rB0dpI zLr@BqM*MjF&*JFwtQ4s43zou=&L3uh~B%Tjkm|nZYqJ2qoFMGSMi77z^b%&_kuI#BR9Ns z_rA5_Y~`dl#8F|@0y_z-+w*hKlRP>*slgY7T10*pQd{(%_yq*BVD!~x@Gr0cmZ(Kg zf@*5*KsD{BCu<2H-uJ)fa@sV}pUe1XIWr106n5(}cStstVWsTREgT(5vTKLn?bnd! zn^r%P)!F{EwrSF~~N~pCG z5KGx_^=#?8t4>@keE9=oS0JHwNcMR6Dr%tQ9qIzrfYb zuzitncX(edoC4UZLHx&ZdMo7T0lo(ZpO)AXuWzZQE^gV6@Opf#46PY_gjSLob!0r( zcS9E`=W%J!2?(+*KsYGsB%&(^+DE`d>vq8Ca`j*-Q+}j!j{~eJd=JEvI2116+fZ8U zXx^bf&>6`g9$xiU@p8DxPVJXxNAi{QP;U2gXGXR=sMXgvN%VgPK8WPz|dqSV`(} zU<{TN`;X{9eM%dKqY?fN_(3!pE%pc2@B%5_fK)ZScnl+{hEXUmu9F;)8P!AyrrJh5 zh7EGw)v?c1_fTxG4%2<(zVoB?J@A7LZ>z`dhez;_h4ZM2sf}v^zxi&&#?drEym5|LbQ;|%LFVW9v=pGeD>`(-fEJ#*$#lMmLu@w7r zRRFe@!#yegOlfTBKM|a%BdfuS_B=jU@al`MlZ8gVqY6B%F6N!+k74{f$LjBXuY7k= z`R?r9cR#kid)4~xu=?Fg43YQ9HJFX#=hB(RaAH1|8N&a|+`BI|k}K<@>pjjt-rceG znpt4*6>NymD^-=s(6iRLG&4{o zrBbO>Dl?T*Nk`jNt#gG-o#&6vfBxqI-NZ`(zkEq05{Y;siT}EZ#2Nb!XCEYh=)dZ# zv+v8pI`+>F)*CH!2wO>t03TRLEZz<+eq<`nDkd#LAETi7cE#)c?K?IriswT#6SqcS z^Z##U90e~;3s4KQL%2tyUy_qF{{)PmGxd0k1k9?mSPiX9)9icO1+Q>WB=!lhr(X{O zWpR42Ue2qDigXw)*xU{`M3J_k&frw?g#ay!dP2*_n+Jkv7ec=K8+J0u_#1`=+A z;m=7T!}7EF)C4C#;n*qsNhh-?d-BKO9qB(cWZ2Pn-dh$L&U;JxU(>MIl*@%qmK1LS zROb0#Wl8EcS&luYIY#yj+6X&`N%0r-nuMoEk&1nz3z^JV>3#Y ztobic{m{Usm?q33R7_*OT+&TB(0L@0pyCUZb~L=Fk_hzgH7NOL;D#FJ960v(r)c1+ z7!(Y25c@lJx_H9s7r`QA8$MR@Kky9%+Q7t{)Bg8iR6!H49bH9(4GMv@|K+eb`2+5u z4P(w0U%ma~B7Pr4zYAL`IUW!c|kh?gC{rMEsv=GXymef zB%$=Lv?>-ruRTvzz^WehWVcea?2MU|#f_W%gMpR)SM0H1Z^La9!`@! ze)xhFEF3G&E|NGV*e{1IoS?v~nr(6Ns3%yVva}WCn1HZ;gl`FWp&iP6MBZKF64V*C zR^nnm?6djL|Kxv<1`p%^;*S^yII?Xuq)&6Pu|*ssjIj6f65#wVW{gj`NrNU~{sct) zzzf=%HBRIC9iI^X?f?4kzeWB#{%5Rmd1YIdv467WVWoNe8vEfbpPt3OP80NVPFK2P zfV=VCS&Xlqp1;qMF??b8xW(EqTd9uWqu=p4ZXm}pe4IAd!v{W##nVqaz@`N(t!$pf zQb{C+ASv-3Ua&KX&n5%hzX@8{zNxra0*?VAwplH4c4azoTUK*YgKVk>`)V zo&{JUmP!EM(~5r=c@|q^bKQ3SG6_^ct&jy1JP&&w=~GHCo#8{?2qLr?440Eb>H}-HLaUk#p>3sniyq|gO}J3wU>f;&OX{bi;-Z&j#8U*-{4CY z=;vGv0@0DgDn16jW``qm(m7wm5WY{Gs1<^g!P$)H_5^q`fxH3WXn-$n zUna31V)^SVHpJILi`ak6A4mn`d{n`2Xh^Fc=&f zddAElX8*7+s!o>Zz=H~>x|=v+&)esXh7xj2E%Kq_Zwd#0)e4&=QP9YQQI1y9HqbXg zB?p5rfI4GxsrLmFJt-CG6#A6wy(F0e+F**I#w`ZR49O(SZ5*GZIZ#h@9v9Ra8-PqY zydeHrOea-}8P(=7f;BzH_EV9jL!Rn_#LG=%OEP6Qbd*^Swv zodxxbJ ze}i)3oA1tId7%*a@Rcg%EH=T+?g?j%?HSgQ@-drlC(J8>`+*}4)`KU;2sy$zKQwa5 zFnZJ`J+AR_O(Qk7oXg_GOSNYWL&Dn-cZ8b)1e;Yq*o8z9!$~*>QrX0wm$4thBF1@_ zBrseyu<^9loXCcNF`F`YnLFG^iN)iw8v0romjR z)>WFORv#wg`Ex+8GB-~uZ?cNq;Y!l*+GB)a3kz4xu2pN6+MxEo3H2bh8R3$t#~6I6 z*e@FQPft#tcE84c;9?9njvLcQgU6Qv)SXFV!SjK(%5Gxx!4+L7ejZ=NbvXzFc;iQT zh5HM<`w59NofrEdOfvZpK0;ad$#EXeWyNqn#CQUwuQyNNi<5_FLTM_)CB;~T*CTD1 zKpu%(!bv?tBp7J)c&Bs^(@_a&>RAQn@1lc$fd-W-0H>$(UL}i&%M{4u3hjV1-XT8k zS}{*^WOB$OVW3ePcP1z|SjJ}AL!Q7qGQ0wpVUT;;L(E&4hGBz~6EUL@qxh5*pNSvIBn=;GnL?l{&7TGt;_)$=jxLu>h6;L| z%;#Z~eDxU#W{#V=FT!0YG59qXHCd)e!6PpCr+3Q#$MLMJxuo5$t!C*m*6H>yOC2Z* zy_5ak_YY4L)i8d?25h~=w-^%q%K0nQotP_f&z@BsBt__KZhn=^ZJKs^G4iYksjK zw3t>l1rsCmr_lWoy&=>hn|*WEe%r3)WZb}*QmMq`uu_5($>NrrM(Gn6Edrv&G+B@1 z(hwTc9$Fe9Fa?rQb~Nu=tLHL24l}4Gv1Hv~y>4$T(Rs&nzhqNw6W|#ZfS$ z5Z3Hzxk3yTt_{3@6|D@H!{UjyC?VoW-VDM} zYkWXd8aoqw=+7XPz88ExdX2H~&=C@N#OeUC{%EHq#eRH@Q>+n)3dRGJSVNQ$fsLgN z)lz$WbsVxL;tXxAUYVBkr7`jZ#b?v`TG>#d9;Eu25oqwfhP)q96cbA=qb)t{Z#5>k zfaB1nK0%k^W>`JMc|`sTTVg>dKvJo9<2y9~yYFy&^I*F|{o$VWfBPVu;(cwB^{@pT z(K%8Xf*hhTamd=uSdV5O3L5D+bH5t0Q84{+KmGHRt6>BwifhZ9;RCAT$VFQP>DHo>raxk1M z4=F)V2C^{!<%2%9!Jvxc%!T=sS_c{B@Wcz>E68OUntx)C*xuv#9LHIx=IZMT&?S=N zT;Fhx82oeY4iMrP`{l2LZP?ag_eulBx>r}1-P$#I^jr~bS1W8bc@heVYqA6^JNp7b zd?YJ`$6&NQ-Kf@0k`xB=;YKv;VfBVN;VusOV|Exuj|^XoLdUTeN`D@>>GHwmAAo&9~%|X+L;vpj+5Csetrn2;Z;wYm^ ziiwBVN5Yo)_z+N05>|me1LBdSZ!sAf5YhW$ihd+TdVz>|fO)R2D{aw$uQUl{)4&id zVbo$Wh=DiS& znFq8Lg)9q`ZTqrUQUXqUh?u~#vBX7|4=cmY8(afwr^#p#KRA>gCiZkA{6-V(=l0Qj zP20E*mej9S4YTlA@Sm=XI@nMfttiRag^)XsO<$9_q@Bb>Td8x9oGho(shqD~b3c7l z>JvjwQpWoidRFY85N#KotEL+v03UNg;mV&3?g(c1aPFNlntDhd9h#Xm^Yv)BeT-v& z*#P@zm3sUtW}+T@l|C0;BiJIxiHQsi@flw}(uG>DSFD=qQl=Fa%c#D>bbHh{ZwJwK zV3>UHQ3zg0{6#pH68~7+PgBV&C0XSWaXv>CVD7ke$ zDbR{>UG`Dm_?#$H{{%4ZCza|n^;(3q>yI`e4ZlM-f|>H8+yp$g9;vXr-)t^3+^VBHphxCA+a`bL7p zQ5ri5!mU#gB_+&;8h@5TwG7FeN}q@MS4oI(XU`AApCyEsGIo%uTm2rWrWut+Fc`0W z0b*&Uq&=^+OMQbqCj~B=#&o&Ko+DJ4qPQIECk7R5&ke8`hM(9M`xVhb{P?T+z@8h5 z?6>FG`-uzDHDM&X!}luc&HIc!510B^?75&TYSZvnLAXxj{_5l!3wfyK*$ndmGr7Z< z{2$YdoSbLySTO(Xb3(KLuYvn|=vEhfGn>seG1|P77(x((=G`DSnz8j81}?pNHe15c zM}SV1-@Nm}KV#m5;-&_(e}k+vtbX&(tJ92F*u3up@fo7MfB|EqnfFk!Nb~ON8^3us z^pDmkX1v3l5QOkKX-2Zn0?mjv?><^pmzcykY`Hxzh-|iRJcfY{U0?tT&>iIq7})4T zrjIw(DA81nPJ@m0`2w7`|KIuoM1z4&-zfbAh5w2#5J7^^7x)QQkq2SyAd}R6>6jFV_K8|gJ`AFU&>qbP%D!hAaW(b%SI?L zydJ@`^))Q9>ZWA`*51T|7M5Kyrx{x=rfExT$(Yvz+Ik1a=&fQ122g<5Tl?TkGCnsP zJ?yPEsuti2Ao>VMGKfF|3wU0AtS9MAQD56wkyrm>p4RG*m-PJMo>(wEZ;rVqNA#oU z_K&NGkiPV^NJ&4kEKr+jB}Y=v^S8o zck7zK7aceI3l)CsX@52MDl;EZ&b674efuq@_|A|`}R*H64Mm_-c6Snv0h@{ z2a=rTCR3?%q}i#hu{NsGH9-YOW*UMkX^ElJbhhW8Ae06qCt}epyzddiK@f-}oW^$4_ z94GRXwqw~A{VSw4mWBWD@A4METI@06mwnxP&AlSiE)Yb8e%VfOSG%rOn%n*zy_Z*% zIHbqhx3~UvGxt4JejCyImLadvBP(y)kHhNnfnL-2RX;_3VUoE1vwb~H&6fRJdjFFZ zYB~TY_B-}$T^&@Aht!J=C0YymRkvn6yY_uGylZFh`sXPnHeCEFHl7NrLLs$#>8DD- z_e}ZLfPPi(U)L|sli_VSL-buTqAZ3KL>^c-c7o&qpa60G-O+&ls-Nr9buu6$Hlx?>t8^2LS$*Nsj)tvR{7N=G>XHVVQ zi*=GKRo(WB-OE+0u5(=|=W3_!@})4(HHz-*w0M2!DeQeWksE?*z7kMqaJIjR^eDZ2KtRnJ*3Zt2*%%@wNd)r)QCN<+7I zZ0~ZlqC1-wu5$IEyLu^FxyGaW_ENmdHQ(Iqb;-)Ly1T-4sgY|}ceQDGm>U##Z!gt! zZhHDUxW4G*p5Bg+r^jGe^*G}m=ZnYg^?`ewDjv74Pu$~PF_*c1bq)@SC$;OPbs~A0EGBx_Z7Y{AzSgd5R&G+WW_gr)7 zSVhKX-m?EUeq;PrkB?pJI#4f3ar&x-PNjb&IO-pyqd3ZnG(P@i9;Ckcwh(DTing2L z(6NRngTCtZ?0I8WoA;B=;^@HYj#7vvRcHiwrXqM>b6pi z*U~H6)-JbOXjf@ozfaiBV*jnyt=*PerJJ(Vzpr&_57(_yqIut#HD-MytTi01t1qX+ z>U^^Xzn1K;|Gi)pHk0G+W^(bmnOL13`|Epm%gfd}L!hVC?jdtu7lkw^g@fUppm? zi~iJVXY4Y{7OeXNjG>!?v$?U4PwxvB#z-ksD_fh3a%;Y_?)tTIYjs(+W>?57jNBFA zGCc-omB#k2cUhSAs$B==EP@~5uT$$fz)3csWgVlx3t8v#fvgA{*G|qZI;DH`?+eDR zpf~5y+ZjDuU5w-VoJVh$bU*{+B4cHt;*luPDOJ1_v#>Gu5SF+vqb+uyJ5j^ zB7c?1d`a1ZUR&7%cXZQu&DfBaXRF<4lkC7Q%wWNa?VWX3v!{8>CLJ>>;BUHAdbWnUyXdC%OJ{uR73KccsGgu3#mK8?^1Xz9@7$*4^pLYX|-& zBUQ-v4cW0SvtuRLY@gmH{ljFe+#V(BptJr8+vRYZ4SDBwoW=vU+38Q&bBrnb6ne&4 z)f{V8tG7m%r?W->rt4(khGeg9THhT<0)PfcY-;s)gKw;eYJ`AC+%M;4g1mz3OOQdu`0eNxOBM^uKdP3IB%cgM?L~ zzAm|Cy9a%Z@$Z5sb2e5V)cC&F`WXFQq%jKp*Su$A9bX*Co z*{Yd%EnirxrtQ}1_Cp3d%H0;>Ul(`aYA?4M6vvHO$GOBnEEKHqu3&At_1Br(UVP`c zI}CS);daVH%Pn8Fiuob;={-YUs-KlTsFLkHI-Jv?Vlk9EF zD!_WQ5Hcv&tiEf%SvBaZ;)v|++ERWqA3w(ai|A{!U)lQ!AC${bu&<4B@l?CCQyIp` zA<4Wuer9|Or=iW@Rm)<$hcs6U$FChfeDfJR%!5xP2bec9p6-2rz18cUj(jxaw;C-k z2dxJkc2rnABp5A2>a*i)VNcl}gK=kDl2_H07^a;T%@;Nnn>%$|52VvD{%+a)Z%2M^ zL;ATz?&pd*qS9|Ydz>Lpgn8cmS+w7c{WN`?i0!8jdfSvjqZBIUh*1JM)YDn_eAr#D+dt` z*lE%cyni+Q&HTGQ>2N`F1AZCwfCK$aZNhx7$>(^=SLgm>g+o6TMa%$ zv#mshL!>YzSnWjC%*TLtH73jCKAa2McSG8&RORuB9ySJutTQS1)?TsAc; z=3V%6nE%!t{KCAq37IC_Y|j#Q*=9acs=jMrjzE3@Y>(3?-y8P5bxZT#=6w&J#}Hj) z-!WgFk3jE8&X4XO+82ci+2d7h=r|WvYgIsBRPAa8{y6+tXVEBBR#iOMTllzzd98a~ zM?}GaztgIu3!O%)&YEa_$!6-%iFNj=_BIN z=pyRzP--=nn77}QXcVwGBnCshM*0}~2EQB&hyAc%K)bdp*`-dSjhN&OZ1!8J1>3zV zy)}2G`%<@I51;7&i;lH;JRL3;g>?O@o66#SI6X+YrKQ#B=C>HH$G7lZQ>VF7=~#+cZ=ko0Mz z*jMvGIWNRt(2FrjaX6Z*s(Gv82k}Se%_HQPcyup#^(bNzY2pw5XMT|6i{uftzl=B^ z{cV6}(0zJ)X|76bgMIh(JBxMAC{C4OF)S9V!h6~pRc@^o^pQI#QW(Ig)!QxtAx^!3 zSU>|h5b}+Ar_;Z*T8YbYYl|V$#~ig^D3(ZvCcYP2$V-kYC|tg6H8?J~G0?BIwwoy0 zPSY;z0ORz_ma`&U7=OU!JYgvH+5d$E=3hjE)xWUIBiOIkPFhCifym(r*~|* z1OtE;l_CDM3N5Q=TWz8dwD(+l`^M}gVgh$7$@2@h{#c#E0i^!O*Z;Iz8^n7yH-#PM zr4|nNbxEh};Fi|jfTvXMWNvK4kL;xbe)Qjv4qk0b#a5$i?ZAQ7224!Y1?M}*)p7|J z(j#%z?d1q|s>gA;PvxRTxUfpla_=~<;lW$dsubMC73Ta01q-ZgH6E_5K3LSx)e(|F z&DCpnfpHEWcnQDCDPe_RRJ$f0s#SZqaz}tAT?V@jUzp?pc~!(SK zgs)idZYn5Kxq2n|nr*-3>WFvLpsy=EYXrG*FsE^jIXzSd=xJLs_ztkGL?h*mu8|L4 z9I95uS7BcYj@6+wFP@xKa|E(8JZ`MdC%pLTtOq?#z6*;zdGR^SC)v1k*?6V-yof_L zmi=D$px(Q2`j~>kzk*G?KN!yYm>2Zz)N4OUbB==bGAui}YO!^*JYKo*5nA}a30`2P z?v#_?TfGYM?Yfn_wFbB8cBMRPTh(E^Qlj}wtpLA8`Y&5H7Z};6Qv^tM@Op0V4(4Rr z2p{|%#DNgGy;<5V*f2JCRQxH{nLo+m&v4qv?jpW!v$mv~ZN%ngqqgAB1HFs5I${FC zzj3NVtSuy`Dc$GVmin-J&H3=4-cjvN-Jy)vjxwf{4XZvqNL%?$aqC(gvWVZ&Pr~jz zfWJO_)9mzS+z)__@3u%!KC;*$j}<__^7x7U%IE%!Zmg5gnn1J5^mZElf?Nk7UCa87 z;ss>4xa}C-s`$%n1XlM-wR^0vx-H1&s$@@3O4f7#p=u`{3awSM*zNy$(RDHxomHyX zN?a5={c*L>FLrTr$gyi9#B(~Qx zcnfwZi6HZ|N?Tgl?@zzYWOU-5lG4AHB)-CO7X=sCCx7RFvU6L@VzIN3x=&&r zmdM>KhX*Hx#Ok8x(&}3K8V>GdCxiD*yELn{uU?(i`rcZ@$FOUq%_HH4f9h7+%Ob{u z-FcIE;1kk6(vR>9hfV|Q>|#AitV0Fo<$N6~7_VXeO>q6KI7BS!xasnE*=vja-TS^C z*O`t=EUwFK#1MMy?{%k@yTw}9E&rQmFqTDg38+Y@Js#hHMrql$RW4b5$9|>w#?pd+ z8!@kFlCN1{v5!i%MX@CKllT2H>7C#lq}gI}M{$x5VQn}Jb&8WY{W0WQ&Qr)qMEv0`uO4RqrAW)q-xnA1w7aMxm+VBbbk^yS_ZDlA`$;mXBEs zC0UWN6QpgMEDlnr@c4-}{Qk`1(G2FLC*vqA4Rv^Vo9gyB6c?klb^KqiV{XXi*AeT3 z!k*XR*WO|8LJzTBIJDCod`XJG)+n}HK>SUnRp4VHFHu7};thG;Tk@A%7UInCnOg8GE%@RTYi4m>_`k@r0Ry{I#{AL7+M%^@ z%FkGr742d6Phaay%eBsOtNhIUjv=+F3>yRdeY6dJ#(H{yv43kjtWNlUh%r0VCcQm{ zj)hQB%4NG&s6AB+YjsTba{qwlBy3#30Ah;}Pk<(N%z#W%lkQu(X4JO;UVGUZ9^n!EYK>~e7VA&)uMn%s-IQC$db^wOBNd&U z7M@?I&xu#y1?Xe?DbIBp#o2xR(V{gB2pH>s5&+Vt=oi=8TEzuK&2C$j1OO zv72axHPqa7%4w`?uepou=nivEPKBs-%tP#+jVu_oT>+aZmcY5*qGV82d%wZPw zLNV3sJS-=u3w1A6sCzPCF&V@w;qQ!F^@8;$;!tEy$nMcPx{&KSts$~?cNJISF$efE zn18UiM+5$c7sph443r%5wPcDrFV$1j+-yA8}^Hi#$DT%a*#>#Wb! zndMwlToLah@L^OuexbQD{QK65;1I_mJa|6AvmCvITAMKMjp37rz=;eeSX zu>RD*+VSNq!{VLD+qpq}c7fucgxA5G&UFfziA8mhXk*Nbz%RsKJ%0K009$hv`xIpS zhOfJ`_zcqx#4m48#@;;+h&$4rjB?LHoGmZggLc5N16`Q&<8QT9<7?4w=>l+AKf650 z%QVrx%oS!B;1hVG^8|A=ydR&Y7!Lu<`H!e?tA@33tcRm6{4G!)i9Di%aG_s#pJc8| zg0I9g37Nrc7c@Ut9U)tLWdZG>KBfIA zRjb-V9Pr`=0cRw@hB%|pd>8#FV^v;Ep6ghYZ7|tXGD&k;CcpSg{l(>)WU>f<8hmE` z`B^@KCca)w@k`7XudM>b%S)#9Krv^BPltUanqA;?L2n*=1LKEvyxo?s<6U*dI^Mx+ zr*%_2J{`iAFOD~hCDsX+Ru*$wr($8ffcZz5f0G|&XI_|(vAA+_%tjaA06*^+hJ5Y| z8u5?p8C!?L`VEZ36|uNe<8vR{`@(fFbU9zI(dM@pTbN@-?d9u=b!+VDXklId#$F%* zuPGdm+gIr(0 z9B2-G&ejO9rU5Vtoqnh_Z`jJ=LHqFqggpjN8XPnPUEl_VU@I;$k*(Foqxl*oW<_ ze?@*>4qL!TJ}7>Tx}odchKUA@ONicR!*&*OjmBcTUW)}u0wIM z_VVXTCcC{%4gPAXQ0!Q#c-xHaXRBG5ALgwJErC+(0P9hRQ~Kry_r1E5e}{a&ug*k{>pHxTZG?>cuW_R04Qv?{ws z3Gpd+(=ELw@W}`mjQxNI`5N?7%Z1J>58Qsa`dXSb5gSDe^x(3S$ijzmu&2O5wDV%H zOTUng4aG&R(zP|LZ9DBorwKh&c^kbomhPVyo$qVRT@WMdxlA)~7P|UDdHZQ{nmzqTAXw8XK%TwM4v(+w;>KnN?QgBOdo!%lwz1!ER%$J5yM9UQw8i1mWv&Ak$m%WYw14BcxhZs}@LhTfyYq6w z_Ub?$Xn!MsXn$khx^N&5CDNI4jc>H93z@fHN3!qUz;oHpY3sGmW8xI!z8{rozKC%G zKO6F}YoJUYb3e#0ts^p-Ve#CQHO&^Bw`B4Aym)Y1NUSdsWMB@)b;PB=-#h86>+Fr& zZcVER@b)!Tyes8f<3ee6Sr`@PuUMMvZn9U)W^u8&UsVvQw%`X<*U8%V+nZXaa9ol&xnp_;*F!(LLrEG+x&5 zpX451Hm}1Rlc$UMFvbL6#lAq=Yk;qAD5gR47e05{V2zsXA7^=pLu3CY`D$zpn&yDl zSbrw{%J+3*?7^>)byh9-kBbiC5csm7(3+gohluafoXx>jP1yS9*G!?{z*WH>V611^ zmvxL$teHAkJA=<(usW|hyM=XESk#(@eI%!=<;H>kL374Az5{axrDCjLP;AfEe4Ecd&;ScD+N-r&w>K{mOOw@C-zm zm&>;>pQ2R!OTIp>FPWY!-d#LwpeKt6KV!G_DT|T88Rhdi225i(hcCnM2m51K68p>j zAoi|)711vLKg1;P5Ajc?KcO_~mFQ?=9TMMJ(E0#%!{w-2ZsXSsF zl|}*n@d1@Dv_LQLQ9f@M#q${cCFY@c(u57o+j!edP**P*v90l?zZwXe0eo>I_25LRq3_gO^NSW8*UjJE69(d ze_B8D1ogY<6wn{CJMovvi+slv#kKIMrhG@=IM$>0j!to)l~g{n!xirxw%S45Rpqb1 zfBTB{G4^gyI(P`#0bceF{yMmqRlPST|H*rA;oZLQ-g{Qr!7c;^-zWGN?;Y!?2>yJ3 zC|Tbfdv^111IxX98P2WU<-KLyIJA4BW{q6?iF`lEC^m$ZEQ}dfmXUvZ4>ynF+Z|?7 zcE`ew2=pFyX}F|MUnNZYA^$us*pJ_Dv&+##Ir06r<@6sHPUp7y(!I^2-VByL?H8+( zvBtz1?6?2kvY!bb@XknX@V+39VErshe>*Mg{|0T{7L{W(()i))g{l|#J^c3DuQ9q1 ze6aoHAM`EsKg{>{@Z;>|{iFcL#V)^(a4py7fB)^vbP)gY$02|H=WkzP?44Z}AwR{Y zFR}Fl!#7Wp!QzY^1g>EgcLnk9via4)deX~aJ;zndD8}k%$M>^Sx7dZ|3>iBvUmRna zRF^66Djrs=?ToH@0S;VDGsjon<8yX3!)mjO2Vm&5nayahoV*{QHFU|lx|4M9I0v_I zar~LciKR9%9HLDZ-b~mrPJ{LNXMo=STb?t!n7mHcgNMl`M!cljzWhl1UDfC{Qe4{3 zuWXM&X-cAkR$o zq>>y9yV!WJH1ac*@?cCj(gU9Vfa_p!bpOKKxfxLt>y`LskDO#=%Vv|8_3Dvd+iK{g ztl%LqGB|$Hy$LYG37qVp3b|6i5iL+sIKtf2pi@DrJ6J!GCNiLuAav+79ZO+kTrR=u zRY2x$l3)-OqbTLF91XiZ-9(H8z&Uu6_2Xa}hki8*er_TN!X+wZS_Y!8o%QPZ$yC=! zw28*Bky;5r2bmZVhyje#*yhj<`#{zcemRYS|0Age=wx^!4$;&R)X_GM>wJtgjl~Gz zQ05kobDU`$hFv3LAZRQI;!u&II2L1tE;TigJr=6z`H>(d<9#r6VB&B!SQ~*RLgu%F z(QJj|{>GMv9nj{j>u{%x8Y3`dFFD3{9(rn&quH5undSW;0E>O=5RW9 zMuR76H9bDBCx=rsWU@Y_OP%QtQ>=#%xNiNB4n;eJ8a&+Ko;515d42%;*B|m?DR!aM z``~#zUmcDHk1vDG;nRAB!w)x`!xz-LQjoqIs9q*S8q5H{H+l#UnjCJ92yXfIm*2@P z!<`A6KYmpxm}4${^2Gb^{JzpZaIxIO(-L<@`{3RO;RCmrqss4Zd{-A&4ET9(KUU9M zB7xX89Ik(7cfbB2Pl*&ay?9r1y$=uRl-5Uw_n^3=bhuiM-^bHOp15I?ocR`Q9KFwy zA`u;WmYO`si%4-h)#>CRmUt((L?ij^>vWnp=LeMI%Du!pyXRQLk;6Umn`e;m{G_Fx z;zn0}>OwcrZE$@iteCn5Gm80yi8NO{ag?1r5OOr1-Oh=W6eZ0c9KjK=38xpco;q7Y ze183*u0P}5^3G*T3S$y&%;0vl_t{!aDA*+y^EYx|gbz+v+wqB1L|#O)l8Gny^NJ9< zl>U7LEqS;Yjv3Ms& zdfM{Q0eQuUV0Rjlx)N8k%pYgC$8gIqoXHn8962VBzL)uC4r3;3;3)b1gWi;iWL`p$ z#=!g#g#5mJeVY9Cg=55wSx>~+n`{GV=*x#W5*6=pdKuh$T%`yN${KhsZY~!W7K$o= zmlxaoai~?U66JO0;;JA~2nYGmHHGY8M%)SY2%W;{3#Th#QkU8#-Wli*U55EAoo9%K zGY=iY5NPHaH!`oZR%+s+j-Cw*n3iQOAn*1P#0eT6akThk{pAnu+(On?HtCM*QWFUe zm4o|xX_7ABe+WTllB@UW2AwsUX)V+Gk1WA-K3O6J;ZBB&`IcW0`R^E5KAuY&y!P^x zIP^a5b2K$MvdDNcTCG{=!z7VR=2?><$x=qN+rdT&`cWD*hI<)30Xj-UQ^lZGNn_#f zDJd>~_P9g^r8pRmN$(`yiF<4W`_+aV=v-Uq>YW{~DKOD7ul!<6`EV|TN#2Wz3dV=q z*$=Nm@*z5_=QTzi^CdRqOw4iB&5*efv+VGRxdvHuBRn`9Zw=FS3_CkKe!$)Jll3vq zAv_*!Hh7&s9^nDLgt&+K36~FVfBf_CpTdp7!(fUcx?RzXpdLr_ERCM(lPG@WD0Pkw z!iJ1Fi~A_Xy!XN3;EWU?CJS577!0sfqpaB{tY@*S}Ei zudy$`e$kC~Bs8<>0-Pa6#PKTzFyql7uM0`{1Gq7`!1-x=CNsSt(U*5JB+Tvk^BHcF zlqpR->Bx4Ry^Gs6VHpK<0;URsgPL?kda@J$b$@ApPp?W{G z5T9DYr&8B9YmO7HEAsiF$)ijvmpx5p($c3*r_<-gUgSpSP*~8Qqova(JuI(YnWDQ7 zA`KG)q2to&)4}kRUnHt&9VYZ*HUQ5-_HeP94jTTa%XWEv4GDEcLSq6;H^K*$75PcK$do8oEo|Of?vOeIM=-jUT{T} zOYx7B+w{CS!}W0-FS~c`5tBt_w)S+Vu@BGrFgVk+A_kU7mGu!)$sT5v_&jB>T*i*D z5Hi7}5Xv(SMxDo3bYL|UDVxcdAU?>J^Htw0^dmO$pny;klIkqxU6{mhuRc!mr4$V@ z@h&DzEJ^TyZpJ1h#9%dsOeW~Y%{sn%T)zHLv$VkwSB=6i6t^$~UUnZnin&Cbo|Q}C z-B``1Ugx9b{0Y;&(e{_bVNCpon*e#F5~^2J$~|-zos_pcg>(2YP~_o4bm#&>90|Cj zjy((V5*|fjj>Ab}Ztd@w)N4~0Ifan(j#-l1utVHrFv}j!P7aTdbOiHtgv$<&ka~pV zquGgX9w)~=(*(j>%O(;56_gaZM`{FI9L;9cs8K$oNtOd`DovII zohnV1MbRTwrF=@Ow2XSns;3kAMD>ayV2Agpii0^`szLx(iBz92E0#WWMJd@sH^?Ji z0VcD)Al@_9r#}#SGBqft8ZDm`cZqD#dXHW5NpGEMsNPQ1Wbj(?K|b=fF^hMS#Q-HS zVFEQQwE39+wd81)F? z2;OT=N|S14Lm;K6GKy(Xq_xx()T(H|mYU2_Dh-^hp2}cph>79ET?R5mPl8=%bg?Mw zS=?U)*VUlsJoB3bo#*-(Oozr`=3UHHetCdy=U2_2o`AYvfA9)CY$<5DcOLgT%1vjbEZ<9Yb!i6bmr6rFLbA!`~*&bUw;ByWheWbv@$YRlbJ&z@b%+Ul3#cMs6 zr-*Ed(axu@dcH^!0FNuWK<9@$!=wkZeng!RKcgg(zg)SK^$1pvqhJ<|ZAefV0`M8Z z8zZ2~5P*pDvhd?u2&I=JKp$Xp#?sv(1;BZQ8727pDl@q2^gi%qiVHIWiGKencaq4H z(@*^0JdZ|*4=bFb)06aA;uM*FoHEgmbC}JfMgk{YJ+2TYPZPPRL`XS)Y%Il(Dw9o} z5 zgt<&Qo6fu+4V`$PS1|Q4xYDYxyaK8cEs56=_To~a%K$1nEDSV8kb0a$OFSsO4u8Le zi;r+c*D%eR#5ynxG0soM(^Fo7uP0HV){o(WgDHx_!2+D@&@j-H=?IQpcB1TAub^=4 z4aH9sm4JXx0KWsCvRZ#=K45Pr*YqJ9i&wlM>%!L-~l zR`jvuRPw+!81ZZ+ghv%v0(ZkdfISzshGB|hMkT7^g>eawn)Ud+df^xIHDZ*KCLqq2 zZVAs=wZhbTV&MCDdpI8Z!qDCn7Ma`<>2X0o>+~k}*tzjCK3lElZ&=|PEMtUhxf*QG zsGZX7KLHJJnrZ6|OJ<6bn=94~&%+izKLb!POl+Q*KW*llbCa$1 zsQ)l>Sdz^H(_Rng_(bbDh>0jp^*$6jgb9Nnc^?WL#A_6jofwm&f4pOhh8aeebq6*GMI?(LLlxDaVk2d?i~g3ki@1ksbtJ?feI21_gO*TnQB%T!``-jdH_ zri6J*ut5GaqChg0K#rkA5-uyLT@O`!x_q81)%-8F_GrCwCF|H|j5EFni^b8iBqCuM z-)-VaTqH@4n+NsyFjkLCM?C^I<-y8Fz{*F!%16M`jgL0ekAf%16M;N5INQz~($y`3P9~2w3?D z*t`cT9|0>L0V^K?n?w*#GD1BAT0H|?Jrlg%dGeXy~F8;a(NP;5(A!= z)x6ZCNX;jYPWZo5EjJ-@bLk_jXs~}?ZeD2+FD)n1PEHKyPDN%mXTWwMGd1e6A}wPg zE+aD2Cfd>>Glf8k>=MNQ6K#?YCeoN200|NLRp%eiN{TEa6FEpifEYQ+K=J~DVq}tJ zmXQ+~MxHW=QvqRQEQ2_a5E^$`Mpk4PSa2=29XvJI?U}0e}n#i0B6Zq&a}U8;~v;W$pz42!5G60r`SkzCPe9d(;d1#L(9n5+vyZ zG4_fCP53~K-6KHrK1jWv1VGLQVC*mfdFq2S_MCuJVRk>bjg?Hw|s z?Hw{h_6}*$_70iR_70gLdxx}Wdxy+Odxt!(nU(TZ_D*Fc7Y|v+Y4#{4czBcs50BE|;ZYhqJW7Ly zM``fzC=DJSrNP6aG*dP8PNt$LP*Yq#-0R_eDe$*%P|@}l@n?36hx%KlMq3J zC(|Pho&<lws^=4Sv;ggTRdb&TRdcjEFRLLEgmu>Egtfs zES}1edOK|K6o}N^;Xy1xLKaVEL|Z%w5pD4#M9AXFjA)A|A)+mwga}zYnGtRAB!uK# z$l^%=$v4m9u^gktQ#p|qPeDXlJP8rBcrrcG;z@u=izfks7Eh)}T0995Y4IdL(BjGT zNQ)-{qAZ@w4_Q29NF5qbx60yaARk#g4b-n`je}*s#q)4|Wbr)6k1U=C8Da4}fR8Mm z2l;XjeTVIZM(*U_~`2!4r>^{29jt8MIedx*s&z}t(jKPOHu{ZZa3Cs^WKH?zy~~F zklgG-ywbMj;R_jTL8VsfEeL)9#M>)T$kuy1oHQ(=Zw@3s&ZhIV-0h_C2K~amJ^Toc zq4DEb`(G8i_t&gA`9aMJ?&F%(w@hq9pJF5R`T^_vAKFJa*tH?|gL&MFan_r5l24}s zA><$5O+DhcH@%1ChlN^ZNZRz0N_-@{^vsY1>X{0yf2$}7ls^x&5#qsCS^N}&C3a5Gk&wo`(22eUsyo1 zphWDbkARX*-v{MGXD7mg?DX zmL@2{QktX$vlPNvs4m&NqKL;I#Ti*d&yxLXC>28JNrj-$L+E9N5So}PKDdaG1;wm= z!hnG*tKSFahw)k-AvAt|2Y`aOj4ew{@}m=z*wA+#CYkZ2tNtBhtGNcRNsBLC6BS>& z!ZS1CVTm3yJP9Erdb;e*V7inIp6>O&6pUcHACHl7{1cf-ksyrwI-2C+BNz?9Yh<94 zrTQRT5z51>29+A@;3zXmPw_oa&V)kL-wX9 z;_=243`3UeQ$tn=VOT;`DK9I8(8OHvu~Vd+2)rMO$|t}in}kFt;~OC`0%L^C`06u@ z&2%tLjp$3jz}#tk#J{*QNlhR}^>L_-CNqIDn#crl6t-EA0@=U3fJt7$IkI=dIYDfm zL`Zca%Xm3KY(`PxAFV}-3dj19q@$xC#($9oXN9zUN5xH37yD9Z`9eo<3 zDt$c@UvSZxk1CaaF-J*65+LZ{5Dw+~2FH#UD@ZEmod@QSG* z4g`zhjRMt~q=!Euo2ivlO_}{{N!7leF6r_3XX{kdj(@hKqSjYZ&bQev&7bA8_MzS< zx=4{e(?8_G>2-*cI1lwS@6b+Rkj`-Y2tHVsoudv&`k%ayiH7q(>FjF6#eDtcJFF6i zML8h|tw-PaxnjRRJTJHNr{&}ioN!Dhy8cd|-u@AJ4kxdd9|+)Un`o~g$7}V!<%lqx zhK2KA{Vi9EEfoBQH==z+oTNjxbcyu7VwdYN*({DQpmRnjm`q152as#SKz!asJ|DONZDH zq4-}v@a`yanx&JmcJU2Art)K8S%Y@qm>9`ykn6{m#g3BM&7nF1&Z{N_6gc4Q1BCk! zeV(j6Sp4!J&%fZOmu0;>lh^{y;>Q%@eAUrphJ(Ak^I7Ns&lS$+nQvdul7T|xk~5_iHx~?m zpGmg-R2kGU**#&R@k7Wx%+|g|Sl{sd9a@pR-SHoX{&bv1I;O+s{=m8KI4&4{K8_Bbcya32Wg z)LxJvVS9lEeSQ|vck_%)am==lMN21|MS;8^C8A*gC_jsk>1+Se`H)2c5EF|6AVI?R zR%v2UhE9(YdWkLc2jT(rq4xU`^I#5-q`Ts+39661ecqOEsJYLEK9KLi3FjxqF`O~x z$aA2mt%oLX^wVc^hu-UweGNJo@sL3PvkGDFCw`*LL>PMTM| zF=6rGJkF`JJoWEC<9gf3VZ#`Y{SQ`*8KnooemGFI%3h-~{4^w1LJ$+8&Lbn#fzih$ z>9on|RB!_eKY{ksy&>om4U3}IYo>tETdO7rEO5X?OCRx~i#0Q(=XxCz0U(MWNwewG z7+z^F-(WrU3I#rsE!4q0%<>3S-6;CR)vH%y z+Ev_z^)-y9oJ*!jNyAFd@=8gReo42?X1+fl9VTh z1cZm20H5##D$#K;k3q3g(i9~;9-;K~@8`|oX*E(54>j|{PTLoE%IR}I&t&?iHx zlAo2KAU^^!#K_ZSNZUz!mSh18k_SzQB76V+2-ly*r<2K;W{zQJz@H!JC8^uEGRvgs zL_Pn+)__@gJ8TQ)xln}XZ!lHk$?hz5?)M*gSc!#_`NccLW`VkWh41R_6;n}`Jhe@ zWXTeyT<+LNS41OBIW(p`y)sjNphoG9h{!!Zq}a~|T|bCO4eh{Wk$wjMlR+`8Hveom zk`H6mVLC;|uw9BBn*5jOI;3D78M3b@r^Dn)4)*2qVbfsY0Ns3Ka089=0#}bXOHk*d z9uUPc3TJL8B=%MAj?+ZKui2D7@Z;yyh@B>3u~!)eu~&JT*sC-tQe3uGvMz~%ELp-Q z_M%`|>}7^5rHi%9(3>FU19VzyLkAAV2iNQ$lSGlu`#NOCTA+gu{b+TTs)?uL+$p(=Z zIhw#rSh~#|T7k>74(1c*0CYGnEab;C?WTkGm5x4jGc+NpiCF1fPi!8za&UM zB{*DA4D=Yqn;#ATm#EStbdt;DXnp#xX!Q{*?4vqTxCIaW!YvcS!Y%fqk#HOM5fW{^ zKc)N2mD>L@yN2w}(-iY?sSbY`c~{Q9ve;zdIZ8kLUap8hkV}jj0s#q{&&gHT(=`3a zt!CPxD)Mp+CX^z4sZCf^eZHVxFz^xh22EZf6~-A{0`_6$E;~)~%rQYRMeq?R^@j-B zNbcx(1I0AC2{w*xTl-Yq8j_fpRBPUan9NB+BY|-P-ab&Dp759x-JWkg2^3B_KYh*D z6_ROu3&>yTOrf0pScQ5Ha+U9P(Ii#HTla^61MOs0N)N+WvG6VA>{4z6^TBc~tVhIx z4oji%yAMvfEfK-`@Pt>6J!7rDf$!@ir4N{zz}_OBtDWD^t(728PnRSbvRIpx;bRRm zl@t)hSh(sN$xhNS2zven0)1;SW)zG>Hi9HEjE|A0NQV!H^64>OWBINVK9|%#17;Bf z*=>={HMI9Ly~)E9Z0YMKX!Y2D<38v}X0~BQkgj(G1#1Fv8q?;m>J(9O(jOBmmP#O~oVq;BG #vJ z5AL@eQrDdEuO+n<`Bfde2Zq5w%Z#2kI=Gf1zJ{kaL>yZenP>!W%+y-MDd(+IWcjwPXk9EfWf=TTtaHSuHNKr%$&`7gRwOWE zyIP-OwEZsE_{>{iXxM~TpVYROqm%48HUQF{6N4o#*!@N95&G=}lo^^MHm)gmnr%

  • YQarEFzBs*AM2&Ua^ge8m$PJSDe`qvCk;A@Dpp!{_Mdk}k##OI4#>)rsV+}0tF$t* zTJc|q(>P+Y>2Ez^4=9ZZh1zPR1?MGwNsy^(ynb{i6%DCkLHB5Iz)X#=!%EPQUF%(R z%|^Fkr7m&050(S7;Ju3TUZ}OxJ03LB>qRu8Blahy@Urieyiv7rymU%Qn_PQ^vR@|{^m z*y6})yVBzlvC({Xx!sTNOwKQtG>@*=Mer=i-8C_O5jd30zoI`DDN!@5=;B<8RMIWc zH*r4WTg?x;%qBq^tv}1x-Zv-3A3OJFR2#nCEZVGhT^gD+g;en5D(#_l5w32aiIDLe z(&lCIR^OM?R*xgV!56XCcY}V8m2xctB^O1ij?UY~;IA5jh9Q4|RIA@KJ@?H|=Xb!Ye zTGZdx9g<$FO55U6$2}cwm)Sw&HD-~K_Cg=O?6ibjFanv6lPcV~ab2bP`~i2A8&*SZ zn+2+*-3_N&HH;tJ9jj#}S+&ZGW^1?|n`!c)(BOv5<`1#wH>%m#{EyDnZLdi$etX3% z<$m{7pefYHSZ8m|1chARcs;HX-e)qff860+vgy0{HP33&LwRz~MeD9vnY;UjR&t#i)w|Gs6sv%EIpIT!%*~I-KF_8& zB1S4Hc+!jRt+prF-ob8aQNv#dNRpnxF( z#S0#%u$4#@ASH;<-{5lLG4;=tyZ6n6ayZTW+X66})TD1wWE#kMd{!ulfYs1`K#_AG zhmI6jmPlOMnw(U}AmMLm;+t39@0}7X4wcb7e7&sj_352MD*`j=i(j9bRTndky|Rl7 zl6~{^PIydEr*vD;@mHdUKNQU9E4JAD-@3OyTJtkm@b~DKhLt*dwKhuI#?05MDe_Pc z9fOcL-m_96IV|x)G z6j#}!j>fNCHZW|y`-#fo)I!{rg7MKv2&vUt9A~QZ4-`|r)!iQyLn13ECbl#fU6Z;H zm!(xwN<1uWp>|c+>oY3Sr>qGf@6_=;ib^y^zcpolPZF!p%PM`AY0R{!9x4yV0SxR( z6uON#bP^b8QYC9y+bPC8R?v=-ul*3WtYdmP0$*?!$Oat2E|^6xK>53PPS5vX-?uo6ABD~(Z9dpFtTXGTD=x#jOb zu_MZj5R<89CETN&TV>4YYA3NNNw+Y}H(I8w*i~Se_hfje;E_(qd3Tn>kOfyW_j6gV zdS017s@FNcOZV(F9Pcco#2svzt;|I&HQVBj#BT-u0$g+#EU@NS<$_pJ;oUAWYUI1D zm9AL~7mp}yp|0y=A7Ye#&TK8JVpGsaw^Hd{EX62J7e!d6n*+CqRQ&bg6VBSCk&B;K z#A5z6YxCA<6MKC>$CQ!_X6WOLPwwv^SmNWXxJ3^dH4SPBed&eTVtm}nKB+o|3(Lc| zE$xEDvI5=tKbLWcMkxwMC>y`If z*neIzY@i?=Zg}R#EcEp)sm*o2@RcBmAb7Loa@fUNx_g|zkQrgPUPB=`#k2(Sl^-X8 zz8MnD=&pOVCFe0IX@mlI<<_JE3=4#XftTZ?452E*0i>iPTp%>ufN%ywDQSZz#{|xO zfL(;q$) z5bkVle(9D9&Cb5XsZ*&WlMfX}YL?as?kh3TvZe`^RwXI27QC;|35qd0?RHR+A6%!O zo7+Zd+#V@WX(PDq?B<`M@Vt!=4tRsO_QBV8OhVO$`&cw_y1>_9j0%gnND7`&0-Svf z3{f5j70wyMnSj=3DEXuW+fe4CG({0hDLn(=3x~u|_G41IZUu?Tt!yPGh#FP_JS`&U zF{D`lev$LKMUS#QKb#Xp4+SP{G8y>mA zM6rW4{eU;fauXb9s5T^pR#e)Z8yyx5PY*BU5>28D^i&NS)knRx3~8CZAR>+u zbn*<(8@^DZ<-*Iu>xmL1*lnY7Gl)^6u$&^k+IH*l#i@8wURbCqA{U6TaU)6#yFh6v zloaHAcdj`|6nd^m0Wy~`*{+U>j)#b)zx$UOlbiI`P`wZt4g$lUHJ5iGME{azNR&?| zoLw)!&BlTvju(dKfL9)R!vMkW1C?=w3Y-UrSPgN}#FJ?W$jJhk2|ltZ>}|y79YQz^ z3cejLJ@`*Gh*bcL#i-<>5fZJ9ILd+SMY;~pt}gGVr**xnUkQsZgQ>pQy515FQC!S4Tnxw(H?+>|NG>` zV}(I30G=4^O7RGgdc`Ut1nX%%*o5IQ)+F#==6Ve6H~#+8RS`-ea0@GNL>X}aUsi&^ zFn6<|#0yRu*ce^h^TjDGYP`F_3${=+OOZMR|4)BibF8$4tcEVSIZzA;6I3txpD%Lf z4s-~>2=h2tKzLWKgHJh=X<#OKU@G(x9B55lM7mEB9u7=zn$qf2{;NDyffuWcV6nh* z<1bnUumP2bl|q%k%S1z*;&so(lNqsr7{w^kn&vk^hQBzX(E2wk(VuIM2b(+)QD}@B zcoJ1a3lsqb9as7&^ssju{x^L_97rVb5R#z9fFkH1UB&~82mlunJ__~WF> zU_=N}C!c%xg8023iO;D#>Xo1$Cpu%-JD=R&bid);#&Gq&M?tMNgV zLa$;3&XzgD)iIjqlWYWs?-Fyuy8*lwipN)!CVMY~PQnZV_SS2XRIPgtX5o7pA2nFkg`cGj_Djf%RIrJEsp7I5HTyNN@ zJeBF`aM@)GG+U?c#(_ z{r}nwh3J)*_qU1_SAEyS0Yi?I4s-&+%MSs?zbe=uXiEG~V{Q-+js|$Tse$egBCvXf zLC|hwb7VY(86U?Jng6*JC6;c_0K5oZE^;H#v`5*HHY7FGFCa=0Ux*UQUz*OI?h4jC zU)O_wIZ!mh6bChMp6Aph1`(5#luVIZTM2)zXfJ`l0RphhKi#khP|Z^0)I4ie<$;~( z5+8xvfgwVnmk|8p7LYrVUIm+S8h_njN@OIqA!tr0=f`X~Ej~7L$K2+?fY@sU0wQ-D zB;^vS$GG$ZM2S1;ojQgb{{w`AUK*N{rBf5}($s|nWUB8$3}#~i&uhtzpio7ih^Rnx z3695Rvw%(`*n`6GDb-)s!2cZ)?wEPnyZ^m5{}WuV1f>FN{=7UpHxWca4X|J>F3FH) z3cGS}Y^NWIPO77gMHM-*n%qE*4~<|!k+`U1xG3VeK^JK2FK?R=usyiIYa#vjsNq){ z7dq*E!!Ny=kRl0*Ul|ig$|diV*I@NHvFJKDXZd8WGB`R)eBkW`tEXe&7Q1K^J^|{@ z#Cm5_wEdERz^MN%W{dbD{P0Ikg#+HOHQCDr4OPIXhg=1iJc=k@0&EwM&Hf3AQssig z>t5i33D$wPOiO523=0K^NOyoNgsS@y`#(Yi06~P|icHS<;w%bHJjcPJiXe`76c4$A zkE@*E^hJPO2wo~^ae*IO36G42a!7b-D!F5>qE)EvA`JgyHbH;W9c~dOc8)ekU!o7r z3C@`~*mEqpXIXGqO~63?pS=Gc2|)TvYg*GZEB~{echuC8c7bGw*1FK^&+!SaR8sDu z1p(_-7i)cm@au49{@iaU71v9|fFwVAYBJ;56 z=%95$HF%xwYPo3anQew{0=e7TZ=$_Mf|tWwg++T;^jaz2YTzj6YtlatTg3E8(n|Nb zNr^c$&r$S=rFJ6Xm3=>UhqUVahg=+Nui)GCAk91a2h{LCIRFbj2f*Gzpy|_nK+>m< z&oGprxI|t2EkQ!hvS}G6)=p&8#0g+oMVRh~2qg&=p=o9LWaz)1ZwTxx>#qc0Lp_86 z265W1J(?)guVW2{p5YPw-${YOLndCfA@?I!b$cYYJCfCB}G08DHKrv{^nDf4FA8w zes(T0xP-Gc@cQ1GN(!jl^XGlWb#QB+BU`1 z+hc`U4=S?LDaGsLFI$k5Ck%3m*$c$izR%o|NT_6cXOwKw-_cGWF5pt(^MY{5txP8A zT2FkHFPG@9!}J!}%1HS~+gp!{$OgCWJzE>c%w{b6_)_jVxaq$t?R)P@DyKH-PYSO_ zh#}7%dT#hvKWNItL=#j!Xls79+NJd^WcJ%=;h}YA+8b(KUr+Pc!bZ2qmfIx7>ozH+ zCY+oKxlKdcdAOz)`*r{fav2;O5%Jer^1^iImxbk zS5a|32i}E^+o6t5F%H!hIp5=6iz%4GJxkI;zCZnG(Gq9Mcq%(($I?Ga6SmtihEvx4 zqkD*djM{qrtZPD7rmO4T#TB>2&INtpL#lTB;Zk?{LQvej*3QU} z@#XhrMH3Ial33;!)GIWon>zK9a+*9MSYwD$Jt`e1tos&A663S?U4gVRf$k&Pt8H~@ ziSZuTK%$7aj4JAFyK5@0hzXidV|lY2jx$+yvh>f?bM$l2LG9j9-g4IItgEPVG#9iK zDs1073#Uy86?p$eaiEGo{0SlfSv7G^j6`BCf$cqnZIoN2zbC9C}?$)(k0 zS8`#x$?0S@FDYCGY;P;&vjO3nK=YQ|R%b@E)O(HJIG~+we{Ixha0b{x9bD6jeB^%)4lD)$IP@|ARSLK++xTDz@;(_L(fF(U<;1pWpzw)Ouqsth%BA5&?iTh4aQER$4XgnNakY#DK=YE?zTN%$gWSOgh@VTV zG{La!A!yoFMpYuGhyV>(U+>lh>RW2fKL2_**WrU&~! zp||Q7Zq~0bCyU%XK9bf5!xF1JorMA|nT{1)Yw5%0oAkSfamh7Q2c*@Xh!V;kER%6N z>BFJXG7T3X`1y?p?RW6_ruGCWlY`d*$yH@MFJNm-+Mai~Ag?*PKZoa&Ej#uM|*#xeK z(NiX!{<&Pznc!1VL&0w*L3(A}o9pb(x})sLQ(&XRE&kvuMo0dbR+%(+{lZ{z!-7xfXl>%&2@awo*T zL%sVhSKAiY_2GI6-5ysBo-vfxFreU?b}`Mh3`f-D1<|usFA5K?JUza0O|M{{sOBVW zS#PyZdSJgub+|mCJy1?8GbO65^>7N;xil?BKfiaYk>Nq(2^m}Q4wSy%G6O3E*j03L z#~UW}J>f3S3sRTvZ*i_I98UQ4yni0h|LyLNt;pf(`$V?|(}Tj<3WF}*dTAIN%lJ9G zzrQo;h1F(nV(d)*lLs9Fetk5tL#{6@n0_&$x<-i=5PAw zBNp%x?vi@2I9S9SM$H^%BJH&mK);C~me&BCq+i7#K-fT-HliW~Sq}g+rUtq~LN1bD zl)`7>>dA- z959qfxP8rTN}G2-UIYEgmK`{`I5pR-`&x9=G^ff=`SNF6KD%n@*Jt_jY~@M$IkMRr zZ23*Uo$rS=+q3Q7gA7a{!?Ps zhR5n8%B5yzcT~h>*4)~fr70q`!kMAnW~G#%t6vTioKCC7Bt|=A>MJl#-_=T_~Ou8u|F=`M^*GmQj=B- zs_pFxI0J2*&2_n^1y*ZCKZqo4^sADFv!6OBY~Sf?efMV7k>6x|uwZd8#_P9o&u?Rm zdGYHDI?rOWmg!qm5q+h@)&7^)iai;``JY(PrAJRZ{04t=QvYW1ZRQb0{o5S3w-5MX z_8(TniuDu}eTcKVGO5xEXAlv>Rv+)0;TUBd;*hY&g}%y6SJA6zCvB>Sdnfc<;nbb{ z^h?V_u5YKTV{ijX_)g{kPVuuh;I5zu`;7U{o#4xRLxTZDCV;B_zn6$HXyX7D?tkU` z{l~D1xeCC1wF@wy*7h<~Y=2DDZ>#w&sFq&=0^`o+ z@Y5}(C4J?T^9?^_9=bbq-g5O0H1Yeq?^xWQYuwj?E`#D~g5mM;{L20}aj5ozpa}!Z za+~+Af~S|bEm!Y3>7@6Hz`(MqB0%8?@`Fcz83#iX^$}MMdP7v^Z5Yh7aNcpO#qn4G zWJjTsgzn=plqPCC_zF$8gnyXcrq+G>Q&u9Ot3Q#KRBhdyAT5|AF??oPQ&45$_IrKW ze1yCe>5}Yqa`w9I^P2MXpOM!gY^pztFYh<#*wNapH&hNdn}}J+^6x&M$!%w!a91nXrIP!hj-jx7Ga1NWIpQ}m+N6}ej%b2B4hDA!op?%<#MAl-(U1p^cA-0D>a# zG(Zr8FPKM#iIE_ub0aspM3NzoAECQeAE`fgH4hUD4N(HLQVCtM={SfQBSHgIpEniZ zdUfns4X63H(Cp){MLA&KN7KF#2kiRa9X%3DcNvsq6v>v3?7l>?^riW{)aSSNnG4Ot zs9(`*H@9A9Zv$TMA-(m?@oD9hLb`-({x$UTI_%MaEHXK_kkt(Cb%3a4naShM4ni-`l*#}EZFt;>qpPpF7UKd@e(3i)|VlLNAM_gU}RwV1mg7JUV^{~mCk0JC0DW={zfTocR1!XQjUpe5T z2XiBQ8RoV2*^b}5Ry+x4h*=4R;-Ka5_^diuhT-K_u%|w9&Nh5Y70zXsvp>qe9Q9%< zvOm{kyFb1rfRoQa^3^ATS?&j_3xj3`b}maz2eW!aE?*wsvFKh@}Hd zRJh2HDB|QDcq!oUvW!6^+qn0Rio3%nmT=GQb(B^C5qIvFp=(7%W#N?j$^Am;mY+6* zo75$B8~o>Gj)~<83y3SXOE(6_V~r&p9qGwpxu2?4$L#MP z?`_Z`=W5UDJhe}Z6?RFd$Vgb|_PFR;>eXrcWAP)ws}zCBV?6%v#|gU5A+mt*_Zt== zuq%E{90+zKNfG~IHpTw0_Gl10VCA@2HzO&>Z2)$I2TDuOSbm9ZfI!CM@wreAI8V;s zF;h*1{+KBk?|gpe)dlHkKfsdb0{rPAa&@!<2f&8)@caVgwJIAT%_ zE4&Ck!4C~KVq*#T0m?8>Cph`HFY=>Ozy4;r$o*@r0{i-aG~6y z-nx9%06PD!eTvGm8+*dP#+8 zV9o8Qr1ub!)v6?u720U*ESR!>D=DUMb`_Nv+54`2ezyB_*HdQhX?0g6bAQP`&hRV| zqcH9=_3C0~&IAN##g?)8u`_j}b0pI1$PIXp-e$bI)?;IS{;7TRG%EI`ggx>BWWOnYFc(!$F|HkCs zXJUtc6I7FeCAeE)Vd{9W>}DKV-+`|a3FjYRE#$i;t;;=2_GKjLkpuno;Fp&geWu(z zg>8wkUtSlJgOq{+WQNFDejWceRe8iKd6(j}1OQL&$40N!qi8Gxl!Kf9AX0Qy$6%twKY5su`O$DR3z~x;eF4KoK!(X`z>kEe z07P#Xki><4b=-m`jR67d90U^&$pszzKlLR*Hvn85O}rOjdHh{-v?cwro5a$KGJl`0 z0F;Oic+~Y#4Ag$ZH9`Xu!Ud(OJzOMZ7WUeLXfca*NpXFOs7>@~Tu~Wj7(UESgp4e6 zbY-3co77xig3v+}!{N&wObE+EOW4_#m+r|i;+!{UlK(x$(S@n6jqrT}_U(J;3;#7( z879Vy2P?auG1`d)l8mN?QJyaik@JM-6f?wOA1Q#8qYS{rng|r3RAmb^Li45WvfZcYowcL;vBDkaY0pZxkjmtrLrJ-fNifV;ap zMf!2sUWJq8!&S^1Qw0PeApnTmLHk7zmkn7QAX7#O+LwONz{vlt;f;V+C_tQioWUvr zEg(=VaX@+ghj96q`+ypUvfA`(4?S(=+8e*mt;9o31wy(A9CnrqmPA1Mt3#0tDP`=R z+PgE?&A0j9E~~tvfAC)y1YDP;pb-fef?VeSmJYI&U%c>tpx>dCc9zYiEriDrk%DbB zu9pqyd6#B5e{~@+5IoLKRdi`F8@l)l!R25%@8hg%qo~4z2P(hF$v35D<_O#H1Sm=}r-)8w7Pok*@z4-Fxruz5Cwx z{Xfs{x&w+c=XcKcob#zK)rh4#DZsl!C9)TTKNpw5n)q5RA;~Ym`w4;uOa0J|GY?nVg{H<dnIo7c<80|rd}xz|a0uWy9|v&?^JNB&nPtPrt>L-u!Ow?uBh7dDjub`VgDE9qD%=r;6VF%ugC zKAH%&!jcALiSlyHm}5}ll%DgsfGtnT&*gk^*wyS%!L&yWXy62pL-dc8FZ)>(_G(cs-@?#d9}{a!&N?u?OpTgOd*$*7{jyU*(P zSLuI!mF|bZoDu)v4Rr49u!;u4j+K@VkAD3SMFMV?u!?7VUSp2NuS!(Bg zLSPT7pb``~=>CkC5p2#x98tF>ovfZQxgL=?lN-k1z8u*= z(9M<7Fbz-d_o@6?sQANG0CxK?H?151{wE$RCv3QD0z*!H7)Gv%7DqSf$Tv`XQTptdf6QYpY z{G$;5c29xx?(tu+^}oFf+C~aha>%rKZIG*W#iuYQzJa|49S5B-Ve;vypzPBEaO^L* z*vn=0thw#CI>oUxyZ@b#V^Xu1VGUlo-@M*BY-06E&{Q^n{SqO-Lhflp^{2Ms*@3II zIs)EOXSn3?650Udj0PuraI$*-OPEE+^l_=%6nfWdN9p;bN$)c!9)3p{p*qdS+MI%U z(nd_m^@vgIkM~A*O>h<)sm3JJQUXa^?tLw`xi6c2>7-PQr$zaizi*f_svT$1Vn#oT zNd#!`2o%U7PxxuadnDtvC}ZqMJmP=w&kV!h@f}mwQo~&f)X96e)OX?LA)Fm75&bAH z{j!M7p7MY06pm+*rOyw(q*6+vjhP1iCJShX!rxWweQ=h^8Gpjl?U~NCI$Pd~ra$)v zS+s4f+6iNCDdL6`L6IV?--5sYTC{)5dyqTYA0WIUi}^3n z2%G>0<*ubfhs9B7L(4iU66v67U1PD~&%ng`r*0SW>p}ca0CM(o+VB@A*utUE4p~PTeAw>+h;AgXh zLZ30i$bbHg)}`S~J5Yzj$^oeAWyr0ZYyXACb}eDO&K*RuG1QZwXPUr(fqzXu?JctS zBl+|{ODi<2W6U1ayL^P*2OBC2w^2_=*Dq^~5_BL#AzThrf_GL{?ag=EO~}$fPfdb=}1Qx__Ro0#^30i#$z61 zC8->%qQ&U^b2xTa9>;=neg!*_Ed9FWUvGbR19Oa+DB1!F;g%QG%!)^pm&EH>^y=R& z0PChB?61}I*)Z)*;*9g1;Hg?SbX=1EuR|uXWXVrzP$nU6=yk9Sz+f@Jher^5%NQww z{i_N8_ql`?iVxg5D!&WVzX{-6iIK~%=vhjbEedW4r$W?9$Nq@I%G-2qb@1r_tUUgA z-NZk2QU5=4Wr#IYaV>W2IdYdQf!_hCw5JUzSm;T@K7YBISU!o~#l1M<%1@<9bDwgRH1U$GQSSR?a~iRcQ5 zwc(vvUaV&Q(eQ@TDz!?BiTJ+17fJ;OBYn+?FZ||!HNl~spb%Yrn(}a~UTn4Xs@tTlz*-X~{2wZ} zOlb&&WrY!aWmnfBM|R>mRa!`@t0qh)?#g%|WSRuXC}L9oEMxn|&IC~;y{6JWBu~n% z#Z%XVn%~MpPdTxaQ?V3}k1_YC+j_G?TMNES#p26APH;k>Vd}#~z-xG|qQOmiq(cae zJa4Q$QW+C>w67xNM@NT{-&Dmnvpp*M%L|EPW6qzRz=Z=82j}_VQU0>ZSjY4Yx3_K2 z@8$$CUuTr2<~0fJmV7KdD;fe3{2I4()y~9xF*lW z!iuWdusUQGxFA%UO%MDTXs60!`F&Vduw=uq!o2xlY~AftEiA-L`-S)M5VK^CEe|_( zqKK1+4}s<@Atn0j7?RDzF;9+OIlyE3!sPu~wdAQ7N_8YbC*gTvQY?fyddQ;PH*v_q zBJqxkuccJ{PpiG6+qM^WB)?Wd$1v;8jAX&!3`bWOhL zdE|a)Yljf`nORYEUnzp&5 zpvdtTSqS)c8zd~Pk5BQ56El5G9zLro`ud7;t)h9b+$pMYsGU80OW>#uIbP;E^C{;`}^*_XJuZm!_3!y)G_V>;}gTLo3_ED~=63aGM zM?#w>{gdeyEZmQtv8-+NR5;JBJV5|O>)CdPqo{6o8vMN$w|q(yrZTbK%EhGVty&}J zHdOD$#NLOCNkz5p2DF%#@GpcGE~d3cds+vQu9G~I&!?503vR73IrCK=mUPmInkE5L zTLqSNfd;%!wt~vJdG1=SQE>Yi0sQnU%5lve4dqxl4e+lKe0uFA`B2t{&#UY~TZb@a z>C?b?*{g3!Vi&DfJ?@&a8s5)-uH6Mh8*WWuhTrdQU}d3Bm66-1@bk*AE$}yJ2fwXAH{PWC(4UQ5PfGvN0c9*{?Yp z6#z3e+KK0_>)H9Sf+K1|M@IXC7*pt-G)vFqRj*-)T{G=m(E`8TdV0rC9IrgPlfxne zl~%hCuWh%nUx^Bpma&(uo;I=}9)*`(_F5<6B|q{%V%HRm2Yg*!Arob$NoDhm&jX8} zsJwjUr`VD5_os9y3~Ag+`4bk$C`&k>nFV^4jH;wFz2Nrn{P$27CTY@AZX_u9KjU%H z01}iyMB@$Ax?~nbi}|oXohhEaU&PwT@s;@K#cNH`LVhK=&wY63be z6F|3-=PB{Dd6GyLWJF}-1(9AI1z&-=)&%A86+))I+<4#z@$5{u@skLJ=}r7reS}{ar1O3=y@BwRSx}lDfS{Oe}Y1 zLyEaf6EpHkN6!+?RPslThs%Q#{0L>E73a3j?xyswDGK|CJCm7scCG_}i)`!wYS5^ImYzOUc)>!hgk=Ax-K$58d+T6dAget9mKJg8+jHRy}? z5?wTe(Tjhd?pT7{iyxPkQXQ8)vnaX1quq>LoIg`;(}i3pjhAwW7!zZ>1DlPLjB<$4 zOKgx*mBLG`y`mwRQ7ldKWRtS-XftLZSCTmxK~7p7ElLb@(*PG72nj<9{RP!vaxxOa zSJWV0hrvZ95!>Q#HY}tHSl0HXQ%*t{!UlbcKhAg6LM~-VDp08D)JkmsXYlhe_oT{l z%U07GOooD%4lb$IQ^UOXt zU&uAw6*xqsMdw`5xFQlJSB4`;_gXrUt%HLOtMlPo@>J1)@Znh{b(VLn_GbNsSVixytn z-II@eajTzM}Pvn5itogHhYRx|cZLn!Bhq$QVwDNMrScpE7Z8JBJNkxY-Dk?+>3Qql6W z$fpRC;=K(Q&o9^JhPE+2>0iaWO{Kv6aS2UN-jI9L#jhpGRyc_v1Owq3iF$W# z|E8rh1VdR^HMiHwA`Sm(dv(Xa5t&_b@4&IK{mSaXhe-S~YQuKyG7^2v{3W*mYs|e9 z3RAP;pLW-92MPiG&j|%YD$;NE z1VHzUpXH8z^!Vi=MRA|klvFU@nelqp8|B!?yARIzN_xxQcyKF)t^f!hd^m$I+@2Ngus0><4J3^GIz?^=tAu~(lVknj1 z$pxy|#RmRlRlLh*hu`J~{7jUH?O&aTHSE`A?|#SC+^;=(mxEdiVu5ebxn2KtCMY@D z!;-I=8o$j7i9k%~`$HRR?UP(PTUNbB5_It$(bZr|9p;}(FNjcK#fPcULv$Wt_>`Zj z>8Rg-x|ScjOJ2uq6$bstcs=EIfmw3KFm;%>X)yX7>eiU>^yeW!6AfioU$IjG$0WU*b^5%*_C$Cm&v#( z)0veYDQ%=@@onzS(6+|U?HLq6>C>JD&XTcC2Q){wr!GCQgpbyF+Rm@22?u;b5BPc6 zq~GL0FVxkhs-jkvRV}PeElG=S8U&#;3=S&_PskK;#d}P0a*;0RLmF4J2J`qfHR6|W z=x7LCeb$$R#>L?8?buoP4rCMu3Q>dpEvJXy(5V_Nw_?OJh_!n{;^~Dj0wuiK@)U8k zs)Q;;!O;L{7SY7WSPLtzEehL(g2=zg5;fvK*>NKB<6%V=Ceux{&rfUGmz;*fEZMl% z8cT$V=x;9$5u1^{z28DgI2TBRariJ|MM+C)#_@srvTvK-f>m-Iy8m9(&su=rBHPvhA%Mlowg?riM zEA#cHo%aqHx|wV3p?2fMWx;5i;e-@n`z*i1 z@cG()wl^ZVvowFSQ0X*CpTh9+&f3{EF7naN&RYBB;YrhO(4Vw-(m6be-jAsG2~QP$ zzK9*IQ_G2U^GT1r&*?Xt4+Rfs)*lx>g(LO1$Ulw5B1YeFTT9m{4s5lLECoperAc`)dfDTb$pj3ettK| z=GGj_6%HT$a+Ft3!6)i7M4eX?*sboQHoFI+fJsJWbuxBXLz82+9b0Q;W|eoEA4=P( z?2H^AwO&5jD%RJVBHnZCb-qqqnH{VrhlA{u^y!U3SiQk!oEXw9#IE#b#{XsNT`1V# z=#r!HQm`~_lQLi~?-;E}OoFyKrH(uT(_#)Ngz!|le`;U2b{fpi z)VQyb>Lw^+e7-)So@(;VV#S-Esb8yW^Q4-wIWagr+6>>aCtn#TF6&TAiLO$|+ni4~ z7YH5A;3Q;KJ}fwWfAp+7Bi~h=L5M9L_ChsXKt8;U+WLNI0@wO#@KqC0oVDh%n?NMt z_qZ5~$RBm;b4$2_T1P2SW1H?LC2ii)O-qf4vhF;(^UF=U@8Q~FSE0E4-aVG2YqZO! zp1b`~JNpnBhPe>&TE_$YhxfRvl8P)uCYv&Y5%toI21y18TLlCKn28TvK7WYBE|cal zY{oJbb&Tx~Z0-EvYLQZJMG|YUMiaC9Pp{=MFlN)bWc54ts~`cBf7dJ0I>+ozFn^!U zD!MewbshB7TLm@%SedZ{Z*FbGy(AU7yUF3~-=#u=FII(V=PJ=|&r+<87?t(rikimh znfPMpJ#fYTF6Bc=z*1%=>rJ$Z>Dej!Zu?%+MAzWxr{}`wsP82MhIsi%G1;^m>Jisstly{9qGlC@onoV=s52b3awSC0^tuZ4-_ zK-o`1l0j8O)v)8O7_Be_GvtX%7birSIJqT|leg&{N1bLmi3U@FNiRAL^)=Omk@I^h z>6zdJDhrIIGRd8`_ENP5xt(Q;fMynSKItQ2>i0jnTdj}sq6W6gT~w-w`AlYe!^z8Rt>ik~7@8+b+T;iQl9LAh>}7>8 zhhz(A@-W6j%=OWnkQQl)m90sdl|8UMBMkzgPhgf7->2XK!)M7AK~%B~or;gWooW)_ z>x=mdPI6k4AHm1wzI{D%6m8yLw|{-5FFhA@=6JkPomAS}dh(WY$3Lx}Do?&e$&R;* za0`UXm?pf~x3TDa+x_JA-00Dp{oT$9`WT5coM{r*o-7;lqr-$uNqg$;hE)QGc@8;v zn{j)s0*y$+L)*_wZwv5AjQtI3I2a-K&W<{VrI8_3jfOnjm_G zwrPBm#(v{YTaV(sp}Ci^EwPs}?D-{{x7-~cO!Jd^$7pRk~bA(k~( z=gLS!idU|Ih;Tmtl+f<2O0`%Sd# z?>tWlw?(4nW2#;7NG$?$;uIo5Z+&9d6EY|y@I-UDhmXQT9NOCD*jZXX7j8mlWH!>Z zW3aZ^XI7PxjN8=LuAUaXk@qHP(&R~4x)gCr75>e)i(wE{KR4-1Ar8n{eYk4ZMOrk# zlb{wyN{GW1gVnJYj<|?;^{SC71~voYN~&#Tn!hX}l@j(}Ug~9nwnX-XW-zVNA zl*>?{^tGo6bZYIlV8Oa_QvV68D>AbXTcyp}YneQiJJl9PC z%=Ig7nKPCOn*wwo67CMUZTXc_b&XlbD(OHR2A$wF4N*Ul~u$XWX>YjqiTz`nwdh*_e?(v*hYbMy((v5k|-vbK~RyyZOz;b#>>LqYhA@w36r;E%IFT}?UwIbcNDiMa{v4g z&J_gB?98E4pY}6H-8e1Re;Y9(Z;iRdv715dHyT9lQA(p23tlu>5s=+X^s7j zf)*Ekp8AOWn`>t516`ncxeR}v)W_6(#m23iZvWQIHh*L;gc7X?zCP97@MC~$?3jnj zhLUoGr89&!CRrNNdFr`wdTygnT!}Zidy{;a(xP;+@^eN*QXx}kRwkerl^b5oJeYVi zF}R_=5;(0dAM<)BH1O!MN|*6ymmbP&7ebZTO(_U`03?5IJT%wp~6!sWtq(qd5J z#8{AQ2?&^7mLn+4FH7DG!7(0A`eE(7-+y`GWA;?YLhxzOA+~#lJsk;?Kh(=<^{P!1 zTJqOZ(})Y3GL*oz$qOmm`RMX5lE#%~r5*}7mqkX1{4WAq5ZBra6PIJ96TKAz~23sDLd^oJR znOOC(xzY?Qe@)me=r+CzY#QQVBGCKz@vD3v+7mmxfNyZ_EO7EEEv8`HYUBO%MrV9R z?L*y`sIA3Tr4RO~l)>Ums@Btt*f$nY`#Y~e-V5lIWwmd!)091Juu_OXLsKU5Xu&6f#^{FIp<~y`&HbqYmRn`I z@BJ_2*HiL47p(LHY%#q`9)!%HI*?W!L3v#1yqt|gp;Q?hue^ru)FnoVRb?b#JFDH= zzk8hH8JCasY{lu!Fi$0C%h$5b1EuT!e z`Y=NeF)D0C2D9?W$o;g0pKH090(QcNf%BxGM@9GHo#M=~z^Qg$_yiNn&O+jY>`6wu zS-%ovDNMvfY1`!kBkuMrf!k;*A}#WpYN~BTmCR#55Z1>*W~Q4OW)}KAy8@X8cAzc? zk_Zh}3@UDT5JUdF@BSdLxy#xS_wV+Km)9eO=m`IN;7*Pk$XG$H4L4(!4rbyOVmb44 zq{>n&3Q*sG>%~C?N`(^ffLvUtv8@%JIhz98DnaR96kh7hh2*}faN%^6Ct!2p{JaKr zpT^4seXv8H)??1<4t1detf^&w#wE<+mfKNbaFSQUw;q~Gw-K~5E~ZuYeaai`6(jmE zsxVvhC*^v5xB7ix1|wfq(T$%}(AOz&SrF~7$w=0?1z8_R4WlD*gU50G{ol;K$h%LV zuZv|Y4Qvr(s9*mcu6zCA19c7gfiLD5rSXHTcv;{r@G7xWKP0pbEJ zUaX*Blsp6z=^xk>DFgvNDOeyT36T5tkS2P8UJ%x0#bg~5O*G>|3~>@m<*jLN^9x0w zi9G0di+1F49Y>Iuzr>m1lYbGp%*7Iqu;Sm#je>#Z?c4i?l|JT=IIN-~PsB=n$Zf7-1UR1c8CJoZP@^2}u8FdM; zhg4nYS?z8N>6a80^QTsJtnfRD)jFMu2c02IpQ~RIP7evi^<Oq9xgVY@i@YfC8;{KPb34BmTX?c*|@k@vEP`a>KQTQMl zeD$@$Z#8ekfeiKSXbd3t24WNWJ~J&~{iVL&G1F=aJ`e(X%QXW_vWECB_N$zg&j4yo z!IJ01>g8mESot3@=I=<_Z|Zv>rcl5(6jnwzYxcqWfk0;8+#ONrz}(sS`JX!9An4Ku zKM^tQ7j%B_C|Q1vGri)U_^?<|pWru}-;Ua{+N>##>fu5siy`szpum*$Cn5jq9HubL zLcLKZ+r>IEi~)%-jAMR&QkhAp&*HOdVVwf{gG)QD%9Gpkr39r$8zY%_-rP{PHe!#c z)@4K+0Ldao$n+mGme9bbDOiC#fEfh=IAFFm7kFZa6C3N5uabsJPp2Jo#3TRTDjoT z_6jkmlQ6<$ZPm4YKh65)G4g-ijPDV#HjNyZaHnk!BzG~YdVNt2xxRjTq>^{Tgko*# z)pcvtzLl!taaQG`Y8^@AN28S^FGg|($V|UwI8OjXZC2UEH=Rn@=paG}qMrxZqiT*#YXK)CUW^R`jJ7*_rcZPU)Kiw~0gF z=~Nl5EPeA(Lx0t&^TYm&j^c2chtmrVUf!Nae3}n$J?(#fpCL22-2~z$>+@m1vmZf3 zSlcK`1~T-G1o|KTqQ4w}0KPt-7x4)?Ho>gHvr?)owUuR<6#fYs`cnEH0s?--$3(vw zp;zQ5*s6a7HTkSDQiIqY744ENHP!ABd zq7=iikQ-ek?a%K%L>Vx>iAy^t7Bwrr&o(X1q2ffBcAke7(>E6p|A4Es`c2@m7c)5e zJP^M4`asz3oGmZ7QD)}mReS_qb#^E1Te|Xm*xI&*uqfQNbz5a|c+}}ZbN@)02Ix^z zxb#7zdHO3Ez@$=Ud4xzwv2Heb1t~KAK-2WniRnACoaBPYJt7jG_PiaQYpTYGcE<|< zL>%`p;#SFdjLdr)D$j!}qSHGTRnQ8Ee2^v^Aelj%;E*+ zq&$F5(OwZirV^=Qv=(}qvBsXM10+tpKqvOk1M;?jbwQqmr6H)`0Qc9J%&am&bOGKn z(|$k>)v)cv_!Alko&yfx;RRG--@puYnvdmcv5h3FR&tfJo`8C`EmzUnW0nk7nqubE z;+~1{w)s*RN25s3tSpu3Of|t#M0oRJy?C-$4riUZ?aQT-LWS2Q; z?++E) z`So$XoGi$i51aVJ?cvHgRC1`*bbsYztMdC@vnWOex^52M9cpg`CxepP1Vjl%ch7jk7O~ zol{=9UB5y-HH@f`dH&ER9UxCC0a^3CY!iS~Dq0>YDB>(%OwLnbaYAYxY7qYkC2G)( zzgOGZAY(O|dsf`qCa2k#37N++y^86MFvF~~lv{00cx>%6Un#C~4qk?+hF1ihd0 zJ7R*pJg%PReYjqpa|nvGB(PsCie6ot;K_;sL3MQXa{)r99*$9gMtUy(npPg77Prbr ze73%9>;eBWf8ZSd#O{!_+zsZY;YO9!50~%xV~$$S&xL@m6m_+)P97#-rDo74(Lkbb zdens|Z-G_%LP(SYlkVD=qsqDmHF^$b6rlP&2lmX>aY7o4)d5A06uiN_=*QfL{#5$H zHq;A2&mq3}aT~*C@tNbq>mLSg?)wwphTZ+>6!3FQIa9z-_+wVm2lyT2ksahBBjeT3 z++8-4VmKuGW*^e9y~^QxER$QSfRm9cqW&-yuTJNO{yKprTbZSACGCqh4&$-Yk0S(Ce2@^LL z2@_9bAACxyoNFc7tF6)%FM!&BFUY5n_yrA{71JQOHR0^-V&|3=Rg_mr2VfvpzOmDH zMlm!e94+{h9DJWp%AFxB$TY~4I`o$^d?ixWdg<4EFf%w+!C)@@2JX~kGY=) ze5BlI{)|;i?{_Uf=qLTa4+2Aqq%^K}JwQk7yx+UA5V+$gwZFF7aFo|nY0-JtsZv~D z#F^T3mAv_QPRRD-8Y;*l&i474BH?p2U$50MXZ?bu5cr8#reEcEy~+;??P$a%JN1SgEhJ)!1@CvW3p6NmA)pNtwQq_p9v`Z+ zEbn@$Q;lKr$>>l7U#>EgRKL(^+ER)?E@S@jc$$3O<-+U%u^La|8)dg6i_w>?$4jM= z`Zt{g&jRWQfkJST@F{i7Zn5$?Xw^Xu0t;V}i%0y?hQ|TqT;e0s165$amxO|JK_jcF zt13)c754Evu-vnBswfomWiPe(b3)$vyPC}kdN@qup<|vH+v{tSzl^7izA<@UZie>~ zpZhpCQ<(PVc5z}TX^YZriFHkygq>DIkE1@dnbUrNN%@GQ3ve?Ra7aT=qP*@(lqrmB zE^J5)k>Div&dJg~^V{HBuJX_T>*@Jp?r0#*aP{MN#|tm>3E z!;|{!Oya-bTEjn^le2JiBwxNSjZ<`b&@|*%R#NRb?{WK-i5A&a(91M9-t^*o zMnLIoa$eWb6Y19eX%*aZ@^Vl%|l|TV$C$$Ahn>^bNN2a@$o0RyK#Lk zgMx=UeZ8mM<9mx&=QPhT4)NxkSvuJ6(yTl7<{S>rMnZu9AIUU!A*}%Sj(;ILJmM+D za3n8AXAJ5!&7UX<;KW9%bMF_yj(=@{L#}BC6JL%wSPHGGHC?=Gn;Lk9vZ^U&bw|6q zmM?bifF3`aWPXsC1Fik9eBY%+WjXs8uof$w0E9dNSNImboFY}eUeT)OP6~CQq2ib zdwHjtpn_Mn&v5-MW!H79Hc&7vL;p_kz$uz@d!{6Z?)BXh!8!M{1P6twGSZz+0QAzl zHSRCXG~lvY;CY-<>(7c5PL(yiByI|7(bN_+6mkZ5=X7&Og#!zWltw z0B-|V6|bLWc-!Mt_49tX1UHBQVwkwOY{M-Pu4@`-jj#B9=91>;&ODirO?>?!Y|f?g zz$45pCR127vEPi`A;$LXj*x15?zwu@SoJ-lIhgp@4|V9LM_Z5V#@Wow^0!|bzPLfK zvvH-Jn7}dI^}Sox?AD^m*Qq+zvZg~rDcy43kA&NbO%psNtGto;-{aaZ&dgj|ods6T zE{}t5F*q1j$LFVtA8ds@@2^U=U>yXB7Ed%pk(ii5w6G6Qj_tM0*CRa<6|z=We3%Am zG;CWsV=_ZjlZ(`4!oe%I)>jyLPZoWBmKG!%x~ub_2n~um>MMnM7R;Up1`vve86P^u zzq)Vid&2tK?SRZ@yT4IvqeKYV9t-|Cw0~#}K13@?l+HnSwBT8MK(A9?W=S`C;FvKX zw&fh$t#ET&sdm=6gGbaj?&|!^G*h^cL6&53QYHLOj$QLa3 zG3Sv=Tj|vC!2%)4Z*Kuh>2FqtmHjSMUfv#aQWGkVLx|j;|H1YA17T2!IZh$4Y25t5 z#qa%i6Fb>4(?FsMS5kzxM&rP+R+Ws!$+&B4pYgklF^Q&(ZpJK0HHa+uI?;j-;+NuU zU_nks(6>5GxG$)NyzL~)TE5>1IGB!l^tqIi0jyx&vZif`Q@O{i5S?OOx#IHd9|G%P z*R@?N8S(;}=@N!E{c=IgDj>naLuGcj~Y;yM)J_Wv(sP{iyUJy~|^~&bFiSC}89{q};6dWJ} zVs_d+r=O6%bb3K_znz)z$H@t1g~Or#`KFC*XYY=1MGhO>Ol-(psGoXoREY&t@a~jTnpJ@UV!feN$+JaCsAXsJcztkmS0#5Q zS(-5_)thl+H^@FZmDYIvEJm2{MblN8mP^qhvWJsz zW1ik*knivc3U(_6_#F=N!25&|*2&2Zd1J3#;m^6?{OKBg{u`RLHa{F+j9JE4_;Cu* zI-V?t+g%;!FOPN=Kc<(&pyUWR}9I<}76JpR=;;HMMw z{pGVcUj%-@&b+>qMOtkyd|iLw(dGg7ZN<)wyj!1(xyH%#d;4|=KMHRyHqxf^wUUDV zOe^+PGW^7Fk~jGKbr!#_G12FkfN-e1WdN=#5_JzdM|?P1vB*EYn|n?7gEE;B#9sWM z%45V!Re01kSz#u(t<^__2FIdZ`)S8ZiB^!w|dA@t>cq5L%x`#{^mRSn)kI54#I8@=@Bj_#%9fGjZoNxtZcY91=CB z#J6cO_)XsE3;IK6?m~gkBKpo?@RGX-{HVujLI7g58Sm|Em?%A~XEBmC2Eu=EhcfwT z-+gmvik(tYiOSB1P2ab97Fb;Vpol%@iQ26y3!Kbq zrV5i0;+>3h;mz#tRSK9~cpUxWo&n}EQCai3`5ez^dgB^@{!R@%E$aM&X4haf2(j~R4rRqdN z_33ke{{ltI7P%t=6T`-DQ>qH~gpP9_ZniY48(wf*2GtA#dWp!7wW(1f)Qw-iP29wr zANaN~zw-WQp|dxE#$tU*?iZ5uM=9YSNR2laqYHxGFZ8#~Oq~Z=4=v6(L z+;BudJ+CvQGElBjLm-l7?cc&b6HIM~C%`}u{cpB;H&v1in&5bsdX|AHw+{=e7Jok_ z`iv7YS@}UZYb|>#Zq770oUYhr1&F0S8;Tkwj&sk&0h&kuu0XS<|9UuLqdKtP=B#U$ zuH~}J&!HnZPhT|ndQi{omT!K#BY$s{w|?)fxxn7xfcy|xPT=}C{kC_km=TyIaSoT; z-mRd|(Ec&4_0!Q@@k{^n)ty)HkGn084uH|JYdR9hk$-ox#f7k3Hxeo6-pF75d38xc zakXP?9MCRKy>`h_kykFaO*rUF)^<|q3K!!QQ#$7p;l=5VAnQ{k>+Lq-trOdrbKg6( zFJF!-Pyq8gSJ>wb*y$_rZHS=+YWG<>LZPnVRgA|3cZvd3q7Zm$q*YVjRBejEF?R#; zEu?g0;uY$MRTNh^A|!YIDu~XdqEkn55sR(@FsZ2j$9rh>_e?CN2*>oB9#4x@{lD0C z{<;k9kBX;$bU_yysw=XT-G0BSRDA6Gvx5ZL11&G`9Dcv_F4abEAcj*@H zPD-)<2K#a~p=mEwN!;6cR}wbDGxBlegYLl3PSufYfrssgp;?s8*&5(o@RXo`8$_`_ zN|kgnuC(-yoxYvnY8NxMlZxZc;-hz|k!~kP$M6m!>l8=j1sM^=>=J3R43l%&Axc>^ zK=gH-Y~)%5wzw*sx=7b?0>tl5k;o>1uYL#M|H4(j6-l$1pI69mSlOx_l`?XnZkk#> zUtsGmCYwm>EG+tY&2+WR(BH}31=#Z4?uz(LkurK#NAaK#I384#=G1J7U^`K+T$3cz z_o(FHWY>m^(pWIvh7;20M!ly$tlT3#Y=S>SrPUIn3@IRJ8<~XOyrw|6lzhif{M|SD zsTlqbC{s*m@YRu98SB-RUhR=j9}y%wrjmq!Uy73{o^dQH$c3!P6Dp!me*gG*#f_2| zzT6Q3?sSaco(8C}FLEi-(Y>NEQesoYu22cHR?|KCp!T>AC^RwAC;;7${$T~eWZ<&P zNC>*ZR2)KFPzMjPv5{y-r)vpdcs~;`QWv&Gq_}cMU%Gq9rMX(WLEmdXI;qS&V(PoD z9Wc39e5)ya*sI5Ga4lXv;*8(ROiwuA(6xEK0%d^-Kfg2ybi4-QwqDp88@&G~#ApAD z&F)C?r~%$t8OaV!L{E9Eip^ByJYs#dSaYGftaiUaW|q;e(@l{@WGVH?WYs;d*9bqq zbIDn<(DcX)$a|<~aqAR7I{|2S5Dzk@Nt^tHkb1*-6653#Of z3^=@CWz$;Sf|BkdYZ?Kb2N5|r)eXEdMhl_`70-xRYIxTsZ)dBMlah0@-CvX1C&w#{ zl_n6l)=3!-AA(SJG2)q*;UHh6!3llA_i}6&Lgnx}7;(@E@SdZGaga*z$Ado;mP7Cn zy;Fa)jUNL}89|IO23~w`<2U4wCUAS1DHth$)yaXDH0ole!fn~9hb_xv&^k^YSkuY24 zkTfeMIrNCn`I}u#)N zQ78s*ykq9lOscr#FDRaj69TNEqy_}zC}&pU69i&K`?c(6!=PWDw^>6@s&PSrpR&vZ%k$wf!|726BYJ#)Aw608SI9P9R^ODX(zMtfzCI;d7=@ z5(7wzfSf_J0aW)C$i#(AbO(?Vu{!ns#GE#giqaNR4){|Hb z8B!zWXe9;W)uJ;2W>2r`@}NKmNer91qJKIikYK7{e8GGorw?jB2-h|8d5wIK8bz@1@ZStGDLqnk zi+sE^Yz>E&kwR}kj-WPx!6JneQ@-%iRhT}p*a}gQFqP~LqN_+>^+7^JU@_*?{_!5c z)`7IO|Cc5#bHFbgDP)HnJh2H!eH9+_da#1H2Shg6IsV|%SAnw~*#x38d_u>E18{g? zS#Z@225)lFSV&jucUM*#ai@y9Gqx z-T=B&qY`9%(U&xPkeKuqHBn>`?nYY-v#q9miArD%XeH4><#80{RI643{b9EpFj7{m zy@PdaY_yUHB6vj$OCc4Z<^h)Vs{tG@R@_mS7|^Af_D#qXy3?A>ez;=gx<0vHBpb5evHy#HR@K*#B1E|@icz&kv( zx5QH}1)gNTR_FnmUYYTOzP3KH;_;xU8A3GPO` zYhHY$*qbGxF4^83>wa<#^O9*U+4W``s#9{}X;oo39b0oKa}!}MMuZ((QqjVZ1al+5 zUN}l))$cPRUz`ziI7(vGZ!ylbgt^TAezC(iSNEsyR5?oKNZiw%fCyV9_6l`^ngWdA ze-k42iheI0i?|qurq}_&Y6t(6DR57*VJdd~Cc$$IVP@HzM+z!hP_!4n7#Yx5t>kD- zMP7Jn{7n;kAqVzW_WPu(v(_txi4oQSp2$(Yns0a(1Yv1hDCU&!+wW`yiU)A#FN;G9 zSgJM(%oub>>73v9hW0BQ=i#ZmL`yDbT@zA4$J1i#{EF}7dZPvL5vTRIdlaeUXY^#h zdMQ=5gI^Y26J2m48w*tRxb|3BM)}^t(<;pn8h78 z3u3$uUmno8&LziVw#(9>c$ZW__yyi%Wiql!YR-Se6h>=92RIoB z33=`Q`1yBz3`dKNHPuk16Y>t0-*Nmu-rhPY%C_AbR!QlQE*U_O?hb*Wkq{-MyIZ=u zyOB^(QR!|57+@#~k?t005Ex*9?;7v>+0TCVe%^2I_xs~>En`NPYw28^=W+bfyCZM< zrP0xY2t8>C(~aH;pC2rP$C$l(yYX z8oDKpZHbHvb|c>%Iq|a}TG^s*s8&fd=I20IC9*90pF;-6npRS@@Q2z@$<6V}{Z`UJ z;k_M=v?(nNX=i|n<3*Z<@L4nme$-|5FrS`^qC{%%8Ffs*WqW6CkMA%WVNJmgP&eTc z9vflev!2Ju`Q{y-$o+q{F@Gl-KQ6@w0yY;$tcAZfn(VGA&D5DZ7zDG%QlLMq*vsj+ zxEGgJ?F=<2dn-k2NwigF*uOY*QKV>bs23+fj6O~b&*AmClkC_sMdx>>Yv3%5;TW z##20$`Km0Ygm<0aiu)48Voj7w5W1Jd%lzU5P@@>YBK4HmR_SfE(|`lx;ffas;z`P< zi{orNb$_FznrB6{IVu$pCmT?!ZY;AwLX}yNr-w$2Ea>F24agLaM4Chqr-wn;gl==k z+jOh&>!kP~L=(JZP>MrMY@h#Sr4bEZU%Vg@VK^X30`j~m+o=6wSe_e&wS6Gj)A4$J z>ftWG-We&fr=nL^QoWq<8XVZkJ`?tX1H0ODgnWuIt$eQMtEO&J`UeM@jvq8~*D39O zBvaq0MqijSU5k*e%MAe94M{=vJfLAx``Zc1aM!4n7jQ5XO`w{hZ@b%4@xH2_ z^DbSjg_DV`EhDz3Z8RWw4HY>PQE zvxVyPteM5sW#0dWf)n!F43SxQP2F)zR>&_uNE?W6c{$VJ`EbeZH&G;@Kbv=MCWPEh zR=O-TZ?E`q7C#GRp)Y?NQ}ypPdw=Nw%+fK>vZE#JXIzyq_BPJnt-NU}K)hy_buqc6 z*=Tx#E!K(`WswCz5i^hCciNWDGrR+zv!bV{P062gqNgn03Z8^LBPfB^iy2udV8oyNjQ?J-sI@QPMT{Oort#`98VqK6JVyIu0pCW-X@8Ys6<9{|z)f66ZMHhG{hBz03bOU5= z58|n8_5jLEoefbz`5kx1?hk6OCAao7%4s9RhbX>v@>!XMs{jjJZx?!%Bp%MeW>sBo zLiMtWj#%NhTz=Ho+Q3VW+hNh|h>~5?-UnD%#K+(OPjV`+7~Ud+a9Q zCHXJ@uFg!4D9*slDXGowPdD@x++lwb%G)(2&p;?5R&9FBh&aB0z}|96L@-IkcYlu{ zMsDM4>OpV`tN68RvIFy@-Sx_#OX4SZ*Q9J&YI0eE&&%H#1r9_Y0Q>N_woaE%mucj0 zENaIfBd?vV&zN-^EJOhxsl&t0QZDfrUW$tJR(v@eTY$@INZzKNYo-J)2ClI$mRh%` z6p0HK7PK?5^G+Rj(*{0hTesZz*|NU%Wu*rLHgD&$Y`%xZ7#9soCC^Vst1M4N0Z-b< zYudTWD1`H|6_o5q;g-fc3cvH~M|W=f6P7%WJ__#-Q(-K_&tZKT*kzHwmh8Mt27grR zR{Kk~csV$>_igY%n+SO@mt=Z?Ube@8lu??CAe4bHf3C5&qkeCUap>tV02b6zhWmI3 z_nd`tm*UwDm!ScfuaTIjrhPOY%<*JQU6NPtNrQzn2f=%nMGIIqS7cp@N=4R##*WVU`{D}1=ecLapHG<~!-nf<*wbtPozC19mSGbrgN zdeFM7y({@ee`~Zbyth_CUy8D$&o`_KwxM}bc2&HuQ)qG>88Ooqc;6_nL6TGaklMkR zFDZy&o&k_~0P9(GN#T;qC)wR9`&lr1-WdMSC!CtC>*)cme0J`l49v?(UU#vjB5?z^ zRiFM@=yWCuA2vmFs>NC?bHRf z&zIBE^Jc&ndfAR8V87tFXrG9N3r^+1_sn zn_-k$iM+trOEYI1Qcm1g8_CO8LbiqeBXRZLD}bVf^LAD!)Ax*HCix;w1~x);2YoGO ze@OQ)x5qmY%(KdYroPd}+yPhX&y#Pk1-qQ-qIMPu0{Cj>H?qUyjxgaSTTVO&tDqon zDnYJ-@Ku!7mE6Is_kD|vyp>A2lJ1PRu5-)WA9VC9Mi**~?|!%Ia2zYD>yB7%QQ8XM zE$|%=ujBLaDUAJWWO__h;{A1HR397c8%|_lBUZetP2BiMkTHv z9h7^vo{7@D_UF6NqA(Ly5#V*IWWbo*JFJYbs>-LT35tXDR0`($d!3hs-?Po5v{cOK6FBi ze^}jkFah%Cq6na0M3GHz(d}FKA)S4;(d2U=CT6}29I<03m3B5sQ{7+-N?U%mamlz z{}luqa<_Qs(zkQhwR3k%cF8;ON6~m#Lk_KVsG>_={YRL01|6c2)8p5fpfe;PVR0Oz>~J3$(Wh8Gn)BuP0Md>R7o&i(K%(E_+~q zUGzk$&9zYJp_r)(4(I?80#uXu#=+(_3(+wm%_AoV$Noq757r2b#&<_!o|%O68lCgd zt2f<=lkPKuRf`X8p+G7%p#x0ZF}o0qI?tm{MY@Ym-zBK(2t&+qm)x8*m^!qonfT;NuOz1unM)jg$jZiqIt-D3gl(HC!TM_^Xc)@4xFx@hSoa>J`D#ypleRgcZ%du$)?zyx}3g;Pb|J@q3R* zIU|Tbks1|*nwcTUxRuJu`ZKbAMWycN)33S~y_P~3)8pHf^vAYJpG>V!z;Hhru-7`_ zBN~YD=+qu6_gpM{q}_281f1|75Y|$#jbmsvm#x?o``e*WjfeOzAyl(DUvyhHFc3EY z-?wprDA@d6kse*wK3_Kdb4k-P%Z(Rk`^GqH-~b$XsO`@%|Hufp{}XV=Y|SY1SM4;A zSIiU`QJobOS@NKa1(LJuB z3qD`3NO)HSI<_5wX~ge(pn@J%E^E)6f(OXOs`zNzwmld87blx8BUwNDEa#I$ugmDw z+&Y;o-z{d*tsc(_9If%49gSmDt}lr>_4ShF!Ekr(c~%y}I<;X_mJ?0%pVrnJjimt_ z=ayrn93#jYU;gYcvNE?VZlhdf{OFQ-d`rbA@BRx}l@u1W`Iu=V-#$@E8N3$p>?*9J zNgvFM1y{C;ayNm^4ZQx@oEhG=qYe(6-!D*JHn;H3H9ABhelLF3-@VVCE09vimPN5? zFW^r&S-KcfTG>K`|AMx_Z|k82Z8GF3eybn{45{iTIn`Uye7y0RaQ2IT!W_Qod3tqQ z()}+iF_;hkl21PU!*~1}Bo)9^T|}43MNOn)qW>HCheYZ{Wd6o;MF3Rle>DOqO-JsG zjHFjn#0-_J)o;_mVkw|Ac#8A26qkP5MMmHJc=Q6RhSjAZoZs~H7s6R}j1qr&Ek|Y* z_&jQ#6R1@~q;>>6B+~g-qxL(s?i{0m$|3CJ!o=ia3SjL@P=MB(j$uRZvrFc&kFT^O zJLoKDmB`16Iqa%Dn~qypn^s%wy{|og?=F!txxK&?X*FO+o(|Nzg6tnitLLjs#7Hfv z&WY3i&geYum*!`g_`*i$mhlV9PKia1Ivc=3=H=R-0t!x2S~WHPVL2VU6W*I>u)?I? zoff?CVbc5fON%Z`iEeEL%MdPM^OW>-23LEuP&2KpeSV4F1NL4;dK3n0aThFtX2I~h z+UDq8McrOR97Q(HbDPb&WJ??co;#(QJXq%{<_jWi^PyM~goFP+ZzNFaZ0-J34OVd$ zm(miqoR-%sch1tUr_b2QyKOxpmL83(vdvxW@7#8{)nxz^I@k}tPhSRZy8D|GwC?-9cwCdJZy$!I;7?a-UmBI*6C0f zsH@$s8Mvs;@rfkZzyCp{eEn+J6I8e#W56sk$Duc}7zgA?afD9CU}AxBkitQte+rZ^ zng7G)E?h}$iuP*k5#3U^EEaC_=R9g+QyP+Yd2?g|8&{7V`AKhU#vMQnPCsBn8yV%yG)bPr*W!Z-0aI_^+$cYTZszAg{ zL{BP8u*(IT40MnN&A(kXY5yCB;jJYzjIhRkfw7zGFM`3lmio*8CBfhd#0!8j1y$A5 z^En)`=jnCCJkuSs<71QQ_|QZ=>PwM#R8QsqCFfAm00trqiC@BsbCBp8z1uDXitES@&uj~0%d8S zl)|RQVO!WBvlt2emx@Tv;R%0Yj~b{(GK&Bm@E5Tof+Ti;GP}WtK)9|HC`MzR8~A78 z%vG6OlT^?GY~3G947im4yIvI6=@Am?XUqu6V4El9Lv@Rt=5_kbJ8B+{$J6;I2I*lr zlKYwLhW_#I{YB6IkJb*>7obE>;j}bE2)l}BzC#G0FN;;NxonZs}TJgg_v@<{sAg|${z@D81 z1`TdB7(~3TI4c@*qdb%XU7Aa_izI$R$xM4{!4sBhNTHPn-P6wn*l zx=N2O;vcwnA~kDUZk__@w|hVY{lBI^n|+bv2R@_dXV)YS&^Ptb0KfI$)%eUV!fAqa zNbWQNDdPQyXZC+VUc{zjF5_kIdaEaW-VzQV{@%#hd0in$@Jx;}%imR(rV+3`8sQ-YYZcPvS7LP)x z2MBe5vyh=Vldp7Bxj~rABrz7>WU1${99w{9rY2ioiGIm%9}RJg4^gO9UzRQ8)%+h4xqTO{sj?Cm@%hDio``U8$FX9`c z7O5fFKxznp#tIf@Fj8o6RH*n>FEB?jtD*j2}$bIp4`UEHq(GI<*pR=ev`7I_pO+Y&@T7@}`X4kV#3^8gSJnI(IOLH?-e&*OvlP zyvSCT@2)Vm)F}q`Q)g55UaHYtgEC@g}`^WjO7^6|k-ktny&%#l5G3uaio=d9N zG0Z3VdL!?bTcU>mEUIzsXz5kcuUHk0#;x{+z??6#{t3gV)HB@Esd0h%kgXtLlsK#S zPGmkaHp_kd1$VLA%cP01wFxgx)@^+S(Oe-PjG*fwW0%vjY28u3id%+k3D3uX1%i0K+nLO}C=b*T9w(S#<;TQZgRe&@=bj2hypW3f>Z$o#$?FWquzux&S zaJ#`~|6x0|QV&P=7!a-gv*ZHczv|8~zi7l9{a^s1ExM;bxxS2lYfiZRK!8yNXcY?u zIx)NZkfMmQa6w&wbqDBn;0vR(ARhb~soNMQqR)5y_4>{26$-!8k9&0Om*SkQKm857 z&Pd?!{j4L}L#pvsj>e#^=iiQ{U*yJDa7a~0QZPAZL&dq{BK*eS_1i~~(-9e~?{<5$ zZPAUReaKa+ENs|kRg$qRI|NdAE>!1ue!nsJfeH&4s{?+7JDe|qB__z;*(5FD()*Fj zbov)vvMUQ=z1@PNA=#G6_t(^FvyrV%tq(6=wdT*W)V|D(1UAl90BPsT9Hopx$Ra~- zgQCZ>iR{_Sfo2Zwxj zB_O+VeZK73t9dspYU({G7fTTec1xoOMdrb>$Z!8YfAQzH5Ya;)e<$x|M`xY;=K;)A z=JpHbkFK<3TaEgE5byxb9koRF?Du9)+j6brE7ehB8|7K>9!`GelZtwwV*UudQ47J-bF-IsoU!1Im6#R**MW#__v=gtrs~IY5$>as#D|be zUaS`ls~3=Knm*iv0gu|`4ttKkOQ49!Sttc_t8>6b&^`C<@buRRs*3XNtPKB?vqT-F z^hk{bMIO}jO#$eU|03uAi%|Oft5vOFvL}bi)&}=3CPm_L1wUgYP4M#%i1kJ7(GR1{;5tY#&vTBZWL-i_BL@!$^^EQd@cDgq&LyMe%?>q;4U?vOAK zpufP`0BU@`RpKorf3a($)boo@{uIJ7&wt1@7v&n(VtS?6z@gZiMb~br1U{CwGG-&3 zWk=AlW?>FEYGR2tBB+sK;tPl5tYexPXa!CuvXHaA?nG#&XV+!YUftQsiuGS zu8JSY-?$yv0s6ypxDxk|BC)SwmoXFBRp~M}=v`H!r31nOY8=+HgfGhYlH2VmjN?}0 z7zsK5k?=xF^OjV-H>czd1K=xlpIVpz=Z+yTYRq*B5ShvnMrRflfoEn7dG`Grvc+Qc z9%)v&m%Zucj7i=jWn4Y&t6bB8AeaL0fb3{fG_flKtEc8v*w^)+HTSjI-WFqc!4k`d z#?FV5%0PF;jYeCf$x%tmfxWNsl)<->IF}6)Bc^Yw-6tI?(&BOjzOG8$T`@1m<)kib z?JLYxObYMD-@P8)Kl)~EkTmaeZgie8?{djRwwmT;ye>E_J|Mur2xW?@3OMse!gkQT zhqBEyyj*kaer|t+bS6mGXMSD^CJiz|Xfs?fEX$mo@Oy!!gM9nzN!MEu>$P8lS*yR4 zvsPF^C0{!(M&9zgn->}u+eNQb^tMk~2N9;&rTh`JrJZAoWb?ZbjEJ7Tp`PhFERJ?e z1QvpSik(2=Q|h4Di+77;3FV2B_S-}qq|lPI=r`y*h4-JDaAT22%eaNpzX@fN{+1yV zY|3J$XhB2K@v>)=K`f{F75S~90=2U42scl>+}_WK2a%t{yI3~KjD~%huwMd_F+saO z89M(}+yv|g5H@XVUi(m?p-@%=JUy{0#{tG4ZHH=a>}SL0nQ9qnoUz>V+lNHkckQ{v zLzwA&2)G2isXgevCOVZ%S)2CwlhJnecjO8Wi6KSThjpe>QQWrQo~cA>a06s}|Aig{BIl(4$KqO6 z2juOh?=ssMVcQ?( zWm2Gm(fgT`kpr*b5f3Cw;vIqH7T!l%YOgq$0qjA_BHM~~S$&T4%k$Vxo-xRmJx1J^Y^O~R`~5SoJ&dPTQipRd8QNUak0P1?Fq8aBr45s5`4nF{@2WxogW#| zMT~E*u4EC2ZK-LM@JEzUjn!#0;apPwG-q@jbn4hkKxESU0 zF%EnA*o9vQ-qNC<*@USt+4kdlaGg6E1nU$8P>X4QTSLzc<&yL#Hq;mB?WA=qf3OMI zm-L}@gEbVwgn;@*Q0^$W+xR~LRT6_M)d>s-VpINcBbJGjXdOF z|M*tFvdAk-u<33|Y`osl{TBCfros0Q2{8Wp##*! zgv7`hPzFebi&z!!fl-$oPbk|&C=$6^w0cC6&1UGH4GxWOl_rfeXO2{SF?M)J7U8aHf+VkkpM1gv^3K6T58Dd+Eu~MVL*>moJ z-TcwAcqhuacuRSn69}Sf|yIK$Y;)| zEIu;7KS%Le?>-%s9^#@je{(nDujYt28x1n!_#QtWK-to0Z$(owc@l@uZT3uO!DAP9 z>U5ebw|jaq37A1fL@Vr{9pe3*I$+BSnA-UqxXs~!*RX!;chCul8{^DuOJlW;$Hj2V zw*x1BqwLn7PIv-^KBa4$=<1IT`;7o+u4En%@34}Vv?RYwyI-zlVC=FaGE?<3((eIo zVbGv&N89q5kWth@zP{;ht{i+?>duq~WvbDOtm2eW?d}j#-eS8f*l-L&CP3W#I}hSz zFgSfrKcq-vC}vpa9b?XgA9j)p5&b%zyJyk*G~Fs!&=muoLmrGPKi}gx@Wa9D#Gt%$ zowlnzbBE5xHD_S0k@V45qZ+`~_oO4;tAAjt1lD7n;>fm%uo?ehYQT&w#3u|WpmOH9 zWmzGtk4oMJ=0|BHtg@+DR)hQ)#tbD`!b zk@mM$&p~lL*+-Mqe6`Kj+(kh`W%~RHdP=>&dBR+5nD1ys-ic-&_W;-^1)kNP(3Srz z`4$n4VVTo6ihHzg7{aR~*4LoIxOPMe)ZV@lzS!d%TiI!`(Wrb<@SeKA;Ey^{{GtcS zGBgtjohK{yy5>r0Gv%ypi1N50ee}t>mx(Oj*^oO87thG{hq zBhPk%!+23o`_&K^#&>n+!u>pNc^&wChKS<#mPwi&pnXBh6JK>+G*+7URpU<^Y0Zj$ ztM|yY8~m1O$yW{|1|l_@4pC&20UPcREPIF7mhFX$$0nP`?yX9XA_p&ID>hpHJQJ7g6xBl=FMk6yV;)A!yhR%5Gu8SxtT=K9s7z3CWZ zG9ibjGA!r`#zFKheVO0Wfu!Ej#i`0`0%!N)j0eS!DL8B|8y9p*E-~O&BQtjOM*x=M z@Z(Ry$iIP{NCfhfgpG(yyTog?ws5V2^=eUN(l%AMw5JBFmo_9RwAk09@lS7c8M_Bv zafk@*F{r;^&WQkk!oLXs0Bo{=W8^O9x#V&tf<&bIU2=JiaSi+HT1jg{zp z$zFc{Y-`_D$mtv#7mOs!AR6{d+$28&7$kTf{lWz7)N%7pEqEE6?ft$Gq^jwaRMpt1 z`MiuPyg|!-!C#hS*ZpR_4)PwT)mjavuGRCz^lRj-=lnF=Iw7Ph7Q}ndv2GPl@gvO4 zMFhw^4Ih>CM!8t7h+2B&)Y&#WM19y_yT;$2CkeWmpxb#6m-87`}{?1$A=%a*UIZe;`3*MG?EfmU$gHVR@451G>>BZf+S z_FUm$D&e>XK%wdaYPeQVdh zSUX1)e&|=fIo*rh?7gI$pqr7iEU<%hOo+cS9%xyJ0h|SRYFv|Rj1;TNY^*Q)hOFT$6FjRAflJasM z&a`_r2&C`KUf~y$$eEoSIcp9!eEkKKDQG9y4fh8+r5R*-45r#b#}RRTQ%SiHll;>q z`_W=>;!bKV9Z2uVEmQ$1)8Cz5wXY0{^4wtd}+wn|IKnDLbOSmFZ+}kw_&8^J0h*Inf{>5u+bpNzVb_W z`A|tQi@6v8q*@uCHJn(Ix!$y(WEhJva-<)@`wQ7B{`0l_uVv_PC0y%N zlrPvbq`=4gcQ{A&ehrh1T_lXo%28uju+z5ohhW*`hZB+LkyPc?70wJ=f=_UFBa9Iz zWK;Kl@V-0=@pFdhSBgU~%-_;$9pB%rtA0_krz^I&L{Rzijd3GeXl%H6u52ps}jl}Z`uMp#HhpThY z+Lr_!)Z@E^tS-aMDB1gG*WV9=NIr&YlOm9;#yeE-&{Gz|B|&z;7HVPhqWyIluI^i# z`6`C_Dk;;4PL}15rQ`#D2QsLTZrELC)mZt!Lt1n4WpyR}a7ILLq&^4SEy8~mH*S=jRF}H+i5H>V#%d{(uEN#mNNs zXTVQiB>P#=O*b#MWR57%btGIRP4#VN8JXcG%(Z3|b}52I{$;hVJQA)WwAJ4-{kBJ_ z%WwObRE^zwe4`7{TGEQSkfP^2)RppLw@Ta#qp;{5CdA>3i()7Byq-2+UmLg^UD6BI z*DSxg3%c?7wtHsO+S-anEX{~2O-aa((}U-r@tW`>@E-6@gj#qbWP)b-?!wT|>agCr zGN1ZoTW#U?>2SePK6VA&iW(w3KL|S1#6Fgsrs&(vPgnB#mm;#E1wYFm$pZ9 z;*P;&5&zve8K#YIAYmhmT5*Spt#S!~Oqm%UD z)He(4)JBK%)H~hO&yE?`EcBl6pFMJ;5JW439OpW}kO;h~BiJS_$r( zj$Jpwt%_X-0_7w!p#q)KYr4HPq%ds;GT6;cX=O+E(Na5)<%|YdMroA{{kyYJn`94NOz*~g*l5PVhppL zGFO&#|I8tO8QbXPn!NgPYBp=0C?(0E_x(=}Vc%zoc>)$R*b4;iE1Wy@Tz#xf@e4iV zkv(~pF2eqfwAw9OC`m3GdK*b(y8U!pSb?3|jo{(jdXNqX@A%Rc-5#AP2rUdI@AMNi zZIk&fgZS$vXQP`tS@ZiioK5sM%ne!T40(1>LD4<~I9rW2FJu2CkPMZH^a9 z4Aest=F=pj-DKHLfMh5ORthv>7-g`+PZqt7fb>aV(30%Dpp);zCp|&TN8%1#!?$kG;VoT$@K}D| zL&N$-t|cF;LWm(<;bdi!`Yt3weaV-Y4swYu>AQ~W5AWNBuhdT~O7NHI;N$+9Vyawg z*V$cJ6s=sz*RfmQpR3n^Xg_b0TPo8-asKf+ak}&s%zpCgd!xy(pNB5)ehqOIj|^pK zmbfvsz1U&;;R}5C{{phpE(@k4F#?~F8H4M|hKlW)-MpI}^j@H647CL-bF~F$DQC&| zejhFFKK*!P_9d0YxQ201;)42VNDWg#FZQTp-1kxOgzxH73EPFfSRV`giAE)kQ482^ zQ42VUK}4L=vFQPAJ)#+tVKnf?yG&E|fC z`6+=iW_BHB+Lb<_E9#D}J^D5dH;$~?snCtvS8lcXuaXFw37xP`H7HM2 zDNp0_@adaX4$MCu_(9v~`^5(gQ-@NsOE;_3-ZCwyQ*2>z=*A*32AkKrPe4PeS04DqyUCq9-_=LN)AjN=4ol&fu;!@hfzUhn7&bl; zyUiVDj7CT)Mmb4S7bD1G-P-9OK)JhQ5O)Js;aCp&S3QqyBTD>}gBQv!7E%A}x&$ ziL~Xfi>!CGf8Lyq{yfFDJ;lDNzahEN6URZ^2;taWh@m$+N72*FnUlxGtmccEfwM-) zXY2XotEv^tugG zH~A1frHM0e?C-^Irr8EF#B2hGKJ5^XU?*#4y>J6%3mgv6XNz9P6Vt};1kV`og=yxC4{9f%HV2PM3qb8w&TupzDN)05-&2-P70pcQm>Db{{s@CeU%mj>;P~ z?k06Kvuccr-7H^n8q;nT2GKG-9aq=Pr1Jw()VwYho7NljUDwa1*MG59_ArqdhGX9a zg!DmN$Aj+TRJfW^bqoSU0J$=&LC}7E(@rFn%ltQ?^^tjJXuH>91ja!-8NSrfJz77w z=_9iHTt?JPEIXrGb3@U?kY~+gJJtnX<)41l{zCNiRN~<)J7P@~?MzfzqpX81Kw@H8F;(v$0p8OF?(nqeyXFJc>Md@FxF;5HI0r?1RiGA8 z-Q<$Rn_!X|HSM~^JORt_tL?jDfqCka(n-Y zg~W7;QX{?dG<_g#h}?%IN5ymFD)_6#_ZuSE$KC5Ou@4TG&wcQH6p|ii9d9yjS4Hi~ zMkRj~j#dq6ejMiW#Lz@Cr5M|GSl|m|giLx3S7PgsaA-Z1w7lW-t9gF|MCES z`QwsE-nQyJX7-V?jLiZAVJZYPU`jZ}5a?6J;+9sW z1V)=PVBpI{#h$x+6;s7|EE@1EXqbYRJZ3=(+w%}hSY*yUwC>!0+A~p1{d2>y@o4n& zs~iWvi-gDs9ER}1th2l+~XUgb zpusf*X3w6ItBTIzu%LwvV23?bh`PTSaX*9YDC)G^WU$th`?4!IHI%Wi>w{Kj@C)wj zHty_j87lPj&@RT#Na+tI_k2w6U3NV_>3)0yN_g9O?<7pDk!;rX#%n?AMz`LV=!dFB?}4_=mg!kF{NqXx~y4Q?CVF22L!?pt~bJ*xMloJiReu%Ofre0PY%062cX(mB%WP`U<8&N{p5<_X66QEM9c6xAvy4YO2Zmhw&!H-#R4!*&lNYcE*2-ML_neO`4XV~0i6 zT0qd0L}icFS^zhdkNg%Ze#O>rUCp{ zzT{35T$nc!@#HHeCXX2~M9B9{qN6lLWdq_pc~#AYpTxWJc6TY_n>)(e#-DSKSjFcY zn{)J0kRO_Nd#e_RKP(S&N;sqx=#CFTF^J(-3QLoc0sWBjX?TX35}m#;T<6LO7{oy@ zS#?tPa}@8%t-e$aZ&_0kr)<;1*i^}SR$wsBn1JgCbTw8Nia15L#22jrp=^?O+j`ck zeY=&t)^u%Q!^JNgs;Z?j6hJk4s2d;O8|BZj80~33dO;cfTHveMOsAy7vzcc@ybj@6 z?0I4H&aG&rnIk$0@)L9rD4)7S%x?>)lHi1PHbVM$1c--3riH4wq{}DSVwSOUqravD zG9XHLaekx-d7rA3OUnB-1o4nUaGs*#vq`&2jkTC4&1QuA=a=VtaYXdVn?=Ds?7|<5 zR(yg6ql(_x82Qs<4WhnxuwfN`N|qZdx+!~Pmj3eSC^aos^CUG#`3bAfQ)V(zpJv`Z zVA_d&bCDOFtU(Io%dBQThhM@9HP&|4KI<1h_@x~{=uw){n7sX@DKF-iC<(&~6Q4ld zODvhql^=CJA`ia8wNy&%!e5@2G(11U{7hJ&V;A`@Q_6#SJ$5dSHc{t+&!kfR<2JiU zT-(JK56uRD5&o;+TEj)pn!L(B5rh}BFm=!7DH!cK=#=ClC2+(^;#aUijC-t`CxC?WR%7HdQAA)e*&IB$mIEQYnlSWTcHA539VTX%-Q(yw!HRk zcKy^rjW~qheSg~ipp?hSVF4lyW@hjyMq?uywd#nJLUH?=C`QBV@!g7&W??M)VOs>5 zvQ`hvqka{g$~%>~LgB(B1dhcg=5=HgzcZvip%mUfWC8^OZ3|fwp$Aaj_9NNz*&RY zqfW`LN<>H<`;0sO`${;7p#B-=Ezmqilmd?V{Nf{4!P8sr!AxHw%R)a8CT~)De0m9J zW9OMN+IkMR`0gFzQjvv_;^Y4I=%v;ic!1?;L=9K?`X$R#8bu0bF0c{>pXKxPvlmxB z$~3)Zd)YkM684#XYG4}{Y@pYqg|Gg)88>awL{P?|OsnBa(UN{80vGZ;7r|!(?OT$k zF~afEO~Gv^6TA(KBGwc4#>S%|MGp;R(d>#ehLq)o;&!OfVw0dz`Eq&QH-n-tW5=O4 zm%YAEg~G*-zA;u5Di=og2^t$3psN{6L?w6-Se1f5`zj{E|CtaImEg(!C=#?;`Wvr7 zNVho$ih!=y6CDsv9&1dp(|xy+>Ad#OdS7rlY>p^{X!tx@}10d3sa{ovpVP*cR$&P={M)uD0EbDkg|4ieq zUevo@TVQXtCic{=Dq!)&j|xpR*LnEOW*p;(6&r-7|CK4qaGrQ3S9S?wk<2Bpuqz9m z)Xfp@?O{CM(F_BAv4?$1qzn$#43&;?00~~-@pT$`R)v~>Jhdo+(6T>YgY%|eip+8b zCJ?R(2?Y~)fI-aqhJ?S)bd02>wVz_*`9g+70> zi_KNW6V4tY0vj@-n;o__%BFL0(>3=t4S3Js^--Ifc^2-WpDIPnexhgWZJJ=p5ERa$ ztN-&+O~+C94fwG8cZruimbU$jK%~hud8nZ^;><2VkroC0x7TP)G|r$5D$#M4SoK^b zc6etu^E=>2iz2TuOdnq2wAgCkRnJ;POs_~cG+s>f4}(XL-LLMM7@UqoHNa1TCwD$fzftL|y~ofhqQOVkzVwe6iujOiok32m}81vDyG^HI*LwdgH!{Ub@xW!r+g5eV>c;okTA;x9L8+ z)A)MXlsE8Lf9F21k535&TE)G%?ouaC@8R+j#Fn>c^8P^#-?zRL*C5h7 zh}cfa^2DLi;po!yFQgOj&x#N^)iHf?068@BA6ucRFN-y0A{0@S^nK>o>O9IhC2ma} z6>BM$m|yJxtLDor7uK#W>#d#~YhKJz_1@^hMw4#gNuU+JcPDR{B64zbM4b&7mJ z5C)#@H{Tn1VimKLZ=V6xM5J`tTTa#Z1xc>I_v4CdDuegOua<;3&`)V=$OHmSRC0{lbeqSX(*e{OTP-fIq znvSpR$12TL`g)uUyt^Pra!?_W!t3eahQZwYQFny8YJ1rH5t!$)Sdp21SMx7^IO9LCGP+0O=G#N*KCBS_Ba!6={&6 zTac7)r9(;v{M|gybI$jB&ikITet*3Gj7w)N*P74gzW2WNzOHL;un;)_$BdsYq;vPe zB+C^Z>wHDvVT^%_{|1kRv&po`iVd=3+pKy{N!=^ttlEBweQvG)}g(9;yw#P_|nl9+1t!+T@BoMiN)H*aeU``O>Gx+OH%sLcG9 zC8iS?g#$=zHLbsW=Qb4~pBfWtt@L&Y^x&Zz%=(aQR;@K)Yl(Hbm@Rqg+}nRMSM$sQ z(a#CB)kv{vP>(E_&-gfaL~-KIfICX1%#P}NYklsoUxph{K94#TQ>#75zS=-u$( zJXT^JC|Ge@s`AMP3>!61C?|C0#z;I{>oG28eP`>*bF3E3@5G|`lolfQ&)dv+s0s(Q z3t_lEd~;jN-ifj_JD}#qH)ypF)3v5uvi0%zfi>hGM?STc2zo?|n;#NR00fc{_PDj) z^-tW%1Uk=zeqn)V`}W{mx{ELUfZQ7F(}iLkiSwW2)YWo_Z)HwE&=-Fn4*Uk_jnYOi z!%MRu217n>7IbRx>OfAkblDV*Sz`EJ93;IT`@&1+VH8_nuW%#20KL}2hArwS7*!-= z@NK8*mgzK4+m>;Z_qUG44(8HUdbXxcTLuvq{TunqB|cTo-R<-XB{w$~tE6wJX>-%9 zSn!3IXR0KNi+Zjb(~4X$WL-OA5MBjcP;YAHdxG-~xWMtte+z!(U=d@&e*=d)EIlSRw9~-3yt!xpXsoN<0`C~Tv%uCW=l^?6z9i;tIFm*41kTd~_9}1@;%eyX>3qcA| z1vbl0)TqJ(N8xc}oE)HIB}c6V$9)1VVRaVSD{_i86M=@q*$`d*mJZA(N_ zrg>zDd38nG3PdZbwJmd))mo_gZnow2lkU#H@O)!b{}49Uj(aM2{X+l3aIGm7Beh(< za-3Z(tUa9hGi)^TF*fH}M&}C#^u%Xh!ZnL9#hEFWIbv>TqzHN`5}%88BCvj^fknId zoUE)_pFH1qqPSH1w6l?VsPTMoTK@Qc?Oh3Rv8TgMhu^a$6HApNiI#I8CZ#y7ZB_3h zj=d3s{4ruYFCuJH-N|az_oT{$=15cI8ayR@+;+kS`QUI|O)&E1d%o+aq~`~V7F(NU zkuL+<#b67wQSMVBKUVn+YG*J6D>u`f+WnaiT)25t-}kVc_laqHWt%gKuCiv6lTsm= zaHpxiU!0Kpo*CNd7UPM4I`WBl$h_3GWT6P3s;90-8lGS|s{piR18N|&sDbFKKcJO3WBR7O&jP$n~#*To(!MaJD)-w6=s>Skc(`8)pveeFhR_p>_c#!@T0J3Hn0 z#*JSiEZ_xI2Ge|fjR}R3`thPcZF!q||y`4t4H0 zXTgIu-59T@)ZmqVP&E#%nMsq~UC5$=UQHwb&6_}i5&>xLW%Kd!9+5+9##)mgEF_9j zI{C;6XWxuHzThV>h0rxC9Z&U&HN3Y?&dO!Nkf53C@MB+-X8R^FS>BD496uI7`qR(1 z(`(G5RoU7M+FA9e^_&vLvgkq;XZ+gzMX)!sR)1N=$i5VjFN|5seu3Ngy?VLHm29U` zkJ(n^H`n6p;<8^U5Drcp#?a6F_q|rpos1Nb3vM0x+|YeT|4@t9E|fO*6BQZl#(jua zOorDM!F;?+*Vh`B%bE-s@yl z3~|W^ovoBS&3cQPIf&hs)yOajd#KFg??ps5>U=#rXVQSx~>j75}Y*hn{?=26#9ESV=j=?Vh zNaB+Az*pShrFt;`o1lcQ#_#f)RplI#0-o7D076$2opXaEm=&~*;}r}pvz0v9fE-8g zoZ*TJI}8;3xqp|&-q~S~m@GT&%`wvUX0k0GXO>K2T`h&i`dOk9MdY*?xeocr$Jxvt8t>-371X_*0$(+)$gvlhy-~DVW_4z4x_D*|1e?*1dmh9DLMj}b;-u*N+nJ=(-Olnddm5V>bhC>Jy@qIgo z)rH?^`;59Xa`aPh$wavuVKmq&sAd_14d>k>)o;wypW=4;t&rPh~YFNyO+@fUf?>3Gl(3Ke#S z+mD@;pkWW#@c}{YTrWXTtO74l-F(n?KL+5*+)DrgI?nfEz-^-)aE>;XT4tyI6#ASC zUX)XXHwFdowwR#Q;_GeZ%eM(EYsP?=(!9|6pO`9;Bi;TkG9Y7D0QPOfNv_ehw&#{u z<;tRAtY?hmhlX+9)8Z9>_6?z(T(NW_Wu5#cXZt+xy6>OUv-QdX4ft}0i%V;*R)>+~ zlIr%=xVFcPushaT8d|*vS~@9Gbk1EU)9!P2F28R_AGge69xA*D8XlC3vdi*~L}7mZ zjJ$(h;)?HZUuhCai&VZk{y?zT74iPT_948LR#?C}W6=0xS!dRu_qAtL#=^1QksNUm zN*#s;EUic@qh{gyY5UUH-W6vSw4Hb9Tjj-+vILPSR702hckXDtu#3jJ#Ywv?rQ6~5 z0&E8lwe?c`W~w9R7#ZyRE&+Z{XT^Nv5+AeW)!qj%6Y|XGT$tcHtZxz^%o>Vh)F@JA zDYR1z5)wDU`Bse^qZfk@X2g~tLBM;jX#dv>5%sK9g@c&qVHZx)6DRl=D8+C2tn%b@jf z9l>-bqqPq#G|E;L#%w(qy`=khK@xQ1OSIHyYlKMD7OJk!v+d>Vj3KOt<>%S2AM3<$ zv{|z;U|lvUVAgmatnNox7st7BWAIhJBth74hUeRo!sZXd-qVRKgWkIAslZ*pkOqc9 zCR)L^I*@)*fs!^0xqk%;BdgUv0A~sOHe;_JfbosLsQ)^55>{N$Dk64m_c|4KsV6cj)bxIl~lA;a?tfJ>XCzYJFEoB%iSzoIx5>r z+gzlruZLEwMgj&AZj1*LOwMz7iN|Ci5Pe7}6|>iU(yz1Nfyhee*(wy!?Ea<3{NEHL zm$?c!RMf$?ZJtOBRao|Q<5VuV6m5VdLw*af3j31)D(p&2$JPMt2f9-l7voz(Rx6^8 ztfX+q% zZ$iAynj5U*kAm<^$?^q)P3gqbvK57u`OR3k!lEvp1u@;HQe+J^DxQ$nUlkpjDyIm4 z@{*tt`gv&r+WVe5hPv#PlspT!QmiWnK6*tKZP4+7wX+n-kV6K7H}i2qh$WDwpb`mr zX#>A0!k15-SK+nqqDDARBR$h)<6C6m-n}9*1l=ePA?jAv>G>(VsCc+=eftv`?bSB$@C0PJjDu)d{e%CfO7>qE4*%)P zEia1ED+1waaQNewK^noc5O932Md#VSi~>jAxzHFqL&jd-Z&y^Qds{BGMAr5%4F#V% z+uv{lx+5BS?=T&>Js*LXTCfn=0@tGBOy*BM*HN+6LS4jW+dbIqb;@(;>#Eg~QA4$d z$3L(iLs=dC+v53y7|-+-ME`iXPO2}LlhsuN8ThGl+%uISF%9giYO(*)fmXO(p!JY(g}u6p7y4-rq=6N zqn#FcuX>b55^U@#IO`yDE%tH=N?2wx8=#1CR7P6eKdtVVC;J%KK; z*sc9FQjkqeKzr#rM;G+HfBbyMF6lEyv_B487wV07{p(5{oZ$S>C* z*)Xu*m%P8}EU=;no3mC9S{8ypiqOyOAHvJ(kIx(3&cV6D*CYD}CVxI}Hej6<%Sqz{ zq7Fum7k)i4q>vkq{L16dJ{DrVr;+3$Rh}HuLrj=%@%2eSdLt#L&u2qLW-#v9(}~bX z8c&^q<-3izt_ve%*8d7axy$1&Q^H`=A(gI&UzgQhitchbeU!@Tci;S?y)2qJ#lK81 zWaJrVnIurFmZQM|H*({*5nXom!wGfSx5dGOr>g|8v{9EM$hgw7IvfsaO|vh0W4Lx} zl)r5v@T!W9I_e!q7F@{a_$4>LoEKkW-)_|p)Et$Tlz2Ii;8s3L$-j#btYMvm%J3DU zB#1KJhjIc;xOF2=^gZ}pm<)*8*2;paQ&)(tH{F8~J$-2i>m0s}&80XL|FyQgr3IE8 zh@xm;-NL?Y!GQhFxe)wTK5`vCTs@$x7on8Y^R&~LiQaZ->P#WGSgY()ZF!cOR!ely zdEAO{S?W%ngRjg>Co}fab`x)iy|B4s_|Er2zS`hRY6>hFgXOG3kMQY-s#U+cyUNjR z)|uM7j4d@?B~e_DGcDz{aYodxXNs*Vx(QTn0N-JtqSij>c_fsdc)7_@dt!w~Q8Yj?o)k(qH;mxa4ey}wdr?dvE z|G~U#=T5;I&qCKWdCh4DbGZ{3ha6MO5f7u&jW9;^rFU*(xr4h<{>tdx1VV=lPC5!i z82;AYabj4Wpr|+_L@GS#8{zY4;SaBSoC%SHL2b++Aw8k4@Sm|4t|prCa|mo=G0FKk z&i3Y_c=XYqB;9upR5nd|PpNZkj*HT~mXfY{73&zPY;;)6r|?)<4cXLokNCMgKH&T= zdH$Wg5J4pN;;zL=k$!+*dD31jxntu4yn~g3yVKs!J+W!Y7L;tw$Am?O*J5}qUPMyP zmWJ}@{dOj@iB;QEtN^6j93|7z8~X&O4iob1Hve~Vw9#6Zk?n#$Dm&~T#G z13E|guAVv<%H>oNDgeDKTWhEl-{O1*EhFatA^ZdCI6lp~GL^;&w`}}F*XQ3%@^)lv z;zVynt6`NcX_>9p(Xp?Cnb{*92&_NPvy<*C+t2Fvk zdKczbL#F8thzZ`jL~MqN%o=Ts_?Pf7H6332UM~D||EWR8n%;+0IYPQ29Nd(K#3 zvtSuy%7?Fy7r$RmFe);{faO7YPQEuENS>0=U!36@y850SzQbM|bHsRSM{A9|H)lMw z@V`1LVDts7L_PW4r(Da=aP#d=`6s({b=cYPeLYqMzXOCpJF4OMp4{CcV~UVrcXfA% z#eD*Pud}GSLfs?pf~%{=_NxU>|7WI(-quomv?W7twfNE2zx3NlYELiI7lW!PNMWiu_i$-<(<;N!X`fJVSsK1R{-J z1m46!7RuP6%Xc+{#gezAD6aN;fN*kZ!!)mEg)qkZ(CHEhl(n`((Iu}2wgzl4yp%)g z!Q}bugy`}RjtnH$p-$p`LgBd8)`wh%Z|{UU$aY@E-;oP{T3QFQCiM7{3P|v!hM_*r zK1CmjJfvXiR||Dy>&>U{r5|cFA2Ccd<8{QWM-e)Xbfo?9B>e4e-z|sb^C-&-c)n9d zK5Bj~NIQZTwXy%WP_I^ywc%K&%`tUwLMr?Yb3=fCroa4e&!<5p%=9_Vc`>_#{#odK z5!p_Mw|8G{yJlh!C6w}D@Cr0hFnZ@Paz{Gj<^_LC&^dPpu4CWPQOoHpjHm0N#Cy~9c@?i^Ohw^Wym59Y(0F&lv4n5C z(PIevX=mK#>!+}_j2Cpw*vubu@2^IjMpU>GMC2$*ewPXq(kz&N^XGyn@63If(w(7f z)Q3@|+4yyPkPsC81KS%@@CK+a{CBSAx@lEq;2mx7^K6jRqP&mE`9vz*aV3 zK4)70Uy6764B`h3#EL9a7DlVMOUL?Po{4L*U)u2QF?U8R zJWxetf#cINETeG4yv6jOXWoN$alTVGv5Oup+)Ax|;boTD;Qf3}OUo2VY%WEfd4Esg zgFS))Ydw@Ya$Hg&BryyOagW;xZQ(knl%S4vwjtVXIKSt6xc8i|PqQ5`Z_3)-gb1ky zYiC37^^i{RY#D44+bx_~tiAeEh%ls9?_Q|2@PY_1x^@IVmGi zwc*{XAxmP`Hg^QGCCNfuI@e)zKf$K~Kh!0yO|~O8r%qCZ1B&P@_vhMh zkLx!1W*`9#(fhiGb3Ut3goQ!fJv;6~PNrdlK=n=m=$WLT4VI-fvI1|{W=~ZQ8%N|c zlD3XR@LuaB1YpvW6^dQ$wN`5)8! zIb7hC)-Ae_z~`#nOswQ8Ex$9EdUSIei$8@|V@y$N<$<*JCLbA6Onsp~?x&ec*ivrC zke>fVHRwO+3SSnr8h+@fcUEDe?_U+PV=Nt@AjrJIMMnarOOl!fA=S#qO84Ojc;gjZ zZ$>GzeYoJZ^bcMf^FOoFWt*$bkf8}m$e5^t9RmgZtE0rsKceO(=ENfU*J68c;R!g% zrEO|p-jARaua%2~@XN+V9x2>xSxGSq7sIPBntveSFJA4Bn-=Oh&rf)EcDS*3Am-$T z?ox=hijmV=uq>w+X9&D_t`4dROTeFe1>M1=nAk8bI;;|~-MM7b_q6WHH!of7*cml4 zFJ1iIa4?_(`nQ&9WpfPra2zda4W z+%{S*X&NKV-G+dk%Y2^q6WKx>XwKpYW^E!mKSl%jIsNl)h2Yz44Iu&|&38w+)|c1a zbW(h{97ISyQd<7}1bvd3{|)eFyPnAj#m+G9Z2st!o}@+Bxj0B%7-mF@%igRbRX(`2 z-YD0u`t!*L)QhSpL)ZNIJBBlFElT#pv+?liP0VsXms7-ZlEm+joJvpj$)xqEXN+M( zZxYZc(svf6K7YuF@&9v%+n2$<6LH!yfT9gQ)LgsdE;}Yr=QTpBaZZR$M?q*B zBjb?y&66X#;mg!d;oNV1*1ViH0V_^j88 z?MR_%bij5(Sn`~IAjrwWB#14(m4$eakg{+3(x}pmasK?ubNy`9x+-cfsBT|C_Ek2s ze{LPXe+sc@4`Hi1tl=AF^|x7sX#=PR8E%JwH4p6=;*&`+9{`+5cUgCinSRU zqp;8ZtYQ1X9fb}ue%4e`hObw9<;qqos2BKD+LIxKl~`+CRRS5$N6mk!=>L~4 zT}Y>nN(dgeRcHKO7AaR()mV^v+mLqGotgJG7QeB6v-9rurZ-roQgk|2M)PQ~o` z+hw#!T_m1~T5B?y_cTerhHM|$Cnnv3+2M)&`F_= zVP0wuBNJ<7J}?4+gvWP+nuGj9Mm_%anRws)(+TQ0SNyZjCHm)4@1j`w1oo;7hCa3q z7M0ts2W6U!eYlRNIHow~Ce_CC4!7wk4V^=2vCfb>T8kJG7` zNRw3-M5Rw8Chj8}%LBjSCy|cwMKMZrOV)&*dP@%Jej(P+jXpk`3ntFs@wQnHo9*hC z4jg}~dGlv+`Aek=k4ZPT^OCd&?;hk=UZafKoYHHYZ4uIp%PJ=xH+3gyI{kz*yfR3E z&=<=oe&BZ~8-win+?ymEfVU?T*WeF^Odku&>TNP>UWzmV(!OA z-_vgD0G7SQgs==G*iLfK!L^TS%tb%@GSgQ0UfjLm*#9OCX187be{@PteqV};ccwxm z9sF8OoR_9u;TYxnK<*OzCFzznN-qa@Ob-C+r}1Imll062wGzVU=3Ybs*+{6k$VQuW zcgB#{{H)9#aBbu*8^kPicd}xdMNa5De(kieY*IyUS;UaoX0^7{pA%i}P1fhV->kd; z*!KJ=F3dlx+a{L_wXY-?2Q{N7Teky_S3^>iL8)P5{cJ2)rIO)VTn=cfOB@oYIS=?R65?bZF-9 z{gf$lnOpJ`{EA*5<*(nQ>?xfMU){S`Vpd`FN~X`-_bFQMx6adk*$9x95;Kx&Dyl{Y&7bp0=;?8#g{&Lt-Y@4 zP}(t$sAlYyKPU&6meaN3XWy%5TsVt*v)}gdbMis=efF5?olo)Bl|)j^eWBqJJBiPm z@CoLvK0O`9zwe@h^m`*M&Ve}E3*A}Usi6cKS7e(0;9_{Mi1JFf?WlLIi+g@jMA}qb zM8VvP0N@Ro;Dx5Crs`1S0CI8fv~$Nfy^q;rcJb^q-`jf3&~xbowK{FOo$f(#mK_hd zLt#?olHY@pD7e$v$0z}gtdjC2&qfv!%JNClJiv(%&}(Ru*iWv+WBrUF)A+)jdnfK6 zsj45+1&vEX586CnlXVbg`bgE>*Bvhh5MN$fA?WTfhI1cuqEmFH*r~KhsWzN?OkZqWLVv^u2uPB?VsxF4do27#tO|&(>ue3H`YeCacDV zJan|fX}Z{aLHm4J(FV5WR{J|%4f$KqhI?D@kB`TbZ;`#uYsv7S);qIhF}x9SJuI(r z@&`gsA~cY!-i1u^ZR}rYoi09&7V1xLcT55ILa<-!w9cd@30~}5NZ!oNMS8scGd&Hh~!j7~3 zf$8VTKFav|z)?<@O82jqY9UF^7ds^OsW%BbS2BoyX1!l4r@#AxKPc1bFhynx6cj%m&gb`DBhg~`9+cm9En}jZ&Y8KEB6{hfe&?2oyVW6a zGWEt?mUveiW>?auF%6tyQ{|9|cTsJD{H+zPhq5}>O==0xQqE$Z+tZH;r$!nc@Ki*j zqV&B2zj;`= z{OI>p?T*B3*ychv${Oh!rMp)g7?p{)R(xE6wxuM>;t|?KOt@{M4!Xo!B zu2H4dHy9&|W4*OTStLESIMik<7Y6&WZ~~uf;QMvlHsz)Uat|Q#ev=#~stU(<{2~nq ziRo6Pa23xV;~tbU0wG~b6z7j4^^Eh6evhH~X48l&B9Xbbo7|isHJwfy<1NVZ>IfUv z>-_rHyX4bJve)*6G1HH924Z5ARH;y!-kw{P@pcXx@6!cAyLpj4vxU;(WF??vi^+93*RoGcr1|d^=7m z{F#G4X43AQrg$xKLF)JzlSek1wEhEic5lvAK~w2Zsl(UeMpLV}vyY~GTx&V&)}|NU zh(BoO`>8*EY8W?Cui>Sq^nY0a9hRe#bf?I(YOGl7b6W1KYp>`nER_ddY3k_GcB@Tv zWF)s6e-hby{XEiHHa%*~U(~P;5hB~%{hwUpodTR_F3^7(vqC&U16X$TA3>Hh(6|xD zNFha_lK(P+)WOhHB;RWM?QE^q+tg3;4JAIjmV12~b|ZB8qjjIAIhO(yQTe({b|u8S zdsWIcfqgLH{!N>YQ7KHwi(gVGPBS5Ol7kdeG5!5?(-CfTudUclS1pxyA2FOtzrOs4 zPb)?_O2gK9qklZF*RfypWmUHw`5Z9%{UJ(t*x^6e(w`;;#lw0?wXFk12LR^$;r3=q1%0zj;Ex%nil^Qw5#>#|K9sTMXQ|6}6^i5f@yt|(J7*nog zQeSP6K4qnVFQ&^OwQ78{sSypL^u$zu{ox(=8gttvUi+l8BZ_&bK$|%P7EsP@HN!Oa z*%$Elk-Bsjg6Q(Hbt{X>_WNFZNSGVL$nWmd_w~+B2XO4f59JRQqKX7gCp6;R#E*WY zgwUe9q{Ci0jvA)KC(+y(W#PzAPoRbbC}#S-Jo_!?`)fA+q>3>DMmS5)));!!e0^n~ zjAsgKhW-kUts-tW<{zx0s;3$39(8D&aAv()$hv+ZJSca{S7gW+#c2J!_;LE`$FA!7 z>*{2^aS+M6<{RhKc3G$X6HRW^#}*y&ti6#_n|M#-po7?3Xak?g! zSsDw?3`^e-{@U8C)yQxo=Q9Mpm*YMfKEr)RS+6;{^&)PU^TX9S|MwK9#RqA_jCr4t zHf${kbIS-DerW!NIVO`jCJkd_{!9FNkDDLxX->j(ojH z75C#R&}IqUHv7J`UB9h#lY;1IC#ZhA0ngz<^_RY%G-7GJ0yQ6E^eAogfi0F}QU+NoaRG|Ui=q}xPYp$%|iSZR5s zL>2ue5puq+#UCkB8?V0lY^2DP(BisRR5S0fcUp3vmxSr04cL-aG@m7DdSScNBn+G; zg1rh}Qo$V-*LO`l5RZup$TmuolVk=tGl$K+K+pX6bsYmHxMfE4jUy4+#wl|L#gD-I z)@RmRi`{C{HR@&-W?T!I)#ip~>7UD9N2OT!Dw@sK&P!Q~p2fbl=#3AXW%0XLCQ)Pe zJd$;o1}sx*E4(lhbNF?oFI^TEa$j}mr1;JVdAjUz==|9j*J6$OzgRhJTc5A8G3lTrr`RK1%x#vaRnbK~z)}mR4R0^CChqIWL!;5Ebi=JO&nv)={ zSnq=dTn=8t!AuDv{z&?6NB_ZXfY6RadH4XYgoN-S8Te>ac%X^+h~UELTN5*>_Qty1 z>S_8;T?(mzw5ivS_)v9Q1=|KT4F3fNDmqBVR=JBb`el_Y**+>{pMzG1B< z! zR(C@#MbWg{=5^iVaCP?HdGE~9N}MNcw*RiAyw5SYMw{5LjbSJrHeE( zlRgM}3T1!a*FJGEO=chCE?h^k2wfC3d*eXo^`uVC3nJ3fIstl-j>B=YP_Ubgj`?00 zCJ>RKO4pwr5#qX5XiHb&l)MnAHZOhAcW%9Kb|fa^vr2k!Zd_v-z!WYTCJPzPd`x)E zU8|q4EXhsfuZb=fBT?e|3)?j7dh&?ShP`~+n;ndVXt3G`ss+{99L-lk%7hvfNHakKco5Lk8_9(Ca{^9V+;VhvJ zXBqg{3Zs!WyxX^G^#_X*3Z_1v#!X!)x|{d_S)|j}s1Y31tG}(utGhWwl%$3o{>4oD z5O!V23wlnr?0%Q}?>K^4R2D zJT04#3*A;l6|`|J87@wMF#%i{=D%pHNe-xaoKstc9vqHdc@qn<6Et!DTdS1oS}&2d z+pX*d<{k52#w!$r7y8b`lg9*}sAglw@zWCbo?vPWBTa{OM;meKjmP?rctWjR9u)*z z^{}QQ_MkW8;alRH$4c5`m#2 ziwpgU&CoQC;euHTb%w?V@NxYo5d{GY}A35h3fkKo8pD!7& z(rg5`y;rVBIgMuzRV%wv__u5hyn4Xr!a2H5>An z(+73S?tb;v+q#m}o+a~seO?+7traW+Bjm4tdo21^J{gdD%Qg|b7xbLnTckS48 z)IqD5!gbo@c|oZ|!Rr;GFITXvVbXq_RuwgFFOMIbTap`ol4OC z3ND{y63wU&rWLp{pB+1gTJ7<~Q#ns}ds^r2!IAizD6PM-euyd`TFP)HE!-6D77%t1 ze1Pinf0S3?*IT=H8GE!_R|Os~Q~cFpyB3(lx3@!bllt`a-+ZRR7DGi#rWMM5(lr=jIy$E)T(8 zTk4f?9+D0v;Z8$e*O^UDwTVWG>S-^$4$AyZS{FYQiJ#*nevG`Eg1C+oV{IMU;y-j9 zAcN#|R<(sl(D5-641a4=9@Lgm^W1D@sQ zeQV<0z9l)kH1_%pMW>ZK?YD1ZLDC{$_&$a3T9UjK4> z8~Uo*&`BKAIya;BP}d%3FWO{Zj|!=j=oO~6o2!ZB2;q#~?8@~zNuXh&rSx~n3))}c z6!GC>yNw8=U6nIqfVbSawrR>pdZ~>EqD&wMZ21SIgCNwzK*89{u{aTJi@qO6h_*#f z3U<7y8-C3hZHC@$E5G^Ih?W0xt@&_gb8+°K6rik66_=N2Dsn_{RqRrD3_@;&uH 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%0DLRgM!9X6bXU^uFDbK*$S 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%0AQsD1Ki9UaX45S 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%0Am?dgg|`gMrucWtYMSQGggZ%cAP4a@T(u$&_18} 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