diff --git a/data/Heavisine1024.txt b/data/Heavisine1024.txt new file mode 100644 index 0000000..3706499 --- /dev/null +++ b/data/Heavisine1024.txt @@ -0,0 +1,1024 @@ +0.19325 +0.25257 +0.31165 +0.37042 +0.42878 +0.48665 +0.54393 +0.60055 +0.65642 +0.71145 +0.76557 +0.81869 +0.87076 +0.92171 +0.97147 +1.02 +1.0673 +1.1132 +1.1579 +1.2012 +1.2431 +1.2837 +1.323 +1.361 +1.3976 +1.4331 +1.4673 +1.5004 +1.5325 +1.5635 +1.5936 +1.6229 +1.6515 +1.6793 +1.7067 +1.7335 +1.76 +1.7863 +1.8124 +1.8385 +1.8646 +1.8908 +1.9173 +1.9442 +1.9714 +1.9992 +2.0274 +2.0563 +2.0859 +2.1161 +2.1471 +2.1789 +2.2114 +2.2446 +2.2787 +2.3135 +2.349 +2.3852 +2.4221 +2.4596 +2.4976 +2.5362 +2.5752 +2.6145 +2.6542 +2.6941 +2.7342 +2.7743 +2.8145 +2.8546 +2.8945 +2.9342 +2.9736 +3.0126 +3.0512 +3.0893 +3.1269 +3.1639 +3.2002 +3.2359 +3.2709 +3.3051 +3.3387 +3.3715 +3.4035 +3.4348 +3.4655 +3.4954 +3.5246 +3.5532 +3.5811 +3.6085 +3.6353 +3.6616 +3.6874 +3.7127 +3.7376 +3.7621 +3.7863 +3.8101 +3.8336 +3.8569 +3.8798 +3.9025 +3.925 +3.9472 +3.9691 +3.9908 +4.0122 +4.0334 +4.0542 +4.0746 +4.0947 +4.1143 +4.1334 +4.152 +4.17 +4.1874 +4.204 +4.2199 +4.2349 +4.2489 +4.262 +4.274 +4.2849 +4.2946 +4.3031 +4.3103 +4.3162 +4.3206 +4.3237 +4.3253 +4.3254 +4.324 +4.3212 +4.3168 +4.3109 +4.3035 +4.2947 +4.2843 +4.2726 +4.2594 +4.2449 +4.2291 +4.2121 +4.1939 +4.1746 +4.1542 +4.1328 +4.1106 +4.0875 +4.0636 +4.0391 +4.014 +3.9884 +3.9624 +3.936 +3.9094 +3.8825 +3.8555 +3.8284 +3.8012 +3.7741 +3.7471 +3.7201 +3.6933 +3.6667 +3.6402 +3.614 +3.5879 +3.5621 +3.5365 +3.5112 +3.486 +3.4611 +3.4363 +3.4117 +3.3872 +3.3628 +3.3385 +3.3142 +3.29 +3.2656 +3.2412 +3.2167 +3.192 +3.1671 +3.1419 +3.1164 +3.0906 +3.0644 +3.0378 +3.0107 +2.983 +2.9549 +2.9262 +2.8968 +2.8668 +2.8361 +2.8047 +2.7726 +2.7397 +2.7059 +2.6714 +2.636 +2.5998 +2.5626 +2.5246 +2.4856 +2.4457 +2.4048 +2.3629 +2.32 +2.2762 +2.2313 +2.1854 +2.1385 +2.0905 +2.0415 +1.9915 +1.9405 +1.8885 +1.8355 +1.7815 +1.7266 +1.6707 +1.614 +1.5563 +1.4979 +1.4387 +1.3788 +1.3181 +1.2569 +1.1952 +1.1329 +1.0702 +1.0072 +0.944 +0.88059 +0.81709 +0.75359 +0.69019 +0.62697 +0.56402 +0.50143 +0.43929 +0.37769 +0.31671 +0.25642 +0.1969 +0.13822 +0.080437 +0.023614 +-0.032206 +-0.086983 +-0.14069 +-0.1933 +-0.2448 +-0.2952 +-0.34451 +-0.39274 +-0.43994 +-0.48615 +-0.53142 +-0.57581 +-0.61942 +-0.66233 +-0.70464 +-0.74646 +-0.7879 +-0.82909 +-0.87016 +-0.91125 +-0.95251 +-0.99407 +-1.0361 +-1.0787 +-1.1221 +-1.1664 +-1.2117 +-1.2583 +-1.3061 +-1.3555 +-1.4064 +-1.459 +-1.5133 +-1.5696 +-1.6279 +-1.6882 +-1.7505 +-1.8151 +-1.8818 +-1.9506 +-2.0217 +-2.0948 +-2.1702 +-2.2476 +-2.327 +-2.4083 +-2.4915 +-2.5764 +-2.6629 +-2.7509 +-2.8403 +-2.9309 +-3.0225 +-3.1149 +-3.2081 +-3.3018 +-3.3958 +-3.49 +-3.5841 +-3.678 +-3.7715 +-3.8644 +-3.9566 +-4.0478 +-4.1379 +-4.2267 +-4.3141 +-4.3999 +-4.484 +-4.5663 +-4.6466 +-4.7248 +-4.8008 +-4.8746 +-4.946 +-5.015 +-5.0816 +-5.1457 +-5.2072 +-5.2661 +-5.3225 +-5.3763 +-5.4275 +-5.4762 +-5.5223 +-5.566 +-5.6072 +-5.646 +-5.6825 +-5.7166 +-5.7486 +-5.7784 +-5.8061 +-5.8318 +-5.8555 +-5.8775 +-5.8976 +-5.9161 +-5.9329 +-5.9483 +-5.9622 +-5.9748 +-5.9862 +-5.9964 +-6.0056 +-6.0137 +-6.021 +-6.0274 +-6.0332 +-6.0383 +-6.0428 +-6.0468 +-6.0504 +-6.0537 +-6.0567 +-6.0595 +-6.0622 +-6.0648 +-6.0674 +-6.07 +-6.0728 +-6.0756 +-6.0786 +-6.0819 +-6.0854 +-6.0891 +-6.0932 +-6.0976 +-6.1023 +-6.1074 +-6.1127 +-6.1184 +-6.1244 +-6.1307 +-6.1373 +-6.1441 +-6.151 +-6.1582 +-6.1653 +-6.1726 +-6.1797 +-6.1868 +-6.1937 +-6.2003 +-6.2065 +-6.2123 +-6.2176 +-6.2223 +-6.2262 +-6.2294 +-6.2316 +-6.2328 +-6.2329 +-6.2319 +-6.2296 +-6.2259 +-6.2208 +-6.2141 +-6.2059 +-6.1961 +-6.1845 +-6.1712 +-6.1561 +-6.1392 +-6.1204 +-6.0998 +-6.0773 +-6.0529 +-6.0267 +-5.9986 +-5.9687 +-5.9371 +-5.9037 +-5.8686 +-5.832 +-5.7938 +-5.7541 +-5.713 +-5.6707 +-5.6271 +-5.5824 +-5.5367 +-5.49 +-5.4425 +-5.3943 +-5.3454 +-5.2961 +-5.2462 +-5.1961 +-5.1457 +-5.0951 +-5.0444 +-4.9937 +-4.943 +-4.8925 +-4.8422 +-4.792 +-4.7422 +-4.6926 +-4.6434 +-4.5945 +-4.5461 +-4.4979 +-4.4502 +-4.4029 +-4.3559 +-4.3093 +-4.263 +-4.217 +-4.1713 +-4.1258 +-4.0806 +-4.0355 +-3.9905 +-3.9457 +-3.9009 +-3.8561 +-3.8112 +-3.7662 +-3.7212 +-3.6759 +-3.6305 +-3.5848 +-3.5389 +-3.4926 +-3.4461 +-3.3992 +-3.352 +-3.3044 +-3.2565 +-3.2082 +-3.1596 +-3.1106 +-3.0614 +-3.0118 +-2.9619 +-2.9118 +-2.8615 +-2.811 +-2.7603 +-2.7095 +-2.6586 +-2.6077 +-2.5568 +-2.5059 +-2.4552 +-2.4046 +-2.3542 +-2.304 +-2.2541 +-2.2046 +-2.1554 +-2.1066 +-2.0583 +-2.0104 +-1.9631 +-1.9162 +-1.8699 +-1.8242 +-1.7791 +-1.7345 +-1.6906 +-1.6472 +-1.6044 +-1.5621 +-1.5205 +-1.4793 +-1.4386 +-1.3985 +-1.3587 +-1.3194 +-1.2804 +-1.2418 +-1.2034 +-1.1653 +-1.1273 +-1.0894 +-1.0516 +-1.0138 +-0.97601 +-0.93806 +-0.89995 +-0.86161 +-0.823 +-0.78406 +-0.74473 +-0.70498 +-0.66476 +-0.62402 +-0.58273 +-0.54087 +-0.49839 +-0.4553 +-0.41156 +-0.36717 +-0.32214 +-0.27645 +-0.23013 +-0.18319 +-0.13565 +-0.087544 +-0.038903 +0.01023 +0.059808 +0.10978 +0.16008 +0.21065 +0.26142 +0.31231 +0.36325 +0.41417 +0.46496 +0.51556 +0.56587 +0.61581 +0.66528 +0.71421 +0.76249 +0.81006 +0.85683 +0.90271 +0.94764 +0.99153 +1.0343 +1.076 +1.1164 +1.1556 +1.1935 +1.23 +1.2652 +1.2989 +1.3313 +1.3622 +1.3916 +1.4197 +1.4463 +1.4715 +1.4954 +1.5178 +1.539 +1.5588 +1.5775 +1.5949 +1.6112 +1.6263 +1.6405 +1.6537 +1.6659 +1.6773 +1.6878 +1.6976 +1.7067 +1.7152 +1.7231 +1.7304 +1.7372 +1.7435 +1.7494 +1.755 +1.7601 +1.7649 +1.7694 +1.7736 +1.7776 +1.7812 +1.7846 +1.7878 +1.7906 +1.7933 +1.7956 +1.7977 +1.7995 +1.8011 +1.8023 +1.8032 +1.8037 +1.804 +1.8038 +1.8033 +1.8024 +1.8011 +1.7994 +1.7973 +1.7948 +1.7919 +1.7886 +1.7849 +1.7808 +1.7763 +1.7715 +1.7663 +1.7608 +1.755 +1.7489 +1.7426 +1.7359 +1.7291 +1.722 +1.7147 +1.7073 +1.6996 +1.6918 +1.6839 +1.6758 +1.6675 +1.6591 +1.6505 +1.6418 +1.6329 +1.6238 +1.6145 +1.6049 +1.5951 +1.585 +1.5745 +1.5636 +1.5523 +1.5405 +1.5281 +1.5152 +1.5016 +1.4873 +1.4722 +1.4563 +1.4396 +1.4219 +1.4032 +1.3836 +1.3629 +1.3411 +1.3183 +1.2943 +1.2693 +1.2432 +1.2159 +1.1876 +1.1583 +1.128 +1.0967 +1.0646 +1.0316 +0.99788 +0.96353 +0.92863 +0.89328 +0.8576 +0.82171 +0.78573 +0.7498 +0.71405 +0.67863 +0.64368 +0.60934 +0.57577 +0.54309 +0.51146 +0.481 +0.45186 +0.42415 +0.39799 +0.37349 +0.35075 +0.32984 +0.31085 +0.29382 +0.27883 +0.26588 +0.25501 +0.24622 +0.23949 +0.23481 +0.23213 +0.2314 +0.23255 +0.23548 +0.24011 +0.24632 +0.25398 +0.26297 +0.27313 +0.2843 +0.29633 +0.30903 +0.32224 +0.33575 +0.34939 +0.36296 +0.37628 +0.38914 +0.40137 +0.41279 +0.4232 +0.43245 +0.44036 +0.44678 +0.45157 +0.45459 +0.45571 +0.45482 +0.45183 +0.44664 +0.43918 +0.4294 +0.41725 +0.4027 +0.38573 +0.36634 +0.34455 +0.32037 +0.29384 +0.26501 +0.23394 +0.2007 +0.16536 +0.12801 +0.088758 +0.047695 +0.0049318 +-0.039419 +-0.085241 +-0.13242 +-0.18082 +-0.23034 +-0.28086 +-0.33225 +-0.38441 +-0.43722 +-0.49057 +-0.54437 +-0.59851 +-0.6529 +-0.70745 +-0.7621 +-0.81676 +-0.87138 +-0.92589 +-0.98024 +-1.0344 +-1.0883 +-1.142 +-1.1954 +-1.2485 +-1.3013 +-1.3537 +-1.4059 +-1.4577 +-1.5092 +-1.5604 +-1.6113 +-1.662 +-1.7123 +-1.7625 +-1.8123 +-1.862 +-1.9114 +-1.9606 +-2.0096 +-2.0584 +-2.107 +-2.1554 +-2.2036 +-2.2516 +-2.2994 +-2.3469 +-2.3942 +-2.4412 +-2.4879 +-2.5343 +-2.5803 +-2.626 +-2.6712 +-2.7159 +-2.7602 +-2.8039 +-2.847 +-2.8895 +-2.9313 +-2.9725 +-3.0129 +-3.0526 +-3.0915 +-3.1296 +-3.1668 +-3.2032 +-3.2387 +-3.2734 +-3.3071 +-3.34 +-3.372 +-3.4032 +-3.4335 +-3.4629 +-3.4915 +-3.5193 +-3.5463 +-3.5726 +-3.5981 +-3.623 +-3.6471 +-3.6707 +-3.6937 +-3.7162 +-3.7381 +-3.7596 +-3.7807 +-3.8014 +-3.8217 +-3.8417 +-3.8613 +-3.8807 +-3.8998 +-3.9186 +-3.9372 +-3.9555 +-3.9736 +-3.9913 +-4.0088 +-4.0259 +-4.0427 +-4.0591 +-4.0751 +-4.0905 +-4.1055 +-4.1198 +-4.1335 +-4.1466 +-4.1588 +-4.1702 +-4.1807 +-4.1903 +-4.1988 +-4.2062 +-4.2125 +-4.2175 +-4.2213 +-4.2237 +-4.2248 +-4.2244 +-4.2225 +-4.2191 +-4.2142 +-4.2077 +-4.1996 +-4.19 +-4.1788 +-4.1661 +-4.1518 +-4.136 +-4.1187 +-4.1 +-4.08 +-4.0587 +-4.0361 +-4.0125 +-3.9877 +-3.962 +-3.9354 +-3.908 +-3.88 +-3.8514 +-3.8223 +-3.7929 +-3.7632 +-3.7334 +-3.7036 +-3.6738 +-3.6441 +-3.6148 +-3.5857 +-3.5571 +-3.529 +-3.5015 +-3.4746 +-3.4484 +-3.423 +-3.3983 +-3.3744 +-3.3513 +-3.3291 +-3.3077 +-3.287 +-3.2672 +-3.2482 +-3.2298 +-3.2121 +-3.1951 +-3.1785 +-3.1625 +-3.1469 +-3.1316 +-3.1165 +-3.1016 +-3.0868 +-3.072 +-3.057 +-3.0418 +-3.0263 +-3.0105 +-2.9941 +-2.9772 +-2.9597 +-2.9414 +-2.9223 +-2.9024 +-2.8815 +-2.8597 +-2.8369 +-2.813 +-2.788 +-2.7618 +-2.7346 +-2.7062 +-2.6766 +-2.6459 +-2.6141 +-2.5811 +-2.5471 +-2.5119 +-2.4758 +-2.4386 +-2.4005 +-2.3614 +-2.3215 +-2.2808 +-2.2393 +-2.1971 +-2.1542 +-2.1107 +-2.0666 +-2.0219 +-1.9768 +-1.9312 +-1.8852 +-1.8388 +-1.792 +-1.7449 +-1.6975 +-1.6497 +-1.6017 +-1.5534 +-1.5048 +-1.4559 +-1.4068 +-1.3573 +-1.3075 +-1.2574 +-1.2069 +-1.156 +-1.1048 +-1.0532 +-1.0011 +-0.94857 +-0.89559 +-0.84213 +-0.78818 +-0.73372 +-0.67877 +-0.62331 +-0.56735 +-0.51091 +-0.45399 +-0.39661 +-0.33881 +-0.28062 +-0.22207 +-0.16321 +-0.10409 +-0.044767 +0.014698 +0.074238 +0.13378 \ No newline at end of file diff --git a/data/noisbloc.txt b/data/noisbloc.txt new file mode 100644 index 0000000..74eec5d --- /dev/null +++ b/data/noisbloc.txt @@ -0,0 +1,1024 @@ +1.165 +0.62684 +0.07508 +0.35161 +-0.69651 +1.6961 +0.05906 +1.7971 +0.26407 +0.87167 +-1.4462 +-0.70117 +1.246 +-0.63898 +0.57735 +-0.36003 +-0.13558 +-1.3493 +-1.2704 +0.98457 +-0.044881 +-0.79894 +-0.76517 +0.86173 +-0.056225 +0.51348 +0.39668 +0.75622 +0.40049 +-1.3414 +0.37504 +1.1252 +0.72864 +-2.3775 +-0.27378 +-0.32294 +0.31799 +-0.51117 +-0.0020413 +1.6065 +0.84765 +0.2681 +-0.92349 +-0.070499 +0.14789 +-0.55709 +-0.33671 +0.41523 +1.5578 +-2.4443 +-1.0982 +1.1226 +0.58167 +-0.27135 +0.41419 +-0.97781 +-1.0215 +0.31769 +1.5161 +0.74943 +-0.5077 +0.8853 +-0.24809 +-0.72625 +-0.44504 +-0.61291 +-0.20914 +0.56215 +-1.0639 +0.35159 +1.133 +0.14999 +0.70314 +-0.052412 +2.0185 +0.92416 +-1.8141 +0.034973 +-1.8079 +1.0282 +0.3946 +0.63941 +0.87421 +1.7524 +-0.32005 +-0.13741 +0.61577 +0.97789 +-1.1153 +-0.55002 +0.039885 +-2.4828 +1.1587 +-1.0263 +1.1535 +-0.78646 +0.63481 +0.82041 +-0.17603 +0.56247 +-0.12744 +0.55417 +-1.0973 +9.3606 +11.497 +9.4716 +10.329 +8.505 +9.6904 +9.3212 +9.8292 +11.068 +11.07 +11.262 +10.251 +10.591 +9.0365 +9.6411 +11.362 +10.991 +10.531 +8.8445 +10.417 +10.482 +9.6867 +10.384 +12.658 +9.634 +8.481 +7.4223 +9.3322 +9.4171 +8.9202 +-0.49004 +-1.5545 +-1.8527 +-2.1028 +-5.3957 +-0.83709 +-2.495 +-3.425 +-4.5762 +-2.4339 +-0.43587 +-2.1578 +-1.6769 +-2.7075 +-1.4923 +-4.0506 +-1.558 +-1.9968 +-2.7074 +-2.3242 +-0.93254 +5.0781 +5.9351 +3.7468 +6.2285 +6.8634 +4.4616 +4.0353 +4.0854 +5.7371 +4.2873 +4.949 +3.639 +6.0767 +4.2861 +5.9201 +5.8071 +4.88 +5.3468 +4.7235 +4.6775 +6.1938 +5.0874 +3.9479 +6.6127 +3.9975 +5.4687 +4.2015 +4.7343 +5.4437 +6.0957 +4.7051 +5.3822 +4.8246 +5.0626 +3.8536 +4.9143 +6.5335 +4.2091 +3.7449 +6.6201 +6.212 +5.8324 +3.5843 +6.6004 +4.4484 +3.8354 +4.3433 +5.4024 +5.6986 +5.2616 +4.782 +6.8484 +4.4029 +5.1555 +4.3269 +5.4666 +3.1148 +5.7062 +3.9434 +4.943 +3.9861 +3.8074 +3.1567 +4.0723 +5.258 +5.5394 +6.5931 +5.6909 +2.8976 +4.0171 +4.9043 +2.5192 +4.7329 +4.4523 +5.3783 +5.6048 +5.9458 +4.845 +4.8122 +6.4958 +6.8821 +4.663 +-4.8908 +-6.0106 +-5.0072 +-4.2805 +-5.6405 +-4.9157 +-5.0109 +-5.6706 +-5.5857 +-3.166 +-6.0498 +-5.5434 +-6.5503 +-5.1414 +-4.6492 +-5.573 +-4.7014 +-5.7692 +-3.7777 +-5.0772 +8.3471 +9.7494 +8.0067 +8.9022 +7.82 +7.2584 +6.6459 +7.1841 +8.7271 +8.4314 +6.5342 +7.3762 +6.2692 +7.8755 +8.5379 +6.8216 +4.7729 +8.2656 +10.776 +8.1049 +7.8673 +7.8529 +8.5286 +9.6565 +9.0936 +7.3736 +7.5862 +7.8152 +6.7144 +8.7267 +7.7308 +9.126 +7.3754 +9.2202 +5.6701 +9.3914 +6.0505 +6.5178 +7.6188 +6.1141 +8.0354 +8.1143 +8.8892 +7.1644 +7.9874 +7.8162 +8.273 +8.2008 +6.5765 +9.3356 +7.1868 +6.6575 +6.5728 +8.764 +7.4094 +10.273 +7.3704 +7.4275 +7.9802 +6.3898 +7.2911 +5.9878 +8.6179 +7.8716 +6.3424 +7.6385 +7.1724 +8.9577 +8.9333 +8.227 +8.0602 +8.3696 +6.8016 +7.9333 +7.171 +8.4332 +7.3913 +9.4433 +7.7413 +8.8406 +7.5336 +6.0676 +7.9343 +7.3702 +6.1792 +7.7982 +7.8401 +7.2025 +8.9459 +6.7714 +6.6322 +7.5665 +7.965 +7.0602 +7.3006 +6.4868 +9.583 +9.5129 +6.0474 +9.5082 +6.6731 +7.2647 +8.1241 +7.2446 +8.9077 +8.7912 +5.9729 +6.5012 +6.809 +7.9899 +7.1355 +8.2751 +7.7968 +6.5519 +7.7088 +6.8208 +6.9399 +8.9637 +5.9212 +5.5539 +8.0606 +6.0139 +7.4283 +7.8138 +7.3014 +6.9986 +7.3816 +8.7775 +6.93 +8.1744 +6.9444 +8.1411 +6.8445 +8.7611 +7.7556 +9.1638 +7.8902 +8.4357 +8.8607 +8.0032 +7.1827 +7.4563 +6.6046 +5.5116 +7.7189 +8.1109 +7.8233 +7.2617 +7.1518 +8.7057 +7.9602 +9.174 +8.3948 +9.0393 +-4.4065 +-3.2877 +-2.0328 +-1.1935 +-4.7435 +-2.9406 +-1.0719 +-2.8661 +-3.6562 +-4.4664 +-3.0942 +-2.6542 +-2.8102 +-3.207 +-3.0019 +-2.3855 +-2.1045 +-4.5827 +-2.364 +-3.6371 +-2.4623 +-3.6383 +-1.7964 +-2.0333 +-3.831 +-3.6188 +-1.336 +-2.0742 +-4.9576 +-2.5147 +-2.6339 +-3.933 +-4.302 +-2.681 +-4.2228 +-2.3604 +-3.0954 +-4.7632 +-2.2212 +-3.9424 +-3.5416 +4.1669 +2.0174 +2.0961 +3.2495 +3.5602 +1.7401 +1.5777 +1.4109 +2.7997 +2.0428 +2.6474 +3.4922 +3.369 +1.4177 +1.3665 +2.9693 +2.7533 +3.0824 +2.5986 +0.68375 +1.3499 +1.6564 +1.936 +2.351 +2.2231 +1.6559 +2.511 +2.3957 +2.0471 +1.8796 +0.88862 +3.347 +3.5401 +2.7579 +1.3143 +2.7225 +1.0169 +2.5271 +2.6919 +3.313 +3.4798 +3.0516 +1.0908 +3.2721 +1.2458 +1.2138 +5.1584 +2.0029 +1.7821 +2.6901 +1.5279 +2.8436 +2.127 +2.1138 +1.6589 +2.3711 +1.1578 +3.2278 +1.6928 +1.7645 +1.2875 +1.8334 +3.9114 +2.801 +0.14829 +1.4203 +1.8466 +1.2411 +1.9216 +1.5974 +3.2605 +1.6934 +0.99216 +2.5521 +0.92038 +2.3635 +3.6609 +2.4239 +3.0721 +2.4733 +1.8492 +3.4896 +0.51918 +5.2162 +2.4568 +2.9378 +1.8407 +1.1241 +0.39736 +3.6787 +0.79425 +1.4613 +2.0738 +1.143 +2.4506 +2.3006 +1.5596 +2.7276 +1.1934 +1.587 +3.0839 +2.4077 +2.6745 +3.5594 +2.721 +2.151 +2.5705 +2.9138 +0.4947 +2.0693 +1.0343 +2.8469 +3.2042 +3.4021 +1.3643 +1.7553 +3.4522 +2.4712 +1.9063 +2.0916 +2.4396 +3.0672 +1.8062 +1.4562 +2.338 +2.4548 +2.2147 +2.945 +4.8282 +3.4478 +0.97213 +1.8606 +0.42338 +1.3716 +3.444 +3.8826 +4.5889 +1.456 +3.1237 +1.6967 +3.6336 +3.4192 +1.8919 +-0.10981 +2.189 +1.0472 +1.1866 +1.83 +0.74833 +3.933 +2.0146 +1.4634 +2.1933 +0.67503 +3.4374 +1.6112 +2.6562 +2.0831 +0.67222 +1.3102 +2.401 +3.1641 +2.619 +3.0311 +1.3547 +3.7611 +4.4193 +3.4005 +0.83619 +2.6986 +2.628 +1.7569 +2.184 +1.602 +2.4846 +2.3707 +2.992 +2.3621 +2.2683 +2.5325 +1.8302 +0.4544 +2.7994 +1.9187 +2.4152 +3.0814 +1.6535 +1.0789 +0.18863 +1.2977 +3.4213 +2.3136 +2.9348 +3.8487 +1.7365 +2.9589 +3.9933 +0.99749 +1.1445 +1.9598 +2.4482 +1.294 +1.5047 +-0.10208 +0.55148 +2.3613 +3.9309 +1.6174 +4.321 +1.9255 +1.2555 +3.0758 +0.98311 +4.416 +12.334 +12.877 +13.099 +11.679 +13.9 +12.844 +15.27 +11.958 +13.118 +11.977 +12.375 +12.919 +12.842 +12.144 +13.517 +15.8 +12.735 +13.062 +11.391 +14.4 +12.536 +12.079 +11.721 +13.963 +13.368 +11.051 +14.794 +12.537 +12.334 +12.525 +13.505 +12.335 +13.503 +13.959 +13.591 +13.73 +13.598 +13.74 +11.349 +12.768 +12.893 +14.449 +11.464 +13.059 +12.649 +13.383 +13.767 +13.934 +12.41 +12.449 +12.131 +14.156 +13.062 +12.296 +15.076 +12.989 +13.135 +12.445 +12.594 +13.831 +11.853 +14.419 +13.651 +12.4 +13.012 +12.351 +14.158 +13.759 +12.458 +12.949 +14.22 +12.726 +12.897 +12.86 +11.857 +12.791 +14.859 +11.532 +14.133 +14.327 +11.564 +13.973 +12.34 +13.964 +12.476 +13.818 +13.743 +13.745 +11.71 +11.949 +14.481 +13.014 +10.76 +12.342 +13.06 +11.96 +14.586 +13.375 +12.973 +13.011 +11.669 +13.594 +12.533 +13.425 +14.137 +11.815 +13.563 +12.719 +12.498 +14.32 +14.12 +13.109 +12.287 +4.117 +4.5317 +5.4238 +6.5317 +6.3581 +3.5428 +4.7436 +5.0379 +6.6012 +3.9396 +5.6582 +6.6128 +4.0857 +5.892 +5.8955 +5.0037 +4.3623 +5.0327 +7.0853 +5.333 +18.491 +18.73 +16.691 +18.433 +19.931 +16.397 +19.793 +15.799 +17.295 +17.465 +19.025 +16.869 +19.361 +16.465 +17.58 +20.371 +17.338 +20.131 +15.864 +17.171 +18.272 +19.54 +21.12 +20.039 +18.275 +16.792 +16.811 +17.032 +18.628 +18.119 +16.867 +7.6494 +5.5361 +8.1333 +8.7258 +8.8225 +7.8783 +6.6663 +8.8482 +7.2224 +7.6509 +5.8127 +6.2412 +8.3549 +8.6861 +7.0288 +6.6485 +7.8923 +8.1845 +5.845 +8.8109 +8.137 +7.665 +7.1736 +5.9174 +6.4707 +6.4656 +6.6931 +8.2348 +8.5067 +9.132 +6.8126 +5.8961 +7.541 +8.0077 +8.3692 +6.5945 +6.0208 +8.1814 +7.7624 +6.4753 +8.5467 +7.1424 +7.0604 +7.8108 +7.1599 +6.5474 +8.7584 +7.205 +7.3406 +6.744 +8.1796 +8.3195 +8.1163 +5.8314 +7.2725 +7.1993 +6.2279 +7.7503 +7.5991 +7.9507 +9.0323 +6.6928 +6.3129 +7.2991 +6.8364 +7.8481 +8.5518 +8.9025 +6.6421 +8.723 +9.7047 +7.5852 +6.2818 +6.0156 +7.509 +8.1515 +6.6348 +7.6041 +9.1457 +6.0366 +7.3146 +8.229 +6.3393 +6.9983 +6.8867 +7.8235 +7.7006 +9.2135 +7.3328 +6.8619 +6.9806 +9.4239 +9.6533 +7.3411 +7.303 +7.5471 +6.7332 +6.5506 +6.6238 +6.7035 +6.7602 +5.8831 +7.9271 +6.897 +6.5479 +10.068 +6.9368 +8.3527 +7.8094 +6.0984 +7.9038 +9.1679 +8.5598 +7.6359 +9.562 +6.9356 +7.323 +9.2154 +9.13 +6.8105 +6.6649 +8.7019 +7.0765 +7.2323 +7.628 +6.577 +6.5717 +8.674 +6.4207 +7.0953 +7.9025 +7.3265 +7.1238 +8.3171 +5.2977 +6.4883 +7.6511 +8.3012 +6.6065 +8.4449 +6.9357 +8.405 +5.6102 +6.7894 +8.793 +8.1452 +4.6307 +6.464 +6.0214 +6.1345 +7.6969 +8.6855 +6.1966 +9.6437 +9.0547 +7.5253 +8.319 +6.8402 +6.9207 +7.7078 +7.4153 +6.4224 +8.9343 +6.9365 +9.5285 +8.0005 +7.5286 +7.2874 +6.3411 +8.7283 +6.2942 +7.3822 +5.5679 +6.54 +8.1143 +7.7937 +6.9321 +7.5763 +7.5663 +7.6254 +6.5469 +7.3266 +8.1142 +9.5495 +7.68 +11.103 +6.5679 +8.7037 +8.3276 +7.8606 +9.8142 +6.4742 +8.8278 +7.9049 +9.0653 \ No newline at end of file diff --git a/data/pieceregular1024.txt b/data/pieceregular1024.txt new file mode 100644 index 0000000..2eb8304 --- /dev/null +++ b/data/pieceregular1024.txt @@ -0,0 +1,1024 @@ +-18.654 +-18.634 +-18.614 +-18.592 +-18.569 +-18.545 +-18.519 +-18.492 +-18.463 +-18.433 +-18.401 +-18.367 +-18.331 +-18.293 +-18.253 +-18.211 +-18.167 +-18.12 +-18.071 +-18.019 +-17.965 +-17.908 +-17.848 +-17.784 +-17.718 +-17.648 +-17.575 +-17.498 +-17.417 +-17.333 +-17.244 +-17.152 +-17.055 +-16.953 +-16.847 +-16.736 +-16.62 +-16.499 +-16.373 +-16.241 +-16.103 +-15.96 +-15.81 +-15.654 +-15.492 +-15.323 +-15.148 +-14.965 +-14.775 +-14.578 +-14.373 +-14.16 +-13.94 +-13.711 +-13.474 +-13.228 +-12.973 +-12.71 +-12.437 +-12.155 +-11.864 +-11.563 +-11.252 +-10.931 +-10.6 +-10.258 +-9.9057 +-9.5429 +-9.1692 +-8.7845 +-8.3887 +-7.9817 +-7.5634 +-7.1336 +-6.6923 +-6.2393 +-5.7746 +-5.2981 +-4.8098 +-4.3096 +-3.7974 +-3.2734 +-2.7374 +-2.1895 +-1.6296 +-1.0579 +-0.4744 +0.12087 +0.72781 +1.3463 +1.9763 +2.6175 +3.27 +3.9334 +4.6077 +5.2925 +5.9878 +6.6932 +7.4085 +8.1334 +8.8675 +9.6107 +10.363 +11.123 +11.891 +12.666 +13.449 +14.239 +15.034 +15.836 +16.643 +17.454 +18.27 +19.09 +19.912 +20.738 +21.565 +22.394 +23.224 +24.054 +24.884 +25.712 +26.539 +27.364 +28.185 +29.002 +29.816 +30.624 +31.426 +32.221 +33.009 +33.79 +34.561 +35.323 +36.075 +36.816 +37.545 +38.262 +38.966 +39.656 +40.332 +40.993 +41.638 +42.266 +42.878 +43.471 +12.552 +12.83 +13.098 +13.356 +13.604 +13.842 +14.068 +14.283 +14.487 +14.679 +14.859 +15.028 +15.184 +15.328 +15.459 +15.578 +15.683 +15.776 +15.856 +15.922 +15.976 +16.016 +16.042 +16.056 +16.056 +16.042 +16.016 +15.976 +15.922 +15.856 +15.776 +15.683 +15.578 +15.459 +15.328 +15.184 +15.028 +14.859 +14.679 +14.487 +14.283 +14.068 +13.842 +13.604 +13.356 +13.098 +12.83 +12.552 +12.264 +11.968 +11.662 +11.348 +11.025 +10.695 +10.357 +10.012 +9.6599 +9.3014 +36.816 +36.075 +35.323 +34.561 +33.79 +33.009 +32.221 +31.426 +30.624 +29.816 +29.002 +28.185 +27.364 +26.539 +25.712 +24.884 +24.054 +23.224 +22.394 +21.565 +20.738 +19.912 +19.09 +18.27 +17.454 +16.643 +15.836 +15.034 +14.239 +13.449 +12.666 +11.891 +11.123 +10.363 +9.6107 +8.8675 +8.1334 +7.4085 +6.6932 +5.9878 +5.2925 +4.6077 +3.9334 +3.27 +2.6175 +1.9763 +1.3463 +0.72781 +0.12087 +-0.4744 +-1.0579 +-1.6296 +-2.1895 +-2.7374 +-3.2734 +-3.7974 +-4.3096 +-4.8098 +-5.2981 +-5.7746 +-6.2393 +-6.6923 +-7.1336 +-7.5634 +-7.9817 +-8.3887 +-8.7845 +-9.1692 +-9.5429 +-9.9057 +-10.258 +-10.6 +-10.931 +-11.252 +-11.563 +-11.864 +-12.155 +-12.437 +-12.71 +-12.973 +-13.228 +-13.474 +-13.711 +-13.94 +-14.16 +-14.373 +-14.578 +-14.775 +-14.965 +-15.148 +-15.323 +-15.492 +-15.654 +-15.81 +-15.96 +-16.103 +-16.241 +-16.373 +-16.499 +-16.62 +-16.736 +-16.847 +-16.953 +-17.055 +-17.152 +-17.244 +-17.333 +-17.417 +-17.498 +-17.575 +-17.648 +-17.718 +-17.784 +-17.848 +-17.908 +-17.965 +-18.019 +-18.071 +-18.12 +-18.167 +-18.211 +-18.253 +-18.293 +-18.331 +-18.367 +-18.401 +-18.433 +-18.463 +-18.492 +-18.519 +-18.545 +-18.569 +-18.592 +-18.614 +-18.634 +-18.654 +-18.672 +-18.327 +-18.302 +-18.276 +-18.249 +-18.22 +-18.19 +-18.157 +-18.123 +-18.087 +-18.049 +-18.009 +-17.966 +-17.921 +-17.873 +-17.822 +-17.768 +-17.71 +-17.649 +-17.584 +-17.515 +-17.441 +-17.362 +-17.279 +-17.189 +-17.093 +-16.991 +-16.881 +-16.764 +-16.638 +-16.502 +-16.357 +-16.2 +-16.031 +-15.85 +-15.653 +-15.441 +-15.211 +-14.962 +-14.692 +-14.399 +-14.08 +-13.732 +-13.352 +-12.938 +-12.484 +-11.986 +-11.439 +-10.838 +-10.175 +-9.4423 +-8.6318 +-7.7329 +-6.7339 +-5.6209 +-4.3782 +-2.987 +-1.4256 +0.3316 +2.3149 +4.56 +7.1097 +10.015 +13.336 +17.148 +21.54 +26.621 +32.525 +39.417 +40.934 +33.829 +27.75 +22.525 +18.013 +14.102 +10.698 +7.7246 +5.1192 +2.8287 +0.80923 +-0.97616 +-2.5584 +-3.9638 +-5.2143 +-6.3289 +-7.3233 +-8.2111 +-9.0038 +-9.7108 +-10.34 +-10.899 +-11.391 +-11.821 +-12.191 +-12.503 +-12.755 +-12.945 +-13.067 +-13.113 +-13.07 +-12.92 +-12.634 +-12.172 +-11.473 +-10.448 +-8.9581 +-6.7859 +-3.5808 +1.2436 +8.7092 +9.7536 +1.6311 +-3.6846 +-7.2902 +-9.8125 +-11.626 +-12.961 +-13.965 +-14.735 +-15.337 +-15.814 +-16.198 +-16.512 +-16.771 +-16.988 +-17.171 +-17.327 +-17.462 +-17.579 +-17.681 +-17.771 +-17.851 +-17.923 +-17.987 +-18.045 +-18.097 +-18.145 +-18.188 +-18.228 +-18.265 +-18.299 +-18.331 +-18.36 +-18.387 +-18.412 +-18.436 +-18.458 +-18.479 +-18.498 +-18.517 +-18.534 +-18.55 +-18.566 +-18.58 +-18.594 +-18.607 +-18.62 +-18.631 +-18.643 +-18.653 +-18.664 +-18.673 +-18.682 +-18.691 +-18.7 +-18.708 +-18.715 +-18.723 +-18.73 +-18.737 +-18.743 +-18.749 +-17.894 +-17.844 +-17.791 +-17.735 +-17.677 +-17.616 +-17.552 +-17.485 +-17.415 +-17.342 +-17.264 +-17.184 +-17.099 +-17.01 +-16.917 +-16.819 +-16.717 +-16.61 +-16.497 +-16.379 +-16.256 +-16.127 +-15.991 +-15.849 +-15.7 +-15.543 +-15.38 +-15.208 +-15.028 +-14.839 +-14.642 +-14.434 +-14.217 +-13.989 +-13.751 +-13.501 +-13.238 +-12.964 +-12.675 +-12.374 +-12.057 +-11.725 +-11.377 +-11.013 +-10.631 +-10.23 +-9.8107 +-9.3706 +-8.9094 +-8.426 +-7.9193 +-7.3882 +-6.8314 +-6.2479 +-5.6362 +-4.9951 +-4.323 +-3.6186 +-2.8802 +-2.1063 +-1.2951 +-0.44476 +0.44653 +1.3808 +2.36 +3.3864 +4.4623 +5.5901 +6.7721 +8.0112 +9.3099 +10.671 +12.098 +13.594 +15.161 +16.805 +18.527 +20.333 +22.225 +24.209 +26.288 +28.467 +30.751 +33.146 +35.656 +35.656 +33.146 +30.751 +28.467 +26.288 +24.209 +22.225 +20.333 +18.527 +16.805 +15.161 +13.594 +12.098 +10.671 +9.3099 +8.0112 +6.7721 +5.5901 +4.4623 +3.3864 +2.36 +1.3808 +0.44653 +-0.44476 +-1.2951 +-2.1063 +-2.8802 +-3.6186 +-4.323 +-4.9951 +-5.6362 +-6.2479 +-6.8314 +-7.3882 +-7.9193 +-8.426 +-8.9094 +-9.3706 +-9.8107 +-10.23 +-10.631 +-11.013 +-11.377 +-11.725 +-12.057 +-12.374 +-12.675 +-12.964 +-13.238 +-13.501 +-13.751 +-13.989 +-14.217 +-14.434 +-14.642 +-14.839 +-15.028 +-15.208 +-15.38 +-15.543 +-15.7 +-15.849 +-15.991 +-16.127 +-16.256 +-16.379 +-16.497 +-16.61 +-16.717 +-16.819 +-16.917 +-17.01 +-17.099 +-17.184 +-17.264 +-17.342 +-17.415 +-17.485 +-17.552 +-17.616 +-17.677 +-17.735 +-17.791 +-17.844 +-17.894 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +6.0575 +34.628 +34.599 +34.57 +34.54 +34.509 +34.477 +34.444 +34.411 +34.376 +34.341 +34.304 +34.266 +34.228 +34.188 +34.147 +34.106 +34.062 +34.018 +33.973 +33.926 +33.878 +33.829 +33.778 +33.726 +33.672 +33.617 +33.56 +33.502 +33.442 +33.381 +33.318 +33.253 +33.186 +33.117 +33.047 +32.974 +32.9 +32.823 +32.745 +32.664 +32.581 +32.495 +32.408 +32.317 +32.225 +32.129 +32.031 +31.931 +31.827 +31.721 +31.612 +31.499 +31.384 +31.265 +31.143 +31.018 +30.889 +30.757 +30.621 +30.481 +30.337 +30.189 +30.037 +29.881 +29.721 +29.556 +29.387 +29.213 +29.034 +28.85 +28.661 +28.466 +28.267 +28.061 +27.85 +27.634 +27.411 +27.182 +26.946 +26.705 +26.456 +26.2 +25.938 +25.668 +25.39 +25.105 +24.812 +24.511 +24.201 +23.883 +23.556 +23.22 +22.875 +22.52 +22.155 +21.78 +21.395 +20.998 +20.591 +20.173 +19.743 +19.301 +18.847 +18.38 +17.9 +17.407 +16.9 +16.379 +15.843 +15.293 +14.728 +14.146 +13.549 +12.935 +12.304 +11.655 +10.988 +10.303 +9.599 +8.8753 +8.1314 +7.3669 +6.5811 +5.7736 +4.9436 +4.0905 +3.2137 +2.3126 +1.3865 +0.43463 +-0.54367 +-1.5491 +-2.5825 +-3.6446 +-4.7363 +-5.8582 +-7.0113 +-8.1964 +-9.4144 +-10.666 +-11.953 +-13.275 +-14.634 +-16.031 +-17.467 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.942 +-18.592 +-18.614 +-18.634 +-18.654 \ No newline at end of file diff --git a/denoise.html b/denoise.html index 5be705d..65984a1 100644 --- a/denoise.html +++ b/denoise.html @@ -10,11 +10,9 @@
-
-
+
-
diff --git a/js/ngfile.js b/js/ngfile.js index 555fa27..c8b4acc 100644 --- a/js/ngfile.js +++ b/js/ngfile.js @@ -489,35 +489,149 @@ app.controller('displayController', function ($scope, $http, $modal, wave) { //console.log(wave.length); Module._free(inpHeap.byteOffset); - Module._free(outHeap.byteOffset); - Module._free(filtHeap.byteOffset); - Module._free(lenHeap.byteOffset); + //Module._free(outHeap.byteOffset); + //Module._free(filtHeap.byteOffset); + //Module._free(lenHeap.byteOffset); - $scope.wdisplays = new Array(J + 3); - $scope.wdisplays[0] = "Input Signal"; - $scope.wdisplays[1] = "Full Decomposition"; - $scope.wdisplays[2] = "Approx at Level " + J; + $scope.wdisplays = new Array(J + 2); + $scope.wdisplays[0] = "Full Decomposition"; + $scope.wdisplays[1] = "Approx at Level " + J; - for (var i = 3; i < J + 3; i++) { - $scope.wdisplays[i] = "Details at Level " + (J + 3 - i); + for (var i = 2; i < J + 2; i++) { + $scope.wdisplays[i] = "Details at Level " + (J + 2 - i); } + var trace = []; var lbl = []; - var sigData = []; - for (var i = 0; i < wave.outLength; ++i) { + + + for (var i = 0; i < wave.sigLength; ++i) { lbl[i] = i; - sigData[i] = wave.output[i]; } - var g = { - x: lbl, - y: sigData, - type: 'scatter' + trace[0] = { + x: lbl, + y: [].slice.call(wave.sigData), + name: 'Signal', + yaxis: 'y3', + type: 'scatter' + }; + + var namea = "Apprx "+J; + + if (method == "dwt") { + var wreccoeff = Module.cwrap('wreccoeff','number',['string','number','number','string','number','number','number','number','number']); + + var coefflength = (J+1) * wave.sigLength; + + var coeffdata = coefflength * wave.sigData.BYTES_PER_ELEMENT; + var coeffPtr = Module._malloc(coeffdata); + var coeffHeap = new Uint8Array(Module.HEAPU8.buffer, coeffPtr, coeffdata); + + wreccoeff(method,outHeap.byteOffset, lenHeap.byteOffset,ext,J,filtHeap.byteOffset,flength,N,coeffHeap.byteOffset); + + wave.reccoeff = new Float64Array(coeffHeap.buffer, coeffHeap.byteOffset, coefflength); + + Module._free(outHeap.byteOffset); + Module._free(filtHeap.byteOffset); + Module._free(lenHeap.byteOffset); + Module._free(coeffHeap.byteOffset); + + //console.log(sigAppx); + + trace[1] = { + x: lbl, + y: [].slice.call(wave.reccoeff.slice(0,wave.sigLength)), + name: namea, + yaxis: 'y2', + type: 'scatter' + }; + + var iter = wave.sigLength; + + for(var j = J; j > 0;--j) { + + //for (var i = 0; i < wave.sigLength; ++i) { + //sigData[i] = wave.reccoeff[iter+i]; + //} + + var named = "Detail "+j; + + trace[J-j+2] = { + x: lbl, + y: [].slice.call(wave.reccoeff.slice(iter,iter+wave.sigLength)), + name: named, + yaxis: 'y1', + type: 'scatter' + }; + + iter += wave.sigLength;; + } + + + } else { + + Module._free(outHeap.byteOffset); + Module._free(filtHeap.byteOffset); + Module._free(lenHeap.byteOffset); + + wave.reccoeff = wave.output.slice(); + + trace[1] = { + x: lbl, + y: [].slice.call(wave.output.slice(0,wave.sigLength)), + name: namea, + yaxis: 'y2', + type: 'scatter' + }; + + var iter = wave.sigLength; + + for(var j = J; j > 0;--j) { + + //for (var i = 0; i < wave.sigLength; ++i) { + //sigData[i] = wave.reccoeff[iter+i]; + //} + + var named = "Detail "+j; + + trace[J-j+2] = { + x: lbl, + y: [].slice.call(wave.output.slice(iter,iter+wave.sigLength)), + name: named, + yaxis: 'y1', + type: 'scatter' + }; + + iter += wave.sigLength;; + } } - var gdata = [g]; + var layout = { + yaxis3: {domain: [0.7,1],title: 'Signal'}, + legend: {traceorder: 'reversed'}, + yaxis2: {domain: [0.35, 0.65],title: 'Approximation'}, + yaxis1: {domain: [0, 0.3],title: 'Details'} + }; - Plotly.newPlot('graph1',gdata); + Plotly.newPlot('graph1',trace,layout); + + //var lbl = []; + //var sigData = []; + //for (var i = 0; i < wave.outLength; ++i) { + // lbl[i] = i; + // sigData[i] = wave.output[i]; + //} + + //var g = { + // x: lbl, + // y: sigData, + // type: 'scatter' + //} + + //var gdata = [g]; + + //Plotly.newPlot('graph1',gdata); /* g = new Dygraph(document.getElementById("graph1"), lbl, @@ -535,45 +649,148 @@ app.controller('displayController', function ($scope, $http, $modal, wave) { $scope.updateGraph = function () { //console.log($scope.selected.wdisplay); + var trace = []; var lbl = []; + var name1,name2; + + for (var i = 0; i < wave.sigLength; ++i) { + lbl[i] = i; + } + + trace[0] = { + x: lbl, + y: [].slice.call(wave.sigData), + name: 'Signal', + yaxis: 'y3', + type: 'scatter' + }; var sigData = []; if ($scope.selected.wdisplay == 0) { - for (var i = 0; i < wave.sigLength; ++i) { - lbl[i] = i ; - sigData[i] = wave.sigData[i]; + name1 = 'Details'; + name2 = 'Approximation'; + if (wave.method == "dwt") { + + trace[1] = { + x: lbl, + y: [].slice.call(wave.reccoeff.slice(0,wave.sigLength)), + name: namea, + yaxis: 'y2', + type: 'scatter' + }; + + var iter = wave.sigLength; + + for(var j = wave.J; j > 0;--j) { + + //for (var i = 0; i < wave.sigLength; ++i) { + //sigData[i] = wave.reccoeff[iter+i]; + //} + + var named = "Detail "+j; + + trace[wave.J-j+2] = { + x: lbl, + y: [].slice.call(wave.reccoeff.slice(iter,iter+wave.sigLength)), + name: named, + yaxis: 'y1', + type: 'scatter' + }; + + iter += wave.sigLength;; + } + + + } else { + + trace[1] = { + x: lbl, + y: [].slice.call(wave.output.slice(0,wave.sigLength)), + name: namea, + yaxis: 'y2', + type: 'scatter' + }; + + var iter = wave.sigLength; + + for(var j = wave.J; j > 0;--j) { + + //for (var i = 0; i < wave.sigLength; ++i) { + //sigData[i] = wave.reccoeff[iter+i]; + //} + + var named = "Detail "+j; + + trace[wave.J-j+2] = { + x: lbl, + y: [].slice.call(wave.output.slice(iter,iter+wave.sigLength)), + name: named, + yaxis: 'y1', + type: 'scatter' + }; + + iter += wave.sigLength;; + } } } else if ($scope.selected.wdisplay == 1) { - for (var i = 0; i < wave.outLength; ++i) { - lbl[i] = i; - sigData[i] = wave.output[i]; - } - } else if ($scope.selected.wdisplay == 2) { - for (var i = 0; i < wave.length[0]; ++i) { - lbl[i] = i; - sigData[i] = wave.output[i]; - } + var namea = "Approx.(Rec)"; + name2 = namea; + trace[1] = { + x: lbl, + y: [].slice.call(wave.reccoeff.slice(0,wave.sigLength)), + name: namea, + yaxis: 'y2', + type: 'scatter' + }; + namea = "Approx."; + name1 = namea; + trace[2] = { + x: lbl, + y: [].slice.call(wave.output.slice(0,wave.length[0])), + name: namea, + yaxis: 'y1', + type: 'scatter' + }; + } else { - var k = parseInt($scope.selected.wdisplay) - 2; + var k = parseInt($scope.selected.wdisplay) - 1; var start_index = 0; + var rstart_index = 0; for (var i = 0; i < k; i++) { start_index += wave.length[i]; + rstart_index += wave.sigLength; } var end_index = start_index + wave.length[k]; - for (var i = 0; i < end_index - start_index; ++i) { - lbl[i] = i; - sigData[i] = wave.output[start_index + i]; - } + var rend_index = rstart_index + wave.sigLength; + + var namea = "Detail(Rec)"; + name2 = namea; + trace[1] = { + x: lbl, + y: [].slice.call(wave.reccoeff.slice(rstart_index,rend_index)), + name: namea, + yaxis: 'y2', + type: 'scatter' + }; + namea = "Detail"; + name1 = namea; + trace[2] = { + x: lbl, + y: [].slice.call(wave.output.slice(start_index,end_index)), + name: namea, + yaxis: 'y1', + type: 'scatter' + }; + } - var g = { - x: lbl, - y: sigData, - type: 'scatter' - } + var layout = { + yaxis3: {domain: [0.7,1],title: 'Signal'}, + legend: {traceorder: 'reversed'}, + yaxis2: {domain: [0.35, 0.65],title: name2}, + yaxis1: {domain: [0, 0.3],title: name1} + }; - var gdata = [g]; - - Plotly.newPlot('graph1',gdata); + Plotly.newPlot('graph1',trace,layout); /* g = new Dygraph(document.getElementById("graph1"), lbl, @@ -823,18 +1040,16 @@ app.controller('denoiseController', function ($scope, $http, $modal, wave) { "id": "1", "method": "DWT (Periodic)" } - //, { - // "id": "2", - // "method": "SWT" - //}, { - // "id": "3", - // "method": "MODWT" - //} + , { + "id": "2", + "method": "SWT" + } ]; $scope.denoiseSignal = function () { var method; var ext = "NULL"; + var noise_level; var dnmethod; var threshold; @@ -854,10 +1069,8 @@ app.controller('denoiseController', function ($scope, $http, $modal, wave) { } else if ($scope.selected.method.id == "2") { method = "swt"; ext = "per"; - } else if ($scope.selected.method.id == "3") { - method = "modwt"; - ext = "per"; } + //console.log($scope.selected.dnmethod); if ($scope.selected.family.family == "biorthogonal" && method == "modwt") { alert("the Method MODWT is not implemented for biorthogonal wavelets"); @@ -883,11 +1096,13 @@ app.controller('denoiseController', function ($scope, $http, $modal, wave) { } } + noise_level = "first"; //TODO : make it a selectable value - "first" or "all" wave.J = J; wave.method = method; wave.ext = ext; wave.dnmethod = dnmethod; wave.threshold = threshold; + wave.noise_level = noise_level; //wave.output = []; //wave.filters = []; wave.wname = $scope.selected.wavelet.wavelet; @@ -896,7 +1111,7 @@ app.controller('denoiseController', function ($scope, $http, $modal, wave) { //console.log(wave.sigData, N, wave.wname, method, J, ext, wave.output, wave.length, wave.lenlength, wave.filters, flength); - var wave_denoise = Module.cwrap('wdenoise', 'null', ['number', 'number', 'number','string','string','string','string','string','number']); + var wave_denoise = Module.cwrap('wdenoise', 'null', ['number', 'number', 'number','string','string','string','string','string','string','number']); //[wave.sigData, N, wave.wname, method, J, ext, wave.output, wave.length, wave.lenlength, wave.filters, flength]); //[wave.sigData,N,J,wave.wname,method,ext,dnmethod.threshold,wave.denoised] //input signal on heap @@ -912,7 +1127,7 @@ app.controller('denoiseController', function ($scope, $http, $modal, wave) { //inpHeap.set(new Uint8Array(wave.sigData.buffer)); //wave_transform(inpHeap.byteOffset, N, wave.wname, method, J, ext, outHeap.byteOffset, lenHeap.byteOffset, filtHeap.byteOffset); - wave_denoise(inpHeap.byteOffset,N,J,dnmethod,wave.wname,method,ext,threshold,outHeap.byteOffset) + wave_denoise(inpHeap.byteOffset,N,J,dnmethod,wave.wname,method,ext,threshold,noise_level,outHeap.byteOffset) wave.denoised = new Float64Array(outHeap.buffer, outHeap.byteOffset, wave.sigLength); //console.log(wave.filter); @@ -920,27 +1135,70 @@ app.controller('denoiseController', function ($scope, $http, $modal, wave) { Module._free(inpHeap.byteOffset); Module._free(outHeap.byteOffset); - $scope.wdisplays = new Array(3); - $scope.wdisplays[0] = "Input Signal"; - $scope.wdisplays[1] = "Denoised Signal"; - $scope.wdisplays[2] = "Noise"; + $scope.wdisplays = new Array(4); + $scope.wdisplays[0] = "FULL VIEW"; + $scope.wdisplays[1] = "Input Signal"; + $scope.wdisplays[2] = "Denoised Signal"; + $scope.wdisplays[3] = "Noise"; + $scope.wdisplays[4] = "Superimposed View"; var lbl = []; var sigData = []; + var denoised = []; + var noise = []; + var trace = []; + + var ya = []; + + for(var i = 1; i < 4;++i) { + ya[i-1] = "y"+i; + } + for (var i = 0; i < wave.sigLength; ++i) { lbl[i] = i; - sigData[i] = wave.denoised[i]; + sigData[i] = wave.sigData[i]; } - var g = { - x: lbl, - y: sigData, - type: 'scatter' + trace[0] = { + x: lbl, + y: sigData, + name: 'Signal', + yaxis: ya[2], + type: 'scatter' + }; + + for (var i = 0; i < wave.sigLength; ++i) { + denoised[i] = wave.denoised[i]; } - var gdata = [g]; + trace[1] = { + x: lbl, + y: denoised, + name: 'DeNoised', + yaxis: ya[1], + type: 'scatter' + }; - Plotly.newPlot('graph1',gdata); + for (var i = 0; i < wave.sigLength; ++i) { + noise[i] = wave.sigData[i] - wave.denoised[i]; + } + + trace[2] = { + x: lbl, + y: noise, + name: 'Noise', + yaxis: ya[0], + type: 'scatter' + }; + + var layout = { + yaxis3: {domain: [0.7,1],title: 'Signal'}, + legend: {traceorder: 'reversed'}, + yaxis2: {domain: [0.35, 0.65],title: 'DeNoised'}, + yaxis1: {domain: [0, 0.3],title: 'Noise'} + }; + + Plotly.newPlot('graph1',trace,layout); /* g = new Dygraph(document.getElementById("graph1"), lbl, @@ -961,32 +1219,120 @@ app.controller('denoiseController', function ($scope, $http, $modal, wave) { var lbl = []; var sigData = []; if ($scope.selected.wdisplay == 0) { + var denoised = []; + var noise = []; + var trace = []; + + var ya = []; + + for(var i = 1; i < 4;++i) { + ya[i-1] = "y"+i; + } + for (var i = 0; i < wave.sigLength; ++i) { - lbl[i] = i ; + lbl[i] = i; sigData[i] = wave.sigData[i]; } - } else if ($scope.selected.wdisplay == 1) { + + trace[0] = { + x: lbl, + y: sigData, + name: 'Signal', + yaxis: ya[2], + type: 'scatter' + }; + for (var i = 0; i < wave.sigLength; ++i) { - lbl[i] = i; - sigData[i] = wave.denoised[i]; + denoised[i] = wave.denoised[i]; } - } else if ($scope.selected.wdisplay == 2) { + + trace[1] = { + x: lbl, + y: denoised, + name: 'DeNoised', + yaxis: ya[1], + type: 'scatter' + }; + for (var i = 0; i < wave.sigLength; ++i) { - lbl[i] = i; - sigData[i] = wave.sigData[i] - wave.denoised[i]; + noise[i] = wave.sigData[i] - wave.denoised[i]; } - } + + trace[2] = { + x: lbl, + y: noise, + name: 'Noise', + yaxis: ya[0], + type: 'scatter' + }; + + var layout = { + yaxis3: {domain: [0.7,1],title: 'Signal'}, + legend: {traceorder: 'reversed'}, + yaxis2: {domain: [0.35, 0.65],title: 'DeNoised'}, + yaxis1: {domain: [0, 0.3],title: 'Noise'} + }; + + Plotly.newPlot('graph1',trace,layout); - var g = { - x: lbl, - y: sigData, - type: 'scatter' + } else if ($scope.selected.wdisplay == 4) { + var denoised = []; + + for (var i = 0; i < wave.sigLength; ++i) { + lbl[i] = i; + sigData[i] = wave.sigData[i]; + } + + trace1 = { + x: lbl, + y: sigData, + name: 'Signal', + type: 'scatter' + }; + + for (var i = 0; i < wave.sigLength; ++i) { + denoised[i] = wave.denoised[i]; + } + + trace2 = { + x: lbl, + y: denoised, + name: 'DeNoised', + type: 'scatter' + }; + + var gdata = [trace1,trace2]; + + Plotly.newPlot('graph1',gdata); + + } else { + if ($scope.selected.wdisplay == 1) { + for (var i = 0; i < wave.sigLength; ++i) { + lbl[i] = i ; + sigData[i] = wave.sigData[i]; + } + } else if ($scope.selected.wdisplay == 2) { + for (var i = 0; i < wave.sigLength; ++i) { + lbl[i] = i; + sigData[i] = wave.denoised[i]; + } + } else if ($scope.selected.wdisplay == 3) { + for (var i = 0; i < wave.sigLength; ++i) { + lbl[i] = i; + sigData[i] = wave.sigData[i] - wave.denoised[i]; + } + } + var g = { + x: lbl, + y: sigData, + type: 'scatter' + } + + var gdata = [g]; + + Plotly.newPlot('graph1',gdata); } - var gdata = [g]; - - Plotly.newPlot('graph1',gdata); - } $scope.items = ['item1', 'item2', 'item3']; diff --git a/js/wavelib.js b/js/wavelib.js index 13ddf84..5e21f7f 100644 --- a/js/wavelib.js +++ b/js/wavelib.js @@ -1,16 +1,16 @@ -var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function shell_read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}if(!Module["reallocBuffer"])Module["reallocBuffer"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module["usingWasm"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module["reallocBuffer"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE;STATICTOP=STATIC_BASE+30704;__ATINIT__.push();allocate([178,136,149,93,219,251,65,63,218,75,113,166,101,218,127,63,80,144,80,0,1,55,169,63,87,102,10,206,202,54,199,63,142,143,130,211,42,220,218,63,123,229,194,181,137,63,227,63,85,37,201,130,43,116,220,63,35,143,242,70,70,74,162,191,86,106,190,59,133,123,213,191,173,123,141,242,13,198,188,191,63,7,177,227,139,20,203,63,0,107,53,240,237,127,189,63,4,160,60,94,145,233,193,191,148,206,179,168,68,239,180,191,142,162,56,157,205,186,184,63,25,152,181,232,14,105,167,63,215,135,126,162,93,162,176,191,169,128,222,76,255,25,147,191,137,84,223,101,19,87,164,63,60,79,77,188,185,129,107,63,191,59,44,253,185,100,149,191,92,78,14,160,113,176,99,63,196,29,0,150,187,104,130,63,252,248,1,79,145,175,103,191,229,192,227,247,40,60,104,191,152,182,95,198,248,31,92,63,63,254,41,198,212,243,68,63,35,180,25,238,196,161,70,191,129,110,141,213,36,194,0,191,240,83,11,174,78,98,41,63,2,239,9,63,131,15,3,191,168,141,129,19,44,89,2,191,101,24,182,139,199,25,240,62,213,202,218,111,48,104,199,62,22,136,182,230,194,235,201,190,35,145,92,128,79,63,149,62,183,158,89,155,115,20,148,62,101,50,154,214,179,218,122,190,55,55,0,160,161,92,35,190,154,191,158,211,99,80,62,62,119,29,17,24,185,73,25,190,239,131,198,192,241,141,220,61,189,35,104,242,107,80,57,63,97,138,57,168,204,111,119,63,228,69,200,30,231,125,163,63,181,154,244,35,181,253,194,63,102,235,76,227,221,136,215,63,97,230,211,91,133,130,226,63,204,101,186,201,185,64,224,63,7,99,127,225,155,223,178,63,113,226,225,88,182,3,212,191,63,105,106,188,57,172,201,191,178,28,53,110,1,1,197,63,204,12,75,134,92,9,199,63,198,110,65,215,64,220,184,191,221,114,2,65,199,221,192,191,153,241,242,7,115,109,177,63,139,142,33,94,141,165,181,63,153,42,200,96,106,76,170,191,189,102,28,246,226,210,167,191,108,92,72,194,215,237,162,63,45,136,248,143,174,20,149,63,145,221,137,55,36,11,152,191,219,159,245,161,159,115,121,191,242,7,43,223,136,187,137,63,149,239,150,79,120,171,51,63,152,127,133,42,181,88,118,191,74,143,74,110,242,27,81,63,110,208,2,149,9,239,93,63,166,136,110,75,6,65,73,191,175,0,212,5,249,197,59,191,145,178,236,175,38,137,53,63,243,50,65,214,247,200,6,63,41,187,238,29,189,167,24,191,57,221,199,182,142,218,231,62,239,25,176,124,187,55,242,62,208,243,174,165,121,221,217,190,149,241,185,167,100,66,186,190,243,125,107,187,195,186,181,62,116,161,66,205,124,145,119,190,142,114,20,124,130,57,129,190,152,33,225,183,100,49,100,62,77,81,10,212,120,221,28,62,123,57,39,57,129,114,39,190,103,4,189,154,138,85,2,62,133,176,217,39,134,205,195,189,48,202,21,159,203,209,49,63,122,218,202,208,230,54,113,63,178,0,160,12,113,3,158,63,211,21,172,27,27,218,190,63,44,125,184,133,127,97,212,63,71,8,86,114,19,112,225,63,47,108,225,149,241,161,225,63,207,45,214,160,223,55,199,63,121,66,206,33,166,186,208,191,114,136,101,232,166,94,209,191,83,183,140,218,135,149,183,63,56,197,50,199,15,158,204,63,68,105,160,197,72,234,160,191,88,154,19,175,82,254,196,191,139,229,219,23,22,197,148,63,69,250,198,193,127,191,188,63,190,37,162,28,28,162,149,191,50,109,192,146,28,249,177,191,106,41,24,237,201,73,150,63,63,86,119,4,169,181,163,63,229,116,86,245,211,247,146,191,191,71,25,237,62,245,145,191,32,180,43,241,176,29,138,63,8,127,57,229,215,180,120,63,81,174,58,142,2,251,124,191,109,171,250,133,248,151,82,191,49,218,21,135,37,149,105,63,234,123,33,116,155,39,48,191,109,223,250,90,32,99,81,191,250,108,226,145,252,238,52,63,82,22,143,85,194,211,48,63,244,42,194,225,229,169,35,191,224,90,187,108,19,183,1,191,191,48,65,124,146,52,7,63,11,136,160,219,16,27,198,190,98,115,33,72,187,129,225,190,217,244,45,204,189,28,196,62,146,162,95,167,182,86,171,62,8,250,106,180,43,234,161,190,63,181,2,107,189,229,83,62,203,30,83,169,210,21,109,62,150,59,12,14,58,16,78,190,64,18,172,34,56,70,16,190,89,231,121,144,233,11,18,62,230,103,176,201,11,143,234,189,247,232,43,215,4,126,171,61,121,152,58,2,133,23,41,63,156,107,105,5,152,63,105,63,233,77,73,75,156,5,151,63,252,143,10,138,45,230,184,63,105,13,83,245,86,119,209,63,103,159,174,188,206,35,224,63,204,96,249,239,230,101,226,63,118,98,114,212,170,251,209,63,145,25,6,108,130,248,199,191,249,172,146,237,45,89,212,191,187,75,245,120,164,144,115,63,20,92,101,172,84,159,206,63,229,180,230,93,83,198,165,63,96,43,2,236,18,233,197,191,52,108,178,8,154,218,163,191,146,225,174,169,236,250,190,63,206,17,253,152,207,123,149,63,62,2,207,209,139,8,181,191,159,148,206,158,214,192,114,191,21,105,155,184,52,68,170,63,245,41,131,84,231,64,116,191,3,35,42,145,229,227,156,191,241,127,154,206,229,97,127,63,198,44,215,112,241,185,138,63,120,199,139,82,12,197,121,191,52,157,73,91,35,113,115,191,71,192,221,132,14,155,110,63,187,157,241,170,61,231,82,63,160,228,158,163,116,203,91,191,68,151,250,143,77,39,7,191,174,141,137,70,202,52,67,63,235,238,26,64,31,247,30,191,23,22,108,3,55,35,35,191,71,99,51,99,238,49,17,63,139,43,134,27,152,228,246,62,18,58,232,63,38,54,245,190,4,61,190,187,23,205,76,62,96,249,188,75,198,92,208,62,122,191,232,140,250,33,174,190,94,5,200,170,203,15,155,190,215,94,195,130,124,19,141,62,211,149,91,128,192,96,1,190,72,137,221,46,136,56,88,190,13,102,12,26,9,39,54,62,236,172,252,45,183,80,0,62,246,26,1,30,65,168,251,189,199,76,108,236,10,56,211,61,227,107,169,213,137,25,147,189,88,117,128,198,60,171,33,63,231,70,85,244,47,125,98,63,24,148,113,174,102,153,145,63,125,113,243,134,40,250,179,63,24,114,136,3,34,168,205,63,115,58,164,252,115,107,221,63,219,122,53,251,196,156,226,63,87,197,61,215,109,139,215,63,225,147,241,240,111,224,184,191,204,236,66,98,198,136,213,191,2,74,48,84,36,108,182,191,253,154,66,192,167,189,204,63,149,205,79,196,108,63,190,63,229,153,17,157,142,69,195,191,134,108,11,81,220,55,185,191,183,208,51,97,90,76,187,63,196,99,112,123,171,22,177,63,216,122,7,200,200,187,179,191,128,162,128,53,119,8,163,191,12,255,177,126,206,115,171,63,197,231,71,65,205,212,143,63,45,238,29,186,254,109,161,191,29,198,242,201,226,58,105,191,60,188,128,233,127,96,147,63,1,35,132,213,32,76,96,191,52,117,182,95,143,37,130,191,145,251,149,193,204,86,102,63,111,237,37,39,57,56,107,63,221,174,68,113,240,47,94,191,99,141,18,205,142,125,77,191,87,237,64,160,249,190,76,63,135,19,9,227,19,59,30,63,106,214,44,228,236,78,52,191,217,170,232,9,75,148,2,63,134,228,232,207,182,184,20,63,117,96,242,93,120,168,252,190,142,173,66,216,227,200,234,190,210,56,199,23,211,218,226,62,46,231,116,251,246,142,161,62,146,24,172,141,156,217,189,190,246,131,83,10,61,142,149,62,211,245,45,189,182,206,137,62,49,185,152,75,1,61,119,190,249,185,23,73,247,110,38,190,228,71,73,191,78,237,67,62,20,155,51,246,19,39,32,190,212,183,75,193,191,160,238,189,148,9,215,37,249,27,229,61,168,20,12,225,161,202,187,189,207,25,182,119,12,143,122,61,94,20,201,176,45,227,24,63,133,138,41,155,200,10,91,63,167,195,192,250,227,210,138,63,25,218,232,169,121,226,175,63,36,255,91,101,13,247,200,63,153,194,41,83,100,115,218,63,65,232,81,46,127,91,226,63,165,170,185,118,43,27,220,63,38,201,80,112,4,17,93,63,173,195,244,52,124,227,212,191,224,203,226,229,39,97,198,191,181,114,103,29,146,52,199,63,183,103,173,125,135,100,199,63,29,82,235,155,248,180,186,191,64,230,213,170,234,240,194,191,197,238,219,172,238,223,177,63,133,184,37,80,110,66,187,63,22,99,225,32,156,93,171,191,178,205,54,187,91,147,177,191,213,3,171,1,117,159,165,63,85,210,165,15,244,186,163,63,200,169,163,171,202,16,160,191,79,223,228,15,234,47,146,191,132,130,59,240,136,59,149,63,111,20,90,29,194,224,119,63,88,233,151,192,254,34,136,191,20,63,5,17,97,83,65,191,58,242,254,66,17,242,118,63,2,9,199,60,100,197,78,191,27,136,138,204,128,147,97,191,222,123,249,89,148,120,75,63,148,230,218,192,138,48,68,63,181,209,255,162,3,79,60,191,200,60,37,139,101,205,27,191,32,56,62,207,34,164,36,63,211,33,223,96,253,34,214,190,123,208,161,59,233,139,5,191,34,181,255,215,46,135,230,62,60,169,16,250,70,92,221,62,89,131,129,107,16,78,208,190,0,124,176,90,111,53,159,190,47,24,165,225,186,163,170,62,246,162,58,84,220,246,124,190,141,40,68,74,26,231,119,190,154,210,205,125,163,75,98,62,50,166,42,62,103,162,34,62,158,33,37,118,196,55,48,190,11,43,153,233,202,75,7,62,5,201,60,233,20,141,219,61,233,212,179,103,210,13,208,189,182,163,17,43,5,20,164,61,155,128,5,14,119,122,98,189,161,5,151,108,168,135,17,63,234,203,183,77,93,192,83,63,221,95,152,218,5,98,132,63,20,235,65,231,217,81,169,63,130,220,245,5,161,218,196,63,2,141,236,214,187,126,215,63,238,36,251,87,35,185,225,63,54,21,35,70,247,147,223,63,142,230,46,61,199,83,186,63,83,159,213,88,184,138,210,191,130,202,3,66,34,199,207,191,213,39,168,153,10,101,189,63,120,34,127,134,74,23,205,63,158,232,26,63,208,219,163,191,62,209,136,124,190,201,198,191,90,142,141,157,183,45,144,63,205,209,233,90,24,203,192,63,28,24,49,144,238,204,140,191,201,57,187,246,70,77,183,191,85,54,62,197,250,185,145,63,161,44,153,123,42,174,173,63,80,46,170,105,240,244,146,191,110,174,246,200,44,195,160,191,54,244,113,155,212,136,144,63,102,30,240,83,164,10,144,63,43,154,196,169,199,181,135,191,200,172,111,129,218,2,120,191,26,88,68,27,180,21,124,63,219,9,215,161,98,255,85,63,201,132,93,158,128,77,107,191,75,216,78,106,168,26,35,63,132,249,21,166,136,81,85,63,122,124,46,172,10,103,54,191,142,137,168,202,233,107,57,191,165,147,131,42,14,121,42,63,129,24,164,2,148,20,20,63,214,97,105,182,220,54,20,191,47,8,75,17,189,129,205,190,118,123,130,253,2,163,245,62,128,90,123,208,215,92,208,190,228,191,121,99,108,174,206,190,144,102,14,104,144,107,187,62,153,61,11,132,95,121,148,62,14,213,93,164,167,77,151,190,235,149,224,34,3,165,97,62,13,165,29,143,164,157,101,62,222,34,241,218,25,96,76,190,97,15,108,52,23,127,22,190,48,185,107,43,34,36,26,62,38,174,6,158,112,153,240,189,151,26,7,232,62,13,200,189,78,230,10,164,231,86,184,61,114,166,71,167,117,253,140,189,76,234,25,34,190,186,73,61,42,214,252,57,189,178,8,63,132,225,119,174,196,209,76,63,83,140,39,203,10,229,126,63,11,245,189,66,242,3,164,63,31,163,21,253,50,76,193,63,86,252,230,203,224,164,212,63,137,236,105,23,201,204,224,63,56,113,74,78,253,249,224,63,50,246,14,52,95,159,201,63,238,194,178,94,253,128,205,191,85,90,212,111,244,72,211,191,222,103,216,120,191,210,160,63,48,201,158,57,164,118,207,63,93,61,219,146,117,229,162,63,239,198,86,61,134,104,199,191,228,63,69,84,46,251,167,191,147,63,168,228,121,59,193,63,248,139,121,227,46,167,161,63,42,192,123,80,232,1,185,191,73,15,164,189,20,194,145,191,227,179,141,19,237,87,177,63,69,25,205,20,5,63,108,63,81,46,16,146,202,47,166,191,61,253,156,62,2,39,114,63,25,147,97,169,211,71,153,63,218,250,124,53,159,234,123,191,64,105,206,231,203,180,136,191,206,150,106,103,113,234,119,63,193,91,87,233,74,153,115,63,173,149,255,198,219,132,110,191,243,205,89,75,210,73,86,191,161,102,88,59,130,188,94,63,128,211,121,83,53,142,34,63,230,131,185,57,87,136,72,191,146,226,58,3,196,68,30,63,216,86,251,111,101,23,46,63,24,197,213,160,78,87,23,191,93,250,89,125,5,187,9,191,110,249,213,237,103,23,3,63,207,208,102,133,186,116,211,62,92,39,94,51,239,15,229,190,215,155,211,232,176,239,180,62,163,1,80,83,77,224,190,62,186,4,96,229,171,97,166,190,164,66,61,50,151,150,135,190,101,31,19,106,222,1,132,62,20,157,124,163,75,190,65,190,243,119,188,253,51,40,83,190,112,218,24,7,253,169,53,62,195,25,62,118,123,220,7,62,128,104,234,8,108,225,4,190,59,107,231,90,222,87,215,61,161,252,16,236,43,136,180,61,213,121,140,59,90,101,162,189,76,144,129,88,27,234,116,61,44,110,98,171,118,236,49,189,103,191,89,33,164,102,1,63,174,44,171,64,177,0,69,63,153,119,149,238,28,91,119,63,181,241,134,2,28,131,159,63,51,54,15,130,192,130,188,63,99,231,185,233,57,246,209,63,177,109,88,80,53,88,223,63,90,135,145,254,219,164,225,63,139,76,240,65,179,128,210,63,24,36,147,172,54,183,195,191,58,71,124,18,100,31,213,191,101,200,244,8,154,133,172,191,117,134,216,69,178,56,206,63,221,13,134,199,128,199,188,63,22,67,212,97,166,151,196,191,47,44,254,203,202,155,187,191,209,119,41,111,14,78,189,63,240,81,105,115,244,77,181,63,31,13,215,198,200,202,181,191,218,213,200,39,144,44,172,191,239,216,221,167,43,64,176,63,33,35,105,47,169,67,159,63,17,78,133,11,225,34,167,191,194,115,160,134,77,116,138,191,145,68,90,52,127,45,158,63,3,93,158,229,241,177,101,63,2,228,232,56,65,115,145,191,110,154,96,204,50,121,92,63,76,237,1,80,147,88,129,63,89,253,38,38,110,229,100,191,159,191,182,161,21,117,108,191,145,201,36,63,55,193,94,63,180,211,95,72,111,207,81,63,40,62,221,139,145,101,80,191,53,91,129,249,69,57,42,191,107,118,91,204,150,241,58,63,152,102,251,205,150,8,248,190,206,130,97,15,189,242,32,191,224,172,172,107,69,28,3,63,127,161,144,68,115,140,254,62,142,85,171,102,219,96,241,190,96,122,194,31,75,37,206,190,27,109,192,134,237,236,211,62,54,37,77,76,224,83,148,190,218,146,62,176,17,30,174,190,42,249,218,194,0,173,145,62,226,107,160,59,213,50,121,62,184,49,183,107,208,223,112,190,224,236,52,186,230,126,18,62,146,0,52,146,10,175,64,62,168,0,75,157,240,68,32,190,206,227,185,232,125,140,247,189,45,42,94,56,157,138,240,61,104,124,172,238,130,42,192,189,36,171,5,157,79,57,161,189,49,207,234,202,99,187,139,61,236,145,227,118,89,40,94,189,252,189,193,42,98,252,24,61,42,194,248,203,172,133,248,62,67,47,117,188,226,148,62,63,146,210,186,114,182,157,113,63,78,80,153,196,192,181,152,63,255,62,28,188,100,91,183,63,13,117,82,137,136,250,206,63,50,205,134,223,202,212,220,63,35,150,48,185,161,215,225,63,73,191,222,38,133,112,215,63,174,10,131,189,105,241,176,191,58,53,23,183,84,79,213,191,198,63,232,52,6,44,194,191,195,103,125,140,249,135,201,63,170,80,235,24,33,195,198,63,164,147,243,253,175,83,189,191,117,193,110,7,86,32,196,191,26,220,31,72,159,161,178,63,136,200,235,114,101,108,191,63,65,195,233,98,133,140,171,191,180,157,234,198,204,112,182,191,138,86,140,250,43,109,166,63,95,11,78,56,103,9,173,63,197,236,43,151,200,67,162,191,196,45,207,26,224,132,160,191,147,152,84,102,127,186,155,63,68,136,59,92,75,79,143,63,117,97,172,232,97,215,146,191,198,189,153,240,40,178,117,191,191,155,230,71,239,90,134,63,97,57,214,246,46,78,68,63,70,116,192,17,100,167,118,191,100,107,220,155,210,162,75,63,150,96,13,57,223,10,99,63,51,185,168,38,252,53,76,191,49,87,137,252,109,41,73,191,8,111,1,224,10,141,64,63,81,45,233,29,142,155,38,63,36,88,159,225,133,85,44,191,237,235,76,40,86,237,225,190,216,172,142,231,139,77,18,63,7,65,30,214,140,24,236,190,105,23,7,108,3,40,241,190,172,74,244,149,238,106,222,62,54,77,37,166,95,134,195,62,191,162,56,31,31,89,194,190,21,5,180,145,108,156,71,62,24,202,149,233,122,153,156,62,220,23,17,31,204,218,122,190,193,139,182,44,29,148,105,190,184,110,209,88,201,249,91,62,34,241,230,6,210,20,3,62,140,33,164,201,45,157,44,190,245,251,52,64,243,255,7,62,102,47,101,94,110,45,230,61,175,105,107,35,220,1,218,189,184,189,28,100,23,254,165,61,248,5,82,120,139,126,140,61,153,215,114,232,213,217,116,189,110,255,232,102,214,186,69,61,110,15,106,199,158,108,1,189,100,116,251,44,218,71,241,62,58,113,169,80,100,62,54,63,154,2,231,230,60,132,106,63,103,236,139,211,97,78,147,63,191,190,101,176,176,7,179,63,201,236,225,218,101,127,202,63,70,25,60,123,52,48,218,63,139,251,7,5,240,162,225,63,236,111,121,189,106,124,219,63,188,127,137,252,62,210,155,63,170,48,237,75,176,230,211,191,136,20,71,17,184,230,203,191,116,148,237,182,92,241,193,63,130,243,59,142,181,203,204,63,193,173,180,73,242,143,169,191,98,165,208,244,97,238,199,191,131,136,160,131,109,157,143,63,190,120,191,242,74,146,194,63,50,155,70,203,157,171,128,191,9,104,14,190,130,140,187,191,81,166,222,21,100,104,134,63,243,167,18,210,95,74,179,63,248,199,129,93,107,121,142,191,0,167,42,118,153,228,168,191,78,143,71,26,184,138,144,63,38,188,164,223,131,184,156,63,53,219,105,59,225,60,141,191,76,234,41,162,228,119,140,191,133,248,8,173,69,138,133,63,23,30,89,226,29,152,118,63,235,142,36,251,155,181,122,191,45,205,61,8,147,102,87,191,41,58,218,218,198,203,107,63,105,128,96,10,143,197,16,191,123,73,46,36,170,231,87,191,222,159,178,88,238,124,54,63,185,234,130,153,79,97,64,63,83,17,79,134,153,105,47,191,21,116,65,114,50,76,32,191,82,36,23,169,19,144,28,63,82,139,165,28,60,124,239,62,31,33,143,197,201,9,3,191,183,45,79,122,8,236,208,62,113,32,19,3,241,113,226,62,255,92,96,41,235,117,201,190,31,194,158,164,17,248,182,190,162,191,62,154,94,117,176,62,140,37,121,177,183,153,108,62,109,171,197,31,58,133,138,190,155,67,29,179,237,106,99,62,26,253,97,78,2,0,89,62,129,169,167,25,210,203,70,190,71,250,160,98,221,62,6,190,222,91,1,192,242,50,24,62,179,229,84,87,88,88,241,189,13,235,207,138,89,51,212,189,157,154,114,99,46,76,196,61,248,127,148,23,194,67,141,189,226,150,148,52,70,76,119,189,96,221,103,216,61,72,95,61,231,236,15,24,0,76,47,189,107,221,139,103,90,80,232,60,196,254,229,1,143,91,232,62,75,226,108,107,54,42,48,63,120,163,215,205,185,234,99,63,24,80,162,176,24,17,142,63,140,5,31,40,18,218,174,63,78,39,253,109,0,127,198,63,53,155,242,26,71,133,215,63,165,142,167,228,33,25,225,63,201,217,253,226,108,148,222,63,173,236,191,152,164,225,190,63,100,20,214,63,149,17,209,191,234,223,255,114,70,193,209,191,26,15,129,238,13,145,176,63,112,245,21,164,164,200,207,63,169,134,26,168,28,65,153,63,83,10,1,68,207,150,200,191,174,150,241,83,227,21,169,191,58,149,214,251,246,150,194,63,182,81,0,121,61,188,166,63,48,78,46,218,80,5,188,191,105,54,229,221,196,86,158,191,151,103,34,237,42,180,180,63,189,8,121,155,175,227,140,63,55,63,92,34,114,37,173,191,37,3,12,193,198,127,99,191,46,251,25,160,104,248,162,63,242,61,12,157,76,251,112,191,29,65,124,110,199,46,150,191,93,153,139,1,31,67,121,63,239,168,19,126,74,144,134,63,66,13,246,202,112,42,118,191,201,166,95,158,14,11,115,191,230,189,159,102,215,182,109,63,32,87,105,135,62,17,88,63,83,13,214,13,92,24,96,191,43,242,3,144,41,253,44,191,36,141,120,34,125,107,76,63,75,247,112,178,141,219,26,191,254,238,152,145,63,13,52,191,144,73,243,249,180,160,27,63,24,142,6,86,73,62,21,63,90,175,75,181,152,147,11,191,224,158,6,250,90,35,235,190,18,215,57,179,251,32,243,62,89,235,185,141,186,88,165,190,80,106,116,152,114,30,211,190,14,240,123,123,94,46,180,62,206,132,222,13,8,94,169,62,201,57,106,216,61,195,156,190,216,49,244,116,145,220,106,190,183,93,106,121,93,17,120,62,130,94,67,231,154,50,74,190,175,86,53,237,104,183,71,190,117,74,114,133,99,65,50,62,94,162,232,185,24,33,254,61,47,61,228,16,16,53,4,190,190,56,74,110,36,122,216,61,159,255,10,49,165,240,193,61,159,226,6,69,91,119,175,189,250,95,43,167,30,236,114,61,178,200,190,161,49,221,98,61,195,44,70,23,121,106,71,189,161,252,178,83,171,134,22,61,0,39,31,160,173,248,208,188,9,123,250,132,4,43,225,62,97,97,78,41,167,121,39,63,161,70,129,90,255,220,93,63,129,162,206,160,193,86,135,63,63,38,184,133,5,228,168,63,172,92,105,228,196,247,194,63,180,105,247,40,243,232,212,63,183,6,74,66,207,76,224,63,32,136,242,246,50,92,224,63,232,208,16,47,152,211,202,63,67,198,122,192,79,35,202,191,73,60,55,52,77,57,212,191,153,145,156,117,179,189,147,191,132,134,104,79,241,105,207,63,226,150,252,42,223,143,185,63,17,135,133,31,91,241,197,191,6,147,176,246,71,96,188,191,214,209,106,18,73,57,191,63,189,78,58,58,8,68,184,63,238,209,50,96,104,85,183,191,179,123,34,250,87,255,177,191,77,6,178,251,11,248,177,63,63,41,67,63,133,106,167,63,109,240,134,119,149,96,171,191,13,105,162,184,195,218,153,191,95,187,124,89,202,206,163,63,180,79,66,5,152,235,133,63,236,109,54,249,163,88,154,191,198,189,191,139,30,194,97,191,201,249,3,200,126,94,143,63,129,13,147,139,238,30,90,191,42,115,204,30,242,73,128,191,177,89,40,29,58,146,99,63,170,201,71,200,196,131,108,63,120,194,51,248,106,124,94,191,185,44,11,56,61,187,83,191,235,246,18,125,71,154,81,63,53,51,42,241,168,223,49,63,144,252,214,160,103,21,64,191,44,185,25,88,32,109,210,62,34,9,235,90,35,86,39,63,209,240,5,202,11,208,5,191,76,1,70,112,89,216,9,191,7,14,215,103,23,105,249,62,16,208,237,12,218,5,227,62,125,26,39,113,246,151,226,190,175,163,106,92,170,53,152,190,113,33,212,105,61,50,195,62,72,232,66,129,101,181,157,190,241,33,111,140,137,191,154,190,65,109,172,27,222,117,136,62,237,31,50,124,166,34,98,62,9,77,127,212,215,104,101,190,178,42,39,97,182,140,47,62,134,255,14,61,214,243,53,62,39,193,15,220,220,182,28,190,193,223,32,143,183,39,241,189,16,139,44,119,84,173,240,61,177,165,109,253,228,195,192,189,251,154,145,5,57,59,175,189,118,73,102,173,12,59,152,61,245,186,28,143,20,135,87,189,203,43,163,30,40,75,78,189,197,18,110,58,49,126,49,61,115,89,139,129,129,52,0,189,15,19,5,205,210,179,183,60,214,52,125,226,9,52,216,62,233,118,136,142,81,8,33,63,172,177,215,195,73,89,86,63,176,40,90,132,41,16,130,63,25,240,26,177,53,254,163,63,236,181,98,2,117,200,191,63,150,199,149,35,190,106,210,63,118,118,198,81,101,159,222,63,88,4,56,176,78,250,224,63,185,248,69,168,92,149,210,63,112,44,122,124,100,106,192,191,155,154,241,229,181,55,213,191,88,94,117,27,169,152,186,191,168,82,124,164,157,195,203,63,79,7,189,198,52,83,197,63,114,172,144,46,151,76,192,191,9,137,171,33,48,153,196,191,254,255,243,15,70,247,179,63,53,94,116,26,10,43,193,63,232,137,12,12,49,229,171,191,88,50,73,18,198,90,186,191,159,172,208,26,155,79,166,63,235,71,192,128,68,188,178,63,55,222,18,197,88,243,162,191,63,219,125,236,221,73,168,191,178,210,227,120,61,122,159,63,123,25,23,176,191,225,155,63,55,65,223,112,103,61,152,191,56,143,124,34,59,235,138,191,250,29,37,118,158,205,144,63,245,161,187,150,158,78,115,63,97,246,69,22,189,146,132,191,9,231,81,47,136,76,68,191,48,211,61,241,25,218,117,63,88,225,139,231,159,52,73,191,78,108,231,6,5,168,99,191,92,25,51,214,199,37,76,63,95,169,220,124,181,173,76,63,107,13,145,156,174,28,66,191,104,213,148,176,55,127,46,191,88,202,94,19,66,95,49,63,34,240,30,116,132,228,251,62,246,240,100,27,164,253,25,191,56,154,8,40,126,96,236,62,209,97,160,186,219,212,253,62,174,131,52,100,65,46,230,190,87,163,203,9,244,243,215,190,142,230,7,159,93,125,209,62,138,27,83,151,139,181,160,62,229,186,227,3,128,186,178,190,110,213,158,106,246,111,131,62,245,180,146,60,64,49,139,62,166,213,136,95,79,52,116,190,212,101,129,214,5,95,85,190,234,117,242,10,10,176,82,62,25,38,158,33,120,198,13,190,125,243,196,169,10,230,35,190,244,137,70,83,75,38,6,62,155,60,58,124,105,223,225,61,109,61,130,142,221,57,219,189,207,253,202,78,49,21,166,61,92,129,93,209,156,189,154,61,226,15,175,147,133,138,130,189,20,37,0,173,63,149,59,61,168,12,103,248,245,37,56,61,35,110,218,0,138,22,26,189,107,16,192,1,255,77,231,60,242,235,204,163,219,142,160,188,90,211,71,51,233,15,209,62,139,185,144,33,164,178,24,63,116,248,76,165,130,178,80,63,121,197,255,196,246,225,123,63,185,204,107,214,103,252,159,63,175,139,47,228,182,120,186,63,192,150,129,139,107,21,208,63,94,117,237,204,210,99,220,63,17,129,58,76,44,47,225,63,243,254,81,41,231,15,215,63,135,173,240,186,242,119,166,191,243,166,159,137,131,185,212,191,164,161,6,176,203,68,199,191,162,105,26,220,215,64,197,63,219,255,137,142,118,208,203,63,128,35,236,73,17,181,176,191,51,230,191,51,210,144,200,191,140,99,93,155,225,197,147,63,108,235,78,190,159,224,195,63,199,106,3,12,140,119,115,191,124,219,31,92,177,222,190,191,208,4,126,247,50,100,115,63,143,155,72,2,147,4,183,63,168,72,124,207,155,21,131,191,70,148,207,236,25,56,176,191,97,223,186,222,145,23,139,63,65,242,9,203,85,31,165,63,145,40,41,152,92,108,141,191,77,186,121,138,227,191,152,191,164,232,162,208,76,37,138,63,126,226,237,45,52,43,137,63,238,149,245,69,134,157,131,191,33,169,209,124,12,213,116,191,42,232,136,243,230,35,121,63,67,244,164,170,214,101,87,63,95,89,216,153,125,129,107,191,113,60,217,188,149,241,223,62,174,155,49,144,166,99,89,63,65,6,235,86,209,238,53,191,39,136,5,109,194,55,67,191,136,19,44,145,40,91,49,63,157,70,166,110,75,72,38,63,132,214,6,160,36,231,33,191,33,174,81,12,80,55,255,190,94,92,31,179,25,207,11,63,213,251,0,194,107,113,196,190,177,143,172,247,253,124,240,190,14,227,226,45,187,17,210,62,228,197,83,98,65,33,204,62,151,55,252,168,244,206,191,190,182,153,123,85,231,50,154,190,72,70,151,48,179,202,161,62,5,49,170,68,170,221,99,190,213,32,145,55,89,209,122,190,187,144,186,73,108,38,96,62,48,116,207,219,80,76,71,62,176,142,109,151,36,4,64,190,250,99,244,115,80,54,208,61,222,127,157,232,155,181,17,62,23,33,113,126,35,185,240,189,182,1,165,136,47,157,209,189,99,45,154,56,65,254,197,61,165,97,76,106,80,126,139,189,154,105,223,126,132,148,134,189,225,231,27,150,89,51,108,61,190,44,223,241,23,64,29,189,163,123,216,189,161,32,35,189,244,63,161,74,107,107,3,61,16,236,113,145,243,191,208,188,39,63,133,216,139,36,135,60,209,22,3,139,210,14,200,62,227,205,36,204,222,228,17,63,248,128,130,132,37,233,72,63,190,117,183,157,217,118,117,63,6,164,177,149,233,124,153,63,233,214,135,168,75,237,181,63,133,27,4,184,117,223,203,63,62,142,233,123,2,3,218,63,217,108,124,149,84,8,225,63,34,132,13,49,120,190,218,63,206,135,114,198,234,131,166,63,74,136,18,88,203,215,210,191,243,49,31,124,95,151,207,191,71,85,39,50,3,30,185,63,70,167,73,148,136,142,207,63,106,68,204,132,19,208,125,63,243,138,123,173,225,131,201,191,231,129,181,64,37,123,167,191,80,114,54,207,192,185,195,63,244,7,94,170,204,189,169,63,237,111,103,63,236,105,190,191,78,209,175,99,67,107,164,191,140,85,155,6,13,86,183,63,147,199,9,39,192,163,153,63,245,88,191,103,37,118,177,191,30,110,114,237,119,46,135,191,88,43,136,246,180,214,168,63,12,239,183,190,196,88,87,63,66,113,211,234,198,95,160,191,251,66,192,165,145,81,112,63,160,7,130,48,104,133,147,63,192,162,171,173,165,44,119,191,136,89,43,119,198,117,132,191,74,138,15,95,252,146,116,63,48,178,119,208,223,19,114,63,247,20,150,241,156,139,108,191,73,79,83,125,89,160,88,191,250,245,148,68,255,78,96,63,23,74,180,3,184,50,50,63,46,204,25,127,122,2,79,191,58,101,207,32,35,149,22,63,212,175,181,76,173,52,56,63,250,60,250,38,223,71,30,191,144,44,167,122,12,172,29,191,166,152,163,199,195,140,17,63,149,0,139,226,160,231,248,62,40,42,121,123,5,164,252,190,108,20,12,49,248,218,179,190,185,0,75,232,204,142,225,62,113,164,43,187,113,156,186,190,169,69,88,28,19,99,191,190,150,70,58,222,116,227,171,62,7,9,170,132,40,26,145,62,53,128,176,131,78,122,144,190,216,36,6,112,117,166,39,62,114,58,65,79,193,195,105,62,218,48,126,56,177,211,72,190,172,74,162,87,82,27,56,190,71,249,83,201,98,246,42,62,147,68,198,155,238,251,221,61,50,227,220,242,141,2,255,189,35,107,56,187,189,162,216,61,26,25,19,42,205,178,192,61,223,140,146,91,205,150,177,189,127,23,65,101,141,59,111,61,115,115,67,154,55,215,114,61,86,12,246,35,19,81,85,189,37,124,73,94,203,245,248,60,43,195,78,213,116,33,14,61,129,142,140,205,94,221,236,188,139,118,236,44,41,17,184,60,253,149,55,253,187,45,112,188,31,242,22,183,87,246,192,62,43,84,200,97,128,233,9,63,214,138,88,22,251,141,66,63,22,58,107,244,157,123,112,63,79,130,230,146,144,60,148,63,230,116,42,223,216,17,178,63,172,123,131,42,79,250,199,63,232,206,189,113,137,148,215,63,64,225,202,11,211,148,224,63,112,53,188,253,206,148,221,63,148,252,104,81,164,192,192,63,31,154,94,31,215,130,207,191,241,31,50,20,14,215,210,191,19,174,108,12,196,36,148,63,66,75,234,253,244,24,208,63,160,235,137,104,61,241,180,63,164,172,37,86,138,74,199,191,153,244,16,212,125,195,187,191,76,152,60,224,136,161,192,63,224,196,76,6,70,14,186,63,254,226,126,147,69,187,184,191,159,133,156,191,151,19,181,191,216,34,82,33,82,54,179,63,241,131,51,163,158,127,174,63,164,44,106,202,232,86,174,191,45,22,31,133,1,150,163,191,146,170,13,140,35,116,167,63,130,90,154,210,228,121,149,63,20,105,102,210,0,42,161,191,138,39,243,122,75,23,130,191,82,154,167,2,88,41,151,63,67,210,132,230,90,178,91,63,151,157,37,99,74,48,140,191,192,95,126,40,110,228,88,63,3,168,105,10,160,66,126,63,246,6,95,93,130,106,98,191,174,90,165,206,212,206,107,191,229,176,43,192,130,196,93,63,179,218,98,19,83,181,84,63,183,243,96,201,231,53,82,191,248,91,51,235,63,128,53,191,201,184,89,239,202,253,65,63,52,220,178,119,250,22,240,62,76,28,194,121,252,243,44,191,171,21,40,192,167,188,6,63,150,228,14,157,159,126,18,63,35,225,142,121,244,62,0,191,191,21,229,227,23,48,241,190,175,252,191,215,253,102,236,62,29,255,170,10,116,9,191,62,252,29,209,182,195,19,210,190,13,151,97,185,46,74,160,62,188,70,135,33,20,208,176,62,200,52,180,166,70,116,151,190,139,142,176,59,237,67,132,190,217,75,106,96,52,197,125,62,166,201,21,51,28,251,54,62,8,31,244,132,200,46,88,190,201,79,12,4,223,36,50,62,105,221,163,203,3,0,40,62,132,248,132,253,42,73,22,190,68,168,84,28,233,89,220,189,2,102,148,127,117,191,234,61,197,167,224,217,97,156,193,189,109,118,67,112,97,192,174,189,44,182,243,150,134,220,155,61,46,3,56,196,241,128,77,189,63,146,29,208,68,29,95,189,145,82,57,119,68,4,64,61,209,95,31,164,240,71,192,188,145,37,189,12,204,156,247,188,83,108,198,15,90,107,213,60,177,254,151,64,144,72,161,188,239,231,227,104,181,160,86,60,204,131,2,255,169,235,183,62,147,192,31,212,246,191,2,63,150,160,66,133,16,154,59,63,51,123,146,84,180,65,105,63,96,90,48,10,54,3,144,63,127,69,43,45,192,163,173,63,43,131,174,52,61,125,196,63,153,6,222,46,110,43,213,63,201,139,92,90,38,200,223,63,97,225,160,95,37,147,223,63,181,227,46,186,61,69,203,63,234,203,38,46,53,104,199,191,70,208,19,106,85,150,212,191,139,34,57,62,101,225,175,191,76,215,156,183,77,182,205,63,170,19,211,95,182,50,195,63,57,237,251,108,92,38,194,191,12,125,201,210,3,120,196,191,242,225,95,67,97,236,181,63,128,68,2,197,224,25,194,63,250,76,110,122,230,248,172,191,18,209,8,162,5,95,189,191,231,27,244,74,170,16,166,63,105,82,154,6,7,83,182,63,101,206,246,115,231,189,162,191,57,20,205,12,210,159,175,191,175,28,154,43,250,96,160,63,142,216,198,35,22,130,164,63,33,62,9,155,113,137,155,191,103,68,198,70,59,171,151,191,87,128,212,254,6,104,149,63,219,78,138,228,120,31,135,63,62,199,72,53,5,28,142,191,221,110,163,47,253,235,112,191,57,219,210,130,51,223,130,63,251,33,255,65,49,111,66,63,88,234,111,159,168,197,116,191,106,45,17,131,123,126,71,63,186,226,190,206,160,170,99,63,176,246,223,194,56,175,75,191,143,185,66,118,240,225,78,191,109,159,152,39,107,10,67,63,50,254,221,215,54,119,50,63,38,65,15,96,53,221,51,191,170,171,203,167,136,226,7,191,24,44,167,251,182,138,32,63,92,184,61,46,14,59,232,190,137,237,54,191,199,227,5,191,223,165,232,188,205,250,235,62,174,87,54,155,71,193,229,62,5,192,190,139,220,20,219,190,70,220,84,101,211,4,186,190,65,126,116,40,1,9,194,62,41,166,230,60,72,200,118,190,242,135,170,182,58,104,161,190,224,85,174,173,234,189,130,62,71,33,114,98,173,140,118,62,126,234,137,104,143,57,106,190,45,95,130,159,13,76,55,190,90,139,51,46,89,56,70,62,76,132,139,60,11,173,24,190,199,57,34,160,213,45,23,190,212,191,50,187,189,19,2,62,247,172,161,236,117,129,210,61,233,147,158,30,78,193,214,189,213,85,63,216,250,57,168,61,13,216,222,42,164,171,155,61,228,185,35,121,63,219,133,189,133,174,83,90,92,146,29,61,118,107,13,140,99,116,73,61,8,196,150,8,162,236,39,189,3,252,184,176,253,112,192,188,111,149,94,197,173,107,226,60,73,231,178,110,91,190,191,188,51,108,253,180,118,208,136,60,179,28,46,2,77,168,63,188,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,21,191,72,71,221,232,222,63,113,253,227,214,189,196,234,63,9,113,107,11,191,176,204,63,144,6,147,193,125,144,192,191,100,210,80,110,121,74,213,63,187,40,125,36,14,210,233,63,68,247,240,11,162,110,221,63,41,150,197,133,10,72,193,191,60,72,13,181,122,223,181,191,185,137,55,55,46,9,162,63,192,94,241,42,5,125,205,63,72,215,69,234,5,224,230,63,58,228,61,221,44,48,228,63,251,91,219,249,198,167,156,191,212,4,198,183,193,240,199,191,169,131,99,25,226,148,159,63,123,17,104,199,10,214,160,63,41,46,183,48,23,180,133,191,17,185,167,65,60,126,196,63,12,176,196,194,145,82,227,63,245,84,59,20,137,45,231,63,198,252,190,115,3,184,193,63,116,20,248,211,132,3,207,191,116,220,168,72,102,130,160,191,170,21,37,181,185,219,179,63,232,242,121,69,173,144,121,191,40,65,41,243,239,195,137,191,9,60,78,224,133,83,107,63,82,57,220,36,239,141,188,63,169,57,69,246,234,167,223,63,187,192,59,250,73,9,232,63,33,47,169,207,15,45,212,63,241,22,105,210,61,246,204,191,235,34,39,98,51,156,192,191,82,23,78,127,221,245,184,63,73,37,97,61,244,46,156,63,206,232,4,100,133,43,160,191,193,167,16,18,247,37,66,63,27,163,98,76,81,145,115,63,102,100,122,59,135,166,81,191,177,182,56,186,28,238,179,63,3,48,48,116,230,96,217,63,254,193,148,210,12,85,231,63,220,77,41,186,233,16,222,63,51,30,73,14,131,107,194,191,151,171,213,187,55,173,204,191,28,130,167,44,82,65,178,63,83,250,242,39,7,163,180,63,204,69,207,238,168,120,163,191,9,231,255,168,234,248,144,191,112,13,165,130,86,180,137,63,212,115,67,88,31,39,60,63,49,47,203,249,160,132,93,191,211,16,250,51,85,46,55,63,221,8,163,173,100,220,171,63,30,195,180,144,22,6,212,63,96,55,146,89,196,158,229,63,40,94,219,190,57,187,226,63,198,149,154,69,129,53,144,191,111,213,36,135,79,45,210,191,176,98,246,202,249,246,62,63,9,186,99,177,203,122,192,63,157,80,7,15,66,201,145,191,226,127,138,81,188,146,166,191,180,133,91,205,21,162,140,63,252,245,53,223,120,233,129,63,74,199,58,109,239,242,115,191,93,230,152,23,80,172,57,191,65,243,46,142,20,34,70,63,195,63,142,200,187,203,30,191,124,218,64,229,243,126,163,63,160,194,139,128,249,53,207,63,136,162,3,6,182,90,227,63,53,254,232,1,129,8,229,63,34,251,3,168,156,12,193,63,239,83,253,102,255,196,210,191,252,152,220,188,142,202,184,191,113,231,67,30,98,3,195,63,151,121,103,148,141,118,159,63,162,81,244,148,98,80,177,191,13,202,182,166,49,114,48,63,135,136,5,190,249,229,150,63,191,59,120,159,163,88,115,191,182,191,179,100,123,137,113,191,31,113,252,187,151,69,94,63,11,81,188,163,118,50,46,63,138,151,3,168,61,131,48,191,181,49,173,161,27,161,4,63,227,122,220,73,101,79,155,63,254,140,25,105,45,22,200,63,116,248,27,7,213,222,224,63,117,215,98,64,219,7,230,63,103,245,35,73,186,254,209,63,227,17,193,182,247,250,207,191,2,168,28,124,196,20,201,191,131,174,160,119,163,77,192,63,141,209,159,129,155,210,183,63,196,154,52,7,227,70,178,191,37,43,21,213,29,42,158,191,60,143,203,105,64,1,161,63,20,23,226,179,125,139,109,63,220,14,119,109,70,251,133,191,221,56,174,135,135,220,86,63,216,140,169,114,96,82,96,63,240,80,140,9,98,121,70,191,221,80,220,85,245,135,30,191,51,228,250,28,161,136,24,63,219,67,26,42,42,209,235,190,145,96,7,22,153,36,147,63,207,20,35,196,201,112,194,63,223,201,152,97,40,203,220,63,204,18,50,100,37,241,229,63,22,232,239,204,159,93,218,63,108,246,43,107,111,197,196,191,70,204,168,137,255,140,209,191,143,77,106,139,59,232,176,63,50,167,11,63,10,45,195,63,9,154,74,126,56,204,167,191,124,255,190,219,33,2,177,191,153,128,106,39,39,11,160,63,229,139,149,106,81,87,149,63,247,131,104,90,151,119,143,191,139,106,52,243,73,94,107,191,172,249,117,10,210,47,116,63,51,17,132,60,84,57,52,191,58,174,253,211,56,67,77,191,162,110,188,240,21,84,48,63,56,60,25,93,176,138,12,63,140,62,187,254,160,40,2,191,120,13,225,180,176,217,210,62,87,250,210,120,153,218,138,63,121,248,130,6,137,12,188,63,189,64,46,39,150,38,216,63,107,111,142,157,197,7,229,63,120,121,41,92,36,130,224,63,93,133,217,193,74,235,166,191,34,91,164,141,68,60,212,191,178,179,243,240,150,89,152,191,59,221,86,126,117,91,199,63,142,54,141,135,234,243,117,63,131,51,25,130,198,175,184,191,98,67,28,157,17,56,134,63,176,78,57,190,141,69,165,63,155,56,63,81,23,6,137,191,81,42,62,98,74,76,138,191,233,164,255,75,132,125,123,63,129,209,248,209,171,107,98,63,66,193,110,24,192,218,97,191,37,205,203,36,199,115,219,62,251,11,190,49,132,120,57,63,232,180,184,4,105,51,23,191,169,63,246,86,74,107,249,190,58,66,12,241,146,203,234,62,243,194,125,45,80,167,185,190,59,126,211,116,145,216,130,63,76,61,138,252,100,54,181,63,232,175,9,108,191,247,211,63,187,52,24,0,197,141,227,63,114,164,190,240,46,216,226,63,181,15,41,81,178,68,182,63,174,197,111,32,132,40,212,191,99,215,106,184,66,228,191,191,164,26,200,121,18,249,198,63,139,124,85,4,200,172,178,63,204,234,200,67,53,22,187,191,6,151,35,222,198,31,155,191,94,13,82,68,80,190,172,63,44,233,227,223,41,127,99,63,199,176,69,146,67,103,152,191,176,163,26,3,141,18,112,63,49,38,23,115,9,184,125,63,16,126,172,205,37,160,102,191,246,44,31,27,86,142,85,191,171,76,226,30,235,140,78,63,202,23,127,132,109,210,9,63,164,100,0,54,207,164,37,191,211,66,85,134,154,21,0,63,53,216,140,2,248,229,229,62,52,190,195,164,8,183,211,190,160,163,141,219,249,131,161,62,172,99,227,172,2,119,122,63,119,184,92,15,70,238,175,63,35,244,98,127,119,79,208,63,92,114,161,34,223,188,225,63,212,54,49,220,176,50,228,63,172,88,66,174,102,253,203,63,29,7,175,97,88,99,209,191,191,83,96,208,133,232,203,191,89,115,188,50,239,182,193,63,91,197,3,252,40,235,193,63,247,76,170,214,36,53,182,191,38,237,243,71,8,81,178,191,205,224,157,101,10,72,172,63,244,73,33,169,3,161,155,63,172,169,188,166,232,232,158,191,123,166,146,97,206,255,118,191,78,146,125,186,96,49,138,63,24,175,200,19,189,115,72,191,103,31,68,33,71,137,111,191,195,196,110,31,14,101,81,63,106,140,229,217,79,51,71,63,1,218,16,144,246,89,57,191,1,2,2,60,63,231,5,191,248,20,232,162,18,6,18,63,28,94,79,54,191,173,229,190,109,183,63,229,104,105,210,190,187,61,19,180,203,240,188,62,162,109,196,240,144,252,135,190,206,109,162,88,0,151,114,63,196,164,188,16,192,238,167,63,126,133,2,111,253,94,202,63,115,63,29,105,71,135,223,63,180,48,165,81,128,170,228,63,121,129,194,176,55,178,213,63,69,91,137,202,233,186,200,191,31,224,40,110,13,125,210,191],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([47,199,120,51,98,182,176,63,91,29,13,63,186,86,200,63,13,4,33,6,32,79,164,191,22,74,46,242,107,114,188,191,188,121,119,82,88,88,161,63,99,70,111,66,50,12,172,63,196,111,42,151,170,98,154,191,198,183,160,211,58,79,149,191,112,52,0,53,81,228,142,63,45,236,152,91,201,228,116,63,174,220,47,252,225,146,122,191,101,142,93,113,0,176,47,191,232,213,61,60,228,214,95,63,10,186,36,127,254,121,56,191,34,227,30,247,128,144,55,191,0,89,203,166,4,111,36,63,15,198,32,202,172,11,251,62,9,122,244,101,249,127,253,190,114,51,84,193,245,53,204,62,83,75,228,223,88,99,190,62,164,191,28,29,41,50,165,190,25,112,51,22,208,118,112,62,134,236,94,242,71,32,106,63,96,236,203,134,108,223,161,63,7,65,169,145,211,32,197,63,121,72,235,95,62,138,219,63,52,89,70,27,57,101,228,63,4,194,132,47,183,45,220,63,199,153,195,105,237,249,182,191,236,22,156,243,154,238,212,191,134,189,147,59,151,150,156,191,59,118,220,241,75,8,203,63,195,75,186,10,22,255,155,63,95,124,98,153,25,242,192,191,10,29,135,210,210,142,121,191,6,177,200,78,197,111,179,63,244,63,151,203,157,21,127,191,81,42,96,59,9,227,162,191,192,226,16,123,240,22,133,63,195,84,206,220,195,168,140,63,65,193,44,191,143,161,124,191,21,140,86,185,155,218,109,191,129,237,242,195,240,159,105,63,19,5,97,49,96,187,58,63,63,154,180,209,220,213,78,191,69,40,161,94,158,242,29,63,90,62,6,1,227,232,38,63,233,131,66,234,13,0,16,191,175,117,181,38,6,63,237,190,70,35,93,161,75,198,231,62,192,231,69,211,26,130,177,190,161,34,112,64,85,181,168,190,123,155,169,245,235,252,142,62,3,129,226,206,27,166,86,190,108,216,27,248,104,93,98,63,244,206,133,64,234,155,154,63,109,58,58,99,166,203,192,63,208,69,18,134,211,179,215,63,219,160,74,198,72,141,227,63,142,6,244,240,10,150,224,63,86,29,75,162,116,248,155,63,210,146,52,7,53,3,213,191,52,118,185,177,107,52,192,191,163,8,171,48,121,65,201,63,63,113,123,242,3,228,185,63,111,87,103,32,127,59,192,191,27,137,102,40,22,59,173,191,182,126,48,168,92,195,180,63,96,176,186,136,11,217,150,63,200,53,169,196,55,6,168,191,119,74,178,225,176,203,106,191,115,151,200,53,127,71,151,63,203,145,118,206,156,237,104,191,209,131,163,148,104,158,129,191,146,19,49,23,87,80,104,63,123,179,52,40,250,217,98,63,236,142,252,229,144,138,87,191,157,228,138,112,38,129,53,191,69,81,214,163,1,205,60,63,65,211,28,84,169,218,250,190,26,11,253,116,38,130,21,191,252,240,31,182,41,80,248,62,46,243,93,196,25,82,221,62,83,127,117,9,56,230,210,190,47,231,124,140,100,62,148,62,45,107,135,160,74,217,147,62,142,245,210,174,228,156,118,190,41,138,0,106,177,54,63,62,117,24,138,53,134,211,89,63,103,179,197,115,95,192,147,63,68,59,243,16,198,132,186,63,185,19,114,36,179,35,212,63,81,173,202,187,103,76,226,63,54,116,241,251,50,76,226,63,234,38,144,249,52,216,194,63,58,80,83,81,58,203,210,191,87,59,225,177,165,181,203,191,66,218,88,231,237,35,195,63,219,163,11,163,235,98,197,63,114,82,206,246,15,163,183,191,110,177,45,128,29,84,187,191,99,1,143,215,114,156,176,63,18,77,119,54,210,53,173,63,161,170,148,102,33,204,166,191,44,207,234,201,132,77,152,191,66,152,220,198,144,79,155,63,165,134,13,233,91,166,121,63,120,249,163,30,188,186,138,191,127,151,133,118,32,25,31,63,83,216,228,177,120,63,116,63,114,202,238,13,78,84,82,191,6,35,139,80,222,246,85,191,204,7,10,199,243,151,68,63,206,19,153,165,155,254,43,63,13,28,55,18,138,9,42,191,144,218,66,253,94,157,132,190,175,6,44,140,103,157,3,63,237,59,25,178,118,222,225,190,148,45,42,46,199,244,203,190,219,217,223,125,144,172,189,62,104,14,41,85,166,165,116,190,59,216,228,212,22,146,127,190,24,69,252,160,198,121,96,62,109,38,168,149,1,139,37,190,90,216,254,23,25,42,82,63,244,59,96,150,104,63,141,63,74,17,91,118,164,206,180,63,242,36,241,116,189,235,208,63,145,99,65,204,46,200,224,63,48,110,11,230,41,65,227,63,183,248,84,190,128,178,208,63,4,200,83,75,25,50,205,191,62,199,212,29,46,75,210,191,250,237,247,64,105,28,179,63,66,64,104,193,70,46,203,63,179,91,143,162,87,41,161,191,155,149,67,57,205,70,194,191,152,29,70,111,18,63,156,63,236,230,233,104,133,63,182,63,231,203,253,219,35,35,155,191,155,249,66,184,156,98,167,191,96,166,92,119,138,36,150,63,4,208,118,36,47,215,147,63,68,50,47,191,241,165,140,191,23,178,51,245,233,7,120,191,249,216,229,58,194,214,124,63,181,201,157,233,116,50,73,63,26,229,227,98,52,4,102,191,73,194,243,252,152,102,54,63,102,116,133,225,91,28,72,63,102,42,67,122,107,21,49,191,215,0,175,166,232,84,32,191,246,60,219,222,8,214,22,63,39,213,155,251,120,106,213,62,18,63,59,53,208,114,241,190,241,48,103,35,255,65,201,62,99,86,185,120,152,179,185,62,237,205,201,237,15,7,167,190,250,234,219,185,115,19,79,62,222,120,200,112,245,228,104,62,224,217,165,58,124,249,71,190,11,208,46,220,112,199,13,62,63,34,173,161,185,142,73,63,119,11,65,199,235,154,133,63,187,69,220,118,138,60,176,63,248,177,91,44,16,39,204,63,127,172,54,128,167,64,222,63,181,115,245,29,41,137,227,63,116,233,160,137,218,34,215,63,28,205,155,162,179,209,193,191,242,59,40,47,19,234,212,191,38,170,250,228,231,32,145,191,145,217,158,34,164,56,205,63,26,30,140,98,64,103,164,63,246,21,21,133,18,230,195,191,66,38,82,52,94,79,153,191,47,127,129,68,202,47,186,63,106,212,225,192,214,17,119,63,46,198,154,214,36,154,175,191,249,35,25,228,12,16,120,63,162,236,169,224,224,136,160,63,164,12,209,56,35,0,130,191,241,5,204,112,177,72,140,191,11,147,6,23,35,136,123,63,232,34,186,79,70,27,114,63,239,30,232,22,240,86,109,191,138,88,30,43,166,63,75,191,130,75,116,129,209,208,86,63,145,191,87,124,83,12,12,191,123,70,27,77,252,60,57,191,39,4,120,195,193,157,26,63,109,246,159,149,36,194,17,63,13,80,92,180,67,116,3,191,197,52,236,67,217,90,210,190,179,65,72,44,59,95,222,62,116,193,102,46,123,250,176,190,134,53,5,186,152,249,166,190,119,74,25,32,12,173,145,62,134,131,161,251,67,175,235,61,229,53,18,103,154,124,83,190,184,54,188,68,194,107,49,62,149,167,196,227,155,155,244,189,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,182,191,205,59,127,102,158,160,182,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,182,63,205,59,127,102,158,160,182,191,217,108,223,204,118,248,144,63,217,108,223,204,118,248,144,191,57,242,238,204,217,28,191,191,57,242,238,204,217,28,191,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,57,242,238,204,217,28,191,63,57,242,238,204,217,28,191,191,217,108,223,204,118,248,144,191,217,108,223,204,118,248,144,63,205,59,127,102,158,160,198,191,205,59,127,102,158,160,214,63,217,108,223,204,118,248,240,63,205,59,127,102,158,160,214,63,205,59,127,102,158,160,198,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,214,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,214,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,217,108,223,204,118,248,160,63,217,108,223,204,118,248,176,191,205,59,127,102,158,160,198,191,3,23,183,25,188,222,218,63,24,236,34,192,222,209,239,63,3,23,183,25,188,222,218,63,205,59,127,102,158,160,198,191,217,108,223,204,118,248,176,191,217,108,223,204,118,248,160,63,0,0,0,0,0,0,0,0,192,10,31,0,198,72,124,191,192,10,31,0,198,72,140,63,137,47,231,76,168,10,168,63,225,16,235,12,193,147,187,191,119,67,126,54,88,190,197,191,175,7,185,121,72,163,220,63,194,243,33,144,152,239,238,63,175,7,185,121,72,163,220,63,119,67,126,54,88,190,197,191,225,16,235,12,193,147,187,191,137,47,231,76,168,10,168,63,192,10,31,0,198,72,140,63,192,10,31,0,198,72,124,191,0,0,0,0,0,0,0,0,104,41,27,64,173,191,88,63,104,41,27,64,173,191,104,191,20,26,29,160,57,132,138,191,65,127,32,72,47,156,157,63,182,148,234,244,157,34,171,63,67,90,121,227,212,68,193,191,43,106,125,204,90,248,196,191,77,23,58,62,197,154,221,63,243,107,225,45,218,115,238,63,77,23,58,62,197,154,221,63,43,106,125,204,90,248,196,191,67,90,121,227,212,68,193,191,182,148,234,244,157,34,171,63,65,127,32,72,47,156,157,63,20,26,29,160,57,132,138,191,104,41,27,64,173,191,104,191,104,41,27,64,173,191,88,63,0,0,0,0,0,0,0,0,205,59,127,102,158,160,214,191,217,108,223,204,118,248,240,63,217,108,223,204,118,248,240,63,205,59,127,102,158,160,214,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,198,63,217,108,223,204,118,248,224,63,217,108,223,204,118,248,224,63,205,59,127,102,158,160,198,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,217,108,223,204,118,248,176,63,70,35,79,51,178,116,201,191,83,84,175,153,138,204,195,191,24,236,34,192,222,209,239,63,24,236,34,192,222,209,239,63,83,84,175,153,138,204,195,191,70,35,79,51,178,116,201,191,217,108,223,204,118,248,176,63,192,10,31,0,198,72,140,191,16,72,23,128,148,54,165,63,3,23,183,25,188,222,170,63,81,107,172,9,184,37,209,191,150,96,71,179,128,98,178,191,194,243,33,144,152,239,238,63,194,243,33,144,152,239,238,63,150,96,71,179,128,98,178,191,81,107,172,9,184,37,209,191,3,23,183,25,188,222,170,63,16,72,23,128,148,54,165,63,192,10,31,0,198,72,140,191,104,41,27,64,173,191,104,63,14,95,20,240,193,143,130,191,141,234,18,168,88,60,145,191,68,250,20,206,45,29,179,63,230,52,171,77,224,10,160,63,224,192,46,237,48,70,211,191,182,148,234,244,157,34,155,191,243,107,225,45,218,115,238,63,243,107,225,45,218,115,238,63,182,148,234,244,157,34,155,191,224,192,46,237,48,70,211,191,230,52,171,77,224,10,160,63,68,250,20,206,45,29,179,63,141,234,18,168,88,60,145,191,14,95,20,240,193,143,130,191,104,41,27,64,173,191,104,63,221,62,229,236,27,70,70,191,38,239,171,241,148,180,96,63,71,140,227,24,33,186,116,63,237,248,227,205,31,29,149,191,98,133,236,84,42,231,140,191,242,115,181,168,229,96,185,63,147,165,27,88,208,48,137,63,80,74,35,116,6,126,212,191,98,110,18,144,53,203,96,63,151,73,36,204,228,37,238,63,151,73,36,204,228,37,238,63,98,110,18,144,53,203,96,63,80,74,35,116,6,126,212,191,147,165,27,88,208,48,137,63,242,115,181,168,229,96,185,63,98,133,236,84,42,231,140,191,237,248,227,205,31,29,149,191,71,140,227,24,33,186,116,63,38,239,171,241,148,180,96,63,221,62,229,236,27,70,70,191,119,22,134,86,64,94,163,63,120,245,36,129,254,107,152,191,204,221,29,135,225,81,188,191,37,139,145,78,94,39,216,63,113,240,117,189,78,73,235,63,37,139,145,78,94,39,216,63,204,221,29,135,225,81,188,191,120,245,36,129,254,107,152,191,119,22,134,86,64,94,163,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,236,53,198,158,133,176,191,56,107,217,75,62,213,164,191,252,157,12,24,6,194,218,63,22,130,250,47,70,59,233,63,252,157,12,24,6,194,218,63,56,107,217,75,62,213,164,191,68,236,53,198,158,133,176,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,23,13,181,221,81,164,63,222,199,75,21,25,71,128,63,40,30,147,124,173,226,171,191,142,221,212,157,101,30,214,63,166,252,111,95,184,146,231,63,142,221,212,157,101,30,214,63,40,30,147,124,173,226,171,191,222,199,75,21,25,71,128,63,99,23,13,181,221,81,164,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,60,79,248,48,143,139,63,6,236,164,83,193,19,102,191,175,252,35,243,153,127,193,191,52,2,92,129,236,239,183,191,69,192,78,216,241,131,222,63,51,134,125,9,193,200,236,63,69,192,78,216,241,131,222,63,52,2,92,129,236,239,183,191,175,252,35,243,153,127,193,191,6,236,164,83,193,19,102,191,10,60,79,248,48,143,139,63,0,0,0,0,0,0,0,0,120,168,110,120,56,70,95,63,183,178,116,20,25,93,95,191,13,34,71,138,254,101,145,191,199,28,140,60,38,113,136,63,185,179,14,84,151,118,169,63,43,54,240,241,132,199,179,191,70,233,230,146,67,20,184,191,101,92,43,138,83,238,218,63,223,35,227,16,246,109,234,63,101,92,43,138,83,238,218,63,70,233,230,146,67,20,184,191,43,54,240,241,132,199,179,191,185,179,14,84,151,118,169,63,199,28,140,60,38,113,136,63,13,34,71,138,254,101,145,191,183,178,116,20,25,93,95,191,120,168,110,120,56,70,95,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,219,31,132,220,134,139,141,63,120,106,23,163,35,161,141,63,175,39,10,4,32,39,180,191,92,90,123,155,28,171,164,191,121,164,157,48,10,190,218,63,4,236,213,220,248,72,232,63,121,164,157,48,10,190,218,63,92,90,123,155,28,171,164,191,175,39,10,4,32,39,180,191,120,106,23,163,35,161,141,63,219,31,132,220,134,139,141,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,211,241,165,83,255,84,170,191,117,124,233,212,63,149,206,63,58,190,116,234,159,74,227,63,139,131,22,43,192,106,209,63,211,241,165,83,255,84,170,191,178,56,104,177,2,172,134,191,110,150,65,232,60,187,135,63,35,72,3,39,25,6,158,191,106,224,194,100,55,100,168,191,23,35,127,68,45,121,209,63,153,120,230,84,204,99,226,63,186,128,101,166,26,223,210,63,85,82,73,211,27,177,171,191,14,61,74,174,126,132,165,191,21,27,43,88,114,37,145,63,55,209,161,165,160,64,112,63,120,63,41,144,79,31,85,191,137,227,93,131,10,178,64,191,148,192,231,142,112,249,101,191,13,42,198,83,114,138,118,63,234,24,163,231,71,251,144,63,179,116,228,158,221,207,167,191,214,158,255,43,8,33,166,191,204,126,204,21,18,86,210,63,87,133,191,127,12,246,225,63,195,84,255,52,21,100,211,63,36,166,79,60,139,254,169,191,145,169,138,35,230,203,173,191,196,49,17,80,64,5,153,63,159,223,134,53,91,255,134,63,55,18,127,192,2,23,122,191,180,109,99,224,142,211,93,191,21,87,106,136,184,228,73,63,36,192,219,35,221,154,53,63,253,105,3,154,194,80,10,191,33,141,187,116,120,167,249,190,49,109,82,226,226,172,68,63,122,5,217,83,200,224,82,191,157,43,32,187,218,70,117,191,137,13,200,195,51,69,135,63,156,8,125,242,238,81,147,63,234,0,81,255,243,107,173,191,49,194,88,63,90,77,164,191,110,128,28,95,114,203,210,63,27,80,94,64,54,179,225,63,248,14,240,33,119,168,211,63,152,195,199,37,41,31,168,191,200,112,108,37,242,106,177,191,99,79,122,148,45,123,156,63,227,37,182,127,87,41,146,63,23,109,228,80,104,7,134,191,139,24,174,43,93,99,112,191,127,165,160,161,10,187,101,63,24,30,162,80,201,88,77,63,141,29,122,183,182,75,59,191,159,100,54,98,76,24,40,191,167,12,193,13,89,28,7,63,47,141,69,175,209,39,247,62,50,49,209,181,198,85,195,190,97,45,75,175,4,45,181,190,165,149,56,113,249,167,35,191,115,230,120,199,232,157,48,63,56,207,85,71,110,60,89,63,77,197,241,80,227,23,104,191,124,235,237,195,29,88,125,191,97,70,234,55,14,243,144,63,44,55,188,157,166,101,148,63,163,166,229,212,187,163,176,191,133,13,42,199,200,215,162,191,191,142,245,212,0,20,211,63,160,41,248,16,48,133,225,63,160,125,19,9,33,210,211,63,147,233,25,213,198,117,166,191,123,167,76,143,229,27,179,191,156,19,191,170,54,229,157,63,59,180,69,153,185,168,151,63,17,233,93,41,251,156,140,191,192,157,223,69,93,135,122,191,166,99,166,68,93,149,115,63,42,6,108,245,157,43,92,63,43,210,250,188,22,64,83,191,58,62,4,199,138,139,61,191,36,117,133,112,13,250,43,63,24,65,106,244,88,4,26,63,38,3,65,220,11,144,254,190,90,84,54,144,181,138,239,190,114,224,13,83,142,243,197,62,183,26,216,104,237,115,184,62,20,133,139,47,94,210,126,190,180,191,91,7,200,58,114,190,215,214,159,116,233,210,2,63,217,12,106,72,139,23,14,191,79,2,111,32,246,241,60,191,8,7,8,102,32,75,73,63,35,68,209,163,12,128,100,63,164,139,149,107,253,91,116,191,132,37,233,94,149,182,129,191,170,92,95,204,64,119,149,63,143,27,167,78,231,215,148,63,255,63,12,13,241,10,178,191,179,34,40,255,139,167,161,191,205,160,198,118,56,69,211,63,234,129,174,46,17,99,225,63,112,27,105,3,39,238,211,63,19,46,223,25,165,9,165,191,174,183,234,193,69,82,180,191,224,70,111,204,239,77,158,63,154,241,15,189,48,39,156,63,49,20,241,171,32,158,144,191,25,39,130,180,186,81,130,191,155,117,141,26,93,199,123,63,153,197,22,195,143,88,102,63,185,205,63,122,96,206,97,191,6,181,115,91,125,209,74,191,45,167,225,153,128,214,65,63,57,207,15,239,104,36,46,63,106,235,64,32,44,167,28,191,231,173,62,58,140,232,11,191,159,145,186,22,79,87,242,62,255,17,51,134,55,124,227,62,123,239,209,33,174,88,193,190,47,211,185,190,67,176,179,190,245,60,113,92,44,105,133,62,100,200,141,117,127,161,121,62,201,82,190,118,132,198,57,190,42,128,180,19,171,31,48,190,59,60,115,102,223,31,226,190,188,247,178,159,76,191,235,62,241,13,2,190,146,58,32,63,63,20,222,131,83,158,42,191,215,121,138,64,244,23,75,191,184,191,134,175,87,101,88,63,40,157,210,243,162,249,107,63,20,42,108,222,62,201,124,191,20,180,238,224,252,252,131,191,37,128,212,213,36,71,153,63,83,28,227,75,225,243,148,63,150,24,170,183,146,27,179,191,236,144,164,115,118,170,160,191,125,61,131,88,199,104,211,63,202,30,213,191,125,72,225,63,113,121,213,122,68,2,212,63,246,252,132,248,114,210,163,191,124,243,230,217,126,59,181,191,37,21,144,223,169,50,158,63,15,94,197,220,183,218,159,63,241,171,63,83,176,54,146,191,95,208,28,174,239,23,135,191,238,125,33,106,34,116,129,63,51,238,20,216,39,118,111,63,8,103,124,155,216,191,106,191,180,83,85,104,9,223,84,191,143,117,26,239,47,159,80,63,4,153,48,29,196,218,58,63,37,94,181,36,88,26,49,191,168,46,49,212,115,27,31,191,106,155,21,162,6,141,13,63,144,244,53,83,54,250,253,62,134,19,51,95,52,28,229,190,53,57,129,80,81,12,215,190,153,171,191,225,79,192,183,62,15,49,63,138,141,121,171,62,105,12,172,57,159,163,131,190,126,110,63,161,189,210,119,190,220,236,211,210,19,41,69,62,28,154,123,46,27,183,58,62,244,22,6,80,62,63,246,189,90,96,4,22,67,16,237,189,146,175,171,38,41,134,193,62,140,148,159,18,54,233,201,190,163,201,181,119,159,231,1,191,167,20,182,202,236,250,11,63,183,46,89,22,199,52,49,63,79,151,4,100,121,229,60,191,154,160,105,98,212,168,84,191,112,115,164,230,211,30,99,63,28,216,230,127,233,92,113,63,211,14,220,207,242,115,130,191,62,238,165,230,237,176,133,191,243,202,225,138,38,130,156,63,197,75,201,106,200,223,148,63,196,95,46,163,97,241,179,191,69,0,93,185,234,167,159,191,73,221,91,10,171,131,211,63,180,138,200,235,11,51,225,63,97,20,101,35,99,17,212,63,228,190,209,93,141,198,162,191,123,144,133,106,10,241,181,191,219,238,222,141,91,210,157,63,109,120,57,22,31,120,161,63,111,163,251,108,48,77,147,191,4,162,13,173,90,126,139,191,157,22,121,93,188,113,132,63,110,229,164,130,254,118,116,63,136,23,5,34,227,212,113,191,220,162,142,34,15,121,93,191,127,233,102,26,137,230,89,63,217,90,12,173,90,199,68,63,34,207,217,159,28,216,63,191,70,249,43,136,69,153,43,191,162,166,164,182,242,214,32,63,240,255,227,3,67,58,16,63,202,184,238,34,111,192,254,190,138,196,228,254,74,42,240,190,10,4,100,110,235,209,215,62,189,226,132,95,153,172,202,62,224,182,69,86,28,67,174,190,82,232,237,245,159,212,161,190,155,229,53,170,250,42,126,62,149,9,58,72,157,140,114,62,83,136,174,198,57,20,70,190,40,86,213,155,26,40,60,190,31,114,192,42,139,16,5,62,76,192,5,151,135,184,251,61,134,78,220,55,108,162,179,189,44,6,107,214,235,142,170,189,113,216,217,47,249,255,160,190,121,232,89,83,23,108,168,62,83,146,100,90,113,131,227,62,62,47,253,253,183,87,237,190,69,25,38,227,63,54,21,191,41,183,124,107,254,228,32,63,0,174,109,233,6,8,61,63,10,57,240,167,59,235,72,191,68,176,25,11,248,12,92,191,129,27,38,213,5,161,106,63,32,97,209,55,192,86,116,63,198,68,232,100,140,68,134,191,255,140,47,159,210,247,134,191,251,38,88,65,84,68,159,63,215,217,159,150,86,176,148,63,233,235,79,79,120,157,180,191,175,154,58,166,130,54,158,191,51,156,230,190,183,152,211,63,83,188,32,174,70,33,225,63,34,228,242,118,38,29,212,63,25,201,54,39,191,221,161,191,177,195,153,241,74,130,182,191,55,240,254,15,95,78,157,63,214,56,133,183,14,197,162,63,216,242,191,120,100,7,148,191,10,182,29,111,3,129,143,191,217,76,188,62,111,232,134,63,12,38,114,107,180,52,121,63,216,34,142,171,120,13,118,191,110,121,233,102,33,115,99,191,195,18,50,75,163,8,98,63,33,208,186,252,89,107,77,63,106,89,141,2,146,99,73,191,9,223,202,118,124,113,53,191,133,154,206,45,207,57,47,63,95,161,100,196,219,206,28,63,56,32,58,83,32,239,16,191,149,232,122,186,178,26,1,191,151,112,28,212,110,37,240,62,73,123,213,193,11,133,225,62,30,55,37,202,50,159,202,190,182,178,27,136,84,132,190,190,69,155,114,50,58,131,162,62,131,97,8,177,194,52,150,62,1,255,223,72,24,16,117,190,158,125,2,55,199,65,106,190,254,69,125,99,181,202,66,62,70,41,62,60,145,55,56,62,129,19,51,151,137,160,8,190,234,77,146,78,216,85,0,190,175,3,153,214,231,14,197,61,26,71,137,137,181,168,188,61,250,56,6,227,40,158,113,189,0,66,248,190,227,134,104,189,154,178,221,184,65,137,128,62,66,1,53,71,241,46,135,190,35,163,219,169,129,16,197,190,106,206,19,220,169,176,206,62,145,232,117,176,225,140,249,62,133,198,115,95,80,132,3,191,165,193,27,81,172,160,35,191,198,33,38,44,2,213,47,63,193,10,166,143,105,110,69,63,114,242,82,251,239,198,82,191,181,79,97,23,204,176,97,191,249,173,59,217,75,50,113,63,102,118,145,159,55,238,118,63,227,0,251,245,135,206,137,191,151,10,222,239,250,236,135,191,28,30,18,116,65,210,160,63,17,255,105,40,92,113,148,63,17,124,148,184,237,42,181,191,69,32,227,200,41,244,156,191,198,142,157,22,166,169,211,63,177,195,247,233,61,18,225,63,69,76,6,166,140,38,212,63,75,135,204,51,131,17,161,191,40,59,58,165,22,249,182,191,78,119,97,114,19,185,156,63,233,177,55,46,17,225,163,63,204,17,106,57,169,127,148,191,23,245,94,197,72,146,145,191,159,40,225,230,180,234,136,63,196,136,85,226,249,216,125,63,199,7,23,240,102,238,121,191,133,156,68,191,21,111,104,191,207,11,3,84,161,73,103,63,101,116,187,198,37,148,83,63,142,188,132,77,191,62,82,191,174,111,25,36,46,148,62,191,67,145,239,147,121,67,57,63,52,191,66,96,139,148,38,63,207,251,35,42,164,63,31,191,226,55,119,171,93,104,14,191,198,166,121,85,126,82,1,63,186,168,99,177,92,50,242,62,75,132,50,144,122,25,225,190,144,239,195,245,67,21,211,190,94,131,101,145,1,160,189,62,198,46,71,64,114,89,177,62,45,229,3,67,21,26,150,190,193,83,246,43,69,246,138,190,103,194,109,202,137,197,107,62,27,1,117,119,199,138,97,62,149,139,103,6,99,137,60,190,12,123,130,54,72,149,50,190,110,120,87,144,199,0,7,62,27,171,34,12,31,198,254,61,178,139,65,20,2,67,203,189,87,46,106,69,210,172,194,189,149,93,180,190,73,27,133,61,157,221,49,59,8,138,125,61,114,244,241,11,223,2,48,189,158,123,216,109,66,215,38,189,33,105,139,216,18,31,96,190,33,6,116,159,155,33,102,62,89,242,84,30,185,144,166,62,110,19,205,181,251,1,176,190,12,153,62,19,169,53,222,190,132,240,173,229,94,77,230,62,34,65,220,36,29,189,9,63,255,135,137,15,31,245,19,191,238,113,213,149,36,86,47,191,169,72,208,101,101,216,57,63,9,146,92,57,217,2,77,63,184,145,108,246,18,234,89,191,176,54,214,107,46,57,101,191,137,41,231,235,7,24,117,63,225,225,189,226,98,44,121,63,216,82,77,98,181,17,141,191,176,29,73,167,69,164,136,191,25,99,209,58,97,218,161,63,46,195,43,210,213,41,148,63,6,56,22,140,64,161,181,191,82,24,80,185,177,215,155,191,103,119,153,77,145,183,211,63,31,233,42,56,79,5,225,63,142,70,179,191,56,46,212,63,64,81,184,33,193,92,160,191,120,114,73,87,2,92,183,191,176,41,176,135,220,28,156,63,92,72,225,179,221,213,164,63,247,159,217,25,108,200,148,191,163,218,235,197,126,56,147,191,186,85,210,255,77,139,138,63,122,169,24,162,218,41,129,63,20,124,183,70,215,109,125,191,201,143,11,200,108,146,109,191,124,68,247,36,226,131,108,63,182,78,156,63,156,229,88,63,83,168,167,54,238,94,88,191,49,44,95,200,124,136,68,191,152,55,101,77,170,147,66,63,139,182,14,209,179,70,48,63,59,4,167,33,239,134,41,191,23,146,97,102,150,18,24,191,195,250,103,255,63,209,15,63,42,27,85,247,217,49,0,63,187,138,223,20,56,248,241,190,227,133,90,46,74,133,227,190,53,148,255,139,202,63,210,62,97,139,143,109,220,226,196,62,66,222,51,197,117,117,176,190,194,174,23,185,28,170,163,190,119,100,108,58,128,251,137,62,12,125,85,128,47,26,128,62,254,217,98,102,173,164,97,190,21,132,96,68,243,147,86,190,18,116,104,44,192,44,52,62,174,202,233,254,117,141,42,62,224,52,112,42,162,223,2,190,29,21,60,170,94,119,249,189,116,189,134,122,101,185,203,61,149,216,4,226,0,32,195,61,145,119,127,74,50,248,141,189,184,198,183,107,103,23,133,189,87,217,39,4,152,48,69,61,114,161,213,12,115,94,62,61,175,96,215,119,252,101,237,188,185,199,112,233,64,106,229,188,18,171,161,186,118,126,63,62,113,171,108,229,30,57,69,190,218,159,214,242,154,5,136,190,45,37,102,208,114,168,144,62,207,105,204,145,250,150,193,62,28,165,229,225,197,61,201,190,36,112,59,136,180,117,240,190,111,17,1,55,240,156,248,62,187,255,65,51,9,27,22,63,1,61,102,92,225,98,33,191,196,136,132,212,181,174,54,191,13,72,130,222,214,2,67,63,201,213,205,15,143,124,82,63,188,45,104,72,104,209,96,191,35,206,42,222,13,145,104,191,126,96,172,156,237,238,120,63,60,157,189,43,191,27,123,63,186,233,40,162,196,8,144,191,192,130,247,133,64,44,137,191,209,132,151,80,163,193,162,63,173,109,210,51,2,222,147,63,188,17,126,208,174,5,182,191,220,111,159,48,58,218,154,191,114,242,208,161,55,195,211,63,195,245,218,86,8,250,224,63,157,185,15,48,152,52,212,63,0,142,60,9,249,118,159,191,35,19,149,171,159,175,183,191,68,170,71,138,175,127,155,63,175,174,147,55,216,170,165,63,94,89,85,31,172,238,148,191,180,36,209,39,142,183,148,191,27,39,147,188,7,219,139,63,10,170,97,55,20,78,131,63,115,97,182,233,214,69,128,191,26,33,235,119,205,98,113,191,161,119,180,47,217,202,112,63,196,180,253,206,105,145,94,63,81,236,137,4,70,218,94,191,198,218,0,37,22,97,74,191,26,231,255,89,130,121,73,63,69,53,99,43,179,26,54,63,162,115,255,113,141,23,51,191,87,168,25,176,14,146,33,191,208,26,226,121,228,42,26,63,194,148,2,27,204,226,9,63,23,226,216,105,198,111,0,191,236,140,52,121,14,99,241,190,120,46,169,70,71,220,226,62,58,190,186,104,135,24,213,62,53,177,18,107,134,156,195,190,151,124,221,222,107,246,182,190,254,11,122,9,27,74,162,62,112,50,129,165,190,65,150,62,21,4,75,8,78,61,126,190,231,202,155,101,44,6,115,190,25,150,182,184,227,220,85,62,174,5,216,59,137,83,76,62,163,12,101,168,76,50,43,190,17,164,102,171,236,20,34,190,144,34,168,48,98,127,252,61,77,125,143,250,30,100,243,61,41,53,83,164,146,114,200,189,11,34,168,166,66,252,192,189,155,86,99,124,68,123,144,61,116,221,51,58,53,86,135,61,220,147,214,226,228,94,80,189,139,235,30,161,72,148,71,189,83,174,185,90,185,75,5,61,177,255,157,25,144,39,255,60,177,59,108,148,87,54,171,188,5,240,33,118,215,48,164,188,128,37,246,247,27,208,30,190,147,98,54,224,189,109,36,62,107,198,120,161,96,112,105,62,3,194,60,8,160,75,113,190,41,57,248,152,185,57,164,190,112,210,236,104,173,83,172,62,196,148,145,53,137,158,212,62,174,56,72,155,126,233,221,190,163,253,226,136,102,71,254,190,59,144,169,8,51,234,6,63,231,24,52,150,119,13,33,63,76,106,173,232,236,48,43,191,94,35,100,102,116,164,62,191,55,90,68,135,67,20,74,63,65,78,254,8,93,140,86,63,82,78,247,68,99,223,100,191,211,126,242,103,80,177,107,191,209,205,172,51,43,171,124,63,136,224,103,171,137,198,124,63,132,50,6,159,129,105,145,191,241,35,170,240,176,143,137,191,252,219,74,35,161,141,163,63,60,77,19,87,129,144,147,63,158,137,143,187,254,91,182,191,156,193,244,127,129,246,153,191,235,203,115,137,29,205,211,63,156,231,109,67,22,240,224,63,47,67,102,33,247,57,212,63,225,225,67,22,34,85,158,191,250,80,173,230,51,247,183,191,202,180,181,185,246,228,154,63,154,200,34,145,177,101,166,63,204,148,158,167,174,251,148,191,52,133,175,144,194,19,150,191,17,46,103,149,42,232,140,63,82,233,30,224,40,87,133,63,254,248,29,219,112,166,129,191,145,17,246,138,98,251,115,191,181,103,137,242,3,53,115,63,13,39,205,30,120,64,98,63,73,33,223,177,2,193,98,191,164,104,39,51,68,96,80,191,134,83,184,138,111,145,80,63,119,110,161,24,172,182,60,63,175,224,121,32,106,185,58,191,45,5,87,240,146,43,40,191,115,79,205,101,131,211,35,63,27,77,57,189,51,34,19,63,152,108,152,132,102,44,11,191,75,111,175,123,217,6,252,190,225,187,49,248,82,49,241,62,241,172,121,243,84,204,226,62,21,43,209,224,243,253,211,190,29,100,73,108,94,242,198,190,24,89,178,144,210,52,181,62,248,192,25,99,161,89,169,62,105,100,77,132,219,87,148,190,46,134,51,241,105,46,137,190,103,199,29,127,34,123,113,62,134,177,151,188,12,79,102,62,26,232,61,108,193,158,74,190,63,54,48,137,103,115,65,190,200,177,144,140,82,186,33,62,189,56,203,222,66,207,23,62,122,110,249,94,103,82,244,189,122,205,173,177,1,228,235,189,63,35,91,200,210,162,195,61,238,9,185,251,54,123,187,61,111,9,145,121,221,23,143,189,7,232,231,155,197,37,134,189,212,200,28,51,34,93,83,61,105,42,181,97,13,9,76,61,162,122,111,20,16,201,17,189,16,29,106,236,90,34,10,189,202,15,19,187,181,106,197,60,63,122,202,136,178,230,191,60,150,87,19,224,98,92,105,188,98,108,164,241,73,32,99,188,231,178,145,214,118,48,254,61,52,113,235,56,213,185,3,190,7,124,18,129,12,210,74,190,175,157,213,53,139,235,81,62,8,110,42,2,8,2,135,62,214,215,79,98,151,141,143,190,248,150,17,146,141,97,185,190,193,16,209,99,33,241,193,62,245,43,19,189,56,58,228,62,124,9,161,106,210,166,237,190,10,144,180,147,179,207,8,191,87,222,118,185,39,255,18,63,49,122,117,48,210,92,40,63,157,92,145,199,151,173,51,191,39,30,151,190,211,170,67,191,86,24,68,230,64,252,80,63,158,179,248,231,161,155,90,63,69,72,220,201,182,10,105,191,228,98,240,244,140,151,110,191,135,239,158,2,218,34,128,63,94,40,139,221,20,54,126,63,192,31,184,13,205,173,146,191,158,136,218,51,167,214,137,191,204,65,251,151,204,66,164,63,41,10,80,181,246,66,147,63,197,220,159,72,249,166,182,191,135,73,181,247,111,40,153,191,243,110,198,14,162,213,211,63,122,173,194,12,59,231,224,63,89,32,142,57,140,62,212,63,39,121,144,224,252,78,157,191,58,103,189,20,38,53,184,191,124,161,51,89,157,78,154,63,188,19,134,221,217,10,167,63,31,250,98,229,36,246,148,191,3,80,89,201,14,81,151,191,93,12,27,59,143,190,141,63,44,163,136,234,149,68,135,63,39,214,69,142,99,220,130,191,197,6,33,250,96,140,118,191,156,220,28,163,119,122,117,63,98,32,21,106,27,80,101,63,196,72,227,240,152,24,102,191,68,170,128,28,200,201,83,191,254,182,56,215,210,175,84,63,176,92,146,64,40,5,66,63,25,138,35,46,136,196,65,191,82,116,245,128,145,201,47,191,209,104,51,87,106,53,44,63,79,19,0,187,179,172,26,63,120,11,79,41,44,205,20,191,69,209,188,184,101,246,4,191,35,154,57,88,68,138,252,62,150,17,161,181,237,133,238,62,79,69,101,13,31,44,226,190,78,33,3,119,145,115,212,190,144,86,117,173,254,94,197,62,148,130,18,237,133,26,185,62,232,51,96,175,248,14,167,190,138,54,226,28,150,23,156,190,126,117,240,176,8,169,134,62,15,161,153,182,81,127,124,62,124,51,222,157,98,31,100,190,201,218,134,225,118,6,90,190,132,152,98,230,191,0,64,62,223,245,111,194,127,56,53,62,28,90,149,104,167,142,22,190,123,81,157,196,42,151,14,190,210,179,114,215,130,210,235,61,237,108,90,28,85,64,227,61,23,224,75,117,155,141,189,189,69,73,14,10,14,212,180,189,186,66,156,187,237,122,138,61,219,3,18,98,94,250,130,61,38,215,15,178,55,117,83,189,184,120,250,50,79,82,76,189,234,46,57,155,86,131,22,61,145,208,51,114,221,157,16,61,213,10,189,0,251,57,211,188,206,234,240,152,171,192,204,188,4,18,141,146,65,140,133,60,222,96,8,143,122,78,128,60,226,175,243,63,115,197,39,188,16,228,113,251,180,48,34,188,142,168,147,58,114,157,221,189,46,192,120,60,45,25,227,61,70,27,211,178,118,43,44,62,18,179,86,72,77,136,50,190,102,195,154,100,246,238,105,190,138,253,60,184,33,117,113,62,138,21,246,17,9,199,158,62,112,52,174,249,74,71,165,190,78,163,32,90,39,117,202,190,205,19,0,189,160,223,210,62,109,40,147,22,121,141,241,62,176,22,94,197,163,253,249,190,251,163,129,109,37,179,18,191,213,151,116,64,4,245,28,63,33,128,107,216,127,110,48,63,125,8,194,212,213,224,58,191,74,148,215,129,255,71,72,191,22,201,112,108,61,68,85,63,35,8,254,233,247,154,94,63,164,105,148,112,129,67,109,191,121,72,24,237,26,162,112,191,79,62,190,178,89,221,129,63,37,213,136,208,148,114,127,63,204,247,75,221,88,216,147,191,12,239,62,137,62,7,138,191,31,213,190,122,180,228,164,63,67,191,161,5,104,246,146,63,139,159,120,224,183,232,182,191,203,51,125,157,200,108,152,191,3,85,10,36,11,221,211,63,105,30,26,108,71,223,224,63,87,10,190,177,127,66,212,63,47,176,7,78,131,96,156,191,247,241,238,30,68,107,184,191,125,192,224,64,169,189,153,63,119,62,37,18,210,157,167,63,230,120,176,146,241,226,148,191,21,45,145,31,250,114,152,191,234,115,80,21,236,103,142,63,164,114,240,171,195,22,137,63,137,255,109,118,195,235,131,191,164,22,158,186,16,17,121,191,183,16,103,222,94,152,119,63,13,66,140,125,12,111,104,63,23,238,163,63,219,101,105,191,239,210,88,179,200,99,87,191,234,230,2,59,184,1,89,63,2,115,169,89,119,2,70,63,248,98,157,173,130,175,70,191,12,220,87,35,248,46,52,191,164,61,153,202,124,24,51,63,90,143,97,30,159,197,33,63,135,186,142,119,43,254,29,191,138,119,250,92,196,155,13,191,140,144,65,14,236,8,6,63,209,215,190,249,111,19,247,62,186,17,194,153,169,69,238,190,68,69,246,50,70,181,224,190,199,21,116,127,65,97,211,62,224,148,99,213,235,95,198,62,198,243,16,188,44,3,183,190,190,171,43,55,77,154,171,190,20,118,37,209,137,50,153,62,141,5,217,239,23,61,143,62,254,147,150,0,207,72,121,190,47,244,100,243,168,34,112,190,110,150,38,53,188,24,87,62,112,255,224,240,53,64,78,62,236,168,140,188,38,16,51,190,10,86,180,59,208,141,41,190,43,161,17,51,21,48,12,62,124,226,75,166,236,74,3,62,222,195,0,5,20,122,226,189,158,69,162,223,20,199,217,189,8,24,39,124,55,53,181,61,236,17,105,10,217,26,174,61,217,101,19,85,101,250,132,189,36,245,170,39,50,65,126,189,85,186,205,138,119,132,81,61,224,125,10,99,100,162,73,61,168,195,13,78,221,2,24,189,201,145,8,144,78,206,17,189,169,67,22,0,233,238,217,60,61,9,231,25,163,120,211,60,109,12,93,145,40,177,148,188,247,110,104,170,103,110,143,188,156,149,49,159,124,175,69,60,150,202,14,206,162,165,64,60,118,73,18,27,246,99,230,187,66,212,192,175,40,92,225,187,205,192,160,194,95,21,189,61,252,131,29,245,139,136,194,189,221,243,157,95,86,125,13,190,251,51,46,76,7,34,19,62,129,33,195,78,171,255,76,62,96,17,175,2,79,52,83,190,66,172,27,154,135,107,130,190,195,75,161,132,214,250,136,62,220,10,176,170,57,253,176,62,217,88,122,14,225,173,183,190,111,42,172,219,155,62,216,190,198,251,188,165,134,114,225,62,210,37,204,36,28,218,251,62,88,250,38,15,113,210,4,191,11,105,255,12,168,118,26,191,123,201,236,154,74,182,36,63,175,3,46,150,105,52,53,63,3,237,86,190,148,141,65,191,68,203,30,194,173,19,77,191,74,228,105,236,8,208,89,63,59,178,144,246,198,63,97,63,47,190,198,167,199,190,112,191,59,144,18,190,180,220,113,191,219,51,103,11,61,132,131,63,67,206,233,139,144,65,128,63,217,178,125,236,172,235,148,191,108,1,252,187,35,38,138,191,183,184,131,62,56,118,165,63,91,77,123,124,118,171,146,63,168,72,243,35,215,34,183,191,85,25,66,8,242,192,151,191,248,83,89,102,141,227,211,63,198,32,221,151,22,216,224,63,182,24,96,204,239,69,212,63,249,8,150,30,112,134,155,191,132,27,200,159,239,154,184,191,30,158,254,85,149,50,153,63,51,186,169,153,102,33,168,63,19,165,42,84,175,197,148,191,236,25,52,30,160,124,153,191,251,147,100,5,46,236,142,63,23,28,45,223,165,206,138,63,151,56,157,89,164,216,132,191,201,178,60,163,42,134,123,191,226,209,57,126,255,141,121,63,127,14,200,25,24,150,107,63,173,205,146,73,130,158,108,191,65,230,39,9,131,37,91,191,99,158,117,150,153,115,93,63,171,217,200,216,220,74,74,63,73,5,109,115,94,8,76,191,27,198,86,171,203,236,56,191,195,84,145,168,135,215,56,63,111,115,247,77,230,217,38,63,39,253,180,124,59,156,36,191,227,180,140,49,4,253,19,191,254,87,70,203,120,16,16,63,24,251,65,78,124,127,0,63,101,185,33,43,65,139,247,190,29,160,214,230,167,129,233,190,163,128,108,205,34,49,224,62,198,152,122,36,223,96,210,62,103,188,65,169,179,211,196,190,231,91,74,242,229,153,184,190,242,225,90,51,13,240,168,62,105,158,138,214,203,124,158,62,254,212,145,200,130,168,139,190,103,106,52,43,123,108,129,190,18,4,94,254,149,67,108,62,45,247,46,32,182,73,98,62,122,11,178,49,3,118,74,190,105,233,25,123,91,137,65,190,50,255,119,225,85,141,38,62,25,49,92,238,153,139,30,62,65,132,6,192,3,95,1,190,164,34,239,55,126,254,247,189,43,74,40,193,71,251,215,61,81,201,181,104,117,220,208,61,177,164,93,189,123,94,173,189,226,26,94,168,91,253,164,189,179,220,146,180,138,130,127,61,240,111,149,253,85,220,118,61,31,167,86,178,132,39,77,189,192,47,101,234,87,114,69,189,101,92,213,238,208,201,22,61,44,57,135,103,198,250,16,61,156,9,205,226,214,66,221,188,132,17,182,232,5,16,214,188,7,97,101,242,218,160,157,60,153,209,128,192,73,150,150,60,69,190,116,166,51,46,86,188,196,53,61,206,106,21,81,188,73,137,192,204,203,211,5,60,191,218,73,206,54,249,0,60,7,127,125,34,207,45,165,187,179,4,247,104,21,158,160,187,225,43,212,75,223,150,156,189,216,56,52,77,109,5,162,61,171,135,132,124,72,200,238,61,200,154,143,144,221,184,243,189,11,46,164,250,175,25,48,190,235,133,118,196,218,3,53,62,169,77,13,24,194,204,101,62,194,218,223,201,75,15,109,190],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([66,133,58,148,243,120,149,190,90,216,242,147,34,83,157,62,55,25,37,46,162,101,192,62,14,140,132,208,241,7,199,190,80,246,222,162,111,52,228,190,126,97,74,175,49,84,237,62,223,93,134,12,33,164,4,63,94,217,204,129,114,39,15,191,50,72,42,80,8,212,33,191,87,185,179,64,41,51,44,63,90,102,40,24,81,108,58,63,30,6,153,216,223,32,70,191,93,81,194,182,146,253,80,191,160,114,50,110,139,143,94,63,228,214,152,58,11,33,99,63,66,12,166,97,212,215,114,191,33,135,103,86,24,253,114,191,240,50,178,27,97,23,133,63,204,154,49,129,230,182,128,63,143,118,242,177,25,234,149,191,127,152,177,116,244,54,138,191,217,200,41,247,174,249,165,63,255,240,237,75,130,98,146,63,37,161,112,20,153,86,183,191,136,115,82,58,207,34,151,191,207,77,211,42,81,233,211,63,45,119,36,116,139,209,224,63,54,227,222,187,243,72,212,63,109,144,237,19,20,190,154,191,53,110,138,216,59,197,184,191,195,9,161,15,136,173,152,63,212,19,177,227,217,151,168,63,182,183,241,39,13,161,148,191,131,78,119,63,184,112,154,191,120,219,31,254,202,81,143,63,225,238,135,228,125,109,140,63,80,146,196,37,226,166,133,191,154,127,69,108,128,233,125,191,55,185,197,119,253,91,123,63,46,1,3,148,76,191,110,63,173,86,59,147,82,187,111,191,166,121,31,231,227,6,95,191,191,16,93,16,112,250,96,63,199,151,186,9,8,214,78,63,184,31,197,246,237,220,80,191,30,12,168,164,113,22,62,191,96,37,51,167,199,71,63,63,136,142,96,15,215,140,44,63,93,238,216,106,166,61,43,191,226,174,123,128,232,7,26,191,206,129,120,155,135,92,22,63,146,150,101,47,143,143,6,63,181,15,214,141,214,84,1,191,193,134,98,136,82,113,242,190,198,18,247,65,136,89,233,62,171,247,238,233,246,75,220,62,162,78,221,185,37,115,209,190,109,191,117,52,117,77,196,190,196,46,33,203,29,136,182,62,155,208,52,231,133,43,171,62,138,233,40,184,228,44,155,190,90,69,189,152,140,231,144,190,111,3,255,12,119,123,126,62,205,58,179,80,43,126,115,62,177,60,86,180,88,167,95,190,95,229,45,207,162,191,84,190,142,119,105,254,232,71,62,62,22,209,174,131,201,75,52,62,231,170,28,208,127,138,26,190,48,205,58,4,12,39,18,190,214,149,89,55,245,46,245,61,197,113,213,100,220,131,237,61,39,225,83,196,208,146,206,189,21,94,112,77,66,169,197,189,169,248,207,221,24,200,163,61,199,117,67,229,181,119,156,61,236,143,198,87,136,184,118,189,25,75,15,4,101,149,112,189,151,11,137,69,148,224,70,61,121,114,113,193,90,235,64,61,105,209,242,175,194,224,19,189,208,177,162,137,137,195,13,189,35,171,160,230,227,51,221,60,93,213,1,245,213,28,214,60,81,105,244,59,171,161,161,188,116,208,164,159,71,252,154,188,55,14,165,166,19,205,96,60,43,158,89,88,51,248,89,60,113,193,31,94,200,176,23,188,129,35,213,91,168,122,18,188,148,254,135,244,193,248,197,59,189,180,249,183,140,73,193,59,54,119,85,153,77,27,100,187,43,240,139,33,212,229,95,187,17,202,72,71,221,232,222,63,132,241,227,214,189,196,234,63,19,91,107,11,191,176,204,63,221,214,146,193,125,144,192,191,233,15,81,110,121,74,213,63,195,119,125,36,14,210,233,63,92,50,241,11,162,110,221,63,86,169,197,133,10,72,193,191,180,132,13,181,122,223,181,191,27,154,47,55,46,9,162,63,23,72,138,214,139,127,160,63,194,191,133,217,27,208,137,191,253,94,201,182,115,102,185,191,178,238,190,36,26,16,211,63,191,24,177,84,58,184,233,63,78,243,214,247,251,216,223,63,187,53,40,152,198,88,158,191,234,144,45,195,97,101,179,191,72,204,100,57,0,2,148,63,130,124,22,28,184,155,149,191,115,12,29,158,38,113,198,191,18,163,54,117,36,0,145,63,193,245,76,64,142,73,228,63,89,129,126,226,39,38,231,63,141,0,171,191,219,133,201,63,147,130,208,129,103,9,164,191,91,171,123,128,91,58,158,63,96,214,144,42,51,253,155,63,183,57,68,178,162,243,127,191,46,185,82,41,82,246,92,63,14,249,215,172,46,230,166,63,158,141,86,78,212,144,149,191,72,143,212,104,95,152,178,191,243,72,171,185,162,160,213,63,140,174,182,49,91,52,233,63,16,61,197,230,117,109,223,63,131,12,214,20,81,188,168,191,167,4,162,148,153,52,190,191,249,22,186,199,141,152,108,63,110,203,68,142,48,140,143,63,217,136,56,89,123,7,133,63,115,175,39,233,11,109,112,63,247,98,45,23,82,153,187,191,30,125,204,102,17,237,193,191,179,223,65,107,232,120,210,63,74,15,18,121,134,145,232,63,191,108,39,53,191,39,225,63,107,5,204,208,30,220,145,63,192,69,245,58,253,94,169,191,150,202,57,98,106,97,177,63,64,29,70,108,117,63,159,63,246,216,223,238,15,225,137,191,123,71,247,245,12,41,81,191,229,213,170,59,44,248,101,63,3,113,178,183,6,247,94,63,108,96,58,180,41,218,51,191,231,194,120,36,74,159,142,191,205,208,210,42,136,51,111,63,252,127,110,39,130,40,169,63,243,87,74,45,78,223,155,191,209,253,171,23,165,152,170,191,144,10,231,24,4,83,215,63,209,17,79,167,180,222,232,63,244,49,241,181,152,206,222,63,177,145,159,194,56,95,175,191,173,2,182,49,119,87,194,191,179,124,62,84,7,41,127,63,94,60,48,171,86,58,160,63,231,128,76,81,188,195,65,191,107,102,131,188,112,181,107,191,158,78,190,45,196,133,81,63,189,132,8,25,55,2,63,191,196,245,148,90,83,5,133,191,252,146,52,193,206,36,130,63,182,77,186,245,168,200,175,63,179,151,184,164,223,171,146,191,16,195,248,213,188,132,200,191,25,190,30,77,60,15,162,63,45,245,51,144,60,193,227,63,24,190,139,77,3,249,230,63,197,148,230,183,183,143,206,63,141,167,172,103,118,240,171,191,0,166,222,180,112,30,67,63,47,46,227,72,69,243,158,63,119,80,150,46,26,156,135,191,103,156,156,92,85,46,139,191,191,118,14,83,25,79,68,63,152,155,145,151,221,243,86,63,49,206,95,215,68,26,62,191,47,118,33,233,64,231,13,63,91,26,87,165,74,208,114,63,188,46,84,167,115,91,74,191,128,68,57,227,236,215,148,191,44,119,96,202,242,156,119,63,0,211,18,228,240,152,169,63,218,227,54,48,0,97,160,191,216,112,72,36,223,49,162,191,26,55,135,30,158,144,216,63,133,97,94,131,211,159,232,63,191,14,21,13,46,48,222,63,98,171,28,15,58,37,178,191,134,219,218,251,78,106,196,191,201,2,3,149,237,198,135,63,207,120,252,108,198,131,167,63,148,66,210,144,66,2,88,191,143,109,81,142,135,178,129,191,191,4,210,197,204,17,25,63,0,254,174,152,145,60,73,63,90,236,67,154,61,8,64,63,208,199,138,132,226,249,28,63,104,91,130,44,252,43,122,191,206,247,66,201,149,105,96,191,100,231,101,249,30,4,166,63,14,57,238,21,124,14,162,63,254,211,145,96,84,130,194,191,200,30,170,216,32,50,202,191,166,85,250,120,159,108,206,63,65,188,69,111,249,94,231,63,171,164,227,33,3,78,226,63,179,186,108,117,254,225,184,63,121,9,177,69,113,97,151,191,162,141,206,225,255,233,177,63,168,16,183,116,145,246,162,63,68,35,117,236,165,168,152,191,45,230,144,157,101,48,132,191,171,8,4,191,216,172,122,63,108,194,230,224,117,71,67,63,145,218,109,153,117,106,92,191,152,122,182,148,16,87,4,191,119,157,19,83,8,130,38,63,65,240,12,69,122,120,39,191,197,114,143,173,69,10,243,190,214,236,112,108,238,64,99,63,247,155,77,57,121,41,52,63,176,67,58,179,70,225,141,191,207,53,199,201,205,85,101,191,146,196,148,104,130,152,173,63,216,5,93,220,132,86,143,63,221,55,107,254,180,206,197,191,82,1,15,83,155,13,180,191,104,169,230,142,140,157,221,63,242,33,133,183,107,110,232,63,35,242,143,7,89,135,217,63,15,121,210,48,183,177,150,191,249,232,58,39,199,90,162,191,242,37,121,23,8,46,169,63,173,98,3,139,182,240,126,63,171,66,25,47,81,205,152,191,85,201,39,200,100,21,87,191,195,128,99,166,39,95,126,63,11,110,19,63,251,158,39,63,168,36,250,52,73,29,86,191,175,39,226,252,151,207,231,190,220,161,3,192,253,89,29,63,120,119,109,230,119,118,18,63,122,86,166,249,90,89,3,63,235,14,169,56,62,163,71,191,106,117,111,85,95,21,59,63,122,237,242,244,131,62,119,63,38,11,249,14,199,115,88,191,197,111,174,224,103,63,149,191,0,141,167,227,135,10,146,63,82,172,168,23,0,202,183,63,6,90,6,214,23,16,130,63,4,227,170,81,148,251,193,191,38,87,232,66,12,56,188,63,18,180,160,124,69,160,228,63,153,171,70,192,126,67,230,63,230,32,113,57,100,78,201,63,207,36,199,221,55,214,191,191,143,150,237,95,162,151,174,191,120,217,5,233,240,99,140,63,160,196,122,202,237,159,145,191,138,218,218,87,180,179,148,191,31,206,217,189,162,177,117,63,179,134,152,190,209,211,126,63,98,75,71,249,227,103,38,191,172,135,63,212,254,156,82,191,48,124,25,194,193,188,2,191,55,84,71,245,10,225,17,63,186,7,248,104,168,100,7,63,27,95,131,238,151,68,244,62,181,253,33,22,124,217,67,191,21,171,138,156,82,49,19,191,16,205,21,88,219,144,114,63,209,208,223,236,108,153,80,63,207,101,19,76,230,231,147,191,12,34,8,237,221,95,99,191,103,176,161,0,57,224,177,63,253,112,213,201,40,133,154,63,70,212,40,144,203,122,196,191,196,48,82,57,213,192,173,191,78,133,200,176,230,107,222,63,62,183,30,178,185,81,232,63,93,34,100,183,54,42,217,63,132,8,251,48,55,21,162,191,55,164,20,219,68,130,173,191,53,12,157,4,110,42,163,63,113,175,217,120,115,136,113,63,143,143,218,1,157,229,157,191,252,69,103,149,21,143,102,191,0,20,245,113,164,142,132,63,153,251,11,230,116,4,56,63,61,176,90,59,123,33,101,191,37,148,70,198,211,122,16,191,36,153,91,47,164,28,58,63,170,214,14,170,201,130,231,62,240,238,155,138,221,34,251,190,2,204,138,228,140,13,254,62,65,82,6,12,218,197,246,62,111,139,107,183,68,91,58,191,24,70,254,120,30,90,28,191,230,206,160,18,63,132,108,63,49,33,157,127,22,1,89,63,50,146,131,68,87,149,145,191,225,7,57,178,201,232,129,191,163,202,220,128,120,102,177,63,90,150,249,85,57,130,177,63,104,161,216,188,193,40,193,191,222,93,55,114,13,43,201,191,210,45,163,128,43,58,207,63,47,65,164,141,86,25,231,63,5,194,111,231,56,132,226,63,3,34,10,229,120,141,188,63,219,75,67,139,201,8,165,191,95,90,43,226,71,219,164,63,191,117,33,72,210,118,150,63,243,170,31,39,166,231,163,191,44,193,229,69,232,222,147,191,142,241,126,159,207,164,132,63,102,145,119,30,127,11,108,63,184,211,224,101,31,105,109,191,222,6,49,101,211,132,49,191,168,87,135,204,72,138,81,63,242,16,143,82,108,230,12,63,112,92,112,236,234,14,37,191,43,189,52,206,97,222,222,190,226,131,241,205,80,94,228,62,95,188,42,92,31,165,230,190,174,230,77,0,110,162,214,190,171,212,187,13,207,175,37,63,154,67,71,156,203,43,3,63,185,176,89,78,0,239,85,191,160,132,161,0,254,28,45,191,152,204,160,18,197,106,124,63,200,53,149,44,154,71,86,63,150,232,3,63,55,141,153,191,66,210,203,147,148,193,108,191,184,251,17,234,73,250,179,63,134,126,74,190,92,117,159,63,178,242,16,87,132,109,196,191,144,92,59,175,53,171,171,191,207,85,141,59,4,108,222,63,165,13,49,228,115,53,232,63,141,26,25,79,118,106,217,63,121,176,171,152,182,179,161,191,71,152,36,21,205,37,177,191,49,190,23,134,246,141,160,63,21,101,48,229,205,241,115,63,209,171,219,242,226,203,159,191,85,78,43,32,200,156,105,191,207,115,207,241,3,241,137,63,251,126,247,122,204,136,71,63,215,184,131,230,220,202,111,191,138,40,215,154,169,109,28,191,157,124,194,205,17,238,75,63,78,191,170,120,73,113,253,62,224,57,184,127,210,175,28,191,123,78,169,188,79,30,202,190,183,136,200,51,107,33,218,62,72,23,74,124,167,205,207,62,135,7,180,17,43,147,196,190,84,28,132,5,14,241,19,191,30,209,155,249,179,110,250,62,69,203,139,217,88,150,71,63,254,103,84,115,95,158,14,63,106,93,149,135,87,27,112,191,96,101,169,237,219,55,95,191,202,69,212,156,151,99,137,63,113,51,125,179,58,98,132,63,138,252,214,230,201,120,146,191,113,239,84,60,96,190,125,191,95,160,20,76,239,139,144,63,56,76,16,168,189,8,182,191,250,140,175,209,135,217,195,191,32,100,180,205,235,27,199,63,36,228,114,2,194,206,229,63,66,179,44,174,171,210,228,63,176,135,4,241,27,58,194,63,248,1,244,9,103,90,190,191,35,109,79,38,137,175,145,63,6,59,218,204,50,209,186,63,117,65,235,228,105,85,146,63,184,50,173,118,145,11,161,191,57,27,29,150,79,189,115,191,205,220,75,121,199,119,133,63,188,199,64,183,27,19,76,63,155,100,219,20,182,117,102,191,130,47,204,79,16,44,34,191,229,32,225,226,228,49,63,63,252,213,29,51,47,83,236,190,128,208,130,223,161,127,16,191,106,106,51,208,70,82,199,62,179,223,62,189,60,6,210,62,250,85,236,100,241,98,185,190,107,89,128,23,199,84,170,62,147,166,159,165,67,254,254,62,91,78,143,91,233,172,228,190,61,121,57,161,227,107,49,191,49,105,202,87,22,220,8,63,162,36,134,4,212,101,87,63,189,136,141,140,71,190,40,191,103,106,57,85,81,118,117,191,211,105,43,6,128,210,81,63,46,143,70,92,204,190,142,63,103,240,101,182,70,182,106,191,191,63,149,31,165,60,160,191,200,250,191,232,230,182,121,63,69,190,0,217,220,54,157,63,135,172,200,61,129,228,178,191,20,173,18,48,75,161,160,191,192,114,193,92,233,177,217,63,251,151,193,219,186,29,232,63,138,220,227,82,130,85,222,63,66,134,140,224,144,163,170,191,183,113,245,110,218,120,196,191,152,149,213,76,225,103,161,63,162,235,228,244,111,143,181,63,189,97,151,171,181,203,116,191,83,131,232,105,138,13,159,191,222,115,5,54,47,235,90,63,167,55,103,234,222,117,131,63,222,35,174,180,45,248,58,191,134,113,167,120,138,244,98,191,138,116,102,152,229,103,18,63,120,6,96,89,154,246,57,63,84,212,232,139,118,103,237,190,114,172,56,195,234,184,7,191,54,176,129,162,81,187,182,62,229,190,62,241,138,234,197,62,207,243,222,94,55,96,189,62,77,52,172,203,202,76,193,62,125,54,178,132,195,132,253,190,165,87,37,234,116,163,241,190,67,247,246,156,46,26,50,63,70,164,194,123,216,242,32,63,189,0,3,36,31,239,91,191,14,3,61,24,130,63,68,191,229,89,32,172,202,235,128,63,9,115,174,48,43,177,113,63,13,206,97,180,251,95,156,191,198,221,12,111,100,80,145,191,5,71,27,115,201,133,181,63,186,64,94,226,48,248,183,63,220,225,61,157,4,194,189,191,160,116,144,226,185,154,198,191,176,99,162,211,110,135,208,63,189,116,83,79,153,6,231,63,235,118,18,212,41,128,226,63,186,188,36,209,29,233,187,63,121,141,241,123,82,73,177,191,51,239,229,225,200,86,130,63,189,191,119,196,92,188,124,63,244,222,50,240,171,224,167,191,218,190,254,138,21,50,151,191,19,184,138,52,52,45,144,63,111,215,229,175,193,81,128,63,39,20,131,111,5,251,116,191,33,135,236,161,87,4,83,191,198,32,190,99,243,96,97,63,165,143,40,56,117,220,36,63,57,39,99,230,45,213,68,191,193,161,116,189,44,46,8,191,138,110,17,234,180,73,30,63,113,76,46,189,210,155,226,62,52,229,105,255,77,234,232,190,111,216,3,244,59,176,165,190,114,37,160,50,237,105,162,62,100,110,24,50,174,60,165,190,201,75,32,248,248,218,149,190,96,119,176,41,171,196,233,62,98,81,187,149,34,251,210,62,143,14,12,200,255,197,30,191,122,74,45,177,142,232,251,190,223,228,176,24,106,127,72,63,64,34,48,70,25,113,32,63,87,164,216,184,146,112,108,191,194,12,157,235,127,6,68,191,167,79,84,106,202,229,136,63,2,50,64,192,16,195,95,63,189,62,10,57,116,28,162,191,129,8,250,65,36,8,124,191,188,252,38,122,112,195,182,63,220,227,154,23,124,143,162,63,253,6,18,102,212,141,196,191,232,10,27,84,64,40,170,191,207,78,99,187,27,53,222,63,152,151,17,107,134,9,232,63,1,144,74,115,36,249,217,63,150,121,131,248,247,136,158,191,102,82,9,48,249,56,180,191,21,48,98,22,121,49,154,63,83,25,4,65,233,162,128,63,103,200,65,204,187,49,160,191,65,186,194,162,169,37,107,191,152,246,209,105,130,105,145,63,134,117,196,106,220,80,87,63,206,247,31,223,129,15,123,191,219,84,22,225,117,1,52,191,161,144,128,126,240,28,97,63,42,76,176,216,145,234,18,63,124,119,230,237,26,54,64,191,51,6,162,215,138,56,244,190,91,236,8,107,253,243,20,63,159,132,69,130,145,97,201,62,218,251,159,190,172,155,224,190,216,68,70,138,188,133,137,190,69,115,221,145,226,204,152,62,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,24,64,0,0,0,0,0,0,56,64,0,0,0,0,0,0,94,64,0,0,0,0,0,128,134,64,0,0,0,0,0,176,179,64,0,0,0,0,0,176,227,64,0,0,0,0,0,38,22,65,0,0,0,0,128,175,75,65,0,0,0,0,168,8,131,65,0,0,0,0,252,140,188,65,0,0,0,192,140,50,247,65,0,0,0,40,59,76,52,66,0,0,128,117,119,7,115,66,0,0,128,117,119,7,179,66,0,0,216,236,238,55,244,66,0,0,115,202,236,190,54,67,0,144,104,48,185,2,123,67,0,90,65,190,179,225,192,67,32,198,181,233,59,40,6,68,108,240,89,97,82,119,78,68,206,164,248,53,195,229,149,68,154,123,122,104,82,108,224,68,33,97,63,195,64,169,41,69,235,126,163,158,132,217,116,69,22,243,217,229,135,151,193,69,103,105,61,210,45,201,14,70,133,167,135,134,81,230,91,70,13,45,31,110,236,39,170,70,164,51,174,10,173,86,249,70,164,51,174,10,173,86,73,71,65,165,3,115,98,33,154,71,150,223,51,154,120,195,235,71,140,188,168,232,203,93,62,72,15,234,222,178,194,20,145,72,161,190,209,30,1,192,227,72,95,18,153,84,1,116,55,73,100,142,26,159,97,149,140,73,254,152,112,3,93,221,225,73,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,98,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,236,115,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,98,0,0,104,97,97,114,0,100,98,49,0,10,32,70,105,108,116,101,114,32,78,111,116,32,105,110,32,68,97,116,97,98,97,115,101,32,0,98,105,111,114,49,46,49,0,98,105,111,114,49,46,51,0,98,105,111,114,49,46,53,0,98,105,111,114,50,46,50,0,98,105,111,114,50,46,52,0,98,105,111,114,50,46,54,0,98,105,111,114,50,46,56,0,98,105,111,114,51,46,49,0,98,105,111,114,51,46,51,0,98,105,111,114,51,46,53,0,98,105,111,114,51,46,55,0,98,105,111,114,51,46,57,0,98,105,111,114,52,46,52,0,98,105,111,114,53,46,53,0,98,105,111,114,54,46,56,0,114,98,105,111,114,49,46,49,0,114,98,105,111,114,49,46,51,0,114,98,105,111,114,49,46,53,0,114,98,105,111,114,50,46,50,0,114,98,105,111,114,50,46,52,0,114,98,105,111,114,50,46,54,0,114,98,105,111,114,50,46,56,0,114,98,105,111,114,51,46,49,0,114,98,105,111,114,51,46,51,0,114,98,105,111,114,51,46,53,0,114,98,105,111,114,51,46,55,0,114,98,105,111,114,51,46,57,0,114,98,105,111,114,52,46,52,0,114,98,105,111,114,53,46,53,0,114,98,105,111,114,54,46,56,0,100,98,50,0,100,98,51,0,100,98,52,0,100,98,53,0,100,98,54,0,100,98,55,0,100,98,56,0,100,98,57,0,100,98,49,48,0,100,98,49,49,0,100,98,49,50,0,100,98,49,51,0,100,98,49,52,0,100,98,49,53,0,100,98,49,54,0,100,98,49,55,0,100,98,49,56,0,100,98,49,57,0,100,98,50,48,0,100,98,50,49,0,100,98,50,50,0,100,98,50,51,0,100,98,50,52,0,100,98,50,53,0,100,98,50,54,0,100,98,50,55,0,100,98,50,56,0,100,98,50,57,0,100,98,51,48,0,100,98,51,49,0,100,98,51,50,0,100,98,51,51,0,100,98,51,52,0,100,98,51,53,0,100,98,51,54,0,100,98,51,55,0,100,98,51,56,0,99,111,105,102,49,0,99,111,105,102,50,0,99,111,105,102,51,0,99,111,105,102,52,0,99,111,105,102,53,0,99,111,105,102,54,0,99,111,105,102,55,0,99,111,105,102,56,0,99,111,105,102,57,0,99,111,105,102,49,48,0,99,111,105,102,49,49,0,99,111,105,102,49,50,0,99,111,105,102,49,51,0,99,111,105,102,49,52,0,99,111,105,102,49,53,0,99,111,105,102,49,54,0,99,111,105,102,49,55,0,115,121,109,50,0,115,121,109,51,0,115,121,109,52,0,115,121,109,53,0,115,121,109,54,0,115,121,109,55,0,115,121,109,56,0,115,121,109,57,0,115,121,109,49,48,0,115,121,109,49,49,0,115,121,109,49,50,0,115,121,109,49,51,0,115,121,109,49,52,0,115,121,109,49,53,0,115,121,109,49,54,0,115,121,109,49,55,0,115,121,109,49,56,0,115,121,109,49,57,0,115,121,109,50,48,0,84,104,105,115,32,112,114,111,103,114,97,109,32,105,115,32,111,110,108,121,32,118,97,108,105,100,32,102,111,114,32,78,32,60,61,32,52,48,32,0,110,112,97,100,32,109,117,115,116,32,98,101,32,62,61,32,78,32,0,10,32,84,104,101,32,68,101,99,111,109,112,111,115,105,116,105,111,110,32,73,116,101,114,97,116,105,111,110,115,32,67,97,110,110,111,116,32,69,120,99,101,101,100,32,49,48,48,46,32,69,120,105,116,105,110,103,32,0,10,32,70,111,114,32,83,87,84,32,116,104,101,32,115,105,103,110,97,108,32,108,101,110,103,116,104,32,109,117,115,116,32,98,101,32,97,32,109,117,108,116,105,112,108,101,32,111,102,32,50,94,74,46,32,0,100,98,0,99,111,105,102,0,10,32,77,79,68,87,84,32,105,115,32,111,110,108,121,32,105,109,112,108,101,109,101,110,116,101,100,32,102,111,114,32,111,114,116,104,111,103,111,110,97,108,32,119,97,118,101,108,101,116,32,102,97,109,105,108,105,101,115,32,45,32,100,98,44,32,115,121,109,32,97,110,100,32,99,111,105,102,32,0,100,105,114,101,99,116,0,102,102,116,0,70,70,84,0,83,105,103,110,97,108,32,101,120,116,101,110,115,105,111,110,32,99,97,110,32,98,101,32,101,105,116,104,101,114,32,112,101,114,32,111,114,32,115,121,109,0,68,101,99,111,109,112,111,115,105,116,105,111,110,32,70,105,108,116,101,114,115,32,109,117,115,116,32,104,97,118,101,32,116,104,101,32,115,97,109,101,32,108,101,110,103,116,104,46,0,67,111,110,118,111,108,117,116,105,111,110,32,79,110,108,121,32,97,99,99,101,112,116,115,32,116,119,111,32,109,101,116,104,111,100,115,32,45,32,100,105,114,101,99,116,32,97,110,100,32,102,102,116,0,83,87,84,32,79,110,108,121,32,97,99,99,101,112,116,115,32,116,119,111,32,109,101,116,104,111,100,115,32,45,32,100,105,114,101,99,116,32,97,110,100,32,102,102,116,0,10,32,69,114,114,111,114,32,45,32,84,104,101,32,83,105,103,110,97,108,32,67,97,110,32,111,110,108,121,32,98,101,32,105,116,101,114,97,116,101,100,32,37,100,32,116,105,109,101,115,32,117,115,105,110,103,32,116,104,105,115,32,119,97,118,101,108,101,116,46,32,69,120,105,116,105,110,103,10,0,104,97,114,100,0,115,111,102,116,0,100,119,116,0,68,87,84,0,112,101,114,0,115,121,109,0,115,119,116,0,83,87,84,0,109,111,100,119,116,0,77,79,68,87,84,0,109,111,114,108,101,116,0,112,97,117,108,0,112,111,119,0,112,111,119,101,114,0,108,105,110,0,108,105,110,101,97,114,0,10,32,84,121,112,101,32,97,99,99,101,112,116,115,32,111,110,108,121,32,116,119,111,32,118,97,108,117,101,115,32,58,32,112,111,119,32,97,110,100,32,108,105,110,0,86,105,115,117,115,104,114,105,110,107,0,83,117,114,101,115,104,114,105,110,107,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_i64Subtract"]=_i64Subtract;Module["_i64Add"]=_i64Add;function _llvm_exp2_f32(x){return Math.pow(2,x)}function _llvm_exp2_f64(){return _llvm_exp2_f32.apply(null,arguments)}Module["_memset"]=_memset;Module["_bitshift64Lshr"]=_bitshift64Lshr;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}function ___lock(){}function ___unlock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);Module["_llvm_cttz_i32"]=_llvm_cttz_i32;Module["___udivmoddi4"]=___udivmoddi4;Module["___udivdi3"]=___udivdi3;var _llvm_pow_f64=Math_pow;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}Module["_sbrk"]=_sbrk;Module["___uremdi3"]=___uremdi3;function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}Module["_llvm_bswap_i32"]=_llvm_bswap_i32;function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module["print"]:Module["printErr"])(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=DYNAMIC_BASE;staticSealed=true;function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity,"byteLength":byteLength};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_ii":invoke_ii,"invoke_iiii":invoke_iiii,"invoke_iii":invoke_iii,"_llvm_exp2_f64":_llvm_exp2_f64,"_llvm_pow_f64":_llvm_pow_f64,"___lock":___lock,"_llvm_exp2_f32":_llvm_exp2_f32,"_abort":_abort,"___setErrNo":___setErrNo,"___syscall6":___syscall6,"___syscall140":___syscall140,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___syscall54":___syscall54,"___unlock":___unlock,"_exit":_exit,"__exit":__exit,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM +var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function shell_read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}if(!Module["reallocBuffer"])Module["reallocBuffer"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module["usingWasm"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module["reallocBuffer"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE;STATICTOP=STATIC_BASE+30944;__ATINIT__.push();allocate([178,136,149,93,219,251,65,63,218,75,113,166,101,218,127,63,80,144,80,0,1,55,169,63,87,102,10,206,202,54,199,63,142,143,130,211,42,220,218,63,123,229,194,181,137,63,227,63,85,37,201,130,43,116,220,63,35,143,242,70,70,74,162,191,86,106,190,59,133,123,213,191,173,123,141,242,13,198,188,191,63,7,177,227,139,20,203,63,0,107,53,240,237,127,189,63,4,160,60,94,145,233,193,191,148,206,179,168,68,239,180,191,142,162,56,157,205,186,184,63,25,152,181,232,14,105,167,63,215,135,126,162,93,162,176,191,169,128,222,76,255,25,147,191,137,84,223,101,19,87,164,63,60,79,77,188,185,129,107,63,191,59,44,253,185,100,149,191,92,78,14,160,113,176,99,63,196,29,0,150,187,104,130,63,252,248,1,79,145,175,103,191,229,192,227,247,40,60,104,191,152,182,95,198,248,31,92,63,63,254,41,198,212,243,68,63,35,180,25,238,196,161,70,191,129,110,141,213,36,194,0,191,240,83,11,174,78,98,41,63,2,239,9,63,131,15,3,191,168,141,129,19,44,89,2,191,101,24,182,139,199,25,240,62,213,202,218,111,48,104,199,62,22,136,182,230,194,235,201,190,35,145,92,128,79,63,149,62,183,158,89,155,115,20,148,62,101,50,154,214,179,218,122,190,55,55,0,160,161,92,35,190,154,191,158,211,99,80,62,62,119,29,17,24,185,73,25,190,239,131,198,192,241,141,220,61,189,35,104,242,107,80,57,63,97,138,57,168,204,111,119,63,228,69,200,30,231,125,163,63,181,154,244,35,181,253,194,63,102,235,76,227,221,136,215,63,97,230,211,91,133,130,226,63,204,101,186,201,185,64,224,63,7,99,127,225,155,223,178,63,113,226,225,88,182,3,212,191,63,105,106,188,57,172,201,191,178,28,53,110,1,1,197,63,204,12,75,134,92,9,199,63,198,110,65,215,64,220,184,191,221,114,2,65,199,221,192,191,153,241,242,7,115,109,177,63,139,142,33,94,141,165,181,63,153,42,200,96,106,76,170,191,189,102,28,246,226,210,167,191,108,92,72,194,215,237,162,63,45,136,248,143,174,20,149,63,145,221,137,55,36,11,152,191,219,159,245,161,159,115,121,191,242,7,43,223,136,187,137,63,149,239,150,79,120,171,51,63,152,127,133,42,181,88,118,191,74,143,74,110,242,27,81,63,110,208,2,149,9,239,93,63,166,136,110,75,6,65,73,191,175,0,212,5,249,197,59,191,145,178,236,175,38,137,53,63,243,50,65,214,247,200,6,63,41,187,238,29,189,167,24,191,57,221,199,182,142,218,231,62,239,25,176,124,187,55,242,62,208,243,174,165,121,221,217,190,149,241,185,167,100,66,186,190,243,125,107,187,195,186,181,62,116,161,66,205,124,145,119,190,142,114,20,124,130,57,129,190,152,33,225,183,100,49,100,62,77,81,10,212,120,221,28,62,123,57,39,57,129,114,39,190,103,4,189,154,138,85,2,62,133,176,217,39,134,205,195,189,48,202,21,159,203,209,49,63,122,218,202,208,230,54,113,63,178,0,160,12,113,3,158,63,211,21,172,27,27,218,190,63,44,125,184,133,127,97,212,63,71,8,86,114,19,112,225,63,47,108,225,149,241,161,225,63,207,45,214,160,223,55,199,63,121,66,206,33,166,186,208,191,114,136,101,232,166,94,209,191,83,183,140,218,135,149,183,63,56,197,50,199,15,158,204,63,68,105,160,197,72,234,160,191,88,154,19,175,82,254,196,191,139,229,219,23,22,197,148,63,69,250,198,193,127,191,188,63,190,37,162,28,28,162,149,191,50,109,192,146,28,249,177,191,106,41,24,237,201,73,150,63,63,86,119,4,169,181,163,63,229,116,86,245,211,247,146,191,191,71,25,237,62,245,145,191,32,180,43,241,176,29,138,63,8,127,57,229,215,180,120,63,81,174,58,142,2,251,124,191,109,171,250,133,248,151,82,191,49,218,21,135,37,149,105,63,234,123,33,116,155,39,48,191,109,223,250,90,32,99,81,191,250,108,226,145,252,238,52,63,82,22,143,85,194,211,48,63,244,42,194,225,229,169,35,191,224,90,187,108,19,183,1,191,191,48,65,124,146,52,7,63,11,136,160,219,16,27,198,190,98,115,33,72,187,129,225,190,217,244,45,204,189,28,196,62,146,162,95,167,182,86,171,62,8,250,106,180,43,234,161,190,63,181,2,107,189,229,83,62,203,30,83,169,210,21,109,62,150,59,12,14,58,16,78,190,64,18,172,34,56,70,16,190,89,231,121,144,233,11,18,62,230,103,176,201,11,143,234,189,247,232,43,215,4,126,171,61,121,152,58,2,133,23,41,63,156,107,105,5,152,63,105,63,233,77,73,75,156,5,151,63,252,143,10,138,45,230,184,63,105,13,83,245,86,119,209,63,103,159,174,188,206,35,224,63,204,96,249,239,230,101,226,63,118,98,114,212,170,251,209,63,145,25,6,108,130,248,199,191,249,172,146,237,45,89,212,191,187,75,245,120,164,144,115,63,20,92,101,172,84,159,206,63,229,180,230,93,83,198,165,63,96,43,2,236,18,233,197,191,52,108,178,8,154,218,163,191,146,225,174,169,236,250,190,63,206,17,253,152,207,123,149,63,62,2,207,209,139,8,181,191,159,148,206,158,214,192,114,191,21,105,155,184,52,68,170,63,245,41,131,84,231,64,116,191,3,35,42,145,229,227,156,191,241,127,154,206,229,97,127,63,198,44,215,112,241,185,138,63,120,199,139,82,12,197,121,191,52,157,73,91,35,113,115,191,71,192,221,132,14,155,110,63,187,157,241,170,61,231,82,63,160,228,158,163,116,203,91,191,68,151,250,143,77,39,7,191,174,141,137,70,202,52,67,63,235,238,26,64,31,247,30,191,23,22,108,3,55,35,35,191,71,99,51,99,238,49,17,63,139,43,134,27,152,228,246,62,18,58,232,63,38,54,245,190,4,61,190,187,23,205,76,62,96,249,188,75,198,92,208,62,122,191,232,140,250,33,174,190,94,5,200,170,203,15,155,190,215,94,195,130,124,19,141,62,211,149,91,128,192,96,1,190,72,137,221,46,136,56,88,190,13,102,12,26,9,39,54,62,236,172,252,45,183,80,0,62,246,26,1,30,65,168,251,189,199,76,108,236,10,56,211,61,227,107,169,213,137,25,147,189,88,117,128,198,60,171,33,63,231,70,85,244,47,125,98,63,24,148,113,174,102,153,145,63,125,113,243,134,40,250,179,63,24,114,136,3,34,168,205,63,115,58,164,252,115,107,221,63,219,122,53,251,196,156,226,63,87,197,61,215,109,139,215,63,225,147,241,240,111,224,184,191,204,236,66,98,198,136,213,191,2,74,48,84,36,108,182,191,253,154,66,192,167,189,204,63,149,205,79,196,108,63,190,63,229,153,17,157,142,69,195,191,134,108,11,81,220,55,185,191,183,208,51,97,90,76,187,63,196,99,112,123,171,22,177,63,216,122,7,200,200,187,179,191,128,162,128,53,119,8,163,191,12,255,177,126,206,115,171,63,197,231,71,65,205,212,143,63,45,238,29,186,254,109,161,191,29,198,242,201,226,58,105,191,60,188,128,233,127,96,147,63,1,35,132,213,32,76,96,191,52,117,182,95,143,37,130,191,145,251,149,193,204,86,102,63,111,237,37,39,57,56,107,63,221,174,68,113,240,47,94,191,99,141,18,205,142,125,77,191,87,237,64,160,249,190,76,63,135,19,9,227,19,59,30,63,106,214,44,228,236,78,52,191,217,170,232,9,75,148,2,63,134,228,232,207,182,184,20,63,117,96,242,93,120,168,252,190,142,173,66,216,227,200,234,190,210,56,199,23,211,218,226,62,46,231,116,251,246,142,161,62,146,24,172,141,156,217,189,190,246,131,83,10,61,142,149,62,211,245,45,189,182,206,137,62,49,185,152,75,1,61,119,190,249,185,23,73,247,110,38,190,228,71,73,191,78,237,67,62,20,155,51,246,19,39,32,190,212,183,75,193,191,160,238,189,148,9,215,37,249,27,229,61,168,20,12,225,161,202,187,189,207,25,182,119,12,143,122,61,94,20,201,176,45,227,24,63,133,138,41,155,200,10,91,63,167,195,192,250,227,210,138,63,25,218,232,169,121,226,175,63,36,255,91,101,13,247,200,63,153,194,41,83,100,115,218,63,65,232,81,46,127,91,226,63,165,170,185,118,43,27,220,63,38,201,80,112,4,17,93,63,173,195,244,52,124,227,212,191,224,203,226,229,39,97,198,191,181,114,103,29,146,52,199,63,183,103,173,125,135,100,199,63,29,82,235,155,248,180,186,191,64,230,213,170,234,240,194,191,197,238,219,172,238,223,177,63,133,184,37,80,110,66,187,63,22,99,225,32,156,93,171,191,178,205,54,187,91,147,177,191,213,3,171,1,117,159,165,63,85,210,165,15,244,186,163,63,200,169,163,171,202,16,160,191,79,223,228,15,234,47,146,191,132,130,59,240,136,59,149,63,111,20,90,29,194,224,119,63,88,233,151,192,254,34,136,191,20,63,5,17,97,83,65,191,58,242,254,66,17,242,118,63,2,9,199,60,100,197,78,191,27,136,138,204,128,147,97,191,222,123,249,89,148,120,75,63,148,230,218,192,138,48,68,63,181,209,255,162,3,79,60,191,200,60,37,139,101,205,27,191,32,56,62,207,34,164,36,63,211,33,223,96,253,34,214,190,123,208,161,59,233,139,5,191,34,181,255,215,46,135,230,62,60,169,16,250,70,92,221,62,89,131,129,107,16,78,208,190,0,124,176,90,111,53,159,190,47,24,165,225,186,163,170,62,246,162,58,84,220,246,124,190,141,40,68,74,26,231,119,190,154,210,205,125,163,75,98,62,50,166,42,62,103,162,34,62,158,33,37,118,196,55,48,190,11,43,153,233,202,75,7,62,5,201,60,233,20,141,219,61,233,212,179,103,210,13,208,189,182,163,17,43,5,20,164,61,155,128,5,14,119,122,98,189,161,5,151,108,168,135,17,63,234,203,183,77,93,192,83,63,221,95,152,218,5,98,132,63,20,235,65,231,217,81,169,63,130,220,245,5,161,218,196,63,2,141,236,214,187,126,215,63,238,36,251,87,35,185,225,63,54,21,35,70,247,147,223,63,142,230,46,61,199,83,186,63,83,159,213,88,184,138,210,191,130,202,3,66,34,199,207,191,213,39,168,153,10,101,189,63,120,34,127,134,74,23,205,63,158,232,26,63,208,219,163,191,62,209,136,124,190,201,198,191,90,142,141,157,183,45,144,63,205,209,233,90,24,203,192,63,28,24,49,144,238,204,140,191,201,57,187,246,70,77,183,191,85,54,62,197,250,185,145,63,161,44,153,123,42,174,173,63,80,46,170,105,240,244,146,191,110,174,246,200,44,195,160,191,54,244,113,155,212,136,144,63,102,30,240,83,164,10,144,63,43,154,196,169,199,181,135,191,200,172,111,129,218,2,120,191,26,88,68,27,180,21,124,63,219,9,215,161,98,255,85,63,201,132,93,158,128,77,107,191,75,216,78,106,168,26,35,63,132,249,21,166,136,81,85,63,122,124,46,172,10,103,54,191,142,137,168,202,233,107,57,191,165,147,131,42,14,121,42,63,129,24,164,2,148,20,20,63,214,97,105,182,220,54,20,191,47,8,75,17,189,129,205,190,118,123,130,253,2,163,245,62,128,90,123,208,215,92,208,190,228,191,121,99,108,174,206,190,144,102,14,104,144,107,187,62,153,61,11,132,95,121,148,62,14,213,93,164,167,77,151,190,235,149,224,34,3,165,97,62,13,165,29,143,164,157,101,62,222,34,241,218,25,96,76,190,97,15,108,52,23,127,22,190,48,185,107,43,34,36,26,62,38,174,6,158,112,153,240,189,151,26,7,232,62,13,200,189,78,230,10,164,231,86,184,61,114,166,71,167,117,253,140,189,76,234,25,34,190,186,73,61,42,214,252,57,189,178,8,63,132,225,119,174,196,209,76,63,83,140,39,203,10,229,126,63,11,245,189,66,242,3,164,63,31,163,21,253,50,76,193,63,86,252,230,203,224,164,212,63,137,236,105,23,201,204,224,63,56,113,74,78,253,249,224,63,50,246,14,52,95,159,201,63,238,194,178,94,253,128,205,191,85,90,212,111,244,72,211,191,222,103,216,120,191,210,160,63,48,201,158,57,164,118,207,63,93,61,219,146,117,229,162,63,239,198,86,61,134,104,199,191,228,63,69,84,46,251,167,191,147,63,168,228,121,59,193,63,248,139,121,227,46,167,161,63,42,192,123,80,232,1,185,191,73,15,164,189,20,194,145,191,227,179,141,19,237,87,177,63,69,25,205,20,5,63,108,63,81,46,16,146,202,47,166,191,61,253,156,62,2,39,114,63,25,147,97,169,211,71,153,63,218,250,124,53,159,234,123,191,64,105,206,231,203,180,136,191,206,150,106,103,113,234,119,63,193,91,87,233,74,153,115,63,173,149,255,198,219,132,110,191,243,205,89,75,210,73,86,191,161,102,88,59,130,188,94,63,128,211,121,83,53,142,34,63,230,131,185,57,87,136,72,191,146,226,58,3,196,68,30,63,216,86,251,111,101,23,46,63,24,197,213,160,78,87,23,191,93,250,89,125,5,187,9,191,110,249,213,237,103,23,3,63,207,208,102,133,186,116,211,62,92,39,94,51,239,15,229,190,215,155,211,232,176,239,180,62,163,1,80,83,77,224,190,62,186,4,96,229,171,97,166,190,164,66,61,50,151,150,135,190,101,31,19,106,222,1,132,62,20,157,124,163,75,190,65,190,243,119,188,253,51,40,83,190,112,218,24,7,253,169,53,62,195,25,62,118,123,220,7,62,128,104,234,8,108,225,4,190,59,107,231,90,222,87,215,61,161,252,16,236,43,136,180,61,213,121,140,59,90,101,162,189,76,144,129,88,27,234,116,61,44,110,98,171,118,236,49,189,103,191,89,33,164,102,1,63,174,44,171,64,177,0,69,63,153,119,149,238,28,91,119,63,181,241,134,2,28,131,159,63,51,54,15,130,192,130,188,63,99,231,185,233,57,246,209,63,177,109,88,80,53,88,223,63,90,135,145,254,219,164,225,63,139,76,240,65,179,128,210,63,24,36,147,172,54,183,195,191,58,71,124,18,100,31,213,191,101,200,244,8,154,133,172,191,117,134,216,69,178,56,206,63,221,13,134,199,128,199,188,63,22,67,212,97,166,151,196,191,47,44,254,203,202,155,187,191,209,119,41,111,14,78,189,63,240,81,105,115,244,77,181,63,31,13,215,198,200,202,181,191,218,213,200,39,144,44,172,191,239,216,221,167,43,64,176,63,33,35,105,47,169,67,159,63,17,78,133,11,225,34,167,191,194,115,160,134,77,116,138,191,145,68,90,52,127,45,158,63,3,93,158,229,241,177,101,63,2,228,232,56,65,115,145,191,110,154,96,204,50,121,92,63,76,237,1,80,147,88,129,63,89,253,38,38,110,229,100,191,159,191,182,161,21,117,108,191,145,201,36,63,55,193,94,63,180,211,95,72,111,207,81,63,40,62,221,139,145,101,80,191,53,91,129,249,69,57,42,191,107,118,91,204,150,241,58,63,152,102,251,205,150,8,248,190,206,130,97,15,189,242,32,191,224,172,172,107,69,28,3,63,127,161,144,68,115,140,254,62,142,85,171,102,219,96,241,190,96,122,194,31,75,37,206,190,27,109,192,134,237,236,211,62,54,37,77,76,224,83,148,190,218,146,62,176,17,30,174,190,42,249,218,194,0,173,145,62,226,107,160,59,213,50,121,62,184,49,183,107,208,223,112,190,224,236,52,186,230,126,18,62,146,0,52,146,10,175,64,62,168,0,75,157,240,68,32,190,206,227,185,232,125,140,247,189,45,42,94,56,157,138,240,61,104,124,172,238,130,42,192,189,36,171,5,157,79,57,161,189,49,207,234,202,99,187,139,61,236,145,227,118,89,40,94,189,252,189,193,42,98,252,24,61,42,194,248,203,172,133,248,62,67,47,117,188,226,148,62,63,146,210,186,114,182,157,113,63,78,80,153,196,192,181,152,63,255,62,28,188,100,91,183,63,13,117,82,137,136,250,206,63,50,205,134,223,202,212,220,63,35,150,48,185,161,215,225,63,73,191,222,38,133,112,215,63,174,10,131,189,105,241,176,191,58,53,23,183,84,79,213,191,198,63,232,52,6,44,194,191,195,103,125,140,249,135,201,63,170,80,235,24,33,195,198,63,164,147,243,253,175,83,189,191,117,193,110,7,86,32,196,191,26,220,31,72,159,161,178,63,136,200,235,114,101,108,191,63,65,195,233,98,133,140,171,191,180,157,234,198,204,112,182,191,138,86,140,250,43,109,166,63,95,11,78,56,103,9,173,63,197,236,43,151,200,67,162,191,196,45,207,26,224,132,160,191,147,152,84,102,127,186,155,63,68,136,59,92,75,79,143,63,117,97,172,232,97,215,146,191,198,189,153,240,40,178,117,191,191,155,230,71,239,90,134,63,97,57,214,246,46,78,68,63,70,116,192,17,100,167,118,191,100,107,220,155,210,162,75,63,150,96,13,57,223,10,99,63,51,185,168,38,252,53,76,191,49,87,137,252,109,41,73,191,8,111,1,224,10,141,64,63,81,45,233,29,142,155,38,63,36,88,159,225,133,85,44,191,237,235,76,40,86,237,225,190,216,172,142,231,139,77,18,63,7,65,30,214,140,24,236,190,105,23,7,108,3,40,241,190,172,74,244,149,238,106,222,62,54,77,37,166,95,134,195,62,191,162,56,31,31,89,194,190,21,5,180,145,108,156,71,62,24,202,149,233,122,153,156,62,220,23,17,31,204,218,122,190,193,139,182,44,29,148,105,190,184,110,209,88,201,249,91,62,34,241,230,6,210,20,3,62,140,33,164,201,45,157,44,190,245,251,52,64,243,255,7,62,102,47,101,94,110,45,230,61,175,105,107,35,220,1,218,189,184,189,28,100,23,254,165,61,248,5,82,120,139,126,140,61,153,215,114,232,213,217,116,189,110,255,232,102,214,186,69,61,110,15,106,199,158,108,1,189,100,116,251,44,218,71,241,62,58,113,169,80,100,62,54,63,154,2,231,230,60,132,106,63,103,236,139,211,97,78,147,63,191,190,101,176,176,7,179,63,201,236,225,218,101,127,202,63,70,25,60,123,52,48,218,63,139,251,7,5,240,162,225,63,236,111,121,189,106,124,219,63,188,127,137,252,62,210,155,63,170,48,237,75,176,230,211,191,136,20,71,17,184,230,203,191,116,148,237,182,92,241,193,63,130,243,59,142,181,203,204,63,193,173,180,73,242,143,169,191,98,165,208,244,97,238,199,191,131,136,160,131,109,157,143,63,190,120,191,242,74,146,194,63,50,155,70,203,157,171,128,191,9,104,14,190,130,140,187,191,81,166,222,21,100,104,134,63,243,167,18,210,95,74,179,63,248,199,129,93,107,121,142,191,0,167,42,118,153,228,168,191,78,143,71,26,184,138,144,63,38,188,164,223,131,184,156,63,53,219,105,59,225,60,141,191,76,234,41,162,228,119,140,191,133,248,8,173,69,138,133,63,23,30,89,226,29,152,118,63,235,142,36,251,155,181,122,191,45,205,61,8,147,102,87,191,41,58,218,218,198,203,107,63,105,128,96,10,143,197,16,191,123,73,46,36,170,231,87,191,222,159,178,88,238,124,54,63,185,234,130,153,79,97,64,63,83,17,79,134,153,105,47,191,21,116,65,114,50,76,32,191,82,36,23,169,19,144,28,63,82,139,165,28,60,124,239,62,31,33,143,197,201,9,3,191,183,45,79,122,8,236,208,62,113,32,19,3,241,113,226,62,255,92,96,41,235,117,201,190,31,194,158,164,17,248,182,190,162,191,62,154,94,117,176,62,140,37,121,177,183,153,108,62,109,171,197,31,58,133,138,190,155,67,29,179,237,106,99,62,26,253,97,78,2,0,89,62,129,169,167,25,210,203,70,190,71,250,160,98,221,62,6,190,222,91,1,192,242,50,24,62,179,229,84,87,88,88,241,189,13,235,207,138,89,51,212,189,157,154,114,99,46,76,196,61,248,127,148,23,194,67,141,189,226,150,148,52,70,76,119,189,96,221,103,216,61,72,95,61,231,236,15,24,0,76,47,189,107,221,139,103,90,80,232,60,196,254,229,1,143,91,232,62,75,226,108,107,54,42,48,63,120,163,215,205,185,234,99,63,24,80,162,176,24,17,142,63,140,5,31,40,18,218,174,63,78,39,253,109,0,127,198,63,53,155,242,26,71,133,215,63,165,142,167,228,33,25,225,63,201,217,253,226,108,148,222,63,173,236,191,152,164,225,190,63,100,20,214,63,149,17,209,191,234,223,255,114,70,193,209,191,26,15,129,238,13,145,176,63,112,245,21,164,164,200,207,63,169,134,26,168,28,65,153,63,83,10,1,68,207,150,200,191,174,150,241,83,227,21,169,191,58,149,214,251,246,150,194,63,182,81,0,121,61,188,166,63,48,78,46,218,80,5,188,191,105,54,229,221,196,86,158,191,151,103,34,237,42,180,180,63,189,8,121,155,175,227,140,63,55,63,92,34,114,37,173,191,37,3,12,193,198,127,99,191,46,251,25,160,104,248,162,63,242,61,12,157,76,251,112,191,29,65,124,110,199,46,150,191,93,153,139,1,31,67,121,63,239,168,19,126,74,144,134,63,66,13,246,202,112,42,118,191,201,166,95,158,14,11,115,191,230,189,159,102,215,182,109,63,32,87,105,135,62,17,88,63,83,13,214,13,92,24,96,191,43,242,3,144,41,253,44,191,36,141,120,34,125,107,76,63,75,247,112,178,141,219,26,191,254,238,152,145,63,13,52,191,144,73,243,249,180,160,27,63,24,142,6,86,73,62,21,63,90,175,75,181,152,147,11,191,224,158,6,250,90,35,235,190,18,215,57,179,251,32,243,62,89,235,185,141,186,88,165,190,80,106,116,152,114,30,211,190,14,240,123,123,94,46,180,62,206,132,222,13,8,94,169,62,201,57,106,216,61,195,156,190,216,49,244,116,145,220,106,190,183,93,106,121,93,17,120,62,130,94,67,231,154,50,74,190,175,86,53,237,104,183,71,190,117,74,114,133,99,65,50,62,94,162,232,185,24,33,254,61,47,61,228,16,16,53,4,190,190,56,74,110,36,122,216,61,159,255,10,49,165,240,193,61,159,226,6,69,91,119,175,189,250,95,43,167,30,236,114,61,178,200,190,161,49,221,98,61,195,44,70,23,121,106,71,189,161,252,178,83,171,134,22,61,0,39,31,160,173,248,208,188,9,123,250,132,4,43,225,62,97,97,78,41,167,121,39,63,161,70,129,90,255,220,93,63,129,162,206,160,193,86,135,63,63,38,184,133,5,228,168,63,172,92,105,228,196,247,194,63,180,105,247,40,243,232,212,63,183,6,74,66,207,76,224,63,32,136,242,246,50,92,224,63,232,208,16,47,152,211,202,63,67,198,122,192,79,35,202,191,73,60,55,52,77,57,212,191,153,145,156,117,179,189,147,191,132,134,104,79,241,105,207,63,226,150,252,42,223,143,185,63,17,135,133,31,91,241,197,191,6,147,176,246,71,96,188,191,214,209,106,18,73,57,191,63,189,78,58,58,8,68,184,63,238,209,50,96,104,85,183,191,179,123,34,250,87,255,177,191,77,6,178,251,11,248,177,63,63,41,67,63,133,106,167,63,109,240,134,119,149,96,171,191,13,105,162,184,195,218,153,191,95,187,124,89,202,206,163,63,180,79,66,5,152,235,133,63,236,109,54,249,163,88,154,191,198,189,191,139,30,194,97,191,201,249,3,200,126,94,143,63,129,13,147,139,238,30,90,191,42,115,204,30,242,73,128,191,177,89,40,29,58,146,99,63,170,201,71,200,196,131,108,63,120,194,51,248,106,124,94,191,185,44,11,56,61,187,83,191,235,246,18,125,71,154,81,63,53,51,42,241,168,223,49,63,144,252,214,160,103,21,64,191,44,185,25,88,32,109,210,62,34,9,235,90,35,86,39,63,209,240,5,202,11,208,5,191,76,1,70,112,89,216,9,191,7,14,215,103,23,105,249,62,16,208,237,12,218,5,227,62,125,26,39,113,246,151,226,190,175,163,106,92,170,53,152,190,113,33,212,105,61,50,195,62,72,232,66,129,101,181,157,190,241,33,111,140,137,191,154,190,65,109,172,27,222,117,136,62,237,31,50,124,166,34,98,62,9,77,127,212,215,104,101,190,178,42,39,97,182,140,47,62,134,255,14,61,214,243,53,62,39,193,15,220,220,182,28,190,193,223,32,143,183,39,241,189,16,139,44,119,84,173,240,61,177,165,109,253,228,195,192,189,251,154,145,5,57,59,175,189,118,73,102,173,12,59,152,61,245,186,28,143,20,135,87,189,203,43,163,30,40,75,78,189,197,18,110,58,49,126,49,61,115,89,139,129,129,52,0,189,15,19,5,205,210,179,183,60,214,52,125,226,9,52,216,62,233,118,136,142,81,8,33,63,172,177,215,195,73,89,86,63,176,40,90,132,41,16,130,63,25,240,26,177,53,254,163,63,236,181,98,2,117,200,191,63,150,199,149,35,190,106,210,63,118,118,198,81,101,159,222,63,88,4,56,176,78,250,224,63,185,248,69,168,92,149,210,63,112,44,122,124,100,106,192,191,155,154,241,229,181,55,213,191,88,94,117,27,169,152,186,191,168,82,124,164,157,195,203,63,79,7,189,198,52,83,197,63,114,172,144,46,151,76,192,191,9,137,171,33,48,153,196,191,254,255,243,15,70,247,179,63,53,94,116,26,10,43,193,63,232,137,12,12,49,229,171,191,88,50,73,18,198,90,186,191,159,172,208,26,155,79,166,63,235,71,192,128,68,188,178,63,55,222,18,197,88,243,162,191,63,219,125,236,221,73,168,191,178,210,227,120,61,122,159,63,123,25,23,176,191,225,155,63,55,65,223,112,103,61,152,191,56,143,124,34,59,235,138,191,250,29,37,118,158,205,144,63,245,161,187,150,158,78,115,63,97,246,69,22,189,146,132,191,9,231,81,47,136,76,68,191,48,211,61,241,25,218,117,63,88,225,139,231,159,52,73,191,78,108,231,6,5,168,99,191,92,25,51,214,199,37,76,63,95,169,220,124,181,173,76,63,107,13,145,156,174,28,66,191,104,213,148,176,55,127,46,191,88,202,94,19,66,95,49,63,34,240,30,116,132,228,251,62,246,240,100,27,164,253,25,191,56,154,8,40,126,96,236,62,209,97,160,186,219,212,253,62,174,131,52,100,65,46,230,190,87,163,203,9,244,243,215,190,142,230,7,159,93,125,209,62,138,27,83,151,139,181,160,62,229,186,227,3,128,186,178,190,110,213,158,106,246,111,131,62,245,180,146,60,64,49,139,62,166,213,136,95,79,52,116,190,212,101,129,214,5,95,85,190,234,117,242,10,10,176,82,62,25,38,158,33,120,198,13,190,125,243,196,169,10,230,35,190,244,137,70,83,75,38,6,62,155,60,58,124,105,223,225,61,109,61,130,142,221,57,219,189,207,253,202,78,49,21,166,61,92,129,93,209,156,189,154,61,226,15,175,147,133,138,130,189,20,37,0,173,63,149,59,61,168,12,103,248,245,37,56,61,35,110,218,0,138,22,26,189,107,16,192,1,255,77,231,60,242,235,204,163,219,142,160,188,90,211,71,51,233,15,209,62,139,185,144,33,164,178,24,63,116,248,76,165,130,178,80,63,121,197,255,196,246,225,123,63,185,204,107,214,103,252,159,63,175,139,47,228,182,120,186,63,192,150,129,139,107,21,208,63,94,117,237,204,210,99,220,63,17,129,58,76,44,47,225,63,243,254,81,41,231,15,215,63,135,173,240,186,242,119,166,191,243,166,159,137,131,185,212,191,164,161,6,176,203,68,199,191,162,105,26,220,215,64,197,63,219,255,137,142,118,208,203,63,128,35,236,73,17,181,176,191,51,230,191,51,210,144,200,191,140,99,93,155,225,197,147,63,108,235,78,190,159,224,195,63,199,106,3,12,140,119,115,191,124,219,31,92,177,222,190,191,208,4,126,247,50,100,115,63,143,155,72,2,147,4,183,63,168,72,124,207,155,21,131,191,70,148,207,236,25,56,176,191,97,223,186,222,145,23,139,63,65,242,9,203,85,31,165,63,145,40,41,152,92,108,141,191,77,186,121,138,227,191,152,191,164,232,162,208,76,37,138,63,126,226,237,45,52,43,137,63,238,149,245,69,134,157,131,191,33,169,209,124,12,213,116,191,42,232,136,243,230,35,121,63,67,244,164,170,214,101,87,63,95,89,216,153,125,129,107,191,113,60,217,188,149,241,223,62,174,155,49,144,166,99,89,63,65,6,235,86,209,238,53,191,39,136,5,109,194,55,67,191,136,19,44,145,40,91,49,63,157,70,166,110,75,72,38,63,132,214,6,160,36,231,33,191,33,174,81,12,80,55,255,190,94,92,31,179,25,207,11,63,213,251,0,194,107,113,196,190,177,143,172,247,253,124,240,190,14,227,226,45,187,17,210,62,228,197,83,98,65,33,204,62,151,55,252,168,244,206,191,190,182,153,123,85,231,50,154,190,72,70,151,48,179,202,161,62,5,49,170,68,170,221,99,190,213,32,145,55,89,209,122,190,187,144,186,73,108,38,96,62,48,116,207,219,80,76,71,62,176,142,109,151,36,4,64,190,250,99,244,115,80,54,208,61,222,127,157,232,155,181,17,62,23,33,113,126,35,185,240,189,182,1,165,136,47,157,209,189,99,45,154,56,65,254,197,61,165,97,76,106,80,126,139,189,154,105,223,126,132,148,134,189,225,231,27,150,89,51,108,61,190,44,223,241,23,64,29,189,163,123,216,189,161,32,35,189,244,63,161,74,107,107,3,61,16,236,113,145,243,191,208,188,39,63,133,216,139,36,135,60,209,22,3,139,210,14,200,62,227,205,36,204,222,228,17,63,248,128,130,132,37,233,72,63,190,117,183,157,217,118,117,63,6,164,177,149,233,124,153,63,233,214,135,168,75,237,181,63,133,27,4,184,117,223,203,63,62,142,233,123,2,3,218,63,217,108,124,149,84,8,225,63,34,132,13,49,120,190,218,63,206,135,114,198,234,131,166,63,74,136,18,88,203,215,210,191,243,49,31,124,95,151,207,191,71,85,39,50,3,30,185,63,70,167,73,148,136,142,207,63,106,68,204,132,19,208,125,63,243,138,123,173,225,131,201,191,231,129,181,64,37,123,167,191,80,114,54,207,192,185,195,63,244,7,94,170,204,189,169,63,237,111,103,63,236,105,190,191,78,209,175,99,67,107,164,191,140,85,155,6,13,86,183,63,147,199,9,39,192,163,153,63,245,88,191,103,37,118,177,191,30,110,114,237,119,46,135,191,88,43,136,246,180,214,168,63,12,239,183,190,196,88,87,63,66,113,211,234,198,95,160,191,251,66,192,165,145,81,112,63,160,7,130,48,104,133,147,63,192,162,171,173,165,44,119,191,136,89,43,119,198,117,132,191,74,138,15,95,252,146,116,63,48,178,119,208,223,19,114,63,247,20,150,241,156,139,108,191,73,79,83,125,89,160,88,191,250,245,148,68,255,78,96,63,23,74,180,3,184,50,50,63,46,204,25,127,122,2,79,191,58,101,207,32,35,149,22,63,212,175,181,76,173,52,56,63,250,60,250,38,223,71,30,191,144,44,167,122,12,172,29,191,166,152,163,199,195,140,17,63,149,0,139,226,160,231,248,62,40,42,121,123,5,164,252,190,108,20,12,49,248,218,179,190,185,0,75,232,204,142,225,62,113,164,43,187,113,156,186,190,169,69,88,28,19,99,191,190,150,70,58,222,116,227,171,62,7,9,170,132,40,26,145,62,53,128,176,131,78,122,144,190,216,36,6,112,117,166,39,62,114,58,65,79,193,195,105,62,218,48,126,56,177,211,72,190,172,74,162,87,82,27,56,190,71,249,83,201,98,246,42,62,147,68,198,155,238,251,221,61,50,227,220,242,141,2,255,189,35,107,56,187,189,162,216,61,26,25,19,42,205,178,192,61,223,140,146,91,205,150,177,189,127,23,65,101,141,59,111,61,115,115,67,154,55,215,114,61,86,12,246,35,19,81,85,189,37,124,73,94,203,245,248,60,43,195,78,213,116,33,14,61,129,142,140,205,94,221,236,188,139,118,236,44,41,17,184,60,253,149,55,253,187,45,112,188,31,242,22,183,87,246,192,62,43,84,200,97,128,233,9,63,214,138,88,22,251,141,66,63,22,58,107,244,157,123,112,63,79,130,230,146,144,60,148,63,230,116,42,223,216,17,178,63,172,123,131,42,79,250,199,63,232,206,189,113,137,148,215,63,64,225,202,11,211,148,224,63,112,53,188,253,206,148,221,63,148,252,104,81,164,192,192,63,31,154,94,31,215,130,207,191,241,31,50,20,14,215,210,191,19,174,108,12,196,36,148,63,66,75,234,253,244,24,208,63,160,235,137,104,61,241,180,63,164,172,37,86,138,74,199,191,153,244,16,212,125,195,187,191,76,152,60,224,136,161,192,63,224,196,76,6,70,14,186,63,254,226,126,147,69,187,184,191,159,133,156,191,151,19,181,191,216,34,82,33,82,54,179,63,241,131,51,163,158,127,174,63,164,44,106,202,232,86,174,191,45,22,31,133,1,150,163,191,146,170,13,140,35,116,167,63,130,90,154,210,228,121,149,63,20,105,102,210,0,42,161,191,138,39,243,122,75,23,130,191,82,154,167,2,88,41,151,63,67,210,132,230,90,178,91,63,151,157,37,99,74,48,140,191,192,95,126,40,110,228,88,63,3,168,105,10,160,66,126,63,246,6,95,93,130,106,98,191,174,90,165,206,212,206,107,191,229,176,43,192,130,196,93,63,179,218,98,19,83,181,84,63,183,243,96,201,231,53,82,191,248,91,51,235,63,128,53,191,201,184,89,239,202,253,65,63,52,220,178,119,250,22,240,62,76,28,194,121,252,243,44,191,171,21,40,192,167,188,6,63,150,228,14,157,159,126,18,63,35,225,142,121,244,62,0,191,191,21,229,227,23,48,241,190,175,252,191,215,253,102,236,62,29,255,170,10,116,9,191,62,252,29,209,182,195,19,210,190,13,151,97,185,46,74,160,62,188,70,135,33,20,208,176,62,200,52,180,166,70,116,151,190,139,142,176,59,237,67,132,190,217,75,106,96,52,197,125,62,166,201,21,51,28,251,54,62,8,31,244,132,200,46,88,190,201,79,12,4,223,36,50,62,105,221,163,203,3,0,40,62,132,248,132,253,42,73,22,190,68,168,84,28,233,89,220,189,2,102,148,127,117,191,234,61,197,167,224,217,97,156,193,189,109,118,67,112,97,192,174,189,44,182,243,150,134,220,155,61,46,3,56,196,241,128,77,189,63,146,29,208,68,29,95,189,145,82,57,119,68,4,64,61,209,95,31,164,240,71,192,188,145,37,189,12,204,156,247,188,83,108,198,15,90,107,213,60,177,254,151,64,144,72,161,188,239,231,227,104,181,160,86,60,204,131,2,255,169,235,183,62,147,192,31,212,246,191,2,63,150,160,66,133,16,154,59,63,51,123,146,84,180,65,105,63,96,90,48,10,54,3,144,63,127,69,43,45,192,163,173,63,43,131,174,52,61,125,196,63,153,6,222,46,110,43,213,63,201,139,92,90,38,200,223,63,97,225,160,95,37,147,223,63,181,227,46,186,61,69,203,63,234,203,38,46,53,104,199,191,70,208,19,106,85,150,212,191,139,34,57,62,101,225,175,191,76,215,156,183,77,182,205,63,170,19,211,95,182,50,195,63,57,237,251,108,92,38,194,191,12,125,201,210,3,120,196,191,242,225,95,67,97,236,181,63,128,68,2,197,224,25,194,63,250,76,110,122,230,248,172,191,18,209,8,162,5,95,189,191,231,27,244,74,170,16,166,63,105,82,154,6,7,83,182,63,101,206,246,115,231,189,162,191,57,20,205,12,210,159,175,191,175,28,154,43,250,96,160,63,142,216,198,35,22,130,164,63,33,62,9,155,113,137,155,191,103,68,198,70,59,171,151,191,87,128,212,254,6,104,149,63,219,78,138,228,120,31,135,63,62,199,72,53,5,28,142,191,221,110,163,47,253,235,112,191,57,219,210,130,51,223,130,63,251,33,255,65,49,111,66,63,88,234,111,159,168,197,116,191,106,45,17,131,123,126,71,63,186,226,190,206,160,170,99,63,176,246,223,194,56,175,75,191,143,185,66,118,240,225,78,191,109,159,152,39,107,10,67,63,50,254,221,215,54,119,50,63,38,65,15,96,53,221,51,191,170,171,203,167,136,226,7,191,24,44,167,251,182,138,32,63,92,184,61,46,14,59,232,190,137,237,54,191,199,227,5,191,223,165,232,188,205,250,235,62,174,87,54,155,71,193,229,62,5,192,190,139,220,20,219,190,70,220,84,101,211,4,186,190,65,126,116,40,1,9,194,62,41,166,230,60,72,200,118,190,242,135,170,182,58,104,161,190,224,85,174,173,234,189,130,62,71,33,114,98,173,140,118,62,126,234,137,104,143,57,106,190,45,95,130,159,13,76,55,190,90,139,51,46,89,56,70,62,76,132,139,60,11,173,24,190,199,57,34,160,213,45,23,190,212,191,50,187,189,19,2,62,247,172,161,236,117,129,210,61,233,147,158,30,78,193,214,189,213,85,63,216,250,57,168,61,13,216,222,42,164,171,155,61,228,185,35,121,63,219,133,189,133,174,83,90,92,146,29,61,118,107,13,140,99,116,73,61,8,196,150,8,162,236,39,189,3,252,184,176,253,112,192,188,111,149,94,197,173,107,226,60,73,231,178,110,91,190,191,188,51,108,253,180,118,208,136,60,179,28,46,2,77,168,63,188,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,21,191,72,71,221,232,222,63,113,253,227,214,189,196,234,63,9,113,107,11,191,176,204,63,144,6,147,193,125,144,192,191,100,210,80,110,121,74,213,63,187,40,125,36,14,210,233,63,68,247,240,11,162,110,221,63,41,150,197,133,10,72,193,191,60,72,13,181,122,223,181,191,185,137,55,55,46,9,162,63,192,94,241,42,5,125,205,63,72,215,69,234,5,224,230,63,58,228,61,221,44,48,228,63,251,91,219,249,198,167,156,191,212,4,198,183,193,240,199,191,169,131,99,25,226,148,159,63,123,17,104,199,10,214,160,63,41,46,183,48,23,180,133,191,17,185,167,65,60,126,196,63,12,176,196,194,145,82,227,63,245,84,59,20,137,45,231,63,198,252,190,115,3,184,193,63,116,20,248,211,132,3,207,191,116,220,168,72,102,130,160,191,170,21,37,181,185,219,179,63,232,242,121,69,173,144,121,191,40,65,41,243,239,195,137,191,9,60,78,224,133,83,107,63,82,57,220,36,239,141,188,63,169,57,69,246,234,167,223,63,187,192,59,250,73,9,232,63,33,47,169,207,15,45,212,63,241,22,105,210,61,246,204,191,235,34,39,98,51,156,192,191,82,23,78,127,221,245,184,63,73,37,97,61,244,46,156,63,206,232,4,100,133,43,160,191,193,167,16,18,247,37,66,63,27,163,98,76,81,145,115,63,102,100,122,59,135,166,81,191,177,182,56,186,28,238,179,63,3,48,48,116,230,96,217,63,254,193,148,210,12,85,231,63,220,77,41,186,233,16,222,63,51,30,73,14,131,107,194,191,151,171,213,187,55,173,204,191,28,130,167,44,82,65,178,63,83,250,242,39,7,163,180,63,204,69,207,238,168,120,163,191,9,231,255,168,234,248,144,191,112,13,165,130,86,180,137,63,212,115,67,88,31,39,60,63,49,47,203,249,160,132,93,191,211,16,250,51,85,46,55,63,221,8,163,173,100,220,171,63,30,195,180,144,22,6,212,63,96,55,146,89,196,158,229,63,40,94,219,190,57,187,226,63,198,149,154,69,129,53,144,191,111,213,36,135,79,45,210,191,176,98,246,202,249,246,62,63,9,186,99,177,203,122,192,63,157,80,7,15,66,201,145,191,226,127,138,81,188,146,166,191,180,133,91,205,21,162,140,63,252,245,53,223,120,233,129,63,74,199,58,109,239,242,115,191,93,230,152,23,80,172,57,191,65,243,46,142,20,34,70,63,195,63,142,200,187,203,30,191,124,218,64,229,243,126,163,63,160,194,139,128,249,53,207,63,136,162,3,6,182,90,227,63,53,254,232,1,129,8,229,63,34,251,3,168,156,12,193,63,239,83,253,102,255,196,210,191,252,152,220,188,142,202,184,191,113,231,67,30,98,3,195,63,151,121,103,148,141,118,159,63,162,81,244,148,98,80,177,191,13,202,182,166,49,114,48,63,135,136,5,190,249,229,150,63,191,59,120,159,163,88,115,191,182,191,179,100,123,137,113,191,31,113,252,187,151,69,94,63,11,81,188,163,118,50,46,63,138,151,3,168,61,131,48,191,181,49,173,161,27,161,4,63,227,122,220,73,101,79,155,63,254,140,25,105,45,22,200,63,116,248,27,7,213,222,224,63,117,215,98,64,219,7,230,63,103,245,35,73,186,254,209,63,227,17,193,182,247,250,207,191,2,168,28,124,196,20,201,191,131,174,160,119,163,77,192,63,141,209,159,129,155,210,183,63,196,154,52,7,227,70,178,191,37,43,21,213,29,42,158,191,60,143,203,105,64,1,161,63,20,23,226,179,125,139,109,63,220,14,119,109,70,251,133,191,221,56,174,135,135,220,86,63,216,140,169,114,96,82,96,63,240,80,140,9,98,121,70,191,221,80,220,85,245,135,30,191,51,228,250,28,161,136,24,63,219,67,26,42,42,209,235,190,145,96,7,22,153,36,147,63,207,20,35,196,201,112,194,63,223,201,152,97,40,203,220,63,204,18,50,100,37,241,229,63,22,232,239,204,159,93,218,63,108,246,43,107,111,197,196,191,70,204,168,137,255,140,209,191,143,77,106,139,59,232,176,63,50,167,11,63,10,45,195,63,9,154,74,126,56,204,167,191,124,255,190,219,33,2,177,191,153,128,106,39,39,11,160,63,229,139,149,106,81,87,149,63,247,131,104,90,151,119,143,191,139,106,52,243,73,94,107,191,172,249,117,10,210,47,116,63,51,17,132,60,84,57,52,191,58,174,253,211,56,67,77,191,162,110,188,240,21,84,48,63,56,60,25,93,176,138,12,63,140,62,187,254,160,40,2,191,120,13,225,180,176,217,210,62,87,250,210,120,153,218,138,63,121,248,130,6,137,12,188,63,189,64,46,39,150,38,216,63,107,111,142,157,197,7,229,63,120,121,41,92,36,130,224,63,93,133,217,193,74,235,166,191,34,91,164,141,68,60,212,191,178,179,243,240,150,89,152,191,59,221,86,126,117,91,199,63,142,54,141,135,234,243,117,63,131,51,25,130,198,175,184,191,98,67,28,157,17,56,134,63,176,78,57,190,141,69,165,63,155,56,63,81,23,6,137,191,81,42,62,98,74,76,138,191,233,164,255,75,132,125,123,63,129,209,248,209,171,107,98,63,66,193,110,24,192,218,97,191,37,205,203,36,199,115,219,62,251,11,190,49,132,120,57,63,232,180,184,4,105,51,23,191,169,63,246,86,74,107,249,190,58,66,12,241,146,203,234,62,243,194,125,45,80,167,185,190,59,126,211,116,145,216,130,63,76,61,138,252,100,54,181,63,232,175,9,108,191,247,211,63,187,52,24,0,197,141,227,63,114,164,190,240,46,216,226,63,181,15,41,81,178,68,182,63,174,197,111,32,132,40,212,191,99,215,106,184,66,228,191,191,164,26,200,121,18,249,198,63,139,124,85,4,200,172,178,63,204,234,200,67,53,22,187,191,6,151,35,222,198,31,155,191,94,13,82,68,80,190,172,63,44,233,227,223,41,127,99,63,199,176,69,146,67,103,152,191,176,163,26,3,141,18,112,63,49,38,23,115,9,184,125,63,16,126,172,205,37,160,102,191,246,44,31,27,86,142,85,191,171,76,226,30,235,140,78,63,202,23,127,132,109,210,9,63,164,100,0,54,207,164,37,191,211,66,85,134,154,21,0,63,53,216,140,2,248,229,229,62,52,190,195,164,8,183,211,190,160,163,141,219,249,131,161,62,172,99,227,172,2,119,122,63,119,184,92,15,70,238,175,63,35,244,98,127,119,79,208,63,92,114,161,34,223,188,225,63,212,54,49,220,176,50,228,63,172,88,66,174,102,253,203,63,29,7,175,97,88,99,209,191,191,83,96,208,133,232,203,191,89,115,188,50,239,182,193,63,91,197,3,252,40,235,193,63,247,76,170,214,36,53,182,191,38,237,243,71,8,81,178,191,205,224,157,101,10,72,172,63,244,73,33,169,3,161,155,63,172,169,188,166,232,232,158,191,123,166,146,97,206,255,118,191,78,146,125,186,96,49,138,63,24,175,200,19,189,115,72,191,103,31,68,33,71,137,111,191,195,196,110,31,14,101,81,63,106,140,229,217,79,51,71,63,1,218,16,144,246,89,57,191,1,2,2,60,63,231,5,191,248,20,232,162,18,6,18,63,28,94,79,54,191,173,229,190,109,183,63,229,104,105,210,190,187,61,19,180,203,240,188,62,162,109,196,240,144,252,135,190,206,109,162,88,0,151,114,63,196,164,188,16,192,238,167,63,126,133,2,111,253,94,202,63,115,63,29,105,71,135,223,63,180,48,165,81,128,170,228,63,121,129,194,176,55,178,213,63,69,91,137,202,233,186,200,191,31,224,40,110,13,125,210,191],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([47,199,120,51,98,182,176,63,91,29,13,63,186,86,200,63,13,4,33,6,32,79,164,191,22,74,46,242,107,114,188,191,188,121,119,82,88,88,161,63,99,70,111,66,50,12,172,63,196,111,42,151,170,98,154,191,198,183,160,211,58,79,149,191,112,52,0,53,81,228,142,63,45,236,152,91,201,228,116,63,174,220,47,252,225,146,122,191,101,142,93,113,0,176,47,191,232,213,61,60,228,214,95,63,10,186,36,127,254,121,56,191,34,227,30,247,128,144,55,191,0,89,203,166,4,111,36,63,15,198,32,202,172,11,251,62,9,122,244,101,249,127,253,190,114,51,84,193,245,53,204,62,83,75,228,223,88,99,190,62,164,191,28,29,41,50,165,190,25,112,51,22,208,118,112,62,134,236,94,242,71,32,106,63,96,236,203,134,108,223,161,63,7,65,169,145,211,32,197,63,121,72,235,95,62,138,219,63,52,89,70,27,57,101,228,63,4,194,132,47,183,45,220,63,199,153,195,105,237,249,182,191,236,22,156,243,154,238,212,191,134,189,147,59,151,150,156,191,59,118,220,241,75,8,203,63,195,75,186,10,22,255,155,63,95,124,98,153,25,242,192,191,10,29,135,210,210,142,121,191,6,177,200,78,197,111,179,63,244,63,151,203,157,21,127,191,81,42,96,59,9,227,162,191,192,226,16,123,240,22,133,63,195,84,206,220,195,168,140,63,65,193,44,191,143,161,124,191,21,140,86,185,155,218,109,191,129,237,242,195,240,159,105,63,19,5,97,49,96,187,58,63,63,154,180,209,220,213,78,191,69,40,161,94,158,242,29,63,90,62,6,1,227,232,38,63,233,131,66,234,13,0,16,191,175,117,181,38,6,63,237,190,70,35,93,161,75,198,231,62,192,231,69,211,26,130,177,190,161,34,112,64,85,181,168,190,123,155,169,245,235,252,142,62,3,129,226,206,27,166,86,190,108,216,27,248,104,93,98,63,244,206,133,64,234,155,154,63,109,58,58,99,166,203,192,63,208,69,18,134,211,179,215,63,219,160,74,198,72,141,227,63,142,6,244,240,10,150,224,63,86,29,75,162,116,248,155,63,210,146,52,7,53,3,213,191,52,118,185,177,107,52,192,191,163,8,171,48,121,65,201,63,63,113,123,242,3,228,185,63,111,87,103,32,127,59,192,191,27,137,102,40,22,59,173,191,182,126,48,168,92,195,180,63,96,176,186,136,11,217,150,63,200,53,169,196,55,6,168,191,119,74,178,225,176,203,106,191,115,151,200,53,127,71,151,63,203,145,118,206,156,237,104,191,209,131,163,148,104,158,129,191,146,19,49,23,87,80,104,63,123,179,52,40,250,217,98,63,236,142,252,229,144,138,87,191,157,228,138,112,38,129,53,191,69,81,214,163,1,205,60,63,65,211,28,84,169,218,250,190,26,11,253,116,38,130,21,191,252,240,31,182,41,80,248,62,46,243,93,196,25,82,221,62,83,127,117,9,56,230,210,190,47,231,124,140,100,62,148,62,45,107,135,160,74,217,147,62,142,245,210,174,228,156,118,190,41,138,0,106,177,54,63,62,117,24,138,53,134,211,89,63,103,179,197,115,95,192,147,63,68,59,243,16,198,132,186,63,185,19,114,36,179,35,212,63,81,173,202,187,103,76,226,63,54,116,241,251,50,76,226,63,234,38,144,249,52,216,194,63,58,80,83,81,58,203,210,191,87,59,225,177,165,181,203,191,66,218,88,231,237,35,195,63,219,163,11,163,235,98,197,63,114,82,206,246,15,163,183,191,110,177,45,128,29,84,187,191,99,1,143,215,114,156,176,63,18,77,119,54,210,53,173,63,161,170,148,102,33,204,166,191,44,207,234,201,132,77,152,191,66,152,220,198,144,79,155,63,165,134,13,233,91,166,121,63,120,249,163,30,188,186,138,191,127,151,133,118,32,25,31,63,83,216,228,177,120,63,116,63,114,202,238,13,78,84,82,191,6,35,139,80,222,246,85,191,204,7,10,199,243,151,68,63,206,19,153,165,155,254,43,63,13,28,55,18,138,9,42,191,144,218,66,253,94,157,132,190,175,6,44,140,103,157,3,63,237,59,25,178,118,222,225,190,148,45,42,46,199,244,203,190,219,217,223,125,144,172,189,62,104,14,41,85,166,165,116,190,59,216,228,212,22,146,127,190,24,69,252,160,198,121,96,62,109,38,168,149,1,139,37,190,90,216,254,23,25,42,82,63,244,59,96,150,104,63,141,63,74,17,91,118,164,206,180,63,242,36,241,116,189,235,208,63,145,99,65,204,46,200,224,63,48,110,11,230,41,65,227,63,183,248,84,190,128,178,208,63,4,200,83,75,25,50,205,191,62,199,212,29,46,75,210,191,250,237,247,64,105,28,179,63,66,64,104,193,70,46,203,63,179,91,143,162,87,41,161,191,155,149,67,57,205,70,194,191,152,29,70,111,18,63,156,63,236,230,233,104,133,63,182,63,231,203,253,219,35,35,155,191,155,249,66,184,156,98,167,191,96,166,92,119,138,36,150,63,4,208,118,36,47,215,147,63,68,50,47,191,241,165,140,191,23,178,51,245,233,7,120,191,249,216,229,58,194,214,124,63,181,201,157,233,116,50,73,63,26,229,227,98,52,4,102,191,73,194,243,252,152,102,54,63,102,116,133,225,91,28,72,63,102,42,67,122,107,21,49,191,215,0,175,166,232,84,32,191,246,60,219,222,8,214,22,63,39,213,155,251,120,106,213,62,18,63,59,53,208,114,241,190,241,48,103,35,255,65,201,62,99,86,185,120,152,179,185,62,237,205,201,237,15,7,167,190,250,234,219,185,115,19,79,62,222,120,200,112,245,228,104,62,224,217,165,58,124,249,71,190,11,208,46,220,112,199,13,62,63,34,173,161,185,142,73,63,119,11,65,199,235,154,133,63,187,69,220,118,138,60,176,63,248,177,91,44,16,39,204,63,127,172,54,128,167,64,222,63,181,115,245,29,41,137,227,63,116,233,160,137,218,34,215,63,28,205,155,162,179,209,193,191,242,59,40,47,19,234,212,191,38,170,250,228,231,32,145,191,145,217,158,34,164,56,205,63,26,30,140,98,64,103,164,63,246,21,21,133,18,230,195,191,66,38,82,52,94,79,153,191,47,127,129,68,202,47,186,63,106,212,225,192,214,17,119,63,46,198,154,214,36,154,175,191,249,35,25,228,12,16,120,63,162,236,169,224,224,136,160,63,164,12,209,56,35,0,130,191,241,5,204,112,177,72,140,191,11,147,6,23,35,136,123,63,232,34,186,79,70,27,114,63,239,30,232,22,240,86,109,191,138,88,30,43,166,63,75,191,130,75,116,129,209,208,86,63,145,191,87,124,83,12,12,191,123,70,27,77,252,60,57,191,39,4,120,195,193,157,26,63,109,246,159,149,36,194,17,63,13,80,92,180,67,116,3,191,197,52,236,67,217,90,210,190,179,65,72,44,59,95,222,62,116,193,102,46,123,250,176,190,134,53,5,186,152,249,166,190,119,74,25,32,12,173,145,62,134,131,161,251,67,175,235,61,229,53,18,103,154,124,83,190,184,54,188,68,194,107,49,62,149,167,196,227,155,155,244,189,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,182,191,205,59,127,102,158,160,182,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,182,63,205,59,127,102,158,160,182,191,217,108,223,204,118,248,144,63,217,108,223,204,118,248,144,191,57,242,238,204,217,28,191,191,57,242,238,204,217,28,191,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,57,242,238,204,217,28,191,63,57,242,238,204,217,28,191,191,217,108,223,204,118,248,144,191,217,108,223,204,118,248,144,63,205,59,127,102,158,160,198,191,205,59,127,102,158,160,214,63,217,108,223,204,118,248,240,63,205,59,127,102,158,160,214,63,205,59,127,102,158,160,198,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,214,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,214,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,217,108,223,204,118,248,160,63,217,108,223,204,118,248,176,191,205,59,127,102,158,160,198,191,3,23,183,25,188,222,218,63,24,236,34,192,222,209,239,63,3,23,183,25,188,222,218,63,205,59,127,102,158,160,198,191,217,108,223,204,118,248,176,191,217,108,223,204,118,248,160,63,0,0,0,0,0,0,0,0,192,10,31,0,198,72,124,191,192,10,31,0,198,72,140,63,137,47,231,76,168,10,168,63,225,16,235,12,193,147,187,191,119,67,126,54,88,190,197,191,175,7,185,121,72,163,220,63,194,243,33,144,152,239,238,63,175,7,185,121,72,163,220,63,119,67,126,54,88,190,197,191,225,16,235,12,193,147,187,191,137,47,231,76,168,10,168,63,192,10,31,0,198,72,140,63,192,10,31,0,198,72,124,191,0,0,0,0,0,0,0,0,104,41,27,64,173,191,88,63,104,41,27,64,173,191,104,191,20,26,29,160,57,132,138,191,65,127,32,72,47,156,157,63,182,148,234,244,157,34,171,63,67,90,121,227,212,68,193,191,43,106,125,204,90,248,196,191,77,23,58,62,197,154,221,63,243,107,225,45,218,115,238,63,77,23,58,62,197,154,221,63,43,106,125,204,90,248,196,191,67,90,121,227,212,68,193,191,182,148,234,244,157,34,171,63,65,127,32,72,47,156,157,63,20,26,29,160,57,132,138,191,104,41,27,64,173,191,104,191,104,41,27,64,173,191,88,63,0,0,0,0,0,0,0,0,205,59,127,102,158,160,214,191,217,108,223,204,118,248,240,63,217,108,223,204,118,248,240,63,205,59,127,102,158,160,214,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,59,127,102,158,160,198,63,217,108,223,204,118,248,224,63,217,108,223,204,118,248,224,63,205,59,127,102,158,160,198,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,217,108,223,204,118,248,176,63,70,35,79,51,178,116,201,191,83,84,175,153,138,204,195,191,24,236,34,192,222,209,239,63,24,236,34,192,222,209,239,63,83,84,175,153,138,204,195,191,70,35,79,51,178,116,201,191,217,108,223,204,118,248,176,63,192,10,31,0,198,72,140,191,16,72,23,128,148,54,165,63,3,23,183,25,188,222,170,63,81,107,172,9,184,37,209,191,150,96,71,179,128,98,178,191,194,243,33,144,152,239,238,63,194,243,33,144,152,239,238,63,150,96,71,179,128,98,178,191,81,107,172,9,184,37,209,191,3,23,183,25,188,222,170,63,16,72,23,128,148,54,165,63,192,10,31,0,198,72,140,191,104,41,27,64,173,191,104,63,14,95,20,240,193,143,130,191,141,234,18,168,88,60,145,191,68,250,20,206,45,29,179,63,230,52,171,77,224,10,160,63,224,192,46,237,48,70,211,191,182,148,234,244,157,34,155,191,243,107,225,45,218,115,238,63,243,107,225,45,218,115,238,63,182,148,234,244,157,34,155,191,224,192,46,237,48,70,211,191,230,52,171,77,224,10,160,63,68,250,20,206,45,29,179,63,141,234,18,168,88,60,145,191,14,95,20,240,193,143,130,191,104,41,27,64,173,191,104,63,221,62,229,236,27,70,70,191,38,239,171,241,148,180,96,63,71,140,227,24,33,186,116,63,237,248,227,205,31,29,149,191,98,133,236,84,42,231,140,191,242,115,181,168,229,96,185,63,147,165,27,88,208,48,137,63,80,74,35,116,6,126,212,191,98,110,18,144,53,203,96,63,151,73,36,204,228,37,238,63,151,73,36,204,228,37,238,63,98,110,18,144,53,203,96,63,80,74,35,116,6,126,212,191,147,165,27,88,208,48,137,63,242,115,181,168,229,96,185,63,98,133,236,84,42,231,140,191,237,248,227,205,31,29,149,191,71,140,227,24,33,186,116,63,38,239,171,241,148,180,96,63,221,62,229,236,27,70,70,191,119,22,134,86,64,94,163,63,120,245,36,129,254,107,152,191,204,221,29,135,225,81,188,191,37,139,145,78,94,39,216,63,113,240,117,189,78,73,235,63,37,139,145,78,94,39,216,63,204,221,29,135,225,81,188,191,120,245,36,129,254,107,152,191,119,22,134,86,64,94,163,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,236,53,198,158,133,176,191,56,107,217,75,62,213,164,191,252,157,12,24,6,194,218,63,22,130,250,47,70,59,233,63,252,157,12,24,6,194,218,63,56,107,217,75,62,213,164,191,68,236,53,198,158,133,176,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,23,13,181,221,81,164,63,222,199,75,21,25,71,128,63,40,30,147,124,173,226,171,191,142,221,212,157,101,30,214,63,166,252,111,95,184,146,231,63,142,221,212,157,101,30,214,63,40,30,147,124,173,226,171,191,222,199,75,21,25,71,128,63,99,23,13,181,221,81,164,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,60,79,248,48,143,139,63,6,236,164,83,193,19,102,191,175,252,35,243,153,127,193,191,52,2,92,129,236,239,183,191,69,192,78,216,241,131,222,63,51,134,125,9,193,200,236,63,69,192,78,216,241,131,222,63,52,2,92,129,236,239,183,191,175,252,35,243,153,127,193,191,6,236,164,83,193,19,102,191,10,60,79,248,48,143,139,63,0,0,0,0,0,0,0,0,120,168,110,120,56,70,95,63,183,178,116,20,25,93,95,191,13,34,71,138,254,101,145,191,199,28,140,60,38,113,136,63,185,179,14,84,151,118,169,63,43,54,240,241,132,199,179,191,70,233,230,146,67,20,184,191,101,92,43,138,83,238,218,63,223,35,227,16,246,109,234,63,101,92,43,138,83,238,218,63,70,233,230,146,67,20,184,191,43,54,240,241,132,199,179,191,185,179,14,84,151,118,169,63,199,28,140,60,38,113,136,63,13,34,71,138,254,101,145,191,183,178,116,20,25,93,95,191,120,168,110,120,56,70,95,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,219,31,132,220,134,139,141,63,120,106,23,163,35,161,141,63,175,39,10,4,32,39,180,191,92,90,123,155,28,171,164,191,121,164,157,48,10,190,218,63,4,236,213,220,248,72,232,63,121,164,157,48,10,190,218,63,92,90,123,155,28,171,164,191,175,39,10,4,32,39,180,191,120,106,23,163,35,161,141,63,219,31,132,220,134,139,141,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,211,241,165,83,255,84,170,191,117,124,233,212,63,149,206,63,58,190,116,234,159,74,227,63,139,131,22,43,192,106,209,63,211,241,165,83,255,84,170,191,178,56,104,177,2,172,134,191,110,150,65,232,60,187,135,63,35,72,3,39,25,6,158,191,106,224,194,100,55,100,168,191,23,35,127,68,45,121,209,63,153,120,230,84,204,99,226,63,186,128,101,166,26,223,210,63,85,82,73,211,27,177,171,191,14,61,74,174,126,132,165,191,21,27,43,88,114,37,145,63,55,209,161,165,160,64,112,63,120,63,41,144,79,31,85,191,137,227,93,131,10,178,64,191,148,192,231,142,112,249,101,191,13,42,198,83,114,138,118,63,234,24,163,231,71,251,144,63,179,116,228,158,221,207,167,191,214,158,255,43,8,33,166,191,204,126,204,21,18,86,210,63,87,133,191,127,12,246,225,63,195,84,255,52,21,100,211,63,36,166,79,60,139,254,169,191,145,169,138,35,230,203,173,191,196,49,17,80,64,5,153,63,159,223,134,53,91,255,134,63,55,18,127,192,2,23,122,191,180,109,99,224,142,211,93,191,21,87,106,136,184,228,73,63,36,192,219,35,221,154,53,63,253,105,3,154,194,80,10,191,33,141,187,116,120,167,249,190,49,109,82,226,226,172,68,63,122,5,217,83,200,224,82,191,157,43,32,187,218,70,117,191,137,13,200,195,51,69,135,63,156,8,125,242,238,81,147,63,234,0,81,255,243,107,173,191,49,194,88,63,90,77,164,191,110,128,28,95,114,203,210,63,27,80,94,64,54,179,225,63,248,14,240,33,119,168,211,63,152,195,199,37,41,31,168,191,200,112,108,37,242,106,177,191,99,79,122,148,45,123,156,63,227,37,182,127,87,41,146,63,23,109,228,80,104,7,134,191,139,24,174,43,93,99,112,191,127,165,160,161,10,187,101,63,24,30,162,80,201,88,77,63,141,29,122,183,182,75,59,191,159,100,54,98,76,24,40,191,167,12,193,13,89,28,7,63,47,141,69,175,209,39,247,62,50,49,209,181,198,85,195,190,97,45,75,175,4,45,181,190,165,149,56,113,249,167,35,191,115,230,120,199,232,157,48,63,56,207,85,71,110,60,89,63,77,197,241,80,227,23,104,191,124,235,237,195,29,88,125,191,97,70,234,55,14,243,144,63,44,55,188,157,166,101,148,63,163,166,229,212,187,163,176,191,133,13,42,199,200,215,162,191,191,142,245,212,0,20,211,63,160,41,248,16,48,133,225,63,160,125,19,9,33,210,211,63,147,233,25,213,198,117,166,191,123,167,76,143,229,27,179,191,156,19,191,170,54,229,157,63,59,180,69,153,185,168,151,63,17,233,93,41,251,156,140,191,192,157,223,69,93,135,122,191,166,99,166,68,93,149,115,63,42,6,108,245,157,43,92,63,43,210,250,188,22,64,83,191,58,62,4,199,138,139,61,191,36,117,133,112,13,250,43,63,24,65,106,244,88,4,26,63,38,3,65,220,11,144,254,190,90,84,54,144,181,138,239,190,114,224,13,83,142,243,197,62,183,26,216,104,237,115,184,62,20,133,139,47,94,210,126,190,180,191,91,7,200,58,114,190,215,214,159,116,233,210,2,63,217,12,106,72,139,23,14,191,79,2,111,32,246,241,60,191,8,7,8,102,32,75,73,63,35,68,209,163,12,128,100,63,164,139,149,107,253,91,116,191,132,37,233,94,149,182,129,191,170,92,95,204,64,119,149,63,143,27,167,78,231,215,148,63,255,63,12,13,241,10,178,191,179,34,40,255,139,167,161,191,205,160,198,118,56,69,211,63,234,129,174,46,17,99,225,63,112,27,105,3,39,238,211,63,19,46,223,25,165,9,165,191,174,183,234,193,69,82,180,191,224,70,111,204,239,77,158,63,154,241,15,189,48,39,156,63,49,20,241,171,32,158,144,191,25,39,130,180,186,81,130,191,155,117,141,26,93,199,123,63,153,197,22,195,143,88,102,63,185,205,63,122,96,206,97,191,6,181,115,91,125,209,74,191,45,167,225,153,128,214,65,63,57,207,15,239,104,36,46,63,106,235,64,32,44,167,28,191,231,173,62,58,140,232,11,191,159,145,186,22,79,87,242,62,255,17,51,134,55,124,227,62,123,239,209,33,174,88,193,190,47,211,185,190,67,176,179,190,245,60,113,92,44,105,133,62,100,200,141,117,127,161,121,62,201,82,190,118,132,198,57,190,42,128,180,19,171,31,48,190,59,60,115,102,223,31,226,190,188,247,178,159,76,191,235,62,241,13,2,190,146,58,32,63,63,20,222,131,83,158,42,191,215,121,138,64,244,23,75,191,184,191,134,175,87,101,88,63,40,157,210,243,162,249,107,63,20,42,108,222,62,201,124,191,20,180,238,224,252,252,131,191,37,128,212,213,36,71,153,63,83,28,227,75,225,243,148,63,150,24,170,183,146,27,179,191,236,144,164,115,118,170,160,191,125,61,131,88,199,104,211,63,202,30,213,191,125,72,225,63,113,121,213,122,68,2,212,63,246,252,132,248,114,210,163,191,124,243,230,217,126,59,181,191,37,21,144,223,169,50,158,63,15,94,197,220,183,218,159,63,241,171,63,83,176,54,146,191,95,208,28,174,239,23,135,191,238,125,33,106,34,116,129,63,51,238,20,216,39,118,111,63,8,103,124,155,216,191,106,191,180,83,85,104,9,223,84,191,143,117,26,239,47,159,80,63,4,153,48,29,196,218,58,63,37,94,181,36,88,26,49,191,168,46,49,212,115,27,31,191,106,155,21,162,6,141,13,63,144,244,53,83,54,250,253,62,134,19,51,95,52,28,229,190,53,57,129,80,81,12,215,190,153,171,191,225,79,192,183,62,15,49,63,138,141,121,171,62,105,12,172,57,159,163,131,190,126,110,63,161,189,210,119,190,220,236,211,210,19,41,69,62,28,154,123,46,27,183,58,62,244,22,6,80,62,63,246,189,90,96,4,22,67,16,237,189,146,175,171,38,41,134,193,62,140,148,159,18,54,233,201,190,163,201,181,119,159,231,1,191,167,20,182,202,236,250,11,63,183,46,89,22,199,52,49,63,79,151,4,100,121,229,60,191,154,160,105,98,212,168,84,191,112,115,164,230,211,30,99,63,28,216,230,127,233,92,113,63,211,14,220,207,242,115,130,191,62,238,165,230,237,176,133,191,243,202,225,138,38,130,156,63,197,75,201,106,200,223,148,63,196,95,46,163,97,241,179,191,69,0,93,185,234,167,159,191,73,221,91,10,171,131,211,63,180,138,200,235,11,51,225,63,97,20,101,35,99,17,212,63,228,190,209,93,141,198,162,191,123,144,133,106,10,241,181,191,219,238,222,141,91,210,157,63,109,120,57,22,31,120,161,63,111,163,251,108,48,77,147,191,4,162,13,173,90,126,139,191,157,22,121,93,188,113,132,63,110,229,164,130,254,118,116,63,136,23,5,34,227,212,113,191,220,162,142,34,15,121,93,191,127,233,102,26,137,230,89,63,217,90,12,173,90,199,68,63,34,207,217,159,28,216,63,191,70,249,43,136,69,153,43,191,162,166,164,182,242,214,32,63,240,255,227,3,67,58,16,63,202,184,238,34,111,192,254,190,138,196,228,254,74,42,240,190,10,4,100,110,235,209,215,62,189,226,132,95,153,172,202,62,224,182,69,86,28,67,174,190,82,232,237,245,159,212,161,190,155,229,53,170,250,42,126,62,149,9,58,72,157,140,114,62,83,136,174,198,57,20,70,190,40,86,213,155,26,40,60,190,31,114,192,42,139,16,5,62,76,192,5,151,135,184,251,61,134,78,220,55,108,162,179,189,44,6,107,214,235,142,170,189,113,216,217,47,249,255,160,190,121,232,89,83,23,108,168,62,83,146,100,90,113,131,227,62,62,47,253,253,183,87,237,190,69,25,38,227,63,54,21,191,41,183,124,107,254,228,32,63,0,174,109,233,6,8,61,63,10,57,240,167,59,235,72,191,68,176,25,11,248,12,92,191,129,27,38,213,5,161,106,63,32,97,209,55,192,86,116,63,198,68,232,100,140,68,134,191,255,140,47,159,210,247,134,191,251,38,88,65,84,68,159,63,215,217,159,150,86,176,148,63,233,235,79,79,120,157,180,191,175,154,58,166,130,54,158,191,51,156,230,190,183,152,211,63,83,188,32,174,70,33,225,63,34,228,242,118,38,29,212,63,25,201,54,39,191,221,161,191,177,195,153,241,74,130,182,191,55,240,254,15,95,78,157,63,214,56,133,183,14,197,162,63,216,242,191,120,100,7,148,191,10,182,29,111,3,129,143,191,217,76,188,62,111,232,134,63,12,38,114,107,180,52,121,63,216,34,142,171,120,13,118,191,110,121,233,102,33,115,99,191,195,18,50,75,163,8,98,63,33,208,186,252,89,107,77,63,106,89,141,2,146,99,73,191,9,223,202,118,124,113,53,191,133,154,206,45,207,57,47,63,95,161,100,196,219,206,28,63,56,32,58,83,32,239,16,191,149,232,122,186,178,26,1,191,151,112,28,212,110,37,240,62,73,123,213,193,11,133,225,62,30,55,37,202,50,159,202,190,182,178,27,136,84,132,190,190,69,155,114,50,58,131,162,62,131,97,8,177,194,52,150,62,1,255,223,72,24,16,117,190,158,125,2,55,199,65,106,190,254,69,125,99,181,202,66,62,70,41,62,60,145,55,56,62,129,19,51,151,137,160,8,190,234,77,146,78,216,85,0,190,175,3,153,214,231,14,197,61,26,71,137,137,181,168,188,61,250,56,6,227,40,158,113,189,0,66,248,190,227,134,104,189,154,178,221,184,65,137,128,62,66,1,53,71,241,46,135,190,35,163,219,169,129,16,197,190,106,206,19,220,169,176,206,62,145,232,117,176,225,140,249,62,133,198,115,95,80,132,3,191,165,193,27,81,172,160,35,191,198,33,38,44,2,213,47,63,193,10,166,143,105,110,69,63,114,242,82,251,239,198,82,191,181,79,97,23,204,176,97,191,249,173,59,217,75,50,113,63,102,118,145,159,55,238,118,63,227,0,251,245,135,206,137,191,151,10,222,239,250,236,135,191,28,30,18,116,65,210,160,63,17,255,105,40,92,113,148,63,17,124,148,184,237,42,181,191,69,32,227,200,41,244,156,191,198,142,157,22,166,169,211,63,177,195,247,233,61,18,225,63,69,76,6,166,140,38,212,63,75,135,204,51,131,17,161,191,40,59,58,165,22,249,182,191,78,119,97,114,19,185,156,63,233,177,55,46,17,225,163,63,204,17,106,57,169,127,148,191,23,245,94,197,72,146,145,191,159,40,225,230,180,234,136,63,196,136,85,226,249,216,125,63,199,7,23,240,102,238,121,191,133,156,68,191,21,111,104,191,207,11,3,84,161,73,103,63,101,116,187,198,37,148,83,63,142,188,132,77,191,62,82,191,174,111,25,36,46,148,62,191,67,145,239,147,121,67,57,63,52,191,66,96,139,148,38,63,207,251,35,42,164,63,31,191,226,55,119,171,93,104,14,191,198,166,121,85,126,82,1,63,186,168,99,177,92,50,242,62,75,132,50,144,122,25,225,190,144,239,195,245,67,21,211,190,94,131,101,145,1,160,189,62,198,46,71,64,114,89,177,62,45,229,3,67,21,26,150,190,193,83,246,43,69,246,138,190,103,194,109,202,137,197,107,62,27,1,117,119,199,138,97,62,149,139,103,6,99,137,60,190,12,123,130,54,72,149,50,190,110,120,87,144,199,0,7,62,27,171,34,12,31,198,254,61,178,139,65,20,2,67,203,189,87,46,106,69,210,172,194,189,149,93,180,190,73,27,133,61,157,221,49,59,8,138,125,61,114,244,241,11,223,2,48,189,158,123,216,109,66,215,38,189,33,105,139,216,18,31,96,190,33,6,116,159,155,33,102,62,89,242,84,30,185,144,166,62,110,19,205,181,251,1,176,190,12,153,62,19,169,53,222,190,132,240,173,229,94,77,230,62,34,65,220,36,29,189,9,63,255,135,137,15,31,245,19,191,238,113,213,149,36,86,47,191,169,72,208,101,101,216,57,63,9,146,92,57,217,2,77,63,184,145,108,246,18,234,89,191,176,54,214,107,46,57,101,191,137,41,231,235,7,24,117,63,225,225,189,226,98,44,121,63,216,82,77,98,181,17,141,191,176,29,73,167,69,164,136,191,25,99,209,58,97,218,161,63,46,195,43,210,213,41,148,63,6,56,22,140,64,161,181,191,82,24,80,185,177,215,155,191,103,119,153,77,145,183,211,63,31,233,42,56,79,5,225,63,142,70,179,191,56,46,212,63,64,81,184,33,193,92,160,191,120,114,73,87,2,92,183,191,176,41,176,135,220,28,156,63,92,72,225,179,221,213,164,63,247,159,217,25,108,200,148,191,163,218,235,197,126,56,147,191,186,85,210,255,77,139,138,63,122,169,24,162,218,41,129,63,20,124,183,70,215,109,125,191,201,143,11,200,108,146,109,191,124,68,247,36,226,131,108,63,182,78,156,63,156,229,88,63,83,168,167,54,238,94,88,191,49,44,95,200,124,136,68,191,152,55,101,77,170,147,66,63,139,182,14,209,179,70,48,63,59,4,167,33,239,134,41,191,23,146,97,102,150,18,24,191,195,250,103,255,63,209,15,63,42,27,85,247,217,49,0,63,187,138,223,20,56,248,241,190,227,133,90,46,74,133,227,190,53,148,255,139,202,63,210,62,97,139,143,109,220,226,196,62,66,222,51,197,117,117,176,190,194,174,23,185,28,170,163,190,119,100,108,58,128,251,137,62,12,125,85,128,47,26,128,62,254,217,98,102,173,164,97,190,21,132,96,68,243,147,86,190,18,116,104,44,192,44,52,62,174,202,233,254,117,141,42,62,224,52,112,42,162,223,2,190,29,21,60,170,94,119,249,189,116,189,134,122,101,185,203,61,149,216,4,226,0,32,195,61,145,119,127,74,50,248,141,189,184,198,183,107,103,23,133,189,87,217,39,4,152,48,69,61,114,161,213,12,115,94,62,61,175,96,215,119,252,101,237,188,185,199,112,233,64,106,229,188,18,171,161,186,118,126,63,62,113,171,108,229,30,57,69,190,218,159,214,242,154,5,136,190,45,37,102,208,114,168,144,62,207,105,204,145,250,150,193,62,28,165,229,225,197,61,201,190,36,112,59,136,180,117,240,190,111,17,1,55,240,156,248,62,187,255,65,51,9,27,22,63,1,61,102,92,225,98,33,191,196,136,132,212,181,174,54,191,13,72,130,222,214,2,67,63,201,213,205,15,143,124,82,63,188,45,104,72,104,209,96,191,35,206,42,222,13,145,104,191,126,96,172,156,237,238,120,63,60,157,189,43,191,27,123,63,186,233,40,162,196,8,144,191,192,130,247,133,64,44,137,191,209,132,151,80,163,193,162,63,173,109,210,51,2,222,147,63,188,17,126,208,174,5,182,191,220,111,159,48,58,218,154,191,114,242,208,161,55,195,211,63,195,245,218,86,8,250,224,63,157,185,15,48,152,52,212,63,0,142,60,9,249,118,159,191,35,19,149,171,159,175,183,191,68,170,71,138,175,127,155,63,175,174,147,55,216,170,165,63,94,89,85,31,172,238,148,191,180,36,209,39,142,183,148,191,27,39,147,188,7,219,139,63,10,170,97,55,20,78,131,63,115,97,182,233,214,69,128,191,26,33,235,119,205,98,113,191,161,119,180,47,217,202,112,63,196,180,253,206,105,145,94,63,81,236,137,4,70,218,94,191,198,218,0,37,22,97,74,191,26,231,255,89,130,121,73,63,69,53,99,43,179,26,54,63,162,115,255,113,141,23,51,191,87,168,25,176,14,146,33,191,208,26,226,121,228,42,26,63,194,148,2,27,204,226,9,63,23,226,216,105,198,111,0,191,236,140,52,121,14,99,241,190,120,46,169,70,71,220,226,62,58,190,186,104,135,24,213,62,53,177,18,107,134,156,195,190,151,124,221,222,107,246,182,190,254,11,122,9,27,74,162,62,112,50,129,165,190,65,150,62,21,4,75,8,78,61,126,190,231,202,155,101,44,6,115,190,25,150,182,184,227,220,85,62,174,5,216,59,137,83,76,62,163,12,101,168,76,50,43,190,17,164,102,171,236,20,34,190,144,34,168,48,98,127,252,61,77,125,143,250,30,100,243,61,41,53,83,164,146,114,200,189,11,34,168,166,66,252,192,189,155,86,99,124,68,123,144,61,116,221,51,58,53,86,135,61,220,147,214,226,228,94,80,189,139,235,30,161,72,148,71,189,83,174,185,90,185,75,5,61,177,255,157,25,144,39,255,60,177,59,108,148,87,54,171,188,5,240,33,118,215,48,164,188,128,37,246,247,27,208,30,190,147,98,54,224,189,109,36,62,107,198,120,161,96,112,105,62,3,194,60,8,160,75,113,190,41,57,248,152,185,57,164,190,112,210,236,104,173,83,172,62,196,148,145,53,137,158,212,62,174,56,72,155,126,233,221,190,163,253,226,136,102,71,254,190,59,144,169,8,51,234,6,63,231,24,52,150,119,13,33,63,76,106,173,232,236,48,43,191,94,35,100,102,116,164,62,191,55,90,68,135,67,20,74,63,65,78,254,8,93,140,86,63,82,78,247,68,99,223,100,191,211,126,242,103,80,177,107,191,209,205,172,51,43,171,124,63,136,224,103,171,137,198,124,63,132,50,6,159,129,105,145,191,241,35,170,240,176,143,137,191,252,219,74,35,161,141,163,63,60,77,19,87,129,144,147,63,158,137,143,187,254,91,182,191,156,193,244,127,129,246,153,191,235,203,115,137,29,205,211,63,156,231,109,67,22,240,224,63,47,67,102,33,247,57,212,63,225,225,67,22,34,85,158,191,250,80,173,230,51,247,183,191,202,180,181,185,246,228,154,63,154,200,34,145,177,101,166,63,204,148,158,167,174,251,148,191,52,133,175,144,194,19,150,191,17,46,103,149,42,232,140,63,82,233,30,224,40,87,133,63,254,248,29,219,112,166,129,191,145,17,246,138,98,251,115,191,181,103,137,242,3,53,115,63,13,39,205,30,120,64,98,63,73,33,223,177,2,193,98,191,164,104,39,51,68,96,80,191,134,83,184,138,111,145,80,63,119,110,161,24,172,182,60,63,175,224,121,32,106,185,58,191,45,5,87,240,146,43,40,191,115,79,205,101,131,211,35,63,27,77,57,189,51,34,19,63,152,108,152,132,102,44,11,191,75,111,175,123,217,6,252,190,225,187,49,248,82,49,241,62,241,172,121,243,84,204,226,62,21,43,209,224,243,253,211,190,29,100,73,108,94,242,198,190,24,89,178,144,210,52,181,62,248,192,25,99,161,89,169,62,105,100,77,132,219,87,148,190,46,134,51,241,105,46,137,190,103,199,29,127,34,123,113,62,134,177,151,188,12,79,102,62,26,232,61,108,193,158,74,190,63,54,48,137,103,115,65,190,200,177,144,140,82,186,33,62,189,56,203,222,66,207,23,62,122,110,249,94,103,82,244,189,122,205,173,177,1,228,235,189,63,35,91,200,210,162,195,61,238,9,185,251,54,123,187,61,111,9,145,121,221,23,143,189,7,232,231,155,197,37,134,189,212,200,28,51,34,93,83,61,105,42,181,97,13,9,76,61,162,122,111,20,16,201,17,189,16,29,106,236,90,34,10,189,202,15,19,187,181,106,197,60,63,122,202,136,178,230,191,60,150,87,19,224,98,92,105,188,98,108,164,241,73,32,99,188,231,178,145,214,118,48,254,61,52,113,235,56,213,185,3,190,7,124,18,129,12,210,74,190,175,157,213,53,139,235,81,62,8,110,42,2,8,2,135,62,214,215,79,98,151,141,143,190,248,150,17,146,141,97,185,190,193,16,209,99,33,241,193,62,245,43,19,189,56,58,228,62,124,9,161,106,210,166,237,190,10,144,180,147,179,207,8,191,87,222,118,185,39,255,18,63,49,122,117,48,210,92,40,63,157,92,145,199,151,173,51,191,39,30,151,190,211,170,67,191,86,24,68,230,64,252,80,63,158,179,248,231,161,155,90,63,69,72,220,201,182,10,105,191,228,98,240,244,140,151,110,191,135,239,158,2,218,34,128,63,94,40,139,221,20,54,126,63,192,31,184,13,205,173,146,191,158,136,218,51,167,214,137,191,204,65,251,151,204,66,164,63,41,10,80,181,246,66,147,63,197,220,159,72,249,166,182,191,135,73,181,247,111,40,153,191,243,110,198,14,162,213,211,63,122,173,194,12,59,231,224,63,89,32,142,57,140,62,212,63,39,121,144,224,252,78,157,191,58,103,189,20,38,53,184,191,124,161,51,89,157,78,154,63,188,19,134,221,217,10,167,63,31,250,98,229,36,246,148,191,3,80,89,201,14,81,151,191,93,12,27,59,143,190,141,63,44,163,136,234,149,68,135,63,39,214,69,142,99,220,130,191,197,6,33,250,96,140,118,191,156,220,28,163,119,122,117,63,98,32,21,106,27,80,101,63,196,72,227,240,152,24,102,191,68,170,128,28,200,201,83,191,254,182,56,215,210,175,84,63,176,92,146,64,40,5,66,63,25,138,35,46,136,196,65,191,82,116,245,128,145,201,47,191,209,104,51,87,106,53,44,63,79,19,0,187,179,172,26,63,120,11,79,41,44,205,20,191,69,209,188,184,101,246,4,191,35,154,57,88,68,138,252,62,150,17,161,181,237,133,238,62,79,69,101,13,31,44,226,190,78,33,3,119,145,115,212,190,144,86,117,173,254,94,197,62,148,130,18,237,133,26,185,62,232,51,96,175,248,14,167,190,138,54,226,28,150,23,156,190,126,117,240,176,8,169,134,62,15,161,153,182,81,127,124,62,124,51,222,157,98,31,100,190,201,218,134,225,118,6,90,190,132,152,98,230,191,0,64,62,223,245,111,194,127,56,53,62,28,90,149,104,167,142,22,190,123,81,157,196,42,151,14,190,210,179,114,215,130,210,235,61,237,108,90,28,85,64,227,61,23,224,75,117,155,141,189,189,69,73,14,10,14,212,180,189,186,66,156,187,237,122,138,61,219,3,18,98,94,250,130,61,38,215,15,178,55,117,83,189,184,120,250,50,79,82,76,189,234,46,57,155,86,131,22,61,145,208,51,114,221,157,16,61,213,10,189,0,251,57,211,188,206,234,240,152,171,192,204,188,4,18,141,146,65,140,133,60,222,96,8,143,122,78,128,60,226,175,243,63,115,197,39,188,16,228,113,251,180,48,34,188,142,168,147,58,114,157,221,189,46,192,120,60,45,25,227,61,70,27,211,178,118,43,44,62,18,179,86,72,77,136,50,190,102,195,154,100,246,238,105,190,138,253,60,184,33,117,113,62,138,21,246,17,9,199,158,62,112,52,174,249,74,71,165,190,78,163,32,90,39,117,202,190,205,19,0,189,160,223,210,62,109,40,147,22,121,141,241,62,176,22,94,197,163,253,249,190,251,163,129,109,37,179,18,191,213,151,116,64,4,245,28,63,33,128,107,216,127,110,48,63,125,8,194,212,213,224,58,191,74,148,215,129,255,71,72,191,22,201,112,108,61,68,85,63,35,8,254,233,247,154,94,63,164,105,148,112,129,67,109,191,121,72,24,237,26,162,112,191,79,62,190,178,89,221,129,63,37,213,136,208,148,114,127,63,204,247,75,221,88,216,147,191,12,239,62,137,62,7,138,191,31,213,190,122,180,228,164,63,67,191,161,5,104,246,146,63,139,159,120,224,183,232,182,191,203,51,125,157,200,108,152,191,3,85,10,36,11,221,211,63,105,30,26,108,71,223,224,63,87,10,190,177,127,66,212,63,47,176,7,78,131,96,156,191,247,241,238,30,68,107,184,191,125,192,224,64,169,189,153,63,119,62,37,18,210,157,167,63,230,120,176,146,241,226,148,191,21,45,145,31,250,114,152,191,234,115,80,21,236,103,142,63,164,114,240,171,195,22,137,63,137,255,109,118,195,235,131,191,164,22,158,186,16,17,121,191,183,16,103,222,94,152,119,63,13,66,140,125,12,111,104,63,23,238,163,63,219,101,105,191,239,210,88,179,200,99,87,191,234,230,2,59,184,1,89,63,2,115,169,89,119,2,70,63,248,98,157,173,130,175,70,191,12,220,87,35,248,46,52,191,164,61,153,202,124,24,51,63,90,143,97,30,159,197,33,63,135,186,142,119,43,254,29,191,138,119,250,92,196,155,13,191,140,144,65,14,236,8,6,63,209,215,190,249,111,19,247,62,186,17,194,153,169,69,238,190,68,69,246,50,70,181,224,190,199,21,116,127,65,97,211,62,224,148,99,213,235,95,198,62,198,243,16,188,44,3,183,190,190,171,43,55,77,154,171,190,20,118,37,209,137,50,153,62,141,5,217,239,23,61,143,62,254,147,150,0,207,72,121,190,47,244,100,243,168,34,112,190,110,150,38,53,188,24,87,62,112,255,224,240,53,64,78,62,236,168,140,188,38,16,51,190,10,86,180,59,208,141,41,190,43,161,17,51,21,48,12,62,124,226,75,166,236,74,3,62,222,195,0,5,20,122,226,189,158,69,162,223,20,199,217,189,8,24,39,124,55,53,181,61,236,17,105,10,217,26,174,61,217,101,19,85,101,250,132,189,36,245,170,39,50,65,126,189,85,186,205,138,119,132,81,61,224,125,10,99,100,162,73,61,168,195,13,78,221,2,24,189,201,145,8,144,78,206,17,189,169,67,22,0,233,238,217,60,61,9,231,25,163,120,211,60,109,12,93,145,40,177,148,188,247,110,104,170,103,110,143,188,156,149,49,159,124,175,69,60,150,202,14,206,162,165,64,60,118,73,18,27,246,99,230,187,66,212,192,175,40,92,225,187,205,192,160,194,95,21,189,61,252,131,29,245,139,136,194,189,221,243,157,95,86,125,13,190,251,51,46,76,7,34,19,62,129,33,195,78,171,255,76,62,96,17,175,2,79,52,83,190,66,172,27,154,135,107,130,190,195,75,161,132,214,250,136,62,220,10,176,170,57,253,176,62,217,88,122,14,225,173,183,190,111,42,172,219,155,62,216,190,198,251,188,165,134,114,225,62,210,37,204,36,28,218,251,62,88,250,38,15,113,210,4,191,11,105,255,12,168,118,26,191,123,201,236,154,74,182,36,63,175,3,46,150,105,52,53,63,3,237,86,190,148,141,65,191,68,203,30,194,173,19,77,191,74,228,105,236,8,208,89,63,59,178,144,246,198,63,97,63,47,190,198,167,199,190,112,191,59,144,18,190,180,220,113,191,219,51,103,11,61,132,131,63,67,206,233,139,144,65,128,63,217,178,125,236,172,235,148,191,108,1,252,187,35,38,138,191,183,184,131,62,56,118,165,63,91,77,123,124,118,171,146,63,168,72,243,35,215,34,183,191,85,25,66,8,242,192,151,191,248,83,89,102,141,227,211,63,198,32,221,151,22,216,224,63,182,24,96,204,239,69,212,63,249,8,150,30,112,134,155,191,132,27,200,159,239,154,184,191,30,158,254,85,149,50,153,63,51,186,169,153,102,33,168,63,19,165,42,84,175,197,148,191,236,25,52,30,160,124,153,191,251,147,100,5,46,236,142,63,23,28,45,223,165,206,138,63,151,56,157,89,164,216,132,191,201,178,60,163,42,134,123,191,226,209,57,126,255,141,121,63,127,14,200,25,24,150,107,63,173,205,146,73,130,158,108,191,65,230,39,9,131,37,91,191,99,158,117,150,153,115,93,63,171,217,200,216,220,74,74,63,73,5,109,115,94,8,76,191,27,198,86,171,203,236,56,191,195,84,145,168,135,215,56,63,111,115,247,77,230,217,38,63,39,253,180,124,59,156,36,191,227,180,140,49,4,253,19,191,254,87,70,203,120,16,16,63,24,251,65,78,124,127,0,63,101,185,33,43,65,139,247,190,29,160,214,230,167,129,233,190,163,128,108,205,34,49,224,62,198,152,122,36,223,96,210,62,103,188,65,169,179,211,196,190,231,91,74,242,229,153,184,190,242,225,90,51,13,240,168,62,105,158,138,214,203,124,158,62,254,212,145,200,130,168,139,190,103,106,52,43,123,108,129,190,18,4,94,254,149,67,108,62,45,247,46,32,182,73,98,62,122,11,178,49,3,118,74,190,105,233,25,123,91,137,65,190,50,255,119,225,85,141,38,62,25,49,92,238,153,139,30,62,65,132,6,192,3,95,1,190,164,34,239,55,126,254,247,189,43,74,40,193,71,251,215,61,81,201,181,104,117,220,208,61,177,164,93,189,123,94,173,189,226,26,94,168,91,253,164,189,179,220,146,180,138,130,127,61,240,111,149,253,85,220,118,61,31,167,86,178,132,39,77,189,192,47,101,234,87,114,69,189,101,92,213,238,208,201,22,61,44,57,135,103,198,250,16,61,156,9,205,226,214,66,221,188,132,17,182,232,5,16,214,188,7,97,101,242,218,160,157,60,153,209,128,192,73,150,150,60,69,190,116,166,51,46,86,188,196,53,61,206,106,21,81,188,73,137,192,204,203,211,5,60,191,218,73,206,54,249,0,60,7,127,125,34,207,45,165,187,179,4,247,104,21,158,160,187,225,43,212,75,223,150,156,189,216,56,52,77,109,5,162,61,171,135,132,124,72,200,238,61,200,154,143,144,221,184,243,189,11,46,164,250,175,25,48,190,235,133,118,196,218,3,53,62,169,77,13,24,194,204,101,62,194,218,223,201,75,15,109,190],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([66,133,58,148,243,120,149,190,90,216,242,147,34,83,157,62,55,25,37,46,162,101,192,62,14,140,132,208,241,7,199,190,80,246,222,162,111,52,228,190,126,97,74,175,49,84,237,62,223,93,134,12,33,164,4,63,94,217,204,129,114,39,15,191,50,72,42,80,8,212,33,191,87,185,179,64,41,51,44,63,90,102,40,24,81,108,58,63,30,6,153,216,223,32,70,191,93,81,194,182,146,253,80,191,160,114,50,110,139,143,94,63,228,214,152,58,11,33,99,63,66,12,166,97,212,215,114,191,33,135,103,86,24,253,114,191,240,50,178,27,97,23,133,63,204,154,49,129,230,182,128,63,143,118,242,177,25,234,149,191,127,152,177,116,244,54,138,191,217,200,41,247,174,249,165,63,255,240,237,75,130,98,146,63,37,161,112,20,153,86,183,191,136,115,82,58,207,34,151,191,207,77,211,42,81,233,211,63,45,119,36,116,139,209,224,63,54,227,222,187,243,72,212,63,109,144,237,19,20,190,154,191,53,110,138,216,59,197,184,191,195,9,161,15,136,173,152,63,212,19,177,227,217,151,168,63,182,183,241,39,13,161,148,191,131,78,119,63,184,112,154,191,120,219,31,254,202,81,143,63,225,238,135,228,125,109,140,63,80,146,196,37,226,166,133,191,154,127,69,108,128,233,125,191,55,185,197,119,253,91,123,63,46,1,3,148,76,191,110,63,173,86,59,147,82,187,111,191,166,121,31,231,227,6,95,191,191,16,93,16,112,250,96,63,199,151,186,9,8,214,78,63,184,31,197,246,237,220,80,191,30,12,168,164,113,22,62,191,96,37,51,167,199,71,63,63,136,142,96,15,215,140,44,63,93,238,216,106,166,61,43,191,226,174,123,128,232,7,26,191,206,129,120,155,135,92,22,63,146,150,101,47,143,143,6,63,181,15,214,141,214,84,1,191,193,134,98,136,82,113,242,190,198,18,247,65,136,89,233,62,171,247,238,233,246,75,220,62,162,78,221,185,37,115,209,190,109,191,117,52,117,77,196,190,196,46,33,203,29,136,182,62,155,208,52,231,133,43,171,62,138,233,40,184,228,44,155,190,90,69,189,152,140,231,144,190,111,3,255,12,119,123,126,62,205,58,179,80,43,126,115,62,177,60,86,180,88,167,95,190,95,229,45,207,162,191,84,190,142,119,105,254,232,71,62,62,22,209,174,131,201,75,52,62,231,170,28,208,127,138,26,190,48,205,58,4,12,39,18,190,214,149,89,55,245,46,245,61,197,113,213,100,220,131,237,61,39,225,83,196,208,146,206,189,21,94,112,77,66,169,197,189,169,248,207,221,24,200,163,61,199,117,67,229,181,119,156,61,236,143,198,87,136,184,118,189,25,75,15,4,101,149,112,189,151,11,137,69,148,224,70,61,121,114,113,193,90,235,64,61,105,209,242,175,194,224,19,189,208,177,162,137,137,195,13,189,35,171,160,230,227,51,221,60,93,213,1,245,213,28,214,60,81,105,244,59,171,161,161,188,116,208,164,159,71,252,154,188,55,14,165,166,19,205,96,60,43,158,89,88,51,248,89,60,113,193,31,94,200,176,23,188,129,35,213,91,168,122,18,188,148,254,135,244,193,248,197,59,189,180,249,183,140,73,193,59,54,119,85,153,77,27,100,187,43,240,139,33,212,229,95,187,17,202,72,71,221,232,222,63,132,241,227,214,189,196,234,63,19,91,107,11,191,176,204,63,221,214,146,193,125,144,192,191,233,15,81,110,121,74,213,63,195,119,125,36,14,210,233,63,92,50,241,11,162,110,221,63,86,169,197,133,10,72,193,191,180,132,13,181,122,223,181,191,27,154,47,55,46,9,162,63,23,72,138,214,139,127,160,63,194,191,133,217,27,208,137,191,253,94,201,182,115,102,185,191,178,238,190,36,26,16,211,63,191,24,177,84,58,184,233,63,78,243,214,247,251,216,223,63,187,53,40,152,198,88,158,191,234,144,45,195,97,101,179,191,72,204,100,57,0,2,148,63,130,124,22,28,184,155,149,191,115,12,29,158,38,113,198,191,18,163,54,117,36,0,145,63,193,245,76,64,142,73,228,63,89,129,126,226,39,38,231,63,141,0,171,191,219,133,201,63,147,130,208,129,103,9,164,191,91,171,123,128,91,58,158,63,96,214,144,42,51,253,155,63,183,57,68,178,162,243,127,191,46,185,82,41,82,246,92,63,14,249,215,172,46,230,166,63,158,141,86,78,212,144,149,191,72,143,212,104,95,152,178,191,243,72,171,185,162,160,213,63,140,174,182,49,91,52,233,63,16,61,197,230,117,109,223,63,131,12,214,20,81,188,168,191,167,4,162,148,153,52,190,191,249,22,186,199,141,152,108,63,110,203,68,142,48,140,143,63,217,136,56,89,123,7,133,63,115,175,39,233,11,109,112,63,247,98,45,23,82,153,187,191,30,125,204,102,17,237,193,191,179,223,65,107,232,120,210,63,74,15,18,121,134,145,232,63,191,108,39,53,191,39,225,63,107,5,204,208,30,220,145,63,192,69,245,58,253,94,169,191,150,202,57,98,106,97,177,63,64,29,70,108,117,63,159,63,246,216,223,238,15,225,137,191,123,71,247,245,12,41,81,191,229,213,170,59,44,248,101,63,3,113,178,183,6,247,94,63,108,96,58,180,41,218,51,191,231,194,120,36,74,159,142,191,205,208,210,42,136,51,111,63,252,127,110,39,130,40,169,63,243,87,74,45,78,223,155,191,209,253,171,23,165,152,170,191,144,10,231,24,4,83,215,63,209,17,79,167,180,222,232,63,244,49,241,181,152,206,222,63,177,145,159,194,56,95,175,191,173,2,182,49,119,87,194,191,179,124,62,84,7,41,127,63,94,60,48,171,86,58,160,63,231,128,76,81,188,195,65,191,107,102,131,188,112,181,107,191,158,78,190,45,196,133,81,63,189,132,8,25,55,2,63,191,196,245,148,90,83,5,133,191,252,146,52,193,206,36,130,63,182,77,186,245,168,200,175,63,179,151,184,164,223,171,146,191,16,195,248,213,188,132,200,191,25,190,30,77,60,15,162,63,45,245,51,144,60,193,227,63,24,190,139,77,3,249,230,63,197,148,230,183,183,143,206,63,141,167,172,103,118,240,171,191,0,166,222,180,112,30,67,63,47,46,227,72,69,243,158,63,119,80,150,46,26,156,135,191,103,156,156,92,85,46,139,191,191,118,14,83,25,79,68,63,152,155,145,151,221,243,86,63,49,206,95,215,68,26,62,191,47,118,33,233,64,231,13,63,91,26,87,165,74,208,114,63,188,46,84,167,115,91,74,191,128,68,57,227,236,215,148,191,44,119,96,202,242,156,119,63,0,211,18,228,240,152,169,63,218,227,54,48,0,97,160,191,216,112,72,36,223,49,162,191,26,55,135,30,158,144,216,63,133,97,94,131,211,159,232,63,191,14,21,13,46,48,222,63,98,171,28,15,58,37,178,191,134,219,218,251,78,106,196,191,201,2,3,149,237,198,135,63,207,120,252,108,198,131,167,63,148,66,210,144,66,2,88,191,143,109,81,142,135,178,129,191,191,4,210,197,204,17,25,63,0,254,174,152,145,60,73,63,90,236,67,154,61,8,64,63,208,199,138,132,226,249,28,63,104,91,130,44,252,43,122,191,206,247,66,201,149,105,96,191,100,231,101,249,30,4,166,63,14,57,238,21,124,14,162,63,254,211,145,96,84,130,194,191,200,30,170,216,32,50,202,191,166,85,250,120,159,108,206,63,65,188,69,111,249,94,231,63,171,164,227,33,3,78,226,63,179,186,108,117,254,225,184,63,121,9,177,69,113,97,151,191,162,141,206,225,255,233,177,63,168,16,183,116,145,246,162,63,68,35,117,236,165,168,152,191,45,230,144,157,101,48,132,191,171,8,4,191,216,172,122,63,108,194,230,224,117,71,67,63,145,218,109,153,117,106,92,191,152,122,182,148,16,87,4,191,119,157,19,83,8,130,38,63,65,240,12,69,122,120,39,191,197,114,143,173,69,10,243,190,214,236,112,108,238,64,99,63,247,155,77,57,121,41,52,63,176,67,58,179,70,225,141,191,207,53,199,201,205,85,101,191,146,196,148,104,130,152,173,63,216,5,93,220,132,86,143,63,221,55,107,254,180,206,197,191,82,1,15,83,155,13,180,191,104,169,230,142,140,157,221,63,242,33,133,183,107,110,232,63,35,242,143,7,89,135,217,63,15,121,210,48,183,177,150,191,249,232,58,39,199,90,162,191,242,37,121,23,8,46,169,63,173,98,3,139,182,240,126,63,171,66,25,47,81,205,152,191,85,201,39,200,100,21,87,191,195,128,99,166,39,95,126,63,11,110,19,63,251,158,39,63,168,36,250,52,73,29,86,191,175,39,226,252,151,207,231,190,220,161,3,192,253,89,29,63,120,119,109,230,119,118,18,63,122,86,166,249,90,89,3,63,235,14,169,56,62,163,71,191,106,117,111,85,95,21,59,63,122,237,242,244,131,62,119,63,38,11,249,14,199,115,88,191,197,111,174,224,103,63,149,191,0,141,167,227,135,10,146,63,82,172,168,23,0,202,183,63,6,90,6,214,23,16,130,63,4,227,170,81,148,251,193,191,38,87,232,66,12,56,188,63,18,180,160,124,69,160,228,63,153,171,70,192,126,67,230,63,230,32,113,57,100,78,201,63,207,36,199,221,55,214,191,191,143,150,237,95,162,151,174,191,120,217,5,233,240,99,140,63,160,196,122,202,237,159,145,191,138,218,218,87,180,179,148,191,31,206,217,189,162,177,117,63,179,134,152,190,209,211,126,63,98,75,71,249,227,103,38,191,172,135,63,212,254,156,82,191,48,124,25,194,193,188,2,191,55,84,71,245,10,225,17,63,186,7,248,104,168,100,7,63,27,95,131,238,151,68,244,62,181,253,33,22,124,217,67,191,21,171,138,156,82,49,19,191,16,205,21,88,219,144,114,63,209,208,223,236,108,153,80,63,207,101,19,76,230,231,147,191,12,34,8,237,221,95,99,191,103,176,161,0,57,224,177,63,253,112,213,201,40,133,154,63,70,212,40,144,203,122,196,191,196,48,82,57,213,192,173,191,78,133,200,176,230,107,222,63,62,183,30,178,185,81,232,63,93,34,100,183,54,42,217,63,132,8,251,48,55,21,162,191,55,164,20,219,68,130,173,191,53,12,157,4,110,42,163,63,113,175,217,120,115,136,113,63,143,143,218,1,157,229,157,191,252,69,103,149,21,143,102,191,0,20,245,113,164,142,132,63,153,251,11,230,116,4,56,63,61,176,90,59,123,33,101,191,37,148,70,198,211,122,16,191,36,153,91,47,164,28,58,63,170,214,14,170,201,130,231,62,240,238,155,138,221,34,251,190,2,204,138,228,140,13,254,62,65,82,6,12,218,197,246,62,111,139,107,183,68,91,58,191,24,70,254,120,30,90,28,191,230,206,160,18,63,132,108,63,49,33,157,127,22,1,89,63,50,146,131,68,87,149,145,191,225,7,57,178,201,232,129,191,163,202,220,128,120,102,177,63,90,150,249,85,57,130,177,63,104,161,216,188,193,40,193,191,222,93,55,114,13,43,201,191,210,45,163,128,43,58,207,63,47,65,164,141,86,25,231,63,5,194,111,231,56,132,226,63,3,34,10,229,120,141,188,63,219,75,67,139,201,8,165,191,95,90,43,226,71,219,164,63,191,117,33,72,210,118,150,63,243,170,31,39,166,231,163,191,44,193,229,69,232,222,147,191,142,241,126,159,207,164,132,63,102,145,119,30,127,11,108,63,184,211,224,101,31,105,109,191,222,6,49,101,211,132,49,191,168,87,135,204,72,138,81,63,242,16,143,82,108,230,12,63,112,92,112,236,234,14,37,191,43,189,52,206,97,222,222,190,226,131,241,205,80,94,228,62,95,188,42,92,31,165,230,190,174,230,77,0,110,162,214,190,171,212,187,13,207,175,37,63,154,67,71,156,203,43,3,63,185,176,89,78,0,239,85,191,160,132,161,0,254,28,45,191,152,204,160,18,197,106,124,63,200,53,149,44,154,71,86,63,150,232,3,63,55,141,153,191,66,210,203,147,148,193,108,191,184,251,17,234,73,250,179,63,134,126,74,190,92,117,159,63,178,242,16,87,132,109,196,191,144,92,59,175,53,171,171,191,207,85,141,59,4,108,222,63,165,13,49,228,115,53,232,63,141,26,25,79,118,106,217,63,121,176,171,152,182,179,161,191,71,152,36,21,205,37,177,191,49,190,23,134,246,141,160,63,21,101,48,229,205,241,115,63,209,171,219,242,226,203,159,191,85,78,43,32,200,156,105,191,207,115,207,241,3,241,137,63,251,126,247,122,204,136,71,63,215,184,131,230,220,202,111,191,138,40,215,154,169,109,28,191,157,124,194,205,17,238,75,63,78,191,170,120,73,113,253,62,224,57,184,127,210,175,28,191,123,78,169,188,79,30,202,190,183,136,200,51,107,33,218,62,72,23,74,124,167,205,207,62,135,7,180,17,43,147,196,190,84,28,132,5,14,241,19,191,30,209,155,249,179,110,250,62,69,203,139,217,88,150,71,63,254,103,84,115,95,158,14,63,106,93,149,135,87,27,112,191,96,101,169,237,219,55,95,191,202,69,212,156,151,99,137,63,113,51,125,179,58,98,132,63,138,252,214,230,201,120,146,191,113,239,84,60,96,190,125,191,95,160,20,76,239,139,144,63,56,76,16,168,189,8,182,191,250,140,175,209,135,217,195,191,32,100,180,205,235,27,199,63,36,228,114,2,194,206,229,63,66,179,44,174,171,210,228,63,176,135,4,241,27,58,194,63,248,1,244,9,103,90,190,191,35,109,79,38,137,175,145,63,6,59,218,204,50,209,186,63,117,65,235,228,105,85,146,63,184,50,173,118,145,11,161,191,57,27,29,150,79,189,115,191,205,220,75,121,199,119,133,63,188,199,64,183,27,19,76,63,155,100,219,20,182,117,102,191,130,47,204,79,16,44,34,191,229,32,225,226,228,49,63,63,252,213,29,51,47,83,236,190,128,208,130,223,161,127,16,191,106,106,51,208,70,82,199,62,179,223,62,189,60,6,210,62,250,85,236,100,241,98,185,190,107,89,128,23,199,84,170,62,147,166,159,165,67,254,254,62,91,78,143,91,233,172,228,190,61,121,57,161,227,107,49,191,49,105,202,87,22,220,8,63,162,36,134,4,212,101,87,63,189,136,141,140,71,190,40,191,103,106,57,85,81,118,117,191,211,105,43,6,128,210,81,63,46,143,70,92,204,190,142,63,103,240,101,182,70,182,106,191,191,63,149,31,165,60,160,191,200,250,191,232,230,182,121,63,69,190,0,217,220,54,157,63,135,172,200,61,129,228,178,191,20,173,18,48,75,161,160,191,192,114,193,92,233,177,217,63,251,151,193,219,186,29,232,63,138,220,227,82,130,85,222,63,66,134,140,224,144,163,170,191,183,113,245,110,218,120,196,191,152,149,213,76,225,103,161,63,162,235,228,244,111,143,181,63,189,97,151,171,181,203,116,191,83,131,232,105,138,13,159,191,222,115,5,54,47,235,90,63,167,55,103,234,222,117,131,63,222,35,174,180,45,248,58,191,134,113,167,120,138,244,98,191,138,116,102,152,229,103,18,63,120,6,96,89,154,246,57,63,84,212,232,139,118,103,237,190,114,172,56,195,234,184,7,191,54,176,129,162,81,187,182,62,229,190,62,241,138,234,197,62,207,243,222,94,55,96,189,62,77,52,172,203,202,76,193,62,125,54,178,132,195,132,253,190,165,87,37,234,116,163,241,190,67,247,246,156,46,26,50,63,70,164,194,123,216,242,32,63,189,0,3,36,31,239,91,191,14,3,61,24,130,63,68,191,229,89,32,172,202,235,128,63,9,115,174,48,43,177,113,63,13,206,97,180,251,95,156,191,198,221,12,111,100,80,145,191,5,71,27,115,201,133,181,63,186,64,94,226,48,248,183,63,220,225,61,157,4,194,189,191,160,116,144,226,185,154,198,191,176,99,162,211,110,135,208,63,189,116,83,79,153,6,231,63,235,118,18,212,41,128,226,63,186,188,36,209,29,233,187,63,121,141,241,123,82,73,177,191,51,239,229,225,200,86,130,63,189,191,119,196,92,188,124,63,244,222,50,240,171,224,167,191,218,190,254,138,21,50,151,191,19,184,138,52,52,45,144,63,111,215,229,175,193,81,128,63,39,20,131,111,5,251,116,191,33,135,236,161,87,4,83,191,198,32,190,99,243,96,97,63,165,143,40,56,117,220,36,63,57,39,99,230,45,213,68,191,193,161,116,189,44,46,8,191,138,110,17,234,180,73,30,63,113,76,46,189,210,155,226,62,52,229,105,255,77,234,232,190,111,216,3,244,59,176,165,190,114,37,160,50,237,105,162,62,100,110,24,50,174,60,165,190,201,75,32,248,248,218,149,190,96,119,176,41,171,196,233,62,98,81,187,149,34,251,210,62,143,14,12,200,255,197,30,191,122,74,45,177,142,232,251,190,223,228,176,24,106,127,72,63,64,34,48,70,25,113,32,63,87,164,216,184,146,112,108,191,194,12,157,235,127,6,68,191,167,79,84,106,202,229,136,63,2,50,64,192,16,195,95,63,189,62,10,57,116,28,162,191,129,8,250,65,36,8,124,191,188,252,38,122,112,195,182,63,220,227,154,23,124,143,162,63,253,6,18,102,212,141,196,191,232,10,27,84,64,40,170,191,207,78,99,187,27,53,222,63,152,151,17,107,134,9,232,63,1,144,74,115,36,249,217,63,150,121,131,248,247,136,158,191,102,82,9,48,249,56,180,191,21,48,98,22,121,49,154,63,83,25,4,65,233,162,128,63,103,200,65,204,187,49,160,191,65,186,194,162,169,37,107,191,152,246,209,105,130,105,145,63,134,117,196,106,220,80,87,63,206,247,31,223,129,15,123,191,219,84,22,225,117,1,52,191,161,144,128,126,240,28,97,63,42,76,176,216,145,234,18,63,124,119,230,237,26,54,64,191,51,6,162,215,138,56,244,190,91,236,8,107,253,243,20,63,159,132,69,130,145,97,201,62,218,251,159,190,172,155,224,190,216,68,70,138,188,133,137,190,69,115,221,145,226,204,152,62,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,0,64,0,0,0,0,0,0,24,64,0,0,0,0,0,0,56,64,0,0,0,0,0,0,94,64,0,0,0,0,0,128,134,64,0,0,0,0,0,176,179,64,0,0,0,0,0,176,227,64,0,0,0,0,0,38,22,65,0,0,0,0,128,175,75,65,0,0,0,0,168,8,131,65,0,0,0,0,252,140,188,65,0,0,0,192,140,50,247,65,0,0,0,40,59,76,52,66,0,0,128,117,119,7,115,66,0,0,128,117,119,7,179,66,0,0,216,236,238,55,244,66,0,0,115,202,236,190,54,67,0,144,104,48,185,2,123,67,0,90,65,190,179,225,192,67,32,198,181,233,59,40,6,68,108,240,89,97,82,119,78,68,206,164,248,53,195,229,149,68,154,123,122,104,82,108,224,68,33,97,63,195,64,169,41,69,235,126,163,158,132,217,116,69,22,243,217,229,135,151,193,69,103,105,61,210,45,201,14,70,133,167,135,134,81,230,91,70,13,45,31,110,236,39,170,70,164,51,174,10,173,86,249,70,164,51,174,10,173,86,73,71,65,165,3,115,98,33,154,71,150,223,51,154,120,195,235,71,140,188,168,232,203,93,62,72,15,234,222,178,194,20,145,72,161,190,209,30,1,192,227,72,95,18,153,84,1,116,55,73,100,142,26,159,97,149,140,73,254,152,112,3,93,221,225,73,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,98,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,220,116,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,98,0,0,100,98,49,0,10,32,70,105,108,116,101,114,32,78,111,116,32,105,110,32,68,97,116,97,98,97,115,101,32,0,98,105,111,114,49,46,49,0,98,105,111,114,49,46,51,0,98,105,111,114,49,46,53,0,98,105,111,114,50,46,50,0,98,105,111,114,50,46,52,0,98,105,111,114,50,46,54,0,98,105,111,114,50,46,56,0,98,105,111,114,51,46,49,0,98,105,111,114,51,46,51,0,98,105,111,114,51,46,53,0,98,105,111,114,51,46,55,0,98,105,111,114,51,46,57,0,98,105,111,114,52,46,52,0,98,105,111,114,53,46,53,0,98,105,111,114,54,46,56,0,114,98,105,111,114,49,46,49,0,114,98,105,111,114,49,46,51,0,114,98,105,111,114,49,46,53,0,114,98,105,111,114,50,46,50,0,114,98,105,111,114,50,46,52,0,114,98,105,111,114,50,46,54,0,114,98,105,111,114,50,46,56,0,114,98,105,111,114,51,46,49,0,114,98,105,111,114,51,46,51,0,114,98,105,111,114,51,46,53,0,114,98,105,111,114,51,46,55,0,114,98,105,111,114,51,46,57,0,114,98,105,111,114,52,46,52,0,114,98,105,111,114,53,46,53,0,114,98,105,111,114,54,46,56,0,100,98,50,0,100,98,51,0,100,98,52,0,100,98,53,0,100,98,54,0,100,98,55,0,100,98,56,0,100,98,57,0,100,98,49,48,0,100,98,49,49,0,100,98,49,50,0,100,98,49,51,0,100,98,49,52,0,100,98,49,53,0,100,98,49,54,0,100,98,49,55,0,100,98,49,56,0,100,98,49,57,0,100,98,50,48,0,100,98,50,49,0,100,98,50,50,0,100,98,50,51,0,100,98,50,52,0,100,98,50,53,0,100,98,50,54,0,100,98,50,55,0,100,98,50,56,0,100,98,50,57,0,100,98,51,48,0,100,98,51,49,0,100,98,51,50,0,100,98,51,51,0,100,98,51,52,0,100,98,51,53,0,100,98,51,54,0,100,98,51,55,0,100,98,51,56,0,99,111,105,102,49,0,99,111,105,102,50,0,99,111,105,102,51,0,99,111,105,102,52,0,99,111,105,102,53,0,99,111,105,102,54,0,99,111,105,102,55,0,99,111,105,102,56,0,99,111,105,102,57,0,99,111,105,102,49,48,0,99,111,105,102,49,49,0,99,111,105,102,49,50,0,99,111,105,102,49,51,0,99,111,105,102,49,52,0,99,111,105,102,49,53,0,99,111,105,102,49,54,0,99,111,105,102,49,55,0,115,121,109,50,0,115,121,109,51,0,115,121,109,52,0,115,121,109,53,0,115,121,109,54,0,115,121,109,55,0,115,121,109,56,0,115,121,109,57,0,115,121,109,49,48,0,115,121,109,49,49,0,115,121,109,49,50,0,115,121,109,49,51,0,115,121,109,49,52,0,115,121,109,49,53,0,115,121,109,49,54,0,115,121,109,49,55,0,115,121,109,49,56,0,115,121,109,49,57,0,115,121,109,50,48,0,84,104,105,115,32,112,114,111,103,114,97,109,32,105,115,32,111,110,108,121,32,118,97,108,105,100,32,102,111,114,32,78,32,60,61,32,52,48,32,0,110,112,97,100,32,109,117,115,116,32,98,101,32,62,61,32,78,32,0,10,32,84,104,101,32,68,101,99,111,109,112,111,115,105,116,105,111,110,32,73,116,101,114,97,116,105,111,110,115,32,67,97,110,110,111,116,32,69,120,99,101,101,100,32,49,48,48,46,32,69,120,105,116,105,110,103,32,0,10,32,70,111,114,32,83,87,84,32,116,104,101,32,115,105,103,110,97,108,32,108,101,110,103,116,104,32,109,117,115,116,32,98,101,32,97,32,109,117,108,116,105,112,108,101,32,111,102,32,50,94,74,46,32,0,104,97,97,114,0,100,98,0,99,111,105,102,0,10,32,77,79,68,87,84,32,105,115,32,111,110,108,121,32,105,109,112,108,101,109,101,110,116,101,100,32,102,111,114,32,111,114,116,104,111,103,111,110,97,108,32,119,97,118,101,108,101,116,32,102,97,109,105,108,105,101,115,32,45,32,100,98,44,32,115,121,109,32,97,110,100,32,99,111,105,102,32,0,100,105,114,101,99,116,0,102,102,116,0,70,70,84,0,68,101,99,111,109,112,111,115,105,116,105,111,110,32,70,105,108,116,101,114,115,32,109,117,115,116,32,104,97,118,101,32,116,104,101,32,115,97,109,101,32,108,101,110,103,116,104,46,0,67,111,110,118,111,108,117,116,105,111,110,32,79,110,108,121,32,97,99,99,101,112,116,115,32,116,119,111,32,109,101,116,104,111,100,115,32,45,32,100,105,114,101,99,116,32,97,110,100,32,102,102,116,0,83,87,84,32,79,110,108,121,32,97,99,99,101,112,116,115,32,116,119,111,32,109,101,116,104,111,100,115,32,45,32,100,105,114,101,99,116,32,97,110,100,32,102,102,116,0,83,105,103,110,97,108,32,101,120,116,101,110,115,105,111,110,32,99,97,110,32,98,101,32,101,105,116,104,101,114,32,112,101,114,32,111,114,32,115,121,109,0,10,32,69,114,114,111,114,32,45,32,84,104,101,32,83,105,103,110,97,108,32,67,97,110,32,111,110,108,121,32,98,101,32,105,116,101,114,97,116,101,100,32,37,100,32,116,105,109,101,115,32,117,115,105,110,103,32,116,104,105,115,32,119,97,118,101,108,101,116,46,32,69,120,105,116,105,110,103,10,0,65,99,99,101,112,116,97,98,108,101,32,87,84,32,109,101,116,104,111,100,115,32,97,114,101,32,45,32,100,119,116,44,115,119,116,32,97,110,100,32,109,111,100,119,116,0,102,105,114,115,116,0,97,108,108,0,65,99,99,101,112,116,97,98,108,101,32,78,111,105,115,101,32,101,115,116,105,109,97,116,105,111,110,32,108,101,118,101,108,32,118,97,108,117,101,115,32,97,114,101,32,45,32,102,105,114,115,116,32,97,110,100,32,97,108,108,32,0,104,97,114,100,0,115,111,102,116,0,65,99,99,101,112,116,97,98,108,101,32,87,84,32,109,101,116,104,111,100,115,32,97,114,101,32,45,32,100,119,116,32,97,110,100,32,115,119,116,0,100,119,116,0,68,87,84,0,112,101,114,0,115,121,109,0,115,119,116,0,83,87,84,0,109,111,100,119,116,0,77,79,68,87,84,0,109,111,114,108,101,116,0,112,97,117,108,0,112,111,119,0,112,111,119,101,114,0,108,105,110,0,108,105,110,101,97,114,0,10,32,84,121,112,101,32,97,99,99,101,112,116,115,32,111,110,108,121,32,116,119,111,32,118,97,108,117,101,115,32,58,32,112,111,119,32,97,110,100,32,108,105,110,0,86,105,115,117,115,104,114,105,110,107,0,83,117,114,101,115,104,114,105,110,107,0,97,112,112,120,0,100,101,116,0,84,104,105,115,32,102,117,110,99,116,105,111,110,32,103,101,116,115,32,114,101,99,111,110,115,116,114,117,99,116,105,111,110,32,99,111,101,102,102,105,99,105,101,110,116,115,32,111,110,108,121,32,102,111,114,32,68,87,84,32,100,101,99,111,109,112,111,115,105,116,105,111,110,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_i64Subtract"]=_i64Subtract;Module["_i64Add"]=_i64Add;function _llvm_exp2_f32(x){return Math.pow(2,x)}function _llvm_exp2_f64(){return _llvm_exp2_f32.apply(null,arguments)}Module["_memset"]=_memset;Module["_bitshift64Lshr"]=_bitshift64Lshr;Module["_bitshift64Shl"]=_bitshift64Shl;function _abort(){Module["abort"]()}function ___lock(){}function ___unlock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC);Module["_llvm_cttz_i32"]=_llvm_cttz_i32;Module["___udivmoddi4"]=___udivmoddi4;Module["___udivdi3"]=___udivdi3;var _llvm_pow_f64=Math_pow;function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}Module["_sbrk"]=_sbrk;Module["___uremdi3"]=___uremdi3;function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;function __exit(status){Module["exit"](status)}function _exit(status){__exit(status)}Module["_llvm_bswap_i32"]=_llvm_bswap_i32;function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffer){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module["print"]:Module["printErr"])(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=DYNAMIC_BASE;staticSealed=true;function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity,"byteLength":byteLength};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_ii":invoke_ii,"invoke_iiii":invoke_iiii,"invoke_iii":invoke_iii,"_llvm_exp2_f64":_llvm_exp2_f64,"_llvm_pow_f64":_llvm_pow_f64,"___lock":___lock,"_llvm_exp2_f32":_llvm_exp2_f32,"_abort":_abort,"___setErrNo":___setErrNo,"___syscall6":___syscall6,"___syscall140":___syscall140,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___syscall54":___syscall54,"___unlock":___unlock,"_exit":_exit,"__exit":__exit,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX,"cttz_i8":cttz_i8};// EMSCRIPTEN_START_ASM var asm=(function(global,env,buffer) { "almost asm";var a=global.Int8Array;var b=new a(buffer);var c=global.Int16Array;var d=new c(buffer);var e=global.Int32Array;var f=new e(buffer);var g=global.Uint8Array;var h=new g(buffer);var i=global.Uint16Array;var j=new i(buffer);var k=global.Uint32Array;var l=new k(buffer);var m=global.Float32Array;var n=new m(buffer);var o=global.Float64Array;var p=new o(buffer);var q=global.byteLength;var r=env.DYNAMICTOP_PTR|0;var s=env.tempDoublePtr|0;var t=env.ABORT|0;var u=env.STACKTOP|0;var v=env.STACK_MAX|0;var w=env.cttz_i8|0;var x=0;var y=0;var z=0;var A=0;var B=global.NaN,C=global.Infinity;var D=0,E=0,F=0,G=0,H=0.0;var I=0;var J=global.Math.floor;var K=global.Math.abs;var L=global.Math.sqrt;var M=global.Math.pow;var N=global.Math.cos;var O=global.Math.sin;var P=global.Math.tan;var Q=global.Math.acos;var R=global.Math.asin;var S=global.Math.atan;var T=global.Math.atan2;var U=global.Math.exp;var V=global.Math.log;var W=global.Math.ceil;var X=global.Math.imul;var Y=global.Math.min;var Z=global.Math.max;var _=global.Math.clz32;var $=env.abort;var aa=env.assert;var ba=env.enlargeMemory;var ca=env.getTotalMemory;var da=env.abortOnCannotGrowMemory;var ea=env.invoke_ii;var fa=env.invoke_iiii;var ga=env.invoke_iii;var ha=env._llvm_exp2_f64;var ia=env._llvm_pow_f64;var ja=env.___lock;var ka=env._llvm_exp2_f32;var la=env._abort;var ma=env.___setErrNo;var na=env.___syscall6;var oa=env.___syscall140;var pa=env._emscripten_memcpy_big;var qa=env.___syscall54;var ra=env.___unlock;var sa=env._exit;var ta=env.__exit;var ua=env.___syscall146;var va=0.0;function wa(newBuffer){if(q(newBuffer)&16777215||q(newBuffer)<=16777215||q(newBuffer)>2147483648)return false;b=new a(newBuffer);d=new c(newBuffer);f=new e(newBuffer);h=new g(newBuffer);j=new i(newBuffer);l=new k(newBuffer);n=new m(newBuffer);p=new o(newBuffer);buffer=newBuffer;return true} // EMSCRIPTEN_START_FUNCS -function Aa(a){a=a|0;var b=0;b=u;u=u+a|0;u=u+15&-16;return b|0}function Ba(){return u|0}function Ca(a){a=a|0;u=a}function Da(a,b){a=a|0;b=b|0;u=a;v=b}function Ea(a,b){a=a|0;b=b|0;if(!x){x=a;y=b}}function Fa(a){a=a|0;I=a}function Ga(){return I|0}function Ha(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;if((Ia(a)|0)==1){c=Tc((a<<4)+272|0)|0;d=c+8|0;e=Ja(a,d)|0;f[c+264>>2]=e;g=c+272|0;if((e|0)>0){h=e+-1|0;i=0;j=0;k=1;while(1){l=f[d+(h-j<<2)>>2]|0;m=k;k=X(l,k)|0;n=-6.283185307179586/+(k|0);if((m|0)>0&(l|0)>1){o=l+-1|0;q=i+-1|0;r=X(m+-1|0,o)|0;s=0;t=i;while(1){u=0;v=t;while(1){u=u+1|0;w=n*+(X(u,s)|0);x=+N(+w);p[g+(v<<4)>>3]=x;x=+O(+w);p[g+(v<<4)+8>>3]=x;if((u|0)==(o|0))break;else v=v+1|0}s=s+1|0;if((s|0)==(m|0))break;else t=o+t|0}y=q+l+r|0}else y=i;j=j+1|0;if((j|0)==(e|0)){z=a;A=0;B=c;break}else i=y}}else{z=a;A=0;B=c}}else{c=~~+ha(+(+W(+(+Dc(+(a|0))/.3010299956639812))));y=c<<((c|0)<((a<<1)+-2|0)&1);c=Tc((y<<4)+272|0)|0;i=c+8|0;e=Ja(y,i)|0;f[c+264>>2]=e;j=c+272|0;if((e|0)>0){g=e+-1|0;k=0;h=0;d=1;while(1){t=f[i+(g-h<<2)>>2]|0;o=d;d=X(t,d)|0;n=-6.283185307179586/+(d|0);if((o|0)>0&(t|0)>1){m=t+-1|0;s=k+-1|0;v=X(o+-1|0,m)|0;u=0;C=k;while(1){D=0;E=C;while(1){D=D+1|0;x=n*+(X(D,u)|0);w=+N(+x);p[j+(E<<4)>>3]=w;w=+O(+x);p[j+(E<<4)+8>>3]=w;if((D|0)==(m|0))break;else E=E+1|0}u=u+1|0;if((u|0)==(o|0))break;else C=m+C|0}F=s+t+v|0}else F=k;h=h+1|0;if((h|0)==(e|0)){z=y;A=1;B=c;break}else k=F}}else{z=y;A=1;B=c}}f[B+268>>2]=A;f[B>>2]=a;f[B+4>>2]=b;if((b|0)==-1&(z|0)>0)G=0;else return B|0;do{b=B+272+(G<<4)+8|0;p[b>>3]=-+p[b>>3];G=G+1|0}while((G|0)!=(z|0));return B|0}function Ia(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;if(!((a|0)%53|0)){b=a;while(1){c=(b|0)/53|0;if(!((c|0)%53|0))b=c;else{d=c;break}}}else d=a;if(!((d|0)%47|0)){a=d;while(1){b=(a|0)/47|0;if(!((b|0)%47|0))a=b;else{e=b;break}}}else e=d;if(!((e|0)%43|0)){d=e;while(1){a=(d|0)/43|0;if(!((a|0)%43|0))d=a;else{f=a;break}}}else f=e;if(!((f|0)%41|0)){e=f;while(1){d=(e|0)/41|0;if(!((d|0)%41|0))e=d;else{g=d;break}}}else g=f;if(!((g|0)%37|0)){f=g;while(1){e=(f|0)/37|0;if(!((e|0)%37|0))f=e;else{h=e;break}}}else h=g;if(!((h|0)%31|0)){g=h;while(1){f=(g|0)/31|0;if(!((f|0)%31|0))g=f;else{i=f;break}}}else i=h;if(!((i|0)%29|0)){h=i;while(1){g=(h|0)/29|0;if(!((g|0)%29|0))h=g;else{j=g;break}}}else j=i;if(!((j|0)%23|0)){i=j;while(1){h=(i|0)/23|0;if(!((h|0)%23|0))i=h;else{k=h;break}}}else k=j;if(!((k|0)%17|0)){j=k;while(1){i=(j|0)/17|0;if(!((i|0)%17|0))j=i;else{l=i;break}}}else l=k;if(!((l|0)%13|0)){k=l;while(1){j=(k|0)/13|0;if(!((j|0)%13|0))k=j;else{m=j;break}}}else m=l;if(!((m|0)%11|0)){l=m;while(1){k=(l|0)/11|0;if(!((k|0)%11|0))l=k;else{n=k;break}}}else n=m;if(!(n&7)){m=n;while(1){l=(m|0)/8|0;if(!(l&7))m=l;else{o=l;break}}}else o=n;if(!((o|0)%7|0)){n=o;while(1){m=(n|0)/7|0;if(!((m|0)%7|0))n=m;else{p=m;break}}}else p=o;if(!((p|0)%5|0)){o=p;while(1){n=(o|0)/5|0;if(!((n|0)%5|0))o=n;else{q=n;break}}}else q=p;if(!(q&3)){p=q;while(1){o=(p|0)/4|0;if(!(o&3))p=o;else{r=o;break}}}else r=q;if(!((r|0)%3|0)){q=r;while(1){p=(q|0)/3|0;if(!((p|0)%3|0))q=p;else{s=p;break}}}else s=r;if(!(s&1))t=s;else{u=s;v=(u|0)==1;w=v&1;return w|0}while(1){s=(t|0)/2|0;if(!(s&1))t=s;else{u=s;break}}v=(u|0)==1;w=v&1;return w|0}function Ja(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;if(!((a|0)%53|0)){c=a;d=0;while(1){e=(c|0)/53|0;f[b+(d<<2)>>2]=53;g=d+1|0;if(!((e|0)%53|0)){c=e;d=g}else{h=g;i=e;break}}}else{h=0;i=a}if(!((i|0)%47|0)){a=i;d=h;while(1){c=(a|0)/47|0;f[b+(d<<2)>>2]=47;e=d+1|0;if(!((c|0)%47|0)){a=c;d=e}else{j=e;k=c;break}}}else{j=h;k=i}if(!((k|0)%43|0)){i=k;h=j;while(1){d=(i|0)/43|0;f[b+(h<<2)>>2]=43;a=h+1|0;if(!((d|0)%43|0)){i=d;h=a}else{l=a;m=d;break}}}else{l=j;m=k}if(!((m|0)%41|0)){k=m;j=l;while(1){h=(k|0)/41|0;f[b+(j<<2)>>2]=41;i=j+1|0;if(!((h|0)%41|0)){k=h;j=i}else{n=i;o=h;break}}}else{n=l;o=m}if(!((o|0)%37|0)){m=o;l=n;while(1){j=(m|0)/37|0;f[b+(l<<2)>>2]=37;k=l+1|0;if(!((j|0)%37|0)){m=j;l=k}else{p=k;q=j;break}}}else{p=n;q=o}if(!((q|0)%31|0)){o=q;n=p;while(1){l=(o|0)/31|0;f[b+(n<<2)>>2]=31;m=n+1|0;if(!((l|0)%31|0)){o=l;n=m}else{r=m;s=l;break}}}else{r=p;s=q}if(!((s|0)%29|0)){q=s;p=r;while(1){n=(q|0)/29|0;f[b+(p<<2)>>2]=29;o=p+1|0;if(!((n|0)%29|0)){q=n;p=o}else{t=o;u=n;break}}}else{t=r;u=s}if(!((u|0)%23|0)){s=u;r=t;while(1){p=(s|0)/23|0;f[b+(r<<2)>>2]=23;q=r+1|0;if(!((p|0)%23|0)){s=p;r=q}else{v=q;w=p;break}}}else{v=t;w=u}if(!((w|0)%19|0)){u=w;t=v;while(1){r=(u|0)/19|0;f[b+(t<<2)>>2]=19;s=t+1|0;if(!((r|0)%19|0)){u=r;t=s}else{x=s;y=r;break}}}else{x=v;y=w}if(!((y|0)%17|0)){w=y;v=x;while(1){t=(w|0)/17|0;f[b+(v<<2)>>2]=17;u=v+1|0;if(!((t|0)%17|0)){w=t;v=u}else{z=u;A=t;break}}}else{z=x;A=y}if(!((A|0)%13|0)){y=A;x=z;while(1){v=(y|0)/13|0;f[b+(x<<2)>>2]=13;w=x+1|0;if(!((v|0)%13|0)){y=v;x=w}else{B=w;C=v;break}}}else{B=z;C=A}if(!((C|0)%11|0)){A=C;z=B;while(1){x=(A|0)/11|0;f[b+(z<<2)>>2]=11;y=z+1|0;if(!((x|0)%11|0)){A=x;z=y}else{D=y;E=x;break}}}else{D=B;E=C}if(!(E&7)){C=E;B=D;while(1){z=(C|0)/8|0;f[b+(B<<2)>>2]=8;A=B+1|0;if(!(z&7)){C=z;B=A}else{F=A;G=z;break}}}else{F=D;G=E}if(!((G|0)%7|0)){E=G;D=F;while(1){B=(E|0)/7|0;f[b+(D<<2)>>2]=7;C=D+1|0;if(!((B|0)%7|0)){E=B;D=C}else{H=C;I=B;break}}}else{H=F;I=G}if(!((I|0)%5|0)){G=I;F=H;while(1){D=(G|0)/5|0;f[b+(F<<2)>>2]=5;E=F+1|0;if(!((D|0)%5|0)){G=D;F=E}else{J=E;K=D;break}}}else{J=H;K=I}if(!(K&3)){I=K;H=J;while(1){F=(I|0)/4|0;f[b+(H<<2)>>2]=4;G=H+1|0;if(!(F&3)){I=F;H=G}else{L=G;M=F;break}}}else{L=J;M=K}if(!((M|0)%3|0)){K=M;J=L;while(1){H=(K|0)/3|0;f[b+(J<<2)>>2]=3;I=J+1|0;if(!((H|0)%3|0)){K=H;J=I}else{N=I;O=H;break}}}else{N=L;O=M}if(!(O&1)){M=O;L=N;while(1){J=(M|0)/2|0;f[b+(L<<2)>>2]=2;K=L+1|0;if(!(J&1)){M=J;L=K}else{P=K;Q=J;break}}}else{P=N;Q=O}if((Q|0)>31){R=2;S=Q;T=P}else{U=P;return U|0}while(1){P=R*6|0;Q=P+-1|0;O=P|1;if(!((S|0)%(Q|0)|0)){P=S;N=T;while(1){f[b+(N<<2)>>2]=Q;L=N+1|0;M=(P|0)/(Q|0)|0;if(!((M|0)%(Q|0)|0)){P=M;N=L}else{V=L;W=M;break}}}else{V=T;W=S}if(!((W|0)%(O|0)|0)){N=W;P=V;while(1){f[b+(P<<2)>>2]=O;Q=P+1|0;M=(N|0)/(O|0)|0;if(!((M|0)%(O|0)|0)){N=M;P=Q}else{X=Q;Y=M;break}}}else{X=V;Y=W}if((Y|0)>1){R=R+1|0;S=Y;T=X}else{U=X;break}}return U|0}function Ka(a,b,c){a=a|0;b=b|0;c=c|0;switch(f[a+268>>2]|0){case 0:{La(c,b,a,f[a+4>>2]|0,f[a>>2]|0,1,0);return}case 1:{Ma(b,c,a,f[a+4>>2]|0,f[a>>2]|0);return}default:return}}function La(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,J=0,K=0,L=0,M=0.0,P=0.0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0,oa=0,pa=0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0,xa=0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0,Da=0.0,Ea=0.0,Fa=0;i=(e|0)>1;if(i)j=f[c+8+(h<<2)>>2]|0;else j=0;switch(e|0){case 1:{p[a>>3]=+p[b>>3];p[a+8>>3]=+p[b+8>>3];return}case 2:{k=+p[b>>3];p[a>>3]=k;l=+p[b+8>>3];m=a+8|0;p[m>>3]=l;n=+p[b+(g<<4)>>3];o=+p[b+(g<<4)+8>>3];p[a>>3]=k+n;p[m>>3]=o+l;p[a+16>>3]=k-n;p[a+24>>3]=l-o;return}case 3:{o=+p[b>>3];p[a>>3]=o;l=+p[b+8>>3];m=a+8|0;p[m>>3]=l;n=+p[b+(g<<4)>>3];q=a+16|0;p[q>>3]=n;k=+p[b+(g<<4)+8>>3];r=a+24|0;p[r>>3]=k;s=g<<1;t=+p[b+(s<<4)>>3];u=+p[b+(s<<4)+8>>3];v=t+n;w=u+k;x=+(d|0)*.86602540378;y=x*(n-t);t=x*(k-u);u=o-v*.5;k=l-w*.5;p[a>>3]=v+o;p[m>>3]=w+l;p[q>>3]=u+t;p[r>>3]=k-y;p[a+32>>3]=u-t;p[a+40>>3]=y+k;return}case 4:{k=+p[b>>3];p[a>>3]=k;y=+p[b+8>>3];r=a+8|0;p[r>>3]=y;t=+p[b+(g<<4)>>3];q=a+16|0;p[q>>3]=t;u=+p[b+(g<<4)+8>>3];m=a+24|0;p[m>>3]=u;s=g<<1;l=+p[b+(s<<4)>>3];z=a+32|0;p[z>>3]=l;w=+p[b+(s<<4)+8>>3];s=a+40|0;p[s>>3]=w;A=g*3|0;o=+p[b+(A<<4)>>3];v=+p[b+(A<<4)+8>>3];x=k+l;n=y+w;B=k-l;l=y-w;w=t+o;y=v+u;k=+(d|0);C=k*(t-o);o=k*(u-v);p[a>>3]=x+w;p[r>>3]=n+y;p[q>>3]=B+o;p[m>>3]=l-C;p[z>>3]=x-w;p[s>>3]=n-y;p[a+48>>3]=B-o;p[a+56>>3]=l+C;return}case 5:{C=+p[b>>3];p[a>>3]=C;l=+p[b+8>>3];s=a+8|0;p[s>>3]=l;o=+p[b+(g<<4)>>3];z=a+16|0;p[z>>3]=o;B=+p[b+(g<<4)+8>>3];m=a+24|0;p[m>>3]=B;q=g<<1;y=+p[b+(q<<4)>>3];r=a+32|0;p[r>>3]=y;n=+p[b+(q<<4)+8>>3];q=a+40|0;p[q>>3]=n;A=g*3|0;w=+p[b+(A<<4)>>3];D=a+48|0;p[D>>3]=w;x=+p[b+(A<<4)+8>>3];A=a+56|0;p[A>>3]=x;E=g<<2;v=+p[b+(E<<4)>>3];F=a+64|0;p[F>>3]=v;u=+p[b+(E<<4)+8>>3];E=a+72|0;p[E>>3]=u;k=v+o;t=o-v;v=u+B;o=B-u;u=y+w;B=y-w;w=n+x;y=n-x;G=(d|0)==1;x=B*.58778525229;n=y*.58778525229;if(G){H=t*.95105651629+x;I=o*.95105651629+n}else{H=t*-.95105651629-x;I=o*-.95105651629-n}n=k*.30901699437-u*.80901699437+C;x=v*.30901699437-w*.80901699437+l;p[z>>3]=I+n;p[m>>3]=x-H;p[F>>3]=n-I;p[E>>3]=H+x;x=y*.95105651629;y=B*.95105651629;B=t*.58778525229;t=o*.58778525229;o=G?B-y:y-B;B=(G?t:x)-(G?x:t);t=u*.30901699437-k*.80901699437+C;x=w*.30901699437-v*.80901699437+l;p[r>>3]=t+B;p[q>>3]=x-o;p[D>>3]=t-B;p[A>>3]=x+o;p[a>>3]=k+u+C;p[s>>3]=v+w+l;return}case 7:{l=+p[b>>3];p[a>>3]=l;w=+p[b+8>>3];s=a+8|0;p[s>>3]=w;v=+p[b+(g<<4)>>3];A=a+16|0;p[A>>3]=v;C=+p[b+(g<<4)+8>>3];D=a+24|0;p[D>>3]=C;q=g<<1;u=+p[b+(q<<4)>>3];r=a+32|0;p[r>>3]=u;k=+p[b+(q<<4)+8>>3];q=a+40|0;p[q>>3]=k;G=g*3|0;o=+p[b+(G<<4)>>3];E=a+48|0;p[E>>3]=o;x=+p[b+(G<<4)+8>>3];G=a+56|0;p[G>>3]=x;F=g<<2;B=+p[b+(F<<4)>>3];m=a+64|0;p[m>>3]=B;t=+p[b+(F<<4)+8>>3];F=a+72|0;p[F>>3]=t;z=g*5|0;y=+p[b+(z<<4)>>3];J=a+80|0;p[J>>3]=y;H=+p[b+(z<<4)+8>>3];z=a+88|0;p[z>>3]=H;K=g*6|0;I=+p[b+(K<<4)>>3];L=a+96|0;p[L>>3]=I;n=+p[b+(K<<4)+8>>3];K=a+104|0;p[K>>3]=n;M=I+v;P=v-I;I=n+C;v=C-n;n=u+y;C=u-y;y=k+H;u=k-H;H=o+B;k=o-B;B=x+t;o=x-t;t=M*.62348980185+l-n*.22252093395-H*.9009688679;x=I*.62348980185+w-y*.22252093395-B*.9009688679;Q=(d|0)==1;R=u*.97492791218;S=C*.97492791218;T=o*.43388373911;U=k*.43388373911;if(Q){V=P*-.78183148246-S-U;W=v*-.78183148246-R-T}else{V=P*.78183148246+S+U;W=v*.78183148246+R+T}p[A>>3]=t-W;p[L>>3]=t+W;p[D>>3]=x+V;p[K>>3]=x-V;V=H*.62348980185+(l-M*.22252093395-n*.9009688679);x=B*.62348980185+(w-I*.22252093395-y*.9009688679);W=C*.43388373911;t=u*.43388373911;T=k*.78183148246;R=o*.78183148246;U=P*.97492791218;if(Q){Y=W-U+T;Z=t-v*.97492791218+R}else{Y=U-W-T;Z=v*.97492791218-t-R}p[r>>3]=V-Z;p[J>>3]=V+Z;p[q>>3]=x+Y;p[z>>3]=x-Y;Y=n*.62348980185+(l-M*.9009688679)-H*.22252093395;x=y*.62348980185+(w-I*.9009688679)-B*.22252093395;Z=k*.97492791218;k=o*.97492791218;o=u*.78183148246;u=C*.78183148246;C=P*.43388373911;if(Q){_=u-C-Z;$=o-v*.43388373911-k}else{_=C-u+Z;$=v*.43388373911-o+k}p[E>>3]=Y-$;p[m>>3]=Y+$;p[G>>3]=x+_;p[F>>3]=x-_;p[a>>3]=M+n+H+l;p[s>>3]=I+y+B+w;return}case 8:{w=+p[b>>3];p[a>>3]=w;B=+p[b+8>>3];s=a+8|0;p[s>>3]=B;y=+p[b+(g<<4)>>3];F=a+16|0;p[F>>3]=y;I=+p[b+(g<<4)+8>>3];G=a+24|0;p[G>>3]=I;m=g<<1;l=+p[b+(m<<4)>>3];E=a+32|0;p[E>>3]=l;H=+p[b+(m<<4)+8>>3];m=a+40|0;p[m>>3]=H;Q=g*3|0;n=+p[b+(Q<<4)>>3];z=a+48|0;p[z>>3]=n;M=+p[b+(Q<<4)+8>>3];Q=a+56|0;p[Q>>3]=M;q=g<<2;_=+p[b+(q<<4)>>3];J=a+64|0;p[J>>3]=_;x=+p[b+(q<<4)+8>>3];q=a+72|0;p[q>>3]=x;r=g*5|0;$=+p[b+(r<<4)>>3];K=a+80|0;p[K>>3]=$;Y=+p[b+(r<<4)+8>>3];r=a+88|0;p[r>>3]=Y;D=g*6|0;k=+p[b+(D<<4)>>3];L=a+96|0;p[L>>3]=k;o=+p[b+(D<<4)+8>>3];D=a+104|0;p[D>>3]=o;A=g*7|0;v=+p[b+(A<<4)>>3];aa=a+112|0;p[aa>>3]=v;Z=+p[b+(A<<4)+8>>3];A=a+120|0;p[A>>3]=Z;u=w+_;C=w-_;_=B+x;w=B-x;x=y+v;B=y-v;v=Z+I;y=I-Z;Z=n+$;I=n-$;$=M+Y;n=M-Y;Y=l+k;M=l-k;k=H+o;l=H-o;p[a>>3]=u+x+Z+Y;p[s>>3]=_+v+$+k;p[J>>3]=u-x-Z+Y;p[q>>3]=_-v-$+k;o=B+I;H=y+n;P=(x-Z)*.7071067811865476;Z=C+P;x=(v-$)*.7071067811865476;$=w+x;q=(d|0)==1;if(q){ba=o*-.7071067811865476-M;ca=H*-.7071067811865476-l;da=o*.7071067811865476;ea=H*.7071067811865476}else{v=o*.7071067811865476;o=H*.7071067811865476;ba=v+M;ca=o+l;da=v;ea=o}p[F>>3]=Z-ca;p[G>>3]=$+ba;p[aa>>3]=Z+ca;p[A>>3]=$-ba;ba=u-Y;Y=_-k;k=q?n-y:y-n;n=q?I-B:B-I;p[E>>3]=ba-k;p[m>>3]=n+Y;p[L>>3]=k+ba;p[D>>3]=Y-n;n=C-P;P=w-x;x=q?M-da:da-M;M=(q?l:ea)-(q?ea:l);p[z>>3]=n-M;p[Q>>3]=P+x;p[K>>3]=n+M;p[r>>3]=P-x;return}default:switch(j|0){case 2:{r=(e|0)/2|0;K=g<<1;Q=h+1|0;La(a,b,c,d,r,K,Q);La(a+(r<<4)|0,b+(g<<4)|0,c,d,r,K,Q);if(!i)return;i=r+-1|0;Q=0;do{K=i+Q|0;x=+p[c+272+(K<<4)>>3];P=+p[c+272+(K<<4)+8>>3];K=Q+r|0;z=a+(Q<<4)|0;M=+p[z>>3];q=a+(Q<<4)+8|0;n=+p[q>>3];D=a+(K<<4)|0;l=+p[D>>3];L=a+(K<<4)+8|0;ea=+p[L>>3];da=x*l-P*ea;w=P*l+x*ea;p[z>>3]=M+da;p[q>>3]=n+w;p[D>>3]=M-da;p[L>>3]=n-w;Q=Q+1|0}while((Q|0)<(r|0));return}case 3:{r=(e|0)/3|0;Q=g*3|0;i=h+1|0;La(a,b,c,d,r,Q,i);La(a+(r<<4)|0,b+(g<<4)|0,c,d,r,Q,i);La(a+(r<<1<<4)|0,b+(g<<1<<4)|0,c,d,r,Q,i);if((e|0)<=2)return;i=r+-1|0;w=+(d|0)*.86602540378;Q=0;do{L=Q<<1;D=i+L|0;n=+p[c+272+(D<<4)>>3];da=+p[c+272+(D<<4)+8>>3];D=L+r|0;M=+p[c+272+(D<<4)>>3];ea=+p[c+272+(D<<4)+8>>3];D=Q+r|0;L=D+r|0;q=a+(Q<<4)|0;x=+p[q>>3];z=a+(Q<<4)+8|0;l=+p[z>>3];K=a+(D<<4)|0;P=+p[K>>3];m=a+(D<<4)+8|0;C=+p[m>>3];Y=n*P-da*C;ba=da*P+n*C;D=a+(L<<4)|0;C=+p[D>>3];E=a+(L<<4)+8|0;n=+p[E>>3];P=M*C-ea*n;da=ea*C+M*n;n=Y+P;M=ba+da;C=w*(Y-P);P=w*(ba-da);da=x-n*.5;ba=l-M*.5;p[q>>3]=x+n;p[z>>3]=l+M;p[K>>3]=P+da;p[m>>3]=ba-C;p[D>>3]=da-P;p[E>>3]=C+ba;Q=Q+1|0}while((Q|0)<(r|0));return}case 4:{r=(e|0)/4|0;Q=g<<2;i=h+1|0;La(a,b,c,d,r,Q,i);E=a+(r<<4)|0;La(E,b+(g<<4)|0,c,d,r,Q,i);D=r<<1;La(a+(D<<4)|0,b+(g<<1<<4)|0,c,d,r,Q,i);m=r*3|0;La(a+(m<<4)|0,b+(g*3<<4)|0,c,d,r,Q,i);w=+p[a>>3];i=a+8|0;ba=+p[i>>3];C=+p[E>>3];Q=a+(r<<4)+8|0;P=+p[Q>>3];K=a+(D<<4)|0;da=+p[K>>3];z=a+(D<<4)+8|0;M=+p[z>>3];D=a+(m<<4)|0;l=+p[D>>3];q=a+(m<<4)+8|0;n=+p[q>>3];x=w+da;Y=ba+M;ea=w-da;da=ba-M;M=C+l;ba=P+n;w=+(d|0);k=w*(C-l);l=w*(P-n);p[a>>3]=x+M;p[i>>3]=Y+ba;p[E>>3]=ea+l;p[Q>>3]=da-k;p[K>>3]=x-M;p[z>>3]=Y-ba;p[D>>3]=ea-l;p[q>>3]=da+k;if((e|0)<=7)return;q=r+-1|0;D=1;do{z=D*3|0;K=q+z|0;k=+p[c+272+(K<<4)>>3];da=+p[c+272+(K<<4)+8>>3];K=z+r|0;l=+p[c+272+(K<<4)>>3];ea=+p[c+272+(K<<4)+8>>3];z=K+1|0;ba=+p[c+272+(z<<4)>>3];Y=+p[c+272+(z<<4)+8>>3];z=D+r|0;K=z+r|0;Q=K+r|0;E=a+(D<<4)|0;M=+p[E>>3];i=a+(D<<4)+8|0;x=+p[i>>3];m=a+(z<<4)|0;n=+p[m>>3];L=a+(z<<4)+8|0;P=+p[L>>3];C=k*n-da*P;I=da*n+k*P;z=a+(K<<4)|0;P=+p[z>>3];A=a+(K<<4)+8|0;k=+p[A>>3];n=l*P-ea*k;da=ea*P+l*k;K=a+(Q<<4)|0;k=+p[K>>3];aa=a+(Q<<4)+8|0;l=+p[aa>>3];P=ba*k-Y*l;ea=Y*k+ba*l;l=M+n;ba=x+da;k=M-n;n=x-da;da=C+P;x=I+ea;M=w*(C-P);P=w*(I-ea);p[E>>3]=l+da;p[i>>3]=ba+x;p[m>>3]=k+P;p[L>>3]=n-M;p[z>>3]=l-da;p[A>>3]=ba-x;p[K>>3]=k-P;p[aa>>3]=n+M;D=D+1|0}while((D|0)<(r|0));return}case 5:{r=(e|0)/5|0;D=g*5|0;q=h+1|0;La(a,b,c,d,r,D,q);aa=a+(r<<4)|0;La(aa,b+(g<<4)|0,c,d,r,D,q);K=r<<1;La(a+(K<<4)|0,b+(g<<1<<4)|0,c,d,r,D,q);A=r*3|0;La(a+(A<<4)|0,b+(g*3<<4)|0,c,d,r,D,q);z=r<<2;La(a+(z<<4)|0,b+(g<<2<<4)|0,c,d,r,D,q);w=+p[a>>3];q=a+8|0;M=+p[q>>3];n=+p[aa>>3];D=a+(r<<4)+8|0;P=+p[D>>3];L=a+(K<<4)|0;k=+p[L>>3];m=a+(K<<4)+8|0;x=+p[m>>3];K=a+(A<<4)|0;ba=+p[K>>3];i=a+(A<<4)+8|0;da=+p[i>>3];A=a+(z<<4)|0;l=+p[A>>3];E=a+(z<<4)+8|0;ea=+p[E>>3];I=n+l;C=P+ea;Y=k+ba;B=x+da;y=n-l;l=P-ea;ea=k-ba;ba=x-da;p[a>>3]=Y+(w+I);p[q>>3]=B+(M+C);da=+(d|0);x=da*(ea*.58778525229+y*.95105651629);k=da*(ba*.58778525229+l*.95105651629);P=w+(I*.30901699437-Y*.80901699437);n=M+(C*.30901699437-B*.80901699437);p[aa>>3]=P+k;p[D>>3]=n-x;p[A>>3]=P-k;p[E>>3]=x+n;n=da*(y*.58778525229-ea*.95105651629);ea=da*(l*.58778525229-ba*.95105651629);ba=w+(Y*.30901699437-I*.80901699437);I=M+(B*.30901699437-C*.80901699437);p[L>>3]=ba+ea;p[m>>3]=I-n;p[K>>3]=ba-ea;p[i>>3]=n+I;if((e|0)<=9)return;i=r+-1|0;K=(d|0)==1;m=1;do{L=m<<2;E=i+L|0;I=+p[c+272+(E<<4)>>3];n=+p[c+272+(E<<4)+8>>3];E=L+r|0;ea=+p[c+272+(E<<4)>>3];ba=+p[c+272+(E<<4)+8>>3];L=E+1|0;C=+p[c+272+(L<<4)>>3];B=+p[c+272+(L<<4)+8>>3];L=E+2|0;M=+p[c+272+(L<<4)>>3];Y=+p[c+272+(L<<4)+8>>3];L=m+r|0;E=L+r|0;A=E+r|0;D=A+r|0;aa=a+(m<<4)|0;w=+p[aa>>3];q=a+(m<<4)+8|0;l=+p[q>>3];z=a+(L<<4)|0;da=+p[z>>3];Q=a+(L<<4)+8|0;y=+p[Q>>3];x=I*da-n*y;k=n*da+I*y;L=a+(E<<4)|0;y=+p[L>>3];G=a+(E<<4)+8|0;I=+p[G>>3];da=ea*y-ba*I;n=ba*y+ea*I;E=a+(A<<4)|0;I=+p[E>>3];F=a+(A<<4)+8|0;ea=+p[F>>3];y=C*I-B*ea;ba=B*I+C*ea;A=a+(D<<4)|0;ea=+p[A>>3];J=a+(D<<4)+8|0;C=+p[J>>3];I=M*ea-Y*C;B=Y*ea+M*C;C=x+I;M=k+B;ea=da+y;Y=n+ba;P=x-I;I=k-B;B=da-y;y=n-ba;p[aa>>3]=ea+(w+C);p[q>>3]=Y+(l+M);ba=B*.58778525229;n=y*.58778525229;if(K){fa=ba+P*.95105651629;ga=n+I*.95105651629}else{fa=P*-.95105651629-ba;ga=I*-.95105651629-n}n=w+(C*.30901699437-ea*.80901699437);ba=l+(M*.30901699437-Y*.80901699437);p[z>>3]=n+ga;p[Q>>3]=ba-fa;p[A>>3]=n-ga;p[J>>3]=ba+fa;ba=y*.95105651629;y=B*.95105651629;B=P*.58778525229;P=I*.58778525229;I=K?B-y:y-B;B=(K?P:ba)-(K?ba:P);P=w+(ea*.30901699437-C*.80901699437);C=l+(Y*.30901699437-M*.80901699437);p[L>>3]=P+B;p[G>>3]=C-I;p[E>>3]=P-B;p[F>>3]=C+I;m=m+1|0}while((m|0)<(r|0));return}case 7:{r=(e|0)/7|0;m=g*7|0;K=h+1|0;La(a,b,c,d,r,m,K);i=a+(r<<4)|0;La(i,b+(g<<4)|0,c,d,r,m,K);F=r<<1;La(a+(F<<4)|0,b+(g<<1<<4)|0,c,d,r,m,K);E=r*3|0;La(a+(E<<4)|0,b+(g*3<<4)|0,c,d,r,m,K);G=r<<2;La(a+(G<<4)|0,b+(g<<2<<4)|0,c,d,r,m,K);L=r*5|0;La(a+(L<<4)|0,b+(g*5<<4)|0,c,d,r,m,K);J=r*6|0;La(a+(J<<4)|0,b+(g*6<<4)|0,c,d,r,m,K);fa=+p[a>>3];K=a+8|0;ga=+p[K>>3];I=+p[i>>3];m=a+(r<<4)+8|0;C=+p[m>>3];A=a+(F<<4)|0;B=+p[A>>3];Q=a+(F<<4)+8|0;P=+p[Q>>3];F=a+(E<<4)|0;M=+p[F>>3];z=a+(E<<4)+8|0;Y=+p[z>>3];E=a+(G<<4)|0;l=+p[E>>3];q=a+(G<<4)+8|0;ea=+p[q>>3];G=a+(L<<4)|0;w=+p[G>>3];aa=a+(L<<4)+8|0;ba=+p[aa>>3];L=a+(J<<4)|0;y=+p[L>>3];D=a+(J<<4)+8|0;n=+p[D>>3];da=I+y;k=I-y;y=C+n;I=C-n;n=B+w;C=B-w;w=P+ba;B=P-ba;ba=M+l;P=M-l;l=Y+ea;M=Y-ea;p[a>>3]=ba+(n+(fa+da));p[K>>3]=l+(w+(ga+y));ea=fa+da*.62348980185-n*.22252093395-ba*.9009688679;Y=ga+y*.62348980185-w*.22252093395-l*.9009688679;K=(d|0)==1;x=P*.43388373911;_=M*.43388373911;u=B*.97492791218;$=C*.97492791218;if(K){ha=I*-.78183148246-u-_;ia=k*-.78183148246-$-x}else{ha=_+(u+I*.78183148246);ia=x+($+k*.78183148246)}p[i>>3]=ea-ha;p[m>>3]=Y+ia;p[L>>3]=ea+ha;p[D>>3]=Y-ia;ia=ba*.62348980185+(fa-da*.22252093395-n*.9009688679);Y=l*.62348980185+(ga-y*.22252093395-w*.9009688679);ha=P*.78183148246;ea=M*.78183148246;$=C*.43388373911;x=B*.43388373911;u=k*.97492791218;if(K){ja=ea+(x-I*.97492791218);ka=ha+($-u)}else{ja=I*.97492791218-x-ea;ka=u-$-ha}p[A>>3]=ia-ja;p[Q>>3]=Y+ka;p[G>>3]=ia+ja;p[aa>>3]=Y-ka;ka=n*.62348980185+(fa-da*.9009688679)-ba*.22252093395;ba=w*.62348980185+(ga-y*.9009688679)-l*.22252093395;l=M*.97492791218;M=B*.78183148246;B=P*.97492791218;P=C*.78183148246;C=k*.43388373911;if(K){la=M-I*.43388373911-l;ma=P-C-B}else{la=l+(I*.43388373911-M);ma=B+(C-P)}p[F>>3]=ka-la;p[z>>3]=ba+ma;p[E>>3]=ka+la;p[q>>3]=ba-ma;if((e|0)<=13)return;q=r+-1|0;E=1;do{z=E*6|0;F=q+z|0;ma=+p[c+272+(F<<4)>>3];ba=+p[c+272+(F<<4)+8>>3];F=z+r|0;la=+p[c+272+(F<<4)>>3];ka=+p[c+272+(F<<4)+8>>3];z=F+1|0;P=+p[c+272+(z<<4)>>3];C=+p[c+272+(z<<4)+8>>3];z=F+2|0;B=+p[c+272+(z<<4)>>3];M=+p[c+272+(z<<4)+8>>3];z=F+3|0;I=+p[c+272+(z<<4)>>3];l=+p[c+272+(z<<4)+8>>3];z=F+4|0;k=+p[c+272+(z<<4)>>3];y=+p[c+272+(z<<4)+8>>3];z=E+r|0;F=z+r|0;aa=F+r|0;G=aa+r|0;Q=G+r|0;A=Q+r|0;D=a+(E<<4)|0;ga=+p[D>>3];L=a+(E<<4)+8|0;w=+p[L>>3];m=a+(z<<4)|0;da=+p[m>>3];i=a+(z<<4)+8|0;fa=+p[i>>3];n=ma*da-ba*fa;Y=ba*da+ma*fa;z=a+(F<<4)|0;fa=+p[z>>3];J=a+(F<<4)+8|0;ma=+p[J>>3];da=la*fa-ka*ma;ba=ka*fa+la*ma;F=a+(aa<<4)|0;ma=+p[F>>3];s=a+(aa<<4)+8|0;la=+p[s>>3];fa=P*ma-C*la;ka=C*ma+P*la;aa=a+(G<<4)|0;la=+p[aa>>3];na=a+(G<<4)+8|0;P=+p[na>>3];ma=B*la-M*P;C=M*la+B*P;G=a+(Q<<4)|0;P=+p[G>>3];oa=a+(Q<<4)+8|0;B=+p[oa>>3];la=I*P-l*B;M=l*P+I*B;Q=a+(A<<4)|0;B=+p[Q>>3];pa=a+(A<<4)+8|0;I=+p[pa>>3];P=k*B-y*I;l=y*B+k*I;I=n+P;k=n-P;P=Y+l;n=Y-l;l=da+la;Y=da-la;la=ba+M;da=ba-M;M=fa+ma;ba=fa-ma;ma=ka+C;fa=ka-C;p[D>>3]=M+(l+(ga+I));p[L>>3]=ma+(la+(w+P));C=ga+I*.62348980185-l*.22252093395-M*.9009688679;ka=w+P*.62348980185-la*.22252093395-ma*.9009688679;B=ba*.43388373911;y=fa*.43388373911;ja=da*.97492791218;ia=Y*.97492791218;if(K){qa=n*-.78183148246-ja-y;ra=k*-.78183148246-ia-B}else{qa=y+(ja+n*.78183148246);ra=B+(ia+k*.78183148246)}p[m>>3]=C-qa;p[i>>3]=ka+ra;p[Q>>3]=C+qa;p[pa>>3]=ka-ra;ka=M*.62348980185+(ga-I*.22252093395-l*.9009688679);C=ma*.62348980185+(w-P*.22252093395-la*.9009688679);ia=fa*.78183148246;B=da*.43388373911;ja=ba*.78183148246;y=Y*.43388373911;ha=k*.97492791218;if(K){sa=ia+(B-n*.97492791218);ta=ja+(y-ha)}else{sa=n*.97492791218-B-ia;ta=ha-y-ja}p[z>>3]=ka-sa;p[J>>3]=C+ta;p[G>>3]=ka+sa;p[oa>>3]=C-ta;C=l*.62348980185+(ga-I*.9009688679)-M*.22252093395;M=la*.62348980185+(w-P*.9009688679)-ma*.22252093395;ma=fa*.97492791218;fa=da*.78183148246;da=ba*.97492791218;ba=Y*.78183148246;Y=k*.43388373911;if(K){ua=fa-n*.43388373911-ma;va=ba-Y-da}else{ua=ma+(n*.43388373911-fa);va=da+(Y-ba)}p[F>>3]=C-ua;p[s>>3]=M+va;p[aa>>3]=C+ua;p[na>>3]=M-va;E=E+1|0}while((E|0)<(r|0));return}case 8:{r=(e|0)/8|0;E=g<<3;K=h+1|0;La(a,b,c,d,r,E,K);La(a+(r<<4)|0,b+(g<<4)|0,c,d,r,E,K);La(a+(r<<1<<4)|0,b+(g<<1<<4)|0,c,d,r,E,K);La(a+(r*3<<4)|0,b+(g*3<<4)|0,c,d,r,E,K);La(a+(r<<2<<4)|0,b+(g<<2<<4)|0,c,d,r,E,K);La(a+(r*5<<4)|0,b+(g*5<<4)|0,c,d,r,E,K);La(a+(r*6<<4)|0,b+(g*6<<4)|0,c,d,r,E,K);La(a+(r*7<<4)|0,b+(g*7<<4)|0,c,d,r,E,K);if((e|0)<=7)return;K=r+-1|0;E=(d|0)==1;q=0;do{na=q*7|0;aa=K+na|0;va=+p[c+272+(aa<<4)>>3];ua=+p[c+272+(aa<<4)+8>>3];aa=na+r|0;ta=+p[c+272+(aa<<4)>>3];sa=+p[c+272+(aa<<4)+8>>3];na=aa+1|0;ra=+p[c+272+(na<<4)>>3];qa=+p[c+272+(na<<4)+8>>3];na=aa+2|0;M=+p[c+272+(na<<4)>>3];C=+p[c+272+(na<<4)+8>>3];na=aa+3|0;ba=+p[c+272+(na<<4)>>3];Y=+p[c+272+(na<<4)+8>>3];na=aa+4|0;da=+p[c+272+(na<<4)>>3];fa=+p[c+272+(na<<4)+8>>3];na=aa+5|0;n=+p[c+272+(na<<4)>>3];ma=+p[c+272+(na<<4)+8>>3];na=q+r|0;aa=na+r|0;s=aa+r|0;F=s+r|0;oa=F+r|0;G=oa+r|0;J=G+r|0;z=a+(q<<4)|0;k=+p[z>>3];pa=a+(q<<4)+8|0;P=+p[pa>>3];Q=a+(na<<4)|0;w=+p[Q>>3];i=a+(na<<4)+8|0;la=+p[i>>3];I=va*w-ua*la;ga=ua*w+va*la;na=a+(aa<<4)|0;la=+p[na>>3];m=a+(aa<<4)+8|0;va=+p[m>>3];w=ta*la-sa*va;ua=sa*la+ta*va;aa=a+(s<<4)|0;va=+p[aa>>3];L=a+(s<<4)+8|0;ta=+p[L>>3];la=ra*va-qa*ta;sa=qa*va+ra*ta;s=a+(F<<4)|0;ta=+p[s>>3];D=a+(F<<4)+8|0;ra=+p[D>>3];va=M*ta-C*ra;qa=C*ta+M*ra;F=a+(oa<<4)|0;ra=+p[F>>3];A=a+(oa<<4)+8|0;M=+p[A>>3];ta=ba*ra-Y*M;C=Y*ra+ba*M;oa=a+(G<<4)|0;M=+p[oa>>3];wa=a+(G<<4)+8|0;ba=+p[wa>>3];ra=da*M-fa*ba;Y=fa*M+da*ba;G=a+(J<<4)|0;ba=+p[G>>3];xa=a+(J<<4)+8|0;da=+p[xa>>3];M=n*ba-ma*da;fa=ma*ba+n*da;da=k+va;n=k-va;va=P+qa;k=P-qa;qa=I+M;P=I-M;M=ga+fa;I=ga-fa;fa=la+ta;ga=la-ta;ta=sa-C;la=sa+C;C=w+ra;sa=w-ra;ra=ua-Y;w=ua+Y;p[z>>3]=C+(fa+(da+qa));p[pa>>3]=w+(la+(va+M));p[s>>3]=C+(da-qa-fa);p[D>>3]=w+(va-M-la);Y=ga+P;ua=ta+I;ba=(qa-fa)*.7071067811865476;fa=n+ba;qa=(M-la)*.7071067811865476;la=k+qa;if(E){ya=ua*-.7071067811865476-ra;za=Y*-.7071067811865476-sa;Aa=ua*.7071067811865476;Ba=Y*.7071067811865476}else{M=Y*.7071067811865476;Y=ua*.7071067811865476;ya=ra+Y;za=sa+M;Aa=Y;Ba=M}p[Q>>3]=fa-ya;p[i>>3]=la+za;p[G>>3]=fa+ya;p[xa>>3]=la-za;la=da-C;C=va-w;w=E?ga-P:P-ga;ga=E?ta-I:I-ta;p[na>>3]=la-ga;p[m>>3]=C+w;p[oa>>3]=la+ga;p[wa>>3]=C-w;w=n-ba;ba=k-qa;qa=E?sa-Ba:Ba-sa;sa=(E?ra:Aa)-(E?Aa:ra);p[aa>>3]=w-sa;p[L>>3]=ba+qa;p[F>>3]=w+sa;p[A>>3]=ba-qa;q=q+1|0}while((q|0)<(r|0));return}default:{r=j+-1|0;q=r<<3;E=Tc(q)|0;K=Tc(q)|0;A=Tc(q)|0;F=Tc(q)|0;q=j<<3;L=Tc(q)|0;aa=Tc(q)|0;q=(e|0)/(j|0)|0;e=X(j,g)|0;if((j|0)>0){wa=h+1|0;h=0;do{La(a+((X(h,q)|0)<<4)|0,b+((X(h,g)|0)<<4)|0,c,d,q,e,wa);h=h+1|0}while((h|0)!=(j|0));h=(r|0)/2|0;if((j|0)<3)Ca=h;else{Aa=+(j|0);wa=1;while(1){Ba=+(wa|0)*6.283185307179586/Aa;za=+N(+Ba);e=wa+-1|0;p[A+(e<<3)>>3]=za;za=+O(+Ba);p[F+(e<<3)>>3]=za;if((wa|0)<(h|0))wa=wa+1|0;else{Ca=h;break}}}}else Ca=(r|0)/2|0;h=(r|0)>1;if(h){wa=Ca+-1|0;e=0;do{g=wa-e|0;b=e+Ca|0;p[F+(b<<3)>>3]=-+p[F+(g<<3)>>3];p[A+(b<<3)>>3]=+p[A+(g<<3)>>3];e=e+1|0}while((e|0)<(Ca|0))}if((q|0)>0){e=q+-1|0;wa=(j|0)>1;Aa=+(d|0);d=0;do{g=a+(d<<4)|0;p[L>>3]=+p[g>>3];b=a+(d<<4)+8|0;p[aa>>3]=+p[b>>3];if(wa){oa=e+(X(d,r)|0)|0;m=0;while(1){za=+p[c+272+(oa<<4)>>3];Ba=+p[c+272+(oa<<4)+8>>3];m=m+1|0;na=(X(m,q)|0)+d|0;ya=+p[a+(na<<4)>>3];qa=+p[a+(na<<4)+8>>3];p[L+(m<<3)>>3]=ya*za-Ba*qa;p[aa+(m<<3)>>3]=qa*za+ya*Ba;if((m|0)==(r|0))break;else oa=oa+1|0}}if(h){oa=0;do{m=oa;oa=oa+1|0;Ba=+p[L+(oa<<3)>>3];na=r-m|0;ya=+p[L+(na<<3)>>3];p[E+(m<<3)>>3]=Ba+ya;za=+p[aa+(oa<<3)>>3];qa=+p[aa+(na<<3)>>3];na=m+Ca|0;p[K+(na<<3)>>3]=za-qa;p[K+(m<<3)>>3]=qa+za;p[E+(na<<3)>>3]=Ba-ya}while((oa|0)<(Ca|0));ya=+p[L>>3];Ba=+p[aa>>3];if(h){za=Ba;qa=ya;oa=0;do{qa=qa+ +p[E+(oa<<3)>>3];za=za+ +p[K+(oa<<3)>>3];oa=oa+1|0}while((oa|0)<(Ca|0));p[g>>3]=qa;p[b>>3]=za;if(h){oa=0;do{na=oa;oa=oa+1|0;ba=0.0;sa=0.0;m=0;w=Ba;ra=ya;do{xa=m;m=m+1|0;G=X(m,oa)|0;while(1)if((G|0)<(j|0))break;else G=G-j|0;i=G+-1|0;k=+p[A+(i<<3)>>3];ra=ra+k*+p[E+(xa<<3)>>3];w=w+k*+p[K+(xa<<3)>>3];k=+p[F+(i<<3)>>3];i=xa+Ca|0;sa=sa-k*+p[E+(i<<3)>>3];ba=ba-k*+p[K+(i<<3)>>3]}while((m|0)<(Ca|0));k=Aa*sa;n=Aa*ba;m=(X(oa,q)|0)+d|0;p[a+(m<<4)>>3]=ra-n;p[a+(m<<4)+8>>3]=w+k;m=(X(r-na|0,q)|0)+d|0;p[a+(m<<4)>>3]=ra+n;p[a+(m<<4)+8>>3]=w-k}while((oa|0)<(Ca|0))}}else{Da=Ba;Ea=ya;Fa=89}}else{Da=+p[aa>>3];Ea=+p[L>>3];Fa=89}if((Fa|0)==89){Fa=0;p[g>>3]=Ea;p[b>>3]=Da}d=d+1|0}while((d|0)!=(q|0))}Uc(E);Uc(K);Uc(A);Uc(F);Uc(L);Uc(aa);return}}}}function Ma(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0.0,A=0.0,B=0,C=0,D=0,E=0;g=c+268|0;f[g>>2]=0;h=+(e|0);i=~~+ha(+(+W(+(+Dc(h)/.3010299956639812))));j=c+4|0;k=f[j>>2]|0;l=f[c>>2]|0;m=e<<1;n=i<<((i|0)<(m+-2|0)&1);f[c>>2]=n;i=n<<4;o=Tc(i)|0;q=Tc(i)|0;r=Tc(i)|0;s=Tc(i)|0;t=e<<4;u=Tc(t)|0;v=3.141592653589793/h;w=(e|0)>0;if(w){x=0;y=0;while(1){h=v*+(x|0);z=+N(+h);p[u+(y<<4)>>3]=z;A=+O(+h);p[u+(y<<4)+8>>3]=A;p[r+(y<<4)>>3]=z;p[r+(y<<4)+8>>3]=A;B=(y<<1|1)+x|0;while(1)if((B|0)>(m|0))B=B-m|0;else break;y=y+1|0;if((y|0)==(e|0))break;else x=B}}x=n-e|0;if((x|0)<(e|0))C=x+1|0;else{y=x+1|0;Yc(r+(e<<4)|0,0,y-e<<4|0)|0;C=y}if((C|0)<(n|0)){y=C;do{C=n-y|0;p[r+(y<<4)>>3]=+p[u+(C<<4)>>3];p[r+(y<<4)+8>>3]=+p[u+(C<<4)+8>>3];y=y+1|0}while((y|0)!=(n|0))}v=1.0/+(n|0);y=(n|0)>0;if(y){C=0;do{x=r+(C<<4)+8|0;p[x>>3]=v*+p[x>>3];x=r+(C<<4)|0;p[x>>3]=v*+p[x>>3];C=C+1|0}while((C|0)!=(n|0))}La(q,r,c,k,n,1,0);C=(d|0)==1;if(C){if(w){x=0;do{v=+p[a+(x<<4)>>3];A=+p[u+(x<<4)>>3];z=+p[a+(x<<4)+8>>3];h=+p[u+(x<<4)+8>>3];p[r+(x<<4)>>3]=v*A+z*h;p[r+(x<<4)+8>>3]=z*A-h*v;x=x+1|0}while((x|0)!=(e|0))}}else if(w){x=0;do{v=+p[a+(x<<4)>>3];h=+p[u+(x<<4)>>3];A=+p[a+(x<<4)+8>>3];z=+p[u+(x<<4)+8>>3];p[r+(x<<4)>>3]=v*h-A*z;p[r+(x<<4)+8>>3]=z*v+A*h;x=x+1|0}while((x|0)!=(e|0))}if((n|0)>(e|0))Yc(r+t|0,0,i-t|0)|0;switch(f[g>>2]|0){case 0:{La(o,r,c,f[j>>2]|0,f[c>>2]|0,1,0);break}case 1:{Ma(r,o,c,f[j>>2]|0,f[c>>2]|0);break}default:{}}if(C){if(y){t=0;do{i=o+(t<<4)|0;h=+p[i>>3];A=+p[q+(t<<4)>>3];x=o+(t<<4)+8|0;v=+p[x>>3];z=+p[q+(t<<4)+8>>3];p[x>>3]=A*v+h*z;p[i>>3]=h*A-v*z;t=t+1|0}while((t|0)!=(n|0));D=25}}else if(y){t=0;do{i=o+(t<<4)|0;z=+p[i>>3];v=+p[q+(t<<4)>>3];x=o+(t<<4)+8|0;A=+p[x>>3];h=+p[q+(t<<4)+8>>3];p[x>>3]=v*A-z*h;p[i>>3]=z*v+A*h;t=t+1|0}while((t|0)!=(n|0));D=25}if((D|0)==25?y:0){D=0;do{t=c+272+(D<<4)+8|0;p[t>>3]=-+p[t>>3];D=D+1|0}while((D|0)!=(n|0))}D=0-d|0;f[j>>2]=D;switch(f[g>>2]|0){case 0:{La(s,o,c,D,f[c>>2]|0,1,0);break}case 1:{Ma(o,s,c,D,f[c>>2]|0);break}default:{}}if(C){if(w){C=0;do{h=+p[s+(C<<4)>>3];A=+p[u+(C<<4)>>3];v=+p[s+(C<<4)+8>>3];z=+p[u+(C<<4)+8>>3];p[b+(C<<4)>>3]=h*A+v*z;p[b+(C<<4)+8>>3]=v*A-z*h;C=C+1|0}while((C|0)!=(e|0))}}else if(w){w=0;do{h=+p[s+(w<<4)>>3];z=+p[u+(w<<4)>>3];A=+p[s+(w<<4)+8>>3];v=+p[u+(w<<4)+8>>3];p[b+(w<<4)>>3]=h*z-A*v;p[b+(w<<4)+8>>3]=v*h+A*z;w=w+1|0}while((w|0)!=(e|0))}f[j>>2]=k;f[c>>2]=l;f[g>>2]=1;if(y)E=0;else{Uc(o);Uc(s);Uc(r);Uc(q);Uc(u);return}do{y=c+272+(E<<4)+8|0;p[y>>3]=-+p[y>>3];E=E+1|0}while((E|0)!=(n|0));Uc(o);Uc(s);Uc(r);Uc(q);Uc(u);return}function Na(a){a=a|0;Uc(a);return}function Oa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0.0,h=0.0,i=0.0;c=(a|0)/2|0;d=Tc((c<<4)+24|0)|0;e=Ha(c,b)|0;f[d>>2]=e;if((a|0)<=1)return d|0;g=+(a|0);a=d+8|0;e=0;do{h=+(e|0)*6.283185307179586/g;i=+N(+h);p[a+(e<<4)>>3]=i;i=+O(+h);p[a+(e<<4)+8>>3]=i;e=e+1|0}while((e|0)<(c|0));return d|0}function Pa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0;d=f[a>>2]|0;e=f[d>>2]|0;g=e<<1;h=e<<4;i=Tc(h)|0;j=Tc(h)|0;if((e|0)>0){h=0;do{k=h<<1;p[i+(h<<4)>>3]=+p[b+(k<<3)>>3];p[i+(h<<4)+8>>3]=+p[b+((k|1)<<3)>>3];h=h+1|0}while((h|0)!=(e|0))}Ka(d,i,j);l=+p[j>>3];m=+p[j+8>>3];p[c>>3]=l+m;p[c+8>>3]=0.0;d=(e|0)>1;if(d)n=1;else{p[c+(e<<4)>>3]=l-m;p[c+(e<<4)+8>>3]=0.0;Uc(i);Uc(j);return}do{o=+p[j+(n<<4)+8>>3];h=e-n|0;q=+p[j+(h<<4)+8>>3];r=o+q;s=+p[j+(h<<4)>>3];t=+p[j+(n<<4)>>3];u=s-t;h=a+8+(n<<4)|0;v=+p[a+8+(n<<4)+8>>3];p[c+(n<<4)>>3]=(s+t+r*+p[h>>3]+u*v)*.5;p[c+(n<<4)+8>>3]=(o-q+u*+p[h>>3]-r*v)*.5;n=n+1|0}while((n|0)!=(e|0));p[c+(e<<4)>>3]=l-m;p[c+(e<<4)+8>>3]=0.0;if(d)w=1;else{Uc(i);Uc(j);return}do{d=g-w|0;p[c+(d<<4)>>3]=+p[c+(w<<4)>>3];p[c+(d<<4)+8>>3]=-+p[c+(w<<4)+8>>3];w=w+1|0}while((w|0)!=(e|0));Uc(i);Uc(j);return}function Qa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0;d=f[a>>2]|0;e=f[d>>2]|0;g=e<<4;h=Tc(g)|0;i=Tc(g)|0;g=(e|0)>0;if(g)j=0;else{Ka(d,h,i);Uc(h);Uc(i);return}do{k=+p[b+(j<<4)+8>>3];l=e-j|0;m=+p[b+(l<<4)+8>>3];n=-k-m;o=+p[b+(l<<4)>>3];q=+p[b+(j<<4)>>3];r=q-o;s=+p[a+8+(j<<4)>>3];t=+p[a+8+(j<<4)+8>>3];p[h+(j<<4)>>3]=o+q+n*s-r*t;p[h+(j<<4)+8>>3]=n*t+(k-m+r*s);j=j+1|0}while((j|0)!=(e|0));Ka(d,h,i);if(g)u=0;else{Uc(h);Uc(i);return}do{g=u<<1;p[c+(g<<3)>>3]=+p[i+(u<<4)>>3];p[c+((g|1)<<3)>>3]=+p[i+(u<<4)+8>>3];u=u+1|0}while((u|0)!=(e|0));Uc(h);Uc(i);return}function Ra(a){a=a|0;Na(f[a>>2]|0);Uc(a);return}function Sa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;c=Tc(20)|0;d=a+-1+b|0;while(1){if(!((d|0)%7|0)){e=d;while(1){g=(e|0)/7|0;if(!((g|0)%7|0))e=g;else{h=g;break}}}else h=d;if(!((h|0)%3|0)){e=h;while(1){g=(e|0)/3|0;if(!((g|0)%3|0))e=g;else{i=g;break}}}else i=h;if(!((i|0)%5|0)){e=i;while(1){g=(e|0)/5|0;if(!((g|0)%5|0))e=g;else{j=g;break}}}else j=i;if(!(j&1)){e=j;while(1){g=(e|0)/2|0;if(!(g&1))e=g;else{k=g;break}}}else k=j;if((d&1|0)!=0|(k|0)!=1)d=d+1|0;else break}f[c+16>>2]=d;f[c+8>>2]=a;f[c+12>>2]=b;b=Oa(d,1)|0;f[c>>2]=b;b=Oa(d,-1)|0;f[c+4>>2]=b;return c|0}function Ta(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0;f=b+-1|0;g=f+d|0;if((b|0)<(d|0)){if((b|0)>0){h=0;i=1;while(1){j=e+(h<<3)|0;p[j>>3]=0.0;k=0;l=0.0;do{l=l+ +p[c+(k<<3)>>3]*+p[a+(h-k<<3)>>3];p[j>>3]=l;k=k+1|0}while((k|0)!=(i|0));h=h+1|0;if((h|0)==(b|0))break;else i=i+1|0}}if((g|0)<=(b|0))return;l=+(d|0);i=d+-1|0;h=0;k=b;while(1){j=e+(k<<3)|0;p[j>>3]=0.0;h=h+1|0;m=+(h+b|0);n=m>3]*+p[a+(k-o<<3)>>3];p[j>>3]=m;o=o+1|0}while(+(o|0)0){k=0;i=1;while(1){h=e+(k<<3)|0;p[h>>3]=0.0;o=0;l=0.0;do{l=l+ +p[a+(o<<3)>>3]*+p[c+(k-o<<3)>>3];p[h>>3]=l;o=o+1|0}while((o|0)!=(i|0));k=k+1|0;if((k|0)==(d|0))break;else i=i+1|0}}if((g|0)<=(d|0))return;l=+(b|0);b=0;g=d;while(1){i=e+(g<<3)|0;p[i>>3]=0.0;b=b+1|0;n=+(b+d|0);m=n>3]*+p[c+(g-k<<3)>>3];p[i>>3]=n;k=k+1|0}while(+(k|0)>2]|0;g=f[a+8>>2]|0;h=f[a+12>>2]|0;i=g+-1+h|0;j=e<<4;k=Tc(j)|0;l=Tc(j)|0;m=Tc(j)|0;n=Tc(j)|0;o=Tc(j)|0;q=Tc(j)|0;j=(e|0)>0;if(j){r=0;do{if((r|0)<(g|0))s=+p[b+(r<<3)>>3];else s=0.0;p[k+(r<<3)>>3]=s;if((r|0)<(h|0))t=+p[c+(r<<3)>>3];else t=0.0;p[l+(r<<3)>>3]=t;r=r+1|0}while((r|0)!=(e|0));Pa(f[a>>2]|0,k,n);Pa(f[a>>2]|0,l,o);if(j){j=0;do{t=+p[n+(j<<4)>>3];s=+p[o+(j<<4)>>3];u=+p[n+(j<<4)+8>>3];v=+p[o+(j<<4)+8>>3];p[m+(j<<4)>>3]=t*s-u*v;p[m+(j<<4)+8>>3]=u*s+v*t;j=j+1|0}while((j|0)!=(e|0))}}else{Pa(f[a>>2]|0,k,n);Pa(f[a>>2]|0,l,o)}Qa(f[a+4>>2]|0,m,q);if((i|0)<=0){Uc(k);Uc(l);Uc(m);Uc(n);Uc(o);Uc(q);return}t=+(e|0);e=0;do{p[d+(e<<3)>>3]=+p[q+(e<<3)>>3]/t;e=e+1|0}while((e|0)!=(i|0));Uc(k);Uc(l);Uc(m);Uc(n);Uc(o);Uc(q);return}function Va(a){a=a|0;Ra(f[a>>2]|0);Ra(f[a+4>>2]|0);Uc(a);return}function Wa(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=xc(a)|0;a:do if((Mb(a,25288)|0)!=0?(Mb(a,25293)|0)!=0:0){if((b|0)>2?Lc(a,26145)|0:0){c=b+-1|0;d=Tc(c)|0;ed(d|0,a+2|0,c|0)|0;c=Sc(d)|0;Uc(d);if((c|0)>38){Rc(25297)|0;e=-1;break}else{e=c<<1;break}}if(Mb(a,25323)|0)if(Mb(a,25331)|0)if(Mb(a,25339)|0)if(Mb(a,25347)|0)if(Mb(a,25355)|0)if(Mb(a,25363)|0)if(Mb(a,25371)|0)if(Mb(a,25379)|0)if(Mb(a,25387)|0)if(Mb(a,25395)|0)if(Mb(a,25403)|0)if(Mb(a,25411)|0)if(Mb(a,25419)|0)if(Mb(a,25427)|0)if(Mb(a,25435)|0)if(!(Mb(a,25443)|0))e=2;else{if(!(Mb(a,25452)|0)){e=6;break}if(!(Mb(a,25461)|0)){e=10;break}if(!(Mb(a,25470)|0)){e=6;break}if(!(Mb(a,25479)|0)){e=10;break}if(!(Mb(a,25488)|0)){e=14;break}if(!(Mb(a,25497)|0)){e=18;break}if(!(Mb(a,25506)|0)){e=4;break}if(!(Mb(a,25515)|0)){e=8;break}if(!(Mb(a,25524)|0)){e=12;break}if(!(Mb(a,25533)|0)){e=16;break}if(!(Mb(a,25542)|0)){e=20;break}if(!(Mb(a,25551)|0)){e=10;break}if(!(Mb(a,25560)|0)){e=12;break}if(!(Mb(a,25569)|0)){e=18;break}do if((b|0)>4){if(!(Lc(a,26148)|0)){f=44;break}c=b+-3|0;d=Tc(c)|0;ed(d|0,a+4|0,c|0)|0;c=Sc(d)|0;Uc(d);if((c|0)>17){Rc(25297)|0;e=-1;break a}else{e=c*6|0;break a}}else if((b|0)==4)f=44;while(0);do if((f|0)==44){if(!(Lc(a,26541)|0))break;c=b+-2|0;d=Tc(c)|0;ed(d|0,a+3|0,c|0)|0;c=Sc(d)|0;Uc(d);if((c+-2|0)>>>0>18){Rc(25297)|0;e=-1;break a}else{e=c<<1;break a}}while(0);Rc(25297)|0;e=-1}else e=18;else e=12;else e=10;else e=20;else e=16;else e=12;else e=8;else e=4;else e=18;else e=14;else e=10;else e=6;else e=10;else e=6;else e=2}else e=2;while(0);return e|0}function Xa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0;f=Wa(a)|0;if(Mb(a,25288)|0?Mb(a,25293)|0:0){if(!(Mb(a,25578)|0)){if((f|0)<=0){g=f;return g|0}h=f+-1|0;i=0;do{p[b+(i<<3)>>3]=+p[8520+(h-i<<3)>>3];i=i+1|0}while((i|0)!=(f|0));i=Tc(f<<3)|0;j=0;do{k=+p[8520+(h-j<<3)>>3];p[i+(j<<3)>>3]=(j&1|0)==0?k:-k;j=j+1|0}while((j|0)!=(f|0));l=0;do{p[c+(l<<3)>>3]=+p[i+(h-l<<3)>>3];l=l+1|0}while((l|0)!=(f|0));Uc(i);i=0;do{p[d+(i<<3)>>3]=+p[8520+(i<<3)>>3];i=i+1|0}while((i|0)!=(f|0));m=0;do{k=+p[8520+(h-m<<3)>>3];p[e+(m<<3)>>3]=(m&1|0)==0?k:-k;m=m+1|0}while((m|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25582)|0)){if((f|0)<=0){g=f;return g|0}m=f+-1|0;h=0;do{p[b+(h<<3)>>3]=+p[8552+(m-h<<3)>>3];h=h+1|0}while((h|0)!=(f|0));h=Tc(f<<3)|0;i=0;do{k=+p[8552+(m-i<<3)>>3];p[h+(i<<3)>>3]=(i&1|0)==0?k:-k;i=i+1|0}while((i|0)!=(f|0));n=0;do{p[c+(n<<3)>>3]=+p[h+(m-n<<3)>>3];n=n+1|0}while((n|0)!=(f|0));Uc(h);h=0;do{p[d+(h<<3)>>3]=+p[8552+(h<<3)>>3];h=h+1|0}while((h|0)!=(f|0));o=0;do{k=+p[8552+(m-o<<3)>>3];p[e+(o<<3)>>3]=(o&1|0)==0?k:-k;o=o+1|0}while((o|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25586)|0)){if((f|0)<=0){g=f;return g|0}o=f+-1|0;m=0;do{p[b+(m<<3)>>3]=+p[8600+(o-m<<3)>>3];m=m+1|0}while((m|0)!=(f|0));m=Tc(f<<3)|0;h=0;do{k=+p[8600+(o-h<<3)>>3];p[m+(h<<3)>>3]=(h&1|0)==0?k:-k;h=h+1|0}while((h|0)!=(f|0));q=0;do{p[c+(q<<3)>>3]=+p[m+(o-q<<3)>>3];q=q+1|0}while((q|0)!=(f|0));Uc(m);m=0;do{p[d+(m<<3)>>3]=+p[8600+(m<<3)>>3];m=m+1|0}while((m|0)!=(f|0));r=0;do{k=+p[8600+(o-r<<3)>>3];p[e+(r<<3)>>3]=(r&1|0)==0?k:-k;r=r+1|0}while((r|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25590)|0)){if((f|0)<=0){g=f;return g|0}r=f+-1|0;o=0;do{p[b+(o<<3)>>3]=+p[8664+(r-o<<3)>>3];o=o+1|0}while((o|0)!=(f|0));o=Tc(f<<3)|0;m=0;do{k=+p[8664+(r-m<<3)>>3];p[o+(m<<3)>>3]=(m&1|0)==0?k:-k;m=m+1|0}while((m|0)!=(f|0));s=0;do{p[c+(s<<3)>>3]=+p[o+(r-s<<3)>>3];s=s+1|0}while((s|0)!=(f|0));Uc(o);o=0;do{p[d+(o<<3)>>3]=+p[8664+(o<<3)>>3];o=o+1|0}while((o|0)!=(f|0));t=0;do{k=+p[8664+(r-t<<3)>>3];p[e+(t<<3)>>3]=(t&1|0)==0?k:-k;t=t+1|0}while((t|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25594)|0)){if((f|0)<=0){g=f;return g|0}t=f+-1|0;r=0;do{p[b+(r<<3)>>3]=+p[8744+(t-r<<3)>>3];r=r+1|0}while((r|0)!=(f|0));r=Tc(f<<3)|0;o=0;do{k=+p[8744+(t-o<<3)>>3];p[r+(o<<3)>>3]=(o&1|0)==0?k:-k;o=o+1|0}while((o|0)!=(f|0));u=0;do{p[c+(u<<3)>>3]=+p[r+(t-u<<3)>>3];u=u+1|0}while((u|0)!=(f|0));Uc(r);r=0;do{p[d+(r<<3)>>3]=+p[8744+(r<<3)>>3];r=r+1|0}while((r|0)!=(f|0));v=0;do{k=+p[8744+(t-v<<3)>>3];p[e+(v<<3)>>3]=(v&1|0)==0?k:-k;v=v+1|0}while((v|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25598)|0)){if((f|0)<=0){g=f;return g|0}v=f+-1|0;t=0;do{p[b+(t<<3)>>3]=+p[8840+(v-t<<3)>>3];t=t+1|0}while((t|0)!=(f|0));t=Tc(f<<3)|0;r=0;do{k=+p[8840+(v-r<<3)>>3];p[t+(r<<3)>>3]=(r&1|0)==0?k:-k;r=r+1|0}while((r|0)!=(f|0));w=0;do{p[c+(w<<3)>>3]=+p[t+(v-w<<3)>>3];w=w+1|0}while((w|0)!=(f|0));Uc(t);t=0;do{p[d+(t<<3)>>3]=+p[8840+(t<<3)>>3];t=t+1|0}while((t|0)!=(f|0));x=0;do{k=+p[8840+(v-x<<3)>>3];p[e+(x<<3)>>3]=(x&1|0)==0?k:-k;x=x+1|0}while((x|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25602)|0)){if((f|0)<=0){g=f;return g|0}x=f+-1|0;v=0;do{p[b+(v<<3)>>3]=+p[8952+(x-v<<3)>>3];v=v+1|0}while((v|0)!=(f|0));v=Tc(f<<3)|0;t=0;do{k=+p[8952+(x-t<<3)>>3];p[v+(t<<3)>>3]=(t&1|0)==0?k:-k;t=t+1|0}while((t|0)!=(f|0));y=0;do{p[c+(y<<3)>>3]=+p[v+(x-y<<3)>>3];y=y+1|0}while((y|0)!=(f|0));Uc(v);v=0;do{p[d+(v<<3)>>3]=+p[8952+(v<<3)>>3];v=v+1|0}while((v|0)!=(f|0));z=0;do{k=+p[8952+(x-z<<3)>>3];p[e+(z<<3)>>3]=(z&1|0)==0?k:-k;z=z+1|0}while((z|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25606)|0)){if((f|0)<=0){g=f;return g|0}z=f+-1|0;x=0;do{p[b+(x<<3)>>3]=+p[9080+(z-x<<3)>>3];x=x+1|0}while((x|0)!=(f|0));x=Tc(f<<3)|0;v=0;do{k=+p[9080+(z-v<<3)>>3];p[x+(v<<3)>>3]=(v&1|0)==0?k:-k;v=v+1|0}while((v|0)!=(f|0));A=0;do{p[c+(A<<3)>>3]=+p[x+(z-A<<3)>>3];A=A+1|0}while((A|0)!=(f|0));Uc(x);x=0;do{p[d+(x<<3)>>3]=+p[9080+(x<<3)>>3];x=x+1|0}while((x|0)!=(f|0));B=0;do{k=+p[9080+(z-B<<3)>>3];p[e+(B<<3)>>3]=(B&1|0)==0?k:-k;B=B+1|0}while((B|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25610)|0)){if((f|0)<=0){g=f;return g|0}B=f+-1|0;z=0;do{p[b+(z<<3)>>3]=+p[9224+(B-z<<3)>>3];z=z+1|0}while((z|0)!=(f|0));z=Tc(f<<3)|0;x=0;do{k=+p[9224+(B-x<<3)>>3];p[z+(x<<3)>>3]=(x&1|0)==0?k:-k;x=x+1|0}while((x|0)!=(f|0));C=0;do{p[c+(C<<3)>>3]=+p[z+(B-C<<3)>>3];C=C+1|0}while((C|0)!=(f|0));Uc(z);z=0;do{p[d+(z<<3)>>3]=+p[9224+(z<<3)>>3];z=z+1|0}while((z|0)!=(f|0));D=0;do{k=+p[9224+(B-D<<3)>>3];p[e+(D<<3)>>3]=(D&1|0)==0?k:-k;D=D+1|0}while((D|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25615)|0)){if((f|0)<=0){g=f;return g|0}D=f+-1|0;B=0;do{p[b+(B<<3)>>3]=+p[9384+(D-B<<3)>>3];B=B+1|0}while((B|0)!=(f|0));B=Tc(f<<3)|0;z=0;do{k=+p[9384+(D-z<<3)>>3];p[B+(z<<3)>>3]=(z&1|0)==0?k:-k;z=z+1|0}while((z|0)!=(f|0));E=0;do{p[c+(E<<3)>>3]=+p[B+(D-E<<3)>>3];E=E+1|0}while((E|0)!=(f|0));Uc(B);B=0;do{p[d+(B<<3)>>3]=+p[9384+(B<<3)>>3];B=B+1|0}while((B|0)!=(f|0));F=0;do{k=+p[9384+(D-F<<3)>>3];p[e+(F<<3)>>3]=(F&1|0)==0?k:-k;F=F+1|0}while((F|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25620)|0)){if((f|0)<=0){g=f;return g|0}F=f+-1|0;D=0;do{p[b+(D<<3)>>3]=+p[9560+(F-D<<3)>>3];D=D+1|0}while((D|0)!=(f|0));D=Tc(f<<3)|0;B=0;do{k=+p[9560+(F-B<<3)>>3];p[D+(B<<3)>>3]=(B&1|0)==0?k:-k;B=B+1|0}while((B|0)!=(f|0));G=0;do{p[c+(G<<3)>>3]=+p[D+(F-G<<3)>>3];G=G+1|0}while((G|0)!=(f|0));Uc(D);D=0;do{p[d+(D<<3)>>3]=+p[9560+(D<<3)>>3];D=D+1|0}while((D|0)!=(f|0));H=0;do{k=+p[9560+(F-H<<3)>>3];p[e+(H<<3)>>3]=(H&1|0)==0?k:-k;H=H+1|0}while((H|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25625)|0)){if((f|0)<=0){g=f;return g|0}H=f+-1|0;F=0;do{p[b+(F<<3)>>3]=+p[9752+(H-F<<3)>>3];F=F+1|0}while((F|0)!=(f|0));F=Tc(f<<3)|0;D=0;do{k=+p[9752+(H-D<<3)>>3];p[F+(D<<3)>>3]=(D&1|0)==0?k:-k;D=D+1|0}while((D|0)!=(f|0));I=0;do{p[c+(I<<3)>>3]=+p[F+(H-I<<3)>>3];I=I+1|0}while((I|0)!=(f|0));Uc(F);F=0;do{p[d+(F<<3)>>3]=+p[9752+(F<<3)>>3];F=F+1|0}while((F|0)!=(f|0));J=0;do{k=+p[9752+(H-J<<3)>>3];p[e+(J<<3)>>3]=(J&1|0)==0?k:-k;J=J+1|0}while((J|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25630)|0)){if((f|0)<=0){g=f;return g|0}J=f+-1|0;H=0;do{p[b+(H<<3)>>3]=+p[9960+(J-H<<3)>>3];H=H+1|0}while((H|0)!=(f|0));H=Tc(f<<3)|0;F=0;do{k=+p[9960+(J-F<<3)>>3];p[H+(F<<3)>>3]=(F&1|0)==0?k:-k;F=F+1|0}while((F|0)!=(f|0));K=0;do{p[c+(K<<3)>>3]=+p[H+(J-K<<3)>>3];K=K+1|0}while((K|0)!=(f|0));Uc(H);H=0;do{p[d+(H<<3)>>3]=+p[9960+(H<<3)>>3];H=H+1|0}while((H|0)!=(f|0));L=0;do{k=+p[9960+(J-L<<3)>>3];p[e+(L<<3)>>3]=(L&1|0)==0?k:-k;L=L+1|0}while((L|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25635)|0)){if((f|0)<=0){g=f;return g|0}L=f+-1|0;J=0;do{p[b+(J<<3)>>3]=+p[10184+(L-J<<3)>>3];J=J+1|0}while((J|0)!=(f|0));J=Tc(f<<3)|0;H=0;do{k=+p[10184+(L-H<<3)>>3];p[J+(H<<3)>>3]=(H&1|0)==0?k:-k;H=H+1|0}while((H|0)!=(f|0));M=0;do{p[c+(M<<3)>>3]=+p[J+(L-M<<3)>>3];M=M+1|0}while((M|0)!=(f|0));Uc(J);J=0;do{p[d+(J<<3)>>3]=+p[10184+(J<<3)>>3];J=J+1|0}while((J|0)!=(f|0));N=0;do{k=+p[10184+(L-N<<3)>>3];p[e+(N<<3)>>3]=(N&1|0)==0?k:-k;N=N+1|0}while((N|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25640)|0)){if((f|0)<=0){g=f;return g|0}N=f+-1|0;L=0;do{p[b+(L<<3)>>3]=+p[10424+(N-L<<3)>>3];L=L+1|0}while((L|0)!=(f|0));L=Tc(f<<3)|0;J=0;do{k=+p[10424+(N-J<<3)>>3];p[L+(J<<3)>>3]=(J&1|0)==0?k:-k;J=J+1|0}while((J|0)!=(f|0));O=0;do{p[c+(O<<3)>>3]=+p[L+(N-O<<3)>>3];O=O+1|0}while((O|0)!=(f|0));Uc(L);L=0;do{p[d+(L<<3)>>3]=+p[10424+(L<<3)>>3];L=L+1|0}while((L|0)!=(f|0));P=0;do{k=+p[10424+(N-P<<3)>>3];p[e+(P<<3)>>3]=(P&1|0)==0?k:-k;P=P+1|0}while((P|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25645)|0)){if((f|0)<=0){g=f;return g|0}P=f+-1|0;N=0;do{p[b+(N<<3)>>3]=+p[10680+(P-N<<3)>>3];N=N+1|0}while((N|0)!=(f|0));N=Tc(f<<3)|0;L=0;do{k=+p[10680+(P-L<<3)>>3];p[N+(L<<3)>>3]=(L&1|0)==0?k:-k;L=L+1|0}while((L|0)!=(f|0));Q=0;do{p[c+(Q<<3)>>3]=+p[N+(P-Q<<3)>>3];Q=Q+1|0}while((Q|0)!=(f|0));Uc(N);N=0;do{p[d+(N<<3)>>3]=+p[10680+(N<<3)>>3];N=N+1|0}while((N|0)!=(f|0));R=0;do{k=+p[10680+(P-R<<3)>>3];p[e+(R<<3)>>3]=(R&1|0)==0?k:-k;R=R+1|0}while((R|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25650)|0)){if((f|0)<=0){g=f;return g|0}R=f+-1|0;P=0;do{p[b+(P<<3)>>3]=+p[10952+(R-P<<3)>>3];P=P+1|0}while((P|0)!=(f|0));P=Tc(f<<3)|0;N=0;do{k=+p[10952+(R-N<<3)>>3];p[P+(N<<3)>>3]=(N&1|0)==0?k:-k;N=N+1|0}while((N|0)!=(f|0));S=0;do{p[c+(S<<3)>>3]=+p[P+(R-S<<3)>>3];S=S+1|0}while((S|0)!=(f|0));Uc(P);P=0;do{p[d+(P<<3)>>3]=+p[10952+(P<<3)>>3];P=P+1|0}while((P|0)!=(f|0));T=0;do{k=+p[10952+(R-T<<3)>>3];p[e+(T<<3)>>3]=(T&1|0)==0?k:-k;T=T+1|0}while((T|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25655)|0)){if((f|0)<=0){g=f;return g|0}T=f+-1|0;R=0;do{p[b+(R<<3)>>3]=+p[11240+(T-R<<3)>>3];R=R+1|0}while((R|0)!=(f|0));R=Tc(f<<3)|0;P=0;do{k=+p[11240+(T-P<<3)>>3];p[R+(P<<3)>>3]=(P&1|0)==0?k:-k;P=P+1|0}while((P|0)!=(f|0));U=0;do{p[c+(U<<3)>>3]=+p[R+(T-U<<3)>>3];U=U+1|0}while((U|0)!=(f|0));Uc(R);R=0;do{p[d+(R<<3)>>3]=+p[11240+(R<<3)>>3];R=R+1|0}while((R|0)!=(f|0));V=0;do{k=+p[11240+(T-V<<3)>>3];p[e+(V<<3)>>3]=(V&1|0)==0?k:-k;V=V+1|0}while((V|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25660)|0)){if((f|0)<=0){g=f;return g|0}V=f+-1|0;T=0;do{p[b+(T<<3)>>3]=+p[11544+(V-T<<3)>>3];T=T+1|0}while((T|0)!=(f|0));T=Tc(f<<3)|0;R=0;do{k=+p[11544+(V-R<<3)>>3];p[T+(R<<3)>>3]=(R&1|0)==0?k:-k;R=R+1|0}while((R|0)!=(f|0));W=0;do{p[c+(W<<3)>>3]=+p[T+(V-W<<3)>>3];W=W+1|0}while((W|0)!=(f|0));Uc(T);T=0;do{p[d+(T<<3)>>3]=+p[11544+(T<<3)>>3];T=T+1|0}while((T|0)!=(f|0));X=0;do{k=+p[11544+(V-X<<3)>>3];p[e+(X<<3)>>3]=(X&1|0)==0?k:-k;X=X+1|0}while((X|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25665)|0)){if((f|0)<=0){g=f;return g|0}X=f+-1|0;V=0;do{p[b+(V<<3)>>3]=+p[8+(X-V<<3)>>3];V=V+1|0}while((V|0)!=(f|0));V=Tc(f<<3)|0;T=0;do{k=+p[8+(X-T<<3)>>3];p[V+(T<<3)>>3]=(T&1|0)==0?k:-k;T=T+1|0}while((T|0)!=(f|0));Y=0;do{p[c+(Y<<3)>>3]=+p[V+(X-Y<<3)>>3];Y=Y+1|0}while((Y|0)!=(f|0));Uc(V);V=0;do{p[d+(V<<3)>>3]=+p[8+(V<<3)>>3];V=V+1|0}while((V|0)!=(f|0));Z=0;do{k=+p[8+(X-Z<<3)>>3];p[e+(Z<<3)>>3]=(Z&1|0)==0?k:-k;Z=Z+1|0}while((Z|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25670)|0)){if((f|0)<=0){g=f;return g|0}Z=f+-1|0;X=0;do{p[b+(X<<3)>>3]=+p[344+(Z-X<<3)>>3];X=X+1|0}while((X|0)!=(f|0));X=Tc(f<<3)|0;V=0;do{k=+p[344+(Z-V<<3)>>3];p[X+(V<<3)>>3]=(V&1|0)==0?k:-k;V=V+1|0}while((V|0)!=(f|0));_=0;do{p[c+(_<<3)>>3]=+p[X+(Z-_<<3)>>3];_=_+1|0}while((_|0)!=(f|0));Uc(X);X=0;do{p[d+(X<<3)>>3]=+p[344+(X<<3)>>3];X=X+1|0}while((X|0)!=(f|0));$=0;do{k=+p[344+(Z-$<<3)>>3];p[e+($<<3)>>3]=($&1|0)==0?k:-k;$=$+1|0}while(($|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25675)|0)){if((f|0)<=0){g=f;return g|0}$=f+-1|0;Z=0;do{p[b+(Z<<3)>>3]=+p[696+($-Z<<3)>>3];Z=Z+1|0}while((Z|0)!=(f|0));Z=Tc(f<<3)|0;X=0;do{k=+p[696+($-X<<3)>>3];p[Z+(X<<3)>>3]=(X&1|0)==0?k:-k;X=X+1|0}while((X|0)!=(f|0));aa=0;do{p[c+(aa<<3)>>3]=+p[Z+($-aa<<3)>>3];aa=aa+1|0}while((aa|0)!=(f|0));Uc(Z);Z=0;do{p[d+(Z<<3)>>3]=+p[696+(Z<<3)>>3];Z=Z+1|0}while((Z|0)!=(f|0));ba=0;do{k=+p[696+($-ba<<3)>>3];p[e+(ba<<3)>>3]=(ba&1|0)==0?k:-k;ba=ba+1|0}while((ba|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25680)|0)){if((f|0)<=0){g=f;return g|0}ba=f+-1|0;$=0;do{p[b+($<<3)>>3]=+p[1064+(ba-$<<3)>>3];$=$+1|0}while(($|0)!=(f|0));$=Tc(f<<3)|0;Z=0;do{k=+p[1064+(ba-Z<<3)>>3];p[$+(Z<<3)>>3]=(Z&1|0)==0?k:-k;Z=Z+1|0}while((Z|0)!=(f|0));ca=0;do{p[c+(ca<<3)>>3]=+p[$+(ba-ca<<3)>>3];ca=ca+1|0}while((ca|0)!=(f|0));Uc($);$=0;do{p[d+($<<3)>>3]=+p[1064+($<<3)>>3];$=$+1|0}while(($|0)!=(f|0));da=0;do{k=+p[1064+(ba-da<<3)>>3];p[e+(da<<3)>>3]=(da&1|0)==0?k:-k;da=da+1|0}while((da|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25685)|0)){if((f|0)<=0){g=f;return g|0}da=f+-1|0;ba=0;do{p[b+(ba<<3)>>3]=+p[1448+(da-ba<<3)>>3];ba=ba+1|0}while((ba|0)!=(f|0));ba=Tc(f<<3)|0;$=0;do{k=+p[1448+(da-$<<3)>>3];p[ba+($<<3)>>3]=($&1|0)==0?k:-k;$=$+1|0}while(($|0)!=(f|0));ea=0;do{p[c+(ea<<3)>>3]=+p[ba+(da-ea<<3)>>3];ea=ea+1|0}while((ea|0)!=(f|0));Uc(ba);ba=0;do{p[d+(ba<<3)>>3]=+p[1448+(ba<<3)>>3];ba=ba+1|0}while((ba|0)!=(f|0));fa=0;do{k=+p[1448+(da-fa<<3)>>3];p[e+(fa<<3)>>3]=(fa&1|0)==0?k:-k;fa=fa+1|0}while((fa|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25690)|0)){if((f|0)<=0){g=f;return g|0}fa=f+-1|0;da=0;do{p[b+(da<<3)>>3]=+p[1848+(fa-da<<3)>>3];da=da+1|0}while((da|0)!=(f|0));da=Tc(f<<3)|0;ba=0;do{k=+p[1848+(fa-ba<<3)>>3];p[da+(ba<<3)>>3]=(ba&1|0)==0?k:-k;ba=ba+1|0}while((ba|0)!=(f|0));ga=0;do{p[c+(ga<<3)>>3]=+p[da+(fa-ga<<3)>>3];ga=ga+1|0}while((ga|0)!=(f|0));Uc(da);da=0;do{p[d+(da<<3)>>3]=+p[1848+(da<<3)>>3];da=da+1|0}while((da|0)!=(f|0));ha=0;do{k=+p[1848+(fa-ha<<3)>>3];p[e+(ha<<3)>>3]=(ha&1|0)==0?k:-k;ha=ha+1|0}while((ha|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25695)|0)){if((f|0)<=0){g=f;return g|0}ha=f+-1|0;fa=0;do{p[b+(fa<<3)>>3]=+p[2264+(ha-fa<<3)>>3];fa=fa+1|0}while((fa|0)!=(f|0));fa=Tc(f<<3)|0;da=0;do{k=+p[2264+(ha-da<<3)>>3];p[fa+(da<<3)>>3]=(da&1|0)==0?k:-k;da=da+1|0}while((da|0)!=(f|0));ia=0;do{p[c+(ia<<3)>>3]=+p[fa+(ha-ia<<3)>>3];ia=ia+1|0}while((ia|0)!=(f|0));Uc(fa);fa=0;do{p[d+(fa<<3)>>3]=+p[2264+(fa<<3)>>3];fa=fa+1|0}while((fa|0)!=(f|0));ja=0;do{k=+p[2264+(ha-ja<<3)>>3];p[e+(ja<<3)>>3]=(ja&1|0)==0?k:-k;ja=ja+1|0}while((ja|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25700)|0)){if((f|0)<=0){g=f;return g|0}ja=f+-1|0;ha=0;do{p[b+(ha<<3)>>3]=+p[2696+(ja-ha<<3)>>3];ha=ha+1|0}while((ha|0)!=(f|0));ha=Tc(f<<3)|0;fa=0;do{k=+p[2696+(ja-fa<<3)>>3];p[ha+(fa<<3)>>3]=(fa&1|0)==0?k:-k;fa=fa+1|0}while((fa|0)!=(f|0));ka=0;do{p[c+(ka<<3)>>3]=+p[ha+(ja-ka<<3)>>3];ka=ka+1|0}while((ka|0)!=(f|0));Uc(ha);ha=0;do{p[d+(ha<<3)>>3]=+p[2696+(ha<<3)>>3];ha=ha+1|0}while((ha|0)!=(f|0));la=0;do{k=+p[2696+(ja-la<<3)>>3];p[e+(la<<3)>>3]=(la&1|0)==0?k:-k;la=la+1|0}while((la|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25705)|0)){if((f|0)<=0){g=f;return g|0}la=f+-1|0;ja=0;do{p[b+(ja<<3)>>3]=+p[3144+(la-ja<<3)>>3];ja=ja+1|0}while((ja|0)!=(f|0));ja=Tc(f<<3)|0;ha=0;do{k=+p[3144+(la-ha<<3)>>3];p[ja+(ha<<3)>>3]=(ha&1|0)==0?k:-k;ha=ha+1|0}while((ha|0)!=(f|0));ma=0;do{p[c+(ma<<3)>>3]=+p[ja+(la-ma<<3)>>3];ma=ma+1|0}while((ma|0)!=(f|0));Uc(ja);ja=0;do{p[d+(ja<<3)>>3]=+p[3144+(ja<<3)>>3];ja=ja+1|0}while((ja|0)!=(f|0));na=0;do{k=+p[3144+(la-na<<3)>>3];p[e+(na<<3)>>3]=(na&1|0)==0?k:-k;na=na+1|0}while((na|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25710)|0)){if((f|0)<=0){g=f;return g|0}na=f+-1|0;la=0;do{p[b+(la<<3)>>3]=+p[3608+(na-la<<3)>>3];la=la+1|0}while((la|0)!=(f|0));la=Tc(f<<3)|0;ja=0;do{k=+p[3608+(na-ja<<3)>>3];p[la+(ja<<3)>>3]=(ja&1|0)==0?k:-k;ja=ja+1|0}while((ja|0)!=(f|0));oa=0;do{p[c+(oa<<3)>>3]=+p[la+(na-oa<<3)>>3];oa=oa+1|0}while((oa|0)!=(f|0));Uc(la);la=0;do{p[d+(la<<3)>>3]=+p[3608+(la<<3)>>3];la=la+1|0}while((la|0)!=(f|0));pa=0;do{k=+p[3608+(na-pa<<3)>>3];p[e+(pa<<3)>>3]=(pa&1|0)==0?k:-k;pa=pa+1|0}while((pa|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25715)|0)){if((f|0)<=0){g=f;return g|0}pa=f+-1|0;na=0;do{p[b+(na<<3)>>3]=+p[4088+(pa-na<<3)>>3];na=na+1|0}while((na|0)!=(f|0));na=Tc(f<<3)|0;la=0;do{k=+p[4088+(pa-la<<3)>>3];p[na+(la<<3)>>3]=(la&1|0)==0?k:-k;la=la+1|0}while((la|0)!=(f|0));qa=0;do{p[c+(qa<<3)>>3]=+p[na+(pa-qa<<3)>>3];qa=qa+1|0}while((qa|0)!=(f|0));Uc(na);na=0;do{p[d+(na<<3)>>3]=+p[4088+(na<<3)>>3];na=na+1|0}while((na|0)!=(f|0));ra=0;do{k=+p[4088+(pa-ra<<3)>>3];p[e+(ra<<3)>>3]=(ra&1|0)==0?k:-k;ra=ra+1|0}while((ra|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25720)|0)){if((f|0)<=0){g=f;return g|0}ra=f+-1|0;pa=0;do{p[b+(pa<<3)>>3]=+p[4584+(ra-pa<<3)>>3];pa=pa+1|0}while((pa|0)!=(f|0));pa=Tc(f<<3)|0;na=0;do{k=+p[4584+(ra-na<<3)>>3];p[pa+(na<<3)>>3]=(na&1|0)==0?k:-k;na=na+1|0}while((na|0)!=(f|0));sa=0;do{p[c+(sa<<3)>>3]=+p[pa+(ra-sa<<3)>>3];sa=sa+1|0}while((sa|0)!=(f|0));Uc(pa);pa=0;do{p[d+(pa<<3)>>3]=+p[4584+(pa<<3)>>3];pa=pa+1|0}while((pa|0)!=(f|0));ta=0;do{k=+p[4584+(ra-ta<<3)>>3];p[e+(ta<<3)>>3]=(ta&1|0)==0?k:-k;ta=ta+1|0}while((ta|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25725)|0)){if((f|0)<=0){g=f;return g|0}ta=f+-1|0;ra=0;do{p[b+(ra<<3)>>3]=+p[5096+(ta-ra<<3)>>3];ra=ra+1|0}while((ra|0)!=(f|0));ra=Tc(f<<3)|0;pa=0;do{k=+p[5096+(ta-pa<<3)>>3];p[ra+(pa<<3)>>3]=(pa&1|0)==0?k:-k;pa=pa+1|0}while((pa|0)!=(f|0));ua=0;do{p[c+(ua<<3)>>3]=+p[ra+(ta-ua<<3)>>3];ua=ua+1|0}while((ua|0)!=(f|0));Uc(ra);ra=0;do{p[d+(ra<<3)>>3]=+p[5096+(ra<<3)>>3];ra=ra+1|0}while((ra|0)!=(f|0));va=0;do{k=+p[5096+(ta-va<<3)>>3];p[e+(va<<3)>>3]=(va&1|0)==0?k:-k;va=va+1|0}while((va|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25730)|0)){if((f|0)<=0){g=f;return g|0}va=f+-1|0;ta=0;do{p[b+(ta<<3)>>3]=+p[5624+(va-ta<<3)>>3];ta=ta+1|0}while((ta|0)!=(f|0));ta=Tc(f<<3)|0;ra=0;do{k=+p[5624+(va-ra<<3)>>3];p[ta+(ra<<3)>>3]=(ra&1|0)==0?k:-k;ra=ra+1|0}while((ra|0)!=(f|0));wa=0;do{p[c+(wa<<3)>>3]=+p[ta+(va-wa<<3)>>3];wa=wa+1|0}while((wa|0)!=(f|0));Uc(ta);ta=0;do{p[d+(ta<<3)>>3]=+p[5624+(ta<<3)>>3];ta=ta+1|0}while((ta|0)!=(f|0));xa=0;do{k=+p[5624+(va-xa<<3)>>3];p[e+(xa<<3)>>3]=(xa&1|0)==0?k:-k;xa=xa+1|0}while((xa|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25735)|0)){if((f|0)<=0){g=f;return g|0}xa=f+-1|0;va=0;do{p[b+(va<<3)>>3]=+p[6168+(xa-va<<3)>>3];va=va+1|0}while((va|0)!=(f|0));va=Tc(f<<3)|0;ta=0;do{k=+p[6168+(xa-ta<<3)>>3];p[va+(ta<<3)>>3]=(ta&1|0)==0?k:-k;ta=ta+1|0}while((ta|0)!=(f|0));ya=0;do{p[c+(ya<<3)>>3]=+p[va+(xa-ya<<3)>>3];ya=ya+1|0}while((ya|0)!=(f|0));Uc(va);va=0;do{p[d+(va<<3)>>3]=+p[6168+(va<<3)>>3];va=va+1|0}while((va|0)!=(f|0));za=0;do{k=+p[6168+(xa-za<<3)>>3];p[e+(za<<3)>>3]=(za&1|0)==0?k:-k;za=za+1|0}while((za|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25740)|0)){if((f|0)<=0){g=f;return g|0}za=f+-1|0;xa=0;do{p[b+(xa<<3)>>3]=+p[6728+(za-xa<<3)>>3];xa=xa+1|0}while((xa|0)!=(f|0));xa=Tc(f<<3)|0;va=0;do{k=+p[6728+(za-va<<3)>>3];p[xa+(va<<3)>>3]=(va&1|0)==0?k:-k;va=va+1|0}while((va|0)!=(f|0));Aa=0;do{p[c+(Aa<<3)>>3]=+p[xa+(za-Aa<<3)>>3];Aa=Aa+1|0}while((Aa|0)!=(f|0));Uc(xa);xa=0;do{p[d+(xa<<3)>>3]=+p[6728+(xa<<3)>>3];xa=xa+1|0}while((xa|0)!=(f|0));Ba=0;do{k=+p[6728+(za-Ba<<3)>>3];p[e+(Ba<<3)>>3]=(Ba&1|0)==0?k:-k;Ba=Ba+1|0}while((Ba|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25745)|0)){if((f|0)<=0){g=f;return g|0}Ba=f+-1|0;za=0;do{p[b+(za<<3)>>3]=+p[7304+(Ba-za<<3)>>3];za=za+1|0}while((za|0)!=(f|0));za=Tc(f<<3)|0;xa=0;do{k=+p[7304+(Ba-xa<<3)>>3];p[za+(xa<<3)>>3]=(xa&1|0)==0?k:-k;xa=xa+1|0}while((xa|0)!=(f|0));Ca=0;do{p[c+(Ca<<3)>>3]=+p[za+(Ba-Ca<<3)>>3];Ca=Ca+1|0}while((Ca|0)!=(f|0));Uc(za);za=0;do{p[d+(za<<3)>>3]=+p[7304+(za<<3)>>3];za=za+1|0}while((za|0)!=(f|0));Da=0;do{k=+p[7304+(Ba-Da<<3)>>3];p[e+(Da<<3)>>3]=(Da&1|0)==0?k:-k;Da=Da+1|0}while((Da|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25750)|0)){if((f|0)<=0){g=f;return g|0}Da=f+-1|0;Ba=0;do{p[b+(Ba<<3)>>3]=+p[7896+(Da-Ba<<3)>>3];Ba=Ba+1|0}while((Ba|0)!=(f|0));Ba=Tc(f<<3)|0;za=0;do{k=+p[7896+(Da-za<<3)>>3];p[Ba+(za<<3)>>3]=(za&1|0)==0?k:-k;za=za+1|0}while((za|0)!=(f|0));Ea=0;do{p[c+(Ea<<3)>>3]=+p[Ba+(Da-Ea<<3)>>3];Ea=Ea+1|0}while((Ea|0)!=(f|0));Uc(Ba);Ba=0;do{p[d+(Ba<<3)>>3]=+p[7896+(Ba<<3)>>3];Ba=Ba+1|0}while((Ba|0)!=(f|0));Fa=0;do{k=+p[7896+(Da-Fa<<3)>>3];p[e+(Fa<<3)>>3]=(Fa&1|0)==0?k:-k;Fa=Fa+1|0}while((Fa|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25323)|0)){if((f|0)<=0){g=f;return g|0}Fa=f+-1|0;Da=0;do{p[b+(Da<<3)>>3]=+p[11864+(Fa-Da<<3)>>3];Da=Da+1|0}while((Da|0)!=(f|0));Da=Tc(f<<3)|0;Ba=0;do{k=+p[11912+(Fa-Ba<<3)>>3];p[Da+(Ba<<3)>>3]=(Ba&1|0)==0?k:-k;Ba=Ba+1|0}while((Ba|0)!=(f|0));Ga=0;do{p[c+(Ga<<3)>>3]=+p[Da+(Fa-Ga<<3)>>3];Ga=Ga+1|0}while((Ga|0)!=(f|0));Uc(Da);Da=0;do{p[d+(Da<<3)>>3]=+p[11912+(Da<<3)>>3];Da=Da+1|0}while((Da|0)!=(f|0));Ha=0;do{k=+p[11864+(Fa-Ha<<3)>>3];p[e+(Ha<<3)>>3]=(Ha&1|0)==0?k:-k;Ha=Ha+1|0}while((Ha|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25331)|0)){if((f|0)<=0){g=f;return g|0}Ha=f+-1|0;Fa=0;do{p[b+(Fa<<3)>>3]=+p[11960+(Ha-Fa<<3)>>3];Fa=Fa+1|0}while((Fa|0)!=(f|0));Fa=Tc(f<<3)|0;Da=0;do{k=+p[11896+(Ha-Da<<3)>>3];p[Fa+(Da<<3)>>3]=(Da&1|0)==0?k:-k;Da=Da+1|0}while((Da|0)!=(f|0));Ia=0;do{p[c+(Ia<<3)>>3]=+p[Fa+(Ha-Ia<<3)>>3];Ia=Ia+1|0}while((Ia|0)!=(f|0));Uc(Fa);Fa=0;do{p[d+(Fa<<3)>>3]=+p[11896+(Fa<<3)>>3];Fa=Fa+1|0}while((Fa|0)!=(f|0));Ja=0;do{k=+p[11960+(Ha-Ja<<3)>>3];p[e+(Ja<<3)>>3]=(Ja&1|0)==0?k:-k;Ja=Ja+1|0}while((Ja|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25339)|0)){if((f|0)<=0){g=f;return g|0}Ja=f+-1|0;Ha=0;do{p[b+(Ha<<3)>>3]=+p[12008+(Ja-Ha<<3)>>3];Ha=Ha+1|0}while((Ha|0)!=(f|0));Ha=Tc(f<<3)|0;Fa=0;do{k=+p[11880+(Ja-Fa<<3)>>3];p[Ha+(Fa<<3)>>3]=(Fa&1|0)==0?k:-k;Fa=Fa+1|0}while((Fa|0)!=(f|0));Ka=0;do{p[c+(Ka<<3)>>3]=+p[Ha+(Ja-Ka<<3)>>3];Ka=Ka+1|0}while((Ka|0)!=(f|0));Uc(Ha);Ha=0;do{p[d+(Ha<<3)>>3]=+p[11880+(Ha<<3)>>3];Ha=Ha+1|0}while((Ha|0)!=(f|0));La=0;do{k=+p[12008+(Ja-La<<3)>>3];p[e+(La<<3)>>3]=(La&1|0)==0?k:-k;La=La+1|0}while((La|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25347)|0)){if((f|0)<=0){g=f;return g|0}La=f+-1|0;Ja=0;do{p[b+(Ja<<3)>>3]=+p[12088+(La-Ja<<3)>>3];Ja=Ja+1|0}while((Ja|0)!=(f|0));Ja=Tc(f<<3)|0;Ha=0;do{k=+p[12184+(La-Ha<<3)>>3];p[Ja+(Ha<<3)>>3]=(Ha&1|0)==0?k:-k;Ha=Ha+1|0}while((Ha|0)!=(f|0));Ma=0;do{p[c+(Ma<<3)>>3]=+p[Ja+(La-Ma<<3)>>3];Ma=Ma+1|0}while((Ma|0)!=(f|0));Uc(Ja);Ja=0;do{p[d+(Ja<<3)>>3]=+p[12184+(Ja<<3)>>3];Ja=Ja+1|0}while((Ja|0)!=(f|0));Na=0;do{k=+p[12088+(La-Na<<3)>>3];p[e+(Na<<3)>>3]=(Na&1|0)==0?k:-k;Na=Na+1|0}while((Na|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25355)|0)){if((f|0)<=0){g=f;return g|0}Na=f+-1|0;La=0;do{p[b+(La<<3)>>3]=+p[12280+(Na-La<<3)>>3];La=La+1|0}while((La|0)!=(f|0));La=Tc(f<<3)|0;Ja=0;do{k=+p[12168+(Na-Ja<<3)>>3];p[La+(Ja<<3)>>3]=(Ja&1|0)==0?k:-k;Ja=Ja+1|0}while((Ja|0)!=(f|0));Oa=0;do{p[c+(Oa<<3)>>3]=+p[La+(Na-Oa<<3)>>3];Oa=Oa+1|0}while((Oa|0)!=(f|0));Uc(La);La=0;do{p[d+(La<<3)>>3]=+p[12168+(La<<3)>>3];La=La+1|0}while((La|0)!=(f|0));Pa=0;do{k=+p[12280+(Na-Pa<<3)>>3];p[e+(Pa<<3)>>3]=(Pa&1|0)==0?k:-k;Pa=Pa+1|0}while((Pa|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25363)|0)){if((f|0)<=0){g=f;return g|0}Pa=f+-1|0;Na=0;do{p[b+(Na<<3)>>3]=+p[12360+(Pa-Na<<3)>>3];Na=Na+1|0}while((Na|0)!=(f|0));Na=Tc(f<<3)|0;La=0;do{k=+p[12152+(Pa-La<<3)>>3];p[Na+(La<<3)>>3]=(La&1|0)==0?k:-k;La=La+1|0}while((La|0)!=(f|0));Qa=0;do{p[c+(Qa<<3)>>3]=+p[Na+(Pa-Qa<<3)>>3];Qa=Qa+1|0}while((Qa|0)!=(f|0));Uc(Na);Na=0;do{p[d+(Na<<3)>>3]=+p[12152+(Na<<3)>>3];Na=Na+1|0}while((Na|0)!=(f|0));Ra=0;do{k=+p[12360+(Pa-Ra<<3)>>3];p[e+(Ra<<3)>>3]=(Ra&1|0)==0?k:-k;Ra=Ra+1|0}while((Ra|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25371)|0)){if((f|0)<=0){g=f;return g|0}Ra=f+-1|0;Pa=0;do{p[b+(Pa<<3)>>3]=+p[12472+(Ra-Pa<<3)>>3];Pa=Pa+1|0}while((Pa|0)!=(f|0));Pa=Tc(f<<3)|0;Na=0;do{k=+p[12136+(Ra-Na<<3)>>3];p[Pa+(Na<<3)>>3]=(Na&1|0)==0?k:-k;Na=Na+1|0}while((Na|0)!=(f|0));Sa=0;do{p[c+(Sa<<3)>>3]=+p[Pa+(Ra-Sa<<3)>>3];Sa=Sa+1|0}while((Sa|0)!=(f|0));Uc(Pa);Pa=0;do{p[d+(Pa<<3)>>3]=+p[12136+(Pa<<3)>>3];Pa=Pa+1|0}while((Pa|0)!=(f|0));Ta=0;do{k=+p[12472+(Ra-Ta<<3)>>3];p[e+(Ta<<3)>>3]=(Ta&1|0)==0?k:-k;Ta=Ta+1|0}while((Ta|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25379)|0)){if((f|0)<=0){g=f;return g|0}Ta=f+-1|0;Ra=0;do{p[b+(Ra<<3)>>3]=+p[12616+(Ta-Ra<<3)>>3];Ra=Ra+1|0}while((Ra|0)!=(f|0));Ra=Tc(f<<3)|0;Pa=0;do{k=+p[12712+(Ta-Pa<<3)>>3];p[Ra+(Pa<<3)>>3]=(Pa&1|0)==0?k:-k;Pa=Pa+1|0}while((Pa|0)!=(f|0));Ua=0;do{p[c+(Ua<<3)>>3]=+p[Ra+(Ta-Ua<<3)>>3];Ua=Ua+1|0}while((Ua|0)!=(f|0));Uc(Ra);Ra=0;do{p[d+(Ra<<3)>>3]=+p[12712+(Ra<<3)>>3];Ra=Ra+1|0}while((Ra|0)!=(f|0));Va=0;do{k=+p[12616+(Ta-Va<<3)>>3];p[e+(Va<<3)>>3]=(Va&1|0)==0?k:-k;Va=Va+1|0}while((Va|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25387)|0)){if((f|0)<=0){g=f;return g|0}Va=f+-1|0;Ta=0;do{p[b+(Ta<<3)>>3]=+p[12808+(Va-Ta<<3)>>3];Ta=Ta+1|0}while((Ta|0)!=(f|0));Ta=Tc(f<<3)|0;Ra=0;do{k=+p[12696+(Va-Ra<<3)>>3];p[Ta+(Ra<<3)>>3]=(Ra&1|0)==0?k:-k;Ra=Ra+1|0}while((Ra|0)!=(f|0));Xa=0;do{p[c+(Xa<<3)>>3]=+p[Ta+(Va-Xa<<3)>>3];Xa=Xa+1|0}while((Xa|0)!=(f|0));Uc(Ta);Ta=0;do{p[d+(Ta<<3)>>3]=+p[12696+(Ta<<3)>>3];Ta=Ta+1|0}while((Ta|0)!=(f|0));Ya=0;do{k=+p[12808+(Va-Ya<<3)>>3];p[e+(Ya<<3)>>3]=(Ya&1|0)==0?k:-k;Ya=Ya+1|0}while((Ya|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25395)|0)){if((f|0)<=0){g=f;return g|0}Ya=f+-1|0;Va=0;do{p[b+(Va<<3)>>3]=+p[12872+(Ya-Va<<3)>>3];Va=Va+1|0}while((Va|0)!=(f|0));Va=Tc(f<<3)|0;Ta=0;do{k=+p[12680+(Ya-Ta<<3)>>3];p[Va+(Ta<<3)>>3]=(Ta&1|0)==0?k:-k;Ta=Ta+1|0}while((Ta|0)!=(f|0));Za=0;do{p[c+(Za<<3)>>3]=+p[Va+(Ya-Za<<3)>>3];Za=Za+1|0}while((Za|0)!=(f|0));Uc(Va);Va=0;do{p[d+(Va<<3)>>3]=+p[12680+(Va<<3)>>3];Va=Va+1|0}while((Va|0)!=(f|0));_a=0;do{k=+p[12872+(Ya-_a<<3)>>3];p[e+(_a<<3)>>3]=(_a&1|0)==0?k:-k;_a=_a+1|0}while((_a|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25403)|0)){if((f|0)<=0){g=f;return g|0}_a=f+-1|0;Ya=0;do{p[b+(Ya<<3)>>3]=+p[12968+(_a-Ya<<3)>>3];Ya=Ya+1|0}while((Ya|0)!=(f|0));Ya=Tc(f<<3)|0;Va=0;do{k=+p[12664+(_a-Va<<3)>>3];p[Ya+(Va<<3)>>3]=(Va&1|0)==0?k:-k;Va=Va+1|0}while((Va|0)!=(f|0));$a=0;do{p[c+($a<<3)>>3]=+p[Ya+(_a-$a<<3)>>3];$a=$a+1|0}while(($a|0)!=(f|0));Uc(Ya);Ya=0;do{p[d+(Ya<<3)>>3]=+p[12664+(Ya<<3)>>3];Ya=Ya+1|0}while((Ya|0)!=(f|0));ab=0;do{k=+p[12968+(_a-ab<<3)>>3];p[e+(ab<<3)>>3]=(ab&1|0)==0?k:-k;ab=ab+1|0}while((ab|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25411)|0)){if((f|0)<=0){g=f;return g|0}ab=f+-1|0;_a=0;do{p[b+(_a<<3)>>3]=+p[13096+(ab-_a<<3)>>3];_a=_a+1|0}while((_a|0)!=(f|0));_a=Tc(f<<3)|0;Ya=0;do{k=+p[12648+(ab-Ya<<3)>>3];p[_a+(Ya<<3)>>3]=(Ya&1|0)==0?k:-k;Ya=Ya+1|0}while((Ya|0)!=(f|0));bb=0;do{p[c+(bb<<3)>>3]=+p[_a+(ab-bb<<3)>>3];bb=bb+1|0}while((bb|0)!=(f|0));Uc(_a);_a=0;do{p[d+(_a<<3)>>3]=+p[12648+(_a<<3)>>3];_a=_a+1|0}while((_a|0)!=(f|0));cb=0;do{k=+p[13096+(ab-cb<<3)>>3];p[e+(cb<<3)>>3]=(cb&1|0)==0?k:-k;cb=cb+1|0}while((cb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25419)|0)){if((f|0)<=0){g=f;return g|0}cb=f+-1|0;ab=0;do{p[b+(ab<<3)>>3]=+p[13256+(cb-ab<<3)>>3];ab=ab+1|0}while((ab|0)!=(f|0));ab=Tc(f<<3)|0;_a=0;do{k=+p[13336+(cb-_a<<3)>>3];p[ab+(_a<<3)>>3]=(_a&1|0)==0?k:-k;_a=_a+1|0}while((_a|0)!=(f|0));db=0;do{p[c+(db<<3)>>3]=+p[ab+(cb-db<<3)>>3];db=db+1|0}while((db|0)!=(f|0));Uc(ab);ab=0;do{p[d+(ab<<3)>>3]=+p[13336+(ab<<3)>>3];ab=ab+1|0}while((ab|0)!=(f|0));eb=0;do{k=+p[13256+(cb-eb<<3)>>3];p[e+(eb<<3)>>3]=(eb&1|0)==0?k:-k;eb=eb+1|0}while((eb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25427)|0)){if((f|0)<=0){g=f;return g|0}eb=f+-1|0;cb=0;do{p[b+(cb<<3)>>3]=+p[13416+(eb-cb<<3)>>3];cb=cb+1|0}while((cb|0)!=(f|0));cb=Tc(f<<3)|0;ab=0;do{k=+p[13512+(eb-ab<<3)>>3];p[cb+(ab<<3)>>3]=(ab&1|0)==0?k:-k;ab=ab+1|0}while((ab|0)!=(f|0));fb=0;do{p[c+(fb<<3)>>3]=+p[cb+(eb-fb<<3)>>3];fb=fb+1|0}while((fb|0)!=(f|0));Uc(cb);cb=0;do{p[d+(cb<<3)>>3]=+p[13512+(cb<<3)>>3];cb=cb+1|0}while((cb|0)!=(f|0));gb=0;do{k=+p[13416+(eb-gb<<3)>>3];p[e+(gb<<3)>>3]=(gb&1|0)==0?k:-k;gb=gb+1|0}while((gb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25435)|0)){if((f|0)<=0){g=f;return g|0}gb=f+-1|0;eb=0;do{p[b+(eb<<3)>>3]=+p[13608+(gb-eb<<3)>>3];eb=eb+1|0}while((eb|0)!=(f|0));eb=Tc(f<<3)|0;cb=0;do{k=+p[13752+(gb-cb<<3)>>3];p[eb+(cb<<3)>>3]=(cb&1|0)==0?k:-k;cb=cb+1|0}while((cb|0)!=(f|0));hb=0;do{p[c+(hb<<3)>>3]=+p[eb+(gb-hb<<3)>>3];hb=hb+1|0}while((hb|0)!=(f|0));Uc(eb);eb=0;do{p[d+(eb<<3)>>3]=+p[13752+(eb<<3)>>3];eb=eb+1|0}while((eb|0)!=(f|0));ib=0;do{k=+p[13608+(gb-ib<<3)>>3];p[e+(ib<<3)>>3]=(ib&1|0)==0?k:-k;ib=ib+1|0}while((ib|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25443)|0)){if((f|0)<=0){g=f;return g|0}ib=f+-1|0;gb=0;do{p[b+(gb<<3)>>3]=+p[11912+(ib-gb<<3)>>3];gb=gb+1|0}while((gb|0)!=(f|0));gb=Tc(f<<3)|0;eb=0;do{k=+p[11864+(ib-eb<<3)>>3];p[gb+(eb<<3)>>3]=(eb&1|0)==0?k:-k;eb=eb+1|0}while((eb|0)!=(f|0));jb=0;do{p[c+(jb<<3)>>3]=+p[gb+(ib-jb<<3)>>3];jb=jb+1|0}while((jb|0)!=(f|0));Uc(gb);gb=0;do{p[d+(gb<<3)>>3]=+p[11864+(gb<<3)>>3];gb=gb+1|0}while((gb|0)!=(f|0));kb=0;do{k=+p[11912+(ib-kb<<3)>>3];p[e+(kb<<3)>>3]=(kb&1|0)==0?k:-k;kb=kb+1|0}while((kb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25452)|0)){if((f|0)<=0){g=f;return g|0}kb=f+-1|0;ib=0;do{p[b+(ib<<3)>>3]=+p[11896+(kb-ib<<3)>>3];ib=ib+1|0}while((ib|0)!=(f|0));ib=Tc(f<<3)|0;gb=0;do{k=+p[11960+(kb-gb<<3)>>3];p[ib+(gb<<3)>>3]=(gb&1|0)==0?k:-k;gb=gb+1|0}while((gb|0)!=(f|0));lb=0;do{p[c+(lb<<3)>>3]=+p[ib+(kb-lb<<3)>>3];lb=lb+1|0}while((lb|0)!=(f|0));Uc(ib);ib=0;do{p[d+(ib<<3)>>3]=+p[11960+(ib<<3)>>3];ib=ib+1|0}while((ib|0)!=(f|0));mb=0;do{k=+p[11896+(kb-mb<<3)>>3];p[e+(mb<<3)>>3]=(mb&1|0)==0?k:-k;mb=mb+1|0}while((mb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25461)|0)){if((f|0)<=0){g=f;return g|0}mb=f+-1|0;kb=0;do{p[b+(kb<<3)>>3]=+p[11880+(mb-kb<<3)>>3];kb=kb+1|0}while((kb|0)!=(f|0));kb=Tc(f<<3)|0;ib=0;do{k=+p[12008+(mb-ib<<3)>>3];p[kb+(ib<<3)>>3]=(ib&1|0)==0?k:-k;ib=ib+1|0}while((ib|0)!=(f|0));nb=0;do{p[c+(nb<<3)>>3]=+p[kb+(mb-nb<<3)>>3];nb=nb+1|0}while((nb|0)!=(f|0));Uc(kb);kb=0;do{p[d+(kb<<3)>>3]=+p[12008+(kb<<3)>>3];kb=kb+1|0}while((kb|0)!=(f|0));ob=0;do{k=+p[11880+(mb-ob<<3)>>3];p[e+(ob<<3)>>3]=(ob&1|0)==0?k:-k;ob=ob+1|0}while((ob|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25470)|0)){if((f|0)<=0){g=f;return g|0}ob=f+-1|0;mb=0;do{p[b+(mb<<3)>>3]=+p[12184+(ob-mb<<3)>>3];mb=mb+1|0}while((mb|0)!=(f|0));mb=Tc(f<<3)|0;kb=0;do{k=+p[12088+(ob-kb<<3)>>3];p[mb+(kb<<3)>>3]=(kb&1|0)==0?k:-k;kb=kb+1|0}while((kb|0)!=(f|0));pb=0;do{p[c+(pb<<3)>>3]=+p[mb+(ob-pb<<3)>>3];pb=pb+1|0}while((pb|0)!=(f|0));Uc(mb);mb=0;do{p[d+(mb<<3)>>3]=+p[12088+(mb<<3)>>3];mb=mb+1|0}while((mb|0)!=(f|0));qb=0;do{k=+p[12184+(ob-qb<<3)>>3];p[e+(qb<<3)>>3]=(qb&1|0)==0?k:-k;qb=qb+1|0}while((qb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25479)|0)){if((f|0)<=0){g=f;return g|0}qb=f+-1|0;ob=0;do{p[b+(ob<<3)>>3]=+p[12168+(qb-ob<<3)>>3];ob=ob+1|0}while((ob|0)!=(f|0));ob=Tc(f<<3)|0;mb=0;do{k=+p[12280+(qb-mb<<3)>>3];p[ob+(mb<<3)>>3]=(mb&1|0)==0?k:-k;mb=mb+1|0}while((mb|0)!=(f|0));rb=0;do{p[c+(rb<<3)>>3]=+p[ob+(qb-rb<<3)>>3];rb=rb+1|0}while((rb|0)!=(f|0));Uc(ob);ob=0;do{p[d+(ob<<3)>>3]=+p[12280+(ob<<3)>>3];ob=ob+1|0}while((ob|0)!=(f|0));sb=0;do{k=+p[12168+(qb-sb<<3)>>3];p[e+(sb<<3)>>3]=(sb&1|0)==0?k:-k;sb=sb+1|0}while((sb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25488)|0)){if((f|0)<=0){g=f;return g|0}sb=f+-1|0;qb=0;do{p[b+(qb<<3)>>3]=+p[12152+(sb-qb<<3)>>3];qb=qb+1|0}while((qb|0)!=(f|0));qb=Tc(f<<3)|0;ob=0;do{k=+p[12360+(sb-ob<<3)>>3];p[qb+(ob<<3)>>3]=(ob&1|0)==0?k:-k;ob=ob+1|0}while((ob|0)!=(f|0));tb=0;do{p[c+(tb<<3)>>3]=+p[qb+(sb-tb<<3)>>3];tb=tb+1|0}while((tb|0)!=(f|0));Uc(qb);qb=0;do{p[d+(qb<<3)>>3]=+p[12360+(qb<<3)>>3];qb=qb+1|0}while((qb|0)!=(f|0));ub=0;do{k=+p[12152+(sb-ub<<3)>>3];p[e+(ub<<3)>>3]=(ub&1|0)==0?k:-k;ub=ub+1|0}while((ub|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25497)|0)){if((f|0)<=0){g=f;return g|0}ub=f+-1|0;sb=0;do{p[b+(sb<<3)>>3]=+p[12136+(ub-sb<<3)>>3];sb=sb+1|0}while((sb|0)!=(f|0));sb=Tc(f<<3)|0;qb=0;do{k=+p[12472+(ub-qb<<3)>>3];p[sb+(qb<<3)>>3]=(qb&1|0)==0?k:-k;qb=qb+1|0}while((qb|0)!=(f|0));vb=0;do{p[c+(vb<<3)>>3]=+p[sb+(ub-vb<<3)>>3];vb=vb+1|0}while((vb|0)!=(f|0));Uc(sb);sb=0;do{p[d+(sb<<3)>>3]=+p[12472+(sb<<3)>>3];sb=sb+1|0}while((sb|0)!=(f|0));wb=0;do{k=+p[12136+(ub-wb<<3)>>3];p[e+(wb<<3)>>3]=(wb&1|0)==0?k:-k;wb=wb+1|0}while((wb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25506)|0)){if((f|0)<=0){g=f;return g|0}wb=f+-1|0;ub=0;do{p[b+(ub<<3)>>3]=+p[12712+(wb-ub<<3)>>3];ub=ub+1|0}while((ub|0)!=(f|0));ub=Tc(f<<3)|0;sb=0;do{k=+p[12616+(wb-sb<<3)>>3];p[ub+(sb<<3)>>3]=(sb&1|0)==0?k:-k;sb=sb+1|0}while((sb|0)!=(f|0));xb=0;do{p[c+(xb<<3)>>3]=+p[ub+(wb-xb<<3)>>3];xb=xb+1|0}while((xb|0)!=(f|0));Uc(ub);ub=0;do{p[d+(ub<<3)>>3]=+p[12616+(ub<<3)>>3];ub=ub+1|0}while((ub|0)!=(f|0));yb=0;do{k=+p[12712+(wb-yb<<3)>>3];p[e+(yb<<3)>>3]=(yb&1|0)==0?k:-k;yb=yb+1|0}while((yb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25515)|0)){if((f|0)<=0){g=f;return g|0}yb=f+-1|0;wb=0;do{p[b+(wb<<3)>>3]=+p[12696+(yb-wb<<3)>>3];wb=wb+1|0}while((wb|0)!=(f|0));wb=Tc(f<<3)|0;ub=0;do{k=+p[12808+(yb-ub<<3)>>3];p[wb+(ub<<3)>>3]=(ub&1|0)==0?k:-k;ub=ub+1|0}while((ub|0)!=(f|0));zb=0;do{p[c+(zb<<3)>>3]=+p[wb+(yb-zb<<3)>>3];zb=zb+1|0}while((zb|0)!=(f|0));Uc(wb);wb=0;do{p[d+(wb<<3)>>3]=+p[12808+(wb<<3)>>3];wb=wb+1|0}while((wb|0)!=(f|0));Ab=0;do{k=+p[12696+(yb-Ab<<3)>>3];p[e+(Ab<<3)>>3]=(Ab&1|0)==0?k:-k;Ab=Ab+1|0}while((Ab|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25524)|0)){if((f|0)<=0){g=f;return g|0}Ab=f+-1|0;yb=0;do{p[b+(yb<<3)>>3]=+p[12680+(Ab-yb<<3)>>3];yb=yb+1|0}while((yb|0)!=(f|0));yb=Tc(f<<3)|0;wb=0;do{k=+p[12872+(Ab-wb<<3)>>3];p[yb+(wb<<3)>>3]=(wb&1|0)==0?k:-k;wb=wb+1|0}while((wb|0)!=(f|0));Bb=0;do{p[c+(Bb<<3)>>3]=+p[yb+(Ab-Bb<<3)>>3];Bb=Bb+1|0}while((Bb|0)!=(f|0));Uc(yb);yb=0;do{p[d+(yb<<3)>>3]=+p[12872+(yb<<3)>>3];yb=yb+1|0}while((yb|0)!=(f|0));Cb=0;do{k=+p[12680+(Ab-Cb<<3)>>3];p[e+(Cb<<3)>>3]=(Cb&1|0)==0?k:-k;Cb=Cb+1|0}while((Cb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25533)|0)){if((f|0)<=0){g=f;return g|0}Cb=f+-1|0;Ab=0;do{p[b+(Ab<<3)>>3]=+p[12664+(Cb-Ab<<3)>>3];Ab=Ab+1|0}while((Ab|0)!=(f|0));Ab=Tc(f<<3)|0;yb=0;do{k=+p[12968+(Cb-yb<<3)>>3];p[Ab+(yb<<3)>>3]=(yb&1|0)==0?k:-k;yb=yb+1|0}while((yb|0)!=(f|0));Db=0;do{p[c+(Db<<3)>>3]=+p[Ab+(Cb-Db<<3)>>3];Db=Db+1|0}while((Db|0)!=(f|0));Uc(Ab);Ab=0;do{p[d+(Ab<<3)>>3]=+p[12968+(Ab<<3)>>3];Ab=Ab+1|0}while((Ab|0)!=(f|0));Eb=0;do{k=+p[12664+(Cb-Eb<<3)>>3];p[e+(Eb<<3)>>3]=(Eb&1|0)==0?k:-k;Eb=Eb+1|0}while((Eb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25542)|0)){if((f|0)<=0){g=f;return g|0}Eb=f+-1|0;Cb=0;do{p[b+(Cb<<3)>>3]=+p[12648+(Eb-Cb<<3)>>3];Cb=Cb+1|0}while((Cb|0)!=(f|0));Cb=Tc(f<<3)|0;Ab=0;do{k=+p[13096+(Eb-Ab<<3)>>3];p[Cb+(Ab<<3)>>3]=(Ab&1|0)==0?k:-k;Ab=Ab+1|0}while((Ab|0)!=(f|0));Fb=0;do{p[c+(Fb<<3)>>3]=+p[Cb+(Eb-Fb<<3)>>3];Fb=Fb+1|0}while((Fb|0)!=(f|0));Uc(Cb);Cb=0;do{p[d+(Cb<<3)>>3]=+p[13096+(Cb<<3)>>3];Cb=Cb+1|0}while((Cb|0)!=(f|0));Gb=0;do{k=+p[12648+(Eb-Gb<<3)>>3];p[e+(Gb<<3)>>3]=(Gb&1|0)==0?k:-k;Gb=Gb+1|0}while((Gb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25551)|0)){if((f|0)<=0){g=f;return g|0}Gb=f+-1|0;Eb=0;do{p[b+(Eb<<3)>>3]=+p[13336+(Gb-Eb<<3)>>3];Eb=Eb+1|0}while((Eb|0)!=(f|0));Eb=Tc(f<<3)|0;Cb=0;do{k=+p[13256+(Gb-Cb<<3)>>3];p[Eb+(Cb<<3)>>3]=(Cb&1|0)==0?k:-k;Cb=Cb+1|0}while((Cb|0)!=(f|0));Hb=0;do{p[c+(Hb<<3)>>3]=+p[Eb+(Gb-Hb<<3)>>3];Hb=Hb+1|0}while((Hb|0)!=(f|0));Uc(Eb);Eb=0;do{p[d+(Eb<<3)>>3]=+p[13256+(Eb<<3)>>3];Eb=Eb+1|0}while((Eb|0)!=(f|0));Ib=0;do{k=+p[13336+(Gb-Ib<<3)>>3];p[e+(Ib<<3)>>3]=(Ib&1|0)==0?k:-k;Ib=Ib+1|0}while((Ib|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25560)|0)){if((f|0)<=0){g=f;return g|0}Ib=f+-1|0;Gb=0;do{p[b+(Gb<<3)>>3]=+p[13512+(Ib-Gb<<3)>>3];Gb=Gb+1|0}while((Gb|0)!=(f|0));Gb=Tc(f<<3)|0;Eb=0;do{k=+p[13416+(Ib-Eb<<3)>>3];p[Gb+(Eb<<3)>>3]=(Eb&1|0)==0?k:-k;Eb=Eb+1|0}while((Eb|0)!=(f|0));Jb=0;do{p[c+(Jb<<3)>>3]=+p[Gb+(Ib-Jb<<3)>>3];Jb=Jb+1|0}while((Jb|0)!=(f|0));Uc(Gb);Gb=0;do{p[d+(Gb<<3)>>3]=+p[13416+(Gb<<3)>>3];Gb=Gb+1|0}while((Gb|0)!=(f|0));Kb=0;do{k=+p[13512+(Ib-Kb<<3)>>3];p[e+(Kb<<3)>>3]=(Kb&1|0)==0?k:-k;Kb=Kb+1|0}while((Kb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25569)|0)){if((f|0)<=0){g=f;return g|0}Kb=f+-1|0;Ib=0;do{p[b+(Ib<<3)>>3]=+p[13752+(Kb-Ib<<3)>>3];Ib=Ib+1|0}while((Ib|0)!=(f|0));Ib=Tc(f<<3)|0;Gb=0;do{k=+p[13608+(Kb-Gb<<3)>>3];p[Ib+(Gb<<3)>>3]=(Gb&1|0)==0?k:-k;Gb=Gb+1|0}while((Gb|0)!=(f|0));Lb=0;do{p[c+(Lb<<3)>>3]=+p[Ib+(Kb-Lb<<3)>>3];Lb=Lb+1|0}while((Lb|0)!=(f|0));Uc(Ib);Ib=0;do{p[d+(Ib<<3)>>3]=+p[13608+(Ib<<3)>>3];Ib=Ib+1|0}while((Ib|0)!=(f|0));Nb=0;do{k=+p[13752+(Kb-Nb<<3)>>3];p[e+(Nb<<3)>>3]=(Nb&1|0)==0?k:-k;Nb=Nb+1|0}while((Nb|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25755)|0)){Nb=f<<3;Kb=Tc(Nb)|0;Ib=(f|0)>0;do if(Ib){ed(Kb|0,13896,Nb|0)|0;Lb=0;do{Gb=Kb+(Lb<<3)|0;p[Gb>>3]=+p[Gb>>3]*1.4142135623730951;Lb=Lb+1|0}while((Lb|0)!=(f|0));if(!Ib)break;Lb=f+-1|0;Gb=0;do{p[b+(Gb<<3)>>3]=+p[Kb+(Lb-Gb<<3)>>3];Gb=Gb+1|0}while((Gb|0)!=(f|0));Gb=Tc(Nb)|0;Jb=0;do{k=+p[Kb+(Lb-Jb<<3)>>3];p[Gb+(Jb<<3)>>3]=(Jb&1|0)==0?k:-k;Jb=Jb+1|0}while((Jb|0)!=(f|0));Ob=0;do{p[c+(Ob<<3)>>3]=+p[Gb+(Lb-Ob<<3)>>3];Ob=Ob+1|0}while((Ob|0)!=(f|0));Uc(Gb);ed(d|0,Kb|0,Nb|0)|0;Jb=0;do{k=+p[Kb+(Lb-Jb<<3)>>3];p[e+(Jb<<3)>>3]=(Jb&1|0)==0?k:-k;Jb=Jb+1|0}while((Jb|0)!=(f|0))}while(0);Uc(Kb);g=f;return g|0}if(!(Mb(a,25761)|0)){Kb=f<<3;Nb=Tc(Kb)|0;Ob=(f|0)>0;do if(Ob){ed(Nb|0,13944,Kb|0)|0;Ib=0;do{Jb=Nb+(Ib<<3)|0;p[Jb>>3]=+p[Jb>>3]*1.4142135623730951;Ib=Ib+1|0}while((Ib|0)!=(f|0));if(!Ob)break;Ib=f+-1|0;Jb=0;do{p[b+(Jb<<3)>>3]=+p[Nb+(Ib-Jb<<3)>>3];Jb=Jb+1|0}while((Jb|0)!=(f|0));Jb=Tc(Kb)|0;Lb=0;do{k=+p[Nb+(Ib-Lb<<3)>>3];p[Jb+(Lb<<3)>>3]=(Lb&1|0)==0?k:-k;Lb=Lb+1|0}while((Lb|0)!=(f|0));Pb=0;do{p[c+(Pb<<3)>>3]=+p[Jb+(Ib-Pb<<3)>>3];Pb=Pb+1|0}while((Pb|0)!=(f|0));Uc(Jb);ed(d|0,Nb|0,Kb|0)|0;Lb=0;do{k=+p[Nb+(Ib-Lb<<3)>>3];p[e+(Lb<<3)>>3]=(Lb&1|0)==0?k:-k;Lb=Lb+1|0}while((Lb|0)!=(f|0))}while(0);Uc(Nb);g=f;return g|0}if(!(Mb(a,25767)|0)){Nb=f<<3;Kb=Tc(Nb)|0;Pb=(f|0)>0;do if(Pb){ed(Kb|0,14040,Nb|0)|0;Ob=0;do{Lb=Kb+(Ob<<3)|0;p[Lb>>3]=+p[Lb>>3]*1.4142135623730951;Ob=Ob+1|0}while((Ob|0)!=(f|0));if(!Pb)break;Ob=f+-1|0;Lb=0;do{p[b+(Lb<<3)>>3]=+p[Kb+(Ob-Lb<<3)>>3];Lb=Lb+1|0}while((Lb|0)!=(f|0));Lb=Tc(Nb)|0;Ib=0;do{k=+p[Kb+(Ob-Ib<<3)>>3];p[Lb+(Ib<<3)>>3]=(Ib&1|0)==0?k:-k;Ib=Ib+1|0}while((Ib|0)!=(f|0));Qb=0;do{p[c+(Qb<<3)>>3]=+p[Lb+(Ob-Qb<<3)>>3];Qb=Qb+1|0}while((Qb|0)!=(f|0));Uc(Lb);ed(d|0,Kb|0,Nb|0)|0;Ib=0;do{k=+p[Kb+(Ob-Ib<<3)>>3];p[e+(Ib<<3)>>3]=(Ib&1|0)==0?k:-k;Ib=Ib+1|0}while((Ib|0)!=(f|0))}while(0);Uc(Kb);g=f;return g|0}if(!(Mb(a,25773)|0)){Kb=f<<3;Nb=Tc(Kb)|0;Qb=(f|0)>0;do if(Qb){ed(Nb|0,14184,Kb|0)|0;Pb=0;do{Ib=Nb+(Pb<<3)|0;p[Ib>>3]=+p[Ib>>3]*1.4142135623730951;Pb=Pb+1|0}while((Pb|0)!=(f|0));if(!Qb)break;Pb=f+-1|0;Ib=0;do{p[b+(Ib<<3)>>3]=+p[Nb+(Pb-Ib<<3)>>3];Ib=Ib+1|0}while((Ib|0)!=(f|0));Ib=Tc(Kb)|0;Ob=0;do{k=+p[Nb+(Pb-Ob<<3)>>3];p[Ib+(Ob<<3)>>3]=(Ob&1|0)==0?k:-k;Ob=Ob+1|0}while((Ob|0)!=(f|0));Rb=0;do{p[c+(Rb<<3)>>3]=+p[Ib+(Pb-Rb<<3)>>3];Rb=Rb+1|0}while((Rb|0)!=(f|0));Uc(Ib);ed(d|0,Nb|0,Kb|0)|0;Ob=0;do{k=+p[Nb+(Pb-Ob<<3)>>3];p[e+(Ob<<3)>>3]=(Ob&1|0)==0?k:-k;Ob=Ob+1|0}while((Ob|0)!=(f|0))}while(0);Uc(Nb);g=f;return g|0}if(!(Mb(a,25779)|0)){Nb=f<<3;Kb=Tc(Nb)|0;Rb=(f|0)>0;do if(Rb){ed(Kb|0,14376,Nb|0)|0;Qb=0;do{Ob=Kb+(Qb<<3)|0;p[Ob>>3]=+p[Ob>>3]*1.4142135623730951;Qb=Qb+1|0}while((Qb|0)!=(f|0));if(!Rb)break;Qb=f+-1|0;Ob=0;do{p[b+(Ob<<3)>>3]=+p[Kb+(Qb-Ob<<3)>>3];Ob=Ob+1|0}while((Ob|0)!=(f|0));Ob=Tc(Nb)|0;Pb=0;do{k=+p[Kb+(Qb-Pb<<3)>>3];p[Ob+(Pb<<3)>>3]=(Pb&1|0)==0?k:-k;Pb=Pb+1|0}while((Pb|0)!=(f|0));Sb=0;do{p[c+(Sb<<3)>>3]=+p[Ob+(Qb-Sb<<3)>>3];Sb=Sb+1|0}while((Sb|0)!=(f|0));Uc(Ob);ed(d|0,Kb|0,Nb|0)|0;Pb=0;do{k=+p[Kb+(Qb-Pb<<3)>>3];p[e+(Pb<<3)>>3]=(Pb&1|0)==0?k:-k;Pb=Pb+1|0}while((Pb|0)!=(f|0))}while(0);Uc(Kb);g=f;return g|0}if(!(Mb(a,25785)|0)){Kb=f<<3;Nb=Tc(Kb)|0;Sb=(f|0)>0;do if(Sb){ed(Nb|0,14616,Kb|0)|0;Rb=0;do{Pb=Nb+(Rb<<3)|0;p[Pb>>3]=+p[Pb>>3]*1.4142135623730951;Rb=Rb+1|0}while((Rb|0)!=(f|0));if(!Sb)break;Rb=f+-1|0;Pb=0;do{p[b+(Pb<<3)>>3]=+p[Nb+(Rb-Pb<<3)>>3];Pb=Pb+1|0}while((Pb|0)!=(f|0));Pb=Tc(Kb)|0;Qb=0;do{k=+p[Nb+(Rb-Qb<<3)>>3];p[Pb+(Qb<<3)>>3]=(Qb&1|0)==0?k:-k;Qb=Qb+1|0}while((Qb|0)!=(f|0));Tb=0;do{p[c+(Tb<<3)>>3]=+p[Pb+(Rb-Tb<<3)>>3];Tb=Tb+1|0}while((Tb|0)!=(f|0));Uc(Pb);ed(d|0,Nb|0,Kb|0)|0;Qb=0;do{k=+p[Nb+(Rb-Qb<<3)>>3];p[e+(Qb<<3)>>3]=(Qb&1|0)==0?k:-k;Qb=Qb+1|0}while((Qb|0)!=(f|0))}while(0);Uc(Nb);g=f;return g|0}if(!(Mb(a,25791)|0)){Nb=f<<3;Kb=Tc(Nb)|0;Tb=(f|0)>0;do if(Tb){ed(Kb|0,14904,Nb|0)|0;Sb=0;do{Qb=Kb+(Sb<<3)|0;p[Qb>>3]=+p[Qb>>3]*1.4142135623730951;Sb=Sb+1|0}while((Sb|0)!=(f|0));if(!Tb)break;Sb=f+-1|0;Qb=0;do{p[b+(Qb<<3)>>3]=+p[Kb+(Sb-Qb<<3)>>3];Qb=Qb+1|0}while((Qb|0)!=(f|0));Qb=Tc(Nb)|0;Rb=0;do{k=+p[Kb+(Sb-Rb<<3)>>3];p[Qb+(Rb<<3)>>3]=(Rb&1|0)==0?k:-k;Rb=Rb+1|0}while((Rb|0)!=(f|0));Ub=0;do{p[c+(Ub<<3)>>3]=+p[Qb+(Sb-Ub<<3)>>3];Ub=Ub+1|0}while((Ub|0)!=(f|0));Uc(Qb);ed(d|0,Kb|0,Nb|0)|0;Rb=0;do{k=+p[Kb+(Sb-Rb<<3)>>3];p[e+(Rb<<3)>>3]=(Rb&1|0)==0?k:-k;Rb=Rb+1|0}while((Rb|0)!=(f|0))}while(0);Uc(Kb);g=f;return g|0}if(!(Mb(a,25797)|0)){Kb=f<<3;Nb=Tc(Kb)|0;Ub=(f|0)>0;do if(Ub){ed(Nb|0,15240,Kb|0)|0;Tb=0;do{Rb=Nb+(Tb<<3)|0;p[Rb>>3]=+p[Rb>>3]*1.4142135623730951;Tb=Tb+1|0}while((Tb|0)!=(f|0));if(!Ub)break;Tb=f+-1|0;Rb=0;do{p[b+(Rb<<3)>>3]=+p[Nb+(Tb-Rb<<3)>>3];Rb=Rb+1|0}while((Rb|0)!=(f|0));Rb=Tc(Kb)|0;Sb=0;do{k=+p[Nb+(Tb-Sb<<3)>>3];p[Rb+(Sb<<3)>>3]=(Sb&1|0)==0?k:-k;Sb=Sb+1|0}while((Sb|0)!=(f|0));Vb=0;do{p[c+(Vb<<3)>>3]=+p[Rb+(Tb-Vb<<3)>>3];Vb=Vb+1|0}while((Vb|0)!=(f|0));Uc(Rb);ed(d|0,Nb|0,Kb|0)|0;Sb=0;do{k=+p[Nb+(Tb-Sb<<3)>>3];p[e+(Sb<<3)>>3]=(Sb&1|0)==0?k:-k;Sb=Sb+1|0}while((Sb|0)!=(f|0))}while(0);Uc(Nb);g=f;return g|0}if(!(Mb(a,25803)|0)){Nb=f<<3;Kb=Tc(Nb)|0;Vb=(f|0)>0;do if(Vb){ed(Kb|0,15624,Nb|0)|0;Ub=0;do{Sb=Kb+(Ub<<3)|0;p[Sb>>3]=+p[Sb>>3]*1.4142135623730951;Ub=Ub+1|0}while((Ub|0)!=(f|0));if(!Vb)break;Ub=f+-1|0;Sb=0;do{p[b+(Sb<<3)>>3]=+p[Kb+(Ub-Sb<<3)>>3];Sb=Sb+1|0}while((Sb|0)!=(f|0));Sb=Tc(Nb)|0;Tb=0;do{k=+p[Kb+(Ub-Tb<<3)>>3];p[Sb+(Tb<<3)>>3]=(Tb&1|0)==0?k:-k;Tb=Tb+1|0}while((Tb|0)!=(f|0));Wb=0;do{p[c+(Wb<<3)>>3]=+p[Sb+(Ub-Wb<<3)>>3];Wb=Wb+1|0}while((Wb|0)!=(f|0));Uc(Sb);ed(d|0,Kb|0,Nb|0)|0;Tb=0;do{k=+p[Kb+(Ub-Tb<<3)>>3];p[e+(Tb<<3)>>3]=(Tb&1|0)==0?k:-k;Tb=Tb+1|0}while((Tb|0)!=(f|0))}while(0);Uc(Kb);g=f;return g|0}if(!(Mb(a,25809)|0)){Kb=f<<3;Nb=Tc(Kb)|0;Wb=(f|0)>0;do if(Wb){ed(Nb|0,16056,Kb|0)|0;Vb=0;do{Tb=Nb+(Vb<<3)|0;p[Tb>>3]=+p[Tb>>3]*1.4142135623730951;Vb=Vb+1|0}while((Vb|0)!=(f|0));if(!Wb)break;Vb=f+-1|0;Tb=0;do{p[b+(Tb<<3)>>3]=+p[Nb+(Vb-Tb<<3)>>3];Tb=Tb+1|0}while((Tb|0)!=(f|0));Tb=Tc(Kb)|0;Ub=0;do{k=+p[Nb+(Vb-Ub<<3)>>3];p[Tb+(Ub<<3)>>3]=(Ub&1|0)==0?k:-k;Ub=Ub+1|0}while((Ub|0)!=(f|0));Xb=0;do{p[c+(Xb<<3)>>3]=+p[Tb+(Vb-Xb<<3)>>3];Xb=Xb+1|0}while((Xb|0)!=(f|0));Uc(Tb);ed(d|0,Nb|0,Kb|0)|0;Ub=0;do{k=+p[Nb+(Vb-Ub<<3)>>3];p[e+(Ub<<3)>>3]=(Ub&1|0)==0?k:-k;Ub=Ub+1|0}while((Ub|0)!=(f|0))}while(0);Uc(Nb);g=f;return g|0}if(!(Mb(a,25816)|0)){Nb=f<<3;Kb=Tc(Nb)|0;Xb=(f|0)>0;do if(Xb){ed(Kb|0,16536,Nb|0)|0;Wb=0;do{Ub=Kb+(Wb<<3)|0;p[Ub>>3]=+p[Ub>>3]*1.4142135623730951;Wb=Wb+1|0}while((Wb|0)!=(f|0));if(!Xb)break;Wb=f+-1|0;Ub=0;do{p[b+(Ub<<3)>>3]=+p[Kb+(Wb-Ub<<3)>>3];Ub=Ub+1|0}while((Ub|0)!=(f|0));Ub=Tc(Nb)|0;Vb=0;do{k=+p[Kb+(Wb-Vb<<3)>>3];p[Ub+(Vb<<3)>>3]=(Vb&1|0)==0?k:-k;Vb=Vb+1|0}while((Vb|0)!=(f|0));Yb=0;do{p[c+(Yb<<3)>>3]=+p[Ub+(Wb-Yb<<3)>>3];Yb=Yb+1|0}while((Yb|0)!=(f|0));Uc(Ub);ed(d|0,Kb|0,Nb|0)|0;Vb=0;do{k=+p[Kb+(Wb-Vb<<3)>>3];p[e+(Vb<<3)>>3]=(Vb&1|0)==0?k:-k;Vb=Vb+1|0}while((Vb|0)!=(f|0))}while(0);Uc(Kb);g=f;return g|0}if(!(Mb(a,25823)|0)){Kb=f<<3;Nb=Tc(Kb)|0;Yb=(f|0)>0;do if(Yb){ed(Nb|0,17064,Kb|0)|0;Xb=0;do{Vb=Nb+(Xb<<3)|0;p[Vb>>3]=+p[Vb>>3]*1.4142135623730951;Xb=Xb+1|0}while((Xb|0)!=(f|0));if(!Yb)break;Xb=f+-1|0;Vb=0;do{p[b+(Vb<<3)>>3]=+p[Nb+(Xb-Vb<<3)>>3];Vb=Vb+1|0}while((Vb|0)!=(f|0));Vb=Tc(Kb)|0;Wb=0;do{k=+p[Nb+(Xb-Wb<<3)>>3];p[Vb+(Wb<<3)>>3]=(Wb&1|0)==0?k:-k;Wb=Wb+1|0}while((Wb|0)!=(f|0));Zb=0;do{p[c+(Zb<<3)>>3]=+p[Vb+(Xb-Zb<<3)>>3];Zb=Zb+1|0}while((Zb|0)!=(f|0));Uc(Vb);ed(d|0,Nb|0,Kb|0)|0;Wb=0;do{k=+p[Nb+(Xb-Wb<<3)>>3];p[e+(Wb<<3)>>3]=(Wb&1|0)==0?k:-k;Wb=Wb+1|0}while((Wb|0)!=(f|0))}while(0);Uc(Nb);g=f;return g|0}if(!(Mb(a,25830)|0)){Nb=f<<3;Kb=Tc(Nb)|0;Zb=(f|0)>0;do if(Zb){ed(Kb|0,17640,Nb|0)|0;Yb=0;do{Wb=Kb+(Yb<<3)|0;p[Wb>>3]=+p[Wb>>3]*1.4142135623730951;Yb=Yb+1|0}while((Yb|0)!=(f|0));if(!Zb)break;Yb=f+-1|0;Wb=0;do{p[b+(Wb<<3)>>3]=+p[Kb+(Yb-Wb<<3)>>3];Wb=Wb+1|0}while((Wb|0)!=(f|0));Wb=Tc(Nb)|0;Xb=0;do{k=+p[Kb+(Yb-Xb<<3)>>3];p[Wb+(Xb<<3)>>3]=(Xb&1|0)==0?k:-k;Xb=Xb+1|0}while((Xb|0)!=(f|0));_b=0;do{p[c+(_b<<3)>>3]=+p[Wb+(Yb-_b<<3)>>3];_b=_b+1|0}while((_b|0)!=(f|0));Uc(Wb);ed(d|0,Kb|0,Nb|0)|0;Xb=0;do{k=+p[Kb+(Yb-Xb<<3)>>3];p[e+(Xb<<3)>>3]=(Xb&1|0)==0?k:-k;Xb=Xb+1|0}while((Xb|0)!=(f|0))}while(0);Uc(Kb);g=f;return g|0}if(!(Mb(a,25837)|0)){Kb=f<<3;Nb=Tc(Kb)|0;_b=(f|0)>0;do if(_b){ed(Nb|0,18264,Kb|0)|0;Zb=0;do{Xb=Nb+(Zb<<3)|0;p[Xb>>3]=+p[Xb>>3]*1.4142135623730951;Zb=Zb+1|0}while((Zb|0)!=(f|0));if(!_b)break;Zb=f+-1|0;Xb=0;do{p[b+(Xb<<3)>>3]=+p[Nb+(Zb-Xb<<3)>>3];Xb=Xb+1|0}while((Xb|0)!=(f|0));Xb=Tc(Kb)|0;Yb=0;do{k=+p[Nb+(Zb-Yb<<3)>>3];p[Xb+(Yb<<3)>>3]=(Yb&1|0)==0?k:-k;Yb=Yb+1|0}while((Yb|0)!=(f|0));$b=0;do{p[c+($b<<3)>>3]=+p[Xb+(Zb-$b<<3)>>3];$b=$b+1|0}while(($b|0)!=(f|0));Uc(Xb);ed(d|0,Nb|0,Kb|0)|0;Yb=0;do{k=+p[Nb+(Zb-Yb<<3)>>3];p[e+(Yb<<3)>>3]=(Yb&1|0)==0?k:-k;Yb=Yb+1|0}while((Yb|0)!=(f|0))}while(0);Uc(Nb);g=f;return g|0}if(!(Mb(a,25844)|0)){Nb=f<<3;Kb=Tc(Nb)|0;$b=(f|0)>0;do if($b){ed(Kb|0,18936,Nb|0)|0;_b=0;do{Yb=Kb+(_b<<3)|0;p[Yb>>3]=+p[Yb>>3]*1.4142135623730951;_b=_b+1|0}while((_b|0)!=(f|0));if(!$b)break;_b=f+-1|0;Yb=0;do{p[b+(Yb<<3)>>3]=+p[Kb+(_b-Yb<<3)>>3];Yb=Yb+1|0}while((Yb|0)!=(f|0));Yb=Tc(Nb)|0;Zb=0;do{k=+p[Kb+(_b-Zb<<3)>>3];p[Yb+(Zb<<3)>>3]=(Zb&1|0)==0?k:-k;Zb=Zb+1|0}while((Zb|0)!=(f|0));ac=0;do{p[c+(ac<<3)>>3]=+p[Yb+(_b-ac<<3)>>3];ac=ac+1|0}while((ac|0)!=(f|0));Uc(Yb);ed(d|0,Kb|0,Nb|0)|0;Zb=0;do{k=+p[Kb+(_b-Zb<<3)>>3];p[e+(Zb<<3)>>3]=(Zb&1|0)==0?k:-k;Zb=Zb+1|0}while((Zb|0)!=(f|0))}while(0);Uc(Kb);g=f;return g|0}if(!(Mb(a,25851)|0)){Kb=f<<3;Nb=Tc(Kb)|0;ac=(f|0)>0;do if(ac){ed(Nb|0,19656,Kb|0)|0;$b=0;do{Zb=Nb+($b<<3)|0;p[Zb>>3]=+p[Zb>>3]*1.4142135623730951;$b=$b+1|0}while(($b|0)!=(f|0));if(!ac)break;$b=f+-1|0;Zb=0;do{p[b+(Zb<<3)>>3]=+p[Nb+($b-Zb<<3)>>3];Zb=Zb+1|0}while((Zb|0)!=(f|0));Zb=Tc(Kb)|0;_b=0;do{k=+p[Nb+($b-_b<<3)>>3];p[Zb+(_b<<3)>>3]=(_b&1|0)==0?k:-k;_b=_b+1|0}while((_b|0)!=(f|0));bc=0;do{p[c+(bc<<3)>>3]=+p[Zb+($b-bc<<3)>>3];bc=bc+1|0}while((bc|0)!=(f|0));Uc(Zb);ed(d|0,Nb|0,Kb|0)|0;_b=0;do{k=+p[Nb+($b-_b<<3)>>3];p[e+(_b<<3)>>3]=(_b&1|0)==0?k:-k;_b=_b+1|0}while((_b|0)!=(f|0))}while(0);Uc(Nb);g=f;return g|0}if(!(Mb(a,25858)|0)){Nb=f<<3;Kb=Tc(Nb)|0;bc=(f|0)>0;do if(bc){ed(Kb|0,20424,Nb|0)|0;ac=0;do{_b=Kb+(ac<<3)|0;p[_b>>3]=+p[_b>>3]*1.4142135623730951;ac=ac+1|0}while((ac|0)!=(f|0));if(!bc)break;ac=f+-1|0;_b=0;do{p[b+(_b<<3)>>3]=+p[Kb+(ac-_b<<3)>>3];_b=_b+1|0}while((_b|0)!=(f|0));_b=Tc(Nb)|0;$b=0;do{k=+p[Kb+(ac-$b<<3)>>3];p[_b+($b<<3)>>3]=($b&1|0)==0?k:-k;$b=$b+1|0}while(($b|0)!=(f|0));cc=0;do{p[c+(cc<<3)>>3]=+p[_b+(ac-cc<<3)>>3];cc=cc+1|0}while((cc|0)!=(f|0));Uc(_b);ed(d|0,Kb|0,Nb|0)|0;$b=0;do{k=+p[Kb+(ac-$b<<3)>>3];p[e+($b<<3)>>3]=($b&1|0)==0?k:-k;$b=$b+1|0}while(($b|0)!=(f|0))}while(0);Uc(Kb);g=f;return g|0}if(!(Mb(a,25865)|0)){if((f|0)<=0){g=f;return g|0}Kb=f+-1|0;Nb=0;do{p[b+(Nb<<3)>>3]=+p[21240+(Kb-Nb<<3)>>3];Nb=Nb+1|0}while((Nb|0)!=(f|0));Nb=Tc(f<<3)|0;cc=0;do{k=+p[21240+(Kb-cc<<3)>>3];p[Nb+(cc<<3)>>3]=(cc&1|0)==0?k:-k;cc=cc+1|0}while((cc|0)!=(f|0));dc=0;do{p[c+(dc<<3)>>3]=+p[Nb+(Kb-dc<<3)>>3];dc=dc+1|0}while((dc|0)!=(f|0));Uc(Nb);Nb=0;do{p[d+(Nb<<3)>>3]=+p[21240+(Nb<<3)>>3];Nb=Nb+1|0}while((Nb|0)!=(f|0));ec=0;do{k=+p[21240+(Kb-ec<<3)>>3];p[e+(ec<<3)>>3]=(ec&1|0)==0?k:-k;ec=ec+1|0}while((ec|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25870)|0)){if((f|0)<=0){g=f;return g|0}ec=f+-1|0;Kb=0;do{p[b+(Kb<<3)>>3]=+p[21272+(ec-Kb<<3)>>3];Kb=Kb+1|0}while((Kb|0)!=(f|0));Kb=Tc(f<<3)|0;Nb=0;do{k=+p[21272+(ec-Nb<<3)>>3];p[Kb+(Nb<<3)>>3]=(Nb&1|0)==0?k:-k;Nb=Nb+1|0}while((Nb|0)!=(f|0));fc=0;do{p[c+(fc<<3)>>3]=+p[Kb+(ec-fc<<3)>>3];fc=fc+1|0}while((fc|0)!=(f|0));Uc(Kb);Kb=0;do{p[d+(Kb<<3)>>3]=+p[21272+(Kb<<3)>>3];Kb=Kb+1|0}while((Kb|0)!=(f|0));gc=0;do{k=+p[21272+(ec-gc<<3)>>3];p[e+(gc<<3)>>3]=(gc&1|0)==0?k:-k;gc=gc+1|0}while((gc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25875)|0)){if((f|0)<=0){g=f;return g|0}gc=f+-1|0;ec=0;do{p[b+(ec<<3)>>3]=+p[21320+(gc-ec<<3)>>3];ec=ec+1|0}while((ec|0)!=(f|0));ec=Tc(f<<3)|0;Kb=0;do{k=+p[21320+(gc-Kb<<3)>>3];p[ec+(Kb<<3)>>3]=(Kb&1|0)==0?k:-k;Kb=Kb+1|0}while((Kb|0)!=(f|0));hc=0;do{p[c+(hc<<3)>>3]=+p[ec+(gc-hc<<3)>>3];hc=hc+1|0}while((hc|0)!=(f|0));Uc(ec);ec=0;do{p[d+(ec<<3)>>3]=+p[21320+(ec<<3)>>3];ec=ec+1|0}while((ec|0)!=(f|0));ic=0;do{k=+p[21320+(gc-ic<<3)>>3];p[e+(ic<<3)>>3]=(ic&1|0)==0?k:-k;ic=ic+1|0}while((ic|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25880)|0)){if((f|0)<=0){g=f;return g|0}ic=f+-1|0;gc=0;do{p[b+(gc<<3)>>3]=+p[21384+(ic-gc<<3)>>3];gc=gc+1|0}while((gc|0)!=(f|0));gc=Tc(f<<3)|0;ec=0;do{k=+p[21384+(ic-ec<<3)>>3];p[gc+(ec<<3)>>3]=(ec&1|0)==0?k:-k;ec=ec+1|0}while((ec|0)!=(f|0));jc=0;do{p[c+(jc<<3)>>3]=+p[gc+(ic-jc<<3)>>3];jc=jc+1|0}while((jc|0)!=(f|0));Uc(gc);gc=0;do{p[d+(gc<<3)>>3]=+p[21384+(gc<<3)>>3];gc=gc+1|0}while((gc|0)!=(f|0));kc=0;do{k=+p[21384+(ic-kc<<3)>>3];p[e+(kc<<3)>>3]=(kc&1|0)==0?k:-k;kc=kc+1|0}while((kc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25885)|0)){if((f|0)<=0){g=f;return g|0}kc=f+-1|0;ic=0;do{p[b+(ic<<3)>>3]=+p[21464+(kc-ic<<3)>>3];ic=ic+1|0}while((ic|0)!=(f|0));ic=Tc(f<<3)|0;gc=0;do{k=+p[21464+(kc-gc<<3)>>3];p[ic+(gc<<3)>>3]=(gc&1|0)==0?k:-k;gc=gc+1|0}while((gc|0)!=(f|0));lc=0;do{p[c+(lc<<3)>>3]=+p[ic+(kc-lc<<3)>>3];lc=lc+1|0}while((lc|0)!=(f|0));Uc(ic);ic=0;do{p[d+(ic<<3)>>3]=+p[21464+(ic<<3)>>3];ic=ic+1|0}while((ic|0)!=(f|0));mc=0;do{k=+p[21464+(kc-mc<<3)>>3];p[e+(mc<<3)>>3]=(mc&1|0)==0?k:-k;mc=mc+1|0}while((mc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25890)|0)){if((f|0)<=0){g=f;return g|0}mc=f+-1|0;kc=0;do{p[b+(kc<<3)>>3]=+p[21560+(mc-kc<<3)>>3];kc=kc+1|0}while((kc|0)!=(f|0));kc=Tc(f<<3)|0;ic=0;do{k=+p[21560+(mc-ic<<3)>>3];p[kc+(ic<<3)>>3]=(ic&1|0)==0?k:-k;ic=ic+1|0}while((ic|0)!=(f|0));nc=0;do{p[c+(nc<<3)>>3]=+p[kc+(mc-nc<<3)>>3];nc=nc+1|0}while((nc|0)!=(f|0));Uc(kc);kc=0;do{p[d+(kc<<3)>>3]=+p[21560+(kc<<3)>>3];kc=kc+1|0}while((kc|0)!=(f|0));oc=0;do{k=+p[21560+(mc-oc<<3)>>3];p[e+(oc<<3)>>3]=(oc&1|0)==0?k:-k;oc=oc+1|0}while((oc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25895)|0)){if((f|0)<=0){g=f;return g|0}oc=f+-1|0;mc=0;do{p[b+(mc<<3)>>3]=+p[21672+(oc-mc<<3)>>3];mc=mc+1|0}while((mc|0)!=(f|0));mc=Tc(f<<3)|0;kc=0;do{k=+p[21672+(oc-kc<<3)>>3];p[mc+(kc<<3)>>3]=(kc&1|0)==0?k:-k;kc=kc+1|0}while((kc|0)!=(f|0));pc=0;do{p[c+(pc<<3)>>3]=+p[mc+(oc-pc<<3)>>3];pc=pc+1|0}while((pc|0)!=(f|0));Uc(mc);mc=0;do{p[d+(mc<<3)>>3]=+p[21672+(mc<<3)>>3];mc=mc+1|0}while((mc|0)!=(f|0));qc=0;do{k=+p[21672+(oc-qc<<3)>>3];p[e+(qc<<3)>>3]=(qc&1|0)==0?k:-k;qc=qc+1|0}while((qc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25900)|0)){if((f|0)<=0){g=f;return g|0}qc=f+-1|0;oc=0;do{p[b+(oc<<3)>>3]=+p[21800+(qc-oc<<3)>>3];oc=oc+1|0}while((oc|0)!=(f|0));oc=Tc(f<<3)|0;mc=0;do{k=+p[21800+(qc-mc<<3)>>3];p[oc+(mc<<3)>>3]=(mc&1|0)==0?k:-k;mc=mc+1|0}while((mc|0)!=(f|0));rc=0;do{p[c+(rc<<3)>>3]=+p[oc+(qc-rc<<3)>>3];rc=rc+1|0}while((rc|0)!=(f|0));Uc(oc);oc=0;do{p[d+(oc<<3)>>3]=+p[21800+(oc<<3)>>3];oc=oc+1|0}while((oc|0)!=(f|0));sc=0;do{k=+p[21800+(qc-sc<<3)>>3];p[e+(sc<<3)>>3]=(sc&1|0)==0?k:-k;sc=sc+1|0}while((sc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25905)|0)){if((f|0)<=0){g=f;return g|0}sc=f+-1|0;qc=0;do{p[b+(qc<<3)>>3]=+p[21944+(sc-qc<<3)>>3];qc=qc+1|0}while((qc|0)!=(f|0));qc=Tc(f<<3)|0;oc=0;do{k=+p[21944+(sc-oc<<3)>>3];p[qc+(oc<<3)>>3]=(oc&1|0)==0?k:-k;oc=oc+1|0}while((oc|0)!=(f|0));tc=0;do{p[c+(tc<<3)>>3]=+p[qc+(sc-tc<<3)>>3];tc=tc+1|0}while((tc|0)!=(f|0));Uc(qc);qc=0;do{p[d+(qc<<3)>>3]=+p[21944+(qc<<3)>>3];qc=qc+1|0}while((qc|0)!=(f|0));uc=0;do{k=+p[21944+(sc-uc<<3)>>3];p[e+(uc<<3)>>3]=(uc&1|0)==0?k:-k;uc=uc+1|0}while((uc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25911)|0)){if((f|0)<=0){g=f;return g|0}uc=f+-1|0;sc=0;do{p[b+(sc<<3)>>3]=+p[22104+(uc-sc<<3)>>3];sc=sc+1|0}while((sc|0)!=(f|0));sc=Tc(f<<3)|0;qc=0;do{k=+p[22104+(uc-qc<<3)>>3];p[sc+(qc<<3)>>3]=(qc&1|0)==0?k:-k;qc=qc+1|0}while((qc|0)!=(f|0));vc=0;do{p[c+(vc<<3)>>3]=+p[sc+(uc-vc<<3)>>3];vc=vc+1|0}while((vc|0)!=(f|0));Uc(sc);sc=0;do{p[d+(sc<<3)>>3]=+p[22104+(sc<<3)>>3];sc=sc+1|0}while((sc|0)!=(f|0));wc=0;do{k=+p[22104+(uc-wc<<3)>>3];p[e+(wc<<3)>>3]=(wc&1|0)==0?k:-k;wc=wc+1|0}while((wc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25917)|0)){if((f|0)<=0){g=f;return g|0}wc=f+-1|0;uc=0;do{p[b+(uc<<3)>>3]=+p[22280+(wc-uc<<3)>>3];uc=uc+1|0}while((uc|0)!=(f|0));uc=Tc(f<<3)|0;sc=0;do{k=+p[22280+(wc-sc<<3)>>3];p[uc+(sc<<3)>>3]=(sc&1|0)==0?k:-k;sc=sc+1|0}while((sc|0)!=(f|0));xc=0;do{p[c+(xc<<3)>>3]=+p[uc+(wc-xc<<3)>>3];xc=xc+1|0}while((xc|0)!=(f|0));Uc(uc);uc=0;do{p[d+(uc<<3)>>3]=+p[22280+(uc<<3)>>3];uc=uc+1|0}while((uc|0)!=(f|0));yc=0;do{k=+p[22280+(wc-yc<<3)>>3];p[e+(yc<<3)>>3]=(yc&1|0)==0?k:-k;yc=yc+1|0}while((yc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25923)|0)){if((f|0)<=0){g=f;return g|0}yc=f+-1|0;wc=0;do{p[b+(wc<<3)>>3]=+p[22472+(yc-wc<<3)>>3];wc=wc+1|0}while((wc|0)!=(f|0));wc=Tc(f<<3)|0;uc=0;do{k=+p[22472+(yc-uc<<3)>>3];p[wc+(uc<<3)>>3]=(uc&1|0)==0?k:-k;uc=uc+1|0}while((uc|0)!=(f|0));zc=0;do{p[c+(zc<<3)>>3]=+p[wc+(yc-zc<<3)>>3];zc=zc+1|0}while((zc|0)!=(f|0));Uc(wc);wc=0;do{p[d+(wc<<3)>>3]=+p[22472+(wc<<3)>>3];wc=wc+1|0}while((wc|0)!=(f|0));Ac=0;do{k=+p[22472+(yc-Ac<<3)>>3];p[e+(Ac<<3)>>3]=(Ac&1|0)==0?k:-k;Ac=Ac+1|0}while((Ac|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25929)|0)){if((f|0)<=0){g=f;return g|0}Ac=f+-1|0;yc=0;do{p[b+(yc<<3)>>3]=+p[22680+(Ac-yc<<3)>>3];yc=yc+1|0}while((yc|0)!=(f|0));yc=Tc(f<<3)|0;wc=0;do{k=+p[22680+(Ac-wc<<3)>>3];p[yc+(wc<<3)>>3]=(wc&1|0)==0?k:-k;wc=wc+1|0}while((wc|0)!=(f|0));Bc=0;do{p[c+(Bc<<3)>>3]=+p[yc+(Ac-Bc<<3)>>3];Bc=Bc+1|0}while((Bc|0)!=(f|0));Uc(yc);yc=0;do{p[d+(yc<<3)>>3]=+p[22680+(yc<<3)>>3];yc=yc+1|0}while((yc|0)!=(f|0));Cc=0;do{k=+p[22680+(Ac-Cc<<3)>>3];p[e+(Cc<<3)>>3]=(Cc&1|0)==0?k:-k;Cc=Cc+1|0}while((Cc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25935)|0)){if((f|0)<=0){g=f;return g|0}Cc=f+-1|0;Ac=0;do{p[b+(Ac<<3)>>3]=+p[22904+(Cc-Ac<<3)>>3];Ac=Ac+1|0}while((Ac|0)!=(f|0));Ac=Tc(f<<3)|0;yc=0;do{k=+p[22904+(Cc-yc<<3)>>3];p[Ac+(yc<<3)>>3]=(yc&1|0)==0?k:-k;yc=yc+1|0}while((yc|0)!=(f|0));Dc=0;do{p[c+(Dc<<3)>>3]=+p[Ac+(Cc-Dc<<3)>>3];Dc=Dc+1|0}while((Dc|0)!=(f|0));Uc(Ac);Ac=0;do{p[d+(Ac<<3)>>3]=+p[22904+(Ac<<3)>>3];Ac=Ac+1|0}while((Ac|0)!=(f|0));Ec=0;do{k=+p[22904+(Cc-Ec<<3)>>3];p[e+(Ec<<3)>>3]=(Ec&1|0)==0?k:-k;Ec=Ec+1|0}while((Ec|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25941)|0)){if((f|0)<=0){g=f;return g|0}Ec=f+-1|0;Cc=0;do{p[b+(Cc<<3)>>3]=+p[23144+(Ec-Cc<<3)>>3];Cc=Cc+1|0}while((Cc|0)!=(f|0));Cc=Tc(f<<3)|0;Ac=0;do{k=+p[23144+(Ec-Ac<<3)>>3];p[Cc+(Ac<<3)>>3]=(Ac&1|0)==0?k:-k;Ac=Ac+1|0}while((Ac|0)!=(f|0));Fc=0;do{p[c+(Fc<<3)>>3]=+p[Cc+(Ec-Fc<<3)>>3];Fc=Fc+1|0}while((Fc|0)!=(f|0));Uc(Cc);Cc=0;do{p[d+(Cc<<3)>>3]=+p[23144+(Cc<<3)>>3];Cc=Cc+1|0}while((Cc|0)!=(f|0));Gc=0;do{k=+p[23144+(Ec-Gc<<3)>>3];p[e+(Gc<<3)>>3]=(Gc&1|0)==0?k:-k;Gc=Gc+1|0}while((Gc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25947)|0)){if((f|0)<=0){g=f;return g|0}Gc=f+-1|0;Ec=0;do{p[b+(Ec<<3)>>3]=+p[23400+(Gc-Ec<<3)>>3];Ec=Ec+1|0}while((Ec|0)!=(f|0));Ec=Tc(f<<3)|0;Cc=0;do{k=+p[23400+(Gc-Cc<<3)>>3];p[Ec+(Cc<<3)>>3]=(Cc&1|0)==0?k:-k;Cc=Cc+1|0}while((Cc|0)!=(f|0));Hc=0;do{p[c+(Hc<<3)>>3]=+p[Ec+(Gc-Hc<<3)>>3];Hc=Hc+1|0}while((Hc|0)!=(f|0));Uc(Ec);Ec=0;do{p[d+(Ec<<3)>>3]=+p[23400+(Ec<<3)>>3];Ec=Ec+1|0}while((Ec|0)!=(f|0));Ic=0;do{k=+p[23400+(Gc-Ic<<3)>>3];p[e+(Ic<<3)>>3]=(Ic&1|0)==0?k:-k;Ic=Ic+1|0}while((Ic|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25953)|0)){if((f|0)<=0){g=f;return g|0}Ic=f+-1|0;Gc=0;do{p[b+(Gc<<3)>>3]=+p[23672+(Ic-Gc<<3)>>3];Gc=Gc+1|0}while((Gc|0)!=(f|0));Gc=Tc(f<<3)|0;Ec=0;do{k=+p[23672+(Ic-Ec<<3)>>3];p[Gc+(Ec<<3)>>3]=(Ec&1|0)==0?k:-k;Ec=Ec+1|0}while((Ec|0)!=(f|0));Jc=0;do{p[c+(Jc<<3)>>3]=+p[Gc+(Ic-Jc<<3)>>3];Jc=Jc+1|0}while((Jc|0)!=(f|0));Uc(Gc);Gc=0;do{p[d+(Gc<<3)>>3]=+p[23672+(Gc<<3)>>3];Gc=Gc+1|0}while((Gc|0)!=(f|0));Kc=0;do{k=+p[23672+(Ic-Kc<<3)>>3];p[e+(Kc<<3)>>3]=(Kc&1|0)==0?k:-k;Kc=Kc+1|0}while((Kc|0)!=(f|0));g=f;return g|0}if(!(Mb(a,25959)|0)){if((f|0)<=0){g=f;return g|0}Kc=f+-1|0;Ic=0;do{p[b+(Ic<<3)>>3]=+p[23960+(Kc-Ic<<3)>>3];Ic=Ic+1|0}while((Ic|0)!=(f|0));Ic=Tc(f<<3)|0;Gc=0;do{k=+p[23960+(Kc-Gc<<3)>>3];p[Ic+(Gc<<3)>>3]=(Gc&1|0)==0?k:-k;Gc=Gc+1|0}while((Gc|0)!=(f|0));Lc=0;do{p[c+(Lc<<3)>>3]=+p[Ic+(Kc-Lc<<3)>>3];Lc=Lc+1|0}while((Lc|0)!=(f|0));Uc(Ic);Ic=0;do{p[d+(Ic<<3)>>3]=+p[23960+(Ic<<3)>>3];Ic=Ic+1|0}while((Ic|0)!=(f|0));Mc=0;do{k=+p[23960+(Kc-Mc<<3)>>3];p[e+(Mc<<3)>>3]=(Mc&1|0)==0?k:-k;Mc=Mc+1|0}while((Mc|0)!=(f|0));g=f;return g|0}if(Mb(a,25965)|0){Rc(25297)|0;g=-1;return g|0}if((f|0)<=0){g=f;return g|0}a=f+-1|0;Mc=0;do{p[b+(Mc<<3)>>3]=+p[24264+(a-Mc<<3)>>3];Mc=Mc+1|0}while((Mc|0)!=(f|0));Mc=Tc(f<<3)|0;Kc=0;do{k=+p[24264+(a-Kc<<3)>>3];p[Mc+(Kc<<3)>>3]=(Kc&1|0)==0?k:-k;Kc=Kc+1|0}while((Kc|0)!=(f|0));Nc=0;do{p[c+(Nc<<3)>>3]=+p[Mc+(a-Nc<<3)>>3];Nc=Nc+1|0}while((Nc|0)!=(f|0));Uc(Mc);Mc=0;do{p[d+(Mc<<3)>>3]=+p[24264+(Mc<<3)>>3];Mc=Mc+1|0}while((Mc|0)!=(f|0));Oc=0;do{k=+p[24264+(a-Oc<<3)>>3];p[e+(Oc<<3)>>3]=(Oc&1|0)==0?k:-k;Oc=Oc+1|0}while((Oc|0)!=(f|0));g=f;return g|0}if((f|0)<=0){g=f;return g|0}Oc=f+-1|0;a=0;do{p[b+(a<<3)>>3]=+p[8504+(Oc-a<<3)>>3];a=a+1|0}while((a|0)!=(f|0));a=Tc(f<<3)|0;b=0;do{k=+p[8504+(Oc-b<<3)>>3];p[a+(b<<3)>>3]=(b&1|0)==0?k:-k;b=b+1|0}while((b|0)!=(f|0));Pc=0;do{p[c+(Pc<<3)>>3]=+p[a+(Oc-Pc<<3)>>3];Pc=Pc+1|0}while((Pc|0)!=(f|0));Uc(a);a=0;do{p[d+(a<<3)>>3]=+p[8504+(a<<3)>>3];a=a+1|0}while((a|0)!=(f|0));Qc=0;do{k=+p[8504+(Oc-Qc<<3)>>3];p[e+(Qc<<3)>>3]=(Qc&1|0)==0?k:-k;Qc=Qc+1|0}while((Qc|0)!=(f|0));g=f;return g|0}function Ya(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{p[d+(f<<3)>>3]=+p[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}f=X(b+-1|0,c)|0;b=f+1|0;if((f|0)<0){e=b;return e|0}else{g=1;h=0;i=0}while(1){f=g+-1|0;j=d+(i<<3)|0;p[j>>3]=0.0;if(!f){p[j>>3]=+p[a+(h<<3)>>3];k=h+1|0;l=c}else{k=h;l=f}i=i+1|0;if((i|0)==(b|0)){e=b;break}else{g=l;h=k}}return e|0}function Za(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{p[d+(f<<3)>>3]=+p[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}f=X(c,b)|0;if((f|0)>0){g=1;h=0;i=0}else{e=f;return e|0}while(1){b=g+-1|0;j=d+(i<<3)|0;p[j>>3]=0.0;if(!b){p[j>>3]=+p[a+(h<<3)>>3];k=h+1|0;l=c}else{k=h;l=b}i=i+1|0;if((i|0)==(f|0)){e=f;break}else{g=l;h=k}}return e|0}function _a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{p[d+(f<<3)>>3]=+p[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}else{f=(b+-1|0)/(c|0)|0;b=f+1|0;if((f|0)<0){e=b;return e|0}else g=0;do{f=a+((X(g,c)|0)<<3)|0;p[d+(g<<3)>>3]=+p[f>>3];g=g+1|0}while((g|0)!=(b|0));e=b;return e|0}return 0}function $a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0.0,j=0;if((b|0)>0){e=0;do{p[d+(e+c<<3)>>3]=+p[a+(e<<3)>>3];e=e+1|0}while((e|0)!=(b|0))}if(!(b&1))f=b;else{p[d+(c+b<<3)>>3]=+p[a+(b+-1<<3)>>3];f=b+1|0}if((c|0)<=0)return f|0;b=f+c|0;a=b+-1|0;e=c+-1|0;g=0;h=0;while(1){i=+p[d+(h+c<<3)>>3];p[d+(e+g<<3)>>3]=+p[d+(a+g<<3)>>3];p[d+(h+b<<3)>>3]=i;j=h+1|0;if((j|0)==(c|0))break;else{g=~h;h=j}}return f|0}function ab(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0.0,j=0;if((b|0)>0){e=0;do{p[d+(e+c<<3)>>3]=+p[a+(e<<3)>>3];e=e+1|0}while((e|0)!=(b|0))}if((c|0)<=0)return b|0;e=c+b|0;a=e+-1|0;f=c+-1|0;g=0;h=0;while(1){i=+p[d+(a+g<<3)>>3];p[d+(f+g<<3)>>3]=+p[d+(h+c<<3)>>3];p[d+(h+e<<3)>>3]=i;j=h+1|0;if((j|0)==(c|0))break;else{g=~h;h=j}}return b|0}function bb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=(c|0)>-1?c:0-c|0;if((d|0)>(b|0))e=X((d|0)%(b|0)|0,c>>31|1)|0;else e=c;if((e|0)<0)f=(e+b|0)%(b|0)|0;else f=e;e=f<<3;c=Tc(e)|0;d=(f|0)>0;if(d)ed(c|0,a|0,e|0)|0;g=b-f|0;if((g|0)>0){b=0;do{p[a+(b<<3)>>3]=+p[a+(b+f<<3)>>3];b=b+1|0}while((b|0)!=(g|0))}if(!d){Uc(c);return}ed(a+(g<<3)|0,c|0,e|0)|0;Uc(c);return}function cb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;if((b|0)>0){c=1;d=0;while(1){e=c<<1;d=d+1|0;if((d|0)==(b|0)){f=e;break}else c=e}}else f=1;return ((a|0)%(f|0)|0|0)==0|0}function db(a,b){a=a|0;b=b|0;return ~~(+V(+(+(a|0)/(+(b|0)+-1.0)))/.6931471805599453)|0}function eb(a){a=+a;var b=0.0,c=0.0,d=0.0,e=0.0,f=0.0,g=0.0,h=0.0,i=0,j=0.0,k=0,l=0.0,m=0.0,n=0;if(a<0.0){b=-a;if(!(a<=-0.0))c=+W(+b);else c=+J(+b);d=b-c;if(!(d!=0.0)){e=1.79e+308;return +e}b=c*.5;if(!(b>=0.0))f=+W(+b);else f=+J(+b);g=1.0-a;h=-3.141592653589793/+O(+(d*3.141592653589793));i=c!=f*2.0&1}else{g=a;h=1.0;i=0}do if(g<2.22e-16)if(!(g>=1.79e-308)){e=1.79e+308;return +e}else{j=1.0/g;break}else{if(!(g<12.0))if(!(g<=171.624)){e=1.79e+308;return +e}else{a=g*g;j=+U(+(((((((.0057083835261/a+-.001910444077728)/a+.00084171387781295)/a+-5.952379913043012e-04)/a+7.936507935003503e-04)/a+-2.7777777777776816e-03)/a+.08333333333333333)/g-g+.9189385332046728+(g+-.5)*+V(+g)));break}if(g<1.0){k=0;l=g;m=g+1.0}else{n=~~g+-1|0;a=g-+(n|0);k=n;l=a+-1.0;m=a}a=l*(l*(l*(l*(l*(l*(l*(l*-1.716185138865495+24.76565080557592)+-379.80425647094563)+629.3311553128184)+866.9662027904133)+-31451.272968848367)+-36144.413418691176)+66456.14382024054)/(l*(l*(l*(l*(l*(l*(l*(l+-30.840230011973897)+315.35062697960416)+-1015.1563674902192)+-3107.771671572311)+22538.11842098015)+4755.846277527881)+-134659.9598649693)+-115132.25967555349)+1.0;if(gm&(k|0)>0){f=a;n=0;c=m;while(1){d=f*c;n=n+1|0;if((n|0)==(k|0)){j=d;break}else{f=d;c=c+1.0}}}else j=a}while(0);m=(i|0)==0?j:-j;e=h!=1.0?h/m:m;return +e}function fb(a,b,c,d,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;c=+c;d=d|0;e=+e;f=+f;g=+g;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0,I=0,J=0.0,K=0.0,N=0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,V=0,W=0.0,Y=0.0,Z=0,_=0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0,fa=0.0;if((i|0)<(b|0)){Rc(26011)|0;sa(-1)}n=Ha(i,1)|0;o=Ha(i,-1)|0;q=i<<4;r=Tc(q)|0;s=Tc(q)|0;t=Tc(q)|0;u=Tc(i<<3)|0;v=(b|0)>0;if(v){g=0.0;w=0;do{g=g+ +p[a+(w<<3)>>3];w=w+1|0}while((w|0)!=(b|0));f=g/+(b|0);if(v){w=0;do{p[r+(w<<4)>>3]=+p[a+(w<<3)>>3]-f;p[r+(w<<4)+8>>3]=0.0;w=w+1|0}while((w|0)!=(b|0))}}if((b|0)<(i|0)){w=b<<4;Yc(r+w|0,0,q-w|0)|0}Ka(n,r,s);w=(i|0)>0;f=+(i|0);if(w){q=0;do{a=s+(q<<4)|0;p[a>>3]=+p[a>>3]/f;a=s+(q<<4)+8|0;p[a>>3]=+p[a>>3]/f;q=q+1|0}while((q|0)!=(i|0));g=6.283185307179586/(f*c);p[u>>3]=0.0;q=(i|0)/2|0;if((i|0)<2)x=q;else{a=1;while(1){p[u+(a<<3)>>3]=g*+(a|0);if((a|0)<(q|0))a=a+1|0;else{x=q;break}}}}else{p[u>>3]=0.0;x=(i|0)/2|0}q=x+1|0;if((q|0)<(i|0)){a=q;do{p[u+(a<<3)>>3]=-+p[u+(i-a<<3)>>3];a=a+1|0}while((a|0)!=(i|0))}a:do if((h|0)<1)y=0.0;else{a=b<<1;z=e<0.0;g=z?6.0:e;A=(i|0)<-1;B=(x+2|0)>(i|0);f=g*g+2.0;C=i+268435455-x<<4;D=t+(q<<4)|0;E=~~e;F=z?4:E;G=+(F|0);H=(F<<1)+-1|0;I=(H|0)>40;J=12.566370614359172/(G*2.0+1.0);K=J*1.4142135623730951;N=24584+(H<<3)|0;H=z?2:E;E=(H&1|0)==0;O=((H|0)%4|0)>>>0<2?-1.0:1.0;P=+(H|0);Q=P+.5;H=(i|0)<1;R=2.0/(P*2.0+1.0);z=1;S=0.0;T=0.0;while(1){V=z+-1|0;W=+p[k+(V<<3)>>3];switch(d|0){case 0:{Y=+L(+(W*6.283185307179586/c))*.7511255444649425;if(!A){Z=1;while(1){_=Z+-1|0;$=W*+p[u+(_<<3)>>3]-g;aa=Y*+U(+($*($*-.5)));p[t+(_<<4)>>3]=aa;p[t+(_<<4)+8>>3]=0.0;if((Z|0)>(x|0))break;else Z=Z+1|0}}if(!B)Yc(D|0,0,C|0)|0;Y=12.566370614359172/(g+ +L(+f));ba=Y/1.4142135623730951;ca=W*Y;break}case 1:{Y=+L(+(W*6.283185307179586/c));aa=+Cc(1.0,F);if(I){Rc(25971)|0;da=-1.0}else da=+p[N>>3];$=Y*(aa/+L(+(G*da)));if(!A){Z=1;while(1){_=Z+-1|0;aa=W*+p[u+(_<<3)>>3];Y=$*+M(+aa,+G)*+U(+-aa);p[t+(_<<4)>>3]=Y;p[t+(_<<4)+8>>3]=0.0;if((Z|0)>(x|0))break;else Z=Z+1|0}}if(!B)Yc(D|0,0,C|0)|0;ba=K;ca=J*W;break}case 2:{$=+L(+(W*6.283185307179586/c));Y=O*($*+L(+(1.0/+eb(Q))));if(E){if(!H){Z=1;while(1){_=Z+-1|0;$=W*+p[u+(_<<3)>>3];aa=Y*+M(+$,+P)*+U(+($*$*-.5));p[t+(_<<4)>>3]=aa;p[t+(_<<4)+8>>3]=0.0;if((Z|0)==(i|0))break;else Z=Z+1|0}}}else if(!H){Z=1;while(1){_=Z+-1|0;aa=W*+p[u+(_<<3)>>3];p[t+(_<<4)>>3]=0.0;$=Y*+M(+aa,+P)*+U(+(aa*aa*-.5));p[t+(_<<4)+8>>3]=$;if((Z|0)==(i|0))break;else Z=Z+1|0}}Y=+L(+R)*6.283185307179586;ba=Y/1.4142135623730951;ca=W*Y;break}default:{ba=S;ca=T}}p[l+(V<<3)>>3]=ca;if(w){Z=0;do{_=t+(Z<<4)|0;Y=+p[_>>3];$=+p[s+(Z<<4)>>3];ea=t+(Z<<4)+8|0;aa=+p[ea>>3];fa=+p[s+(Z<<4)+8>>3];p[_>>3]=Y*$-aa*fa;p[ea>>3]=$*aa+Y*fa;Z=Z+1|0}while((Z|0)!=(i|0))}Ka(o,t,r);Z=X(a,V)|0;if(v){ea=0;do{_=(ea<<1)+Z|0;p[j+(_<<3)>>3]=+p[r+(ea<<4)>>3];p[j+((_|1)<<3)>>3]=+p[r+(ea<<4)+8>>3];ea=ea+1|0}while((ea|0)!=(b|0))}if((z|0)==(h|0)){y=ba;break a}else{z=z+1|0;S=ba;T=ca}}}while(0);h=b+1|0;j=(h|0)/2|0;if((h|0)<2){Uc(u);Uc(r);Uc(s);Uc(t);Na(n);Na(o);return}ca=y*c;h=1;while(1){c=ca*(+(h|0)+-1.0);p[m+(h+-1<<3)>>3]=c;p[m+(b-h<<3)>>3]=c;if((h|0)<(j|0))h=h+1|0;else break}Uc(u);Uc(r);Uc(s);Uc(t);Na(n);Na(o);return}function gb(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=(a|0)!=0;if(b)c=Wa(a)|0;else c=0;d=Tc((c<<5)+88|0)|0;f[d+52>>2]=c;f[d+68>>2]=c;f[d+64>>2]=c;f[d+60>>2]=c;f[d+56>>2]=c;Ac(d,a)|0;e=c*3|0;g=c<<1;h=d+88|0;if(b)Xa(a,h,h+(c<<3)|0,h+(g<<3)|0,h+(e<<3)|0)|0;f[d+72>>2]=h;f[d+76>>2]=h+(c<<3);f[d+80>>2]=h+(g<<3);f[d+84>>2]=h+(e<<3);return d|0}function hb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=u;u=u+16|0;h=g;i=f[a+52>>2]|0;if((e|0)>100){Rc(26030)|0;sa(-1)}j=db(d,i)|0;if((j|0)<(e|0)){f[h>>2]=j;Qc(26439,h)|0;sa(-1)}do if(!c){k=7174515;l=(X(e<<1,i+1|0)|0)+d|0;m=22}else{if(Mb(c,26529)|0?Mb(c,26533)|0:0){if(Mb(c,26545)|0?Mb(c,26549)|0:0){if(Mb(c,26553)|0?Mb(c,26559)|0:0){n=0;break}if(((Lc(a,26145)|0)==0?(Lc(a,26541)|0)==0:0)?(Lc(a,26148)|0)==0:0){Rc(26153)|0;sa(-1)}k=7497072;l=X(e+1|0,d)|0;m=22;break}if(!(cb(d,e)|0)){Rc(26089)|0;sa(-1)}else{k=7497072;l=X(e+1|0,d)|0;m=22;break}}k=7174515;l=(X(e<<1,i+1|0)|0)+d|0;m=22}while(0);if((m|0)==22){m=Tc((l<<3)+488|0)|0;f[m+24>>2]=l;l=m+44|0;b[l>>0]=k;b[l+1>>0]=k>>8;b[l+2>>0]=k>>16;b[l+3>>0]=k>>24;n=m}f[n>>2]=a;f[n+20>>2]=d;f[n+32>>2]=e;f[n+36>>2]=j;Ac(n+8|0,c)|0;f[n+40>>2]=d&1^1;f[n+4>>2]=0;j=n+54|0;b[j>>0]=b[26233]|0;b[j+1>>0]=b[26234]|0;b[j+2>>0]=b[26235]|0;b[j+3>>0]=b[26236]|0;b[j+4>>0]=b[26237]|0;b[j+5>>0]=b[26238]|0;b[j+6>>0]=b[26239]|0;f[n+68>>2]=0;f[n+28>>2]=e+2;f[n+484>>2]=n+488;if(Mb(c,26529)|0?Mb(c,26533)|0:0){if(((Mb(c,26545)|0?Mb(c,26549)|0:0)?Mb(c,26553)|0:0)?Mb(c,26559)|0:0){u=g;return n|0}c=X(e+1|0,d)|0;if((c|0)<=0){u=g;return n|0}Yc(n+488|0,0,c<<3|0)|0;u=g;return n|0}c=i+1|0;if(((X(e<<1,c)|0)+d|0)<=0){u=g;return n|0}Yc(n+488|0,0,((X(c,e)|0)<<4)+(d<<3)|0)|0;u=g;return n|0} -function ib(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0,T=0,U=0,V=0,X=0.0,Y=0.0,Z=0.0,_=0.0;c=u;u=u+16|0;d=c;e=a+20|0;g=f[e>>2]|0;h=f[a+32>>2]|0;i=a+76|0;f[a+76+(h+1<<2)>>2]=g;j=a+24|0;f[j>>2]=0;f[a+72>>2]=0;k=g<<3;l=Tc(k)|0;m=Tc(k)|0;k=f[e>>2]|0;if((k|0)>0)ed(l|0,b|0,k<<3|0)|0;k=f[(f[a>>2]|0)+56>>2]|0;b=a+44|0;if(Mb(b,26537)|0){if(Mb(b,26541)|0){Qc(26248,d)|0;sa(-1)}d=(h|0)>0;if(!d){b=f[a+80>>2]|0;f[i>>2]=b;f[j>>2]=b;Uc(l);Uc(m);u=c;return}b=k+-2|0;k=g;e=h;while(1){k=~~+W(+(+(b+k|0)*.5));f[a+76+(e<<2)>>2]=k;n=(f[j>>2]|0)+k|0;f[j>>2]=n;if((e|0)<=1)break;else e=e+-1|0}e=f[a+80>>2]|0;f[i>>2]=e;k=n+e|0;f[j>>2]=k;if(!d){Uc(l);Uc(m);u=c;return}d=a+54|0;e=h+-1|0;n=a+488|0;b=g;o=0;q=k;do{k=a+76+(h-o<<2)|0;r=f[k>>2]|0;s=q;q=q-r|0;do if((Mb(d,26240)|0)!=0?(Mb(d,26244)|0)!=0:0){t=a+488+(q<<3)|0;v=f[a>>2]|0;w=f[v+56>>2]|0;if((r|0)>0){x=v+72|0;y=v+76|0;v=(b<<1)+-1|0;if((w|0)>0)z=0;else{A=r<<3;Yc(m|0,0,A|0)|0;Yc(n+((s<<3)-A)|0,0,A|0)|0;break}do{A=z<<1;B=A|1;C=m+(z<<3)|0;p[C>>3]=0.0;D=t+(z<<3)|0;p[D>>3]=0.0;E=A^-2;A=v-B|0;F=0;G=0.0;H=0.0;while(1){I=B-F|0;J=(I|0)<(b|0);do if(!((I|0)>-1&J)){if((I|0)<0){K=F+E|0;L=(f[x>>2]|0)+(F<<3)|0;M=60;break}if(J){N=H;O=G}else{K=A+F|0;L=(f[x>>2]|0)+(F<<3)|0;M=60}}else{K=I;L=(f[x>>2]|0)+(F<<3)|0;M=60}while(0);if((M|0)==60){M=0;P=+p[l+(K<<3)>>3];Q=G+ +p[L>>3]*P;p[C>>3]=Q;R=H+ +p[(f[y>>2]|0)+(F<<3)>>3]*P;p[D>>3]=R;N=R;O=Q}F=F+1|0;if((F|0)==(w|0))break;else{G=O;H=N}}z=z+1|0}while((z|0)!=(r|0))}}else M=49;while(0);if((M|0)==49){M=0;jb(a,l,b,m,a+488+(q<<3)|0)}b=f[k>>2]|0;s=(r|0)>0;if((o|0)==(e|0)){if(s)ed(n|0,m|0,r<<3|0)|0}else if(s)ed(l|0,m|0,r<<3|0)|0;o=o+1|0}while((o|0)!=(h|0));Uc(l);Uc(m);u=c;return}o=(h|0)>0;if(o){S=g;T=h}else{n=f[a+80>>2]|0;f[i>>2]=n;f[j>>2]=n;Uc(l);Uc(m);u=c;return}while(1){S=~~+W(+(+(S|0)*.5));f[a+76+(T<<2)>>2]=S;U=(f[j>>2]|0)+S|0;f[j>>2]=U;if((T|0)<=1)break;else T=T+-1|0}T=f[a+80>>2]|0;f[i>>2]=T;i=U+T|0;f[j>>2]=i;if(!o){Uc(l);Uc(m);u=c;return}o=a+54|0;j=h+-1|0;T=a+488|0;U=g;g=0;S=i;do{i=a+76+(h-g<<2)|0;n=f[i>>2]|0;S=S-n|0;if((Mb(o,26240)|0)!=0?(Mb(o,26244)|0)!=0:0){e=a+488+(S<<3)|0;b=f[a>>2]|0;q=f[b+56>>2]|0;z=(q|0)/2|0;L=(U|0)%2|0;if((n|0)>0){K=(q|0)>0;d=b+72|0;s=b+76|0;b=(L|0)==0;w=(L|0)==1;L=l+(U+-1<<3)|0;y=U+1|0;x=~U;v=0;do{t=(v<<1)+z|0;F=m+(v<<3)|0;p[F>>3]=0.0;D=e+(v<<3)|0;p[D>>3]=0.0;if(K){C=0;N=0.0;O=0.0;while(1){A=t-C|0;do if(!((A|0)>=(z|0)&(A|0)<(U|0))){if((A|0)<(z|0)&(A|0)>-1){H=+p[l+(A<<3)>>3];G=O+ +p[(f[d>>2]|0)+(C<<3)>>3]*H;p[F>>3]=G;V=f[s>>2]|0;X=H;Y=G;M=31;break}E=(A|0)<0;if(b&E){G=+p[l+(A+U<<3)>>3];H=O+ +p[(f[d>>2]|0)+(C<<3)>>3]*G;p[F>>3]=H;V=f[s>>2]|0;X=G;Y=H;M=31;break}if(w&E){H=+p[(f[d>>2]|0)+(C<<3)>>3];E=f[s>>2]|0;if((A|0)==-1){G=+p[L>>3];Q=O+H*G;p[F>>3]=Q;V=E;X=G;Y=Q;M=31;break}else{Q=+p[l+(y+A<<3)>>3];G=O+H*Q;p[F>>3]=G;V=E;X=Q;Y=G;M=31;break}}E=(A|0)>=(U|0);if(b&E){G=+p[l+(A-U<<3)>>3];Q=O+ +p[(f[d>>2]|0)+(C<<3)>>3]*G;p[F>>3]=Q;V=f[s>>2]|0;X=G;Y=Q;M=31;break}if(w&E){Q=+p[(f[d>>2]|0)+(C<<3)>>3];E=f[s>>2]|0;if((A|0)==(U|0)){G=+p[L>>3];H=O+Q*G;p[F>>3]=H;V=E;X=G;Y=H;M=31;break}else{H=+p[l+(A+x<<3)>>3];G=O+Q*H;p[F>>3]=G;V=E;X=H;Y=G;M=31;break}}else{Z=N;_=O}}else{G=+p[l+(A<<3)>>3];H=O+ +p[(f[d>>2]|0)+(C<<3)>>3]*G;p[F>>3]=H;V=f[s>>2]|0;X=G;Y=H;M=31}while(0);if((M|0)==31){M=0;H=N+ +p[V+(C<<3)>>3]*X;p[D>>3]=H;Z=H;_=Y}C=C+1|0;if((C|0)==(q|0))break;else{N=Z;O=_}}}v=v+1|0}while((v|0)!=(n|0))}}else jb(a,l,U,m,a+488+(S<<3)|0);U=f[i>>2]|0;v=(n|0)>0;if((g|0)==(j|0)){if(v)ed(T|0,m|0,n<<3|0)|0}else if(v)ed(l|0,m|0,n<<3|0)|0;g=g+1|0}while((g|0)!=(h|0));Uc(l);Uc(m);u=c;return}function jb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=u;u=u+32|0;h=g+16|0;i=g+8|0;j=g;k=f[a>>2]|0;l=f[k+56>>2]|0;m=(f[k+60>>2]|0)+l|0;k=(m|0)/2|0;n=a+44|0;if(!(Mb(n,26537)|0)){o=Tc(((c|0)%2|0)+c+k<<3)|0;p=$a(b,c,(m|0)/4|0,o)|0;m=p+k|0;q=f[a>>2]|0;r=q+56|0;s=Tc(((f[r>>2]|0)+m<<3)+-8|0)|0;t=f[r>>2]|0;if((t|0)!=(f[q+60>>2]|0)){Qc(26290,j)|0;sa(-1)}j=a+54|0;if((Mb(j,26240)|0)!=0?(Mb(j,26244)|0)!=0:0){v=q;w=t}else{q=Sa(m,t)|0;f[a+4>>2]=q;f[a+68>>2]=1;q=f[a>>2]|0;v=q;w=f[q+56>>2]|0}kb(a,o,m,f[v+72>>2]|0,w,s);w=s+(k<<3)|0;_a(w,p,2,d)|0;k=f[a>>2]|0;kb(a,o,m,f[k+76>>2]|0,f[k+60>>2]|0,s);_a(w,p,2,e)|0;x=o;y=s}else{if(Mb(n,26541)|0){Qc(26248,h)|0;sa(-1)}h=l+-1|0;n=h<<1;s=Tc(n+c<<3)|0;o=ab(b,c,h,s)|0;c=Tc(o+(h*3|0)<<3)|0;h=f[a>>2]|0;b=f[h+56>>2]|0;if((b|0)!=(f[h+60>>2]|0)){Qc(26290,i)|0;sa(-1)}i=a+54|0;if((Mb(i,26240)|0)!=0?(Mb(i,26244)|0)!=0:0){z=o+n|0;A=h;B=b}else{b=o+n|0;n=Sa(b,l)|0;f[a+4>>2]=n;f[a+68>>2]=1;n=f[a>>2]|0;z=b;A=n;B=f[n+56>>2]|0}kb(a,s,z,f[A+72>>2]|0,B,c);B=c+(l<<3)|0;A=l+-2+o|0;_a(B,A,2,d)|0;d=f[a>>2]|0;kb(a,s,z,f[d+76>>2]|0,f[d+60>>2]|0,c);_a(B,A,2,e)|0;x=s;y=c}c=f[a>>2]|0;if((f[c+56>>2]|0)!=(f[c+60>>2]|0)){Uc(x);Uc(y);u=g;return}c=a+54|0;if(Mb(c,26240)|0?Mb(c,26244)|0:0){Uc(x);Uc(y);u=g;return}Va(f[a+4>>2]|0);f[a+68>>2]=0;Uc(x);Uc(y);u=g;return}function kb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0;h=u;u=u+16|0;i=h;j=a+54|0;if(!(Mb(j,26233)|0)){Ta(b,c,d,e,g);u=h;return}if(Mb(j,26240)|0?Mb(j,26244)|0:0){Qc(26339,i)|0;sa(-1)}if(!(f[a+68>>2]|0)){i=Sa(c,e)|0;e=a+4|0;f[e>>2]=i;Ua(i,b,d,g);Va(f[e>>2]|0);u=h;return}else{Ua(f[a+4>>2]|0,b,d,g);u=h;return}}function lb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0.0,W=0,X=0.0,Y=0.0,Z=0,_=0.0,$=0,aa=0,ba=0,ca=0,da=0;c=u;u=u+32|0;d=c+16|0;e=c+8|0;g=c;h=f[a+32>>2]|0;i=f[a+76>>2]|0;j=a+20|0;k=Tc((f[j>>2]<<3)+8|0)|0;l=a+44|0;do if(!(Mb(l,26537)|0)){m=a+54|0;if(Mb(m,26240)|0?Mb(m,26244)|0:0){if(Mb(a+54|0,26233)|0){n=49;break}o=f[a+80>>2]|0;q=f[a>>2]|0;r=(f[q+68>>2]|0)+(f[q+64>>2]|0)|0;s=(r|0)/2|0;t=Tc((s+(f[a+76+(h<<2)>>2]|0)<<4)+-8|0)|0;if((i|0)>0){v=f[a+484>>2]|0;w=0;do{p[k+(w<<3)>>3]=+p[v+(w<<3)>>3];w=w+1|0}while((w|0)!=(i|0))}if((h|0)>0){w=f[a+484>>2]|0;v=(r|0)/4|0;x=(r|0)>3;y=q+80|0;z=q+84|0;A=0-v|0;B=v+-1|0;C=t+((v<<3)+-8)|0;D=o;E=i;F=0;while(1){G=w+(E<<3)|0;H=D+-1|0;I=v+H|0;if((I|0)>0){J=s+H|0;H=-1;K=-2;L=0;do{K=K+2|0;H=H+2|0;M=t+(K<<3)|0;p[M>>3]=0.0;N=t+(H<<3)|0;p[N>>3]=0.0;if(x){O=L+D|0;P=0;do{Q=P<<1;R=L-P|0;S=(R|0)<(D|0);do if(!((R|0)>-1&S)){if((R|0)<(J|0)&(S^1)){T=f[y>>2]|0;U=R-D|0;V=+p[k+(U<<3)>>3];W=f[z>>2]|0;X=+p[G+(U<<3)>>3];p[M>>3]=+p[M>>3]+(+p[T+(Q<<3)>>3]*V+ +p[W+(Q<<3)>>3]*X);U=Q|1;Y=+p[T+(U<<3)>>3]*V;Z=W+(U<<3)|0;_=X;n=42;break}if((R|0)<0&(R|0)>(A|0)){U=f[y>>2]|0;W=O-P|0;X=+p[k+(W<<3)>>3];T=f[z>>2]|0;V=+p[G+(W<<3)>>3];p[M>>3]=+p[M>>3]+(+p[U+(Q<<3)>>3]*X+ +p[T+(Q<<3)>>3]*V);W=Q|1;Y=+p[U+(W<<3)>>3]*X;Z=T+(W<<3)|0;_=V;n=42}}else{W=f[y>>2]|0;V=+p[k+(R<<3)>>3];T=f[z>>2]|0;X=+p[G+(R<<3)>>3];p[M>>3]=+p[M>>3]+(+p[W+(Q<<3)>>3]*V+ +p[T+(Q<<3)>>3]*X);U=Q|1;Y=+p[W+(U<<3)>>3]*V;Z=T+(U<<3)|0;_=X;n=42}while(0);if((n|0)==42){n=0;p[N>>3]=+p[N>>3]+(Y+ +p[Z>>3]*_)}P=P+1|0}while((P|0)<(v|0))}L=L+1|0}while((L|0)!=(I|0))}if((v|0)<=(B+(D<<1)|0))ed(k|0,C|0,D<<4|0)|0;E=D+E|0;I=F+1|0;if((I|0)==(h|0))break;else{D=f[a+76+(F+2<<2)>>2]|0;F=I}}}Uc(t);break}F=f[a+80>>2]|0;D=f[a+76+(h<<2)>>2]|0;E=D<<1;C=f[a>>2]|0;B=((f[C+68>>2]|0)+(f[C+64>>2]|0)|0)/2|0;v=Tc(D<<4)|0;D=Tc(B+E<<3)|0;z=((B<<1)+E<<3)+-8|0;E=Tc(z)|0;B=Tc(z)|0;if((i|0)>0){z=f[a+484>>2]|0;y=0;do{p[k+(y<<3)>>3]=+p[z+(y<<3)>>3];y=y+1|0}while((y|0)!=(i|0))}a:do if((h|0)>0){y=a+484|0;z=a+4|0;t=a+68|0;A=F;x=i;s=0;w=C;while(1){o=(f[y>>2]|0)+(x<<3)|0;q=(f[w+68>>2]|0)+(f[w+64>>2]|0)|0;r=(q|0)/2|0;I=A<<1;Za(k,A,2,v)|0;L=(q|0)/4|0;$a(v,I,L,D)|0;q=r+I|0;G=f[a>>2]|0;if((f[G+64>>2]|0)!=(f[G+68>>2]|0))break;if((Mb(m,26240)|0)!=0?(Mb(m,26244)|0)!=0:0)$=G;else{G=Sa(q,r)|0;f[z>>2]=G;f[t>>2]=1;$=f[a>>2]|0}kb(a,D,q,f[$+80>>2]|0,r,E);Za(o,A,2,v)|0;$a(v,I,L,D)|0;kb(a,D,q,f[(f[a>>2]|0)+84>>2]|0,r,B);L=q+-1|0;if((A|0)>0){q=1-r|0;I=r+-1|0;do{p[k+(q+I<<3)>>3]=+p[E+(I<<3)>>3]+ +p[B+(I<<3)>>3];I=I+1|0}while((I|0)<(L|0))}L=f[a>>2]|0;do if((f[L+64>>2]|0)==(f[L+68>>2]|0)){if(Mb(m,26240)|0?Mb(m,26244)|0:0)break;Va(f[z>>2]|0);f[t>>2]=0}while(0);L=s+1|0;if((L|0)>=(h|0))break a;I=A+x|0;A=f[a+76+(s+2<<2)>>2]|0;x=I;s=L;w=f[a>>2]|0}Qc(26290,g)|0;sa(-1)}while(0);Uc(v);Uc(E);Uc(B);Uc(D)}else n=49;while(0);do if((n|0)==49){if(Mb(l,26541)|0){Qc(26248,d)|0;sa(-1)}if(!(Mb(a+54|0,26233)|0)){g=f[a+80>>2]|0;$=f[a>>2]|0;Z=$+64|0;m=$+68|0;C=((f[m>>2]|0)+(f[Z>>2]|0)|0)/2|0;F=Tc((C+(f[a+76+(h<<2)>>2]|0)<<4)+-16|0)|0;if((i|0)>0){w=f[a+484>>2]|0;s=0;do{p[k+(s<<3)>>3]=+p[w+(s<<3)>>3];s=s+1|0}while((s|0)!=(i|0))}if((h|0)>0){s=f[a+484>>2]|0;w=$+80|0;D=$+84|0;B=C+-2|0;E=F+((C<<3)+-16)|0;v=2-C|0;x=g;A=i;t=0;while(1){z=s+(A<<3)|0;do if((x|0)>0){y=(f[Z>>2]|0)+(f[m>>2]|0)|0;L=(y|0)/4|0;if((y|0)>3){aa=0;ba=-1;ca=-2}else{Yc(F|0,0,x<<4|0)|0;break}do{ca=ca+2|0;ba=ba+2|0;y=F+(ca<<3)|0;p[y>>3]=0.0;I=F+(ba<<3)|0;p[I>>3]=0.0;q=0;do{r=q<<1;o=aa-q|0;if((o|0)>-1&(o|0)<(x|0)){G=f[w>>2]|0;_=+p[k+(o<<3)>>3];J=f[D>>2]|0;Y=+p[z+(o<<3)>>3];p[y>>3]=+p[y>>3]+(+p[G+(r<<3)>>3]*_+ +p[J+(r<<3)>>3]*Y);o=r|1;p[I>>3]=+p[I>>3]+(+p[G+(o<<3)>>3]*_+ +p[J+(o<<3)>>3]*Y)}q=q+1|0}while((q|0)<(L|0));aa=aa+1|0}while((aa|0)!=(x|0))}while(0);z=x<<1;if((B|0)<(z|0))ed(k|0,E|0,v+z<<3|0)|0;A=x+A|0;z=t+1|0;if((z|0)==(h|0))break;else{x=f[a+76+(t+2<<2)>>2]|0;t=z}}}Uc(F);break}t=a+54|0;if(Mb(t,26240)|0?Mb(t,26244)|0:0){Qc(26248,d)|0;sa(-1)}x=f[(f[a>>2]|0)+56>>2]|0;A=(f[a+76+(h<<2)>>2]<<1)+-1|0;v=Tc(A<<3)|0;E=(A+x<<3)+-8|0;A=Tc(E)|0;B=Tc(E)|0;if((i|0)>0){E=f[a+484>>2]|0;D=0;do{p[k+(D<<3)>>3]=+p[E+(D<<3)>>3];D=D+1|0}while((D|0)!=(i|0))}b:do if((h|0)>0){D=a+4|0;E=a+68|0;F=a+484|0;w=x+-2|0;m=2-x|0;Z=i;s=0;while(1){s=s+1|0;g=a+76+(s<<2)|0;C=f[g>>2]|0;Ya(k,C,2,v)|0;$=f[g>>2]<<1;g=$+-1|0;z=f[a>>2]|0;if((f[z+64>>2]|0)!=(f[z+68>>2]|0))break;if((Mb(t,26240)|0)!=0?(Mb(t,26244)|0)!=0:0)da=z;else{z=Sa(g,x)|0;f[D>>2]=z;f[E>>2]=1;da=f[a>>2]|0}kb(a,v,g,f[da+80>>2]|0,x,A);Ya((f[F>>2]|0)+(Z<<3)|0,C,2,v)|0;kb(a,v,g,f[(f[a>>2]|0)+84>>2]|0,x,B);if((w|0)<($|0)){g=w;do{p[k+(m+g<<3)>>3]=+p[A+(g<<3)>>3]+ +p[B+(g<<3)>>3];g=g+1|0}while((g|0)!=($|0))}Z=C+Z|0;$=f[a>>2]|0;do if((f[$+64>>2]|0)==(f[$+68>>2]|0)){if(Mb(t,26240)|0?Mb(t,26244)|0:0)break;Va(f[D>>2]|0);f[E>>2]=0}while(0);if((s|0)>=(h|0))break b}Qc(26290,e)|0;sa(-1)}while(0);Uc(v);Uc(A);Uc(B)}while(0);e=f[j>>2]|0;if((e|0)<=0){Uc(k);u=c;return}ed(b|0,k|0,e<<3|0)|0;Uc(k);u=c;return}function mb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0,Y=0.0,Z=0.0,_=0;c=u;u=u+16|0;d=c+8|0;e=c;if(Mb(a+8|0,26545)|0){Qc(26393,d)|0;sa(-1)}if(Mb(a+54|0,26233)|0){g=a+54|0;if(Mb(g,26240)|0?Mb(g,26244)|0:0){Qc(26393,d)|0;sa(-1)}d=f[a+20>>2]|0;h=f[a+32>>2]|0;f[a+76+(h<<2)>>2]=d;f[a+76>>2]=d;i=h+1|0;j=X(i,d)|0;f[a+76+(i<<2)>>2]=j;i=a+24|0;f[i>>2]=j;if((h|0)>1){j=1;k=1;while(1){l=k<<1;f[a+76+(j<<2)>>2]=d;j=j+1|0;if((j|0)==(h|0)){m=l;break}else k=l}}else m=1;k=f[(f[a>>2]|0)+52>>2]|0;j=X(k,m<<3)|0;l=Tc(j)|0;n=Tc(j)|0;j=((d|0)%2|0)+d|0;o=Tc((X(k,m)|0)+j<<3)|0;q=((X(m<<1,k)|0)+j<<3)+-1|0;m=Tc(q)|0;r=Tc(q)|0;q=(d|0)>0;if(q){s=0;do{p[a+488+(s<<3)>>3]=+p[b+(s<<3)>>3];s=s+1|0}while((s|0)!=(d|0))}a:do if((h|0)>0){s=a+488|0;t=a+4|0;v=a+68|0;w=(k|0)>0;x=f[i>>2]|0;y=0;z=1;while(1){x=x-d|0;if((y|0)<=0)if(w){A=f[a>>2]|0;B=f[A+72>>2]|0;C=f[A+76>>2]|0;A=0;do{p[l+(A<<3)>>3]=+p[B+(A<<3)>>3];p[n+(A<<3)>>3]=+p[C+(A<<3)>>3];A=A+1|0}while((A|0)!=(k|0));D=k;E=z}else{D=k;E=z}else{A=z<<1;C=X(A,k)|0;B=f[a>>2]|0;Za(f[B+72>>2]|0,f[B+56>>2]|0,A,l)|0;B=f[a>>2]|0;Za(f[B+76>>2]|0,f[B+60>>2]|0,A,n)|0;D=C;E=A}$a(s,d,(D|0)/2|0,o)|0;A=f[a>>2]|0;if((f[A+56>>2]|0)!=(f[A+60>>2]|0))break;if((Mb(g,26240)|0)!=0?(Mb(g,26244)|0)!=0:0)F=D+j|0;else{A=D+j|0;C=Sa(A,D)|0;f[t>>2]=C;f[v>>2]=1;F=A}kb(a,o,F,l,D,m);kb(a,o,F,n,D,r);A=f[a>>2]|0;do if((f[A+56>>2]|0)==(f[A+60>>2]|0)){if(Mb(g,26240)|0?Mb(g,26244)|0:0)break;Va(f[t>>2]|0);f[v>>2]=0}while(0);if(q){A=0;do{C=A+D|0;p[a+488+(A<<3)>>3]=+p[m+(C<<3)>>3];p[a+488+(A+x<<3)>>3]=+p[r+(C<<3)>>3];A=A+1|0}while((A|0)!=(d|0))}y=y+1|0;if((y|0)>=(h|0))break a;else z=E}Qc(26290,e)|0;sa(-1)}while(0);Uc(l);Uc(n);Uc(o);Uc(m);Uc(r);u=c;return}r=f[a+20>>2]|0;m=f[a+32>>2]|0;f[a+76+(m<<2)>>2]=r;f[a+76>>2]=r;o=m+1|0;n=X(o,r)|0;f[a+76+(o<<2)>>2]=n;o=a+24|0;f[o>>2]=n;if((m|0)>1){n=1;do{f[a+76+(n<<2)>>2]=r;n=n+1|0}while((n|0)!=(m|0))}n=r<<3;l=Tc(n)|0;e=Tc(n)|0;n=(r|0)>0;if(n){E=0;do{p[a+488+(E<<3)>>3]=+p[b+(E<<3)>>3];E=E+1|0}while((E|0)!=(r|0))}if((m|0)>0){E=(r|0)%2|0;b=a+488+(r+-1<<3)|0;h=~r;d=f[o>>2]|0;o=0;D=1;do{d=d-r|0;D=D<<((o|0)>0&1);q=f[a>>2]|0;g=X(f[q+56>>2]|0,D)|0;F=(g|0)/2|0;if(n){j=(g|0)>0;k=q+72|0;i=q+76|0;q=0;while(1){z=q+F|0;y=l+(q<<3)|0;p[y>>3]=0.0;x=e+(q<<3)|0;p[x>>3]=0.0;if(j)switch(E|0){case 0:{v=-1;t=0;G=0.0;H=0.0;while(1){s=t;while(1)if((s|0)<(r|0))break;else s=s-r|0;v=v+1|0;w=z-s|0;A=(w|0)<(r|0);do if(!((w|0)>=(F|0)&A)){if((w|0)<(F|0)&(w|0)>-1){I=w;J=(f[k>>2]|0)+(v<<3)|0;K=37;break}if((w|0)<0){I=w+r|0;J=(f[k>>2]|0)+(v<<3)|0;K=37;break}if(A){L=H;M=G}else{I=w-r|0;J=(f[k>>2]|0)+(v<<3)|0;K=37}}else{I=w;J=(f[k>>2]|0)+(v<<3)|0;K=37}while(0);if((K|0)==37){K=0;N=+p[a+488+(I<<3)>>3];O=G+ +p[J>>3]*N;p[y>>3]=O;P=H+N*+p[(f[i>>2]|0)+(v<<3)>>3];p[x>>3]=P;L=P;M=O}t=s+D|0;if((t|0)>=(g|0))break;else{G=M;H=L}}break}case 1:{t=-1;v=0;H=0.0;G=0.0;while(1){w=v;while(1)if((w|0)<(r|0))break;else w=w-r|0;t=t+1|0;s=z-w|0;A=(s|0)<(r|0);do if(!((s|0)>=(F|0)&A)){if((s|0)<(F|0)&(s|0)>-1){O=+p[a+488+(s<<3)>>3];P=G+ +p[(f[k>>2]|0)+(t<<3)>>3]*O;p[y>>3]=P;Q=f[i>>2]|0;R=P;S=O;K=25;break}if((s|0)<0){O=+p[a+488+(s+r<<3)>>3];P=G+ +p[(f[k>>2]|0)+(t<<3)>>3]*O;p[y>>3]=P;Q=f[i>>2]|0;R=P;S=O;K=25;break}if(!A){O=+p[(f[k>>2]|0)+(t<<3)>>3];C=f[i>>2]|0;if((z-t|0)==(r|0)){P=+p[b>>3];N=G+O*P;p[y>>3]=N;Q=C;R=N;S=P;K=25;break}else{P=+p[a+488+(s+h<<3)>>3];N=G+O*P;p[y>>3]=N;Q=C;R=N;S=P;K=25;break}}else{T=H;U=G}}else{P=+p[a+488+(s<<3)>>3];N=G+ +p[(f[k>>2]|0)+(t<<3)>>3]*P;p[y>>3]=N;Q=f[i>>2]|0;R=N;S=P;K=25}while(0);if((K|0)==25){K=0;P=H+S*+p[Q+(t<<3)>>3];p[x>>3]=P;T=P;U=R}v=w+D|0;if((v|0)>=(g|0))break;else{H=T;G=U}}break}default:{v=-1;t=0;G=0.0;H=0.0;while(1){s=t;while(1)if((s|0)<(r|0))break;else s=s-r|0;v=v+1|0;w=z-s|0;do if(!((w|0)>=(F|0)&(w|0)<(r|0))){if((w|0)<(F|0)&(w|0)>-1){V=(f[k>>2]|0)+(v<<3)|0;W=w;K=47;break}if((w|0)<0){V=(f[k>>2]|0)+(v<<3)|0;W=w+r|0;K=47}else{Y=H;Z=G}}else{V=(f[k>>2]|0)+(v<<3)|0;W=w;K=47}while(0);if((K|0)==47){K=0;P=+p[a+488+(W<<3)>>3];N=G+ +p[V>>3]*P;p[y>>3]=N;O=H+ +p[(f[i>>2]|0)+(v<<3)>>3]*P;p[x>>3]=O;Y=O;Z=N}t=s+D|0;if((t|0)>=(g|0))break;else{G=Z;H=Y}}}}q=q+1|0;if((q|0)==(r|0)){_=0;break}}do{p[a+488+(_<<3)>>3]=+p[l+(_<<3)>>3];p[a+488+(_+d<<3)>>3]=+p[e+(_<<3)>>3];_=_+1|0}while((_|0)!=(r|0))}o=o+1|0}while((o|0)!=(m|0))}Uc(l);Uc(e);u=c;return}function nb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;c=u;u=u+16|0;d=c;e=f[a+20>>2]|0;g=f[a+32>>2]|0;h=f[(f[a>>2]|0)+64>>2]|0;i=e<<3;j=Tc(i)|0;k=Tc(i)|0;l=Tc(i)|0;m=Tc(i)|0;n=Tc(i)|0;o=Tc(i)|0;q=Tc(i)|0;r=((e|0)%2|0)+e+h<<3;s=Tc(r)|0;t=Tc(r)|0;r=(h<<1)+e<<3;v=Tc(r)|0;w=Tc(r)|0;r=Tc(i)|0;x=Tc(i)|0;if((g|0)<=0){Uc(j);Uc(k);Uc(l);Uc(m);Uc(q);Uc(s);Uc(t);Uc(v);Uc(w);Uc(r);Uc(x);Uc(n);Uc(o);u=c;return}y=(e|0)>0;z=g+-1|0;A=(h|0)/2|0;B=a+54|0;C=a+4|0;D=a+68|0;E=h+-1|0;F=1-h|0;G=a+484|0;H=0;a:while(1){I=e+(X(e,H)|0)|0;if(y)Yc(b|0,0,i|0)|0;if(!H){if(y){J=f[G>>2]|0;ed(j|0,J|0,i|0)|0;ed(k|0,J+(e<<3)|0,i|0)|0}}else if(y)ed(k|0,(f[G>>2]|0)+(I<<3)|0,i|0)|0;I=~~+Cc(1.0,z-H|0);if((I|0)>0){J=0;do{K=(J|0)<(e|0);if(K){L=J;M=0;while(1){p[l+(M<<3)>>3]=+p[j+(L<<3)>>3];p[m+(M<<3)>>3]=+p[k+(L<<3)>>3];N=M+1|0;L=L+I|0;if((L|0)>=(e|0))break;else M=N}if((M|0)>-1){L=(M>>>1)+1|0;O=0;P=0;while(1){p[n+(P<<3)>>3]=+p[l+(O<<3)>>3];p[o+(P<<3)>>3]=+p[m+(O<<3)>>3];P=P+1|0;if((P|0)==(L|0)){Q=N;R=L;break}else O=O+2|0}}else{Q=N;R=0}}else{Q=0;R=0}Za(n,R,2,q)|0;O=R<<1;$a(q,O,A,s)|0;Za(o,R,2,q)|0;$a(q,O,A,t)|0;L=O+h|0;O=f[a>>2]|0;do if((f[O+64>>2]|0)==(f[O+68>>2]|0)){if(Mb(B,26240)|0?Mb(B,26244)|0:0){S=22;break}P=Sa(L,h)|0;f[C>>2]=P;f[D>>2]=1;T=f[a>>2]|0}else S=22;while(0);if((S|0)==22){S=0;if((f[O+56>>2]|0)==(f[O+60>>2]|0))T=O;else{S=23;break a}}kb(a,s,L,f[T+80>>2]|0,h,v);kb(a,t,L,f[(f[a>>2]|0)+84>>2]|0,h,w);P=L+-1|0;if((R|0)>0){M=E;do{p[r+(F+M<<3)>>3]=+p[v+(M<<3)>>3]+ +p[w+(M<<3)>>3];M=M+1|0}while((M|0)<(P|0))}if((Q|0)>1){P=((Q+-2|0)>>>1)+1|0;M=1;L=0;while(1){p[n+(L<<3)>>3]=+p[l+(M<<3)>>3];p[o+(L<<3)>>3]=+p[m+(M<<3)>>3];L=L+1|0;if((L|0)==(P|0)){U=P;break}else M=M+2|0}}else U=0;Za(n,U,2,q)|0;M=U<<1;$a(q,M,A,s)|0;Za(o,U,2,q)|0;$a(q,M,A,t)|0;P=M+h|0;kb(a,s,P,f[(f[a>>2]|0)+80>>2]|0,h,v);kb(a,t,P,f[(f[a>>2]|0)+84>>2]|0,h,w);L=P+-1|0;if((U|0)>0){P=E;do{p[x+(F+P<<3)>>3]=+p[v+(P<<3)>>3]+ +p[w+(P<<3)>>3];P=P+1|0}while((P|0)<(L|0))}bb(x,M,-1);if(K){L=0;P=J;while(1){p[b+(P<<3)>>3]=(+p[r+(L<<3)>>3]+ +p[x+(L<<3)>>3])*.5;P=P+I|0;if((P|0)>=(e|0))break;else L=L+1|0}}J=J+1|0}while((J|0)<(I|0))}if(y)ed(j|0,b|0,i|0)|0;H=H+1|0;if((H|0)>=(g|0)){S=35;break}}if((S|0)==23){Qc(26290,d)|0;sa(-1)}else if((S|0)==35){Uc(j);Uc(k);Uc(l);Uc(m);Uc(q);Uc(s);Uc(t);Uc(v);Uc(w);Uc(r);Uc(x);Uc(n);Uc(o);u=c;return}}function ob(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0;c=f[a+20>>2]|0;d=f[a+32>>2]|0;f[a+76+(d<<2)>>2]=c;f[a+76>>2]=c;e=d+1|0;g=X(e,c)|0;f[a+76+(e<<2)>>2]=g;e=a+24|0;f[e>>2]=g;if((d|0)>1){g=1;do{f[a+76+(g<<2)>>2]=c;g=g+1|0}while((g|0)!=(d|0))}g=c<<3;h=Tc(g)|0;i=Tc(g)|0;g=(c|0)>0;if(g){j=0;do{p[a+488+(j<<3)>>3]=+p[b+(j<<3)>>3];j=j+1|0}while((j|0)!=(c|0))}if((d|0)<=0){Uc(h);Uc(i);return}j=f[e>>2]|0;e=0;b=1;do{j=j-c|0;b=b<<((e|0)>0&1);k=f[a>>2]|0;l=f[k+56>>2]|0;m=Tc(l<<4)|0;if((l|0)>0){n=f[k+72>>2]|0;o=f[k+76>>2]|0;k=0;do{p[m+(k<<3)>>3]=+p[n+(k<<3)>>3]/1.4142135623730951;p[m+(k+l<<3)>>3]=+p[o+(k<<3)>>3]/1.4142135623730951;k=k+1|0}while((k|0)!=(l|0))}if(g){q=+p[m>>3];r=+p[m+(l<<3)>>3];if((l|0)>1){k=0;do{s=+p[a+488+(k<<3)>>3];t=q*s;o=h+(k<<3)|0;p[o>>3]=t;u=r*s;n=i+(k<<3)|0;p[n>>3]=u;v=1;w=k;s=t;t=u;while(1){x=w-b|0;while(1)if((x|0)<(c|0)){y=x;break}else x=x-c|0;while(1)if((y|0)<0)y=y+c|0;else break;u=+p[a+488+(y<<3)>>3];s=s+ +p[m+(v<<3)>>3]*u;t=t+ +p[m+(v+l<<3)>>3]*u;v=v+1|0;if((v|0)==(l|0))break;else w=y}p[o>>3]=s;p[n>>3]=t;k=k+1|0}while((k|0)!=(c|0))}else{k=0;do{u=+p[a+488+(k<<3)>>3];p[h+(k<<3)>>3]=q*u;p[i+(k<<3)>>3]=r*u;k=k+1|0}while((k|0)!=(c|0))}Uc(m);if(g){k=0;do{p[a+488+(k<<3)>>3]=+p[h+(k<<3)>>3];p[a+488+(k+j<<3)>>3]=+p[i+(k<<3)>>3];k=k+1|0}while((k|0)!=(c|0))}}else Uc(m);e=e+1|0}while((e|0)!=(d|0));Uc(h);Uc(i);return}function pb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0,w=0.0,x=0,y=0;c=f[a+20>>2]|0;d=f[a+32>>2]|0;e=~~+ha(+(+(d|0)+-1.0));g=c<<3;h=Tc(g)|0;i=(c|0)>0;if(i){j=f[a+484>>2]|0;k=0;do{p[b+(k<<3)>>3]=+p[j+(k<<3)>>3];k=k+1|0}while((k|0)!=(c|0))}if((d|0)<=0){Uc(h);return}k=e;e=c;j=0;while(1){k=(j|0)>0?(k|0)/2|0:k;l=a+488+(e<<3)|0;m=f[a>>2]|0;n=f[m+56>>2]|0;o=Tc(n<<4)|0;if((n|0)>0){q=f[m+72>>2]|0;r=f[m+76>>2]|0;m=0;do{p[o+(m<<3)>>3]=+p[q+(m<<3)>>3]/1.4142135623730951;p[o+(m+n<<3)>>3]=+p[r+(m<<3)>>3]/1.4142135623730951;m=m+1|0}while((m|0)!=(n|0))}if(i){s=+p[o>>3];t=+p[o+(n<<3)>>3];if((n|0)>1){m=0;do{u=s*+p[b+(m<<3)>>3]+t*+p[l+(m<<3)>>3];r=h+(m<<3)|0;p[r>>3]=u;q=1;v=m;w=u;while(1){x=v+k|0;while(1)if((x|0)<(c|0)){y=x;break}else x=x-c|0;while(1)if((y|0)<0)y=y+c|0;else break;w=w+(+p[o+(q<<3)>>3]*+p[b+(y<<3)>>3]+ +p[o+(q+n<<3)>>3]*+p[l+(y<<3)>>3]);q=q+1|0;if((q|0)==(n|0))break;else v=y}p[r>>3]=w;m=m+1|0}while((m|0)!=(c|0))}else{m=0;do{p[h+(m<<3)>>3]=s*+p[b+(m<<3)>>3]+t*+p[l+(m<<3)>>3];m=m+1|0}while((m|0)!=(c|0))}Uc(o);if(i)ed(b|0,h|0,g|0)|0}else Uc(o);j=j+1|0;if((j|0)==(d|0))break;else e=e+c|0}Uc(h);return}function qb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;d=u;u=u+16|0;e=d;if(Mb(c,26541)|0)if(!(Mb(c,26537)|0))f=7497072;else{Qc(26248,e)|0;sa(-1)}else f=7174515;e=a+44|0;b[e>>0]=f;b[e+1>>0]=f>>8;b[e+2>>0]=f>>16;b[e+3>>0]=f>>24;u=d;return}function rb(a){a=a|0;Uc(a);return}function sb(a){a=a|0;Uc(a);return}function tb(a,b,c,d,e,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,q=0.0,r=0.0;j=u;u=u+16|0;k=j;l=gb(d)|0;d=~~(+V(+(+(b|0)/(+(f[l+52>>2]|0)+-1.0)))/.6931471805599453);if((d|0)<(c|0)){f[k>>2]=d;Qc(26439,k)|0;sa(-1)}k=hb(l,e,b,c)|0;qb(k,g);ib(k,a);a=f[k+76>>2]|0;g=f[k+76+(c<<2)>>2]|0;b=Tc(g<<3)|0;if((c|0)>1){e=a;d=1;while(1){m=(f[k+76+(d<<2)>>2]|0)+e|0;d=d+1|0;if((d|0)==(c|0)){n=m;break}else e=m}}else n=a;a=(g|0)>0;if(a){e=f[k+484>>2]|0;c=0;do{p[b+(c<<3)>>3]=+p[e+(c+n<<3)>>3];c=c+1|0}while((c|0)!=(g|0))}oc(b,g,8,1);c=(g&1|0)==0;n=(g|0)/2|0;e=b+(n<<3)|0;o=+p[e>>3];if(c)q=(o+ +p[b+(n+-1<<3)>>3])*.5;else q=o;if(a){a=0;do{d=b+(a<<3)|0;o=+p[d>>3]-q;p[d>>3]=o>0.0?o:-o;a=a+1|0}while((a|0)!=(g|0))}oc(b,g,8,1);q=+p[e>>3];if(c)r=(q+ +p[b+(n+-1<<3)>>3])*.5;else r=q;n=f[k+24>>2]|0;q=r*+L(+(+V(+(+(n|0)))*2.0))/.6745;if(Mb(h,26519)|0){if(!((Mb(h,26524)|0)==0&(n|0)>0)){lb(k,i);Uc(b);rb(l);sb(k);u=j;return}h=f[k+484>>2]|0;c=0;do{e=h+(c<<3)|0;r=+p[e>>3];o=+K(+r);p[e>>3]=o=0.0?1.0:-1.0)*(o-q);c=c+1|0}while((c|0)!=(n|0));lb(k,i);Uc(b);rb(l);sb(k);u=j;return}if((n|0)<=0){lb(k,i);Uc(b);rb(l);sb(k);u=j;return}c=f[k+484>>2]|0;h=0;do{e=c+(h<<3)|0;if(+K(+(+p[e>>3]))>3]=0.0;h=h+1|0}while((h|0)!=(n|0));lb(k,i);Uc(b);rb(l);sb(k);u=j;return}function ub(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+p[a>>3];d=+p[b>>3];return (cd&1)|0}function vb(a,b,c,d,e,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0.0,v=0.0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0;j=u;u=u+16|0;k=j;l=gb(d)|0;d=~~(+V(+(+(b|0)/(+(f[l+52>>2]|0)+-1.0)))/.6931471805599453);if((d|0)<(c|0)){f[k>>2]=d;Qc(26439,k)|0;sa(-1)}k=hb(l,e,b,c)|0;qb(k,g);ib(k,a);a=f[k+76>>2]|0;g=f[k+76+(c<<2)>>2]<<3;b=Tc(g)|0;e=Tc(g)|0;if((c|0)<=0){lb(k,i);Uc(b);Uc(e);rb(l);sb(k);u=j;return}g=k+484|0;d=0;m=a;while(1){d=d+1|0;a=k+76+(d<<2)|0;n=f[a>>2]|0;o=(n|0)>0;if(o){q=f[g>>2]|0;r=0;do{p[b+(r<<3)>>3]=+p[q+(r+m<<3)>>3];r=r+1|0}while((r|0)!=(n|0))}oc(b,n,8,1);r=(n&1|0)==0;q=(n|0)/2|0;s=b+(q<<3)|0;t=+p[s>>3];if(r)v=(t+ +p[b+(q+-1<<3)>>3])*.5;else v=t;if(o){w=0;do{x=b+(w<<3)|0;t=+p[x>>3]-v;p[x>>3]=t>0.0?t:-t;w=w+1|0}while((w|0)!=(n|0))}oc(b,n,8,1);t=+p[s>>3];if(r)y=(t+ +p[b+(q+-1<<3)>>3])*.5;else y=t;if(!(y<1.0e-08)){t=+(n|0);z=+V(+t);A=+L(+(z*2.0));if(o){w=f[g>>2]|0;B=0.0;x=0;while(1){C=+p[w+(x+m<<3)>>3];D=B+C*C;x=x+1|0;if((x|0)==(n|0)){E=D;break}else B=D}}else E=0.0;if((E-t)/t<+M(+(z/.6931471805599453),1.5)/+L(+t))F=A;else{if(o){x=f[g>>2]|0;w=0;do{p[b+(w<<3)>>3]=+p[x+(w+m<<3)>>3];w=w+1|0}while((w|0)!=(n|0));oc(b,n,8,1);if(o){z=0.0;w=0;do{x=b+(w<<3)|0;B=+p[x>>3];D=B*B;p[x>>3]=D;z=z+D;w=w+1|0}while((w|0)!=(n|0));if(o){D=t+1.0;B=t+-1.0;w=0;do{C=+(w|0);p[e+(w<<3)>>3]=(z+(D-(C+1.0)*2.0)+(B-C)*+p[b+(w<<3)>>3])/t;w=w+1|0}while((w|0)!=(n|0));if(o){w=0;t=1797693134862315708145274.0e284;x=0;while(1){B=+p[e+(x<<3)>>3];q=B>3]));F=t>2]|0;x=0;do{q=w+(x+m<<3)|0;if(+K(+(+p[q>>3]))>3]=0.0;x=x+1|0}while((x|0)!=(n|0))}}else if((Mb(h,26524)|0)==0&o){x=f[g>>2]|0;w=0;do{q=x+(w+m<<3)|0;A=+p[q>>3];B=+K(+A);p[q>>3]=B=0.0?1.0:-1.0)*(B-t);w=w+1|0}while((w|0)!=(n|0))}if((d|0)==(c|0))break;else m=(f[a>>2]|0)+m|0}lb(k,i);Uc(b);Uc(e);rb(l);sb(k);u=j;return}function wb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(Mb(b,26529)|0?Mb(b,26533)|0:0){if(Mb(b,26545)|0?Mb(b,26549)|0:0){if(Mb(b,26553)|0?Mb(b,26559)|0:0){f=0;return f|0}f=X(d+1|0,a)|0;return f|0}f=X(d+1|0,a)|0;return f|0}if(!(Mb(e,26537)|0)){if((d|0)>0){b=d;g=a;h=0;while(1){i=~~+W(+(+(g|0)*.5));j=i+h|0;if((b|0)>1){b=b+-1|0;g=i;h=j}else{k=j;l=i;break}}}else{k=0;l=a}f=k+l|0;return f|0}if(Mb(e,26541)|0){f=0;return f|0}if((d|0)>0){e=c+-2|0;c=d;d=a;l=0;while(1){k=~~+W(+(+(e+d|0)*.5));h=k+l|0;if((c|0)>1){c=c+-1|0;d=k;l=h}else{m=h;n=k;break}}}else{m=0;n=a}f=m+n|0;return f|0}function xb(a,b,c,d,e,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0;k=gb(c)|0;c=f[k+52>>2]|0;if((c|0)>0){l=f[k+72>>2]|0;m=f[k+76>>2]|0;n=f[k+80>>2]|0;o=f[k+84>>2]|0;q=c<<1;r=c*3|0;s=0;do{p[j+(s<<3)>>3]=+p[l+(s<<3)>>3];p[j+(c+s<<3)>>3]=+p[m+(s<<3)>>3];p[j+(q+s<<3)>>3]=+p[n+(s<<3)>>3];p[j+(r+s<<3)>>3]=+p[o+(s<<3)>>3];s=s+1|0}while((s|0)<(c|0))}c=hb(k,d,b,e)|0;do if((Mb(d,26529)|0)!=0?(Mb(d,26533)|0)!=0:0){if(Mb(d,26545)|0?Mb(d,26549)|0:0){if(Mb(d,26553)|0?Mb(d,26559)|0:0)break;ob(c,a);break}mb(c,a)}else t=6;while(0);if((t|0)==6){qb(c,g);ib(c,a)}a=c+28|0;if((f[a>>2]|0)>0){g=0;do{f[i+(g<<2)>>2]=f[c+76+(g<<2)>>2];g=g+1|0}while((g|0)<(f[a>>2]|0))}a=f[c+24>>2]|0;if((a|0)<=0){rb(k);sb(c);return}g=f[c+484>>2]|0;i=0;do{p[h+(i<<3)>>3]=+p[g+(i<<3)>>3];i=i+1|0}while((i|0)<(a|0));rb(k);sb(c);return}function yb(a,b,c,d,e,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;l=gb(c)|0;c=hb(l,d,i,e)|0;if((b|0)>0){e=f[c+484>>2]|0;i=0;do{p[e+(i<<3)>>3]=+p[a+(i<<3)>>3];i=i+1|0}while((i|0)!=(b|0))}f[c+28>>2]=k;if((k|0)>0){b=0;do{f[c+76+(b<<2)>>2]=f[j+(b<<2)>>2];b=b+1|0}while((b|0)!=(k|0))}if(Mb(d,26529)|0?Mb(d,26533)|0:0){if(Mb(d,26545)|0?Mb(d,26549)|0:0){if(Mb(d,26553)|0?Mb(d,26559)|0:0){rb(l);sb(c);return}pb(c,h);rb(l);sb(c);return}nb(c,h);rb(l);sb(c);return}qb(c,g);lb(c,h);rb(l);sb(c);return}function zb(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a=a|0;b=+b;c=c|0;d=d|0;e=+e;f=f|0;g=+g;h=+h;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0;if((k|0)==1)q=~~+Cc(1.0,~~(+V(+(+(d|0)))/.6931471805599453+.499999)+1|0);else q=d;k=Tc(X(d<<4,f)|0)|0;if(!(Mb(a,26565)|0))r=0;else{s=(Mb(a,26572)|0)==0;r=s?1:2}if((Mb(i,26577)|0)!=0?(Mb(i,26581)|0)!=0:0){if(Mb(i,26587)|0?Mb(i,26591)|0:0){Rc(26598)|0;sa(-1)}if((f|0)>0){i=0;do{p[m+(i<<3)>>3]=+(i|0)*h+g;i=i+1|0}while((i|0)!=(f|0))}}else t=7;if((t|0)==7?(f|0)>0:0){u=+(j|0);j=0;do{v=+M(+u,+(+(j|0)*h))*g;p[m+(j<<3)>>3]=v;j=j+1|0}while((j|0)!=(f|0))}fb(c,d,e,r,b,g,h,f,q,k,m,n,o);o=X(f,d)|0;if((o|0)>0)w=0;else{Uc(k);return}do{d=w<<1;h=+p[k+(d<<3)>>3];g=+p[k+((d|1)<<3)>>3];b=+L(+(h*h+g*g));p[l+(w<<3)>>3]=b;w=w+1|0}while((w|0)!=(o|0));Uc(k);return}function Ab(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;if(!(Mb(d,26643)|0))tb(a,b,c,e,f,g,h,i);if(Mb(d,26654)|0)return;vb(a,b,c,e,f,g,h,i);return}function Bb(){return 29096}function Cb(a){a=a|0;var b=0,c=0,d=0;b=u;u=u+16|0;c=b;d=Jb(f[a+60>>2]|0)|0;f[c>>2]=d;d=Fb(na(6,c|0)|0)|0;u=b;return d|0}function Db(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;d=u;u=u+48|0;e=d+16|0;g=d;h=d+32|0;i=a+28|0;j=f[i>>2]|0;f[h>>2]=j;k=a+20|0;l=(f[k>>2]|0)-j|0;f[h+4>>2]=l;f[h+8>>2]=b;f[h+12>>2]=c;b=l+c|0;l=a+60|0;f[g>>2]=f[l>>2];f[g+4>>2]=h;f[g+8>>2]=2;j=Fb(ua(146,g|0)|0)|0;a:do if((b|0)!=(j|0)){g=2;m=b;n=h;o=j;while(1){if((o|0)<0)break;m=m-o|0;p=f[n+4>>2]|0;q=o>>>0>p>>>0;r=q?n+8|0:n;s=(q<<31>>31)+g|0;t=o-(q?p:0)|0;f[r>>2]=(f[r>>2]|0)+t;p=r+4|0;f[p>>2]=(f[p>>2]|0)-t;f[e>>2]=f[l>>2];f[e+4>>2]=r;f[e+8>>2]=s;o=Fb(ua(146,e|0)|0)|0;if((m|0)==(o|0)){v=3;break a}else{g=s;n=r}}f[a+16>>2]=0;f[i>>2]=0;f[k>>2]=0;f[a>>2]=f[a>>2]|32;if((g|0)==2)w=0;else w=c-(f[n+4>>2]|0)|0}else v=3;while(0);if((v|0)==3){v=f[a+44>>2]|0;f[a+16>>2]=v+(f[a+48>>2]|0);f[i>>2]=v;f[k>>2]=v;w=c}u=d;return w|0}function Eb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=u;u=u+32|0;e=d;g=d+20|0;f[e>>2]=f[a+60>>2];f[e+4>>2]=0;f[e+8>>2]=b;f[e+12>>2]=g;f[e+16>>2]=c;if((Fb(oa(140,e|0)|0)|0)<0){f[g>>2]=-1;h=-1}else h=f[g>>2]|0;u=d;return h|0}function Fb(a){a=a|0;var b=0,c=0;if(a>>>0>4294963200){b=Gb()|0;f[b>>2]=0-a;c=-1}else c=a;return c|0}function Gb(){return (Hb()|0)+64|0}function Hb(){return Ib()|0}function Ib(){return 24912}function Jb(a){a=a|0;return a|0}function Kb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+32|0;g=e;f[a+36>>2]=3;if((f[a>>2]&64|0)==0?(f[g>>2]=f[a+60>>2],f[g+4>>2]=21523,f[g+8>>2]=e+16,qa(54,g|0)|0):0)b[a+75>>0]=-1;g=Db(a,c,d)|0;u=e;return g|0}function Lb(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Mb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=b[a>>0]|0;e=b[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=a;do{c=c+1|0;d=d+1|0;a=b[c>>0]|0;e=b[d>>0]|0}while(!(a<<24>>24==0?1:a<<24>>24!=e<<24>>24));f=e;g=a}return (g&255)-(f&255)|0}function Nb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:do if(!d)e=0;else{f=a;g=d;h=c;while(1){i=b[f>>0]|0;j=b[h>>0]|0;if(i<<24>>24!=j<<24>>24)break;g=g+-1|0;if(!g){e=0;break a}else{f=f+1|0;h=h+1|0}}e=(i&255)-(j&255)|0}while(0);return e|0}function Ob(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=u;u=u+224|0;g=e+120|0;h=e+80|0;i=e;j=e+136|0;k=h;l=k+40|0;do{f[k>>2]=0;k=k+4|0}while((k|0)<(l|0));f[g>>2]=f[d>>2];if((Pb(0,c,g,i,h)|0)<0)m=-1;else{if((f[a+76>>2]|0)>-1)n=Qb(a)|0;else n=0;d=f[a>>2]|0;k=d&32;if((b[a+74>>0]|0)<1)f[a>>2]=d&-33;d=a+48|0;if(!(f[d>>2]|0)){l=a+44|0;o=f[l>>2]|0;f[l>>2]=j;p=a+28|0;f[p>>2]=j;q=a+20|0;f[q>>2]=j;f[d>>2]=80;r=a+16|0;f[r>>2]=j+80;j=Pb(a,c,g,i,h)|0;if(!o)s=j;else{ya[f[a+36>>2]&3](a,0,0)|0;t=(f[q>>2]|0)==0?-1:j;f[l>>2]=o;f[d>>2]=0;f[r>>2]=0;f[p>>2]=0;f[q>>2]=0;s=t}}else s=Pb(a,c,g,i,h)|0;h=f[a>>2]|0;f[a>>2]=h|k;if(n|0)Rb(a);m=(h&32|0)==0?s:-1}u=e;return m|0}function Pb(a,c,e,g,h){a=a|0;c=c|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;i=u;u=u+64|0;j=i+16|0;k=i;l=i+24|0;m=i+8|0;n=i+20|0;f[j>>2]=c;o=(a|0)!=0;q=l+40|0;r=q;s=l+39|0;l=m+4|0;t=0;v=0;w=0;x=c;a:while(1){do if((v|0)>-1)if((t|0)>(2147483647-v|0)){c=Gb()|0;f[c>>2]=75;y=-1;break}else{y=t+v|0;break}else y=v;while(0);c=b[x>>0]|0;if(!(c<<24>>24)){z=87;break}else{A=c;B=x}b:while(1){switch(A<<24>>24){case 37:{C=B;D=B;z=9;break b;break}case 0:{E=B;F=B;break b;break}default:{}}c=B+1|0;f[j>>2]=c;A=b[c>>0]|0;B=c}c:do if((z|0)==9)while(1){z=0;if((b[D+1>>0]|0)!=37){E=C;F=D;break c}c=C+1|0;G=D+2|0;f[j>>2]=G;if((b[G>>0]|0)==37){C=c;D=G;z=9}else{E=c;F=G;break}}while(0);G=E-x|0;if(o)Sb(a,x,G);if(G|0){t=G;v=y;x=F;continue}G=F+1|0;c=(b[G>>0]|0)+-48|0;if(c>>>0<10){H=(b[F+2>>0]|0)==36;J=H?c:-1;K=H?1:w;L=H?F+3|0:G}else{J=-1;K=w;L=G}f[j>>2]=L;G=b[L>>0]|0;H=(G<<24>>24)+-32|0;d:do if(H>>>0<32){c=0;M=G;N=H;O=L;while(1){P=1<>2]=P;U=b[P>>0]|0;N=(U<<24>>24)+-32|0;if(N>>>0>=32){Q=T;R=U;S=P;break}else{c=T;M=U;O=P}}}else{Q=0;R=G;S=L}while(0);if(R<<24>>24==42){G=S+1|0;H=(b[G>>0]|0)+-48|0;if(H>>>0<10?(b[S+2>>0]|0)==36:0){f[h+(H<<2)>>2]=10;V=f[g+((b[G>>0]|0)+-48<<3)>>2]|0;W=1;X=S+3|0}else{if(K|0){Y=-1;break}if(o){H=(f[e>>2]|0)+(4-1)&~(4-1);O=f[H>>2]|0;f[e>>2]=H+4;V=O;W=0;X=G}else{V=0;W=0;X=G}}f[j>>2]=X;G=(V|0)<0;Z=G?0-V|0:V;_=G?Q|8192:Q;$=W;aa=X}else{G=Tb(j)|0;if((G|0)<0){Y=-1;break}Z=G;_=Q;$=K;aa=f[j>>2]|0}do if((b[aa>>0]|0)==46){if((b[aa+1>>0]|0)!=42){f[j>>2]=aa+1;G=Tb(j)|0;ba=G;ca=f[j>>2]|0;break}G=aa+2|0;O=(b[G>>0]|0)+-48|0;if(O>>>0<10?(b[aa+3>>0]|0)==36:0){f[h+(O<<2)>>2]=10;O=f[g+((b[G>>0]|0)+-48<<3)>>2]|0;H=aa+4|0;f[j>>2]=H;ba=O;ca=H;break}if($|0){Y=-1;break a}if(o){H=(f[e>>2]|0)+(4-1)&~(4-1);O=f[H>>2]|0;f[e>>2]=H+4;da=O}else da=0;f[j>>2]=G;ba=da;ca=G}else{ba=-1;ca=aa}while(0);G=0;O=ca;while(1){if(((b[O>>0]|0)+-65|0)>>>0>57){Y=-1;break a}ea=O+1|0;f[j>>2]=ea;fa=b[(b[O>>0]|0)+-65+(26665+(G*58|0))>>0]|0;ga=fa&255;if((ga+-1|0)>>>0<8){G=ga;O=ea}else break}if(!(fa<<24>>24)){Y=-1;break}H=(J|0)>-1;do if(fa<<24>>24==19)if(H){Y=-1;break a}else z=49;else{if(H){f[h+(J<<2)>>2]=ga;M=g+(J<<3)|0;c=f[M+4>>2]|0;N=k;f[N>>2]=f[M>>2];f[N+4>>2]=c;z=49;break}if(!o){Y=0;break a}Ub(k,ga,e)}while(0);if((z|0)==49?(z=0,!o):0){t=0;v=y;w=$;x=ea;continue}H=b[O>>0]|0;c=(G|0)!=0&(H&15|0)==3?H&-33:H;H=_&-65537;N=(_&8192|0)==0?_:H;e:do switch(c|0){case 110:{switch((G&255)<<24>>24){case 0:{f[f[k>>2]>>2]=y;t=0;v=y;w=$;x=ea;continue a;break}case 1:{f[f[k>>2]>>2]=y;t=0;v=y;w=$;x=ea;continue a;break}case 2:{M=f[k>>2]|0;f[M>>2]=y;f[M+4>>2]=((y|0)<0)<<31>>31;t=0;v=y;w=$;x=ea;continue a;break}case 3:{d[f[k>>2]>>1]=y;t=0;v=y;w=$;x=ea;continue a;break}case 4:{b[f[k>>2]>>0]=y;t=0;v=y;w=$;x=ea;continue a;break}case 6:{f[f[k>>2]>>2]=y;t=0;v=y;w=$;x=ea;continue a;break}case 7:{M=f[k>>2]|0;f[M>>2]=y;f[M+4>>2]=((y|0)<0)<<31>>31;t=0;v=y;w=$;x=ea;continue a;break}default:{t=0;v=y;w=$;x=ea;continue a}}break}case 112:{ha=120;ia=ba>>>0>8?ba:8;ja=N|8;z=61;break}case 88:case 120:{ha=c;ia=ba;ja=N;z=61;break}case 111:{M=k;P=f[M>>2]|0;U=f[M+4>>2]|0;M=Wb(P,U,q)|0;T=r-M|0;ka=M;la=0;ma=27129;na=(N&8|0)==0|(ba|0)>(T|0)?ba:T+1|0;oa=N;pa=P;qa=U;z=67;break}case 105:case 100:{U=k;P=f[U>>2]|0;T=f[U+4>>2]|0;if((T|0)<0){U=Wc(0,0,P|0,T|0)|0;M=I;ra=k;f[ra>>2]=U;f[ra+4>>2]=M;sa=1;ta=27129;ua=U;va=M;z=66;break e}else{sa=(N&2049|0)!=0&1;ta=(N&2048|0)==0?((N&1|0)==0?27129:27131):27130;ua=P;va=T;z=66;break e}break}case 117:{T=k;sa=0;ta=27129;ua=f[T>>2]|0;va=f[T+4>>2]|0;z=66;break}case 99:{b[s>>0]=f[k>>2];wa=s;xa=0;ya=27129;za=q;Aa=1;Ba=H;break}case 109:{T=Gb()|0;Ca=Yb(f[T>>2]|0)|0;z=71;break}case 115:{T=f[k>>2]|0;Ca=T|0?T:27139;z=71;break}case 67:{f[m>>2]=f[k>>2];f[l>>2]=0;f[k>>2]=m;Da=-1;Ea=m;z=75;break}case 83:{T=f[k>>2]|0;if(!ba){_b(a,32,Z,0,N);Fa=0;z=84}else{Da=ba;Ea=T;z=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{t=ac(a,+p[k>>3],Z,ba,N,c)|0;v=y;w=$;x=ea;continue a;break}default:{wa=x;xa=0;ya=27129;za=q;Aa=ba;Ba=N}}while(0);f:do if((z|0)==61){z=0;c=k;G=f[c>>2]|0;O=f[c+4>>2]|0;c=Vb(G,O,q,ha&32)|0;T=(ja&8|0)==0|(G|0)==0&(O|0)==0;ka=c;la=T?0:2;ma=T?27129:27129+(ha>>4)|0;na=ia;oa=ja;pa=G;qa=O;z=67}else if((z|0)==66){z=0;ka=Xb(ua,va,q)|0;la=sa;ma=ta;na=ba;oa=N;pa=ua;qa=va;z=67}else if((z|0)==71){z=0;O=Zb(Ca,0,ba)|0;G=(O|0)==0;wa=Ca;xa=0;ya=27129;za=G?Ca+ba|0:O;Aa=G?ba:O-Ca|0;Ba=H}else if((z|0)==75){z=0;O=Ea;G=0;T=0;while(1){c=f[O>>2]|0;if(!c){Ga=G;Ha=T;break}P=$b(n,c)|0;if((P|0)<0|P>>>0>(Da-G|0)>>>0){Ga=G;Ha=P;break}c=P+G|0;if(Da>>>0>c>>>0){O=O+4|0;G=c;T=P}else{Ga=c;Ha=P;break}}if((Ha|0)<0){Y=-1;break a}_b(a,32,Z,Ga,N);if(!Ga){Fa=0;z=84}else{T=Ea;G=0;while(1){O=f[T>>2]|0;if(!O){Fa=Ga;z=84;break f}P=$b(n,O)|0;G=P+G|0;if((G|0)>(Ga|0)){Fa=Ga;z=84;break f}Sb(a,n,P);if(G>>>0>=Ga>>>0){Fa=Ga;z=84;break}else T=T+4|0}}}while(0);if((z|0)==67){z=0;H=(pa|0)!=0|(qa|0)!=0;T=(na|0)!=0|H;G=((H^1)&1)+(r-ka)|0;wa=T?ka:q;xa=la;ya=ma;za=q;Aa=T?((na|0)>(G|0)?na:G):na;Ba=(na|0)>-1?oa&-65537:oa}else if((z|0)==84){z=0;_b(a,32,Z,Fa,N^8192);t=(Z|0)>(Fa|0)?Z:Fa;v=y;w=$;x=ea;continue}G=za-wa|0;T=(Aa|0)<(G|0)?G:Aa;H=T+xa|0;P=(Z|0)<(H|0)?H:Z;_b(a,32,P,H,Ba);Sb(a,ya,xa);_b(a,48,P,H,Ba^65536);_b(a,48,T,G,0);Sb(a,wa,G);_b(a,32,P,H,Ba^8192);t=P;v=y;w=$;x=ea}g:do if((z|0)==87)if(!a)if(!w)Y=0;else{ea=1;while(1){x=f[h+(ea<<2)>>2]|0;if(!x){Ia=ea;break}Ub(g+(ea<<3)|0,x,e);ea=ea+1|0;if((ea|0)>=10){Y=1;break g}}while(1){if(f[h+(Ia<<2)>>2]|0){Y=-1;break g}Ia=Ia+1|0;if((Ia|0)>=10){Y=1;break}}}else Y=y;while(0);u=i;return Y|0}function Qb(a){a=a|0;return 0}function Rb(a){a=a|0;return}function Sb(a,b,c){a=a|0;b=b|0;c=c|0;if(!(f[a>>2]&32))mc(b,c,a)|0;return}function Tb(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;c=f[a>>2]|0;d=(b[c>>0]|0)+-48|0;if(d>>>0<10){e=0;g=c;c=d;while(1){d=c+(e*10|0)|0;g=g+1|0;f[a>>2]=g;c=(b[g>>0]|0)+-48|0;if(c>>>0>=10){h=d;break}else e=d}}else h=0;return h|0}function Ub(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{d=(f[c>>2]|0)+(4-1)&~(4-1);e=f[d>>2]|0;f[c>>2]=d+4;f[a>>2]=e;break a;break}case 10:{e=(f[c>>2]|0)+(4-1)&~(4-1);d=f[e>>2]|0;f[c>>2]=e+4;e=a;f[e>>2]=d;f[e+4>>2]=((d|0)<0)<<31>>31;break a;break}case 11:{d=(f[c>>2]|0)+(4-1)&~(4-1);e=f[d>>2]|0;f[c>>2]=d+4;d=a;f[d>>2]=e;f[d+4>>2]=0;break a;break}case 12:{d=(f[c>>2]|0)+(8-1)&~(8-1);e=d;g=f[e>>2]|0;h=f[e+4>>2]|0;f[c>>2]=d+8;d=a;f[d>>2]=g;f[d+4>>2]=h;break a;break}case 13:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=(d&65535)<<16>>16;d=a;f[d>>2]=h;f[d+4>>2]=((h|0)<0)<<31>>31;break a;break}case 14:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=a;f[h>>2]=d&65535;f[h+4>>2]=0;break a;break}case 15:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=(d&255)<<24>>24;d=a;f[d>>2]=h;f[d+4>>2]=((h|0)<0)<<31>>31;break a;break}case 16:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=a;f[h>>2]=d&255;f[h+4>>2]=0;break a;break}case 17:{h=(f[c>>2]|0)+(8-1)&~(8-1);i=+p[h>>3];f[c>>2]=h+8;p[a>>3]=i;break a;break}case 18:{h=(f[c>>2]|0)+(8-1)&~(8-1);i=+p[h>>3];f[c>>2]=h+8;p[a>>3]=i;break a;break}default:break a}while(0);while(0);return}function Vb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;if((a|0)==0&(c|0)==0)f=d;else{g=d;d=c;c=a;while(1){a=g+-1|0;b[a>>0]=h[27181+(c&15)>>0]|0|e;c=Zc(c|0,d|0,4)|0;d=I;if((c|0)==0&(d|0)==0){f=a;break}else g=a}}return f|0}function Wb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;if((a|0)==0&(c|0)==0)e=d;else{f=d;d=c;c=a;while(1){a=f+-1|0;b[a>>0]=c&7|48;c=Zc(c|0,d|0,3)|0;d=I;if((c|0)==0&(d|0)==0){e=a;break}else f=a}}return e|0}function Xb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(c>>>0>0|(c|0)==0&a>>>0>4294967295){e=d;f=a;g=c;while(1){c=dd(f|0,g|0,10,0)|0;e=e+-1|0;b[e>>0]=c&255|48;c=f;f=bd(f|0,g|0,10,0)|0;if(!(g>>>0>9|(g|0)==9&c>>>0>4294967295))break;else g=I}h=f;i=e}else{h=a;i=d}if(!h)j=i;else{d=h;h=i;while(1){i=h+-1|0;b[i>>0]=(d>>>0)%10|0|48;if(d>>>0<10){j=i;break}else{d=(d>>>0)/10|0;h=i}}}return j|0}function Yb(a){a=a|0;var b=0;b=(gc()|0)+188|0;return hc(a,f[b>>2]|0)|0}function Zb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=c&255;g=(d|0)!=0;a:do if(g&(a&3|0)!=0){h=c&255;i=a;j=d;while(1){if((b[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=i+1|0;o=j+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=n;j=o}else{q=n;r=o;s=p;m=5;break}}}else{q=a;r=d;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else{t=q;u=0}b:do if((m|0)==6){q=c&255;if((b[k>>0]|0)==q<<24>>24){t=k;u=l}else{r=X(e,16843009)|0;c:do if(l>>>0>3){s=k;g=l;while(1){d=f[s>>2]^r;if((d&-2139062144^-2139062144)&d+-16843009|0)break;d=s+4|0;a=g+-4|0;if(a>>>0>3){s=d;g=a}else{v=d;w=a;m=11;break c}}x=s;y=g}else{v=k;w=l;m=11}while(0);if((m|0)==11)if(!w){t=v;u=0;break}else{x=v;y=w}while(1){if((b[x>>0]|0)==q<<24>>24){t=x;u=y;break b}r=x+1|0;y=y+-1|0;if(!y){t=r;u=0;break}else x=r}}}while(0);return (u|0?t:0)|0}function _b(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=u;u=u+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;Yc(g|0,b|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{Sb(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;Sb(a,g,h)}u=f;return}function $b(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=ec(a,b,0)|0;return c|0}function ac(a,c,d,e,g,i){a=a|0;c=+c;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0.0,E=0,F=0,G=0,H=0.0,J=0,K=0,L=0,M=0,N=0.0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0.0,fa=0.0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0;j=u;u=u+560|0;k=j+8|0;l=j;m=j+524|0;n=m;o=j+512|0;f[l>>2]=0;p=o+12|0;bc(c)|0;if((I|0)<0){q=-c;r=1;s=27146}else{q=c;r=(g&2049|0)!=0&1;s=(g&2048|0)==0?((g&1|0)==0?27147:27152):27149}bc(q)|0;t=I&2146435072;do if(t>>>0<2146435072|(t|0)==2146435072&0<0){c=+cc(q,l)*2.0;v=c!=0.0;if(v)f[l>>2]=(f[l>>2]|0)+-1;w=i|32;if((w|0)==97){x=i&32;y=(x|0)==0?s:s+9|0;z=r|2;A=12-e|0;do if(!(e>>>0>11|(A|0)==0)){B=8.0;C=A;do{C=C+-1|0;B=B*16.0}while((C|0)!=0);if((b[y>>0]|0)==45){D=-(B+(-c-B));break}else{D=c+B-B;break}}else D=c;while(0);A=f[l>>2]|0;C=(A|0)<0?0-A|0:A;E=Xb(C,((C|0)<0)<<31>>31,p)|0;if((E|0)==(p|0)){C=o+11|0;b[C>>0]=48;F=C}else F=E;b[F+-1>>0]=(A>>31&2)+43;A=F+-2|0;b[A>>0]=i+15;E=(e|0)<1;C=(g&8|0)==0;G=m;H=D;while(1){J=~~H;K=G+1|0;b[G>>0]=h[27181+J>>0]|x;H=(H-+(J|0))*16.0;if((K-n|0)==1?!(C&(E&H==0.0)):0){b[K>>0]=46;L=G+2|0}else L=K;if(!(H!=0.0))break;else G=L}G=L-n|0;E=p-A|0;C=(e|0)!=0&(G+-2|0)<(e|0)?e+2|0:G;x=E+z+C|0;_b(a,32,d,x,g);Sb(a,y,z);_b(a,48,d,x,g^65536);Sb(a,m,G);_b(a,48,C-G|0,0,0);Sb(a,A,E);_b(a,32,d,x,g^8192);M=x;break}x=(e|0)<0?6:e;if(v){E=(f[l>>2]|0)+-28|0;f[l>>2]=E;N=c*268435456.0;O=E}else{N=c;O=f[l>>2]|0}E=(O|0)<0?k:k+288|0;G=E;H=N;do{C=~~H>>>0;f[G>>2]=C;G=G+4|0;H=(H-+(C>>>0))*1.0e9}while(H!=0.0);if((O|0)>0){v=E;A=G;z=O;while(1){y=(z|0)<29?z:29;C=A+-4|0;if(C>>>0>=v>>>0){K=C;C=0;do{J=_c(f[K>>2]|0,0,y|0)|0;P=Xc(J|0,I|0,C|0,0)|0;J=I;Q=dd(P|0,J|0,1e9,0)|0;f[K>>2]=Q;C=bd(P|0,J|0,1e9,0)|0;K=K+-4|0}while(K>>>0>=v>>>0);if(C){K=v+-4|0;f[K>>2]=C;R=K}else R=v}else R=v;K=A;while(1){if(K>>>0<=R>>>0)break;J=K+-4|0;if(!(f[J>>2]|0))K=J;else break}C=(f[l>>2]|0)-y|0;f[l>>2]=C;if((C|0)>0){v=R;A=K;z=C}else{S=R;T=K;U=C;break}}}else{S=E;T=G;U=O}if((U|0)<0){z=((x+25|0)/9|0)+1|0;A=(w|0)==102;v=S;C=T;J=U;while(1){P=0-J|0;Q=(P|0)<9?P:9;if(v>>>0>>0){P=(1<>>Q;W=0;Y=v;do{Z=f[Y>>2]|0;f[Y>>2]=(Z>>>Q)+W;W=X(Z&P,V)|0;Y=Y+4|0}while(Y>>>0>>0);Y=(f[v>>2]|0)==0?v+4|0:v;if(!W){_=Y;$=C}else{f[C>>2]=W;_=Y;$=C+4|0}}else{_=(f[v>>2]|0)==0?v+4|0:v;$=C}Y=A?E:_;V=($-Y>>2|0)>(z|0)?Y+(z<<2)|0:$;J=(f[l>>2]|0)+Q|0;f[l>>2]=J;if((J|0)>=0){aa=_;ba=V;break}else{v=_;C=V}}}else{aa=S;ba=T}C=E;if(aa>>>0>>0){v=(C-aa>>2)*9|0;J=f[aa>>2]|0;if(J>>>0<10)ca=v;else{z=v;v=10;while(1){v=v*10|0;A=z+1|0;if(J>>>0>>0){ca=A;break}else z=A}}}else ca=0;z=(w|0)==103;v=(x|0)!=0;J=x-((w|0)!=102?ca:0)+((v&z)<<31>>31)|0;if((J|0)<(((ba-C>>2)*9|0)+-9|0)){A=J+9216|0;J=E+4+(((A|0)/9|0)+-1024<<2)|0;G=((A|0)%9|0)+1|0;if((G|0)<9){A=G;G=10;while(1){V=G*10|0;A=A+1|0;if((A|0)==9){da=V;break}else G=V}}else da=10;G=f[J>>2]|0;A=(G>>>0)%(da>>>0)|0;w=(J+4|0)==(ba|0);if(!(w&(A|0)==0)){B=(((G>>>0)/(da>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;V=(da|0)/2|0;H=A>>>0>>0?.5:w&(A|0)==(V|0)?1.0:1.5;if(!r){ea=H;fa=B}else{V=(b[s>>0]|0)==45;ea=V?-H:H;fa=V?-B:B}V=G-A|0;f[J>>2]=V;if(fa+ea!=fa){A=V+da|0;f[J>>2]=A;if(A>>>0>999999999){A=aa;V=J;while(1){G=V+-4|0;f[V>>2]=0;if(G>>>0>>0){w=A+-4|0;f[w>>2]=0;ga=w}else ga=A;w=(f[G>>2]|0)+1|0;f[G>>2]=w;if(w>>>0>999999999){A=ga;V=G}else{ha=ga;ia=G;break}}}else{ha=aa;ia=J}V=(C-ha>>2)*9|0;A=f[ha>>2]|0;if(A>>>0<10){ja=ia;ka=V;la=ha}else{G=V;V=10;while(1){V=V*10|0;w=G+1|0;if(A>>>0>>0){ja=ia;ka=w;la=ha;break}else G=w}}}else{ja=J;ka=ca;la=aa}}else{ja=J;ka=ca;la=aa}G=ja+4|0;ma=ka;na=ba>>>0>G>>>0?G:ba;oa=la}else{ma=ca;na=ba;oa=aa}G=na;while(1){if(G>>>0<=oa>>>0){pa=0;break}V=G+-4|0;if(!(f[V>>2]|0))G=V;else{pa=1;break}}J=0-ma|0;do if(z){V=((v^1)&1)+x|0;if((V|0)>(ma|0)&(ma|0)>-5){qa=i+-1|0;ra=V+-1-ma|0}else{qa=i+-2|0;ra=V+-1|0}V=g&8;if(!V){if(pa?(A=f[G+-4>>2]|0,(A|0)!=0):0)if(!((A>>>0)%10|0)){w=0;Y=10;while(1){Y=Y*10|0;P=w+1|0;if((A>>>0)%(Y>>>0)|0|0){sa=P;break}else w=P}}else sa=0;else sa=9;w=((G-C>>2)*9|0)+-9|0;if((qa|32|0)==102){Y=w-sa|0;A=(Y|0)>0?Y:0;ta=qa;ua=(ra|0)<(A|0)?ra:A;va=0;break}else{A=w+ma-sa|0;w=(A|0)>0?A:0;ta=qa;ua=(ra|0)<(w|0)?ra:w;va=0;break}}else{ta=qa;ua=ra;va=V}}else{ta=i;ua=x;va=g&8}while(0);x=ua|va;C=(x|0)!=0&1;v=(ta|32|0)==102;if(v){wa=0;xa=(ma|0)>0?ma:0}else{z=(ma|0)<0?J:ma;w=Xb(z,((z|0)<0)<<31>>31,p)|0;z=p;if((z-w|0)<2){A=w;while(1){Y=A+-1|0;b[Y>>0]=48;if((z-Y|0)<2)A=Y;else{ya=Y;break}}}else ya=w;b[ya+-1>>0]=(ma>>31&2)+43;A=ya+-2|0;b[A>>0]=ta;wa=A;xa=z-A|0}A=r+1+ua+C+xa|0;_b(a,32,d,A,g);Sb(a,s,r);_b(a,48,d,A,g^65536);if(v){J=oa>>>0>E>>>0?E:oa;Y=m+9|0;Q=Y;W=m+8|0;P=J;do{K=Xb(f[P>>2]|0,0,Y)|0;if((P|0)==(J|0))if((K|0)==(Y|0)){b[W>>0]=48;za=W}else za=K;else if(K>>>0>m>>>0){Yc(m|0,48,K-n|0)|0;y=K;while(1){Z=y+-1|0;if(Z>>>0>m>>>0)y=Z;else{za=Z;break}}}else za=K;Sb(a,za,Q-za|0);P=P+4|0}while(P>>>0<=E>>>0);if(x|0)Sb(a,27197,1);if(P>>>0>>0&(ua|0)>0){E=ua;Q=P;while(1){W=Xb(f[Q>>2]|0,0,Y)|0;if(W>>>0>m>>>0){Yc(m|0,48,W-n|0)|0;J=W;while(1){v=J+-1|0;if(v>>>0>m>>>0)J=v;else{Aa=v;break}}}else Aa=W;Sb(a,Aa,(E|0)<9?E:9);Q=Q+4|0;J=E+-9|0;if(!(Q>>>0>>0&(E|0)>9)){Ba=J;break}else E=J}}else Ba=ua;_b(a,48,Ba+9|0,9,0)}else{E=pa?G:oa+4|0;if((ua|0)>-1){Q=m+9|0;Y=(va|0)==0;P=Q;x=0-n|0;J=m+8|0;K=ua;v=oa;while(1){C=Xb(f[v>>2]|0,0,Q)|0;if((C|0)==(Q|0)){b[J>>0]=48;Ca=J}else Ca=C;do if((v|0)==(oa|0)){C=Ca+1|0;Sb(a,Ca,1);if(Y&(K|0)<1){Da=C;break}Sb(a,27197,1);Da=C}else{if(Ca>>>0<=m>>>0){Da=Ca;break}Yc(m|0,48,Ca+x|0)|0;C=Ca;while(1){z=C+-1|0;if(z>>>0>m>>>0)C=z;else{Da=z;break}}}while(0);W=P-Da|0;Sb(a,Da,(K|0)>(W|0)?W:K);C=K-W|0;v=v+4|0;if(!(v>>>0>>0&(C|0)>-1)){Ea=C;break}else K=C}}else Ea=ua;_b(a,48,Ea+18|0,18,0);Sb(a,wa,p-wa|0)}_b(a,32,d,A,g^8192);M=A}else{K=(i&32|0)!=0;E=r+3|0;_b(a,32,d,E,g&-65537);Sb(a,s,r);Sb(a,q!=q|0.0!=0.0?(K?27173:27177):K?27165:27169,3);_b(a,32,d,E,g^8192);M=E}while(0);u=j;return ((M|0)<(d|0)?d:M)|0}function bc(a){a=+a;var b=0;p[s>>3]=a;b=f[s>>2]|0;I=f[s+4>>2]|0;return b|0}function cc(a,b){a=+a;b=b|0;return +(+dc(a,b))}function dc(a,b){a=+a;b=b|0;var c=0,d=0,e=0,g=0.0,h=0.0,i=0,j=0.0;p[s>>3]=a;c=f[s>>2]|0;d=f[s+4>>2]|0;e=Zc(c|0,d|0,52)|0;switch(e&2047){case 0:{if(a!=0.0){g=+dc(a*18446744073709551616.0,b);h=g;i=(f[b>>2]|0)+-64|0}else{h=a;i=0}f[b>>2]=i;j=h;break}case 2047:{j=a;break}default:{f[b>>2]=(e&2047)+-1022;f[s>>2]=c;f[s+4>>2]=d&-2146435073|1071644672;j=+p[s>>3]}}return +j}function ec(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;do if(a){if(c>>>0<128){b[a>>0]=c;e=1;break}d=(fc()|0)+188|0;if(!(f[f[d>>2]>>2]|0))if((c&-128|0)==57216){b[a>>0]=c;e=1;break}else{d=Gb()|0;f[d>>2]=84;e=-1;break}if(c>>>0<2048){b[a>>0]=c>>>6|192;b[a+1>>0]=c&63|128;e=2;break}if(c>>>0<55296|(c&-8192|0)==57344){b[a>>0]=c>>>12|224;b[a+1>>0]=c>>>6&63|128;b[a+2>>0]=c&63|128;e=3;break}if((c+-65536|0)>>>0<1048576){b[a>>0]=c>>>18|240;b[a+1>>0]=c>>>12&63|128;b[a+2>>0]=c>>>6&63|128;b[a+3>>0]=c&63|128;e=4;break}else{d=Gb()|0;f[d>>2]=84;e=-1;break}}else e=1;while(0);return e|0}function fc(){return Ib()|0}function gc(){return Ib()|0}function hc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0;d=0;while(1){if((h[27199+d>>0]|0)==(a|0)){e=2;break}g=d+1|0;if((g|0)==87){i=27287;j=87;e=5;break}else d=g}if((e|0)==2)if(!d)k=27287;else{i=27287;j=d;e=5}if((e|0)==5)while(1){e=0;d=i;do{a=d;d=d+1|0}while((b[a>>0]|0)!=0);j=j+-1|0;if(!j){k=d;break}else{i=d;e=5}}return ic(k,f[c+20>>2]|0)|0}function ic(a,b){a=a|0;b=b|0;return jc(a,b)|0}function jc(a,b){a=a|0;b=b|0;var c=0;if(!b)c=0;else c=kc(f[b>>2]|0,f[b+4>>2]|0,a)|0;return (c|0?c:a)|0}function kc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=(f[a>>2]|0)+1794895138|0;g=lc(f[a+8>>2]|0,e)|0;h=lc(f[a+12>>2]|0,e)|0;i=lc(f[a+16>>2]|0,e)|0;a:do if((g>>>0>>2>>>0?(j=c-(g<<2)|0,h>>>0>>0&i>>>0>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=lc(f[a+(q<<2)>>2]|0,e)|0;s=lc(f[a+(q+1<<2)>>2]|0,e)|0;if(!(s>>>0>>0&r>>>0<(c-s|0)>>>0)){t=0;break a}if(b[a+(s+r)>>0]|0){t=0;break a}r=Mb(d,a+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}else{l=s?l:o;m=s?n:m-n|0}}m=p+k|0;l=lc(f[a+(m<<2)>>2]|0,e)|0;j=lc(f[a+(m+1<<2)>>2]|0,e)|0;if(j>>>0>>0&l>>>0<(c-j|0)>>>0)t=(b[a+(j+l)>>0]|0)==0?a+j|0:0;else t=0}else t=0;while(0);return t|0}function lc(a,b){a=a|0;b=b|0;var c=0;c=fd(a|0)|0;return ((b|0)==0?a:c)|0}function mc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=d+16|0;g=f[e>>2]|0;if(!g)if(!(nc(d)|0)){h=f[e>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=d+20|0;e=f[g>>2]|0;k=e;if((h-e|0)>>>0>>0){j=ya[f[d+36>>2]&3](d,a,c)|0;break}b:do if((b[d+75>>0]|0)>-1){e=c;while(1){if(!e){l=0;m=a;n=c;o=k;break b}p=e+-1|0;if((b[a+p>>0]|0)==10)break;else e=p}p=ya[f[d+36>>2]&3](d,a,e)|0;if(p>>>0>>0){j=p;break a}l=e;m=a+e|0;n=c-e|0;o=f[g>>2]|0}else{l=0;m=a;n=c;o=k}while(0);ed(o|0,m|0,n|0)|0;f[g>>2]=(f[g>>2]|0)+n;j=l+n|0}while(0);return j|0}function nc(a){a=a|0;var c=0,d=0,e=0;c=a+74|0;d=b[c>>0]|0;b[c>>0]=d+255|d;d=f[a>>2]|0;if(!(d&8)){f[a+8>>2]=0;f[a+4>>2]=0;c=f[a+44>>2]|0;f[a+28>>2]=c;f[a+20>>2]=c;f[a+16>>2]=c+(f[a+48>>2]|0);e=0}else{f[a>>2]=d|32;e=-1}return e|0}function oc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=u;u=u+208|0;g=e+8|0;h=e;i=X(c,b)|0;b=h;f[b>>2]=1;f[b+4>>2]=0;a:do if(i|0){b=0-c|0;f[g+4>>2]=c;f[g>>2]=c;j=2;k=c;l=c;while(1){m=k+c+l|0;f[g+(j<<2)>>2]=m;if(m>>>0>>0){n=l;j=j+1|0;l=m;k=n}else break}k=a+i+b|0;if(k>>>0>a>>>0){l=k;j=1;n=a;m=1;while(1){do if((m&3|0)!=3){o=j+-1|0;if((f[g+(o<<2)>>2]|0)>>>0<(l-n|0)>>>0)pc(n,c,d,j,g);else rc(n,c,d,h,j,0,g);if((j|0)==1){sc(h,1);p=0;break}else{sc(h,o);p=1;break}}else{pc(n,c,d,j,g);qc(h,2);p=j+2|0}while(0);o=f[h>>2]|1;f[h>>2]=o;q=n+c|0;if(q>>>0>>0){j=p;n=q;m=o}else{r=p;s=q;t=o;break}}}else{r=1;s=a;t=1}rc(s,c,d,h,r,0,g);m=h+4|0;n=s;j=r;k=t;while(1){if((j|0)==1&(k|0)==1){if(!(f[m>>2]|0))break a}else if((j|0)>=2){sc(h,2);l=j+-2|0;f[h>>2]=f[h>>2]^7;qc(h,1);rc(n+(0-(f[g+(l<<2)>>2]|0))+b|0,c,d,h,j+-1|0,1,g);sc(h,1);o=f[h>>2]|1;f[h>>2]=o;q=n+b|0;rc(q,c,d,h,l,1,g);n=q;j=l;k=o;continue}o=tc(h)|0;qc(h,o);n=n+b|0;j=o+j|0;k=f[h>>2]|0}}while(0);u=e;return}function pc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;g=u;u=u+240|0;h=g;f[h>>2]=a;a:do if((d|0)>1){i=0-b|0;j=a;k=d;l=1;m=a;while(1){n=j+i|0;o=k+-2|0;p=n+(0-(f[e+(o<<2)>>2]|0))|0;if((za[c&1](m,p)|0)>-1?(za[c&1](m,n)|0)>-1:0){q=l;break a}r=l+1|0;s=h+(l<<2)|0;if((za[c&1](p,n)|0)>-1){f[s>>2]=p;t=p;v=k+-1|0}else{f[s>>2]=n;t=n;v=o}if((v|0)<=1){q=r;break a}j=t;k=v;l=r;m=f[h>>2]|0}}else q=1;while(0);vc(b,h,q);u=g;return}function qc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=a+4|0;if(b>>>0>31){d=f[c>>2]|0;f[a>>2]=d;f[c>>2]=0;e=b+-32|0;g=0;h=d}else{e=b;g=f[c>>2]|0;h=f[a>>2]|0}f[a>>2]=g<<32-e|h>>>e;f[c>>2]=g>>>e;return}function rc(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;i=u;u=u+240|0;j=i+232|0;k=i;l=f[d>>2]|0;f[j>>2]=l;m=f[d+4>>2]|0;d=j+4|0;f[d>>2]=m;f[k>>2]=a;a:do if((l|0)!=1|(m|0)!=0?(n=0-b|0,o=a+(0-(f[h+(e<<2)>>2]|0))|0,(za[c&1](o,a)|0)>=1):0){p=1;q=e;r=(g|0)==0;s=a;t=o;while(1){if(r&(q|0)>1){o=s+n|0;v=f[h+(q+-2<<2)>>2]|0;if((za[c&1](o,t)|0)>-1){w=p;x=q;y=s;z=10;break a}if((za[c&1](o+(0-v)|0,t)|0)>-1){w=p;x=q;y=s;z=10;break a}}v=p+1|0;f[k+(p<<2)>>2]=t;o=tc(j)|0;qc(j,o);A=o+q|0;if(!((f[j>>2]|0)!=1|(f[d>>2]|0)!=0)){w=v;x=A;y=t;z=10;break a}o=t+(0-(f[h+(A<<2)>>2]|0))|0;if((za[c&1](o,f[k>>2]|0)|0)<1){B=t;C=v;D=A;E=0;z=9;break}else{F=t;p=v;q=A;r=1;t=o;s=F}}}else{B=a;C=1;D=e;E=g;z=9}while(0);if((z|0)==9?(E|0)==0:0){w=C;x=D;y=B;z=10}if((z|0)==10){vc(b,k,w);pc(y,b,c,x,h)}u=i;return}function sc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=a+4|0;if(b>>>0>31){d=f[a>>2]|0;f[c>>2]=d;f[a>>2]=0;e=b+-32|0;g=0;h=d}else{e=b;g=f[a>>2]|0;h=f[c>>2]|0}f[c>>2]=g>>>(32-e|0)|h<>2]=g<>2]|0)+-1|0)|0;if(!b){c=uc(f[a+4>>2]|0)|0;return ((c|0)==0?0:c+32|0)|0}else return b|0;return 0}function uc(a){a=a|0;var b=0,c=0,d=0;if(a)if(!(a&1)){b=a;a=0;while(1){c=a+1|0;b=b>>>1;if(b&1|0){d=c;break}else a=c}}else d=0;else d=32;return d|0}function vc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=u;u=u+256|0;e=d;a:do if((c|0)>=2?(g=b+(c<<2)|0,f[g>>2]=e,a|0):0){h=a;i=e;while(1){j=h>>>0<256?h:256;ed(i|0,f[b>>2]|0,j|0)|0;k=0;do{l=b+(k<<2)|0;k=k+1|0;ed(f[l>>2]|0,f[b+(k<<2)>>2]|0,j|0)|0;f[l>>2]=(f[l>>2]|0)+j}while((k|0)!=(c|0));k=h-j|0;if(!k)break a;h=k;i=f[g>>2]|0}}while(0);u=d;return}function wc(a,b){a=+a;b=b|0;var c=0.0,d=0,e=0,g=0,h=0.0,i=0;if((b|0)<=1023)if((b|0)<-1022){c=a*2.2250738585072014e-308;d=b+1022|0;e=(d|0)<-1022;g=b+2044|0;h=e?c*2.2250738585072014e-308:c;i=e?((g|0)>-1022?g:-1022):d}else{h=a;i=b}else{c=a*8988465674311579538646525.0e283;d=b+-1023|0;g=(d|0)>1023;e=b+-2046|0;h=g?c*8988465674311579538646525.0e283:c;i=g?((e|0)<1023?e:1023):d}d=_c(i+1023|0,0,52)|0;i=I;f[s>>2]=d;f[s+4>>2]=i;return +(h*+p[s>>3])}function xc(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a;a:do if(!(c&3)){d=a;e=4}else{g=a;h=c;while(1){if(!(b[g>>0]|0)){i=h;break a}j=g+1|0;h=j;if(!(h&3)){d=j;e=4;break}else g=j}}while(0);if((e|0)==4){e=d;while(1){k=f[e>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))e=e+4|0;else break}if(!((k&255)<<24>>24))l=e;else{k=e;while(1){e=k+1|0;if(!(b[e>>0]|0)){l=e;break}else k=e}}i=l}return i-c|0}function yc(a,c){a=a|0;c=c|0;var d=0;d=zc(a,c)|0;return ((b[d>>0]|0)==(c&255)<<24>>24?d:0)|0}function zc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=c&255;a:do if(!d)e=a+(xc(a)|0)|0;else{if(!(a&3))g=a;else{h=c&255;i=a;while(1){j=b[i>>0]|0;if(j<<24>>24==0?1:j<<24>>24==h<<24>>24){e=i;break a}j=i+1|0;if(!(j&3)){g=j;break}else i=j}}i=X(d,16843009)|0;h=f[g>>2]|0;b:do if(!((h&-2139062144^-2139062144)&h+-16843009)){j=g;k=h;while(1){l=k^i;if((l&-2139062144^-2139062144)&l+-16843009|0){m=j;break b}l=j+4|0;k=f[l>>2]|0;if((k&-2139062144^-2139062144)&k+-16843009|0){m=l;break}else j=l}}else m=g;while(0);i=c&255;h=m;while(1){j=b[h>>0]|0;if(j<<24>>24==0?1:j<<24>>24==i<<24>>24){e=h;break}else h=h+1|0}}while(0);return e|0}function Ac(a,b){a=a|0;b=b|0;Bc(a,b)|0;return a|0}function Bc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=c;a:do if(!((d^a)&3)){if(!(d&3)){e=c;g=a}else{h=c;i=a;while(1){j=b[h>>0]|0;b[i>>0]=j;if(!(j<<24>>24)){k=i;break a}j=h+1|0;l=i+1|0;if(!(j&3)){e=j;g=l;break}else{h=j;i=l}}}i=f[e>>2]|0;if(!((i&-2139062144^-2139062144)&i+-16843009)){h=g;l=e;j=i;while(1){i=l+4|0;m=h+4|0;f[h>>2]=j;j=f[i>>2]|0;if((j&-2139062144^-2139062144)&j+-16843009|0){n=i;o=m;break}else{h=m;l=i}}}else{n=e;o=g}p=n;q=o;r=8}else{p=c;q=a;r=8}while(0);if((r|0)==8){r=b[p>>0]|0;b[q>>0]=r;if(!(r<<24>>24))k=q;else{r=q;q=p;while(1){q=q+1|0;p=r+1|0;a=b[q>>0]|0;b[p>>0]=a;if(!(a<<24>>24)){k=p;break}else r=p}}}return k|0}function Cc(a,b){a=+a;b=b|0;return +(+wc(a,b))}function Dc(a){a=+a;var b=0,c=0,d=0,e=0.0,g=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,q=0.0,r=0.0,t=0.0;p[s>>3]=a;b=f[s>>2]|0;c=f[s+4>>2]|0;d=(c|0)<0;do if(d|c>>>0<1048576){if((b|0)==0&(c&2147483647|0)==0){e=-1.0/(a*a);break}if(d){e=(a-a)/0.0;break}else{p[s>>3]=a*18014398509481984.0;g=f[s+4>>2]|0;h=-1077;i=g;j=f[s>>2]|0;k=g;l=9;break}}else if(c>>>0<=2146435071)if((b|0)==0&0==0&(c|0)==1072693248)e=0.0;else{h=-1023;i=c;j=b;k=c;l=9}else e=a;while(0);if((l|0)==9){l=i+614242|0;f[s>>2]=j;f[s+4>>2]=(l&1048575)+1072079006;a=+p[s>>3]+-1.0;m=a*(a*.5);n=a/(a+2.0);o=n*n;q=o*o;p[s>>3]=a-m;j=f[s+4>>2]|0;f[s>>2]=0;f[s+4>>2]=j;r=+p[s>>3];t=a-r-m+n*(m+(q*(q*(q*.15313837699209373+.22222198432149784)+.3999999999940942)+o*(q*(q*(q*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));q=r*.4342944818781689;o=+(h+(l>>>20)|0);m=o*.30102999566361177;n=m+q;e=n+(q+(m-n)+(t*.4342944818781689+(o*3.694239077158931e-13+(r+t)*2.5082946711645275e-11)))}return +e}function Ec(a,b){a=a|0;b=b|0;var c=0;c=xc(a)|0;return ((Fc(a,1,c,b)|0)!=(c|0))<<31>>31|0}function Fc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=X(c,b)|0;g=(b|0)==0?0:c;if((f[d+76>>2]|0)>-1){c=(Qb(d)|0)==0;h=mc(a,e,d)|0;if(c)i=h;else{Rb(d);i=h}}else i=mc(a,e,d)|0;if((i|0)==(e|0))j=g;else j=(i>>>0)/(b>>>0)|0;return j|0}function Gc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;d=u;u=u+16|0;e=d;g=c&255;b[e>>0]=g;i=a+16|0;j=f[i>>2]|0;if(!j)if(!(nc(a)|0)){k=f[i>>2]|0;l=4}else m=-1;else{k=j;l=4}do if((l|0)==4){j=a+20|0;i=f[j>>2]|0;if(i>>>0>>0?(n=c&255,(n|0)!=(b[a+75>>0]|0)):0){f[j>>2]=i+1;b[i>>0]=g;m=n;break}if((ya[f[a+36>>2]&3](a,e,1)|0)==1)m=h[e>>0]|0;else m=-1}while(0);u=d;return m|0}function Hc(){ja(29160);return 29168}function Ic(){ra(29160);return}function Jc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;do if(a){if((f[a+76>>2]|0)<=-1){b=Kc(a)|0;break}c=(Qb(a)|0)==0;d=Kc(a)|0;if(c)b=d;else{Rb(a);b=d}}else{if(!(f[6321]|0))e=0;else e=Jc(f[6321]|0)|0;d=Hc()|0;c=f[d>>2]|0;if(!c)g=e;else{d=c;c=e;while(1){if((f[d+76>>2]|0)>-1)h=Qb(d)|0;else h=0;if((f[d+20>>2]|0)>>>0>(f[d+28>>2]|0)>>>0)i=Kc(d)|0|c;else i=c;if(h|0)Rb(d);d=f[d+56>>2]|0;if(!d){g=i;break}else c=i}}Ic();b=g}while(0);return b|0}function Kc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=a+20|0;c=a+28|0;if((f[b>>2]|0)>>>0>(f[c>>2]|0)>>>0?(ya[f[a+36>>2]&3](a,0,0)|0,(f[b>>2]|0)==0):0)d=-1;else{e=a+4|0;g=f[e>>2]|0;h=a+8|0;i=f[h>>2]|0;if(g>>>0>>0)ya[f[a+40>>2]&3](a,g-i|0,1)|0;f[a+16>>2]=0;f[c>>2]=0;f[b>>2]=0;f[h>>2]=0;f[e>>2]=0;d=0}return d|0}function Lc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;d=b[c>>0]|0;do if(d<<24>>24){e=yc(a,d<<24>>24)|0;if(e)if(b[c+1>>0]|0)if(b[e+1>>0]|0){if(!(b[c+2>>0]|0)){f=Mc(e,c)|0;break}if(b[e+2>>0]|0){if(!(b[c+3>>0]|0)){f=Nc(e,c)|0;break}if(b[e+3>>0]|0)if(!(b[c+4>>0]|0)){f=Oc(e,c)|0;break}else{f=Pc(e,c)|0;break}else f=0}else f=0}else f=0;else f=e;else f=0}else f=a;while(0);return f|0}function Mc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=(h[c>>0]|0)<<8|(h[c+1>>0]|0);c=h[a>>0]|0;e=a;while(1){a=e+1|0;f=b[a>>0]|0;if(!(f<<24>>24)){g=0;break}c=f&255|c<<8&65280;if((c|0)==(d|0)){g=e;break}else e=a}return g|0}function Nc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,i=0,j=0;d=(h[c+1>>0]|0)<<16|(h[c>>0]|0)<<24|(h[c+2>>0]|0)<<8;c=a+2|0;e=b[c>>0]|0;f=(h[a+1>>0]|0)<<16|(h[a>>0]|0)<<24|(e&255)<<8;a=e<<24>>24!=0;if((f|0)==(d|0)|a^1){g=c;i=a}else{a=c;c=f;while(1){f=a+1|0;e=b[f>>0]|0;c=(e&255|c)<<8;j=e<<24>>24!=0;if((c|0)==(d|0)|j^1){g=f;i=j;break}else a=f}}return (i?g+-2|0:0)|0}function Oc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,i=0,j=0;d=(h[c+1>>0]|0)<<16|(h[c>>0]|0)<<24|(h[c+2>>0]|0)<<8|(h[c+3>>0]|0);c=a+3|0;e=b[c>>0]|0;f=e&255|((h[a+1>>0]|0)<<16|(h[a>>0]|0)<<24|(h[a+2>>0]|0)<<8);a=e<<24>>24!=0;if((f|0)==(d|0)|a^1){g=a;i=c}else{a=c;c=f;while(1){f=a+1|0;e=b[f>>0]|0;c=e&255|c<<8;j=e<<24>>24!=0;if((c|0)==(d|0)|j^1){g=j;i=f;break}else a=f}}return (g?i+-3|0:0)|0}function Pc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;d=u;u=u+1056|0;e=d+1024|0;g=d;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;f[e+24>>2]=0;f[e+28>>2]=0;h=b[c>>0]|0;a:do if(h<<24>>24){i=0;j=h;k=h&255;while(1){if(!(b[a+i>>0]|0)){l=0;break a}m=e+(((j&255)>>>5&255)<<2)|0;f[m>>2]=f[m>>2]|1<<(j&31);i=i+1|0;f[g+(k<<2)>>2]=i;m=b[c+i>>0]|0;if(!(m<<24>>24))break;else{j=m;k=m&255}}k=i>>>0>1;if(k){j=0;m=-1;n=1;b:while(1){o=1;p=j;q=n;while(1){r=p;s=q;c:while(1){t=1;v=s;while(1){w=b[c+(t+m)>>0]|0;x=b[c+v>>0]|0;if(w<<24>>24!=x<<24>>24)break c;if((t|0)==(o|0))break;t=t+1|0;y=t+r|0;if(y>>>0>=i>>>0){z=o;A=m;break b}else v=y}t=o+r|0;s=t+1|0;if(s>>>0>=i>>>0){z=o;A=m;break b}else r=t}s=v-m|0;if((w&255)<=(x&255))break;q=v+1|0;if(q>>>0>=i>>>0){z=s;A=m;break b}else{o=s;p=v}}n=r+2|0;if(n>>>0>=i>>>0){z=1;A=r;break}else{j=r+1|0;m=r}}if(k){m=0;j=-1;n=1;while(1){p=1;o=m;q=n;while(1){B=o;s=q;d:while(1){t=1;C=s;while(1){D=b[c+(t+j)>>0]|0;E=b[c+C>>0]|0;if(D<<24>>24!=E<<24>>24)break d;if((t|0)==(p|0))break;t=t+1|0;y=t+B|0;if(y>>>0>=i>>>0){F=z;G=A;H=i;I=p;J=j;K=27;break a}else C=y}t=p+B|0;s=t+1|0;if(s>>>0>=i>>>0){F=z;G=A;H=i;I=p;J=j;K=27;break a}else B=t}s=C-j|0;if((D&255)>=(E&255))break;q=C+1|0;if(q>>>0>=i>>>0){F=z;G=A;H=i;I=s;J=j;K=27;break a}else{p=s;o=C}}n=B+2|0;if(n>>>0>=i>>>0){F=z;G=A;H=i;I=1;J=B;K=27;break}else{m=B+1|0;j=B}}}else{F=z;G=A;H=i;I=1;J=-1;K=27}}else{F=1;G=-1;H=i;I=1;J=-1;K=27}}else{F=1;G=-1;H=0;I=1;J=-1;K=27}while(0);e:do if((K|0)==27){A=(J+1|0)>>>0>(G+1|0)>>>0;z=A?I:F;B=A?J:G;A=B+1|0;if(!(Nb(c,c+z|0,A)|0)){L=H-z|0;M=z}else{z=H-B+-1|0;L=0;M=(B>>>0>z>>>0?B:z)+1|0}z=H|63;C=H+-1|0;E=(L|0)!=0;D=H-M|0;r=a;v=0;x=a;while(1){w=r;do if((x-w|0)>>>0>>0){h=Zb(x,0,z)|0;if(h)if((h-w|0)>>>0>>0){l=0;break e}else{N=h;break}else{N=x+z|0;break}}else N=x;while(0);w=b[r+C>>0]|0;f:do if(!(1<<(w&31)&f[e+(((w&255)>>>5&255)<<2)>>2])){O=0;P=H}else{h=H-(f[g+((w&255)<<2)>>2]|0)|0;if(h|0){O=0;P=E&(v|0)!=0&h>>>0>>0?D:h;break}h=A>>>0>v>>>0?A:v;j=b[c+h>>0]|0;g:do if(!(j<<24>>24))Q=A;else{m=h;n=j;while(1){if(n<<24>>24!=(b[r+m>>0]|0))break;k=m+1|0;n=b[c+k>>0]|0;if(!(n<<24>>24)){Q=A;break g}else m=k}O=0;P=m-B|0;break f}while(0);while(1){if(Q>>>0<=v>>>0){l=r;break e}Q=Q+-1|0;if((b[c+Q>>0]|0)!=(b[r+Q>>0]|0)){O=L;P=M;break}}}while(0);r=r+P|0;v=O;x=N}}while(0);u=d;return l|0}function Qc(a,b){a=a|0;b=b|0;var c=0,d=0;c=u;u=u+16|0;d=c;f[d>>2]=b;b=Ob(f[6289]|0,a,d)|0;u=c;return b|0}function Rc(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;c=f[6289]|0;if((f[c+76>>2]|0)>-1)d=Qb(c)|0;else d=0;do if((Ec(a,c)|0)<0)e=1;else{if((b[c+75>>0]|0)!=10?(g=c+20|0,h=f[g>>2]|0,h>>>0<(f[c+16>>2]|0)>>>0):0){f[g>>2]=h+1;b[h>>0]=10;e=0;break}e=(Gc(c,10)|0)<0}while(0);if(d|0)Rb(c);return e<<31>>31|0}function Sc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a;while(1){d=b[c>>0]|0;e=d<<24>>24;f=c+1|0;if(!(Lb(e)|0))break;else c=f}switch(e|0){case 45:{g=1;h=5;break}case 43:{g=0;h=5;break}default:{i=0;j=c;k=d}}if((h|0)==5){i=g;j=f;k=b[f>>0]|0}f=(k<<24>>24)+-48|0;if(f>>>0<10){k=0;g=j;j=f;while(1){g=g+1|0;f=(k*10|0)-j|0;j=(b[g>>0]|0)+-48|0;if(j>>>0>=10){l=f;break}else k=f}}else l=0;return (i|0?l:0-l|0)|0}function Tc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0;b=u;u=u+16|0;c=b;do if(a>>>0<245){d=a>>>0<11?16:a+11&-8;e=d>>>3;g=f[7293]|0;h=g>>>e;if(h&3|0){i=(h&1^1)+e|0;j=29212+(i<<1<<2)|0;k=j+8|0;l=f[k>>2]|0;m=l+8|0;n=f[m>>2]|0;do if((j|0)!=(n|0)){if(n>>>0<(f[7297]|0)>>>0)la();o=n+12|0;if((f[o>>2]|0)==(l|0)){f[o>>2]=j;f[k>>2]=n;break}else la()}else f[7293]=g&~(1<>2]=n|3;k=l+n+4|0;f[k>>2]=f[k>>2]|1;p=m;u=b;return p|0}k=f[7295]|0;if(d>>>0>k>>>0){if(h|0){n=2<>>12&16;o=n>>>j;n=o>>>5&8;q=o>>>n;o=q>>>2&4;r=q>>>o;q=r>>>1&2;s=r>>>q;r=s>>>1&1;t=(n|j|o|q|r)+(s>>>r)|0;r=29212+(t<<1<<2)|0;s=r+8|0;q=f[s>>2]|0;o=q+8|0;j=f[o>>2]|0;do if((r|0)!=(j|0)){if(j>>>0<(f[7297]|0)>>>0)la();n=j+12|0;if((f[n>>2]|0)==(q|0)){f[n>>2]=r;f[s>>2]=j;v=g;break}else la()}else{n=g&~(1<>2]=d|3;s=q+d|0;f[s+4>>2]=j|1;f[s+j>>2]=j;if(k|0){r=f[7298]|0;e=k>>>3;h=29212+(e<<1<<2)|0;m=1<>2]|0;if(l>>>0<(f[7297]|0)>>>0)la();else{w=l;x=e}}else{f[7293]=v|m;w=h;x=h+8|0}f[x>>2]=r;f[w+12>>2]=r;f[r+8>>2]=w;f[r+12>>2]=h}f[7295]=j;f[7298]=s;p=o;u=b;return p|0}s=f[7294]|0;if(s){j=(s&0-s)+-1|0;h=j>>>12&16;r=j>>>h;j=r>>>5&8;m=r>>>j;r=m>>>2&4;e=m>>>r;m=e>>>1&2;l=e>>>m;e=l>>>1&1;i=f[29476+((j|h|r|m|e)+(l>>>e)<<2)>>2]|0;e=(f[i+4>>2]&-8)-d|0;l=f[i+16+(((f[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!l){y=i;z=e}else{m=i;i=e;e=l;while(1){l=(f[e+4>>2]&-8)-d|0;r=l>>>0>>0;h=r?l:i;l=r?e:m;e=f[e+16+(((f[e+16>>2]|0)==0&1)<<2)>>2]|0;if(!e){y=l;z=h;break}else{m=l;i=h}}}i=f[7297]|0;if(y>>>0>>0)la();m=y+d|0;if(y>>>0>=m>>>0)la();e=f[y+24>>2]|0;o=f[y+12>>2]|0;do if((o|0)==(y|0)){q=y+20|0;t=f[q>>2]|0;if(!t){h=y+16|0;l=f[h>>2]|0;if(!l){A=0;break}else{B=l;C=h}}else{B=t;C=q}while(1){q=B+20|0;t=f[q>>2]|0;if(t|0){B=t;C=q;continue}q=B+16|0;t=f[q>>2]|0;if(!t)break;else{B=t;C=q}}if(C>>>0>>0)la();else{f[C>>2]=0;A=B;break}}else{q=f[y+8>>2]|0;if(q>>>0>>0)la();t=q+12|0;if((f[t>>2]|0)!=(y|0))la();h=o+8|0;if((f[h>>2]|0)==(y|0)){f[t>>2]=o;f[h>>2]=q;A=o;break}else la()}while(0);a:do if(e|0){o=f[y+28>>2]|0;i=29476+(o<<2)|0;do if((y|0)==(f[i>>2]|0)){f[i>>2]=A;if(!A){f[7294]=s&~(1<>>0>=(f[7297]|0)>>>0){f[e+16+(((f[e+16>>2]|0)!=(y|0)&1)<<2)>>2]=A;if(!A)break a;else break}else la();while(0);o=f[7297]|0;if(A>>>0>>0)la();f[A+24>>2]=e;i=f[y+16>>2]|0;do if(i|0)if(i>>>0>>0)la();else{f[A+16>>2]=i;f[i+24>>2]=A;break}while(0);i=f[y+20>>2]|0;if(i|0)if(i>>>0<(f[7297]|0)>>>0)la();else{f[A+20>>2]=i;f[i+24>>2]=A;break}}while(0);if(z>>>0<16){e=z+d|0;f[y+4>>2]=e|3;s=y+e+4|0;f[s>>2]=f[s>>2]|1}else{f[y+4>>2]=d|3;f[m+4>>2]=z|1;f[m+z>>2]=z;if(k|0){s=f[7298]|0;e=k>>>3;i=29212+(e<<1<<2)|0;o=1<>2]|0;if(q>>>0<(f[7297]|0)>>>0)la();else{D=q;E=e}}else{f[7293]=g|o;D=i;E=i+8|0}f[E>>2]=s;f[D+12>>2]=s;f[s+8>>2]=D;f[s+12>>2]=i}f[7295]=z;f[7298]=m}p=y+8|0;u=b;return p|0}else F=d}else F=d}else if(a>>>0<=4294967231){i=a+11|0;s=i&-8;o=f[7294]|0;if(o){e=0-s|0;q=i>>>8;if(q)if(s>>>0>16777215)G=31;else{i=(q+1048320|0)>>>16&8;h=q<>>16&4;t=h<>>16&2;l=14-(q|i|h)+(t<>>15)|0;G=s>>>(l+7|0)&1|l<<1}else G=0;l=f[29476+(G<<2)>>2]|0;b:do if(!l){H=0;I=0;J=e;K=81}else{h=0;t=e;i=l;q=s<<((G|0)==31?0:25-(G>>>1)|0);r=0;while(1){j=(f[i+4>>2]&-8)-s|0;if(j>>>0>>0)if(!j){L=i;M=0;N=i;K=85;break b}else{O=i;P=j}else{O=h;P=t}j=f[i+20>>2]|0;i=f[i+16+(q>>>31<<2)>>2]|0;n=(j|0)==0|(j|0)==(i|0)?r:j;j=(i|0)==0;if(j){H=n;I=O;J=P;K=81;break}else{h=O;t=P;q=q<<((j^1)&1);r=n}}}while(0);if((K|0)==81){if((H|0)==0&(I|0)==0){l=2<>>12&16;d=l>>>e;l=d>>>5&8;m=d>>>l;d=m>>>2&4;g=m>>>d;m=g>>>1&2;k=g>>>m;g=k>>>1&1;Q=0;R=f[29476+((l|e|d|m|g)+(k>>>g)<<2)>>2]|0}else{Q=I;R=H}if(!R){S=Q;T=J}else{L=Q;M=J;N=R;K=85}}if((K|0)==85)while(1){K=0;g=(f[N+4>>2]&-8)-s|0;k=g>>>0>>0;m=k?g:M;g=k?N:L;N=f[N+16+(((f[N+16>>2]|0)==0&1)<<2)>>2]|0;if(!N){S=g;T=m;break}else{L=g;M=m;K=85}}if((S|0)!=0?T>>>0<((f[7295]|0)-s|0)>>>0:0){m=f[7297]|0;if(S>>>0>>0)la();g=S+s|0;if(S>>>0>=g>>>0)la();k=f[S+24>>2]|0;d=f[S+12>>2]|0;do if((d|0)==(S|0)){e=S+20|0;l=f[e>>2]|0;if(!l){r=S+16|0;q=f[r>>2]|0;if(!q){U=0;break}else{V=q;W=r}}else{V=l;W=e}while(1){e=V+20|0;l=f[e>>2]|0;if(l|0){V=l;W=e;continue}e=V+16|0;l=f[e>>2]|0;if(!l)break;else{V=l;W=e}}if(W>>>0>>0)la();else{f[W>>2]=0;U=V;break}}else{e=f[S+8>>2]|0;if(e>>>0>>0)la();l=e+12|0;if((f[l>>2]|0)!=(S|0))la();r=d+8|0;if((f[r>>2]|0)==(S|0)){f[l>>2]=d;f[r>>2]=e;U=d;break}else la()}while(0);c:do if(k){d=f[S+28>>2]|0;m=29476+(d<<2)|0;do if((S|0)==(f[m>>2]|0)){f[m>>2]=U;if(!U){e=o&~(1<>>0>=(f[7297]|0)>>>0){f[k+16+(((f[k+16>>2]|0)!=(S|0)&1)<<2)>>2]=U;if(!U){X=o;break c}else break}else la();while(0);d=f[7297]|0;if(U>>>0>>0)la();f[U+24>>2]=k;m=f[S+16>>2]|0;do if(m|0)if(m>>>0>>0)la();else{f[U+16>>2]=m;f[m+24>>2]=U;break}while(0);m=f[S+20>>2]|0;if(m)if(m>>>0<(f[7297]|0)>>>0)la();else{f[U+20>>2]=m;f[m+24>>2]=U;X=o;break}else X=o}else X=o;while(0);do if(T>>>0>=16){f[S+4>>2]=s|3;f[g+4>>2]=T|1;f[g+T>>2]=T;o=T>>>3;if(T>>>0<256){k=29212+(o<<1<<2)|0;m=f[7293]|0;d=1<>2]|0;if(e>>>0<(f[7297]|0)>>>0)la();else{Y=e;Z=o}}else{f[7293]=m|d;Y=k;Z=k+8|0}f[Z>>2]=g;f[Y+12>>2]=g;f[g+8>>2]=Y;f[g+12>>2]=k;break}k=T>>>8;if(k)if(T>>>0>16777215)_=31;else{d=(k+1048320|0)>>>16&8;m=k<>>16&4;o=m<>>16&2;e=14-(k|d|m)+(o<>>15)|0;_=T>>>(e+7|0)&1|e<<1}else _=0;e=29476+(_<<2)|0;f[g+28>>2]=_;m=g+16|0;f[m+4>>2]=0;f[m>>2]=0;m=1<<_;if(!(X&m)){f[7294]=X|m;f[e>>2]=g;f[g+24>>2]=e;f[g+12>>2]=g;f[g+8>>2]=g;break}m=T<<((_|0)==31?0:25-(_>>>1)|0);o=f[e>>2]|0;while(1){if((f[o+4>>2]&-8|0)==(T|0)){K=139;break}$=o+16+(m>>>31<<2)|0;e=f[$>>2]|0;if(!e){K=136;break}else{m=m<<1;o=e}}if((K|0)==136)if($>>>0<(f[7297]|0)>>>0)la();else{f[$>>2]=g;f[g+24>>2]=o;f[g+12>>2]=g;f[g+8>>2]=g;break}else if((K|0)==139){m=o+8|0;e=f[m>>2]|0;d=f[7297]|0;if(e>>>0>=d>>>0&o>>>0>=d>>>0){f[e+12>>2]=g;f[m>>2]=g;f[g+8>>2]=e;f[g+12>>2]=o;f[g+24>>2]=0;break}else la()}}else{e=T+s|0;f[S+4>>2]=e|3;m=S+e+4|0;f[m>>2]=f[m>>2]|1}while(0);p=S+8|0;u=b;return p|0}else F=s}else F=s}else F=-1;while(0);S=f[7295]|0;if(S>>>0>=F>>>0){T=S-F|0;$=f[7298]|0;if(T>>>0>15){_=$+F|0;f[7298]=_;f[7295]=T;f[_+4>>2]=T|1;f[_+T>>2]=T;f[$+4>>2]=F|3}else{f[7295]=0;f[7298]=0;f[$+4>>2]=S|3;T=$+S+4|0;f[T>>2]=f[T>>2]|1}p=$+8|0;u=b;return p|0}$=f[7296]|0;if($>>>0>F>>>0){T=$-F|0;f[7296]=T;S=f[7299]|0;_=S+F|0;f[7299]=_;f[_+4>>2]=T|1;f[S+4>>2]=F|3;p=S+8|0;u=b;return p|0}if(!(f[7411]|0)){f[7413]=4096;f[7412]=4096;f[7414]=-1;f[7415]=-1;f[7416]=0;f[7404]=0;S=c&-16^1431655768;f[c>>2]=S;f[7411]=S;aa=4096}else aa=f[7413]|0;S=F+48|0;c=F+47|0;T=aa+c|0;_=0-aa|0;aa=T&_;if(aa>>>0<=F>>>0){p=0;u=b;return p|0}X=f[7403]|0;if(X|0?(Y=f[7401]|0,Z=Y+aa|0,Z>>>0<=Y>>>0|Z>>>0>X>>>0):0){p=0;u=b;return p|0}d:do if(!(f[7404]&4)){X=f[7299]|0;e:do if(X){Z=29620;while(1){Y=f[Z>>2]|0;if(Y>>>0<=X>>>0?(ba=Z+4|0,(Y+(f[ba>>2]|0)|0)>>>0>X>>>0):0)break;Y=f[Z+8>>2]|0;if(!Y){K=163;break e}else Z=Y}o=T-$&_;if(o>>>0<2147483647){Y=cd(o|0)|0;if((Y|0)==((f[Z>>2]|0)+(f[ba>>2]|0)|0))if((Y|0)==(-1|0))ca=o;else{da=o;ea=Y;K=180;break d}else{fa=Y;ga=o;K=171}}else ca=0}else K=163;while(0);do if((K|0)==163){X=cd(0)|0;if((X|0)!=(-1|0)?(s=X,o=f[7412]|0,Y=o+-1|0,U=((Y&s|0)==0?0:(Y+s&0-o)-s|0)+aa|0,s=f[7401]|0,o=U+s|0,U>>>0>F>>>0&U>>>0<2147483647):0){Y=f[7403]|0;if(Y|0?o>>>0<=s>>>0|o>>>0>Y>>>0:0){ca=0;break}Y=cd(U|0)|0;if((Y|0)==(X|0)){da=U;ea=X;K=180;break d}else{fa=Y;ga=U;K=171}}else ca=0}while(0);do if((K|0)==171){U=0-ga|0;if(!(S>>>0>ga>>>0&(ga>>>0<2147483647&(fa|0)!=(-1|0))))if((fa|0)==(-1|0)){ca=0;break}else{da=ga;ea=fa;K=180;break d}Y=f[7413]|0;X=c-ga+Y&0-Y;if(X>>>0>=2147483647){da=ga;ea=fa;K=180;break d}if((cd(X|0)|0)==(-1|0)){cd(U|0)|0;ca=0;break}else{da=X+ga|0;ea=fa;K=180;break d}}while(0);f[7404]=f[7404]|4;ha=ca;K=178}else{ha=0;K=178}while(0);if(((K|0)==178?aa>>>0<2147483647:0)?(ca=cd(aa|0)|0,aa=cd(0)|0,fa=aa-ca|0,ga=fa>>>0>(F+40|0)>>>0,!((ca|0)==(-1|0)|ga^1|ca>>>0>>0&((ca|0)!=(-1|0)&(aa|0)!=(-1|0))^1)):0){da=ga?fa:ha;ea=ca;K=180}if((K|0)==180){ca=(f[7401]|0)+da|0;f[7401]=ca;if(ca>>>0>(f[7402]|0)>>>0)f[7402]=ca;ca=f[7299]|0;do if(ca){ha=29620;while(1){ia=f[ha>>2]|0;ja=ha+4|0;ka=f[ja>>2]|0;if((ea|0)==(ia+ka|0)){K=190;break}fa=f[ha+8>>2]|0;if(!fa)break;else ha=fa}if(((K|0)==190?(f[ha+12>>2]&8|0)==0:0)?ca>>>0>>0&ca>>>0>=ia>>>0:0){f[ja>>2]=ka+da;fa=ca+8|0;ga=(fa&7|0)==0?0:0-fa&7;fa=ca+ga|0;aa=(f[7296]|0)+(da-ga)|0;f[7299]=fa;f[7296]=aa;f[fa+4>>2]=aa|1;f[fa+aa+4>>2]=40;f[7300]=f[7415];break}aa=f[7297]|0;if(ea>>>0>>0){f[7297]=ea;ma=ea}else ma=aa;aa=ea+da|0;fa=29620;while(1){if((f[fa>>2]|0)==(aa|0)){K=198;break}ga=f[fa+8>>2]|0;if(!ga)break;else fa=ga}if((K|0)==198?(f[fa+12>>2]&8|0)==0:0){f[fa>>2]=ea;ha=fa+4|0;f[ha>>2]=(f[ha>>2]|0)+da;ha=ea+8|0;ga=ea+((ha&7|0)==0?0:0-ha&7)|0;ha=aa+8|0;c=aa+((ha&7|0)==0?0:0-ha&7)|0;ha=ga+F|0;S=c-ga-F|0;f[ga+4>>2]=F|3;do if((c|0)!=(ca|0)){if((c|0)==(f[7298]|0)){ba=(f[7295]|0)+S|0;f[7295]=ba;f[7298]=ha;f[ha+4>>2]=ba|1;f[ha+ba>>2]=ba;break}ba=f[c+4>>2]|0;if((ba&3|0)==1){_=ba&-8;$=ba>>>3;f:do if(ba>>>0>=256){T=f[c+24>>2]|0;X=f[c+12>>2]|0;do if((X|0)==(c|0)){U=c+16|0;Y=U+4|0;o=f[Y>>2]|0;if(!o){s=f[U>>2]|0;if(!s){na=0;break}else{oa=s;pa=U}}else{oa=o;pa=Y}while(1){Y=oa+20|0;o=f[Y>>2]|0;if(o|0){oa=o;pa=Y;continue}Y=oa+16|0;o=f[Y>>2]|0;if(!o)break;else{oa=o;pa=Y}}if(pa>>>0>>0)la();else{f[pa>>2]=0;na=oa;break}}else{Y=f[c+8>>2]|0;if(Y>>>0>>0)la();o=Y+12|0;if((f[o>>2]|0)!=(c|0))la();U=X+8|0;if((f[U>>2]|0)==(c|0)){f[o>>2]=X;f[U>>2]=Y;na=X;break}else la()}while(0);if(!T)break;X=f[c+28>>2]|0;Y=29476+(X<<2)|0;do if((c|0)!=(f[Y>>2]|0))if(T>>>0>=(f[7297]|0)>>>0){f[T+16+(((f[T+16>>2]|0)!=(c|0)&1)<<2)>>2]=na;if(!na)break f;else break}else la();else{f[Y>>2]=na;if(na|0)break;f[7294]=f[7294]&~(1<>>0>>0)la();f[na+24>>2]=T;Y=c+16|0;U=f[Y>>2]|0;do if(U|0)if(U>>>0>>0)la();else{f[na+16>>2]=U;f[U+24>>2]=na;break}while(0);U=f[Y+4>>2]|0;if(!U)break;if(U>>>0<(f[7297]|0)>>>0)la();else{f[na+20>>2]=U;f[U+24>>2]=na;break}}else{U=f[c+8>>2]|0;X=f[c+12>>2]|0;T=29212+($<<1<<2)|0;do if((U|0)!=(T|0)){if(U>>>0>>0)la();if((f[U+12>>2]|0)==(c|0))break;la()}while(0);if((X|0)==(U|0)){f[7293]=f[7293]&~(1<<$);break}do if((X|0)==(T|0))qa=X+8|0;else{if(X>>>0>>0)la();Y=X+8|0;if((f[Y>>2]|0)==(c|0)){qa=Y;break}la()}while(0);f[U+12>>2]=X;f[qa>>2]=U}while(0);ra=c+_|0;sa=_+S|0}else{ra=c;sa=S}$=ra+4|0;f[$>>2]=f[$>>2]&-2;f[ha+4>>2]=sa|1;f[ha+sa>>2]=sa;$=sa>>>3;if(sa>>>0<256){ba=29212+($<<1<<2)|0;Z=f[7293]|0;T=1<<$;do if(!(Z&T)){f[7293]=Z|T;ta=ba;ua=ba+8|0}else{$=ba+8|0;Y=f[$>>2]|0;if(Y>>>0>=(f[7297]|0)>>>0){ta=Y;ua=$;break}la()}while(0);f[ua>>2]=ha;f[ta+12>>2]=ha;f[ha+8>>2]=ta;f[ha+12>>2]=ba;break}T=sa>>>8;do if(!T)va=0;else{if(sa>>>0>16777215){va=31;break}Z=(T+1048320|0)>>>16&8;_=T<>>16&4;Y=_<<$;_=(Y+245760|0)>>>16&2;o=14-($|Z|_)+(Y<<_>>>15)|0;va=sa>>>(o+7|0)&1|o<<1}while(0);T=29476+(va<<2)|0;f[ha+28>>2]=va;ba=ha+16|0;f[ba+4>>2]=0;f[ba>>2]=0;ba=f[7294]|0;o=1<>2]=ha;f[ha+24>>2]=T;f[ha+12>>2]=ha;f[ha+8>>2]=ha;break}o=sa<<((va|0)==31?0:25-(va>>>1)|0);ba=f[T>>2]|0;while(1){if((f[ba+4>>2]&-8|0)==(sa|0)){K=265;break}wa=ba+16+(o>>>31<<2)|0;T=f[wa>>2]|0;if(!T){K=262;break}else{o=o<<1;ba=T}}if((K|0)==262)if(wa>>>0<(f[7297]|0)>>>0)la();else{f[wa>>2]=ha;f[ha+24>>2]=ba;f[ha+12>>2]=ha;f[ha+8>>2]=ha;break}else if((K|0)==265){o=ba+8|0;T=f[o>>2]|0;_=f[7297]|0;if(T>>>0>=_>>>0&ba>>>0>=_>>>0){f[T+12>>2]=ha;f[o>>2]=ha;f[ha+8>>2]=T;f[ha+12>>2]=ba;f[ha+24>>2]=0;break}else la()}}else{T=(f[7296]|0)+S|0;f[7296]=T;f[7299]=ha;f[ha+4>>2]=T|1}while(0);p=ga+8|0;u=b;return p|0}ha=29620;while(1){S=f[ha>>2]|0;if(S>>>0<=ca>>>0?(xa=S+(f[ha+4>>2]|0)|0,xa>>>0>ca>>>0):0)break;ha=f[ha+8>>2]|0}ha=xa+-47|0;ga=ha+8|0;S=ha+((ga&7|0)==0?0:0-ga&7)|0;ga=ca+16|0;ha=S>>>0>>0?ca:S;S=ha+8|0;c=ea+8|0;aa=(c&7|0)==0?0:0-c&7;c=ea+aa|0;fa=da+-40-aa|0;f[7299]=c;f[7296]=fa;f[c+4>>2]=fa|1;f[c+fa+4>>2]=40;f[7300]=f[7415];fa=ha+4|0;f[fa>>2]=27;f[S>>2]=f[7405];f[S+4>>2]=f[7406];f[S+8>>2]=f[7407];f[S+12>>2]=f[7408];f[7405]=ea;f[7406]=da;f[7408]=0;f[7407]=S;S=ha+24|0;do{c=S;S=S+4|0;f[S>>2]=7}while((c+8|0)>>>0>>0);if((ha|0)!=(ca|0)){S=ha-ca|0;f[fa>>2]=f[fa>>2]&-2;f[ca+4>>2]=S|1;f[ha>>2]=S;c=S>>>3;if(S>>>0<256){aa=29212+(c<<1<<2)|0;T=f[7293]|0;o=1<>2]|0;if(_>>>0<(f[7297]|0)>>>0)la();else{ya=_;za=c}}else{f[7293]=T|o;ya=aa;za=aa+8|0}f[za>>2]=ca;f[ya+12>>2]=ca;f[ca+8>>2]=ya;f[ca+12>>2]=aa;break}aa=S>>>8;if(aa)if(S>>>0>16777215)Aa=31;else{o=(aa+1048320|0)>>>16&8;T=aa<>>16&4;c=T<>>16&2;_=14-(aa|o|T)+(c<>>15)|0;Aa=S>>>(_+7|0)&1|_<<1}else Aa=0;_=29476+(Aa<<2)|0;f[ca+28>>2]=Aa;f[ca+20>>2]=0;f[ga>>2]=0;T=f[7294]|0;c=1<>2]=ca;f[ca+24>>2]=_;f[ca+12>>2]=ca;f[ca+8>>2]=ca;break}c=S<<((Aa|0)==31?0:25-(Aa>>>1)|0);T=f[_>>2]|0;while(1){if((f[T+4>>2]&-8|0)==(S|0)){K=292;break}Ba=T+16+(c>>>31<<2)|0;_=f[Ba>>2]|0;if(!_){K=289;break}else{c=c<<1;T=_}}if((K|0)==289)if(Ba>>>0<(f[7297]|0)>>>0)la();else{f[Ba>>2]=ca;f[ca+24>>2]=T;f[ca+12>>2]=ca;f[ca+8>>2]=ca;break}else if((K|0)==292){c=T+8|0;S=f[c>>2]|0;ga=f[7297]|0;if(S>>>0>=ga>>>0&T>>>0>=ga>>>0){f[S+12>>2]=ca;f[c>>2]=ca;f[ca+8>>2]=S;f[ca+12>>2]=T;f[ca+24>>2]=0;break}else la()}}}else{S=f[7297]|0;if((S|0)==0|ea>>>0>>0)f[7297]=ea;f[7405]=ea;f[7406]=da;f[7408]=0;f[7302]=f[7411];f[7301]=-1;S=0;do{c=29212+(S<<1<<2)|0;f[c+12>>2]=c;f[c+8>>2]=c;S=S+1|0}while((S|0)!=32);S=ea+8|0;T=(S&7|0)==0?0:0-S&7;S=ea+T|0;c=da+-40-T|0;f[7299]=S;f[7296]=c;f[S+4>>2]=c|1;f[S+c+4>>2]=40;f[7300]=f[7415]}while(0);da=f[7296]|0;if(da>>>0>F>>>0){ea=da-F|0;f[7296]=ea;da=f[7299]|0;ca=da+F|0;f[7299]=ca;f[ca+4>>2]=ea|1;f[da+4>>2]=F|3;p=da+8|0;u=b;return p|0}}da=Gb()|0;f[da>>2]=12;p=0;u=b;return p|0}function Uc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;if(!a)return;b=a+-8|0;c=f[7297]|0;if(b>>>0>>0)la();d=f[a+-4>>2]|0;a=d&3;if((a|0)==1)la();e=d&-8;g=b+e|0;a:do if(!(d&1)){h=f[b>>2]|0;if(!a)return;i=b+(0-h)|0;j=h+e|0;if(i>>>0>>0)la();if((i|0)==(f[7298]|0)){k=g+4|0;l=f[k>>2]|0;if((l&3|0)!=3){m=i;n=j;o=i;break}f[7295]=j;f[k>>2]=l&-2;f[i+4>>2]=j|1;f[i+j>>2]=j;return}l=h>>>3;if(h>>>0<256){h=f[i+8>>2]|0;k=f[i+12>>2]|0;p=29212+(l<<1<<2)|0;if((h|0)!=(p|0)){if(h>>>0>>0)la();if((f[h+12>>2]|0)!=(i|0))la()}if((k|0)==(h|0)){f[7293]=f[7293]&~(1<>>0>>0)la();p=k+8|0;if((f[p>>2]|0)==(i|0))q=p;else la()}else q=k+8|0;f[h+12>>2]=k;f[q>>2]=h;m=i;n=j;o=i;break}h=f[i+24>>2]|0;k=f[i+12>>2]|0;do if((k|0)==(i|0)){p=i+16|0;l=p+4|0;r=f[l>>2]|0;if(!r){s=f[p>>2]|0;if(!s){t=0;break}else{u=s;v=p}}else{u=r;v=l}while(1){l=u+20|0;r=f[l>>2]|0;if(r|0){u=r;v=l;continue}l=u+16|0;r=f[l>>2]|0;if(!r)break;else{u=r;v=l}}if(v>>>0>>0)la();else{f[v>>2]=0;t=u;break}}else{l=f[i+8>>2]|0;if(l>>>0>>0)la();r=l+12|0;if((f[r>>2]|0)!=(i|0))la();p=k+8|0;if((f[p>>2]|0)==(i|0)){f[r>>2]=k;f[p>>2]=l;t=k;break}else la()}while(0);if(h){k=f[i+28>>2]|0;l=29476+(k<<2)|0;do if((i|0)==(f[l>>2]|0)){f[l>>2]=t;if(!t){f[7294]=f[7294]&~(1<>>0>=(f[7297]|0)>>>0){f[h+16+(((f[h+16>>2]|0)!=(i|0)&1)<<2)>>2]=t;if(!t){m=i;n=j;o=i;break a}else break}else la();while(0);k=f[7297]|0;if(t>>>0>>0)la();f[t+24>>2]=h;l=i+16|0;p=f[l>>2]|0;do if(p|0)if(p>>>0>>0)la();else{f[t+16>>2]=p;f[p+24>>2]=t;break}while(0);p=f[l+4>>2]|0;if(p)if(p>>>0<(f[7297]|0)>>>0)la();else{f[t+20>>2]=p;f[p+24>>2]=t;m=i;n=j;o=i;break}else{m=i;n=j;o=i}}else{m=i;n=j;o=i}}else{m=b;n=e;o=b}while(0);if(o>>>0>=g>>>0)la();b=g+4|0;e=f[b>>2]|0;if(!(e&1))la();if(!(e&2)){t=f[7298]|0;if((g|0)==(f[7299]|0)){c=(f[7296]|0)+n|0;f[7296]=c;f[7299]=m;f[m+4>>2]=c|1;if((m|0)!=(t|0))return;f[7298]=0;f[7295]=0;return}if((g|0)==(t|0)){t=(f[7295]|0)+n|0;f[7295]=t;f[7298]=o;f[m+4>>2]=t|1;f[o+t>>2]=t;return}t=(e&-8)+n|0;c=e>>>3;b:do if(e>>>0>=256){u=f[g+24>>2]|0;v=f[g+12>>2]|0;do if((v|0)==(g|0)){q=g+16|0;a=q+4|0;d=f[a>>2]|0;if(!d){p=f[q>>2]|0;if(!p){w=0;break}else{x=p;y=q}}else{x=d;y=a}while(1){a=x+20|0;d=f[a>>2]|0;if(d|0){x=d;y=a;continue}a=x+16|0;d=f[a>>2]|0;if(!d)break;else{x=d;y=a}}if(y>>>0<(f[7297]|0)>>>0)la();else{f[y>>2]=0;w=x;break}}else{a=f[g+8>>2]|0;if(a>>>0<(f[7297]|0)>>>0)la();d=a+12|0;if((f[d>>2]|0)!=(g|0))la();q=v+8|0;if((f[q>>2]|0)==(g|0)){f[d>>2]=v;f[q>>2]=a;w=v;break}else la()}while(0);if(u|0){v=f[g+28>>2]|0;i=29476+(v<<2)|0;do if((g|0)==(f[i>>2]|0)){f[i>>2]=w;if(!w){f[7294]=f[7294]&~(1<>>0>=(f[7297]|0)>>>0){f[u+16+(((f[u+16>>2]|0)!=(g|0)&1)<<2)>>2]=w;if(!w)break b;else break}else la();while(0);v=f[7297]|0;if(w>>>0>>0)la();f[w+24>>2]=u;i=g+16|0;j=f[i>>2]|0;do if(j|0)if(j>>>0>>0)la();else{f[w+16>>2]=j;f[j+24>>2]=w;break}while(0);j=f[i+4>>2]|0;if(j|0)if(j>>>0<(f[7297]|0)>>>0)la();else{f[w+20>>2]=j;f[j+24>>2]=w;break}}}else{j=f[g+8>>2]|0;v=f[g+12>>2]|0;u=29212+(c<<1<<2)|0;if((j|0)!=(u|0)){if(j>>>0<(f[7297]|0)>>>0)la();if((f[j+12>>2]|0)!=(g|0))la()}if((v|0)==(j|0)){f[7293]=f[7293]&~(1<>>0<(f[7297]|0)>>>0)la();u=v+8|0;if((f[u>>2]|0)==(g|0))z=u;else la()}else z=v+8|0;f[j+12>>2]=v;f[z>>2]=j}while(0);f[m+4>>2]=t|1;f[o+t>>2]=t;if((m|0)==(f[7298]|0)){f[7295]=t;return}else A=t}else{f[b>>2]=e&-2;f[m+4>>2]=n|1;f[o+n>>2]=n;A=n}n=A>>>3;if(A>>>0<256){o=29212+(n<<1<<2)|0;e=f[7293]|0;b=1<>2]|0;if(t>>>0<(f[7297]|0)>>>0)la();else{B=t;C=n}}else{f[7293]=e|b;B=o;C=o+8|0}f[C>>2]=m;f[B+12>>2]=m;f[m+8>>2]=B;f[m+12>>2]=o;return}o=A>>>8;if(o)if(A>>>0>16777215)D=31;else{B=(o+1048320|0)>>>16&8;C=o<>>16&4;b=C<>>16&2;e=14-(o|B|C)+(b<>>15)|0;D=A>>>(e+7|0)&1|e<<1}else D=0;e=29476+(D<<2)|0;f[m+28>>2]=D;f[m+20>>2]=0;f[m+16>>2]=0;C=f[7294]|0;b=1<>>1)|0);o=f[e>>2]|0;while(1){if((f[o+4>>2]&-8|0)==(A|0)){E=124;break}F=o+16+(B>>>31<<2)|0;n=f[F>>2]|0;if(!n){E=121;break}else{B=B<<1;o=n}}if((E|0)==121)if(F>>>0<(f[7297]|0)>>>0)la();else{f[F>>2]=m;f[m+24>>2]=o;f[m+12>>2]=m;f[m+8>>2]=m;break}else if((E|0)==124){B=o+8|0;i=f[B>>2]|0;n=f[7297]|0;if(i>>>0>=n>>>0&o>>>0>=n>>>0){f[i+12>>2]=m;f[B>>2]=m;f[m+8>>2]=i;f[m+12>>2]=o;f[m+24>>2]=0;break}else la()}}else{f[7294]=C|b;f[e>>2]=m;f[m+24>>2]=e;f[m+12>>2]=m;f[m+8>>2]=m}while(0);m=(f[7301]|0)+-1|0;f[7301]=m;if(!m)G=29628;else return;while(1){m=f[G>>2]|0;if(!m)break;else G=m+8|0}f[7301]=-1;return}function Vc(){}function Wc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (I=e,a-c>>>0|0)|0}function Xc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (I=b+d+(e>>>0>>0|0)>>>0,e|0)|0}function Yc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=a+d|0;c=c&255;if((d|0)>=67){while(a&3){b[a>>0]=c;a=a+1|0}g=e&-4|0;h=g-64|0;i=c|c<<8|c<<16|c<<24;while((a|0)<=(h|0)){f[a>>2]=i;f[a+4>>2]=i;f[a+8>>2]=i;f[a+12>>2]=i;f[a+16>>2]=i;f[a+20>>2]=i;f[a+24>>2]=i;f[a+28>>2]=i;f[a+32>>2]=i;f[a+36>>2]=i;f[a+40>>2]=i;f[a+44>>2]=i;f[a+48>>2]=i;f[a+52>>2]=i;f[a+56>>2]=i;f[a+60>>2]=i;a=a+64|0}while((a|0)<(g|0)){f[a>>2]=i;a=a+4|0}}while((a|0)<(e|0)){b[a>>0]=c;a=a+1|0}return e-d|0}function Zc(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){I=b>>>c;return a>>>c|(b&(1<>>c-32|0}function _c(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){I=b<>>32-c;return a<>0]|0;if((c|0)<8)return c|0;c=b[w+(a>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=b[w+(a>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (b[w+(a>>>24)>>0]|0)+24|0}function ad(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;g=a;h=b;i=h;j=c;k=d;l=k;if(!i){m=(e|0)!=0;if(!l){if(m){f[e>>2]=(g>>>0)%(j>>>0);f[e+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (I=n,o)|0}else{if(!m){n=0;o=0;return (I=n,o)|0}f[e>>2]=a|0;f[e+4>>2]=b&0;n=0;o=0;return (I=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(_(l|0)|0)-(_(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<>>(q>>>0)&s;w=0;x=g<>2]=a|0;f[e+4>>2]=h|b&0;n=0;o=0;return (I=n,o)|0}r=j-1|0;if(r&j|0){s=(_(j|0)|0)+33-(_(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;z=s-32|0;A=z>>31;t=s;u=p-1>>31&i>>>(z>>>0)|(i<>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<>>(z>>>0))&y|g<>31;break}if(e|0){f[e>>2]=r&g;f[e+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (I=n,o)|0}else{r=$c(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (I=n,o)|0}}else{if(m){if(e|0){f[e>>2]=(i>>>0)%(j>>>0);f[e+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (I=n,o)|0}if(!g){if(e|0){f[e>>2]=0;f[e+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (I=n,o)|0}r=l-1|0;if(!(r&l)){if(e|0){f[e>>2]=a|0;f[e+4>>2]=r&i|b&0}n=0;o=i>>>(($c(l|0)|0)>>>0);return (I=n,o)|0}r=(_(l|0)|0)-(_(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<>2]=a|0;f[e+4>>2]=h|b&0;n=0;o=0;return (I=n,o)|0}while(0);if(!t){B=x;C=w;D=v;E=u;F=0;G=0}else{b=c|0|0;c=k|d&0;d=Xc(b|0,c|0,-1,-1)|0;k=I;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;Wc(d|0,k|0,g|0,a|0)|0;i=I;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=Wc(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&c|0)|0;w=I;u=u-1|0}while((u|0)!=0);B=h;C=x;D=w;E=v;F=0;G=t}t=C;C=0;if(e|0){f[e>>2]=E;f[e+4>>2]=D}n=(t|0)>>>31|(B|C)<<1|(C<<1|t>>>31)&0|F;o=(t<<1|0>>>31)&-2|G;return (I=n,o)|0}function bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ad(a,b,c,d,0)|0}function cd(a){a=a|0;var b=0,c=0;a=a+15&-16|0;b=f[r>>2]|0;c=b+a|0;if((a|0)>0&(c|0)<(b|0)|(c|0)<0){da()|0;ma(12);return -1}f[r>>2]=c;if((c|0)>(ca()|0)?(ba()|0)==0:0){f[r>>2]=b;ma(12);return -1}return b|0}function dd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e|0;ad(a,b,c,d,g)|0;u=e;return (I=f[g+4>>2]|0,f[g>>2]|0)|0}function ed(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;if((d|0)>=8192)return pa(a|0,c|0,d|0)|0;e=a|0;g=a+d|0;if((a&3)==(c&3)){while(a&3){if(!d)return e|0;b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0;d=d-1|0}h=g&-4|0;d=h-64|0;while((a|0)<=(d|0)){f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];f[a+12>>2]=f[c+12>>2];f[a+16>>2]=f[c+16>>2];f[a+20>>2]=f[c+20>>2];f[a+24>>2]=f[c+24>>2];f[a+28>>2]=f[c+28>>2];f[a+32>>2]=f[c+32>>2];f[a+36>>2]=f[c+36>>2];f[a+40>>2]=f[c+40>>2];f[a+44>>2]=f[c+44>>2];f[a+48>>2]=f[c+48>>2];f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];a=a+64|0;c=c+64|0}while((a|0)<(h|0)){f[a>>2]=f[c>>2];a=a+4|0;c=c+4|0}}else{h=g-4|0;while((a|0)<(h|0)){b[a>>0]=b[c>>0]|0;b[a+1>>0]=b[c+1>>0]|0;b[a+2>>0]=b[c+2>>0]|0;b[a+3>>0]=b[c+3>>0]|0;a=a+4|0;c=c+4|0}}while((a|0)<(g|0)){b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0}return e|0}function fd(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function gd(a,b){a=a|0;b=b|0;return xa[a&1](b|0)|0}function hd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ya[a&3](b|0,c|0,d|0)|0}function id(a,b,c){a=a|0;b=b|0;c=c|0;return za[a&1](b|0,c|0)|0}function jd(a){a=a|0;$(0);return 0}function kd(a,b,c){a=a|0;b=b|0;c=c|0;$(1);return 0}function ld(a,b){a=a|0;b=b|0;$(2);return 0} +function Aa(a){a=a|0;var b=0;b=u;u=u+a|0;u=u+15&-16;return b|0}function Ba(){return u|0}function Ca(a){a=a|0;u=a}function Da(a,b){a=a|0;b=b|0;u=a;v=b}function Ea(a,b){a=a|0;b=b|0;if(!x){x=a;y=b}}function Fa(a){a=a|0;I=a}function Ga(){return I|0}function Ha(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;if((Ia(a)|0)==1){c=Vc((a<<4)+272|0)|0;d=c+8|0;e=Ja(a,d)|0;f[c+264>>2]=e;g=c+272|0;if((e|0)>0){h=e+-1|0;i=0;j=0;k=1;while(1){l=f[d+(h-j<<2)>>2]|0;m=k;k=X(l,k)|0;n=-6.283185307179586/+(k|0);if((m|0)>0&(l|0)>1){o=l+-1|0;q=i+-1|0;r=X(m+-1|0,o)|0;s=0;t=i;while(1){u=0;v=t;while(1){u=u+1|0;w=n*+(X(u,s)|0);x=+N(+w);p[g+(v<<4)>>3]=x;x=+O(+w);p[g+(v<<4)+8>>3]=x;if((u|0)==(o|0))break;else v=v+1|0}s=s+1|0;if((s|0)==(m|0))break;else t=o+t|0}y=q+l+r|0}else y=i;j=j+1|0;if((j|0)==(e|0)){z=a;A=0;B=c;break}else i=y}}else{z=a;A=0;B=c}}else{c=~~+ha(+(+W(+(+Fc(+(a|0))/.3010299956639812))));y=c<<((c|0)<((a<<1)+-2|0)&1);c=Vc((y<<4)+272|0)|0;i=c+8|0;e=Ja(y,i)|0;f[c+264>>2]=e;j=c+272|0;if((e|0)>0){g=e+-1|0;k=0;h=0;d=1;while(1){t=f[i+(g-h<<2)>>2]|0;o=d;d=X(t,d)|0;n=-6.283185307179586/+(d|0);if((o|0)>0&(t|0)>1){m=t+-1|0;s=k+-1|0;v=X(o+-1|0,m)|0;u=0;C=k;while(1){D=0;E=C;while(1){D=D+1|0;x=n*+(X(D,u)|0);w=+N(+x);p[j+(E<<4)>>3]=w;w=+O(+x);p[j+(E<<4)+8>>3]=w;if((D|0)==(m|0))break;else E=E+1|0}u=u+1|0;if((u|0)==(o|0))break;else C=m+C|0}F=s+t+v|0}else F=k;h=h+1|0;if((h|0)==(e|0)){z=y;A=1;B=c;break}else k=F}}else{z=y;A=1;B=c}}f[B+268>>2]=A;f[B>>2]=a;f[B+4>>2]=b;if((b|0)==-1&(z|0)>0)G=0;else return B|0;do{b=B+272+(G<<4)+8|0;p[b>>3]=-+p[b>>3];G=G+1|0}while((G|0)!=(z|0));return B|0}function Ia(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;if(!((a|0)%53|0)){b=a;while(1){c=(b|0)/53|0;if(!((c|0)%53|0))b=c;else{d=c;break}}}else d=a;if(!((d|0)%47|0)){a=d;while(1){b=(a|0)/47|0;if(!((b|0)%47|0))a=b;else{e=b;break}}}else e=d;if(!((e|0)%43|0)){d=e;while(1){a=(d|0)/43|0;if(!((a|0)%43|0))d=a;else{f=a;break}}}else f=e;if(!((f|0)%41|0)){e=f;while(1){d=(e|0)/41|0;if(!((d|0)%41|0))e=d;else{g=d;break}}}else g=f;if(!((g|0)%37|0)){f=g;while(1){e=(f|0)/37|0;if(!((e|0)%37|0))f=e;else{h=e;break}}}else h=g;if(!((h|0)%31|0)){g=h;while(1){f=(g|0)/31|0;if(!((f|0)%31|0))g=f;else{i=f;break}}}else i=h;if(!((i|0)%29|0)){h=i;while(1){g=(h|0)/29|0;if(!((g|0)%29|0))h=g;else{j=g;break}}}else j=i;if(!((j|0)%23|0)){i=j;while(1){h=(i|0)/23|0;if(!((h|0)%23|0))i=h;else{k=h;break}}}else k=j;if(!((k|0)%17|0)){j=k;while(1){i=(j|0)/17|0;if(!((i|0)%17|0))j=i;else{l=i;break}}}else l=k;if(!((l|0)%13|0)){k=l;while(1){j=(k|0)/13|0;if(!((j|0)%13|0))k=j;else{m=j;break}}}else m=l;if(!((m|0)%11|0)){l=m;while(1){k=(l|0)/11|0;if(!((k|0)%11|0))l=k;else{n=k;break}}}else n=m;if(!(n&7)){m=n;while(1){l=(m|0)/8|0;if(!(l&7))m=l;else{o=l;break}}}else o=n;if(!((o|0)%7|0)){n=o;while(1){m=(n|0)/7|0;if(!((m|0)%7|0))n=m;else{p=m;break}}}else p=o;if(!((p|0)%5|0)){o=p;while(1){n=(o|0)/5|0;if(!((n|0)%5|0))o=n;else{q=n;break}}}else q=p;if(!(q&3)){p=q;while(1){o=(p|0)/4|0;if(!(o&3))p=o;else{r=o;break}}}else r=q;if(!((r|0)%3|0)){q=r;while(1){p=(q|0)/3|0;if(!((p|0)%3|0))q=p;else{s=p;break}}}else s=r;if(!(s&1))t=s;else{u=s;v=(u|0)==1;w=v&1;return w|0}while(1){s=(t|0)/2|0;if(!(s&1))t=s;else{u=s;break}}v=(u|0)==1;w=v&1;return w|0}function Ja(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;if(!((a|0)%53|0)){c=a;d=0;while(1){e=(c|0)/53|0;f[b+(d<<2)>>2]=53;g=d+1|0;if(!((e|0)%53|0)){c=e;d=g}else{h=g;i=e;break}}}else{h=0;i=a}if(!((i|0)%47|0)){a=i;d=h;while(1){c=(a|0)/47|0;f[b+(d<<2)>>2]=47;e=d+1|0;if(!((c|0)%47|0)){a=c;d=e}else{j=e;k=c;break}}}else{j=h;k=i}if(!((k|0)%43|0)){i=k;h=j;while(1){d=(i|0)/43|0;f[b+(h<<2)>>2]=43;a=h+1|0;if(!((d|0)%43|0)){i=d;h=a}else{l=a;m=d;break}}}else{l=j;m=k}if(!((m|0)%41|0)){k=m;j=l;while(1){h=(k|0)/41|0;f[b+(j<<2)>>2]=41;i=j+1|0;if(!((h|0)%41|0)){k=h;j=i}else{n=i;o=h;break}}}else{n=l;o=m}if(!((o|0)%37|0)){m=o;l=n;while(1){j=(m|0)/37|0;f[b+(l<<2)>>2]=37;k=l+1|0;if(!((j|0)%37|0)){m=j;l=k}else{p=k;q=j;break}}}else{p=n;q=o}if(!((q|0)%31|0)){o=q;n=p;while(1){l=(o|0)/31|0;f[b+(n<<2)>>2]=31;m=n+1|0;if(!((l|0)%31|0)){o=l;n=m}else{r=m;s=l;break}}}else{r=p;s=q}if(!((s|0)%29|0)){q=s;p=r;while(1){n=(q|0)/29|0;f[b+(p<<2)>>2]=29;o=p+1|0;if(!((n|0)%29|0)){q=n;p=o}else{t=o;u=n;break}}}else{t=r;u=s}if(!((u|0)%23|0)){s=u;r=t;while(1){p=(s|0)/23|0;f[b+(r<<2)>>2]=23;q=r+1|0;if(!((p|0)%23|0)){s=p;r=q}else{v=q;w=p;break}}}else{v=t;w=u}if(!((w|0)%19|0)){u=w;t=v;while(1){r=(u|0)/19|0;f[b+(t<<2)>>2]=19;s=t+1|0;if(!((r|0)%19|0)){u=r;t=s}else{x=s;y=r;break}}}else{x=v;y=w}if(!((y|0)%17|0)){w=y;v=x;while(1){t=(w|0)/17|0;f[b+(v<<2)>>2]=17;u=v+1|0;if(!((t|0)%17|0)){w=t;v=u}else{z=u;A=t;break}}}else{z=x;A=y}if(!((A|0)%13|0)){y=A;x=z;while(1){v=(y|0)/13|0;f[b+(x<<2)>>2]=13;w=x+1|0;if(!((v|0)%13|0)){y=v;x=w}else{B=w;C=v;break}}}else{B=z;C=A}if(!((C|0)%11|0)){A=C;z=B;while(1){x=(A|0)/11|0;f[b+(z<<2)>>2]=11;y=z+1|0;if(!((x|0)%11|0)){A=x;z=y}else{D=y;E=x;break}}}else{D=B;E=C}if(!(E&7)){C=E;B=D;while(1){z=(C|0)/8|0;f[b+(B<<2)>>2]=8;A=B+1|0;if(!(z&7)){C=z;B=A}else{F=A;G=z;break}}}else{F=D;G=E}if(!((G|0)%7|0)){E=G;D=F;while(1){B=(E|0)/7|0;f[b+(D<<2)>>2]=7;C=D+1|0;if(!((B|0)%7|0)){E=B;D=C}else{H=C;I=B;break}}}else{H=F;I=G}if(!((I|0)%5|0)){G=I;F=H;while(1){D=(G|0)/5|0;f[b+(F<<2)>>2]=5;E=F+1|0;if(!((D|0)%5|0)){G=D;F=E}else{J=E;K=D;break}}}else{J=H;K=I}if(!(K&3)){I=K;H=J;while(1){F=(I|0)/4|0;f[b+(H<<2)>>2]=4;G=H+1|0;if(!(F&3)){I=F;H=G}else{L=G;M=F;break}}}else{L=J;M=K}if(!((M|0)%3|0)){K=M;J=L;while(1){H=(K|0)/3|0;f[b+(J<<2)>>2]=3;I=J+1|0;if(!((H|0)%3|0)){K=H;J=I}else{N=I;O=H;break}}}else{N=L;O=M}if(!(O&1)){M=O;L=N;while(1){J=(M|0)/2|0;f[b+(L<<2)>>2]=2;K=L+1|0;if(!(J&1)){M=J;L=K}else{P=K;Q=J;break}}}else{P=N;Q=O}if((Q|0)>31){R=2;S=Q;T=P}else{U=P;return U|0}while(1){P=R*6|0;Q=P+-1|0;O=P|1;if(!((S|0)%(Q|0)|0)){P=S;N=T;while(1){f[b+(N<<2)>>2]=Q;L=N+1|0;M=(P|0)/(Q|0)|0;if(!((M|0)%(Q|0)|0)){P=M;N=L}else{V=L;W=M;break}}}else{V=T;W=S}if(!((W|0)%(O|0)|0)){N=W;P=V;while(1){f[b+(P<<2)>>2]=O;Q=P+1|0;M=(N|0)/(O|0)|0;if(!((M|0)%(O|0)|0)){N=M;P=Q}else{X=Q;Y=M;break}}}else{X=V;Y=W}if((Y|0)>1){R=R+1|0;S=Y;T=X}else{U=X;break}}return U|0}function Ka(a,b,c){a=a|0;b=b|0;c=c|0;switch(f[a+268>>2]|0){case 0:{La(c,b,a,f[a+4>>2]|0,f[a>>2]|0,1,0);return}case 1:{Ma(b,c,a,f[a+4>>2]|0,f[a>>2]|0);return}default:return}}function La(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,J=0,K=0,L=0,M=0.0,P=0.0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0,oa=0,pa=0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0,xa=0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0,Da=0.0,Ea=0.0,Fa=0;i=(e|0)>1;if(i)j=f[c+8+(h<<2)>>2]|0;else j=0;switch(e|0){case 1:{p[a>>3]=+p[b>>3];p[a+8>>3]=+p[b+8>>3];return}case 2:{k=+p[b>>3];p[a>>3]=k;l=+p[b+8>>3];m=a+8|0;p[m>>3]=l;n=+p[b+(g<<4)>>3];o=+p[b+(g<<4)+8>>3];p[a>>3]=k+n;p[m>>3]=o+l;p[a+16>>3]=k-n;p[a+24>>3]=l-o;return}case 3:{o=+p[b>>3];p[a>>3]=o;l=+p[b+8>>3];m=a+8|0;p[m>>3]=l;n=+p[b+(g<<4)>>3];q=a+16|0;p[q>>3]=n;k=+p[b+(g<<4)+8>>3];r=a+24|0;p[r>>3]=k;s=g<<1;t=+p[b+(s<<4)>>3];u=+p[b+(s<<4)+8>>3];v=t+n;w=u+k;x=+(d|0)*.86602540378;y=x*(n-t);t=x*(k-u);u=o-v*.5;k=l-w*.5;p[a>>3]=v+o;p[m>>3]=w+l;p[q>>3]=u+t;p[r>>3]=k-y;p[a+32>>3]=u-t;p[a+40>>3]=y+k;return}case 4:{k=+p[b>>3];p[a>>3]=k;y=+p[b+8>>3];r=a+8|0;p[r>>3]=y;t=+p[b+(g<<4)>>3];q=a+16|0;p[q>>3]=t;u=+p[b+(g<<4)+8>>3];m=a+24|0;p[m>>3]=u;s=g<<1;l=+p[b+(s<<4)>>3];z=a+32|0;p[z>>3]=l;w=+p[b+(s<<4)+8>>3];s=a+40|0;p[s>>3]=w;A=g*3|0;o=+p[b+(A<<4)>>3];v=+p[b+(A<<4)+8>>3];x=k+l;n=y+w;B=k-l;l=y-w;w=t+o;y=v+u;k=+(d|0);C=k*(t-o);o=k*(u-v);p[a>>3]=x+w;p[r>>3]=n+y;p[q>>3]=B+o;p[m>>3]=l-C;p[z>>3]=x-w;p[s>>3]=n-y;p[a+48>>3]=B-o;p[a+56>>3]=l+C;return}case 5:{C=+p[b>>3];p[a>>3]=C;l=+p[b+8>>3];s=a+8|0;p[s>>3]=l;o=+p[b+(g<<4)>>3];z=a+16|0;p[z>>3]=o;B=+p[b+(g<<4)+8>>3];m=a+24|0;p[m>>3]=B;q=g<<1;y=+p[b+(q<<4)>>3];r=a+32|0;p[r>>3]=y;n=+p[b+(q<<4)+8>>3];q=a+40|0;p[q>>3]=n;A=g*3|0;w=+p[b+(A<<4)>>3];D=a+48|0;p[D>>3]=w;x=+p[b+(A<<4)+8>>3];A=a+56|0;p[A>>3]=x;E=g<<2;v=+p[b+(E<<4)>>3];F=a+64|0;p[F>>3]=v;u=+p[b+(E<<4)+8>>3];E=a+72|0;p[E>>3]=u;k=v+o;t=o-v;v=u+B;o=B-u;u=y+w;B=y-w;w=n+x;y=n-x;G=(d|0)==1;x=B*.58778525229;n=y*.58778525229;if(G){H=t*.95105651629+x;I=o*.95105651629+n}else{H=t*-.95105651629-x;I=o*-.95105651629-n}n=k*.30901699437-u*.80901699437+C;x=v*.30901699437-w*.80901699437+l;p[z>>3]=I+n;p[m>>3]=x-H;p[F>>3]=n-I;p[E>>3]=H+x;x=y*.95105651629;y=B*.95105651629;B=t*.58778525229;t=o*.58778525229;o=G?B-y:y-B;B=(G?t:x)-(G?x:t);t=u*.30901699437-k*.80901699437+C;x=w*.30901699437-v*.80901699437+l;p[r>>3]=t+B;p[q>>3]=x-o;p[D>>3]=t-B;p[A>>3]=x+o;p[a>>3]=k+u+C;p[s>>3]=v+w+l;return}case 7:{l=+p[b>>3];p[a>>3]=l;w=+p[b+8>>3];s=a+8|0;p[s>>3]=w;v=+p[b+(g<<4)>>3];A=a+16|0;p[A>>3]=v;C=+p[b+(g<<4)+8>>3];D=a+24|0;p[D>>3]=C;q=g<<1;u=+p[b+(q<<4)>>3];r=a+32|0;p[r>>3]=u;k=+p[b+(q<<4)+8>>3];q=a+40|0;p[q>>3]=k;G=g*3|0;o=+p[b+(G<<4)>>3];E=a+48|0;p[E>>3]=o;x=+p[b+(G<<4)+8>>3];G=a+56|0;p[G>>3]=x;F=g<<2;B=+p[b+(F<<4)>>3];m=a+64|0;p[m>>3]=B;t=+p[b+(F<<4)+8>>3];F=a+72|0;p[F>>3]=t;z=g*5|0;y=+p[b+(z<<4)>>3];J=a+80|0;p[J>>3]=y;H=+p[b+(z<<4)+8>>3];z=a+88|0;p[z>>3]=H;K=g*6|0;I=+p[b+(K<<4)>>3];L=a+96|0;p[L>>3]=I;n=+p[b+(K<<4)+8>>3];K=a+104|0;p[K>>3]=n;M=I+v;P=v-I;I=n+C;v=C-n;n=u+y;C=u-y;y=k+H;u=k-H;H=o+B;k=o-B;B=x+t;o=x-t;t=M*.62348980185+l-n*.22252093395-H*.9009688679;x=I*.62348980185+w-y*.22252093395-B*.9009688679;Q=(d|0)==1;R=u*.97492791218;S=C*.97492791218;T=o*.43388373911;U=k*.43388373911;if(Q){V=P*-.78183148246-S-U;W=v*-.78183148246-R-T}else{V=P*.78183148246+S+U;W=v*.78183148246+R+T}p[A>>3]=t-W;p[L>>3]=t+W;p[D>>3]=x+V;p[K>>3]=x-V;V=H*.62348980185+(l-M*.22252093395-n*.9009688679);x=B*.62348980185+(w-I*.22252093395-y*.9009688679);W=C*.43388373911;t=u*.43388373911;T=k*.78183148246;R=o*.78183148246;U=P*.97492791218;if(Q){Y=W-U+T;Z=t-v*.97492791218+R}else{Y=U-W-T;Z=v*.97492791218-t-R}p[r>>3]=V-Z;p[J>>3]=V+Z;p[q>>3]=x+Y;p[z>>3]=x-Y;Y=n*.62348980185+(l-M*.9009688679)-H*.22252093395;x=y*.62348980185+(w-I*.9009688679)-B*.22252093395;Z=k*.97492791218;k=o*.97492791218;o=u*.78183148246;u=C*.78183148246;C=P*.43388373911;if(Q){_=u-C-Z;$=o-v*.43388373911-k}else{_=C-u+Z;$=v*.43388373911-o+k}p[E>>3]=Y-$;p[m>>3]=Y+$;p[G>>3]=x+_;p[F>>3]=x-_;p[a>>3]=M+n+H+l;p[s>>3]=I+y+B+w;return}case 8:{w=+p[b>>3];p[a>>3]=w;B=+p[b+8>>3];s=a+8|0;p[s>>3]=B;y=+p[b+(g<<4)>>3];F=a+16|0;p[F>>3]=y;I=+p[b+(g<<4)+8>>3];G=a+24|0;p[G>>3]=I;m=g<<1;l=+p[b+(m<<4)>>3];E=a+32|0;p[E>>3]=l;H=+p[b+(m<<4)+8>>3];m=a+40|0;p[m>>3]=H;Q=g*3|0;n=+p[b+(Q<<4)>>3];z=a+48|0;p[z>>3]=n;M=+p[b+(Q<<4)+8>>3];Q=a+56|0;p[Q>>3]=M;q=g<<2;_=+p[b+(q<<4)>>3];J=a+64|0;p[J>>3]=_;x=+p[b+(q<<4)+8>>3];q=a+72|0;p[q>>3]=x;r=g*5|0;$=+p[b+(r<<4)>>3];K=a+80|0;p[K>>3]=$;Y=+p[b+(r<<4)+8>>3];r=a+88|0;p[r>>3]=Y;D=g*6|0;k=+p[b+(D<<4)>>3];L=a+96|0;p[L>>3]=k;o=+p[b+(D<<4)+8>>3];D=a+104|0;p[D>>3]=o;A=g*7|0;v=+p[b+(A<<4)>>3];aa=a+112|0;p[aa>>3]=v;Z=+p[b+(A<<4)+8>>3];A=a+120|0;p[A>>3]=Z;u=w+_;C=w-_;_=B+x;w=B-x;x=y+v;B=y-v;v=Z+I;y=I-Z;Z=n+$;I=n-$;$=M+Y;n=M-Y;Y=l+k;M=l-k;k=H+o;l=H-o;p[a>>3]=u+x+Z+Y;p[s>>3]=_+v+$+k;p[J>>3]=u-x-Z+Y;p[q>>3]=_-v-$+k;o=B+I;H=y+n;P=(x-Z)*.7071067811865476;Z=C+P;x=(v-$)*.7071067811865476;$=w+x;q=(d|0)==1;if(q){ba=o*-.7071067811865476-M;ca=H*-.7071067811865476-l;da=o*.7071067811865476;ea=H*.7071067811865476}else{v=o*.7071067811865476;o=H*.7071067811865476;ba=v+M;ca=o+l;da=v;ea=o}p[F>>3]=Z-ca;p[G>>3]=$+ba;p[aa>>3]=Z+ca;p[A>>3]=$-ba;ba=u-Y;Y=_-k;k=q?n-y:y-n;n=q?I-B:B-I;p[E>>3]=ba-k;p[m>>3]=n+Y;p[L>>3]=k+ba;p[D>>3]=Y-n;n=C-P;P=w-x;x=q?M-da:da-M;M=(q?l:ea)-(q?ea:l);p[z>>3]=n-M;p[Q>>3]=P+x;p[K>>3]=n+M;p[r>>3]=P-x;return}default:switch(j|0){case 2:{r=(e|0)/2|0;K=g<<1;Q=h+1|0;La(a,b,c,d,r,K,Q);La(a+(r<<4)|0,b+(g<<4)|0,c,d,r,K,Q);if(!i)return;i=r+-1|0;Q=0;do{K=i+Q|0;x=+p[c+272+(K<<4)>>3];P=+p[c+272+(K<<4)+8>>3];K=Q+r|0;z=a+(Q<<4)|0;M=+p[z>>3];q=a+(Q<<4)+8|0;n=+p[q>>3];D=a+(K<<4)|0;l=+p[D>>3];L=a+(K<<4)+8|0;ea=+p[L>>3];da=x*l-P*ea;w=P*l+x*ea;p[z>>3]=M+da;p[q>>3]=n+w;p[D>>3]=M-da;p[L>>3]=n-w;Q=Q+1|0}while((Q|0)<(r|0));return}case 3:{r=(e|0)/3|0;Q=g*3|0;i=h+1|0;La(a,b,c,d,r,Q,i);La(a+(r<<4)|0,b+(g<<4)|0,c,d,r,Q,i);La(a+(r<<1<<4)|0,b+(g<<1<<4)|0,c,d,r,Q,i);if((e|0)<=2)return;i=r+-1|0;w=+(d|0)*.86602540378;Q=0;do{L=Q<<1;D=i+L|0;n=+p[c+272+(D<<4)>>3];da=+p[c+272+(D<<4)+8>>3];D=L+r|0;M=+p[c+272+(D<<4)>>3];ea=+p[c+272+(D<<4)+8>>3];D=Q+r|0;L=D+r|0;q=a+(Q<<4)|0;x=+p[q>>3];z=a+(Q<<4)+8|0;l=+p[z>>3];K=a+(D<<4)|0;P=+p[K>>3];m=a+(D<<4)+8|0;C=+p[m>>3];Y=n*P-da*C;ba=da*P+n*C;D=a+(L<<4)|0;C=+p[D>>3];E=a+(L<<4)+8|0;n=+p[E>>3];P=M*C-ea*n;da=ea*C+M*n;n=Y+P;M=ba+da;C=w*(Y-P);P=w*(ba-da);da=x-n*.5;ba=l-M*.5;p[q>>3]=x+n;p[z>>3]=l+M;p[K>>3]=P+da;p[m>>3]=ba-C;p[D>>3]=da-P;p[E>>3]=C+ba;Q=Q+1|0}while((Q|0)<(r|0));return}case 4:{r=(e|0)/4|0;Q=g<<2;i=h+1|0;La(a,b,c,d,r,Q,i);E=a+(r<<4)|0;La(E,b+(g<<4)|0,c,d,r,Q,i);D=r<<1;La(a+(D<<4)|0,b+(g<<1<<4)|0,c,d,r,Q,i);m=r*3|0;La(a+(m<<4)|0,b+(g*3<<4)|0,c,d,r,Q,i);w=+p[a>>3];i=a+8|0;ba=+p[i>>3];C=+p[E>>3];Q=a+(r<<4)+8|0;P=+p[Q>>3];K=a+(D<<4)|0;da=+p[K>>3];z=a+(D<<4)+8|0;M=+p[z>>3];D=a+(m<<4)|0;l=+p[D>>3];q=a+(m<<4)+8|0;n=+p[q>>3];x=w+da;Y=ba+M;ea=w-da;da=ba-M;M=C+l;ba=P+n;w=+(d|0);k=w*(C-l);l=w*(P-n);p[a>>3]=x+M;p[i>>3]=Y+ba;p[E>>3]=ea+l;p[Q>>3]=da-k;p[K>>3]=x-M;p[z>>3]=Y-ba;p[D>>3]=ea-l;p[q>>3]=da+k;if((e|0)<=7)return;q=r+-1|0;D=1;do{z=D*3|0;K=q+z|0;k=+p[c+272+(K<<4)>>3];da=+p[c+272+(K<<4)+8>>3];K=z+r|0;l=+p[c+272+(K<<4)>>3];ea=+p[c+272+(K<<4)+8>>3];z=K+1|0;ba=+p[c+272+(z<<4)>>3];Y=+p[c+272+(z<<4)+8>>3];z=D+r|0;K=z+r|0;Q=K+r|0;E=a+(D<<4)|0;M=+p[E>>3];i=a+(D<<4)+8|0;x=+p[i>>3];m=a+(z<<4)|0;n=+p[m>>3];L=a+(z<<4)+8|0;P=+p[L>>3];C=k*n-da*P;I=da*n+k*P;z=a+(K<<4)|0;P=+p[z>>3];A=a+(K<<4)+8|0;k=+p[A>>3];n=l*P-ea*k;da=ea*P+l*k;K=a+(Q<<4)|0;k=+p[K>>3];aa=a+(Q<<4)+8|0;l=+p[aa>>3];P=ba*k-Y*l;ea=Y*k+ba*l;l=M+n;ba=x+da;k=M-n;n=x-da;da=C+P;x=I+ea;M=w*(C-P);P=w*(I-ea);p[E>>3]=l+da;p[i>>3]=ba+x;p[m>>3]=k+P;p[L>>3]=n-M;p[z>>3]=l-da;p[A>>3]=ba-x;p[K>>3]=k-P;p[aa>>3]=n+M;D=D+1|0}while((D|0)<(r|0));return}case 5:{r=(e|0)/5|0;D=g*5|0;q=h+1|0;La(a,b,c,d,r,D,q);aa=a+(r<<4)|0;La(aa,b+(g<<4)|0,c,d,r,D,q);K=r<<1;La(a+(K<<4)|0,b+(g<<1<<4)|0,c,d,r,D,q);A=r*3|0;La(a+(A<<4)|0,b+(g*3<<4)|0,c,d,r,D,q);z=r<<2;La(a+(z<<4)|0,b+(g<<2<<4)|0,c,d,r,D,q);w=+p[a>>3];q=a+8|0;M=+p[q>>3];n=+p[aa>>3];D=a+(r<<4)+8|0;P=+p[D>>3];L=a+(K<<4)|0;k=+p[L>>3];m=a+(K<<4)+8|0;x=+p[m>>3];K=a+(A<<4)|0;ba=+p[K>>3];i=a+(A<<4)+8|0;da=+p[i>>3];A=a+(z<<4)|0;l=+p[A>>3];E=a+(z<<4)+8|0;ea=+p[E>>3];I=n+l;C=P+ea;Y=k+ba;B=x+da;y=n-l;l=P-ea;ea=k-ba;ba=x-da;p[a>>3]=Y+(w+I);p[q>>3]=B+(M+C);da=+(d|0);x=da*(ea*.58778525229+y*.95105651629);k=da*(ba*.58778525229+l*.95105651629);P=w+(I*.30901699437-Y*.80901699437);n=M+(C*.30901699437-B*.80901699437);p[aa>>3]=P+k;p[D>>3]=n-x;p[A>>3]=P-k;p[E>>3]=x+n;n=da*(y*.58778525229-ea*.95105651629);ea=da*(l*.58778525229-ba*.95105651629);ba=w+(Y*.30901699437-I*.80901699437);I=M+(B*.30901699437-C*.80901699437);p[L>>3]=ba+ea;p[m>>3]=I-n;p[K>>3]=ba-ea;p[i>>3]=n+I;if((e|0)<=9)return;i=r+-1|0;K=(d|0)==1;m=1;do{L=m<<2;E=i+L|0;I=+p[c+272+(E<<4)>>3];n=+p[c+272+(E<<4)+8>>3];E=L+r|0;ea=+p[c+272+(E<<4)>>3];ba=+p[c+272+(E<<4)+8>>3];L=E+1|0;C=+p[c+272+(L<<4)>>3];B=+p[c+272+(L<<4)+8>>3];L=E+2|0;M=+p[c+272+(L<<4)>>3];Y=+p[c+272+(L<<4)+8>>3];L=m+r|0;E=L+r|0;A=E+r|0;D=A+r|0;aa=a+(m<<4)|0;w=+p[aa>>3];q=a+(m<<4)+8|0;l=+p[q>>3];z=a+(L<<4)|0;da=+p[z>>3];Q=a+(L<<4)+8|0;y=+p[Q>>3];x=I*da-n*y;k=n*da+I*y;L=a+(E<<4)|0;y=+p[L>>3];G=a+(E<<4)+8|0;I=+p[G>>3];da=ea*y-ba*I;n=ba*y+ea*I;E=a+(A<<4)|0;I=+p[E>>3];F=a+(A<<4)+8|0;ea=+p[F>>3];y=C*I-B*ea;ba=B*I+C*ea;A=a+(D<<4)|0;ea=+p[A>>3];J=a+(D<<4)+8|0;C=+p[J>>3];I=M*ea-Y*C;B=Y*ea+M*C;C=x+I;M=k+B;ea=da+y;Y=n+ba;P=x-I;I=k-B;B=da-y;y=n-ba;p[aa>>3]=ea+(w+C);p[q>>3]=Y+(l+M);ba=B*.58778525229;n=y*.58778525229;if(K){fa=ba+P*.95105651629;ga=n+I*.95105651629}else{fa=P*-.95105651629-ba;ga=I*-.95105651629-n}n=w+(C*.30901699437-ea*.80901699437);ba=l+(M*.30901699437-Y*.80901699437);p[z>>3]=n+ga;p[Q>>3]=ba-fa;p[A>>3]=n-ga;p[J>>3]=ba+fa;ba=y*.95105651629;y=B*.95105651629;B=P*.58778525229;P=I*.58778525229;I=K?B-y:y-B;B=(K?P:ba)-(K?ba:P);P=w+(ea*.30901699437-C*.80901699437);C=l+(Y*.30901699437-M*.80901699437);p[L>>3]=P+B;p[G>>3]=C-I;p[E>>3]=P-B;p[F>>3]=C+I;m=m+1|0}while((m|0)<(r|0));return}case 7:{r=(e|0)/7|0;m=g*7|0;K=h+1|0;La(a,b,c,d,r,m,K);i=a+(r<<4)|0;La(i,b+(g<<4)|0,c,d,r,m,K);F=r<<1;La(a+(F<<4)|0,b+(g<<1<<4)|0,c,d,r,m,K);E=r*3|0;La(a+(E<<4)|0,b+(g*3<<4)|0,c,d,r,m,K);G=r<<2;La(a+(G<<4)|0,b+(g<<2<<4)|0,c,d,r,m,K);L=r*5|0;La(a+(L<<4)|0,b+(g*5<<4)|0,c,d,r,m,K);J=r*6|0;La(a+(J<<4)|0,b+(g*6<<4)|0,c,d,r,m,K);fa=+p[a>>3];K=a+8|0;ga=+p[K>>3];I=+p[i>>3];m=a+(r<<4)+8|0;C=+p[m>>3];A=a+(F<<4)|0;B=+p[A>>3];Q=a+(F<<4)+8|0;P=+p[Q>>3];F=a+(E<<4)|0;M=+p[F>>3];z=a+(E<<4)+8|0;Y=+p[z>>3];E=a+(G<<4)|0;l=+p[E>>3];q=a+(G<<4)+8|0;ea=+p[q>>3];G=a+(L<<4)|0;w=+p[G>>3];aa=a+(L<<4)+8|0;ba=+p[aa>>3];L=a+(J<<4)|0;y=+p[L>>3];D=a+(J<<4)+8|0;n=+p[D>>3];da=I+y;k=I-y;y=C+n;I=C-n;n=B+w;C=B-w;w=P+ba;B=P-ba;ba=M+l;P=M-l;l=Y+ea;M=Y-ea;p[a>>3]=ba+(n+(fa+da));p[K>>3]=l+(w+(ga+y));ea=fa+da*.62348980185-n*.22252093395-ba*.9009688679;Y=ga+y*.62348980185-w*.22252093395-l*.9009688679;K=(d|0)==1;x=P*.43388373911;_=M*.43388373911;u=B*.97492791218;$=C*.97492791218;if(K){ha=I*-.78183148246-u-_;ia=k*-.78183148246-$-x}else{ha=_+(u+I*.78183148246);ia=x+($+k*.78183148246)}p[i>>3]=ea-ha;p[m>>3]=Y+ia;p[L>>3]=ea+ha;p[D>>3]=Y-ia;ia=ba*.62348980185+(fa-da*.22252093395-n*.9009688679);Y=l*.62348980185+(ga-y*.22252093395-w*.9009688679);ha=P*.78183148246;ea=M*.78183148246;$=C*.43388373911;x=B*.43388373911;u=k*.97492791218;if(K){ja=ea+(x-I*.97492791218);ka=ha+($-u)}else{ja=I*.97492791218-x-ea;ka=u-$-ha}p[A>>3]=ia-ja;p[Q>>3]=Y+ka;p[G>>3]=ia+ja;p[aa>>3]=Y-ka;ka=n*.62348980185+(fa-da*.9009688679)-ba*.22252093395;ba=w*.62348980185+(ga-y*.9009688679)-l*.22252093395;l=M*.97492791218;M=B*.78183148246;B=P*.97492791218;P=C*.78183148246;C=k*.43388373911;if(K){la=M-I*.43388373911-l;ma=P-C-B}else{la=l+(I*.43388373911-M);ma=B+(C-P)}p[F>>3]=ka-la;p[z>>3]=ba+ma;p[E>>3]=ka+la;p[q>>3]=ba-ma;if((e|0)<=13)return;q=r+-1|0;E=1;do{z=E*6|0;F=q+z|0;ma=+p[c+272+(F<<4)>>3];ba=+p[c+272+(F<<4)+8>>3];F=z+r|0;la=+p[c+272+(F<<4)>>3];ka=+p[c+272+(F<<4)+8>>3];z=F+1|0;P=+p[c+272+(z<<4)>>3];C=+p[c+272+(z<<4)+8>>3];z=F+2|0;B=+p[c+272+(z<<4)>>3];M=+p[c+272+(z<<4)+8>>3];z=F+3|0;I=+p[c+272+(z<<4)>>3];l=+p[c+272+(z<<4)+8>>3];z=F+4|0;k=+p[c+272+(z<<4)>>3];y=+p[c+272+(z<<4)+8>>3];z=E+r|0;F=z+r|0;aa=F+r|0;G=aa+r|0;Q=G+r|0;A=Q+r|0;D=a+(E<<4)|0;ga=+p[D>>3];L=a+(E<<4)+8|0;w=+p[L>>3];m=a+(z<<4)|0;da=+p[m>>3];i=a+(z<<4)+8|0;fa=+p[i>>3];n=ma*da-ba*fa;Y=ba*da+ma*fa;z=a+(F<<4)|0;fa=+p[z>>3];J=a+(F<<4)+8|0;ma=+p[J>>3];da=la*fa-ka*ma;ba=ka*fa+la*ma;F=a+(aa<<4)|0;ma=+p[F>>3];s=a+(aa<<4)+8|0;la=+p[s>>3];fa=P*ma-C*la;ka=C*ma+P*la;aa=a+(G<<4)|0;la=+p[aa>>3];na=a+(G<<4)+8|0;P=+p[na>>3];ma=B*la-M*P;C=M*la+B*P;G=a+(Q<<4)|0;P=+p[G>>3];oa=a+(Q<<4)+8|0;B=+p[oa>>3];la=I*P-l*B;M=l*P+I*B;Q=a+(A<<4)|0;B=+p[Q>>3];pa=a+(A<<4)+8|0;I=+p[pa>>3];P=k*B-y*I;l=y*B+k*I;I=n+P;k=n-P;P=Y+l;n=Y-l;l=da+la;Y=da-la;la=ba+M;da=ba-M;M=fa+ma;ba=fa-ma;ma=ka+C;fa=ka-C;p[D>>3]=M+(l+(ga+I));p[L>>3]=ma+(la+(w+P));C=ga+I*.62348980185-l*.22252093395-M*.9009688679;ka=w+P*.62348980185-la*.22252093395-ma*.9009688679;B=ba*.43388373911;y=fa*.43388373911;ja=da*.97492791218;ia=Y*.97492791218;if(K){qa=n*-.78183148246-ja-y;ra=k*-.78183148246-ia-B}else{qa=y+(ja+n*.78183148246);ra=B+(ia+k*.78183148246)}p[m>>3]=C-qa;p[i>>3]=ka+ra;p[Q>>3]=C+qa;p[pa>>3]=ka-ra;ka=M*.62348980185+(ga-I*.22252093395-l*.9009688679);C=ma*.62348980185+(w-P*.22252093395-la*.9009688679);ia=fa*.78183148246;B=da*.43388373911;ja=ba*.78183148246;y=Y*.43388373911;ha=k*.97492791218;if(K){sa=ia+(B-n*.97492791218);ta=ja+(y-ha)}else{sa=n*.97492791218-B-ia;ta=ha-y-ja}p[z>>3]=ka-sa;p[J>>3]=C+ta;p[G>>3]=ka+sa;p[oa>>3]=C-ta;C=l*.62348980185+(ga-I*.9009688679)-M*.22252093395;M=la*.62348980185+(w-P*.9009688679)-ma*.22252093395;ma=fa*.97492791218;fa=da*.78183148246;da=ba*.97492791218;ba=Y*.78183148246;Y=k*.43388373911;if(K){ua=fa-n*.43388373911-ma;va=ba-Y-da}else{ua=ma+(n*.43388373911-fa);va=da+(Y-ba)}p[F>>3]=C-ua;p[s>>3]=M+va;p[aa>>3]=C+ua;p[na>>3]=M-va;E=E+1|0}while((E|0)<(r|0));return}case 8:{r=(e|0)/8|0;E=g<<3;K=h+1|0;La(a,b,c,d,r,E,K);La(a+(r<<4)|0,b+(g<<4)|0,c,d,r,E,K);La(a+(r<<1<<4)|0,b+(g<<1<<4)|0,c,d,r,E,K);La(a+(r*3<<4)|0,b+(g*3<<4)|0,c,d,r,E,K);La(a+(r<<2<<4)|0,b+(g<<2<<4)|0,c,d,r,E,K);La(a+(r*5<<4)|0,b+(g*5<<4)|0,c,d,r,E,K);La(a+(r*6<<4)|0,b+(g*6<<4)|0,c,d,r,E,K);La(a+(r*7<<4)|0,b+(g*7<<4)|0,c,d,r,E,K);if((e|0)<=7)return;K=r+-1|0;E=(d|0)==1;q=0;do{na=q*7|0;aa=K+na|0;va=+p[c+272+(aa<<4)>>3];ua=+p[c+272+(aa<<4)+8>>3];aa=na+r|0;ta=+p[c+272+(aa<<4)>>3];sa=+p[c+272+(aa<<4)+8>>3];na=aa+1|0;ra=+p[c+272+(na<<4)>>3];qa=+p[c+272+(na<<4)+8>>3];na=aa+2|0;M=+p[c+272+(na<<4)>>3];C=+p[c+272+(na<<4)+8>>3];na=aa+3|0;ba=+p[c+272+(na<<4)>>3];Y=+p[c+272+(na<<4)+8>>3];na=aa+4|0;da=+p[c+272+(na<<4)>>3];fa=+p[c+272+(na<<4)+8>>3];na=aa+5|0;n=+p[c+272+(na<<4)>>3];ma=+p[c+272+(na<<4)+8>>3];na=q+r|0;aa=na+r|0;s=aa+r|0;F=s+r|0;oa=F+r|0;G=oa+r|0;J=G+r|0;z=a+(q<<4)|0;k=+p[z>>3];pa=a+(q<<4)+8|0;P=+p[pa>>3];Q=a+(na<<4)|0;w=+p[Q>>3];i=a+(na<<4)+8|0;la=+p[i>>3];I=va*w-ua*la;ga=ua*w+va*la;na=a+(aa<<4)|0;la=+p[na>>3];m=a+(aa<<4)+8|0;va=+p[m>>3];w=ta*la-sa*va;ua=sa*la+ta*va;aa=a+(s<<4)|0;va=+p[aa>>3];L=a+(s<<4)+8|0;ta=+p[L>>3];la=ra*va-qa*ta;sa=qa*va+ra*ta;s=a+(F<<4)|0;ta=+p[s>>3];D=a+(F<<4)+8|0;ra=+p[D>>3];va=M*ta-C*ra;qa=C*ta+M*ra;F=a+(oa<<4)|0;ra=+p[F>>3];A=a+(oa<<4)+8|0;M=+p[A>>3];ta=ba*ra-Y*M;C=Y*ra+ba*M;oa=a+(G<<4)|0;M=+p[oa>>3];wa=a+(G<<4)+8|0;ba=+p[wa>>3];ra=da*M-fa*ba;Y=fa*M+da*ba;G=a+(J<<4)|0;ba=+p[G>>3];xa=a+(J<<4)+8|0;da=+p[xa>>3];M=n*ba-ma*da;fa=ma*ba+n*da;da=k+va;n=k-va;va=P+qa;k=P-qa;qa=I+M;P=I-M;M=ga+fa;I=ga-fa;fa=la+ta;ga=la-ta;ta=sa-C;la=sa+C;C=w+ra;sa=w-ra;ra=ua-Y;w=ua+Y;p[z>>3]=C+(fa+(da+qa));p[pa>>3]=w+(la+(va+M));p[s>>3]=C+(da-qa-fa);p[D>>3]=w+(va-M-la);Y=ga+P;ua=ta+I;ba=(qa-fa)*.7071067811865476;fa=n+ba;qa=(M-la)*.7071067811865476;la=k+qa;if(E){ya=ua*-.7071067811865476-ra;za=Y*-.7071067811865476-sa;Aa=ua*.7071067811865476;Ba=Y*.7071067811865476}else{M=Y*.7071067811865476;Y=ua*.7071067811865476;ya=ra+Y;za=sa+M;Aa=Y;Ba=M}p[Q>>3]=fa-ya;p[i>>3]=la+za;p[G>>3]=fa+ya;p[xa>>3]=la-za;la=da-C;C=va-w;w=E?ga-P:P-ga;ga=E?ta-I:I-ta;p[na>>3]=la-ga;p[m>>3]=C+w;p[oa>>3]=la+ga;p[wa>>3]=C-w;w=n-ba;ba=k-qa;qa=E?sa-Ba:Ba-sa;sa=(E?ra:Aa)-(E?Aa:ra);p[aa>>3]=w-sa;p[L>>3]=ba+qa;p[F>>3]=w+sa;p[A>>3]=ba-qa;q=q+1|0}while((q|0)<(r|0));return}default:{r=j+-1|0;q=r<<3;E=Vc(q)|0;K=Vc(q)|0;A=Vc(q)|0;F=Vc(q)|0;q=j<<3;L=Vc(q)|0;aa=Vc(q)|0;q=(e|0)/(j|0)|0;e=X(j,g)|0;if((j|0)>0){wa=h+1|0;h=0;do{La(a+((X(h,q)|0)<<4)|0,b+((X(h,g)|0)<<4)|0,c,d,q,e,wa);h=h+1|0}while((h|0)!=(j|0));h=(r|0)/2|0;if((j|0)<3)Ca=h;else{Aa=+(j|0);wa=1;while(1){Ba=+(wa|0)*6.283185307179586/Aa;za=+N(+Ba);e=wa+-1|0;p[A+(e<<3)>>3]=za;za=+O(+Ba);p[F+(e<<3)>>3]=za;if((wa|0)<(h|0))wa=wa+1|0;else{Ca=h;break}}}}else Ca=(r|0)/2|0;h=(r|0)>1;if(h){wa=Ca+-1|0;e=0;do{g=wa-e|0;b=e+Ca|0;p[F+(b<<3)>>3]=-+p[F+(g<<3)>>3];p[A+(b<<3)>>3]=+p[A+(g<<3)>>3];e=e+1|0}while((e|0)<(Ca|0))}if((q|0)>0){e=q+-1|0;wa=(j|0)>1;Aa=+(d|0);d=0;do{g=a+(d<<4)|0;p[L>>3]=+p[g>>3];b=a+(d<<4)+8|0;p[aa>>3]=+p[b>>3];if(wa){oa=e+(X(d,r)|0)|0;m=0;while(1){za=+p[c+272+(oa<<4)>>3];Ba=+p[c+272+(oa<<4)+8>>3];m=m+1|0;na=(X(m,q)|0)+d|0;ya=+p[a+(na<<4)>>3];qa=+p[a+(na<<4)+8>>3];p[L+(m<<3)>>3]=ya*za-Ba*qa;p[aa+(m<<3)>>3]=qa*za+ya*Ba;if((m|0)==(r|0))break;else oa=oa+1|0}}if(h){oa=0;do{m=oa;oa=oa+1|0;Ba=+p[L+(oa<<3)>>3];na=r-m|0;ya=+p[L+(na<<3)>>3];p[E+(m<<3)>>3]=Ba+ya;za=+p[aa+(oa<<3)>>3];qa=+p[aa+(na<<3)>>3];na=m+Ca|0;p[K+(na<<3)>>3]=za-qa;p[K+(m<<3)>>3]=qa+za;p[E+(na<<3)>>3]=Ba-ya}while((oa|0)<(Ca|0));ya=+p[L>>3];Ba=+p[aa>>3];if(h){za=Ba;qa=ya;oa=0;do{qa=qa+ +p[E+(oa<<3)>>3];za=za+ +p[K+(oa<<3)>>3];oa=oa+1|0}while((oa|0)<(Ca|0));p[g>>3]=qa;p[b>>3]=za;if(h){oa=0;do{na=oa;oa=oa+1|0;ba=0.0;sa=0.0;m=0;w=Ba;ra=ya;do{xa=m;m=m+1|0;G=X(m,oa)|0;while(1)if((G|0)<(j|0))break;else G=G-j|0;i=G+-1|0;k=+p[A+(i<<3)>>3];ra=ra+k*+p[E+(xa<<3)>>3];w=w+k*+p[K+(xa<<3)>>3];k=+p[F+(i<<3)>>3];i=xa+Ca|0;sa=sa-k*+p[E+(i<<3)>>3];ba=ba-k*+p[K+(i<<3)>>3]}while((m|0)<(Ca|0));k=Aa*sa;n=Aa*ba;m=(X(oa,q)|0)+d|0;p[a+(m<<4)>>3]=ra-n;p[a+(m<<4)+8>>3]=w+k;m=(X(r-na|0,q)|0)+d|0;p[a+(m<<4)>>3]=ra+n;p[a+(m<<4)+8>>3]=w-k}while((oa|0)<(Ca|0))}}else{Da=Ba;Ea=ya;Fa=89}}else{Da=+p[aa>>3];Ea=+p[L>>3];Fa=89}if((Fa|0)==89){Fa=0;p[g>>3]=Ea;p[b>>3]=Da}d=d+1|0}while((d|0)!=(q|0))}Wc(E);Wc(K);Wc(A);Wc(F);Wc(L);Wc(aa);return}}}}function Ma(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0.0,A=0.0,B=0,C=0,D=0,E=0;g=c+268|0;f[g>>2]=0;h=+(e|0);i=~~+ha(+(+W(+(+Fc(h)/.3010299956639812))));j=c+4|0;k=f[j>>2]|0;l=f[c>>2]|0;m=e<<1;n=i<<((i|0)<(m+-2|0)&1);f[c>>2]=n;i=n<<4;o=Vc(i)|0;q=Vc(i)|0;r=Vc(i)|0;s=Vc(i)|0;t=e<<4;u=Vc(t)|0;v=3.141592653589793/h;w=(e|0)>0;if(w){x=0;y=0;while(1){h=v*+(x|0);z=+N(+h);p[u+(y<<4)>>3]=z;A=+O(+h);p[u+(y<<4)+8>>3]=A;p[r+(y<<4)>>3]=z;p[r+(y<<4)+8>>3]=A;B=(y<<1|1)+x|0;while(1)if((B|0)>(m|0))B=B-m|0;else break;y=y+1|0;if((y|0)==(e|0))break;else x=B}}x=n-e|0;if((x|0)<(e|0))C=x+1|0;else{y=x+1|0;_c(r+(e<<4)|0,0,y-e<<4|0)|0;C=y}if((C|0)<(n|0)){y=C;do{C=n-y|0;p[r+(y<<4)>>3]=+p[u+(C<<4)>>3];p[r+(y<<4)+8>>3]=+p[u+(C<<4)+8>>3];y=y+1|0}while((y|0)!=(n|0))}v=1.0/+(n|0);y=(n|0)>0;if(y){C=0;do{x=r+(C<<4)+8|0;p[x>>3]=v*+p[x>>3];x=r+(C<<4)|0;p[x>>3]=v*+p[x>>3];C=C+1|0}while((C|0)!=(n|0))}La(q,r,c,k,n,1,0);C=(d|0)==1;if(C){if(w){x=0;do{v=+p[a+(x<<4)>>3];A=+p[u+(x<<4)>>3];z=+p[a+(x<<4)+8>>3];h=+p[u+(x<<4)+8>>3];p[r+(x<<4)>>3]=v*A+z*h;p[r+(x<<4)+8>>3]=z*A-h*v;x=x+1|0}while((x|0)!=(e|0))}}else if(w){x=0;do{v=+p[a+(x<<4)>>3];h=+p[u+(x<<4)>>3];A=+p[a+(x<<4)+8>>3];z=+p[u+(x<<4)+8>>3];p[r+(x<<4)>>3]=v*h-A*z;p[r+(x<<4)+8>>3]=z*v+A*h;x=x+1|0}while((x|0)!=(e|0))}if((n|0)>(e|0))_c(r+t|0,0,i-t|0)|0;switch(f[g>>2]|0){case 0:{La(o,r,c,f[j>>2]|0,f[c>>2]|0,1,0);break}case 1:{Ma(r,o,c,f[j>>2]|0,f[c>>2]|0);break}default:{}}if(C){if(y){t=0;do{i=o+(t<<4)|0;h=+p[i>>3];A=+p[q+(t<<4)>>3];x=o+(t<<4)+8|0;v=+p[x>>3];z=+p[q+(t<<4)+8>>3];p[x>>3]=A*v+h*z;p[i>>3]=h*A-v*z;t=t+1|0}while((t|0)!=(n|0));D=25}}else if(y){t=0;do{i=o+(t<<4)|0;z=+p[i>>3];v=+p[q+(t<<4)>>3];x=o+(t<<4)+8|0;A=+p[x>>3];h=+p[q+(t<<4)+8>>3];p[x>>3]=v*A-z*h;p[i>>3]=z*v+A*h;t=t+1|0}while((t|0)!=(n|0));D=25}if((D|0)==25?y:0){D=0;do{t=c+272+(D<<4)+8|0;p[t>>3]=-+p[t>>3];D=D+1|0}while((D|0)!=(n|0))}D=0-d|0;f[j>>2]=D;switch(f[g>>2]|0){case 0:{La(s,o,c,D,f[c>>2]|0,1,0);break}case 1:{Ma(o,s,c,D,f[c>>2]|0);break}default:{}}if(C){if(w){C=0;do{h=+p[s+(C<<4)>>3];A=+p[u+(C<<4)>>3];v=+p[s+(C<<4)+8>>3];z=+p[u+(C<<4)+8>>3];p[b+(C<<4)>>3]=h*A+v*z;p[b+(C<<4)+8>>3]=v*A-z*h;C=C+1|0}while((C|0)!=(e|0))}}else if(w){w=0;do{h=+p[s+(w<<4)>>3];z=+p[u+(w<<4)>>3];A=+p[s+(w<<4)+8>>3];v=+p[u+(w<<4)+8>>3];p[b+(w<<4)>>3]=h*z-A*v;p[b+(w<<4)+8>>3]=v*h+A*z;w=w+1|0}while((w|0)!=(e|0))}f[j>>2]=k;f[c>>2]=l;f[g>>2]=1;if(y)E=0;else{Wc(o);Wc(s);Wc(r);Wc(q);Wc(u);return}do{y=c+272+(E<<4)+8|0;p[y>>3]=-+p[y>>3];E=E+1|0}while((E|0)!=(n|0));Wc(o);Wc(s);Wc(r);Wc(q);Wc(u);return}function Na(a){a=a|0;Wc(a);return}function Oa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0.0,h=0.0,i=0.0;c=(a|0)/2|0;d=Vc((c<<4)+24|0)|0;e=Ha(c,b)|0;f[d>>2]=e;if((a|0)<=1)return d|0;g=+(a|0);a=d+8|0;e=0;do{h=+(e|0)*6.283185307179586/g;i=+N(+h);p[a+(e<<4)>>3]=i;i=+O(+h);p[a+(e<<4)+8>>3]=i;e=e+1|0}while((e|0)<(c|0));return d|0}function Pa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0;d=f[a>>2]|0;e=f[d>>2]|0;g=e<<1;h=e<<4;i=Vc(h)|0;j=Vc(h)|0;if((e|0)>0){h=0;do{k=h<<1;p[i+(h<<4)>>3]=+p[b+(k<<3)>>3];p[i+(h<<4)+8>>3]=+p[b+((k|1)<<3)>>3];h=h+1|0}while((h|0)!=(e|0))}Ka(d,i,j);l=+p[j>>3];m=+p[j+8>>3];p[c>>3]=l+m;p[c+8>>3]=0.0;d=(e|0)>1;if(d)n=1;else{p[c+(e<<4)>>3]=l-m;p[c+(e<<4)+8>>3]=0.0;Wc(i);Wc(j);return}do{o=+p[j+(n<<4)+8>>3];h=e-n|0;q=+p[j+(h<<4)+8>>3];r=o+q;s=+p[j+(h<<4)>>3];t=+p[j+(n<<4)>>3];u=s-t;h=a+8+(n<<4)|0;v=+p[a+8+(n<<4)+8>>3];p[c+(n<<4)>>3]=(s+t+r*+p[h>>3]+u*v)*.5;p[c+(n<<4)+8>>3]=(o-q+u*+p[h>>3]-r*v)*.5;n=n+1|0}while((n|0)!=(e|0));p[c+(e<<4)>>3]=l-m;p[c+(e<<4)+8>>3]=0.0;if(d)w=1;else{Wc(i);Wc(j);return}do{d=g-w|0;p[c+(d<<4)>>3]=+p[c+(w<<4)>>3];p[c+(d<<4)+8>>3]=-+p[c+(w<<4)+8>>3];w=w+1|0}while((w|0)!=(e|0));Wc(i);Wc(j);return}function Qa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0;d=f[a>>2]|0;e=f[d>>2]|0;g=e<<4;h=Vc(g)|0;i=Vc(g)|0;g=(e|0)>0;if(g)j=0;else{Ka(d,h,i);Wc(h);Wc(i);return}do{k=+p[b+(j<<4)+8>>3];l=e-j|0;m=+p[b+(l<<4)+8>>3];n=-k-m;o=+p[b+(l<<4)>>3];q=+p[b+(j<<4)>>3];r=q-o;s=+p[a+8+(j<<4)>>3];t=+p[a+8+(j<<4)+8>>3];p[h+(j<<4)>>3]=o+q+n*s-r*t;p[h+(j<<4)+8>>3]=n*t+(k-m+r*s);j=j+1|0}while((j|0)!=(e|0));Ka(d,h,i);if(g)u=0;else{Wc(h);Wc(i);return}do{g=u<<1;p[c+(g<<3)>>3]=+p[i+(u<<4)>>3];p[c+((g|1)<<3)>>3]=+p[i+(u<<4)+8>>3];u=u+1|0}while((u|0)!=(e|0));Wc(h);Wc(i);return}function Ra(a){a=a|0;Na(f[a>>2]|0);Wc(a);return}function Sa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;c=Vc(20)|0;d=a+-1+b|0;while(1){if(!((d|0)%7|0)){e=d;while(1){g=(e|0)/7|0;if(!((g|0)%7|0))e=g;else{h=g;break}}}else h=d;if(!((h|0)%3|0)){e=h;while(1){g=(e|0)/3|0;if(!((g|0)%3|0))e=g;else{i=g;break}}}else i=h;if(!((i|0)%5|0)){e=i;while(1){g=(e|0)/5|0;if(!((g|0)%5|0))e=g;else{j=g;break}}}else j=i;if(!(j&1)){e=j;while(1){g=(e|0)/2|0;if(!(g&1))e=g;else{k=g;break}}}else k=j;if((d&1|0)!=0|(k|0)!=1)d=d+1|0;else break}f[c+16>>2]=d;f[c+8>>2]=a;f[c+12>>2]=b;b=Oa(d,1)|0;f[c>>2]=b;b=Oa(d,-1)|0;f[c+4>>2]=b;return c|0}function Ta(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0;f=b+-1|0;g=f+d|0;if((b|0)<(d|0)){if((b|0)>0){h=0;i=1;while(1){j=e+(h<<3)|0;p[j>>3]=0.0;k=0;l=0.0;do{l=l+ +p[c+(k<<3)>>3]*+p[a+(h-k<<3)>>3];p[j>>3]=l;k=k+1|0}while((k|0)!=(i|0));h=h+1|0;if((h|0)==(b|0))break;else i=i+1|0}}if((g|0)<=(b|0))return;l=+(d|0);i=d+-1|0;h=0;k=b;while(1){j=e+(k<<3)|0;p[j>>3]=0.0;h=h+1|0;m=+(h+b|0);n=m>3]*+p[a+(k-o<<3)>>3];p[j>>3]=m;o=o+1|0}while(+(o|0)0){k=0;i=1;while(1){h=e+(k<<3)|0;p[h>>3]=0.0;o=0;l=0.0;do{l=l+ +p[a+(o<<3)>>3]*+p[c+(k-o<<3)>>3];p[h>>3]=l;o=o+1|0}while((o|0)!=(i|0));k=k+1|0;if((k|0)==(d|0))break;else i=i+1|0}}if((g|0)<=(d|0))return;l=+(b|0);b=0;g=d;while(1){i=e+(g<<3)|0;p[i>>3]=0.0;b=b+1|0;n=+(b+d|0);m=n>3]*+p[c+(g-k<<3)>>3];p[i>>3]=n;k=k+1|0}while(+(k|0)>2]|0;g=f[a+8>>2]|0;h=f[a+12>>2]|0;i=g+-1+h|0;j=e<<4;k=Vc(j)|0;l=Vc(j)|0;m=Vc(j)|0;n=Vc(j)|0;o=Vc(j)|0;q=Vc(j)|0;j=(e|0)>0;if(j){r=0;do{if((r|0)<(g|0))s=+p[b+(r<<3)>>3];else s=0.0;p[k+(r<<3)>>3]=s;if((r|0)<(h|0))t=+p[c+(r<<3)>>3];else t=0.0;p[l+(r<<3)>>3]=t;r=r+1|0}while((r|0)!=(e|0));Pa(f[a>>2]|0,k,n);Pa(f[a>>2]|0,l,o);if(j){j=0;do{t=+p[n+(j<<4)>>3];s=+p[o+(j<<4)>>3];u=+p[n+(j<<4)+8>>3];v=+p[o+(j<<4)+8>>3];p[m+(j<<4)>>3]=t*s-u*v;p[m+(j<<4)+8>>3]=u*s+v*t;j=j+1|0}while((j|0)!=(e|0))}}else{Pa(f[a>>2]|0,k,n);Pa(f[a>>2]|0,l,o)}Qa(f[a+4>>2]|0,m,q);if((i|0)<=0){Wc(k);Wc(l);Wc(m);Wc(n);Wc(o);Wc(q);return}t=+(e|0);e=0;do{p[d+(e<<3)>>3]=+p[q+(e<<3)>>3]/t;e=e+1|0}while((e|0)!=(i|0));Wc(k);Wc(l);Wc(m);Wc(n);Wc(o);Wc(q);return}function Va(a){a=a|0;Ra(f[a>>2]|0);Ra(f[a+4>>2]|0);Wc(a);return}function Wa(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=zc(a)|0;a:do if((Ob(a,26140)|0)!=0?(Ob(a,25288)|0)!=0:0){if((b|0)>2?Nc(a,26145)|0:0){c=b+-1|0;d=Vc(c)|0;gd(d|0,a+2|0,c|0)|0;c=Uc(d)|0;Wc(d);if((c|0)>38){Tc(25292)|0;e=-1;break}else{e=c<<1;break}}if(Ob(a,25318)|0)if(Ob(a,25326)|0)if(Ob(a,25334)|0)if(Ob(a,25342)|0)if(Ob(a,25350)|0)if(Ob(a,25358)|0)if(Ob(a,25366)|0)if(Ob(a,25374)|0)if(Ob(a,25382)|0)if(Ob(a,25390)|0)if(Ob(a,25398)|0)if(Ob(a,25406)|0)if(Ob(a,25414)|0)if(Ob(a,25422)|0)if(Ob(a,25430)|0)if(!(Ob(a,25438)|0))e=2;else{if(!(Ob(a,25447)|0)){e=6;break}if(!(Ob(a,25456)|0)){e=10;break}if(!(Ob(a,25465)|0)){e=6;break}if(!(Ob(a,25474)|0)){e=10;break}if(!(Ob(a,25483)|0)){e=14;break}if(!(Ob(a,25492)|0)){e=18;break}if(!(Ob(a,25501)|0)){e=4;break}if(!(Ob(a,25510)|0)){e=8;break}if(!(Ob(a,25519)|0)){e=12;break}if(!(Ob(a,25528)|0)){e=16;break}if(!(Ob(a,25537)|0)){e=20;break}if(!(Ob(a,25546)|0)){e=10;break}if(!(Ob(a,25555)|0)){e=12;break}if(!(Ob(a,25564)|0)){e=18;break}do if((b|0)>4){if(!(Nc(a,26148)|0)){f=44;break}c=b+-3|0;d=Vc(c)|0;gd(d|0,a+4|0,c|0)|0;c=Uc(d)|0;Wc(d);if((c|0)>17){Tc(25292)|0;e=-1;break a}else{e=c*6|0;break a}}else if((b|0)==4)f=44;while(0);do if((f|0)==44){if(!(Nc(a,26699)|0))break;c=b+-2|0;d=Vc(c)|0;gd(d|0,a+3|0,c|0)|0;c=Uc(d)|0;Wc(d);if((c+-2|0)>>>0>18){Tc(25292)|0;e=-1;break a}else{e=c<<1;break a}}while(0);Tc(25292)|0;e=-1}else e=18;else e=12;else e=10;else e=20;else e=16;else e=12;else e=8;else e=4;else e=18;else e=14;else e=10;else e=6;else e=10;else e=6;else e=2}else e=2;while(0);return e|0}function Xa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0;f=Wa(a)|0;if(Ob(a,26140)|0?Ob(a,25288)|0:0){if(!(Ob(a,25573)|0)){if((f|0)<=0){g=f;return g|0}h=f+-1|0;i=0;do{p[b+(i<<3)>>3]=+p[8520+(h-i<<3)>>3];i=i+1|0}while((i|0)!=(f|0));i=Vc(f<<3)|0;j=0;do{k=+p[8520+(h-j<<3)>>3];p[i+(j<<3)>>3]=(j&1|0)==0?k:-k;j=j+1|0}while((j|0)!=(f|0));l=0;do{p[c+(l<<3)>>3]=+p[i+(h-l<<3)>>3];l=l+1|0}while((l|0)!=(f|0));Wc(i);i=0;do{p[d+(i<<3)>>3]=+p[8520+(i<<3)>>3];i=i+1|0}while((i|0)!=(f|0));m=0;do{k=+p[8520+(h-m<<3)>>3];p[e+(m<<3)>>3]=(m&1|0)==0?k:-k;m=m+1|0}while((m|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25577)|0)){if((f|0)<=0){g=f;return g|0}m=f+-1|0;h=0;do{p[b+(h<<3)>>3]=+p[8552+(m-h<<3)>>3];h=h+1|0}while((h|0)!=(f|0));h=Vc(f<<3)|0;i=0;do{k=+p[8552+(m-i<<3)>>3];p[h+(i<<3)>>3]=(i&1|0)==0?k:-k;i=i+1|0}while((i|0)!=(f|0));n=0;do{p[c+(n<<3)>>3]=+p[h+(m-n<<3)>>3];n=n+1|0}while((n|0)!=(f|0));Wc(h);h=0;do{p[d+(h<<3)>>3]=+p[8552+(h<<3)>>3];h=h+1|0}while((h|0)!=(f|0));o=0;do{k=+p[8552+(m-o<<3)>>3];p[e+(o<<3)>>3]=(o&1|0)==0?k:-k;o=o+1|0}while((o|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25581)|0)){if((f|0)<=0){g=f;return g|0}o=f+-1|0;m=0;do{p[b+(m<<3)>>3]=+p[8600+(o-m<<3)>>3];m=m+1|0}while((m|0)!=(f|0));m=Vc(f<<3)|0;h=0;do{k=+p[8600+(o-h<<3)>>3];p[m+(h<<3)>>3]=(h&1|0)==0?k:-k;h=h+1|0}while((h|0)!=(f|0));q=0;do{p[c+(q<<3)>>3]=+p[m+(o-q<<3)>>3];q=q+1|0}while((q|0)!=(f|0));Wc(m);m=0;do{p[d+(m<<3)>>3]=+p[8600+(m<<3)>>3];m=m+1|0}while((m|0)!=(f|0));r=0;do{k=+p[8600+(o-r<<3)>>3];p[e+(r<<3)>>3]=(r&1|0)==0?k:-k;r=r+1|0}while((r|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25585)|0)){if((f|0)<=0){g=f;return g|0}r=f+-1|0;o=0;do{p[b+(o<<3)>>3]=+p[8664+(r-o<<3)>>3];o=o+1|0}while((o|0)!=(f|0));o=Vc(f<<3)|0;m=0;do{k=+p[8664+(r-m<<3)>>3];p[o+(m<<3)>>3]=(m&1|0)==0?k:-k;m=m+1|0}while((m|0)!=(f|0));s=0;do{p[c+(s<<3)>>3]=+p[o+(r-s<<3)>>3];s=s+1|0}while((s|0)!=(f|0));Wc(o);o=0;do{p[d+(o<<3)>>3]=+p[8664+(o<<3)>>3];o=o+1|0}while((o|0)!=(f|0));t=0;do{k=+p[8664+(r-t<<3)>>3];p[e+(t<<3)>>3]=(t&1|0)==0?k:-k;t=t+1|0}while((t|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25589)|0)){if((f|0)<=0){g=f;return g|0}t=f+-1|0;r=0;do{p[b+(r<<3)>>3]=+p[8744+(t-r<<3)>>3];r=r+1|0}while((r|0)!=(f|0));r=Vc(f<<3)|0;o=0;do{k=+p[8744+(t-o<<3)>>3];p[r+(o<<3)>>3]=(o&1|0)==0?k:-k;o=o+1|0}while((o|0)!=(f|0));u=0;do{p[c+(u<<3)>>3]=+p[r+(t-u<<3)>>3];u=u+1|0}while((u|0)!=(f|0));Wc(r);r=0;do{p[d+(r<<3)>>3]=+p[8744+(r<<3)>>3];r=r+1|0}while((r|0)!=(f|0));v=0;do{k=+p[8744+(t-v<<3)>>3];p[e+(v<<3)>>3]=(v&1|0)==0?k:-k;v=v+1|0}while((v|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25593)|0)){if((f|0)<=0){g=f;return g|0}v=f+-1|0;t=0;do{p[b+(t<<3)>>3]=+p[8840+(v-t<<3)>>3];t=t+1|0}while((t|0)!=(f|0));t=Vc(f<<3)|0;r=0;do{k=+p[8840+(v-r<<3)>>3];p[t+(r<<3)>>3]=(r&1|0)==0?k:-k;r=r+1|0}while((r|0)!=(f|0));w=0;do{p[c+(w<<3)>>3]=+p[t+(v-w<<3)>>3];w=w+1|0}while((w|0)!=(f|0));Wc(t);t=0;do{p[d+(t<<3)>>3]=+p[8840+(t<<3)>>3];t=t+1|0}while((t|0)!=(f|0));x=0;do{k=+p[8840+(v-x<<3)>>3];p[e+(x<<3)>>3]=(x&1|0)==0?k:-k;x=x+1|0}while((x|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25597)|0)){if((f|0)<=0){g=f;return g|0}x=f+-1|0;v=0;do{p[b+(v<<3)>>3]=+p[8952+(x-v<<3)>>3];v=v+1|0}while((v|0)!=(f|0));v=Vc(f<<3)|0;t=0;do{k=+p[8952+(x-t<<3)>>3];p[v+(t<<3)>>3]=(t&1|0)==0?k:-k;t=t+1|0}while((t|0)!=(f|0));y=0;do{p[c+(y<<3)>>3]=+p[v+(x-y<<3)>>3];y=y+1|0}while((y|0)!=(f|0));Wc(v);v=0;do{p[d+(v<<3)>>3]=+p[8952+(v<<3)>>3];v=v+1|0}while((v|0)!=(f|0));z=0;do{k=+p[8952+(x-z<<3)>>3];p[e+(z<<3)>>3]=(z&1|0)==0?k:-k;z=z+1|0}while((z|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25601)|0)){if((f|0)<=0){g=f;return g|0}z=f+-1|0;x=0;do{p[b+(x<<3)>>3]=+p[9080+(z-x<<3)>>3];x=x+1|0}while((x|0)!=(f|0));x=Vc(f<<3)|0;v=0;do{k=+p[9080+(z-v<<3)>>3];p[x+(v<<3)>>3]=(v&1|0)==0?k:-k;v=v+1|0}while((v|0)!=(f|0));A=0;do{p[c+(A<<3)>>3]=+p[x+(z-A<<3)>>3];A=A+1|0}while((A|0)!=(f|0));Wc(x);x=0;do{p[d+(x<<3)>>3]=+p[9080+(x<<3)>>3];x=x+1|0}while((x|0)!=(f|0));B=0;do{k=+p[9080+(z-B<<3)>>3];p[e+(B<<3)>>3]=(B&1|0)==0?k:-k;B=B+1|0}while((B|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25605)|0)){if((f|0)<=0){g=f;return g|0}B=f+-1|0;z=0;do{p[b+(z<<3)>>3]=+p[9224+(B-z<<3)>>3];z=z+1|0}while((z|0)!=(f|0));z=Vc(f<<3)|0;x=0;do{k=+p[9224+(B-x<<3)>>3];p[z+(x<<3)>>3]=(x&1|0)==0?k:-k;x=x+1|0}while((x|0)!=(f|0));C=0;do{p[c+(C<<3)>>3]=+p[z+(B-C<<3)>>3];C=C+1|0}while((C|0)!=(f|0));Wc(z);z=0;do{p[d+(z<<3)>>3]=+p[9224+(z<<3)>>3];z=z+1|0}while((z|0)!=(f|0));D=0;do{k=+p[9224+(B-D<<3)>>3];p[e+(D<<3)>>3]=(D&1|0)==0?k:-k;D=D+1|0}while((D|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25610)|0)){if((f|0)<=0){g=f;return g|0}D=f+-1|0;B=0;do{p[b+(B<<3)>>3]=+p[9384+(D-B<<3)>>3];B=B+1|0}while((B|0)!=(f|0));B=Vc(f<<3)|0;z=0;do{k=+p[9384+(D-z<<3)>>3];p[B+(z<<3)>>3]=(z&1|0)==0?k:-k;z=z+1|0}while((z|0)!=(f|0));E=0;do{p[c+(E<<3)>>3]=+p[B+(D-E<<3)>>3];E=E+1|0}while((E|0)!=(f|0));Wc(B);B=0;do{p[d+(B<<3)>>3]=+p[9384+(B<<3)>>3];B=B+1|0}while((B|0)!=(f|0));F=0;do{k=+p[9384+(D-F<<3)>>3];p[e+(F<<3)>>3]=(F&1|0)==0?k:-k;F=F+1|0}while((F|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25615)|0)){if((f|0)<=0){g=f;return g|0}F=f+-1|0;D=0;do{p[b+(D<<3)>>3]=+p[9560+(F-D<<3)>>3];D=D+1|0}while((D|0)!=(f|0));D=Vc(f<<3)|0;B=0;do{k=+p[9560+(F-B<<3)>>3];p[D+(B<<3)>>3]=(B&1|0)==0?k:-k;B=B+1|0}while((B|0)!=(f|0));G=0;do{p[c+(G<<3)>>3]=+p[D+(F-G<<3)>>3];G=G+1|0}while((G|0)!=(f|0));Wc(D);D=0;do{p[d+(D<<3)>>3]=+p[9560+(D<<3)>>3];D=D+1|0}while((D|0)!=(f|0));H=0;do{k=+p[9560+(F-H<<3)>>3];p[e+(H<<3)>>3]=(H&1|0)==0?k:-k;H=H+1|0}while((H|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25620)|0)){if((f|0)<=0){g=f;return g|0}H=f+-1|0;F=0;do{p[b+(F<<3)>>3]=+p[9752+(H-F<<3)>>3];F=F+1|0}while((F|0)!=(f|0));F=Vc(f<<3)|0;D=0;do{k=+p[9752+(H-D<<3)>>3];p[F+(D<<3)>>3]=(D&1|0)==0?k:-k;D=D+1|0}while((D|0)!=(f|0));I=0;do{p[c+(I<<3)>>3]=+p[F+(H-I<<3)>>3];I=I+1|0}while((I|0)!=(f|0));Wc(F);F=0;do{p[d+(F<<3)>>3]=+p[9752+(F<<3)>>3];F=F+1|0}while((F|0)!=(f|0));J=0;do{k=+p[9752+(H-J<<3)>>3];p[e+(J<<3)>>3]=(J&1|0)==0?k:-k;J=J+1|0}while((J|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25625)|0)){if((f|0)<=0){g=f;return g|0}J=f+-1|0;H=0;do{p[b+(H<<3)>>3]=+p[9960+(J-H<<3)>>3];H=H+1|0}while((H|0)!=(f|0));H=Vc(f<<3)|0;F=0;do{k=+p[9960+(J-F<<3)>>3];p[H+(F<<3)>>3]=(F&1|0)==0?k:-k;F=F+1|0}while((F|0)!=(f|0));K=0;do{p[c+(K<<3)>>3]=+p[H+(J-K<<3)>>3];K=K+1|0}while((K|0)!=(f|0));Wc(H);H=0;do{p[d+(H<<3)>>3]=+p[9960+(H<<3)>>3];H=H+1|0}while((H|0)!=(f|0));L=0;do{k=+p[9960+(J-L<<3)>>3];p[e+(L<<3)>>3]=(L&1|0)==0?k:-k;L=L+1|0}while((L|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25630)|0)){if((f|0)<=0){g=f;return g|0}L=f+-1|0;J=0;do{p[b+(J<<3)>>3]=+p[10184+(L-J<<3)>>3];J=J+1|0}while((J|0)!=(f|0));J=Vc(f<<3)|0;H=0;do{k=+p[10184+(L-H<<3)>>3];p[J+(H<<3)>>3]=(H&1|0)==0?k:-k;H=H+1|0}while((H|0)!=(f|0));M=0;do{p[c+(M<<3)>>3]=+p[J+(L-M<<3)>>3];M=M+1|0}while((M|0)!=(f|0));Wc(J);J=0;do{p[d+(J<<3)>>3]=+p[10184+(J<<3)>>3];J=J+1|0}while((J|0)!=(f|0));N=0;do{k=+p[10184+(L-N<<3)>>3];p[e+(N<<3)>>3]=(N&1|0)==0?k:-k;N=N+1|0}while((N|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25635)|0)){if((f|0)<=0){g=f;return g|0}N=f+-1|0;L=0;do{p[b+(L<<3)>>3]=+p[10424+(N-L<<3)>>3];L=L+1|0}while((L|0)!=(f|0));L=Vc(f<<3)|0;J=0;do{k=+p[10424+(N-J<<3)>>3];p[L+(J<<3)>>3]=(J&1|0)==0?k:-k;J=J+1|0}while((J|0)!=(f|0));O=0;do{p[c+(O<<3)>>3]=+p[L+(N-O<<3)>>3];O=O+1|0}while((O|0)!=(f|0));Wc(L);L=0;do{p[d+(L<<3)>>3]=+p[10424+(L<<3)>>3];L=L+1|0}while((L|0)!=(f|0));P=0;do{k=+p[10424+(N-P<<3)>>3];p[e+(P<<3)>>3]=(P&1|0)==0?k:-k;P=P+1|0}while((P|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25640)|0)){if((f|0)<=0){g=f;return g|0}P=f+-1|0;N=0;do{p[b+(N<<3)>>3]=+p[10680+(P-N<<3)>>3];N=N+1|0}while((N|0)!=(f|0));N=Vc(f<<3)|0;L=0;do{k=+p[10680+(P-L<<3)>>3];p[N+(L<<3)>>3]=(L&1|0)==0?k:-k;L=L+1|0}while((L|0)!=(f|0));Q=0;do{p[c+(Q<<3)>>3]=+p[N+(P-Q<<3)>>3];Q=Q+1|0}while((Q|0)!=(f|0));Wc(N);N=0;do{p[d+(N<<3)>>3]=+p[10680+(N<<3)>>3];N=N+1|0}while((N|0)!=(f|0));R=0;do{k=+p[10680+(P-R<<3)>>3];p[e+(R<<3)>>3]=(R&1|0)==0?k:-k;R=R+1|0}while((R|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25645)|0)){if((f|0)<=0){g=f;return g|0}R=f+-1|0;P=0;do{p[b+(P<<3)>>3]=+p[10952+(R-P<<3)>>3];P=P+1|0}while((P|0)!=(f|0));P=Vc(f<<3)|0;N=0;do{k=+p[10952+(R-N<<3)>>3];p[P+(N<<3)>>3]=(N&1|0)==0?k:-k;N=N+1|0}while((N|0)!=(f|0));S=0;do{p[c+(S<<3)>>3]=+p[P+(R-S<<3)>>3];S=S+1|0}while((S|0)!=(f|0));Wc(P);P=0;do{p[d+(P<<3)>>3]=+p[10952+(P<<3)>>3];P=P+1|0}while((P|0)!=(f|0));T=0;do{k=+p[10952+(R-T<<3)>>3];p[e+(T<<3)>>3]=(T&1|0)==0?k:-k;T=T+1|0}while((T|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25650)|0)){if((f|0)<=0){g=f;return g|0}T=f+-1|0;R=0;do{p[b+(R<<3)>>3]=+p[11240+(T-R<<3)>>3];R=R+1|0}while((R|0)!=(f|0));R=Vc(f<<3)|0;P=0;do{k=+p[11240+(T-P<<3)>>3];p[R+(P<<3)>>3]=(P&1|0)==0?k:-k;P=P+1|0}while((P|0)!=(f|0));U=0;do{p[c+(U<<3)>>3]=+p[R+(T-U<<3)>>3];U=U+1|0}while((U|0)!=(f|0));Wc(R);R=0;do{p[d+(R<<3)>>3]=+p[11240+(R<<3)>>3];R=R+1|0}while((R|0)!=(f|0));V=0;do{k=+p[11240+(T-V<<3)>>3];p[e+(V<<3)>>3]=(V&1|0)==0?k:-k;V=V+1|0}while((V|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25655)|0)){if((f|0)<=0){g=f;return g|0}V=f+-1|0;T=0;do{p[b+(T<<3)>>3]=+p[11544+(V-T<<3)>>3];T=T+1|0}while((T|0)!=(f|0));T=Vc(f<<3)|0;R=0;do{k=+p[11544+(V-R<<3)>>3];p[T+(R<<3)>>3]=(R&1|0)==0?k:-k;R=R+1|0}while((R|0)!=(f|0));W=0;do{p[c+(W<<3)>>3]=+p[T+(V-W<<3)>>3];W=W+1|0}while((W|0)!=(f|0));Wc(T);T=0;do{p[d+(T<<3)>>3]=+p[11544+(T<<3)>>3];T=T+1|0}while((T|0)!=(f|0));X=0;do{k=+p[11544+(V-X<<3)>>3];p[e+(X<<3)>>3]=(X&1|0)==0?k:-k;X=X+1|0}while((X|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25660)|0)){if((f|0)<=0){g=f;return g|0}X=f+-1|0;V=0;do{p[b+(V<<3)>>3]=+p[8+(X-V<<3)>>3];V=V+1|0}while((V|0)!=(f|0));V=Vc(f<<3)|0;T=0;do{k=+p[8+(X-T<<3)>>3];p[V+(T<<3)>>3]=(T&1|0)==0?k:-k;T=T+1|0}while((T|0)!=(f|0));Y=0;do{p[c+(Y<<3)>>3]=+p[V+(X-Y<<3)>>3];Y=Y+1|0}while((Y|0)!=(f|0));Wc(V);V=0;do{p[d+(V<<3)>>3]=+p[8+(V<<3)>>3];V=V+1|0}while((V|0)!=(f|0));Z=0;do{k=+p[8+(X-Z<<3)>>3];p[e+(Z<<3)>>3]=(Z&1|0)==0?k:-k;Z=Z+1|0}while((Z|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25665)|0)){if((f|0)<=0){g=f;return g|0}Z=f+-1|0;X=0;do{p[b+(X<<3)>>3]=+p[344+(Z-X<<3)>>3];X=X+1|0}while((X|0)!=(f|0));X=Vc(f<<3)|0;V=0;do{k=+p[344+(Z-V<<3)>>3];p[X+(V<<3)>>3]=(V&1|0)==0?k:-k;V=V+1|0}while((V|0)!=(f|0));_=0;do{p[c+(_<<3)>>3]=+p[X+(Z-_<<3)>>3];_=_+1|0}while((_|0)!=(f|0));Wc(X);X=0;do{p[d+(X<<3)>>3]=+p[344+(X<<3)>>3];X=X+1|0}while((X|0)!=(f|0));$=0;do{k=+p[344+(Z-$<<3)>>3];p[e+($<<3)>>3]=($&1|0)==0?k:-k;$=$+1|0}while(($|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25670)|0)){if((f|0)<=0){g=f;return g|0}$=f+-1|0;Z=0;do{p[b+(Z<<3)>>3]=+p[696+($-Z<<3)>>3];Z=Z+1|0}while((Z|0)!=(f|0));Z=Vc(f<<3)|0;X=0;do{k=+p[696+($-X<<3)>>3];p[Z+(X<<3)>>3]=(X&1|0)==0?k:-k;X=X+1|0}while((X|0)!=(f|0));aa=0;do{p[c+(aa<<3)>>3]=+p[Z+($-aa<<3)>>3];aa=aa+1|0}while((aa|0)!=(f|0));Wc(Z);Z=0;do{p[d+(Z<<3)>>3]=+p[696+(Z<<3)>>3];Z=Z+1|0}while((Z|0)!=(f|0));ba=0;do{k=+p[696+($-ba<<3)>>3];p[e+(ba<<3)>>3]=(ba&1|0)==0?k:-k;ba=ba+1|0}while((ba|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25675)|0)){if((f|0)<=0){g=f;return g|0}ba=f+-1|0;$=0;do{p[b+($<<3)>>3]=+p[1064+(ba-$<<3)>>3];$=$+1|0}while(($|0)!=(f|0));$=Vc(f<<3)|0;Z=0;do{k=+p[1064+(ba-Z<<3)>>3];p[$+(Z<<3)>>3]=(Z&1|0)==0?k:-k;Z=Z+1|0}while((Z|0)!=(f|0));ca=0;do{p[c+(ca<<3)>>3]=+p[$+(ba-ca<<3)>>3];ca=ca+1|0}while((ca|0)!=(f|0));Wc($);$=0;do{p[d+($<<3)>>3]=+p[1064+($<<3)>>3];$=$+1|0}while(($|0)!=(f|0));da=0;do{k=+p[1064+(ba-da<<3)>>3];p[e+(da<<3)>>3]=(da&1|0)==0?k:-k;da=da+1|0}while((da|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25680)|0)){if((f|0)<=0){g=f;return g|0}da=f+-1|0;ba=0;do{p[b+(ba<<3)>>3]=+p[1448+(da-ba<<3)>>3];ba=ba+1|0}while((ba|0)!=(f|0));ba=Vc(f<<3)|0;$=0;do{k=+p[1448+(da-$<<3)>>3];p[ba+($<<3)>>3]=($&1|0)==0?k:-k;$=$+1|0}while(($|0)!=(f|0));ea=0;do{p[c+(ea<<3)>>3]=+p[ba+(da-ea<<3)>>3];ea=ea+1|0}while((ea|0)!=(f|0));Wc(ba);ba=0;do{p[d+(ba<<3)>>3]=+p[1448+(ba<<3)>>3];ba=ba+1|0}while((ba|0)!=(f|0));fa=0;do{k=+p[1448+(da-fa<<3)>>3];p[e+(fa<<3)>>3]=(fa&1|0)==0?k:-k;fa=fa+1|0}while((fa|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25685)|0)){if((f|0)<=0){g=f;return g|0}fa=f+-1|0;da=0;do{p[b+(da<<3)>>3]=+p[1848+(fa-da<<3)>>3];da=da+1|0}while((da|0)!=(f|0));da=Vc(f<<3)|0;ba=0;do{k=+p[1848+(fa-ba<<3)>>3];p[da+(ba<<3)>>3]=(ba&1|0)==0?k:-k;ba=ba+1|0}while((ba|0)!=(f|0));ga=0;do{p[c+(ga<<3)>>3]=+p[da+(fa-ga<<3)>>3];ga=ga+1|0}while((ga|0)!=(f|0));Wc(da);da=0;do{p[d+(da<<3)>>3]=+p[1848+(da<<3)>>3];da=da+1|0}while((da|0)!=(f|0));ha=0;do{k=+p[1848+(fa-ha<<3)>>3];p[e+(ha<<3)>>3]=(ha&1|0)==0?k:-k;ha=ha+1|0}while((ha|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25690)|0)){if((f|0)<=0){g=f;return g|0}ha=f+-1|0;fa=0;do{p[b+(fa<<3)>>3]=+p[2264+(ha-fa<<3)>>3];fa=fa+1|0}while((fa|0)!=(f|0));fa=Vc(f<<3)|0;da=0;do{k=+p[2264+(ha-da<<3)>>3];p[fa+(da<<3)>>3]=(da&1|0)==0?k:-k;da=da+1|0}while((da|0)!=(f|0));ia=0;do{p[c+(ia<<3)>>3]=+p[fa+(ha-ia<<3)>>3];ia=ia+1|0}while((ia|0)!=(f|0));Wc(fa);fa=0;do{p[d+(fa<<3)>>3]=+p[2264+(fa<<3)>>3];fa=fa+1|0}while((fa|0)!=(f|0));ja=0;do{k=+p[2264+(ha-ja<<3)>>3];p[e+(ja<<3)>>3]=(ja&1|0)==0?k:-k;ja=ja+1|0}while((ja|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25695)|0)){if((f|0)<=0){g=f;return g|0}ja=f+-1|0;ha=0;do{p[b+(ha<<3)>>3]=+p[2696+(ja-ha<<3)>>3];ha=ha+1|0}while((ha|0)!=(f|0));ha=Vc(f<<3)|0;fa=0;do{k=+p[2696+(ja-fa<<3)>>3];p[ha+(fa<<3)>>3]=(fa&1|0)==0?k:-k;fa=fa+1|0}while((fa|0)!=(f|0));ka=0;do{p[c+(ka<<3)>>3]=+p[ha+(ja-ka<<3)>>3];ka=ka+1|0}while((ka|0)!=(f|0));Wc(ha);ha=0;do{p[d+(ha<<3)>>3]=+p[2696+(ha<<3)>>3];ha=ha+1|0}while((ha|0)!=(f|0));la=0;do{k=+p[2696+(ja-la<<3)>>3];p[e+(la<<3)>>3]=(la&1|0)==0?k:-k;la=la+1|0}while((la|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25700)|0)){if((f|0)<=0){g=f;return g|0}la=f+-1|0;ja=0;do{p[b+(ja<<3)>>3]=+p[3144+(la-ja<<3)>>3];ja=ja+1|0}while((ja|0)!=(f|0));ja=Vc(f<<3)|0;ha=0;do{k=+p[3144+(la-ha<<3)>>3];p[ja+(ha<<3)>>3]=(ha&1|0)==0?k:-k;ha=ha+1|0}while((ha|0)!=(f|0));ma=0;do{p[c+(ma<<3)>>3]=+p[ja+(la-ma<<3)>>3];ma=ma+1|0}while((ma|0)!=(f|0));Wc(ja);ja=0;do{p[d+(ja<<3)>>3]=+p[3144+(ja<<3)>>3];ja=ja+1|0}while((ja|0)!=(f|0));na=0;do{k=+p[3144+(la-na<<3)>>3];p[e+(na<<3)>>3]=(na&1|0)==0?k:-k;na=na+1|0}while((na|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25705)|0)){if((f|0)<=0){g=f;return g|0}na=f+-1|0;la=0;do{p[b+(la<<3)>>3]=+p[3608+(na-la<<3)>>3];la=la+1|0}while((la|0)!=(f|0));la=Vc(f<<3)|0;ja=0;do{k=+p[3608+(na-ja<<3)>>3];p[la+(ja<<3)>>3]=(ja&1|0)==0?k:-k;ja=ja+1|0}while((ja|0)!=(f|0));oa=0;do{p[c+(oa<<3)>>3]=+p[la+(na-oa<<3)>>3];oa=oa+1|0}while((oa|0)!=(f|0));Wc(la);la=0;do{p[d+(la<<3)>>3]=+p[3608+(la<<3)>>3];la=la+1|0}while((la|0)!=(f|0));pa=0;do{k=+p[3608+(na-pa<<3)>>3];p[e+(pa<<3)>>3]=(pa&1|0)==0?k:-k;pa=pa+1|0}while((pa|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25710)|0)){if((f|0)<=0){g=f;return g|0}pa=f+-1|0;na=0;do{p[b+(na<<3)>>3]=+p[4088+(pa-na<<3)>>3];na=na+1|0}while((na|0)!=(f|0));na=Vc(f<<3)|0;la=0;do{k=+p[4088+(pa-la<<3)>>3];p[na+(la<<3)>>3]=(la&1|0)==0?k:-k;la=la+1|0}while((la|0)!=(f|0));qa=0;do{p[c+(qa<<3)>>3]=+p[na+(pa-qa<<3)>>3];qa=qa+1|0}while((qa|0)!=(f|0));Wc(na);na=0;do{p[d+(na<<3)>>3]=+p[4088+(na<<3)>>3];na=na+1|0}while((na|0)!=(f|0));ra=0;do{k=+p[4088+(pa-ra<<3)>>3];p[e+(ra<<3)>>3]=(ra&1|0)==0?k:-k;ra=ra+1|0}while((ra|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25715)|0)){if((f|0)<=0){g=f;return g|0}ra=f+-1|0;pa=0;do{p[b+(pa<<3)>>3]=+p[4584+(ra-pa<<3)>>3];pa=pa+1|0}while((pa|0)!=(f|0));pa=Vc(f<<3)|0;na=0;do{k=+p[4584+(ra-na<<3)>>3];p[pa+(na<<3)>>3]=(na&1|0)==0?k:-k;na=na+1|0}while((na|0)!=(f|0));sa=0;do{p[c+(sa<<3)>>3]=+p[pa+(ra-sa<<3)>>3];sa=sa+1|0}while((sa|0)!=(f|0));Wc(pa);pa=0;do{p[d+(pa<<3)>>3]=+p[4584+(pa<<3)>>3];pa=pa+1|0}while((pa|0)!=(f|0));ta=0;do{k=+p[4584+(ra-ta<<3)>>3];p[e+(ta<<3)>>3]=(ta&1|0)==0?k:-k;ta=ta+1|0}while((ta|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25720)|0)){if((f|0)<=0){g=f;return g|0}ta=f+-1|0;ra=0;do{p[b+(ra<<3)>>3]=+p[5096+(ta-ra<<3)>>3];ra=ra+1|0}while((ra|0)!=(f|0));ra=Vc(f<<3)|0;pa=0;do{k=+p[5096+(ta-pa<<3)>>3];p[ra+(pa<<3)>>3]=(pa&1|0)==0?k:-k;pa=pa+1|0}while((pa|0)!=(f|0));ua=0;do{p[c+(ua<<3)>>3]=+p[ra+(ta-ua<<3)>>3];ua=ua+1|0}while((ua|0)!=(f|0));Wc(ra);ra=0;do{p[d+(ra<<3)>>3]=+p[5096+(ra<<3)>>3];ra=ra+1|0}while((ra|0)!=(f|0));va=0;do{k=+p[5096+(ta-va<<3)>>3];p[e+(va<<3)>>3]=(va&1|0)==0?k:-k;va=va+1|0}while((va|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25725)|0)){if((f|0)<=0){g=f;return g|0}va=f+-1|0;ta=0;do{p[b+(ta<<3)>>3]=+p[5624+(va-ta<<3)>>3];ta=ta+1|0}while((ta|0)!=(f|0));ta=Vc(f<<3)|0;ra=0;do{k=+p[5624+(va-ra<<3)>>3];p[ta+(ra<<3)>>3]=(ra&1|0)==0?k:-k;ra=ra+1|0}while((ra|0)!=(f|0));wa=0;do{p[c+(wa<<3)>>3]=+p[ta+(va-wa<<3)>>3];wa=wa+1|0}while((wa|0)!=(f|0));Wc(ta);ta=0;do{p[d+(ta<<3)>>3]=+p[5624+(ta<<3)>>3];ta=ta+1|0}while((ta|0)!=(f|0));xa=0;do{k=+p[5624+(va-xa<<3)>>3];p[e+(xa<<3)>>3]=(xa&1|0)==0?k:-k;xa=xa+1|0}while((xa|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25730)|0)){if((f|0)<=0){g=f;return g|0}xa=f+-1|0;va=0;do{p[b+(va<<3)>>3]=+p[6168+(xa-va<<3)>>3];va=va+1|0}while((va|0)!=(f|0));va=Vc(f<<3)|0;ta=0;do{k=+p[6168+(xa-ta<<3)>>3];p[va+(ta<<3)>>3]=(ta&1|0)==0?k:-k;ta=ta+1|0}while((ta|0)!=(f|0));ya=0;do{p[c+(ya<<3)>>3]=+p[va+(xa-ya<<3)>>3];ya=ya+1|0}while((ya|0)!=(f|0));Wc(va);va=0;do{p[d+(va<<3)>>3]=+p[6168+(va<<3)>>3];va=va+1|0}while((va|0)!=(f|0));za=0;do{k=+p[6168+(xa-za<<3)>>3];p[e+(za<<3)>>3]=(za&1|0)==0?k:-k;za=za+1|0}while((za|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25735)|0)){if((f|0)<=0){g=f;return g|0}za=f+-1|0;xa=0;do{p[b+(xa<<3)>>3]=+p[6728+(za-xa<<3)>>3];xa=xa+1|0}while((xa|0)!=(f|0));xa=Vc(f<<3)|0;va=0;do{k=+p[6728+(za-va<<3)>>3];p[xa+(va<<3)>>3]=(va&1|0)==0?k:-k;va=va+1|0}while((va|0)!=(f|0));Aa=0;do{p[c+(Aa<<3)>>3]=+p[xa+(za-Aa<<3)>>3];Aa=Aa+1|0}while((Aa|0)!=(f|0));Wc(xa);xa=0;do{p[d+(xa<<3)>>3]=+p[6728+(xa<<3)>>3];xa=xa+1|0}while((xa|0)!=(f|0));Ba=0;do{k=+p[6728+(za-Ba<<3)>>3];p[e+(Ba<<3)>>3]=(Ba&1|0)==0?k:-k;Ba=Ba+1|0}while((Ba|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25740)|0)){if((f|0)<=0){g=f;return g|0}Ba=f+-1|0;za=0;do{p[b+(za<<3)>>3]=+p[7304+(Ba-za<<3)>>3];za=za+1|0}while((za|0)!=(f|0));za=Vc(f<<3)|0;xa=0;do{k=+p[7304+(Ba-xa<<3)>>3];p[za+(xa<<3)>>3]=(xa&1|0)==0?k:-k;xa=xa+1|0}while((xa|0)!=(f|0));Ca=0;do{p[c+(Ca<<3)>>3]=+p[za+(Ba-Ca<<3)>>3];Ca=Ca+1|0}while((Ca|0)!=(f|0));Wc(za);za=0;do{p[d+(za<<3)>>3]=+p[7304+(za<<3)>>3];za=za+1|0}while((za|0)!=(f|0));Da=0;do{k=+p[7304+(Ba-Da<<3)>>3];p[e+(Da<<3)>>3]=(Da&1|0)==0?k:-k;Da=Da+1|0}while((Da|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25745)|0)){if((f|0)<=0){g=f;return g|0}Da=f+-1|0;Ba=0;do{p[b+(Ba<<3)>>3]=+p[7896+(Da-Ba<<3)>>3];Ba=Ba+1|0}while((Ba|0)!=(f|0));Ba=Vc(f<<3)|0;za=0;do{k=+p[7896+(Da-za<<3)>>3];p[Ba+(za<<3)>>3]=(za&1|0)==0?k:-k;za=za+1|0}while((za|0)!=(f|0));Ea=0;do{p[c+(Ea<<3)>>3]=+p[Ba+(Da-Ea<<3)>>3];Ea=Ea+1|0}while((Ea|0)!=(f|0));Wc(Ba);Ba=0;do{p[d+(Ba<<3)>>3]=+p[7896+(Ba<<3)>>3];Ba=Ba+1|0}while((Ba|0)!=(f|0));Fa=0;do{k=+p[7896+(Da-Fa<<3)>>3];p[e+(Fa<<3)>>3]=(Fa&1|0)==0?k:-k;Fa=Fa+1|0}while((Fa|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25318)|0)){if((f|0)<=0){g=f;return g|0}Fa=f+-1|0;Da=0;do{p[b+(Da<<3)>>3]=+p[11864+(Fa-Da<<3)>>3];Da=Da+1|0}while((Da|0)!=(f|0));Da=Vc(f<<3)|0;Ba=0;do{k=+p[11912+(Fa-Ba<<3)>>3];p[Da+(Ba<<3)>>3]=(Ba&1|0)==0?k:-k;Ba=Ba+1|0}while((Ba|0)!=(f|0));Ga=0;do{p[c+(Ga<<3)>>3]=+p[Da+(Fa-Ga<<3)>>3];Ga=Ga+1|0}while((Ga|0)!=(f|0));Wc(Da);Da=0;do{p[d+(Da<<3)>>3]=+p[11912+(Da<<3)>>3];Da=Da+1|0}while((Da|0)!=(f|0));Ha=0;do{k=+p[11864+(Fa-Ha<<3)>>3];p[e+(Ha<<3)>>3]=(Ha&1|0)==0?k:-k;Ha=Ha+1|0}while((Ha|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25326)|0)){if((f|0)<=0){g=f;return g|0}Ha=f+-1|0;Fa=0;do{p[b+(Fa<<3)>>3]=+p[11960+(Ha-Fa<<3)>>3];Fa=Fa+1|0}while((Fa|0)!=(f|0));Fa=Vc(f<<3)|0;Da=0;do{k=+p[11896+(Ha-Da<<3)>>3];p[Fa+(Da<<3)>>3]=(Da&1|0)==0?k:-k;Da=Da+1|0}while((Da|0)!=(f|0));Ia=0;do{p[c+(Ia<<3)>>3]=+p[Fa+(Ha-Ia<<3)>>3];Ia=Ia+1|0}while((Ia|0)!=(f|0));Wc(Fa);Fa=0;do{p[d+(Fa<<3)>>3]=+p[11896+(Fa<<3)>>3];Fa=Fa+1|0}while((Fa|0)!=(f|0));Ja=0;do{k=+p[11960+(Ha-Ja<<3)>>3];p[e+(Ja<<3)>>3]=(Ja&1|0)==0?k:-k;Ja=Ja+1|0}while((Ja|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25334)|0)){if((f|0)<=0){g=f;return g|0}Ja=f+-1|0;Ha=0;do{p[b+(Ha<<3)>>3]=+p[12008+(Ja-Ha<<3)>>3];Ha=Ha+1|0}while((Ha|0)!=(f|0));Ha=Vc(f<<3)|0;Fa=0;do{k=+p[11880+(Ja-Fa<<3)>>3];p[Ha+(Fa<<3)>>3]=(Fa&1|0)==0?k:-k;Fa=Fa+1|0}while((Fa|0)!=(f|0));Ka=0;do{p[c+(Ka<<3)>>3]=+p[Ha+(Ja-Ka<<3)>>3];Ka=Ka+1|0}while((Ka|0)!=(f|0));Wc(Ha);Ha=0;do{p[d+(Ha<<3)>>3]=+p[11880+(Ha<<3)>>3];Ha=Ha+1|0}while((Ha|0)!=(f|0));La=0;do{k=+p[12008+(Ja-La<<3)>>3];p[e+(La<<3)>>3]=(La&1|0)==0?k:-k;La=La+1|0}while((La|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25342)|0)){if((f|0)<=0){g=f;return g|0}La=f+-1|0;Ja=0;do{p[b+(Ja<<3)>>3]=+p[12088+(La-Ja<<3)>>3];Ja=Ja+1|0}while((Ja|0)!=(f|0));Ja=Vc(f<<3)|0;Ha=0;do{k=+p[12184+(La-Ha<<3)>>3];p[Ja+(Ha<<3)>>3]=(Ha&1|0)==0?k:-k;Ha=Ha+1|0}while((Ha|0)!=(f|0));Ma=0;do{p[c+(Ma<<3)>>3]=+p[Ja+(La-Ma<<3)>>3];Ma=Ma+1|0}while((Ma|0)!=(f|0));Wc(Ja);Ja=0;do{p[d+(Ja<<3)>>3]=+p[12184+(Ja<<3)>>3];Ja=Ja+1|0}while((Ja|0)!=(f|0));Na=0;do{k=+p[12088+(La-Na<<3)>>3];p[e+(Na<<3)>>3]=(Na&1|0)==0?k:-k;Na=Na+1|0}while((Na|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25350)|0)){if((f|0)<=0){g=f;return g|0}Na=f+-1|0;La=0;do{p[b+(La<<3)>>3]=+p[12280+(Na-La<<3)>>3];La=La+1|0}while((La|0)!=(f|0));La=Vc(f<<3)|0;Ja=0;do{k=+p[12168+(Na-Ja<<3)>>3];p[La+(Ja<<3)>>3]=(Ja&1|0)==0?k:-k;Ja=Ja+1|0}while((Ja|0)!=(f|0));Oa=0;do{p[c+(Oa<<3)>>3]=+p[La+(Na-Oa<<3)>>3];Oa=Oa+1|0}while((Oa|0)!=(f|0));Wc(La);La=0;do{p[d+(La<<3)>>3]=+p[12168+(La<<3)>>3];La=La+1|0}while((La|0)!=(f|0));Pa=0;do{k=+p[12280+(Na-Pa<<3)>>3];p[e+(Pa<<3)>>3]=(Pa&1|0)==0?k:-k;Pa=Pa+1|0}while((Pa|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25358)|0)){if((f|0)<=0){g=f;return g|0}Pa=f+-1|0;Na=0;do{p[b+(Na<<3)>>3]=+p[12360+(Pa-Na<<3)>>3];Na=Na+1|0}while((Na|0)!=(f|0));Na=Vc(f<<3)|0;La=0;do{k=+p[12152+(Pa-La<<3)>>3];p[Na+(La<<3)>>3]=(La&1|0)==0?k:-k;La=La+1|0}while((La|0)!=(f|0));Qa=0;do{p[c+(Qa<<3)>>3]=+p[Na+(Pa-Qa<<3)>>3];Qa=Qa+1|0}while((Qa|0)!=(f|0));Wc(Na);Na=0;do{p[d+(Na<<3)>>3]=+p[12152+(Na<<3)>>3];Na=Na+1|0}while((Na|0)!=(f|0));Ra=0;do{k=+p[12360+(Pa-Ra<<3)>>3];p[e+(Ra<<3)>>3]=(Ra&1|0)==0?k:-k;Ra=Ra+1|0}while((Ra|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25366)|0)){if((f|0)<=0){g=f;return g|0}Ra=f+-1|0;Pa=0;do{p[b+(Pa<<3)>>3]=+p[12472+(Ra-Pa<<3)>>3];Pa=Pa+1|0}while((Pa|0)!=(f|0));Pa=Vc(f<<3)|0;Na=0;do{k=+p[12136+(Ra-Na<<3)>>3];p[Pa+(Na<<3)>>3]=(Na&1|0)==0?k:-k;Na=Na+1|0}while((Na|0)!=(f|0));Sa=0;do{p[c+(Sa<<3)>>3]=+p[Pa+(Ra-Sa<<3)>>3];Sa=Sa+1|0}while((Sa|0)!=(f|0));Wc(Pa);Pa=0;do{p[d+(Pa<<3)>>3]=+p[12136+(Pa<<3)>>3];Pa=Pa+1|0}while((Pa|0)!=(f|0));Ta=0;do{k=+p[12472+(Ra-Ta<<3)>>3];p[e+(Ta<<3)>>3]=(Ta&1|0)==0?k:-k;Ta=Ta+1|0}while((Ta|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25374)|0)){if((f|0)<=0){g=f;return g|0}Ta=f+-1|0;Ra=0;do{p[b+(Ra<<3)>>3]=+p[12616+(Ta-Ra<<3)>>3];Ra=Ra+1|0}while((Ra|0)!=(f|0));Ra=Vc(f<<3)|0;Pa=0;do{k=+p[12712+(Ta-Pa<<3)>>3];p[Ra+(Pa<<3)>>3]=(Pa&1|0)==0?k:-k;Pa=Pa+1|0}while((Pa|0)!=(f|0));Ua=0;do{p[c+(Ua<<3)>>3]=+p[Ra+(Ta-Ua<<3)>>3];Ua=Ua+1|0}while((Ua|0)!=(f|0));Wc(Ra);Ra=0;do{p[d+(Ra<<3)>>3]=+p[12712+(Ra<<3)>>3];Ra=Ra+1|0}while((Ra|0)!=(f|0));Va=0;do{k=+p[12616+(Ta-Va<<3)>>3];p[e+(Va<<3)>>3]=(Va&1|0)==0?k:-k;Va=Va+1|0}while((Va|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25382)|0)){if((f|0)<=0){g=f;return g|0}Va=f+-1|0;Ta=0;do{p[b+(Ta<<3)>>3]=+p[12808+(Va-Ta<<3)>>3];Ta=Ta+1|0}while((Ta|0)!=(f|0));Ta=Vc(f<<3)|0;Ra=0;do{k=+p[12696+(Va-Ra<<3)>>3];p[Ta+(Ra<<3)>>3]=(Ra&1|0)==0?k:-k;Ra=Ra+1|0}while((Ra|0)!=(f|0));Xa=0;do{p[c+(Xa<<3)>>3]=+p[Ta+(Va-Xa<<3)>>3];Xa=Xa+1|0}while((Xa|0)!=(f|0));Wc(Ta);Ta=0;do{p[d+(Ta<<3)>>3]=+p[12696+(Ta<<3)>>3];Ta=Ta+1|0}while((Ta|0)!=(f|0));Ya=0;do{k=+p[12808+(Va-Ya<<3)>>3];p[e+(Ya<<3)>>3]=(Ya&1|0)==0?k:-k;Ya=Ya+1|0}while((Ya|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25390)|0)){if((f|0)<=0){g=f;return g|0}Ya=f+-1|0;Va=0;do{p[b+(Va<<3)>>3]=+p[12872+(Ya-Va<<3)>>3];Va=Va+1|0}while((Va|0)!=(f|0));Va=Vc(f<<3)|0;Ta=0;do{k=+p[12680+(Ya-Ta<<3)>>3];p[Va+(Ta<<3)>>3]=(Ta&1|0)==0?k:-k;Ta=Ta+1|0}while((Ta|0)!=(f|0));Za=0;do{p[c+(Za<<3)>>3]=+p[Va+(Ya-Za<<3)>>3];Za=Za+1|0}while((Za|0)!=(f|0));Wc(Va);Va=0;do{p[d+(Va<<3)>>3]=+p[12680+(Va<<3)>>3];Va=Va+1|0}while((Va|0)!=(f|0));_a=0;do{k=+p[12872+(Ya-_a<<3)>>3];p[e+(_a<<3)>>3]=(_a&1|0)==0?k:-k;_a=_a+1|0}while((_a|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25398)|0)){if((f|0)<=0){g=f;return g|0}_a=f+-1|0;Ya=0;do{p[b+(Ya<<3)>>3]=+p[12968+(_a-Ya<<3)>>3];Ya=Ya+1|0}while((Ya|0)!=(f|0));Ya=Vc(f<<3)|0;Va=0;do{k=+p[12664+(_a-Va<<3)>>3];p[Ya+(Va<<3)>>3]=(Va&1|0)==0?k:-k;Va=Va+1|0}while((Va|0)!=(f|0));$a=0;do{p[c+($a<<3)>>3]=+p[Ya+(_a-$a<<3)>>3];$a=$a+1|0}while(($a|0)!=(f|0));Wc(Ya);Ya=0;do{p[d+(Ya<<3)>>3]=+p[12664+(Ya<<3)>>3];Ya=Ya+1|0}while((Ya|0)!=(f|0));ab=0;do{k=+p[12968+(_a-ab<<3)>>3];p[e+(ab<<3)>>3]=(ab&1|0)==0?k:-k;ab=ab+1|0}while((ab|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25406)|0)){if((f|0)<=0){g=f;return g|0}ab=f+-1|0;_a=0;do{p[b+(_a<<3)>>3]=+p[13096+(ab-_a<<3)>>3];_a=_a+1|0}while((_a|0)!=(f|0));_a=Vc(f<<3)|0;Ya=0;do{k=+p[12648+(ab-Ya<<3)>>3];p[_a+(Ya<<3)>>3]=(Ya&1|0)==0?k:-k;Ya=Ya+1|0}while((Ya|0)!=(f|0));bb=0;do{p[c+(bb<<3)>>3]=+p[_a+(ab-bb<<3)>>3];bb=bb+1|0}while((bb|0)!=(f|0));Wc(_a);_a=0;do{p[d+(_a<<3)>>3]=+p[12648+(_a<<3)>>3];_a=_a+1|0}while((_a|0)!=(f|0));cb=0;do{k=+p[13096+(ab-cb<<3)>>3];p[e+(cb<<3)>>3]=(cb&1|0)==0?k:-k;cb=cb+1|0}while((cb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25414)|0)){if((f|0)<=0){g=f;return g|0}cb=f+-1|0;ab=0;do{p[b+(ab<<3)>>3]=+p[13256+(cb-ab<<3)>>3];ab=ab+1|0}while((ab|0)!=(f|0));ab=Vc(f<<3)|0;_a=0;do{k=+p[13336+(cb-_a<<3)>>3];p[ab+(_a<<3)>>3]=(_a&1|0)==0?k:-k;_a=_a+1|0}while((_a|0)!=(f|0));db=0;do{p[c+(db<<3)>>3]=+p[ab+(cb-db<<3)>>3];db=db+1|0}while((db|0)!=(f|0));Wc(ab);ab=0;do{p[d+(ab<<3)>>3]=+p[13336+(ab<<3)>>3];ab=ab+1|0}while((ab|0)!=(f|0));eb=0;do{k=+p[13256+(cb-eb<<3)>>3];p[e+(eb<<3)>>3]=(eb&1|0)==0?k:-k;eb=eb+1|0}while((eb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25422)|0)){if((f|0)<=0){g=f;return g|0}eb=f+-1|0;cb=0;do{p[b+(cb<<3)>>3]=+p[13416+(eb-cb<<3)>>3];cb=cb+1|0}while((cb|0)!=(f|0));cb=Vc(f<<3)|0;ab=0;do{k=+p[13512+(eb-ab<<3)>>3];p[cb+(ab<<3)>>3]=(ab&1|0)==0?k:-k;ab=ab+1|0}while((ab|0)!=(f|0));fb=0;do{p[c+(fb<<3)>>3]=+p[cb+(eb-fb<<3)>>3];fb=fb+1|0}while((fb|0)!=(f|0));Wc(cb);cb=0;do{p[d+(cb<<3)>>3]=+p[13512+(cb<<3)>>3];cb=cb+1|0}while((cb|0)!=(f|0));gb=0;do{k=+p[13416+(eb-gb<<3)>>3];p[e+(gb<<3)>>3]=(gb&1|0)==0?k:-k;gb=gb+1|0}while((gb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25430)|0)){if((f|0)<=0){g=f;return g|0}gb=f+-1|0;eb=0;do{p[b+(eb<<3)>>3]=+p[13608+(gb-eb<<3)>>3];eb=eb+1|0}while((eb|0)!=(f|0));eb=Vc(f<<3)|0;cb=0;do{k=+p[13752+(gb-cb<<3)>>3];p[eb+(cb<<3)>>3]=(cb&1|0)==0?k:-k;cb=cb+1|0}while((cb|0)!=(f|0));hb=0;do{p[c+(hb<<3)>>3]=+p[eb+(gb-hb<<3)>>3];hb=hb+1|0}while((hb|0)!=(f|0));Wc(eb);eb=0;do{p[d+(eb<<3)>>3]=+p[13752+(eb<<3)>>3];eb=eb+1|0}while((eb|0)!=(f|0));ib=0;do{k=+p[13608+(gb-ib<<3)>>3];p[e+(ib<<3)>>3]=(ib&1|0)==0?k:-k;ib=ib+1|0}while((ib|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25438)|0)){if((f|0)<=0){g=f;return g|0}ib=f+-1|0;gb=0;do{p[b+(gb<<3)>>3]=+p[11912+(ib-gb<<3)>>3];gb=gb+1|0}while((gb|0)!=(f|0));gb=Vc(f<<3)|0;eb=0;do{k=+p[11864+(ib-eb<<3)>>3];p[gb+(eb<<3)>>3]=(eb&1|0)==0?k:-k;eb=eb+1|0}while((eb|0)!=(f|0));jb=0;do{p[c+(jb<<3)>>3]=+p[gb+(ib-jb<<3)>>3];jb=jb+1|0}while((jb|0)!=(f|0));Wc(gb);gb=0;do{p[d+(gb<<3)>>3]=+p[11864+(gb<<3)>>3];gb=gb+1|0}while((gb|0)!=(f|0));kb=0;do{k=+p[11912+(ib-kb<<3)>>3];p[e+(kb<<3)>>3]=(kb&1|0)==0?k:-k;kb=kb+1|0}while((kb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25447)|0)){if((f|0)<=0){g=f;return g|0}kb=f+-1|0;ib=0;do{p[b+(ib<<3)>>3]=+p[11896+(kb-ib<<3)>>3];ib=ib+1|0}while((ib|0)!=(f|0));ib=Vc(f<<3)|0;gb=0;do{k=+p[11960+(kb-gb<<3)>>3];p[ib+(gb<<3)>>3]=(gb&1|0)==0?k:-k;gb=gb+1|0}while((gb|0)!=(f|0));lb=0;do{p[c+(lb<<3)>>3]=+p[ib+(kb-lb<<3)>>3];lb=lb+1|0}while((lb|0)!=(f|0));Wc(ib);ib=0;do{p[d+(ib<<3)>>3]=+p[11960+(ib<<3)>>3];ib=ib+1|0}while((ib|0)!=(f|0));mb=0;do{k=+p[11896+(kb-mb<<3)>>3];p[e+(mb<<3)>>3]=(mb&1|0)==0?k:-k;mb=mb+1|0}while((mb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25456)|0)){if((f|0)<=0){g=f;return g|0}mb=f+-1|0;kb=0;do{p[b+(kb<<3)>>3]=+p[11880+(mb-kb<<3)>>3];kb=kb+1|0}while((kb|0)!=(f|0));kb=Vc(f<<3)|0;ib=0;do{k=+p[12008+(mb-ib<<3)>>3];p[kb+(ib<<3)>>3]=(ib&1|0)==0?k:-k;ib=ib+1|0}while((ib|0)!=(f|0));nb=0;do{p[c+(nb<<3)>>3]=+p[kb+(mb-nb<<3)>>3];nb=nb+1|0}while((nb|0)!=(f|0));Wc(kb);kb=0;do{p[d+(kb<<3)>>3]=+p[12008+(kb<<3)>>3];kb=kb+1|0}while((kb|0)!=(f|0));ob=0;do{k=+p[11880+(mb-ob<<3)>>3];p[e+(ob<<3)>>3]=(ob&1|0)==0?k:-k;ob=ob+1|0}while((ob|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25465)|0)){if((f|0)<=0){g=f;return g|0}ob=f+-1|0;mb=0;do{p[b+(mb<<3)>>3]=+p[12184+(ob-mb<<3)>>3];mb=mb+1|0}while((mb|0)!=(f|0));mb=Vc(f<<3)|0;kb=0;do{k=+p[12088+(ob-kb<<3)>>3];p[mb+(kb<<3)>>3]=(kb&1|0)==0?k:-k;kb=kb+1|0}while((kb|0)!=(f|0));pb=0;do{p[c+(pb<<3)>>3]=+p[mb+(ob-pb<<3)>>3];pb=pb+1|0}while((pb|0)!=(f|0));Wc(mb);mb=0;do{p[d+(mb<<3)>>3]=+p[12088+(mb<<3)>>3];mb=mb+1|0}while((mb|0)!=(f|0));qb=0;do{k=+p[12184+(ob-qb<<3)>>3];p[e+(qb<<3)>>3]=(qb&1|0)==0?k:-k;qb=qb+1|0}while((qb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25474)|0)){if((f|0)<=0){g=f;return g|0}qb=f+-1|0;ob=0;do{p[b+(ob<<3)>>3]=+p[12168+(qb-ob<<3)>>3];ob=ob+1|0}while((ob|0)!=(f|0));ob=Vc(f<<3)|0;mb=0;do{k=+p[12280+(qb-mb<<3)>>3];p[ob+(mb<<3)>>3]=(mb&1|0)==0?k:-k;mb=mb+1|0}while((mb|0)!=(f|0));rb=0;do{p[c+(rb<<3)>>3]=+p[ob+(qb-rb<<3)>>3];rb=rb+1|0}while((rb|0)!=(f|0));Wc(ob);ob=0;do{p[d+(ob<<3)>>3]=+p[12280+(ob<<3)>>3];ob=ob+1|0}while((ob|0)!=(f|0));sb=0;do{k=+p[12168+(qb-sb<<3)>>3];p[e+(sb<<3)>>3]=(sb&1|0)==0?k:-k;sb=sb+1|0}while((sb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25483)|0)){if((f|0)<=0){g=f;return g|0}sb=f+-1|0;qb=0;do{p[b+(qb<<3)>>3]=+p[12152+(sb-qb<<3)>>3];qb=qb+1|0}while((qb|0)!=(f|0));qb=Vc(f<<3)|0;ob=0;do{k=+p[12360+(sb-ob<<3)>>3];p[qb+(ob<<3)>>3]=(ob&1|0)==0?k:-k;ob=ob+1|0}while((ob|0)!=(f|0));tb=0;do{p[c+(tb<<3)>>3]=+p[qb+(sb-tb<<3)>>3];tb=tb+1|0}while((tb|0)!=(f|0));Wc(qb);qb=0;do{p[d+(qb<<3)>>3]=+p[12360+(qb<<3)>>3];qb=qb+1|0}while((qb|0)!=(f|0));ub=0;do{k=+p[12152+(sb-ub<<3)>>3];p[e+(ub<<3)>>3]=(ub&1|0)==0?k:-k;ub=ub+1|0}while((ub|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25492)|0)){if((f|0)<=0){g=f;return g|0}ub=f+-1|0;sb=0;do{p[b+(sb<<3)>>3]=+p[12136+(ub-sb<<3)>>3];sb=sb+1|0}while((sb|0)!=(f|0));sb=Vc(f<<3)|0;qb=0;do{k=+p[12472+(ub-qb<<3)>>3];p[sb+(qb<<3)>>3]=(qb&1|0)==0?k:-k;qb=qb+1|0}while((qb|0)!=(f|0));vb=0;do{p[c+(vb<<3)>>3]=+p[sb+(ub-vb<<3)>>3];vb=vb+1|0}while((vb|0)!=(f|0));Wc(sb);sb=0;do{p[d+(sb<<3)>>3]=+p[12472+(sb<<3)>>3];sb=sb+1|0}while((sb|0)!=(f|0));wb=0;do{k=+p[12136+(ub-wb<<3)>>3];p[e+(wb<<3)>>3]=(wb&1|0)==0?k:-k;wb=wb+1|0}while((wb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25501)|0)){if((f|0)<=0){g=f;return g|0}wb=f+-1|0;ub=0;do{p[b+(ub<<3)>>3]=+p[12712+(wb-ub<<3)>>3];ub=ub+1|0}while((ub|0)!=(f|0));ub=Vc(f<<3)|0;sb=0;do{k=+p[12616+(wb-sb<<3)>>3];p[ub+(sb<<3)>>3]=(sb&1|0)==0?k:-k;sb=sb+1|0}while((sb|0)!=(f|0));xb=0;do{p[c+(xb<<3)>>3]=+p[ub+(wb-xb<<3)>>3];xb=xb+1|0}while((xb|0)!=(f|0));Wc(ub);ub=0;do{p[d+(ub<<3)>>3]=+p[12616+(ub<<3)>>3];ub=ub+1|0}while((ub|0)!=(f|0));yb=0;do{k=+p[12712+(wb-yb<<3)>>3];p[e+(yb<<3)>>3]=(yb&1|0)==0?k:-k;yb=yb+1|0}while((yb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25510)|0)){if((f|0)<=0){g=f;return g|0}yb=f+-1|0;wb=0;do{p[b+(wb<<3)>>3]=+p[12696+(yb-wb<<3)>>3];wb=wb+1|0}while((wb|0)!=(f|0));wb=Vc(f<<3)|0;ub=0;do{k=+p[12808+(yb-ub<<3)>>3];p[wb+(ub<<3)>>3]=(ub&1|0)==0?k:-k;ub=ub+1|0}while((ub|0)!=(f|0));zb=0;do{p[c+(zb<<3)>>3]=+p[wb+(yb-zb<<3)>>3];zb=zb+1|0}while((zb|0)!=(f|0));Wc(wb);wb=0;do{p[d+(wb<<3)>>3]=+p[12808+(wb<<3)>>3];wb=wb+1|0}while((wb|0)!=(f|0));Ab=0;do{k=+p[12696+(yb-Ab<<3)>>3];p[e+(Ab<<3)>>3]=(Ab&1|0)==0?k:-k;Ab=Ab+1|0}while((Ab|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25519)|0)){if((f|0)<=0){g=f;return g|0}Ab=f+-1|0;yb=0;do{p[b+(yb<<3)>>3]=+p[12680+(Ab-yb<<3)>>3];yb=yb+1|0}while((yb|0)!=(f|0));yb=Vc(f<<3)|0;wb=0;do{k=+p[12872+(Ab-wb<<3)>>3];p[yb+(wb<<3)>>3]=(wb&1|0)==0?k:-k;wb=wb+1|0}while((wb|0)!=(f|0));Bb=0;do{p[c+(Bb<<3)>>3]=+p[yb+(Ab-Bb<<3)>>3];Bb=Bb+1|0}while((Bb|0)!=(f|0));Wc(yb);yb=0;do{p[d+(yb<<3)>>3]=+p[12872+(yb<<3)>>3];yb=yb+1|0}while((yb|0)!=(f|0));Cb=0;do{k=+p[12680+(Ab-Cb<<3)>>3];p[e+(Cb<<3)>>3]=(Cb&1|0)==0?k:-k;Cb=Cb+1|0}while((Cb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25528)|0)){if((f|0)<=0){g=f;return g|0}Cb=f+-1|0;Ab=0;do{p[b+(Ab<<3)>>3]=+p[12664+(Cb-Ab<<3)>>3];Ab=Ab+1|0}while((Ab|0)!=(f|0));Ab=Vc(f<<3)|0;yb=0;do{k=+p[12968+(Cb-yb<<3)>>3];p[Ab+(yb<<3)>>3]=(yb&1|0)==0?k:-k;yb=yb+1|0}while((yb|0)!=(f|0));Db=0;do{p[c+(Db<<3)>>3]=+p[Ab+(Cb-Db<<3)>>3];Db=Db+1|0}while((Db|0)!=(f|0));Wc(Ab);Ab=0;do{p[d+(Ab<<3)>>3]=+p[12968+(Ab<<3)>>3];Ab=Ab+1|0}while((Ab|0)!=(f|0));Eb=0;do{k=+p[12664+(Cb-Eb<<3)>>3];p[e+(Eb<<3)>>3]=(Eb&1|0)==0?k:-k;Eb=Eb+1|0}while((Eb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25537)|0)){if((f|0)<=0){g=f;return g|0}Eb=f+-1|0;Cb=0;do{p[b+(Cb<<3)>>3]=+p[12648+(Eb-Cb<<3)>>3];Cb=Cb+1|0}while((Cb|0)!=(f|0));Cb=Vc(f<<3)|0;Ab=0;do{k=+p[13096+(Eb-Ab<<3)>>3];p[Cb+(Ab<<3)>>3]=(Ab&1|0)==0?k:-k;Ab=Ab+1|0}while((Ab|0)!=(f|0));Fb=0;do{p[c+(Fb<<3)>>3]=+p[Cb+(Eb-Fb<<3)>>3];Fb=Fb+1|0}while((Fb|0)!=(f|0));Wc(Cb);Cb=0;do{p[d+(Cb<<3)>>3]=+p[13096+(Cb<<3)>>3];Cb=Cb+1|0}while((Cb|0)!=(f|0));Gb=0;do{k=+p[12648+(Eb-Gb<<3)>>3];p[e+(Gb<<3)>>3]=(Gb&1|0)==0?k:-k;Gb=Gb+1|0}while((Gb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25546)|0)){if((f|0)<=0){g=f;return g|0}Gb=f+-1|0;Eb=0;do{p[b+(Eb<<3)>>3]=+p[13336+(Gb-Eb<<3)>>3];Eb=Eb+1|0}while((Eb|0)!=(f|0));Eb=Vc(f<<3)|0;Cb=0;do{k=+p[13256+(Gb-Cb<<3)>>3];p[Eb+(Cb<<3)>>3]=(Cb&1|0)==0?k:-k;Cb=Cb+1|0}while((Cb|0)!=(f|0));Hb=0;do{p[c+(Hb<<3)>>3]=+p[Eb+(Gb-Hb<<3)>>3];Hb=Hb+1|0}while((Hb|0)!=(f|0));Wc(Eb);Eb=0;do{p[d+(Eb<<3)>>3]=+p[13256+(Eb<<3)>>3];Eb=Eb+1|0}while((Eb|0)!=(f|0));Ib=0;do{k=+p[13336+(Gb-Ib<<3)>>3];p[e+(Ib<<3)>>3]=(Ib&1|0)==0?k:-k;Ib=Ib+1|0}while((Ib|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25555)|0)){if((f|0)<=0){g=f;return g|0}Ib=f+-1|0;Gb=0;do{p[b+(Gb<<3)>>3]=+p[13512+(Ib-Gb<<3)>>3];Gb=Gb+1|0}while((Gb|0)!=(f|0));Gb=Vc(f<<3)|0;Eb=0;do{k=+p[13416+(Ib-Eb<<3)>>3];p[Gb+(Eb<<3)>>3]=(Eb&1|0)==0?k:-k;Eb=Eb+1|0}while((Eb|0)!=(f|0));Jb=0;do{p[c+(Jb<<3)>>3]=+p[Gb+(Ib-Jb<<3)>>3];Jb=Jb+1|0}while((Jb|0)!=(f|0));Wc(Gb);Gb=0;do{p[d+(Gb<<3)>>3]=+p[13416+(Gb<<3)>>3];Gb=Gb+1|0}while((Gb|0)!=(f|0));Kb=0;do{k=+p[13512+(Ib-Kb<<3)>>3];p[e+(Kb<<3)>>3]=(Kb&1|0)==0?k:-k;Kb=Kb+1|0}while((Kb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25564)|0)){if((f|0)<=0){g=f;return g|0}Kb=f+-1|0;Ib=0;do{p[b+(Ib<<3)>>3]=+p[13752+(Kb-Ib<<3)>>3];Ib=Ib+1|0}while((Ib|0)!=(f|0));Ib=Vc(f<<3)|0;Gb=0;do{k=+p[13608+(Kb-Gb<<3)>>3];p[Ib+(Gb<<3)>>3]=(Gb&1|0)==0?k:-k;Gb=Gb+1|0}while((Gb|0)!=(f|0));Lb=0;do{p[c+(Lb<<3)>>3]=+p[Ib+(Kb-Lb<<3)>>3];Lb=Lb+1|0}while((Lb|0)!=(f|0));Wc(Ib);Ib=0;do{p[d+(Ib<<3)>>3]=+p[13608+(Ib<<3)>>3];Ib=Ib+1|0}while((Ib|0)!=(f|0));Mb=0;do{k=+p[13752+(Kb-Mb<<3)>>3];p[e+(Mb<<3)>>3]=(Mb&1|0)==0?k:-k;Mb=Mb+1|0}while((Mb|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25750)|0)){Mb=f<<3;Kb=Vc(Mb)|0;Ib=(f|0)>0;do if(Ib){gd(Kb|0,13896,Mb|0)|0;Lb=0;do{Gb=Kb+(Lb<<3)|0;p[Gb>>3]=+p[Gb>>3]*1.4142135623730951;Lb=Lb+1|0}while((Lb|0)!=(f|0));if(!Ib)break;Lb=f+-1|0;Gb=0;do{p[b+(Gb<<3)>>3]=+p[Kb+(Lb-Gb<<3)>>3];Gb=Gb+1|0}while((Gb|0)!=(f|0));Gb=Vc(Mb)|0;Jb=0;do{k=+p[Kb+(Lb-Jb<<3)>>3];p[Gb+(Jb<<3)>>3]=(Jb&1|0)==0?k:-k;Jb=Jb+1|0}while((Jb|0)!=(f|0));Nb=0;do{p[c+(Nb<<3)>>3]=+p[Gb+(Lb-Nb<<3)>>3];Nb=Nb+1|0}while((Nb|0)!=(f|0));Wc(Gb);gd(d|0,Kb|0,Mb|0)|0;Jb=0;do{k=+p[Kb+(Lb-Jb<<3)>>3];p[e+(Jb<<3)>>3]=(Jb&1|0)==0?k:-k;Jb=Jb+1|0}while((Jb|0)!=(f|0))}while(0);Wc(Kb);g=f;return g|0}if(!(Ob(a,25756)|0)){Kb=f<<3;Mb=Vc(Kb)|0;Nb=(f|0)>0;do if(Nb){gd(Mb|0,13944,Kb|0)|0;Ib=0;do{Jb=Mb+(Ib<<3)|0;p[Jb>>3]=+p[Jb>>3]*1.4142135623730951;Ib=Ib+1|0}while((Ib|0)!=(f|0));if(!Nb)break;Ib=f+-1|0;Jb=0;do{p[b+(Jb<<3)>>3]=+p[Mb+(Ib-Jb<<3)>>3];Jb=Jb+1|0}while((Jb|0)!=(f|0));Jb=Vc(Kb)|0;Lb=0;do{k=+p[Mb+(Ib-Lb<<3)>>3];p[Jb+(Lb<<3)>>3]=(Lb&1|0)==0?k:-k;Lb=Lb+1|0}while((Lb|0)!=(f|0));Pb=0;do{p[c+(Pb<<3)>>3]=+p[Jb+(Ib-Pb<<3)>>3];Pb=Pb+1|0}while((Pb|0)!=(f|0));Wc(Jb);gd(d|0,Mb|0,Kb|0)|0;Lb=0;do{k=+p[Mb+(Ib-Lb<<3)>>3];p[e+(Lb<<3)>>3]=(Lb&1|0)==0?k:-k;Lb=Lb+1|0}while((Lb|0)!=(f|0))}while(0);Wc(Mb);g=f;return g|0}if(!(Ob(a,25762)|0)){Mb=f<<3;Kb=Vc(Mb)|0;Pb=(f|0)>0;do if(Pb){gd(Kb|0,14040,Mb|0)|0;Nb=0;do{Lb=Kb+(Nb<<3)|0;p[Lb>>3]=+p[Lb>>3]*1.4142135623730951;Nb=Nb+1|0}while((Nb|0)!=(f|0));if(!Pb)break;Nb=f+-1|0;Lb=0;do{p[b+(Lb<<3)>>3]=+p[Kb+(Nb-Lb<<3)>>3];Lb=Lb+1|0}while((Lb|0)!=(f|0));Lb=Vc(Mb)|0;Ib=0;do{k=+p[Kb+(Nb-Ib<<3)>>3];p[Lb+(Ib<<3)>>3]=(Ib&1|0)==0?k:-k;Ib=Ib+1|0}while((Ib|0)!=(f|0));Qb=0;do{p[c+(Qb<<3)>>3]=+p[Lb+(Nb-Qb<<3)>>3];Qb=Qb+1|0}while((Qb|0)!=(f|0));Wc(Lb);gd(d|0,Kb|0,Mb|0)|0;Ib=0;do{k=+p[Kb+(Nb-Ib<<3)>>3];p[e+(Ib<<3)>>3]=(Ib&1|0)==0?k:-k;Ib=Ib+1|0}while((Ib|0)!=(f|0))}while(0);Wc(Kb);g=f;return g|0}if(!(Ob(a,25768)|0)){Kb=f<<3;Mb=Vc(Kb)|0;Qb=(f|0)>0;do if(Qb){gd(Mb|0,14184,Kb|0)|0;Pb=0;do{Ib=Mb+(Pb<<3)|0;p[Ib>>3]=+p[Ib>>3]*1.4142135623730951;Pb=Pb+1|0}while((Pb|0)!=(f|0));if(!Qb)break;Pb=f+-1|0;Ib=0;do{p[b+(Ib<<3)>>3]=+p[Mb+(Pb-Ib<<3)>>3];Ib=Ib+1|0}while((Ib|0)!=(f|0));Ib=Vc(Kb)|0;Nb=0;do{k=+p[Mb+(Pb-Nb<<3)>>3];p[Ib+(Nb<<3)>>3]=(Nb&1|0)==0?k:-k;Nb=Nb+1|0}while((Nb|0)!=(f|0));Rb=0;do{p[c+(Rb<<3)>>3]=+p[Ib+(Pb-Rb<<3)>>3];Rb=Rb+1|0}while((Rb|0)!=(f|0));Wc(Ib);gd(d|0,Mb|0,Kb|0)|0;Nb=0;do{k=+p[Mb+(Pb-Nb<<3)>>3];p[e+(Nb<<3)>>3]=(Nb&1|0)==0?k:-k;Nb=Nb+1|0}while((Nb|0)!=(f|0))}while(0);Wc(Mb);g=f;return g|0}if(!(Ob(a,25774)|0)){Mb=f<<3;Kb=Vc(Mb)|0;Rb=(f|0)>0;do if(Rb){gd(Kb|0,14376,Mb|0)|0;Qb=0;do{Nb=Kb+(Qb<<3)|0;p[Nb>>3]=+p[Nb>>3]*1.4142135623730951;Qb=Qb+1|0}while((Qb|0)!=(f|0));if(!Rb)break;Qb=f+-1|0;Nb=0;do{p[b+(Nb<<3)>>3]=+p[Kb+(Qb-Nb<<3)>>3];Nb=Nb+1|0}while((Nb|0)!=(f|0));Nb=Vc(Mb)|0;Pb=0;do{k=+p[Kb+(Qb-Pb<<3)>>3];p[Nb+(Pb<<3)>>3]=(Pb&1|0)==0?k:-k;Pb=Pb+1|0}while((Pb|0)!=(f|0));Sb=0;do{p[c+(Sb<<3)>>3]=+p[Nb+(Qb-Sb<<3)>>3];Sb=Sb+1|0}while((Sb|0)!=(f|0));Wc(Nb);gd(d|0,Kb|0,Mb|0)|0;Pb=0;do{k=+p[Kb+(Qb-Pb<<3)>>3];p[e+(Pb<<3)>>3]=(Pb&1|0)==0?k:-k;Pb=Pb+1|0}while((Pb|0)!=(f|0))}while(0);Wc(Kb);g=f;return g|0}if(!(Ob(a,25780)|0)){Kb=f<<3;Mb=Vc(Kb)|0;Sb=(f|0)>0;do if(Sb){gd(Mb|0,14616,Kb|0)|0;Rb=0;do{Pb=Mb+(Rb<<3)|0;p[Pb>>3]=+p[Pb>>3]*1.4142135623730951;Rb=Rb+1|0}while((Rb|0)!=(f|0));if(!Sb)break;Rb=f+-1|0;Pb=0;do{p[b+(Pb<<3)>>3]=+p[Mb+(Rb-Pb<<3)>>3];Pb=Pb+1|0}while((Pb|0)!=(f|0));Pb=Vc(Kb)|0;Qb=0;do{k=+p[Mb+(Rb-Qb<<3)>>3];p[Pb+(Qb<<3)>>3]=(Qb&1|0)==0?k:-k;Qb=Qb+1|0}while((Qb|0)!=(f|0));Tb=0;do{p[c+(Tb<<3)>>3]=+p[Pb+(Rb-Tb<<3)>>3];Tb=Tb+1|0}while((Tb|0)!=(f|0));Wc(Pb);gd(d|0,Mb|0,Kb|0)|0;Qb=0;do{k=+p[Mb+(Rb-Qb<<3)>>3];p[e+(Qb<<3)>>3]=(Qb&1|0)==0?k:-k;Qb=Qb+1|0}while((Qb|0)!=(f|0))}while(0);Wc(Mb);g=f;return g|0}if(!(Ob(a,25786)|0)){Mb=f<<3;Kb=Vc(Mb)|0;Tb=(f|0)>0;do if(Tb){gd(Kb|0,14904,Mb|0)|0;Sb=0;do{Qb=Kb+(Sb<<3)|0;p[Qb>>3]=+p[Qb>>3]*1.4142135623730951;Sb=Sb+1|0}while((Sb|0)!=(f|0));if(!Tb)break;Sb=f+-1|0;Qb=0;do{p[b+(Qb<<3)>>3]=+p[Kb+(Sb-Qb<<3)>>3];Qb=Qb+1|0}while((Qb|0)!=(f|0));Qb=Vc(Mb)|0;Rb=0;do{k=+p[Kb+(Sb-Rb<<3)>>3];p[Qb+(Rb<<3)>>3]=(Rb&1|0)==0?k:-k;Rb=Rb+1|0}while((Rb|0)!=(f|0));Ub=0;do{p[c+(Ub<<3)>>3]=+p[Qb+(Sb-Ub<<3)>>3];Ub=Ub+1|0}while((Ub|0)!=(f|0));Wc(Qb);gd(d|0,Kb|0,Mb|0)|0;Rb=0;do{k=+p[Kb+(Sb-Rb<<3)>>3];p[e+(Rb<<3)>>3]=(Rb&1|0)==0?k:-k;Rb=Rb+1|0}while((Rb|0)!=(f|0))}while(0);Wc(Kb);g=f;return g|0}if(!(Ob(a,25792)|0)){Kb=f<<3;Mb=Vc(Kb)|0;Ub=(f|0)>0;do if(Ub){gd(Mb|0,15240,Kb|0)|0;Tb=0;do{Rb=Mb+(Tb<<3)|0;p[Rb>>3]=+p[Rb>>3]*1.4142135623730951;Tb=Tb+1|0}while((Tb|0)!=(f|0));if(!Ub)break;Tb=f+-1|0;Rb=0;do{p[b+(Rb<<3)>>3]=+p[Mb+(Tb-Rb<<3)>>3];Rb=Rb+1|0}while((Rb|0)!=(f|0));Rb=Vc(Kb)|0;Sb=0;do{k=+p[Mb+(Tb-Sb<<3)>>3];p[Rb+(Sb<<3)>>3]=(Sb&1|0)==0?k:-k;Sb=Sb+1|0}while((Sb|0)!=(f|0));Vb=0;do{p[c+(Vb<<3)>>3]=+p[Rb+(Tb-Vb<<3)>>3];Vb=Vb+1|0}while((Vb|0)!=(f|0));Wc(Rb);gd(d|0,Mb|0,Kb|0)|0;Sb=0;do{k=+p[Mb+(Tb-Sb<<3)>>3];p[e+(Sb<<3)>>3]=(Sb&1|0)==0?k:-k;Sb=Sb+1|0}while((Sb|0)!=(f|0))}while(0);Wc(Mb);g=f;return g|0}if(!(Ob(a,25798)|0)){Mb=f<<3;Kb=Vc(Mb)|0;Vb=(f|0)>0;do if(Vb){gd(Kb|0,15624,Mb|0)|0;Ub=0;do{Sb=Kb+(Ub<<3)|0;p[Sb>>3]=+p[Sb>>3]*1.4142135623730951;Ub=Ub+1|0}while((Ub|0)!=(f|0));if(!Vb)break;Ub=f+-1|0;Sb=0;do{p[b+(Sb<<3)>>3]=+p[Kb+(Ub-Sb<<3)>>3];Sb=Sb+1|0}while((Sb|0)!=(f|0));Sb=Vc(Mb)|0;Tb=0;do{k=+p[Kb+(Ub-Tb<<3)>>3];p[Sb+(Tb<<3)>>3]=(Tb&1|0)==0?k:-k;Tb=Tb+1|0}while((Tb|0)!=(f|0));Wb=0;do{p[c+(Wb<<3)>>3]=+p[Sb+(Ub-Wb<<3)>>3];Wb=Wb+1|0}while((Wb|0)!=(f|0));Wc(Sb);gd(d|0,Kb|0,Mb|0)|0;Tb=0;do{k=+p[Kb+(Ub-Tb<<3)>>3];p[e+(Tb<<3)>>3]=(Tb&1|0)==0?k:-k;Tb=Tb+1|0}while((Tb|0)!=(f|0))}while(0);Wc(Kb);g=f;return g|0}if(!(Ob(a,25804)|0)){Kb=f<<3;Mb=Vc(Kb)|0;Wb=(f|0)>0;do if(Wb){gd(Mb|0,16056,Kb|0)|0;Vb=0;do{Tb=Mb+(Vb<<3)|0;p[Tb>>3]=+p[Tb>>3]*1.4142135623730951;Vb=Vb+1|0}while((Vb|0)!=(f|0));if(!Wb)break;Vb=f+-1|0;Tb=0;do{p[b+(Tb<<3)>>3]=+p[Mb+(Vb-Tb<<3)>>3];Tb=Tb+1|0}while((Tb|0)!=(f|0));Tb=Vc(Kb)|0;Ub=0;do{k=+p[Mb+(Vb-Ub<<3)>>3];p[Tb+(Ub<<3)>>3]=(Ub&1|0)==0?k:-k;Ub=Ub+1|0}while((Ub|0)!=(f|0));Xb=0;do{p[c+(Xb<<3)>>3]=+p[Tb+(Vb-Xb<<3)>>3];Xb=Xb+1|0}while((Xb|0)!=(f|0));Wc(Tb);gd(d|0,Mb|0,Kb|0)|0;Ub=0;do{k=+p[Mb+(Vb-Ub<<3)>>3];p[e+(Ub<<3)>>3]=(Ub&1|0)==0?k:-k;Ub=Ub+1|0}while((Ub|0)!=(f|0))}while(0);Wc(Mb);g=f;return g|0}if(!(Ob(a,25811)|0)){Mb=f<<3;Kb=Vc(Mb)|0;Xb=(f|0)>0;do if(Xb){gd(Kb|0,16536,Mb|0)|0;Wb=0;do{Ub=Kb+(Wb<<3)|0;p[Ub>>3]=+p[Ub>>3]*1.4142135623730951;Wb=Wb+1|0}while((Wb|0)!=(f|0));if(!Xb)break;Wb=f+-1|0;Ub=0;do{p[b+(Ub<<3)>>3]=+p[Kb+(Wb-Ub<<3)>>3];Ub=Ub+1|0}while((Ub|0)!=(f|0));Ub=Vc(Mb)|0;Vb=0;do{k=+p[Kb+(Wb-Vb<<3)>>3];p[Ub+(Vb<<3)>>3]=(Vb&1|0)==0?k:-k;Vb=Vb+1|0}while((Vb|0)!=(f|0));Yb=0;do{p[c+(Yb<<3)>>3]=+p[Ub+(Wb-Yb<<3)>>3];Yb=Yb+1|0}while((Yb|0)!=(f|0));Wc(Ub);gd(d|0,Kb|0,Mb|0)|0;Vb=0;do{k=+p[Kb+(Wb-Vb<<3)>>3];p[e+(Vb<<3)>>3]=(Vb&1|0)==0?k:-k;Vb=Vb+1|0}while((Vb|0)!=(f|0))}while(0);Wc(Kb);g=f;return g|0}if(!(Ob(a,25818)|0)){Kb=f<<3;Mb=Vc(Kb)|0;Yb=(f|0)>0;do if(Yb){gd(Mb|0,17064,Kb|0)|0;Xb=0;do{Vb=Mb+(Xb<<3)|0;p[Vb>>3]=+p[Vb>>3]*1.4142135623730951;Xb=Xb+1|0}while((Xb|0)!=(f|0));if(!Yb)break;Xb=f+-1|0;Vb=0;do{p[b+(Vb<<3)>>3]=+p[Mb+(Xb-Vb<<3)>>3];Vb=Vb+1|0}while((Vb|0)!=(f|0));Vb=Vc(Kb)|0;Wb=0;do{k=+p[Mb+(Xb-Wb<<3)>>3];p[Vb+(Wb<<3)>>3]=(Wb&1|0)==0?k:-k;Wb=Wb+1|0}while((Wb|0)!=(f|0));Zb=0;do{p[c+(Zb<<3)>>3]=+p[Vb+(Xb-Zb<<3)>>3];Zb=Zb+1|0}while((Zb|0)!=(f|0));Wc(Vb);gd(d|0,Mb|0,Kb|0)|0;Wb=0;do{k=+p[Mb+(Xb-Wb<<3)>>3];p[e+(Wb<<3)>>3]=(Wb&1|0)==0?k:-k;Wb=Wb+1|0}while((Wb|0)!=(f|0))}while(0);Wc(Mb);g=f;return g|0}if(!(Ob(a,25825)|0)){Mb=f<<3;Kb=Vc(Mb)|0;Zb=(f|0)>0;do if(Zb){gd(Kb|0,17640,Mb|0)|0;Yb=0;do{Wb=Kb+(Yb<<3)|0;p[Wb>>3]=+p[Wb>>3]*1.4142135623730951;Yb=Yb+1|0}while((Yb|0)!=(f|0));if(!Zb)break;Yb=f+-1|0;Wb=0;do{p[b+(Wb<<3)>>3]=+p[Kb+(Yb-Wb<<3)>>3];Wb=Wb+1|0}while((Wb|0)!=(f|0));Wb=Vc(Mb)|0;Xb=0;do{k=+p[Kb+(Yb-Xb<<3)>>3];p[Wb+(Xb<<3)>>3]=(Xb&1|0)==0?k:-k;Xb=Xb+1|0}while((Xb|0)!=(f|0));_b=0;do{p[c+(_b<<3)>>3]=+p[Wb+(Yb-_b<<3)>>3];_b=_b+1|0}while((_b|0)!=(f|0));Wc(Wb);gd(d|0,Kb|0,Mb|0)|0;Xb=0;do{k=+p[Kb+(Yb-Xb<<3)>>3];p[e+(Xb<<3)>>3]=(Xb&1|0)==0?k:-k;Xb=Xb+1|0}while((Xb|0)!=(f|0))}while(0);Wc(Kb);g=f;return g|0}if(!(Ob(a,25832)|0)){Kb=f<<3;Mb=Vc(Kb)|0;_b=(f|0)>0;do if(_b){gd(Mb|0,18264,Kb|0)|0;Zb=0;do{Xb=Mb+(Zb<<3)|0;p[Xb>>3]=+p[Xb>>3]*1.4142135623730951;Zb=Zb+1|0}while((Zb|0)!=(f|0));if(!_b)break;Zb=f+-1|0;Xb=0;do{p[b+(Xb<<3)>>3]=+p[Mb+(Zb-Xb<<3)>>3];Xb=Xb+1|0}while((Xb|0)!=(f|0));Xb=Vc(Kb)|0;Yb=0;do{k=+p[Mb+(Zb-Yb<<3)>>3];p[Xb+(Yb<<3)>>3]=(Yb&1|0)==0?k:-k;Yb=Yb+1|0}while((Yb|0)!=(f|0));$b=0;do{p[c+($b<<3)>>3]=+p[Xb+(Zb-$b<<3)>>3];$b=$b+1|0}while(($b|0)!=(f|0));Wc(Xb);gd(d|0,Mb|0,Kb|0)|0;Yb=0;do{k=+p[Mb+(Zb-Yb<<3)>>3];p[e+(Yb<<3)>>3]=(Yb&1|0)==0?k:-k;Yb=Yb+1|0}while((Yb|0)!=(f|0))}while(0);Wc(Mb);g=f;return g|0}if(!(Ob(a,25839)|0)){Mb=f<<3;Kb=Vc(Mb)|0;$b=(f|0)>0;do if($b){gd(Kb|0,18936,Mb|0)|0;_b=0;do{Yb=Kb+(_b<<3)|0;p[Yb>>3]=+p[Yb>>3]*1.4142135623730951;_b=_b+1|0}while((_b|0)!=(f|0));if(!$b)break;_b=f+-1|0;Yb=0;do{p[b+(Yb<<3)>>3]=+p[Kb+(_b-Yb<<3)>>3];Yb=Yb+1|0}while((Yb|0)!=(f|0));Yb=Vc(Mb)|0;Zb=0;do{k=+p[Kb+(_b-Zb<<3)>>3];p[Yb+(Zb<<3)>>3]=(Zb&1|0)==0?k:-k;Zb=Zb+1|0}while((Zb|0)!=(f|0));ac=0;do{p[c+(ac<<3)>>3]=+p[Yb+(_b-ac<<3)>>3];ac=ac+1|0}while((ac|0)!=(f|0));Wc(Yb);gd(d|0,Kb|0,Mb|0)|0;Zb=0;do{k=+p[Kb+(_b-Zb<<3)>>3];p[e+(Zb<<3)>>3]=(Zb&1|0)==0?k:-k;Zb=Zb+1|0}while((Zb|0)!=(f|0))}while(0);Wc(Kb);g=f;return g|0}if(!(Ob(a,25846)|0)){Kb=f<<3;Mb=Vc(Kb)|0;ac=(f|0)>0;do if(ac){gd(Mb|0,19656,Kb|0)|0;$b=0;do{Zb=Mb+($b<<3)|0;p[Zb>>3]=+p[Zb>>3]*1.4142135623730951;$b=$b+1|0}while(($b|0)!=(f|0));if(!ac)break;$b=f+-1|0;Zb=0;do{p[b+(Zb<<3)>>3]=+p[Mb+($b-Zb<<3)>>3];Zb=Zb+1|0}while((Zb|0)!=(f|0));Zb=Vc(Kb)|0;_b=0;do{k=+p[Mb+($b-_b<<3)>>3];p[Zb+(_b<<3)>>3]=(_b&1|0)==0?k:-k;_b=_b+1|0}while((_b|0)!=(f|0));bc=0;do{p[c+(bc<<3)>>3]=+p[Zb+($b-bc<<3)>>3];bc=bc+1|0}while((bc|0)!=(f|0));Wc(Zb);gd(d|0,Mb|0,Kb|0)|0;_b=0;do{k=+p[Mb+($b-_b<<3)>>3];p[e+(_b<<3)>>3]=(_b&1|0)==0?k:-k;_b=_b+1|0}while((_b|0)!=(f|0))}while(0);Wc(Mb);g=f;return g|0}if(!(Ob(a,25853)|0)){Mb=f<<3;Kb=Vc(Mb)|0;bc=(f|0)>0;do if(bc){gd(Kb|0,20424,Mb|0)|0;ac=0;do{_b=Kb+(ac<<3)|0;p[_b>>3]=+p[_b>>3]*1.4142135623730951;ac=ac+1|0}while((ac|0)!=(f|0));if(!bc)break;ac=f+-1|0;_b=0;do{p[b+(_b<<3)>>3]=+p[Kb+(ac-_b<<3)>>3];_b=_b+1|0}while((_b|0)!=(f|0));_b=Vc(Mb)|0;$b=0;do{k=+p[Kb+(ac-$b<<3)>>3];p[_b+($b<<3)>>3]=($b&1|0)==0?k:-k;$b=$b+1|0}while(($b|0)!=(f|0));cc=0;do{p[c+(cc<<3)>>3]=+p[_b+(ac-cc<<3)>>3];cc=cc+1|0}while((cc|0)!=(f|0));Wc(_b);gd(d|0,Kb|0,Mb|0)|0;$b=0;do{k=+p[Kb+(ac-$b<<3)>>3];p[e+($b<<3)>>3]=($b&1|0)==0?k:-k;$b=$b+1|0}while(($b|0)!=(f|0))}while(0);Wc(Kb);g=f;return g|0}if(!(Ob(a,25860)|0)){if((f|0)<=0){g=f;return g|0}Kb=f+-1|0;Mb=0;do{p[b+(Mb<<3)>>3]=+p[21240+(Kb-Mb<<3)>>3];Mb=Mb+1|0}while((Mb|0)!=(f|0));Mb=Vc(f<<3)|0;cc=0;do{k=+p[21240+(Kb-cc<<3)>>3];p[Mb+(cc<<3)>>3]=(cc&1|0)==0?k:-k;cc=cc+1|0}while((cc|0)!=(f|0));dc=0;do{p[c+(dc<<3)>>3]=+p[Mb+(Kb-dc<<3)>>3];dc=dc+1|0}while((dc|0)!=(f|0));Wc(Mb);Mb=0;do{p[d+(Mb<<3)>>3]=+p[21240+(Mb<<3)>>3];Mb=Mb+1|0}while((Mb|0)!=(f|0));ec=0;do{k=+p[21240+(Kb-ec<<3)>>3];p[e+(ec<<3)>>3]=(ec&1|0)==0?k:-k;ec=ec+1|0}while((ec|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25865)|0)){if((f|0)<=0){g=f;return g|0}ec=f+-1|0;Kb=0;do{p[b+(Kb<<3)>>3]=+p[21272+(ec-Kb<<3)>>3];Kb=Kb+1|0}while((Kb|0)!=(f|0));Kb=Vc(f<<3)|0;Mb=0;do{k=+p[21272+(ec-Mb<<3)>>3];p[Kb+(Mb<<3)>>3]=(Mb&1|0)==0?k:-k;Mb=Mb+1|0}while((Mb|0)!=(f|0));fc=0;do{p[c+(fc<<3)>>3]=+p[Kb+(ec-fc<<3)>>3];fc=fc+1|0}while((fc|0)!=(f|0));Wc(Kb);Kb=0;do{p[d+(Kb<<3)>>3]=+p[21272+(Kb<<3)>>3];Kb=Kb+1|0}while((Kb|0)!=(f|0));gc=0;do{k=+p[21272+(ec-gc<<3)>>3];p[e+(gc<<3)>>3]=(gc&1|0)==0?k:-k;gc=gc+1|0}while((gc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25870)|0)){if((f|0)<=0){g=f;return g|0}gc=f+-1|0;ec=0;do{p[b+(ec<<3)>>3]=+p[21320+(gc-ec<<3)>>3];ec=ec+1|0}while((ec|0)!=(f|0));ec=Vc(f<<3)|0;Kb=0;do{k=+p[21320+(gc-Kb<<3)>>3];p[ec+(Kb<<3)>>3]=(Kb&1|0)==0?k:-k;Kb=Kb+1|0}while((Kb|0)!=(f|0));hc=0;do{p[c+(hc<<3)>>3]=+p[ec+(gc-hc<<3)>>3];hc=hc+1|0}while((hc|0)!=(f|0));Wc(ec);ec=0;do{p[d+(ec<<3)>>3]=+p[21320+(ec<<3)>>3];ec=ec+1|0}while((ec|0)!=(f|0));ic=0;do{k=+p[21320+(gc-ic<<3)>>3];p[e+(ic<<3)>>3]=(ic&1|0)==0?k:-k;ic=ic+1|0}while((ic|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25875)|0)){if((f|0)<=0){g=f;return g|0}ic=f+-1|0;gc=0;do{p[b+(gc<<3)>>3]=+p[21384+(ic-gc<<3)>>3];gc=gc+1|0}while((gc|0)!=(f|0));gc=Vc(f<<3)|0;ec=0;do{k=+p[21384+(ic-ec<<3)>>3];p[gc+(ec<<3)>>3]=(ec&1|0)==0?k:-k;ec=ec+1|0}while((ec|0)!=(f|0));jc=0;do{p[c+(jc<<3)>>3]=+p[gc+(ic-jc<<3)>>3];jc=jc+1|0}while((jc|0)!=(f|0));Wc(gc);gc=0;do{p[d+(gc<<3)>>3]=+p[21384+(gc<<3)>>3];gc=gc+1|0}while((gc|0)!=(f|0));kc=0;do{k=+p[21384+(ic-kc<<3)>>3];p[e+(kc<<3)>>3]=(kc&1|0)==0?k:-k;kc=kc+1|0}while((kc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25880)|0)){if((f|0)<=0){g=f;return g|0}kc=f+-1|0;ic=0;do{p[b+(ic<<3)>>3]=+p[21464+(kc-ic<<3)>>3];ic=ic+1|0}while((ic|0)!=(f|0));ic=Vc(f<<3)|0;gc=0;do{k=+p[21464+(kc-gc<<3)>>3];p[ic+(gc<<3)>>3]=(gc&1|0)==0?k:-k;gc=gc+1|0}while((gc|0)!=(f|0));lc=0;do{p[c+(lc<<3)>>3]=+p[ic+(kc-lc<<3)>>3];lc=lc+1|0}while((lc|0)!=(f|0));Wc(ic);ic=0;do{p[d+(ic<<3)>>3]=+p[21464+(ic<<3)>>3];ic=ic+1|0}while((ic|0)!=(f|0));mc=0;do{k=+p[21464+(kc-mc<<3)>>3];p[e+(mc<<3)>>3]=(mc&1|0)==0?k:-k;mc=mc+1|0}while((mc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25885)|0)){if((f|0)<=0){g=f;return g|0}mc=f+-1|0;kc=0;do{p[b+(kc<<3)>>3]=+p[21560+(mc-kc<<3)>>3];kc=kc+1|0}while((kc|0)!=(f|0));kc=Vc(f<<3)|0;ic=0;do{k=+p[21560+(mc-ic<<3)>>3];p[kc+(ic<<3)>>3]=(ic&1|0)==0?k:-k;ic=ic+1|0}while((ic|0)!=(f|0));nc=0;do{p[c+(nc<<3)>>3]=+p[kc+(mc-nc<<3)>>3];nc=nc+1|0}while((nc|0)!=(f|0));Wc(kc);kc=0;do{p[d+(kc<<3)>>3]=+p[21560+(kc<<3)>>3];kc=kc+1|0}while((kc|0)!=(f|0));oc=0;do{k=+p[21560+(mc-oc<<3)>>3];p[e+(oc<<3)>>3]=(oc&1|0)==0?k:-k;oc=oc+1|0}while((oc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25890)|0)){if((f|0)<=0){g=f;return g|0}oc=f+-1|0;mc=0;do{p[b+(mc<<3)>>3]=+p[21672+(oc-mc<<3)>>3];mc=mc+1|0}while((mc|0)!=(f|0));mc=Vc(f<<3)|0;kc=0;do{k=+p[21672+(oc-kc<<3)>>3];p[mc+(kc<<3)>>3]=(kc&1|0)==0?k:-k;kc=kc+1|0}while((kc|0)!=(f|0));pc=0;do{p[c+(pc<<3)>>3]=+p[mc+(oc-pc<<3)>>3];pc=pc+1|0}while((pc|0)!=(f|0));Wc(mc);mc=0;do{p[d+(mc<<3)>>3]=+p[21672+(mc<<3)>>3];mc=mc+1|0}while((mc|0)!=(f|0));qc=0;do{k=+p[21672+(oc-qc<<3)>>3];p[e+(qc<<3)>>3]=(qc&1|0)==0?k:-k;qc=qc+1|0}while((qc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25895)|0)){if((f|0)<=0){g=f;return g|0}qc=f+-1|0;oc=0;do{p[b+(oc<<3)>>3]=+p[21800+(qc-oc<<3)>>3];oc=oc+1|0}while((oc|0)!=(f|0));oc=Vc(f<<3)|0;mc=0;do{k=+p[21800+(qc-mc<<3)>>3];p[oc+(mc<<3)>>3]=(mc&1|0)==0?k:-k;mc=mc+1|0}while((mc|0)!=(f|0));rc=0;do{p[c+(rc<<3)>>3]=+p[oc+(qc-rc<<3)>>3];rc=rc+1|0}while((rc|0)!=(f|0));Wc(oc);oc=0;do{p[d+(oc<<3)>>3]=+p[21800+(oc<<3)>>3];oc=oc+1|0}while((oc|0)!=(f|0));sc=0;do{k=+p[21800+(qc-sc<<3)>>3];p[e+(sc<<3)>>3]=(sc&1|0)==0?k:-k;sc=sc+1|0}while((sc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25900)|0)){if((f|0)<=0){g=f;return g|0}sc=f+-1|0;qc=0;do{p[b+(qc<<3)>>3]=+p[21944+(sc-qc<<3)>>3];qc=qc+1|0}while((qc|0)!=(f|0));qc=Vc(f<<3)|0;oc=0;do{k=+p[21944+(sc-oc<<3)>>3];p[qc+(oc<<3)>>3]=(oc&1|0)==0?k:-k;oc=oc+1|0}while((oc|0)!=(f|0));tc=0;do{p[c+(tc<<3)>>3]=+p[qc+(sc-tc<<3)>>3];tc=tc+1|0}while((tc|0)!=(f|0));Wc(qc);qc=0;do{p[d+(qc<<3)>>3]=+p[21944+(qc<<3)>>3];qc=qc+1|0}while((qc|0)!=(f|0));uc=0;do{k=+p[21944+(sc-uc<<3)>>3];p[e+(uc<<3)>>3]=(uc&1|0)==0?k:-k;uc=uc+1|0}while((uc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25906)|0)){if((f|0)<=0){g=f;return g|0}uc=f+-1|0;sc=0;do{p[b+(sc<<3)>>3]=+p[22104+(uc-sc<<3)>>3];sc=sc+1|0}while((sc|0)!=(f|0));sc=Vc(f<<3)|0;qc=0;do{k=+p[22104+(uc-qc<<3)>>3];p[sc+(qc<<3)>>3]=(qc&1|0)==0?k:-k;qc=qc+1|0}while((qc|0)!=(f|0));vc=0;do{p[c+(vc<<3)>>3]=+p[sc+(uc-vc<<3)>>3];vc=vc+1|0}while((vc|0)!=(f|0));Wc(sc);sc=0;do{p[d+(sc<<3)>>3]=+p[22104+(sc<<3)>>3];sc=sc+1|0}while((sc|0)!=(f|0));wc=0;do{k=+p[22104+(uc-wc<<3)>>3];p[e+(wc<<3)>>3]=(wc&1|0)==0?k:-k;wc=wc+1|0}while((wc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25912)|0)){if((f|0)<=0){g=f;return g|0}wc=f+-1|0;uc=0;do{p[b+(uc<<3)>>3]=+p[22280+(wc-uc<<3)>>3];uc=uc+1|0}while((uc|0)!=(f|0));uc=Vc(f<<3)|0;sc=0;do{k=+p[22280+(wc-sc<<3)>>3];p[uc+(sc<<3)>>3]=(sc&1|0)==0?k:-k;sc=sc+1|0}while((sc|0)!=(f|0));xc=0;do{p[c+(xc<<3)>>3]=+p[uc+(wc-xc<<3)>>3];xc=xc+1|0}while((xc|0)!=(f|0));Wc(uc);uc=0;do{p[d+(uc<<3)>>3]=+p[22280+(uc<<3)>>3];uc=uc+1|0}while((uc|0)!=(f|0));yc=0;do{k=+p[22280+(wc-yc<<3)>>3];p[e+(yc<<3)>>3]=(yc&1|0)==0?k:-k;yc=yc+1|0}while((yc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25918)|0)){if((f|0)<=0){g=f;return g|0}yc=f+-1|0;wc=0;do{p[b+(wc<<3)>>3]=+p[22472+(yc-wc<<3)>>3];wc=wc+1|0}while((wc|0)!=(f|0));wc=Vc(f<<3)|0;uc=0;do{k=+p[22472+(yc-uc<<3)>>3];p[wc+(uc<<3)>>3]=(uc&1|0)==0?k:-k;uc=uc+1|0}while((uc|0)!=(f|0));zc=0;do{p[c+(zc<<3)>>3]=+p[wc+(yc-zc<<3)>>3];zc=zc+1|0}while((zc|0)!=(f|0));Wc(wc);wc=0;do{p[d+(wc<<3)>>3]=+p[22472+(wc<<3)>>3];wc=wc+1|0}while((wc|0)!=(f|0));Ac=0;do{k=+p[22472+(yc-Ac<<3)>>3];p[e+(Ac<<3)>>3]=(Ac&1|0)==0?k:-k;Ac=Ac+1|0}while((Ac|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25924)|0)){if((f|0)<=0){g=f;return g|0}Ac=f+-1|0;yc=0;do{p[b+(yc<<3)>>3]=+p[22680+(Ac-yc<<3)>>3];yc=yc+1|0}while((yc|0)!=(f|0));yc=Vc(f<<3)|0;wc=0;do{k=+p[22680+(Ac-wc<<3)>>3];p[yc+(wc<<3)>>3]=(wc&1|0)==0?k:-k;wc=wc+1|0}while((wc|0)!=(f|0));Bc=0;do{p[c+(Bc<<3)>>3]=+p[yc+(Ac-Bc<<3)>>3];Bc=Bc+1|0}while((Bc|0)!=(f|0));Wc(yc);yc=0;do{p[d+(yc<<3)>>3]=+p[22680+(yc<<3)>>3];yc=yc+1|0}while((yc|0)!=(f|0));Cc=0;do{k=+p[22680+(Ac-Cc<<3)>>3];p[e+(Cc<<3)>>3]=(Cc&1|0)==0?k:-k;Cc=Cc+1|0}while((Cc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25930)|0)){if((f|0)<=0){g=f;return g|0}Cc=f+-1|0;Ac=0;do{p[b+(Ac<<3)>>3]=+p[22904+(Cc-Ac<<3)>>3];Ac=Ac+1|0}while((Ac|0)!=(f|0));Ac=Vc(f<<3)|0;yc=0;do{k=+p[22904+(Cc-yc<<3)>>3];p[Ac+(yc<<3)>>3]=(yc&1|0)==0?k:-k;yc=yc+1|0}while((yc|0)!=(f|0));Dc=0;do{p[c+(Dc<<3)>>3]=+p[Ac+(Cc-Dc<<3)>>3];Dc=Dc+1|0}while((Dc|0)!=(f|0));Wc(Ac);Ac=0;do{p[d+(Ac<<3)>>3]=+p[22904+(Ac<<3)>>3];Ac=Ac+1|0}while((Ac|0)!=(f|0));Ec=0;do{k=+p[22904+(Cc-Ec<<3)>>3];p[e+(Ec<<3)>>3]=(Ec&1|0)==0?k:-k;Ec=Ec+1|0}while((Ec|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25936)|0)){if((f|0)<=0){g=f;return g|0}Ec=f+-1|0;Cc=0;do{p[b+(Cc<<3)>>3]=+p[23144+(Ec-Cc<<3)>>3];Cc=Cc+1|0}while((Cc|0)!=(f|0));Cc=Vc(f<<3)|0;Ac=0;do{k=+p[23144+(Ec-Ac<<3)>>3];p[Cc+(Ac<<3)>>3]=(Ac&1|0)==0?k:-k;Ac=Ac+1|0}while((Ac|0)!=(f|0));Fc=0;do{p[c+(Fc<<3)>>3]=+p[Cc+(Ec-Fc<<3)>>3];Fc=Fc+1|0}while((Fc|0)!=(f|0));Wc(Cc);Cc=0;do{p[d+(Cc<<3)>>3]=+p[23144+(Cc<<3)>>3];Cc=Cc+1|0}while((Cc|0)!=(f|0));Gc=0;do{k=+p[23144+(Ec-Gc<<3)>>3];p[e+(Gc<<3)>>3]=(Gc&1|0)==0?k:-k;Gc=Gc+1|0}while((Gc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25942)|0)){if((f|0)<=0){g=f;return g|0}Gc=f+-1|0;Ec=0;do{p[b+(Ec<<3)>>3]=+p[23400+(Gc-Ec<<3)>>3];Ec=Ec+1|0}while((Ec|0)!=(f|0));Ec=Vc(f<<3)|0;Cc=0;do{k=+p[23400+(Gc-Cc<<3)>>3];p[Ec+(Cc<<3)>>3]=(Cc&1|0)==0?k:-k;Cc=Cc+1|0}while((Cc|0)!=(f|0));Hc=0;do{p[c+(Hc<<3)>>3]=+p[Ec+(Gc-Hc<<3)>>3];Hc=Hc+1|0}while((Hc|0)!=(f|0));Wc(Ec);Ec=0;do{p[d+(Ec<<3)>>3]=+p[23400+(Ec<<3)>>3];Ec=Ec+1|0}while((Ec|0)!=(f|0));Ic=0;do{k=+p[23400+(Gc-Ic<<3)>>3];p[e+(Ic<<3)>>3]=(Ic&1|0)==0?k:-k;Ic=Ic+1|0}while((Ic|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25948)|0)){if((f|0)<=0){g=f;return g|0}Ic=f+-1|0;Gc=0;do{p[b+(Gc<<3)>>3]=+p[23672+(Ic-Gc<<3)>>3];Gc=Gc+1|0}while((Gc|0)!=(f|0));Gc=Vc(f<<3)|0;Ec=0;do{k=+p[23672+(Ic-Ec<<3)>>3];p[Gc+(Ec<<3)>>3]=(Ec&1|0)==0?k:-k;Ec=Ec+1|0}while((Ec|0)!=(f|0));Jc=0;do{p[c+(Jc<<3)>>3]=+p[Gc+(Ic-Jc<<3)>>3];Jc=Jc+1|0}while((Jc|0)!=(f|0));Wc(Gc);Gc=0;do{p[d+(Gc<<3)>>3]=+p[23672+(Gc<<3)>>3];Gc=Gc+1|0}while((Gc|0)!=(f|0));Kc=0;do{k=+p[23672+(Ic-Kc<<3)>>3];p[e+(Kc<<3)>>3]=(Kc&1|0)==0?k:-k;Kc=Kc+1|0}while((Kc|0)!=(f|0));g=f;return g|0}if(!(Ob(a,25954)|0)){if((f|0)<=0){g=f;return g|0}Kc=f+-1|0;Ic=0;do{p[b+(Ic<<3)>>3]=+p[23960+(Kc-Ic<<3)>>3];Ic=Ic+1|0}while((Ic|0)!=(f|0));Ic=Vc(f<<3)|0;Gc=0;do{k=+p[23960+(Kc-Gc<<3)>>3];p[Ic+(Gc<<3)>>3]=(Gc&1|0)==0?k:-k;Gc=Gc+1|0}while((Gc|0)!=(f|0));Lc=0;do{p[c+(Lc<<3)>>3]=+p[Ic+(Kc-Lc<<3)>>3];Lc=Lc+1|0}while((Lc|0)!=(f|0));Wc(Ic);Ic=0;do{p[d+(Ic<<3)>>3]=+p[23960+(Ic<<3)>>3];Ic=Ic+1|0}while((Ic|0)!=(f|0));Mc=0;do{k=+p[23960+(Kc-Mc<<3)>>3];p[e+(Mc<<3)>>3]=(Mc&1|0)==0?k:-k;Mc=Mc+1|0}while((Mc|0)!=(f|0));g=f;return g|0}if(Ob(a,25960)|0){Tc(25292)|0;g=-1;return g|0}if((f|0)<=0){g=f;return g|0}a=f+-1|0;Mc=0;do{p[b+(Mc<<3)>>3]=+p[24264+(a-Mc<<3)>>3];Mc=Mc+1|0}while((Mc|0)!=(f|0));Mc=Vc(f<<3)|0;Kc=0;do{k=+p[24264+(a-Kc<<3)>>3];p[Mc+(Kc<<3)>>3]=(Kc&1|0)==0?k:-k;Kc=Kc+1|0}while((Kc|0)!=(f|0));Nc=0;do{p[c+(Nc<<3)>>3]=+p[Mc+(a-Nc<<3)>>3];Nc=Nc+1|0}while((Nc|0)!=(f|0));Wc(Mc);Mc=0;do{p[d+(Mc<<3)>>3]=+p[24264+(Mc<<3)>>3];Mc=Mc+1|0}while((Mc|0)!=(f|0));Oc=0;do{k=+p[24264+(a-Oc<<3)>>3];p[e+(Oc<<3)>>3]=(Oc&1|0)==0?k:-k;Oc=Oc+1|0}while((Oc|0)!=(f|0));g=f;return g|0}if((f|0)<=0){g=f;return g|0}Oc=f+-1|0;a=0;do{p[b+(a<<3)>>3]=+p[8504+(Oc-a<<3)>>3];a=a+1|0}while((a|0)!=(f|0));a=Vc(f<<3)|0;b=0;do{k=+p[8504+(Oc-b<<3)>>3];p[a+(b<<3)>>3]=(b&1|0)==0?k:-k;b=b+1|0}while((b|0)!=(f|0));Pc=0;do{p[c+(Pc<<3)>>3]=+p[a+(Oc-Pc<<3)>>3];Pc=Pc+1|0}while((Pc|0)!=(f|0));Wc(a);a=0;do{p[d+(a<<3)>>3]=+p[8504+(a<<3)>>3];a=a+1|0}while((a|0)!=(f|0));Qc=0;do{k=+p[8504+(Oc-Qc<<3)>>3];p[e+(Qc<<3)>>3]=(Qc&1|0)==0?k:-k;Qc=Qc+1|0}while((Qc|0)!=(f|0));g=f;return g|0}function Ya(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{p[d+(f<<3)>>3]=+p[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}f=X(b+-1|0,c)|0;b=f+1|0;if((f|0)<0){e=b;return e|0}else{g=1;h=0;i=0}while(1){f=g+-1|0;j=d+(i<<3)|0;p[j>>3]=0.0;if(!f){p[j>>3]=+p[a+(h<<3)>>3];k=h+1|0;l=c}else{k=h;l=f}i=i+1|0;if((i|0)==(b|0)){e=b;break}else{g=l;h=k}}return e|0}function Za(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{p[d+(f<<3)>>3]=+p[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}f=X(c,b)|0;if((f|0)>0){g=1;h=0;i=0}else{e=f;return e|0}while(1){b=g+-1|0;j=d+(i<<3)|0;p[j>>3]=0.0;if(!b){p[j>>3]=+p[a+(h<<3)>>3];k=h+1|0;l=c}else{k=h;l=b}i=i+1|0;if((i|0)==(f|0)){e=f;break}else{g=l;h=k}}return e|0}function _a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if((c|0)<0){e=-1;return e|0}if(!c){if((b|0)>0)f=0;else{e=b;return e|0}do{p[d+(f<<3)>>3]=+p[a+(f<<3)>>3];f=f+1|0}while((f|0)!=(b|0));e=b;return e|0}else{f=(b+-1|0)/(c|0)|0;b=f+1|0;if((f|0)<0){e=b;return e|0}else g=0;do{f=a+((X(g,c)|0)<<3)|0;p[d+(g<<3)>>3]=+p[f>>3];g=g+1|0}while((g|0)!=(b|0));e=b;return e|0}return 0}function $a(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0.0,j=0;if((b|0)>0){e=0;do{p[d+(e+c<<3)>>3]=+p[a+(e<<3)>>3];e=e+1|0}while((e|0)!=(b|0))}if(!(b&1))f=b;else{p[d+(c+b<<3)>>3]=+p[a+(b+-1<<3)>>3];f=b+1|0}if((c|0)<=0)return f|0;b=f+c|0;a=b+-1|0;e=c+-1|0;g=0;h=0;while(1){i=+p[d+(h+c<<3)>>3];p[d+(e+g<<3)>>3]=+p[d+(a+g<<3)>>3];p[d+(h+b<<3)>>3]=i;j=h+1|0;if((j|0)==(c|0))break;else{g=~h;h=j}}return f|0}function ab(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0.0,j=0;if((b|0)>0){e=0;do{p[d+(e+c<<3)>>3]=+p[a+(e<<3)>>3];e=e+1|0}while((e|0)!=(b|0))}if((c|0)<=0)return b|0;e=c+b|0;a=e+-1|0;f=c+-1|0;g=0;h=0;while(1){i=+p[d+(a+g<<3)>>3];p[d+(f+g<<3)>>3]=+p[d+(h+c<<3)>>3];p[d+(h+e<<3)>>3]=i;j=h+1|0;if((j|0)==(c|0))break;else{g=~h;h=j}}return b|0}function bb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=(c|0)>-1?c:0-c|0;if((d|0)>(b|0))e=X((d|0)%(b|0)|0,c>>31|1)|0;else e=c;if((e|0)<0)f=(e+b|0)%(b|0)|0;else f=e;e=f<<3;c=Vc(e)|0;d=(f|0)>0;if(d)gd(c|0,a|0,e|0)|0;g=b-f|0;if((g|0)>0){b=0;do{p[a+(b<<3)>>3]=+p[a+(b+f<<3)>>3];b=b+1|0}while((b|0)!=(g|0))}if(!d){Wc(c);return}gd(a+(g<<3)|0,c|0,e|0)|0;Wc(c);return}function cb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;if((b|0)>0){c=1;d=0;while(1){e=c<<1;d=d+1|0;if((d|0)==(b|0)){f=e;break}else c=e}}else f=1;return ((a|0)%(f|0)|0|0)==0|0}function db(a,b){a=a|0;b=b|0;return ~~(+V(+(+(a|0)/(+(b|0)+-1.0)))/.6931471805599453)|0}function eb(a){a=+a;var b=0.0,c=0.0,d=0.0,e=0.0,f=0.0,g=0.0,h=0.0,i=0,j=0.0,k=0,l=0.0,m=0.0,n=0;if(a<0.0){b=-a;if(!(a<=-0.0))c=+W(+b);else c=+J(+b);d=b-c;if(!(d!=0.0)){e=1.79e+308;return +e}b=c*.5;if(!(b>=0.0))f=+W(+b);else f=+J(+b);g=1.0-a;h=-3.141592653589793/+O(+(d*3.141592653589793));i=c!=f*2.0&1}else{g=a;h=1.0;i=0}do if(g<2.22e-16)if(!(g>=1.79e-308)){e=1.79e+308;return +e}else{j=1.0/g;break}else{if(!(g<12.0))if(!(g<=171.624)){e=1.79e+308;return +e}else{a=g*g;j=+U(+(((((((.0057083835261/a+-.001910444077728)/a+.00084171387781295)/a+-5.952379913043012e-04)/a+7.936507935003503e-04)/a+-2.7777777777776816e-03)/a+.08333333333333333)/g-g+.9189385332046728+(g+-.5)*+V(+g)));break}if(g<1.0){k=0;l=g;m=g+1.0}else{n=~~g+-1|0;a=g-+(n|0);k=n;l=a+-1.0;m=a}a=l*(l*(l*(l*(l*(l*(l*(l*-1.716185138865495+24.76565080557592)+-379.80425647094563)+629.3311553128184)+866.9662027904133)+-31451.272968848367)+-36144.413418691176)+66456.14382024054)/(l*(l*(l*(l*(l*(l*(l*(l+-30.840230011973897)+315.35062697960416)+-1015.1563674902192)+-3107.771671572311)+22538.11842098015)+4755.846277527881)+-134659.9598649693)+-115132.25967555349)+1.0;if(gm&(k|0)>0){f=a;n=0;c=m;while(1){d=f*c;n=n+1|0;if((n|0)==(k|0)){j=d;break}else{f=d;c=c+1.0}}}else j=a}while(0);m=(i|0)==0?j:-j;e=h!=1.0?h/m:m;return +e}function fb(a,b,c,d,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;c=+c;d=d|0;e=+e;f=+f;g=+g;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0,I=0,J=0.0,K=0.0,N=0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,V=0,W=0.0,Y=0.0,Z=0,_=0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0,fa=0.0;if((i|0)<(b|0)){Tc(26006)|0;sa(-1)}n=Ha(i,1)|0;o=Ha(i,-1)|0;q=i<<4;r=Vc(q)|0;s=Vc(q)|0;t=Vc(q)|0;u=Vc(i<<3)|0;v=(b|0)>0;if(v){g=0.0;w=0;do{g=g+ +p[a+(w<<3)>>3];w=w+1|0}while((w|0)!=(b|0));f=g/+(b|0);if(v){w=0;do{p[r+(w<<4)>>3]=+p[a+(w<<3)>>3]-f;p[r+(w<<4)+8>>3]=0.0;w=w+1|0}while((w|0)!=(b|0))}}if((b|0)<(i|0)){w=b<<4;_c(r+w|0,0,q-w|0)|0}Ka(n,r,s);w=(i|0)>0;f=+(i|0);if(w){q=0;do{a=s+(q<<4)|0;p[a>>3]=+p[a>>3]/f;a=s+(q<<4)+8|0;p[a>>3]=+p[a>>3]/f;q=q+1|0}while((q|0)!=(i|0));g=6.283185307179586/(f*c);p[u>>3]=0.0;q=(i|0)/2|0;if((i|0)<2)x=q;else{a=1;while(1){p[u+(a<<3)>>3]=g*+(a|0);if((a|0)<(q|0))a=a+1|0;else{x=q;break}}}}else{p[u>>3]=0.0;x=(i|0)/2|0}q=x+1|0;if((q|0)<(i|0)){a=q;do{p[u+(a<<3)>>3]=-+p[u+(i-a<<3)>>3];a=a+1|0}while((a|0)!=(i|0))}a:do if((h|0)<1)y=0.0;else{a=b<<1;z=e<0.0;g=z?6.0:e;A=(i|0)<-1;B=(x+2|0)>(i|0);f=g*g+2.0;C=i+268435455-x<<4;D=t+(q<<4)|0;E=~~e;F=z?4:E;G=+(F|0);H=(F<<1)+-1|0;I=(H|0)>40;J=12.566370614359172/(G*2.0+1.0);K=J*1.4142135623730951;N=24584+(H<<3)|0;H=z?2:E;E=(H&1|0)==0;O=((H|0)%4|0)>>>0<2?-1.0:1.0;P=+(H|0);Q=P+.5;H=(i|0)<1;R=2.0/(P*2.0+1.0);z=1;S=0.0;T=0.0;while(1){V=z+-1|0;W=+p[k+(V<<3)>>3];switch(d|0){case 0:{Y=+L(+(W*6.283185307179586/c))*.7511255444649425;if(!A){Z=1;while(1){_=Z+-1|0;$=W*+p[u+(_<<3)>>3]-g;aa=Y*+U(+($*($*-.5)));p[t+(_<<4)>>3]=aa;p[t+(_<<4)+8>>3]=0.0;if((Z|0)>(x|0))break;else Z=Z+1|0}}if(!B)_c(D|0,0,C|0)|0;Y=12.566370614359172/(g+ +L(+f));ba=Y/1.4142135623730951;ca=W*Y;break}case 1:{Y=+L(+(W*6.283185307179586/c));aa=+Ec(1.0,F);if(I){Tc(25966)|0;da=-1.0}else da=+p[N>>3];$=Y*(aa/+L(+(G*da)));if(!A){Z=1;while(1){_=Z+-1|0;aa=W*+p[u+(_<<3)>>3];Y=$*+M(+aa,+G)*+U(+-aa);p[t+(_<<4)>>3]=Y;p[t+(_<<4)+8>>3]=0.0;if((Z|0)>(x|0))break;else Z=Z+1|0}}if(!B)_c(D|0,0,C|0)|0;ba=K;ca=J*W;break}case 2:{$=+L(+(W*6.283185307179586/c));Y=O*($*+L(+(1.0/+eb(Q))));if(E){if(!H){Z=1;while(1){_=Z+-1|0;$=W*+p[u+(_<<3)>>3];aa=Y*+M(+$,+P)*+U(+($*$*-.5));p[t+(_<<4)>>3]=aa;p[t+(_<<4)+8>>3]=0.0;if((Z|0)==(i|0))break;else Z=Z+1|0}}}else if(!H){Z=1;while(1){_=Z+-1|0;aa=W*+p[u+(_<<3)>>3];p[t+(_<<4)>>3]=0.0;$=Y*+M(+aa,+P)*+U(+(aa*aa*-.5));p[t+(_<<4)+8>>3]=$;if((Z|0)==(i|0))break;else Z=Z+1|0}}Y=+L(+R)*6.283185307179586;ba=Y/1.4142135623730951;ca=W*Y;break}default:{ba=S;ca=T}}p[l+(V<<3)>>3]=ca;if(w){Z=0;do{_=t+(Z<<4)|0;Y=+p[_>>3];$=+p[s+(Z<<4)>>3];ea=t+(Z<<4)+8|0;aa=+p[ea>>3];fa=+p[s+(Z<<4)+8>>3];p[_>>3]=Y*$-aa*fa;p[ea>>3]=$*aa+Y*fa;Z=Z+1|0}while((Z|0)!=(i|0))}Ka(o,t,r);Z=X(a,V)|0;if(v){ea=0;do{_=(ea<<1)+Z|0;p[j+(_<<3)>>3]=+p[r+(ea<<4)>>3];p[j+((_|1)<<3)>>3]=+p[r+(ea<<4)+8>>3];ea=ea+1|0}while((ea|0)!=(b|0))}if((z|0)==(h|0)){y=ba;break a}else{z=z+1|0;S=ba;T=ca}}}while(0);h=b+1|0;j=(h|0)/2|0;if((h|0)<2){Wc(u);Wc(r);Wc(s);Wc(t);Na(n);Na(o);return}ca=y*c;h=1;while(1){c=ca*(+(h|0)+-1.0);p[m+(h+-1<<3)>>3]=c;p[m+(b-h<<3)>>3]=c;if((h|0)<(j|0))h=h+1|0;else break}Wc(u);Wc(r);Wc(s);Wc(t);Na(n);Na(o);return}function gb(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=(a|0)!=0;if(b)c=Wa(a)|0;else c=0;d=Vc((c<<5)+88|0)|0;f[d+52>>2]=c;f[d+68>>2]=c;f[d+64>>2]=c;f[d+60>>2]=c;f[d+56>>2]=c;Cc(d,a)|0;e=c*3|0;g=c<<1;h=d+88|0;if(b)Xa(a,h,h+(c<<3)|0,h+(g<<3)|0,h+(e<<3)|0)|0;f[d+72>>2]=h;f[d+76>>2]=h+(c<<3);f[d+80>>2]=h+(g<<3);f[d+84>>2]=h+(e<<3);return d|0}function hb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=u;u=u+16|0;h=g;i=f[a+52>>2]|0;if((e|0)>100){Tc(26025)|0;sa(-1)}j=db(d,i)|0;if((j|0)<(e|0)){f[h>>2]=j;Sc(26439,h)|0;sa(-1)}do if(!c){k=7174515;l=(X(e<<1,i+1|0)|0)+d|0;m=23}else{if(Ob(c,26687)|0?Ob(c,26691)|0:0){if(Ob(c,26703)|0?Ob(c,26707)|0:0){if(Ob(c,26711)|0?Ob(c,26717)|0:0){n=0;break}if((((Nc(a,26140)|0)==0?(Nc(a,26145)|0)==0:0)?(Nc(a,26699)|0)==0:0)?(Nc(a,26148)|0)==0:0){Tc(26153)|0;sa(-1)}k=7497072;l=X(e+1|0,d)|0;m=23;break}if(!(cb(d,e)|0)){Tc(26084)|0;sa(-1)}else{k=7497072;l=X(e+1|0,d)|0;m=23;break}}k=7174515;l=(X(e<<1,i+1|0)|0)+d|0;m=23}while(0);if((m|0)==23){m=Vc((l<<3)+488|0)|0;f[m+24>>2]=l;l=m+44|0;b[l>>0]=k;b[l+1>>0]=k>>8;b[l+2>>0]=k>>16;b[l+3>>0]=k>>24;n=m}f[n>>2]=a;f[n+20>>2]=d;f[n+32>>2]=e;f[n+36>>2]=j;Cc(n+8|0,c)|0;f[n+40>>2]=d&1^1;f[n+4>>2]=0;j=n+54|0;b[j>>0]=b[26233]|0;b[j+1>>0]=b[26234]|0;b[j+2>>0]=b[26235]|0;b[j+3>>0]=b[26236]|0;b[j+4>>0]=b[26237]|0;b[j+5>>0]=b[26238]|0;b[j+6>>0]=b[26239]|0;f[n+68>>2]=0;f[n+28>>2]=e+2;f[n+484>>2]=n+488;if(Ob(c,26687)|0?Ob(c,26691)|0:0){if(((Ob(c,26703)|0?Ob(c,26707)|0:0)?Ob(c,26711)|0:0)?Ob(c,26717)|0:0){u=g;return n|0}c=X(e+1|0,d)|0;if((c|0)<=0){u=g;return n|0}_c(n+488|0,0,c<<3|0)|0;u=g;return n|0}c=i+1|0;if(((X(e<<1,c)|0)+d|0)<=0){u=g;return n|0}_c(n+488|0,0,((X(c,e)|0)<<4)+(d<<3)|0)|0;u=g;return n|0} +function ib(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0,T=0,U=0,V=0,X=0.0,Y=0.0,Z=0.0,_=0.0;c=u;u=u+16|0;d=c;e=a+20|0;g=f[e>>2]|0;h=f[a+32>>2]|0;i=a+76|0;f[a+76+(h+1<<2)>>2]=g;j=a+24|0;f[j>>2]=0;f[a+72>>2]=0;k=g<<3;l=Vc(k)|0;m=Vc(k)|0;k=f[e>>2]|0;if((k|0)>0)gd(l|0,b|0,k<<3|0)|0;k=f[(f[a>>2]|0)+56>>2]|0;b=a+44|0;if(Ob(b,26695)|0){if(Ob(b,26699)|0){Sc(26397,d)|0;sa(-1)}d=(h|0)>0;if(!d){b=f[a+80>>2]|0;f[i>>2]=b;f[j>>2]=b;Wc(l);Wc(m);u=c;return}b=k+-2|0;k=g;e=h;while(1){k=~~+W(+(+(b+k|0)*.5));f[a+76+(e<<2)>>2]=k;n=(f[j>>2]|0)+k|0;f[j>>2]=n;if((e|0)<=1)break;else e=e+-1|0}e=f[a+80>>2]|0;f[i>>2]=e;k=n+e|0;f[j>>2]=k;if(!d){Wc(l);Wc(m);u=c;return}d=a+54|0;e=h+-1|0;n=a+488|0;b=g;o=0;q=k;do{k=a+76+(h-o<<2)|0;r=f[k>>2]|0;s=q;q=q-r|0;do if((Ob(d,26240)|0)!=0?(Ob(d,26244)|0)!=0:0){t=a+488+(q<<3)|0;v=f[a>>2]|0;w=f[v+56>>2]|0;if((r|0)>0){x=v+72|0;y=v+76|0;v=(b<<1)+-1|0;if((w|0)>0)z=0;else{A=r<<3;_c(m|0,0,A|0)|0;_c(n+((s<<3)-A)|0,0,A|0)|0;break}do{A=z<<1;B=A|1;C=m+(z<<3)|0;p[C>>3]=0.0;D=t+(z<<3)|0;p[D>>3]=0.0;E=A^-2;A=v-B|0;F=0;G=0.0;H=0.0;while(1){I=B-F|0;J=(I|0)<(b|0);do if(!((I|0)>-1&J)){if((I|0)<0){K=F+E|0;L=(f[x>>2]|0)+(F<<3)|0;M=60;break}if(J){N=H;O=G}else{K=A+F|0;L=(f[x>>2]|0)+(F<<3)|0;M=60}}else{K=I;L=(f[x>>2]|0)+(F<<3)|0;M=60}while(0);if((M|0)==60){M=0;P=+p[l+(K<<3)>>3];Q=G+ +p[L>>3]*P;p[C>>3]=Q;R=H+ +p[(f[y>>2]|0)+(F<<3)>>3]*P;p[D>>3]=R;N=R;O=Q}F=F+1|0;if((F|0)==(w|0))break;else{G=O;H=N}}z=z+1|0}while((z|0)!=(r|0))}}else M=49;while(0);if((M|0)==49){M=0;jb(a,l,b,m,a+488+(q<<3)|0)}b=f[k>>2]|0;s=(r|0)>0;if((o|0)==(e|0)){if(s)gd(n|0,m|0,r<<3|0)|0}else if(s)gd(l|0,m|0,r<<3|0)|0;o=o+1|0}while((o|0)!=(h|0));Wc(l);Wc(m);u=c;return}o=(h|0)>0;if(o){S=g;T=h}else{n=f[a+80>>2]|0;f[i>>2]=n;f[j>>2]=n;Wc(l);Wc(m);u=c;return}while(1){S=~~+W(+(+(S|0)*.5));f[a+76+(T<<2)>>2]=S;U=(f[j>>2]|0)+S|0;f[j>>2]=U;if((T|0)<=1)break;else T=T+-1|0}T=f[a+80>>2]|0;f[i>>2]=T;i=U+T|0;f[j>>2]=i;if(!o){Wc(l);Wc(m);u=c;return}o=a+54|0;j=h+-1|0;T=a+488|0;U=g;g=0;S=i;do{i=a+76+(h-g<<2)|0;n=f[i>>2]|0;S=S-n|0;if((Ob(o,26240)|0)!=0?(Ob(o,26244)|0)!=0:0){e=a+488+(S<<3)|0;b=f[a>>2]|0;q=f[b+56>>2]|0;z=(q|0)/2|0;L=(U|0)%2|0;if((n|0)>0){K=(q|0)>0;d=b+72|0;s=b+76|0;b=(L|0)==0;w=(L|0)==1;L=l+(U+-1<<3)|0;y=U+1|0;x=~U;v=0;do{t=(v<<1)+z|0;F=m+(v<<3)|0;p[F>>3]=0.0;D=e+(v<<3)|0;p[D>>3]=0.0;if(K){C=0;N=0.0;O=0.0;while(1){A=t-C|0;do if(!((A|0)>=(z|0)&(A|0)<(U|0))){if((A|0)<(z|0)&(A|0)>-1){H=+p[l+(A<<3)>>3];G=O+ +p[(f[d>>2]|0)+(C<<3)>>3]*H;p[F>>3]=G;V=f[s>>2]|0;X=H;Y=G;M=31;break}E=(A|0)<0;if(b&E){G=+p[l+(A+U<<3)>>3];H=O+ +p[(f[d>>2]|0)+(C<<3)>>3]*G;p[F>>3]=H;V=f[s>>2]|0;X=G;Y=H;M=31;break}if(w&E){H=+p[(f[d>>2]|0)+(C<<3)>>3];E=f[s>>2]|0;if((A|0)==-1){G=+p[L>>3];Q=O+H*G;p[F>>3]=Q;V=E;X=G;Y=Q;M=31;break}else{Q=+p[l+(y+A<<3)>>3];G=O+H*Q;p[F>>3]=G;V=E;X=Q;Y=G;M=31;break}}E=(A|0)>=(U|0);if(b&E){G=+p[l+(A-U<<3)>>3];Q=O+ +p[(f[d>>2]|0)+(C<<3)>>3]*G;p[F>>3]=Q;V=f[s>>2]|0;X=G;Y=Q;M=31;break}if(w&E){Q=+p[(f[d>>2]|0)+(C<<3)>>3];E=f[s>>2]|0;if((A|0)==(U|0)){G=+p[L>>3];H=O+Q*G;p[F>>3]=H;V=E;X=G;Y=H;M=31;break}else{H=+p[l+(A+x<<3)>>3];G=O+Q*H;p[F>>3]=G;V=E;X=H;Y=G;M=31;break}}else{Z=N;_=O}}else{G=+p[l+(A<<3)>>3];H=O+ +p[(f[d>>2]|0)+(C<<3)>>3]*G;p[F>>3]=H;V=f[s>>2]|0;X=G;Y=H;M=31}while(0);if((M|0)==31){M=0;H=N+ +p[V+(C<<3)>>3]*X;p[D>>3]=H;Z=H;_=Y}C=C+1|0;if((C|0)==(q|0))break;else{N=Z;O=_}}}v=v+1|0}while((v|0)!=(n|0))}}else jb(a,l,U,m,a+488+(S<<3)|0);U=f[i>>2]|0;v=(n|0)>0;if((g|0)==(j|0)){if(v)gd(T|0,m|0,n<<3|0)|0}else if(v)gd(l|0,m|0,n<<3|0)|0;g=g+1|0}while((g|0)!=(h|0));Wc(l);Wc(m);u=c;return}function jb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=u;u=u+32|0;h=g+16|0;i=g+8|0;j=g;k=f[a>>2]|0;l=f[k+56>>2]|0;m=(f[k+60>>2]|0)+l|0;k=(m|0)/2|0;n=a+44|0;if(!(Ob(n,26695)|0)){o=Vc(((c|0)%2|0)+c+k<<3)|0;p=$a(b,c,(m|0)/4|0,o)|0;m=p+k|0;q=f[a>>2]|0;r=q+56|0;s=Vc(((f[r>>2]|0)+m<<3)+-8|0)|0;t=f[r>>2]|0;if((t|0)!=(f[q+60>>2]|0)){Sc(26248,j)|0;sa(-1)}j=a+54|0;if((Ob(j,26240)|0)!=0?(Ob(j,26244)|0)!=0:0){v=q;w=t}else{q=Sa(m,t)|0;f[a+4>>2]=q;f[a+68>>2]=1;q=f[a>>2]|0;v=q;w=f[q+56>>2]|0}kb(a,o,m,f[v+72>>2]|0,w,s);w=s+(k<<3)|0;_a(w,p,2,d)|0;k=f[a>>2]|0;kb(a,o,m,f[k+76>>2]|0,f[k+60>>2]|0,s);_a(w,p,2,e)|0;x=o;y=s}else{if(Ob(n,26699)|0){Sc(26397,h)|0;sa(-1)}h=l+-1|0;n=h<<1;s=Vc(n+c<<3)|0;o=ab(b,c,h,s)|0;c=Vc(o+(h*3|0)<<3)|0;h=f[a>>2]|0;b=f[h+56>>2]|0;if((b|0)!=(f[h+60>>2]|0)){Sc(26248,i)|0;sa(-1)}i=a+54|0;if((Ob(i,26240)|0)!=0?(Ob(i,26244)|0)!=0:0){z=o+n|0;A=h;B=b}else{b=o+n|0;n=Sa(b,l)|0;f[a+4>>2]=n;f[a+68>>2]=1;n=f[a>>2]|0;z=b;A=n;B=f[n+56>>2]|0}kb(a,s,z,f[A+72>>2]|0,B,c);B=c+(l<<3)|0;A=l+-2+o|0;_a(B,A,2,d)|0;d=f[a>>2]|0;kb(a,s,z,f[d+76>>2]|0,f[d+60>>2]|0,c);_a(B,A,2,e)|0;x=s;y=c}c=f[a>>2]|0;if((f[c+56>>2]|0)!=(f[c+60>>2]|0)){Wc(x);Wc(y);u=g;return}c=a+54|0;if(Ob(c,26240)|0?Ob(c,26244)|0:0){Wc(x);Wc(y);u=g;return}Va(f[a+4>>2]|0);f[a+68>>2]=0;Wc(x);Wc(y);u=g;return}function kb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0;h=u;u=u+16|0;i=h;j=a+54|0;if(!(Ob(j,26233)|0)){Ta(b,c,d,e,g);u=h;return}if(Ob(j,26240)|0?Ob(j,26244)|0:0){Sc(26297,i)|0;sa(-1)}if(!(f[a+68>>2]|0)){i=Sa(c,e)|0;e=a+4|0;f[e>>2]=i;Ua(i,b,d,g);Va(f[e>>2]|0);u=h;return}else{Ua(f[a+4>>2]|0,b,d,g);u=h;return}}function lb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0.0,W=0,X=0.0,Y=0.0,Z=0,_=0.0,$=0,aa=0,ba=0,ca=0,da=0;c=u;u=u+32|0;d=c+16|0;e=c+8|0;g=c;h=f[a+32>>2]|0;i=f[a+76>>2]|0;j=a+20|0;k=Vc((f[j>>2]<<3)+8|0)|0;l=a+44|0;do if(!(Ob(l,26695)|0)){m=a+54|0;if(Ob(m,26240)|0?Ob(m,26244)|0:0){if(Ob(a+54|0,26233)|0){n=49;break}o=f[a+80>>2]|0;q=f[a>>2]|0;r=(f[q+68>>2]|0)+(f[q+64>>2]|0)|0;s=(r|0)/2|0;t=Vc((s+(f[a+76+(h<<2)>>2]|0)<<4)+-8|0)|0;if((i|0)>0){v=f[a+484>>2]|0;w=0;do{p[k+(w<<3)>>3]=+p[v+(w<<3)>>3];w=w+1|0}while((w|0)!=(i|0))}if((h|0)>0){w=f[a+484>>2]|0;v=(r|0)/4|0;x=(r|0)>3;y=q+80|0;z=q+84|0;A=0-v|0;B=v+-1|0;C=t+((v<<3)+-8)|0;D=o;E=i;F=0;while(1){G=w+(E<<3)|0;H=D+-1|0;I=v+H|0;if((I|0)>0){J=s+H|0;H=-1;K=-2;L=0;do{K=K+2|0;H=H+2|0;M=t+(K<<3)|0;p[M>>3]=0.0;N=t+(H<<3)|0;p[N>>3]=0.0;if(x){O=L+D|0;P=0;do{Q=P<<1;R=L-P|0;S=(R|0)<(D|0);do if(!((R|0)>-1&S)){if((R|0)<(J|0)&(S^1)){T=f[y>>2]|0;U=R-D|0;V=+p[k+(U<<3)>>3];W=f[z>>2]|0;X=+p[G+(U<<3)>>3];p[M>>3]=+p[M>>3]+(+p[T+(Q<<3)>>3]*V+ +p[W+(Q<<3)>>3]*X);U=Q|1;Y=+p[T+(U<<3)>>3]*V;Z=W+(U<<3)|0;_=X;n=42;break}if((R|0)<0&(R|0)>(A|0)){U=f[y>>2]|0;W=O-P|0;X=+p[k+(W<<3)>>3];T=f[z>>2]|0;V=+p[G+(W<<3)>>3];p[M>>3]=+p[M>>3]+(+p[U+(Q<<3)>>3]*X+ +p[T+(Q<<3)>>3]*V);W=Q|1;Y=+p[U+(W<<3)>>3]*X;Z=T+(W<<3)|0;_=V;n=42}}else{W=f[y>>2]|0;V=+p[k+(R<<3)>>3];T=f[z>>2]|0;X=+p[G+(R<<3)>>3];p[M>>3]=+p[M>>3]+(+p[W+(Q<<3)>>3]*V+ +p[T+(Q<<3)>>3]*X);U=Q|1;Y=+p[W+(U<<3)>>3]*V;Z=T+(U<<3)|0;_=X;n=42}while(0);if((n|0)==42){n=0;p[N>>3]=+p[N>>3]+(Y+ +p[Z>>3]*_)}P=P+1|0}while((P|0)<(v|0))}L=L+1|0}while((L|0)!=(I|0))}if((v|0)<=(B+(D<<1)|0))gd(k|0,C|0,D<<4|0)|0;E=D+E|0;I=F+1|0;if((I|0)==(h|0))break;else{D=f[a+76+(F+2<<2)>>2]|0;F=I}}}Wc(t);break}F=f[a+80>>2]|0;D=f[a+76+(h<<2)>>2]|0;E=D<<1;C=f[a>>2]|0;B=((f[C+68>>2]|0)+(f[C+64>>2]|0)|0)/2|0;v=Vc(D<<4)|0;D=Vc(B+E<<3)|0;z=((B<<1)+E<<3)+-8|0;E=Vc(z)|0;B=Vc(z)|0;if((i|0)>0){z=f[a+484>>2]|0;y=0;do{p[k+(y<<3)>>3]=+p[z+(y<<3)>>3];y=y+1|0}while((y|0)!=(i|0))}a:do if((h|0)>0){y=a+484|0;z=a+4|0;t=a+68|0;A=F;x=i;s=0;w=C;while(1){o=(f[y>>2]|0)+(x<<3)|0;q=(f[w+68>>2]|0)+(f[w+64>>2]|0)|0;r=(q|0)/2|0;I=A<<1;Za(k,A,2,v)|0;L=(q|0)/4|0;$a(v,I,L,D)|0;q=r+I|0;G=f[a>>2]|0;if((f[G+64>>2]|0)!=(f[G+68>>2]|0))break;if((Ob(m,26240)|0)!=0?(Ob(m,26244)|0)!=0:0)$=G;else{G=Sa(q,r)|0;f[z>>2]=G;f[t>>2]=1;$=f[a>>2]|0}kb(a,D,q,f[$+80>>2]|0,r,E);Za(o,A,2,v)|0;$a(v,I,L,D)|0;kb(a,D,q,f[(f[a>>2]|0)+84>>2]|0,r,B);L=q+-1|0;if((A|0)>0){q=1-r|0;I=r+-1|0;do{p[k+(q+I<<3)>>3]=+p[E+(I<<3)>>3]+ +p[B+(I<<3)>>3];I=I+1|0}while((I|0)<(L|0))}L=f[a>>2]|0;do if((f[L+64>>2]|0)==(f[L+68>>2]|0)){if(Ob(m,26240)|0?Ob(m,26244)|0:0)break;Va(f[z>>2]|0);f[t>>2]=0}while(0);L=s+1|0;if((L|0)>=(h|0))break a;I=A+x|0;A=f[a+76+(s+2<<2)>>2]|0;x=I;s=L;w=f[a>>2]|0}Sc(26248,g)|0;sa(-1)}while(0);Wc(v);Wc(E);Wc(B);Wc(D)}else n=49;while(0);do if((n|0)==49){if(Ob(l,26699)|0){Sc(26397,d)|0;sa(-1)}if(!(Ob(a+54|0,26233)|0)){g=f[a+80>>2]|0;$=f[a>>2]|0;Z=$+64|0;m=$+68|0;C=((f[m>>2]|0)+(f[Z>>2]|0)|0)/2|0;F=Vc((C+(f[a+76+(h<<2)>>2]|0)<<4)+-16|0)|0;if((i|0)>0){w=f[a+484>>2]|0;s=0;do{p[k+(s<<3)>>3]=+p[w+(s<<3)>>3];s=s+1|0}while((s|0)!=(i|0))}if((h|0)>0){s=f[a+484>>2]|0;w=$+80|0;D=$+84|0;B=C+-2|0;E=F+((C<<3)+-16)|0;v=2-C|0;x=g;A=i;t=0;while(1){z=s+(A<<3)|0;do if((x|0)>0){y=(f[Z>>2]|0)+(f[m>>2]|0)|0;L=(y|0)/4|0;if((y|0)>3){aa=0;ba=-1;ca=-2}else{_c(F|0,0,x<<4|0)|0;break}do{ca=ca+2|0;ba=ba+2|0;y=F+(ca<<3)|0;p[y>>3]=0.0;I=F+(ba<<3)|0;p[I>>3]=0.0;q=0;do{r=q<<1;o=aa-q|0;if((o|0)>-1&(o|0)<(x|0)){G=f[w>>2]|0;_=+p[k+(o<<3)>>3];J=f[D>>2]|0;Y=+p[z+(o<<3)>>3];p[y>>3]=+p[y>>3]+(+p[G+(r<<3)>>3]*_+ +p[J+(r<<3)>>3]*Y);o=r|1;p[I>>3]=+p[I>>3]+(+p[G+(o<<3)>>3]*_+ +p[J+(o<<3)>>3]*Y)}q=q+1|0}while((q|0)<(L|0));aa=aa+1|0}while((aa|0)!=(x|0))}while(0);z=x<<1;if((B|0)<(z|0))gd(k|0,E|0,v+z<<3|0)|0;A=x+A|0;z=t+1|0;if((z|0)==(h|0))break;else{x=f[a+76+(t+2<<2)>>2]|0;t=z}}}Wc(F);break}t=a+54|0;if(Ob(t,26240)|0?Ob(t,26244)|0:0){Sc(26397,d)|0;sa(-1)}x=f[(f[a>>2]|0)+56>>2]|0;A=(f[a+76+(h<<2)>>2]<<1)+-1|0;v=Vc(A<<3)|0;E=(A+x<<3)+-8|0;A=Vc(E)|0;B=Vc(E)|0;if((i|0)>0){E=f[a+484>>2]|0;D=0;do{p[k+(D<<3)>>3]=+p[E+(D<<3)>>3];D=D+1|0}while((D|0)!=(i|0))}b:do if((h|0)>0){D=a+4|0;E=a+68|0;F=a+484|0;w=x+-2|0;m=2-x|0;Z=i;s=0;while(1){s=s+1|0;g=a+76+(s<<2)|0;C=f[g>>2]|0;Ya(k,C,2,v)|0;$=f[g>>2]<<1;g=$+-1|0;z=f[a>>2]|0;if((f[z+64>>2]|0)!=(f[z+68>>2]|0))break;if((Ob(t,26240)|0)!=0?(Ob(t,26244)|0)!=0:0)da=z;else{z=Sa(g,x)|0;f[D>>2]=z;f[E>>2]=1;da=f[a>>2]|0}kb(a,v,g,f[da+80>>2]|0,x,A);Ya((f[F>>2]|0)+(Z<<3)|0,C,2,v)|0;kb(a,v,g,f[(f[a>>2]|0)+84>>2]|0,x,B);if((w|0)<($|0)){g=w;do{p[k+(m+g<<3)>>3]=+p[A+(g<<3)>>3]+ +p[B+(g<<3)>>3];g=g+1|0}while((g|0)!=($|0))}Z=C+Z|0;$=f[a>>2]|0;do if((f[$+64>>2]|0)==(f[$+68>>2]|0)){if(Ob(t,26240)|0?Ob(t,26244)|0:0)break;Va(f[D>>2]|0);f[E>>2]=0}while(0);if((s|0)>=(h|0))break b}Sc(26248,e)|0;sa(-1)}while(0);Wc(v);Wc(A);Wc(B)}while(0);e=f[j>>2]|0;if((e|0)<=0){Wc(k);u=c;return}gd(b|0,k|0,e<<3|0)|0;Wc(k);u=c;return}function mb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0,Y=0.0,Z=0.0,_=0;c=u;u=u+16|0;d=c+8|0;e=c;if(Ob(a+8|0,26703)|0){Sc(26351,d)|0;sa(-1)}if(Ob(a+54|0,26233)|0){g=a+54|0;if(Ob(g,26240)|0?Ob(g,26244)|0:0){Sc(26351,d)|0;sa(-1)}d=f[a+20>>2]|0;h=f[a+32>>2]|0;f[a+76+(h<<2)>>2]=d;f[a+76>>2]=d;i=h+1|0;j=X(i,d)|0;f[a+76+(i<<2)>>2]=j;i=a+24|0;f[i>>2]=j;if((h|0)>1){j=1;k=1;while(1){l=k<<1;f[a+76+(j<<2)>>2]=d;j=j+1|0;if((j|0)==(h|0)){m=l;break}else k=l}}else m=1;k=f[(f[a>>2]|0)+52>>2]|0;j=X(k,m<<3)|0;l=Vc(j)|0;n=Vc(j)|0;j=((d|0)%2|0)+d|0;o=Vc((X(k,m)|0)+j<<3)|0;q=((X(m<<1,k)|0)+j<<3)+-1|0;m=Vc(q)|0;r=Vc(q)|0;q=(d|0)>0;if(q){s=0;do{p[a+488+(s<<3)>>3]=+p[b+(s<<3)>>3];s=s+1|0}while((s|0)!=(d|0))}a:do if((h|0)>0){s=a+488|0;t=a+4|0;v=a+68|0;w=(k|0)>0;x=f[i>>2]|0;y=0;z=1;while(1){x=x-d|0;if((y|0)<=0)if(w){A=f[a>>2]|0;B=f[A+72>>2]|0;C=f[A+76>>2]|0;A=0;do{p[l+(A<<3)>>3]=+p[B+(A<<3)>>3];p[n+(A<<3)>>3]=+p[C+(A<<3)>>3];A=A+1|0}while((A|0)!=(k|0));D=k;E=z}else{D=k;E=z}else{A=z<<1;C=X(A,k)|0;B=f[a>>2]|0;Za(f[B+72>>2]|0,f[B+56>>2]|0,A,l)|0;B=f[a>>2]|0;Za(f[B+76>>2]|0,f[B+60>>2]|0,A,n)|0;D=C;E=A}$a(s,d,(D|0)/2|0,o)|0;A=f[a>>2]|0;if((f[A+56>>2]|0)!=(f[A+60>>2]|0))break;if((Ob(g,26240)|0)!=0?(Ob(g,26244)|0)!=0:0)F=D+j|0;else{A=D+j|0;C=Sa(A,D)|0;f[t>>2]=C;f[v>>2]=1;F=A}kb(a,o,F,l,D,m);kb(a,o,F,n,D,r);A=f[a>>2]|0;do if((f[A+56>>2]|0)==(f[A+60>>2]|0)){if(Ob(g,26240)|0?Ob(g,26244)|0:0)break;Va(f[t>>2]|0);f[v>>2]=0}while(0);if(q){A=0;do{C=A+D|0;p[a+488+(A<<3)>>3]=+p[m+(C<<3)>>3];p[a+488+(A+x<<3)>>3]=+p[r+(C<<3)>>3];A=A+1|0}while((A|0)!=(d|0))}y=y+1|0;if((y|0)>=(h|0))break a;else z=E}Sc(26248,e)|0;sa(-1)}while(0);Wc(l);Wc(n);Wc(o);Wc(m);Wc(r);u=c;return}r=f[a+20>>2]|0;m=f[a+32>>2]|0;f[a+76+(m<<2)>>2]=r;f[a+76>>2]=r;o=m+1|0;n=X(o,r)|0;f[a+76+(o<<2)>>2]=n;o=a+24|0;f[o>>2]=n;if((m|0)>1){n=1;do{f[a+76+(n<<2)>>2]=r;n=n+1|0}while((n|0)!=(m|0))}n=r<<3;l=Vc(n)|0;e=Vc(n)|0;n=(r|0)>0;if(n){E=0;do{p[a+488+(E<<3)>>3]=+p[b+(E<<3)>>3];E=E+1|0}while((E|0)!=(r|0))}if((m|0)>0){E=(r|0)%2|0;b=a+488+(r+-1<<3)|0;h=~r;d=f[o>>2]|0;o=0;D=1;do{d=d-r|0;D=D<<((o|0)>0&1);q=f[a>>2]|0;g=X(f[q+56>>2]|0,D)|0;F=(g|0)/2|0;if(n){j=(g|0)>0;k=q+72|0;i=q+76|0;q=0;while(1){z=q+F|0;y=l+(q<<3)|0;p[y>>3]=0.0;x=e+(q<<3)|0;p[x>>3]=0.0;if(j)switch(E|0){case 0:{v=-1;t=0;G=0.0;H=0.0;while(1){s=t;while(1)if((s|0)<(r|0))break;else s=s-r|0;v=v+1|0;w=z-s|0;A=(w|0)<(r|0);do if(!((w|0)>=(F|0)&A)){if((w|0)<(F|0)&(w|0)>-1){I=w;J=(f[k>>2]|0)+(v<<3)|0;K=37;break}if((w|0)<0){I=w+r|0;J=(f[k>>2]|0)+(v<<3)|0;K=37;break}if(A){L=H;M=G}else{I=w-r|0;J=(f[k>>2]|0)+(v<<3)|0;K=37}}else{I=w;J=(f[k>>2]|0)+(v<<3)|0;K=37}while(0);if((K|0)==37){K=0;N=+p[a+488+(I<<3)>>3];O=G+ +p[J>>3]*N;p[y>>3]=O;P=H+N*+p[(f[i>>2]|0)+(v<<3)>>3];p[x>>3]=P;L=P;M=O}t=s+D|0;if((t|0)>=(g|0))break;else{G=M;H=L}}break}case 1:{t=-1;v=0;H=0.0;G=0.0;while(1){w=v;while(1)if((w|0)<(r|0))break;else w=w-r|0;t=t+1|0;s=z-w|0;A=(s|0)<(r|0);do if(!((s|0)>=(F|0)&A)){if((s|0)<(F|0)&(s|0)>-1){O=+p[a+488+(s<<3)>>3];P=G+ +p[(f[k>>2]|0)+(t<<3)>>3]*O;p[y>>3]=P;Q=f[i>>2]|0;R=P;S=O;K=25;break}if((s|0)<0){O=+p[a+488+(s+r<<3)>>3];P=G+ +p[(f[k>>2]|0)+(t<<3)>>3]*O;p[y>>3]=P;Q=f[i>>2]|0;R=P;S=O;K=25;break}if(!A){O=+p[(f[k>>2]|0)+(t<<3)>>3];C=f[i>>2]|0;if((z-t|0)==(r|0)){P=+p[b>>3];N=G+O*P;p[y>>3]=N;Q=C;R=N;S=P;K=25;break}else{P=+p[a+488+(s+h<<3)>>3];N=G+O*P;p[y>>3]=N;Q=C;R=N;S=P;K=25;break}}else{T=H;U=G}}else{P=+p[a+488+(s<<3)>>3];N=G+ +p[(f[k>>2]|0)+(t<<3)>>3]*P;p[y>>3]=N;Q=f[i>>2]|0;R=N;S=P;K=25}while(0);if((K|0)==25){K=0;P=H+S*+p[Q+(t<<3)>>3];p[x>>3]=P;T=P;U=R}v=w+D|0;if((v|0)>=(g|0))break;else{H=T;G=U}}break}default:{v=-1;t=0;G=0.0;H=0.0;while(1){s=t;while(1)if((s|0)<(r|0))break;else s=s-r|0;v=v+1|0;w=z-s|0;do if(!((w|0)>=(F|0)&(w|0)<(r|0))){if((w|0)<(F|0)&(w|0)>-1){V=(f[k>>2]|0)+(v<<3)|0;W=w;K=47;break}if((w|0)<0){V=(f[k>>2]|0)+(v<<3)|0;W=w+r|0;K=47}else{Y=H;Z=G}}else{V=(f[k>>2]|0)+(v<<3)|0;W=w;K=47}while(0);if((K|0)==47){K=0;P=+p[a+488+(W<<3)>>3];N=G+ +p[V>>3]*P;p[y>>3]=N;O=H+ +p[(f[i>>2]|0)+(v<<3)>>3]*P;p[x>>3]=O;Y=O;Z=N}t=s+D|0;if((t|0)>=(g|0))break;else{G=Z;H=Y}}}}q=q+1|0;if((q|0)==(r|0)){_=0;break}}do{p[a+488+(_<<3)>>3]=+p[l+(_<<3)>>3];p[a+488+(_+d<<3)>>3]=+p[e+(_<<3)>>3];_=_+1|0}while((_|0)!=(r|0))}o=o+1|0}while((o|0)!=(m|0))}Wc(l);Wc(e);u=c;return}function nb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;c=u;u=u+16|0;d=c;e=f[a+20>>2]|0;g=f[a+32>>2]|0;h=f[(f[a>>2]|0)+64>>2]|0;i=e<<3;j=Vc(i)|0;k=Vc(i)|0;l=Vc(i)|0;m=Vc(i)|0;n=Vc(i)|0;o=Vc(i)|0;q=Vc(i)|0;r=((e|0)%2|0)+e+h<<3;s=Vc(r)|0;t=Vc(r)|0;r=(h<<1)+e<<3;v=Vc(r)|0;w=Vc(r)|0;r=Vc(i)|0;x=Vc(i)|0;if((g|0)<=0){Wc(j);Wc(k);Wc(l);Wc(m);Wc(q);Wc(s);Wc(t);Wc(v);Wc(w);Wc(r);Wc(x);Wc(n);Wc(o);u=c;return}y=(e|0)>0;z=g+-1|0;A=(h|0)/2|0;B=a+54|0;C=a+4|0;D=a+68|0;E=h+-1|0;F=1-h|0;G=a+484|0;H=0;a:while(1){I=e+(X(e,H)|0)|0;if(y)_c(b|0,0,i|0)|0;if(!H){if(y){J=f[G>>2]|0;gd(j|0,J|0,i|0)|0;gd(k|0,J+(e<<3)|0,i|0)|0}}else if(y)gd(k|0,(f[G>>2]|0)+(I<<3)|0,i|0)|0;I=~~+Ec(1.0,z-H|0);if((I|0)>0){J=0;do{K=(J|0)<(e|0);if(K){L=J;M=0;while(1){p[l+(M<<3)>>3]=+p[j+(L<<3)>>3];p[m+(M<<3)>>3]=+p[k+(L<<3)>>3];N=M+1|0;L=L+I|0;if((L|0)>=(e|0))break;else M=N}if((M|0)>-1){L=(M>>>1)+1|0;O=0;P=0;while(1){p[n+(P<<3)>>3]=+p[l+(O<<3)>>3];p[o+(P<<3)>>3]=+p[m+(O<<3)>>3];P=P+1|0;if((P|0)==(L|0)){Q=N;R=L;break}else O=O+2|0}}else{Q=N;R=0}}else{Q=0;R=0}Za(n,R,2,q)|0;O=R<<1;$a(q,O,A,s)|0;Za(o,R,2,q)|0;$a(q,O,A,t)|0;L=O+h|0;O=f[a>>2]|0;do if((f[O+64>>2]|0)==(f[O+68>>2]|0)){if(Ob(B,26240)|0?Ob(B,26244)|0:0){S=22;break}P=Sa(L,h)|0;f[C>>2]=P;f[D>>2]=1;T=f[a>>2]|0}else S=22;while(0);if((S|0)==22){S=0;if((f[O+56>>2]|0)==(f[O+60>>2]|0))T=O;else{S=23;break a}}kb(a,s,L,f[T+80>>2]|0,h,v);kb(a,t,L,f[(f[a>>2]|0)+84>>2]|0,h,w);P=L+-1|0;if((R|0)>0){M=E;do{p[r+(F+M<<3)>>3]=+p[v+(M<<3)>>3]+ +p[w+(M<<3)>>3];M=M+1|0}while((M|0)<(P|0))}if((Q|0)>1){P=((Q+-2|0)>>>1)+1|0;M=1;L=0;while(1){p[n+(L<<3)>>3]=+p[l+(M<<3)>>3];p[o+(L<<3)>>3]=+p[m+(M<<3)>>3];L=L+1|0;if((L|0)==(P|0)){U=P;break}else M=M+2|0}}else U=0;Za(n,U,2,q)|0;M=U<<1;$a(q,M,A,s)|0;Za(o,U,2,q)|0;$a(q,M,A,t)|0;P=M+h|0;kb(a,s,P,f[(f[a>>2]|0)+80>>2]|0,h,v);kb(a,t,P,f[(f[a>>2]|0)+84>>2]|0,h,w);L=P+-1|0;if((U|0)>0){P=E;do{p[x+(F+P<<3)>>3]=+p[v+(P<<3)>>3]+ +p[w+(P<<3)>>3];P=P+1|0}while((P|0)<(L|0))}bb(x,M,-1);if(K){L=0;P=J;while(1){p[b+(P<<3)>>3]=(+p[r+(L<<3)>>3]+ +p[x+(L<<3)>>3])*.5;P=P+I|0;if((P|0)>=(e|0))break;else L=L+1|0}}J=J+1|0}while((J|0)<(I|0))}if(y)gd(j|0,b|0,i|0)|0;H=H+1|0;if((H|0)>=(g|0)){S=35;break}}if((S|0)==23){Sc(26248,d)|0;sa(-1)}else if((S|0)==35){Wc(j);Wc(k);Wc(l);Wc(m);Wc(q);Wc(s);Wc(t);Wc(v);Wc(w);Wc(r);Wc(x);Wc(n);Wc(o);u=c;return}}function ob(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0;c=f[a+20>>2]|0;d=f[a+32>>2]|0;f[a+76+(d<<2)>>2]=c;f[a+76>>2]=c;e=d+1|0;g=X(e,c)|0;f[a+76+(e<<2)>>2]=g;e=a+24|0;f[e>>2]=g;if((d|0)>1){g=1;do{f[a+76+(g<<2)>>2]=c;g=g+1|0}while((g|0)!=(d|0))}g=c<<3;h=Vc(g)|0;i=Vc(g)|0;g=(c|0)>0;if(g){j=0;do{p[a+488+(j<<3)>>3]=+p[b+(j<<3)>>3];j=j+1|0}while((j|0)!=(c|0))}if((d|0)<=0){Wc(h);Wc(i);return}j=f[e>>2]|0;e=0;b=1;do{j=j-c|0;b=b<<((e|0)>0&1);k=f[a>>2]|0;l=f[k+56>>2]|0;m=Vc(l<<4)|0;if((l|0)>0){n=f[k+72>>2]|0;o=f[k+76>>2]|0;k=0;do{p[m+(k<<3)>>3]=+p[n+(k<<3)>>3]/1.4142135623730951;p[m+(k+l<<3)>>3]=+p[o+(k<<3)>>3]/1.4142135623730951;k=k+1|0}while((k|0)!=(l|0))}if(g){q=+p[m>>3];r=+p[m+(l<<3)>>3];if((l|0)>1){k=0;do{s=+p[a+488+(k<<3)>>3];t=q*s;o=h+(k<<3)|0;p[o>>3]=t;u=r*s;n=i+(k<<3)|0;p[n>>3]=u;v=1;w=k;s=t;t=u;while(1){x=w-b|0;while(1)if((x|0)<(c|0)){y=x;break}else x=x-c|0;while(1)if((y|0)<0)y=y+c|0;else break;u=+p[a+488+(y<<3)>>3];s=s+ +p[m+(v<<3)>>3]*u;t=t+ +p[m+(v+l<<3)>>3]*u;v=v+1|0;if((v|0)==(l|0))break;else w=y}p[o>>3]=s;p[n>>3]=t;k=k+1|0}while((k|0)!=(c|0))}else{k=0;do{u=+p[a+488+(k<<3)>>3];p[h+(k<<3)>>3]=q*u;p[i+(k<<3)>>3]=r*u;k=k+1|0}while((k|0)!=(c|0))}Wc(m);if(g){k=0;do{p[a+488+(k<<3)>>3]=+p[h+(k<<3)>>3];p[a+488+(k+j<<3)>>3]=+p[i+(k<<3)>>3];k=k+1|0}while((k|0)!=(c|0))}}else Wc(m);e=e+1|0}while((e|0)!=(d|0));Wc(h);Wc(i);return}function pb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0,w=0.0,x=0,y=0;c=f[a+20>>2]|0;d=f[a+32>>2]|0;e=~~+ha(+(+(d|0)+-1.0));g=c<<3;h=Vc(g)|0;i=(c|0)>0;if(i){j=f[a+484>>2]|0;k=0;do{p[b+(k<<3)>>3]=+p[j+(k<<3)>>3];k=k+1|0}while((k|0)!=(c|0))}if((d|0)<=0){Wc(h);return}k=e;e=c;j=0;while(1){k=(j|0)>0?(k|0)/2|0:k;l=a+488+(e<<3)|0;m=f[a>>2]|0;n=f[m+56>>2]|0;o=Vc(n<<4)|0;if((n|0)>0){q=f[m+72>>2]|0;r=f[m+76>>2]|0;m=0;do{p[o+(m<<3)>>3]=+p[q+(m<<3)>>3]/1.4142135623730951;p[o+(m+n<<3)>>3]=+p[r+(m<<3)>>3]/1.4142135623730951;m=m+1|0}while((m|0)!=(n|0))}if(i){s=+p[o>>3];t=+p[o+(n<<3)>>3];if((n|0)>1){m=0;do{u=s*+p[b+(m<<3)>>3]+t*+p[l+(m<<3)>>3];r=h+(m<<3)|0;p[r>>3]=u;q=1;v=m;w=u;while(1){x=v+k|0;while(1)if((x|0)<(c|0)){y=x;break}else x=x-c|0;while(1)if((y|0)<0)y=y+c|0;else break;w=w+(+p[o+(q<<3)>>3]*+p[b+(y<<3)>>3]+ +p[o+(q+n<<3)>>3]*+p[l+(y<<3)>>3]);q=q+1|0;if((q|0)==(n|0))break;else v=y}p[r>>3]=w;m=m+1|0}while((m|0)!=(c|0))}else{m=0;do{p[h+(m<<3)>>3]=s*+p[b+(m<<3)>>3]+t*+p[l+(m<<3)>>3];m=m+1|0}while((m|0)!=(c|0))}Wc(o);if(i)gd(b|0,h|0,g|0)|0}else Wc(o);j=j+1|0;if((j|0)==(d|0))break;else e=e+c|0}Wc(h);return}function qb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;d=u;u=u+16|0;e=d;if(Ob(c,26699)|0)if(!(Ob(c,26695)|0))f=7497072;else{Sc(26397,e)|0;sa(-1)}else f=7174515;e=a+44|0;b[e>>0]=f;b[e+1>>0]=f>>8;b[e+2>>0]=f>>16;b[e+3>>0]=f>>24;u=d;return}function rb(a){a=a|0;Wc(a);return}function sb(a){a=a|0;Wc(a);return}function tb(a,b,c,d,e,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0.0,T=0,U=0,V=0;m=u;u=u+16|0;n=m;o=k<<3;q=Vc(o+8|0)|0;r=(j|0)/2|0;s=0-r|0;if(!(Ob(d,26695)|0)){t=(Ob(c,26823)|0)==0;v=f[(t?b:b+(1-e+g<<2)|0)>>2]|0;t=Vc(((f[b+(g<<2)>>2]|0)+j<<4)+-8|0)|0;if((v|0)>0)gd(q|0,a|0,v<<3|0)|0;a:do if((e|0)>0){w=r+-1|0;x=(j|0)>1;y=j+-1|0;z=g+2|0;A=t+((r<<3)+-8)|0;B=e;C=v;while(1){D=(B|0)==(e|0)&(Ob(c,26828)|0)==0;E=D?i:h;D=w+C|0;do if((D|0)>0){F=y+C|0;if(x){G=-1;H=-2;I=0}else{_c(t|0,0,D<<4|0)|0;break}do{H=H+2|0;G=G+2|0;J=t+(H<<3)|0;p[J>>3]=0.0;K=t+(G<<3)|0;p[K>>3]=0.0;L=I+C|0;M=0;do{N=M<<1;O=I-M|0;P=(O|0)<(C|0);do if(!((O|0)>-1&P)){if((O|0)<(F|0)&(P^1)){Q=O-C|0;R=15;break}if((O|0)<0&(O|0)>(s|0)){Q=L-M|0;R=15}}else{Q=O;R=15}while(0);if((R|0)==15){R=0;S=+p[q+(Q<<3)>>3];p[J>>3]=+p[J>>3]+ +p[E+(N<<3)>>3]*S;p[K>>3]=+p[K>>3]+ +p[E+((N|1)<<3)>>3]*S}M=M+1|0}while((M|0)<(r|0));I=I+1|0}while((I|0)!=(D|0))}while(0);if((r|0)<=(w+(C<<1)|0))gd(q|0,A|0,C<<4|0)|0;if((B|0)==1)break a;C=f[b+(z-B<<2)>>2]|0;if((B|0)<=1)break;else B=B+-1|0}}while(0);Wc(t)}else{if(Ob(d,26699)|0){Sc(26397,n)|0;sa(-1)}n=(Ob(c,26823)|0)==0;d=f[(n?b:b+(1-e+g<<2)|0)>>2]|0;n=Vc(((f[b+(g<<2)>>2]|0)+j<<4)+-16|0)|0;if((d|0)>0)gd(q|0,a|0,d<<3|0)|0;b:do if((e|0)>0){a=(j|0)>1;t=j+-2|0;I=g+2|0;Q=n+((j<<3)+-16)|0;R=2-j|0;s=e;G=d;while(1){H=(s|0)==(e|0)&(Ob(c,26828)|0)==0;v=H?i:h;do if((G|0)>0){if(a){T=0;U=-1;V=-2}else{_c(n|0,0,G<<4|0)|0;break}do{V=V+2|0;U=U+2|0;H=n+(V<<3)|0;p[H>>3]=0.0;B=n+(U<<3)|0;p[B>>3]=0.0;z=0;do{C=z<<1;A=T-z|0;if((A|0)>-1&(A|0)<(G|0)){S=+p[q+(A<<3)>>3];p[H>>3]=+p[H>>3]+ +p[v+(C<<3)>>3]*S;p[B>>3]=+p[B>>3]+ +p[v+((C|1)<<3)>>3]*S}z=z+1|0}while((z|0)<(r|0));T=T+1|0}while((T|0)!=(G|0))}while(0);v=G<<1;if((t|0)<(v|0))gd(q|0,Q|0,R+v<<3|0)|0;if((s|0)==1)break b;G=f[b+(I-s<<2)>>2]|0;if((s|0)<=1)break;else s=s+-1|0}}while(0);Wc(n)}if((k|0)<=0){Wc(q);u=m;return}gd(l|0,q|0,o|0)|0;Wc(q);u=m;return}function ub(a,b,c,d,e,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0.0,v=0.0,w=0,x=0.0,y=0.0;k=u;u=u+16|0;l=k;m=gb(d)|0;d=~~(+V(+(+(b|0)/(+(f[m+52>>2]|0)+-1.0)))/.6931471805599453);if((d|0)<(c|0)){f[l>>2]=d;Sc(26439,l)|0;sa(-1)}l=hb(m,e,b,c)|0;do if(Ob(e,26687)|0)if(!(Ob(e,26703)|0)){mb(l,a);break}else{Tc(26519)|0;sa(-1)}else{qb(l,g);ib(l,a)}while(0);a=Vc(c<<3)|0;g=l+76|0;b=f[g>>2]|0;d=f[l+76+(c<<2)>>2]|0;n=Vc(d<<3)|0;if(!(Ob(i,26565)|0)){if((c|0)>1){o=1;q=b;while(1){r=(f[l+76+(o<<2)>>2]|0)+q|0;o=o+1|0;if((o|0)==(c|0)){s=r;break}else q=r}}else s=b;if((d|0)>0){q=f[l+484>>2]|0;o=0;do{t=+K(+(+p[q+(o+s<<3)>>3]));p[n+(o<<3)>>3]=t;o=o+1|0}while((o|0)!=(d|0))}qc(n,d,8,1);o=(d|0)/2|0;t=+p[n+(o<<3)>>3];if(!(d&1))v=(t+ +p[n+(o+-1<<3)>>3])*.5;else v=t;t=v/.6745;if((c|0)>0){o=0;do{p[a+(o<<3)>>3]=t;o=o+1|0}while((o|0)!=(c|0));w=28}}else{if(Ob(i,26571)|0){Tc(26575)|0;sa(-1)}if((c|0)>0){i=l+484|0;o=0;d=b;while(1){b=o;o=o+1|0;s=f[l+76+(o<<2)>>2]|0;if((s|0)>0){q=f[i>>2]|0;r=0;do{t=+K(+(+p[q+(r+d<<3)>>3]));p[n+(r<<3)>>3]=t;r=r+1|0}while((r|0)!=(s|0))}qc(n,s,8,1);r=(s|0)/2|0;t=+p[n+(r<<3)>>3];if(!(s&1))x=(t+ +p[n+(r+-1<<3)>>3])*.5;else x=t;p[a+(b<<3)>>3]=x/.6745;if((o|0)==(c|0)){w=28;break}else d=s+d|0}}}if((w|0)==28?(c|0)>0:0){x=+L(+(+V(+(+(f[l+24>>2]|0)))*2.0));w=l+484|0;d=0;o=f[g>>2]|0;while(1){g=d;d=d+1|0;i=f[l+76+(d<<2)>>2]|0;t=+p[a+(g<<3)>>3]*x;if(!(Ob(h,26637)|0)){if((i|0)>0){g=f[w>>2]|0;r=0;do{q=g+(r+o<<3)|0;if(+K(+(+p[q>>3]))>3]=0.0;r=r+1|0}while((r|0)!=(i|0))}}else if((Ob(h,26642)|0)==0&(i|0)>0){r=f[w>>2]|0;g=0;do{s=r+(g+o<<3)|0;v=+p[s>>3];y=+K(+v);p[s>>3]=y=0.0?1.0:-1.0)*(y-t);g=g+1|0}while((g|0)!=(i|0))}if((d|0)==(c|0))break;else o=i+o|0}}if(!(Ob(e,26687)|0)){lb(l,j);Wc(n);Wc(a);rb(m);sb(l);u=k;return}if(Ob(e,26703)|0){Wc(n);Wc(a);rb(m);sb(l);u=k;return}nb(l,j);Wc(n);Wc(a);rb(m);sb(l);u=k;return}function vb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+p[a>>3];d=+p[b>>3];return (cd&1)|0}function wb(a,b,c,d,e,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0.0,x=0.0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0;k=u;u=u+16|0;l=k;m=gb(d)|0;d=~~(+V(+(+(b|0)/(+(f[m+52>>2]|0)+-1.0)))/.6931471805599453);if((d|0)<(c|0)){f[l>>2]=d;Sc(26439,l)|0;sa(-1)}l=hb(m,e,b,c)|0;do if(Ob(e,26687)|0)if(!(Ob(e,26703)|0)){mb(l,a);break}else{Tc(26647)|0;sa(-1)}else{qb(l,g);ib(l,a)}while(0);a=l+76|0;g=f[a>>2]|0;b=f[l+76+(c<<2)>>2]|0;d=b<<3;n=Vc(d)|0;o=Vc(d)|0;q=Vc(d)|0;d=Vc(c<<3)|0;r=f[a>>2]|0;if(!(Ob(i,26565)|0)){if((c|0)>1){a=r;s=1;while(1){t=(f[l+76+(s<<2)>>2]|0)+a|0;s=s+1|0;if((s|0)==(c|0)){v=t;break}else a=t}}else v=r;if((b|0)>0){a=f[l+484>>2]|0;s=0;do{w=+K(+(+p[a+(s+v<<3)>>3]));p[n+(s<<3)>>3]=w;s=s+1|0}while((s|0)!=(b|0))}qc(n,b,8,1);s=(b|0)/2|0;w=+p[n+(s<<3)>>3];if(!(b&1))x=(w+ +p[n+(s+-1<<3)>>3])*.5;else x=w;w=x/.6745;if((c|0)>0){s=0;do{p[d+(s<<3)>>3]=w;s=s+1|0}while((s|0)!=(c|0));y=17}}else{if(Ob(i,26571)|0){Tc(26575)|0;sa(-1)}if((c|0)>0){i=l+484|0;s=0;b=r;while(1){r=s;s=s+1|0;v=f[l+76+(s<<2)>>2]|0;if((v|0)>0){a=f[i>>2]|0;t=0;do{w=+K(+(+p[a+(t+b<<3)>>3]));p[n+(t<<3)>>3]=w;t=t+1|0}while((t|0)!=(v|0))}qc(n,v,8,1);t=(v|0)/2|0;w=+p[n+(t<<3)>>3];if(!(v&1))z=(w+ +p[n+(t+-1<<3)>>3])*.5;else z=w;p[d+(r<<3)>>3]=z/.6745;if((s|0)==(c|0)){y=17;break}else b=v+b|0}}}if((y|0)==17?(c|0)>0:0){y=l+484|0;b=g;g=0;while(1){s=g;g=g+1|0;i=l+76+(g<<2)|0;t=f[i>>2]|0;z=+p[d+(s<<3)>>3];if(!(z<1.0e-08)){w=+(t|0);x=+V(+w);A=+L(+(x*2.0));s=(t|0)>0;if(s){a=f[y>>2]|0;B=z*z;C=0.0;D=0;while(1){E=+p[a+(D+b<<3)>>3];F=C+E*E/B;D=D+1|0;if((D|0)==(t|0)){G=F;break}else C=F}}else G=0.0;if((G-w)/w<+M(+(x/.6931471805599453),1.5)/+L(+w))H=A;else{if(s){D=f[y>>2]|0;a=0;do{C=+K(+(+p[D+(a+b<<3)>>3]/z));p[n+(a<<3)>>3]=C;a=a+1|0}while((a|0)!=(t|0));qc(n,t,8,1);if(s){x=0.0;a=0;do{D=n+(a<<3)|0;C=+p[D>>3];B=C*C;p[D>>3]=B;x=x+B;p[q+(a<<3)>>3]=x;a=a+1|0}while((a|0)!=(t|0));if(s){x=w+-1.0;a=0;do{B=+(a|0);p[o+(a<<3)>>3]=(w-(B+1.0)*2.0+ +p[q+(a<<3)>>3]+(x-B)*+p[n+(a<<3)>>3])/w;a=a+1|0}while((a|0)!=(t|0));if(s){a=0;w=1797693134862315708145274.0e284;D=0;while(1){x=+p[o+(D<<3)>>3];v=x>3]));H=w0){a=f[y>>2]|0;D=0;do{s=a+(D+b<<3)|0;if(+K(+(+p[s>>3]))>3]=0.0;D=D+1|0}while((D|0)!=(t|0))}}else if((Ob(h,26642)|0)==0&(t|0)>0){D=f[y>>2]|0;a=0;do{s=D+(a+b<<3)|0;z=+p[s>>3];A=+K(+z);p[s>>3]=A=0.0?1.0:-1.0)*(A-w);a=a+1|0}while((a|0)!=(t|0))}if((g|0)==(c|0))break;else b=(f[i>>2]|0)+b|0}}if(!(Ob(e,26687)|0)){lb(l,j);Wc(n);Wc(q);Wc(o);Wc(d);rb(m);sb(l);u=k;return}if(Ob(e,26703)|0){Wc(n);Wc(q);Wc(o);Wc(d);rb(m);sb(l);u=k;return}nb(l,j);Wc(n);Wc(q);Wc(o);Wc(d);rb(m);sb(l);u=k;return}function xb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(Ob(b,26687)|0?Ob(b,26691)|0:0){if(Ob(b,26703)|0?Ob(b,26707)|0:0){if(Ob(b,26711)|0?Ob(b,26717)|0:0){f=0;return f|0}f=X(d+1|0,a)|0;return f|0}f=X(d+1|0,a)|0;return f|0}if(!(Ob(e,26695)|0)){if((d|0)>0){b=d;g=a;h=0;while(1){i=~~+W(+(+(g|0)*.5));j=i+h|0;if((b|0)>1){b=b+-1|0;g=i;h=j}else{k=j;l=i;break}}}else{k=0;l=a}f=k+l|0;return f|0}if(Ob(e,26699)|0){f=0;return f|0}if((d|0)>0){e=c+-2|0;c=d;d=a;l=0;while(1){k=~~+W(+(+(e+d|0)*.5));h=k+l|0;if((c|0)>1){c=c+-1|0;d=k;l=h}else{m=h;n=k;break}}}else{m=0;n=a}f=m+n|0;return f|0}function yb(a,b,c,d,e,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0;k=gb(c)|0;c=f[k+52>>2]|0;if((c|0)>0){l=f[k+72>>2]|0;m=f[k+76>>2]|0;n=f[k+80>>2]|0;o=f[k+84>>2]|0;q=c<<1;r=c*3|0;s=0;do{p[j+(s<<3)>>3]=+p[l+(s<<3)>>3];p[j+(c+s<<3)>>3]=+p[m+(s<<3)>>3];p[j+(q+s<<3)>>3]=+p[n+(s<<3)>>3];p[j+(r+s<<3)>>3]=+p[o+(s<<3)>>3];s=s+1|0}while((s|0)<(c|0))}c=hb(k,d,b,e)|0;do if((Ob(d,26687)|0)!=0?(Ob(d,26691)|0)!=0:0){if(Ob(d,26703)|0?Ob(d,26707)|0:0){if(Ob(d,26711)|0?Ob(d,26717)|0:0)break;ob(c,a);break}mb(c,a)}else t=6;while(0);if((t|0)==6){qb(c,g);ib(c,a)}a=c+28|0;if((f[a>>2]|0)>0){g=0;do{f[i+(g<<2)>>2]=f[c+76+(g<<2)>>2];g=g+1|0}while((g|0)<(f[a>>2]|0))}a=f[c+24>>2]|0;if((a|0)<=0){rb(k);sb(c);return}g=f[c+484>>2]|0;i=0;do{p[h+(i<<3)>>3]=+p[g+(i<<3)>>3];i=i+1|0}while((i|0)<(a|0));rb(k);sb(c);return}function zb(a,b,c,d,e,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;l=gb(c)|0;c=hb(l,d,i,e)|0;if((b|0)>0){e=f[c+484>>2]|0;i=0;do{p[e+(i<<3)>>3]=+p[a+(i<<3)>>3];i=i+1|0}while((i|0)!=(b|0))}f[c+28>>2]=k;if((k|0)>0){b=0;do{f[c+76+(b<<2)>>2]=f[j+(b<<2)>>2];b=b+1|0}while((b|0)!=(k|0))}if(Ob(d,26687)|0?Ob(d,26691)|0:0){if(Ob(d,26703)|0?Ob(d,26707)|0:0){if(Ob(d,26711)|0?Ob(d,26717)|0:0){rb(l);sb(c);return}pb(c,h);rb(l);sb(c);return}nb(c,h);rb(l);sb(c);return}qb(c,g);lb(c,h);rb(l);sb(c);return}function Ab(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a=a|0;b=+b;c=c|0;d=d|0;e=+e;f=f|0;g=+g;h=+h;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0;if((k|0)==1)q=~~+Ec(1.0,~~(+V(+(+(d|0)))/.6931471805599453+.499999)+1|0);else q=d;k=Vc(X(d<<4,f)|0)|0;if(!(Ob(a,26723)|0))r=0;else{s=(Ob(a,26730)|0)==0;r=s?1:2}if((Ob(i,26735)|0)!=0?(Ob(i,26739)|0)!=0:0){if(Ob(i,26745)|0?Ob(i,26749)|0:0){Tc(26756)|0;sa(-1)}if((f|0)>0){i=0;do{p[m+(i<<3)>>3]=+(i|0)*h+g;i=i+1|0}while((i|0)!=(f|0))}}else t=7;if((t|0)==7?(f|0)>0:0){u=+(j|0);j=0;do{v=+M(+u,+(+(j|0)*h))*g;p[m+(j<<3)>>3]=v;j=j+1|0}while((j|0)!=(f|0))}fb(c,d,e,r,b,g,h,f,q,k,m,n,o);o=X(f,d)|0;if((o|0)>0)w=0;else{Wc(k);return}do{d=w<<1;h=+p[k+(d<<3)>>3];g=+p[k+((d|1)<<3)>>3];b=+L(+(h*h+g*g));p[l+(w<<3)>>3]=b;w=w+1|0}while((w|0)!=(o|0));Wc(k);return}function Bb(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;if(!(Ob(d,26801)|0))ub(a,b,c,e,f,g,h,i,j);if(Ob(d,26812)|0)return;wb(a,b,c,e,f,g,h,i,j);return}function Cb(a,b,c,d,e,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0;if(Ob(a,26687)|0){Tc(26832)|0;sa(-1)}a=g+(h<<1<<3)|0;k=g+(h*3<<3)|0;tb(b,c,26823,d,e,e,a,k,h,i,j);if((e|0)>0){l=0;m=0;n=e}else return 0;while(1){m=(f[c+(e-n<<2)>>2]|0)+m|0;l=l+i|0;tb(b+(m<<3)|0,c,26828,d,n,e,a,k,h,i,j+(l<<3)|0);if((n|0)<=1)break;else n=n+-1|0}return 0}function Db(){return 29336}function Eb(a){a=a|0;var b=0,c=0,d=0;b=u;u=u+16|0;c=b;d=Lb(f[a+60>>2]|0)|0;f[c>>2]=d;d=Hb(na(6,c|0)|0)|0;u=b;return d|0}function Fb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;d=u;u=u+48|0;e=d+16|0;g=d;h=d+32|0;i=a+28|0;j=f[i>>2]|0;f[h>>2]=j;k=a+20|0;l=(f[k>>2]|0)-j|0;f[h+4>>2]=l;f[h+8>>2]=b;f[h+12>>2]=c;b=l+c|0;l=a+60|0;f[g>>2]=f[l>>2];f[g+4>>2]=h;f[g+8>>2]=2;j=Hb(ua(146,g|0)|0)|0;a:do if((b|0)!=(j|0)){g=2;m=b;n=h;o=j;while(1){if((o|0)<0)break;m=m-o|0;p=f[n+4>>2]|0;q=o>>>0>p>>>0;r=q?n+8|0:n;s=(q<<31>>31)+g|0;t=o-(q?p:0)|0;f[r>>2]=(f[r>>2]|0)+t;p=r+4|0;f[p>>2]=(f[p>>2]|0)-t;f[e>>2]=f[l>>2];f[e+4>>2]=r;f[e+8>>2]=s;o=Hb(ua(146,e|0)|0)|0;if((m|0)==(o|0)){v=3;break a}else{g=s;n=r}}f[a+16>>2]=0;f[i>>2]=0;f[k>>2]=0;f[a>>2]=f[a>>2]|32;if((g|0)==2)w=0;else w=c-(f[n+4>>2]|0)|0}else v=3;while(0);if((v|0)==3){v=f[a+44>>2]|0;f[a+16>>2]=v+(f[a+48>>2]|0);f[i>>2]=v;f[k>>2]=v;w=c}u=d;return w|0}function Gb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=u;u=u+32|0;e=d;g=d+20|0;f[e>>2]=f[a+60>>2];f[e+4>>2]=0;f[e+8>>2]=b;f[e+12>>2]=g;f[e+16>>2]=c;if((Hb(oa(140,e|0)|0)|0)<0){f[g>>2]=-1;h=-1}else h=f[g>>2]|0;u=d;return h|0}function Hb(a){a=a|0;var b=0,c=0;if(a>>>0>4294963200){b=Ib()|0;f[b>>2]=0-a;c=-1}else c=a;return c|0}function Ib(){return (Jb()|0)+64|0}function Jb(){return Kb()|0}function Kb(){return 24912}function Lb(a){a=a|0;return a|0}function Mb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+32|0;g=e;f[a+36>>2]=3;if((f[a>>2]&64|0)==0?(f[g>>2]=f[a+60>>2],f[g+4>>2]=21523,f[g+8>>2]=e+16,qa(54,g|0)|0):0)b[a+75>>0]=-1;g=Fb(a,c,d)|0;u=e;return g|0}function Nb(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Ob(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=b[a>>0]|0;e=b[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=a;do{c=c+1|0;d=d+1|0;a=b[c>>0]|0;e=b[d>>0]|0}while(!(a<<24>>24==0?1:a<<24>>24!=e<<24>>24));f=e;g=a}return (g&255)-(f&255)|0}function Pb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:do if(!d)e=0;else{f=a;g=d;h=c;while(1){i=b[f>>0]|0;j=b[h>>0]|0;if(i<<24>>24!=j<<24>>24)break;g=g+-1|0;if(!g){e=0;break a}else{f=f+1|0;h=h+1|0}}e=(i&255)-(j&255)|0}while(0);return e|0}function Qb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=u;u=u+224|0;g=e+120|0;h=e+80|0;i=e;j=e+136|0;k=h;l=k+40|0;do{f[k>>2]=0;k=k+4|0}while((k|0)<(l|0));f[g>>2]=f[d>>2];if((Rb(0,c,g,i,h)|0)<0)m=-1;else{if((f[a+76>>2]|0)>-1)n=Sb(a)|0;else n=0;d=f[a>>2]|0;k=d&32;if((b[a+74>>0]|0)<1)f[a>>2]=d&-33;d=a+48|0;if(!(f[d>>2]|0)){l=a+44|0;o=f[l>>2]|0;f[l>>2]=j;p=a+28|0;f[p>>2]=j;q=a+20|0;f[q>>2]=j;f[d>>2]=80;r=a+16|0;f[r>>2]=j+80;j=Rb(a,c,g,i,h)|0;if(!o)s=j;else{ya[f[a+36>>2]&3](a,0,0)|0;t=(f[q>>2]|0)==0?-1:j;f[l>>2]=o;f[d>>2]=0;f[r>>2]=0;f[p>>2]=0;f[q>>2]=0;s=t}}else s=Rb(a,c,g,i,h)|0;h=f[a>>2]|0;f[a>>2]=h|k;if(n|0)Tb(a);m=(h&32|0)==0?s:-1}u=e;return m|0}function Rb(a,c,e,g,h){a=a|0;c=c|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;i=u;u=u+64|0;j=i+16|0;k=i;l=i+24|0;m=i+8|0;n=i+20|0;f[j>>2]=c;o=(a|0)!=0;q=l+40|0;r=q;s=l+39|0;l=m+4|0;t=0;v=0;w=0;x=c;a:while(1){do if((v|0)>-1)if((t|0)>(2147483647-v|0)){c=Ib()|0;f[c>>2]=75;y=-1;break}else{y=t+v|0;break}else y=v;while(0);c=b[x>>0]|0;if(!(c<<24>>24)){z=87;break}else{A=c;B=x}b:while(1){switch(A<<24>>24){case 37:{C=B;D=B;z=9;break b;break}case 0:{E=B;F=B;break b;break}default:{}}c=B+1|0;f[j>>2]=c;A=b[c>>0]|0;B=c}c:do if((z|0)==9)while(1){z=0;if((b[D+1>>0]|0)!=37){E=C;F=D;break c}c=C+1|0;G=D+2|0;f[j>>2]=G;if((b[G>>0]|0)==37){C=c;D=G;z=9}else{E=c;F=G;break}}while(0);G=E-x|0;if(o)Ub(a,x,G);if(G|0){t=G;v=y;x=F;continue}G=F+1|0;c=(b[G>>0]|0)+-48|0;if(c>>>0<10){H=(b[F+2>>0]|0)==36;J=H?c:-1;K=H?1:w;L=H?F+3|0:G}else{J=-1;K=w;L=G}f[j>>2]=L;G=b[L>>0]|0;H=(G<<24>>24)+-32|0;d:do if(H>>>0<32){c=0;M=G;N=H;O=L;while(1){P=1<>2]=P;U=b[P>>0]|0;N=(U<<24>>24)+-32|0;if(N>>>0>=32){Q=T;R=U;S=P;break}else{c=T;M=U;O=P}}}else{Q=0;R=G;S=L}while(0);if(R<<24>>24==42){G=S+1|0;H=(b[G>>0]|0)+-48|0;if(H>>>0<10?(b[S+2>>0]|0)==36:0){f[h+(H<<2)>>2]=10;V=f[g+((b[G>>0]|0)+-48<<3)>>2]|0;W=1;X=S+3|0}else{if(K|0){Y=-1;break}if(o){H=(f[e>>2]|0)+(4-1)&~(4-1);O=f[H>>2]|0;f[e>>2]=H+4;V=O;W=0;X=G}else{V=0;W=0;X=G}}f[j>>2]=X;G=(V|0)<0;Z=G?0-V|0:V;_=G?Q|8192:Q;$=W;aa=X}else{G=Vb(j)|0;if((G|0)<0){Y=-1;break}Z=G;_=Q;$=K;aa=f[j>>2]|0}do if((b[aa>>0]|0)==46){if((b[aa+1>>0]|0)!=42){f[j>>2]=aa+1;G=Vb(j)|0;ba=G;ca=f[j>>2]|0;break}G=aa+2|0;O=(b[G>>0]|0)+-48|0;if(O>>>0<10?(b[aa+3>>0]|0)==36:0){f[h+(O<<2)>>2]=10;O=f[g+((b[G>>0]|0)+-48<<3)>>2]|0;H=aa+4|0;f[j>>2]=H;ba=O;ca=H;break}if($|0){Y=-1;break a}if(o){H=(f[e>>2]|0)+(4-1)&~(4-1);O=f[H>>2]|0;f[e>>2]=H+4;da=O}else da=0;f[j>>2]=G;ba=da;ca=G}else{ba=-1;ca=aa}while(0);G=0;O=ca;while(1){if(((b[O>>0]|0)+-65|0)>>>0>57){Y=-1;break a}ea=O+1|0;f[j>>2]=ea;fa=b[(b[O>>0]|0)+-65+(26906+(G*58|0))>>0]|0;ga=fa&255;if((ga+-1|0)>>>0<8){G=ga;O=ea}else break}if(!(fa<<24>>24)){Y=-1;break}H=(J|0)>-1;do if(fa<<24>>24==19)if(H){Y=-1;break a}else z=49;else{if(H){f[h+(J<<2)>>2]=ga;M=g+(J<<3)|0;c=f[M+4>>2]|0;N=k;f[N>>2]=f[M>>2];f[N+4>>2]=c;z=49;break}if(!o){Y=0;break a}Wb(k,ga,e)}while(0);if((z|0)==49?(z=0,!o):0){t=0;v=y;w=$;x=ea;continue}H=b[O>>0]|0;c=(G|0)!=0&(H&15|0)==3?H&-33:H;H=_&-65537;N=(_&8192|0)==0?_:H;e:do switch(c|0){case 110:{switch((G&255)<<24>>24){case 0:{f[f[k>>2]>>2]=y;t=0;v=y;w=$;x=ea;continue a;break}case 1:{f[f[k>>2]>>2]=y;t=0;v=y;w=$;x=ea;continue a;break}case 2:{M=f[k>>2]|0;f[M>>2]=y;f[M+4>>2]=((y|0)<0)<<31>>31;t=0;v=y;w=$;x=ea;continue a;break}case 3:{d[f[k>>2]>>1]=y;t=0;v=y;w=$;x=ea;continue a;break}case 4:{b[f[k>>2]>>0]=y;t=0;v=y;w=$;x=ea;continue a;break}case 6:{f[f[k>>2]>>2]=y;t=0;v=y;w=$;x=ea;continue a;break}case 7:{M=f[k>>2]|0;f[M>>2]=y;f[M+4>>2]=((y|0)<0)<<31>>31;t=0;v=y;w=$;x=ea;continue a;break}default:{t=0;v=y;w=$;x=ea;continue a}}break}case 112:{ha=120;ia=ba>>>0>8?ba:8;ja=N|8;z=61;break}case 88:case 120:{ha=c;ia=ba;ja=N;z=61;break}case 111:{M=k;P=f[M>>2]|0;U=f[M+4>>2]|0;M=Yb(P,U,q)|0;T=r-M|0;ka=M;la=0;ma=27370;na=(N&8|0)==0|(ba|0)>(T|0)?ba:T+1|0;oa=N;pa=P;qa=U;z=67;break}case 105:case 100:{U=k;P=f[U>>2]|0;T=f[U+4>>2]|0;if((T|0)<0){U=Yc(0,0,P|0,T|0)|0;M=I;ra=k;f[ra>>2]=U;f[ra+4>>2]=M;sa=1;ta=27370;ua=U;va=M;z=66;break e}else{sa=(N&2049|0)!=0&1;ta=(N&2048|0)==0?((N&1|0)==0?27370:27372):27371;ua=P;va=T;z=66;break e}break}case 117:{T=k;sa=0;ta=27370;ua=f[T>>2]|0;va=f[T+4>>2]|0;z=66;break}case 99:{b[s>>0]=f[k>>2];wa=s;xa=0;ya=27370;za=q;Aa=1;Ba=H;break}case 109:{T=Ib()|0;Ca=_b(f[T>>2]|0)|0;z=71;break}case 115:{T=f[k>>2]|0;Ca=T|0?T:27380;z=71;break}case 67:{f[m>>2]=f[k>>2];f[l>>2]=0;f[k>>2]=m;Da=-1;Ea=m;z=75;break}case 83:{T=f[k>>2]|0;if(!ba){ac(a,32,Z,0,N);Fa=0;z=84}else{Da=ba;Ea=T;z=75}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{t=cc(a,+p[k>>3],Z,ba,N,c)|0;v=y;w=$;x=ea;continue a;break}default:{wa=x;xa=0;ya=27370;za=q;Aa=ba;Ba=N}}while(0);f:do if((z|0)==61){z=0;c=k;G=f[c>>2]|0;O=f[c+4>>2]|0;c=Xb(G,O,q,ha&32)|0;T=(ja&8|0)==0|(G|0)==0&(O|0)==0;ka=c;la=T?0:2;ma=T?27370:27370+(ha>>4)|0;na=ia;oa=ja;pa=G;qa=O;z=67}else if((z|0)==66){z=0;ka=Zb(ua,va,q)|0;la=sa;ma=ta;na=ba;oa=N;pa=ua;qa=va;z=67}else if((z|0)==71){z=0;O=$b(Ca,0,ba)|0;G=(O|0)==0;wa=Ca;xa=0;ya=27370;za=G?Ca+ba|0:O;Aa=G?ba:O-Ca|0;Ba=H}else if((z|0)==75){z=0;O=Ea;G=0;T=0;while(1){c=f[O>>2]|0;if(!c){Ga=G;Ha=T;break}P=bc(n,c)|0;if((P|0)<0|P>>>0>(Da-G|0)>>>0){Ga=G;Ha=P;break}c=P+G|0;if(Da>>>0>c>>>0){O=O+4|0;G=c;T=P}else{Ga=c;Ha=P;break}}if((Ha|0)<0){Y=-1;break a}ac(a,32,Z,Ga,N);if(!Ga){Fa=0;z=84}else{T=Ea;G=0;while(1){O=f[T>>2]|0;if(!O){Fa=Ga;z=84;break f}P=bc(n,O)|0;G=P+G|0;if((G|0)>(Ga|0)){Fa=Ga;z=84;break f}Ub(a,n,P);if(G>>>0>=Ga>>>0){Fa=Ga;z=84;break}else T=T+4|0}}}while(0);if((z|0)==67){z=0;H=(pa|0)!=0|(qa|0)!=0;T=(na|0)!=0|H;G=((H^1)&1)+(r-ka)|0;wa=T?ka:q;xa=la;ya=ma;za=q;Aa=T?((na|0)>(G|0)?na:G):na;Ba=(na|0)>-1?oa&-65537:oa}else if((z|0)==84){z=0;ac(a,32,Z,Fa,N^8192);t=(Z|0)>(Fa|0)?Z:Fa;v=y;w=$;x=ea;continue}G=za-wa|0;T=(Aa|0)<(G|0)?G:Aa;H=T+xa|0;P=(Z|0)<(H|0)?H:Z;ac(a,32,P,H,Ba);Ub(a,ya,xa);ac(a,48,P,H,Ba^65536);ac(a,48,T,G,0);Ub(a,wa,G);ac(a,32,P,H,Ba^8192);t=P;v=y;w=$;x=ea}g:do if((z|0)==87)if(!a)if(!w)Y=0;else{ea=1;while(1){x=f[h+(ea<<2)>>2]|0;if(!x){Ia=ea;break}Wb(g+(ea<<3)|0,x,e);ea=ea+1|0;if((ea|0)>=10){Y=1;break g}}while(1){if(f[h+(Ia<<2)>>2]|0){Y=-1;break g}Ia=Ia+1|0;if((Ia|0)>=10){Y=1;break}}}else Y=y;while(0);u=i;return Y|0}function Sb(a){a=a|0;return 0}function Tb(a){a=a|0;return}function Ub(a,b,c){a=a|0;b=b|0;c=c|0;if(!(f[a>>2]&32))oc(b,c,a)|0;return}function Vb(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;c=f[a>>2]|0;d=(b[c>>0]|0)+-48|0;if(d>>>0<10){e=0;g=c;c=d;while(1){d=c+(e*10|0)|0;g=g+1|0;f[a>>2]=g;c=(b[g>>0]|0)+-48|0;if(c>>>0>=10){h=d;break}else e=d}}else h=0;return h|0}function Wb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{d=(f[c>>2]|0)+(4-1)&~(4-1);e=f[d>>2]|0;f[c>>2]=d+4;f[a>>2]=e;break a;break}case 10:{e=(f[c>>2]|0)+(4-1)&~(4-1);d=f[e>>2]|0;f[c>>2]=e+4;e=a;f[e>>2]=d;f[e+4>>2]=((d|0)<0)<<31>>31;break a;break}case 11:{d=(f[c>>2]|0)+(4-1)&~(4-1);e=f[d>>2]|0;f[c>>2]=d+4;d=a;f[d>>2]=e;f[d+4>>2]=0;break a;break}case 12:{d=(f[c>>2]|0)+(8-1)&~(8-1);e=d;g=f[e>>2]|0;h=f[e+4>>2]|0;f[c>>2]=d+8;d=a;f[d>>2]=g;f[d+4>>2]=h;break a;break}case 13:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=(d&65535)<<16>>16;d=a;f[d>>2]=h;f[d+4>>2]=((h|0)<0)<<31>>31;break a;break}case 14:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=a;f[h>>2]=d&65535;f[h+4>>2]=0;break a;break}case 15:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=(d&255)<<24>>24;d=a;f[d>>2]=h;f[d+4>>2]=((h|0)<0)<<31>>31;break a;break}case 16:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=a;f[h>>2]=d&255;f[h+4>>2]=0;break a;break}case 17:{h=(f[c>>2]|0)+(8-1)&~(8-1);i=+p[h>>3];f[c>>2]=h+8;p[a>>3]=i;break a;break}case 18:{h=(f[c>>2]|0)+(8-1)&~(8-1);i=+p[h>>3];f[c>>2]=h+8;p[a>>3]=i;break a;break}default:break a}while(0);while(0);return}function Xb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;if((a|0)==0&(c|0)==0)f=d;else{g=d;d=c;c=a;while(1){a=g+-1|0;b[a>>0]=h[27422+(c&15)>>0]|0|e;c=$c(c|0,d|0,4)|0;d=I;if((c|0)==0&(d|0)==0){f=a;break}else g=a}}return f|0}function Yb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;if((a|0)==0&(c|0)==0)e=d;else{f=d;d=c;c=a;while(1){a=f+-1|0;b[a>>0]=c&7|48;c=$c(c|0,d|0,3)|0;d=I;if((c|0)==0&(d|0)==0){e=a;break}else f=a}}return e|0}function Zb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;if(c>>>0>0|(c|0)==0&a>>>0>4294967295){e=d;f=a;g=c;while(1){c=fd(f|0,g|0,10,0)|0;e=e+-1|0;b[e>>0]=c&255|48;c=f;f=dd(f|0,g|0,10,0)|0;if(!(g>>>0>9|(g|0)==9&c>>>0>4294967295))break;else g=I}h=f;i=e}else{h=a;i=d}if(!h)j=i;else{d=h;h=i;while(1){i=h+-1|0;b[i>>0]=(d>>>0)%10|0|48;if(d>>>0<10){j=i;break}else{d=(d>>>0)/10|0;h=i}}}return j|0}function _b(a){a=a|0;var b=0;b=(ic()|0)+188|0;return jc(a,f[b>>2]|0)|0}function $b(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=c&255;g=(d|0)!=0;a:do if(g&(a&3|0)!=0){h=c&255;i=a;j=d;while(1){if((b[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=i+1|0;o=j+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=n;j=o}else{q=n;r=o;s=p;m=5;break}}}else{q=a;r=d;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else{t=q;u=0}b:do if((m|0)==6){q=c&255;if((b[k>>0]|0)==q<<24>>24){t=k;u=l}else{r=X(e,16843009)|0;c:do if(l>>>0>3){s=k;g=l;while(1){d=f[s>>2]^r;if((d&-2139062144^-2139062144)&d+-16843009|0)break;d=s+4|0;a=g+-4|0;if(a>>>0>3){s=d;g=a}else{v=d;w=a;m=11;break c}}x=s;y=g}else{v=k;w=l;m=11}while(0);if((m|0)==11)if(!w){t=v;u=0;break}else{x=v;y=w}while(1){if((b[x>>0]|0)==q<<24>>24){t=x;u=y;break b}r=x+1|0;y=y+-1|0;if(!y){t=r;u=0;break}else x=r}}}while(0);return (u|0?t:0)|0}function ac(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=u;u=u+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;_c(g|0,b|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{Ub(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;Ub(a,g,h)}u=f;return}function bc(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=gc(a,b,0)|0;return c|0}function cc(a,c,d,e,g,i){a=a|0;c=+c;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0.0,E=0,F=0,G=0,H=0.0,J=0,K=0,L=0,M=0,N=0.0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0.0,fa=0.0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0;j=u;u=u+560|0;k=j+8|0;l=j;m=j+524|0;n=m;o=j+512|0;f[l>>2]=0;p=o+12|0;dc(c)|0;if((I|0)<0){q=-c;r=1;s=27387}else{q=c;r=(g&2049|0)!=0&1;s=(g&2048|0)==0?((g&1|0)==0?27388:27393):27390}dc(q)|0;t=I&2146435072;do if(t>>>0<2146435072|(t|0)==2146435072&0<0){c=+ec(q,l)*2.0;v=c!=0.0;if(v)f[l>>2]=(f[l>>2]|0)+-1;w=i|32;if((w|0)==97){x=i&32;y=(x|0)==0?s:s+9|0;z=r|2;A=12-e|0;do if(!(e>>>0>11|(A|0)==0)){B=8.0;C=A;do{C=C+-1|0;B=B*16.0}while((C|0)!=0);if((b[y>>0]|0)==45){D=-(B+(-c-B));break}else{D=c+B-B;break}}else D=c;while(0);A=f[l>>2]|0;C=(A|0)<0?0-A|0:A;E=Zb(C,((C|0)<0)<<31>>31,p)|0;if((E|0)==(p|0)){C=o+11|0;b[C>>0]=48;F=C}else F=E;b[F+-1>>0]=(A>>31&2)+43;A=F+-2|0;b[A>>0]=i+15;E=(e|0)<1;C=(g&8|0)==0;G=m;H=D;while(1){J=~~H;K=G+1|0;b[G>>0]=h[27422+J>>0]|x;H=(H-+(J|0))*16.0;if((K-n|0)==1?!(C&(E&H==0.0)):0){b[K>>0]=46;L=G+2|0}else L=K;if(!(H!=0.0))break;else G=L}G=L-n|0;E=p-A|0;C=(e|0)!=0&(G+-2|0)<(e|0)?e+2|0:G;x=E+z+C|0;ac(a,32,d,x,g);Ub(a,y,z);ac(a,48,d,x,g^65536);Ub(a,m,G);ac(a,48,C-G|0,0,0);Ub(a,A,E);ac(a,32,d,x,g^8192);M=x;break}x=(e|0)<0?6:e;if(v){E=(f[l>>2]|0)+-28|0;f[l>>2]=E;N=c*268435456.0;O=E}else{N=c;O=f[l>>2]|0}E=(O|0)<0?k:k+288|0;G=E;H=N;do{C=~~H>>>0;f[G>>2]=C;G=G+4|0;H=(H-+(C>>>0))*1.0e9}while(H!=0.0);if((O|0)>0){v=E;A=G;z=O;while(1){y=(z|0)<29?z:29;C=A+-4|0;if(C>>>0>=v>>>0){K=C;C=0;do{J=ad(f[K>>2]|0,0,y|0)|0;P=Zc(J|0,I|0,C|0,0)|0;J=I;Q=fd(P|0,J|0,1e9,0)|0;f[K>>2]=Q;C=dd(P|0,J|0,1e9,0)|0;K=K+-4|0}while(K>>>0>=v>>>0);if(C){K=v+-4|0;f[K>>2]=C;R=K}else R=v}else R=v;K=A;while(1){if(K>>>0<=R>>>0)break;J=K+-4|0;if(!(f[J>>2]|0))K=J;else break}C=(f[l>>2]|0)-y|0;f[l>>2]=C;if((C|0)>0){v=R;A=K;z=C}else{S=R;T=K;U=C;break}}}else{S=E;T=G;U=O}if((U|0)<0){z=((x+25|0)/9|0)+1|0;A=(w|0)==102;v=S;C=T;J=U;while(1){P=0-J|0;Q=(P|0)<9?P:9;if(v>>>0>>0){P=(1<>>Q;W=0;Y=v;do{Z=f[Y>>2]|0;f[Y>>2]=(Z>>>Q)+W;W=X(Z&P,V)|0;Y=Y+4|0}while(Y>>>0>>0);Y=(f[v>>2]|0)==0?v+4|0:v;if(!W){_=Y;$=C}else{f[C>>2]=W;_=Y;$=C+4|0}}else{_=(f[v>>2]|0)==0?v+4|0:v;$=C}Y=A?E:_;V=($-Y>>2|0)>(z|0)?Y+(z<<2)|0:$;J=(f[l>>2]|0)+Q|0;f[l>>2]=J;if((J|0)>=0){aa=_;ba=V;break}else{v=_;C=V}}}else{aa=S;ba=T}C=E;if(aa>>>0>>0){v=(C-aa>>2)*9|0;J=f[aa>>2]|0;if(J>>>0<10)ca=v;else{z=v;v=10;while(1){v=v*10|0;A=z+1|0;if(J>>>0>>0){ca=A;break}else z=A}}}else ca=0;z=(w|0)==103;v=(x|0)!=0;J=x-((w|0)!=102?ca:0)+((v&z)<<31>>31)|0;if((J|0)<(((ba-C>>2)*9|0)+-9|0)){A=J+9216|0;J=E+4+(((A|0)/9|0)+-1024<<2)|0;G=((A|0)%9|0)+1|0;if((G|0)<9){A=G;G=10;while(1){V=G*10|0;A=A+1|0;if((A|0)==9){da=V;break}else G=V}}else da=10;G=f[J>>2]|0;A=(G>>>0)%(da>>>0)|0;w=(J+4|0)==(ba|0);if(!(w&(A|0)==0)){B=(((G>>>0)/(da>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;V=(da|0)/2|0;H=A>>>0>>0?.5:w&(A|0)==(V|0)?1.0:1.5;if(!r){ea=H;fa=B}else{V=(b[s>>0]|0)==45;ea=V?-H:H;fa=V?-B:B}V=G-A|0;f[J>>2]=V;if(fa+ea!=fa){A=V+da|0;f[J>>2]=A;if(A>>>0>999999999){A=aa;V=J;while(1){G=V+-4|0;f[V>>2]=0;if(G>>>0>>0){w=A+-4|0;f[w>>2]=0;ga=w}else ga=A;w=(f[G>>2]|0)+1|0;f[G>>2]=w;if(w>>>0>999999999){A=ga;V=G}else{ha=ga;ia=G;break}}}else{ha=aa;ia=J}V=(C-ha>>2)*9|0;A=f[ha>>2]|0;if(A>>>0<10){ja=ia;ka=V;la=ha}else{G=V;V=10;while(1){V=V*10|0;w=G+1|0;if(A>>>0>>0){ja=ia;ka=w;la=ha;break}else G=w}}}else{ja=J;ka=ca;la=aa}}else{ja=J;ka=ca;la=aa}G=ja+4|0;ma=ka;na=ba>>>0>G>>>0?G:ba;oa=la}else{ma=ca;na=ba;oa=aa}G=na;while(1){if(G>>>0<=oa>>>0){pa=0;break}V=G+-4|0;if(!(f[V>>2]|0))G=V;else{pa=1;break}}J=0-ma|0;do if(z){V=((v^1)&1)+x|0;if((V|0)>(ma|0)&(ma|0)>-5){qa=i+-1|0;ra=V+-1-ma|0}else{qa=i+-2|0;ra=V+-1|0}V=g&8;if(!V){if(pa?(A=f[G+-4>>2]|0,(A|0)!=0):0)if(!((A>>>0)%10|0)){w=0;Y=10;while(1){Y=Y*10|0;P=w+1|0;if((A>>>0)%(Y>>>0)|0|0){sa=P;break}else w=P}}else sa=0;else sa=9;w=((G-C>>2)*9|0)+-9|0;if((qa|32|0)==102){Y=w-sa|0;A=(Y|0)>0?Y:0;ta=qa;ua=(ra|0)<(A|0)?ra:A;va=0;break}else{A=w+ma-sa|0;w=(A|0)>0?A:0;ta=qa;ua=(ra|0)<(w|0)?ra:w;va=0;break}}else{ta=qa;ua=ra;va=V}}else{ta=i;ua=x;va=g&8}while(0);x=ua|va;C=(x|0)!=0&1;v=(ta|32|0)==102;if(v){wa=0;xa=(ma|0)>0?ma:0}else{z=(ma|0)<0?J:ma;w=Zb(z,((z|0)<0)<<31>>31,p)|0;z=p;if((z-w|0)<2){A=w;while(1){Y=A+-1|0;b[Y>>0]=48;if((z-Y|0)<2)A=Y;else{ya=Y;break}}}else ya=w;b[ya+-1>>0]=(ma>>31&2)+43;A=ya+-2|0;b[A>>0]=ta;wa=A;xa=z-A|0}A=r+1+ua+C+xa|0;ac(a,32,d,A,g);Ub(a,s,r);ac(a,48,d,A,g^65536);if(v){J=oa>>>0>E>>>0?E:oa;Y=m+9|0;Q=Y;W=m+8|0;P=J;do{K=Zb(f[P>>2]|0,0,Y)|0;if((P|0)==(J|0))if((K|0)==(Y|0)){b[W>>0]=48;za=W}else za=K;else if(K>>>0>m>>>0){_c(m|0,48,K-n|0)|0;y=K;while(1){Z=y+-1|0;if(Z>>>0>m>>>0)y=Z;else{za=Z;break}}}else za=K;Ub(a,za,Q-za|0);P=P+4|0}while(P>>>0<=E>>>0);if(x|0)Ub(a,27438,1);if(P>>>0>>0&(ua|0)>0){E=ua;Q=P;while(1){W=Zb(f[Q>>2]|0,0,Y)|0;if(W>>>0>m>>>0){_c(m|0,48,W-n|0)|0;J=W;while(1){v=J+-1|0;if(v>>>0>m>>>0)J=v;else{Aa=v;break}}}else Aa=W;Ub(a,Aa,(E|0)<9?E:9);Q=Q+4|0;J=E+-9|0;if(!(Q>>>0>>0&(E|0)>9)){Ba=J;break}else E=J}}else Ba=ua;ac(a,48,Ba+9|0,9,0)}else{E=pa?G:oa+4|0;if((ua|0)>-1){Q=m+9|0;Y=(va|0)==0;P=Q;x=0-n|0;J=m+8|0;K=ua;v=oa;while(1){C=Zb(f[v>>2]|0,0,Q)|0;if((C|0)==(Q|0)){b[J>>0]=48;Ca=J}else Ca=C;do if((v|0)==(oa|0)){C=Ca+1|0;Ub(a,Ca,1);if(Y&(K|0)<1){Da=C;break}Ub(a,27438,1);Da=C}else{if(Ca>>>0<=m>>>0){Da=Ca;break}_c(m|0,48,Ca+x|0)|0;C=Ca;while(1){z=C+-1|0;if(z>>>0>m>>>0)C=z;else{Da=z;break}}}while(0);W=P-Da|0;Ub(a,Da,(K|0)>(W|0)?W:K);C=K-W|0;v=v+4|0;if(!(v>>>0>>0&(C|0)>-1)){Ea=C;break}else K=C}}else Ea=ua;ac(a,48,Ea+18|0,18,0);Ub(a,wa,p-wa|0)}ac(a,32,d,A,g^8192);M=A}else{K=(i&32|0)!=0;E=r+3|0;ac(a,32,d,E,g&-65537);Ub(a,s,r);Ub(a,q!=q|0.0!=0.0?(K?27414:27418):K?27406:27410,3);ac(a,32,d,E,g^8192);M=E}while(0);u=j;return ((M|0)<(d|0)?d:M)|0}function dc(a){a=+a;var b=0;p[s>>3]=a;b=f[s>>2]|0;I=f[s+4>>2]|0;return b|0}function ec(a,b){a=+a;b=b|0;return +(+fc(a,b))}function fc(a,b){a=+a;b=b|0;var c=0,d=0,e=0,g=0.0,h=0.0,i=0,j=0.0;p[s>>3]=a;c=f[s>>2]|0;d=f[s+4>>2]|0;e=$c(c|0,d|0,52)|0;switch(e&2047){case 0:{if(a!=0.0){g=+fc(a*18446744073709551616.0,b);h=g;i=(f[b>>2]|0)+-64|0}else{h=a;i=0}f[b>>2]=i;j=h;break}case 2047:{j=a;break}default:{f[b>>2]=(e&2047)+-1022;f[s>>2]=c;f[s+4>>2]=d&-2146435073|1071644672;j=+p[s>>3]}}return +j}function gc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;do if(a){if(c>>>0<128){b[a>>0]=c;e=1;break}d=(hc()|0)+188|0;if(!(f[f[d>>2]>>2]|0))if((c&-128|0)==57216){b[a>>0]=c;e=1;break}else{d=Ib()|0;f[d>>2]=84;e=-1;break}if(c>>>0<2048){b[a>>0]=c>>>6|192;b[a+1>>0]=c&63|128;e=2;break}if(c>>>0<55296|(c&-8192|0)==57344){b[a>>0]=c>>>12|224;b[a+1>>0]=c>>>6&63|128;b[a+2>>0]=c&63|128;e=3;break}if((c+-65536|0)>>>0<1048576){b[a>>0]=c>>>18|240;b[a+1>>0]=c>>>12&63|128;b[a+2>>0]=c>>>6&63|128;b[a+3>>0]=c&63|128;e=4;break}else{d=Ib()|0;f[d>>2]=84;e=-1;break}}else e=1;while(0);return e|0}function hc(){return Kb()|0}function ic(){return Kb()|0}function jc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0;d=0;while(1){if((h[27440+d>>0]|0)==(a|0)){e=2;break}g=d+1|0;if((g|0)==87){i=27528;j=87;e=5;break}else d=g}if((e|0)==2)if(!d)k=27528;else{i=27528;j=d;e=5}if((e|0)==5)while(1){e=0;d=i;do{a=d;d=d+1|0}while((b[a>>0]|0)!=0);j=j+-1|0;if(!j){k=d;break}else{i=d;e=5}}return kc(k,f[c+20>>2]|0)|0}function kc(a,b){a=a|0;b=b|0;return lc(a,b)|0}function lc(a,b){a=a|0;b=b|0;var c=0;if(!b)c=0;else c=mc(f[b>>2]|0,f[b+4>>2]|0,a)|0;return (c|0?c:a)|0}function mc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=(f[a>>2]|0)+1794895138|0;g=nc(f[a+8>>2]|0,e)|0;h=nc(f[a+12>>2]|0,e)|0;i=nc(f[a+16>>2]|0,e)|0;a:do if((g>>>0>>2>>>0?(j=c-(g<<2)|0,h>>>0>>0&i>>>0>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=nc(f[a+(q<<2)>>2]|0,e)|0;s=nc(f[a+(q+1<<2)>>2]|0,e)|0;if(!(s>>>0>>0&r>>>0<(c-s|0)>>>0)){t=0;break a}if(b[a+(s+r)>>0]|0){t=0;break a}r=Ob(d,a+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}else{l=s?l:o;m=s?n:m-n|0}}m=p+k|0;l=nc(f[a+(m<<2)>>2]|0,e)|0;j=nc(f[a+(m+1<<2)>>2]|0,e)|0;if(j>>>0>>0&l>>>0<(c-j|0)>>>0)t=(b[a+(j+l)>>0]|0)==0?a+j|0:0;else t=0}else t=0;while(0);return t|0}function nc(a,b){a=a|0;b=b|0;var c=0;c=hd(a|0)|0;return ((b|0)==0?a:c)|0}function oc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=d+16|0;g=f[e>>2]|0;if(!g)if(!(pc(d)|0)){h=f[e>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=d+20|0;e=f[g>>2]|0;k=e;if((h-e|0)>>>0>>0){j=ya[f[d+36>>2]&3](d,a,c)|0;break}b:do if((b[d+75>>0]|0)>-1){e=c;while(1){if(!e){l=0;m=a;n=c;o=k;break b}p=e+-1|0;if((b[a+p>>0]|0)==10)break;else e=p}p=ya[f[d+36>>2]&3](d,a,e)|0;if(p>>>0>>0){j=p;break a}l=e;m=a+e|0;n=c-e|0;o=f[g>>2]|0}else{l=0;m=a;n=c;o=k}while(0);gd(o|0,m|0,n|0)|0;f[g>>2]=(f[g>>2]|0)+n;j=l+n|0}while(0);return j|0}function pc(a){a=a|0;var c=0,d=0,e=0;c=a+74|0;d=b[c>>0]|0;b[c>>0]=d+255|d;d=f[a>>2]|0;if(!(d&8)){f[a+8>>2]=0;f[a+4>>2]=0;c=f[a+44>>2]|0;f[a+28>>2]=c;f[a+20>>2]=c;f[a+16>>2]=c+(f[a+48>>2]|0);e=0}else{f[a>>2]=d|32;e=-1}return e|0}function qc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=u;u=u+208|0;g=e+8|0;h=e;i=X(c,b)|0;b=h;f[b>>2]=1;f[b+4>>2]=0;a:do if(i|0){b=0-c|0;f[g+4>>2]=c;f[g>>2]=c;j=2;k=c;l=c;while(1){m=k+c+l|0;f[g+(j<<2)>>2]=m;if(m>>>0>>0){n=l;j=j+1|0;l=m;k=n}else break}k=a+i+b|0;if(k>>>0>a>>>0){l=k;j=1;n=a;m=1;while(1){do if((m&3|0)!=3){o=j+-1|0;if((f[g+(o<<2)>>2]|0)>>>0<(l-n|0)>>>0)rc(n,c,d,j,g);else tc(n,c,d,h,j,0,g);if((j|0)==1){uc(h,1);p=0;break}else{uc(h,o);p=1;break}}else{rc(n,c,d,j,g);sc(h,2);p=j+2|0}while(0);o=f[h>>2]|1;f[h>>2]=o;q=n+c|0;if(q>>>0>>0){j=p;n=q;m=o}else{r=p;s=q;t=o;break}}}else{r=1;s=a;t=1}tc(s,c,d,h,r,0,g);m=h+4|0;n=s;j=r;k=t;while(1){if((j|0)==1&(k|0)==1){if(!(f[m>>2]|0))break a}else if((j|0)>=2){uc(h,2);l=j+-2|0;f[h>>2]=f[h>>2]^7;sc(h,1);tc(n+(0-(f[g+(l<<2)>>2]|0))+b|0,c,d,h,j+-1|0,1,g);uc(h,1);o=f[h>>2]|1;f[h>>2]=o;q=n+b|0;tc(q,c,d,h,l,1,g);n=q;j=l;k=o;continue}o=vc(h)|0;sc(h,o);n=n+b|0;j=o+j|0;k=f[h>>2]|0}}while(0);u=e;return}function rc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;g=u;u=u+240|0;h=g;f[h>>2]=a;a:do if((d|0)>1){i=0-b|0;j=a;k=d;l=1;m=a;while(1){n=j+i|0;o=k+-2|0;p=n+(0-(f[e+(o<<2)>>2]|0))|0;if((za[c&1](m,p)|0)>-1?(za[c&1](m,n)|0)>-1:0){q=l;break a}r=l+1|0;s=h+(l<<2)|0;if((za[c&1](p,n)|0)>-1){f[s>>2]=p;t=p;v=k+-1|0}else{f[s>>2]=n;t=n;v=o}if((v|0)<=1){q=r;break a}j=t;k=v;l=r;m=f[h>>2]|0}}else q=1;while(0);xc(b,h,q);u=g;return}function sc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=a+4|0;if(b>>>0>31){d=f[c>>2]|0;f[a>>2]=d;f[c>>2]=0;e=b+-32|0;g=0;h=d}else{e=b;g=f[c>>2]|0;h=f[a>>2]|0}f[a>>2]=g<<32-e|h>>>e;f[c>>2]=g>>>e;return}function tc(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;i=u;u=u+240|0;j=i+232|0;k=i;l=f[d>>2]|0;f[j>>2]=l;m=f[d+4>>2]|0;d=j+4|0;f[d>>2]=m;f[k>>2]=a;a:do if((l|0)!=1|(m|0)!=0?(n=0-b|0,o=a+(0-(f[h+(e<<2)>>2]|0))|0,(za[c&1](o,a)|0)>=1):0){p=1;q=e;r=(g|0)==0;s=a;t=o;while(1){if(r&(q|0)>1){o=s+n|0;v=f[h+(q+-2<<2)>>2]|0;if((za[c&1](o,t)|0)>-1){w=p;x=q;y=s;z=10;break a}if((za[c&1](o+(0-v)|0,t)|0)>-1){w=p;x=q;y=s;z=10;break a}}v=p+1|0;f[k+(p<<2)>>2]=t;o=vc(j)|0;sc(j,o);A=o+q|0;if(!((f[j>>2]|0)!=1|(f[d>>2]|0)!=0)){w=v;x=A;y=t;z=10;break a}o=t+(0-(f[h+(A<<2)>>2]|0))|0;if((za[c&1](o,f[k>>2]|0)|0)<1){B=t;C=v;D=A;E=0;z=9;break}else{F=t;p=v;q=A;r=1;t=o;s=F}}}else{B=a;C=1;D=e;E=g;z=9}while(0);if((z|0)==9?(E|0)==0:0){w=C;x=D;y=B;z=10}if((z|0)==10){xc(b,k,w);rc(y,b,c,x,h)}u=i;return}function uc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=a+4|0;if(b>>>0>31){d=f[a>>2]|0;f[c>>2]=d;f[a>>2]=0;e=b+-32|0;g=0;h=d}else{e=b;g=f[a>>2]|0;h=f[c>>2]|0}f[c>>2]=g>>>(32-e|0)|h<>2]=g<>2]|0)+-1|0)|0;if(!b){c=wc(f[a+4>>2]|0)|0;return ((c|0)==0?0:c+32|0)|0}else return b|0;return 0}function wc(a){a=a|0;var b=0,c=0,d=0;if(a)if(!(a&1)){b=a;a=0;while(1){c=a+1|0;b=b>>>1;if(b&1|0){d=c;break}else a=c}}else d=0;else d=32;return d|0}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=u;u=u+256|0;e=d;a:do if((c|0)>=2?(g=b+(c<<2)|0,f[g>>2]=e,a|0):0){h=a;i=e;while(1){j=h>>>0<256?h:256;gd(i|0,f[b>>2]|0,j|0)|0;k=0;do{l=b+(k<<2)|0;k=k+1|0;gd(f[l>>2]|0,f[b+(k<<2)>>2]|0,j|0)|0;f[l>>2]=(f[l>>2]|0)+j}while((k|0)!=(c|0));k=h-j|0;if(!k)break a;h=k;i=f[g>>2]|0}}while(0);u=d;return}function yc(a,b){a=+a;b=b|0;var c=0.0,d=0,e=0,g=0,h=0.0,i=0;if((b|0)<=1023)if((b|0)<-1022){c=a*2.2250738585072014e-308;d=b+1022|0;e=(d|0)<-1022;g=b+2044|0;h=e?c*2.2250738585072014e-308:c;i=e?((g|0)>-1022?g:-1022):d}else{h=a;i=b}else{c=a*8988465674311579538646525.0e283;d=b+-1023|0;g=(d|0)>1023;e=b+-2046|0;h=g?c*8988465674311579538646525.0e283:c;i=g?((e|0)<1023?e:1023):d}d=ad(i+1023|0,0,52)|0;i=I;f[s>>2]=d;f[s+4>>2]=i;return +(h*+p[s>>3])}function zc(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a;a:do if(!(c&3)){d=a;e=4}else{g=a;h=c;while(1){if(!(b[g>>0]|0)){i=h;break a}j=g+1|0;h=j;if(!(h&3)){d=j;e=4;break}else g=j}}while(0);if((e|0)==4){e=d;while(1){k=f[e>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))e=e+4|0;else break}if(!((k&255)<<24>>24))l=e;else{k=e;while(1){e=k+1|0;if(!(b[e>>0]|0)){l=e;break}else k=e}}i=l}return i-c|0}function Ac(a,c){a=a|0;c=c|0;var d=0;d=Bc(a,c)|0;return ((b[d>>0]|0)==(c&255)<<24>>24?d:0)|0}function Bc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=c&255;a:do if(!d)e=a+(zc(a)|0)|0;else{if(!(a&3))g=a;else{h=c&255;i=a;while(1){j=b[i>>0]|0;if(j<<24>>24==0?1:j<<24>>24==h<<24>>24){e=i;break a}j=i+1|0;if(!(j&3)){g=j;break}else i=j}}i=X(d,16843009)|0;h=f[g>>2]|0;b:do if(!((h&-2139062144^-2139062144)&h+-16843009)){j=g;k=h;while(1){l=k^i;if((l&-2139062144^-2139062144)&l+-16843009|0){m=j;break b}l=j+4|0;k=f[l>>2]|0;if((k&-2139062144^-2139062144)&k+-16843009|0){m=l;break}else j=l}}else m=g;while(0);i=c&255;h=m;while(1){j=b[h>>0]|0;if(j<<24>>24==0?1:j<<24>>24==i<<24>>24){e=h;break}else h=h+1|0}}while(0);return e|0}function Cc(a,b){a=a|0;b=b|0;Dc(a,b)|0;return a|0}function Dc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=c;a:do if(!((d^a)&3)){if(!(d&3)){e=c;g=a}else{h=c;i=a;while(1){j=b[h>>0]|0;b[i>>0]=j;if(!(j<<24>>24)){k=i;break a}j=h+1|0;l=i+1|0;if(!(j&3)){e=j;g=l;break}else{h=j;i=l}}}i=f[e>>2]|0;if(!((i&-2139062144^-2139062144)&i+-16843009)){h=g;l=e;j=i;while(1){i=l+4|0;m=h+4|0;f[h>>2]=j;j=f[i>>2]|0;if((j&-2139062144^-2139062144)&j+-16843009|0){n=i;o=m;break}else{h=m;l=i}}}else{n=e;o=g}p=n;q=o;r=8}else{p=c;q=a;r=8}while(0);if((r|0)==8){r=b[p>>0]|0;b[q>>0]=r;if(!(r<<24>>24))k=q;else{r=q;q=p;while(1){q=q+1|0;p=r+1|0;a=b[q>>0]|0;b[p>>0]=a;if(!(a<<24>>24)){k=p;break}else r=p}}}return k|0}function Ec(a,b){a=+a;b=b|0;return +(+yc(a,b))}function Fc(a){a=+a;var b=0,c=0,d=0,e=0.0,g=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,q=0.0,r=0.0,t=0.0;p[s>>3]=a;b=f[s>>2]|0;c=f[s+4>>2]|0;d=(c|0)<0;do if(d|c>>>0<1048576){if((b|0)==0&(c&2147483647|0)==0){e=-1.0/(a*a);break}if(d){e=(a-a)/0.0;break}else{p[s>>3]=a*18014398509481984.0;g=f[s+4>>2]|0;h=-1077;i=g;j=f[s>>2]|0;k=g;l=9;break}}else if(c>>>0<=2146435071)if((b|0)==0&0==0&(c|0)==1072693248)e=0.0;else{h=-1023;i=c;j=b;k=c;l=9}else e=a;while(0);if((l|0)==9){l=i+614242|0;f[s>>2]=j;f[s+4>>2]=(l&1048575)+1072079006;a=+p[s>>3]+-1.0;m=a*(a*.5);n=a/(a+2.0);o=n*n;q=o*o;p[s>>3]=a-m;j=f[s+4>>2]|0;f[s>>2]=0;f[s+4>>2]=j;r=+p[s>>3];t=a-r-m+n*(m+(q*(q*(q*.15313837699209373+.22222198432149784)+.3999999999940942)+o*(q*(q*(q*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));q=r*.4342944818781689;o=+(h+(l>>>20)|0);m=o*.30102999566361177;n=m+q;e=n+(q+(m-n)+(t*.4342944818781689+(o*3.694239077158931e-13+(r+t)*2.5082946711645275e-11)))}return +e}function Gc(a,b){a=a|0;b=b|0;var c=0;c=zc(a)|0;return ((Hc(a,1,c,b)|0)!=(c|0))<<31>>31|0}function Hc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=X(c,b)|0;g=(b|0)==0?0:c;if((f[d+76>>2]|0)>-1){c=(Sb(d)|0)==0;h=oc(a,e,d)|0;if(c)i=h;else{Tb(d);i=h}}else i=oc(a,e,d)|0;if((i|0)==(e|0))j=g;else j=(i>>>0)/(b>>>0)|0;return j|0}function Ic(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;d=u;u=u+16|0;e=d;g=c&255;b[e>>0]=g;i=a+16|0;j=f[i>>2]|0;if(!j)if(!(pc(a)|0)){k=f[i>>2]|0;l=4}else m=-1;else{k=j;l=4}do if((l|0)==4){j=a+20|0;i=f[j>>2]|0;if(i>>>0>>0?(n=c&255,(n|0)!=(b[a+75>>0]|0)):0){f[j>>2]=i+1;b[i>>0]=g;m=n;break}if((ya[f[a+36>>2]&3](a,e,1)|0)==1)m=h[e>>0]|0;else m=-1}while(0);u=d;return m|0}function Jc(){ja(29400);return 29408}function Kc(){ra(29400);return}function Lc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;do if(a){if((f[a+76>>2]|0)<=-1){b=Mc(a)|0;break}c=(Sb(a)|0)==0;d=Mc(a)|0;if(c)b=d;else{Tb(a);b=d}}else{if(!(f[6321]|0))e=0;else e=Lc(f[6321]|0)|0;d=Jc()|0;c=f[d>>2]|0;if(!c)g=e;else{d=c;c=e;while(1){if((f[d+76>>2]|0)>-1)h=Sb(d)|0;else h=0;if((f[d+20>>2]|0)>>>0>(f[d+28>>2]|0)>>>0)i=Mc(d)|0|c;else i=c;if(h|0)Tb(d);d=f[d+56>>2]|0;if(!d){g=i;break}else c=i}}Kc();b=g}while(0);return b|0}function Mc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=a+20|0;c=a+28|0;if((f[b>>2]|0)>>>0>(f[c>>2]|0)>>>0?(ya[f[a+36>>2]&3](a,0,0)|0,(f[b>>2]|0)==0):0)d=-1;else{e=a+4|0;g=f[e>>2]|0;h=a+8|0;i=f[h>>2]|0;if(g>>>0>>0)ya[f[a+40>>2]&3](a,g-i|0,1)|0;f[a+16>>2]=0;f[c>>2]=0;f[b>>2]=0;f[h>>2]=0;f[e>>2]=0;d=0}return d|0}function Nc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;d=b[c>>0]|0;do if(d<<24>>24){e=Ac(a,d<<24>>24)|0;if(e)if(b[c+1>>0]|0)if(b[e+1>>0]|0){if(!(b[c+2>>0]|0)){f=Oc(e,c)|0;break}if(b[e+2>>0]|0){if(!(b[c+3>>0]|0)){f=Pc(e,c)|0;break}if(b[e+3>>0]|0)if(!(b[c+4>>0]|0)){f=Qc(e,c)|0;break}else{f=Rc(e,c)|0;break}else f=0}else f=0}else f=0;else f=e;else f=0}else f=a;while(0);return f|0}function Oc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=(h[c>>0]|0)<<8|(h[c+1>>0]|0);c=h[a>>0]|0;e=a;while(1){a=e+1|0;f=b[a>>0]|0;if(!(f<<24>>24)){g=0;break}c=f&255|c<<8&65280;if((c|0)==(d|0)){g=e;break}else e=a}return g|0}function Pc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,i=0,j=0;d=(h[c+1>>0]|0)<<16|(h[c>>0]|0)<<24|(h[c+2>>0]|0)<<8;c=a+2|0;e=b[c>>0]|0;f=(h[a+1>>0]|0)<<16|(h[a>>0]|0)<<24|(e&255)<<8;a=e<<24>>24!=0;if((f|0)==(d|0)|a^1){g=c;i=a}else{a=c;c=f;while(1){f=a+1|0;e=b[f>>0]|0;c=(e&255|c)<<8;j=e<<24>>24!=0;if((c|0)==(d|0)|j^1){g=f;i=j;break}else a=f}}return (i?g+-2|0:0)|0}function Qc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,i=0,j=0;d=(h[c+1>>0]|0)<<16|(h[c>>0]|0)<<24|(h[c+2>>0]|0)<<8|(h[c+3>>0]|0);c=a+3|0;e=b[c>>0]|0;f=e&255|((h[a+1>>0]|0)<<16|(h[a>>0]|0)<<24|(h[a+2>>0]|0)<<8);a=e<<24>>24!=0;if((f|0)==(d|0)|a^1){g=a;i=c}else{a=c;c=f;while(1){f=a+1|0;e=b[f>>0]|0;c=e&255|c<<8;j=e<<24>>24!=0;if((c|0)==(d|0)|j^1){g=j;i=f;break}else a=f}}return (g?i+-3|0:0)|0}function Rc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;d=u;u=u+1056|0;e=d+1024|0;g=d;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;f[e+20>>2]=0;f[e+24>>2]=0;f[e+28>>2]=0;h=b[c>>0]|0;a:do if(h<<24>>24){i=0;j=h;k=h&255;while(1){if(!(b[a+i>>0]|0)){l=0;break a}m=e+(((j&255)>>>5&255)<<2)|0;f[m>>2]=f[m>>2]|1<<(j&31);i=i+1|0;f[g+(k<<2)>>2]=i;m=b[c+i>>0]|0;if(!(m<<24>>24))break;else{j=m;k=m&255}}k=i>>>0>1;if(k){j=0;m=-1;n=1;b:while(1){o=1;p=j;q=n;while(1){r=p;s=q;c:while(1){t=1;v=s;while(1){w=b[c+(t+m)>>0]|0;x=b[c+v>>0]|0;if(w<<24>>24!=x<<24>>24)break c;if((t|0)==(o|0))break;t=t+1|0;y=t+r|0;if(y>>>0>=i>>>0){z=o;A=m;break b}else v=y}t=o+r|0;s=t+1|0;if(s>>>0>=i>>>0){z=o;A=m;break b}else r=t}s=v-m|0;if((w&255)<=(x&255))break;q=v+1|0;if(q>>>0>=i>>>0){z=s;A=m;break b}else{o=s;p=v}}n=r+2|0;if(n>>>0>=i>>>0){z=1;A=r;break}else{j=r+1|0;m=r}}if(k){m=0;j=-1;n=1;while(1){p=1;o=m;q=n;while(1){B=o;s=q;d:while(1){t=1;C=s;while(1){D=b[c+(t+j)>>0]|0;E=b[c+C>>0]|0;if(D<<24>>24!=E<<24>>24)break d;if((t|0)==(p|0))break;t=t+1|0;y=t+B|0;if(y>>>0>=i>>>0){F=z;G=A;H=i;I=p;J=j;K=27;break a}else C=y}t=p+B|0;s=t+1|0;if(s>>>0>=i>>>0){F=z;G=A;H=i;I=p;J=j;K=27;break a}else B=t}s=C-j|0;if((D&255)>=(E&255))break;q=C+1|0;if(q>>>0>=i>>>0){F=z;G=A;H=i;I=s;J=j;K=27;break a}else{p=s;o=C}}n=B+2|0;if(n>>>0>=i>>>0){F=z;G=A;H=i;I=1;J=B;K=27;break}else{m=B+1|0;j=B}}}else{F=z;G=A;H=i;I=1;J=-1;K=27}}else{F=1;G=-1;H=i;I=1;J=-1;K=27}}else{F=1;G=-1;H=0;I=1;J=-1;K=27}while(0);e:do if((K|0)==27){A=(J+1|0)>>>0>(G+1|0)>>>0;z=A?I:F;B=A?J:G;A=B+1|0;if(!(Pb(c,c+z|0,A)|0)){L=H-z|0;M=z}else{z=H-B+-1|0;L=0;M=(B>>>0>z>>>0?B:z)+1|0}z=H|63;C=H+-1|0;E=(L|0)!=0;D=H-M|0;r=a;v=0;x=a;while(1){w=r;do if((x-w|0)>>>0>>0){h=$b(x,0,z)|0;if(h)if((h-w|0)>>>0>>0){l=0;break e}else{N=h;break}else{N=x+z|0;break}}else N=x;while(0);w=b[r+C>>0]|0;f:do if(!(1<<(w&31)&f[e+(((w&255)>>>5&255)<<2)>>2])){O=0;P=H}else{h=H-(f[g+((w&255)<<2)>>2]|0)|0;if(h|0){O=0;P=E&(v|0)!=0&h>>>0>>0?D:h;break}h=A>>>0>v>>>0?A:v;j=b[c+h>>0]|0;g:do if(!(j<<24>>24))Q=A;else{m=h;n=j;while(1){if(n<<24>>24!=(b[r+m>>0]|0))break;k=m+1|0;n=b[c+k>>0]|0;if(!(n<<24>>24)){Q=A;break g}else m=k}O=0;P=m-B|0;break f}while(0);while(1){if(Q>>>0<=v>>>0){l=r;break e}Q=Q+-1|0;if((b[c+Q>>0]|0)!=(b[r+Q>>0]|0)){O=L;P=M;break}}}while(0);r=r+P|0;v=O;x=N}}while(0);u=d;return l|0}function Sc(a,b){a=a|0;b=b|0;var c=0,d=0;c=u;u=u+16|0;d=c;f[d>>2]=b;b=Qb(f[6289]|0,a,d)|0;u=c;return b|0}function Tc(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;c=f[6289]|0;if((f[c+76>>2]|0)>-1)d=Sb(c)|0;else d=0;do if((Gc(a,c)|0)<0)e=1;else{if((b[c+75>>0]|0)!=10?(g=c+20|0,h=f[g>>2]|0,h>>>0<(f[c+16>>2]|0)>>>0):0){f[g>>2]=h+1;b[h>>0]=10;e=0;break}e=(Ic(c,10)|0)<0}while(0);if(d|0)Tb(c);return e<<31>>31|0}function Uc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a;while(1){d=b[c>>0]|0;e=d<<24>>24;f=c+1|0;if(!(Nb(e)|0))break;else c=f}switch(e|0){case 45:{g=1;h=5;break}case 43:{g=0;h=5;break}default:{i=0;j=c;k=d}}if((h|0)==5){i=g;j=f;k=b[f>>0]|0}f=(k<<24>>24)+-48|0;if(f>>>0<10){k=0;g=j;j=f;while(1){g=g+1|0;f=(k*10|0)-j|0;j=(b[g>>0]|0)+-48|0;if(j>>>0>=10){l=f;break}else k=f}}else l=0;return (i|0?l:0-l|0)|0}function Vc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0;b=u;u=u+16|0;c=b;do if(a>>>0<245){d=a>>>0<11?16:a+11&-8;e=d>>>3;g=f[7353]|0;h=g>>>e;if(h&3|0){i=(h&1^1)+e|0;j=29452+(i<<1<<2)|0;k=j+8|0;l=f[k>>2]|0;m=l+8|0;n=f[m>>2]|0;do if((j|0)!=(n|0)){if(n>>>0<(f[7357]|0)>>>0)la();o=n+12|0;if((f[o>>2]|0)==(l|0)){f[o>>2]=j;f[k>>2]=n;break}else la()}else f[7353]=g&~(1<>2]=n|3;k=l+n+4|0;f[k>>2]=f[k>>2]|1;p=m;u=b;return p|0}k=f[7355]|0;if(d>>>0>k>>>0){if(h|0){n=2<>>12&16;o=n>>>j;n=o>>>5&8;q=o>>>n;o=q>>>2&4;r=q>>>o;q=r>>>1&2;s=r>>>q;r=s>>>1&1;t=(n|j|o|q|r)+(s>>>r)|0;r=29452+(t<<1<<2)|0;s=r+8|0;q=f[s>>2]|0;o=q+8|0;j=f[o>>2]|0;do if((r|0)!=(j|0)){if(j>>>0<(f[7357]|0)>>>0)la();n=j+12|0;if((f[n>>2]|0)==(q|0)){f[n>>2]=r;f[s>>2]=j;v=g;break}else la()}else{n=g&~(1<>2]=d|3;s=q+d|0;f[s+4>>2]=j|1;f[s+j>>2]=j;if(k|0){r=f[7358]|0;e=k>>>3;h=29452+(e<<1<<2)|0;m=1<>2]|0;if(l>>>0<(f[7357]|0)>>>0)la();else{w=l;x=e}}else{f[7353]=v|m;w=h;x=h+8|0}f[x>>2]=r;f[w+12>>2]=r;f[r+8>>2]=w;f[r+12>>2]=h}f[7355]=j;f[7358]=s;p=o;u=b;return p|0}s=f[7354]|0;if(s){j=(s&0-s)+-1|0;h=j>>>12&16;r=j>>>h;j=r>>>5&8;m=r>>>j;r=m>>>2&4;e=m>>>r;m=e>>>1&2;l=e>>>m;e=l>>>1&1;i=f[29716+((j|h|r|m|e)+(l>>>e)<<2)>>2]|0;e=(f[i+4>>2]&-8)-d|0;l=f[i+16+(((f[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!l){y=i;z=e}else{m=i;i=e;e=l;while(1){l=(f[e+4>>2]&-8)-d|0;r=l>>>0>>0;h=r?l:i;l=r?e:m;e=f[e+16+(((f[e+16>>2]|0)==0&1)<<2)>>2]|0;if(!e){y=l;z=h;break}else{m=l;i=h}}}i=f[7357]|0;if(y>>>0>>0)la();m=y+d|0;if(y>>>0>=m>>>0)la();e=f[y+24>>2]|0;o=f[y+12>>2]|0;do if((o|0)==(y|0)){q=y+20|0;t=f[q>>2]|0;if(!t){h=y+16|0;l=f[h>>2]|0;if(!l){A=0;break}else{B=l;C=h}}else{B=t;C=q}while(1){q=B+20|0;t=f[q>>2]|0;if(t|0){B=t;C=q;continue}q=B+16|0;t=f[q>>2]|0;if(!t)break;else{B=t;C=q}}if(C>>>0>>0)la();else{f[C>>2]=0;A=B;break}}else{q=f[y+8>>2]|0;if(q>>>0>>0)la();t=q+12|0;if((f[t>>2]|0)!=(y|0))la();h=o+8|0;if((f[h>>2]|0)==(y|0)){f[t>>2]=o;f[h>>2]=q;A=o;break}else la()}while(0);a:do if(e|0){o=f[y+28>>2]|0;i=29716+(o<<2)|0;do if((y|0)==(f[i>>2]|0)){f[i>>2]=A;if(!A){f[7354]=s&~(1<>>0>=(f[7357]|0)>>>0){f[e+16+(((f[e+16>>2]|0)!=(y|0)&1)<<2)>>2]=A;if(!A)break a;else break}else la();while(0);o=f[7357]|0;if(A>>>0>>0)la();f[A+24>>2]=e;i=f[y+16>>2]|0;do if(i|0)if(i>>>0>>0)la();else{f[A+16>>2]=i;f[i+24>>2]=A;break}while(0);i=f[y+20>>2]|0;if(i|0)if(i>>>0<(f[7357]|0)>>>0)la();else{f[A+20>>2]=i;f[i+24>>2]=A;break}}while(0);if(z>>>0<16){e=z+d|0;f[y+4>>2]=e|3;s=y+e+4|0;f[s>>2]=f[s>>2]|1}else{f[y+4>>2]=d|3;f[m+4>>2]=z|1;f[m+z>>2]=z;if(k|0){s=f[7358]|0;e=k>>>3;i=29452+(e<<1<<2)|0;o=1<>2]|0;if(q>>>0<(f[7357]|0)>>>0)la();else{D=q;E=e}}else{f[7353]=g|o;D=i;E=i+8|0}f[E>>2]=s;f[D+12>>2]=s;f[s+8>>2]=D;f[s+12>>2]=i}f[7355]=z;f[7358]=m}p=y+8|0;u=b;return p|0}else F=d}else F=d}else if(a>>>0<=4294967231){i=a+11|0;s=i&-8;o=f[7354]|0;if(o){e=0-s|0;q=i>>>8;if(q)if(s>>>0>16777215)G=31;else{i=(q+1048320|0)>>>16&8;h=q<>>16&4;t=h<>>16&2;l=14-(q|i|h)+(t<>>15)|0;G=s>>>(l+7|0)&1|l<<1}else G=0;l=f[29716+(G<<2)>>2]|0;b:do if(!l){H=0;I=0;J=e;K=81}else{h=0;t=e;i=l;q=s<<((G|0)==31?0:25-(G>>>1)|0);r=0;while(1){j=(f[i+4>>2]&-8)-s|0;if(j>>>0>>0)if(!j){L=i;M=0;N=i;K=85;break b}else{O=i;P=j}else{O=h;P=t}j=f[i+20>>2]|0;i=f[i+16+(q>>>31<<2)>>2]|0;n=(j|0)==0|(j|0)==(i|0)?r:j;j=(i|0)==0;if(j){H=n;I=O;J=P;K=81;break}else{h=O;t=P;q=q<<((j^1)&1);r=n}}}while(0);if((K|0)==81){if((H|0)==0&(I|0)==0){l=2<>>12&16;d=l>>>e;l=d>>>5&8;m=d>>>l;d=m>>>2&4;g=m>>>d;m=g>>>1&2;k=g>>>m;g=k>>>1&1;Q=0;R=f[29716+((l|e|d|m|g)+(k>>>g)<<2)>>2]|0}else{Q=I;R=H}if(!R){S=Q;T=J}else{L=Q;M=J;N=R;K=85}}if((K|0)==85)while(1){K=0;g=(f[N+4>>2]&-8)-s|0;k=g>>>0>>0;m=k?g:M;g=k?N:L;N=f[N+16+(((f[N+16>>2]|0)==0&1)<<2)>>2]|0;if(!N){S=g;T=m;break}else{L=g;M=m;K=85}}if((S|0)!=0?T>>>0<((f[7355]|0)-s|0)>>>0:0){m=f[7357]|0;if(S>>>0>>0)la();g=S+s|0;if(S>>>0>=g>>>0)la();k=f[S+24>>2]|0;d=f[S+12>>2]|0;do if((d|0)==(S|0)){e=S+20|0;l=f[e>>2]|0;if(!l){r=S+16|0;q=f[r>>2]|0;if(!q){U=0;break}else{V=q;W=r}}else{V=l;W=e}while(1){e=V+20|0;l=f[e>>2]|0;if(l|0){V=l;W=e;continue}e=V+16|0;l=f[e>>2]|0;if(!l)break;else{V=l;W=e}}if(W>>>0>>0)la();else{f[W>>2]=0;U=V;break}}else{e=f[S+8>>2]|0;if(e>>>0>>0)la();l=e+12|0;if((f[l>>2]|0)!=(S|0))la();r=d+8|0;if((f[r>>2]|0)==(S|0)){f[l>>2]=d;f[r>>2]=e;U=d;break}else la()}while(0);c:do if(k){d=f[S+28>>2]|0;m=29716+(d<<2)|0;do if((S|0)==(f[m>>2]|0)){f[m>>2]=U;if(!U){e=o&~(1<>>0>=(f[7357]|0)>>>0){f[k+16+(((f[k+16>>2]|0)!=(S|0)&1)<<2)>>2]=U;if(!U){X=o;break c}else break}else la();while(0);d=f[7357]|0;if(U>>>0>>0)la();f[U+24>>2]=k;m=f[S+16>>2]|0;do if(m|0)if(m>>>0>>0)la();else{f[U+16>>2]=m;f[m+24>>2]=U;break}while(0);m=f[S+20>>2]|0;if(m)if(m>>>0<(f[7357]|0)>>>0)la();else{f[U+20>>2]=m;f[m+24>>2]=U;X=o;break}else X=o}else X=o;while(0);do if(T>>>0>=16){f[S+4>>2]=s|3;f[g+4>>2]=T|1;f[g+T>>2]=T;o=T>>>3;if(T>>>0<256){k=29452+(o<<1<<2)|0;m=f[7353]|0;d=1<>2]|0;if(e>>>0<(f[7357]|0)>>>0)la();else{Y=e;Z=o}}else{f[7353]=m|d;Y=k;Z=k+8|0}f[Z>>2]=g;f[Y+12>>2]=g;f[g+8>>2]=Y;f[g+12>>2]=k;break}k=T>>>8;if(k)if(T>>>0>16777215)_=31;else{d=(k+1048320|0)>>>16&8;m=k<>>16&4;o=m<>>16&2;e=14-(k|d|m)+(o<>>15)|0;_=T>>>(e+7|0)&1|e<<1}else _=0;e=29716+(_<<2)|0;f[g+28>>2]=_;m=g+16|0;f[m+4>>2]=0;f[m>>2]=0;m=1<<_;if(!(X&m)){f[7354]=X|m;f[e>>2]=g;f[g+24>>2]=e;f[g+12>>2]=g;f[g+8>>2]=g;break}m=T<<((_|0)==31?0:25-(_>>>1)|0);o=f[e>>2]|0;while(1){if((f[o+4>>2]&-8|0)==(T|0)){K=139;break}$=o+16+(m>>>31<<2)|0;e=f[$>>2]|0;if(!e){K=136;break}else{m=m<<1;o=e}}if((K|0)==136)if($>>>0<(f[7357]|0)>>>0)la();else{f[$>>2]=g;f[g+24>>2]=o;f[g+12>>2]=g;f[g+8>>2]=g;break}else if((K|0)==139){m=o+8|0;e=f[m>>2]|0;d=f[7357]|0;if(e>>>0>=d>>>0&o>>>0>=d>>>0){f[e+12>>2]=g;f[m>>2]=g;f[g+8>>2]=e;f[g+12>>2]=o;f[g+24>>2]=0;break}else la()}}else{e=T+s|0;f[S+4>>2]=e|3;m=S+e+4|0;f[m>>2]=f[m>>2]|1}while(0);p=S+8|0;u=b;return p|0}else F=s}else F=s}else F=-1;while(0);S=f[7355]|0;if(S>>>0>=F>>>0){T=S-F|0;$=f[7358]|0;if(T>>>0>15){_=$+F|0;f[7358]=_;f[7355]=T;f[_+4>>2]=T|1;f[_+T>>2]=T;f[$+4>>2]=F|3}else{f[7355]=0;f[7358]=0;f[$+4>>2]=S|3;T=$+S+4|0;f[T>>2]=f[T>>2]|1}p=$+8|0;u=b;return p|0}$=f[7356]|0;if($>>>0>F>>>0){T=$-F|0;f[7356]=T;S=f[7359]|0;_=S+F|0;f[7359]=_;f[_+4>>2]=T|1;f[S+4>>2]=F|3;p=S+8|0;u=b;return p|0}if(!(f[7471]|0)){f[7473]=4096;f[7472]=4096;f[7474]=-1;f[7475]=-1;f[7476]=0;f[7464]=0;S=c&-16^1431655768;f[c>>2]=S;f[7471]=S;aa=4096}else aa=f[7473]|0;S=F+48|0;c=F+47|0;T=aa+c|0;_=0-aa|0;aa=T&_;if(aa>>>0<=F>>>0){p=0;u=b;return p|0}X=f[7463]|0;if(X|0?(Y=f[7461]|0,Z=Y+aa|0,Z>>>0<=Y>>>0|Z>>>0>X>>>0):0){p=0;u=b;return p|0}d:do if(!(f[7464]&4)){X=f[7359]|0;e:do if(X){Z=29860;while(1){Y=f[Z>>2]|0;if(Y>>>0<=X>>>0?(ba=Z+4|0,(Y+(f[ba>>2]|0)|0)>>>0>X>>>0):0)break;Y=f[Z+8>>2]|0;if(!Y){K=163;break e}else Z=Y}o=T-$&_;if(o>>>0<2147483647){Y=ed(o|0)|0;if((Y|0)==((f[Z>>2]|0)+(f[ba>>2]|0)|0))if((Y|0)==(-1|0))ca=o;else{da=o;ea=Y;K=180;break d}else{fa=Y;ga=o;K=171}}else ca=0}else K=163;while(0);do if((K|0)==163){X=ed(0)|0;if((X|0)!=(-1|0)?(s=X,o=f[7472]|0,Y=o+-1|0,U=((Y&s|0)==0?0:(Y+s&0-o)-s|0)+aa|0,s=f[7461]|0,o=U+s|0,U>>>0>F>>>0&U>>>0<2147483647):0){Y=f[7463]|0;if(Y|0?o>>>0<=s>>>0|o>>>0>Y>>>0:0){ca=0;break}Y=ed(U|0)|0;if((Y|0)==(X|0)){da=U;ea=X;K=180;break d}else{fa=Y;ga=U;K=171}}else ca=0}while(0);do if((K|0)==171){U=0-ga|0;if(!(S>>>0>ga>>>0&(ga>>>0<2147483647&(fa|0)!=(-1|0))))if((fa|0)==(-1|0)){ca=0;break}else{da=ga;ea=fa;K=180;break d}Y=f[7473]|0;X=c-ga+Y&0-Y;if(X>>>0>=2147483647){da=ga;ea=fa;K=180;break d}if((ed(X|0)|0)==(-1|0)){ed(U|0)|0;ca=0;break}else{da=X+ga|0;ea=fa;K=180;break d}}while(0);f[7464]=f[7464]|4;ha=ca;K=178}else{ha=0;K=178}while(0);if(((K|0)==178?aa>>>0<2147483647:0)?(ca=ed(aa|0)|0,aa=ed(0)|0,fa=aa-ca|0,ga=fa>>>0>(F+40|0)>>>0,!((ca|0)==(-1|0)|ga^1|ca>>>0>>0&((ca|0)!=(-1|0)&(aa|0)!=(-1|0))^1)):0){da=ga?fa:ha;ea=ca;K=180}if((K|0)==180){ca=(f[7461]|0)+da|0;f[7461]=ca;if(ca>>>0>(f[7462]|0)>>>0)f[7462]=ca;ca=f[7359]|0;do if(ca){ha=29860;while(1){ia=f[ha>>2]|0;ja=ha+4|0;ka=f[ja>>2]|0;if((ea|0)==(ia+ka|0)){K=190;break}fa=f[ha+8>>2]|0;if(!fa)break;else ha=fa}if(((K|0)==190?(f[ha+12>>2]&8|0)==0:0)?ca>>>0>>0&ca>>>0>=ia>>>0:0){f[ja>>2]=ka+da;fa=ca+8|0;ga=(fa&7|0)==0?0:0-fa&7;fa=ca+ga|0;aa=(f[7356]|0)+(da-ga)|0;f[7359]=fa;f[7356]=aa;f[fa+4>>2]=aa|1;f[fa+aa+4>>2]=40;f[7360]=f[7475];break}aa=f[7357]|0;if(ea>>>0>>0){f[7357]=ea;ma=ea}else ma=aa;aa=ea+da|0;fa=29860;while(1){if((f[fa>>2]|0)==(aa|0)){K=198;break}ga=f[fa+8>>2]|0;if(!ga)break;else fa=ga}if((K|0)==198?(f[fa+12>>2]&8|0)==0:0){f[fa>>2]=ea;ha=fa+4|0;f[ha>>2]=(f[ha>>2]|0)+da;ha=ea+8|0;ga=ea+((ha&7|0)==0?0:0-ha&7)|0;ha=aa+8|0;c=aa+((ha&7|0)==0?0:0-ha&7)|0;ha=ga+F|0;S=c-ga-F|0;f[ga+4>>2]=F|3;do if((c|0)!=(ca|0)){if((c|0)==(f[7358]|0)){ba=(f[7355]|0)+S|0;f[7355]=ba;f[7358]=ha;f[ha+4>>2]=ba|1;f[ha+ba>>2]=ba;break}ba=f[c+4>>2]|0;if((ba&3|0)==1){_=ba&-8;$=ba>>>3;f:do if(ba>>>0>=256){T=f[c+24>>2]|0;X=f[c+12>>2]|0;do if((X|0)==(c|0)){U=c+16|0;Y=U+4|0;o=f[Y>>2]|0;if(!o){s=f[U>>2]|0;if(!s){na=0;break}else{oa=s;pa=U}}else{oa=o;pa=Y}while(1){Y=oa+20|0;o=f[Y>>2]|0;if(o|0){oa=o;pa=Y;continue}Y=oa+16|0;o=f[Y>>2]|0;if(!o)break;else{oa=o;pa=Y}}if(pa>>>0>>0)la();else{f[pa>>2]=0;na=oa;break}}else{Y=f[c+8>>2]|0;if(Y>>>0>>0)la();o=Y+12|0;if((f[o>>2]|0)!=(c|0))la();U=X+8|0;if((f[U>>2]|0)==(c|0)){f[o>>2]=X;f[U>>2]=Y;na=X;break}else la()}while(0);if(!T)break;X=f[c+28>>2]|0;Y=29716+(X<<2)|0;do if((c|0)!=(f[Y>>2]|0))if(T>>>0>=(f[7357]|0)>>>0){f[T+16+(((f[T+16>>2]|0)!=(c|0)&1)<<2)>>2]=na;if(!na)break f;else break}else la();else{f[Y>>2]=na;if(na|0)break;f[7354]=f[7354]&~(1<>>0>>0)la();f[na+24>>2]=T;Y=c+16|0;U=f[Y>>2]|0;do if(U|0)if(U>>>0>>0)la();else{f[na+16>>2]=U;f[U+24>>2]=na;break}while(0);U=f[Y+4>>2]|0;if(!U)break;if(U>>>0<(f[7357]|0)>>>0)la();else{f[na+20>>2]=U;f[U+24>>2]=na;break}}else{U=f[c+8>>2]|0;X=f[c+12>>2]|0;T=29452+($<<1<<2)|0;do if((U|0)!=(T|0)){if(U>>>0>>0)la();if((f[U+12>>2]|0)==(c|0))break;la()}while(0);if((X|0)==(U|0)){f[7353]=f[7353]&~(1<<$);break}do if((X|0)==(T|0))qa=X+8|0;else{if(X>>>0>>0)la();Y=X+8|0;if((f[Y>>2]|0)==(c|0)){qa=Y;break}la()}while(0);f[U+12>>2]=X;f[qa>>2]=U}while(0);ra=c+_|0;sa=_+S|0}else{ra=c;sa=S}$=ra+4|0;f[$>>2]=f[$>>2]&-2;f[ha+4>>2]=sa|1;f[ha+sa>>2]=sa;$=sa>>>3;if(sa>>>0<256){ba=29452+($<<1<<2)|0;Z=f[7353]|0;T=1<<$;do if(!(Z&T)){f[7353]=Z|T;ta=ba;ua=ba+8|0}else{$=ba+8|0;Y=f[$>>2]|0;if(Y>>>0>=(f[7357]|0)>>>0){ta=Y;ua=$;break}la()}while(0);f[ua>>2]=ha;f[ta+12>>2]=ha;f[ha+8>>2]=ta;f[ha+12>>2]=ba;break}T=sa>>>8;do if(!T)va=0;else{if(sa>>>0>16777215){va=31;break}Z=(T+1048320|0)>>>16&8;_=T<>>16&4;Y=_<<$;_=(Y+245760|0)>>>16&2;o=14-($|Z|_)+(Y<<_>>>15)|0;va=sa>>>(o+7|0)&1|o<<1}while(0);T=29716+(va<<2)|0;f[ha+28>>2]=va;ba=ha+16|0;f[ba+4>>2]=0;f[ba>>2]=0;ba=f[7354]|0;o=1<>2]=ha;f[ha+24>>2]=T;f[ha+12>>2]=ha;f[ha+8>>2]=ha;break}o=sa<<((va|0)==31?0:25-(va>>>1)|0);ba=f[T>>2]|0;while(1){if((f[ba+4>>2]&-8|0)==(sa|0)){K=265;break}wa=ba+16+(o>>>31<<2)|0;T=f[wa>>2]|0;if(!T){K=262;break}else{o=o<<1;ba=T}}if((K|0)==262)if(wa>>>0<(f[7357]|0)>>>0)la();else{f[wa>>2]=ha;f[ha+24>>2]=ba;f[ha+12>>2]=ha;f[ha+8>>2]=ha;break}else if((K|0)==265){o=ba+8|0;T=f[o>>2]|0;_=f[7357]|0;if(T>>>0>=_>>>0&ba>>>0>=_>>>0){f[T+12>>2]=ha;f[o>>2]=ha;f[ha+8>>2]=T;f[ha+12>>2]=ba;f[ha+24>>2]=0;break}else la()}}else{T=(f[7356]|0)+S|0;f[7356]=T;f[7359]=ha;f[ha+4>>2]=T|1}while(0);p=ga+8|0;u=b;return p|0}ha=29860;while(1){S=f[ha>>2]|0;if(S>>>0<=ca>>>0?(xa=S+(f[ha+4>>2]|0)|0,xa>>>0>ca>>>0):0)break;ha=f[ha+8>>2]|0}ha=xa+-47|0;ga=ha+8|0;S=ha+((ga&7|0)==0?0:0-ga&7)|0;ga=ca+16|0;ha=S>>>0>>0?ca:S;S=ha+8|0;c=ea+8|0;aa=(c&7|0)==0?0:0-c&7;c=ea+aa|0;fa=da+-40-aa|0;f[7359]=c;f[7356]=fa;f[c+4>>2]=fa|1;f[c+fa+4>>2]=40;f[7360]=f[7475];fa=ha+4|0;f[fa>>2]=27;f[S>>2]=f[7465];f[S+4>>2]=f[7466];f[S+8>>2]=f[7467];f[S+12>>2]=f[7468];f[7465]=ea;f[7466]=da;f[7468]=0;f[7467]=S;S=ha+24|0;do{c=S;S=S+4|0;f[S>>2]=7}while((c+8|0)>>>0>>0);if((ha|0)!=(ca|0)){S=ha-ca|0;f[fa>>2]=f[fa>>2]&-2;f[ca+4>>2]=S|1;f[ha>>2]=S;c=S>>>3;if(S>>>0<256){aa=29452+(c<<1<<2)|0;T=f[7353]|0;o=1<>2]|0;if(_>>>0<(f[7357]|0)>>>0)la();else{ya=_;za=c}}else{f[7353]=T|o;ya=aa;za=aa+8|0}f[za>>2]=ca;f[ya+12>>2]=ca;f[ca+8>>2]=ya;f[ca+12>>2]=aa;break}aa=S>>>8;if(aa)if(S>>>0>16777215)Aa=31;else{o=(aa+1048320|0)>>>16&8;T=aa<>>16&4;c=T<>>16&2;_=14-(aa|o|T)+(c<>>15)|0;Aa=S>>>(_+7|0)&1|_<<1}else Aa=0;_=29716+(Aa<<2)|0;f[ca+28>>2]=Aa;f[ca+20>>2]=0;f[ga>>2]=0;T=f[7354]|0;c=1<>2]=ca;f[ca+24>>2]=_;f[ca+12>>2]=ca;f[ca+8>>2]=ca;break}c=S<<((Aa|0)==31?0:25-(Aa>>>1)|0);T=f[_>>2]|0;while(1){if((f[T+4>>2]&-8|0)==(S|0)){K=292;break}Ba=T+16+(c>>>31<<2)|0;_=f[Ba>>2]|0;if(!_){K=289;break}else{c=c<<1;T=_}}if((K|0)==289)if(Ba>>>0<(f[7357]|0)>>>0)la();else{f[Ba>>2]=ca;f[ca+24>>2]=T;f[ca+12>>2]=ca;f[ca+8>>2]=ca;break}else if((K|0)==292){c=T+8|0;S=f[c>>2]|0;ga=f[7357]|0;if(S>>>0>=ga>>>0&T>>>0>=ga>>>0){f[S+12>>2]=ca;f[c>>2]=ca;f[ca+8>>2]=S;f[ca+12>>2]=T;f[ca+24>>2]=0;break}else la()}}}else{S=f[7357]|0;if((S|0)==0|ea>>>0>>0)f[7357]=ea;f[7465]=ea;f[7466]=da;f[7468]=0;f[7362]=f[7471];f[7361]=-1;S=0;do{c=29452+(S<<1<<2)|0;f[c+12>>2]=c;f[c+8>>2]=c;S=S+1|0}while((S|0)!=32);S=ea+8|0;T=(S&7|0)==0?0:0-S&7;S=ea+T|0;c=da+-40-T|0;f[7359]=S;f[7356]=c;f[S+4>>2]=c|1;f[S+c+4>>2]=40;f[7360]=f[7475]}while(0);da=f[7356]|0;if(da>>>0>F>>>0){ea=da-F|0;f[7356]=ea;da=f[7359]|0;ca=da+F|0;f[7359]=ca;f[ca+4>>2]=ea|1;f[da+4>>2]=F|3;p=da+8|0;u=b;return p|0}}da=Ib()|0;f[da>>2]=12;p=0;u=b;return p|0}function Wc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;if(!a)return;b=a+-8|0;c=f[7357]|0;if(b>>>0>>0)la();d=f[a+-4>>2]|0;a=d&3;if((a|0)==1)la();e=d&-8;g=b+e|0;a:do if(!(d&1)){h=f[b>>2]|0;if(!a)return;i=b+(0-h)|0;j=h+e|0;if(i>>>0>>0)la();if((i|0)==(f[7358]|0)){k=g+4|0;l=f[k>>2]|0;if((l&3|0)!=3){m=i;n=j;o=i;break}f[7355]=j;f[k>>2]=l&-2;f[i+4>>2]=j|1;f[i+j>>2]=j;return}l=h>>>3;if(h>>>0<256){h=f[i+8>>2]|0;k=f[i+12>>2]|0;p=29452+(l<<1<<2)|0;if((h|0)!=(p|0)){if(h>>>0>>0)la();if((f[h+12>>2]|0)!=(i|0))la()}if((k|0)==(h|0)){f[7353]=f[7353]&~(1<>>0>>0)la();p=k+8|0;if((f[p>>2]|0)==(i|0))q=p;else la()}else q=k+8|0;f[h+12>>2]=k;f[q>>2]=h;m=i;n=j;o=i;break}h=f[i+24>>2]|0;k=f[i+12>>2]|0;do if((k|0)==(i|0)){p=i+16|0;l=p+4|0;r=f[l>>2]|0;if(!r){s=f[p>>2]|0;if(!s){t=0;break}else{u=s;v=p}}else{u=r;v=l}while(1){l=u+20|0;r=f[l>>2]|0;if(r|0){u=r;v=l;continue}l=u+16|0;r=f[l>>2]|0;if(!r)break;else{u=r;v=l}}if(v>>>0>>0)la();else{f[v>>2]=0;t=u;break}}else{l=f[i+8>>2]|0;if(l>>>0>>0)la();r=l+12|0;if((f[r>>2]|0)!=(i|0))la();p=k+8|0;if((f[p>>2]|0)==(i|0)){f[r>>2]=k;f[p>>2]=l;t=k;break}else la()}while(0);if(h){k=f[i+28>>2]|0;l=29716+(k<<2)|0;do if((i|0)==(f[l>>2]|0)){f[l>>2]=t;if(!t){f[7354]=f[7354]&~(1<>>0>=(f[7357]|0)>>>0){f[h+16+(((f[h+16>>2]|0)!=(i|0)&1)<<2)>>2]=t;if(!t){m=i;n=j;o=i;break a}else break}else la();while(0);k=f[7357]|0;if(t>>>0>>0)la();f[t+24>>2]=h;l=i+16|0;p=f[l>>2]|0;do if(p|0)if(p>>>0>>0)la();else{f[t+16>>2]=p;f[p+24>>2]=t;break}while(0);p=f[l+4>>2]|0;if(p)if(p>>>0<(f[7357]|0)>>>0)la();else{f[t+20>>2]=p;f[p+24>>2]=t;m=i;n=j;o=i;break}else{m=i;n=j;o=i}}else{m=i;n=j;o=i}}else{m=b;n=e;o=b}while(0);if(o>>>0>=g>>>0)la();b=g+4|0;e=f[b>>2]|0;if(!(e&1))la();if(!(e&2)){t=f[7358]|0;if((g|0)==(f[7359]|0)){c=(f[7356]|0)+n|0;f[7356]=c;f[7359]=m;f[m+4>>2]=c|1;if((m|0)!=(t|0))return;f[7358]=0;f[7355]=0;return}if((g|0)==(t|0)){t=(f[7355]|0)+n|0;f[7355]=t;f[7358]=o;f[m+4>>2]=t|1;f[o+t>>2]=t;return}t=(e&-8)+n|0;c=e>>>3;b:do if(e>>>0>=256){u=f[g+24>>2]|0;v=f[g+12>>2]|0;do if((v|0)==(g|0)){q=g+16|0;a=q+4|0;d=f[a>>2]|0;if(!d){p=f[q>>2]|0;if(!p){w=0;break}else{x=p;y=q}}else{x=d;y=a}while(1){a=x+20|0;d=f[a>>2]|0;if(d|0){x=d;y=a;continue}a=x+16|0;d=f[a>>2]|0;if(!d)break;else{x=d;y=a}}if(y>>>0<(f[7357]|0)>>>0)la();else{f[y>>2]=0;w=x;break}}else{a=f[g+8>>2]|0;if(a>>>0<(f[7357]|0)>>>0)la();d=a+12|0;if((f[d>>2]|0)!=(g|0))la();q=v+8|0;if((f[q>>2]|0)==(g|0)){f[d>>2]=v;f[q>>2]=a;w=v;break}else la()}while(0);if(u|0){v=f[g+28>>2]|0;i=29716+(v<<2)|0;do if((g|0)==(f[i>>2]|0)){f[i>>2]=w;if(!w){f[7354]=f[7354]&~(1<>>0>=(f[7357]|0)>>>0){f[u+16+(((f[u+16>>2]|0)!=(g|0)&1)<<2)>>2]=w;if(!w)break b;else break}else la();while(0);v=f[7357]|0;if(w>>>0>>0)la();f[w+24>>2]=u;i=g+16|0;j=f[i>>2]|0;do if(j|0)if(j>>>0>>0)la();else{f[w+16>>2]=j;f[j+24>>2]=w;break}while(0);j=f[i+4>>2]|0;if(j|0)if(j>>>0<(f[7357]|0)>>>0)la();else{f[w+20>>2]=j;f[j+24>>2]=w;break}}}else{j=f[g+8>>2]|0;v=f[g+12>>2]|0;u=29452+(c<<1<<2)|0;if((j|0)!=(u|0)){if(j>>>0<(f[7357]|0)>>>0)la();if((f[j+12>>2]|0)!=(g|0))la()}if((v|0)==(j|0)){f[7353]=f[7353]&~(1<>>0<(f[7357]|0)>>>0)la();u=v+8|0;if((f[u>>2]|0)==(g|0))z=u;else la()}else z=v+8|0;f[j+12>>2]=v;f[z>>2]=j}while(0);f[m+4>>2]=t|1;f[o+t>>2]=t;if((m|0)==(f[7358]|0)){f[7355]=t;return}else A=t}else{f[b>>2]=e&-2;f[m+4>>2]=n|1;f[o+n>>2]=n;A=n}n=A>>>3;if(A>>>0<256){o=29452+(n<<1<<2)|0;e=f[7353]|0;b=1<>2]|0;if(t>>>0<(f[7357]|0)>>>0)la();else{B=t;C=n}}else{f[7353]=e|b;B=o;C=o+8|0}f[C>>2]=m;f[B+12>>2]=m;f[m+8>>2]=B;f[m+12>>2]=o;return}o=A>>>8;if(o)if(A>>>0>16777215)D=31;else{B=(o+1048320|0)>>>16&8;C=o<>>16&4;b=C<>>16&2;e=14-(o|B|C)+(b<>>15)|0;D=A>>>(e+7|0)&1|e<<1}else D=0;e=29716+(D<<2)|0;f[m+28>>2]=D;f[m+20>>2]=0;f[m+16>>2]=0;C=f[7354]|0;b=1<>>1)|0);o=f[e>>2]|0;while(1){if((f[o+4>>2]&-8|0)==(A|0)){E=124;break}F=o+16+(B>>>31<<2)|0;n=f[F>>2]|0;if(!n){E=121;break}else{B=B<<1;o=n}}if((E|0)==121)if(F>>>0<(f[7357]|0)>>>0)la();else{f[F>>2]=m;f[m+24>>2]=o;f[m+12>>2]=m;f[m+8>>2]=m;break}else if((E|0)==124){B=o+8|0;i=f[B>>2]|0;n=f[7357]|0;if(i>>>0>=n>>>0&o>>>0>=n>>>0){f[i+12>>2]=m;f[B>>2]=m;f[m+8>>2]=i;f[m+12>>2]=o;f[m+24>>2]=0;break}else la()}}else{f[7354]=C|b;f[e>>2]=m;f[m+24>>2]=e;f[m+12>>2]=m;f[m+8>>2]=m}while(0);m=(f[7361]|0)+-1|0;f[7361]=m;if(!m)G=29868;else return;while(1){m=f[G>>2]|0;if(!m)break;else G=m+8|0}f[7361]=-1;return}function Xc(){}function Yc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (I=e,a-c>>>0|0)|0}function Zc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (I=b+d+(e>>>0>>0|0)>>>0,e|0)|0}function _c(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=a+d|0;c=c&255;if((d|0)>=67){while(a&3){b[a>>0]=c;a=a+1|0}g=e&-4|0;h=g-64|0;i=c|c<<8|c<<16|c<<24;while((a|0)<=(h|0)){f[a>>2]=i;f[a+4>>2]=i;f[a+8>>2]=i;f[a+12>>2]=i;f[a+16>>2]=i;f[a+20>>2]=i;f[a+24>>2]=i;f[a+28>>2]=i;f[a+32>>2]=i;f[a+36>>2]=i;f[a+40>>2]=i;f[a+44>>2]=i;f[a+48>>2]=i;f[a+52>>2]=i;f[a+56>>2]=i;f[a+60>>2]=i;a=a+64|0}while((a|0)<(g|0)){f[a>>2]=i;a=a+4|0}}while((a|0)<(e|0)){b[a>>0]=c;a=a+1|0}return e-d|0}function $c(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){I=b>>>c;return a>>>c|(b&(1<>>c-32|0}function ad(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){I=b<>>32-c;return a<>0]|0;if((c|0)<8)return c|0;c=b[w+(a>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=b[w+(a>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (b[w+(a>>>24)>>0]|0)+24|0}function cd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;g=a;h=b;i=h;j=c;k=d;l=k;if(!i){m=(e|0)!=0;if(!l){if(m){f[e>>2]=(g>>>0)%(j>>>0);f[e+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (I=n,o)|0}else{if(!m){n=0;o=0;return (I=n,o)|0}f[e>>2]=a|0;f[e+4>>2]=b&0;n=0;o=0;return (I=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(_(l|0)|0)-(_(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<>>(q>>>0)&s;w=0;x=g<>2]=a|0;f[e+4>>2]=h|b&0;n=0;o=0;return (I=n,o)|0}r=j-1|0;if(r&j|0){s=(_(j|0)|0)+33-(_(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;z=s-32|0;A=z>>31;t=s;u=p-1>>31&i>>>(z>>>0)|(i<>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<>>(z>>>0))&y|g<>31;break}if(e|0){f[e>>2]=r&g;f[e+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (I=n,o)|0}else{r=bd(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (I=n,o)|0}}else{if(m){if(e|0){f[e>>2]=(i>>>0)%(j>>>0);f[e+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (I=n,o)|0}if(!g){if(e|0){f[e>>2]=0;f[e+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (I=n,o)|0}r=l-1|0;if(!(r&l)){if(e|0){f[e>>2]=a|0;f[e+4>>2]=r&i|b&0}n=0;o=i>>>((bd(l|0)|0)>>>0);return (I=n,o)|0}r=(_(l|0)|0)-(_(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<>2]=a|0;f[e+4>>2]=h|b&0;n=0;o=0;return (I=n,o)|0}while(0);if(!t){B=x;C=w;D=v;E=u;F=0;G=0}else{b=c|0|0;c=k|d&0;d=Zc(b|0,c|0,-1,-1)|0;k=I;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;Yc(d|0,k|0,g|0,a|0)|0;i=I;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=Yc(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&c|0)|0;w=I;u=u-1|0}while((u|0)!=0);B=h;C=x;D=w;E=v;F=0;G=t}t=C;C=0;if(e|0){f[e>>2]=E;f[e+4>>2]=D}n=(t|0)>>>31|(B|C)<<1|(C<<1|t>>>31)&0|F;o=(t<<1|0>>>31)&-2|G;return (I=n,o)|0}function dd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return cd(a,b,c,d,0)|0}function ed(a){a=a|0;var b=0,c=0;a=a+15&-16|0;b=f[r>>2]|0;c=b+a|0;if((a|0)>0&(c|0)<(b|0)|(c|0)<0){da()|0;ma(12);return -1}f[r>>2]=c;if((c|0)>(ca()|0)?(ba()|0)==0:0){f[r>>2]=b;ma(12);return -1}return b|0}function fd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e|0;cd(a,b,c,d,g)|0;u=e;return (I=f[g+4>>2]|0,f[g>>2]|0)|0}function gd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;if((d|0)>=8192)return pa(a|0,c|0,d|0)|0;e=a|0;g=a+d|0;if((a&3)==(c&3)){while(a&3){if(!d)return e|0;b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0;d=d-1|0}h=g&-4|0;d=h-64|0;while((a|0)<=(d|0)){f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];f[a+12>>2]=f[c+12>>2];f[a+16>>2]=f[c+16>>2];f[a+20>>2]=f[c+20>>2];f[a+24>>2]=f[c+24>>2];f[a+28>>2]=f[c+28>>2];f[a+32>>2]=f[c+32>>2];f[a+36>>2]=f[c+36>>2];f[a+40>>2]=f[c+40>>2];f[a+44>>2]=f[c+44>>2];f[a+48>>2]=f[c+48>>2];f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];a=a+64|0;c=c+64|0}while((a|0)<(h|0)){f[a>>2]=f[c>>2];a=a+4|0;c=c+4|0}}else{h=g-4|0;while((a|0)<(h|0)){b[a>>0]=b[c>>0]|0;b[a+1>>0]=b[c+1>>0]|0;b[a+2>>0]=b[c+2>>0]|0;b[a+3>>0]=b[c+3>>0]|0;a=a+4|0;c=c+4|0}}while((a|0)<(g|0)){b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0}return e|0}function hd(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function id(a,b){a=a|0;b=b|0;return xa[a&1](b|0)|0}function jd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ya[a&3](b|0,c|0,d|0)|0}function kd(a,b,c){a=a|0;b=b|0;c=c|0;return za[a&1](b|0,c|0)|0}function ld(a){a=a|0;$(0);return 0}function md(a,b,c){a=a|0;b=b|0;c=c|0;$(1);return 0}function nd(a,b){a=a|0;b=b|0;$(2);return 0} // EMSCRIPTEN_END_FUNCS -var xa=[jd,Cb];var ya=[kd,Kb,Eb,Db];var za=[ld,ub];return{stackSave:Ba,_i64Subtract:Wc,_llvm_cttz_i32:$c,_cwave_transform:zb,getTempRet0:Ga,_bitshift64Lshr:Zc,_bitshift64Shl:_c,_fflush:Jc,_wave_transform:xb,_memset:Yc,_sbrk:cd,_memcpy:ed,_llvm_bswap_i32:fd,_wdenoise:Ab,___uremdi3:dd,stackAlloc:Aa,_wtoutputlength:wb,___udivmoddi4:ad,setTempRet0:Fa,_i64Add:Xc,_emscripten_get_global_libc:Bb,_inv_wave_transform:yb,___udivdi3:bd,___errno_location:Gb,_filtcoef:Xa,_free:Uc,runPostSets:Vc,setThrew:Ea,establishStackSpace:Da,stackRestore:Ca,_malloc:Tc,_emscripten_replace_memory:wa,_filtlength:Wa,stackAlloc:Aa,stackSave:Ba,stackRestore:Ca,establishStackSpace:Da,setThrew:Ea,setTempRet0:Fa,getTempRet0:Ga,dynCall_ii:gd,dynCall_iiii:hd,dynCall_iii:id}}) +var xa=[ld,Eb];var ya=[md,Mb,Gb,Fb];var za=[nd,vb];return{stackSave:Ba,_i64Subtract:Yc,_memset:_c,_cwave_transform:Ab,getTempRet0:Ga,_bitshift64Lshr:$c,_wreccoeff:Cb,_fflush:Lc,_wave_transform:yb,_llvm_cttz_i32:bd,_sbrk:ed,_memcpy:gd,_llvm_bswap_i32:hd,_wdenoise:Bb,_bitshift64Shl:ad,___uremdi3:fd,stackAlloc:Aa,_wtoutputlength:xb,___udivmoddi4:cd,setTempRet0:Fa,_i64Add:Zc,_emscripten_get_global_libc:Db,_inv_wave_transform:zb,___udivdi3:dd,___errno_location:Ib,_filtcoef:Xa,_free:Wc,runPostSets:Xc,setThrew:Ea,establishStackSpace:Da,stackRestore:Ca,_malloc:Vc,_emscripten_replace_memory:wa,_filtlength:Wa,stackAlloc:Aa,stackSave:Ba,stackRestore:Ca,establishStackSpace:Da,setThrew:Ea,setTempRet0:Fa,getTempRet0:Ga,dynCall_ii:id,dynCall_iiii:jd,dynCall_iii:kd}}) // EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var stackSave=Module["stackSave"]=asm["stackSave"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _cwave_transform=Module["_cwave_transform"]=asm["_cwave_transform"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _fflush=Module["_fflush"]=asm["_fflush"];var _wave_transform=Module["_wave_transform"]=asm["_wave_transform"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _wdenoise=Module["_wdenoise"]=asm["_wdenoise"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var _wtoutputlength=Module["_wtoutputlength"]=asm["_wtoutputlength"];var ___udivmoddi4=Module["___udivmoddi4"]=asm["___udivmoddi4"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var _inv_wave_transform=Module["_inv_wave_transform"]=asm["_inv_wave_transform"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _filtcoef=Module["_filtcoef"]=asm["_filtcoef"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var setThrew=Module["setThrew"]=asm["setThrew"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _malloc=Module["_malloc"]=asm["_malloc"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _filtlength=Module["_filtlength"]=asm["_filtlength"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run() +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var stackSave=Module["stackSave"]=asm["stackSave"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _memset=Module["_memset"]=asm["_memset"];var _cwave_transform=Module["_cwave_transform"]=asm["_cwave_transform"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _wreccoeff=Module["_wreccoeff"]=asm["_wreccoeff"];var _fflush=Module["_fflush"]=asm["_fflush"];var _wave_transform=Module["_wave_transform"]=asm["_wave_transform"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _wdenoise=Module["_wdenoise"]=asm["_wdenoise"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var _wtoutputlength=Module["_wtoutputlength"]=asm["_wtoutputlength"];var ___udivmoddi4=Module["___udivmoddi4"]=asm["___udivmoddi4"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var _inv_wave_transform=Module["_inv_wave_transform"]=asm["_inv_wave_transform"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var _filtcoef=Module["_filtcoef"]=asm["_filtcoef"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var setThrew=Module["setThrew"]=asm["setThrew"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _malloc=Module["_malloc"]=asm["_malloc"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _filtlength=Module["_filtlength"]=asm["_filtlength"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run()