From 81c63336f2f863a097bea964d2c164238f2494b0 Mon Sep 17 00:00:00 2001 From: AjmalCybro Date: Thu, 13 Jul 2023 16:20:35 +0530 Subject: [PATCH] Jul 13 : [ADD] Initial Commit 'pos_add_product_webcam_barcode' --- pos_add_product_webcam_barcode/README.rst | 45 + pos_add_product_webcam_barcode/__init__.py | 21 + .../__manifest__.py | 50 + .../doc/RELEASE_NOTES.md | 7 + .../static/description/assets/icons/check.png | Bin 0 -> 3676 bytes .../description/assets/icons/chevron.png | Bin 0 -> 310 bytes .../static/description/assets/icons/cogs.png | Bin 0 -> 1377 bytes .../description/assets/icons/consultation.png | Bin 0 -> 1458 bytes .../description/assets/icons/ecom-black.png | Bin 0 -> 576 bytes .../assets/icons/education-black.png | Bin 0 -> 733 bytes .../description/assets/icons/hotel-black.png | Bin 0 -> 911 bytes .../description/assets/icons/license.png | Bin 0 -> 1095 bytes .../description/assets/icons/lifebuoy.png | Bin 0 -> 1199 bytes .../static/description/assets/icons/logo.png | Bin 0 -> 3452 bytes .../assets/icons/manufacturing-black.png | Bin 0 -> 673 bytes .../description/assets/icons/pos-black.png | Bin 0 -> 878 bytes .../description/assets/icons/puzzle.png | Bin 0 -> 653 bytes .../assets/icons/restaurant-black.png | Bin 0 -> 905 bytes .../assets/icons/service-black.png | Bin 0 -> 839 bytes .../assets/icons/trading-black.png | Bin 0 -> 427 bytes .../description/assets/icons/training.png | Bin 0 -> 627 bytes .../description/assets/icons/update.png | Bin 0 -> 1225 bytes .../static/description/assets/icons/user.png | Bin 0 -> 988 bytes .../description/assets/icons/wrench.png | Bin 0 -> 1205 bytes .../description/assets/misc/categories.png | Bin 0 -> 1532 bytes .../description/assets/misc/check-box.png | Bin 0 -> 1118 bytes .../description/assets/misc/compass.png | Bin 0 -> 1931 bytes .../description/assets/misc/corporate.png | Bin 0 -> 1177 bytes .../assets/misc/customer-support.png | Bin 0 -> 2136 bytes .../description/assets/misc/cybrosys-logo.png | Bin 0 -> 4496 bytes .../description/assets/misc/features.png | Bin 0 -> 589 bytes .../static/description/assets/misc/logo.png | Bin 0 -> 3452 bytes .../description/assets/misc/pictures.png | Bin 0 -> 1692 bytes .../description/assets/misc/pie-chart.png | Bin 0 -> 2338 bytes .../description/assets/misc/right-arrow.png | Bin 0 -> 967 bytes .../static/description/assets/misc/star.png | Bin 0 -> 1642 bytes .../description/assets/misc/support.png | Bin 0 -> 3892 bytes .../description/assets/misc/whatsapp.png | Bin 0 -> 5097 bytes .../description/assets/modules/module_1.png | Bin 0 -> 59079 bytes .../description/assets/modules/module_2.png | Bin 0 -> 62030 bytes .../description/assets/modules/module_3.png | Bin 0 -> 60299 bytes .../description/assets/modules/module_4.png | Bin 0 -> 57772 bytes .../description/assets/modules/module_5.png | Bin 0 -> 61983 bytes .../description/assets/modules/module_6.png | Bin 0 -> 61902 bytes .../description/assets/screenshots/2.png | Bin 0 -> 120923 bytes .../description/assets/screenshots/3.png | Bin 0 -> 380366 bytes .../description/assets/screenshots/4.png | Bin 0 -> 132022 bytes .../assets/screenshots/barcode1.png | Bin 0 -> 181794 bytes .../assets/screenshots/heroImage.gif | Bin 0 -> 134021 bytes .../static/description/banner.png | Bin 0 -> 128951 bytes .../static/description/icon.png | Bin 0 -> 17271 bytes .../static/description/index.html | 619 + .../static/src/css/dialog.css | 13 + .../static/src/js/PosBarcode.js | 110 + .../static/src/js/quagga.js | 11583 ++++++++++++++++ .../static/src/xml/ProductScreen.xml | 10 + 56 files changed, 12458 insertions(+) create mode 100644 pos_add_product_webcam_barcode/README.rst create mode 100644 pos_add_product_webcam_barcode/__init__.py create mode 100644 pos_add_product_webcam_barcode/__manifest__.py create mode 100644 pos_add_product_webcam_barcode/doc/RELEASE_NOTES.md create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/check.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/chevron.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/cogs.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/consultation.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/ecom-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/education-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/hotel-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/license.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/lifebuoy.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/logo.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/manufacturing-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/pos-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/puzzle.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/restaurant-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/service-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/trading-black.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/training.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/update.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/user.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/icons/wrench.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/categories.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/check-box.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/compass.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/corporate.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/customer-support.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/cybrosys-logo.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/features.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/logo.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/pictures.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/pie-chart.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/right-arrow.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/star.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/support.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/misc/whatsapp.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/module_1.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/module_2.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/module_3.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/module_4.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/module_5.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/modules/module_6.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/screenshots/2.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/screenshots/3.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/screenshots/4.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/screenshots/barcode1.png create mode 100644 pos_add_product_webcam_barcode/static/description/assets/screenshots/heroImage.gif create mode 100644 pos_add_product_webcam_barcode/static/description/banner.png create mode 100644 pos_add_product_webcam_barcode/static/description/icon.png create mode 100644 pos_add_product_webcam_barcode/static/description/index.html create mode 100644 pos_add_product_webcam_barcode/static/src/css/dialog.css create mode 100644 pos_add_product_webcam_barcode/static/src/js/PosBarcode.js create mode 100644 pos_add_product_webcam_barcode/static/src/js/quagga.js create mode 100644 pos_add_product_webcam_barcode/static/src/xml/ProductScreen.xml diff --git a/pos_add_product_webcam_barcode/README.rst b/pos_add_product_webcam_barcode/README.rst new file mode 100644 index 000000000..fd261bdce --- /dev/null +++ b/pos_add_product_webcam_barcode/README.rst @@ -0,0 +1,45 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Add Product using Webcam Barcode in Pos +======================================= +* Add Product using Webcam Barcode in Pos module helps you to scan a product barcode using Webcam and add the products to pos order-line. + +Installation +============ + - www.odoo.com/documentation/15.0/setup/install.html + - Install our custom addon + +License +------- +General Public License, Version 3 (LGPL v3). +(https://www.odoo.com/documentation/user/15.0/legal/licenses/licenses.html) + +Company +------- +`Cybrosys Techno Solutions `__ + +Credits +------- +Developer: Mohammed Dilshad Tk @cybrosys, Contact: odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there +if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com +This module is maintained by Cybrosys Technologies. +For support and more information, please visit https://www.cybrosys.com + +Further information +=================== +HTML Description: ``__ diff --git a/pos_add_product_webcam_barcode/__init__.py b/pos_add_product_webcam_barcode/__init__.py new file mode 100644 index 000000000..003cb3169 --- /dev/null +++ b/pos_add_product_webcam_barcode/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: MOHAMMED DILSHAD TK (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ diff --git a/pos_add_product_webcam_barcode/__manifest__.py b/pos_add_product_webcam_barcode/__manifest__.py new file mode 100644 index 000000000..a2c001038 --- /dev/null +++ b/pos_add_product_webcam_barcode/__manifest__.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: MOHAMMED DILSHAD TK (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +{ + 'name': "Add Product using Webcam Barcode in Pos", + 'version': '15.0.1.0.0', + 'category': 'Point of sale', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'summary': 'Add the order-line using webcam scanner by adding barcode ' + 'of products', + 'description': """This module helps you to scan a product barcode using + Webcam and add the products to pos order-line.""", + 'images': ['static/description/banner.png'], + 'depends': ['base', 'point_of_sale'], + 'assets': { + 'point_of_sale.assets': [ + 'pos_add_product_webcam_barcode/static/src/css/dialog.css', + 'pos_add_product_webcam_barcode/static/src/js/quagga.js', + 'pos_add_product_webcam_barcode/static/src/js/PosBarcode.js', + ], + 'web.assets_qweb': [ + 'pos_add_product_webcam_barcode/static/src/xml/ProductScreen.xml', + ], + }, + 'installable': True, + 'auto_install': False, + 'license': 'AGPL-3', + 'application': False, +} diff --git a/pos_add_product_webcam_barcode/doc/RELEASE_NOTES.md b/pos_add_product_webcam_barcode/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..058a55052 --- /dev/null +++ b/pos_add_product_webcam_barcode/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 11.07.2023 +#### Version 15.0.1.0.0 +#### ADD + +- Initial commit for Add Product using Webcam Barcode in Pos \ No newline at end of file diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/check.png b/pos_add_product_webcam_barcode/static/description/assets/icons/check.png new file mode 100644 index 0000000000000000000000000000000000000000..c8e85f51d612c626d167e4def7bccdbe1d6d17bd GIT binary patch literal 3676 zcmcgvdsGuw8jpg4iY%zK;)6~HwPkUVnaO)JDiRS~W01#+Tdm%CgiJ{?ab|#k+GElB zs)m`Fq^5i_*c#09+YQPFKr}nwM5Uo-TAL;V~rhtuFtx>&0g#C#25Hk&m#sUb-WA~31MBLg4ikrG=iSUHIid9Tb1 z9z?MSXrWNHppa=`3T|)6tVasU1O?OhfLBAPab-$=Aj^bs-a^skcg`{z&c(Sok1Rnf z5yC>1Y_<@*U9)a?2rbEDiXfxl+}cG;IVE0Blf_9wp~!G!ilE2DR$`Kz#XXhg1%^X- zXt38Q$b#e)IuIe${frbc@94mx((??I^YI-(m7WmPOQnh&kOeVE5L~UXliA7*Aqh2! zygrHdutKqvq)a?GfU^Rbv!F1L2n;u3q&9~jDV>4R8gLYj5g8$Gdf5;PM8e91VHO}tH2a0L8XijPj4WT@OfXUAT zJnhf*@K9tDMU;r4{0y>T@q!c#dc9U3Y|rFt)F2wJDdXk4$u2;9M#3=B({jWE?ZT8AH% zg#Ynm7{OD-iERSQ3q%07QcjdCs6!Oo2=IDcJmb$VO_7HU?ogqWL}USZT7WtfjpanX zO$@a45~6_o7yUgq;$EyC{@)i#qZ|N_R=_bJvw}bMOMXYUaeIWvk1PbW5LY2pwz5%~)8GxdCY^PssXRx5eoz zoO^~fem~r``@rOd6TkZU8il$gE8}Oz-;cgl{mIK`Pdv;QZ%-|s z|GM{J*isd7WKnONICtpgNp#AiUeQbceyF&&T9d++kK5LH+xFP3BM=)2;)S)A$sTiU6of)b*Y#j{o#0g@7kQ@$&^?Xwd#C) z*?`OMhxblls7-52Hx9e<G~?b~~OYW?LWQyXXH zri{BfJ2omM>(N5CCh8@jy!2dILd_cwrrn5}-u1H`e?0w$}WEW5P9XVW2;W}-E(N#mKb@>!_?9;7EcMc z{$}01S5Kra9GY1>s2abs9zQ>M^!2#Wa|ZgdtCP$7HxD_{=b{ky&9Q_CH6!ldap(T* zf}8Jcd_*M`3GY@f|5wb3WaRUu4KwLk^ZH)Cx@g9Gqrd$0VaEMIzioWH^;l}xdpp8T z8}{xXW=4I#;LY(#$DH;dANHu-yZ<(gnNzG17ONUnb$vS3 zb*fD2Tp8xe4);ae*%)~z`kF2F+Q6#SXw|Se#$N^e?zR2i*OIq99+Iy7|H~LN!Mc6) H^s@f|!zCx= literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/chevron.png b/pos_add_product_webcam_barcode/static/description/assets/icons/chevron.png new file mode 100644 index 0000000000000000000000000000000000000000..2089293d6ad94cfc015cc0a8c07bb03efd4a689e GIT binary patch literal 310 zcmV-60m=S}P)fLA$g5CzAh99{FF(tp zz^tD4))$4c^0SZV9_X~njUYum@4i`~v!i=obU%PG(6q`OMK>{HG>r}*tHKc2@w+qg z7|l>B76qkX(U2E&K_1Nf!JbCtpGzwGSJ~CkU>QcDY&q>lnbwQm<|2>>iH5vL6qJIP zp;W{K-Snrb@Z2gLMVZAQQ5jU>DXT)0mtk@hpq-Sb{2q6{0V4Z;tNXT3P5=M^07*qo IM6N<$f_?6Y+W-In literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/cogs.png b/pos_add_product_webcam_barcode/static/description/assets/icons/cogs.png new file mode 100644 index 0000000000000000000000000000000000000000..95d0bad62cf22361b148e1d6cefe2ceab605955d GIT binary patch literal 1377 zcmV-n1)lneP)lH5n~Zj$eiG;8wLI!*reT1_VfljL=sA}=JrOptsX2RfC&)+l61t|6JPeb$mZ z6v1wNClWXiLSlOh+mR64U7bjvhva*zJ0HRRaDbgl@(q$*^PYf*$fE&7)c&&!Rfm?&yLyFbQ?2&R6W6v@rWu!;bZU9|_! z4Je^Q5$r!vH2{)*ok-wK1%Wz7TG;LgvHhtN39JtxLC&_yAzs|bhFaWtFLrukMR}l_ zP~>z0rF26#(W+H@aXx?6lf(f454Uv()R+QrlZafX3t}g5wp6-Blj;u$XaE#h->+xC z005Fp0GtMpYoBiuo)VG0UP0_GltOix%1(%-bKgbA0o1pB3&6VoRs+}%fFWUi1MmQV zmjH~{WZwYT7ng4njIz1iD4PuYIM&NvU6NVO4kNuj`IZ(nzL#XTM^~@uFGT>-aT6dh zAgaP68%9MDu}+cu7uohT0RHqW9d8lhD-kJqd^i9;Rw)OT!X*D$Y?MvID9;=%I@23T z$~m4}V3f^0BG}d<_%@?#emG&81LI_NvTQ!T$gzGzil=|K?VCM%e*mZ`d`!0R--N(> zX_T!|fX{f;z6ZDfz>JL{bFu7UqLI0BExN7c!HmOYg;$V?QB4==-_|4!R<1p=W!b zXM0?cbrc+q5buUe#ZpdV?VzCxk-Rm+);3(wb8q`(#{e8FI_3z8RwJLQk>}&nRHK0| zNhvzkFo4$qbT=sr4i@y>Bdr`7j(HfwmH^uc7xH9%r%nnDB_ty3>&opGxGMoP9kf;< zd%_$N;{SC3V62>WZcCaxpx6frT|FlOj5R5zGbh3vrqY>j1H`{Bkt_d-PcIzGcOeS& z0OimpMB04AZ5M$FkksHx)9_uX*rDTKrDER^Aij2r>}i8vD4G(OFwKFYV|^yVP5w23 z`asH~GaMjZ={ojt!?Lb#lcy352^1ZBLpqIV|5 zLfz5N09ce%03XI(J-h5`5#>QuTr`wWt<}xj9|=Odm?U{1pyiQF6&>pYfaOUB0`PfX zSMHvKeKvO?5vfw7-bq{v4vAnDh^?3%L|Q@w6Pmd9iD(;0IfB{ww?bB5NS1mno@&9c zXC4%!P8Bklxq~Ew%%g071mXR`&iMY{dhWR!JtLt}njRD_-Cxi%N0X&qj~Nq_rI}Yn za8e0TJ(H#J00000NkvXXu0mjfE=YKA literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/consultation.png b/pos_add_product_webcam_barcode/static/description/assets/icons/consultation.png new file mode 100644 index 0000000000000000000000000000000000000000..8319d4baa09d6afac9362dff318f63a0f96f555e GIT binary patch literal 1458 zcmV;j1x@;iP)fo-7eN@Nx;}%h)9e^5-C?E zsEH&b3Z#%2B-}L7v^LRRD&QZ8A<7MshM0yxF7rU)x4)gW;*vW;3 z#hX3&)M|C@Hzy`0dbVF71Cp#6E*?;(1E5ZgN|t#IpsRseZTS;fmL2OZ%G1F2%+iN5 z?1unK-3Ni+4&6W$B|ic7=Z$mSG;E8PyRX^_00(R zZhUjoBfjtdy_aS#1FePDP8??a5dOFCh z*MWRv)G@zc9y@oAQ6L5)gF{}MFZh1tt%7=2kn>q6`mgJDye)VpNyeX>nXy(;k)8%5c~P{u8)+YKOVK2Ka7pM_X}a`O zk#~c24MYp^y)u3b+*+!2>R#%t}=?wy_< zpYKn-%7CQNC`x``VuKC^f_Kx@zC4JDHDk0HCO^O4#RC{@^;{j6<{9 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/ecom-black.png b/pos_add_product_webcam_barcode/static/description/assets/icons/ecom-black.png new file mode 100644 index 0000000000000000000000000000000000000000..a9385ff13f696e96d517a56ce2b2ff7d282c748a GIT binary patch literal 576 zcmV-G0>Ax5}Z)a!cc0ra5uqqg5lnhXD zTbP_`oKdQ!!sJxrjN&KdC#M>hn6H53Z@_@W06J)|I<5r7bODP7TpFfK@D$$y9ro1J z_#n7|3NU9+Eg3t67i6kk1G7mAm}&y~>LPq;59$DNz9rz_PKFAe2JQYcbvs+lNHw^F+;#7cCP*z(AJ2&$C0H1W+ddn*~CoC?@7snGmV!9 z<==r}6|tyA>`?)>6k{b=2d<=(_5rWxzxsKgUs~Q{+du)!y5s>SG|Pu>T2kaR7OcV&-NYURtom{p?~^a9V+ z7O-a3C?=EC%HIJ!R*hUb72^tZzf-`AuuDDSkJJnF?!xs=oN3JbnbTGPz&Os^S>dl1 z(84w;APbb-b_k@KC|~4YkNmz@^KPH*e34{*2J>2yF9_24A}NIoShST-^{Ye_(vLmm zd~pgm3F$kIkw;g)NYXe9tbV#5fWaonr$h>8ffe1h+u&f*`C7F2cl-b`l5Ye!`u+O= O0000##3Xw+{I#MbTYoZ-I?3FUBiCh!QRfyd*8S0 zzBhAFP*6~?-lzdrfLY+Hwprk^9?LDGz;$2=SdFk>z#U*LBaI?QQKD9e7VcUbxCb21 zK<^(;Xc0+8N7+;0G_au`qDwm1ixh;r_7XS;lzSn3Ks%r7fpFK}0T+SIX$T+G&OY=( zxNCJ_5*Q8nGpO{QD=gKm=?w>jvsI4EeCbfxmVgL)==l)8DLS{4AE!e?Z8#kPQdt|>qP=~ z0Jlc(3Gg?f*M1lL)`j_1YkWB%UdQh2b66h*ZnCzsy7n_B0ckvzW`}^r+Q1XwyiR6N z+Zb>`kF^u{kzSF3ZWCxE2%MHJ3h_5t<4fjdNthVL50AOsk~o%60t*2`LXkdVyV0$h z3!el&2Fvm1lW@sw^on`m-Vx`wwB6`P4R}rO zE6^)ow-A5YnfJ&y0Ye!WLUqzpz$M^$fY4`p?Mdxxh|Yg2?gAd7ipc|DXJ`UZ90Kkq z5IzMQOgng*oJH-CT;UDiOoqC=IL6w|-va-Bgt_N1s&c*2*98Ry1?!OCgV~htO4sqyP_dDm_d+wti*Wu|Jegr#e_!#{@68vYp!)bLlu6Zk`LG>4b) zEtVJfV|c&7EyFk1UEqgt9*;Njw1VZ>g|{(-Ih??2*p8dxr0-%j^2hNC#&IhqaU^nc z@$+Ql#-r}>$jwGuyQA&xajp}QpNYQgQvRX3un9j@9GJrg7>xWw!mm^1U#(2=6#lMo z|KQokEyJGV*$a3$^4H^V!vBQLO`Y#xXJTY1;rCX!>CE#}6@DtiPgnT82{)9?y|d)x z(wYD^;79DoMQqIQU*HgKi6iBw;@FUI9sNVmM#^uDbMB8mr2J(psR`f_e2lfYQ^?Pc zD*O(-j!VKyGmVpx8^nFlK|*>Q!@2nVHmt#iLfSnlYCO2 zdFMZq-%%fsUm+%4DcBAM@nlB#OJUtlu?=@5vKyk0-(~c{nEb2TSI|FD&|jC)U02XO zP_VtPpg&ess@n%zfz}7m^l)@9-pa_g6!iB9hqNkI7IY^HwJpfkw1vjiEIS#Wpt0?`HcKIp}DC=(*S1hNk)FAp#M3(Ph`2hp<^Rwd!~tF ztxuuW2aq1-#_&}}?@!(9I-!5fU3;7r`rs;-;>L{bUqXMKVkK5&4iq?1871GE)(+iE(2hg+zdgWT>s_5?n3yszX(6k07r<#7z+xi};Iw>y+AElqG*-EPDTmCjr_EtL l9oc+vR{1Wfk3Rkj{so);rk=IPI$i((002ovPDHLkV1j5u&D{V1 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/license.png b/pos_add_product_webcam_barcode/static/description/assets/icons/license.png new file mode 100644 index 0000000000000000000000000000000000000000..a5869797ecaa7583c552c3bb7c9bce5910df78e0 GIT binary patch literal 1095 zcmV-N1i1T&P)?DLX z+1Y*BO%2WWvTu05Ki}`p`@J{sJ=nx1)&%L)P@|a%i#deKSU(9Ndee~mRtn|o9hqkt zsH)g_?j-1Oz*{rH&X9nd_6n5~S%#SclCXXhkhBHYOR<={+%T9HHm_+Rj=iH!?az_sX`LfziH+4|52SPxCd(lFQ#& zy}6O4ybXVUJ6qGPGqH9kZO+TqO1)ZNXdyA~iK zjU@8F177OZcQq)~$=N9vU#B7D6{_#K`1J!DzKA!x0H-08MD^1m@!Cu1^1Ay68A9JiW%_ zS;VTfBGKSzreWdMUn09>mmHnKrHDNn2a^cnnZ|MXDzMjuSf_9uLfT_HXSmEliE3?k zXG5qm?Zm1JIMsm2cnJK_V=hkE@UzgSfJcoDFQBI%WSu~xnTe+6cI1o%43w{m$eK<( z*6j^w>_69x>X$9vq!B%D)n2i2Fx3eCH`fw(T?A+}`>a(i3QK#4M*6$U2tPE#;4RnK z>mxwS8DJZNZzlfX70^76^jmNLyX*lJ7YEWlH{ zcu!SGBHwAI5D}|zA|-av#xj{i{y7^5SAdUFv(H6FZ!P*Haqu>f2gqsj_qOq~2-w*F zS(Vp;I|v^e^)8@E=esPmmg4ZVjs4>wpR8c|FGJSOYN$8)|IM@rI3xAI#QT>#L{?m_|*Crlo{0DLwqmu7G?&JUf N002ovPDHLkV1nf|8?OKW literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/lifebuoy.png b/pos_add_product_webcam_barcode/static/description/assets/icons/lifebuoy.png new file mode 100644 index 0000000000000000000000000000000000000000..658d56cccfbc0e46060ad4850b9fc60c656baf18 GIT binary patch literal 1199 zcmV;g1W@~lP)K~!jg?OD%n8$}d;Z#;H3_Ux`{Y$>IOhC`GK2Z&mUBGl%91P8y|S)kfJ7y@Fv(h8fJTCuS1y-dl~V3Bn@u?h-V-e;5wUK!dy#X#2mo{Oe@Ws202*N! zUYebq1*Oz(7=|0J>pn(AT~tHi06fpT5Cp+8=UfzYF~>QdlTyCudEUcDqp?-Q3ClZy zh`8_jS1ilAN<>A)|0jSkVOiEy-}kQ++2pw<5YcQ91S^cOdS0R|Fvb>wAgB}3_lVdx zo@Z(pi+`PnCN6%2qaJh2n$9r_fQWby1S^wxWem84@B1sJuai*#Qp(HIeDX(8DwXO| z%F8CUnE~{Az4MH*g_Fz52gcZf=Xn=0?a~H`hylQ*oZNq<_}k0ls8Xpc6H#iiO$}f$ z7+lQz-Xr3jB4gvg7!%!YH+A(>1Bjw%(UgpcwAQ*+tJSUpz&ZeoCZ;U_SQA3r;GDOJ z$T;)HSw0bo%R@wVuh)CagoKDRBK{zR*fFtJO3f3|HAFNzMEd>yw@I~AqJ#bY{dp7T z002bv$W%N4fDmGbh<-J-uT(0DT8^y%5pku|M*#3XBv+M(*h9qcYPH&RL>!t5ih0Vt zUhhjHdIJES%P?;Pz-K~;bwmtD2ac^kEdHi}cmRNNMD(sw>ZYmi5uOi;=pD!w4*<{v zfK{c`>d}E?De;q!JM+w*2G6)Xkk{#{&dFU)|KBh!fb9Z)o)nlf5uR}Y zd|trusm)0`Mppsg1Ndk6r(q8O?g$}n6g)=1h>y{88Rl&O_*4k-$x*rHnJTQfhuU9KK{~ ze{gV+s3kFgxc1mJAwWb%MAv-ZUm~J%N@uP-7z~#3)Ik8So7O{0t+hLy&I_FLR}6^` z@phbH$Kh*4{3egHFbsdG*XzG0ji){Z*L5FjtyLbvcvB|f%{;ykQM#_XnP!t303zyA zsq`QZDWumnCUwuh==b}N5RuYsGT*~mt@c!Fo%$4}0j>3>Nw>~uBiXinKZ>Hx$z_=# zilR=d)w*wDYuue4X>6r_BNNeAsf38{WsIw8wR+FAJ7-+XA!5H;t=^mFN<>lA$s-;h zXEln5eaCU`PGe7Ktv4OVxtm8kK!NspT#NkddEOtDN@bZbcA|D8B1!;w=r~T1>a_U% zK%>#vBBJeXx4STU!I1-p7aW^eM`ao&dc|bh_WW=-{0Wl3r~lMizvej3Q$);_Ad@h$ zFS2H{DJ{#|0D#*mX186}-I$d4sUW^)U5g92(PHl7XX2Xm3}<-8@HhS0PsfeRnq&X~ N002ovPDHLkV1i;vH)8+* literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/logo.png b/pos_add_product_webcam_barcode/static/description/assets/icons/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..478462d3e73d73cc9bae9fea8e7f8fac84fab049 GIT binary patch literal 3452 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 Eg49ZXX8-^I literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/puzzle.png b/pos_add_product_webcam_barcode/static/description/assets/icons/puzzle.png new file mode 100644 index 0000000000000000000000000000000000000000..65cf854e7ea72e36142ffc1a407bf2b8355cc85c GIT binary patch literal 653 zcmV;80&@L{P)9a`;n_Do>R91)@YfrZ;WIBYI)WE@w%y z7IC%30~nX`B(&|Bi6!}ZGuBf8IAM^ zQA&SX2=P2@*<+`kI7+k$-1A&gaYV-{Ks?g2#0TH?II!as;HNYK-X1sS_e0Z#CLzvF_5wZZ}7k)9y#mQhdC00000NkvXXu0mjfog*sX literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/restaurant-black.png b/pos_add_product_webcam_barcode/static/description/assets/icons/restaurant-black.png new file mode 100644 index 0000000000000000000000000000000000000000..4a35eb939cf065c6f8cf83781a15f357348769da GIT binary patch literal 905 zcmV;419tq0P)?`PC*pLe{WG*jTWtl`Uu)I!h(oI7q&uZZ6pM-kw|Ur zMPftz3s_jOvBN@wkko<{5h@lmjYJTFNYSdk7WZDgxt))5&f8mkk}hV>Idh-qo-=c2 z<}K*Z0h|JE0{hdxYd{s)k+v@ZXMrAIo@0zw;4N@F7c(R11%8u|tpdl>{-S`voX=~= zI9qe}3E(2Iz)Gr4;kyl(s~mqF&>XN=fMdX2piMb8pcAmd@&I7Dz-K#&h$ije8Ud@c zgQt)P0N6-UPAX^wv}*@XAr$~{fXT%{gxOL;d7J^}NS&nu>IqNA5SA(ZHvoI3&Qbww zBrApmt%jI`Qb(zPr3MliEX(6AgxqFAfF%PhK$pZ(DxlHPm#x|JJ?#vOh0iFWL*gX; zvNkySP6D04&a{0VI7IUG&7=5n`XhX%X!6%0pdIMTwKt`IMHB^02%jlh^`s@_+Eq$X zUua7+@KNF<74Svq=fdYgTbhAkiIY^oW1*i5PYP{`fFHnsWN@i~VW3~=Tf~(@TO!~V ziHK=MH!#NJVMOxR&(xQ+UJ$o$y2)oaLNW;@b@MoYxa>1*DRX}LjYb1P&7s^nlmWWk=>z*h>g|NU{%5MtF5CHx% zsv|6})E_wVDBiwF?G1#>YfMYTD&SYd?mLjjCb;?_Zxs-Gkk1|~y%8;uG6am{&rq!N z-f4+g1^f)yLT_-QuCw0J!G4)Cg3XY f0eA)+t%bl}x(3Cqe?`Zc00000NkvXXu0mjfu`-q5 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/service-black.png b/pos_add_product_webcam_barcode/static/description/assets/icons/service-black.png new file mode 100644 index 0000000000000000000000000000000000000000..301ab51cb1363cb8a0063c4f9f7cb9cf73c91e10 GIT binary patch literal 839 zcmV-N1GxN&P)wG}3wsU*IR)z|Z&+>zafrqJwCq*x@FjvNVI2F^z|C zN%{bO#A+2K9mjI&psYL^8b1O*HWO0*iAfK zwBzye?BGqTEZN2s-YR-iRRhR^{{@@H!rmxCX)mp)h^Mf|a7g;p*wW?ud=J0RL?CEP zkEcMj#QI2Tc@Mv*2kEq`DKw7vdi=Jb&-aer)!-Z0qjz+QFK@N1&aRXO}`izA!9+A#$97UmLtKG(#D$V@JG;R0Xua%1u4_kNMazOP^ayYznp(_+pa zmHp&*7l9|T=r9&<9@|?Ko;a_$GXn6R3= z-_eWeE8>!NN6sWQh>p|@{|B~~h0NN}OyO(k|0o{Eevvy?ir79Q%G}xZ=i2u5tSHu2 zwf(N(bFnYJT6O^a^n}=lCZF8Nx;w2}uUkB4XPd5v`7Z>im~HzdJMCK7trz|-8@38>5jc3xX@h`{ zh@iEj_%)@#V~J@-!i)2n-XCy!_SC5Qyigi**PVuC+h<}!~>FElyR+PxP0svs|A}^vKikR z#>I0>S!0;4UyI{*IK1PzbOF;IshL(A_k5A?+#7WY^+>e^YX;p z=xW)DcRQbIOIo!~v-$kABZfD^J?Ag~CjG!0N_ye{SWo@7I2vn7n(V-R~kb-3M9=yBBG68O-n8v2ber%t!Zu Pq0ivy>gTe~DWM4f&Ev8V literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/training.png b/pos_add_product_webcam_barcode/static/description/assets/icons/training.png new file mode 100644 index 0000000000000000000000000000000000000000..884ca024d71ca9127a5393134632ee92a61b07c4 GIT binary patch literal 627 zcmV-(0*w8MP)Ji_yZ6G zgCi9sC+SZOF3B?A-3o?c9a^B`5B^xi{atdGlsx zfu5coC)9d9*W)+29w+CYx6HE5(7FIXTmz`}IuU&auvT&%3np6<$3JExZ8|Qv1`yF6 z{uK`ZBO-bN;C9iN>oGlP1At#74phASP()5l1Dq?6>v00$qR~ktYISg_G~Q>PN9l*Pyjm+=0joaxS5K;Rj(=Ddy)iyD^P2j9tz7$MRPPN-6X6Ic< zC{O?T4(yVQo5t(DjmAqa0UQ-9Bj}SmO~ZA+0wO7a=S3S8?~`nFrw($EDaoG!IQ?TF zt|2?U(I}QLQFZXyQiDB8SX$~v-8kVA@YGU+KFk?f>fJUiwWsHQ*BQQneoi* zIdjgY7w2;~&-47A-}lQiGr#AVfgU}2^thi$w2V8gP8xe`iYA|^nQ(?HLC@=`7Uk<}) zLeWEQiU$yZ^@<(}ZFDXOrZ=@2KTECwL3TGYp{o5;VR!&Zenfb(Y~lunk>o@WhF_@a z!ghmmZ=oQx3ZUrTMV_|@z*@URl_LrpnuMspmx02LayE1`&DBGH7 zIB$fJR!y{I;6E2v5gyA7yJ&>%uIrAsk}Qk0c3q+z1eRyI&Umi#qKMSynj`laxQDEG z$>9=BWqAjWxCde)_&ZYtQ_uHfppNAb)C&iMgDG4Yayz-APl492qWnZ z+2s4qPerk;Qd zRTxgcUKCf(0QEW%Si8S$d^23v9Y;Bm$|Jh7D5kUlU|v?DQjz!5DcCSIHI;o!&C;0x zy1x?jTA~w;DMb2S$s6C7*Wr6^*LJGyqHt8;>Dg;xBk)zTu^q3#d?0F4bwS{Xys;0Y z0b}%PxF6sy{*u>yU@TD!7kg>wn=-H#OA+vz;H27KSYpwM_&kp%X2ny`^Yp0@|(y-wyRtOEu) zkZMr2S!>sIk}ylBD^a-LQPoOlqjSJ;L-U^%BWoPTxn4GDGXiV(qm1VDmv{z1L}Jvu zn`vGi$NH_RE@&E5g2~Cr0o8JExjDBIzCUyV^vhJEFcOB*@hFO_Ws){xtzG=^;Lve_ zQnzMHdm+ztcL8TpjlxKr=$THQiK!@hAyIz4N4%2V3+2+10THPgVGEG`aJ3>)#)7~e zj-qI|S!^?IMA7OXjJ}pce+C{;_v(adyt>r~yRAcuwRTCOd=IQ`K0+rHj*6O7#^_|N zR=ZNIR{yzq^QL#_j;<2XwFs{P&o>X}q=;_wJnsh7KQIfj8}c9GwohHEy0HGyN#1EU zwtz&CPhEFtR77q!cFdS4^%iP|h}3+~+kwg^h2P66zKc$%k(WHr*_9O!^)V)55l)iG=bkroSVWSt8oK?9X|oC&>t|S94mi~JQz6J@L4Q+~({Wt+ nVe#UD%iYS|qeqV(_m6)8sc^)gW+q6200000NkvXXu0mjfv*t}m literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/icons/user.png b/pos_add_product_webcam_barcode/static/description/assets/icons/user.png new file mode 100644 index 0000000000000000000000000000000000000000..6ffb23d9f036834a32954f83bcfeca00790ee443 GIT binary patch literal 988 zcmV<210(#2P)cAU zg%n1_!UO~hi=Zajq!7VI@CUR>p`!Rx*a$&o3k`~bXb@RtC1&nyR*WQ@xp&s=+|MHZ z%qBDA%sD6P7W>?P9RqF}kWv6&A-zOAepFK7 zn%moe*=$Tc@)I0INT*#4Q(tpt!c>;Iw0DH*Nr(MZj6)>|hd7}=D`NRPh zXvGuSy!q^~M868;^;_^453rHAwcCa0XTYMJUi@XTxY>o~XCPvW7k?SF)lGsQoZDZQ zP)=G_j{)g77n-L5oA={)hSIDH&Cfs)ee1>VM9F4cXnqDNc7ia=s32eb!iDI$gsOi4 zLvKEpLvw7Jbc*9=pw+k^81;$)fYoTt-RZ*gtblIt<9DK%bYb~+p`ZNt9gylSG|w)y z^f7S3E5=1EFtYA*7owK|ZMZhYc+MxrUpVY~%?xuR%hGp%`<%$)6(zO(uDSg$G#5pD z;K6<0FLeNz{gRNEPQuWq)1OJI*Gp=<<_=N;X(Gq;tOM~GAMp_MS;a)29s}JqVCIjM z)b8=k8|EJXBpK4+2QuS_5P5?c0HB~e#B8sn^Ebj8h&ak%8{2szdo@hTfKXDKM!FmH zW1nf?P!ziqZws=70=&$bXf^g?93W~xqS9P$i-O)xkbdQkw>_W_=3j zHL&MZ+4h#Vli`J@6>FxCSeAZmS!$N0X3g}h<>^5?bLOg^ymRRmYovK~+eD>9insPXvj3+6Gb@v&hmf9xq1t2!EP|dQ8Gk{Nb(_%F zfZ2)l~DhpZ1%x!dRjm zO=;u!cb$X1D_}gv>Jbl6rqq7)(!s6*&8$S;I1dcnm#;8RsZyKh9Ozzw#ra8ApLl@n zmu`~X4VYcGB63`?zPU_W_r4w%$5|}xSP?5ge^6@en%S9MO4}qmpBLGc z+0FjUY-Um~^1{NNbKdiv_nq_2d}juhaAqNAYGGAPQ!by+?CdIx=|Q!EF@IoLzlew* zHqN3N&|>jiL`D#~5!H3TiYBy2#kO~cjhT*5UTf&o)WxJyJAvB(gK7(+j!7;TT0A7Y z1FE_V&)W$+3}iZx$0V2A6?Kio3}~@vBQg$L-C2d~l5BRYn{^UNAuSXJ5cvdH*O{zi zV%uGb2Qb}EY>Q0hdBTeCB5i_*J%!Y9hB4-|&cua_ha`5unC%@oF^Pv{Qs|lv<4<)f zUXLH|SJ!zQN!xgltnuI zA*#cGrK&x(v3Ly_Q|`zSxko)OA2y^qPL@<^KO#f_bvjN$1}w`3PIqAS3hH^A zP<=n*vz)54C3ehdJM0g+#tCDPU9e*A9n+;vw!rRxEBni5 z)-Ry*UUp(jA$8sBfPFx3TrnGPh-`L9MCxAWV%Y)pyc>XbNlyG}DwX>i#X}4RsyFRk zVEIC0wZTI&IM}qlEXaTsi?^UUPIBUXU{q}T#a4t=w~?!r^mSlaglPrljv8T7?RP}( z65D>Q9jU9ESY3A%*b`~K>IAlZtB6c%p|F}v<_biHP`wm58|VX$0ly;h9+vfvh)j11 z8_9sG3ZAzI7>zOy_>^pRvxuCEIIkl@7qaR%o>zf8Bd&3X>FJx35Dy`DKpiKGG2_6- zi1EL|_pg8qr_|L-ofg+klMsFq4s0+U^c|Cvl? zW76WGjRAGt5q$puurgxIe=ugV^!5FI`VHxE7Je0$oQCSazOkXL=HEJ@iy7)<8ccM zi$(+ef&T;QIOo)jsy2Ql_>yw@-e%|Y#X_Tj-|AYa)EhMu>Nvyr{xgBmKbe`?Dr?r9 zOju)E)IDj`^R}b-mDwQojt1IgQcl=+(LyKais%c845mdJTs}XVW{eu|uie$6SB5Pd25|YHf6OMZB Tt+q0v00000NkvXXu0mjf(ZE2? literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/categories.png b/pos_add_product_webcam_barcode/static/description/assets/misc/categories.png new file mode 100644 index 0000000000000000000000000000000000000000..bedf1e0b189ab85a0800d2bf16f8907ae0f9b225 GIT binary patch literal 1532 zcmZ{keKgZ+9Kav<&g)v_b;hk!gv>VTU}Ro~txRZnf7vk1>ts^0E+H?ytaOVCAAtJwqh7z>jo|))?0E=;^I0L}r!q@1EP`)*ij%*d2<}K;)isHiUuO(K8sRsh z-Pis3{YvV^@OQmmNs&NQU=)KXv{AlE^1MknPJ@r9OQ`&Nj0POs^TNY&qa1m>k$^h9D8PU8DqJ&&5k(K{sH@ z>V&X6c_01q(%2SvYvLlvZnd>@@hKBUnCj~2ChNaWzfP;#&qp?|WQ{%Kh@)Q3?|Ni0 z=(zu3N5auKDLJw+J9M|2X2;&ImwC4Jf<@^EEM+385H^D2h1?zJ3CZs;Z5fLh)hk%5 z92LCeycC`uoi_YZVuu}XVj@bJ4%>5%sl%Pd2NlL!H`UvThTU6LJEXe^gn}6qo&D*^ zm^{E}_)%2m+Lg7mTKSD%vkXWsw?3^(z8CV2X1=Ih+$)FISZ`Q1W>#&(U;Pf3754az zInOwxDLL*iQ+nNfq^Y+ffJ{jKv)@>P_0P3jxYZ!D3cFG&Z(+^{gBw2KslvLZ6k9pp zcav^CwSZWm8XpNq>1*NKY-M4jgw>z=OfFMf(-%Ced^p_UI?=L>ul247laA={vAc40 z&MbkA zQp*daY+?&xt97XHt%JJN_4~;wCD(^h2BpL1xp@X^wlU;+cG@IQw(58Lm3j6ZZ+dn9) zlL|m@Tzt8QBUiJiT2oW)3o_`6!%f0b4fhFzCeI?t)lB#3@yOj}Mt_vsQ;lPFV#O6{ z#%pHl7`Xv@3G+~0gf4=9HDk7006U7#X5b?aGavvftd$iSYlF73p<;LAaeMIAHoLG` zJQn*_0WSNWkeD3Bj6U{lp)90@1PP}9O<*$<8L4b~BJ10ZkX&2>Ie_fuMQn7To%{z~ C2BR$i literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/check-box.png b/pos_add_product_webcam_barcode/static/description/assets/misc/check-box.png new file mode 100644 index 0000000000000000000000000000000000000000..42caf24b98062c6ea6bb4a636808964262e04e64 GIT binary patch literal 1118 zcmeAS@N?(olHy`uVBq!ia0vp^3Lq@N1|*eVE!z&HSkfJR9T^xl_H+M9WCckkdj$D1 zFjT2AFf_Cwy$! zfk$L9kWK*O57|!VfeiK%PhVH|XY8`f{5%sry}!V~z%1$M;uw-~@9oTZkKjO=CD^jHr2-Ky_r{i?)~S7_ckB4oN(g5tYF>c zecgT2?!-)3&U=-W^}*{P+mk1&m|2o@3`DB-E~qm~>F;-*yYrll;YLQry_@%LUb%8X zSjE+IehQ%>T3iJ@vm@Fq_A2$CQg(Ju_%mzI0*!##akKYr_)x8V`IhX8_~|jz^_hE> zd;=LayyV?Fk7K&Tx^-+XW2{W<-~V5`@89>ZwyFGC>#fe-*%zH$M9~KbEpB%kplhyQx`MYlUcye6W&9GPaJX2i3?bob^ z=exg^9ZxCxM3D_VHl^jeHY`!8c)H5wMZp^0bDUnQR~=%Q|1hPlj^%al zjs`O?=kPw+Mb0anZ@pqaf4bYWLWeaYbK%J(#?C)E8yU{u zTrOT_@NtibABP9W1^0$+d-vQ_D(lYg?oQ;m@a?L(Z{C9mLOf|(k3Z&gc6i`$@X)`5 zj(b<%uQ*aR(a3;d>&tK7gM$+}IPUzKI3?xtd={Saa$y6>?~&_*ZG>w7{#DSM$re73 zo#ji*{q@_{ugldxe*4`p0=f4`+#~FJYD@<);T3K0RTVZ(~IOI{J%W8*u9*WnXM%N#3}+n;w=F9$v#T_3ILHv09f$= z0PI5mfQA&b*x=X~-2b*97_-TaA4aVSZ19GdIft|9@!#C?$B(cJPz2G^1hfc}=H!$h z9#k8!MN^`&p}kYjYbSq_s3S!GnwCdX;-6K?>A^MlW~@W+hr1_WWGxPgd2V{r)k%}8 z`@Nt`HpQ1%gw>PhZxP~)DeN26sL+QQU{ z8=X<#AL%T$&gkq?(a0b{u))BWK7;|3><4RK5J@RX$ z(S}Z}XkyR`Cl$7Nme&@zL{?CO(=SFeS?(Ug7^y~jPwq$Bhw-+z)>A7RpO*1e4MwGS z!?tam!3yiN^P^z==2Ymif^Sn_MMZt9@54&BgyW9J6EEZ>7oa+7Fgzx|yzbw307XYE*cD0uWM1t?sq(m z9jBP~NW{6Df?8;77_ai$)T`wdKc0X%#E)|{;eJcBhe@f@T)URJue+whDml1xN zmNk61-cbkNU1R|d;RSR}>Pp7Y?F>1OlNfN&=47KVbsz1e6&y8Bh{?cg&1Ig3W01Gv zC7=XiEH4Ov!QLP$LC5WJ9~lk#6lZ-T{B=vW=D7F#K=!-_N+yGmza~Cwnx=Xj)mX7z zOsJg`XhOIrpF3Ee5$Y!;&7`H-MHfA>{W(gimR9q3_d@AdIN>y^r~!^0L3@6yh{FJA z>EzuGB&7WeZtLNXZwe!lM@J>y-=h7@#@G- zXgt!HYgpi<3cuG<_PM-k4z6eGo;5Ik&8_$?xGvg!@iwHsU`34@

a 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 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/cybrosys-logo.png b/pos_add_product_webcam_barcode/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cc3cc0ccfdaf8dff2e8ebcb010e24ad9e636b494 GIT binary patch literal 4496 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 B&Kv*$ literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/logo.png b/pos_add_product_webcam_barcode/static/description/assets/misc/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..478462d3e73d73cc9bae9fea8e7f8fac84fab049 GIT binary patch literal 3452 zcmV-?4TJKDP)Px#PEbr#MIs&_+uGWlo1Co^85R-~_VxAb=;{Ce|FR(_ z1OfvvEiGJHTFS}EY-(z&tE;-XxsHsCJUKc_M@Xp&4t;xj#adq9qNMD=!Jz;F(0O|# z0#`!-01V7YL_t(|+U%Qcd!sB9hJgTP5CM&8+W-GYAKnE-lXUy+{bB2Fk2X;OPp%n; z0nzY#ymR11AVJo77$n$_D1Fa*M>=QEcK-jP$1)5n#rB6~d~zCl$I9(F{&nvkAO9ph zZk0E!D<&x8lR&!%ENtM{+ogYeew|k&i7`3}nEb8BW1RD&1{tHmIf-94S7J!G8q0)l zRHN1zA6qEuA3%ot?Rs>49viS+5yWG3O(t|03_>CvNUX^e{FjJM%zBl0-qk$M<78wi zZ5HWPcTOzhYV;lwBO{HKib*w%lS@3c;(;M$IgB(HDrTLo3hhDRGoI2zNH$E9$0sa4 zX~X~t9~X!CrZarEBlE=*b$VV_qRc|=vlwdojLR{pT;cTaSQ@MH*}}k5BYz&|Wf8v7 zbPNC)mL%S~*kktRglTFe?)zC`jNM;!QRPWP0U3KrFF>b>IyzX-p->PKN7%L|+enzC z|1529OcG;hDK0DZ74p#7EZ*0!UTxYv1pP#84Z@Wt_{U<>f2LZ=)?q5 zl%ho&oes98L+CH=#!~yA53k|7eR_29*K>TUZ7PDIN!qqI;KL}i*Hpe3l9A$!&wuT% zge)I_4h7J`-BkPpR2&@O?Yu1*a-A~c8&oKimX1J!V6kCE4=~Gb-973n#{2c~rSpd! zL|(wRLb$Q?J4t;J0-bp&jNB|tH+&Iwf5f&NSN@a3qR=jE>Y%|HWbYP8V#ET zbAS@el6uqDNQ)7V!U4V$^^HSh=iBjdy*$OI{6mWtX`+Cd=XQNJ3?23PXLbkf;Tz__ zmKS1k1KoB^u*uvRDd6&4@{2muL2rjQk>QNown}VV10w2ovt>L3AjS#Bg%i{}N9Hi30;SF?@-*!@@{&F^1nh6ur6MUln zf!UYjjW$MkkIyIgybP#lGSu!slhNb$+eB(B$OLMCB!i(jU?}jHc0`gxO72OmQ8CDprg) zp-H}rFGU`#!B<-E9-oYNpH3;~O@0LQ5x&Vs#+wtZ)ki9w#^I=b$Pj~v7(hc31)$b4 zVl3)gB8nk+zzK_uo~ILh9p9Je;X-{OL-2KmFUA4lJew7R1#NNF-ag_}*iI|J&24d` zg@jMJ$ebo?jqbncw1kY8O7enkv=n1!$a)VS30Cw3Uo@A+ zdKcNj7m^M3_lWt zT--F{7kytE4msM?ce#e<-Y{G@URY>6)n>X+t4vZE}Jh3 zf<%XbOJ0~!31DNs3$168LwOTkQ3_#RGhUwNryIV@HI!B+4fgnwV$2hKioSr4SK-_i z_pul_PVEFk^}=RXhuUPWMWkB!moPu9@>W)>ypSy_r%I>za?dQZG+sY);3sq5IMG^v z0$-ZWlQwWkwx${}cPDNBd||k8lXa=G6xPZL&4znd8T zLG|TY=EhJv2`d@!tyMOjw!uM9eVi_>m;rb3&9q)!%WbmuP{w(e=hZ{9h_4kL46o*B8IG0HQzrE5%pb0BN1+U>N zll3Xh6!U@goHw;tZu$4ZZiYC%B#kMkMp~D;SHn~FmEOU30gQcogDKX=QwzBOA*&3_ zYwNrw%two+u(6FeReyl4)E8##d4VkYJ6;bAc>vXZeackg15`YEQI|kvj$FmdYe$H) zXQFix+68B{a6A-5p&SY;&r*Xn8@|+qC-qU7W$tiF)o_51Jw6^EAMVHgk?7ekJ}kZ4 z!4{XV!#yt2=S%3kDy`Kt10}l^e~LPJK^(uPlUZ%hWaqbH&3zD0<;9^mCxe{8!=qck zT_tB&JHLZgw&A0*Md6dBZppiyy{fkG==-cpsc|dl*x1fd2Pp%W)VsKyEcWM?cdlUn z)$vw>vq_mun;ZPDh&q^etN6u{VjPU1J}iEnm(R;1PB(HDrtCJ`aRSA?7=_;=Os=jn zzeB;WYJjaO-AcnSa!hPlVzKOD#77A$XQBJ?fP1HRu{4$F?H>~7yM7p%mU$Wf+SZ`F z&1Dwz)CeWcI{4}~*SxwrD9t*|g2brLvd!I@Sj6|?#{%nVntznSH2mww89x8*<-w2E z&=K%oe24hhJ>XNv_{cB59ljin__X{lzBlpR)49hpeDoLJ4qr;j+rv$9f7SOMzUybk z=Q7JXe02WBcZP4XUY9Ot@qsk-*LY9x6`26HtG>cVLB+)OulkPg74pN^&jO$D^S1RgsPdmF5h#akuhRcVeSh|<7ys)wcJaAop)$SX z-`Mg~ZM?vF;DSj$@Y{{S>#V*H50mdsBJtCO)%Wl<`peod6rP05D@^MObX~`9ShnpP z{e66Lfp2P8q94Y0z1;4*wh#gIS=hWd1NW(UGJQt|e}HdL-^KUS#v9&(x$`Y=&+!OA zpHJF+V$I{j-*AlbKf*WsJU$2TdjI<3*sLyf4)rFYvyr#66=~4Kw7b8!GR=E?5+paI z)&iG$&}N5K5~82sV~P;jyRmucl55%CXj<28ow}B9;d3T@yFHZ4Vbga~1|59ss>bGW zxez7h1|Jzmn41;s$t4Mk& z(c;s-I$kd+_~3@OYHPPND|-l9?~9QGlmC(Wur)wqlq!WV3f><&8hmVaOWHL)9QLd< zTcaC%DvU!=ZC6r`DQ+6h>(2^|Ypt$dv+Ta!@g6?$P2Y!mAr8g;z(v>E=;4bm(@gb1 z-QbHaJwVk>Od#h@*%>|poroV#K+XT!xw7R7K^O|O;7CN4v7Pq+f3y&NFd^P$#+QzA zpRUT{@eo4hgyAgqy|?mewHlIr|J%ERz`pdHeJHXB4=3-uw!?)fqgPxb&)|#eeAjzZ zW08Q<`|!ExX!81TdUfeoa6}}DTq7+Y3hZOHuZf{RQR*T=d|~iO-;6TUO8RBXdu;z5 z>2aAwr+$3~v;ID$-_KVwF|yktxpylF-MpOC=z(fZo60j}3P5UvF_bSFMQNGtXA%3P z_&1`j*Yd1g1_rS&0D(RjyF`UCGmmGf7If|v@7oBzk90u4=w!*qlmv0FW8)G+=OXLS z9o=A)QdGY&g|I|jtCKY^1mjF?lKEj7m|mdPrnzS}<^o(MTp)Xl`tBnYf#X>|S@0r4 z1^vKn9@f)Oq_P=@2lx67q!j~CuD@hm7p_8u7pd(~{nazu|j{eyO@#<+LdI)!=KE&Yc(6x*mMz$NTPb e!*|2?|H>Z_>p))&1OWs90000l? zWKy}bLYpqAEQ(GYLL;Gb(D`-#IL~wb=zX5=`+48*`+lDHkMH++vpn2fWTn-m0RWIC z9Kam{srDn};o#iz@f{BYjOs*k0)QL&sI?$TaIX_`;1CG_67>Kel?4EQfvMC#0pJ80 z0A>OKz_uI!ROyu+p7!7YJlNF*2NE3LoOvlAr055ZFhBlyRK=FmTchU@1VS5t^%)rBQM9x$MwS_ zIXL28E0Jutq+4j;o%BRKk^5frRo5||pMzOotWxt7e`AC8&_%_GFa5wg4|BIgM?sHX}t!3?X6PLp4$UBYR*G4H& zMWX78_VXrTlyZUMxJRvzIRlyY?ck;R``%gwo;iG&QYPkRhHGmxV&U|J?Y^rE3saY1 zG~M-*5Q7+U3lPx5rh}=!OE26Gy*noAY^$SS1z(p>+80-3tY&2q4P(pi=oiXZbv==y zXNz%@hg?y+v5^*UM&psGr?#W?#oy?vVT!Nq;xo2R2u5H<#RL5qj7dO4ac@0F^!ngf z&PKr*uOm|Ap(E|9ZzYaPLWnC%tr3r8Ip>Osz(!1gNeva3Mwcv72UG3Cw(^a2VSqj+ zi^Gw7-K8=_q3X|GY3d)JcoS`y2fuJ>cPr!LN#P&A2aWB|#WZhQ72J@Mi-2%_f2*#Y zN>HTSP7l8m-qvJ*mJe2QXf)d?xw#rCH_dEO(a3Z^O8y(8pbhe*mx~XuA}pYj%F=G$6K(s;ly_O+L&wbDL`GV~pO~%~ zb-PH}OteCdwx9+4m(buZi#6EN`j}3e6EiuG#AL|cKo&hdUL+J{m?}#zsV1<9ax%nz zu6S>pFkEA{-8Z>oTkYo&~Ct(r52;n35<_46W44SR|=yRZb>u`vCFL|O%y zvHd+g6~vOiaEwWo&Gx1)vM`!ybp5j9d~a2FcK#-HcUG{IW9kF$JJMax#<6T@tbvx@ z$jqUkmA=~0F9J@|)1nwszzpy4gMpl7U8}JtE7}@?iFZV zi%UJkou|bMX>_Z&mia{Gm1ER8qI{S!4wYU=N;1}ifE8wL*nd%HI-fmC8l2CMv-R~u zvLDDM5}tj44JzEQ*b$bs1|hT<=)srdA^a+{tvf8CrMN979i}O4ehAemf%4cedr{mn zGO;GJJ6*4d5f{8kimVX0tGi;q66V;a5r+ll#Tf1JQR?ITA_3c#FgN#Z&wSd7rsk1# zz@rm(^=;c#Bj>sSsWVIc7rsY+Ik(`8u_yE!zp6Cn)=S25Z^cV3AX(?Dbv!U6gQlBt zNC{m%*Y<{X>)BW2u_SzBEef}Y{Dt+>dGfohq3m#N@KS^KHSx!Gg!cfYpwHXRC9@B$ z4an`Ay4?85=X%4ZN>1Uk%ZcT8LJ)2eT3WnQW+Lo>r(h_TX1>tfcWOr&Dyk3?X=J36 zKdbY6a*BJb<@)(GsIql|R|Wyu3I4h}nRq`YC5Rbn8xj`^0>Gd#7-O`RF~;gJ+QJrX zZHvb2LZfZbXvv51_x~qE|3ZlfOZd6KWD8G&g28_;Fe9Qv8O)$)`p=ymdGocP0}$|T JxMpl%+CQV6u!vJ6b2LQ+{ z08k|5Hl8;V48(lSS)m0K*v8qWXaU4Y)|bKr#QoPfLFWB}1Vpy6w*bw8ppr_kLt{~G zg3c!!^cfdyd+o&tj0-_-IqKL|DT#v*Tt(VR^p4|6prn%In@+FjDyl+Ba-xF~Di*o1 zx1guX{>c}`ffisl;XpCP%2;L>T(T8x-gJ;p+_7=b(m`FN+@eG_S^4z(swp$6AOG}(RGqLPX`>E|>w!|QLqhG3-1qHCT)(Q)h~`IeQAoQ|B(Fe(k=IQDJyJ-)3slV5N9QB$+< zu4?=JxT>vkq}G80CL?V-ntJN=@c2yUm&LetGTO2T(#j^OseJ*DCoC?G5Q?B&pWvkm zOYoE;DdcSqJUen1_q3ZEmgOznZDExTJ)V_&Rh)`E95GzJ4&G^q{F$r}|7E&o>+(ec z64CLp)6^!M!3fo%=MZluDcd<1WlhCFjp4Bl4#q!@b*1&Xwa{w%sl7v6O-=ScLhV0; z47)u%PF004qYRdY9GTLSaf>OCK~;YtPt6V3z-srmem%XD3*m0au-^8>2S>(GiYsD) zpO-i4^Dmc2^2iIJL37{IB_*OpP`gM*{r#;A#$k<&;^~d;9KudWS?k0v&zimPlH?|J z;knX-i?W2q)DsQlGC4*m`V4HUu4;M&+t4(GUC+0%aXetc60Y;`z{a8cy)H|gYm={j z;l{W9T$SPNFVBC(rBJ#sc(pp-rX=*iu67=eLx|jWLQcNE{{sE{`T7@1Z)9bD8zf0( zjj~_mT4SZ%t3rjZ)!{+2vp?nO{UgKK5#yNL>do)RTlsz2bB}HLdTS3{kkn^F2U7gp zeaCg}X@l?hW~nDsTvy+m_*r&&mzT4%)(9!}{CMT15>^6t%fNQzma@FX@aRa|1l0z*qvGe-ASXo+H75MF{hm1@$B`s6e`mtp!u{1kM23&ZI?Q~aH zN9c6V;=6*9!4dO;r|zZd$_WOZQV@&;NNnA|Q?IR?yF8?du)`6$l_(0$V9J1RKmcV* zL8?eOFOMC}v{Q;TXr?v4(8$Y*4M*d5teg-LQu7*+Szj~fKj&n^&=_#Bn>!WDNFV)p zKhqa@bvz1L=JLch`E!DQQi`PCX&pZg7N>Eq;&or4tJE-I1D?u=@o}LTUVUV9Z1x9K zl-W1V4UY3U$sz7&6*jVHxCmv$zDA`E312662$dQQFCCh1p7TfJ34T$BgE}dRTB|LT-;YEoNK7ViA>jCqdQH zKBcB6G4S@&$Lel2T2^;NazX~5d1xAxU`Q7a_L)UzJ8>v}+Nh30S#B5{KE{W0 z#*57t-V&9JQeIkH6N@r-4+)waqjM8>2F_r#b(0B(>Dx`rM_;dK`EU>?=Qro7lB?mj zx7S_n@%OR(i)Ai{8Me<&+UvtElV8*v3lri0qIr4s zu+es*p>Y-FhM%-{8Q?+x5Ci4jtTNiRdwT3D*)8iinnteUB|-VY!51KxoFN{psB7JI zKNn5!NMef%;b~SiLeB68D2@4D9cerQV-6f;Tjg~E` z?bzd}7Tt$!x1AqrR-WumDLffbZQ^=ao6`5U;WZ~2%Nx&p^xjAh*d9)kkNG}$%5A+VOdR^iev6_9*0mc5>s>W({cMY*pr&6E+Y%Cnm&&+Xg{{c=MKK%dy literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/right-arrow.png b/pos_add_product_webcam_barcode/static/description/assets/misc/right-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..730984a0635c971661c6ccafc2fec83a2dee1632 GIT binary patch literal 967 zcmeAS@N?(olHy`uVBq!ia0vp^4j?SR1|)y|Tss#?v7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=0965n8eT9klo~KFyh>nTu$sZZAYL$MSD+10f-TA0-33Sk!B6Mi^+1ZV zz$3C4NGE{this?wKn8n>r>`sfGj=I%4b4g4AADwDU~2MoaSW-r_4bZ!MsT3Sv5((f zj=RO|;#kCS=}}7XL8tDJKN>$74xU}fF>8v}j2jEzPD!~~B4D&6V6&)t;iMZW0#n(z zM5Ri70$rZ#WgS)W=yTpFs=aW@vwOvPpZ>4?exP>p_lE`Vt_v~(ZHIzC=1bq*>z0|h zL$rJ5x+8)Hu@2<{TBXXnCcMxU`O+qJVZYbXC(k_;P{=m zoy94kwEF;O_c>0rrT6}e&e$-V*P8MWRF-G>B-@r{Pc42%%tE>x>1&hK=0!iJj_bFU=Io=^F7{M7dD=9_DxO9dJFZ;G)nC3NUIDloLooN-(2f)V94EWEpbZ~Z zma#f64Z4`2v~cT7d6xV)e1{w_vmT7DkGCt5Ur=3pHLa;*5f zc07h}=2!o+4~gCP*(>6B_RmB<{nj$JXpjQAjcb8g9~ebTzfTZ+G3jl;^Y7o%?q9u4 zqt|+Q)SXiP9{zRhqs#@~+wA#bT zfk+J(R@O0J6qFZ;eYtTmFny?&xJHzuB$lLFB^RXvDF!10BO_e{b6q2|5JN*N69X#~ zLu~^CD+2>trOB!&8glbfGSez?Yw)Spo(a^T0k@$fGdH!kBr&%Dw;t&%E;pba22WQ% Jmvv4FO#tlhdcptz literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/star.png b/pos_add_product_webcam_barcode/static/description/assets/misc/star.png new file mode 100644 index 0000000000000000000000000000000000000000..2eb9ab29f722b495b4ab0ece3ad21e7b82394f3a GIT binary patch literal 1642 zcmZ{kX;cze6o8)_%zz{|jy5T_nC3DXlBrQ{D7dhQ;$CJZkW?-u8k#BY>10{CONm2j zS(=t;$2D_paV=a*EprsoO3bpw(qZPuoHIYV=iK|<`|kP9`*+i+6h{PXBMbn5aCUNV zmvO^CiG;{%wRoyg2F1g6WIF(A&cnY2D#_-}K~C;u0Aln2;3fm`RrbV{01$}=VD2CQ z*n9vq!g&pDdu0pAA)=#$jI#J*-xx2$&*4tK5i%b9H>F2${jvtib|&MYvrtXNjmD2) z)OG-rbe$dSJbcS0T_J9h7=ba)GD@Y)Z4%I{m53aoBzyMi|aQIi2zE_#N__+%0Hh141 zV)v5xuhe>IzQVca4VwMpL#TJ;||e=cM%{MUEOMwYghQ!59{b=zmX~BHv&X<2eM{7 zJT{LNN4icLnLvP!Ewik?>43_Xk-W6c`%|~N(~8YTkzAaqSziUr9cx*2f;C`S`~LK_)qAtD+(@_ z6v)gsESJaedKJd zzMz`=g#GSPA~$k=udY|Ck-;UK7mXS^iJi>UHmr|=+dAkFfWO*vQtF3n``AUWOpI3? zEF}hZww+i>%gM19tGjo*w3hd8vdUn+qao=`9HKDAWo2bhnFHc|DnA>=!aD;R&9l;G zrwWa{zm=aejS%-0j~v5vqoQM1>P{-W3`>n-jAv(FHm_W(Z&AkG=F|jOSK(ic-5I2q zp)4Nr(r>kMkR2V|4FR2FtE>9(`mG_+yRU7hY2+g&CU!hL`;9QIiA=8G?$yohE_xEw)9HD{!>f`iy!}WHSiub;MVCN)k+@T?13yj(M z(wU){=%JR=)P$>47q{kzQ08MINlTgk`ZK3+cJZm))tuKtzop@eZ`mK)k_5)%yT-<7 z9>}Gn-m+S!GDG8%lC}JoekmU2LoW3`l}DF}z68$8dut|51%IB1IJv-dbq-=RL+?-g z=H}ajB8^x1x2RWPoD5kp^ImzQ|4BH!2EX=(xl8!F0Zc!ydxizbxY`!bGQy8pW&lifskd_1( zFYZ(53wrAabdp3|dUg+}e8=5%A|-3}=ymk=whX)8wAK1OEL4xj(R3@wdMT7sJC|V^ z|CRlxnxbWERUd83oF(h=9O)w4%Br^=^;tdl>2P8Jr}${b9}yZ0%ebU-feJ@{fnBBz zfGa-!2#}ixv)1#}|2o?*cE3B2V4sr0LpUbrqX$H{3T>_F7mKZQOx9b)1)$F|JAE&Q zk~~ENSjzTiKU4itCzMx8>g>~i?O)fwAEN9c)Q;mH+0mFo`w+J z!*=e&?(uBBSn&Qnk5{r7?c-OxFaJUbhB{pk_WapsiU)LORr3U6oHn`k4GMwBkwiW3 zD*crDtFt&2UOG^Vq{eP>JGmCMJ#_qOG1MYg^(i+MY4Mb~cg zU!IW~3F^Z|k&AaZ6EokH)C$R2*K0o-%WkMH8}GxW2eKL1pc4!k00xc07^5wWF%}+Z zGc3j&YqrY>jmDzU^5^=x{wIWl(OJys9}5vrqGDu%{(nEPSs{!Fc3?>OkDYB@-lZ}J NIO8b}Rk(wRe*?eI-Sq$f literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/support.png b/pos_add_product_webcam_barcode/static/description/assets/misc/support.png new file mode 100644 index 0000000000000000000000000000000000000000..4f18b8b8201e3a268ab1d8ceb8bf46d7a7a37dd9 GIT binary patch literal 3892 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 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/misc/whatsapp.png b/pos_add_product_webcam_barcode/static/description/assets/misc/whatsapp.png new file mode 100644 index 0000000000000000000000000000000000000000..d513a5356b2564f545f2edcb0b80dd3dbff9629b GIT binary patch literal 5097 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 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/modules/module_1.png b/pos_add_product_webcam_barcode/static/description/assets/modules/module_1.png new file mode 100644 index 0000000000000000000000000000000000000000..09e2d45b21e97da28492a04a6b10a04fbd8dcc31 GIT binary patch literal 59079 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 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/modules/module_2.png b/pos_add_product_webcam_barcode/static/description/assets/modules/module_2.png new file mode 100644 index 0000000000000000000000000000000000000000..94c023fe105cb666eaf13cc3238f610df4ed3683 GIT binary patch literal 62030 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

  • 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 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/screenshots/4.png b/pos_add_product_webcam_barcode/static/description/assets/screenshots/4.png new file mode 100644 index 0000000000000000000000000000000000000000..6991e2c3ebbb22999129ad3a07d6ad9e8b172954 GIT binary patch literal 132022 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 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/assets/screenshots/barcode1.png b/pos_add_product_webcam_barcode/static/description/assets/screenshots/barcode1.png new file mode 100644 index 0000000000000000000000000000000000000000..dba2393c0cfa97b446af9ddd9d9f79a25eb277a0 GIT binary patch literal 181794 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 dVd;qy5*19(wW}eSNxI9q5=iG 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 z%0D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%0A)CW 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 literal 0 HcmV?d00001 diff --git a/pos_add_product_webcam_barcode/static/description/index.html b/pos_add_product_webcam_barcode/static/description/index.html new file mode 100644 index 000000000..69ff02f8d --- /dev/null +++ b/pos_add_product_webcam_barcode/static/description/index.html @@ -0,0 +1,619 @@ +
    + +
    + +
    +
    + Community +
    +
    + Enterprise +
    +
    + Odoo sh +
    +
    +
    + +
    +
    +
    + +

    + Add Product using Webcam Barcode in Pos

    +

    + Add products to order line through scanning barcode in pos

    + + +
    +
    +
    +
    + +
    +
    + +
    +

    + Explore This + Module

    +
    +
    + + + +
    +
    + +
    +

    + Overview +

    +
    +
    +
    + Add Products Barcode Pos module helps to add products to pos order line by scanning product barcode via system + camera. +
    +
    + + + +
    +
    + +
    +

    + Features +

    +
    +
    +
    +
    + + Scan products using system camera +
    +
    +
    +
    + + Automatically adds Corresponding product to pos order line +
    +
    +
    + + + + +
    +
    + +
    +

    + Screenshots +

    +
    +
    +
    + +
    +

    + Add Barcode For Products

    +

    + Set barcode for products that available in pos

    + +
    +
    +

    + Button For Open Camera for Scanning Barcode

    + +
    +
    +

    + Scan the Barcode

    +

    Corresponding product will add to order line.

    +
    +

    Product with this barcode will add to order line.

    + +
    +
    +
    + + + +
    +
    +

    Suggested Products

    +
    + + +
    +
    + + + + +
    +
    + +
    +

    + Our Services +

    +
    + +
    +
    +
    +
    + +
    +
    + Odoo + Customization
    +
    + +
    +
    + +
    +
    + Odoo + Implementation
    +
    + +
    +
    + +
    +
    + Odoo + Support
    +
    + + +
    +
    + +
    +
    + Hire + Odoo + Developer
    +
    + +
    +
    + +
    +
    + Odoo + Integration
    +
    + +
    +
    + +
    +
    + Odoo + Migration
    +
    + + +
    +
    + +
    +
    + Odoo + Consultancy
    +
    + +
    +
    + +
    +
    + Odoo + Implementation
    +
    + +
    +
    + +
    +
    + Odoo + Licensing Consultancy
    +
    +
    + +
    + + + + + +
    +
    + +
    +

    + Our + Industries +

    +
    + +
    +
    +
    +
    + +
    + Trading +
    +

    + Easily procure + and + sell your products

    +
    +
    + +
    +
    + +
    + POS +
    +

    + Easy + configuration + and convivial experience

    +
    +
    + +
    +
    + +
    + Education +
    +

    + A platform for + educational management

    +
    +
    + +
    +
    + +
    + Manufacturing +
    +

    + Plan, track and + schedule your operations

    +
    +
    + +
    +
    + +
    + E-commerce & Website +
    +

    + Mobile + friendly, + awe-inspiring product pages

    +
    +
    + +
    +
    + +
    + Service Management +
    +

    + Keep track of + services and invoice

    +
    +
    + +
    +
    + +
    + Restaurant +
    +

    + Run your bar or + restaurant methodically

    +
    +
    + +
    +
    + +
    + Hotel Management +
    +

    + An + all-inclusive + hotel management application

    +
    +
    +
    +
    + + + + +
    +
    + +
    +

    + Support +

    +
    +
    +
    +
    +
    +
    + +
    +
    +

    Need Help?

    +

    Got questions or need help? + Get in touch.

    + +

    + odoo@cybrosys.com

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +

    WhatsApp

    +

    Say hi to us on WhatsApp!

    + +

    + +91 86068 + 27707

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + diff --git a/pos_add_product_webcam_barcode/static/src/css/dialog.css b/pos_add_product_webcam_barcode/static/src/css/dialog.css new file mode 100644 index 000000000..225f32731 --- /dev/null +++ b/pos_add_product_webcam_barcode/static/src/css/dialog.css @@ -0,0 +1,13 @@ +#barcode_id { + width: 468px; + margin-top:-15px +} +.modal-dialog{ + height:453px; + width: 486px; + margin-top:18px; + margin-left:-15px; +} +.close{ + display:none; +} \ No newline at end of file diff --git a/pos_add_product_webcam_barcode/static/src/js/PosBarcode.js b/pos_add_product_webcam_barcode/static/src/js/PosBarcode.js new file mode 100644 index 000000000..fefd2c8e0 --- /dev/null +++ b/pos_add_product_webcam_barcode/static/src/js/PosBarcode.js @@ -0,0 +1,110 @@ +/** @odoo-module **/ +const { useListener } = require('web.custom_hooks'); +const Dialog = require('web.Dialog'); +import { _t } from 'web.core'; +const PosComponent = require('point_of_sale.PosComponent'); +const Registries = require('point_of_sale.Registries'); +const ProductScreen = require('point_of_sale.ProductScreen'); +const { Gui } = require('point_of_sale.Gui'); +class PosProductBarcode extends PosComponent { + constructor() { + super(...arguments); + useListener('click', this.onClick); + } + // Click function of barcode button + async onClick() { + var video = document.createElement('video'); + var self = this + video.setAttribute('id', 'barcode_id') + document.body.appendChild(video); + try{ + await navigator.mediaDevices.getUserMedia({ video: true }) + .then(function (stream) { + video.srcObject = stream; + video.play(); + //Create a new dialog box and open. + const dialog = new Dialog(this, { + title: 'Barcode Scanner', + buttons: + [{ + text: _t('close'), close: true, click: function () { + Quagga.stop(); + dialog.close(); + var tracks = video.srcObject.getTracks(); + // Stop tracking + tracks.forEach(function (track) { + track.stop(); + }); + } + }], + size: 'medium', + $content: video, + }); + dialog.open(); + Quagga.init({ + inputStream: { + name: "Live", + type: "LiveStream", + constraints: { + video: { + facingMode: { + exact: "environment" + } + } + }, + numOfWorkers: navigator.hardwareConcurrency, + target: video, + + }, + decoder: { + readers: ['code_128_reader'] + } + },function (err) { + if (err) { + console.log(err); + return + } + Quagga.start(); + }); + Quagga.onDetected(function (result) { + var barcode = result.codeResult.code; + Quagga.offDetected(); + Quagga.stop(); + self.scan_product(barcode) + dialog.close(); + // Get the stream tracks + var tracks = video.srcObject.getTracks(); + // Stop track + tracks.forEach(function (track) { + track.stop(); + }); + }); + }); + } + // Popup to show if browser has no camera access + catch(ex){ + Gui.showPopup('ConfirmPopup', { + 'title': ('Access Denied'), + 'body': ('Failed to detect webcam.Please ensure that your browser has the required permissions to access your webcam.'), + }); + } + } + scan_product(barcode) { + var product = this.env.pos.db.get_product_by_barcode(barcode); + var order = this.env.pos.get_order(); + if (product) { + order.add_product(product); + } else { + Gui.showPopup('ConfirmPopup', { + 'title': ('Product Not found'), + 'body': ('No Product with this Barcode.'), + }); + } + } +} +PosProductBarcode.template = 'ProductBarcodePos'; +ProductScreen.addControlButton({ + component: PosProductBarcode, + condition: () => true, +}); +Registries.Component.add(PosProductBarcode); \ No newline at end of file diff --git a/pos_add_product_webcam_barcode/static/src/js/quagga.js b/pos_add_product_webcam_barcode/static/src/js/quagga.js new file mode 100644 index 000000000..eef11f9b4 --- /dev/null +++ b/pos_add_product_webcam_barcode/static/src/js/quagga.js @@ -0,0 +1,11583 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(factory.toString()).default; + else if(typeof exports === 'object') + exports["Quagga"] = factory(factory.toString()).default; + else + root["Quagga"] = factory(factory.toString()).default; +})(this, function(__factorySource__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/"; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 166); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_array_helper__ = __webpack_require__(3); + + +function BarcodeReader(config, supplements) { + this._row = []; + this.config = config || {}; + this.supplements = supplements; + return this; +} + +BarcodeReader.prototype._nextUnset = function (line, start) { + var i; + + if (start === undefined) { + start = 0; + } + for (i = start; i < line.length; i++) { + if (!line[i]) { + return i; + } + } + return line.length; +}; + +BarcodeReader.prototype._matchPattern = function (counter, code, maxSingleError) { + var i, + error = 0, + singleError = 0, + sum = 0, + modulo = 0, + barWidth, + count, + scaled; + + maxSingleError = maxSingleError || this.SINGLE_CODE_ERROR || 1; + + for (i = 0; i < counter.length; i++) { + sum += counter[i]; + modulo += code[i]; + } + if (sum < modulo) { + return Number.MAX_VALUE; + } + barWidth = sum / modulo; + maxSingleError *= barWidth; + + for (i = 0; i < counter.length; i++) { + count = counter[i]; + scaled = code[i] * barWidth; + singleError = Math.abs(count - scaled) / scaled; + if (singleError > maxSingleError) { + return Number.MAX_VALUE; + } + error += singleError; + } + return error / modulo; +}; + +BarcodeReader.prototype._nextSet = function (line, offset) { + var i; + + offset = offset || 0; + for (i = offset; i < line.length; i++) { + if (line[i]) { + return i; + } + } + return line.length; +}; + +BarcodeReader.prototype._correctBars = function (counter, correction, indices) { + var length = indices.length, + tmp = 0; + while (length--) { + tmp = counter[indices[length]] * (1 - (1 - correction) / 2); + if (tmp > 1) { + counter[indices[length]] = tmp; + } + } +}; + +BarcodeReader.prototype._matchTrace = function (cmpCounter, epsilon) { + var counter = [], + i, + self = this, + offset = self._nextSet(self._row), + isWhite = !self._row[offset], + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0 + }, + error; + + if (cmpCounter) { + for (i = 0; i < cmpCounter.length; i++) { + counter.push(0); + } + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + error = self._matchPattern(counter, cmpCounter); + + if (error < epsilon) { + bestMatch.start = i - offset; + bestMatch.end = i; + bestMatch.counter = counter; + return bestMatch; + } else { + return null; + } + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + } else { + counter.push(0); + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + counterPos++; + counter.push(0); + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + } + + // if cmpCounter was not given + bestMatch.start = offset; + bestMatch.end = self._row.length - 1; + bestMatch.counter = counter; + return bestMatch; +}; + +BarcodeReader.prototype.decodePattern = function (pattern) { + var self = this, + result; + + self._row = pattern; + result = self._decode(); + if (result === null) { + self._row.reverse(); + result = self._decode(); + if (result) { + result.direction = BarcodeReader.DIRECTION.REVERSE; + result.start = self._row.length - result.start; + result.end = self._row.length - result.end; + } + } else { + result.direction = BarcodeReader.DIRECTION.FORWARD; + } + if (result) { + result.format = self.FORMAT; + } + return result; +}; + +BarcodeReader.prototype._matchRange = function (start, end, value) { + var i; + + start = start < 0 ? 0 : start; + for (i = start; i < end; i++) { + if (this._row[i] !== value) { + return false; + } + } + return true; +}; + +BarcodeReader.prototype._fillCounters = function (offset, end, isWhite) { + var self = this, + counterPos = 0, + i, + counters = []; + + isWhite = typeof isWhite !== 'undefined' ? isWhite : true; + offset = typeof offset !== 'undefined' ? offset : self._nextUnset(self._row); + end = end || self._row.length; + + counters[counterPos] = 0; + for (i = offset; i < end; i++) { + if (self._row[i] ^ isWhite) { + counters[counterPos]++; + } else { + counterPos++; + counters[counterPos] = 1; + isWhite = !isWhite; + } + } + return counters; +}; + +BarcodeReader.prototype._toCounters = function (start, counter) { + var self = this, + numCounters = counter.length, + end = self._row.length, + isWhite = !self._row[start], + i, + counterPos = 0; + + __WEBPACK_IMPORTED_MODULE_0__common_array_helper__["a" /* default */].init(counter, 0); + + for (i = start; i < end; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + counterPos++; + if (counterPos === numCounters) { + break; + } else { + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + } + + return counter; +}; + +Object.defineProperty(BarcodeReader.prototype, "FORMAT", { + value: 'unknown', + writeable: false +}); + +BarcodeReader.DIRECTION = { + FORWARD: 1, + REVERSE: -1 +}; + +BarcodeReader.Exception = { + StartNotFoundException: "Start-Info was not found!", + CodeNotFoundException: "Code could not be found!", + PatternNotFoundException: "Pattern could not be found!" +}; + +BarcodeReader.CONFIG_KEYS = {}; + +/* harmony default export */ __webpack_exports__["a"] = BarcodeReader; + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +module.exports = isArray; + + +/***/ }), +/* 3 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony default export */ __webpack_exports__["a"] = { + init: function init(arr, val) { + var l = arr.length; + while (l--) { + arr[l] = val; + } + }, + + /** + * Shuffles the content of an array + * @return {Array} the array itself shuffled + */ + shuffle: function shuffle(arr) { + var i = arr.length - 1, + j, + x; + for (i; i >= 0; i--) { + j = Math.floor(Math.random() * i); + x = arr[i]; + arr[i] = arr[j]; + arr[j] = x; + } + return arr; + }, + + toPointList: function toPointList(arr) { + var i, + j, + row = [], + rows = []; + for (i = 0; i < arr.length; i++) { + row = []; + for (j = 0; j < arr[i].length; j++) { + row[j] = arr[i][j]; + } + rows[i] = "[" + row.join(",") + "]"; + } + return "[" + rows.join(",\r\n") + "]"; + }, + + /** + * returns the elements which's score is bigger than the threshold + * @return {Array} the reduced array + */ + threshold: function threshold(arr, _threshold, scoreFunc) { + var i, + queue = []; + for (i = 0; i < arr.length; i++) { + if (scoreFunc.apply(arr, [arr[i]]) >= _threshold) { + queue.push(arr[i]); + } + } + return queue; + }, + + maxIndex: function maxIndex(arr) { + var i, + max = 0; + for (i = 0; i < arr.length; i++) { + if (arr[i] > arr[max]) { + max = i; + } + } + return max; + }, + + max: function max(arr) { + var i, + max = 0; + for (i = 0; i < arr.length; i++) { + if (arr[i] > max) { + max = arr[i]; + } + } + return max; + }, + + sum: function sum(arr) { + var length = arr.length, + sum = 0; + + while (length--) { + sum += arr[length]; + } + return sum; + } +}; + +/***/ }), +/* 4 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(28); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_merge__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__barcode_reader__ = __webpack_require__(1); + + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + + + +function EANReader(opts, supplements) { + opts = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()(getDefaulConfig(), opts); + __WEBPACK_IMPORTED_MODULE_1__barcode_reader__["a" /* default */].call(this, opts, supplements); +} + +function getDefaulConfig() { + var config = {}; + + Object.keys(EANReader.CONFIG_KEYS).forEach(function (key) { + config[key] = EANReader.CONFIG_KEYS[key].default; + }); + return config; +} + +var properties = { + CODE_L_START: { value: 0 }, + CODE_G_START: { value: 10 }, + START_PATTERN: { value: [1, 1, 1] }, + STOP_PATTERN: { value: [1, 1, 1] }, + MIDDLE_PATTERN: { value: [1, 1, 1, 1, 1] }, + EXTENSION_START_PATTERN: { value: [1, 1, 2] }, + CODE_PATTERN: { value: [[3, 2, 1, 1], [2, 2, 2, 1], [2, 1, 2, 2], [1, 4, 1, 1], [1, 1, 3, 2], [1, 2, 3, 1], [1, 1, 1, 4], [1, 3, 1, 2], [1, 2, 1, 3], [3, 1, 1, 2], [1, 1, 2, 3], [1, 2, 2, 2], [2, 2, 1, 2], [1, 1, 4, 1], [2, 3, 1, 1], [1, 3, 2, 1], [4, 1, 1, 1], [2, 1, 3, 1], [3, 1, 2, 1], [2, 1, 1, 3]] }, + CODE_FREQUENCY: { value: [0, 11, 13, 14, 19, 25, 28, 21, 22, 26] }, + SINGLE_CODE_ERROR: { value: 0.70 }, + AVG_CODE_ERROR: { value: 0.48 }, + FORMAT: { value: "ean_13", writeable: false } +}; + +EANReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_1__barcode_reader__["a" /* default */].prototype, properties); +EANReader.prototype.constructor = EANReader; + +EANReader.prototype._decodeCode = function (start, coderange) { + var counter = [0, 0, 0, 0], + i, + self = this, + offset = start, + isWhite = !self._row[offset], + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: start, + end: start + }, + code, + error; + + if (!coderange) { + coderange = self.CODE_PATTERN.length; + } + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + for (code = 0; code < coderange; code++) { + error = self._matchPattern(counter, self.CODE_PATTERN[code]); + if (error < bestMatch.error) { + bestMatch.code = code; + bestMatch.error = error; + } + } + bestMatch.end = i; + if (bestMatch.error > self.AVG_CODE_ERROR) { + return null; + } + return bestMatch; + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +EANReader.prototype._findPattern = function (pattern, offset, isWhite, tryHarder, epsilon) { + var counter = [], + self = this, + i, + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0 + }, + error, + j, + sum; + + if (!offset) { + offset = self._nextSet(self._row); + } + + if (isWhite === undefined) { + isWhite = false; + } + + if (tryHarder === undefined) { + tryHarder = true; + } + + if (epsilon === undefined) { + epsilon = self.AVG_CODE_ERROR; + } + + for (i = 0; i < pattern.length; i++) { + counter[i] = 0; + } + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + sum = 0; + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + error = self._matchPattern(counter, pattern); + + if (error < epsilon) { + bestMatch.error = error; + bestMatch.start = i - sum; + bestMatch.end = i; + return bestMatch; + } + if (tryHarder) { + for (j = 0; j < counter.length - 2; j++) { + counter[j] = counter[j + 2]; + } + counter[counter.length - 2] = 0; + counter[counter.length - 1] = 0; + counterPos--; + } else { + return null; + } + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +EANReader.prototype._findStart = function () { + var self = this, + leadingWhitespaceStart, + offset = self._nextSet(self._row), + startInfo; + + while (!startInfo) { + startInfo = self._findPattern(self.START_PATTERN, offset); + if (!startInfo) { + return null; + } + leadingWhitespaceStart = startInfo.start - (startInfo.end - startInfo.start); + if (leadingWhitespaceStart >= 0) { + if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) { + return startInfo; + } + } + offset = startInfo.end; + startInfo = null; + } +}; + +EANReader.prototype._verifyTrailingWhitespace = function (endInfo) { + var self = this, + trailingWhitespaceEnd; + + trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start); + if (trailingWhitespaceEnd < self._row.length) { + if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) { + return endInfo; + } + } + return null; +}; + +EANReader.prototype._findEnd = function (offset, isWhite) { + var self = this, + endInfo = self._findPattern(self.STOP_PATTERN, offset, isWhite, false); + + return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null; +}; + +EANReader.prototype._calculateFirstDigit = function (codeFrequency) { + var i, + self = this; + + for (i = 0; i < self.CODE_FREQUENCY.length; i++) { + if (codeFrequency === self.CODE_FREQUENCY[i]) { + return i; + } + } + return null; +}; + +EANReader.prototype._decodePayload = function (code, result, decodedCodes) { + var i, + self = this, + codeFrequency = 0x0, + firstDigit; + + for (i = 0; i < 6; i++) { + code = self._decodeCode(code.end); + if (!code) { + return null; + } + if (code.code >= self.CODE_G_START) { + code.code = code.code - self.CODE_G_START; + codeFrequency |= 1 << 5 - i; + } else { + codeFrequency |= 0 << 5 - i; + } + result.push(code.code); + decodedCodes.push(code); + } + + firstDigit = self._calculateFirstDigit(codeFrequency); + if (firstDigit === null) { + return null; + } + result.unshift(firstDigit); + + code = self._findPattern(self.MIDDLE_PATTERN, code.end, true, false); + if (code === null) { + return null; + } + decodedCodes.push(code); + + for (i = 0; i < 6; i++) { + code = self._decodeCode(code.end, self.CODE_G_START); + if (!code) { + return null; + } + decodedCodes.push(code); + result.push(code.code); + } + + return code; +}; + +EANReader.prototype._decode = function () { + var startInfo, + self = this, + code, + result = [], + decodedCodes = [], + resultInfo = {}; + + startInfo = self._findStart(); + if (!startInfo) { + return null; + } + code = { + code: startInfo.code, + start: startInfo.start, + end: startInfo.end + }; + decodedCodes.push(code); + code = self._decodePayload(code, result, decodedCodes); + if (!code) { + return null; + } + code = self._findEnd(code.end, false); + if (!code) { + return null; + } + + decodedCodes.push(code); + + // Checksum + if (!self._checksum(result)) { + return null; + } + + if (this.supplements.length > 0) { + var ext = this._decodeExtensions(code.end); + if (!ext) { + return null; + } + var lastCode = ext.decodedCodes[ext.decodedCodes.length - 1], + endInfo = { + start: lastCode.start + ((lastCode.end - lastCode.start) / 2 | 0), + end: lastCode.end + }; + if (!self._verifyTrailingWhitespace(endInfo)) { + return null; + } + resultInfo = { + supplement: ext, + code: result.join("") + ext.code + }; + } + + return _extends({ + code: result.join(""), + start: startInfo.start, + end: code.end, + codeset: "", + startInfo: startInfo, + decodedCodes: decodedCodes + }, resultInfo); +}; + +EANReader.prototype._decodeExtensions = function (offset) { + var i, + start = this._nextSet(this._row, offset), + startInfo = this._findPattern(this.EXTENSION_START_PATTERN, start, false, false), + result; + + if (startInfo === null) { + return null; + } + + for (i = 0; i < this.supplements.length; i++) { + result = this.supplements[i].decode(this._row, startInfo.end); + if (result !== null) { + return { + code: result.code, + start: start, + startInfo: startInfo, + end: result.end, + codeset: "", + decodedCodes: result.decodedCodes + }; + } + } + return null; +}; + +EANReader.prototype._checksum = function (result) { + var sum = 0, + i; + + for (i = result.length - 2; i >= 0; i -= 2) { + sum += result[i]; + } + sum *= 3; + for (i = result.length - 1; i >= 0; i -= 2) { + sum += result[i]; + } + return sum % 10 === 0; +}; + +EANReader.CONFIG_KEYS = { + supplements: { + 'type': 'arrayOf(string)', + 'default': [], + 'description': 'Allowed extensions to be decoded (2 and/or 5)' + } +}; + +/* harmony default export */ __webpack_exports__["a"] = EANReader; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +var freeGlobal = __webpack_require__(38); + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +module.exports = root; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +module.exports = isObjectLike; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +module.exports = clone + +/** + * Creates a new vec2 initialized with values from an existing vector + * + * @param {vec2} a vector to clone + * @returns {vec2} a new 2D vector + */ +function clone(a) { + var out = new Float32Array(2) + out[0] = a[0] + out[1] = a[1] + return out +} + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(11), + getRawTag = __webpack_require__(119), + objectToString = __webpack_require__(146); + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +module.exports = baseGetTag; + + +/***/ }), +/* 9 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony default export */ __webpack_exports__["a"] = { + drawRect: function drawRect(pos, size, ctx, style) { + ctx.strokeStyle = style.color; + ctx.fillStyle = style.color; + ctx.lineWidth = 1; + ctx.beginPath(); + ctx.strokeRect(pos.x, pos.y, size.x, size.y); + }, + drawPath: function drawPath(path, def, ctx, style) { + ctx.strokeStyle = style.color; + ctx.fillStyle = style.color; + ctx.lineWidth = style.lineWidth; + ctx.beginPath(); + ctx.moveTo(path[0][def.x], path[0][def.y]); + for (var j = 1; j < path.length; j++) { + ctx.lineTo(path[j][def.x], path[j][def.y]); + } + ctx.closePath(); + ctx.stroke(); + }, + drawImage: function drawImage(imageData, size, ctx) { + var canvasData = ctx.getImageData(0, 0, size.x, size.y), + data = canvasData.data, + imageDataPos = imageData.length, + canvasDataPos = data.length, + value; + + if (canvasDataPos / imageDataPos !== 4) { + return false; + } + while (imageDataPos--) { + value = imageData[imageDataPos]; + data[--canvasDataPos] = 255; + data[--canvasDataPos] = value; + data[--canvasDataPos] = value; + data[--canvasDataPos] = value; + } + ctx.putImageData(canvasData, 0, 0); + return true; + } +}; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +var listCacheClear = __webpack_require__(133), + listCacheDelete = __webpack_require__(134), + listCacheGet = __webpack_require__(135), + listCacheHas = __webpack_require__(136), + listCacheSet = __webpack_require__(137); + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +module.exports = ListCache; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(5); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +var eq = __webpack_require__(17); + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +module.exports = assocIndexOf; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArray = __webpack_require__(2), + isKey = __webpack_require__(130), + stringToPath = __webpack_require__(154), + toString = __webpack_require__(165); + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); +} + +module.exports = castPath; + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +var isKeyable = __webpack_require__(131); + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +module.exports = getMapData; + + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && + (typeof value == 'number' || reIsUint.test(value)) && + (value > -1 && value % 1 == 0 && value < length); +} + +module.exports = isIndex; + + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(22); + +/* Built-in method references that are verified to be native. */ +var nativeCreate = getNative(Object, 'create'); + +module.exports = nativeCreate; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +module.exports = eq; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsArguments = __webpack_require__(96), + isObjectLike = __webpack_require__(6); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; + +module.exports = isArguments; + + +/***/ }), +/* 19 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__cluster__ = __webpack_require__(50); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__array_helper__ = __webpack_require__(3); +/* harmony export (immutable) */ __webpack_exports__["b"] = imageRef; +/* unused harmony export computeIntegralImage2 */ +/* unused harmony export computeIntegralImage */ +/* unused harmony export thresholdImage */ +/* unused harmony export computeHistogram */ +/* unused harmony export sharpenLine */ +/* unused harmony export determineOtsuThreshold */ +/* harmony export (immutable) */ __webpack_exports__["f"] = otsuThreshold; +/* unused harmony export computeBinaryImage */ +/* harmony export (immutable) */ __webpack_exports__["g"] = cluster; +/* unused harmony export Tracer */ +/* unused harmony export DILATE */ +/* unused harmony export ERODE */ +/* unused harmony export dilate */ +/* unused harmony export erode */ +/* unused harmony export subtract */ +/* unused harmony export bitwiseOr */ +/* unused harmony export countNonZero */ +/* harmony export (immutable) */ __webpack_exports__["h"] = topGeneric; +/* unused harmony export grayArrayFromImage */ +/* unused harmony export grayArrayFromContext */ +/* harmony export (immutable) */ __webpack_exports__["c"] = grayAndHalfSampleFromCanvasData; +/* harmony export (immutable) */ __webpack_exports__["d"] = computeGray; +/* unused harmony export loadImageArray */ +/* harmony export (immutable) */ __webpack_exports__["i"] = halfSample; +/* harmony export (immutable) */ __webpack_exports__["a"] = hsv2rgb; +/* unused harmony export _computeDivisors */ +/* harmony export (immutable) */ __webpack_exports__["e"] = calculatePatchSize; +/* unused harmony export _parseCSSDimensionValues */ +/* unused harmony export _dimensionsConverters */ +/* harmony export (immutable) */ __webpack_exports__["j"] = computeImageArea; + + +var vec2 = { + clone: __webpack_require__(7) +}; +var vec3 = { + clone: __webpack_require__(83) +}; + +/** + * @param x x-coordinate + * @param y y-coordinate + * @return ImageReference {x,y} Coordinate + */ +function imageRef(x, y) { + var that = { + x: x, + y: y, + toVec2: function toVec2() { + return vec2.clone([this.x, this.y]); + }, + toVec3: function toVec3() { + return vec3.clone([this.x, this.y, 1]); + }, + round: function round() { + this.x = this.x > 0.0 ? Math.floor(this.x + 0.5) : Math.floor(this.x - 0.5); + this.y = this.y > 0.0 ? Math.floor(this.y + 0.5) : Math.floor(this.y - 0.5); + return this; + } + }; + return that; +}; + +/** + * Computes an integral image of a given grayscale image. + * @param imageDataContainer {ImageDataContainer} the image to be integrated + */ +function computeIntegralImage2(imageWrapper, integralWrapper) { + var imageData = imageWrapper.data; + var width = imageWrapper.size.x; + var height = imageWrapper.size.y; + var integralImageData = integralWrapper.data; + var sum = 0, + posA = 0, + posB = 0, + posC = 0, + posD = 0, + x, + y; + + // sum up first column + posB = width; + sum = 0; + for (y = 1; y < height; y++) { + sum += imageData[posA]; + integralImageData[posB] += sum; + posA += width; + posB += width; + } + + posA = 0; + posB = 1; + sum = 0; + for (x = 1; x < width; x++) { + sum += imageData[posA]; + integralImageData[posB] += sum; + posA++; + posB++; + } + + for (y = 1; y < height; y++) { + posA = y * width + 1; + posB = (y - 1) * width + 1; + posC = y * width; + posD = (y - 1) * width; + for (x = 1; x < width; x++) { + integralImageData[posA] += imageData[posA] + integralImageData[posB] + integralImageData[posC] - integralImageData[posD]; + posA++; + posB++; + posC++; + posD++; + } + } +}; + +function computeIntegralImage(imageWrapper, integralWrapper) { + var imageData = imageWrapper.data; + var width = imageWrapper.size.x; + var height = imageWrapper.size.y; + var integralImageData = integralWrapper.data; + var sum = 0; + + // sum up first row + for (var i = 0; i < width; i++) { + sum += imageData[i]; + integralImageData[i] = sum; + } + + for (var v = 1; v < height; v++) { + sum = 0; + for (var u = 0; u < width; u++) { + sum += imageData[v * width + u]; + integralImageData[v * width + u] = sum + integralImageData[(v - 1) * width + u]; + } + } +}; + +function thresholdImage(imageWrapper, threshold, targetWrapper) { + if (!targetWrapper) { + targetWrapper = imageWrapper; + } + var imageData = imageWrapper.data, + length = imageData.length, + targetData = targetWrapper.data; + + while (length--) { + targetData[length] = imageData[length] < threshold ? 1 : 0; + } +}; + +function computeHistogram(imageWrapper, bitsPerPixel) { + if (!bitsPerPixel) { + bitsPerPixel = 8; + } + var imageData = imageWrapper.data, + length = imageData.length, + bitShift = 8 - bitsPerPixel, + bucketCnt = 1 << bitsPerPixel, + hist = new Int32Array(bucketCnt); + + while (length--) { + hist[imageData[length] >> bitShift]++; + } + return hist; +}; + +function sharpenLine(line) { + var i, + length = line.length, + left = line[0], + center = line[1], + right; + + for (i = 1; i < length - 1; i++) { + right = line[i + 1]; + // -1 4 -1 kernel + line[i - 1] = center * 2 - left - right & 255; + left = center; + center = right; + } + return line; +}; + +function determineOtsuThreshold(imageWrapper, bitsPerPixel) { + if (!bitsPerPixel) { + bitsPerPixel = 8; + } + var hist, + threshold, + bitShift = 8 - bitsPerPixel; + + function px(init, end) { + var sum = 0, + i; + for (i = init; i <= end; i++) { + sum += hist[i]; + } + return sum; + } + + function mx(init, end) { + var i, + sum = 0; + + for (i = init; i <= end; i++) { + sum += i * hist[i]; + } + + return sum; + } + + function determineThreshold() { + var vet = [0], + p1, + p2, + p12, + k, + m1, + m2, + m12, + max = (1 << bitsPerPixel) - 1; + + hist = computeHistogram(imageWrapper, bitsPerPixel); + for (k = 1; k < max; k++) { + p1 = px(0, k); + p2 = px(k + 1, max); + p12 = p1 * p2; + if (p12 === 0) { + p12 = 1; + } + m1 = mx(0, k) * p2; + m2 = mx(k + 1, max) * p1; + m12 = m1 - m2; + vet[k] = m12 * m12 / p12; + } + return __WEBPACK_IMPORTED_MODULE_1__array_helper__["a" /* default */].maxIndex(vet); + } + + threshold = determineThreshold(); + return threshold << bitShift; +}; + +function otsuThreshold(imageWrapper, targetWrapper) { + var threshold = determineOtsuThreshold(imageWrapper); + + thresholdImage(imageWrapper, threshold, targetWrapper); + return threshold; +}; + +// local thresholding +function computeBinaryImage(imageWrapper, integralWrapper, targetWrapper) { + computeIntegralImage(imageWrapper, integralWrapper); + + if (!targetWrapper) { + targetWrapper = imageWrapper; + } + var imageData = imageWrapper.data; + var targetData = targetWrapper.data; + var width = imageWrapper.size.x; + var height = imageWrapper.size.y; + var integralImageData = integralWrapper.data; + var sum = 0, + v, + u, + kernel = 3, + A, + B, + C, + D, + avg, + size = (kernel * 2 + 1) * (kernel * 2 + 1); + + // clear out top & bottom-border + for (v = 0; v <= kernel; v++) { + for (u = 0; u < width; u++) { + targetData[v * width + u] = 0; + targetData[(height - 1 - v) * width + u] = 0; + } + } + + // clear out left & right border + for (v = kernel; v < height - kernel; v++) { + for (u = 0; u <= kernel; u++) { + targetData[v * width + u] = 0; + targetData[v * width + (width - 1 - u)] = 0; + } + } + + for (v = kernel + 1; v < height - kernel - 1; v++) { + for (u = kernel + 1; u < width - kernel; u++) { + A = integralImageData[(v - kernel - 1) * width + (u - kernel - 1)]; + B = integralImageData[(v - kernel - 1) * width + (u + kernel)]; + C = integralImageData[(v + kernel) * width + (u - kernel - 1)]; + D = integralImageData[(v + kernel) * width + (u + kernel)]; + sum = D - C - B + A; + avg = sum / size; + targetData[v * width + u] = imageData[v * width + u] > avg + 5 ? 0 : 1; + } + } +}; + +function cluster(points, threshold, property) { + var i, + k, + cluster, + point, + clusters = []; + + if (!property) { + property = "rad"; + } + + function addToCluster(newPoint) { + var found = false; + for (k = 0; k < clusters.length; k++) { + cluster = clusters[k]; + if (cluster.fits(newPoint)) { + cluster.add(newPoint); + found = true; + } + } + return found; + } + + // iterate over each cloud + for (i = 0; i < points.length; i++) { + point = __WEBPACK_IMPORTED_MODULE_0__cluster__["a" /* default */].createPoint(points[i], i, property); + if (!addToCluster(point)) { + clusters.push(__WEBPACK_IMPORTED_MODULE_0__cluster__["a" /* default */].create(point, threshold)); + } + } + return clusters; +}; + +var Tracer = { + trace: function trace(points, vec) { + var iteration, + maxIterations = 10, + top = [], + result = [], + centerPos = 0, + currentPos = 0; + + function trace(idx, forward) { + var from, + to, + toIdx, + predictedPos, + thresholdX = 1, + thresholdY = Math.abs(vec[1] / 10), + found = false; + + function match(pos, predicted) { + if (pos.x > predicted.x - thresholdX && pos.x < predicted.x + thresholdX && pos.y > predicted.y - thresholdY && pos.y < predicted.y + thresholdY) { + return true; + } else { + return false; + } + } + + // check if the next index is within the vec specifications + // if not, check as long as the threshold is met + + from = points[idx]; + if (forward) { + predictedPos = { + x: from.x + vec[0], + y: from.y + vec[1] + }; + } else { + predictedPos = { + x: from.x - vec[0], + y: from.y - vec[1] + }; + } + + toIdx = forward ? idx + 1 : idx - 1; + to = points[toIdx]; + while (to && (found = match(to, predictedPos)) !== true && Math.abs(to.y - from.y) < vec[1]) { + toIdx = forward ? toIdx + 1 : toIdx - 1; + to = points[toIdx]; + } + + return found ? toIdx : null; + } + + for (iteration = 0; iteration < maxIterations; iteration++) { + // randomly select point to start with + centerPos = Math.floor(Math.random() * points.length); + + // trace forward + top = []; + currentPos = centerPos; + top.push(points[currentPos]); + while ((currentPos = trace(currentPos, true)) !== null) { + top.push(points[currentPos]); + } + if (centerPos > 0) { + currentPos = centerPos; + while ((currentPos = trace(currentPos, false)) !== null) { + top.push(points[currentPos]); + } + } + + if (top.length > result.length) { + result = top; + } + } + return result; + } +}; + +var DILATE = 1; +var ERODE = 2; + +function dilate(inImageWrapper, outImageWrapper) { + var v, + u, + inImageData = inImageWrapper.data, + outImageData = outImageWrapper.data, + height = inImageWrapper.size.y, + width = inImageWrapper.size.x, + sum, + yStart1, + yStart2, + xStart1, + xStart2; + + for (v = 1; v < height - 1; v++) { + for (u = 1; u < width - 1; u++) { + yStart1 = v - 1; + yStart2 = v + 1; + xStart1 = u - 1; + xStart2 = u + 1; + sum = inImageData[yStart1 * width + xStart1] + inImageData[yStart1 * width + xStart2] + inImageData[v * width + u] + inImageData[yStart2 * width + xStart1] + inImageData[yStart2 * width + xStart2]; + outImageData[v * width + u] = sum > 0 ? 1 : 0; + } + } +}; + +function erode(inImageWrapper, outImageWrapper) { + var v, + u, + inImageData = inImageWrapper.data, + outImageData = outImageWrapper.data, + height = inImageWrapper.size.y, + width = inImageWrapper.size.x, + sum, + yStart1, + yStart2, + xStart1, + xStart2; + + for (v = 1; v < height - 1; v++) { + for (u = 1; u < width - 1; u++) { + yStart1 = v - 1; + yStart2 = v + 1; + xStart1 = u - 1; + xStart2 = u + 1; + sum = inImageData[yStart1 * width + xStart1] + inImageData[yStart1 * width + xStart2] + inImageData[v * width + u] + inImageData[yStart2 * width + xStart1] + inImageData[yStart2 * width + xStart2]; + outImageData[v * width + u] = sum === 5 ? 1 : 0; + } + } +}; + +function subtract(aImageWrapper, bImageWrapper, resultImageWrapper) { + if (!resultImageWrapper) { + resultImageWrapper = aImageWrapper; + } + var length = aImageWrapper.data.length, + aImageData = aImageWrapper.data, + bImageData = bImageWrapper.data, + cImageData = resultImageWrapper.data; + + while (length--) { + cImageData[length] = aImageData[length] - bImageData[length]; + } +}; + +function bitwiseOr(aImageWrapper, bImageWrapper, resultImageWrapper) { + if (!resultImageWrapper) { + resultImageWrapper = aImageWrapper; + } + var length = aImageWrapper.data.length, + aImageData = aImageWrapper.data, + bImageData = bImageWrapper.data, + cImageData = resultImageWrapper.data; + + while (length--) { + cImageData[length] = aImageData[length] || bImageData[length]; + } +}; + +function countNonZero(imageWrapper) { + var length = imageWrapper.data.length, + data = imageWrapper.data, + sum = 0; + + while (length--) { + sum += data[length]; + } + return sum; +}; + +function topGeneric(list, top, scoreFunc) { + var i, + minIdx = 0, + min = 0, + queue = [], + score, + hit, + pos; + + for (i = 0; i < top; i++) { + queue[i] = { + score: 0, + item: null + }; + } + + for (i = 0; i < list.length; i++) { + score = scoreFunc.apply(this, [list[i]]); + if (score > min) { + hit = queue[minIdx]; + hit.score = score; + hit.item = list[i]; + min = Number.MAX_VALUE; + for (pos = 0; pos < top; pos++) { + if (queue[pos].score < min) { + min = queue[pos].score; + minIdx = pos; + } + } + } + } + + return queue; +}; + +function grayArrayFromImage(htmlImage, offsetX, ctx, array) { + ctx.drawImage(htmlImage, offsetX, 0, htmlImage.width, htmlImage.height); + var ctxData = ctx.getImageData(offsetX, 0, htmlImage.width, htmlImage.height).data; + computeGray(ctxData, array); +}; + +function grayArrayFromContext(ctx, size, offset, array) { + var ctxData = ctx.getImageData(offset.x, offset.y, size.x, size.y).data; + computeGray(ctxData, array); +}; + +function grayAndHalfSampleFromCanvasData(canvasData, size, outArray) { + var topRowIdx = 0; + var bottomRowIdx = size.x; + var endIdx = Math.floor(canvasData.length / 4); + var outWidth = size.x / 2; + var outImgIdx = 0; + var inWidth = size.x; + var i; + + while (bottomRowIdx < endIdx) { + for (i = 0; i < outWidth; i++) { + outArray[outImgIdx] = (0.299 * canvasData[topRowIdx * 4 + 0] + 0.587 * canvasData[topRowIdx * 4 + 1] + 0.114 * canvasData[topRowIdx * 4 + 2] + (0.299 * canvasData[(topRowIdx + 1) * 4 + 0] + 0.587 * canvasData[(topRowIdx + 1) * 4 + 1] + 0.114 * canvasData[(topRowIdx + 1) * 4 + 2]) + (0.299 * canvasData[bottomRowIdx * 4 + 0] + 0.587 * canvasData[bottomRowIdx * 4 + 1] + 0.114 * canvasData[bottomRowIdx * 4 + 2]) + (0.299 * canvasData[(bottomRowIdx + 1) * 4 + 0] + 0.587 * canvasData[(bottomRowIdx + 1) * 4 + 1] + 0.114 * canvasData[(bottomRowIdx + 1) * 4 + 2])) / 4; + outImgIdx++; + topRowIdx = topRowIdx + 2; + bottomRowIdx = bottomRowIdx + 2; + } + topRowIdx = topRowIdx + inWidth; + bottomRowIdx = bottomRowIdx + inWidth; + } +}; + +function computeGray(imageData, outArray, config) { + var l = imageData.length / 4 | 0, + i, + singleChannel = config && config.singleChannel === true; + + if (singleChannel) { + for (i = 0; i < l; i++) { + outArray[i] = imageData[i * 4 + 0]; + } + } else { + for (i = 0; i < l; i++) { + outArray[i] = 0.299 * imageData[i * 4 + 0] + 0.587 * imageData[i * 4 + 1] + 0.114 * imageData[i * 4 + 2]; + } + } +}; + +function loadImageArray(src, callback, canvas) { + if (!canvas) { + canvas = document.createElement('canvas'); + } + var img = new Image(); + img.callback = callback; + img.onload = function () { + canvas.width = this.width; + canvas.height = this.height; + var ctx = canvas.getContext('2d'); + ctx.drawImage(this, 0, 0); + var array = new Uint8Array(this.width * this.height); + ctx.drawImage(this, 0, 0); + var data = ctx.getImageData(0, 0, this.width, this.height).data; + computeGray(data, array); + this.callback(array, { + x: this.width, + y: this.height + }, this); + }; + img.src = src; +}; + +/** + * @param inImg {ImageWrapper} input image to be sampled + * @param outImg {ImageWrapper} to be stored in + */ +function halfSample(inImgWrapper, outImgWrapper) { + var inImg = inImgWrapper.data; + var inWidth = inImgWrapper.size.x; + var outImg = outImgWrapper.data; + var topRowIdx = 0; + var bottomRowIdx = inWidth; + var endIdx = inImg.length; + var outWidth = inWidth / 2; + var outImgIdx = 0; + while (bottomRowIdx < endIdx) { + for (var i = 0; i < outWidth; i++) { + outImg[outImgIdx] = Math.floor((inImg[topRowIdx] + inImg[topRowIdx + 1] + inImg[bottomRowIdx] + inImg[bottomRowIdx + 1]) / 4); + outImgIdx++; + topRowIdx = topRowIdx + 2; + bottomRowIdx = bottomRowIdx + 2; + } + topRowIdx = topRowIdx + inWidth; + bottomRowIdx = bottomRowIdx + inWidth; + } +}; + +function hsv2rgb(hsv, rgb) { + var h = hsv[0], + s = hsv[1], + v = hsv[2], + c = v * s, + x = c * (1 - Math.abs(h / 60 % 2 - 1)), + m = v - c, + r = 0, + g = 0, + b = 0; + + rgb = rgb || [0, 0, 0]; + + if (h < 60) { + r = c; + g = x; + } else if (h < 120) { + r = x; + g = c; + } else if (h < 180) { + g = c; + b = x; + } else if (h < 240) { + g = x; + b = c; + } else if (h < 300) { + r = x; + b = c; + } else if (h < 360) { + r = c; + b = x; + } + rgb[0] = (r + m) * 255 | 0; + rgb[1] = (g + m) * 255 | 0; + rgb[2] = (b + m) * 255 | 0; + return rgb; +}; + +function _computeDivisors(n) { + var largeDivisors = [], + divisors = [], + i; + + for (i = 1; i < Math.sqrt(n) + 1; i++) { + if (n % i === 0) { + divisors.push(i); + if (i !== n / i) { + largeDivisors.unshift(Math.floor(n / i)); + } + } + } + return divisors.concat(largeDivisors); +}; + +function _computeIntersection(arr1, arr2) { + var i = 0, + j = 0, + result = []; + + while (i < arr1.length && j < arr2.length) { + if (arr1[i] === arr2[j]) { + result.push(arr1[i]); + i++; + j++; + } else if (arr1[i] > arr2[j]) { + j++; + } else { + i++; + } + } + return result; +}; + +function calculatePatchSize(patchSize, imgSize) { + var divisorsX = _computeDivisors(imgSize.x), + divisorsY = _computeDivisors(imgSize.y), + wideSide = Math.max(imgSize.x, imgSize.y), + common = _computeIntersection(divisorsX, divisorsY), + nrOfPatchesList = [8, 10, 15, 20, 32, 60, 80], + nrOfPatchesMap = { + "x-small": 5, + "small": 4, + "medium": 3, + "large": 2, + "x-large": 1 + }, + nrOfPatchesIdx = nrOfPatchesMap[patchSize] || nrOfPatchesMap.medium, + nrOfPatches = nrOfPatchesList[nrOfPatchesIdx], + desiredPatchSize = Math.floor(wideSide / nrOfPatches), + optimalPatchSize; + + function findPatchSizeForDivisors(divisors) { + var i = 0, + found = divisors[Math.floor(divisors.length / 2)]; + + while (i < divisors.length - 1 && divisors[i] < desiredPatchSize) { + i++; + } + if (i > 0) { + if (Math.abs(divisors[i] - desiredPatchSize) > Math.abs(divisors[i - 1] - desiredPatchSize)) { + found = divisors[i - 1]; + } else { + found = divisors[i]; + } + } + if (desiredPatchSize / found < nrOfPatchesList[nrOfPatchesIdx + 1] / nrOfPatchesList[nrOfPatchesIdx] && desiredPatchSize / found > nrOfPatchesList[nrOfPatchesIdx - 1] / nrOfPatchesList[nrOfPatchesIdx]) { + return { x: found, y: found }; + } + return null; + } + + optimalPatchSize = findPatchSizeForDivisors(common); + if (!optimalPatchSize) { + optimalPatchSize = findPatchSizeForDivisors(_computeDivisors(wideSide)); + if (!optimalPatchSize) { + optimalPatchSize = findPatchSizeForDivisors(_computeDivisors(desiredPatchSize * nrOfPatches)); + } + } + return optimalPatchSize; +}; + +function _parseCSSDimensionValues(value) { + var dimension = { + value: parseFloat(value), + unit: value.indexOf("%") === value.length - 1 ? "%" : "%" + }; + + return dimension; +}; + +var _dimensionsConverters = { + top: function top(dimension, context) { + if (dimension.unit === "%") { + return Math.floor(context.height * (dimension.value / 100)); + } + }, + right: function right(dimension, context) { + if (dimension.unit === "%") { + return Math.floor(context.width - context.width * (dimension.value / 100)); + } + }, + bottom: function bottom(dimension, context) { + if (dimension.unit === "%") { + return Math.floor(context.height - context.height * (dimension.value / 100)); + } + }, + left: function left(dimension, context) { + if (dimension.unit === "%") { + return Math.floor(context.width * (dimension.value / 100)); + } + } +}; + +function computeImageArea(inputWidth, inputHeight, area) { + var context = { width: inputWidth, height: inputHeight }; + + var parsedArea = Object.keys(area).reduce(function (result, key) { + var value = area[key], + parsed = _parseCSSDimensionValues(value), + calculated = _dimensionsConverters[key](parsed, context); + + result[key] = calculated; + return result; + }, {}); + + return { + sx: parsedArea.left, + sy: parsedArea.top, + sw: parsedArea.right - parsedArea.left, + sh: parsedArea.bottom - parsedArea.top + }; +}; + +/***/ }), +/* 20 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__subImage__ = __webpack_require__(53); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_cv_utils__ = __webpack_require__(19); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_array_helper__ = __webpack_require__(3); + + + +var vec2 = { + clone: __webpack_require__(7) +}; + +/** + * Represents a basic image combining the data and size. + * In addition, some methods for manipulation are contained. + * @param size {x,y} The size of the image in pixel + * @param data {Array} If given, a flat array containing the pixel data + * @param ArrayType {Type} If given, the desired DataType of the Array (may be typed/non-typed) + * @param initialize {Boolean} Indicating if the array should be initialized on creation. + * @returns {ImageWrapper} + */ +function ImageWrapper(size, data, ArrayType, initialize) { + if (!data) { + if (ArrayType) { + this.data = new ArrayType(size.x * size.y); + if (ArrayType === Array && initialize) { + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(this.data, 0); + } + } else { + this.data = new Uint8Array(size.x * size.y); + if (Uint8Array === Array && initialize) { + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(this.data, 0); + } + } + } else { + this.data = data; + } + this.size = size; +} + +/** + * tests if a position is within the image with a given offset + * @param imgRef {x, y} The location to test + * @param border Number the padding value in pixel + * @returns {Boolean} true if location inside the image's border, false otherwise + * @see cvd/image.h + */ +ImageWrapper.prototype.inImageWithBorder = function (imgRef, border) { + return imgRef.x >= border && imgRef.y >= border && imgRef.x < this.size.x - border && imgRef.y < this.size.y - border; +}; + +/** + * Performs bilinear sampling + * @param inImg Image to extract sample from + * @param x the x-coordinate + * @param y the y-coordinate + * @returns the sampled value + * @see cvd/vision.h + */ +ImageWrapper.sample = function (inImg, x, y) { + var lx = Math.floor(x); + var ly = Math.floor(y); + var w = inImg.size.x; + var base = ly * inImg.size.x + lx; + var a = inImg.data[base + 0]; + var b = inImg.data[base + 1]; + var c = inImg.data[base + w]; + var d = inImg.data[base + w + 1]; + var e = a - b; + x -= lx; + y -= ly; + + var result = Math.floor(x * (y * (e - c + d) - e) + y * (c - a) + a); + return result; +}; + +/** + * Initializes a given array. Sets each element to zero. + * @param array {Array} The array to initialize + */ +ImageWrapper.clearArray = function (array) { + var l = array.length; + while (l--) { + array[l] = 0; + } +}; + +/** + * Creates a {SubImage} from the current image ({this}). + * @param from {ImageRef} The position where to start the {SubImage} from. (top-left corner) + * @param size {ImageRef} The size of the resulting image + * @returns {SubImage} A shared part of the original image + */ +ImageWrapper.prototype.subImage = function (from, size) { + return new __WEBPACK_IMPORTED_MODULE_0__subImage__["a" /* default */](from, size, this); +}; + +/** + * Creates an {ImageWrapper) and copies the needed underlying image-data area + * @param imageWrapper {ImageWrapper} The target {ImageWrapper} where the data should be copied + * @param from {ImageRef} The location where to copy from (top-left location) + */ +ImageWrapper.prototype.subImageAsCopy = function (imageWrapper, from) { + var sizeY = imageWrapper.size.y, + sizeX = imageWrapper.size.x; + var x, y; + for (x = 0; x < sizeX; x++) { + for (y = 0; y < sizeY; y++) { + imageWrapper.data[y * sizeX + x] = this.data[(from.y + y) * this.size.x + from.x + x]; + } + } +}; + +ImageWrapper.prototype.copyTo = function (imageWrapper) { + var length = this.data.length, + srcData = this.data, + dstData = imageWrapper.data; + + while (length--) { + dstData[length] = srcData[length]; + } +}; + +/** + * Retrieves a given pixel position from the image + * @param x {Number} The x-position + * @param y {Number} The y-position + * @returns {Number} The grayscale value at the pixel-position + */ +ImageWrapper.prototype.get = function (x, y) { + return this.data[y * this.size.x + x]; +}; + +/** + * Retrieves a given pixel position from the image + * @param x {Number} The x-position + * @param y {Number} The y-position + * @returns {Number} The grayscale value at the pixel-position + */ +ImageWrapper.prototype.getSafe = function (x, y) { + var i; + + if (!this.indexMapping) { + this.indexMapping = { + x: [], + y: [] + }; + for (i = 0; i < this.size.x; i++) { + this.indexMapping.x[i] = i; + this.indexMapping.x[i + this.size.x] = i; + } + for (i = 0; i < this.size.y; i++) { + this.indexMapping.y[i] = i; + this.indexMapping.y[i + this.size.y] = i; + } + } + return this.data[this.indexMapping.y[y + this.size.y] * this.size.x + this.indexMapping.x[x + this.size.x]]; +}; + +/** + * Sets a given pixel position in the image + * @param x {Number} The x-position + * @param y {Number} The y-position + * @param value {Number} The grayscale value to set + * @returns {ImageWrapper} The Image itself (for possible chaining) + */ +ImageWrapper.prototype.set = function (x, y, value) { + this.data[y * this.size.x + x] = value; + return this; +}; + +/** + * Sets the border of the image (1 pixel) to zero + */ +ImageWrapper.prototype.zeroBorder = function () { + var i, + width = this.size.x, + height = this.size.y, + data = this.data; + for (i = 0; i < width; i++) { + data[i] = data[(height - 1) * width + i] = 0; + } + for (i = 1; i < height - 1; i++) { + data[i * width] = data[i * width + (width - 1)] = 0; + } +}; + +/** + * Inverts a binary image in place + */ +ImageWrapper.prototype.invert = function () { + var data = this.data, + length = data.length; + + while (length--) { + data[length] = data[length] ? 0 : 1; + } +}; + +ImageWrapper.prototype.convolve = function (kernel) { + var x, + y, + kx, + ky, + kSize = kernel.length / 2 | 0, + accu = 0; + for (y = 0; y < this.size.y; y++) { + for (x = 0; x < this.size.x; x++) { + accu = 0; + for (ky = -kSize; ky <= kSize; ky++) { + for (kx = -kSize; kx <= kSize; kx++) { + accu += kernel[ky + kSize][kx + kSize] * this.getSafe(x + kx, y + ky); + } + } + this.data[y * this.size.x + x] = accu; + } + } +}; + +ImageWrapper.prototype.moments = function (labelcount) { + var data = this.data, + x, + y, + height = this.size.y, + width = this.size.x, + val, + ysq, + labelsum = [], + i, + label, + mu11, + mu02, + mu20, + x_, + y_, + tmp, + result = [], + PI = Math.PI, + PI_4 = PI / 4; + + if (labelcount <= 0) { + return result; + } + + for (i = 0; i < labelcount; i++) { + labelsum[i] = { + m00: 0, + m01: 0, + m10: 0, + m11: 0, + m02: 0, + m20: 0, + theta: 0, + rad: 0 + }; + } + + for (y = 0; y < height; y++) { + ysq = y * y; + for (x = 0; x < width; x++) { + val = data[y * width + x]; + if (val > 0) { + label = labelsum[val - 1]; + label.m00 += 1; + label.m01 += y; + label.m10 += x; + label.m11 += x * y; + label.m02 += ysq; + label.m20 += x * x; + } + } + } + + for (i = 0; i < labelcount; i++) { + label = labelsum[i]; + if (!isNaN(label.m00) && label.m00 !== 0) { + x_ = label.m10 / label.m00; + y_ = label.m01 / label.m00; + mu11 = label.m11 / label.m00 - x_ * y_; + mu02 = label.m02 / label.m00 - y_ * y_; + mu20 = label.m20 / label.m00 - x_ * x_; + tmp = (mu02 - mu20) / (2 * mu11); + tmp = 0.5 * Math.atan(tmp) + (mu11 >= 0 ? PI_4 : -PI_4) + PI; + label.theta = (tmp * 180 / PI + 90) % 180 - 90; + if (label.theta < 0) { + label.theta += 180; + } + label.rad = tmp > PI ? tmp - PI : tmp; + label.vec = vec2.clone([Math.cos(tmp), Math.sin(tmp)]); + result.push(label); + } + } + + return result; +}; + +/** + * Displays the {ImageWrapper} in a given canvas + * @param canvas {Canvas} The canvas element to write to + * @param scale {Number} Scale which is applied to each pixel-value + */ +ImageWrapper.prototype.show = function (canvas, scale) { + var ctx, frame, data, current, pixel, x, y; + + if (!scale) { + scale = 1.0; + } + ctx = canvas.getContext('2d'); + canvas.width = this.size.x; + canvas.height = this.size.y; + frame = ctx.getImageData(0, 0, canvas.width, canvas.height); + data = frame.data; + current = 0; + for (y = 0; y < this.size.y; y++) { + for (x = 0; x < this.size.x; x++) { + pixel = y * this.size.x + x; + current = this.get(x, y) * scale; + data[pixel * 4 + 0] = current; + data[pixel * 4 + 1] = current; + data[pixel * 4 + 2] = current; + data[pixel * 4 + 3] = 255; + } + } + //frame.data = data; + ctx.putImageData(frame, 0, 0); +}; + +/** + * Displays the {SubImage} in a given canvas + * @param canvas {Canvas} The canvas element to write to + * @param scale {Number} Scale which is applied to each pixel-value + */ +ImageWrapper.prototype.overlay = function (canvas, scale, from) { + if (!scale || scale < 0 || scale > 360) { + scale = 360; + } + var hsv = [0, 1, 1]; + var rgb = [0, 0, 0]; + var whiteRgb = [255, 255, 255]; + var blackRgb = [0, 0, 0]; + var result = []; + var ctx = canvas.getContext('2d'); + var frame = ctx.getImageData(from.x, from.y, this.size.x, this.size.y); + var data = frame.data; + var length = this.data.length; + while (length--) { + hsv[0] = this.data[length] * scale; + result = hsv[0] <= 0 ? whiteRgb : hsv[0] >= 360 ? blackRgb : __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["a" /* hsv2rgb */])(hsv, rgb); + data[length * 4 + 0] = result[0]; + data[length * 4 + 1] = result[1]; + data[length * 4 + 2] = result[2]; + data[length * 4 + 3] = 255; + } + ctx.putImageData(frame, from.x, from.y); +}; + +/* harmony default export */ __webpack_exports__["a"] = ImageWrapper; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +var defineProperty = __webpack_require__(37); + +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } +} + +module.exports = baseAssignValue; + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsNative = __webpack_require__(97), + getValue = __webpack_require__(120); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +module.exports = getNative; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +var isSymbol = __webpack_require__(27); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = toKey; + + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +var isFunction = __webpack_require__(25), + isLength = __webpack_require__(26); + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +module.exports = isArrayLike; + + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(8), + isObject = __webpack_require__(0); + +/** `Object#toString` result references. */ +var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} + +module.exports = isFunction; + + +/***/ }), +/* 26 */ +/***/ (function(module, exports) { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(8), + isObjectLike = __webpack_require__(6); + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); +} + +module.exports = isSymbol; + + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseMerge = __webpack_require__(100), + createAssigner = __webpack_require__(116); + +/** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */ +var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); +}); + +module.exports = merge; + + +/***/ }), +/* 29 */ +/***/ (function(module, exports) { + +module.exports = function(module) { + if(!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + if(!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + return module; +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/** + * http://www.codeproject.com/Tips/407172/Connected-Component-Labeling-and-Vectorization + */ +var Tracer = { + searchDirections: [[0, 1], [1, 1], [1, 0], [1, -1], [0, -1], [-1, -1], [-1, 0], [-1, 1]], + create: function create(imageWrapper, labelWrapper) { + var imageData = imageWrapper.data, + labelData = labelWrapper.data, + searchDirections = this.searchDirections, + width = imageWrapper.size.x, + pos; + + function _trace(current, color, label, edgelabel) { + var i, y, x; + + for (i = 0; i < 7; i++) { + y = current.cy + searchDirections[current.dir][0]; + x = current.cx + searchDirections[current.dir][1]; + pos = y * width + x; + if (imageData[pos] === color && (labelData[pos] === 0 || labelData[pos] === label)) { + labelData[pos] = label; + current.cy = y; + current.cx = x; + return true; + } else { + if (labelData[pos] === 0) { + labelData[pos] = edgelabel; + } + current.dir = (current.dir + 1) % 8; + } + } + return false; + } + + function vertex2D(x, y, dir) { + return { + dir: dir, + x: x, + y: y, + next: null, + prev: null + }; + } + + function _contourTracing(sy, sx, label, color, edgelabel) { + var Fv = null, + Cv, + P, + ldir, + current = { + cx: sx, + cy: sy, + dir: 0 + }; + + if (_trace(current, color, label, edgelabel)) { + Fv = vertex2D(sx, sy, current.dir); + Cv = Fv; + ldir = current.dir; + P = vertex2D(current.cx, current.cy, 0); + P.prev = Cv; + Cv.next = P; + P.next = null; + Cv = P; + do { + current.dir = (current.dir + 6) % 8; + _trace(current, color, label, edgelabel); + if (ldir !== current.dir) { + Cv.dir = current.dir; + P = vertex2D(current.cx, current.cy, 0); + P.prev = Cv; + Cv.next = P; + P.next = null; + Cv = P; + } else { + Cv.dir = ldir; + Cv.x = current.cx; + Cv.y = current.cy; + } + ldir = current.dir; + } while (current.cx !== sx || current.cy !== sy); + Fv.prev = Cv.prev; + Cv.prev.next = Fv; + } + return Fv; + } + + return { + trace: function trace(current, color, label, edgelabel) { + return _trace(current, color, label, edgelabel); + }, + contourTracing: function contourTracing(sy, sx, label, color, edgelabel) { + return _contourTracing(sy, sx, label, color, edgelabel); + } + }; + } +}; + +/* harmony default export */ __webpack_exports__["a"] = Tracer; + +/***/ }), +/* 31 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_array_helper__ = __webpack_require__(3); + + + +function Code39Reader() { + __WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].call(this); +} + +var properties = { + ALPHABETH_STRING: { value: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%" }, + ALPHABET: { value: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 45, 46, 32, 42, 36, 47, 43, 37] }, + CHARACTER_ENCODINGS: { value: [0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124, 0x064, 0x109, 0x049, 0x148, 0x019, 0x118, 0x058, 0x00D, 0x10C, 0x04C, 0x01C, 0x103, 0x043, 0x142, 0x013, 0x112, 0x052, 0x007, 0x106, 0x046, 0x016, 0x181, 0x0C1, 0x1C0, 0x091, 0x190, 0x0D0, 0x085, 0x184, 0x0C4, 0x094, 0x0A8, 0x0A2, 0x08A, 0x02A] }, + ASTERISK: { value: 0x094 }, + FORMAT: { value: "code_39", writeable: false } +}; + +Code39Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype, properties); +Code39Reader.prototype.constructor = Code39Reader; + +Code39Reader.prototype._decode = function () { + var self = this, + counters = [0, 0, 0, 0, 0, 0, 0, 0, 0], + result = [], + start = self._findStart(), + decodedChar, + lastStart, + pattern, + nextStart; + + if (!start) { + return null; + } + nextStart = self._nextSet(self._row, start.end); + + do { + counters = self._toCounters(nextStart, counters); + pattern = self._toPattern(counters); + if (pattern < 0) { + return null; + } + decodedChar = self._patternToChar(pattern); + if (decodedChar < 0) { + return null; + } + result.push(decodedChar); + lastStart = nextStart; + nextStart += __WEBPACK_IMPORTED_MODULE_1__common_array_helper__["a" /* default */].sum(counters); + nextStart = self._nextSet(self._row, nextStart); + } while (decodedChar !== '*'); + result.pop(); + + if (!result.length) { + return null; + } + + if (!self._verifyTrailingWhitespace(lastStart, nextStart, counters)) { + return null; + } + + return { + code: result.join(""), + start: start.start, + end: nextStart, + startInfo: start, + decodedCodes: result + }; +}; + +Code39Reader.prototype._verifyTrailingWhitespace = function (lastStart, nextStart, counters) { + var trailingWhitespaceEnd, + patternSize = __WEBPACK_IMPORTED_MODULE_1__common_array_helper__["a" /* default */].sum(counters); + + trailingWhitespaceEnd = nextStart - lastStart - patternSize; + if (trailingWhitespaceEnd * 3 >= patternSize) { + return true; + } + return false; +}; + +Code39Reader.prototype._patternToChar = function (pattern) { + var i, + self = this; + + for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) { + if (self.CHARACTER_ENCODINGS[i] === pattern) { + return String.fromCharCode(self.ALPHABET[i]); + } + } + return -1; +}; + +Code39Reader.prototype._findNextWidth = function (counters, current) { + var i, + minWidth = Number.MAX_VALUE; + + for (i = 0; i < counters.length; i++) { + if (counters[i] < minWidth && counters[i] > current) { + minWidth = counters[i]; + } + } + + return minWidth; +}; + +Code39Reader.prototype._toPattern = function (counters) { + var numCounters = counters.length, + maxNarrowWidth = 0, + numWideBars = numCounters, + wideBarWidth = 0, + self = this, + pattern, + i; + + while (numWideBars > 3) { + maxNarrowWidth = self._findNextWidth(counters, maxNarrowWidth); + numWideBars = 0; + pattern = 0; + for (i = 0; i < numCounters; i++) { + if (counters[i] > maxNarrowWidth) { + pattern |= 1 << numCounters - 1 - i; + numWideBars++; + wideBarWidth += counters[i]; + } + } + + if (numWideBars === 3) { + for (i = 0; i < numCounters && numWideBars > 0; i++) { + if (counters[i] > maxNarrowWidth) { + numWideBars--; + if (counters[i] * 2 >= wideBarWidth) { + return -1; + } + } + } + return pattern; + } + } + return -1; +}; + +Code39Reader.prototype._findStart = function () { + var self = this, + offset = self._nextSet(self._row), + patternStart = offset, + counter = [0, 0, 0, 0, 0, 0, 0, 0, 0], + counterPos = 0, + isWhite = false, + i, + j, + whiteSpaceMustStart; + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + // find start pattern + if (self._toPattern(counter) === self.ASTERISK) { + whiteSpaceMustStart = Math.floor(Math.max(0, patternStart - (i - patternStart) / 4)); + if (self._matchRange(whiteSpaceMustStart, patternStart, 0)) { + return { + start: patternStart, + end: i + }; + } + } + + patternStart += counter[0] + counter[1]; + for (j = 0; j < 7; j++) { + counter[j] = counter[j + 2]; + } + counter[7] = 0; + counter[8] = 0; + counterPos--; + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +/* harmony default export */ __webpack_exports__["a"] = Code39Reader; + +/***/ }), +/* 32 */ +/***/ (function(module, exports) { + +module.exports = dot + +/** + * Calculates the dot product of two vec2's + * + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {Number} dot product of a and b + */ +function dot(a, b) { + return a[0] * b[0] + a[1] * b[1] +} + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(22), + root = __webpack_require__(5); + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'); + +module.exports = Map; + + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +var mapCacheClear = __webpack_require__(138), + mapCacheDelete = __webpack_require__(139), + mapCacheGet = __webpack_require__(140), + mapCacheHas = __webpack_require__(141), + mapCacheSet = __webpack_require__(142); + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +module.exports = MapCache; + + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseAssignValue = __webpack_require__(21), + eq = __webpack_require__(17); + +/** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignMergeValue(object, key, value) { + if ((value !== undefined && !eq(object[key], value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignMergeValue; + + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseAssignValue = __webpack_require__(21), + eq = __webpack_require__(17); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignValue; + + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(22); + +var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} +}()); + +module.exports = defineProperty; + + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +module.exports = freeGlobal; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(47))) + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +var overArg = __webpack_require__(147); + +/** Built-in value references. */ +var getPrototype = overArg(Object.getPrototypeOf, Object); + +module.exports = getPrototype; + + +/***/ }), +/* 40 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; +} + +module.exports = isPrototype; + + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +var apply = __webpack_require__(87); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ +function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; +} + +module.exports = overRest; + + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseSetToString = __webpack_require__(106), + shortOut = __webpack_require__(148); + +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var setToString = shortOut(baseSetToString); + +module.exports = setToString; + + +/***/ }), +/* 43 */ +/***/ (function(module, exports) { + +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; + + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(5), + stubFalse = __webpack_require__(163); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse; + +module.exports = isBuffer; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(29)(module))) + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsTypedArray = __webpack_require__(98), + baseUnary = __webpack_require__(109), + nodeUtil = __webpack_require__(145); + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +module.exports = isTypedArray; + + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayLikeKeys = __webpack_require__(88), + baseKeysIn = __webpack_require__(99), + isArrayLike = __webpack_require__(24); + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); +} + +module.exports = keysIn; + + +/***/ }), +/* 47 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || Function("return this")() || (1,eval)("this"); +} catch(e) { + // This works if the window reference is available + if(typeof window === "object") + g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 48 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(28); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_merge__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_typedefs__ = __webpack_require__(54); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_typedefs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__common_typedefs__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_image_wrapper__ = __webpack_require__(20); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__ = __webpack_require__(64); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__decoder_barcode_decoder__ = __webpack_require__(57); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__common_events__ = __webpack_require__(51); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__input_camera_access__ = __webpack_require__(59); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__common_image_debug__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__analytics_result_collector__ = __webpack_require__(49); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__config_config__ = __webpack_require__(56); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_input_stream__ = __webpack_require__(63); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_frame_grabber__ = __webpack_require__(61); + + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + // eslint-disable-line no-unused-vars + + + + + + + + + + + +var vec2 = { + clone: __webpack_require__(7) +}; + +var _inputStream, + _framegrabber, + _stopped, + _canvasContainer = { + ctx: { + image: null, + overlay: null + }, + dom: { + image: null, + overlay: null + } +}, + _inputImageWrapper, + _boxSize, + _decoder, + _workerPool = [], + _onUIThread = true, + _resultCollector, + _config = {}; + +function initializeData(imageWrapper) { + initBuffers(imageWrapper); + _decoder = __WEBPACK_IMPORTED_MODULE_4__decoder_barcode_decoder__["a" /* default */].create(_config.decoder, _inputImageWrapper); +} + +function initInputStream(cb) { + var video; + if (_config.inputStream.type === "VideoStream") { + video = document.createElement("video"); + _inputStream = __WEBPACK_IMPORTED_MODULE_10_input_stream__["a" /* default */].createVideoStream(video); + } else if (_config.inputStream.type === "ImageStream") { + _inputStream = __WEBPACK_IMPORTED_MODULE_10_input_stream__["a" /* default */].createImageStream(); + } else if (_config.inputStream.type === "LiveStream") { + var $viewport = getViewPort(); + if ($viewport) { + video = $viewport.querySelector("video"); + if (!video) { + video = document.createElement("video"); + $viewport.appendChild(video); + } + } + _inputStream = __WEBPACK_IMPORTED_MODULE_10_input_stream__["a" /* default */].createLiveStream(video); + __WEBPACK_IMPORTED_MODULE_6__input_camera_access__["a" /* default */].request(video, _config.inputStream.constraints).then(function () { + _inputStream.trigger("canrecord"); + }).catch(function (err) { + return cb(err); + }); + } + _inputStream.setAttribute("preload", "auto"); + _inputStream.setInputStream(_config.inputStream); + _inputStream.addEventListener("canrecord", canRecord.bind(undefined, cb)); +} + +function getViewPort() { + var target = _config.inputStream.target; + // Check if target is already a DOM element + if (target && target.nodeName && target.nodeType === 1) { + return target; + } else { + // Use '#interactive.viewport' as a fallback selector (backwards compatibility) + var selector = typeof target === 'string' ? target : '#interactive.viewport'; + return document.querySelector(selector); + } +} + +function canRecord(cb) { + __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__["a" /* default */].checkImageConstraints(_inputStream, _config.locator); + initCanvas(_config); + _framegrabber = __WEBPACK_IMPORTED_MODULE_11_frame_grabber__["a" /* default */].create(_inputStream, _canvasContainer.dom.image); + + adjustWorkerPool(_config.numOfWorkers, function () { + if (_config.numOfWorkers === 0) { + initializeData(); + } + ready(cb); + }); +} + +function ready(cb) { + _inputStream.play(); + cb(); +} + +function initCanvas() { + if (typeof document !== "undefined") { + var $viewport = getViewPort(); + _canvasContainer.dom.image = document.querySelector("canvas.imgBuffer"); + if (!_canvasContainer.dom.image) { + _canvasContainer.dom.image = document.createElement("canvas"); + _canvasContainer.dom.image.className = "imgBuffer"; + if ($viewport && _config.inputStream.type === "ImageStream") { + $viewport.appendChild(_canvasContainer.dom.image); + } + } + _canvasContainer.ctx.image = _canvasContainer.dom.image.getContext("2d"); + _canvasContainer.dom.image.width = _inputStream.getCanvasSize().x; + _canvasContainer.dom.image.height = _inputStream.getCanvasSize().y; + + _canvasContainer.dom.overlay = document.querySelector("canvas.drawingBuffer"); + if (!_canvasContainer.dom.overlay) { + _canvasContainer.dom.overlay = document.createElement("canvas"); + _canvasContainer.dom.overlay.className = "drawingBuffer"; + if ($viewport) { + $viewport.appendChild(_canvasContainer.dom.overlay); + } + var clearFix = document.createElement("br"); + clearFix.setAttribute("clear", "all"); + if ($viewport) { + $viewport.appendChild(clearFix); + } + } + _canvasContainer.ctx.overlay = _canvasContainer.dom.overlay.getContext("2d"); + _canvasContainer.dom.overlay.width = _inputStream.getCanvasSize().x; + _canvasContainer.dom.overlay.height = _inputStream.getCanvasSize().y; + } +} + +function initBuffers(imageWrapper) { + if (imageWrapper) { + _inputImageWrapper = imageWrapper; + } else { + _inputImageWrapper = new __WEBPACK_IMPORTED_MODULE_2__common_image_wrapper__["a" /* default */]({ + x: _inputStream.getWidth(), + y: _inputStream.getHeight() + }); + } + + if (true) { + console.log(_inputImageWrapper.size); + } + _boxSize = [vec2.clone([0, 0]), vec2.clone([0, _inputImageWrapper.size.y]), vec2.clone([_inputImageWrapper.size.x, _inputImageWrapper.size.y]), vec2.clone([_inputImageWrapper.size.x, 0])]; + __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__["a" /* default */].init(_inputImageWrapper, _config.locator); +} + +function getBoundingBoxes() { + if (_config.locate) { + return __WEBPACK_IMPORTED_MODULE_3__locator_barcode_locator__["a" /* default */].locate(); + } else { + return [[vec2.clone(_boxSize[0]), vec2.clone(_boxSize[1]), vec2.clone(_boxSize[2]), vec2.clone(_boxSize[3])]]; + } +} + +function transformResult(result) { + var topRight = _inputStream.getTopRight(), + xOffset = topRight.x, + yOffset = topRight.y, + i; + + if (xOffset === 0 && yOffset === 0) { + return; + } + + if (result.barcodes) { + for (i = 0; i < result.barcodes.length; i++) { + transformResult(result.barcodes[i]); + } + } + + if (result.line && result.line.length === 2) { + moveLine(result.line); + } + + if (result.box) { + moveBox(result.box); + } + + if (result.boxes && result.boxes.length > 0) { + for (i = 0; i < result.boxes.length; i++) { + moveBox(result.boxes[i]); + } + } + + function moveBox(box) { + var corner = box.length; + + while (corner--) { + box[corner][0] += xOffset; + box[corner][1] += yOffset; + } + } + + function moveLine(line) { + line[0].x += xOffset; + line[0].y += yOffset; + line[1].x += xOffset; + line[1].y += yOffset; + } +} + +function addResult(result, imageData) { + if (!imageData || !_resultCollector) { + return; + } + + if (result.barcodes) { + result.barcodes.filter(function (barcode) { + return barcode.codeResult; + }).forEach(function (barcode) { + return addResult(barcode, imageData); + }); + } else if (result.codeResult) { + _resultCollector.addResult(imageData, _inputStream.getCanvasSize(), result.codeResult); + } +} + +function hasCodeResult(result) { + return result && (result.barcodes ? result.barcodes.some(function (barcode) { + return barcode.codeResult; + }) : result.codeResult); +} + +function publishResult(result, imageData) { + var resultToPublish = result; + + if (result && _onUIThread) { + transformResult(result); + addResult(result, imageData); + resultToPublish = result.barcodes || result; + } + + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].publish("processed", resultToPublish); + if (hasCodeResult(result)) { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].publish("detected", resultToPublish); + } +} + +function locateAndDecode() { + var result, boxes; + + boxes = getBoundingBoxes(); + if (boxes) { + result = _decoder.decodeFromBoundingBoxes(boxes); + result = result || {}; + result.boxes = boxes; + publishResult(result, _inputImageWrapper.data); + } else { + publishResult(); + } +} + +function update() { + var availableWorker; + + if (_onUIThread) { + if (_workerPool.length > 0) { + availableWorker = _workerPool.filter(function (workerThread) { + return !workerThread.busy; + })[0]; + if (availableWorker) { + _framegrabber.attachData(availableWorker.imageData); + } else { + return; // all workers are busy + } + } else { + _framegrabber.attachData(_inputImageWrapper.data); + } + if (_framegrabber.grab()) { + if (availableWorker) { + availableWorker.busy = true; + availableWorker.worker.postMessage({ + cmd: 'process', + imageData: availableWorker.imageData + }, [availableWorker.imageData.buffer]); + } else { + locateAndDecode(); + } + } + } else { + locateAndDecode(); + } +} + +function startContinuousUpdate() { + var next = null, + delay = 1000 / (_config.frequency || 60); + + _stopped = false; + (function frame(timestamp) { + next = next || timestamp; + if (!_stopped) { + if (timestamp >= next) { + next += delay; + update(); + } + window.requestAnimFrame(frame); + } + })(performance.now()); +} + +function _start() { + if (_onUIThread && _config.inputStream.type === "LiveStream") { + startContinuousUpdate(); + } else { + update(); + } +} + +function initWorker(cb) { + var blobURL, + workerThread = { + worker: undefined, + imageData: new Uint8Array(_inputStream.getWidth() * _inputStream.getHeight()), + busy: true + }; + + blobURL = generateWorkerBlob(); + workerThread.worker = new Worker(blobURL); + + workerThread.worker.onmessage = function (e) { + if (e.data.event === 'initialized') { + URL.revokeObjectURL(blobURL); + workerThread.busy = false; + workerThread.imageData = new Uint8Array(e.data.imageData); + if (true) { + console.log("Worker initialized"); + } + return cb(workerThread); + } else if (e.data.event === 'processed') { + workerThread.imageData = new Uint8Array(e.data.imageData); + workerThread.busy = false; + publishResult(e.data.result, workerThread.imageData); + } else if (e.data.event === 'error') { + if (true) { + console.log("Worker error: " + e.data.message); + } + } + }; + + workerThread.worker.postMessage({ + cmd: 'init', + size: { x: _inputStream.getWidth(), y: _inputStream.getHeight() }, + imageData: workerThread.imageData, + config: configForWorker(_config) + }, [workerThread.imageData.buffer]); +} + +function configForWorker(config) { + return _extends({}, config, { + inputStream: _extends({}, config.inputStream, { + target: null + }) + }); +} + +function workerInterface(factory) { + /* eslint-disable no-undef*/ + if (factory) { + var Quagga = factory().default; + if (!Quagga) { + self.postMessage({ 'event': 'error', message: 'Quagga could not be created' }); + return; + } + } + var imageWrapper; + + self.onmessage = function (e) { + if (e.data.cmd === 'init') { + var config = e.data.config; + config.numOfWorkers = 0; + imageWrapper = new Quagga.ImageWrapper({ + x: e.data.size.x, + y: e.data.size.y + }, new Uint8Array(e.data.imageData)); + Quagga.init(config, ready, imageWrapper); + Quagga.onProcessed(onProcessed); + } else if (e.data.cmd === 'process') { + imageWrapper.data = new Uint8Array(e.data.imageData); + Quagga.start(); + } else if (e.data.cmd === 'setReaders') { + Quagga.setReaders(e.data.readers); + } + }; + + function onProcessed(result) { + self.postMessage({ + 'event': 'processed', + imageData: imageWrapper.data, + result: result + }, [imageWrapper.data.buffer]); + } + + function ready() { + // eslint-disable-line + self.postMessage({ 'event': 'initialized', imageData: imageWrapper.data }, [imageWrapper.data.buffer]); + } + + /* eslint-enable */ +} + +function generateWorkerBlob() { + var blob, factorySource; + + /* jshint ignore:start */ + if (typeof __factorySource__ !== 'undefined') { + factorySource = __factorySource__; // eslint-disable-line no-undef + } + /* jshint ignore:end */ + + blob = new Blob(['(' + workerInterface.toString() + ')(' + factorySource + ');'], { type: 'text/javascript' }); + + return window.URL.createObjectURL(blob); +} + +function _setReaders(readers) { + if (_decoder) { + _decoder.setReaders(readers); + } else if (_onUIThread && _workerPool.length > 0) { + _workerPool.forEach(function (workerThread) { + workerThread.worker.postMessage({ cmd: 'setReaders', readers: readers }); + }); + } +} + +function adjustWorkerPool(capacity, cb) { + var increaseBy = capacity - _workerPool.length; + if (increaseBy === 0) { + return cb && cb(); + } + if (increaseBy < 0) { + var workersToTerminate = _workerPool.slice(increaseBy); + workersToTerminate.forEach(function (workerThread) { + workerThread.worker.terminate(); + if (true) { + console.log("Worker terminated!"); + } + }); + _workerPool = _workerPool.slice(0, increaseBy); + return cb && cb(); + } else { + var workerInitialized = function workerInitialized(workerThread) { + _workerPool.push(workerThread); + if (_workerPool.length >= capacity) { + cb && cb(); + } + }; + + for (var i = 0; i < increaseBy; i++) { + initWorker(workerInitialized); + } + } +} + +/* harmony default export */ __webpack_exports__["default"] = { + init: function init(config, cb, imageWrapper) { + _config = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()({}, __WEBPACK_IMPORTED_MODULE_9__config_config__["a" /* default */], config); + if (imageWrapper) { + _onUIThread = false; + initializeData(imageWrapper); + return cb(); + } else { + initInputStream(cb); + } + }, + start: function start() { + _start(); + }, + stop: function stop() { + _stopped = true; + adjustWorkerPool(0); + if (_config.inputStream.type === "LiveStream") { + __WEBPACK_IMPORTED_MODULE_6__input_camera_access__["a" /* default */].release(); + _inputStream.clearEventHandlers(); + } + }, + pause: function pause() { + _stopped = true; + }, + onDetected: function onDetected(callback) { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].subscribe("detected", callback); + }, + offDetected: function offDetected(callback) { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].unsubscribe("detected", callback); + }, + onProcessed: function onProcessed(callback) { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].subscribe("processed", callback); + }, + offProcessed: function offProcessed(callback) { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].unsubscribe("processed", callback); + }, + setReaders: function setReaders(readers) { + _setReaders(readers); + }, + registerResultCollector: function registerResultCollector(resultCollector) { + if (resultCollector && typeof resultCollector.addResult === 'function') { + _resultCollector = resultCollector; + } + }, + canvas: _canvasContainer, + decodeSingle: function decodeSingle(config, resultCallback) { + var _this = this; + + config = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()({ + inputStream: { + type: "ImageStream", + sequence: false, + size: 800, + src: config.src + }, + numOfWorkers: true && config.debug ? 0 : 1, + locator: { + halfSample: false + } + }, config); + this.init(config, function () { + __WEBPACK_IMPORTED_MODULE_5__common_events__["a" /* default */].once("processed", function (result) { + _this.stop(); + resultCallback.call(null, result); + }, true); + _start(); + }); + }, + ImageWrapper: __WEBPACK_IMPORTED_MODULE_2__common_image_wrapper__["a" /* default */], + ImageDebug: __WEBPACK_IMPORTED_MODULE_7__common_image_debug__["a" /* default */], + ResultCollector: __WEBPACK_IMPORTED_MODULE_8__analytics_result_collector__["a" /* default */], + CameraAccess: __WEBPACK_IMPORTED_MODULE_6__input_camera_access__["a" /* default */] +}; + +/***/ }), +/* 49 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_image_debug__ = __webpack_require__(9); + + +function contains(codeResult, list) { + if (list) { + return list.some(function (item) { + return Object.keys(item).every(function (key) { + return item[key] === codeResult[key]; + }); + }); + } + return false; +} + +function passesFilter(codeResult, filter) { + if (typeof filter === 'function') { + return filter(codeResult); + } + return true; +} + +/* harmony default export */ __webpack_exports__["a"] = { + create: function create(config) { + var canvas = document.createElement("canvas"), + ctx = canvas.getContext("2d"), + results = [], + capacity = config.capacity || 20, + capture = config.capture === true; + + function matchesConstraints(codeResult) { + return capacity && codeResult && !contains(codeResult, config.blacklist) && passesFilter(codeResult, config.filter); + } + + return { + addResult: function addResult(data, imageSize, codeResult) { + var result = {}; + + if (matchesConstraints(codeResult)) { + capacity--; + result.codeResult = codeResult; + if (capture) { + canvas.width = imageSize.x; + canvas.height = imageSize.y; + __WEBPACK_IMPORTED_MODULE_0__common_image_debug__["a" /* default */].drawImage(data, imageSize, ctx); + result.frame = canvas.toDataURL(); + } + results.push(result); + } + }, + getResults: function getResults() { + return results; + } + }; + } +}; + +/***/ }), +/* 50 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +var vec2 = { + clone: __webpack_require__(7), + dot: __webpack_require__(32) +}; +/** + * Creates a cluster for grouping similar orientations of datapoints + */ +/* harmony default export */ __webpack_exports__["a"] = { + create: function create(point, threshold) { + var points = [], + center = { + rad: 0, + vec: vec2.clone([0, 0]) + }, + pointMap = {}; + + function init() { + _add(point); + updateCenter(); + } + + function _add(pointToAdd) { + pointMap[pointToAdd.id] = pointToAdd; + points.push(pointToAdd); + } + + function updateCenter() { + var i, + sum = 0; + for (i = 0; i < points.length; i++) { + sum += points[i].rad; + } + center.rad = sum / points.length; + center.vec = vec2.clone([Math.cos(center.rad), Math.sin(center.rad)]); + } + + init(); + + return { + add: function add(pointToAdd) { + if (!pointMap[pointToAdd.id]) { + _add(pointToAdd); + updateCenter(); + } + }, + fits: function fits(otherPoint) { + // check cosine similarity to center-angle + var similarity = Math.abs(vec2.dot(otherPoint.point.vec, center.vec)); + if (similarity > threshold) { + return true; + } + return false; + }, + getPoints: function getPoints() { + return points; + }, + getCenter: function getCenter() { + return center; + } + }; + }, + createPoint: function createPoint(newPoint, id, property) { + return { + rad: newPoint[property], + point: newPoint, + id: id + }; + } +}; + +/***/ }), +/* 51 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony default export */ __webpack_exports__["a"] = (function () { + var events = {}; + + function getEvent(eventName) { + if (!events[eventName]) { + events[eventName] = { + subscribers: [] + }; + } + return events[eventName]; + } + + function clearEvents() { + events = {}; + } + + function publishSubscription(subscription, data) { + if (subscription.async) { + setTimeout(function () { + subscription.callback(data); + }, 4); + } else { + subscription.callback(data); + } + } + + function _subscribe(event, callback, async) { + var subscription; + + if (typeof callback === "function") { + subscription = { + callback: callback, + async: async + }; + } else { + subscription = callback; + if (!subscription.callback) { + throw "Callback was not specified on options"; + } + } + + getEvent(event).subscribers.push(subscription); + } + + return { + subscribe: function subscribe(event, callback, async) { + return _subscribe(event, callback, async); + }, + publish: function publish(eventName, data) { + var event = getEvent(eventName), + subscribers = event.subscribers; + + // Publish one-time subscriptions + subscribers.filter(function (subscriber) { + return !!subscriber.once; + }).forEach(function (subscriber) { + publishSubscription(subscriber, data); + }); + + // remove them from the subscriber + event.subscribers = subscribers.filter(function (subscriber) { + return !subscriber.once; + }); + + // publish the rest + event.subscribers.forEach(function (subscriber) { + publishSubscription(subscriber, data); + }); + }, + once: function once(event, callback, async) { + _subscribe(event, { + callback: callback, + async: async, + once: true + }); + }, + unsubscribe: function unsubscribe(eventName, callback) { + var event; + + if (eventName) { + event = getEvent(eventName); + if (event && callback) { + event.subscribers = event.subscribers.filter(function (subscriber) { + return subscriber.callback !== callback; + }); + } else { + event.subscribers = []; + } + } else { + clearEvents(); + } + } + }; +})(); + +/***/ }), +/* 52 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["b"] = enumerateDevices; +/* harmony export (immutable) */ __webpack_exports__["a"] = getUserMedia; + +function enumerateDevices() { + if (navigator.mediaDevices && typeof navigator.mediaDevices.enumerateDevices === 'function') { + return navigator.mediaDevices.enumerateDevices(); + } + return Promise.reject(new Error('enumerateDevices is not defined')); +}; + +function getUserMedia(constraints) { + if (navigator.mediaDevices && typeof navigator.mediaDevices.getUserMedia === 'function') { + return navigator.mediaDevices.getUserMedia(constraints); + } + return Promise.reject(new Error('getUserMedia is not defined')); +} + +/***/ }), +/* 53 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/** + * Construct representing a part of another {ImageWrapper}. Shares data + * between the parent and the child. + * @param from {ImageRef} The position where to start the {SubImage} from. (top-left corner) + * @param size {ImageRef} The size of the resulting image + * @param I {ImageWrapper} The {ImageWrapper} to share from + * @returns {SubImage} A shared part of the original image + */ +function SubImage(from, size, I) { + if (!I) { + I = { + data: null, + size: size + }; + } + this.data = I.data; + this.originalSize = I.size; + this.I = I; + + this.from = from; + this.size = size; +} + +/** + * Displays the {SubImage} in a given canvas + * @param canvas {Canvas} The canvas element to write to + * @param scale {Number} Scale which is applied to each pixel-value + */ +SubImage.prototype.show = function (canvas, scale) { + var ctx, frame, data, current, y, x, pixel; + + if (!scale) { + scale = 1.0; + } + ctx = canvas.getContext('2d'); + canvas.width = this.size.x; + canvas.height = this.size.y; + frame = ctx.getImageData(0, 0, canvas.width, canvas.height); + data = frame.data; + current = 0; + for (y = 0; y < this.size.y; y++) { + for (x = 0; x < this.size.x; x++) { + pixel = y * this.size.x + x; + current = this.get(x, y) * scale; + data[pixel * 4 + 0] = current; + data[pixel * 4 + 1] = current; + data[pixel * 4 + 2] = current; + data[pixel * 4 + 3] = 255; + } + } + frame.data = data; + ctx.putImageData(frame, 0, 0); +}; + +/** + * Retrieves a given pixel position from the {SubImage} + * @param x {Number} The x-position + * @param y {Number} The y-position + * @returns {Number} The grayscale value at the pixel-position + */ +SubImage.prototype.get = function (x, y) { + return this.data[(this.from.y + y) * this.originalSize.x + this.from.x + x]; +}; + +/** + * Updates the underlying data from a given {ImageWrapper} + * @param image {ImageWrapper} The updated image + */ +SubImage.prototype.updateData = function (image) { + this.originalSize = image.size; + this.data = image.data; +}; + +/** + * Updates the position of the shared area + * @param from {x,y} The new location + * @returns {SubImage} returns {this} for possible chaining + */ +SubImage.prototype.updateFrom = function (from) { + this.from = from; + return this; +}; + +/* harmony default export */ __webpack_exports__["a"] = SubImage; + +/***/ }), +/* 54 */ +/***/ (function(module, exports) { + +/* + * typedefs.js + * Normalizes browser-specific prefixes + */ + +if (typeof window !== 'undefined') { + window.requestAnimFrame = function () { + return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function ( /* function FrameRequestCallback */callback) { + window.setTimeout(callback, 1000 / 60); + }; + }(); +} +Math.imul = Math.imul || function (a, b) { + var ah = a >>> 16 & 0xffff, + al = a & 0xffff, + bh = b >>> 16 & 0xffff, + bl = b & 0xffff; + // the shift by 0 fixes the sign on the high part + // the final |0 converts the unsigned value into a signed value + return al * bl + (ah * bl + al * bh << 16 >>> 0) | 0; +}; + +if (typeof Object.assign !== 'function') { + Object.assign = function (target) { + // .length of function is 2 + 'use strict'; + + if (target === null) { + // TypeError if undefined or null + throw new TypeError('Cannot convert undefined or null to object'); + } + + var to = Object(target); + + for (var index = 1; index < arguments.length; index++) { + var nextSource = arguments[index]; + + if (nextSource !== null) { + // Skip over if undefined or null + for (var nextKey in nextSource) { + // Avoid bugs when hasOwnProperty is shadowed + if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; + }; +} + +/***/ }), +/* 55 */ +/***/ (function(module, exports) { + +module.exports = { + inputStream: { + name: "Live", + type: "LiveStream", + constraints: { + width: 640, + height: 480, + // aspectRatio: 640/480, // optional + facingMode: "environment" }, + area: { + top: "0%", + right: "0%", + left: "0%", + bottom: "0%" + }, + singleChannel: false // true: only the red color-channel is read + }, + locate: true, + numOfWorkers: 0, + decoder: { + readers: ['code_128_reader', 'ean_reader', 'code_39_reader', 'code_39_vin_reader', + 'codabar_reader', 'upc_reader', 'upc_e_reader', 'i2of5_reader', '2of5_reader', 'code_93_reader'], + debug: { + drawBoundingBox: false, + showFrequency: false, + drawScanline: false, + showPattern: false + } + }, + locator: { + halfSample: true, + patchSize: "medium", // x-small, small, medium, large, x-large + debug: { + showCanvas: false, + showPatches: false, + showFoundPatches: false, + showSkeleton: false, + showLabels: false, + showPatchLabels: false, + showRemainingPatchLabels: false, + boxFromPatches: { + showTransformed: false, + showTransformedBox: false, + showBB: false + } + } + } +}; + +/***/ }), +/* 56 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +var config = void 0; + +if (true) { + config = __webpack_require__(55); +} else if (ENV.node) { + config = require('./config.node.js'); +} else { + config = require('./config.prod.js'); +} + +/* harmony default export */ __webpack_exports__["a"] = config; + +/***/ }), +/* 57 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__bresenham__ = __webpack_require__(58); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_image_debug__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__reader_code_128_reader__ = __webpack_require__(69); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__reader_ean_reader__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__reader_code_39_reader__ = __webpack_require__(31); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__reader_code_39_vin_reader__ = __webpack_require__(70); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__reader_codabar_reader__ = __webpack_require__(68); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__reader_upc_reader__ = __webpack_require__(77); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__reader_ean_8_reader__ = __webpack_require__(74); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__reader_ean_2_reader__ = __webpack_require__(72); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__reader_ean_5_reader__ = __webpack_require__(73); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__reader_upc_e_reader__ = __webpack_require__(76); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__reader_i2of5_reader__ = __webpack_require__(75); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__reader_2of5_reader__ = __webpack_require__(67); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__reader_code_93_reader__ = __webpack_require__(71); +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + + + + + + + + + + + + + + + + + +var READERS = { + code_128_reader: __WEBPACK_IMPORTED_MODULE_2__reader_code_128_reader__["a" /* default */], + ean_reader: __WEBPACK_IMPORTED_MODULE_3__reader_ean_reader__["a" /* default */], + ean_5_reader: __WEBPACK_IMPORTED_MODULE_10__reader_ean_5_reader__["a" /* default */], + ean_2_reader: __WEBPACK_IMPORTED_MODULE_9__reader_ean_2_reader__["a" /* default */], + ean_8_reader: __WEBPACK_IMPORTED_MODULE_8__reader_ean_8_reader__["a" /* default */], + code_39_reader: __WEBPACK_IMPORTED_MODULE_4__reader_code_39_reader__["a" /* default */], + code_39_vin_reader: __WEBPACK_IMPORTED_MODULE_5__reader_code_39_vin_reader__["a" /* default */], + codabar_reader: __WEBPACK_IMPORTED_MODULE_6__reader_codabar_reader__["a" /* default */], + upc_reader: __WEBPACK_IMPORTED_MODULE_7__reader_upc_reader__["a" /* default */], + upc_e_reader: __WEBPACK_IMPORTED_MODULE_11__reader_upc_e_reader__["a" /* default */], + i2of5_reader: __WEBPACK_IMPORTED_MODULE_12__reader_i2of5_reader__["a" /* default */], + '2of5_reader': __WEBPACK_IMPORTED_MODULE_13__reader_2of5_reader__["a" /* default */], + code_93_reader: __WEBPACK_IMPORTED_MODULE_14__reader_code_93_reader__["a" /* default */] +}; +/* harmony default export */ __webpack_exports__["a"] = { + create: function create(config, inputImageWrapper) { + var _canvas = { + ctx: { + frequency: null, + pattern: null, + overlay: null + }, + dom: { + frequency: null, + pattern: null, + overlay: null + } + }, + _barcodeReaders = []; + + initCanvas(); + initReaders(); + initConfig(); + + function initCanvas() { + if (true && typeof document !== 'undefined') { + var $debug = document.querySelector("#debug.detection"); + _canvas.dom.frequency = document.querySelector("canvas.frequency"); + if (!_canvas.dom.frequency) { + _canvas.dom.frequency = document.createElement("canvas"); + _canvas.dom.frequency.className = "frequency"; + if ($debug) { + $debug.appendChild(_canvas.dom.frequency); + } + } + _canvas.ctx.frequency = _canvas.dom.frequency.getContext("2d"); + + _canvas.dom.pattern = document.querySelector("canvas.patternBuffer"); + if (!_canvas.dom.pattern) { + _canvas.dom.pattern = document.createElement("canvas"); + _canvas.dom.pattern.className = "patternBuffer"; + if ($debug) { + $debug.appendChild(_canvas.dom.pattern); + } + } + _canvas.ctx.pattern = _canvas.dom.pattern.getContext("2d"); + + _canvas.dom.overlay = document.querySelector("canvas.drawingBuffer"); + if (_canvas.dom.overlay) { + _canvas.ctx.overlay = _canvas.dom.overlay.getContext("2d"); + } + } + } + + function initReaders() { + config.readers.forEach(function (readerConfig) { + var reader, + configuration = {}, + supplements = []; + + if ((typeof readerConfig === 'undefined' ? 'undefined' : _typeof(readerConfig)) === 'object') { + reader = readerConfig.format; + configuration = readerConfig.config; + } else if (typeof readerConfig === 'string') { + reader = readerConfig; + } + if (true) { + console.log("Before registering reader: ", reader); + } + if (configuration.supplements) { + supplements = configuration.supplements.map(function (supplement) { + return new READERS[supplement](); + }); + } + _barcodeReaders.push(new READERS[reader](configuration, supplements)); + }); + if (true) { + console.log("Registered Readers: " + _barcodeReaders.map(function (reader) { + return JSON.stringify({ format: reader.FORMAT, config: reader.config }); + }).join(', ')); + } + } + + function initConfig() { + if (true && typeof document !== 'undefined') { + var i, + vis = [{ + node: _canvas.dom.frequency, + prop: config.debug.showFrequency + }, { + node: _canvas.dom.pattern, + prop: config.debug.showPattern + }]; + + for (i = 0; i < vis.length; i++) { + if (vis[i].prop === true) { + vis[i].node.style.display = "block"; + } else { + vis[i].node.style.display = "none"; + } + } + } + } + + /** + * extend the line on both ends + * @param {Array} line + * @param {Number} angle + */ + function getExtendedLine(line, angle, ext) { + function extendLine(amount) { + var extension = { + y: amount * Math.sin(angle), + x: amount * Math.cos(angle) + }; + + line[0].y -= extension.y; + line[0].x -= extension.x; + line[1].y += extension.y; + line[1].x += extension.x; + } + + // check if inside image + extendLine(ext); + while (ext > 1 && (!inputImageWrapper.inImageWithBorder(line[0], 0) || !inputImageWrapper.inImageWithBorder(line[1], 0))) { + ext -= Math.ceil(ext / 2); + extendLine(-ext); + } + return line; + } + + function getLine(box) { + return [{ + x: (box[1][0] - box[0][0]) / 2 + box[0][0], + y: (box[1][1] - box[0][1]) / 2 + box[0][1] + }, { + x: (box[3][0] - box[2][0]) / 2 + box[2][0], + y: (box[3][1] - box[2][1]) / 2 + box[2][1] + }]; + } + + function tryDecode(line) { + var result = null, + i, + barcodeLine = __WEBPACK_IMPORTED_MODULE_0__bresenham__["a" /* default */].getBarcodeLine(inputImageWrapper, line[0], line[1]); + + if (true && config.debug.showFrequency) { + __WEBPACK_IMPORTED_MODULE_1__common_image_debug__["a" /* default */].drawPath(line, { x: 'x', y: 'y' }, _canvas.ctx.overlay, { color: 'red', lineWidth: 3 }); + __WEBPACK_IMPORTED_MODULE_0__bresenham__["a" /* default */].debug.printFrequency(barcodeLine.line, _canvas.dom.frequency); + } + + __WEBPACK_IMPORTED_MODULE_0__bresenham__["a" /* default */].toBinaryLine(barcodeLine); + + if (true && config.debug.showPattern) { + __WEBPACK_IMPORTED_MODULE_0__bresenham__["a" /* default */].debug.printPattern(barcodeLine.line, _canvas.dom.pattern); + } + + for (i = 0; i < _barcodeReaders.length && result === null; i++) { + result = _barcodeReaders[i].decodePattern(barcodeLine.line); + } + if (result === null) { + return null; + } + return { + codeResult: result, + barcodeLine: barcodeLine + }; + } + + /** + * This method slices the given area apart and tries to detect a barcode-pattern + * for each slice. It returns the decoded barcode, or null if nothing was found + * @param {Array} box + * @param {Array} line + * @param {Number} lineAngle + */ + function tryDecodeBruteForce(box, line, lineAngle) { + var sideLength = Math.sqrt(Math.pow(box[1][0] - box[0][0], 2) + Math.pow(box[1][1] - box[0][1], 2)), + i, + slices = 16, + result = null, + dir, + extension, + xdir = Math.sin(lineAngle), + ydir = Math.cos(lineAngle); + + for (i = 1; i < slices && result === null; i++) { + // move line perpendicular to angle + dir = sideLength / slices * i * (i % 2 === 0 ? -1 : 1); + extension = { + y: dir * xdir, + x: dir * ydir + }; + line[0].y += extension.x; + line[0].x -= extension.y; + line[1].y += extension.x; + line[1].x -= extension.y; + + result = tryDecode(line); + } + return result; + } + + function getLineLength(line) { + return Math.sqrt(Math.pow(Math.abs(line[1].y - line[0].y), 2) + Math.pow(Math.abs(line[1].x - line[0].x), 2)); + } + + /** + * With the help of the configured readers (Code128 or EAN) this function tries to detect a + * valid barcode pattern within the given area. + * @param {Object} box The area to search in + * @returns {Object} the result {codeResult, line, angle, pattern, threshold} + */ + function _decodeFromBoundingBox(box) { + var line, + lineAngle, + ctx = _canvas.ctx.overlay, + result, + lineLength; + + if (true) { + if (config.debug.drawBoundingBox && ctx) { + __WEBPACK_IMPORTED_MODULE_1__common_image_debug__["a" /* default */].drawPath(box, { x: 0, y: 1 }, ctx, { color: "blue", lineWidth: 2 }); + } + } + + line = getLine(box); + lineLength = getLineLength(line); + lineAngle = Math.atan2(line[1].y - line[0].y, line[1].x - line[0].x); + line = getExtendedLine(line, lineAngle, Math.floor(lineLength * 0.1)); + if (line === null) { + return null; + } + + result = tryDecode(line); + if (result === null) { + result = tryDecodeBruteForce(box, line, lineAngle); + } + + if (result === null) { + return null; + } + + if (true && result && config.debug.drawScanline && ctx) { + __WEBPACK_IMPORTED_MODULE_1__common_image_debug__["a" /* default */].drawPath(line, { x: 'x', y: 'y' }, ctx, { color: 'red', lineWidth: 3 }); + } + + return { + codeResult: result.codeResult, + line: line, + angle: lineAngle, + pattern: result.barcodeLine.line, + threshold: result.barcodeLine.threshold + }; + } + + return { + decodeFromBoundingBox: function decodeFromBoundingBox(box) { + return _decodeFromBoundingBox(box); + }, + decodeFromBoundingBoxes: function decodeFromBoundingBoxes(boxes) { + var i, + result, + barcodes = [], + multiple = config.multiple; + + for (i = 0; i < boxes.length; i++) { + var box = boxes[i]; + result = _decodeFromBoundingBox(box) || {}; + result.box = box; + + if (multiple) { + barcodes.push(result); + } else if (result.codeResult) { + return result; + } + } + + if (multiple) { + return { + barcodes: barcodes + }; + } + }, + setReaders: function setReaders(readers) { + config.readers = readers; + _barcodeReaders.length = 0; + initReaders(); + } + }; + } +}; + +/***/ }), +/* 58 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__ = __webpack_require__(20); + + +var Bresenham = {}; + +var Slope = { + DIR: { + UP: 1, + DOWN: -1 + } +}; +/** + * Scans a line of the given image from point p1 to p2 and returns a result object containing + * gray-scale values (0-255) of the underlying pixels in addition to the min + * and max values. + * @param {Object} imageWrapper + * @param {Object} p1 The start point {x,y} + * @param {Object} p2 The end point {x,y} + * @returns {line, min, max} + */ +Bresenham.getBarcodeLine = function (imageWrapper, p1, p2) { + var x0 = p1.x | 0, + y0 = p1.y | 0, + x1 = p2.x | 0, + y1 = p2.y | 0, + steep = Math.abs(y1 - y0) > Math.abs(x1 - x0), + deltax, + deltay, + error, + ystep, + y, + tmp, + x, + line = [], + imageData = imageWrapper.data, + width = imageWrapper.size.x, + sum = 0, + val, + min = 255, + max = 0; + + function read(a, b) { + val = imageData[b * width + a]; + sum += val; + min = val < min ? val : min; + max = val > max ? val : max; + line.push(val); + } + + if (steep) { + tmp = x0; + x0 = y0; + y0 = tmp; + + tmp = x1; + x1 = y1; + y1 = tmp; + } + if (x0 > x1) { + tmp = x0; + x0 = x1; + x1 = tmp; + + tmp = y0; + y0 = y1; + y1 = tmp; + } + deltax = x1 - x0; + deltay = Math.abs(y1 - y0); + error = deltax / 2 | 0; + y = y0; + ystep = y0 < y1 ? 1 : -1; + for (x = x0; x < x1; x++) { + if (steep) { + read(y, x); + } else { + read(x, y); + } + error = error - deltay; + if (error < 0) { + y = y + ystep; + error = error + deltax; + } + } + + return { + line: line, + min: min, + max: max + }; +}; + +/** + * Converts the result from getBarcodeLine into a binary representation + * also considering the frequency and slope of the signal for more robust results + * @param {Object} result {line, min, max} + */ +Bresenham.toBinaryLine = function (result) { + var min = result.min, + max = result.max, + line = result.line, + slope, + slope2, + center = min + (max - min) / 2, + extrema = [], + currentDir, + dir, + threshold = (max - min) / 12, + rThreshold = -threshold, + i, + j; + + // 1. find extrema + currentDir = line[0] > center ? Slope.DIR.UP : Slope.DIR.DOWN; + extrema.push({ + pos: 0, + val: line[0] + }); + for (i = 0; i < line.length - 2; i++) { + slope = line[i + 1] - line[i]; + slope2 = line[i + 2] - line[i + 1]; + if (slope + slope2 < rThreshold && line[i + 1] < center * 1.5) { + dir = Slope.DIR.DOWN; + } else if (slope + slope2 > threshold && line[i + 1] > center * 0.5) { + dir = Slope.DIR.UP; + } else { + dir = currentDir; + } + + if (currentDir !== dir) { + extrema.push({ + pos: i, + val: line[i] + }); + currentDir = dir; + } + } + extrema.push({ + pos: line.length, + val: line[line.length - 1] + }); + + for (j = extrema[0].pos; j < extrema[1].pos; j++) { + line[j] = line[j] > center ? 0 : 1; + } + + // iterate over extrema and convert to binary based on avg between minmax + for (i = 1; i < extrema.length - 1; i++) { + if (extrema[i + 1].val > extrema[i].val) { + threshold = extrema[i].val + (extrema[i + 1].val - extrema[i].val) / 3 * 2 | 0; + } else { + threshold = extrema[i + 1].val + (extrema[i].val - extrema[i + 1].val) / 3 | 0; + } + + for (j = extrema[i].pos; j < extrema[i + 1].pos; j++) { + line[j] = line[j] > threshold ? 0 : 1; + } + } + + return { + line: line, + threshold: threshold + }; +}; + +/** + * Used for development only + */ +Bresenham.debug = { + printFrequency: function printFrequency(line, canvas) { + var i, + ctx = canvas.getContext("2d"); + canvas.width = line.length; + canvas.height = 256; + + ctx.beginPath(); + ctx.strokeStyle = "blue"; + for (i = 0; i < line.length; i++) { + ctx.moveTo(i, 255); + ctx.lineTo(i, 255 - line[i]); + } + ctx.stroke(); + ctx.closePath(); + }, + + printPattern: function printPattern(line, canvas) { + var ctx = canvas.getContext("2d"), + i; + + canvas.width = line.length; + ctx.fillColor = "black"; + for (i = 0; i < line.length; i++) { + if (line[i] === 1) { + ctx.fillRect(i, 0, 1, 100); + } + } + } +}; + +/* harmony default export */ __webpack_exports__["a"] = Bresenham; + +/***/ }), +/* 59 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_pick__ = __webpack_require__(162); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_pick___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_pick__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_mediaDevices__ = __webpack_require__(52); +/* unused harmony export pickConstraints */ + + + + +var facingMatching = { + "user": /front/i, + "environment": /back/i +}; + +var streamRef; + +function waitForVideo(video) { + return new Promise(function (resolve, reject) { + var attempts = 10; + + function checkVideo() { + if (attempts > 0) { + if (video.videoWidth > 10 && video.videoHeight > 10) { + if (true) { + console.log(video.videoWidth + "px x " + video.videoHeight + "px"); + } + resolve(); + } else { + window.setTimeout(checkVideo, 500); + } + } else { + reject('Unable to play video stream. Is webcam working?'); + } + attempts--; + } + checkVideo(); + }); +} + +/** + * Tries to attach the camera-stream to a given video-element + * and calls the callback function when the content is ready + * @param {Object} constraints + * @param {Object} video + */ +function initCamera(video, constraints) { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mediaDevices__["a" /* getUserMedia */])(constraints).then(function (stream) { + return new Promise(function (resolve) { + streamRef = stream; + video.setAttribute("autoplay", true); + video.setAttribute('muted', true); + video.setAttribute('playsinline', true); + video.srcObject = stream; + video.addEventListener('loadedmetadata', function () { + video.play(); + resolve(); + }); + }); + }).then(waitForVideo.bind(null, video)); +} + +function deprecatedConstraints(videoConstraints) { + var normalized = __WEBPACK_IMPORTED_MODULE_0_lodash_pick___default()(videoConstraints, ["width", "height", "facingMode", "aspectRatio", "deviceId"]); + + if (typeof videoConstraints.minAspectRatio !== 'undefined' && videoConstraints.minAspectRatio > 0) { + normalized.aspectRatio = videoConstraints.minAspectRatio; + console.log("WARNING: Constraint 'minAspectRatio' is deprecated; Use 'aspectRatio' instead"); + } + if (typeof videoConstraints.facing !== 'undefined') { + normalized.facingMode = videoConstraints.facing; + console.log("WARNING: Constraint 'facing' is deprecated. Use 'facingMode' instead'"); + } + return normalized; +} + +function pickConstraints(videoConstraints) { + var normalizedConstraints = { + audio: false, + video: deprecatedConstraints(videoConstraints) + }; + + if (normalizedConstraints.video.deviceId && normalizedConstraints.video.facingMode) { + delete normalizedConstraints.video.facingMode; + } + return Promise.resolve(normalizedConstraints); +} + +function enumerateVideoDevices() { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mediaDevices__["b" /* enumerateDevices */])().then(function (devices) { + return devices.filter(function (device) { + return device.kind === 'videoinput'; + }); + }); +} + +function getActiveTrack() { + if (streamRef) { + var tracks = streamRef.getVideoTracks(); + if (tracks && tracks.length) { + return tracks[0]; + } + } +} + +/* harmony default export */ __webpack_exports__["a"] = { + request: function request(video, videoConstraints) { + return pickConstraints(videoConstraints).then(initCamera.bind(null, video)); + }, + release: function release() { + var tracks = streamRef && streamRef.getVideoTracks(); + if (tracks && tracks.length) { + tracks[0].stop(); + } + streamRef = null; + }, + enumerateVideoDevices: enumerateVideoDevices, + getActiveStreamLabel: function getActiveStreamLabel() { + var track = getActiveTrack(); + return track ? track.label : ''; + }, + getActiveTrack: getActiveTrack +}; + +/***/ }), +/* 60 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* unused harmony export AvailableTags */ +/* harmony export (immutable) */ __webpack_exports__["a"] = findTagsInObjectURL; +/* unused harmony export base64ToArrayBuffer */ +/* unused harmony export findTagsInBuffer */ +// Scraped from https://github.com/exif-js/exif-js + +var ExifTags = { 0x0112: "orientation" }; +var AvailableTags = Object.keys(ExifTags).map(function (key) { + return ExifTags[key]; +}); + +function findTagsInObjectURL(src) { + var tags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : AvailableTags; + + if (/^blob\:/i.test(src)) { + return objectURLToBlob(src).then(readToBuffer).then(function (buffer) { + return findTagsInBuffer(buffer, tags); + }); + } + return Promise.resolve(null); +} + +function base64ToArrayBuffer(dataUrl) { + var base64 = dataUrl.replace(/^data\:([^\;]+)\;base64,/gmi, ''), + binary = atob(base64), + len = binary.length, + buffer = new ArrayBuffer(len), + view = new Uint8Array(buffer); + + for (var i = 0; i < len; i++) { + view[i] = binary.charCodeAt(i); + } + return buffer; +} + +function readToBuffer(blob) { + return new Promise(function (resolve) { + var fileReader = new FileReader(); + fileReader.onload = function (e) { + return resolve(e.target.result); + }; + fileReader.readAsArrayBuffer(blob); + }); +} + +function objectURLToBlob(url) { + return new Promise(function (resolve, reject) { + var http = new XMLHttpRequest(); + http.open("GET", url, true); + http.responseType = "blob"; + http.onreadystatechange = function () { + if (http.readyState === XMLHttpRequest.DONE && (http.status === 200 || http.status === 0)) { + resolve(this.response); + } + }; + http.onerror = reject; + http.send(); + }); +} + +function findTagsInBuffer(file) { + var selectedTags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : AvailableTags; + + var dataView = new DataView(file), + length = file.byteLength, + exifTags = selectedTags.reduce(function (result, selectedTag) { + var exifTag = Object.keys(ExifTags).filter(function (tag) { + return ExifTags[tag] === selectedTag; + })[0]; + if (exifTag) { + result[exifTag] = selectedTag; + } + return result; + }, {}); + var offset = 2, + marker = void 0; + + if (dataView.getUint8(0) !== 0xFF || dataView.getUint8(1) !== 0xD8) { + return false; + } + + while (offset < length) { + if (dataView.getUint8(offset) !== 0xFF) { + return false; + } + + marker = dataView.getUint8(offset + 1); + if (marker === 0xE1) { + return readEXIFData(dataView, offset + 4, exifTags); + } else { + offset += 2 + dataView.getUint16(offset + 2); + } + } +} + +function readEXIFData(file, start, exifTags) { + if (getStringFromBuffer(file, start, 4) !== "Exif") { + return false; + } + + var tiffOffset = start + 6; + var bigEnd = void 0, + tags = void 0; + + if (file.getUint16(tiffOffset) === 0x4949) { + bigEnd = false; + } else if (file.getUint16(tiffOffset) === 0x4D4D) { + bigEnd = true; + } else { + return false; + } + + if (file.getUint16(tiffOffset + 2, !bigEnd) !== 0x002A) { + return false; + } + + var firstIFDOffset = file.getUint32(tiffOffset + 4, !bigEnd); + if (firstIFDOffset < 0x00000008) { + return false; + } + + tags = readTags(file, tiffOffset, tiffOffset + firstIFDOffset, exifTags, bigEnd); + return tags; +} + +function readTags(file, tiffStart, dirStart, strings, bigEnd) { + var entries = file.getUint16(dirStart, !bigEnd), + tags = {}; + + for (var i = 0; i < entries; i++) { + var entryOffset = dirStart + i * 12 + 2, + tag = strings[file.getUint16(entryOffset, !bigEnd)]; + if (tag) { + tags[tag] = readTagValue(file, entryOffset, tiffStart, dirStart, bigEnd); + } + } + return tags; +} + +function readTagValue(file, entryOffset, tiffStart, dirStart, bigEnd) { + var type = file.getUint16(entryOffset + 2, !bigEnd), + numValues = file.getUint32(entryOffset + 4, !bigEnd); + + switch (type) { + case 3: + if (numValues === 1) { + return file.getUint16(entryOffset + 8, !bigEnd); + } + } +} + +function getStringFromBuffer(buffer, start, length) { + var outstr = ""; + for (var n = start; n < start + length; n++) { + outstr += String.fromCharCode(buffer.getUint8(n)); + } + return outstr; +} + +/***/ }), +/* 61 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_cv_utils__ = __webpack_require__(19); + + +var TO_RADIANS = Math.PI / 180; + +function adjustCanvasSize(canvas, targetSize) { + if (canvas.width !== targetSize.x) { + if (true) { + console.log("WARNING: canvas-size needs to be adjusted"); + } + canvas.width = targetSize.x; + } + if (canvas.height !== targetSize.y) { + if (true) { + console.log("WARNING: canvas-size needs to be adjusted"); + } + canvas.height = targetSize.y; + } +} + +var FrameGrabber = {}; + +FrameGrabber.create = function (inputStream, canvas) { + var _that = {}, + _streamConfig = inputStream.getConfig(), + _video_size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__["b" /* imageRef */])(inputStream.getRealWidth(), inputStream.getRealHeight()), + _canvasSize = inputStream.getCanvasSize(), + _size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__["b" /* imageRef */])(inputStream.getWidth(), inputStream.getHeight()), + topRight = inputStream.getTopRight(), + _sx = topRight.x, + _sy = topRight.y, + _canvas, + _ctx = null, + _data = null; + + _canvas = canvas ? canvas : document.createElement("canvas"); + _canvas.width = _canvasSize.x; + _canvas.height = _canvasSize.y; + _ctx = _canvas.getContext("2d"); + _data = new Uint8Array(_size.x * _size.y); + if (true) { + console.log("FrameGrabber", JSON.stringify({ + size: _size, + topRight: topRight, + videoSize: _video_size, + canvasSize: _canvasSize + })); + } + + /** + * Uses the given array as frame-buffer + */ + _that.attachData = function (data) { + _data = data; + }; + + /** + * Returns the used frame-buffer + */ + _that.getData = function () { + return _data; + }; + + /** + * Fetches a frame from the input-stream and puts into the frame-buffer. + * The image-data is converted to gray-scale and then half-sampled if configured. + */ + _that.grab = function () { + var doHalfSample = _streamConfig.halfSample, + frame = inputStream.getFrame(), + drawable = frame, + drawAngle = 0, + ctxData; + if (drawable) { + adjustCanvasSize(_canvas, _canvasSize); + if (_streamConfig.type === 'ImageStream') { + drawable = frame.img; + if (frame.tags && frame.tags.orientation) { + switch (frame.tags.orientation) { + case 6: + drawAngle = 90 * TO_RADIANS; + break; + case 8: + drawAngle = -90 * TO_RADIANS; + break; + } + } + } + + if (drawAngle !== 0) { + _ctx.translate(_canvasSize.x / 2, _canvasSize.y / 2); + _ctx.rotate(drawAngle); + _ctx.drawImage(drawable, -_canvasSize.y / 2, -_canvasSize.x / 2, _canvasSize.y, _canvasSize.x); + _ctx.rotate(-drawAngle); + _ctx.translate(-_canvasSize.x / 2, -_canvasSize.y / 2); + } else { + _ctx.drawImage(drawable, 0, 0, _canvasSize.x, _canvasSize.y); + } + + ctxData = _ctx.getImageData(_sx, _sy, _size.x, _size.y).data; + if (doHalfSample) { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__["c" /* grayAndHalfSampleFromCanvasData */])(ctxData, _size, _data); + } else { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__common_cv_utils__["d" /* computeGray */])(ctxData, _data, _streamConfig); + } + return true; + } else { + return false; + } + }; + + _that.getSize = function () { + return _size; + }; + + return _that; +}; + +/* harmony default export */ __webpack_exports__["a"] = FrameGrabber; + +/***/ }), +/* 62 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__exif_helper__ = __webpack_require__(60); + + +var ImageLoader = {}; +ImageLoader.load = function (directory, callback, offset, size, sequence) { + var htmlImagesSrcArray = new Array(size), + htmlImagesArray = new Array(htmlImagesSrcArray.length), + i, + img, + num; + + if (sequence === false) { + htmlImagesSrcArray[0] = directory; + } else { + for (i = 0; i < htmlImagesSrcArray.length; i++) { + num = offset + i; + htmlImagesSrcArray[i] = directory + "image-" + ("00" + num).slice(-3) + ".jpg"; + } + } + htmlImagesArray.notLoaded = []; + htmlImagesArray.addImage = function (image) { + htmlImagesArray.notLoaded.push(image); + }; + htmlImagesArray.loaded = function (loadedImg) { + var notloadedImgs = htmlImagesArray.notLoaded; + for (var x = 0; x < notloadedImgs.length; x++) { + if (notloadedImgs[x] === loadedImg) { + notloadedImgs.splice(x, 1); + for (var y = 0; y < htmlImagesSrcArray.length; y++) { + var imgName = htmlImagesSrcArray[y].substr(htmlImagesSrcArray[y].lastIndexOf("/")); + if (loadedImg.src.lastIndexOf(imgName) !== -1) { + htmlImagesArray[y] = { img: loadedImg }; + break; + } + } + break; + } + } + if (notloadedImgs.length === 0) { + if (true) { + console.log("Images loaded"); + } + if (sequence === false) { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__exif_helper__["a" /* findTagsInObjectURL */])(directory, ['orientation']).then(function (tags) { + htmlImagesArray[0].tags = tags; + callback(htmlImagesArray); + }).catch(function (e) { + console.log(e); + callback(htmlImagesArray); + }); + } else { + callback(htmlImagesArray); + } + } + }; + + for (i = 0; i < htmlImagesSrcArray.length; i++) { + img = new Image(); + htmlImagesArray.addImage(img); + addOnloadHandler(img, htmlImagesArray); + img.src = htmlImagesSrcArray[i]; + } +}; + +function addOnloadHandler(img, htmlImagesArray) { + img.onload = function () { + htmlImagesArray.loaded(this); + }; +} + +/* harmony default export */ __webpack_exports__["a"] = ImageLoader; + +/***/ }), +/* 63 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__image_loader__ = __webpack_require__(62); + + +var InputStream = {}; +InputStream.createVideoStream = function (video) { + var that = {}, + _config = null, + _eventNames = ['canrecord', 'ended'], + _eventHandlers = {}, + _calculatedWidth, + _calculatedHeight, + _topRight = { x: 0, y: 0 }, + _canvasSize = { x: 0, y: 0 }; + + function initSize() { + var width = video.videoWidth, + height = video.videoHeight; + + _calculatedWidth = _config.size ? width / height > 1 ? _config.size : Math.floor(width / height * _config.size) : width; + _calculatedHeight = _config.size ? width / height > 1 ? Math.floor(height / width * _config.size) : _config.size : height; + + _canvasSize.x = _calculatedWidth; + _canvasSize.y = _calculatedHeight; + } + + that.getRealWidth = function () { + return video.videoWidth; + }; + + that.getRealHeight = function () { + return video.videoHeight; + }; + + that.getWidth = function () { + return _calculatedWidth; + }; + + that.getHeight = function () { + return _calculatedHeight; + }; + + that.setWidth = function (width) { + _calculatedWidth = width; + }; + + that.setHeight = function (height) { + _calculatedHeight = height; + }; + + that.setInputStream = function (config) { + _config = config; + video.src = typeof config.src !== 'undefined' ? config.src : ''; + }; + + that.ended = function () { + return video.ended; + }; + + that.getConfig = function () { + return _config; + }; + + that.setAttribute = function (name, value) { + video.setAttribute(name, value); + }; + + that.pause = function () { + video.pause(); + }; + + that.play = function () { + video.play(); + }; + + that.setCurrentTime = function (time) { + if (_config.type !== "LiveStream") { + video.currentTime = time; + } + }; + + that.addEventListener = function (event, f, bool) { + if (_eventNames.indexOf(event) !== -1) { + if (!_eventHandlers[event]) { + _eventHandlers[event] = []; + } + _eventHandlers[event].push(f); + } else { + video.addEventListener(event, f, bool); + } + }; + + that.clearEventHandlers = function () { + _eventNames.forEach(function (eventName) { + var handlers = _eventHandlers[eventName]; + if (handlers && handlers.length > 0) { + handlers.forEach(function (handler) { + video.removeEventListener(eventName, handler); + }); + } + }); + }; + + that.trigger = function (eventName, args) { + var j, + handlers = _eventHandlers[eventName]; + + if (eventName === 'canrecord') { + initSize(); + } + if (handlers && handlers.length > 0) { + for (j = 0; j < handlers.length; j++) { + handlers[j].apply(that, args); + } + } + }; + + that.setTopRight = function (topRight) { + _topRight.x = topRight.x; + _topRight.y = topRight.y; + }; + + that.getTopRight = function () { + return _topRight; + }; + + that.setCanvasSize = function (size) { + _canvasSize.x = size.x; + _canvasSize.y = size.y; + }; + + that.getCanvasSize = function () { + return _canvasSize; + }; + + that.getFrame = function () { + return video; + }; + + return that; +}; + +InputStream.createLiveStream = function (video) { + video.setAttribute("autoplay", true); + var that = InputStream.createVideoStream(video); + + that.ended = function () { + return false; + }; + + return that; +}; + +InputStream.createImageStream = function () { + var that = {}; + var _config = null; + + var width = 0, + height = 0, + frameIdx = 0, + paused = true, + loaded = false, + imgArray = null, + size = 0, + offset = 1, + baseUrl = null, + ended = false, + calculatedWidth, + calculatedHeight, + _eventNames = ['canrecord', 'ended'], + _eventHandlers = {}, + _topRight = { x: 0, y: 0 }, + _canvasSize = { x: 0, y: 0 }; + + function loadImages() { + loaded = false; + __WEBPACK_IMPORTED_MODULE_0__image_loader__["a" /* default */].load(baseUrl, function (imgs) { + imgArray = imgs; + if (imgs[0].tags && imgs[0].tags.orientation) { + switch (imgs[0].tags.orientation) { + case 6: + case 8: + width = imgs[0].img.height; + height = imgs[0].img.width; + break; + default: + width = imgs[0].img.width; + height = imgs[0].img.height; + } + } else { + width = imgs[0].img.width; + height = imgs[0].img.height; + } + calculatedWidth = _config.size ? width / height > 1 ? _config.size : Math.floor(width / height * _config.size) : width; + calculatedHeight = _config.size ? width / height > 1 ? Math.floor(height / width * _config.size) : _config.size : height; + _canvasSize.x = calculatedWidth; + _canvasSize.y = calculatedHeight; + loaded = true; + frameIdx = 0; + setTimeout(function () { + publishEvent("canrecord", []); + }, 0); + }, offset, size, _config.sequence); + } + + function publishEvent(eventName, args) { + var j, + handlers = _eventHandlers[eventName]; + + if (handlers && handlers.length > 0) { + for (j = 0; j < handlers.length; j++) { + handlers[j].apply(that, args); + } + } + } + + that.trigger = publishEvent; + + that.getWidth = function () { + return calculatedWidth; + }; + + that.getHeight = function () { + return calculatedHeight; + }; + + that.setWidth = function (newWidth) { + calculatedWidth = newWidth; + }; + + that.setHeight = function (newHeight) { + calculatedHeight = newHeight; + }; + + that.getRealWidth = function () { + return width; + }; + + that.getRealHeight = function () { + return height; + }; + + that.setInputStream = function (stream) { + _config = stream; + if (stream.sequence === false) { + baseUrl = stream.src; + size = 1; + } else { + baseUrl = stream.src; + size = stream.length; + } + loadImages(); + }; + + that.ended = function () { + return ended; + }; + + that.setAttribute = function () {}; + + that.getConfig = function () { + return _config; + }; + + that.pause = function () { + paused = true; + }; + + that.play = function () { + paused = false; + }; + + that.setCurrentTime = function (time) { + frameIdx = time; + }; + + that.addEventListener = function (event, f) { + if (_eventNames.indexOf(event) !== -1) { + if (!_eventHandlers[event]) { + _eventHandlers[event] = []; + } + _eventHandlers[event].push(f); + } + }; + + that.setTopRight = function (topRight) { + _topRight.x = topRight.x; + _topRight.y = topRight.y; + }; + + that.getTopRight = function () { + return _topRight; + }; + + that.setCanvasSize = function (canvasSize) { + _canvasSize.x = canvasSize.x; + _canvasSize.y = canvasSize.y; + }; + + that.getCanvasSize = function () { + return _canvasSize; + }; + + that.getFrame = function () { + var frame; + + if (!loaded) { + return null; + } + if (!paused) { + frame = imgArray[frameIdx]; + if (frameIdx < size - 1) { + frameIdx++; + } else { + setTimeout(function () { + ended = true; + publishEvent("ended", []); + }, 0); + } + } + return frame; + }; + + return that; +}; + +/* harmony default export */ __webpack_exports__["a"] = InputStream; + +/***/ }), +/* 64 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__ = __webpack_require__(20); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_cv_utils__ = __webpack_require__(19); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__common_array_helper__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__common_image_debug__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__rasterizer__ = __webpack_require__(65); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__tracer__ = __webpack_require__(30); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__skeletonizer__ = __webpack_require__(66); + + + + + + + +var vec2 = { + clone: __webpack_require__(7), + dot: __webpack_require__(32), + scale: __webpack_require__(81), + transformMat2: __webpack_require__(82) +}; +var mat2 = { + copy: __webpack_require__(78), + create: __webpack_require__(79), + invert: __webpack_require__(80) +}; + +var _config, + _currentImageWrapper, + _skelImageWrapper, + _subImageWrapper, + _labelImageWrapper, + _patchGrid, + _patchLabelGrid, + _imageToPatchGrid, + _binaryImageWrapper, + _patchSize, + _canvasContainer = { + ctx: { + binary: null + }, + dom: { + binary: null + } +}, + _numPatches = { x: 0, y: 0 }, + _inputImageWrapper, + _skeletonizer; + +function initBuffers() { + var skeletonImageData; + + if (_config.halfSample) { + _currentImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */]({ + x: _inputImageWrapper.size.x / 2 | 0, + y: _inputImageWrapper.size.y / 2 | 0 + }); + } else { + _currentImageWrapper = _inputImageWrapper; + } + + _patchSize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["e" /* calculatePatchSize */])(_config.patchSize, _currentImageWrapper.size); + + _numPatches.x = _currentImageWrapper.size.x / _patchSize.x | 0; + _numPatches.y = _currentImageWrapper.size.y / _patchSize.y | 0; + + _binaryImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_currentImageWrapper.size, undefined, Uint8Array, false); + + _labelImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_patchSize, undefined, Array, true); + + skeletonImageData = new ArrayBuffer(64 * 1024); + _subImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_patchSize, new Uint8Array(skeletonImageData, 0, _patchSize.x * _patchSize.y)); + _skelImageWrapper = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_patchSize, new Uint8Array(skeletonImageData, _patchSize.x * _patchSize.y * 3, _patchSize.x * _patchSize.y), undefined, true); + _skeletonizer = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__skeletonizer__["a" /* default */])(typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : global, { + size: _patchSize.x + }, skeletonImageData); + + _imageToPatchGrid = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */]({ + x: _currentImageWrapper.size.x / _subImageWrapper.size.x | 0, + y: _currentImageWrapper.size.y / _subImageWrapper.size.y | 0 + }, undefined, Array, true); + _patchGrid = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_imageToPatchGrid.size, undefined, undefined, true); + _patchLabelGrid = new __WEBPACK_IMPORTED_MODULE_0__common_image_wrapper__["a" /* default */](_imageToPatchGrid.size, undefined, Int32Array, true); +} + +function initCanvas() { + if (_config.useWorker || typeof document === 'undefined') { + return; + } + _canvasContainer.dom.binary = document.createElement("canvas"); + _canvasContainer.dom.binary.className = "binaryBuffer"; + if (true && _config.debug.showCanvas === true) { + document.querySelector("#debug").appendChild(_canvasContainer.dom.binary); + } + _canvasContainer.ctx.binary = _canvasContainer.dom.binary.getContext("2d"); + _canvasContainer.dom.binary.width = _binaryImageWrapper.size.x; + _canvasContainer.dom.binary.height = _binaryImageWrapper.size.y; +} + +/** + * Creates a bounding box which encloses all the given patches + * @returns {Array} The minimal bounding box + */ +function boxFromPatches(patches) { + var overAvg, + i, + j, + patch, + transMat, + minx = _binaryImageWrapper.size.x, + miny = _binaryImageWrapper.size.y, + maxx = -_binaryImageWrapper.size.x, + maxy = -_binaryImageWrapper.size.y, + box, + scale; + + // draw all patches which are to be taken into consideration + overAvg = 0; + for (i = 0; i < patches.length; i++) { + patch = patches[i]; + overAvg += patch.rad; + if (true && _config.debug.showPatches) { + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, { color: "red" }); + } + } + + overAvg /= patches.length; + overAvg = (overAvg * 180 / Math.PI + 90) % 180 - 90; + if (overAvg < 0) { + overAvg += 180; + } + + overAvg = (180 - overAvg) * Math.PI / 180; + transMat = mat2.copy(mat2.create(), [Math.cos(overAvg), Math.sin(overAvg), -Math.sin(overAvg), Math.cos(overAvg)]); + + // iterate over patches and rotate by angle + for (i = 0; i < patches.length; i++) { + patch = patches[i]; + for (j = 0; j < 4; j++) { + vec2.transformMat2(patch.box[j], patch.box[j], transMat); + } + + if (true && _config.debug.boxFromPatches.showTransformed) { + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawPath(patch.box, { x: 0, y: 1 }, _canvasContainer.ctx.binary, { color: '#99ff00', lineWidth: 2 }); + } + } + + // find bounding box + for (i = 0; i < patches.length; i++) { + patch = patches[i]; + for (j = 0; j < 4; j++) { + if (patch.box[j][0] < minx) { + minx = patch.box[j][0]; + } + if (patch.box[j][0] > maxx) { + maxx = patch.box[j][0]; + } + if (patch.box[j][1] < miny) { + miny = patch.box[j][1]; + } + if (patch.box[j][1] > maxy) { + maxy = patch.box[j][1]; + } + } + } + + box = [[minx, miny], [maxx, miny], [maxx, maxy], [minx, maxy]]; + + if (true && _config.debug.boxFromPatches.showTransformedBox) { + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawPath(box, { x: 0, y: 1 }, _canvasContainer.ctx.binary, { color: '#ff0000', lineWidth: 2 }); + } + + scale = _config.halfSample ? 2 : 1; + // reverse rotation; + transMat = mat2.invert(transMat, transMat); + for (j = 0; j < 4; j++) { + vec2.transformMat2(box[j], box[j], transMat); + } + + if (true && _config.debug.boxFromPatches.showBB) { + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawPath(box, { x: 0, y: 1 }, _canvasContainer.ctx.binary, { color: '#ff0000', lineWidth: 2 }); + } + + for (j = 0; j < 4; j++) { + vec2.scale(box[j], box[j], scale); + } + + return box; +} + +/** + * Creates a binary image of the current image + */ +function binarizeImage() { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["f" /* otsuThreshold */])(_currentImageWrapper, _binaryImageWrapper); + _binaryImageWrapper.zeroBorder(); + if (true && _config.debug.showCanvas) { + _binaryImageWrapper.show(_canvasContainer.dom.binary, 255); + } +} + +/** + * Iterate over the entire image + * extract patches + */ +function findPatches() { + var i, + j, + x, + y, + moments, + patchesFound = [], + rasterizer, + rasterResult, + patch; + for (i = 0; i < _numPatches.x; i++) { + for (j = 0; j < _numPatches.y; j++) { + x = _subImageWrapper.size.x * i; + y = _subImageWrapper.size.y * j; + + // seperate parts + skeletonize(x, y); + + // Rasterize, find individual bars + _skelImageWrapper.zeroBorder(); + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(_labelImageWrapper.data, 0); + rasterizer = __WEBPACK_IMPORTED_MODULE_4__rasterizer__["a" /* default */].create(_skelImageWrapper, _labelImageWrapper); + rasterResult = rasterizer.rasterize(0); + + if (true && _config.debug.showLabels) { + _labelImageWrapper.overlay(_canvasContainer.dom.binary, Math.floor(360 / rasterResult.count), { x: x, y: y }); + } + + // calculate moments from the skeletonized patch + moments = _labelImageWrapper.moments(rasterResult.count); + + // extract eligible patches + patchesFound = patchesFound.concat(describePatch(moments, [i, j], x, y)); + } + } + + if (true && _config.debug.showFoundPatches) { + for (i = 0; i < patchesFound.length; i++) { + patch = patchesFound[i]; + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, { color: "#99ff00", lineWidth: 2 }); + } + } + + return patchesFound; +} + +/** + * Finds those connected areas which contain at least 6 patches + * and returns them ordered DESC by the number of contained patches + * @param {Number} maxLabel + */ +function findBiggestConnectedAreas(maxLabel) { + var i, + sum, + labelHist = [], + topLabels = []; + + for (i = 0; i < maxLabel; i++) { + labelHist.push(0); + } + sum = _patchLabelGrid.data.length; + while (sum--) { + if (_patchLabelGrid.data[sum] > 0) { + labelHist[_patchLabelGrid.data[sum] - 1]++; + } + } + + labelHist = labelHist.map(function (val, idx) { + return { + val: val, + label: idx + 1 + }; + }); + + labelHist.sort(function (a, b) { + return b.val - a.val; + }); + + // extract top areas with at least 6 patches present + topLabels = labelHist.filter(function (el) { + return el.val >= 5; + }); + + return topLabels; +} + +/** + * + */ +function findBoxes(topLabels, maxLabel) { + var i, + j, + sum, + patches = [], + patch, + box, + boxes = [], + hsv = [0, 1, 1], + rgb = [0, 0, 0]; + + for (i = 0; i < topLabels.length; i++) { + sum = _patchLabelGrid.data.length; + patches.length = 0; + while (sum--) { + if (_patchLabelGrid.data[sum] === topLabels[i].label) { + patch = _imageToPatchGrid.data[sum]; + patches.push(patch); + } + } + box = boxFromPatches(patches); + if (box) { + boxes.push(box); + + // draw patch-labels if requested + if (true && _config.debug.showRemainingPatchLabels) { + for (j = 0; j < patches.length; j++) { + patch = patches[j]; + hsv[0] = topLabels[i].label / (maxLabel + 1) * 360; + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["a" /* hsv2rgb */])(hsv, rgb); + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, { color: "rgb(" + rgb.join(",") + ")", lineWidth: 2 }); + } + } + } + } + return boxes; +} + +/** + * Find similar moments (via cluster) + * @param {Object} moments + */ +function similarMoments(moments) { + var clusters = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["g" /* cluster */])(moments, 0.90); + var topCluster = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["h" /* topGeneric */])(clusters, 1, function (e) { + return e.getPoints().length; + }); + var points = [], + result = []; + if (topCluster.length === 1) { + points = topCluster[0].item.getPoints(); + for (var i = 0; i < points.length; i++) { + result.push(points[i].point); + } + } + return result; +} + +function skeletonize(x, y) { + _binaryImageWrapper.subImageAsCopy(_subImageWrapper, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["b" /* imageRef */])(x, y)); + _skeletonizer.skeletonize(); + + // Show skeleton if requested + if (true && _config.debug.showSkeleton) { + _skelImageWrapper.overlay(_canvasContainer.dom.binary, 360, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["b" /* imageRef */])(x, y)); + } +} + +/** + * Extracts and describes those patches which seem to contain a barcode pattern + * @param {Array} moments + * @param {Object} patchPos, + * @param {Number} x + * @param {Number} y + * @returns {Array} list of patches + */ +function describePatch(moments, patchPos, x, y) { + var k, + avg, + eligibleMoments = [], + matchingMoments, + patch, + patchesFound = [], + minComponentWeight = Math.ceil(_patchSize.x / 3); + + if (moments.length >= 2) { + // only collect moments which's area covers at least minComponentWeight pixels. + for (k = 0; k < moments.length; k++) { + if (moments[k].m00 > minComponentWeight) { + eligibleMoments.push(moments[k]); + } + } + + // if at least 2 moments are found which have at least minComponentWeights covered + if (eligibleMoments.length >= 2) { + matchingMoments = similarMoments(eligibleMoments); + avg = 0; + // determine the similarity of the moments + for (k = 0; k < matchingMoments.length; k++) { + avg += matchingMoments[k].rad; + } + + // Only two of the moments are allowed not to fit into the equation + // add the patch to the set + if (matchingMoments.length > 1 && matchingMoments.length >= eligibleMoments.length / 4 * 3 && matchingMoments.length > moments.length / 4) { + avg /= matchingMoments.length; + patch = { + index: patchPos[1] * _numPatches.x + patchPos[0], + pos: { + x: x, + y: y + }, + box: [vec2.clone([x, y]), vec2.clone([x + _subImageWrapper.size.x, y]), vec2.clone([x + _subImageWrapper.size.x, y + _subImageWrapper.size.y]), vec2.clone([x, y + _subImageWrapper.size.y])], + moments: matchingMoments, + rad: avg, + vec: vec2.clone([Math.cos(avg), Math.sin(avg)]) + }; + patchesFound.push(patch); + } + } + } + return patchesFound; +} + +/** + * finds patches which are connected and share the same orientation + * @param {Object} patchesFound + */ +function rasterizeAngularSimilarity(patchesFound) { + var label = 0, + threshold = 0.95, + currIdx = 0, + j, + patch, + hsv = [0, 1, 1], + rgb = [0, 0, 0]; + + function notYetProcessed() { + var i; + for (i = 0; i < _patchLabelGrid.data.length; i++) { + if (_patchLabelGrid.data[i] === 0 && _patchGrid.data[i] === 1) { + return i; + } + } + return _patchLabelGrid.length; + } + + function trace(currentIdx) { + var x, + y, + currentPatch, + idx, + dir, + current = { + x: currentIdx % _patchLabelGrid.size.x, + y: currentIdx / _patchLabelGrid.size.x | 0 + }, + similarity; + + if (currentIdx < _patchLabelGrid.data.length) { + currentPatch = _imageToPatchGrid.data[currentIdx]; + // assign label + _patchLabelGrid.data[currentIdx] = label; + for (dir = 0; dir < __WEBPACK_IMPORTED_MODULE_5__tracer__["a" /* default */].searchDirections.length; dir++) { + y = current.y + __WEBPACK_IMPORTED_MODULE_5__tracer__["a" /* default */].searchDirections[dir][0]; + x = current.x + __WEBPACK_IMPORTED_MODULE_5__tracer__["a" /* default */].searchDirections[dir][1]; + idx = y * _patchLabelGrid.size.x + x; + + // continue if patch empty + if (_patchGrid.data[idx] === 0) { + _patchLabelGrid.data[idx] = Number.MAX_VALUE; + continue; + } + + if (_patchLabelGrid.data[idx] === 0) { + similarity = Math.abs(vec2.dot(_imageToPatchGrid.data[idx].vec, currentPatch.vec)); + if (similarity > threshold) { + trace(idx); + } + } + } + } + } + + // prepare for finding the right patches + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(_patchGrid.data, 0); + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(_patchLabelGrid.data, 0); + __WEBPACK_IMPORTED_MODULE_2__common_array_helper__["a" /* default */].init(_imageToPatchGrid.data, null); + + for (j = 0; j < patchesFound.length; j++) { + patch = patchesFound[j]; + _imageToPatchGrid.data[patch.index] = patch; + _patchGrid.data[patch.index] = 1; + } + + // rasterize the patches found to determine area + _patchGrid.zeroBorder(); + + while ((currIdx = notYetProcessed()) < _patchLabelGrid.data.length) { + label++; + trace(currIdx); + } + + // draw patch-labels if requested + if (true && _config.debug.showPatchLabels) { + for (j = 0; j < _patchLabelGrid.data.length; j++) { + if (_patchLabelGrid.data[j] > 0 && _patchLabelGrid.data[j] <= label) { + patch = _imageToPatchGrid.data[j]; + hsv[0] = _patchLabelGrid.data[j] / (label + 1) * 360; + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["a" /* hsv2rgb */])(hsv, rgb); + __WEBPACK_IMPORTED_MODULE_3__common_image_debug__["a" /* default */].drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, { color: "rgb(" + rgb.join(",") + ")", lineWidth: 2 }); + } + } + } + + return label; +} + +/* harmony default export */ __webpack_exports__["a"] = { + init: function init(inputImageWrapper, config) { + _config = config; + _inputImageWrapper = inputImageWrapper; + + initBuffers(); + initCanvas(); + }, + + locate: function locate() { + var patchesFound, topLabels, boxes; + + if (_config.halfSample) { + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["i" /* halfSample */])(_inputImageWrapper, _currentImageWrapper); + } + + binarizeImage(); + patchesFound = findPatches(); + // return unless 5% or more patches are found + if (patchesFound.length < _numPatches.x * _numPatches.y * 0.05) { + return null; + } + + // rasterrize area by comparing angular similarity; + var maxLabel = rasterizeAngularSimilarity(patchesFound); + if (maxLabel < 1) { + return null; + } + + // search for area with the most patches (biggest connected area) + topLabels = findBiggestConnectedAreas(maxLabel); + if (topLabels.length === 0) { + return null; + } + + boxes = findBoxes(topLabels, maxLabel); + return boxes; + }, + + checkImageConstraints: function checkImageConstraints(inputStream, config) { + var patchSize, + width = inputStream.getWidth(), + height = inputStream.getHeight(), + halfSample = config.halfSample ? 0.5 : 1, + size, + area; + + // calculate width and height based on area + if (inputStream.getConfig().area) { + area = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["j" /* computeImageArea */])(width, height, inputStream.getConfig().area); + inputStream.setTopRight({ x: area.sx, y: area.sy }); + inputStream.setCanvasSize({ x: width, y: height }); + width = area.sw; + height = area.sh; + } + + size = { + x: Math.floor(width * halfSample), + y: Math.floor(height * halfSample) + }; + + patchSize = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__common_cv_utils__["e" /* calculatePatchSize */])(config.patchSize, size); + if (true) { + console.log("Patch-Size: " + JSON.stringify(patchSize)); + } + + inputStream.setWidth(Math.floor(Math.floor(size.x / patchSize.x) * (1 / halfSample) * patchSize.x)); + inputStream.setHeight(Math.floor(Math.floor(size.y / patchSize.y) * (1 / halfSample) * patchSize.y)); + + if (inputStream.getWidth() % patchSize.x === 0 && inputStream.getHeight() % patchSize.y === 0) { + return true; + } + + throw new Error("Image dimensions do not comply with the current settings: Width (" + width + " )and height (" + height + ") must a multiple of " + patchSize.x); + } +}; +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(47))) + +/***/ }), +/* 65 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tracer__ = __webpack_require__(30); + + +/** + * http://www.codeproject.com/Tips/407172/Connected-Component-Labeling-and-Vectorization + */ +var Rasterizer = { + createContour2D: function createContour2D() { + return { + dir: null, + index: null, + firstVertex: null, + insideContours: null, + nextpeer: null, + prevpeer: null + }; + }, + CONTOUR_DIR: { + CW_DIR: 0, + CCW_DIR: 1, + UNKNOWN_DIR: 2 + }, + DIR: { + OUTSIDE_EDGE: -32767, + INSIDE_EDGE: -32766 + }, + create: function create(imageWrapper, labelWrapper) { + var imageData = imageWrapper.data, + labelData = labelWrapper.data, + width = imageWrapper.size.x, + height = imageWrapper.size.y, + tracer = __WEBPACK_IMPORTED_MODULE_0__tracer__["a" /* default */].create(imageWrapper, labelWrapper); + + return { + rasterize: function rasterize(depthlabel) { + var color, + bc, + lc, + labelindex, + cx, + cy, + colorMap = [], + vertex, + p, + cc, + sc, + pos, + connectedCount = 0, + i; + + for (i = 0; i < 400; i++) { + colorMap[i] = 0; + } + + colorMap[0] = imageData[0]; + cc = null; + for (cy = 1; cy < height - 1; cy++) { + labelindex = 0; + bc = colorMap[0]; + for (cx = 1; cx < width - 1; cx++) { + pos = cy * width + cx; + if (labelData[pos] === 0) { + color = imageData[pos]; + if (color !== bc) { + if (labelindex === 0) { + lc = connectedCount + 1; + colorMap[lc] = color; + bc = color; + vertex = tracer.contourTracing(cy, cx, lc, color, Rasterizer.DIR.OUTSIDE_EDGE); + if (vertex !== null) { + connectedCount++; + labelindex = lc; + p = Rasterizer.createContour2D(); + p.dir = Rasterizer.CONTOUR_DIR.CW_DIR; + p.index = labelindex; + p.firstVertex = vertex; + p.nextpeer = cc; + p.insideContours = null; + if (cc !== null) { + cc.prevpeer = p; + } + cc = p; + } + } else { + vertex = tracer.contourTracing(cy, cx, Rasterizer.DIR.INSIDE_EDGE, color, labelindex); + if (vertex !== null) { + p = Rasterizer.createContour2D(); + p.firstVertex = vertex; + p.insideContours = null; + if (depthlabel === 0) { + p.dir = Rasterizer.CONTOUR_DIR.CCW_DIR; + } else { + p.dir = Rasterizer.CONTOUR_DIR.CW_DIR; + } + p.index = depthlabel; + sc = cc; + while (sc !== null && sc.index !== labelindex) { + sc = sc.nextpeer; + } + if (sc !== null) { + p.nextpeer = sc.insideContours; + if (sc.insideContours !== null) { + sc.insideContours.prevpeer = p; + } + sc.insideContours = p; + } + } + } + } else { + labelData[pos] = labelindex; + } + } else if (labelData[pos] === Rasterizer.DIR.OUTSIDE_EDGE || labelData[pos] === Rasterizer.DIR.INSIDE_EDGE) { + labelindex = 0; + if (labelData[pos] === Rasterizer.DIR.INSIDE_EDGE) { + bc = imageData[pos]; + } else { + bc = colorMap[0]; + } + } else { + labelindex = labelData[pos]; + bc = colorMap[labelindex]; + } + } + } + sc = cc; + while (sc !== null) { + sc.index = depthlabel; + sc = sc.nextpeer; + } + return { + cc: cc, + count: connectedCount + }; + }, + debug: { + drawContour: function drawContour(canvas, firstContour) { + var ctx = canvas.getContext("2d"), + pq = firstContour, + iq, + q, + p; + + ctx.strokeStyle = "red"; + ctx.fillStyle = "red"; + ctx.lineWidth = 1; + + if (pq !== null) { + iq = pq.insideContours; + } else { + iq = null; + } + + while (pq !== null) { + if (iq !== null) { + q = iq; + iq = iq.nextpeer; + } else { + q = pq; + pq = pq.nextpeer; + if (pq !== null) { + iq = pq.insideContours; + } else { + iq = null; + } + } + + switch (q.dir) { + case Rasterizer.CONTOUR_DIR.CW_DIR: + ctx.strokeStyle = "red"; + break; + case Rasterizer.CONTOUR_DIR.CCW_DIR: + ctx.strokeStyle = "blue"; + break; + case Rasterizer.CONTOUR_DIR.UNKNOWN_DIR: + ctx.strokeStyle = "green"; + break; + } + + p = q.firstVertex; + ctx.beginPath(); + ctx.moveTo(p.x, p.y); + do { + p = p.next; + ctx.lineTo(p.x, p.y); + } while (p !== q.firstVertex); + ctx.stroke(); + } + } + } + }; + } +}; + +/* harmony default export */ __webpack_exports__["a"] = Rasterizer; + +/***/ }), +/* 66 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* @preserve ASM BEGIN */ +/* eslint-disable eqeqeq*/ +function Skeletonizer(stdlib, foreign, buffer) { + "use asm"; + + var images = new stdlib.Uint8Array(buffer), + size = foreign.size | 0, + imul = stdlib.Math.imul; + + function erode(inImagePtr, outImagePtr) { + inImagePtr = inImagePtr | 0; + outImagePtr = outImagePtr | 0; + + var v = 0, + u = 0, + sum = 0, + yStart1 = 0, + yStart2 = 0, + xStart1 = 0, + xStart2 = 0, + offset = 0; + + for (v = 1; (v | 0) < (size - 1 | 0); v = v + 1 | 0) { + offset = offset + size | 0; + for (u = 1; (u | 0) < (size - 1 | 0); u = u + 1 | 0) { + yStart1 = offset - size | 0; + yStart2 = offset + size | 0; + xStart1 = u - 1 | 0; + xStart2 = u + 1 | 0; + sum = (images[inImagePtr + yStart1 + xStart1 | 0] | 0) + (images[inImagePtr + yStart1 + xStart2 | 0] | 0) + (images[inImagePtr + offset + u | 0] | 0) + (images[inImagePtr + yStart2 + xStart1 | 0] | 0) + (images[inImagePtr + yStart2 + xStart2 | 0] | 0) | 0; + if ((sum | 0) == (5 | 0)) { + images[outImagePtr + offset + u | 0] = 1; + } else { + images[outImagePtr + offset + u | 0] = 0; + } + } + } + return; + } + + function subtract(aImagePtr, bImagePtr, outImagePtr) { + aImagePtr = aImagePtr | 0; + bImagePtr = bImagePtr | 0; + outImagePtr = outImagePtr | 0; + + var length = 0; + + length = imul(size, size) | 0; + + while ((length | 0) > 0) { + length = length - 1 | 0; + images[outImagePtr + length | 0] = (images[aImagePtr + length | 0] | 0) - (images[bImagePtr + length | 0] | 0) | 0; + } + } + + function bitwiseOr(aImagePtr, bImagePtr, outImagePtr) { + aImagePtr = aImagePtr | 0; + bImagePtr = bImagePtr | 0; + outImagePtr = outImagePtr | 0; + + var length = 0; + + length = imul(size, size) | 0; + + while ((length | 0) > 0) { + length = length - 1 | 0; + images[outImagePtr + length | 0] = images[aImagePtr + length | 0] | 0 | (images[bImagePtr + length | 0] | 0) | 0; + } + } + + function countNonZero(imagePtr) { + imagePtr = imagePtr | 0; + + var sum = 0, + length = 0; + + length = imul(size, size) | 0; + + while ((length | 0) > 0) { + length = length - 1 | 0; + sum = (sum | 0) + (images[imagePtr + length | 0] | 0) | 0; + } + + return sum | 0; + } + + function init(imagePtr, value) { + imagePtr = imagePtr | 0; + value = value | 0; + + var length = 0; + + length = imul(size, size) | 0; + + while ((length | 0) > 0) { + length = length - 1 | 0; + images[imagePtr + length | 0] = value; + } + } + + function dilate(inImagePtr, outImagePtr) { + inImagePtr = inImagePtr | 0; + outImagePtr = outImagePtr | 0; + + var v = 0, + u = 0, + sum = 0, + yStart1 = 0, + yStart2 = 0, + xStart1 = 0, + xStart2 = 0, + offset = 0; + + for (v = 1; (v | 0) < (size - 1 | 0); v = v + 1 | 0) { + offset = offset + size | 0; + for (u = 1; (u | 0) < (size - 1 | 0); u = u + 1 | 0) { + yStart1 = offset - size | 0; + yStart2 = offset + size | 0; + xStart1 = u - 1 | 0; + xStart2 = u + 1 | 0; + sum = (images[inImagePtr + yStart1 + xStart1 | 0] | 0) + (images[inImagePtr + yStart1 + xStart2 | 0] | 0) + (images[inImagePtr + offset + u | 0] | 0) + (images[inImagePtr + yStart2 + xStart1 | 0] | 0) + (images[inImagePtr + yStart2 + xStart2 | 0] | 0) | 0; + if ((sum | 0) > (0 | 0)) { + images[outImagePtr + offset + u | 0] = 1; + } else { + images[outImagePtr + offset + u | 0] = 0; + } + } + } + return; + } + + function memcpy(srcImagePtr, dstImagePtr) { + srcImagePtr = srcImagePtr | 0; + dstImagePtr = dstImagePtr | 0; + + var length = 0; + + length = imul(size, size) | 0; + + while ((length | 0) > 0) { + length = length - 1 | 0; + images[dstImagePtr + length | 0] = images[srcImagePtr + length | 0] | 0; + } + } + + function zeroBorder(imagePtr) { + imagePtr = imagePtr | 0; + + var x = 0, + y = 0; + + for (x = 0; (x | 0) < (size - 1 | 0); x = x + 1 | 0) { + images[imagePtr + x | 0] = 0; + images[imagePtr + y | 0] = 0; + y = y + size - 1 | 0; + images[imagePtr + y | 0] = 0; + y = y + 1 | 0; + } + for (x = 0; (x | 0) < (size | 0); x = x + 1 | 0) { + images[imagePtr + y | 0] = 0; + y = y + 1 | 0; + } + } + + function skeletonize() { + var subImagePtr = 0, + erodedImagePtr = 0, + tempImagePtr = 0, + skelImagePtr = 0, + sum = 0, + done = 0; + + erodedImagePtr = imul(size, size) | 0; + tempImagePtr = erodedImagePtr + erodedImagePtr | 0; + skelImagePtr = tempImagePtr + erodedImagePtr | 0; + + // init skel-image + init(skelImagePtr, 0); + zeroBorder(subImagePtr); + + do { + erode(subImagePtr, erodedImagePtr); + dilate(erodedImagePtr, tempImagePtr); + subtract(subImagePtr, tempImagePtr, tempImagePtr); + bitwiseOr(skelImagePtr, tempImagePtr, skelImagePtr); + memcpy(erodedImagePtr, subImagePtr); + sum = countNonZero(subImagePtr) | 0; + done = (sum | 0) == 0 | 0; + } while (!done); + } + return { + skeletonize: skeletonize + }; +} +/* @preserve ASM END */ +/* harmony default export */ __webpack_exports__["a"] = Skeletonizer; +/* eslint-enable eqeqeq*/ + +/***/ }), +/* 67 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1); + + +function TwoOfFiveReader(opts) { + __WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].call(this, opts); + this.barSpaceRatio = [1, 1]; +} + +var N = 1, + W = 3, + properties = { + START_PATTERN: { value: [W, N, W, N, N, N] }, + STOP_PATTERN: { value: [W, N, N, N, W] }, + CODE_PATTERN: { value: [[N, N, W, W, N], [W, N, N, N, W], [N, W, N, N, W], [W, W, N, N, N], [N, N, W, N, W], [W, N, W, N, N], [N, W, W, N, N], [N, N, N, W, W], [W, N, N, W, N], [N, W, N, W, N]] }, + SINGLE_CODE_ERROR: { value: 0.78, writable: true }, + AVG_CODE_ERROR: { value: 0.30, writable: true }, + FORMAT: { value: "2of5" } +}; + +var startPatternLength = properties.START_PATTERN.value.reduce(function (sum, val) { + return sum + val; +}, 0); + +TwoOfFiveReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype, properties); +TwoOfFiveReader.prototype.constructor = TwoOfFiveReader; + +TwoOfFiveReader.prototype._findPattern = function (pattern, offset, isWhite, tryHarder) { + var counter = [], + self = this, + i, + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0 + }, + error, + j, + sum, + epsilon = self.AVG_CODE_ERROR; + + isWhite = isWhite || false; + tryHarder = tryHarder || false; + + if (!offset) { + offset = self._nextSet(self._row); + } + + for (i = 0; i < pattern.length; i++) { + counter[i] = 0; + } + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + sum = 0; + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + error = self._matchPattern(counter, pattern); + if (error < epsilon) { + bestMatch.error = error; + bestMatch.start = i - sum; + bestMatch.end = i; + return bestMatch; + } + if (tryHarder) { + for (j = 0; j < counter.length - 2; j++) { + counter[j] = counter[j + 2]; + } + counter[counter.length - 2] = 0; + counter[counter.length - 1] = 0; + counterPos--; + } else { + return null; + } + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +TwoOfFiveReader.prototype._findStart = function () { + var self = this, + leadingWhitespaceStart, + offset = self._nextSet(self._row), + startInfo, + narrowBarWidth = 1; + + while (!startInfo) { + startInfo = self._findPattern(self.START_PATTERN, offset, false, true); + if (!startInfo) { + return null; + } + narrowBarWidth = Math.floor((startInfo.end - startInfo.start) / startPatternLength); + leadingWhitespaceStart = startInfo.start - narrowBarWidth * 5; + if (leadingWhitespaceStart >= 0) { + if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) { + return startInfo; + } + } + offset = startInfo.end; + startInfo = null; + } +}; + +TwoOfFiveReader.prototype._verifyTrailingWhitespace = function (endInfo) { + var self = this, + trailingWhitespaceEnd; + + trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2; + if (trailingWhitespaceEnd < self._row.length) { + if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) { + return endInfo; + } + } + return null; +}; + +TwoOfFiveReader.prototype._findEnd = function () { + var self = this, + endInfo, + tmp, + offset; + + self._row.reverse(); + offset = self._nextSet(self._row); + endInfo = self._findPattern(self.STOP_PATTERN, offset, false, true); + self._row.reverse(); + + if (endInfo === null) { + return null; + } + + // reverse numbers + tmp = endInfo.start; + endInfo.start = self._row.length - endInfo.end; + endInfo.end = self._row.length - tmp; + + return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null; +}; + +TwoOfFiveReader.prototype._decodeCode = function (counter) { + var j, + self = this, + sum = 0, + normalized, + error, + epsilon = self.AVG_CODE_ERROR, + code, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0 + }; + + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + for (code = 0; code < self.CODE_PATTERN.length; code++) { + error = self._matchPattern(counter, self.CODE_PATTERN[code]); + if (error < bestMatch.error) { + bestMatch.code = code; + bestMatch.error = error; + } + } + if (bestMatch.error < epsilon) { + return bestMatch; + } +}; + +TwoOfFiveReader.prototype._decodePayload = function (counters, result, decodedCodes) { + var i, + self = this, + pos = 0, + counterLength = counters.length, + counter = [0, 0, 0, 0, 0], + code; + + while (pos < counterLength) { + for (i = 0; i < 5; i++) { + counter[i] = counters[pos] * this.barSpaceRatio[0]; + pos += 2; + } + code = self._decodeCode(counter); + if (!code) { + return null; + } + result.push(code.code + ""); + decodedCodes.push(code); + } + return code; +}; + +TwoOfFiveReader.prototype._verifyCounterLength = function (counters) { + return counters.length % 10 === 0; +}; + +TwoOfFiveReader.prototype._decode = function () { + var startInfo, + endInfo, + self = this, + code, + result = [], + decodedCodes = [], + counters; + + startInfo = self._findStart(); + if (!startInfo) { + return null; + } + decodedCodes.push(startInfo); + + endInfo = self._findEnd(); + if (!endInfo) { + return null; + } + + counters = self._fillCounters(startInfo.end, endInfo.start, false); + if (!self._verifyCounterLength(counters)) { + return null; + } + code = self._decodePayload(counters, result, decodedCodes); + if (!code) { + return null; + } + if (result.length < 5) { + return null; + } + + decodedCodes.push(endInfo); + return { + code: result.join(""), + start: startInfo.start, + end: endInfo.end, + startInfo: startInfo, + decodedCodes: decodedCodes + }; +}; + +/* harmony default export */ __webpack_exports__["a"] = TwoOfFiveReader; + +/***/ }), +/* 68 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1); + + +function CodabarReader() { + __WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].call(this); + this._counters = []; +} + +var properties = { + ALPHABETH_STRING: { value: "0123456789-$:/.+ABCD" }, + ALPHABET: { value: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 45, 36, 58, 47, 46, 43, 65, 66, 67, 68] }, + CHARACTER_ENCODINGS: { value: [0x003, 0x006, 0x009, 0x060, 0x012, 0x042, 0x021, 0x024, 0x030, 0x048, 0x00c, 0x018, 0x045, 0x051, 0x054, 0x015, 0x01A, 0x029, 0x00B, 0x00E] }, + START_END: { value: [0x01A, 0x029, 0x00B, 0x00E] }, + MIN_ENCODED_CHARS: { value: 4 }, + MAX_ACCEPTABLE: { value: 2.0 }, + PADDING: { value: 1.5 }, + FORMAT: { value: "codabar", writeable: false } +}; + +CodabarReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype, properties); +CodabarReader.prototype.constructor = CodabarReader; + +CodabarReader.prototype._decode = function () { + var self = this, + result = [], + start, + decodedChar, + pattern, + nextStart, + end; + + this._counters = self._fillCounters(); + start = self._findStart(); + if (!start) { + return null; + } + nextStart = start.startCounter; + + do { + pattern = self._toPattern(nextStart); + if (pattern < 0) { + return null; + } + decodedChar = self._patternToChar(pattern); + if (decodedChar < 0) { + return null; + } + result.push(decodedChar); + nextStart += 8; + if (result.length > 1 && self._isStartEnd(pattern)) { + break; + } + } while (nextStart < self._counters.length); + + // verify end + if (result.length - 2 < self.MIN_ENCODED_CHARS || !self._isStartEnd(pattern)) { + return null; + } + + // verify end white space + if (!self._verifyWhitespace(start.startCounter, nextStart - 8)) { + return null; + } + + if (!self._validateResult(result, start.startCounter)) { + return null; + } + + nextStart = nextStart > self._counters.length ? self._counters.length : nextStart; + end = start.start + self._sumCounters(start.startCounter, nextStart - 8); + + return { + code: result.join(""), + start: start.start, + end: end, + startInfo: start, + decodedCodes: result + }; +}; + +CodabarReader.prototype._verifyWhitespace = function (startCounter, endCounter) { + if (startCounter - 1 <= 0 || this._counters[startCounter - 1] >= this._calculatePatternLength(startCounter) / 2.0) { + if (endCounter + 8 >= this._counters.length || this._counters[endCounter + 7] >= this._calculatePatternLength(endCounter) / 2.0) { + return true; + } + } + return false; +}; + +CodabarReader.prototype._calculatePatternLength = function (offset) { + var i, + sum = 0; + + for (i = offset; i < offset + 7; i++) { + sum += this._counters[i]; + } + + return sum; +}; + +CodabarReader.prototype._thresholdResultPattern = function (result, startCounter) { + var self = this, + categorization = { + space: { + narrow: { size: 0, counts: 0, min: 0, max: Number.MAX_VALUE }, + wide: { size: 0, counts: 0, min: 0, max: Number.MAX_VALUE } + }, + bar: { + narrow: { size: 0, counts: 0, min: 0, max: Number.MAX_VALUE }, + wide: { size: 0, counts: 0, min: 0, max: Number.MAX_VALUE } + } + }, + kind, + cat, + i, + j, + pos = startCounter, + pattern; + + for (i = 0; i < result.length; i++) { + pattern = self._charToPattern(result[i]); + for (j = 6; j >= 0; j--) { + kind = (j & 1) === 2 ? categorization.bar : categorization.space; + cat = (pattern & 1) === 1 ? kind.wide : kind.narrow; + cat.size += self._counters[pos + j]; + cat.counts++; + pattern >>= 1; + } + pos += 8; + } + + ["space", "bar"].forEach(function (key) { + var newkind = categorization[key]; + newkind.wide.min = Math.floor((newkind.narrow.size / newkind.narrow.counts + newkind.wide.size / newkind.wide.counts) / 2); + newkind.narrow.max = Math.ceil(newkind.wide.min); + newkind.wide.max = Math.ceil((newkind.wide.size * self.MAX_ACCEPTABLE + self.PADDING) / newkind.wide.counts); + }); + + return categorization; +}; + +CodabarReader.prototype._charToPattern = function (char) { + var self = this, + charCode = char.charCodeAt(0), + i; + + for (i = 0; i < self.ALPHABET.length; i++) { + if (self.ALPHABET[i] === charCode) { + return self.CHARACTER_ENCODINGS[i]; + } + } + return 0x0; +}; + +CodabarReader.prototype._validateResult = function (result, startCounter) { + var self = this, + thresholds = self._thresholdResultPattern(result, startCounter), + i, + j, + kind, + cat, + size, + pos = startCounter, + pattern; + + for (i = 0; i < result.length; i++) { + pattern = self._charToPattern(result[i]); + for (j = 6; j >= 0; j--) { + kind = (j & 1) === 0 ? thresholds.bar : thresholds.space; + cat = (pattern & 1) === 1 ? kind.wide : kind.narrow; + size = self._counters[pos + j]; + if (size < cat.min || size > cat.max) { + return false; + } + pattern >>= 1; + } + pos += 8; + } + return true; +}; + +CodabarReader.prototype._patternToChar = function (pattern) { + var i, + self = this; + + for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) { + if (self.CHARACTER_ENCODINGS[i] === pattern) { + return String.fromCharCode(self.ALPHABET[i]); + } + } + return -1; +}; + +CodabarReader.prototype._computeAlternatingThreshold = function (offset, end) { + var i, + min = Number.MAX_VALUE, + max = 0, + counter; + + for (i = offset; i < end; i += 2) { + counter = this._counters[i]; + if (counter > max) { + max = counter; + } + if (counter < min) { + min = counter; + } + } + + return (min + max) / 2.0 | 0; +}; + +CodabarReader.prototype._toPattern = function (offset) { + var numCounters = 7, + end = offset + numCounters, + barThreshold, + spaceThreshold, + bitmask = 1 << numCounters - 1, + pattern = 0, + i, + threshold; + + if (end > this._counters.length) { + return -1; + } + + barThreshold = this._computeAlternatingThreshold(offset, end); + spaceThreshold = this._computeAlternatingThreshold(offset + 1, end); + + for (i = 0; i < numCounters; i++) { + threshold = (i & 1) === 0 ? barThreshold : spaceThreshold; + if (this._counters[offset + i] > threshold) { + pattern |= bitmask; + } + bitmask >>= 1; + } + + return pattern; +}; + +CodabarReader.prototype._isStartEnd = function (pattern) { + var i; + + for (i = 0; i < this.START_END.length; i++) { + if (this.START_END[i] === pattern) { + return true; + } + } + return false; +}; + +CodabarReader.prototype._sumCounters = function (start, end) { + var i, + sum = 0; + + for (i = start; i < end; i++) { + sum += this._counters[i]; + } + return sum; +}; + +CodabarReader.prototype._findStart = function () { + var self = this, + i, + pattern, + start = self._nextUnset(self._row), + end; + + for (i = 1; i < this._counters.length; i++) { + pattern = self._toPattern(i); + if (pattern !== -1 && self._isStartEnd(pattern)) { + // TODO: Look for whitespace ahead + start += self._sumCounters(0, i); + end = start + self._sumCounters(i, i + 8); + return { + start: start, + end: end, + startCounter: i, + endCounter: i + 8 + }; + } + } +}; + +/* harmony default export */ __webpack_exports__["a"] = CodabarReader; + +/***/ }), +/* 69 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1); + + +function Code128Reader() { + __WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].call(this); +} + +var properties = { + CODE_SHIFT: { value: 98 }, + CODE_C: { value: 99 }, + CODE_B: { value: 100 }, + CODE_A: { value: 101 }, + START_CODE_A: { value: 103 }, + START_CODE_B: { value: 104 }, + START_CODE_C: { value: 105 }, + STOP_CODE: { value: 106 }, + CODE_PATTERN: { value: [[2, 1, 2, 2, 2, 2], [2, 2, 2, 1, 2, 2], [2, 2, 2, 2, 2, 1], [1, 2, 1, 2, 2, 3], [1, 2, 1, 3, 2, 2], [1, 3, 1, 2, 2, 2], [1, 2, 2, 2, 1, 3], [1, 2, 2, 3, 1, 2], [1, 3, 2, 2, 1, 2], [2, 2, 1, 2, 1, 3], [2, 2, 1, 3, 1, 2], [2, 3, 1, 2, 1, 2], [1, 1, 2, 2, 3, 2], [1, 2, 2, 1, 3, 2], [1, 2, 2, 2, 3, 1], [1, 1, 3, 2, 2, 2], [1, 2, 3, 1, 2, 2], [1, 2, 3, 2, 2, 1], [2, 2, 3, 2, 1, 1], [2, 2, 1, 1, 3, 2], [2, 2, 1, 2, 3, 1], [2, 1, 3, 2, 1, 2], [2, 2, 3, 1, 1, 2], [3, 1, 2, 1, 3, 1], [3, 1, 1, 2, 2, 2], [3, 2, 1, 1, 2, 2], [3, 2, 1, 2, 2, 1], [3, 1, 2, 2, 1, 2], [3, 2, 2, 1, 1, 2], [3, 2, 2, 2, 1, 1], [2, 1, 2, 1, 2, 3], [2, 1, 2, 3, 2, 1], [2, 3, 2, 1, 2, 1], [1, 1, 1, 3, 2, 3], [1, 3, 1, 1, 2, 3], [1, 3, 1, 3, 2, 1], [1, 1, 2, 3, 1, 3], [1, 3, 2, 1, 1, 3], [1, 3, 2, 3, 1, 1], [2, 1, 1, 3, 1, 3], [2, 3, 1, 1, 1, 3], [2, 3, 1, 3, 1, 1], [1, 1, 2, 1, 3, 3], [1, 1, 2, 3, 3, 1], [1, 3, 2, 1, 3, 1], [1, 1, 3, 1, 2, 3], [1, 1, 3, 3, 2, 1], [1, 3, 3, 1, 2, 1], [3, 1, 3, 1, 2, 1], [2, 1, 1, 3, 3, 1], [2, 3, 1, 1, 3, 1], [2, 1, 3, 1, 1, 3], [2, 1, 3, 3, 1, 1], [2, 1, 3, 1, 3, 1], [3, 1, 1, 1, 2, 3], [3, 1, 1, 3, 2, 1], [3, 3, 1, 1, 2, 1], [3, 1, 2, 1, 1, 3], [3, 1, 2, 3, 1, 1], [3, 3, 2, 1, 1, 1], [3, 1, 4, 1, 1, 1], [2, 2, 1, 4, 1, 1], [4, 3, 1, 1, 1, 1], [1, 1, 1, 2, 2, 4], [1, 1, 1, 4, 2, 2], [1, 2, 1, 1, 2, 4], [1, 2, 1, 4, 2, 1], [1, 4, 1, 1, 2, 2], [1, 4, 1, 2, 2, 1], [1, 1, 2, 2, 1, 4], [1, 1, 2, 4, 1, 2], [1, 2, 2, 1, 1, 4], [1, 2, 2, 4, 1, 1], [1, 4, 2, 1, 1, 2], [1, 4, 2, 2, 1, 1], [2, 4, 1, 2, 1, 1], [2, 2, 1, 1, 1, 4], [4, 1, 3, 1, 1, 1], [2, 4, 1, 1, 1, 2], [1, 3, 4, 1, 1, 1], [1, 1, 1, 2, 4, 2], [1, 2, 1, 1, 4, 2], [1, 2, 1, 2, 4, 1], [1, 1, 4, 2, 1, 2], [1, 2, 4, 1, 1, 2], [1, 2, 4, 2, 1, 1], [4, 1, 1, 2, 1, 2], [4, 2, 1, 1, 1, 2], [4, 2, 1, 2, 1, 1], [2, 1, 2, 1, 4, 1], [2, 1, 4, 1, 2, 1], [4, 1, 2, 1, 2, 1], [1, 1, 1, 1, 4, 3], [1, 1, 1, 3, 4, 1], [1, 3, 1, 1, 4, 1], [1, 1, 4, 1, 1, 3], [1, 1, 4, 3, 1, 1], [4, 1, 1, 1, 1, 3], [4, 1, 1, 3, 1, 1], [1, 1, 3, 1, 4, 1], [1, 1, 4, 1, 3, 1], [3, 1, 1, 1, 4, 1], [4, 1, 1, 1, 3, 1], [2, 1, 1, 4, 1, 2], [2, 1, 1, 2, 1, 4], [2, 1, 1, 2, 3, 2], [2, 3, 3, 1, 1, 1, 2]] }, + SINGLE_CODE_ERROR: { value: 0.64 }, + AVG_CODE_ERROR: { value: 0.30 }, + FORMAT: { value: "code_128", writeable: false }, + MODULE_INDICES: { value: { bar: [0, 2, 4], space: [1, 3, 5] } } +}; + +Code128Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype, properties); +Code128Reader.prototype.constructor = Code128Reader; + +Code128Reader.prototype._decodeCode = function (start, correction) { + var counter = [0, 0, 0, 0, 0, 0], + i, + self = this, + offset = start, + isWhite = !self._row[offset], + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: start, + end: start, + correction: { + bar: 1, + space: 1 + } + }, + code, + error; + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + if (correction) { + self._correct(counter, correction); + } + for (code = 0; code < self.CODE_PATTERN.length; code++) { + error = self._matchPattern(counter, self.CODE_PATTERN[code]); + if (error < bestMatch.error) { + bestMatch.code = code; + bestMatch.error = error; + } + } + bestMatch.end = i; + if (bestMatch.code === -1 || bestMatch.error > self.AVG_CODE_ERROR) { + return null; + } + if (self.CODE_PATTERN[bestMatch.code]) { + bestMatch.correction.bar = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.bar); + bestMatch.correction.space = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.space); + } + return bestMatch; + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +Code128Reader.prototype._correct = function (counter, correction) { + this._correctBars(counter, correction.bar, this.MODULE_INDICES.bar); + this._correctBars(counter, correction.space, this.MODULE_INDICES.space); +}; + +Code128Reader.prototype._findStart = function () { + var counter = [0, 0, 0, 0, 0, 0], + i, + self = this, + offset = self._nextSet(self._row), + isWhite = false, + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0, + correction: { + bar: 1, + space: 1 + } + }, + code, + error, + j, + sum; + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + sum = 0; + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + for (code = self.START_CODE_A; code <= self.START_CODE_C; code++) { + error = self._matchPattern(counter, self.CODE_PATTERN[code]); + if (error < bestMatch.error) { + bestMatch.code = code; + bestMatch.error = error; + } + } + if (bestMatch.error < self.AVG_CODE_ERROR) { + bestMatch.start = i - sum; + bestMatch.end = i; + bestMatch.correction.bar = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.bar); + bestMatch.correction.space = calculateCorrection(self.CODE_PATTERN[bestMatch.code], counter, this.MODULE_INDICES.space); + return bestMatch; + } + + for (j = 0; j < 4; j++) { + counter[j] = counter[j + 2]; + } + counter[4] = 0; + counter[5] = 0; + counterPos--; + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +Code128Reader.prototype._decode = function () { + var self = this, + startInfo = self._findStart(), + code = null, + done = false, + result = [], + multiplier = 0, + checksum = 0, + codeset, + rawResult = [], + decodedCodes = [], + shiftNext = false, + unshift, + removeLastCharacter = true; + + if (startInfo === null) { + return null; + } + code = { + code: startInfo.code, + start: startInfo.start, + end: startInfo.end, + correction: { + bar: startInfo.correction.bar, + space: startInfo.correction.space + } + }; + decodedCodes.push(code); + checksum = code.code; + switch (code.code) { + case self.START_CODE_A: + codeset = self.CODE_A; + break; + case self.START_CODE_B: + codeset = self.CODE_B; + break; + case self.START_CODE_C: + codeset = self.CODE_C; + break; + default: + return null; + } + + while (!done) { + unshift = shiftNext; + shiftNext = false; + code = self._decodeCode(code.end, code.correction); + if (code !== null) { + if (code.code !== self.STOP_CODE) { + removeLastCharacter = true; + } + + if (code.code !== self.STOP_CODE) { + rawResult.push(code.code); + multiplier++; + checksum += multiplier * code.code; + } + decodedCodes.push(code); + + switch (codeset) { + case self.CODE_A: + if (code.code < 64) { + result.push(String.fromCharCode(32 + code.code)); + } else if (code.code < 96) { + result.push(String.fromCharCode(code.code - 64)); + } else { + if (code.code !== self.STOP_CODE) { + removeLastCharacter = false; + } + switch (code.code) { + case self.CODE_SHIFT: + shiftNext = true; + codeset = self.CODE_B; + break; + case self.CODE_B: + codeset = self.CODE_B; + break; + case self.CODE_C: + codeset = self.CODE_C; + break; + case self.STOP_CODE: + done = true; + break; + } + } + break; + case self.CODE_B: + if (code.code < 96) { + result.push(String.fromCharCode(32 + code.code)); + } else { + if (code.code !== self.STOP_CODE) { + removeLastCharacter = false; + } + switch (code.code) { + case self.CODE_SHIFT: + shiftNext = true; + codeset = self.CODE_A; + break; + case self.CODE_A: + codeset = self.CODE_A; + break; + case self.CODE_C: + codeset = self.CODE_C; + break; + case self.STOP_CODE: + done = true; + break; + } + } + break; + case self.CODE_C: + if (code.code < 100) { + result.push(code.code < 10 ? "0" + code.code : code.code); + } else { + if (code.code !== self.STOP_CODE) { + removeLastCharacter = false; + } + switch (code.code) { + case self.CODE_A: + codeset = self.CODE_A; + break; + case self.CODE_B: + codeset = self.CODE_B; + break; + case self.STOP_CODE: + done = true; + break; + } + } + break; + } + } else { + done = true; + } + if (unshift) { + codeset = codeset === self.CODE_A ? self.CODE_B : self.CODE_A; + } + } + + if (code === null) { + return null; + } + + code.end = self._nextUnset(self._row, code.end); + if (!self._verifyTrailingWhitespace(code)) { + return null; + } + + checksum -= multiplier * rawResult[rawResult.length - 1]; + if (checksum % 103 !== rawResult[rawResult.length - 1]) { + return null; + } + + if (!result.length) { + return null; + } + + // remove last code from result (checksum) + if (removeLastCharacter) { + result.splice(result.length - 1, 1); + } + + return { + code: result.join(""), + start: startInfo.start, + end: code.end, + codeset: codeset, + startInfo: startInfo, + decodedCodes: decodedCodes, + endInfo: code + }; +}; + +__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype._verifyTrailingWhitespace = function (endInfo) { + var self = this, + trailingWhitespaceEnd; + + trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2; + if (trailingWhitespaceEnd < self._row.length) { + if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) { + return endInfo; + } + } + return null; +}; + +function calculateCorrection(expected, normalized, indices) { + var length = indices.length, + sumNormalized = 0, + sumExpected = 0; + + while (length--) { + sumExpected += expected[indices[length]]; + sumNormalized += normalized[indices[length]]; + } + return sumExpected / sumNormalized; +} + +/* harmony default export */ __webpack_exports__["a"] = Code128Reader; + +/***/ }), +/* 70 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__code_39_reader__ = __webpack_require__(31); + + +function Code39VINReader() { + __WEBPACK_IMPORTED_MODULE_0__code_39_reader__["a" /* default */].call(this); +} + +var patterns = { + IOQ: /[IOQ]/g, + AZ09: /[A-Z0-9]{17}/ +}; + +Code39VINReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__code_39_reader__["a" /* default */].prototype); +Code39VINReader.prototype.constructor = Code39VINReader; + +// Cribbed from: +// https://github.com/zxing/zxing/blob/master/core/src/main/java/com/google/zxing/client/result/VINResultParser.java +Code39VINReader.prototype._decode = function () { + var result = __WEBPACK_IMPORTED_MODULE_0__code_39_reader__["a" /* default */].prototype._decode.apply(this); + if (!result) { + return null; + } + + var code = result.code; + + if (!code) { + return null; + } + + code = code.replace(patterns.IOQ, ''); + + if (!code.match(patterns.AZ09)) { + if (true) { + console.log('Failed AZ09 pattern code:', code); + } + return null; + } + + if (!this._checkChecksum(code)) { + return null; + } + + result.code = code; + return result; +}; + +Code39VINReader.prototype._checkChecksum = function (code) { + // TODO + return !!code; +}; + +/* harmony default export */ __webpack_exports__["a"] = Code39VINReader; + +/***/ }), +/* 71 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__barcode_reader__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_array_helper__ = __webpack_require__(3); + + + +function Code93Reader() { + __WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].call(this); +} + +var ALPHABETH_STRING = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*"; + +var properties = { + ALPHABETH_STRING: { value: ALPHABETH_STRING }, + ALPHABET: { value: ALPHABETH_STRING.split('').map(function (char) { + return char.charCodeAt(0); + }) }, + CHARACTER_ENCODINGS: { value: [0x114, 0x148, 0x144, 0x142, 0x128, 0x124, 0x122, 0x150, 0x112, 0x10A, 0x1A8, 0x1A4, 0x1A2, 0x194, 0x192, 0x18A, 0x168, 0x164, 0x162, 0x134, 0x11A, 0x158, 0x14C, 0x146, 0x12C, 0x116, 0x1B4, 0x1B2, 0x1AC, 0x1A6, 0x196, 0x19A, 0x16C, 0x166, 0x136, 0x13A, 0x12E, 0x1D4, 0x1D2, 0x1CA, 0x16E, 0x176, 0x1AE, 0x126, 0x1DA, 0x1D6, 0x132, 0x15E] }, + ASTERISK: { value: 0x15E }, + FORMAT: { value: "code_93", writeable: false } +}; + +Code93Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__barcode_reader__["a" /* default */].prototype, properties); +Code93Reader.prototype.constructor = Code93Reader; + +Code93Reader.prototype._decode = function () { + var self = this, + counters = [0, 0, 0, 0, 0, 0], + result = [], + start = self._findStart(), + decodedChar, + lastStart, + pattern, + nextStart; + + if (!start) { + return null; + } + nextStart = self._nextSet(self._row, start.end); + + do { + counters = self._toCounters(nextStart, counters); + pattern = self._toPattern(counters); + if (pattern < 0) { + return null; + } + decodedChar = self._patternToChar(pattern); + if (decodedChar < 0) { + return null; + } + result.push(decodedChar); + lastStart = nextStart; + nextStart += __WEBPACK_IMPORTED_MODULE_1__common_array_helper__["a" /* default */].sum(counters); + nextStart = self._nextSet(self._row, nextStart); + } while (decodedChar !== '*'); + result.pop(); + + if (!result.length) { + return null; + } + + if (!self._verifyEnd(lastStart, nextStart, counters)) { + return null; + } + + if (!self._verifyChecksums(result)) { + return null; + } + + result = result.slice(0, result.length - 2); + if ((result = self._decodeExtended(result)) === null) { + return null; + }; + + return { + code: result.join(""), + start: start.start, + end: nextStart, + startInfo: start, + decodedCodes: result + }; +}; + +Code93Reader.prototype._verifyEnd = function (lastStart, nextStart) { + if (lastStart === nextStart || !this._row[nextStart]) { + return false; + } + return true; +}; + +Code93Reader.prototype._patternToChar = function (pattern) { + var i, + self = this; + + for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) { + if (self.CHARACTER_ENCODINGS[i] === pattern) { + return String.fromCharCode(self.ALPHABET[i]); + } + } + return -1; +}; + +Code93Reader.prototype._toPattern = function (counters) { + var numCounters = counters.length; + var pattern = 0; + var sum = 0; + for (var i = 0; i < numCounters; i++) { + sum += counters[i]; + } + + for (var _i = 0; _i < numCounters; _i++) { + var normalized = Math.round(counters[_i] * 9 / sum); + if (normalized < 1 || normalized > 4) { + return -1; + } + if ((_i & 1) === 0) { + for (var j = 0; j < normalized; j++) { + pattern = pattern << 1 | 1; + } + } else { + pattern <<= normalized; + } + } + + return pattern; +}; + +Code93Reader.prototype._findStart = function () { + var self = this, + offset = self._nextSet(self._row), + patternStart = offset, + counter = [0, 0, 0, 0, 0, 0], + counterPos = 0, + isWhite = false, + i, + j, + whiteSpaceMustStart; + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + // find start pattern + if (self._toPattern(counter) === self.ASTERISK) { + whiteSpaceMustStart = Math.floor(Math.max(0, patternStart - (i - patternStart) / 4)); + if (self._matchRange(whiteSpaceMustStart, patternStart, 0)) { + return { + start: patternStart, + end: i + }; + } + } + + patternStart += counter[0] + counter[1]; + for (j = 0; j < 4; j++) { + counter[j] = counter[j + 2]; + } + counter[4] = 0; + counter[5] = 0; + counterPos--; + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +Code93Reader.prototype._decodeExtended = function (charArray) { + var length = charArray.length; + var result = []; + for (var i = 0; i < length; i++) { + var char = charArray[i]; + if (char >= 'a' && char <= 'd') { + if (i > length - 2) { + return null; + } + var nextChar = charArray[++i]; + var nextCharCode = nextChar.charCodeAt(0); + var decodedChar = void 0; + switch (char) { + case 'a': + if (nextChar >= 'A' && nextChar <= 'Z') { + decodedChar = String.fromCharCode(nextCharCode - 64); + } else { + return null; + } + break; + case 'b': + if (nextChar >= 'A' && nextChar <= 'E') { + decodedChar = String.fromCharCode(nextCharCode - 38); + } else if (nextChar >= 'F' && nextChar <= 'J') { + decodedChar = String.fromCharCode(nextCharCode - 11); + } else if (nextChar >= 'K' && nextChar <= 'O') { + decodedChar = String.fromCharCode(nextCharCode + 16); + } else if (nextChar >= 'P' && nextChar <= 'S') { + decodedChar = String.fromCharCode(nextCharCode + 43); + } else if (nextChar >= 'T' && nextChar <= 'Z') { + decodedChar = String.fromCharCode(127); + } else { + return null; + } + break; + case 'c': + if (nextChar >= 'A' && nextChar <= 'O') { + decodedChar = String.fromCharCode(nextCharCode - 32); + } else if (nextChar === 'Z') { + decodedChar = ':'; + } else { + return null; + } + break; + case 'd': + if (nextChar >= 'A' && nextChar <= 'Z') { + decodedChar = String.fromCharCode(nextCharCode + 32); + } else { + return null; + } + break; + } + result.push(decodedChar); + } else { + result.push(char); + } + } + return result; +}; + +Code93Reader.prototype._verifyChecksums = function (charArray) { + return this._matchCheckChar(charArray, charArray.length - 2, 20) && this._matchCheckChar(charArray, charArray.length - 1, 15); +}; + +Code93Reader.prototype._matchCheckChar = function (charArray, index, maxWeight) { + var _this = this; + + var arrayToCheck = charArray.slice(0, index); + var length = arrayToCheck.length; + var weightedSums = arrayToCheck.reduce(function (sum, char, i) { + var weight = (i * -1 + (length - 1)) % maxWeight + 1; + var value = _this.ALPHABET.indexOf(char.charCodeAt(0)); + return sum + weight * value; + }, 0); + + var checkChar = this.ALPHABET[weightedSums % 47]; + return checkChar === charArray[index].charCodeAt(0); +}; + +/* harmony default export */ __webpack_exports__["a"] = Code93Reader; + +/***/ }), +/* 72 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4); + + +function EAN2Reader() { + __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].call(this); +} + +var properties = { + FORMAT: { value: "ean_2", writeable: false } +}; + +EAN2Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype, properties); +EAN2Reader.prototype.constructor = EAN2Reader; + +EAN2Reader.prototype.decode = function (row, start) { + this._row = row; + var counters = [0, 0, 0, 0], + codeFrequency = 0, + i = 0, + offset = start, + end = this._row.length, + code, + result = [], + decodedCodes = []; + + for (i = 0; i < 2 && offset < end; i++) { + code = this._decodeCode(offset); + if (!code) { + return null; + } + decodedCodes.push(code); + result.push(code.code % 10); + if (code.code >= this.CODE_G_START) { + codeFrequency |= 1 << 1 - i; + } + if (i != 1) { + offset = this._nextSet(this._row, code.end); + offset = this._nextUnset(this._row, offset); + } + } + + if (result.length != 2 || parseInt(result.join("")) % 4 !== codeFrequency) { + return null; + } + return { + code: result.join(""), + decodedCodes: decodedCodes, + end: code.end + }; +}; + +/* harmony default export */ __webpack_exports__["a"] = EAN2Reader; + +/***/ }), +/* 73 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4); + + +function EAN5Reader() { + __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].call(this); +} + +var properties = { + FORMAT: { value: "ean_5", writeable: false } +}; + +var CHECK_DIGIT_ENCODINGS = [24, 20, 18, 17, 12, 6, 3, 10, 9, 5]; + +EAN5Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype, properties); +EAN5Reader.prototype.constructor = EAN5Reader; + +EAN5Reader.prototype.decode = function (row, start) { + this._row = row; + var counters = [0, 0, 0, 0], + codeFrequency = 0, + i = 0, + offset = start, + end = this._row.length, + code, + result = [], + decodedCodes = []; + + for (i = 0; i < 5 && offset < end; i++) { + code = this._decodeCode(offset); + if (!code) { + return null; + } + decodedCodes.push(code); + result.push(code.code % 10); + if (code.code >= this.CODE_G_START) { + codeFrequency |= 1 << 4 - i; + } + if (i != 4) { + offset = this._nextSet(this._row, code.end); + offset = this._nextUnset(this._row, offset); + } + } + + if (result.length != 5) { + return null; + } + + if (extensionChecksum(result) !== determineCheckDigit(codeFrequency)) { + return null; + } + return { + code: result.join(""), + decodedCodes: decodedCodes, + end: code.end + }; +}; + +function determineCheckDigit(codeFrequency) { + var i; + for (i = 0; i < 10; i++) { + if (codeFrequency === CHECK_DIGIT_ENCODINGS[i]) { + return i; + } + } + return null; +} + +function extensionChecksum(result) { + var length = result.length, + sum = 0, + i; + + for (i = length - 2; i >= 0; i -= 2) { + sum += result[i]; + } + sum *= 3; + for (i = length - 1; i >= 0; i -= 2) { + sum += result[i]; + } + sum *= 3; + return sum % 10; +} + +/* harmony default export */ __webpack_exports__["a"] = EAN5Reader; + +/***/ }), +/* 74 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4); + + +function EAN8Reader(opts, supplements) { + __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].call(this, opts, supplements); +} + +var properties = { + FORMAT: { value: "ean_8", writeable: false } +}; + +EAN8Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype, properties); +EAN8Reader.prototype.constructor = EAN8Reader; + +EAN8Reader.prototype._decodePayload = function (code, result, decodedCodes) { + var i, + self = this; + + for (i = 0; i < 4; i++) { + code = self._decodeCode(code.end, self.CODE_G_START); + if (!code) { + return null; + } + result.push(code.code); + decodedCodes.push(code); + } + + code = self._findPattern(self.MIDDLE_PATTERN, code.end, true, false); + if (code === null) { + return null; + } + decodedCodes.push(code); + + for (i = 0; i < 4; i++) { + code = self._decodeCode(code.end, self.CODE_G_START); + if (!code) { + return null; + } + decodedCodes.push(code); + result.push(code.code); + } + + return code; +}; + +/* harmony default export */ __webpack_exports__["a"] = EAN8Reader; + +/***/ }), +/* 75 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge__ = __webpack_require__(28); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_merge__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__barcode_reader__ = __webpack_require__(1); + + + + +function I2of5Reader(opts) { + opts = __WEBPACK_IMPORTED_MODULE_0_lodash_merge___default()(getDefaulConfig(), opts); + __WEBPACK_IMPORTED_MODULE_1__barcode_reader__["a" /* default */].call(this, opts); + this.barSpaceRatio = [1, 1]; + if (opts.normalizeBarSpaceWidth) { + this.SINGLE_CODE_ERROR = 0.38; + this.AVG_CODE_ERROR = 0.09; + } +} + +function getDefaulConfig() { + var config = {}; + + Object.keys(I2of5Reader.CONFIG_KEYS).forEach(function (key) { + config[key] = I2of5Reader.CONFIG_KEYS[key].default; + }); + return config; +} + +var N = 1, + W = 3, + properties = { + START_PATTERN: { value: [N, N, N, N] }, + STOP_PATTERN: { value: [N, N, W] }, + CODE_PATTERN: { value: [[N, N, W, W, N], [W, N, N, N, W], [N, W, N, N, W], [W, W, N, N, N], [N, N, W, N, W], [W, N, W, N, N], [N, W, W, N, N], [N, N, N, W, W], [W, N, N, W, N], [N, W, N, W, N]] }, + SINGLE_CODE_ERROR: { value: 0.78, writable: true }, + AVG_CODE_ERROR: { value: 0.38, writable: true }, + MAX_CORRECTION_FACTOR: { value: 5 }, + FORMAT: { value: "i2of5" } +}; + +I2of5Reader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_1__barcode_reader__["a" /* default */].prototype, properties); +I2of5Reader.prototype.constructor = I2of5Reader; + +I2of5Reader.prototype._matchPattern = function (counter, code) { + if (this.config.normalizeBarSpaceWidth) { + var i, + counterSum = [0, 0], + codeSum = [0, 0], + correction = [0, 0], + correctionRatio = this.MAX_CORRECTION_FACTOR, + correctionRatioInverse = 1 / correctionRatio; + + for (i = 0; i < counter.length; i++) { + counterSum[i % 2] += counter[i]; + codeSum[i % 2] += code[i]; + } + correction[0] = codeSum[0] / counterSum[0]; + correction[1] = codeSum[1] / counterSum[1]; + + correction[0] = Math.max(Math.min(correction[0], correctionRatio), correctionRatioInverse); + correction[1] = Math.max(Math.min(correction[1], correctionRatio), correctionRatioInverse); + this.barSpaceRatio = correction; + for (i = 0; i < counter.length; i++) { + counter[i] *= this.barSpaceRatio[i % 2]; + } + } + return __WEBPACK_IMPORTED_MODULE_1__barcode_reader__["a" /* default */].prototype._matchPattern.call(this, counter, code); +}; + +I2of5Reader.prototype._findPattern = function (pattern, offset, isWhite, tryHarder) { + var counter = [], + self = this, + i, + counterPos = 0, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0 + }, + error, + j, + sum, + normalized, + epsilon = self.AVG_CODE_ERROR; + + isWhite = isWhite || false; + tryHarder = tryHarder || false; + + if (!offset) { + offset = self._nextSet(self._row); + } + + for (i = 0; i < pattern.length; i++) { + counter[i] = 0; + } + + for (i = offset; i < self._row.length; i++) { + if (self._row[i] ^ isWhite) { + counter[counterPos]++; + } else { + if (counterPos === counter.length - 1) { + sum = 0; + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + error = self._matchPattern(counter, pattern); + if (error < epsilon) { + bestMatch.error = error; + bestMatch.start = i - sum; + bestMatch.end = i; + return bestMatch; + } + if (tryHarder) { + for (j = 0; j < counter.length - 2; j++) { + counter[j] = counter[j + 2]; + } + counter[counter.length - 2] = 0; + counter[counter.length - 1] = 0; + counterPos--; + } else { + return null; + } + } else { + counterPos++; + } + counter[counterPos] = 1; + isWhite = !isWhite; + } + } + return null; +}; + +I2of5Reader.prototype._findStart = function () { + var self = this, + leadingWhitespaceStart, + offset = self._nextSet(self._row), + startInfo, + narrowBarWidth = 1; + + while (!startInfo) { + startInfo = self._findPattern(self.START_PATTERN, offset, false, true); + if (!startInfo) { + return null; + } + narrowBarWidth = Math.floor((startInfo.end - startInfo.start) / 4); + leadingWhitespaceStart = startInfo.start - narrowBarWidth * 10; + if (leadingWhitespaceStart >= 0) { + if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) { + return startInfo; + } + } + offset = startInfo.end; + startInfo = null; + } +}; + +I2of5Reader.prototype._verifyTrailingWhitespace = function (endInfo) { + var self = this, + trailingWhitespaceEnd; + + trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2; + if (trailingWhitespaceEnd < self._row.length) { + if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) { + return endInfo; + } + } + return null; +}; + +I2of5Reader.prototype._findEnd = function () { + var self = this, + endInfo, + tmp; + + self._row.reverse(); + endInfo = self._findPattern(self.STOP_PATTERN); + self._row.reverse(); + + if (endInfo === null) { + return null; + } + + // reverse numbers + tmp = endInfo.start; + endInfo.start = self._row.length - endInfo.end; + endInfo.end = self._row.length - tmp; + + return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null; +}; + +I2of5Reader.prototype._decodePair = function (counterPair) { + var i, + code, + codes = [], + self = this; + + for (i = 0; i < counterPair.length; i++) { + code = self._decodeCode(counterPair[i]); + if (!code) { + return null; + } + codes.push(code); + } + return codes; +}; + +I2of5Reader.prototype._decodeCode = function (counter) { + var j, + self = this, + sum = 0, + normalized, + error, + epsilon = self.AVG_CODE_ERROR, + code, + bestMatch = { + error: Number.MAX_VALUE, + code: -1, + start: 0, + end: 0 + }; + + for (j = 0; j < counter.length; j++) { + sum += counter[j]; + } + for (code = 0; code < self.CODE_PATTERN.length; code++) { + error = self._matchPattern(counter, self.CODE_PATTERN[code]); + if (error < bestMatch.error) { + bestMatch.code = code; + bestMatch.error = error; + } + } + if (bestMatch.error < epsilon) { + return bestMatch; + } +}; + +I2of5Reader.prototype._decodePayload = function (counters, result, decodedCodes) { + var i, + self = this, + pos = 0, + counterLength = counters.length, + counterPair = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]], + codes; + + while (pos < counterLength) { + for (i = 0; i < 5; i++) { + counterPair[0][i] = counters[pos] * this.barSpaceRatio[0]; + counterPair[1][i] = counters[pos + 1] * this.barSpaceRatio[1]; + pos += 2; + } + codes = self._decodePair(counterPair); + if (!codes) { + return null; + } + for (i = 0; i < codes.length; i++) { + result.push(codes[i].code + ""); + decodedCodes.push(codes[i]); + } + } + return codes; +}; + +I2of5Reader.prototype._verifyCounterLength = function (counters) { + return counters.length % 10 === 0; +}; + +I2of5Reader.prototype._decode = function () { + var startInfo, + endInfo, + self = this, + code, + result = [], + decodedCodes = [], + counters; + + startInfo = self._findStart(); + if (!startInfo) { + return null; + } + decodedCodes.push(startInfo); + + endInfo = self._findEnd(); + if (!endInfo) { + return null; + } + + counters = self._fillCounters(startInfo.end, endInfo.start, false); + if (!self._verifyCounterLength(counters)) { + return null; + } + code = self._decodePayload(counters, result, decodedCodes); + if (!code) { + return null; + } + if (result.length % 2 !== 0 || result.length < 6) { + return null; + } + + decodedCodes.push(endInfo); + return { + code: result.join(""), + start: startInfo.start, + end: endInfo.end, + startInfo: startInfo, + decodedCodes: decodedCodes + }; +}; + +I2of5Reader.CONFIG_KEYS = { + normalizeBarSpaceWidth: { + 'type': 'boolean', + 'default': false, + 'description': 'If true, the reader tries to normalize the' + 'width-difference between bars and spaces' + } +}; + +/* harmony default export */ __webpack_exports__["a"] = I2of5Reader; + +/***/ }), +/* 76 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4); + + +function UPCEReader(opts, supplements) { + __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].call(this, opts, supplements); +} + +var properties = { + CODE_FREQUENCY: { value: [[56, 52, 50, 49, 44, 38, 35, 42, 41, 37], [7, 11, 13, 14, 19, 25, 28, 21, 22, 26]] }, + STOP_PATTERN: { value: [1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7] }, + FORMAT: { value: "upc_e", writeable: false } +}; + +UPCEReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype, properties); +UPCEReader.prototype.constructor = UPCEReader; + +UPCEReader.prototype._decodePayload = function (code, result, decodedCodes) { + var i, + self = this, + codeFrequency = 0x0; + + for (i = 0; i < 6; i++) { + code = self._decodeCode(code.end); + if (!code) { + return null; + } + if (code.code >= self.CODE_G_START) { + code.code = code.code - self.CODE_G_START; + codeFrequency |= 1 << 5 - i; + } + result.push(code.code); + decodedCodes.push(code); + } + if (!self._determineParity(codeFrequency, result)) { + return null; + } + + return code; +}; + +UPCEReader.prototype._determineParity = function (codeFrequency, result) { + var i, nrSystem; + + for (nrSystem = 0; nrSystem < this.CODE_FREQUENCY.length; nrSystem++) { + for (i = 0; i < this.CODE_FREQUENCY[nrSystem].length; i++) { + if (codeFrequency === this.CODE_FREQUENCY[nrSystem][i]) { + result.unshift(nrSystem); + result.push(i); + return true; + } + } + } + return false; +}; + +UPCEReader.prototype._convertToUPCA = function (result) { + var upca = [result[0]], + lastDigit = result[result.length - 2]; + + if (lastDigit <= 2) { + upca = upca.concat(result.slice(1, 3)).concat([lastDigit, 0, 0, 0, 0]).concat(result.slice(3, 6)); + } else if (lastDigit === 3) { + upca = upca.concat(result.slice(1, 4)).concat([0, 0, 0, 0, 0]).concat(result.slice(4, 6)); + } else if (lastDigit === 4) { + upca = upca.concat(result.slice(1, 5)).concat([0, 0, 0, 0, 0, result[5]]); + } else { + upca = upca.concat(result.slice(1, 6)).concat([0, 0, 0, 0, lastDigit]); + } + + upca.push(result[result.length - 1]); + return upca; +}; + +UPCEReader.prototype._checksum = function (result) { + return __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype._checksum.call(this, this._convertToUPCA(result)); +}; + +UPCEReader.prototype._findEnd = function (offset, isWhite) { + isWhite = true; + return __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype._findEnd.call(this, offset, isWhite); +}; + +UPCEReader.prototype._verifyTrailingWhitespace = function (endInfo) { + var self = this, + trailingWhitespaceEnd; + + trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start) / 2; + if (trailingWhitespaceEnd < self._row.length) { + if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) { + return endInfo; + } + } +}; + +/* harmony default export */ __webpack_exports__["a"] = UPCEReader; + +/***/ }), +/* 77 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ean_reader__ = __webpack_require__(4); + + +function UPCReader(opts, supplements) { + __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].call(this, opts, supplements); +} + +var properties = { + FORMAT: { value: "upc_a", writeable: false } +}; + +UPCReader.prototype = Object.create(__WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype, properties); +UPCReader.prototype.constructor = UPCReader; + +UPCReader.prototype._decode = function () { + var result = __WEBPACK_IMPORTED_MODULE_0__ean_reader__["a" /* default */].prototype._decode.call(this); + + if (result && result.code && result.code.length === 13 && result.code.charAt(0) === "0") { + result.code = result.code.substring(1); + return result; + } + return null; +}; + +/* harmony default export */ __webpack_exports__["a"] = UPCReader; + +/***/ }), +/* 78 */ +/***/ (function(module, exports) { + +module.exports = copy + +/** + * Copy the values from one mat2 to another + * + * @alias mat2.copy + * @param {mat2} out the receiving matrix + * @param {mat2} a the source matrix + * @returns {mat2} out + */ +function copy(out, a) { + out[0] = a[0] + out[1] = a[1] + out[2] = a[2] + out[3] = a[3] + return out +} + + +/***/ }), +/* 79 */ +/***/ (function(module, exports) { + +module.exports = create + +/** + * Creates a new identity mat2 + * + * @alias mat2.create + * @returns {mat2} a new 2x2 matrix + */ +function create() { + var out = new Float32Array(4) + out[0] = 1 + out[1] = 0 + out[2] = 0 + out[3] = 1 + return out +} + + +/***/ }), +/* 80 */ +/***/ (function(module, exports) { + +module.exports = invert + +/** + * Inverts a mat2 + * + * @alias mat2.invert + * @param {mat2} out the receiving matrix + * @param {mat2} a the source matrix + * @returns {mat2} out + */ +function invert(out, a) { + var a0 = a[0] + var a1 = a[1] + var a2 = a[2] + var a3 = a[3] + var det = a0 * a3 - a2 * a1 + + if (!det) return null + det = 1.0 / det + + out[0] = a3 * det + out[1] = -a1 * det + out[2] = -a2 * det + out[3] = a0 * det + + return out +} + + +/***/ }), +/* 81 */ +/***/ (function(module, exports) { + +module.exports = scale + +/** + * Scales a vec2 by a scalar number + * + * @param {vec2} out the receiving vector + * @param {vec2} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {vec2} out + */ +function scale(out, a, b) { + out[0] = a[0] * b + out[1] = a[1] * b + return out +} + +/***/ }), +/* 82 */ +/***/ (function(module, exports) { + +module.exports = transformMat2 + +/** + * Transforms the vec2 with a mat2 + * + * @param {vec2} out the receiving vector + * @param {vec2} a the vector to transform + * @param {mat2} m matrix to transform with + * @returns {vec2} out + */ +function transformMat2(out, a, m) { + var x = a[0], + y = a[1] + out[0] = m[0] * x + m[2] * y + out[1] = m[1] * x + m[3] * y + return out +} + +/***/ }), +/* 83 */ +/***/ (function(module, exports) { + +module.exports = clone; + +/** + * Creates a new vec3 initialized with values from an existing vector + * + * @param {vec3} a vector to clone + * @returns {vec3} a new 3D vector + */ +function clone(a) { + var out = new Float32Array(3) + out[0] = a[0] + out[1] = a[1] + out[2] = a[2] + return out +} + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __webpack_require__) { + +var hashClear = __webpack_require__(122), + hashDelete = __webpack_require__(123), + hashGet = __webpack_require__(124), + hashHas = __webpack_require__(125), + hashSet = __webpack_require__(126); + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +module.exports = Hash; + + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(10), + stackClear = __webpack_require__(149), + stackDelete = __webpack_require__(150), + stackGet = __webpack_require__(151), + stackHas = __webpack_require__(152), + stackSet = __webpack_require__(153); + +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +module.exports = Stack; + + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(5); + +/** Built-in value references. */ +var Uint8Array = root.Uint8Array; + +module.exports = Uint8Array; + + +/***/ }), +/* 87 */ +/***/ (function(module, exports) { + +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} + +module.exports = apply; + + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseTimes = __webpack_require__(107), + isArguments = __webpack_require__(18), + isArray = __webpack_require__(2), + isBuffer = __webpack_require__(44), + isIndex = __webpack_require__(15), + isTypedArray = __webpack_require__(45); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} + +module.exports = arrayLikeKeys; + + +/***/ }), +/* 89 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +module.exports = arrayMap; + + +/***/ }), +/* 90 */ +/***/ (function(module, exports) { + +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} + +module.exports = arrayPush; + + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(0); + +/** Built-in value references. */ +var objectCreate = Object.create; + +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; +}()); + +module.exports = baseCreate; + + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayPush = __webpack_require__(90), + isFlattenable = __webpack_require__(128); + +/** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ +function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + + predicate || (predicate = isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; +} + +module.exports = baseFlatten; + + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __webpack_require__) { + +var createBaseFor = __webpack_require__(117); + +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +module.exports = baseFor; + + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + +var castPath = __webpack_require__(13), + toKey = __webpack_require__(23); + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; + + +/***/ }), +/* 95 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHasIn(object, key) { + return object != null && key in Object(object); +} + +module.exports = baseHasIn; + + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(8), + isObjectLike = __webpack_require__(6); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]'; + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} + +module.exports = baseIsArguments; + + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + +var isFunction = __webpack_require__(25), + isMasked = __webpack_require__(132), + isObject = __webpack_require__(0), + toSource = __webpack_require__(155); + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +module.exports = baseIsNative; + + +/***/ }), +/* 98 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(8), + isLength = __webpack_require__(26), + isObjectLike = __webpack_require__(6); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = +typedArrayTags[errorTag] = typedArrayTags[funcTag] = +typedArrayTags[mapTag] = typedArrayTags[numberTag] = +typedArrayTags[objectTag] = typedArrayTags[regexpTag] = +typedArrayTags[setTag] = typedArrayTags[stringTag] = +typedArrayTags[weakMapTag] = false; + +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} + +module.exports = baseIsTypedArray; + + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(0), + isPrototype = __webpack_require__(40), + nativeKeysIn = __webpack_require__(144); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} + +module.exports = baseKeysIn; + + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __webpack_require__) { + +var Stack = __webpack_require__(85), + assignMergeValue = __webpack_require__(35), + baseFor = __webpack_require__(93), + baseMergeDeep = __webpack_require__(101), + isObject = __webpack_require__(0), + keysIn = __webpack_require__(46); + +/** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + if (isObject(srcValue)) { + stack || (stack = new Stack); + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer + ? customizer(object[key], srcValue, (key + ''), object, source, stack) + : undefined; + + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); +} + +module.exports = baseMerge; + + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + +var assignMergeValue = __webpack_require__(35), + cloneBuffer = __webpack_require__(111), + cloneTypedArray = __webpack_require__(112), + copyArray = __webpack_require__(113), + initCloneObject = __webpack_require__(127), + isArguments = __webpack_require__(18), + isArray = __webpack_require__(2), + isArrayLikeObject = __webpack_require__(159), + isBuffer = __webpack_require__(44), + isFunction = __webpack_require__(25), + isObject = __webpack_require__(0), + isPlainObject = __webpack_require__(160), + isTypedArray = __webpack_require__(45), + toPlainObject = __webpack_require__(164); + +/** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = object[key], + srcValue = source[key], + stacked = stack.get(srcValue); + + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer + ? customizer(objValue, srcValue, (key + ''), object, source, stack) + : undefined; + + var isCommon = newValue === undefined; + + if (isCommon) { + var isArr = isArray(srcValue), + isBuff = !isArr && isBuffer(srcValue), + isTyped = !isArr && !isBuff && isTypedArray(srcValue); + + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; + } + } + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) { + newValue = initCloneObject(srcValue); + } + } + else { + isCommon = false; + } + } + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); + } + assignMergeValue(object, key, newValue); +} + +module.exports = baseMergeDeep; + + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __webpack_require__) { + +var basePickBy = __webpack_require__(103), + hasIn = __webpack_require__(158); + +/** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ +function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); +} + +module.exports = basePick; + + +/***/ }), +/* 103 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGet = __webpack_require__(94), + baseSet = __webpack_require__(105), + castPath = __webpack_require__(13); + +/** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ +function basePickBy(object, paths, predicate) { + var index = -1, + length = paths.length, + result = {}; + + while (++index < length) { + var path = paths[index], + value = baseGet(object, path); + + if (predicate(value, path)) { + baseSet(result, castPath(path, object), value); + } + } + return result; +} + +module.exports = basePickBy; + + +/***/ }), +/* 104 */ +/***/ (function(module, exports, __webpack_require__) { + +var identity = __webpack_require__(43), + overRest = __webpack_require__(41), + setToString = __webpack_require__(42); + +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ +function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); +} + +module.exports = baseRest; + + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + +var assignValue = __webpack_require__(36), + castPath = __webpack_require__(13), + isIndex = __webpack_require__(15), + isObject = __webpack_require__(0), + toKey = __webpack_require__(23); + +/** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ +function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = toKey(path[index]), + newValue = value; + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject(objValue) + ? objValue + : (isIndex(path[index + 1]) ? [] : {}); + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; +} + +module.exports = baseSet; + + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + +var constant = __webpack_require__(156), + defineProperty = __webpack_require__(37), + identity = __webpack_require__(43); + +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); +}; + +module.exports = baseSetToString; + + +/***/ }), +/* 107 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} + +module.exports = baseTimes; + + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(11), + arrayMap = __webpack_require__(89), + isArray = __webpack_require__(2), + isSymbol = __webpack_require__(27); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = baseToString; + + +/***/ }), +/* 109 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +module.exports = baseUnary; + + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + +var Uint8Array = __webpack_require__(86); + +/** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ +function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; +} + +module.exports = cloneArrayBuffer; + + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(5); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined, + allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined; + +/** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ +function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + + buffer.copy(result); + return result; +} + +module.exports = cloneBuffer; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(29)(module))) + +/***/ }), +/* 112 */ +/***/ (function(module, exports, __webpack_require__) { + +var cloneArrayBuffer = __webpack_require__(110); + +/** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ +function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); +} + +module.exports = cloneTypedArray; + + +/***/ }), +/* 113 */ +/***/ (function(module, exports) { + +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} + +module.exports = copyArray; + + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __webpack_require__) { + +var assignValue = __webpack_require__(36), + baseAssignValue = __webpack_require__(21); + +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ +function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; +} + +module.exports = copyObject; + + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(5); + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +module.exports = coreJsData; + + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseRest = __webpack_require__(104), + isIterateeCall = __webpack_require__(129); + +/** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ +function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); +} + +module.exports = createAssigner; + + +/***/ }), +/* 117 */ +/***/ (function(module, exports) { + +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +module.exports = createBaseFor; + + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + +var flatten = __webpack_require__(157), + overRest = __webpack_require__(41), + setToString = __webpack_require__(42); + +/** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ +function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); +} + +module.exports = flatRest; + + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(11); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +module.exports = getRawTag; + + +/***/ }), +/* 120 */ +/***/ (function(module, exports) { + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +module.exports = getValue; + + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __webpack_require__) { + +var castPath = __webpack_require__(13), + isArguments = __webpack_require__(18), + isArray = __webpack_require__(2), + isIndex = __webpack_require__(15), + isLength = __webpack_require__(26), + toKey = __webpack_require__(23); + +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); +} + +module.exports = hasPath; + + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(16); + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} + +module.exports = hashClear; + + +/***/ }), +/* 123 */ +/***/ (function(module, exports) { + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} + +module.exports = hashDelete; + + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(16); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +module.exports = hashGet; + + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(16); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); +} + +module.exports = hashHas; + + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(16); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +module.exports = hashSet; + + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseCreate = __webpack_require__(91), + getPrototype = __webpack_require__(39), + isPrototype = __webpack_require__(40); + +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate(getPrototype(object)) + : {}; +} + +module.exports = initCloneObject; + + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(11), + isArguments = __webpack_require__(18), + isArray = __webpack_require__(2); + +/** Built-in value references. */ +var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; + +/** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ +function isFlattenable(value) { + return isArray(value) || isArguments(value) || + !!(spreadableSymbol && value && value[spreadableSymbol]); +} + +module.exports = isFlattenable; + + +/***/ }), +/* 129 */ +/***/ (function(module, exports, __webpack_require__) { + +var eq = __webpack_require__(17), + isArrayLike = __webpack_require__(24), + isIndex = __webpack_require__(15), + isObject = __webpack_require__(0); + +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; +} + +module.exports = isIterateeCall; + + +/***/ }), +/* 130 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArray = __webpack_require__(2), + isSymbol = __webpack_require__(27); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +module.exports = isKey; + + +/***/ }), +/* 131 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +module.exports = isKeyable; + + +/***/ }), +/* 132 */ +/***/ (function(module, exports, __webpack_require__) { + +var coreJsData = __webpack_require__(115); + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +module.exports = isMasked; + + +/***/ }), +/* 133 */ +/***/ (function(module, exports) { + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +module.exports = listCacheClear; + + +/***/ }), +/* 134 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(12); + +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +module.exports = listCacheDelete; + + +/***/ }), +/* 135 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(12); + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +module.exports = listCacheGet; + + +/***/ }), +/* 136 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(12); + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +module.exports = listCacheHas; + + +/***/ }), +/* 137 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(12); + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +module.exports = listCacheSet; + + +/***/ }), +/* 138 */ +/***/ (function(module, exports, __webpack_require__) { + +var Hash = __webpack_require__(84), + ListCache = __webpack_require__(10), + Map = __webpack_require__(33); + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +module.exports = mapCacheClear; + + +/***/ }), +/* 139 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(14); + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} + +module.exports = mapCacheDelete; + + +/***/ }), +/* 140 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(14); + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +module.exports = mapCacheGet; + + +/***/ }), +/* 141 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(14); + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +module.exports = mapCacheHas; + + +/***/ }), +/* 142 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(14); + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} + +module.exports = mapCacheSet; + + +/***/ }), +/* 143 */ +/***/ (function(module, exports, __webpack_require__) { + +var memoize = __webpack_require__(161); + +/** Used as the maximum memoize cache size. */ +var MAX_MEMOIZE_SIZE = 500; + +/** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ +function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; +} + +module.exports = memoizeCapped; + + +/***/ }), +/* 144 */ +/***/ (function(module, exports) { + +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} + +module.exports = nativeKeysIn; + + +/***/ }), +/* 145 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(38); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); + +module.exports = nodeUtil; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(29)(module))) + +/***/ }), +/* 146 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +module.exports = objectToString; + + +/***/ }), +/* 147 */ +/***/ (function(module, exports) { + +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +module.exports = overArg; + + +/***/ }), +/* 148 */ +/***/ (function(module, exports) { + +/** Used to detect hot functions by number of calls within a span of milliseconds. */ +var HOT_COUNT = 800, + HOT_SPAN = 16; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeNow = Date.now; + +/** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ +function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; +} + +module.exports = shortOut; + + +/***/ }), +/* 149 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(10); + +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; +} + +module.exports = stackClear; + + +/***/ }), +/* 150 */ +/***/ (function(module, exports) { + +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; +} + +module.exports = stackDelete; + + +/***/ }), +/* 151 */ +/***/ (function(module, exports) { + +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} + +module.exports = stackGet; + + +/***/ }), +/* 152 */ +/***/ (function(module, exports) { + +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} + +module.exports = stackHas; + + +/***/ }), +/* 153 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(10), + Map = __webpack_require__(33), + MapCache = __webpack_require__(34); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} + +module.exports = stackSet; + + +/***/ }), +/* 154 */ +/***/ (function(module, exports, __webpack_require__) { + +var memoizeCapped = __webpack_require__(143); + +/** Used to match property names within property paths. */ +var reLeadingDot = /^\./, + rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = memoizeCapped(function(string) { + var result = []; + if (reLeadingDot.test(string)) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); + +module.exports = stringToPath; + + +/***/ }), +/* 155 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var funcProto = Function.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +module.exports = toSource; + + +/***/ }), +/* 156 */ +/***/ (function(module, exports) { + +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ +function constant(value) { + return function() { + return value; + }; +} + +module.exports = constant; + + +/***/ }), +/* 157 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseFlatten = __webpack_require__(92); + +/** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ +function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; +} + +module.exports = flatten; + + +/***/ }), +/* 158 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseHasIn = __webpack_require__(95), + hasPath = __webpack_require__(121); + +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ +function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); +} + +module.exports = hasIn; + + +/***/ }), +/* 159 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArrayLike = __webpack_require__(24), + isObjectLike = __webpack_require__(6); + +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); +} + +module.exports = isArrayLikeObject; + + +/***/ }), +/* 160 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(8), + getPrototype = __webpack_require__(39), + isObjectLike = __webpack_require__(6); + +/** `Object#toString` result references. */ +var objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to infer the `Object` constructor. */ +var objectCtorString = funcToString.call(Object); + +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; +} + +module.exports = isPlainObject; + + +/***/ }), +/* 161 */ +/***/ (function(module, exports, __webpack_require__) { + +var MapCache = __webpack_require__(34); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; +} + +// Expose `MapCache`. +memoize.Cache = MapCache; + +module.exports = memoize; + + +/***/ }), +/* 162 */ +/***/ (function(module, exports, __webpack_require__) { + +var basePick = __webpack_require__(102), + flatRest = __webpack_require__(118); + +/** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ +var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); +}); + +module.exports = pick; + + +/***/ }), +/* 163 */ +/***/ (function(module, exports) { + +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} + +module.exports = stubFalse; + + +/***/ }), +/* 164 */ +/***/ (function(module, exports, __webpack_require__) { + +var copyObject = __webpack_require__(114), + keysIn = __webpack_require__(46); + +/** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ +function toPlainObject(value) { + return copyObject(value, keysIn(value)); +} + +module.exports = toPlainObject; + + +/***/ }), +/* 165 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseToString = __webpack_require__(108); + +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : baseToString(value); +} + +module.exports = toString; + + +/***/ }), +/* 166 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(48); + + +/***/ }) +/******/ ]) +}); +; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9teU1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIDc1NjBjYzQ5MjcyMzFiMmUzNzg5Iiwid2VicGFjazovLy8uL34vbG9kYXNoL2lzT2JqZWN0LmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvYmFyY29kZV9yZWFkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tbW9uL2FycmF5X2hlbHBlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcmVhZGVyL2Vhbl9yZWFkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3Jvb3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNPYmplY3RMaWtlLmpzIiwid2VicGFjazovLy8uL34vZ2wtdmVjMi9jbG9uZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUdldFRhZy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tbW9uL2ltYWdlX2RlYnVnLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19MaXN0Q2FjaGUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX1N5bWJvbC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYXNzb2NJbmRleE9mLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19jYXN0UGF0aC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fZ2V0TWFwRGF0YS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faXNJbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fbmF0aXZlQ3JlYXRlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2VxLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2lzQXJndW1lbnRzLmpzIiwid2VicGFjazovLy8uL3NyYy9jb21tb24vY3ZfdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbW1vbi9pbWFnZV93cmFwcGVyLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlQXNzaWduVmFsdWUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2dldE5hdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fdG9LZXkuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNBcnJheUxpa2UuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNGdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9pc0xlbmd0aC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9pc1N5bWJvbC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9tZXJnZS5qcyIsIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vbW9kdWxlLmpzIiwid2VicGFjazovLy8uL3NyYy9sb2NhdG9yL3RyYWNlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcmVhZGVyL2NvZGVfMzlfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL34vZ2wtdmVjMi9kb3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX01hcC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fTWFwQ2FjaGUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Fzc2lnbk1lcmdlVmFsdWUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Fzc2lnblZhbHVlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fZnJlZUdsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fZ2V0UHJvdG90eXBlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19pc1Byb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fb3ZlclJlc3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3NldFRvU3RyaW5nLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2lkZW50aXR5LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2lzQnVmZmVyLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2lzVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9rZXlzSW4uanMiLCJ3ZWJwYWNrOi8vLyh3ZWJwYWNrKS9idWlsZGluL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcXVhZ2dhLmpzIiwid2VicGFjazovLy8uL3NyYy9hbmFseXRpY3MvcmVzdWx0X2NvbGxlY3Rvci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tbW9uL2NsdXN0ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbW1vbi9ldmVudHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbW1vbi9tZWRpYURldmljZXMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbW1vbi9zdWJJbWFnZS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tbW9uL3R5cGVkZWZzLmpzIiwid2VicGFjazovLy8uL3NyYy9jb25maWcvY29uZmlnLmRldi5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29uZmlnL2NvbmZpZy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvZGVjb2Rlci9iYXJjb2RlX2RlY29kZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2RlY29kZXIvYnJlc2VuaGFtLmpzIiwid2VicGFjazovLy8uL3NyYy9pbnB1dC9jYW1lcmFfYWNjZXNzLmpzIiwid2VicGFjazovLy8uL3NyYy9pbnB1dC9leGlmX2hlbHBlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvaW5wdXQvZnJhbWVfZ3JhYmJlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvaW5wdXQvaW1hZ2VfbG9hZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9pbnB1dC9pbnB1dF9zdHJlYW0uanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2F0b3IvYmFyY29kZV9sb2NhdG9yLmpzIiwid2VicGFjazovLy8uL3NyYy9sb2NhdG9yL3Jhc3Rlcml6ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2xvY2F0b3Ivc2tlbGV0b25pemVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvMm9mNV9yZWFkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3JlYWRlci9jb2RhYmFyX3JlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcmVhZGVyL2NvZGVfMTI4X3JlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcmVhZGVyL2NvZGVfMzlfdmluX3JlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcmVhZGVyL2NvZGVfOTNfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvZWFuXzJfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvZWFuXzVfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvZWFuXzhfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvaTJvZjVfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvdXBjX2VfcmVhZGVyLmpzIiwid2VicGFjazovLy8uL3NyYy9yZWFkZXIvdXBjX3JlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi9+L2dsLW1hdDIvY29weS5qcyIsIndlYnBhY2s6Ly8vLi9+L2dsLW1hdDIvY3JlYXRlLmpzIiwid2VicGFjazovLy8uL34vZ2wtbWF0Mi9pbnZlcnQuanMiLCJ3ZWJwYWNrOi8vLy4vfi9nbC12ZWMyL3NjYWxlLmpzIiwid2VicGFjazovLy8uL34vZ2wtdmVjMi90cmFuc2Zvcm1NYXQyLmpzIiwid2VicGFjazovLy8uL34vZ2wtdmVjMy9jbG9uZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fSGFzaC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fU3RhY2suanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX1VpbnQ4QXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2FwcGx5LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19hcnJheUxpa2VLZXlzLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19hcnJheU1hcC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYXJyYXlQdXNoLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlQ3JlYXRlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlRmxhdHRlbi5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUZvci5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUdldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUhhc0luLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlSXNBcmd1bWVudHMuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Jhc2VJc05hdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUlzVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZUtleXNJbi5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZU1lcmdlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlTWVyZ2VEZWVwLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlUGljay5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZVBpY2tCeS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZVJlc3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Jhc2VTZXQuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Jhc2VTZXRUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fYmFzZVRpbWVzLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19iYXNlVG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Jhc2VVbmFyeS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fY2xvbmVBcnJheUJ1ZmZlci5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fY2xvbmVCdWZmZXIuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2Nsb25lVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fY29weUFycmF5LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19jb3B5T2JqZWN0LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19jb3JlSnNEYXRhLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19jcmVhdGVBc3NpZ25lci5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fY3JlYXRlQmFzZUZvci5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fZmxhdFJlc3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2dldFJhd1RhZy5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fZ2V0VmFsdWUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2hhc1BhdGguanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2hhc2hDbGVhci5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faGFzaERlbGV0ZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faGFzaEdldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faGFzaEhhcy5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faGFzaFNldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faW5pdENsb25lT2JqZWN0LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19pc0ZsYXR0ZW5hYmxlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19pc0l0ZXJhdGVlQ2FsbC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faXNLZXkuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2lzS2V5YWJsZS5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9faXNNYXNrZWQuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2xpc3RDYWNoZUNsZWFyLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19saXN0Q2FjaGVEZWxldGUuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX2xpc3RDYWNoZUdldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fbGlzdENhY2hlSGFzLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19saXN0Q2FjaGVTZXQuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX21hcENhY2hlQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX21hcENhY2hlRGVsZXRlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19tYXBDYWNoZUdldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fbWFwQ2FjaGVIYXMuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX21hcENhY2hlU2V0LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19tZW1vaXplQ2FwcGVkLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19uYXRpdmVLZXlzSW4uanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX25vZGVVdGlsLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19vYmplY3RUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fb3ZlckFyZy5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fc2hvcnRPdXQuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3N0YWNrQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3N0YWNrRGVsZXRlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19zdGFja0dldC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9fc3RhY2tIYXMuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3N0YWNrU2V0LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL19zdHJpbmdUb1BhdGguanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvX3RvU291cmNlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2NvbnN0YW50LmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL2ZsYXR0ZW4uanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaGFzSW4uanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNBcnJheUxpa2VPYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvaXNQbGFpbk9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9+L2xvZGFzaC9tZW1vaXplLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL3BpY2suanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvc3R1YkZhbHNlLmpzIiwid2VicGFjazovLy8uL34vbG9kYXNoL3RvUGxhaW5PYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vfi9sb2Rhc2gvdG9TdHJpbmcuanMiXSwibmFtZXMiOlsiQmFyY29kZVJlYWRlciIsImNvbmZpZyIsInN1cHBsZW1lbnRzIiwiX3JvdyIsInByb3RvdHlwZSIsIl9uZXh0VW5zZXQiLCJsaW5lIiwic3RhcnQiLCJpIiwidW5kZWZpbmVkIiwibGVuZ3RoIiwiX21hdGNoUGF0dGVybiIsImNvdW50ZXIiLCJjb2RlIiwibWF4U2luZ2xlRXJyb3IiLCJlcnJvciIsInNpbmdsZUVycm9yIiwic3VtIiwibW9kdWxvIiwiYmFyV2lkdGgiLCJjb3VudCIsInNjYWxlZCIsIlNJTkdMRV9DT0RFX0VSUk9SIiwiTnVtYmVyIiwiTUFYX1ZBTFVFIiwiTWF0aCIsImFicyIsIl9uZXh0U2V0Iiwib2Zmc2V0IiwiX2NvcnJlY3RCYXJzIiwiY29ycmVjdGlvbiIsImluZGljZXMiLCJ0bXAiLCJfbWF0Y2hUcmFjZSIsImNtcENvdW50ZXIiLCJlcHNpbG9uIiwic2VsZiIsImlzV2hpdGUiLCJjb3VudGVyUG9zIiwiYmVzdE1hdGNoIiwicHVzaCIsImVuZCIsImRlY29kZVBhdHRlcm4iLCJwYXR0ZXJuIiwicmVzdWx0IiwiX2RlY29kZSIsInJldmVyc2UiLCJkaXJlY3Rpb24iLCJESVJFQ1RJT04iLCJSRVZFUlNFIiwiRk9SV0FSRCIsImZvcm1hdCIsIkZPUk1BVCIsIl9tYXRjaFJhbmdlIiwidmFsdWUiLCJfZmlsbENvdW50ZXJzIiwiY291bnRlcnMiLCJfdG9Db3VudGVycyIsIm51bUNvdW50ZXJzIiwiQXJyYXlIZWxwZXIiLCJpbml0IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ3cml0ZWFibGUiLCJFeGNlcHRpb24iLCJTdGFydE5vdEZvdW5kRXhjZXB0aW9uIiwiQ29kZU5vdEZvdW5kRXhjZXB0aW9uIiwiUGF0dGVybk5vdEZvdW5kRXhjZXB0aW9uIiwiQ09ORklHX0tFWVMiLCJhcnIiLCJ2YWwiLCJsIiwic2h1ZmZsZSIsImoiLCJ4IiwiZmxvb3IiLCJyYW5kb20iLCJ0b1BvaW50TGlzdCIsInJvdyIsInJvd3MiLCJqb2luIiwidGhyZXNob2xkIiwic2NvcmVGdW5jIiwicXVldWUiLCJhcHBseSIsIm1heEluZGV4IiwibWF4IiwiRUFOUmVhZGVyIiwib3B0cyIsImdldERlZmF1bENvbmZpZyIsImNhbGwiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImRlZmF1bHQiLCJwcm9wZXJ0aWVzIiwiQ09ERV9MX1NUQVJUIiwiQ09ERV9HX1NUQVJUIiwiU1RBUlRfUEFUVEVSTiIsIlNUT1BfUEFUVEVSTiIsIk1JRERMRV9QQVRURVJOIiwiRVhURU5TSU9OX1NUQVJUX1BBVFRFUk4iLCJDT0RFX1BBVFRFUk4iLCJDT0RFX0ZSRVFVRU5DWSIsIkFWR19DT0RFX0VSUk9SIiwiY3JlYXRlIiwiY29uc3RydWN0b3IiLCJfZGVjb2RlQ29kZSIsImNvZGVyYW5nZSIsIl9maW5kUGF0dGVybiIsInRyeUhhcmRlciIsIl9maW5kU3RhcnQiLCJsZWFkaW5nV2hpdGVzcGFjZVN0YXJ0Iiwic3RhcnRJbmZvIiwiX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZSIsImVuZEluZm8iLCJ0cmFpbGluZ1doaXRlc3BhY2VFbmQiLCJfZmluZEVuZCIsIl9jYWxjdWxhdGVGaXJzdERpZ2l0IiwiY29kZUZyZXF1ZW5jeSIsIl9kZWNvZGVQYXlsb2FkIiwiZGVjb2RlZENvZGVzIiwiZmlyc3REaWdpdCIsInVuc2hpZnQiLCJyZXN1bHRJbmZvIiwiX2NoZWNrc3VtIiwiZXh0IiwiX2RlY29kZUV4dGVuc2lvbnMiLCJsYXN0Q29kZSIsInN1cHBsZW1lbnQiLCJjb2Rlc2V0IiwiZGVjb2RlIiwiZHJhd1JlY3QiLCJwb3MiLCJzaXplIiwiY3R4Iiwic3R5bGUiLCJzdHJva2VTdHlsZSIsImNvbG9yIiwiZmlsbFN0eWxlIiwibGluZVdpZHRoIiwiYmVnaW5QYXRoIiwic3Ryb2tlUmVjdCIsInkiLCJkcmF3UGF0aCIsInBhdGgiLCJkZWYiLCJtb3ZlVG8iLCJsaW5lVG8iLCJjbG9zZVBhdGgiLCJzdHJva2UiLCJkcmF3SW1hZ2UiLCJpbWFnZURhdGEiLCJjYW52YXNEYXRhIiwiZ2V0SW1hZ2VEYXRhIiwiZGF0YSIsImltYWdlRGF0YVBvcyIsImNhbnZhc0RhdGFQb3MiLCJwdXRJbWFnZURhdGEiLCJ2ZWMyIiwiY2xvbmUiLCJyZXF1aXJlIiwidmVjMyIsImltYWdlUmVmIiwidGhhdCIsInRvVmVjMiIsInRvVmVjMyIsInJvdW5kIiwiY29tcHV0ZUludGVncmFsSW1hZ2UyIiwiaW1hZ2VXcmFwcGVyIiwiaW50ZWdyYWxXcmFwcGVyIiwid2lkdGgiLCJoZWlnaHQiLCJpbnRlZ3JhbEltYWdlRGF0YSIsInBvc0EiLCJwb3NCIiwicG9zQyIsInBvc0QiLCJjb21wdXRlSW50ZWdyYWxJbWFnZSIsInYiLCJ1IiwidGhyZXNob2xkSW1hZ2UiLCJ0YXJnZXRXcmFwcGVyIiwidGFyZ2V0RGF0YSIsImNvbXB1dGVIaXN0b2dyYW0iLCJiaXRzUGVyUGl4ZWwiLCJiaXRTaGlmdCIsImJ1Y2tldENudCIsImhpc3QiLCJJbnQzMkFycmF5Iiwic2hhcnBlbkxpbmUiLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiLCJkZXRlcm1pbmVPdHN1VGhyZXNob2xkIiwicHgiLCJteCIsImRldGVybWluZVRocmVzaG9sZCIsInZldCIsInAxIiwicDIiLCJwMTIiLCJrIiwibTEiLCJtMiIsIm0xMiIsIm90c3VUaHJlc2hvbGQiLCJjb21wdXRlQmluYXJ5SW1hZ2UiLCJrZXJuZWwiLCJBIiwiQiIsIkMiLCJEIiwiYXZnIiwiY2x1c3RlciIsInBvaW50cyIsInByb3BlcnR5IiwicG9pbnQiLCJjbHVzdGVycyIsImFkZFRvQ2x1c3RlciIsIm5ld1BvaW50IiwiZm91bmQiLCJmaXRzIiwiYWRkIiwiQ2x1c3RlcjIiLCJjcmVhdGVQb2ludCIsIlRyYWNlciIsInRyYWNlIiwidmVjIiwiaXRlcmF0aW9uIiwibWF4SXRlcmF0aW9ucyIsInRvcCIsImNlbnRlclBvcyIsImN1cnJlbnRQb3MiLCJpZHgiLCJmb3J3YXJkIiwiZnJvbSIsInRvIiwidG9JZHgiLCJwcmVkaWN0ZWRQb3MiLCJ0aHJlc2hvbGRYIiwidGhyZXNob2xkWSIsIm1hdGNoIiwicHJlZGljdGVkIiwiRElMQVRFIiwiRVJPREUiLCJkaWxhdGUiLCJpbkltYWdlV3JhcHBlciIsIm91dEltYWdlV3JhcHBlciIsImluSW1hZ2VEYXRhIiwib3V0SW1hZ2VEYXRhIiwieVN0YXJ0MSIsInlTdGFydDIiLCJ4U3RhcnQxIiwieFN0YXJ0MiIsImVyb2RlIiwic3VidHJhY3QiLCJhSW1hZ2VXcmFwcGVyIiwiYkltYWdlV3JhcHBlciIsInJlc3VsdEltYWdlV3JhcHBlciIsImFJbWFnZURhdGEiLCJiSW1hZ2VEYXRhIiwiY0ltYWdlRGF0YSIsImJpdHdpc2VPciIsImNvdW50Tm9uWmVybyIsInRvcEdlbmVyaWMiLCJsaXN0IiwibWluSWR4IiwibWluIiwic2NvcmUiLCJoaXQiLCJpdGVtIiwiZ3JheUFycmF5RnJvbUltYWdlIiwiaHRtbEltYWdlIiwib2Zmc2V0WCIsImFycmF5IiwiY3R4RGF0YSIsImNvbXB1dGVHcmF5IiwiZ3JheUFycmF5RnJvbUNvbnRleHQiLCJncmF5QW5kSGFsZlNhbXBsZUZyb21DYW52YXNEYXRhIiwib3V0QXJyYXkiLCJ0b3BSb3dJZHgiLCJib3R0b21Sb3dJZHgiLCJlbmRJZHgiLCJvdXRXaWR0aCIsIm91dEltZ0lkeCIsImluV2lkdGgiLCJzaW5nbGVDaGFubmVsIiwibG9hZEltYWdlQXJyYXkiLCJzcmMiLCJjYWxsYmFjayIsImNhbnZhcyIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImltZyIsIkltYWdlIiwib25sb2FkIiwiZ2V0Q29udGV4dCIsIlVpbnQ4QXJyYXkiLCJoYWxmU2FtcGxlIiwiaW5JbWdXcmFwcGVyIiwib3V0SW1nV3JhcHBlciIsImluSW1nIiwib3V0SW1nIiwiaHN2MnJnYiIsImhzdiIsInJnYiIsImgiLCJzIiwiYyIsIm0iLCJyIiwiZyIsImIiLCJfY29tcHV0ZURpdmlzb3JzIiwibiIsImxhcmdlRGl2aXNvcnMiLCJkaXZpc29ycyIsInNxcnQiLCJjb25jYXQiLCJfY29tcHV0ZUludGVyc2VjdGlvbiIsImFycjEiLCJhcnIyIiwiY2FsY3VsYXRlUGF0Y2hTaXplIiwicGF0Y2hTaXplIiwiaW1nU2l6ZSIsImRpdmlzb3JzWCIsImRpdmlzb3JzWSIsIndpZGVTaWRlIiwiY29tbW9uIiwibnJPZlBhdGNoZXNMaXN0IiwibnJPZlBhdGNoZXNNYXAiLCJuck9mUGF0Y2hlc0lkeCIsIm1lZGl1bSIsIm5yT2ZQYXRjaGVzIiwiZGVzaXJlZFBhdGNoU2l6ZSIsIm9wdGltYWxQYXRjaFNpemUiLCJmaW5kUGF0Y2hTaXplRm9yRGl2aXNvcnMiLCJfcGFyc2VDU1NEaW1lbnNpb25WYWx1ZXMiLCJkaW1lbnNpb24iLCJwYXJzZUZsb2F0IiwidW5pdCIsImluZGV4T2YiLCJfZGltZW5zaW9uc0NvbnZlcnRlcnMiLCJjb250ZXh0IiwiYm90dG9tIiwiY29tcHV0ZUltYWdlQXJlYSIsImlucHV0V2lkdGgiLCJpbnB1dEhlaWdodCIsImFyZWEiLCJwYXJzZWRBcmVhIiwicmVkdWNlIiwicGFyc2VkIiwiY2FsY3VsYXRlZCIsInN4Iiwic3kiLCJzdyIsInNoIiwiSW1hZ2VXcmFwcGVyIiwiQXJyYXlUeXBlIiwiaW5pdGlhbGl6ZSIsIkFycmF5IiwiaW5JbWFnZVdpdGhCb3JkZXIiLCJpbWdSZWYiLCJib3JkZXIiLCJzYW1wbGUiLCJseCIsImx5IiwidyIsImJhc2UiLCJhIiwiZCIsImUiLCJjbGVhckFycmF5Iiwic3ViSW1hZ2UiLCJzdWJJbWFnZUFzQ29weSIsInNpemVZIiwic2l6ZVgiLCJjb3B5VG8iLCJzcmNEYXRhIiwiZHN0RGF0YSIsImdldCIsImdldFNhZmUiLCJpbmRleE1hcHBpbmciLCJzZXQiLCJ6ZXJvQm9yZGVyIiwiaW52ZXJ0IiwiY29udm9sdmUiLCJreCIsImt5Iiwia1NpemUiLCJhY2N1IiwibW9tZW50cyIsImxhYmVsY291bnQiLCJ5c3EiLCJsYWJlbHN1bSIsImxhYmVsIiwibXUxMSIsIm11MDIiLCJtdTIwIiwieF8iLCJ5XyIsIlBJIiwiUElfNCIsIm0wMCIsIm0wMSIsIm0xMCIsIm0xMSIsIm0wMiIsIm0yMCIsInRoZXRhIiwicmFkIiwiaXNOYU4iLCJhdGFuIiwiY29zIiwic2luIiwic2hvdyIsInNjYWxlIiwiZnJhbWUiLCJjdXJyZW50IiwicGl4ZWwiLCJvdmVybGF5Iiwid2hpdGVSZ2IiLCJibGFja1JnYiIsInNlYXJjaERpcmVjdGlvbnMiLCJsYWJlbFdyYXBwZXIiLCJsYWJlbERhdGEiLCJlZGdlbGFiZWwiLCJjeSIsImRpciIsImN4IiwidmVydGV4MkQiLCJuZXh0IiwicHJldiIsImNvbnRvdXJUcmFjaW5nIiwiRnYiLCJDdiIsIlAiLCJsZGlyIiwiQ29kZTM5UmVhZGVyIiwiQUxQSEFCRVRIX1NUUklORyIsIkFMUEhBQkVUIiwiQ0hBUkFDVEVSX0VOQ09ESU5HUyIsIkFTVEVSSVNLIiwiZGVjb2RlZENoYXIiLCJsYXN0U3RhcnQiLCJuZXh0U3RhcnQiLCJfdG9QYXR0ZXJuIiwiX3BhdHRlcm5Ub0NoYXIiLCJwb3AiLCJwYXR0ZXJuU2l6ZSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsIl9maW5kTmV4dFdpZHRoIiwibWluV2lkdGgiLCJtYXhOYXJyb3dXaWR0aCIsIm51bVdpZGVCYXJzIiwid2lkZUJhcldpZHRoIiwicGF0dGVyblN0YXJ0Iiwid2hpdGVTcGFjZU11c3RTdGFydCIsIl9pbnB1dFN0cmVhbSIsIl9mcmFtZWdyYWJiZXIiLCJfc3RvcHBlZCIsIl9jYW52YXNDb250YWluZXIiLCJpbWFnZSIsImRvbSIsIl9pbnB1dEltYWdlV3JhcHBlciIsIl9ib3hTaXplIiwiX2RlY29kZXIiLCJfd29ya2VyUG9vbCIsIl9vblVJVGhyZWFkIiwiX3Jlc3VsdENvbGxlY3RvciIsIl9jb25maWciLCJpbml0aWFsaXplRGF0YSIsImluaXRCdWZmZXJzIiwiQmFyY29kZURlY29kZXIiLCJkZWNvZGVyIiwiaW5pdElucHV0U3RyZWFtIiwiY2IiLCJ2aWRlbyIsImlucHV0U3RyZWFtIiwidHlwZSIsIklucHV0U3RyZWFtIiwiY3JlYXRlVmlkZW9TdHJlYW0iLCJjcmVhdGVJbWFnZVN0cmVhbSIsIiR2aWV3cG9ydCIsImdldFZpZXdQb3J0IiwicXVlcnlTZWxlY3RvciIsImFwcGVuZENoaWxkIiwiY3JlYXRlTGl2ZVN0cmVhbSIsIkNhbWVyYUFjY2VzcyIsInJlcXVlc3QiLCJjb25zdHJhaW50cyIsInRoZW4iLCJ0cmlnZ2VyIiwiY2F0Y2giLCJlcnIiLCJzZXRBdHRyaWJ1dGUiLCJzZXRJbnB1dFN0cmVhbSIsImFkZEV2ZW50TGlzdGVuZXIiLCJjYW5SZWNvcmQiLCJiaW5kIiwidGFyZ2V0Iiwibm9kZU5hbWUiLCJub2RlVHlwZSIsInNlbGVjdG9yIiwiQmFyY29kZUxvY2F0b3IiLCJjaGVja0ltYWdlQ29uc3RyYWludHMiLCJsb2NhdG9yIiwiaW5pdENhbnZhcyIsIkZyYW1lR3JhYmJlciIsImFkanVzdFdvcmtlclBvb2wiLCJudW1PZldvcmtlcnMiLCJyZWFkeSIsInBsYXkiLCJjbGFzc05hbWUiLCJnZXRDYW52YXNTaXplIiwiY2xlYXJGaXgiLCJnZXRXaWR0aCIsImdldEhlaWdodCIsImNvbnNvbGUiLCJsb2ciLCJnZXRCb3VuZGluZ0JveGVzIiwibG9jYXRlIiwidHJhbnNmb3JtUmVzdWx0IiwidG9wUmlnaHQiLCJnZXRUb3BSaWdodCIsInhPZmZzZXQiLCJ5T2Zmc2V0IiwiYmFyY29kZXMiLCJtb3ZlTGluZSIsImJveCIsIm1vdmVCb3giLCJib3hlcyIsImNvcm5lciIsImFkZFJlc3VsdCIsImZpbHRlciIsImJhcmNvZGUiLCJjb2RlUmVzdWx0IiwiaGFzQ29kZVJlc3VsdCIsInNvbWUiLCJwdWJsaXNoUmVzdWx0IiwicmVzdWx0VG9QdWJsaXNoIiwiRXZlbnRzIiwicHVibGlzaCIsImxvY2F0ZUFuZERlY29kZSIsImRlY29kZUZyb21Cb3VuZGluZ0JveGVzIiwidXBkYXRlIiwiYXZhaWxhYmxlV29ya2VyIiwid29ya2VyVGhyZWFkIiwiYnVzeSIsImF0dGFjaERhdGEiLCJncmFiIiwid29ya2VyIiwicG9zdE1lc3NhZ2UiLCJjbWQiLCJidWZmZXIiLCJzdGFydENvbnRpbnVvdXNVcGRhdGUiLCJkZWxheSIsImZyZXF1ZW5jeSIsInRpbWVzdGFtcCIsIndpbmRvdyIsInJlcXVlc3RBbmltRnJhbWUiLCJwZXJmb3JtYW5jZSIsIm5vdyIsImluaXRXb3JrZXIiLCJibG9iVVJMIiwiZ2VuZXJhdGVXb3JrZXJCbG9iIiwiV29ya2VyIiwib25tZXNzYWdlIiwiZXZlbnQiLCJVUkwiLCJyZXZva2VPYmplY3RVUkwiLCJtZXNzYWdlIiwiY29uZmlnRm9yV29ya2VyIiwid29ya2VySW50ZXJmYWNlIiwiZmFjdG9yeSIsIlF1YWdnYSIsIm9uUHJvY2Vzc2VkIiwic2V0UmVhZGVycyIsInJlYWRlcnMiLCJibG9iIiwiZmFjdG9yeVNvdXJjZSIsIl9fZmFjdG9yeVNvdXJjZV9fIiwiQmxvYiIsInRvU3RyaW5nIiwiY3JlYXRlT2JqZWN0VVJMIiwiY2FwYWNpdHkiLCJpbmNyZWFzZUJ5Iiwid29ya2Vyc1RvVGVybWluYXRlIiwic2xpY2UiLCJ0ZXJtaW5hdGUiLCJ3b3JrZXJJbml0aWFsaXplZCIsInN0b3AiLCJyZWxlYXNlIiwiY2xlYXJFdmVudEhhbmRsZXJzIiwicGF1c2UiLCJvbkRldGVjdGVkIiwic3Vic2NyaWJlIiwib2ZmRGV0ZWN0ZWQiLCJ1bnN1YnNjcmliZSIsIm9mZlByb2Nlc3NlZCIsInJlZ2lzdGVyUmVzdWx0Q29sbGVjdG9yIiwicmVzdWx0Q29sbGVjdG9yIiwiZGVjb2RlU2luZ2xlIiwicmVzdWx0Q2FsbGJhY2siLCJzZXF1ZW5jZSIsImRlYnVnIiwib25jZSIsIkltYWdlRGVidWciLCJSZXN1bHRDb2xsZWN0b3IiLCJjb250YWlucyIsImV2ZXJ5IiwicGFzc2VzRmlsdGVyIiwicmVzdWx0cyIsImNhcHR1cmUiLCJtYXRjaGVzQ29uc3RyYWludHMiLCJibGFja2xpc3QiLCJpbWFnZVNpemUiLCJ0b0RhdGFVUkwiLCJnZXRSZXN1bHRzIiwiZG90IiwicG9pbnRNYXAiLCJ1cGRhdGVDZW50ZXIiLCJwb2ludFRvQWRkIiwiaWQiLCJvdGhlclBvaW50Iiwic2ltaWxhcml0eSIsImdldFBvaW50cyIsImdldENlbnRlciIsImV2ZW50cyIsImdldEV2ZW50IiwiZXZlbnROYW1lIiwic3Vic2NyaWJlcnMiLCJjbGVhckV2ZW50cyIsInB1Ymxpc2hTdWJzY3JpcHRpb24iLCJzdWJzY3JpcHRpb24iLCJhc3luYyIsInNldFRpbWVvdXQiLCJzdWJzY3JpYmVyIiwiZW51bWVyYXRlRGV2aWNlcyIsIm5hdmlnYXRvciIsIm1lZGlhRGV2aWNlcyIsIlByb21pc2UiLCJyZWplY3QiLCJFcnJvciIsImdldFVzZXJNZWRpYSIsIlN1YkltYWdlIiwiSSIsIm9yaWdpbmFsU2l6ZSIsInVwZGF0ZURhdGEiLCJ1cGRhdGVGcm9tIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwid2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwibW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwib1JlcXVlc3RBbmltYXRpb25GcmFtZSIsIm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiaW11bCIsImFoIiwiYWwiLCJiaCIsImJsIiwiYXNzaWduIiwiVHlwZUVycm9yIiwiaW5kZXgiLCJhcmd1bWVudHMiLCJuZXh0U291cmNlIiwibmV4dEtleSIsImhhc093blByb3BlcnR5IiwibW9kdWxlIiwiZXhwb3J0cyIsIm5hbWUiLCJmYWNpbmdNb2RlIiwiZHJhd0JvdW5kaW5nQm94Iiwic2hvd0ZyZXF1ZW5jeSIsImRyYXdTY2FubGluZSIsInNob3dQYXR0ZXJuIiwic2hvd0NhbnZhcyIsInNob3dQYXRjaGVzIiwic2hvd0ZvdW5kUGF0Y2hlcyIsInNob3dTa2VsZXRvbiIsInNob3dMYWJlbHMiLCJzaG93UGF0Y2hMYWJlbHMiLCJzaG93UmVtYWluaW5nUGF0Y2hMYWJlbHMiLCJib3hGcm9tUGF0Y2hlcyIsInNob3dUcmFuc2Zvcm1lZCIsInNob3dUcmFuc2Zvcm1lZEJveCIsInNob3dCQiIsIkVOViIsIm5vZGUiLCJSRUFERVJTIiwiY29kZV8xMjhfcmVhZGVyIiwiZWFuX3JlYWRlciIsImVhbl81X3JlYWRlciIsImVhbl8yX3JlYWRlciIsImVhbl84X3JlYWRlciIsImNvZGVfMzlfcmVhZGVyIiwiY29kZV8zOV92aW5fcmVhZGVyIiwiY29kYWJhcl9yZWFkZXIiLCJ1cGNfcmVhZGVyIiwidXBjX2VfcmVhZGVyIiwiaTJvZjVfcmVhZGVyIiwiY29kZV85M19yZWFkZXIiLCJDb2RlOTNSZWFkZXIiLCJpbnB1dEltYWdlV3JhcHBlciIsIl9jYW52YXMiLCJfYmFyY29kZVJlYWRlcnMiLCJpbml0UmVhZGVycyIsImluaXRDb25maWciLCIkZGVidWciLCJyZWFkZXJDb25maWciLCJyZWFkZXIiLCJjb25maWd1cmF0aW9uIiwibWFwIiwiSlNPTiIsInN0cmluZ2lmeSIsInZpcyIsInByb3AiLCJkaXNwbGF5IiwiZ2V0RXh0ZW5kZWRMaW5lIiwiYW5nbGUiLCJleHRlbmRMaW5lIiwiYW1vdW50IiwiZXh0ZW5zaW9uIiwiY2VpbCIsImdldExpbmUiLCJ0cnlEZWNvZGUiLCJiYXJjb2RlTGluZSIsIkJyZXNlbmhhbSIsImdldEJhcmNvZGVMaW5lIiwicHJpbnRGcmVxdWVuY3kiLCJ0b0JpbmFyeUxpbmUiLCJwcmludFBhdHRlcm4iLCJ0cnlEZWNvZGVCcnV0ZUZvcmNlIiwibGluZUFuZ2xlIiwic2lkZUxlbmd0aCIsInBvdyIsInNsaWNlcyIsInhkaXIiLCJ5ZGlyIiwiZ2V0TGluZUxlbmd0aCIsImRlY29kZUZyb21Cb3VuZGluZ0JveCIsImxpbmVMZW5ndGgiLCJhdGFuMiIsIm11bHRpcGxlIiwiU2xvcGUiLCJESVIiLCJVUCIsIkRPV04iLCJ4MCIsInkwIiwieDEiLCJ5MSIsInN0ZWVwIiwiZGVsdGF4IiwiZGVsdGF5IiwieXN0ZXAiLCJyZWFkIiwic2xvcGUiLCJzbG9wZTIiLCJleHRyZW1hIiwiY3VycmVudERpciIsInJUaHJlc2hvbGQiLCJmaWxsQ29sb3IiLCJmaWxsUmVjdCIsImZhY2luZ01hdGNoaW5nIiwic3RyZWFtUmVmIiwid2FpdEZvclZpZGVvIiwicmVzb2x2ZSIsImF0dGVtcHRzIiwiY2hlY2tWaWRlbyIsInZpZGVvV2lkdGgiLCJ2aWRlb0hlaWdodCIsImluaXRDYW1lcmEiLCJzdHJlYW0iLCJzcmNPYmplY3QiLCJkZXByZWNhdGVkQ29uc3RyYWludHMiLCJ2aWRlb0NvbnN0cmFpbnRzIiwibm9ybWFsaXplZCIsIm1pbkFzcGVjdFJhdGlvIiwiYXNwZWN0UmF0aW8iLCJmYWNpbmciLCJwaWNrQ29uc3RyYWludHMiLCJub3JtYWxpemVkQ29uc3RyYWludHMiLCJhdWRpbyIsImRldmljZUlkIiwiZW51bWVyYXRlVmlkZW9EZXZpY2VzIiwiZGV2aWNlcyIsImRldmljZSIsImtpbmQiLCJnZXRBY3RpdmVUcmFjayIsInRyYWNrcyIsImdldFZpZGVvVHJhY2tzIiwiZ2V0QWN0aXZlU3RyZWFtTGFiZWwiLCJ0cmFjayIsIkV4aWZUYWdzIiwiQXZhaWxhYmxlVGFncyIsImZpbmRUYWdzSW5PYmplY3RVUkwiLCJ0YWdzIiwidGVzdCIsIm9iamVjdFVSTFRvQmxvYiIsInJlYWRUb0J1ZmZlciIsImZpbmRUYWdzSW5CdWZmZXIiLCJiYXNlNjRUb0FycmF5QnVmZmVyIiwiZGF0YVVybCIsImJhc2U2NCIsInJlcGxhY2UiLCJiaW5hcnkiLCJhdG9iIiwibGVuIiwiQXJyYXlCdWZmZXIiLCJ2aWV3IiwiY2hhckNvZGVBdCIsImZpbGVSZWFkZXIiLCJGaWxlUmVhZGVyIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJ1cmwiLCJodHRwIiwiWE1MSHR0cFJlcXVlc3QiLCJvcGVuIiwicmVzcG9uc2VUeXBlIiwib25yZWFkeXN0YXRlY2hhbmdlIiwicmVhZHlTdGF0ZSIsIkRPTkUiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9uZXJyb3IiLCJzZW5kIiwiZmlsZSIsInNlbGVjdGVkVGFncyIsImRhdGFWaWV3IiwiRGF0YVZpZXciLCJieXRlTGVuZ3RoIiwiZXhpZlRhZ3MiLCJzZWxlY3RlZFRhZyIsImV4aWZUYWciLCJ0YWciLCJtYXJrZXIiLCJnZXRVaW50OCIsInJlYWRFWElGRGF0YSIsImdldFVpbnQxNiIsImdldFN0cmluZ0Zyb21CdWZmZXIiLCJ0aWZmT2Zmc2V0IiwiYmlnRW5kIiwiZmlyc3RJRkRPZmZzZXQiLCJnZXRVaW50MzIiLCJyZWFkVGFncyIsInRpZmZTdGFydCIsImRpclN0YXJ0Iiwic3RyaW5ncyIsImVudHJpZXMiLCJlbnRyeU9mZnNldCIsInJlYWRUYWdWYWx1ZSIsIm51bVZhbHVlcyIsIm91dHN0ciIsIlRPX1JBRElBTlMiLCJhZGp1c3RDYW52YXNTaXplIiwidGFyZ2V0U2l6ZSIsIl90aGF0IiwiX3N0cmVhbUNvbmZpZyIsImdldENvbmZpZyIsIl92aWRlb19zaXplIiwiZ2V0UmVhbFdpZHRoIiwiZ2V0UmVhbEhlaWdodCIsIl9jYW52YXNTaXplIiwiX3NpemUiLCJfc3giLCJfc3kiLCJfY3R4IiwiX2RhdGEiLCJ2aWRlb1NpemUiLCJjYW52YXNTaXplIiwiZ2V0RGF0YSIsImRvSGFsZlNhbXBsZSIsImdldEZyYW1lIiwiZHJhd2FibGUiLCJkcmF3QW5nbGUiLCJvcmllbnRhdGlvbiIsInRyYW5zbGF0ZSIsInJvdGF0ZSIsImdldFNpemUiLCJJbWFnZUxvYWRlciIsImxvYWQiLCJkaXJlY3RvcnkiLCJodG1sSW1hZ2VzU3JjQXJyYXkiLCJodG1sSW1hZ2VzQXJyYXkiLCJudW0iLCJub3RMb2FkZWQiLCJhZGRJbWFnZSIsImxvYWRlZCIsImxvYWRlZEltZyIsIm5vdGxvYWRlZEltZ3MiLCJzcGxpY2UiLCJpbWdOYW1lIiwic3Vic3RyIiwibGFzdEluZGV4T2YiLCJhZGRPbmxvYWRIYW5kbGVyIiwiX2V2ZW50TmFtZXMiLCJfZXZlbnRIYW5kbGVycyIsIl9jYWxjdWxhdGVkV2lkdGgiLCJfY2FsY3VsYXRlZEhlaWdodCIsIl90b3BSaWdodCIsImluaXRTaXplIiwic2V0V2lkdGgiLCJzZXRIZWlnaHQiLCJlbmRlZCIsInNldEN1cnJlbnRUaW1lIiwidGltZSIsImN1cnJlbnRUaW1lIiwiZiIsImJvb2wiLCJoYW5kbGVycyIsImhhbmRsZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYXJncyIsInNldFRvcFJpZ2h0Iiwic2V0Q2FudmFzU2l6ZSIsImZyYW1lSWR4IiwicGF1c2VkIiwiaW1nQXJyYXkiLCJiYXNlVXJsIiwiY2FsY3VsYXRlZFdpZHRoIiwiY2FsY3VsYXRlZEhlaWdodCIsImxvYWRJbWFnZXMiLCJpbWdzIiwicHVibGlzaEV2ZW50IiwibmV3V2lkdGgiLCJuZXdIZWlnaHQiLCJ0cmFuc2Zvcm1NYXQyIiwibWF0MiIsImNvcHkiLCJfY3VycmVudEltYWdlV3JhcHBlciIsIl9za2VsSW1hZ2VXcmFwcGVyIiwiX3N1YkltYWdlV3JhcHBlciIsIl9sYWJlbEltYWdlV3JhcHBlciIsIl9wYXRjaEdyaWQiLCJfcGF0Y2hMYWJlbEdyaWQiLCJfaW1hZ2VUb1BhdGNoR3JpZCIsIl9iaW5hcnlJbWFnZVdyYXBwZXIiLCJfcGF0Y2hTaXplIiwiX251bVBhdGNoZXMiLCJfc2tlbGV0b25pemVyIiwic2tlbGV0b25JbWFnZURhdGEiLCJza2VsZXRvbml6ZXIiLCJnbG9iYWwiLCJ1c2VXb3JrZXIiLCJwYXRjaGVzIiwib3ZlckF2ZyIsInBhdGNoIiwidHJhbnNNYXQiLCJtaW54IiwibWlueSIsIm1heHgiLCJtYXh5IiwiYmluYXJpemVJbWFnZSIsImZpbmRQYXRjaGVzIiwicGF0Y2hlc0ZvdW5kIiwicmFzdGVyaXplciIsInJhc3RlclJlc3VsdCIsInNrZWxldG9uaXplIiwiUmFzdGVyaXplciIsInJhc3Rlcml6ZSIsImRlc2NyaWJlUGF0Y2giLCJmaW5kQmlnZ2VzdENvbm5lY3RlZEFyZWFzIiwibWF4TGFiZWwiLCJsYWJlbEhpc3QiLCJ0b3BMYWJlbHMiLCJzb3J0IiwiZWwiLCJmaW5kQm94ZXMiLCJzaW1pbGFyTW9tZW50cyIsInRvcENsdXN0ZXIiLCJwYXRjaFBvcyIsImVsaWdpYmxlTW9tZW50cyIsIm1hdGNoaW5nTW9tZW50cyIsIm1pbkNvbXBvbmVudFdlaWdodCIsInJhc3Rlcml6ZUFuZ3VsYXJTaW1pbGFyaXR5IiwiY3VycklkeCIsIm5vdFlldFByb2Nlc3NlZCIsImN1cnJlbnRJZHgiLCJjdXJyZW50UGF0Y2giLCJjcmVhdGVDb250b3VyMkQiLCJmaXJzdFZlcnRleCIsImluc2lkZUNvbnRvdXJzIiwibmV4dHBlZXIiLCJwcmV2cGVlciIsIkNPTlRPVVJfRElSIiwiQ1dfRElSIiwiQ0NXX0RJUiIsIlVOS05PV05fRElSIiwiT1VUU0lERV9FREdFIiwiSU5TSURFX0VER0UiLCJ0cmFjZXIiLCJkZXB0aGxhYmVsIiwiYmMiLCJsYyIsImxhYmVsaW5kZXgiLCJjb2xvck1hcCIsInZlcnRleCIsInAiLCJjYyIsInNjIiwiY29ubmVjdGVkQ291bnQiLCJkcmF3Q29udG91ciIsImZpcnN0Q29udG91ciIsInBxIiwiaXEiLCJxIiwiU2tlbGV0b25pemVyIiwic3RkbGliIiwiZm9yZWlnbiIsImltYWdlcyIsImluSW1hZ2VQdHIiLCJvdXRJbWFnZVB0ciIsImFJbWFnZVB0ciIsImJJbWFnZVB0ciIsImltYWdlUHRyIiwibWVtY3B5Iiwic3JjSW1hZ2VQdHIiLCJkc3RJbWFnZVB0ciIsInN1YkltYWdlUHRyIiwiZXJvZGVkSW1hZ2VQdHIiLCJ0ZW1wSW1hZ2VQdHIiLCJza2VsSW1hZ2VQdHIiLCJkb25lIiwiVHdvT2ZGaXZlUmVhZGVyIiwiYmFyU3BhY2VSYXRpbyIsIk4iLCJXIiwid3JpdGFibGUiLCJzdGFydFBhdHRlcm5MZW5ndGgiLCJuYXJyb3dCYXJXaWR0aCIsImNvdW50ZXJMZW5ndGgiLCJfdmVyaWZ5Q291bnRlckxlbmd0aCIsIkNvZGFiYXJSZWFkZXIiLCJfY291bnRlcnMiLCJTVEFSVF9FTkQiLCJNSU5fRU5DT0RFRF9DSEFSUyIsIk1BWF9BQ0NFUFRBQkxFIiwiUEFERElORyIsInN0YXJ0Q291bnRlciIsIl9pc1N0YXJ0RW5kIiwiX3ZlcmlmeVdoaXRlc3BhY2UiLCJfdmFsaWRhdGVSZXN1bHQiLCJfc3VtQ291bnRlcnMiLCJlbmRDb3VudGVyIiwiX2NhbGN1bGF0ZVBhdHRlcm5MZW5ndGgiLCJfdGhyZXNob2xkUmVzdWx0UGF0dGVybiIsImNhdGVnb3JpemF0aW9uIiwic3BhY2UiLCJuYXJyb3ciLCJjb3VudHMiLCJ3aWRlIiwiYmFyIiwiY2F0IiwiX2NoYXJUb1BhdHRlcm4iLCJuZXdraW5kIiwiY2hhciIsImNoYXJDb2RlIiwidGhyZXNob2xkcyIsIl9jb21wdXRlQWx0ZXJuYXRpbmdUaHJlc2hvbGQiLCJiYXJUaHJlc2hvbGQiLCJzcGFjZVRocmVzaG9sZCIsImJpdG1hc2siLCJDb2RlMTI4UmVhZGVyIiwiQ09ERV9TSElGVCIsIkNPREVfQyIsIkNPREVfQiIsIkNPREVfQSIsIlNUQVJUX0NPREVfQSIsIlNUQVJUX0NPREVfQiIsIlNUQVJUX0NPREVfQyIsIlNUT1BfQ09ERSIsIk1PRFVMRV9JTkRJQ0VTIiwiX2NvcnJlY3QiLCJjYWxjdWxhdGVDb3JyZWN0aW9uIiwibXVsdGlwbGllciIsImNoZWNrc3VtIiwicmF3UmVzdWx0Iiwic2hpZnROZXh0IiwicmVtb3ZlTGFzdENoYXJhY3RlciIsImV4cGVjdGVkIiwic3VtTm9ybWFsaXplZCIsInN1bUV4cGVjdGVkIiwiQ29kZTM5VklOUmVhZGVyIiwicGF0dGVybnMiLCJJT1EiLCJBWjA5IiwiX2NoZWNrQ2hlY2tzdW0iLCJzcGxpdCIsIl92ZXJpZnlFbmQiLCJfdmVyaWZ5Q2hlY2tzdW1zIiwiX2RlY29kZUV4dGVuZGVkIiwiY2hhckFycmF5IiwibmV4dENoYXIiLCJuZXh0Q2hhckNvZGUiLCJfbWF0Y2hDaGVja0NoYXIiLCJtYXhXZWlnaHQiLCJhcnJheVRvQ2hlY2siLCJ3ZWlnaHRlZFN1bXMiLCJ3ZWlnaHQiLCJjaGVja0NoYXIiLCJFQU4yUmVhZGVyIiwicGFyc2VJbnQiLCJFQU41UmVhZGVyIiwiQ0hFQ0tfRElHSVRfRU5DT0RJTkdTIiwiZXh0ZW5zaW9uQ2hlY2tzdW0iLCJkZXRlcm1pbmVDaGVja0RpZ2l0IiwiRUFOOFJlYWRlciIsIkkyb2Y1UmVhZGVyIiwibm9ybWFsaXplQmFyU3BhY2VXaWR0aCIsIk1BWF9DT1JSRUNUSU9OX0ZBQ1RPUiIsImNvdW50ZXJTdW0iLCJjb2RlU3VtIiwiY29ycmVjdGlvblJhdGlvIiwiY29ycmVjdGlvblJhdGlvSW52ZXJzZSIsIl9kZWNvZGVQYWlyIiwiY291bnRlclBhaXIiLCJjb2RlcyIsIlVQQ0VSZWFkZXIiLCJfZGV0ZXJtaW5lUGFyaXR5IiwibnJTeXN0ZW0iLCJfY29udmVydFRvVVBDQSIsInVwY2EiLCJsYXN0RGlnaXQiLCJVUENSZWFkZXIiLCJjaGFyQXQiLCJzdWJzdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNSQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxtREFBMkMsY0FBYzs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBMkIsMEJBQTBCLEVBQUU7QUFDdkQseUNBQWlDLGVBQWU7QUFDaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQXNELCtEQUErRDs7QUFFckg7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7Ozs7OztBQ3BCQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDaENBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDcENBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDbENBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7Ozs7QUM1QkE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FB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ZSI6InF1YWdnYS5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoZmFjdG9yeS50b1N0cmluZygpKS5kZWZhdWx0O1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiUXVhZ2dhXCJdID0gZmFjdG9yeShmYWN0b3J5LnRvU3RyaW5nKCkpLmRlZmF1bHQ7XG5cdGVsc2Vcblx0XHRyb290W1wiUXVhZ2dhXCJdID0gZmFjdG9yeShmYWN0b3J5LnRvU3RyaW5nKCkpLmRlZmF1bHQ7XG59KSh0aGlzLCBmdW5jdGlvbihfX2ZhY3RvcnlTb3VyY2VfXykge1xucmV0dXJuIFxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL215TW9kdWxlRGVmaW5pdGlvbiIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBpZGVudGl0eSBmdW5jdGlvbiBmb3IgY2FsbGluZyBoYXJtb255IGltcG9ydHMgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0XG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9cIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAxNjYpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIDc1NjBjYzQ5MjcyMzFiMmUzNzg5IiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2lzT2JqZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSAwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImltcG9ydCBBcnJheUhlbHBlciBmcm9tICcuLi9jb21tb24vYXJyYXlfaGVscGVyJztcblxuZnVuY3Rpb24gQmFyY29kZVJlYWRlcihjb25maWcsIHN1cHBsZW1lbnRzKSB7XG4gICAgdGhpcy5fcm93ID0gW107XG4gICAgdGhpcy5jb25maWcgPSBjb25maWcgfHwge307XG4gICAgdGhpcy5zdXBwbGVtZW50cyA9IHN1cHBsZW1lbnRzO1xuICAgIHJldHVybiB0aGlzO1xufVxuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5fbmV4dFVuc2V0ID0gZnVuY3Rpb24obGluZSwgc3RhcnQpIHtcbiAgICB2YXIgaTtcblxuICAgIGlmIChzdGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHN0YXJ0ID0gMDtcbiAgICB9XG4gICAgZm9yIChpID0gc3RhcnQ7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghbGluZVtpXSkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmUubGVuZ3RoO1xufTtcblxuQmFyY29kZVJlYWRlci5wcm90b3R5cGUuX21hdGNoUGF0dGVybiA9IGZ1bmN0aW9uKGNvdW50ZXIsIGNvZGUsIG1heFNpbmdsZUVycm9yKSB7XG4gICAgdmFyIGksXG4gICAgICAgIGVycm9yID0gMCxcbiAgICAgICAgc2luZ2xlRXJyb3IgPSAwLFxuICAgICAgICBzdW0gPSAwLFxuICAgICAgICBtb2R1bG8gPSAwLFxuICAgICAgICBiYXJXaWR0aCxcbiAgICAgICAgY291bnQsXG4gICAgICAgIHNjYWxlZDtcblxuICAgIG1heFNpbmdsZUVycm9yID0gbWF4U2luZ2xlRXJyb3IgfHwgdGhpcy5TSU5HTEVfQ09ERV9FUlJPUiB8fCAxO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGNvdW50ZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgc3VtICs9IGNvdW50ZXJbaV07XG4gICAgICAgIG1vZHVsbyArPSBjb2RlW2ldO1xuICAgIH1cbiAgICBpZiAoc3VtIDwgbW9kdWxvKSB7XG4gICAgICAgIHJldHVybiBOdW1iZXIuTUFYX1ZBTFVFO1xuICAgIH1cbiAgICBiYXJXaWR0aCA9IHN1bSAvIG1vZHVsbztcbiAgICBtYXhTaW5nbGVFcnJvciAqPSBiYXJXaWR0aDtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvdW50ID0gY291bnRlcltpXTtcbiAgICAgICAgc2NhbGVkID0gY29kZVtpXSAqIGJhcldpZHRoO1xuICAgICAgICBzaW5nbGVFcnJvciA9IE1hdGguYWJzKGNvdW50IC0gc2NhbGVkKSAvIHNjYWxlZDtcbiAgICAgICAgaWYgKHNpbmdsZUVycm9yID4gbWF4U2luZ2xlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIuTUFYX1ZBTFVFO1xuICAgICAgICB9XG4gICAgICAgIGVycm9yICs9IHNpbmdsZUVycm9yO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3IgLyBtb2R1bG87XG59O1xuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5fbmV4dFNldCA9IGZ1bmN0aW9uKGxpbmUsIG9mZnNldCkge1xuICAgIHZhciBpO1xuXG4gICAgb2Zmc2V0ID0gb2Zmc2V0IHx8IDA7XG4gICAgZm9yIChpID0gb2Zmc2V0OyBpIDwgbGluZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAobGluZVtpXSkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmUubGVuZ3RoO1xufTtcblxuQmFyY29kZVJlYWRlci5wcm90b3R5cGUuX2NvcnJlY3RCYXJzID0gZnVuY3Rpb24oY291bnRlciwgY29ycmVjdGlvbiwgaW5kaWNlcykge1xuICAgIHZhciBsZW5ndGggPSBpbmRpY2VzLmxlbmd0aCxcbiAgICAgICAgdG1wID0gMDtcbiAgICB3aGlsZShsZW5ndGgtLSkge1xuICAgICAgICB0bXAgPSBjb3VudGVyW2luZGljZXNbbGVuZ3RoXV0gKiAoMSAtICgoMSAtIGNvcnJlY3Rpb24pIC8gMikpO1xuICAgICAgICBpZiAodG1wID4gMSkge1xuICAgICAgICAgICAgY291bnRlcltpbmRpY2VzW2xlbmd0aF1dID0gdG1wO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5fbWF0Y2hUcmFjZSA9IGZ1bmN0aW9uKGNtcENvdW50ZXIsIGVwc2lsb24pIHtcbiAgICB2YXIgY291bnRlciA9IFtdLFxuICAgICAgICBpLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgb2Zmc2V0ID0gc2VsZi5fbmV4dFNldChzZWxmLl9yb3cpLFxuICAgICAgICBpc1doaXRlID0gIXNlbGYuX3Jvd1tvZmZzZXRdLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiAwXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yO1xuXG4gICAgaWYgKGNtcENvdW50ZXIpIHtcbiAgICAgICAgZm9yICggaSA9IDA7IGkgPCBjbXBDb3VudGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb3VudGVyLnB1c2goMCk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICggaSA9IG9mZnNldDsgaSA8IHNlbGYuX3Jvdy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBjb3VudGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBzZWxmLl9tYXRjaFBhdHRlcm4oY291bnRlciwgY21wQ291bnRlcik7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yIDwgZXBzaWxvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLnN0YXJ0ID0gaSAtIG9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5lbmQgPSBpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmNvdW50ZXIgPSBjb3VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJlc3RNYXRjaDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY291bnRlclBvcysrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgICAgICBpc1doaXRlID0gIWlzV2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjb3VudGVyLnB1c2goMCk7XG4gICAgICAgIGZvciAoIGkgPSBvZmZzZXQ7IGkgPCBzZWxmLl9yb3cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChzZWxmLl9yb3dbaV0gXiBpc1doaXRlKSB7XG4gICAgICAgICAgICAgICAgY291bnRlcltjb3VudGVyUG9zXSsrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyUG9zKys7XG4gICAgICAgICAgICAgICAgY291bnRlci5wdXNoKDApO1xuICAgICAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10gPSAxO1xuICAgICAgICAgICAgICAgIGlzV2hpdGUgPSAhaXNXaGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGlmIGNtcENvdW50ZXIgd2FzIG5vdCBnaXZlblxuICAgIGJlc3RNYXRjaC5zdGFydCA9IG9mZnNldDtcbiAgICBiZXN0TWF0Y2guZW5kID0gc2VsZi5fcm93Lmxlbmd0aCAtIDE7XG4gICAgYmVzdE1hdGNoLmNvdW50ZXIgPSBjb3VudGVyO1xuICAgIHJldHVybiBiZXN0TWF0Y2g7XG59O1xuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5kZWNvZGVQYXR0ZXJuID0gZnVuY3Rpb24ocGF0dGVybikge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgcmVzdWx0O1xuXG4gICAgc2VsZi5fcm93ID0gcGF0dGVybjtcbiAgICByZXN1bHQgPSBzZWxmLl9kZWNvZGUoKTtcbiAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgIHNlbGYuX3Jvdy5yZXZlcnNlKCk7XG4gICAgICAgIHJlc3VsdCA9IHNlbGYuX2RlY29kZSgpO1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICByZXN1bHQuZGlyZWN0aW9uID0gQmFyY29kZVJlYWRlci5ESVJFQ1RJT04uUkVWRVJTRTtcbiAgICAgICAgICAgIHJlc3VsdC5zdGFydCA9IHNlbGYuX3Jvdy5sZW5ndGggLSByZXN1bHQuc3RhcnQ7XG4gICAgICAgICAgICByZXN1bHQuZW5kID0gc2VsZi5fcm93Lmxlbmd0aCAtIHJlc3VsdC5lbmQ7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQuZGlyZWN0aW9uID0gQmFyY29kZVJlYWRlci5ESVJFQ1RJT04uRk9SV0FSRDtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgICByZXN1bHQuZm9ybWF0ID0gc2VsZi5GT1JNQVQ7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5fbWF0Y2hSYW5nZSA9IGZ1bmN0aW9uKHN0YXJ0LCBlbmQsIHZhbHVlKSB7XG4gICAgdmFyIGk7XG5cbiAgICBzdGFydCA9IHN0YXJ0IDwgMCA/IDAgOiBzdGFydDtcbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLl9yb3dbaV0gIT09IHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuXG5CYXJjb2RlUmVhZGVyLnByb3RvdHlwZS5fZmlsbENvdW50ZXJzID0gZnVuY3Rpb24ob2Zmc2V0LCBlbmQsIGlzV2hpdGUpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGNvdW50ZXJQb3MgPSAwLFxuICAgICAgICBpLFxuICAgICAgICBjb3VudGVycyA9IFtdO1xuXG4gICAgaXNXaGl0ZSA9ICh0eXBlb2YgaXNXaGl0ZSAhPT0gJ3VuZGVmaW5lZCcpID8gaXNXaGl0ZSA6IHRydWU7XG4gICAgb2Zmc2V0ID0gKHR5cGVvZiBvZmZzZXQgIT09ICd1bmRlZmluZWQnKSA/IG9mZnNldCA6IHNlbGYuX25leHRVbnNldChzZWxmLl9yb3cpO1xuICAgIGVuZCA9IGVuZCB8fCBzZWxmLl9yb3cubGVuZ3RoO1xuXG4gICAgY291bnRlcnNbY291bnRlclBvc10gPSAwO1xuICAgIGZvciAoaSA9IG9mZnNldDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLl9yb3dbaV0gXiBpc1doaXRlKSB7XG4gICAgICAgICAgICBjb3VudGVyc1tjb3VudGVyUG9zXSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY291bnRlclBvcysrO1xuICAgICAgICAgICAgY291bnRlcnNbY291bnRlclBvc10gPSAxO1xuICAgICAgICAgICAgaXNXaGl0ZSA9ICFpc1doaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb3VudGVycztcbn07XG5cbkJhcmNvZGVSZWFkZXIucHJvdG90eXBlLl90b0NvdW50ZXJzID0gZnVuY3Rpb24oc3RhcnQsIGNvdW50ZXIpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIG51bUNvdW50ZXJzID0gY291bnRlci5sZW5ndGgsXG4gICAgICAgIGVuZCA9IHNlbGYuX3Jvdy5sZW5ndGgsXG4gICAgICAgIGlzV2hpdGUgPSAhc2VsZi5fcm93W3N0YXJ0XSxcbiAgICAgICAgaSxcbiAgICAgICAgY291bnRlclBvcyA9IDA7XG5cbiAgICBBcnJheUhlbHBlci5pbml0KGNvdW50ZXIsIDApO1xuXG4gICAgZm9yICggaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10rKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvdW50ZXJQb3MrKztcbiAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBudW1Db3VudGVycykge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgICAgICBpc1doaXRlID0gIWlzV2hpdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY291bnRlcjtcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCYXJjb2RlUmVhZGVyLnByb3RvdHlwZSwgXCJGT1JNQVRcIiwge1xuICAgIHZhbHVlOiAndW5rbm93bicsXG4gICAgd3JpdGVhYmxlOiBmYWxzZVxufSk7XG5cbkJhcmNvZGVSZWFkZXIuRElSRUNUSU9OID0ge1xuICAgIEZPUldBUkQ6IDEsXG4gICAgUkVWRVJTRTogLTFcbn07XG5cbkJhcmNvZGVSZWFkZXIuRXhjZXB0aW9uID0ge1xuICAgIFN0YXJ0Tm90Rm91bmRFeGNlcHRpb246IFwiU3RhcnQtSW5mbyB3YXMgbm90IGZvdW5kIVwiLFxuICAgIENvZGVOb3RGb3VuZEV4Y2VwdGlvbjogXCJDb2RlIGNvdWxkIG5vdCBiZSBmb3VuZCFcIixcbiAgICBQYXR0ZXJuTm90Rm91bmRFeGNlcHRpb246IFwiUGF0dGVybiBjb3VsZCBub3QgYmUgZm91bmQhXCJcbn07XG5cbkJhcmNvZGVSZWFkZXIuQ09ORklHX0tFWVMgPSB7fTtcblxuZXhwb3J0IGRlZmF1bHQgQmFyY29kZVJlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvYmFyY29kZV9yZWFkZXIuanMiLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYEFycmF5YCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0FycmF5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9pc0FycmF5LmpzXG4vLyBtb2R1bGUgaWQgPSAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImV4cG9ydCBkZWZhdWx0IHtcbiAgICBpbml0OiBmdW5jdGlvbihhcnIsIHZhbCkge1xuICAgICAgICB2YXIgbCA9IGFyci5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChsLS0pIHtcbiAgICAgICAgICAgIGFycltsXSA9IHZhbDtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBTaHVmZmxlcyB0aGUgY29udGVudCBvZiBhbiBhcnJheVxuICAgICAqIEByZXR1cm4ge0FycmF5fSB0aGUgYXJyYXkgaXRzZWxmIHNodWZmbGVkXG4gICAgICovXG4gICAgc2h1ZmZsZTogZnVuY3Rpb24oYXJyKSB7XG4gICAgICAgIHZhciBpID0gYXJyLmxlbmd0aCAtIDEsIGosIHg7XG4gICAgICAgIGZvciAoaTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBpKTtcbiAgICAgICAgICAgIHggPSBhcnJbaV07XG4gICAgICAgICAgICBhcnJbaV0gPSBhcnJbal07XG4gICAgICAgICAgICBhcnJbal0gPSB4O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfSxcblxuICAgIHRvUG9pbnRMaXN0OiBmdW5jdGlvbihhcnIpIHtcbiAgICAgICAgdmFyIGksIGosIHJvdyA9IFtdLCByb3dzID0gW107XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICByb3cgPSBbXTtcbiAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgYXJyW2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgcm93W2pdID0gYXJyW2ldW2pdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm93c1tpXSA9IFwiW1wiICsgcm93LmpvaW4oXCIsXCIpICsgXCJdXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwiW1wiICsgcm93cy5qb2luKFwiLFxcclxcblwiKSArIFwiXVwiO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIHRoZSBlbGVtZW50cyB3aGljaCdzIHNjb3JlIGlzIGJpZ2dlciB0aGFuIHRoZSB0aHJlc2hvbGRcbiAgICAgKiBAcmV0dXJuIHtBcnJheX0gdGhlIHJlZHVjZWQgYXJyYXlcbiAgICAgKi9cbiAgICB0aHJlc2hvbGQ6IGZ1bmN0aW9uKGFyciwgdGhyZXNob2xkLCBzY29yZUZ1bmMpIHtcbiAgICAgICAgdmFyIGksIHF1ZXVlID0gW107XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoc2NvcmVGdW5jLmFwcGx5KGFyciwgW2FycltpXV0pID49IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgIHF1ZXVlLnB1c2goYXJyW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcXVldWU7XG4gICAgfSxcblxuICAgIG1heEluZGV4OiBmdW5jdGlvbihhcnIpIHtcbiAgICAgICAgdmFyIGksIG1heCA9IDA7XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoYXJyW2ldID4gYXJyW21heF0pIHtcbiAgICAgICAgICAgICAgICBtYXggPSBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXg7XG4gICAgfSxcblxuICAgIG1heDogZnVuY3Rpb24oYXJyKSB7XG4gICAgICAgIHZhciBpLCBtYXggPSAwO1xuICAgICAgICBmb3IgKCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGFycltpXSA+IG1heCkge1xuICAgICAgICAgICAgICAgIG1heCA9IGFycltpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4O1xuICAgIH0sXG5cbiAgICBzdW06IGZ1bmN0aW9uKGFycikge1xuICAgICAgICB2YXIgbGVuZ3RoID0gYXJyLmxlbmd0aCxcbiAgICAgICAgICAgIHN1bSA9IDA7XG5cbiAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgICAgICBzdW0gKz0gYXJyW2xlbmd0aF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1bTtcbiAgICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9hcnJheV9oZWxwZXIuanMiLCJpbXBvcnQgQmFyY29kZVJlYWRlciBmcm9tICcuL2JhcmNvZGVfcmVhZGVyJztcbmltcG9ydCB7bWVyZ2V9IGZyb20gJ2xvZGFzaCc7XG5cbmZ1bmN0aW9uIEVBTlJlYWRlcihvcHRzLCBzdXBwbGVtZW50cykge1xuICAgIG9wdHMgPSBtZXJnZShnZXREZWZhdWxDb25maWcoKSwgb3B0cyk7XG4gICAgQmFyY29kZVJlYWRlci5jYWxsKHRoaXMsIG9wdHMsIHN1cHBsZW1lbnRzKTtcbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsQ29uZmlnKCkge1xuICAgIHZhciBjb25maWcgPSB7fTtcblxuICAgIE9iamVjdC5rZXlzKEVBTlJlYWRlci5DT05GSUdfS0VZUykuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgY29uZmlnW2tleV0gPSBFQU5SZWFkZXIuQ09ORklHX0tFWVNba2V5XS5kZWZhdWx0O1xuICAgIH0pO1xuICAgIHJldHVybiBjb25maWc7XG59XG5cbnZhciBwcm9wZXJ0aWVzID0ge1xuICAgIENPREVfTF9TVEFSVDoge3ZhbHVlOiAwfSxcbiAgICBDT0RFX0dfU1RBUlQ6IHt2YWx1ZTogMTB9LFxuICAgIFNUQVJUX1BBVFRFUk46IHt2YWx1ZTogWzEsIDEsIDFdfSxcbiAgICBTVE9QX1BBVFRFUk46IHt2YWx1ZTogWzEsIDEsIDFdfSxcbiAgICBNSURETEVfUEFUVEVSTjoge3ZhbHVlOiBbMSwgMSwgMSwgMSwgMV19LFxuICAgIEVYVEVOU0lPTl9TVEFSVF9QQVRURVJOOiB7dmFsdWU6IFsxLCAxLCAyXX0sXG4gICAgQ09ERV9QQVRURVJOOiB7dmFsdWU6IFtcbiAgICAgICAgWzMsIDIsIDEsIDFdLFxuICAgICAgICBbMiwgMiwgMiwgMV0sXG4gICAgICAgIFsyLCAxLCAyLCAyXSxcbiAgICAgICAgWzEsIDQsIDEsIDFdLFxuICAgICAgICBbMSwgMSwgMywgMl0sXG4gICAgICAgIFsxLCAyLCAzLCAxXSxcbiAgICAgICAgWzEsIDEsIDEsIDRdLFxuICAgICAgICBbMSwgMywgMSwgMl0sXG4gICAgICAgIFsxLCAyLCAxLCAzXSxcbiAgICAgICAgWzMsIDEsIDEsIDJdLFxuICAgICAgICBbMSwgMSwgMiwgM10sXG4gICAgICAgIFsxLCAyLCAyLCAyXSxcbiAgICAgICAgWzIsIDIsIDEsIDJdLFxuICAgICAgICBbMSwgMSwgNCwgMV0sXG4gICAgICAgIFsyLCAzLCAxLCAxXSxcbiAgICAgICAgWzEsIDMsIDIsIDFdLFxuICAgICAgICBbNCwgMSwgMSwgMV0sXG4gICAgICAgIFsyLCAxLCAzLCAxXSxcbiAgICAgICAgWzMsIDEsIDIsIDFdLFxuICAgICAgICBbMiwgMSwgMSwgM11cbiAgICBdfSxcbiAgICBDT0RFX0ZSRVFVRU5DWToge3ZhbHVlOiBbMCwgMTEsIDEzLCAxNCwgMTksIDI1LCAyOCwgMjEsIDIyLCAyNl19LFxuICAgIFNJTkdMRV9DT0RFX0VSUk9SOiB7dmFsdWU6IDAuNzB9LFxuICAgIEFWR19DT0RFX0VSUk9SOiB7dmFsdWU6IDAuNDh9LFxuICAgIEZPUk1BVDoge3ZhbHVlOiBcImVhbl8xM1wiLCB3cml0ZWFibGU6IGZhbHNlfVxufTtcblxuRUFOUmVhZGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQmFyY29kZVJlYWRlci5wcm90b3R5cGUsIHByb3BlcnRpZXMpO1xuRUFOUmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEVBTlJlYWRlcjtcblxuRUFOUmVhZGVyLnByb3RvdHlwZS5fZGVjb2RlQ29kZSA9IGZ1bmN0aW9uKHN0YXJ0LCBjb2RlcmFuZ2UpIHtcbiAgICB2YXIgY291bnRlciA9IFswLCAwLCAwLCAwXSxcbiAgICAgICAgaSxcbiAgICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICAgIG9mZnNldCA9IHN0YXJ0LFxuICAgICAgICBpc1doaXRlID0gIXNlbGYuX3Jvd1tvZmZzZXRdLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogc3RhcnRcbiAgICAgICAgfSxcbiAgICAgICAgY29kZSxcbiAgICAgICAgZXJyb3I7XG5cbiAgICBpZiAoIWNvZGVyYW5nZSkge1xuICAgICAgICBjb2RlcmFuZ2UgPSBzZWxmLkNPREVfUEFUVEVSTi5sZW5ndGg7XG4gICAgfVxuXG4gICAgZm9yICggaSA9IG9mZnNldDsgaSA8IHNlbGYuX3Jvdy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc2VsZi5fcm93W2ldIF4gaXNXaGl0ZSkge1xuICAgICAgICAgICAgY291bnRlcltjb3VudGVyUG9zXSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNvdW50ZXJQb3MgPT09IGNvdW50ZXIubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29kZSA9IDA7IGNvZGUgPCBjb2RlcmFuZ2U7IGNvZGUrKykge1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9IHNlbGYuX21hdGNoUGF0dGVybihjb3VudGVyLCBzZWxmLkNPREVfUEFUVEVSTltjb2RlXSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciA8IGJlc3RNYXRjaC5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmNvZGUgPSBjb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVuZCA9IGk7XG4gICAgICAgICAgICAgICAgaWYgKGJlc3RNYXRjaC5lcnJvciA+IHNlbGYuQVZHX0NPREVfRVJST1IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBiZXN0TWF0Y2g7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvdW50ZXJQb3MrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10gPSAxO1xuICAgICAgICAgICAgaXNXaGl0ZSA9ICFpc1doaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuRUFOUmVhZGVyLnByb3RvdHlwZS5fZmluZFBhdHRlcm4gPSBmdW5jdGlvbihwYXR0ZXJuLCBvZmZzZXQsIGlzV2hpdGUsIHRyeUhhcmRlciwgZXBzaWxvbikge1xuICAgIHZhciBjb3VudGVyID0gW10sXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBpLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yLFxuICAgICAgICBqLFxuICAgICAgICBzdW07XG5cbiAgICBpZiAoIW9mZnNldCkge1xuICAgICAgICBvZmZzZXQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3Jvdyk7XG4gICAgfVxuXG4gICAgaWYgKGlzV2hpdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpc1doaXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRyeUhhcmRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRyeUhhcmRlciA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCBlcHNpbG9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZXBzaWxvbiA9IHNlbGYuQVZHX0NPREVfRVJST1I7XG4gICAgfVxuXG4gICAgZm9yICggaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvdW50ZXJbaV0gPSAwO1xuICAgIH1cblxuICAgIGZvciAoIGkgPSBvZmZzZXQ7IGkgPCBzZWxmLl9yb3cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10rKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBjb3VudGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICBzdW0gPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgY291bnRlci5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICBzdW0gKz0gY291bnRlcltqXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZXJyb3IgPSBzZWxmLl9tYXRjaFBhdHRlcm4oY291bnRlciwgcGF0dGVybik7XG5cbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IgPCBlcHNpbG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgICAgICAgICBiZXN0TWF0Y2guc3RhcnQgPSBpIC0gc3VtO1xuICAgICAgICAgICAgICAgICAgICBiZXN0TWF0Y2guZW5kID0gaTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJlc3RNYXRjaDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRyeUhhcmRlcikge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8IGNvdW50ZXIubGVuZ3RoIC0gMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudGVyW2pdID0gY291bnRlcltqICsgMl07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY291bnRlcltjb3VudGVyLmxlbmd0aCAtIDJdID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY291bnRlcltjb3VudGVyLmxlbmd0aCAtIDFdID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY291bnRlclBvcy0tO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY291bnRlclBvcysrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY291bnRlcltjb3VudGVyUG9zXSA9IDE7XG4gICAgICAgICAgICBpc1doaXRlID0gIWlzV2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5FQU5SZWFkZXIucHJvdG90eXBlLl9maW5kU3RhcnQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGxlYWRpbmdXaGl0ZXNwYWNlU3RhcnQsXG4gICAgICAgIG9mZnNldCA9IHNlbGYuX25leHRTZXQoc2VsZi5fcm93KSxcbiAgICAgICAgc3RhcnRJbmZvO1xuXG4gICAgd2hpbGUgKCFzdGFydEluZm8pIHtcbiAgICAgICAgc3RhcnRJbmZvID0gc2VsZi5fZmluZFBhdHRlcm4oc2VsZi5TVEFSVF9QQVRURVJOLCBvZmZzZXQpO1xuICAgICAgICBpZiAoIXN0YXJ0SW5mbykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbGVhZGluZ1doaXRlc3BhY2VTdGFydCA9IHN0YXJ0SW5mby5zdGFydCAtIChzdGFydEluZm8uZW5kIC0gc3RhcnRJbmZvLnN0YXJ0KTtcbiAgICAgICAgaWYgKGxlYWRpbmdXaGl0ZXNwYWNlU3RhcnQgPj0gMCkge1xuICAgICAgICAgICAgaWYgKHNlbGYuX21hdGNoUmFuZ2UobGVhZGluZ1doaXRlc3BhY2VTdGFydCwgc3RhcnRJbmZvLnN0YXJ0LCAwKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGFydEluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0ID0gc3RhcnRJbmZvLmVuZDtcbiAgICAgICAgc3RhcnRJbmZvID0gbnVsbDtcbiAgICB9XG59O1xuXG5FQU5SZWFkZXIucHJvdG90eXBlLl92ZXJpZnlUcmFpbGluZ1doaXRlc3BhY2UgPSBmdW5jdGlvbihlbmRJbmZvKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICB0cmFpbGluZ1doaXRlc3BhY2VFbmQ7XG5cbiAgICB0cmFpbGluZ1doaXRlc3BhY2VFbmQgPSBlbmRJbmZvLmVuZCArIChlbmRJbmZvLmVuZCAtIGVuZEluZm8uc3RhcnQpO1xuICAgIGlmICh0cmFpbGluZ1doaXRlc3BhY2VFbmQgPCBzZWxmLl9yb3cubGVuZ3RoKSB7XG4gICAgICAgIGlmIChzZWxmLl9tYXRjaFJhbmdlKGVuZEluZm8uZW5kLCB0cmFpbGluZ1doaXRlc3BhY2VFbmQsIDApKSB7XG4gICAgICAgICAgICByZXR1cm4gZW5kSW5mbztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbkVBTlJlYWRlci5wcm90b3R5cGUuX2ZpbmRFbmQgPSBmdW5jdGlvbihvZmZzZXQsIGlzV2hpdGUpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGVuZEluZm8gPSBzZWxmLl9maW5kUGF0dGVybihzZWxmLlNUT1BfUEFUVEVSTiwgb2Zmc2V0LCBpc1doaXRlLCBmYWxzZSk7XG5cbiAgICByZXR1cm4gZW5kSW5mbyAhPT0gbnVsbCA/IHNlbGYuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZShlbmRJbmZvKSA6IG51bGw7XG59O1xuXG5FQU5SZWFkZXIucHJvdG90eXBlLl9jYWxjdWxhdGVGaXJzdERpZ2l0ID0gZnVuY3Rpb24oY29kZUZyZXF1ZW5jeSkge1xuICAgIHZhciBpLFxuICAgICAgICBzZWxmID0gdGhpcztcblxuICAgIGZvciAoIGkgPSAwOyBpIDwgc2VsZi5DT0RFX0ZSRVFVRU5DWS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoY29kZUZyZXF1ZW5jeSA9PT0gc2VsZi5DT0RFX0ZSRVFVRU5DWVtpXSkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5FQU5SZWFkZXIucHJvdG90eXBlLl9kZWNvZGVQYXlsb2FkID0gZnVuY3Rpb24oY29kZSwgcmVzdWx0LCBkZWNvZGVkQ29kZXMpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICAgIGNvZGVGcmVxdWVuY3kgPSAweDAsXG4gICAgICAgIGZpcnN0RGlnaXQ7XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IDY7IGkrKykge1xuICAgICAgICBjb2RlID0gc2VsZi5fZGVjb2RlQ29kZShjb2RlLmVuZCk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvZGUuY29kZSA+PSBzZWxmLkNPREVfR19TVEFSVCkge1xuICAgICAgICAgICAgY29kZS5jb2RlID0gY29kZS5jb2RlIC0gc2VsZi5DT0RFX0dfU1RBUlQ7XG4gICAgICAgICAgICBjb2RlRnJlcXVlbmN5IHw9IDEgPDwgKDUgLSBpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvZGVGcmVxdWVuY3kgfD0gMCA8PCAoNSAtIGkpO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdC5wdXNoKGNvZGUuY29kZSk7XG4gICAgICAgIGRlY29kZWRDb2Rlcy5wdXNoKGNvZGUpO1xuICAgIH1cblxuICAgIGZpcnN0RGlnaXQgPSBzZWxmLl9jYWxjdWxhdGVGaXJzdERpZ2l0KGNvZGVGcmVxdWVuY3kpO1xuICAgIGlmIChmaXJzdERpZ2l0ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXN1bHQudW5zaGlmdChmaXJzdERpZ2l0KTtcblxuICAgIGNvZGUgPSBzZWxmLl9maW5kUGF0dGVybihzZWxmLk1JRERMRV9QQVRURVJOLCBjb2RlLmVuZCwgdHJ1ZSwgZmFsc2UpO1xuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcblxuICAgIGZvciAoIGkgPSAwOyBpIDwgNjsgaSsrKSB7XG4gICAgICAgIGNvZGUgPSBzZWxmLl9kZWNvZGVDb2RlKGNvZGUuZW5kLCBzZWxmLkNPREVfR19TVEFSVCk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZGVjb2RlZENvZGVzLnB1c2goY29kZSk7XG4gICAgICAgIHJlc3VsdC5wdXNoKGNvZGUuY29kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvZGU7XG59O1xuXG5FQU5SZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RhcnRJbmZvLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgY29kZSxcbiAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgIGRlY29kZWRDb2RlcyA9IFtdLFxuICAgICAgICByZXN1bHRJbmZvID0ge307XG5cbiAgICBzdGFydEluZm8gPSBzZWxmLl9maW5kU3RhcnQoKTtcbiAgICBpZiAoIXN0YXJ0SW5mbykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29kZSA9IHtcbiAgICAgICAgY29kZTogc3RhcnRJbmZvLmNvZGUsXG4gICAgICAgIHN0YXJ0OiBzdGFydEluZm8uc3RhcnQsXG4gICAgICAgIGVuZDogc3RhcnRJbmZvLmVuZFxuICAgIH07XG4gICAgZGVjb2RlZENvZGVzLnB1c2goY29kZSk7XG4gICAgY29kZSA9IHNlbGYuX2RlY29kZVBheWxvYWQoY29kZSwgcmVzdWx0LCBkZWNvZGVkQ29kZXMpO1xuICAgIGlmICghY29kZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29kZSA9IHNlbGYuX2ZpbmRFbmQoY29kZS5lbmQsIGZhbHNlKTtcbiAgICBpZiAoIWNvZGUpe1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcblxuICAgIC8vIENoZWNrc3VtXG4gICAgaWYgKCFzZWxmLl9jaGVja3N1bShyZXN1bHQpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN1cHBsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGV0IGV4dCA9IHRoaXMuX2RlY29kZUV4dGVuc2lvbnMoY29kZS5lbmQpO1xuICAgICAgICBpZiAoIWV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxhc3RDb2RlID0gZXh0LmRlY29kZWRDb2Rlc1tleHQuZGVjb2RlZENvZGVzLmxlbmd0aC0xXSxcbiAgICAgICAgICAgIGVuZEluZm8gPSB7XG4gICAgICAgICAgICAgICAgc3RhcnQ6IGxhc3RDb2RlLnN0YXJ0ICsgKCgobGFzdENvZGUuZW5kIC0gbGFzdENvZGUuc3RhcnQpIC8gMikgfCAwKSxcbiAgICAgICAgICAgICAgICBlbmQ6IGxhc3RDb2RlLmVuZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgaWYoIXNlbGYuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZShlbmRJbmZvKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0SW5mbyA9IHtcbiAgICAgICAgICAgIHN1cHBsZW1lbnQ6IGV4dCxcbiAgICAgICAgICAgIGNvZGU6IHJlc3VsdC5qb2luKFwiXCIpICsgZXh0LmNvZGVcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IHJlc3VsdC5qb2luKFwiXCIpLFxuICAgICAgICBzdGFydDogc3RhcnRJbmZvLnN0YXJ0LFxuICAgICAgICBlbmQ6IGNvZGUuZW5kLFxuICAgICAgICBjb2Rlc2V0OiBcIlwiLFxuICAgICAgICBzdGFydEluZm86IHN0YXJ0SW5mbyxcbiAgICAgICAgZGVjb2RlZENvZGVzOiBkZWNvZGVkQ29kZXMsXG4gICAgICAgIC4uLnJlc3VsdEluZm9cbiAgICB9O1xufTtcblxuRUFOUmVhZGVyLnByb3RvdHlwZS5fZGVjb2RlRXh0ZW5zaW9ucyA9IGZ1bmN0aW9uKG9mZnNldCkge1xuICAgIHZhciBpLFxuICAgICAgICBzdGFydCA9IHRoaXMuX25leHRTZXQodGhpcy5fcm93LCBvZmZzZXQpLFxuICAgICAgICBzdGFydEluZm8gPSB0aGlzLl9maW5kUGF0dGVybih0aGlzLkVYVEVOU0lPTl9TVEFSVF9QQVRURVJOLCBzdGFydCwgZmFsc2UsIGZhbHNlKSxcbiAgICAgICAgcmVzdWx0O1xuXG4gICAgaWYgKHN0YXJ0SW5mbyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5zdXBwbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICByZXN1bHQgPSB0aGlzLnN1cHBsZW1lbnRzW2ldLmRlY29kZSh0aGlzLl9yb3csIHN0YXJ0SW5mby5lbmQpO1xuICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGNvZGU6IHJlc3VsdC5jb2RlLFxuICAgICAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgICAgIHN0YXJ0SW5mbyxcbiAgICAgICAgICAgICAgICBlbmQ6IHJlc3VsdC5lbmQsXG4gICAgICAgICAgICAgICAgY29kZXNldDogXCJcIixcbiAgICAgICAgICAgICAgICBkZWNvZGVkQ29kZXM6IHJlc3VsdC5kZWNvZGVkQ29kZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbkVBTlJlYWRlci5wcm90b3R5cGUuX2NoZWNrc3VtID0gZnVuY3Rpb24ocmVzdWx0KSB7XG4gICAgdmFyIHN1bSA9IDAsIGk7XG5cbiAgICBmb3IgKCBpID0gcmVzdWx0Lmxlbmd0aCAtIDI7IGkgPj0gMDsgaSAtPSAyKSB7XG4gICAgICAgIHN1bSArPSByZXN1bHRbaV07XG4gICAgfVxuICAgIHN1bSAqPSAzO1xuICAgIGZvciAoIGkgPSByZXN1bHQubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC09IDIpIHtcbiAgICAgICAgc3VtICs9IHJlc3VsdFtpXTtcbiAgICB9XG4gICAgcmV0dXJuIHN1bSAlIDEwID09PSAwO1xufTtcblxuRUFOUmVhZGVyLkNPTkZJR19LRVlTID0ge1xuICAgIHN1cHBsZW1lbnRzOiB7XG4gICAgICAgICd0eXBlJzogJ2FycmF5T2Yoc3RyaW5nKScsXG4gICAgICAgICdkZWZhdWx0JzogW10sXG4gICAgICAgICdkZXNjcmlwdGlvbic6ICdBbGxvd2VkIGV4dGVuc2lvbnMgdG8gYmUgZGVjb2RlZCAoMiBhbmQvb3IgNSknXG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgKEVBTlJlYWRlcik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcmVhZGVyL2Vhbl9yZWFkZXIuanMiLCJ2YXIgZnJlZUdsb2JhbCA9IHJlcXVpcmUoJy4vX2ZyZWVHbG9iYWwnKTtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvb3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19yb290LmpzXG4vLyBtb2R1bGUgaWQgPSA1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzT2JqZWN0TGlrZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvaXNPYmplY3RMaWtlLmpzXG4vLyBtb2R1bGUgaWQgPSA2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gY2xvbmVcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHZlYzIgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyB2ZWN0b3JcbiAqXG4gKiBAcGFyYW0ge3ZlYzJ9IGEgdmVjdG9yIHRvIGNsb25lXG4gKiBAcmV0dXJucyB7dmVjMn0gYSBuZXcgMkQgdmVjdG9yXG4gKi9cbmZ1bmN0aW9uIGNsb25lKGEpIHtcbiAgICB2YXIgb3V0ID0gbmV3IEZsb2F0MzJBcnJheSgyKVxuICAgIG91dFswXSA9IGFbMF1cbiAgICBvdXRbMV0gPSBhWzFdXG4gICAgcmV0dXJuIG91dFxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9nbC12ZWMyL2Nsb25lLmpzXG4vLyBtb2R1bGUgaWQgPSA3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKSxcbiAgICBnZXRSYXdUYWcgPSByZXF1aXJlKCcuL19nZXRSYXdUYWcnKSxcbiAgICBvYmplY3RUb1N0cmluZyA9IHJlcXVpcmUoJy4vX29iamVjdFRvU3RyaW5nJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBudWxsVGFnID0gJ1tvYmplY3QgTnVsbF0nLFxuICAgIHVuZGVmaW5lZFRhZyA9ICdbb2JqZWN0IFVuZGVmaW5lZF0nO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0VGFnYCB3aXRob3V0IGZhbGxiYWNrcyBmb3IgYnVnZ3kgZW52aXJvbm1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gIH1cbiAgcmV0dXJuIChzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKVxuICAgID8gZ2V0UmF3VGFnKHZhbHVlKVxuICAgIDogb2JqZWN0VG9TdHJpbmcodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VHZXRUYWc7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlR2V0VGFnLmpzXG4vLyBtb2R1bGUgaWQgPSA4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImV4cG9ydCBkZWZhdWx0IHtcbiAgICBkcmF3UmVjdDogZnVuY3Rpb24ocG9zLCBzaXplLCBjdHgsIHN0eWxlKXtcbiAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gc3R5bGUuY29sb3I7XG4gICAgICAgIGN0eC5maWxsU3R5bGUgPSBzdHlsZS5jb2xvcjtcbiAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDE7XG4gICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgY3R4LnN0cm9rZVJlY3QocG9zLngsIHBvcy55LCBzaXplLngsIHNpemUueSk7XG4gICAgfSxcbiAgICBkcmF3UGF0aDogZnVuY3Rpb24ocGF0aCwgZGVmLCBjdHgsIHN0eWxlKSB7XG4gICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IHN0eWxlLmNvbG9yO1xuICAgICAgICBjdHguZmlsbFN0eWxlID0gc3R5bGUuY29sb3I7XG4gICAgICAgIGN0eC5saW5lV2lkdGggPSBzdHlsZS5saW5lV2lkdGg7XG4gICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgY3R4Lm1vdmVUbyhwYXRoWzBdW2RlZi54XSwgcGF0aFswXVtkZWYueV0pO1xuICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8IHBhdGgubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIGN0eC5saW5lVG8ocGF0aFtqXVtkZWYueF0sIHBhdGhbal1bZGVmLnldKTtcbiAgICAgICAgfVxuICAgICAgICBjdHguY2xvc2VQYXRoKCk7XG4gICAgICAgIGN0eC5zdHJva2UoKTtcbiAgICB9LFxuICAgIGRyYXdJbWFnZTogZnVuY3Rpb24oaW1hZ2VEYXRhLCBzaXplLCBjdHgpIHtcbiAgICAgICAgdmFyIGNhbnZhc0RhdGEgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIHNpemUueCwgc2l6ZS55KSxcbiAgICAgICAgICAgIGRhdGEgPSBjYW52YXNEYXRhLmRhdGEsXG4gICAgICAgICAgICBpbWFnZURhdGFQb3MgPSBpbWFnZURhdGEubGVuZ3RoLFxuICAgICAgICAgICAgY2FudmFzRGF0YVBvcyA9IGRhdGEubGVuZ3RoLFxuICAgICAgICAgICAgdmFsdWU7XG5cbiAgICAgICAgaWYgKGNhbnZhc0RhdGFQb3MgLyBpbWFnZURhdGFQb3MgIT09IDQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaW1hZ2VEYXRhUG9zLS0pe1xuICAgICAgICAgICAgdmFsdWUgPSBpbWFnZURhdGFbaW1hZ2VEYXRhUG9zXTtcbiAgICAgICAgICAgIGRhdGFbLS1jYW52YXNEYXRhUG9zXSA9IDI1NTtcbiAgICAgICAgICAgIGRhdGFbLS1jYW52YXNEYXRhUG9zXSA9IHZhbHVlO1xuICAgICAgICAgICAgZGF0YVstLWNhbnZhc0RhdGFQb3NdID0gdmFsdWU7XG4gICAgICAgICAgICBkYXRhWy0tY2FudmFzRGF0YVBvc10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBjdHgucHV0SW1hZ2VEYXRhKGNhbnZhc0RhdGEsIDAsIDApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9pbWFnZV9kZWJ1Zy5qcyIsInZhciBsaXN0Q2FjaGVDbGVhciA9IHJlcXVpcmUoJy4vX2xpc3RDYWNoZUNsZWFyJyksXG4gICAgbGlzdENhY2hlRGVsZXRlID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlRGVsZXRlJyksXG4gICAgbGlzdENhY2hlR2V0ID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlR2V0JyksXG4gICAgbGlzdENhY2hlSGFzID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlSGFzJyksXG4gICAgbGlzdENhY2hlU2V0ID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlU2V0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBsaXN0IGNhY2hlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gTGlzdENhY2hlKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYExpc3RDYWNoZWAuXG5MaXN0Q2FjaGUucHJvdG90eXBlLmNsZWFyID0gbGlzdENhY2hlQ2xlYXI7XG5MaXN0Q2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IGxpc3RDYWNoZURlbGV0ZTtcbkxpc3RDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbGlzdENhY2hlR2V0O1xuTGlzdENhY2hlLnByb3RvdHlwZS5oYXMgPSBsaXN0Q2FjaGVIYXM7XG5MaXN0Q2FjaGUucHJvdG90eXBlLnNldCA9IGxpc3RDYWNoZVNldDtcblxubW9kdWxlLmV4cG9ydHMgPSBMaXN0Q2FjaGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19MaXN0Q2FjaGUuanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBTeW1ib2wgPSByb290LlN5bWJvbDtcblxubW9kdWxlLmV4cG9ydHMgPSBTeW1ib2w7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19TeW1ib2wuanNcbi8vIG1vZHVsZSBpZCA9IDExXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBlcSA9IHJlcXVpcmUoJy4vZXEnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgYGtleWAgaXMgZm91bmQgaW4gYGFycmF5YCBvZiBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAqL1xuZnVuY3Rpb24gYXNzb2NJbmRleE9mKGFycmF5LCBrZXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgaWYgKGVxKGFycmF5W2xlbmd0aF1bMF0sIGtleSkpIHtcbiAgICAgIHJldHVybiBsZW5ndGg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3NvY0luZGV4T2Y7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19hc3NvY0luZGV4T2YuanNcbi8vIG1vZHVsZSBpZCA9IDEyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNLZXkgPSByZXF1aXJlKCcuL19pc0tleScpLFxuICAgIHN0cmluZ1RvUGF0aCA9IHJlcXVpcmUoJy4vX3N0cmluZ1RvUGF0aCcpLFxuICAgIHRvU3RyaW5nID0gcmVxdWlyZSgnLi90b1N0cmluZycpO1xuXG4vKipcbiAqIENhc3RzIGB2YWx1ZWAgdG8gYSBwYXRoIGFycmF5IGlmIGl0J3Mgbm90IG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5IGtleXMgb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGNhc3QgcHJvcGVydHkgcGF0aCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gY2FzdFBhdGgodmFsdWUsIG9iamVjdCkge1xuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGlzS2V5KHZhbHVlLCBvYmplY3QpID8gW3ZhbHVlXSA6IHN0cmluZ1RvUGF0aCh0b1N0cmluZyh2YWx1ZSkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNhc3RQYXRoO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fY2FzdFBhdGguanNcbi8vIG1vZHVsZSBpZCA9IDEzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBpc0tleWFibGUgPSByZXF1aXJlKCcuL19pc0tleWFibGUnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBkYXRhIGZvciBgbWFwYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG1hcCBUaGUgbWFwIHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUgcmVmZXJlbmNlIGtleS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXAgZGF0YS5cbiAqL1xuZnVuY3Rpb24gZ2V0TWFwRGF0YShtYXAsIGtleSkge1xuICB2YXIgZGF0YSA9IG1hcC5fX2RhdGFfXztcbiAgcmV0dXJuIGlzS2V5YWJsZShrZXkpXG4gICAgPyBkYXRhW3R5cGVvZiBrZXkgPT0gJ3N0cmluZycgPyAnc3RyaW5nJyA6ICdoYXNoJ11cbiAgICA6IGRhdGEubWFwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldE1hcERhdGE7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19nZXRNYXBEYXRhLmpzXG4vLyBtb2R1bGUgaWQgPSAxNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xudmFyIHJlSXNVaW50ID0gL14oPzowfFsxLTldXFxkKikkLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwgPyBNQVhfU0FGRV9JTlRFR0VSIDogbGVuZ3RoO1xuICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAodHlwZW9mIHZhbHVlID09ICdudW1iZXInIHx8IHJlSXNVaW50LnRlc3QodmFsdWUpKSAmJlxuICAgICh2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0luZGV4O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9faXNJbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4vX2dldE5hdGl2ZScpO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgbmF0aXZlQ3JlYXRlID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2NyZWF0ZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5hdGl2ZUNyZWF0ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX25hdGl2ZUNyZWF0ZS5qc1xuLy8gbW9kdWxlIGlkID0gMTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBQZXJmb3JtcyBhXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICpcbiAqIF8uZXEob2JqZWN0LCBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEob2JqZWN0LCBvdGhlcik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoJ2EnLCAnYScpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEoJ2EnLCBPYmplY3QoJ2EnKSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoTmFOLCBOYU4pO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBvdGhlciB8fCAodmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXE7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2VxLmpzXG4vLyBtb2R1bGUgaWQgPSAxN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZUlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9fYmFzZUlzQXJndW1lbnRzJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJndW1lbnRzID0gYmFzZUlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID8gYmFzZUlzQXJndW1lbnRzIDogZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpICYmXG4gICAgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcmd1bWVudHM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2lzQXJndW1lbnRzLmpzXG4vLyBtb2R1bGUgaWQgPSAxOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJpbXBvcnQgQ2x1c3RlcjIgZnJvbSAnLi9jbHVzdGVyJztcbmltcG9ydCBBcnJheUhlbHBlciBmcm9tICcuL2FycmF5X2hlbHBlcic7XG5jb25zdCB2ZWMyID0ge1xuICAgIGNsb25lOiByZXF1aXJlKCdnbC12ZWMyL2Nsb25lJyksXG59O1xuY29uc3QgdmVjMyA9IHtcbiAgICBjbG9uZTogcmVxdWlyZSgnZ2wtdmVjMy9jbG9uZScpLFxufTtcblxuLyoqXG4gKiBAcGFyYW0geCB4LWNvb3JkaW5hdGVcbiAqIEBwYXJhbSB5IHktY29vcmRpbmF0ZVxuICogQHJldHVybiBJbWFnZVJlZmVyZW5jZSB7eCx5fSBDb29yZGluYXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbWFnZVJlZih4LCB5KSB7XG4gICAgdmFyIHRoYXQgPSB7XG4gICAgICAgIHg6IHgsXG4gICAgICAgIHk6IHksXG4gICAgICAgIHRvVmVjMjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdmVjMi5jbG9uZShbdGhpcy54LCB0aGlzLnldKTtcbiAgICAgICAgfSxcbiAgICAgICAgdG9WZWMzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiB2ZWMzLmNsb25lKFt0aGlzLngsIHRoaXMueSwgMV0pO1xuICAgICAgICB9LFxuICAgICAgICByb3VuZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLnggPSB0aGlzLnggPiAwLjAgPyBNYXRoLmZsb29yKHRoaXMueCArIDAuNSkgOiBNYXRoLmZsb29yKHRoaXMueCAtIDAuNSk7XG4gICAgICAgICAgICB0aGlzLnkgPSB0aGlzLnkgPiAwLjAgPyBNYXRoLmZsb29yKHRoaXMueSArIDAuNSkgOiBNYXRoLmZsb29yKHRoaXMueSAtIDAuNSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHRoYXQ7XG59O1xuXG4vKipcbiAqIENvbXB1dGVzIGFuIGludGVncmFsIGltYWdlIG9mIGEgZ2l2ZW4gZ3JheXNjYWxlIGltYWdlLlxuICogQHBhcmFtIGltYWdlRGF0YUNvbnRhaW5lciB7SW1hZ2VEYXRhQ29udGFpbmVyfSB0aGUgaW1hZ2UgdG8gYmUgaW50ZWdyYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUludGVncmFsSW1hZ2UyKGltYWdlV3JhcHBlciwgaW50ZWdyYWxXcmFwcGVyKSB7XG4gICAgdmFyIGltYWdlRGF0YSA9IGltYWdlV3JhcHBlci5kYXRhO1xuICAgIHZhciB3aWR0aCA9IGltYWdlV3JhcHBlci5zaXplLng7XG4gICAgdmFyIGhlaWdodCA9IGltYWdlV3JhcHBlci5zaXplLnk7XG4gICAgdmFyIGludGVncmFsSW1hZ2VEYXRhID0gaW50ZWdyYWxXcmFwcGVyLmRhdGE7XG4gICAgdmFyIHN1bSA9IDAsIHBvc0EgPSAwLCBwb3NCID0gMCwgcG9zQyA9IDAsIHBvc0QgPSAwLCB4LCB5O1xuXG4gICAgLy8gc3VtIHVwIGZpcnN0IGNvbHVtblxuICAgIHBvc0IgPSB3aWR0aDtcbiAgICBzdW0gPSAwO1xuICAgIGZvciAoIHkgPSAxOyB5IDwgaGVpZ2h0OyB5KyspIHtcbiAgICAgICAgc3VtICs9IGltYWdlRGF0YVtwb3NBXTtcbiAgICAgICAgaW50ZWdyYWxJbWFnZURhdGFbcG9zQl0gKz0gc3VtO1xuICAgICAgICBwb3NBICs9IHdpZHRoO1xuICAgICAgICBwb3NCICs9IHdpZHRoO1xuICAgIH1cblxuICAgIHBvc0EgPSAwO1xuICAgIHBvc0IgPSAxO1xuICAgIHN1bSA9IDA7XG4gICAgZm9yICggeCA9IDE7IHggPCB3aWR0aDsgeCsrKSB7XG4gICAgICAgIHN1bSArPSBpbWFnZURhdGFbcG9zQV07XG4gICAgICAgIGludGVncmFsSW1hZ2VEYXRhW3Bvc0JdICs9IHN1bTtcbiAgICAgICAgcG9zQSsrO1xuICAgICAgICBwb3NCKys7XG4gICAgfVxuXG4gICAgZm9yICggeSA9IDE7IHkgPCBoZWlnaHQ7IHkrKykge1xuICAgICAgICBwb3NBID0geSAqIHdpZHRoICsgMTtcbiAgICAgICAgcG9zQiA9ICh5IC0gMSkgKiB3aWR0aCArIDE7XG4gICAgICAgIHBvc0MgPSB5ICogd2lkdGg7XG4gICAgICAgIHBvc0QgPSAoeSAtIDEpICogd2lkdGg7XG4gICAgICAgIGZvciAoIHggPSAxOyB4IDwgd2lkdGg7IHgrKykge1xuICAgICAgICAgICAgaW50ZWdyYWxJbWFnZURhdGFbcG9zQV0gKz1cbiAgICAgICAgICAgICAgICBpbWFnZURhdGFbcG9zQV0gKyBpbnRlZ3JhbEltYWdlRGF0YVtwb3NCXSArIGludGVncmFsSW1hZ2VEYXRhW3Bvc0NdIC0gaW50ZWdyYWxJbWFnZURhdGFbcG9zRF07XG4gICAgICAgICAgICBwb3NBKys7XG4gICAgICAgICAgICBwb3NCKys7XG4gICAgICAgICAgICBwb3NDKys7XG4gICAgICAgICAgICBwb3NEKys7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUludGVncmFsSW1hZ2UoaW1hZ2VXcmFwcGVyLCBpbnRlZ3JhbFdyYXBwZXIpIHtcbiAgICB2YXIgaW1hZ2VEYXRhID0gaW1hZ2VXcmFwcGVyLmRhdGE7XG4gICAgdmFyIHdpZHRoID0gaW1hZ2VXcmFwcGVyLnNpemUueDtcbiAgICB2YXIgaGVpZ2h0ID0gaW1hZ2VXcmFwcGVyLnNpemUueTtcbiAgICB2YXIgaW50ZWdyYWxJbWFnZURhdGEgPSBpbnRlZ3JhbFdyYXBwZXIuZGF0YTtcbiAgICB2YXIgc3VtID0gMDtcblxuICAgIC8vIHN1bSB1cCBmaXJzdCByb3dcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdpZHRoOyBpKyspIHtcbiAgICAgICAgc3VtICs9IGltYWdlRGF0YVtpXTtcbiAgICAgICAgaW50ZWdyYWxJbWFnZURhdGFbaV0gPSBzdW07XG4gICAgfVxuXG4gICAgZm9yICh2YXIgdiA9IDE7IHYgPCBoZWlnaHQ7IHYrKykge1xuICAgICAgICBzdW0gPSAwO1xuICAgICAgICBmb3IgKHZhciB1ID0gMDsgdSA8IHdpZHRoOyB1KyspIHtcbiAgICAgICAgICAgIHN1bSArPSBpbWFnZURhdGFbdiAqIHdpZHRoICsgdV07XG4gICAgICAgICAgICBpbnRlZ3JhbEltYWdlRGF0YVsoKHYpICogd2lkdGgpICsgdV0gPSBzdW0gKyBpbnRlZ3JhbEltYWdlRGF0YVsodiAtIDEpICogd2lkdGggKyB1XTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJlc2hvbGRJbWFnZShpbWFnZVdyYXBwZXIsIHRocmVzaG9sZCwgdGFyZ2V0V3JhcHBlcikge1xuICAgIGlmICghdGFyZ2V0V3JhcHBlcikge1xuICAgICAgICB0YXJnZXRXcmFwcGVyID0gaW1hZ2VXcmFwcGVyO1xuICAgIH1cbiAgICB2YXIgaW1hZ2VEYXRhID0gaW1hZ2VXcmFwcGVyLmRhdGEsIGxlbmd0aCA9IGltYWdlRGF0YS5sZW5ndGgsIHRhcmdldERhdGEgPSB0YXJnZXRXcmFwcGVyLmRhdGE7XG5cbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgdGFyZ2V0RGF0YVtsZW5ndGhdID0gaW1hZ2VEYXRhW2xlbmd0aF0gPCB0aHJlc2hvbGQgPyAxIDogMDtcbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUhpc3RvZ3JhbShpbWFnZVdyYXBwZXIsIGJpdHNQZXJQaXhlbCkge1xuICAgIGlmICghYml0c1BlclBpeGVsKSB7XG4gICAgICAgIGJpdHNQZXJQaXhlbCA9IDg7XG4gICAgfVxuICAgIHZhciBpbWFnZURhdGEgPSBpbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgbGVuZ3RoID0gaW1hZ2VEYXRhLmxlbmd0aCxcbiAgICAgICAgYml0U2hpZnQgPSA4IC0gYml0c1BlclBpeGVsLFxuICAgICAgICBidWNrZXRDbnQgPSAxIDw8IGJpdHNQZXJQaXhlbCxcbiAgICAgICAgaGlzdCA9IG5ldyBJbnQzMkFycmF5KGJ1Y2tldENudCk7XG5cbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgaGlzdFtpbWFnZURhdGFbbGVuZ3RoXSA+PiBiaXRTaGlmdF0rKztcbiAgICB9XG4gICAgcmV0dXJuIGhpc3Q7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2hhcnBlbkxpbmUobGluZSkge1xuICAgIHZhciBpLFxuICAgICAgICBsZW5ndGggPSBsaW5lLmxlbmd0aCxcbiAgICAgICAgbGVmdCA9IGxpbmVbMF0sXG4gICAgICAgIGNlbnRlciA9IGxpbmVbMV0sXG4gICAgICAgIHJpZ2h0O1xuXG4gICAgZm9yIChpID0gMTsgaSA8IGxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICByaWdodCA9IGxpbmVbaSArIDFdO1xuICAgICAgICAvLyAgLTEgNCAtMSBrZXJuZWxcbiAgICAgICAgbGluZVtpIC0gMV0gPSAoKChjZW50ZXIgKiAyKSAtIGxlZnQgLSByaWdodCkpICYgMjU1O1xuICAgICAgICBsZWZ0ID0gY2VudGVyO1xuICAgICAgICBjZW50ZXIgPSByaWdodDtcbiAgICB9XG4gICAgcmV0dXJuIGxpbmU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZXJtaW5lT3RzdVRocmVzaG9sZChpbWFnZVdyYXBwZXIsIGJpdHNQZXJQaXhlbCkge1xuICAgIGlmICghYml0c1BlclBpeGVsKSB7XG4gICAgICAgIGJpdHNQZXJQaXhlbCA9IDg7XG4gICAgfVxuICAgIHZhciBoaXN0LFxuICAgICAgICB0aHJlc2hvbGQsXG4gICAgICAgIGJpdFNoaWZ0ID0gOCAtIGJpdHNQZXJQaXhlbDtcblxuICAgIGZ1bmN0aW9uIHB4KGluaXQsIGVuZCkge1xuICAgICAgICB2YXIgc3VtID0gMCwgaTtcbiAgICAgICAgZm9yICggaSA9IGluaXQ7IGkgPD0gZW5kOyBpKyspIHtcbiAgICAgICAgICAgIHN1bSArPSBoaXN0W2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdW07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbXgoaW5pdCwgZW5kKSB7XG4gICAgICAgIHZhciBpLCBzdW0gPSAwO1xuXG4gICAgICAgIGZvciAoIGkgPSBpbml0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICAgICAgICBzdW0gKz0gaSAqIGhpc3RbaV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VtO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRldGVybWluZVRocmVzaG9sZCgpIHtcbiAgICAgICAgdmFyIHZldCA9IFswXSwgcDEsIHAyLCBwMTIsIGssIG0xLCBtMiwgbTEyLFxuICAgICAgICAgICAgbWF4ID0gKDEgPDwgYml0c1BlclBpeGVsKSAtIDE7XG5cbiAgICAgICAgaGlzdCA9IGNvbXB1dGVIaXN0b2dyYW0oaW1hZ2VXcmFwcGVyLCBiaXRzUGVyUGl4ZWwpO1xuICAgICAgICBmb3IgKCBrID0gMTsgayA8IG1heDsgaysrKSB7XG4gICAgICAgICAgICBwMSA9IHB4KDAsIGspO1xuICAgICAgICAgICAgcDIgPSBweChrICsgMSwgbWF4KTtcbiAgICAgICAgICAgIHAxMiA9IHAxICogcDI7XG4gICAgICAgICAgICBpZiAocDEyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcDEyID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG0xID0gbXgoMCwgaykgKiBwMjtcbiAgICAgICAgICAgIG0yID0gbXgoayArIDEsIG1heCkgKiBwMTtcbiAgICAgICAgICAgIG0xMiA9IG0xIC0gbTI7XG4gICAgICAgICAgICB2ZXRba10gPSBtMTIgKiBtMTIgLyBwMTI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEFycmF5SGVscGVyLm1heEluZGV4KHZldCk7XG4gICAgfVxuXG4gICAgdGhyZXNob2xkID0gZGV0ZXJtaW5lVGhyZXNob2xkKCk7XG4gICAgcmV0dXJuIHRocmVzaG9sZCA8PCBiaXRTaGlmdDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBvdHN1VGhyZXNob2xkKGltYWdlV3JhcHBlciwgdGFyZ2V0V3JhcHBlcikge1xuICAgIHZhciB0aHJlc2hvbGQgPSBkZXRlcm1pbmVPdHN1VGhyZXNob2xkKGltYWdlV3JhcHBlcik7XG5cbiAgICB0aHJlc2hvbGRJbWFnZShpbWFnZVdyYXBwZXIsIHRocmVzaG9sZCwgdGFyZ2V0V3JhcHBlcik7XG4gICAgcmV0dXJuIHRocmVzaG9sZDtcbn07XG5cbi8vIGxvY2FsIHRocmVzaG9sZGluZ1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVCaW5hcnlJbWFnZShpbWFnZVdyYXBwZXIsIGludGVncmFsV3JhcHBlciwgdGFyZ2V0V3JhcHBlcikge1xuICAgIGNvbXB1dGVJbnRlZ3JhbEltYWdlKGltYWdlV3JhcHBlciwgaW50ZWdyYWxXcmFwcGVyKTtcblxuICAgIGlmICghdGFyZ2V0V3JhcHBlcikge1xuICAgICAgICB0YXJnZXRXcmFwcGVyID0gaW1hZ2VXcmFwcGVyO1xuICAgIH1cbiAgICB2YXIgaW1hZ2VEYXRhID0gaW1hZ2VXcmFwcGVyLmRhdGE7XG4gICAgdmFyIHRhcmdldERhdGEgPSB0YXJnZXRXcmFwcGVyLmRhdGE7XG4gICAgdmFyIHdpZHRoID0gaW1hZ2VXcmFwcGVyLnNpemUueDtcbiAgICB2YXIgaGVpZ2h0ID0gaW1hZ2VXcmFwcGVyLnNpemUueTtcbiAgICB2YXIgaW50ZWdyYWxJbWFnZURhdGEgPSBpbnRlZ3JhbFdyYXBwZXIuZGF0YTtcbiAgICB2YXIgc3VtID0gMCwgdiwgdSwga2VybmVsID0gMywgQSwgQiwgQywgRCwgYXZnLCBzaXplID0gKGtlcm5lbCAqIDIgKyAxKSAqIChrZXJuZWwgKiAyICsgMSk7XG5cbiAgICAvLyBjbGVhciBvdXQgdG9wICYgYm90dG9tLWJvcmRlclxuICAgIGZvciAoIHYgPSAwOyB2IDw9IGtlcm5lbDsgdisrKSB7XG4gICAgICAgIGZvciAoIHUgPSAwOyB1IDwgd2lkdGg7IHUrKykge1xuICAgICAgICAgICAgdGFyZ2V0RGF0YVsoKHYpICogd2lkdGgpICsgdV0gPSAwO1xuICAgICAgICAgICAgdGFyZ2V0RGF0YVsoKChoZWlnaHQgLSAxKSAtIHYpICogd2lkdGgpICsgdV0gPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY2xlYXIgb3V0IGxlZnQgJiByaWdodCBib3JkZXJcbiAgICBmb3IgKCB2ID0ga2VybmVsOyB2IDwgaGVpZ2h0IC0ga2VybmVsOyB2KyspIHtcbiAgICAgICAgZm9yICggdSA9IDA7IHUgPD0ga2VybmVsOyB1KyspIHtcbiAgICAgICAgICAgIHRhcmdldERhdGFbKCh2KSAqIHdpZHRoKSArIHVdID0gMDtcbiAgICAgICAgICAgIHRhcmdldERhdGFbKCh2KSAqIHdpZHRoKSArICh3aWR0aCAtIDEgLSB1KV0gPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9yICggdiA9IGtlcm5lbCArIDE7IHYgPCBoZWlnaHQgLSBrZXJuZWwgLSAxOyB2KyspIHtcbiAgICAgICAgZm9yICggdSA9IGtlcm5lbCArIDE7IHUgPCB3aWR0aCAtIGtlcm5lbDsgdSsrKSB7XG4gICAgICAgICAgICBBID0gaW50ZWdyYWxJbWFnZURhdGFbKHYgLSBrZXJuZWwgLSAxKSAqIHdpZHRoICsgKHUgLSBrZXJuZWwgLSAxKV07XG4gICAgICAgICAgICBCID0gaW50ZWdyYWxJbWFnZURhdGFbKHYgLSBrZXJuZWwgLSAxKSAqIHdpZHRoICsgKHUgKyBrZXJuZWwpXTtcbiAgICAgICAgICAgIEMgPSBpbnRlZ3JhbEltYWdlRGF0YVsodiArIGtlcm5lbCkgKiB3aWR0aCArICh1IC0ga2VybmVsIC0gMSldO1xuICAgICAgICAgICAgRCA9IGludGVncmFsSW1hZ2VEYXRhWyh2ICsga2VybmVsKSAqIHdpZHRoICsgKHUgKyBrZXJuZWwpXTtcbiAgICAgICAgICAgIHN1bSA9IEQgLSBDIC0gQiArIEE7XG4gICAgICAgICAgICBhdmcgPSBzdW0gLyAoc2l6ZSk7XG4gICAgICAgICAgICB0YXJnZXREYXRhW3YgKiB3aWR0aCArIHVdID0gaW1hZ2VEYXRhW3YgKiB3aWR0aCArIHVdID4gKGF2ZyArIDUpID8gMCA6IDE7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY2x1c3Rlcihwb2ludHMsIHRocmVzaG9sZCwgcHJvcGVydHkpIHtcbiAgICB2YXIgaSwgaywgY2x1c3RlciwgcG9pbnQsIGNsdXN0ZXJzID0gW107XG5cbiAgICBpZiAoIXByb3BlcnR5KSB7XG4gICAgICAgIHByb3BlcnR5ID0gXCJyYWRcIjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRUb0NsdXN0ZXIobmV3UG9pbnQpIHtcbiAgICAgICAgdmFyIGZvdW5kID0gZmFsc2U7XG4gICAgICAgIGZvciAoIGsgPSAwOyBrIDwgY2x1c3RlcnMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgIGNsdXN0ZXIgPSBjbHVzdGVyc1trXTtcbiAgICAgICAgICAgIGlmIChjbHVzdGVyLmZpdHMobmV3UG9pbnQpKSB7XG4gICAgICAgICAgICAgICAgY2x1c3Rlci5hZGQobmV3UG9pbnQpO1xuICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgfVxuXG4gICAgLy8gaXRlcmF0ZSBvdmVyIGVhY2ggY2xvdWRcbiAgICBmb3IgKCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBwb2ludCA9IENsdXN0ZXIyLmNyZWF0ZVBvaW50KHBvaW50c1tpXSwgaSwgcHJvcGVydHkpO1xuICAgICAgICBpZiAoIWFkZFRvQ2x1c3Rlcihwb2ludCkpIHtcbiAgICAgICAgICAgIGNsdXN0ZXJzLnB1c2goQ2x1c3RlcjIuY3JlYXRlKHBvaW50LCB0aHJlc2hvbGQpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2x1c3RlcnM7XG59O1xuXG5leHBvcnQgY29uc3QgVHJhY2VyID0ge1xuICAgIHRyYWNlOiBmdW5jdGlvbihwb2ludHMsIHZlYykge1xuICAgICAgICB2YXIgaXRlcmF0aW9uLCBtYXhJdGVyYXRpb25zID0gMTAsIHRvcCA9IFtdLCByZXN1bHQgPSBbXSwgY2VudGVyUG9zID0gMCwgY3VycmVudFBvcyA9IDA7XG5cbiAgICAgICAgZnVuY3Rpb24gdHJhY2UoaWR4LCBmb3J3YXJkKSB7XG4gICAgICAgICAgICB2YXIgZnJvbSwgdG8sIHRvSWR4LCBwcmVkaWN0ZWRQb3MsIHRocmVzaG9sZFggPSAxLCB0aHJlc2hvbGRZID0gTWF0aC5hYnModmVjWzFdIC8gMTApLCBmb3VuZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBmdW5jdGlvbiBtYXRjaChwb3MsIHByZWRpY3RlZCkge1xuICAgICAgICAgICAgICAgIGlmIChwb3MueCA+IChwcmVkaWN0ZWQueCAtIHRocmVzaG9sZFgpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBwb3MueCA8IChwcmVkaWN0ZWQueCArIHRocmVzaG9sZFgpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBwb3MueSA+IChwcmVkaWN0ZWQueSAtIHRocmVzaG9sZFkpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBwb3MueSA8IChwcmVkaWN0ZWQueSArIHRocmVzaG9sZFkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZSBuZXh0IGluZGV4IGlzIHdpdGhpbiB0aGUgdmVjIHNwZWNpZmljYXRpb25zXG4gICAgICAgICAgICAvLyBpZiBub3QsIGNoZWNrIGFzIGxvbmcgYXMgdGhlIHRocmVzaG9sZCBpcyBtZXRcblxuICAgICAgICAgICAgZnJvbSA9IHBvaW50c1tpZHhdO1xuICAgICAgICAgICAgaWYgKGZvcndhcmQpIHtcbiAgICAgICAgICAgICAgICBwcmVkaWN0ZWRQb3MgPSB7XG4gICAgICAgICAgICAgICAgICAgIHg6IGZyb20ueCArIHZlY1swXSxcbiAgICAgICAgICAgICAgICAgICAgeTogZnJvbS55ICsgdmVjWzFdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHJlZGljdGVkUG9zID0ge1xuICAgICAgICAgICAgICAgICAgICB4OiBmcm9tLnggLSB2ZWNbMF0sXG4gICAgICAgICAgICAgICAgICAgIHk6IGZyb20ueSAtIHZlY1sxXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRvSWR4ID0gZm9yd2FyZCA/IGlkeCArIDEgOiBpZHggLSAxO1xuICAgICAgICAgICAgdG8gPSBwb2ludHNbdG9JZHhdO1xuICAgICAgICAgICAgd2hpbGUgKHRvICYmICggZm91bmQgPSBtYXRjaCh0bywgcHJlZGljdGVkUG9zKSkgIT09IHRydWUgJiYgKE1hdGguYWJzKHRvLnkgLSBmcm9tLnkpIDwgdmVjWzFdKSkge1xuICAgICAgICAgICAgICAgIHRvSWR4ID0gZm9yd2FyZCA/IHRvSWR4ICsgMSA6IHRvSWR4IC0gMTtcbiAgICAgICAgICAgICAgICB0byA9IHBvaW50c1t0b0lkeF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmb3VuZCA/IHRvSWR4IDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoIGl0ZXJhdGlvbiA9IDA7IGl0ZXJhdGlvbiA8IG1heEl0ZXJhdGlvbnM7IGl0ZXJhdGlvbisrKSB7XG4gICAgICAgICAgICAvLyByYW5kb21seSBzZWxlY3QgcG9pbnQgdG8gc3RhcnQgd2l0aFxuICAgICAgICAgICAgY2VudGVyUG9zID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcG9pbnRzLmxlbmd0aCk7XG5cbiAgICAgICAgICAgIC8vIHRyYWNlIGZvcndhcmRcbiAgICAgICAgICAgIHRvcCA9IFtdO1xuICAgICAgICAgICAgY3VycmVudFBvcyA9IGNlbnRlclBvcztcbiAgICAgICAgICAgIHRvcC5wdXNoKHBvaW50c1tjdXJyZW50UG9zXSk7XG4gICAgICAgICAgICB3aGlsZSAoKCBjdXJyZW50UG9zID0gdHJhY2UoY3VycmVudFBvcywgdHJ1ZSkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdG9wLnB1c2gocG9pbnRzW2N1cnJlbnRQb3NdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjZW50ZXJQb3MgPiAwKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFBvcyA9IGNlbnRlclBvcztcbiAgICAgICAgICAgICAgICB3aGlsZSAoKCBjdXJyZW50UG9zID0gdHJhY2UoY3VycmVudFBvcywgZmFsc2UpKSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0b3AucHVzaChwb2ludHNbY3VycmVudFBvc10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRvcC5sZW5ndGggPiByZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gdG9wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IERJTEFURSA9IDE7XG5leHBvcnQgY29uc3QgRVJPREUgPSAyO1xuXG5leHBvcnQgZnVuY3Rpb24gZGlsYXRlKGluSW1hZ2VXcmFwcGVyLCBvdXRJbWFnZVdyYXBwZXIpIHtcbiAgICB2YXIgdixcbiAgICAgICAgdSxcbiAgICAgICAgaW5JbWFnZURhdGEgPSBpbkltYWdlV3JhcHBlci5kYXRhLFxuICAgICAgICBvdXRJbWFnZURhdGEgPSBvdXRJbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgaGVpZ2h0ID0gaW5JbWFnZVdyYXBwZXIuc2l6ZS55LFxuICAgICAgICB3aWR0aCA9IGluSW1hZ2VXcmFwcGVyLnNpemUueCxcbiAgICAgICAgc3VtLFxuICAgICAgICB5U3RhcnQxLFxuICAgICAgICB5U3RhcnQyLFxuICAgICAgICB4U3RhcnQxLFxuICAgICAgICB4U3RhcnQyO1xuXG4gICAgZm9yICggdiA9IDE7IHYgPCBoZWlnaHQgLSAxOyB2KyspIHtcbiAgICAgICAgZm9yICggdSA9IDE7IHUgPCB3aWR0aCAtIDE7IHUrKykge1xuICAgICAgICAgICAgeVN0YXJ0MSA9IHYgLSAxO1xuICAgICAgICAgICAgeVN0YXJ0MiA9IHYgKyAxO1xuICAgICAgICAgICAgeFN0YXJ0MSA9IHUgLSAxO1xuICAgICAgICAgICAgeFN0YXJ0MiA9IHUgKyAxO1xuICAgICAgICAgICAgc3VtID0gaW5JbWFnZURhdGFbeVN0YXJ0MSAqIHdpZHRoICsgeFN0YXJ0MV0gKyBpbkltYWdlRGF0YVt5U3RhcnQxICogd2lkdGggKyB4U3RhcnQyXSArXG4gICAgICAgICAgICBpbkltYWdlRGF0YVt2ICogd2lkdGggKyB1XSArXG4gICAgICAgICAgICBpbkltYWdlRGF0YVt5U3RhcnQyICogd2lkdGggKyB4U3RhcnQxXSArIGluSW1hZ2VEYXRhW3lTdGFydDIgKiB3aWR0aCArIHhTdGFydDJdO1xuICAgICAgICAgICAgb3V0SW1hZ2VEYXRhW3YgKiB3aWR0aCArIHVdID0gc3VtID4gMCA/IDEgOiAwO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGVyb2RlKGluSW1hZ2VXcmFwcGVyLCBvdXRJbWFnZVdyYXBwZXIpIHtcbiAgICB2YXIgdixcbiAgICAgICAgdSxcbiAgICAgICAgaW5JbWFnZURhdGEgPSBpbkltYWdlV3JhcHBlci5kYXRhLFxuICAgICAgICBvdXRJbWFnZURhdGEgPSBvdXRJbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgaGVpZ2h0ID0gaW5JbWFnZVdyYXBwZXIuc2l6ZS55LFxuICAgICAgICB3aWR0aCA9IGluSW1hZ2VXcmFwcGVyLnNpemUueCxcbiAgICAgICAgc3VtLFxuICAgICAgICB5U3RhcnQxLFxuICAgICAgICB5U3RhcnQyLFxuICAgICAgICB4U3RhcnQxLFxuICAgICAgICB4U3RhcnQyO1xuXG4gICAgZm9yICggdiA9IDE7IHYgPCBoZWlnaHQgLSAxOyB2KyspIHtcbiAgICAgICAgZm9yICggdSA9IDE7IHUgPCB3aWR0aCAtIDE7IHUrKykge1xuICAgICAgICAgICAgeVN0YXJ0MSA9IHYgLSAxO1xuICAgICAgICAgICAgeVN0YXJ0MiA9IHYgKyAxO1xuICAgICAgICAgICAgeFN0YXJ0MSA9IHUgLSAxO1xuICAgICAgICAgICAgeFN0YXJ0MiA9IHUgKyAxO1xuICAgICAgICAgICAgc3VtID0gaW5JbWFnZURhdGFbeVN0YXJ0MSAqIHdpZHRoICsgeFN0YXJ0MV0gKyBpbkltYWdlRGF0YVt5U3RhcnQxICogd2lkdGggKyB4U3RhcnQyXSArXG4gICAgICAgICAgICBpbkltYWdlRGF0YVt2ICogd2lkdGggKyB1XSArXG4gICAgICAgICAgICBpbkltYWdlRGF0YVt5U3RhcnQyICogd2lkdGggKyB4U3RhcnQxXSArIGluSW1hZ2VEYXRhW3lTdGFydDIgKiB3aWR0aCArIHhTdGFydDJdO1xuICAgICAgICAgICAgb3V0SW1hZ2VEYXRhW3YgKiB3aWR0aCArIHVdID0gc3VtID09PSA1ID8gMSA6IDA7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc3VidHJhY3QoYUltYWdlV3JhcHBlciwgYkltYWdlV3JhcHBlciwgcmVzdWx0SW1hZ2VXcmFwcGVyKSB7XG4gICAgaWYgKCFyZXN1bHRJbWFnZVdyYXBwZXIpIHtcbiAgICAgICAgcmVzdWx0SW1hZ2VXcmFwcGVyID0gYUltYWdlV3JhcHBlcjtcbiAgICB9XG4gICAgdmFyIGxlbmd0aCA9IGFJbWFnZVdyYXBwZXIuZGF0YS5sZW5ndGgsXG4gICAgICAgIGFJbWFnZURhdGEgPSBhSW1hZ2VXcmFwcGVyLmRhdGEsXG4gICAgICAgIGJJbWFnZURhdGEgPSBiSW1hZ2VXcmFwcGVyLmRhdGEsXG4gICAgICAgIGNJbWFnZURhdGEgPSByZXN1bHRJbWFnZVdyYXBwZXIuZGF0YTtcblxuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBjSW1hZ2VEYXRhW2xlbmd0aF0gPSBhSW1hZ2VEYXRhW2xlbmd0aF0gLSBiSW1hZ2VEYXRhW2xlbmd0aF07XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGJpdHdpc2VPcihhSW1hZ2VXcmFwcGVyLCBiSW1hZ2VXcmFwcGVyLCByZXN1bHRJbWFnZVdyYXBwZXIpIHtcbiAgICBpZiAoIXJlc3VsdEltYWdlV3JhcHBlcikge1xuICAgICAgICByZXN1bHRJbWFnZVdyYXBwZXIgPSBhSW1hZ2VXcmFwcGVyO1xuICAgIH1cbiAgICB2YXIgbGVuZ3RoID0gYUltYWdlV3JhcHBlci5kYXRhLmxlbmd0aCxcbiAgICAgICAgYUltYWdlRGF0YSA9IGFJbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgYkltYWdlRGF0YSA9IGJJbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgY0ltYWdlRGF0YSA9IHJlc3VsdEltYWdlV3JhcHBlci5kYXRhO1xuXG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICAgIGNJbWFnZURhdGFbbGVuZ3RoXSA9IGFJbWFnZURhdGFbbGVuZ3RoXSB8fCBiSW1hZ2VEYXRhW2xlbmd0aF07XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvdW50Tm9uWmVybyhpbWFnZVdyYXBwZXIpIHtcbiAgICB2YXIgbGVuZ3RoID0gaW1hZ2VXcmFwcGVyLmRhdGEubGVuZ3RoLCBkYXRhID0gaW1hZ2VXcmFwcGVyLmRhdGEsIHN1bSA9IDA7XG5cbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgc3VtICs9IGRhdGFbbGVuZ3RoXTtcbiAgICB9XG4gICAgcmV0dXJuIHN1bTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b3BHZW5lcmljKGxpc3QsIHRvcCwgc2NvcmVGdW5jKSB7XG4gICAgdmFyIGksIG1pbklkeCA9IDAsIG1pbiA9IDAsIHF1ZXVlID0gW10sIHNjb3JlLCBoaXQsIHBvcztcblxuICAgIGZvciAoIGkgPSAwOyBpIDwgdG9wOyBpKyspIHtcbiAgICAgICAgcXVldWVbaV0gPSB7XG4gICAgICAgICAgICBzY29yZTogMCxcbiAgICAgICAgICAgIGl0ZW06IG51bGxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgc2NvcmUgPSBzY29yZUZ1bmMuYXBwbHkodGhpcywgW2xpc3RbaV1dKTtcbiAgICAgICAgaWYgKHNjb3JlID4gbWluKSB7XG4gICAgICAgICAgICBoaXQgPSBxdWV1ZVttaW5JZHhdO1xuICAgICAgICAgICAgaGl0LnNjb3JlID0gc2NvcmU7XG4gICAgICAgICAgICBoaXQuaXRlbSA9IGxpc3RbaV07XG4gICAgICAgICAgICBtaW4gPSBOdW1iZXIuTUFYX1ZBTFVFO1xuICAgICAgICAgICAgZm9yICggcG9zID0gMDsgcG9zIDwgdG9wOyBwb3MrKykge1xuICAgICAgICAgICAgICAgIGlmIChxdWV1ZVtwb3NdLnNjb3JlIDwgbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbiA9IHF1ZXVlW3Bvc10uc2NvcmU7XG4gICAgICAgICAgICAgICAgICAgIG1pbklkeCA9IHBvcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcXVldWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ3JheUFycmF5RnJvbUltYWdlKGh0bWxJbWFnZSwgb2Zmc2V0WCwgY3R4LCBhcnJheSkge1xuICAgIGN0eC5kcmF3SW1hZ2UoaHRtbEltYWdlLCBvZmZzZXRYLCAwLCBodG1sSW1hZ2Uud2lkdGgsIGh0bWxJbWFnZS5oZWlnaHQpO1xuICAgIHZhciBjdHhEYXRhID0gY3R4LmdldEltYWdlRGF0YShvZmZzZXRYLCAwLCBodG1sSW1hZ2Uud2lkdGgsIGh0bWxJbWFnZS5oZWlnaHQpLmRhdGE7XG4gICAgY29tcHV0ZUdyYXkoY3R4RGF0YSwgYXJyYXkpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdyYXlBcnJheUZyb21Db250ZXh0KGN0eCwgc2l6ZSwgb2Zmc2V0LCBhcnJheSkge1xuICAgIHZhciBjdHhEYXRhID0gY3R4LmdldEltYWdlRGF0YShvZmZzZXQueCwgb2Zmc2V0LnksIHNpemUueCwgc2l6ZS55KS5kYXRhO1xuICAgIGNvbXB1dGVHcmF5KGN0eERhdGEsIGFycmF5KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBncmF5QW5kSGFsZlNhbXBsZUZyb21DYW52YXNEYXRhKGNhbnZhc0RhdGEsIHNpemUsIG91dEFycmF5KSB7XG4gICAgdmFyIHRvcFJvd0lkeCA9IDA7XG4gICAgdmFyIGJvdHRvbVJvd0lkeCA9IHNpemUueDtcbiAgICB2YXIgZW5kSWR4ID0gTWF0aC5mbG9vcihjYW52YXNEYXRhLmxlbmd0aCAvIDQpO1xuICAgIHZhciBvdXRXaWR0aCA9IHNpemUueCAvIDI7XG4gICAgdmFyIG91dEltZ0lkeCA9IDA7XG4gICAgdmFyIGluV2lkdGggPSBzaXplLng7XG4gICAgdmFyIGk7XG5cbiAgICB3aGlsZSAoYm90dG9tUm93SWR4IDwgZW5kSWR4KSB7XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgb3V0V2lkdGg7IGkrKykge1xuICAgICAgICAgICAgb3V0QXJyYXlbb3V0SW1nSWR4XSA9IChcbiAgICAgICAgICAgICAgICAoMC4yOTkgKiBjYW52YXNEYXRhW3RvcFJvd0lkeCAqIDQgKyAwXSArXG4gICAgICAgICAgICAgICAgIDAuNTg3ICogY2FudmFzRGF0YVt0b3BSb3dJZHggKiA0ICsgMV0gK1xuICAgICAgICAgICAgICAgICAwLjExNCAqIGNhbnZhc0RhdGFbdG9wUm93SWR4ICogNCArIDJdKSArXG4gICAgICAgICAgICAgICAgKDAuMjk5ICogY2FudmFzRGF0YVsodG9wUm93SWR4ICsgMSkgKiA0ICsgMF0gK1xuICAgICAgICAgICAgICAgICAwLjU4NyAqIGNhbnZhc0RhdGFbKHRvcFJvd0lkeCArIDEpICogNCArIDFdICtcbiAgICAgICAgICAgICAgICAgMC4xMTQgKiBjYW52YXNEYXRhWyh0b3BSb3dJZHggKyAxKSAqIDQgKyAyXSkgK1xuICAgICAgICAgICAgICAgICgwLjI5OSAqIGNhbnZhc0RhdGFbKGJvdHRvbVJvd0lkeCkgKiA0ICsgMF0gK1xuICAgICAgICAgICAgICAgICAwLjU4NyAqIGNhbnZhc0RhdGFbKGJvdHRvbVJvd0lkeCkgKiA0ICsgMV0gK1xuICAgICAgICAgICAgICAgICAwLjExNCAqIGNhbnZhc0RhdGFbKGJvdHRvbVJvd0lkeCkgKiA0ICsgMl0pICtcbiAgICAgICAgICAgICAgICAoMC4yOTkgKiBjYW52YXNEYXRhWyhib3R0b21Sb3dJZHggKyAxKSAqIDQgKyAwXSArXG4gICAgICAgICAgICAgICAgIDAuNTg3ICogY2FudmFzRGF0YVsoYm90dG9tUm93SWR4ICsgMSkgKiA0ICsgMV0gK1xuICAgICAgICAgICAgICAgICAwLjExNCAqIGNhbnZhc0RhdGFbKGJvdHRvbVJvd0lkeCArIDEpICogNCArIDJdKSkgLyA0O1xuICAgICAgICAgICAgb3V0SW1nSWR4Kys7XG4gICAgICAgICAgICB0b3BSb3dJZHggPSB0b3BSb3dJZHggKyAyO1xuICAgICAgICAgICAgYm90dG9tUm93SWR4ID0gYm90dG9tUm93SWR4ICsgMjtcbiAgICAgICAgfVxuICAgICAgICB0b3BSb3dJZHggPSB0b3BSb3dJZHggKyBpbldpZHRoO1xuICAgICAgICBib3R0b21Sb3dJZHggPSBib3R0b21Sb3dJZHggKyBpbldpZHRoO1xuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlR3JheShpbWFnZURhdGEsIG91dEFycmF5LCBjb25maWcpIHtcbiAgICB2YXIgbCA9IChpbWFnZURhdGEubGVuZ3RoIC8gNCkgfCAwLFxuICAgICAgICBpLFxuICAgICAgICBzaW5nbGVDaGFubmVsID0gY29uZmlnICYmIGNvbmZpZy5zaW5nbGVDaGFubmVsID09PSB0cnVlO1xuXG4gICAgaWYgKHNpbmdsZUNoYW5uZWwpIHtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgb3V0QXJyYXlbaV0gPSBpbWFnZURhdGFbaSAqIDQgKyAwXTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgIG91dEFycmF5W2ldID1cbiAgICAgICAgICAgICAgICAwLjI5OSAqIGltYWdlRGF0YVtpICogNCArIDBdICsgMC41ODcgKiBpbWFnZURhdGFbaSAqIDQgKyAxXSArIDAuMTE0ICogaW1hZ2VEYXRhW2kgKiA0ICsgMl07XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEltYWdlQXJyYXkoc3JjLCBjYWxsYmFjaywgY2FudmFzKSB7XG4gICAgaWYgKCFjYW52YXMpIHtcbiAgICAgICAgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgfVxuICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICBpbWcuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHRoaXMud2lkdGg7XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB0aGlzLmhlaWdodDtcbiAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICBjdHguZHJhd0ltYWdlKHRoaXMsIDAsIDApO1xuICAgICAgICB2YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheSh0aGlzLndpZHRoICogdGhpcy5oZWlnaHQpO1xuICAgICAgICBjdHguZHJhd0ltYWdlKHRoaXMsIDAsIDApO1xuICAgICAgICB2YXIgZGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpLmRhdGE7XG4gICAgICAgIGNvbXB1dGVHcmF5KGRhdGEsIGFycmF5KTtcbiAgICAgICAgdGhpcy5jYWxsYmFjayhhcnJheSwge1xuICAgICAgICAgICAgeDogdGhpcy53aWR0aCxcbiAgICAgICAgICAgIHk6IHRoaXMuaGVpZ2h0XG4gICAgICAgIH0sIHRoaXMpO1xuICAgIH07XG4gICAgaW1nLnNyYyA9IHNyYztcbn07XG5cbi8qKlxuICogQHBhcmFtIGluSW1nIHtJbWFnZVdyYXBwZXJ9IGlucHV0IGltYWdlIHRvIGJlIHNhbXBsZWRcbiAqIEBwYXJhbSBvdXRJbWcge0ltYWdlV3JhcHBlcn0gdG8gYmUgc3RvcmVkIGluXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYWxmU2FtcGxlKGluSW1nV3JhcHBlciwgb3V0SW1nV3JhcHBlcikge1xuICAgIHZhciBpbkltZyA9IGluSW1nV3JhcHBlci5kYXRhO1xuICAgIHZhciBpbldpZHRoID0gaW5JbWdXcmFwcGVyLnNpemUueDtcbiAgICB2YXIgb3V0SW1nID0gb3V0SW1nV3JhcHBlci5kYXRhO1xuICAgIHZhciB0b3BSb3dJZHggPSAwO1xuICAgIHZhciBib3R0b21Sb3dJZHggPSBpbldpZHRoO1xuICAgIHZhciBlbmRJZHggPSBpbkltZy5sZW5ndGg7XG4gICAgdmFyIG91dFdpZHRoID0gaW5XaWR0aCAvIDI7XG4gICAgdmFyIG91dEltZ0lkeCA9IDA7XG4gICAgd2hpbGUgKGJvdHRvbVJvd0lkeCA8IGVuZElkeCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG91dFdpZHRoOyBpKyspIHtcbiAgICAgICAgICAgIG91dEltZ1tvdXRJbWdJZHhdID0gTWF0aC5mbG9vcihcbiAgICAgICAgICAgICAgICAoaW5JbWdbdG9wUm93SWR4XSArIGluSW1nW3RvcFJvd0lkeCArIDFdICsgaW5JbWdbYm90dG9tUm93SWR4XSArIGluSW1nW2JvdHRvbVJvd0lkeCArIDFdKSAvIDQpO1xuICAgICAgICAgICAgb3V0SW1nSWR4Kys7XG4gICAgICAgICAgICB0b3BSb3dJZHggPSB0b3BSb3dJZHggKyAyO1xuICAgICAgICAgICAgYm90dG9tUm93SWR4ID0gYm90dG9tUm93SWR4ICsgMjtcbiAgICAgICAgfVxuICAgICAgICB0b3BSb3dJZHggPSB0b3BSb3dJZHggKyBpbldpZHRoO1xuICAgICAgICBib3R0b21Sb3dJZHggPSBib3R0b21Sb3dJZHggKyBpbldpZHRoO1xuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBoc3YycmdiKGhzdiwgcmdiKSB7XG4gICAgdmFyIGggPSBoc3ZbMF0sXG4gICAgICAgIHMgPSBoc3ZbMV0sXG4gICAgICAgIHYgPSBoc3ZbMl0sXG4gICAgICAgIGMgPSB2ICogcyxcbiAgICAgICAgeCA9IGMgKiAoMSAtIE1hdGguYWJzKChoIC8gNjApICUgMiAtIDEpKSxcbiAgICAgICAgbSA9IHYgLSBjLFxuICAgICAgICByID0gMCxcbiAgICAgICAgZyA9IDAsXG4gICAgICAgIGIgPSAwO1xuXG4gICAgcmdiID0gcmdiIHx8IFswLCAwLCAwXTtcblxuICAgIGlmIChoIDwgNjApIHtcbiAgICAgICAgciA9IGM7XG4gICAgICAgIGcgPSB4O1xuICAgIH0gZWxzZSBpZiAoaCA8IDEyMCkge1xuICAgICAgICByID0geDtcbiAgICAgICAgZyA9IGM7XG4gICAgfSBlbHNlIGlmIChoIDwgMTgwKSB7XG4gICAgICAgIGcgPSBjO1xuICAgICAgICBiID0geDtcbiAgICB9IGVsc2UgaWYgKGggPCAyNDApIHtcbiAgICAgICAgZyA9IHg7XG4gICAgICAgIGIgPSBjO1xuICAgIH0gZWxzZSBpZiAoaCA8IDMwMCkge1xuICAgICAgICByID0geDtcbiAgICAgICAgYiA9IGM7XG4gICAgfSBlbHNlIGlmIChoIDwgMzYwKSB7XG4gICAgICAgIHIgPSBjO1xuICAgICAgICBiID0geDtcbiAgICB9XG4gICAgcmdiWzBdID0gKChyICsgbSkgKiAyNTUpIHwgMDtcbiAgICByZ2JbMV0gPSAoKGcgKyBtKSAqIDI1NSkgfCAwO1xuICAgIHJnYlsyXSA9ICgoYiArIG0pICogMjU1KSB8IDA7XG4gICAgcmV0dXJuIHJnYjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfY29tcHV0ZURpdmlzb3JzKG4pIHtcbiAgICB2YXIgbGFyZ2VEaXZpc29ycyA9IFtdLFxuICAgICAgICBkaXZpc29ycyA9IFtdLFxuICAgICAgICBpO1xuXG4gICAgZm9yIChpID0gMTsgaSA8IE1hdGguc3FydChuKSArIDE7IGkrKykge1xuICAgICAgICBpZiAobiAlIGkgPT09IDApIHtcbiAgICAgICAgICAgIGRpdmlzb3JzLnB1c2goaSk7XG4gICAgICAgICAgICBpZiAoaSAhPT0gbiAvIGkpIHtcbiAgICAgICAgICAgICAgICBsYXJnZURpdmlzb3JzLnVuc2hpZnQoTWF0aC5mbG9vcihuIC8gaSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkaXZpc29ycy5jb25jYXQobGFyZ2VEaXZpc29ycyk7XG59O1xuXG5mdW5jdGlvbiBfY29tcHV0ZUludGVyc2VjdGlvbihhcnIxLCBhcnIyKSB7XG4gICAgdmFyIGkgPSAwLFxuICAgICAgICBqID0gMCxcbiAgICAgICAgcmVzdWx0ID0gW107XG5cbiAgICB3aGlsZSAoaSA8IGFycjEubGVuZ3RoICYmIGogPCBhcnIyLmxlbmd0aCkge1xuICAgICAgICBpZiAoYXJyMVtpXSA9PT0gYXJyMltqXSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goYXJyMVtpXSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBqKys7XG4gICAgICAgIH0gZWxzZSBpZiAoYXJyMVtpXSA+IGFycjJbal0pIHtcbiAgICAgICAgICAgIGorKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVBhdGNoU2l6ZShwYXRjaFNpemUsIGltZ1NpemUpIHtcbiAgICB2YXIgZGl2aXNvcnNYID0gX2NvbXB1dGVEaXZpc29ycyhpbWdTaXplLngpLFxuICAgICAgICBkaXZpc29yc1kgPSBfY29tcHV0ZURpdmlzb3JzKGltZ1NpemUueSksXG4gICAgICAgIHdpZGVTaWRlID0gTWF0aC5tYXgoaW1nU2l6ZS54LCBpbWdTaXplLnkpLFxuICAgICAgICBjb21tb24gPSBfY29tcHV0ZUludGVyc2VjdGlvbihkaXZpc29yc1gsIGRpdmlzb3JzWSksXG4gICAgICAgIG5yT2ZQYXRjaGVzTGlzdCA9IFs4LCAxMCwgMTUsIDIwLCAzMiwgNjAsIDgwXSxcbiAgICAgICAgbnJPZlBhdGNoZXNNYXAgPSB7XG4gICAgICAgICAgICBcIngtc21hbGxcIjogNSxcbiAgICAgICAgICAgIFwic21hbGxcIjogNCxcbiAgICAgICAgICAgIFwibWVkaXVtXCI6IDMsXG4gICAgICAgICAgICBcImxhcmdlXCI6IDIsXG4gICAgICAgICAgICBcIngtbGFyZ2VcIjogMVxuICAgICAgICB9LFxuICAgICAgICBuck9mUGF0Y2hlc0lkeCA9IG5yT2ZQYXRjaGVzTWFwW3BhdGNoU2l6ZV0gfHwgbnJPZlBhdGNoZXNNYXAubWVkaXVtLFxuICAgICAgICBuck9mUGF0Y2hlcyA9IG5yT2ZQYXRjaGVzTGlzdFtuck9mUGF0Y2hlc0lkeF0sXG4gICAgICAgIGRlc2lyZWRQYXRjaFNpemUgPSBNYXRoLmZsb29yKHdpZGVTaWRlIC8gbnJPZlBhdGNoZXMpLFxuICAgICAgICBvcHRpbWFsUGF0Y2hTaXplO1xuXG4gICAgZnVuY3Rpb24gZmluZFBhdGNoU2l6ZUZvckRpdmlzb3JzKGRpdmlzb3JzKSB7XG4gICAgICAgIHZhciBpID0gMCxcbiAgICAgICAgICAgIGZvdW5kID0gZGl2aXNvcnNbTWF0aC5mbG9vcihkaXZpc29ycy5sZW5ndGggLyAyKV07XG5cbiAgICAgICAgd2hpbGUgKGkgPCAoZGl2aXNvcnMubGVuZ3RoIC0gMSkgJiYgZGl2aXNvcnNbaV0gPCBkZXNpcmVkUGF0Y2hTaXplKSB7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgICBpZiAoTWF0aC5hYnMoZGl2aXNvcnNbaV0gLSBkZXNpcmVkUGF0Y2hTaXplKSA+IE1hdGguYWJzKGRpdmlzb3JzW2kgLSAxXSAtIGRlc2lyZWRQYXRjaFNpemUpKSB7XG4gICAgICAgICAgICAgICAgZm91bmQgPSBkaXZpc29yc1tpIC0gMV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvdW5kID0gZGl2aXNvcnNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlc2lyZWRQYXRjaFNpemUgLyBmb3VuZCA8IG5yT2ZQYXRjaGVzTGlzdFtuck9mUGF0Y2hlc0lkeCArIDFdIC8gbnJPZlBhdGNoZXNMaXN0W25yT2ZQYXRjaGVzSWR4XSAmJlxuICAgICAgICAgICAgZGVzaXJlZFBhdGNoU2l6ZSAvIGZvdW5kID4gbnJPZlBhdGNoZXNMaXN0W25yT2ZQYXRjaGVzSWR4IC0gMV0gLyBuck9mUGF0Y2hlc0xpc3RbbnJPZlBhdGNoZXNJZHhdICkge1xuICAgICAgICAgICAgcmV0dXJuIHt4OiBmb3VuZCwgeTogZm91bmR9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIG9wdGltYWxQYXRjaFNpemUgPSBmaW5kUGF0Y2hTaXplRm9yRGl2aXNvcnMoY29tbW9uKTtcbiAgICBpZiAoIW9wdGltYWxQYXRjaFNpemUpIHtcbiAgICAgICAgb3B0aW1hbFBhdGNoU2l6ZSA9IGZpbmRQYXRjaFNpemVGb3JEaXZpc29ycyhfY29tcHV0ZURpdmlzb3JzKHdpZGVTaWRlKSk7XG4gICAgICAgIGlmICghb3B0aW1hbFBhdGNoU2l6ZSkge1xuICAgICAgICAgICAgb3B0aW1hbFBhdGNoU2l6ZSA9IGZpbmRQYXRjaFNpemVGb3JEaXZpc29ycygoX2NvbXB1dGVEaXZpc29ycyhkZXNpcmVkUGF0Y2hTaXplICogbnJPZlBhdGNoZXMpKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGltYWxQYXRjaFNpemU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX3BhcnNlQ1NTRGltZW5zaW9uVmFsdWVzKHZhbHVlKSB7XG4gICAgdmFyIGRpbWVuc2lvbiA9IHtcbiAgICAgICAgdmFsdWU6IHBhcnNlRmxvYXQodmFsdWUpLFxuICAgICAgICB1bml0OiB2YWx1ZS5pbmRleE9mKFwiJVwiKSA9PT0gdmFsdWUubGVuZ3RoIC0gMSA/IFwiJVwiIDogXCIlXCJcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRpbWVuc2lvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBfZGltZW5zaW9uc0NvbnZlcnRlcnMgPSB7XG4gICAgdG9wOiBmdW5jdGlvbihkaW1lbnNpb24sIGNvbnRleHQpIHtcbiAgICAgICAgaWYgKGRpbWVuc2lvbi51bml0ID09PSBcIiVcIikge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoY29udGV4dC5oZWlnaHQgKiAoZGltZW5zaW9uLnZhbHVlIC8gMTAwKSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHJpZ2h0OiBmdW5jdGlvbihkaW1lbnNpb24sIGNvbnRleHQpIHtcbiAgICAgICAgaWYgKGRpbWVuc2lvbi51bml0ID09PSBcIiVcIikge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoY29udGV4dC53aWR0aCAtIChjb250ZXh0LndpZHRoICogKGRpbWVuc2lvbi52YWx1ZSAvIDEwMCkpKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgYm90dG9tOiBmdW5jdGlvbihkaW1lbnNpb24sIGNvbnRleHQpIHtcbiAgICAgICAgaWYgKGRpbWVuc2lvbi51bml0ID09PSBcIiVcIikge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoY29udGV4dC5oZWlnaHQgLSAoY29udGV4dC5oZWlnaHQgKiAoZGltZW5zaW9uLnZhbHVlIC8gMTAwKSkpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBsZWZ0OiBmdW5jdGlvbihkaW1lbnNpb24sIGNvbnRleHQpIHtcbiAgICAgICAgaWYgKGRpbWVuc2lvbi51bml0ID09PSBcIiVcIikge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoY29udGV4dC53aWR0aCAqIChkaW1lbnNpb24udmFsdWUgLyAxMDApKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlSW1hZ2VBcmVhKGlucHV0V2lkdGgsIGlucHV0SGVpZ2h0LCBhcmVhKSB7XG4gICAgdmFyIGNvbnRleHQgPSB7d2lkdGg6IGlucHV0V2lkdGgsIGhlaWdodDogaW5wdXRIZWlnaHR9O1xuXG4gICAgdmFyIHBhcnNlZEFyZWEgPSBPYmplY3Qua2V5cyhhcmVhKS5yZWR1Y2UoZnVuY3Rpb24ocmVzdWx0LCBrZXkpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJlYVtrZXldLFxuICAgICAgICAgICAgcGFyc2VkID0gX3BhcnNlQ1NTRGltZW5zaW9uVmFsdWVzKHZhbHVlKSxcbiAgICAgICAgICAgIGNhbGN1bGF0ZWQgPSBfZGltZW5zaW9uc0NvbnZlcnRlcnNba2V5XShwYXJzZWQsIGNvbnRleHQpO1xuXG4gICAgICAgIHJlc3VsdFtrZXldID0gY2FsY3VsYXRlZDtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBzeDogcGFyc2VkQXJlYS5sZWZ0LFxuICAgICAgICBzeTogcGFyc2VkQXJlYS50b3AsXG4gICAgICAgIHN3OiBwYXJzZWRBcmVhLnJpZ2h0IC0gcGFyc2VkQXJlYS5sZWZ0LFxuICAgICAgICBzaDogcGFyc2VkQXJlYS5ib3R0b20gLSBwYXJzZWRBcmVhLnRvcFxuICAgIH07XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9jdl91dGlscy5qcyIsImltcG9ydCBTdWJJbWFnZSBmcm9tICcuL3N1YkltYWdlJztcbmltcG9ydCB7aHN2MnJnYn0gZnJvbSAnLi4vY29tbW9uL2N2X3V0aWxzJztcbmltcG9ydCBBcnJheUhlbHBlciBmcm9tICcuLi9jb21tb24vYXJyYXlfaGVscGVyJztcbmNvbnN0IHZlYzIgPSB7XG4gICAgY2xvbmU6IHJlcXVpcmUoJ2dsLXZlYzIvY2xvbmUnKSxcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGJhc2ljIGltYWdlIGNvbWJpbmluZyB0aGUgZGF0YSBhbmQgc2l6ZS5cbiAqIEluIGFkZGl0aW9uLCBzb21lIG1ldGhvZHMgZm9yIG1hbmlwdWxhdGlvbiBhcmUgY29udGFpbmVkLlxuICogQHBhcmFtIHNpemUge3gseX0gVGhlIHNpemUgb2YgdGhlIGltYWdlIGluIHBpeGVsXG4gKiBAcGFyYW0gZGF0YSB7QXJyYXl9IElmIGdpdmVuLCBhIGZsYXQgYXJyYXkgY29udGFpbmluZyB0aGUgcGl4ZWwgZGF0YVxuICogQHBhcmFtIEFycmF5VHlwZSB7VHlwZX0gSWYgZ2l2ZW4sIHRoZSBkZXNpcmVkIERhdGFUeXBlIG9mIHRoZSBBcnJheSAobWF5IGJlIHR5cGVkL25vbi10eXBlZClcbiAqIEBwYXJhbSBpbml0aWFsaXplIHtCb29sZWFufSBJbmRpY2F0aW5nIGlmIHRoZSBhcnJheSBzaG91bGQgYmUgaW5pdGlhbGl6ZWQgb24gY3JlYXRpb24uXG4gKiBAcmV0dXJucyB7SW1hZ2VXcmFwcGVyfVxuICovXG5mdW5jdGlvbiBJbWFnZVdyYXBwZXIoc2l6ZSwgZGF0YSwgQXJyYXlUeXBlLCBpbml0aWFsaXplKSB7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICAgIGlmIChBcnJheVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IG5ldyBBcnJheVR5cGUoc2l6ZS54ICogc2l6ZS55KTtcbiAgICAgICAgICAgIGlmIChBcnJheVR5cGUgPT09IEFycmF5ICYmIGluaXRpYWxpemUpIHtcbiAgICAgICAgICAgICAgICBBcnJheUhlbHBlci5pbml0KHRoaXMuZGF0YSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBuZXcgVWludDhBcnJheShzaXplLnggKiBzaXplLnkpO1xuICAgICAgICAgICAgaWYgKFVpbnQ4QXJyYXkgPT09IEFycmF5ICYmIGluaXRpYWxpemUpIHtcbiAgICAgICAgICAgICAgICBBcnJheUhlbHBlci5pbml0KHRoaXMuZGF0YSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIH1cbiAgICB0aGlzLnNpemUgPSBzaXplO1xufVxuXG4vKipcbiAqIHRlc3RzIGlmIGEgcG9zaXRpb24gaXMgd2l0aGluIHRoZSBpbWFnZSB3aXRoIGEgZ2l2ZW4gb2Zmc2V0XG4gKiBAcGFyYW0gaW1nUmVmIHt4LCB5fSBUaGUgbG9jYXRpb24gdG8gdGVzdFxuICogQHBhcmFtIGJvcmRlciBOdW1iZXIgdGhlIHBhZGRpbmcgdmFsdWUgaW4gcGl4ZWxcbiAqIEByZXR1cm5zIHtCb29sZWFufSB0cnVlIGlmIGxvY2F0aW9uIGluc2lkZSB0aGUgaW1hZ2UncyBib3JkZXIsIGZhbHNlIG90aGVyd2lzZVxuICogQHNlZSBjdmQvaW1hZ2UuaFxuICovXG5JbWFnZVdyYXBwZXIucHJvdG90eXBlLmluSW1hZ2VXaXRoQm9yZGVyID0gZnVuY3Rpb24oaW1nUmVmLCBib3JkZXIpIHtcbiAgICByZXR1cm4gKGltZ1JlZi54ID49IGJvcmRlcilcbiAgICAgICAgJiYgKGltZ1JlZi55ID49IGJvcmRlcilcbiAgICAgICAgJiYgKGltZ1JlZi54IDwgKHRoaXMuc2l6ZS54IC0gYm9yZGVyKSlcbiAgICAgICAgJiYgKGltZ1JlZi55IDwgKHRoaXMuc2l6ZS55IC0gYm9yZGVyKSk7XG59O1xuXG4vKipcbiAqIFBlcmZvcm1zIGJpbGluZWFyIHNhbXBsaW5nXG4gKiBAcGFyYW0gaW5JbWcgSW1hZ2UgdG8gZXh0cmFjdCBzYW1wbGUgZnJvbVxuICogQHBhcmFtIHggdGhlIHgtY29vcmRpbmF0ZVxuICogQHBhcmFtIHkgdGhlIHktY29vcmRpbmF0ZVxuICogQHJldHVybnMgdGhlIHNhbXBsZWQgdmFsdWVcbiAqIEBzZWUgY3ZkL3Zpc2lvbi5oXG4gKi9cbkltYWdlV3JhcHBlci5zYW1wbGUgPSBmdW5jdGlvbihpbkltZywgeCwgeSkge1xuICAgIHZhciBseCA9IE1hdGguZmxvb3IoeCk7XG4gICAgdmFyIGx5ID0gTWF0aC5mbG9vcih5KTtcbiAgICB2YXIgdyA9IGluSW1nLnNpemUueDtcbiAgICB2YXIgYmFzZSA9IGx5ICogaW5JbWcuc2l6ZS54ICsgbHg7XG4gICAgdmFyIGEgPSBpbkltZy5kYXRhW2Jhc2UgKyAwXTtcbiAgICB2YXIgYiA9IGluSW1nLmRhdGFbYmFzZSArIDFdO1xuICAgIHZhciBjID0gaW5JbWcuZGF0YVtiYXNlICsgd107XG4gICAgdmFyIGQgPSBpbkltZy5kYXRhW2Jhc2UgKyB3ICsgMV07XG4gICAgdmFyIGUgPSBhIC0gYjtcbiAgICB4IC09IGx4O1xuICAgIHkgLT0gbHk7XG5cbiAgICB2YXIgcmVzdWx0ID0gTWF0aC5mbG9vcih4ICogKHkgKiAoZSAtIGMgKyBkKSAtIGUpICsgeSAqIChjIC0gYSkgKyBhKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhIGdpdmVuIGFycmF5LiBTZXRzIGVhY2ggZWxlbWVudCB0byB6ZXJvLlxuICogQHBhcmFtIGFycmF5IHtBcnJheX0gVGhlIGFycmF5IHRvIGluaXRpYWxpemVcbiAqL1xuSW1hZ2VXcmFwcGVyLmNsZWFyQXJyYXkgPSBmdW5jdGlvbihhcnJheSkge1xuICAgIHZhciBsID0gYXJyYXkubGVuZ3RoO1xuICAgIHdoaWxlIChsLS0pIHtcbiAgICAgICAgYXJyYXlbbF0gPSAwO1xuICAgIH1cbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIHtTdWJJbWFnZX0gZnJvbSB0aGUgY3VycmVudCBpbWFnZSAoe3RoaXN9KS5cbiAqIEBwYXJhbSBmcm9tIHtJbWFnZVJlZn0gVGhlIHBvc2l0aW9uIHdoZXJlIHRvIHN0YXJ0IHRoZSB7U3ViSW1hZ2V9IGZyb20uICh0b3AtbGVmdCBjb3JuZXIpXG4gKiBAcGFyYW0gc2l6ZSB7SW1hZ2VSZWZ9IFRoZSBzaXplIG9mIHRoZSByZXN1bHRpbmcgaW1hZ2VcbiAqIEByZXR1cm5zIHtTdWJJbWFnZX0gQSBzaGFyZWQgcGFydCBvZiB0aGUgb3JpZ2luYWwgaW1hZ2VcbiAqL1xuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5zdWJJbWFnZSA9IGZ1bmN0aW9uKGZyb20sIHNpemUpIHtcbiAgICByZXR1cm4gbmV3IFN1YkltYWdlKGZyb20sIHNpemUsIHRoaXMpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIHtJbWFnZVdyYXBwZXIpIGFuZCBjb3BpZXMgdGhlIG5lZWRlZCB1bmRlcmx5aW5nIGltYWdlLWRhdGEgYXJlYVxuICogQHBhcmFtIGltYWdlV3JhcHBlciB7SW1hZ2VXcmFwcGVyfSBUaGUgdGFyZ2V0IHtJbWFnZVdyYXBwZXJ9IHdoZXJlIHRoZSBkYXRhIHNob3VsZCBiZSBjb3BpZWRcbiAqIEBwYXJhbSBmcm9tIHtJbWFnZVJlZn0gVGhlIGxvY2F0aW9uIHdoZXJlIHRvIGNvcHkgZnJvbSAodG9wLWxlZnQgbG9jYXRpb24pXG4gKi9cbkltYWdlV3JhcHBlci5wcm90b3R5cGUuc3ViSW1hZ2VBc0NvcHkgPSBmdW5jdGlvbihpbWFnZVdyYXBwZXIsIGZyb20pIHtcbiAgICB2YXIgc2l6ZVkgPSBpbWFnZVdyYXBwZXIuc2l6ZS55LCBzaXplWCA9IGltYWdlV3JhcHBlci5zaXplLng7XG4gICAgdmFyIHgsIHk7XG4gICAgZm9yICggeCA9IDA7IHggPCBzaXplWDsgeCsrKSB7XG4gICAgICAgIGZvciAoIHkgPSAwOyB5IDwgc2l6ZVk7IHkrKykge1xuICAgICAgICAgICAgaW1hZ2VXcmFwcGVyLmRhdGFbeSAqIHNpemVYICsgeF0gPSB0aGlzLmRhdGFbKGZyb20ueSArIHkpICogdGhpcy5zaXplLnggKyBmcm9tLnggKyB4XTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbkltYWdlV3JhcHBlci5wcm90b3R5cGUuY29weVRvID0gZnVuY3Rpb24oaW1hZ2VXcmFwcGVyKSB7XG4gICAgdmFyIGxlbmd0aCA9IHRoaXMuZGF0YS5sZW5ndGgsIHNyY0RhdGEgPSB0aGlzLmRhdGEsIGRzdERhdGEgPSBpbWFnZVdyYXBwZXIuZGF0YTtcblxuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBkc3REYXRhW2xlbmd0aF0gPSBzcmNEYXRhW2xlbmd0aF07XG4gICAgfVxufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBnaXZlbiBwaXhlbCBwb3NpdGlvbiBmcm9tIHRoZSBpbWFnZVxuICogQHBhcmFtIHgge051bWJlcn0gVGhlIHgtcG9zaXRpb25cbiAqIEBwYXJhbSB5IHtOdW1iZXJ9IFRoZSB5LXBvc2l0aW9uXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JheXNjYWxlIHZhbHVlIGF0IHRoZSBwaXhlbC1wb3NpdGlvblxuICovXG5JbWFnZVdyYXBwZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKHgsIHkpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhW3kgKiB0aGlzLnNpemUueCArIHhdO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBnaXZlbiBwaXhlbCBwb3NpdGlvbiBmcm9tIHRoZSBpbWFnZVxuICogQHBhcmFtIHgge051bWJlcn0gVGhlIHgtcG9zaXRpb25cbiAqIEBwYXJhbSB5IHtOdW1iZXJ9IFRoZSB5LXBvc2l0aW9uXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JheXNjYWxlIHZhbHVlIGF0IHRoZSBwaXhlbC1wb3NpdGlvblxuICovXG5JbWFnZVdyYXBwZXIucHJvdG90eXBlLmdldFNhZmUgPSBmdW5jdGlvbih4LCB5KSB7XG4gICAgdmFyIGk7XG5cbiAgICBpZiAoIXRoaXMuaW5kZXhNYXBwaW5nKSB7XG4gICAgICAgIHRoaXMuaW5kZXhNYXBwaW5nID0ge1xuICAgICAgICAgICAgeDogW10sXG4gICAgICAgICAgICB5OiBbXVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5zaXplLng7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5pbmRleE1hcHBpbmcueFtpXSA9IGk7XG4gICAgICAgICAgICB0aGlzLmluZGV4TWFwcGluZy54W2kgKyB0aGlzLnNpemUueF0gPSBpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLnNpemUueTsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmluZGV4TWFwcGluZy55W2ldID0gaTtcbiAgICAgICAgICAgIHRoaXMuaW5kZXhNYXBwaW5nLnlbaSArIHRoaXMuc2l6ZS55XSA9IGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGF0YVsodGhpcy5pbmRleE1hcHBpbmcueVt5ICsgdGhpcy5zaXplLnldKSAqIHRoaXMuc2l6ZS54ICsgdGhpcy5pbmRleE1hcHBpbmcueFt4ICsgdGhpcy5zaXplLnhdXTtcbn07XG5cbi8qKlxuICogU2V0cyBhIGdpdmVuIHBpeGVsIHBvc2l0aW9uIGluIHRoZSBpbWFnZVxuICogQHBhcmFtIHgge051bWJlcn0gVGhlIHgtcG9zaXRpb25cbiAqIEBwYXJhbSB5IHtOdW1iZXJ9IFRoZSB5LXBvc2l0aW9uXG4gKiBAcGFyYW0gdmFsdWUge051bWJlcn0gVGhlIGdyYXlzY2FsZSB2YWx1ZSB0byBzZXRcbiAqIEByZXR1cm5zIHtJbWFnZVdyYXBwZXJ9IFRoZSBJbWFnZSBpdHNlbGYgKGZvciBwb3NzaWJsZSBjaGFpbmluZylcbiAqL1xuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbih4LCB5LCB2YWx1ZSkge1xuICAgIHRoaXMuZGF0YVt5ICogdGhpcy5zaXplLnggKyB4XSA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXRzIHRoZSBib3JkZXIgb2YgdGhlIGltYWdlICgxIHBpeGVsKSB0byB6ZXJvXG4gKi9cbkltYWdlV3JhcHBlci5wcm90b3R5cGUuemVyb0JvcmRlciA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBpLCB3aWR0aCA9IHRoaXMuc2l6ZS54LCBoZWlnaHQgPSB0aGlzLnNpemUueSwgZGF0YSA9IHRoaXMuZGF0YTtcbiAgICBmb3IgKCBpID0gMDsgaSA8IHdpZHRoOyBpKyspIHtcbiAgICAgICAgZGF0YVtpXSA9IGRhdGFbKGhlaWdodCAtIDEpICogd2lkdGggKyBpXSA9IDA7XG4gICAgfVxuICAgIGZvciAoIGkgPSAxOyBpIDwgaGVpZ2h0IC0gMTsgaSsrKSB7XG4gICAgICAgIGRhdGFbaSAqIHdpZHRoXSA9IGRhdGFbaSAqIHdpZHRoICsgKHdpZHRoIC0gMSldID0gMDtcbiAgICB9XG59O1xuXG4vKipcbiAqIEludmVydHMgYSBiaW5hcnkgaW1hZ2UgaW4gcGxhY2VcbiAqL1xuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5pbnZlcnQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgZGF0YSA9IHRoaXMuZGF0YSwgbGVuZ3RoID0gZGF0YS5sZW5ndGg7XG5cbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgICAgZGF0YVtsZW5ndGhdID0gZGF0YVtsZW5ndGhdID8gMCA6IDE7XG4gICAgfVxufTtcblxuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5jb252b2x2ZSA9IGZ1bmN0aW9uKGtlcm5lbCkge1xuICAgIHZhciB4LCB5LCBreCwga3ksIGtTaXplID0gKGtlcm5lbC5sZW5ndGggLyAyKSB8IDAsIGFjY3UgPSAwO1xuICAgIGZvciAoIHkgPSAwOyB5IDwgdGhpcy5zaXplLnk7IHkrKykge1xuICAgICAgICBmb3IgKCB4ID0gMDsgeCA8IHRoaXMuc2l6ZS54OyB4KyspIHtcbiAgICAgICAgICAgIGFjY3UgPSAwO1xuICAgICAgICAgICAgZm9yICgga3kgPSAta1NpemU7IGt5IDw9IGtTaXplOyBreSsrKSB7XG4gICAgICAgICAgICAgICAgZm9yICgga3ggPSAta1NpemU7IGt4IDw9IGtTaXplOyBreCsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjY3UgKz0ga2VybmVsW2t5ICsga1NpemVdW2t4ICsga1NpemVdICogdGhpcy5nZXRTYWZlKHggKyBreCwgeSArIGt5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRhdGFbeSAqIHRoaXMuc2l6ZS54ICsgeF0gPSBhY2N1O1xuICAgICAgICB9XG4gICAgfVxufTtcblxuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5tb21lbnRzID0gZnVuY3Rpb24obGFiZWxjb3VudCkge1xuICAgIHZhciBkYXRhID0gdGhpcy5kYXRhLFxuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBoZWlnaHQgPSB0aGlzLnNpemUueSxcbiAgICAgICAgd2lkdGggPSB0aGlzLnNpemUueCxcbiAgICAgICAgdmFsLFxuICAgICAgICB5c3EsXG4gICAgICAgIGxhYmVsc3VtID0gW10sXG4gICAgICAgIGksXG4gICAgICAgIGxhYmVsLFxuICAgICAgICBtdTExLFxuICAgICAgICBtdTAyLFxuICAgICAgICBtdTIwLFxuICAgICAgICB4XyxcbiAgICAgICAgeV8sXG4gICAgICAgIHRtcCxcbiAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgIFBJID0gTWF0aC5QSSxcbiAgICAgICAgUElfNCA9IFBJIC8gNDtcblxuICAgIGlmIChsYWJlbGNvdW50IDw9IDApIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IGxhYmVsY291bnQ7IGkrKykge1xuICAgICAgICBsYWJlbHN1bVtpXSA9IHtcbiAgICAgICAgICAgIG0wMDogMCxcbiAgICAgICAgICAgIG0wMTogMCxcbiAgICAgICAgICAgIG0xMDogMCxcbiAgICAgICAgICAgIG0xMTogMCxcbiAgICAgICAgICAgIG0wMjogMCxcbiAgICAgICAgICAgIG0yMDogMCxcbiAgICAgICAgICAgIHRoZXRhOiAwLFxuICAgICAgICAgICAgcmFkOiAwXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZm9yICggeSA9IDA7IHkgPCBoZWlnaHQ7IHkrKykge1xuICAgICAgICB5c3EgPSB5ICogeTtcbiAgICAgICAgZm9yICggeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7XG4gICAgICAgICAgICB2YWwgPSBkYXRhW3kgKiB3aWR0aCArIHhdO1xuICAgICAgICAgICAgaWYgKHZhbCA+IDApIHtcbiAgICAgICAgICAgICAgICBsYWJlbCA9IGxhYmVsc3VtW3ZhbCAtIDFdO1xuICAgICAgICAgICAgICAgIGxhYmVsLm0wMCArPSAxO1xuICAgICAgICAgICAgICAgIGxhYmVsLm0wMSArPSB5O1xuICAgICAgICAgICAgICAgIGxhYmVsLm0xMCArPSB4O1xuICAgICAgICAgICAgICAgIGxhYmVsLm0xMSArPSB4ICogeTtcbiAgICAgICAgICAgICAgICBsYWJlbC5tMDIgKz0geXNxO1xuICAgICAgICAgICAgICAgIGxhYmVsLm0yMCArPSB4ICogeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoIGkgPSAwOyBpIDwgbGFiZWxjb3VudDsgaSsrKSB7XG4gICAgICAgIGxhYmVsID0gbGFiZWxzdW1baV07XG4gICAgICAgIGlmICghaXNOYU4obGFiZWwubTAwKSAmJiBsYWJlbC5tMDAgIT09IDApIHtcbiAgICAgICAgICAgIHhfID0gbGFiZWwubTEwIC8gbGFiZWwubTAwO1xuICAgICAgICAgICAgeV8gPSBsYWJlbC5tMDEgLyBsYWJlbC5tMDA7XG4gICAgICAgICAgICBtdTExID0gbGFiZWwubTExIC8gbGFiZWwubTAwIC0geF8gKiB5XztcbiAgICAgICAgICAgIG11MDIgPSBsYWJlbC5tMDIgLyBsYWJlbC5tMDAgLSB5XyAqIHlfO1xuICAgICAgICAgICAgbXUyMCA9IGxhYmVsLm0yMCAvIGxhYmVsLm0wMCAtIHhfICogeF87XG4gICAgICAgICAgICB0bXAgPSAobXUwMiAtIG11MjApIC8gKDIgKiBtdTExKTtcbiAgICAgICAgICAgIHRtcCA9IDAuNSAqIE1hdGguYXRhbih0bXApICsgKG11MTEgPj0gMCA/IFBJXzQgOiAtUElfNCApICsgUEk7XG4gICAgICAgICAgICBsYWJlbC50aGV0YSA9ICh0bXAgKiAxODAgLyBQSSArIDkwKSAlIDE4MCAtIDkwO1xuICAgICAgICAgICAgaWYgKGxhYmVsLnRoZXRhIDwgMCkge1xuICAgICAgICAgICAgICAgIGxhYmVsLnRoZXRhICs9IDE4MDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxhYmVsLnJhZCA9IHRtcCA+IFBJID8gdG1wIC0gUEkgOiB0bXA7XG4gICAgICAgICAgICBsYWJlbC52ZWMgPSB2ZWMyLmNsb25lKFtNYXRoLmNvcyh0bXApLCBNYXRoLnNpbih0bXApXSk7XG4gICAgICAgICAgICByZXN1bHQucHVzaChsYWJlbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBEaXNwbGF5cyB0aGUge0ltYWdlV3JhcHBlcn0gaW4gYSBnaXZlbiBjYW52YXNcbiAqIEBwYXJhbSBjYW52YXMge0NhbnZhc30gVGhlIGNhbnZhcyBlbGVtZW50IHRvIHdyaXRlIHRvXG4gKiBAcGFyYW0gc2NhbGUge051bWJlcn0gU2NhbGUgd2hpY2ggaXMgYXBwbGllZCB0byBlYWNoIHBpeGVsLXZhbHVlXG4gKi9cbkltYWdlV3JhcHBlci5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uKGNhbnZhcywgc2NhbGUpIHtcbiAgICB2YXIgY3R4LFxuICAgICAgICBmcmFtZSxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY3VycmVudCxcbiAgICAgICAgcGl4ZWwsXG4gICAgICAgIHgsXG4gICAgICAgIHk7XG5cbiAgICBpZiAoIXNjYWxlKSB7XG4gICAgICAgIHNjYWxlID0gMS4wO1xuICAgIH1cbiAgICBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjYW52YXMud2lkdGggPSB0aGlzLnNpemUueDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy5zaXplLnk7XG4gICAgZnJhbWUgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgZGF0YSA9IGZyYW1lLmRhdGE7XG4gICAgY3VycmVudCA9IDA7XG4gICAgZm9yICh5ID0gMDsgeSA8IHRoaXMuc2l6ZS55OyB5KyspIHtcbiAgICAgICAgZm9yICh4ID0gMDsgeCA8IHRoaXMuc2l6ZS54OyB4KyspIHtcbiAgICAgICAgICAgIHBpeGVsID0geSAqIHRoaXMuc2l6ZS54ICsgeDtcbiAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmdldCh4LCB5KSAqIHNjYWxlO1xuICAgICAgICAgICAgZGF0YVtwaXhlbCAqIDQgKyAwXSA9IGN1cnJlbnQ7XG4gICAgICAgICAgICBkYXRhW3BpeGVsICogNCArIDFdID0gY3VycmVudDtcbiAgICAgICAgICAgIGRhdGFbcGl4ZWwgKiA0ICsgMl0gPSBjdXJyZW50O1xuICAgICAgICAgICAgZGF0YVtwaXhlbCAqIDQgKyAzXSA9IDI1NTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvL2ZyYW1lLmRhdGEgPSBkYXRhO1xuICAgIGN0eC5wdXRJbWFnZURhdGEoZnJhbWUsIDAsIDApO1xufTtcblxuLyoqXG4gKiBEaXNwbGF5cyB0aGUge1N1YkltYWdlfSBpbiBhIGdpdmVuIGNhbnZhc1xuICogQHBhcmFtIGNhbnZhcyB7Q2FudmFzfSBUaGUgY2FudmFzIGVsZW1lbnQgdG8gd3JpdGUgdG9cbiAqIEBwYXJhbSBzY2FsZSB7TnVtYmVyfSBTY2FsZSB3aGljaCBpcyBhcHBsaWVkIHRvIGVhY2ggcGl4ZWwtdmFsdWVcbiAqL1xuSW1hZ2VXcmFwcGVyLnByb3RvdHlwZS5vdmVybGF5ID0gZnVuY3Rpb24oY2FudmFzLCBzY2FsZSwgZnJvbSkge1xuICAgIGlmICghc2NhbGUgfHwgc2NhbGUgPCAwIHx8IHNjYWxlID4gMzYwKSB7XG4gICAgICAgIHNjYWxlID0gMzYwO1xuICAgIH1cbiAgICB2YXIgaHN2ID0gWzAsIDEsIDFdO1xuICAgIHZhciByZ2IgPSBbMCwgMCwgMF07XG4gICAgdmFyIHdoaXRlUmdiID0gWzI1NSwgMjU1LCAyNTVdO1xuICAgIHZhciBibGFja1JnYiA9IFswLCAwLCAwXTtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIHZhciBmcmFtZSA9IGN0eC5nZXRJbWFnZURhdGEoZnJvbS54LCBmcm9tLnksIHRoaXMuc2l6ZS54LCB0aGlzLnNpemUueSk7XG4gICAgdmFyIGRhdGEgPSBmcmFtZS5kYXRhO1xuICAgIHZhciBsZW5ndGggPSB0aGlzLmRhdGEubGVuZ3RoO1xuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAgICBoc3ZbMF0gPSB0aGlzLmRhdGFbbGVuZ3RoXSAqIHNjYWxlO1xuICAgICAgICByZXN1bHQgPSBoc3ZbMF0gPD0gMCA/IHdoaXRlUmdiIDogaHN2WzBdID49IDM2MCA/IGJsYWNrUmdiIDogaHN2MnJnYihoc3YsIHJnYik7XG4gICAgICAgIGRhdGFbbGVuZ3RoICogNCArIDBdID0gcmVzdWx0WzBdO1xuICAgICAgICBkYXRhW2xlbmd0aCAqIDQgKyAxXSA9IHJlc3VsdFsxXTtcbiAgICAgICAgZGF0YVtsZW5ndGggKiA0ICsgMl0gPSByZXN1bHRbMl07XG4gICAgICAgIGRhdGFbbGVuZ3RoICogNCArIDNdID0gMjU1O1xuICAgIH1cbiAgICBjdHgucHV0SW1hZ2VEYXRhKGZyYW1lLCBmcm9tLngsIGZyb20ueSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZVdyYXBwZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvY29tbW9uL2ltYWdlX3dyYXBwZXIuanMiLCJ2YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL19kZWZpbmVQcm9wZXJ0eScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gKiB2YWx1ZSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAnd3JpdGFibGUnOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VBc3NpZ25WYWx1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Jhc2VBc3NpZ25WYWx1ZS5qc1xuLy8gbW9kdWxlIGlkID0gMjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGJhc2VJc05hdGl2ZSA9IHJlcXVpcmUoJy4vX2Jhc2VJc05hdGl2ZScpLFxuICAgIGdldFZhbHVlID0gcmVxdWlyZSgnLi9fZ2V0VmFsdWUnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXROYXRpdmU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19nZXROYXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBpc1N5bWJvbCA9IHJlcXVpcmUoJy4vaXNTeW1ib2wnKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgSU5GSU5JVFkgPSAxIC8gMDtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIGtleSBpZiBpdCdzIG5vdCBhIHN0cmluZyBvciBzeW1ib2wuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfHN5bWJvbH0gUmV0dXJucyB0aGUga2V5LlxuICovXG5mdW5jdGlvbiB0b0tleSh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gKHZhbHVlICsgJycpO1xuICByZXR1cm4gKHJlc3VsdCA9PSAnMCcgJiYgKDEgLyB2YWx1ZSkgPT0gLUlORklOSVRZKSA/ICctMCcgOiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9LZXk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL190b0tleS5qc1xuLy8gbW9kdWxlIGlkID0gMjNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGlzRnVuY3Rpb24gPSByZXF1aXJlKCcuL2lzRnVuY3Rpb24nKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLiBBIHZhbHVlIGlzIGNvbnNpZGVyZWQgYXJyYXktbGlrZSBpZiBpdCdzXG4gKiBub3QgYSBmdW5jdGlvbiBhbmQgaGFzIGEgYHZhbHVlLmxlbmd0aGAgdGhhdCdzIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIG9yXG4gKiBlcXVhbCB0byBgMGAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZSgnYWJjJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhaXNGdW5jdGlvbih2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheUxpa2U7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2lzQXJyYXlMaWtlLmpzXG4vLyBtb2R1bGUgaWQgPSAyNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFzeW5jVGFnID0gJ1tvYmplY3QgQXN5bmNGdW5jdGlvbl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgcHJveHlUYWcgPSAnW29iamVjdCBQcm94eV0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNGdW5jdGlvbihfKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oL2FiYy8pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBUaGUgdXNlIG9mIGBPYmplY3QjdG9TdHJpbmdgIGF2b2lkcyBpc3N1ZXMgd2l0aCB0aGUgYHR5cGVvZmAgb3BlcmF0b3JcbiAgLy8gaW4gU2FmYXJpIDkgd2hpY2ggcmV0dXJucyAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXlzIGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXG4gIHZhciB0YWcgPSBiYXNlR2V0VGFnKHZhbHVlKTtcbiAgcmV0dXJuIHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWcgfHwgdGFnID09IGFzeW5jVGFnIHx8IHRhZyA9PSBwcm94eVRhZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0Z1bmN0aW9uO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9pc0Z1bmN0aW9uLmpzXG4vLyBtb2R1bGUgaWQgPSAyNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgbGVuZ3RoLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gKiBbYFRvTGVuZ3RoYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9sZW5ndGgpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNMZW5ndGgoMyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aChJbmZpbml0eSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoJzMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiZcbiAgICB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDw9IE1BWF9TQUZFX0lOVEVHRVI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNMZW5ndGg7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2lzTGVuZ3RoLmpzXG4vLyBtb2R1bGUgaWQgPSAyNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTeW1ib2woJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN5bWJvbFRhZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTeW1ib2w7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2lzU3ltYm9sLmpzXG4vLyBtb2R1bGUgaWQgPSAyN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZU1lcmdlID0gcmVxdWlyZSgnLi9fYmFzZU1lcmdlJyksXG4gICAgY3JlYXRlQXNzaWduZXIgPSByZXF1aXJlKCcuL19jcmVhdGVBc3NpZ25lcicpO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBtZXJnZXMgb3duIGFuZFxuICogaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgb2Ygc291cmNlIG9iamVjdHMgaW50byB0aGVcbiAqIGRlc3RpbmF0aW9uIG9iamVjdC4gU291cmNlIHByb3BlcnRpZXMgdGhhdCByZXNvbHZlIHRvIGB1bmRlZmluZWRgIGFyZVxuICogc2tpcHBlZCBpZiBhIGRlc3RpbmF0aW9uIHZhbHVlIGV4aXN0cy4gQXJyYXkgYW5kIHBsYWluIG9iamVjdCBwcm9wZXJ0aWVzXG4gKiBhcmUgbWVyZ2VkIHJlY3Vyc2l2ZWx5LiBPdGhlciBvYmplY3RzIGFuZCB2YWx1ZSB0eXBlcyBhcmUgb3ZlcnJpZGRlbiBieVxuICogYXNzaWdubWVudC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LiBTdWJzZXF1ZW50XG4gKiBzb3VyY2VzIG92ZXJ3cml0ZSBwcm9wZXJ0eSBhc3NpZ25tZW50cyBvZiBwcmV2aW91cyBzb3VyY2VzLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC41LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSBbc291cmNlc10gVGhlIHNvdXJjZSBvYmplY3RzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHtcbiAqICAgJ2EnOiBbeyAnYic6IDIgfSwgeyAnZCc6IDQgfV1cbiAqIH07XG4gKlxuICogdmFyIG90aGVyID0ge1xuICogICAnYSc6IFt7ICdjJzogMyB9LCB7ICdlJzogNSB9XVxuICogfTtcbiAqXG4gKiBfLm1lcmdlKG9iamVjdCwgb3RoZXIpO1xuICogLy8gPT4geyAnYSc6IFt7ICdiJzogMiwgJ2MnOiAzIH0sIHsgJ2QnOiA0LCAnZSc6IDUgfV0gfVxuICovXG52YXIgbWVyZ2UgPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgpIHtcbiAgYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCk7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBtZXJnZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvbWVyZ2UuanNcbi8vIG1vZHVsZSBpZCA9IDI4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obW9kdWxlKSB7XHJcblx0aWYoIW1vZHVsZS53ZWJwYWNrUG9seWZpbGwpIHtcclxuXHRcdG1vZHVsZS5kZXByZWNhdGUgPSBmdW5jdGlvbigpIHt9O1xyXG5cdFx0bW9kdWxlLnBhdGhzID0gW107XHJcblx0XHQvLyBtb2R1bGUucGFyZW50ID0gdW5kZWZpbmVkIGJ5IGRlZmF1bHRcclxuXHRcdGlmKCFtb2R1bGUuY2hpbGRyZW4pIG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xyXG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJsb2FkZWRcIiwge1xyXG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxyXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHJldHVybiBtb2R1bGUubDtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImlkXCIsIHtcclxuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRyZXR1cm4gbW9kdWxlLmk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0bW9kdWxlLndlYnBhY2tQb2x5ZmlsbCA9IDE7XHJcblx0fVxyXG5cdHJldHVybiBtb2R1bGU7XHJcbn07XHJcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vICh3ZWJwYWNrKS9idWlsZGluL21vZHVsZS5qc1xuLy8gbW9kdWxlIGlkID0gMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBodHRwOi8vd3d3LmNvZGVwcm9qZWN0LmNvbS9UaXBzLzQwNzE3Mi9Db25uZWN0ZWQtQ29tcG9uZW50LUxhYmVsaW5nLWFuZC1WZWN0b3JpemF0aW9uXG4gKi9cbnZhciBUcmFjZXIgPSB7XG4gICAgc2VhcmNoRGlyZWN0aW9uczogW1swLCAxXSwgWzEsIDFdLCBbMSwgMF0sIFsxLCAtMV0sIFswLCAtMV0sIFstMSwgLTFdLCBbLTEsIDBdLCBbLTEsIDFdXSxcbiAgICBjcmVhdGU6IGZ1bmN0aW9uKGltYWdlV3JhcHBlciwgbGFiZWxXcmFwcGVyKSB7XG4gICAgICAgIHZhciBpbWFnZURhdGEgPSBpbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgICAgIGxhYmVsRGF0YSA9IGxhYmVsV3JhcHBlci5kYXRhLFxuICAgICAgICAgICAgc2VhcmNoRGlyZWN0aW9ucyA9IHRoaXMuc2VhcmNoRGlyZWN0aW9ucyxcbiAgICAgICAgICAgIHdpZHRoID0gaW1hZ2VXcmFwcGVyLnNpemUueCxcbiAgICAgICAgICAgIHBvcztcblxuICAgICAgICBmdW5jdGlvbiB0cmFjZShjdXJyZW50LCBjb2xvciwgbGFiZWwsIGVkZ2VsYWJlbCkge1xuICAgICAgICAgICAgdmFyIGksXG4gICAgICAgICAgICAgICAgeSxcbiAgICAgICAgICAgICAgICB4O1xuXG4gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgICAgIHkgPSBjdXJyZW50LmN5ICsgc2VhcmNoRGlyZWN0aW9uc1tjdXJyZW50LmRpcl1bMF07XG4gICAgICAgICAgICAgICAgeCA9IGN1cnJlbnQuY3ggKyBzZWFyY2hEaXJlY3Rpb25zW2N1cnJlbnQuZGlyXVsxXTtcbiAgICAgICAgICAgICAgICBwb3MgPSB5ICogd2lkdGggKyB4O1xuICAgICAgICAgICAgICAgIGlmICgoaW1hZ2VEYXRhW3Bvc10gPT09IGNvbG9yKSAmJiAoKGxhYmVsRGF0YVtwb3NdID09PSAwKSB8fCAobGFiZWxEYXRhW3Bvc10gPT09IGxhYmVsKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxEYXRhW3Bvc10gPSBsYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudC5jeSA9IHk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuY3ggPSB4O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFiZWxEYXRhW3Bvc10gPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsRGF0YVtwb3NdID0gZWRnZWxhYmVsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuZGlyID0gKGN1cnJlbnQuZGlyICsgMSkgJSA4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHZlcnRleDJEKHgsIHksIGRpcikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkaXI6IGRpcixcbiAgICAgICAgICAgICAgICB4OiB4LFxuICAgICAgICAgICAgICAgIHk6IHksXG4gICAgICAgICAgICAgICAgbmV4dDogbnVsbCxcbiAgICAgICAgICAgICAgICBwcmV2OiBudWxsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gY29udG91clRyYWNpbmcoc3ksIHN4LCBsYWJlbCwgY29sb3IsIGVkZ2VsYWJlbCkge1xuICAgICAgICAgICAgdmFyIEZ2ID0gbnVsbCxcbiAgICAgICAgICAgICAgICBDdixcbiAgICAgICAgICAgICAgICBQLFxuICAgICAgICAgICAgICAgIGxkaXIsXG4gICAgICAgICAgICAgICAgY3VycmVudCA9IHtcbiAgICAgICAgICAgICAgICAgICAgY3g6IHN4LFxuICAgICAgICAgICAgICAgICAgICBjeTogc3ksXG4gICAgICAgICAgICAgICAgICAgIGRpcjogMFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmICh0cmFjZShjdXJyZW50LCBjb2xvciwgbGFiZWwsIGVkZ2VsYWJlbCkpIHtcbiAgICAgICAgICAgICAgICBGdiA9IHZlcnRleDJEKHN4LCBzeSwgY3VycmVudC5kaXIpO1xuICAgICAgICAgICAgICAgIEN2ID0gRnY7XG4gICAgICAgICAgICAgICAgbGRpciA9IGN1cnJlbnQuZGlyO1xuICAgICAgICAgICAgICAgIFAgPSB2ZXJ0ZXgyRChjdXJyZW50LmN4LCBjdXJyZW50LmN5LCAwKTtcbiAgICAgICAgICAgICAgICBQLnByZXYgPSBDdjtcbiAgICAgICAgICAgICAgICBDdi5uZXh0ID0gUDtcbiAgICAgICAgICAgICAgICBQLm5leHQgPSBudWxsO1xuICAgICAgICAgICAgICAgIEN2ID0gUDtcbiAgICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuZGlyID0gKGN1cnJlbnQuZGlyICsgNikgJSA4O1xuICAgICAgICAgICAgICAgICAgICB0cmFjZShjdXJyZW50LCBjb2xvciwgbGFiZWwsIGVkZ2VsYWJlbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsZGlyICE9PSBjdXJyZW50LmRpcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgQ3YuZGlyID0gY3VycmVudC5kaXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBQID0gdmVydGV4MkQoY3VycmVudC5jeCwgY3VycmVudC5jeSwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBQLnByZXYgPSBDdjtcbiAgICAgICAgICAgICAgICAgICAgICAgIEN2Lm5leHQgPSBQO1xuICAgICAgICAgICAgICAgICAgICAgICAgUC5uZXh0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIEN2ID0gUDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEN2LmRpciA9IGxkaXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBDdi54ID0gY3VycmVudC5jeDtcbiAgICAgICAgICAgICAgICAgICAgICAgIEN2LnkgPSBjdXJyZW50LmN5O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxkaXIgPSBjdXJyZW50LmRpcjtcbiAgICAgICAgICAgICAgICB9IHdoaWxlIChjdXJyZW50LmN4ICE9PSBzeCB8fCBjdXJyZW50LmN5ICE9PSBzeSk7XG4gICAgICAgICAgICAgICAgRnYucHJldiA9IEN2LnByZXY7XG4gICAgICAgICAgICAgICAgQ3YucHJldi5uZXh0ID0gRnY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gRnY7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHJhY2U6IGZ1bmN0aW9uKGN1cnJlbnQsIGNvbG9yLCBsYWJlbCwgZWRnZWxhYmVsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYWNlKGN1cnJlbnQsIGNvbG9yLCBsYWJlbCwgZWRnZWxhYmVsKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb250b3VyVHJhY2luZzogZnVuY3Rpb24oc3ksIHN4LCBsYWJlbCwgY29sb3IsIGVkZ2VsYWJlbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250b3VyVHJhY2luZyhzeSwgc3gsIGxhYmVsLCBjb2xvciwgZWRnZWxhYmVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCAoVHJhY2VyKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9sb2NhdG9yL3RyYWNlci5qcyIsImltcG9ydCBCYXJjb2RlUmVhZGVyIGZyb20gJy4vYmFyY29kZV9yZWFkZXInO1xuaW1wb3J0IEFycmF5SGVscGVyIGZyb20gJy4uL2NvbW1vbi9hcnJheV9oZWxwZXInO1xuXG5mdW5jdGlvbiBDb2RlMzlSZWFkZXIoKSB7XG4gICAgQmFyY29kZVJlYWRlci5jYWxsKHRoaXMpO1xufVxuXG52YXIgcHJvcGVydGllcyA9IHtcbiAgICBBTFBIQUJFVEhfU1RSSU5HOiB7dmFsdWU6IFwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLS4gKiQvKyVcIn0sXG4gICAgQUxQSEFCRVQ6IHt2YWx1ZTogWzQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA2NSwgNjYsIDY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsXG4gICAgICAgIDc5LCA4MCwgODEsIDgyLCA4MywgODQsIDg1LCA4NiwgODcsIDg4LCA4OSwgOTAsIDQ1LCA0NiwgMzIsIDQyLCAzNiwgNDcsIDQzLCAzN119LFxuICAgIENIQVJBQ1RFUl9FTkNPRElOR1M6IHt2YWx1ZTogWzB4MDM0LCAweDEyMSwgMHgwNjEsIDB4MTYwLCAweDAzMSwgMHgxMzAsIDB4MDcwLCAweDAyNSwgMHgxMjQsIDB4MDY0LCAweDEwOSwgMHgwNDksXG4gICAgICAgIDB4MTQ4LCAweDAxOSwgMHgxMTgsIDB4MDU4LCAweDAwRCwgMHgxMEMsIDB4MDRDLCAweDAxQywgMHgxMDMsIDB4MDQzLCAweDE0MiwgMHgwMTMsIDB4MTEyLCAweDA1MiwgMHgwMDcsIDB4MTA2LFxuICAgICAgICAweDA0NiwgMHgwMTYsIDB4MTgxLCAweDBDMSwgMHgxQzAsIDB4MDkxLCAweDE5MCwgMHgwRDAsIDB4MDg1LCAweDE4NCwgMHgwQzQsIDB4MDk0LCAweDBBOCwgMHgwQTIsIDB4MDhBLCAweDAyQVxuICAgIF19LFxuICAgIEFTVEVSSVNLOiB7dmFsdWU6IDB4MDk0fSxcbiAgICBGT1JNQVQ6IHt2YWx1ZTogXCJjb2RlXzM5XCIsIHdyaXRlYWJsZTogZmFsc2V9XG59O1xuXG5Db2RlMzlSZWFkZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShCYXJjb2RlUmVhZGVyLnByb3RvdHlwZSwgcHJvcGVydGllcyk7XG5Db2RlMzlSZWFkZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gQ29kZTM5UmVhZGVyO1xuXG5Db2RlMzlSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGNvdW50ZXJzID0gWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLFxuICAgICAgICByZXN1bHQgPSBbXSxcbiAgICAgICAgc3RhcnQgPSBzZWxmLl9maW5kU3RhcnQoKSxcbiAgICAgICAgZGVjb2RlZENoYXIsXG4gICAgICAgIGxhc3RTdGFydCxcbiAgICAgICAgcGF0dGVybixcbiAgICAgICAgbmV4dFN0YXJ0O1xuXG4gICAgaWYgKCFzdGFydCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgbmV4dFN0YXJ0ID0gc2VsZi5fbmV4dFNldChzZWxmLl9yb3csIHN0YXJ0LmVuZCk7XG5cbiAgICBkbyB7XG4gICAgICAgIGNvdW50ZXJzID0gc2VsZi5fdG9Db3VudGVycyhuZXh0U3RhcnQsIGNvdW50ZXJzKTtcbiAgICAgICAgcGF0dGVybiA9IHNlbGYuX3RvUGF0dGVybihjb3VudGVycyk7XG4gICAgICAgIGlmIChwYXR0ZXJuIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZGVjb2RlZENoYXIgPSBzZWxmLl9wYXR0ZXJuVG9DaGFyKHBhdHRlcm4pO1xuICAgICAgICBpZiAoZGVjb2RlZENoYXIgPCAwKXtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdC5wdXNoKGRlY29kZWRDaGFyKTtcbiAgICAgICAgbGFzdFN0YXJ0ID0gbmV4dFN0YXJ0O1xuICAgICAgICBuZXh0U3RhcnQgKz0gQXJyYXlIZWxwZXIuc3VtKGNvdW50ZXJzKTtcbiAgICAgICAgbmV4dFN0YXJ0ID0gc2VsZi5fbmV4dFNldChzZWxmLl9yb3csIG5leHRTdGFydCk7XG4gICAgfSB3aGlsZSAoZGVjb2RlZENoYXIgIT09ICcqJyk7XG4gICAgcmVzdWx0LnBvcCgpO1xuXG4gICAgaWYgKCFyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghc2VsZi5fdmVyaWZ5VHJhaWxpbmdXaGl0ZXNwYWNlKGxhc3RTdGFydCwgbmV4dFN0YXJ0LCBjb3VudGVycykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmpvaW4oXCJcIiksXG4gICAgICAgIHN0YXJ0OiBzdGFydC5zdGFydCxcbiAgICAgICAgZW5kOiBuZXh0U3RhcnQsXG4gICAgICAgIHN0YXJ0SW5mbzogc3RhcnQsXG4gICAgICAgIGRlY29kZWRDb2RlczogcmVzdWx0XG4gICAgfTtcbn07XG5cbkNvZGUzOVJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZSA9IGZ1bmN0aW9uKGxhc3RTdGFydCwgbmV4dFN0YXJ0LCBjb3VudGVycykge1xuICAgIHZhciB0cmFpbGluZ1doaXRlc3BhY2VFbmQsXG4gICAgICAgIHBhdHRlcm5TaXplID0gQXJyYXlIZWxwZXIuc3VtKGNvdW50ZXJzKTtcblxuICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA9IG5leHRTdGFydCAtIGxhc3RTdGFydCAtIHBhdHRlcm5TaXplO1xuICAgIGlmICgodHJhaWxpbmdXaGl0ZXNwYWNlRW5kICogMykgPj0gcGF0dGVyblNpemUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbkNvZGUzOVJlYWRlci5wcm90b3R5cGUuX3BhdHRlcm5Ub0NoYXIgPSBmdW5jdGlvbihwYXR0ZXJuKSB7XG4gICAgdmFyIGksXG4gICAgICAgIHNlbGYgPSB0aGlzO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IHNlbGYuQ0hBUkFDVEVSX0VOQ09ESU5HUy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc2VsZi5DSEFSQUNURVJfRU5DT0RJTkdTW2ldID09PSBwYXR0ZXJuKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShzZWxmLkFMUEhBQkVUW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG59O1xuXG5Db2RlMzlSZWFkZXIucHJvdG90eXBlLl9maW5kTmV4dFdpZHRoID0gZnVuY3Rpb24oY291bnRlcnMsIGN1cnJlbnQpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgbWluV2lkdGggPSBOdW1iZXIuTUFYX1ZBTFVFO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGNvdW50ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChjb3VudGVyc1tpXSA8IG1pbldpZHRoICYmIGNvdW50ZXJzW2ldID4gY3VycmVudCkge1xuICAgICAgICAgICAgbWluV2lkdGggPSBjb3VudGVyc1tpXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtaW5XaWR0aDtcbn07XG5cbkNvZGUzOVJlYWRlci5wcm90b3R5cGUuX3RvUGF0dGVybiA9IGZ1bmN0aW9uKGNvdW50ZXJzKSB7XG4gICAgdmFyIG51bUNvdW50ZXJzID0gY291bnRlcnMubGVuZ3RoLFxuICAgICAgICBtYXhOYXJyb3dXaWR0aCA9IDAsXG4gICAgICAgIG51bVdpZGVCYXJzID0gbnVtQ291bnRlcnMsXG4gICAgICAgIHdpZGVCYXJXaWR0aCA9IDAsXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBwYXR0ZXJuLFxuICAgICAgICBpO1xuXG4gICAgd2hpbGUgKG51bVdpZGVCYXJzID4gMykge1xuICAgICAgICBtYXhOYXJyb3dXaWR0aCA9IHNlbGYuX2ZpbmROZXh0V2lkdGgoY291bnRlcnMsIG1heE5hcnJvd1dpZHRoKTtcbiAgICAgICAgbnVtV2lkZUJhcnMgPSAwO1xuICAgICAgICBwYXR0ZXJuID0gMDtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bUNvdW50ZXJzOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyc1tpXSA+IG1heE5hcnJvd1dpZHRoKSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybiB8PSAxIDw8IChudW1Db3VudGVycyAtIDEgLSBpKTtcbiAgICAgICAgICAgICAgICBudW1XaWRlQmFycysrO1xuICAgICAgICAgICAgICAgIHdpZGVCYXJXaWR0aCArPSBjb3VudGVyc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChudW1XaWRlQmFycyA9PT0gMykge1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bUNvdW50ZXJzICYmIG51bVdpZGVCYXJzID4gMDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvdW50ZXJzW2ldID4gbWF4TmFycm93V2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbnVtV2lkZUJhcnMtLTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKChjb3VudGVyc1tpXSAqIDIpID49IHdpZGVCYXJXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBhdHRlcm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xO1xufTtcblxuQ29kZTM5UmVhZGVyLnByb3RvdHlwZS5fZmluZFN0YXJ0ID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBvZmZzZXQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3JvdyksXG4gICAgICAgIHBhdHRlcm5TdGFydCA9IG9mZnNldCxcbiAgICAgICAgY291bnRlciA9IFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSxcbiAgICAgICAgY291bnRlclBvcyA9IDAsXG4gICAgICAgIGlzV2hpdGUgPSBmYWxzZSxcbiAgICAgICAgaSxcbiAgICAgICAgaixcbiAgICAgICAgd2hpdGVTcGFjZU11c3RTdGFydDtcblxuICAgIGZvciAoIGkgPSBvZmZzZXQ7IGkgPCBzZWxmLl9yb3cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10rKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBjb3VudGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAvLyBmaW5kIHN0YXJ0IHBhdHRlcm5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5fdG9QYXR0ZXJuKGNvdW50ZXIpID09PSBzZWxmLkFTVEVSSVNLKSB7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2VNdXN0U3RhcnQgPSBNYXRoLmZsb29yKE1hdGgubWF4KDAsIHBhdHRlcm5TdGFydCAtICgoaSAtIHBhdHRlcm5TdGFydCkgLyA0KSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi5fbWF0Y2hSYW5nZSh3aGl0ZVNwYWNlTXVzdFN0YXJ0LCBwYXR0ZXJuU3RhcnQsIDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBwYXR0ZXJuU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBpXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGF0dGVyblN0YXJ0ICs9IGNvdW50ZXJbMF0gKyBjb3VudGVyWzFdO1xuICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgNzsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbal0gPSBjb3VudGVyW2ogKyAyXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY291bnRlcls3XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlcls4XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlclBvcy0tO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyUG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgIGlzV2hpdGUgPSAhaXNXaGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvZGUzOVJlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvY29kZV8zOV9yZWFkZXIuanMiLCJtb2R1bGUuZXhwb3J0cyA9IGRvdFxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGRvdCBwcm9kdWN0IG9mIHR3byB2ZWMyJ3NcbiAqXG4gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIGZpcnN0IG9wZXJhbmRcbiAqIEBwYXJhbSB7dmVjMn0gYiB0aGUgc2Vjb25kIG9wZXJhbmRcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IGRvdCBwcm9kdWN0IG9mIGEgYW5kIGJcbiAqL1xuZnVuY3Rpb24gZG90KGEsIGIpIHtcbiAgICByZXR1cm4gYVswXSAqIGJbMF0gKyBhWzFdICogYlsxXVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9nbC12ZWMyL2RvdC5qc1xuLy8gbW9kdWxlIGlkID0gMzJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4vX2dldE5hdGl2ZScpLFxuICAgIHJvb3QgPSByZXF1aXJlKCcuL19yb290Jyk7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBNYXAgPSBnZXROYXRpdmUocm9vdCwgJ01hcCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1hcDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX01hcC5qc1xuLy8gbW9kdWxlIGlkID0gMzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIG1hcENhY2hlQ2xlYXIgPSByZXF1aXJlKCcuL19tYXBDYWNoZUNsZWFyJyksXG4gICAgbWFwQ2FjaGVEZWxldGUgPSByZXF1aXJlKCcuL19tYXBDYWNoZURlbGV0ZScpLFxuICAgIG1hcENhY2hlR2V0ID0gcmVxdWlyZSgnLi9fbWFwQ2FjaGVHZXQnKSxcbiAgICBtYXBDYWNoZUhhcyA9IHJlcXVpcmUoJy4vX21hcENhY2hlSGFzJyksXG4gICAgbWFwQ2FjaGVTZXQgPSByZXF1aXJlKCcuL19tYXBDYWNoZVNldCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBtYXAgY2FjaGUgb2JqZWN0IHRvIHN0b3JlIGtleS12YWx1ZSBwYWlycy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gTWFwQ2FjaGUoZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICB0aGlzLmNsZWFyKCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgfVxufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgTWFwQ2FjaGVgLlxuTWFwQ2FjaGUucHJvdG90eXBlLmNsZWFyID0gbWFwQ2FjaGVDbGVhcjtcbk1hcENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBtYXBDYWNoZURlbGV0ZTtcbk1hcENhY2hlLnByb3RvdHlwZS5nZXQgPSBtYXBDYWNoZUdldDtcbk1hcENhY2hlLnByb3RvdHlwZS5oYXMgPSBtYXBDYWNoZUhhcztcbk1hcENhY2hlLnByb3RvdHlwZS5zZXQgPSBtYXBDYWNoZVNldDtcblxubW9kdWxlLmV4cG9ydHMgPSBNYXBDYWNoZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX01hcENhY2hlLmpzXG4vLyBtb2R1bGUgaWQgPSAzNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZUFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYmFzZUFzc2lnblZhbHVlJyksXG4gICAgZXEgPSByZXF1aXJlKCcuL2VxJyk7XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBhc3NpZ25WYWx1ZWAgZXhjZXB0IHRoYXQgaXQgZG9lc24ndCBhc3NpZ25cbiAqIGB1bmRlZmluZWRgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWVxKG9iamVjdFtrZXldLCB2YWx1ZSkpIHx8XG4gICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhKGtleSBpbiBvYmplY3QpKSkge1xuICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXNzaWduTWVyZ2VWYWx1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Fzc2lnbk1lcmdlVmFsdWUuanNcbi8vIG1vZHVsZSBpZCA9IDM1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlQXNzaWduVmFsdWUgPSByZXF1aXJlKCcuL19iYXNlQXNzaWduVmFsdWUnKSxcbiAgICBlcSA9IHJlcXVpcmUoJy4vZXEnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBc3NpZ25zIGB2YWx1ZWAgdG8gYGtleWAgb2YgYG9iamVjdGAgaWYgdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5vdCBlcXVpdmFsZW50XG4gKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgaWYgKCEoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgZXEob2JqVmFsdWUsIHZhbHVlKSkgfHxcbiAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ25WYWx1ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Fzc2lnblZhbHVlLmpzXG4vLyBtb2R1bGUgaWQgPSAzNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZ2V0TmF0aXZlID0gcmVxdWlyZSgnLi9fZ2V0TmF0aXZlJyk7XG5cbnZhciBkZWZpbmVQcm9wZXJ0eSA9IChmdW5jdGlvbigpIHtcbiAgdHJ5IHtcbiAgICB2YXIgZnVuYyA9IGdldE5hdGl2ZShPYmplY3QsICdkZWZpbmVQcm9wZXJ0eScpO1xuICAgIGZ1bmMoe30sICcnLCB7fSk7XG4gICAgcmV0dXJuIGZ1bmM7XG4gIH0gY2F0Y2ggKGUpIHt9XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRlZmluZVByb3BlcnR5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fZGVmaW5lUHJvcGVydHkuanNcbi8vIG1vZHVsZSBpZCA9IDM3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbm1vZHVsZS5leHBvcnRzID0gZnJlZUdsb2JhbDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2ZyZWVHbG9iYWwuanNcbi8vIG1vZHVsZSBpZCA9IDM4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBvdmVyQXJnID0gcmVxdWlyZSgnLi9fb3ZlckFyZycpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBnZXRQcm90b3R5cGUgPSBvdmVyQXJnKE9iamVjdC5nZXRQcm90b3R5cGVPZiwgT2JqZWN0KTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRQcm90b3R5cGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19nZXRQcm90b3R5cGUuanNcbi8vIG1vZHVsZSBpZCA9IDM5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGEgcHJvdG90eXBlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZSh2YWx1ZSkge1xuICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgcmV0dXJuIHZhbHVlID09PSBwcm90bztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1Byb3RvdHlwZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2lzUHJvdG90eXBlLmpzXG4vLyBtb2R1bGUgaWQgPSA0MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYXBwbHkgPSByZXF1aXJlKCcuL19hcHBseScpO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUmVzdGAgd2hpY2ggdHJhbnNmb3JtcyB0aGUgcmVzdCBhcnJheS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHRyYW5zZm9ybSBUaGUgcmVzdCBhcnJheSB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gb3ZlclJlc3QoZnVuYywgc3RhcnQsIHRyYW5zZm9ybSkge1xuICBzdGFydCA9IG5hdGl2ZU1heChzdGFydCA9PT0gdW5kZWZpbmVkID8gKGZ1bmMubGVuZ3RoIC0gMSkgOiBzdGFydCwgMCk7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3MubGVuZ3RoIC0gc3RhcnQsIDApLFxuICAgICAgICBhcnJheSA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgYXJyYXlbaW5kZXhdID0gYXJnc1tzdGFydCArIGluZGV4XTtcbiAgICB9XG4gICAgaW5kZXggPSAtMTtcbiAgICB2YXIgb3RoZXJBcmdzID0gQXJyYXkoc3RhcnQgKyAxKTtcbiAgICB3aGlsZSAoKytpbmRleCA8IHN0YXJ0KSB7XG4gICAgICBvdGhlckFyZ3NbaW5kZXhdID0gYXJnc1tpbmRleF07XG4gICAgfVxuICAgIG90aGVyQXJnc1tzdGFydF0gPSB0cmFuc2Zvcm0oYXJyYXkpO1xuICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBvdGhlckFyZ3MpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG92ZXJSZXN0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fb3ZlclJlc3QuanNcbi8vIG1vZHVsZSBpZCA9IDQxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlU2V0VG9TdHJpbmcgPSByZXF1aXJlKCcuL19iYXNlU2V0VG9TdHJpbmcnKSxcbiAgICBzaG9ydE91dCA9IHJlcXVpcmUoJy4vX3Nob3J0T3V0Jyk7XG5cbi8qKlxuICogU2V0cyB0aGUgYHRvU3RyaW5nYCBtZXRob2Qgb2YgYGZ1bmNgIHRvIHJldHVybiBgc3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gKi9cbnZhciBzZXRUb1N0cmluZyA9IHNob3J0T3V0KGJhc2VTZXRUb1N0cmluZyk7XG5cbm1vZHVsZS5leHBvcnRzID0gc2V0VG9TdHJpbmc7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19zZXRUb1N0cmluZy5qc1xuLy8gbW9kdWxlIGlkID0gNDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBpdCByZWNlaXZlcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHsqfSB2YWx1ZSBBbnkgdmFsdWUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyBgdmFsdWVgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqXG4gKiBjb25zb2xlLmxvZyhfLmlkZW50aXR5KG9iamVjdCkgPT09IG9iamVjdCk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlkZW50aXR5KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpZGVudGl0eTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvaWRlbnRpdHkuanNcbi8vIG1vZHVsZSBpZCA9IDQzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpLFxuICAgIHN0dWJGYWxzZSA9IHJlcXVpcmUoJy4vc3R1YkZhbHNlJyk7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0J1ZmZlcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvaXNCdWZmZXIuanNcbi8vIG1vZHVsZSBpZCA9IDQ0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlSXNUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9fYmFzZUlzVHlwZWRBcnJheScpLFxuICAgIGJhc2VVbmFyeSA9IHJlcXVpcmUoJy4vX2Jhc2VVbmFyeScpLFxuICAgIG5vZGVVdGlsID0gcmVxdWlyZSgnLi9fbm9kZVV0aWwnKTtcblxuLyogTm9kZS5qcyBoZWxwZXIgcmVmZXJlbmNlcy4gKi9cbnZhciBub2RlSXNUeXBlZEFycmF5ID0gbm9kZVV0aWwgJiYgbm9kZVV0aWwuaXNUeXBlZEFycmF5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSB0eXBlZCBhcnJheS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KG5ldyBVaW50OEFycmF5KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzVHlwZWRBcnJheShbXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNUeXBlZEFycmF5ID0gbm9kZUlzVHlwZWRBcnJheSA/IGJhc2VVbmFyeShub2RlSXNUeXBlZEFycmF5KSA6IGJhc2VJc1R5cGVkQXJyYXk7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNUeXBlZEFycmF5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9pc1R5cGVkQXJyYXkuanNcbi8vIG1vZHVsZSBpZCA9IDQ1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBhcnJheUxpa2VLZXlzID0gcmVxdWlyZSgnLi9fYXJyYXlMaWtlS2V5cycpLFxuICAgIGJhc2VLZXlzSW4gPSByZXF1aXJlKCcuL19iYXNlS2V5c0luJyksXG4gICAgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuL2lzQXJyYXlMaWtlJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXNJbihuZXcgRm9vKTtcbiAqIC8vID0+IFsnYScsICdiJywgJ2MnXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICovXG5mdW5jdGlvbiBrZXlzSW4ob2JqZWN0KSB7XG4gIHJldHVybiBpc0FycmF5TGlrZShvYmplY3QpID8gYXJyYXlMaWtlS2V5cyhvYmplY3QsIHRydWUpIDogYmFzZUtleXNJbihvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGtleXNJbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gva2V5c0luLmpzXG4vLyBtb2R1bGUgaWQgPSA0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgZztcclxuXHJcbi8vIFRoaXMgd29ya3MgaW4gbm9uLXN0cmljdCBtb2RlXHJcbmcgPSAoZnVuY3Rpb24oKSB7XHJcblx0cmV0dXJuIHRoaXM7XHJcbn0pKCk7XHJcblxyXG50cnkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgZXZhbCBpcyBhbGxvd2VkIChzZWUgQ1NQKVxyXG5cdGcgPSBnIHx8IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKSB8fCAoMSxldmFsKShcInRoaXNcIik7XHJcbn0gY2F0Y2goZSkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgdGhlIHdpbmRvdyByZWZlcmVuY2UgaXMgYXZhaWxhYmxlXHJcblx0aWYodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIilcclxuXHRcdGcgPSB3aW5kb3c7XHJcbn1cclxuXHJcbi8vIGcgY2FuIHN0aWxsIGJlIHVuZGVmaW5lZCwgYnV0IG5vdGhpbmcgdG8gZG8gYWJvdXQgaXQuLi5cclxuLy8gV2UgcmV0dXJuIHVuZGVmaW5lZCwgaW5zdGVhZCBvZiBub3RoaW5nIGhlcmUsIHNvIGl0J3NcclxuLy8gZWFzaWVyIHRvIGhhbmRsZSB0aGlzIGNhc2UuIGlmKCFnbG9iYWwpIHsgLi4ufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBnO1xyXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAod2VicGFjaykvYnVpbGRpbi9nbG9iYWwuanNcbi8vIG1vZHVsZSBpZCA9IDQ3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImltcG9ydCBUeXBlRGVmcyBmcm9tICcuL2NvbW1vbi90eXBlZGVmcyc7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbmltcG9ydCBJbWFnZVdyYXBwZXIgZnJvbSAnLi9jb21tb24vaW1hZ2Vfd3JhcHBlcic7XG5pbXBvcnQgQmFyY29kZUxvY2F0b3IgZnJvbSAnLi9sb2NhdG9yL2JhcmNvZGVfbG9jYXRvcic7XG5pbXBvcnQgQmFyY29kZURlY29kZXIgZnJvbSAnLi9kZWNvZGVyL2JhcmNvZGVfZGVjb2Rlcic7XG5pbXBvcnQgRXZlbnRzIGZyb20gJy4vY29tbW9uL2V2ZW50cyc7XG5pbXBvcnQgQ2FtZXJhQWNjZXNzIGZyb20gJy4vaW5wdXQvY2FtZXJhX2FjY2Vzcyc7XG5pbXBvcnQgSW1hZ2VEZWJ1ZyBmcm9tICcuL2NvbW1vbi9pbWFnZV9kZWJ1Zyc7XG5pbXBvcnQgUmVzdWx0Q29sbGVjdG9yIGZyb20gJy4vYW5hbHl0aWNzL3Jlc3VsdF9jb2xsZWN0b3InO1xuaW1wb3J0IENvbmZpZyBmcm9tICcuL2NvbmZpZy9jb25maWcnO1xuaW1wb3J0IElucHV0U3RyZWFtIGZyb20gJ2lucHV0X3N0cmVhbSc7XG5pbXBvcnQgRnJhbWVHcmFiYmVyIGZyb20gJ2ZyYW1lX2dyYWJiZXInO1xuaW1wb3J0IHttZXJnZX0gZnJvbSAnbG9kYXNoJztcbmNvbnN0IHZlYzIgPSB7XG4gICAgY2xvbmU6IHJlcXVpcmUoJ2dsLXZlYzIvY2xvbmUnKVxufTtcblxudmFyIF9pbnB1dFN0cmVhbSxcbiAgICBfZnJhbWVncmFiYmVyLFxuICAgIF9zdG9wcGVkLFxuICAgIF9jYW52YXNDb250YWluZXIgPSB7XG4gICAgICAgIGN0eDoge1xuICAgICAgICAgICAgaW1hZ2U6IG51bGwsXG4gICAgICAgICAgICBvdmVybGF5OiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIGRvbToge1xuICAgICAgICAgICAgaW1hZ2U6IG51bGwsXG4gICAgICAgICAgICBvdmVybGF5OiBudWxsXG4gICAgICAgIH1cbiAgICB9LFxuICAgIF9pbnB1dEltYWdlV3JhcHBlcixcbiAgICBfYm94U2l6ZSxcbiAgICBfZGVjb2RlcixcbiAgICBfd29ya2VyUG9vbCA9IFtdLFxuICAgIF9vblVJVGhyZWFkID0gdHJ1ZSxcbiAgICBfcmVzdWx0Q29sbGVjdG9yLFxuICAgIF9jb25maWcgPSB7fTtcblxuZnVuY3Rpb24gaW5pdGlhbGl6ZURhdGEoaW1hZ2VXcmFwcGVyKSB7XG4gICAgaW5pdEJ1ZmZlcnMoaW1hZ2VXcmFwcGVyKTtcbiAgICBfZGVjb2RlciA9IEJhcmNvZGVEZWNvZGVyLmNyZWF0ZShfY29uZmlnLmRlY29kZXIsIF9pbnB1dEltYWdlV3JhcHBlcik7XG59XG5cbmZ1bmN0aW9uIGluaXRJbnB1dFN0cmVhbShjYikge1xuICAgIHZhciB2aWRlbztcbiAgICBpZiAoX2NvbmZpZy5pbnB1dFN0cmVhbS50eXBlID09PSBcIlZpZGVvU3RyZWFtXCIpIHtcbiAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidmlkZW9cIik7XG4gICAgICAgIF9pbnB1dFN0cmVhbSA9IElucHV0U3RyZWFtLmNyZWF0ZVZpZGVvU3RyZWFtKHZpZGVvKTtcbiAgICB9IGVsc2UgaWYgKF9jb25maWcuaW5wdXRTdHJlYW0udHlwZSA9PT0gXCJJbWFnZVN0cmVhbVwiKSB7XG4gICAgICAgIF9pbnB1dFN0cmVhbSA9IElucHV0U3RyZWFtLmNyZWF0ZUltYWdlU3RyZWFtKCk7XG4gICAgfSBlbHNlIGlmIChfY29uZmlnLmlucHV0U3RyZWFtLnR5cGUgPT09IFwiTGl2ZVN0cmVhbVwiKSB7XG4gICAgICAgIHZhciAkdmlld3BvcnQgPSBnZXRWaWV3UG9ydCgpO1xuICAgICAgICBpZiAoJHZpZXdwb3J0KSB7XG4gICAgICAgICAgICB2aWRlbyA9ICR2aWV3cG9ydC5xdWVyeVNlbGVjdG9yKFwidmlkZW9cIik7XG4gICAgICAgICAgICBpZiAoIXZpZGVvKSB7XG4gICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidmlkZW9cIik7XG4gICAgICAgICAgICAgICAgJHZpZXdwb3J0LmFwcGVuZENoaWxkKHZpZGVvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBfaW5wdXRTdHJlYW0gPSBJbnB1dFN0cmVhbS5jcmVhdGVMaXZlU3RyZWFtKHZpZGVvKTtcbiAgICAgICAgQ2FtZXJhQWNjZXNzLnJlcXVlc3QodmlkZW8sIF9jb25maWcuaW5wdXRTdHJlYW0uY29uc3RyYWludHMpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIF9pbnB1dFN0cmVhbS50cmlnZ2VyKFwiY2FucmVjb3JkXCIpO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY2IoZXJyKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX2lucHV0U3RyZWFtLnNldEF0dHJpYnV0ZShcInByZWxvYWRcIiwgXCJhdXRvXCIpO1xuICAgIF9pbnB1dFN0cmVhbS5zZXRJbnB1dFN0cmVhbShfY29uZmlnLmlucHV0U3RyZWFtKTtcbiAgICBfaW5wdXRTdHJlYW0uYWRkRXZlbnRMaXN0ZW5lcihcImNhbnJlY29yZFwiLCBjYW5SZWNvcmQuYmluZCh1bmRlZmluZWQsIGNiKSk7XG59XG5cbmZ1bmN0aW9uIGdldFZpZXdQb3J0KCkge1xuICAgIHZhciB0YXJnZXQgPSBfY29uZmlnLmlucHV0U3RyZWFtLnRhcmdldDtcbiAgICAvLyBDaGVjayBpZiB0YXJnZXQgaXMgYWxyZWFkeSBhIERPTSBlbGVtZW50XG4gICAgaWYgKHRhcmdldCAmJiB0YXJnZXQubm9kZU5hbWUgJiYgdGFyZ2V0Lm5vZGVUeXBlID09PSAxKSB7XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXNlICcjaW50ZXJhY3RpdmUudmlld3BvcnQnIGFzIGEgZmFsbGJhY2sgc2VsZWN0b3IgKGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5KVxuICAgICAgICB2YXIgc2VsZWN0b3IgPSB0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJyA/IHRhcmdldCA6ICcjaW50ZXJhY3RpdmUudmlld3BvcnQnO1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBjYW5SZWNvcmQoY2IpIHtcbiAgICBCYXJjb2RlTG9jYXRvci5jaGVja0ltYWdlQ29uc3RyYWludHMoX2lucHV0U3RyZWFtLCBfY29uZmlnLmxvY2F0b3IpO1xuICAgIGluaXRDYW52YXMoX2NvbmZpZyk7XG4gICAgX2ZyYW1lZ3JhYmJlciA9IEZyYW1lR3JhYmJlci5jcmVhdGUoX2lucHV0U3RyZWFtLCBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZSk7XG5cbiAgICBhZGp1c3RXb3JrZXJQb29sKF9jb25maWcubnVtT2ZXb3JrZXJzLCBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKF9jb25maWcubnVtT2ZXb3JrZXJzID09PSAwKSB7XG4gICAgICAgICAgICBpbml0aWFsaXplRGF0YSgpO1xuICAgICAgICB9XG4gICAgICAgIHJlYWR5KGNiKTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gcmVhZHkoY2Ipe1xuICAgIF9pbnB1dFN0cmVhbS5wbGF5KCk7XG4gICAgY2IoKTtcbn1cblxuZnVuY3Rpb24gaW5pdENhbnZhcygpIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHZhciAkdmlld3BvcnQgPSBnZXRWaWV3UG9ydCgpO1xuICAgICAgICBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJjYW52YXMuaW1nQnVmZmVyXCIpO1xuICAgICAgICBpZiAoIV9jYW52YXNDb250YWluZXIuZG9tLmltYWdlKSB7XG4gICAgICAgICAgICBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gICAgICAgICAgICBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZS5jbGFzc05hbWUgPSBcImltZ0J1ZmZlclwiO1xuICAgICAgICAgICAgaWYgKCR2aWV3cG9ydCAmJiBfY29uZmlnLmlucHV0U3RyZWFtLnR5cGUgPT09IFwiSW1hZ2VTdHJlYW1cIikge1xuICAgICAgICAgICAgICAgICR2aWV3cG9ydC5hcHBlbmRDaGlsZChfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgX2NhbnZhc0NvbnRhaW5lci5jdHguaW1hZ2UgPSBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZS5nZXRDb250ZXh0KFwiMmRcIik7XG4gICAgICAgIF9jYW52YXNDb250YWluZXIuZG9tLmltYWdlLndpZHRoID0gX2lucHV0U3RyZWFtLmdldENhbnZhc1NpemUoKS54O1xuICAgICAgICBfY2FudmFzQ29udGFpbmVyLmRvbS5pbWFnZS5oZWlnaHQgPSBfaW5wdXRTdHJlYW0uZ2V0Q2FudmFzU2l6ZSgpLnk7XG5cbiAgICAgICAgX2NhbnZhc0NvbnRhaW5lci5kb20ub3ZlcmxheSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJjYW52YXMuZHJhd2luZ0J1ZmZlclwiKTtcbiAgICAgICAgaWYgKCFfY2FudmFzQ29udGFpbmVyLmRvbS5vdmVybGF5KSB7XG4gICAgICAgICAgICBfY2FudmFzQ29udGFpbmVyLmRvbS5vdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICAgICAgICAgIF9jYW52YXNDb250YWluZXIuZG9tLm92ZXJsYXkuY2xhc3NOYW1lID0gXCJkcmF3aW5nQnVmZmVyXCI7XG4gICAgICAgICAgICBpZiAoJHZpZXdwb3J0KSB7XG4gICAgICAgICAgICAgICAgJHZpZXdwb3J0LmFwcGVuZENoaWxkKF9jYW52YXNDb250YWluZXIuZG9tLm92ZXJsYXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGNsZWFyRml4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImJyXCIpO1xuICAgICAgICAgICAgY2xlYXJGaXguc2V0QXR0cmlidXRlKFwiY2xlYXJcIiwgXCJhbGxcIik7XG4gICAgICAgICAgICBpZiAoJHZpZXdwb3J0KSB7XG4gICAgICAgICAgICAgICAgJHZpZXdwb3J0LmFwcGVuZENoaWxkKGNsZWFyRml4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBfY2FudmFzQ29udGFpbmVyLmN0eC5vdmVybGF5ID0gX2NhbnZhc0NvbnRhaW5lci5kb20ub3ZlcmxheS5nZXRDb250ZXh0KFwiMmRcIik7XG4gICAgICAgIF9jYW52YXNDb250YWluZXIuZG9tLm92ZXJsYXkud2lkdGggPSBfaW5wdXRTdHJlYW0uZ2V0Q2FudmFzU2l6ZSgpLng7XG4gICAgICAgIF9jYW52YXNDb250YWluZXIuZG9tLm92ZXJsYXkuaGVpZ2h0ID0gX2lucHV0U3RyZWFtLmdldENhbnZhc1NpemUoKS55O1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaW5pdEJ1ZmZlcnMoaW1hZ2VXcmFwcGVyKSB7XG4gICAgaWYgKGltYWdlV3JhcHBlcikge1xuICAgICAgICBfaW5wdXRJbWFnZVdyYXBwZXIgPSBpbWFnZVdyYXBwZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX2lucHV0SW1hZ2VXcmFwcGVyID0gbmV3IEltYWdlV3JhcHBlcih7XG4gICAgICAgICAgICB4OiBfaW5wdXRTdHJlYW0uZ2V0V2lkdGgoKSxcbiAgICAgICAgICAgIHk6IF9pbnB1dFN0cmVhbS5nZXRIZWlnaHQoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoRU5WLmRldmVsb3BtZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKF9pbnB1dEltYWdlV3JhcHBlci5zaXplKTtcbiAgICB9XG4gICAgX2JveFNpemUgPSBbXG4gICAgICAgIHZlYzIuY2xvbmUoWzAsIDBdKSxcbiAgICAgICAgdmVjMi5jbG9uZShbMCwgX2lucHV0SW1hZ2VXcmFwcGVyLnNpemUueV0pLFxuICAgICAgICB2ZWMyLmNsb25lKFtfaW5wdXRJbWFnZVdyYXBwZXIuc2l6ZS54LCBfaW5wdXRJbWFnZVdyYXBwZXIuc2l6ZS55XSksXG4gICAgICAgIHZlYzIuY2xvbmUoW19pbnB1dEltYWdlV3JhcHBlci5zaXplLngsIDBdKVxuICAgIF07XG4gICAgQmFyY29kZUxvY2F0b3IuaW5pdChfaW5wdXRJbWFnZVdyYXBwZXIsIF9jb25maWcubG9jYXRvcik7XG59XG5cbmZ1bmN0aW9uIGdldEJvdW5kaW5nQm94ZXMoKSB7XG4gICAgaWYgKF9jb25maWcubG9jYXRlKSB7XG4gICAgICAgIHJldHVybiBCYXJjb2RlTG9jYXRvci5sb2NhdGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gW1tcbiAgICAgICAgICAgIHZlYzIuY2xvbmUoX2JveFNpemVbMF0pLFxuICAgICAgICAgICAgdmVjMi5jbG9uZShfYm94U2l6ZVsxXSksXG4gICAgICAgICAgICB2ZWMyLmNsb25lKF9ib3hTaXplWzJdKSxcbiAgICAgICAgICAgIHZlYzIuY2xvbmUoX2JveFNpemVbM10pXV07XG4gICAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1SZXN1bHQocmVzdWx0KSB7XG4gICAgdmFyIHRvcFJpZ2h0ID0gX2lucHV0U3RyZWFtLmdldFRvcFJpZ2h0KCksXG4gICAgICAgIHhPZmZzZXQgPSB0b3BSaWdodC54LFxuICAgICAgICB5T2Zmc2V0ID0gdG9wUmlnaHQueSxcbiAgICAgICAgaTtcblxuICAgIGlmICh4T2Zmc2V0ID09PSAwICYmIHlPZmZzZXQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQuYmFyY29kZXMpIHtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHJlc3VsdC5iYXJjb2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdHJhbnNmb3JtUmVzdWx0KHJlc3VsdC5iYXJjb2Rlc1tpXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVzdWx0LmxpbmUgJiYgcmVzdWx0LmxpbmUubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIG1vdmVMaW5lKHJlc3VsdC5saW5lKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0LmJveCkge1xuICAgICAgICBtb3ZlQm94KHJlc3VsdC5ib3gpO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQuYm94ZXMgJiYgcmVzdWx0LmJveGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHJlc3VsdC5ib3hlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbW92ZUJveChyZXN1bHQuYm94ZXNbaV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW92ZUJveChib3gpIHtcbiAgICAgICAgdmFyIGNvcm5lciA9IGJveC5sZW5ndGg7XG5cbiAgICAgICAgd2hpbGUgKGNvcm5lci0tKSB7XG4gICAgICAgICAgICBib3hbY29ybmVyXVswXSArPSB4T2Zmc2V0O1xuICAgICAgICAgICAgYm94W2Nvcm5lcl1bMV0gKz0geU9mZnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vdmVMaW5lKGxpbmUpIHtcbiAgICAgICAgbGluZVswXS54ICs9IHhPZmZzZXQ7XG4gICAgICAgIGxpbmVbMF0ueSArPSB5T2Zmc2V0O1xuICAgICAgICBsaW5lWzFdLnggKz0geE9mZnNldDtcbiAgICAgICAgbGluZVsxXS55ICs9IHlPZmZzZXQ7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBhZGRSZXN1bHQgKHJlc3VsdCwgaW1hZ2VEYXRhKSB7XG4gICAgaWYgKCFpbWFnZURhdGEgfHwgIV9yZXN1bHRDb2xsZWN0b3IpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQuYmFyY29kZXMpIHtcbiAgICAgICAgcmVzdWx0LmJhcmNvZGVzLmZpbHRlcihiYXJjb2RlID0+IGJhcmNvZGUuY29kZVJlc3VsdClcbiAgICAgICAgICAgIC5mb3JFYWNoKGJhcmNvZGUgPT4gYWRkUmVzdWx0KGJhcmNvZGUsIGltYWdlRGF0YSkpO1xuICAgIH0gZWxzZSBpZiAocmVzdWx0LmNvZGVSZXN1bHQpIHtcbiAgICAgICAgX3Jlc3VsdENvbGxlY3Rvci5hZGRSZXN1bHQoaW1hZ2VEYXRhLCBfaW5wdXRTdHJlYW0uZ2V0Q2FudmFzU2l6ZSgpLCByZXN1bHQuY29kZVJlc3VsdCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBoYXNDb2RlUmVzdWx0IChyZXN1bHQpIHtcbiAgICByZXR1cm4gcmVzdWx0ICYmIChyZXN1bHQuYmFyY29kZXMgP1xuICAgICAgcmVzdWx0LmJhcmNvZGVzLnNvbWUoYmFyY29kZSA9PiBiYXJjb2RlLmNvZGVSZXN1bHQpIDpcbiAgICAgIHJlc3VsdC5jb2RlUmVzdWx0KTtcbn1cblxuZnVuY3Rpb24gcHVibGlzaFJlc3VsdChyZXN1bHQsIGltYWdlRGF0YSkge1xuICAgIGxldCByZXN1bHRUb1B1Ymxpc2ggPSByZXN1bHQ7XG5cbiAgICBpZiAocmVzdWx0ICYmIF9vblVJVGhyZWFkKSB7XG4gICAgICAgIHRyYW5zZm9ybVJlc3VsdChyZXN1bHQpO1xuICAgICAgICBhZGRSZXN1bHQocmVzdWx0LCBpbWFnZURhdGEpO1xuICAgICAgICByZXN1bHRUb1B1Ymxpc2ggPSByZXN1bHQuYmFyY29kZXMgfHwgcmVzdWx0O1xuICAgIH1cblxuICAgIEV2ZW50cy5wdWJsaXNoKFwicHJvY2Vzc2VkXCIsIHJlc3VsdFRvUHVibGlzaCk7XG4gICAgaWYgKGhhc0NvZGVSZXN1bHQocmVzdWx0KSkge1xuICAgICAgICBFdmVudHMucHVibGlzaChcImRldGVjdGVkXCIsIHJlc3VsdFRvUHVibGlzaCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBsb2NhdGVBbmREZWNvZGUoKSB7XG4gICAgdmFyIHJlc3VsdCxcbiAgICAgICAgYm94ZXM7XG5cbiAgICBib3hlcyA9IGdldEJvdW5kaW5nQm94ZXMoKTtcbiAgICBpZiAoYm94ZXMpIHtcbiAgICAgICAgcmVzdWx0ID0gX2RlY29kZXIuZGVjb2RlRnJvbUJvdW5kaW5nQm94ZXMoYm94ZXMpO1xuICAgICAgICByZXN1bHQgPSByZXN1bHQgfHwge307XG4gICAgICAgIHJlc3VsdC5ib3hlcyA9IGJveGVzO1xuICAgICAgICBwdWJsaXNoUmVzdWx0KHJlc3VsdCwgX2lucHV0SW1hZ2VXcmFwcGVyLmRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHB1Ymxpc2hSZXN1bHQoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZSgpIHtcbiAgICB2YXIgYXZhaWxhYmxlV29ya2VyO1xuXG4gICAgaWYgKF9vblVJVGhyZWFkKSB7XG4gICAgICAgIGlmIChfd29ya2VyUG9vbC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBhdmFpbGFibGVXb3JrZXIgPSBfd29ya2VyUG9vbC5maWx0ZXIoZnVuY3Rpb24od29ya2VyVGhyZWFkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICF3b3JrZXJUaHJlYWQuYnVzeTtcbiAgICAgICAgICAgIH0pWzBdO1xuICAgICAgICAgICAgaWYgKGF2YWlsYWJsZVdvcmtlcikge1xuICAgICAgICAgICAgICAgIF9mcmFtZWdyYWJiZXIuYXR0YWNoRGF0YShhdmFpbGFibGVXb3JrZXIuaW1hZ2VEYXRhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBhbGwgd29ya2VycyBhcmUgYnVzeVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgX2ZyYW1lZ3JhYmJlci5hdHRhY2hEYXRhKF9pbnB1dEltYWdlV3JhcHBlci5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoX2ZyYW1lZ3JhYmJlci5ncmFiKCkpIHtcbiAgICAgICAgICAgIGlmIChhdmFpbGFibGVXb3JrZXIpIHtcbiAgICAgICAgICAgICAgICBhdmFpbGFibGVXb3JrZXIuYnVzeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlV29ya2VyLndvcmtlci5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgIGNtZDogJ3Byb2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICBpbWFnZURhdGE6IGF2YWlsYWJsZVdvcmtlci5pbWFnZURhdGFcbiAgICAgICAgICAgICAgICB9LCBbYXZhaWxhYmxlV29ya2VyLmltYWdlRGF0YS5idWZmZXJdKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbG9jYXRlQW5kRGVjb2RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBsb2NhdGVBbmREZWNvZGUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHN0YXJ0Q29udGludW91c1VwZGF0ZSgpIHtcbiAgICB2YXIgbmV4dCA9IG51bGwsXG4gICAgICAgIGRlbGF5ID0gMTAwMCAvIChfY29uZmlnLmZyZXF1ZW5jeSB8fCA2MCk7XG5cbiAgICBfc3RvcHBlZCA9IGZhbHNlO1xuICAgIChmdW5jdGlvbiBmcmFtZSh0aW1lc3RhbXApIHtcbiAgICAgICAgbmV4dCA9IG5leHQgfHwgdGltZXN0YW1wO1xuICAgICAgICBpZiAoIV9zdG9wcGVkKSB7XG4gICAgICAgICAgICBpZiAodGltZXN0YW1wID49IG5leHQpIHtcbiAgICAgICAgICAgICAgICBuZXh0ICs9IGRlbGF5O1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltRnJhbWUoZnJhbWUpO1xuICAgICAgICB9XG4gICAgfShwZXJmb3JtYW5jZS5ub3coKSkpO1xufVxuXG5mdW5jdGlvbiBzdGFydCgpIHtcbiAgICBpZiAoX29uVUlUaHJlYWQgJiYgX2NvbmZpZy5pbnB1dFN0cmVhbS50eXBlID09PSBcIkxpdmVTdHJlYW1cIikge1xuICAgICAgICBzdGFydENvbnRpbnVvdXNVcGRhdGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB1cGRhdGUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGluaXRXb3JrZXIoY2IpIHtcbiAgICB2YXIgYmxvYlVSTCxcbiAgICAgICAgd29ya2VyVGhyZWFkID0ge1xuICAgICAgICAgICAgd29ya2VyOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBpbWFnZURhdGE6IG5ldyBVaW50OEFycmF5KF9pbnB1dFN0cmVhbS5nZXRXaWR0aCgpICogX2lucHV0U3RyZWFtLmdldEhlaWdodCgpKSxcbiAgICAgICAgICAgIGJ1c3k6IHRydWVcbiAgICAgICAgfTtcblxuICAgIGJsb2JVUkwgPSBnZW5lcmF0ZVdvcmtlckJsb2IoKTtcbiAgICB3b3JrZXJUaHJlYWQud29ya2VyID0gbmV3IFdvcmtlcihibG9iVVJMKTtcblxuICAgIHdvcmtlclRocmVhZC53b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZSkge1xuICAgICAgICBpZiAoZS5kYXRhLmV2ZW50ID09PSAnaW5pdGlhbGl6ZWQnKSB7XG4gICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGJsb2JVUkwpO1xuICAgICAgICAgICAgd29ya2VyVGhyZWFkLmJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIHdvcmtlclRocmVhZC5pbWFnZURhdGEgPSBuZXcgVWludDhBcnJheShlLmRhdGEuaW1hZ2VEYXRhKTtcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIldvcmtlciBpbml0aWFsaXplZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjYih3b3JrZXJUaHJlYWQpO1xuICAgICAgICB9IGVsc2UgaWYgKGUuZGF0YS5ldmVudCA9PT0gJ3Byb2Nlc3NlZCcpIHtcbiAgICAgICAgICAgIHdvcmtlclRocmVhZC5pbWFnZURhdGEgPSBuZXcgVWludDhBcnJheShlLmRhdGEuaW1hZ2VEYXRhKTtcbiAgICAgICAgICAgIHdvcmtlclRocmVhZC5idXN5ID0gZmFsc2U7XG4gICAgICAgICAgICBwdWJsaXNoUmVzdWx0KGUuZGF0YS5yZXN1bHQsIHdvcmtlclRocmVhZC5pbWFnZURhdGEpO1xuICAgICAgICB9IGVsc2UgaWYgKGUuZGF0YS5ldmVudCA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiV29ya2VyIGVycm9yOiBcIiArIGUuZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB3b3JrZXJUaHJlYWQud29ya2VyLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgY21kOiAnaW5pdCcsXG4gICAgICAgIHNpemU6IHt4OiBfaW5wdXRTdHJlYW0uZ2V0V2lkdGgoKSwgeTogX2lucHV0U3RyZWFtLmdldEhlaWdodCgpfSxcbiAgICAgICAgaW1hZ2VEYXRhOiB3b3JrZXJUaHJlYWQuaW1hZ2VEYXRhLFxuICAgICAgICBjb25maWc6IGNvbmZpZ0ZvcldvcmtlcihfY29uZmlnKVxuICAgIH0sIFt3b3JrZXJUaHJlYWQuaW1hZ2VEYXRhLmJ1ZmZlcl0pO1xufVxuXG5mdW5jdGlvbiBjb25maWdGb3JXb3JrZXIoY29uZmlnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBpbnB1dFN0cmVhbToge1xuICAgICAgICAgICAgLi4uY29uZmlnLmlucHV0U3RyZWFtLFxuICAgICAgICAgICAgdGFyZ2V0OiBudWxsXG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5mdW5jdGlvbiB3b3JrZXJJbnRlcmZhY2UoZmFjdG9yeSkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVmKi9cbiAgICBpZiAoZmFjdG9yeSkge1xuICAgICAgICB2YXIgUXVhZ2dhID0gZmFjdG9yeSgpLmRlZmF1bHQ7XG4gICAgICAgIGlmICghUXVhZ2dhKSB7XG4gICAgICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHsnZXZlbnQnOiAnZXJyb3InLCBtZXNzYWdlOiAnUXVhZ2dhIGNvdWxkIG5vdCBiZSBjcmVhdGVkJ30pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBpbWFnZVdyYXBwZXI7XG5cbiAgICBzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgaWYgKGUuZGF0YS5jbWQgPT09ICdpbml0Jykge1xuICAgICAgICAgICAgdmFyIGNvbmZpZyA9IGUuZGF0YS5jb25maWc7XG4gICAgICAgICAgICBjb25maWcubnVtT2ZXb3JrZXJzID0gMDtcbiAgICAgICAgICAgIGltYWdlV3JhcHBlciA9IG5ldyBRdWFnZ2EuSW1hZ2VXcmFwcGVyKHtcbiAgICAgICAgICAgICAgICB4OiBlLmRhdGEuc2l6ZS54LFxuICAgICAgICAgICAgICAgIHk6IGUuZGF0YS5zaXplLnlcbiAgICAgICAgICAgIH0sIG5ldyBVaW50OEFycmF5KGUuZGF0YS5pbWFnZURhdGEpKTtcbiAgICAgICAgICAgIFF1YWdnYS5pbml0KGNvbmZpZywgcmVhZHksIGltYWdlV3JhcHBlcik7XG4gICAgICAgICAgICBRdWFnZ2Eub25Qcm9jZXNzZWQob25Qcm9jZXNzZWQpO1xuICAgICAgICB9IGVsc2UgaWYgKGUuZGF0YS5jbWQgPT09ICdwcm9jZXNzJykge1xuICAgICAgICAgICAgaW1hZ2VXcmFwcGVyLmRhdGEgPSBuZXcgVWludDhBcnJheShlLmRhdGEuaW1hZ2VEYXRhKTtcbiAgICAgICAgICAgIFF1YWdnYS5zdGFydCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUuZGF0YS5jbWQgPT09ICdzZXRSZWFkZXJzJykge1xuICAgICAgICAgICAgUXVhZ2dhLnNldFJlYWRlcnMoZS5kYXRhLnJlYWRlcnMpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG9uUHJvY2Vzc2VkKHJlc3VsdCkge1xuICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgICdldmVudCc6ICdwcm9jZXNzZWQnLFxuICAgICAgICAgICAgaW1hZ2VEYXRhOiBpbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgICAgIHJlc3VsdDogcmVzdWx0XG4gICAgICAgIH0sIFtpbWFnZVdyYXBwZXIuZGF0YS5idWZmZXJdKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWFkeSgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHsnZXZlbnQnOiAnaW5pdGlhbGl6ZWQnLCBpbWFnZURhdGE6IGltYWdlV3JhcHBlci5kYXRhfSwgW2ltYWdlV3JhcHBlci5kYXRhLmJ1ZmZlcl0pO1xuICAgIH1cblxuICAgIC8qIGVzbGludC1lbmFibGUgKi9cbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVXb3JrZXJCbG9iKCkge1xuICAgIHZhciBibG9iLFxuICAgICAgICBmYWN0b3J5U291cmNlO1xuXG4gICAgLyoganNoaW50IGlnbm9yZTpzdGFydCAqL1xuICAgIGlmICh0eXBlb2YgX19mYWN0b3J5U291cmNlX18gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGZhY3RvcnlTb3VyY2UgPSBfX2ZhY3RvcnlTb3VyY2VfXzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuICAgIH1cbiAgICAvKiBqc2hpbnQgaWdub3JlOmVuZCAqL1xuXG4gICAgYmxvYiA9IG5ldyBCbG9iKFsnKCcgKyB3b3JrZXJJbnRlcmZhY2UudG9TdHJpbmcoKSArICcpKCcgKyBmYWN0b3J5U291cmNlICsgJyk7J10sXG4gICAgICAgIHt0eXBlOiAndGV4dC9qYXZhc2NyaXB0J30pO1xuXG4gICAgcmV0dXJuIHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xufVxuXG5mdW5jdGlvbiBzZXRSZWFkZXJzKHJlYWRlcnMpIHtcbiAgICBpZiAoX2RlY29kZXIpIHtcbiAgICAgICAgX2RlY29kZXIuc2V0UmVhZGVycyhyZWFkZXJzKTtcbiAgICB9IGVsc2UgaWYgKF9vblVJVGhyZWFkICYmIF93b3JrZXJQb29sLmxlbmd0aCA+IDApIHtcbiAgICAgICAgX3dvcmtlclBvb2wuZm9yRWFjaChmdW5jdGlvbih3b3JrZXJUaHJlYWQpIHtcbiAgICAgICAgICAgIHdvcmtlclRocmVhZC53b3JrZXIucG9zdE1lc3NhZ2Uoe2NtZDogJ3NldFJlYWRlcnMnLCByZWFkZXJzOiByZWFkZXJzfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gYWRqdXN0V29ya2VyUG9vbChjYXBhY2l0eSwgY2IpIHtcbiAgICBjb25zdCBpbmNyZWFzZUJ5ID0gY2FwYWNpdHkgLSBfd29ya2VyUG9vbC5sZW5ndGg7XG4gICAgaWYgKGluY3JlYXNlQnkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGNiICYmIGNiKCk7XG4gICAgfVxuICAgIGlmIChpbmNyZWFzZUJ5IDwgMCkge1xuICAgICAgICBjb25zdCB3b3JrZXJzVG9UZXJtaW5hdGUgPSBfd29ya2VyUG9vbC5zbGljZShpbmNyZWFzZUJ5KTtcbiAgICAgICAgd29ya2Vyc1RvVGVybWluYXRlLmZvckVhY2goZnVuY3Rpb24od29ya2VyVGhyZWFkKSB7XG4gICAgICAgICAgICB3b3JrZXJUaHJlYWQud29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiV29ya2VyIHRlcm1pbmF0ZWQhXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgX3dvcmtlclBvb2wgPSBfd29ya2VyUG9vbC5zbGljZSgwLCBpbmNyZWFzZUJ5KTtcbiAgICAgICAgcmV0dXJuIGNiICYmIGNiKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmNyZWFzZUJ5OyBpKyspIHtcbiAgICAgICAgICAgIGluaXRXb3JrZXIod29ya2VySW5pdGlhbGl6ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gd29ya2VySW5pdGlhbGl6ZWQod29ya2VyVGhyZWFkKSB7XG4gICAgICAgICAgICBfd29ya2VyUG9vbC5wdXNoKHdvcmtlclRocmVhZCk7XG4gICAgICAgICAgICBpZiAoX3dvcmtlclBvb2wubGVuZ3RoID49IGNhcGFjaXR5KXtcbiAgICAgICAgICAgICAgICBjYiAmJiBjYigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgaW5pdDogZnVuY3Rpb24oY29uZmlnLCBjYiwgaW1hZ2VXcmFwcGVyKSB7XG4gICAgICAgIF9jb25maWcgPSBtZXJnZSh7fSwgQ29uZmlnLCBjb25maWcpO1xuICAgICAgICBpZiAoaW1hZ2VXcmFwcGVyKSB7XG4gICAgICAgICAgICBfb25VSVRocmVhZCA9IGZhbHNlO1xuICAgICAgICAgICAgaW5pdGlhbGl6ZURhdGEoaW1hZ2VXcmFwcGVyKTtcbiAgICAgICAgICAgIHJldHVybiBjYigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5pdElucHV0U3RyZWFtKGNiKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBzdGFydCgpO1xuICAgIH0sXG4gICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICAgIF9zdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgYWRqdXN0V29ya2VyUG9vbCgwKTtcbiAgICAgICAgaWYgKF9jb25maWcuaW5wdXRTdHJlYW0udHlwZSA9PT0gXCJMaXZlU3RyZWFtXCIpIHtcbiAgICAgICAgICAgIENhbWVyYUFjY2Vzcy5yZWxlYXNlKCk7XG4gICAgICAgICAgICBfaW5wdXRTdHJlYW0uY2xlYXJFdmVudEhhbmRsZXJzKCk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHBhdXNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgX3N0b3BwZWQgPSB0cnVlO1xuICAgIH0sXG4gICAgb25EZXRlY3RlZDogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgICAgRXZlbnRzLnN1YnNjcmliZShcImRldGVjdGVkXCIsIGNhbGxiYWNrKTtcbiAgICB9LFxuICAgIG9mZkRldGVjdGVkOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAgICBFdmVudHMudW5zdWJzY3JpYmUoXCJkZXRlY3RlZFwiLCBjYWxsYmFjayk7XG4gICAgfSxcbiAgICBvblByb2Nlc3NlZDogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgICAgRXZlbnRzLnN1YnNjcmliZShcInByb2Nlc3NlZFwiLCBjYWxsYmFjayk7XG4gICAgfSxcbiAgICBvZmZQcm9jZXNzZWQ6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICAgIEV2ZW50cy51bnN1YnNjcmliZShcInByb2Nlc3NlZFwiLCBjYWxsYmFjayk7XG4gICAgfSxcbiAgICBzZXRSZWFkZXJzOiBmdW5jdGlvbihyZWFkZXJzKSB7XG4gICAgICAgIHNldFJlYWRlcnMocmVhZGVycyk7XG4gICAgfSxcbiAgICByZWdpc3RlclJlc3VsdENvbGxlY3RvcjogZnVuY3Rpb24ocmVzdWx0Q29sbGVjdG9yKSB7XG4gICAgICAgIGlmIChyZXN1bHRDb2xsZWN0b3IgJiYgdHlwZW9mIHJlc3VsdENvbGxlY3Rvci5hZGRSZXN1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIF9yZXN1bHRDb2xsZWN0b3IgPSByZXN1bHRDb2xsZWN0b3I7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGNhbnZhczogX2NhbnZhc0NvbnRhaW5lcixcbiAgICBkZWNvZGVTaW5nbGU6IGZ1bmN0aW9uKGNvbmZpZywgcmVzdWx0Q2FsbGJhY2spIHtcbiAgICAgICAgY29uZmlnID0gbWVyZ2Uoe1xuICAgICAgICAgICAgaW5wdXRTdHJlYW06IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcIkltYWdlU3RyZWFtXCIsXG4gICAgICAgICAgICAgICAgc2VxdWVuY2U6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHNpemU6IDgwMCxcbiAgICAgICAgICAgICAgICBzcmM6IGNvbmZpZy5zcmNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBudW1PZldvcmtlcnM6IChFTlYuZGV2ZWxvcG1lbnQgJiYgY29uZmlnLmRlYnVnKSA/IDAgOiAxLFxuICAgICAgICAgICAgbG9jYXRvcjoge1xuICAgICAgICAgICAgICAgIGhhbGZTYW1wbGU6IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGNvbmZpZyk7XG4gICAgICAgIHRoaXMuaW5pdChjb25maWcsICgpID0+IHtcbiAgICAgICAgICAgIEV2ZW50cy5vbmNlKFwicHJvY2Vzc2VkXCIsIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgICAgICAgICByZXN1bHRDYWxsYmFjay5jYWxsKG51bGwsIHJlc3VsdCk7XG4gICAgICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgICAgIHN0YXJ0KCk7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgSW1hZ2VXcmFwcGVyOiBJbWFnZVdyYXBwZXIsXG4gICAgSW1hZ2VEZWJ1ZzogSW1hZ2VEZWJ1ZyxcbiAgICBSZXN1bHRDb2xsZWN0b3I6IFJlc3VsdENvbGxlY3RvcixcbiAgICBDYW1lcmFBY2Nlc3M6IENhbWVyYUFjY2Vzcyxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcXVhZ2dhLmpzIiwiaW1wb3J0IEltYWdlRGVidWcgZnJvbSAnLi4vY29tbW9uL2ltYWdlX2RlYnVnJztcblxuZnVuY3Rpb24gY29udGFpbnMoY29kZVJlc3VsdCwgbGlzdCkge1xuICAgIGlmIChsaXN0KSB7XG4gICAgICAgIHJldHVybiBsaXN0LnNvbWUoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhpdGVtKS5ldmVyeShmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1ba2V5XSA9PT0gY29kZVJlc3VsdFtrZXldO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHBhc3Nlc0ZpbHRlcihjb2RlUmVzdWx0LCBmaWx0ZXIpIHtcbiAgICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gZmlsdGVyKGNvZGVSZXN1bHQpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIGNyZWF0ZTogZnVuY3Rpb24oY29uZmlnKSB7XG4gICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpLFxuICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKSxcbiAgICAgICAgICAgIHJlc3VsdHMgPSBbXSxcbiAgICAgICAgICAgIGNhcGFjaXR5ID0gY29uZmlnLmNhcGFjaXR5IHx8IDIwLFxuICAgICAgICAgICAgY2FwdHVyZSA9IGNvbmZpZy5jYXB0dXJlID09PSB0cnVlO1xuXG4gICAgICAgIGZ1bmN0aW9uIG1hdGNoZXNDb25zdHJhaW50cyhjb2RlUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gY2FwYWNpdHlcbiAgICAgICAgICAgICAgICAmJiBjb2RlUmVzdWx0XG4gICAgICAgICAgICAgICAgJiYgIWNvbnRhaW5zKGNvZGVSZXN1bHQsIGNvbmZpZy5ibGFja2xpc3QpXG4gICAgICAgICAgICAgICAgJiYgcGFzc2VzRmlsdGVyKGNvZGVSZXN1bHQsIGNvbmZpZy5maWx0ZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFkZFJlc3VsdDogZnVuY3Rpb24oZGF0YSwgaW1hZ2VTaXplLCBjb2RlUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuXG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZXNDb25zdHJhaW50cyhjb2RlUmVzdWx0KSkge1xuICAgICAgICAgICAgICAgICAgICBjYXBhY2l0eS0tO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQuY29kZVJlc3VsdCA9IGNvZGVSZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYXB0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZVNpemUueDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZVNpemUueTtcbiAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlRGVidWcuZHJhd0ltYWdlKGRhdGEsIGltYWdlU2l6ZSwgY3R4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mcmFtZSA9IGNhbnZhcy50b0RhdGFVUkwoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0UmVzdWx0czogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hbmFseXRpY3MvcmVzdWx0X2NvbGxlY3Rvci5qcyIsImNvbnN0IHZlYzIgPSB7XG4gICAgY2xvbmU6IHJlcXVpcmUoJ2dsLXZlYzIvY2xvbmUnKSxcbiAgICBkb3Q6IHJlcXVpcmUoJ2dsLXZlYzIvZG90Jylcbn1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2x1c3RlciBmb3IgZ3JvdXBpbmcgc2ltaWxhciBvcmllbnRhdGlvbnMgb2YgZGF0YXBvaW50c1xuICAgICAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAgIGNyZWF0ZTogZnVuY3Rpb24ocG9pbnQsIHRocmVzaG9sZCkge1xuICAgICAgICB2YXIgcG9pbnRzID0gW10sXG4gICAgICAgICAgICBjZW50ZXIgPSB7XG4gICAgICAgICAgICAgICAgcmFkOiAwLFxuICAgICAgICAgICAgICAgIHZlYzogdmVjMi5jbG9uZShbMCwgMF0pXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcG9pbnRNYXAgPSB7fTtcblxuICAgICAgICBmdW5jdGlvbiBpbml0KCkge1xuICAgICAgICAgICAgYWRkKHBvaW50KTtcbiAgICAgICAgICAgIHVwZGF0ZUNlbnRlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gYWRkKHBvaW50VG9BZGQpIHtcbiAgICAgICAgICAgIHBvaW50TWFwW3BvaW50VG9BZGQuaWRdID0gcG9pbnRUb0FkZDtcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKHBvaW50VG9BZGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlQ2VudGVyKCkge1xuICAgICAgICAgICAgdmFyIGksIHN1bSA9IDA7XG4gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHN1bSArPSBwb2ludHNbaV0ucmFkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2VudGVyLnJhZCA9IHN1bSAvIHBvaW50cy5sZW5ndGg7XG4gICAgICAgICAgICBjZW50ZXIudmVjID0gdmVjMi5jbG9uZShbTWF0aC5jb3MoY2VudGVyLnJhZCksIE1hdGguc2luKGNlbnRlci5yYWQpXSk7XG4gICAgICAgIH1cblxuICAgICAgICBpbml0KCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFkZDogZnVuY3Rpb24ocG9pbnRUb0FkZCkge1xuICAgICAgICAgICAgICAgIGlmICghcG9pbnRNYXBbcG9pbnRUb0FkZC5pZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkKHBvaW50VG9BZGQpO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDZW50ZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZml0czogZnVuY3Rpb24ob3RoZXJQb2ludCkge1xuICAgICAgICAgICAgICAgIC8vIGNoZWNrIGNvc2luZSBzaW1pbGFyaXR5IHRvIGNlbnRlci1hbmdsZVxuICAgICAgICAgICAgICAgIHZhciBzaW1pbGFyaXR5ID0gTWF0aC5hYnModmVjMi5kb3Qob3RoZXJQb2ludC5wb2ludC52ZWMsIGNlbnRlci52ZWMpKTtcbiAgICAgICAgICAgICAgICBpZiAoc2ltaWxhcml0eSA+IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFBvaW50czogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDZW50ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSxcbiAgICBjcmVhdGVQb2ludDogZnVuY3Rpb24obmV3UG9pbnQsIGlkLCBwcm9wZXJ0eSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmFkOiBuZXdQb2ludFtwcm9wZXJ0eV0sXG4gICAgICAgICAgICBwb2ludDogbmV3UG9pbnQsXG4gICAgICAgICAgICBpZDogaWRcbiAgICAgICAgfTtcbiAgICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9jbHVzdGVyLmpzIiwiZXhwb3J0IGRlZmF1bHQgKGZ1bmN0aW9uKCkge1xuICAgIHZhciBldmVudHMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGdldEV2ZW50KGV2ZW50TmFtZSkge1xuICAgICAgICBpZiAoIWV2ZW50c1tldmVudE5hbWVdKSB7XG4gICAgICAgICAgICBldmVudHNbZXZlbnROYW1lXSA9IHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyczogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV2ZW50c1tldmVudE5hbWVdO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsZWFyRXZlbnRzKCl7XG4gICAgICAgIGV2ZW50cyA9IHt9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHB1Ymxpc2hTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uLCBkYXRhKSB7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb24uYXN5bmMpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmNhbGxiYWNrKGRhdGEpO1xuICAgICAgICAgICAgfSwgNCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24uY2FsbGJhY2soZGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdWJzY3JpYmUoZXZlbnQsIGNhbGxiYWNrLCBhc3luYykge1xuICAgICAgICB2YXIgc3Vic2NyaXB0aW9uO1xuXG4gICAgICAgIGlmICggdHlwZW9mIGNhbGxiYWNrID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjazogY2FsbGJhY2ssXG4gICAgICAgICAgICAgICAgYXN5bmM6IGFzeW5jXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uID0gY2FsbGJhY2s7XG4gICAgICAgICAgICBpZiAoIXN1YnNjcmlwdGlvbi5jYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHRocm93IFwiQ2FsbGJhY2sgd2FzIG5vdCBzcGVjaWZpZWQgb24gb3B0aW9uc1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZ2V0RXZlbnQoZXZlbnQpLnN1YnNjcmliZXJzLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBzdWJzY3JpYmU6IGZ1bmN0aW9uKGV2ZW50LCBjYWxsYmFjaywgYXN5bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmUoZXZlbnQsIGNhbGxiYWNrLCBhc3luYyk7XG4gICAgICAgIH0sXG4gICAgICAgIHB1Ymxpc2g6IGZ1bmN0aW9uKGV2ZW50TmFtZSwgZGF0YSkge1xuICAgICAgICAgICAgdmFyIGV2ZW50ID0gZ2V0RXZlbnQoZXZlbnROYW1lKSxcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVycyA9IGV2ZW50LnN1YnNjcmliZXJzO1xuXG4gICAgICAgICAgICAvLyBQdWJsaXNoIG9uZS10aW1lIHN1YnNjcmlwdGlvbnNcbiAgICAgICAgICAgIHN1YnNjcmliZXJzLmZpbHRlcihmdW5jdGlvbihzdWJzY3JpYmVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhc3Vic2NyaWJlci5vbmNlO1xuICAgICAgICAgICAgfSkuZm9yRWFjaCgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIHB1Ymxpc2hTdWJzY3JpcHRpb24oc3Vic2NyaWJlciwgZGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZW0gZnJvbSB0aGUgc3Vic2NyaWJlclxuICAgICAgICAgICAgZXZlbnQuc3Vic2NyaWJlcnMgPSBzdWJzY3JpYmVycy5maWx0ZXIoZnVuY3Rpb24oc3Vic2NyaWJlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiAhc3Vic2NyaWJlci5vbmNlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIHB1Ymxpc2ggdGhlIHJlc3RcbiAgICAgICAgICAgIGV2ZW50LnN1YnNjcmliZXJzLmZvckVhY2goKHN1YnNjcmliZXIpID0+IHtcbiAgICAgICAgICAgICAgICBwdWJsaXNoU3Vic2NyaXB0aW9uKHN1YnNjcmliZXIsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uY2U6IGZ1bmN0aW9uKGV2ZW50LCBjYWxsYmFjaywgYXN5bmMpIHtcbiAgICAgICAgICAgIHN1YnNjcmliZShldmVudCwge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrOiBjYWxsYmFjayxcbiAgICAgICAgICAgICAgICBhc3luYzogYXN5bmMsXG4gICAgICAgICAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHVuc3Vic2NyaWJlOiBmdW5jdGlvbihldmVudE5hbWUsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICB2YXIgZXZlbnQ7XG5cbiAgICAgICAgICAgIGlmIChldmVudE5hbWUpIHtcbiAgICAgICAgICAgICAgICBldmVudCA9IGdldEV2ZW50KGV2ZW50TmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50ICYmIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN1YnNjcmliZXJzID0gZXZlbnQuc3Vic2NyaWJlcnMuZmlsdGVyKGZ1bmN0aW9uKHN1YnNjcmliZXIpe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIuY2FsbGJhY2sgIT09IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdWJzY3JpYmVycyA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2xlYXJFdmVudHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG59KSgpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9ldmVudHMuanMiLCJcbmV4cG9ydCBmdW5jdGlvbiBlbnVtZXJhdGVEZXZpY2VzKCkge1xuICAgIGlmIChuYXZpZ2F0b3IubWVkaWFEZXZpY2VzXG4gICAgICAgICAgICAmJiB0eXBlb2YgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignZW51bWVyYXRlRGV2aWNlcyBpcyBub3QgZGVmaW5lZCcpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyTWVkaWEoY29uc3RyYWludHMpIHtcbiAgICBpZiAobmF2aWdhdG9yLm1lZGlhRGV2aWNlc1xuICAgICAgICAgICAgJiYgdHlwZW9mIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzXG4gICAgICAgICAgICAuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignZ2V0VXNlck1lZGlhIGlzIG5vdCBkZWZpbmVkJykpO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi9tZWRpYURldmljZXMuanMiLCIvKipcbiAqIENvbnN0cnVjdCByZXByZXNlbnRpbmcgYSBwYXJ0IG9mIGFub3RoZXIge0ltYWdlV3JhcHBlcn0uIFNoYXJlcyBkYXRhXG4gKiBiZXR3ZWVuIHRoZSBwYXJlbnQgYW5kIHRoZSBjaGlsZC5cbiAqIEBwYXJhbSBmcm9tIHtJbWFnZVJlZn0gVGhlIHBvc2l0aW9uIHdoZXJlIHRvIHN0YXJ0IHRoZSB7U3ViSW1hZ2V9IGZyb20uICh0b3AtbGVmdCBjb3JuZXIpXG4gKiBAcGFyYW0gc2l6ZSB7SW1hZ2VSZWZ9IFRoZSBzaXplIG9mIHRoZSByZXN1bHRpbmcgaW1hZ2VcbiAqIEBwYXJhbSBJIHtJbWFnZVdyYXBwZXJ9IFRoZSB7SW1hZ2VXcmFwcGVyfSB0byBzaGFyZSBmcm9tXG4gKiBAcmV0dXJucyB7U3ViSW1hZ2V9IEEgc2hhcmVkIHBhcnQgb2YgdGhlIG9yaWdpbmFsIGltYWdlXG4gKi9cbmZ1bmN0aW9uIFN1YkltYWdlKGZyb20sIHNpemUsIEkpIHtcbiAgICBpZiAoIUkpIHtcbiAgICAgICAgSSA9IHtcbiAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICBzaXplOiBzaXplXG4gICAgICAgIH07XG4gICAgfVxuICAgIHRoaXMuZGF0YSA9IEkuZGF0YTtcbiAgICB0aGlzLm9yaWdpbmFsU2l6ZSA9IEkuc2l6ZTtcbiAgICB0aGlzLkkgPSBJO1xuXG4gICAgdGhpcy5mcm9tID0gZnJvbTtcbiAgICB0aGlzLnNpemUgPSBzaXplO1xufVxuXG4vKipcbiAqIERpc3BsYXlzIHRoZSB7U3ViSW1hZ2V9IGluIGEgZ2l2ZW4gY2FudmFzXG4gKiBAcGFyYW0gY2FudmFzIHtDYW52YXN9IFRoZSBjYW52YXMgZWxlbWVudCB0byB3cml0ZSB0b1xuICogQHBhcmFtIHNjYWxlIHtOdW1iZXJ9IFNjYWxlIHdoaWNoIGlzIGFwcGxpZWQgdG8gZWFjaCBwaXhlbC12YWx1ZVxuICovXG5TdWJJbWFnZS5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uKGNhbnZhcywgc2NhbGUpIHtcbiAgICB2YXIgY3R4LFxuICAgICAgICBmcmFtZSxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY3VycmVudCxcbiAgICAgICAgeSxcbiAgICAgICAgeCxcbiAgICAgICAgcGl4ZWw7XG5cbiAgICBpZiAoIXNjYWxlKSB7XG4gICAgICAgIHNjYWxlID0gMS4wO1xuICAgIH1cbiAgICBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjYW52YXMud2lkdGggPSB0aGlzLnNpemUueDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy5zaXplLnk7XG4gICAgZnJhbWUgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgZGF0YSA9IGZyYW1lLmRhdGE7XG4gICAgY3VycmVudCA9IDA7XG4gICAgZm9yICh5ID0gMDsgeSA8IHRoaXMuc2l6ZS55OyB5KyspIHtcbiAgICAgICAgZm9yICh4ID0gMDsgeCA8IHRoaXMuc2l6ZS54OyB4KyspIHtcbiAgICAgICAgICAgIHBpeGVsID0geSAqIHRoaXMuc2l6ZS54ICsgeDtcbiAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmdldCh4LCB5KSAqIHNjYWxlO1xuICAgICAgICAgICAgZGF0YVtwaXhlbCAqIDQgKyAwXSA9IGN1cnJlbnQ7XG4gICAgICAgICAgICBkYXRhW3BpeGVsICogNCArIDFdID0gY3VycmVudDtcbiAgICAgICAgICAgIGRhdGFbcGl4ZWwgKiA0ICsgMl0gPSBjdXJyZW50O1xuICAgICAgICAgICAgZGF0YVtwaXhlbCAqIDQgKyAzXSA9IDI1NTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmcmFtZS5kYXRhID0gZGF0YTtcbiAgICBjdHgucHV0SW1hZ2VEYXRhKGZyYW1lLCAwLCAwKTtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIGEgZ2l2ZW4gcGl4ZWwgcG9zaXRpb24gZnJvbSB0aGUge1N1YkltYWdlfVxuICogQHBhcmFtIHgge051bWJlcn0gVGhlIHgtcG9zaXRpb25cbiAqIEBwYXJhbSB5IHtOdW1iZXJ9IFRoZSB5LXBvc2l0aW9uXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JheXNjYWxlIHZhbHVlIGF0IHRoZSBwaXhlbC1wb3NpdGlvblxuICovXG5TdWJJbWFnZS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oeCwgeSkge1xuICAgIHJldHVybiB0aGlzLmRhdGFbKHRoaXMuZnJvbS55ICsgeSkgKiB0aGlzLm9yaWdpbmFsU2l6ZS54ICsgdGhpcy5mcm9tLnggKyB4XTtcbn07XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgdW5kZXJseWluZyBkYXRhIGZyb20gYSBnaXZlbiB7SW1hZ2VXcmFwcGVyfVxuICogQHBhcmFtIGltYWdlIHtJbWFnZVdyYXBwZXJ9IFRoZSB1cGRhdGVkIGltYWdlXG4gKi9cblN1YkltYWdlLnByb3RvdHlwZS51cGRhdGVEYXRhID0gZnVuY3Rpb24oaW1hZ2UpIHtcbiAgICB0aGlzLm9yaWdpbmFsU2l6ZSA9IGltYWdlLnNpemU7XG4gICAgdGhpcy5kYXRhID0gaW1hZ2UuZGF0YTtcbn07XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHNoYXJlZCBhcmVhXG4gKiBAcGFyYW0gZnJvbSB7eCx5fSBUaGUgbmV3IGxvY2F0aW9uXG4gKiBAcmV0dXJucyB7U3ViSW1hZ2V9IHJldHVybnMge3RoaXN9IGZvciBwb3NzaWJsZSBjaGFpbmluZ1xuICovXG5TdWJJbWFnZS5wcm90b3R5cGUudXBkYXRlRnJvbSA9IGZ1bmN0aW9uKGZyb20pIHtcbiAgICB0aGlzLmZyb20gPSBmcm9tO1xuICAgIHJldHVybiB0aGlzO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgKFN1YkltYWdlKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9jb21tb24vc3ViSW1hZ2UuanMiLCIvKlxuICogdHlwZWRlZnMuanNcbiAqIE5vcm1hbGl6ZXMgYnJvd3Nlci1zcGVjaWZpYyBwcmVmaXhlc1xuICovXG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbUZyYW1lID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIHdpbmRvdy5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8XG4gICAgICAgICAgICB3aW5kb3cubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uICgvKiBmdW5jdGlvbiBGcmFtZVJlcXVlc3RDYWxsYmFjayAqLyBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNhbGxiYWNrLCAxMDAwIC8gNjApO1xuICAgICAgICAgICAgfTtcbiAgICB9KSgpO1xufVxuTWF0aC5pbXVsID0gTWF0aC5pbXVsIHx8IGZ1bmN0aW9uKGEsIGIpIHtcbiAgICB2YXIgYWggPSAoYSA+Pj4gMTYpICYgMHhmZmZmLFxuICAgICAgICBhbCA9IGEgJiAweGZmZmYsXG4gICAgICAgIGJoID0gKGIgPj4+IDE2KSAmIDB4ZmZmZixcbiAgICAgICAgYmwgPSBiICYgMHhmZmZmO1xuICAgIC8vIHRoZSBzaGlmdCBieSAwIGZpeGVzIHRoZSBzaWduIG9uIHRoZSBoaWdoIHBhcnRcbiAgICAvLyB0aGUgZmluYWwgfDAgY29udmVydHMgdGhlIHVuc2lnbmVkIHZhbHVlIGludG8gYSBzaWduZWQgdmFsdWVcbiAgICByZXR1cm4gKChhbCAqIGJsKSArICgoKGFoICogYmwgKyBhbCAqIGJoKSA8PCAxNikgPj4+IDApIHwgMCk7XG59O1xuXG5pZiAodHlwZW9mIE9iamVjdC5hc3NpZ24gIT09ICdmdW5jdGlvbicpIHtcbiAgICBPYmplY3QuYXNzaWduID0gZnVuY3Rpb24odGFyZ2V0KSB7IC8vIC5sZW5ndGggb2YgZnVuY3Rpb24gaXMgMlxuICAgICAgICAndXNlIHN0cmljdCc7XG4gICAgICAgIGlmICh0YXJnZXQgPT09IG51bGwpIHsgLy8gVHlwZUVycm9yIGlmIHVuZGVmaW5lZCBvciBudWxsXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCB1bmRlZmluZWQgb3IgbnVsbCB0byBvYmplY3QnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB0byA9IE9iamVjdCh0YXJnZXQpO1xuXG4gICAgICAgIGZvciAodmFyIGluZGV4ID0gMTsgaW5kZXggPCBhcmd1bWVudHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICB2YXIgbmV4dFNvdXJjZSA9IGFyZ3VtZW50c1tpbmRleF07XG5cbiAgICAgICAgICAgIGlmIChuZXh0U291cmNlICE9PSBudWxsKSB7IC8vIFNraXAgb3ZlciBpZiB1bmRlZmluZWQgb3IgbnVsbFxuICAgICAgICAgICAgICAgIGZvciAodmFyIG5leHRLZXkgaW4gbmV4dFNvdXJjZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBBdm9pZCBidWdzIHdoZW4gaGFzT3duUHJvcGVydHkgaXMgc2hhZG93ZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuZXh0U291cmNlLCBuZXh0S2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9bbmV4dEtleV0gPSBuZXh0U291cmNlW25leHRLZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0bztcbiAgICB9O1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbW1vbi90eXBlZGVmcy5qcyIsIm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlucHV0U3RyZWFtOiB7XG4gICAgICAgIG5hbWU6IFwiTGl2ZVwiLFxuICAgICAgICB0eXBlOiBcIkxpdmVTdHJlYW1cIixcbiAgICAgICAgY29uc3RyYWludHM6IHtcbiAgICAgICAgICAgIHdpZHRoOiA2NDAsXG4gICAgICAgICAgICBoZWlnaHQ6IDQ4MCxcbiAgICAgICAgICAgIC8vIGFzcGVjdFJhdGlvOiA2NDAvNDgwLCAvLyBvcHRpb25hbFxuICAgICAgICAgICAgZmFjaW5nTW9kZTogXCJlbnZpcm9ubWVudFwiLCAvLyBvciB1c2VyXG4gICAgICAgICAgICAvLyBkZXZpY2VJZDogXCIzODc0NTk4MzQ1NzM4NzU5ODM3NTk4Mzc1OTgzNFwiXG4gICAgICAgIH0sXG4gICAgICAgIGFyZWE6IHtcbiAgICAgICAgICAgIHRvcDogXCIwJVwiLFxuICAgICAgICAgICAgcmlnaHQ6IFwiMCVcIixcbiAgICAgICAgICAgIGxlZnQ6IFwiMCVcIixcbiAgICAgICAgICAgIGJvdHRvbTogXCIwJVwiXG4gICAgICAgIH0sXG4gICAgICAgIHNpbmdsZUNoYW5uZWw6IGZhbHNlIC8vIHRydWU6IG9ubHkgdGhlIHJlZCBjb2xvci1jaGFubmVsIGlzIHJlYWRcbiAgICB9LFxuICAgIGxvY2F0ZTogdHJ1ZSxcbiAgICBudW1PZldvcmtlcnM6IDAsXG4gICAgZGVjb2Rlcjoge1xuICAgICAgICByZWFkZXJzOiBbXG4gICAgICAgICAgICAnY29kZV8xMjhfcmVhZGVyJ1xuICAgICAgICBdLFxuICAgICAgICBkZWJ1Zzoge1xuICAgICAgICAgICAgZHJhd0JvdW5kaW5nQm94OiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dGcmVxdWVuY3k6IGZhbHNlLFxuICAgICAgICAgICAgZHJhd1NjYW5saW5lOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dQYXR0ZXJuOiBmYWxzZVxuICAgICAgICB9XG4gICAgfSxcbiAgICBsb2NhdG9yOiB7XG4gICAgICAgIGhhbGZTYW1wbGU6IHRydWUsXG4gICAgICAgIHBhdGNoU2l6ZTogXCJtZWRpdW1cIiwgLy8geC1zbWFsbCwgc21hbGwsIG1lZGl1bSwgbGFyZ2UsIHgtbGFyZ2VcbiAgICAgICAgZGVidWc6IHtcbiAgICAgICAgICAgIHNob3dDYW52YXM6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd1BhdGNoZXM6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd0ZvdW5kUGF0Y2hlczogZmFsc2UsXG4gICAgICAgICAgICBzaG93U2tlbGV0b246IGZhbHNlLFxuICAgICAgICAgICAgc2hvd0xhYmVsczogZmFsc2UsXG4gICAgICAgICAgICBzaG93UGF0Y2hMYWJlbHM6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd1JlbWFpbmluZ1BhdGNoTGFiZWxzOiBmYWxzZSxcbiAgICAgICAgICAgIGJveEZyb21QYXRjaGVzOiB7XG4gICAgICAgICAgICAgICAgc2hvd1RyYW5zZm9ybWVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzaG93VHJhbnNmb3JtZWRCb3g6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHNob3dCQjogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvY29uZmlnL2NvbmZpZy5kZXYuanMiLCJsZXQgY29uZmlnO1xuXG5pZiAoRU5WLmRldmVsb3BtZW50KXtcbiAgICBjb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZy5kZXYuanMnKTtcbn0gZWxzZSBpZiAoRU5WLm5vZGUpIHtcbiAgICBjb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZy5ub2RlLmpzJyk7XG59IGVsc2Uge1xuICAgIGNvbmZpZyA9IHJlcXVpcmUoJy4vY29uZmlnLnByb2QuanMnKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29uZmlnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbmZpZy9jb25maWcuanMiLCJpbXBvcnQgQnJlc2VuaGFtIGZyb20gJy4vYnJlc2VuaGFtJztcbmltcG9ydCBJbWFnZURlYnVnIGZyb20gJy4uL2NvbW1vbi9pbWFnZV9kZWJ1Zyc7XG5pbXBvcnQgQ29kZTEyOFJlYWRlciBmcm9tICcuLi9yZWFkZXIvY29kZV8xMjhfcmVhZGVyJztcbmltcG9ydCBFQU5SZWFkZXIgZnJvbSAnLi4vcmVhZGVyL2Vhbl9yZWFkZXInO1xuaW1wb3J0IENvZGUzOVJlYWRlciBmcm9tICcuLi9yZWFkZXIvY29kZV8zOV9yZWFkZXInO1xuaW1wb3J0IENvZGUzOVZJTlJlYWRlciBmcm9tICcuLi9yZWFkZXIvY29kZV8zOV92aW5fcmVhZGVyJztcbmltcG9ydCBDb2RhYmFyUmVhZGVyIGZyb20gJy4uL3JlYWRlci9jb2RhYmFyX3JlYWRlcic7XG5pbXBvcnQgVVBDUmVhZGVyIGZyb20gJy4uL3JlYWRlci91cGNfcmVhZGVyJztcbmltcG9ydCBFQU44UmVhZGVyIGZyb20gJy4uL3JlYWRlci9lYW5fOF9yZWFkZXInO1xuaW1wb3J0IEVBTjJSZWFkZXIgZnJvbSAnLi4vcmVhZGVyL2Vhbl8yX3JlYWRlcic7XG5pbXBvcnQgRUFONVJlYWRlciBmcm9tICcuLi9yZWFkZXIvZWFuXzVfcmVhZGVyJztcbmltcG9ydCBVUENFUmVhZGVyIGZyb20gJy4uL3JlYWRlci91cGNfZV9yZWFkZXInO1xuaW1wb3J0IEkyb2Y1UmVhZGVyIGZyb20gJy4uL3JlYWRlci9pMm9mNV9yZWFkZXInO1xuaW1wb3J0IFR3b09mRml2ZVJlYWRlciBmcm9tICcuLi9yZWFkZXIvMm9mNV9yZWFkZXInO1xuaW1wb3J0IENvZGU5M1JlYWRlciBmcm9tICcuLi9yZWFkZXIvY29kZV85M19yZWFkZXInO1xuXG5jb25zdCBSRUFERVJTID0ge1xuICAgIGNvZGVfMTI4X3JlYWRlcjogQ29kZTEyOFJlYWRlcixcbiAgICBlYW5fcmVhZGVyOiBFQU5SZWFkZXIsXG4gICAgZWFuXzVfcmVhZGVyOiBFQU41UmVhZGVyLFxuICAgIGVhbl8yX3JlYWRlcjogRUFOMlJlYWRlcixcbiAgICBlYW5fOF9yZWFkZXI6IEVBTjhSZWFkZXIsXG4gICAgY29kZV8zOV9yZWFkZXI6IENvZGUzOVJlYWRlcixcbiAgICBjb2RlXzM5X3Zpbl9yZWFkZXI6IENvZGUzOVZJTlJlYWRlcixcbiAgICBjb2RhYmFyX3JlYWRlcjogQ29kYWJhclJlYWRlcixcbiAgICB1cGNfcmVhZGVyOiBVUENSZWFkZXIsXG4gICAgdXBjX2VfcmVhZGVyOiBVUENFUmVhZGVyLFxuICAgIGkyb2Y1X3JlYWRlcjogSTJvZjVSZWFkZXIsXG4gICAgJzJvZjVfcmVhZGVyJzogVHdvT2ZGaXZlUmVhZGVyLFxuICAgIGNvZGVfOTNfcmVhZGVyOiBDb2RlOTNSZWFkZXJcbn07XG5leHBvcnQgZGVmYXVsdCB7XG4gICAgY3JlYXRlOiBmdW5jdGlvbihjb25maWcsIGlucHV0SW1hZ2VXcmFwcGVyKSB7XG4gICAgICAgIHZhciBfY2FudmFzID0ge1xuICAgICAgICAgICAgICAgIGN0eDoge1xuICAgICAgICAgICAgICAgICAgICBmcmVxdWVuY3k6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJsYXk6IG51bGxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRvbToge1xuICAgICAgICAgICAgICAgICAgICBmcmVxdWVuY3k6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG92ZXJsYXk6IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2JhcmNvZGVSZWFkZXJzID0gW107XG5cbiAgICAgICAgaW5pdENhbnZhcygpO1xuICAgICAgICBpbml0UmVhZGVycygpO1xuICAgICAgICBpbml0Q29uZmlnKCk7XG5cbiAgICAgICAgZnVuY3Rpb24gaW5pdENhbnZhcygpIHtcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHZhciAkZGVidWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2RlYnVnLmRldGVjdGlvblwiKTtcbiAgICAgICAgICAgICAgICBfY2FudmFzLmRvbS5mcmVxdWVuY3kgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiY2FudmFzLmZyZXF1ZW5jeVwiKTtcbiAgICAgICAgICAgICAgICBpZiAoIV9jYW52YXMuZG9tLmZyZXF1ZW5jeSkge1xuICAgICAgICAgICAgICAgICAgICBfY2FudmFzLmRvbS5mcmVxdWVuY3kgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgICAgICAgICAgICAgICAgICBfY2FudmFzLmRvbS5mcmVxdWVuY3kuY2xhc3NOYW1lID0gXCJmcmVxdWVuY3lcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRkZWJ1Zykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGRlYnVnLmFwcGVuZENoaWxkKF9jYW52YXMuZG9tLmZyZXF1ZW5jeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX2NhbnZhcy5jdHguZnJlcXVlbmN5ID0gX2NhbnZhcy5kb20uZnJlcXVlbmN5LmdldENvbnRleHQoXCIyZFwiKTtcblxuICAgICAgICAgICAgICAgIF9jYW52YXMuZG9tLnBhdHRlcm4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiY2FudmFzLnBhdHRlcm5CdWZmZXJcIik7XG4gICAgICAgICAgICAgICAgaWYgKCFfY2FudmFzLmRvbS5wYXR0ZXJuKSB7XG4gICAgICAgICAgICAgICAgICAgIF9jYW52YXMuZG9tLnBhdHRlcm4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgICAgICAgICAgICAgICAgICBfY2FudmFzLmRvbS5wYXR0ZXJuLmNsYXNzTmFtZSA9IFwicGF0dGVybkJ1ZmZlclwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoJGRlYnVnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZGVidWcuYXBwZW5kQ2hpbGQoX2NhbnZhcy5kb20ucGF0dGVybik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX2NhbnZhcy5jdHgucGF0dGVybiA9IF9jYW52YXMuZG9tLnBhdHRlcm4uZ2V0Q29udGV4dChcIjJkXCIpO1xuXG4gICAgICAgICAgICAgICAgX2NhbnZhcy5kb20ub3ZlcmxheSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJjYW52YXMuZHJhd2luZ0J1ZmZlclwiKTtcbiAgICAgICAgICAgICAgICBpZiAoX2NhbnZhcy5kb20ub3ZlcmxheSkge1xuICAgICAgICAgICAgICAgICAgICBfY2FudmFzLmN0eC5vdmVybGF5ID0gX2NhbnZhcy5kb20ub3ZlcmxheS5nZXRDb250ZXh0KFwiMmRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gaW5pdFJlYWRlcnMoKSB7XG4gICAgICAgICAgICBjb25maWcucmVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHJlYWRlckNvbmZpZykge1xuICAgICAgICAgICAgICAgIHZhciByZWFkZXIsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSB7fSxcbiAgICAgICAgICAgICAgICAgICAgc3VwcGxlbWVudHMgPSBbXTtcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVhZGVyQ29uZmlnID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICByZWFkZXIgPSByZWFkZXJDb25maWcuZm9ybWF0O1xuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uID0gcmVhZGVyQ29uZmlnLmNvbmZpZztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWFkZXJDb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlYWRlciA9IHJlYWRlckNvbmZpZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkJlZm9yZSByZWdpc3RlcmluZyByZWFkZXI6IFwiLCByZWFkZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5zdXBwbGVtZW50cykge1xuICAgICAgICAgICAgICAgICAgICBzdXBwbGVtZW50cyA9IGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdXBwbGVtZW50cy5tYXAoKHN1cHBsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJFQURFUlNbc3VwcGxlbWVudF0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfYmFyY29kZVJlYWRlcnMucHVzaChuZXcgUkVBREVSU1tyZWFkZXJdKGNvbmZpZ3VyYXRpb24sIHN1cHBsZW1lbnRzKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlJlZ2lzdGVyZWQgUmVhZGVyczogXCIgKyBfYmFyY29kZVJlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgocmVhZGVyKSA9PiBKU09OLnN0cmluZ2lmeSh7Zm9ybWF0OiByZWFkZXIuRk9STUFULCBjb25maWc6IHJlYWRlci5jb25maWd9KSlcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJywgJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gaW5pdENvbmZpZygpIHtcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHZhciBpLFxuICAgICAgICAgICAgICAgICAgICB2aXMgPSBbe1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZTogX2NhbnZhcy5kb20uZnJlcXVlbmN5LFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcDogY29uZmlnLmRlYnVnLnNob3dGcmVxdWVuY3lcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZTogX2NhbnZhcy5kb20ucGF0dGVybixcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3A6IGNvbmZpZy5kZWJ1Zy5zaG93UGF0dGVyblxuICAgICAgICAgICAgICAgICAgICB9XTtcblxuICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2aXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZpc1tpXS5wcm9wID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNbaV0ubm9kZS5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzW2ldLm5vZGUuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGV4dGVuZCB0aGUgbGluZSBvbiBib3RoIGVuZHNcbiAgICAgICAgICogQHBhcmFtIHtBcnJheX0gbGluZVxuICAgICAgICAgKiBAcGFyYW0ge051bWJlcn0gYW5nbGVcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGdldEV4dGVuZGVkTGluZShsaW5lLCBhbmdsZSwgZXh0KSB7XG4gICAgICAgICAgICBmdW5jdGlvbiBleHRlbmRMaW5lKGFtb3VudCkge1xuICAgICAgICAgICAgICAgIHZhciBleHRlbnNpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgIHk6IGFtb3VudCAqIE1hdGguc2luKGFuZ2xlKSxcbiAgICAgICAgICAgICAgICAgICAgeDogYW1vdW50ICogTWF0aC5jb3MoYW5nbGUpXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGxpbmVbMF0ueSAtPSBleHRlbnNpb24ueTtcbiAgICAgICAgICAgICAgICBsaW5lWzBdLnggLT0gZXh0ZW5zaW9uLng7XG4gICAgICAgICAgICAgICAgbGluZVsxXS55ICs9IGV4dGVuc2lvbi55O1xuICAgICAgICAgICAgICAgIGxpbmVbMV0ueCArPSBleHRlbnNpb24ueDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY2hlY2sgaWYgaW5zaWRlIGltYWdlXG4gICAgICAgICAgICBleHRlbmRMaW5lKGV4dCk7XG4gICAgICAgICAgICB3aGlsZSAoZXh0ID4gMSAmJiAoIWlucHV0SW1hZ2VXcmFwcGVyLmluSW1hZ2VXaXRoQm9yZGVyKGxpbmVbMF0sIDApXG4gICAgICAgICAgICAgICAgICAgIHx8ICFpbnB1dEltYWdlV3JhcHBlci5pbkltYWdlV2l0aEJvcmRlcihsaW5lWzFdLCAwKSkpIHtcbiAgICAgICAgICAgICAgICBleHQgLT0gTWF0aC5jZWlsKGV4dCAvIDIpO1xuICAgICAgICAgICAgICAgIGV4dGVuZExpbmUoLWV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGdldExpbmUoYm94KSB7XG4gICAgICAgICAgICByZXR1cm4gW3tcbiAgICAgICAgICAgICAgICB4OiAoYm94WzFdWzBdIC0gYm94WzBdWzBdKSAvIDIgKyBib3hbMF1bMF0sXG4gICAgICAgICAgICAgICAgeTogKGJveFsxXVsxXSAtIGJveFswXVsxXSkgLyAyICsgYm94WzBdWzFdXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgeDogKGJveFszXVswXSAtIGJveFsyXVswXSkgLyAyICsgYm94WzJdWzBdLFxuICAgICAgICAgICAgICAgIHk6IChib3hbM11bMV0gLSBib3hbMl1bMV0pIC8gMiArIGJveFsyXVsxXVxuICAgICAgICAgICAgfV07XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiB0cnlEZWNvZGUobGluZSkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG51bGwsXG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICBiYXJjb2RlTGluZSA9IEJyZXNlbmhhbS5nZXRCYXJjb2RlTGluZShpbnB1dEltYWdlV3JhcHBlciwgbGluZVswXSwgbGluZVsxXSk7XG5cbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgY29uZmlnLmRlYnVnLnNob3dGcmVxdWVuY3kpIHtcbiAgICAgICAgICAgICAgICBJbWFnZURlYnVnLmRyYXdQYXRoKGxpbmUsIHt4OiAneCcsIHk6ICd5J30sIF9jYW52YXMuY3R4Lm92ZXJsYXksIHtjb2xvcjogJ3JlZCcsIGxpbmVXaWR0aDogM30pO1xuICAgICAgICAgICAgICAgIEJyZXNlbmhhbS5kZWJ1Zy5wcmludEZyZXF1ZW5jeShiYXJjb2RlTGluZS5saW5lLCBfY2FudmFzLmRvbS5mcmVxdWVuY3kpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBCcmVzZW5oYW0udG9CaW5hcnlMaW5lKGJhcmNvZGVMaW5lKTtcblxuICAgICAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiBjb25maWcuZGVidWcuc2hvd1BhdHRlcm4pIHtcbiAgICAgICAgICAgICAgICBCcmVzZW5oYW0uZGVidWcucHJpbnRQYXR0ZXJuKGJhcmNvZGVMaW5lLmxpbmUsIF9jYW52YXMuZG9tLnBhdHRlcm4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IF9iYXJjb2RlUmVhZGVycy5sZW5ndGggJiYgcmVzdWx0ID09PSBudWxsOyBpKyspIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBfYmFyY29kZVJlYWRlcnNbaV0uZGVjb2RlUGF0dGVybihiYXJjb2RlTGluZS5saW5lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwpe1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjb2RlUmVzdWx0OiByZXN1bHQsXG4gICAgICAgICAgICAgICAgYmFyY29kZUxpbmU6IGJhcmNvZGVMaW5lXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoaXMgbWV0aG9kIHNsaWNlcyB0aGUgZ2l2ZW4gYXJlYSBhcGFydCBhbmQgdHJpZXMgdG8gZGV0ZWN0IGEgYmFyY29kZS1wYXR0ZXJuXG4gICAgICAgICAqIGZvciBlYWNoIHNsaWNlLiBJdCByZXR1cm5zIHRoZSBkZWNvZGVkIGJhcmNvZGUsIG9yIG51bGwgaWYgbm90aGluZyB3YXMgZm91bmRcbiAgICAgICAgICogQHBhcmFtIHtBcnJheX0gYm94XG4gICAgICAgICAqIEBwYXJhbSB7QXJyYXl9IGxpbmVcbiAgICAgICAgICogQHBhcmFtIHtOdW1iZXJ9IGxpbmVBbmdsZVxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gdHJ5RGVjb2RlQnJ1dGVGb3JjZShib3gsIGxpbmUsIGxpbmVBbmdsZSkge1xuICAgICAgICAgICAgdmFyIHNpZGVMZW5ndGggPSBNYXRoLnNxcnQoTWF0aC5wb3coYm94WzFdWzBdIC0gYm94WzBdWzBdLCAyKSArIE1hdGgucG93KChib3hbMV1bMV0gLSBib3hbMF1bMV0pLCAyKSksXG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICBzbGljZXMgPSAxNixcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBudWxsLFxuICAgICAgICAgICAgICAgIGRpcixcbiAgICAgICAgICAgICAgICBleHRlbnNpb24sXG4gICAgICAgICAgICAgICAgeGRpciA9IE1hdGguc2luKGxpbmVBbmdsZSksXG4gICAgICAgICAgICAgICAgeWRpciA9IE1hdGguY29zKGxpbmVBbmdsZSk7XG5cbiAgICAgICAgICAgIGZvciAoIGkgPSAxOyBpIDwgc2xpY2VzICYmIHJlc3VsdCA9PT0gbnVsbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgLy8gbW92ZSBsaW5lIHBlcnBlbmRpY3VsYXIgdG8gYW5nbGVcbiAgICAgICAgICAgICAgICBkaXIgPSBzaWRlTGVuZ3RoIC8gc2xpY2VzICogaSAqIChpICUgMiA9PT0gMCA/IC0xIDogMSk7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0ge1xuICAgICAgICAgICAgICAgICAgICB5OiBkaXIgKiB4ZGlyLFxuICAgICAgICAgICAgICAgICAgICB4OiBkaXIgKiB5ZGlyXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBsaW5lWzBdLnkgKz0gZXh0ZW5zaW9uLng7XG4gICAgICAgICAgICAgICAgbGluZVswXS54IC09IGV4dGVuc2lvbi55O1xuICAgICAgICAgICAgICAgIGxpbmVbMV0ueSArPSBleHRlbnNpb24ueDtcbiAgICAgICAgICAgICAgICBsaW5lWzFdLnggLT0gZXh0ZW5zaW9uLnk7XG5cbiAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnlEZWNvZGUobGluZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZ2V0TGluZUxlbmd0aChsaW5lKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KFxuICAgICAgICAgICAgICAgIE1hdGgucG93KE1hdGguYWJzKGxpbmVbMV0ueSAtIGxpbmVbMF0ueSksIDIpICtcbiAgICAgICAgICAgICAgICBNYXRoLnBvdyhNYXRoLmFicyhsaW5lWzFdLnggLSBsaW5lWzBdLngpLCAyKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogV2l0aCB0aGUgaGVscCBvZiB0aGUgY29uZmlndXJlZCByZWFkZXJzIChDb2RlMTI4IG9yIEVBTikgdGhpcyBmdW5jdGlvbiB0cmllcyB0byBkZXRlY3QgYVxuICAgICAgICAgKiB2YWxpZCBiYXJjb2RlIHBhdHRlcm4gd2l0aGluIHRoZSBnaXZlbiBhcmVhLlxuICAgICAgICAgKiBAcGFyYW0ge09iamVjdH0gYm94IFRoZSBhcmVhIHRvIHNlYXJjaCBpblxuICAgICAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSB0aGUgcmVzdWx0IHtjb2RlUmVzdWx0LCBsaW5lLCBhbmdsZSwgcGF0dGVybiwgdGhyZXNob2xkfVxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZGVjb2RlRnJvbUJvdW5kaW5nQm94KGJveCkge1xuICAgICAgICAgICAgdmFyIGxpbmUsXG4gICAgICAgICAgICAgICAgbGluZUFuZ2xlLFxuICAgICAgICAgICAgICAgIGN0eCA9IF9jYW52YXMuY3R4Lm92ZXJsYXksXG4gICAgICAgICAgICAgICAgcmVzdWx0LFxuICAgICAgICAgICAgICAgIGxpbmVMZW5ndGg7XG5cbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoY29uZmlnLmRlYnVnLmRyYXdCb3VuZGluZ0JveCAmJiBjdHgpIHtcbiAgICAgICAgICAgICAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UGF0aChib3gsIHt4OiAwLCB5OiAxfSwgY3R4LCB7Y29sb3I6IFwiYmx1ZVwiLCBsaW5lV2lkdGg6IDJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpbmUgPSBnZXRMaW5lKGJveCk7XG4gICAgICAgICAgICBsaW5lTGVuZ3RoID0gZ2V0TGluZUxlbmd0aChsaW5lKTtcbiAgICAgICAgICAgIGxpbmVBbmdsZSA9IE1hdGguYXRhbjIobGluZVsxXS55IC0gbGluZVswXS55LCBsaW5lWzFdLnggLSBsaW5lWzBdLngpO1xuICAgICAgICAgICAgbGluZSA9IGdldEV4dGVuZGVkTGluZShsaW5lLCBsaW5lQW5nbGUsIE1hdGguZmxvb3IobGluZUxlbmd0aCAqIDAuMSkpO1xuICAgICAgICAgICAgaWYgKGxpbmUgPT09IG51bGwpe1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXN1bHQgPSB0cnlEZWNvZGUobGluZSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ5RGVjb2RlQnJ1dGVGb3JjZShib3gsIGxpbmUsIGxpbmVBbmdsZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiByZXN1bHQgJiYgY29uZmlnLmRlYnVnLmRyYXdTY2FubGluZSAmJiBjdHgpIHtcbiAgICAgICAgICAgICAgICBJbWFnZURlYnVnLmRyYXdQYXRoKGxpbmUsIHt4OiAneCcsIHk6ICd5J30sIGN0eCwge2NvbG9yOiAncmVkJywgbGluZVdpZHRoOiAzfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29kZVJlc3VsdDogcmVzdWx0LmNvZGVSZXN1bHQsXG4gICAgICAgICAgICAgICAgbGluZTogbGluZSxcbiAgICAgICAgICAgICAgICBhbmdsZTogbGluZUFuZ2xlLFxuICAgICAgICAgICAgICAgIHBhdHRlcm46IHJlc3VsdC5iYXJjb2RlTGluZS5saW5lLFxuICAgICAgICAgICAgICAgIHRocmVzaG9sZDogcmVzdWx0LmJhcmNvZGVMaW5lLnRocmVzaG9sZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWNvZGVGcm9tQm91bmRpbmdCb3g6IGZ1bmN0aW9uKGJveCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWNvZGVGcm9tQm91bmRpbmdCb3goYm94KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZWNvZGVGcm9tQm91bmRpbmdCb3hlczogZnVuY3Rpb24oYm94ZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgaSwgcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBiYXJjb2RlcyA9IFtdLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSA9IGNvbmZpZy5tdWx0aXBsZTtcblxuICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgYm94ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm94ID0gYm94ZXNbaV07XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRlY29kZUZyb21Cb3VuZGluZ0JveChib3gpIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQuYm94ID0gYm94O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFyY29kZXMucHVzaChyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5jb2RlUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXJjb2Rlc1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRSZWFkZXJzOiBmdW5jdGlvbihyZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLnJlYWRlcnMgPSByZWFkZXJzO1xuICAgICAgICAgICAgICAgIF9iYXJjb2RlUmVhZGVycy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgIGluaXRSZWFkZXJzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9kZWNvZGVyL2JhcmNvZGVfZGVjb2Rlci5qcyIsImltcG9ydCBJbWFnZVdyYXBwZXIgZnJvbSAnLi4vY29tbW9uL2ltYWdlX3dyYXBwZXInO1xuXG52YXIgQnJlc2VuaGFtID0ge307XG5cbnZhciBTbG9wZSA9IHtcbiAgICBESVI6IHtcbiAgICAgICAgVVA6IDEsXG4gICAgICAgIERPV046IC0xXG4gICAgfVxufTtcbi8qKlxuICogU2NhbnMgYSBsaW5lIG9mIHRoZSBnaXZlbiBpbWFnZSBmcm9tIHBvaW50IHAxIHRvIHAyIGFuZCByZXR1cm5zIGEgcmVzdWx0IG9iamVjdCBjb250YWluaW5nXG4gKiBncmF5LXNjYWxlIHZhbHVlcyAoMC0yNTUpIG9mIHRoZSB1bmRlcmx5aW5nIHBpeGVscyBpbiBhZGRpdGlvbiB0byB0aGUgbWluXG4gKiBhbmQgbWF4IHZhbHVlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBpbWFnZVdyYXBwZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwMSBUaGUgc3RhcnQgcG9pbnQge3gseX1cbiAqIEBwYXJhbSB7T2JqZWN0fSBwMiBUaGUgZW5kIHBvaW50IHt4LHl9XG4gKiBAcmV0dXJucyB7bGluZSwgbWluLCBtYXh9XG4gKi9cbkJyZXNlbmhhbS5nZXRCYXJjb2RlTGluZSA9IGZ1bmN0aW9uKGltYWdlV3JhcHBlciwgcDEsIHAyKSB7XG4gICAgdmFyIHgwID0gcDEueCB8IDAsXG4gICAgICAgIHkwID0gcDEueSB8IDAsXG4gICAgICAgIHgxID0gcDIueCB8IDAsXG4gICAgICAgIHkxID0gcDIueSB8IDAsXG4gICAgICAgIHN0ZWVwID0gTWF0aC5hYnMoeTEgLSB5MCkgPiBNYXRoLmFicyh4MSAtIHgwKSxcbiAgICAgICAgZGVsdGF4LFxuICAgICAgICBkZWx0YXksXG4gICAgICAgIGVycm9yLFxuICAgICAgICB5c3RlcCxcbiAgICAgICAgeSxcbiAgICAgICAgdG1wLFxuICAgICAgICB4LFxuICAgICAgICBsaW5lID0gW10sXG4gICAgICAgIGltYWdlRGF0YSA9IGltYWdlV3JhcHBlci5kYXRhLFxuICAgICAgICB3aWR0aCA9IGltYWdlV3JhcHBlci5zaXplLngsXG4gICAgICAgIHN1bSA9IDAsXG4gICAgICAgIHZhbCxcbiAgICAgICAgbWluID0gMjU1LFxuICAgICAgICBtYXggPSAwO1xuXG4gICAgZnVuY3Rpb24gcmVhZChhLCBiKSB7XG4gICAgICAgIHZhbCA9IGltYWdlRGF0YVtiICogd2lkdGggKyBhXTtcbiAgICAgICAgc3VtICs9IHZhbDtcbiAgICAgICAgbWluID0gdmFsIDwgbWluID8gdmFsIDogbWluO1xuICAgICAgICBtYXggPSB2YWwgPiBtYXggPyB2YWwgOiBtYXg7XG4gICAgICAgIGxpbmUucHVzaCh2YWwpO1xuICAgIH1cblxuICAgIGlmIChzdGVlcCkge1xuICAgICAgICB0bXAgPSB4MDtcbiAgICAgICAgeDAgPSB5MDtcbiAgICAgICAgeTAgPSB0bXA7XG5cbiAgICAgICAgdG1wID0geDE7XG4gICAgICAgIHgxID0geTE7XG4gICAgICAgIHkxID0gdG1wO1xuICAgIH1cbiAgICBpZiAoeDAgPiB4MSkge1xuICAgICAgICB0bXAgPSB4MDtcbiAgICAgICAgeDAgPSB4MTtcbiAgICAgICAgeDEgPSB0bXA7XG5cbiAgICAgICAgdG1wID0geTA7XG4gICAgICAgIHkwID0geTE7XG4gICAgICAgIHkxID0gdG1wO1xuICAgIH1cbiAgICBkZWx0YXggPSB4MSAtIHgwO1xuICAgIGRlbHRheSA9IE1hdGguYWJzKHkxIC0geTApO1xuICAgIGVycm9yID0gKGRlbHRheCAvIDIpIHwgMDtcbiAgICB5ID0geTA7XG4gICAgeXN0ZXAgPSB5MCA8IHkxID8gMSA6IC0xO1xuICAgIGZvciAoIHggPSB4MDsgeCA8IHgxOyB4KyspIHtcbiAgICAgICAgaWYgKHN0ZWVwKXtcbiAgICAgICAgICAgIHJlYWQoeSwgeCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWFkKHgsIHkpO1xuICAgICAgICB9XG4gICAgICAgIGVycm9yID0gZXJyb3IgLSBkZWx0YXk7XG4gICAgICAgIGlmIChlcnJvciA8IDApIHtcbiAgICAgICAgICAgIHkgPSB5ICsgeXN0ZXA7XG4gICAgICAgICAgICBlcnJvciA9IGVycm9yICsgZGVsdGF4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGluZTogbGluZSxcbiAgICAgICAgbWluOiBtaW4sXG4gICAgICAgIG1heDogbWF4XG4gICAgfTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgdGhlIHJlc3VsdCBmcm9tIGdldEJhcmNvZGVMaW5lIGludG8gYSBiaW5hcnkgcmVwcmVzZW50YXRpb25cbiAqIGFsc28gY29uc2lkZXJpbmcgdGhlIGZyZXF1ZW5jeSBhbmQgc2xvcGUgb2YgdGhlIHNpZ25hbCBmb3IgbW9yZSByb2J1c3QgcmVzdWx0c1xuICogQHBhcmFtIHtPYmplY3R9IHJlc3VsdCB7bGluZSwgbWluLCBtYXh9XG4gKi9cbkJyZXNlbmhhbS50b0JpbmFyeUxpbmUgPSBmdW5jdGlvbihyZXN1bHQpIHtcbiAgICB2YXIgbWluID0gcmVzdWx0Lm1pbixcbiAgICAgICAgbWF4ID0gcmVzdWx0Lm1heCxcbiAgICAgICAgbGluZSA9IHJlc3VsdC5saW5lLFxuICAgICAgICBzbG9wZSxcbiAgICAgICAgc2xvcGUyLFxuICAgICAgICBjZW50ZXIgPSBtaW4gKyAobWF4IC0gbWluKSAvIDIsXG4gICAgICAgIGV4dHJlbWEgPSBbXSxcbiAgICAgICAgY3VycmVudERpcixcbiAgICAgICAgZGlyLFxuICAgICAgICB0aHJlc2hvbGQgPSAobWF4IC0gbWluKSAvIDEyLFxuICAgICAgICByVGhyZXNob2xkID0gLXRocmVzaG9sZCxcbiAgICAgICAgaSxcbiAgICAgICAgajtcblxuICAgIC8vIDEuIGZpbmQgZXh0cmVtYVxuICAgIGN1cnJlbnREaXIgPSBsaW5lWzBdID4gY2VudGVyID8gU2xvcGUuRElSLlVQIDogU2xvcGUuRElSLkRPV047XG4gICAgZXh0cmVtYS5wdXNoKHtcbiAgICAgICAgcG9zOiAwLFxuICAgICAgICB2YWw6IGxpbmVbMF1cbiAgICB9KTtcbiAgICBmb3IgKCBpID0gMDsgaSA8IGxpbmUubGVuZ3RoIC0gMjsgaSsrKSB7XG4gICAgICAgIHNsb3BlID0gKGxpbmVbaSArIDFdIC0gbGluZVtpXSk7XG4gICAgICAgIHNsb3BlMiA9IChsaW5lW2kgKyAyXSAtIGxpbmVbaSArIDFdKTtcbiAgICAgICAgaWYgKChzbG9wZSArIHNsb3BlMikgPCByVGhyZXNob2xkICYmIGxpbmVbaSArIDFdIDwgKGNlbnRlciAqIDEuNSkpIHtcbiAgICAgICAgICAgIGRpciA9IFNsb3BlLkRJUi5ET1dOO1xuICAgICAgICB9IGVsc2UgaWYgKChzbG9wZSArIHNsb3BlMikgPiB0aHJlc2hvbGQgJiYgbGluZVtpICsgMV0gPiAoY2VudGVyICogMC41KSkge1xuICAgICAgICAgICAgZGlyID0gU2xvcGUuRElSLlVQO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlyID0gY3VycmVudERpcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjdXJyZW50RGlyICE9PSBkaXIpIHtcbiAgICAgICAgICAgIGV4dHJlbWEucHVzaCh7XG4gICAgICAgICAgICAgICAgcG9zOiBpLFxuICAgICAgICAgICAgICAgIHZhbDogbGluZVtpXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjdXJyZW50RGlyID0gZGlyO1xuICAgICAgICB9XG4gICAgfVxuICAgIGV4dHJlbWEucHVzaCh7XG4gICAgICAgIHBvczogbGluZS5sZW5ndGgsXG4gICAgICAgIHZhbDogbGluZVtsaW5lLmxlbmd0aCAtIDFdXG4gICAgfSk7XG5cbiAgICBmb3IgKCBqID0gZXh0cmVtYVswXS5wb3M7IGogPCBleHRyZW1hWzFdLnBvczsgaisrKSB7XG4gICAgICAgIGxpbmVbal0gPSBsaW5lW2pdID4gY2VudGVyID8gMCA6IDE7XG4gICAgfVxuXG4gICAgLy8gaXRlcmF0ZSBvdmVyIGV4dHJlbWEgYW5kIGNvbnZlcnQgdG8gYmluYXJ5IGJhc2VkIG9uIGF2ZyBiZXR3ZWVuIG1pbm1heFxuICAgIGZvciAoIGkgPSAxOyBpIDwgZXh0cmVtYS5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgaWYgKGV4dHJlbWFbaSArIDFdLnZhbCA+IGV4dHJlbWFbaV0udmFsKSB7XG4gICAgICAgICAgICB0aHJlc2hvbGQgPSAoZXh0cmVtYVtpXS52YWwgKyAoKGV4dHJlbWFbaSArIDFdLnZhbCAtIGV4dHJlbWFbaV0udmFsKSAvIDMpICogMikgfCAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyZXNob2xkID0gKGV4dHJlbWFbaSArIDFdLnZhbCArICgoZXh0cmVtYVtpXS52YWwgLSBleHRyZW1hW2kgKyAxXS52YWwpIC8gMykpIHwgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoIGogPSBleHRyZW1hW2ldLnBvczsgaiA8IGV4dHJlbWFbaSArIDFdLnBvczsgaisrKSB7XG4gICAgICAgICAgICBsaW5lW2pdID0gbGluZVtqXSA+IHRocmVzaG9sZCA/IDAgOiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGluZTogbGluZSxcbiAgICAgICAgdGhyZXNob2xkOiB0aHJlc2hvbGRcbiAgICB9O1xufTtcblxuLyoqXG4gKiBVc2VkIGZvciBkZXZlbG9wbWVudCBvbmx5XG4gKi9cbkJyZXNlbmhhbS5kZWJ1ZyA9IHtcbiAgICBwcmludEZyZXF1ZW5jeTogZnVuY3Rpb24obGluZSwgY2FudmFzKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcbiAgICAgICAgY2FudmFzLndpZHRoID0gbGluZS5sZW5ndGg7XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSAyNTY7XG5cbiAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBcImJsdWVcIjtcbiAgICAgICAgZm9yICggaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjdHgubW92ZVRvKGksIDI1NSk7XG4gICAgICAgICAgICBjdHgubGluZVRvKGksIDI1NSAtIGxpbmVbaV0pO1xuICAgICAgICB9XG4gICAgICAgIGN0eC5zdHJva2UoKTtcbiAgICAgICAgY3R4LmNsb3NlUGF0aCgpO1xuICAgIH0sXG5cbiAgICBwcmludFBhdHRlcm46IGZ1bmN0aW9uKGxpbmUsIGNhbnZhcykge1xuICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKSwgaTtcblxuICAgICAgICBjYW52YXMud2lkdGggPSBsaW5lLmxlbmd0aDtcbiAgICAgICAgY3R4LmZpbGxDb2xvciA9IFwiYmxhY2tcIjtcbiAgICAgICAgZm9yICggaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAobGluZVtpXSA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGN0eC5maWxsUmVjdChpLCAwLCAxLCAxMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQnJlc2VuaGFtO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2RlY29kZXIvYnJlc2VuaGFtLmpzIiwiaW1wb3J0IHtvbWl0LCBwaWNrfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtnZXRVc2VyTWVkaWEsIGVudW1lcmF0ZURldmljZXN9IGZyb20gJ21lZGlhRGV2aWNlcyc7XG5cbmNvbnN0IGZhY2luZ01hdGNoaW5nID0ge1xuICAgIFwidXNlclwiOiAvZnJvbnQvaSxcbiAgICBcImVudmlyb25tZW50XCI6IC9iYWNrL2lcbn07XG5cbnZhciBzdHJlYW1SZWY7XG5cbmZ1bmN0aW9uIHdhaXRGb3JWaWRlbyh2aWRlbykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBhdHRlbXB0cyA9IDEwO1xuXG4gICAgICAgIGZ1bmN0aW9uIGNoZWNrVmlkZW8oKSB7XG4gICAgICAgICAgICBpZiAoYXR0ZW1wdHMgPiAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZpZGVvLnZpZGVvV2lkdGggPiAxMCAmJiB2aWRlby52aWRlb0hlaWdodCA+IDEwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHZpZGVvLnZpZGVvV2lkdGggKyBcInB4IHggXCIgKyB2aWRlby52aWRlb0hlaWdodCArIFwicHhcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNoZWNrVmlkZW8sIDUwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWplY3QoJ1VuYWJsZSB0byBwbGF5IHZpZGVvIHN0cmVhbS4gSXMgd2ViY2FtIHdvcmtpbmc/Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhdHRlbXB0cy0tO1xuICAgICAgICB9XG4gICAgICAgIGNoZWNrVmlkZW8oKTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBUcmllcyB0byBhdHRhY2ggdGhlIGNhbWVyYS1zdHJlYW0gdG8gYSBnaXZlbiB2aWRlby1lbGVtZW50XG4gKiBhbmQgY2FsbHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gdGhlIGNvbnRlbnQgaXMgcmVhZHlcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25zdHJhaW50c1xuICogQHBhcmFtIHtPYmplY3R9IHZpZGVvXG4gKi9cbmZ1bmN0aW9uIGluaXRDYW1lcmEodmlkZW8sIGNvbnN0cmFpbnRzKSB7XG4gICAgcmV0dXJuIGdldFVzZXJNZWRpYShjb25zdHJhaW50cylcbiAgICAudGhlbigoc3RyZWFtKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgc3RyZWFtUmVmID0gc3RyZWFtO1xuICAgICAgICAgICAgdmlkZW8uc2V0QXR0cmlidXRlKFwiYXV0b3BsYXlcIiwgdHJ1ZSk7XG4gICAgICAgICAgICB2aWRlby5zZXRBdHRyaWJ1dGUoJ211dGVkJywgdHJ1ZSk7XG4gICAgICAgICAgICB2aWRlby5zZXRBdHRyaWJ1dGUoJ3BsYXlzaW5saW5lJywgdHJ1ZSk7XG4gICAgICAgICAgICB2aWRlby5zcmNPYmplY3QgPSBzdHJlYW07XG4gICAgICAgICAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsICgpID0+IHtcbiAgICAgICAgICAgICAgICB2aWRlby5wbGF5KCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pXG4gICAgLnRoZW4od2FpdEZvclZpZGVvLmJpbmQobnVsbCwgdmlkZW8pKTtcbn1cblxuZnVuY3Rpb24gZGVwcmVjYXRlZENvbnN0cmFpbnRzKHZpZGVvQ29uc3RyYWludHMpIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gcGljayh2aWRlb0NvbnN0cmFpbnRzLCBbXCJ3aWR0aFwiLCBcImhlaWdodFwiLCBcImZhY2luZ01vZGVcIixcbiAgICAgICAgICAgIFwiYXNwZWN0UmF0aW9cIiwgXCJkZXZpY2VJZFwiXSk7XG5cbiAgICBpZiAodHlwZW9mIHZpZGVvQ29uc3RyYWludHMubWluQXNwZWN0UmF0aW8gIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLm1pbkFzcGVjdFJhdGlvID4gMCkge1xuICAgICAgICBub3JtYWxpemVkLmFzcGVjdFJhdGlvID0gdmlkZW9Db25zdHJhaW50cy5taW5Bc3BlY3RSYXRpbztcbiAgICAgICAgY29uc29sZS5sb2coXCJXQVJOSU5HOiBDb25zdHJhaW50ICdtaW5Bc3BlY3RSYXRpbycgaXMgZGVwcmVjYXRlZDsgVXNlICdhc3BlY3RSYXRpbycgaW5zdGVhZFwiKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2aWRlb0NvbnN0cmFpbnRzLmZhY2luZyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgbm9ybWFsaXplZC5mYWNpbmdNb2RlID0gdmlkZW9Db25zdHJhaW50cy5mYWNpbmc7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiV0FSTklORzogQ29uc3RyYWludCAnZmFjaW5nJyBpcyBkZXByZWNhdGVkLiBVc2UgJ2ZhY2luZ01vZGUnIGluc3RlYWQnXCIpO1xuICAgIH1cbiAgICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpY2tDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRzKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZENvbnN0cmFpbnRzID0ge1xuICAgICAgICBhdWRpbzogZmFsc2UsXG4gICAgICAgIHZpZGVvOiBkZXByZWNhdGVkQ29uc3RyYWludHModmlkZW9Db25zdHJhaW50cylcbiAgICB9O1xuXG4gICAgaWYgKG5vcm1hbGl6ZWRDb25zdHJhaW50cy52aWRlby5kZXZpY2VJZFxuICAgICAgICAgICAgJiYgbm9ybWFsaXplZENvbnN0cmFpbnRzLnZpZGVvLmZhY2luZ01vZGUpIHtcbiAgICAgICAgZGVsZXRlIG5vcm1hbGl6ZWRDb25zdHJhaW50cy52aWRlby5mYWNpbmdNb2RlO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vcm1hbGl6ZWRDb25zdHJhaW50cyk7XG59XG5cbmZ1bmN0aW9uIGVudW1lcmF0ZVZpZGVvRGV2aWNlcygpIHtcbiAgICByZXR1cm4gZW51bWVyYXRlRGV2aWNlcygpXG4gICAgLnRoZW4oZGV2aWNlcyA9PiBkZXZpY2VzLmZpbHRlcihkZXZpY2UgPT4gZGV2aWNlLmtpbmQgPT09ICd2aWRlb2lucHV0JykpO1xufVxuXG5mdW5jdGlvbiBnZXRBY3RpdmVUcmFjaygpIHtcbiAgICBpZiAoc3RyZWFtUmVmKSB7XG4gICAgICAgIGNvbnN0IHRyYWNrcyA9IHN0cmVhbVJlZi5nZXRWaWRlb1RyYWNrcygpO1xuICAgICAgICBpZiAodHJhY2tzICYmIHRyYWNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0cmFja3NbMF07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICByZXF1ZXN0OiBmdW5jdGlvbih2aWRlbywgdmlkZW9Db25zdHJhaW50cykge1xuICAgICAgICByZXR1cm4gcGlja0NvbnN0cmFpbnRzKHZpZGVvQ29uc3RyYWludHMpXG4gICAgICAgICAgICAudGhlbihpbml0Q2FtZXJhLmJpbmQobnVsbCwgdmlkZW8pKTtcbiAgICB9LFxuICAgIHJlbGVhc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgdHJhY2tzID0gc3RyZWFtUmVmICYmIHN0cmVhbVJlZi5nZXRWaWRlb1RyYWNrcygpO1xuICAgICAgICBpZiAodHJhY2tzICYmIHRyYWNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRyYWNrc1swXS5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgc3RyZWFtUmVmID0gbnVsbDtcbiAgICB9LFxuICAgIGVudW1lcmF0ZVZpZGVvRGV2aWNlcyxcbiAgICBnZXRBY3RpdmVTdHJlYW1MYWJlbDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGNvbnN0IHRyYWNrID0gZ2V0QWN0aXZlVHJhY2soKTtcbiAgICAgICAgcmV0dXJuIHRyYWNrID8gdHJhY2subGFiZWwgOiAnJztcbiAgICB9LFxuICAgIGdldEFjdGl2ZVRyYWNrXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2lucHV0L2NhbWVyYV9hY2Nlc3MuanMiLCIvLyBTY3JhcGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2V4aWYtanMvZXhpZi1qc1xuXG5jb25zdCBFeGlmVGFncyA9IHsweDAxMTI6IFwib3JpZW50YXRpb25cIn07XG5leHBvcnQgY29uc3QgQXZhaWxhYmxlVGFncyA9IE9iamVjdC5rZXlzKEV4aWZUYWdzKS5tYXAoa2V5ID0+IEV4aWZUYWdzW2tleV0pO1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZFRhZ3NJbk9iamVjdFVSTChzcmMsIHRhZ3MgPSBBdmFpbGFibGVUYWdzKSB7XG4gICAgaWYgKC9eYmxvYlxcOi9pLnRlc3Qoc3JjKSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0VVJMVG9CbG9iKHNyYylcbiAgICAgICAgICAgIC50aGVuKHJlYWRUb0J1ZmZlcilcbiAgICAgICAgICAgIC50aGVuKGJ1ZmZlciA9PiBmaW5kVGFnc0luQnVmZmVyKGJ1ZmZlciwgdGFncykpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFzZTY0VG9BcnJheUJ1ZmZlcihkYXRhVXJsKSB7XG4gICAgY29uc3QgYmFzZTY0ID0gZGF0YVVybC5yZXBsYWNlKC9eZGF0YVxcOihbXlxcO10rKVxcO2Jhc2U2NCwvZ21pLCAnJyksXG4gICAgICAgIGJpbmFyeSA9IGF0b2IoYmFzZTY0KSxcbiAgICAgICAgbGVuID0gYmluYXJ5Lmxlbmd0aCxcbiAgICAgICAgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGxlbiksXG4gICAgICAgIHZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICB2aWV3W2ldID0gYmluYXJ5LmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuICAgIHJldHVybiBidWZmZXI7XG59XG5cbmZ1bmN0aW9uIHJlYWRUb0J1ZmZlcihibG9iKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpO1xuICAgICAgICB9O1xuICAgICAgICBmaWxlUmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBvYmplY3RVUkxUb0Jsb2IodXJsKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgaHR0cCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgICAgICBodHRwLm9wZW4oXCJHRVRcIiwgdXJsLCB0cnVlKTtcbiAgICAgICAgaHR0cC5yZXNwb25zZVR5cGUgPSBcImJsb2JcIjtcbiAgICAgICAgaHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoaHR0cC5yZWFkeVN0YXRlID09PSBYTUxIdHRwUmVxdWVzdC5ET05FICYmIChodHRwLnN0YXR1cyA9PT0gMjAwIHx8IGh0dHAuc3RhdHVzID09PSAwKSkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUodGhpcy5yZXNwb25zZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGh0dHAub25lcnJvciA9IHJlamVjdDtcbiAgICAgICAgaHR0cC5zZW5kKCk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kVGFnc0luQnVmZmVyKGZpbGUsIHNlbGVjdGVkVGFncyA9IEF2YWlsYWJsZVRhZ3MpIHtcbiAgICBjb25zdCBkYXRhVmlldyA9IG5ldyBEYXRhVmlldyhmaWxlKSxcbiAgICAgICAgbGVuZ3RoID0gZmlsZS5ieXRlTGVuZ3RoLFxuICAgICAgICBleGlmVGFncyA9IHNlbGVjdGVkVGFncy5yZWR1Y2UoKHJlc3VsdCwgc2VsZWN0ZWRUYWcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aWZUYWcgPSBPYmplY3Qua2V5cyhFeGlmVGFncykuZmlsdGVyKHRhZyA9PiBFeGlmVGFnc1t0YWddID09PSBzZWxlY3RlZFRhZylbMF07XG4gICAgICAgICAgICBpZiAoZXhpZlRhZykge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtleGlmVGFnXSA9IHNlbGVjdGVkVGFnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pO1xuICAgIGxldCBvZmZzZXQgPSAyLFxuICAgICAgICBtYXJrZXI7XG5cbiAgICBpZiAoKGRhdGFWaWV3LmdldFVpbnQ4KDApICE9PSAweEZGKSB8fCAoZGF0YVZpZXcuZ2V0VWludDgoMSkgIT09IDB4RDgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB3aGlsZSAob2Zmc2V0IDwgbGVuZ3RoKSB7XG4gICAgICAgIGlmIChkYXRhVmlldy5nZXRVaW50OChvZmZzZXQpICE9PSAweEZGKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBtYXJrZXIgPSBkYXRhVmlldy5nZXRVaW50OChvZmZzZXQgKyAxKTtcbiAgICAgICAgaWYgKG1hcmtlciA9PT0gMHhFMSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlYWRFWElGRGF0YShkYXRhVmlldywgb2Zmc2V0ICsgNCwgZXhpZlRhZ3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2Zmc2V0ICs9IDIgKyBkYXRhVmlldy5nZXRVaW50MTYob2Zmc2V0ICsgMik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRFWElGRGF0YShmaWxlLCBzdGFydCwgZXhpZlRhZ3MpIHtcbiAgICBpZiAoZ2V0U3RyaW5nRnJvbUJ1ZmZlcihmaWxlLCBzdGFydCwgNCkgIT09IFwiRXhpZlwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB0aWZmT2Zmc2V0ID0gc3RhcnQgKyA2O1xuICAgIGxldCBiaWdFbmQsXG4gICAgICAgIHRhZ3M7XG5cbiAgICBpZiAoZmlsZS5nZXRVaW50MTYodGlmZk9mZnNldCkgPT09IDB4NDk0OSkge1xuICAgICAgICBiaWdFbmQgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGZpbGUuZ2V0VWludDE2KHRpZmZPZmZzZXQpID09PSAweDRENEQpIHtcbiAgICAgICAgYmlnRW5kID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGZpbGUuZ2V0VWludDE2KHRpZmZPZmZzZXQgKyAyLCAhYmlnRW5kKSAhPT0gMHgwMDJBKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdElGRE9mZnNldCA9IGZpbGUuZ2V0VWludDMyKHRpZmZPZmZzZXQgKyA0LCAhYmlnRW5kKTtcbiAgICBpZiAoZmlyc3RJRkRPZmZzZXQgPCAweDAwMDAwMDA4KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0YWdzID0gcmVhZFRhZ3MoZmlsZSwgdGlmZk9mZnNldCwgdGlmZk9mZnNldCArIGZpcnN0SUZET2Zmc2V0LCBleGlmVGFncywgYmlnRW5kKTtcbiAgICByZXR1cm4gdGFncztcbn1cblxuZnVuY3Rpb24gcmVhZFRhZ3MoZmlsZSwgdGlmZlN0YXJ0LCBkaXJTdGFydCwgc3RyaW5ncywgYmlnRW5kKSB7XG4gICAgY29uc3QgZW50cmllcyA9IGZpbGUuZ2V0VWludDE2KGRpclN0YXJ0LCAhYmlnRW5kKSxcbiAgICAgICAgdGFncyA9IHt9O1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbnRyaWVzOyBpKyspIHtcbiAgICAgICAgY29uc3QgZW50cnlPZmZzZXQgPSBkaXJTdGFydCArIGkgKiAxMiArIDIsXG4gICAgICAgICAgICB0YWcgPSBzdHJpbmdzW2ZpbGUuZ2V0VWludDE2KGVudHJ5T2Zmc2V0LCAhYmlnRW5kKV07XG4gICAgICAgIGlmICh0YWcpIHtcbiAgICAgICAgICAgIHRhZ3NbdGFnXSA9IHJlYWRUYWdWYWx1ZShmaWxlLCBlbnRyeU9mZnNldCwgdGlmZlN0YXJ0LCBkaXJTdGFydCwgYmlnRW5kKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGFncztcbn1cblxuZnVuY3Rpb24gcmVhZFRhZ1ZhbHVlKGZpbGUsIGVudHJ5T2Zmc2V0LCB0aWZmU3RhcnQsIGRpclN0YXJ0LCBiaWdFbmQpIHtcbiAgICBjb25zdCB0eXBlID0gZmlsZS5nZXRVaW50MTYoZW50cnlPZmZzZXQgKyAyLCAhYmlnRW5kKSxcbiAgICAgICAgbnVtVmFsdWVzID0gZmlsZS5nZXRVaW50MzIoZW50cnlPZmZzZXQgKyA0LCAhYmlnRW5kKTtcblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgMzpcbiAgICAgICAgaWYgKG51bVZhbHVlcyA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpbGUuZ2V0VWludDE2KGVudHJ5T2Zmc2V0ICsgOCwgIWJpZ0VuZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGdldFN0cmluZ0Zyb21CdWZmZXIoYnVmZmVyLCBzdGFydCwgbGVuZ3RoKSB7XG4gICAgbGV0IG91dHN0ciA9IFwiXCI7XG4gICAgZm9yIChsZXQgbiA9IHN0YXJ0OyBuIDwgc3RhcnQgKyBsZW5ndGg7IG4rKykge1xuICAgICAgICBvdXRzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZmZXIuZ2V0VWludDgobikpO1xuICAgIH1cbiAgICByZXR1cm4gb3V0c3RyO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2lucHV0L2V4aWZfaGVscGVyLmpzIiwiaW1wb3J0IHtcbiAgICBpbWFnZVJlZixcbiAgICBncmF5QW5kSGFsZlNhbXBsZUZyb21DYW52YXNEYXRhLFxuICAgIGNvbXB1dGVHcmF5XG59IGZyb20gJy4uL2NvbW1vbi9jdl91dGlscyc7XG5cbmNvbnN0IFRPX1JBRElBTlMgPSBNYXRoLlBJIC8gMTgwO1xuXG5mdW5jdGlvbiBhZGp1c3RDYW52YXNTaXplKGNhbnZhcywgdGFyZ2V0U2l6ZSkge1xuICAgIGlmIChjYW52YXMud2lkdGggIT09IHRhcmdldFNpemUueCkge1xuICAgICAgICBpZiAoRU5WLmRldmVsb3BtZW50KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIldBUk5JTkc6IGNhbnZhcy1zaXplIG5lZWRzIHRvIGJlIGFkanVzdGVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHRhcmdldFNpemUueDtcbiAgICB9XG4gICAgaWYgKGNhbnZhcy5oZWlnaHQgIT09IHRhcmdldFNpemUueSkge1xuICAgICAgICBpZiAoRU5WLmRldmVsb3BtZW50KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIldBUk5JTkc6IGNhbnZhcy1zaXplIG5lZWRzIHRvIGJlIGFkanVzdGVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB0YXJnZXRTaXplLnk7XG4gICAgfVxufVxuXG52YXIgRnJhbWVHcmFiYmVyID0ge307XG5cbkZyYW1lR3JhYmJlci5jcmVhdGUgPSBmdW5jdGlvbihpbnB1dFN0cmVhbSwgY2FudmFzKSB7XG4gICAgdmFyIF90aGF0ID0ge30sXG4gICAgICAgIF9zdHJlYW1Db25maWcgPSBpbnB1dFN0cmVhbS5nZXRDb25maWcoKSxcbiAgICAgICAgX3ZpZGVvX3NpemUgPSBpbWFnZVJlZihpbnB1dFN0cmVhbS5nZXRSZWFsV2lkdGgoKSwgaW5wdXRTdHJlYW0uZ2V0UmVhbEhlaWdodCgpKSxcbiAgICAgICAgX2NhbnZhc1NpemUgPSBpbnB1dFN0cmVhbS5nZXRDYW52YXNTaXplKCksXG4gICAgICAgIF9zaXplID0gaW1hZ2VSZWYoaW5wdXRTdHJlYW0uZ2V0V2lkdGgoKSwgaW5wdXRTdHJlYW0uZ2V0SGVpZ2h0KCkpLFxuICAgICAgICB0b3BSaWdodCA9IGlucHV0U3RyZWFtLmdldFRvcFJpZ2h0KCksXG4gICAgICAgIF9zeCA9IHRvcFJpZ2h0LngsXG4gICAgICAgIF9zeSA9IHRvcFJpZ2h0LnksXG4gICAgICAgIF9jYW52YXMsXG4gICAgICAgIF9jdHggPSBudWxsLFxuICAgICAgICBfZGF0YSA9IG51bGw7XG5cbiAgICBfY2FudmFzID0gY2FudmFzID8gY2FudmFzIDogZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICBfY2FudmFzLndpZHRoID0gX2NhbnZhc1NpemUueDtcbiAgICBfY2FudmFzLmhlaWdodCA9IF9jYW52YXNTaXplLnk7XG4gICAgX2N0eCA9IF9jYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpO1xuICAgIF9kYXRhID0gbmV3IFVpbnQ4QXJyYXkoX3NpemUueCAqIF9zaXplLnkpO1xuICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJGcmFtZUdyYWJiZXJcIiwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgc2l6ZTogX3NpemUsXG4gICAgICAgICAgICB0b3BSaWdodDogdG9wUmlnaHQsXG4gICAgICAgICAgICB2aWRlb1NpemU6IF92aWRlb19zaXplLFxuICAgICAgICAgICAgY2FudmFzU2l6ZTogX2NhbnZhc1NpemVcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZXMgdGhlIGdpdmVuIGFycmF5IGFzIGZyYW1lLWJ1ZmZlclxuICAgICAqL1xuICAgIF90aGF0LmF0dGFjaERhdGEgPSBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgIF9kYXRhID0gZGF0YTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdXNlZCBmcmFtZS1idWZmZXJcbiAgICAgKi9cbiAgICBfdGhhdC5nZXREYXRhID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfZGF0YTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmV0Y2hlcyBhIGZyYW1lIGZyb20gdGhlIGlucHV0LXN0cmVhbSBhbmQgcHV0cyBpbnRvIHRoZSBmcmFtZS1idWZmZXIuXG4gICAgICogVGhlIGltYWdlLWRhdGEgaXMgY29udmVydGVkIHRvIGdyYXktc2NhbGUgYW5kIHRoZW4gaGFsZi1zYW1wbGVkIGlmIGNvbmZpZ3VyZWQuXG4gICAgICovXG4gICAgX3RoYXQuZ3JhYiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgZG9IYWxmU2FtcGxlID0gX3N0cmVhbUNvbmZpZy5oYWxmU2FtcGxlLFxuICAgICAgICAgICAgZnJhbWUgPSBpbnB1dFN0cmVhbS5nZXRGcmFtZSgpLFxuICAgICAgICAgICAgZHJhd2FibGUgPSBmcmFtZSxcbiAgICAgICAgICAgIGRyYXdBbmdsZSA9IDAsXG4gICAgICAgICAgICBjdHhEYXRhO1xuICAgICAgICBpZiAoZHJhd2FibGUpIHtcbiAgICAgICAgICAgIGFkanVzdENhbnZhc1NpemUoX2NhbnZhcywgX2NhbnZhc1NpemUpO1xuICAgICAgICAgICAgaWYgKF9zdHJlYW1Db25maWcudHlwZSA9PT0gJ0ltYWdlU3RyZWFtJykge1xuICAgICAgICAgICAgICAgIGRyYXdhYmxlID0gZnJhbWUuaW1nO1xuICAgICAgICAgICAgICAgIGlmIChmcmFtZS50YWdzICYmIGZyYW1lLnRhZ3Mub3JpZW50YXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChmcmFtZS50YWdzLm9yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdBbmdsZSA9IDkwICogVE9fUkFESUFOUztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICAgICAgICAgICAgICBkcmF3QW5nbGUgPSAtOTAgKiBUT19SQURJQU5TO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChkcmF3QW5nbGUgIT09IDApIHtcbiAgICAgICAgICAgICAgICBfY3R4LnRyYW5zbGF0ZShfY2FudmFzU2l6ZS54IC8gMiwgX2NhbnZhc1NpemUueSAvIDIpO1xuICAgICAgICAgICAgICAgIF9jdHgucm90YXRlKGRyYXdBbmdsZSk7XG4gICAgICAgICAgICAgICAgX2N0eC5kcmF3SW1hZ2UoZHJhd2FibGUsIC1fY2FudmFzU2l6ZS55IC8gMiwgLV9jYW52YXNTaXplLnggLyAyLCBfY2FudmFzU2l6ZS55LCBfY2FudmFzU2l6ZS54KTtcbiAgICAgICAgICAgICAgICBfY3R4LnJvdGF0ZSgtZHJhd0FuZ2xlKTtcbiAgICAgICAgICAgICAgICBfY3R4LnRyYW5zbGF0ZSgtX2NhbnZhc1NpemUueCAvIDIsIC1fY2FudmFzU2l6ZS55IC8gMik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIF9jdHguZHJhd0ltYWdlKGRyYXdhYmxlLCAwLCAwLCBfY2FudmFzU2l6ZS54LCBfY2FudmFzU2l6ZS55KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY3R4RGF0YSA9IF9jdHguZ2V0SW1hZ2VEYXRhKF9zeCwgX3N5LCBfc2l6ZS54LCBfc2l6ZS55KS5kYXRhO1xuICAgICAgICAgICAgaWYgKGRvSGFsZlNhbXBsZSl7XG4gICAgICAgICAgICAgICAgZ3JheUFuZEhhbGZTYW1wbGVGcm9tQ2FudmFzRGF0YShjdHhEYXRhLCBfc2l6ZSwgX2RhdGEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlR3JheShjdHhEYXRhLCBfZGF0YSwgX3N0cmVhbUNvbmZpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhhdC5nZXRTaXplID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc2l6ZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIF90aGF0O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRnJhbWVHcmFiYmVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2lucHV0L2ZyYW1lX2dyYWJiZXIuanMiLCJpbXBvcnQge2ZpbmRUYWdzSW5PYmplY3RVUkx9IGZyb20gJy4vZXhpZl9oZWxwZXInO1xuXG52YXIgSW1hZ2VMb2FkZXIgPSB7fTtcbkltYWdlTG9hZGVyLmxvYWQgPSBmdW5jdGlvbihkaXJlY3RvcnksIGNhbGxiYWNrLCBvZmZzZXQsIHNpemUsIHNlcXVlbmNlKSB7XG4gICAgdmFyIGh0bWxJbWFnZXNTcmNBcnJheSA9IG5ldyBBcnJheShzaXplKSxcbiAgICAgICAgaHRtbEltYWdlc0FycmF5ID0gbmV3IEFycmF5KGh0bWxJbWFnZXNTcmNBcnJheS5sZW5ndGgpLFxuICAgICAgICBpLFxuICAgICAgICBpbWcsXG4gICAgICAgIG51bTtcblxuICAgIGlmIChzZXF1ZW5jZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgaHRtbEltYWdlc1NyY0FycmF5WzBdID0gZGlyZWN0b3J5O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgaHRtbEltYWdlc1NyY0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBudW0gPSAob2Zmc2V0ICsgaSk7XG4gICAgICAgICAgICBodG1sSW1hZ2VzU3JjQXJyYXlbaV0gPSBkaXJlY3RvcnkgKyBcImltYWdlLVwiICsgKFwiMDBcIiArIG51bSkuc2xpY2UoLTMpICsgXCIuanBnXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaHRtbEltYWdlc0FycmF5Lm5vdExvYWRlZCA9IFtdO1xuICAgIGh0bWxJbWFnZXNBcnJheS5hZGRJbWFnZSA9IGZ1bmN0aW9uKGltYWdlKSB7XG4gICAgICAgIGh0bWxJbWFnZXNBcnJheS5ub3RMb2FkZWQucHVzaChpbWFnZSk7XG4gICAgfTtcbiAgICBodG1sSW1hZ2VzQXJyYXkubG9hZGVkID0gZnVuY3Rpb24obG9hZGVkSW1nKSB7XG4gICAgICAgIHZhciBub3Rsb2FkZWRJbWdzID0gaHRtbEltYWdlc0FycmF5Lm5vdExvYWRlZDtcbiAgICAgICAgZm9yICh2YXIgeCA9IDA7IHggPCBub3Rsb2FkZWRJbWdzLmxlbmd0aDsgeCsrKSB7XG4gICAgICAgICAgICBpZiAobm90bG9hZGVkSW1nc1t4XSA9PT0gbG9hZGVkSW1nKSB7XG4gICAgICAgICAgICAgICAgbm90bG9hZGVkSW1ncy5zcGxpY2UoeCwgMSk7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCBodG1sSW1hZ2VzU3JjQXJyYXkubGVuZ3RoOyB5KyspIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGltZ05hbWUgPSBodG1sSW1hZ2VzU3JjQXJyYXlbeV0uc3Vic3RyKGh0bWxJbWFnZXNTcmNBcnJheVt5XS5sYXN0SW5kZXhPZihcIi9cIikpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9hZGVkSW1nLnNyYy5sYXN0SW5kZXhPZihpbWdOYW1lKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxJbWFnZXNBcnJheVt5XSA9IHtpbWc6IGxvYWRlZEltZ307XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobm90bG9hZGVkSW1ncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkltYWdlcyBsb2FkZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VxdWVuY2UgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgZmluZFRhZ3NJbk9iamVjdFVSTChkaXJlY3RvcnksIFsnb3JpZW50YXRpb24nXSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4odGFncyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sSW1hZ2VzQXJyYXlbMF0udGFncyA9IHRhZ3M7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhodG1sSW1hZ2VzQXJyYXkpO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soaHRtbEltYWdlc0FycmF5KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGh0bWxJbWFnZXNBcnJheSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZm9yICggaSA9IDA7IGkgPCBodG1sSW1hZ2VzU3JjQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgIGh0bWxJbWFnZXNBcnJheS5hZGRJbWFnZShpbWcpO1xuICAgICAgICBhZGRPbmxvYWRIYW5kbGVyKGltZywgaHRtbEltYWdlc0FycmF5KTtcbiAgICAgICAgaW1nLnNyYyA9IGh0bWxJbWFnZXNTcmNBcnJheVtpXTtcbiAgICB9XG59O1xuXG5mdW5jdGlvbiBhZGRPbmxvYWRIYW5kbGVyKGltZywgaHRtbEltYWdlc0FycmF5KSB7XG4gICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBodG1sSW1hZ2VzQXJyYXkubG9hZGVkKHRoaXMpO1xuICAgIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IChJbWFnZUxvYWRlcik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvaW5wdXQvaW1hZ2VfbG9hZGVyLmpzIiwiaW1wb3J0IEltYWdlTG9hZGVyIGZyb20gJy4vaW1hZ2VfbG9hZGVyJztcblxudmFyIElucHV0U3RyZWFtID0ge307XG5JbnB1dFN0cmVhbS5jcmVhdGVWaWRlb1N0cmVhbSA9IGZ1bmN0aW9uKHZpZGVvKSB7XG4gICAgdmFyIHRoYXQgPSB7fSxcbiAgICAgICAgX2NvbmZpZyA9IG51bGwsXG4gICAgICAgIF9ldmVudE5hbWVzID0gWydjYW5yZWNvcmQnLCAnZW5kZWQnXSxcbiAgICAgICAgX2V2ZW50SGFuZGxlcnMgPSB7fSxcbiAgICAgICAgX2NhbGN1bGF0ZWRXaWR0aCxcbiAgICAgICAgX2NhbGN1bGF0ZWRIZWlnaHQsXG4gICAgICAgIF90b3BSaWdodCA9IHt4OiAwLCB5OiAwfSxcbiAgICAgICAgX2NhbnZhc1NpemUgPSB7eDogMCwgeTogMH07XG5cbiAgICBmdW5jdGlvbiBpbml0U2l6ZSgpIHtcbiAgICAgICAgdmFyIHdpZHRoID0gdmlkZW8udmlkZW9XaWR0aCxcbiAgICAgICAgICAgIGhlaWdodCA9IHZpZGVvLnZpZGVvSGVpZ2h0O1xuXG4gICAgICAgIF9jYWxjdWxhdGVkV2lkdGggPVxuICAgICAgICAgICAgX2NvbmZpZy5zaXplID8gd2lkdGggLyBoZWlnaHQgPiAxID8gX2NvbmZpZy5zaXplIDogTWF0aC5mbG9vcigod2lkdGggLyBoZWlnaHQpICogX2NvbmZpZy5zaXplKSA6IHdpZHRoO1xuICAgICAgICBfY2FsY3VsYXRlZEhlaWdodCA9XG4gICAgICAgICAgICBfY29uZmlnLnNpemUgPyB3aWR0aCAvIGhlaWdodCA+IDEgPyBNYXRoLmZsb29yKChoZWlnaHQgLyB3aWR0aCkgKiBfY29uZmlnLnNpemUpIDogX2NvbmZpZy5zaXplIDogaGVpZ2h0O1xuXG4gICAgICAgIF9jYW52YXNTaXplLnggPSBfY2FsY3VsYXRlZFdpZHRoO1xuICAgICAgICBfY2FudmFzU2l6ZS55ID0gX2NhbGN1bGF0ZWRIZWlnaHQ7XG4gICAgfVxuXG4gICAgdGhhdC5nZXRSZWFsV2lkdGggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHZpZGVvLnZpZGVvV2lkdGg7XG4gICAgfTtcblxuICAgIHRoYXQuZ2V0UmVhbEhlaWdodCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdmlkZW8udmlkZW9IZWlnaHQ7XG4gICAgfTtcblxuICAgIHRoYXQuZ2V0V2lkdGggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jYWxjdWxhdGVkV2lkdGg7XG4gICAgfTtcblxuICAgIHRoYXQuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY2FsY3VsYXRlZEhlaWdodDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRXaWR0aCA9IGZ1bmN0aW9uKHdpZHRoKSB7XG4gICAgICAgIF9jYWxjdWxhdGVkV2lkdGggPSB3aWR0aDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRIZWlnaHQgPSBmdW5jdGlvbihoZWlnaHQpIHtcbiAgICAgICAgX2NhbGN1bGF0ZWRIZWlnaHQgPSBoZWlnaHQ7XG4gICAgfTtcblxuICAgIHRoYXQuc2V0SW5wdXRTdHJlYW0gPSBmdW5jdGlvbihjb25maWcpIHtcbiAgICAgICAgX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdmlkZW8uc3JjID0gKHR5cGVvZiBjb25maWcuc3JjICE9PSAndW5kZWZpbmVkJykgPyBjb25maWcuc3JjIDogJyc7XG4gICAgfTtcblxuICAgIHRoYXQuZW5kZWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHZpZGVvLmVuZGVkO1xuICAgIH07XG5cbiAgICB0aGF0LmdldENvbmZpZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2NvbmZpZztcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgICAgICB2aWRlby5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH07XG5cbiAgICB0aGF0LnBhdXNlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZpZGVvLnBhdXNlKCk7XG4gICAgfTtcblxuICAgIHRoYXQucGxheSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2aWRlby5wbGF5KCk7XG4gICAgfTtcblxuICAgIHRoYXQuc2V0Q3VycmVudFRpbWUgPSBmdW5jdGlvbih0aW1lKSB7XG4gICAgICAgIGlmIChfY29uZmlnLnR5cGUgIT09IFwiTGl2ZVN0cmVhbVwiKSB7XG4gICAgICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IHRpbWU7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhhdC5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGYsIGJvb2wpIHtcbiAgICAgICAgaWYgKF9ldmVudE5hbWVzLmluZGV4T2YoZXZlbnQpICE9PSAtMSkge1xuICAgICAgICAgICAgaWYgKCFfZXZlbnRIYW5kbGVyc1tldmVudF0pIHtcbiAgICAgICAgICAgICAgICBfZXZlbnRIYW5kbGVyc1tldmVudF0gPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9ldmVudEhhbmRsZXJzW2V2ZW50XS5wdXNoKGYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgZiwgYm9vbCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhhdC5jbGVhckV2ZW50SGFuZGxlcnMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgX2V2ZW50TmFtZXMuZm9yRWFjaChmdW5jdGlvbihldmVudE5hbWUpIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGVycyA9IF9ldmVudEhhbmRsZXJzW2V2ZW50TmFtZV07XG4gICAgICAgICAgICBpZiAoaGFuZGxlcnMgJiYgaGFuZGxlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGhhbmRsZXJzLmZvckVhY2goZnVuY3Rpb24oaGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgICB2aWRlby5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0aGF0LnRyaWdnZXIgPSBmdW5jdGlvbihldmVudE5hbWUsIGFyZ3MpIHtcbiAgICAgICAgdmFyIGosXG4gICAgICAgICAgICBoYW5kbGVycyA9IF9ldmVudEhhbmRsZXJzW2V2ZW50TmFtZV07XG5cbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gJ2NhbnJlY29yZCcpIHtcbiAgICAgICAgICAgIGluaXRTaXplKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhbmRsZXJzICYmIGhhbmRsZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgaGFuZGxlcnMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVyc1tqXS5hcHBseSh0aGF0LCBhcmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB0aGF0LnNldFRvcFJpZ2h0ID0gZnVuY3Rpb24odG9wUmlnaHQpIHtcbiAgICAgICAgX3RvcFJpZ2h0LnggPSB0b3BSaWdodC54O1xuICAgICAgICBfdG9wUmlnaHQueSA9IHRvcFJpZ2h0Lnk7XG4gICAgfTtcblxuICAgIHRoYXQuZ2V0VG9wUmlnaHQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF90b3BSaWdodDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRDYW52YXNTaXplID0gZnVuY3Rpb24oc2l6ZSkge1xuICAgICAgICBfY2FudmFzU2l6ZS54ID0gc2l6ZS54O1xuICAgICAgICBfY2FudmFzU2l6ZS55ID0gc2l6ZS55O1xuICAgIH07XG5cbiAgICB0aGF0LmdldENhbnZhc1NpemUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jYW52YXNTaXplO1xuICAgIH07XG5cbiAgICB0aGF0LmdldEZyYW1lID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2aWRlbztcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoYXQ7XG59O1xuXG5JbnB1dFN0cmVhbS5jcmVhdGVMaXZlU3RyZWFtID0gZnVuY3Rpb24odmlkZW8pIHtcbiAgICB2aWRlby5zZXRBdHRyaWJ1dGUoXCJhdXRvcGxheVwiLCB0cnVlKTtcbiAgICB2YXIgdGhhdCA9IElucHV0U3RyZWFtLmNyZWF0ZVZpZGVvU3RyZWFtKHZpZGVvKTtcblxuICAgIHRoYXQuZW5kZWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhhdDtcbn07XG5cbklucHV0U3RyZWFtLmNyZWF0ZUltYWdlU3RyZWFtID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHRoYXQgPSB7fTtcbiAgICB2YXIgX2NvbmZpZyA9IG51bGw7XG5cbiAgICB2YXIgd2lkdGggPSAwLFxuICAgICAgICBoZWlnaHQgPSAwLFxuICAgICAgICBmcmFtZUlkeCA9IDAsXG4gICAgICAgIHBhdXNlZCA9IHRydWUsXG4gICAgICAgIGxvYWRlZCA9IGZhbHNlLFxuICAgICAgICBpbWdBcnJheSA9IG51bGwsXG4gICAgICAgIHNpemUgPSAwLFxuICAgICAgICBvZmZzZXQgPSAxLFxuICAgICAgICBiYXNlVXJsID0gbnVsbCxcbiAgICAgICAgZW5kZWQgPSBmYWxzZSxcbiAgICAgICAgY2FsY3VsYXRlZFdpZHRoLFxuICAgICAgICBjYWxjdWxhdGVkSGVpZ2h0LFxuICAgICAgICBfZXZlbnROYW1lcyA9IFsnY2FucmVjb3JkJywgJ2VuZGVkJ10sXG4gICAgICAgIF9ldmVudEhhbmRsZXJzID0ge30sXG4gICAgICAgIF90b3BSaWdodCA9IHt4OiAwLCB5OiAwfSxcbiAgICAgICAgX2NhbnZhc1NpemUgPSB7eDogMCwgeTogMH07XG5cbiAgICBmdW5jdGlvbiBsb2FkSW1hZ2VzKCkge1xuICAgICAgICBsb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgSW1hZ2VMb2FkZXIubG9hZChiYXNlVXJsLCBmdW5jdGlvbihpbWdzKSB7XG4gICAgICAgICAgICBpbWdBcnJheSA9IGltZ3M7XG4gICAgICAgICAgICBpZiAoaW1nc1swXS50YWdzICYmIGltZ3NbMF0udGFncy5vcmllbnRhdGlvbikge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoaW1nc1swXS50YWdzLm9yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBpbWdzWzBdLmltZy5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCA9IGltZ3NbMF0uaW1nLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IGltZ3NbMF0uaW1nLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQgPSBpbWdzWzBdLmltZy5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IGltZ3NbMF0uaW1nLndpZHRoO1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IGltZ3NbMF0uaW1nLmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhbGN1bGF0ZWRXaWR0aCA9XG4gICAgICAgICAgICAgICAgX2NvbmZpZy5zaXplID8gd2lkdGggLyBoZWlnaHQgPiAxID8gX2NvbmZpZy5zaXplIDogTWF0aC5mbG9vcigod2lkdGggLyBoZWlnaHQpICogX2NvbmZpZy5zaXplKSA6IHdpZHRoO1xuICAgICAgICAgICAgY2FsY3VsYXRlZEhlaWdodCA9XG4gICAgICAgICAgICAgICAgX2NvbmZpZy5zaXplID8gd2lkdGggLyBoZWlnaHQgPiAxID8gTWF0aC5mbG9vcigoaGVpZ2h0IC8gd2lkdGgpICogX2NvbmZpZy5zaXplKSA6IF9jb25maWcuc2l6ZSA6IGhlaWdodDtcbiAgICAgICAgICAgIF9jYW52YXNTaXplLnggPSBjYWxjdWxhdGVkV2lkdGg7XG4gICAgICAgICAgICBfY2FudmFzU2l6ZS55ID0gY2FsY3VsYXRlZEhlaWdodDtcbiAgICAgICAgICAgIGxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICBmcmFtZUlkeCA9IDA7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHB1Ymxpc2hFdmVudChcImNhbnJlY29yZFwiLCBbXSk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfSwgb2Zmc2V0LCBzaXplLCBfY29uZmlnLnNlcXVlbmNlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwdWJsaXNoRXZlbnQoZXZlbnROYW1lLCBhcmdzKSB7XG4gICAgICAgIHZhciBqLFxuICAgICAgICAgICAgaGFuZGxlcnMgPSBfZXZlbnRIYW5kbGVyc1tldmVudE5hbWVdO1xuXG4gICAgICAgIGlmIChoYW5kbGVycyAmJiBoYW5kbGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8IGhhbmRsZXJzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlcnNbal0uYXBwbHkodGhhdCwgYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHRoYXQudHJpZ2dlciA9IHB1Ymxpc2hFdmVudDtcblxuICAgIHRoYXQuZ2V0V2lkdGggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZWRXaWR0aDtcbiAgICB9O1xuXG4gICAgdGhhdC5nZXRIZWlnaHQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZWRIZWlnaHQ7XG4gICAgfTtcblxuICAgIHRoYXQuc2V0V2lkdGggPSBmdW5jdGlvbihuZXdXaWR0aCkge1xuICAgICAgICBjYWxjdWxhdGVkV2lkdGggPSBuZXdXaWR0aDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRIZWlnaHQgPSBmdW5jdGlvbihuZXdIZWlnaHQpIHtcbiAgICAgICAgY2FsY3VsYXRlZEhlaWdodCA9IG5ld0hlaWdodDtcbiAgICB9O1xuXG4gICAgdGhhdC5nZXRSZWFsV2lkdGggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIH07XG5cbiAgICB0aGF0LmdldFJlYWxIZWlnaHQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGhlaWdodDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRJbnB1dFN0cmVhbSA9IGZ1bmN0aW9uKHN0cmVhbSkge1xuICAgICAgICBfY29uZmlnID0gc3RyZWFtO1xuICAgICAgICBpZiAoc3RyZWFtLnNlcXVlbmNlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgYmFzZVVybCA9IHN0cmVhbS5zcmM7XG4gICAgICAgICAgICBzaXplID0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJhc2VVcmwgPSBzdHJlYW0uc3JjO1xuICAgICAgICAgICAgc2l6ZSA9IHN0cmVhbS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgbG9hZEltYWdlcygpO1xuICAgIH07XG5cbiAgICB0aGF0LmVuZGVkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBlbmRlZDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbigpIHt9O1xuXG4gICAgdGhhdC5nZXRDb25maWcgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb25maWc7XG4gICAgfTtcblxuICAgIHRoYXQucGF1c2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcGF1c2VkID0gdHJ1ZTtcbiAgICB9O1xuXG4gICAgdGhhdC5wbGF5ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgIH07XG5cbiAgICB0aGF0LnNldEN1cnJlbnRUaW1lID0gZnVuY3Rpb24odGltZSkge1xuICAgICAgICBmcmFtZUlkeCA9IHRpbWU7XG4gICAgfTtcblxuICAgIHRoYXQuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKGV2ZW50LCBmKSB7XG4gICAgICAgIGlmIChfZXZlbnROYW1lcy5pbmRleE9mKGV2ZW50KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGlmICghX2V2ZW50SGFuZGxlcnNbZXZlbnRdKSB7XG4gICAgICAgICAgICAgICAgX2V2ZW50SGFuZGxlcnNbZXZlbnRdID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfZXZlbnRIYW5kbGVyc1tldmVudF0ucHVzaChmKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB0aGF0LnNldFRvcFJpZ2h0ID0gZnVuY3Rpb24odG9wUmlnaHQpIHtcbiAgICAgICAgX3RvcFJpZ2h0LnggPSB0b3BSaWdodC54O1xuICAgICAgICBfdG9wUmlnaHQueSA9IHRvcFJpZ2h0Lnk7XG4gICAgfTtcblxuICAgIHRoYXQuZ2V0VG9wUmlnaHQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF90b3BSaWdodDtcbiAgICB9O1xuXG4gICAgdGhhdC5zZXRDYW52YXNTaXplID0gZnVuY3Rpb24oY2FudmFzU2l6ZSkge1xuICAgICAgICBfY2FudmFzU2l6ZS54ID0gY2FudmFzU2l6ZS54O1xuICAgICAgICBfY2FudmFzU2l6ZS55ID0gY2FudmFzU2l6ZS55O1xuICAgIH07XG5cbiAgICB0aGF0LmdldENhbnZhc1NpemUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jYW52YXNTaXplO1xuICAgIH07XG5cbiAgICB0aGF0LmdldEZyYW1lID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBmcmFtZTtcblxuICAgICAgICBpZiAoIWxvYWRlZCl7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBhdXNlZCkge1xuICAgICAgICAgICAgZnJhbWUgPSBpbWdBcnJheVtmcmFtZUlkeF07XG4gICAgICAgICAgICBpZiAoZnJhbWVJZHggPCAoc2l6ZSAtIDEpKSB7XG4gICAgICAgICAgICAgICAgZnJhbWVJZHgrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgZW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBwdWJsaXNoRXZlbnQoXCJlbmRlZFwiLCBbXSk7XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZyYW1lO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhhdDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IElucHV0U3RyZWFtO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2lucHV0L2lucHV0X3N0cmVhbS5qcyIsImltcG9ydCBJbWFnZVdyYXBwZXIgZnJvbSAnLi4vY29tbW9uL2ltYWdlX3dyYXBwZXInO1xuaW1wb3J0IHtcbiAgICBjYWxjdWxhdGVQYXRjaFNpemUsXG4gICAgb3RzdVRocmVzaG9sZCxcbiAgICBoc3YycmdiLFxuICAgIGNsdXN0ZXIsXG4gICAgdG9wR2VuZXJpYyxcbiAgICBpbWFnZVJlZixcbiAgICBoYWxmU2FtcGxlLFxuICAgIGNvbXB1dGVJbWFnZUFyZWFcbn0gZnJvbSAnLi4vY29tbW9uL2N2X3V0aWxzJztcbmltcG9ydCBBcnJheUhlbHBlciBmcm9tICcuLi9jb21tb24vYXJyYXlfaGVscGVyJztcbmltcG9ydCBJbWFnZURlYnVnIGZyb20gJy4uL2NvbW1vbi9pbWFnZV9kZWJ1Zyc7XG5pbXBvcnQgUmFzdGVyaXplciBmcm9tICcuL3Jhc3Rlcml6ZXInO1xuaW1wb3J0IFRyYWNlciBmcm9tICcuL3RyYWNlcic7XG5pbXBvcnQgc2tlbGV0b25pemVyIGZyb20gJy4vc2tlbGV0b25pemVyJztcbmNvbnN0IHZlYzIgPSB7XG4gICAgY2xvbmU6IHJlcXVpcmUoJ2dsLXZlYzIvY2xvbmUnKSxcbiAgICBkb3Q6ICByZXF1aXJlKCdnbC12ZWMyL2RvdCcpLFxuICAgIHNjYWxlOiByZXF1aXJlKCdnbC12ZWMyL3NjYWxlJyksXG4gICAgdHJhbnNmb3JtTWF0MjogcmVxdWlyZSgnZ2wtdmVjMi90cmFuc2Zvcm1NYXQyJylcbn07XG5jb25zdCBtYXQyID0ge1xuICAgIGNvcHk6IHJlcXVpcmUoJ2dsLW1hdDIvY29weScpLFxuICAgIGNyZWF0ZTogcmVxdWlyZSgnZ2wtbWF0Mi9jcmVhdGUnKSxcbiAgICBpbnZlcnQ6IHJlcXVpcmUoJ2dsLW1hdDIvaW52ZXJ0Jylcbn1cblxudmFyIF9jb25maWcsXG4gICAgX2N1cnJlbnRJbWFnZVdyYXBwZXIsXG4gICAgX3NrZWxJbWFnZVdyYXBwZXIsXG4gICAgX3N1YkltYWdlV3JhcHBlcixcbiAgICBfbGFiZWxJbWFnZVdyYXBwZXIsXG4gICAgX3BhdGNoR3JpZCxcbiAgICBfcGF0Y2hMYWJlbEdyaWQsXG4gICAgX2ltYWdlVG9QYXRjaEdyaWQsXG4gICAgX2JpbmFyeUltYWdlV3JhcHBlcixcbiAgICBfcGF0Y2hTaXplLFxuICAgIF9jYW52YXNDb250YWluZXIgPSB7XG4gICAgICAgIGN0eDoge1xuICAgICAgICAgICAgYmluYXJ5OiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIGRvbToge1xuICAgICAgICAgICAgYmluYXJ5OiBudWxsXG4gICAgICAgIH1cbiAgICB9LFxuICAgIF9udW1QYXRjaGVzID0ge3g6IDAsIHk6IDB9LFxuICAgIF9pbnB1dEltYWdlV3JhcHBlcixcbiAgICBfc2tlbGV0b25pemVyO1xuXG5mdW5jdGlvbiBpbml0QnVmZmVycygpIHtcbiAgICB2YXIgc2tlbGV0b25JbWFnZURhdGE7XG5cbiAgICBpZiAoX2NvbmZpZy5oYWxmU2FtcGxlKSB7XG4gICAgICAgIF9jdXJyZW50SW1hZ2VXcmFwcGVyID0gbmV3IEltYWdlV3JhcHBlcih7XG4gICAgICAgICAgICB4OiBfaW5wdXRJbWFnZVdyYXBwZXIuc2l6ZS54IC8gMiB8IDAsXG4gICAgICAgICAgICB5OiBfaW5wdXRJbWFnZVdyYXBwZXIuc2l6ZS55IC8gMiB8IDBcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX2N1cnJlbnRJbWFnZVdyYXBwZXIgPSBfaW5wdXRJbWFnZVdyYXBwZXI7XG4gICAgfVxuXG4gICAgX3BhdGNoU2l6ZSA9IGNhbGN1bGF0ZVBhdGNoU2l6ZShfY29uZmlnLnBhdGNoU2l6ZSwgX2N1cnJlbnRJbWFnZVdyYXBwZXIuc2l6ZSk7XG5cbiAgICBfbnVtUGF0Y2hlcy54ID0gX2N1cnJlbnRJbWFnZVdyYXBwZXIuc2l6ZS54IC8gX3BhdGNoU2l6ZS54IHwgMDtcbiAgICBfbnVtUGF0Y2hlcy55ID0gX2N1cnJlbnRJbWFnZVdyYXBwZXIuc2l6ZS55IC8gX3BhdGNoU2l6ZS55IHwgMDtcblxuICAgIF9iaW5hcnlJbWFnZVdyYXBwZXIgPSBuZXcgSW1hZ2VXcmFwcGVyKF9jdXJyZW50SW1hZ2VXcmFwcGVyLnNpemUsIHVuZGVmaW5lZCwgVWludDhBcnJheSwgZmFsc2UpO1xuXG4gICAgX2xhYmVsSW1hZ2VXcmFwcGVyID0gbmV3IEltYWdlV3JhcHBlcihfcGF0Y2hTaXplLCB1bmRlZmluZWQsIEFycmF5LCB0cnVlKTtcblxuICAgIHNrZWxldG9uSW1hZ2VEYXRhID0gbmV3IEFycmF5QnVmZmVyKDY0ICogMTAyNCk7XG4gICAgX3N1YkltYWdlV3JhcHBlciA9IG5ldyBJbWFnZVdyYXBwZXIoX3BhdGNoU2l6ZSxcbiAgICAgICAgbmV3IFVpbnQ4QXJyYXkoc2tlbGV0b25JbWFnZURhdGEsIDAsIF9wYXRjaFNpemUueCAqIF9wYXRjaFNpemUueSkpO1xuICAgIF9za2VsSW1hZ2VXcmFwcGVyID0gbmV3IEltYWdlV3JhcHBlcihfcGF0Y2hTaXplLFxuICAgICAgICBuZXcgVWludDhBcnJheShza2VsZXRvbkltYWdlRGF0YSwgX3BhdGNoU2l6ZS54ICogX3BhdGNoU2l6ZS55ICogMywgX3BhdGNoU2l6ZS54ICogX3BhdGNoU2l6ZS55KSxcbiAgICAgICAgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICBfc2tlbGV0b25pemVyID0gc2tlbGV0b25pemVyKCh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgPyB3aW5kb3cgOiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSA/IHNlbGYgOiBnbG9iYWwsIHtcbiAgICAgICAgc2l6ZTogX3BhdGNoU2l6ZS54XG4gICAgfSwgc2tlbGV0b25JbWFnZURhdGEpO1xuXG4gICAgX2ltYWdlVG9QYXRjaEdyaWQgPSBuZXcgSW1hZ2VXcmFwcGVyKHtcbiAgICAgICAgeDogKF9jdXJyZW50SW1hZ2VXcmFwcGVyLnNpemUueCAvIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZS54KSB8IDAsXG4gICAgICAgIHk6IChfY3VycmVudEltYWdlV3JhcHBlci5zaXplLnkgLyBfc3ViSW1hZ2VXcmFwcGVyLnNpemUueSkgfCAwXG4gICAgfSwgdW5kZWZpbmVkLCBBcnJheSwgdHJ1ZSk7XG4gICAgX3BhdGNoR3JpZCA9IG5ldyBJbWFnZVdyYXBwZXIoX2ltYWdlVG9QYXRjaEdyaWQuc2l6ZSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRydWUpO1xuICAgIF9wYXRjaExhYmVsR3JpZCA9IG5ldyBJbWFnZVdyYXBwZXIoX2ltYWdlVG9QYXRjaEdyaWQuc2l6ZSwgdW5kZWZpbmVkLCBJbnQzMkFycmF5LCB0cnVlKTtcbn1cblxuZnVuY3Rpb24gaW5pdENhbnZhcygpIHtcbiAgICBpZiAoX2NvbmZpZy51c2VXb3JrZXIgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIF9jYW52YXNDb250YWluZXIuZG9tLmJpbmFyeSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gICAgX2NhbnZhc0NvbnRhaW5lci5kb20uYmluYXJ5LmNsYXNzTmFtZSA9IFwiYmluYXJ5QnVmZmVyXCI7XG4gICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiBfY29uZmlnLmRlYnVnLnNob3dDYW52YXMgPT09IHRydWUpIHtcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNkZWJ1Z1wiKS5hcHBlbmRDaGlsZChfY2FudmFzQ29udGFpbmVyLmRvbS5iaW5hcnkpO1xuICAgIH1cbiAgICBfY2FudmFzQ29udGFpbmVyLmN0eC5iaW5hcnkgPSBfY2FudmFzQ29udGFpbmVyLmRvbS5iaW5hcnkuZ2V0Q29udGV4dChcIjJkXCIpO1xuICAgIF9jYW52YXNDb250YWluZXIuZG9tLmJpbmFyeS53aWR0aCA9IF9iaW5hcnlJbWFnZVdyYXBwZXIuc2l6ZS54O1xuICAgIF9jYW52YXNDb250YWluZXIuZG9tLmJpbmFyeS5oZWlnaHQgPSBfYmluYXJ5SW1hZ2VXcmFwcGVyLnNpemUueTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgYm91bmRpbmcgYm94IHdoaWNoIGVuY2xvc2VzIGFsbCB0aGUgZ2l2ZW4gcGF0Y2hlc1xuICogQHJldHVybnMge0FycmF5fSBUaGUgbWluaW1hbCBib3VuZGluZyBib3hcbiAqL1xuZnVuY3Rpb24gYm94RnJvbVBhdGNoZXMocGF0Y2hlcykge1xuICAgIHZhciBvdmVyQXZnLFxuICAgICAgICBpLFxuICAgICAgICBqLFxuICAgICAgICBwYXRjaCxcbiAgICAgICAgdHJhbnNNYXQsXG4gICAgICAgIG1pbnggPVxuICAgICAgICBfYmluYXJ5SW1hZ2VXcmFwcGVyLnNpemUueCxcbiAgICAgICAgbWlueSA9IF9iaW5hcnlJbWFnZVdyYXBwZXIuc2l6ZS55LFxuICAgICAgICBtYXh4ID0gLV9iaW5hcnlJbWFnZVdyYXBwZXIuc2l6ZS54LFxuICAgICAgICBtYXh5ID0gLV9iaW5hcnlJbWFnZVdyYXBwZXIuc2l6ZS55LFxuICAgICAgICBib3gsXG4gICAgICAgIHNjYWxlO1xuXG4gICAgLy8gZHJhdyBhbGwgcGF0Y2hlcyB3aGljaCBhcmUgdG8gYmUgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uXG4gICAgb3ZlckF2ZyA9IDA7XG4gICAgZm9yICggaSA9IDA7IGkgPCBwYXRjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHBhdGNoID0gcGF0Y2hlc1tpXTtcbiAgICAgICAgb3ZlckF2ZyArPSBwYXRjaC5yYWQ7XG4gICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgX2NvbmZpZy5kZWJ1Zy5zaG93UGF0Y2hlcykge1xuICAgICAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UmVjdChwYXRjaC5wb3MsIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZSwgX2NhbnZhc0NvbnRhaW5lci5jdHguYmluYXJ5LCB7Y29sb3I6IFwicmVkXCJ9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG92ZXJBdmcgLz0gcGF0Y2hlcy5sZW5ndGg7XG4gICAgb3ZlckF2ZyA9IChvdmVyQXZnICogMTgwIC8gTWF0aC5QSSArIDkwKSAlIDE4MCAtIDkwO1xuICAgIGlmIChvdmVyQXZnIDwgMCkge1xuICAgICAgICBvdmVyQXZnICs9IDE4MDtcbiAgICB9XG5cbiAgICBvdmVyQXZnID0gKDE4MCAtIG92ZXJBdmcpICogTWF0aC5QSSAvIDE4MDtcbiAgICB0cmFuc01hdCA9IG1hdDIuY29weShtYXQyLmNyZWF0ZSgpLCBbTWF0aC5jb3Mob3ZlckF2ZyksIE1hdGguc2luKG92ZXJBdmcpLCAtTWF0aC5zaW4ob3ZlckF2ZyksIE1hdGguY29zKG92ZXJBdmcpXSk7XG5cbiAgICAvLyBpdGVyYXRlIG92ZXIgcGF0Y2hlcyBhbmQgcm90YXRlIGJ5IGFuZ2xlXG4gICAgZm9yICggaSA9IDA7IGkgPCBwYXRjaGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHBhdGNoID0gcGF0Y2hlc1tpXTtcbiAgICAgICAgZm9yICggaiA9IDA7IGogPCA0OyBqKyspIHtcbiAgICAgICAgICAgIHZlYzIudHJhbnNmb3JtTWF0MihwYXRjaC5ib3hbal0sIHBhdGNoLmJveFtqXSwgdHJhbnNNYXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiBfY29uZmlnLmRlYnVnLmJveEZyb21QYXRjaGVzLnNob3dUcmFuc2Zvcm1lZCkge1xuICAgICAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UGF0aChwYXRjaC5ib3gsIHt4OiAwLCB5OiAxfSwgX2NhbnZhc0NvbnRhaW5lci5jdHguYmluYXJ5LCB7Y29sb3I6ICcjOTlmZjAwJywgbGluZVdpZHRoOiAyfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBmaW5kIGJvdW5kaW5nIGJveFxuICAgIGZvciAoIGkgPSAwOyBpIDwgcGF0Y2hlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBwYXRjaCA9IHBhdGNoZXNbaV07XG4gICAgICAgIGZvciAoIGogPSAwOyBqIDwgNDsgaisrKSB7XG4gICAgICAgICAgICBpZiAocGF0Y2guYm94W2pdWzBdIDwgbWlueCkge1xuICAgICAgICAgICAgICAgIG1pbnggPSBwYXRjaC5ib3hbal1bMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGF0Y2guYm94W2pdWzBdID4gbWF4eCkge1xuICAgICAgICAgICAgICAgIG1heHggPSBwYXRjaC5ib3hbal1bMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGF0Y2guYm94W2pdWzFdIDwgbWlueSkge1xuICAgICAgICAgICAgICAgIG1pbnkgPSBwYXRjaC5ib3hbal1bMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGF0Y2guYm94W2pdWzFdID4gbWF4eSkge1xuICAgICAgICAgICAgICAgIG1heHkgPSBwYXRjaC5ib3hbal1bMV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib3ggPSBbW21pbngsIG1pbnldLCBbbWF4eCwgbWlueV0sIFttYXh4LCBtYXh5XSwgW21pbngsIG1heHldXTtcblxuICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgX2NvbmZpZy5kZWJ1Zy5ib3hGcm9tUGF0Y2hlcy5zaG93VHJhbnNmb3JtZWRCb3gpIHtcbiAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UGF0aChib3gsIHt4OiAwLCB5OiAxfSwgX2NhbnZhc0NvbnRhaW5lci5jdHguYmluYXJ5LCB7Y29sb3I6ICcjZmYwMDAwJywgbGluZVdpZHRoOiAyfSk7XG4gICAgfVxuXG4gICAgc2NhbGUgPSBfY29uZmlnLmhhbGZTYW1wbGUgPyAyIDogMTtcbiAgICAvLyByZXZlcnNlIHJvdGF0aW9uO1xuICAgIHRyYW5zTWF0ID0gbWF0Mi5pbnZlcnQodHJhbnNNYXQsIHRyYW5zTWF0KTtcbiAgICBmb3IgKCBqID0gMDsgaiA8IDQ7IGorKykge1xuICAgICAgICB2ZWMyLnRyYW5zZm9ybU1hdDIoYm94W2pdLCBib3hbal0sIHRyYW5zTWF0KTtcbiAgICB9XG5cbiAgICBpZiAoRU5WLmRldmVsb3BtZW50ICYmIF9jb25maWcuZGVidWcuYm94RnJvbVBhdGNoZXMuc2hvd0JCKSB7XG4gICAgICAgIEltYWdlRGVidWcuZHJhd1BhdGgoYm94LCB7eDogMCwgeTogMX0sIF9jYW52YXNDb250YWluZXIuY3R4LmJpbmFyeSwge2NvbG9yOiAnI2ZmMDAwMCcsIGxpbmVXaWR0aDogMn0pO1xuICAgIH1cblxuICAgIGZvciAoIGogPSAwOyBqIDwgNDsgaisrKSB7XG4gICAgICAgIHZlYzIuc2NhbGUoYm94W2pdLCBib3hbal0sIHNjYWxlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYm94O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBiaW5hcnkgaW1hZ2Ugb2YgdGhlIGN1cnJlbnQgaW1hZ2VcbiAqL1xuZnVuY3Rpb24gYmluYXJpemVJbWFnZSgpIHtcbiAgICBvdHN1VGhyZXNob2xkKF9jdXJyZW50SW1hZ2VXcmFwcGVyLCBfYmluYXJ5SW1hZ2VXcmFwcGVyKTtcbiAgICBfYmluYXJ5SW1hZ2VXcmFwcGVyLnplcm9Cb3JkZXIoKTtcbiAgICBpZiAoRU5WLmRldmVsb3BtZW50ICYmIF9jb25maWcuZGVidWcuc2hvd0NhbnZhcykge1xuICAgICAgICBfYmluYXJ5SW1hZ2VXcmFwcGVyLnNob3coX2NhbnZhc0NvbnRhaW5lci5kb20uYmluYXJ5LCAyNTUpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBJdGVyYXRlIG92ZXIgdGhlIGVudGlyZSBpbWFnZVxuICogZXh0cmFjdCBwYXRjaGVzXG4gKi9cbmZ1bmN0aW9uIGZpbmRQYXRjaGVzKCkge1xuICAgIHZhciBpLFxuICAgICAgICBqLFxuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBtb21lbnRzLFxuICAgICAgICBwYXRjaGVzRm91bmQgPSBbXSxcbiAgICAgICAgcmFzdGVyaXplcixcbiAgICAgICAgcmFzdGVyUmVzdWx0LFxuICAgICAgICBwYXRjaDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgX251bVBhdGNoZXMueDsgaSsrKSB7XG4gICAgICAgIGZvciAoaiA9IDA7IGogPCBfbnVtUGF0Y2hlcy55OyBqKyspIHtcbiAgICAgICAgICAgIHggPSBfc3ViSW1hZ2VXcmFwcGVyLnNpemUueCAqIGk7XG4gICAgICAgICAgICB5ID0gX3N1YkltYWdlV3JhcHBlci5zaXplLnkgKiBqO1xuXG4gICAgICAgICAgICAvLyBzZXBlcmF0ZSBwYXJ0c1xuICAgICAgICAgICAgc2tlbGV0b25pemUoeCwgeSk7XG5cbiAgICAgICAgICAgIC8vIFJhc3Rlcml6ZSwgZmluZCBpbmRpdmlkdWFsIGJhcnNcbiAgICAgICAgICAgIF9za2VsSW1hZ2VXcmFwcGVyLnplcm9Cb3JkZXIoKTtcbiAgICAgICAgICAgIEFycmF5SGVscGVyLmluaXQoX2xhYmVsSW1hZ2VXcmFwcGVyLmRhdGEsIDApO1xuICAgICAgICAgICAgcmFzdGVyaXplciA9IFJhc3Rlcml6ZXIuY3JlYXRlKF9za2VsSW1hZ2VXcmFwcGVyLCBfbGFiZWxJbWFnZVdyYXBwZXIpO1xuICAgICAgICAgICAgcmFzdGVyUmVzdWx0ID0gcmFzdGVyaXplci5yYXN0ZXJpemUoMCk7XG5cbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgX2NvbmZpZy5kZWJ1Zy5zaG93TGFiZWxzKSB7XG4gICAgICAgICAgICAgICAgX2xhYmVsSW1hZ2VXcmFwcGVyLm92ZXJsYXkoX2NhbnZhc0NvbnRhaW5lci5kb20uYmluYXJ5LCBNYXRoLmZsb29yKDM2MCAvIHJhc3RlclJlc3VsdC5jb3VudCksXG4gICAgICAgICAgICAgICAgICAgIHt4OiB4LCB5OiB5fSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSBtb21lbnRzIGZyb20gdGhlIHNrZWxldG9uaXplZCBwYXRjaFxuICAgICAgICAgICAgbW9tZW50cyA9IF9sYWJlbEltYWdlV3JhcHBlci5tb21lbnRzKHJhc3RlclJlc3VsdC5jb3VudCk7XG5cbiAgICAgICAgICAgIC8vIGV4dHJhY3QgZWxpZ2libGUgcGF0Y2hlc1xuICAgICAgICAgICAgcGF0Y2hlc0ZvdW5kID0gcGF0Y2hlc0ZvdW5kLmNvbmNhdChkZXNjcmliZVBhdGNoKG1vbWVudHMsIFtpLCBqXSwgeCwgeSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiBfY29uZmlnLmRlYnVnLnNob3dGb3VuZFBhdGNoZXMpIHtcbiAgICAgICAgZm9yICggaSA9IDA7IGkgPCBwYXRjaGVzRm91bmQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBhdGNoID0gcGF0Y2hlc0ZvdW5kW2ldO1xuICAgICAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UmVjdChwYXRjaC5wb3MsIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZSwgX2NhbnZhc0NvbnRhaW5lci5jdHguYmluYXJ5LFxuICAgICAgICAgICAgICAgIHtjb2xvcjogXCIjOTlmZjAwXCIsIGxpbmVXaWR0aDogMn0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhdGNoZXNGb3VuZDtcbn1cblxuLyoqXG4gKiBGaW5kcyB0aG9zZSBjb25uZWN0ZWQgYXJlYXMgd2hpY2ggY29udGFpbiBhdCBsZWFzdCA2IHBhdGNoZXNcbiAqIGFuZCByZXR1cm5zIHRoZW0gb3JkZXJlZCBERVNDIGJ5IHRoZSBudW1iZXIgb2YgY29udGFpbmVkIHBhdGNoZXNcbiAqIEBwYXJhbSB7TnVtYmVyfSBtYXhMYWJlbFxuICovXG5mdW5jdGlvbiBmaW5kQmlnZ2VzdENvbm5lY3RlZEFyZWFzKG1heExhYmVsKXtcbiAgICB2YXIgaSxcbiAgICAgICAgc3VtLFxuICAgICAgICBsYWJlbEhpc3QgPSBbXSxcbiAgICAgICAgdG9wTGFiZWxzID0gW107XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IG1heExhYmVsOyBpKyspIHtcbiAgICAgICAgbGFiZWxIaXN0LnB1c2goMCk7XG4gICAgfVxuICAgIHN1bSA9IF9wYXRjaExhYmVsR3JpZC5kYXRhLmxlbmd0aDtcbiAgICB3aGlsZSAoc3VtLS0pIHtcbiAgICAgICAgaWYgKF9wYXRjaExhYmVsR3JpZC5kYXRhW3N1bV0gPiAwKSB7XG4gICAgICAgICAgICBsYWJlbEhpc3RbX3BhdGNoTGFiZWxHcmlkLmRhdGFbc3VtXSAtIDFdKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbEhpc3QgPSBsYWJlbEhpc3QubWFwKGZ1bmN0aW9uKHZhbCwgaWR4KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWw6IHZhbCxcbiAgICAgICAgICAgIGxhYmVsOiBpZHggKyAxXG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBsYWJlbEhpc3Quc29ydChmdW5jdGlvbihhLCBiKSB7XG4gICAgICAgIHJldHVybiBiLnZhbCAtIGEudmFsO1xuICAgIH0pO1xuXG4gICAgLy8gZXh0cmFjdCB0b3AgYXJlYXMgd2l0aCBhdCBsZWFzdCA2IHBhdGNoZXMgcHJlc2VudFxuICAgIHRvcExhYmVscyA9IGxhYmVsSGlzdC5maWx0ZXIoZnVuY3Rpb24oZWwpIHtcbiAgICAgICAgcmV0dXJuIGVsLnZhbCA+PSA1O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRvcExhYmVscztcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBmaW5kQm94ZXModG9wTGFiZWxzLCBtYXhMYWJlbCkge1xuICAgIHZhciBpLFxuICAgICAgICBqLFxuICAgICAgICBzdW0sXG4gICAgICAgIHBhdGNoZXMgPSBbXSxcbiAgICAgICAgcGF0Y2gsXG4gICAgICAgIGJveCxcbiAgICAgICAgYm94ZXMgPSBbXSxcbiAgICAgICAgaHN2ID0gWzAsIDEsIDFdLFxuICAgICAgICByZ2IgPSBbMCwgMCwgMF07XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IHRvcExhYmVscy5sZW5ndGg7IGkrKykge1xuICAgICAgICBzdW0gPSBfcGF0Y2hMYWJlbEdyaWQuZGF0YS5sZW5ndGg7XG4gICAgICAgIHBhdGNoZXMubGVuZ3RoID0gMDtcbiAgICAgICAgd2hpbGUgKHN1bS0tKSB7XG4gICAgICAgICAgICBpZiAoX3BhdGNoTGFiZWxHcmlkLmRhdGFbc3VtXSA9PT0gdG9wTGFiZWxzW2ldLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgcGF0Y2ggPSBfaW1hZ2VUb1BhdGNoR3JpZC5kYXRhW3N1bV07XG4gICAgICAgICAgICAgICAgcGF0Y2hlcy5wdXNoKHBhdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBib3ggPSBib3hGcm9tUGF0Y2hlcyhwYXRjaGVzKTtcbiAgICAgICAgaWYgKGJveCkge1xuICAgICAgICAgICAgYm94ZXMucHVzaChib3gpO1xuXG4gICAgICAgICAgICAvLyBkcmF3IHBhdGNoLWxhYmVscyBpZiByZXF1ZXN0ZWRcbiAgICAgICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQgJiYgX2NvbmZpZy5kZWJ1Zy5zaG93UmVtYWluaW5nUGF0Y2hMYWJlbHMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8IHBhdGNoZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0Y2ggPSBwYXRjaGVzW2pdO1xuICAgICAgICAgICAgICAgICAgICBoc3ZbMF0gPSAodG9wTGFiZWxzW2ldLmxhYmVsIC8gKG1heExhYmVsICsgMSkpICogMzYwO1xuICAgICAgICAgICAgICAgICAgICBoc3YycmdiKGhzdiwgcmdiKTtcbiAgICAgICAgICAgICAgICAgICAgSW1hZ2VEZWJ1Zy5kcmF3UmVjdChwYXRjaC5wb3MsIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZSwgX2NhbnZhc0NvbnRhaW5lci5jdHguYmluYXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAge2NvbG9yOiBcInJnYihcIiArIHJnYi5qb2luKFwiLFwiKSArIFwiKVwiLCBsaW5lV2lkdGg6IDJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJveGVzO1xufVxuXG4vKipcbiAqIEZpbmQgc2ltaWxhciBtb21lbnRzICh2aWEgY2x1c3RlcilcbiAqIEBwYXJhbSB7T2JqZWN0fSBtb21lbnRzXG4gKi9cbmZ1bmN0aW9uIHNpbWlsYXJNb21lbnRzKG1vbWVudHMpIHtcbiAgICB2YXIgY2x1c3RlcnMgPSBjbHVzdGVyKG1vbWVudHMsIDAuOTApO1xuICAgIHZhciB0b3BDbHVzdGVyID0gdG9wR2VuZXJpYyhjbHVzdGVycywgMSwgZnVuY3Rpb24oZSkge1xuICAgICAgICByZXR1cm4gZS5nZXRQb2ludHMoKS5sZW5ndGg7XG4gICAgfSk7XG4gICAgdmFyIHBvaW50cyA9IFtdLCByZXN1bHQgPSBbXTtcbiAgICBpZiAodG9wQ2x1c3Rlci5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcG9pbnRzID0gdG9wQ2x1c3RlclswXS5pdGVtLmdldFBvaW50cygpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gocG9pbnRzW2ldLnBvaW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBza2VsZXRvbml6ZSh4LCB5KSB7XG4gICAgX2JpbmFyeUltYWdlV3JhcHBlci5zdWJJbWFnZUFzQ29weShfc3ViSW1hZ2VXcmFwcGVyLCBpbWFnZVJlZih4LCB5KSk7XG4gICAgX3NrZWxldG9uaXplci5za2VsZXRvbml6ZSgpO1xuXG4gICAgLy8gU2hvdyBza2VsZXRvbiBpZiByZXF1ZXN0ZWRcbiAgICBpZiAoRU5WLmRldmVsb3BtZW50ICYmIF9jb25maWcuZGVidWcuc2hvd1NrZWxldG9uKSB7XG4gICAgICAgIF9za2VsSW1hZ2VXcmFwcGVyLm92ZXJsYXkoX2NhbnZhc0NvbnRhaW5lci5kb20uYmluYXJ5LCAzNjAsIGltYWdlUmVmKHgsIHkpKTtcbiAgICB9XG59XG5cbi8qKlxuICogRXh0cmFjdHMgYW5kIGRlc2NyaWJlcyB0aG9zZSBwYXRjaGVzIHdoaWNoIHNlZW0gdG8gY29udGFpbiBhIGJhcmNvZGUgcGF0dGVyblxuICogQHBhcmFtIHtBcnJheX0gbW9tZW50c1xuICogQHBhcmFtIHtPYmplY3R9IHBhdGNoUG9zLFxuICogQHBhcmFtIHtOdW1iZXJ9IHhcbiAqIEBwYXJhbSB7TnVtYmVyfSB5XG4gKiBAcmV0dXJucyB7QXJyYXl9IGxpc3Qgb2YgcGF0Y2hlc1xuICovXG5mdW5jdGlvbiBkZXNjcmliZVBhdGNoKG1vbWVudHMsIHBhdGNoUG9zLCB4LCB5KSB7XG4gICAgdmFyIGssXG4gICAgICAgIGF2ZyxcbiAgICAgICAgZWxpZ2libGVNb21lbnRzID0gW10sXG4gICAgICAgIG1hdGNoaW5nTW9tZW50cyxcbiAgICAgICAgcGF0Y2gsXG4gICAgICAgIHBhdGNoZXNGb3VuZCA9IFtdLFxuICAgICAgICBtaW5Db21wb25lbnRXZWlnaHQgPSBNYXRoLmNlaWwoX3BhdGNoU2l6ZS54IC8gMyk7XG5cbiAgICBpZiAobW9tZW50cy5sZW5ndGggPj0gMikge1xuICAgICAgICAvLyBvbmx5IGNvbGxlY3QgbW9tZW50cyB3aGljaCdzIGFyZWEgY292ZXJzIGF0IGxlYXN0IG1pbkNvbXBvbmVudFdlaWdodCBwaXhlbHMuXG4gICAgICAgIGZvciAoIGsgPSAwOyBrIDwgbW9tZW50cy5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgaWYgKG1vbWVudHNba10ubTAwID4gbWluQ29tcG9uZW50V2VpZ2h0KSB7XG4gICAgICAgICAgICAgICAgZWxpZ2libGVNb21lbnRzLnB1c2gobW9tZW50c1trXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBhdCBsZWFzdCAyIG1vbWVudHMgYXJlIGZvdW5kIHdoaWNoIGhhdmUgYXQgbGVhc3QgbWluQ29tcG9uZW50V2VpZ2h0cyBjb3ZlcmVkXG4gICAgICAgIGlmIChlbGlnaWJsZU1vbWVudHMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICAgIG1hdGNoaW5nTW9tZW50cyA9IHNpbWlsYXJNb21lbnRzKGVsaWdpYmxlTW9tZW50cyk7XG4gICAgICAgICAgICBhdmcgPSAwO1xuICAgICAgICAgICAgLy8gZGV0ZXJtaW5lIHRoZSBzaW1pbGFyaXR5IG9mIHRoZSBtb21lbnRzXG4gICAgICAgICAgICBmb3IgKCBrID0gMDsgayA8IG1hdGNoaW5nTW9tZW50cy5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgICAgIGF2ZyArPSBtYXRjaGluZ01vbWVudHNba10ucmFkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBPbmx5IHR3byBvZiB0aGUgbW9tZW50cyBhcmUgYWxsb3dlZCBub3QgdG8gZml0IGludG8gdGhlIGVxdWF0aW9uXG4gICAgICAgICAgICAvLyBhZGQgdGhlIHBhdGNoIHRvIHRoZSBzZXRcbiAgICAgICAgICAgIGlmIChtYXRjaGluZ01vbWVudHMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICAmJiBtYXRjaGluZ01vbWVudHMubGVuZ3RoID49IChlbGlnaWJsZU1vbWVudHMubGVuZ3RoIC8gNCkgKiAzXG4gICAgICAgICAgICAgICAgICAgICYmIG1hdGNoaW5nTW9tZW50cy5sZW5ndGggPiBtb21lbnRzLmxlbmd0aCAvIDQpIHtcbiAgICAgICAgICAgICAgICBhdmcgLz0gbWF0Y2hpbmdNb21lbnRzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBwYXRjaCA9IHtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IHBhdGNoUG9zWzFdICogX251bVBhdGNoZXMueCArIHBhdGNoUG9zWzBdLFxuICAgICAgICAgICAgICAgICAgICBwb3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IHgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiB5XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGJveDogW1xuICAgICAgICAgICAgICAgICAgICAgICAgdmVjMi5jbG9uZShbeCwgeV0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVjMi5jbG9uZShbeCArIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZS54LCB5XSksXG4gICAgICAgICAgICAgICAgICAgICAgICB2ZWMyLmNsb25lKFt4ICsgX3N1YkltYWdlV3JhcHBlci5zaXplLngsIHkgKyBfc3ViSW1hZ2VXcmFwcGVyLnNpemUueV0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVjMi5jbG9uZShbeCwgeSArIF9zdWJJbWFnZVdyYXBwZXIuc2l6ZS55XSlcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgbW9tZW50czogbWF0Y2hpbmdNb21lbnRzLFxuICAgICAgICAgICAgICAgICAgICByYWQ6IGF2ZyxcbiAgICAgICAgICAgICAgICAgICAgdmVjOiB2ZWMyLmNsb25lKFtNYXRoLmNvcyhhdmcpLCBNYXRoLnNpbihhdmcpXSlcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHBhdGNoZXNGb3VuZC5wdXNoKHBhdGNoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGF0Y2hlc0ZvdW5kO1xufVxuXG4vKipcbiAqIGZpbmRzIHBhdGNoZXMgd2hpY2ggYXJlIGNvbm5lY3RlZCBhbmQgc2hhcmUgdGhlIHNhbWUgb3JpZW50YXRpb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXRjaGVzRm91bmRcbiAqL1xuZnVuY3Rpb24gcmFzdGVyaXplQW5ndWxhclNpbWlsYXJpdHkocGF0Y2hlc0ZvdW5kKSB7XG4gICAgdmFyIGxhYmVsID0gMCxcbiAgICAgICAgdGhyZXNob2xkID0gMC45NSxcbiAgICAgICAgY3VycklkeCA9IDAsXG4gICAgICAgIGosXG4gICAgICAgIHBhdGNoLFxuICAgICAgICBoc3YgPSBbMCwgMSwgMV0sXG4gICAgICAgIHJnYiA9IFswLCAwLCAwXTtcblxuICAgIGZ1bmN0aW9uIG5vdFlldFByb2Nlc3NlZCgpIHtcbiAgICAgICAgdmFyIGk7XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgX3BhdGNoTGFiZWxHcmlkLmRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChfcGF0Y2hMYWJlbEdyaWQuZGF0YVtpXSA9PT0gMCAmJiBfcGF0Y2hHcmlkLmRhdGFbaV0gPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3BhdGNoTGFiZWxHcmlkLmxlbmd0aDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFjZShjdXJyZW50SWR4KSB7XG4gICAgICAgIHZhciB4LFxuICAgICAgICAgICAgeSxcbiAgICAgICAgICAgIGN1cnJlbnRQYXRjaCxcbiAgICAgICAgICAgIGlkeCxcbiAgICAgICAgICAgIGRpcixcbiAgICAgICAgICAgIGN1cnJlbnQgPSB7XG4gICAgICAgICAgICAgICAgeDogY3VycmVudElkeCAlIF9wYXRjaExhYmVsR3JpZC5zaXplLngsXG4gICAgICAgICAgICAgICAgeTogKGN1cnJlbnRJZHggLyBfcGF0Y2hMYWJlbEdyaWQuc2l6ZS54KSB8IDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaW1pbGFyaXR5O1xuXG4gICAgICAgIGlmIChjdXJyZW50SWR4IDwgX3BhdGNoTGFiZWxHcmlkLmRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICBjdXJyZW50UGF0Y2ggPSBfaW1hZ2VUb1BhdGNoR3JpZC5kYXRhW2N1cnJlbnRJZHhdO1xuICAgICAgICAgICAgLy8gYXNzaWduIGxhYmVsXG4gICAgICAgICAgICBfcGF0Y2hMYWJlbEdyaWQuZGF0YVtjdXJyZW50SWR4XSA9IGxhYmVsO1xuICAgICAgICAgICAgZm9yICggZGlyID0gMDsgZGlyIDwgVHJhY2VyLnNlYXJjaERpcmVjdGlvbnMubGVuZ3RoOyBkaXIrKykge1xuICAgICAgICAgICAgICAgIHkgPSBjdXJyZW50LnkgKyBUcmFjZXIuc2VhcmNoRGlyZWN0aW9uc1tkaXJdWzBdO1xuICAgICAgICAgICAgICAgIHggPSBjdXJyZW50LnggKyBUcmFjZXIuc2VhcmNoRGlyZWN0aW9uc1tkaXJdWzFdO1xuICAgICAgICAgICAgICAgIGlkeCA9IHkgKiBfcGF0Y2hMYWJlbEdyaWQuc2l6ZS54ICsgeDtcblxuICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIGlmIHBhdGNoIGVtcHR5XG4gICAgICAgICAgICAgICAgaWYgKF9wYXRjaEdyaWQuZGF0YVtpZHhdID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIF9wYXRjaExhYmVsR3JpZC5kYXRhW2lkeF0gPSBOdW1iZXIuTUFYX1ZBTFVFO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoX3BhdGNoTGFiZWxHcmlkLmRhdGFbaWR4XSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBzaW1pbGFyaXR5ID0gTWF0aC5hYnModmVjMi5kb3QoX2ltYWdlVG9QYXRjaEdyaWQuZGF0YVtpZHhdLnZlYywgY3VycmVudFBhdGNoLnZlYykpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2ltaWxhcml0eSA+IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2UoaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHByZXBhcmUgZm9yIGZpbmRpbmcgdGhlIHJpZ2h0IHBhdGNoZXNcbiAgICBBcnJheUhlbHBlci5pbml0KF9wYXRjaEdyaWQuZGF0YSwgMCk7XG4gICAgQXJyYXlIZWxwZXIuaW5pdChfcGF0Y2hMYWJlbEdyaWQuZGF0YSwgMCk7XG4gICAgQXJyYXlIZWxwZXIuaW5pdChfaW1hZ2VUb1BhdGNoR3JpZC5kYXRhLCBudWxsKTtcblxuICAgIGZvciAoIGogPSAwOyBqIDwgcGF0Y2hlc0ZvdW5kLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHBhdGNoID0gcGF0Y2hlc0ZvdW5kW2pdO1xuICAgICAgICBfaW1hZ2VUb1BhdGNoR3JpZC5kYXRhW3BhdGNoLmluZGV4XSA9IHBhdGNoO1xuICAgICAgICBfcGF0Y2hHcmlkLmRhdGFbcGF0Y2guaW5kZXhdID0gMTtcbiAgICB9XG5cbiAgICAvLyByYXN0ZXJpemUgdGhlIHBhdGNoZXMgZm91bmQgdG8gZGV0ZXJtaW5lIGFyZWFcbiAgICBfcGF0Y2hHcmlkLnplcm9Cb3JkZXIoKTtcblxuICAgIHdoaWxlICgoIGN1cnJJZHggPSBub3RZZXRQcm9jZXNzZWQoKSkgPCBfcGF0Y2hMYWJlbEdyaWQuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgbGFiZWwrKztcbiAgICAgICAgdHJhY2UoY3VycklkeCk7XG4gICAgfVxuXG4gICAgLy8gZHJhdyBwYXRjaC1sYWJlbHMgaWYgcmVxdWVzdGVkXG4gICAgaWYgKEVOVi5kZXZlbG9wbWVudCAmJiBfY29uZmlnLmRlYnVnLnNob3dQYXRjaExhYmVscykge1xuICAgICAgICBmb3IgKCBqID0gMDsgaiA8IF9wYXRjaExhYmVsR3JpZC5kYXRhLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBpZiAoX3BhdGNoTGFiZWxHcmlkLmRhdGFbal0gPiAwICYmIF9wYXRjaExhYmVsR3JpZC5kYXRhW2pdIDw9IGxhYmVsKSB7XG4gICAgICAgICAgICAgICAgcGF0Y2ggPSBfaW1hZ2VUb1BhdGNoR3JpZC5kYXRhW2pdO1xuICAgICAgICAgICAgICAgIGhzdlswXSA9IChfcGF0Y2hMYWJlbEdyaWQuZGF0YVtqXSAvIChsYWJlbCArIDEpKSAqIDM2MDtcbiAgICAgICAgICAgICAgICBoc3YycmdiKGhzdiwgcmdiKTtcbiAgICAgICAgICAgICAgICBJbWFnZURlYnVnLmRyYXdSZWN0KHBhdGNoLnBvcywgX3N1YkltYWdlV3JhcHBlci5zaXplLCBfY2FudmFzQ29udGFpbmVyLmN0eC5iaW5hcnksXG4gICAgICAgICAgICAgICAgICAgIHtjb2xvcjogXCJyZ2IoXCIgKyByZ2Iuam9pbihcIixcIikgKyBcIilcIiwgbGluZVdpZHRoOiAyfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGFiZWw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBpbml0OiBmdW5jdGlvbihpbnB1dEltYWdlV3JhcHBlciwgY29uZmlnKSB7XG4gICAgICAgIF9jb25maWcgPSBjb25maWc7XG4gICAgICAgIF9pbnB1dEltYWdlV3JhcHBlciA9IGlucHV0SW1hZ2VXcmFwcGVyO1xuXG4gICAgICAgIGluaXRCdWZmZXJzKCk7XG4gICAgICAgIGluaXRDYW52YXMoKTtcbiAgICB9LFxuXG4gICAgbG9jYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHBhdGNoZXNGb3VuZCxcbiAgICAgICAgICAgIHRvcExhYmVscyxcbiAgICAgICAgICAgIGJveGVzO1xuXG4gICAgICAgIGlmIChfY29uZmlnLmhhbGZTYW1wbGUpIHtcbiAgICAgICAgICAgIGhhbGZTYW1wbGUoX2lucHV0SW1hZ2VXcmFwcGVyLCBfY3VycmVudEltYWdlV3JhcHBlcik7XG4gICAgICAgIH1cblxuICAgICAgICBiaW5hcml6ZUltYWdlKCk7XG4gICAgICAgIHBhdGNoZXNGb3VuZCA9IGZpbmRQYXRjaGVzKCk7XG4gICAgICAgIC8vIHJldHVybiB1bmxlc3MgNSUgb3IgbW9yZSBwYXRjaGVzIGFyZSBmb3VuZFxuICAgICAgICBpZiAocGF0Y2hlc0ZvdW5kLmxlbmd0aCA8IF9udW1QYXRjaGVzLnggKiBfbnVtUGF0Y2hlcy55ICogMC4wNSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyByYXN0ZXJyaXplIGFyZWEgYnkgY29tcGFyaW5nIGFuZ3VsYXIgc2ltaWxhcml0eTtcbiAgICAgICAgdmFyIG1heExhYmVsID0gcmFzdGVyaXplQW5ndWxhclNpbWlsYXJpdHkocGF0Y2hlc0ZvdW5kKTtcbiAgICAgICAgaWYgKG1heExhYmVsIDwgMSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZWFyY2ggZm9yIGFyZWEgd2l0aCB0aGUgbW9zdCBwYXRjaGVzIChiaWdnZXN0IGNvbm5lY3RlZCBhcmVhKVxuICAgICAgICB0b3BMYWJlbHMgPSBmaW5kQmlnZ2VzdENvbm5lY3RlZEFyZWFzKG1heExhYmVsKTtcbiAgICAgICAgaWYgKHRvcExhYmVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgYm94ZXMgPSBmaW5kQm94ZXModG9wTGFiZWxzLCBtYXhMYWJlbCk7XG4gICAgICAgIHJldHVybiBib3hlcztcbiAgICB9LFxuXG4gICAgY2hlY2tJbWFnZUNvbnN0cmFpbnRzOiBmdW5jdGlvbihpbnB1dFN0cmVhbSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBwYXRjaFNpemUsXG4gICAgICAgICAgICB3aWR0aCA9IGlucHV0U3RyZWFtLmdldFdpZHRoKCksXG4gICAgICAgICAgICBoZWlnaHQgPSBpbnB1dFN0cmVhbS5nZXRIZWlnaHQoKSxcbiAgICAgICAgICAgIGhhbGZTYW1wbGUgPSBjb25maWcuaGFsZlNhbXBsZSA/IDAuNSA6IDEsXG4gICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgYXJlYTtcblxuICAgICAgICAvLyBjYWxjdWxhdGUgd2lkdGggYW5kIGhlaWdodCBiYXNlZCBvbiBhcmVhXG4gICAgICAgIGlmIChpbnB1dFN0cmVhbS5nZXRDb25maWcoKS5hcmVhKSB7XG4gICAgICAgICAgICBhcmVhID0gY29tcHV0ZUltYWdlQXJlYSh3aWR0aCwgaGVpZ2h0LCBpbnB1dFN0cmVhbS5nZXRDb25maWcoKS5hcmVhKTtcbiAgICAgICAgICAgIGlucHV0U3RyZWFtLnNldFRvcFJpZ2h0KHt4OiBhcmVhLnN4LCB5OiBhcmVhLnN5fSk7XG4gICAgICAgICAgICBpbnB1dFN0cmVhbS5zZXRDYW52YXNTaXplKHt4OiB3aWR0aCwgeTogaGVpZ2h0fSk7XG4gICAgICAgICAgICB3aWR0aCA9IGFyZWEuc3c7XG4gICAgICAgICAgICBoZWlnaHQgPSBhcmVhLnNoO1xuICAgICAgICB9XG5cbiAgICAgICAgc2l6ZSA9IHtcbiAgICAgICAgICAgIHg6IE1hdGguZmxvb3Iod2lkdGggKiBoYWxmU2FtcGxlKSxcbiAgICAgICAgICAgIHk6IE1hdGguZmxvb3IoaGVpZ2h0ICogaGFsZlNhbXBsZSlcbiAgICAgICAgfTtcblxuICAgICAgICBwYXRjaFNpemUgPSBjYWxjdWxhdGVQYXRjaFNpemUoY29uZmlnLnBhdGNoU2l6ZSwgc2l6ZSk7XG4gICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUGF0Y2gtU2l6ZTogXCIgKyBKU09OLnN0cmluZ2lmeShwYXRjaFNpemUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0U3RyZWFtLnNldFdpZHRoKE1hdGguZmxvb3IoTWF0aC5mbG9vcihzaXplLnggLyBwYXRjaFNpemUueCkgKiAoMSAvIGhhbGZTYW1wbGUpICogcGF0Y2hTaXplLngpKTtcbiAgICAgICAgaW5wdXRTdHJlYW0uc2V0SGVpZ2h0KE1hdGguZmxvb3IoTWF0aC5mbG9vcihzaXplLnkgLyBwYXRjaFNpemUueSkgKiAoMSAvIGhhbGZTYW1wbGUpICogcGF0Y2hTaXplLnkpKTtcblxuICAgICAgICBpZiAoKGlucHV0U3RyZWFtLmdldFdpZHRoKCkgJSBwYXRjaFNpemUueCkgPT09IDAgJiYgKGlucHV0U3RyZWFtLmdldEhlaWdodCgpICUgcGF0Y2hTaXplLnkpID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkltYWdlIGRpbWVuc2lvbnMgZG8gbm90IGNvbXBseSB3aXRoIHRoZSBjdXJyZW50IHNldHRpbmdzOiBXaWR0aCAoXCIgK1xuICAgICAgICAgICAgd2lkdGggKyBcIiApYW5kIGhlaWdodCAoXCIgKyBoZWlnaHQgK1xuICAgICAgICAgICAgXCIpIG11c3QgYSBtdWx0aXBsZSBvZiBcIiArIHBhdGNoU2l6ZS54KTtcbiAgICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2xvY2F0b3IvYmFyY29kZV9sb2NhdG9yLmpzIiwiaW1wb3J0IFRyYWNlciBmcm9tICcuL3RyYWNlcic7XG5cbi8qKlxuICogaHR0cDovL3d3dy5jb2RlcHJvamVjdC5jb20vVGlwcy80MDcxNzIvQ29ubmVjdGVkLUNvbXBvbmVudC1MYWJlbGluZy1hbmQtVmVjdG9yaXphdGlvblxuICovXG52YXIgUmFzdGVyaXplciA9IHtcbiAgICBjcmVhdGVDb250b3VyMkQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGlyOiBudWxsLFxuICAgICAgICAgICAgaW5kZXg6IG51bGwsXG4gICAgICAgICAgICBmaXJzdFZlcnRleDogbnVsbCxcbiAgICAgICAgICAgIGluc2lkZUNvbnRvdXJzOiBudWxsLFxuICAgICAgICAgICAgbmV4dHBlZXI6IG51bGwsXG4gICAgICAgICAgICBwcmV2cGVlcjogbnVsbFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgQ09OVE9VUl9ESVI6IHtcbiAgICAgICAgQ1dfRElSOiAwLFxuICAgICAgICBDQ1dfRElSOiAxLFxuICAgICAgICBVTktOT1dOX0RJUjogMlxuICAgIH0sXG4gICAgRElSOiB7XG4gICAgICAgIE9VVFNJREVfRURHRTogLTMyNzY3LFxuICAgICAgICBJTlNJREVfRURHRTogLTMyNzY2XG4gICAgfSxcbiAgICBjcmVhdGU6IGZ1bmN0aW9uKGltYWdlV3JhcHBlciwgbGFiZWxXcmFwcGVyKSB7XG4gICAgICAgIHZhciBpbWFnZURhdGEgPSBpbWFnZVdyYXBwZXIuZGF0YSxcbiAgICAgICAgICAgIGxhYmVsRGF0YSA9IGxhYmVsV3JhcHBlci5kYXRhLFxuICAgICAgICAgICAgd2lkdGggPSBpbWFnZVdyYXBwZXIuc2l6ZS54LFxuICAgICAgICAgICAgaGVpZ2h0ID0gaW1hZ2VXcmFwcGVyLnNpemUueSxcbiAgICAgICAgICAgIHRyYWNlciA9IFRyYWNlci5jcmVhdGUoaW1hZ2VXcmFwcGVyLCBsYWJlbFdyYXBwZXIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByYXN0ZXJpemU6IGZ1bmN0aW9uKGRlcHRobGFiZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgY29sb3IsXG4gICAgICAgICAgICAgICAgICAgIGJjLFxuICAgICAgICAgICAgICAgICAgICBsYyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgY3gsXG4gICAgICAgICAgICAgICAgICAgIGN5LFxuICAgICAgICAgICAgICAgICAgICBjb2xvck1hcCA9IFtdLFxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXgsXG4gICAgICAgICAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAgICAgICAgIGNjLFxuICAgICAgICAgICAgICAgICAgICBzYyxcbiAgICAgICAgICAgICAgICAgICAgcG9zLFxuICAgICAgICAgICAgICAgICAgICBjb25uZWN0ZWRDb3VudCA9IDAsXG4gICAgICAgICAgICAgICAgICAgIGk7XG5cbiAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IDQwMDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yTWFwW2ldID0gMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb2xvck1hcFswXSA9IGltYWdlRGF0YVswXTtcbiAgICAgICAgICAgICAgICBjYyA9IG51bGw7XG4gICAgICAgICAgICAgICAgZm9yICggY3kgPSAxOyBjeSA8IGhlaWdodCAtIDE7IGN5KyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxpbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGJjID0gY29sb3JNYXBbMF07XG4gICAgICAgICAgICAgICAgICAgIGZvciAoIGN4ID0gMTsgY3ggPCB3aWR0aCAtIDE7IGN4KyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGN5ICogd2lkdGggKyBjeDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYWJlbERhdGFbcG9zXSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gaW1hZ2VEYXRhW3Bvc107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbG9yICE9PSBiYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFiZWxpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGMgPSBjb25uZWN0ZWRDb3VudCArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvck1hcFtsY10gPSBjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJjID0gY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXggPSB0cmFjZXIuY29udG91clRyYWNpbmcoY3ksIGN4LCBsYywgY29sb3IsIFJhc3Rlcml6ZXIuRElSLk9VVFNJREVfRURHRSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVydGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGVkQ291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbGluZGV4ID0gbGM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCA9IFJhc3Rlcml6ZXIuY3JlYXRlQ29udG91cjJEKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5kaXIgPSBSYXN0ZXJpemVyLkNPTlRPVVJfRElSLkNXX0RJUjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmluZGV4ID0gbGFiZWxpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmZpcnN0VmVydGV4ID0gdmVydGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAubmV4dHBlZXIgPSBjYztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmluc2lkZUNvbnRvdXJzID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2MgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MucHJldnBlZXIgPSBwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYyA9IHA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXggPSB0cmFjZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29udG91clRyYWNpbmcoY3ksIGN4LCBSYXN0ZXJpemVyLkRJUi5JTlNJREVfRURHRSwgY29sb3IsIGxhYmVsaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcnRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBSYXN0ZXJpemVyLmNyZWF0ZUNvbnRvdXIyRCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAuZmlyc3RWZXJ0ZXggPSB2ZXJ0ZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5pbnNpZGVDb250b3VycyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlcHRobGFiZWwgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5kaXIgPSBSYXN0ZXJpemVyLkNPTlRPVVJfRElSLkNDV19ESVI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5kaXIgPSBSYXN0ZXJpemVyLkNPTlRPVVJfRElSLkNXX0RJUjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5pbmRleCA9IGRlcHRobGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2MgPSBjYztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKHNjICE9PSBudWxsKSAmJiBzYy5pbmRleCAhPT0gbGFiZWxpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYyA9IHNjLm5leHRwZWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2MgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5uZXh0cGVlciA9IHNjLmluc2lkZUNvbnRvdXJzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2MuaW5zaWRlQ29udG91cnMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjLmluc2lkZUNvbnRvdXJzLnByZXZwZWVyID0gcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYy5pbnNpZGVDb250b3VycyA9IHA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxEYXRhW3Bvc10gPSBsYWJlbGluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGFiZWxEYXRhW3Bvc10gPT09IFJhc3Rlcml6ZXIuRElSLk9VVFNJREVfRURHRVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBsYWJlbERhdGFbcG9zXSA9PT0gUmFzdGVyaXplci5ESVIuSU5TSURFX0VER0UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFiZWxEYXRhW3Bvc10gPT09IFJhc3Rlcml6ZXIuRElSLklOU0lERV9FREdFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJjID0gaW1hZ2VEYXRhW3Bvc107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmMgPSBjb2xvck1hcFswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsaW5kZXggPSBsYWJlbERhdGFbcG9zXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYyA9IGNvbG9yTWFwW2xhYmVsaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNjID0gY2M7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHNjICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjLmluZGV4ID0gZGVwdGhsYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgc2MgPSBzYy5uZXh0cGVlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgY2M6IGNjLFxuICAgICAgICAgICAgICAgICAgICBjb3VudDogY29ubmVjdGVkQ291bnRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlYnVnOiB7XG4gICAgICAgICAgICAgICAgZHJhd0NvbnRvdXI6IGZ1bmN0aW9uKGNhbnZhcywgZmlyc3RDb250b3VyKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHEgPSBmaXJzdENvbnRvdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpcSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHEsXG4gICAgICAgICAgICAgICAgICAgICAgICBwO1xuXG4gICAgICAgICAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IFwicmVkXCI7XG4gICAgICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBcInJlZFwiO1xuICAgICAgICAgICAgICAgICAgICBjdHgubGluZVdpZHRoID0gMTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocHEgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlxID0gcHEuaW5zaWRlQ29udG91cnM7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpcSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAocHEgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpcSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHEgPSBpcTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcSA9IGlxLm5leHRwZWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxID0gcHE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHEgPSBwcS5uZXh0cGVlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHEgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXEgPSBwcS5pbnNpZGVDb250b3VycztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHEuZGlyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFJhc3Rlcml6ZXIuQ09OVE9VUl9ESVIuQ1dfRElSOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IFwicmVkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFJhc3Rlcml6ZXIuQ09OVE9VUl9ESVIuQ0NXX0RJUjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBcImJsdWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUmFzdGVyaXplci5DT05UT1VSX0RJUi5VTktOT1dOX0RJUjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBcImdyZWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBxLmZpcnN0VmVydGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4Lm1vdmVUbyhwLngsIHAueSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcCA9IHAubmV4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKHAueCwgcC55KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKHAgIT09IHEuZmlyc3RWZXJ0ZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4LnN0cm9rZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJhc3Rlcml6ZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbG9jYXRvci9yYXN0ZXJpemVyLmpzIiwiLyogQHByZXNlcnZlIEFTTSBCRUdJTiAqL1xuLyogZXNsaW50LWRpc2FibGUgZXFlcWVxKi9cbmZ1bmN0aW9uIFNrZWxldG9uaXplcihzdGRsaWIsIGZvcmVpZ24sIGJ1ZmZlcikge1xuICAgIFwidXNlIGFzbVwiO1xuXG4gICAgdmFyIGltYWdlcyA9IG5ldyBzdGRsaWIuVWludDhBcnJheShidWZmZXIpLFxuICAgICAgICBzaXplID0gZm9yZWlnbi5zaXplIHwgMCxcbiAgICAgICAgaW11bCA9IHN0ZGxpYi5NYXRoLmltdWw7XG5cbiAgICBmdW5jdGlvbiBlcm9kZShpbkltYWdlUHRyLCBvdXRJbWFnZVB0cikge1xuICAgICAgICBpbkltYWdlUHRyID0gaW5JbWFnZVB0ciB8IDA7XG4gICAgICAgIG91dEltYWdlUHRyID0gb3V0SW1hZ2VQdHIgfCAwO1xuXG4gICAgICAgIHZhciB2ID0gMCxcbiAgICAgICAgICAgIHUgPSAwLFxuICAgICAgICAgICAgc3VtID0gMCxcbiAgICAgICAgICAgIHlTdGFydDEgPSAwLFxuICAgICAgICAgICAgeVN0YXJ0MiA9IDAsXG4gICAgICAgICAgICB4U3RhcnQxID0gMCxcbiAgICAgICAgICAgIHhTdGFydDIgPSAwLFxuICAgICAgICAgICAgb2Zmc2V0ID0gMDtcblxuICAgICAgICBmb3IgKCB2ID0gMTsgKHYgfCAwKSA8ICgoc2l6ZSAtIDEpIHwgMCk7IHYgPSAodiArIDEpIHwgMCkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gKG9mZnNldCArIHNpemUpIHwgMDtcbiAgICAgICAgICAgIGZvciAoIHUgPSAxOyAodSB8IDApIDwgKChzaXplIC0gMSkgfCAwKTsgdSA9ICh1ICsgMSkgfCAwKSB7XG4gICAgICAgICAgICAgICAgeVN0YXJ0MSA9IChvZmZzZXQgLSBzaXplKSB8IDA7XG4gICAgICAgICAgICAgICAgeVN0YXJ0MiA9IChvZmZzZXQgKyBzaXplKSB8IDA7XG4gICAgICAgICAgICAgICAgeFN0YXJ0MSA9ICh1IC0gMSkgfCAwO1xuICAgICAgICAgICAgICAgIHhTdGFydDIgPSAodSArIDEpIHwgMDtcbiAgICAgICAgICAgICAgICBzdW0gPSAoKGltYWdlc1soaW5JbWFnZVB0ciArIHlTdGFydDEgKyB4U3RhcnQxKSB8IDBdIHwgMClcbiAgICAgICAgICAgICAgICAgICAgKyAoaW1hZ2VzWyhpbkltYWdlUHRyICsgeVN0YXJ0MSArIHhTdGFydDIpIHwgMF0gfCAwKVxuICAgICAgICAgICAgICAgICAgICArIChpbWFnZXNbKGluSW1hZ2VQdHIgKyBvZmZzZXQgKyB1KSB8IDBdIHwgMClcbiAgICAgICAgICAgICAgICAgICAgKyAoaW1hZ2VzWyhpbkltYWdlUHRyICsgeVN0YXJ0MiArIHhTdGFydDEpIHwgMF0gfCAwKVxuICAgICAgICAgICAgICAgICAgICArIChpbWFnZXNbKGluSW1hZ2VQdHIgKyB5U3RhcnQyICsgeFN0YXJ0MikgfCAwXSB8IDApKSB8IDA7XG4gICAgICAgICAgICAgICAgaWYgKChzdW0gfCAwKSA9PSAoNSB8IDApKSB7XG4gICAgICAgICAgICAgICAgICAgIGltYWdlc1sob3V0SW1hZ2VQdHIgKyBvZmZzZXQgKyB1KSB8IDBdID0gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbWFnZXNbKG91dEltYWdlUHRyICsgb2Zmc2V0ICsgdSkgfCAwXSA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdWJ0cmFjdChhSW1hZ2VQdHIsIGJJbWFnZVB0ciwgb3V0SW1hZ2VQdHIpIHtcbiAgICAgICAgYUltYWdlUHRyID0gYUltYWdlUHRyIHwgMDtcbiAgICAgICAgYkltYWdlUHRyID0gYkltYWdlUHRyIHwgMDtcbiAgICAgICAgb3V0SW1hZ2VQdHIgPSBvdXRJbWFnZVB0ciB8IDA7XG5cbiAgICAgICAgdmFyIGxlbmd0aCA9IDA7XG5cbiAgICAgICAgbGVuZ3RoID0gaW11bChzaXplLCBzaXplKSB8IDA7XG5cbiAgICAgICAgd2hpbGUgKChsZW5ndGggfCAwKSA+IDApIHtcbiAgICAgICAgICAgIGxlbmd0aCA9IChsZW5ndGggLSAxKSB8IDA7XG4gICAgICAgICAgICBpbWFnZXNbKG91dEltYWdlUHRyICsgbGVuZ3RoKSB8IDBdID1cbiAgICAgICAgICAgICAgICAoKGltYWdlc1soYUltYWdlUHRyICsgbGVuZ3RoKSB8IDBdIHwgMCkgLSAoaW1hZ2VzWyhiSW1hZ2VQdHIgKyBsZW5ndGgpIHwgMF0gfCAwKSkgfCAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYml0d2lzZU9yKGFJbWFnZVB0ciwgYkltYWdlUHRyLCBvdXRJbWFnZVB0cikge1xuICAgICAgICBhSW1hZ2VQdHIgPSBhSW1hZ2VQdHIgfCAwO1xuICAgICAgICBiSW1hZ2VQdHIgPSBiSW1hZ2VQdHIgfCAwO1xuICAgICAgICBvdXRJbWFnZVB0ciA9IG91dEltYWdlUHRyIHwgMDtcblxuICAgICAgICB2YXIgbGVuZ3RoID0gMDtcblxuICAgICAgICBsZW5ndGggPSBpbXVsKHNpemUsIHNpemUpIHwgMDtcblxuICAgICAgICB3aGlsZSAoKGxlbmd0aCB8IDApID4gMCkge1xuICAgICAgICAgICAgbGVuZ3RoID0gKGxlbmd0aCAtIDEpIHwgMDtcbiAgICAgICAgICAgIGltYWdlc1sob3V0SW1hZ2VQdHIgKyBsZW5ndGgpIHwgMF0gPVxuICAgICAgICAgICAgICAgICgoaW1hZ2VzWyhhSW1hZ2VQdHIgKyBsZW5ndGgpIHwgMF0gfCAwKSB8IChpbWFnZXNbKGJJbWFnZVB0ciArIGxlbmd0aCkgfCAwXSB8IDApKSB8IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb3VudE5vblplcm8oaW1hZ2VQdHIpIHtcbiAgICAgICAgaW1hZ2VQdHIgPSBpbWFnZVB0ciB8IDA7XG5cbiAgICAgICAgdmFyIHN1bSA9IDAsXG4gICAgICAgICAgICBsZW5ndGggPSAwO1xuXG4gICAgICAgIGxlbmd0aCA9IGltdWwoc2l6ZSwgc2l6ZSkgfCAwO1xuXG4gICAgICAgIHdoaWxlICgobGVuZ3RoIHwgMCkgPiAwKSB7XG4gICAgICAgICAgICBsZW5ndGggPSAobGVuZ3RoIC0gMSkgfCAwO1xuICAgICAgICAgICAgc3VtID0gKChzdW0gfCAwKSArIChpbWFnZXNbKGltYWdlUHRyICsgbGVuZ3RoKSB8IDBdIHwgMCkpIHwgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoc3VtIHwgMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW5pdChpbWFnZVB0ciwgdmFsdWUpIHtcbiAgICAgICAgaW1hZ2VQdHIgPSBpbWFnZVB0ciB8IDA7XG4gICAgICAgIHZhbHVlID0gdmFsdWUgfCAwO1xuXG4gICAgICAgIHZhciBsZW5ndGggPSAwO1xuXG4gICAgICAgIGxlbmd0aCA9IGltdWwoc2l6ZSwgc2l6ZSkgfCAwO1xuXG4gICAgICAgIHdoaWxlICgobGVuZ3RoIHwgMCkgPiAwKSB7XG4gICAgICAgICAgICBsZW5ndGggPSAobGVuZ3RoIC0gMSkgfCAwO1xuICAgICAgICAgICAgaW1hZ2VzWyhpbWFnZVB0ciArIGxlbmd0aCkgfCAwXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGlsYXRlKGluSW1hZ2VQdHIsIG91dEltYWdlUHRyKSB7XG4gICAgICAgIGluSW1hZ2VQdHIgPSBpbkltYWdlUHRyIHwgMDtcbiAgICAgICAgb3V0SW1hZ2VQdHIgPSBvdXRJbWFnZVB0ciB8IDA7XG5cbiAgICAgICAgdmFyIHYgPSAwLFxuICAgICAgICAgICAgdSA9IDAsXG4gICAgICAgICAgICBzdW0gPSAwLFxuICAgICAgICAgICAgeVN0YXJ0MSA9IDAsXG4gICAgICAgICAgICB5U3RhcnQyID0gMCxcbiAgICAgICAgICAgIHhTdGFydDEgPSAwLFxuICAgICAgICAgICAgeFN0YXJ0MiA9IDAsXG4gICAgICAgICAgICBvZmZzZXQgPSAwO1xuXG4gICAgICAgIGZvciAoIHYgPSAxOyAodiB8IDApIDwgKChzaXplIC0gMSkgfCAwKTsgdiA9ICh2ICsgMSkgfCAwKSB7XG4gICAgICAgICAgICBvZmZzZXQgPSAob2Zmc2V0ICsgc2l6ZSkgfCAwO1xuICAgICAgICAgICAgZm9yICggdSA9IDE7ICh1IHwgMCkgPCAoKHNpemUgLSAxKSB8IDApOyB1ID0gKHUgKyAxKSB8IDApIHtcbiAgICAgICAgICAgICAgICB5U3RhcnQxID0gKG9mZnNldCAtIHNpemUpIHwgMDtcbiAgICAgICAgICAgICAgICB5U3RhcnQyID0gKG9mZnNldCArIHNpemUpIHwgMDtcbiAgICAgICAgICAgICAgICB4U3RhcnQxID0gKHUgLSAxKSB8IDA7XG4gICAgICAgICAgICAgICAgeFN0YXJ0MiA9ICh1ICsgMSkgfCAwO1xuICAgICAgICAgICAgICAgIHN1bSA9ICgoaW1hZ2VzWyhpbkltYWdlUHRyICsgeVN0YXJ0MSArIHhTdGFydDEpIHwgMF0gfCAwKVxuICAgICAgICAgICAgICAgICAgICArIChpbWFnZXNbKGluSW1hZ2VQdHIgKyB5U3RhcnQxICsgeFN0YXJ0MikgfCAwXSB8IDApXG4gICAgICAgICAgICAgICAgICAgICsgKGltYWdlc1soaW5JbWFnZVB0ciArIG9mZnNldCArIHUpIHwgMF0gfCAwKVxuICAgICAgICAgICAgICAgICAgICArIChpbWFnZXNbKGluSW1hZ2VQdHIgKyB5U3RhcnQyICsgeFN0YXJ0MSkgfCAwXSB8IDApXG4gICAgICAgICAgICAgICAgICAgICsgKGltYWdlc1soaW5JbWFnZVB0ciArIHlTdGFydDIgKyB4U3RhcnQyKSB8IDBdIHwgMCkpIHwgMDtcbiAgICAgICAgICAgICAgICBpZiAoKHN1bSB8IDApID4gKDAgfCAwKSkge1xuICAgICAgICAgICAgICAgICAgICBpbWFnZXNbKG91dEltYWdlUHRyICsgb2Zmc2V0ICsgdSkgfCAwXSA9IDE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VzWyhvdXRJbWFnZVB0ciArIG9mZnNldCArIHUpIHwgMF0gPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVtY3B5KHNyY0ltYWdlUHRyLCBkc3RJbWFnZVB0cikge1xuICAgICAgICBzcmNJbWFnZVB0ciA9IHNyY0ltYWdlUHRyIHwgMDtcbiAgICAgICAgZHN0SW1hZ2VQdHIgPSBkc3RJbWFnZVB0ciB8IDA7XG5cbiAgICAgICAgdmFyIGxlbmd0aCA9IDA7XG5cbiAgICAgICAgbGVuZ3RoID0gaW11bChzaXplLCBzaXplKSB8IDA7XG5cbiAgICAgICAgd2hpbGUgKChsZW5ndGggfCAwKSA+IDApIHtcbiAgICAgICAgICAgIGxlbmd0aCA9IChsZW5ndGggLSAxKSB8IDA7XG4gICAgICAgICAgICBpbWFnZXNbKGRzdEltYWdlUHRyICsgbGVuZ3RoKSB8IDBdID0gKGltYWdlc1soc3JjSW1hZ2VQdHIgKyBsZW5ndGgpIHwgMF0gfCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHplcm9Cb3JkZXIoaW1hZ2VQdHIpIHtcbiAgICAgICAgaW1hZ2VQdHIgPSBpbWFnZVB0ciB8IDA7XG5cbiAgICAgICAgdmFyIHggPSAwLFxuICAgICAgICAgICAgeSA9IDA7XG5cbiAgICAgICAgZm9yICggeCA9IDA7ICh4IHwgMCkgPCAoKHNpemUgLSAxKSB8IDApOyB4ID0gKHggKyAxKSB8IDApIHtcbiAgICAgICAgICAgIGltYWdlc1soaW1hZ2VQdHIgKyB4KSB8IDBdID0gMDtcbiAgICAgICAgICAgIGltYWdlc1soaW1hZ2VQdHIgKyB5KSB8IDBdID0gMDtcbiAgICAgICAgICAgIHkgPSAoKHkgKyBzaXplKSAtIDEpIHwgMDtcbiAgICAgICAgICAgIGltYWdlc1soaW1hZ2VQdHIgKyB5KSB8IDBdID0gMDtcbiAgICAgICAgICAgIHkgPSAoeSArIDEpIHwgMDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKCB4ID0gMDsgKHggfCAwKSA8IChzaXplIHwgMCk7IHggPSAoeCArIDEpIHwgMCkge1xuICAgICAgICAgICAgaW1hZ2VzWyhpbWFnZVB0ciArIHkpIHwgMF0gPSAwO1xuICAgICAgICAgICAgeSA9ICh5ICsgMSkgfCAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2tlbGV0b25pemUoKSB7XG4gICAgICAgIHZhciBzdWJJbWFnZVB0ciA9IDAsXG4gICAgICAgICAgICBlcm9kZWRJbWFnZVB0ciA9IDAsXG4gICAgICAgICAgICB0ZW1wSW1hZ2VQdHIgPSAwLFxuICAgICAgICAgICAgc2tlbEltYWdlUHRyID0gMCxcbiAgICAgICAgICAgIHN1bSA9IDAsXG4gICAgICAgICAgICBkb25lID0gMDtcblxuICAgICAgICBlcm9kZWRJbWFnZVB0ciA9IGltdWwoc2l6ZSwgc2l6ZSkgfCAwO1xuICAgICAgICB0ZW1wSW1hZ2VQdHIgPSAoZXJvZGVkSW1hZ2VQdHIgKyBlcm9kZWRJbWFnZVB0cikgfCAwO1xuICAgICAgICBza2VsSW1hZ2VQdHIgPSAodGVtcEltYWdlUHRyICsgZXJvZGVkSW1hZ2VQdHIpIHwgMDtcblxuICAgICAgICAvLyBpbml0IHNrZWwtaW1hZ2VcbiAgICAgICAgaW5pdChza2VsSW1hZ2VQdHIsIDApO1xuICAgICAgICB6ZXJvQm9yZGVyKHN1YkltYWdlUHRyKTtcblxuICAgICAgICBkbyB7XG4gICAgICAgICAgICBlcm9kZShzdWJJbWFnZVB0ciwgZXJvZGVkSW1hZ2VQdHIpO1xuICAgICAgICAgICAgZGlsYXRlKGVyb2RlZEltYWdlUHRyLCB0ZW1wSW1hZ2VQdHIpO1xuICAgICAgICAgICAgc3VidHJhY3Qoc3ViSW1hZ2VQdHIsIHRlbXBJbWFnZVB0ciwgdGVtcEltYWdlUHRyKTtcbiAgICAgICAgICAgIGJpdHdpc2VPcihza2VsSW1hZ2VQdHIsIHRlbXBJbWFnZVB0ciwgc2tlbEltYWdlUHRyKTtcbiAgICAgICAgICAgIG1lbWNweShlcm9kZWRJbWFnZVB0ciwgc3ViSW1hZ2VQdHIpO1xuICAgICAgICAgICAgc3VtID0gY291bnROb25aZXJvKHN1YkltYWdlUHRyKSB8IDA7XG4gICAgICAgICAgICBkb25lID0gKChzdW0gfCAwKSA9PSAwIHwgMCk7XG4gICAgICAgIH0gd2hpbGUgKCFkb25lKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2tlbGV0b25pemU6IHNrZWxldG9uaXplXG4gICAgfTtcbn1cbi8qIEBwcmVzZXJ2ZSBBU00gRU5EICovXG5leHBvcnQgZGVmYXVsdCBTa2VsZXRvbml6ZXI7XG4vKiBlc2xpbnQtZW5hYmxlIGVxZXFlcSovXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvbG9jYXRvci9za2VsZXRvbml6ZXIuanMiLCJpbXBvcnQgQmFyY29kZVJlYWRlciBmcm9tICcuL2JhcmNvZGVfcmVhZGVyJztcblxuZnVuY3Rpb24gVHdvT2ZGaXZlUmVhZGVyKG9wdHMpIHtcbiAgICBCYXJjb2RlUmVhZGVyLmNhbGwodGhpcywgb3B0cyk7XG4gICAgdGhpcy5iYXJTcGFjZVJhdGlvID0gWzEsIDFdO1xufVxuXG52YXIgTiA9IDEsXG4gICAgVyA9IDMsXG4gICAgcHJvcGVydGllcyA9IHtcbiAgICAgICAgU1RBUlRfUEFUVEVSTjoge3ZhbHVlOiBbVywgTiwgVywgTiwgTiwgTl19LFxuICAgICAgICBTVE9QX1BBVFRFUk46IHt2YWx1ZTogW1csIE4sIE4sIE4sIFddfSxcbiAgICAgICAgQ09ERV9QQVRURVJOOiB7dmFsdWU6IFtcbiAgICAgICAgICAgIFtOLCBOLCBXLCBXLCBOXSxcbiAgICAgICAgICAgIFtXLCBOLCBOLCBOLCBXXSxcbiAgICAgICAgICAgIFtOLCBXLCBOLCBOLCBXXSxcbiAgICAgICAgICAgIFtXLCBXLCBOLCBOLCBOXSxcbiAgICAgICAgICAgIFtOLCBOLCBXLCBOLCBXXSxcbiAgICAgICAgICAgIFtXLCBOLCBXLCBOLCBOXSxcbiAgICAgICAgICAgIFtOLCBXLCBXLCBOLCBOXSxcbiAgICAgICAgICAgIFtOLCBOLCBOLCBXLCBXXSxcbiAgICAgICAgICAgIFtXLCBOLCBOLCBXLCBOXSxcbiAgICAgICAgICAgIFtOLCBXLCBOLCBXLCBOXVxuICAgICAgICBdfSxcbiAgICAgICAgU0lOR0xFX0NPREVfRVJST1I6IHt2YWx1ZTogMC43OCwgd3JpdGFibGU6IHRydWV9LFxuICAgICAgICBBVkdfQ09ERV9FUlJPUjoge3ZhbHVlOiAwLjMwLCB3cml0YWJsZTogdHJ1ZX0sXG4gICAgICAgIEZPUk1BVDoge3ZhbHVlOiBcIjJvZjVcIn1cbiAgICB9O1xuXG5jb25zdCBzdGFydFBhdHRlcm5MZW5ndGggPSBwcm9wZXJ0aWVzLlNUQVJUX1BBVFRFUk4udmFsdWUucmVkdWNlKChzdW0sIHZhbCkgPT4gc3VtICsgdmFsLCAwKTtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQmFyY29kZVJlYWRlci5wcm90b3R5cGUsIHByb3BlcnRpZXMpO1xuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFR3b09mRml2ZVJlYWRlcjtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5fZmluZFBhdHRlcm4gPSBmdW5jdGlvbihwYXR0ZXJuLCBvZmZzZXQsIGlzV2hpdGUsIHRyeUhhcmRlcikge1xuICAgIHZhciBjb3VudGVyID0gW10sXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBpLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yLFxuICAgICAgICBqLFxuICAgICAgICBzdW0sXG4gICAgICAgIGVwc2lsb24gPSBzZWxmLkFWR19DT0RFX0VSUk9SO1xuXG4gICAgaXNXaGl0ZSA9IGlzV2hpdGUgfHwgZmFsc2U7XG4gICAgdHJ5SGFyZGVyID0gdHJ5SGFyZGVyIHx8IGZhbHNlO1xuXG4gICAgaWYgKCFvZmZzZXQpIHtcbiAgICAgICAgb2Zmc2V0ID0gc2VsZi5fbmV4dFNldChzZWxmLl9yb3cpO1xuICAgIH1cblxuICAgIGZvciAoIGkgPSAwOyBpIDwgcGF0dGVybi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb3VudGVyW2ldID0gMDtcbiAgICB9XG5cbiAgICBmb3IgKCBpID0gb2Zmc2V0OyBpIDwgc2VsZi5fcm93Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLl9yb3dbaV0gXiBpc1doaXRlKSB7XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY291bnRlclBvcyA9PT0gY291bnRlci5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgc3VtID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8IGNvdW50ZXIubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50ZXJbal07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVycm9yID0gc2VsZi5fbWF0Y2hQYXR0ZXJuKGNvdW50ZXIsIHBhdHRlcm4pO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvciA8IGVwc2lsb24pIHtcbiAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5zdGFydCA9IGkgLSBzdW07XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5lbmQgPSBpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmVzdE1hdGNoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHJ5SGFyZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBjb3VudGVyLmxlbmd0aCAtIDI7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY291bnRlcltqXSA9IGNvdW50ZXJbaiArIDJdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbY291bnRlci5sZW5ndGggLSAyXSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbY291bnRlci5sZW5ndGggLSAxXSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJQb3MtLTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvdW50ZXJQb3MrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10gPSAxO1xuICAgICAgICAgICAgaXNXaGl0ZSA9ICFpc1doaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5fZmluZFN0YXJ0ID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBsZWFkaW5nV2hpdGVzcGFjZVN0YXJ0LFxuICAgICAgICBvZmZzZXQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3JvdyksXG4gICAgICAgIHN0YXJ0SW5mbyxcbiAgICAgICAgbmFycm93QmFyV2lkdGggPSAxO1xuXG4gICAgd2hpbGUgKCFzdGFydEluZm8pIHtcbiAgICAgICAgc3RhcnRJbmZvID0gc2VsZi5fZmluZFBhdHRlcm4oc2VsZi5TVEFSVF9QQVRURVJOLCBvZmZzZXQsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgaWYgKCFzdGFydEluZm8pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIG5hcnJvd0JhcldpZHRoID0gTWF0aC5mbG9vcigoc3RhcnRJbmZvLmVuZCAtIHN0YXJ0SW5mby5zdGFydCkgLyBzdGFydFBhdHRlcm5MZW5ndGgpO1xuICAgICAgICBsZWFkaW5nV2hpdGVzcGFjZVN0YXJ0ID0gc3RhcnRJbmZvLnN0YXJ0IC0gbmFycm93QmFyV2lkdGggKiA1O1xuICAgICAgICBpZiAobGVhZGluZ1doaXRlc3BhY2VTdGFydCA+PSAwKSB7XG4gICAgICAgICAgICBpZiAoc2VsZi5fbWF0Y2hSYW5nZShsZWFkaW5nV2hpdGVzcGFjZVN0YXJ0LCBzdGFydEluZm8uc3RhcnQsIDApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0SW5mbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvZmZzZXQgPSBzdGFydEluZm8uZW5kO1xuICAgICAgICBzdGFydEluZm8gPSBudWxsO1xuICAgIH1cbn07XG5cblR3b09mRml2ZVJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZSA9IGZ1bmN0aW9uKGVuZEluZm8pIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZDtcblxuICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA9IGVuZEluZm8uZW5kICsgKChlbmRJbmZvLmVuZCAtIGVuZEluZm8uc3RhcnQpIC8gMik7XG4gICAgaWYgKHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA8IHNlbGYuX3Jvdy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKHNlbGYuX21hdGNoUmFuZ2UoZW5kSW5mby5lbmQsIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCwgMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbmRJbmZvO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5fZmluZEVuZCA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgZW5kSW5mbyxcbiAgICAgICAgdG1wLFxuICAgICAgICBvZmZzZXQ7XG5cbiAgICBzZWxmLl9yb3cucmV2ZXJzZSgpO1xuICAgIG9mZnNldCA9IHNlbGYuX25leHRTZXQoc2VsZi5fcm93KTtcbiAgICBlbmRJbmZvID0gc2VsZi5fZmluZFBhdHRlcm4oc2VsZi5TVE9QX1BBVFRFUk4sIG9mZnNldCwgZmFsc2UsIHRydWUpO1xuICAgIHNlbGYuX3Jvdy5yZXZlcnNlKCk7XG5cbiAgICBpZiAoZW5kSW5mbyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyByZXZlcnNlIG51bWJlcnNcbiAgICB0bXAgPSBlbmRJbmZvLnN0YXJ0O1xuICAgIGVuZEluZm8uc3RhcnQgPSBzZWxmLl9yb3cubGVuZ3RoIC0gZW5kSW5mby5lbmQ7XG4gICAgZW5kSW5mby5lbmQgPSBzZWxmLl9yb3cubGVuZ3RoIC0gdG1wO1xuXG4gICAgcmV0dXJuIGVuZEluZm8gIT09IG51bGwgPyBzZWxmLl92ZXJpZnlUcmFpbGluZ1doaXRlc3BhY2UoZW5kSW5mbykgOiBudWxsO1xufTtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5fZGVjb2RlQ29kZSA9IGZ1bmN0aW9uKGNvdW50ZXIpIHtcbiAgICB2YXIgaixcbiAgICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICAgIHN1bSA9IDAsXG4gICAgICAgIG5vcm1hbGl6ZWQsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBlcHNpbG9uID0gc2VsZi5BVkdfQ09ERV9FUlJPUixcbiAgICAgICAgY29kZSxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH07XG5cbiAgICBmb3IgKCBqID0gMDsgaiA8IGNvdW50ZXIubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgc3VtICs9IGNvdW50ZXJbal07XG4gICAgfVxuICAgIGZvciAoY29kZSA9IDA7IGNvZGUgPCBzZWxmLkNPREVfUEFUVEVSTi5sZW5ndGg7IGNvZGUrKykge1xuICAgICAgICBlcnJvciA9IHNlbGYuX21hdGNoUGF0dGVybihjb3VudGVyLCBzZWxmLkNPREVfUEFUVEVSTltjb2RlXSk7XG4gICAgICAgIGlmIChlcnJvciA8IGJlc3RNYXRjaC5lcnJvcikge1xuICAgICAgICAgICAgYmVzdE1hdGNoLmNvZGUgPSBjb2RlO1xuICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGJlc3RNYXRjaC5lcnJvciA8IGVwc2lsb24pIHtcbiAgICAgICAgcmV0dXJuIGJlc3RNYXRjaDtcbiAgICB9XG59O1xuXG5Ud29PZkZpdmVSZWFkZXIucHJvdG90eXBlLl9kZWNvZGVQYXlsb2FkID0gZnVuY3Rpb24oY291bnRlcnMsIHJlc3VsdCwgZGVjb2RlZENvZGVzKSB7XG4gICAgdmFyIGksXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBwb3MgPSAwLFxuICAgICAgICBjb3VudGVyTGVuZ3RoID0gY291bnRlcnMubGVuZ3RoLFxuICAgICAgICBjb3VudGVyID0gWzAsIDAsIDAsIDAsIDBdLFxuICAgICAgICBjb2RlO1xuXG4gICAgd2hpbGUgKHBvcyA8IGNvdW50ZXJMZW5ndGgpIHtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDU7IGkrKykge1xuICAgICAgICAgICAgY291bnRlcltpXSA9IGNvdW50ZXJzW3Bvc10gKiB0aGlzLmJhclNwYWNlUmF0aW9bMF07XG4gICAgICAgICAgICBwb3MgKz0gMjtcbiAgICAgICAgfVxuICAgICAgICBjb2RlID0gc2VsZi5fZGVjb2RlQ29kZShjb3VudGVyKTtcbiAgICAgICAgaWYgKCFjb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChjb2RlLmNvZGUgKyBcIlwiKTtcbiAgICAgICAgZGVjb2RlZENvZGVzLnB1c2goY29kZSk7XG4gICAgfVxuICAgIHJldHVybiBjb2RlO1xufTtcblxuVHdvT2ZGaXZlUmVhZGVyLnByb3RvdHlwZS5fdmVyaWZ5Q291bnRlckxlbmd0aCA9IGZ1bmN0aW9uKGNvdW50ZXJzKSB7XG4gICAgcmV0dXJuIChjb3VudGVycy5sZW5ndGggJSAxMCA9PT0gMCk7XG59O1xuXG5Ud29PZkZpdmVSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RhcnRJbmZvLFxuICAgICAgICBlbmRJbmZvLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgY29kZSxcbiAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgIGRlY29kZWRDb2RlcyA9IFtdLFxuICAgICAgICBjb3VudGVycztcblxuICAgIHN0YXJ0SW5mbyA9IHNlbGYuX2ZpbmRTdGFydCgpO1xuICAgIGlmICghc3RhcnRJbmZvKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBkZWNvZGVkQ29kZXMucHVzaChzdGFydEluZm8pO1xuXG4gICAgZW5kSW5mbyA9IHNlbGYuX2ZpbmRFbmQoKTtcbiAgICBpZiAoIWVuZEluZm8pIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY291bnRlcnMgPSBzZWxmLl9maWxsQ291bnRlcnMoc3RhcnRJbmZvLmVuZCwgZW5kSW5mby5zdGFydCwgZmFsc2UpO1xuICAgIGlmICghc2VsZi5fdmVyaWZ5Q291bnRlckxlbmd0aChjb3VudGVycykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvZGUgPSBzZWxmLl9kZWNvZGVQYXlsb2FkKGNvdW50ZXJzLCByZXN1bHQsIGRlY29kZWRDb2Rlcyk7XG4gICAgaWYgKCFjb2RlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA8IDUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZGVjb2RlZENvZGVzLnB1c2goZW5kSW5mbyk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmpvaW4oXCJcIiksXG4gICAgICAgIHN0YXJ0OiBzdGFydEluZm8uc3RhcnQsXG4gICAgICAgIGVuZDogZW5kSW5mby5lbmQsXG4gICAgICAgIHN0YXJ0SW5mbzogc3RhcnRJbmZvLFxuICAgICAgICBkZWNvZGVkQ29kZXM6IGRlY29kZWRDb2Rlc1xuICAgIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUd29PZkZpdmVSZWFkZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcmVhZGVyLzJvZjVfcmVhZGVyLmpzIiwiaW1wb3J0IEJhcmNvZGVSZWFkZXIgZnJvbSAnLi9iYXJjb2RlX3JlYWRlcic7XG5cbmZ1bmN0aW9uIENvZGFiYXJSZWFkZXIoKSB7XG4gICAgQmFyY29kZVJlYWRlci5jYWxsKHRoaXMpO1xuICAgIHRoaXMuX2NvdW50ZXJzID0gW107XG59XG5cbnZhciBwcm9wZXJ0aWVzID0ge1xuICAgIEFMUEhBQkVUSF9TVFJJTkc6IHt2YWx1ZTogXCIwMTIzNDU2Nzg5LSQ6Ly4rQUJDRFwifSxcbiAgICBBTFBIQUJFVDoge3ZhbHVlOiBbNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDQ1LCAzNiwgNTgsIDQ3LCA0NiwgNDMsIDY1LCA2NiwgNjcsIDY4XX0sXG4gICAgQ0hBUkFDVEVSX0VOQ09ESU5HUzoge3ZhbHVlOiBbMHgwMDMsIDB4MDA2LCAweDAwOSwgMHgwNjAsIDB4MDEyLCAweDA0MiwgMHgwMjEsIDB4MDI0LCAweDAzMCwgMHgwNDgsIDB4MDBjLCAweDAxOCxcbiAgICAgICAgMHgwNDUsIDB4MDUxLCAweDA1NCwgMHgwMTUsIDB4MDFBLCAweDAyOSwgMHgwMEIsIDB4MDBFXX0sXG4gICAgU1RBUlRfRU5EOiB7dmFsdWU6IFsweDAxQSwgMHgwMjksIDB4MDBCLCAweDAwRV19LFxuICAgIE1JTl9FTkNPREVEX0NIQVJTOiB7dmFsdWU6IDR9LFxuICAgIE1BWF9BQ0NFUFRBQkxFOiB7dmFsdWU6IDIuMH0sXG4gICAgUEFERElORzoge3ZhbHVlOiAxLjV9LFxuICAgIEZPUk1BVDoge3ZhbHVlOiBcImNvZGFiYXJcIiwgd3JpdGVhYmxlOiBmYWxzZX1cbn07XG5cbkNvZGFiYXJSZWFkZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShCYXJjb2RlUmVhZGVyLnByb3RvdHlwZSwgcHJvcGVydGllcyk7XG5Db2RhYmFyUmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IENvZGFiYXJSZWFkZXI7XG5cbkNvZGFiYXJSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIHJlc3VsdCA9IFtdLFxuICAgICAgICBzdGFydCxcbiAgICAgICAgZGVjb2RlZENoYXIsXG4gICAgICAgIHBhdHRlcm4sXG4gICAgICAgIG5leHRTdGFydCxcbiAgICAgICAgZW5kO1xuXG4gICAgdGhpcy5fY291bnRlcnMgPSBzZWxmLl9maWxsQ291bnRlcnMoKTtcbiAgICBzdGFydCA9IHNlbGYuX2ZpbmRTdGFydCgpO1xuICAgIGlmICghc3RhcnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIG5leHRTdGFydCA9IHN0YXJ0LnN0YXJ0Q291bnRlcjtcblxuICAgIGRvIHtcbiAgICAgICAgcGF0dGVybiA9IHNlbGYuX3RvUGF0dGVybihuZXh0U3RhcnQpO1xuICAgICAgICBpZiAocGF0dGVybiA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGRlY29kZWRDaGFyID0gc2VsZi5fcGF0dGVyblRvQ2hhcihwYXR0ZXJuKTtcbiAgICAgICAgaWYgKGRlY29kZWRDaGFyIDwgMCl7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChkZWNvZGVkQ2hhcik7XG4gICAgICAgIG5leHRTdGFydCArPSA4O1xuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDEgJiYgc2VsZi5faXNTdGFydEVuZChwYXR0ZXJuKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9IHdoaWxlIChuZXh0U3RhcnQgPCBzZWxmLl9jb3VudGVycy5sZW5ndGgpO1xuXG4gICAgLy8gdmVyaWZ5IGVuZFxuICAgIGlmICgocmVzdWx0Lmxlbmd0aCAtIDIpIDwgc2VsZi5NSU5fRU5DT0RFRF9DSEFSUyB8fCAhc2VsZi5faXNTdGFydEVuZChwYXR0ZXJuKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgZW5kIHdoaXRlIHNwYWNlXG4gICAgaWYgKCFzZWxmLl92ZXJpZnlXaGl0ZXNwYWNlKHN0YXJ0LnN0YXJ0Q291bnRlciwgbmV4dFN0YXJ0IC0gOCkpe1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIXNlbGYuX3ZhbGlkYXRlUmVzdWx0KHJlc3VsdCwgc3RhcnQuc3RhcnRDb3VudGVyKSl7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIG5leHRTdGFydCA9IG5leHRTdGFydCA+IHNlbGYuX2NvdW50ZXJzLmxlbmd0aCA/IHNlbGYuX2NvdW50ZXJzLmxlbmd0aCA6IG5leHRTdGFydDtcbiAgICBlbmQgPSBzdGFydC5zdGFydCArIHNlbGYuX3N1bUNvdW50ZXJzKHN0YXJ0LnN0YXJ0Q291bnRlciwgbmV4dFN0YXJ0IC0gOCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBjb2RlOiByZXN1bHQuam9pbihcIlwiKSxcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LnN0YXJ0LFxuICAgICAgICBlbmQ6IGVuZCxcbiAgICAgICAgc3RhcnRJbmZvOiBzdGFydCxcbiAgICAgICAgZGVjb2RlZENvZGVzOiByZXN1bHRcbiAgICB9O1xufTtcblxuQ29kYWJhclJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeVdoaXRlc3BhY2UgPSBmdW5jdGlvbihzdGFydENvdW50ZXIsIGVuZENvdW50ZXIpIHtcbiAgICBpZiAoKHN0YXJ0Q291bnRlciAtIDEgPD0gMClcbiAgICAgICAgICAgIHx8IHRoaXMuX2NvdW50ZXJzW3N0YXJ0Q291bnRlciAtIDFdID49ICh0aGlzLl9jYWxjdWxhdGVQYXR0ZXJuTGVuZ3RoKHN0YXJ0Q291bnRlcikgLyAyLjApKSB7XG4gICAgICAgIGlmICgoZW5kQ291bnRlciArIDggPj0gdGhpcy5fY291bnRlcnMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIHx8IHRoaXMuX2NvdW50ZXJzW2VuZENvdW50ZXIgKyA3XSA+PSAodGhpcy5fY2FsY3VsYXRlUGF0dGVybkxlbmd0aChlbmRDb3VudGVyKSAvIDIuMCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbkNvZGFiYXJSZWFkZXIucHJvdG90eXBlLl9jYWxjdWxhdGVQYXR0ZXJuTGVuZ3RoID0gZnVuY3Rpb24ob2Zmc2V0KSB7XG4gICAgdmFyIGksXG4gICAgICAgIHN1bSA9IDA7XG5cbiAgICBmb3IgKGkgPSBvZmZzZXQ7IGkgPCBvZmZzZXQgKyA3OyBpKyspIHtcbiAgICAgICAgc3VtICs9IHRoaXMuX2NvdW50ZXJzW2ldO1xuICAgIH1cblxuICAgIHJldHVybiBzdW07XG59O1xuXG5Db2RhYmFyUmVhZGVyLnByb3RvdHlwZS5fdGhyZXNob2xkUmVzdWx0UGF0dGVybiA9IGZ1bmN0aW9uKHJlc3VsdCwgc3RhcnRDb3VudGVyKXtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGNhdGVnb3JpemF0aW9uID0ge1xuICAgICAgICAgICAgc3BhY2U6IHtcbiAgICAgICAgICAgICAgICBuYXJyb3c6IHsgc2l6ZTogMCwgY291bnRzOiAwLCBtaW46IDAsIG1heDogTnVtYmVyLk1BWF9WQUxVRX0sXG4gICAgICAgICAgICAgICAgd2lkZToge3NpemU6IDAsIGNvdW50czogMCwgbWluOiAwLCBtYXg6IE51bWJlci5NQVhfVkFMVUV9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYmFyOiB7XG4gICAgICAgICAgICAgICAgbmFycm93OiB7IHNpemU6IDAsIGNvdW50czogMCwgbWluOiAwLCBtYXg6IE51bWJlci5NQVhfVkFMVUV9LFxuICAgICAgICAgICAgICAgIHdpZGU6IHsgc2l6ZTogMCwgY291bnRzOiAwLCBtaW46IDAsIG1heDogTnVtYmVyLk1BWF9WQUxVRX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAga2luZCxcbiAgICAgICAgY2F0LFxuICAgICAgICBpLFxuICAgICAgICBqLFxuICAgICAgICBwb3MgPSBzdGFydENvdW50ZXIsXG4gICAgICAgIHBhdHRlcm47XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKXtcbiAgICAgICAgcGF0dGVybiA9IHNlbGYuX2NoYXJUb1BhdHRlcm4ocmVzdWx0W2ldKTtcbiAgICAgICAgZm9yIChqID0gNjsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgICAgIGtpbmQgPSAoaiAmIDEpID09PSAyID8gY2F0ZWdvcml6YXRpb24uYmFyIDogY2F0ZWdvcml6YXRpb24uc3BhY2U7XG4gICAgICAgICAgICBjYXQgPSAocGF0dGVybiAmIDEpID09PSAxID8ga2luZC53aWRlIDoga2luZC5uYXJyb3c7XG4gICAgICAgICAgICBjYXQuc2l6ZSArPSBzZWxmLl9jb3VudGVyc1twb3MgKyBqXTtcbiAgICAgICAgICAgIGNhdC5jb3VudHMrKztcbiAgICAgICAgICAgIHBhdHRlcm4gPj49IDE7XG4gICAgICAgIH1cbiAgICAgICAgcG9zICs9IDg7XG4gICAgfVxuXG4gICAgW1wic3BhY2VcIiwgXCJiYXJcIl0uZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgdmFyIG5ld2tpbmQgPSBjYXRlZ29yaXphdGlvbltrZXldO1xuICAgICAgICBuZXdraW5kLndpZGUubWluID1cbiAgICAgICAgICAgIE1hdGguZmxvb3IoKG5ld2tpbmQubmFycm93LnNpemUgLyBuZXdraW5kLm5hcnJvdy5jb3VudHMgKyBuZXdraW5kLndpZGUuc2l6ZSAvIG5ld2tpbmQud2lkZS5jb3VudHMpIC8gMik7XG4gICAgICAgIG5ld2tpbmQubmFycm93Lm1heCA9IE1hdGguY2VpbChuZXdraW5kLndpZGUubWluKTtcbiAgICAgICAgbmV3a2luZC53aWRlLm1heCA9IE1hdGguY2VpbCgobmV3a2luZC53aWRlLnNpemUgKiBzZWxmLk1BWF9BQ0NFUFRBQkxFICsgc2VsZi5QQURESU5HKSAvIG5ld2tpbmQud2lkZS5jb3VudHMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNhdGVnb3JpemF0aW9uO1xufTtcblxuQ29kYWJhclJlYWRlci5wcm90b3R5cGUuX2NoYXJUb1BhdHRlcm4gPSBmdW5jdGlvbihjaGFyKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBjaGFyQ29kZSA9IGNoYXIuY2hhckNvZGVBdCgwKSxcbiAgICAgICAgaTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBzZWxmLkFMUEhBQkVULmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLkFMUEhBQkVUW2ldID09PSBjaGFyQ29kZSl7XG4gICAgICAgICAgICByZXR1cm4gc2VsZi5DSEFSQUNURVJfRU5DT0RJTkdTW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAweDA7XG59O1xuXG5Db2RhYmFyUmVhZGVyLnByb3RvdHlwZS5fdmFsaWRhdGVSZXN1bHQgPSBmdW5jdGlvbihyZXN1bHQsIHN0YXJ0Q291bnRlcikge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgdGhyZXNob2xkcyA9IHNlbGYuX3RocmVzaG9sZFJlc3VsdFBhdHRlcm4ocmVzdWx0LCBzdGFydENvdW50ZXIpLFxuICAgICAgICBpLFxuICAgICAgICBqLFxuICAgICAgICBraW5kLFxuICAgICAgICBjYXQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIHBvcyA9IHN0YXJ0Q291bnRlcixcbiAgICAgICAgcGF0dGVybjtcblxuICAgIGZvciAoaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcGF0dGVybiA9IHNlbGYuX2NoYXJUb1BhdHRlcm4ocmVzdWx0W2ldKTtcbiAgICAgICAgZm9yIChqID0gNjsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgICAgIGtpbmQgPSAoaiAmIDEpID09PSAwID8gdGhyZXNob2xkcy5iYXIgOiB0aHJlc2hvbGRzLnNwYWNlO1xuICAgICAgICAgICAgY2F0ID0gKHBhdHRlcm4gJiAxKSA9PT0gMSA/IGtpbmQud2lkZSA6IGtpbmQubmFycm93O1xuICAgICAgICAgICAgc2l6ZSA9IHNlbGYuX2NvdW50ZXJzW3BvcyArIGpdO1xuICAgICAgICAgICAgaWYgKHNpemUgPCBjYXQubWluIHx8IHNpemUgPiBjYXQubWF4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGF0dGVybiA+Pj0gMTtcbiAgICAgICAgfVxuICAgICAgICBwb3MgKz0gODtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuXG5Db2RhYmFyUmVhZGVyLnByb3RvdHlwZS5fcGF0dGVyblRvQ2hhciA9IGZ1bmN0aW9uKHBhdHRlcm4pIHtcbiAgICB2YXIgaSxcbiAgICAgICAgc2VsZiA9IHRoaXM7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgc2VsZi5DSEFSQUNURVJfRU5DT0RJTkdTLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLkNIQVJBQ1RFUl9FTkNPRElOR1NbaV0gPT09IHBhdHRlcm4pIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHNlbGYuQUxQSEFCRVRbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbn07XG5cbkNvZGFiYXJSZWFkZXIucHJvdG90eXBlLl9jb21wdXRlQWx0ZXJuYXRpbmdUaHJlc2hvbGQgPSBmdW5jdGlvbihvZmZzZXQsIGVuZCkge1xuICAgIHZhciBpLFxuICAgICAgICBtaW4gPSBOdW1iZXIuTUFYX1ZBTFVFLFxuICAgICAgICBtYXggPSAwLFxuICAgICAgICBjb3VudGVyO1xuXG4gICAgZm9yIChpID0gb2Zmc2V0OyBpIDwgZW5kOyBpICs9IDIpe1xuICAgICAgICBjb3VudGVyID0gdGhpcy5fY291bnRlcnNbaV07XG4gICAgICAgIGlmIChjb3VudGVyID4gbWF4KSB7XG4gICAgICAgICAgICBtYXggPSBjb3VudGVyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb3VudGVyIDwgbWluKSB7XG4gICAgICAgICAgICBtaW4gPSBjb3VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICgobWluICsgbWF4KSAvIDIuMCkgfCAwO1xufTtcblxuQ29kYWJhclJlYWRlci5wcm90b3R5cGUuX3RvUGF0dGVybiA9IGZ1bmN0aW9uKG9mZnNldCkge1xuICAgIHZhciBudW1Db3VudGVycyA9IDcsXG4gICAgICAgIGVuZCA9IG9mZnNldCArIG51bUNvdW50ZXJzLFxuICAgICAgICBiYXJUaHJlc2hvbGQsXG4gICAgICAgIHNwYWNlVGhyZXNob2xkLFxuICAgICAgICBiaXRtYXNrID0gMSA8PCAobnVtQ291bnRlcnMgLSAxKSxcbiAgICAgICAgcGF0dGVybiA9IDAsXG4gICAgICAgIGksXG4gICAgICAgIHRocmVzaG9sZDtcblxuICAgIGlmIChlbmQgPiB0aGlzLl9jb3VudGVycy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIGJhclRocmVzaG9sZCA9IHRoaXMuX2NvbXB1dGVBbHRlcm5hdGluZ1RocmVzaG9sZChvZmZzZXQsIGVuZCk7XG4gICAgc3BhY2VUaHJlc2hvbGQgPSB0aGlzLl9jb21wdXRlQWx0ZXJuYXRpbmdUaHJlc2hvbGQob2Zmc2V0ICsgMSwgZW5kKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBudW1Db3VudGVyczsgaSsrKXtcbiAgICAgICAgdGhyZXNob2xkID0gKGkgJiAxKSA9PT0gMCA/IGJhclRocmVzaG9sZCA6IHNwYWNlVGhyZXNob2xkO1xuICAgICAgICBpZiAodGhpcy5fY291bnRlcnNbb2Zmc2V0ICsgaV0gPiB0aHJlc2hvbGQpIHtcbiAgICAgICAgICAgIHBhdHRlcm4gfD0gYml0bWFzaztcbiAgICAgICAgfVxuICAgICAgICBiaXRtYXNrID4+PSAxO1xuICAgIH1cblxuICAgIHJldHVybiBwYXR0ZXJuO1xufTtcblxuQ29kYWJhclJlYWRlci5wcm90b3R5cGUuX2lzU3RhcnRFbmQgPSBmdW5jdGlvbihwYXR0ZXJuKSB7XG4gICAgdmFyIGk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5TVEFSVF9FTkQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRoaXMuU1RBUlRfRU5EW2ldID09PSBwYXR0ZXJuKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5Db2RhYmFyUmVhZGVyLnByb3RvdHlwZS5fc3VtQ291bnRlcnMgPSBmdW5jdGlvbihzdGFydCwgZW5kKSB7XG4gICAgdmFyIGksXG4gICAgICAgIHN1bSA9IDA7XG5cbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICAgIHN1bSArPSB0aGlzLl9jb3VudGVyc1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIHN1bTtcbn07XG5cbkNvZGFiYXJSZWFkZXIucHJvdG90eXBlLl9maW5kU3RhcnQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGksXG4gICAgICAgIHBhdHRlcm4sXG4gICAgICAgIHN0YXJ0ID0gc2VsZi5fbmV4dFVuc2V0KHNlbGYuX3JvdyksXG4gICAgICAgIGVuZDtcblxuICAgIGZvciAoaSA9IDE7IGkgPCB0aGlzLl9jb3VudGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBwYXR0ZXJuID0gc2VsZi5fdG9QYXR0ZXJuKGkpO1xuICAgICAgICBpZiAocGF0dGVybiAhPT0gLTEgJiYgc2VsZi5faXNTdGFydEVuZChwYXR0ZXJuKSkge1xuICAgICAgICAgICAgLy8gVE9ETzogTG9vayBmb3Igd2hpdGVzcGFjZSBhaGVhZFxuICAgICAgICAgICAgc3RhcnQgKz0gc2VsZi5fc3VtQ291bnRlcnMoMCwgaSk7XG4gICAgICAgICAgICBlbmQgPSBzdGFydCArIHNlbGYuX3N1bUNvdW50ZXJzKGksIGkgKyA4KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgICAgIGVuZDogZW5kLFxuICAgICAgICAgICAgICAgIHN0YXJ0Q291bnRlcjogaSxcbiAgICAgICAgICAgICAgICBlbmRDb3VudGVyOiBpICsgOFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvZGFiYXJSZWFkZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcmVhZGVyL2NvZGFiYXJfcmVhZGVyLmpzIiwiaW1wb3J0IEJhcmNvZGVSZWFkZXIgZnJvbSAnLi9iYXJjb2RlX3JlYWRlcic7XG5cbmZ1bmN0aW9uIENvZGUxMjhSZWFkZXIoKSB7XG4gICAgQmFyY29kZVJlYWRlci5jYWxsKHRoaXMpO1xufVxuXG52YXIgcHJvcGVydGllcyA9IHtcbiAgICBDT0RFX1NISUZUOiB7dmFsdWU6IDk4fSxcbiAgICBDT0RFX0M6IHt2YWx1ZTogOTl9LFxuICAgIENPREVfQjoge3ZhbHVlOiAxMDB9LFxuICAgIENPREVfQToge3ZhbHVlOiAxMDF9LFxuICAgIFNUQVJUX0NPREVfQToge3ZhbHVlOiAxMDN9LFxuICAgIFNUQVJUX0NPREVfQjoge3ZhbHVlOiAxMDR9LFxuICAgIFNUQVJUX0NPREVfQzoge3ZhbHVlOiAxMDV9LFxuICAgIFNUT1BfQ09ERToge3ZhbHVlOiAxMDZ9LFxuICAgIENPREVfUEFUVEVSTjoge3ZhbHVlOiBbXG4gICAgICAgIFsyLCAxLCAyLCAyLCAyLCAyXSxcbiAgICAgICAgWzIsIDIsIDIsIDEsIDIsIDJdLFxuICAgICAgICBbMiwgMiwgMiwgMiwgMiwgMV0sXG4gICAgICAgIFsxLCAyLCAxLCAyLCAyLCAzXSxcbiAgICAgICAgWzEsIDIsIDEsIDMsIDIsIDJdLFxuICAgICAgICBbMSwgMywgMSwgMiwgMiwgMl0sXG4gICAgICAgIFsxLCAyLCAyLCAyLCAxLCAzXSxcbiAgICAgICAgWzEsIDIsIDIsIDMsIDEsIDJdLFxuICAgICAgICBbMSwgMywgMiwgMiwgMSwgMl0sXG4gICAgICAgIFsyLCAyLCAxLCAyLCAxLCAzXSxcbiAgICAgICAgWzIsIDIsIDEsIDMsIDEsIDJdLFxuICAgICAgICBbMiwgMywgMSwgMiwgMSwgMl0sXG4gICAgICAgIFsxLCAxLCAyLCAyLCAzLCAyXSxcbiAgICAgICAgWzEsIDIsIDIsIDEsIDMsIDJdLFxuICAgICAgICBbMSwgMiwgMiwgMiwgMywgMV0sXG4gICAgICAgIFsxLCAxLCAzLCAyLCAyLCAyXSxcbiAgICAgICAgWzEsIDIsIDMsIDEsIDIsIDJdLFxuICAgICAgICBbMSwgMiwgMywgMiwgMiwgMV0sXG4gICAgICAgIFsyLCAyLCAzLCAyLCAxLCAxXSxcbiAgICAgICAgWzIsIDIsIDEsIDEsIDMsIDJdLFxuICAgICAgICBbMiwgMiwgMSwgMiwgMywgMV0sXG4gICAgICAgIFsyLCAxLCAzLCAyLCAxLCAyXSxcbiAgICAgICAgWzIsIDIsIDMsIDEsIDEsIDJdLFxuICAgICAgICBbMywgMSwgMiwgMSwgMywgMV0sXG4gICAgICAgIFszLCAxLCAxLCAyLCAyLCAyXSxcbiAgICAgICAgWzMsIDIsIDEsIDEsIDIsIDJdLFxuICAgICAgICBbMywgMiwgMSwgMiwgMiwgMV0sXG4gICAgICAgIFszLCAxLCAyLCAyLCAxLCAyXSxcbiAgICAgICAgWzMsIDIsIDIsIDEsIDEsIDJdLFxuICAgICAgICBbMywgMiwgMiwgMiwgMSwgMV0sXG4gICAgICAgIFsyLCAxLCAyLCAxLCAyLCAzXSxcbiAgICAgICAgWzIsIDEsIDIsIDMsIDIsIDFdLFxuICAgICAgICBbMiwgMywgMiwgMSwgMiwgMV0sXG4gICAgICAgIFsxLCAxLCAxLCAzLCAyLCAzXSxcbiAgICAgICAgWzEsIDMsIDEsIDEsIDIsIDNdLFxuICAgICAgICBbMSwgMywgMSwgMywgMiwgMV0sXG4gICAgICAgIFsxLCAxLCAyLCAzLCAxLCAzXSxcbiAgICAgICAgWzEsIDMsIDIsIDEsIDEsIDNdLFxuICAgICAgICBbMSwgMywgMiwgMywgMSwgMV0sXG4gICAgICAgIFsyLCAxLCAxLCAzLCAxLCAzXSxcbiAgICAgICAgWzIsIDMsIDEsIDEsIDEsIDNdLFxuICAgICAgICBbMiwgMywgMSwgMywgMSwgMV0sXG4gICAgICAgIFsxLCAxLCAyLCAxLCAzLCAzXSxcbiAgICAgICAgWzEsIDEsIDIsIDMsIDMsIDFdLFxuICAgICAgICBbMSwgMywgMiwgMSwgMywgMV0sXG4gICAgICAgIFsxLCAxLCAzLCAxLCAyLCAzXSxcbiAgICAgICAgWzEsIDEsIDMsIDMsIDIsIDFdLFxuICAgICAgICBbMSwgMywgMywgMSwgMiwgMV0sXG4gICAgICAgIFszLCAxLCAzLCAxLCAyLCAxXSxcbiAgICAgICAgWzIsIDEsIDEsIDMsIDMsIDFdLFxuICAgICAgICBbMiwgMywgMSwgMSwgMywgMV0sXG4gICAgICAgIFsyLCAxLCAzLCAxLCAxLCAzXSxcbiAgICAgICAgWzIsIDEsIDMsIDMsIDEsIDFdLFxuICAgICAgICBbMiwgMSwgMywgMSwgMywgMV0sXG4gICAgICAgIFszLCAxLCAxLCAxLCAyLCAzXSxcbiAgICAgICAgWzMsIDEsIDEsIDMsIDIsIDFdLFxuICAgICAgICBbMywgMywgMSwgMSwgMiwgMV0sXG4gICAgICAgIFszLCAxLCAyLCAxLCAxLCAzXSxcbiAgICAgICAgWzMsIDEsIDIsIDMsIDEsIDFdLFxuICAgICAgICBbMywgMywgMiwgMSwgMSwgMV0sXG4gICAgICAgIFszLCAxLCA0LCAxLCAxLCAxXSxcbiAgICAgICAgWzIsIDIsIDEsIDQsIDEsIDFdLFxuICAgICAgICBbNCwgMywgMSwgMSwgMSwgMV0sXG4gICAgICAgIFsxLCAxLCAxLCAyLCAyLCA0XSxcbiAgICAgICAgWzEsIDEsIDEsIDQsIDIsIDJdLFxuICAgICAgICBbMSwgMiwgMSwgMSwgMiwgNF0sXG4gICAgICAgIFsxLCAyLCAxLCA0LCAyLCAxXSxcbiAgICAgICAgWzEsIDQsIDEsIDEsIDIsIDJdLFxuICAgICAgICBbMSwgNCwgMSwgMiwgMiwgMV0sXG4gICAgICAgIFsxLCAxLCAyLCAyLCAxLCA0XSxcbiAgICAgICAgWzEsIDEsIDIsIDQsIDEsIDJdLFxuICAgICAgICBbMSwgMiwgMiwgMSwgMSwgNF0sXG4gICAgICAgIFsxLCAyLCAyLCA0LCAxLCAxXSxcbiAgICAgICAgWzEsIDQsIDIsIDEsIDEsIDJdLFxuICAgICAgICBbMSwgNCwgMiwgMiwgMSwgMV0sXG4gICAgICAgIFsyLCA0LCAxLCAyLCAxLCAxXSxcbiAgICAgICAgWzIsIDIsIDEsIDEsIDEsIDRdLFxuICAgICAgICBbNCwgMSwgMywgMSwgMSwgMV0sXG4gICAgICAgIFsyLCA0LCAxLCAxLCAxLCAyXSxcbiAgICAgICAgWzEsIDMsIDQsIDEsIDEsIDFdLFxuICAgICAgICBbMSwgMSwgMSwgMiwgNCwgMl0sXG4gICAgICAgIFsxLCAyLCAxLCAxLCA0LCAyXSxcbiAgICAgICAgWzEsIDIsIDEsIDIsIDQsIDFdLFxuICAgICAgICBbMSwgMSwgNCwgMiwgMSwgMl0sXG4gICAgICAgIFsxLCAyLCA0LCAxLCAxLCAyXSxcbiAgICAgICAgWzEsIDIsIDQsIDIsIDEsIDFdLFxuICAgICAgICBbNCwgMSwgMSwgMiwgMSwgMl0sXG4gICAgICAgIFs0LCAyLCAxLCAxLCAxLCAyXSxcbiAgICAgICAgWzQsIDIsIDEsIDIsIDEsIDFdLFxuICAgICAgICBbMiwgMSwgMiwgMSwgNCwgMV0sXG4gICAgICAgIFsyLCAxLCA0LCAxLCAyLCAxXSxcbiAgICAgICAgWzQsIDEsIDIsIDEsIDIsIDFdLFxuICAgICAgICBbMSwgMSwgMSwgMSwgNCwgM10sXG4gICAgICAgIFsxLCAxLCAxLCAzLCA0LCAxXSxcbiAgICAgICAgWzEsIDMsIDEsIDEsIDQsIDFdLFxuICAgICAgICBbMSwgMSwgNCwgMSwgMSwgM10sXG4gICAgICAgIFsxLCAxLCA0LCAzLCAxLCAxXSxcbiAgICAgICAgWzQsIDEsIDEsIDEsIDEsIDNdLFxuICAgICAgICBbNCwgMSwgMSwgMywgMSwgMV0sXG4gICAgICAgIFsxLCAxLCAzLCAxLCA0LCAxXSxcbiAgICAgICAgWzEsIDEsIDQsIDEsIDMsIDFdLFxuICAgICAgICBbMywgMSwgMSwgMSwgNCwgMV0sXG4gICAgICAgIFs0LCAxLCAxLCAxLCAzLCAxXSxcbiAgICAgICAgWzIsIDEsIDEsIDQsIDEsIDJdLFxuICAgICAgICBbMiwgMSwgMSwgMiwgMSwgNF0sXG4gICAgICAgIFsyLCAxLCAxLCAyLCAzLCAyXSxcbiAgICAgICAgWzIsIDMsIDMsIDEsIDEsIDEsIDJdXG4gICAgXX0sXG4gICAgU0lOR0xFX0NPREVfRVJST1I6IHt2YWx1ZTogMC42NH0sXG4gICAgQVZHX0NPREVfRVJST1I6IHt2YWx1ZTogMC4zMH0sXG4gICAgRk9STUFUOiB7dmFsdWU6IFwiY29kZV8xMjhcIiwgd3JpdGVhYmxlOiBmYWxzZX0sXG4gICAgTU9EVUxFX0lORElDRVM6IHt2YWx1ZToge2JhcjogWzAsIDIsIDRdLCBzcGFjZTogWzEsIDMsIDVdfX1cbn07XG5cbkNvZGUxMjhSZWFkZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShCYXJjb2RlUmVhZGVyLnByb3RvdHlwZSwgcHJvcGVydGllcyk7XG5Db2RlMTI4UmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IENvZGUxMjhSZWFkZXI7XG5cbkNvZGUxMjhSZWFkZXIucHJvdG90eXBlLl9kZWNvZGVDb2RlID0gZnVuY3Rpb24oc3RhcnQsIGNvcnJlY3Rpb24pIHtcbiAgICB2YXIgY291bnRlciA9IFswLCAwLCAwLCAwLCAwLCAwXSxcbiAgICAgICAgaSxcbiAgICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICAgIG9mZnNldCA9IHN0YXJ0LFxuICAgICAgICBpc1doaXRlID0gIXNlbGYuX3Jvd1tvZmZzZXRdLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogc3RhcnQsXG4gICAgICAgICAgICBjb3JyZWN0aW9uOiB7XG4gICAgICAgICAgICAgICAgYmFyOiAxLFxuICAgICAgICAgICAgICAgIHNwYWNlOiAxXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvZGUsXG4gICAgICAgIGVycm9yO1xuXG4gICAgZm9yICggaSA9IG9mZnNldDsgaSA8IHNlbGYuX3Jvdy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc2VsZi5fcm93W2ldIF4gaXNXaGl0ZSkge1xuICAgICAgICAgICAgY291bnRlcltjb3VudGVyUG9zXSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNvdW50ZXJQb3MgPT09IGNvdW50ZXIubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIGlmIChjb3JyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuX2NvcnJlY3QoY291bnRlciwgY29ycmVjdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAoY29kZSA9IDA7IGNvZGUgPCBzZWxmLkNPREVfUEFUVEVSTi5sZW5ndGg7IGNvZGUrKykge1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9IHNlbGYuX21hdGNoUGF0dGVybihjb3VudGVyLCBzZWxmLkNPREVfUEFUVEVSTltjb2RlXSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciA8IGJlc3RNYXRjaC5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmNvZGUgPSBjb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVuZCA9IGk7XG4gICAgICAgICAgICAgICAgaWYgKGJlc3RNYXRjaC5jb2RlID09PSAtMSB8fCBiZXN0TWF0Y2guZXJyb3IgPiBzZWxmLkFWR19DT0RFX0VSUk9SKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5DT0RFX1BBVFRFUk5bYmVzdE1hdGNoLmNvZGVdKSB7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5jb3JyZWN0aW9uLmJhciA9IGNhbGN1bGF0ZUNvcnJlY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkNPREVfUEFUVEVSTltiZXN0TWF0Y2guY29kZV0sIGNvdW50ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLk1PRFVMRV9JTkRJQ0VTLmJhcik7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5jb3JyZWN0aW9uLnNwYWNlID0gY2FsY3VsYXRlQ29ycmVjdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuQ09ERV9QQVRURVJOW2Jlc3RNYXRjaC5jb2RlXSwgY291bnRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTU9EVUxFX0lORElDRVMuc3BhY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYmVzdE1hdGNoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyUG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgIGlzV2hpdGUgPSAhaXNXaGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbkNvZGUxMjhSZWFkZXIucHJvdG90eXBlLl9jb3JyZWN0ID0gZnVuY3Rpb24oY291bnRlciwgY29ycmVjdGlvbikge1xuICAgIHRoaXMuX2NvcnJlY3RCYXJzKGNvdW50ZXIsIGNvcnJlY3Rpb24uYmFyLCB0aGlzLk1PRFVMRV9JTkRJQ0VTLmJhcik7XG4gICAgdGhpcy5fY29ycmVjdEJhcnMoY291bnRlciwgY29ycmVjdGlvbi5zcGFjZSwgdGhpcy5NT0RVTEVfSU5ESUNFUy5zcGFjZSk7XG59O1xuXG5Db2RlMTI4UmVhZGVyLnByb3RvdHlwZS5fZmluZFN0YXJ0ID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGNvdW50ZXIgPSBbMCwgMCwgMCwgMCwgMCwgMF0sXG4gICAgICAgIGksXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBvZmZzZXQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3JvdyksXG4gICAgICAgIGlzV2hpdGUgPSBmYWxzZSxcbiAgICAgICAgY291bnRlclBvcyA9IDAsXG4gICAgICAgIGJlc3RNYXRjaCA9IHtcbiAgICAgICAgICAgIGVycm9yOiBOdW1iZXIuTUFYX1ZBTFVFLFxuICAgICAgICAgICAgY29kZTogLTEsXG4gICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgIGVuZDogMCxcbiAgICAgICAgICAgIGNvcnJlY3Rpb246IHtcbiAgICAgICAgICAgICAgICBiYXI6IDEsXG4gICAgICAgICAgICAgICAgc3BhY2U6IDFcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29kZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGosXG4gICAgICAgIHN1bTtcblxuICAgIGZvciAoIGkgPSBvZmZzZXQ7IGkgPCBzZWxmLl9yb3cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10rKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBjb3VudGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICBzdW0gPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgY291bnRlci5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICBzdW0gKz0gY291bnRlcltqXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb2RlID0gc2VsZi5TVEFSVF9DT0RFX0E7IGNvZGUgPD0gc2VsZi5TVEFSVF9DT0RFX0M7IGNvZGUrKykge1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9IHNlbGYuX21hdGNoUGF0dGVybihjb3VudGVyLCBzZWxmLkNPREVfUEFUVEVSTltjb2RlXSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciA8IGJlc3RNYXRjaC5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmNvZGUgPSBjb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGJlc3RNYXRjaC5lcnJvciA8IHNlbGYuQVZHX0NPREVfRVJST1IpIHtcbiAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLnN0YXJ0ID0gaSAtIHN1bTtcbiAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVuZCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5jb3JyZWN0aW9uLmJhciA9IGNhbGN1bGF0ZUNvcnJlY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkNPREVfUEFUVEVSTltiZXN0TWF0Y2guY29kZV0sIGNvdW50ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLk1PRFVMRV9JTkRJQ0VTLmJhcik7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5jb3JyZWN0aW9uLnNwYWNlID0gY2FsY3VsYXRlQ29ycmVjdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuQ09ERV9QQVRURVJOW2Jlc3RNYXRjaC5jb2RlXSwgY291bnRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTU9EVUxFX0lORElDRVMuc3BhY2UpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmVzdE1hdGNoO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgNDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbal0gPSBjb3VudGVyW2ogKyAyXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY291bnRlcls0XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlcls1XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlclBvcy0tO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyUG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgIGlzV2hpdGUgPSAhaXNXaGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbkNvZGUxMjhSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIHN0YXJ0SW5mbyA9IHNlbGYuX2ZpbmRTdGFydCgpLFxuICAgICAgICBjb2RlID0gbnVsbCxcbiAgICAgICAgZG9uZSA9IGZhbHNlLFxuICAgICAgICByZXN1bHQgPSBbXSxcbiAgICAgICAgbXVsdGlwbGllciA9IDAsXG4gICAgICAgIGNoZWNrc3VtID0gMCxcbiAgICAgICAgY29kZXNldCxcbiAgICAgICAgcmF3UmVzdWx0ID0gW10sXG4gICAgICAgIGRlY29kZWRDb2RlcyA9IFtdLFxuICAgICAgICBzaGlmdE5leHQgPSBmYWxzZSxcbiAgICAgICAgdW5zaGlmdCxcbiAgICAgICAgcmVtb3ZlTGFzdENoYXJhY3RlciA9IHRydWU7XG5cbiAgICBpZiAoc3RhcnRJbmZvID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb2RlID0ge1xuICAgICAgICBjb2RlOiBzdGFydEluZm8uY29kZSxcbiAgICAgICAgc3RhcnQ6IHN0YXJ0SW5mby5zdGFydCxcbiAgICAgICAgZW5kOiBzdGFydEluZm8uZW5kLFxuICAgICAgICBjb3JyZWN0aW9uOiB7XG4gICAgICAgICAgICBiYXI6IHN0YXJ0SW5mby5jb3JyZWN0aW9uLmJhcixcbiAgICAgICAgICAgIHNwYWNlOiBzdGFydEluZm8uY29ycmVjdGlvbi5zcGFjZVxuICAgICAgICB9XG4gICAgfTtcbiAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcbiAgICBjaGVja3N1bSA9IGNvZGUuY29kZTtcbiAgICBzd2l0Y2ggKGNvZGUuY29kZSkge1xuICAgIGNhc2Ugc2VsZi5TVEFSVF9DT0RFX0E6XG4gICAgICAgIGNvZGVzZXQgPSBzZWxmLkNPREVfQTtcbiAgICAgICAgYnJlYWs7XG4gICAgY2FzZSBzZWxmLlNUQVJUX0NPREVfQjpcbiAgICAgICAgY29kZXNldCA9IHNlbGYuQ09ERV9CO1xuICAgICAgICBicmVhaztcbiAgICBjYXNlIHNlbGYuU1RBUlRfQ09ERV9DOlxuICAgICAgICBjb2Rlc2V0ID0gc2VsZi5DT0RFX0M7XG4gICAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHdoaWxlICghZG9uZSkge1xuICAgICAgICB1bnNoaWZ0ID0gc2hpZnROZXh0O1xuICAgICAgICBzaGlmdE5leHQgPSBmYWxzZTtcbiAgICAgICAgY29kZSA9IHNlbGYuX2RlY29kZUNvZGUoY29kZS5lbmQsIGNvZGUuY29ycmVjdGlvbik7XG4gICAgICAgIGlmIChjb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoY29kZS5jb2RlICE9PSBzZWxmLlNUT1BfQ09ERSkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUxhc3RDaGFyYWN0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY29kZS5jb2RlICE9PSBzZWxmLlNUT1BfQ09ERSkge1xuICAgICAgICAgICAgICAgIHJhd1Jlc3VsdC5wdXNoKGNvZGUuY29kZSk7XG4gICAgICAgICAgICAgICAgbXVsdGlwbGllcisrO1xuICAgICAgICAgICAgICAgIGNoZWNrc3VtICs9IG11bHRpcGxpZXIgKiBjb2RlLmNvZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcblxuICAgICAgICAgICAgc3dpdGNoIChjb2Rlc2V0KSB7XG4gICAgICAgICAgICBjYXNlIHNlbGYuQ09ERV9BOlxuICAgICAgICAgICAgICAgIGlmIChjb2RlLmNvZGUgPCA2NCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDMyICsgY29kZS5jb2RlKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb2RlLmNvZGUgPCA5Nikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUuY29kZSAtIDY0KSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGUuY29kZSAhPT0gc2VsZi5TVE9QX0NPREUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUxhc3RDaGFyYWN0ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvZGUuY29kZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIHNlbGYuQ09ERV9TSElGVDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0TmV4dCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2Rlc2V0ID0gc2VsZi5DT0RFX0I7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBzZWxmLkNPREVfQjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVzZXQgPSBzZWxmLkNPREVfQjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIHNlbGYuQ09ERV9DOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZXNldCA9IHNlbGYuQ09ERV9DO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2Ugc2VsZi5TVE9QX0NPREU6XG4gICAgICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBzZWxmLkNPREVfQjpcbiAgICAgICAgICAgICAgICBpZiAoY29kZS5jb2RlIDwgOTYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgzMiArIGNvZGUuY29kZSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2RlLmNvZGUgIT09IHNlbGYuU1RPUF9DT0RFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVMYXN0Q2hhcmFjdGVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb2RlLmNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBzZWxmLkNPREVfU0hJRlQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBzaGlmdE5leHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZXNldCA9IHNlbGYuQ09ERV9BO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2Ugc2VsZi5DT0RFX0E6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2Rlc2V0ID0gc2VsZi5DT0RFX0E7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBzZWxmLkNPREVfQzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVzZXQgPSBzZWxmLkNPREVfQztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIHNlbGYuU1RPUF9DT0RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2Ugc2VsZi5DT0RFX0M6XG4gICAgICAgICAgICAgICAgaWYgKGNvZGUuY29kZSA8IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjb2RlLmNvZGUgPCAxMCA/IFwiMFwiICsgY29kZS5jb2RlIDogY29kZS5jb2RlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29kZS5jb2RlICE9PSBzZWxmLlNUT1BfQ09ERSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlTGFzdENoYXJhY3RlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY29kZS5jb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2Ugc2VsZi5DT0RFX0E6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2Rlc2V0ID0gc2VsZi5DT0RFX0E7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBzZWxmLkNPREVfQjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVzZXQgPSBzZWxmLkNPREVfQjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIHNlbGYuU1RPUF9DT0RFOlxuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1bnNoaWZ0KSB7XG4gICAgICAgICAgICBjb2Rlc2V0ID0gY29kZXNldCA9PT0gc2VsZi5DT0RFX0EgPyBzZWxmLkNPREVfQiA6IHNlbGYuQ09ERV9BO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29kZS5lbmQgPSBzZWxmLl9uZXh0VW5zZXQoc2VsZi5fcm93LCBjb2RlLmVuZCk7XG4gICAgaWYgKCFzZWxmLl92ZXJpZnlUcmFpbGluZ1doaXRlc3BhY2UoY29kZSkpe1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjaGVja3N1bSAtPSBtdWx0aXBsaWVyICogcmF3UmVzdWx0W3Jhd1Jlc3VsdC5sZW5ndGggLSAxXTtcbiAgICBpZiAoY2hlY2tzdW0gJSAxMDMgIT09IHJhd1Jlc3VsdFtyYXdSZXN1bHQubGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCFyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIHJlbW92ZSBsYXN0IGNvZGUgZnJvbSByZXN1bHQgKGNoZWNrc3VtKVxuICAgIGlmIChyZW1vdmVMYXN0Q2hhcmFjdGVyKSB7XG4gICAgICAgIHJlc3VsdC5zcGxpY2UocmVzdWx0Lmxlbmd0aCAtIDEsIDEpO1xuICAgIH1cblxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmpvaW4oXCJcIiksXG4gICAgICAgIHN0YXJ0OiBzdGFydEluZm8uc3RhcnQsXG4gICAgICAgIGVuZDogY29kZS5lbmQsXG4gICAgICAgIGNvZGVzZXQ6IGNvZGVzZXQsXG4gICAgICAgIHN0YXJ0SW5mbzogc3RhcnRJbmZvLFxuICAgICAgICBkZWNvZGVkQ29kZXM6IGRlY29kZWRDb2RlcyxcbiAgICAgICAgZW5kSW5mbzogY29kZVxuICAgIH07XG59O1xuXG5cbkJhcmNvZGVSZWFkZXIucHJvdG90eXBlLl92ZXJpZnlUcmFpbGluZ1doaXRlc3BhY2UgPSBmdW5jdGlvbihlbmRJbmZvKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICB0cmFpbGluZ1doaXRlc3BhY2VFbmQ7XG5cbiAgICB0cmFpbGluZ1doaXRlc3BhY2VFbmQgPSBlbmRJbmZvLmVuZCArICgoZW5kSW5mby5lbmQgLSBlbmRJbmZvLnN0YXJ0KSAvIDIpO1xuICAgIGlmICh0cmFpbGluZ1doaXRlc3BhY2VFbmQgPCBzZWxmLl9yb3cubGVuZ3RoKSB7XG4gICAgICAgIGlmIChzZWxmLl9tYXRjaFJhbmdlKGVuZEluZm8uZW5kLCB0cmFpbGluZ1doaXRlc3BhY2VFbmQsIDApKSB7XG4gICAgICAgICAgICByZXR1cm4gZW5kSW5mbztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUNvcnJlY3Rpb24oZXhwZWN0ZWQsIG5vcm1hbGl6ZWQsIGluZGljZXMpIHtcbiAgICB2YXIgbGVuZ3RoID0gaW5kaWNlcy5sZW5ndGgsXG4gICAgICAgIHN1bU5vcm1hbGl6ZWQgPSAwLFxuICAgICAgICBzdW1FeHBlY3RlZCA9IDA7XG5cbiAgICB3aGlsZShsZW5ndGgtLSkge1xuICAgICAgICBzdW1FeHBlY3RlZCArPSBleHBlY3RlZFtpbmRpY2VzW2xlbmd0aF1dO1xuICAgICAgICBzdW1Ob3JtYWxpemVkICs9IG5vcm1hbGl6ZWRbaW5kaWNlc1tsZW5ndGhdXTtcbiAgICB9XG4gICAgcmV0dXJuIHN1bUV4cGVjdGVkL3N1bU5vcm1hbGl6ZWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvZGUxMjhSZWFkZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcmVhZGVyL2NvZGVfMTI4X3JlYWRlci5qcyIsImltcG9ydCBDb2RlMzlSZWFkZXIgZnJvbSAnLi9jb2RlXzM5X3JlYWRlcic7XG5cbmZ1bmN0aW9uIENvZGUzOVZJTlJlYWRlcigpIHtcbiAgICBDb2RlMzlSZWFkZXIuY2FsbCh0aGlzKTtcbn1cblxudmFyIHBhdHRlcm5zID0ge1xuICAgIElPUTogL1tJT1FdL2csXG4gICAgQVowOTogL1tBLVowLTldezE3fS9cbn07XG5cbkNvZGUzOVZJTlJlYWRlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKENvZGUzOVJlYWRlci5wcm90b3R5cGUpO1xuQ29kZTM5VklOUmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IENvZGUzOVZJTlJlYWRlcjtcblxuLy8gQ3JpYmJlZCBmcm9tOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3p4aW5nL3p4aW5nL2Jsb2IvbWFzdGVyL2NvcmUvc3JjL21haW4vamF2YS9jb20vZ29vZ2xlL3p4aW5nL2NsaWVudC9yZXN1bHQvVklOUmVzdWx0UGFyc2VyLmphdmFcbkNvZGUzOVZJTlJlYWRlci5wcm90b3R5cGUuX2RlY29kZSA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciByZXN1bHQgPSBDb2RlMzlSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUuYXBwbHkodGhpcyk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIGNvZGUgPSByZXN1bHQuY29kZTtcblxuICAgIGlmICghY29kZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb2RlID0gY29kZS5yZXBsYWNlKHBhdHRlcm5zLklPUSwgJycpO1xuXG4gICAgaWYgKCFjb2RlLm1hdGNoKHBhdHRlcm5zLkFaMDkpKSB7XG4gICAgICAgIGlmIChFTlYuZGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdGYWlsZWQgQVowOSBwYXR0ZXJuIGNvZGU6JywgY29kZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9jaGVja0NoZWNrc3VtKGNvZGUpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJlc3VsdC5jb2RlID0gY29kZTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuQ29kZTM5VklOUmVhZGVyLnByb3RvdHlwZS5fY2hlY2tDaGVja3N1bSA9IGZ1bmN0aW9uKGNvZGUpIHtcbiAgICAvLyBUT0RPXG4gICAgcmV0dXJuICEhY29kZTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvZGUzOVZJTlJlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvY29kZV8zOV92aW5fcmVhZGVyLmpzIiwiaW1wb3J0IEJhcmNvZGVSZWFkZXIgZnJvbSAnLi9iYXJjb2RlX3JlYWRlcic7XG5pbXBvcnQgQXJyYXlIZWxwZXIgZnJvbSAnLi4vY29tbW9uL2FycmF5X2hlbHBlcic7XG5cbmZ1bmN0aW9uIENvZGU5M1JlYWRlcigpIHtcbiAgICBCYXJjb2RlUmVhZGVyLmNhbGwodGhpcyk7XG59XG5cbmNvbnN0IEFMUEhBQkVUSF9TVFJJTkcgPSBcIjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi0uICQvKyVhYmNkKlwiO1xuXG52YXIgcHJvcGVydGllcyA9IHtcbiAgICBBTFBIQUJFVEhfU1RSSU5HOiB7dmFsdWU6IEFMUEhBQkVUSF9TVFJJTkd9LFxuICAgIEFMUEhBQkVUOiB7dmFsdWU6IEFMUEhBQkVUSF9TVFJJTkcuc3BsaXQoJycpLm1hcChjaGFyID0+IGNoYXIuY2hhckNvZGVBdCgwKSl9LFxuICAgIENIQVJBQ1RFUl9FTkNPRElOR1M6IHt2YWx1ZTogW1xuICAgICAgICAweDExNCwgMHgxNDgsIDB4MTQ0LCAweDE0MiwgMHgxMjgsIDB4MTI0LCAweDEyMiwgMHgxNTAsIDB4MTEyLCAweDEwQSxcbiAgICAgICAgMHgxQTgsIDB4MUE0LCAweDFBMiwgMHgxOTQsIDB4MTkyLCAweDE4QSwgMHgxNjgsIDB4MTY0LCAweDE2MiwgMHgxMzQsXG4gICAgICAgIDB4MTFBLCAweDE1OCwgMHgxNEMsIDB4MTQ2LCAweDEyQywgMHgxMTYsIDB4MUI0LCAweDFCMiwgMHgxQUMsIDB4MUE2LFxuICAgICAgICAweDE5NiwgMHgxOUEsIDB4MTZDLCAweDE2NiwgMHgxMzYsIDB4MTNBLCAweDEyRSwgMHgxRDQsIDB4MUQyLCAweDFDQSxcbiAgICAgICAgMHgxNkUsIDB4MTc2LCAweDFBRSwgMHgxMjYsIDB4MURBLCAweDFENiwgMHgxMzIsIDB4MTVFXG4gICAgXX0sXG4gICAgQVNURVJJU0s6IHt2YWx1ZTogMHgxNUV9LFxuICAgIEZPUk1BVDoge3ZhbHVlOiBcImNvZGVfOTNcIiwgd3JpdGVhYmxlOiBmYWxzZX1cbn07XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEJhcmNvZGVSZWFkZXIucHJvdG90eXBlLCBwcm9wZXJ0aWVzKTtcbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBDb2RlOTNSZWFkZXI7XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuX2RlY29kZSA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgY291bnRlcnMgPSBbMCwgMCwgMCwgMCwgMCwgMF0sXG4gICAgICAgIHJlc3VsdCA9IFtdLFxuICAgICAgICBzdGFydCA9IHNlbGYuX2ZpbmRTdGFydCgpLFxuICAgICAgICBkZWNvZGVkQ2hhcixcbiAgICAgICAgbGFzdFN0YXJ0LFxuICAgICAgICBwYXR0ZXJuLFxuICAgICAgICBuZXh0U3RhcnQ7XG5cbiAgICBpZiAoIXN0YXJ0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBuZXh0U3RhcnQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3Jvdywgc3RhcnQuZW5kKTtcblxuICAgIGRvIHtcbiAgICAgICAgY291bnRlcnMgPSBzZWxmLl90b0NvdW50ZXJzKG5leHRTdGFydCwgY291bnRlcnMpO1xuICAgICAgICBwYXR0ZXJuID0gc2VsZi5fdG9QYXR0ZXJuKGNvdW50ZXJzKTtcbiAgICAgICAgaWYgKHBhdHRlcm4gPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBkZWNvZGVkQ2hhciA9IHNlbGYuX3BhdHRlcm5Ub0NoYXIocGF0dGVybik7XG4gICAgICAgIGlmIChkZWNvZGVkQ2hhciA8IDApe1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0LnB1c2goZGVjb2RlZENoYXIpO1xuICAgICAgICBsYXN0U3RhcnQgPSBuZXh0U3RhcnQ7XG4gICAgICAgIG5leHRTdGFydCArPSBBcnJheUhlbHBlci5zdW0oY291bnRlcnMpO1xuICAgICAgICBuZXh0U3RhcnQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3JvdywgbmV4dFN0YXJ0KTtcbiAgICB9IHdoaWxlIChkZWNvZGVkQ2hhciAhPT0gJyonKTtcbiAgICByZXN1bHQucG9wKCk7XG5cbiAgICBpZiAoIXJlc3VsdC5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCFzZWxmLl92ZXJpZnlFbmQobGFzdFN0YXJ0LCBuZXh0U3RhcnQsIGNvdW50ZXJzKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIXNlbGYuX3ZlcmlmeUNoZWNrc3VtcyhyZXN1bHQpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJlc3VsdCA9IHJlc3VsdC5zbGljZSgwLCByZXN1bHQubGVuZ3RoIC0gMik7XG4gICAgaWYgKChyZXN1bHQgPSBzZWxmLl9kZWNvZGVFeHRlbmRlZChyZXN1bHQpKSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmpvaW4oXCJcIiksXG4gICAgICAgIHN0YXJ0OiBzdGFydC5zdGFydCxcbiAgICAgICAgZW5kOiBuZXh0U3RhcnQsXG4gICAgICAgIHN0YXJ0SW5mbzogc3RhcnQsXG4gICAgICAgIGRlY29kZWRDb2RlczogcmVzdWx0XG4gICAgfTtcbn07XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuX3ZlcmlmeUVuZCA9IGZ1bmN0aW9uKGxhc3RTdGFydCwgbmV4dFN0YXJ0KSB7XG4gICAgaWYgKGxhc3RTdGFydCA9PT0gbmV4dFN0YXJ0IHx8ICF0aGlzLl9yb3dbbmV4dFN0YXJ0XSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcblxuQ29kZTkzUmVhZGVyLnByb3RvdHlwZS5fcGF0dGVyblRvQ2hhciA9IGZ1bmN0aW9uKHBhdHRlcm4pIHtcbiAgICB2YXIgaSxcbiAgICAgICAgc2VsZiA9IHRoaXM7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgc2VsZi5DSEFSQUNURVJfRU5DT0RJTkdTLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLkNIQVJBQ1RFUl9FTkNPRElOR1NbaV0gPT09IHBhdHRlcm4pIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHNlbGYuQUxQSEFCRVRbaV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbn07XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuX3RvUGF0dGVybiA9IGZ1bmN0aW9uKGNvdW50ZXJzKSB7XG4gICAgY29uc3QgbnVtQ291bnRlcnMgPSBjb3VudGVycy5sZW5ndGg7XG4gICAgbGV0IHBhdHRlcm4gPSAwO1xuICAgIGxldCBzdW0gPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtQ291bnRlcnM7IGkrKykge1xuICAgICAgICBzdW0gKz0gY291bnRlcnNbaV07XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1Db3VudGVyczsgaSsrKSB7XG4gICAgICAgIGxldCBub3JtYWxpemVkID0gTWF0aC5yb3VuZChjb3VudGVyc1tpXSAqIDkgLyBzdW0pO1xuICAgICAgICBpZiAobm9ybWFsaXplZCA8IDEgfHwgbm9ybWFsaXplZCA+IDQpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGkgJiAxKSA9PT0gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBub3JtYWxpemVkOyBqKyspIHtcbiAgICAgICAgICAgICAgICBwYXR0ZXJuID0gKHBhdHRlcm4gPDwgMSkgfCAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGF0dGVybiA8PD0gbm9ybWFsaXplZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXR0ZXJuO1xufTtcblxuQ29kZTkzUmVhZGVyLnByb3RvdHlwZS5fZmluZFN0YXJ0ID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBvZmZzZXQgPSBzZWxmLl9uZXh0U2V0KHNlbGYuX3JvdyksXG4gICAgICAgIHBhdHRlcm5TdGFydCA9IG9mZnNldCxcbiAgICAgICAgY291bnRlciA9IFswLCAwLCAwLCAwLCAwLCAwXSxcbiAgICAgICAgY291bnRlclBvcyA9IDAsXG4gICAgICAgIGlzV2hpdGUgPSBmYWxzZSxcbiAgICAgICAgaSxcbiAgICAgICAgaixcbiAgICAgICAgd2hpdGVTcGFjZU11c3RTdGFydDtcblxuICAgIGZvciAoIGkgPSBvZmZzZXQ7IGkgPCBzZWxmLl9yb3cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHNlbGYuX3Jvd1tpXSBeIGlzV2hpdGUpIHtcbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10rKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyUG9zID09PSBjb3VudGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAvLyBmaW5kIHN0YXJ0IHBhdHRlcm5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5fdG9QYXR0ZXJuKGNvdW50ZXIpID09PSBzZWxmLkFTVEVSSVNLKSB7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2VNdXN0U3RhcnQgPSBNYXRoLmZsb29yKE1hdGgubWF4KDAsIHBhdHRlcm5TdGFydCAtICgoaSAtIHBhdHRlcm5TdGFydCkgLyA0KSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi5fbWF0Y2hSYW5nZSh3aGl0ZVNwYWNlTXVzdFN0YXJ0LCBwYXR0ZXJuU3RhcnQsIDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBwYXR0ZXJuU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBpXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGF0dGVyblN0YXJ0ICs9IGNvdW50ZXJbMF0gKyBjb3VudGVyWzFdO1xuICAgICAgICAgICAgICAgIGZvciAoIGogPSAwOyBqIDwgNDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbal0gPSBjb3VudGVyW2ogKyAyXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY291bnRlcls0XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlcls1XSA9IDA7XG4gICAgICAgICAgICAgICAgY291bnRlclBvcy0tO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyUG9zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdID0gMTtcbiAgICAgICAgICAgIGlzV2hpdGUgPSAhaXNXaGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuX2RlY29kZUV4dGVuZGVkID0gZnVuY3Rpb24oY2hhckFycmF5KSB7XG4gICAgY29uc3QgbGVuZ3RoID0gY2hhckFycmF5Lmxlbmd0aDtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNoYXIgPSBjaGFyQXJyYXlbaV07XG4gICAgICAgIGlmIChjaGFyID49ICdhJyAmJiBjaGFyIDw9ICdkJykge1xuICAgICAgICAgICAgaWYgKGkgPiAobGVuZ3RoIC0gMikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG5leHRDaGFyID0gY2hhckFycmF5WysraV07XG4gICAgICAgICAgICBjb25zdCBuZXh0Q2hhckNvZGUgPSBuZXh0Q2hhci5jaGFyQ29kZUF0KDApO1xuICAgICAgICAgICAgbGV0IGRlY29kZWRDaGFyO1xuICAgICAgICAgICAgc3dpdGNoIChjaGFyKSB7XG4gICAgICAgICAgICBjYXNlICdhJzpcbiAgICAgICAgICAgICAgICBpZiAobmV4dENoYXIgPj0gJ0EnICYmIG5leHRDaGFyIDw9ICdaJykge1xuICAgICAgICAgICAgICAgICAgICBkZWNvZGVkQ2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dENoYXJDb2RlIC0gNjQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2InOlxuICAgICAgICAgICAgICAgIGlmIChuZXh0Q2hhciA+PSAnQScgJiYgbmV4dENoYXIgPD0gJ0UnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgLSAzOCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA+PSAnRicgJiYgbmV4dENoYXIgPD0gJ0onKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgLSAxMSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA+PSAnSycgJiYgbmV4dENoYXIgPD0gJ08nKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgKyAxNik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA+PSAnUCcgJiYgbmV4dENoYXIgPD0gJ1MnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgKyA0Myk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA+PSAnVCcgJiYgbmV4dENoYXIgPD0gJ1onKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZSgxMjcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2MnOlxuICAgICAgICAgICAgICAgIGlmIChuZXh0Q2hhciA+PSAnQScgJiYgbmV4dENoYXIgPD0gJ08nKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgLSAzMik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0Q2hhciA9PT0gJ1onKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gJzonO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGlmIChuZXh0Q2hhciA+PSAnQScgJiYgbmV4dENoYXIgPD0gJ1onKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlY29kZWRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShuZXh0Q2hhckNvZGUgKyAzMik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2goZGVjb2RlZENoYXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goY2hhcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbkNvZGU5M1JlYWRlci5wcm90b3R5cGUuX3ZlcmlmeUNoZWNrc3VtcyA9IGZ1bmN0aW9uKGNoYXJBcnJheSkge1xuICAgIHJldHVybiB0aGlzLl9tYXRjaENoZWNrQ2hhcihjaGFyQXJyYXksIGNoYXJBcnJheS5sZW5ndGggLSAyLCAyMClcbiAgICAgICAgJiYgdGhpcy5fbWF0Y2hDaGVja0NoYXIoY2hhckFycmF5LCBjaGFyQXJyYXkubGVuZ3RoIC0gMSwgMTUpO1xufTtcblxuQ29kZTkzUmVhZGVyLnByb3RvdHlwZS5fbWF0Y2hDaGVja0NoYXIgPSBmdW5jdGlvbihjaGFyQXJyYXksIGluZGV4LCBtYXhXZWlnaHQpIHtcbiAgICBjb25zdCBhcnJheVRvQ2hlY2sgPSBjaGFyQXJyYXkuc2xpY2UoMCwgaW5kZXgpO1xuICAgIGNvbnN0IGxlbmd0aCA9IGFycmF5VG9DaGVjay5sZW5ndGg7XG4gICAgY29uc3Qgd2VpZ2h0ZWRTdW1zID0gYXJyYXlUb0NoZWNrLnJlZHVjZSgoc3VtLCBjaGFyLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHdlaWdodCA9ICgoKGkgKiAtMSkgKyAobGVuZ3RoIC0gMSkpICUgbWF4V2VpZ2h0KSArIDE7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5BTFBIQUJFVC5pbmRleE9mKGNoYXIuY2hhckNvZGVBdCgwKSk7XG4gICAgICAgIHJldHVybiBzdW0gKyAod2VpZ2h0ICogdmFsdWUpO1xuICAgIH0sIDApO1xuXG4gICAgY29uc3QgY2hlY2tDaGFyID0gdGhpcy5BTFBIQUJFVFsod2VpZ2h0ZWRTdW1zICUgNDcpXTtcbiAgICByZXR1cm4gY2hlY2tDaGFyID09PSBjaGFyQXJyYXlbaW5kZXhdLmNoYXJDb2RlQXQoMCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb2RlOTNSZWFkZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvcmVhZGVyL2NvZGVfOTNfcmVhZGVyLmpzIiwiaW1wb3J0IEVBTlJlYWRlciBmcm9tICcuL2Vhbl9yZWFkZXInO1xuXG5mdW5jdGlvbiBFQU4yUmVhZGVyKCkge1xuICAgIEVBTlJlYWRlci5jYWxsKHRoaXMpO1xufVxuXG52YXIgcHJvcGVydGllcyA9IHtcbiAgICBGT1JNQVQ6IHt2YWx1ZTogXCJlYW5fMlwiLCB3cml0ZWFibGU6IGZhbHNlfVxufTtcblxuRUFOMlJlYWRlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVBTlJlYWRlci5wcm90b3R5cGUsIHByb3BlcnRpZXMpO1xuRUFOMlJlYWRlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBFQU4yUmVhZGVyO1xuXG5FQU4yUmVhZGVyLnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbihyb3csIHN0YXJ0KSB7XG4gICAgdGhpcy5fcm93ID0gcm93O1xuICAgIHZhciBjb3VudGVycyA9IFswLCAwLCAwLCAwXSxcbiAgICAgICAgY29kZUZyZXF1ZW5jeSA9IDAsXG4gICAgICAgIGkgPSAwLFxuICAgICAgICBvZmZzZXQgPSBzdGFydCxcbiAgICAgICAgZW5kID0gdGhpcy5fcm93Lmxlbmd0aCxcbiAgICAgICAgY29kZSxcbiAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgIGRlY29kZWRDb2RlcyA9IFtdO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IDIgJiYgb2Zmc2V0IDwgZW5kOyBpKyspIHtcbiAgICAgICAgY29kZSA9IHRoaXMuX2RlY29kZUNvZGUob2Zmc2V0KTtcbiAgICAgICAgaWYgKCFjb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcbiAgICAgICAgcmVzdWx0LnB1c2goY29kZS5jb2RlICUgMTApO1xuICAgICAgICBpZiAoY29kZS5jb2RlID49IHRoaXMuQ09ERV9HX1NUQVJUKSB7XG4gICAgICAgICAgICBjb2RlRnJlcXVlbmN5IHw9IDEgPDwgKDEgLSBpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaSAhPSAxKSB7XG4gICAgICAgICAgICBvZmZzZXQgPSB0aGlzLl9uZXh0U2V0KHRoaXMuX3JvdywgY29kZS5lbmQpO1xuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5fbmV4dFVuc2V0KHRoaXMuX3Jvdywgb2Zmc2V0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IDIgfHwgKHBhcnNlSW50KHJlc3VsdC5qb2luKFwiXCIpKSAlIDQpICAhPT0gY29kZUZyZXF1ZW5jeSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29kZTogcmVzdWx0LmpvaW4oXCJcIiksXG4gICAgICAgIGRlY29kZWRDb2RlcyxcbiAgICAgICAgZW5kOiBjb2RlLmVuZFxuICAgIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFQU4yUmVhZGVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3JlYWRlci9lYW5fMl9yZWFkZXIuanMiLCJpbXBvcnQgRUFOUmVhZGVyIGZyb20gJy4vZWFuX3JlYWRlcic7XG5cbmZ1bmN0aW9uIEVBTjVSZWFkZXIoKSB7XG4gICAgRUFOUmVhZGVyLmNhbGwodGhpcyk7XG59XG5cbnZhciBwcm9wZXJ0aWVzID0ge1xuICAgIEZPUk1BVDoge3ZhbHVlOiBcImVhbl81XCIsIHdyaXRlYWJsZTogZmFsc2V9XG59O1xuXG5jb25zdCBDSEVDS19ESUdJVF9FTkNPRElOR1MgPSBbMjQsIDIwLCAxOCwgMTcsIDEyLCA2LCAzLCAxMCwgOSwgNV07XG5cbkVBTjVSZWFkZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFQU5SZWFkZXIucHJvdG90eXBlLCBwcm9wZXJ0aWVzKTtcbkVBTjVSZWFkZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gRUFONVJlYWRlcjtcblxuRUFONVJlYWRlci5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24ocm93LCBzdGFydCkge1xuICAgIHRoaXMuX3JvdyA9IHJvdztcbiAgICB2YXIgY291bnRlcnMgPSBbMCwgMCwgMCwgMF0sXG4gICAgICAgIGNvZGVGcmVxdWVuY3kgPSAwLFxuICAgICAgICBpID0gMCxcbiAgICAgICAgb2Zmc2V0ID0gc3RhcnQsXG4gICAgICAgIGVuZCA9IHRoaXMuX3Jvdy5sZW5ndGgsXG4gICAgICAgIGNvZGUsXG4gICAgICAgIHJlc3VsdCA9IFtdLFxuICAgICAgICBkZWNvZGVkQ29kZXMgPSBbXTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCA1ICYmIG9mZnNldCA8IGVuZDsgaSsrKSB7XG4gICAgICAgIGNvZGUgPSB0aGlzLl9kZWNvZGVDb2RlKG9mZnNldCk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZGVjb2RlZENvZGVzLnB1c2goY29kZSk7XG4gICAgICAgIHJlc3VsdC5wdXNoKGNvZGUuY29kZSAlIDEwKTtcbiAgICAgICAgaWYgKGNvZGUuY29kZSA+PSB0aGlzLkNPREVfR19TVEFSVCkge1xuICAgICAgICAgICAgY29kZUZyZXF1ZW5jeSB8PSAxIDw8ICg0IC0gaSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgIT0gNCkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5fbmV4dFNldCh0aGlzLl9yb3csIGNvZGUuZW5kKTtcbiAgICAgICAgICAgIG9mZnNldCA9IHRoaXMuX25leHRVbnNldCh0aGlzLl9yb3csIG9mZnNldCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSA1KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChleHRlbnNpb25DaGVja3N1bShyZXN1bHQpICE9PSBkZXRlcm1pbmVDaGVja0RpZ2l0KGNvZGVGcmVxdWVuY3kpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBjb2RlOiByZXN1bHQuam9pbihcIlwiKSxcbiAgICAgICAgZGVjb2RlZENvZGVzLFxuICAgICAgICBlbmQ6IGNvZGUuZW5kXG4gICAgfTtcbn07XG5cbmZ1bmN0aW9uIGRldGVybWluZUNoZWNrRGlnaXQoY29kZUZyZXF1ZW5jeSkge1xuICAgIHZhciBpO1xuICAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG4gICAgICAgIGlmIChjb2RlRnJlcXVlbmN5ID09PSBDSEVDS19ESUdJVF9FTkNPRElOR1NbaV0pIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG5cbmZ1bmN0aW9uIGV4dGVuc2lvbkNoZWNrc3VtKHJlc3VsdCkge1xuICAgIHZhciBsZW5ndGggPSByZXN1bHQubGVuZ3RoLFxuICAgICAgICBzdW0gPSAwLFxuICAgICAgICBpO1xuXG4gICAgZm9yIChpID0gbGVuZ3RoIC0gMjsgaSA+PSAwOyBpIC09IDIpIHtcbiAgICAgICAgc3VtICs9IHJlc3VsdFtpXTtcbiAgICB9XG4gICAgc3VtICo9IDM7XG4gICAgZm9yIChpID0gbGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC09IDIpIHtcbiAgICAgICAgc3VtICs9IHJlc3VsdFtpXTtcbiAgICB9XG4gICAgc3VtICo9IDM7XG4gICAgcmV0dXJuIHN1bSAlIDEwO1xufVxuXG5leHBvcnQgZGVmYXVsdCBFQU41UmVhZGVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3JlYWRlci9lYW5fNV9yZWFkZXIuanMiLCJpbXBvcnQgRUFOUmVhZGVyIGZyb20gJy4vZWFuX3JlYWRlcic7XG5cbmZ1bmN0aW9uIEVBTjhSZWFkZXIob3B0cywgc3VwcGxlbWVudHMpIHtcbiAgICBFQU5SZWFkZXIuY2FsbCh0aGlzLCBvcHRzLCBzdXBwbGVtZW50cyk7XG59XG5cbnZhciBwcm9wZXJ0aWVzID0ge1xuICAgIEZPUk1BVDoge3ZhbHVlOiBcImVhbl84XCIsIHdyaXRlYWJsZTogZmFsc2V9XG59O1xuXG5FQU44UmVhZGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRUFOUmVhZGVyLnByb3RvdHlwZSwgcHJvcGVydGllcyk7XG5FQU44UmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEVBTjhSZWFkZXI7XG5cbkVBTjhSZWFkZXIucHJvdG90eXBlLl9kZWNvZGVQYXlsb2FkID0gZnVuY3Rpb24oY29kZSwgcmVzdWx0LCBkZWNvZGVkQ29kZXMpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgc2VsZiA9IHRoaXM7XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgICAgICBjb2RlID0gc2VsZi5fZGVjb2RlQ29kZShjb2RlLmVuZCwgc2VsZi5DT0RFX0dfU1RBUlQpO1xuICAgICAgICBpZiAoIWNvZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdC5wdXNoKGNvZGUuY29kZSk7XG4gICAgICAgIGRlY29kZWRDb2Rlcy5wdXNoKGNvZGUpO1xuICAgIH1cblxuICAgIGNvZGUgPSBzZWxmLl9maW5kUGF0dGVybihzZWxmLk1JRERMRV9QQVRURVJOLCBjb2RlLmVuZCwgdHJ1ZSwgZmFsc2UpO1xuICAgIGlmIChjb2RlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcblxuICAgIGZvciAoIGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgICAgIGNvZGUgPSBzZWxmLl9kZWNvZGVDb2RlKGNvZGUuZW5kLCBzZWxmLkNPREVfR19TVEFSVCk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZGVjb2RlZENvZGVzLnB1c2goY29kZSk7XG4gICAgICAgIHJlc3VsdC5wdXNoKGNvZGUuY29kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvZGU7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFQU44UmVhZGVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3JlYWRlci9lYW5fOF9yZWFkZXIuanMiLCJpbXBvcnQgQmFyY29kZVJlYWRlciBmcm9tICcuL2JhcmNvZGVfcmVhZGVyJztcbmltcG9ydCB7bWVyZ2V9IGZyb20gJ2xvZGFzaCc7XG5cbmZ1bmN0aW9uIEkyb2Y1UmVhZGVyKG9wdHMpIHtcbiAgICBvcHRzID0gbWVyZ2UoZ2V0RGVmYXVsQ29uZmlnKCksIG9wdHMpO1xuICAgIEJhcmNvZGVSZWFkZXIuY2FsbCh0aGlzLCBvcHRzKTtcbiAgICB0aGlzLmJhclNwYWNlUmF0aW8gPSBbMSwgMV07XG4gICAgaWYgKG9wdHMubm9ybWFsaXplQmFyU3BhY2VXaWR0aCkge1xuICAgICAgICB0aGlzLlNJTkdMRV9DT0RFX0VSUk9SID0gMC4zODtcbiAgICAgICAgdGhpcy5BVkdfQ09ERV9FUlJPUiA9IDAuMDk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWZhdWxDb25maWcoKSB7XG4gICAgdmFyIGNvbmZpZyA9IHt9O1xuXG4gICAgT2JqZWN0LmtleXMoSTJvZjVSZWFkZXIuQ09ORklHX0tFWVMpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgIGNvbmZpZ1trZXldID0gSTJvZjVSZWFkZXIuQ09ORklHX0tFWVNba2V5XS5kZWZhdWx0O1xuICAgIH0pO1xuICAgIHJldHVybiBjb25maWc7XG59XG5cbnZhciBOID0gMSxcbiAgICBXID0gMyxcbiAgICBwcm9wZXJ0aWVzID0ge1xuICAgICAgICBTVEFSVF9QQVRURVJOOiB7dmFsdWU6IFtOLCBOLCBOLCBOXX0sXG4gICAgICAgIFNUT1BfUEFUVEVSTjoge3ZhbHVlOiBbTiwgTiwgV119LFxuICAgICAgICBDT0RFX1BBVFRFUk46IHt2YWx1ZTogW1xuICAgICAgICAgICAgW04sIE4sIFcsIFcsIE5dLFxuICAgICAgICAgICAgW1csIE4sIE4sIE4sIFddLFxuICAgICAgICAgICAgW04sIFcsIE4sIE4sIFddLFxuICAgICAgICAgICAgW1csIFcsIE4sIE4sIE5dLFxuICAgICAgICAgICAgW04sIE4sIFcsIE4sIFddLFxuICAgICAgICAgICAgW1csIE4sIFcsIE4sIE5dLFxuICAgICAgICAgICAgW04sIFcsIFcsIE4sIE5dLFxuICAgICAgICAgICAgW04sIE4sIE4sIFcsIFddLFxuICAgICAgICAgICAgW1csIE4sIE4sIFcsIE5dLFxuICAgICAgICAgICAgW04sIFcsIE4sIFcsIE5dXG4gICAgICAgIF19LFxuICAgICAgICBTSU5HTEVfQ09ERV9FUlJPUjoge3ZhbHVlOiAwLjc4LCB3cml0YWJsZTogdHJ1ZX0sXG4gICAgICAgIEFWR19DT0RFX0VSUk9SOiB7dmFsdWU6IDAuMzgsIHdyaXRhYmxlOiB0cnVlfSxcbiAgICAgICAgTUFYX0NPUlJFQ1RJT05fRkFDVE9SOiB7dmFsdWU6IDV9LFxuICAgICAgICBGT1JNQVQ6IHt2YWx1ZTogXCJpMm9mNVwifVxuICAgIH07XG5cbkkyb2Y1UmVhZGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQmFyY29kZVJlYWRlci5wcm90b3R5cGUsIHByb3BlcnRpZXMpO1xuSTJvZjVSZWFkZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gSTJvZjVSZWFkZXI7XG5cbkkyb2Y1UmVhZGVyLnByb3RvdHlwZS5fbWF0Y2hQYXR0ZXJuID0gZnVuY3Rpb24oY291bnRlciwgY29kZSkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5ub3JtYWxpemVCYXJTcGFjZVdpZHRoKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgY291bnRlclN1bSA9IFswLCAwXSxcbiAgICAgICAgICAgIGNvZGVTdW0gPSBbMCwgMF0sXG4gICAgICAgICAgICBjb3JyZWN0aW9uID0gWzAsIDBdLFxuICAgICAgICAgICAgY29ycmVjdGlvblJhdGlvID0gdGhpcy5NQVhfQ09SUkVDVElPTl9GQUNUT1IsXG4gICAgICAgICAgICBjb3JyZWN0aW9uUmF0aW9JbnZlcnNlID0gMSAvIGNvcnJlY3Rpb25SYXRpbztcblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnRlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY291bnRlclN1bVtpICUgMl0gKz0gY291bnRlcltpXTtcbiAgICAgICAgICAgIGNvZGVTdW1baSAlIDJdICs9IGNvZGVbaV07XG4gICAgICAgIH1cbiAgICAgICAgY29ycmVjdGlvblswXSA9IGNvZGVTdW1bMF0gLyBjb3VudGVyU3VtWzBdO1xuICAgICAgICBjb3JyZWN0aW9uWzFdID0gY29kZVN1bVsxXSAvIGNvdW50ZXJTdW1bMV07XG5cbiAgICAgICAgY29ycmVjdGlvblswXSA9IE1hdGgubWF4KE1hdGgubWluKGNvcnJlY3Rpb25bMF0sIGNvcnJlY3Rpb25SYXRpbyksIGNvcnJlY3Rpb25SYXRpb0ludmVyc2UpO1xuICAgICAgICBjb3JyZWN0aW9uWzFdID0gTWF0aC5tYXgoTWF0aC5taW4oY29ycmVjdGlvblsxXSwgY29ycmVjdGlvblJhdGlvKSwgY29ycmVjdGlvblJhdGlvSW52ZXJzZSk7XG4gICAgICAgIHRoaXMuYmFyU3BhY2VSYXRpbyA9IGNvcnJlY3Rpb247XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb3VudGVyW2ldICo9IHRoaXMuYmFyU3BhY2VSYXRpb1tpICUgMl07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIEJhcmNvZGVSZWFkZXIucHJvdG90eXBlLl9tYXRjaFBhdHRlcm4uY2FsbCh0aGlzLCBjb3VudGVyLCBjb2RlKTtcbn07XG5cbkkyb2Y1UmVhZGVyLnByb3RvdHlwZS5fZmluZFBhdHRlcm4gPSBmdW5jdGlvbihwYXR0ZXJuLCBvZmZzZXQsIGlzV2hpdGUsIHRyeUhhcmRlcikge1xuICAgIHZhciBjb3VudGVyID0gW10sXG4gICAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgICBpLFxuICAgICAgICBjb3VudGVyUG9zID0gMCxcbiAgICAgICAgYmVzdE1hdGNoID0ge1xuICAgICAgICAgICAgZXJyb3I6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgICAgICBjb2RlOiAtMSxcbiAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgZW5kOiAwXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yLFxuICAgICAgICBqLFxuICAgICAgICBzdW0sXG4gICAgICAgIG5vcm1hbGl6ZWQsXG4gICAgICAgIGVwc2lsb24gPSBzZWxmLkFWR19DT0RFX0VSUk9SO1xuXG4gICAgaXNXaGl0ZSA9IGlzV2hpdGUgfHwgZmFsc2U7XG4gICAgdHJ5SGFyZGVyID0gdHJ5SGFyZGVyIHx8IGZhbHNlO1xuXG4gICAgaWYgKCFvZmZzZXQpIHtcbiAgICAgICAgb2Zmc2V0ID0gc2VsZi5fbmV4dFNldChzZWxmLl9yb3cpO1xuICAgIH1cblxuICAgIGZvciAoIGkgPSAwOyBpIDwgcGF0dGVybi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb3VudGVyW2ldID0gMDtcbiAgICB9XG5cbiAgICBmb3IgKCBpID0gb2Zmc2V0OyBpIDwgc2VsZi5fcm93Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChzZWxmLl9yb3dbaV0gXiBpc1doaXRlKSB7XG4gICAgICAgICAgICBjb3VudGVyW2NvdW50ZXJQb3NdKys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY291bnRlclBvcyA9PT0gY291bnRlci5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgc3VtID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKCBqID0gMDsgaiA8IGNvdW50ZXIubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc3VtICs9IGNvdW50ZXJbal07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVycm9yID0gc2VsZi5fbWF0Y2hQYXR0ZXJuKGNvdW50ZXIsIHBhdHRlcm4pO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvciA8IGVwc2lsb24pIHtcbiAgICAgICAgICAgICAgICAgICAgYmVzdE1hdGNoLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5zdGFydCA9IGkgLSBzdW07XG4gICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaC5lbmQgPSBpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmVzdE1hdGNoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHJ5SGFyZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBjb3VudGVyLmxlbmd0aCAtIDI7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY291bnRlcltqXSA9IGNvdW50ZXJbaiArIDJdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbY291bnRlci5sZW5ndGggLSAyXSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbY291bnRlci5sZW5ndGggLSAxXSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJQb3MtLTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvdW50ZXJQb3MrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvdW50ZXJbY291bnRlclBvc10gPSAxO1xuICAgICAgICAgICAgaXNXaGl0ZSA9ICFpc1doaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuSTJvZjVSZWFkZXIucHJvdG90eXBlLl9maW5kU3RhcnQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIGxlYWRpbmdXaGl0ZXNwYWNlU3RhcnQsXG4gICAgICAgIG9mZnNldCA9IHNlbGYuX25leHRTZXQoc2VsZi5fcm93KSxcbiAgICAgICAgc3RhcnRJbmZvLFxuICAgICAgICBuYXJyb3dCYXJXaWR0aCA9IDE7XG5cbiAgICB3aGlsZSAoIXN0YXJ0SW5mbykge1xuICAgICAgICBzdGFydEluZm8gPSBzZWxmLl9maW5kUGF0dGVybihzZWxmLlNUQVJUX1BBVFRFUk4sIG9mZnNldCwgZmFsc2UsIHRydWUpO1xuICAgICAgICBpZiAoIXN0YXJ0SW5mbykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbmFycm93QmFyV2lkdGggPSBNYXRoLmZsb29yKChzdGFydEluZm8uZW5kIC0gc3RhcnRJbmZvLnN0YXJ0KSAvIDQpO1xuICAgICAgICBsZWFkaW5nV2hpdGVzcGFjZVN0YXJ0ID0gc3RhcnRJbmZvLnN0YXJ0IC0gbmFycm93QmFyV2lkdGggKiAxMDtcbiAgICAgICAgaWYgKGxlYWRpbmdXaGl0ZXNwYWNlU3RhcnQgPj0gMCkge1xuICAgICAgICAgICAgaWYgKHNlbGYuX21hdGNoUmFuZ2UobGVhZGluZ1doaXRlc3BhY2VTdGFydCwgc3RhcnRJbmZvLnN0YXJ0LCAwKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGFydEluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb2Zmc2V0ID0gc3RhcnRJbmZvLmVuZDtcbiAgICAgICAgc3RhcnRJbmZvID0gbnVsbDtcbiAgICB9XG59O1xuXG5JMm9mNVJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZSA9IGZ1bmN0aW9uKGVuZEluZm8pIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZDtcblxuICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA9IGVuZEluZm8uZW5kICsgKChlbmRJbmZvLmVuZCAtIGVuZEluZm8uc3RhcnQpIC8gMik7XG4gICAgaWYgKHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA8IHNlbGYuX3Jvdy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKHNlbGYuX21hdGNoUmFuZ2UoZW5kSW5mby5lbmQsIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCwgMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbmRJbmZvO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuSTJvZjVSZWFkZXIucHJvdG90eXBlLl9maW5kRW5kID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBlbmRJbmZvLFxuICAgICAgICB0bXA7XG5cbiAgICBzZWxmLl9yb3cucmV2ZXJzZSgpO1xuICAgIGVuZEluZm8gPSBzZWxmLl9maW5kUGF0dGVybihzZWxmLlNUT1BfUEFUVEVSTik7XG4gICAgc2VsZi5fcm93LnJldmVyc2UoKTtcblxuICAgIGlmIChlbmRJbmZvID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIHJldmVyc2UgbnVtYmVyc1xuICAgIHRtcCA9IGVuZEluZm8uc3RhcnQ7XG4gICAgZW5kSW5mby5zdGFydCA9IHNlbGYuX3Jvdy5sZW5ndGggLSBlbmRJbmZvLmVuZDtcbiAgICBlbmRJbmZvLmVuZCA9IHNlbGYuX3Jvdy5sZW5ndGggLSB0bXA7XG5cbiAgICByZXR1cm4gZW5kSW5mbyAhPT0gbnVsbCA/IHNlbGYuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZShlbmRJbmZvKSA6IG51bGw7XG59O1xuXG5JMm9mNVJlYWRlci5wcm90b3R5cGUuX2RlY29kZVBhaXIgPSBmdW5jdGlvbihjb3VudGVyUGFpcikge1xuICAgIHZhciBpLFxuICAgICAgICBjb2RlLFxuICAgICAgICBjb2RlcyA9IFtdLFxuICAgICAgICBzZWxmID0gdGhpcztcblxuICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudGVyUGFpci5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb2RlID0gc2VsZi5fZGVjb2RlQ29kZShjb3VudGVyUGFpcltpXSk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29kZXMucHVzaChjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvZGVzO1xufTtcblxuSTJvZjVSZWFkZXIucHJvdG90eXBlLl9kZWNvZGVDb2RlID0gZnVuY3Rpb24oY291bnRlcikge1xuICAgIHZhciBqLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgc3VtID0gMCxcbiAgICAgICAgbm9ybWFsaXplZCxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGVwc2lsb24gPSBzZWxmLkFWR19DT0RFX0VSUk9SLFxuICAgICAgICBjb2RlLFxuICAgICAgICBiZXN0TWF0Y2ggPSB7XG4gICAgICAgICAgICBlcnJvcjogTnVtYmVyLk1BWF9WQUxVRSxcbiAgICAgICAgICAgIGNvZGU6IC0xLFxuICAgICAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgICAgICBlbmQ6IDBcbiAgICAgICAgfTtcblxuICAgIGZvciAoIGogPSAwOyBqIDwgY291bnRlci5sZW5ndGg7IGorKykge1xuICAgICAgICBzdW0gKz0gY291bnRlcltqXTtcbiAgICB9XG4gICAgZm9yIChjb2RlID0gMDsgY29kZSA8IHNlbGYuQ09ERV9QQVRURVJOLmxlbmd0aDsgY29kZSsrKSB7XG4gICAgICAgIGVycm9yID0gc2VsZi5fbWF0Y2hQYXR0ZXJuKGNvdW50ZXIsIHNlbGYuQ09ERV9QQVRURVJOW2NvZGVdKTtcbiAgICAgICAgaWYgKGVycm9yIDwgYmVzdE1hdGNoLmVycm9yKSB7XG4gICAgICAgICAgICBiZXN0TWF0Y2guY29kZSA9IGNvZGU7XG4gICAgICAgICAgICBiZXN0TWF0Y2guZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoYmVzdE1hdGNoLmVycm9yIDwgZXBzaWxvbikge1xuICAgICAgICByZXR1cm4gYmVzdE1hdGNoO1xuICAgIH1cbn07XG5cbkkyb2Y1UmVhZGVyLnByb3RvdHlwZS5fZGVjb2RlUGF5bG9hZCA9IGZ1bmN0aW9uKGNvdW50ZXJzLCByZXN1bHQsIGRlY29kZWRDb2Rlcykge1xuICAgIHZhciBpLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgcG9zID0gMCxcbiAgICAgICAgY291bnRlckxlbmd0aCA9IGNvdW50ZXJzLmxlbmd0aCxcbiAgICAgICAgY291bnRlclBhaXIgPSBbWzAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMF1dLFxuICAgICAgICBjb2RlcztcblxuICAgIHdoaWxlIChwb3MgPCBjb3VudGVyTGVuZ3RoKSB7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA1OyBpKyspIHtcbiAgICAgICAgICAgIGNvdW50ZXJQYWlyWzBdW2ldID0gY291bnRlcnNbcG9zXSAqIHRoaXMuYmFyU3BhY2VSYXRpb1swXTtcbiAgICAgICAgICAgIGNvdW50ZXJQYWlyWzFdW2ldID0gY291bnRlcnNbcG9zICsgMV0gKiB0aGlzLmJhclNwYWNlUmF0aW9bMV07XG4gICAgICAgICAgICBwb3MgKz0gMjtcbiAgICAgICAgfVxuICAgICAgICBjb2RlcyA9IHNlbGYuX2RlY29kZVBhaXIoY291bnRlclBhaXIpO1xuICAgICAgICBpZiAoIWNvZGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY29kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNvZGVzW2ldLmNvZGUgKyBcIlwiKTtcbiAgICAgICAgICAgIGRlY29kZWRDb2Rlcy5wdXNoKGNvZGVzW2ldKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29kZXM7XG59O1xuXG5JMm9mNVJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeUNvdW50ZXJMZW5ndGggPSBmdW5jdGlvbihjb3VudGVycykge1xuICAgIHJldHVybiAoY291bnRlcnMubGVuZ3RoICUgMTAgPT09IDApO1xufTtcblxuSTJvZjVSZWFkZXIucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RhcnRJbmZvLFxuICAgICAgICBlbmRJbmZvLFxuICAgICAgICBzZWxmID0gdGhpcyxcbiAgICAgICAgY29kZSxcbiAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgIGRlY29kZWRDb2RlcyA9IFtdLFxuICAgICAgICBjb3VudGVycztcblxuICAgIHN0YXJ0SW5mbyA9IHNlbGYuX2ZpbmRTdGFydCgpO1xuICAgIGlmICghc3RhcnRJbmZvKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBkZWNvZGVkQ29kZXMucHVzaChzdGFydEluZm8pO1xuXG4gICAgZW5kSW5mbyA9IHNlbGYuX2ZpbmRFbmQoKTtcbiAgICBpZiAoIWVuZEluZm8pIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY291bnRlcnMgPSBzZWxmLl9maWxsQ291bnRlcnMoc3RhcnRJbmZvLmVuZCwgZW5kSW5mby5zdGFydCwgZmFsc2UpO1xuICAgIGlmICghc2VsZi5fdmVyaWZ5Q291bnRlckxlbmd0aChjb3VudGVycykpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvZGUgPSBzZWxmLl9kZWNvZGVQYXlsb2FkKGNvdW50ZXJzLCByZXN1bHQsIGRlY29kZWRDb2Rlcyk7XG4gICAgaWYgKCFjb2RlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAocmVzdWx0Lmxlbmd0aCAlIDIgIT09IDAgfHxcbiAgICAgICAgICAgIHJlc3VsdC5sZW5ndGggPCA2KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGRlY29kZWRDb2Rlcy5wdXNoKGVuZEluZm8pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvZGU6IHJlc3VsdC5qb2luKFwiXCIpLFxuICAgICAgICBzdGFydDogc3RhcnRJbmZvLnN0YXJ0LFxuICAgICAgICBlbmQ6IGVuZEluZm8uZW5kLFxuICAgICAgICBzdGFydEluZm86IHN0YXJ0SW5mbyxcbiAgICAgICAgZGVjb2RlZENvZGVzOiBkZWNvZGVkQ29kZXNcbiAgICB9O1xufTtcblxuSTJvZjVSZWFkZXIuQ09ORklHX0tFWVMgPSB7XG4gICAgbm9ybWFsaXplQmFyU3BhY2VXaWR0aDoge1xuICAgICAgICAndHlwZSc6ICdib29sZWFuJyxcbiAgICAgICAgJ2RlZmF1bHQnOiBmYWxzZSxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJ0lmIHRydWUsIHRoZSByZWFkZXIgdHJpZXMgdG8gbm9ybWFsaXplIHRoZScgK1xuICAgICAgICAnd2lkdGgtZGlmZmVyZW5jZSBiZXR3ZWVuIGJhcnMgYW5kIHNwYWNlcydcbiAgICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJMm9mNVJlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvaTJvZjVfcmVhZGVyLmpzIiwiaW1wb3J0IEVBTlJlYWRlciBmcm9tICcuL2Vhbl9yZWFkZXInO1xuXG5mdW5jdGlvbiBVUENFUmVhZGVyKG9wdHMsIHN1cHBsZW1lbnRzKSB7XG4gICAgRUFOUmVhZGVyLmNhbGwodGhpcywgb3B0cywgc3VwcGxlbWVudHMpO1xufVxuXG52YXIgcHJvcGVydGllcyA9IHtcbiAgICBDT0RFX0ZSRVFVRU5DWToge3ZhbHVlOiBbXG4gICAgICAgIFsgNTYsIDUyLCA1MCwgNDksIDQ0LCAzOCwgMzUsIDQyLCA0MSwgMzcgXSxcbiAgICAgICAgWzcsIDExLCAxMywgMTQsIDE5LCAyNSwgMjgsIDIxLCAyMiwgMjZdXX0sXG4gICAgU1RPUF9QQVRURVJOOiB7IHZhbHVlOiBbMSAvIDYgKiA3LCAxIC8gNiAqIDcsIDEgLyA2ICogNywgMSAvIDYgKiA3LCAxIC8gNiAqIDcsIDEgLyA2ICogN119LFxuICAgIEZPUk1BVDoge3ZhbHVlOiBcInVwY19lXCIsIHdyaXRlYWJsZTogZmFsc2V9XG59O1xuXG5VUENFUmVhZGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRUFOUmVhZGVyLnByb3RvdHlwZSwgcHJvcGVydGllcyk7XG5VUENFUmVhZGVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFVQQ0VSZWFkZXI7XG5cblVQQ0VSZWFkZXIucHJvdG90eXBlLl9kZWNvZGVQYXlsb2FkID0gZnVuY3Rpb24oY29kZSwgcmVzdWx0LCBkZWNvZGVkQ29kZXMpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICAgIGNvZGVGcmVxdWVuY3kgPSAweDA7XG5cbiAgICBmb3IgKCBpID0gMDsgaSA8IDY7IGkrKykge1xuICAgICAgICBjb2RlID0gc2VsZi5fZGVjb2RlQ29kZShjb2RlLmVuZCk7XG4gICAgICAgIGlmICghY29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvZGUuY29kZSA+PSBzZWxmLkNPREVfR19TVEFSVCkge1xuICAgICAgICAgICAgY29kZS5jb2RlID0gY29kZS5jb2RlIC0gc2VsZi5DT0RFX0dfU1RBUlQ7XG4gICAgICAgICAgICBjb2RlRnJlcXVlbmN5IHw9IDEgPDwgKDUgLSBpKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChjb2RlLmNvZGUpO1xuICAgICAgICBkZWNvZGVkQ29kZXMucHVzaChjb2RlKTtcbiAgICB9XG4gICAgaWYgKCFzZWxmLl9kZXRlcm1pbmVQYXJpdHkoY29kZUZyZXF1ZW5jeSwgcmVzdWx0KSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gY29kZTtcbn07XG5cblVQQ0VSZWFkZXIucHJvdG90eXBlLl9kZXRlcm1pbmVQYXJpdHkgPSBmdW5jdGlvbihjb2RlRnJlcXVlbmN5LCByZXN1bHQpIHtcbiAgICB2YXIgaSxcbiAgICAgICAgbnJTeXN0ZW07XG5cbiAgICBmb3IgKG5yU3lzdGVtID0gMDsgbnJTeXN0ZW0gPCB0aGlzLkNPREVfRlJFUVVFTkNZLmxlbmd0aDsgbnJTeXN0ZW0rKyl7XG4gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgdGhpcy5DT0RFX0ZSRVFVRU5DWVtuclN5c3RlbV0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChjb2RlRnJlcXVlbmN5ID09PSB0aGlzLkNPREVfRlJFUVVFTkNZW25yU3lzdGVtXVtpXSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC51bnNoaWZ0KG5yU3lzdGVtKTtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5VUENFUmVhZGVyLnByb3RvdHlwZS5fY29udmVydFRvVVBDQSA9IGZ1bmN0aW9uKHJlc3VsdCkge1xuICAgIHZhciB1cGNhID0gW3Jlc3VsdFswXV0sXG4gICAgICAgIGxhc3REaWdpdCA9IHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMl07XG5cbiAgICBpZiAobGFzdERpZ2l0IDw9IDIpIHtcbiAgICAgICAgdXBjYSA9IHVwY2EuY29uY2F0KHJlc3VsdC5zbGljZSgxLCAzKSlcbiAgICAgICAgICAgIC5jb25jYXQoW2xhc3REaWdpdCwgMCwgMCwgMCwgMF0pXG4gICAgICAgICAgICAuY29uY2F0KHJlc3VsdC5zbGljZSgzLCA2KSk7XG4gICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDMpIHtcbiAgICAgICAgdXBjYSA9IHVwY2EuY29uY2F0KHJlc3VsdC5zbGljZSgxLCA0KSlcbiAgICAgICAgICAgIC5jb25jYXQoWzAsIDAsIDAsIDAsIDBdKVxuICAgICAgICAgICAgLmNvbmNhdChyZXN1bHQuc2xpY2UoNCwgNikpO1xuICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSA0KSB7XG4gICAgICAgIHVwY2EgPSB1cGNhLmNvbmNhdChyZXN1bHQuc2xpY2UoMSwgNSkpXG4gICAgICAgICAgICAuY29uY2F0KFswLCAwLCAwLCAwLCAwLCByZXN1bHRbNV1dKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB1cGNhID0gdXBjYS5jb25jYXQocmVzdWx0LnNsaWNlKDEsIDYpKVxuICAgICAgICAgICAgLmNvbmNhdChbMCwgMCwgMCwgMCwgbGFzdERpZ2l0XSk7XG4gICAgfVxuXG4gICAgdXBjYS5wdXNoKHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0pO1xuICAgIHJldHVybiB1cGNhO1xufTtcblxuVVBDRVJlYWRlci5wcm90b3R5cGUuX2NoZWNrc3VtID0gZnVuY3Rpb24ocmVzdWx0KSB7XG4gICAgcmV0dXJuIEVBTlJlYWRlci5wcm90b3R5cGUuX2NoZWNrc3VtLmNhbGwodGhpcywgdGhpcy5fY29udmVydFRvVVBDQShyZXN1bHQpKTtcbn07XG5cblVQQ0VSZWFkZXIucHJvdG90eXBlLl9maW5kRW5kID0gZnVuY3Rpb24ob2Zmc2V0LCBpc1doaXRlKSB7XG4gICAgaXNXaGl0ZSA9IHRydWU7XG4gICAgcmV0dXJuIEVBTlJlYWRlci5wcm90b3R5cGUuX2ZpbmRFbmQuY2FsbCh0aGlzLCBvZmZzZXQsIGlzV2hpdGUpO1xufTtcblxuVVBDRVJlYWRlci5wcm90b3R5cGUuX3ZlcmlmeVRyYWlsaW5nV2hpdGVzcGFjZSA9IGZ1bmN0aW9uKGVuZEluZm8pIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZDtcblxuICAgIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA9IGVuZEluZm8uZW5kICsgKChlbmRJbmZvLmVuZCAtIGVuZEluZm8uc3RhcnQpIC8gMik7XG4gICAgaWYgKHRyYWlsaW5nV2hpdGVzcGFjZUVuZCA8IHNlbGYuX3Jvdy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKHNlbGYuX21hdGNoUmFuZ2UoZW5kSW5mby5lbmQsIHRyYWlsaW5nV2hpdGVzcGFjZUVuZCwgMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBlbmRJbmZvO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVVBDRVJlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvdXBjX2VfcmVhZGVyLmpzIiwiaW1wb3J0IEVBTlJlYWRlciBmcm9tICcuL2Vhbl9yZWFkZXInO1xuXG5mdW5jdGlvbiBVUENSZWFkZXIob3B0cywgc3VwcGxlbWVudHMpIHtcbiAgICBFQU5SZWFkZXIuY2FsbCh0aGlzLCBvcHRzLCBzdXBwbGVtZW50cyk7XG59XG5cbnZhciBwcm9wZXJ0aWVzID0ge1xuICAgIEZPUk1BVDoge3ZhbHVlOiBcInVwY19hXCIsIHdyaXRlYWJsZTogZmFsc2V9XG59O1xuXG5VUENSZWFkZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFQU5SZWFkZXIucHJvdG90eXBlLCBwcm9wZXJ0aWVzKTtcblVQQ1JlYWRlci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBVUENSZWFkZXI7XG5cblVQQ1JlYWRlci5wcm90b3R5cGUuX2RlY29kZSA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciByZXN1bHQgPSBFQU5SZWFkZXIucHJvdG90eXBlLl9kZWNvZGUuY2FsbCh0aGlzKTtcblxuICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgJiYgcmVzdWx0LmNvZGUubGVuZ3RoID09PSAxMyAmJiByZXN1bHQuY29kZS5jaGFyQXQoMCkgPT09IFwiMFwiKSB7XG4gICAgICAgIHJlc3VsdC5jb2RlID0gcmVzdWx0LmNvZGUuc3Vic3RyaW5nKDEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFVQQ1JlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9yZWFkZXIvdXBjX3JlYWRlci5qcyIsIm1vZHVsZS5leHBvcnRzID0gY29weVxuXG4vKipcbiAqIENvcHkgdGhlIHZhbHVlcyBmcm9tIG9uZSBtYXQyIHRvIGFub3RoZXJcbiAqXG4gKiBAYWxpYXMgbWF0Mi5jb3B5XG4gKiBAcGFyYW0ge21hdDJ9IG91dCB0aGUgcmVjZWl2aW5nIG1hdHJpeFxuICogQHBhcmFtIHttYXQyfSBhIHRoZSBzb3VyY2UgbWF0cml4XG4gKiBAcmV0dXJucyB7bWF0Mn0gb3V0XG4gKi9cbmZ1bmN0aW9uIGNvcHkob3V0LCBhKSB7XG4gIG91dFswXSA9IGFbMF1cbiAgb3V0WzFdID0gYVsxXVxuICBvdXRbMl0gPSBhWzJdXG4gIG91dFszXSA9IGFbM11cbiAgcmV0dXJuIG91dFxufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2dsLW1hdDIvY29weS5qc1xuLy8gbW9kdWxlIGlkID0gNzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGlkZW50aXR5IG1hdDJcbiAqXG4gKiBAYWxpYXMgbWF0Mi5jcmVhdGVcbiAqIEByZXR1cm5zIHttYXQyfSBhIG5ldyAyeDIgbWF0cml4XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgdmFyIG91dCA9IG5ldyBGbG9hdDMyQXJyYXkoNClcbiAgb3V0WzBdID0gMVxuICBvdXRbMV0gPSAwXG4gIG91dFsyXSA9IDBcbiAgb3V0WzNdID0gMVxuICByZXR1cm4gb3V0XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZ2wtbWF0Mi9jcmVhdGUuanNcbi8vIG1vZHVsZSBpZCA9IDc5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gaW52ZXJ0XG5cbi8qKlxuICogSW52ZXJ0cyBhIG1hdDJcbiAqXG4gKiBAYWxpYXMgbWF0Mi5pbnZlcnRcbiAqIEBwYXJhbSB7bWF0Mn0gb3V0IHRoZSByZWNlaXZpbmcgbWF0cml4XG4gKiBAcGFyYW0ge21hdDJ9IGEgdGhlIHNvdXJjZSBtYXRyaXhcbiAqIEByZXR1cm5zIHttYXQyfSBvdXRcbiAqL1xuZnVuY3Rpb24gaW52ZXJ0KG91dCwgYSkge1xuICB2YXIgYTAgPSBhWzBdXG4gIHZhciBhMSA9IGFbMV1cbiAgdmFyIGEyID0gYVsyXVxuICB2YXIgYTMgPSBhWzNdXG4gIHZhciBkZXQgPSBhMCAqIGEzIC0gYTIgKiBhMVxuXG4gIGlmICghZGV0KSByZXR1cm4gbnVsbFxuICBkZXQgPSAxLjAgLyBkZXRcblxuICBvdXRbMF0gPSAgYTMgKiBkZXRcbiAgb3V0WzFdID0gLWExICogZGV0XG4gIG91dFsyXSA9IC1hMiAqIGRldFxuICBvdXRbM10gPSAgYTAgKiBkZXRcblxuICByZXR1cm4gb3V0XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZ2wtbWF0Mi9pbnZlcnQuanNcbi8vIG1vZHVsZSBpZCA9IDgwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gc2NhbGVcblxuLyoqXG4gKiBTY2FsZXMgYSB2ZWMyIGJ5IGEgc2NhbGFyIG51bWJlclxuICpcbiAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yXG4gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byBzY2FsZVxuICogQHBhcmFtIHtOdW1iZXJ9IGIgYW1vdW50IHRvIHNjYWxlIHRoZSB2ZWN0b3IgYnlcbiAqIEByZXR1cm5zIHt2ZWMyfSBvdXRcbiAqL1xuZnVuY3Rpb24gc2NhbGUob3V0LCBhLCBiKSB7XG4gICAgb3V0WzBdID0gYVswXSAqIGJcbiAgICBvdXRbMV0gPSBhWzFdICogYlxuICAgIHJldHVybiBvdXRcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZ2wtdmVjMi9zY2FsZS5qc1xuLy8gbW9kdWxlIGlkID0gODFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSB0cmFuc2Zvcm1NYXQyXG5cbi8qKlxuICogVHJhbnNmb3JtcyB0aGUgdmVjMiB3aXRoIGEgbWF0MlxuICpcbiAqIEBwYXJhbSB7dmVjMn0gb3V0IHRoZSByZWNlaXZpbmcgdmVjdG9yXG4gKiBAcGFyYW0ge3ZlYzJ9IGEgdGhlIHZlY3RvciB0byB0cmFuc2Zvcm1cbiAqIEBwYXJhbSB7bWF0Mn0gbSBtYXRyaXggdG8gdHJhbnNmb3JtIHdpdGhcbiAqIEByZXR1cm5zIHt2ZWMyfSBvdXRcbiAqL1xuZnVuY3Rpb24gdHJhbnNmb3JtTWF0MihvdXQsIGEsIG0pIHtcbiAgICB2YXIgeCA9IGFbMF0sXG4gICAgICAgIHkgPSBhWzFdXG4gICAgb3V0WzBdID0gbVswXSAqIHggKyBtWzJdICogeVxuICAgIG91dFsxXSA9IG1bMV0gKiB4ICsgbVszXSAqIHlcbiAgICByZXR1cm4gb3V0XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2dsLXZlYzIvdHJhbnNmb3JtTWF0Mi5qc1xuLy8gbW9kdWxlIGlkID0gODJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSBjbG9uZTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHZlYzMgaW5pdGlhbGl6ZWQgd2l0aCB2YWx1ZXMgZnJvbSBhbiBleGlzdGluZyB2ZWN0b3JcbiAqXG4gKiBAcGFyYW0ge3ZlYzN9IGEgdmVjdG9yIHRvIGNsb25lXG4gKiBAcmV0dXJucyB7dmVjM30gYSBuZXcgM0QgdmVjdG9yXG4gKi9cbmZ1bmN0aW9uIGNsb25lKGEpIHtcbiAgICB2YXIgb3V0ID0gbmV3IEZsb2F0MzJBcnJheSgzKVxuICAgIG91dFswXSA9IGFbMF1cbiAgICBvdXRbMV0gPSBhWzFdXG4gICAgb3V0WzJdID0gYVsyXVxuICAgIHJldHVybiBvdXRcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZ2wtdmVjMy9jbG9uZS5qc1xuLy8gbW9kdWxlIGlkID0gODNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGhhc2hDbGVhciA9IHJlcXVpcmUoJy4vX2hhc2hDbGVhcicpLFxuICAgIGhhc2hEZWxldGUgPSByZXF1aXJlKCcuL19oYXNoRGVsZXRlJyksXG4gICAgaGFzaEdldCA9IHJlcXVpcmUoJy4vX2hhc2hHZXQnKSxcbiAgICBoYXNoSGFzID0gcmVxdWlyZSgnLi9faGFzaEhhcycpLFxuICAgIGhhc2hTZXQgPSByZXF1aXJlKCcuL19oYXNoU2V0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGhhc2ggb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBIYXNoKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYEhhc2hgLlxuSGFzaC5wcm90b3R5cGUuY2xlYXIgPSBoYXNoQ2xlYXI7XG5IYXNoLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBoYXNoRGVsZXRlO1xuSGFzaC5wcm90b3R5cGUuZ2V0ID0gaGFzaEdldDtcbkhhc2gucHJvdG90eXBlLmhhcyA9IGhhc2hIYXM7XG5IYXNoLnByb3RvdHlwZS5zZXQgPSBoYXNoU2V0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEhhc2g7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19IYXNoLmpzXG4vLyBtb2R1bGUgaWQgPSA4NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgTGlzdENhY2hlID0gcmVxdWlyZSgnLi9fTGlzdENhY2hlJyksXG4gICAgc3RhY2tDbGVhciA9IHJlcXVpcmUoJy4vX3N0YWNrQ2xlYXInKSxcbiAgICBzdGFja0RlbGV0ZSA9IHJlcXVpcmUoJy4vX3N0YWNrRGVsZXRlJyksXG4gICAgc3RhY2tHZXQgPSByZXF1aXJlKCcuL19zdGFja0dldCcpLFxuICAgIHN0YWNrSGFzID0gcmVxdWlyZSgnLi9fc3RhY2tIYXMnKSxcbiAgICBzdGFja1NldCA9IHJlcXVpcmUoJy4vX3N0YWNrU2V0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0YWNrIGNhY2hlIG9iamVjdCB0byBzdG9yZSBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheX0gW2VudHJpZXNdIFRoZSBrZXktdmFsdWUgcGFpcnMgdG8gY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIFN0YWNrKGVudHJpZXMpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fID0gbmV3IExpc3RDYWNoZShlbnRyaWVzKTtcbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgU3RhY2tgLlxuU3RhY2sucHJvdG90eXBlLmNsZWFyID0gc3RhY2tDbGVhcjtcblN0YWNrLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBzdGFja0RlbGV0ZTtcblN0YWNrLnByb3RvdHlwZS5nZXQgPSBzdGFja0dldDtcblN0YWNrLnByb3RvdHlwZS5oYXMgPSBzdGFja0hhcztcblN0YWNrLnByb3RvdHlwZS5zZXQgPSBzdGFja1NldDtcblxubW9kdWxlLmV4cG9ydHMgPSBTdGFjaztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX1N0YWNrLmpzXG4vLyBtb2R1bGUgaWQgPSA4NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgVWludDhBcnJheSA9IHJvb3QuVWludDhBcnJheTtcblxubW9kdWxlLmV4cG9ydHMgPSBVaW50OEFycmF5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fVWludDhBcnJheS5qc1xuLy8gbW9kdWxlIGlkID0gODZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBBIGZhc3RlciBhbHRlcm5hdGl2ZSB0byBgRnVuY3Rpb24jYXBwbHlgLCB0aGlzIGZ1bmN0aW9uIGludm9rZXMgYGZ1bmNgXG4gKiB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiBgdGhpc0FyZ2AgYW5kIHRoZSBhcmd1bWVudHMgb2YgYGFyZ3NgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXG4gKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7QXJyYXl9IGFyZ3MgVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIGBmdW5jYC5cbiAqL1xuZnVuY3Rpb24gYXBwbHkoZnVuYywgdGhpc0FyZywgYXJncykge1xuICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgY2FzZSAwOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcpO1xuICAgIGNhc2UgMTogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdKTtcbiAgICBjYXNlIDI6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSwgYXJnc1sxXSk7XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICB9XG4gIHJldHVybiBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFwcGx5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYXBwbHkuanNcbi8vIG1vZHVsZSBpZCA9IDg3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlVGltZXMgPSByZXF1aXJlKCcuL19iYXNlVGltZXMnKSxcbiAgICBpc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4vaXNBcmd1bWVudHMnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNCdWZmZXIgPSByZXF1aXJlKCcuL2lzQnVmZmVyJyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vX2lzSW5kZXgnKSxcbiAgICBpc1R5cGVkQXJyYXkgPSByZXF1aXJlKCcuL2lzVHlwZWRBcnJheScpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIGFycmF5LWxpa2UgYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluaGVyaXRlZCBTcGVjaWZ5IHJldHVybmluZyBpbmhlcml0ZWQgcHJvcGVydHkgbmFtZXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBhcnJheUxpa2VLZXlzKHZhbHVlLCBpbmhlcml0ZWQpIHtcbiAgdmFyIGlzQXJyID0gaXNBcnJheSh2YWx1ZSksXG4gICAgICBpc0FyZyA9ICFpc0FyciAmJiBpc0FyZ3VtZW50cyh2YWx1ZSksXG4gICAgICBpc0J1ZmYgPSAhaXNBcnIgJiYgIWlzQXJnICYmIGlzQnVmZmVyKHZhbHVlKSxcbiAgICAgIGlzVHlwZSA9ICFpc0FyciAmJiAhaXNBcmcgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkodmFsdWUpLFxuICAgICAgc2tpcEluZGV4ZXMgPSBpc0FyciB8fCBpc0FyZyB8fCBpc0J1ZmYgfHwgaXNUeXBlLFxuICAgICAgcmVzdWx0ID0gc2tpcEluZGV4ZXMgPyBiYXNlVGltZXModmFsdWUubGVuZ3RoLCBTdHJpbmcpIDogW10sXG4gICAgICBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xuXG4gIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgIGlmICgoaW5oZXJpdGVkIHx8IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpICYmXG4gICAgICAgICEoc2tpcEluZGV4ZXMgJiYgKFxuICAgICAgICAgICAvLyBTYWZhcmkgOSBoYXMgZW51bWVyYWJsZSBgYXJndW1lbnRzLmxlbmd0aGAgaW4gc3RyaWN0IG1vZGUuXG4gICAgICAgICAgIGtleSA9PSAnbGVuZ3RoJyB8fFxuICAgICAgICAgICAvLyBOb2RlLmpzIDAuMTAgaGFzIGVudW1lcmFibGUgbm9uLWluZGV4IHByb3BlcnRpZXMgb24gYnVmZmVycy5cbiAgICAgICAgICAgKGlzQnVmZiAmJiAoa2V5ID09ICdvZmZzZXQnIHx8IGtleSA9PSAncGFyZW50JykpIHx8XG4gICAgICAgICAgIC8vIFBoYW50b21KUyAyIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIHR5cGVkIGFycmF5cy5cbiAgICAgICAgICAgKGlzVHlwZSAmJiAoa2V5ID09ICdidWZmZXInIHx8IGtleSA9PSAnYnl0ZUxlbmd0aCcgfHwga2V5ID09ICdieXRlT2Zmc2V0JykpIHx8XG4gICAgICAgICAgIC8vIFNraXAgaW5kZXggcHJvcGVydGllcy5cbiAgICAgICAgICAgaXNJbmRleChrZXksIGxlbmd0aClcbiAgICAgICAgKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlMaWtlS2V5cztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2FycmF5TGlrZUtleXMuanNcbi8vIG1vZHVsZSBpZCA9IDg4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1hcGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlXG4gKiBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBhcnJheU1hcChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlNYXA7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19hcnJheU1hcC5qc1xuLy8gbW9kdWxlIGlkID0gODlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBBcHBlbmRzIHRoZSBlbGVtZW50cyBvZiBgdmFsdWVzYCB0byBgYXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gYXBwZW5kLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5UHVzaChhcnJheSwgdmFsdWVzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aCxcbiAgICAgIG9mZnNldCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGFycmF5W29mZnNldCArIGluZGV4XSA9IHZhbHVlc1tpbmRleF07XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5UHVzaDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2FycmF5UHVzaC5qc1xuLy8gbW9kdWxlIGlkID0gOTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RDcmVhdGUgPSBPYmplY3QuY3JlYXRlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNyZWF0ZWAgd2l0aG91dCBzdXBwb3J0IGZvciBhc3NpZ25pbmdcbiAqIHByb3BlcnRpZXMgdG8gdGhlIGNyZWF0ZWQgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvdG8gVGhlIG9iamVjdCB0byBpbmhlcml0IGZyb20uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICovXG52YXIgYmFzZUNyZWF0ZSA9IChmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gb2JqZWN0KCkge31cbiAgcmV0dXJuIGZ1bmN0aW9uKHByb3RvKSB7XG4gICAgaWYgKCFpc09iamVjdChwcm90bykpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgaWYgKG9iamVjdENyZWF0ZSkge1xuICAgICAgcmV0dXJuIG9iamVjdENyZWF0ZShwcm90byk7XG4gICAgfVxuICAgIG9iamVjdC5wcm90b3R5cGUgPSBwcm90bztcbiAgICB2YXIgcmVzdWx0ID0gbmV3IG9iamVjdDtcbiAgICBvYmplY3QucHJvdG90eXBlID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VDcmVhdGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlQ3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSA5MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYXJyYXlQdXNoID0gcmVxdWlyZSgnLi9fYXJyYXlQdXNoJyksXG4gICAgaXNGbGF0dGVuYWJsZSA9IHJlcXVpcmUoJy4vX2lzRmxhdHRlbmFibGUnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mbGF0dGVuYCB3aXRoIHN1cHBvcnQgZm9yIHJlc3RyaWN0aW5nIGZsYXR0ZW5pbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBmbGF0dGVuLlxuICogQHBhcmFtIHtudW1iZXJ9IGRlcHRoIFRoZSBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3ByZWRpY2F0ZT1pc0ZsYXR0ZW5hYmxlXSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNTdHJpY3RdIFJlc3RyaWN0IHRvIHZhbHVlcyB0aGF0IHBhc3MgYHByZWRpY2F0ZWAgY2hlY2tzLlxuICogQHBhcmFtIHtBcnJheX0gW3Jlc3VsdD1bXV0gVGhlIGluaXRpYWwgcmVzdWx0IHZhbHVlLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgZmxhdHRlbmVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBiYXNlRmxhdHRlbihhcnJheSwgZGVwdGgsIHByZWRpY2F0ZSwgaXNTdHJpY3QsIHJlc3VsdCkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBwcmVkaWNhdGUgfHwgKHByZWRpY2F0ZSA9IGlzRmxhdHRlbmFibGUpO1xuICByZXN1bHQgfHwgKHJlc3VsdCA9IFtdKTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICBpZiAoZGVwdGggPiAwICYmIHByZWRpY2F0ZSh2YWx1ZSkpIHtcbiAgICAgIGlmIChkZXB0aCA+IDEpIHtcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgZmxhdHRlbiBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICAgICAgYmFzZUZsYXR0ZW4odmFsdWUsIGRlcHRoIC0gMSwgcHJlZGljYXRlLCBpc1N0cmljdCwgcmVzdWx0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFycmF5UHVzaChyZXN1bHQsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCFpc1N0cmljdCkge1xuICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZsYXR0ZW47XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlRmxhdHRlbi5qc1xuLy8gbW9kdWxlIGlkID0gOTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGNyZWF0ZUJhc2VGb3IgPSByZXF1aXJlKCcuL19jcmVhdGVCYXNlRm9yJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGJhc2VGb3JPd25gIHdoaWNoIGl0ZXJhdGVzIG92ZXIgYG9iamVjdGBcbiAqIHByb3BlcnRpZXMgcmV0dXJuZWQgYnkgYGtleXNGdW5jYCBhbmQgaW52b2tlcyBgaXRlcmF0ZWVgIGZvciBlYWNoIHByb3BlcnR5LlxuICogSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGtleXNGdW5jIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgb2YgYG9iamVjdGAuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG52YXIgYmFzZUZvciA9IGNyZWF0ZUJhc2VGb3IoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlRm9yO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZUZvci5qc1xuLy8gbW9kdWxlIGlkID0gOTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGNhc3RQYXRoID0gcmVxdWlyZSgnLi9fY2FzdFBhdGgnKSxcbiAgICB0b0tleSA9IHJlcXVpcmUoJy4vX3RvS2V5Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZ2V0YCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZmF1bHQgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICovXG5mdW5jdGlvbiBiYXNlR2V0KG9iamVjdCwgcGF0aCkge1xuICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcblxuICB2YXIgaW5kZXggPSAwLFxuICAgICAgbGVuZ3RoID0gcGF0aC5sZW5ndGg7XG5cbiAgd2hpbGUgKG9iamVjdCAhPSBudWxsICYmIGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgb2JqZWN0ID0gb2JqZWN0W3RvS2V5KHBhdGhbaW5kZXgrK10pXTtcbiAgfVxuICByZXR1cm4gKGluZGV4ICYmIGluZGV4ID09IGxlbmd0aCkgPyBvYmplY3QgOiB1bmRlZmluZWQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUdldDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Jhc2VHZXQuanNcbi8vIG1vZHVsZSBpZCA9IDk0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaGFzSW5gIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30ga2V5IFRoZSBrZXkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VIYXNJbihvYmplY3QsIGtleSkge1xuICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYga2V5IGluIE9iamVjdChvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VIYXNJbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Jhc2VIYXNJbi5qc1xuLy8gbW9kdWxlIGlkID0gOTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FyZ3VtZW50c2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICovXG5mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNBcmd1bWVudHM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlSXNBcmd1bWVudHMuanNcbi8vIG1vZHVsZSBpZCA9IDk2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJyksXG4gICAgaXNNYXNrZWQgPSByZXF1aXJlKCcuL19pc01hc2tlZCcpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIHRvU291cmNlID0gcmVxdWlyZSgnLi9fdG9Tb3VyY2UnKTtcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodG9Tb3VyY2UodmFsdWUpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNOYXRpdmU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlSXNOYXRpdmUuanNcbi8vIG1vZHVsZSBpZCA9IDk3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlR2V0VGFnID0gcmVxdWlyZSgnLi9fYmFzZUdldFRhZycpLFxuICAgIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi9pc0xlbmd0aCcpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgYXJyYXlUYWcgPSAnW29iamVjdCBBcnJheV0nLFxuICAgIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIG9mIHR5cGVkIGFycmF5cy4gKi9cbnZhciB0eXBlZEFycmF5VGFncyA9IHt9O1xudHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQ4VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2ludDE2VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50OFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG50eXBlZEFycmF5VGFnc1thcmdzVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2FycmF5VGFnXSA9XG50eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9XG50eXBlZEFycmF5VGFnc1tkYXRhVmlld1RhZ10gPSB0eXBlZEFycmF5VGFnc1tkYXRlVGFnXSA9XG50eXBlZEFycmF5VGFnc1tlcnJvclRhZ10gPSB0eXBlZEFycmF5VGFnc1tmdW5jVGFnXSA9XG50eXBlZEFycmF5VGFnc1ttYXBUYWddID0gdHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9XG50eXBlZEFycmF5VGFnc1tvYmplY3RUYWddID0gdHlwZWRBcnJheVRhZ3NbcmVnZXhwVGFnXSA9XG50eXBlZEFycmF5VGFnc1tzZXRUYWddID0gdHlwZWRBcnJheVRhZ3Nbc3RyaW5nVGFnXSA9XG50eXBlZEFycmF5VGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzVHlwZWRBcnJheWAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB0eXBlZCBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNUeXBlZEFycmF5KHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmXG4gICAgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhIXR5cGVkQXJyYXlUYWdzW2Jhc2VHZXRUYWcodmFsdWUpXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNUeXBlZEFycmF5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZUlzVHlwZWRBcnJheS5qc1xuLy8gbW9kdWxlIGlkID0gOThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIGlzUHJvdG90eXBlID0gcmVxdWlyZSgnLi9faXNQcm90b3R5cGUnKSxcbiAgICBuYXRpdmVLZXlzSW4gPSByZXF1aXJlKCcuL19uYXRpdmVLZXlzSW4nKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5rZXlzSW5gIHdoaWNoIGRvZXNuJ3QgdHJlYXQgc3BhcnNlIGFycmF5cyBhcyBkZW5zZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYmFzZUtleXNJbihvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXNJbihvYmplY3QpO1xuICB9XG4gIHZhciBpc1Byb3RvID0gaXNQcm90b3R5cGUob2JqZWN0KSxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICBpZiAoIShrZXkgPT0gJ2NvbnN0cnVjdG9yJyAmJiAoaXNQcm90byB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlS2V5c0luO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZUtleXNJbi5qc1xuLy8gbW9kdWxlIGlkID0gOTlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIFN0YWNrID0gcmVxdWlyZSgnLi9fU3RhY2snKSxcbiAgICBhc3NpZ25NZXJnZVZhbHVlID0gcmVxdWlyZSgnLi9fYXNzaWduTWVyZ2VWYWx1ZScpLFxuICAgIGJhc2VGb3IgPSByZXF1aXJlKCcuL19iYXNlRm9yJyksXG4gICAgYmFzZU1lcmdlRGVlcCA9IHJlcXVpcmUoJy4vX2Jhc2VNZXJnZURlZXAnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICBrZXlzSW4gPSByZXF1aXJlKCcuL2tleXNJbicpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1lcmdlYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcGFyYW0ge251bWJlcn0gc3JjSW5kZXggVGhlIGluZGV4IG9mIGBzb3VyY2VgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgbWVyZ2VkIHZhbHVlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIHZhbHVlcyBhbmQgdGhlaXIgbWVyZ2VkXG4gKiAgY291bnRlcnBhcnRzLlxuICovXG5mdW5jdGlvbiBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjaykge1xuICBpZiAob2JqZWN0ID09PSBzb3VyY2UpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYmFzZUZvcihzb3VyY2UsIGZ1bmN0aW9uKHNyY1ZhbHVlLCBrZXkpIHtcbiAgICBpZiAoaXNPYmplY3Qoc3JjVmFsdWUpKSB7XG4gICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgICAgYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgYmFzZU1lcmdlLCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgICA/IGN1c3RvbWl6ZXIob2JqZWN0W2tleV0sIHNyY1ZhbHVlLCAoa2V5ICsgJycpLCBvYmplY3QsIHNvdXJjZSwgc3RhY2spXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBuZXdWYWx1ZSA9IHNyY1ZhbHVlO1xuICAgICAgfVxuICAgICAgYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH1cbiAgfSwga2V5c0luKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTWVyZ2U7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlTWVyZ2UuanNcbi8vIG1vZHVsZSBpZCA9IDEwMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYXNzaWduTWVyZ2VWYWx1ZSA9IHJlcXVpcmUoJy4vX2Fzc2lnbk1lcmdlVmFsdWUnKSxcbiAgICBjbG9uZUJ1ZmZlciA9IHJlcXVpcmUoJy4vX2Nsb25lQnVmZmVyJyksXG4gICAgY2xvbmVUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9fY2xvbmVUeXBlZEFycmF5JyksXG4gICAgY29weUFycmF5ID0gcmVxdWlyZSgnLi9fY29weUFycmF5JyksXG4gICAgaW5pdENsb25lT2JqZWN0ID0gcmVxdWlyZSgnLi9faW5pdENsb25lT2JqZWN0JyksXG4gICAgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzQXJyYXlMaWtlT2JqZWN0ID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZU9iamVjdCcpLFxuICAgIGlzQnVmZmVyID0gcmVxdWlyZSgnLi9pc0J1ZmZlcicpLFxuICAgIGlzRnVuY3Rpb24gPSByZXF1aXJlKCcuL2lzRnVuY3Rpb24nKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICBpc1BsYWluT2JqZWN0ID0gcmVxdWlyZSgnLi9pc1BsYWluT2JqZWN0JyksXG4gICAgaXNUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9pc1R5cGVkQXJyYXknKSxcbiAgICB0b1BsYWluT2JqZWN0ID0gcmVxdWlyZSgnLi90b1BsYWluT2JqZWN0Jyk7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlTWVyZ2VgIGZvciBhcnJheXMgYW5kIG9iamVjdHMgd2hpY2ggcGVyZm9ybXNcbiAqIGRlZXAgbWVyZ2VzIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gKiByZWZlcmVuY2VzIHRvIGJlIG1lcmdlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gbWVyZ2UuXG4gKiBAcGFyYW0ge251bWJlcn0gc3JjSW5kZXggVGhlIGluZGV4IG9mIGBzb3VyY2VgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gbWVyZ2VGdW5jIFRoZSBmdW5jdGlvbiB0byBtZXJnZSB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxuICogIGNvdW50ZXJwYXJ0cy5cbiAqL1xuZnVuY3Rpb24gYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgbWVyZ2VGdW5jLCBjdXN0b21pemVyLCBzdGFjaykge1xuICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgIHNyY1ZhbHVlID0gc291cmNlW2tleV0sXG4gICAgICBzdGFja2VkID0gc3RhY2suZ2V0KHNyY1ZhbHVlKTtcblxuICBpZiAoc3RhY2tlZCkge1xuICAgIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIHN0YWNrZWQpO1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgPyBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSwgKGtleSArICcnKSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIHZhciBpc0NvbW1vbiA9IG5ld1ZhbHVlID09PSB1bmRlZmluZWQ7XG5cbiAgaWYgKGlzQ29tbW9uKSB7XG4gICAgdmFyIGlzQXJyID0gaXNBcnJheShzcmNWYWx1ZSksXG4gICAgICAgIGlzQnVmZiA9ICFpc0FyciAmJiBpc0J1ZmZlcihzcmNWYWx1ZSksXG4gICAgICAgIGlzVHlwZWQgPSAhaXNBcnIgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkoc3JjVmFsdWUpO1xuXG4gICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICBpZiAoaXNBcnIgfHwgaXNCdWZmIHx8IGlzVHlwZWQpIHtcbiAgICAgIGlmIChpc0FycmF5KG9ialZhbHVlKSkge1xuICAgICAgICBuZXdWYWx1ZSA9IG9ialZhbHVlO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoaXNBcnJheUxpa2VPYmplY3Qob2JqVmFsdWUpKSB7XG4gICAgICAgIG5ld1ZhbHVlID0gY29weUFycmF5KG9ialZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGlzQnVmZikge1xuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICBuZXdWYWx1ZSA9IGNsb25lQnVmZmVyKHNyY1ZhbHVlLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGlzVHlwZWQpIHtcbiAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgbmV3VmFsdWUgPSBjbG9uZVR5cGVkQXJyYXkoc3JjVmFsdWUsIHRydWUpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIG5ld1ZhbHVlID0gW107XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzUGxhaW5PYmplY3Qoc3JjVmFsdWUpIHx8IGlzQXJndW1lbnRzKHNyY1ZhbHVlKSkge1xuICAgICAgbmV3VmFsdWUgPSBvYmpWYWx1ZTtcbiAgICAgIGlmIChpc0FyZ3VtZW50cyhvYmpWYWx1ZSkpIHtcbiAgICAgICAgbmV3VmFsdWUgPSB0b1BsYWluT2JqZWN0KG9ialZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKCFpc09iamVjdChvYmpWYWx1ZSkgfHwgKHNyY0luZGV4ICYmIGlzRnVuY3Rpb24ob2JqVmFsdWUpKSkge1xuICAgICAgICBuZXdWYWx1ZSA9IGluaXRDbG9uZU9iamVjdChzcmNWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgaWYgKGlzQ29tbW9uKSB7XG4gICAgLy8gUmVjdXJzaXZlbHkgbWVyZ2Ugb2JqZWN0cyBhbmQgYXJyYXlzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgc3RhY2suc2V0KHNyY1ZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgbWVyZ2VGdW5jKG5ld1ZhbHVlLCBzcmNWYWx1ZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIsIHN0YWNrKTtcbiAgICBzdGFja1snZGVsZXRlJ10oc3JjVmFsdWUpO1xuICB9XG4gIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTWVyZ2VEZWVwO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZU1lcmdlRGVlcC5qc1xuLy8gbW9kdWxlIGlkID0gMTAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlUGlja0J5ID0gcmVxdWlyZSgnLi9fYmFzZVBpY2tCeScpLFxuICAgIGhhc0luID0gcmVxdWlyZSgnLi9oYXNJbicpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnBpY2tgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaW5kaXZpZHVhbFxuICogcHJvcGVydHkgaWRlbnRpZmllcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRocyBUaGUgcHJvcGVydHkgcGF0aHMgdG8gcGljay5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGJhc2VQaWNrKG9iamVjdCwgcGF0aHMpIHtcbiAgcmV0dXJuIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgZnVuY3Rpb24odmFsdWUsIHBhdGgpIHtcbiAgICByZXR1cm4gaGFzSW4ob2JqZWN0LCBwYXRoKTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVBpY2s7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlUGljay5qc1xuLy8gbW9kdWxlIGlkID0gMTAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlR2V0ID0gcmVxdWlyZSgnLi9fYmFzZUdldCcpLFxuICAgIGJhc2VTZXQgPSByZXF1aXJlKCcuL19iYXNlU2V0JyksXG4gICAgY2FzdFBhdGggPSByZXF1aXJlKCcuL19jYXN0UGF0aCcpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mICBgXy5waWNrQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgc291cmNlIG9iamVjdC5cbiAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGhzIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBwcm9wZXJ0eS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGJhc2VQaWNrQnkob2JqZWN0LCBwYXRocywgcHJlZGljYXRlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcGF0aHMubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0ge307XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgcGF0aCA9IHBhdGhzW2luZGV4XSxcbiAgICAgICAgdmFsdWUgPSBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG5cbiAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBwYXRoKSkge1xuICAgICAgYmFzZVNldChyZXN1bHQsIGNhc3RQYXRoKHBhdGgsIG9iamVjdCksIHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlUGlja0J5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZVBpY2tCeS5qc1xuLy8gbW9kdWxlIGlkID0gMTAzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBpZGVudGl0eSA9IHJlcXVpcmUoJy4vaWRlbnRpdHknKSxcbiAgICBvdmVyUmVzdCA9IHJlcXVpcmUoJy4vX292ZXJSZXN0JyksXG4gICAgc2V0VG9TdHJpbmcgPSByZXF1aXJlKCcuL19zZXRUb1N0cmluZycpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJlc3RgIHdoaWNoIGRvZXNuJ3QgdmFsaWRhdGUgb3IgY29lcmNlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlUmVzdChmdW5jLCBzdGFydCkge1xuICByZXR1cm4gc2V0VG9TdHJpbmcob3ZlclJlc3QoZnVuYywgc3RhcnQsIGlkZW50aXR5KSwgZnVuYyArICcnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlUmVzdDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2Jhc2VSZXN0LmpzXG4vLyBtb2R1bGUgaWQgPSAxMDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYXNzaWduVmFsdWUnKSxcbiAgICBjYXN0UGF0aCA9IHJlcXVpcmUoJy4vX2Nhc3RQYXRoJyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vX2lzSW5kZXgnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICB0b0tleSA9IHJlcXVpcmUoJy4vX3RvS2V5Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc2V0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBwYXRoIGNyZWF0aW9uLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gYmFzZVNldChvYmplY3QsIHBhdGgsIHZhbHVlLCBjdXN0b21pemVyKSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cbiAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aCxcbiAgICAgIGxhc3RJbmRleCA9IGxlbmd0aCAtIDEsXG4gICAgICBuZXN0ZWQgPSBvYmplY3Q7XG5cbiAgd2hpbGUgKG5lc3RlZCAhPSBudWxsICYmICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gdG9LZXkocGF0aFtpbmRleF0pLFxuICAgICAgICBuZXdWYWx1ZSA9IHZhbHVlO1xuXG4gICAgaWYgKGluZGV4ICE9IGxhc3RJbmRleCkge1xuICAgICAgdmFyIG9ialZhbHVlID0gbmVzdGVkW2tleV07XG4gICAgICBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKG9ialZhbHVlLCBrZXksIG5lc3RlZCkgOiB1bmRlZmluZWQ7XG4gICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBuZXdWYWx1ZSA9IGlzT2JqZWN0KG9ialZhbHVlKVxuICAgICAgICAgID8gb2JqVmFsdWVcbiAgICAgICAgICA6IChpc0luZGV4KHBhdGhbaW5kZXggKyAxXSkgPyBbXSA6IHt9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgYXNzaWduVmFsdWUobmVzdGVkLCBrZXksIG5ld1ZhbHVlKTtcbiAgICBuZXN0ZWQgPSBuZXN0ZWRba2V5XTtcbiAgfVxuICByZXR1cm4gb2JqZWN0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VTZXQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlU2V0LmpzXG4vLyBtb2R1bGUgaWQgPSAxMDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGNvbnN0YW50ID0gcmVxdWlyZSgnLi9jb25zdGFudCcpLFxuICAgIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fZGVmaW5lUHJvcGVydHknKSxcbiAgICBpZGVudGl0eSA9IHJlcXVpcmUoJy4vaWRlbnRpdHknKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgc2V0VG9TdHJpbmdgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaG90IGxvb3Agc2hvcnRpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHN0cmluZyBUaGUgYHRvU3RyaW5nYCByZXN1bHQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICovXG52YXIgYmFzZVNldFRvU3RyaW5nID0gIWRlZmluZVByb3BlcnR5ID8gaWRlbnRpdHkgOiBmdW5jdGlvbihmdW5jLCBzdHJpbmcpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5KGZ1bmMsICd0b1N0cmluZycsIHtcbiAgICAnY29uZmlndXJhYmxlJzogdHJ1ZSxcbiAgICAnZW51bWVyYWJsZSc6IGZhbHNlLFxuICAgICd2YWx1ZSc6IGNvbnN0YW50KHN0cmluZyksXG4gICAgJ3dyaXRhYmxlJzogdHJ1ZVxuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVNldFRvU3RyaW5nO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZVNldFRvU3RyaW5nLmpzXG4vLyBtb2R1bGUgaWQgPSAxMDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50aW1lc2Agd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzXG4gKiBvciBtYXggYXJyYXkgbGVuZ3RoIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byBpbnZva2UgYGl0ZXJhdGVlYC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUaW1lcyhuLCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IEFycmF5KG4pO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShpbmRleCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlVGltZXM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlVGltZXMuanNcbi8vIG1vZHVsZSBpZCA9IDEwN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fU3ltYm9sJyksXG4gICAgYXJyYXlNYXAgPSByZXF1aXJlKCcuL19hcnJheU1hcCcpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc1N5bWJvbCA9IHJlcXVpcmUoJy4vaXNTeW1ib2wnKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgSU5GSU5JVFkgPSAxIC8gMDtcblxuLyoqIFVzZWQgdG8gY29udmVydCBzeW1ib2xzIHRvIHByaW1pdGl2ZXMgYW5kIHN0cmluZ3MuICovXG52YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wgPyBTeW1ib2wucHJvdG90eXBlIDogdW5kZWZpbmVkLFxuICAgIHN5bWJvbFRvU3RyaW5nID0gc3ltYm9sUHJvdG8gPyBzeW1ib2xQcm90by50b1N0cmluZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50b1N0cmluZ2Agd2hpY2ggZG9lc24ndCBjb252ZXJ0IG51bGxpc2hcbiAqIHZhbHVlcyB0byBlbXB0eSBzdHJpbmdzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBwcm9jZXNzLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBiYXNlVG9TdHJpbmcodmFsdWUpIHtcbiAgLy8gRXhpdCBlYXJseSBmb3Igc3RyaW5ncyB0byBhdm9pZCBhIHBlcmZvcm1hbmNlIGhpdCBpbiBzb21lIGVudmlyb25tZW50cy5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAvLyBSZWN1cnNpdmVseSBjb252ZXJ0IHZhbHVlcyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgIHJldHVybiBhcnJheU1hcCh2YWx1ZSwgYmFzZVRvU3RyaW5nKSArICcnO1xuICB9XG4gIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gc3ltYm9sVG9TdHJpbmcgPyBzeW1ib2xUb1N0cmluZy5jYWxsKHZhbHVlKSA6ICcnO1xuICB9XG4gIHZhciByZXN1bHQgPSAodmFsdWUgKyAnJyk7XG4gIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlVG9TdHJpbmc7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19iYXNlVG9TdHJpbmcuanNcbi8vIG1vZHVsZSBpZCA9IDEwOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuYXJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0b3JpbmcgbWV0YWRhdGEuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FwcGVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlVW5hcnkoZnVuYykge1xuICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gZnVuYyh2YWx1ZSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVVuYXJ5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fYmFzZVVuYXJ5LmpzXG4vLyBtb2R1bGUgaWQgPSAxMDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIFVpbnQ4QXJyYXkgPSByZXF1aXJlKCcuL19VaW50OEFycmF5Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mIGBhcnJheUJ1ZmZlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGFycmF5QnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXlCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBhcnJheSBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGNsb25lQXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIpIHtcbiAgdmFyIHJlc3VsdCA9IG5ldyBhcnJheUJ1ZmZlci5jb25zdHJ1Y3RvcihhcnJheUJ1ZmZlci5ieXRlTGVuZ3RoKTtcbiAgbmV3IFVpbnQ4QXJyYXkocmVzdWx0KS5zZXQobmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjbG9uZUFycmF5QnVmZmVyO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fY2xvbmVBcnJheUJ1ZmZlci5qc1xuLy8gbW9kdWxlIGlkID0gMTEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xudmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG52YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUgPT0gJ29iamVjdCcgJiYgbW9kdWxlICYmICFtb2R1bGUubm9kZVR5cGUgJiYgbW9kdWxlO1xuXG4vKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xudmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIEJ1ZmZlciA9IG1vZHVsZUV4cG9ydHMgPyByb290LkJ1ZmZlciA6IHVuZGVmaW5lZCxcbiAgICBhbGxvY1Vuc2FmZSA9IEJ1ZmZlciA/IEJ1ZmZlci5hbGxvY1Vuc2FmZSA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgIGBidWZmZXJgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIFRoZSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge0J1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGJ1ZmZlci5cbiAqL1xuZnVuY3Rpb24gY2xvbmVCdWZmZXIoYnVmZmVyLCBpc0RlZXApIHtcbiAgaWYgKGlzRGVlcCkge1xuICAgIHJldHVybiBidWZmZXIuc2xpY2UoKTtcbiAgfVxuICB2YXIgbGVuZ3RoID0gYnVmZmVyLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IGFsbG9jVW5zYWZlID8gYWxsb2NVbnNhZmUobGVuZ3RoKSA6IG5ldyBidWZmZXIuY29uc3RydWN0b3IobGVuZ3RoKTtcblxuICBidWZmZXIuY29weShyZXN1bHQpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsb25lQnVmZmVyO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fY2xvbmVCdWZmZXIuanNcbi8vIG1vZHVsZSBpZCA9IDExMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgY2xvbmVBcnJheUJ1ZmZlciA9IHJlcXVpcmUoJy4vX2Nsb25lQXJyYXlCdWZmZXInKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHR5cGVkQXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gdHlwZWRBcnJheSBUaGUgdHlwZWQgYXJyYXkgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHR5cGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBjbG9uZVR5cGVkQXJyYXkodHlwZWRBcnJheSwgaXNEZWVwKSB7XG4gIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKHR5cGVkQXJyYXkuYnVmZmVyKSA6IHR5cGVkQXJyYXkuYnVmZmVyO1xuICByZXR1cm4gbmV3IHR5cGVkQXJyYXkuY29uc3RydWN0b3IoYnVmZmVyLCB0eXBlZEFycmF5LmJ5dGVPZmZzZXQsIHR5cGVkQXJyYXkubGVuZ3RoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjbG9uZVR5cGVkQXJyYXk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19jbG9uZVR5cGVkQXJyYXkuanNcbi8vIG1vZHVsZSBpZCA9IDExMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKipcbiAqIENvcGllcyB0aGUgdmFsdWVzIG9mIGBzb3VyY2VgIHRvIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IHNvdXJjZSBUaGUgYXJyYXkgdG8gY29weSB2YWx1ZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheT1bXV0gVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIHRvLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlBcnJheShzb3VyY2UsIGFycmF5KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gc291cmNlLmxlbmd0aDtcblxuICBhcnJheSB8fCAoYXJyYXkgPSBBcnJheShsZW5ndGgpKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhcnJheVtpbmRleF0gPSBzb3VyY2VbaW5kZXhdO1xuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb3B5QXJyYXk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19jb3B5QXJyYXkuanNcbi8vIG1vZHVsZSBpZCA9IDExM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYXNzaWduVmFsdWUgPSByZXF1aXJlKCcuL19hc3NpZ25WYWx1ZScpLFxuICAgIGJhc2VBc3NpZ25WYWx1ZSA9IHJlcXVpcmUoJy4vX2Jhc2VBc3NpZ25WYWx1ZScpO1xuXG4vKipcbiAqIENvcGllcyBwcm9wZXJ0aWVzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb20uXG4gKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMgdG8gY29weS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyB0by5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvcGllZCB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb3B5T2JqZWN0KHNvdXJjZSwgcHJvcHMsIG9iamVjdCwgY3VzdG9taXplcikge1xuICB2YXIgaXNOZXcgPSAhb2JqZWN0O1xuICBvYmplY3QgfHwgKG9iamVjdCA9IHt9KTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG5cbiAgICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgICA/IGN1c3RvbWl6ZXIob2JqZWN0W2tleV0sIHNvdXJjZVtrZXldLCBrZXksIG9iamVjdCwgc291cmNlKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV3VmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICB9XG4gICAgaWYgKGlzTmV3KSB7XG4gICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjb3B5T2JqZWN0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fY29weU9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTE0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiogVXNlZCB0byBkZXRlY3Qgb3ZlcnJlYWNoaW5nIGNvcmUtanMgc2hpbXMuICovXG52YXIgY29yZUpzRGF0YSA9IHJvb3RbJ19fY29yZS1qc19zaGFyZWRfXyddO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvcmVKc0RhdGE7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19jb3JlSnNEYXRhLmpzXG4vLyBtb2R1bGUgaWQgPSAxMTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGJhc2VSZXN0ID0gcmVxdWlyZSgnLi9fYmFzZVJlc3QnKSxcbiAgICBpc0l0ZXJhdGVlQ2FsbCA9IHJlcXVpcmUoJy4vX2lzSXRlcmF0ZWVDYWxsJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uYXNzaWduYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhc3NpZ25lciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aCxcbiAgICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA+IDEgPyBzb3VyY2VzW2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkLFxuICAgICAgICBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkO1xuXG4gICAgY3VzdG9taXplciA9IChhc3NpZ25lci5sZW5ndGggPiAzICYmIHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicpXG4gICAgICA/IChsZW5ndGgtLSwgY3VzdG9taXplcilcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA8IDMgPyB1bmRlZmluZWQgOiBjdXN0b21pemVyO1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9XG4gICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcbiAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQXNzaWduZXI7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19jcmVhdGVBc3NpZ25lci5qc1xuLy8gbW9kdWxlIGlkID0gMTE2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogQ3JlYXRlcyBhIGJhc2UgZnVuY3Rpb24gZm9yIG1ldGhvZHMgbGlrZSBgXy5mb3JJbmAgYW5kIGBfLmZvck93bmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFzZUZvcihmcm9tUmlnaHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCwgaXRlcmF0ZWUsIGtleXNGdW5jKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGl0ZXJhYmxlID0gT2JqZWN0KG9iamVjdCksXG4gICAgICAgIHByb3BzID0ga2V5c0Z1bmMob2JqZWN0KSxcbiAgICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgICB2YXIga2V5ID0gcHJvcHNbZnJvbVJpZ2h0ID8gbGVuZ3RoIDogKytpbmRleF07XG4gICAgICBpZiAoaXRlcmF0ZWUoaXRlcmFibGVba2V5XSwga2V5LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUJhc2VGb3I7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19jcmVhdGVCYXNlRm9yLmpzXG4vLyBtb2R1bGUgaWQgPSAxMTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGZsYXR0ZW4gPSByZXF1aXJlKCcuL2ZsYXR0ZW4nKSxcbiAgICBvdmVyUmVzdCA9IHJlcXVpcmUoJy4vX292ZXJSZXN0JyksXG4gICAgc2V0VG9TdHJpbmcgPSByZXF1aXJlKCcuL19zZXRUb1N0cmluZycpO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZVJlc3RgIHdoaWNoIGZsYXR0ZW5zIHRoZSByZXN0IGFycmF5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhcHBseSBhIHJlc3QgcGFyYW1ldGVyIHRvLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGZsYXRSZXN0KGZ1bmMpIHtcbiAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHVuZGVmaW5lZCwgZmxhdHRlbiksIGZ1bmMgKyAnJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZmxhdFJlc3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19mbGF0UmVzdC5qc1xuLy8gbW9kdWxlIGlkID0gMTE4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUdldFRhZ2Agd2hpY2ggaWdub3JlcyBgU3ltYm9sLnRvU3RyaW5nVGFnYCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmF3IGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGdldFJhd1RhZyh2YWx1ZSkge1xuICB2YXIgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyksXG4gICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG5cbiAgdHJ5IHtcbiAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgdmFyIHVubWFza2VkID0gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge31cblxuICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gIGlmICh1bm1hc2tlZCkge1xuICAgIGlmIChpc093bikge1xuICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFJhd1RhZztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2dldFJhd1RhZy5qc1xuLy8gbW9kdWxlIGlkID0gMTE5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogR2V0cyB0aGUgdmFsdWUgYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGdldFZhbHVlKG9iamVjdCwga2V5KSB7XG4gIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFtrZXldO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFZhbHVlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fZ2V0VmFsdWUuanNcbi8vIG1vZHVsZSBpZCA9IDEyMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgY2FzdFBhdGggPSByZXF1aXJlKCcuL19jYXN0UGF0aCcpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9pc0FyZ3VtZW50cycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc0luZGV4ID0gcmVxdWlyZSgnLi9faXNJbmRleCcpLFxuICAgIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi9pc0xlbmd0aCcpLFxuICAgIHRvS2V5ID0gcmVxdWlyZSgnLi9fdG9LZXknKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHBhdGhgIGV4aXN0cyBvbiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYXNGdW5jIFRoZSBmdW5jdGlvbiB0byBjaGVjayBwcm9wZXJ0aWVzLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBwYXRoYCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaGFzUGF0aChvYmplY3QsIHBhdGgsIGhhc0Z1bmMpIHtcbiAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IGZhbHNlO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGtleSA9IHRvS2V5KHBhdGhbaW5kZXhdKTtcbiAgICBpZiAoIShyZXN1bHQgPSBvYmplY3QgIT0gbnVsbCAmJiBoYXNGdW5jKG9iamVjdCwga2V5KSkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBvYmplY3QgPSBvYmplY3Rba2V5XTtcbiAgfVxuICBpZiAocmVzdWx0IHx8ICsraW5kZXggIT0gbGVuZ3RoKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBsZW5ndGggPSBvYmplY3QgPT0gbnVsbCA/IDAgOiBvYmplY3QubGVuZ3RoO1xuICByZXR1cm4gISFsZW5ndGggJiYgaXNMZW5ndGgobGVuZ3RoKSAmJiBpc0luZGV4KGtleSwgbGVuZ3RoKSAmJlxuICAgIChpc0FycmF5KG9iamVjdCkgfHwgaXNBcmd1bWVudHMob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFzUGF0aDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2hhc1BhdGguanNcbi8vIG1vZHVsZSBpZCA9IDEyMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgbmF0aXZlQ3JlYXRlID0gcmVxdWlyZSgnLi9fbmF0aXZlQ3JlYXRlJyk7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgaGFzaC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKi9cbmZ1bmN0aW9uIGhhc2hDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xuICB0aGlzLnNpemUgPSAwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhhc2hDbGVhcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2hhc2hDbGVhci5qc1xuLy8gbW9kdWxlIGlkID0gMTIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGhhc2guXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7T2JqZWN0fSBoYXNoIFRoZSBoYXNoIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBoYXNoRGVsZXRlKGtleSkge1xuICB2YXIgcmVzdWx0ID0gdGhpcy5oYXMoa2V5KSAmJiBkZWxldGUgdGhpcy5fX2RhdGFfX1trZXldO1xuICB0aGlzLnNpemUgLT0gcmVzdWx0ID8gMSA6IDA7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFzaERlbGV0ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2hhc2hEZWxldGUuanNcbi8vIG1vZHVsZSBpZCA9IDEyM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgbmF0aXZlQ3JlYXRlID0gcmVxdWlyZSgnLi9fbmF0aXZlQ3JlYXRlJyk7XG5cbi8qKiBVc2VkIHRvIHN0YW5kLWluIGZvciBgdW5kZWZpbmVkYCBoYXNoIHZhbHVlcy4gKi9cbnZhciBIQVNIX1VOREVGSU5FRCA9ICdfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBHZXRzIHRoZSBoYXNoIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGhhc2hHZXQoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgaWYgKG5hdGl2ZUNyZWF0ZSkge1xuICAgIHZhciByZXN1bHQgPSBkYXRhW2tleV07XG4gICAgcmV0dXJuIHJlc3VsdCA9PT0gSEFTSF9VTkRFRklORUQgPyB1bmRlZmluZWQgOiByZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoZGF0YSwga2V5KSA/IGRhdGFba2V5XSA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXNoR2V0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9faGFzaEdldC5qc1xuLy8gbW9kdWxlIGlkID0gMTI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBuYXRpdmVDcmVhdGUgPSByZXF1aXJlKCcuL19uYXRpdmVDcmVhdGUnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBoYXNoIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIEhhc2hcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBoYXNoSGFzKGtleSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX187XG4gIHJldHVybiBuYXRpdmVDcmVhdGUgPyAoZGF0YVtrZXldICE9PSB1bmRlZmluZWQpIDogaGFzT3duUHJvcGVydHkuY2FsbChkYXRhLCBrZXkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhhc2hIYXM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19oYXNoSGFzLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIG5hdGl2ZUNyZWF0ZSA9IHJlcXVpcmUoJy4vX25hdGl2ZUNyZWF0ZScpO1xuXG4vKiogVXNlZCB0byBzdGFuZC1pbiBmb3IgYHVuZGVmaW5lZGAgaGFzaCB2YWx1ZXMuICovXG52YXIgSEFTSF9VTkRFRklORUQgPSAnX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyc7XG5cbi8qKlxuICogU2V0cyB0aGUgaGFzaCBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGhhc2ggaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIGhhc2hTZXQoa2V5LCB2YWx1ZSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX187XG4gIHRoaXMuc2l6ZSArPSB0aGlzLmhhcyhrZXkpID8gMCA6IDE7XG4gIGRhdGFba2V5XSA9IChuYXRpdmVDcmVhdGUgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkgPyBIQVNIX1VOREVGSU5FRCA6IHZhbHVlO1xuICByZXR1cm4gdGhpcztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXNoU2V0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9faGFzaFNldC5qc1xuLy8gbW9kdWxlIGlkID0gMTI2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlQ3JlYXRlID0gcmVxdWlyZSgnLi9fYmFzZUNyZWF0ZScpLFxuICAgIGdldFByb3RvdHlwZSA9IHJlcXVpcmUoJy4vX2dldFByb3RvdHlwZScpLFxuICAgIGlzUHJvdG90eXBlID0gcmVxdWlyZSgnLi9faXNQcm90b3R5cGUnKTtcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICovXG5mdW5jdGlvbiBpbml0Q2xvbmVPYmplY3Qob2JqZWN0KSB7XG4gIHJldHVybiAodHlwZW9mIG9iamVjdC5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmICFpc1Byb3RvdHlwZShvYmplY3QpKVxuICAgID8gYmFzZUNyZWF0ZShnZXRQcm90b3R5cGUob2JqZWN0KSlcbiAgICA6IHt9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluaXRDbG9uZU9iamVjdDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2luaXRDbG9uZU9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTI3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKSxcbiAgICBpc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4vaXNBcmd1bWVudHMnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5Jyk7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHNwcmVhZGFibGVTeW1ib2wgPSBTeW1ib2wgPyBTeW1ib2wuaXNDb25jYXRTcHJlYWRhYmxlIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgZmxhdHRlbmFibGUgYGFyZ3VtZW50c2Agb2JqZWN0IG9yIGFycmF5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGZsYXR0ZW5hYmxlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzRmxhdHRlbmFibGUodmFsdWUpIHtcbiAgcmV0dXJuIGlzQXJyYXkodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVlKSB8fFxuICAgICEhKHNwcmVhZGFibGVTeW1ib2wgJiYgdmFsdWUgJiYgdmFsdWVbc3ByZWFkYWJsZVN5bWJvbF0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRmxhdHRlbmFibGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19pc0ZsYXR0ZW5hYmxlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGVxID0gcmVxdWlyZSgnLi9lcScpLFxuICAgIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpLFxuICAgIGlzSW5kZXggPSByZXF1aXJlKCcuL19pc0luZGV4JyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0Jyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIHZhbHVlIGFyZ3VtZW50LlxuICogQHBhcmFtIHsqfSBpbmRleCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIGluZGV4IG9yIGtleSBhcmd1bWVudC5cbiAqIEBwYXJhbSB7Kn0gb2JqZWN0IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgb2JqZWN0IGFyZ3VtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzSXRlcmF0ZWVDYWxsKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgdHlwZSA9IHR5cGVvZiBpbmRleDtcbiAgaWYgKHR5cGUgPT0gJ251bWJlcidcbiAgICAgICAgPyAoaXNBcnJheUxpa2Uob2JqZWN0KSAmJiBpc0luZGV4KGluZGV4LCBvYmplY3QubGVuZ3RoKSlcbiAgICAgICAgOiAodHlwZSA9PSAnc3RyaW5nJyAmJiBpbmRleCBpbiBvYmplY3QpXG4gICAgICApIHtcbiAgICByZXR1cm4gZXEob2JqZWN0W2luZGV4XSwgdmFsdWUpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0l0ZXJhdGVlQ2FsbDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2lzSXRlcmF0ZWVDYWxsLmpzXG4vLyBtb2R1bGUgaWQgPSAxMjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc1N5bWJvbCA9IHJlcXVpcmUoJy4vaXNTeW1ib2wnKTtcblxuLyoqIFVzZWQgdG8gbWF0Y2ggcHJvcGVydHkgbmFtZXMgd2l0aGluIHByb3BlcnR5IHBhdGhzLiAqL1xudmFyIHJlSXNEZWVwUHJvcCA9IC9cXC58XFxbKD86W15bXFxdXSp8KFtcIiddKSg/Oig/IVxcMSlbXlxcXFxdfFxcXFwuKSo/XFwxKVxcXS8sXG4gICAgcmVJc1BsYWluUHJvcCA9IC9eXFx3KiQvO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSBhbmQgbm90IGEgcHJvcGVydHkgcGF0aC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeSBrZXlzIG9uLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwcm9wZXJ0eSBuYW1lLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzS2V5KHZhbHVlLCBvYmplY3QpIHtcbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBpZiAodHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nIHx8XG4gICAgICB2YWx1ZSA9PSBudWxsIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiByZUlzUGxhaW5Qcm9wLnRlc3QodmFsdWUpIHx8ICFyZUlzRGVlcFByb3AudGVzdCh2YWx1ZSkgfHxcbiAgICAob2JqZWN0ICE9IG51bGwgJiYgdmFsdWUgaW4gT2JqZWN0KG9iamVjdCkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzS2V5O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9faXNLZXkuanNcbi8vIG1vZHVsZSBpZCA9IDEzMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciB1c2UgYXMgdW5pcXVlIG9iamVjdCBrZXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNLZXlhYmxlKHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gKHR5cGUgPT0gJ3N0cmluZycgfHwgdHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdzeW1ib2wnIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nKVxuICAgID8gKHZhbHVlICE9PSAnX19wcm90b19fJylcbiAgICA6ICh2YWx1ZSA9PT0gbnVsbCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNLZXlhYmxlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9faXNLZXlhYmxlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGNvcmVKc0RhdGEgPSByZXF1aXJlKCcuL19jb3JlSnNEYXRhJyk7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXG52YXIgbWFza1NyY0tleSA9IChmdW5jdGlvbigpIHtcbiAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8ICcnKTtcbiAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xufSgpKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBpdHMgc291cmNlIG1hc2tlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2tlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc01hc2tlZChmdW5jKSB7XG4gIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgKG1hc2tTcmNLZXkgaW4gZnVuYyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNNYXNrZWQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19pc01hc2tlZC5qc1xuLy8gbW9kdWxlIGlkID0gMTMyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgbGlzdCBjYWNoZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlQ2xlYXIoKSB7XG4gIHRoaXMuX19kYXRhX18gPSBbXTtcbiAgdGhpcy5zaXplID0gMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaXN0Q2FjaGVDbGVhcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2xpc3RDYWNoZUNsZWFyLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGFzc29jSW5kZXhPZiA9IHJlcXVpcmUoJy4vX2Fzc29jSW5kZXhPZicpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2U7XG5cbi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIGxpc3QgY2FjaGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZURlbGV0ZShrZXkpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fLFxuICAgICAgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcblxuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBsYXN0SW5kZXggPSBkYXRhLmxlbmd0aCAtIDE7XG4gIGlmIChpbmRleCA9PSBsYXN0SW5kZXgpIHtcbiAgICBkYXRhLnBvcCgpO1xuICB9IGVsc2Uge1xuICAgIHNwbGljZS5jYWxsKGRhdGEsIGluZGV4LCAxKTtcbiAgfVxuICAtLXRoaXMuc2l6ZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGlzdENhY2hlRGVsZXRlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fbGlzdENhY2hlRGVsZXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGFzc29jSW5kZXhPZiA9IHJlcXVpcmUoJy4vX2Fzc29jSW5kZXhPZicpO1xuXG4vKipcbiAqIEdldHMgdGhlIGxpc3QgY2FjaGUgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVHZXQoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgcmV0dXJuIGluZGV4IDwgMCA/IHVuZGVmaW5lZCA6IGRhdGFbaW5kZXhdWzFdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxpc3RDYWNoZUdldDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX2xpc3RDYWNoZUdldC5qc1xuLy8gbW9kdWxlIGlkID0gMTM1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBhc3NvY0luZGV4T2YgPSByZXF1aXJlKCcuL19hc3NvY0luZGV4T2YnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBsaXN0IGNhY2hlIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZUhhcyhrZXkpIHtcbiAgcmV0dXJuIGFzc29jSW5kZXhPZih0aGlzLl9fZGF0YV9fLCBrZXkpID4gLTE7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGlzdENhY2hlSGFzO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fbGlzdENhY2hlSGFzLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGFzc29jSW5kZXhPZiA9IHJlcXVpcmUoJy4vX2Fzc29jSW5kZXhPZicpO1xuXG4vKipcbiAqIFNldHMgdGhlIGxpc3QgY2FjaGUgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGxpc3QgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIGxpc3RDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgaWYgKGluZGV4IDwgMCkge1xuICAgICsrdGhpcy5zaXplO1xuICAgIGRhdGEucHVzaChba2V5LCB2YWx1ZV0pO1xuICB9IGVsc2Uge1xuICAgIGRhdGFbaW5kZXhdWzFdID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGlzdENhY2hlU2V0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fbGlzdENhY2hlU2V0LmpzXG4vLyBtb2R1bGUgaWQgPSAxMzdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIEhhc2ggPSByZXF1aXJlKCcuL19IYXNoJyksXG4gICAgTGlzdENhY2hlID0gcmVxdWlyZSgnLi9fTGlzdENhY2hlJyksXG4gICAgTWFwID0gcmVxdWlyZSgnLi9fTWFwJyk7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgbWFwLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlQ2xlYXIoKSB7XG4gIHRoaXMuc2l6ZSA9IDA7XG4gIHRoaXMuX19kYXRhX18gPSB7XG4gICAgJ2hhc2gnOiBuZXcgSGFzaCxcbiAgICAnbWFwJzogbmV3IChNYXAgfHwgTGlzdENhY2hlKSxcbiAgICAnc3RyaW5nJzogbmV3IEhhc2hcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBDYWNoZUNsZWFyO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fbWFwQ2FjaGVDbGVhci5qc1xuLy8gbW9kdWxlIGlkID0gMTM4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBnZXRNYXBEYXRhID0gcmVxdWlyZSgnLi9fZ2V0TWFwRGF0YScpO1xuXG4vKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBtYXAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVEZWxldGUoa2V5KSB7XG4gIHZhciByZXN1bHQgPSBnZXRNYXBEYXRhKHRoaXMsIGtleSlbJ2RlbGV0ZSddKGtleSk7XG4gIHRoaXMuc2l6ZSAtPSByZXN1bHQgPyAxIDogMDtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBDYWNoZURlbGV0ZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX21hcENhY2hlRGVsZXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAxMzlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGdldE1hcERhdGEgPSByZXF1aXJlKCcuL19nZXRNYXBEYXRhJyk7XG5cbi8qKlxuICogR2V0cyB0aGUgbWFwIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZUdldChrZXkpIHtcbiAgcmV0dXJuIGdldE1hcERhdGEodGhpcywga2V5KS5nZXQoa2V5KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBDYWNoZUdldDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX21hcENhY2hlR2V0LmpzXG4vLyBtb2R1bGUgaWQgPSAxNDBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGdldE1hcERhdGEgPSByZXF1aXJlKCcuL19nZXRNYXBEYXRhJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbWFwIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVIYXMoa2V5KSB7XG4gIHJldHVybiBnZXRNYXBEYXRhKHRoaXMsIGtleSkuaGFzKGtleSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwQ2FjaGVIYXM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19tYXBDYWNoZUhhcy5qc1xuLy8gbW9kdWxlIGlkID0gMTQxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBnZXRNYXBEYXRhID0gcmVxdWlyZSgnLi9fZ2V0TWFwRGF0YScpO1xuXG4vKipcbiAqIFNldHMgdGhlIG1hcCBga2V5YCB0byBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBzZXRcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBtYXAgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSBnZXRNYXBEYXRhKHRoaXMsIGtleSksXG4gICAgICBzaXplID0gZGF0YS5zaXplO1xuXG4gIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICB0aGlzLnNpemUgKz0gZGF0YS5zaXplID09IHNpemUgPyAwIDogMTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwQ2FjaGVTZXQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19tYXBDYWNoZVNldC5qc1xuLy8gbW9kdWxlIGlkID0gMTQyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBtZW1vaXplID0gcmVxdWlyZSgnLi9tZW1vaXplJyk7XG5cbi8qKiBVc2VkIGFzIHRoZSBtYXhpbXVtIG1lbW9pemUgY2FjaGUgc2l6ZS4gKi9cbnZhciBNQVhfTUVNT0laRV9TSVpFID0gNTAwO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tZW1vaXplYCB3aGljaCBjbGVhcnMgdGhlIG1lbW9pemVkIGZ1bmN0aW9uJ3NcbiAqIGNhY2hlIHdoZW4gaXQgZXhjZWVkcyBgTUFYX01FTU9JWkVfU0laRWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGhhdmUgaXRzIG91dHB1dCBtZW1vaXplZC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1lbW9pemVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBtZW1vaXplQ2FwcGVkKGZ1bmMpIHtcbiAgdmFyIHJlc3VsdCA9IG1lbW9pemUoZnVuYywgZnVuY3Rpb24oa2V5KSB7XG4gICAgaWYgKGNhY2hlLnNpemUgPT09IE1BWF9NRU1PSVpFX1NJWkUpIHtcbiAgICAgIGNhY2hlLmNsZWFyKCk7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH0pO1xuXG4gIHZhciBjYWNoZSA9IHJlc3VsdC5jYWNoZTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtZW1vaXplQ2FwcGVkO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fbWVtb2l6ZUNhcHBlZC5qc1xuLy8gbW9kdWxlIGlkID0gMTQzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlXG4gKiBbYE9iamVjdC5rZXlzYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXG4gKiBleGNlcHQgdGhhdCBpdCBpbmNsdWRlcyBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBuYXRpdmVLZXlzSW4ob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgaWYgKG9iamVjdCAhPSBudWxsKSB7XG4gICAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5hdGl2ZUtleXNJbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX25hdGl2ZUtleXNJbi5qc1xuLy8gbW9kdWxlIGlkID0gMTQ0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBmcmVlR2xvYmFsID0gcmVxdWlyZSgnLi9fZnJlZUdsb2JhbCcpO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xudmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG52YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUgPT0gJ29iamVjdCcgJiYgbW9kdWxlICYmICFtb2R1bGUubm9kZVR5cGUgJiYgbW9kdWxlO1xuXG4vKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xudmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgcHJvY2Vzc2AgZnJvbSBOb2RlLmpzLiAqL1xudmFyIGZyZWVQcm9jZXNzID0gbW9kdWxlRXhwb3J0cyAmJiBmcmVlR2xvYmFsLnByb2Nlc3M7XG5cbi8qKiBVc2VkIHRvIGFjY2VzcyBmYXN0ZXIgTm9kZS5qcyBoZWxwZXJzLiAqL1xudmFyIG5vZGVVdGlsID0gKGZ1bmN0aW9uKCkge1xuICB0cnkge1xuICAgIHJldHVybiBmcmVlUHJvY2VzcyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcoJ3V0aWwnKTtcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gbm9kZVV0aWw7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19ub2RlVXRpbC5qc1xuLy8gbW9kdWxlIGlkID0gMTQ1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcgdXNpbmcgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gb2JqZWN0VG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG9iamVjdFRvU3RyaW5nO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fb2JqZWN0VG9TdHJpbmcuanNcbi8vIG1vZHVsZSBpZCA9IDE0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKipcbiAqIENyZWF0ZXMgYSB1bmFyeSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggaXRzIGFyZ3VtZW50IHRyYW5zZm9ybWVkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtIFRoZSBhcmd1bWVudCB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gb3ZlckFyZyhmdW5jLCB0cmFuc2Zvcm0pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGFyZykge1xuICAgIHJldHVybiBmdW5jKHRyYW5zZm9ybShhcmcpKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBvdmVyQXJnO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fb3ZlckFyZy5qc1xuLy8gbW9kdWxlIGlkID0gMTQ3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKiBVc2VkIHRvIGRldGVjdCBob3QgZnVuY3Rpb25zIGJ5IG51bWJlciBvZiBjYWxscyB3aXRoaW4gYSBzcGFuIG9mIG1pbGxpc2Vjb25kcy4gKi9cbnZhciBIT1RfQ09VTlQgPSA4MDAsXG4gICAgSE9UX1NQQU4gPSAxNjtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU5vdyA9IERhdGUubm93O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0J2xsIHNob3J0IG91dCBhbmQgaW52b2tlIGBpZGVudGl0eWAgaW5zdGVhZFxuICogb2YgYGZ1bmNgIHdoZW4gaXQncyBjYWxsZWQgYEhPVF9DT1VOVGAgb3IgbW9yZSB0aW1lcyBpbiBgSE9UX1NQQU5gXG4gKiBtaWxsaXNlY29uZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHJlc3RyaWN0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc2hvcnRhYmxlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBzaG9ydE91dChmdW5jKSB7XG4gIHZhciBjb3VudCA9IDAsXG4gICAgICBsYXN0Q2FsbGVkID0gMDtcblxuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHN0YW1wID0gbmF0aXZlTm93KCksXG4gICAgICAgIHJlbWFpbmluZyA9IEhPVF9TUEFOIC0gKHN0YW1wIC0gbGFzdENhbGxlZCk7XG5cbiAgICBsYXN0Q2FsbGVkID0gc3RhbXA7XG4gICAgaWYgKHJlbWFpbmluZyA+IDApIHtcbiAgICAgIGlmICgrK2NvdW50ID49IEhPVF9DT1VOVCkge1xuICAgICAgICByZXR1cm4gYXJndW1lbnRzWzBdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb3VudCA9IDA7XG4gICAgfVxuICAgIHJldHVybiBmdW5jLmFwcGx5KHVuZGVmaW5lZCwgYXJndW1lbnRzKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG9ydE91dDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX3Nob3J0T3V0LmpzXG4vLyBtb2R1bGUgaWQgPSAxNDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIExpc3RDYWNoZSA9IHJlcXVpcmUoJy4vX0xpc3RDYWNoZScpO1xuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIHN0YWNrLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIFN0YWNrXG4gKi9cbmZ1bmN0aW9uIHN0YWNrQ2xlYXIoKSB7XG4gIHRoaXMuX19kYXRhX18gPSBuZXcgTGlzdENhY2hlO1xuICB0aGlzLnNpemUgPSAwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0YWNrQ2xlYXI7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19zdGFja0NsZWFyLmpzXG4vLyBtb2R1bGUgaWQgPSAxNDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgc3RhY2suXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGRlbGV0ZVxuICogQG1lbWJlck9mIFN0YWNrXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc3RhY2tEZWxldGUoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIHJlc3VsdCA9IGRhdGFbJ2RlbGV0ZSddKGtleSk7XG5cbiAgdGhpcy5zaXplID0gZGF0YS5zaXplO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0YWNrRGVsZXRlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fc3RhY2tEZWxldGUuanNcbi8vIG1vZHVsZSBpZCA9IDE1MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKipcbiAqIEdldHMgdGhlIHN0YWNrIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGVudHJ5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBzdGFja0dldChrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGtleSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RhY2tHZXQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19zdGFja0dldC5qc1xuLy8gbW9kdWxlIGlkID0gMTUxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKlxuICogQ2hlY2tzIGlmIGEgc3RhY2sgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBzdGFja0hhcyhrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKGtleSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RhY2tIYXM7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL19zdGFja0hhcy5qc1xuLy8gbW9kdWxlIGlkID0gMTUyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBMaXN0Q2FjaGUgPSByZXF1aXJlKCcuL19MaXN0Q2FjaGUnKSxcbiAgICBNYXAgPSByZXF1aXJlKCcuL19NYXAnKSxcbiAgICBNYXBDYWNoZSA9IHJlcXVpcmUoJy4vX01hcENhY2hlJyk7XG5cbi8qKiBVc2VkIGFzIHRoZSBzaXplIHRvIGVuYWJsZSBsYXJnZSBhcnJheSBvcHRpbWl6YXRpb25zLiAqL1xudmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbi8qKlxuICogU2V0cyB0aGUgc3RhY2sgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgc3RhY2sgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAoZGF0YSBpbnN0YW5jZW9mIExpc3RDYWNoZSkge1xuICAgIHZhciBwYWlycyA9IGRhdGEuX19kYXRhX187XG4gICAgaWYgKCFNYXAgfHwgKHBhaXJzLmxlbmd0aCA8IExBUkdFX0FSUkFZX1NJWkUgLSAxKSkge1xuICAgICAgcGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgdGhpcy5zaXplID0gKytkYXRhLnNpemU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUocGFpcnMpO1xuICB9XG4gIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gIHJldHVybiB0aGlzO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0YWNrU2V0O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9fc3RhY2tTZXQuanNcbi8vIG1vZHVsZSBpZCA9IDE1M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgbWVtb2l6ZUNhcHBlZCA9IHJlcXVpcmUoJy4vX21lbW9pemVDYXBwZWQnKTtcblxuLyoqIFVzZWQgdG8gbWF0Y2ggcHJvcGVydHkgbmFtZXMgd2l0aGluIHByb3BlcnR5IHBhdGhzLiAqL1xudmFyIHJlTGVhZGluZ0RvdCA9IC9eXFwuLyxcbiAgICByZVByb3BOYW1lID0gL1teLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKS9nO1xuXG4vKiogVXNlZCB0byBtYXRjaCBiYWNrc2xhc2hlcyBpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUVzY2FwZUNoYXIgPSAvXFxcXChcXFxcKT8vZztcblxuLyoqXG4gKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICovXG52YXIgc3RyaW5nVG9QYXRoID0gbWVtb2l6ZUNhcHBlZChmdW5jdGlvbihzdHJpbmcpIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBpZiAocmVMZWFkaW5nRG90LnRlc3Qoc3RyaW5nKSkge1xuICAgIHJlc3VsdC5wdXNoKCcnKTtcbiAgfVxuICBzdHJpbmcucmVwbGFjZShyZVByb3BOYW1lLCBmdW5jdGlvbihtYXRjaCwgbnVtYmVyLCBxdW90ZSwgc3RyaW5nKSB7XG4gICAgcmVzdWx0LnB1c2gocXVvdGUgPyBzdHJpbmcucmVwbGFjZShyZUVzY2FwZUNoYXIsICckMScpIDogKG51bWJlciB8fCBtYXRjaCkpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmluZ1RvUGF0aDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX3N0cmluZ1RvUGF0aC5qc1xuLy8gbW9kdWxlIGlkID0gMTU0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYGZ1bmNgIHRvIGl0cyBzb3VyY2UgY29kZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNvdXJjZSBjb2RlLlxuICovXG5mdW5jdGlvbiB0b1NvdXJjZShmdW5jKSB7XG4gIGlmIChmdW5jICE9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZ1bmNUb1N0cmluZy5jYWxsKGZ1bmMpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoZnVuYyArICcnKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG4gIHJldHVybiAnJztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b1NvdXJjZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvX3RvU291cmNlLmpzXG4vLyBtb2R1bGUgaWQgPSAxNTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGB2YWx1ZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJldHVybiBmcm9tIHRoZSBuZXcgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjb25zdGFudCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdHMgPSBfLnRpbWVzKDIsIF8uY29uc3RhbnQoeyAnYSc6IDEgfSkpO1xuICpcbiAqIGNvbnNvbGUubG9nKG9iamVjdHMpO1xuICogLy8gPT4gW3sgJ2EnOiAxIH0sIHsgJ2EnOiAxIH1dXG4gKlxuICogY29uc29sZS5sb2cob2JqZWN0c1swXSA9PT0gb2JqZWN0c1sxXSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGNvbnN0YW50KHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29uc3RhbnQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2NvbnN0YW50LmpzXG4vLyBtb2R1bGUgaWQgPSAxNTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGJhc2VGbGF0dGVuID0gcmVxdWlyZSgnLi9fYmFzZUZsYXR0ZW4nKTtcblxuLyoqXG4gKiBGbGF0dGVucyBgYXJyYXlgIGEgc2luZ2xlIGxldmVsIGRlZXAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEFycmF5XG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5mbGF0dGVuKFsxLCBbMiwgWzMsIFs0XV0sIDVdXSk7XG4gKiAvLyA9PiBbMSwgMiwgWzMsIFs0XV0sIDVdXG4gKi9cbmZ1bmN0aW9uIGZsYXR0ZW4oYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJyYXksIDEpIDogW107XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZmxhdHRlbjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvZmxhdHRlbi5qc1xuLy8gbW9kdWxlIGlkID0gMTU3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBiYXNlSGFzSW4gPSByZXF1aXJlKCcuL19iYXNlSGFzSW4nKSxcbiAgICBoYXNQYXRoID0gcmVxdWlyZSgnLi9faGFzUGF0aCcpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgcGF0aGAgaXMgYSBkaXJlY3Qgb3IgaW5oZXJpdGVkIHByb3BlcnR5IG9mIGBvYmplY3RgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBwYXRoYCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IF8uY3JlYXRlKHsgJ2EnOiBfLmNyZWF0ZSh7ICdiJzogMiB9KSB9KTtcbiAqXG4gKiBfLmhhc0luKG9iamVjdCwgJ2EnKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmhhc0luKG9iamVjdCwgJ2EuYicpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaGFzSW4ob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmhhc0luKG9iamVjdCwgJ2InKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGhhc0luKG9iamVjdCwgcGF0aCkge1xuICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYgaGFzUGF0aChvYmplY3QsIHBhdGgsIGJhc2VIYXNJbik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFzSW47XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL2hhc0luLmpzXG4vLyBtb2R1bGUgaWQgPSAxNThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pc0FycmF5TGlrZWAgZXhjZXB0IHRoYXQgaXQgYWxzbyBjaGVja3MgaWYgYHZhbHVlYFxuICogaXMgYW4gb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5LWxpa2Ugb2JqZWN0LFxuICogIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5TGlrZU9iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2VPYmplY3QoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZU9iamVjdCgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNBcnJheUxpa2VPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGlzQXJyYXlMaWtlKHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0FycmF5TGlrZU9iamVjdDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvaXNBcnJheUxpa2VPYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDE1OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBnZXRQcm90b3R5cGUgPSByZXF1aXJlKCcuL19nZXRQcm90b3R5cGUnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBpbmZlciB0aGUgYE9iamVjdGAgY29uc3RydWN0b3IuICovXG52YXIgb2JqZWN0Q3RvclN0cmluZyA9IGZ1bmNUb1N0cmluZy5jYWxsKE9iamVjdCk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIHRoYXQgaXMsIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZVxuICogYE9iamVjdGAgY29uc3RydWN0b3Igb3Igb25lIHdpdGggYSBgW1tQcm90b3R5cGVdXWAgb2YgYG51bGxgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC44LjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqIH1cbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QobmV3IEZvbyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoeyAneCc6IDAsICd5JzogMCB9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdExpa2UodmFsdWUpIHx8IGJhc2VHZXRUYWcodmFsdWUpICE9IG9iamVjdFRhZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgcHJvdG8gPSBnZXRQcm90b3R5cGUodmFsdWUpO1xuICBpZiAocHJvdG8gPT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICB2YXIgQ3RvciA9IGhhc093blByb3BlcnR5LmNhbGwocHJvdG8sICdjb25zdHJ1Y3RvcicpICYmIHByb3RvLmNvbnN0cnVjdG9yO1xuICByZXR1cm4gdHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yIGluc3RhbmNlb2YgQ3RvciAmJlxuICAgIGZ1bmNUb1N0cmluZy5jYWxsKEN0b3IpID09IG9iamVjdEN0b3JTdHJpbmc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNQbGFpbk9iamVjdDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvaXNQbGFpbk9iamVjdC5qc1xuLy8gbW9kdWxlIGlkID0gMTYwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsInZhciBNYXBDYWNoZSA9IHJlcXVpcmUoJy4vX01hcENhY2hlJyk7XG5cbi8qKiBFcnJvciBtZXNzYWdlIGNvbnN0YW50cy4gKi9cbnZhciBGVU5DX0VSUk9SX1RFWFQgPSAnRXhwZWN0ZWQgYSBmdW5jdGlvbic7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgbWVtb2l6ZXMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuIElmIGByZXNvbHZlcmAgaXNcbiAqIHByb3ZpZGVkLCBpdCBkZXRlcm1pbmVzIHRoZSBjYWNoZSBrZXkgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCBiYXNlZCBvbiB0aGVcbiAqIGFyZ3VtZW50cyBwcm92aWRlZCB0byB0aGUgbWVtb2l6ZWQgZnVuY3Rpb24uIEJ5IGRlZmF1bHQsIHRoZSBmaXJzdCBhcmd1bWVudFxuICogcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uIGlzIHVzZWQgYXMgdGhlIG1hcCBjYWNoZSBrZXkuIFRoZSBgZnVuY2BcbiAqIGlzIGludm9rZWQgd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgdGhlIG1lbW9pemVkIGZ1bmN0aW9uLlxuICpcbiAqICoqTm90ZToqKiBUaGUgY2FjaGUgaXMgZXhwb3NlZCBhcyB0aGUgYGNhY2hlYCBwcm9wZXJ0eSBvbiB0aGUgbWVtb2l6ZWRcbiAqIGZ1bmN0aW9uLiBJdHMgY3JlYXRpb24gbWF5IGJlIGN1c3RvbWl6ZWQgYnkgcmVwbGFjaW5nIHRoZSBgXy5tZW1vaXplLkNhY2hlYFxuICogY29uc3RydWN0b3Igd2l0aCBvbmUgd2hvc2UgaW5zdGFuY2VzIGltcGxlbWVudCB0aGVcbiAqIFtgTWFwYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcHJvcGVydGllcy1vZi10aGUtbWFwLXByb3RvdHlwZS1vYmplY3QpXG4gKiBtZXRob2QgaW50ZXJmYWNlIG9mIGBjbGVhcmAsIGBkZWxldGVgLCBgZ2V0YCwgYGhhc2AsIGFuZCBgc2V0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGhhdmUgaXRzIG91dHB1dCBtZW1vaXplZC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtyZXNvbHZlcl0gVGhlIGZ1bmN0aW9uIHRvIHJlc29sdmUgdGhlIGNhY2hlIGtleS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1lbW9pemVkIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEsICdiJzogMiB9O1xuICogdmFyIG90aGVyID0geyAnYyc6IDMsICdkJzogNCB9O1xuICpcbiAqIHZhciB2YWx1ZXMgPSBfLm1lbW9pemUoXy52YWx1ZXMpO1xuICogdmFsdWVzKG9iamVjdCk7XG4gKiAvLyA9PiBbMSwgMl1cbiAqXG4gKiB2YWx1ZXMob3RoZXIpO1xuICogLy8gPT4gWzMsIDRdXG4gKlxuICogb2JqZWN0LmEgPSAyO1xuICogdmFsdWVzKG9iamVjdCk7XG4gKiAvLyA9PiBbMSwgMl1cbiAqXG4gKiAvLyBNb2RpZnkgdGhlIHJlc3VsdCBjYWNoZS5cbiAqIHZhbHVlcy5jYWNoZS5zZXQob2JqZWN0LCBbJ2EnLCAnYiddKTtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWydhJywgJ2InXVxuICpcbiAqIC8vIFJlcGxhY2UgYF8ubWVtb2l6ZS5DYWNoZWAuXG4gKiBfLm1lbW9pemUuQ2FjaGUgPSBXZWFrTWFwO1xuICovXG5mdW5jdGlvbiBtZW1vaXplKGZ1bmMsIHJlc29sdmVyKSB7XG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nIHx8IChyZXNvbHZlciAhPSBudWxsICYmIHR5cGVvZiByZXNvbHZlciAhPSAnZnVuY3Rpb24nKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAgfVxuICB2YXIgbWVtb2l6ZWQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAga2V5ID0gcmVzb2x2ZXIgPyByZXNvbHZlci5hcHBseSh0aGlzLCBhcmdzKSA6IGFyZ3NbMF0sXG4gICAgICAgIGNhY2hlID0gbWVtb2l6ZWQuY2FjaGU7XG5cbiAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgIHJldHVybiBjYWNoZS5nZXQoa2V5KTtcbiAgICB9XG4gICAgdmFyIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpcywgYXJncyk7XG4gICAgbWVtb2l6ZWQuY2FjaGUgPSBjYWNoZS5zZXQoa2V5LCByZXN1bHQpIHx8IGNhY2hlO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG4gIG1lbW9pemVkLmNhY2hlID0gbmV3IChtZW1vaXplLkNhY2hlIHx8IE1hcENhY2hlKTtcbiAgcmV0dXJuIG1lbW9pemVkO1xufVxuXG4vLyBFeHBvc2UgYE1hcENhY2hlYC5cbm1lbW9pemUuQ2FjaGUgPSBNYXBDYWNoZTtcblxubW9kdWxlLmV4cG9ydHMgPSBtZW1vaXplO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9tZW1vaXplLmpzXG4vLyBtb2R1bGUgaWQgPSAxNjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGJhc2VQaWNrID0gcmVxdWlyZSgnLi9fYmFzZVBpY2snKSxcbiAgICBmbGF0UmVzdCA9IHJlcXVpcmUoJy4vX2ZsYXRSZXN0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBvYmplY3QgY29tcG9zZWQgb2YgdGhlIHBpY2tlZCBgb2JqZWN0YCBwcm9wZXJ0aWVzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcGFyYW0gey4uLihzdHJpbmd8c3RyaW5nW10pfSBbcGF0aHNdIFRoZSBwcm9wZXJ0eSBwYXRocyB0byBwaWNrLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG9iamVjdC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6ICcyJywgJ2MnOiAzIH07XG4gKlxuICogXy5waWNrKG9iamVjdCwgWydhJywgJ2MnXSk7XG4gKiAvLyA9PiB7ICdhJzogMSwgJ2MnOiAzIH1cbiAqL1xudmFyIHBpY2sgPSBmbGF0UmVzdChmdW5jdGlvbihvYmplY3QsIHBhdGhzKSB7XG4gIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHt9IDogYmFzZVBpY2sob2JqZWN0LCBwYXRocyk7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBwaWNrO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2xvZGFzaC9waWNrLmpzXG4vLyBtb2R1bGUgaWQgPSAxNjJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIGBmYWxzZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjEzLjBcbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRpbWVzKDIsIF8uc3R1YkZhbHNlKTtcbiAqIC8vID0+IFtmYWxzZSwgZmFsc2VdXG4gKi9cbmZ1bmN0aW9uIHN0dWJGYWxzZSgpIHtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0dWJGYWxzZTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvc3R1YkZhbHNlLmpzXG4vLyBtb2R1bGUgaWQgPSAxNjNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwidmFyIGNvcHlPYmplY3QgPSByZXF1aXJlKCcuL19jb3B5T2JqZWN0JyksXG4gICAga2V5c0luID0gcmVxdWlyZSgnLi9rZXlzSW4nKTtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgcGxhaW4gb2JqZWN0IGZsYXR0ZW5pbmcgaW5oZXJpdGVkIGVudW1lcmFibGUgc3RyaW5nXG4gKiBrZXllZCBwcm9wZXJ0aWVzIG9mIGB2YWx1ZWAgdG8gb3duIHByb3BlcnRpZXMgb2YgdGhlIHBsYWluIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBwbGFpbiBvYmplY3QuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8uYXNzaWduKHsgJ2EnOiAxIH0sIG5ldyBGb28pO1xuICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gKlxuICogXy5hc3NpZ24oeyAnYSc6IDEgfSwgXy50b1BsYWluT2JqZWN0KG5ldyBGb28pKTtcbiAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9XG4gKi9cbmZ1bmN0aW9uIHRvUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgcmV0dXJuIGNvcHlPYmplY3QodmFsdWUsIGtleXNJbih2YWx1ZSkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvUGxhaW5PYmplY3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vbG9kYXNoL3RvUGxhaW5PYmplY3QuanNcbi8vIG1vZHVsZSBpZCA9IDE2NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJ2YXIgYmFzZVRvU3RyaW5nID0gcmVxdWlyZSgnLi9fYmFzZVRvU3RyaW5nJyk7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZy4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGZvciBgbnVsbGBcbiAqIGFuZCBgdW5kZWZpbmVkYCB2YWx1ZXMuIFRoZSBzaWduIG9mIGAtMGAgaXMgcHJlc2VydmVkLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50b1N0cmluZyhudWxsKTtcbiAqIC8vID0+ICcnXG4gKlxuICogXy50b1N0cmluZygtMCk7XG4gKiAvLyA9PiAnLTAnXG4gKlxuICogXy50b1N0cmluZyhbMSwgMiwgM10pO1xuICogLy8gPT4gJzEsMiwzJ1xuICovXG5mdW5jdGlvbiB0b1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT0gbnVsbCA/ICcnIDogYmFzZVRvU3RyaW5nKHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b1N0cmluZztcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9sb2Rhc2gvdG9TdHJpbmcuanNcbi8vIG1vZHVsZSBpZCA9IDE2NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/pos_add_product_webcam_barcode/static/src/xml/ProductScreen.xml b/pos_add_product_webcam_barcode/static/src/xml/ProductScreen.xml new file mode 100644 index 000000000..d7a7101b9 --- /dev/null +++ b/pos_add_product_webcam_barcode/static/src/xml/ProductScreen.xml @@ -0,0 +1,10 @@ + + + \ No newline at end of file